Devuan logs - #417, boring messages


Message sent to [email protected], [email protected]:


X-Loop: [email protected]
Subject: bug#417: gcc-10: internal compiler error building kernel 5.6.0-rc7 with amdgpu
Reply-To: Arthur Marsh <[email protected]>, [email protected]
Resent-From: Arthur Marsh <[email protected]>
Resent-To: [email protected]
Resent-CC: [email protected]
X-Loop: [email protected]
Resent-Date: Mon, 23 Mar 2020 15:03:01 +0000
Resent-Message-ID: <[email protected]>
Resent-Sender: [email protected]
X-Devuan-PR-Message: report 417
X-Devuan-PR-Package: gcc-10
X-Devuan-PR-Keywords: 
Received: via spool by [email protected] id=B.15849750063430
          (code B); Mon, 23 Mar 2020 15:03:01 +0000
Received: (at submit) by bugs.devuan.org; 23 Mar 2020 14:50:06 +0000
Delivered-To: [email protected]
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 <[email protected]>; 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 <[email protected]>)
	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 <[email protected]>
To: Devuan Bug Tracking System <[email protected]>
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
OCkgLQoxNDQ3NDogICAgIChfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzICYgKCg2
NCAqIDgpIC0gMSkpCjE0NDc0OiAgIDogX19lbmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJlc3Nl
cywKMTQ0NzQ6ICBGSVhfQlRNQVBfQkVHSU4gPSBGSVhfQlRNQVBfRU5EICsgKDY0ICogOCkgLSAx
LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IF9fZW5kX29mX2ZpeGVkX2FkZHJlc3NlcwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gdm9pZCByZXNlcnZlX3RvcF9hZGRyZXNzKHVuc2lnbmVkIGxvbmcgcmVzZXJ2ZSk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gaW50IGZpeG1hcHNfc2V0OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gcHRlX3QgKmttYXBf
cHRlOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gcHRlX3QgKnBrbWFwX3BhZ2VfdGFibGU7CjE0NDc0
OiAKMTQ0NzQ6IHZvaWQgX19uYXRpdmVfc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBp
ZHgsIHB0ZV90IHB0ZSk7CjE0NDc0OiB2b2lkIG5hdGl2ZV9zZXRfZml4bWFwKHVuc2lnbmVkIGlk
eCwKMTQ0NzQ6ICAgICAgICAgIHBoeXNfYWRkcl90IHBoeXMsIHBncHJvdF90IGZsYWdzKTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3Nl
cyBpZHgsCjE0NDc0OiAgICAgcGh5c19hZGRyX3QgcGh5cywgcGdwcm90X3QgZmxhZ3MpCjE0NDc0
OiB7CjE0NDc0OiAgbmF0aXZlX3NldF9maXhtYXAoaWR4LCBwaHlzLCBmbGFncyk7CjE0NDc0OiB9
CjE0NDc0OiAjIDE4MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIKMTQ0NzQ6IHZv
aWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRl
X18oKF9fY29sZF9fKSkgKmVhcmx5X21lbXJlbWFwX2VuY3J5cHRlZChyZXNvdXJjZV9zaXplX3Qg
cGh5c19hZGRyLAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CjE0NDc0OiB2
b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbGRfXykpICplYXJseV9tZW1yZW1hcF9lbmNyeXB0ZWRfd3AocmVzb3VyY2Vfc2l6
ZV90IHBoeXNfYWRkciwKMTQ0NzQ6ICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CjE0NDc0OiB2
b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbGRfXykpICplYXJseV9tZW1yZW1hcF9kZWNyeXB0ZWQocmVzb3VyY2Vfc2l6ZV90
IHBoeXNfYWRkciwKMTQ0NzQ6ICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwoxNDQ3NDog
dm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1
dGVfXygoX19jb2xkX18pKSAqZWFybHlfbWVtcmVtYXBfZGVjcnlwdGVkX3dwKHJlc291cmNlX3Np
emVfdCBwaHlzX2FkZHIsCjE0NDc0OiAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9maXhtYXAuaCIgMQoxNDQ3NDogIyAz
MCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2ZpeG1hcC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBsb25nIGZpeF90b192aXJ0KGNvbnN0IHVuc2ln
bmVkIGludCBpZHgpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0
aW1lX2Fzc2VydF8zMih2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIkJVSUxEX0JVR19P
TiBmYWlsZWQ6ICIgImlkeCA+PSBfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMiKSkpOyBpZiAoISgh
KGlkeCA+PSBfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMpKSkgX19jb21waWxldGltZV9hc3NlcnRf
MzIoKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgcmV0dXJuICgoKCgoKCgtMTBVTCA8PCAyMCkgKyAo
KDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2ZfXygoLTEwVUwgPDwgMjApICsgKCgxVUwpIDw8
IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVMKSA8PCAxMikpIC0gKChpZHgpIDw8IDEyKSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgdmlydF90b19maXgoY29uc3Qg
dW5zaWduZWQgbG9uZyB2YWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IGlmIChfX2J1aWx0aW5f
ZXhwZWN0KCEhKHZhZGRyID49ICgoKCgoKC0xMFVMIDw8IDIwKSArICgoMVVMKSA8PCAxMikpLTEp
IHwgKChfX3R5cGVvZl9fKCgtMTBVTCA8PCAyMCkgKyAoKDFVTCkgPDwgMTIpKSkoKDE8PDIxKS0x
KSkpKzEpIC0gKCgxVUwpIDw8IDEyKSkgfHwgdmFkZHIgPCAoKCgoKCgoLTEwVUwgPDwgMjApICsg
KCgxVUwpIDw8IDEyKSktMSkgfCAoKF9fdHlwZW9mX18oKC0xMFVMIDw8IDIwKSArICgoMVVMKSA8
PCAxMikpKSgoMTw8MjEpLTEpKSkrMSkgLSAoKDFVTCkgPDwgMTIpKSAtIChfX2VuZF9vZl9wZXJt
YW5lbnRfZml4ZWRfYWRkcmVzc2VzIDw8IDEyKSkpLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGlu
ZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBf
X2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1
Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVn
X2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0
LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5w
b3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9hc20tZ2VuZXJpYy9maXhtYXAuaCIpLCAiaSIg
KDM4KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAo
MCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2Fy
ZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQi
IDogOiAiaSIgKDE3KSk7IH0pOyBhc20gdm9sYXRpbGUoIiIpOyBfX2J1aWx0aW5fdW5yZWFjaGFi
bGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICByZXR1
cm4gKCgoKCgoKCgtMTBVTCA8PCAyMCkgKyAoKDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2Zf
XygoLTEwVUwgPDwgMjApICsgKCgxVUwpIDw8IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVM
KSA8PCAxMikpIC0gKCh2YWRkcikmKH4oKCgxVUwpIDw8IDEyKS0xKSkpKSA+PiAxMik7CjE0NDc0
OiB9CjE0NDc0OiAjIDE5MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIgMgoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIF9fZWFybHlfc2V0X2ZpeG1h
cChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsCjE0NDc0OiAgICBwaHlzX2FkZHJfdCBwaHlzLCBw
Z3Byb3RfdCBmbGFncyk7CjE0NDc0OiAjIDEyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMu
aCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9o
YXJkaXJxLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHsKMTQ0NzQ6ICB1MTYgX19zb2Z0aXJxX3BlbmRpbmc7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IF9fbm1pX2NvdW50
OwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IGFwaWNfdGltZXJfaXJxczsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgaXJxX3NwdXJpb3VzX2NvdW50OwoxNDQ3NDogIHVuc2lnbmVkIGludCBpY3Jf
cmVhZF9yZXRyeV9jb3VudDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IGt2
bV9wb3N0ZWRfaW50cl9pcGlzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBrdm1fcG9zdGVkX2ludHJf
d2FrZXVwX2lwaXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGt2bV9wb3N0ZWRfaW50cl9uZXN0ZWRf
aXBpczsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCB4ODZfcGxhdGZvcm1faXBpczsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgYXBpY19wZXJmX2lycXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGFw
aWNfaXJxX3dvcmtfaXJxczsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBpcnFfcmVzY2hl
ZF9jb3VudDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaXJxX2NhbGxfY291bnQ7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgaXJxX3RsYl9jb3VudDsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVk
IGludCBpcnFfdGhlcm1hbF9jb3VudDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQg
aW50IGlycV90aHJlc2hvbGRfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVk
IGludCBpcnFfZGVmZXJyZWRfZXJyb3JfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVu
c2lnbmVkIGludCBpcnFfaHZfY2FsbGJhY2tfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHVuc2lnbmVkIGludCBpcnFfaHZfcmVlbmxpZ2h0ZW5tZW50X2NvdW50OwoxNDQ3NDogIHVuc2ln
bmVkIGludCBoeXBlcnZfc3RpbWVyMF9jb3VudDsKMTQ0NzQ6IAoxNDQ3NDogfSBfX2F0dHJpYnV0
ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikpKSkpIGlycV9jcHVzdGF0X3Q7CjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiIikpKSBf
X3R5cGVvZl9fKGlycV9jcHVzdGF0X3QpIGlycV9zdGF0IF9fYXR0cmlidXRlX18oKF9fYWxpZ25l
ZF9fKCgxIDw8ICg2KSkpKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIHZvaWQgYWNrX2JhZF9pcnEodW5zaWduZWQgaW50IGlycSk7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiB1NjQgYXJjaF9pcnFfc3RhdF9jcHUodW5zaWduZWQgaW50IGNwdSk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHU2NCBhcmNoX2lycV9zdGF0KHZvaWQpOwox
NDQ3NDogIyA4MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGt2bV9zZXRfY3B1X2wxdGZfZmx1c2hfbDFkKHZvaWQpIHsgfQoxNDQ3NDogIyAxNSAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiIDIKMTQ0NzQ6ICMgNDUgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vYXBpYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBnZW5lcmljX2FwaWNfcHJvYmUodm9pZCkKMTQ0NzQ6
IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGludCBhcGljX3ZlcmJvc2l0eTsKMTQ0NzQ6IGV4dGVybiBpbnQgbG9jYWxfYXBpY190aW1lcl9j
Ml9vazsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBkaXNhYmxlX2FwaWM7CjE0NDc0OiBleHRl
cm4gdW5zaWduZWQgaW50IGxhcGljX3RpbWVyX3BlcmlvZDsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGVudW0gYXBpY19pbnRyX21vZGVfaWQgYXBpY19pbnRyX21vZGU7CjE0NDc0OiBlbnVtIGFwaWNf
aW50cl9tb2RlX2lkIHsKMTQ0NzQ6ICBBUElDX1BJQywKMTQ0NzQ6ICBBUElDX1ZJUlRVQUxfV0lS
RSwKMTQ0NzQ6ICBBUElDX1ZJUlRVQUxfV0lSRV9OT19DT05GSUcsCjE0NDc0OiAgQVBJQ19TWU1N
RVRSSUNfSU8sCjE0NDc0OiAgQVBJQ19TWU1NRVRSSUNfSU9fTk9fUk9VVElORwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBfX2lucXVpcmVfcmVtb3RlX2FwaWMo
aW50IGFwaWNpZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGRlZmF1bHRfaW5xdWlyZV9yZW1vdGVfYXBpYyhpbnQgYXBpY2lkKQox
NDQ3NDogewoxNDQ3NDogIGlmIChhcGljX3ZlcmJvc2l0eSA+PSAyKQoxNDQ3NDogICBfX2lucXVp
cmVfcmVtb3RlX2FwaWMoYXBpY2lkKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgODkgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYXBpYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBhcGljX2Zyb21fc21wX2NvbmZpZyh2b2lk
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBzbXBfZm91bmRfY29uZmlnICYmICFkaXNhYmxlX2Fw
aWM7CjE0NDc0OiB9CjE0NDc0OiAjIDEwMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgi
CjE0NDc0OiBleHRlcm4gaW50IHNldHVwX3Byb2ZpbGluZ190aW1lcih1bnNpZ25lZCBpbnQpOwox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9hcGljX21lbV93cml0ZSh1MzIgcmVnLCB1MzIgdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICB2b2xhdGlsZSB1MzIgKmFkZHIgPSAodm9sYXRpbGUgdTMyICopKChm
aXhfdG9fdmlydChGSVhfQVBJQ19CQVNFKSkgKyByZWcpOwoxNDQ3NDogCjE0NDc0OiAgYXNtIF9f
aW5saW5lIHZvbGF0aWxlICgiIyBBTFQ6IG9sZG5zdHJcbiIgIjY2MTpcblx0IiAibW92bCAlMCwg
JVAxIiAiXG42NjI6XG4iICIjIEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIi
Zi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIi
MSIiZi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpc
biIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAt
IC5cbiIgIiAubG9uZyAiICI2NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiKDE5KjMyICsgKDUp
KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJm
LSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0
aW9uXG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMg
QUxUOiByZXBsYWNlbWVudCAiICIxIiAiXG4iICI2NjQiIjEiIjpcblx0IiAieGNoZ2wgJTAsICVQ
MSIgIlxuIiAiNjY1IiIxIiAiOlxuIiAiLnBvcHNlY3Rpb25cbiIgOiAiPXIiICh2KSwgIj1tIiAo
KmFkZHIpIDogImkiICgwKSwgIjAiICh2KSwgIm0iICgqYWRkcikpCjE0NDc0OiAKMTQ0NzQ6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHUzMiBuYXRpdmVfYXBpY19tZW1fcmVhZCh1MzIgcmVnKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiAqKCh2b2xhdGlsZSB1MzIgKikoKGZpeF90b192aXJ0KEZJWF9BUElDX0JBU0Up
KSArIHJlZykpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBuYXRpdmVfYXBp
Y193YWl0X2ljcl9pZGxlKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHUzMiBuYXRpdmVfc2FmZV9hcGlj
X3dhaXRfaWNyX2lkbGUodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBuYXRpdmVfYXBpY19pY3Jf
d3JpdGUodTMyIGxvdywgdTMyIGlkKTsKMTQ0NzQ6IGV4dGVybiB1NjQgbmF0aXZlX2FwaWNfaWNy
X3JlYWQodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYXBpY19pc194MmFwaWNfZW5hYmxlZCh2
b2lkKQoxNDQ3NDogewoxNDQ3NDogIHU2NCBtc3I7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAocmRtc3Js
X3NhZmUoMHgwMDAwMDAxYiwgJm1zcikpCjE0NDc0OiAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6ICBy
ZXR1cm4gbXNyICYgKDFVTCA8PCAxMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2
b2lkIGVuYWJsZV9JUl94MmFwaWModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZ2V0
X3BoeXNpY2FsX2Jyb2FkY2FzdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBsYXBp
Y19nZXRfbWF4bHZ0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgY2xlYXJfbG9jYWxfQVBJQyh2
b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRpc2Nvbm5lY3RfYnNwX0FQSUMoaW50IHZpcnRfd2ly
ZV9zZXR1cCk7CjE0NDc0OiBleHRlcm4gdm9pZCBkaXNhYmxlX2xvY2FsX0FQSUModm9pZCk7CjE0
NDc0OiBleHRlcm4gdm9pZCBhcGljX3NvZnRfZGlzYWJsZSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2
b2lkIGxhcGljX3NodXRkb3duKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc3luY19BcmJfSURz
KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaW5pdF9ic3BfQVBJQyh2b2lkKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGFwaWNfaW50cl9tb2RlX3NlbGVjdCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IGFwaWNfaW50cl9tb2RlX2luaXQodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBpbml0X2FwaWNf
bWFwcGluZ3Modm9pZCk7CjE0NDc0OiB2b2lkIHJlZ2lzdGVyX2xhcGljX2FkZHJlc3ModW5zaWdu
ZWQgbG9uZyBhZGRyZXNzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNldHVwX2Jvb3RfQVBJQ19jbG9j
ayh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNldHVwX3NlY29uZGFyeV9BUElDX2Nsb2NrKHZv
aWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgbGFwaWNfdXBkYXRlX3RzY19mcmVxKHZvaWQpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludCBhcGljX2ZvcmNlX2VuYWJsZSh1bnNpZ25lZCBsb25nIGFk
ZHIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIC0xOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBhcGljX2FwX3NldHVwKHZvaWQpOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQg
YXBpY19pc19jbHVzdGVyZWRfYm94KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHNldHVwX0FQSUNf
ZWlsdnQodTggbHZ0X29mZiwgdTggdmVjdG9yLCB1OCBtc2dfdHlwZSwgdTggbWFzayk7CjE0NDc0
OiBleHRlcm4gdm9pZCBsYXBpY19hc3NpZ25fc3lzdGVtX3ZlY3RvcnModm9pZCk7CjE0NDc0OiBl
eHRlcm4gdm9pZCBsYXBpY19hc3NpZ25fbGVnYWN5X3ZlY3Rvcih1bnNpZ25lZCBpbnQgaXNhaXJx
LCBib29sIHJlcGxhY2UpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgbGFwaWNfb25saW5lKHZvaWQpOwox
NDQ3NDogZXh0ZXJuIHZvaWQgbGFwaWNfb2ZmbGluZSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiBib29s
IGFwaWNfbmVlZHNfcGl0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBhcGljX3Nl
bmRfSVBJX2FsbGJ1dHNlbGYodW5zaWduZWQgaW50IHZlY3Rvcik7CjE0NDc0OiAjIDI3MSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNoZWNrX3gyYXBpYyh2b2lk
KSB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgeDJhcGljX3NldHVwKHZvaWQpIHsgfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHgyYXBp
Y19lbmFibGVkKHZvaWQpIHsgcmV0dXJuIDA7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaXJxX2RhdGE7CjE0NDc0OiAjIDI5MCAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiCjE0NDc0OiBzdHJ1Y3QgYXBpYyB7CjE0NDc0OiAKMTQ0
NzQ6ICB2b2lkICgqZW9pX3dyaXRlKSh1MzIgcmVnLCB1MzIgdik7CjE0NDc0OiAgdm9pZCAoKm5h
dGl2ZV9lb2lfd3JpdGUpKHUzMiByZWcsIHUzMiB2KTsKMTQ0NzQ6ICB2b2lkICgqd3JpdGUpKHUz
MiByZWcsIHUzMiB2KTsKMTQ0NzQ6ICB1MzIgKCpyZWFkKSh1MzIgcmVnKTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAoKndhaXRfaWNyX2lkbGUpKHZvaWQpOwoxNDQ3NDogIHUzMiAoKnNh
ZmVfd2FpdF9pY3JfaWRsZSkodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2VuZF9JUEkp
KGludCBjcHUsIGludCB2ZWN0b3IpOwoxNDQ3NDogIHZvaWQgKCpzZW5kX0lQSV9tYXNrKShjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywgaW50IHZlY3Rvcik7CjE0NDc0OiAgdm9pZCAoKnNlbmRf
SVBJX21hc2tfYWxsYnV0c2VsZikoY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1zaywgaW50IHZlYyk7
CjE0NDc0OiAgdm9pZCAoKnNlbmRfSVBJX2FsbGJ1dHNlbGYpKGludCB2ZWN0b3IpOwoxNDQ3NDog
IHZvaWQgKCpzZW5kX0lQSV9hbGwpKGludCB2ZWN0b3IpOwoxNDQ3NDogIHZvaWQgKCpzZW5kX0lQ
SV9zZWxmKShpbnQgdmVjdG9yKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTMyIGRlc3RfbG9n
aWNhbDsKMTQ0NzQ6ICB1MzIgZGlzYWJsZV9lc3I7CjE0NDc0OiAgdTMyIGlycV9kZWxpdmVyeV9t
b2RlOwoxNDQ3NDogIHUzMiBpcnFfZGVzdF9tb2RlOwoxNDQ3NDogCjE0NDc0OiAgdTMyICgqY2Fs
Y19kZXN0X2FwaWNpZCkodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHU2NCAoKmljcl9yZWFkKSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqaWNyX3dyaXRlKSh1MzIgbG93
LCB1MzIgaGlnaCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKnByb2JlKSh2b2lkKTsK
MTQ0NzQ6ICBpbnQgKCphY3BpX21hZHRfb2VtX2NoZWNrKShjaGFyICpvZW1faWQsIGNoYXIgKm9l
bV90YWJsZV9pZCk7CjE0NDc0OiAgaW50ICgqYXBpY19pZF92YWxpZCkodTMyIGFwaWNpZCk7CjE0
NDc0OiAgaW50ICgqYXBpY19pZF9yZWdpc3RlcmVkKSh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogIGJv
b2wgKCpjaGVja19hcGljaWRfdXNlZCkocGh5c2lkX21hc2tfdCAqbWFwLCBpbnQgYXBpY2lkKTsK
MTQ0NzQ6ICB2b2lkICgqaW5pdF9hcGljX2xkcikodm9pZCk7CjE0NDc0OiAgdm9pZCAoKmlvYXBp
Y19waHlzX2lkX21hcCkocGh5c2lkX21hc2tfdCAqcGh5c19tYXAsIHBoeXNpZF9tYXNrX3QgKnJl
dG1hcCk7CjE0NDc0OiAgdm9pZCAoKnNldHVwX2FwaWNfcm91dGluZykodm9pZCk7CjE0NDc0OiAg
aW50ICgqY3B1X3ByZXNlbnRfdG9fYXBpY2lkKShpbnQgbXBzX2NwdSk7CjE0NDc0OiAgdm9pZCAo
KmFwaWNpZF90b19jcHVfcHJlc2VudCkoaW50IHBoeXNfYXBpY2lkLCBwaHlzaWRfbWFza190ICpy
ZXRtYXApOwoxNDQ3NDogIGludCAoKmNoZWNrX3BoeXNfYXBpY2lkX3ByZXNlbnQpKGludCBwaHlz
X2FwaWNpZCk7CjE0NDc0OiAgaW50ICgqcGh5c19wa2dfaWQpKGludCBjcHVpZF9hcGljLCBpbnQg
aW5kZXhfbXNiKTsKMTQ0NzQ6IAoxNDQ3NDogIHUzMiAoKmdldF9hcGljX2lkKSh1bnNpZ25lZCBs
b25nIHgpOwoxNDQ3NDogIHUzMiAoKnNldF9hcGljX2lkKSh1bnNpZ25lZCBpbnQgaWQpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCp3YWtldXBfc2Vjb25kYXJ5X2NwdSkoaW50IGFwaWNp
ZCwgdW5zaWduZWQgbG9uZyBzdGFydF9laXApOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmlucXVp
cmVfcmVtb3RlX2FwaWMpKGludCBhcGljaWQpOwoxNDQ3NDogIyAzNTYgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vYXBpYy5oIgoxNDQ3NDogIGNoYXIgKm5hbWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVj
dCBhcGljICphcGljOwoxNDQ3NDogIyAzODQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5o
IgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBhcGljICpfX2FwaWNkcml2ZXJzW10sICpfX2FwaWNkcml2
ZXJzX2VuZFtdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiBpbnQgd2FrZXVwX3NlY29uZGFyeV9jcHVfdmlhX25taShpbnQgYXBpY2lkLCB1bnNp
Z25lZCBsb25nIHN0YXJ0X2VpcCk7CjE0NDc0OiBleHRlcm4gaW50IGxhcGljX2Nhbl91bnBsdWdf
Y3B1KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgYXBp
Y19yZWFkKHUzMiByZWcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGFwaWMtPnJlYWQocmVnKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcGljX3dyaXRlKHUzMiByZWcsIHUzMiB2YWwp
CjE0NDc0OiB7CjE0NDc0OiAgYXBpYy0+d3JpdGUocmVnLCB2YWwpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGFwaWNfZW9pKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgYXBpYy0+ZW9pX3dy
aXRlKDB4QjAsIDB4MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBhcGljX2ljcl9yZWFk
KHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGFwaWMtPmljcl9yZWFkKCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgYXBpY19pY3Jfd3JpdGUodTMyIGxvdywgdTMyIGhpZ2gpCjE0
NDc0OiB7CjE0NDc0OiAgYXBpYy0+aWNyX3dyaXRlKGxvdywgaGlnaCk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYXBpY193YWl0X2ljcl9pZGxlKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAg
YXBpYy0+d2FpdF9pY3JfaWRsZSgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgc2FmZV9h
cGljX3dhaXRfaWNyX2lkbGUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXBpYy0+c2Fm
ZV93YWl0X2ljcl9pZGxlKCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIF9f
YXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChf
X2NvbGRfXykpIGFwaWNfc2V0X2VvaV93cml0ZSh2b2lkICgqZW9pX3dyaXRlKSh1MzIgcmVnLCB1
MzIgdikpOwoxNDQ3NDogIyA0NDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5oIgoxNDQ3
NDogZXh0ZXJuIHZvaWQgYXBpY19hY2tfaXJxKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSk7CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYWNrX0FQSUNfaXJxKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhcGljX2VvaSgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgbGFwaWNfdmVjdG9yX3NldF9pbl9pcnIodW5zaWduZWQgaW50IHZl
Y3RvcikKMTQ0NzQ6IHsKMTQ0NzQ6ICB1MzIgaXJyID0gYXBpY19yZWFkKDB4MjAwICsgKHZlY3Rv
ciAvIDMyICogMHgxMCkpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuICEhKGlyciAmICgxVSA8PCAo
dmVjdG9yICUgMzIpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGRlZmF1bHRf
Z2V0X2FwaWNfaWQodW5zaWduZWQgbG9uZyB4KQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGlu
dCB2ZXIgPSAoKGFwaWNfcmVhZCgweDMwKSkgJiAweEZGdSk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAo
KCh2ZXIpID49IDB4MTQpIHx8IChfX2J1aWx0aW5fY29uc3RhbnRfcCgoIDMqMzIrMjYpKSAmJiAo
ICgoKCggMyozMisyNikpPj41KT09KDApICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgKCgx
PDwoKCAwKjMyKyAwKSAmIDMxKSl8MHwoMTw8KCggMCozMisgNSkgJiAzMSkpfCgxPDwoKCAwKjMy
KyA2KSAmIDMxKSl8ICgxPDwoKCAwKjMyKyA4KSAmIDMxKSl8MHwoMTw8KCggMCozMisyNCkgJiAz
MSkpfCgxPDwoKCAwKjMyKzE1KSAmIDMxKSl8ICgxPDwoKCAwKjMyKzI1KSAmIDMxKSl8KDE8PCgo
IDAqMzIrMjYpICYgMzEpKSkgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMSkgJiYgKDFVTDw8
KCgoIDMqMzIrMjYpKSYzMSkgJiAoKDE8PCgoIDEqMzIrMjkpICYgMzEpKXwwKSApKSB8fCAoKCgo
IDMqMzIrMjYpKT4+NSk9PSgyKSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwg
KCgoKCAzKjMyKzI2KSk+PjUpPT0oMykgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAoKDE8
PCgoIDMqMzIrMjApICYgMzEpKSkgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oNCkgJiYgKDFV
TDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAoMCkgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oNSkg
JiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyozMisyNikpPj41KT09
KDYpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+
NSk9PSg3KSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2
KSk+PjUpPT0oOCkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyoz
MisyNikpPj41KT09KDkpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgo
IDMqMzIrMjYpKT4+NSk9PSgxMCkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8
ICgoKCggMyozMisyNikpPj41KT09KDExKSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAg
KSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMTIpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEp
ICYgMCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9PSgxMykgJiYgKDFVTDw8KCgoIDMqMzIrMjYp
KSYzMSkgJiAwICkpIHx8ICgoKCggMyozMisyNikpPj41KT09KDE0KSAmJiAoMVVMPDwoKCggMyoz
MisyNikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMTUpICYmICgxVUw8PCgo
KCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9PSgxNikgJiYgKDFV
TDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyozMisyNikpPj41KT09KDE3KSAm
JiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0o
MTgpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKGludCkoc2l6ZW9mKHN0
cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkgfHwgKChpbnQpKHNpemVvZihzdHJ1Y3Qg
eyBpbnQ6KC0hISgxOSAhPSAxOSkpOyB9KSkpKSA/IDEgOiB0ZXN0X2JpdCgoIDMqMzIrMjYpLCAo
dW5zaWduZWQgbG9uZyAqKSgoJmJvb3RfY3B1X2RhdGEpLT54ODZfY2FwYWJpbGl0eSkpKSkKMTQ0
NzQ6ICAgcmV0dXJuICh4ID4+IDI0KSAmIDB4RkY7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1
cm4gKHggPj4gMjQpICYgMHgwRjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZ2VuZXJpY19i
aWdzbXBfcHJvYmUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgiIDEKMTQ0NzQ6ICMgNDg2ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2FwaWMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLnJlYWRfbW9zdGx5Iikp
KSBfX3R5cGVvZl9fKHUxNikgeDg2X2Jpb3NfY3B1X2FwaWNpZDsgZXh0ZXJuIF9fdHlwZW9mX18o
dTE2KSAqeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7IGV4dGVybiBfX3R5cGVvZl9fKHUx
NikgeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9tYXBbXTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHN0cnVjdCBhcGljIGFwaWNfbm9vcDsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IHJlYWRf
YXBpY19pZCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGludCByZWcgPSBhcGljX3Jl
YWQoMHgyMCk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gYXBpYy0+Z2V0X2FwaWNfaWQocmVnKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBkZWZhdWx0X2FwaWNfaWRfdmFsaWQo
dTMyIGFwaWNpZCk7CjE0NDc0OiBleHRlcm4gaW50IGRlZmF1bHRfYWNwaV9tYWR0X29lbV9jaGVj
ayhjaGFyICosIGNoYXIgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBkZWZhdWx0X3NldHVwX2FwaWNf
cm91dGluZyh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHUzMiBhcGljX2RlZmF1bHRfY2Fs
Y19hcGljaWQodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0OiBleHRlcm4gdTMyIGFwaWNfZmxhdF9j
YWxjX2FwaWNpZCh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wg
ZGVmYXVsdF9jaGVja19hcGljaWRfdXNlZChwaHlzaWRfbWFza190ICptYXAsIGludCBhcGljaWQp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGVmYXVsdF9pb2FwaWNfcGh5c19pZF9tYXAocGh5c2lkX21h
c2tfdCAqcGh5c19tYXAsIHBoeXNpZF9tYXNrX3QgKnJldG1hcCk7CjE0NDc0OiBleHRlcm4gaW50
IGRlZmF1bHRfY3B1X3ByZXNlbnRfdG9fYXBpY2lkKGludCBtcHNfY3B1KTsKMTQ0NzQ6IGV4dGVy
biBpbnQgZGVmYXVsdF9jaGVja19waHlzX2FwaWNpZF9wcmVzZW50KGludCBwaHlzX2FwaWNpZCk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGJvb2wgYXBpY19pZF9pc19w
cmltYXJ5X3RocmVhZCh1bnNpZ25lZCBpbnQgaWQpOwoxNDQ3NDogdm9pZCBhcGljX3NtdF91cGRh
dGUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHZvaWQgaXJxX2VudGVyKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaXJxX2V4aXQo
dm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZW50ZXJpbmdfaXJxKHZvaWQpCjE0NDc0OiB7CjE0
NDc0OiAgaXJxX2VudGVyKCk7CjE0NDc0OiAga3ZtX3NldF9jcHVfbDF0Zl9mbHVzaF9sMWQoKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBlbnRlcmluZ19hY2tfaXJxKHZvaWQpCjE0NDc0
OiB7CjE0NDc0OiAgZW50ZXJpbmdfaXJxKCk7CjE0NDc0OiAgYWNrX0FQSUNfaXJxKCk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaXBpX2VudGVyaW5nX2Fja19pcnEodm9pZCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICBpcnFfZW50ZXIoKTsKMTQ0NzQ6ICBhY2tfQVBJQ19pcnEoKTsKMTQ0NzQ6ICBr
dm1fc2V0X2NwdV9sMXRmX2ZsdXNoX2wxZCgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGV4aXRpbmdfaXJxKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgaXJxX2V4aXQoKTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBleGl0aW5nX2Fja19pcnEodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBhY2tfQVBJQ19pcnEoKTsKMTQ0NzQ6ICBpcnFfZXhpdCgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gdm9pZCBpb2FwaWNfemFwX2xvY2tzKHZvaWQpOwoxNDQ3NDogIyAxNCAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zbXAuaCIgMgoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaW9fYXBpYy5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9pcnFfdmVjdG9ycy5oIiAxCjE0NDc0OiAjIDkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
aW9fYXBpYy5oIiAyCjE0NDc0OiAjIDI4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lvX2FwaWMu
aCIKMTQ0NzQ6IHVuaW9uIElPX0FQSUNfcmVnXzAwIHsKMTQ0NzQ6ICB1MzIgcmF3OwoxNDQ3NDog
IHN0cnVjdCB7CjE0NDc0OiAgIHUzMiBfX3Jlc2VydmVkXzIgOiAxNCwKMTQ0NzQ6ICAgIExUUyA6
IDEsCjE0NDc0OiAgICBkZWxpdmVyeV90eXBlIDogMSwKMTQ0NzQ6ICAgIF9fcmVzZXJ2ZWRfMSA6
IDgsCjE0NDc0OiAgICBJRCA6IDg7CjE0NDc0OiAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkg
Yml0czsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIElPX0FQSUNfcmVnXzAxIHsKMTQ0
NzQ6ICB1MzIgcmF3OwoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHUzMiB2ZXJzaW9uIDogOCwK
MTQ0NzQ6ICAgIF9fcmVzZXJ2ZWRfMiA6IDcsCjE0NDc0OiAgICBQUlEgOiAxLAoxNDQ3NDogICAg
ZW50cmllcyA6IDgsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzEgOiA4OwoxNDQ3NDogIH0gX19hdHRy
aWJ1dGVfXyAoKHBhY2tlZCkpIGJpdHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBJ
T19BUElDX3JlZ18wMiB7CjE0NDc0OiAgdTMyIHJhdzsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDog
ICB1MzIgX19yZXNlcnZlZF8yIDogMjQsCjE0NDc0OiAgICBhcmJpdHJhdGlvbiA6IDQsCjE0NDc0
OiAgICBfX3Jlc2VydmVkXzEgOiA0OwoxNDQ3NDogIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkp
IGJpdHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBJT19BUElDX3JlZ18wMyB7CjE0
NDc0OiAgdTMyIHJhdzsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1MzIgYm9vdF9EVCA6IDEs
CjE0NDc0OiAgICBfX3Jlc2VydmVkXzEgOiAzMTsKMTQ0NzQ6ICB9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKSBiaXRzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IElPX0FQSUNfcm91
dGVfZW50cnkgewoxNDQ3NDogIF9fdTMyIHZlY3RvciA6IDgsCjE0NDc0OiAgIGRlbGl2ZXJ5X21v
ZGUgOiAzLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBkZXN0X21vZGUgOiAxLAox
NDQ3NDogICBkZWxpdmVyeV9zdGF0dXMgOiAxLAoxNDQ3NDogICBwb2xhcml0eSA6IDEsCjE0NDc0
OiAgIGlyciA6IDEsCjE0NDc0OiAgIHRyaWdnZXIgOiAxLAoxNDQ3NDogICBtYXNrIDogMSwKMTQ0
NzQ6ICAgX19yZXNlcnZlZF8yIDogMTU7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBfX3Jlc2VydmVk
XzMgOiAyNCwKMTQ0NzQ6ICAgZGVzdCA6IDg7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18gKChwYWNr
ZWQpKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IElSX0lPX0FQSUNfcm91dGVfZW50cnkgewoxNDQ3
NDogIF9fdTY0IHZlY3RvciA6IDgsCjE0NDc0OiAgIHplcm8gOiAzLAoxNDQ3NDogICBpbmRleDIg
OiAxLAoxNDQ3NDogICBkZWxpdmVyeV9zdGF0dXMgOiAxLAoxNDQ3NDogICBwb2xhcml0eSA6IDEs
CjE0NDc0OiAgIGlyciA6IDEsCjE0NDc0OiAgIHRyaWdnZXIgOiAxLAoxNDQ3NDogICBtYXNrIDog
MSwKMTQ0NzQ6ICAgcmVzZXJ2ZWQgOiAzMSwKMTQ0NzQ6ICAgZm9ybWF0IDogMSwKMTQ0NzQ6ICAg
aW5kZXggOiAxNTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgaXJxX2FsbG9jX2luZm87CjE0NDc0OiBzdHJ1Y3QgaW9hcGljX2RvbWFpbl9j
Zmc7CjE0NDc0OiAjIDEyMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb19hcGljLmgiCjE0NDc0
OiBleHRlcm4gaW50IG5yX2lvYXBpY3M7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbXBjX2lv
YXBpY19pZChpbnQgaW9hcGljKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgbXBjX2lvYXBp
Y19hZGRyKGludCBpb2FwaWMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbXBf
aXJxX2VudHJpZXM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBtcGNfaW50
c3JjIG1wX2lycXNbKDI1NiAqIDQpXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50
IHNraXBfaW9hcGljX3NldHVwOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbm9p
b2FwaWNxdWlyazsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IG5vaW9hcGljcmVy
b3V0ZTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHUzMiBnc2lfdG9wOwoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gdW5zaWduZWQgbG9uZyBpb19hcGljX2lycXM7CjE0NDc0OiAjIDE1NiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9pb19hcGljLmgiCjE0NDc0OiBzdHJ1Y3QgaXJxX2NmZzsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGlvYXBpY19pbnNlcnRfcmVzb3VyY2VzKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGlu
dCBhcmNoX2Vhcmx5X2lvYXBpY19pbml0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50
IHNhdmVfaW9hcGljX2VudHJpZXModm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBtYXNrX2lvYXBp
Y19lbnRyaWVzKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCByZXN0b3JlX2lvYXBpY19lbnRyaWVz
KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzZXR1cF9pb2FwaWNfaWRzX2Zyb21f
bXBjKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0dXBfaW9hcGljX2lkc19mcm9tX21wY19u
b2NoZWNrKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IG1wX2ZpbmRfaW9hcGljKHUz
MiBnc2kpOwoxNDQ3NDogZXh0ZXJuIGludCBtcF9maW5kX2lvYXBpY19waW4oaW50IGlvYXBpYywg
dTMyIGdzaSk7CjE0NDc0OiBleHRlcm4gaW50IG1wX21hcF9nc2lfdG9faXJxKHUzMiBnc2ksIHVu
c2lnbmVkIGludCBmbGFncywKMTQ0NzQ6ICAgICAgICAgc3RydWN0IGlycV9hbGxvY19pbmZvICpp
bmZvKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIG1wX3VubWFwX2lycShpbnQgaXJxKTsKMTQ0NzQ6IGV4
dGVybiBpbnQgbXBfcmVnaXN0ZXJfaW9hcGljKGludCBpZCwgdTMyIGFkZHJlc3MsIHUzMiBnc2lf
YmFzZSwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBpb2FwaWNfZG9tYWluX2NmZyAqY2ZnKTsKMTQ0
NzQ6IGV4dGVybiBpbnQgbXBfdW5yZWdpc3Rlcl9pb2FwaWModTMyIGdzaV9iYXNlKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgbXBfaW9hcGljX3JlZ2lzdGVyZWQodTMyIGdzaV9iYXNlKTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIHZvaWQgaW9hcGljX3NldF9hbGxvY19hdHRyKHN0cnVjdCBpcnFfYWxsb2Nf
aW5mbyAqaW5mbywKMTQ0NzQ6ICAgICAgIGludCBub2RlLCBpbnQgdHJpZ2dlciwgaW50IHBvbGFy
aXR5KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgbXBfc2F2ZV9pcnEoc3RydWN0IG1wY19p
bnRzcmMgKm0pOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBkaXNhYmxlX2lvYXBpY19zdXBw
b3J0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBpb19hcGlj
X2luaXRfbWFwcGluZ3Modm9pZCk7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgaW50IG5hdGl2ZV9p
b19hcGljX3JlYWQodW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcpOwoxNDQ3NDog
ZXh0ZXJuIHZvaWQgbmF0aXZlX3Jlc3RvcmVfYm9vdF9pcnFfbW9kZSh2b2lkKTsKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdW5zaWduZWQgaW50IGlvX2FwaWNfcmVhZCh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWdu
ZWQgaW50IHJlZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4geDg2X2FwaWNfb3BzLmlvX2FwaWNf
cmVhZChhcGljLCByZWcpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzZXR1
cF9JT19BUElDKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZW5hYmxlX0lPX0FQSUModm9pZCk7
CjE0NDc0OiBleHRlcm4gdm9pZCBjbGVhcl9JT19BUElDKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgcmVzdG9yZV9ib290X2lycV9tb2RlKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCBJT19BUElD
X2dldF9QQ0lfaXJxX3ZlY3RvcihpbnQgYnVzLCBpbnQgZGV2Zm4sIGludCBwaW4pOwoxNDQ3NDog
ZXh0ZXJuIHZvaWQgcHJpbnRfSU9fQVBJQ3Modm9pZCk7CjE0NDc0OiAjIDE2ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3NtcC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBzbXBfbnVtX3NpYmxpbmdzOwoxNDQ3NDogZXh0ZXJuIHVu
c2lnbmVkIGludCBudW1fcHJvY2Vzc29yczsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIF9fYXR0cmli
dXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLnJlYWRfbW9zdGx5IikpKSBfX3R5cGVv
Zl9fKGNwdW1hc2tfdmFyX3QpIGNwdV9zaWJsaW5nX21hcDsKMTQ0NzQ6IGV4dGVybiBfX2F0dHJp
YnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBl
b2ZfXyhjcHVtYXNrX3Zhcl90KSBjcHVfY29yZV9tYXA7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1
dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4ucmVhZF9tb3N0bHkiKSkpIF9fdHlwZW9m
X18oY3B1bWFza192YXJfdCkgY3B1X2RpZV9tYXA7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0
dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190
eXBlb2ZfXyhjcHVtYXNrX3Zhcl90KSBjcHVfbGxjX3NoYXJlZF9tYXA7CjE0NDc0OiBleHRlcm4g
X19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4ucmVhZF9tb3N0bHkiKSkp
IF9fdHlwZW9mX18odTE2KSBjcHVfbGxjX2lkOwoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18o
KHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLnJlYWRfbW9zdGx5IikpKSBfX3R5cGVvZl9fKGlu
dCkgY3B1X251bWJlcjsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGNwdW1hc2sgKmNwdV9sbGNfc2hh
cmVkX21hc2soaW50IGNwdSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCooeyBkbyB7IGNvbnN0
IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X2xsY19zaGFyZWRfbWFwKSkgKyAw
KSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsgKHsgdW5zaWdu
ZWQgbG9uZyBfX3B0cjsgX19hc21fXyAoIiIgOiAiPXIiKF9fcHRyKSA6ICIwIigodHlwZW9mKCoo
KCYoY3B1X2xsY19zaGFyZWRfbWFwKSkpKSAqKSgoJihjcHVfbGxjX3NoYXJlZF9tYXApKSkpKTsg
KHR5cGVvZigodHlwZW9mKCooKCYoY3B1X2xsY19zaGFyZWRfbWFwKSkpKSAqKSgoJihjcHVfbGxj
X3NoYXJlZF9tYXApKSkpKSAoX19wdHIgKyAoKChfX3Blcl9jcHVfb2Zmc2V0WyhjcHUpXSkpKSk7
IH0pOyB9KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChz
ZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyh1MTYp
IHg4Nl9jcHVfdG9fYXBpY2lkOyBleHRlcm4gX190eXBlb2ZfXyh1MTYpICp4ODZfY3B1X3RvX2Fw
aWNpZF9lYXJseV9wdHI7IGV4dGVybiBfX3R5cGVvZl9fKHUxNikgeDg2X2NwdV90b19hcGljaWRf
ZWFybHlfbWFwW107CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEu
LnBlcmNwdSIgIi4ucmVhZF9tb3N0bHkiKSkpIF9fdHlwZW9mX18odTMyKSB4ODZfY3B1X3RvX2Fj
cGlpZDsgZXh0ZXJuIF9fdHlwZW9mX18odTMyKSAqeDg2X2NwdV90b19hY3BpaWRfZWFybHlfcHRy
OyBleHRlcm4gX190eXBlb2ZfXyh1MzIpIHg4Nl9jcHVfdG9fYWNwaWlkX2Vhcmx5X21hcFtdOwox
NDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLnJl
YWRfbW9zdGx5IikpKSBfX3R5cGVvZl9fKHUxNikgeDg2X2Jpb3NfY3B1X2FwaWNpZDsgZXh0ZXJu
IF9fdHlwZW9mX18odTE2KSAqeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7IGV4dGVybiBf
X3R5cGVvZl9fKHUxNikgeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9tYXBbXTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3Qgc21wX29wcyB7CjE0NDc0OiAgdm9pZCAoKnNtcF9wcmVwYXJlX2Jvb3Rf
Y3B1KSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqc21wX3ByZXBhcmVfY3B1cykodW5zaWduZWQgbWF4
X2NwdXMpOwoxNDQ3NDogIHZvaWQgKCpzbXBfY3B1c19kb25lKSh1bnNpZ25lZCBtYXhfY3B1cyk7
CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc3RvcF9vdGhlcl9jcHVzKShpbnQgd2FpdCk7CjE0NDc0
OiAgdm9pZCAoKmNyYXNoX3N0b3Bfb3RoZXJfY3B1cykodm9pZCk7CjE0NDc0OiAgdm9pZCAoKnNt
cF9zZW5kX3Jlc2NoZWR1bGUpKGludCBjcHUpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqY3B1X3Vw
KSh1bnNpZ25lZCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGlkbGUpOwoxNDQ3NDogIGludCAo
KmNwdV9kaXNhYmxlKSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqY3B1X2RpZSkodW5zaWduZWQgaW50
IGNwdSk7CjE0NDc0OiAgdm9pZCAoKnBsYXlfZGVhZCkodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqc2VuZF9jYWxsX2Z1bmNfaXBpKShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzayk7CjE0
NDc0OiAgdm9pZCAoKnNlbmRfY2FsbF9mdW5jX3NpbmdsZV9pcGkpKGludCBjcHUpOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzZXRfY3B1X3NpYmxpbmdfbWFw
KGludCBjcHUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgc21wX29wcyBz
bXBfb3BzOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNtcF9zZW5kX3N0b3Aodm9pZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBzbXBfb3BzLnN0b3Bfb3RoZXJfY3B1cygwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBzdG9wX290aGVyX2NwdXModm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzbXBfb3BzLnN0
b3Bfb3RoZXJfY3B1cygxKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzbXBfcHJlcGFy
ZV9ib290X2NwdSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHNtcF9vcHMuc21wX3ByZXBhcmVfYm9v
dF9jcHUoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzbXBfcHJlcGFyZV9jcHVzKHVu
c2lnbmVkIGludCBtYXhfY3B1cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzbXBfb3BzLnNtcF9wcmVwYXJl
X2NwdXMobWF4X2NwdXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNtcF9jcHVzX2Rv
bmUodW5zaWduZWQgaW50IG1heF9jcHVzKQoxNDQ3NDogewoxNDQ3NDogIHNtcF9vcHMuc21wX2Nw
dXNfZG9uZShtYXhfY3B1cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2NwdV91cCh1
bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRpZGxlKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBzbXBfb3BzLmNwdV91cChjcHUsIHRpZGxlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IF9fY3B1X2Rpc2FibGUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gc21w
X29wcy5jcHVfZGlzYWJsZSgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fY3B1X2Rp
ZSh1bnNpZ25lZCBpbnQgY3B1KQoxNDQ3NDogewoxNDQ3NDogIHNtcF9vcHMuY3B1X2RpZShjcHUp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBsYXlfZGVhZCh2b2lkKQoxNDQ3NDogewox
NDQ3NDogIHNtcF9vcHMucGxheV9kZWFkKCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
c21wX3NlbmRfcmVzY2hlZHVsZShpbnQgY3B1KQoxNDQ3NDogewoxNDQ3NDogIHNtcF9vcHMuc21w
X3NlbmRfcmVzY2hlZHVsZShjcHUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hf
c2VuZF9jYWxsX2Z1bmN0aW9uX3NpbmdsZV9pcGkoaW50IGNwdSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBz
bXBfb3BzLnNlbmRfY2FsbF9mdW5jX3NpbmdsZV9pcGkoY3B1KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBhcmNoX3NlbmRfY2FsbF9mdW5jdGlvbl9pcGlfbWFzayhjb25zdCBzdHJ1Y3Qg
Y3B1bWFzayAqbWFzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzbXBfb3BzLnNlbmRfY2FsbF9mdW5jX2lw
aShtYXNrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCBjcHVfZGlzYWJsZV9jb21tb24o
dm9pZCk7CjE0NDc0OiB2b2lkIG5hdGl2ZV9zbXBfcHJlcGFyZV9ib290X2NwdSh2b2lkKTsKMTQ0
NzQ6IHZvaWQgbmF0aXZlX3NtcF9wcmVwYXJlX2NwdXModW5zaWduZWQgaW50IG1heF9jcHVzKTsK
MTQ0NzQ6IHZvaWQgY2FsY3VsYXRlX21heF9sb2dpY2FsX3BhY2thZ2VzKHZvaWQpOwoxNDQ3NDog
dm9pZCBuYXRpdmVfc21wX2NwdXNfZG9uZSh1bnNpZ25lZCBpbnQgbWF4X2NwdXMpOwoxNDQ3NDog
aW50IGNvbW1vbl9jcHVfdXAodW5zaWduZWQgaW50IGNwdW51bSwgc3RydWN0IHRhc2tfc3RydWN0
ICp0aWRsZSk7CjE0NDc0OiBpbnQgbmF0aXZlX2NwdV91cCh1bnNpZ25lZCBpbnQgY3B1bnVtLCBz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnRpZGxlKTsKMTQ0NzQ6IGludCBuYXRpdmVfY3B1X2Rpc2FibGUo
dm9pZCk7CjE0NDc0OiBpbnQgY29tbW9uX2NwdV9kaWUodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0
OiB2b2lkIG5hdGl2ZV9jcHVfZGllKHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogdm9pZCBobHRf
cGxheV9kZWFkKHZvaWQpOwoxNDQ3NDogdm9pZCBuYXRpdmVfcGxheV9kZWFkKHZvaWQpOwoxNDQ3
NDogdm9pZCBwbGF5X2RlYWRfY29tbW9uKHZvaWQpOwoxNDQ3NDogdm9pZCB3YmludmRfb25fY3B1
KGludCBjcHUpOwoxNDQ3NDogaW50IHdiaW52ZF9vbl9hbGxfY3B1cyh2b2lkKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCBuYXRpdmVfc21wX3NlbmRfcmVzY2hlZHVsZShpbnQgY3B1KTsKMTQ0NzQ6IHZv
aWQgbmF0aXZlX3NlbmRfY2FsbF9mdW5jX2lwaShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzayk7
CjE0NDc0OiB2b2lkIG5hdGl2ZV9zZW5kX2NhbGxfZnVuY19zaW5nbGVfaXBpKGludCBjcHUpOwox
NDQ3NDogdm9pZCB4ODZfaWRsZV90aHJlYWRfaW5pdCh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKmlkbGUpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHNtcF9zdG9yZV9ib290X2Nw
dV9pbmZvKHZvaWQpOwoxNDQ3NDogdm9pZCBzbXBfc3RvcmVfY3B1X2luZm8oaW50IGlkKTsKMTQ0
NzQ6IAoxNDQ3NDogIF9fYXR0cmlidXRlX18oKF9fZXh0ZXJuYWxseV92aXNpYmxlX18pKSB2b2lk
IHNtcF9yZWJvb3RfaW50ZXJydXB0KHZvaWQpOwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19leHRl
cm5hbGx5X3Zpc2libGVfXykpIHZvaWQgc21wX3Jlc2NoZWR1bGVfaW50ZXJydXB0KHN0cnVjdCBw
dF9yZWdzICpyZWdzKTsKMTQ0NzQ6IF9fYXR0cmlidXRlX18oKF9fZXh0ZXJuYWxseV92aXNpYmxl
X18pKSB2b2lkIHNtcF9jYWxsX2Z1bmN0aW9uX2ludGVycnVwdChzdHJ1Y3QgcHRfcmVncyAqcmVn
cyk7CjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSkgdm9pZCBz
bXBfY2FsbF9mdW5jdGlvbl9zaW5nbGVfaW50ZXJydXB0KHN0cnVjdCBwdF9yZWdzICpyKTsKMTQ0
NzQ6ICMgMTg1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NtcC5oIgoxNDQ3NDogZXh0ZXJuIHVu
c2lnbmVkIGRpc2FibGVkX2NwdXM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBo
YXJkX3NtcF9wcm9jZXNzb3JfaWQodm9pZCk7CjE0NDc0OiAjIDY4ICIuL2luY2x1ZGUvbGludXgv
c21wLmgiIDIKMTQ0NzQ6ICMgNzcgIi4vaW5jbHVkZS9saW51eC9zbXAuaCIKMTQ0NzQ6IGV4dGVy
biB2b2lkIHNtcF9zZW5kX3N0b3Aodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHNtcF9zZW5kX3Jlc2NoZWR1bGUoaW50IGNwdSk7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgc21w
X3ByZXBhcmVfY3B1cyh1bnNpZ25lZCBpbnQgbWF4X2NwdXMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fY3B1X3VwKHVuc2lnbmVkIGludCBjcHVu
dW0sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGlkbGUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzbXBfY3B1c19kb25lKHVuc2lnbmVkIGludCBtYXhf
Y3B1cyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc21wX2Nh
bGxfZnVuY3Rpb24oc21wX2NhbGxfZnVuY190IGZ1bmMsIHZvaWQgKmluZm8sIGludCB3YWl0KTsK
MTQ0NzQ6IHZvaWQgc21wX2NhbGxfZnVuY3Rpb25fbWFueShjb25zdCBzdHJ1Y3QgY3B1bWFzayAq
bWFzaywKMTQ0NzQ6ICAgICAgICBzbXBfY2FsbF9mdW5jX3QgZnVuYywgdm9pZCAqaW5mbywgYm9v
bCB3YWl0KTsKMTQ0NzQ6IAoxNDQ3NDogaW50IHNtcF9jYWxsX2Z1bmN0aW9uX2FueShjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqbWFzaywKMTQ0NzQ6ICAgICAgc21wX2NhbGxfZnVuY190IGZ1bmMsIHZv
aWQgKmluZm8sIGludCB3YWl0KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBraWNrX2FsbF9jcHVzX3N5
bmModm9pZCk7CjE0NDc0OiB2b2lkIHdha2VfdXBfYWxsX2lkbGVfY3B1cyh2b2lkKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBjYWxsX2Z1
bmN0aW9uX2luaXQodm9pZCk7CjE0NDc0OiB2b2lkIGdlbmVyaWNfc21wX2NhbGxfZnVuY3Rpb25f
c2luZ2xlX2ludGVycnVwdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBzbXBfcHJlcGFyZV9ib290X2NwdSh2
b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCBzZXR1cF9tYXhfY3B1czsK
MTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0
IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHNldHVwX25yX2NwdV9pZHModm9pZCk7CjE0
NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIp
KSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBzbXBfaW5pdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIGludCBfX2Jvb3RfY3B1X2lkOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZ2V0X2Jvb3Rf
Y3B1X2lkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fYm9vdF9jcHVfaWQ7CjE0NDc0
OiB9CjE0NDc0OiAjIDIyOCAiLi9pbmNsdWRlL2xpbnV4L3NtcC5oIgoxNDQ3NDogZXh0ZXJuIHZv
aWQgYXJjaF9kaXNhYmxlX3NtcF9zdXBwb3J0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
dm9pZCBhcmNoX2VuYWJsZV9ub25ib290X2NwdXNfYmVnaW4odm9pZCk7CjE0NDc0OiBleHRlcm4g
dm9pZCBhcmNoX2VuYWJsZV9ub25ib290X2NwdXNfZW5kKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiB2
b2lkIHNtcF9zZXR1cF9wcm9jZXNzb3JfaWQodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGludCBzbXBf
Y2FsbF9vbl9jcHUodW5zaWduZWQgaW50IGNwdSwgaW50ICgqZnVuYykodm9pZCAqKSwgdm9pZCAq
cGFyLAoxNDQ3NDogICAgICAgYm9vbCBwaHlzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQg
c21wY2ZkX3ByZXBhcmVfY3B1KHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogaW50IHNtcGNmZF9k
ZWFkX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IGludCBzbXBjZmRfZHlpbmdfY3B1KHVu
c2lnbmVkIGludCBjcHUpOwoxNDQ3NDogIyA4ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LmgiIDIK
MTQ0NzQ6ICMgNjUgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUuaCIKMTQ0NzQ6IGV4dGVybiB2b2lk
ICpwY3B1X2Jhc2VfYWRkcjsKMTQ0NzQ6IGV4dGVybiBjb25zdCB1bnNpZ25lZCBsb25nICpwY3B1
X3VuaXRfb2Zmc2V0czsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBjcHVfZ3JvdXBfaW5mbyB7CjE0
NDc0OiAgaW50IG5yX3VuaXRzOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgYmFzZV9vZmZzZXQ7CjE0
NDc0OiAgdW5zaWduZWQgaW50ICpjcHVfbWFwOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgcGNwdV9hbGxvY19pbmZvIHsKMTQ0NzQ6ICBzaXplX3Qgc3RhdGljX3NpemU7
CjE0NDc0OiAgc2l6ZV90IHJlc2VydmVkX3NpemU7CjE0NDc0OiAgc2l6ZV90IGR5bl9zaXplOwox
NDQ3NDogIHNpemVfdCB1bml0X3NpemU7CjE0NDc0OiAgc2l6ZV90IGF0b21fc2l6ZTsKMTQ0NzQ6
ICBzaXplX3QgYWxsb2Nfc2l6ZTsKMTQ0NzQ6ICBzaXplX3QgX19haV9zaXplOwoxNDQ3NDogIGlu
dCBucl9ncm91cHM7CjE0NDc0OiAgc3RydWN0IHBjcHVfZ3JvdXBfaW5mbyBncm91cHNbXTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcGNwdV9mYyB7CjE0NDc0OiAgUENQVV9GQ19BVVRP
LAoxNDQ3NDogIFBDUFVfRkNfRU1CRUQsCjE0NDc0OiAgUENQVV9GQ19QQUdFLAoxNDQ3NDogCjE0
NDc0OiAgUENQVV9GQ19OUiwKMTQ0NzQ6IH07CjE0NDc0OiBleHRlcm4gY29uc3QgY2hhciAqIGNv
bnN0IHBjcHVfZmNfbmFtZXNbUENQVV9GQ19OUl07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBlbnVt
IHBjcHVfZmMgcGNwdV9jaG9zZW5fZmM7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdm9pZCAqICgq
cGNwdV9mY19hbGxvY19mbl90KSh1bnNpZ25lZCBpbnQgY3B1LCBzaXplX3Qgc2l6ZSwKMTQ0NzQ6
ICAgICAgICAgIHNpemVfdCBhbGlnbik7CjE0NDc0OiB0eXBlZGVmIHZvaWQgKCpwY3B1X2ZjX2Zy
ZWVfZm5fdCkodm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSk7CjE0NDc0OiB0eXBlZGVmIHZvaWQgKCpw
Y3B1X2ZjX3BvcHVsYXRlX3B0ZV9mbl90KSh1bnNpZ25lZCBsb25nIGFkZHIpOwoxNDQ3NDogdHlw
ZWRlZiBpbnQgKHBjcHVfZmNfY3B1X2Rpc3RhbmNlX2ZuX3QpKHVuc2lnbmVkIGludCBmcm9tLCB1
bnNpZ25lZCBpbnQgdG8pOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHBjcHVfYWxsb2Nf
aW5mbyAqIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJp
YnV0ZV9fKChfX2NvbGRfXykpIHBjcHVfYWxsb2NfYWxsb2NfaW5mbyhpbnQgbnJfZ3JvdXBzLAox
NDQ3NDogICAgICAgICAgICAgaW50IG5yX3VuaXRzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0
cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2Nv
bGRfXykpIHBjcHVfZnJlZV9hbGxvY19pbmZvKHN0cnVjdCBwY3B1X2FsbG9jX2luZm8gKmFpKTsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5p
bml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgcGNwdV9zZXR1cF9maXJzdF9j
aHVuayhjb25zdCBzdHJ1Y3QgcGNwdV9hbGxvY19pbmZvICphaSwKMTQ0NzQ6ICAgICAgIHZvaWQg
KmJhc2VfYWRkcik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0
ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18p
KSBwY3B1X2VtYmVkX2ZpcnN0X2NodW5rKHNpemVfdCByZXNlcnZlZF9zaXplLCBzaXplX3QgZHlu
X3NpemUsCjE0NDc0OiAgICAgc2l6ZV90IGF0b21fc2l6ZSwKMTQ0NzQ6ICAgICBwY3B1X2ZjX2Nw
dV9kaXN0YW5jZV9mbl90IGNwdV9kaXN0YW5jZV9mbiwKMTQ0NzQ6ICAgICBwY3B1X2ZjX2FsbG9j
X2ZuX3QgYWxsb2NfZm4sCjE0NDc0OiAgICAgcGNwdV9mY19mcmVlX2ZuX3QgZnJlZV9mbik7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9f
c2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHBjcHVf
cGFnZV9maXJzdF9jaHVuayhzaXplX3QgcmVzZXJ2ZWRfc2l6ZSwKMTQ0NzQ6ICAgICBwY3B1X2Zj
X2FsbG9jX2ZuX3QgYWxsb2NfZm4sCjE0NDc0OiAgICAgcGNwdV9mY19mcmVlX2ZuX3QgZnJlZV9m
biwKMTQ0NzQ6ICAgICBwY3B1X2ZjX3BvcHVsYXRlX3B0ZV9mbl90IHBvcHVsYXRlX3B0ZV9mbik7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgKl9fYWxsb2NfcmVzZXJ2ZWRfcGVy
Y3B1KHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ24pOwoxNDQ3NDogZXh0ZXJuIGJvb2wgX19pc19r
ZXJuZWxfcGVyY3B1X2FkZHJlc3ModW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nICpj
YW5fYWRkcik7CjE0NDc0OiBleHRlcm4gYm9vbCBpc19rZXJuZWxfcGVyY3B1X2FkZHJlc3ModW5z
aWduZWQgbG9uZyBhZGRyKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCAqX19hbGxvY19wZXJjcHVfZ2ZwKHNpemVfdCBzaXplLCBzaXpl
X3QgYWxpZ24sIGdmcF90IGdmcCk7CjE0NDc0OiBleHRlcm4gdm9pZCAqX19hbGxvY19wZXJjcHUo
c2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbik7CjE0NDc0OiBleHRlcm4gdm9pZCBmcmVlX3BlcmNw
dSh2b2lkICpfX3BkYXRhKTsKMTQ0NzQ6IGV4dGVybiBwaHlzX2FkZHJfdCBwZXJfY3B1X3B0cl90
b19waHlzKHZvaWQgKmFkZHIpOwoxNDQ3NDogIyAxNDYgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUu
aCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIHBjcHVfbnJfcGFnZXModm9pZCk7CjE0NDc0
OiAjIDEwICIuL2luY2x1ZGUvbGludXgvYXJjaF90b3BvbG9neS5oIiAyCjE0NDc0OiAKMTQ0NzQ6
IHZvaWQgdG9wb2xvZ3lfbm9ybWFsaXplX2NwdV9zY2FsZSh2b2lkKTsKMTQ0NzQ6IGludCB0b3Bv
bG9neV91cGRhdGVfY3B1X3RvcG9sb2d5KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2
aWNlX25vZGU7CjE0NDc0OiBib29sIHRvcG9sb2d5X3BhcnNlX2NwdV9jYXBhY2l0eShzdHJ1Y3Qg
ZGV2aWNlX25vZGUgKmNwdV9ub2RlLCBpbnQgY3B1KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIF9f
YXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIiKSkpIF9fdHlwZW9mX18odW5z
aWduZWQgbG9uZykgY3B1X3NjYWxlOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2NoZWRfZG9tYWlu
OwoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgdG9wb2xvZ3lfZ2V0X2NwdV9zY2FsZShpbnQg
Y3B1KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKih7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBf
dmVyaWZ5ID0gKHR5cGVvZigoJihjcHVfc2NhbGUpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClf
X3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBfX2FzbV9f
ICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihjcHVfc2NhbGUpKSkpICopKCgm
KGNwdV9zY2FsZSkpKSkpOyAodHlwZW9mKCh0eXBlb2YoKigoJihjcHVfc2NhbGUpKSkpICopKCgm
KGNwdV9zY2FsZSkpKSkpIChfX3B0ciArICgoKF9fcGVyX2NwdV9vZmZzZXRbKGNwdSldKSkpKTsg
fSk7IH0pKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCB0b3BvbG9neV9zZXRfY3B1X3Nj
YWxlKHVuc2lnbmVkIGludCBjcHUsIHVuc2lnbmVkIGxvbmcgY2FwYWNpdHkpOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIiIpKSkg
X190eXBlb2ZfXyh1bnNpZ25lZCBsb25nKSBmcmVxX3NjYWxlOwoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQoxNDQ3
NDogdW5zaWduZWQgbG9uZyB0b3BvbG9neV9nZXRfZnJlcV9zY2FsZShpbnQgY3B1KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAoKih7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5
cGVvZigoJihmcmVxX3NjYWxlKSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5
OyB9IHdoaWxlICgwKTsgKHsgdW5zaWduZWQgbG9uZyBfX3B0cjsgX19hc21fXyAoIiIgOiAiPXIi
KF9fcHRyKSA6ICIwIigodHlwZW9mKCooKCYoZnJlcV9zY2FsZSkpKSkgKikoKCYoZnJlcV9zY2Fs
ZSkpKSkpOyAodHlwZW9mKCh0eXBlb2YoKigoJihmcmVxX3NjYWxlKSkpKSAqKSgoJihmcmVxX3Nj
YWxlKSkpKSkgKF9fcHRyICsgKCgoX19wZXJfY3B1X29mZnNldFsoY3B1KV0pKSkpOyB9KTsgfSkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3B1X3RvcG9sb2d5IHsKMTQ0NzQ6ICBp
bnQgdGhyZWFkX2lkOwoxNDQ3NDogIGludCBjb3JlX2lkOwoxNDQ3NDogIGludCBwYWNrYWdlX2lk
OwoxNDQ3NDogIGludCBsbGNfaWQ7CjE0NDc0OiAgY3B1bWFza190IHRocmVhZF9zaWJsaW5nOwox
NDQ3NDogIGNwdW1hc2tfdCBjb3JlX3NpYmxpbmc7CjE0NDc0OiAgY3B1bWFza190IGxsY19zaWJs
aW5nOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzEgIi4vaW5jbHVkZS9saW51eC90b3BvbG9neS5oIiAy
CjE0NDc0OiAjIDQ2ICIuL2luY2x1ZGUvbGludXgvdG9wb2xvZ3kuaCIKMTQ0NzQ6IGludCBhcmNo
X3VwZGF0ZV9jcHVfdG9wb2xvZ3kodm9pZCk7CjE0NDc0OiAjIDc1ICIuL2luY2x1ZGUvbGludXgv
dG9wb2xvZ3kuaCIKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18o
Ii5kYXRhLi5yZWFkX21vc3RseSIpKSkgbm9kZV9yZWNsYWltX2Rpc3RhbmNlOwoxNDQ3NDogIyAx
NzcgIi4vaW5jbHVkZS9saW51eC90b3BvbG9neS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG51bWFfbWVtX2lkKHZv
aWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG51bWFfbm9kZV9pZCgpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG5vZGVfdG9fbWVtX25vZGUoaW50IG5vZGUp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG5vZGU7CjE0NDc0OiB9CjE0NDc0OiAjIDIxOSAiLi9p
bmNsdWRlL2xpbnV4L3RvcG9sb2d5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1
X3NtdF9tYXNrKGludCBjcHUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoKih7IGRvIHsgY29u
c3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJihjcHVfc2libGluZ19tYXApKSArIDAp
KSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25l
ZCBsb25nIF9fcHRyOyBfX2FzbV9fICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigo
JihjcHVfc2libGluZ19tYXApKSkpICopKCgmKGNwdV9zaWJsaW5nX21hcCkpKSkpOyAodHlwZW9m
KCh0eXBlb2YoKigoJihjcHVfc2libGluZ19tYXApKSkpICopKCgmKGNwdV9zaWJsaW5nX21hcCkp
KSkpIChfX3B0ciArICgoKF9fcGVyX2NwdV9vZmZzZXRbKGNwdSldKSkpKTsgfSk7IH0pKSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY29uc3Qgc3RydWN0IGNwdW1hc2sgKmNwdV9j
cHVfbWFzayhpbnQgY3B1KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKHZvaWQpKCh2b2lkKShj
cHUpLDApLCAoKGNvbnN0IHN0cnVjdCBjcHVtYXNrICopJl9fY3B1X29ubGluZV9tYXNrKSk7CjE0
NDc0OiB9CjE0NDc0OiAjIDEwICIuL2luY2x1ZGUvbGludXgvZ2ZwLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IHZtX2FyZWFfc3RydWN0OwoxNDQ3NDogIyAzMDggIi4vaW5jbHVkZS9saW51eC9n
ZnAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBnZnBmbGFnc190b19taWdyYXRldHlwZShjb25zdCBnZnBfdCBnZnBf
ZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgKCh2b2lkKShzaXplb2YoKCBsb25nKSgoZ2ZwX2ZsYWdz
ICYgKCgoIGdmcF90KTB4MTB1KXwoKCBnZnBfdCkweDA4dSkpKSA9PSAoKCggZ2ZwX3QpMHgxMHUp
fCgoIGdmcF90KTB4MDh1KSkpKSkpOwoxNDQ3NDogIGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxl
dGltZV9hc3NlcnRfMzExKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQlVJTERfQlVH
X09OIGZhaWxlZDogIiAiKDFVTCA8PCBHRlBfTU9WQUJMRV9TSElGVCkgIT0gX19fR0ZQX01PVkFC
TEUiKSkpOyBpZiAoISghKCgxVUwgPDwgMykgIT0gMHgwOHUpKSkgX19jb21waWxldGltZV9hc3Nl
cnRfMzExKCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxl
dGltZV9hc3NlcnRfMzEyKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQlVJTERfQlVH
X09OIGZhaWxlZDogIiAiKF9fX0dGUF9NT1ZBQkxFID4+IEdGUF9NT1ZBQkxFX1NISUZUKSAhPSBN
SUdSQVRFX01PVkFCTEUiKSkpOyBpZiAoISghKCgweDA4dSA+PiAzKSAhPSBNSUdSQVRFX01PVkFC
TEUpKSkgX19jb21waWxldGltZV9hc3NlcnRfMzEyKCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0
NDc0OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEocGFnZV9ncm91cF9ieV9tb2JpbGl0eV9kaXNh
YmxlZCksIDApKQoxNDQ3NDogICByZXR1cm4gTUlHUkFURV9VTk1PVkFCTEU7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHJldHVybiAoZ2ZwX2ZsYWdzICYgKCgoIGdmcF90KTB4MTB1KXwoKCBnZnBf
dCkweDA4dSkpKSA+PiAzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBnZnBmbGFnc19hbGxvd19ibG9ja2luZyhjb25zdCBnZnBfdCBnZnBfZmxhZ3MpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuICEhKGdmcF9mbGFncyAmICgoIGdmcF90KTB4NDAwdSkpOwoxNDQ3
NDogfQoxNDQ3NDogIyAzNDUgIi4vaW5jbHVkZS9saW51eC9nZnAuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZ2Zw
ZmxhZ3Nfbm9ybWFsX2NvbnRleHQoY29uc3QgZ2ZwX3QgZ2ZwX2ZsYWdzKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiAoZ2ZwX2ZsYWdzICYgKCgoIGdmcF90KTB4NDAwdSkgfCAoKCBnZnBfdCkweDIw
MDAwdSkpKSA9PQoxNDQ3NDogICAoKCBnZnBfdCkweDQwMHUpOwoxNDQ3NDogfQoxNDQ3NDogIyA0
NDEgIi4vaW5jbHVkZS9saW51eC9nZnAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGVudW0gem9uZV90eXBlIGdmcF96b25l
KGdmcF90IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIGVudW0gem9uZV90eXBlIHo7CjE0NDc0OiAg
aW50IGJpdCA9ICggaW50KSAoZmxhZ3MgJiAoKCggZ2ZwX3QpMHgwMXUpfCgoIGdmcF90KTB4MDJ1
KXwoKCBnZnBfdCkweDA0dSl8KCggZ2ZwX3QpMHgwOHUpKSk7CjE0NDc0OiAKMTQ0NzQ6ICB6ID0g
KCggKFpPTkVfTk9STUFMIDw8IDAgKiAyKSB8IChaT05FX0RNQSA8PCAweDAxdSAqIDIpIHwgKFpP
TkVfTk9STUFMIDw8IDB4MDJ1ICogMikgfCAoWk9ORV9ETUEzMiA8PCAweDA0dSAqIDIpIHwgKFpP
TkVfTk9STUFMIDw8IDB4MDh1ICogMikgfCAoWk9ORV9ETUEgPDwgKDB4MDh1IHwgMHgwMXUpICog
MikgfCAoWk9ORV9NT1ZBQkxFIDw8ICgweDA4dSB8IDB4MDJ1KSAqIDIpIHwgKFpPTkVfRE1BMzIg
PDwgKDB4MDh1IHwgMHgwNHUpICogMikpID4+IChiaXQgKiAyKSkgJgoxNDQ3NDogICAgICAgKCgx
IDw8IDIpIC0gMSk7CjE0NDc0OiAgKCh2b2lkKShzaXplb2YoKCBsb25nKSgoKCAxIDw8ICgweDAx
dSB8IDB4MDJ1KSB8IDEgPDwgKDB4MDF1IHwgMHgwNHUpIHwgMSA8PCAoMHgwNHUgfCAweDAydSkg
fCAxIDw8ICgweDAxdSB8IDB4MDR1IHwgMHgwMnUpIHwgMSA8PCAoMHgwOHUgfCAweDAydSB8IDB4
MDF1KSB8IDEgPDwgKDB4MDh1IHwgMHgwNHUgfCAweDAxdSkgfCAxIDw8ICgweDA4dSB8IDB4MDR1
IHwgMHgwMnUpIHwgMSA8PCAoMHgwOHUgfCAweDA0dSB8IDB4MDF1IHwgMHgwMnUpICkgPj4gYml0
KSAmIDEpKSkpOwoxNDQ3NDogIHJldHVybiB6OwoxNDQ3NDogfQoxNDQ3NDogIyA0NTkgIi4vaW5j
bHVkZS9saW51eC9nZnAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBnZnBfem9uZWxpc3QoZ2ZwX3QgZmxhZ3MpCjE0
NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gWk9O
RUxJU1RfRkFMTEJBQ0s7CjE0NDc0OiB9CjE0NDc0OiAjIDQ3NyAiLi9pbmNsdWRlL2xpbnV4L2dm
cC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgc3RydWN0IHpvbmVsaXN0ICpub2RlX3pvbmVsaXN0KGludCBuaWQsIGdmcF90
IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoJmNvbnRpZ19wYWdlX2RhdGEpLT5ub2Rl
X3pvbmVsaXN0cyArIGdmcF96b25lbGlzdChmbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBhcmNoX2ZyZWVfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgaW50IG9yZGVy
KSB7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hfYWxsb2NfcGFnZShzdHJ1Y3Qg
cGFnZSAqcGFnZSwgaW50IG9yZGVyKSB7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
cGFnZSAqCjE0NDc0OiBfX2FsbG9jX3BhZ2VzX25vZGVtYXNrKGdmcF90IGdmcF9tYXNrLCB1bnNp
Z25lZCBpbnQgb3JkZXIsIGludCBwcmVmZXJyZWRfbmlkLAoxNDQ3NDogICAgICAgIG5vZGVtYXNr
X3QgKm5vZGVtYXNrKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBhZ2UgKgoxNDQ3NDogX19hbGxv
Y19wYWdlcyhnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9yZGVyLCBpbnQgcHJlZmVycmVk
X25pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19hbGxvY19wYWdlc19ub2RlbWFzayhnZnBf
bWFzaywgb3JkZXIsIHByZWZlcnJlZF9uaWQsICgodm9pZCAqKTApKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgcGFnZSAqCjE0
NDc0OiBfX2FsbG9jX3BhZ2VzX25vZGUoaW50IG5pZCwgZ2ZwX3QgZ2ZwX21hc2ssIHVuc2lnbmVk
IGludCBvcmRlcikKMTQ0NzQ6IHsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxvbmcpKG5pZCA8
IDAgfHwgbmlkID49ICgxIDw8IDApKSkpKTsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KChnZnBfbWFzayAmICgoIGdmcF90KTB4MjAwMDAwdSkpICYmICFub2RlX3N0YXRlKChuaWQpLCBO
X09OTElORSkpKSkpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIF9fYWxsb2NfcGFnZXMoZ2ZwX21h
c2ssIG9yZGVyLCBuaWQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBhZ2UgKmFsbG9jX3BhZ2VzX25vZGUoaW50
IG5pZCwgZ2ZwX3QgZ2ZwX21hc2ssCjE0NDc0OiAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIpCjE0
NDc0OiB7CjE0NDc0OiAgaWYgKG5pZCA9PSAoLTEpKQoxNDQ3NDogICBuaWQgPSBudW1hX21lbV9p
ZCgpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIF9fYWxsb2NfcGFnZXNfbm9kZShuaWQsIGdmcF9t
YXNrLCBvcmRlcik7CjE0NDc0OiB9CjE0NDc0OiAjIDU1MyAiLi9pbmNsdWRlL2xpbnV4L2dmcC5o
IgoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19nZXRfZnJlZV9wYWdlcyhnZnBfdCBnZnBf
bWFzaywgdW5zaWduZWQgaW50IG9yZGVyKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIGdl
dF96ZXJvZWRfcGFnZShnZnBfdCBnZnBfbWFzayk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgKmFsbG9j
X3BhZ2VzX2V4YWN0KHNpemVfdCBzaXplLCBnZnBfdCBnZnBfbWFzayk7CjE0NDc0OiB2b2lkIGZy
ZWVfcGFnZXNfZXhhY3Qodm9pZCAqdmlydCwgc2l6ZV90IHNpemUpOwoxNDQ3NDogdm9pZCAqIF9f
YXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIubWVtaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9f
KChfX2NvbGRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBhbGxv
Y19wYWdlc19leGFjdF9uaWQoaW50IG5pZCwgc2l6ZV90IHNpemUsIGdmcF90IGdmcF9tYXNrKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIHZvaWQgX19mcmVlX3BhZ2VzKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25l
ZCBpbnQgb3JkZXIpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZnJlZV9wYWdlcyh1bnNpZ25lZCBsb25n
IGFkZHIsIHVuc2lnbmVkIGludCBvcmRlcik7CjE0NDc0OiBleHRlcm4gdm9pZCBmcmVlX3VucmVm
X3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZnJlZV91bnJlZl9w
YWdlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBw
YWdlX2ZyYWdfY2FjaGU7CjE0NDc0OiBleHRlcm4gdm9pZCBfX3BhZ2VfZnJhZ19jYWNoZV9kcmFp
bihzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IGNvdW50KTsKMTQ0NzQ6IGV4dGVybiB2
b2lkICpwYWdlX2ZyYWdfYWxsb2Moc3RydWN0IHBhZ2VfZnJhZ19jYWNoZSAqbmMsCjE0NDc0OiAg
ICAgICAgIHVuc2lnbmVkIGludCBmcmFnc3osIGdmcF90IGdmcF9tYXNrKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIHBhZ2VfZnJhZ19mcmVlKHZvaWQgKmFkZHIpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiB2b2lkIHBhZ2VfYWxsb2NfaW5pdCh2b2lkKTsKMTQ0NzQ6IHZvaWQg
ZHJhaW5fem9uZV9wYWdlcyhzdHJ1Y3Qgem9uZSAqem9uZSwgc3RydWN0IHBlcl9jcHVfcGFnZXMg
KnBjcCk7CjE0NDc0OiB2b2lkIGRyYWluX2FsbF9wYWdlcyhzdHJ1Y3Qgem9uZSAqem9uZSk7CjE0
NDc0OiB2b2lkIGRyYWluX2xvY2FsX3BhZ2VzKHN0cnVjdCB6b25lICp6b25lKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCBwYWdlX2FsbG9jX2luaXRfbGF0ZSh2b2lkKTsKMTQ0NzQ6ICMgNTk0ICIuL2lu
Y2x1ZGUvbGludXgvZ2ZwLmgiCjE0NDc0OiBleHRlcm4gZ2ZwX3QgZ2ZwX2FsbG93ZWRfbWFzazsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBib29sIGdmcF9wZm1lbWFsbG9jX2FsbG93ZWQoZ2ZwX3Qg
Z2ZwX21hc2spOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBwbV9yZXN0cmljdF9nZnBfbWFz
ayh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHBtX3Jlc3RvcmVfZ2ZwX21hc2sodm9pZCk7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgcG1fc3VzcGVuZGVkX3N0b3JhZ2Uodm9p
ZCk7CjE0NDc0OiAjIDYxMyAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIgoxNDQ3NDogZXh0ZXJuIGlu
dCBhbGxvY19jb250aWdfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBl
bmQsCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBtaWdyYXRldHlwZSwgZ2ZwX3QgZ2ZwX21hc2sp
OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwYWdlICphbGxvY19jb250aWdfcGFnZXModW5zaWduZWQg
bG9uZyBucl9wYWdlcywgZ2ZwX3QgZ2ZwX21hc2ssCjE0NDc0OiAgICAgICAgICAgIGludCBuaWQs
IG5vZGVtYXNrX3QgKm5vZGVtYXNrKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBmcmVlX2NvbnRpZ19y
YW5nZSh1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgaW50IG5yX3BhZ2VzKTsKMTQ0NzQ6ICMg
MTYgIi4vaW5jbHVkZS9saW51eC9zbGFiLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4
L292ZXJmbG93LmgiIDEKMTQ0NzQ6ICMgMjUzICIuL2luY2x1ZGUvbGludXgvb3ZlcmZsb3cuaCIK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzaXplX3QgYXJy
YXlfc2l6ZShzaXplX3QgYSwgc2l6ZV90IGIpCjE0NDc0OiB7CjE0NDc0OiAgc2l6ZV90IGJ5dGVz
OwoxNDQ3NDogCjE0NDc0OiAgaWYgKCh7IHR5cGVvZihhKSBfX2EgPSAoYSk7IHR5cGVvZihiKSBf
X2IgPSAoYik7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0g
Jl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwg
X19iLCBfX2QpOyB9KSkKMTQ0NzQ6ICAgcmV0dXJuICh+KHNpemVfdCkwKTsKMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiBieXRlczsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjc1ICIuL2luY2x1ZGUvbGludXgv
b3ZlcmZsb3cuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18p
KSBzaXplX3QgYXJyYXkzX3NpemUoc2l6ZV90IGEsIHNpemVfdCBiLCBzaXplX3QgYykKMTQ0NzQ6
IHsKMTQ0NzQ6ICBzaXplX3QgYnl0ZXM7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoKHsgdHlwZW9mKGEp
IF9fYSA9IChhKTsgdHlwZW9mKGIpIF9fYiA9IChiKTsgdHlwZW9mKCZieXRlcykgX19kID0gKCZi
eXRlcyk7ICh2b2lkKSAoJl9fYSA9PSAmX19iKTsgKHZvaWQpICgmX19hID09IF9fZCk7IF9fYnVp
bHRpbl9tdWxfb3ZlcmZsb3coX19hLCBfX2IsIF9fZCk7IH0pKQoxNDQ3NDogICByZXR1cm4gKH4o
c2l6ZV90KTApOwoxNDQ3NDogIGlmICgoeyB0eXBlb2YoYnl0ZXMpIF9fYSA9IChieXRlcyk7IHR5
cGVvZihjKSBfX2IgPSAoYyk7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9pZCkg
KCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVsX292ZXJm
bG93KF9fYSwgX19iLCBfX2QpOyB9KSkKMTQ0NzQ6ICAgcmV0dXJuICh+KHNpemVfdCkwKTsKMTQ0
NzQ6IAoxNDQ3NDogIHJldHVybiBieXRlczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jl
c3VsdF9fKSkgc2l6ZV90IF9fYWJfY19zaXplKHNpemVfdCBhLCBzaXplX3QgYiwgc2l6ZV90IGMp
CjE0NDc0OiB7CjE0NDc0OiAgc2l6ZV90IGJ5dGVzOwoxNDQ3NDogCjE0NDc0OiAgaWYgKCh7IHR5
cGVvZihhKSBfX2EgPSAoYSk7IHR5cGVvZihiKSBfX2IgPSAoYik7IHR5cGVvZigmYnl0ZXMpIF9f
ZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2Qp
OyBfX2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwgX19iLCBfX2QpOyB9KSkKMTQ0NzQ6ICAgcmV0
dXJuICh+KHNpemVfdCkwKTsKMTQ0NzQ6ICBpZiAoKHsgdHlwZW9mKGJ5dGVzKSBfX2EgPSAoYnl0
ZXMpOyB0eXBlb2YoYykgX19iID0gKGMpOyB0eXBlb2YoJmJ5dGVzKSBfX2QgPSAoJmJ5dGVzKTsg
KHZvaWQpICgmX19hID09ICZfX2IpOyAodm9pZCkgKCZfX2EgPT0gX19kKTsgX19idWlsdGluX2Fk
ZF9vdmVyZmxvdyhfX2EsIF9fYiwgX19kKTsgfSkpCjE0NDc0OiAgIHJldHVybiAofihzaXplX3Qp
MCk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gYnl0ZXM7CjE0NDc0OiB9CjE0NDc0OiAjIDE3ICIu
L2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2lu
Y2x1ZGUvbGludXgvcGVyY3B1LXJlZmNvdW50LmgiIDEKMTQ0NzQ6ICMgNTkgIi4vaW5jbHVkZS9s
aW51eC9wZXJjcHUtcmVmY291bnQuaCIKMTQ0NzQ6IHN0cnVjdCBwZXJjcHVfcmVmOwoxNDQ3NDog
dHlwZWRlZiB2b2lkIChwZXJjcHVfcmVmX2Z1bmNfdCkoc3RydWN0IHBlcmNwdV9yZWYgKik7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgX19QRVJDUFVfUkVGX0FUT01JQyA9
IDFMVSA8PCAwLAoxNDQ3NDogIF9fUEVSQ1BVX1JFRl9ERUFEID0gMUxVIDw8IDEsCjE0NDc0OiAg
X19QRVJDUFVfUkVGX0FUT01JQ19ERUFEID0gX19QRVJDUFVfUkVGX0FUT01JQyB8IF9fUEVSQ1BV
X1JFRl9ERUFELAoxNDQ3NDogCjE0NDc0OiAgX19QRVJDUFVfUkVGX0ZMQUdfQklUUyA9IDIsCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgUEVSQ1BVX1JFRl9J
TklUX0FUT01JQyA9IDEgPDwgMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBQRVJDUFVfUkVGX0lOSVRfREVBRCA9IDEgPDwgMSwKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFBFUkNQVV9SRUZfQUxMT1dfUkVJTklU
ID0gMSA8PCAyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBlcmNwdV9yZWYgewox
NDQ3NDogIGF0b21pY19sb25nX3QgY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHBlcmNwdV9jb3VudF9wdHI7CjE0NDc0OiAgcGVyY3B1
X3JlZl9mdW5jX3QgKnJlbGVhc2U7CjE0NDc0OiAgcGVyY3B1X3JlZl9mdW5jX3QgKmNvbmZpcm1f
c3dpdGNoOwoxNDQ3NDogIGJvb2wgZm9yY2VfYXRvbWljOjE7CjE0NDc0OiAgYm9vbCBhbGxvd19y
ZWluaXQ6MTsKMTQ0NzQ6ICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCByY3U7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHBl
cmNwdV9yZWZfaW5pdChzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmLAoxNDQ3NDogICAgICBwZXJjcHVf
cmVmX2Z1bmNfdCAqcmVsZWFzZSwgdW5zaWduZWQgaW50IGZsYWdzLAoxNDQ3NDogICAgICBnZnBf
dCBnZnApOwoxNDQ3NDogdm9pZCBwZXJjcHVfcmVmX2V4aXQoc3RydWN0IHBlcmNwdV9yZWYgKnJl
Zik7CjE0NDc0OiB2b2lkIHBlcmNwdV9yZWZfc3dpdGNoX3RvX2F0b21pYyhzdHJ1Y3QgcGVyY3B1
X3JlZiAqcmVmLAoxNDQ3NDogICAgICBwZXJjcHVfcmVmX2Z1bmNfdCAqY29uZmlybV9zd2l0Y2gp
OwoxNDQ3NDogdm9pZCBwZXJjcHVfcmVmX3N3aXRjaF90b19hdG9taWNfc3luYyhzdHJ1Y3QgcGVy
Y3B1X3JlZiAqcmVmKTsKMTQ0NzQ6IHZvaWQgcGVyY3B1X3JlZl9zd2l0Y2hfdG9fcGVyY3B1KHN0
cnVjdCBwZXJjcHVfcmVmICpyZWYpOwoxNDQ3NDogdm9pZCBwZXJjcHVfcmVmX2tpbGxfYW5kX2Nv
bmZpcm0oc3RydWN0IHBlcmNwdV9yZWYgKnJlZiwKMTQ0NzQ6ICAgICAgcGVyY3B1X3JlZl9mdW5j
X3QgKmNvbmZpcm1fa2lsbCk7CjE0NDc0OiB2b2lkIHBlcmNwdV9yZWZfcmVzdXJyZWN0KHN0cnVj
dCBwZXJjcHVfcmVmICpyZWYpOwoxNDQ3NDogdm9pZCBwZXJjcHVfcmVmX3JlaW5pdChzdHJ1Y3Qg
cGVyY3B1X3JlZiAqcmVmKTsKMTQ0NzQ6ICMgMTM0ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LXJl
ZmNvdW50LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBlcmNwdV9yZWZfa2lsbChzdHJ1Y3QgcGVyY3B1X3JlZiAq
cmVmKQoxNDQ3NDogewoxNDQ3NDogIHBlcmNwdV9yZWZfa2lsbF9hbmRfY29uZmlybShyZWYsICgo
dm9pZCAqKTApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBfX3JlZl9pc19wZXJjcHUoc3RydWN0IHBl
cmNwdV9yZWYgKnJlZiwKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBsb25nICoqcGVyY3B1X2NvdW50
cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHBlcmNwdV9wdHI7CjE0NDc0OiAjIDE2
MSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogIHBlcmNwdV9wdHIg
PSAoeyB1bmlvbiB7IHR5cGVvZihyZWYtPnBlcmNwdV9jb3VudF9wdHIpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYocmVmLT5wZXJjcHVfY291bnRf
cHRyKSwgX191Ll9fYywgc2l6ZW9mKHJlZi0+cGVyY3B1X2NvdW50X3B0cikpOyBlbHNlIF9fcmVh
ZF9vbmNlX3NpemVfbm9jaGVjaygmKHJlZi0+cGVyY3B1X2NvdW50X3B0ciksIF9fdS5fX2MsIHNp
emVvZihyZWYtPnBlcmNwdV9jb3VudF9wdHIpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFs
OyB9KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHBlcmNwdV9wdHIgJiBfX1BFUkNQ
VV9SRUZfQVRPTUlDX0RFQUQpLCAwKSkKMTQ0NzQ6ICAgcmV0dXJuIGZhbHNlOwoxNDQ3NDogCjE0
NDc0OiAgKnBlcmNwdV9jb3VudHAgPSAodW5zaWduZWQgbG9uZyAqKXBlcmNwdV9wdHI7CjE0NDc0
OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAjIDE4NSAiLi9pbmNsdWRlL2xpbnV4L3Bl
cmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVfcmVmX2dldF9tYW55KHN0cnVjdCBw
ZXJjcHVfcmVmICpyZWYsIHVuc2lnbmVkIGxvbmcgbnIpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyAqcGVyY3B1X2NvdW50OwoxNDQ3NDogCjE0NDc0OiAgcmN1X3JlYWRfbG9jaygpOwox
NDQ3NDogCjE0NDc0OiAgaWYgKF9fcmVmX2lzX3BlcmNwdShyZWYsICZwZXJjcHVfY291bnQpKQox
NDQ3NDogICBkbyB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJigq
cGVyY3B1X2NvdW50KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdo
aWxlICgwKTsgc3dpdGNoKHNpemVvZigqcGVyY3B1X2NvdW50KSkgeyBjYXNlIDE6IGRvIHsgdHlw
ZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18g
PSAoX19idWlsdGluX2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkp
ID8gKGludCkobnIpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9
IChucik7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkp
KSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lE
X18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXyko
bnIpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJp
bmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2Ug
aWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAo
KHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZv
bGF0aWxlICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGls
ZSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSA6ICJyaSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09
IDEpIGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRl
Y3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBh
c20gdm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVy
Y3B1X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2Jh
ZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRvIHsgdHlwZWRl
ZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAo
X19idWlsdGluX2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8g
KGludCkobnIpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChu
cik7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7
IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18g
PT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIp
KSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBh
b19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0
aWxlICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAo
ImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6
ICJyaSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEp
IGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3Eg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20g
dm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1
X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6IGRvIHsgdHlwZWRlZiB0
eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19i
dWlsdGluX2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGlu
dCkobnIpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7
ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNh
c2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0g
LTEpIGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7
IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19U
X18pKG5yKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxl
ICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBl
bHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFk
ZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJy
aSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFz
bSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9s
YXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2Nv
dW50KSkgOiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJj
cHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBl
b2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWls
dGluX2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGludCko
bnIpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7ICh2
b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2Ug
MTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7IGJy
ZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19J
RF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18p
KG5yKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgi
aW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNl
IGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwg
JTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIg
KChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2
b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRp
bGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkgOiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVf
c2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFy
YW1ldGVyKCk7YnJlYWs7IH0gfSB3aGlsZSAoMCk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBhdG9t
aWNfbG9uZ19hZGQobnIsICZyZWYtPmNvdW50KTsKMTQ0NzQ6IAoxNDQ3NDogIHJjdV9yZWFkX3Vu
bG9jaygpOwoxNDQ3NDogfQoxNDQ3NDogIyAyMDcgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVm
Y291bnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3JlZl9nZXQoc3RydWN0IHBlcmNwdV9yZWYgKnJl
ZikKMTQ0NzQ6IHsKMTQ0NzQ6ICBwZXJjcHVfcmVmX2dldF9tYW55KHJlZiwgMSk7CjE0NDc0OiB9
CjE0NDc0OiAjIDIyMiAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBwZXJjcHVfcmVmX3RyeWdldF9tYW55KHN0cnVjdCBwZXJjcHVfcmVmICpyZWYsCjE0NDc0
OiAgICAgICAgdW5zaWduZWQgbG9uZyBucikKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
ICpwZXJjcHVfY291bnQ7CjE0NDc0OiAgYm9vbCByZXQ7CjE0NDc0OiAKMTQ0NzQ6ICByY3VfcmVh
ZF9sb2NrKCk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoX19yZWZfaXNfcGVyY3B1KHJlZiwgJnBlcmNw
dV9jb3VudCkpIHsKMTQ0NzQ6ICAgZG8geyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9
ICh0eXBlb2YoKCYoKnBlcmNwdV9jb3VudCkpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBw
X3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoKnBlcmNwdV9jb3VudCkpIHsgY2Fz
ZSAxOiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3Qg
aW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKG5yKSAmJiAoKG5yKSA9PSAxIHx8
IChucikgPT0gLTEpKSA/IChpbnQpKG5yKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9f
OyBwYW9fdG1wX18gPSAobnIpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpw
ZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUg
KCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRk
YiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFp
IiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNt
IHZvbGF0aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2Nv
dW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xh
dGlsZSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSA6ICJyaSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9f
ID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAo
ImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxz
ZSBhc20gdm9sYXRpbGUgKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
cGVyY3B1X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDg6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20g
dm9sYXRpbGUgKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSAy
OiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50
IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKG5yKSAmJiAoKG5yKSA9PSAxIHx8IChu
cikgPT0gLTEpKSA/IChpbnQpKG5yKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBw
YW9fdG1wX18gPSAobnIpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpwZXJj
cHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJp
bmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2Ug
aWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkYiAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFpIiAo
KHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZv
bGF0aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGls
ZSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSA6ICJyaSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09
IDEpIGFzbSB2b2xhdGlsZSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRl
Y2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBh
c20gdm9sYXRpbGUgKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVy
Y3B1X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChw
YW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9s
YXRpbGUgKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgZGVm
YXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA0OiBk
byB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBh
b19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKG5yKSAmJiAoKG5yKSA9PSAxIHx8IChucikg
PT0gLTEpKSA/IChpbnQpKG5yKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9f
dG1wX18gPSAobnIpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpwZXJjcHVf
Y291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNi
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkYiAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFpIiAoKHBh
b19UX18pKG5yKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0
aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAo
ImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6
ICJyaSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEp
IGFzbSB2b2xhdGlsZSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20g
dm9sYXRpbGUgKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1
X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9f
SURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRp
bGUgKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7
IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgZGVmYXVs
dDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA4OiBkbyB7
IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19J
RF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKG5yKSAmJiAoKG5yKSA9PSAxIHx8IChucikgPT0g
LTEpKSA/IChpbnQpKG5yKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1w
X18gPSAobnIpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpwZXJjcHVfY291
bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNiICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkYiAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFpIiAoKHBhb19U
X18pKG5yKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxl
ICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBl
bHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFk
ZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJy
aSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFz
bSB2b2xhdGlsZSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9s
YXRpbGUgKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2Nv
dW50KSkgOiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUg
KCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgZGVmYXVsdDog
X19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgZGVmYXVsdDogX19iYWRf
c2l6ZV9jYWxsX3BhcmFtZXRlcigpO2JyZWFrOyB9IH0gd2hpbGUgKDApOwoxNDQ3NDogICByZXQg
PSB0cnVlOwoxNDQ3NDogIH0gZWxzZSB7CjE0NDc0OiAgIHJldCA9IGF0b21pY19sb25nX2FkZF91
bmxlc3MoJnJlZi0+Y291bnQsIG5yLCAwKTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6ICByY3Vf
cmVhZF91bmxvY2soKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiByZXQ7CjE0NDc0OiB9CjE0NDc0
OiAjIDI1MSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBw
ZXJjcHVfcmVmX3RyeWdldChzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiBwZXJjcHVfcmVmX3RyeWdldF9tYW55KHJlZiwgMSk7CjE0NDc0OiB9CjE0NDc0OiAj
IDI3MSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwZXJj
cHVfcmVmX3RyeWdldF9saXZlKHN0cnVjdCBwZXJjcHVfcmVmICpyZWYpCjE0NDc0OiB7CjE0NDc0
OiAgdW5zaWduZWQgbG9uZyAqcGVyY3B1X2NvdW50OwoxNDQ3NDogIGJvb2wgcmV0ID0gZmFsc2U7
CjE0NDc0OiAKMTQ0NzQ6ICByY3VfcmVhZF9sb2NrKCk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoX19y
ZWZfaXNfcGVyY3B1KHJlZiwgJnBlcmNwdV9jb3VudCkpIHsKMTQ0NzQ6ICAgZG8geyBkbyB7IGNv
bnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoKnBlcmNwdV9jb3VudCkpICsgMCkp
KCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXpl
b2YoKnBlcmNwdV9jb3VudCkpIHsgY2FzZSAxOiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1
X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFu
dF9wKDEpICYmICgoMSkgPT0gMSB8fCAoMSkgPT0gLTEpKSA/IChpbnQpKDEpIDogMDsgaWYgKDAp
IHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9ICgxKTsgKHZvaWQpcGFvX3RtcF9fOyB9
IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1X2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18g
PT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
cGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgi
ZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNl
IGFzbSB2b2xhdGlsZSAoImFkZGIgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSA6ICJxaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSAyOiBpZiAo
cGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZv
bGF0aWxlICgiZGVjdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2Fz
ZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jbCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAt
MSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVy
Y3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBi
cmVhazsgY2FzZSA4OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9f
SURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9f
KSgxKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgw
KTticmVhazsgY2FzZSAyOiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFv
X1RfXzsgY29uc3QgaW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKDEpICYmICgo
MSkgPT0gMSB8fCAoMSkgPT0gLTEpKSA/IChpbnQpKDEpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBw
YW9fdG1wX187IHBhb190bXBfXyA9ICgxKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6
ZW9mKCgqcGVyY3B1X2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZv
bGF0aWxlICgiaW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGls
ZSAoImFkZGIgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSA6ICJxaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0g
MSkgYXNtIHZvbGF0aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVy
Y3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVj
dyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFz
bSB2b2xhdGlsZSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJj
cHVfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFv
X0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0
aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkp
OyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSA4
OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkg
YXNtIHZvbGF0aWxlICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1
X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKSgxKSkpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2Fz
ZSA0OiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3Qg
aW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKDEpICYmICgoMSkgPT0gMSB8fCAo
MSkgPT0gLTEpKSA/IChpbnQpKDEpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBh
b190bXBfXyA9ICgxKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1
X2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5j
YiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlm
IChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIgJTEs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIgKChw
YW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0
aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAo
ImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6
ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkg
YXNtIHZvbGF0aWxlICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1
X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2
b2xhdGlsZSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVf
Y291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lE
X18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxl
ICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBl
bHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgZGVmYXVsdDog
X19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA4OiBkbyB7IHR5
cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19JRF9f
ID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKDEpICYmICgoMSkgPT0gMSB8fCAoMSkgPT0gLTEpKSA/
IChpbnQpKDEpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9ICgx
KTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1X2NvdW50KSkpIHsg
Y2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jYiAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9
PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
cGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIgJTEsICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIgKChwYW9fVF9fKSgxKSkp
OyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jdyAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChw
YW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHcgJTEsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9f
VF9fKSgxKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxl
ICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBl
bHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFk
ZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJy
aSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lEX18gPT0gMSkgYXNt
IHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2Nv
dW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjcSAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xh
dGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSA6ICJyZSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1
X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3Bh
cmFtZXRlcigpO2JyZWFrOyB9IH0gd2hpbGUgKDApOwoxNDQ3NDogICByZXQgPSB0cnVlOwoxNDQ3
NDogIH0gZWxzZSBpZiAoIShyZWYtPnBlcmNwdV9jb3VudF9wdHIgJiBfX1BFUkNQVV9SRUZfREVB
RCkpIHsKMTQ0NzQ6ICAgcmV0ID0gYXRvbWljX2xvbmdfaW5jX25vdF96ZXJvKCZyZWYtPmNvdW50
KTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6ICByY3VfcmVhZF91bmxvY2soKTsKMTQ0NzQ6IAox
NDQ3NDogIHJldHVybiByZXQ7CjE0NDc0OiB9CjE0NDc0OiAjIDMwMCAiLi9pbmNsdWRlL2xpbnV4
L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVfcmVmX3B1dF9tYW55KHN0cnVj
dCBwZXJjcHVfcmVmICpyZWYsIHVuc2lnbmVkIGxvbmcgbnIpCjE0NDc0OiB7CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyAqcGVyY3B1X2NvdW50OwoxNDQ3NDogCjE0NDc0OiAgcmN1X3JlYWRfbG9jaygp
OwoxNDQ3NDogCjE0NDc0OiAgaWYgKF9fcmVmX2lzX3BlcmNwdShyZWYsICZwZXJjcHVfY291bnQp
KQoxNDQ3NDogICBkbyB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigo
JigqcGVyY3B1X2NvdW50KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9
IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZigqcGVyY3B1X2NvdW50KSkgeyBjYXNlIDE6IGRvIHsg
dHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lE
X18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkg
JiYgKCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAxIHx8ICgtKHR5cGVvZigqcGVy
Y3B1X2NvdW50KSkobnIpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkp
KG5yKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKC0odHlw
ZW9mKCpwZXJjcHVfY291bnQpKShucikpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXpl
b2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9s
YXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxl
ICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
IDogInFpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFr
OyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9f
ID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0o
dHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUg
KCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQp
KShucikpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUg
KCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRk
cSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJl
IiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBkZWZh
dWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRv
IHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFv
X0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5y
KSkgJiYgKCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAxIHx8ICgtKHR5cGVvZigq
cGVyY3B1X2NvdW50KSkobnIpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnBlcmNwdV9jb3Vu
dCkpKG5yKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKC0o
dHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChz
aXplb2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
dm9sYXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0
aWxlICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpIDogInFpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJy
ZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19J
RF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18p
KC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9f
SURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRp
bGUgKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7
IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291
bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRp
bGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7
IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgi
YWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDog
InJlIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBk
ZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6
IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQg
cGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkp
KG5yKSkgJiYgKCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAxIHx8ICgtKHR5cGVv
ZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnBlcmNwdV9j
b3VudCkpKG5yKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0g
KC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNo
IChzaXplb2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBh
c20gdm9sYXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVf
Y291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZv
bGF0aWxlICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpIDogInFpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7
IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19U
X18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChw
YW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9s
YXRpbGUgKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVf
Y291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9s
YXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxl
ICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
IDogInJlIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFr
OyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNl
IDg6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBp
bnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnBlcmNwdV9jb3Vu
dCkpKG5yKSkgJiYgKCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAxIHx8ICgtKHR5
cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnBlcmNw
dV9jb3VudCkpKG5yKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9f
ID0gKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpOyAodm9pZClwYW9fdG1wX187IH0gc3dp
dGNoIChzaXplb2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAx
KSBhc20gdm9sYXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJj
cHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNi
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNt
IHZvbGF0aWxlICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikp
KSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBh
b19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDQ6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20g
dm9sYXRpbGUgKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJj
cHVfY291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
dm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0
aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpIDogInJlIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBk
ZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7YnJlYWs7IH0gfSB3aGlsZSAoMCk7
CjE0NDc0OiAgZWxzZSBpZiAoX19idWlsdGluX2V4cGVjdCghIShhdG9taWNfbG9uZ19zdWJfYW5k
X3Rlc3QobnIsICZyZWYtPmNvdW50KSksIDApKQoxNDQ3NDogICByZWYtPnJlbGVhc2UocmVmKTsK
MTQ0NzQ6IAoxNDQ3NDogIHJjdV9yZWFkX3VubG9jaygpOwoxNDQ3NDogfQoxNDQ3NDogIyAzMjMg
Ii4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVmY291bnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3Jl
Zl9wdXQoc3RydWN0IHBlcmNwdV9yZWYgKnJlZikKMTQ0NzQ6IHsKMTQ0NzQ6ICBwZXJjcHVfcmVm
X3B1dF9tYW55KHJlZiwgMSk7CjE0NDc0OiB9CjE0NDc0OiAjIDMzNyAiLi9pbmNsdWRlL2xpbnV4
L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwZXJjcHVfcmVmX2lzX2R5aW5nKHN0cnVj
dCBwZXJjcHVfcmVmICpyZWYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJlZi0+cGVyY3B1X2Nv
dW50X3B0ciAmIF9fUEVSQ1BVX1JFRl9ERUFEOwoxNDQ3NDogfQoxNDQ3NDogIyAzNTAgIi4vaW5j
bHVkZS9saW51eC9wZXJjcHUtcmVmY291bnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcGVyY3B1X3JlZl9pc196
ZXJvKHN0cnVjdCBwZXJjcHVfcmVmICpyZWYpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyAqcGVyY3B1X2NvdW50OwoxNDQ3NDogCjE0NDc0OiAgaWYgKF9fcmVmX2lzX3BlcmNwdShyZWYs
ICZwZXJjcHVfY291bnQpKQoxNDQ3NDogICByZXR1cm4gZmFsc2U7CjE0NDc0OiAgcmV0dXJuICFh
dG9taWNfbG9uZ19yZWFkKCZyZWYtPmNvdW50KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjAgIi4vaW5j
bHVkZS9saW51eC9zbGFiLmgiIDIKMTQ0NzQ6ICMgMTM2ICIuL2luY2x1ZGUvbGludXgvc2xhYi5o
IgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgva2FzYW4uaCIgMQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGttZW1fY2FjaGU7
CjE0NDc0OiBzdHJ1Y3QgcGFnZTsKMTQ0NzQ6IHN0cnVjdCB2bV9zdHJ1Y3Q7CjE0NDc0OiBzdHJ1
Y3QgdGFza19zdHJ1Y3Q7CjE0NDc0OiAjIDEwMSAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGthc2FuX3VucG9pc29uX3NoYWRvdyhjb25zdCB2b2lkICphZGRyZXNzLCBzaXpl
X3Qgc2l6ZSkge30KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl91bnBvaXNvbl90YXNrX3N0YWNr
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5wb2lzb25f
c3RhY2tfYWJvdmVfc3BfdG8oY29uc3Qgdm9pZCAqd2F0ZXJtYXJrKSB7fQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGthc2FuX2VuYWJsZV9jdXJyZW50KHZvaWQpIHt9CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2Rp
c2FibGVfY3VycmVudCh2b2lkKSB7fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2FsbG9jX3Bh
Z2VzKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIpIHt9CjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGthc2FuX2ZyZWVfcGFnZXMoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvcmRlcikg
e30KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9jYWNoZV9jcmVhdGUoc3RydWN0IGttZW1fY2Fj
aGUgKmNhY2hlLAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGludCAqc2l6ZSwKMTQ0NzQ6ICAg
ICAgICAgICBzbGFiX2ZsYWdzX3QgKmZsYWdzKSB7fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2Fu
X3BvaXNvbl9zbGFiKHN0cnVjdCBwYWdlICpwYWdlKSB7fQoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl91bnBv
aXNvbl9vYmplY3RfZGF0YShzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUsCjE0NDc0OiAgICAgIHZv
aWQgKm9iamVjdCkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fcG9pc29uX29iamVjdF9kYXRhKHN0cnVj
dCBrbWVtX2NhY2hlICpjYWNoZSwKMTQ0NzQ6ICAgICAgdm9pZCAqb2JqZWN0KSB7fQoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCAqa2FzYW5faW5pdF9zbGFiX29iaihzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUsCjE0NDc0
OiAgICAgY29uc3Qgdm9pZCAqb2JqZWN0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodm9pZCAq
KW9iamVjdDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqa2FzYW5fa21hbGxvY19sYXJn
ZSh2b2lkICpwdHIsIHNpemVfdCBzaXplLCBnZnBfdCBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gcHRyOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9rZnJlZV9sYXJnZSh2b2lkICpw
dHIsIHVuc2lnbmVkIGxvbmcgaXApIHt9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX3BvaXNvbl9rZnJlZSh2
b2lkICpwdHIsIHVuc2lnbmVkIGxvbmcgaXApIHt9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprYXNhbl9rbWFsbG9j
KHN0cnVjdCBrbWVtX2NhY2hlICpzLCBjb25zdCB2b2lkICpvYmplY3QsCjE0NDc0OiAgICAgc2l6
ZV90IHNpemUsIGdmcF90IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodm9pZCAqKW9i
amVjdDsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKmthc2FuX2tyZWFsbG9jKGNvbnN0IHZvaWQgKm9i
amVjdCwgc2l6ZV90IG5ld19zaXplLAoxNDQ3NDogICAgICBnZnBfdCBmbGFncykKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gKHZvaWQgKilvYmplY3Q7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgKmthc2FuX3NsYWJfYWxsb2Moc3RydWN0IGttZW1fY2FjaGUgKnMsIHZvaWQgKm9iamVjdCwK
MTQ0NzQ6ICAgICAgICBnZnBfdCBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gb2JqZWN0
OwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrYXNhbl9zbGFiX2ZyZWUoc3RydWN0IGttZW1fY2FjaGUg
KnMsIHZvaWQgKm9iamVjdCwKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBsb25nIGlwKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBmYWxzZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGthc2Fu
X21vZHVsZV9hbGxvYyh2b2lkICphZGRyLCBzaXplX3Qgc2l6ZSkgeyByZXR1cm4gMDsgfQoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBrYXNhbl9mcmVlX3NoYWRvdyhjb25zdCBzdHJ1Y3Qgdm1fc3RydWN0ICp2bSkge30K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IGthc2FuX2FkZF96ZXJvX3NoYWRvdyh2b2lkICpzdGFydCwgdW5z
aWduZWQgbG9uZyBzaXplKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBrYXNhbl9yZW1vdmVfemVyb19zaGFkb3codm9pZCAqc3RhcnQsCjE0NDc0OiAgICAg
IHVuc2lnbmVkIGxvbmcgc2l6ZSkKMTQ0NzQ6IHt9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5f
dW5wb2lzb25fc2xhYihjb25zdCB2b2lkICpwdHIpIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc2l6ZV90IGthc2FuX21l
dGFkYXRhX3NpemUoc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlKSB7IHJldHVybiAwOyB9CjE0NDc0
OiAjIDE4MCAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2NhY2hl
X3NocmluayhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpIHt9CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2Nh
Y2hlX3NodXRkb3duKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSkge30KMTQ0NzQ6ICMgMTk4ICIu
L2luY2x1ZGUvbGludXgva2FzYW4uaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5faW5pdF90YWdzKHZvaWQp
IHsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprYXNhbl9yZXNldF90YWcoY29uc3Qgdm9pZCAqYWRk
cikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHZvaWQgKilhZGRyOwoxNDQ3NDogfQoxNDQ3NDog
IyAyMTUgIi4vaW5jbHVkZS9saW51eC9rYXNhbi5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGthc2FuX3BvcHVsYXRl
X3ZtYWxsb2ModW5zaWduZWQgbG9uZyBzdGFydCwKMTQ0NzQ6ICAgICAgdW5zaWduZWQgbG9uZyBz
aXplKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGthc2FuX3BvaXNvbl92bWFsbG9jKGNvbnN0IHZvaWQgKnN0YXJ0LCB1bnNpZ25lZCBsb25n
IHNpemUpCjE0NDc0OiB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5wb2lzb25fdm1hbGxvYyhjb25z
dCB2b2lkICpzdGFydCwgdW5zaWduZWQgbG9uZyBzaXplKQoxNDQ3NDogeyB9CjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGthc2FuX3JlbGVhc2Vfdm1hbGxvYyh1bnNpZ25lZCBsb25nIHN0YXJ0LAoxNDQ3NDogICAgICAg
dW5zaWduZWQgbG9uZyBlbmQsCjE0NDc0OiAgICAgICB1bnNpZ25lZCBsb25nIGZyZWVfcmVnaW9u
X3N0YXJ0LAoxNDQ3NDogICAgICAgdW5zaWduZWQgbG9uZyBmcmVlX3JlZ2lvbl9lbmQpIHt9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9u
b25fY2Fub25pY2FsX2hvb2sodW5zaWduZWQgbG9uZyBhZGRyKSB7IH0KMTQ0NzQ6ICMgMTM3ICIu
L2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtZW1fY2dyb3Vw
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBrbWVtX2Nh
Y2hlX2luaXQodm9pZCk7CjE0NDc0OiBib29sIHNsYWJfaXNfYXZhaWxhYmxlKHZvaWQpOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gYm9vbCB1c2VyY29weV9mYWxsYmFjazsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGttZW1fY2FjaGUgKmttZW1fY2FjaGVfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIHVu
c2lnbmVkIGludCBzaXplLAoxNDQ3NDogICAgdW5zaWduZWQgaW50IGFsaWduLCBzbGFiX2ZsYWdz
X3QgZmxhZ3MsCjE0NDc0OiAgICB2b2lkICgqY3Rvcikodm9pZCAqKSk7CjE0NDc0OiBzdHJ1Y3Qg
a21lbV9jYWNoZSAqa21lbV9jYWNoZV9jcmVhdGVfdXNlcmNvcHkoY29uc3QgY2hhciAqbmFtZSwK
MTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24sCjE0NDc0OiAg
ICBzbGFiX2ZsYWdzX3QgZmxhZ3MsCjE0NDc0OiAgICB1bnNpZ25lZCBpbnQgdXNlcm9mZnNldCwg
dW5zaWduZWQgaW50IHVzZXJzaXplLAoxNDQ3NDogICAgdm9pZCAoKmN0b3IpKHZvaWQgKikpOwox
NDQ3NDogdm9pZCBrbWVtX2NhY2hlX2Rlc3Ryb3koc3RydWN0IGttZW1fY2FjaGUgKik7CjE0NDc0
OiBpbnQga21lbV9jYWNoZV9zaHJpbmsoc3RydWN0IGttZW1fY2FjaGUgKik7CjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgbWVtY2dfY3JlYXRlX2ttZW1fY2FjaGUoc3RydWN0IG1lbV9jZ3JvdXAgKiwgc3Ry
dWN0IGttZW1fY2FjaGUgKik7CjE0NDc0OiB2b2lkIG1lbWNnX2RlYWN0aXZhdGVfa21lbV9jYWNo
ZXMoc3RydWN0IG1lbV9jZ3JvdXAgKiwgc3RydWN0IG1lbV9jZ3JvdXAgKik7CjE0NDc0OiAjIDE4
NyAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKMTQ0NzQ6IHZvaWQgKiBfX2F0dHJpYnV0ZV9fKChf
X3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3JlYWxsb2MoY29uc3Qgdm9pZCAqLCBzaXplX3QsIGdm
cF90KTsKMTQ0NzQ6IHZvaWQga2ZyZWUoY29uc3Qgdm9pZCAqKTsKMTQ0NzQ6IHZvaWQga3pmcmVl
KGNvbnN0IHZvaWQgKik7CjE0NDc0OiBzaXplX3QgX19rc2l6ZShjb25zdCB2b2lkICopOwoxNDQ3
NDogc2l6ZV90IGtzaXplKGNvbnN0IHZvaWQgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9p
ZCBfX2NoZWNrX2hlYXBfb2JqZWN0KGNvbnN0IHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyBuLCBz
dHJ1Y3QgcGFnZSAqcGFnZSwKMTQ0NzQ6ICAgIGJvb2wgdG9fdXNlcik7CjE0NDc0OiAjIDMwOCAi
Li9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKMTQ0NzQ6IGVudW0ga21hbGxvY19jYWNoZV90eXBlIHsK
MTQ0NzQ6ICBLTUFMTE9DX05PUk1BTCA9IDAsCjE0NDc0OiAgS01BTExPQ19SRUNMQUlNLAoxNDQ3
NDogCjE0NDc0OiAgS01BTExPQ19ETUEsCjE0NDc0OiAKMTQ0NzQ6ICBOUl9LTUFMTE9DX1RZUEVT
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga21lbV9jYWNo
ZSAqCjE0NDc0OiBrbWFsbG9jX2NhY2hlc1tOUl9LTUFMTE9DX1RZUEVTXVsoKDExICsgMTIgLSAx
KSA8PSAyNSA/ICgxMSArIDEyIC0gMSkgOiAyNSkgKyAxXTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBlbnVtIGttYWxsb2NfY2FjaGVfdHlwZSBrbWFs
bG9jX3R5cGUoZ2ZwX3QgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKChmbGFncyAmICgo
KCBnZnBfdCkweDAxdSkgfCAoKCBnZnBfdCkweDEwdSkpKSA9PSAwKSwgMSkpCjE0NDc0OiAgIHJl
dHVybiBLTUFMTE9DX05PUk1BTDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgcmV0dXJuIGZsYWdzICYgKCggZ2ZwX3QpMHgwMXUpID8gS01BTExPQ19ETUEg
OiBLTUFMTE9DX1JFQ0xBSU07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0
OiAjIDM0OSAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgdW5zaWduZWQgaW50IGttYWxsb2NfaW5kZXgoc2l6ZV90IHNpemUp
CjE0NDc0OiB7CjE0NDc0OiAgaWYgKCFzaXplKQoxNDQ3NDogICByZXR1cm4gMDsKMTQ0NzQ6IAox
NDQ3NDogIGlmIChzaXplIDw9ICgxIDw8IDUpKQoxNDQ3NDogICByZXR1cm4gNTsKMTQ0NzQ6IAox
NDQ3NDogIGlmICgoMSA8PCA1KSA8PSAzMiAmJiBzaXplID4gNjQgJiYgc2l6ZSA8PSA5NikKMTQ0
NzQ6ICAgcmV0dXJuIDE7CjE0NDc0OiAgaWYgKCgxIDw8IDUpIDw9IDY0ICYmIHNpemUgPiAxMjgg
JiYgc2l6ZSA8PSAxOTIpCjE0NDc0OiAgIHJldHVybiAyOwoxNDQ3NDogIGlmIChzaXplIDw9IDgp
IHJldHVybiAzOwoxNDQ3NDogIGlmIChzaXplIDw9IDE2KSByZXR1cm4gNDsKMTQ0NzQ6ICBpZiAo
c2l6ZSA8PSAzMikgcmV0dXJuIDU7CjE0NDc0OiAgaWYgKHNpemUgPD0gNjQpIHJldHVybiA2Owox
NDQ3NDogIGlmIChzaXplIDw9IDEyOCkgcmV0dXJuIDc7CjE0NDc0OiAgaWYgKHNpemUgPD0gMjU2
KSByZXR1cm4gODsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSA1MTIpIHJldHVybiA5OwoxNDQ3NDogIGlm
IChzaXplIDw9IDEwMjQpIHJldHVybiAxMDsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSAyICogMTAyNCkg
cmV0dXJuIDExOwoxNDQ3NDogIGlmIChzaXplIDw9IDQgKiAxMDI0KSByZXR1cm4gMTI7CjE0NDc0
OiAgaWYgKHNpemUgPD0gOCAqIDEwMjQpIHJldHVybiAxMzsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSAx
NiAqIDEwMjQpIHJldHVybiAxNDsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSAzMiAqIDEwMjQpIHJldHVy
biAxNTsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSA2NCAqIDEwMjQpIHJldHVybiAxNjsKMTQ0NzQ6ICBp
ZiAoc2l6ZSA8PSAxMjggKiAxMDI0KSByZXR1cm4gMTc7CjE0NDc0OiAgaWYgKHNpemUgPD0gMjU2
ICogMTAyNCkgcmV0dXJuIDE4OwoxNDQ3NDogIGlmIChzaXplIDw9IDUxMiAqIDEwMjQpIHJldHVy
biAxOTsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSAxMDI0ICogMTAyNCkgcmV0dXJuIDIwOwoxNDQ3NDog
IGlmIChzaXplIDw9IDIgKiAxMDI0ICogMTAyNCkgcmV0dXJuIDIxOwoxNDQ3NDogIGlmIChzaXpl
IDw9IDQgKiAxMDI0ICogMTAyNCkgcmV0dXJuIDIyOwoxNDQ3NDogIGlmIChzaXplIDw9IDggKiAx
MDI0ICogMTAyNCkgcmV0dXJuIDIzOwoxNDQ3NDogIGlmIChzaXplIDw9IDE2ICogMTAyNCAqIDEw
MjQpIHJldHVybiAyNDsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSAzMiAqIDEwMjQgKiAxMDI0KSByZXR1
cm4gMjU7CjE0NDc0OiAgaWYgKHNpemUgPD0gNjQgKiAxMDI0ICogMTAyNCkgcmV0dXJuIDI2Owox
NDQ3NDogIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBm
LCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAi
LmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5s
b25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEi
ICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZs
YWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUv
bGludXgvc2xhYi5oIiksICJpIiAoMzg1KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1
Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIg
Ii5wdXNoc2VjdGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxu
XHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDE4KSk7IH0pOyBhc20gdm9sYXRpbGUoIiIp
OyBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gLTE7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdm9pZCAqX19rbWFsbG9jKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncykgX19hdHRyaWJ1
dGVfXygoX19hc3N1bWVfYWxpZ25lZF9fKF9fYWxpZ25vZl9fKHVuc2lnbmVkIGxvbmcgbG9uZykp
KSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpOwoxNDQ3NDogdm9pZCAqa21lbV9jYWNoZV9h
bGxvYyhzdHJ1Y3Qga21lbV9jYWNoZSAqLCBnZnBfdCBmbGFncykgX19hdHRyaWJ1dGVfXygoX19h
c3N1bWVfYWxpZ25lZF9fKF9fYWxpZ25vZl9fKHVuc2lnbmVkIGxvbmcgbG9uZykpKSkgX19hdHRy
aWJ1dGVfXygoX19tYWxsb2NfXykpOwoxNDQ3NDogdm9pZCBrbWVtX2NhY2hlX2ZyZWUoc3RydWN0
IGttZW1fY2FjaGUgKiwgdm9pZCAqKTsKMTQ0NzQ6ICMgNDAzICIuL2luY2x1ZGUvbGludXgvc2xh
Yi5oIgoxNDQ3NDogdm9pZCBrbWVtX2NhY2hlX2ZyZWVfYnVsayhzdHJ1Y3Qga21lbV9jYWNoZSAq
LCBzaXplX3QsIHZvaWQgKiopOwoxNDQ3NDogaW50IGttZW1fY2FjaGVfYWxsb2NfYnVsayhzdHJ1
Y3Qga21lbV9jYWNoZSAqLCBnZnBfdCwgc2l6ZV90LCB2b2lkICoqKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIHZvaWQga2ZyZWVfYnVsayhzaXplX3Qgc2l6ZSwgdm9pZCAqKnApCjE0NDc0OiB7
CjE0NDc0OiAga21lbV9jYWNoZV9mcmVlX2J1bGsoKCh2b2lkICopMCksIHNpemUsIHApOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCAqX19rbWFsbG9jX25vZGUoc2l6ZV90
IHNpemUsIGdmcF90IGZsYWdzLCBpbnQgbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19r
bWFsbG9jKHNpemUsIGZsYWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkICprbWVtX2NhY2hlX2FsbG9jX25vZGUoc3RydWN0
IGttZW1fY2FjaGUgKnMsIGdmcF90IGZsYWdzLCBpbnQgbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4ga21lbV9jYWNoZV9hbGxvYyhzLCBmbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCAqa21lbV9jYWNoZV9hbGxvY190cmFjZShzdHJ1
Y3Qga21lbV9jYWNoZSAqLCBnZnBfdCwgc2l6ZV90KSBfX2F0dHJpYnV0ZV9fKChfX2Fzc3VtZV9h
bGlnbmVkX18oX19hbGlnbm9mX18odW5zaWduZWQgbG9uZyBsb25nKSkpKSBfX2F0dHJpYnV0ZV9f
KChfX21hbGxvY19fKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgKgox
NDQ3NDoga21lbV9jYWNoZV9hbGxvY19ub2RlX3RyYWNlKHN0cnVjdCBrbWVtX2NhY2hlICpzLAox
NDQ3NDogICAgICAgICAgZ2ZwX3QgZ2ZwZmxhZ3MsCjE0NDc0OiAgICAgICAgICBpbnQgbm9kZSwg
c2l6ZV90IHNpemUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGttZW1fY2FjaGVfYWxsb2NfdHJh
Y2UocywgZ2ZwZmxhZ3MsIHNpemUpOwoxNDQ3NDogfQoxNDQ3NDogIyA0NjkgIi4vaW5jbHVkZS9s
aW51eC9zbGFiLmgiCjE0NDc0OiBleHRlcm4gdm9pZCAqa21hbGxvY19vcmRlcihzaXplX3Qgc2l6
ZSwgZ2ZwX3QgZmxhZ3MsIHVuc2lnbmVkIGludCBvcmRlcikgX19hdHRyaWJ1dGVfXygoX19hc3N1
bWVfYWxpZ25lZF9fKCgoMVVMKSA8PCAxMikpKSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykp
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkICprbWFsbG9jX29yZGVyX3RyYWNl
KHNpemVfdCBzaXplLCBnZnBfdCBmbGFncywgdW5zaWduZWQgaW50IG9yZGVyKSBfX2F0dHJpYnV0
ZV9fKChfX2Fzc3VtZV9hbGlnbmVkX18oKCgxVUwpIDw8IDEyKSkpKSBfX2F0dHJpYnV0ZV9fKChf
X21hbGxvY19fKSk7CjE0NDc0OiAjIDQ4MSAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCAqa21hbGxvY19sYXJnZShz
aXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgaW50IG9y
ZGVyID0gZ2V0X29yZGVyKHNpemUpOwoxNDQ3NDogIHJldHVybiBrbWFsbG9jX29yZGVyX3RyYWNl
KHNpemUsIGZsYWdzLCBvcmRlcik7CjE0NDc0OiB9CjE0NDc0OiAjIDU0MSAiLi9pbmNsdWRlL2xp
bnV4L3NsYWIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZCAqa21hbGxvYyhzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgaWYg
KF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpKSB7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQg
aW50IGluZGV4OwoxNDQ3NDogCjE0NDc0OiAgIGlmIChzaXplID4gKDFVTCA8PCAoKDExICsgMTIg
LSAxKSA8PSAyNSA/ICgxMSArIDEyIC0gMSkgOiAyNSkpKQoxNDQ3NDogICAgcmV0dXJuIGttYWxs
b2NfbGFyZ2Uoc2l6ZSwgZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAgIGluZGV4ID0ga21hbGxvY19p
bmRleChzaXplKTsKMTQ0NzQ6IAoxNDQ3NDogICBpZiAoIWluZGV4KQoxNDQ3NDogICAgcmV0dXJu
ICgodm9pZCAqKTE2KTsKMTQ0NzQ6IAoxNDQ3NDogICByZXR1cm4ga21lbV9jYWNoZV9hbGxvY190
cmFjZSgKMTQ0NzQ6ICAgICBrbWFsbG9jX2NhY2hlc1trbWFsbG9jX3R5cGUoZmxhZ3MpXVtpbmRl
eF0sCjE0NDc0OiAgICAgZmxhZ3MsIHNpemUpOwoxNDQ3NDogCjE0NDc0OiAgfQoxNDQ3NDogIHJl
dHVybiBfX2ttYWxsb2Moc2l6ZSwgZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgKmttYWxsb2Nfbm9kZShzaXplX3Qg
c2l6ZSwgZ2ZwX3QgZmxhZ3MsIGludCBub2RlKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgaWYg
KF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpICYmCjE0NDc0OiAgIHNpemUgPD0gKDFVTCA8PCAo
KDExICsgMTIgLSAxKSA8PSAyNSA/ICgxMSArIDEyIC0gMSkgOiAyNSkpKSB7CjE0NDc0OiAgIHVu
c2lnbmVkIGludCBpID0ga21hbGxvY19pbmRleChzaXplKTsKMTQ0NzQ6IAoxNDQ3NDogICBpZiAo
IWkpCjE0NDc0OiAgICByZXR1cm4gKCh2b2lkICopMTYpOwoxNDQ3NDogCjE0NDc0OiAgIHJldHVy
biBrbWVtX2NhY2hlX2FsbG9jX25vZGVfdHJhY2UoCjE0NDc0OiAgICAga21hbGxvY19jYWNoZXNb
a21hbGxvY190eXBlKGZsYWdzKV1baV0sCjE0NDc0OiAgICAgICBmbGFncywgbm9kZSwgc2l6ZSk7
CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIF9fa21hbGxvY19ub2RlKHNpemUsIGZs
YWdzLCBub2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogaW50IG1lbWNnX3VwZGF0ZV9hbGxf
Y2FjaGVzKGludCBudW1fbWVtY2dzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqa21hbGxvY19hcnJheShzaXplX3Qg
biwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIHNpemVfdCBieXRl
czsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCh7IHR5cGVvZihuKSBf
X2EgPSAobik7IHR5cGVvZihzaXplKSBfX2IgPSAoc2l6ZSk7IHR5cGVvZigmYnl0ZXMpIF9fZCA9
ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBf
X2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwgX19iLCBfX2QpOyB9KSksIDApKQoxNDQ3NDogICBy
ZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG4pICYm
IF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpKQoxNDQ3NDogICByZXR1cm4ga21hbGxvYyhieXRl
cywgZmxhZ3MpOwoxNDQ3NDogIHJldHVybiBfX2ttYWxsb2MoYnl0ZXMsIGZsYWdzKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCAqa2NhbGxvYyhzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdz
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrbWFsbG9jX2FycmF5KG4sIHNpemUsIGZsYWdzIHwg
KCggZ2ZwX3QpMHgxMDB1KSk7CjE0NDc0OiB9CjE0NDc0OiAjIDYxOSAiLi9pbmNsdWRlL2xpbnV4
L3NsYWIuaCIKMTQ0NzQ6IGV4dGVybiB2b2lkICpfX2ttYWxsb2NfdHJhY2tfY2FsbGVyKHNpemVf
dCwgZ2ZwX3QsIHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCAqa21hbGxvY19hcnJheV9ub2RlKHNpemVfdCBuLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxh
Z3MsCjE0NDc0OiAgICAgICAgICAgIGludCBub2RlKQoxNDQ3NDogewoxNDQ3NDogIHNpemVfdCBi
eXRlczsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCh7IHR5cGVvZihu
KSBfX2EgPSAobik7IHR5cGVvZihzaXplKSBfX2IgPSAoc2l6ZSk7IHR5cGVvZigmYnl0ZXMpIF9f
ZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2Qp
OyBfX2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwgX19iLCBfX2QpOyB9KSksIDApKQoxNDQ3NDog
ICByZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG4p
ICYmIF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpKQoxNDQ3NDogICByZXR1cm4ga21hbGxvY19u
b2RlKGJ5dGVzLCBmbGFncywgbm9kZSk7CjE0NDc0OiAgcmV0dXJuIF9fa21hbGxvY19ub2RlKGJ5
dGVzLCBmbGFncywgbm9kZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKmtjYWxsb2Nf
bm9kZShzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzLCBpbnQgbm9kZSkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4ga21hbGxvY19hcnJheV9ub2RlKG4sIHNpemUsIGZsYWdzIHwgKCgg
Z2ZwX3QpMHgxMDB1KSwgbm9kZSk7CjE0NDc0OiB9CjE0NDc0OiAjIDY1NyAiLi9pbmNsdWRlL2xp
bnV4L3NsYWIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKmttZW1fY2FjaGVfemFsbG9jKHN0cnVjdCBrbWVtX2Nh
Y2hlICprLCBnZnBfdCBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga21lbV9jYWNoZV9h
bGxvYyhrLCBmbGFncyB8ICgoIGdmcF90KTB4MTAwdSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqa3phbGxvYyhz
aXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGttYWxsb2Mo
c2l6ZSwgZmxhZ3MgfCAoKCBnZnBfdCkweDEwMHUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqa3ph
bGxvY19ub2RlKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncywgaW50IG5vZGUpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIGttYWxsb2Nfbm9kZShzaXplLCBmbGFncyB8ICgoIGdmcF90KTB4MTAwdSks
IG5vZGUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBpbnQga21lbV9jYWNoZV9z
aXplKHN0cnVjdCBrbWVtX2NhY2hlICpzKTsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoX19z
ZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkga21lbV9j
YWNoZV9pbml0X2xhdGUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogaW50IHNsYWJfcHJl
cGFyZV9jcHUodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0OiBpbnQgc2xhYl9kZWFkX2NwdSh1bnNp
Z25lZCBpbnQgY3B1KTsKMTQ0NzQ6ICMgMzQgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9vc190eXBlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiIDEKMTQ0NzQ6ICMgMzEgIi4vaW5jbHVk
ZS9kcm0vZHJtX3ByaW50LmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zZXFfZmlsZS5o
IiAxCjE0NDc0OiAjIDExICIuL2luY2x1ZGUvbGludXgvc2VxX2ZpbGUuaCIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L2ZzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5oIiAxCjE0NDc0OiAj
IDEwICIuL2luY2x1ZGUvbGludXgvd2FpdF9iaXQuaCIKMTQ0NzQ6IHN0cnVjdCB3YWl0X2JpdF9r
ZXkgewoxNDQ3NDogIHZvaWQgKmZsYWdzOwoxNDQ3NDogIGludCBiaXRfbnI7CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyB0aW1lb3V0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHdhaXRf
Yml0X3F1ZXVlX2VudHJ5IHsKMTQ0NzQ6ICBzdHJ1Y3Qgd2FpdF9iaXRfa2V5IGtleTsKMTQ0NzQ6
ICBzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSB3cV9lbnRyeTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgaW50IHdhaXRfYml0X2FjdGlvbl9m
KHN0cnVjdCB3YWl0X2JpdF9rZXkgKmtleSwgaW50IG1vZGUpOwoxNDQ3NDogCjE0NDc0OiB2b2lk
IF9fd2FrZV91cF9iaXQoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgdm9pZCAqd29y
ZCwgaW50IGJpdCk7CjE0NDc0OiBpbnQgX193YWl0X29uX2JpdChzdHJ1Y3Qgd2FpdF9xdWV1ZV9o
ZWFkICp3cV9oZWFkLCBzdHJ1Y3Qgd2FpdF9iaXRfcXVldWVfZW50cnkgKndicV9lbnRyeSwgd2Fp
dF9iaXRfYWN0aW9uX2YgKmFjdGlvbiwgdW5zaWduZWQgaW50IG1vZGUpOwoxNDQ3NDogaW50IF9f
d2FpdF9vbl9iaXRfbG9jayhzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qg
d2FpdF9iaXRfcXVldWVfZW50cnkgKndicV9lbnRyeSwgd2FpdF9iaXRfYWN0aW9uX2YgKmFjdGlv
biwgdW5zaWduZWQgaW50IG1vZGUpOwoxNDQ3NDogdm9pZCB3YWtlX3VwX2JpdCh2b2lkICp3b3Jk
LCBpbnQgYml0KTsKMTQ0NzQ6IGludCBvdXRfb2ZfbGluZV93YWl0X29uX2JpdCh2b2lkICp3b3Jk
LCBpbnQsIHdhaXRfYml0X2FjdGlvbl9mICphY3Rpb24sIHVuc2lnbmVkIGludCBtb2RlKTsKMTQ0
NzQ6IGludCBvdXRfb2ZfbGluZV93YWl0X29uX2JpdF90aW1lb3V0KHZvaWQgKndvcmQsIGludCwg
d2FpdF9iaXRfYWN0aW9uX2YgKmFjdGlvbiwgdW5zaWduZWQgaW50IG1vZGUsIHVuc2lnbmVkIGxv
bmcgdGltZW91dCk7CjE0NDc0OiBpbnQgb3V0X29mX2xpbmVfd2FpdF9vbl9iaXRfbG9jayh2b2lk
ICp3b3JkLCBpbnQsIHdhaXRfYml0X2FjdGlvbl9mICphY3Rpb24sIHVuc2lnbmVkIGludCBtb2Rl
KTsKMTQ0NzQ6IHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKmJpdF93YWl0cXVldWUodm9pZCAqd29y
ZCwgaW50IGJpdCk7CjE0NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25f
XygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSB3YWl0X2JpdF9pbml0
KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBpbnQgd2FrZV9iaXRfZnVuY3Rpb24oc3RydWN0IHdhaXRf
cXVldWVfZW50cnkgKndxX2VudHJ5LCB1bnNpZ25lZCBtb2RlLCBpbnQgc3luYywgdm9pZCAqa2V5
KTsKMTQ0NzQ6ICMgNDkgIi4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5oIgoxNDQ3NDogZXh0ZXJu
IGludCBiaXRfd2FpdChzdHJ1Y3Qgd2FpdF9iaXRfa2V5ICprZXksIGludCBtb2RlKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgYml0X3dhaXRfaW8oc3RydWN0IHdhaXRfYml0X2tleSAqa2V5LCBpbnQgbW9k
ZSk7CjE0NDc0OiBleHRlcm4gaW50IGJpdF93YWl0X3RpbWVvdXQoc3RydWN0IHdhaXRfYml0X2tl
eSAqa2V5LCBpbnQgbW9kZSk7CjE0NDc0OiBleHRlcm4gaW50IGJpdF93YWl0X2lvX3RpbWVvdXQo
c3RydWN0IHdhaXRfYml0X2tleSAqa2V5LCBpbnQgbW9kZSk7CjE0NDc0OiAjIDcwICIuL2luY2x1
ZGUvbGludXgvd2FpdF9iaXQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogd2FpdF9vbl9iaXQodW5zaWdu
ZWQgbG9uZyAqd29yZCwgaW50IGJpdCwgdW5zaWduZWQgbW9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBk
byB7IGRvIHsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGlmICghdGVzdF9iaXQo
Yml0LCB3b3JkKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAgcmV0dXJuIG91dF9vZl9saW5l
X3dhaXRfb25fYml0KHdvcmQsIGJpdCwKMTQ0NzQ6ICAgICAgICAgICAgYml0X3dhaXQsCjE0NDc0
OiAgICAgICAgICAgIG1vZGUpOwoxNDQ3NDogfQoxNDQ3NDogIyA5NSAiLi9pbmNsdWRlL2xpbnV4
L3dhaXRfYml0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IHdhaXRfb25fYml0X2lvKHVuc2lnbmVkIGxv
bmcgKndvcmQsIGludCBiaXQsIHVuc2lnbmVkIG1vZGUpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBk
byB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBpZiAoIXRlc3RfYml0KGJpdCwg
d29yZCkpCjE0NDc0OiAgIHJldHVybiAwOwoxNDQ3NDogIHJldHVybiBvdXRfb2ZfbGluZV93YWl0
X29uX2JpdCh3b3JkLCBiaXQsCjE0NDc0OiAgICAgICAgICAgIGJpdF93YWl0X2lvLAoxNDQ3NDog
ICAgICAgICAgICBtb2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTIxICIuL2luY2x1ZGUvbGludXgv
d2FpdF9iaXQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogd2FpdF9vbl9iaXRfdGltZW91dCh1bnNpZ25l
ZCBsb25nICp3b3JkLCBpbnQgYml0LCB1bnNpZ25lZCBtb2RlLAoxNDQ3NDogICAgICAgdW5zaWdu
ZWQgbG9uZyB0aW1lb3V0KQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8geyB9IHdoaWxlICgwKTsg
fSB3aGlsZSAoMCk7CjE0NDc0OiAgaWYgKCF0ZXN0X2JpdChiaXQsIHdvcmQpKQoxNDQ3NDogICBy
ZXR1cm4gMDsKMTQ0NzQ6ICByZXR1cm4gb3V0X29mX2xpbmVfd2FpdF9vbl9iaXRfdGltZW91dCh3
b3JkLCBiaXQsCjE0NDc0OiAgICAgICAgICAgICBiaXRfd2FpdF90aW1lb3V0LAoxNDQ3NDogICAg
ICAgICAgICAgbW9kZSwgdGltZW91dCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE0OSAiLi9pbmNsdWRl
L2xpbnV4L3dhaXRfYml0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IHdhaXRfb25fYml0X2FjdGlvbih1
bnNpZ25lZCBsb25nICp3b3JkLCBpbnQgYml0LCB3YWl0X2JpdF9hY3Rpb25fZiAqYWN0aW9uLAox
NDQ3NDogICAgICB1bnNpZ25lZCBtb2RlKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8geyB9IHdo
aWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgaWYgKCF0ZXN0X2JpdChiaXQsIHdvcmQpKQox
NDQ3NDogICByZXR1cm4gMDsKMTQ0NzQ6ICByZXR1cm4gb3V0X29mX2xpbmVfd2FpdF9vbl9iaXQo
d29yZCwgYml0LCBhY3Rpb24sIG1vZGUpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNzggIi4vaW5jbHVk
ZS9saW51eC93YWl0X2JpdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiB3YWl0X29uX2JpdF9sb2NrKHVu
c2lnbmVkIGxvbmcgKndvcmQsIGludCBiaXQsIHVuc2lnbmVkIG1vZGUpCjE0NDc0OiB7CjE0NDc0
OiAgZG8geyBkbyB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBpZiAoIXRlc3Rf
YW5kX3NldF9iaXQoYml0LCB3b3JkKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAgcmV0dXJu
IG91dF9vZl9saW5lX3dhaXRfb25fYml0X2xvY2sod29yZCwgYml0LCBiaXRfd2FpdCwgbW9kZSk7
CjE0NDc0OiB9CjE0NDc0OiAjIDIwMiAiLi9pbmNsdWRlL2xpbnV4L3dhaXRfYml0LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQKMTQ0NzQ6IHdhaXRfb25fYml0X2xvY2tfaW8odW5zaWduZWQgbG9uZyAqd29yZCwgaW50
IGJpdCwgdW5zaWduZWQgbW9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IGRvIHsgfSB3aGlsZSAo
MCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGlmICghdGVzdF9hbmRfc2V0X2JpdChiaXQsIHdvcmQp
KQoxNDQ3NDogICByZXR1cm4gMDsKMTQ0NzQ6ICByZXR1cm4gb3V0X29mX2xpbmVfd2FpdF9vbl9i
aXRfbG9jayh3b3JkLCBiaXQsIGJpdF93YWl0X2lvLCBtb2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MjI4ICIuL2luY2x1ZGUvbGludXgvd2FpdF9iaXQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogd2FpdF9v
bl9iaXRfbG9ja19hY3Rpb24odW5zaWduZWQgbG9uZyAqd29yZCwgaW50IGJpdCwgd2FpdF9iaXRf
YWN0aW9uX2YgKmFjdGlvbiwKMTQ0NzQ6ICAgIHVuc2lnbmVkIG1vZGUpCjE0NDc0OiB7CjE0NDc0
OiAgZG8geyBkbyB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBpZiAoIXRlc3Rf
YW5kX3NldF9iaXQoYml0LCB3b3JkKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAgcmV0dXJu
IG91dF9vZl9saW5lX3dhaXRfb25fYml0X2xvY2sod29yZCwgYml0LCBhY3Rpb24sIG1vZGUpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBpbml0X3dhaXRfdmFyX2VudHJ5KHN0
cnVjdCB3YWl0X2JpdF9xdWV1ZV9lbnRyeSAqd2JxX2VudHJ5LCB2b2lkICp2YXIsIGludCBmbGFn
cyk7CjE0NDc0OiBleHRlcm4gdm9pZCB3YWtlX3VwX3Zhcih2b2lkICp2YXIpOwoxNDQ3NDogZXh0
ZXJuIHdhaXRfcXVldWVfaGVhZF90ICpfX3Zhcl93YWl0cXVldWUodm9pZCAqcCk7CjE0NDc0OiAj
IDMzMCAiLi9pbmNsdWRlL2xpbnV4L3dhaXRfYml0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNsZWFyX2FuZF93
YWtlX3VwX2JpdChpbnQgYml0LCB2b2lkICp3b3JkKQoxNDQ3NDogewoxNDQ3NDogIGNsZWFyX2Jp
dF91bmxvY2soYml0LCB3b3JkKTsKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0
NDc0OiAgd2FrZV91cF9iaXQod29yZCwgYml0KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNyAiLi9pbmNs
dWRlL2xpbnV4L2ZzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2tkZXZfdC5oIiAx
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3Vh
cGkvbGludXgva2Rldl90LmgiIDEKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2xpbnV4L2tkZXZfdC5o
IiAyCjE0NDc0OiAjIDI0ICIuL2luY2x1ZGUvbGludXgva2Rldl90LmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIG9s
ZF92YWxpZF9kZXYoZGV2X3QgZGV2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKHVuc2lnbmVk
IGludCkgKChkZXYpID4+IDIwKSkgPCAyNTYgJiYgKCh1bnNpZ25lZCBpbnQpICgoZGV2KSAmICgo
MVUgPDwgMjApIC0gMSkpKSA8IDI1NjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTE2IG9sZF9l
bmNvZGVfZGV2KGRldl90IGRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCgodW5zaWduZWQg
aW50KSAoKGRldikgPj4gMjApKSA8PCA4KSB8ICgodW5zaWduZWQgaW50KSAoKGRldikgJiAoKDFV
IDw8IDIwKSAtIDEpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGRldl90IG9sZF9kZWNvZGVf
ZGV2KHUxNiB2YWwpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoKCh2YWwgPj4gOCkgJiAyNTUp
IDw8IDIwKSB8ICh2YWwgJiAyNTUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIG5ld19l
bmNvZGVfZGV2KGRldl90IGRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBtYWpvciA9ICgo
dW5zaWduZWQgaW50KSAoKGRldikgPj4gMjApKTsKMTQ0NzQ6ICB1bnNpZ25lZCBtaW5vciA9ICgo
dW5zaWduZWQgaW50KSAoKGRldikgJiAoKDFVIDw8IDIwKSAtIDEpKSk7CjE0NDc0OiAgcmV0dXJu
IChtaW5vciAmIDB4ZmYpIHwgKG1ham9yIDw8IDgpIHwgKChtaW5vciAmIH4weGZmKSA8PCAxMik7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGRldl90IG5ld19kZWNvZGVfZGV2KHUzMiBkZXYpCjE0
NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbWFqb3IgPSAoZGV2ICYgMHhmZmYwMCkgPj4gODsKMTQ0
NzQ6ICB1bnNpZ25lZCBtaW5vciA9IChkZXYgJiAweGZmKSB8ICgoZGV2ID4+IDEyKSAmIDB4ZmZm
MDApOwoxNDQ3NDogIHJldHVybiAoKChtYWpvcikgPDwgMjApIHwgKG1pbm9yKSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHU2NCBodWdlX2VuY29kZV9kZXYoZGV2X3QgZGV2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBuZXdfZW5jb2RlX2RldihkZXYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBkZXZfdCBodWdlX2RlY29kZV9kZXYodTY0IGRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
bmV3X2RlY29kZV9kZXYoZGV2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHN5c3ZfdmFs
aWRfZGV2KGRldl90IGRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh1bnNpZ25lZCBpbnQp
ICgoZGV2KSA+PiAyMCkpIDwgKDE8PDE0KSAmJiAoKHVuc2lnbmVkIGludCkgKChkZXYpICYgKCgx
VSA8PCAyMCkgLSAxKSkpIDwgKDE8PDE4KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIHN5
c3ZfZW5jb2RlX2RldihkZXZfdCBkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgodW5zaWdu
ZWQgaW50KSAoKGRldikgJiAoKDFVIDw8IDIwKSAtIDEpKSkgfCAoKCh1bnNpZ25lZCBpbnQpICgo
ZGV2KSA+PiAyMCkpIDw8IDE4KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgc3lz
dl9tYWpvcih1MzIgZGV2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoZGV2ID4+IDE4KSAmIDB4
M2ZmZjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgc3lzdl9taW5vcih1MzIgZGV2
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkZXYgJiAweDNmZmZmOwoxNDQ3NDogfQoxNDQ3NDog
IyA4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgv
ZGNhY2hlLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIgMQoxNDQ3NDogIyAzMSAi
Li9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgSU5JVF9MSVNUX0hFQURfUkNV
KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCjE0NDc0OiB7CjE0NDc0OiAgKHsgdW5pb24geyB0eXBl
b2YobGlzdC0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0
eXBlb2YobGlzdC0+bmV4dCkpIChsaXN0KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKGxpc3QtPm5l
eHQpLCBfX3UuX19jLCBzaXplb2YobGlzdC0+bmV4dCkpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDog
ICh7IHVuaW9uIHsgdHlwZW9mKGxpc3QtPnByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3Ug
PSB7IC5fX3ZhbCA9ICggdHlwZW9mKGxpc3QtPnByZXYpKSAobGlzdCkgfTsgX193cml0ZV9vbmNl
X3NpemUoJihsaXN0LT5wcmV2KSwgX191Ll9fYywgc2l6ZW9mKGxpc3QtPnByZXYpKTsgX191Ll9f
dmFsOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzcgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0Lmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIF9fbGlzdF9hZGRfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKm5ldywKMTQ0NzQ6
ICAgc3RydWN0IGxpc3RfaGVhZCAqcHJldiwgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICBpZiAoIV9fbGlzdF9hZGRfdmFsaWQobmV3LCBwcmV2LCBuZXh0KSkKMTQ0NzQ6
ICAgcmV0dXJuOwoxNDQ3NDogCjE0NDc0OiAgbmV3LT5uZXh0ID0gbmV4dDsKMTQ0NzQ6ICBuZXct
PnByZXYgPSBwcmV2OwoxNDQ3NDogIGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1aW50cHRy
X3QpKG5ldyk7IDsgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG5ldykgJiYgKF9yX2FfcF9fdikg
PT0gKHVpbnRwdHJfdCkoKHZvaWQgKikwKSkgKHsgdW5pb24geyB0eXBlb2YoKCgqKChzdHJ1Y3Qg
bGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYp
LT5uZXh0KSkpKSkpICgodHlwZW9mKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5u
ZXh0KSkpKSkoX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigoKCooKHN0cnVjdCBs
aXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpKSwgX191Ll9fYywgc2l6ZW9mKCgoKigoc3Ry
dWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpKTsgX191Ll9fdmFsOyB9KTsgZWxz
ZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfODUodm9pZCkgX19h
dHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2Fk
cyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVh
ZCAqKikoJihwcmV2KS0+bmV4dCkpKSkgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJigqKChz
dHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2Yoc2hvcnQpIHx8
IHNpemVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSA9PSBz
aXplb2YoaW50KSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+
bmV4dCkpKSkgPT0gc2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0Xzg1KCk7IH0g
d2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlv
biB7IHR5cGVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSBf
X3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJigqKChzdHJ1
Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgKCh0eXBlb2YoKigodHlwZW9mKCgq
KChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSlfcl9hX3BfX3YpKSAqKSgo
dHlwZW9mKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSlfcl9hX3Bf
X3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYo
cHJldiktPm5leHQpKSkpLCBfX3UuX19jLCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAq
KikoJihwcmV2KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGls
ZSAoMCk7CjE0NDc0OiAgbmV4dC0+cHJldiA9IG5ldzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTA1ICIu
L2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X2FkZF9yY3Uoc3RydWN0
IGxpc3RfaGVhZCAqbmV3LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQoxNDQ3NDogewoxNDQ3NDog
IF9fbGlzdF9hZGRfcmN1KG5ldywgaGVhZCwgaGVhZC0+bmV4dCk7CjE0NDc0OiB9CjE0NDc0OiAj
IDEyNiAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9hZGRfdGFp
bF9yY3Uoc3RydWN0IGxpc3RfaGVhZCAqbmV3LAoxNDQ3NDogICAgICBzdHJ1Y3QgbGlzdF9oZWFk
ICpoZWFkKQoxNDQ3NDogewoxNDQ3NDogIF9fbGlzdF9hZGRfcmN1KG5ldywgaGVhZC0+cHJldiwg
aGVhZCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE1NiAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgbGlzdF9kZWxfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQoxNDQ3NDog
ewoxNDQ3NDogIF9fbGlzdF9kZWxfZW50cnkoZW50cnkpOwoxNDQ3NDogIGVudHJ5LT5wcmV2ID0g
KCh2b2lkICopIDB4MTIyICsgKDB4ZGVhZDAwMDAwMDAwMDAwMFVMKSk7CjE0NDc0OiB9CjE0NDc0
OiAjIDE4MiAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfZGVs
X2luaXRfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIGlmICghaGxp
c3RfdW5oYXNoZWQobikpIHsKMTQ0NzQ6ICAgX19obGlzdF9kZWwobik7CjE0NDc0OiAgICh7IHVu
aW9uIHsgdHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192
YWwgPSAoIHR5cGVvZihuLT5wcHJldikpICgoKHZvaWQgKikwKSkgfTsgX193cml0ZV9vbmNlX3Np
emUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihuLT5wcHJldikpOyBfX3UuX192YWw7IH0p
OwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTk4ICIuL2luY2x1ZGUvbGludXgvcmN1bGlz
dC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3JlcGxhY2VfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKm9sZCwK
MTQ0NzQ6ICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpuZXcpCjE0NDc0OiB7CjE0NDc0OiAgbmV3LT5u
ZXh0ID0gb2xkLT5uZXh0OwoxNDQ3NDogIG5ldy0+cHJldiA9IG9sZC0+cHJldjsKMTQ0NzQ6ICBk
byB7IHVpbnRwdHJfdCBfcl9hX3BfX3YgPSAodWludHB0cl90KShuZXcpOyA7IGlmIChfX2J1aWx0
aW5fY29uc3RhbnRfcChuZXcpICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICop
MCkpICh7IHVuaW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnBy
ZXYpLT5uZXh0KSkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0
eXBlb2YoKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpKSkg
KCh0eXBlb2YoKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3LT5wcmV2KS0+bmV4dCkpKSkp
KF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCgqKChzdHJ1Y3QgbGlzdF9oZWFk
ICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpKSwgX191Ll9fYywgc2l6ZW9mKCgoKigoc3RydWN0
IGxpc3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSkpOyBfX3UuX192YWw7IH0pOyBl
bHNlIGRvIHsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8yMDModm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9s
b2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2YoKiYoKigoc3RydWN0IGxpc3Rf
aGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9m
KComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3LT5wcmV2KS0+bmV4dCkpKSkgPT0gc2l6
ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnBy
ZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3Rf
aGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21w
aWxldGltZV9hc3NlcnRfMjAzKCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygi
IjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFk
ICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7
IC5fX3ZhbCA9ICggdHlwZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3LT5wcmV2
KS0+bmV4dCkpKSkpICgodHlwZW9mKCooKHR5cGVvZigoKigoc3RydWN0IGxpc3RfaGVhZCAqKiko
JihuZXctPnByZXYpLT5uZXh0KSkpKSlfcl9hX3BfX3YpKSAqKSgodHlwZW9mKCgqKChzdHJ1Y3Qg
bGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpKV9yX2FfcF9fdikpIH07IF9fd3Jp
dGVfb25jZV9zaXplKCYoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5u
ZXh0KSkpKSwgX191Ll9fYywgc2l6ZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3
LT5wcmV2KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiAgbmV3LT5uZXh0LT5wcmV2ID0gbmV3OwoxNDQ3NDogIG9sZC0+cHJldiA9ICgo
dm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwoxNDQ3NDogfQoxNDQ3NDog
IyAyMjcgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbGlzdF9zcGxp
Y2VfaW5pdF9yY3Uoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3Qg
bGlzdF9oZWFkICpwcmV2LAoxNDQ3NDogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKm5leHQsCjE0
NDc0OiAgICAgICAgdm9pZCAoKnN5bmMpKHZvaWQpKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBs
aXN0X2hlYWQgKmZpcnN0ID0gbGlzdC0+bmV4dDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkICps
YXN0ID0gbGlzdC0+cHJldjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIElOSVRfTElTVF9IRUFEX1JDVShsaXN0KTsKMTQ0NzQ6
ICMgMjUwICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgoxNDQ3NDogIHN5bmMoKTsKMTQ0NzQ6
ICMgMjYwICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgoxNDQ3NDogIGxhc3QtPm5leHQgPSBu
ZXh0OwoxNDQ3NDogIGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1aW50cHRyX3QpKGZpcnN0
KTsgOyBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoZmlyc3QpICYmIChfcl9hX3BfX3YpID09ICh1
aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGxpc3Rf
aGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7
IC5fX3ZhbCA9ICggdHlwZW9mKCgoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4
dCkpKSkpKSAoKHR5cGVvZigoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkp
KSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCgqKChzdHJ1Y3QgbGlzdF9o
ZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSksIF9fdS5fX2MsIHNpemVvZigoKCooKHN0cnVjdCBs
aXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpKSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2UgZG8g
eyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzI2MSh2b2lkKSBfX2F0dHJp
YnV0ZV9fKChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZv
ciBhdG9taWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoq
KSgmKHByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComKCooKHN0cnVj
dCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVvZihzaG9ydCkgfHwgc2l6
ZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVv
ZihpbnQpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0
KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfMjYxKCk7IH0gd2hp
bGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7
IHR5cGVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSBfX3Zh
bDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJigqKChzdHJ1Y3Qg
bGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgKCh0eXBlb2YoKigodHlwZW9mKCgqKChz
dHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSlfcl9hX3BfX3YpKSAqKSgodHlw
ZW9mKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSlfcl9hX3BfX3Yp
KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJl
diktPm5leHQpKSkpLCBfX3UuX19jLCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKiko
JihwcmV2KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiAgZmlyc3QtPnByZXYgPSBwcmV2OwoxNDQ3NDogIG5leHQtPnByZXYgPSBsYXN0
OwoxNDQ3NDogfQoxNDQ3NDogIyAyNzMgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGxpc3Rfc3BsaWNlX2luaXRfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCjE0NDc0
OiAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCjE0NDc0OiAgICAgIHZvaWQgKCpzeW5jKSh2
b2lkKSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIWxpc3RfZW1wdHkobGlzdCkpCjE0NDc0OiAgIF9f
bGlzdF9zcGxpY2VfaW5pdF9yY3UobGlzdCwgaGVhZCwgaGVhZC0+bmV4dCwgc3luYyk7CjE0NDc0
OiB9CjE0NDc0OiAjIDI4OCAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
bGlzdF9zcGxpY2VfdGFpbF9pbml0X3JjdShzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAoxNDQ3NDog
ICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCjE0NDc0OiAgICAgICAgICAgdm9pZCAo
KnN5bmMpKHZvaWQpKQoxNDQ3NDogewoxNDQ3NDogIGlmICghbGlzdF9lbXB0eShsaXN0KSkKMTQ0
NzQ6ICAgX19saXN0X3NwbGljZV9pbml0X3JjdShsaXN0LCBoZWFkLT5wcmV2LCBoZWFkLCBzeW5j
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDgzICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBobGlzdF9kZWxfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3
NDogIF9faGxpc3RfZGVsKG4pOwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG4tPnBwcmV2KSBf
X3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5wcHJldikp
ICgoKHZvaWQgKikgMHgxMjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwpKSkgfTsgX193cml0ZV9v
bmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihuLT5wcHJldikpOyBfX3UuX192
YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyA0OTYgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0Lmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGhsaXN0X3JlcGxhY2VfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpvbGQsCjE0
NDc0OiAgICAgIHN0cnVjdCBobGlzdF9ub2RlICpuZXcpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0
IGhsaXN0X25vZGUgKm5leHQgPSBvbGQtPm5leHQ7CjE0NDc0OiAKMTQ0NzQ6ICBuZXctPm5leHQg
PSBuZXh0OwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG5ldy0+cHByZXYpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG5ldy0+cHByZXYpKSAob2xkLT5w
cHJldikgfTsgX193cml0ZV9vbmNlX3NpemUoJihuZXctPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9m
KG5ldy0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICBkbyB7IHVpbnRwdHJfdCBfcl9h
X3BfX3YgPSAodWludHB0cl90KShuZXcpOyA7IGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChuZXcp
ICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlw
ZW9mKCgqKHN0cnVjdCBobGlzdF9ub2RlICoqKW5ldy0+cHByZXYpKSBfX3ZhbDsgY2hhciBfX2Nb
MV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigoKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKilu
ZXctPnBwcmV2KSkpICgodHlwZW9mKCooc3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldikp
KF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCooc3RydWN0IGhsaXN0X25vZGUg
KiopbmV3LT5wcHJldikpLCBfX3UuX19jLCBzaXplb2YoKCooc3RydWN0IGhsaXN0X25vZGUgKiop
bmV3LT5wcHJldikpKTsgX191Ll9fdmFsOyB9KTsgZWxzZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQg
X19jb21waWxldGltZV9hc3NlcnRfNTAzKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygi
TmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBp
ZiAoISgoc2l6ZW9mKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSA9PSBzaXpl
b2YoY2hhcikgfHwgc2l6ZW9mKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSA9
PSBzaXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJiooc3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5w
cHJldikgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKilu
ZXctPnBwcmV2KSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfNTAzKCk7
IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1
bmlvbiB7IHR5cGVvZigqJiooc3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldikgX192YWw7
IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiYqKHN0cnVjdCBobGlz
dF9ub2RlICoqKW5ldy0+cHByZXYpKSAoKHR5cGVvZigqKCh0eXBlb2YoKihzdHJ1Y3QgaGxpc3Rf
bm9kZSAqKiluZXctPnBwcmV2KSlfcl9hX3BfX3YpKSAqKSgodHlwZW9mKCooc3RydWN0IGhsaXN0
X25vZGUgKiopbmV3LT5wcHJldikpX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigq
Jiooc3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldiksIF9fdS5fX2MsIHNpemVvZigqJioo
c3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldikpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgaWYgKG5leHQpCjE0NDc0OiAgICh7IHVuaW9uIHsg
dHlwZW9mKG5ldy0+bmV4dC0+cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5f
X3ZhbCA9ICggdHlwZW9mKG5ldy0+bmV4dC0+cHByZXYpKSAoJm5ldy0+bmV4dCkgfTsgX193cml0
ZV9vbmNlX3NpemUoJihuZXctPm5leHQtPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG5ldy0+bmV4
dC0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZihvbGQt
PnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihv
bGQtPnBwcmV2KSkgKCgodm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpKSB9
OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG9sZC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2Yob2xkLT5w
cHJldikpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyA1MzUgIi4vaW5jbHVkZS9s
aW51eC9yY3VsaXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2FkZF9oZWFkX3JjdShzdHJ1Y3QgaGxp
c3Rfbm9kZSAqbiwKMTQ0NzQ6ICAgICAgc3RydWN0IGhsaXN0X2hlYWQgKmgpCjE0NDc0OiB7CjE0
NDc0OiAgc3RydWN0IGhsaXN0X25vZGUgKmZpcnN0ID0gaC0+Zmlyc3Q7CjE0NDc0OiAKMTQ0NzQ6
ICBuLT5uZXh0ID0gZmlyc3Q7CjE0NDc0OiAgKHsgdW5pb24geyB0eXBlb2Yobi0+cHByZXYpIF9f
dmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPnBwcmV2KSkg
KCZoLT5maXJzdCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNp
emVvZihuLT5wcHJldikpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogIGRvIHsgdWludHB0cl90IF9y
X2FfcF9fdiA9ICh1aW50cHRyX3QpKG4pOyA7IGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChuKSAm
JiAoX3JfYV9wX192KSA9PSAodWludHB0cl90KSgodm9pZCAqKTApKSAoeyB1bmlvbiB7IHR5cGVv
ZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCgoKigoc3RydWN0IGhsaXN0X25v
ZGUgKiopKCYoaCktPmZpcnN0KSkpKSkpICgodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAq
KikoJihoKS0+Zmlyc3QpKSkpKShfcl9hX3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCgo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCktPmZpcnN0KSkpKSksIF9fdS5fX2MsIHNpemVv
ZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkpKTsgX191Ll9fdmFs
OyB9KTsgZWxzZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfNTQy
KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBz
dG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComKCooKHN0cnVj
dCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVv
ZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3QpKSkpID09IHNpemVvZihz
aG9ydCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkp
KSkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgm
KGgpLT5maXJzdCkpKSkgPT0gc2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzU0
MigpOyB9IHdoaWxlICgwKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsg
KHsgdW5pb24geyB0eXBlb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCktPmZpcnN0
KSkpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJigq
KChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3QpKSkpKSAoKHR5cGVvZigqKCh0eXBl
b2YoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkpX3JfYV9wX192KSkg
KikoKHR5cGVvZigoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCktPmZpcnN0KSkpKSlfcl9h
X3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoq
KSgmKGgpLT5maXJzdCkpKSksIF9fdS5fX2MsIHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqKikoJihoKS0+Zmlyc3QpKSkpKTsgX191Ll9fdmFsOyB9KTsgfSB3aGlsZSAoMCk7IH0gd2hp
bGUgKDApOwoxNDQ3NDogIGlmIChmaXJzdCkKMTQ0NzQ6ICAgKHsgdW5pb24geyB0eXBlb2YoZmly
c3QtPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVv
ZihmaXJzdC0+cHByZXYpKSAoJm4tPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoZmlyc3Qt
PnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKGZpcnN0LT5wcHJldikpOyBfX3UuX192YWw7IH0pOwox
NDQ3NDogfQoxNDQ3NDogIyA1NjYgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGhsaXN0X2FkZF90YWlsX3JjdShzdHJ1Y3QgaGxpc3Rfbm9kZSAqbiwKMTQ0NzQ6ICAgICAg
ICAgICBzdHJ1Y3QgaGxpc3RfaGVhZCAqaCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3Rf
bm9kZSAqaSwgKmxhc3QgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZm9y
IChpID0gaC0+Zmlyc3Q7IGk7IGkgPSBpLT5uZXh0KQoxNDQ3NDogICBsYXN0ID0gaTsKMTQ0NzQ6
IAoxNDQ3NDogIGlmIChsYXN0KSB7CjE0NDc0OiAgIG4tPm5leHQgPSBsYXN0LT5uZXh0OwoxNDQ3
NDogICAoeyB1bmlvbiB7IHR5cGVvZihuLT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+cHByZXYpKSAoJmxhc3QtPm5leHQpIH07IF9fd3Jp
dGVfb25jZV9zaXplKCYobi0+cHByZXYpLCBfX3UuX19jLCBzaXplb2Yobi0+cHByZXYpKTsgX191
Ll9fdmFsOyB9KTsKMTQ0NzQ6ICAgZG8geyB1aW50cHRyX3QgX3JfYV9wX192ID0gKHVpbnRwdHJf
dCkobik7IDsgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG4pICYmIChfcl9hX3BfX3YpID09ICh1
aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGhsaXN0
X25vZGUgKiopKCYobGFzdCktPm5leHQpKSkpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0g
eyAuX192YWwgPSAoIHR5cGVvZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5u
ZXh0KSkpKSkpICgodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4
dCkpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCgqKChzdHJ1Y3QgaGxp
c3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSkpLCBfX3UuX19jLCBzaXplb2YoKCgqKChzdHJ1
Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSkpKTsgX191Ll9fdmFsOyB9KTsgZWxz
ZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfNTc4KHZvaWQpIF9f
YXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9yZXMvbG9h
ZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9u
b2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComKCoo
KHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSA9PSBzaXplb2Yoc2hvcnQp
IHx8IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSkg
PT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxh
c3QpLT5uZXh0KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfNTc4
KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAo
eyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4
dCkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiYo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYobGFzdCktPm5leHQpKSkpKSAoKHR5cGVvZigqKCh0
eXBlb2YoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSlfcl9hX3Bf
X3YpKSAqKSgodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkp
KSkpX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJigqKChzdHJ1Y3QgaGxpc3Rf
bm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSksIF9fdS5fX2MsIHNpemVvZigqJigqKChzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6ICAgaGxpc3RfYWRkX2hl
YWRfcmN1KG4sIGgpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjAyICIuL2luY2x1ZGUv
bGludXgvcmN1bGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9hZGRfYmVmb3JlX3JjdShzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqbiwKMTQ0NzQ6ICAgICAgc3RydWN0IGhsaXN0X25vZGUgKm5leHQpCjE0NDc0
OiB7CjE0NDc0OiAgKHsgdW5pb24geyB0eXBlb2Yobi0+cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sx
XTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPnBwcmV2KSkgKG5leHQtPnBwcmV2KSB9
OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG4tPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG4tPnBwcmV2
KSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiAgbi0+bmV4dCA9IG5leHQ7CjE0NDc0OiAgZG8geyB1
aW50cHRyX3QgX3JfYV9wX192ID0gKHVpbnRwdHJfdCkobik7IDsgaWYgKF9fYnVpbHRpbl9jb25z
dGFudF9wKG4pICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVu
aW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKChuKS0+cHByZXYpKSkpKSBf
X3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigoKCooKHN0cnVj
dCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSkpICgodHlwZW9mKCgqKChzdHJ1Y3QgaGxp
c3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9z
aXplKCYoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpLCBfX3UuX19j
LCBzaXplb2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpKTsgX191
Ll9fdmFsOyB9KTsgZWxzZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3Nl
cnRfNjA3KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBz
aXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComKCoo
KHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSA9PSBzaXplb2YoY2hhcikgfHwg
c2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSA9PSBzaXpl
b2Yoc2hvcnQpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJl
dikpKSkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoq
KSgobiktPnBwcmV2KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRf
NjA3KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OyAoeyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJl
dikpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiYo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKChuKS0+cHByZXYpKSkpKSAoKHR5cGVvZigqKCh0eXBl
b2YoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSlfcl9hX3BfX3YpKSAq
KSgodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpX3JfYV9w
X192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiko
KG4pLT5wcHJldikpKSksIF9fdS5fX2MsIHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAq
KikoKG4pLT5wcHJldikpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiAgKHsgdW5pb24geyB0eXBlb2YobmV4dC0+cHByZXYpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG5leHQtPnBwcmV2KSkgKCZuLT5uZXh0
KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG5leHQtPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG5l
eHQtPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDYyOSAiLi9pbmNs
dWRlL2xpbnV4L3JjdWxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfYWRkX2JlaGluZF9yY3Uoc3Ry
dWN0IGhsaXN0X25vZGUgKm4sCjE0NDc0OiAgICAgIHN0cnVjdCBobGlzdF9ub2RlICpwcmV2KQox
NDQ3NDogewoxNDQ3NDogIG4tPm5leHQgPSBwcmV2LT5uZXh0OwoxNDQ3NDogICh7IHVuaW9uIHsg
dHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAo
IHR5cGVvZihuLT5wcHJldikpICgmcHJldi0+bmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihu
LT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihuLT5wcHJldikpOyBfX3UuX192YWw7IH0pOwoxNDQ3
NDogIGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1aW50cHRyX3QpKG4pOyA7IGlmIChfX2J1
aWx0aW5fY29uc3RhbnRfcChuKSAmJiAoX3JfYV9wX192KSA9PSAodWludHB0cl90KSgodm9pZCAq
KTApKSAoeyB1bmlvbiB7IHR5cGVvZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKHByZXYp
LT5uZXh0KSkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBl
b2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkpKSAoKHR5cGVv
ZigoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpKShfcl9hX3BfX3Yp
KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJl
diktPm5leHQpKSkpKSwgX191Ll9fYywgc2l6ZW9mKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiop
KCYocHJldiktPm5leHQpKSkpKSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2UgZG8geyBkbyB7IGV4dGVy
biB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzYzNCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vy
cm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHku
IikpKTsgaWYgKCEoKHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+
bmV4dCkpKSkgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqKikoJihwcmV2KS0+bmV4dCkpKSkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYoKigo
c3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVvZihpbnQpIHx8
IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkgPT0g
c2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzYzNCgpOyB9IHdoaWxlICgwKTsg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKHsgdW5pb24geyB0eXBlb2Yo
KiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKComKCooKHN0cnVjdCBobGlzdF9u
b2RlICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgKCh0eXBlb2YoKigodHlwZW9mKCgqKChzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkpX3JfYV9wX192KSkgKikoKHR5cGVvZigo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpKV9yX2FfcF9fdikpIH07
IF9fd3JpdGVfb25jZV9zaXplKCYoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldikt
Pm5leHQpKSkpLCBfX3UuX19jLCBzaXplb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYo
cHJldiktPm5leHQpKSkpKTsgX191Ll9fdmFsOyB9KTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDAp
OwoxNDQ3NDogIGlmIChuLT5uZXh0KQoxNDQ3NDogICAoeyB1bmlvbiB7IHR5cGVvZihuLT5uZXh0
LT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yo
bi0+bmV4dC0+cHByZXYpKSAoJm4tPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+bmV4
dC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2Yobi0+bmV4dC0+cHByZXYpKTsgX191Ll9fdmFsOyB9
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIiAyCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0X2JsLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvbGludXgvbGlzdF9ibC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvYml0X3NwaW5sb2NrLmgiIDEKMTQ0NzQ6
ICMgMTYgIi4vaW5jbHVkZS9saW51eC9iaXRfc3BpbmxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0X3Nw
aW5fbG9jayhpbnQgYml0bnVtLCB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IAoxNDQ3NDogIHdo
aWxlIChfX2J1aWx0aW5fZXhwZWN0KCEhKHRlc3RfYW5kX3NldF9iaXRfbG9jayhiaXRudW0sIGFk
ZHIpKSwgMCkpIHsKMTQ0NzQ6ICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnki
KTsKMTQ0NzQ6ICAgZG8gewoxNDQ3NDogICAgY3B1X3JlbGF4KCk7CjE0NDc0OiAgIH0gd2hpbGUg
KHRlc3RfYml0KGJpdG51bSwgYWRkcikpOwoxNDQ3NDogICBfX2FzbV9fIF9fdm9sYXRpbGVfXygi
IjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogICh2b2lkKTA7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRfc3Bpbl90
cnlsb2NrKGludCBiaXRudW0sIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IAoxNDQ3NDogIGlm
IChfX2J1aWx0aW5fZXhwZWN0KCEhKHRlc3RfYW5kX3NldF9iaXRfbG9jayhiaXRudW0sIGFkZHIp
KSwgMCkpIHsKMTQ0NzQ6ICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsK
MTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0OiAgKHZvaWQpMDsKMTQ0
NzQ6ICByZXR1cm4gMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBiaXRfc3Bpbl91bmxvY2soaW50IGJpdG51bSwgdW5zaWduZWQgbG9uZyAqYWRk
cikKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGNsZWFy
X2JpdF91bmxvY2soYml0bnVtLCBhZGRyKTsKMTQ0NzQ6IAoxNDQ3NDogIF9fYXNtX18gX192b2xh
dGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgKHZvaWQpMDsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19i
aXRfc3Bpbl91bmxvY2soaW50IGJpdG51bSwgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fY2xlYXJfYml0X3VubG9j
ayhiaXRudW0sIGFkZHIpOwoxNDQ3NDogCjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6
IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICAodm9pZCkwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgYml0X3NwaW5faXNfbG9ja2VkKGludCBiaXRudW0s
IHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdGVz
dF9iaXQoYml0bnVtLCBhZGRyKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiB9CjE0NDc0OiAjIDcgIi4vaW5jbHVkZS9saW51eC9saXN0X2JsLmgiIDIKMTQ0
NzQ6ICMgMzQgIi4vaW5jbHVkZS9saW51eC9saXN0X2JsLmgiCjE0NDc0OiBzdHJ1Y3QgaGxpc3Rf
YmxfaGVhZCB7CjE0NDc0OiAgc3RydWN0IGhsaXN0X2JsX25vZGUgKmZpcnN0OwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGhsaXN0X2JsX25vZGUgewoxNDQ3NDogIHN0cnVjdCBobGlz
dF9ibF9ub2RlICpuZXh0LCAqKnBwcmV2OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgSU5JVF9ITElTVF9CTF9OT0RFKHN0cnVjdCBobGlzdF9ibF9ub2RlICpo
KQoxNDQ3NDogewoxNDQ3NDogIGgtPm5leHQgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6ICBoLT5wcHJl
diA9ICgodm9pZCAqKTApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBobGlzdF9ibF91bmhhc2hlZChjb25zdCBzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqaCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gIWgtPnBwcmV2OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBz
dHJ1Y3QgaGxpc3RfYmxfbm9kZSAqaGxpc3RfYmxfZmlyc3Qoc3RydWN0IGhsaXN0X2JsX2hlYWQg
KmgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqKQoxNDQ3
NDogICAoKHVuc2lnbmVkIGxvbmcpaC0+Zmlyc3QgJiB+MVVMKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBobGlzdF9ibF9zZXRfZmlyc3Qoc3RydWN0IGhsaXN0X2JsX2hlYWQgKmgsCjE0
NDc0OiAgICAgIHN0cnVjdCBobGlzdF9ibF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsg
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoKHVuc2lnbmVkIGxvbmcpbiAmIDFVTCksIDApKSBkbyB7
IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxu
IiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFi
IiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAi
ICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19l
bnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQu
b3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L2xpc3Rf
YmwuaCIpLCAiaSIgKDY2KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkp
KTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9w
c2VjdGlvblxuXHQiIDogOiAiaSIgKDE5KSk7IH0pOyBhc20gdm9sYXRpbGUoIiIpOyBfX2J1aWx0
aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsK
MTQ0NzQ6ICBkbyB7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCgodW5zaWduZWQgbG9uZyloLT5m
aXJzdCAmIDFVTCkgIT0gMVVMKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUo
IjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUs
XCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1
Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6Zmls
ZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIg
Ilx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIg
OiA6ICJpIiAoImluY2x1ZGUvbGludXgvbGlzdF9ibC5oIiksICJpIiAoNjcpLCAiaSIgKDApLCAi
aSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBhc20g
dm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxlXG5c
dCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMjApKTsg
fSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgw
KTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICA7CjE0NDc0OiAgaC0+Zmlyc3QgPSAoc3RydWN0IGhsaXN0X2JsX25vZGUgKikoKHVuc2lnbmVk
IGxvbmcpbiB8IDFVTCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaGxpc3RfYmxfZW1w
dHkoY29uc3Qgc3RydWN0IGhsaXN0X2JsX2hlYWQgKmgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
ICEoKHVuc2lnbmVkIGxvbmcpKHsgdW5pb24geyB0eXBlb2YoaC0+Zmlyc3QpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoaC0+Zmlyc3QpLCBfX3Uu
X19jLCBzaXplb2YoaC0+Zmlyc3QpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJiho
LT5maXJzdCksIF9fdS5fX2MsIHNpemVvZihoLT5maXJzdCkpOyBkbyB7IH0gd2hpbGUgKDApOyBf
X3UuX192YWw7IH0pICYgfjFVTCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3Rf
YmxfYWRkX2hlYWQoc3RydWN0IGhsaXN0X2JsX25vZGUgKm4sCjE0NDc0OiAgICAgIHN0cnVjdCBo
bGlzdF9ibF9oZWFkICpoKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBobGlzdF9ibF9ub2RlICpm
aXJzdCA9IGhsaXN0X2JsX2ZpcnN0KGgpOwoxNDQ3NDogCjE0NDc0OiAgbi0+bmV4dCA9IGZpcnN0
OwoxNDQ3NDogIGlmIChmaXJzdCkKMTQ0NzQ6ICAgZmlyc3QtPnBwcmV2ID0gJm4tPm5leHQ7CjE0
NDc0OiAgbi0+cHByZXYgPSAmaC0+Zmlyc3Q7CjE0NDc0OiAgaGxpc3RfYmxfc2V0X2ZpcnN0KGgs
IG4pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2JsX2FkZF9iZWZvcmUoc3Ry
dWN0IGhsaXN0X2JsX25vZGUgKm4sCjE0NDc0OiAgICAgICAgICAgIHN0cnVjdCBobGlzdF9ibF9u
b2RlICpuZXh0KQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBobGlzdF9ibF9ub2RlICoqcHByZXYg
PSBuZXh0LT5wcHJldjsKMTQ0NzQ6IAoxNDQ3NDogIG4tPnBwcmV2ID0gcHByZXY7CjE0NDc0OiAg
bi0+bmV4dCA9IG5leHQ7CjE0NDc0OiAgbmV4dC0+cHByZXYgPSAmbi0+bmV4dDsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgKHsgdW5pb24geyB0eXBlb2YoKnBwcmV2KSBfX3ZhbDsgY2hhciBfX2Nb
MV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqcHByZXYpKSAoKHN0cnVjdCBobGlzdF9i
bF9ub2RlICopICgodWludHB0cl90KW4gfCAoKHVpbnRwdHJfdCkqcHByZXYgJiAxVUwpKSkgfTsg
X193cml0ZV9vbmNlX3NpemUoJigqcHByZXYpLCBfX3UuX19jLCBzaXplb2YoKnBwcmV2KSk7IF9f
dS5fX3ZhbDsgfSkKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaGxpc3RfYmxfYWRkX2JlaGluZChzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbiwKMTQ0NzQ6ICAg
ICAgICAgICAgc3RydWN0IGhsaXN0X2JsX25vZGUgKnByZXYpCjE0NDc0OiB7CjE0NDc0OiAgbi0+
bmV4dCA9IHByZXYtPm5leHQ7CjE0NDc0OiAgbi0+cHByZXYgPSAmcHJldi0+bmV4dDsKMTQ0NzQ6
ICBwcmV2LT5uZXh0ID0gbjsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChuLT5uZXh0KQoxNDQ3NDogICBu
LT5uZXh0LT5wcHJldiA9ICZuLT5uZXh0OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9f
aGxpc3RfYmxfZGVsKHN0cnVjdCBobGlzdF9ibF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIHN0
cnVjdCBobGlzdF9ibF9ub2RlICpuZXh0ID0gbi0+bmV4dDsKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3Rf
Ymxfbm9kZSAqKnBwcmV2ID0gbi0+cHByZXY7CjE0NDc0OiAKMTQ0NzQ6ICBkbyB7IGlmIChfX2J1
aWx0aW5fZXhwZWN0KCEhKCh1bnNpZ25lZCBsb25nKW4gJiAxVUwpLCAwKSkgZG8geyBkbyB7IGFz
bSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNo
c2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJi
IiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIi
ICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6Omxp
bmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYisl
YzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9saXN0X2JsLmgiKSwg
ImkiICgxMjApLCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdo
aWxlICgwKTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5k
aXNjYXJkLnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9u
XG5cdCIgOiA6ICJpIiAoMjEpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJl
YWNoYWJsZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZigqcHByZXYpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCpwcHJldikpICgoc3RydWN0IGhsaXN0
X2JsX25vZGUgKikgKCh1bnNpZ25lZCBsb25nKW5leHQgfCAoKHVuc2lnbmVkIGxvbmcpKnBwcmV2
ICYgMVVMKSkpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKnBwcmV2KSwgX191Ll9fYywgc2l6ZW9m
KCpwcHJldikpOyBfX3UuX192YWw7IH0pCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogIGlmIChuZXh0
KQoxNDQ3NDogICBuZXh0LT5wcHJldiA9IHBwcmV2OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGhsaXN0X2JsX2RlbChzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBfX2hsaXN0X2JsX2RlbChuKTsKMTQ0NzQ6ICBuLT5uZXh0ID0gKCh2b2lkICopIDB4MTAwICsg
KDB4ZGVhZDAwMDAwMDAwMDAwMFVMKSk7CjE0NDc0OiAgbi0+cHByZXYgPSAoKHZvaWQgKikgMHgx
MjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBobGlzdF9ibF9kZWxfaW5pdChzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbikKMTQ0NzQ6IHsKMTQ0
NzQ6ICBpZiAoIWhsaXN0X2JsX3VuaGFzaGVkKG4pKSB7CjE0NDc0OiAgIF9faGxpc3RfYmxfZGVs
KG4pOwoxNDQ3NDogICBJTklUX0hMSVNUX0JMX05PREUobik7CjE0NDc0OiAgfQoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2JsX2xvY2soc3RydWN0IGhsaXN0X2JsX2hlYWQgKmIp
CjE0NDc0OiB7CjE0NDc0OiAgYml0X3NwaW5fbG9jaygwLCAodW5zaWduZWQgbG9uZyAqKWIpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2JsX3VubG9jayhzdHJ1Y3QgaGxpc3Rf
YmxfaGVhZCAqYikKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2JpdF9zcGluX3VubG9jaygwLCAodW5zaWdu
ZWQgbG9uZyAqKWIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGhsaXN0X2JsX2lzX2xv
Y2tlZChzdHJ1Y3QgaGxpc3RfYmxfaGVhZCAqYikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYml0
X3NwaW5faXNfbG9ja2VkKDAsICh1bnNpZ25lZCBsb25nICopYik7CjE0NDc0OiB9CjE0NDc0OiAj
IDkgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0X2JsLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGhsaXN0X2JsX3NldF9maXJzdF9yY3Uoc3RydWN0IGhsaXN0X2JsX2hlYWQgKmgsCjE0
NDc0OiAgICAgIHN0cnVjdCBobGlzdF9ibF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsg
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoKHVuc2lnbmVkIGxvbmcpbiAmIDFVTCksIDApKSBkbyB7
IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxu
IiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFi
IiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAi
ICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19l
bnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQu
b3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3JjdWxp
c3RfYmwuaCIpLCAiaSIgKDE0KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRy
eSkpKTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNo
c2VjdGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIu
cG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDIyKSk7IH0pOyBhc20gdm9sYXRpbGUoIiIpOyBfX2J1
aWx0aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgw
KTsKMTQ0NzQ6ICBkbyB7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCgodW5zaWduZWQgbG9uZylo
LT5maXJzdCAmIDFVTCkgIT0gMVVMKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRp
bGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFi
bGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6
OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6
ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVj
MiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlv
biIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvcmN1bGlzdF9ibC5oIiksICJpIiAoMTUpLCAiaSIg
KDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAo
eyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hh
YmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAo
MjMpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdo
aWxlICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApCjE0NDc0OiAgICAgICAgICAgICAgICAg
ICAgICAgICA7CjE0NDc0OiAgZG8geyB1aW50cHRyX3QgX3JfYV9wX192ID0gKHVpbnRwdHJfdCko
KHN0cnVjdCBobGlzdF9ibF9ub2RlICopKCh1bnNpZ25lZCBsb25nKW4gfCAxVUwpKTsgOyBpZiAo
X19idWlsdGluX2NvbnN0YW50X3AoKHN0cnVjdCBobGlzdF9ibF9ub2RlICopKCh1bnNpZ25lZCBs
b25nKW4gfCAxVUwpKSAmJiAoX3JfYV9wX192KSA9PSAodWludHB0cl90KSgodm9pZCAqKTApKSAo
eyB1bmlvbiB7IHR5cGVvZigoaC0+Zmlyc3QpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0g
eyAuX192YWwgPSAoIHR5cGVvZigoaC0+Zmlyc3QpKSkgKCh0eXBlb2YoaC0+Zmlyc3QpKShfcl9h
X3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKChoLT5maXJzdCkpLCBfX3UuX19jLCBzaXpl
b2YoKGgtPmZpcnN0KSkpOyBfX3UuX192YWw7IH0pOyBlbHNlIGRvIHsgZG8geyBleHRlcm4gdm9p
ZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNyh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18o
Ik5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsg
aWYgKCEoKHNpemVvZigqJmgtPmZpcnN0KSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComaC0+
Zmlyc3QpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9mKComaC0+Zmlyc3QpID09IHNpemVvZihp
bnQpIHx8IHNpemVvZigqJmgtPmZpcnN0KSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGlt
ZV9hc3NlcnRfMTcoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoi
bWVtb3J5Iik7ICh7IHVuaW9uIHsgdHlwZW9mKComaC0+Zmlyc3QpIF9fdmFsOyBjaGFyIF9fY1sx
XTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKComaC0+Zmlyc3QpKSAoKHR5cGVvZigqKCh0
eXBlb2YoaC0+Zmlyc3QpKV9yX2FfcF9fdikpICopKCh0eXBlb2YoaC0+Zmlyc3QpKV9yX2FfcF9f
dikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKiZoLT5maXJzdCksIF9fdS5fX2MsIHNpemVvZigq
JmgtPmZpcnN0KSk7IF9fdS5fX3ZhbDsgfSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKQoxNDQ3
NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGhsaXN0X2JsX25vZGUg
KmhsaXN0X2JsX2ZpcnN0X3JjdShzdHJ1Y3QgaGxpc3RfYmxfaGVhZCAqaCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gKHN0cnVjdCBobGlzdF9ibF9ub2RlICopCjE0NDc0OiAgICgodW5zaWduZWQg
bG9uZykoeyB0eXBlb2YoKihoLT5maXJzdCkpICpfX19fX19fX3AxID0gKHR5cGVvZigqKGgtPmZp
cnN0KSkgKikoeyB1bmlvbiB7IHR5cGVvZigoaC0+Zmlyc3QpKSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKChoLT5maXJzdCkpLCBfX3UuX19jLCBz
aXplb2YoKGgtPmZpcnN0KSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChoLT5m
aXJzdCkpLCBfX3UuX19jLCBzaXplb2YoKGgtPmZpcnN0KSkpOyBkbyB7IH0gd2hpbGUgKDApOyBf
X3UuX192YWw7IH0pOyBkbyB7IH0gd2hpbGUgKDApOyA7ICgodHlwZW9mKCooaC0+Zmlyc3QpKSAq
KShfX19fX19fX3AxKSk7IH0pICYgfjFVTCk7CjE0NDc0OiB9CjE0NDc0OiAjIDQ2ICIuL2luY2x1
ZGUvbGludXgvcmN1bGlzdF9ibC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9ibF9kZWxfcmN1KHN0cnVj
dCBobGlzdF9ibF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIF9faGxpc3RfYmxfZGVsKG4pOwox
NDQ3NDogIG4tPnBwcmV2ID0gKCh2b2lkICopIDB4MTIyICsgKDB4ZGVhZDAwMDAwMDAwMDAwMFVM
KSk7CjE0NDc0OiB9CjE0NDc0OiAjIDcxICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdF9ibC5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBobGlzdF9ibF9hZGRfaGVhZF9yY3Uoc3RydWN0IGhsaXN0X2JsX25vZGUgKm4s
CjE0NDc0OiAgICAgIHN0cnVjdCBobGlzdF9ibF9oZWFkICpoKQoxNDQ3NDogewoxNDQ3NDogIHN0
cnVjdCBobGlzdF9ibF9ub2RlICpmaXJzdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZmlyc3Qg
PSBobGlzdF9ibF9maXJzdChoKTsKMTQ0NzQ6IAoxNDQ3NDogIG4tPm5leHQgPSBmaXJzdDsKMTQ0
NzQ6ICBpZiAoZmlyc3QpCjE0NDc0OiAgIGZpcnN0LT5wcHJldiA9ICZuLT5uZXh0OwoxNDQ3NDog
IG4tPnBwcmV2ID0gJmgtPmZpcnN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBobGlzdF9ibF9z
ZXRfZmlyc3RfcmN1KGgsIG4pOwoxNDQ3NDogfQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgv
ZGNhY2hlLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvbGludXgvbG9ja3JlZi5oIiAxCjE0NDc0OiAjIDI1ICIuL2luY2x1ZGUvbGludXgv
bG9ja3JlZi5oIgoxNDQ3NDogc3RydWN0IGxvY2tyZWYgewoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6
IAoxNDQ3NDogICBfX3U2NCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSkgbG9ja19jb3VudDsK
MTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgc3BpbmxvY2tfdCBsb2NrOwoxNDQ3
NDogICAgaW50IGNvdW50OwoxNDQ3NDogICB9OwoxNDQ3NDogIH07CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBsb2NrcmVmX2dldChzdHJ1Y3QgbG9ja3JlZiAqKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgbG9ja3JlZl9wdXRfcmV0dXJuKHN0cnVjdCBsb2NrcmVmICopOwoxNDQ3NDog
ZXh0ZXJuIGludCBsb2NrcmVmX2dldF9ub3RfemVybyhzdHJ1Y3QgbG9ja3JlZiAqKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgbG9ja3JlZl9wdXRfbm90X3plcm8oc3RydWN0IGxvY2tyZWYgKik7CjE0NDc0
OiBleHRlcm4gaW50IGxvY2tyZWZfZ2V0X29yX2xvY2soc3RydWN0IGxvY2tyZWYgKik7CjE0NDc0
OiBleHRlcm4gaW50IGxvY2tyZWZfcHV0X29yX2xvY2soc3RydWN0IGxvY2tyZWYgKik7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGxvY2tyZWZfbWFya19kZWFkKHN0cnVjdCBsb2NrcmVmICop
OwoxNDQ3NDogZXh0ZXJuIGludCBsb2NrcmVmX2dldF9ub3RfZGVhZChzdHJ1Y3QgbG9ja3JlZiAq
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIF9fbG9ja3JlZl9pc19kZWFkKGNvbnN0IHN0
cnVjdCBsb2NrcmVmICpsKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKGludClsLT5jb3VudCA8
IDApOwoxNDQ3NDogfQoxNDQ3NDogIyAxNCAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIiAyCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zdHJpbmdoYXNoLmgiIDEKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xp
bnV4L2hhc2guaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS90eXBlcy5oIiAx
CjE0NDc0OiAjIDcgIi4vaW5jbHVkZS9saW51eC9oYXNoLmgiIDIKMTQ0NzQ6ICMgNjAgIi4vaW5j
bHVkZS9saW51eC9oYXNoLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgX19oYXNoXzMyX2dlbmVyaWModTMyIHZhbCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdmFsICogMHg2MUM4ODY0NzsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIGhhc2hfMzJfZ2VuZXJpYyh1MzIg
dmFsLCB1bnNpZ25lZCBpbnQgYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBf
X2hhc2hfMzJfZ2VuZXJpYyh2YWwpID4+ICgzMiAtIGJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHUzMiBoYXNoXzY0X2dlbmVyaWModTY0IHZhbCwgdW5zaWduZWQgaW50IGJpdHMpCjE0
NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiB2YWwgKiAweDYxQzg4NjQ2ODBC
NTgzRUJ1bGwgPj4gKDY0IC0gYml0cyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIGhhc2hfcHRyKGNvbnN0IHZvaWQgKnB0ciwgdW5z
aWduZWQgaW50IGJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGhhc2hfNjRfZ2VuZXJpYygo
dW5zaWduZWQgbG9uZylwdHIsIGJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHUzMiBoYXNoMzJfcHRyKGNvbnN0IHZvaWQgKnB0cikKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIHZhbCA9ICh1bnNpZ25lZCBsb25nKXB0cjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dmFsIF49ICh2YWwgPj4gMzIpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuICh1MzIpdmFsOwoxNDQ3
NDogfQoxNDQ3NDogIyA4ICIuL2luY2x1ZGUvbGludXgvc3RyaW5naGFzaC5oIiAyCjE0NDc0OiAj
IDQyICIuL2luY2x1ZGUvbGludXgvc3RyaW5naGFzaC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZwox
NDQ3NDogcGFydGlhbF9uYW1lX2hhc2godW5zaWduZWQgbG9uZyBjLCB1bnNpZ25lZCBsb25nIHBy
ZXZoYXNoKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAocHJldmhhc2ggKyAoYyA8PCA0KSArIChj
ID4+IDQpKSAqIDExOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGVuZF9uYW1lX2hhc2godW5zaWduZWQg
bG9uZyBoYXNoKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBoYXNoXzY0X2dlbmVyaWMoaGFzaCwg
MzIpOwoxNDQ3NDogfQoxNDQ3NDogIyA2NiAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZ2hhc2guaCIK
MTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19wdXJlX18pKSBmdWxs
X25hbWVfaGFzaChjb25zdCB2b2lkICpzYWx0LCBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCk7
CjE0NDc0OiAjIDc3ICIuL2luY2x1ZGUvbGludXgvc3RyaW5naGFzaC5oIgoxNDQ3NDogZXh0ZXJu
IHU2NCBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpIGhhc2hsZW5fc3RyaW5nKGNvbnN0IHZvaWQg
KnNhbHQsIGNvbnN0IGNoYXIgKm5hbWUpOwoxNDQ3NDogIyAxNSAiLi9pbmNsdWRlL2xpbnV4L2Rj
YWNoZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBhdGg7CjE0NDc0OiBzdHJ1
Y3QgdmZzbW91bnQ7CjE0NDc0OiAjIDQ3ICIuL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCjE0NDc0
OiBzdHJ1Y3QgcXN0ciB7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDog
ICAgdTMyIGhhc2g7IHUzMiBsZW47CjE0NDc0OiAgIH07CjE0NDc0OiAgIHU2NCBoYXNoX2xlbjsK
MTQ0NzQ6ICB9OwoxNDQ3NDogIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm5hbWU7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IHN0cnVjdCBxc3RyIGVt
cHR5X25hbWU7CjE0NDc0OiBleHRlcm4gY29uc3Qgc3RydWN0IHFzdHIgc2xhc2hfbmFtZTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRyeV9zdGF0X3QgewoxNDQ3NDogIGxvbmcgbnJfZGVudHJ5
OwoxNDQ3NDogIGxvbmcgbnJfdW51c2VkOwoxNDQ3NDogIGxvbmcgYWdlX2xpbWl0OwoxNDQ3NDog
IGxvbmcgd2FudF9wYWdlczsKMTQ0NzQ6ICBsb25nIG5yX25lZ2F0aXZlOwoxNDQ3NDogIGxvbmcg
ZHVtbXk7CjE0NDc0OiB9OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnlfc3RhdF90IGRlbnRy
eV9zdGF0OwoxNDQ3NDogIyA4OSAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgoxNDQ3NDogc3Ry
dWN0IGRlbnRyeSB7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZF9mbGFnczsKMTQ0NzQ6
ICBzZXFjb3VudF90IGRfc2VxOwoxNDQ3NDogIHN0cnVjdCBobGlzdF9ibF9ub2RlIGRfaGFzaDsK
MTQ0NzQ6ICBzdHJ1Y3QgZGVudHJ5ICpkX3BhcmVudDsKMTQ0NzQ6ICBzdHJ1Y3QgcXN0ciBkX25h
bWU7CjE0NDc0OiAgc3RydWN0IGlub2RlICpkX2lub2RlOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWdu
ZWQgY2hhciBkX2luYW1lWzMyXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxvY2ty
ZWYgZF9sb2NrcmVmOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyAqZF9v
cDsKMTQ0NzQ6ICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmRfc2I7CjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBkX3RpbWU7CjE0NDc0OiAgdm9pZCAqZF9mc2RhdGE7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7
CjE0NDc0OiAgIHN0cnVjdCBsaXN0X2hlYWQgZF9scnU7CjE0NDc0OiAgIHdhaXRfcXVldWVfaGVh
ZF90ICpkX3dhaXQ7CjE0NDc0OiAgfTsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGRfY2hpbGQ7
CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBkX3N1YmRpcnM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgaGxpc3Rfbm9kZSBkX2FsaWFzOwox
NDQ3NDogICBzdHJ1Y3QgaGxpc3RfYmxfbm9kZSBkX2luX2xvb2t1cF9oYXNoOwoxNDQ3NDogICAg
c3RydWN0IGNhbGxiYWNrX2hlYWQgZF9yY3U7CjE0NDc0OiAgfSBkX3U7CjE0NDc0OiB9IF9fYXR0
cmlidXRlX18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkZW50cnlfZF9sb2Nr
X2NsYXNzCjE0NDc0OiB7CjE0NDc0OiAgREVOVFJZX0RfTE9DS19OT1JNQUwsCjE0NDc0OiAgREVO
VFJZX0RfTE9DS19ORVNURUQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZW50cnlf
b3BlcmF0aW9ucyB7CjE0NDc0OiAgaW50ICgqZF9yZXZhbGlkYXRlKShzdHJ1Y3QgZGVudHJ5ICos
IHVuc2lnbmVkIGludCk7CjE0NDc0OiAgaW50ICgqZF93ZWFrX3JldmFsaWRhdGUpKHN0cnVjdCBk
ZW50cnkgKiwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6ICBpbnQgKCpkX2hhc2gpKGNvbnN0IHN0cnVj
dCBkZW50cnkgKiwgc3RydWN0IHFzdHIgKik7CjE0NDc0OiAgaW50ICgqZF9jb21wYXJlKShjb25z
dCBzdHJ1Y3QgZGVudHJ5ICosCjE0NDc0OiAgICB1bnNpZ25lZCBpbnQsIGNvbnN0IGNoYXIgKiwg
Y29uc3Qgc3RydWN0IHFzdHIgKik7CjE0NDc0OiAgaW50ICgqZF9kZWxldGUpKGNvbnN0IHN0cnVj
dCBkZW50cnkgKik7CjE0NDc0OiAgaW50ICgqZF9pbml0KShzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3
NDogIHZvaWQgKCpkX3JlbGVhc2UpKHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAgdm9pZCAoKmRf
cHJ1bmUpKHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAgdm9pZCAoKmRfaXB1dCkoc3RydWN0IGRl
bnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiAgY2hhciAqKCpkX2RuYW1lKShzdHJ1Y3Qg
ZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKMTQ0NzQ6ICBzdHJ1Y3QgdmZzbW91bnQgKigqZF9hdXRv
bW91bnQpKHN0cnVjdCBwYXRoICopOwoxNDQ3NDogIGludCAoKmRfbWFuYWdlKShjb25zdCBzdHJ1
Y3QgcGF0aCAqLCBib29sKTsKMTQ0NzQ6ICBzdHJ1Y3QgZGVudHJ5ICooKmRfcmVhbCkoc3RydWN0
IGRlbnRyeSAqLCBjb25zdCBzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18o
KF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpKSk7CjE0NDc0OiAjIDIyMSAiLi9pbmNsdWRlL2xpbnV4
L2RjYWNoZS5oIgoxNDQ3NDogZXh0ZXJuIHNlcWxvY2tfdCByZW5hbWVfbG9jazsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZF9pbnN0YW50aWF0ZShz
dHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRfaW5z
dGFudGlhdGVfbmV3KHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICopOwoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCBkZW50cnkgKiBkX2luc3RhbnRpYXRlX3VuaXF1ZShzdHJ1Y3QgZGVudHJ5ICos
IHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICogZF9pbnN0YW50
aWF0ZV9hbm9uKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICopOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgX19kX2Ryb3Aoc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IGRfZHJvcChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZF9kZWxl
dGUoc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRfc2V0X2Rfb3Aoc3RydWN0
IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgKm9wKTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGRlbnRyeSAqIGRfYWxsb2Moc3RydWN0
IGRlbnRyeSAqLCBjb25zdCBzdHJ1Y3QgcXN0ciAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVu
dHJ5ICogZF9hbGxvY19hbm9uKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKMTQ0NzQ6IGV4dGVybiBz
dHJ1Y3QgZGVudHJ5ICogZF9hbGxvY19wYXJhbGxlbChzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IHN0
cnVjdCBxc3RyICosCjE0NDc0OiAgICAgIHdhaXRfcXVldWVfaGVhZF90ICopOwoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCBkZW50cnkgKiBkX3NwbGljZV9hbGlhcyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0
IGRlbnRyeSAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICogZF9hZGRfY2koc3RydWN0
IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IHFzdHIgKik7CjE0NDc0OiBleHRlcm4g
c3RydWN0IGRlbnRyeSAqIGRfZXhhY3RfYWxpYXMoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5v
ZGUgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGRlbnRyeSAqZF9maW5kX2FueV9hbGlhcyhzdHJ1
Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICogZF9vYnRhaW5f
YWxpYXMoc3RydWN0IGlub2RlICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX29i
dGFpbl9yb290KHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNocmlua19kY2Fj
aGVfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc2hyaW5rX2Rj
YWNoZV9wYXJlbnQoc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNocmlua19k
Y2FjaGVfZm9yX3Vtb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CjE0NDc0OiBleHRlcm4gdm9p
ZCBkX2ludmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gc3RydWN0IGRlbnRyeSAqIGRfbWFrZV9yb290KHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBkX2dlbm9jaWRlKHN0cnVjdCBkZW50cnkgKik7
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGRfdG1wZmlsZShzdHJ1Y3QgZGVudHJ5ICosIHN0
cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKmRfZmlu
ZF9hbGlhcyhzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBkX3BydW5lX2FsaWFz
ZXMoc3RydWN0IGlub2RlICopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcGF0
aF9oYXNfc3VibW91bnRzKGNvbnN0IHN0cnVjdCBwYXRoICopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBkX3JlaGFzaChzdHJ1Y3QgZGVudHJ5ICop
OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBkX2FkZChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVj
dCBpbm9kZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBkX21vdmUoc3Ry
dWN0IGRlbnRyeSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZF9leGNo
YW5nZShzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiBleHRlcm4gc3Ry
dWN0IGRlbnRyeSAqZF9hbmNlc3RvcihzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBkZW50cnkgKik7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKmRfbG9va3VwKGNv
bnN0IHN0cnVjdCBkZW50cnkgKiwgY29uc3Qgc3RydWN0IHFzdHIgKik7CjE0NDc0OiBleHRlcm4g
c3RydWN0IGRlbnRyeSAqZF9oYXNoX2FuZF9sb29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qg
cXN0ciAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICpfX2RfbG9va3VwKGNvbnN0IHN0
cnVjdCBkZW50cnkgKiwgY29uc3Qgc3RydWN0IHFzdHIgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0
IGRlbnRyeSAqX19kX2xvb2t1cF9yY3UoY29uc3Qgc3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3
NDogICAgIGNvbnN0IHN0cnVjdCBxc3RyICpuYW1lLCB1bnNpZ25lZCAqc2VxKTsKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdW5zaWduZWQgZF9jb3VudChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGRlbnRyeS0+ZF9sb2NrcmVmLmNvdW50OwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygo
X19mb3JtYXRfXyhwcmludGYsIDQsIDUpKSkKMTQ0NzQ6IGNoYXIgKmR5bmFtaWNfZG5hbWUoc3Ry
dWN0IGRlbnRyeSAqLCBjaGFyICosIGludCwgY29uc3QgY2hhciAqLCAuLi4pOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gY2hhciAqX19kX3BhdGgoY29uc3Qgc3RydWN0IHBhdGggKiwgY29uc3Qgc3Ry
dWN0IHBhdGggKiwgY2hhciAqLCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGNoYXIgKmRfYWJzb2x1dGVf
cGF0aChjb25zdCBzdHJ1Y3QgcGF0aCAqLCBjaGFyICosIGludCk7CjE0NDc0OiBleHRlcm4gY2hh
ciAqZF9wYXRoKGNvbnN0IHN0cnVjdCBwYXRoICosIGNoYXIgKiwgaW50KTsKMTQ0NzQ6IGV4dGVy
biBjaGFyICpkZW50cnlfcGF0aF9yYXcoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIGludCk7CjE0
NDc0OiBleHRlcm4gY2hhciAqZGVudHJ5X3BhdGgoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIGlu
dCk7CjE0NDc0OiAjIDMxMSAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGRlbnRyeSAqZGdldF9kbG9jayhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKGRlbnRyeSkKMTQ0NzQ6ICAgZGVudHJ5LT5kX2xvY2tyZWYuY291bnQrKzsKMTQ0NzQ6
ICByZXR1cm4gZGVudHJ5OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGVudHJ5ICpk
Z2V0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoZGVudHJ5KQox
NDQ3NDogICBsb2NrcmVmX2dldCgmZGVudHJ5LT5kX2xvY2tyZWYpOwoxNDQ3NDogIHJldHVybiBk
ZW50cnk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICpkZ2V0
X3BhcmVudChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwoxNDQ3NDogIyAzMzQgIi4vaW5jbHVkZS9s
aW51eC9kY2FjaGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkX3VuaGFzaGVkKGNvbnN0IHN0cnVjdCBkZW50cnkg
KmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gaGxpc3RfYmxfdW5oYXNoZWQoJmRlbnRy
eS0+ZF9oYXNoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGRfdW5saW5rZWQoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkX3VuaGFzaGVk
KGRlbnRyeSkgJiYgISgoZGVudHJ5KSA9PSAoZGVudHJ5KS0+ZF9wYXJlbnQpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgY2FudF9tb3VudChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChkZW50cnktPmRfZmxhZ3MgJiAweDAwMDAwMTAwKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkb250X21vdW50KHN0cnVjdCBkZW50cnkgKmRl
bnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzcGluX2xvY2soJmRlbnRyeS0+ZF9sb2NrcmVmLmxvY2sp
OwoxNDQ3NDogIGRlbnRyeS0+ZF9mbGFncyB8PSAweDAwMDAwMTAwOwoxNDQ3NDogIHNwaW5fdW5s
b2NrKCZkZW50cnktPmRfbG9ja3JlZi5sb2NrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIHZvaWQgX19kX2xvb2t1cF9kb25lKHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBkX2luX2xvb2t1cChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIGRlbnRyeS0+ZF9mbGFncyAmIDB4MTAwMDAwMDA7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgZF9sb29rdXBfZG9uZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoZF9pbl9sb29rdXAoZGVudHJ5KSks
IDApKSB7CjE0NDc0OiAgIHNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2tyZWYubG9jayk7CjE0NDc0
OiAgIF9fZF9sb29rdXBfZG9uZShkZW50cnkpOwoxNDQ3NDogICBzcGluX3VubG9jaygmZGVudHJ5
LT5kX2xvY2tyZWYubG9jayk7CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBkcHV0KHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZF9tYW5h
Z2VkKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
ZGVudHJ5LT5kX2ZsYWdzICYgKDB4MDAwMTAwMDB8MHgwMDAyMDAwMHwweDAwMDQwMDAwKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX21vdW50cG9pbnQoY29uc3Qgc3RydWN0IGRlbnRy
eSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkZW50cnktPmRfZmxhZ3MgJiAweDAw
MDEwMDAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1
bnNpZ25lZCBfX2RfZW50cnlfdHlwZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGRlbnRyeS0+ZF9mbGFncyAmIDB4MDA3MDAwMDA7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgZF9pc19taXNzKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRy
eSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19kX2VudHJ5X3R5cGUoZGVudHJ5KSA9PSAweDAw
MDAwMDAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRfaXNfd2hpdGVvdXQoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2RfZW50cnlf
dHlwZShkZW50cnkpID09IDB4MDAxMDAwMDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
ZF9jYW5fbG9va3VwKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gX19kX2VudHJ5X3R5cGUoZGVudHJ5KSA9PSAweDAwMjAwMDAwOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIGRfaXNfYXV0b2Rpcihjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fZF9lbnRyeV90eXBlKGRlbnRyeSkgPT0gMHgw
MDMwMDAwMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX2Rpcihjb25zdCBzdHJ1
Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRfY2FuX2xvb2t1cChk
ZW50cnkpIHx8IGRfaXNfYXV0b2RpcihkZW50cnkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIGRfaXNfc3ltbGluayhjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIF9fZF9lbnRyeV90eXBlKGRlbnRyeSkgPT0gMHgwMDYwMDAwMDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX3JlZyhjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fZF9lbnRyeV90eXBlKGRlbnRyeSkgPT0gMHgw
MDQwMDAwMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX3NwZWNpYWwoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2RfZW50cnlf
dHlwZShkZW50cnkpID09IDB4MDA1MDAwMDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
ZF9pc19maWxlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gZF9pc19yZWcoZGVudHJ5KSB8fCBkX2lzX3NwZWNpYWwoZGVudHJ5KTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX25lZ2F0aXZlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRl
bnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBkX2lzX21pc3MoZGVudHJ5KTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2ZsYWdzX25lZ2F0aXZlKHVuc2lnbmVkIGZs
YWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoZmxhZ3MgJiAweDAwNzAwMDAwKSA9PSAweDAw
MDAwMDAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRfaXNfcG9zaXRpdmUoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhZF9pc19uZWdh
dGl2ZShkZW50cnkpOwoxNDQ3NDogfQoxNDQ3NDogIyA0NjggIi4vaW5jbHVkZS9saW51eC9kY2Fj
aGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgZF9yZWFsbHlfaXNfbmVnYXRpdmUoY29uc3Qgc3RydWN0IGRlbnRy
eSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkZW50cnktPmRfaW5vZGUgPT0gKCh2
b2lkICopMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDQ4NiAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBkX3JlYWxseV9pc19wb3NpdGl2ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRlbnRyeS0+ZF9pbm9kZSAhPSAoKHZvaWQg
KikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHNpbXBsZV9wb3NpdGl2ZShjb25zdCBz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRfcmVhbGx5X2lz
X3Bvc2l0aXZlKGRlbnRyeSkgJiYgIWRfdW5oYXNoZWQoZGVudHJ5KTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZF9zZXRfZmFsbHRocnUoc3RydWN0IGRlbnRyeSAqZGVudHJ5
KTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX2ZhbGx0aHJ1KGNvbnN0IHN0cnVjdCBkZW50cnkg
KmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZGVudHJ5LT5kX2ZsYWdzICYgMHgwMTAw
MDAwMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHN5c2N0bF92
ZnNfY2FjaGVfcHJlc3N1cmU7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgdmZzX3ByZXNz
dXJlX3JhdGlvKHVuc2lnbmVkIGxvbmcgdmFsKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoIHsg
dHlwZW9mKHZhbCkgcXVvdCA9ICh2YWwpIC8gKDEwMCk7IHR5cGVvZih2YWwpIHJlbSA9ICh2YWwp
ICUgKDEwMCk7IChxdW90ICogKHN5c2N0bF92ZnNfY2FjaGVfcHJlc3N1cmUpKSArICgocmVtICog
KHN5c2N0bF92ZnNfY2FjaGVfcHJlc3N1cmUpKSAvICgxMDApKTsgfSApOwoxNDQ3NDogfQoxNDQ3
NDogIyA1MTggIi4vaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBpbm9kZSAq
ZF9pbm9kZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGRlbnRyeS0+ZF9pbm9kZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTMwICIuL2luY2x1ZGUvbGlu
dXgvZGNhY2hlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgaW5vZGUgKmRfaW5vZGVfcmN1KGNvbnN0IHN0cnVj
dCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdW5pb24geyB0eXBl
b2YoZGVudHJ5LT5kX2lub2RlKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19y
ZWFkX29uY2Vfc2l6ZSgmKGRlbnRyeS0+ZF9pbm9kZSksIF9fdS5fX2MsIHNpemVvZihkZW50cnkt
PmRfaW5vZGUpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihkZW50cnktPmRfaW5v
ZGUpLCBfX3UuX19jLCBzaXplb2YoZGVudHJ5LT5kX2lub2RlKSk7IGRvIHsgfSB3aGlsZSAoMCk7
IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDU0NSAiLi9pbmNsdWRlL2xpbnV4L2Rj
YWNoZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGlub2RlICpkX2JhY2tpbmdfaW5vZGUoY29uc3Qgc3RydWN0
IGRlbnRyeSAqdXBwZXIpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGlub2RlICppbm9kZSA9IHVw
cGVyLT5kX2lub2RlOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGlub2RlOwoxNDQ3NDogfQoxNDQ3
NDogIyA1NjIgIi4vaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZW50cnkg
KmRfYmFja2luZ19kZW50cnkoc3RydWN0IGRlbnRyeSAqdXBwZXIpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIHVwcGVyOwoxNDQ3NDogfQoxNDQ3NDogIyA1NzcgIi4vaW5jbHVkZS9saW51eC9kY2Fj
aGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHN0cnVjdCBkZW50cnkgKmRfcmVhbChzdHJ1Y3QgZGVudHJ5ICpkZW50cnks
CjE0NDc0OiAgICAgICAgIGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoZGVudHJ5LT5kX2ZsYWdzICYgMHgwNDAwMDAwMCks
IDApKQoxNDQ3NDogICByZXR1cm4gZGVudHJ5LT5kX29wLT5kX3JlYWwoZGVudHJ5LCBpbm9kZSk7
CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1cm4gZGVudHJ5OwoxNDQ3NDogfQoxNDQ3NDogIyA1
OTMgIi4vaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBpbm9kZSAqZF9yZWFs
X2lub2RlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiBkX2JhY2tpbmdfaW5vZGUoZF9yZWFsKChzdHJ1Y3QgZGVudHJ5ICopIGRlbnRy
eSwgKCh2b2lkICopMCkpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG5hbWVfc25h
cHNob3QgewoxNDQ3NDogIHN0cnVjdCBxc3RyIG5hbWU7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBp
bmxpbmVfbmFtZVszMl07CjE0NDc0OiB9OwoxNDQ3NDogdm9pZCB0YWtlX2RlbnRyeV9uYW1lX3Nu
YXBzaG90KHN0cnVjdCBuYW1lX3NuYXBzaG90ICosIHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiB2
b2lkIHJlbGVhc2VfZGVudHJ5X25hbWVfc25hcHNob3Qoc3RydWN0IG5hbWVfc25hcHNob3QgKik7
CjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC9mcy5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9wYXRoLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGRlbnRyeTsKMTQ0NzQ6IHN0cnVjdCB2ZnNtb3VudDsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IHBhdGggewoxNDQ3NDogIHN0cnVjdCB2ZnNtb3VudCAqbW50OwoxNDQ3NDogIHN0cnVjdCBk
ZW50cnkgKmRlbnRyeTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRf
XykpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBwYXRoX2dldChjb25zdCBzdHJ1Y3QgcGF0
aCAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHBhdGhfcHV0KGNvbnN0IHN0cnVjdCBwYXRoICopOwox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgcGF0aF9lcXVhbChjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aDEsIGNv
bnN0IHN0cnVjdCBwYXRoICpwYXRoMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcGF0aDEtPm1u
dCA9PSBwYXRoMi0+bW50ICYmIHBhdGgxLT5kZW50cnkgPT0gcGF0aDItPmRlbnRyeTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwYXRoX3B1dF9pbml0KHN0cnVjdCBwYXRoICpwYXRoKQox
NDQ3NDogewoxNDQ3NDogIHBhdGhfcHV0KHBhdGgpOwoxNDQ3NDogICpwYXRoID0gKHN0cnVjdCBw
YXRoKSB7IH07CjE0NDc0OiB9CjE0NDc0OiAjIDEwICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgox
NDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9h
c20vc3RhdC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wb3NpeF90eXBlcy5oIiAxCjE0NDc0OiAjIDYgIi4vYXJj
aC94ODYvaW5jbHVkZS91YXBpL2FzbS9zdGF0LmgiIDIKMTQ0NzQ6ICMgODMgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9zdGF0LmgiCjE0NDc0OiBzdHJ1Y3Qgc3RhdCB7CjE0NDc0OiAgX19r
ZXJuZWxfdWxvbmdfdCBzdF9kZXY7CjE0NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBzdF9pbm87CjE0
NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBzdF9ubGluazsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVk
IGludCBzdF9tb2RlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBzdF91aWQ7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHN0X2dpZDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgX19wYWQwOwoxNDQ3NDogIF9fa2Vy
bmVsX3Vsb25nX3Qgc3RfcmRldjsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3Qgc3Rfc2l6ZTsKMTQ0
NzQ6ICBfX2tlcm5lbF9sb25nX3Qgc3RfYmxrc2l6ZTsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3Qg
c3RfYmxvY2tzOwoxNDQ3NDogCjE0NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBzdF9hdGltZTsKMTQ0
NzQ6ICBfX2tlcm5lbF91bG9uZ190IHN0X2F0aW1lX25zZWM7CjE0NDc0OiAgX19rZXJuZWxfdWxv
bmdfdCBzdF9tdGltZTsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHN0X210aW1lX25zZWM7CjE0
NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBzdF9jdGltZTsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190
IHN0X2N0aW1lX25zZWM7CjE0NDc0OiAgX19rZXJuZWxfbG9uZ190IF9fdW51c2VkWzNdOwoxNDQ3
NDogfTsKMTQ0NzQ6ICMgMTE3ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc3RhdC5oIgox
NDQ3NDogc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0IHsKMTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBz
dF9kZXY7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgc3RfaW5vOwoxNDQ3NDogIHVuc2lnbmVkIHNo
b3J0IHN0X21vZGU7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgc3Rfbmxpbms7CjE0NDc0OiAgdW5z
aWduZWQgc2hvcnQgc3RfdWlkOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IHN0X2dpZDsKMTQ0NzQ6
ICB1bnNpZ25lZCBzaG9ydCBzdF9yZGV2OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBzdF9zaXplOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBzdF9hdGltZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3RfbXRpbWU7CjE0NDc0
OiAgdW5zaWduZWQgaW50IHN0X2N0aW1lOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogIyA3ICIu
L2luY2x1ZGUvbGludXgvc3RhdC5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4
L3N0YXQuaCIgMQoxNDQ3NDogIyA1NiAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3RhdC5oIgoxNDQ3
NDogc3RydWN0IHN0YXR4X3RpbWVzdGFtcCB7CjE0NDc0OiAgX19zNjQgdHZfc2VjOwoxNDQ3NDog
IF9fdTMyIHR2X25zZWM7CjE0NDc0OiAgX19zMzIgX19yZXNlcnZlZDsKMTQ0NzQ6IH07CjE0NDc0
OiAjIDk5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zdGF0LmgiCjE0NDc0OiBzdHJ1Y3Qgc3RhdHgg
ewoxNDQ3NDogCjE0NDc0OiAgX191MzIgc3R4X21hc2s7CjE0NDc0OiAgX191MzIgc3R4X2Jsa3Np
emU7CjE0NDc0OiAgX191NjQgc3R4X2F0dHJpYnV0ZXM7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBz
dHhfbmxpbms7CjE0NDc0OiAgX191MzIgc3R4X3VpZDsKMTQ0NzQ6ICBfX3UzMiBzdHhfZ2lkOwox
NDQ3NDogIF9fdTE2IHN0eF9tb2RlOwoxNDQ3NDogIF9fdTE2IF9fc3BhcmUwWzFdOwoxNDQ3NDog
CjE0NDc0OiAgX191NjQgc3R4X2lubzsKMTQ0NzQ6ICBfX3U2NCBzdHhfc2l6ZTsKMTQ0NzQ6ICBf
X3U2NCBzdHhfYmxvY2tzOwoxNDQ3NDogIF9fdTY0IHN0eF9hdHRyaWJ1dGVzX21hc2s7CjE0NDc0
OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc3RhdHhfdGltZXN0YW1wIHN0eF9hdGltZTsKMTQ0NzQ6ICBzdHJ1
Y3Qgc3RhdHhfdGltZXN0YW1wIHN0eF9idGltZTsKMTQ0NzQ6ICBzdHJ1Y3Qgc3RhdHhfdGltZXN0
YW1wIHN0eF9jdGltZTsKMTQ0NzQ6ICBzdHJ1Y3Qgc3RhdHhfdGltZXN0YW1wIHN0eF9tdGltZTsK
MTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIHN0eF9yZGV2X21ham9yOwoxNDQ3NDogIF9fdTMyIHN0eF9y
ZGV2X21pbm9yOwoxNDQ3NDogIF9fdTMyIHN0eF9kZXZfbWFqb3I7CjE0NDc0OiAgX191MzIgc3R4
X2Rldl9taW5vcjsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTY0IF9fc3BhcmUyWzE0XTsKMTQ0NzQ6IAox
NDQ3NDogfTsKMTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L3N0YXQuaCIgMgoxNDQ3NDogIyAy
MCAiLi9pbmNsdWRlL2xpbnV4L3N0YXQuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3Vp
ZGdpZC5oIiAxCjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgvdWlkZ2lkLmgiCjE0NDc0OiAj
IDEgIi4vaW5jbHVkZS9saW51eC9oaWdodWlkLmgiIDEKMTQ0NzQ6ICMgMzUgIi4vaW5jbHVkZS9s
aW51eC9oaWdodWlkLmgiCjE0NDc0OiBleHRlcm4gaW50IG92ZXJmbG93dWlkOwoxNDQ3NDogZXh0
ZXJuIGludCBvdmVyZmxvd2dpZDsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgX19iYWRfdWlk
KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19iYWRfZ2lkKHZvaWQpOwoxNDQ3NDogIyA4MiAi
Li9pbmNsdWRlL2xpbnV4L2hpZ2h1aWQuaCIKMTQ0NzQ6IGV4dGVybiBpbnQgZnNfb3ZlcmZsb3d1
aWQ7CjE0NDc0OiBleHRlcm4gaW50IGZzX292ZXJmbG93Z2lkOwoxNDQ3NDogIyAxNyAiLi9pbmNs
dWRlL2xpbnV4L3VpZGdpZC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB1c2VyX25hbWVzcGFj
ZTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgaW5pdF91c2VyX25zOwoxNDQ3
NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7CjE0NDc0OiAgdWlkX3QgdmFsOwoxNDQ3NDogfSBr
dWlkX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgewoxNDQ3NDogIGdp
ZF90IHZhbDsKMTQ0NzQ6IH0ga2dpZF90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHVpZF90IF9fa3VpZF92YWwoa3VpZF90IHVpZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gdWlkLnZhbDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgZ2lkX3QgX19rZ2lk
X3ZhbChrZ2lkX3QgZ2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBnaWQudmFsOwoxNDQ3NDog
fQoxNDQ3NDogIyA2MSAiLi9pbmNsdWRlL2xpbnV4L3VpZGdpZC5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1aWRf
ZXEoa3VpZF90IGxlZnQsIGt1aWRfdCByaWdodCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19r
dWlkX3ZhbChsZWZ0KSA9PSBfX2t1aWRfdmFsKHJpZ2h0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBnaWRfZXEoa2dpZF90IGxlZnQsIGtnaWRfdCByaWdodCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gX19rZ2lkX3ZhbChsZWZ0KSA9PSBfX2tnaWRfdmFsKHJpZ2h0KTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCB1aWRfZ3Qoa3VpZF90IGxlZnQsIGt1aWRfdCByaWdodCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19rdWlkX3ZhbChsZWZ0KSA+IF9fa3VpZF92YWwocmlnaHQp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGdpZF9ndChrZ2lkX3QgbGVmdCwga2dpZF90
IHJpZ2h0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2tnaWRfdmFsKGxlZnQpID4gX19rZ2lk
X3ZhbChyaWdodCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdWlkX2d0ZShrdWlkX3Qg
bGVmdCwga3VpZF90IHJpZ2h0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2t1aWRfdmFsKGxl
ZnQpID49IF9fa3VpZF92YWwocmlnaHQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGdp
ZF9ndGUoa2dpZF90IGxlZnQsIGtnaWRfdCByaWdodCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
X19rZ2lkX3ZhbChsZWZ0KSA+PSBfX2tnaWRfdmFsKHJpZ2h0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCB1aWRfbHQoa3VpZF90IGxlZnQsIGt1aWRfdCByaWdodCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gX19rdWlkX3ZhbChsZWZ0KSA8IF9fa3VpZF92YWwocmlnaHQpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGdpZF9sdChrZ2lkX3QgbGVmdCwga2dpZF90IHJpZ2h0KQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2tnaWRfdmFsKGxlZnQpIDwgX19rZ2lkX3ZhbChyaWdo
dCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdWlkX2x0ZShrdWlkX3QgbGVmdCwga3Vp
ZF90IHJpZ2h0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2t1aWRfdmFsKGxlZnQpIDw9IF9f
a3VpZF92YWwocmlnaHQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGdpZF9sdGUoa2dp
ZF90IGxlZnQsIGtnaWRfdCByaWdodCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19rZ2lkX3Zh
bChsZWZ0KSA8PSBfX2tnaWRfdmFsKHJpZ2h0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCB1aWRfdmFsaWQoa3VpZF90IHVpZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19rdWlkX3Zh
bCh1aWQpICE9ICh1aWRfdCkgLTE7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZ2lkX3Zh
bGlkKGtnaWRfdCBnaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fa2dpZF92YWwoZ2lkKSAh
PSAoZ2lkX3QpIC0xOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIGt1aWRfdCBtYWtlX2t1aWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpmcm9tLCB1aWRfdCB1
aWQpOwoxNDQ3NDogZXh0ZXJuIGtnaWRfdCBtYWtlX2tnaWQoc3RydWN0IHVzZXJfbmFtZXNwYWNl
ICpmcm9tLCBnaWRfdCBnaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdWlkX3QgZnJvbV9rdWlk
KHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdG8sIGt1aWRfdCB1aWQpOwoxNDQ3NDogZXh0ZXJuIGdp
ZF90IGZyb21fa2dpZChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnRvLCBrZ2lkX3QgZ2lkKTsKMTQ0
NzQ6IGV4dGVybiB1aWRfdCBmcm9tX2t1aWRfbXVuZ2VkKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAq
dG8sIGt1aWRfdCB1aWQpOwoxNDQ3NDogZXh0ZXJuIGdpZF90IGZyb21fa2dpZF9tdW5nZWQoc3Ry
dWN0IHVzZXJfbmFtZXNwYWNlICp0bywga2dpZF90IGdpZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
a3VpZF9oYXNfbWFwcGluZyhzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5zLCBrdWlkX3QgdWlkKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBmcm9tX2t1aWQobnMsIHVpZCkgIT0gKHVpZF90KSAtMTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrZ2lkX2hhc19tYXBwaW5nKHN0cnVjdCB1c2Vy
X25hbWVzcGFjZSAqbnMsIGtnaWRfdCBnaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZyb21f
a2dpZChucywgZ2lkKSAhPSAoZ2lkX3QpIC0xOwoxNDQ3NDogfQoxNDQ3NDogIyAyMSAiLi9pbmNs
dWRlL2xpbnV4L3N0YXQuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGtzdGF0IHsKMTQ0NzQ6ICB1MzIgcmVzdWx0X21hc2s7CjE0NDc0OiAgdW1vZGVfdCBtb2RlOwox
NDQ3NDogIHVuc2lnbmVkIGludCBubGluazsKMTQ0NzQ6ICB1aW50MzJfdCBibGtzaXplOwoxNDQ3
NDogIHU2NCBhdHRyaWJ1dGVzOwoxNDQ3NDogIHU2NCBhdHRyaWJ1dGVzX21hc2s7CjE0NDc0OiAj
IDM5ICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIgoxNDQ3NDogIHU2NCBpbm87CjE0NDc0OiAgZGV2
X3QgZGV2OwoxNDQ3NDogIGRldl90IHJkZXY7CjE0NDc0OiAga3VpZF90IHVpZDsKMTQ0NzQ6ICBr
Z2lkX3QgZ2lkOwoxNDQ3NDogIGxvZmZfdCBzaXplOwoxNDQ3NDogIHN0cnVjdCB0aW1lc3BlYzY0
IGF0aW1lOwoxNDQ3NDogIHN0cnVjdCB0aW1lc3BlYzY0IG10aW1lOwoxNDQ3NDogIHN0cnVjdCB0
aW1lc3BlYzY0IGN0aW1lOwoxNDQ3NDogIHN0cnVjdCB0aW1lc3BlYzY0IGJ0aW1lOwoxNDQ3NDog
IHU2NCBibG9ja3M7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9saXN0X2xydS5o
IiAxCjE0NDc0OiAjIDEzICIuL2luY2x1ZGUvbGludXgvbGlzdF9scnUuaCIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3Nocmlua2VyLmgiIDEKMTQ0NzQ6ICMgMTIgIi4vaW5jbHVkZS9saW51
eC9zaHJpbmtlci5oIgoxNDQ3NDogc3RydWN0IHNocmlua19jb250cm9sIHsKMTQ0NzQ6ICBnZnBf
dCBnZnBfbWFzazsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IG5pZDsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IG5yX3RvX3NjYW47CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBucl9zY2FubmVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2c7CjE0NDc0OiB9OwoxNDQ3NDogIyA2MCAiLi9p
bmNsdWRlL2xpbnV4L3Nocmlua2VyLmgiCjE0NDc0OiBzdHJ1Y3Qgc2hyaW5rZXIgewoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgKCpjb3VudF9vYmplY3RzKShzdHJ1Y3Qgc2hyaW5rZXIgKiwKMTQ0NzQ6
ICAgICAgICAgICAgc3RydWN0IHNocmlua19jb250cm9sICpzYyk7CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyAoKnNjYW5fb2JqZWN0cykoc3RydWN0IHNocmlua2VyICosCjE0NDc0OiAgICAgICAgICAg
c3RydWN0IHNocmlua19jb250cm9sICpzYyk7CjE0NDc0OiAKMTQ0NzQ6ICBsb25nIGJhdGNoOwox
NDQ3NDogIGludCBzZWVrczsKMTQ0NzQ6ICB1bnNpZ25lZCBmbGFnczsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBp
bnQgaWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGF0b21pY19sb25nX3QgKm5yX2RlZmVycmVk
OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTAgIi4vaW5jbHVkZS9saW51eC9zaHJpbmtlci5oIgoxNDQ3
NDogZXh0ZXJuIGludCBwcmVhbGxvY19zaHJpbmtlcihzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2Vy
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHJlZ2lzdGVyX3Nocmlua2VyX3ByZXBhcmVkKHN0cnVjdCBz
aHJpbmtlciAqc2hyaW5rZXIpOwoxNDQ3NDogZXh0ZXJuIGludCByZWdpc3Rlcl9zaHJpbmtlcihz
dHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHVucmVnaXN0ZXJf
c2hyaW5rZXIoc3RydWN0IHNocmlua2VyICpzaHJpbmtlcik7CjE0NDc0OiBleHRlcm4gdm9pZCBm
cmVlX3ByZWFsbG9jZWRfc2hyaW5rZXIoc3RydWN0IHNocmlua2VyICpzaHJpbmtlcik7CjE0NDc0
OiAjIDE0ICIuL2luY2x1ZGUvbGludXgvbGlzdF9scnUuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgbWVtX2Nncm91cDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGxydV9zdGF0dXMgewox
NDQ3NDogIExSVV9SRU1PVkVELAoxNDQ3NDogIExSVV9SRU1PVkVEX1JFVFJZLAoxNDQ3NDogCjE0
NDc0OiAgTFJVX1JPVEFURSwKMTQ0NzQ6ICBMUlVfU0tJUCwKMTQ0NzQ6ICBMUlVfUkVUUlksCjE0
NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsaXN0X2xydV9vbmUgewoxNDQ3
NDogIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogIGxvbmcgbnJfaXRlbXM7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbGlzdF9scnVfbWVtY2cgewoxNDQ3NDog
IHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2xy
dV9vbmUgKmxydVswXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsaXN0X2xydV9u
b2RlIHsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5sb2NrX3QgbG9jazsKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCBsaXN0X2xydV9vbmUgbHJ1OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbGlz
dF9scnVfbWVtY2cgKm1lbWNnX2xydXM7CjE0NDc0OiAKMTQ0NzQ6ICBsb25nIG5yX2l0ZW1zOwox
NDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikpKSkpOwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgbGlzdF9scnUgewoxNDQ3NDogIHN0cnVjdCBsaXN0X2xydV9ub2RlICpu
b2RlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OwoxNDQ3NDogIGludCBz
aHJpbmtlcl9pZDsKMTQ0NzQ6ICBib29sIG1lbWNnX2F3YXJlOwoxNDQ3NDogCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiB2b2lkIGxpc3RfbHJ1X2Rlc3Ryb3koc3RydWN0IGxpc3RfbHJ1ICpscnUp
OwoxNDQ3NDogaW50IF9fbGlzdF9scnVfaW5pdChzdHJ1Y3QgbGlzdF9scnUgKmxydSwgYm9vbCBt
ZW1jZ19hd2FyZSwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5LCBzdHJ1
Y3Qgc2hyaW5rZXIgKnNocmlua2VyKTsKMTQ0NzQ6ICMgNzIgIi4vaW5jbHVkZS9saW51eC9saXN0
X2xydS5oIgoxNDQ3NDogaW50IG1lbWNnX3VwZGF0ZV9hbGxfbGlzdF9scnVzKGludCBudW1fbWVt
Y2dzKTsKMTQ0NzQ6IHZvaWQgbWVtY2dfZHJhaW5fYWxsX2xpc3RfbHJ1cyhpbnQgc3JjX2lkeCwg
c3RydWN0IG1lbV9jZ3JvdXAgKmRzdF9tZW1jZyk7CjE0NDc0OiAjIDkxICIuL2luY2x1ZGUvbGlu
dXgvbGlzdF9scnUuaCIKMTQ0NzQ6IGJvb2wgbGlzdF9scnVfYWRkKHN0cnVjdCBsaXN0X2xydSAq
bHJ1LCBzdHJ1Y3QgbGlzdF9oZWFkICppdGVtKTsKMTQ0NzQ6ICMgMTA0ICIuL2luY2x1ZGUvbGlu
dXgvbGlzdF9scnUuaCIKMTQ0NzQ6IGJvb2wgbGlzdF9scnVfZGVsKHN0cnVjdCBsaXN0X2xydSAq
bHJ1LCBzdHJ1Y3QgbGlzdF9oZWFkICppdGVtKTsKMTQ0NzQ6ICMgMTE2ICIuL2luY2x1ZGUvbGlu
dXgvbGlzdF9scnUuaCIKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgbGlzdF9scnVfY291bnRfb25lKHN0
cnVjdCBsaXN0X2xydSAqbHJ1LAoxNDQ3NDogICAgICBpbnQgbmlkLCBzdHJ1Y3QgbWVtX2Nncm91
cCAqbWVtY2cpOwoxNDQ3NDogdW5zaWduZWQgbG9uZyBsaXN0X2xydV9jb3VudF9ub2RlKHN0cnVj
dCBsaXN0X2xydSAqbHJ1LCBpbnQgbmlkKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBs
aXN0X2xydV9zaHJpbmtfY291bnQoc3RydWN0IGxpc3RfbHJ1ICpscnUsCjE0NDc0OiAgICAgICAg
IHN0cnVjdCBzaHJpbmtfY29udHJvbCAqc2MpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGxpc3Rf
bHJ1X2NvdW50X29uZShscnUsIHNjLT5uaWQsIHNjLT5tZW1jZyk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGxvbmcgbGlzdF9scnVfY291bnQoc3RydWN0IGxpc3RfbHJ1ICpscnUp
CjE0NDc0OiB7CjE0NDc0OiAgbG9uZyBjb3VudCA9IDA7CjE0NDc0OiAgaW50IG5pZDsKMTQ0NzQ6
IAoxNDQ3NDogIGZvciAoIChuaWQpID0gMDsgKG5pZCkgPT0gMDsgKG5pZCkgPSAxKQoxNDQ3NDog
ICBjb3VudCArPSBsaXN0X2xydV9jb3VudF9ub2RlKGxydSwgbmlkKTsKMTQ0NzQ6IAoxNDQ3NDog
IHJldHVybiBjb3VudDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCBsaXN0X2xydV9pc29s
YXRlKHN0cnVjdCBsaXN0X2xydV9vbmUgKmxpc3QsIHN0cnVjdCBsaXN0X2hlYWQgKml0ZW0pOwox
NDQ3NDogdm9pZCBsaXN0X2xydV9pc29sYXRlX21vdmUoc3RydWN0IGxpc3RfbHJ1X29uZSAqbGlz
dCwgc3RydWN0IGxpc3RfaGVhZCAqaXRlbSwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQg
KmhlYWQpOwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIGVudW0gbHJ1X3N0YXR1cyAoKmxpc3RfbHJ1
X3dhbGtfY2IpKHN0cnVjdCBsaXN0X2hlYWQgKml0ZW0sCjE0NDc0OiAgIHN0cnVjdCBsaXN0X2xy
dV9vbmUgKmxpc3QsIHNwaW5sb2NrX3QgKmxvY2ssIHZvaWQgKmNiX2FyZyk7CjE0NDc0OiAjIDE2
NiAiLi9pbmNsdWRlL2xpbnV4L2xpc3RfbHJ1LmgiCjE0NDc0OiB1bnNpZ25lZCBsb25nIGxpc3Rf
bHJ1X3dhbGtfb25lKHN0cnVjdCBsaXN0X2xydSAqbHJ1LAoxNDQ3NDogICAgIGludCBuaWQsIHN0
cnVjdCBtZW1fY2dyb3VwICptZW1jZywKMTQ0NzQ6ICAgICBsaXN0X2xydV93YWxrX2NiIGlzb2xh
dGUsIHZvaWQgKmNiX2FyZywKMTQ0NzQ6ICAgICB1bnNpZ25lZCBsb25nICpucl90b193YWxrKTsK
MTQ0NzQ6ICMgMTgzICIuL2luY2x1ZGUvbGludXgvbGlzdF9scnUuaCIKMTQ0NzQ6IHVuc2lnbmVk
IGxvbmcgbGlzdF9scnVfd2Fsa19vbmVfaXJxKHN0cnVjdCBsaXN0X2xydSAqbHJ1LAoxNDQ3NDog
ICAgICAgICBpbnQgbmlkLCBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2csCjE0NDc0OiAgICAgICAg
IGxpc3RfbHJ1X3dhbGtfY2IgaXNvbGF0ZSwgdm9pZCAqY2JfYXJnLAoxNDQ3NDogICAgICAgICB1
bnNpZ25lZCBsb25nICpucl90b193YWxrKTsKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgbGlzdF9scnVf
d2Fsa19ub2RlKHN0cnVjdCBsaXN0X2xydSAqbHJ1LCBpbnQgbmlkLAoxNDQ3NDogICAgICBsaXN0
X2xydV93YWxrX2NiIGlzb2xhdGUsIHZvaWQgKmNiX2FyZywKMTQ0NzQ6ICAgICAgdW5zaWduZWQg
bG9uZyAqbnJfdG9fd2Fsayk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcKMTQ0NzQ6IGxp
c3RfbHJ1X3Nocmlua193YWxrKHN0cnVjdCBsaXN0X2xydSAqbHJ1LCBzdHJ1Y3Qgc2hyaW5rX2Nv
bnRyb2wgKnNjLAoxNDQ3NDogICAgICAgIGxpc3RfbHJ1X3dhbGtfY2IgaXNvbGF0ZSwgdm9pZCAq
Y2JfYXJnKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBsaXN0X2xydV93YWxrX29uZShscnUsIHNj
LT5uaWQsIHNjLT5tZW1jZywgaXNvbGF0ZSwgY2JfYXJnLAoxNDQ3NDogICAgICAmc2MtPm5yX3Rv
X3NjYW4pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nCjE0NDc0OiBsaXN0
X2xydV9zaHJpbmtfd2Fsa19pcnEoc3RydWN0IGxpc3RfbHJ1ICpscnUsIHN0cnVjdCBzaHJpbmtf
Y29udHJvbCAqc2MsCjE0NDc0OiAgICAgbGlzdF9scnVfd2Fsa19jYiBpc29sYXRlLCB2b2lkICpj
Yl9hcmcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGxpc3RfbHJ1X3dhbGtfb25lX2lycShscnUs
IHNjLT5uaWQsIHNjLT5tZW1jZywgaXNvbGF0ZSwgY2JfYXJnLAoxNDQ3NDogICAgICAgICAgJnNj
LT5ucl90b19zY2FuKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZwoxNDQ3
NDogbGlzdF9scnVfd2FsayhzdHJ1Y3QgbGlzdF9scnUgKmxydSwgbGlzdF9scnVfd2Fsa19jYiBp
c29sYXRlLAoxNDQ3NDogICAgICAgIHZvaWQgKmNiX2FyZywgdW5zaWduZWQgbG9uZyBucl90b193
YWxrKQoxNDQ3NDogewoxNDQ3NDogIGxvbmcgaXNvbGF0ZWQgPSAwOwoxNDQ3NDogIGludCBuaWQ7
CjE0NDc0OiAKMTQ0NzQ6ICBmb3IgKCAobmlkKSA9IDA7IChuaWQpID09IDA7IChuaWQpID0gMSkg
ewoxNDQ3NDogICBpc29sYXRlZCArPSBsaXN0X2xydV93YWxrX25vZGUobHJ1LCBuaWQsIGlzb2xh
dGUsCjE0NDc0OiAgICAgICAgICAgICBjYl9hcmcsICZucl90b193YWxrKTsKMTQ0NzQ6ICAgaWYg
KG5yX3RvX3dhbGsgPD0gMCkKMTQ0NzQ6ICAgIGJyZWFrOwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1
cm4gaXNvbGF0ZWQ7CjE0NDc0OiB9CjE0NDc0OiAjIDE0ICIuL2luY2x1ZGUvbGludXgvZnMuaCIg
MgoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiIDEKMTQ0
NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCjE0NDc0OiAjIDEgIi4vaW5j
bHVkZS9saW51eC94YXJyYXkuaCIgMQoxNDQ3NDogIyAxNSAiLi9pbmNsdWRlL2xpbnV4L3hhcnJh
eS5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgva2NvbmZpZy5oIiAxCjE0NDc0OiAjIDE2
ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiIDIKMTQ0NzQ6ICMgNTIgIi4vaW5jbHVkZS9saW51
eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX21rX3ZhbHVlKHVuc2lnbmVkIGxvbmcgdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKChsb25nKXYgPCAwKTsgaWYg
KF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9f
aW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0
aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJc
dCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0
IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxu
IiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xu
IiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3hhcnJheS5oIiksICJpIiAo
NTQpLCAiaSIgKCgxIDw8IDApfCgoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdf
ZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hz
ZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9w
c2VjdGlvblxuXHQiIDogOiAiaSIgKDI0KSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4
cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3NDogIHJldHVybiAodm9pZCAqKSgo
diA8PCAxKSB8IDEpOwoxNDQ3NDogfQoxNDQ3NDogIyA2NSAiLi9pbmNsdWRlL2xpbnV4L3hhcnJh
eS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyB4YV90b192YWx1ZShjb25zdCB2b2lkICplbnRyeSkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHVuc2lnbmVkIGxvbmcpZW50cnkgPj4gMTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgNzcgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgeGFf
aXNfdmFsdWUoY29uc3Qgdm9pZCAqZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1bnNp
Z25lZCBsb25nKWVudHJ5ICYgMTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgOTUgIi4vaW5jbHVkZS9saW51
eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX3RhZ19wb2ludGVyKHZvaWQgKnAsIHVuc2lnbmVk
IGxvbmcgdGFnKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodm9pZCAqKSgodW5zaWduZWQgbG9u
ZylwIHwgdGFnKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTEwICIuL2luY2x1ZGUvbGludXgveGFycmF5
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkICp4YV91bnRhZ19wb2ludGVyKHZvaWQgKmVudHJ5KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiAodm9pZCAqKSgodW5zaWduZWQgbG9uZyllbnRyeSAmIH4zVUwpOwoxNDQ3
NDogfQoxNDQ3NDogIyAxMjUgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGludCB4YV9wb2ludGVyX3RhZyh2b2lkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKHVuc2lnbmVkIGxvbmcpZW50cnkgJiAzVUw7CjE0NDc0OiB9CjE0NDc0OiAjIDE0MyAiLi9p
bmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFfbWtfaW50ZXJuYWwodW5zaWdu
ZWQgbG9uZyB2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodm9pZCAqKSgodiA8PCAyKSB8IDIp
OwoxNDQ3NDogfQoxNDQ3NDogIyAxNTUgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHVuc2lnbmVkIGxvbmcgeGFfdG9faW50ZXJuYWwoY29uc3Qgdm9pZCAqZW50cnkpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuICh1bnNpZ25lZCBsb25nKWVudHJ5ID4+IDI7CjE0NDc0OiB9CjE0NDc0
OiAjIDE2NyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YV9pc19pbnRl
cm5hbChjb25zdCB2b2lkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh1bnNpZ25l
ZCBsb25nKWVudHJ5ICYgMykgPT0gMjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTgzICIuL2luY2x1ZGUv
bGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX2lzX3plcm8oY29uc3Qgdm9pZCAqZW50cnkp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fYnVpbHRpbl9leHBlY3QoISEoZW50cnkgPT0geGFf
bWtfaW50ZXJuYWwoMjU3KSksIDApOwoxNDQ3NDogfQoxNDQ3NDogIyAxOTkgIi4vaW5jbHVkZS9s
aW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgeGFfaXNfZXJyKGNvbnN0IHZvaWQgKmVudHJ5KQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2J1aWx0aW5fZXhwZWN0KCEhKHhhX2lzX2ludGVybmFs
KGVudHJ5KSAmJiBlbnRyeSA+PSB4YV9ta19pbnRlcm5hbCgtNDA5NSkpLCAwKQoxNDQ3NDogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogfQoxNDQ3NDogIyAy
MTcgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB4YV9lcnIodm9pZCAqZW50
cnkpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoeGFfaXNfZXJyKGVudHJ5KSkKMTQ0NzQ6
ICAgcmV0dXJuIChsb25nKWVudHJ5ID4+IDI7CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0
NDc0OiAjIDIzNiAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RydWN0IHhhX2xp
bWl0IHsKMTQ0NzQ6ICB1MzIgbWF4OwoxNDQ3NDogIHUzMiBtaW47CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1
bnNpZ25lZCB4YV9tYXJrX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0geGFfbG9ja190eXBlIHsKMTQ0NzQ6ICBYQV9M
T0NLX0lSUSA9IDEsCjE0NDc0OiAgWEFfTE9DS19CSCA9IDIsCjE0NDc0OiB9OwoxNDQ3NDogIyAy
OTIgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0cnVjdCB4YXJyYXkgewoxNDQ3
NDogIHNwaW5sb2NrX3QgeGFfbG9jazsKMTQ0NzQ6IAoxNDQ3NDogIGdmcF90IHhhX2ZsYWdzOwox
NDQ3NDogIHZvaWQgKiB4YV9oZWFkOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzQ3ICIuL2luY2x1ZGUv
bGludXgveGFycmF5LmgiCjE0NDc0OiB2b2lkICp4YV9sb2FkKHN0cnVjdCB4YXJyYXkgKiwgdW5z
aWduZWQgbG9uZyBpbmRleCk7CjE0NDc0OiB2b2lkICp4YV9zdG9yZShzdHJ1Y3QgeGFycmF5ICos
IHVuc2lnbmVkIGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCk7CjE0NDc0OiB2b2lkICp4
YV9lcmFzZShzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwoxNDQ3NDogdm9p
ZCAqeGFfc3RvcmVfcmFuZ2Uoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGZpcnN0LCB1
bnNpZ25lZCBsb25nIGxhc3QsCjE0NDc0OiAgICB2b2lkICplbnRyeSwgZ2ZwX3QpOwoxNDQ3NDog
Ym9vbCB4YV9nZXRfbWFyayhzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHhh
X21hcmtfdCk7CjE0NDc0OiB2b2lkIHhhX3NldF9tYXJrKHN0cnVjdCB4YXJyYXkgKiwgdW5zaWdu
ZWQgbG9uZyBpbmRleCwgeGFfbWFya190KTsKMTQ0NzQ6IHZvaWQgeGFfY2xlYXJfbWFyayhzdHJ1
Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHhhX21hcmtfdCk7CjE0NDc0OiB2b2lk
ICp4YV9maW5kKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nICppbmRleCwKMTQ0NzQ6
ICAgdW5zaWduZWQgbG9uZyBtYXgsIHhhX21hcmtfdCkgX19hdHRyaWJ1dGVfXygobm9ubnVsbCgy
KSkpOwoxNDQ3NDogdm9pZCAqeGFfZmluZF9hZnRlcihzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWdu
ZWQgbG9uZyAqaW5kZXgsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgbWF4LCB4YV9tYXJrX3QpIF9f
YXR0cmlidXRlX18oKG5vbm51bGwoMikpKTsKMTQ0NzQ6IHVuc2lnbmVkIGludCB4YV9leHRyYWN0
KHN0cnVjdCB4YXJyYXkgKiwgdm9pZCAqKmRzdCwgdW5zaWduZWQgbG9uZyBzdGFydCwKMTQ0NzQ6
ICAgdW5zaWduZWQgbG9uZyBtYXgsIHVuc2lnbmVkIGludCBuLCB4YV9tYXJrX3QpOwoxNDQ3NDog
dm9pZCB4YV9kZXN0cm95KHN0cnVjdCB4YXJyYXkgKik7CjE0NDc0OiAjIDM3NCAiLi9pbmNsdWRl
L2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB4YV9pbml0X2ZsYWdzKHN0cnVjdCB4YXJyYXkg
KnhhLCBnZnBfdCBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IHNwaW5sb2NrX2NoZWNrKCZ4
YS0+eGFfbG9jayk7IGRvIHsgKigmKCZ4YS0+eGFfbG9jayktPnJsb2NrKSA9IChyYXdfc3Bpbmxv
Y2tfdCkgeyAucmF3X2xvY2sgPSB7IHsgLnZhbCA9IHsgKDApIH0gfSB9LCB9OyB9IHdoaWxlICgw
KTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgeGEtPnhhX2ZsYWdzID0gZmxhZ3M7CjE0NDc0OiAgeGEt
PnhhX2hlYWQgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzg5ICIuL2luY2x1ZGUv
bGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHhhX2luaXQoc3RydWN0IHhhcnJheSAqeGEpCjE0
NDc0OiB7CjE0NDc0OiAgeGFfaW5pdF9mbGFncyh4YSwgMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDQw
MSAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YV9lbXB0eShjb25zdCBz
dHJ1Y3QgeGFycmF5ICp4YSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4geGEtPnhhX2hlYWQgPT0g
KCh2b2lkICopMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDQxNCAiLi9pbmNsdWRlL2xpbnV4L3hhcnJh
eS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCB4YV9tYXJrZWQoY29uc3Qgc3RydWN0IHhhcnJheSAqeGEsIHhhX21h
cmtfdCBtYXJrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB4YS0+eGFfZmxhZ3MgJiAoKCBnZnBf
dCkoKDFVIDw8ICgyMyArIDApKSA8PCAoIHVuc2lnbmVkKShtYXJrKSkpOwoxNDQ3NDogfQoxNDQ3
NDogIyA1NTQgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHZvaWQgKl9feGFfZXJh
c2Uoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKMTQ0NzQ6IHZvaWQgKl9f
eGFfc3RvcmUoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4LCB2b2lkICplbnRy
eSwgZ2ZwX3QpOwoxNDQ3NDogdm9pZCAqX194YV9jbXB4Y2hnKHN0cnVjdCB4YXJyYXkgKiwgdW5z
aWduZWQgbG9uZyBpbmRleCwgdm9pZCAqb2xkLAoxNDQ3NDogICB2b2lkICplbnRyeSwgZ2ZwX3Qp
OwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBfX3hh
X2luc2VydChzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgsCjE0NDc0OiAgIHZv
aWQgKmVudHJ5LCBnZnBfdCk7CjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIF9feGFfYWxsb2Moc3RydWN0IHhhcnJheSAqLCB1MzIgKmlkLCB2b2lkICpl
bnRyeSwKMTQ0NzQ6ICAgc3RydWN0IHhhX2xpbWl0LCBnZnBfdCk7CjE0NDc0OiBpbnQgX19hdHRy
aWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIF9feGFfYWxsb2NfY3ljbGljKHN0cnVj
dCB4YXJyYXkgKiwgdTMyICppZCwgdm9pZCAqZW50cnksCjE0NDc0OiAgIHN0cnVjdCB4YV9saW1p
dCwgdTMyICpuZXh0LCBnZnBfdCk7CjE0NDc0OiB2b2lkIF9feGFfc2V0X21hcmsoc3RydWN0IHhh
cnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4LCB4YV9tYXJrX3QpOwoxNDQ3NDogdm9pZCBfX3hh
X2NsZWFyX21hcmsoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4LCB4YV9tYXJr
X3QpOwoxNDQ3NDogIyA1ODEgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
KnhhX3N0b3JlX2JoKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGluZGV4LAoxNDQ3
NDogICB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIHZvaWQgKmN1cnI7
CjE0NDc0OiAKMTQ0NzQ6ICBzcGluX2xvY2tfYmgoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGN1
cnIgPSBfX3hhX3N0b3JlKHhhLCBpbmRleCwgZW50cnksIGdmcCk7CjE0NDc0OiAgc3Bpbl91bmxv
Y2tfYmgoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGN1cnI7CjE0NDc0
OiB9CjE0NDc0OiAjIDYwNyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAq
eGFfc3RvcmVfaXJxKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGluZGV4LAoxNDQ3
NDogICB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIHZvaWQgKmN1cnI7
CjE0NDc0OiAKMTQ0NzQ6ICBzcGluX2xvY2tfaXJxKCYoeGEpLT54YV9sb2NrKTsKMTQ0NzQ6ICBj
dXJyID0gX194YV9zdG9yZSh4YSwgaW5kZXgsIGVudHJ5LCBnZnApOwoxNDQ3NDogIHNwaW5fdW5s
b2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gY3VycjsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgNjMyICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
ICp4YV9lcmFzZV9iaChzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICB2b2lkICplbnRyeTsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5fbG9ja19iaCgm
KHhhKS0+eGFfbG9jayk7CjE0NDc0OiAgZW50cnkgPSBfX3hhX2VyYXNlKHhhLCBpbmRleCk7CjE0
NDc0OiAgc3Bpbl91bmxvY2tfYmgoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogCjE0NDc0OiAgcmV0
dXJuIGVudHJ5OwoxNDQ3NDogfQoxNDQ3NDogIyA2NTYgIi4vaW5jbHVkZS9saW51eC94YXJyYXku
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgKnhhX2VyYXNlX2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQg
bG9uZyBpbmRleCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB2b2lkICplbnRyeTsKMTQ0NzQ6IAoxNDQ3NDog
IHNwaW5fbG9ja19pcnEoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGVudHJ5ID0gX194YV9lcmFz
ZSh4YSwgaW5kZXgpOwoxNDQ3NDogIHNwaW5fdW5sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CjE0
NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZW50cnk7CjE0NDc0OiB9CjE0NDc0OiAjIDY4MiAiLi9pbmNs
dWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFfY21weGNoZyhzdHJ1Y3QgeGFycmF5
ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCwKMTQ0NzQ6ICAgIHZvaWQgKm9sZCwgdm9pZCAqZW50
cnksIGdmcF90IGdmcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB2b2lkICpjdXJyOwoxNDQ3NDogCjE0NDc0
OiAgc3Bpbl9sb2NrKCYoeGEpLT54YV9sb2NrKTsKMTQ0NzQ6ICBjdXJyID0gX194YV9jbXB4Y2hn
KHhhLCBpbmRleCwgb2xkLCBlbnRyeSwgZ2ZwKTsKMTQ0NzQ6ICBzcGluX3VubG9jaygmKHhhKS0+
eGFfbG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gY3VycjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
NzA5ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICp4YV9jbXB4Y2hnX2Jo
KHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGluZGV4LAoxNDQ3NDogICAgdm9pZCAq
b2xkLCB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIHZvaWQgKmN1cnI7
CjE0NDc0OiAKMTQ0NzQ6ICBzcGluX2xvY2tfYmgoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGN1
cnIgPSBfX3hhX2NtcHhjaGcoeGEsIGluZGV4LCBvbGQsIGVudHJ5LCBnZnApOwoxNDQ3NDogIHNw
aW5fdW5sb2NrX2JoKCYoeGEpLT54YV9sb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBjdXJy
OwoxNDQ3NDogfQoxNDQ3NDogIyA3MzYgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgKnhhX2NtcHhjaGdfaXJxKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGlu
ZGV4LAoxNDQ3NDogICAgdm9pZCAqb2xkLCB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQoxNDQ3NDog
ewoxNDQ3NDogIHZvaWQgKmN1cnI7CjE0NDc0OiAKMTQ0NzQ6ICBzcGluX2xvY2tfaXJxKCYoeGEp
LT54YV9sb2NrKTsKMTQ0NzQ6ICBjdXJyID0gX194YV9jbXB4Y2hnKHhhLCBpbmRleCwgb2xkLCBl
bnRyeSwgZ2ZwKTsKMTQ0NzQ6ICBzcGluX3VubG9ja19pcnEoJih4YSktPnhhX2xvY2spOwoxNDQ3
NDogCjE0NDc0OiAgcmV0dXJuIGN1cnI7CjE0NDc0OiB9CjE0NDc0OiAjIDc2NSAiLi9pbmNsdWRl
L2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSB4YV9pbnNlcnQoc3RydWN0IHhhcnJheSAqeGEsCjE0NDc0OiAgIHVuc2lnbmVk
IGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0OiAgaW50
IGVycjsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5fbG9jaygmKHhhKS0+eGFfbG9jayk7CjE0NDc0OiAg
ZXJyID0gX194YV9pbnNlcnQoeGEsIGluZGV4LCBlbnRyeSwgZ2ZwKTsKMTQ0NzQ6ICBzcGluX3Vu
bG9jaygmKHhhKS0+eGFfbG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZXJyOwoxNDQ3NDog
fQoxNDQ3NDogIyA3OTQgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgeGFfaW5zZXJ0X2JoKHN0cnVjdCB4
YXJyYXkgKnhhLAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIGluZGV4LCB2b2lkICplbnRyeSwgZ2Zw
X3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIGludCBlcnI7CjE0NDc0OiAKMTQ0NzQ6ICBzcGluX2xv
Y2tfYmgoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGVyciA9IF9feGFfaW5zZXJ0KHhhLCBpbmRl
eCwgZW50cnksIGdmcCk7CjE0NDc0OiAgc3Bpbl91bmxvY2tfYmgoJih4YSktPnhhX2xvY2spOwox
NDQ3NDogCjE0NDc0OiAgcmV0dXJuIGVycjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgODIzICIuL2luY2x1
ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIHhhX2luc2VydF9pcnEoc3RydWN0IHhhcnJheSAqeGEsCjE0NDc0OiAgIHVu
c2lnbmVkIGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0
OiAgaW50IGVycjsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5fbG9ja19pcnEoJih4YSktPnhhX2xvY2sp
OwoxNDQ3NDogIGVyciA9IF9feGFfaW5zZXJ0KHhhLCBpbmRleCwgZW50cnksIGdmcCk7CjE0NDc0
OiAgc3Bpbl91bmxvY2tfaXJxKCYoeGEpLT54YV9sb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biBlcnI7CjE0NDc0OiB9CjE0NDc0OiAjIDg1MiAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGludCB4YV9hbGxv
YyhzdHJ1Y3QgeGFycmF5ICp4YSwgdTMyICppZCwKMTQ0NzQ6ICAgdm9pZCAqZW50cnksIHN0cnVj
dCB4YV9saW1pdCBsaW1pdCwgZ2ZwX3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIGludCBlcnI7CjE0
NDc0OiAKMTQ0NzQ6ICBzcGluX2xvY2soJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGVyciA9IF9f
eGFfYWxsb2MoeGEsIGlkLCBlbnRyeSwgbGltaXQsIGdmcCk7CjE0NDc0OiAgc3Bpbl91bmxvY2so
Jih4YSktPnhhX2xvY2spOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGVycjsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgODgxICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHhhX2FsbG9jX2JoKHN0cnVjdCB4YXJyYXkg
KnhhLCB1MzIgKmlkLAoxNDQ3NDogICB2b2lkICplbnRyeSwgc3RydWN0IHhhX2xpbWl0IGxpbWl0
LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0OiAgaW50IGVycjsKMTQ0NzQ6IAoxNDQ3NDogIHNw
aW5fbG9ja19iaCgmKHhhKS0+eGFfbG9jayk7CjE0NDc0OiAgZXJyID0gX194YV9hbGxvYyh4YSwg
aWQsIGVudHJ5LCBsaW1pdCwgZ2ZwKTsKMTQ0NzQ6ICBzcGluX3VubG9ja19iaCgmKHhhKS0+eGFf
bG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZXJyOwoxNDQ3NDogfQoxNDQ3NDogIyA5MTAg
Ii4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dh
cm5fdW51c2VkX3Jlc3VsdF9fKSkgeGFfYWxsb2NfaXJxKHN0cnVjdCB4YXJyYXkgKnhhLCB1MzIg
KmlkLAoxNDQ3NDogICB2b2lkICplbnRyeSwgc3RydWN0IHhhX2xpbWl0IGxpbWl0LCBnZnBfdCBn
ZnApCjE0NDc0OiB7CjE0NDc0OiAgaW50IGVycjsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5fbG9ja19p
cnEoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGVyciA9IF9feGFfYWxsb2MoeGEsIGlkLCBlbnRy
eSwgbGltaXQsIGdmcCk7CjE0NDc0OiAgc3Bpbl91bmxvY2tfaXJxKCYoeGEpLT54YV9sb2NrKTsK
MTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBlcnI7CjE0NDc0OiB9CjE0NDc0OiAjIDk0MyAiLi9pbmNs
dWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHhhX2FsbG9jX2N5Y2xpYyhzdHJ1Y3QgeGFy
cmF5ICp4YSwgdTMyICppZCwgdm9pZCAqZW50cnksCjE0NDc0OiAgIHN0cnVjdCB4YV9saW1pdCBs
aW1pdCwgdTMyICpuZXh0LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0OiAgaW50IGVycjsKMTQ0
NzQ6IAoxNDQ3NDogIHNwaW5fbG9jaygmKHhhKS0+eGFfbG9jayk7CjE0NDc0OiAgZXJyID0gX194
YV9hbGxvY19jeWNsaWMoeGEsIGlkLCBlbnRyeSwgbGltaXQsIG5leHQsIGdmcCk7CjE0NDc0OiAg
c3Bpbl91bmxvY2soJih4YSktPnhhX2xvY2spOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGVycjsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgOTc2ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgeGFfYWxsb2NfY3ljbGljX2JoKHN0cnVjdCB4YXJyYXkgKnhhLCB1MzIgKmlkLCB2b2lkICpl
bnRyeSwKMTQ0NzQ6ICAgc3RydWN0IHhhX2xpbWl0IGxpbWl0LCB1MzIgKm5leHQsIGdmcF90IGdm
cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgZXJyOwoxNDQ3NDogCjE0NDc0OiAgc3Bpbl9sb2NrX2Jo
KCYoeGEpLT54YV9sb2NrKTsKMTQ0NzQ6ICBlcnIgPSBfX3hhX2FsbG9jX2N5Y2xpYyh4YSwgaWQs
IGVudHJ5LCBsaW1pdCwgbmV4dCwgZ2ZwKTsKMTQ0NzQ6ICBzcGluX3VubG9ja19iaCgmKHhhKS0+
eGFfbG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZXJyOwoxNDQ3NDogfQoxNDQ3NDogIyAx
MDA5ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgeGFfYWxsb2NfY3ljbGlj
X2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdTMyICppZCwgdm9pZCAqZW50cnksCjE0NDc0OiAgIHN0
cnVjdCB4YV9saW1pdCBsaW1pdCwgdTMyICpuZXh0LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0
OiAgaW50IGVycjsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5fbG9ja19pcnEoJih4YSktPnhhX2xvY2sp
OwoxNDQ3NDogIGVyciA9IF9feGFfYWxsb2NfY3ljbGljKHhhLCBpZCwgZW50cnksIGxpbWl0LCBu
ZXh0LCBnZnApOwoxNDQ3NDogIHNwaW5fdW5sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CjE0NDc0
OiAKMTQ0NzQ6ICByZXR1cm4gZXJyOwoxNDQ3NDogfQoxNDQ3NDogIyAxMDM5ICIuL2luY2x1ZGUv
bGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkKMTQ0NzQ6IGludCB4YV9yZXNlcnZlKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBs
b25nIGluZGV4LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHhhX2Vycih4YV9j
bXB4Y2hnKHhhLCBpbmRleCwgKCh2b2lkICopMCksIHhhX21rX2ludGVybmFsKDI1NyksIGdmcCkp
OwoxNDQ3NDogfQoxNDQ3NDogIyAxMDU3ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkKMTQ0NzQ6IGludCB4YV9y
ZXNlcnZlX2JoKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGluZGV4LCBnZnBfdCBn
ZnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHhhX2Vycih4YV9jbXB4Y2hnX2JoKHhhLCBpbmRl
eCwgKCh2b2lkICopMCksIHhhX21rX2ludGVybmFsKDI1NyksIGdmcCkpOwoxNDQ3NDogfQoxNDQ3
NDogIyAxMDc1ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkKMTQ0NzQ6IGludCB4YV9yZXNlcnZlX2lycShzdHJ1
Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCwgZ2ZwX3QgZ2ZwKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiB4YV9lcnIoeGFfY21weGNoZ19pcnEoeGEsIGluZGV4LCAoKHZvaWQgKikw
KSwgeGFfbWtfaW50ZXJuYWwoMjU3KSwgZ2ZwKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDEwOTAgIi4v
aW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgeGFfcmVsZWFzZShzdHJ1Y3QgeGFy
cmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB4YV9jbXB4Y2hn
KHhhLCBpbmRleCwgeGFfbWtfaW50ZXJuYWwoMjU3KSwgKCh2b2lkICopMCksIDApOwoxNDQ3NDog
fQoxNDQ3NDogIyAxMTIyICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdHJ1Y3Qg
eGFfbm9kZSB7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBzaGlmdDsKMTQ0NzQ6ICB1bnNpZ25lZCBj
aGFyIG9mZnNldDsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGNvdW50OwoxNDQ3NDogIHVuc2lnbmVk
IGNoYXIgbnJfdmFsdWVzOwoxNDQ3NDogIHN0cnVjdCB4YV9ub2RlICpwYXJlbnQ7CjE0NDc0OiAg
c3RydWN0IHhhcnJheSAqYXJyYXk7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgbGlz
dF9oZWFkIHByaXZhdGVfbGlzdDsKMTQ0NzQ6ICAgc3RydWN0IGNhbGxiYWNrX2hlYWQgY2FsbGJh
Y2tfaGVhZDsKMTQ0NzQ6ICB9OwoxNDQ3NDogIHZvaWQgKnNsb3RzWygxVUwgPDwgKDAgPyA0IDog
NikpXTsKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgdGFnc1szXVsoKCgo
MVVMIDw8ICgwID8gNCA6IDYpKSkgKyAoNjQpIC0gMSkgLyAoNjQpKV07CjE0NDc0OiAgIHVuc2ln
bmVkIGxvbmcgbWFya3NbM11bKCgoKDFVTCA8PCAoMCA/IDQgOiA2KSkpICsgKDY0KSAtIDEpIC8g
KDY0KSldOwoxNDQ3NDogIH07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lkIHhhX2R1bXAo
Y29uc3Qgc3RydWN0IHhhcnJheSAqKTsKMTQ0NzQ6IHZvaWQgeGFfZHVtcF9ub2RlKGNvbnN0IHN0
cnVjdCB4YV9ub2RlICopOwoxNDQ3NDogIyAxMTYyICIuL2luY2x1ZGUvbGludXgveGFycmF5Lmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkICp4YV9oZWFkKGNvbnN0IHN0cnVjdCB4YXJyYXkgKnhhKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiAoeyB0eXBlb2YoKih4YS0+eGFfaGVhZCkpICpfX19fX19fX3AxID0gKHR5
cGVvZigqKHhhLT54YV9oZWFkKSkgKikoeyB1bmlvbiB7IHR5cGVvZigoeGEtPnhhX2hlYWQpKSBf
X3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKCh4YS0+
eGFfaGVhZCkpLCBfX3UuX19jLCBzaXplb2YoKHhhLT54YV9oZWFkKSkpOyBlbHNlIF9fcmVhZF9v
bmNlX3NpemVfbm9jaGVjaygmKCh4YS0+eGFfaGVhZCkpLCBfX3UuX19jLCBzaXplb2YoKHhhLT54
YV9oZWFkKSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOyBkbyB7IH0gd2hpbGUg
KDApOyA7ICgodHlwZW9mKCooeGEtPnhhX2hlYWQpKSAqKShfX19fX19fX3AxKSk7IH0pCjE0NDc0
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFfaGVhZF9sb2NrZWQoY29uc3Qgc3RydWN0IHhhcnJheSAq
eGEpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBl
b2YoKih4YS0+eGFfaGVhZCkpICopKCh4YS0+eGFfaGVhZCkpKTsgfSkKMTQ0NzQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkICp4YV9lbnRyeShjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwKMTQ0NzQ6ICAgICBj
b25zdCBzdHJ1Y3QgeGFfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IG9mZnNldCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIHJldHVybiAoeyB0eXBlb2YoKihub2Rl
LT5zbG90c1tvZmZzZXRdKSkgKl9fX19fX19fcDEgPSAodHlwZW9mKCoobm9kZS0+c2xvdHNbb2Zm
c2V0XSkpICopKHsgdW5pb24geyB0eXBlb2YoKG5vZGUtPnNsb3RzW29mZnNldF0pKSBfX3ZhbDsg
Y2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKChub2RlLT5zbG90
c1tvZmZzZXRdKSksIF9fdS5fX2MsIHNpemVvZigobm9kZS0+c2xvdHNbb2Zmc2V0XSkpKTsgZWxz
ZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigobm9kZS0+c2xvdHNbb2Zmc2V0XSkpLCBfX3Uu
X19jLCBzaXplb2YoKG5vZGUtPnNsb3RzW29mZnNldF0pKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9f
dS5fX3ZhbDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihub2RlLT5zbG90c1tv
ZmZzZXRdKSkgKikoX19fX19fX19wMSkpOyB9KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhh
X2VudHJ5X2xvY2tlZChjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwKMTQ0NzQ6ICAgICBjb25zdCBz
dHJ1Y3QgeGFfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IG9mZnNldCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIHJldHVybiAoeyBkbyB7IH0gd2hpbGUgKDApOyA7
ICgodHlwZW9mKCoobm9kZS0+c2xvdHNbb2Zmc2V0XSkpICopKChub2RlLT5zbG90c1tvZmZzZXRd
KSkpOyB9KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB4YV9ub2RlICp4YV9wYXJlbnQoY29u
c3Qgc3RydWN0IHhhcnJheSAqeGEsCjE0NDc0OiAgICAgIGNvbnN0IHN0cnVjdCB4YV9ub2RlICpu
b2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyB0eXBlb2YoKihub2RlLT5wYXJlbnQpKSAq
X19fX19fX19wMSA9ICh0eXBlb2YoKihub2RlLT5wYXJlbnQpKSAqKSh7IHVuaW9uIHsgdHlwZW9m
KChub2RlLT5wYXJlbnQpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFk
X29uY2Vfc2l6ZSgmKChub2RlLT5wYXJlbnQpKSwgX191Ll9fYywgc2l6ZW9mKChub2RlLT5wYXJl
bnQpKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoKG5vZGUtPnBhcmVudCkpLCBf
X3UuX19jLCBzaXplb2YoKG5vZGUtPnBhcmVudCkpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9f
dmFsOyB9KTsgZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigqKG5vZGUtPnBhcmVudCkpICop
KF9fX19fX19fcDEpKTsgfSkKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgeGFfbm9kZSAqeGFf
cGFyZW50X2xvY2tlZChjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwKMTQ0NzQ6ICAgICAgY29uc3Qg
c3RydWN0IHhhX25vZGUgKm5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGRvIHsgfSB3
aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihub2RlLT5wYXJlbnQpKSAqKSgobm9kZS0+cGFyZW50KSkp
OyB9KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX21rX25vZGUoY29uc3Qgc3RydWN0IHhh
X25vZGUgKm5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh2b2lkICopKCh1bnNpZ25lZCBs
b25nKW5vZGUgfCAyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgeGFf
bm9kZSAqeGFfdG9fbm9kZShjb25zdCB2b2lkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKHN0cnVjdCB4YV9ub2RlICopKCh1bnNpZ25lZCBsb25nKWVudHJ5IC0gMik7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YV9pc19ub2RlKGNvbnN0IHZvaWQgKmVudHJ5
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB4YV9pc19pbnRlcm5hbChlbnRyeSkgJiYgKHVuc2ln
bmVkIGxvbmcpZW50cnkgPiA0MDk2OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgKnhhX21rX3NpYmxpbmcodW5zaWduZWQgaW50IG9mZnNldCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4geGFfbWtfaW50ZXJuYWwob2Zmc2V0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIHhhX3RvX3NpYmxpbmcoY29uc3Qgdm9pZCAqZW50cnkpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIHhhX3RvX2ludGVybmFsKGVudHJ5KTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCB4YV9pc19zaWJsaW5nKGNvbnN0IHZvaWQgKmVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAxICYmIHhhX2lzX2ludGVybmFsKGVudHJ5KSAmJgoxNDQ3NDogICAoZW50cnkgPCB4YV9t
a19zaWJsaW5nKCgxVUwgPDwgKDAgPyA0IDogNikpIC0gMSkpOwoxNDQ3NDogfQoxNDQ3NDogIyAx
MjU5ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX2lzX3JldHJ5KGNv
bnN0IHZvaWQgKmVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2J1aWx0aW5fZXhwZWN0
KCEhKGVudHJ5ID09IHhhX21rX2ludGVybmFsKDI1NikpLCAwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCB4YV9pc19hZHZhbmNlZChjb25zdCB2b2lkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4geGFfaXNfaW50ZXJuYWwoZW50cnkpICYmIChlbnRyeSA8PSB4YV9ta19pbnRlcm5hbCgyNTYp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTI4NyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3
NDogdHlwZWRlZiB2b2lkICgqeGFfdXBkYXRlX25vZGVfdCkoc3RydWN0IHhhX25vZGUgKm5vZGUp
OwoxNDQ3NDogIyAxMzA2ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdHJ1Y3Qg
eGFfc3RhdGUgewoxNDQ3NDogIHN0cnVjdCB4YXJyYXkgKnhhOwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgeGFfaW5kZXg7CjE0NDc0OiAgdW5zaWduZWQgY2hhciB4YV9zaGlmdDsKMTQ0NzQ6ICB1bnNp
Z25lZCBjaGFyIHhhX3NpYnM7CjE0NDc0OiAgdW5zaWduZWQgY2hhciB4YV9vZmZzZXQ7CjE0NDc0
OiAgdW5zaWduZWQgY2hhciB4YV9wYWQ7CjE0NDc0OiAgc3RydWN0IHhhX25vZGUgKnhhX25vZGU7
CjE0NDc0OiAgc3RydWN0IHhhX25vZGUgKnhhX2FsbG9jOwoxNDQ3NDogIHhhX3VwZGF0ZV9ub2Rl
X3QgeGFfdXBkYXRlOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTM4NSAiLi9pbmNsdWRlL2xpbnV4L3hh
cnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHhhc19lcnJvcihjb25zdCBzdHJ1Y3QgeGFfc3RhdGUgKnhhcykK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4geGFfZXJyKHhhcy0+eGFfbm9kZSk7CjE0NDc0OiB9CjE0
NDc0OiAjIDEzOTkgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgeGFzX3Nl
dF9lcnIoc3RydWN0IHhhX3N0YXRlICp4YXMsIGxvbmcgZXJyKQoxNDQ3NDogewoxNDQ3NDogIHhh
cy0+eGFfbm9kZSA9ICgoc3RydWN0IHhhX25vZGUgKikoKCh1bnNpZ25lZCBsb25nKWVyciA8PCAy
KSB8IDJVTCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhc19pbnZhbGlkKGNvbnN0IHN0cnVjdCB4
YV9zdGF0ZSAqeGFzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodW5zaWduZWQgbG9uZyl4YXMt
PnhhX25vZGUgJiAzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhc192YWxpZChjb25zdCBzdHJ1Y3Qg
eGFfc3RhdGUgKnhhcykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gIXhhc19pbnZhbGlkKHhhcyk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgeGFzX2lzX25vZGUoY29uc3Qgc3RydWN0IHhhX3N0YXRlICp4
YXMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHhhc192YWxpZCh4YXMpICYmIHhhcy0+eGFfbm9k
ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhc19ub3Rfbm9kZShzdHJ1
Y3QgeGFfbm9kZSAqbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh1bnNpZ25lZCBsb25n
KW5vZGUgJiAzKSB8fCAhbm9kZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IHhhc19mcm96ZW4oc3RydWN0IHhhX25vZGUgKm5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
ICh1bnNpZ25lZCBsb25nKW5vZGUgJiAyOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgeGFzX3RvcChzdHJ1Y3QgeGFfbm9kZSAqbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gbm9kZSA8PSAoKHN0cnVjdCB4YV9ub2RlICopM1VMKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQ2
NSAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB4YXNfcmVzZXQoc3RydWN0
IHhhX3N0YXRlICp4YXMpCjE0NDc0OiB7CjE0NDc0OiAgeGFzLT54YV9ub2RlID0gKChzdHJ1Y3Qg
eGFfbm9kZSAqKTNVTCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE0ODIgIi4vaW5jbHVkZS9saW51eC94
YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgeGFzX3JldHJ5KHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCBjb25z
dCB2b2lkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoeGFfaXNfemVybyhlbnRyeSkpCjE0
NDc0OiAgIHJldHVybiB0cnVlOwoxNDQ3NDogIGlmICgheGFfaXNfcmV0cnkoZW50cnkpKQoxNDQ3
NDogICByZXR1cm4gZmFsc2U7CjE0NDc0OiAgeGFzX3Jlc2V0KHhhcyk7CjE0NDc0OiAgcmV0dXJu
IHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgKnhhc19sb2FkKHN0cnVjdCB4YV9z
dGF0ZSAqKTsKMTQ0NzQ6IHZvaWQgKnhhc19zdG9yZShzdHJ1Y3QgeGFfc3RhdGUgKiwgdm9pZCAq
ZW50cnkpOwoxNDQ3NDogdm9pZCAqeGFzX2ZpbmQoc3RydWN0IHhhX3N0YXRlICosIHVuc2lnbmVk
IGxvbmcgbWF4KTsKMTQ0NzQ6IHZvaWQgKnhhc19maW5kX2NvbmZsaWN0KHN0cnVjdCB4YV9zdGF0
ZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCB4YXNfZ2V0X21hcmsoY29uc3Qgc3RydWN0IHhhX3N0
YXRlICosIHhhX21hcmtfdCk7CjE0NDc0OiB2b2lkIHhhc19zZXRfbWFyayhjb25zdCBzdHJ1Y3Qg
eGFfc3RhdGUgKiwgeGFfbWFya190KTsKMTQ0NzQ6IHZvaWQgeGFzX2NsZWFyX21hcmsoY29uc3Qg
c3RydWN0IHhhX3N0YXRlICosIHhhX21hcmtfdCk7CjE0NDc0OiB2b2lkICp4YXNfZmluZF9tYXJr
ZWQoc3RydWN0IHhhX3N0YXRlICosIHVuc2lnbmVkIGxvbmcgbWF4LCB4YV9tYXJrX3QpOwoxNDQ3
NDogdm9pZCB4YXNfaW5pdF9tYXJrcyhjb25zdCBzdHJ1Y3QgeGFfc3RhdGUgKik7CjE0NDc0OiAK
MTQ0NzQ6IGJvb2wgeGFzX25vbWVtKHN0cnVjdCB4YV9zdGF0ZSAqLCBnZnBfdCk7CjE0NDc0OiB2
b2lkIHhhc19wYXVzZShzdHJ1Y3QgeGFfc3RhdGUgKik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgeGFz
X2NyZWF0ZV9yYW5nZShzdHJ1Y3QgeGFfc3RhdGUgKik7CjE0NDc0OiAjIDE1MjIgIi4vaW5jbHVk
ZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhc19yZWxvYWQoc3RydWN0IHhhX3N0YXRl
ICp4YXMpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IHhhX25vZGUgKm5vZGUgPSB4YXMtPnhhX25v
ZGU7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAobm9kZSkKMTQ0NzQ6ICAgcmV0dXJuIHhhX2VudHJ5KHhh
cy0+eGEsIG5vZGUsIHhhcy0+eGFfb2Zmc2V0KTsKMTQ0NzQ6ICByZXR1cm4geGFfaGVhZCh4YXMt
PnhhKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTU0MCAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCB4YXNfc2V0KHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCB1bnNpZ25lZCBsb25nIGlu
ZGV4KQoxNDQ3NDogewoxNDQ3NDogIHhhcy0+eGFfaW5kZXggPSBpbmRleDsKMTQ0NzQ6ICB4YXMt
PnhhX25vZGUgPSAoKHN0cnVjdCB4YV9ub2RlICopM1VMKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB4
YXNfc2V0X29yZGVyKHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCB1bnNpZ25lZCBsb25nIGluZGV4LAox
NDQ3NDogICAgICB1bnNpZ25lZCBpbnQgb3JkZXIpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICB4
YXMtPnhhX2luZGV4ID0gb3JkZXIgPCA2NCA/IChpbmRleCA+PiBvcmRlcikgPDwgb3JkZXIgOiAw
OwoxNDQ3NDogIHhhcy0+eGFfc2hpZnQgPSBvcmRlciAtIChvcmRlciAlICgwID8gNCA6IDYpKTsK
MTQ0NzQ6ICB4YXMtPnhhX3NpYnMgPSAoMSA8PCAob3JkZXIgJSAoMCA/IDQgOiA2KSkpIC0gMTsK
MTQ0NzQ6ICB4YXMtPnhhX25vZGUgPSAoKHN0cnVjdCB4YV9ub2RlICopM1VMKTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogIyAxNTc0ICIuL2luY2x1ZGUv
bGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHhhc19zZXRfdXBkYXRlKHN0cnVjdCB4YV9zdGF0
ZSAqeGFzLCB4YV91cGRhdGVfbm9kZV90IHVwZGF0ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB4YXMtPnhh
X3VwZGF0ZSA9IHVwZGF0ZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTU5MCAiLi9pbmNsdWRlL2xpbnV4
L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFzX25leHRfZW50cnkoc3RydWN0IHhhX3N0YXRlICp4
YXMsIHVuc2lnbmVkIGxvbmcgbWF4KQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCB4YV9ub2RlICpu
b2RlID0geGFzLT54YV9ub2RlOwoxNDQ3NDogIHZvaWQgKmVudHJ5OwoxNDQ3NDogCjE0NDc0OiAg
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoeGFzX25vdF9ub2RlKG5vZGUpIHx8IG5vZGUtPnNoaWZ0
IHx8IHhhcy0+eGFfb2Zmc2V0ICE9ICh4YXMtPnhhX2luZGV4ICYgKCgxVUwgPDwgKDAgPyA0IDog
NikpIC0gMSkpKSwgMCkKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKQoxNDQ3NDogICByZXR1cm4geGFzX2ZpbmQoeGFzLCBtYXgpOwox
NDQ3NDogCjE0NDc0OiAgZG8gewoxNDQ3NDogICBpZiAoX19idWlsdGluX2V4cGVjdCghISh4YXMt
PnhhX2luZGV4ID49IG1heCksIDApKQoxNDQ3NDogICAgcmV0dXJuIHhhc19maW5kKHhhcywgbWF4
KTsKMTQ0NzQ6ICAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoeGFzLT54YV9vZmZzZXQgPT0gKCgx
VUwgPDwgKDAgPyA0IDogNikpIC0gMSkpLCAwKSkKMTQ0NzQ6ICAgIHJldHVybiB4YXNfZmluZCh4
YXMsIG1heCk7CjE0NDc0OiAgIGVudHJ5ID0geGFfZW50cnkoeGFzLT54YSwgbm9kZSwgeGFzLT54
YV9vZmZzZXQgKyAxKTsKMTQ0NzQ6ICAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoeGFfaXNfaW50
ZXJuYWwoZW50cnkpKSwgMCkpCjE0NDc0OiAgICByZXR1cm4geGFzX2ZpbmQoeGFzLCBtYXgpOwox
NDQ3NDogICB4YXMtPnhhX29mZnNldCsrOwoxNDQ3NDogICB4YXMtPnhhX2luZGV4Kys7CjE0NDc0
OiAgfSB3aGlsZSAoIWVudHJ5KTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBlbnRyeTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgeGFzX2ZpbmRfY2h1bmsoc3Ry
dWN0IHhhX3N0YXRlICp4YXMsIGJvb2wgYWR2YW5jZSwKMTQ0NzQ6ICAgeGFfbWFya190IG1hcmsp
CjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyAqYWRkciA9IHhhcy0+eGFfbm9kZS0+bWFy
a3NbKCB1bnNpZ25lZCltYXJrXTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgb2Zmc2V0ID0geGFzLT54
YV9vZmZzZXQ7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoYWR2YW5jZSkKMTQ0NzQ6ICAgb2Zmc2V0Kys7
CjE0NDc0OiAgaWYgKCgxVUwgPDwgKDAgPyA0IDogNikpID09IDY0KSB7CjE0NDc0OiAgIGlmIChv
ZmZzZXQgPCAoMVVMIDw8ICgwID8gNCA6IDYpKSkgewoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBk
YXRhID0gKmFkZHIgJiAofjBVTCA8PCBvZmZzZXQpOwoxNDQ3NDogICAgaWYgKGRhdGEpCjE0NDc0
OiAgICAgcmV0dXJuIF9fZmZzKGRhdGEpOwoxNDQ3NDogICB9CjE0NDc0OiAgIHJldHVybiAoMVVM
IDw8ICgwID8gNCA6IDYpKTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZmluZF9u
ZXh0X2JpdChhZGRyLCAoMVVMIDw8ICgwID8gNCA6IDYpKSwgb2Zmc2V0KTsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgMTY0NyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFzX25l
eHRfbWFya2VkKHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCB1bnNpZ25lZCBsb25nIG1heCwKMTQ0NzQ6
ICAgICAgICAgeGFfbWFya190IG1hcmspCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IHhhX25vZGUg
Km5vZGUgPSB4YXMtPnhhX25vZGU7CjE0NDc0OiAgdW5zaWduZWQgaW50IG9mZnNldDsKMTQ0NzQ6
IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHhhc19ub3Rfbm9kZShub2RlKSB8fCBu
b2RlLT5zaGlmdCksIDApKQoxNDQ3NDogICByZXR1cm4geGFzX2ZpbmRfbWFya2VkKHhhcywgbWF4
LCBtYXJrKTsKMTQ0NzQ6ICBvZmZzZXQgPSB4YXNfZmluZF9jaHVuayh4YXMsIHRydWUsIG1hcmsp
OwoxNDQ3NDogIHhhcy0+eGFfb2Zmc2V0ID0gb2Zmc2V0OwoxNDQ3NDogIHhhcy0+eGFfaW5kZXgg
PSAoeGFzLT54YV9pbmRleCAmIH4oKDFVTCA8PCAoMCA/IDQgOiA2KSkgLSAxKSkgKyBvZmZzZXQ7
CjE0NDc0OiAgaWYgKHhhcy0+eGFfaW5kZXggPiBtYXgpCjE0NDc0OiAgIHJldHVybiAoKHZvaWQg
KikwKTsKMTQ0NzQ6ICBpZiAob2Zmc2V0ID09ICgxVUwgPDwgKDAgPyA0IDogNikpKQoxNDQ3NDog
ICByZXR1cm4geGFzX2ZpbmRfbWFya2VkKHhhcywgbWF4LCBtYXJrKTsKMTQ0NzQ6ICByZXR1cm4g
eGFfZW50cnkoeGFzLT54YSwgbm9kZSwgb2Zmc2V0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBYQV9DSEVDS19T
Q0hFRCA9IDQwOTYsCjE0NDc0OiB9OwoxNDQ3NDogIyAxNzI0ICIuL2luY2x1ZGUvbGludXgveGFy
cmF5LmgiCjE0NDc0OiB2b2lkICpfX3hhc19uZXh0KHN0cnVjdCB4YV9zdGF0ZSAqKTsKMTQ0NzQ6
IHZvaWQgKl9feGFzX3ByZXYoc3RydWN0IHhhX3N0YXRlICopOwoxNDQ3NDogIyAxNzQzICIuL2lu
Y2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICp4YXNfcHJldihzdHJ1Y3QgeGFfc3Rh
dGUgKnhhcykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgeGFfbm9kZSAqbm9kZSA9IHhhcy0+eGFf
bm9kZTsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHhhc19ub3Rfbm9k
ZShub2RlKSB8fCBub2RlLT5zaGlmdCB8fCB4YXMtPnhhX29mZnNldCA9PSAwKSwgMCkKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICkKMTQ0NzQ6ICAgcmV0dXJuIF9feGFzX3ByZXYoeGFz
KTsKMTQ0NzQ6IAoxNDQ3NDogIHhhcy0+eGFfaW5kZXgtLTsKMTQ0NzQ6ICB4YXMtPnhhX29mZnNl
dC0tOwoxNDQ3NDogIHJldHVybiB4YV9lbnRyeSh4YXMtPnhhLCBub2RlLCB4YXMtPnhhX29mZnNl
dCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE3NzIgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgKnhhc19uZXh0KHN0cnVjdCB4YV9zdGF0ZSAqeGFzKQoxNDQ3NDogewoxNDQ3NDog
IHN0cnVjdCB4YV9ub2RlICpub2RlID0geGFzLT54YV9ub2RlOwoxNDQ3NDogCjE0NDc0OiAgaWYg
KF9fYnVpbHRpbl9leHBlY3QoISEoeGFzX25vdF9ub2RlKG5vZGUpIHx8IG5vZGUtPnNoaWZ0IHx8
IHhhcy0+eGFfb2Zmc2V0ID09ICgoMVVMIDw8ICgwID8gNCA6IDYpKSAtIDEpKSwgMCkKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKMTQ0NzQ6ICAgcmV0dXJuIF9f
eGFzX25leHQoeGFzKTsKMTQ0NzQ6IAoxNDQ3NDogIHhhcy0+eGFfaW5kZXgrKzsKMTQ0NzQ6ICB4
YXMtPnhhX29mZnNldCsrOwoxNDQ3NDogIHJldHVybiB4YV9lbnRyeSh4YXMtPnhhLCBub2RlLCB4
YXMtPnhhX29mZnNldCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvbGludXgvcmFk
aXgtdHJlZS5oIiAyCjE0NDc0OiAjIDQzICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCByYWRpeF90cmVlX2lzX2ludGVybmFsX25vZGUodm9pZCAqcHRyKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAoKHVuc2lnbmVkIGxvbmcpcHRyICYgM1VMKSA9PQoxNDQ3NDogICAg
IDJVTDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzQgIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIHJhZGl4X3RyZWVfZW1wdHkoY29uc3Qgc3RydWN0IHhhcnJheSAqcm9vdCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcm9vdC0+eGFfaGVhZCA9PSAoKHZvaWQgKikwKTsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgOTQgIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCjE0NDc0OiBz
dHJ1Y3QgcmFkaXhfdHJlZV9pdGVyIHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGluZGV4OwoxNDQ3
NDogIHVuc2lnbmVkIGxvbmcgbmV4dF9pbmRleDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHRhZ3M7
CjE0NDc0OiAgc3RydWN0IHhhX25vZGUgKm5vZGU7CjE0NDc0OiB9OwoxNDQ3NDogIyAxNjUgIi4v
aW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICpyYWRpeF90cmVlX2RlcmVm
X3Nsb3Qodm9pZCAqKnNsb3QpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IHR5cGVvZigqKCpz
bG90KSkgKl9fX19fX19fcDEgPSAodHlwZW9mKCooKnNsb3QpKSAqKSh7IHVuaW9uIHsgdHlwZW9m
KCgqc2xvdCkpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9z
aXplKCYoKCpzbG90KSksIF9fdS5fX2MsIHNpemVvZigoKnNsb3QpKSk7IGVsc2UgX19yZWFkX29u
Y2Vfc2l6ZV9ub2NoZWNrKCYoKCpzbG90KSksIF9fdS5fX2MsIHNpemVvZigoKnNsb3QpKSk7IGRv
IHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBl
b2YoKigqc2xvdCkpICopKF9fX19fX19fcDEpKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE3OSAi
Li9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnJhZGl4X3RyZWVfZGVy
ZWZfc2xvdF9wcm90ZWN0ZWQodm9pZCAqKnNsb3QsCjE0NDc0OiAgICAgICAgc3BpbmxvY2tfdCAq
dHJlZWxvY2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGRvIHsgfSB3aGlsZSAoMCk7IDsg
KCh0eXBlb2YoKigqc2xvdCkpICopKCgqc2xvdCkpKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE5
MiAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCByYWRpeF90cmVlX2Rl
cmVmX3JldHJ5KHZvaWQgKmFyZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19idWlsdGluX2V4
cGVjdCghIShyYWRpeF90cmVlX2lzX2ludGVybmFsX25vZGUoYXJnKSksIDApOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50
IHJhZGl4X3RyZWVfZXhjZXB0aW9uKHZvaWQgKmFyZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
X19idWlsdGluX2V4cGVjdCghISgodW5zaWduZWQgbG9uZylhcmcgJiAzVUwpLCAwKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogaW50IHJhZGl4X3RyZWVfaW5zZXJ0KHN0cnVjdCB4YXJyYXkgKiwg
dW5zaWduZWQgbG9uZyBpbmRleCwKMTQ0NzQ6ICAgIHZvaWQgKik7CjE0NDc0OiB2b2lkICpfX3Jh
ZGl4X3RyZWVfbG9va3VwKGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwgdW5zaWduZWQgbG9uZyBpbmRl
eCwKMTQ0NzQ6ICAgICAgc3RydWN0IHhhX25vZGUgKipub2RlcCwgdm9pZCAqKipzbG90cCk7CjE0
NDc0OiB2b2lkICpyYWRpeF90cmVlX2xvb2t1cChjb25zdCBzdHJ1Y3QgeGFycmF5ICosIHVuc2ln
bmVkIGxvbmcpOwoxNDQ3NDogdm9pZCAqKnJhZGl4X3RyZWVfbG9va3VwX3Nsb3QoY29uc3Qgc3Ry
dWN0IHhhcnJheSAqLAoxNDQ3NDogICAgICB1bnNpZ25lZCBsb25nIGluZGV4KTsKMTQ0NzQ6IHZv
aWQgX19yYWRpeF90cmVlX3JlcGxhY2Uoc3RydWN0IHhhcnJheSAqLCBzdHJ1Y3QgeGFfbm9kZSAq
LAoxNDQ3NDogICAgICB2b2lkICoqc2xvdCwgdm9pZCAqZW50cnkpOwoxNDQ3NDogdm9pZCByYWRp
eF90cmVlX2l0ZXJfcmVwbGFjZShzdHJ1Y3QgeGFycmF5ICosCjE0NDc0OiAgIGNvbnN0IHN0cnVj
dCByYWRpeF90cmVlX2l0ZXIgKiwgdm9pZCAqKnNsb3QsIHZvaWQgKmVudHJ5KTsKMTQ0NzQ6IHZv
aWQgcmFkaXhfdHJlZV9yZXBsYWNlX3Nsb3Qoc3RydWN0IHhhcnJheSAqLAoxNDQ3NDogICAgICAg
ICB2b2lkICoqc2xvdCwgdm9pZCAqZW50cnkpOwoxNDQ3NDogdm9pZCByYWRpeF90cmVlX2l0ZXJf
ZGVsZXRlKHN0cnVjdCB4YXJyYXkgKiwKMTQ0NzQ6ICAgIHN0cnVjdCByYWRpeF90cmVlX2l0ZXIg
Kml0ZXIsIHZvaWQgKipzbG90KTsKMTQ0NzQ6IHZvaWQgKnJhZGl4X3RyZWVfZGVsZXRlX2l0ZW0o
c3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nLCB2b2lkICopOwoxNDQ3NDogdm9pZCAqcmFk
aXhfdHJlZV9kZWxldGUoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nKTsKMTQ0NzQ6IHVu
c2lnbmVkIGludCByYWRpeF90cmVlX2dhbmdfbG9va3VwKGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwK
MTQ0NzQ6ICAgIHZvaWQgKipyZXN1bHRzLCB1bnNpZ25lZCBsb25nIGZpcnN0X2luZGV4LAoxNDQ3
NDogICAgdW5zaWduZWQgaW50IG1heF9pdGVtcyk7CjE0NDc0OiBpbnQgcmFkaXhfdHJlZV9wcmVs
b2FkKGdmcF90IGdmcF9tYXNrKTsKMTQ0NzQ6IGludCByYWRpeF90cmVlX21heWJlX3ByZWxvYWQo
Z2ZwX3QgZ2ZwX21hc2spOwoxNDQ3NDogdm9pZCByYWRpeF90cmVlX2luaXQodm9pZCk7CjE0NDc0
OiB2b2lkICpyYWRpeF90cmVlX3RhZ19zZXQoc3RydWN0IHhhcnJheSAqLAoxNDQ3NDogICAgdW5z
aWduZWQgbG9uZyBpbmRleCwgdW5zaWduZWQgaW50IHRhZyk7CjE0NDc0OiB2b2lkICpyYWRpeF90
cmVlX3RhZ19jbGVhcihzdHJ1Y3QgeGFycmF5ICosCjE0NDc0OiAgICB1bnNpZ25lZCBsb25nIGlu
ZGV4LCB1bnNpZ25lZCBpbnQgdGFnKTsKMTQ0NzQ6IGludCByYWRpeF90cmVlX3RhZ19nZXQoY29u
c3Qgc3RydWN0IHhhcnJheSAqLAoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBpbmRleCwgdW5zaWdu
ZWQgaW50IHRhZyk7CjE0NDc0OiB2b2lkIHJhZGl4X3RyZWVfaXRlcl90YWdfY2xlYXIoc3RydWN0
IHhhcnJheSAqLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgcmFkaXhfdHJlZV9pdGVyICppdGVyLCB1
bnNpZ25lZCBpbnQgdGFnKTsKMTQ0NzQ6IHVuc2lnbmVkIGludCByYWRpeF90cmVlX2dhbmdfbG9v
a3VwX3RhZyhjb25zdCBzdHJ1Y3QgeGFycmF5ICosCjE0NDc0OiAgIHZvaWQgKipyZXN1bHRzLCB1
bnNpZ25lZCBsb25nIGZpcnN0X2luZGV4LAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbWF4X2l0ZW1z
LCB1bnNpZ25lZCBpbnQgdGFnKTsKMTQ0NzQ6IHVuc2lnbmVkIGludCByYWRpeF90cmVlX2dhbmdf
bG9va3VwX3RhZ19zbG90KGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwKMTQ0NzQ6ICAgdm9pZCAqKipy
ZXN1bHRzLCB1bnNpZ25lZCBsb25nIGZpcnN0X2luZGV4LAoxNDQ3NDogICB1bnNpZ25lZCBpbnQg
bWF4X2l0ZW1zLCB1bnNpZ25lZCBpbnQgdGFnKTsKMTQ0NzQ6IGludCByYWRpeF90cmVlX3RhZ2dl
ZChjb25zdCBzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGludCB0YWcpOwoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHJhZGl4X3RyZWVfcHJlbG9hZF9lbmQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2Fz
bV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiB2b2lkICoqaWRyX2dldF9mcmVlKHN0cnVjdCB4YXJyYXkgKnJvb3QsCjE0NDc0OiAgICAgICAg
ICBzdHJ1Y3QgcmFkaXhfdHJlZV9pdGVyICppdGVyLCBnZnBfdCBnZnAsCjE0NDc0OiAgICAgICAg
ICB1bnNpZ25lZCBsb25nIG1heCk7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIFJBRElY
X1RSRUVfSVRFUl9UQUdfTUFTSyA9IDB4MGYsCjE0NDc0OiAgUkFESVhfVFJFRV9JVEVSX1RBR0dF
RCA9IDB4MTAsCjE0NDc0OiAgUkFESVhfVFJFRV9JVEVSX0NPTlRJRyA9IDB4MjAsCjE0NDc0OiB9
OwoxNDQ3NDogIyAyNjggIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgKioKMTQ0NzQ6IHJhZGl4X3RyZWVf
aXRlcl9pbml0KHN0cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0ZXIsIHVuc2lnbmVkIGxvbmcgc3Rh
cnQpCjE0NDc0OiB7CjE0NDc0OiAjIDI3OSAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIK
MTQ0NzQ6ICBpdGVyLT5pbmRleCA9IDA7CjE0NDc0OiAgaXRlci0+bmV4dF9pbmRleCA9IHN0YXJ0
OwoxNDQ3NDogIHJldHVybiAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjk3ICIuL2lu
Y2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgoxNDQ3NDogdm9pZCAqKnJhZGl4X3RyZWVfbmV4dF9j
aHVuayhjb25zdCBzdHJ1Y3QgeGFycmF5ICosCjE0NDc0OiAgICAgICAgIHN0cnVjdCByYWRpeF90
cmVlX2l0ZXIgKml0ZXIsIHVuc2lnbmVkIGZsYWdzKTsKMTQ0NzQ6ICMgMzEwICIuL2luY2x1ZGUv
bGludXgvcmFkaXgtdHJlZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqKgoxNDQ3NDogcmFkaXhfdHJlZV9pdGVy
X2xvb2t1cChjb25zdCBzdHJ1Y3QgeGFycmF5ICpyb290LAoxNDQ3NDogICAgc3RydWN0IHJhZGl4
X3RyZWVfaXRlciAqaXRlciwgdW5zaWduZWQgbG9uZyBpbmRleCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
YWRpeF90cmVlX2l0ZXJfaW5pdChpdGVyLCBpbmRleCk7CjE0NDc0OiAgcmV0dXJuIHJhZGl4X3Ry
ZWVfbmV4dF9jaHVuayhyb290LCBpdGVyLCBSQURJWF9UUkVFX0lURVJfQ09OVElHKTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMzI3ICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpCjE0NDc0OiB2b2lkICoqcmFkaXhf
dHJlZV9pdGVyX3JldHJ5KHN0cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0ZXIpCjE0NDc0OiB7CjE0
NDc0OiAgaXRlci0+bmV4dF9pbmRleCA9IGl0ZXItPmluZGV4OwoxNDQ3NDogIGl0ZXItPnRhZ3Mg
PSAwOwoxNDQ3NDogIHJldHVybiAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dW5zaWduZWQgbG9uZwoxNDQ3NDogX19yYWRpeF90cmVlX2l0ZXJfYWRkKHN0cnVjdCByYWRpeF90
cmVlX2l0ZXIgKml0ZXIsIHVuc2lnbmVkIGxvbmcgc2xvdHMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGl0ZXItPmluZGV4ICsgc2xvdHM7CjE0NDc0OiB9CjE0NDc0OiAjIDM1MSAiLi9pbmNsdWRl
L2xpbnV4L3JhZGl4LXRyZWUuaCIKMTQ0NzQ6IHZvaWQgKipfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkgcmFkaXhfdHJlZV9pdGVyX3Jlc3VtZSh2b2lkICoqc2xvdCwKMTQ0
NzQ6ICAgICAgc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlcik7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgbG9uZwoxNDQ3NDogcmFkaXhfdHJlZV9jaHVua19zaXpl
KHN0cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0ZXIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGl0
ZXItPm5leHRfaW5kZXggLSBpdGVyLT5pbmRleDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzg1ICIuL2lu
Y2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkICoqcmFkaXhfdHJlZV9uZXh0X3Nsb3Qodm9pZCAqKnNsb3QsCjE0NDc0
OiAgICAgc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlciwgdW5zaWduZWQgZmxhZ3MpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKGZsYWdzICYgUkFESVhfVFJFRV9JVEVSX1RBR0dFRCkgewoxNDQ3NDog
ICBpdGVyLT50YWdzID4+PSAxOwoxNDQ3NDogICBpZiAoX19idWlsdGluX2V4cGVjdCghISghaXRl
ci0+dGFncyksIDApKQoxNDQ3NDogICAgcmV0dXJuICgodm9pZCAqKTApOwoxNDQ3NDogICBpZiAo
X19idWlsdGluX2V4cGVjdCghIShpdGVyLT50YWdzICYgMXVsKSwgMSkpIHsKMTQ0NzQ6ICAgIGl0
ZXItPmluZGV4ID0gX19yYWRpeF90cmVlX2l0ZXJfYWRkKGl0ZXIsIDEpOwoxNDQ3NDogICAgc2xv
dCsrOwoxNDQ3NDogICAgZ290byBmb3VuZDsKMTQ0NzQ6ICAgfQoxNDQ3NDogICBpZiAoIShmbGFn
cyAmIFJBRElYX1RSRUVfSVRFUl9DT05USUcpKSB7CjE0NDc0OiAgICB1bnNpZ25lZCBvZmZzZXQg
PSBfX2ZmcyhpdGVyLT50YWdzKTsKMTQ0NzQ6IAoxNDQ3NDogICAgaXRlci0+dGFncyA+Pj0gb2Zm
c2V0Kys7CjE0NDc0OiAgICBpdGVyLT5pbmRleCA9IF9fcmFkaXhfdHJlZV9pdGVyX2FkZChpdGVy
LCBvZmZzZXQpOwoxNDQ3NDogICAgc2xvdCArPSBvZmZzZXQ7CjE0NDc0OiAgICBnb3RvIGZvdW5k
OwoxNDQ3NDogICB9CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6ICAgbG9uZyBjb3VudCA9IHJhZGl4
X3RyZWVfY2h1bmtfc2l6ZShpdGVyKTsKMTQ0NzQ6IAoxNDQ3NDogICB3aGlsZSAoLS1jb3VudCA+
IDApIHsKMTQ0NzQ6ICAgIHNsb3QrKzsKMTQ0NzQ6ICAgIGl0ZXItPmluZGV4ID0gX19yYWRpeF90
cmVlX2l0ZXJfYWRkKGl0ZXIsIDEpOwoxNDQ3NDogCjE0NDc0OiAgICBpZiAoX19idWlsdGluX2V4
cGVjdCghISgqc2xvdCksIDEpKQoxNDQ3NDogICAgIGdvdG8gZm91bmQ7CjE0NDc0OiAgICBpZiAo
ZmxhZ3MgJiBSQURJWF9UUkVFX0lURVJfQ09OVElHKSB7CjE0NDc0OiAKMTQ0NzQ6ICAgICBpdGVy
LT5uZXh0X2luZGV4ID0gMDsKMTQ0NzQ6ICAgICBicmVhazsKMTQ0NzQ6ICAgIH0KMTQ0NzQ6ICAg
fQoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiAKMTQ0NzQ6ICBm
b3VuZDoKMTQ0NzQ6ICByZXR1cm4gc2xvdDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTYgIi4vaW5jbHVk
ZS9saW51eC9mcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5j
bHVkZS9saW51eC9waWQuaCIgMQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgvcGlkLmgiCjE0
NDc0OiBlbnVtIHBpZF90eXBlCjE0NDc0OiB7CjE0NDc0OiAgUElEVFlQRV9QSUQsCjE0NDc0OiAg
UElEVFlQRV9UR0lELAoxNDQ3NDogIFBJRFRZUEVfUEdJRCwKMTQ0NzQ6ICBQSURUWVBFX1NJRCwK
MTQ0NzQ6ICBQSURUWVBFX01BWCwKMTQ0NzQ6IH07CjE0NDc0OiAjIDU0ICIuL2luY2x1ZGUvbGlu
dXgvcGlkLmgiCjE0NDc0OiBzdHJ1Y3QgdXBpZCB7CjE0NDc0OiAgaW50IG5yOwoxNDQ3NDogIHN0
cnVjdCBwaWRfbmFtZXNwYWNlICpuczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBw
aWQKMTQ0NzQ6IHsKMTQ0NzQ6ICByZWZjb3VudF90IGNvdW50OwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBsZXZlbDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBobGlzdF9oZWFkIHRhc2tzW1BJRFRZUEVf
TUFYXTsKMTQ0NzQ6IAoxNDQ3NDogIHdhaXRfcXVldWVfaGVhZF90IHdhaXRfcGlkZmQ7CjE0NDc0
OiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgcmN1OwoxNDQ3NDogIHN0cnVjdCB1cGlkIG51bWJlcnNb
MV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHBpZCBpbml0X3N0cnVj
dF9waWQ7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25z
IHBpZGZkX2ZvcHM7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmaWxlOwoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gc3RydWN0IHBpZCAqcGlkZmRfcGlkKGNvbnN0IHN0cnVjdCBmaWxlICpmaWxlKTsKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgc3RydWN0IHBpZCAqZ2V0X3BpZChzdHJ1Y3QgcGlkICpwaWQpCjE0NDc0OiB7
CjE0NDc0OiAgaWYgKHBpZCkKMTQ0NzQ6ICAgcmVmY291bnRfaW5jKCZwaWQtPmNvdW50KTsKMTQ0
NzQ6ICByZXR1cm4gcGlkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBwdXRf
cGlkKHN0cnVjdCBwaWQgKnBpZCk7CjE0NDc0OiBleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpw
aWRfdGFzayhzdHJ1Y3QgcGlkICpwaWQsIGVudW0gcGlkX3R5cGUpOwoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwaWRf
aGFzX3Rhc2soc3RydWN0IHBpZCAqcGlkLCBlbnVtIHBpZF90eXBlIHR5cGUpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICFobGlzdF9lbXB0eSgmcGlkLT50YXNrc1t0eXBlXSk7CjE0NDc0OiB9CjE0
NDc0OiBleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpnZXRfcGlkX3Rhc2soc3RydWN0IHBpZCAq
cGlkLCBlbnVtIHBpZF90eXBlKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwaWQgKmdl
dF90YXNrX3BpZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGVudW0gcGlkX3R5cGUgdHlwZSk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGF0dGFj
aF9waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBlbnVtIHBpZF90eXBlKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGRldGFjaF9waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBlbnVtIHBpZF90
eXBlKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNoYW5nZV9waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0
YXNrLCBlbnVtIHBpZF90eXBlLAoxNDQ3NDogICAgc3RydWN0IHBpZCAqcGlkKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIHRyYW5zZmVyX3BpZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm9sZCwgc3RydWN0IHRh
c2tfc3RydWN0ICpuZXcsCjE0NDc0OiAgICAgZW51bSBwaWRfdHlwZSk7CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBwaWRfbmFtZXNwYWNlOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwaWRfbmFtZXNwYWNl
IGluaXRfcGlkX25zOwoxNDQ3NDogIyAxMTggIi4vaW5jbHVkZS9saW51eC9waWQuaCIKMTQ0NzQ6
IGV4dGVybiBzdHJ1Y3QgcGlkICpmaW5kX3BpZF9ucyhpbnQgbnIsIHN0cnVjdCBwaWRfbmFtZXNw
YWNlICpucyk7CjE0NDc0OiBleHRlcm4gc3RydWN0IHBpZCAqZmluZF92cGlkKGludCBucik7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgcGlkICpm
aW5kX2dldF9waWQoaW50IG5yKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgcGlkICpmaW5kX2dlX3Bp
ZChpbnQgbnIsIHN0cnVjdCBwaWRfbmFtZXNwYWNlICopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
c3RydWN0IHBpZCAqYWxsb2NfcGlkKHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucywgcGlkX3QgKnNl
dF90aWQsCjE0NDc0OiAgICAgICAgIHNpemVfdCBzZXRfdGlkX3NpemUpOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgZnJlZV9waWQoc3RydWN0IHBpZCAqcGlkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRpc2Fi
bGVfcGlkX2FsbG9jYXRpb24oc3RydWN0IHBpZF9uYW1lc3BhY2UgKm5zKTsKMTQ0NzQ6ICMgMTQy
ICIuL2luY2x1ZGUvbGludXgvcGlkLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnNf
b2ZfcGlkKHN0cnVjdCBwaWQgKnBpZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgcGlkX25hbWVz
cGFjZSAqbnMgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6ICBpZiAocGlkKQoxNDQ3NDogICBucyA9IHBp
ZC0+bnVtYmVyc1twaWQtPmxldmVsXS5uczsKMTQ0NzQ6ICByZXR1cm4gbnM7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgaXNfY2hpbGRfcmVhcGVyKHN0cnVjdCBwaWQgKnBpZCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gcGlkLT5udW1iZXJzW3BpZC0+bGV2ZWxdLm5yID09IDE7CjE0NDc0OiB9CjE0NDc0
OiAjIDE3MiAiLi9pbmNsdWRlL2xpbnV4L3BpZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgcGlkX25yKHN0cnVj
dCBwaWQgKnBpZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBwaWRfdCBuciA9IDA7CjE0NDc0OiAgaWYgKHBp
ZCkKMTQ0NzQ6ICAgbnIgPSBwaWQtPm51bWJlcnNbMF0ubnI7CjE0NDc0OiAgcmV0dXJuIG5yOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBwaWRfdCBwaWRfbnJfbnMoc3RydWN0IHBpZCAqcGlkLCBz
dHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpOwoxNDQ3NDogcGlkX3QgcGlkX3ZucihzdHJ1Y3QgcGlk
ICpwaWQpOwoxNDQ3NDogIyAyMCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0
eS5oIiAxCjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgoxNDQ3NDog
IyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9jYXBhYmlsaXR5LmgiIDEKMTQ0NzQ6ICMgMzkgIi4v
aW5jbHVkZS91YXBpL2xpbnV4L2NhcGFiaWxpdHkuaCIKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF9f
dXNlcl9jYXBfaGVhZGVyX3N0cnVjdCB7CjE0NDc0OiAgX191MzIgdmVyc2lvbjsKMTQ0NzQ6ICBp
bnQgcGlkOwoxNDQ3NDogfSAqY2FwX3VzZXJfaGVhZGVyX3Q7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVk
ZWYgc3RydWN0IF9fdXNlcl9jYXBfZGF0YV9zdHJ1Y3QgewoxNDQ3NDogICAgICAgICBfX3UzMiBl
ZmZlY3RpdmU7CjE0NDc0OiAgICAgICAgIF9fdTMyIHBlcm1pdHRlZDsKMTQ0NzQ6ICAgICAgICAg
X191MzIgaW5oZXJpdGFibGU7CjE0NDc0OiB9ICpjYXBfdXNlcl9kYXRhX3Q7CjE0NDc0OiAjIDcy
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9jYXBhYmlsaXR5LmgiCjE0NDc0OiBzdHJ1Y3QgdmZzX2Nh
cF9kYXRhIHsKMTQ0NzQ6ICBfX2xlMzIgbWFnaWNfZXRjOwoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0
OiAgIF9fbGUzMiBwZXJtaXR0ZWQ7CjE0NDc0OiAgIF9fbGUzMiBpbmhlcml0YWJsZTsKMTQ0NzQ6
ICB9IGRhdGFbMl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgdmZzX25zX2NhcF9kYXRhIHsKMTQ0NzQ6ICBfX2xlMzIgbWFnaWNfZXRjOwox
NDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIF9fbGUzMiBwZXJtaXR0ZWQ7CjE0NDc0OiAgIF9fbGUz
MiBpbmhlcml0YWJsZTsKMTQ0NzQ6ICB9IGRhdGFbMl07CjE0NDc0OiAgX19sZTMyIHJvb3RpZDsK
MTQ0NzQ6IH07CjE0NDc0OiAjIDE3ICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIiAyCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBm
aWxlX2NhcHNfZW5hYmxlZDsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3Qga2VybmVsX2Nh
cF9zdHJ1Y3QgewoxNDQ3NDogIF9fdTMyIGNhcFsyXTsKMTQ0NzQ6IH0ga2VybmVsX2NhcF90Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjcHVfdmZzX2NhcF9kYXRhIHsKMTQ0NzQ6ICBf
X3UzMiBtYWdpY19ldGM7CjE0NDc0OiAga2VybmVsX2NhcF90IHBlcm1pdHRlZDsKMTQ0NzQ6ICBr
ZXJuZWxfY2FwX3QgaW5oZXJpdGFibGU7CjE0NDc0OiAga3VpZF90IHJvb3RpZDsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZp
bGU7CjE0NDc0OiBzdHJ1Y3QgaW5vZGU7CjE0NDc0OiBzdHJ1Y3QgZGVudHJ5OwoxNDQ3NDogc3Ry
dWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogc3RydWN0IHVzZXJfbmFtZXNwYWNlOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gY29uc3Qga2VybmVsX2NhcF90IF9fY2FwX2VtcHR5X3NldDsKMTQ0NzQ6IGV4
dGVybiBjb25zdCBrZXJuZWxfY2FwX3QgX19jYXBfaW5pdF9lZmZfc2V0OwoxNDQ3NDogIyAxMTgg
Ii4vaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrZXJuZWxfY2FwX3QgY2FwX2Nv
bWJpbmUoY29uc3Qga2VybmVsX2NhcF90IGEsCjE0NDc0OiAgICAgICAgICAgIGNvbnN0IGtlcm5l
bF9jYXBfdCBiKQoxNDQ3NDogewoxNDQ3NDogIGtlcm5lbF9jYXBfdCBkZXN0OwoxNDQ3NDogIGRv
IHsgdW5zaWduZWQgX19jYXBpOyBmb3IgKF9fY2FwaSA9IDA7IF9fY2FwaSA8IDI7ICsrX19jYXBp
KSB7IGRlc3QuY2FwW19fY2FwaV0gPSBhLmNhcFtfX2NhcGldIHwgYi5jYXBbX19jYXBpXTsgfSB9
IHdoaWxlICgwKTsKMTQ0NzQ6ICByZXR1cm4gZGVzdDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
a2VybmVsX2NhcF90IGNhcF9pbnRlcnNlY3QoY29uc3Qga2VybmVsX2NhcF90IGEsCjE0NDc0OiAg
ICAgICBjb25zdCBrZXJuZWxfY2FwX3QgYikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrZXJuZWxfY2FwX3Qg
ZGVzdDsKMTQ0NzQ6ICBkbyB7IHVuc2lnbmVkIF9fY2FwaTsgZm9yIChfX2NhcGkgPSAwOyBfX2Nh
cGkgPCAyOyArK19fY2FwaSkgeyBkZXN0LmNhcFtfX2NhcGldID0gYS5jYXBbX19jYXBpXSAmIGIu
Y2FwW19fY2FwaV07IH0gfSB3aGlsZSAoMCk7CjE0NDc0OiAgcmV0dXJuIGRlc3Q7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBfdCBjYXBfZHJvcChjb25zdCBrZXJuZWxfY2FwX3Qg
YSwKMTQ0NzQ6ICAgICAgICAgY29uc3Qga2VybmVsX2NhcF90IGRyb3ApCjE0NDc0OiB7CjE0NDc0
OiAga2VybmVsX2NhcF90IGRlc3Q7CjE0NDc0OiAgZG8geyB1bnNpZ25lZCBfX2NhcGk7IGZvciAo
X19jYXBpID0gMDsgX19jYXBpIDwgMjsgKytfX2NhcGkpIHsgZGVzdC5jYXBbX19jYXBpXSA9IGEu
Y2FwW19fY2FwaV0gJn4gZHJvcC5jYXBbX19jYXBpXTsgfSB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBy
ZXR1cm4gZGVzdDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga2VybmVsX2NhcF90IGNhcF9pbnZl
cnQoY29uc3Qga2VybmVsX2NhcF90IGMpCjE0NDc0OiB7CjE0NDc0OiAga2VybmVsX2NhcF90IGRl
c3Q7CjE0NDc0OiAgZG8geyB1bnNpZ25lZCBfX2NhcGk7IGZvciAoX19jYXBpID0gMDsgX19jYXBp
IDwgMjsgKytfX2NhcGkpIHsgZGVzdC5jYXBbX19jYXBpXSA9IH4gYy5jYXBbX19jYXBpXTsgfSB9
IHdoaWxlICgwKTsKMTQ0NzQ6ICByZXR1cm4gZGVzdDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBjYXBfaXNjbGVhcihjb25zdCBrZXJuZWxfY2FwX3QgYSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBfX2NhcGk7CjE0NDc0OiAgZm9yIChfX2NhcGkgPSAwOyBfX2NhcGkgPCAyOyArK19f
Y2FwaSkgewoxNDQ3NDogICBpZiAoYS5jYXBbX19jYXBpXSAhPSAwKQoxNDQ3NDogICAgcmV0dXJu
IGZhbHNlOwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MTY2ICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBjYXBfaXNzdWJz
ZXQoY29uc3Qga2VybmVsX2NhcF90IGEsIGNvbnN0IGtlcm5lbF9jYXBfdCBzZXQpCjE0NDc0OiB7
CjE0NDc0OiAga2VybmVsX2NhcF90IGRlc3Q7CjE0NDc0OiAgZGVzdCA9IGNhcF9kcm9wKGEsIHNl
dCk7CjE0NDc0OiAgcmV0dXJuIGNhcF9pc2NsZWFyKGRlc3QpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkga2VybmVsX2NhcF90IGNhcF9kcm9wX2ZzX3NldChjb25zdCBr
ZXJuZWxfY2FwX3QgYSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBjb25zdCBrZXJuZWxfY2FwX3QgX19jYXBf
ZnNfc2V0ID0gKChrZXJuZWxfY2FwX3Qpe3sgKCgxIDw8ICgoMCkgJiAzMSkpIHwgKDEgPDwgKCgy
NykgJiAzMSkpIHwgKDEgPDwgKCgxKSAmIDMxKSkgfCAoMSA8PCAoKDIpICYgMzEpKSB8ICgxIDw8
ICgoMykgJiAzMSkpIHwgKDEgPDwgKCg0KSAmIDMxKSkpIHwgKDEgPDwgKCg5KSAmIDMxKSksICgo
MSA8PCAoKDMyKSAmIDMxKSkpIH0gfSk7CjE0NDc0OiAgcmV0dXJuIGNhcF9kcm9wKGEsIF9fY2Fw
X2ZzX3NldCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBfdCBjYXBfcmFpc2Vf
ZnNfc2V0KGNvbnN0IGtlcm5lbF9jYXBfdCBhLAoxNDQ3NDogICAgICAgICAgY29uc3Qga2VybmVs
X2NhcF90IHBlcm1pdHRlZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBjb25zdCBrZXJuZWxfY2FwX3QgX19j
YXBfZnNfc2V0ID0gKChrZXJuZWxfY2FwX3Qpe3sgKCgxIDw8ICgoMCkgJiAzMSkpIHwgKDEgPDwg
KCgyNykgJiAzMSkpIHwgKDEgPDwgKCgxKSAmIDMxKSkgfCAoMSA8PCAoKDIpICYgMzEpKSB8ICgx
IDw8ICgoMykgJiAzMSkpIHwgKDEgPDwgKCg0KSAmIDMxKSkpIHwgKDEgPDwgKCg5KSAmIDMxKSks
ICgoMSA8PCAoKDMyKSAmIDMxKSkpIH0gfSk7CjE0NDc0OiAgcmV0dXJuIGNhcF9jb21iaW5lKGEs
CjE0NDc0OiAgICAgICBjYXBfaW50ZXJzZWN0KHBlcm1pdHRlZCwgX19jYXBfZnNfc2V0KSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBfdCBjYXBfZHJvcF9uZnNkX3NldChjb25z
dCBrZXJuZWxfY2FwX3QgYSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBjb25zdCBrZXJuZWxfY2FwX3QgX19j
YXBfZnNfc2V0ID0gKChrZXJuZWxfY2FwX3Qpe3sgKCgxIDw8ICgoMCkgJiAzMSkpIHwgKDEgPDwg
KCgyNykgJiAzMSkpIHwgKDEgPDwgKCgxKSAmIDMxKSkgfCAoMSA8PCAoKDIpICYgMzEpKSB8ICgx
IDw8ICgoMykgJiAzMSkpIHwgKDEgPDwgKCg0KSAmIDMxKSkpIHwgKDEgPDwgKCgyNCkgJiAzMSkp
LCAoKDEgPDwgKCgzMikgJiAzMSkpKSB9IH0pOwoxNDQ3NDogIHJldHVybiBjYXBfZHJvcChhLCBf
X2NhcF9mc19zZXQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrZXJuZWxfY2FwX3QgY2FwX3Jh
aXNlX25mc2Rfc2V0KGNvbnN0IGtlcm5lbF9jYXBfdCBhLAoxNDQ3NDogICAgICAgICAgICBjb25z
dCBrZXJuZWxfY2FwX3QgcGVybWl0dGVkKQoxNDQ3NDogewoxNDQ3NDogIGNvbnN0IGtlcm5lbF9j
YXBfdCBfX2NhcF9uZnNkX3NldCA9ICgoa2VybmVsX2NhcF90KXt7ICgoMSA8PCAoKDApICYgMzEp
KSB8ICgxIDw8ICgoMjcpICYgMzEpKSB8ICgxIDw8ICgoMSkgJiAzMSkpIHwgKDEgPDwgKCgyKSAm
IDMxKSkgfCAoMSA8PCAoKDMpICYgMzEpKSB8ICgxIDw8ICgoNCkgJiAzMSkpKSB8ICgxIDw8ICgo
MjQpICYgMzEpKSwgKCgxIDw8ICgoMzIpICYgMzEpKSkgfSB9KTsKMTQ0NzQ6ICByZXR1cm4gY2Fw
X2NvbWJpbmUoYSwKMTQ0NzQ6ICAgICAgIGNhcF9pbnRlcnNlY3QocGVybWl0dGVkLCBfX2NhcF9u
ZnNkX3NldCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBib29sIGhh
c19jYXBhYmlsaXR5KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwgaW50IGNhcCk7CjE0NDc0OiBleHRl
cm4gYm9vbCBoYXNfbnNfY2FwYWJpbGl0eShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQsCjE0NDc0OiAg
ICAgICAgICBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5zLCBpbnQgY2FwKTsKMTQ0NzQ6IGV4dGVy
biBib29sIGhhc19jYXBhYmlsaXR5X25vYXVkaXQoc3RydWN0IHRhc2tfc3RydWN0ICp0LCBpbnQg
Y2FwKTsKMTQ0NzQ6IGV4dGVybiBib29sIGhhc19uc19jYXBhYmlsaXR5X25vYXVkaXQoc3RydWN0
IHRhc2tfc3RydWN0ICp0LAoxNDQ3NDogICAgICAgICAgIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAq
bnMsIGludCBjYXApOwoxNDQ3NDogZXh0ZXJuIGJvb2wgY2FwYWJsZShpbnQgY2FwKTsKMTQ0NzQ6
IGV4dGVybiBib29sIG5zX2NhcGFibGUoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpucywgaW50IGNh
cCk7CjE0NDc0OiBleHRlcm4gYm9vbCBuc19jYXBhYmxlX25vYXVkaXQoc3RydWN0IHVzZXJfbmFt
ZXNwYWNlICpucywgaW50IGNhcCk7CjE0NDc0OiBleHRlcm4gYm9vbCBuc19jYXBhYmxlX3NldGlk
KHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsIGludCBjYXApOwoxNDQ3NDogIyAyNTAgIi4vaW5j
bHVkZS9saW51eC9jYXBhYmlsaXR5LmgiCjE0NDc0OiBleHRlcm4gYm9vbCBwcml2aWxlZ2VkX3dy
dF9pbm9kZV91aWRnaWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpucywgY29uc3Qgc3RydWN0IGlu
b2RlICppbm9kZSk7CjE0NDc0OiBleHRlcm4gYm9vbCBjYXBhYmxlX3dydF9pbm9kZV91aWRnaWQo
Y29uc3Qgc3RydWN0IGlub2RlICppbm9kZSwgaW50IGNhcCk7CjE0NDc0OiBleHRlcm4gYm9vbCBm
aWxlX25zX2NhcGFibGUoY29uc3Qgc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB1c2VyX25hbWVz
cGFjZSAqbnMsIGludCBjYXApOwoxNDQ3NDogZXh0ZXJuIGJvb2wgcHRyYWNlcl9jYXBhYmxlKHN0
cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5zKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGdldF92ZnNfY2Fwc19mcm9tX2Rpc2soY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgY3B1X3Zmc19jYXBfZGF0YSAqY3B1X2NhcHMp
OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGNhcF9jb252ZXJ0X25zY2FwKHN0cnVjdCBkZW50
cnkgKmRlbnRyeSwgdm9pZCAqKml2YWx1ZSwgc2l6ZV90IHNpemUpOwoxNDQ3NDogIyAyNSAiLi9p
bmNsdWRlL2xpbnV4L2ZzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3NlbWFwaG9y
ZS5oIiAxCjE0NDc0OiAjIDE1ICIuL2luY2x1ZGUvbGludXgvc2VtYXBob3JlLmgiCjE0NDc0OiBz
dHJ1Y3Qgc2VtYXBob3JlIHsKMTQ0NzQ6ICByYXdfc3BpbmxvY2tfdCBsb2NrOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBjb3VudDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIHdhaXRfbGlzdDsKMTQ0
NzQ6IH07CjE0NDc0OiAjIDMxICIuL2luY2x1ZGUvbGludXgvc2VtYXBob3JlLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHNlbWFfaW5pdChzdHJ1Y3Qgc2VtYXBob3JlICpzZW0sIGludCB2YWwpCjE0NDc0OiB7CjE0
NDc0OiAgc3RhdGljIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBfX2tleTsKMTQ0NzQ6ICAqc2VtID0g
KHN0cnVjdCBzZW1hcGhvcmUpIHsgLmxvY2sgPSAocmF3X3NwaW5sb2NrX3QpIHsgLnJhd19sb2Nr
ID0geyB7IC52YWwgPSB7ICgwKSB9IH0gfSwgfSwgLmNvdW50ID0gdmFsLCAud2FpdF9saXN0ID0g
eyAmKCgqc2VtKS53YWl0X2xpc3QpLCAmKCgqc2VtKS53YWl0X2xpc3QpIH0sIH07CjE0NDc0OiAg
ZG8geyAodm9pZCkoInNlbWFwaG9yZS0+bG9jayIpOyAodm9pZCkoJl9fa2V5KTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGRvd24oc3RydWN0IHNlbWFw
aG9yZSAqc2VtKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIGRvd25faW50ZXJydXB0aWJsZShzdHJ1Y3Qgc2VtYXBob3JlICpzZW0pOwox
NDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
ZG93bl9raWxsYWJsZShzdHJ1Y3Qgc2VtYXBob3JlICpzZW0pOwoxNDQ3NDogZXh0ZXJuIGludCBf
X2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZG93bl90cnlsb2NrKHN0cnVj
dCBzZW1hcGhvcmUgKnNlbSk7CjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fy
bl91bnVzZWRfcmVzdWx0X18pKSBkb3duX3RpbWVvdXQoc3RydWN0IHNlbWFwaG9yZSAqc2VtLCBs
b25nIGppZmZpZXMpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgdXAoc3RydWN0IHNlbWFwaG9yZSAqc2Vt
KTsKMTQ0NzQ6ICMgMjYgIi4vaW5jbHVkZS9saW51eC9mcy5oIiAyCjE0NDc0OiAjIDEgIi4vaW5j
bHVkZS9saW51eC9mY250bC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9mY250bC5oIiAxCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dl
bmVyYXRlZC91YXBpL2FzbS9mY250bC5oIiAxCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2Fz
bS1nZW5lcmljL2ZjbnRsLmgiIDEKMTQ0NzQ6ICMgMTU2ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2Vu
ZXJpYy9mY250bC5oIgoxNDQ3NDogc3RydWN0IGZfb3duZXJfZXggewoxNDQ3NDogIGludCB0eXBl
OwoxNDQ3NDogIF9fa2VybmVsX3BpZF90IHBpZDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDE5NiAiLi9p
bmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvZmNudGwuaCIKMTQ0NzQ6IHN0cnVjdCBmbG9jayB7CjE0
NDc0OiAgc2hvcnQgbF90eXBlOwoxNDQ3NDogIHNob3J0IGxfd2hlbmNlOwoxNDQ3NDogIF9fa2Vy
bmVsX29mZl90IGxfc3RhcnQ7CjE0NDc0OiAgX19rZXJuZWxfb2ZmX3QgbF9sZW47CjE0NDc0OiAg
X19rZXJuZWxfcGlkX3QgbF9waWQ7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmbG9j
azY0IHsKMTQ0NzQ6ICBzaG9ydCBsX3R5cGU7CjE0NDc0OiAgc2hvcnQgbF93aGVuY2U7CjE0NDc0
OiAgX19rZXJuZWxfbG9mZl90IGxfc3RhcnQ7CjE0NDc0OiAgX19rZXJuZWxfbG9mZl90IGxfbGVu
OwoxNDQ3NDogIF9fa2VybmVsX3BpZF90IGxfcGlkOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDog
IyAyICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2ZjbnRsLmgiIDIKMTQ0
NzQ6ICMgNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvZmNudGwuaCIgMgoxNDQ3NDogIyAxICIuL2lu
Y2x1ZGUvdWFwaS9saW51eC9vcGVuYXQyLmgiIDEKMTQ0NzQ6ICMgMTkgIi4vaW5jbHVkZS91YXBp
L2xpbnV4L29wZW5hdDIuaCIKMTQ0NzQ6IHN0cnVjdCBvcGVuX2hvdyB7CjE0NDc0OiAgX191NjQg
ZmxhZ3M7CjE0NDc0OiAgX191NjQgbW9kZTsKMTQ0NzQ6ICBfX3U2NCByZXNvbHZlOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgNyAiLi9pbmNsdWRlL3VhcGkvbGludXgvZmNudGwuaCIgMgoxNDQ3NDogIyA3
ICIuL2luY2x1ZGUvbGludXgvZmNudGwuaCIgMgoxNDQ3NDogIyAyNyAiLi9pbmNsdWRlL2xpbnV4
L2ZzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZmllbWFwLmgiIDEKMTQ0
NzQ6ICMgMTcgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oIgoxNDQ3NDogc3RydWN0IGZp
ZW1hcF9leHRlbnQgewoxNDQ3NDogIF9fdTY0IGZlX2xvZ2ljYWw7CjE0NDc0OiAKMTQ0NzQ6ICBf
X3U2NCBmZV9waHlzaWNhbDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTY0IGZlX2xlbmd0aDsKMTQ0NzQ6
ICBfX3U2NCBmZV9yZXNlcnZlZDY0WzJdOwoxNDQ3NDogIF9fdTMyIGZlX2ZsYWdzOwoxNDQ3NDog
IF9fdTMyIGZlX3Jlc2VydmVkWzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZp
ZW1hcCB7CjE0NDc0OiAgX191NjQgZm1fc3RhcnQ7CjE0NDc0OiAKMTQ0NzQ6ICBfX3U2NCBmbV9s
ZW5ndGg7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBmbV9mbGFnczsKMTQ0NzQ6ICBfX3UzMiBmbV9t
YXBwZWRfZXh0ZW50czsKMTQ0NzQ6ICBfX3UzMiBmbV9leHRlbnRfY291bnQ7CjE0NDc0OiAgX191
MzIgZm1fcmVzZXJ2ZWQ7CjE0NDc0OiAgc3RydWN0IGZpZW1hcF9leHRlbnQgZm1fZXh0ZW50c1sw
XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvbWlncmF0ZV9tb2Rl
LmgiIDEKMTQ0NzQ6ICMgMTUgIi4vaW5jbHVkZS9saW51eC9taWdyYXRlX21vZGUuaCIKMTQ0NzQ6
IGVudW0gbWlncmF0ZV9tb2RlIHsKMTQ0NzQ6ICBNSUdSQVRFX0FTWU5DLAoxNDQ3NDogIE1JR1JB
VEVfU1lOQ19MSUdIVCwKMTQ0NzQ6ICBNSUdSQVRFX1NZTkMsCjE0NDc0OiAgTUlHUkFURV9TWU5D
X05PX0NPUFksCjE0NDc0OiB9OwoxNDQ3NDogIyAzMiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcndzZW0u
aCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9yY3V3YWl0LmgiIDEKMTQ0NzQ6ICMgMTUg
Ii4vaW5jbHVkZS9saW51eC9yY3V3YWl0LmgiCjE0NDc0OiBzdHJ1Y3QgcmN1d2FpdCB7CjE0NDc0
OiAgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByY3V3YWl0X2luaXQoc3RydWN0IHJjdXdhaXQgKncp
CjE0NDc0OiB7CjE0NDc0OiAgdy0+dGFzayA9ICgodm9pZCAqKTApOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCByY3V3YWl0X3dha2VfdXAoc3RydWN0IHJjdXdhaXQgKncpOwox
NDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LXJ3c2VtLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3JjdV9zeW5jLmgiIDEKMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51
eC9yY3Vfc3luYy5oIgoxNDQ3NDogc3RydWN0IHJjdV9zeW5jIHsKMTQ0NzQ6ICBpbnQgZ3Bfc3Rh
dGU7CjE0NDc0OiAgaW50IGdwX2NvdW50OwoxNDQ3NDogIHdhaXRfcXVldWVfaGVhZF90IGdwX3dh
aXQ7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCBjYl9oZWFkOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMzIgIi4vaW5jbHVkZS9saW51eC9yY3Vfc3luYy5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBy
Y3Vfc3luY19pc19pZGxlKHN0cnVjdCByY3Vfc3luYyAqcnNwKQoxNDQ3NDogewoxNDQ3NDogIGRv
IHsgfSB3aGlsZSAoMCkKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDsKMTQ0NzQ6ICByZXR1cm4gISh7IHVuaW9uIHsgdHlwZW9mKHJzcC0+Z3Bfc3RhdGUp
IF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYocnNw
LT5ncF9zdGF0ZSksIF9fdS5fX2MsIHNpemVvZihyc3AtPmdwX3N0YXRlKSk7IGVsc2UgX19yZWFk
X29uY2Vfc2l6ZV9ub2NoZWNrKCYocnNwLT5ncF9zdGF0ZSksIF9fdS5fX2MsIHNpemVvZihyc3At
PmdwX3N0YXRlKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHJjdV9zeW5jX2luaXQoc3RydWN0IHJjdV9zeW5jICop
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgcmN1X3N5bmNfZW50ZXJfc3RhcnQoc3RydWN0IHJjdV9zeW5j
ICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgcmN1X3N5bmNfZW50ZXIoc3RydWN0IHJjdV9zeW5jICop
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgcmN1X3N5bmNfZXhpdChzdHJ1Y3QgcmN1X3N5bmMgKik7CjE0
NDc0OiBleHRlcm4gdm9pZCByY3Vfc3luY19kdG9yKHN0cnVjdCByY3Vfc3luYyAqKTsKMTQ0NzQ6
ICMgMTAgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcndzZW0uaCIgMgoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlIHsKMTQ0NzQ6ICBzdHJ1Y3QgcmN1X3N5
bmMgcnNzOwoxNDQ3NDogIHVuc2lnbmVkIGludCAqcmVhZF9jb3VudDsKMTQ0NzQ6ICBzdHJ1Y3Qg
cndfc2VtYXBob3JlIHJ3X3NlbTsKMTQ0NzQ6ICBzdHJ1Y3QgcmN1d2FpdCB3cml0ZXI7CjE0NDc0
OiAgaW50IHJlYWRlcnNfYmxvY2s7CjE0NDc0OiB9OwoxNDQ3NDogIyAzMyAiLi9pbmNsdWRlL2xp
bnV4L3BlcmNwdS1yd3NlbS5oIgoxNDQ3NDogZXh0ZXJuIGludCBfX3BlcmNwdV9kb3duX3JlYWQo
c3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKiwgaW50KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9f
cGVyY3B1X3VwX3JlYWQoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKik7CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgcGVyY3B1X2Rvd25fcmVhZChzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFwaG9yZSAqc2Vt
KQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8geyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0
NDc0OiAKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0NDc0OiAgX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICMgNTEgIi4vaW5jbHVkZS9saW51
eC9wZXJjcHUtcndzZW0uaCIKMTQ0NzQ6ICAoeyBfX3RoaXNfY3B1X3ByZWVtcHRfY2hlY2soImFk
ZCIpOyBkbyB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJigqc2Vt
LT5yZWFkX2NvdW50KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdo
aWxlICgwKTsgc3dpdGNoKHNpemVvZigqc2VtLT5yZWFkX2NvdW50KSkgeyBjYXNlIDE6IGRvIHsg
dHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFv
X0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAt
MSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9f
ID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRfY291
bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9f
ID09IC0xKSBhc20gKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJl
YWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBj
YXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBh
c20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQp
KSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNl
bS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2Ug
YXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJl
YWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRk
cSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDog
InJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0t
PnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2Nv
bnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAwOyBp
ZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9fdG1w
X187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRfY291bnQpKSkgeyBjYXNlIDE6IGlmIChw
YW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpz
ZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNiICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNt
ICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3Vu
dCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9
PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJp
IiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
KCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7
IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19U
X18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNxICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEpKSk7
IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFr
OyBjYXNlIDQ6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9f
OyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9
PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190
bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2Yo
KCpzZW0tPnJlYWRfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJp
bmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVs
c2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInFpIiAoKHBhb19UX18p
KDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpz
ZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJy
ZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09
IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNl
IDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20g
KCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7
IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2Jh
ZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRl
ZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18g
PSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8g
KGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEp
OyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRfY291bnQpKSkg
eyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0x
KSBhc20gKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291
bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6
IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJk
ZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVs
c2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9f
SURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0t
PnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgi
YWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
IDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAx
KSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJlIiAo
KHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0g
d2hpbGUgKDApO2JyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7YnJl
YWs7IH0gfSB3aGlsZSAoMCk7IH0pOwoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFy
Y3Vfc3luY19pc19pZGxlKCZzZW0tPnJzcykpLCAwKSkKMTQ0NzQ6ICAgX19wZXJjcHVfZG93bl9y
ZWFkKHNlbSwgZmFsc2UpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IHBlcmNwdV9kb3duX3JlYWRfdHJ5bG9jayhzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFw
aG9yZSAqc2VtKQoxNDQ3NDogewoxNDQ3NDogIGludCByZXQgPSAxOwoxNDQ3NDogCjE0NDc0OiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICAoeyBfX3RoaXNfY3B1X3ByZWVtcHRfY2hlY2soImFkZCIpOyBkbyB7IGRv
IHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJigqc2VtLT5yZWFkX2NvdW50
KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsgc3dp
dGNoKHNpemVvZigqc2VtLT5yZWFkX2NvdW50KSkgeyBjYXNlIDE6IGRvIHsgdHlwZWRlZiB0eXBl
b2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19i
dWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCko
MSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9p
ZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRfY291bnQpKSkgeyBjYXNl
IDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20g
KCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7
IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChw
YW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpz
ZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNt
ICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3Vu
dCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9
PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJp
IiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
KCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7
IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJlIiAoKHBhb19U
X18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUg
KDApO2JyZWFrOyBjYXNlIDI6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQp
KSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkg
JiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9f
VF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNo
IChzaXplb2YoKCpzZW0tPnJlYWRfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAx
KSBhc20gKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNiICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInFpIiAo
KHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJp
bmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVs
c2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18p
KDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpz
ZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJy
ZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09
IC0xKSBhc20gKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZh
dWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6IGRv
IHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQg
cGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9
PSAtMSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3Rt
cF9fID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRf
Y291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19J
RF9fID09IC0xKSBhc20gKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0t
PnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFr
OyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0x
KSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291
bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6
IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJk
ZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVs
c2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9f
SURfXyA9PSAxKSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0t
PnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgi
YWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
IDogInJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6
ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpz
ZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGlu
X2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAw
OyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9f
dG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRfY291bnQpKSkgeyBjYXNlIDE6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNi
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2Ug
YXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJl
YWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRk
dyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDog
InJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBh
c20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQp
KSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBh
b19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNx
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2Ug
aWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEp
KSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2Jy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7YnJlYWs7IH0gfSB3aGls
ZSAoMCk7IH0pOwoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFyY3Vfc3luY19pc19p
ZGxlKCZzZW0tPnJzcykpLCAwKSkKMTQ0NzQ6ICAgcmV0ID0gX19wZXJjcHVfZG93bl9yZWFkKHNl
bSwgdHJ1ZSk7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaWYgKHJldCkK
MTQ0NzQ6ICAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiByZXQ7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3VwX3JlYWQoc3RydWN0IHBlcmNwdV9y
d19zZW1hcGhvcmUgKnNlbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygi
IjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1
aWx0aW5fZXhwZWN0KCEhKHJjdV9zeW5jX2lzX2lkbGUoJnNlbS0+cnNzKSksIDEpKQoxNDQ3NDog
ICAoeyBfX3RoaXNfY3B1X3ByZWVtcHRfY2hlY2soImFkZCIpOyBkbyB7IGRvIHsgY29uc3Qgdm9p
ZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJigqc2VtLT5yZWFkX2NvdW50KSkgKyAwKSkoKHZv
aWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZigq
c2VtLT5yZWFkX2NvdW50KSkgeyBjYXNlIDE6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJl
YWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0
YW50X3AoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSAmJiAoKC0odHlwZW9mKCpzZW0t
PnJlYWRfY291bnQpKSgxKSkgPT0gMSB8fCAoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEp
KSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSA6IDA7IGlm
ICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnNlbS0+cmVh
ZF9jb3VudCkpKDEpKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqc2VtLT5y
ZWFkX2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jYiAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChw
YW9fSURfXyA9PSAtMSkgYXNtICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
c2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZGIgJTEsICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJxaSIgKChwYW9fVF9fKSgtKHR5cGVv
Zigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9
PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJp
IiAoKHBhb19UX18pKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkpKTsgYnJlYWs7IGNh
c2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
KTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2Vt
LT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3Vu
dCkpKDEpKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jcSAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlm
IChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKSgtKHR5
cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJj
cHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRvIHsgdHlwZWRlZiB0eXBl
b2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19i
dWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSAmJiAoKC0o
dHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgPT0gMSB8fCAoLSh0eXBlb2YoKnNlbS0+cmVh
ZF9jb3VudCkpKDEpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkp
KDEpKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBl
b2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6
ZW9mKCgqc2VtLT5yZWFkX2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNt
ICgiaW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZGIgJTEsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJxaSIgKChwYW9f
VF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBjYXNlIDI6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2Ug
YXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkp
KTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lE
X18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnNl
bS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lEX18gPT0gMSkg
YXNtICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50
KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjcSAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZHEgJTEsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJyZSIgKChw
YW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6IGRvIHsg
dHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFv
X0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkp
KDEpKSAmJiAoKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgPT0gMSB8fCAoLSh0eXBl
b2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnNlbS0+
cmVhZF9jb3VudCkpKDEpKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1w
X18gPSAoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKTsgKHZvaWQpcGFvX3RtcF9fOyB9
IHN3aXRjaCAoc2l6ZW9mKCgqc2VtLT5yZWFkX2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lE
X18gPT0gMSkgYXNtICgiaW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5y
ZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjYiAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFk
ZGIgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6
ICJxaSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFr
OyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0x
KSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291
bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpzZW0tPnJlYWRf
Y291bnQpKSgxKSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImlu
Y2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXyko
LSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFv
X0lEX18gPT0gMSkgYXNtICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2Vt
LT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjcSAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAo
ImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQp
KSA6ICJyZSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBj
YXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBj
b25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnNlbS0+
cmVhZF9jb3VudCkpKDEpKSAmJiAoKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgPT0g
MSB8fCAoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSA9PSAtMSkpID8gKGludCkoLSh0
eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3Rt
cF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKTsgKHZvaWQp
cGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqc2VtLT5yZWFkX2NvdW50KSkpIHsgY2FzZSAx
OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgi
ZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBl
bHNlIGFzbSAoImFkZGIgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJl
YWRfY291bnQpKSA6ICJxaSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSko
MSkpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpz
ZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9m
KCpzZW0tPnJlYWRfY291bnQpKSgxKSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09
IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUx
LCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmki
ICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2Fz
ZSA4OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNt
ICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkp
OyBlbHNlIGFzbSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0t
PnJlYWRfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50
KSkoMSkpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUg
KDApO2JyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7YnJlYWs7IH0g
fSB3aGlsZSAoMCk7IH0pOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgX19wZXJjcHVfdXBfcmVhZChz
ZW0pOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0
OiAKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBwZXJjcHVfZG93bl93cml0ZShzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFwaG9yZSAqKTsK
MTQ0NzQ6IGV4dGVybiB2b2lkIHBlcmNwdV91cF93cml0ZShzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFw
aG9yZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBfX3BlcmNwdV9pbml0X3J3c2VtKHN0
cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlICosCjE0NDc0OiAgICAgY29uc3QgY2hhciAqLCBzdHJ1
Y3QgbG9ja19jbGFzc19rZXkgKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHBlcmNwdV9m
cmVlX3J3c2VtKHN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlICopOwoxNDQ3NDogIyAxMTggIi4v
aW5jbHVkZS9saW51eC9wZXJjcHUtcndzZW0uaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3J3c2VtX3Jl
bGVhc2Uoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKnNlbSwKMTQ0NzQ6ICAgICAgYm9vbCBy
ZWFkLCB1bnNpZ25lZCBsb25nIGlwKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7
CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoIXJlYWQpCjE0NDc0OiAgIGF0b21pY19sb25nX3NldCgmc2Vt
LT5yd19zZW0ub3duZXIsICgtMkwpKTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHBlcmNwdV9yd3NlbV9hY3F1aXJlKHN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlICpzZW0s
CjE0NDc0OiAgICAgIGJvb2wgcmVhZCwgdW5zaWduZWQgbG9uZyBpcCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0NDc0OiAgaWYgKCFyZWFkKQoxNDQ3NDogICBh
dG9taWNfbG9uZ19zZXQoJnNlbS0+cndfc2VtLm93bmVyLCAobG9uZylnZXRfY3VycmVudCgpKTsK
MTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogIyAzNSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKMTQ0
NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvZGVsYXllZF9jYWxsLmgiIDEKMTQ0NzQ6
ICMgMTAgIi4vaW5jbHVkZS9saW51eC9kZWxheWVkX2NhbGwuaCIKMTQ0NzQ6IHN0cnVjdCBkZWxh
eWVkX2NhbGwgewoxNDQ3NDogIHZvaWQgKCpmbikodm9pZCAqKTsKMTQ0NzQ6ICB2b2lkICphcmc7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNl
dF9kZWxheWVkX2NhbGwoc3RydWN0IGRlbGF5ZWRfY2FsbCAqY2FsbCwKMTQ0NzQ6ICAgdm9pZCAo
KmZuKSh2b2lkICopLCB2b2lkICphcmcpCjE0NDc0OiB7CjE0NDc0OiAgY2FsbC0+Zm4gPSBmbjsK
MTQ0NzQ6ICBjYWxsLT5hcmcgPSBhcmc7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZG9f
ZGVsYXllZF9jYWxsKHN0cnVjdCBkZWxheWVkX2NhbGwgKmNhbGwpCjE0NDc0OiB7CjE0NDc0OiAg
aWYgKGNhbGwtPmZuKQoxNDQ3NDogICBjYWxsLT5mbihjYWxsLT5hcmcpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGNsZWFyX2RlbGF5ZWRfY2FsbChzdHJ1Y3QgZGVsYXllZF9jYWxsICpj
YWxsKQoxNDQ3NDogewoxNDQ3NDogIGNhbGwtPmZuID0gKCh2b2lkICopMCk7CjE0NDc0OiB9CjE0
NDc0OiAjIDM3ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUv
bGludXgvdXVpZC5oIiAxCjE0NDc0OiAjIDExICIuL2luY2x1ZGUvbGludXgvdXVpZC5oIgoxNDQ3
NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC91dWlkLmgiIDEKMTQ0NzQ6ICMgMjMgIi4vaW5j
bHVkZS91YXBpL2xpbnV4L3V1aWQuaCIKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHsKMTQ0NzQ6ICBf
X3U4IGJbMTZdOwoxNDQ3NDogfSBndWlkX3Q7CjE0NDc0OiAjIDM1ICIuL2luY2x1ZGUvdWFwaS9s
aW51eC91dWlkLmgiCjE0NDc0OiB0eXBlZGVmIGd1aWRfdCB1dWlkX2xlOwoxNDQ3NDogIyAxMiAi
Li9pbmNsdWRlL2xpbnV4L3V1aWQuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7CjE0NDc0OiAgX191OCBiWzE2XTsKMTQ0NzQ6IH0gdXVp
ZF90OwoxNDQ3NDogIyAzMyAiLi9pbmNsdWRlL2xpbnV4L3V1aWQuaCIKMTQ0NzQ6IGV4dGVybiBj
b25zdCBndWlkX3QgZ3VpZF9udWxsOwoxNDQ3NDogZXh0ZXJuIGNvbnN0IHV1aWRfdCB1dWlkX251
bGw7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZ3VpZF9lcXVhbChjb25zdCBndWlkX3QgKnUxLCBjb25z
dCBndWlkX3QgKnUyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBtZW1jbXAodTEsIHUyLCBzaXpl
b2YoZ3VpZF90KSkgPT0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBndWlkX2NvcHko
Z3VpZF90ICpkc3QsIGNvbnN0IGd1aWRfdCAqc3JjKQoxNDQ3NDogewoxNDQ3NDogIG1lbWNweShk
c3QsIHNyYywgc2l6ZW9mKGd1aWRfdCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGd1
aWRfaXNfbnVsbChjb25zdCBndWlkX3QgKmd1aWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGd1
aWRfZXF1YWwoZ3VpZCwgJmd1aWRfbnVsbCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
dXVpZF9lcXVhbChjb25zdCB1dWlkX3QgKnUxLCBjb25zdCB1dWlkX3QgKnUyKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBtZW1jbXAodTEsIHUyLCBzaXplb2YodXVpZF90KSkgPT0gMDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB1dWlkX2NvcHkodXVpZF90ICpkc3QsIGNvbnN0IHV1aWRf
dCAqc3JjKQoxNDQ3NDogewoxNDQ3NDogIG1lbWNweShkc3QsIHNyYywgc2l6ZW9mKHV1aWRfdCkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHV1aWRfaXNfbnVsbChjb25zdCB1dWlkX3Qg
KnV1aWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHV1aWRfZXF1YWwodXVpZCwgJnV1aWRfbnVs
bCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZ2VuZXJhdGVfcmFuZG9tX3V1aWQodW5z
aWduZWQgY2hhciB1dWlkWzE2XSk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGd1aWRfZ2Vu
KGd1aWRfdCAqdSk7CjE0NDc0OiBleHRlcm4gdm9pZCB1dWlkX2dlbih1dWlkX3QgKnUpOwoxNDQ3
NDogCjE0NDc0OiBib29sIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSB1
dWlkX2lzX3ZhbGlkKGNvbnN0IGNoYXIgKnV1aWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY29u
c3QgdTggZ3VpZF9pbmRleFsxNl07CjE0NDc0OiBleHRlcm4gY29uc3QgdTggdXVpZF9pbmRleFsx
Nl07CjE0NDc0OiAKMTQ0NzQ6IGludCBndWlkX3BhcnNlKGNvbnN0IGNoYXIgKnV1aWQsIGd1aWRf
dCAqdSk7CjE0NDc0OiBpbnQgdXVpZF9wYXJzZShjb25zdCBjaGFyICp1dWlkLCB1dWlkX3QgKnUp
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB1dWlk
X2xlX2NtcChjb25zdCBndWlkX3QgdTEsIGNvbnN0IGd1aWRfdCB1MikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gbWVtY21wKCZ1MSwgJnUyLCBzaXplb2YoZ3VpZF90KSk7CjE0NDc0OiB9CjE0NDc0
OiAjIDM4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGlu
dXgvZXJyc2VxLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1MzIgZXJyc2VxX3Q7CjE0NDc0OiAKMTQ0NzQ6
IGVycnNlcV90IGVycnNlcV9zZXQoZXJyc2VxX3QgKmVzZXEsIGludCBlcnIpOwoxNDQ3NDogZXJy
c2VxX3QgZXJyc2VxX3NhbXBsZShlcnJzZXFfdCAqZXNlcSk7CjE0NDc0OiBpbnQgZXJyc2VxX2No
ZWNrKGVycnNlcV90ICplc2VxLCBlcnJzZXFfdCBzaW5jZSk7CjE0NDc0OiBpbnQgZXJyc2VxX2No
ZWNrX2FuZF9hZHZhbmNlKGVycnNlcV90ICplc2VxLCBlcnJzZXFfdCAqc2luY2UpOwoxNDQ3NDog
IyAzOSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4
L2lvcHJpby5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDEKMTQ0NzQ6ICMgMTAgIi4vaW5jbHVkZS9saW51eC9z
Y2hlZC5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zY2hlZC5oIiAxCjE0NDc0
OiAjIDg5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zY2hlZC5oIgoxNDQ3NDogc3RydWN0IGNsb25l
X2FyZ3MgewoxNDQ3NDogIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBmbGFnczsK
MTQ0NzQ6ICBfX3U2NCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSkgcGlkZmQ7CjE0NDc0OiAg
X191NjQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpIGNoaWxkX3RpZDsKMTQ0NzQ6ICBfX3U2
NCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSkgcGFyZW50X3RpZDsKMTQ0NzQ6ICBfX3U2NCBf
X2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSkgZXhpdF9zaWduYWw7CjE0NDc0OiAgX191NjQgX19h
dHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpIHN0YWNrOwoxNDQ3NDogIF9fdTY0IF9fYXR0cmlidXRl
X18oKGFsaWduZWQoOCkpKSBzdGFja19zaXplOwoxNDQ3NDogIF9fdTY0IF9fYXR0cmlidXRlX18o
KGFsaWduZWQoOCkpKSB0bHM7CjE0NDc0OiAgX191NjQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4
KSkpIHNldF90aWQ7CjE0NDc0OiAgX191NjQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpIHNl
dF90aWRfc2l6ZTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDExICIuL2luY2x1ZGUvbGludXgvc2NoZWQu
aCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9zZW0uaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAj
IDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2lwYy5oIiAxCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9yaGFzaHRhYmxlLXR5cGVzLmgiIDEKMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51
eC9yaGFzaHRhYmxlLXR5cGVzLmgiCjE0NDc0OiBzdHJ1Y3Qgcmhhc2hfaGVhZCB7CjE0NDc0OiAg
c3RydWN0IHJoYXNoX2hlYWQgKm5leHQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
cmhsaXN0X2hlYWQgewoxNDQ3NDogIHN0cnVjdCByaGFzaF9oZWFkIHJoZWFkOwoxNDQ3NDogIHN0
cnVjdCByaGxpc3RfaGVhZCAqbmV4dDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBi
dWNrZXRfdGFibGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3Qgcmhhc2h0YWJsZV9jb21wYXJlX2FyZyB7CjE0NDc0OiAgc3RydWN0
IHJoYXNodGFibGUgKmh0OwoxNDQ3NDogIGNvbnN0IHZvaWQgKmtleTsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgdTMyICgqcmh0X2hhc2hmbl90KShjb25zdCB2b2lkICpkYXRhLCB1
MzIgbGVuLCB1MzIgc2VlZCk7CjE0NDc0OiB0eXBlZGVmIHUzMiAoKnJodF9vYmpfaGFzaGZuX3Qp
KGNvbnN0IHZvaWQgKmRhdGEsIHUzMiBsZW4sIHUzMiBzZWVkKTsKMTQ0NzQ6IHR5cGVkZWYgaW50
ICgqcmh0X29ial9jbXBmbl90KShzdHJ1Y3Qgcmhhc2h0YWJsZV9jb21wYXJlX2FyZyAqYXJnLAox
NDQ3NDogICAgICAgICAgIGNvbnN0IHZvaWQgKm9iaik7CjE0NDc0OiAjIDU2ICIuL2luY2x1ZGUv
bGludXgvcmhhc2h0YWJsZS10eXBlcy5oIgoxNDQ3NDogc3RydWN0IHJoYXNodGFibGVfcGFyYW1z
IHsKMTQ0NzQ6ICB1MTYgbmVsZW1faGludDsKMTQ0NzQ6ICB1MTYga2V5X2xlbjsKMTQ0NzQ6ICB1
MTYga2V5X29mZnNldDsKMTQ0NzQ6ICB1MTYgaGVhZF9vZmZzZXQ7CjE0NDc0OiAgdW5zaWduZWQg
aW50IG1heF9zaXplOwoxNDQ3NDogIHUxNiBtaW5fc2l6ZTsKMTQ0NzQ6ICBib29sIGF1dG9tYXRp
Y19zaHJpbmtpbmc7CjE0NDc0OiAgcmh0X2hhc2hmbl90IGhhc2hmbjsKMTQ0NzQ6ICByaHRfb2Jq
X2hhc2hmbl90IG9ial9oYXNoZm47CjE0NDc0OiAgcmh0X29ial9jbXBmbl90IG9ial9jbXBmbjsK
MTQ0NzQ6IH07CjE0NDc0OiAjIDgxICIuL2luY2x1ZGUvbGludXgvcmhhc2h0YWJsZS10eXBlcy5o
IgoxNDQ3NDogc3RydWN0IHJoYXNodGFibGUgewoxNDQ3NDogIHN0cnVjdCBidWNrZXRfdGFibGUg
KnRibDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQga2V5X2xlbjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
bWF4X2VsZW1zOwoxNDQ3NDogIHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyBwOwoxNDQ3NDogIGJv
b2wgcmhsaXN0OwoxNDQ3NDogIHN0cnVjdCB3b3JrX3N0cnVjdCBydW5fd29yazsKMTQ0NzQ6ICBz
dHJ1Y3QgbXV0ZXggbXV0ZXg7CjE0NDc0OiAgc3BpbmxvY2tfdCBsb2NrOwoxNDQ3NDogIGF0b21p
Y190IG5lbGVtczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IHJobHRhYmxlIHsKMTQ0NzQ6ICBzdHJ1Y3Qgcmhhc2h0YWJsZSBo
dDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3Qgcmhhc2h0YWJsZV93YWxrZXIgewoxNDQ3NDogIHN0cnVjdCBsaXN0
X2hlYWQgbGlzdDsKMTQ0NzQ6ICBzdHJ1Y3QgYnVja2V0X3RhYmxlICp0Ymw7CjE0NDc0OiB9Owox
NDQ3NDogIyAxMjAgIi4vaW5jbHVkZS9saW51eC9yaGFzaHRhYmxlLXR5cGVzLmgiCjE0NDc0OiBz
dHJ1Y3Qgcmhhc2h0YWJsZV9pdGVyIHsKMTQ0NzQ6ICBzdHJ1Y3Qgcmhhc2h0YWJsZSAqaHQ7CjE0
NDc0OiAgc3RydWN0IHJoYXNoX2hlYWQgKnA7CjE0NDc0OiAgc3RydWN0IHJobGlzdF9oZWFkICps
aXN0OwoxNDQ3NDogIHN0cnVjdCByaGFzaHRhYmxlX3dhbGtlciB3YWxrZXI7CjE0NDc0OiAgdW5z
aWduZWQgaW50IHNsb3Q7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNraXA7CjE0NDc0OiAgYm9vbCBl
bmRfb2ZfdGFibGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBpbnQgcmhhc2h0YWJsZV9pbml0
KHN0cnVjdCByaGFzaHRhYmxlICpodCwKMTQ0NzQ6ICAgICAgIGNvbnN0IHN0cnVjdCByaGFzaHRh
YmxlX3BhcmFtcyAqcGFyYW1zKTsKMTQ0NzQ6IGludCByaGx0YWJsZV9pbml0KHN0cnVjdCByaGx0
YWJsZSAqaGx0LAoxNDQ3NDogICAgIGNvbnN0IHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyAqcGFy
YW1zKTsKMTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L2lwYy5oIiAyCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS91YXBpL2xpbnV4L2lwYy5oIiAxCjE0NDc0OiAjIDEwICIuL2luY2x1ZGUvdWFwaS9s
aW51eC9pcGMuaCIKMTQ0NzQ6IHN0cnVjdCBpcGNfcGVybQoxNDQ3NDogewoxNDQ3NDogIF9fa2Vy
bmVsX2tleV90IGtleTsKMTQ0NzQ6ICBfX2tlcm5lbF91aWRfdCB1aWQ7CjE0NDc0OiAgX19rZXJu
ZWxfZ2lkX3QgZ2lkOwoxNDQ3NDogIF9fa2VybmVsX3VpZF90IGN1aWQ7CjE0NDc0OiAgX19rZXJu
ZWxfZ2lkX3QgY2dpZDsKMTQ0NzQ6ICBfX2tlcm5lbF9tb2RlX3QgbW9kZTsKMTQ0NzQ6ICB1bnNp
Z25lZCBzaG9ydCBzZXE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9pcGNidWYuaCIgMQoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9pcGNidWYuaCIgMQoxNDQ3NDogIyAyMiAiLi9p
bmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaXBjYnVmLmgiCjE0NDc0OiBzdHJ1Y3QgaXBjNjRfcGVy
bSB7CjE0NDc0OiAgX19rZXJuZWxfa2V5X3Qga2V5OwoxNDQ3NDogIF9fa2VybmVsX3VpZDMyX3Qg
dWlkOwoxNDQ3NDogIF9fa2VybmVsX2dpZDMyX3QgZ2lkOwoxNDQ3NDogIF9fa2VybmVsX3VpZDMy
X3QgY3VpZDsKMTQ0NzQ6ICBfX2tlcm5lbF9naWQzMl90IGNnaWQ7CjE0NDc0OiAgX19rZXJuZWxf
bW9kZV90IG1vZGU7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIF9fcGFkMVs0IC0gc2l6
ZW9mKF9fa2VybmVsX21vZGVfdCldOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IHNlcTsKMTQ0NzQ6
ICB1bnNpZ25lZCBzaG9ydCBfX3BhZDI7CjE0NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBfX3VudXNl
ZDE7CjE0NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBfX3VudXNlZDI7CjE0NDc0OiB9OwoxNDQ3NDog
IyAyICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2lwY2J1Zi5oIiAyCjE0
NDc0OiAjIDIzICIuL2luY2x1ZGUvdWFwaS9saW51eC9pcGMuaCIgMgoxNDQ3NDogIyA1OCAiLi9p
bmNsdWRlL3VhcGkvbGludXgvaXBjLmgiCjE0NDc0OiBzdHJ1Y3QgaXBjX2tsdWRnZSB7CjE0NDc0
OiAgc3RydWN0IG1zZ2J1ZiAqbXNncDsKMTQ0NzQ6ICBsb25nIG1zZ3R5cDsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC9pcGMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGtlcm5faXBjX3Blcm0gewoxNDQ3NDogIHNwaW5sb2NrX3QgbG9jazsK
MTQ0NzQ6ICBib29sIGRlbGV0ZWQ7CjE0NDc0OiAgaW50IGlkOwoxNDQ3NDogIGtleV90IGtleTsK
MTQ0NzQ6ICBrdWlkX3QgdWlkOwoxNDQ3NDogIGtnaWRfdCBnaWQ7CjE0NDc0OiAga3VpZF90IGN1
aWQ7CjE0NDc0OiAga2dpZF90IGNnaWQ7CjE0NDc0OiAgdW1vZGVfdCBtb2RlOwoxNDQ3NDogIHVu
c2lnbmVkIGxvbmcgc2VxOwoxNDQ3NDogIHZvaWQgKnNlY3VyaXR5OwoxNDQ3NDogCjE0NDc0OiAg
c3RydWN0IHJoYXNoX2hlYWQga2h0bm9kZTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjYWxsYmFj
a19oZWFkIHJjdTsKMTQ0NzQ6ICByZWZjb3VudF90IHJlZmNvdW50OwoxNDQ3NDogfSBfX2F0dHJp
YnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikpKSkpIF9fYXR0cmlidXRlX18oKF9fZGVzaWdu
YXRlZF9pbml0X18pKTsKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2VtLmgiIDIK
MTQ0NzQ6ICMgMjUgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIgoxNDQ3NDogc3RydWN0IHNl
bWlkX2RzIHsKMTQ0NzQ6ICBzdHJ1Y3QgaXBjX3Blcm0gc2VtX3Blcm07CjE0NDc0OiAgX19rZXJu
ZWxfb2xkX3RpbWVfdCBzZW1fb3RpbWU7CjE0NDc0OiAgX19rZXJuZWxfb2xkX3RpbWVfdCBzZW1f
Y3RpbWU7CjE0NDc0OiAgc3RydWN0IHNlbSAqc2VtX2Jhc2U7CjE0NDc0OiAgc3RydWN0IHNlbV9x
dWV1ZSAqc2VtX3BlbmRpbmc7CjE0NDc0OiAgc3RydWN0IHNlbV9xdWV1ZSAqKnNlbV9wZW5kaW5n
X2xhc3Q7CjE0NDc0OiAgc3RydWN0IHNlbV91bmRvICp1bmRvOwoxNDQ3NDogIHVuc2lnbmVkIHNo
b3J0IHNlbV9uc2VtczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2VtYnVmLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkv
YXNtL2lwY2J1Zi5oIiAxCjE0NDc0OiAjIDYgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9z
ZW1idWYuaCIgMgoxNDQ3NDogIyAxOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NlbWJ1
Zi5oIgoxNDQ3NDogc3RydWN0IHNlbWlkNjRfZHMgewoxNDQ3NDogIHN0cnVjdCBpcGM2NF9wZXJt
IHNlbV9wZXJtOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIF9fa2VybmVsX2xvbmdfdCBzZW1fb3RpbWU7CjE0NDc0OiAgX19rZXJuZWxfdWxv
bmdfdCBfX3VudXNlZDE7CjE0NDc0OiAgX19rZXJuZWxfbG9uZ190IHNlbV9jdGltZTsKMTQ0NzQ6
ICBfX2tlcm5lbF91bG9uZ190IF9fdW51c2VkMjsKMTQ0NzQ6IAoxNDQ3NDogIF9fa2VybmVsX3Vs
b25nX3Qgc2VtX25zZW1zOwoxNDQ3NDogIF9fa2VybmVsX3Vsb25nX3QgX191bnVzZWQzOwoxNDQ3
NDogIF9fa2VybmVsX3Vsb25nX3QgX191bnVzZWQ0OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzggIi4v
aW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHNlbWJ1ZiB7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgc2VtX251bTsKMTQ0NzQ6ICBzaG9ydCBz
ZW1fb3A7CjE0NDc0OiAgc2hvcnQgc2VtX2ZsZzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdW5pb24gc2VtdW4gewoxNDQ3NDogIGludCB2YWw7CjE0NDc0OiAgc3RydWN0IHNlbWlk
X2RzICpidWY7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgKmFycmF5OwoxNDQ3NDogIHN0cnVjdCBz
ZW1pbmZvICpfX2J1ZjsKMTQ0NzQ6ICB2b2lkICpfX3BhZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBzZW1pbmZvIHsKMTQ0NzQ6ICBpbnQgc2VtbWFwOwoxNDQ3NDogIGludCBzZW1t
bmk7CjE0NDc0OiAgaW50IHNlbW1uczsKMTQ0NzQ6ICBpbnQgc2VtbW51OwoxNDQ3NDogIGludCBz
ZW1tc2w7CjE0NDc0OiAgaW50IHNlbW9wbTsKMTQ0NzQ6ICBpbnQgc2VtdW1lOwoxNDQ3NDogIGlu
dCBzZW11c3o7CjE0NDc0OiAgaW50IHNlbXZteDsKMTQ0NzQ6ICBpbnQgc2VtYWVtOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2xpbnV4L3NlbS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCB0YXNrX3N0cnVjdDsKMTQ0NzQ6IHN0cnVjdCBzZW1fdW5kb19saXN0OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHN5c3Zfc2VtIHsKMTQ0NzQ6ICBzdHJ1Y3Qgc2Vt
X3VuZG9fbGlzdCAqdW5kb19saXN0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGlu
dCBjb3B5X3NlbXVuZG8odW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncywgc3RydWN0IHRhc2tfc3Ry
dWN0ICp0c2spOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZXhpdF9zZW0oc3RydWN0IHRhc2tfc3RydWN0
ICp0c2spOwoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6ICMg
MSAiLi9pbmNsdWRlL2xpbnV4L3NobS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NobS5o
IiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2h1Z2V0bGJfZW5jb2RlLmgiIDEKMTQ0
NzQ6ICMgOCAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2htLmgiIDIKMTQ0NzQ6ICMgMjggIi4vaW5j
bHVkZS91YXBpL2xpbnV4L3NobS5oIgoxNDQ3NDogc3RydWN0IHNobWlkX2RzIHsKMTQ0NzQ6ICBz
dHJ1Y3QgaXBjX3Blcm0gc2htX3Blcm07CjE0NDc0OiAgaW50IHNobV9zZWdzejsKMTQ0NzQ6ICBf
X2tlcm5lbF9vbGRfdGltZV90IHNobV9hdGltZTsKMTQ0NzQ6ICBfX2tlcm5lbF9vbGRfdGltZV90
IHNobV9kdGltZTsKMTQ0NzQ6ICBfX2tlcm5lbF9vbGRfdGltZV90IHNobV9jdGltZTsKMTQ0NzQ6
ICBfX2tlcm5lbF9pcGNfcGlkX3Qgc2htX2NwaWQ7CjE0NDc0OiAgX19rZXJuZWxfaXBjX3BpZF90
IHNobV9scGlkOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IHNobV9uYXR0Y2g7CjE0NDc0OiAgdW5z
aWduZWQgc2hvcnQgc2htX3VudXNlZDsKMTQ0NzQ6ICB2b2lkICpzaG1fdW51c2VkMjsKMTQ0NzQ6
ICB2b2lkICpzaG1fdW51c2VkMzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAx
ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2htYnVmLmgiIDEKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1n
ZW5lcmljL3NobWJ1Zi5oIiAxCjE0NDc0OiAjIDI1ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJp
Yy9zaG1idWYuaCIKMTQ0NzQ6IHN0cnVjdCBzaG1pZDY0X2RzIHsKMTQ0NzQ6ICBzdHJ1Y3QgaXBj
NjRfcGVybSBzaG1fcGVybTsKMTQ0NzQ6ICBzaXplX3Qgc2htX3NlZ3N6OwoxNDQ3NDogCjE0NDc0
OiAgbG9uZyBzaG1fYXRpbWU7CjE0NDc0OiAgbG9uZyBzaG1fZHRpbWU7CjE0NDc0OiAgbG9uZyBz
aG1fY3RpbWU7CjE0NDc0OiAjIDQwICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9zaG1idWYu
aCIKMTQ0NzQ6ICBfX2tlcm5lbF9waWRfdCBzaG1fY3BpZDsKMTQ0NzQ6ICBfX2tlcm5lbF9waWRf
dCBzaG1fbHBpZDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNobV9uYXR0Y2g7CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyBfX3VudXNlZDQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBfX3VudXNlZDU7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2htaW5mbzY0IHsKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIHNobW1heDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNobW1pbjsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHNobW1uaTsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNobXNlZzsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIHNobWFsbDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIF9fdW51c2VkMTsKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIF9fdW51c2VkMjsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIF9fdW51
c2VkMzsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIF9fdW51c2VkNDsKMTQ0NzQ6IH07CjE0NDc0OiAj
IDcgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaG1idWYuaCIgMgoxNDQ3NDogIyA0NCAi
Li9pbmNsdWRlL3VhcGkvbGludXgvc2htLmgiIDIKMTQ0NzQ6ICMgOTMgIi4vaW5jbHVkZS91YXBp
L2xpbnV4L3NobS5oIgoxNDQ3NDogc3RydWN0IHNobWluZm8gewoxNDQ3NDogIGludCBzaG1tYXg7
CjE0NDc0OiAgaW50IHNobW1pbjsKMTQ0NzQ6ICBpbnQgc2htbW5pOwoxNDQ3NDogIGludCBzaG1z
ZWc7CjE0NDc0OiAgaW50IHNobWFsbDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBz
aG1faW5mbyB7CjE0NDc0OiAgaW50IHVzZWRfaWRzOwoxNDQ3NDogIF9fa2VybmVsX3Vsb25nX3Qg
c2htX3RvdDsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHNobV9yc3M7CjE0NDc0OiAgX19rZXJu
ZWxfdWxvbmdfdCBzaG1fc3dwOwoxNDQ3NDogIF9fa2VybmVsX3Vsb25nX3Qgc3dhcF9hdHRlbXB0
czsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHN3YXBfc3VjY2Vzc2VzOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L3NobS5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vc2htcGFyYW0uaCIgMQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgvc2ht
LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZpbGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHN5c3Zfc2htIHsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIHNobV9jbGlzdDsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGxvbmcgZG9fc2htYXQoaW50IHNobWlkLCBjaGFyICpzaG1h
ZGRyLCBpbnQgc2htZmxnLCB1bnNpZ25lZCBsb25nICphZGRyLAoxNDQ3NDogICAgICAgIHVuc2ln
bmVkIGxvbmcgc2htbGJhKTsKMTQ0NzQ6IGJvb2wgaXNfZmlsZV9zaG1faHVnZXBhZ2VzKHN0cnVj
dCBmaWxlICpmaWxlKTsKMTQ0NzQ6IHZvaWQgZXhpdF9zaG0oc3RydWN0IHRhc2tfc3RydWN0ICp0
YXNrKTsKMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCjE0NDc0OiAjIDEg
Ii4vaW5jbHVkZS9saW51eC9rY292LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9rY292LmgiIDEKMTQ0NzQ6ICMgMTEg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2tjb3YuaCIKMTQ0NzQ6IHN0cnVjdCBrY292X3JlbW90ZV9h
cmcgewoxNDQ3NDogIF9fdTMyIHRyYWNlX21vZGU7CjE0NDc0OiAgX191MzIgYXJlYV9zaXplOwox
NDQ3NDogIF9fdTMyIG51bV9oYW5kbGVzOwoxNDQ3NDogIF9fdTY0IF9fYXR0cmlidXRlX18oKGFs
aWduZWQoOCkpKSBjb21tb25faGFuZGxlOwoxNDQ3NDogIF9fdTY0IF9fYXR0cmlidXRlX18oKGFs
aWduZWQoOCkpKSBoYW5kbGVzWzBdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjYgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L2tjb3YuaCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIyAzNSAiLi9pbmNsdWRlL3Vh
cGkvbGludXgva2Nvdi5oIgoxNDQ3NDogIEtDT1ZfVFJBQ0VfUEMgPSAwLAoxNDQ3NDogCjE0NDc0
OiAgS0NPVl9UUkFDRV9DTVAgPSAxLAoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTYgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L2tjb3YuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fdTY0IGtjb3ZfcmVtb3RlX2hhbmRsZShfX3U2NCBz
dWJzeXMsIF9fdTY0IGluc3QpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKHN1YnN5cyAmIH4oMHhmZnVs
bCA8PCA1NikgfHwgaW5zdCAmIH4oMHhmZmZmZmZmZnVsbCkpCjE0NDc0OiAgIHJldHVybiAwOwox
NDQ3NDogIHJldHVybiBzdWJzeXMgfCBpbnN0OwoxNDQ3NDogfQoxNDQ3NDogIyA2ICIuL2luY2x1
ZGUvbGludXgva2Nvdi5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0YXNrX3N0cnVjdDsKMTQ0
NzQ6ICMgNTcgIi4vaW5jbHVkZS9saW51eC9rY292LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGtjb3ZfdGFza19p
bml0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2Nvdl90YXNrX2V4aXQo
c3RydWN0IHRhc2tfc3RydWN0ICp0KSB7fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrY292X3ByZXBhcmVfc3dpdGNo
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2Nvdl9maW5pc2hfc3dpdGNo
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2Nvdl9yZW1vdGVfc3RhcnQo
dTY0IGhhbmRsZSkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2Nvdl9yZW1vdGVfc3RvcCh2b2lkKSB7fQoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdTY0IGtjb3ZfY29tbW9uX2hhbmRsZSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAw
OwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrY292X3JlbW90ZV9zdGFydF9jb21tb24odTY0IGlkKSB7
fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBrY292X3JlbW90ZV9zdGFydF91c2IodTY0IGlkKSB7fQoxNDQ3NDogIyAx
OCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvbGludXgvcGxpc3QuaCIgMQoxNDQ3NDogIyA3OSAiLi9pbmNsdWRlL2xpbnV4L3BsaXN0Lmgi
CjE0NDc0OiBzdHJ1Y3QgcGxpc3RfaGVhZCB7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBub2Rl
X2xpc3Q7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGxpc3Rfbm9kZSB7CjE0NDc0
OiAgaW50IHByaW87CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBwcmlvX2xpc3Q7CjE0NDc0OiAg
c3RydWN0IGxpc3RfaGVhZCBub2RlX2xpc3Q7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMjEgIi4vaW5j
bHVkZS9saW51eC9wbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogcGxpc3RfaGVhZF9pbml0KHN0
cnVjdCBwbGlzdF9oZWFkICpoZWFkKQoxNDQ3NDogewoxNDQ3NDogIElOSVRfTElTVF9IRUFEKCZo
ZWFkLT5ub2RlX2xpc3QpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwbGlzdF9ub2RlX2luaXQoc3RydWN0IHBsaXN0
X25vZGUgKm5vZGUsIGludCBwcmlvKQoxNDQ3NDogewoxNDQ3NDogIG5vZGUtPnByaW8gPSBwcmlv
OwoxNDQ3NDogIElOSVRfTElTVF9IRUFEKCZub2RlLT5wcmlvX2xpc3QpOwoxNDQ3NDogIElOSVRf
TElTVF9IRUFEKCZub2RlLT5ub2RlX2xpc3QpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBwbGlzdF9hZGQoc3RydWN0IHBsaXN0X25vZGUgKm5vZGUsIHN0cnVjdCBwbGlzdF9o
ZWFkICpoZWFkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHBsaXN0X2RlbChzdHJ1Y3QgcGxpc3Rfbm9k
ZSAqbm9kZSwgc3RydWN0IHBsaXN0X2hlYWQgKmhlYWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
dm9pZCBwbGlzdF9yZXF1ZXVlKHN0cnVjdCBwbGlzdF9ub2RlICpub2RlLCBzdHJ1Y3QgcGxpc3Rf
aGVhZCAqaGVhZCk7CjE0NDc0OiAjIDIxMCAiLi9pbmNsdWRlL2xpbnV4L3BsaXN0LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgcGxpc3RfaGVhZF9lbXB0eShjb25zdCBzdHJ1Y3QgcGxpc3RfaGVhZCAqaGVhZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbGlzdF9lbXB0eSgmaGVhZC0+bm9kZV9saXN0KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGxp
c3Rfbm9kZV9lbXB0eShjb25zdCBzdHJ1Y3QgcGxpc3Rfbm9kZSAqbm9kZSkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gbGlzdF9lbXB0eSgmbm9kZS0+bm9kZV9saXN0KTsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMjgwICIuL2luY2x1ZGUvbGludXgvcGxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBwbGlzdF9ub2Rl
ICpwbGlzdF9maXJzdChjb25zdCBzdHJ1Y3QgcGxpc3RfaGVhZCAqaGVhZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gKHsgdm9pZCAqX19tcHRyID0gKHZvaWQgKikoaGVhZC0+bm9kZV9saXN0Lm5l
eHQpOyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzI4Mih2b2lkKSBfX2F0
dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWluZXJf
b2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCoo
aGVhZC0+bm9kZV9saXN0Lm5leHQpKSwgdHlwZW9mKCgoc3RydWN0IHBsaXN0X25vZGUgKikwKS0+
bm9kZV9saXN0KSkgJiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCooaGVh
ZC0+bm9kZV9saXN0Lm5leHQpKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF8yODIoKTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IHBsaXN0X25vZGUgKikoX19tcHRyIC0gX19i
dWlsdGluX29mZnNldG9mKHN0cnVjdCBwbGlzdF9ub2RlLCBub2RlX2xpc3QpKSk7IH0pCjE0NDc0
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3QgcGxpc3Rfbm9kZSAqcGxpc3RfbGFzdChjb25zdCBzdHJ1Y3QgcGxpc3RfaGVhZCAqaGVhZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdm9pZCAqX19tcHRyID0gKHZvaWQgKikoaGVhZC0+
bm9kZV9saXN0LnByZXYpOyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzI5
NCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNtYXRjaCBp
biBjb250YWluZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxl
X3AodHlwZW9mKCooaGVhZC0+bm9kZV9saXN0LnByZXYpKSwgdHlwZW9mKCgoc3RydWN0IHBsaXN0
X25vZGUgKikwKS0+bm9kZV9saXN0KSkgJiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3Ao
dHlwZW9mKCooaGVhZC0+bm9kZV9saXN0LnByZXYpKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBp
bGV0aW1lX2Fzc2VydF8yOTQoKTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IHBsaXN0X25vZGUgKiko
X19tcHRyIC0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwbGlzdF9ub2RlLCBub2RlX2xpc3Qp
KSk7IH0pCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDog
fQoxNDQ3NDogIyAyMCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6ICMgMSAiLi9p
bmNsdWRlL2xpbnV4L2hydGltZXIuaCIgMQoxNDQ3NDogIyAxNSAiLi9pbmNsdWRlL2xpbnV4L2hy
dGltZXIuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2hydGltZXJfZGVmcy5oIiAxCjE0
NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgvaHJ0aW1lci5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvdGltZXJx
dWV1ZS5oIiAxCjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC90aW1lcnF1ZXVlLmgiCjE0NDc0
OiBzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlIHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9kZSBub2RlOwox
NDQ3NDogIGt0aW1lX3QgZXhwaXJlczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0
aW1lcnF1ZXVlX2hlYWQgewoxNDQ3NDogIHN0cnVjdCByYl9yb290X2NhY2hlZCByYl9yb290Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCB0aW1lcnF1ZXVlX2Fk
ZChzdHJ1Y3QgdGltZXJxdWV1ZV9oZWFkICpoZWFkLAoxNDQ3NDogICAgICAgc3RydWN0IHRpbWVy
cXVldWVfbm9kZSAqbm9kZSk7CjE0NDc0OiBleHRlcm4gYm9vbCB0aW1lcnF1ZXVlX2RlbChzdHJ1
Y3QgdGltZXJxdWV1ZV9oZWFkICpoZWFkLAoxNDQ3NDogICAgICAgc3RydWN0IHRpbWVycXVldWVf
bm9kZSAqbm9kZSk7CjE0NDc0OiBleHRlcm4gc3RydWN0IHRpbWVycXVldWVfbm9kZSAqdGltZXJx
dWV1ZV9pdGVyYXRlX25leHQoCjE0NDc0OiAgICAgICBzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICpu
b2RlKTsKMTQ0NzQ6ICMgMzMgIi4vaW5jbHVkZS9saW51eC90aW1lcnF1ZXVlLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQox
NDQ3NDogc3RydWN0IHRpbWVycXVldWVfbm9kZSAqdGltZXJxdWV1ZV9nZXRuZXh0KHN0cnVjdCB0
aW1lcnF1ZXVlX2hlYWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IHJiX25vZGUgKmxl
ZnRtb3N0ID0gKCZoZWFkLT5yYl9yb290KS0+cmJfbGVmdG1vc3Q7CjE0NDc0OiAKMTQ0NzQ6ICBy
ZXR1cm4gKHsgdm9pZCAqX19tcHRyID0gKHZvaWQgKikobGVmdG1vc3QpOyBkbyB7IGV4dGVybiB2
b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzM4KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3Jf
XygicG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISgh
X19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKihsZWZ0bW9zdCkpLCB0eXBlb2Yo
KChzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICopMCktPm5vZGUpKSAmJiAhX19idWlsdGluX3R5cGVz
X2NvbXBhdGlibGVfcCh0eXBlb2YoKihsZWZ0bW9zdCkpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29t
cGlsZXRpbWVfYXNzZXJ0XzM4KCk7IH0gd2hpbGUgKDApOyAoKHN0cnVjdCB0aW1lcnF1ZXVlX25v
ZGUgKikoX19tcHRyIC0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCB0aW1lcnF1ZXVlX25vZGUs
IG5vZGUpKSk7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRpbWVycXVldWVfaW5p
dChzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICpub2RlKQoxNDQ3NDogewoxNDQ3NDogICgoJm5vZGUt
Pm5vZGUpLT5fX3JiX3BhcmVudF9jb2xvciA9ICh1bnNpZ25lZCBsb25nKSgmbm9kZS0+bm9kZSkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRpbWVycXVldWVfbm9kZV9xdWV1ZWQoc3Ry
dWN0IHRpbWVycXVldWVfbm9kZSAqbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gISgoJm5v
ZGUtPm5vZGUpLT5fX3JiX3BhcmVudF9jb2xvciA9PSAodW5zaWduZWQgbG9uZykoJm5vZGUtPm5v
ZGUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0aW1lcnF1ZXVlX25vZGVfZXhwaXJl
cyhzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICpub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBu
b2RlLT5leHBpcmVzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRpbWVycXVldWVfaW5p
dF9oZWFkKHN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgaGVh
ZC0+cmJfcm9vdCA9IChzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQpIHsgeygodm9pZCAqKTApLCB9LCAo
KHZvaWQgKikwKSB9OwoxNDQ3NDogfQoxNDQ3NDogIyAyMiAiLi9pbmNsdWRlL2xpbnV4L2hydGlt
ZXIuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaHJ0aW1lcl9jbG9ja19iYXNlOwoxNDQ3NDog
c3RydWN0IGhydGltZXJfY3B1X2Jhc2U7CjE0NDc0OiAjIDM4ICIuL2luY2x1ZGUvbGludXgvaHJ0
aW1lci5oIgoxNDQ3NDogZW51bSBocnRpbWVyX21vZGUgewoxNDQ3NDogIEhSVElNRVJfTU9ERV9B
QlMgPSAweDAwLAoxNDQ3NDogIEhSVElNRVJfTU9ERV9SRUwgPSAweDAxLAoxNDQ3NDogIEhSVElN
RVJfTU9ERV9QSU5ORUQgPSAweDAyLAoxNDQ3NDogIEhSVElNRVJfTU9ERV9TT0ZUID0gMHgwNCwK
MTQ0NzQ6ICBIUlRJTUVSX01PREVfSEFSRCA9IDB4MDgsCjE0NDc0OiAKMTQ0NzQ6ICBIUlRJTUVS
X01PREVfQUJTX1BJTk5FRCA9IEhSVElNRVJfTU9ERV9BQlMgfCBIUlRJTUVSX01PREVfUElOTkVE
LAoxNDQ3NDogIEhSVElNRVJfTU9ERV9SRUxfUElOTkVEID0gSFJUSU1FUl9NT0RFX1JFTCB8IEhS
VElNRVJfTU9ERV9QSU5ORUQsCjE0NDc0OiAKMTQ0NzQ6ICBIUlRJTUVSX01PREVfQUJTX1NPRlQg
PSBIUlRJTUVSX01PREVfQUJTIHwgSFJUSU1FUl9NT0RFX1NPRlQsCjE0NDc0OiAgSFJUSU1FUl9N
T0RFX1JFTF9TT0ZUID0gSFJUSU1FUl9NT0RFX1JFTCB8IEhSVElNRVJfTU9ERV9TT0ZULAoxNDQ3
NDogCjE0NDc0OiAgSFJUSU1FUl9NT0RFX0FCU19QSU5ORURfU09GVCA9IEhSVElNRVJfTU9ERV9B
QlNfUElOTkVEIHwgSFJUSU1FUl9NT0RFX1NPRlQsCjE0NDc0OiAgSFJUSU1FUl9NT0RFX1JFTF9Q
SU5ORURfU09GVCA9IEhSVElNRVJfTU9ERV9SRUxfUElOTkVEIHwgSFJUSU1FUl9NT0RFX1NPRlQs
CjE0NDc0OiAKMTQ0NzQ6ICBIUlRJTUVSX01PREVfQUJTX0hBUkQgPSBIUlRJTUVSX01PREVfQUJT
IHwgSFJUSU1FUl9NT0RFX0hBUkQsCjE0NDc0OiAgSFJUSU1FUl9NT0RFX1JFTF9IQVJEID0gSFJU
SU1FUl9NT0RFX1JFTCB8IEhSVElNRVJfTU9ERV9IQVJELAoxNDQ3NDogCjE0NDc0OiAgSFJUSU1F
Ul9NT0RFX0FCU19QSU5ORURfSEFSRCA9IEhSVElNRVJfTU9ERV9BQlNfUElOTkVEIHwgSFJUSU1F
Ul9NT0RFX0hBUkQsCjE0NDc0OiAgSFJUSU1FUl9NT0RFX1JFTF9QSU5ORURfSEFSRCA9IEhSVElN
RVJfTU9ERV9SRUxfUElOTkVEIHwgSFJUSU1FUl9NT0RFX0hBUkQsCjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGhydGltZXJfcmVzdGFydCB7CjE0
NDc0OiAgSFJUSU1FUl9OT1JFU1RBUlQsCjE0NDc0OiAgSFJUSU1FUl9SRVNUQVJULAoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMTE3ICIuL2luY2x1ZGUvbGludXgvaHJ0aW1lci5oIgoxNDQ3NDogc3RydWN0
IGhydGltZXIgewoxNDQ3NDogIHN0cnVjdCB0aW1lcnF1ZXVlX25vZGUgbm9kZTsKMTQ0NzQ6ICBr
dGltZV90IF9zb2Z0ZXhwaXJlczsKMTQ0NzQ6ICBlbnVtIGhydGltZXJfcmVzdGFydCAoKmZ1bmN0
aW9uKShzdHJ1Y3QgaHJ0aW1lciAqKTsKMTQ0NzQ6ICBzdHJ1Y3QgaHJ0aW1lcl9jbG9ja19iYXNl
ICpiYXNlOwoxNDQ3NDogIHU4IHN0YXRlOwoxNDQ3NDogIHU4IGlzX3JlbDsKMTQ0NzQ6ICB1OCBp
c19zb2Z0OwoxNDQ3NDogIHU4IGlzX2hhcmQ7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMzUgIi4vaW5j
bHVkZS9saW51eC9ocnRpbWVyLmgiCjE0NDc0OiBzdHJ1Y3QgaHJ0aW1lcl9zbGVlcGVyIHsKMTQ0
NzQ6ICBzdHJ1Y3QgaHJ0aW1lciB0aW1lcjsKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRh
c2s7CjE0NDc0OiB9OwoxNDQ3NDogIyAxNTggIi4vaW5jbHVkZS9saW51eC9ocnRpbWVyLmgiCjE0
NDc0OiBzdHJ1Y3QgaHJ0aW1lcl9jbG9ja19iYXNlIHsKMTQ0NzQ6ICBzdHJ1Y3QgaHJ0aW1lcl9j
cHVfYmFzZSAqY3B1X2Jhc2U7CjE0NDc0OiAgdW5zaWduZWQgaW50IGluZGV4OwoxNDQ3NDogIGNs
b2NraWRfdCBjbG9ja2lkOwoxNDQ3NDogIHNlcWNvdW50X3Qgc2VxOwoxNDQ3NDogIHN0cnVjdCBo
cnRpbWVyICpydW5uaW5nOwoxNDQ3NDogIHN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgYWN0aXZlOwox
NDQ3NDogIGt0aW1lX3QgKCpnZXRfdGltZSkodm9pZCk7CjE0NDc0OiAga3RpbWVfdCBvZmZzZXQ7
CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpKSk7CjE0NDc0
OiAKMTQ0NzQ6IGVudW0gaHJ0aW1lcl9iYXNlX3R5cGUgewoxNDQ3NDogIEhSVElNRVJfQkFTRV9N
T05PVE9OSUMsCjE0NDc0OiAgSFJUSU1FUl9CQVNFX1JFQUxUSU1FLAoxNDQ3NDogIEhSVElNRVJf
QkFTRV9CT09UVElNRSwKMTQ0NzQ6ICBIUlRJTUVSX0JBU0VfVEFJLAoxNDQ3NDogIEhSVElNRVJf
QkFTRV9NT05PVE9OSUNfU09GVCwKMTQ0NzQ6ICBIUlRJTUVSX0JBU0VfUkVBTFRJTUVfU09GVCwK
MTQ0NzQ6ICBIUlRJTUVSX0JBU0VfQk9PVFRJTUVfU09GVCwKMTQ0NzQ6ICBIUlRJTUVSX0JBU0Vf
VEFJX1NPRlQsCjE0NDc0OiAgSFJUSU1FUl9NQVhfQ0xPQ0tfQkFTRVMsCjE0NDc0OiB9OwoxNDQ3
NDogIyAyMTMgIi4vaW5jbHVkZS9saW51eC9ocnRpbWVyLmgiCjE0NDc0OiBzdHJ1Y3QgaHJ0aW1l
cl9jcHVfYmFzZSB7CjE0NDc0OiAgcmF3X3NwaW5sb2NrX3QgbG9jazsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgY3B1OwoxNDQ3NDogIHVuc2lnbmVkIGludCBhY3RpdmVfYmFzZXM7CjE0NDc0OiAgdW5z
aWduZWQgaW50IGNsb2NrX3dhc19zZXRfc2VxOwoxNDQ3NDogIHVuc2lnbmVkIGludCBocmVzX2Fj
dGl2ZSA6IDEsCjE0NDc0OiAgICAgIGluX2hydGlycSA6IDEsCjE0NDc0OiAgICAgIGhhbmdfZGV0
ZWN0ZWQgOiAxLAoxNDQ3NDogICAgICBzb2Z0aXJxX2FjdGl2YXRlZCA6IDE7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgbnJfZXZlbnRzOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IG5yX3Jl
dHJpZXM7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgbnJfaGFuZ3M7CjE0NDc0OiAgdW5zaWduZWQg
aW50IG1heF9oYW5nX3RpbWU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIGt0aW1lX3QgZXhwaXJlc19uZXh0OwoxNDQ3NDogIHN0cnVjdCBocnRpbWVyICpu
ZXh0X3RpbWVyOwoxNDQ3NDogIGt0aW1lX3Qgc29mdGlycV9leHBpcmVzX25leHQ7CjE0NDc0OiAg
c3RydWN0IGhydGltZXIgKnNvZnRpcnFfbmV4dF90aW1lcjsKMTQ0NzQ6ICBzdHJ1Y3QgaHJ0aW1l
cl9jbG9ja19iYXNlIGNsb2NrX2Jhc2VbSFJUSU1FUl9NQVhfQ0xPQ0tfQkFTRVNdOwoxNDQ3NDog
fSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikpKSkpOwoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGhydGltZXJfc2V0X2V4cGlyZXMoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90
IHRpbWUpCjE0NDc0OiB7CjE0NDc0OiAgdGltZXItPm5vZGUuZXhwaXJlcyA9IHRpbWU7CjE0NDc0
OiAgdGltZXItPl9zb2Z0ZXhwaXJlcyA9IHRpbWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaHJ0aW1lcl9zZXRfZXhwaXJlc19yYW5nZShzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsIGt0aW1l
X3QgdGltZSwga3RpbWVfdCBkZWx0YSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB0aW1lci0+X3NvZnRleHBp
cmVzID0gdGltZTsKMTQ0NzQ6ICB0aW1lci0+bm9kZS5leHBpcmVzID0ga3RpbWVfYWRkX3NhZmUo
dGltZSwgZGVsdGEpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJfc2V0X2V4
cGlyZXNfcmFuZ2VfbnMoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IHRpbWUsIHU2NCBk
ZWx0YSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB0aW1lci0+X3NvZnRleHBpcmVzID0gdGltZTsKMTQ0NzQ6
ICB0aW1lci0+bm9kZS5leHBpcmVzID0ga3RpbWVfYWRkX3NhZmUodGltZSwgbnNfdG9fa3RpbWUo
ZGVsdGEpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBocnRpbWVyX3NldF9leHBpcmVz
X3R2NjQoc3RydWN0IGhydGltZXIgKnRpbWVyLCBzNjQgdHY2NCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB0
aW1lci0+bm9kZS5leHBpcmVzID0gdHY2NDsKMTQ0NzQ6ICB0aW1lci0+X3NvZnRleHBpcmVzID0g
dHY2NDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBocnRpbWVyX2FkZF9leHBpcmVzKHN0
cnVjdCBocnRpbWVyICp0aW1lciwga3RpbWVfdCB0aW1lKQoxNDQ3NDogewoxNDQ3NDogIHRpbWVy
LT5ub2RlLmV4cGlyZXMgPSBrdGltZV9hZGRfc2FmZSh0aW1lci0+bm9kZS5leHBpcmVzLCB0aW1l
KTsKMTQ0NzQ6ICB0aW1lci0+X3NvZnRleHBpcmVzID0ga3RpbWVfYWRkX3NhZmUodGltZXItPl9z
b2Z0ZXhwaXJlcywgdGltZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0aW1lcl9h
ZGRfZXhwaXJlc19ucyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsIHU2NCBucykKMTQ0NzQ6IHsKMTQ0
NzQ6ICB0aW1lci0+bm9kZS5leHBpcmVzID0gKCh0aW1lci0+bm9kZS5leHBpcmVzKSArIChucykp
OwoxNDQ3NDogIHRpbWVyLT5fc29mdGV4cGlyZXMgPSAoKHRpbWVyLT5fc29mdGV4cGlyZXMpICsg
KG5zKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QgaHJ0aW1lcl9nZXRfZXhwaXJl
cyhjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRp
bWVyLT5ub2RlLmV4cGlyZXM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QgaHJ0aW1l
cl9nZXRfc29mdGV4cGlyZXMoY29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiB0aW1lci0+X3NvZnRleHBpcmVzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBzNjQgaHJ0aW1lcl9nZXRfZXhwaXJlc190djY0KGNvbnN0IHN0cnVjdCBocnRpbWVyICp0aW1l
cikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGltZXItPm5vZGUuZXhwaXJlczsKMTQ0NzQ6IH0K
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHM2NCBocnRpbWVyX2dldF9zb2Z0ZXhwaXJlc190djY0KGNvbnN0IHN0cnVjdCBocnRp
bWVyICp0aW1lcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGltZXItPl9zb2Z0ZXhwaXJlczsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGhydGltZXJfZ2V0X2V4cGlyZXNfbnMoY29uc3Qg
c3RydWN0IGhydGltZXIgKnRpbWVyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrdGltZV90b19u
cyh0aW1lci0+bm9kZS5leHBpcmVzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBo
cnRpbWVyX2V4cGlyZXNfcmVtYWluaW5nKGNvbnN0IHN0cnVjdCBocnRpbWVyICp0aW1lcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh0aW1lci0+bm9kZS5leHBpcmVzKSAtICh0aW1lci0+YmFz
ZS0+Z2V0X3RpbWUoKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGhydGltZXJf
Y2JfZ2V0X3RpbWUoc3RydWN0IGhydGltZXIgKnRpbWVyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biB0aW1lci0+YmFzZS0+Z2V0X3RpbWUoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGhy
dGltZXJfaXNfaHJlc19hY3RpdmUoc3RydWN0IGhydGltZXIgKnRpbWVyKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiAxID8KMTQ0NzQ6ICAgdGltZXItPmJhc2UtPmNwdV9iYXNlLT5ocmVzX2FjdGl2
ZSA6IDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsb2NrX2V2ZW50
X2RldmljZTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgaHJ0aW1lcl9pbnRlcnJ1cHQoc3Ry
dWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQg
Y2xvY2tfd2FzX3NldF9kZWxheWVkKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdW5zaWdu
ZWQgaW50IGhydGltZXJfcmVzb2x1dGlvbjsKMTQ0NzQ6ICMgMzMyICIuL2luY2x1ZGUvbGludXgv
aHJ0aW1lci5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdAoxNDQ3NDogX19ocnRpbWVyX2V4cGlyZXNfcmVtYWlu
aW5nX2FkanVzdGVkKGNvbnN0IHN0cnVjdCBocnRpbWVyICp0aW1lciwga3RpbWVfdCBub3cpCjE0
NDc0OiB7CjE0NDc0OiAga3RpbWVfdCByZW0gPSAoKHRpbWVyLT5ub2RlLmV4cGlyZXMpIC0gKG5v
dykpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpZiAo
MCAmJiB0aW1lci0+aXNfcmVsKQoxNDQ3NDogICByZW0gLT0gaHJ0aW1lcl9yZXNvbHV0aW9uOwox
NDQ3NDogIHJldHVybiByZW07CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QKMTQ0NzQ6
IGhydGltZXJfZXhwaXJlc19yZW1haW5pbmdfYWRqdXN0ZWQoY29uc3Qgc3RydWN0IGhydGltZXIg
KnRpbWVyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2hydGltZXJfZXhwaXJlc19yZW1haW5p
bmdfYWRqdXN0ZWQodGltZXIsCjE0NDc0OiAgICAgICAgICAgdGltZXItPmJhc2UtPmdldF90aW1l
KCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBjbG9ja193YXNfc2V0KHZv
aWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCB0aW1lcmZkX2Nsb2NrX3dhc19zZXQodm9p
ZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBocnRpbWVyc19y
ZXN1bWUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9u
KCIuZGF0YS4ucGVyY3B1IiAiIikpKSBfX3R5cGVvZl9fKHN0cnVjdCB0aWNrX2RldmljZSkgdGlj
a19jcHVfZGV2aWNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGhydGltZXJfY2FuY2VsX3dhaXRfcnVubmluZyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCjE0NDc0
OiB7CjE0NDc0OiAgY3B1X3JlbGF4KCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgaHJ0aW1lcl9pbml0KHN0cnVjdCBo
cnRpbWVyICp0aW1lciwgY2xvY2tpZF90IHdoaWNoX2Nsb2NrLAoxNDQ3NDogICAgIGVudW0gaHJ0
aW1lcl9tb2RlIG1vZGUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaHJ0aW1lcl9pbml0X3NsZWVwZXIo
c3RydWN0IGhydGltZXJfc2xlZXBlciAqc2wsIGNsb2NraWRfdCBjbG9ja19pZCwKMTQ0NzQ6ICAg
ICAgZW51bSBocnRpbWVyX21vZGUgbW9kZSk7CjE0NDc0OiAjIDM4OSAiLi9pbmNsdWRlL2xpbnV4
L2hydGltZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0aW1lcl9pbml0X29uX3N0YWNrKHN0cnVjdCBocnRp
bWVyICp0aW1lciwKMTQ0NzQ6ICAgICAgIGNsb2NraWRfdCB3aGljaF9jbG9jaywKMTQ0NzQ6ICAg
ICAgIGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpCjE0NDc0OiB7CjE0NDc0OiAgaHJ0aW1lcl9pbml0
KHRpbWVyLCB3aGljaF9jbG9jaywgbW9kZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
aHJ0aW1lcl9pbml0X3NsZWVwZXJfb25fc3RhY2soc3RydWN0IGhydGltZXJfc2xlZXBlciAqc2ws
CjE0NDc0OiAgICAgICAgY2xvY2tpZF90IGNsb2NrX2lkLAoxNDQ3NDogICAgICAgIGVudW0gaHJ0
aW1lcl9tb2RlIG1vZGUpCjE0NDc0OiB7CjE0NDc0OiAgaHJ0aW1lcl9pbml0X3NsZWVwZXIoc2ws
IGNsb2NrX2lkLCBtb2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXN0cm95X2hy
dGltZXJfb25fc3RhY2soc3RydWN0IGhydGltZXIgKnRpbWVyKSB7IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGhydGltZXJfc3RhcnRfcmFuZ2VfbnMoc3RydWN0
IGhydGltZXIgKnRpbWVyLCBrdGltZV90IHRpbSwKMTQ0NzQ6ICAgICAgICB1NjQgcmFuZ2VfbnMs
IGNvbnN0IGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpOwoxNDQ3NDogIyA0MTggIi4vaW5jbHVkZS9s
aW51eC9ocnRpbWVyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJfc3RhcnQoc3RydWN0IGhydGltZXIg
KnRpbWVyLCBrdGltZV90IHRpbSwKMTQ0NzQ6ICAgICAgY29uc3QgZW51bSBocnRpbWVyX21vZGUg
bW9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBocnRpbWVyX3N0YXJ0X3JhbmdlX25zKHRpbWVyLCB0aW0s
IDAsIG1vZGUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGhydGltZXJfY2Fu
Y2VsKHN0cnVjdCBocnRpbWVyICp0aW1lcik7CjE0NDc0OiBleHRlcm4gaW50IGhydGltZXJfdHJ5
X3RvX2NhbmNlbChzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhy
dGltZXJfc3RhcnRfZXhwaXJlcyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsCjE0NDc0OiAgICAgICBl
bnVtIGhydGltZXJfbW9kZSBtb2RlKQoxNDQ3NDogewoxNDQ3NDogIHU2NCBkZWx0YTsKMTQ0NzQ6
ICBrdGltZV90IHNvZnQsIGhhcmQ7CjE0NDc0OiAgc29mdCA9IGhydGltZXJfZ2V0X3NvZnRleHBp
cmVzKHRpbWVyKTsKMTQ0NzQ6ICBoYXJkID0gaHJ0aW1lcl9nZXRfZXhwaXJlcyh0aW1lcik7CjE0
NDc0OiAgZGVsdGEgPSBrdGltZV90b19ucygoKGhhcmQpIC0gKHNvZnQpKSk7CjE0NDc0OiAgaHJ0
aW1lcl9zdGFydF9yYW5nZV9ucyh0aW1lciwgc29mdCwgZGVsdGEsIG1vZGUpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiB2b2lkIGhydGltZXJfc2xlZXBlcl9zdGFydF9leHBpcmVzKHN0cnVjdCBo
cnRpbWVyX3NsZWVwZXIgKnNsLAoxNDQ3NDogICAgICAgIGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUp
OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJfcmVzdGFydChzdHJ1Y3QgaHJ0aW1lciAqdGlt
ZXIpCjE0NDc0OiB7CjE0NDc0OiAgaHJ0aW1lcl9zdGFydF9leHBpcmVzKHRpbWVyLCBIUlRJTUVS
X01PREVfQUJTKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4ga3RpbWVf
dCBfX2hydGltZXJfZ2V0X3JlbWFpbmluZyhjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsIGJv
b2wgYWRqdXN0KTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBocnRpbWVyX2dldF9yZW1haW5pbmco
Y29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2hy
dGltZXJfZ2V0X3JlbWFpbmluZyh0aW1lciwgZmFsc2UpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gdTY0IGhydGltZXJfZ2V0X25leHRfZXZlbnQodm9pZCk7CjE0NDc0OiBleHRlcm4g
dTY0IGhydGltZXJfbmV4dF9ldmVudF93aXRob3V0KGNvbnN0IHN0cnVjdCBocnRpbWVyICpleGNs
dWRlKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgaHJ0aW1lcl9hY3RpdmUoY29uc3Qgc3Ry
dWN0IGhydGltZXIgKnRpbWVyKTsKMTQ0NzQ6ICMgNDY3ICIuL2luY2x1ZGUvbGludXgvaHJ0aW1l
ci5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBocnRpbWVyX2lzX3F1ZXVlZChzdHJ1Y3QgaHJ0aW1lciAqdGltZXIp
CjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gISEoKHsgdW5pb24geyB0eXBlb2YodGlt
ZXItPnN0YXRlKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vf
c2l6ZSgmKHRpbWVyLT5zdGF0ZSksIF9fdS5fX2MsIHNpemVvZih0aW1lci0+c3RhdGUpKTsgZWxz
ZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJih0aW1lci0+c3RhdGUpLCBfX3UuX19jLCBzaXpl
b2YodGltZXItPnN0YXRlKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSkgJiAweDAx
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgaHJ0aW1lcl9jYWxsYmFja19ydW5uaW5nKHN0cnVjdCBocnRpbWVyICp0aW1lcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGltZXItPmJhc2UtPnJ1bm5pbmcgPT0gdGltZXI7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHU2NAoxNDQ3NDogaHJ0aW1lcl9mb3J3
YXJkKHN0cnVjdCBocnRpbWVyICp0aW1lciwga3RpbWVfdCBub3csIGt0aW1lX3QgaW50ZXJ2YWwp
OwoxNDQ3NDogIyA1MDIgIi4vaW5jbHVkZS9saW51eC9ocnRpbWVyLmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgaHJ0
aW1lcl9mb3J3YXJkX25vdyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsCjE0NDc0OiAgICAgICAgICAg
a3RpbWVfdCBpbnRlcnZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gaHJ0aW1lcl9mb3J3YXJk
KHRpbWVyLCB0aW1lci0+YmFzZS0+Z2V0X3RpbWUoKSwgaW50ZXJ2YWwpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBuYW5vc2xlZXBfY29weW91dChz
dHJ1Y3QgcmVzdGFydF9ibG9jayAqLCBzdHJ1Y3QgdGltZXNwZWM2NCAqKTsKMTQ0NzQ6IGV4dGVy
biBsb25nIGhydGltZXJfbmFub3NsZWVwKGt0aW1lX3QgcnF0cCwgY29uc3QgZW51bSBocnRpbWVy
X21vZGUgbW9kZSwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IGNsb2NraWRfdCBjbG9ja2lkKTsKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBzY2hlZHVsZV9ocnRpbWVvdXRfcmFuZ2Uoa3RpbWVfdCAq
ZXhwaXJlcywgdTY0IGRlbHRhLAoxNDQ3NDogICAgICAgICBjb25zdCBlbnVtIGhydGltZXJfbW9k
ZSBtb2RlKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2NoZWR1bGVfaHJ0aW1lb3V0X3JhbmdlX2Nsb2Nr
KGt0aW1lX3QgKmV4cGlyZXMsCjE0NDc0OiAgICAgICAgdTY0IGRlbHRhLAoxNDQ3NDogICAgICAg
IGNvbnN0IGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUsCjE0NDc0OiAgICAgICAgY2xvY2tpZF90IGNs
b2NrX2lkKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2NoZWR1bGVfaHJ0aW1lb3V0KGt0aW1lX3QgKmV4
cGlyZXMsIGNvbnN0IGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiB2b2lkIGhydGltZXJfcnVuX3F1ZXVlcyh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4
dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBocnRpbWVyc19pbml0KHZvaWQpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHN5c3JxX3RpbWVyX2xpc3Rfc2hvdyh2b2lk
KTsKMTQ0NzQ6IAoxNDQ3NDogaW50IGhydGltZXJzX3ByZXBhcmVfY3B1KHVuc2lnbmVkIGludCBj
cHUpOwoxNDQ3NDogCjE0NDc0OiBpbnQgaHJ0aW1lcnNfZGVhZF9jcHUodW5zaWduZWQgaW50IGNw
dSk7CjE0NDc0OiAjIDIxICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvbGludXgvc2VjY29tcC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2VjY29tcC5oIiAxCjE0NDc0OiAj
IDU5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zZWNjb21wLmgiCjE0NDc0OiBzdHJ1Y3Qgc2VjY29t
cF9kYXRhIHsKMTQ0NzQ6ICBpbnQgbnI7CjE0NDc0OiAgX191MzIgYXJjaDsKMTQ0NzQ6ICBfX3U2
NCBpbnN0cnVjdGlvbl9wb2ludGVyOwoxNDQ3NDogIF9fdTY0IGFyZ3NbNl07CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2VjY29tcF9ub3RpZl9zaXplcyB7CjE0NDc0OiAgX191MTYg
c2VjY29tcF9ub3RpZjsKMTQ0NzQ6ICBfX3UxNiBzZWNjb21wX25vdGlmX3Jlc3A7CjE0NDc0OiAg
X191MTYgc2VjY29tcF9kYXRhOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNlY2Nv
bXBfbm90aWYgewoxNDQ3NDogIF9fdTY0IGlkOwoxNDQ3NDogIF9fdTMyIHBpZDsKMTQ0NzQ6ICBf
X3UzMiBmbGFnczsKMTQ0NzQ6ICBzdHJ1Y3Qgc2VjY29tcF9kYXRhIGRhdGE7CjE0NDc0OiB9Owox
NDQ3NDogIyAxMDggIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NlY2NvbXAuaCIKMTQ0NzQ6IHN0cnVj
dCBzZWNjb21wX25vdGlmX3Jlc3AgewoxNDQ3NDogIF9fdTY0IGlkOwoxNDQ3NDogIF9fczY0IHZh
bDsKMTQ0NzQ6ICBfX3MzMiBlcnJvcjsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDYgIi4vaW5jbHVkZS9saW51eC9zZWNjb21wLmgiIDIKMTQ0NzQ6ICMgMTUgIi4vaW5j
bHVkZS9saW51eC9zZWNjb21wLmgiCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c2VjY29tcC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS91bmlzdGQuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS91bmlzdGQu
aCIgMQoxNDQ3NDogIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3VuaXN0ZC5oIiAyCjE0NDc0
OiAjIDE4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3VuaXN0ZC5oIgoxNDQ3NDogIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3VuaXN0ZF82NC5oIiAxCjE0NDc0OiAj
IDE5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3VuaXN0ZC5oIiAyCjE0NDc0OiAjIDEgIi4vYXJj
aC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvYXNtL3VuaXN0ZF82NF94MzIuaCIgMQoxNDQ3NDogIyAy
MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS91bmlzdGQuaCIgMgoxNDQ3NDogIyA2ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3NlY2NvbXAuaCIgMgoxNDQ3NDogIyAxOSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zZWNjb21wLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9zZWNj
b21wLmgiIDEKMTQ0NzQ6ICMgMTEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9zZWNjb21wLmgiCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3VuaXN0ZC5oIiAxCjE0NDc0OiAjIDEyICIu
L2luY2x1ZGUvYXNtLWdlbmVyaWMvc2VjY29tcC5oIiAyCjE0NDc0OiAjIDIwICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3NlY2NvbXAuaCIgMgoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3Nl
Y2NvbXAuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2VjY29tcF9maWx0ZXI7CjE0NDc0OiAj
IDI5ICIuL2luY2x1ZGUvbGludXgvc2VjY29tcC5oIgoxNDQ3NDogc3RydWN0IHNlY2NvbXAgewox
NDQ3NDogIGludCBtb2RlOwoxNDQ3NDogIHN0cnVjdCBzZWNjb21wX2ZpbHRlciAqZmlsdGVyOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fc2VjdXJlX2NvbXB1
dGluZyhjb25zdCBzdHJ1Y3Qgc2VjY29tcF9kYXRhICpzZCk7CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc2VjdXJlX2Nv
bXB1dGluZyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHRl
c3RfdGlfdGhyZWFkX2ZsYWcoKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilnZXRfY3VycmVudCgpKSwg
OCkpLCAwKSkKMTQ0NzQ6ICAgcmV0dXJuIF9fc2VjdXJlX2NvbXB1dGluZygoKHZvaWQgKikwKSk7
CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBsb25nIHByY3RsX2dldF9zZWNjb21wKHZvaWQpOwoxNDQ3NDogZXh0
ZXJuIGxvbmcgcHJjdGxfc2V0X3NlY2NvbXAodW5zaWduZWQgbG9uZywgdm9pZCAqKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IHNlY2NvbXBfbW9kZShzdHJ1Y3Qgc2VjY29tcCAqcykKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gcy0+bW9kZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgODQgIi4vaW5jbHVkZS9saW51
eC9zZWNjb21wLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBwdXRfc2VjY29tcF9maWx0ZXIoc3RydWN0
IHRhc2tfc3RydWN0ICp0c2spOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZ2V0X3NlY2NvbXBfZmlsdGVy
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKTsKMTQ0NzQ6ICMgOTggIi4vaW5jbHVkZS9saW51eC9z
ZWNjb21wLmgiCjE0NDc0OiBleHRlcm4gbG9uZyBzZWNjb21wX2dldF9maWx0ZXIoc3RydWN0IHRh
c2tfc3RydWN0ICp0YXNrLAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmlsdGVyX29m
Ziwgdm9pZCAqZGF0YSk7CjE0NDc0OiBleHRlcm4gbG9uZyBzZWNjb21wX2dldF9tZXRhZGF0YShz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssCjE0NDc0OiAgICAgIHVuc2lnbmVkIGxvbmcgZmlsdGVy
X29mZiwgdm9pZCAqZGF0YSk7CjE0NDc0OiAjIDIyICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIg
MgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvcmVz
b3VyY2UuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS91YXBpL2xpbnV4L3Jlc291cmNlLmgiIDEKMTQ0NzQ6ICMgMjQgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L3Jlc291cmNlLmgiCjE0NDc0OiBzdHJ1Y3QgcnVzYWdlIHsKMTQ0NzQ6ICBzdHJ1
Y3QgX19rZXJuZWxfb2xkX3RpbWV2YWwgcnVfdXRpbWU7CjE0NDc0OiAgc3RydWN0IF9fa2VybmVs
X29sZF90aW1ldmFsIHJ1X3N0aW1lOwoxNDQ3NDogIF9fa2VybmVsX2xvbmdfdCBydV9tYXhyc3M7
CjE0NDc0OiAgX19rZXJuZWxfbG9uZ190IHJ1X2l4cnNzOwoxNDQ3NDogIF9fa2VybmVsX2xvbmdf
dCBydV9pZHJzczsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3QgcnVfaXNyc3M7CjE0NDc0OiAgX19r
ZXJuZWxfbG9uZ190IHJ1X21pbmZsdDsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3QgcnVfbWFqZmx0
OwoxNDQ3NDogIF9fa2VybmVsX2xvbmdfdCBydV9uc3dhcDsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25n
X3QgcnVfaW5ibG9jazsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3QgcnVfb3VibG9jazsKMTQ0NzQ6
ICBfX2tlcm5lbF9sb25nX3QgcnVfbXNnc25kOwoxNDQ3NDogIF9fa2VybmVsX2xvbmdfdCBydV9t
c2dyY3Y7CjE0NDc0OiAgX19rZXJuZWxfbG9uZ190IHJ1X25zaWduYWxzOwoxNDQ3NDogIF9fa2Vy
bmVsX2xvbmdfdCBydV9udmNzdzsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3QgcnVfbml2Y3N3Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJsaW1pdCB7CjE0NDc0OiAgX19rZXJuZWxf
dWxvbmdfdCBybGltX2N1cjsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHJsaW1fbWF4OwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBybGltaXQ2NCB7CjE0
NDc0OiAgX191NjQgcmxpbV9jdXI7CjE0NDc0OiAgX191NjQgcmxpbV9tYXg7CjE0NDc0OiB9Owox
NDQ3NDogIyA3OCAiLi9pbmNsdWRlL3VhcGkvbGludXgvcmVzb3VyY2UuaCIKMTQ0NzQ6ICMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9yZXNvdXJjZS5oIiAxCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9yZXNvdXJjZS5oIiAxCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMv
cmVzb3VyY2UuaCIgMQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcmVzb3VyY2Uu
aCIgMgoxNDQ3NDogIyAyICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3Jl
c291cmNlLmgiIDIKMTQ0NzQ6ICMgNzkgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3Jlc291cmNlLmgi
IDIKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2xpbnV4L3Jlc291cmNlLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgdGFza19zdHJ1Y3Q7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZ2V0cnVz
YWdlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IHdobywgc3RydWN0IHJ1c2FnZSAqcnUpOwox
NDQ3NDogaW50IGRvX3BybGltaXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHVuc2lnbmVkIGlu
dCByZXNvdXJjZSwKMTQ0NzQ6ICAgc3RydWN0IHJsaW1pdCAqbmV3X3JsaW0sIHN0cnVjdCBybGlt
aXQgKm9sZF9ybGltKTsKMTQ0NzQ6ICMgMjYgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9sYXRlbmN5dG9wLmgiIDEKMTQ0NzQ6ICMgMTQgIi4v
aW5jbHVkZS9saW51eC9sYXRlbmN5dG9wLmgiCjE0NDc0OiBzdHJ1Y3QgdGFza19zdHJ1Y3Q7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgbGF0ZW5jeV9yZWNvcmQgewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgYmFja3RyYWNlWzEyXTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY291bnQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB0aW1lOwox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgbWF4OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbGF0ZW5jeXRvcF9lbmFibGVkOwoxNDQ3NDogdm9pZCBfX2Fj
Y291bnRfc2NoZWR1bGVyX2xhdGVuY3koc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBpbnQgdXNl
Y3MsIGludCBpbnRlcik7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhY2NvdW50X3NjaGVkdWxlcl9sYXRl
bmN5KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgaW50IHVzZWNzLCBpbnQgaW50ZXIpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEobGF0ZW5jeXRvcF9lbmFibGVkKSwg
MCkpCjE0NDc0OiAgIF9fYWNjb3VudF9zY2hlZHVsZXJfbGF0ZW5jeSh0YXNrLCB1c2VjcywgaW50
ZXIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB2b2lkIGNsZWFyX3Rza19sYXRlbmN5X3RyYWNp
bmcoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBzeXNj
dGxfbGF0ZW5jeXRvcChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoxNDQ3NDog
ICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CjE0NDc0OiAjIDI3
ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgv
c2NoZWQvcHJpby5oIiAxCjE0NDc0OiAjIDQ4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQvcHJpby5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgbG9uZyBuaWNlX3RvX3JsaW1pdChsb25nIG5pY2UpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuICgxOSAtIG5pY2UgKyAxKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgbG9uZyBybGltaXRfdG9fbmljZShsb25nIHByaW8pCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICgxOSAtIHByaW8gKyAxKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjggIi4vaW5j
bHVkZS9saW51eC9zY2hlZC5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zY2hlZC90
eXBlcy5oIiAxCjE0NDc0OiAjIDE3ICIuL2luY2x1ZGUvbGludXgvc2NoZWQvdHlwZXMuaCIKMTQ0
NzQ6IHN0cnVjdCB0YXNrX2NwdXRpbWUgewoxNDQ3NDogIHU2NCBzdGltZTsKMTQ0NzQ6ICB1NjQg
dXRpbWU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIHN1bV9leGVjX3J1bnRpbWU7CjE0NDc0
OiB9OwoxNDQ3NDogIyAyOSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3NpZ25hbF90eXBlcy5oIiAxCjE0NDc0OiAjIDEwICIuL2luY2x1ZGUv
bGludXgvc2lnbmFsX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3Np
Z25hbC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zaWduYWwuaCIgMQoxNDQ3NDogIyAyMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zaWduYWwuaCIKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBvbGRfc2ln
c2V0X3Q7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHsKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIHNpZ1soNjQgLyA2NCldOwoxNDQ3NDogfSBzaWdzZXRfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgc2lnc2V0X3QgY29t
cGF0X3NpZ3NldF90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiIDEKMTQ0NzQ6ICMgMTEgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9zaWduYWwuaCIKMTQ0NzQ6IHN0cnVjdCBzaWdpbmZvOwoxNDQ3NDog
IyA5NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NpZ25hbC5oIgoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9zaWduYWwtZGVmcy5oIiAxCjE0NDc0OiAjIDE4ICIu
L2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9zaWduYWwtZGVmcy5oIgoxNDQ3NDogdHlwZWRlZiB2
b2lkIF9fc2lnbmFsZm5fdChpbnQpOwoxNDQ3NDogdHlwZWRlZiBfX3NpZ25hbGZuX3QgKl9fc2ln
aGFuZGxlcl90OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHZvaWQgX19yZXN0b3JlZm5fdCh2b2lk
KTsKMTQ0NzQ6IHR5cGVkZWYgX19yZXN0b3JlZm5fdCAqX19zaWdyZXN0b3JlX3Q7CjE0NDc0OiAj
IDk1ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiIDIKMTQ0NzQ6ICMgMTI4
ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiCjE0NDc0OiB0eXBlZGVmIHN0
cnVjdCBzaWdhbHRzdGFjayB7CjE0NDc0OiAgdm9pZCAqc3Nfc3A7CjE0NDc0OiAgaW50IHNzX2Zs
YWdzOwoxNDQ3NDogIHNpemVfdCBzc19zaXplOwoxNDQ3NDogfSBzdGFja190OwoxNDQ3NDogIyAz
NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zaWduYWwuaCIgMgoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBkb19zaWduYWwoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwoxNDQ3NDogIyA2ICIuL2lu
Y2x1ZGUvdWFwaS9saW51eC9zaWduYWwuaCIgMgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1
ZGUvdWFwaS9hc20vc2lnaW5mby5oIiAxCjE0NDc0OiAjIDEzICIuL2FyY2gveDg2L2luY2x1ZGUv
dWFwaS9hc20vc2lnaW5mby5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJp
Yy9zaWdpbmZvLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1bmlvbiBzaWd2YWwgewoxNDQ3NDogIGludCBz
aXZhbF9pbnQ7CjE0NDc0OiAgdm9pZCAqc2l2YWxfcHRyOwoxNDQ3NDogfSBzaWd2YWxfdDsKMTQ0
NzQ6ICMgMzIgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3NpZ2luZm8uaCIKMTQ0NzQ6IHVu
aW9uIF9fc2lmaWVsZHMgewoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgX19rZXJu
ZWxfcGlkX3QgX3BpZDsKMTQ0NzQ6ICAgX19rZXJuZWxfdWlkMzJfdCBfdWlkOwoxNDQ3NDogIH0g
X2tpbGw7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIF9fa2VybmVs
X3RpbWVyX3QgX3RpZDsKMTQ0NzQ6ICAgaW50IF9vdmVycnVuOwoxNDQ3NDogICBzaWd2YWxfdCBf
c2lndmFsOwoxNDQ3NDogICBpbnQgX3N5c19wcml2YXRlOwoxNDQ3NDogIH0gX3RpbWVyOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICBfX2tlcm5lbF9waWRfdCBfcGlk
OwoxNDQ3NDogICBfX2tlcm5lbF91aWQzMl90IF91aWQ7CjE0NDc0OiAgIHNpZ3ZhbF90IF9zaWd2
YWw7CjE0NDc0OiAgfSBfcnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0
OiAgIF9fa2VybmVsX3BpZF90IF9waWQ7CjE0NDc0OiAgIF9fa2VybmVsX3VpZDMyX3QgX3VpZDsK
MTQ0NzQ6ICAgaW50IF9zdGF0dXM7CjE0NDc0OiAgIF9fa2VybmVsX2Nsb2NrX3QgX3V0aW1lOwox
NDQ3NDogICBfX2tlcm5lbF9jbG9ja190IF9zdGltZTsKMTQ0NzQ6ICB9IF9zaWdjaGxkOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB2b2lkICpfYWRkcjsKMTQ0NzQ6
ICMgNzcgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3NpZ2luZm8uaCIKMTQ0NzQ6ICAgdW5p
b24gewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgICBzaG9ydCBfYWRk
cl9sc2I7CjE0NDc0OiAKMTQ0NzQ6ICAgIHN0cnVjdCB7CjE0NDc0OiAgICAgY2hhciBfZHVtbXlf
Ym5kWyhfX2FsaWdub2ZfXyh2b2lkICopIDwgc2l6ZW9mKHNob3J0KSA/IHNpemVvZihzaG9ydCkg
OiBfX2FsaWdub2ZfXyh2b2lkICopKV07CjE0NDc0OiAgICAgdm9pZCAqX2xvd2VyOwoxNDQ3NDog
ICAgIHZvaWQgKl91cHBlcjsKMTQ0NzQ6ICAgIH0gX2FkZHJfYm5kOwoxNDQ3NDogCjE0NDc0OiAg
ICBzdHJ1Y3QgewoxNDQ3NDogICAgIGNoYXIgX2R1bW15X3BrZXlbKF9fYWxpZ25vZl9fKHZvaWQg
KikgPCBzaXplb2Yoc2hvcnQpID8gc2l6ZW9mKHNob3J0KSA6IF9fYWxpZ25vZl9fKHZvaWQgKikp
XTsKMTQ0NzQ6ICAgICBfX3UzMiBfcGtleTsKMTQ0NzQ6ICAgIH0gX2FkZHJfcGtleTsKMTQ0NzQ6
ICAgfTsKMTQ0NzQ6ICB9IF9zaWdmYXVsdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0
IHsKMTQ0NzQ6ICAgbG9uZyBfYmFuZDsKMTQ0NzQ6ICAgaW50IF9mZDsKMTQ0NzQ6ICB9IF9zaWdw
b2xsOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB2b2lkICpfY2Fs
bF9hZGRyOwoxNDQ3NDogICBpbnQgX3N5c2NhbGw7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfYXJj
aDsKMTQ0NzQ6ICB9IF9zaWdzeXM7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMjkgIi4vaW5jbHVkZS91
YXBpL2FzbS1nZW5lcmljL3NpZ2luZm8uaCIKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHNpZ2luZm8g
ewoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHsgaW50IHNpX3NpZ25vOyBpbnQgc2lf
ZXJybm87IGludCBzaV9jb2RlOyB1bmlvbiBfX3NpZmllbGRzIF9zaWZpZWxkczsgfTsKMTQ0NzQ6
ICAgaW50IF9zaV9wYWRbMTI4L3NpemVvZihpbnQpXTsKMTQ0NzQ6ICB9OwoxNDQ3NDogfSBzaWdp
bmZvX3Q7CjE0NDc0OiAjIDMyMCAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvc2lnaW5mby5o
IgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3Qgc2lnZXZlbnQgewoxNDQ3NDogIHNpZ3ZhbF90IHNpZ2V2
X3ZhbHVlOwoxNDQ3NDogIGludCBzaWdldl9zaWdubzsKMTQ0NzQ6ICBpbnQgc2lnZXZfbm90aWZ5
OwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgaW50IF9wYWRbKCg2NCAtIChzaXplb2YoaW50KSAq
IDIgKyBzaXplb2Yoc2lndmFsX3QpKSkgLyBzaXplb2YoaW50KSldOwoxNDQ3NDogICAgaW50IF90
aWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIHZvaWQgKCpfZnVuY3Rpb24p
KHNpZ3ZhbF90KTsKMTQ0NzQ6ICAgIHZvaWQgKl9hdHRyaWJ1dGU7CjE0NDc0OiAgIH0gX3NpZ2V2
X3RocmVhZDsKMTQ0NzQ6ICB9IF9zaWdldl91bjsKMTQ0NzQ6IH0gc2lnZXZlbnRfdDsKMTQ0NzQ6
ICMgMTQgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWdpbmZvLmgiIDIKMTQ0NzQ6ICMg
NyAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2lnbmFsLmgiIDIKMTQ0NzQ6ICMgMTEgIi4vaW5jbHVk
ZS9saW51eC9zaWduYWxfdHlwZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBr
ZXJuZWxfc2lnaW5mbyB7CjE0NDc0OiAgc3RydWN0IHsgaW50IHNpX3NpZ25vOyBpbnQgc2lfZXJy
bm87IGludCBzaV9jb2RlOyB1bmlvbiBfX3NpZmllbGRzIF9zaWZpZWxkczsgfTsKMTQ0NzQ6IH0g
a2VybmVsX3NpZ2luZm9fdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3Qgc2lncXVldWUgewoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsK
MTQ0NzQ6ICBpbnQgZmxhZ3M7CjE0NDc0OiAga2VybmVsX3NpZ2luZm9fdCBpbmZvOwoxNDQ3NDog
IHN0cnVjdCB1c2VyX3N0cnVjdCAqdXNlcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzaWdwZW5kaW5nIHsKMTQ0NzQ6ICBzdHJ1Y3QgbGlz
dF9oZWFkIGxpc3Q7CjE0NDc0OiAgc2lnc2V0X3Qgc2lnbmFsOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IHNpZ2FjdGlvbiB7CjE0NDc0OiAKMTQ0NzQ6ICBfX3NpZ2hhbmRsZXJfdCBz
YV9oYW5kbGVyOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc2FfZmxhZ3M7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fc2lncmVzdG9yZV90IHNhX3Jlc3Rv
cmVyOwoxNDQ3NDogCjE0NDc0OiAgc2lnc2V0X3Qgc2FfbWFzazsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBrX3NpZ2FjdGlvbiB7CjE0NDc0OiAgc3RydWN0IHNpZ2FjdGlvbiBzYTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAjIDY1ICIuL2luY2x1ZGUv
bGludXgvc2lnbmFsX3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3Qga3NpZ25hbCB7CjE0NDc0OiAgc3Ry
dWN0IGtfc2lnYWN0aW9uIGthOwoxNDQ3NDogIGtlcm5lbF9zaWdpbmZvX3QgaW5mbzsKMTQ0NzQ6
ICBpbnQgc2lnOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzAgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5o
IiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3Rhc2tfaW9fYWNjb3VudGlu
Zy5oIiAxCjE0NDc0OiAjIDEyICIuL2luY2x1ZGUvbGludXgvdGFza19pb19hY2NvdW50aW5nLmgi
CjE0NDc0OiBzdHJ1Y3QgdGFza19pb19hY2NvdW50aW5nIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgdTY0IHJjaGFyOwoxNDQ3NDogCjE0NDc0OiAgdTY0IHdjaGFyOwoxNDQ3NDogCjE0NDc0OiAg
dTY0IHN5c2NyOwoxNDQ3NDogCjE0NDc0OiAgdTY0IHN5c2N3OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTY0IHJlYWRfYnl0
ZXM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHU2NCB3
cml0ZV9ieXRlczsKMTQ0NzQ6ICMgNDQgIi4vaW5jbHVkZS9saW51eC90YXNrX2lvX2FjY291bnRp
bmcuaCIKMTQ0NzQ6ICB1NjQgY2FuY2VsbGVkX3dyaXRlX2J5dGVzOwoxNDQ3NDogCjE0NDc0OiB9
OwoxNDQ3NDogIyAzMiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6ICMgMSAiLi9p
bmNsdWRlL2xpbnV4L3Bvc2l4LXRpbWVycy5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9hbGFybXRp
bWVyLmgiIDEKMTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL2xpbnV4L2FsYXJtdGltZXIuaCIKMTQ0NzQ6
IHN0cnVjdCBydGNfZGV2aWNlOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGFsYXJtdGltZXJfdHlwZSB7
CjE0NDc0OiAgQUxBUk1fUkVBTFRJTUUsCjE0NDc0OiAgQUxBUk1fQk9PVFRJTUUsCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIEFMQVJNX05VTVRZUEUsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIEFM
QVJNX1JFQUxUSU1FX0ZSRUVaRVIsCjE0NDc0OiAgQUxBUk1fQk9PVFRJTUVfRlJFRVpFUiwKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYWxhcm10aW1lcl9yZXN0YXJ0IHsKMTQ0NzQ6ICBB
TEFSTVRJTUVSX05PUkVTVEFSVCwKMTQ0NzQ6ICBBTEFSTVRJTUVSX1JFU1RBUlQsCjE0NDc0OiB9
OwoxNDQ3NDogIyA0MiAiLi9pbmNsdWRlL2xpbnV4L2FsYXJtdGltZXIuaCIKMTQ0NzQ6IHN0cnVj
dCBhbGFybSB7CjE0NDc0OiAgc3RydWN0IHRpbWVycXVldWVfbm9kZSBub2RlOwoxNDQ3NDogIHN0
cnVjdCBocnRpbWVyIHRpbWVyOwoxNDQ3NDogIGVudW0gYWxhcm10aW1lcl9yZXN0YXJ0ICgqZnVu
Y3Rpb24pKHN0cnVjdCBhbGFybSAqLCBrdGltZV90IG5vdyk7CjE0NDc0OiAgZW51bSBhbGFybXRp
bWVyX3R5cGUgdHlwZTsKMTQ0NzQ6ICBpbnQgc3RhdGU7CjE0NDc0OiAgdm9pZCAqZGF0YTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgYWxhcm1faW5pdChzdHJ1Y3QgYWxhcm0gKmFsYXJt
LCBlbnVtIGFsYXJtdGltZXJfdHlwZSB0eXBlLAoxNDQ3NDogICBlbnVtIGFsYXJtdGltZXJfcmVz
dGFydCAoKmZ1bmN0aW9uKShzdHJ1Y3QgYWxhcm0gKiwga3RpbWVfdCkpOwoxNDQ3NDogdm9pZCBh
bGFybV9zdGFydChzdHJ1Y3QgYWxhcm0gKmFsYXJtLCBrdGltZV90IHN0YXJ0KTsKMTQ0NzQ6IHZv
aWQgYWxhcm1fc3RhcnRfcmVsYXRpdmUoc3RydWN0IGFsYXJtICphbGFybSwga3RpbWVfdCBzdGFy
dCk7CjE0NDc0OiB2b2lkIGFsYXJtX3Jlc3RhcnQoc3RydWN0IGFsYXJtICphbGFybSk7CjE0NDc0
OiBpbnQgYWxhcm1fdHJ5X3RvX2NhbmNlbChzdHJ1Y3QgYWxhcm0gKmFsYXJtKTsKMTQ0NzQ6IGlu
dCBhbGFybV9jYW5jZWwoc3RydWN0IGFsYXJtICphbGFybSk7CjE0NDc0OiAKMTQ0NzQ6IHU2NCBh
bGFybV9mb3J3YXJkKHN0cnVjdCBhbGFybSAqYWxhcm0sIGt0aW1lX3Qgbm93LCBrdGltZV90IGlu
dGVydmFsKTsKMTQ0NzQ6IHU2NCBhbGFybV9mb3J3YXJkX25vdyhzdHJ1Y3QgYWxhcm0gKmFsYXJt
LCBrdGltZV90IGludGVydmFsKTsKMTQ0NzQ6IGt0aW1lX3QgYWxhcm1fZXhwaXJlc19yZW1haW5p
bmcoY29uc3Qgc3RydWN0IGFsYXJtICphbGFybSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgcnRjX2RldmljZSAqYWxhcm10aW1lcl9nZXRfcnRjZGV2KHZvaWQpOwoxNDQ3
NDogIyA4ICIuL2luY2x1ZGUvbGludXgvcG9zaXgtdGltZXJzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3Qga2VybmVsX3NpZ2luZm87CjE0NDc0OiBzdHJ1Y3QgdGFza19zdHJ1Y3Q7
CjE0NDc0OiAjIDM4ICIuL2luY2x1ZGUvbGludXgvcG9zaXgtdGltZXJzLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjbG9j
a2lkX3QgbWFrZV9wcm9jZXNzX2NwdWNsb2NrKGNvbnN0IHVuc2lnbmVkIGludCBwaWQsCjE0NDc0
OiAgIGNvbnN0IGNsb2NraWRfdCBjbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh+cGlk
KSA8PCAzKSB8IGNsb2NrOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2xvY2tpZF90IG1ha2VfdGhyZWFkX2Nw
dWNsb2NrKGNvbnN0IHVuc2lnbmVkIGludCB0aWQsCjE0NDc0OiAgIGNvbnN0IGNsb2NraWRfdCBj
bG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbWFrZV9wcm9jZXNzX2NwdWNsb2NrKHRpZCwg
Y2xvY2sgfCA0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2xvY2tpZF90IGZkX3RvX2Nsb2Nr
aWQoY29uc3QgaW50IGZkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBtYWtlX3Byb2Nlc3NfY3B1
Y2xvY2soKHVuc2lnbmVkIGludCkgZmQsIDMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
Y2xvY2tpZF90b19mZChjb25zdCBjbG9ja2lkX3QgY2xrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biB+KGNsayA+PiAzKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjkgIi4vaW5jbHVkZS9saW51eC9wb3Np
eC10aW1lcnMuaCIKMTQ0NzQ6IHN0cnVjdCBjcHVfdGltZXIgewoxNDQ3NDogIHN0cnVjdCB0aW1l
cnF1ZXVlX25vZGUgbm9kZTsKMTQ0NzQ6ICBzdHJ1Y3QgdGltZXJxdWV1ZV9oZWFkICpoZWFkOwox
NDQ3NDogIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFk
IGVsaXN0OwoxNDQ3NDogIGludCBmaXJpbmc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IGNwdV90aW1lcl9lbnF1ZXVlKHN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgKmhlYWQsCjE0NDc0OiAg
ICAgICAgICBzdHJ1Y3QgY3B1X3RpbWVyICpjdG1yKQoxNDQ3NDogewoxNDQ3NDogIGN0bXItPmhl
YWQgPSBoZWFkOwoxNDQ3NDogIHJldHVybiB0aW1lcnF1ZXVlX2FkZChoZWFkLCAmY3Rtci0+bm9k
ZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1X3RpbWVyX2RlcXVldWUoc3RydWN0
IGNwdV90aW1lciAqY3RtcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoY3Rtci0+aGVhZCkgewoxNDQ3
NDogICB0aW1lcnF1ZXVlX2RlbChjdG1yLT5oZWFkLCAmY3Rtci0+bm9kZSk7CjE0NDc0OiAgIGN0
bXItPmhlYWQgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHU2NCBjcHVfdGltZXJfZ2V0ZXhwaXJlcyhzdHJ1Y3QgY3B1X3RpbWVyICpjdG1yKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBjdG1yLT5ub2RlLmV4cGlyZXM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgY3B1X3RpbWVyX3NldGV4cGlyZXMoc3RydWN0IGNwdV90aW1lciAqY3RtciwgdTY0
IGV4cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBjdG1yLT5ub2RlLmV4cGlyZXMgPSBleHA7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgcG9zaXhfY3B1dGltZXJfYmFzZSB7CjE0NDc0OiAgdTY0IG5leHRldnQ7CjE0NDc0OiAg
c3RydWN0IHRpbWVycXVldWVfaGVhZCB0cWhlYWQ7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMjIgIi4v
aW5jbHVkZS9saW51eC9wb3NpeC10aW1lcnMuaCIKMTQ0NzQ6IHN0cnVjdCBwb3NpeF9jcHV0aW1l
cnMgewoxNDQ3NDogIHN0cnVjdCBwb3NpeF9jcHV0aW1lcl9iYXNlIGJhc2VzWzNdOwoxNDQ3NDog
IHVuc2lnbmVkIGludCB0aW1lcnNfYWN0aXZlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBleHBpcnlf
YWN0aXZlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwb3NpeF9jcHV0aW1lcnNfaW5p
dChzdHJ1Y3QgcG9zaXhfY3B1dGltZXJzICpwY3QpCjE0NDc0OiB7CjE0NDc0OiAgbWVtc2V0KHBj
dCwgMCwgc2l6ZW9mKCpwY3QpKTsKMTQ0NzQ6ICBwY3QtPmJhc2VzWzBdLm5leHRldnQgPSAoKHU2
NCl+MFVMTCk7CjE0NDc0OiAgcGN0LT5iYXNlc1sxXS5uZXh0ZXZ0ID0gKCh1NjQpfjBVTEwpOwox
NDQ3NDogIHBjdC0+YmFzZXNbMl0ubmV4dGV2dCA9ICgodTY0KX4wVUxMKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogdm9pZCBwb3NpeF9jcHV0aW1lcnNfZ3JvdXBfaW5pdChzdHJ1Y3QgcG9zaXhf
Y3B1dGltZXJzICpwY3QsIHU2NCBjcHVfbGltaXQpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBvc2l4
X2NwdXRpbWVyc19ydF93YXRjaGRvZyhzdHJ1Y3QgcG9zaXhfY3B1dGltZXJzICpwY3QsCjE0NDc0
OiAgICAgICAgICAgICB1NjQgcnVudGltZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBwY3QtPmJhc2VzWzJd
Lm5leHRldnQgPSBydW50aW1lOwoxNDQ3NDogfQoxNDQ3NDogIyAxOTMgIi4vaW5jbHVkZS9saW51
eC9wb3NpeC10aW1lcnMuaCIKMTQ0NzQ6IHN0cnVjdCBrX2l0aW1lciB7CjE0NDc0OiAgc3RydWN0
IGxpc3RfaGVhZCBsaXN0OwoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlIHRfaGFzaDsKMTQ0NzQ6
ICBzcGlubG9ja190IGl0X2xvY2s7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGtfY2xvY2sgKmtjbG9j
azsKMTQ0NzQ6ICBjbG9ja2lkX3QgaXRfY2xvY2s7CjE0NDc0OiAgdGltZXJfdCBpdF9pZDsKMTQ0
NzQ6ICBpbnQgaXRfYWN0aXZlOwoxNDQ3NDogIHM2NCBpdF9vdmVycnVuOwoxNDQ3NDogIHM2NCBp
dF9vdmVycnVuX2xhc3Q7CjE0NDc0OiAgaW50IGl0X3JlcXVldWVfcGVuZGluZzsKMTQ0NzQ6ICBp
bnQgaXRfc2lnZXZfbm90aWZ5OwoxNDQ3NDogIGt0aW1lX3QgaXRfaW50ZXJ2YWw7CjE0NDc0OiAg
c3RydWN0IHNpZ25hbF9zdHJ1Y3QgKml0X3NpZ25hbDsKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAg
IHN0cnVjdCBwaWQgKml0X3BpZDsKMTQ0NzQ6ICAgc3RydWN0IHRhc2tfc3RydWN0ICppdF9wcm9j
ZXNzOwoxNDQ3NDogIH07CjE0NDc0OiAgc3RydWN0IHNpZ3F1ZXVlICpzaWdxOwoxNDQ3NDogIHVu
aW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIHN0cnVjdCBocnRpbWVyIHRpbWVyOwox
NDQ3NDogICB9IHJlYWw7CjE0NDc0OiAgIHN0cnVjdCBjcHVfdGltZXIgY3B1OwoxNDQ3NDogICBz
dHJ1Y3QgewoxNDQ3NDogICAgc3RydWN0IGFsYXJtIGFsYXJtdGltZXI7CjE0NDc0OiAgIH0gYWxh
cm07CjE0NDc0OiAgfSBpdDsKMTQ0NzQ6ICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCByY3U7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lkIHJ1bl9wb3NpeF9jcHVfdGltZXJzKHZvaWQpOwoxNDQ3
NDogdm9pZCBwb3NpeF9jcHVfdGltZXJzX2V4aXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsK
MTQ0NzQ6IHZvaWQgcG9zaXhfY3B1X3RpbWVyc19leGl0X2dyb3VwKHN0cnVjdCB0YXNrX3N0cnVj
dCAqdGFzayk7CjE0NDc0OiB2b2lkIHNldF9wcm9jZXNzX2NwdV90aW1lcihzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBjbG9ja19pZHgsCjE0NDc0OiAgICAgICB1NjQgKm5l
d3ZhbCwgdTY0ICpvbGR2YWwpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHVwZGF0ZV9ybGltaXRfY3B1
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgdW5zaWduZWQgbG9uZyBybGltX25ldyk7CjE0NDc0
OiAKMTQ0NzQ6IHZvaWQgcG9zaXh0aW1lcl9yZWFybShzdHJ1Y3Qga2VybmVsX3NpZ2luZm8gKmlu
Zm8pOwoxNDQ3NDogIyAzMyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5oIiAxCjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvdWFw
aS9saW51eC9yc2VxLmgiCjE0NDc0OiBlbnVtIHJzZXFfY3B1X2lkX3N0YXRlIHsKMTQ0NzQ6ICBS
U0VRX0NQVV9JRF9VTklOSVRJQUxJWkVEID0gLTEsCjE0NDc0OiAgUlNFUV9DUFVfSURfUkVHSVNU
UkFUSU9OX0ZBSUxFRCA9IC0yLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSByc2VxX2Zs
YWdzIHsKMTQ0NzQ6ICBSU0VRX0ZMQUdfVU5SRUdJU1RFUiA9ICgxIDw8IDApLAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSByc2VxX2NzX2ZsYWdzX2JpdCB7CjE0NDc0OiAgUlNFUV9DU19G
TEFHX05PX1JFU1RBUlRfT05fUFJFRU1QVF9CSVQgPSAwLAoxNDQ3NDogIFJTRVFfQ1NfRkxBR19O
T19SRVNUQVJUX09OX1NJR05BTF9CSVQgPSAxLAoxNDQ3NDogIFJTRVFfQ1NfRkxBR19OT19SRVNU
QVJUX09OX01JR1JBVEVfQklUID0gMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcnNl
cV9jc19mbGFncyB7CjE0NDc0OiAgUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fUFJFRU1QVCA9
CjE0NDc0OiAgICgxVSA8PCBSU0VRX0NTX0ZMQUdfTk9fUkVTVEFSVF9PTl9QUkVFTVBUX0JJVCks
CjE0NDc0OiAgUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fU0lHTkFMID0KMTQ0NzQ6ICAgKDFV
IDw8IFJTRVFfQ1NfRkxBR19OT19SRVNUQVJUX09OX1NJR05BTF9CSVQpLAoxNDQ3NDogIFJTRVFf
Q1NfRkxBR19OT19SRVNUQVJUX09OX01JR1JBVEUgPQoxNDQ3NDogICAoMVUgPDwgUlNFUV9DU19G
TEFHX05PX1JFU1RBUlRfT05fTUlHUkFURV9CSVQpLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCByc2VxX2NzIHsK
MTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIHZlcnNpb247CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBmbGFn
czsKMTQ0NzQ6ICBfX3U2NCBzdGFydF9pcDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTY0IHBvc3RfY29t
bWl0X29mZnNldDsKMTQ0NzQ6ICBfX3U2NCBhYm9ydF9pcDsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVf
XygoYWxpZ25lZCg0ICogc2l6ZW9mKF9fdTY0KSkpKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJzZXEgewoxNDQ3
NDogIyA3NSAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5oIgoxNDQ3NDogIF9fdTMyIGNwdV9p
ZF9zdGFydDsKMTQ0NzQ6ICMgOTAgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3JzZXEuaCIKMTQ0NzQ6
ICBfX3UzMiBjcHVfaWQ7CjE0NDc0OiAjIDEwOSAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5o
IgoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgX191NjQgcHRyNjQ7CjE0NDc0OiAKMTQ0NzQ6ICAg
X191NjQgcHRyOwoxNDQ3NDogIyAxMjQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3JzZXEuaCIKMTQ0
NzQ6ICB9IHJzZXFfY3M7CjE0NDc0OiAjIDE0NCAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5o
IgoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQg
KiBzaXplb2YoX191NjQpKSkpOwoxNDQ3NDogIyAzNCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXVkaXRfY29udGV4dDsKMTQ0NzQ6IHN0
cnVjdCBiYWNraW5nX2Rldl9pbmZvOwoxNDQ3NDogc3RydWN0IGJpb19saXN0OwoxNDQ3NDogc3Ry
dWN0IGJsa19wbHVnOwoxNDQ3NDogc3RydWN0IGNhcHR1cmVfY29udHJvbDsKMTQ0NzQ6IHN0cnVj
dCBjZnNfcnE7CjE0NDc0OiBzdHJ1Y3QgZnNfc3RydWN0OwoxNDQ3NDogc3RydWN0IGZ1dGV4X3Bp
X3N0YXRlOwoxNDQ3NDogc3RydWN0IGlvX2NvbnRleHQ7CjE0NDc0OiBzdHJ1Y3QgbWVtcG9saWN5
OwoxNDQ3NDogc3RydWN0IG5hbWVpZGF0YTsKMTQ0NzQ6IHN0cnVjdCBuc3Byb3h5OwoxNDQ3NDog
c3RydWN0IHBlcmZfZXZlbnRfY29udGV4dDsKMTQ0NzQ6IHN0cnVjdCBwaWRfbmFtZXNwYWNlOwox
NDQ3NDogc3RydWN0IHBpcGVfaW5vZGVfaW5mbzsKMTQ0NzQ6IHN0cnVjdCByY3Vfbm9kZTsKMTQ0
NzQ6IHN0cnVjdCByZWNsYWltX3N0YXRlOwoxNDQ3NDogc3RydWN0IHJvYnVzdF9saXN0X2hlYWQ7
CjE0NDc0OiBzdHJ1Y3Qgcm9vdF9kb21haW47CjE0NDc0OiBzdHJ1Y3QgcnE7CjE0NDc0OiBzdHJ1
Y3Qgc2NoZWRfYXR0cjsKMTQ0NzQ6IHN0cnVjdCBzY2hlZF9wYXJhbTsKMTQ0NzQ6IHN0cnVjdCBz
ZXFfZmlsZTsKMTQ0NzQ6IHN0cnVjdCBzaWdoYW5kX3N0cnVjdDsKMTQ0NzQ6IHN0cnVjdCBzaWdu
YWxfc3RydWN0OwoxNDQ3NDogc3RydWN0IHRhc2tfZGVsYXlfaW5mbzsKMTQ0NzQ6IHN0cnVjdCB0
YXNrX2dyb3VwOwoxNDQ3NDogIyAyMTUgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDog
ZXh0ZXJuIHZvaWQgc2NoZWR1bGVyX3RpY2sodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0KGxvbmcgdGltZW91dCk7CjE0NDc0
OiBleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUobG9uZyB0aW1lb3V0
KTsKMTQ0NzQ6IGV4dGVybiBsb25nIHNjaGVkdWxlX3RpbWVvdXRfa2lsbGFibGUobG9uZyB0aW1l
b3V0KTsKMTQ0NzQ6IGV4dGVybiBsb25nIHNjaGVkdWxlX3RpbWVvdXRfdW5pbnRlcnJ1cHRpYmxl
KGxvbmcgdGltZW91dCk7CjE0NDc0OiBleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0X2lkbGUo
bG9uZyB0aW1lb3V0KTsKMTQ0NzQ6ICB2b2lkIHNjaGVkdWxlKHZvaWQpOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgc2NoZWR1bGVfcHJlZW1wdF9kaXNhYmxlZCh2b2lkKTsKMTQ0NzQ6ICB2b2lkIHByZWVt
cHRfc2NoZWR1bGVfaXJxKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBpb19zY2hlZHVsZV9wcmVwYXJlKHZvaWQp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgaW9fc2NoZWR1bGVfZmluaXNoKGludCB0b2tlbik7CjE0NDc0
OiBleHRlcm4gbG9uZyBpb19zY2hlZHVsZV90aW1lb3V0KGxvbmcgdGltZW91dCk7CjE0NDc0OiBl
eHRlcm4gdm9pZCBpb19zY2hlZHVsZSh2b2lkKTsKMTQ0NzQ6ICMgMjQyICIuL2luY2x1ZGUvbGlu
dXgvc2NoZWQuaCIKMTQ0NzQ6IHN0cnVjdCBwcmV2X2NwdXRpbWUgewoxNDQ3NDogCjE0NDc0OiAg
dTY0IHV0aW1lOwoxNDQ3NDogIHU2NCBzdGltZTsKMTQ0NzQ6ICByYXdfc3BpbmxvY2tfdCBsb2Nr
OwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHZ0aW1lX3N0YXRlIHsKMTQ0
NzQ6IAoxNDQ3NDogIFZUSU1FX0lOQUNUSVZFID0gMCwKMTQ0NzQ6IAoxNDQ3NDogIFZUSU1FX0lE
TEUsCjE0NDc0OiAKMTQ0NzQ6ICBWVElNRV9TWVMsCjE0NDc0OiAKMTQ0NzQ6ICBWVElNRV9VU0VS
LAoxNDQ3NDogCjE0NDc0OiAgVlRJTUVfR1VFU1QsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgdnRpbWUgewoxNDQ3NDogIHNlcWNvdW50X3Qgc2VxY291bnQ7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBsb25nIHN0YXJ0dGltZTsKMTQ0NzQ6ICBlbnVtIHZ0aW1lX3N0YXRlIHN0YXRlOwox
NDQ3NDogIHVuc2lnbmVkIGludCBjcHU7CjE0NDc0OiAgdTY0IHV0aW1lOwoxNDQ3NDogIHU2NCBz
dGltZTsKMTQ0NzQ6ICB1NjQgZ3RpbWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHVjbGFtcF9pZCB7
CjE0NDc0OiAgVUNMQU1QX01JTiA9IDAsCjE0NDc0OiAgVUNMQU1QX01BWCwKMTQ0NzQ6ICBVQ0xB
TVBfQ05UCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgcm9v
dF9kb21haW4gZGVmX3Jvb3RfZG9tYWluOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBtdXRleCBzY2hl
ZF9kb21haW5zX211dGV4OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzY2hlZF9pbmZv
IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
cGNvdW50OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvbmcgcnVuX2Rl
bGF5OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBsb25nIGxhc3RfYXJyaXZhbDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBsb25nIGxhc3RfcXVldWVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAjIDMy
NSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiBzdHJ1Y3QgbG9hZF93ZWlnaHQgewox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgd2VpZ2h0OwoxNDQ3NDogIHUzMiBpbnZfd2VpZ2h0OwoxNDQ3
NDogfTsKMTQ0NzQ6ICMgMzUyICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6IHN0cnVj
dCB1dGlsX2VzdCB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGVucXVldWVkOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBld21hOwoxNDQ3NDogCjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9f
KHNpemVvZih1NjQpKSkpOwoxNDQ3NDogIyA0MDEgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgox
NDQ3NDogc3RydWN0IHNjaGVkX2F2ZyB7CjE0NDc0OiAgdTY0IGxhc3RfdXBkYXRlX3RpbWU7CjE0
NDc0OiAgdTY0IGxvYWRfc3VtOwoxNDQ3NDogIHU2NCBydW5uYWJsZV9sb2FkX3N1bTsKMTQ0NzQ6
ICB1MzIgdXRpbF9zdW07CjE0NDc0OiAgdTMyIHBlcmlvZF9jb250cmliOwoxNDQ3NDogIHVuc2ln
bmVkIGxvbmcgbG9hZF9hdmc7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBydW5uYWJsZV9sb2FkX2F2
ZzsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHV0aWxfYXZnOwoxNDQ3NDogIHN0cnVjdCB1dGlsX2Vz
dCB1dGlsX2VzdDsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYp
KSkpKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNjaGVkX3N0YXRpc3RpY3MgewoxNDQ3NDogCjE0
NDc0OiAgdTY0IHdhaXRfc3RhcnQ7CjE0NDc0OiAgdTY0IHdhaXRfbWF4OwoxNDQ3NDogIHU2NCB3
YWl0X2NvdW50OwoxNDQ3NDogIHU2NCB3YWl0X3N1bTsKMTQ0NzQ6ICB1NjQgaW93YWl0X2NvdW50
OwoxNDQ3NDogIHU2NCBpb3dhaXRfc3VtOwoxNDQ3NDogCjE0NDc0OiAgdTY0IHNsZWVwX3N0YXJ0
OwoxNDQ3NDogIHU2NCBzbGVlcF9tYXg7CjE0NDc0OiAgczY0IHN1bV9zbGVlcF9ydW50aW1lOwox
NDQ3NDogCjE0NDc0OiAgdTY0IGJsb2NrX3N0YXJ0OwoxNDQ3NDogIHU2NCBibG9ja19tYXg7CjE0
NDc0OiAgdTY0IGV4ZWNfbWF4OwoxNDQ3NDogIHU2NCBzbGljZV9tYXg7CjE0NDc0OiAKMTQ0NzQ6
ICB1NjQgbnJfbWlncmF0aW9uc19jb2xkOwoxNDQ3NDogIHU2NCBucl9mYWlsZWRfbWlncmF0aW9u
c19hZmZpbmU7CjE0NDc0OiAgdTY0IG5yX2ZhaWxlZF9taWdyYXRpb25zX3J1bm5pbmc7CjE0NDc0
OiAgdTY0IG5yX2ZhaWxlZF9taWdyYXRpb25zX2hvdDsKMTQ0NzQ6ICB1NjQgbnJfZm9yY2VkX21p
Z3JhdGlvbnM7CjE0NDc0OiAKMTQ0NzQ6ICB1NjQgbnJfd2FrZXVwczsKMTQ0NzQ6ICB1NjQgbnJf
d2FrZXVwc19zeW5jOwoxNDQ3NDogIHU2NCBucl93YWtldXBzX21pZ3JhdGU7CjE0NDc0OiAgdTY0
IG5yX3dha2V1cHNfbG9jYWw7CjE0NDc0OiAgdTY0IG5yX3dha2V1cHNfcmVtb3RlOwoxNDQ3NDog
IHU2NCBucl93YWtldXBzX2FmZmluZTsKMTQ0NzQ6ICB1NjQgbnJfd2FrZXVwc19hZmZpbmVfYXR0
ZW1wdHM7CjE0NDc0OiAgdTY0IG5yX3dha2V1cHNfcGFzc2l2ZTsKMTQ0NzQ6ICB1NjQgbnJfd2Fr
ZXVwc19pZGxlOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2NoZWRf
ZW50aXR5IHsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsb2FkX3dlaWdodCBsb2FkOwoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgcnVubmFibGVfd2VpZ2h0OwoxNDQ3NDogIHN0cnVjdCByYl9ub2RlIHJ1
bl9ub2RlOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgZ3JvdXBfbm9kZTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgb25fcnE7CjE0NDc0OiAKMTQ0NzQ6ICB1NjQgZXhlY19zdGFydDsKMTQ0NzQ6ICB1
NjQgc3VtX2V4ZWNfcnVudGltZTsKMTQ0NzQ6ICB1NjQgdnJ1bnRpbWU7CjE0NDc0OiAgdTY0IHBy
ZXZfc3VtX2V4ZWNfcnVudGltZTsKMTQ0NzQ6IAoxNDQ3NDogIHU2NCBucl9taWdyYXRpb25zOwox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IHNjaGVkX3N0YXRpc3RpY3Mgc3RhdGlzdGljczsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgaW50IGRlcHRoOwoxNDQ3NDogIHN0cnVjdCBzY2hlZF9lbnRpdHkg
KnBhcmVudDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjZnNfcnEgKmNmc19ycTsKMTQ0NzQ6IAox
NDQ3NDogIHN0cnVjdCBjZnNfcnEgKm15X3E7CjE0NDc0OiAjIDQ4MiAiLi9pbmNsdWRlL2xpbnV4
L3NjaGVkLmgiCjE0NDc0OiAgc3RydWN0IHNjaGVkX2F2ZyBhdmc7CjE0NDc0OiAKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgewoxNDQ3NDogIHN0cnVjdCBs
aXN0X2hlYWQgcnVuX2xpc3Q7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB0aW1lb3V0OwoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgd2F0Y2hkb2dfc3RhbXA7CjE0NDc0OiAgdW5zaWduZWQgaW50IHRpbWVf
c2xpY2U7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgb25fcnE7CjE0NDc0OiAgdW5zaWduZWQgc2hv
cnQgb25fbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKmJhY2s7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykpOwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3Qgc2NoZWRfZGxfZW50aXR5IHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9kZSByYl9u
b2RlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHU2NCBkbF9ydW50aW1lOwoxNDQ3NDogIHU2NCBkbF9kZWFkbGluZTsKMTQ0NzQ6ICB1NjQg
ZGxfcGVyaW9kOwoxNDQ3NDogIHU2NCBkbF9idzsKMTQ0NzQ6ICB1NjQgZGxfZGVuc2l0eTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzNjQg
cnVudGltZTsKMTQ0NzQ6ICB1NjQgZGVhZGxpbmU7CjE0NDc0OiAgdW5zaWduZWQgaW50IGZsYWdz
OwoxNDQ3NDogIyA1NTEgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogIHVuc2lnbmVk
IGludCBkbF90aHJvdHRsZWQgOiAxOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkbF9ib29zdGVkIDog
MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZGxfeWllbGRlZCA6IDE7CjE0NDc0OiAgdW5zaWduZWQg
aW50IGRsX25vbl9jb250ZW5kaW5nIDogMTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZGxfb3ZlcnJ1
biA6IDE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCBocnRpbWVyIGRsX3RpbWVyOwoxNDQ3NDogIyA1NzAgIi4vaW5jbHVkZS9saW51eC9zY2hl
ZC5oIgoxNDQ3NDogIHN0cnVjdCBocnRpbWVyIGluYWN0aXZlX3RpbWVyOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgNjA4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6IHVuaW9uIHJjdV9zcGVj
aWFsIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1OCBibG9ja2VkOwoxNDQ3NDogICB1OCBu
ZWVkX3FzOwoxNDQ3NDogICB1OCBleHBfaGludDsKMTQ0NzQ6ICAgdTggZGVmZXJyZWRfcXM7CjE0
NDc0OiAgfSBiOwoxNDQ3NDogIHUzMiBzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBw
ZXJmX2V2ZW50X3Rhc2tfY29udGV4dCB7CjE0NDc0OiAgcGVyZl9pbnZhbGlkX2NvbnRleHQgPSAt
MSwKMTQ0NzQ6ICBwZXJmX2h3X2NvbnRleHQgPSAwLAoxNDQ3NDogIHBlcmZfc3dfY29udGV4dCwK
MTQ0NzQ6ICBwZXJmX25yX3Rhc2tfY29udGV4dHMsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3Qgd2FrZV9xX25vZGUgewoxNDQ3NDogIHN0cnVjdCB3YWtlX3Ffbm9kZSAqbmV4dDsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0YXNrX3N0cnVjdCB7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB0aHJlYWRfaW5mbyB0aHJl
YWRfaW5mbzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9sYXRpbGUgbG9uZyBzdGF0ZTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHZvaWQgKnN0YWNrOwoxNDQ3NDogIHJlZmNvdW50X3QgdXNhZ2U7CjE0NDc0OiAKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CjE0NDc0OiAgdW5zaWduZWQgaW50IHB0cmFjZTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxsaXN0X25vZGUgd2FrZV9lbnRyeTsKMTQ0NzQ6ICBp
bnQgb25fY3B1OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY3B1OwoxNDQ3
NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IHdha2VlX2ZsaXBzOwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgd2FrZWVfZmxpcF9kZWNheV90czsKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmxhc3Rf
d2FrZWU7CjE0NDc0OiAjIDY3MCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiAgaW50
IHJlY2VudF91c2VkX2NwdTsKMTQ0NzQ6ICBpbnQgd2FrZV9jcHU7CjE0NDc0OiAKMTQ0NzQ6ICBp
bnQgb25fcnE7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgcHJpbzsKMTQ0NzQ6ICBpbnQgc3RhdGljX3By
aW87CjE0NDc0OiAgaW50IG5vcm1hbF9wcmlvOwoxNDQ3NDogIHVuc2lnbmVkIGludCBydF9wcmlv
cml0eTsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBzY2hlZF9jbGFzcyAqc2NoZWRfY2xh
c3M7CjE0NDc0OiAgc3RydWN0IHNjaGVkX2VudGl0eSBzZTsKMTQ0NzQ6ICBzdHJ1Y3Qgc2NoZWRf
cnRfZW50aXR5IHJ0OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRhc2tfZ3JvdXAgKnNjaGVkX3Rh
c2tfZ3JvdXA7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc2NoZWRfZGxfZW50aXR5IGRsOwoxNDQ3
NDogIyA2OTcgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogIHN0cnVjdCBobGlzdF9o
ZWFkIHByZWVtcHRfbm90aWZpZXJzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVu
c2lnbmVkIGludCBidHJhY2Vfc2VxOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgcG9saWN5OwoxNDQ3NDogIGludCBucl9jcHVzX2FsbG93ZWQ7CjE0NDc0OiAgY29uc3QgY3B1
bWFza190ICpjcHVzX3B0cjsKMTQ0NzQ6ICBjcHVtYXNrX3QgY3B1c19tYXNrOwoxNDQ3NDogIyA3
MjQgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogIHN0cnVjdCBzY2hlZF9pbmZvIHNj
aGVkX2luZm87CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIHRhc2tzOwoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IHBsaXN0X25vZGUgcHVzaGFibGVfdGFza3M7CjE0NDc0OiAgc3RydWN0
IHJiX25vZGUgcHVzaGFibGVfZGxfdGFza3M7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVj
dCBtbV9zdHJ1Y3QgKm1tOwoxNDQ3NDogIHN0cnVjdCBtbV9zdHJ1Y3QgKmFjdGl2ZV9tbTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHZtYWNhY2hlIHZtYWNhY2hlOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19yc3Nfc3RhdCByc3Nfc3RhdDsKMTQ0NzQ6IAoxNDQ3
NDogIGludCBleGl0X3N0YXRlOwoxNDQ3NDogIGludCBleGl0X2NvZGU7CjE0NDc0OiAgaW50IGV4
aXRfc2lnbmFsOwoxNDQ3NDogCjE0NDc0OiAgaW50IHBkZWF0aF9zaWduYWw7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIGpvYmN0bDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHBlcnNvbmFsaXR5OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBzY2hl
ZF9yZXNldF9vbl9mb3JrOjE7CjE0NDc0OiAgdW5zaWduZWQgc2NoZWRfY29udHJpYnV0ZXNfdG9f
bG9hZDoxOwoxNDQ3NDogIHVuc2lnbmVkIHNjaGVkX21pZ3JhdGVkOjE7CjE0NDc0OiAgdW5zaWdu
ZWQgc2NoZWRfcmVtb3RlX3dha2V1cDoxOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCA6MDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGluX2V4ZWN2ZToxOwoxNDQ3NDogIHVuc2lnbmVkIGluX2lv
d2FpdDoxOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgcmVzdG9yZV9zaWdtYXNrOjE7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGluX3VzZXJfZmF1bHQ6MTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBub19j
Z3JvdXBfbWlncmF0aW9uOjE7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBmcm96ZW46MTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCB1c2VfbWVtZGVsYXk6MTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBhdG9taWNfZmxhZ3M7CjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgcmVzdGFydF9ibG9jayByZXN0YXJ0X2Jsb2NrOwoxNDQ3NDogCjE0NDc0
OiAgcGlkX3QgcGlkOwoxNDQ3NDogIHBpZF90IHRnaWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzdGFja19jYW5hcnk7CjE0NDc0OiAjIDgwNyAiLi9pbmNs
dWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiAgc3RydWN0IHRhc2tfc3RydWN0ICpyZWFsX3BhcmVu
dDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQ7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGNo
aWxkcmVuOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgc2libGluZzsKMTQ0NzQ6ICBzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKmdyb3VwX2xlYWRlcjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgcHRyYWNl
ZDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIHB0cmFjZV9lbnRyeTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IHBpZCAqdGhyZWFkX3BpZDsKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3Rfbm9k
ZSBwaWRfbGlua3NbUElEVFlQRV9NQVhdOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgdGhyZWFk
X2dyb3VwOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgdGhyZWFkX25vZGU7CjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3QgY29tcGxldGlvbiAqdmZvcmtfZG9uZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgaW50ICpzZXRfY2hpbGRfdGlkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKmNsZWFy
X2NoaWxkX3RpZDsKMTQ0NzQ6IAoxNDQ3NDogIHU2NCB1dGltZTsKMTQ0NzQ6ICB1NjQgc3RpbWU7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1NjQgZ3RpbWU7CjE0NDc0
OiAgc3RydWN0IHByZXZfY3B1dGltZSBwcmV2X2NwdXRpbWU7CjE0NDc0OiAjIDg1OCAiLi9pbmNs
dWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBudmNzdzsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIG5pdmNzdzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTY0IHN0YXJ0X3Rp
bWU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHU2NCBzdGFydF9ib290dGltZTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtaW5fZmx0OwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgbWFqX2ZsdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHBvc2l4X2NwdXRpbWVy
cyBwb3NpeF9jcHV0aW1lcnM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBjb25zdCBzdHJ1Y3QgY3JlZCAqcHRyYWNlcl9jcmVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBjb25zdCBzdHJ1Y3QgY3JlZCAqcmVhbF9jcmVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBj
b25zdCBzdHJ1Y3QgY3JlZCAqY3JlZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBz
dHJ1Y3Qga2V5ICpjYWNoZWRfcmVxdWVzdGVkX2tleTsKMTQ0NzQ6ICMgODk3ICIuL2luY2x1ZGUv
bGludXgvc2NoZWQuaCIKMTQ0NzQ6ICBjaGFyIGNvbW1bMTZdOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IG5hbWVpZGF0YSAqbmFtZWlkYXRhOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qg
c3lzdl9zZW0gc3lzdnNlbTsKMTQ0NzQ6ICBzdHJ1Y3Qgc3lzdl9zaG0gc3lzdnNobTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsYXN0X3N3aXRjaF9jb3VudDsKMTQ0NzQ6
ICB1bnNpZ25lZCBsb25nIGxhc3Rfc3dpdGNoX3RpbWU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHN0cnVjdCBmc19zdHJ1Y3QgKmZzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZmls
ZXNfc3RydWN0ICpmaWxlczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IG5zcHJveHkg
Km5zcHJveHk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBzaWduYWxfc3RydWN0ICpz
aWduYWw7CjE0NDc0OiAgc3RydWN0IHNpZ2hhbmRfc3RydWN0ICpzaWdoYW5kOwoxNDQ3NDogIHNp
Z3NldF90IGJsb2NrZWQ7CjE0NDc0OiAgc2lnc2V0X3QgcmVhbF9ibG9ja2VkOwoxNDQ3NDogCjE0
NDc0OiAgc2lnc2V0X3Qgc2F2ZWRfc2lnbWFzazsKMTQ0NzQ6ICBzdHJ1Y3Qgc2lncGVuZGluZyBw
ZW5kaW5nOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc2FzX3NzX3NwOwoxNDQ3NDogIHNpemVfdCBz
YXNfc3Nfc2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc2FzX3NzX2ZsYWdzOwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgKnRhc2tfd29ya3M7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGF1ZGl0X2NvbnRleHQgKmF1ZGl0X2NvbnRleHQ7CjE0NDc0
OiAKMTQ0NzQ6ICBrdWlkX3QgbG9naW51aWQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNlc3Npb25p
ZDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBzZWNjb21wIHNlY2NvbXA7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHUzMiBwYXJlbnRfZXhlY19pZDsKMTQ0NzQ6ICB1MzIgc2VsZl9leGVjX2lkOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzcGlubG9ja190IGFsbG9jX2xvY2s7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHJhd19zcGlubG9ja190IHBpX2xvY2s7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1
Y3Qgd2FrZV9xX25vZGUgd2FrZV9xOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCByYl9yb290X2NhY2hlZCBwaV93YWl0ZXJzOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRh
c2tfc3RydWN0ICpwaV90b3BfdGFzazsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBydF9tdXRleF93
YWl0ZXIgKnBpX2Jsb2NrZWRfb247CjE0NDc0OiAjIDEwMDAgIi4vaW5jbHVkZS9saW51eC9zY2hl
ZC5oIgoxNDQ3NDogIHZvaWQgKmpvdXJuYWxfaW5mbzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
c3RydWN0IGJpb19saXN0ICpiaW9fbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBzdHJ1Y3QgYmxrX3BsdWcgKnBsdWc7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
c3RydWN0IHJlY2xhaW1fc3RhdGUgKnJlY2xhaW1fc3RhdGU7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1
Y3QgYmFja2luZ19kZXZfaW5mbyAqYmFja2luZ19kZXZfaW5mbzsKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCBpb19jb250ZXh0ICppb19jb250ZXh0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1
Y3QgY2FwdHVyZV9jb250cm9sICpjYXB0dXJlX2NvbnRyb2w7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHVuc2lnbmVkIGxvbmcgcHRyYWNlX21lc3NhZ2U7CjE0NDc0OiAga2VybmVsX3NpZ2luZm9f
dCAqbGFzdF9zaWdpbmZvOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRhc2tfaW9fYWNjb3VudGlu
ZyBpb2FjOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIHU2NCBhY2N0X3Jzc19tZW0xOwoxNDQ3NDogCjE0NDc0OiAgdTY0IGFjY3Rfdm1fbWVt
MTsKMTQ0NzQ6IAoxNDQ3NDogIHU2NCBhY2N0X3RpbWV4cGQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgbm9kZW1hc2tfdCBtZW1zX2FsbG93ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICBzZXFj
b3VudF90IG1lbXNfYWxsb3dlZF9zZXE7CjE0NDc0OiAgaW50IGNwdXNldF9tZW1fc3ByZWFkX3Jv
dG9yOwoxNDQ3NDogIGludCBjcHVzZXRfc2xhYl9zcHJlYWRfcm90b3I7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGNzc19zZXQgKmNncm91cHM7CjE0NDc0OiAKMTQ0NzQ6
ICBzdHJ1Y3QgbGlzdF9oZWFkIGNnX2xpc3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHJvYnVzdF9saXN0X2hlYWQgKnJvYnVz
dF9saXN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQg
cGlfc3RhdGVfbGlzdDsKMTQ0NzQ6ICBzdHJ1Y3QgZnV0ZXhfcGlfc3RhdGUgKnBpX3N0YXRlX2Nh
Y2hlOwoxNDQ3NDogIHN0cnVjdCBtdXRleCBmdXRleF9leGl0X211dGV4OwoxNDQ3NDogIHVuc2ln
bmVkIGludCBmdXRleF9zdGF0ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHBlcmZf
ZXZlbnRfY29udGV4dCAqcGVyZl9ldmVudF9jdHhwW3BlcmZfbnJfdGFza19jb250ZXh0c107CjE0
NDc0OiAgc3RydWN0IG11dGV4IHBlcmZfZXZlbnRfbXV0ZXg7CjE0NDc0OiAgc3RydWN0IGxpc3Rf
aGVhZCBwZXJmX2V2ZW50X2xpc3Q7CjE0NDc0OiAjIDExMzAgIi4vaW5jbHVkZS9saW51eC9zY2hl
ZC5oIgoxNDQ3NDogIHN0cnVjdCByc2VxICpyc2VxOwoxNDQ3NDogIHUzMiByc2VxX3NpZzsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcnNlcV9l
dmVudF9tYXNrOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgdGxiZmx1c2hfdW5tYXBf
YmF0Y2ggdGxiX3ViYzsKMTQ0NzQ6IAoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgcmVmY291bnRf
dCByY3VfdXNlcnM7CjE0NDc0OiAgIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKMTQ0NzQ6ICB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpzcGxpY2Vf
cGlwZTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwYWdlX2ZyYWcgdGFza19mcmFnOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19kZWxheV9pbmZvICpkZWxheXM7CjE0NDc0OiAj
IDExNjMgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogIGludCBucl9kaXJ0aWVkOwox
NDQ3NDogIGludCBucl9kaXJ0aWVkX3BhdXNlOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBkaXJ0eV9wYXVzZWRfd2hlbjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IGxhdGVuY3lf
cmVjb3JkX2NvdW50OwoxNDQ3NDogIHN0cnVjdCBsYXRlbmN5X3JlY29yZCBsYXRlbmN5X3JlY29y
ZFszMl07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHU2
NCB0aW1lcl9zbGFja19uczsKMTQ0NzQ6ICB1NjQgZGVmYXVsdF90aW1lcl9zbGFja19uczsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIGludCBjdXJyX3JldF9zdGFjazsKMTQ0NzQ6ICBpbnQgY3Vycl9yZXRfZGVwdGg7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBmdHJhY2VfcmV0X3N0YWNrICpyZXRfc3RhY2s7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyBmdHJhY2VfdGltZXN0YW1w
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNf
dCB0cmFjZV9vdmVycnVuOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNfdCB0cmFjaW5n
X2dyYXBoX3BhdXNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5z
aWduZWQgbG9uZyB0cmFjZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyB0
cmFjZV9yZWN1cnNpb247CjE0NDc0OiAjIDEyMzUgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgox
NDQ3NDogIHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZ19pbl9vb207CjE0NDc0OiAgZ2ZwX3QgbWVt
Y2dfb29tX2dmcF9tYXNrOwoxNDQ3NDogIGludCBtZW1jZ19vb21fb3JkZXI7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBtZW1jZ19ucl9wYWdlc19vdmVyX2hpZ2g7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBtZW1fY2dyb3VwICphY3RpdmVfbWVtY2c7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHJlcXVlc3RfcXVldWUgKnRocm90dGxl
X3F1ZXVlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIHVuc2lnbmVkIGludCBzZXF1ZW50aWFsX2lvOwoxNDQ3NDogIHVuc2lnbmVkIGludCBz
ZXF1ZW50aWFsX2lvX2F2ZzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IGludCBwYWdlZmF1bHRfZGlzYWJsZWQ7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1
Y3QgKm9vbV9yZWFwZXJfbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHZtX3N0
cnVjdCAqc3RhY2tfdm1fYXJlYTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZWZj
b3VudF90IHN0YWNrX3JlZmNvdW50OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKnNlY3VyaXR5OwoxNDQ3NDogIyAxMjg4ICIuL2lu
Y2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1
Y3QgdGhyZWFkX3N0cnVjdCB0aHJlYWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBw
aWQgKnRhc2tfcGlkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gdGFzay0+dGhyZWFkX3BpZDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTMxNyAiLi9pbmNsdWRl
L2xpbnV4L3NjaGVkLmgiCjE0NDc0OiBwaWRfdCBfX3Rhc2tfcGlkX25yX25zKHN0cnVjdCB0YXNr
X3N0cnVjdCAqdGFzaywgZW51bSBwaWRfdHlwZSB0eXBlLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAq
bnMpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3BpZF9ucihzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdHNrLT5waWQ7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHBpZF90IHRhc2tfcGlkX25yX25zKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1
Y3QgcGlkX25hbWVzcGFjZSAqbnMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fdGFza19waWRf
bnJfbnModHNrLCBQSURUWVBFX1BJRCwgbnMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaWRf
dCB0YXNrX3BpZF92bnIoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIF9fdGFza19waWRfbnJfbnModHNrLCBQSURUWVBFX1BJRCwgKCh2b2lkICopMCkpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBpZF90IHRhc2tfdGdpZF9ucihzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdHNrLT50Z2lkOwoxNDQ3
NDogfQoxNDQ3NDogIyAxMzUwICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBw
aWRfYWxpdmUoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICpwKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBwLT50aHJlYWRfcGlkICE9ICgodm9pZCAqKTApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBwaWRfdCB0YXNrX3BncnBfbnJfbnMoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBw
aWRfbmFtZXNwYWNlICpucykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX190YXNrX3BpZF9ucl9u
cyh0c2ssIFBJRFRZUEVfUEdJRCwgbnMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0
YXNrX3BncnBfdm5yKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBfX3Rhc2tfcGlkX25yX25zKHRzaywgUElEVFlQRV9QR0lELCAoKHZvaWQgKikwKSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19zZXNzaW9uX25yX25zKHN0
cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIF9fdGFza19waWRfbnJfbnModHNrLCBQSURUWVBFX1NJRCwgbnMpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3Nlc3Npb25fdm5yKHN0cnVjdCB0YXNr
X3N0cnVjdCAqdHNrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX3Rhc2tfcGlkX25yX25zKHRz
aywgUElEVFlQRV9TSUQsICgodm9pZCAqKTApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlk
X3QgdGFza190Z2lkX25yX25zKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgcGlkX25h
bWVzcGFjZSAqbnMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fdGFza19waWRfbnJfbnModHNr
LCBQSURUWVBFX1RHSUQsIG5zKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza190
Z2lkX3ZucihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
X190YXNrX3BpZF9ucl9ucyh0c2ssIFBJRFRZUEVfVEdJRCwgKCh2b2lkICopMCkpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3BwaWRfbnJfbnMoY29uc3Qgc3RydWN0IHRhc2tf
c3RydWN0ICp0c2ssIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucykKMTQ0NzQ6IHsKMTQ0NzQ6ICBw
aWRfdCBwaWQgPSAwOwoxNDQ3NDogCjE0NDc0OiAgcmN1X3JlYWRfbG9jaygpOwoxNDQ3NDogIGlm
IChwaWRfYWxpdmUodHNrKSkKMTQ0NzQ6ICAgcGlkID0gdGFza190Z2lkX25yX25zKCh7IHR5cGVv
ZigqKHRzay0+cmVhbF9wYXJlbnQpKSAqX19fX19fX19wMSA9ICh0eXBlb2YoKih0c2stPnJlYWxf
cGFyZW50KSkgKikoeyB1bmlvbiB7IHR5cGVvZigodHNrLT5yZWFsX3BhcmVudCkpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKHRzay0+cmVhbF9w
YXJlbnQpKSwgX191Ll9fYywgc2l6ZW9mKCh0c2stPnJlYWxfcGFyZW50KSkpOyBlbHNlIF9fcmVh
ZF9vbmNlX3NpemVfbm9jaGVjaygmKCh0c2stPnJlYWxfcGFyZW50KSksIF9fdS5fX2MsIHNpemVv
ZigodHNrLT5yZWFsX3BhcmVudCkpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsg
ZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigqKHRzay0+cmVhbF9wYXJlbnQpKSAqKShfX19f
X19fX3AxKSk7IH0pLCBucyk7CjE0NDc0OiAgcmN1X3JlYWRfdW5sb2NrKCk7CjE0NDc0OiAKMTQ0
NzQ6ICByZXR1cm4gcGlkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3BwaWRf
bnIoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IHRhc2tfcHBpZF9ucl9ucyh0c2ssICZpbml0X3BpZF9ucyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19wZ3JwX25yKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiB0YXNrX3BncnBfbnJfbnModHNrLCAmaW5pdF9waWRfbnMp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25l
ZCBpbnQgdGFza19zdGF0ZV9pbmRleChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdHNrX3N0YXRlID0gKHsgdW5pb24geyB0eXBlb2YodHNrLT5z
dGF0ZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUo
Jih0c2stPnN0YXRlKSwgX191Ll9fYywgc2l6ZW9mKHRzay0+c3RhdGUpKTsgZWxzZSBfX3JlYWRf
b25jZV9zaXplX25vY2hlY2soJih0c2stPnN0YXRlKSwgX191Ll9fYywgc2l6ZW9mKHRzay0+c3Rh
dGUpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgc3RhdGUgPSAodHNrX3N0YXRlIHwgdHNrLT5leGl0X3N0YXRlKSAmICgweDAwMDAgfCAweDAw
MDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDAp
OwoxNDQ3NDogCjE0NDc0OiAgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8x
NDE3KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDog
IiAiKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAx
MCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgPT0gMCB8fCAoKCgoKCgweDAwMDAgfCAw
eDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAw
NDApICsgMSkgPDwgMSkpICYgKCgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQg
fCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpIC0gMSkpICE9
IDApIikpKTsgaWYgKCEoISgoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwg
MHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA9PSAwIHx8ICgo
KCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8
IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4
MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8
PCAxKSkgLSAxKSkgIT0gMCkpKSkgX19jb21waWxldGltZV9hc3NlcnRfMTQxNygpOyB9IHdoaWxl
ICgwKTsKMTQ0NzQ6IAoxNDQ3NDogIGlmICh0c2tfc3RhdGUgPT0gKDB4MDAwMiB8IDB4MDQwMCkp
CjE0NDc0OiAgIHN0YXRlID0gKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAw
eDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSk7CjE0NDc0OiAKMTQ0NzQ6ICBy
ZXR1cm4gZmxzKHN0YXRlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2hhciB0YXNrX2luZGV4
X3RvX2NoYXIodW5zaWduZWQgaW50IHN0YXRlKQoxNDQ3NDogewoxNDQ3NDogIHN0YXRpYyBjb25z
dCBjaGFyIHN0YXRlX2NoYXJbXSA9ICJSU0RUdFhaUEkiOwoxNDQ3NDogCjE0NDc0OiAgZG8geyBl
eHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNDI5KHZvaWQpIF9fYXR0cmlidXRlX18o
KF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAiMSArIGlsb2cyKFRBU0tfUkVQT1JU
X01BWCkgIT0gc2l6ZW9mKHN0YXRlX2NoYXIpIC0gMSIpKSk7IGlmICghKCEoMSArICggX19idWls
dGluX2NvbnN0YW50X3AoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgw
MDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA/ICggX19idWlsdGlu
X2NvbnN0YW50X3AoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4
IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA/ICggKCgoKDB4MDAwMCB8
IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4
MDA0MCkgKyAxKSA8PCAxKSkgPCAyID8gMCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIg
fCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkp
ICYgKDFVTEwgPDwgNjMpID8gNjMgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgw
MDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgx
VUxMIDw8IDYyKSA/IDYyIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8
IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8
PCA2MSkgPyA2MSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAw
MDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNjAp
ID8gNjAgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwg
MHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDU5KSA/IDU5
IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAx
MCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1OCkgPyA1OCA6ICgo
KCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAw
eDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNTcpID8gNTcgOiAoKCgoMHgw
MDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIw
IHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDU2KSA/IDU2IDogKCgoKDB4MDAwMCB8
IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4
MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1NSkgPyA1NSA6ICgoKCgweDAwMDAgfCAweDAw
MDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDAp
ICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNTQpID8gNTQgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwg
MHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEp
IDw8IDEpKSAmICgxVUxMIDw8IDUzKSA/IDUzIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAw
MiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAx
KSkgJiAoMVVMTCA8PCA1MikgPyA1MiA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAw
eDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYg
KDFVTEwgPDwgNTEpID8gNTEgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0
IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxM
IDw8IDUwKSA/IDUwIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4
MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0
OSkgPyA0OSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDgg
fCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNDgpID8g
NDggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgw
MDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQ3KSA/IDQ3IDog
KCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8
IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0NikgPyA0NiA6ICgoKCgw
eDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAw
MjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNDUpID8gNDUgOiAoKCgoMHgwMDAw
IHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwg
MHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQ0KSA/IDQ0IDogKCgoKDB4MDAwMCB8IDB4
MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0
MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0MykgPyA0MyA6ICgoKCgweDAwMDAgfCAweDAwMDEg
fCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsg
MSkgPDwgMSkpICYgKDFVTEwgPDwgNDIpID8gNDIgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgw
MDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8
IDEpKSAmICgxVUxMIDw8IDQxKSA/IDQxIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8
IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkg
JiAoMVVMTCA8PCA0MCkgPyA0MCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAw
MDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFV
TEwgPDwgMzkpID8gMzkgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwg
MHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8
IDM4KSA/IDM4IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAw
OCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzNykg
PyAzNyA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAw
eDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMzYpID8gMzYg
OiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEw
IHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDM1KSA/IDM1IDogKCgo
KDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4
MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzNCkgPyAzNCA6ICgoKCgweDAw
MDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAg
fCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMzMpID8gMzMgOiAoKCgoMHgwMDAwIHwg
MHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgw
MDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDMyKSA/IDMyIDogKCgoKDB4MDAwMCB8IDB4MDAw
MSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkg
KyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzMSkgPyAzMSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAw
eDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkg
PDwgMSkpICYgKDFVTEwgPDwgMzApID8gMzAgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAy
IHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEp
KSAmICgxVUxMIDw8IDI5KSA/IDI5IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4
MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAo
MVVMTCA8PCAyOCkgPyAyOCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQg
fCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwg
PDwgMjcpID8gMjcgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgw
MDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDI2
KSA/IDI2IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8
IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyNSkgPyAy
NSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAw
MTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMjQpID8gMjQgOiAo
KCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwg
MHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDIzKSA/IDIzIDogKCgoKDB4
MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAy
MCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyMikgPyAyMiA6ICgoKCgweDAwMDAg
fCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAw
eDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMjEpID8gMjEgOiAoKCgoMHgwMDAwIHwgMHgw
MDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQw
KSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8
IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAx
KSA8PCAxKSkgJiAoMVVMTCA8PCAxOSkgPyAxOSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAw
MDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwg
MSkpICYgKDFVTEwgPDwgMTgpID8gMTggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwg
MHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAm
ICgxVUxMIDw8IDE3KSA/IDE3IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAw
NCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVM
TCA8PCAxNikgPyAxNiA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAw
eDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwg
MTUpID8gMTUgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4
IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDE0KSA/
IDE0IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4
MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAxMykgPyAxMyA6
ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAg
fCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMTIpID8gMTIgOiAoKCgo
MHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgw
MDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDExKSA/IDExIDogKCgoKDB4MDAw
MCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8
IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAxMCkgPyAxMCA6ICgoKCgweDAwMDAgfCAw
eDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAw
NDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgOSkgPyA5IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8
IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAx
KSA8PCAxKSkgJiAoMVVMTCA8PCA4KSA/IDggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAy
IHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEp
KSAmICgxVUxMIDw8IDcpID8gNyA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAw
MDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFV
TEwgPDwgNikgPyA2IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4
MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1
KSA/IDUgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwg
MHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQpID8gNCA6
ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAg
fCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMykgPyAzIDogKCgoKDB4
MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAy
MCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0xKSA6IChz
aXplb2YoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgw
MDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA8PSA0KSA/IF9faWxvZzJfdTMyKCgo
KDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4
MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgOiBfX2lsb2cyX3U2NCgoKCgweDAwMDAgfCAweDAw
MDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDAp
ICsgMSkgPDwgMSkpICkgIT0gc2l6ZW9mKHN0YXRlX2NoYXIpIC0gMSkpKSBfX2NvbXBpbGV0aW1l
X2Fzc2VydF8xNDI5KCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHN0YXRl
X2NoYXJbc3RhdGVdOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjaGFyIHRhc2tfc3RhdGVfdG9f
Y2hhcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGFz
a19pbmRleF90b19jaGFyKHRhc2tfc3RhdGVfaW5kZXgodHNrKSk7CjE0NDc0OiB9CjE0NDc0OiAj
IDE0NDggIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlzX2dsb2JhbF9pbml0
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0YXNrX3Rn
aWRfbnIodHNrKSA9PSAxOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHBp
ZCAqY2FkX3BpZDsKMTQ0NzQ6ICMgMTUxNyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIGlzX3BlcmNwdV90aHJlYWQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJl
dHVybiAoZ2V0X2N1cnJlbnQoKS0+ZmxhZ3MgJiAweDA0MDAwMDAwKSAmJgoxNDQ3NDogICAoZ2V0
X2N1cnJlbnQoKS0+bnJfY3B1c19hbGxvd2VkID09IDEpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogfQoxNDQ3NDogIyAxNTQ5ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgdGFza19ub19uZXdfcHJpdnMoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0
ZXN0X2JpdCgwLCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0YXNrX3NldF9ub19u
ZXdfcHJpdnMoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHNldF9iaXQoMCwgJnAtPmF0b21pY19m
bGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwcmVhZF9wYWdlKHN0cnVjdCB0YXNr
X3N0cnVjdCAqcCkgeyByZXR1cm4gdGVzdF9iaXQoMSwgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgdGFza19zZXRfc3ByZWFkX3BhZ2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHNl
dF9iaXQoMSwgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdGFza19jbGVhcl9zcHJl
YWRfcGFnZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgY2xlYXJfYml0KDEsICZwLT5hdG9taWNf
ZmxhZ3MpOyB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19zcHJlYWRfc2xhYihzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnApIHsgcmV0dXJuIHRlc3RfYml0KDIsICZwLT5hdG9taWNfZmxhZ3MpOyB9CjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIHRhc2tfc2V0X3NwcmVhZF9zbGFiKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyBz
ZXRfYml0KDIsICZwLT5hdG9taWNfZmxhZ3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfY2xlYXJfc3By
ZWFkX3NsYWIoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IGNsZWFyX2JpdCgyLCAmcC0+YXRvbWlj
X2ZsYWdzKTsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRhc2tfc3BlY19zc2JfZGlzYWJsZShzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnApIHsgcmV0dXJuIHRlc3RfYml0KDMsICZwLT5hdG9taWNfZmxhZ3Mp
OyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0X3NwZWNfc3NiX2Rpc2FibGUoc3RydWN0IHRhc2tfc3Ry
dWN0ICpwKSB7IHNldF9iaXQoMywgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdGFz
a19jbGVhcl9zcGVjX3NzYl9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyBjbGVhcl9i
aXQoMywgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwZWNf
c3NiX25vZXhlYyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgcmV0dXJuIHRlc3RfYml0KDcsICZw
LT5hdG9taWNfZmxhZ3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0X3NwZWNfc3NiX25vZXhlYyhz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgc2V0X2JpdCg3LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCB0YXNrX2NsZWFyX3NwZWNfc3NiX25vZXhlYyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnApIHsgY2xlYXJfYml0KDcsICZwLT5hdG9taWNfZmxhZ3MpOyB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgdGFza19zcGVjX3NzYl9mb3JjZV9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyBy
ZXR1cm4gdGVzdF9iaXQoNCwgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdGFza19z
ZXRfc3BlY19zc2JfZm9yY2VfZGlzYWJsZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgc2V0X2Jp
dCg0LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRhc2tfc3BlY19p
Yl9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyByZXR1cm4gdGVzdF9iaXQoNSwgJnAt
PmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdGFza19zZXRfc3BlY19pYl9kaXNhYmxlKHN0
cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyBzZXRfYml0KDUsICZwLT5hdG9taWNfZmxhZ3MpOyB9CjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIHRhc2tfY2xlYXJfc3BlY19pYl9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAq
cCkgeyBjbGVhcl9iaXQoNSwgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCB0YXNrX3NwZWNfaWJfZm9yY2VfZGlzYWJsZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgcmV0
dXJuIHRlc3RfYml0KDYsICZwLT5hdG9taWNfZmxhZ3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0
X3NwZWNfaWJfZm9yY2VfZGlzYWJsZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgc2V0X2JpdCg2
LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBjdXJyZW50
X3Jlc3RvcmVfZmxhZ3ModW5zaWduZWQgbG9uZyBvcmlnX2ZsYWdzLCB1bnNpZ25lZCBsb25nIGZs
YWdzKQoxNDQ3NDogewoxNDQ3NDogIGdldF9jdXJyZW50KCktPmZsYWdzICY9IH5mbGFnczsKMTQ0
NzQ6ICBnZXRfY3VycmVudCgpLT5mbGFncyB8PSBvcmlnX2ZsYWdzICYgZmxhZ3M7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgY3B1c2V0X2NwdW1hc2tfY2FuX3Nocmluayhjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqY3VyLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqdHJpYWwpOwoxNDQ3
NDogZXh0ZXJuIGludCB0YXNrX2Nhbl9hdHRhY2goc3RydWN0IHRhc2tfc3RydWN0ICpwLCBjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqY3NfY3B1c19hbGxvd2VkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHZvaWQgZG9fc2V0X2NwdXNfYWxsb3dlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGNvbnN0IHN0
cnVjdCBjcHVtYXNrICpuZXdfbWFzayk7CjE0NDc0OiBleHRlcm4gaW50IHNldF9jcHVzX2FsbG93
ZWRfcHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY29uc3Qgc3RydWN0IGNwdW1hc2sgKm5ld19t
YXNrKTsKMTQ0NzQ6ICMgMTYwMiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiBleHRl
cm4gaW50IHlpZWxkX3RvKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgYm9vbCBwcmVlbXB0KTsKMTQ0
NzQ6IGV4dGVybiB2b2lkIHNldF91c2VyX25pY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBsb25n
IG5pY2UpOwoxNDQ3NDogZXh0ZXJuIGludCB0YXNrX3ByaW8oY29uc3Qgc3RydWN0IHRhc2tfc3Ry
dWN0ICpwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHRhc2tfbmljZShjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoKHApLT5zdGF0aWNfcHJpbykgLSAoMTAwICsgKDE5
IC0gLTIwICsgMSkgLyAyKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgY2Fu
X25pY2UoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICpwLCBjb25zdCBpbnQgbmljZSk7CjE0NDc0
OiBleHRlcm4gaW50IHRhc2tfY3Vycihjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApOwoxNDQ3
NDogZXh0ZXJuIGludCBpZGxlX2NwdShpbnQgY3B1KTsKMTQ0NzQ6IGV4dGVybiBpbnQgYXZhaWxh
YmxlX2lkbGVfY3B1KGludCBjcHUpOwoxNDQ3NDogZXh0ZXJuIGludCBzY2hlZF9zZXRzY2hlZHVs
ZXIoc3RydWN0IHRhc2tfc3RydWN0ICosIGludCwgY29uc3Qgc3RydWN0IHNjaGVkX3BhcmFtICop
OwoxNDQ3NDogZXh0ZXJuIGludCBzY2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayhzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKiwgaW50LCBjb25zdCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKik7CjE0NDc0OiBleHRl
cm4gaW50IHNjaGVkX3NldGF0dHIoc3RydWN0IHRhc2tfc3RydWN0ICosIGNvbnN0IHN0cnVjdCBz
Y2hlZF9hdHRyICopOwoxNDQ3NDogZXh0ZXJuIGludCBzY2hlZF9zZXRhdHRyX25vY2hlY2soc3Ry
dWN0IHRhc2tfc3RydWN0ICosIGNvbnN0IHN0cnVjdCBzY2hlZF9hdHRyICopOwoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCB0YXNrX3N0cnVjdCAqaWRsZV90YXNrKGludCBjcHUpOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGlz
X2lkbGVfdGFzayhjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuICEhKHAtPmZsYWdzICYgMHgwMDAwMDAwMik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnJfdGFzayhpbnQgY3B1KTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGlhNjRfc2V0X2N1cnJfdGFzayhpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnApOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHlpZWxkKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiB1bmlv
biB0aHJlYWRfdW5pb24gewoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRhc2tfc3RydWN0IHRhc2s7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHN0
YWNrWygoKDFVTCkgPDwgMTIpIDw8ICgyICsgMCkpL3NpemVvZihsb25nKV07CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1bnNp
Z25lZCBsb25nIGluaXRfc3RhY2tbKCgoMVVMKSA8PCAxMikgPDwgKDIgKyAwKSkgLyBzaXplb2Yo
dW5zaWduZWQgbG9uZyldOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB0aHJlYWRfaW5m
byAqdGFza190aHJlYWRfaW5mbyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICZ0YXNrLT50aHJlYWRfaW5mbzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTY3OSAi
Li9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiBleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0
ICpmaW5kX3Rhc2tfYnlfdnBpZChwaWRfdCBucik7CjE0NDc0OiBleHRlcm4gc3RydWN0IHRhc2tf
c3RydWN0ICpmaW5kX3Rhc2tfYnlfcGlkX25zKHBpZF90IG5yLCBzdHJ1Y3QgcGlkX25hbWVzcGFj
ZSAqbnMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3Ry
dWN0IHRhc2tfc3RydWN0ICpmaW5kX2dldF90YXNrX2J5X3ZwaWQocGlkX3QgbnIpOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50IHdha2VfdXBfc3RhdGUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ss
IHVuc2lnbmVkIGludCBzdGF0ZSk7CjE0NDc0OiBleHRlcm4gaW50IHdha2VfdXBfcHJvY2Vzcyhz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7CjE0NDc0OiBleHRlcm4gdm9pZCB3YWtlX3VwX25ld190
YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBraWNrX3Byb2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICp0c2spOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBfX3NldF90YXNrX2NvbW0o
c3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGNvbnN0IGNoYXIgKmZyb20sIGJvb2wgZXhlYyk7CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgc2V0X3Rhc2tfY29tbShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywg
Y29uc3QgY2hhciAqZnJvbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX3NldF90YXNrX2NvbW0odHNrLCBm
cm9tLCBmYWxzZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjaGFyICpfX2dldF90
YXNrX2NvbW0oY2hhciAqdG8sIHNpemVfdCBsZW4sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgc2NoZWR1bGVyX2lwaSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIHdhaXRf
dGFza19pbmFjdGl2ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgbG9uZyBtYXRjaF9zdGF0ZSk7CjE0
NDc0OiAjIDE3MjUgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXRfdHNr
X3RocmVhZF9mbGFnKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgZmxhZykKMTQ0NzQ6IHsK
MTQ0NzQ6ICBzZXRfdGlfdGhyZWFkX2ZsYWcodGFza190aHJlYWRfaW5mbyh0c2spLCBmbGFnKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl90c2tfdGhyZWFkX2ZsYWcoc3RydWN0
IHRhc2tfc3RydWN0ICp0c2ssIGludCBmbGFnKQoxNDQ3NDogewoxNDQ3NDogIGNsZWFyX3RpX3Ro
cmVhZF9mbGFnKHRhc2tfdGhyZWFkX2luZm8odHNrKSwgZmxhZyk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgdXBkYXRlX3Rza190aHJlYWRfZmxhZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRz
aywgaW50IGZsYWcsCjE0NDc0OiAgICAgICAgYm9vbCB2YWx1ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
cGRhdGVfdGlfdGhyZWFkX2ZsYWcodGFza190aHJlYWRfaW5mbyh0c2spLCBmbGFnLCB2YWx1ZSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2FuZF9zZXRfdHNrX3RocmVhZF9mbGFn
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgZmxhZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gdGVzdF9hbmRfc2V0X3RpX3RocmVhZF9mbGFnKHRhc2tfdGhyZWFkX2luZm8odHNrKSwgZmxh
Zyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2FuZF9jbGVhcl90c2tfdGhyZWFk
X2ZsYWcoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBmbGFnKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiB0ZXN0X2FuZF9jbGVhcl90aV90aHJlYWRfZmxhZyh0YXNrX3RocmVhZF9pbmZvKHRz
ayksIGZsYWcpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGVzdF90c2tfdGhyZWFkX2Zs
YWcoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBmbGFnKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiB0ZXN0X3RpX3RocmVhZF9mbGFnKHRhc2tfdGhyZWFkX2luZm8odHNrKSwgZmxhZyk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X3Rza19uZWVkX3Jlc2NoZWQoc3RydWN0IHRh
c2tfc3RydWN0ICp0c2spCjE0NDc0OiB7CjE0NDc0OiAgc2V0X3Rza190aHJlYWRfZmxhZyh0c2ss
Myk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY2xlYXJfdHNrX25lZWRfcmVzY2hlZChz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBjbGVhcl90c2tfdGhyZWFk
X2ZsYWcodHNrLDMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGVzdF90c2tfbmVlZF9y
ZXNjaGVkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBf
X2J1aWx0aW5fZXhwZWN0KCEhKHRlc3RfdHNrX3RocmVhZF9mbGFnKHRzaywzKSksIDApOwoxNDQ3
NDogfQoxNDQ3NDogIyAxNzc4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6IGV4dGVy
biBpbnQgX2NvbmRfcmVzY2hlZCh2b2lkKTsKMTQ0NzQ6ICMgMTc4OCAiLi9pbmNsdWRlL2xpbnV4
L3NjaGVkLmgiCjE0NDc0OiBleHRlcm4gaW50IF9fY29uZF9yZXNjaGVkX2xvY2soc3BpbmxvY2tf
dCAqbG9jayk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGNvbmRfcmVzY2hlZF9yY3Uodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3
NDogIHJjdV9yZWFkX3VubG9jaygpOwoxNDQ3NDogICh7IF9fX21pZ2h0X3NsZWVwKCJpbmNsdWRl
L2xpbnV4L3NjaGVkLmgiLCAxNzk5LCAwKTsgX2NvbmRfcmVzY2hlZCgpOyB9KTsKMTQ0NzQ6ICBy
Y3VfcmVhZF9sb2NrKCk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBzcGluX25lZWRicmVhayhzcGlubG9j
a190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biAwOwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgYm9vbCBuZWVkX3Jlc2NoZWQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gX19idWlsdGluX2V4cGVjdCghISh0ZXN0X3RpX3RocmVhZF9mbGFnKCgoc3RydWN0IHRo
cmVhZF9pbmZvICopZ2V0X2N1cnJlbnQoKSksIDMpKSwgMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQg
dGFza19jcHUoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICpwKQoxNDQ3NDogewoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuICh7IHVuaW9uIHsgdHlwZW9mKHAtPmNwdSkgX192YWw7IGNoYXIgX19jWzFd
OyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihwLT5jcHUpLCBfX3UuX19jLCBzaXpl
b2YocC0+Y3B1KSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYocC0+Y3B1KSwgX191
Ll9fYywgc2l6ZW9mKHAtPmNwdSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9p
ZCBzZXRfdGFza19jcHUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1bnNpZ25lZCBpbnQgY3B1KTsK
MTQ0NzQ6ICMgMTg2NyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiBleHRlcm4gbG9u
ZyBzY2hlZF9zZXRhZmZpbml0eShwaWRfdCBwaWQsIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpuZXdf
bWFzayk7CjE0NDc0OiBleHRlcm4gbG9uZyBzY2hlZF9nZXRhZmZpbml0eShwaWRfdCBwaWQsIHN0
cnVjdCBjcHVtYXNrICptYXNrKTsKMTQ0NzQ6ICMgMTg4MCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVk
LmgiCjE0NDc0OiBlbnVtIHJzZXFfZXZlbnRfbWFza19iaXRzIHsKMTQ0NzQ6ICBSU0VRX0VWRU5U
X1BSRUVNUFRfQklUID0gUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fUFJFRU1QVF9CSVQsCjE0
NDc0OiAgUlNFUV9FVkVOVF9TSUdOQUxfQklUID0gUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05f
U0lHTkFMX0JJVCwKMTQ0NzQ6ICBSU0VRX0VWRU5UX01JR1JBVEVfQklUID0gUlNFUV9DU19GTEFH
X05PX1JFU1RBUlRfT05fTUlHUkFURV9CSVQsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVt
IHJzZXFfZXZlbnRfbWFzayB7CjE0NDc0OiAgUlNFUV9FVkVOVF9QUkVFTVBUID0gKDFVIDw8IFJT
RVFfRVZFTlRfUFJFRU1QVF9CSVQpLAoxNDQ3NDogIFJTRVFfRVZFTlRfU0lHTkFMID0gKDFVIDw8
IFJTRVFfRVZFTlRfU0lHTkFMX0JJVCksCjE0NDc0OiAgUlNFUV9FVkVOVF9NSUdSQVRFID0gKDFV
IDw8IFJTRVFfRVZFTlRfTUlHUkFURV9CSVQpLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCByc2VxX3NldF9ub3RpZnlfcmVzdW1lKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpZiAodC0+cnNlcSkKMTQ0NzQ6ICAgc2V0X3Rza190aHJlYWRfZmxhZyh0LCAxKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCBfX3JzZXFfaGFuZGxlX25vdGlmeV9yZXN1bWUo
c3RydWN0IGtzaWduYWwgKnNpZywgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHJzZXFfaGFuZGxlX25vdGlmeV9yZXN1bWUoc3RydWN0IGtzaWduYWwgKmtzaWcsCjE0
NDc0OiAgICAgICAgICAgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCjE0NDc0OiB7CjE0NDc0OiAgaWYg
KGdldF9jdXJyZW50KCktPnJzZXEpCjE0NDc0OiAgIF9fcnNlcV9oYW5kbGVfbm90aWZ5X3Jlc3Vt
ZShrc2lnLCByZWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByc2VxX3NpZ25hbF9k
ZWxpdmVyKHN0cnVjdCBrc2lnbmFsICprc2lnLAoxNDQ3NDogICAgICAgICAgICBzdHJ1Y3QgcHRf
cmVncyAqcmVncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6
Im1lbW9yeSIpOwoxNDQ3NDogIF9fc2V0X2JpdChSU0VRX0VWRU5UX1NJR05BTF9CSVQsICZnZXRf
Y3VycmVudCgpLT5yc2VxX2V2ZW50X21hc2spOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9f
KCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgcnNlcV9oYW5kbGVfbm90aWZ5X3Jlc3VtZShrc2ln
LCByZWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJzZXFfcHJlZW1w
dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpCjE0NDc0OiB7CjE0NDc0OiAgX19zZXRfYml0KFJTRVFf
RVZFTlRfUFJFRU1QVF9CSVQsICZ0LT5yc2VxX2V2ZW50X21hc2spOwoxNDQ3NDogIHJzZXFfc2V0
X25vdGlmeV9yZXN1bWUodCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBy
c2VxX21pZ3JhdGUoc3RydWN0IHRhc2tfc3RydWN0ICp0KQoxNDQ3NDogewoxNDQ3NDogIF9fc2V0
X2JpdChSU0VRX0VWRU5UX01JR1JBVEVfQklULCAmdC0+cnNlcV9ldmVudF9tYXNrKTsKMTQ0NzQ6
ICByc2VxX3NldF9ub3RpZnlfcmVzdW1lKHQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9mb3JrKHN0cnVjdCB0YXNrX3N0
cnVjdCAqdCwgdW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAo
Y2xvbmVfZmxhZ3MgJiAweDAwMDAwMTAwKSB7CjE0NDc0OiAgIHQtPnJzZXEgPSAoKHZvaWQgKikw
KTsKMTQ0NzQ6ICAgdC0+cnNlcV9zaWcgPSAwOwoxNDQ3NDogICB0LT5yc2VxX2V2ZW50X21hc2sg
PSAwOwoxNDQ3NDogIH0gZWxzZSB7CjE0NDc0OiAgIHQtPnJzZXEgPSBnZXRfY3VycmVudCgpLT5y
c2VxOwoxNDQ3NDogICB0LT5yc2VxX3NpZyA9IGdldF9jdXJyZW50KCktPnJzZXFfc2lnOwoxNDQ3
NDogICB0LT5yc2VxX2V2ZW50X21hc2sgPSBnZXRfY3VycmVudCgpLT5yc2VxX2V2ZW50X21hc2s7
CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJzZXFfZXhlY3ZlKHN0cnVj
dCB0YXNrX3N0cnVjdCAqdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB0LT5yc2VxID0gKCh2b2lkICopMCk7
CjE0NDc0OiAgdC0+cnNlcV9zaWcgPSAwOwoxNDQ3NDogIHQtPnJzZXFfZXZlbnRfbWFzayA9IDA7
CjE0NDc0OiB9CjE0NDc0OiAjIDE5ODIgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDog
dm9pZCBfX2V4aXRfdW1oKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKTsKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBleGl0X3VtaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBp
ZiAoX19idWlsdGluX2V4cGVjdCghISh0c2stPmZsYWdzICYgMHgwMjAwMDAwMCksIDApKQoxNDQ3
NDogICBfX2V4aXRfdW1oKHRzayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9zeXNjYWxsKHN0
cnVjdCBwdF9yZWdzICpyZWdzKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogY29uc3Qgc3RydWN0IHNjaGVkX2F2ZyAqc2NoZWRfdHJhY2VfY2ZzX3JxX2F2
ZyhzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEpOwoxNDQ3NDogY2hhciAqc2NoZWRfdHJhY2VfY2ZzX3Jx
X3BhdGgoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCBjaGFyICpzdHIsIGludCBsZW4pOwoxNDQ3NDog
aW50IHNjaGVkX3RyYWNlX2Nmc19ycV9jcHUoc3RydWN0IGNmc19ycSAqY2ZzX3JxKTsKMTQ0NzQ6
IAoxNDQ3NDogY29uc3Qgc3RydWN0IHNjaGVkX2F2ZyAqc2NoZWRfdHJhY2VfcnFfYXZnX3J0KHN0
cnVjdCBycSAqcnEpOwoxNDQ3NDogY29uc3Qgc3RydWN0IHNjaGVkX2F2ZyAqc2NoZWRfdHJhY2Vf
cnFfYXZnX2RsKHN0cnVjdCBycSAqcnEpOwoxNDQ3NDogY29uc3Qgc3RydWN0IHNjaGVkX2F2ZyAq
c2NoZWRfdHJhY2VfcnFfYXZnX2lycShzdHJ1Y3QgcnEgKnJxKTsKMTQ0NzQ6IAoxNDQ3NDogaW50
IHNjaGVkX3RyYWNlX3JxX2NwdShzdHJ1Y3QgcnEgKnJxKTsKMTQ0NzQ6IAoxNDQ3NDogY29uc3Qg
c3RydWN0IGNwdW1hc2sgKnNjaGVkX3RyYWNlX3JkX3NwYW4oc3RydWN0IHJvb3RfZG9tYWluICpy
ZCk7CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9saW51eC9pb3ByaW8uaCIgMgoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvbGludXgvc2NoZWQvcnQuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgcnRfcHJpbyhpbnQgcHJpbykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoX19idWlsdGlu
X2V4cGVjdCghIShwcmlvIDwgMTAwKSwgMCkpCjE0NDc0OiAgIHJldHVybiAxOwoxNDQ3NDogIHJl
dHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcnRfdGFzayhzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJ0X3ByaW8ocC0+cHJpbyk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19pc19yZWFsdGltZShzdHJ1Y3QgdGFza19zdHJ1
Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgcG9saWN5ID0gdHNrLT5wb2xpY3k7CjE0NDc0
OiAKMTQ0NzQ6ICBpZiAocG9saWN5ID09IDEgfHwgcG9saWN5ID09IDIpCjE0NDc0OiAgIHJldHVy
biB0cnVlOwoxNDQ3NDogIGlmIChwb2xpY3kgPT0gNikKMTQ0NzQ6ICAgcmV0dXJuIHRydWU7CjE0
NDc0OiAgcmV0dXJuIGZhbHNlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB0YXNrX3N0cnVjdCAqcnRfbXV0ZXhfZ2V0X3RvcF90
YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcC0+cGlf
dG9wX3Rhc2s7CjE0NDc0OiB9CjE0NDc0OiBleHRlcm4gdm9pZCBydF9tdXRleF9zZXRwcmlvKHN0
cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHRhc2tfc3RydWN0ICpwaV90YXNrKTsKMTQ0NzQ6
IGV4dGVybiB2b2lkIHJ0X211dGV4X2FkanVzdF9waShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApOwox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCB0c2tfaXNfcGlfYmxvY2tlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdHNrLT5waV9ibG9ja2VkX29uICE9ICgodm9pZCAqKTApOwox
NDQ3NDogfQoxNDQ3NDogIyA1OCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkL3J0LmgiCjE0NDc0OiBl
eHRlcm4gdm9pZCBub3JtYWxpemVfcnRfdGFza3Modm9pZCk7CjE0NDc0OiAjIDcgIi4vaW5jbHVk
ZS9saW51eC9pb3ByaW8uaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvaW9jb250ZXh0
LmgiIDEKMTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL2xpbnV4L2lvY29udGV4dC5oIgoxNDQ3NDogZW51
bSB7CjE0NDc0OiAgSUNRX0VYSVRFRCA9IDEgPDwgMiwKMTQ0NzQ6IH07CjE0NDc0OiAjIDcyICIu
L2luY2x1ZGUvbGludXgvaW9jb250ZXh0LmgiCjE0NDc0OiBzdHJ1Y3QgaW9fY3EgewoxNDQ3NDog
IHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxOwoxNDQ3NDogIHN0cnVjdCBpb19jb250ZXh0ICppb2M7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBsaXN0X2hlYWQgcV9ub2RlOwoxNDQ3NDog
ICBzdHJ1Y3Qga21lbV9jYWNoZSAqX19yY3VfaWNxX2NhY2hlOwoxNDQ3NDogIH07CjE0NDc0OiAg
dW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgaGxpc3Rfbm9kZSBpb2Nfbm9kZTsKMTQ0NzQ6ICAgc3Ry
dWN0IGNhbGxiYWNrX2hlYWQgX19yY3VfaGVhZDsKMTQ0NzQ6ICB9OwoxNDQ3NDogCjE0NDc0OiAg
dW5zaWduZWQgaW50IGZsYWdzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaW9fY29udGV4dCB7CjE0NDc0OiAgYXRvbWljX2xv
bmdfdCByZWZjb3VudDsKMTQ0NzQ6ICBhdG9taWNfdCBhY3RpdmVfcmVmOwoxNDQ3NDogIGF0b21p
Y190IG5yX3Rhc2tzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzcGlubG9ja190IGxvY2s7CjE0
NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBpb3ByaW87CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgbnJfYmF0Y2hfcmVxdWVzdHM7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBsYXN0X3dhaXRlZDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB4YXJyYXkgaWNxX3Ry
ZWU7CjE0NDc0OiAgc3RydWN0IGlvX2NxICppY3FfaGludDsKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3Rf
aGVhZCBpY3FfbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB3b3JrX3N0cnVjdCByZWxlYXNl
X3dvcms7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMjkgIi4vaW5jbHVkZS9saW51eC9pb2NvbnRleHQu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgZ2V0X2lvX2NvbnRleHRfYWN0aXZlKHN0cnVjdCBpb19jb250ZXh0ICpp
b2MpCjE0NDc0OiB7CjE0NDc0OiAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAhIShhdG9taWNfbG9u
Z19yZWFkKCZpb2MtPnJlZmNvdW50KSA8PSAwKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19y
ZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAi
LmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxu
IiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxu
IiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0
LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVn
X2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIg
KCJpbmNsdWRlL2xpbnV4L2lvY29udGV4dC5oIiksICJpIiAoMTMxKSwgImkiICgoMSA8PCAwKXwo
KDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7
IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5k
aXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxu
XHQiIDogOiAiaSIgKDI1KSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShf
X3JldF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3NDogICh7IGludCBfX3JldF93YXJuX29uID0gISEo
YXRvbWljX3JlYWQoJmlvYy0+YWN0aXZlX3JlZikgPD0gMCk7IGlmIChfX2J1aWx0aW5fZXhwZWN0
KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgi
MTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxc
ImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVn
X2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxl
XG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAi
XHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6
IDogImkiICgiaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaCIpLCAiaSIgKDEzMiksICJpIiAoKDEg
PDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2Vu
dHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNl
Y3Rpb25cblx0IiA6IDogImkiICgyNikpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBl
Y3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6ICBhdG9taWNfbG9uZ19pbmMoJmlv
Yy0+cmVmY291bnQpOwoxNDQ3NDogIGF0b21pY19pbmMoJmlvYy0+YWN0aXZlX3JlZik7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW9jX3Rhc2tfbGluayhzdHJ1Y3QgaW9fY29udGV4dCAq
aW9jKQoxNDQ3NDogewoxNDQ3NDogIGdldF9pb19jb250ZXh0X2FjdGl2ZShpb2MpOwoxNDQ3NDog
CjE0NDc0OiAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAhIShhdG9taWNfcmVhZCgmaW9jLT5ucl90
YXNrcykgPD0gMCk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkg
ZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIi
ICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAi
ICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAi
JWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBi
dWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIg
Ilx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9p
b2NvbnRleHQuaCIpLCAiaSIgKDE0MSksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8
PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsg
YXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVc
blx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgyNykp
OyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDAp
OyB9KTsKMTQ0NzQ6ICBhdG9taWNfaW5jKCZpb2MtPm5yX3Rhc2tzKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogCjE0NDc0OiB2b2lkIHB1dF9pb19j
b250ZXh0KHN0cnVjdCBpb19jb250ZXh0ICppb2MpOwoxNDQ3NDogdm9pZCBwdXRfaW9fY29udGV4
dF9hY3RpdmUoc3RydWN0IGlvX2NvbnRleHQgKmlvYyk7CjE0NDc0OiB2b2lkIGV4aXRfaW9fY29u
dGV4dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwoxNDQ3NDogc3RydWN0IGlvX2NvbnRleHQg
KmdldF90YXNrX2lvX2NvbnRleHQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAoxNDQ3NDogICAg
ICAgICAgICBnZnBfdCBnZnBfZmxhZ3MsIGludCBub2RlKTsKMTQ0NzQ6ICMgOCAiLi9pbmNsdWRl
L2xpbnV4L2lvcHJpby5oIiAyCjE0NDc0OiAjIDI3ICIuL2luY2x1ZGUvbGludXgvaW9wcmlvLmgi
CjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBJT1BSSU9fQ0xBU1NfTk9ORSwKMTQ0NzQ6ICBJT1BSSU9f
Q0xBU1NfUlQsCjE0NDc0OiAgSU9QUklPX0NMQVNTX0JFLAoxNDQ3NDogIElPUFJJT19DTEFTU19J
RExFLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIElPUFJJT19XSE9fUFJPQ0VTUyA9IDEsCjE0NDc0
OiAgSU9QUklPX1dIT19QR1JQLAoxNDQ3NDogIElPUFJJT19XSE9fVVNFUiwKMTQ0NzQ6IH07CjE0
NDc0OiAjIDU0ICIuL2luY2x1ZGUvbGludXgvaW9wcmlvLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGFza19uaWNl
X2lvcHJpbyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
ICh0YXNrX25pY2UodGFzaykgKyAyMCkgLyA1OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0YXNrX25pY2VfaW9jbGFzcyhzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRhc2spCjE0NDc0OiB7CjE0NDc0OiAgaWYgKHRhc2stPnBvbGljeSA9PSA1
KQoxNDQ3NDogICByZXR1cm4gSU9QUklPX0NMQVNTX0lETEU7CjE0NDc0OiAgZWxzZSBpZiAodGFz
a19pc19yZWFsdGltZSh0YXNrKSkKMTQ0NzQ6ICAgcmV0dXJuIElPUFJJT19DTEFTU19SVDsKMTQ0
NzQ6ICBlbHNlCjE0NDc0OiAgIHJldHVybiBJT1BSSU9fQ0xBU1NfQkU7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGdldF9jdXJyZW50
X2lvcHJpbyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBpb19jb250ZXh0ICppb2MgPSBn
ZXRfY3VycmVudCgpLT5pb19jb250ZXh0OwoxNDQ3NDogCjE0NDc0OiAgaWYgKGlvYykKMTQ0NzQ6
ICAgcmV0dXJuIGlvYy0+aW9wcmlvOwoxNDQ3NDogIHJldHVybiAoKChJT1BSSU9fQ0xBU1NfTk9O
RSkgPDwgKDEzKSkgfCAwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIGludCBpb3ByaW9fYmVzdCh1bnNpZ25lZCBzaG9ydCBhcHJpbywgdW5z
aWduZWQgc2hvcnQgYnByaW8pOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHNldF90YXNrX2lv
cHJpbyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGludCBpb3ByaW8pOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBpbnQgaW9wcmlvX2NoZWNrX2NhcChpbnQgaW9wcmlvKTsKMTQ0NzQ6
ICMgNDAgIi4vaW5jbHVkZS9saW51eC9mcy5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51
eC9mc190eXBlcy5oIiAxCjE0NDc0OiAjIDcxICIuL2luY2x1ZGUvbGludXgvZnNfdHlwZXMuaCIK
MTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBjaGFyIGZzX2Z0eXBlX3RvX2R0eXBlKHVuc2lnbmVkIGlu
dCBmaWxldHlwZSk7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgY2hhciBmc191bW9kZV90b19mdHlw
ZSh1bW9kZV90IG1vZGUpOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGNoYXIgZnNfdW1vZGVfdG9f
ZHR5cGUodW1vZGVfdCBtb2RlKTsKMTQ0NzQ6ICMgNDEgIi4vaW5jbHVkZS9saW51eC9mcy5oIiAy
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3Vh
cGkvbGludXgvZnMuaCIgMQoxNDQ3NDogIyA1NCAiLi9pbmNsdWRlL3VhcGkvbGludXgvZnMuaCIK
MTQ0NzQ6IHN0cnVjdCBmaWxlX2Nsb25lX3JhbmdlIHsKMTQ0NzQ6ICBfX3M2NCBzcmNfZmQ7CjE0
NDc0OiAgX191NjQgc3JjX29mZnNldDsKMTQ0NzQ6ICBfX3U2NCBzcmNfbGVuZ3RoOwoxNDQ3NDog
IF9fdTY0IGRlc3Rfb2Zmc2V0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZzdHJp
bV9yYW5nZSB7CjE0NDc0OiAgX191NjQgc3RhcnQ7CjE0NDc0OiAgX191NjQgbGVuOwoxNDQ3NDog
IF9fdTY0IG1pbmxlbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2VfaW5mbyB7CjE0
NDc0OiAgX19zNjQgZGVzdF9mZDsKMTQ0NzQ6ICBfX3U2NCBkZXN0X29mZnNldDsKMTQ0NzQ6ICBf
X3U2NCBieXRlc19kZWR1cGVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fczMyIHN0YXR1czsKMTQ0NzQ6ICBfX3UzMiByZXNlcnZlZDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZpbGVfZGVkdXBlX3Jhbmdl
IHsKMTQ0NzQ6ICBfX3U2NCBzcmNfb2Zmc2V0OwoxNDQ3NDogIF9fdTY0IHNyY19sZW5ndGg7CjE0
NDc0OiAgX191MTYgZGVzdF9jb3VudDsKMTQ0NzQ6ICBfX3UxNiByZXNlcnZlZDE7CjE0NDc0OiAg
X191MzIgcmVzZXJ2ZWQyOwoxNDQ3NDogIHN0cnVjdCBmaWxlX2RlZHVwZV9yYW5nZV9pbmZvIGlu
Zm9bMF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmaWxlc19zdGF0
X3N0cnVjdCB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBucl9maWxlczsKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIG5yX2ZyZWVfZmlsZXM7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtYXhfZmlsZXM7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaW5vZGVzX3N0YXRfdCB7CjE0NDc0OiAgbG9u
ZyBucl9pbm9kZXM7CjE0NDc0OiAgbG9uZyBucl91bnVzZWQ7CjE0NDc0OiAgbG9uZyBkdW1teVs1
XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmc3hhdHRyIHsKMTQ0NzQ6ICBfX3UzMiBmc3hfeGZs
YWdzOwoxNDQ3NDogIF9fdTMyIGZzeF9leHRzaXplOwoxNDQ3NDogIF9fdTMyIGZzeF9uZXh0ZW50
czsKMTQ0NzQ6ICBfX3UzMiBmc3hfcHJvamlkOwoxNDQ3NDogIF9fdTMyIGZzeF9jb3dleHRzaXpl
OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgZnN4X3BhZFs4XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI4
NSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZnMuaCIKMTQ0NzQ6IHR5cGVkZWYgaW50IF9fa2VybmVs
X3J3Zl90OwoxNDQ3NDogIyA0NiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGJhY2tpbmdfZGV2X2luZm87CjE0NDc0OiBzdHJ1Y3QgYmRpX3dyaXRlYmFjazsK
MTQ0NzQ6IHN0cnVjdCBiaW87CjE0NDc0OiBzdHJ1Y3QgZXhwb3J0X29wZXJhdGlvbnM7CjE0NDc0
OiBzdHJ1Y3QgaGRfZ2VvbWV0cnk7CjE0NDc0OiBzdHJ1Y3QgaW92ZWM7CjE0NDc0OiBzdHJ1Y3Qg
a2lvY2I7CjE0NDc0OiBzdHJ1Y3Qga29iamVjdDsKMTQ0NzQ6IHN0cnVjdCBwaXBlX2lub2RlX2lu
Zm87CjE0NDc0OiBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3Q7CjE0NDc0OiBzdHJ1Y3Qga3N0YXRm
czsKMTQ0NzQ6IHN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKMTQ0NzQ6IHN0cnVjdCB2ZnNtb3VudDsK
MTQ0NzQ6IHN0cnVjdCBjcmVkOwoxNDQ3NDogc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3Q7CjE0NDc0
OiBzdHJ1Y3Qgc2VxX2ZpbGU7CjE0NDc0OiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdDsKMTQ0NzQ6
IHN0cnVjdCBpb3ZfaXRlcjsKMTQ0NzQ6IHN0cnVjdCBmc2NyeXB0X2luZm87CjE0NDc0OiBzdHJ1
Y3QgZnNjcnlwdF9vcGVyYXRpb25zOwoxNDQ3NDogc3RydWN0IGZzdmVyaXR5X2luZm87CjE0NDc0
OiBzdHJ1Y3QgZnN2ZXJpdHlfb3BlcmF0aW9uczsKMTQ0NzQ6IHN0cnVjdCBmc19jb250ZXh0Owox
NDQ3NDogc3RydWN0IGZzX3BhcmFtZXRlcl9zcGVjOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9p
ZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVf
XygoX19jb2xkX18pKSBpbm9kZV9pbml0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19hdHRy
aWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29s
ZF9fKSkgaW5vZGVfaW5pdF9lYXJseSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmli
dXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRf
XykpIGZpbGVzX2luaXQodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChf
X3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBmaWxl
c19tYXhmaWxlc19pbml0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGZpbGVz
X3N0YXRfc3RydWN0IGZpbGVzX3N0YXQ7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBnZXRf
bWF4X2ZpbGVzKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCBzeXNjdGxfbnJfb3Bl
bjsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaW5vZGVzX3N0YXRfdCBpbm9kZXNfc3RhdDsKMTQ0NzQ6
IGV4dGVybiBpbnQgbGVhc2VzX2VuYWJsZSwgbGVhc2VfYnJlYWtfdGltZTsKMTQ0NzQ6IGV4dGVy
biBpbnQgc3lzY3RsX3Byb3RlY3RlZF9zeW1saW5rczsKMTQ0NzQ6IGV4dGVybiBpbnQgc3lzY3Rs
X3Byb3RlY3RlZF9oYXJkbGlua3M7CjE0NDc0OiBleHRlcm4gaW50IHN5c2N0bF9wcm90ZWN0ZWRf
Zmlmb3M7CjE0NDc0OiBleHRlcm4gaW50IHN5c2N0bF9wcm90ZWN0ZWRfcmVndWxhcjsKMTQ0NzQ6
IAoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9yd2ZfdCByd2ZfdDsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGJ1ZmZlcl9oZWFkOwoxNDQ3NDogdHlwZWRlZiBpbnQgKGdldF9ibG9ja190KShzdHJ1Y3Qg
aW5vZGUgKmlub2RlLCBzZWN0b3JfdCBpYmxvY2ssCjE0NDc0OiAgICBzdHJ1Y3QgYnVmZmVyX2hl
YWQgKmJoX3Jlc3VsdCwgaW50IGNyZWF0ZSk7CjE0NDc0OiB0eXBlZGVmIGludCAoZGlvX2lvZG9u
ZV90KShzdHJ1Y3Qga2lvY2IgKmlvY2IsIGxvZmZfdCBvZmZzZXQsCjE0NDc0OiAgICBzc2l6ZV90
IGJ5dGVzLCB2b2lkICpwcml2YXRlKTsKMTQ0NzQ6ICMgMjI0ICIuL2luY2x1ZGUvbGludXgvZnMu
aCIKMTQ0NzQ6IHN0cnVjdCBpYXR0ciB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGlhX3ZhbGlkOwox
NDQ3NDogIHVtb2RlX3QgaWFfbW9kZTsKMTQ0NzQ6ICBrdWlkX3QgaWFfdWlkOwoxNDQ3NDogIGtn
aWRfdCBpYV9naWQ7CjE0NDc0OiAgbG9mZl90IGlhX3NpemU7CjE0NDc0OiAgc3RydWN0IHRpbWVz
cGVjNjQgaWFfYXRpbWU7CjE0NDc0OiAgc3RydWN0IHRpbWVzcGVjNjQgaWFfbXRpbWU7CjE0NDc0
OiAgc3RydWN0IHRpbWVzcGVjNjQgaWFfY3RpbWU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGZpbGUgKmlhX2ZpbGU7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9xdW90YS5oIiAxCjE0NDc0OiAjIDQwICIuL2luY2x1ZGUvbGludXgvcXVvdGEuaCIK
MTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdV9jb3VudGVyLmgiIDEKMTQ0NzQ6ICMg
MjAgIi4vaW5jbHVkZS9saW51eC9wZXJjcHVfY291bnRlci5oIgoxNDQ3NDogc3RydWN0IHBlcmNw
dV9jb3VudGVyIHsKMTQ0NzQ6ICByYXdfc3BpbmxvY2tfdCBsb2NrOwoxNDQ3NDogIHM2NCBjb3Vu
dDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKMTQ0NzQ6IAoxNDQ3NDog
IHMzMiAqY291bnRlcnM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHBlcmNw
dV9jb3VudGVyX2JhdGNoOwoxNDQ3NDogCjE0NDc0OiBpbnQgX19wZXJjcHVfY291bnRlcl9pbml0
KHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50LCBnZnBfdCBnZnAsCjE0NDc0
OiAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5KTsKMTQ0NzQ6ICMgNDEgIi4vaW5jbHVk
ZS9saW51eC9wZXJjcHVfY291bnRlci5oIgoxNDQ3NDogdm9pZCBwZXJjcHVfY291bnRlcl9kZXN0
cm95KHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKTsKMTQ0NzQ6IHZvaWQgcGVyY3B1X2NvdW50
ZXJfc2V0KHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50KTsKMTQ0NzQ6IHZv
aWQgcGVyY3B1X2NvdW50ZXJfYWRkX2JhdGNoKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBz
NjQgYW1vdW50LAoxNDQ3NDogICAgICAgICAgczMyIGJhdGNoKTsKMTQ0NzQ6IHM2NCBfX3BlcmNw
dV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYyk7CjE0NDc0OiBpbnQgX19w
ZXJjcHVfY291bnRlcl9jb21wYXJlKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgcmhz
LCBzMzIgYmF0Y2gpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGVyY3B1X2NvdW50ZXJfY29tcGFyZShz
dHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYywgczY0IHJocykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gX19wZXJjcHVfY291bnRlcl9jb21wYXJlKGZiYywgcmhzLCBwZXJjcHVfY291bnRlcl9iYXRj
aCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X2NvdW50ZXJfYWRkKHN0cnVj
dCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50KQoxNDQ3NDogewoxNDQ3NDogIHBlcmNw
dV9jb3VudGVyX2FkZF9iYXRjaChmYmMsIGFtb3VudCwgcGVyY3B1X2NvdW50ZXJfYmF0Y2gpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgcGVyY3B1X2NvdW50ZXJfc3VtX3Bvc2l0aXZlKHN0
cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQoxNDQ3NDogewoxNDQ3NDogIHM2NCByZXQgPSBfX3Bl
cmNwdV9jb3VudGVyX3N1bShmYmMpOwoxNDQ3NDogIHJldHVybiByZXQgPCAwID8gMCA6IHJldDsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IHBlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVy
Y3B1X2NvdW50ZXIgKmZiYykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19wZXJjcHVfY291bnRl
cl9zdW0oZmJjKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IHBlcmNwdV9jb3VudGVyX3Jl
YWQoc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZi
Yy0+Y291bnQ7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzNjQgcGVyY3B1X2NvdW50ZXJfcmVhZF9wb3NpdGl2ZShzdHJ1Y3Qg
cGVyY3B1X2NvdW50ZXIgKmZiYykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzNjQgcmV0ID0gZmJjLT5jb3Vu
dDsKMTQ0NzQ6IAoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7
CjE0NDc0OiAgaWYgKHJldCA+PSAwKQoxNDQ3NDogICByZXR1cm4gcmV0OwoxNDQ3NDogIHJldHVy
biAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHBlcmNwdV9jb3VudGVyX2luaXRpYWxp
emVkKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAo
ZmJjLT5jb3VudGVycyAhPSAoKHZvaWQgKikwKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE3NyAiLi9p
bmNsdWRlL2xpbnV4L3BlcmNwdV9jb3VudGVyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBlcmNwdV9jb3VudGVy
X2luYyhzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKMTQ0NzQ6IHsKMTQ0NzQ6ICBwZXJjcHVf
Y291bnRlcl9hZGQoZmJjLCAxKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVf
Y291bnRlcl9kZWMoc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMpCjE0NDc0OiB7CjE0NDc0OiAg
cGVyY3B1X2NvdW50ZXJfYWRkKGZiYywgLTEpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHBlcmNwdV9jb3VudGVyX3N1YihzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYywgczY0IGFtb3Vu
dCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBwZXJjcHVfY291bnRlcl9hZGQoZmJjLCAtYW1vdW50KTsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgNDEgIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIiAyCjE0NDc0OiAKMTQ0
NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZHFibGtfeGZzLmgiIDEKMTQ0NzQ6ICMgNTMg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2RxYmxrX3hmcy5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3Qg
ZnNfZGlza19xdW90YSB7CjE0NDc0OiAgX19zOCBkX3ZlcnNpb247CjE0NDc0OiAgX19zOCBkX2Zs
YWdzOwoxNDQ3NDogIF9fdTE2IGRfZmllbGRtYXNrOwoxNDQ3NDogIF9fdTMyIGRfaWQ7CjE0NDc0
OiAgX191NjQgZF9ibGtfaGFyZGxpbWl0OwoxNDQ3NDogIF9fdTY0IGRfYmxrX3NvZnRsaW1pdDsK
MTQ0NzQ6ICBfX3U2NCBkX2lub19oYXJkbGltaXQ7CjE0NDc0OiAgX191NjQgZF9pbm9fc29mdGxp
bWl0OwoxNDQ3NDogIF9fdTY0IGRfYmNvdW50OwoxNDQ3NDogIF9fdTY0IGRfaWNvdW50OwoxNDQ3
NDogIF9fczMyIGRfaXRpbWVyOwoxNDQ3NDogCjE0NDc0OiAgX19zMzIgZF9idGltZXI7CjE0NDc0
OiAgX191MTYgZF9pd2FybnM7CjE0NDc0OiAgX191MTYgZF9id2FybnM7CjE0NDc0OiAgX19zMzIg
ZF9wYWRkaW5nMjsKMTQ0NzQ6ICBfX3U2NCBkX3J0Yl9oYXJkbGltaXQ7CjE0NDc0OiAgX191NjQg
ZF9ydGJfc29mdGxpbWl0OwoxNDQ3NDogIF9fdTY0IGRfcnRiY291bnQ7CjE0NDc0OiAgX19zMzIg
ZF9ydGJ0aW1lcjsKMTQ0NzQ6ICBfX3UxNiBkX3J0Yndhcm5zOwoxNDQ3NDogIF9fczE2IGRfcGFk
ZGluZzM7CjE0NDc0OiAgY2hhciBkX3BhZGRpbmc0WzhdOwoxNDQ3NDogfSBmc19kaXNrX3F1b3Rh
X3Q7CjE0NDc0OiAjIDE0OSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZHFibGtfeGZzLmgiCjE0NDc0
OiB0eXBlZGVmIHN0cnVjdCBmc19xZmlsZXN0YXQgewoxNDQ3NDogIF9fdTY0IHFmc19pbm87CjE0
NDc0OiAgX191NjQgcWZzX25ibGtzOwoxNDQ3NDogIF9fdTMyIHFmc19uZXh0ZW50czsKMTQ0NzQ6
IH0gZnNfcWZpbGVzdGF0X3Q7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IGZzX3F1b3Rh
X3N0YXQgewoxNDQ3NDogIF9fczggcXNfdmVyc2lvbjsKMTQ0NzQ6ICBfX3UxNiBxc19mbGFnczsK
MTQ0NzQ6ICBfX3M4IHFzX3BhZDsKMTQ0NzQ6ICBmc19xZmlsZXN0YXRfdCBxc191cXVvdGE7CjE0
NDc0OiAgZnNfcWZpbGVzdGF0X3QgcXNfZ3F1b3RhOwoxNDQ3NDogIF9fdTMyIHFzX2luY29yZWRx
czsKMTQ0NzQ6ICBfX3MzMiBxc19idGltZWxpbWl0OwoxNDQ3NDogIF9fczMyIHFzX2l0aW1lbGlt
aXQ7CjE0NDc0OiAgX19zMzIgcXNfcnRidGltZWxpbWl0OwoxNDQ3NDogIF9fdTE2IHFzX2J3YXJu
bGltaXQ7CjE0NDc0OiAgX191MTYgcXNfaXdhcm5saW1pdDsKMTQ0NzQ6IH0gZnNfcXVvdGFfc3Rh
dF90OwoxNDQ3NDogIyAxOTIgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2RxYmxrX3hmcy5oIgoxNDQ3
NDogc3RydWN0IGZzX3FmaWxlc3RhdHYgewoxNDQ3NDogIF9fdTY0IHFmc19pbm87CjE0NDc0OiAg
X191NjQgcWZzX25ibGtzOwoxNDQ3NDogIF9fdTMyIHFmc19uZXh0ZW50czsKMTQ0NzQ6ICBfX3Uz
MiBxZnNfcGFkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZzX3F1b3RhX3N0YXR2
IHsKMTQ0NzQ6ICBfX3M4IHFzX3ZlcnNpb247CjE0NDc0OiAgX191OCBxc19wYWQxOwoxNDQ3NDog
IF9fdTE2IHFzX2ZsYWdzOwoxNDQ3NDogIF9fdTMyIHFzX2luY29yZWRxczsKMTQ0NzQ6ICBzdHJ1
Y3QgZnNfcWZpbGVzdGF0diBxc191cXVvdGE7CjE0NDc0OiAgc3RydWN0IGZzX3FmaWxlc3RhdHYg
cXNfZ3F1b3RhOwoxNDQ3NDogIHN0cnVjdCBmc19xZmlsZXN0YXR2IHFzX3BxdW90YTsKMTQ0NzQ6
ICBfX3MzMiBxc19idGltZWxpbWl0OwoxNDQ3NDogIF9fczMyIHFzX2l0aW1lbGltaXQ7CjE0NDc0
OiAgX19zMzIgcXNfcnRidGltZWxpbWl0OwoxNDQ3NDogIF9fdTE2IHFzX2J3YXJubGltaXQ7CjE0
NDc0OiAgX191MTYgcXNfaXdhcm5saW1pdDsKMTQ0NzQ6ICBfX3U2NCBxc19wYWQyWzhdOwoxNDQ3
NDogfTsKMTQ0NzQ6ICMgNDMgIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIiAyCjE0NDc0OiAjIDEg
Ii4vaW5jbHVkZS9saW51eC9kcWJsa192MS5oIiAxCjE0NDc0OiAjIDQ0ICIuL2luY2x1ZGUvbGlu
dXgvcXVvdGEuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvZHFibGtfdjIuaCIgMQox
NDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgvZHFibGtfdjIuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNs
dWRlL2xpbnV4L2RxYmxrX3F0cmVlLmgiIDEKMTQ0NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9k
cWJsa19xdHJlZS5oIgoxNDQ3NDogc3RydWN0IGRxdW90OwoxNDQ3NDogc3RydWN0IGtxaWQ7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHF0cmVlX2ZtdF9vcGVyYXRpb25zIHsKMTQ0NzQ6
ICB2b2lkICgqbWVtMmRpc2tfZHFibGspKHZvaWQgKmRpc2ssIHN0cnVjdCBkcXVvdCAqZHF1b3Qp
OwoxNDQ3NDogIHZvaWQgKCpkaXNrMm1lbV9kcWJsaykoc3RydWN0IGRxdW90ICpkcXVvdCwgdm9p
ZCAqZGlzayk7CjE0NDc0OiAgaW50ICgqaXNfaWQpKHZvaWQgKmRpc2ssIHN0cnVjdCBkcXVvdCAq
ZHF1b3QpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcXRyZWVfbWVt
X2RxaW5mbyB7CjE0NDc0OiAgc3RydWN0IHN1cGVyX2Jsb2NrICpkcWlfc2I7CjE0NDc0OiAgaW50
IGRxaV90eXBlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcWlfYmxvY2tzOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBkcWlfZnJlZV9ibGs7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRxaV9mcmVlX2VudHJ5
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcWlfYmxvY2tzaXplX2JpdHM7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGRxaV9lbnRyeV9zaXplOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcWlfdXNhYmxlX2Jz
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcWlfcXRyZWVfZGVwdGg7CjE0NDc0OiAgY29uc3Qgc3Ry
dWN0IHF0cmVlX2ZtdF9vcGVyYXRpb25zICpkcWlfb3BzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogaW50IHF0cmVlX3dyaXRlX2RxdW90KHN0cnVjdCBxdHJlZV9tZW1fZHFpbmZvICppbmZvLCBz
dHJ1Y3QgZHF1b3QgKmRxdW90KTsKMTQ0NzQ6IGludCBxdHJlZV9yZWFkX2RxdW90KHN0cnVjdCBx
dHJlZV9tZW1fZHFpbmZvICppbmZvLCBzdHJ1Y3QgZHF1b3QgKmRxdW90KTsKMTQ0NzQ6IGludCBx
dHJlZV9kZWxldGVfZHF1b3Qoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8sIHN0cnVjdCBk
cXVvdCAqZHF1b3QpOwoxNDQ3NDogaW50IHF0cmVlX3JlbGVhc2VfZHF1b3Qoc3RydWN0IHF0cmVl
X21lbV9kcWluZm8gKmluZm8sIHN0cnVjdCBkcXVvdCAqZHF1b3QpOwoxNDQ3NDogaW50IHF0cmVl
X2VudHJ5X3VudXNlZChzdHJ1Y3QgcXRyZWVfbWVtX2RxaW5mbyAqaW5mbywgY2hhciAqZGlzayk7
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgcXRyZWVfZGVwdGgoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8pCjE0
NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGVwYiA9IGluZm8tPmRxaV91c2FibGVfYnMgPj4g
MjsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvbmcgZW50cmllcyA9IGVwYjsKMTQ0NzQ6ICBpbnQg
aTsKMTQ0NzQ6IAoxNDQ3NDogIGZvciAoaSA9IDE7IGVudHJpZXMgPCAoMVVMTCA8PCAzMik7IGkr
KykKMTQ0NzQ6ICAgZW50cmllcyAqPSBlcGI7CjE0NDc0OiAgcmV0dXJuIGk7CjE0NDc0OiB9CjE0
NDc0OiBpbnQgcXRyZWVfZ2V0X25leHRfaWQoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8s
IHN0cnVjdCBrcWlkICpxaWQpOwoxNDQ3NDogIyAxMCAiLi9pbmNsdWRlL2xpbnV4L2RxYmxrX3Yy
LmgiIDIKMTQ0NzQ6ICMgNDUgIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIiAyCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9wcm9qaWQuaCIgMQoxNDQ3
NDogIyAxNyAiLi9pbmNsdWRlL2xpbnV4L3Byb2ppZC5oIgoxNDQ3NDogc3RydWN0IHVzZXJfbmFt
ZXNwYWNlOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB1c2VyX25hbWVzcGFjZSBpbml0X3VzZXJfbnM7
CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfdWlkMzJfdCBwcm9qaWRfdDsKMTQ0NzQ6
IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgewoxNDQ3NDogIHByb2ppZF90IHZhbDsKMTQ0NzQ6IH0g
a3Byb2ppZF90OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwcm9qaWRfdCBfX2twcm9qaWRfdmFsKGtwcm9qaWRf
dCBwcm9qaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHByb2ppZC52YWw7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IHByb2ppZF9lcShrcHJvamlkX3QgbGVmdCwga3Byb2ppZF90IHJpZ2h0KQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBfX2twcm9qaWRfdmFsKGxlZnQpID09IF9fa3Byb2ppZF92YWwocmlnaHQpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHByb2ppZF9sdChrcHJvamlkX3QgbGVmdCwga3By
b2ppZF90IHJpZ2h0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2twcm9qaWRfdmFsKGxlZnQp
IDwgX19rcHJvamlkX3ZhbChyaWdodCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcHJv
amlkX3ZhbGlkKGtwcm9qaWRfdCBwcm9qaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICFwcm9q
aWRfZXEocHJvamlkLCAoa3Byb2ppZF90KXsgLTEgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4ga3Byb2ppZF90IG1ha2Vfa3Byb2ppZChzdHJ1Y3QgdXNl
cl9uYW1lc3BhY2UgKmZyb20sIHByb2ppZF90IHByb2ppZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBwcm9qaWRfdCBmcm9tX2twcm9qaWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICp0bywga3Byb2pp
ZF90IHByb2ppZCk7CjE0NDc0OiBleHRlcm4gcHJvamlkX3QgZnJvbV9rcHJvamlkX211bmdlZChz
dHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnRvLCBrcHJvamlkX3QgcHJvamlkKTsKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBrcHJvamlkX2hhc19tYXBwaW5nKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsIGtw
cm9qaWRfdCBwcm9qaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZyb21fa3Byb2ppZChucywg
cHJvamlkKSAhPSAocHJvamlkX3QpLTE7CjE0NDc0OiB9CjE0NDc0OiAjIDQ5ICIuL2luY2x1ZGUv
bGludXgvcXVvdGEuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9xdW90YS5o
IiAxCjE0NDc0OiAjIDkwICIuL2luY2x1ZGUvdWFwaS9saW51eC9xdW90YS5oIgoxNDQ3NDogZW51
bSB7CjE0NDc0OiAgUUlGX0JMSU1JVFNfQiA9IDAsCjE0NDc0OiAgUUlGX1NQQUNFX0IsCjE0NDc0
OiAgUUlGX0lMSU1JVFNfQiwKMTQ0NzQ6ICBRSUZfSU5PREVTX0IsCjE0NDc0OiAgUUlGX0JUSU1F
X0IsCjE0NDc0OiAgUUlGX0lUSU1FX0IsCjE0NDc0OiB9OwoxNDQ3NDogIyAxMTAgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L3F1b3RhLmgiCjE0NDc0OiBzdHJ1Y3QgaWZfZHFibGsgewoxNDQ3NDogIF9f
dTY0IGRxYl9iaGFyZGxpbWl0OwoxNDQ3NDogIF9fdTY0IGRxYl9ic29mdGxpbWl0OwoxNDQ3NDog
IF9fdTY0IGRxYl9jdXJzcGFjZTsKMTQ0NzQ6ICBfX3U2NCBkcWJfaWhhcmRsaW1pdDsKMTQ0NzQ6
ICBfX3U2NCBkcWJfaXNvZnRsaW1pdDsKMTQ0NzQ6ICBfX3U2NCBkcWJfY3VyaW5vZGVzOwoxNDQ3
NDogIF9fdTY0IGRxYl9idGltZTsKMTQ0NzQ6ICBfX3U2NCBkcWJfaXRpbWU7CjE0NDc0OiAgX191
MzIgZHFiX3ZhbGlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGlmX25leHRkcWJs
ayB7CjE0NDc0OiAgX191NjQgZHFiX2JoYXJkbGltaXQ7CjE0NDc0OiAgX191NjQgZHFiX2Jzb2Z0
bGltaXQ7CjE0NDc0OiAgX191NjQgZHFiX2N1cnNwYWNlOwoxNDQ3NDogIF9fdTY0IGRxYl9paGFy
ZGxpbWl0OwoxNDQ3NDogIF9fdTY0IGRxYl9pc29mdGxpbWl0OwoxNDQ3NDogIF9fdTY0IGRxYl9j
dXJpbm9kZXM7CjE0NDc0OiAgX191NjQgZHFiX2J0aW1lOwoxNDQ3NDogIF9fdTY0IGRxYl9pdGlt
ZTsKMTQ0NzQ6ICBfX3UzMiBkcWJfdmFsaWQ7CjE0NDc0OiAgX191MzIgZHFiX2lkOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMTQ0ICIuL2luY2x1ZGUvdWFwaS9saW51eC9xdW90YS5oIgoxNDQ3NDogZW51
bSB7CjE0NDc0OiAgRFFGX1JPT1RfU1FVQVNIX0IgPSAwLAoxNDQ3NDogIERRRl9TWVNfRklMRV9C
ID0gMTYsCjE0NDc0OiAKMTQ0NzQ6ICBEUUZfUFJJVkFURQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBpZl9kcWlu
Zm8gewoxNDQ3NDogIF9fdTY0IGRxaV9iZ3JhY2U7CjE0NDc0OiAgX191NjQgZHFpX2lncmFjZTsK
MTQ0NzQ6ICBfX3UzMiBkcWlfZmxhZ3M7CjE0NDc0OiAgX191MzIgZHFpX3ZhbGlkOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMTc4ICIuL2luY2x1ZGUvdWFwaS9saW51eC9xdW90YS5oIgoxNDQ3NDogZW51
bSB7CjE0NDc0OiAgUVVPVEFfTkxfQ19VTlNQRUMsCjE0NDc0OiAgUVVPVEFfTkxfQ19XQVJOSU5H
LAoxNDQ3NDogIF9fUVVPVEFfTkxfQ19NQVgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gewoxNDQ3NDogIFFVT1RBX05MX0FfVU5TUEVDLAoxNDQ3NDogIFFVT1RBX05MX0Ff
UVRZUEUsCjE0NDc0OiAgUVVPVEFfTkxfQV9FWENFU1NfSUQsCjE0NDc0OiAgUVVPVEFfTkxfQV9X
QVJOSU5HLAoxNDQ3NDogIFFVT1RBX05MX0FfREVWX01BSk9SLAoxNDQ3NDogIFFVT1RBX05MX0Ff
REVWX01JTk9SLAoxNDQ3NDogIFFVT1RBX05MX0FfQ0FVU0VEX0lELAoxNDQ3NDogIFFVT1RBX05M
X0FfUEFELAoxNDQ3NDogIF9fUVVPVEFfTkxfQV9NQVgsCjE0NDc0OiB9OwoxNDQ3NDogIyA1MCAi
Li9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBxdW90YV90eXBlIHsKMTQ0NzQ6ICBVU1JRVU9UQSA9IDAsCjE0NDc0OiAg
R1JQUVVPVEEgPSAxLAoxNDQ3NDogIFBSSlFVT1RBID0gMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIF9fa2Vy
bmVsX3VpZDMyX3QgcWlkX3Q7CjE0NDc0OiB0eXBlZGVmIGxvbmcgbG9uZyBxc2l6ZV90OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3Qga3FpZCB7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBrdWlkX3Qg
dWlkOwoxNDQ3NDogICBrZ2lkX3QgZ2lkOwoxNDQ3NDogICBrcHJvamlkX3QgcHJvamlkOwoxNDQ3
NDogIH07CjE0NDc0OiAgZW51bSBxdW90YV90eXBlIHR5cGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gYm9vbCBxaWRfZXEoc3RydWN0IGtxaWQgbGVmdCwgc3RydWN0IGtxaWQgcmln
aHQpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgcWlkX2x0KHN0cnVjdCBrcWlkIGxlZnQsIHN0cnVjdCBr
cWlkIHJpZ2h0KTsKMTQ0NzQ6IGV4dGVybiBxaWRfdCBmcm9tX2txaWQoc3RydWN0IHVzZXJfbmFt
ZXNwYWNlICp0bywgc3RydWN0IGtxaWQgcWlkKTsKMTQ0NzQ6IGV4dGVybiBxaWRfdCBmcm9tX2tx
aWRfbXVuZ2VkKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdG8sIHN0cnVjdCBrcWlkIHFpZCk7CjE0
NDc0OiBleHRlcm4gYm9vbCBxaWRfdmFsaWQoc3RydWN0IGtxaWQgcWlkKTsKMTQ0NzQ6ICMgOTcg
Ii4vaW5jbHVkZS9saW51eC9xdW90YS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtxaWQgbWFrZV9rcWlkKHN0
cnVjdCB1c2VyX25hbWVzcGFjZSAqZnJvbSwKMTQ0NzQ6ICAgICAgICAgZW51bSBxdW90YV90eXBl
IHR5cGUsIHFpZF90IHFpZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3Qga3FpZCBrcWlkOwoxNDQ3
NDogCjE0NDc0OiAga3FpZC50eXBlID0gdHlwZTsKMTQ0NzQ6ICBzd2l0Y2ggKHR5cGUpIHsKMTQ0
NzQ6ICBjYXNlIFVTUlFVT1RBOgoxNDQ3NDogICBrcWlkLnVpZCA9IG1ha2Vfa3VpZChmcm9tLCBx
aWQpOwoxNDQ3NDogICBicmVhazsKMTQ0NzQ6ICBjYXNlIEdSUFFVT1RBOgoxNDQ3NDogICBrcWlk
LmdpZCA9IG1ha2Vfa2dpZChmcm9tLCBxaWQpOwoxNDQ3NDogICBicmVhazsKMTQ0NzQ6ICBjYXNl
IFBSSlFVT1RBOgoxNDQ3NDogICBrcWlkLnByb2ppZCA9IG1ha2Vfa3Byb2ppZChmcm9tLCBxaWQp
OwoxNDQ3NDogICBicmVhazsKMTQ0NzQ6ICBkZWZhdWx0OgoxNDQ3NDogICBkbyB7IGRvIHsgYXNt
IF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hz
ZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIi
ICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIg
Ilx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGlu
ZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVj
M1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3F1b3RhLmgiKSwgImki
ICgxMTQpLCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxl
ICgwKTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNj
YXJkLnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5c
dCIgOiA6ICJpIiAoMjgpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNo
YWJsZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgfQoxNDQ3NDogIHJldHVy
biBrcWlkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga3FpZCBtYWtlX2txaWRfaW52YWxpZChlbnVt
IHF1b3RhX3R5cGUgdHlwZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3Qga3FpZCBrcWlkOwoxNDQ3
NDogCjE0NDc0OiAga3FpZC50eXBlID0gdHlwZTsKMTQ0NzQ6ICBzd2l0Y2ggKHR5cGUpIHsKMTQ0
NzQ6ICBjYXNlIFVTUlFVT1RBOgoxNDQ3NDogICBrcWlkLnVpZCA9IChrdWlkX3QpeyAtMSB9Owox
NDQ3NDogICBicmVhazsKMTQ0NzQ6ICBjYXNlIEdSUFFVT1RBOgoxNDQ3NDogICBrcWlkLmdpZCA9
IChrZ2lkX3QpeyAtMSB9OwoxNDQ3NDogICBicmVhazsKMTQ0NzQ6ICBjYXNlIFBSSlFVT1RBOgox
NDQ3NDogICBrcWlkLnByb2ppZCA9IChrcHJvamlkX3QpeyAtMSB9OwoxNDQ3NDogICBicmVhazsK
MTQ0NzQ6ICBkZWZhdWx0OgoxNDQ3NDogICBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxl
KCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxl
LFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5Ojpi
dWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZp
bGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIi
ICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24i
IDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3F1b3RhLmgiKSwgImkiICgxNDEpLCAiaSIgKDApLCAi
aSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBhc20g
dm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxlXG5c
dCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMjkpKTsg
fSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgw
KTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgfQoxNDQ3NDogIHJldHVybiBrcWlkOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrcWlk
IG1ha2Vfa3FpZF91aWQoa3VpZF90IHVpZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3Qga3FpZCBr
cWlkOwoxNDQ3NDogIGtxaWQudHlwZSA9IFVTUlFVT1RBOwoxNDQ3NDogIGtxaWQudWlkID0gdWlk
OwoxNDQ3NDogIHJldHVybiBrcWlkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrcWlkIG1ha2Vfa3FpZF9naWQoa2dpZF90IGdp
ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3Qga3FpZCBrcWlkOwoxNDQ3NDogIGtxaWQudHlwZSA9
IEdSUFFVT1RBOwoxNDQ3NDogIGtxaWQuZ2lkID0gZ2lkOwoxNDQ3NDogIHJldHVybiBrcWlkOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0
cnVjdCBrcWlkIG1ha2Vfa3FpZF9wcm9qaWQoa3Byb2ppZF90IHByb2ppZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICBzdHJ1Y3Qga3FpZCBrcWlkOwoxNDQ3NDogIGtxaWQudHlwZSA9IFBSSlFVT1RBOwoxNDQ3
NDogIGtxaWQucHJvamlkID0gcHJvamlkOwoxNDQ3NDogIHJldHVybiBrcWlkOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCBxaWRfaGFzX21hcHBpbmcoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpucywgc3RydWN0IGtxaWQg
cWlkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBmcm9tX2txaWQobnMsIHFpZCkgIT0gKHFpZF90
KSAtMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3BpbmxvY2tfdCBk
cV9kYXRhX2xvY2s7CjE0NDc0OiAjIDIwNSAiLi9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiCjE0NDc0
OiBzdHJ1Y3QgbWVtX2RxYmxrIHsKMTQ0NzQ6ICBxc2l6ZV90IGRxYl9iaGFyZGxpbWl0OwoxNDQ3
NDogIHFzaXplX3QgZHFiX2Jzb2Z0bGltaXQ7CjE0NDc0OiAgcXNpemVfdCBkcWJfY3Vyc3BhY2U7
CjE0NDc0OiAgcXNpemVfdCBkcWJfcnN2c3BhY2U7CjE0NDc0OiAgcXNpemVfdCBkcWJfaWhhcmRs
aW1pdDsKMTQ0NzQ6ICBxc2l6ZV90IGRxYl9pc29mdGxpbWl0OwoxNDQ3NDogIHFzaXplX3QgZHFi
X2N1cmlub2RlczsKMTQ0NzQ6ICB0aW1lNjRfdCBkcWJfYnRpbWU7CjE0NDc0OiAgdGltZTY0X3Qg
ZHFiX2l0aW1lOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IHF1b3RhX2Zvcm1hdF90eXBlOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbWVtX2Rx
aW5mbyB7CjE0NDc0OiAgc3RydWN0IHF1b3RhX2Zvcm1hdF90eXBlICpkcWlfZm9ybWF0OwoxNDQ3
NDogIGludCBkcWlfZm10X2lkOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBkcWlf
ZGlydHlfbGlzdDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGRxaV9mbGFnczsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgZHFpX2JncmFjZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHFpX2lncmFjZTsKMTQ0
NzQ6ICBxc2l6ZV90IGRxaV9tYXhfc3BjX2xpbWl0OwoxNDQ3NDogIHFzaXplX3QgZHFpX21heF9p
bm9fbGltaXQ7CjE0NDc0OiAgdm9pZCAqZHFpX3ByaXY7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3Qgc3VwZXJfYmxvY2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBEUUZfSU5GT19ESVJUWV9CID0gRFFG
X1BSSVZBVEUsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIG1h
cmtfaW5mb19kaXJ0eShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgdHlwZSk7CjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgaW5mb19kaXJ0eShzdHJ1Y3QgbWVtX2RxaW5mbyAqaW5mbykKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gdGVzdF9iaXQoRFFGX0lORk9fRElSVFlfQiwgJmluZm8tPmRxaV9mbGFncyk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERRU1RfTE9PS1VQUywKMTQ0NzQ6ICBE
UVNUX0RST1BTLAoxNDQ3NDogIERRU1RfUkVBRFMsCjE0NDc0OiAgRFFTVF9XUklURVMsCjE0NDc0
OiAgRFFTVF9DQUNIRV9ISVRTLAoxNDQ3NDogIERRU1RfQUxMT0NfRFFVT1RTLAoxNDQ3NDogIERR
U1RfRlJFRV9EUVVPVFMsCjE0NDc0OiAgRFFTVF9TWU5DUywKMTQ0NzQ6ICBfRFFTVF9EUVNUQVRf
TEFTVAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRxc3RhdHMgewoxNDQ3NDogIHVu
c2lnbmVkIGxvbmcgc3RhdFtfRFFTVF9EUVNUQVRfTEFTVF07CjE0NDc0OiAgc3RydWN0IHBlcmNw
dV9jb3VudGVyIGNvdW50ZXJbX0RRU1RfRFFTVEFUX0xBU1RdOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIHN0cnVjdCBkcXN0YXRzIGRxc3RhdHM7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
ZHFzdGF0c19pbmModW5zaWduZWQgaW50IHR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgcGVyY3B1X2Nv
dW50ZXJfaW5jKCZkcXN0YXRzLmNvdW50ZXJbdHlwZV0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGRxc3RhdHNfZGVjKHVuc2lnbmVkIGludCB0eXBlKQoxNDQ3NDogewoxNDQ3NDogIHBl
cmNwdV9jb3VudGVyX2RlYygmZHFzdGF0cy5jb3VudGVyW3R5cGVdKTsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMjk0ICIuL2luY2x1ZGUvbGludXgvcXVvdGEuaCIKMTQ0NzQ6IHN0cnVjdCBkcXVvdCB7CjE0
NDc0OiAgc3RydWN0IGhsaXN0X25vZGUgZHFfaGFzaDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFk
IGRxX2ludXNlOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgZHFfZnJlZTsKMTQ0NzQ6ICBzdHJ1
Y3QgbGlzdF9oZWFkIGRxX2RpcnR5OwoxNDQ3NDogIHN0cnVjdCBtdXRleCBkcV9sb2NrOwoxNDQ3
NDogIHNwaW5sb2NrX3QgZHFfZHFiX2xvY2s7CjE0NDc0OiAgYXRvbWljX3QgZHFfY291bnQ7CjE0
NDc0OiAgc3RydWN0IHN1cGVyX2Jsb2NrICpkcV9zYjsKMTQ0NzQ6ICBzdHJ1Y3Qga3FpZCBkcV9p
ZDsKMTQ0NzQ6ICBsb2ZmX3QgZHFfb2ZmOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZHFfZmxhZ3M7
CjE0NDc0OiAgc3RydWN0IG1lbV9kcWJsayBkcV9kcWI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBxdW90YV9mb3JtYXRfb3BzIHsKMTQ0NzQ6ICBpbnQgKCpjaGVja19x
dW90YV9maWxlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgdHlwZSk7CjE0NDc0OiAgaW50
ICgqcmVhZF9maWxlX2luZm8pKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0eXBlKTsKMTQ0
NzQ6ICBpbnQgKCp3cml0ZV9maWxlX2luZm8pKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0
eXBlKTsKMTQ0NzQ6ICBpbnQgKCpmcmVlX2ZpbGVfaW5mbykoc3RydWN0IHN1cGVyX2Jsb2NrICpz
YiwgaW50IHR5cGUpOwoxNDQ3NDogIGludCAoKnJlYWRfZHFibGspKHN0cnVjdCBkcXVvdCAqZHF1
b3QpOwoxNDQ3NDogIGludCAoKmNvbW1pdF9kcWJsaykoc3RydWN0IGRxdW90ICpkcXVvdCk7CjE0
NDc0OiAgaW50ICgqcmVsZWFzZV9kcWJsaykoc3RydWN0IGRxdW90ICpkcXVvdCk7CjE0NDc0OiAg
aW50ICgqZ2V0X25leHRfaWQpKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrcWlkICpx
aWQpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHF1b3Rfb3BlcmF0
aW9ucyB7CjE0NDc0OiAgaW50ICgqd3JpdGVfZHF1b3QpIChzdHJ1Y3QgZHF1b3QgKik7CjE0NDc0
OiAgc3RydWN0IGRxdW90ICooKmFsbG9jX2RxdW90KShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgaW50
KTsKMTQ0NzQ6ICB2b2lkICgqZGVzdHJveV9kcXVvdCkoc3RydWN0IGRxdW90ICopOwoxNDQ3NDog
IGludCAoKmFjcXVpcmVfZHF1b3QpIChzdHJ1Y3QgZHF1b3QgKik7CjE0NDc0OiAgaW50ICgqcmVs
ZWFzZV9kcXVvdCkgKHN0cnVjdCBkcXVvdCAqKTsKMTQ0NzQ6ICBpbnQgKCptYXJrX2RpcnR5KSAo
c3RydWN0IGRxdW90ICopOwoxNDQ3NDogIGludCAoKndyaXRlX2luZm8pIChzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKiwgaW50KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcXNpemVfdCAqKCpnZXRfcmVz
ZXJ2ZWRfc3BhY2UpIChzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiAgaW50ICgqZ2V0X3Byb2ppZCkg
KHN0cnVjdCBpbm9kZSAqLCBrcHJvamlkX3QgKik7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpnZXRf
aW5vZGVfdXNhZ2UpIChzdHJ1Y3QgaW5vZGUgKiwgcXNpemVfdCAqKTsKMTQ0NzQ6IAoxNDQ3NDog
IGludCAoKmdldF9uZXh0X2lkKSAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtxaWQg
KnFpZCk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGF0aDsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgcWNfZHFibGsgewoxNDQ3NDogIGludCBkX2ZpZWxkbWFzazsKMTQ0
NzQ6ICB1NjQgZF9zcGNfaGFyZGxpbWl0OwoxNDQ3NDogIHU2NCBkX3NwY19zb2Z0bGltaXQ7CjE0
NDc0OiAgdTY0IGRfaW5vX2hhcmRsaW1pdDsKMTQ0NzQ6ICB1NjQgZF9pbm9fc29mdGxpbWl0Owox
NDQ3NDogIHU2NCBkX3NwYWNlOwoxNDQ3NDogIHU2NCBkX2lub19jb3VudDsKMTQ0NzQ6ICBzNjQg
ZF9pbm9fdGltZXI7CjE0NDc0OiAKMTQ0NzQ6ICBzNjQgZF9zcGNfdGltZXI7CjE0NDc0OiAgaW50
IGRfaW5vX3dhcm5zOwoxNDQ3NDogIGludCBkX3NwY193YXJuczsKMTQ0NzQ6ICB1NjQgZF9ydF9z
cGNfaGFyZGxpbWl0OwoxNDQ3NDogIHU2NCBkX3J0X3NwY19zb2Z0bGltaXQ7CjE0NDc0OiAgdTY0
IGRfcnRfc3BhY2U7CjE0NDc0OiAgczY0IGRfcnRfc3BjX3RpbWVyOwoxNDQ3NDogIGludCBkX3J0
X3NwY193YXJuczsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM5NSAiLi9pbmNsdWRlL2xpbnV4L3F1b3Rh
LmgiCjE0NDc0OiBzdHJ1Y3QgcWNfdHlwZV9zdGF0ZSB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGZs
YWdzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBzcGNfdGltZWxpbWl0OwoxNDQ3NDogCjE0NDc0OiAg
dW5zaWduZWQgaW50IGlub190aW1lbGltaXQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJ0X3NwY190
aW1lbGltaXQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNwY193YXJubGltaXQ7CjE0NDc0OiAgdW5z
aWduZWQgaW50IGlub193YXJubGltaXQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJ0X3NwY193YXJu
bGltaXQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIGlubzsKMTQ0NzQ6ICBibGtjbnRfdCBi
bG9ja3M7CjE0NDc0OiAgYmxrY250X3QgbmV4dGVudHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgcWNfc3RhdGUgewoxNDQ3NDogIHVuc2lnbmVkIGludCBzX2luY29yZWRxczsKMTQ0
NzQ6ICBzdHJ1Y3QgcWNfdHlwZV9zdGF0ZSBzX3N0YXRlWzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcWNfaW5mbyB7CjE0NDc0OiAgaW50IGlfZmllbGRtYXNrOwox
NDQ3NDogIHVuc2lnbmVkIGludCBpX2ZsYWdzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBpX3NwY190
aW1lbGltaXQ7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaV9pbm9fdGltZWxpbWl0Owox
NDQ3NDogIHVuc2lnbmVkIGludCBpX3J0X3NwY190aW1lbGltaXQ7CjE0NDc0OiAgdW5zaWduZWQg
aW50IGlfc3BjX3dhcm5saW1pdDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaV9pbm9fd2FybmxpbWl0
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBpX3J0X3NwY193YXJubGltaXQ7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBxdW90YWN0bF9vcHMgewoxNDQ3NDogIGludCAoKnF1
b3RhX29uKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgaW50LCBpbnQsIGNvbnN0IHN0cnVjdCBwYXRo
ICopOwoxNDQ3NDogIGludCAoKnF1b3RhX29mZikoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCk7
CjE0NDc0OiAgaW50ICgqcXVvdGFfZW5hYmxlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdW5zaWdu
ZWQgaW50KTsKMTQ0NzQ6ICBpbnQgKCpxdW90YV9kaXNhYmxlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sg
KiwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6ICBpbnQgKCpxdW90YV9zeW5jKShzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKiwgaW50KTsKMTQ0NzQ6ICBpbnQgKCpzZXRfaW5mbykoc3RydWN0IHN1cGVyX2Jsb2Nr
ICosIGludCwgc3RydWN0IHFjX2luZm8gKik7CjE0NDc0OiAgaW50ICgqZ2V0X2RxYmxrKShzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGtxaWQsIHN0cnVjdCBxY19kcWJsayAqKTsKMTQ0NzQ6
ICBpbnQgKCpnZXRfbmV4dGRxYmxrKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGtxaWQg
KiwKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHFjX2RxYmxrICopOwoxNDQ3NDogIGludCAoKnNldF9k
cWJsaykoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBrcWlkLCBzdHJ1Y3QgcWNfZHFibGsg
Kik7CjE0NDc0OiAgaW50ICgqZ2V0X3N0YXRlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0
IHFjX3N0YXRlICopOwoxNDQ3NDogIGludCAoKnJtX3hxdW90YSkoc3RydWN0IHN1cGVyX2Jsb2Nr
ICosIHVuc2lnbmVkIGludCk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcXVvdGFf
Zm9ybWF0X3R5cGUgewoxNDQ3NDogIGludCBxZl9mbXRfaWQ7CjE0NDc0OiAgY29uc3Qgc3RydWN0
IHF1b3RhX2Zvcm1hdF9vcHMgKnFmX29wczsKMTQ0NzQ6ICBzdHJ1Y3QgbW9kdWxlICpxZl9vd25l
cjsKMTQ0NzQ6ICBzdHJ1Y3QgcXVvdGFfZm9ybWF0X3R5cGUgKnFmX25leHQ7CjE0NDc0OiB9Owox
NDQ3NDogIyA0NjMgIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIgoxNDQ3NDogZW51bSB7CjE0NDc0
OiAgX0RRVU9UX1VTQUdFX0VOQUJMRUQgPSAwLAoxNDQ3NDogIF9EUVVPVF9MSU1JVFNfRU5BQkxF
RCwKMTQ0NzQ6ICBfRFFVT1RfU1VTUEVOREVELAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfRFFV
T1RfU1RBVEVfRkxBR1MKMTQ0NzQ6IH07CjE0NDc0OiAjIDQ5MCAiLi9pbmNsdWRlL2xpbnV4L3F1
b3RhLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgZHF1b3Rfc3RhdGVfZmxhZyh1bnNpZ25lZCBpbnQg
ZmxhZ3MsIGludCB0eXBlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBmbGFncyA8PCB0eXBlOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgZHF1b3RfZ2VuZXJpY19mbGFnKHVu
c2lnbmVkIGludCBmbGFncywgaW50IHR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChmbGFn
cyA+PiB0eXBlKSAmICgoMSA8PCBfRFFVT1RfVVNBR0VfRU5BQkxFRCAqIDMpIHwgKDEgPDwgX0RR
VU9UX0xJTUlUU19FTkFCTEVEICogMykgfCAoMSA8PCBfRFFVT1RfU1VTUEVOREVEICogMykpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgdW5zaWduZWQgZHF1b3Rfc3RhdGVfdHlwZXModW5zaWduZWQgZmxhZ3MsIHVuc2ln
bmVkIGZsYWcpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1l
X2Fzc2VydF81MDModm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJCVUlMRF9CVUdfT04g
ZmFpbGVkOiAiICIoZmxhZykgPT0gMCB8fCAoKChmbGFnKSAmICgoZmxhZykgLSAxKSkgIT0gMCki
KSkpOyBpZiAoISghKChmbGFnKSA9PSAwIHx8ICgoKGZsYWcpICYgKChmbGFnKSAtIDEpKSAhPSAw
KSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF81MDMoKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgcmV0
dXJuIChmbGFncyAvIGZsYWcpICYgKCgxIDw8IDMpIC0gMSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgcXVvdGFfc2VuZF93YXJuaW5nKHN0cnVjdCBrcWlkIHFp
ZCwgZGV2X3QgZGV2LAoxNDQ3NDogICAgICAgICAgIGNvbnN0IGNoYXIgd2FybnR5cGUpOwoxNDQ3
NDogIyA1MTggIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIgoxNDQ3NDogc3RydWN0IHF1b3RhX2lu
Zm8gewoxNDQ3NDogIHVuc2lnbmVkIGludCBmbGFnczsKMTQ0NzQ6ICBzdHJ1Y3Qgcndfc2VtYXBo
b3JlIGRxaW9fc2VtOwoxNDQ3NDogIHN0cnVjdCBpbm9kZSAqZmlsZXNbM107CjE0NDc0OiAgc3Ry
dWN0IG1lbV9kcWluZm8gaW5mb1szXTsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgcXVvdGFfZm9ybWF0
X29wcyAqb3BzWzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogaW50IHJlZ2lzdGVyX3F1b3Rh
X2Zvcm1hdChzdHJ1Y3QgcXVvdGFfZm9ybWF0X3R5cGUgKmZtdCk7CjE0NDc0OiB2b2lkIHVucmVn
aXN0ZXJfcXVvdGFfZm9ybWF0KHN0cnVjdCBxdW90YV9mb3JtYXRfdHlwZSAqZm10KTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHF1b3RhX21vZHVsZV9uYW1lIHsKMTQ0NzQ6ICBpbnQgcW1fZm10X2lk
OwoxNDQ3NDogIGNoYXIgKnFtX21vZF9uYW1lOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjQ2ICIuL2lu
Y2x1ZGUvbGludXgvZnMuaCIgMgoxNDQ3NDogIyAyNzkgIi4vaW5jbHVkZS9saW51eC9mcy5oIgox
NDQ3NDogZW51bSBwb3NpdGl2ZV9hb3BfcmV0dXJucyB7CjE0NDc0OiAgQU9QX1dSSVRFUEFHRV9B
Q1RJVkFURSA9IDB4ODAwMDAsCjE0NDc0OiAgQU9QX1RSVU5DQVRFRF9QQUdFID0gMHg4MDAwMSwK
MTQ0NzQ6IH07CjE0NDc0OiAjIDI5MiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdHJ1
Y3QgcGFnZTsKMTQ0NzQ6IHN0cnVjdCBhZGRyZXNzX3NwYWNlOwoxNDQ3NDogc3RydWN0IHdyaXRl
YmFja19jb250cm9sOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gcndfaGludCB7CjE0NDc0OiAgV1JJVEVfTElGRV9OT1RfU0VUID0gMCwKMTQ0NzQ6
ICBXUklURV9MSUZFX05PTkUgPSAxLAoxNDQ3NDogIFdSSVRFX0xJRkVfU0hPUlQgPSAyLAoxNDQ3
NDogIFdSSVRFX0xJRkVfTUVESVVNID0gMywKMTQ0NzQ6ICBXUklURV9MSUZFX0xPTkcgPSA0LAox
NDQ3NDogIFdSSVRFX0xJRkVfRVhUUkVNRSA9IDUsCjE0NDc0OiB9OwoxNDQ3NDogIyAzMTggIi4v
aW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RydWN0IGtpb2NiIHsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZmlsZSAqa2lfZmlscDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGxv
ZmZfdCBraV9wb3M7CjE0NDc0OiAgdm9pZCAoKmtpX2NvbXBsZXRlKShzdHJ1Y3Qga2lvY2IgKmlv
Y2IsIGxvbmcgcmV0LCBsb25nIHJldDIpOwoxNDQ3NDogIHZvaWQgKnByaXZhdGU7CjE0NDc0OiAg
aW50IGtpX2ZsYWdzOwoxNDQ3NDogIHUxNiBraV9oaW50OwoxNDQ3NDogIHUxNiBraV9pb3ByaW87
CjE0NDc0OiAgdW5zaWduZWQgaW50IGtpX2Nvb2tpZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGlzX3N5bmNfa2lvY2Ioc3RydWN0IGtpb2NiICpraW9jYikK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga2lvY2ItPmtpX2NvbXBsZXRlID09ICgodm9pZCAqKTAp
OwoxNDQ3NDogfQoxNDQ3NDogIyAzNDkgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogdHlw
ZWRlZiBzdHJ1Y3QgewoxNDQ3NDogIHNpemVfdCB3cml0dGVuOwoxNDQ3NDogIHNpemVfdCBjb3Vu
dDsKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIGNoYXIgKmJ1ZjsKMTQ0NzQ6ICAgdm9pZCAqZGF0
YTsKMTQ0NzQ6ICB9IGFyZzsKMTQ0NzQ6ICBpbnQgZXJyb3I7CjE0NDc0OiB9IHJlYWRfZGVzY3Jp
cHRvcl90OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIGludCAoKnJlYWRfYWN0b3JfdCkocmVhZF9k
ZXNjcmlwdG9yX3QgKiwgc3RydWN0IHBhZ2UgKiwKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZywgdW5z
aWduZWQgbG9uZyk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlv
bnMgewoxNDQ3NDogIGludCAoKndyaXRlcGFnZSkoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB3
cml0ZWJhY2tfY29udHJvbCAqd2JjKTsKMTQ0NzQ6ICBpbnQgKCpyZWFkcGFnZSkoc3RydWN0IGZp
bGUgKiwgc3RydWN0IHBhZ2UgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKndyaXRl
cGFnZXMpKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAq
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50ICgqc2V0X3BhZ2VfZGlydHkpKHN0cnVjdCBw
YWdlICpwYWdlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgaW50ICgqcmVhZHBhZ2VzKShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGFkZHJlc3Nfc3Bh
Y2UgKm1hcHBpbmcsCjE0NDc0OiAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwYWdlcywgdW5zaWduZWQg
bnJfcGFnZXMpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqd3JpdGVfYmVnaW4pKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAoxNDQ3NDogICAgIGxvZmZfdCBwb3Ms
IHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsCjE0NDc0OiAgICAgc3RydWN0IHBhZ2UgKipw
YWdlcCwgdm9pZCAqKmZzZGF0YSk7CjE0NDc0OiAgaW50ICgqd3JpdGVfZW5kKShzdHJ1Y3QgZmls
ZSAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKMTQ0NzQ6ICAgICBsb2ZmX3QgcG9z
LCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwKMTQ0NzQ6ICAgICBzdHJ1Y3QgcGFnZSAq
cGFnZSwgdm9pZCAqZnNkYXRhKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc2VjdG9yX3QgKCpi
bWFwKShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBzZWN0b3JfdCk7CjE0NDc0OiAgdm9pZCAoKmlu
dmFsaWRhdGVwYWdlKSAoc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQp
OwoxNDQ3NDogIGludCAoKnJlbGVhc2VwYWdlKSAoc3RydWN0IHBhZ2UgKiwgZ2ZwX3QpOwoxNDQ3
NDogIHZvaWQgKCpmcmVlcGFnZSkoc3RydWN0IHBhZ2UgKik7CjE0NDc0OiAgc3NpemVfdCAoKmRp
cmVjdF9JTykoc3RydWN0IGtpb2NiICosIHN0cnVjdCBpb3ZfaXRlciAqaXRlcik7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCptaWdyYXRlcGFnZSkgKHN0cnVj
dCBhZGRyZXNzX3NwYWNlICosCjE0NDc0OiAgICBzdHJ1Y3QgcGFnZSAqLCBzdHJ1Y3QgcGFnZSAq
LCBlbnVtIG1pZ3JhdGVfbW9kZSk7CjE0NDc0OiAgYm9vbCAoKmlzb2xhdGVfcGFnZSkoc3RydWN0
IHBhZ2UgKiwgaXNvbGF0ZV9tb2RlX3QpOwoxNDQ3NDogIHZvaWQgKCpwdXRiYWNrX3BhZ2UpKHN0
cnVjdCBwYWdlICopOwoxNDQ3NDogIGludCAoKmxhdW5kZXJfcGFnZSkgKHN0cnVjdCBwYWdlICop
OwoxNDQ3NDogIGludCAoKmlzX3BhcnRpYWxseV91cHRvZGF0ZSkgKHN0cnVjdCBwYWdlICosIHVu
c2lnbmVkIGxvbmcsCjE0NDc0OiAgICAgIHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogIHZvaWQgKCpp
c19kaXJ0eV93cml0ZWJhY2spIChzdHJ1Y3QgcGFnZSAqLCBib29sICosIGJvb2wgKik7CjE0NDc0
OiAgaW50ICgqZXJyb3JfcmVtb3ZlX3BhZ2UpKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIHN0cnVj
dCBwYWdlICopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpzd2FwX2FjdGl2YXRlKShz
dHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2lzLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKMTQ0NzQ6ICAg
ICBzZWN0b3JfdCAqc3Bhbik7CjE0NDc0OiAgdm9pZCAoKnN3YXBfZGVhY3RpdmF0ZSkoc3RydWN0
IGZpbGUgKmZpbGUpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IHN0cnVj
dCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgZW1wdHlfYW9wczsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgcGFnZWNhY2hlX3dyaXRlX2JlZ2luKHN0
cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAoxNDQ3NDogICAgIGxv
ZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsCjE0NDc0OiAgICAgc3RydWN0
IHBhZ2UgKipwYWdlcCwgdm9pZCAqKmZzZGF0YSk7CjE0NDc0OiAKMTQ0NzQ6IGludCBwYWdlY2Fj
aGVfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n
LAoxNDQ3NDogICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLAox
NDQ3NDogICAgIHN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEpOwoxNDQ3NDogIyA0NDUg
Ii4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RydWN0IGFkZHJlc3Nfc3BhY2UgewoxNDQ3
NDogIHN0cnVjdCBpbm9kZSAqaG9zdDsKMTQ0NzQ6ICBzdHJ1Y3QgeGFycmF5IGlfcGFnZXM7CjE0
NDc0OiAgZ2ZwX3QgZ2ZwX21hc2s7CjE0NDc0OiAgYXRvbWljX3QgaV9tbWFwX3dyaXRhYmxlOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHJiX3Jvb3RfY2Fj
aGVkIGlfbW1hcDsKMTQ0NzQ6ICBzdHJ1Y3Qgcndfc2VtYXBob3JlIGlfbW1hcF9yd3NlbTsKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIG5ycGFnZXM7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBucmV4Y2Vw
dGlvbmFsOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgd3JpdGViYWNrX2luZGV4OwoxNDQ3NDogIGNv
bnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgKmFfb3BzOwoxNDQ3NDogIHVuc2ln
bmVkIGxvbmcgZmxhZ3M7CjE0NDc0OiAgZXJyc2VxX3Qgd2JfZXJyOwoxNDQ3NDogIHNwaW5sb2Nr
X3QgcHJpdmF0ZV9sb2NrOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgcHJpdmF0ZV9saXN0Owox
NDQ3NDogIHZvaWQgKnByaXZhdGVfZGF0YTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoYWxpZ25l
ZChzaXplb2YobG9uZykpKSkgX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykpOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCByZXF1
ZXN0X3F1ZXVlOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYmxvY2tfZGV2aWNlIHsKMTQ0NzQ6ICBk
ZXZfdCBiZF9kZXY7CjE0NDc0OiAgaW50IGJkX29wZW5lcnM7CjE0NDc0OiAgc3RydWN0IGlub2Rl
ICogYmRfaW5vZGU7CjE0NDc0OiAgc3RydWN0IHN1cGVyX2Jsb2NrICogYmRfc3VwZXI7CjE0NDc0
OiAgc3RydWN0IG11dGV4IGJkX211dGV4OwoxNDQ3NDogIHZvaWQgKiBiZF9jbGFpbWluZzsKMTQ0
NzQ6ICB2b2lkICogYmRfaG9sZGVyOwoxNDQ3NDogIGludCBiZF9ob2xkZXJzOwoxNDQ3NDogIGJv
b2wgYmRfd3JpdGVfaG9sZGVyOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBiZF9o
b2xkZXJfZGlza3M7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgYmxvY2tfZGV2aWNlICogYmRfY29u
dGFpbnM7CjE0NDc0OiAgdW5zaWduZWQgYmRfYmxvY2tfc2l6ZTsKMTQ0NzQ6ICB1OCBiZF9wYXJ0
bm87CjE0NDc0OiAgc3RydWN0IGhkX3N0cnVjdCAqIGJkX3BhcnQ7CjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBiZF9wYXJ0X2NvdW50OwoxNDQ3NDogIGludCBiZF9pbnZhbGlkYXRlZDsKMTQ0NzQ6
ICBzdHJ1Y3QgZ2VuZGlzayAqIGJkX2Rpc2s7CjE0NDc0OiAgc3RydWN0IHJlcXVlc3RfcXVldWUg
KiBiZF9xdWV1ZTsKMTQ0NzQ6ICBzdHJ1Y3QgYmFja2luZ19kZXZfaW5mbyAqYmRfYmRpOwoxNDQ3
NDogIHN0cnVjdCBsaXN0X2hlYWQgYmRfbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGJkX3ByaXZhdGU7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCBiZF9mc2ZyZWV6ZV9jb3VudDsKMTQ0NzQ6IAoxNDQ3
NDogIHN0cnVjdCBtdXRleCBiZF9mc2ZyZWV6ZV9tdXRleDsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVf
XygoX19kZXNpZ25hdGVkX2luaXRfXykpOwoxNDQ3NDogIyA1MTkgIi4vaW5jbHVkZS9saW51eC9m
cy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBtYXBwaW5nX3RhZ2dlZChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw
cGluZywgeGFfbWFya190IHRhZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4geGFfbWFya2VkKCZt
YXBwaW5nLT5pX3BhZ2VzLCB0YWcpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlfbW1h
cF9sb2NrX3dyaXRlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3
NDogIGRvd25fd3JpdGUoJm1hcHBpbmctPmlfbW1hcF9yd3NlbSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgaV9tbWFwX3VubG9ja193cml0ZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw
cGluZykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1cF93cml0ZSgmbWFwcGluZy0+aV9tbWFwX3J3c2VtKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpX21tYXBfbG9ja19yZWFkKHN0cnVjdCBhZGRy
ZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3NDogIGRvd25fcmVhZCgmbWFwcGluZy0+
aV9tbWFwX3J3c2VtKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpX21tYXBfdW5sb2Nr
X3JlYWQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCjE0NDc0OiB7CjE0NDc0OiAgdXBf
cmVhZCgmbWFwcGluZy0+aV9tbWFwX3J3c2VtKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG1hcHBpbmdfbWFwcGVkKHN0cnVjdCBhZGRyZXNzX3Nw
YWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhKCh7IHVuaW9uIHsgdHlwZW9m
KCgmbWFwcGluZy0+aV9tbWFwLnJiX3Jvb3QpLT5yYl9ub2RlKSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKCgmbWFwcGluZy0+aV9tbWFwLnJiX3Jv
b3QpLT5yYl9ub2RlKSwgX191Ll9fYywgc2l6ZW9mKCgmbWFwcGluZy0+aV9tbWFwLnJiX3Jvb3Qp
LT5yYl9ub2RlKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoKCZtYXBwaW5nLT5p
X21tYXAucmJfcm9vdCktPnJiX25vZGUpLCBfX3UuX19jLCBzaXplb2YoKCZtYXBwaW5nLT5pX21t
YXAucmJfcm9vdCktPnJiX25vZGUpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KSA9
PSAoKHZvaWQgKikwKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDU2MSAiLi9pbmNsdWRlL2xpbnV4L2Zz
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgbWFwcGluZ193cml0YWJseV9tYXBwZWQoc3RydWN0IGFkZHJlc3Nfc3Bh
Y2UgKm1hcHBpbmcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19yZWFkKCZtYXBwaW5n
LT5pX21tYXBfd3JpdGFibGUpID4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG1hcHBp
bmdfbWFwX3dyaXRhYmxlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBhdG9taWNfaW5jX3VubGVzc19uZWdhdGl2ZSgmbWFwcGluZy0+aV9tbWFw
X3dyaXRhYmxlKSA/CjE0NDc0OiAgIDAgOiAtMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBtYXBwaW5nX3VubWFwX3dyaXRhYmxlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQox
NDQ3NDogewoxNDQ3NDogIGF0b21pY19kZWMoJm1hcHBpbmctPmlfbW1hcF93cml0YWJsZSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBtYXBwaW5nX2Rlbnlfd3JpdGFibGUoc3RydWN0IGFk
ZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19kZWNf
dW5sZXNzX3Bvc2l0aXZlKCZtYXBwaW5nLT5pX21tYXBfd3JpdGFibGUpID8KMTQ0NzQ6ICAgMCA6
IC0xNjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtYXBwaW5nX2FsbG93X3dyaXRhYmxl
KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3NDogIGF0b21pY19p
bmMoJm1hcHBpbmctPmlfbW1hcF93cml0YWJsZSk7CjE0NDc0OiB9CjE0NDc0OiAjIDU5OSAiLi9p
bmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdHJ1Y3QgcG9zaXhfYWNsOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBvc2l4X2FjbCAqCjE0NDc0OiB1bmNhY2hlZF9hY2xf
c2VudGluZWwoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biAodm9pZCAqKXRhc2sgKyAxOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCjE0NDc0OiBp
c191bmNhY2hlZF9hY2woc3RydWN0IHBvc2l4X2FjbCAqYWNsKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAobG9uZylhY2wgJiAxOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZnNub3RpZnlfbWFya19j
b25uZWN0b3I7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgaW5vZGUgewoxNDQ3NDogIHVtb2RlX3QgaV9tb2RlOwoxNDQ3NDogIHVu
c2lnbmVkIHNob3J0IGlfb3BmbGFnczsKMTQ0NzQ6ICBrdWlkX3QgaV91aWQ7CjE0NDc0OiAga2dp
ZF90IGlfZ2lkOwoxNDQ3NDogIHVuc2lnbmVkIGludCBpX2ZsYWdzOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgcG9zaXhfYWNsICppX2FjbDsKMTQ0NzQ6ICBzdHJ1Y3QgcG9zaXhfYWNs
ICppX2RlZmF1bHRfYWNsOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgaW5v
ZGVfb3BlcmF0aW9ucyAqaV9vcDsKMTQ0NzQ6ICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmlfc2I7CjE0
NDc0OiAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmlfbWFwcGluZzsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAqaV9zZWN1cml0eTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGlfaW5vOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBjb25zdCB1bnNpZ25l
ZCBpbnQgaV9ubGluazsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9faV9ubGluazsKMTQ0NzQ6ICB9
OwoxNDQ3NDogIGRldl90IGlfcmRldjsKMTQ0NzQ6ICBsb2ZmX3QgaV9zaXplOwoxNDQ3NDogIHN0
cnVjdCB0aW1lc3BlYzY0IGlfYXRpbWU7CjE0NDc0OiAgc3RydWN0IHRpbWVzcGVjNjQgaV9tdGlt
ZTsKMTQ0NzQ6ICBzdHJ1Y3QgdGltZXNwZWM2NCBpX2N0aW1lOwoxNDQ3NDogIHNwaW5sb2NrX3Qg
aV9sb2NrOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IGlfYnl0ZXM7CjE0NDc0OiAgdTggaV9ibGti
aXRzOwoxNDQ3NDogIHU4IGlfd3JpdGVfaGludDsKMTQ0NzQ6ICBibGtjbnRfdCBpX2Jsb2NrczsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGlfc3RhdGU7CjE0NDc0OiAgc3RydWN0IHJ3X3NlbWFwaG9yZSBpX3J3c2Vt
OwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBkaXJ0aWVkX3doZW47CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyBkaXJ0aWVkX3RpbWVfd2hlbjsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBobGlz
dF9ub2RlIGlfaGFzaDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGlfaW9fbGlzdDsKMTQ0NzQ6
IAoxNDQ3NDogIHN0cnVjdCBiZGlfd3JpdGViYWNrICppX3diOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBpbnQgaV93Yl9mcm5fd2lubmVyOwoxNDQ3NDogIHUxNiBpX3diX2Zybl9hdmdfdGltZTsK
MTQ0NzQ6ICB1MTYgaV93Yl9mcm5faGlzdG9yeTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0
X2hlYWQgaV9scnU7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBpX3NiX2xpc3Q7CjE0NDc0OiAg
c3RydWN0IGxpc3RfaGVhZCBpX3diX2xpc3Q7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1
Y3QgaGxpc3RfaGVhZCBpX2RlbnRyeTsKMTQ0NzQ6ICAgc3RydWN0IGNhbGxiYWNrX2hlYWQgaV9y
Y3U7CjE0NDc0OiAgfTsKMTQ0NzQ6ICBhdG9taWM2NF90IGlfdmVyc2lvbjsKMTQ0NzQ6ICBhdG9t
aWM2NF90IGlfc2VxdWVuY2U7CjE0NDc0OiAgYXRvbWljX3QgaV9jb3VudDsKMTQ0NzQ6ICBhdG9t
aWNfdCBpX2Rpb19jb3VudDsKMTQ0NzQ6ICBhdG9taWNfdCBpX3dyaXRlY291bnQ7CjE0NDc0OiAK
MTQ0NzQ6ICBhdG9taWNfdCBpX3JlYWRjb3VudDsKMTQ0NzQ6IAoxNDQ3NDogIHVuaW9uIHsKMTQ0
NzQ6ICAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqaV9mb3A7CjE0NDc0OiAgIHZvaWQg
KCpmcmVlX2lub2RlKShzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiAgfTsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZmlsZV9sb2NrX2NvbnRleHQgKmlfZmxjdHg7CjE0NDc0OiAgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug
aV9kYXRhOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgaV9kZXZpY2VzOwoxNDQ3NDogIHVuaW9u
IHsKMTQ0NzQ6ICAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqaV9waXBlOwoxNDQ3NDogICBzdHJ1
Y3QgYmxvY2tfZGV2aWNlICppX2JkZXY7CjE0NDc0OiAgIHN0cnVjdCBjZGV2ICppX2NkZXY7CjE0
NDc0OiAgIGNoYXIgKmlfbGluazsKMTQ0NzQ6ICAgdW5zaWduZWQgaV9kaXJfc2VxOwoxNDQ3NDog
IH07CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBpX2dlbmVyYXRpb247CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIF9fdTMyIGlfZnNub3RpZnlfbWFzazsKMTQ0NzQ6ICBzdHJ1Y3QgZnNub3RpZnlfbWFy
a19jb25uZWN0b3IgKmlfZnNub3RpZnlfbWFya3M7CjE0NDc0OiAjIDczOCAiLi9pbmNsdWRlL2xp
bnV4L2ZzLmgiCjE0NDc0OiAgdm9pZCAqaV9wcml2YXRlOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9f
KChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0aW1lc3BlYzY0
IHRpbWVzdGFtcF90cnVuY2F0ZShzdHJ1Y3QgdGltZXNwZWM2NCB0LCBzdHJ1Y3QgaW5vZGUgKmlu
b2RlKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGlfYmxvY2tzaXplKGNvbnN0IHN0cnVj
dCBpbm9kZSAqbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKDEgPDwgbm9kZS0+aV9ibGti
aXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlub2RlX3VuaGFzaGVkKHN0cnVjdCBp
bm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGhsaXN0X3VuaGFzaGVkKCZpbm9k
ZS0+aV9oYXNoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9mYWtlX2hhc2goc3RydWN0IGlu
b2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBobGlzdF9hZGRfZmFrZSgmaW5vZGUtPmlfaGFz
aCk7CjE0NDc0OiB9CjE0NDc0OiAjIDc4MCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBl
bnVtIGlub2RlX2lfbXV0ZXhfbG9ja19jbGFzcwoxNDQ3NDogewoxNDQ3NDogIElfTVVURVhfTk9S
TUFMLAoxNDQ3NDogIElfTVVURVhfUEFSRU5ULAoxNDQ3NDogIElfTVVURVhfQ0hJTEQsCjE0NDc0
OiAgSV9NVVRFWF9YQVRUUiwKMTQ0NzQ6ICBJX01VVEVYX05PTkRJUjIsCjE0NDc0OiAgSV9NVVRF
WF9QQVJFTlQyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9sb2NrKHN0cnVj
dCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgZG93bl93cml0ZSgmaW5vZGUtPmlfcndz
ZW0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlub2RlX3VubG9jayhzdHJ1Y3QgaW5v
ZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3NDogIHVwX3dyaXRlKCZpbm9kZS0+aV9yd3NlbSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5vZGVfbG9ja19zaGFyZWQoc3RydWN0IGlub2Rl
ICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBkb3duX3JlYWQoJmlub2RlLT5pX3J3c2VtKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV91bmxvY2tfc2hhcmVkKHN0cnVjdCBpbm9k
ZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgdXBfcmVhZCgmaW5vZGUtPmlfcndzZW0pOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaW5vZGVfdHJ5bG9jayhzdHJ1Y3QgaW5vZGUgKmlub2Rl
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkb3duX3dyaXRlX3RyeWxvY2soJmlub2RlLT5pX3J3
c2VtKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlub2RlX3RyeWxvY2tfc2hhcmVkKHN0
cnVjdCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRvd25fcmVhZF90cnls
b2NrKCZpbm9kZS0+aV9yd3NlbSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBpbm9kZV9p
c19sb2NrZWQoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcndz
ZW1faXNfbG9ja2VkKCZpbm9kZS0+aV9yd3NlbSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaW5vZGVfbG9ja19uZXN0ZWQoc3RydWN0IGlub2RlICppbm9kZSwgdW5zaWduZWQgc3ViY2xh
c3MpCjE0NDc0OiB7CjE0NDc0OiAgZG93bl93cml0ZSgmaW5vZGUtPmlfcndzZW0pOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlub2RlX2xvY2tfc2hhcmVkX25lc3RlZChzdHJ1Y3QgaW5v
ZGUgKmlub2RlLCB1bnNpZ25lZCBzdWJjbGFzcykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkb3duX3JlYWQo
Jmlub2RlLT5pX3J3c2VtKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCBsb2NrX3R3b19u
b25kaXJlY3RvcmllcyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGlub2RlKik7CjE0NDc0OiB2b2lk
IHVubG9ja190d29fbm9uZGlyZWN0b3JpZXMoc3RydWN0IGlub2RlICosIHN0cnVjdCBpbm9kZSop
OwoxNDQ3NDogIyA4NDggIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9mZl90IGlfc2l6
ZV9yZWFkKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAjIDg2NyAi
Li9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiAgcmV0dXJuIGlub2RlLT5pX3NpemU7CjE0NDc0
OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgaV9zaXplX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBp
X3NpemUpCjE0NDc0OiB7CjE0NDc0OiAjIDg4OSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0
OiAgaW5vZGUtPmlfc2l6ZSA9IGlfc2l6ZTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBpbWlub3IoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gKCh1bnNpZ25lZCBpbnQpICgoaW5vZGUtPmlfcmRldikgJiAoKDFVIDw8IDIw
KSAtIDEpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGltYWpvcihjb25zdCBz
dHJ1Y3QgaW5vZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKHVuc2lnbmVkIGlu
dCkgKChpbm9kZS0+aV9yZGV2KSA+PiAyMCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gc3RydWN0IGJsb2NrX2RldmljZSAqSV9CREVWKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZm93bl9zdHJ1Y3QgewoxNDQ3NDogIHJ3bG9ja190IGxvY2s7CjE0
NDc0OiAgc3RydWN0IHBpZCAqcGlkOwoxNDQ3NDogIGVudW0gcGlkX3R5cGUgcGlkX3R5cGU7CjE0
NDc0OiAga3VpZF90IHVpZCwgZXVpZDsKMTQ0NzQ6ICBpbnQgc2lnbnVtOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZpbGVfcmFfc3RhdGUg
ewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3RhcnQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNpemU7
CjE0NDc0OiAgdW5zaWduZWQgaW50IGFzeW5jX3NpemU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHVuc2lnbmVkIGludCByYV9wYWdlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbW1hcF9taXNzOwox
NDQ3NDogIGxvZmZfdCBwcmV2X3BvczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCByYV9oYXNfaW5kZXgoc3RydWN0IGZpbGVfcmFfc3RhdGUgKnJh
LCB1bnNpZ25lZCBsb25nIGluZGV4KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoaW5kZXggPj0g
cmEtPnN0YXJ0ICYmCjE0NDc0OiAgIGluZGV4IDwgcmEtPnN0YXJ0ICsgcmEtPnNpemUpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZmlsZSB7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDog
ICBzdHJ1Y3QgbGxpc3Rfbm9kZSBmdV9sbGlzdDsKMTQ0NzQ6ICAgc3RydWN0IGNhbGxiYWNrX2hl
YWQgZnVfcmN1aGVhZDsKMTQ0NzQ6ICB9IGZfdTsKMTQ0NzQ6ICBzdHJ1Y3QgcGF0aCBmX3BhdGg7
CjE0NDc0OiAgc3RydWN0IGlub2RlICpmX2lub2RlOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBmaWxl
X29wZXJhdGlvbnMgKmZfb3A7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHNwaW5sb2NrX3QgZl9sb2NrOwoxNDQ3NDogIGVudW0gcndfaGludCBmX3dyaXRl
X2hpbnQ7CjE0NDc0OiAgYXRvbWljX2xvbmdfdCBmX2NvdW50OwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBmX2ZsYWdzOwoxNDQ3NDogIGZtb2RlX3QgZl9tb2RlOwoxNDQ3NDogIHN0cnVjdCBtdXRleCBm
X3Bvc19sb2NrOwoxNDQ3NDogIGxvZmZfdCBmX3BvczsKMTQ0NzQ6ICBzdHJ1Y3QgZm93bl9zdHJ1
Y3QgZl9vd25lcjsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgY3JlZCAqZl9jcmVkOwoxNDQ3NDogIHN0
cnVjdCBmaWxlX3JhX3N0YXRlIGZfcmE7CjE0NDc0OiAKMTQ0NzQ6ICB1NjQgZl92ZXJzaW9uOwox
NDQ3NDogCjE0NDc0OiAgdm9pZCAqZl9zZWN1cml0eTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dm9pZCAqcHJpdmF0ZV9kYXRhOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVj
dCBsaXN0X2hlYWQgZl9lcF9saW5rczsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGZfdGZpbGVf
bGxpbms7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqZl9tYXBwaW5nOwox
NDQ3NDogIGVycnNlcV90IGZfd2JfZXJyOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2ln
bmF0ZWRfaW5pdF9fKSkKMTQ0NzQ6ICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpOwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZmlsZV9oYW5kbGUgewoxNDQ3NDogIF9fdTMyIGhhbmRsZV9ieXRl
czsKMTQ0NzQ6ICBpbnQgaGFuZGxlX3R5cGU7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFy
IGZfaGFuZGxlWzBdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpbGUgKmdldF9m
aWxlKHN0cnVjdCBmaWxlICpmKQoxNDQ3NDogewoxNDQ3NDogIGF0b21pY19sb25nX2luYygmZi0+
Zl9jb3VudCk7CjE0NDc0OiAgcmV0dXJuIGY7CjE0NDc0OiB9CjE0NDc0OiAjIDEwMjYgIi4vaW5j
bHVkZS9saW51eC9mcy5oIgoxNDQ3NDogdHlwZWRlZiB2b2lkICpmbF9vd25lcl90OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZmlsZV9sb2NrOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZmlsZV9sb2Nr
X29wZXJhdGlvbnMgewoxNDQ3NDogIHZvaWQgKCpmbF9jb3B5X2xvY2spKHN0cnVjdCBmaWxlX2xv
Y2sgKiwgc3RydWN0IGZpbGVfbG9jayAqKTsKMTQ0NzQ6ICB2b2lkICgqZmxfcmVsZWFzZV9wcml2
YXRlKShzdHJ1Y3QgZmlsZV9sb2NrICopOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGxvY2tfbWFuYWdlcl9vcGVyYXRpb25zIHsKMTQ0NzQ6ICBmbF9vd25lcl90ICgqbG1fZ2V0X293
bmVyKShmbF9vd25lcl90KTsKMTQ0NzQ6ICB2b2lkICgqbG1fcHV0X293bmVyKShmbF9vd25lcl90
KTsKMTQ0NzQ6ICB2b2lkICgqbG1fbm90aWZ5KShzdHJ1Y3QgZmlsZV9sb2NrICopOwoxNDQ3NDog
IGludCAoKmxtX2dyYW50KShzdHJ1Y3QgZmlsZV9sb2NrICosIGludCk7CjE0NDc0OiAgYm9vbCAo
KmxtX2JyZWFrKShzdHJ1Y3QgZmlsZV9sb2NrICopOwoxNDQ3NDogIGludCAoKmxtX2NoYW5nZSko
c3RydWN0IGZpbGVfbG9jayAqLCBpbnQsIHN0cnVjdCBsaXN0X2hlYWQgKik7CjE0NDc0OiAgdm9p
ZCAoKmxtX3NldHVwKShzdHJ1Y3QgZmlsZV9sb2NrICosIHZvaWQgKiopOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGxvY2tfbWFuYWdlciB7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVh
ZCBsaXN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBibG9j
a19vcGVuczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBuZXQ7CjE0NDc0OiB2b2lk
IGxvY2tzX3N0YXJ0X2dyYWNlKHN0cnVjdCBuZXQgKiwgc3RydWN0IGxvY2tfbWFuYWdlciAqKTsK
MTQ0NzQ6IHZvaWQgbG9ja3NfZW5kX2dyYWNlKHN0cnVjdCBsb2NrX21hbmFnZXIgKik7CjE0NDc0
OiBib29sIGxvY2tzX2luX2dyYWNlKHN0cnVjdCBuZXQgKik7CjE0NDc0OiBib29sIG9wZW5zX2lu
X2dyYWNlKHN0cnVjdCBuZXQgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvbGludXgvbmZzX2ZzX2kuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgbmxtX2xvY2tvd25lcjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IG5mc19sb2NrX2luZm8gewoxNDQ3NDogIHUzMiBzdGF0ZTsKMTQ0NzQ6
ICBzdHJ1Y3QgbmxtX2xvY2tvd25lciAqb3duZXI7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBs
aXN0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG5mczRfbG9ja19zdGF0ZTsKMTQ0
NzQ6IHN0cnVjdCBuZnM0X2xvY2tfaW5mbyB7CjE0NDc0OiAgc3RydWN0IG5mczRfbG9ja19zdGF0
ZSAqb3duZXI7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMDYyICIuL2luY2x1ZGUvbGludXgvZnMuaCIg
MgoxNDQ3NDogIyAxMDgwICIuL2luY2x1ZGUvbGludXgvZnMuaCIKMTQ0NzQ6IHN0cnVjdCBmaWxl
X2xvY2sgewoxNDQ3NDogIHN0cnVjdCBmaWxlX2xvY2sgKmZsX2Jsb2NrZXI7CjE0NDc0OiAgc3Ry
dWN0IGxpc3RfaGVhZCBmbF9saXN0OwoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlIGZsX2xpbms7
CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBmbF9ibG9ja2VkX3JlcXVlc3RzOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGZsX2Jsb2NrZWRfbWVtYmVyOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBmbF9vd25lcl90IGZsX293bmVyOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBmbF9mbGFnczsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGZsX3R5cGU7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGZsX3BpZDsKMTQ0NzQ6ICBpbnQgZmxfbGlua19jcHU7CjE0NDc0OiAgd2FpdF9xdWV1
ZV9oZWFkX3QgZmxfd2FpdDsKMTQ0NzQ6ICBzdHJ1Y3QgZmlsZSAqZmxfZmlsZTsKMTQ0NzQ6ICBs
b2ZmX3QgZmxfc3RhcnQ7CjE0NDc0OiAgbG9mZl90IGZsX2VuZDsKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCBmYXN5bmNfc3RydWN0ICogZmxfZmFzeW5jOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBmbF9icmVha190aW1lOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxfZG93bmdyYWRlX3Rp
bWU7CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZmlsZV9sb2NrX29wZXJhdGlvbnMgKmZs
X29wczsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgbG9ja19tYW5hZ2VyX29wZXJhdGlvbnMgKmZsX2xt
b3BzOwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IG5mc19sb2NrX2luZm8gbmZzX2Zs
OwoxNDQ3NDogICBzdHJ1Y3QgbmZzNF9sb2NrX2luZm8gbmZzNF9mbDsKMTQ0NzQ6ICAgc3RydWN0
IHsKMTQ0NzQ6ICAgIHN0cnVjdCBsaXN0X2hlYWQgbGluazsKMTQ0NzQ6ICAgIGludCBzdGF0ZTsK
MTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBkZWJ1Z19pZDsKMTQ0NzQ6ICAgfSBhZnM7CjE0NDc0OiAg
fSBmbF91OwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmaWxlX2xvY2tfY29udGV4dCB7CjE0NDc0OiAgc3BpbmxvY2tf
dCBmbGNfbG9jazsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGZsY19mbG9jazsKMTQ0NzQ6ICBz
dHJ1Y3QgbGlzdF9oZWFkIGZsY19wb3NpeDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGZsY19s
ZWFzZTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDExMzIgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3
NDogZXh0ZXJuIHZvaWQgc2VuZF9zaWdpbyhzdHJ1Y3QgZm93bl9zdHJ1Y3QgKmZvd24sIGludCBm
ZCwgaW50IGJhbmQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gaW50IGZjbnRsX2dldGxrKHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgc3RydWN0IGZs
b2NrICopOwoxNDQ3NDogZXh0ZXJuIGludCBmY250bF9zZXRsayh1bnNpZ25lZCBpbnQsIHN0cnVj
dCBmaWxlICosIHVuc2lnbmVkIGludCwKMTQ0NzQ6ICAgIHN0cnVjdCBmbG9jayAqKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIGludCBmY250bF9zZXRsZWFzZSh1bnNpZ25lZCBpbnQgZmQsIHN0cnVjdCBmaWxlICpm
aWxwLCBsb25nIGFyZyk7CjE0NDc0OiBleHRlcm4gaW50IGZjbnRsX2dldGxlYXNlKHN0cnVjdCBm
aWxlICpmaWxwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIGxvY2tzX2ZyZWVfbG9ja19j
b250ZXh0KHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoxNDQ3NDogdm9pZCBsb2Nrc19mcmVlX2xvY2so
c3RydWN0IGZpbGVfbG9jayAqZmwpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgbG9ja3NfaW5pdF9sb2Nr
KHN0cnVjdCBmaWxlX2xvY2sgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGZpbGVfbG9jayAqIGxv
Y2tzX2FsbG9jX2xvY2sodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBsb2Nrc19jb3B5X2xvY2so
c3RydWN0IGZpbGVfbG9jayAqLCBzdHJ1Y3QgZmlsZV9sb2NrICopOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgbG9ja3NfY29weV9jb25mbG9jayhzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xv
Y2sgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBsb2Nrc19yZW1vdmVfcG9zaXgoc3RydWN0IGZpbGUg
KiwgZmxfb3duZXJfdCk7CjE0NDc0OiBleHRlcm4gdm9pZCBsb2Nrc19yZW1vdmVfZmlsZShzdHJ1
Y3QgZmlsZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGxvY2tzX3JlbGVhc2VfcHJpdmF0ZShzdHJ1
Y3QgZmlsZV9sb2NrICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgcG9zaXhfdGVzdF9sb2NrKHN0cnVj
dCBmaWxlICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CjE0NDc0OiBleHRlcm4gaW50IHBvc2l4X2xv
Y2tfZmlsZShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xv
Y2sgKik7CjE0NDc0OiBleHRlcm4gaW50IGxvY2tzX2RlbGV0ZV9ibG9jayhzdHJ1Y3QgZmlsZV9s
b2NrICopOwoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfdGVzdF9sb2NrKHN0cnVjdCBmaWxlICosIHN0
cnVjdCBmaWxlX2xvY2sgKik7CjE0NDc0OiBleHRlcm4gaW50IHZmc19sb2NrX2ZpbGUoc3RydWN0
IGZpbGUgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xv
Y2sgKik7CjE0NDc0OiBleHRlcm4gaW50IHZmc19jYW5jZWxfbG9jayhzdHJ1Y3QgZmlsZSAqZmls
cCwgc3RydWN0IGZpbGVfbG9jayAqZmwpOwoxNDQ3NDogZXh0ZXJuIGludCBsb2Nrc19sb2NrX2lu
b2RlX3dhaXQoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGVfbG9jayAqZmwpOwoxNDQ3
NDogZXh0ZXJuIGludCBfX2JyZWFrX2xlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVk
IGludCBmbGFncywgdW5zaWduZWQgaW50IHR5cGUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgbGVhc2Vf
Z2V0X210aW1lKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgdGltZXNwZWM2NCAqdGltZSk7CjE0NDc0
OiBleHRlcm4gaW50IGdlbmVyaWNfc2V0bGVhc2Uoc3RydWN0IGZpbGUgKiwgbG9uZywgc3RydWN0
IGZpbGVfbG9jayAqKiwgdm9pZCAqKnByaXYpOwoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfc2V0bGVh
c2Uoc3RydWN0IGZpbGUgKiwgbG9uZywgc3RydWN0IGZpbGVfbG9jayAqKiwgdm9pZCAqKik7CjE0
NDc0OiBleHRlcm4gaW50IGxlYXNlX21vZGlmeShzdHJ1Y3QgZmlsZV9sb2NrICosIGludCwgc3Ry
dWN0IGxpc3RfaGVhZCAqKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG5vdGlmaWVyX2Jsb2NrOwox
NDQ3NDogZXh0ZXJuIGludCBsZWFzZV9yZWdpc3Rlcl9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJf
YmxvY2sgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBsZWFzZV91bnJlZ2lzdGVyX25vdGlmaWVyKHN0
cnVjdCBub3RpZmllcl9ibG9jayAqKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZpbGVzX3N0cnVj
dDsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNob3dfZmRfbG9ja3Moc3RydWN0IHNlcV9maWxlICpmLAox
NDQ3NDogICAgIHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgZmlsZXNfc3RydWN0ICpmaWxlcyk7
CjE0NDc0OiAjIDEzMTcgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGlub2Rl
ICpmaWxlX2lub2RlKGNvbnN0IHN0cnVjdCBmaWxlICpmKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBmLT5mX2lub2RlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGVudHJ5ICpmaWxl
X2RlbnRyeShjb25zdCBzdHJ1Y3QgZmlsZSAqZmlsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
ZF9yZWFsKGZpbGUtPmZfcGF0aC5kZW50cnksIGZpbGVfaW5vZGUoZmlsZSkpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgbG9ja3NfbG9ja19maWxlX3dhaXQoc3RydWN0IGZpbGUgKmZpbHAs
IHN0cnVjdCBmaWxlX2xvY2sgKmZsKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBsb2Nrc19sb2Nr
X2lub2RlX3dhaXQoZmlsZV9pbm9kZShmaWxwKSwgZmwpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZmFzeW5jX3N0cnVjdCB7CjE0NDc0OiAgcndsb2NrX3QgZmFfbG9jazsKMTQ0NzQ6
ICBpbnQgbWFnaWM7CjE0NDc0OiAgaW50IGZhX2ZkOwoxNDQ3NDogIHN0cnVjdCBmYXN5bmNfc3Ry
dWN0ICpmYV9uZXh0OwoxNDQ3NDogIHN0cnVjdCBmaWxlICpmYV9maWxlOwoxNDQ3NDogIHN0cnVj
dCBjYWxsYmFja19oZWFkIGZhX3JjdTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZmFzeW5jX2hlbHBlcihpbnQsIHN0cnVjdCBmaWxl
ICosIGludCwgc3RydWN0IGZhc3luY19zdHJ1Y3QgKiopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBm
YXN5bmNfc3RydWN0ICpmYXN5bmNfaW5zZXJ0X2VudHJ5KGludCwgc3RydWN0IGZpbGUgKiwgc3Ry
dWN0IGZhc3luY19zdHJ1Y3QgKiosIHN0cnVjdCBmYXN5bmNfc3RydWN0ICopOwoxNDQ3NDogZXh0
ZXJuIGludCBmYXN5bmNfcmVtb3ZlX2VudHJ5KHN0cnVjdCBmaWxlICosIHN0cnVjdCBmYXN5bmNf
c3RydWN0ICoqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqZmFzeW5jX2Fs
bG9jKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZmFzeW5jX2ZyZWUoc3RydWN0IGZhc3luY19z
dHJ1Y3QgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQga2lsbF9mYXN5bmMo
c3RydWN0IGZhc3luY19zdHJ1Y3QgKiosIGludCwgaW50KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHZvaWQgX19mX3NldG93bihzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBpZCAqLCBlbnVtIHBp
ZF90eXBlLCBpbnQgZm9yY2UpOwoxNDQ3NDogZXh0ZXJuIGludCBmX3NldG93bihzdHJ1Y3QgZmls
ZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhcmcsIGludCBmb3JjZSk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBmX2RlbG93bihzdHJ1Y3QgZmlsZSAqZmlscCk7CjE0NDc0OiBleHRlcm4gcGlkX3QgZl9nZXRv
d24oc3RydWN0IGZpbGUgKmZpbHApOwoxNDQ3NDogZXh0ZXJuIGludCBzZW5kX3NpZ3VyZyhzdHJ1
Y3QgZm93bl9zdHJ1Y3QgKmZvd24pOwoxNDQ3NDogIyAxNDA4ICIuL2luY2x1ZGUvbGludXgvZnMu
aCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIFNCX1VORlJPWkVOID0gMCwKMTQ0NzQ6ICBTQl9GUkVF
WkVfV1JJVEUgPSAxLAoxNDQ3NDogIFNCX0ZSRUVaRV9QQUdFRkFVTFQgPSAyLAoxNDQ3NDogIFNC
X0ZSRUVaRV9GUyA9IDMsCjE0NDc0OiAKMTQ0NzQ6ICBTQl9GUkVFWkVfQ09NUExFVEUgPSA0LAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzYl93cml0ZXJz
IHsKMTQ0NzQ6ICBpbnQgZnJvemVuOwoxNDQ3NDogIHdhaXRfcXVldWVfaGVhZF90IHdhaXRfdW5m
cm96ZW47CjE0NDc0OiAgc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgcndfc2VtWyhTQl9GUkVF
WkVfQ09NUExFVEUgLSAxKV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3VwZXJf
YmxvY2sgewoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgc19saXN0OwoxNDQ3NDogIGRldl90IHNf
ZGV2OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgc19ibG9ja3NpemVfYml0czsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHNfYmxvY2tzaXplOwoxNDQ3NDogIGxvZmZfdCBzX21heGJ5dGVzOwoxNDQ3NDog
IHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpzX3R5cGU7CjE0NDc0OiAgY29uc3Qgc3RydWN0IHN1
cGVyX29wZXJhdGlvbnMgKnNfb3A7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRxdW90X29wZXJhdGlv
bnMgKmRxX29wOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBxdW90YWN0bF9vcHMgKnNfcWNvcDsKMTQ0
NzQ6ICBjb25zdCBzdHJ1Y3QgZXhwb3J0X29wZXJhdGlvbnMgKnNfZXhwb3J0X29wOwoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgc19mbGFnczsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNfaWZsYWdzOwox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgc19tYWdpYzsKMTQ0NzQ6ICBzdHJ1Y3QgZGVudHJ5ICpzX3Jv
b3Q7CjE0NDc0OiAgc3RydWN0IHJ3X3NlbWFwaG9yZSBzX3Vtb3VudDsKMTQ0NzQ6ICBpbnQgc19j
b3VudDsKMTQ0NzQ6ICBhdG9taWNfdCBzX2FjdGl2ZTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKnNf
c2VjdXJpdHk7CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciAqKnNf
eGF0dHI7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3RfYmxfaGVhZCBzX3Jvb3RzOwoxNDQ3NDogIHN0cnVj
dCBsaXN0X2hlYWQgc19tb3VudHM7CjE0NDc0OiAgc3RydWN0IGJsb2NrX2RldmljZSAqc19iZGV2
OwoxNDQ3NDogIHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvICpzX2JkaTsKMTQ0NzQ6ICBzdHJ1Y3Qg
bXRkX2luZm8gKnNfbXRkOwoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlIHNfaW5zdGFuY2VzOwox
NDQ3NDogIHVuc2lnbmVkIGludCBzX3F1b3RhX3R5cGVzOwoxNDQ3NDogIHN0cnVjdCBxdW90YV9p
bmZvIHNfZHF1b3Q7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc2Jfd3JpdGVycyBzX3dyaXRlcnM7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dm9pZCAqc19mc19pbmZvOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1MzIgc190aW1lX2dyYW47
CjE0NDc0OiAKMTQ0NzQ6ICB0aW1lNjRfdCBzX3RpbWVfbWluOwoxNDQ3NDogIHRpbWU2NF90IHNf
dGltZV9tYXg7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBzX2Zzbm90aWZ5X21hc2s7CjE0NDc0OiAg
c3RydWN0IGZzbm90aWZ5X21hcmtfY29ubmVjdG9yICpzX2Zzbm90aWZ5X21hcmtzOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBjaGFyIHNfaWRbMzJdOwoxNDQ3NDogIHV1aWRfdCBzX3V1aWQ7CjE0
NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc19tYXhfbGlua3M7CjE0NDc0OiAgZm1vZGVfdCBz
X21vZGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCBtdXRleCBzX3Zmc19yZW5hbWVfbXV0ZXg7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IGNoYXIgKnNfc3VidHlwZTsKMTQ0NzQ6IAoxNDQ3
NDogIGNvbnN0IHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyAqc19kX29wOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IGNsZWFuY2FjaGVfcG9vbGlkOwoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IHNocmlua2VyIHNfc2hyaW5rOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBhdG9taWNfbG9uZ190IHNfcmVtb3ZlX2NvdW50OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBh
dG9taWNfbG9uZ190IHNfZnNub3RpZnlfaW5vZGVfcmVmczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgaW50IHNfcmVhZG9ubHlfcmVtb3VudDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0
IHdvcmtxdWV1ZV9zdHJ1Y3QgKnNfZGlvX2RvbmVfd3E7CjE0NDc0OiAgc3RydWN0IGhsaXN0X2hl
YWQgc19waW5zOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqc191c2VyX25zOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2xy
dSBzX2RlbnRyeV9scnU7CjE0NDc0OiAgc3RydWN0IGxpc3RfbHJ1IHNfaW5vZGVfbHJ1OwoxNDQ3
NDogIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKMTQ0NzQ6ICBzdHJ1Y3Qgd29ya19zdHJ1Y3Qg
ZGVzdHJveV93b3JrOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IG11dGV4IHNfc3luY19sb2NrOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IHNfc3RhY2tfZGVwdGg7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5sb2NrX3Qgc19pbm9kZV9saXN0X2xvY2sgX19h
dHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYpKSkpKTsKMTQ0NzQ6ICBzdHJ1Y3QgbGlz
dF9oZWFkIHNfaW5vZGVzOwoxNDQ3NDogCjE0NDc0OiAgc3BpbmxvY2tfdCBzX2lub2RlX3dibGlz
dF9sb2NrOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgc19pbm9kZXNfd2I7CjE0NDc0OiB9IF9f
YXR0cmlidXRlX18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVpZF90IGlfdWlkX3JlYWQoY29uc3Qg
c3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZnJvbV9rdWlkKGlu
b2RlLT5pX3NiLT5zX3VzZXJfbnMsIGlub2RlLT5pX3VpZCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGdpZF90IGlfZ2lkX3JlYWQoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gZnJvbV9rZ2lkKGlub2RlLT5pX3NiLT5zX3VzZXJfbnMsIGlub2RlLT5p
X2dpZCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaV91aWRfd3JpdGUoc3RydWN0IGlu
b2RlICppbm9kZSwgdWlkX3QgdWlkKQoxNDQ3NDogewoxNDQ3NDogIGlub2RlLT5pX3VpZCA9IG1h
a2Vfa3VpZChpbm9kZS0+aV9zYi0+c191c2VyX25zLCB1aWQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGlfZ2lkX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGdpZF90IGdpZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBpbm9kZS0+aV9naWQgPSBtYWtlX2tnaWQoaW5vZGUtPmlfc2ItPnNfdXNl
cl9ucywgZ2lkKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB0aW1lc3Bl
YzY0IGN1cnJlbnRfdGltZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIF9fc2JfZW5kX3dyaXRlKHN0cnVjdCBz
dXBlcl9ibG9jayAqc2IsIGludCBsZXZlbCk7CjE0NDc0OiBpbnQgX19zYl9zdGFydF93cml0ZShz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbGV2ZWwsIGJvb2wgd2FpdCk7CjE0NDc0OiAjIDE2
MDAgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzYl9lbmRfd3JpdGUoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYikKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX3NiX2VuZF93cml0ZShzYiwgU0Jf
RlJFRVpFX1dSSVRFKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTYxMiAiLi9pbmNsdWRlL2xpbnV4L2Zz
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHNiX2VuZF9wYWdlZmF1bHQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikK
MTQ0NzQ6IHsKMTQ0NzQ6ICBfX3NiX2VuZF93cml0ZShzYiwgU0JfRlJFRVpFX1BBR0VGQVVMVCk7
CjE0NDc0OiB9CjE0NDc0OiAjIDE2MjQgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBzYl9lbmRfaW50d3JpdGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBfX3NiX2VuZF93cml0ZShzYiwgU0JfRlJFRVpFX0ZTKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTY0
OCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNiX3N0YXJ0X3dyaXRlKHN0cnVj
dCBzdXBlcl9ibG9jayAqc2IpCjE0NDc0OiB7CjE0NDc0OiAgX19zYl9zdGFydF93cml0ZShzYiwg
U0JfRlJFRVpFX1dSSVRFLCB0cnVlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHNiX3N0
YXJ0X3dyaXRlX3RyeWxvY2soc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gX19zYl9zdGFydF93cml0ZShzYiwgU0JfRlJFRVpFX1dSSVRFLCBmYWxzZSk7CjE0
NDc0OiB9CjE0NDc0OiAjIDE2NzcgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBz
Yl9zdGFydF9wYWdlZmF1bHQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBfX3NiX3N0YXJ0X3dyaXRlKHNiLCBTQl9GUkVFWkVfUEFHRUZBVUxULCB0cnVlKTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMTY5NSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNiX3N0
YXJ0X2ludHdyaXRlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCjE0NDc0OiB7CjE0NDc0OiAgX19z
Yl9zdGFydF93cml0ZShzYiwgU0JfRlJFRVpFX0ZTLCB0cnVlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IHNiX3N0YXJ0X2ludHdyaXRlX3RyeWxvY2soc3RydWN0IHN1cGVyX2Jsb2NrICpz
YikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19zYl9zdGFydF93cml0ZShzYiwgU0JfRlJFRVpF
X0ZTLCBmYWxzZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wg
aW5vZGVfb3duZXJfb3JfY2FwYWJsZShjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfY3JlYXRlKHN0
cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHVtb2RlX3QsIGJvb2wpOwoxNDQ3NDogZXh0
ZXJuIGludCB2ZnNfbWtkaXIoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwgdW1vZGVf
dCk7CjE0NDc0OiBleHRlcm4gaW50IHZmc19ta25vZChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRl
bnRyeSAqLCB1bW9kZV90LCBkZXZfdCk7CjE0NDc0OiBleHRlcm4gaW50IHZmc19zeW1saW5rKHN0
cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IGNoYXIgKik7CjE0NDc0OiBleHRl
cm4gaW50IHZmc19saW5rKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICosIHN0cnVjdCBk
ZW50cnkgKiwgc3RydWN0IGlub2RlICoqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdmZzX3JtZGlyKHN0
cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfdW5s
aW5rKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqKik7CjE0
NDc0OiBleHRlcm4gaW50IHZmc19yZW5hbWUoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkg
Kiwgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICoqLCB1bnNp
Z25lZCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfd2hpdGVvdXQoc3RydWN0IGlub2RlICos
IHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICp2
ZnNfdG1wZmlsZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAg
ICAgIGludCBvcGVuX2ZsYWcpOwoxNDQ3NDogCjE0NDc0OiBpbnQgdmZzX21rb2JqKHN0cnVjdCBk
ZW50cnkgKiwgdW1vZGVfdCwKMTQ0NzQ6ICAgaW50ICgqZikoc3RydWN0IGRlbnRyeSAqLCB1bW9k
ZV90LCB2b2lkICopLAoxNDQ3NDogICB2b2lkICopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gbG9u
ZyB2ZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVk
IGxvbmcgYXJnKTsKMTQ0NzQ6ICMgMTc0MCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBl
eHRlcm4gdm9pZCBpbm9kZV9pbml0X293bmVyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHN0
cnVjdCBpbm9kZSAqZGlyLAoxNDQ3NDogICAgdW1vZGVfdCBtb2RlKTsKMTQ0NzQ6IGV4dGVybiBi
b29sIG1heV9vcGVuX2Rldihjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCk7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvIHsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgZmlfZmxhZ3M7CjE0NDc0OiAgdW5zaWduZWQgaW50IGZpX2V4dGVudHNfbWFwcGVk
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBmaV9leHRlbnRzX21heDsKMTQ0NzQ6ICBzdHJ1Y3QgZmll
bWFwX2V4dGVudCAqZmlfZXh0ZW50c19zdGFydDsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IGlu
dCBmaWVtYXBfZmlsbF9uZXh0X2V4dGVudChzdHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvICppbmZv
LCB1NjQgbG9naWNhbCwKMTQ0NzQ6ICAgICAgICB1NjQgcGh5cywgdTY0IGxlbiwgdTMyIGZsYWdz
KTsKMTQ0NzQ6IGludCBmaWVtYXBfY2hlY2tfZmxhZ3Moc3RydWN0IGZpZW1hcF9leHRlbnRfaW5m
byAqZmllaW5mbywgdTMyIGZzX2ZsYWdzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRpcl9jb250ZXh0OwoxNDQ3
NDogdHlwZWRlZiBpbnQgKCpmaWxsZGlyX3QpKHN0cnVjdCBkaXJfY29udGV4dCAqLCBjb25zdCBj
aGFyICosIGludCwgbG9mZl90LCB1NjQsCjE0NDc0OiAgICAgdW5zaWduZWQpOwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZGlyX2NvbnRleHQgewoxNDQ3NDogIGZpbGxkaXJfdCBhY3RvcjsKMTQ0NzQ6
ICBsb2ZmX3QgcG9zOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJsb2NrX2Rldmlj
ZV9vcGVyYXRpb25zOwoxNDQ3NDogIyAxODE5ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKMTQ0NzQ6
IHN0cnVjdCBpb3ZfaXRlcjsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB7
CjE0NDc0OiAgc3RydWN0IG1vZHVsZSAqb3duZXI7CjE0NDc0OiAgbG9mZl90ICgqbGxzZWVrKSAo
c3RydWN0IGZpbGUgKiwgbG9mZl90LCBpbnQpOwoxNDQ3NDogIHNzaXplX3QgKCpyZWFkKSAoc3Ry
dWN0IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKMTQ0NzQ6ICBzc2l6ZV90ICgq
d3JpdGUpIChzdHJ1Y3QgZmlsZSAqLCBjb25zdCBjaGFyICosIHNpemVfdCwgbG9mZl90ICopOwox
NDQ3NDogIHNzaXplX3QgKCpyZWFkX2l0ZXIpIChzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGlvdl9p
dGVyICopOwoxNDQ3NDogIHNzaXplX3QgKCp3cml0ZV9pdGVyKSAoc3RydWN0IGtpb2NiICosIHN0
cnVjdCBpb3ZfaXRlciAqKTsKMTQ0NzQ6ICBpbnQgKCppb3BvbGwpKHN0cnVjdCBraW9jYiAqa2lv
Y2IsIGJvb2wgc3Bpbik7CjE0NDc0OiAgaW50ICgqaXRlcmF0ZSkgKHN0cnVjdCBmaWxlICosIHN0
cnVjdCBkaXJfY29udGV4dCAqKTsKMTQ0NzQ6ICBpbnQgKCppdGVyYXRlX3NoYXJlZCkgKHN0cnVj
dCBmaWxlICosIHN0cnVjdCBkaXJfY29udGV4dCAqKTsKMTQ0NzQ6ICBfX3BvbGxfdCAoKnBvbGwp
IChzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3QgKik7CjE0NDc0OiAgbG9u
ZyAoKnVubG9ja2VkX2lvY3RsKSAoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25l
ZCBsb25nKTsKMTQ0NzQ6ICBsb25nICgqY29tcGF0X2lvY3RsKSAoc3RydWN0IGZpbGUgKiwgdW5z
aWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKMTQ0NzQ6ICBpbnQgKCptbWFwKSAoc3RydWN0IGZp
bGUgKiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICopOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbW1h
cF9zdXBwb3J0ZWRfZmxhZ3M7CjE0NDc0OiAgaW50ICgqb3BlbikgKHN0cnVjdCBpbm9kZSAqLCBz
dHJ1Y3QgZmlsZSAqKTsKMTQ0NzQ6ICBpbnQgKCpmbHVzaCkgKHN0cnVjdCBmaWxlICosIGZsX293
bmVyX3QgaWQpOwoxNDQ3NDogIGludCAoKnJlbGVhc2UpIChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0
IGZpbGUgKik7CjE0NDc0OiAgaW50ICgqZnN5bmMpIChzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGxv
ZmZfdCwgaW50IGRhdGFzeW5jKTsKMTQ0NzQ6ICBpbnQgKCpmYXN5bmMpIChpbnQsIHN0cnVjdCBm
aWxlICosIGludCk7CjE0NDc0OiAgaW50ICgqbG9jaykgKHN0cnVjdCBmaWxlICosIGludCwgc3Ry
dWN0IGZpbGVfbG9jayAqKTsKMTQ0NzQ6ICBzc2l6ZV90ICgqc2VuZHBhZ2UpIChzdHJ1Y3QgZmls
ZSAqLCBzdHJ1Y3QgcGFnZSAqLCBpbnQsIHNpemVfdCwgbG9mZl90ICosIGludCk7CjE0NDc0OiAg
dW5zaWduZWQgbG9uZyAoKmdldF91bm1hcHBlZF9hcmVhKShzdHJ1Y3QgZmlsZSAqLCB1bnNpZ25l
ZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKMTQ0
NzQ6ICBpbnQgKCpjaGVja19mbGFncykoaW50KTsKMTQ0NzQ6ICBpbnQgKCpmbG9jaykgKHN0cnVj
dCBmaWxlICosIGludCwgc3RydWN0IGZpbGVfbG9jayAqKTsKMTQ0NzQ6ICBzc2l6ZV90ICgqc3Bs
aWNlX3dyaXRlKShzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICosIHN0cnVjdCBmaWxlICosIGxvZmZf
dCAqLCBzaXplX3QsIHVuc2lnbmVkIGludCk7CjE0NDc0OiAgc3NpemVfdCAoKnNwbGljZV9yZWFk
KShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgKiwgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqLCBzaXpl
X3QsIHVuc2lnbmVkIGludCk7CjE0NDc0OiAgaW50ICgqc2V0bGVhc2UpKHN0cnVjdCBmaWxlICos
IGxvbmcsIHN0cnVjdCBmaWxlX2xvY2sgKiosIHZvaWQgKiopOwoxNDQ3NDogIGxvbmcgKCpmYWxs
b2NhdGUpKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgbW9kZSwgbG9mZl90IG9mZnNldCwKMTQ0NzQ6
ICAgICAgbG9mZl90IGxlbik7CjE0NDc0OiAgdm9pZCAoKnNob3dfZmRpbmZvKShzdHJ1Y3Qgc2Vx
X2ZpbGUgKm0sIHN0cnVjdCBmaWxlICpmKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBzc2l6ZV90ICgqY29weV9maWxlX3JhbmdlKShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIHN0cnVj
dCBmaWxlICosCjE0NDc0OiAgICBsb2ZmX3QsIHNpemVfdCwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6
ICBsb2ZmX3QgKCpyZW1hcF9maWxlX3JhbmdlKShzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90
IHBvc19pbiwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nf
b3V0LAoxNDQ3NDogICAgICAgIGxvZmZfdCBsZW4sIHVuc2lnbmVkIGludCByZW1hcF9mbGFncyk7
CjE0NDc0OiAgaW50ICgqZmFkdmlzZSkoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBsb2ZmX3QsIGlu
dCk7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGlub2RlX29wZXJhdGlvbnMgewoxNDQ3NDogIHN0cnVjdCBkZW50cnkg
KiAoKmxvb2t1cCkgKHN0cnVjdCBpbm9kZSAqLHN0cnVjdCBkZW50cnkgKiwgdW5zaWduZWQgaW50
KTsKMTQ0NzQ6ICBjb25zdCBjaGFyICogKCpnZXRfbGluaykgKHN0cnVjdCBkZW50cnkgKiwgc3Ry
dWN0IGlub2RlICosIHN0cnVjdCBkZWxheWVkX2NhbGwgKik7CjE0NDc0OiAgaW50ICgqcGVybWlz
c2lvbikgKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwoxNDQ3NDogIHN0cnVjdCBwb3NpeF9hY2wgKiAo
KmdldF9hY2wpKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqcmVh
ZGxpbmspIChzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKixpbnQpOwoxNDQ3NDogCjE0NDc0OiAgaW50
ICgqY3JlYXRlKSAoc3RydWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqLCB1bW9kZV90LCBib29s
KTsKMTQ0NzQ6ICBpbnQgKCpsaW5rKSAoc3RydWN0IGRlbnRyeSAqLHN0cnVjdCBpbm9kZSAqLHN0
cnVjdCBkZW50cnkgKik7CjE0NDc0OiAgaW50ICgqdW5saW5rKSAoc3RydWN0IGlub2RlICosc3Ry
dWN0IGRlbnRyeSAqKTsKMTQ0NzQ6ICBpbnQgKCpzeW1saW5rKSAoc3RydWN0IGlub2RlICosc3Ry
dWN0IGRlbnRyeSAqLGNvbnN0IGNoYXIgKik7CjE0NDc0OiAgaW50ICgqbWtkaXIpIChzdHJ1Y3Qg
aW5vZGUgKixzdHJ1Y3QgZGVudHJ5ICosdW1vZGVfdCk7CjE0NDc0OiAgaW50ICgqcm1kaXIpIChz
dHJ1Y3QgaW5vZGUgKixzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3NDogIGludCAoKm1rbm9kKSAoc3Ry
dWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqLHVtb2RlX3QsZGV2X3QpOwoxNDQ3NDogIGludCAo
KnJlbmFtZSkgKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosCjE0NDc0OiAgICBzdHJ1
Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCB1bnNpZ25lZCBpbnQpOwoxNDQ3NDogIGludCAo
KnNldGF0dHIpIChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpYXR0ciAqKTsKMTQ0NzQ6ICBpbnQg
KCpnZXRhdHRyKSAoY29uc3Qgc3RydWN0IHBhdGggKiwgc3RydWN0IGtzdGF0ICosIHUzMiwgdW5z
aWduZWQgaW50KTsKMTQ0NzQ6ICBzc2l6ZV90ICgqbGlzdHhhdHRyKSAoc3RydWN0IGRlbnRyeSAq
LCBjaGFyICosIHNpemVfdCk7CjE0NDc0OiAgaW50ICgqZmllbWFwKShzdHJ1Y3QgaW5vZGUgKiwg
c3RydWN0IGZpZW1hcF9leHRlbnRfaW5mbyAqLCB1NjQgc3RhcnQsCjE0NDc0OiAgICAgICAgIHU2
NCBsZW4pOwoxNDQ3NDogIGludCAoKnVwZGF0ZV90aW1lKShzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0
IHRpbWVzcGVjNjQgKiwgaW50KTsKMTQ0NzQ6ICBpbnQgKCphdG9taWNfb3Blbikoc3RydWN0IGlu
b2RlICosIHN0cnVjdCBkZW50cnkgKiwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBmaWxlICosIHVuc2ln
bmVkIG9wZW5fZmxhZywKMTQ0NzQ6ICAgICAgIHVtb2RlX3QgY3JlYXRlX21vZGUpOwoxNDQ3NDog
IGludCAoKnRtcGZpbGUpIChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCB1bW9kZV90
KTsKMTQ0NzQ6ICBpbnQgKCpzZXRfYWNsKShzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IHBvc2l4X2Fj
bCAqLCBpbnQpOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikp
KSkpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzc2l6ZV90IGNhbGxfcmVhZF9pdGVyKHN0cnVjdCBmaWxlICpm
aWxlLCBzdHJ1Y3Qga2lvY2IgKmtpbywKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBpb3ZfaXRlciAq
aXRlcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZmlsZS0+Zl9vcC0+cmVhZF9pdGVyKGtpbywg
aXRlcik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHNzaXplX3QgY2FsbF93cml0ZV9pdGVyKHN0
cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qga2lvY2IgKmtpbywKMTQ0NzQ6ICAgICAgICAgICBzdHJ1
Y3QgaW92X2l0ZXIgKml0ZXIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZpbGUtPmZfb3AtPndy
aXRlX2l0ZXIoa2lvLCBpdGVyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNhbGxfbW1h
cChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIGZpbGUtPmZfb3AtPm1tYXAoZmlsZSwgdm1hKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3NpemVfdCByd19jb3B5X2NoZWNrX3V2ZWN0b3IoaW50IHR5cGUsIGNvbnN0
IHN0cnVjdCBpb3ZlYyAqIHV2ZWN0b3IsCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBsb25nIG5y
X3NlZ3MsIHVuc2lnbmVkIGxvbmcgZmFzdF9zZWdzLAoxNDQ3NDogICAgICAgICAgc3RydWN0IGlv
dmVjICpmYXN0X3BvaW50ZXIsCjE0NDc0OiAgICAgICAgICBzdHJ1Y3QgaW92ZWMgKipyZXRfcG9p
bnRlcik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IF9fdmZzX3JlYWQoc3RydWN0IGZp
bGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IHZm
c19yZWFkKHN0cnVjdCBmaWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CjE0NDc0OiBl
eHRlcm4gc3NpemVfdCB2ZnNfd3JpdGUoc3RydWN0IGZpbGUgKiwgY29uc3QgY2hhciAqLCBzaXpl
X3QsIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IHZmc19yZWFkdihzdHJ1Y3QgZmls
ZSAqLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZywgbG9mZl90
ICosIHJ3Zl90KTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IHZmc19jb3B5X2ZpbGVfcmFuZ2Uoc3Ry
dWN0IGZpbGUgKiwgbG9mZl90ICwgc3RydWN0IGZpbGUgKiwKMTQ0NzQ6ICAgICAgICBsb2ZmX3Qs
IHNpemVfdCwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IGdlbmVyaWNfY29w
eV9maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlX2luLCBsb2ZmX3QgcG9zX2luLAoxNDQ3NDog
ICAgICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LAoxNDQ3NDog
ICAgICAgICAgICBzaXplX3QgbGVuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwoxNDQ3NDogZXh0ZXJu
IGludCBnZW5lcmljX3JlbWFwX2ZpbGVfcmFuZ2VfcHJlcChzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwg
bG9mZl90IHBvc19pbiwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBmaWxlICpmaWxlX291dCwgbG9mZl90
IHBvc19vdXQsCjE0NDc0OiAgICAgICBsb2ZmX3QgKmNvdW50LAoxNDQ3NDogICAgICAgdW5zaWdu
ZWQgaW50IHJlbWFwX2ZsYWdzKTsKMTQ0NzQ6IGV4dGVybiBsb2ZmX3QgZG9fY2xvbmVfZmlsZV9y
YW5nZShzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwKMTQ0NzQ6ICAgICAgIHN0
cnVjdCBmaWxlICpmaWxlX291dCwgbG9mZl90IHBvc19vdXQsCjE0NDc0OiAgICAgICBsb2ZmX3Qg
bGVuLCB1bnNpZ25lZCBpbnQgcmVtYXBfZmxhZ3MpOwoxNDQ3NDogZXh0ZXJuIGxvZmZfdCB2ZnNf
Y2xvbmVfZmlsZV9yYW5nZShzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwKMTQ0
NzQ6ICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LAoxNDQ3NDog
ICAgICAgIGxvZmZfdCBsZW4sIHVuc2lnbmVkIGludCByZW1hcF9mbGFncyk7CjE0NDc0OiBleHRl
cm4gaW50IHZmc19kZWR1cGVfZmlsZV9yYW5nZShzdHJ1Y3QgZmlsZSAqZmlsZSwKMTQ0NzQ6ICAg
ICAgc3RydWN0IGZpbGVfZGVkdXBlX3JhbmdlICpzYW1lKTsKMTQ0NzQ6IGV4dGVybiBsb2ZmX3Qg
dmZzX2RlZHVwZV9maWxlX3JhbmdlX29uZShzdHJ1Y3QgZmlsZSAqc3JjX2ZpbGUsIGxvZmZfdCBz
cmNfcG9zLAoxNDQ3NDogICAgICBzdHJ1Y3QgZmlsZSAqZHN0X2ZpbGUsIGxvZmZfdCBkc3RfcG9z
LAoxNDQ3NDogICAgICBsb2ZmX3QgbGVuLCB1bnNpZ25lZCBpbnQgcmVtYXBfZmxhZ3MpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIHsKMTQ0NzQ6ICAgICBz
dHJ1Y3QgaW5vZGUgKigqYWxsb2NfaW5vZGUpKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3
NDogIHZvaWQgKCpkZXN0cm95X2lub2RlKShzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiAgdm9pZCAo
KmZyZWVfaW5vZGUpKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogICAgIHZvaWQgKCpk
aXJ0eV9pbm9kZSkgKHN0cnVjdCBpbm9kZSAqLCBpbnQgZmxhZ3MpOwoxNDQ3NDogIGludCAoKndy
aXRlX2lub2RlKSAoc3RydWN0IGlub2RlICosIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2Jj
KTsKMTQ0NzQ6ICBpbnQgKCpkcm9wX2lub2RlKSAoc3RydWN0IGlub2RlICopOwoxNDQ3NDogIHZv
aWQgKCpldmljdF9pbm9kZSkgKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6ICB2b2lkICgqcHV0X3N1
cGVyKSAoc3RydWN0IHN1cGVyX2Jsb2NrICopOwoxNDQ3NDogIGludCAoKnN5bmNfZnMpKHN0cnVj
dCBzdXBlcl9ibG9jayAqc2IsIGludCB3YWl0KTsKMTQ0NzQ6ICBpbnQgKCpmcmVlemVfc3VwZXIp
IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CjE0NDc0OiAgaW50ICgqZnJlZXplX2ZzKSAoc3RydWN0
IHN1cGVyX2Jsb2NrICopOwoxNDQ3NDogIGludCAoKnRoYXdfc3VwZXIpIChzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKik7CjE0NDc0OiAgaW50ICgqdW5mcmVlemVfZnMpIChzdHJ1Y3Qgc3VwZXJfYmxvY2sg
Kik7CjE0NDc0OiAgaW50ICgqc3RhdGZzKSAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qga3N0YXRm
cyAqKTsKMTQ0NzQ6ICBpbnQgKCpyZW1vdW50X2ZzKSAoc3RydWN0IHN1cGVyX2Jsb2NrICosIGlu
dCAqLCBjaGFyICopOwoxNDQ3NDogIHZvaWQgKCp1bW91bnRfYmVnaW4pIChzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKik7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpzaG93X29wdGlvbnMpKHN0cnVjdCBzZXFf
ZmlsZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3NDogIGludCAoKnNob3dfZGV2bmFtZSkoc3Ry
dWN0IHNlcV9maWxlICosIHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAgaW50ICgqc2hvd19wYXRo
KShzdHJ1Y3Qgc2VxX2ZpbGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6ICBpbnQgKCpzaG93
X3N0YXRzKShzdHJ1Y3Qgc2VxX2ZpbGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6IAoxNDQ3
NDogIHNzaXplX3QgKCpxdW90YV9yZWFkKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgaW50LCBjaGFy
ICosIHNpemVfdCwgbG9mZl90KTsKMTQ0NzQ6ICBzc2l6ZV90ICgqcXVvdGFfd3JpdGUpKHN0cnVj
dCBzdXBlcl9ibG9jayAqLCBpbnQsIGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QpOwoxNDQ3
NDogIHN0cnVjdCBkcXVvdCAqKigqZ2V0X2RxdW90cykoc3RydWN0IGlub2RlICopOwoxNDQ3NDog
CjE0NDc0OiAgaW50ICgqYmRldl90cnlfdG9fZnJlZV9wYWdlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sq
LCBzdHJ1Y3QgcGFnZSosIGdmcF90KTsKMTQ0NzQ6ICBsb25nICgqbnJfY2FjaGVkX29iamVjdHMp
KHN0cnVjdCBzdXBlcl9ibG9jayAqLAoxNDQ3NDogICAgICAgc3RydWN0IHNocmlua19jb250cm9s
ICopOwoxNDQ3NDogIGxvbmcgKCpmcmVlX2NhY2hlZF9vYmplY3RzKShzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKiwKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHNocmlua19jb250cm9sICopOwoxNDQ3NDogfTsK
MTQ0NzQ6ICMgMjAxNyAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHNiX3Jkb25s
eShjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKSB7IHJldHVybiBzYi0+c19mbGFncyAmIDE7
IH0KMTQ0NzQ6ICMgMjA0NyAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIEhBU19V
Tk1BUFBFRF9JRChzdHJ1Y3QgaW5vZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAh
dWlkX3ZhbGlkKGlub2RlLT5pX3VpZCkgfHwgIWdpZF92YWxpZChpbm9kZS0+aV9naWQpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBlbnVtIHJ3X2hpbnQgZmlsZV93cml0ZV9oaW50KHN0cnVjdCBm
aWxlICpmaWxlKQoxNDQ3NDogewoxNDQ3NDogIGlmIChmaWxlLT5mX3dyaXRlX2hpbnQgIT0gV1JJ
VEVfTElGRV9OT1RfU0VUKQoxNDQ3NDogICByZXR1cm4gZmlsZS0+Zl93cml0ZV9oaW50OwoxNDQ3
NDogCjE0NDc0OiAgcmV0dXJuIGZpbGVfaW5vZGUoZmlsZSktPmlfd3JpdGVfaGludDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlvY2JfZmxhZ3Moc3RydWN0IGZpbGUgKmZpbGUpOwoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1MTYga2lfaGludF92YWxpZGF0ZShlbnVtIHJ3X2hpbnQgaGludCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICB0eXBlb2YoKChzdHJ1Y3Qga2lvY2IgKikwKS0+a2lfaGludCkgbWF4X2hpbnQg
PSAtMTsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChoaW50IDw9IG1heF9oaW50KQoxNDQ3NDogICByZXR1
cm4gaGludDsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBp
bml0X3N5bmNfa2lvY2Ioc3RydWN0IGtpb2NiICpraW9jYiwgc3RydWN0IGZpbGUgKmZpbHApCjE0
NDc0OiB7CjE0NDc0OiAgKmtpb2NiID0gKHN0cnVjdCBraW9jYikgewoxNDQ3NDogICAua2lfZmls
cCA9IGZpbHAsCjE0NDc0OiAgIC5raV9mbGFncyA9IGlvY2JfZmxhZ3MoZmlscCksCjE0NDc0OiAg
IC5raV9oaW50ID0ga2lfaGludF92YWxpZGF0ZShmaWxlX3dyaXRlX2hpbnQoZmlscCkpLAoxNDQ3
NDogICAua2lfaW9wcmlvID0gZ2V0X2N1cnJlbnRfaW9wcmlvKCksCjE0NDc0OiAgfTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBraW9jYl9jbG9uZShzdHJ1Y3Qga2lvY2IgKmtpb2NiLCBz
dHJ1Y3Qga2lvY2IgKmtpb2NiX3NyYywKMTQ0NzQ6ICAgICAgICAgICBzdHJ1Y3QgZmlsZSAqZmls
cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAqa2lvY2IgPSAoc3RydWN0IGtpb2NiKSB7CjE0NDc0OiAgIC5r
aV9maWxwID0gZmlscCwKMTQ0NzQ6ICAgLmtpX2ZsYWdzID0ga2lvY2Jfc3JjLT5raV9mbGFncywK
MTQ0NzQ6ICAgLmtpX2hpbnQgPSBraW9jYl9zcmMtPmtpX2hpbnQsCjE0NDc0OiAgIC5raV9pb3By
aW8gPSBraW9jYl9zcmMtPmtpX2lvcHJpbywKMTQ0NzQ6ICAgLmtpX3BvcyA9IGtpb2NiX3NyYy0+
a2lfcG9zLAoxNDQ3NDogIH07CjE0NDc0OiB9CjE0NDc0OiAjIDIxODEgIi4vaW5jbHVkZS9saW51
eC9mcy5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgX19tYXJrX2lub2RlX2RpcnR5KHN0cnVjdCBpbm9k
ZSAqLCBpbnQpOwoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtYXJrX2lub2RlX2RpcnR5KHN0cnVjdCBpbm9kZSAqaW5v
ZGUpCjE0NDc0OiB7CjE0NDc0OiAgX19tYXJrX2lub2RlX2RpcnR5KGlub2RlLCAoKCgxIDw8IDAp
IHwgKDEgPDwgMSkpIHwgKDEgPDwgMikpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBt
YXJrX2lub2RlX2RpcnR5X3N5bmMoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBfX21hcmtfaW5vZGVfZGlydHkoaW5vZGUsICgxIDw8IDApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIHZvaWQgaW5jX25saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoxNDQ3NDog
ZXh0ZXJuIHZvaWQgZHJvcF9ubGluayhzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIGNsZWFyX25saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgc2V0X25saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGludCBubGluayk7CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgaW5vZGVfaW5jX2xpbmtfY291bnQoc3RydWN0IGlub2RlICppbm9k
ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbmNfbmxpbmsoaW5vZGUpOwoxNDQ3NDogIG1hcmtfaW5vZGVf
ZGlydHkoaW5vZGUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlub2RlX2RlY19saW5r
X2NvdW50KHN0cnVjdCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgZHJvcF9ubGluayhp
bm9kZSk7CjE0NDc0OiAgbWFya19pbm9kZV9kaXJ0eShpbm9kZSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IGVudW0gZmlsZV90aW1lX2ZsYWdzIHsKMTQ0NzQ6ICBTX0FUSU1FID0gMSwKMTQ0NzQ6
ICBTX01USU1FID0gMiwKMTQ0NzQ6ICBTX0NUSU1FID0gNCwKMTQ0NzQ6ICBTX1ZFUlNJT04gPSA4
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgYXRpbWVfbmVlZHNfdXBkYXRl
KGNvbnN0IHN0cnVjdCBwYXRoICosIHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IHRvdWNoX2F0aW1lKGNvbnN0IHN0cnVjdCBwYXRoICopOwoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmaWxlX2FjY2Vz
c2VkKHN0cnVjdCBmaWxlICpmaWxlKQoxNDQ3NDogewoxNDQ3NDogIGlmICghKGZpbGUtPmZfZmxh
Z3MgJiAwMTAwMDAwMCkpCjE0NDc0OiAgIHRvdWNoX2F0aW1lKCZmaWxlLT5mX3BhdGgpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGZpbGVfbW9kaWZpZWQoc3RydWN0IGZpbGUg
KmZpbGUpOwoxNDQ3NDogCjE0NDc0OiBpbnQgc3luY19pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYyk7CjE0NDc0OiBpbnQgc3luY19pbm9kZV9t
ZXRhZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgd2FpdCk7CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBmaWxlX3N5c3RlbV90eXBlIHsKMTQ0NzQ6ICBjb25zdCBjaGFyICpuYW1lOwoxNDQ3NDog
IGludCBmc19mbGFnczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBpbnQgKCppbml0X2ZzX2NvbnRleHQpKHN0cnVjdCBmc19jb250ZXh0ICop
OwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfc3BlYyAqcGFyYW1ldGVyczsKMTQ0
NzQ6ICBzdHJ1Y3QgZGVudHJ5ICooKm1vdW50KSAoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKiwg
aW50LAoxNDQ3NDogICAgICAgICAgY29uc3QgY2hhciAqLCB2b2lkICopOwoxNDQ3NDogIHZvaWQg
KCpraWxsX3NiKSAoc3RydWN0IHN1cGVyX2Jsb2NrICopOwoxNDQ3NDogIHN0cnVjdCBtb2R1bGUg
Km93bmVyOwoxNDQ3NDogIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICogbmV4dDsKMTQ0NzQ6ICBz
dHJ1Y3QgaGxpc3RfaGVhZCBmc19zdXBlcnM7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbG9ja19j
bGFzc19rZXkgc19sb2NrX2tleTsKMTQ0NzQ6ICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgc191bW91
bnRfa2V5OwoxNDQ3NDogIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBzX3Zmc19yZW5hbWVfa2V5Owox
NDQ3NDogIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBzX3dyaXRlcnNfa2V5WyhTQl9GUkVFWkVfQ09N
UExFVEUgLSAxKV07CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgaV9sb2Nr
X2tleTsKMTQ0NzQ6ICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgaV9tdXRleF9rZXk7CjE0NDc0OiAg
c3RydWN0IGxvY2tfY2xhc3Nfa2V5IGlfbXV0ZXhfZGlyX2tleTsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICptb3Vu
dF9iZGV2KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLAoxNDQ3NDogIGludCBmbGFn
cywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEsCjE0NDc0OiAgaW50ICgqZmlsbF9z
dXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICosIHZvaWQgKiwgaW50KSk7CjE0NDc0OiAjIDIyNzEg
Ii4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKm1vdW50
X3NpbmdsZShzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKMTQ0NzQ6ICBpbnQgZmxh
Z3MsIHZvaWQgKmRhdGEsCjE0NDc0OiAgaW50ICgqZmlsbF9zdXBlcikoc3RydWN0IHN1cGVyX2Js
b2NrICosIHZvaWQgKiwgaW50KSk7CjE0NDc0OiBleHRlcm4gc3RydWN0IGRlbnRyeSAqbW91bnRf
bm9kZXYoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsCjE0NDc0OiAgaW50IGZsYWdz
LCB2b2lkICpkYXRhLAoxNDQ3NDogIGludCAoKmZpbGxfc3VwZXIpKHN0cnVjdCBzdXBlcl9ibG9j
ayAqLCB2b2lkICosIGludCkpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKm1vdW50X3N1
YnRyZWUoc3RydWN0IHZmc21vdW50ICptbnQsIGNvbnN0IGNoYXIgKnBhdGgpOwoxNDQ3NDogdm9p
ZCBnZW5lcmljX3NodXRkb3duX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3NDog
CjE0NDc0OiB2b2lkIGtpbGxfYmxvY2tfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lk
IGtpbGxfYW5vbl9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKMTQ0NzQ6IHZvaWQga2ls
bF9saXR0ZXJfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0NDc0OiB2b2lkIGRlYWN0
aXZhdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0NDc0OiB2b2lkIGRlYWN0aXZh
dGVfbG9ja2VkX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3NDogaW50IHNldF9h
bm9uX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqcywgdm9pZCAqZGF0YSk7CjE0NDc0OiBpbnQg
c2V0X2Fub25fc3VwZXJfZmMoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCBzdHJ1Y3QgZnNfY29udGV4
dCAqZmMpOwoxNDQ3NDogaW50IGdldF9hbm9uX2JkZXYoZGV2X3QgKik7CjE0NDc0OiB2b2lkIGZy
ZWVfYW5vbl9iZGV2KGRldl90KTsKMTQ0NzQ6IHN0cnVjdCBzdXBlcl9ibG9jayAqc2dldF9mYyhz
dHJ1Y3QgZnNfY29udGV4dCAqZmMsCjE0NDc0OiAgICAgICAgaW50ICgqdGVzdCkoc3RydWN0IHN1
cGVyX2Jsb2NrICosIHN0cnVjdCBmc19jb250ZXh0ICopLAoxNDQ3NDogICAgICAgIGludCAoKnNl
dCkoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBmc19jb250ZXh0ICopKTsKMTQ0NzQ6IHN0
cnVjdCBzdXBlcl9ibG9jayAqc2dldChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqdHlwZSwKMTQ0
NzQ6ICAgIGludCAoKnRlc3QpKHN0cnVjdCBzdXBlcl9ibG9jayAqLHZvaWQgKiksCjE0NDc0OiAg
ICBpbnQgKCpzZXQpKHN0cnVjdCBzdXBlcl9ibG9jayAqLHZvaWQgKiksCjE0NDc0OiAgICBpbnQg
ZmxhZ3MsIHZvaWQgKmRhdGEpOwoxNDQ3NDogIyAyMzIwICIuL2luY2x1ZGUvbGludXgvZnMuaCIK
MTQ0NzQ6IGV4dGVybiBpbnQgcmVnaXN0ZXJfZmlsZXN5c3RlbShzdHJ1Y3QgZmlsZV9zeXN0ZW1f
dHlwZSAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdW5yZWdpc3Rlcl9maWxlc3lzdGVtKHN0cnVjdCBm
aWxlX3N5c3RlbV90eXBlICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB2ZnNtb3VudCAqa2Vybl9t
b3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGtlcm5f
dW5tb3VudChzdHJ1Y3QgdmZzbW91bnQgKm1udCk7CjE0NDc0OiBleHRlcm4gaW50IG1heV91bW91
bnRfdHJlZShzdHJ1Y3QgdmZzbW91bnQgKik7CjE0NDc0OiBleHRlcm4gaW50IG1heV91bW91bnQo
c3RydWN0IHZmc21vdW50ICopOwoxNDQ3NDogZXh0ZXJuIGxvbmcgZG9fbW91bnQoY29uc3QgY2hh
ciAqLCBjb25zdCBjaGFyICosCjE0NDc0OiAgICAgICAgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBs
b25nLCB2b2lkICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB2ZnNtb3VudCAqY29sbGVjdF9tb3Vu
dHMoY29uc3Qgc3RydWN0IHBhdGggKik7CjE0NDc0OiBleHRlcm4gdm9pZCBkcm9wX2NvbGxlY3Rl
ZF9tb3VudHMoc3RydWN0IHZmc21vdW50ICopOwoxNDQ3NDogZXh0ZXJuIGludCBpdGVyYXRlX21v
dW50cyhpbnQgKCopKHN0cnVjdCB2ZnNtb3VudCAqLCB2b2lkICopLCB2b2lkICosCjE0NDc0OiAg
ICAgIHN0cnVjdCB2ZnNtb3VudCAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdmZzX3N0YXRmcyhjb25z
dCBzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3Qga3N0YXRmcyAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdXNl
cl9zdGF0ZnMoY29uc3QgY2hhciAqLCBzdHJ1Y3Qga3N0YXRmcyAqKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgZmRfc3RhdGZzKGludCwgc3RydWN0IGtzdGF0ZnMgKik7CjE0NDc0OiBleHRlcm4gaW50IGZy
ZWV6ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnN1cGVyKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
dGhhd19zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnN1cGVyKTsKMTQ0NzQ6IGV4dGVybiBib29s
IG91cl9tbnQoc3RydWN0IHZmc21vdW50ICptbnQpOwoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRl
X18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpCjE0NDc0OiBpbnQgc3VwZXJfc2V0dXBfYmRp
X25hbWUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogZXh0
ZXJuIGludCBzdXBlcl9zZXR1cF9iZGkoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBpbnQgY3VycmVudF91bWFzayh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIHZvaWQgaWhvbGQoc3RydWN0IGlub2RlICogaW5vZGUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQg
aXB1dChzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiBleHRlcm4gaW50IGdlbmVyaWNfdXBkYXRlX3Rp
bWUoc3RydWN0IGlub2RlICosIHN0cnVjdCB0aW1lc3BlYzY0ICosIGludCk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBrb2JqZWN0ICpmc19rb2JqOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGxvY2tzX21hbmRhdG9yeV9sb2Nr
ZWQoc3RydWN0IGZpbGUgKik7CjE0NDc0OiBleHRlcm4gaW50IGxvY2tzX21hbmRhdG9yeV9hcmVh
KHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGxvZmZfdCwgdW5zaWduZWQg
Y2hhcik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgX19tYW5kYXRvcnlfbG9jayhzdHJ1Y3QgaW5vZGUgKmlubykKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gKGluby0+aV9tb2RlICYgKDAwMDIwMDAgfCAwMDAxMCkpID09IDAwMDIwMDA7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgbWFuZGF0b3J5X2xvY2soc3RydWN0IGlub2RlICppbm8pCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICgoaW5vKS0+aV9zYi0+c19mbGFncyAmICg2NCkpICYmIF9fbWFuZGF0b3J5
X2xvY2soaW5vKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxvY2tzX3ZlcmlmeV9sb2Nr
ZWQoc3RydWN0IGZpbGUgKmZpbGUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKG1hbmRhdG9yeV9sb2Nr
KGZpbGVfaW5vZGUoZmlsZSkpKQoxNDQ3NDogICByZXR1cm4gbG9ja3NfbWFuZGF0b3J5X2xvY2tl
ZChmaWxlKTsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxv
Y2tzX3ZlcmlmeV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLAoxNDQ3NDogICAgICAgICBz
dHJ1Y3QgZmlsZSAqZiwKMTQ0NzQ6ICAgICAgICAgbG9mZl90IHNpemUpCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKCFpbm9kZS0+aV9mbGN0eCB8fCAhbWFuZGF0b3J5X2xvY2soaW5vZGUpKQoxNDQ3NDog
ICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChzaXplIDwgaW5vZGUtPmlfc2l6ZSkgewox
NDQ3NDogICByZXR1cm4gbG9ja3NfbWFuZGF0b3J5X2FyZWEoaW5vZGUsIGYsIHNpemUsIGlub2Rl
LT5pX3NpemUgLSAxLAoxNDQ3NDogICAgIDEpOwoxNDQ3NDogIH0gZWxzZSB7CjE0NDc0OiAgIHJl
dHVybiBsb2Nrc19tYW5kYXRvcnlfYXJlYShpbm9kZSwgZiwgaW5vZGUtPmlfc2l6ZSwgc2l6ZSAt
IDEsCjE0NDc0OiAgICAgMSk7CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogIyAyNDM4ICIuL2lu
Y2x1ZGUvbGludXgvZnMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBicmVha19sZWFzZShzdHJ1Y3QgaW5vZGUgKmlu
b2RlLCB1bnNpZ25lZCBpbnQgbW9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoImxvY2s7IGFkZGwg
JDAsLTQoJSVyc3ApIiA6OjogIm1lbW9yeSIsICJjYyIpOwoxNDQ3NDogIGlmIChpbm9kZS0+aV9m
bGN0eCAmJiAhbGlzdF9lbXB0eV9jYXJlZnVsKCZpbm9kZS0+aV9mbGN0eC0+ZmxjX2xlYXNlKSkK
MTQ0NzQ6ICAgcmV0dXJuIF9fYnJlYWtfbGVhc2UoaW5vZGUsIG1vZGUsIDMyKTsKMTQ0NzQ6ICBy
ZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJyZWFrX2RlbGVnKHN0cnVjdCBp
bm9kZSAqaW5vZGUsIHVuc2lnbmVkIGludCBtb2RlKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgibG9j
azsgYWRkbCAkMCwtNCglJXJzcCkiIDo6OiAibWVtb3J5IiwgImNjIik7CjE0NDc0OiAgaWYgKGlu
b2RlLT5pX2ZsY3R4ICYmICFsaXN0X2VtcHR5X2NhcmVmdWwoJmlub2RlLT5pX2ZsY3R4LT5mbGNf
bGVhc2UpKQoxNDQ3NDogICByZXR1cm4gX19icmVha19sZWFzZShpbm9kZSwgbW9kZSwgNCk7CjE0
NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0cnlfYnJlYWtfZGVs
ZWcoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlub2RlICoqZGVsZWdhdGVkX2lub2RlKQox
NDQ3NDogewoxNDQ3NDogIGludCByZXQ7CjE0NDc0OiAKMTQ0NzQ6ICByZXQgPSBicmVha19kZWxl
Zyhpbm9kZSwgMDAwMDAwMDF8MDAwMDQwMDApOwoxNDQ3NDogIGlmIChyZXQgPT0gLTExICYmIGRl
bGVnYXRlZF9pbm9kZSkgewoxNDQ3NDogICAqZGVsZWdhdGVkX2lub2RlID0gaW5vZGU7CjE0NDc0
OiAgIGlob2xkKGlub2RlKTsKMTQ0NzQ6ICB9CjE0NDc0OiAgcmV0dXJuIHJldDsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IGJyZWFrX2RlbGVnX3dhaXQoc3RydWN0IGlub2RlICoqZGVsZWdh
dGVkX2lub2RlKQoxNDQ3NDogewoxNDQ3NDogIGludCByZXQ7CjE0NDc0OiAKMTQ0NzQ6ICByZXQg
PSBicmVha19kZWxlZygqZGVsZWdhdGVkX2lub2RlLCAwMDAwMDAwMSk7CjE0NDc0OiAgaXB1dCgq
ZGVsZWdhdGVkX2lub2RlKTsKMTQ0NzQ6ICAqZGVsZWdhdGVkX2lub2RlID0gKCh2b2lkICopMCk7
CjE0NDc0OiAgcmV0dXJuIHJldDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJyZWFrX2xh
eW91dChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBib29sIHdhaXQpCjE0NDc0OiB7CjE0NDc0OiAgYXNt
IHZvbGF0aWxlKCJsb2NrOyBhZGRsICQwLC00KCUlcnNwKSIgOjo6ICJtZW1vcnkiLCAiY2MiKTsK
MTQ0NzQ6ICBpZiAoaW5vZGUtPmlfZmxjdHggJiYgIWxpc3RfZW1wdHlfY2FyZWZ1bCgmaW5vZGUt
PmlfZmxjdHgtPmZsY19sZWFzZSkpCjE0NDc0OiAgIHJldHVybiBfX2JyZWFrX2xlYXNlKGlub2Rl
LAoxNDQ3NDogICAgIHdhaXQgPyAwMDAwMDAwMSA6IDAwMDAwMDAxIHwgMDAwMDQwMDAsCjE0NDc0
OiAgICAgMjA0OCk7CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAjIDI1MjggIi4v
aW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RydWN0IGF1ZGl0X25hbWVzOwoxNDQ3NDogc3Ry
dWN0IGZpbGVuYW1lIHsKMTQ0NzQ6ICBjb25zdCBjaGFyICpuYW1lOwoxNDQ3NDogIGNvbnN0IGNo
YXIgKnVwdHI7CjE0NDc0OiAgaW50IHJlZmNudDsKMTQ0NzQ6ICBzdHJ1Y3QgYXVkaXRfbmFtZXMg
KmFuYW1lOwoxNDQ3NDogIGNvbnN0IGNoYXIgaW5hbWVbXTsKMTQ0NzQ6IH07CjE0NDc0OiBfU3Rh
dGljX2Fzc2VydChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGZpbGVuYW1lLCBpbmFtZSkgJSBz
aXplb2YobG9uZykgPT0gMCwgIm9mZnNldG9mKHN0cnVjdCBmaWxlbmFtZSwgaW5hbWUpICUgc2l6
ZW9mKGxvbmcpID09IDAiKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGxvbmcgdmZzX3RydW5jYXRl
KGNvbnN0IHN0cnVjdCBwYXRoICosIGxvZmZfdCk7CjE0NDc0OiBleHRlcm4gaW50IGRvX3RydW5j
YXRlKHN0cnVjdCBkZW50cnkgKiwgbG9mZl90IHN0YXJ0LCB1bnNpZ25lZCBpbnQgdGltZV9hdHRy
cywKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBmaWxlICpmaWxwKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
dmZzX2ZhbGxvY2F0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQs
CjE0NDc0OiAgICBsb2ZmX3QgbGVuKTsKMTQ0NzQ6IGV4dGVybiBsb25nIGRvX3N5c19vcGVuKGlu
dCBkZmQsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZmxhZ3MsCjE0NDc0OiAgICB1bW9kZV90
IG1vZGUpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBmaWxlICpmaWxlX29wZW5fbmFtZShzdHJ1Y3Qg
ZmlsZW5hbWUgKiwgaW50LCB1bW9kZV90KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZmlsZSAqZmls
cF9vcGVuKGNvbnN0IGNoYXIgKiwgaW50LCB1bW9kZV90KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
ZmlsZSAqZmlsZV9vcGVuX3Jvb3Qoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwK
MTQ0NzQ6ICAgICAgICBjb25zdCBjaGFyICosIGludCwgdW1vZGVfdCk7CjE0NDc0OiBleHRlcm4g
c3RydWN0IGZpbGUgKiBkZW50cnlfb3Blbihjb25zdCBzdHJ1Y3QgcGF0aCAqLCBpbnQsIGNvbnN0
IHN0cnVjdCBjcmVkICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBmaWxlICogb3Blbl93aXRoX2Zh
a2VfcGF0aChjb25zdCBzdHJ1Y3QgcGF0aCAqLCBpbnQsCjE0NDc0OiAgICAgICBzdHJ1Y3QgaW5v
ZGUqLCBjb25zdCBzdHJ1Y3QgY3JlZCAqKTsKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBmaWxlICpmaWxlX2Nsb25l
X29wZW4oc3RydWN0IGZpbGUgKmZpbGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRlbnRyeV9v
cGVuKCZmaWxlLT5mX3BhdGgsIGZpbGUtPmZfZmxhZ3MsIGZpbGUtPmZfY3JlZCk7CjE0NDc0OiB9
CjE0NDc0OiBleHRlcm4gaW50IGZpbHBfY2xvc2Uoc3RydWN0IGZpbGUgKiwgZmxfb3duZXJfdCBp
ZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZmlsZW5hbWUgKmdldG5hbWVfZmxhZ3Mo
Y29uc3QgY2hhciAqLCBpbnQsIGludCAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZmlsZW5hbWUg
KmdldG5hbWUoY29uc3QgY2hhciAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZmlsZW5hbWUgKmdl
dG5hbWVfa2VybmVsKGNvbnN0IGNoYXIgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBwdXRuYW1lKHN0
cnVjdCBmaWxlbmFtZSAqbmFtZSk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZmluaXNoX29w
ZW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKMTQ0NzQ6ICAgIGlu
dCAoKm9wZW4pKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKSk7CjE0NDc0OiBleHRlcm4g
aW50IGZpbmlzaF9ub19vcGVuKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9f
c2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHZmc19j
YWNoZXNfaW5pdF9lYXJseSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18o
KF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHZm
c19jYWNoZXNfaW5pdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBrbWVtX2Nh
Y2hlICpuYW1lc19jYWNoZXA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIGludCByZWdpc3Rlcl9ibGtkZXYodW5zaWduZWQgaW50LCBjb25zdCBj
aGFyICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgdW5yZWdpc3Rlcl9ibGtkZXYodW5zaWduZWQgaW50
LCBjb25zdCBjaGFyICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYmRldl91bmhhc2hfaW5vZGUoZGV2
X3QgZGV2KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGdldChkZXZfdCk7
CjE0NDc0OiBleHRlcm4gc3RydWN0IGJsb2NrX2RldmljZSAqYmRncmFiKHN0cnVjdCBibG9ja19k
ZXZpY2UgKmJkZXYpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYmRfc2V0X3NpemUoc3RydWN0IGJsb2Nr
X2RldmljZSAqLCBsb2ZmX3Qgc2l6ZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBiZF9mb3JnZXQoc3Ry
dWN0IGlub2RlICppbm9kZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBiZHB1dChzdHJ1Y3QgYmxvY2tf
ZGV2aWNlICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9iZGV2KHN0cnVjdCBibG9j
a19kZXZpY2UgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBpdGVyYXRlX2JkZXZzKHZvaWQgKCopKHN0
cnVjdCBibG9ja19kZXZpY2UgKiwgdm9pZCAqKSwgdm9pZCAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
c3luY19ibG9ja2RldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KTsKMTQ0NzQ6IGV4dGVybiB2
b2lkIGtpbGxfYmRldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVj
dCBzdXBlcl9ibG9jayAqZnJlZXplX2JkZXYoc3RydWN0IGJsb2NrX2RldmljZSAqKTsKMTQ0NzQ6
IGV4dGVybiB2b2lkIGVtZXJnZW5jeV90aGF3X2FsbCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IGVtZXJnZW5jeV90aGF3X2JkZXYoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0NDc0OiBleHRl
cm4gaW50IHRoYXdfYmRldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKnNiKTsKMTQ0NzQ6IGV4dGVybiBpbnQgZnN5bmNfYmRldihzdHJ1Y3QgYmxvY2tfZGV2
aWNlICopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHN1cGVyX2Jsb2NrICpibG9ja2Rl
dl9zdXBlcmJsb2NrOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHNiX2lzX2Jsa2Rldl9zYihzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKnNiKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBzYiA9PSBibG9ja2Rldl9z
dXBlcmJsb2NrOwoxNDQ3NDogfQoxNDQ3NDogIyAyNjMxICIuL2luY2x1ZGUvbGludXgvZnMuaCIK
MTQ0NzQ6IGV4dGVybiBpbnQgc3luY19maWxlc3lzdGVtKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsK
MTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRlZl9ibGtfZm9wczsK
MTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRlZl9jaHJfZm9wczsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBpb2N0bF9ieV9iZGV2KHN0cnVjdCBibG9ja19kZXZp
Y2UgKiwgdW5zaWduZWQsIHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogZXh0ZXJuIGludCBibGtkZXZf
aW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqLCBmbW9kZV90LCB1bnNpZ25lZCwgdW5zaWduZWQg
bG9uZyk7CjE0NDc0OiBleHRlcm4gbG9uZyBjb21wYXRfYmxrZGV2X2lvY3RsKHN0cnVjdCBmaWxl
ICosIHVuc2lnbmVkLCB1bnNpZ25lZCBsb25nKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYmxrZGV2X2dl
dChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUsIHZvaWQgKmhvbGRlcik7
CjE0NDc0OiBleHRlcm4gc3RydWN0IGJsb2NrX2RldmljZSAqYmxrZGV2X2dldF9ieV9wYXRoKGNv
bnN0IGNoYXIgKnBhdGgsIGZtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgICAgICAgIHZvaWQgKmhv
bGRlcik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGJsb2NrX2RldmljZSAqYmxrZGV2X2dldF9ieV9k
ZXYoZGV2X3QgZGV2LCBmbW9kZV90IG1vZGUsCjE0NDc0OiAgICAgICAgICAgIHZvaWQgKmhvbGRl
cik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGJsb2NrX2RldmljZSAqYmRfc3RhcnRfY2xhaW1pbmco
c3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwKMTQ0NzQ6ICAgICAgICAgICAgdm9pZCAqaG9sZGVy
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGJkX2ZpbmlzaF9jbGFpbWluZyhzdHJ1Y3QgYmxvY2tfZGV2
aWNlICpiZGV2LAoxNDQ3NDogICAgICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKndob2xlLCB2
b2lkICpob2xkZXIpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYmRfYWJvcnRfY2xhaW1pbmcoc3RydWN0
IGJsb2NrX2RldmljZSAqYmRldiwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2Ug
Kndob2xlLCB2b2lkICpob2xkZXIpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYmxrZGV2X3B1dChzdHJ1
Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBpbnQgYmRfbGlua19kaXNrX2hvbGRlcihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpi
ZGV2LCBzdHJ1Y3QgZ2VuZGlzayAqZGlzayk7CjE0NDc0OiBleHRlcm4gdm9pZCBiZF91bmxpbmtf
ZGlza19ob2xkZXIoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwKMTQ0NzQ6ICAgICAgIHN0cnVj
dCBnZW5kaXNrICpkaXNrKTsKMTQ0NzQ6ICMgMjY3NiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0
NDc0OiBleHRlcm4gaW50IGFsbG9jX2NocmRldl9yZWdpb24oZGV2X3QgKiwgdW5zaWduZWQsIHVu
c2lnbmVkLCBjb25zdCBjaGFyICopOwoxNDQ3NDogZXh0ZXJuIGludCByZWdpc3Rlcl9jaHJkZXZf
cmVnaW9uKGRldl90LCB1bnNpZ25lZCwgY29uc3QgY2hhciAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
X19yZWdpc3Rlcl9jaHJkZXYodW5zaWduZWQgaW50IG1ham9yLCB1bnNpZ25lZCBpbnQgYmFzZW1p
bm9yLAoxNDQ3NDogICAgICAgICB1bnNpZ25lZCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUs
CjE0NDc0OiAgICAgICAgIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgX191bnJlZ2lzdGVyX2NocmRldih1bnNpZ25lZCBpbnQgbWFqb3IsIHVu
c2lnbmVkIGludCBiYXNlbWlub3IsCjE0NDc0OiAgICAgdW5zaWduZWQgaW50IGNvdW50LCBjb25z
dCBjaGFyICpuYW1lKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHVucmVnaXN0ZXJfY2hyZGV2X3JlZ2lv
bihkZXZfdCwgdW5zaWduZWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgY2hyZGV2X3Nob3coc3RydWN0
IHNlcV9maWxlICosb2ZmX3QpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmVnaXN0ZXJfY2hyZGV2KHVu
c2lnbmVkIGludCBtYWpvciwgY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgIGNvbnN0IHN0
cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fcmVn
aXN0ZXJfY2hyZGV2KG1ham9yLCAwLCAyNTYsIG5hbWUsIGZvcHMpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHVucmVnaXN0ZXJfY2hyZGV2KHVuc2lnbmVkIGludCBtYWpvciwgY29uc3Qg
Y2hhciAqbmFtZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX3VucmVnaXN0ZXJfY2hyZGV2KG1ham9yLCAw
LCAyNTYsIG5hbWUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY29uc3QgY2hhciAqX19iZGV2bmFt
ZShkZXZfdCwgY2hhciAqYnVmZmVyKTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBjaGFyICpiZGV2bmFt
ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBjaGFyICpidWZmZXIpOwoxNDQ3NDogZXh0ZXJu
IHN0cnVjdCBibG9ja19kZXZpY2UgKmxvb2t1cF9iZGV2KGNvbnN0IGNoYXIgKik7CjE0NDc0OiBl
eHRlcm4gdm9pZCBibGtkZXZfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKixvZmZfdCk7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgaW5pdF9z
cGVjaWFsX2lub2RlKHN0cnVjdCBpbm9kZSAqLCB1bW9kZV90LCBkZXZfdCk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgbWFrZV9iYWRfaW5vZGUoc3RydWN0IGlub2RlICopOwox
NDQ3NDogZXh0ZXJuIGJvb2wgaXNfYmFkX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHJldmFsaWRhdGVfZGlzayhzdHJ1Y3QgZ2VuZGlzayAq
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgY2hlY2tfZGlza19jaGFuZ2Uoc3RydWN0IGJsb2NrX2Rldmlj
ZSAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19pbnZhbGlkYXRlX2RldmljZShzdHJ1Y3QgYmxvY2tf
ZGV2aWNlICosIGJvb2wpOwoxNDQ3NDogZXh0ZXJuIGludCBpbnZhbGlkYXRlX3BhcnRpdGlvbihz
dHJ1Y3QgZ2VuZGlzayAqLCBpbnQpOwoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBsb25nIGludmFs
aWRhdGVfbWFwcGluZ19wYWdlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKMTQ0NzQ6
ICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGludmFsaWRhdGVfcmVtb3RlX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCjE0
NDc0OiB7CjE0NDc0OiAgaWYgKCgoKGlub2RlLT5pX21vZGUpICYgMDAxNzAwMDApID09IDAxMDAw
MDApIHx8ICgoKGlub2RlLT5pX21vZGUpICYgMDAxNzAwMDApID09IDAwNDAwMDApIHx8CjE0NDc0
OiAgICAgICgoKGlub2RlLT5pX21vZGUpICYgMDAxNzAwMDApID09IDAxMjAwMDApKQoxNDQ3NDog
ICBpbnZhbGlkYXRlX21hcHBpbmdfcGFnZXMoaW5vZGUtPmlfbWFwcGluZywgMCwgLTEpOwoxNDQ3
NDogfQoxNDQ3NDogZXh0ZXJuIGludCBpbnZhbGlkYXRlX2lub2RlX3BhZ2VzMihzdHJ1Y3QgYWRk
cmVzc19zcGFjZSAqbWFwcGluZyk7CjE0NDc0OiBleHRlcm4gaW50IGludmFsaWRhdGVfaW5vZGVf
cGFnZXMyX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAoxNDQ3NDogICAgICAg
dW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwoxNDQ3NDogZXh0ZXJuIGlu
dCB3cml0ZV9pbm9kZV9ub3coc3RydWN0IGlub2RlICosIGludCk7CjE0NDc0OiBleHRlcm4gaW50
IGZpbGVtYXBfZmRhdGF3cml0ZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqKTsKMTQ0NzQ6IGV4dGVy
biBpbnQgZmlsZW1hcF9mbHVzaChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqKTsKMTQ0NzQ6IGV4dGVy
biBpbnQgZmlsZW1hcF9mZGF0YXdhaXRfa2VlcF9lcnJvcnMoc3RydWN0IGFkZHJlc3Nfc3BhY2Ug
Km1hcHBpbmcpOwoxNDQ3NDogZXh0ZXJuIGludCBmaWxlbWFwX2ZkYXRhd2FpdF9yYW5nZShzdHJ1
Y3QgYWRkcmVzc19zcGFjZSAqLCBsb2ZmX3QgbHN0YXJ0LAoxNDQ3NDogICAgICAgIGxvZmZfdCBs
ZW5kKTsKMTQ0NzQ6IGV4dGVybiBpbnQgZmlsZW1hcF9mZGF0YXdhaXRfcmFuZ2Vfa2VlcF9lcnJv
cnMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCjE0NDc0OiAgIGxvZmZfdCBzdGFydF9i
eXRlLCBsb2ZmX3QgZW5kX2J5dGUpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZmlsZW1hcF9mZGF0YXdh
aXQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IGZpbGVtYXBfZmRhdGF3YWl0X3JhbmdlKG1hcHBpbmcsIDAsICgobG9uZyBsb25nKSh+MFVMTCA+
PiAxKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBmaWxlbWFwX3Jhbmdl
X2hhc19wYWdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIGxvZmZfdCBsc3RhcnQsCjE0NDc0OiAg
ICAgICBsb2ZmX3QgbGVuZCk7CjE0NDc0OiBleHRlcm4gaW50IGZpbGVtYXBfd3JpdGVfYW5kX3dh
aXRfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCjE0NDc0OiAgICAgICAgICAg
ICBsb2ZmX3QgbHN0YXJ0LCBsb2ZmX3QgbGVuZCk7CjE0NDc0OiBleHRlcm4gaW50IF9fZmlsZW1h
cF9mZGF0YXdyaXRlX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAoxNDQ3NDog
ICAgIGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCwgaW50IHN5bmNfbW9kZSk7CjE0NDc0OiBleHRl
cm4gaW50IGZpbGVtYXBfZmRhdGF3cml0ZV9yYW5nZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw
cGluZywKMTQ0NzQ6ICAgICBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQpOwoxNDQ3NDogZXh0ZXJu
IGludCBmaWxlbWFwX2NoZWNrX2Vycm9ycyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyk7
CjE0NDc0OiBleHRlcm4gdm9pZCBfX2ZpbGVtYXBfc2V0X3diX2VycihzdHJ1Y3QgYWRkcmVzc19z
cGFjZSAqbWFwcGluZywgaW50IGVycik7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBmaWxlbWFwX3dyaXRl
X2FuZF93YWl0KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiBmaWxlbWFwX3dyaXRlX2FuZF93YWl0X3JhbmdlKG1hcHBpbmcsIDAsICgobG9uZyBs
b25nKSh+MFVMTCA+PiAxKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBmaWxlX2ZkYXRhd2FpdF9yYW5n
ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IGxzdGFydCwKMTQ0NzQ6ICAgICAgIGxvZmZfdCBs
ZW5kKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1
bHRfXykpIGZpbGVfY2hlY2tfYW5kX2FkdmFuY2Vfd2JfZXJyKHN0cnVjdCBmaWxlICpmaWxlKTsK
MTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGZpbGVfd3JpdGVfYW5kX3dhaXRfcmFuZ2Uoc3RydWN0IGZpbGUgKmZpbGUsCjE0NDc0OiAgICAg
ICBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZmlsZV93cml0
ZV9hbmRfd2FpdChzdHJ1Y3QgZmlsZSAqZmlsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZmls
ZV93cml0ZV9hbmRfd2FpdF9yYW5nZShmaWxlLCAwLCAoKGxvbmcgbG9uZykofjBVTEwgPj4gMSkp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjc5MSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGZpbGVtYXBfc2V0X3diX2VycihzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgaW50
IGVycikKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGVy
ciksIDApKQoxNDQ3NDogICBfX2ZpbGVtYXBfc2V0X3diX2VycihtYXBwaW5nLCBlcnIpOwoxNDQ3
NDogfQoxNDQ3NDogIyAyODA4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBmaWxl
bWFwX2NoZWNrX3diX2VycihzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKMTQ0NzQ6ICAg
ICAgZXJyc2VxX3Qgc2luY2UpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGVycnNlcV9jaGVjaygm
bWFwcGluZy0+d2JfZXJyLCBzaW5jZSk7CjE0NDc0OiB9CjE0NDc0OiAjIDI4MjEgIi4vaW5jbHVk
ZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgZXJyc2VxX3QgZmlsZW1hcF9zYW1wbGVfd2JfZXJyKHN0cnVj
dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBlcnJzZXFf
c2FtcGxlKCZtYXBwaW5nLT53Yl9lcnIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZmls
ZW1hcF9ucl90aHBzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogCjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgZmlsZW1hcF9ucl90aHBzX2luYyhzdHJ1Y3QgYWRkcmVzc19zcGFj
ZSAqbWFwcGluZykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAoeyBp
bnQgX19yZXRfd2Fybl9vbiA9ICEhKDEpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93
YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0
ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIy
Olx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJc
dCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29y
ZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50
cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImlu
Y2x1ZGUvbGludXgvZnMuaCIpLCAiaSIgKDI4NDApLCAiaSIgKCgxIDw8IDApfCgoMSA8PCAxKSB8
ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAo
MCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVh
Y2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJp
IiAoMzApKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5f
b24pLCAwKTsgfSk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmaWxlbWFw
X25yX3RocHNfZGVjKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICh7IGludCBfX3JldF93YXJuX29uID0gISEoMSk7
IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFz
bSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNo
c2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJi
IiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIi
ICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6Omxp
bmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYisl
YzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9mcy5oIiksICJpIiAo
Mjg0OSksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVv
ZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6
XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAt
IC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgzMSkpOyB9KTsgfSB3aGlsZSAoMCk7
IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6IAoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHZmc19mc3luY19yYW5nZShzdHJ1Y3QgZmls
ZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLAoxNDQ3NDogICAgICAgaW50IGRhdGFz
eW5jKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdmZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQg
ZGF0YXN5bmMpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHN5bmNfZmlsZV9yYW5nZShzdHJ1
Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IG5ieXRlcywKMTQ0NzQ6ICAgICB1
bnNpZ25lZCBpbnQgZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgc3NpemVfdCBnZW5lcmljX3dyaXRlX3N5bmMoc3RydWN0IGtpb2Ni
ICppb2NiLCBzc2l6ZV90IGNvdW50KQoxNDQ3NDogewoxNDQ3NDogIGlmIChpb2NiLT5raV9mbGFn
cyAmICgxIDw8IDQpKSB7CjE0NDc0OiAgIGludCByZXQgPSB2ZnNfZnN5bmNfcmFuZ2UoaW9jYi0+
a2lfZmlscCwKMTQ0NzQ6ICAgICBpb2NiLT5raV9wb3MgLSBjb3VudCwgaW9jYi0+a2lfcG9zIC0g
MSwKMTQ0NzQ6ICAgICAoaW9jYi0+a2lfZmxhZ3MgJiAoMSA8PCA1KSkgPyAwIDogMSk7CjE0NDc0
OiAgIGlmIChyZXQpCjE0NDc0OiAgICByZXR1cm4gcmV0OwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiBjb3VudDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZW1l
cmdlbmN5X3N5bmModm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBlbWVyZ2VuY3lfcmVtb3VudCh2
b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGJtYXAoc3RydWN0IGlub2Rl
ICppbm9kZSwgc2VjdG9yX3QgKmJsb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBub3RpZnlfY2hhbmdl
KHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlhdHRyICosIHN0cnVjdCBpbm9kZSAqKik7CjE0NDc0
OiBleHRlcm4gaW50IGlub2RlX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICosIGludCk7CjE0NDc0
OiBleHRlcm4gaW50IGdlbmVyaWNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKMTQ0
NzQ6IGV4dGVybiBpbnQgX19jaGVja19zdGlja3koc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBp
bm9kZSAqaW5vZGUpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGV4ZWN1dGVfb2soc3RydWN0IGlub2Rl
ICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKGlub2RlLT5pX21vZGUgJiAoMDAxMDB8
MDAwMTB8MDAwMDEpKSB8fCAoKChpbm9kZS0+aV9tb2RlKSAmIDAwMTcwMDAwKSA9PSAwMDQwMDAw
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmaWxlX3N0YXJ0X3dyaXRlKHN0cnVjdCBm
aWxlICpmaWxlKQoxNDQ3NDogewoxNDQ3NDogIGlmICghKCgoZmlsZV9pbm9kZShmaWxlKS0+aV9t
b2RlKSAmIDAwMTcwMDAwKSA9PSAwMTAwMDAwKSkKMTQ0NzQ6ICAgcmV0dXJuOwoxNDQ3NDogIF9f
c2Jfc3RhcnRfd3JpdGUoZmlsZV9pbm9kZShmaWxlKS0+aV9zYiwgU0JfRlJFRVpFX1dSSVRFLCB0
cnVlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBmaWxlX3N0YXJ0X3dyaXRlX3RyeWxv
Y2soc3RydWN0IGZpbGUgKmZpbGUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKCEoKChmaWxlX2lub2Rl
KGZpbGUpLT5pX21vZGUpICYgMDAxNzAwMDApID09IDAxMDAwMDApKQoxNDQ3NDogICByZXR1cm4g
dHJ1ZTsKMTQ0NzQ6ICByZXR1cm4gX19zYl9zdGFydF93cml0ZShmaWxlX2lub2RlKGZpbGUpLT5p
X3NiLCBTQl9GUkVFWkVfV1JJVEUsIGZhbHNlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBmaWxlX2VuZF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAo
ISgoKGZpbGVfaW5vZGUoZmlsZSktPmlfbW9kZSkgJiAwMDE3MDAwMCkgPT0gMDEwMDAwMCkpCjE0
NDc0OiAgIHJldHVybjsKMTQ0NzQ6ICBfX3NiX2VuZF93cml0ZShmaWxlX2lub2RlKGZpbGUpLT5p
X3NiLCBTQl9GUkVFWkVfV1JJVEUpOwoxNDQ3NDogfQoxNDQ3NDogIyAyOTM3ICIuL2luY2x1ZGUv
bGludXgvZnMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludCBnZXRfd3JpdGVfYWNjZXNzKHN0cnVjdCBpbm9kZSAqaW5v
ZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19pbmNfdW5sZXNzX25lZ2F0aXZlKCZp
bm9kZS0+aV93cml0ZWNvdW50KSA/IDAgOiAtMjY7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZGVueV93
cml0ZV9hY2Nlc3Moc3RydWN0IGZpbGUgKmZpbGUpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZmlsZSk7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19kZWNf
dW5sZXNzX3Bvc2l0aXZlKCZpbm9kZS0+aV93cml0ZWNvdW50KSA/IDAgOiAtMjY7CjE0NDc0OiB9
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHB1dF93cml0ZV9hY2Nlc3Moc3RydWN0IGlub2RlICogaW5vZGUpCjE0NDc0
OiB7CjE0NDc0OiAgYXRvbWljX2RlYygmaW5vZGUtPmlfd3JpdGVjb3VudCk7CjE0NDc0OiB9CjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGFsbG93X3dyaXRlX2FjY2VzcyhzdHJ1Y3QgZmlsZSAqZmlsZSkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpZiAoZmlsZSkKMTQ0NzQ6ICAgYXRvbWljX2luYygmZmlsZV9pbm9kZShmaWxlKS0+
aV93cml0ZWNvdW50KTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaW5vZGVfaXNfb3Blbl9mb3Jfd3Jp
dGUoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRv
bWljX3JlYWQoJmlub2RlLT5pX3dyaXRlY291bnQpID4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGlfcmVhZGNvdW50X2RlYyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQoxNDQ3
NDogewoxNDQ3NDogIGRvIHsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoIWF0b21pY19yZWFkKCZp
bm9kZS0+aV9yZWFkY291bnQpKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUo
IjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUs
XCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1
Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6Zmls
ZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIg
Ilx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIg
OiA6ICJpIiAoImluY2x1ZGUvbGludXgvZnMuaCIpLCAiaSIgKDI5NjMpLCAiaSIgKDApLCAiaSIg
KHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBhc20gdm9s
YXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxlXG5cdCIg
Ii5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMzIpKTsgfSk7
IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgwKTsg
fSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGF0b21pY19kZWMoJmlub2RlLT5pX3Jl
YWRjb3VudCk7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlfcmVhZGNvdW50X2luYyhzdHJ1Y3QgaW5v
ZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3NDogIGF0b21pY19pbmMoJmlub2RlLT5pX3JlYWRjb3Vu
dCk7CjE0NDc0OiB9CjE0NDc0OiAjIDI5ODAgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDog
ZXh0ZXJuIGludCBkb19waXBlX2ZsYWdzKGludCAqLCBpbnQpOwoxNDQ3NDogIyAyOTk2ICIuL2lu
Y2x1ZGUvbGludXgvZnMuaCIKMTQ0NzQ6IGVudW0ga2VybmVsX3JlYWRfZmlsZV9pZCB7CjE0NDc0
OiAgUkVBRElOR19VTktOT1dOLCBSRUFESU5HX0ZJUk1XQVJFLCBSRUFESU5HX0ZJUk1XQVJFX1BS
RUFMTE9DX0JVRkZFUiwgUkVBRElOR19NT0RVTEUsIFJFQURJTkdfS0VYRUNfSU1BR0UsIFJFQURJ
TkdfS0VYRUNfSU5JVFJBTUZTLCBSRUFESU5HX1BPTElDWSwgUkVBRElOR19YNTA5X0NFUlRJRklD
QVRFLCBSRUFESU5HX01BWF9JRCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga2VybmVsX3JlYWRfZmlsZV9zdHJbXSA9IHsKMTQ0NzQ6ICAidW5rbm93
biIsICJmaXJtd2FyZSIsICJmaXJtd2FyZSIsICJrZXJuZWwtbW9kdWxlIiwgImtleGVjLWltYWdl
IiwgImtleGVjLWluaXRyYW1mcyIsICJzZWN1cml0eS1wb2xpY3kiLCAieDUwOS1jZXJ0aWZpY2F0
ZSIsICIiLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY29uc3QgY2hhciAqa2VybmVsX3JlYWRf
ZmlsZV9pZF9zdHIoZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkIGlkKQoxNDQ3NDogewoxNDQ3NDog
IGlmICgodW5zaWduZWQpaWQgPj0gUkVBRElOR19NQVhfSUQpCjE0NDc0OiAgIHJldHVybiBrZXJu
ZWxfcmVhZF9maWxlX3N0cltSRUFESU5HX1VOS05PV05dOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJu
IGtlcm5lbF9yZWFkX2ZpbGVfc3RyW2lkXTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGludCBrZXJuZWxfcmVhZF9maWxlKHN0cnVjdCBmaWxlICosIHZvaWQgKiosIGxvZmZfdCAqLCBs
b2ZmX3QsCjE0NDc0OiAgICAgICAgZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkKTsKMTQ0NzQ6IGV4
dGVybiBpbnQga2VybmVsX3JlYWRfZmlsZV9mcm9tX3BhdGgoY29uc3QgY2hhciAqLCB2b2lkICoq
LCBsb2ZmX3QgKiwgbG9mZl90LAoxNDQ3NDogICAgICAgICAgIGVudW0ga2VybmVsX3JlYWRfZmls
ZV9pZCk7CjE0NDc0OiBleHRlcm4gaW50IGtlcm5lbF9yZWFkX2ZpbGVfZnJvbV9mZChpbnQsIHZv
aWQgKiosIGxvZmZfdCAqLCBsb2ZmX3QsCjE0NDc0OiAgICAgICAgIGVudW0ga2VybmVsX3JlYWRf
ZmlsZV9pZCk7CjE0NDc0OiBleHRlcm4gc3NpemVfdCBrZXJuZWxfcmVhZChzdHJ1Y3QgZmlsZSAq
LCB2b2lkICosIHNpemVfdCwgbG9mZl90ICopOwoxNDQ3NDogZXh0ZXJuIHNzaXplX3Qga2VybmVs
X3dyaXRlKHN0cnVjdCBmaWxlICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CjE0
NDc0OiBleHRlcm4gc3NpemVfdCBfX2tlcm5lbF93cml0ZShzdHJ1Y3QgZmlsZSAqLCBjb25zdCB2
b2lkICosIHNpemVfdCwgbG9mZl90ICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBmaWxlICogb3Bl
bl9leGVjKGNvbnN0IGNoYXIgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wg
aXNfc3ViZGlyKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6IGV4dGVy
biBib29sIHBhdGhfaXNfdW5kZXIoY29uc3Qgc3RydWN0IHBhdGggKiwgY29uc3Qgc3RydWN0IHBh
dGggKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjaGFyICpmaWxlX3BhdGgoc3RydWN0IGZpbGUg
KiwgY2hhciAqLCBpbnQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gbG9mZl90IGRlZmF1bHRfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zm
c2V0LCBpbnQgd2hlbmNlKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGxvZmZfdCB2ZnNfbGxzZWVr
KHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGludCBpbm9kZV9pbml0X2Fsd2F5cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwg
c3RydWN0IGlub2RlICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaW5vZGVfaW5pdF9vbmNlKHN0cnVj
dCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGFkZHJlc3Nfc3BhY2VfaW5pdF9vbmNlKHN0
cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaW5vZGUg
KiBpZ3JhYihzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiBleHRlcm4gaW5vX3QgaXVuaXF1ZShzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKiwgaW5vX3QpOwoxNDQ3NDogZXh0ZXJuIGludCBpbm9kZV9uZWVkc19z
eW5jKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoxNDQ3NDogZXh0ZXJuIGludCBnZW5lcmljX2RlbGV0
ZV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBnZW5lcmljX2Ryb3BfaW5v
ZGUoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gIWlub2RlLT5p
X25saW5rIHx8IGlub2RlX3VuaGFzaGVkKGlub2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHN0cnVjdCBpbm9kZSAqaWxvb2t1cDVfbm93YWl0KHN0cnVjdCBzdXBlcl9ibG9jayAq
c2IsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgaGFzaHZhbCwgaW50ICgqdGVzdCkoc3RydWN0IGlu
b2RlICosIHZvaWQgKiksCjE0NDc0OiAgIHZvaWQgKmRhdGEpOwoxNDQ3NDogZXh0ZXJuIHN0cnVj
dCBpbm9kZSAqaWxvb2t1cDUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQgbG9uZyBo
YXNodmFsLAoxNDQ3NDogICBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwgdm9pZCAqKSwgdm9p
ZCAqZGF0YSk7CjE0NDc0OiBleHRlcm4gc3RydWN0IGlub2RlICppbG9va3VwKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IsIHVuc2lnbmVkIGxvbmcgaW5vKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0
cnVjdCBpbm9kZSAqaW5vZGVfaW5zZXJ0NShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBs
b25nIGhhc2h2YWwsCjE0NDc0OiAgIGludCAoKnRlc3QpKHN0cnVjdCBpbm9kZSAqLCB2b2lkICop
LAoxNDQ3NDogICBpbnQgKCpzZXQpKHN0cnVjdCBpbm9kZSAqLCB2b2lkICopLAoxNDQ3NDogICB2
b2lkICpkYXRhKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaW5vZGUgKiBpZ2V0NV9sb2NrZWQoc3Ry
dWN0IHN1cGVyX2Jsb2NrICosIHVuc2lnbmVkIGxvbmcsIGludCAoKnRlc3QpKHN0cnVjdCBpbm9k
ZSAqLCB2b2lkICopLCBpbnQgKCpzZXQpKHN0cnVjdCBpbm9kZSAqLCB2b2lkICopLCB2b2lkICop
OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBpbm9kZSAqIGlnZXRfbG9ja2VkKHN0cnVjdCBzdXBlcl9i
bG9jayAqLCB1bnNpZ25lZCBsb25nKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaW5vZGUgKmZpbmRf
aW5vZGVfbm93YWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqLAoxNDQ3NDogICAgICAgICAgICB1bnNp
Z25lZCBsb25nLAoxNDQ3NDogICAgICAgICAgICBpbnQgKCptYXRjaCkoc3RydWN0IGlub2RlICos
CjE0NDc0OiAgICAgICAgICAgdW5zaWduZWQgbG9uZywgdm9pZCAqKSwKMTQ0NzQ6ICAgICAgICAg
ICAgdm9pZCAqZGF0YSk7CjE0NDc0OiBleHRlcm4gaW50IGluc2VydF9pbm9kZV9sb2NrZWQ0KHN0
cnVjdCBpbm9kZSAqLCB1bnNpZ25lZCBsb25nLCBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwg
dm9pZCAqKSwgdm9pZCAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgaW5zZXJ0X2lub2RlX2xvY2tlZChz
dHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxvY2tk
ZXBfYW5ub3RhdGVfaW5vZGVfbXV0ZXhfa2V5KHN0cnVjdCBpbm9kZSAqaW5vZGUpIHsgfTsKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgdW5sb2NrX25ld19pbm9kZShzdHJ1Y3QgaW5vZGUgKik7
CjE0NDc0OiBleHRlcm4gdm9pZCBkaXNjYXJkX25ld19pbm9kZShzdHJ1Y3QgaW5vZGUgKik7CjE0
NDc0OiBleHRlcm4gdW5zaWduZWQgaW50IGdldF9uZXh0X2lubyh2b2lkKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIGV2aWN0X2lub2RlcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHZvaWQgX19pZ2V0KHN0cnVjdCBpbm9kZSAqIGlub2RlKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIGlnZXRfZmFpbGVkKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNs
ZWFyX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fZGVzdHJveV9p
bm9kZShzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGlub2RlICpuZXdfaW5v
ZGVfcHNldWRvKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBp
bm9kZSAqbmV3X2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgZnJlZV9pbm9kZV9ub25yY3Uoc3RydWN0IGlub2RlICppbm9kZSk7CjE0NDc0OiBleHRlcm4g
aW50IHNob3VsZF9yZW1vdmVfc3VpZChzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3NDogZXh0ZXJuIGlu
dCBmaWxlX3JlbW92ZV9wcml2cyhzdHJ1Y3QgZmlsZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHZvaWQgX19pbnNlcnRfaW5vZGVfaGFzaChzdHJ1Y3QgaW5vZGUgKiwgdW5zaWduZWQgbG9uZyBo
YXNodmFsKTsKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgaW5zZXJ0X2lub2RlX2hhc2goc3RydWN0IGlub2RlICppbm9k
ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2luc2VydF9pbm9kZV9oYXNoKGlub2RlLCBpbm9kZS0+aV9p
bm8pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBfX3JlbW92ZV9pbm9kZV9o
YXNoKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmVtb3ZlX2lub2RlX2hhc2goc3RydWN0
IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIWlub2RlX3VuaGFzaGVkKGlub2Rl
KSAmJiAhaGxpc3RfZmFrZSgmaW5vZGUtPmlfaGFzaCkpCjE0NDc0OiAgIF9fcmVtb3ZlX2lub2Rl
X2hhc2goaW5vZGUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBpbm9kZV9z
Yl9saXN0X2FkZChzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gaW50IGJkZXZfcmVhZF9vbmx5KHN0cnVjdCBibG9ja19kZXZpY2UgKik7CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBpbnQgc2V0X2Jsb2Nrc2l6ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICosIGlu
dCk7CjE0NDc0OiBleHRlcm4gaW50IHNiX3NldF9ibG9ja3NpemUoc3RydWN0IHN1cGVyX2Jsb2Nr
ICosIGludCk7CjE0NDc0OiBleHRlcm4gaW50IHNiX21pbl9ibG9ja3NpemUoc3RydWN0IHN1cGVy
X2Jsb2NrICosIGludCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZ2VuZXJpY19maWxlX21t
YXAoc3RydWN0IGZpbGUgKiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICopOwoxNDQ3NDogZXh0ZXJu
IGludCBnZW5lcmljX2ZpbGVfcmVhZG9ubHlfbW1hcChzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qgdm1f
YXJlYV9zdHJ1Y3QgKik7CjE0NDc0OiBleHRlcm4gc3NpemVfdCBnZW5lcmljX3dyaXRlX2NoZWNr
cyhzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGlvdl9pdGVyICopOwoxNDQ3NDogZXh0ZXJuIGludCBn
ZW5lcmljX3JlbWFwX2NoZWNrcyhzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwK
MTQ0NzQ6ICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LAoxNDQ3NDog
ICAgIGxvZmZfdCAqY291bnQsIHVuc2lnbmVkIGludCByZW1hcF9mbGFncyk7CjE0NDc0OiBleHRl
cm4gaW50IGdlbmVyaWNfZmlsZV9yd19jaGVja3Moc3RydWN0IGZpbGUgKmZpbGVfaW4sIHN0cnVj
dCBmaWxlICpmaWxlX291dCk7CjE0NDc0OiBleHRlcm4gaW50IGdlbmVyaWNfY29weV9maWxlX2No
ZWNrcyhzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwKMTQ0NzQ6ICAgICAgICAg
c3RydWN0IGZpbGUgKmZpbGVfb3V0LCBsb2ZmX3QgcG9zX291dCwKMTQ0NzQ6ICAgICAgICAgc2l6
ZV90ICpjb3VudCwgdW5zaWduZWQgaW50IGZsYWdzKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IGdl
bmVyaWNfZmlsZV9yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICosIHN0cnVjdCBpb3ZfaXRlciAqKTsK
MTQ0NzQ6IGV4dGVybiBzc2l6ZV90IF9fZ2VuZXJpY19maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtp
b2NiICosIHN0cnVjdCBpb3ZfaXRlciAqKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IGdlbmVyaWNf
ZmlsZV93cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgaW92X2l0ZXIgKik7CjE0NDc0
OiBleHRlcm4gc3NpemVfdCBnZW5lcmljX2ZpbGVfZGlyZWN0X3dyaXRlKHN0cnVjdCBraW9jYiAq
LCBzdHJ1Y3QgaW92X2l0ZXIgKik7CjE0NDc0OiBleHRlcm4gc3NpemVfdCBnZW5lcmljX3BlcmZv
cm1fd3JpdGUoc3RydWN0IGZpbGUgKiwgc3RydWN0IGlvdl9pdGVyICosIGxvZmZfdCk7CjE0NDc0
OiAKMTQ0NzQ6IHNzaXplX3QgdmZzX2l0ZXJfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0
IGlvdl9pdGVyICppdGVyLCBsb2ZmX3QgKnBwb3MsCjE0NDc0OiAgIHJ3Zl90IGZsYWdzKTsKMTQ0
NzQ6IHNzaXplX3QgdmZzX2l0ZXJfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBpb3Zf
aXRlciAqaXRlciwgbG9mZl90ICpwcG9zLAoxNDQ3NDogICByd2ZfdCBmbGFncyk7CjE0NDc0OiBz
c2l6ZV90IHZmc19pb2NiX2l0ZXJfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGtpb2Ni
ICppb2NiLAoxNDQ3NDogICAgICAgc3RydWN0IGlvdl9pdGVyICppdGVyKTsKMTQ0NzQ6IHNzaXpl
X3QgdmZzX2lvY2JfaXRlcl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGtpb2NiICpp
b2NiLAoxNDQ3NDogICAgICAgIHN0cnVjdCBpb3ZfaXRlciAqaXRlcik7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIHNzaXplX3QgYmxrZGV2X3JlYWRfaXRlcihzdHJ1Y3Qga2lvY2IgKmlv
Y2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pOwoxNDQ3NDogZXh0ZXJuIHNzaXplX3QgYmxrZGV2X3dy
aXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pOwoxNDQ3
NDogZXh0ZXJuIGludCBibGtkZXZfZnN5bmMoc3RydWN0IGZpbGUgKmZpbHAsIGxvZmZfdCBzdGFy
dCwgbG9mZl90IGVuZCwKMTQ0NzQ6ICAgIGludCBkYXRhc3luYyk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBibG9ja19zeW5jX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBzc2l6ZV90IGdlbmVyaWNfZmlsZV9zcGxpY2VfcmVhZChzdHJ1Y3QgZmlsZSAq
LCBsb2ZmX3QgKiwKMTQ0NzQ6ICAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqLCBzaXplX3QsIHVu
c2lnbmVkIGludCk7CjE0NDc0OiBleHRlcm4gc3NpemVfdCBpdGVyX2ZpbGVfc3BsaWNlX3dyaXRl
KHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKiwKMTQ0NzQ6ICAgc3RydWN0IGZpbGUgKiwgbG9mZl90
ICosIHNpemVfdCwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IGdlbmVyaWNf
c3BsaWNlX3NlbmRwYWdlKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsCjE0NDc0OiAgIHN0
cnVjdCBmaWxlICpvdXQsIGxvZmZfdCAqLCBzaXplX3QgbGVuLCB1bnNpZ25lZCBpbnQgZmxhZ3Mp
OwoxNDQ3NDogZXh0ZXJuIGxvbmcgZG9fc3BsaWNlX2RpcmVjdChzdHJ1Y3QgZmlsZSAqaW4sIGxv
ZmZfdCAqcHBvcywgc3RydWN0IGZpbGUgKm91dCwKMTQ0NzQ6ICAgbG9mZl90ICpvcG9zLCBzaXpl
X3QgbGVuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biB2b2lkCjE0NDc0OiBmaWxlX3JhX3N0YXRlX2luaXQoc3RydWN0IGZpbGVfcmFfc3RhdGUgKnJh
LCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyk7CjE0NDc0OiBleHRlcm4gbG9mZl90IG5v
b3BfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKTsK
MTQ0NzQ6IGV4dGVybiBsb2ZmX3Qgbm9fbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qg
b2Zmc2V0LCBpbnQgd2hlbmNlKTsKMTQ0NzQ6IGV4dGVybiBsb2ZmX3QgdmZzX3NldHBvcyhzdHJ1
Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IG1heHNpemUpOwoxNDQ3NDogZXh0
ZXJuIGxvZmZfdCBnZW5lcmljX2ZpbGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qg
b2Zmc2V0LCBpbnQgd2hlbmNlKTsKMTQ0NzQ6IGV4dGVybiBsb2ZmX3QgZ2VuZXJpY19maWxlX2xs
c2Vla19zaXplKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LAoxNDQ3NDogICBpbnQg
d2hlbmNlLCBsb2ZmX3QgbWF4c2l6ZSwgbG9mZl90IGVvZik7CjE0NDc0OiBleHRlcm4gbG9mZl90
IGZpeGVkX3NpemVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LAoxNDQ3
NDogICBpbnQgd2hlbmNlLCBsb2ZmX3Qgc2l6ZSk7CjE0NDc0OiBleHRlcm4gbG9mZl90IG5vX3Nl
ZWtfZW5kX2xsc2Vla19zaXplKHN0cnVjdCBmaWxlICosIGxvZmZfdCwgaW50LCBsb2ZmX3QpOwox
NDQ3NDogZXh0ZXJuIGxvZmZfdCBub19zZWVrX2VuZF9sbHNlZWsoc3RydWN0IGZpbGUgKiwgbG9m
Zl90LCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVfb3BlbihzdHJ1Y3QgaW5v
ZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKTsKMTQ0NzQ6IGV4dGVybiBpbnQgbm9uc2Vl
a2FibGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKTsKMTQ0
NzQ6IGV4dGVybiBpbnQgc3RyZWFtX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBm
aWxlICogZmlscCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB2b2lkIChkaW9fc3Vi
bWl0X3QpKHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IGlub2RlICppbm9kZSwKMTQ0NzQ6ICAgICAg
ICBsb2ZmX3QgZmlsZV9vZmZzZXQpOwoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6IAoxNDQ3
NDogIERJT19MT0NLSU5HID0gMHgwMSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRElPX1NLSVBf
SE9MRVMgPSAweDAyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkaW9fZW5kX2lvKHN0
cnVjdCBiaW8gKmJpbyk7CjE0NDc0OiAKMTQ0NzQ6IHNzaXplX3QgX19ibG9ja2Rldl9kaXJlY3Rf
SU8oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAoxNDQ3NDogICAgICAg
ICBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIsCjE0NDc0
OiAgICAgICAgIGdldF9ibG9ja190IGdldF9ibG9jaywKMTQ0NzQ6ICAgICAgICAgZGlvX2lvZG9u
ZV90IGVuZF9pbywgZGlvX3N1Ym1pdF90IHN1Ym1pdF9pbywKMTQ0NzQ6ICAgICAgICAgaW50IGZs
YWdzKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3NpemVfdCBibG9ja2Rldl9kaXJlY3RfSU8oc3RydWN0IGtp
b2NiICppb2NiLAoxNDQ3NDogICAgICAgc3RydWN0IGlub2RlICppbm9kZSwKMTQ0NzQ6ICAgICAg
IHN0cnVjdCBpb3ZfaXRlciAqaXRlciwKMTQ0NzQ6ICAgICAgIGdldF9ibG9ja190IGdldF9ibG9j
aykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19ibG9ja2Rldl9kaXJlY3RfSU8oaW9jYiwgaW5v
ZGUsIGlub2RlLT5pX3NiLT5zX2JkZXYsIGl0ZXIsCjE0NDc0OiAgICBnZXRfYmxvY2ssICgodm9p
ZCAqKTApLCAoKHZvaWQgKikwKSwgRElPX0xPQ0tJTkcgfCBESU9fU0tJUF9IT0xFUyk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBpbm9kZV9kaW9fd2FpdChzdHJ1Y3QgaW5v
ZGUgKmlub2RlKTsKMTQ0NzQ6ICMgMzIwOCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGlub2RlX2Rpb19iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3NDog
IGF0b21pY19pbmMoJmlub2RlLT5pX2Rpb19jb3VudCk7CjE0NDc0OiB9CjE0NDc0OiAjIDMyMjAg
Ii4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9kaW9fZW5kKHN0cnVjdCBp
bm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmlu
b2RlLT5pX2Rpb19jb3VudCkpCjE0NDc0OiAgIHdha2VfdXBfYml0KCZpbm9kZS0+aV9zdGF0ZSwg
OSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQg
ZGlvX3dhcm5fc3RhbGVfcGFnZWNhY2hlKHN0cnVjdCBmaWxlICpmaWxwKTsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHZvaWQgaW5vZGVfc2V0X2ZsYWdzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2ln
bmVkIGludCBmbGFncywKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBpbnQgbWFzayk7CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGdlbmVyaWNfcm9fZm9w
czsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcmVhZGxpbmtfY29w
eShjaGFyICosIGludCwgY29uc3QgY2hhciAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcGFnZV9yZWFk
bGluayhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBj
aGFyICpwYWdlX2dldF9saW5rKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICosCjE0NDc0
OiAgICAgIHN0cnVjdCBkZWxheWVkX2NhbGwgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBwYWdlX3B1
dF9saW5rKHZvaWQgKik7CjE0NDc0OiBleHRlcm4gaW50IF9fcGFnZV9zeW1saW5rKHN0cnVjdCBp
bm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKnN5bW5hbWUsIGludCBsZW4sCjE0NDc0OiAgIGludCBu
b2ZzKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcGFnZV9zeW1saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUs
IGNvbnN0IGNoYXIgKnN5bW5hbWUsIGludCBsZW4pOwoxNDQ3NDogZXh0ZXJuIGNvbnN0IHN0cnVj
dCBpbm9kZV9vcGVyYXRpb25zIHBhZ2Vfc3ltbGlua19pbm9kZV9vcGVyYXRpb25zOwoxNDQ3NDog
ZXh0ZXJuIHZvaWQga2ZyZWVfbGluayh2b2lkICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZ2VuZXJp
Y19maWxsYXR0cihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGtzdGF0ICopOwoxNDQ3NDogZXh0ZXJu
IGludCB2ZnNfZ2V0YXR0cl9ub3NlYyhjb25zdCBzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3Qga3N0YXQg
KiwgdTMyLCB1bnNpZ25lZCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfZ2V0YXR0cihjb25z
dCBzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3Qga3N0YXQgKiwgdTMyLCB1bnNpZ25lZCBpbnQpOwoxNDQ3
NDogdm9pZCBfX2lub2RlX2FkZF9ieXRlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgYnl0
ZXMpOwoxNDQ3NDogdm9pZCBpbm9kZV9hZGRfYnl0ZXMoc3RydWN0IGlub2RlICppbm9kZSwgbG9m
Zl90IGJ5dGVzKTsKMTQ0NzQ6IHZvaWQgX19pbm9kZV9zdWJfYnl0ZXMoc3RydWN0IGlub2RlICpp
bm9kZSwgbG9mZl90IGJ5dGVzKTsKMTQ0NzQ6IHZvaWQgaW5vZGVfc3ViX2J5dGVzKHN0cnVjdCBp
bm9kZSAqaW5vZGUsIGxvZmZfdCBieXRlcyk7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb2ZmX3QgX19pbm9kZV9nZXRfYnl0
ZXMoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCgobG9mZl90
KWlub2RlLT5pX2Jsb2NrcykgPDwgOSkgKyBpbm9kZS0+aV9ieXRlczsKMTQ0NzQ6IH0KMTQ0NzQ6
IGxvZmZfdCBpbm9kZV9nZXRfYnl0ZXMoc3RydWN0IGlub2RlICppbm9kZSk7CjE0NDc0OiB2b2lk
IGlub2RlX3NldF9ieXRlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgYnl0ZXMpOwoxNDQ3
NDogY29uc3QgY2hhciAqc2ltcGxlX2dldF9saW5rKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlu
b2RlICosCjE0NDc0OiAgICAgICAgc3RydWN0IGRlbGF5ZWRfY2FsbCAqKTsKMTQ0NzQ6IGV4dGVy
biBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBzaW1wbGVfc3ltbGlua19pbm9kZV9vcGVy
YXRpb25zOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGl0ZXJhdGVfZGlyKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCBkaXJfY29udGV4dCAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCB2ZnNf
c3RhdHgoaW50LCBjb25zdCBjaGFyICosIGludCwgc3RydWN0IGtzdGF0ICosIHUzMik7CjE0NDc0
OiBleHRlcm4gaW50IHZmc19zdGF0eF9mZCh1bnNpZ25lZCBpbnQsIHN0cnVjdCBrc3RhdCAqLCB1
MzIsIHVuc2lnbmVkIGludCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB2ZnNfc3RhdChjb25zdCBjaGFy
ICpmaWxlbmFtZSwgc3RydWN0IGtzdGF0ICpzdGF0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB2
ZnNfc3RhdHgoLTEwMCwgZmlsZW5hbWUsIDB4ODAwLAoxNDQ3NDogICAgIHN0YXQsIDB4MDAwMDA3
ZmZVKTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB2ZnNfbHN0YXQoY29uc3QgY2hhciAqbmFtZSwgc3Ry
dWN0IGtzdGF0ICpzdGF0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB2ZnNfc3RhdHgoLTEwMCwg
bmFtZSwgMHgxMDAgfCAweDgwMCwKMTQ0NzQ6ICAgICBzdGF0LCAweDAwMDAwN2ZmVSk7CjE0NDc0
OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgdmZzX2ZzdGF0YXQoaW50IGRmZCwgY29uc3QgY2hhciAqZmlsZW5hbWUs
CjE0NDc0OiAgICAgICAgICBzdHJ1Y3Qga3N0YXQgKnN0YXQsIGludCBmbGFncykKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gdmZzX3N0YXR4KGRmZCwgZmlsZW5hbWUsIGZsYWdzIHwgMHg4MDAsCjE0
NDc0OiAgICAgc3RhdCwgMHgwMDAwMDdmZlUpOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHZmc19mc3Rh
dChpbnQgZmQsIHN0cnVjdCBrc3RhdCAqc3RhdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdmZz
X3N0YXR4X2ZkKGZkLCBzdGF0LCAweDAwMDAwN2ZmVSwgMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IGNoYXIgKnZmc19nZXRfbGluayhzdHJ1Y3QgZGVudHJ5
ICosIHN0cnVjdCBkZWxheWVkX2NhbGwgKik7CjE0NDc0OiBleHRlcm4gaW50IHZmc19yZWFkbGlu
ayhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGlu
dCBfX2dlbmVyaWNfYmxvY2tfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsCjE0NDc0OiAgICAg
ICBzdHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvICpmaWVpbmZvLAoxNDQ3NDogICAgICAgbG9mZl90
IHN0YXJ0LCBsb2ZmX3QgbGVuLAoxNDQ3NDogICAgICAgZ2V0X2Jsb2NrX3QgKmdldF9ibG9jayk7
CjE0NDc0OiBleHRlcm4gaW50IGdlbmVyaWNfYmxvY2tfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5v
ZGUsCjE0NDc0OiAgICAgc3RydWN0IGZpZW1hcF9leHRlbnRfaW5mbyAqZmllaW5mbywgdTY0IHN0
YXJ0LAoxNDQ3NDogICAgIHU2NCBsZW4sIGdldF9ibG9ja190ICpnZXRfYmxvY2spOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmdldF9maWxlc3lzdGVtKHN0
cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmcyk7CjE0NDc0OiBleHRlcm4gdm9pZCBwdXRfZmlsZXN5
c3RlbShzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBm
aWxlX3N5c3RlbV90eXBlICpnZXRfZnNfdHlwZShjb25zdCBjaGFyICpuYW1lKTsKMTQ0NzQ6IGV4
dGVybiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmdldF9zdXBlcihzdHJ1Y3QgYmxvY2tfZGV2aWNlICop
OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdXBlcl9ibG9jayAqZ2V0X3N1cGVyX3RoYXdlZChzdHJ1
Y3QgYmxvY2tfZGV2aWNlICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdXBlcl9ibG9jayAqZ2V0
X3N1cGVyX2V4Y2x1c2l2ZV90aGF3ZWQoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldik7CjE0NDc0
OiBleHRlcm4gc3RydWN0IHN1cGVyX2Jsb2NrICpnZXRfYWN0aXZlX3N1cGVyKHN0cnVjdCBibG9j
a19kZXZpY2UgKmJkZXYpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZHJvcF9zdXBlcihzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKnNiKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRyb3Bfc3VwZXJfZXhjbHVzaXZlKHN0
cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaXRlcmF0ZV9zdXBlcnMo
dm9pZCAoKikoc3RydWN0IHN1cGVyX2Jsb2NrICosIHZvaWQgKiksIHZvaWQgKik7CjE0NDc0OiBl
eHRlcm4gdm9pZCBpdGVyYXRlX3N1cGVyc190eXBlKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICos
CjE0NDc0OiAgICAgICAgICAgIHZvaWQgKCopKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB2b2lkICop
LCB2b2lkICopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGRjYWNoZV9kaXJfb3BlbihzdHJ1
Y3QgaW5vZGUgKiwgc3RydWN0IGZpbGUgKik7CjE0NDc0OiBleHRlcm4gaW50IGRjYWNoZV9kaXJf
Y2xvc2Uoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwoxNDQ3NDogZXh0ZXJuIGxvZmZf
dCBkY2FjaGVfZGlyX2xzZWVrKHN0cnVjdCBmaWxlICosIGxvZmZfdCwgaW50KTsKMTQ0NzQ6IGV4
dGVybiBpbnQgZGNhY2hlX3JlYWRkaXIoc3RydWN0IGZpbGUgKiwgc3RydWN0IGRpcl9jb250ZXh0
ICopOwoxNDQ3NDogZXh0ZXJuIGludCBzaW1wbGVfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICosIHN0
cnVjdCBpYXR0ciAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2ltcGxlX2dldGF0dHIoY29uc3Qgc3Ry
dWN0IHBhdGggKiwgc3RydWN0IGtzdGF0ICosIHUzMiwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6IGV4
dGVybiBpbnQgc2ltcGxlX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBrc3RhdGZzICop
OwoxNDQ3NDogZXh0ZXJuIGludCBzaW1wbGVfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1
Y3QgZmlsZSAqZmlsZSk7CjE0NDc0OiBleHRlcm4gaW50IHNpbXBsZV9saW5rKHN0cnVjdCBkZW50
cnkgKiwgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiBleHRlcm4gaW50
IHNpbXBsZV91bmxpbmsoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiBl
eHRlcm4gaW50IHNpbXBsZV9ybWRpcihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsK
MTQ0NzQ6IGV4dGVybiBpbnQgc2ltcGxlX3JlbmFtZShzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRl
bnRyeSAqLAoxNDQ3NDogICAgIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHVuc2ln
bmVkIGludCk7CjE0NDc0OiBleHRlcm4gdm9pZCBzaW1wbGVfcmVjdXJzaXZlX3JlbW92YWwoc3Ry
dWN0IGRlbnRyeSAqLAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAo
KmNhbGxiYWNrKShzdHJ1Y3QgZGVudHJ5ICopKTsKMTQ0NzQ6IGV4dGVybiBpbnQgbm9vcF9mc3lu
YyhzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGxvZmZfdCwgaW50KTsKMTQ0NzQ6IGV4dGVybiBpbnQg
bm9vcF9zZXRfcGFnZV9kaXJ0eShzdHJ1Y3QgcGFnZSAqcGFnZSk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBub29wX2ludmFsaWRhdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb2Zm
c2V0LAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbGVuZ3RoKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90
IG5vb3BfZGlyZWN0X0lPKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVy
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2ltcGxlX2VtcHR5KHN0cnVjdCBkZW50cnkgKik7CjE0NDc0
OiBleHRlcm4gaW50IHNpbXBsZV9yZWFkcGFnZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBh
Z2UgKnBhZ2UpOwoxNDQ3NDogZXh0ZXJuIGludCBzaW1wbGVfd3JpdGVfYmVnaW4oc3RydWN0IGZp
bGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAoxNDQ3NDogICAgbG9mZl90
IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBmbGFncywKMTQ0NzQ6ICAgIHN0cnVjdCBwYWdl
ICoqcGFnZXAsIHZvaWQgKipmc2RhdGEpOwoxNDQ3NDogZXh0ZXJuIGludCBzaW1wbGVfd3JpdGVf
ZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKMTQ0
NzQ6ICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLAoxNDQ3NDog
ICAgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSk7CjE0NDc0OiBleHRlcm4gaW50IGFs
d2F5c19kZWxldGVfZGVudHJ5KGNvbnN0IHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiBleHRlcm4g
c3RydWN0IGlub2RlICphbGxvY19hbm9uX2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKMTQ0
NzQ6IGV4dGVybiBpbnQgc2ltcGxlX25vc2V0bGVhc2Uoc3RydWN0IGZpbGUgKiwgbG9uZywgc3Ry
dWN0IGZpbGVfbG9jayAqKiwgdm9pZCAqKik7CjE0NDc0OiBleHRlcm4gY29uc3Qgc3RydWN0IGRl
bnRyeV9vcGVyYXRpb25zIHNpbXBsZV9kZW50cnlfb3BlcmF0aW9uczsKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHN0cnVjdCBkZW50cnkgKnNpbXBsZV9sb29rdXAoc3RydWN0IGlub2RlICosIHN0cnVj
dCBkZW50cnkgKiwgdW5zaWduZWQgaW50IGZsYWdzKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IGdl
bmVyaWNfcmVhZF9kaXIoc3RydWN0IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsK
MTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHNpbXBsZV9kaXJfb3Bl
cmF0aW9uczsKMTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBzaW1w
bGVfZGlyX2lub2RlX29wZXJhdGlvbnM7CjE0NDc0OiBleHRlcm4gdm9pZCBtYWtlX2VtcHR5X2Rp
cl9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IGV4dGVybiBib29sIGlzX2VtcHR5
X2Rpcl9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IHN0cnVjdCB0cmVlX2Rlc2Ny
IHsgY29uc3QgY2hhciAqbmFtZTsgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqb3BzOyBp
bnQgbW9kZTsgfTsKMTQ0NzQ6IHN0cnVjdCBkZW50cnkgKmRfYWxsb2NfbmFtZShzdHJ1Y3QgZGVu
dHJ5ICosIGNvbnN0IGNoYXIgKik7CjE0NDc0OiBleHRlcm4gaW50IHNpbXBsZV9maWxsX3N1cGVy
KHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCBsb25nLAoxNDQ3NDogICAgICAgICBjb25z
dCBzdHJ1Y3QgdHJlZV9kZXNjciAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2ltcGxlX3Bpbl9mcyhz
dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiptb3VudCwgaW50ICpj
b3VudCk7CjE0NDc0OiBleHRlcm4gdm9pZCBzaW1wbGVfcmVsZWFzZV9mcyhzdHJ1Y3QgdmZzbW91
bnQgKiptb3VudCwgaW50ICpjb3VudCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IHNp
bXBsZV9yZWFkX2Zyb21fYnVmZmVyKHZvaWQgKnRvLCBzaXplX3QgY291bnQsCjE0NDc0OiAgICBs
b2ZmX3QgKnBwb3MsIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBhdmFpbGFibGUpOwoxNDQ3NDog
ZXh0ZXJuIHNzaXplX3Qgc2ltcGxlX3dyaXRlX3RvX2J1ZmZlcih2b2lkICp0bywgc2l6ZV90IGF2
YWlsYWJsZSwgbG9mZl90ICpwcG9zLAoxNDQ3NDogICBjb25zdCB2b2lkICpmcm9tLCBzaXplX3Qg
Y291bnQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fZ2VuZXJpY19maWxlX2ZzeW5jKHN0
cnVjdCBmaWxlICosIGxvZmZfdCwgbG9mZl90LCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGludCBnZW5l
cmljX2ZpbGVfZnN5bmMoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBsb2ZmX3QsIGludCk7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZ2VuZXJpY19jaGVja19hZGRyZXNzYWJsZSh1bnNpZ25lZCwg
dTY0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGJ1ZmZlcl9taWdyYXRlX3Bh
Z2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwKMTQ0NzQ6ICAgICBzdHJ1Y3QgcGFnZSAqLCBzdHJ1
Y3QgcGFnZSAqLAoxNDQ3NDogICAgIGVudW0gbWlncmF0ZV9tb2RlKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgYnVmZmVyX21pZ3JhdGVfcGFnZV9ub3JlZnMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwKMTQ0
NzQ6ICAgICBzdHJ1Y3QgcGFnZSAqLCBzdHJ1Y3QgcGFnZSAqLAoxNDQ3NDogICAgIGVudW0gbWln
cmF0ZV9tb2RlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gaW50IHNldGF0dHJfcHJlcGFyZShzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpYXR0
ciAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgaW5vZGVfbmV3c2l6ZV9vayhjb25zdCBzdHJ1Y3QgaW5v
ZGUgKiwgbG9mZl90IG9mZnNldCk7CjE0NDc0OiBleHRlcm4gdm9pZCBzZXRhdHRyX2NvcHkoc3Ry
dWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3RydWN0IGlhdHRyICphdHRyKTsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIGludCBmaWxlX3VwZGF0ZV90aW1lKHN0cnVjdCBmaWxlICpmaWxlKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBpb19pc19kaXJlY3Qoc3RydWN0IGZpbGUgKmZpbHApCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIChmaWxwLT5mX2ZsYWdzICYgMDAwNDAwMDApIHx8ICgoZmlscC0+Zl9tYXBw
aW5nLT5ob3N0KS0+aV9mbGFncyAmIDgxOTIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IHZtYV9pc19kYXgoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIHZtYS0+dm1fZmlsZSAmJiAoKHZtYS0+dm1fZmlsZS0+Zl9tYXBwaW5nLT5ob3N0KS0+
aV9mbGFncyAmIDgxOTIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHZtYV9pc19mc2Rh
eChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgaW5v
ZGUgKmlub2RlOwoxNDQ3NDogCjE0NDc0OiAgaWYgKCF2bWEtPnZtX2ZpbGUpCjE0NDc0OiAgIHJl
dHVybiBmYWxzZTsKMTQ0NzQ6ICBpZiAoIXZtYV9pc19kYXgodm1hKSkKMTQ0NzQ6ICAgcmV0dXJu
IGZhbHNlOwoxNDQ3NDogIGlub2RlID0gZmlsZV9pbm9kZSh2bWEtPnZtX2ZpbGUpOwoxNDQ3NDog
IGlmICgoKChpbm9kZS0+aV9tb2RlKSAmIDAwMTcwMDAwKSA9PSAwMDIwMDAwKSkKMTQ0NzQ6ICAg
cmV0dXJuIGZhbHNlOwoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgaW9jYl9mbGFncyhzdHJ1Y3QgZmlsZSAqZmlsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQg
cmVzID0gMDsKMTQ0NzQ6ICBpZiAoZmlsZS0+Zl9mbGFncyAmIDAwMDAyMDAwKQoxNDQ3NDogICBy
ZXMgfD0gKDEgPDwgMSk7CjE0NDc0OiAgaWYgKGlvX2lzX2RpcmVjdChmaWxlKSkKMTQ0NzQ6ICAg
cmVzIHw9ICgxIDw8IDIpOwoxNDQ3NDogIGlmICgoZmlsZS0+Zl9mbGFncyAmIDAwMDEwMDAwKSB8
fCAoKChmaWxlLT5mX21hcHBpbmctPmhvc3QpLT5pX3NiLT5zX2ZsYWdzICYgKDE2KSkgfHwgKChm
aWxlLT5mX21hcHBpbmctPmhvc3QpLT5pX2ZsYWdzICYgMSkpKQoxNDQ3NDogICByZXMgfD0gKDEg
PDwgNCk7CjE0NDc0OiAgaWYgKGZpbGUtPmZfZmxhZ3MgJiAwNDAwMDAwMCkKMTQ0NzQ6ICAgcmVz
IHw9ICgxIDw8IDUpOwoxNDQ3NDogIHJldHVybiByZXM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBraW9jYl9zZXRfcndfZmxhZ3Moc3RydWN0IGtpb2NiICpraSwgcndmX3QgZmxhZ3MpCjE0
NDc0OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoZmxhZ3MgJiB+KCgoIF9fa2Vy
bmVsX3J3Zl90KTB4MDAwMDAwMDEpIHwgKCggX19rZXJuZWxfcndmX3QpMHgwMDAwMDAwMikgfCAo
KCBfX2tlcm5lbF9yd2ZfdCkweDAwMDAwMDA0KSB8ICgoIF9fa2VybmVsX3J3Zl90KTB4MDAwMDAw
MDgpIHwgKCggX19rZXJuZWxfcndmX3QpMHgwMDAwMDAxMCkpKSwgMCkpCjE0NDc0OiAgIHJldHVy
biAtOTU7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoZmxhZ3MgJiAoKCBfX2tlcm5lbF9yd2ZfdCkweDAw
MDAwMDA4KSkgewoxNDQ3NDogICBpZiAoIShraS0+a2lfZmlscC0+Zl9tb2RlICYgKCggZm1vZGVf
dCkweDgwMDAwMDApKSkKMTQ0NzQ6ICAgIHJldHVybiAtOTU7CjE0NDc0OiAgIGtpLT5raV9mbGFn
cyB8PSAoMSA8PCA3KTsKMTQ0NzQ6ICB9CjE0NDc0OiAgaWYgKGZsYWdzICYgKCggX19rZXJuZWxf
cndmX3QpMHgwMDAwMDAwMSkpCjE0NDc0OiAgIGtpLT5raV9mbGFncyB8PSAoMSA8PCAzKTsKMTQ0
NzQ6ICBpZiAoZmxhZ3MgJiAoKCBfX2tlcm5lbF9yd2ZfdCkweDAwMDAwMDAyKSkKMTQ0NzQ6ICAg
a2ktPmtpX2ZsYWdzIHw9ICgxIDw8IDQpOwoxNDQ3NDogIGlmIChmbGFncyAmICgoIF9fa2VybmVs
X3J3Zl90KTB4MDAwMDAwMDQpKQoxNDQ3NDogICBraS0+a2lfZmxhZ3MgfD0gKCgxIDw8IDQpIHwg
KDEgPDwgNSkpOwoxNDQ3NDogIGlmIChmbGFncyAmICgoIF9fa2VybmVsX3J3Zl90KTB4MDAwMDAw
MTApKQoxNDQ3NDogICBraS0+a2lfZmxhZ3MgfD0gKDEgPDwgMSk7CjE0NDc0OiAgcmV0dXJuIDA7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlub190IHBhcmVudF9pbm8oc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIGlub190IHJlczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9ja3JlZi5s
b2NrKTsKMTQ0NzQ6ICByZXMgPSBkZW50cnktPmRfcGFyZW50LT5kX2lub2RlLT5pX2lubzsKMTQ0
NzQ6ICBzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2tyZWYubG9jayk7CjE0NDc0OiAgcmV0dXJu
IHJlczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNpbXBsZV90cmFuc2FjdGlvbl9hcmdyZXNwIHsK
MTQ0NzQ6ICBzc2l6ZV90IHNpemU7CjE0NDc0OiAgY2hhciBkYXRhWzBdOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGNoYXIgKnNpbXBsZV90cmFuc2FjdGlvbl9nZXQo
c3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKmJ1ZiwKMTQ0NzQ6ICAgICBzaXplX3Qgc2l6
ZSk7CjE0NDc0OiBzc2l6ZV90IHNpbXBsZV90cmFuc2FjdGlvbl9yZWFkKHN0cnVjdCBmaWxlICpm
aWxlLCBjaGFyICpidWYsCjE0NDc0OiAgICAgc2l6ZV90IHNpemUsIGxvZmZfdCAqcG9zKTsKMTQ0
NzQ6IGludCBzaW1wbGVfdHJhbnNhY3Rpb25fcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz
dHJ1Y3QgZmlsZSAqZmlsZSk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2ltcGxlX3RyYW5zYWN0aW9u
X3NldChzdHJ1Y3QgZmlsZSAqZmlsZSwgc2l6ZV90IG4pOwoxNDQ3NDogIyAzNTE1ICIuL2luY2x1
ZGUvbGludXgvZnMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAx
LCAyKSkpCjE0NDc0OiB2b2lkIF9fc2ltcGxlX2F0dHJfY2hlY2tfZm9ybWF0KGNvbnN0IGNoYXIg
KmZtdCwgLi4uKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGludCBz
aW1wbGVfYXR0cl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLAox
NDQ3NDogICAgICAgIGludCAoKmdldCkodm9pZCAqLCB1NjQgKiksIGludCAoKnNldCkodm9pZCAq
LCB1NjQpLAoxNDQ3NDogICAgICAgIGNvbnN0IGNoYXIgKmZtdCk7CjE0NDc0OiBpbnQgc2ltcGxl
X2F0dHJfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSk7CjE0
NDc0OiBzc2l6ZV90IHNpbXBsZV9hdHRyX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgKmJ1
ZiwKMTQ0NzQ6ICAgICBzaXplX3QgbGVuLCBsb2ZmX3QgKnBwb3MpOwoxNDQ3NDogc3NpemVfdCBz
aW1wbGVfYXR0cl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciAqYnVmLAoxNDQ3
NDogICAgICBzaXplX3QgbGVuLCBsb2ZmX3QgKnBwb3MpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
Y3RsX3RhYmxlOwoxNDQ3NDogaW50IHByb2NfbnJfZmlsZXMoc3RydWN0IGN0bF90YWJsZSAqdGFi
bGUsIGludCB3cml0ZSwKMTQ0NzQ6ICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m
Zl90ICpwcG9zKTsKMTQ0NzQ6IGludCBwcm9jX25yX2RlbnRyeShzdHJ1Y3QgY3RsX3RhYmxlICp0
YWJsZSwgaW50IHdyaXRlLAoxNDQ3NDogICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs
b2ZmX3QgKnBwb3MpOwoxNDQ3NDogaW50IHByb2NfbnJfaW5vZGVzKHN0cnVjdCBjdGxfdGFibGUg
KnRhYmxlLCBpbnQgd3JpdGUsCjE0NDc0OiAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5w
LCBsb2ZmX3QgKnBwb3MpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIu
aW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIGdldF9maWxlc3lzdGVtX2xp
c3QoY2hhciAqYnVmKTsKMTQ0NzQ6ICMgMzU0NiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIGlzX3N4aWQodW1vZGVfdCBtb2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAobW9k
ZSAmIDAwMDQwMDApIHx8ICgobW9kZSAmIDAwMDIwMDApICYmIChtb2RlICYgMDAwMTApKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNoZWNrX3N0aWNreShzdHJ1Y3QgaW5vZGUgKmRpciwg
c3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIShkaXItPmlfbW9kZSAm
IDAwMDEwMDApKQoxNDQ3NDogICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBfX2No
ZWNrX3N0aWNreShkaXIsIGlub2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9k
ZV9oYXNfbm9feGF0dHIoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAo
IWlzX3N4aWQoaW5vZGUtPmlfbW9kZSkgJiYgKGlub2RlLT5pX3NiLT5zX2ZsYWdzICYgKDE8PDI4
KSkpCjE0NDc0OiAgIGlub2RlLT5pX2ZsYWdzIHw9IDQwOTY7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgaXNfcm9vdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBpbm9kZSA9PSBpbm9kZS0+aV9zYi0+c19yb290LT5kX2lub2RlOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGRpcl9lbWl0KHN0cnVjdCBkaXJfY29udGV4dCAqY3R4LAox
NDQ3NDogICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuLAoxNDQ3NDogICAgICAg
IHU2NCBpbm8sIHVuc2lnbmVkIHR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGN0eC0+YWN0
b3IoY3R4LCBuYW1lLCBuYW1lbGVuLCBjdHgtPnBvcywgaW5vLCB0eXBlKSA9PSAwOwoxNDQ3NDog
fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBkaXJfZW1pdF9kb3Qoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkaXJf
Y29udGV4dCAqY3R4KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBjdHgtPmFjdG9yKGN0eCwgIi4i
LCAxLCBjdHgtPnBvcywKMTQ0NzQ6ICAgICAgZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+
aV9pbm8sIDQpID09IDA7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRpcl9lbWl0X2RvdGRvdChzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpjdHgpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIGN0eC0+YWN0b3IoY3R4LCAiLi4iLCAyLCBjdHgtPnBvcywKMTQ0NzQ6ICAgICAgcGFy
ZW50X2lubyhmaWxlLT5mX3BhdGguZGVudHJ5KSwgNCkgPT0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgZGlyX2VtaXRfZG90cyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpj
dHgpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGN0eC0+cG9zID09IDApIHsKMTQ0NzQ6ICAgaWYgKCFk
aXJfZW1pdF9kb3QoZmlsZSwgY3R4KSkKMTQ0NzQ6ICAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6ICAg
Y3R4LT5wb3MgPSAxOwoxNDQ3NDogIH0KMTQ0NzQ6ICBpZiAoY3R4LT5wb3MgPT0gMSkgewoxNDQ3
NDogICBpZiAoIWRpcl9lbWl0X2RvdGRvdChmaWxlLCBjdHgpKQoxNDQ3NDogICAgcmV0dXJuIGZh
bHNlOwoxNDQ3NDogICBjdHgtPnBvcyA9IDI7CjE0NDc0OiAgfQoxNDQ3NDogIHJldHVybiB0cnVl
OwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkaXJfcmVsYXgoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBpbm9kZV91bmxvY2soaW5vZGUpOwoxNDQ3NDogIGlub2RlX2xvY2soaW5v
ZGUpOwoxNDQ3NDogIHJldHVybiAhKChpbm9kZSktPmlfZmxhZ3MgJiAxNik7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgZGlyX3JlbGF4X3NoYXJlZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQox
NDQ3NDogewoxNDQ3NDogIGlub2RlX3VubG9ja19zaGFyZWQoaW5vZGUpOwoxNDQ3NDogIGlub2Rl
X2xvY2tfc2hhcmVkKGlub2RlKTsKMTQ0NzQ6ICByZXR1cm4gISgoaW5vZGUpLT5pX2ZsYWdzICYg
MTYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBwYXRoX25vZXhlYyhjb25z
dCBzdHJ1Y3QgcGF0aCAqcGF0aCk7CjE0NDc0OiBleHRlcm4gdm9pZCBpbm9kZV9ub2hpZ2htZW0o
c3RydWN0IGlub2RlICppbm9kZSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCB2
ZnNfZmFkdmlzZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbiwK
MTQ0NzQ6ICAgICAgICAgIGludCBhZHZpY2UpOwoxNDQ3NDogZXh0ZXJuIGludCBnZW5lcmljX2Zh
ZHZpc2Uoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCBsZW4sCjE0NDc0
OiAgICAgICBpbnQgYWR2aWNlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0
IHNvY2sgKmlvX3VyaW5nX2dldF9zb2NrZXQoc3RydWN0IGZpbGUgKmZpbGUpOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQg
dmZzX2lvY19zZXRmbGFnc19wcmVwYXJlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGlu
dCBvbGRmbGFncywKMTQ0NzQ6ICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKMTQ0NzQ6IAox
NDQ3NDogaW50IHZmc19pb2NfZnNzZXR4YXR0cl9jaGVjayhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBj
b25zdCBzdHJ1Y3QgZnN4YXR0ciAqb2xkX2ZhLAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgZnN4YXR0
ciAqZmEpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNpbXBsZV9maWxsX2ZzeGF0dHIoc3RydWN0IGZz
eGF0dHIgKmZhLCBfX3UzMiB4ZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgbWVtc2V0KGZhLCAwLCBz
aXplb2YoKmZhKSk7CjE0NDc0OiAgZmEtPmZzeF94ZmxhZ3MgPSB4ZmxhZ3M7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
aW5vZGVfZHJhaW5fd3JpdGVzKHN0cnVjdCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAg
aW5vZGVfZGlvX3dhaXQoaW5vZGUpOwoxNDQ3NDogIHJldHVybiBmaWxlbWFwX3dyaXRlX2FuZF93
YWl0KGlub2RlLT5pX21hcHBpbmcpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMiAiLi9pbmNsdWRlL2xp
bnV4L3NlcV9maWxlLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIgMQox
NDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRl
L2xpbnV4L2tleS5oIiAxCjE0NDc0OiAjIDE3ICIuL2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIgMQoxNDQ3NDogIyAzMCAiLi9pbmNsdWRl
L2xpbnV4L3N5c2N0bC5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zeXNjdGwu
aCIgMQoxNDQ3NDogIyAzNSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3lzY3RsLmgiCjE0NDc0OiBz
dHJ1Y3QgX19zeXNjdGxfYXJncyB7CjE0NDc0OiAgaW50ICpuYW1lOwoxNDQ3NDogIGludCBubGVu
OwoxNDQ3NDogIHZvaWQgKm9sZHZhbDsKMTQ0NzQ6ICBzaXplX3QgKm9sZGxlbnA7CjE0NDc0OiAg
dm9pZCAqbmV3dmFsOwoxNDQ3NDogIHNpemVfdCBuZXdsZW47CjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBfX3VudXNlZFs0XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIENUTF9LRVJOPTEsCjE0NDc0OiAg
Q1RMX1ZNPTIsCjE0NDc0OiAgQ1RMX05FVD0zLAoxNDQ3NDogIENUTF9QUk9DPTQsCjE0NDc0OiAg
Q1RMX0ZTPTUsCjE0NDc0OiAgQ1RMX0RFQlVHPTYsCjE0NDc0OiAgQ1RMX0RFVj03LAoxNDQ3NDog
IENUTF9CVVM9OCwKMTQ0NzQ6ICBDVExfQUJJPTksCjE0NDc0OiAgQ1RMX0NQVT0xMCwKMTQ0NzQ6
ICBDVExfQVJMQU49MjU0LAoxNDQ3NDogIENUTF9TMzkwREJGPTU2NzcsCjE0NDc0OiAgQ1RMX1NV
TlJQQz03MjQ5LAoxNDQ3NDogIENUTF9QTT05ODk5LAoxNDQ3NDogIENUTF9GUlY9OTg5OCwKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIENUTF9C
VVNfSVNBPTEKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewox
NDQ3NDogIElOT1RJRllfTUFYX1VTRVJfSU5TVEFOQ0VTPTEsCjE0NDc0OiAgSU5PVElGWV9NQVhf
VVNFUl9XQVRDSEVTPTIsCjE0NDc0OiAgSU5PVElGWV9NQVhfUVVFVUVEX0VWRU5UUz0zCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6ICBLRVJOX09T
VFlQRT0xLAoxNDQ3NDogIEtFUk5fT1NSRUxFQVNFPTIsCjE0NDc0OiAgS0VSTl9PU1JFVj0zLAox
NDQ3NDogIEtFUk5fVkVSU0lPTj00LAoxNDQ3NDogIEtFUk5fU0VDVVJFTUFTSz01LAoxNDQ3NDog
IEtFUk5fUFJPRj02LAoxNDQ3NDogIEtFUk5fTk9ERU5BTUU9NywKMTQ0NzQ6ICBLRVJOX0RPTUFJ
Tk5BTUU9OCwKMTQ0NzQ6IAoxNDQ3NDogIEtFUk5fUEFOSUM9MTUsCjE0NDc0OiAgS0VSTl9SRUFM
Uk9PVERFVj0xNiwKMTQ0NzQ6IAoxNDQ3NDogIEtFUk5fU1BBUkNfUkVCT09UPTIxLAoxNDQ3NDog
IEtFUk5fQ1RMQUxUREVMPTIyLAoxNDQ3NDogIEtFUk5fUFJJTlRLPTIzLAoxNDQ3NDogIEtFUk5f
TkFNRVRSQU5TPTI0LAoxNDQ3NDogIEtFUk5fUFBDX0hUQUJSRUNMQUlNPTI1LAoxNDQ3NDogIEtF
Uk5fUFBDX1pFUk9QQUdFRD0yNiwKMTQ0NzQ6ICBLRVJOX1BQQ19QT1dFUlNBVkVfTkFQPTI3LAox
NDQ3NDogIEtFUk5fTU9EUFJPQkU9MjgsCjE0NDc0OiAgS0VSTl9TR19CSUdfQlVGRj0yOSwKMTQ0
NzQ6ICBLRVJOX0FDQ1Q9MzAsCjE0NDc0OiAgS0VSTl9QUENfTDJDUj0zMSwKMTQ0NzQ6IAoxNDQ3
NDogIEtFUk5fUlRTSUdOUj0zMiwKMTQ0NzQ6ICBLRVJOX1JUU0lHTUFYPTMzLAoxNDQ3NDogCjE0
NDc0OiAgS0VSTl9TSE1NQVg9MzQsCjE0NDc0OiAgS0VSTl9NU0dNQVg9MzUsCjE0NDc0OiAgS0VS
Tl9NU0dNTkI9MzYsCjE0NDc0OiAgS0VSTl9NU0dQT09MPTM3LAoxNDQ3NDogIEtFUk5fU1lTUlE9
MzgsCjE0NDc0OiAgS0VSTl9NQVhfVEhSRUFEUz0zOSwKMTQ0NzQ6ICAgS0VSTl9SQU5ET009NDAs
CjE0NDc0OiAgIEtFUk5fU0hNQUxMPTQxLAoxNDQ3NDogICBLRVJOX01TR01OST00MiwKMTQ0NzQ6
ICAgS0VSTl9TRU09NDMsCjE0NDc0OiAgIEtFUk5fU1BBUkNfU1RPUF9BPTQ0LAoxNDQ3NDogICBL
RVJOX1NITU1OST00NSwKMTQ0NzQ6ICBLRVJOX09WRVJGTE9XVUlEPTQ2LAoxNDQ3NDogIEtFUk5f
T1ZFUkZMT1dHSUQ9NDcsCjE0NDc0OiAgS0VSTl9TSE1QQVRIPTQ4LAoxNDQ3NDogIEtFUk5fSE9U
UExVRz00OSwKMTQ0NzQ6ICBLRVJOX0lFRUVfRU1VTEFUSU9OX1dBUk5JTkdTPTUwLAoxNDQ3NDog
IEtFUk5fUzM5MF9VU0VSX0RFQlVHX0xPR0dJTkc9NTEsCjE0NDc0OiAgS0VSTl9DT1JFX1VTRVNf
UElEPTUyLAoxNDQ3NDogIEtFUk5fVEFJTlRFRD01MywKMTQ0NzQ6ICBLRVJOX0NBRFBJRD01NCwK
MTQ0NzQ6ICBLRVJOX1BJRE1BWD01NSwKMTQ0NzQ6ICAgIEtFUk5fQ09SRV9QQVRURVJOPTU2LAox
NDQ3NDogIEtFUk5fUEFOSUNfT05fT09QUz01NywKMTQ0NzQ6ICBLRVJOX0hQUEFfUFdSU1c9NTgs
CjE0NDc0OiAgS0VSTl9IUFBBX1VOQUxJR05FRD01OSwKMTQ0NzQ6ICBLRVJOX1BSSU5US19SQVRF
TElNSVQ9NjAsCjE0NDc0OiAgS0VSTl9QUklOVEtfUkFURUxJTUlUX0JVUlNUPTYxLAoxNDQ3NDog
IEtFUk5fUFRZPTYyLAoxNDQ3NDogIEtFUk5fTkdST1VQU19NQVg9NjMsCjE0NDc0OiAgS0VSTl9T
UEFSQ19TQ09OU19QV1JPRkY9NjQsCjE0NDc0OiAgS0VSTl9IWl9USU1FUj02NSwKMTQ0NzQ6ICBL
RVJOX1VOS05PV05fTk1JX1BBTklDPTY2LAoxNDQ3NDogIEtFUk5fQk9PVExPQURFUl9UWVBFPTY3
LAoxNDQ3NDogIEtFUk5fUkFORE9NSVpFPTY4LAoxNDQ3NDogIEtFUk5fU0VUVUlEX0RVTVBBQkxF
PTY5LAoxNDQ3NDogIEtFUk5fU1BJTl9SRVRSWT03MCwKMTQ0NzQ6ICBLRVJOX0FDUElfVklERU9f
RkxBR1M9NzEsCjE0NDc0OiAgS0VSTl9JQTY0X1VOQUxJR05FRD03MiwKMTQ0NzQ6ICBLRVJOX0NP
TVBBVF9MT0c9NzMsCjE0NDc0OiAgS0VSTl9NQVhfTE9DS19ERVBUSD03NCwKMTQ0NzQ6ICBLRVJO
X05NSV9XQVRDSERPRz03NSwKMTQ0NzQ6ICBLRVJOX1BBTklDX09OX05NST03NiwKMTQ0NzQ6ICBL
RVJOX1BBTklDX09OX1dBUk49NzcsCjE0NDc0OiAgS0VSTl9QQU5JQ19QUklOVD03OCwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsK
MTQ0NzQ6ICBWTV9VTlVTRUQxPTEsCjE0NDc0OiAgVk1fVU5VU0VEMj0yLAoxNDQ3NDogIFZNX1VO
VVNFRDM9MywKMTQ0NzQ6ICBWTV9VTlVTRUQ0PTQsCjE0NDc0OiAgVk1fT1ZFUkNPTU1JVF9NRU1P
Ulk9NSwKMTQ0NzQ6ICBWTV9VTlVTRUQ1PTYsCjE0NDc0OiAgVk1fVU5VU0VENz03LAoxNDQ3NDog
IFZNX1VOVVNFRDg9OCwKMTQ0NzQ6ICBWTV9VTlVTRUQ5PTksCjE0NDc0OiAgVk1fUEFHRV9DTFVT
VEVSPTEwLAoxNDQ3NDogIFZNX0RJUlRZX0JBQ0tHUk9VTkQ9MTEsCjE0NDc0OiAgVk1fRElSVFlf
UkFUSU89MTIsCjE0NDc0OiAgVk1fRElSVFlfV0JfQ1M9MTMsCjE0NDc0OiAgVk1fRElSVFlfRVhQ
SVJFX0NTPTE0LAoxNDQ3NDogIFZNX05SX1BERkxVU0hfVEhSRUFEUz0xNSwKMTQ0NzQ6ICBWTV9P
VkVSQ09NTUlUX1JBVElPPTE2LAoxNDQ3NDogIFZNX1BBR0VCVUY9MTcsCjE0NDc0OiAgVk1fSFVH
RVRMQl9QQUdFUz0xOCwKMTQ0NzQ6ICBWTV9TV0FQUElORVNTPTE5LAoxNDQ3NDogIFZNX0xPV01F
TV9SRVNFUlZFX1JBVElPPTIwLAoxNDQ3NDogIFZNX01JTl9GUkVFX0tCWVRFUz0yMSwKMTQ0NzQ6
ICBWTV9NQVhfTUFQX0NPVU5UPTIyLAoxNDQ3NDogIFZNX0xBUFRPUF9NT0RFPTIzLAoxNDQ3NDog
IFZNX0JMT0NLX0RVTVA9MjQsCjE0NDc0OiAgVk1fSFVHRVRMQl9HUk9VUD0yNSwKMTQ0NzQ6ICBW
TV9WRlNfQ0FDSEVfUFJFU1NVUkU9MjYsCjE0NDc0OiAgVk1fTEVHQUNZX1ZBX0xBWU9VVD0yNywK
MTQ0NzQ6ICBWTV9TV0FQX1RPS0VOX1RJTUVPVVQ9MjgsCjE0NDc0OiAgVk1fRFJPUF9QQUdFQ0FD
SEU9MjksCjE0NDc0OiAgVk1fUEVSQ1BVX1BBR0VMSVNUX0ZSQUNUSU9OPTMwLAoxNDQ3NDogIFZN
X1pPTkVfUkVDTEFJTV9NT0RFPTMxLAoxNDQ3NDogIFZNX01JTl9VTk1BUFBFRD0zMiwKMTQ0NzQ6
ICBWTV9QQU5JQ19PTl9PT009MzMsCjE0NDc0OiAgVk1fVkRTT19FTkFCTEVEPTM0LAoxNDQ3NDog
IFZNX01JTl9TTEFCPTM1LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6ICBORVRfQ09SRT0xLAoxNDQ3NDogIE5FVF9FVEhFUj0yLAox
NDQ3NDogIE5FVF84MDI9MywKMTQ0NzQ6ICBORVRfVU5JWD00LAoxNDQ3NDogIE5FVF9JUFY0PTUs
CjE0NDc0OiAgTkVUX0lQWD02LAoxNDQ3NDogIE5FVF9BVEFMSz03LAoxNDQ3NDogIE5FVF9ORVRS
T009OCwKMTQ0NzQ6ICBORVRfQVgyNT05LAoxNDQ3NDogIE5FVF9CUklER0U9MTAsCjE0NDc0OiAg
TkVUX1JPU0U9MTEsCjE0NDc0OiAgTkVUX0lQVjY9MTIsCjE0NDc0OiAgTkVUX1gyNT0xMywKMTQ0
NzQ6ICBORVRfVFI9MTQsCjE0NDc0OiAgTkVUX0RFQ05FVD0xNSwKMTQ0NzQ6ICBORVRfRUNPTkVU
PTE2LAoxNDQ3NDogIE5FVF9TQ1RQPTE3LAoxNDQ3NDogIE5FVF9MTEM9MTgsCjE0NDc0OiAgTkVU
X05FVEZJTFRFUj0xOSwKMTQ0NzQ6ICBORVRfRENDUD0yMCwKMTQ0NzQ6ICBORVRfSVJEQT00MTIs
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6ICBS
QU5ET01fUE9PTFNJWkU9MSwKMTQ0NzQ6ICBSQU5ET01fRU5UUk9QWV9DT1VOVD0yLAoxNDQ3NDog
IFJBTkRPTV9SRUFEX1RIUkVTSD0zLAoxNDQ3NDogIFJBTkRPTV9XUklURV9USFJFU0g9NCwKMTQ0
NzQ6ICBSQU5ET01fQk9PVF9JRD01LAoxNDQ3NDogIFJBTkRPTV9VVUlEPTYKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIFBUWV9NQVg9MSwKMTQ0
NzQ6ICBQVFlfTlI9MgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtCjE0NDc0
OiB7CjE0NDc0OiAgQlVTX0lTQV9NRU1fQkFTRT0xLAoxNDQ3NDogIEJVU19JU0FfUE9SVF9CQVNF
PTIsCjE0NDc0OiAgQlVTX0lTQV9QT1JUX1NISUZUPTMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIE5FVF9DT1JFX1dNRU1fTUFYPTEsCjE0NDc0
OiAgTkVUX0NPUkVfUk1FTV9NQVg9MiwKMTQ0NzQ6ICBORVRfQ09SRV9XTUVNX0RFRkFVTFQ9MywK
MTQ0NzQ6ICBORVRfQ09SRV9STUVNX0RFRkFVTFQ9NCwKMTQ0NzQ6IAoxNDQ3NDogIE5FVF9DT1JF
X01BWF9CQUNLTE9HPTYsCjE0NDc0OiAgTkVUX0NPUkVfRkFTVFJPVVRFPTcsCjE0NDc0OiAgTkVU
X0NPUkVfTVNHX0NPU1Q9OCwKMTQ0NzQ6ICBORVRfQ09SRV9NU0dfQlVSU1Q9OSwKMTQ0NzQ6ICBO
RVRfQ09SRV9PUFRNRU1fTUFYPTEwLAoxNDQ3NDogIE5FVF9DT1JFX0hPVF9MSVNUX0xFTkdUSD0x
MSwKMTQ0NzQ6ICBORVRfQ09SRV9ESVZFUlRfVkVSU0lPTj0xMiwKMTQ0NzQ6ICBORVRfQ09SRV9O
T19DT05HX1RIUkVTSD0xMywKMTQ0NzQ6ICBORVRfQ09SRV9OT19DT05HPTE0LAoxNDQ3NDogIE5F
VF9DT1JFX0xPX0NPTkc9MTUsCjE0NDc0OiAgTkVUX0NPUkVfTU9EX0NPTkc9MTYsCjE0NDc0OiAg
TkVUX0NPUkVfREVWX1dFSUdIVD0xNywKMTQ0NzQ6ICBORVRfQ09SRV9TT01BWENPTk49MTgsCjE0
NDc0OiAgTkVUX0NPUkVfQlVER0VUPTE5LAoxNDQ3NDogIE5FVF9DT1JFX0FFVkVOVF9FVElNRT0y
MCwKMTQ0NzQ6ICBORVRfQ09SRV9BRVZFTlRfUlNFUVRIPTIxLAoxNDQ3NDogIE5FVF9DT1JFX1dB
Uk5JTkdTPTIyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIE5FVF9VTklY
X0RFU1RST1lfREVMQVk9MSwKMTQ0NzQ6ICBORVRfVU5JWF9ERUxFVEVfREVMQVk9MiwKMTQ0NzQ6
ICBORVRfVU5JWF9NQVhfREdSQU1fUUxFTj0zLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBlbnVtCjE0NDc0OiB7CjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19NQVg9MSwKMTQ0NzQ6
ICBORVRfTkZfQ09OTlRSQUNLX1RDUF9USU1FT1VUX1NZTl9TRU5UPTIsCjE0NDc0OiAgTkVUX05G
X0NPTk5UUkFDS19UQ1BfVElNRU9VVF9TWU5fUkVDVj0zLAoxNDQ3NDogIE5FVF9ORl9DT05OVFJB
Q0tfVENQX1RJTUVPVVRfRVNUQUJMSVNIRUQ9NCwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX1RD
UF9USU1FT1VUX0ZJTl9XQUlUPTUsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9V
VF9DTE9TRV9XQUlUPTYsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9MQVNU
X0FDSz03LAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfVElNRV9XQUlUPTgs
CjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9DTE9TRT05LAoxNDQ3NDogIE5F
VF9ORl9DT05OVFJBQ0tfVURQX1RJTUVPVVQ9MTAsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19V
RFBfVElNRU9VVF9TVFJFQU09MTEsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19JQ01QX1RJTUVP
VVQ9MTIsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19HRU5FUklDX1RJTUVPVVQ9MTMsCjE0NDc0
OiAgTkVUX05GX0NPTk5UUkFDS19CVUNLRVRTPTE0LAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tf
TE9HX0lOVkFMSUQ9MTUsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9NQVhf
UkVUUkFOUz0xNiwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX1RDUF9MT09TRT0xNywKMTQ0NzQ6
ICBORVRfTkZfQ09OTlRSQUNLX1RDUF9CRV9MSUJFUkFMPTE4LAoxNDQ3NDogIE5FVF9ORl9DT05O
VFJBQ0tfVENQX01BWF9SRVRSQU5TPTE5LAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfU0NUUF9U
SU1FT1VUX0NMT1NFRD0yMCwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9D
T09LSUVfV0FJVD0yMSwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9DT09L
SUVfRUNIT0VEPTIyLAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VUX0VTVEFC
TElTSEVEPTIzLAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VUX1NIVVRET1dO
X1NFTlQ9MjQsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRfU0hVVERPV05f
UkVDRD0yNSwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9TSFVURE9XTl9B
Q0tfU0VOVD0yNiwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX0NPVU5UPTI3LAoxNDQ3NDogIE5F
VF9ORl9DT05OVFJBQ0tfSUNNUFY2X1RJTUVPVVQ9MjgsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFD
S19GUkFHNl9USU1FT1VUPTI5LAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfRlJBRzZfTE9XX1RI
UkVTSD0zMCwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX0ZSQUc2X0hJR0hfVEhSRVNIPTMxLAox
NDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfQ0hFQ0tTVU09MzIsCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIE5FVF9JUFY0X0ZPUldB
UkQ9OCwKMTQ0NzQ6ICBORVRfSVBWNF9EWU5BRERSPTksCjE0NDc0OiAKMTQ0NzQ6ICBORVRfSVBW
NF9DT05GPTE2LAoxNDQ3NDogIE5FVF9JUFY0X05FSUdIPTE3LAoxNDQ3NDogIE5FVF9JUFY0X1JP
VVRFPTE4LAoxNDQ3NDogIE5FVF9JUFY0X0ZJQl9IQVNIPTE5LAoxNDQ3NDogIE5FVF9JUFY0X05F
VEZJTFRFUj0yMCwKMTQ0NzQ6IAoxNDQ3NDogIE5FVF9JUFY0X1RDUF9USU1FU1RBTVBTPTMzLAox
NDQ3NDogIE5FVF9JUFY0X1RDUF9XSU5ET1dfU0NBTElORz0zNCwKMTQ0NzQ6ICBORVRfSVBWNF9U
Q1BfU0FDSz0zNSwKMTQ0NzQ6ICBORVRfSVBWNF9UQ1BfUkVUUkFOU19DT0xMQVBTRT0zNiwKMTQ0
NzQ6ICBORVRfSVBWNF9ERUZBVUxUX1RUTD0zNywKMTQ0NzQ6ICBORVRfSVBWNF9BVVRPQ09ORklH
PTM4LAoxNDQ3NDogIE5FVF9JUFY0X05PX1BNVFVfRElTQz0zOSwKMTQ0NzQ6ICBORVRfSVBWNF9U
Q1BfU1lOX1JFVFJJRVM9NDAsCjE0NDc0OiAgTkVUX0lQVjRfSVBGUkFHX0hJR0hfVEhSRVNIPTQx
LAoxNDQ3NDogIE5FVF9JUFY0X0lQRlJBR19MT1dfVEhSRVNIPTQyLAoxNDQ3NDogIE5FVF9JUFY0
X0lQRlJBR19USU1FPTQzLAoxNDQ3NDogIE5FVF9JUFY0X1RDUF9NQVhfS0FfUFJPQkVTPTQ0LAox
NDQ3NDogIE5FVF9JUFY0X1RDUF9LRUVQQUxJVkVfVElNRT00NSwKMTQ0NzQ6ICBORVRfSVBWNF9U
Q1BfS0VFUEFMSVZFX1BST0JFUz00NiwKMTQ0NzQ6ICBORVRfSVBWNF9UQ1BfUkVUUklFUzE9NDcs
CjE0NDc0OiAgTkVUX0lQVjRfVENQX1JFVFJJRVMyPTQ4LAoxNDQ3NDogIE5FVF9JUFY0X1RDUF9G
SU5fVElNRU9VVD00OSwKMTQ0NzQ6ICBORVRfSVBWNF9JUF9NQVNRX0RFQlVHPTUwLAoxNDQ3NDog
IE5FVF9UQ1BfU1lOQ09PS0lFUz01MSwKMTQ0NzQ6ICBORVRfVENQX1NURFVSRz01MiwKMTQ0NzQ6
ICBORVRfVENQX1JGQzEzMzc9NTMsCjE0NDc0OiAgTkVUX1RDUF9TWU5fVEFJTERST1A9NTQsCjE0
NDc0OiAgTkVUX1RDUF9NQVhfU1lOX0JBQ0tMT0c9NTUsCjE0NDc0OiAgTkVUX0lQVjRfTE9DQUxf
UE9SVF9SQU5HRT01NiwKMTQ0NzQ6ICBORVRfSVBWNF9JQ01QX0VDSE9fSUdOT1JFX0FMTD01NywK
MTQ0NzQ6ICBORVRfSVBWNF9JQ01QX0VDSE9fSUdOT1JFX0JST0FEQ0FTVFM9NTgsCjE0NDc0OiAg
TkVUX0lQVjRfSUNNUF9TT1VSQ0VRVUVOQ0hfUkFURT01OSwKMTQ0NzQ6ICBORVRfSVBWNF9JQ01Q
X0RFU1RVTlJFQUNIX1JBVEU9NjAsCjE0NDc0OiAgTkVUX0lQVjRfSUNNUF9USU1FRVhDRUVEX1JB
VEU9NjEsCjE0NDc0OiAgTkVUX0lQVjRfSUNNUF9QQVJBTVBST0JfUkFURT02MiwKMTQ0NzQ6ICBO
RVRfSVBWNF9JQ01QX0VDSE9SRVBMWV9SQVRFPTYzLAoxNDQ3NDogIE5FVF9JUFY0X0lDTVBfSUdO
T1JFX0JPR1VTX0VSUk9SX1JFU1BPTlNFUz02NCwKMTQ0NzQ6ICBORVRfSVBWNF9JR01QX01BWF9N
RU1CRVJTSElQUz02NSwKMTQ0NzQ6ICBORVRfVENQX1RXX1JFQ1lDTEU9NjYsCjE0NDc0OiAgTkVU
X0lQVjRfQUxXQVlTX0RFRlJBRz02NywKMTQ0NzQ6ICBORVRfSVBWNF9UQ1BfS0VFUEFMSVZFX0lO
VFZMPTY4LAoxNDQ3NDogIE5FVF9JUFY0X0lORVRfUEVFUl9USFJFU0hPTEQ9NjksCjE0NDc0OiAg
TkVUX0lQVjRfSU5FVF9QRUVSX01JTlRUTD03MCwKMTQ0NzQ6ICBORVRfSVBWNF9JTkVUX1BFRVJf
TUFYVFRMPTcxLAoxNDQ3NDogIE5FVF9JUFY0X0lORVRfUEVFUl9HQ19NSU5USU1FPTcyLAoxNDQ3
NDogIE5FVF9JUFY0X0lORVRfUEVFUl9HQ19NQVhUSU1FPTczLAoxNDQ3NDogIE5FVF9UQ1BfT1JQ
SEFOX1JFVFJJRVM9NzQsCjE0NDc0OiAgTkVUX1RDUF9BQk9SVF9PTl9PVkVSRkxPVz03NSwKMTQ0
NzQ6ICBORVRfVENQX1NZTkFDS19SRVRSSUVTPTc2LAoxNDQ3NDogIE5FVF9UQ1BfTUFYX09SUEhB
TlM9NzcsCjE0NDc0OiAgTkVUX1RDUF9NQVhfVFdfQlVDS0VUUz03OCwKMTQ0NzQ6ICBORVRfVENQ
X0ZBQ0s9NzksCjE0NDc0OiAgTkVUX1RDUF9SRU9SREVSSU5HPTgwLAoxNDQ3NDogIE5FVF9UQ1Bf
RUNOPTgxLAoxNDQ3NDogIE5FVF9UQ1BfRFNBQ0s9ODIsCjE0NDc0OiAgTkVUX1RDUF9NRU09ODMs
CjE0NDc0OiAgTkVUX1RDUF9XTUVNPTg0LAoxNDQ3NDogIE5FVF9UQ1BfUk1FTT04NSwKMTQ0NzQ6
ICBORVRfVENQX0FQUF9XSU49ODYsCjE0NDc0OiAgTkVUX1RDUF9BRFZfV0lOX1NDQUxFPTg3LAox
NDQ3NDogIE5FVF9JUFY0X05PTkxPQ0FMX0JJTkQ9ODgsCjE0NDc0OiAgTkVUX0lQVjRfSUNNUF9S
QVRFTElNSVQ9ODksCjE0NDc0OiAgTkVUX0lQVjRfSUNNUF9SQVRFTUFTSz05MCwKMTQ0NzQ6ICBO
RVRfVENQX1RXX1JFVVNFPTkxLAoxNDQ3NDogIE5FVF9UQ1BfRlJUTz05MiwKMTQ0NzQ6ICBORVRf
VENQX0xPV19MQVRFTkNZPTkzLAoxNDQ3NDogIE5FVF9JUFY0X0lQRlJBR19TRUNSRVRfSU5URVJW
QUw9OTQsCjE0NDc0OiAgTkVUX0lQVjRfSUdNUF9NQVhfTVNGPTk2LAoxNDQ3NDogIE5FVF9UQ1Bf
Tk9fTUVUUklDU19TQVZFPTk3LAoxNDQ3NDogIE5FVF9UQ1BfREVGQVVMVF9XSU5fU0NBTEU9MTA1
LAoxNDQ3NDogIE5FVF9UQ1BfTU9ERVJBVEVfUkNWQlVGPTEwNiwKMTQ0NzQ6ICBORVRfVENQX1RT
T19XSU5fRElWSVNPUj0xMDcsCjE0NDc0OiAgTkVUX1RDUF9CSUNfQkVUQT0xMDgsCjE0NDc0OiAg
TkVUX0lQVjRfSUNNUF9FUlJPUlNfVVNFX0lOQk9VTkRfSUZBRERSPTEwOSwKMTQ0NzQ6ICBORVRf
VENQX0NPTkdfQ09OVFJPTD0xMTAsCjE0NDc0OiAgTkVUX1RDUF9BQkM9MTExLAoxNDQ3NDogIE5F
VF9JUFY0X0lQRlJBR19NQVhfRElTVD0xMTIsCjE0NDc0OiAgIE5FVF9UQ1BfTVRVX1BST0JJTkc9
MTEzLAoxNDQ3NDogIE5FVF9UQ1BfQkFTRV9NU1M9MTE0LAoxNDQ3NDogIE5FVF9JUFY0X1RDUF9X
T1JLQVJPVU5EX1NJR05FRF9XSU5ET1dTPTExNSwKMTQ0NzQ6ICBORVRfVENQX0RNQV9DT1BZQlJF
QUs9MTE2LAoxNDQ3NDogIE5FVF9UQ1BfU0xPV19TVEFSVF9BRlRFUl9JRExFPTExNywKMTQ0NzQ6
ICBORVRfQ0lQU09WNF9DQUNIRV9FTkFCTEU9MTE4LAoxNDQ3NDogIE5FVF9DSVBTT1Y0X0NBQ0hF
X0JVQ0tFVF9TSVpFPTExOSwKMTQ0NzQ6ICBORVRfQ0lQU09WNF9SQk1fT1BURk1UPTEyMCwKMTQ0
NzQ6ICBORVRfQ0lQU09WNF9SQk1fU1RSSUNUVkFMSUQ9MTIxLAoxNDQ3NDogIE5FVF9UQ1BfQVZB
SUxfQ09OR19DT05UUk9MPTEyMiwKMTQ0NzQ6ICBORVRfVENQX0FMTE9XRURfQ09OR19DT05UUk9M
PTEyMywKMTQ0NzQ6ICBORVRfVENQX01BWF9TU1RIUkVTSD0xMjQsCjE0NDc0OiAgTkVUX1RDUF9G
UlRPX1JFU1BPTlNFPTEyNSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDog
IE5FVF9JUFY0X1JPVVRFX0ZMVVNIPTEsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfTUlOX0RFTEFZ
PTIsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfTUFYX0RFTEFZPTMsCjE0NDc0OiAgTkVUX0lQVjRf
Uk9VVEVfR0NfVEhSRVNIPTQsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfTUFYX1NJWkU9NSwKMTQ0
NzQ6ICBORVRfSVBWNF9ST1VURV9HQ19NSU5fSU5URVJWQUw9NiwKMTQ0NzQ6ICBORVRfSVBWNF9S
T1VURV9HQ19USU1FT1VUPTcsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfR0NfSU5URVJWQUw9OCwK
MTQ0NzQ6ICBORVRfSVBWNF9ST1VURV9SRURJUkVDVF9MT0FEPTksCjE0NDc0OiAgTkVUX0lQVjRf
Uk9VVEVfUkVESVJFQ1RfTlVNQkVSPTEwLAoxNDQ3NDogIE5FVF9JUFY0X1JPVVRFX1JFRElSRUNU
X1NJTEVOQ0U9MTEsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfRVJST1JfQ09TVD0xMiwKMTQ0NzQ6
ICBORVRfSVBWNF9ST1VURV9FUlJPUl9CVVJTVD0xMywKMTQ0NzQ6ICBORVRfSVBWNF9ST1VURV9H
Q19FTEFTVElDSVRZPTE0LAoxNDQ3NDogIE5FVF9JUFY0X1JPVVRFX01UVV9FWFBJUkVTPTE1LAox
NDQ3NDogIE5FVF9JUFY0X1JPVVRFX01JTl9QTVRVPTE2LAoxNDQ3NDogIE5FVF9JUFY0X1JPVVRF
X01JTl9BRFZNU1M9MTcsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfU0VDUkVUX0lOVEVSVkFMPTE4
LAoxNDQ3NDogIE5FVF9JUFY0X1JPVVRFX0dDX01JTl9JTlRFUlZBTF9NUz0xOSwKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6ICBORVRfUFJPVE9fQ09ORl9BTEw9
LTIsCjE0NDc0OiAgTkVUX1BST1RPX0NPTkZfREVGQVVMVD0tMwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6ICBORVRfSVBWNF9DT05G
X0ZPUldBUkRJTkc9MSwKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX01DX0ZPUldBUkRJTkc9MiwKMTQ0
NzQ6ICBORVRfSVBWNF9DT05GX1BST1hZX0FSUD0zLAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZfQUND
RVBUX1JFRElSRUNUUz00LAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZfU0VDVVJFX1JFRElSRUNUUz01
LAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZfU0VORF9SRURJUkVDVFM9NiwKMTQ0NzQ6ICBORVRfSVBW
NF9DT05GX1NIQVJFRF9NRURJQT03LAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZfUlBfRklMVEVSPTgs
CjE0NDc0OiAgTkVUX0lQVjRfQ09ORl9BQ0NFUFRfU09VUkNFX1JPVVRFPTksCjE0NDc0OiAgTkVU
X0lQVjRfQ09ORl9CT09UUF9SRUxBWT0xMCwKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX0xPR19NQVJU
SUFOUz0xMSwKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX1RBRz0xMiwKMTQ0NzQ6ICBORVRfSVBWNF9D
T05GX0FSUEZJTFRFUj0xMywKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX01FRElVTV9JRD0xNCwKMTQ0
NzQ6ICBORVRfSVBWNF9DT05GX05PWEZSTT0xNSwKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX05PUE9M
SUNZPTE2LAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZfRk9SQ0VfSUdNUF9WRVJTSU9OPTE3LAoxNDQ3
NDogIE5FVF9JUFY0X0NPTkZfQVJQX0FOTk9VTkNFPTE4LAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZf
QVJQX0lHTk9SRT0xOSwKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX1BST01PVEVfU0VDT05EQVJJRVM9
MjAsCjE0NDc0OiAgTkVUX0lQVjRfQ09ORl9BUlBfQUNDRVBUPTIxLAoxNDQ3NDogIE5FVF9JUFY0
X0NPTkZfQVJQX05PVElGWT0yMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51
bQoxNDQ3NDogewoxNDQ3NDogIE5FVF9JUFY0X05GX0NPTk5UUkFDS19NQVg9MSwKMTQ0NzQ6ICBO
RVRfSVBWNF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfU1lOX1NFTlQ9MiwKMTQ0NzQ6ICBORVRf
SVBWNF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfU1lOX1JFQ1Y9MywKMTQ0NzQ6ICBORVRfSVBW
NF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfRVNUQUJMSVNIRUQ9NCwKMTQ0NzQ6ICBORVRfSVBW
NF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfRklOX1dBSVQ9NSwKMTQ0NzQ6ICBORVRfSVBWNF9O
Rl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfQ0xPU0VfV0FJVD02LAoxNDQ3NDogIE5FVF9JUFY0X05G
X0NPTk5UUkFDS19UQ1BfVElNRU9VVF9MQVNUX0FDSz03LAoxNDQ3NDogIE5FVF9JUFY0X05GX0NP
Tk5UUkFDS19UQ1BfVElNRU9VVF9USU1FX1dBSVQ9OCwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05O
VFJBQ0tfVENQX1RJTUVPVVRfQ0xPU0U9OSwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05OVFJBQ0tf
VURQX1RJTUVPVVQ9MTAsCjE0NDc0OiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1VEUF9USU1FT1VU
X1NUUkVBTT0xMSwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfSUNNUF9USU1FT1VUPTEy
LAoxNDQ3NDogIE5FVF9JUFY0X05GX0NPTk5UUkFDS19HRU5FUklDX1RJTUVPVVQ9MTMsCjE0NDc0
OiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX0JVQ0tFVFM9MTQsCjE0NDc0OiAgTkVUX0lQVjRfTkZf
Q09OTlRSQUNLX0xPR19JTlZBTElEPTE1LAoxNDQ3NDogIE5FVF9JUFY0X05GX0NPTk5UUkFDS19U
Q1BfVElNRU9VVF9NQVhfUkVUUkFOUz0xNiwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05OVFJBQ0tf
VENQX0xPT1NFPTE3LAoxNDQ3NDogIE5FVF9JUFY0X05GX0NPTk5UUkFDS19UQ1BfQkVfTElCRVJB
TD0xOCwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfVENQX01BWF9SRVRSQU5TPTE5LAox
NDQ3NDogICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VUX0NMT1NFRD0yMCwKMTQ0
NzQ6ICAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9DT09LSUVfV0FJVD0yMSwK
MTQ0NzQ6ICAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9DT09LSUVfRUNIT0VE
PTIyLAoxNDQ3NDogICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VUX0VTVEFCTElT
SEVEPTIzLAoxNDQ3NDogICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VUX1NIVVRE
T1dOX1NFTlQ9MjQsCjE0NDc0OiAgIE5FVF9JUFY0X05GX0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRf
U0hVVERPV05fUkVDRD0yNSwKMTQ0NzQ6ICAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1NDVFBfVElN
RU9VVF9TSFVURE9XTl9BQ0tfU0VOVD0yNiwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05OVFJBQ0tf
Q09VTlQ9MjcsCjE0NDc0OiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX0NIRUNLU1VNPTI4LAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBORVRfSVBWNl9DT05G
PTE2LAoxNDQ3NDogIE5FVF9JUFY2X05FSUdIPTE3LAoxNDQ3NDogIE5FVF9JUFY2X1JPVVRFPTE4
LAoxNDQ3NDogIE5FVF9JUFY2X0lDTVA9MTksCjE0NDc0OiAgTkVUX0lQVjZfQklORFY2T05MWT0y
MCwKMTQ0NzQ6ICBORVRfSVBWNl9JUDZGUkFHX0hJR0hfVEhSRVNIPTIxLAoxNDQ3NDogIE5FVF9J
UFY2X0lQNkZSQUdfTE9XX1RIUkVTSD0yMiwKMTQ0NzQ6ICBORVRfSVBWNl9JUDZGUkFHX1RJTUU9
MjMsCjE0NDc0OiAgTkVUX0lQVjZfSVA2RlJBR19TRUNSRVRfSU5URVJWQUw9MjQsCjE0NDc0OiAg
TkVUX0lQVjZfTUxEX01BWF9NU0Y9MjUsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHsK
MTQ0NzQ6ICBORVRfSVBWNl9ST1VURV9GTFVTSD0xLAoxNDQ3NDogIE5FVF9JUFY2X1JPVVRFX0dD
X1RIUkVTSD0yLAoxNDQ3NDogIE5FVF9JUFY2X1JPVVRFX01BWF9TSVpFPTMsCjE0NDc0OiAgTkVU
X0lQVjZfUk9VVEVfR0NfTUlOX0lOVEVSVkFMPTQsCjE0NDc0OiAgTkVUX0lQVjZfUk9VVEVfR0Nf
VElNRU9VVD01LAoxNDQ3NDogIE5FVF9JUFY2X1JPVVRFX0dDX0lOVEVSVkFMPTYsCjE0NDc0OiAg
TkVUX0lQVjZfUk9VVEVfR0NfRUxBU1RJQ0lUWT03LAoxNDQ3NDogIE5FVF9JUFY2X1JPVVRFX01U
VV9FWFBJUkVTPTgsCjE0NDc0OiAgTkVUX0lQVjZfUk9VVEVfTUlOX0FEVk1TUz05LAoxNDQ3NDog
IE5FVF9JUFY2X1JPVVRFX0dDX01JTl9JTlRFUlZBTF9NUz0xMAoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogZW51bSB7CjE0NDc0OiAgTkVUX0lQVjZfRk9SV0FSRElORz0xLAoxNDQ3NDogIE5FVF9J
UFY2X0hPUF9MSU1JVD0yLAoxNDQ3NDogIE5FVF9JUFY2X01UVT0zLAoxNDQ3NDogIE5FVF9JUFY2
X0FDQ0VQVF9SQT00LAoxNDQ3NDogIE5FVF9JUFY2X0FDQ0VQVF9SRURJUkVDVFM9NSwKMTQ0NzQ6
ICBORVRfSVBWNl9BVVRPQ09ORj02LAoxNDQ3NDogIE5FVF9JUFY2X0RBRF9UUkFOU01JVFM9NywK
MTQ0NzQ6ICBORVRfSVBWNl9SVFJfU09MSUNJVFM9OCwKMTQ0NzQ6ICBORVRfSVBWNl9SVFJfU09M
SUNJVF9JTlRFUlZBTD05LAoxNDQ3NDogIE5FVF9JUFY2X1JUUl9TT0xJQ0lUX0RFTEFZPTEwLAox
NDQ3NDogIE5FVF9JUFY2X1VTRV9URU1QQUREUj0xMSwKMTQ0NzQ6ICBORVRfSVBWNl9URU1QX1ZB
TElEX0xGVD0xMiwKMTQ0NzQ6ICBORVRfSVBWNl9URU1QX1BSRUZFUkVEX0xGVD0xMywKMTQ0NzQ6
ICBORVRfSVBWNl9SRUdFTl9NQVhfUkVUUlk9MTQsCjE0NDc0OiAgTkVUX0lQVjZfTUFYX0RFU1lO
Q19GQUNUT1I9MTUsCjE0NDc0OiAgTkVUX0lQVjZfTUFYX0FERFJFU1NFUz0xNiwKMTQ0NzQ6ICBO
RVRfSVBWNl9GT1JDRV9NTERfVkVSU0lPTj0xNywKMTQ0NzQ6ICBORVRfSVBWNl9BQ0NFUFRfUkFf
REVGUlRSPTE4LAoxNDQ3NDogIE5FVF9JUFY2X0FDQ0VQVF9SQV9QSU5GTz0xOSwKMTQ0NzQ6ICBO
RVRfSVBWNl9BQ0NFUFRfUkFfUlRSX1BSRUY9MjAsCjE0NDc0OiAgTkVUX0lQVjZfUlRSX1BST0JF
X0lOVEVSVkFMPTIxLAoxNDQ3NDogIE5FVF9JUFY2X0FDQ0VQVF9SQV9SVF9JTkZPX01BWF9QTEVO
PTIyLAoxNDQ3NDogIE5FVF9JUFY2X1BST1hZX05EUD0yMywKMTQ0NzQ6ICBORVRfSVBWNl9BQ0NF
UFRfU09VUkNFX1JPVVRFPTI1LAoxNDQ3NDogIE5FVF9JUFY2X0FDQ0VQVF9SQV9GUk9NX0xPQ0FM
PTI2LAoxNDQ3NDogIE5FVF9JUFY2X0FDQ0VQVF9SQV9SVF9JTkZPX01JTl9QTEVOPTI3LAoxNDQ3
NDogIF9fTkVUX0lQVjZfTUFYCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0g
ewoxNDQ3NDogIE5FVF9JUFY2X0lDTVBfUkFURUxJTUlUID0gMSwKMTQ0NzQ6ICBORVRfSVBWNl9J
Q01QX0VDSE9fSUdOT1JFX0FMTCA9IDIKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSB7CjE0NDc0OiAgTkVUX05FSUdIX01DQVNUX1NPTElDSVQ9MSwKMTQ0NzQ6ICBORVRfTkVJ
R0hfVUNBU1RfU09MSUNJVD0yLAoxNDQ3NDogIE5FVF9ORUlHSF9BUFBfU09MSUNJVD0zLAoxNDQ3
NDogIE5FVF9ORUlHSF9SRVRSQU5TX1RJTUU9NCwKMTQ0NzQ6ICBORVRfTkVJR0hfUkVBQ0hBQkxF
X1RJTUU9NSwKMTQ0NzQ6ICBORVRfTkVJR0hfREVMQVlfUFJPQkVfVElNRT02LAoxNDQ3NDogIE5F
VF9ORUlHSF9HQ19TVEFMRV9USU1FPTcsCjE0NDc0OiAgTkVUX05FSUdIX1VOUkVTX1FMRU49OCwK
MTQ0NzQ6ICBORVRfTkVJR0hfUFJPWFlfUUxFTj05LAoxNDQ3NDogIE5FVF9ORUlHSF9BTllDQVNU
X0RFTEFZPTEwLAoxNDQ3NDogIE5FVF9ORUlHSF9QUk9YWV9ERUxBWT0xMSwKMTQ0NzQ6ICBORVRf
TkVJR0hfTE9DS1RJTUU9MTIsCjE0NDc0OiAgTkVUX05FSUdIX0dDX0lOVEVSVkFMPTEzLAoxNDQ3
NDogIE5FVF9ORUlHSF9HQ19USFJFU0gxPTE0LAoxNDQ3NDogIE5FVF9ORUlHSF9HQ19USFJFU0gy
PTE1LAoxNDQ3NDogIE5FVF9ORUlHSF9HQ19USFJFU0gzPTE2LAoxNDQ3NDogIE5FVF9ORUlHSF9S
RVRSQU5TX1RJTUVfTVM9MTcsCjE0NDc0OiAgTkVUX05FSUdIX1JFQUNIQUJMRV9USU1FX01TPTE4
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBORVRfREND
UF9ERUZBVUxUPTEsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3
NDogIE5FVF9JUFhfUFBST1BfQlJPQURDQVNUSU5HPTEsCjE0NDc0OiAgTkVUX0lQWF9GT1JXQVJE
SU5HPTIKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTkVU
X0xMQzI9MSwKMTQ0NzQ6ICBORVRfTExDX1NUQVRJT049MiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTkVUX0xMQzJfVElNRU9VVD0xLAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBORVRfTExDX1NUQVRJT05fQUNL
X1RJTUVPVVQ9MSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0
OiAgTkVUX0xMQzJfQUNLX1RJTUVPVVQ9MSwKMTQ0NzQ6ICBORVRfTExDMl9QX1RJTUVPVVQ9MiwK
MTQ0NzQ6ICBORVRfTExDMl9SRUpfVElNRU9VVD0zLAoxNDQ3NDogIE5FVF9MTEMyX0JVU1lfVElN
RU9VVD00LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBO
RVRfQVRBTEtfQUFSUF9FWFBJUllfVElNRT0xLAoxNDQ3NDogIE5FVF9BVEFMS19BQVJQX1RJQ0tf
VElNRT0yLAoxNDQ3NDogIE5FVF9BVEFMS19BQVJQX1JFVFJBTlNNSVRfTElNSVQ9MywKMTQ0NzQ6
ICBORVRfQVRBTEtfQUFSUF9SRVNPTFZFX1RJTUU9NAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIE5FVF9ORVRST01fREVGQVVMVF9QQVRIX1FV
QUxJVFk9MSwKMTQ0NzQ6ICBORVRfTkVUUk9NX09CU09MRVNDRU5DRV9DT1VOVF9JTklUSUFMSVNF
Uj0yLAoxNDQ3NDogIE5FVF9ORVRST01fTkVUV09SS19UVExfSU5JVElBTElTRVI9MywKMTQ0NzQ6
ICBORVRfTkVUUk9NX1RSQU5TUE9SVF9USU1FT1VUPTQsCjE0NDc0OiAgTkVUX05FVFJPTV9UUkFO
U1BPUlRfTUFYSU1VTV9UUklFUz01LAoxNDQ3NDogIE5FVF9ORVRST01fVFJBTlNQT1JUX0FDS05P
V0xFREdFX0RFTEFZPTYsCjE0NDc0OiAgTkVUX05FVFJPTV9UUkFOU1BPUlRfQlVTWV9ERUxBWT03
LAoxNDQ3NDogIE5FVF9ORVRST01fVFJBTlNQT1JUX1JFUVVFU1RFRF9XSU5ET1dfU0laRT04LAox
NDQ3NDogIE5FVF9ORVRST01fVFJBTlNQT1JUX05PX0FDVElWSVRZX1RJTUVPVVQ9OSwKMTQ0NzQ6
ICBORVRfTkVUUk9NX1JPVVRJTkdfQ09OVFJPTD0xMCwKMTQ0NzQ6ICBORVRfTkVUUk9NX0xJTktf
RkFJTFNfQ09VTlQ9MTEsCjE0NDc0OiAgTkVUX05FVFJPTV9SRVNFVD0xMgoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBORVRfQVgyNV9JUF9ERUZBVUxUX01P
REU9MSwKMTQ0NzQ6ICBORVRfQVgyNV9ERUZBVUxUX01PREU9MiwKMTQ0NzQ6ICBORVRfQVgyNV9C
QUNLT0ZGX1RZUEU9MywKMTQ0NzQ6ICBORVRfQVgyNV9DT05ORUNUX01PREU9NCwKMTQ0NzQ6ICBO
RVRfQVgyNV9TVEFOREFSRF9XSU5ET1c9NSwKMTQ0NzQ6ICBORVRfQVgyNV9FWFRFTkRFRF9XSU5E
T1c9NiwKMTQ0NzQ6ICBORVRfQVgyNV9UMV9USU1FT1VUPTcsCjE0NDc0OiAgTkVUX0FYMjVfVDJf
VElNRU9VVD04LAoxNDQ3NDogIE5FVF9BWDI1X1QzX1RJTUVPVVQ9OSwKMTQ0NzQ6ICBORVRfQVgy
NV9JRExFX1RJTUVPVVQ9MTAsCjE0NDc0OiAgTkVUX0FYMjVfTjI9MTEsCjE0NDc0OiAgTkVUX0FY
MjVfUEFDTEVOPTEyLAoxNDQ3NDogIE5FVF9BWDI1X1BST1RPQ09MPTEzLAoxNDQ3NDogIE5FVF9B
WDI1X0RBTUFfU0xBVkVfVElNRU9VVD0xNAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBlbnVtIHsKMTQ0NzQ6ICBORVRfUk9TRV9SRVNUQVJUX1JFUVVFU1RfVElNRU9VVD0xLAoxNDQ3
NDogIE5FVF9ST1NFX0NBTExfUkVRVUVTVF9USU1FT1VUPTIsCjE0NDc0OiAgTkVUX1JPU0VfUkVT
RVRfUkVRVUVTVF9USU1FT1VUPTMsCjE0NDc0OiAgTkVUX1JPU0VfQ0xFQVJfUkVRVUVTVF9USU1F
T1VUPTQsCjE0NDc0OiAgTkVUX1JPU0VfQUNLX0hPTERfQkFDS19USU1FT1VUPTUsCjE0NDc0OiAg
TkVUX1JPU0VfUk9VVElOR19DT05UUk9MPTYsCjE0NDc0OiAgTkVUX1JPU0VfTElOS19GQUlMX1RJ
TUVPVVQ9NywKMTQ0NzQ6ICBORVRfUk9TRV9NQVhfVkNTPTgsCjE0NDc0OiAgTkVUX1JPU0VfV0lO
RE9XX1NJWkU9OSwKMTQ0NzQ6ICBORVRfUk9TRV9OT19BQ1RJVklUWV9USU1FT1VUPTEwCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIE5FVF9YMjVfUkVTVEFS
VF9SRVFVRVNUX1RJTUVPVVQ9MSwKMTQ0NzQ6ICBORVRfWDI1X0NBTExfUkVRVUVTVF9USU1FT1VU
PTIsCjE0NDc0OiAgTkVUX1gyNV9SRVNFVF9SRVFVRVNUX1RJTUVPVVQ9MywKMTQ0NzQ6ICBORVRf
WDI1X0NMRUFSX1JFUVVFU1RfVElNRU9VVD00LAoxNDQ3NDogIE5FVF9YMjVfQUNLX0hPTERfQkFD
S19USU1FT1VUPTUsCjE0NDc0OiAgTkVUX1gyNV9GT1JXQVJEPTYKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIE5FVF9UUl9SSUZfVElNRU9VVD0x
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIE5FVF9ERUNO
RVRfTk9ERV9UWVBFID0gMSwKMTQ0NzQ6ICBORVRfREVDTkVUX05PREVfQUREUkVTUyA9IDIsCjE0
NDc0OiAgTkVUX0RFQ05FVF9OT0RFX05BTUUgPSAzLAoxNDQ3NDogIE5FVF9ERUNORVRfREVGQVVM
VF9ERVZJQ0UgPSA0LAoxNDQ3NDogIE5FVF9ERUNORVRfVElNRV9XQUlUID0gNSwKMTQ0NzQ6ICBO
RVRfREVDTkVUX0ROX0NPVU5UID0gNiwKMTQ0NzQ6ICBORVRfREVDTkVUX0RJX0NPVU5UID0gNywK
MTQ0NzQ6ICBORVRfREVDTkVUX0RSX0NPVU5UID0gOCwKMTQ0NzQ6ICBORVRfREVDTkVUX0RTVF9H
Q19JTlRFUlZBTCA9IDksCjE0NDc0OiAgTkVUX0RFQ05FVF9DT05GID0gMTAsCjE0NDc0OiAgTkVU
X0RFQ05FVF9OT19GQ19NQVhfQ1dORCA9IDExLAoxNDQ3NDogIE5FVF9ERUNORVRfTUVNID0gMTIs
CjE0NDc0OiAgTkVUX0RFQ05FVF9STUVNID0gMTMsCjE0NDc0OiAgTkVUX0RFQ05FVF9XTUVNID0g
MTQsCjE0NDc0OiAgTkVUX0RFQ05FVF9ERUJVR19MRVZFTCA9IDI1NQoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBORVRfREVDTkVUX0NPTkZfTE9PUEJBQ0sg
PSAtMiwKMTQ0NzQ6ICBORVRfREVDTkVUX0NPTkZfRERDTVAgPSAtMywKMTQ0NzQ6ICBORVRfREVD
TkVUX0NPTkZfUFBQID0gLTQsCjE0NDc0OiAgTkVUX0RFQ05FVF9DT05GX1gyNSA9IC01LAoxNDQ3
NDogIE5FVF9ERUNORVRfQ09ORl9HUkUgPSAtNiwKMTQ0NzQ6ICBORVRfREVDTkVUX0NPTkZfRVRI
RVIgPSAtNwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSB7CjE0NDc0OiAgTkVUX0RFQ05FVF9DT05GX0RFVl9QUklPUklUWSA9IDEsCjE0NDc0OiAg
TkVUX0RFQ05FVF9DT05GX0RFVl9UMSA9IDIsCjE0NDc0OiAgTkVUX0RFQ05FVF9DT05GX0RFVl9U
MiA9IDMsCjE0NDc0OiAgTkVUX0RFQ05FVF9DT05GX0RFVl9UMyA9IDQsCjE0NDc0OiAgTkVUX0RF
Q05FVF9DT05GX0RFVl9GT1JXQVJESU5HID0gNSwKMTQ0NzQ6ICBORVRfREVDTkVUX0NPTkZfREVW
X0JMS1NJWkUgPSA2LAoxNDQ3NDogIE5FVF9ERUNORVRfQ09ORl9ERVZfU1RBVEUgPSA3CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIE5FVF9TQ1RQX1JUT19J
TklUSUFMID0gMSwKMTQ0NzQ6ICBORVRfU0NUUF9SVE9fTUlOID0gMiwKMTQ0NzQ6ICBORVRfU0NU
UF9SVE9fTUFYID0gMywKMTQ0NzQ6ICBORVRfU0NUUF9SVE9fQUxQSEEgPSA0LAoxNDQ3NDogIE5F
VF9TQ1RQX1JUT19CRVRBID0gNSwKMTQ0NzQ6ICBORVRfU0NUUF9WQUxJRF9DT09LSUVfTElGRSA9
IDYsCjE0NDc0OiAgTkVUX1NDVFBfQVNTT0NJQVRJT05fTUFYX1JFVFJBTlMgPSA3LAoxNDQ3NDog
IE5FVF9TQ1RQX1BBVEhfTUFYX1JFVFJBTlMgPSA4LAoxNDQ3NDogIE5FVF9TQ1RQX01BWF9JTklU
X1JFVFJBTlNNSVRTID0gOSwKMTQ0NzQ6ICBORVRfU0NUUF9IQl9JTlRFUlZBTCA9IDEwLAoxNDQ3
NDogIE5FVF9TQ1RQX1BSRVNFUlZFX0VOQUJMRSA9IDExLAoxNDQ3NDogIE5FVF9TQ1RQX01BWF9C
VVJTVCA9IDEyLAoxNDQ3NDogIE5FVF9TQ1RQX0FERElQX0VOQUJMRSA9IDEzLAoxNDQ3NDogIE5F
VF9TQ1RQX1BSU0NUUF9FTkFCTEUgPSAxNCwKMTQ0NzQ6ICBORVRfU0NUUF9TTkRCVUZfUE9MSUNZ
ID0gMTUsCjE0NDc0OiAgTkVUX1NDVFBfU0FDS19USU1FT1VUID0gMTYsCjE0NDc0OiAgTkVUX1ND
VFBfUkNWQlVGX1BPTElDWSA9IDE3LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
bnVtIHsKMTQ0NzQ6ICBORVRfQlJJREdFX05GX0NBTExfQVJQVEFCTEVTID0gMSwKMTQ0NzQ6ICBO
RVRfQlJJREdFX05GX0NBTExfSVBUQUJMRVMgPSAyLAoxNDQ3NDogIE5FVF9CUklER0VfTkZfQ0FM
TF9JUDZUQUJMRVMgPSAzLAoxNDQ3NDogIE5FVF9CUklER0VfTkZfRklMVEVSX1ZMQU5fVEFHR0VE
ID0gNCwKMTQ0NzQ6ICBORVRfQlJJREdFX05GX0ZJTFRFUl9QUFBPRV9UQUdHRUQgPSA1LAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6
ICBGU19OUklOT0RFPTEsCjE0NDc0OiAgRlNfU1RBVElOT0RFPTIsCjE0NDc0OiAgRlNfTUFYSU5P
REU9MywKMTQ0NzQ6ICBGU19OUkRRVU9UPTQsCjE0NDc0OiAgRlNfTUFYRFFVT1Q9NSwKMTQ0NzQ6
ICBGU19OUkZJTEU9NiwKMTQ0NzQ6ICBGU19NQVhGSUxFPTcsCjE0NDc0OiAgRlNfREVOVFJZPTgs
CjE0NDc0OiAgRlNfTlJTVVBFUj05LAoxNDQ3NDogIEZTX01BWFNVUEVSPTEwLAoxNDQ3NDogIEZT
X09WRVJGTE9XVUlEPTExLAoxNDQ3NDogIEZTX09WRVJGTE9XR0lEPTEyLAoxNDQ3NDogIEZTX0xF
QVNFUz0xMywKMTQ0NzQ6ICBGU19ESVJfTk9USUZZPTE0LAoxNDQ3NDogIEZTX0xFQVNFX1RJTUU9
MTUsCjE0NDc0OiAgRlNfRFFTVEFUUz0xNiwKMTQ0NzQ6ICBGU19YRlM9MTcsCjE0NDc0OiAgRlNf
QUlPX05SPTE4LAoxNDQ3NDogIEZTX0FJT19NQVhfTlI9MTksCjE0NDc0OiAgRlNfSU5PVElGWT0y
MCwKMTQ0NzQ6ICBGU19PQ0ZTMj05ODgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGVudW0gewoxNDQ3NDogIEZTX0RRX0xPT0tVUFMgPSAxLAoxNDQ3NDogIEZTX0RRX0RST1BTID0g
MiwKMTQ0NzQ6ICBGU19EUV9SRUFEUyA9IDMsCjE0NDc0OiAgRlNfRFFfV1JJVEVTID0gNCwKMTQ0
NzQ6ICBGU19EUV9DQUNIRV9ISVRTID0gNSwKMTQ0NzQ6ICBGU19EUV9BTExPQ0FURUQgPSA2LAox
NDQ3NDogIEZTX0RRX0ZSRUUgPSA3LAoxNDQ3NDogIEZTX0RRX1NZTkNTID0gOCwKMTQ0NzQ6ICBG
U19EUV9XQVJOSU5HUyA9IDksCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBERVZfQ0RST009MSwKMTQ0NzQ6ICBERVZfSFdNT049
MiwKMTQ0NzQ6ICBERVZfUEFSUE9SVD0zLAoxNDQ3NDogIERFVl9SQUlEPTQsCjE0NDc0OiAgREVW
X01BQ19ISUQ9NSwKMTQ0NzQ6ICBERVZfU0NTST02LAoxNDQ3NDogIERFVl9JUE1JPTcsCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERFVl9DRFJPTV9JTkZP
PTEsCjE0NDc0OiAgREVWX0NEUk9NX0FVVE9DTE9TRT0yLAoxNDQ3NDogIERFVl9DRFJPTV9BVVRP
RUpFQ1Q9MywKMTQ0NzQ6ICBERVZfQ0RST01fREVCVUc9NCwKMTQ0NzQ6ICBERVZfQ0RST01fTE9D
Sz01LAoxNDQ3NDogIERFVl9DRFJPTV9DSEVDS19NRURJQT02CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERFVl9QQVJQT1JUX0RFRkFVTFQ9LTMKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgREVWX1JBSURfU1BFRURf
TElNSVRfTUlOPTEsCjE0NDc0OiAgREVWX1JBSURfU1BFRURfTElNSVRfTUFYPTIKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgREVWX1BBUlBPUlRfREVGQVVM
VF9USU1FU0xJQ0U9MSwKMTQ0NzQ6ICBERVZfUEFSUE9SVF9ERUZBVUxUX1NQSU5USU1FPTIKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgREVWX1BBUlBPUlRf
U1BJTlRJTUU9MSwKMTQ0NzQ6ICBERVZfUEFSUE9SVF9CQVNFX0FERFI9MiwKMTQ0NzQ6ICBERVZf
UEFSUE9SVF9JUlE9MywKMTQ0NzQ6ICBERVZfUEFSUE9SVF9ETUE9NCwKMTQ0NzQ6ICBERVZfUEFS
UE9SVF9NT0RFUz01LAoxNDQ3NDogIERFVl9QQVJQT1JUX0RFVklDRVM9NiwKMTQ0NzQ6ICBERVZf
UEFSUE9SVF9BVVRPUFJPQkU9MTYKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51
bSB7CjE0NDc0OiAgREVWX1BBUlBPUlRfREVWSUNFU19BQ1RJVkU9LTMsCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERFVl9QQVJQT1JUX0RFVklDRV9USU1F
U0xJQ0U9MSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAg
REVWX01BQ19ISURfS0VZQk9BUkRfU0VORFNfTElOVVhfS0VZQ09ERVM9MSwKMTQ0NzQ6ICBERVZf
TUFDX0hJRF9LRVlCT0FSRF9MT0NLX0tFWUNPREVTPTIsCjE0NDc0OiAgREVWX01BQ19ISURfTU9V
U0VfQlVUVE9OX0VNVUxBVElPTj0zLAoxNDQ3NDogIERFVl9NQUNfSElEX01PVVNFX0JVVFRPTjJf
S0VZQ09ERT00LAoxNDQ3NDogIERFVl9NQUNfSElEX01PVVNFX0JVVFRPTjNfS0VZQ09ERT01LAox
NDQ3NDogIERFVl9NQUNfSElEX0FEQl9NT1VTRV9TRU5EU19LRVlDT0RFUz02CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERFVl9TQ1NJX0xPR0dJTkdfTEVW
RUw9MSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgREVW
X0lQTUlfUE9XRVJPRkZfUE9XRVJDWUNMRT0xLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBlbnVtCjE0NDc0OiB7CjE0NDc0OiAgQUJJX0RFRkhBTkRMRVJfQ09GRj0xLAoxNDQ3NDog
IEFCSV9ERUZIQU5ETEVSX0VMRj0yLAoxNDQ3NDogIEFCSV9ERUZIQU5ETEVSX0xDQUxMNz0zLAox
NDQ3NDogIEFCSV9ERUZIQU5ETEVSX0xJQkNTTz00LAoxNDQ3NDogIEFCSV9UUkFDRT01LAoxNDQ3
NDogIEFCSV9GQUtFX1VUU05BTUU9NiwKMTQ0NzQ6IH07CjE0NDc0OiAjIDMxICIuL2luY2x1ZGUv
bGludXgvc3lzY3RsLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY29tcGxldGlv
bjsKMTQ0NzQ6IHN0cnVjdCBjdGxfdGFibGU7CjE0NDc0OiBzdHJ1Y3QgbnNwcm94eTsKMTQ0NzQ6
IHN0cnVjdCBjdGxfdGFibGVfcm9vdDsKMTQ0NzQ6IHN0cnVjdCBjdGxfdGFibGVfaGVhZGVyOwox
NDQ3NDogc3RydWN0IGN0bF9kaXI7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY29uc3QgaW50IHN5c2N0bF92YWxzW107CjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgaW50IHByb2NfaGFuZGxlciAoc3RydWN0IGN0bF90YWJsZSAqY3Rs
LCBpbnQgd3JpdGUsCjE0NDc0OiAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm
X3QgKnBwb3MpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHByb2NfZG9zdHJpbmcoc3RydWN0
IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAgICAgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICop
OwoxNDQ3NDogZXh0ZXJuIGludCBwcm9jX2RvaW50dmVjKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50
LAoxNDQ3NDogICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgcHJvY19kb3VpbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAgICAgdm9p
ZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwoxNDQ3NDogZXh0ZXJuIGludCBwcm9jX2RvaW50dmVj
X21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKMTQ0NzQ6ICAgICB2b2lkICosIHNpemVf
dCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBleHRlcm4gaW50IHByb2NfZG91aW50dmVjX21pbm1heChz
dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoxNDQ3NDogICAgICB2b2lkICpidWZm
ZXIsIHNpemVfdCAqbGVucCwKMTQ0NzQ6ICAgICAgbG9mZl90ICpwcG9zKTsKMTQ0NzQ6IGV4dGVy
biBpbnQgcHJvY19kb2ludHZlY19qaWZmaWVzKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3
NDogICAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBleHRlcm4gaW50IHBy
b2NfZG9pbnR2ZWNfdXNlcmh6X2ppZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0
OiAgICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcHJv
Y19kb2ludHZlY19tc19qaWZmaWVzKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3NDogICAg
ICAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBleHRlcm4gaW50IHByb2Nf
ZG91bG9uZ3ZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAgICAgICB2
b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBleHRlcm4gaW50IHByb2NfZG91bG9u
Z3ZlY19tc19qaWZmaWVzX21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50LAoxNDQ3
NDogICAgICAgICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgcHJvY19kb19sYXJnZV9iaXRtYXAoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAg
ICAgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwoxNDQ3NDogZXh0ZXJuIGludCBwcm9jX2Rv
X3N0YXRpY19rZXkoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKMTQ0NzQ6ICAg
ICAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAoxNDQ3NDogICAgICAgICAgbG9mZl90
ICpwcG9zKTsKMTQ0NzQ6ICMgMTA1ICIuL2luY2x1ZGUvbGludXgvc3lzY3RsLmgiCjE0NDc0OiBz
dHJ1Y3QgY3RsX3RhYmxlX3BvbGwgewoxNDQ3NDogIGF0b21pY190IGV2ZW50OwoxNDQ3NDogIHdh
aXRfcXVldWVfaGVhZF90IHdhaXQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICpwcm9j
X3N5c19wb2xsX2V2ZW50KHN0cnVjdCBjdGxfdGFibGVfcG9sbCAqcG9sbCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gKHZvaWQgKikodW5zaWduZWQgbG9uZylhdG9taWNfcmVhZCgmcG9sbC0+ZXZl
bnQpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMjMgIi4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIKMTQ0
NzQ6IHN0cnVjdCBjdGxfdGFibGUgewoxNDQ3NDogIGNvbnN0IGNoYXIgKnByb2NuYW1lOwoxNDQ3
NDogIHZvaWQgKmRhdGE7CjE0NDc0OiAgaW50IG1heGxlbjsKMTQ0NzQ6ICB1bW9kZV90IG1vZGU7
CjE0NDc0OiAgc3RydWN0IGN0bF90YWJsZSAqY2hpbGQ7CjE0NDc0OiAgcHJvY19oYW5kbGVyICpw
cm9jX2hhbmRsZXI7CjE0NDc0OiAgc3RydWN0IGN0bF90YWJsZV9wb2xsICpwb2xsOwoxNDQ3NDog
IHZvaWQgKmV4dHJhMTsKMTQ0NzQ6ICB2b2lkICpleHRyYTI7CjE0NDc0OiB9IF9fYXR0cmlidXRl
X18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGN0bF9ub2Rl
IHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9kZSBub2RlOwoxNDQ3NDogIHN0cnVjdCBjdGxfdGFibGVf
aGVhZGVyICpoZWFkZXI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGN0bF90YWJsZV9oZWFkZXIgewoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0
IHsKMTQ0NzQ6ICAgIHN0cnVjdCBjdGxfdGFibGUgKmN0bF90YWJsZTsKMTQ0NzQ6ICAgIGludCB1
c2VkOwoxNDQ3NDogICAgaW50IGNvdW50OwoxNDQ3NDogICAgaW50IG5yZWc7CjE0NDc0OiAgIH07
CjE0NDc0OiAgIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKMTQ0NzQ6ICB9OwoxNDQ3NDogIHN0
cnVjdCBjb21wbGV0aW9uICp1bnJlZ2lzdGVyaW5nOwoxNDQ3NDogIHN0cnVjdCBjdGxfdGFibGUg
KmN0bF90YWJsZV9hcmc7CjE0NDc0OiAgc3RydWN0IGN0bF90YWJsZV9yb290ICpyb290OwoxNDQ3
NDogIHN0cnVjdCBjdGxfdGFibGVfc2V0ICpzZXQ7CjE0NDc0OiAgc3RydWN0IGN0bF9kaXIgKnBh
cmVudDsKMTQ0NzQ6ICBzdHJ1Y3QgY3RsX25vZGUgKm5vZGU7CjE0NDc0OiAgc3RydWN0IGhsaXN0
X2hlYWQgaW5vZGVzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGN0bF9kaXIgewox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgaGVhZGVyOwoxNDQ3NDogIHN0
cnVjdCByYl9yb290IHJvb3Q7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3RsX3Rh
YmxlX3NldCB7CjE0NDc0OiAgaW50ICgqaXNfc2Vlbikoc3RydWN0IGN0bF90YWJsZV9zZXQgKik7
CjE0NDc0OiAgc3RydWN0IGN0bF9kaXIgZGlyOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGN0bF90YWJsZV9yb290IHsKMTQ0NzQ6ICBzdHJ1Y3QgY3RsX3RhYmxlX3NldCBkZWZhdWx0
X3NldDsKMTQ0NzQ6ICBzdHJ1Y3QgY3RsX3RhYmxlX3NldCAqKCpsb29rdXApKHN0cnVjdCBjdGxf
dGFibGVfcm9vdCAqcm9vdCk7CjE0NDc0OiAgdm9pZCAoKnNldF9vd25lcnNoaXApKHN0cnVjdCBj
dGxfdGFibGVfaGVhZGVyICpoZWFkLAoxNDQ3NDogICAgICAgICAgc3RydWN0IGN0bF90YWJsZSAq
dGFibGUsCjE0NDc0OiAgICAgICAgICBrdWlkX3QgKnVpZCwga2dpZF90ICpnaWQpOwoxNDQ3NDog
IGludCAoKnBlcm1pc3Npb25zKShzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlciAqaGVhZCwgc3RydWN0
IGN0bF90YWJsZSAqdGFibGUpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgY3RsX3BhdGggewoxNDQ3NDogIGNvbnN0IGNoYXIgKnByb2NuYW1lOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgcHJvY19zeXNfcG9sbF9ub3RpZnkoc3Ry
dWN0IGN0bF90YWJsZV9wb2xsICpwb2xsKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0
dXBfc3lzY3RsX3NldChzdHJ1Y3QgY3RsX3RhYmxlX3NldCAqcCwKMTQ0NzQ6ICBzdHJ1Y3QgY3Rs
X3RhYmxlX3Jvb3QgKnJvb3QsCjE0NDc0OiAgaW50ICgqaXNfc2Vlbikoc3RydWN0IGN0bF90YWJs
ZV9zZXQgKikpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgcmV0aXJlX3N5c2N0bF9zZXQoc3RydWN0IGN0
bF90YWJsZV9zZXQgKnNldCk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjdGxfdGFibGVfaGVhZGVy
ICpfX3JlZ2lzdGVyX3N5c2N0bF90YWJsZSgKMTQ0NzQ6ICBzdHJ1Y3QgY3RsX3RhYmxlX3NldCAq
c2V0LAoxNDQ3NDogIGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlKTsK
MTQ0NzQ6IHN0cnVjdCBjdGxfdGFibGVfaGVhZGVyICpfX3JlZ2lzdGVyX3N5c2N0bF9wYXRocygK
MTQ0NzQ6ICBzdHJ1Y3QgY3RsX3RhYmxlX3NldCAqc2V0LAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBj
dGxfcGF0aCAqcGF0aCwgc3RydWN0IGN0bF90YWJsZSAqdGFibGUpOwoxNDQ3NDogc3RydWN0IGN0
bF90YWJsZV9oZWFkZXIgKnJlZ2lzdGVyX3N5c2N0bChjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qg
Y3RsX3RhYmxlICp0YWJsZSk7CjE0NDc0OiBzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlciAqcmVnaXN0
ZXJfc3lzY3RsX3RhYmxlKHN0cnVjdCBjdGxfdGFibGUgKiB0YWJsZSk7CjE0NDc0OiBzdHJ1Y3Qg
Y3RsX3RhYmxlX2hlYWRlciAqcmVnaXN0ZXJfc3lzY3RsX3BhdGhzKGNvbnN0IHN0cnVjdCBjdGxf
cGF0aCAqcGF0aCwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlKTsKMTQ0NzQ6
IAoxNDQ3NDogdm9pZCB1bnJlZ2lzdGVyX3N5c2N0bF90YWJsZShzdHJ1Y3QgY3RsX3RhYmxlX2hl
YWRlciAqIHRhYmxlKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBzeXNjdGxfaW5pdCh2b2lk
KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBjdGxfdGFibGUgc3lzY3RsX21vdW50X3Bv
aW50W107CjE0NDc0OiAjIDI0MSAiLi9pbmNsdWRlL2xpbnV4L3N5c2N0bC5oIgoxNDQ3NDogaW50
IHN5c2N0bF9tYXhfdGhyZWFkcyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAox
NDQ3NDogICAgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7
CjE0NDc0OiAjIDE4ICIuL2luY2x1ZGUvbGludXgva2V5LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9hc3NvY19hcnJheS5oIiAxCjE0NDc0OiAjIDIyICIu
L2luY2x1ZGUvbGludXgvYXNzb2NfYXJyYXkuaCIKMTQ0NzQ6IHN0cnVjdCBhc3NvY19hcnJheSB7
CjE0NDc0OiAgc3RydWN0IGFzc29jX2FycmF5X3B0ciAqcm9vdDsKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIG5yX2xlYXZlc19vbl90cmVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGFzc29jX2FycmF5X29wcyB7CjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nICgqZ2V0X2tleV9jaHVuaykoY29uc3Qgdm9pZCAqaW5kZXhfa2V5LCBpbnQg
bGV2ZWwpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nICgqZ2V0X29iamVj
dF9rZXlfY2h1bmspKGNvbnN0IHZvaWQgKm9iamVjdCwgaW50IGxldmVsKTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgYm9vbCAoKmNvbXBhcmVfb2JqZWN0KShjb25zdCB2b2lkICpvYmplY3QsIGNv
bnN0IHZvaWQgKmluZGV4X2tleSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBpbnQgKCpkaWZmX29iamVjdHMpKGNvbnN0IHZvaWQgKm9iamVjdCwgY29uc3Qgdm9pZCAq
aW5kZXhfa2V5KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmZyZWVfb2JqZWN0KSh2
b2lkICpvYmplY3QpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGFzc29jX2FycmF5X2VkaXQ7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXNzb2Nf
YXJyYXlfaW5pdChzdHJ1Y3QgYXNzb2NfYXJyYXkgKmFycmF5KQoxNDQ3NDogewoxNDQ3NDogIGFy
cmF5LT5yb290ID0gKCh2b2lkICopMCk7CjE0NDc0OiAgYXJyYXktPm5yX2xlYXZlc19vbl90cmVl
ID0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBhc3NvY19hcnJheV9pdGVy
YXRlKGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheSAqYXJyYXksCjE0NDc0OiAgICAgICAgICAgaW50
ICgqaXRlcmF0b3IpKGNvbnN0IHZvaWQgKm9iamVjdCwKMTQ0NzQ6ICAgICAgICAgICAgIHZvaWQg
Kml0ZXJhdG9yX2RhdGEpLAoxNDQ3NDogICAgICAgICAgIHZvaWQgKml0ZXJhdG9yX2RhdGEpOwox
NDQ3NDogZXh0ZXJuIHZvaWQgKmFzc29jX2FycmF5X2ZpbmQoY29uc3Qgc3RydWN0IGFzc29jX2Fy
cmF5ICphcnJheSwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheV9vcHMg
Km9wcywKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IHZvaWQgKmluZGV4X2tleSk7CjE0NDc0OiBleHRl
cm4gdm9pZCBhc3NvY19hcnJheV9kZXN0cm95KHN0cnVjdCBhc3NvY19hcnJheSAqYXJyYXksCjE0
NDc0OiAgICAgY29uc3Qgc3RydWN0IGFzc29jX2FycmF5X29wcyAqb3BzKTsKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdCAqYXNzb2NfYXJyYXlfaW5zZXJ0KHN0cnVjdCBhc3Nv
Y19hcnJheSAqYXJyYXksCjE0NDc0OiAgICAgICAgICBjb25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXlf
b3BzICpvcHMsCjE0NDc0OiAgICAgICAgICBjb25zdCB2b2lkICppbmRleF9rZXksCjE0NDc0OiAg
ICAgICAgICB2b2lkICpvYmplY3QpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYXNzb2NfYXJyYXlfaW5z
ZXJ0X3NldF9vYmplY3Qoc3RydWN0IGFzc29jX2FycmF5X2VkaXQgKmVkaXQsCjE0NDc0OiAgICAg
ICAgdm9pZCAqb2JqZWN0KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdCAq
YXNzb2NfYXJyYXlfZGVsZXRlKHN0cnVjdCBhc3NvY19hcnJheSAqYXJyYXksCjE0NDc0OiAgICAg
ICAgICBjb25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXlfb3BzICpvcHMsCjE0NDc0OiAgICAgICAgICBj
b25zdCB2b2lkICppbmRleF9rZXkpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBhc3NvY19hcnJheV9l
ZGl0ICphc3NvY19hcnJheV9jbGVhcihzdHJ1Y3QgYXNzb2NfYXJyYXkgKmFycmF5LAoxNDQ3NDog
ICAgICAgICBjb25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXlfb3BzICpvcHMpOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgYXNzb2NfYXJyYXlfYXBwbHlfZWRpdChzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdCAqZWRp
dCk7CjE0NDc0OiBleHRlcm4gdm9pZCBhc3NvY19hcnJheV9jYW5jZWxfZWRpdChzdHJ1Y3QgYXNz
b2NfYXJyYXlfZWRpdCAqZWRpdCk7CjE0NDc0OiBleHRlcm4gaW50IGFzc29jX2FycmF5X2djKHN0
cnVjdCBhc3NvY19hcnJheSAqYXJyYXksCjE0NDc0OiAgICAgIGNvbnN0IHN0cnVjdCBhc3NvY19h
cnJheV9vcHMgKm9wcywKMTQ0NzQ6ICAgICAgYm9vbCAoKml0ZXJhdG9yKSh2b2lkICpvYmplY3Qs
IHZvaWQgKml0ZXJhdG9yX2RhdGEpLAoxNDQ3NDogICAgICB2b2lkICppdGVyYXRvcl9kYXRhKTsK
MTQ0NzQ6ICMgMjEgIi4vaW5jbHVkZS9saW51eC9rZXkuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIGludDMy
X3Qga2V5X3NlcmlhbF90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdWludDMyX3Qg
a2V5X3Blcm1fdDsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtleTsKMTQ0NzQ6IHN0cnVjdCBuZXQ7
CjE0NDc0OiAjIDc0ICIuL2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiBzdHJ1Y3Qgc2VxX2Zp
bGU7CjE0NDc0OiBzdHJ1Y3QgdXNlcl9zdHJ1Y3Q7CjE0NDc0OiBzdHJ1Y3Qgc2lnbmFsX3N0cnVj
dDsKMTQ0NzQ6IHN0cnVjdCBjcmVkOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2V5X3R5cGU7CjE0
NDc0OiBzdHJ1Y3Qga2V5X293bmVyOwoxNDQ3NDogc3RydWN0IGtleV90YWc7CjE0NDc0OiBzdHJ1
Y3Qga2V5cmluZ19saXN0OwoxNDQ3NDogc3RydWN0IGtleXJpbmdfbmFtZTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGtleV90YWcgewoxNDQ3NDogIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKMTQ0
NzQ6ICByZWZjb3VudF90IHVzYWdlOwoxNDQ3NDogIGJvb2wgcmVtb3ZlZDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBrZXlyaW5nX2luZGV4X2tleSB7CjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGhhc2g7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3
NDogCjE0NDc0OiAgICB1MTYgZGVzY19sZW47CjE0NDc0OiAgICBjaGFyIGRlc2Nbc2l6ZW9mKGxv
bmcpIC0gMl07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgfTsKMTQ0
NzQ6ICAgdW5zaWduZWQgbG9uZyB4OwoxNDQ3NDogIH07CjE0NDc0OiAgc3RydWN0IGtleV90eXBl
ICp0eXBlOwoxNDQ3NDogIHN0cnVjdCBrZXlfdGFnICpkb21haW5fdGFnOwoxNDQ3NDogIGNvbnN0
IGNoYXIgKmRlc2NyaXB0aW9uOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24ga2V5X3Bh
eWxvYWQgewoxNDQ3NDogIHZvaWQgKnJjdV9kYXRhMDsKMTQ0NzQ6ICB2b2lkICpkYXRhWzRdOwox
NDQ3NDogfTsKMTQ0NzQ6ICMgMTMwICIuL2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiB0eXBl
ZGVmIHN0cnVjdCBfX2tleV9yZWZlcmVuY2Vfd2l0aF9hdHRyaWJ1dGVzICprZXlfcmVmX3Q7CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGtleV9yZWZfdCBtYWtlX2tleV9yZWYoY29uc3Qgc3RydWN0IGtleSAqa2V5
LAoxNDQ3NDogICAgICAgICAgYm9vbCBwb3NzZXNzaW9uKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biAoa2V5X3JlZl90KSAoKHVuc2lnbmVkIGxvbmcpIGtleSB8IHBvc3Nlc3Npb24pOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2V5ICprZXlfcmVmX3RvX3B0cihjb25zdCBrZXlfcmVm
X3Qga2V5X3JlZikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHN0cnVjdCBrZXkgKikgKCh1bnNp
Z25lZCBsb25nKSBrZXlfcmVmICYgfjFVTCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
aXNfa2V5X3Bvc3Nlc3NlZChjb25zdCBrZXlfcmVmX3Qga2V5X3JlZikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gKHVuc2lnbmVkIGxvbmcpIGtleV9yZWYgJiAxVUw7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgaW50ICgqa2V5X3Jlc3RyaWN0X2xpbmtfZnVuY190KShzdHJ1Y3Qga2V5
ICpkZXN0X2tleXJpbmcsCjE0NDc0OiAgICAgIGNvbnN0IHN0cnVjdCBrZXlfdHlwZSAqdHlwZSwK
MTQ0NzQ6ICAgICAgY29uc3QgdW5pb24ga2V5X3BheWxvYWQgKnBheWxvYWQsCjE0NDc0OiAgICAg
IHN0cnVjdCBrZXkgKnJlc3RyaWN0aW9uX2tleSk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBrZXlf
cmVzdHJpY3Rpb24gewoxNDQ3NDogIGtleV9yZXN0cmljdF9saW5rX2Z1bmNfdCBjaGVjazsKMTQ0
NzQ6ICBzdHJ1Y3Qga2V5ICprZXk7CjE0NDc0OiAgc3RydWN0IGtleV90eXBlICprZXl0eXBlOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBrZXlfc3RhdGUgewoxNDQ3NDogIEtFWV9JU19V
TklOU1RBTlRJQVRFRCwKMTQ0NzQ6ICBLRVlfSVNfUE9TSVRJVkUsCjE0NDc0OiB9OwoxNDQ3NDog
IyAxNzIgIi4vaW5jbHVkZS9saW51eC9rZXkuaCIKMTQ0NzQ6IHN0cnVjdCBrZXkgewoxNDQ3NDog
IHJlZmNvdW50X3QgdXNhZ2U7CjE0NDc0OiAga2V5X3NlcmlhbF90IHNlcmlhbDsKMTQ0NzQ6ICB1
bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBsaXN0X2hlYWQgZ3JhdmV5YXJkX2xpbms7CjE0NDc0OiAg
IHN0cnVjdCByYl9ub2RlIHNlcmlhbF9ub2RlOwoxNDQ3NDogIH07CjE0NDc0OiAgc3RydWN0IHJ3
X3NlbWFwaG9yZSBzZW07CjE0NDc0OiAgc3RydWN0IGtleV91c2VyICp1c2VyOwoxNDQ3NDogIHZv
aWQgKnNlY3VyaXR5OwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgdGltZTY0X3QgZXhwaXJ5Owox
NDQ3NDogICB0aW1lNjRfdCByZXZva2VkX2F0OwoxNDQ3NDogIH07CjE0NDc0OiAgdGltZTY0X3Qg
bGFzdF91c2VkX2F0OwoxNDQ3NDogIGt1aWRfdCB1aWQ7CjE0NDc0OiAga2dpZF90IGdpZDsKMTQ0
NzQ6ICBrZXlfcGVybV90IHBlcm07CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgcXVvdGFsZW47CjE0
NDc0OiAgdW5zaWduZWQgc2hvcnQgZGF0YWxlbjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBzaG9ydCBzdGF0ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZsYWdzOwoxNDQ3NDogIyAyMTkgIi4vaW5j
bHVkZS9saW51eC9rZXkuaCIKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBrZXlyaW5n
X2luZGV4X2tleSBpbmRleF9rZXk7CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICB1bnNpZ25l
ZCBsb25nIGhhc2g7CjE0NDc0OiAgICB1bnNpZ25lZCBsb25nIGxlbl9kZXNjOwoxNDQ3NDogICAg
c3RydWN0IGtleV90eXBlICp0eXBlOwoxNDQ3NDogICAgc3RydWN0IGtleV90YWcgKmRvbWFpbl90
YWc7CjE0NDc0OiAgICBjaGFyICpkZXNjcmlwdGlvbjsKMTQ0NzQ6ICAgfTsKMTQ0NzQ6ICB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7CjE0
NDc0OiAgIHVuaW9uIGtleV9wYXlsb2FkIHBheWxvYWQ7CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0
OiAKMTQ0NzQ6ICAgIHN0cnVjdCBsaXN0X2hlYWQgbmFtZV9saW5rOwoxNDQ3NDogICAgc3RydWN0
IGFzc29jX2FycmF5IGtleXM7CjE0NDc0OiAgIH07CjE0NDc0OiAgfTsKMTQ0NzQ6ICMgMjU0ICIu
L2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiAgc3RydWN0IGtleV9yZXN0cmljdGlvbiAqcmVz
dHJpY3RfbGluazsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga2V5ICpr
ZXlfYWxsb2Moc3RydWN0IGtleV90eXBlICp0eXBlLAoxNDQ3NDogICAgICAgICBjb25zdCBjaGFy
ICpkZXNjLAoxNDQ3NDogICAgICAgICBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAoxNDQ3NDogICAg
ICAgICBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwKMTQ0NzQ6ICAgICAgICAga2V5X3Blcm1fdCBw
ZXJtLAoxNDQ3NDogICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzLAoxNDQ3NDogICAgICAgICBz
dHJ1Y3Qga2V5X3Jlc3RyaWN0aW9uICpyZXN0cmljdF9saW5rKTsKMTQ0NzQ6ICMgMjczICIuL2lu
Y2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiBleHRlcm4gdm9pZCBrZXlfcmV2b2tlKHN0cnVjdCBr
ZXkgKmtleSk7CjE0NDc0OiBleHRlcm4gdm9pZCBrZXlfaW52YWxpZGF0ZShzdHJ1Y3Qga2V5ICpr
ZXkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQga2V5X3B1dChzdHJ1Y3Qga2V5ICprZXkpOwoxNDQ3NDog
ZXh0ZXJuIGJvb2wga2V5X3B1dF90YWcoc3RydWN0IGtleV90YWcgKnRhZyk7CjE0NDc0OiBleHRl
cm4gdm9pZCBrZXlfcmVtb3ZlX2RvbWFpbihzdHJ1Y3Qga2V5X3RhZyAqZG9tYWluX3RhZyk7CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHN0cnVjdCBrZXkgKl9fa2V5X2dldChzdHJ1Y3Qga2V5ICprZXkpCjE0NDc0
OiB7CjE0NDc0OiAgcmVmY291bnRfaW5jKCZrZXktPnVzYWdlKTsKMTQ0NzQ6ICByZXR1cm4ga2V5
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2V5ICprZXlfZ2V0KHN0cnVjdCBrZXkg
KmtleSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga2V5ID8gX19rZXlfZ2V0KGtleSkgOiBrZXk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2V5X3JlZl9wdXQoa2V5X3JlZl90IGtleV9y
ZWYpCjE0NDc0OiB7CjE0NDc0OiAga2V5X3B1dChrZXlfcmVmX3RvX3B0cihrZXlfcmVmKSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga2V5ICpyZXF1ZXN0X2tleV90YWco
c3RydWN0IGtleV90eXBlICp0eXBlLAoxNDQ3NDogICAgICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0
aW9uLAoxNDQ3NDogICAgICAgIHN0cnVjdCBrZXlfdGFnICpkb21haW5fdGFnLAoxNDQ3NDogICAg
ICAgIGNvbnN0IGNoYXIgKmNhbGxvdXRfaW5mbyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1
Y3Qga2V5ICpyZXF1ZXN0X2tleV9yY3Uoc3RydWN0IGtleV90eXBlICp0eXBlLAoxNDQ3NDogICAg
ICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uLAoxNDQ3NDogICAgICAgIHN0cnVjdCBrZXlfdGFn
ICpkb21haW5fdGFnKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBrZXkgKnJlcXVlc3Rf
a2V5X3dpdGhfYXV4ZGF0YShzdHJ1Y3Qga2V5X3R5cGUgKnR5cGUsCjE0NDc0OiAgICAgICAgICBj
b25zdCBjaGFyICpkZXNjcmlwdGlvbiwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBrZXlfdGFnICpk
b21haW5fdGFnLAoxNDQ3NDogICAgICAgICAgY29uc3Qgdm9pZCAqY2FsbG91dF9pbmZvLAoxNDQ3
NDogICAgICAgICAgc2l6ZV90IGNhbGxvdXRfbGVuLAoxNDQ3NDogICAgICAgICAgdm9pZCAqYXV4
KTsKMTQ0NzQ6ICMgMzE5ICIuL2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2V5
ICpyZXF1ZXN0X2tleShzdHJ1Y3Qga2V5X3R5cGUgKnR5cGUsCjE0NDc0OiAgICAgICAgICAgY29u
c3QgY2hhciAqZGVzY3JpcHRpb24sCjE0NDc0OiAgICAgICAgICAgY29uc3QgY2hhciAqY2FsbG91
dF9pbmZvKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiByZXF1ZXN0X2tleV90YWcodHlwZSwgZGVz
Y3JpcHRpb24sICgodm9pZCAqKTApLCBjYWxsb3V0X2luZm8pOwoxNDQ3NDogfQoxNDQ3NDogIyAz
NTggIi4vaW5jbHVkZS9saW51eC9rZXkuaCIKMTQ0NzQ6IGV4dGVybiBpbnQgd2FpdF9mb3Jfa2V5
X2NvbnN0cnVjdGlvbihzdHJ1Y3Qga2V5ICprZXksIGJvb2wgaW50cik7CjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiBpbnQga2V5X3ZhbGlkYXRlKGNvbnN0IHN0cnVjdCBrZXkgKmtleSk7CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBrZXlfcmVmX3Qga2V5X2NyZWF0ZV9vcl91cGRhdGUoa2V5X3JlZl90IGtl
eXJpbmcsCjE0NDc0OiAgICAgICAgICAgY29uc3QgY2hhciAqdHlwZSwKMTQ0NzQ6ICAgICAgICAg
ICBjb25zdCBjaGFyICpkZXNjcmlwdGlvbiwKMTQ0NzQ6ICAgICAgICAgICBjb25zdCB2b2lkICpw
YXlsb2FkLAoxNDQ3NDogICAgICAgICAgIHNpemVfdCBwbGVuLAoxNDQ3NDogICAgICAgICAgIGtl
eV9wZXJtX3QgcGVybSwKMTQ0NzQ6ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKTsKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBrZXlfdXBkYXRlKGtleV9yZWZfdCBrZXksCjE0NDc0OiAg
ICAgICAgIGNvbnN0IHZvaWQgKnBheWxvYWQsCjE0NDc0OiAgICAgICAgIHNpemVfdCBwbGVuKTsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBrZXlfbGluayhzdHJ1Y3Qga2V5ICprZXlyaW5nLAox
NDQ3NDogICAgICAgc3RydWN0IGtleSAqa2V5KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBr
ZXlfbW92ZShzdHJ1Y3Qga2V5ICprZXksCjE0NDc0OiAgICAgICBzdHJ1Y3Qga2V5ICpmcm9tX2tl
eXJpbmcsCjE0NDc0OiAgICAgICBzdHJ1Y3Qga2V5ICp0b19rZXlyaW5nLAoxNDQ3NDogICAgICAg
dW5zaWduZWQgaW50IGZsYWdzKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBrZXlfdW5saW5r
KHN0cnVjdCBrZXkgKmtleXJpbmcsCjE0NDc0OiAgICAgICAgIHN0cnVjdCBrZXkgKmtleSk7CjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga2V5ICprZXlyaW5nX2FsbG9jKGNvbnN0IGNoYXIg
KmRlc2NyaXB0aW9uLCBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAoxNDQ3NDogICAgICBjb25zdCBz
dHJ1Y3QgY3JlZCAqY3JlZCwKMTQ0NzQ6ICAgICAga2V5X3Blcm1fdCBwZXJtLAoxNDQ3NDogICAg
ICB1bnNpZ25lZCBsb25nIGZsYWdzLAoxNDQ3NDogICAgICBzdHJ1Y3Qga2V5X3Jlc3RyaWN0aW9u
ICpyZXN0cmljdF9saW5rLAoxNDQ3NDogICAgICBzdHJ1Y3Qga2V5ICpkZXN0KTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGludCByZXN0cmljdF9saW5rX3JlamVjdChzdHJ1Y3Qga2V5ICprZXlyaW5n
LAoxNDQ3NDogICAgIGNvbnN0IHN0cnVjdCBrZXlfdHlwZSAqdHlwZSwKMTQ0NzQ6ICAgICBjb25z
dCB1bmlvbiBrZXlfcGF5bG9hZCAqcGF5bG9hZCwKMTQ0NzQ6ICAgICBzdHJ1Y3Qga2V5ICpyZXN0
cmljdGlvbl9rZXkpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGtleXJpbmdfY2xlYXIoc3Ry
dWN0IGtleSAqa2V5cmluZyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBrZXlfcmVmX3Qga2V5cmlu
Z19zZWFyY2goa2V5X3JlZl90IGtleXJpbmcsCjE0NDc0OiAgICAgc3RydWN0IGtleV90eXBlICp0
eXBlLAoxNDQ3NDogICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uLAoxNDQ3NDogICAgIGJvb2wg
cmVjdXJzZSk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQga2V5cmluZ19hZGRfa2V5KHN0cnVj
dCBrZXkgKmtleXJpbmcsCjE0NDc0OiAgICAgICBzdHJ1Y3Qga2V5ICprZXkpOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gaW50IGtleXJpbmdfcmVzdHJpY3Qoa2V5X3JlZl90IGtleXJpbmcsIGNvbnN0
IGNoYXIgKnR5cGUsCjE0NDc0OiAgICAgICAgY29uc3QgY2hhciAqcmVzdHJpY3Rpb24pOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGtleSAqa2V5X2xvb2t1cChrZXlfc2VyaWFsX3QgaWQp
OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBrZXlfc2VyaWFsX3Qga2V5X3NlcmlhbChjb25zdCBzdHJ1Y3Qga2V5
ICprZXkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtleSA/IGtleS0+c2VyaWFsIDogMDsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQga2V5X3NldF90aW1lb3V0KHN0cnVjdCBr
ZXkgKiwgdW5zaWduZWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4ga2V5X3JlZl90IGxvb2t1cF91
c2VyX2tleShrZXlfc2VyaWFsX3QgaWQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCjE0NDc0OiAgICAg
IGtleV9wZXJtX3QgcGVybSk7CjE0NDc0OiBleHRlcm4gdm9pZCBrZXlfZnJlZV91c2VyX25zKHN0
cnVjdCB1c2VyX25hbWVzcGFjZSAqKTsKMTQ0NzQ6ICMgNDM0ICIuL2luY2x1ZGUvbGludXgva2V5
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzaG9ydCBrZXlfcmVhZF9zdGF0ZShjb25zdCBzdHJ1Y3Qga2V5ICprZXkpCjE0
NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gKHsgdHlwZW9mKComa2V5LT5zdGF0ZSkgX19f
cDEgPSAoeyB1bmlvbiB7IHR5cGVvZigqJmtleS0+c3RhdGUpIF9fdmFsOyBjaGFyIF9fY1sxXTsg
fSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKiZrZXktPnN0YXRlKSwgX191Ll9fYywg
c2l6ZW9mKComa2V5LT5zdGF0ZSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCom
a2V5LT5zdGF0ZSksIF9fdS5fX2MsIHNpemVvZigqJmtleS0+c3RhdGUpKTsgZG8geyB9IHdoaWxl
ICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF80Mzcodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNp
emVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2YoKiZrZXkt
PnN0YXRlKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComa2V5LT5zdGF0ZSkgPT0gc2l6ZW9m
KHNob3J0KSB8fCBzaXplb2YoKiZrZXktPnN0YXRlKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2Yo
KiZrZXktPnN0YXRlKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfNDM3
KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyBf
X19wMTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDQ0NyAiLi9pbmNsdWRlL2xpbnV4L2tleS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCBrZXlfaXNfcG9zaXRpdmUoY29uc3Qgc3RydWN0IGtleSAqa2V5KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBrZXlfcmVhZF9zdGF0ZShrZXkpID09IEtFWV9JU19QT1NJVElWRTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrZXlfaXNfbmVnYXRpdmUoY29uc3Qgc3RydWN0
IGtleSAqa2V5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrZXlfcmVhZF9zdGF0ZShrZXkpIDwg
MDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDcwICIuL2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiBl
eHRlcm4gc3RydWN0IGN0bF90YWJsZSBrZXlfc3lzY3Rsc1tdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGluc3RhbGxfdGhyZWFkX2tleXJpbmdfdG9f
Y3JlZChzdHJ1Y3QgY3JlZCAqY3JlZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBrZXlfZnN1aWRfY2hh
bmdlZChzdHJ1Y3QgY3JlZCAqbmV3X2NyZWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQga2V5X2ZzZ2lk
X2NoYW5nZWQoc3RydWN0IGNyZWQgKm5ld19jcmVkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGtleV9p
bml0KHZvaWQpOwoxNDQ3NDogIyAxNCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIgMgoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvc2NoZWQvdXNlci5o
IiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3JhdGVsaW1pdC5oIiAxCjE0NDc0OiAjIDE1
ICIuL2luY2x1ZGUvbGludXgvcmF0ZWxpbWl0LmgiCjE0NDc0OiBzdHJ1Y3QgcmF0ZWxpbWl0X3N0
YXRlIHsKMTQ0NzQ6ICByYXdfc3BpbmxvY2tfdCBsb2NrOwoxNDQ3NDogCjE0NDc0OiAgaW50IGlu
dGVydmFsOwoxNDQ3NDogIGludCBidXJzdDsKMTQ0NzQ6ICBpbnQgcHJpbnRlZDsKMTQ0NzQ6ICBp
bnQgbWlzc2VkOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgYmVnaW47CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBmbGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAjIDQwICIuL2luY2x1ZGUvbGludXgvcmF0ZWxp
bWl0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHJhdGVsaW1pdF9zdGF0ZV9pbml0KHN0cnVjdCByYXRlbGltaXRf
c3RhdGUgKnJzLAoxNDQ3NDogICAgICBpbnQgaW50ZXJ2YWwsIGludCBidXJzdCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBtZW1zZXQocnMsIDAsIHNpemVvZigqcnMpKTsKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsg
KigmcnMtPmxvY2spID0gKHJhd19zcGlubG9ja190KSB7IC5yYXdfbG9jayA9IHsgeyAudmFsID0g
eyAoMCkgfSB9IH0sIH07IH0gd2hpbGUgKDApOwoxNDQ3NDogIHJzLT5pbnRlcnZhbCA9IGludGVy
dmFsOwoxNDQ3NDogIHJzLT5idXJzdCA9IGJ1cnN0OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHJhdGVsaW1pdF9kZWZhdWx0X2luaXQoc3RydWN0IHJhdGVsaW1pdF9zdGF0ZSAqcnMpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJhdGVsaW1pdF9zdGF0ZV9pbml0KHJzLCAoNSAqIDI1MCks
CjE0NDc0OiAgICAgIDEwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByYXRlbGltaXRf
c3RhdGVfZXhpdChzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlICpycykKMTQ0NzQ6IHsKMTQ0NzQ6ICBp
ZiAoIShycy0+ZmxhZ3MgJiAoKCgoMVVMKSkpIDw8ICgwKSkpKQoxNDQ3NDogICByZXR1cm47CjE0
NDc0OiAKMTQ0NzQ6ICBpZiAocnMtPm1pc3NlZCkgewoxNDQ3NDogICBwcmludGsoIlwwMDEiICI0
IiAiJXM6ICVkIG91dHB1dCBsaW5lcyBzdXBwcmVzc2VkIGR1ZSB0byByYXRlbGltaXRpbmdcbiIs
IGdldF9jdXJyZW50KCktPmNvbW0sIHJzLT5taXNzZWQpCjE0NDc0OiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDsKMTQ0NzQ6ICAgcnMtPm1pc3NlZCA9IDA7CjE0NDc0OiAgfQoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiByYXRlbGltaXRfc2V0X2ZsYWdzKHN0cnVjdCBy
YXRlbGltaXRfc3RhdGUgKnJzLCB1bnNpZ25lZCBsb25nIGZsYWdzKQoxNDQ3NDogewoxNDQ3NDog
IHJzLT5mbGFncyA9IGZsYWdzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0
IHJhdGVsaW1pdF9zdGF0ZSBwcmludGtfcmF0ZWxpbWl0X3N0YXRlOwoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gaW50IF9fX3JhdGVsaW1pdChzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlICpycywgY29uc3Qg
Y2hhciAqZnVuYyk7CjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC9zY2hlZC91c2VyLmgiIDIK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHVzZXJfc3RydWN0
IHsKMTQ0NzQ6ICByZWZjb3VudF90IF9fY291bnQ7CjE0NDc0OiAgYXRvbWljX3QgcHJvY2Vzc2Vz
OwoxNDQ3NDogIGF0b21pY190IHNpZ3BlbmRpbmc7CjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNfdCBm
YW5vdGlmeV9saXN0ZW5lcnM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGF0b21pY19sb25nX3Qg
ZXBvbGxfd2F0Y2hlczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIG1xX2J5dGVzOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb2NrZWRfc2htOwox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgdW5peF9pbmZsaWdodDsKMTQ0NzQ6ICBhdG9taWNfbG9uZ190
IHBpcGVfYnVmczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGhsaXN0X25vZGUgdWlk
aGFzaF9ub2RlOwoxNDQ3NDogIGt1aWRfdCB1aWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgYXRvbWljX2xvbmdfdCBsb2NrZWRfdm07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHJhdGVsaW1pdF9zdGF0ZSByYXRlbGltaXQ7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50IHVpZHNfc3lzZnNfaW5pdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHN0cnVjdCB1c2VyX3N0cnVjdCAqZmluZF91c2VyKGt1aWRfdCk7CjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBzdHJ1Y3QgdXNlcl9zdHJ1Y3Qgcm9vdF91c2VyOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHVzZXJfc3RydWN0ICogYWxsb2Nf
dWlkKGt1aWRfdCk7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKmdldF91aWQoc3RydWN0IHVz
ZXJfc3RydWN0ICp1KQoxNDQ3NDogewoxNDQ3NDogIHJlZmNvdW50X2luYygmdS0+X19jb3VudCk7
CjE0NDc0OiAgcmV0dXJuIHU7CjE0NDc0OiB9CjE0NDc0OiBleHRlcm4gdm9pZCBmcmVlX3VpZChz
dHJ1Y3QgdXNlcl9zdHJ1Y3QgKik7CjE0NDc0OiAjIDE4ICIuL2luY2x1ZGUvbGludXgvY3JlZC5o
IiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjcmVkOwoxNDQ3NDogc3RydWN0IGlub2RlOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZ3JvdXBfaW5mbyB7CjE0
NDc0OiAgYXRvbWljX3QgdXNhZ2U7CjE0NDc0OiAgaW50IG5ncm91cHM7CjE0NDc0OiAga2dpZF90
IGdpZFswXTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykpOwox
NDQ3NDogIyA0MCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBncm91cF9p
bmZvICpnZXRfZ3JvdXBfaW5mbyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kpCjE0NDc0OiB7CjE0NDc0
OiAgYXRvbWljX2luYygmZ2ktPnVzYWdlKTsKMTQ0NzQ6ICByZXR1cm4gZ2k7CjE0NDc0OiB9CjE0
NDc0OiAjIDU2ICIuL2luY2x1ZGUvbGludXgvY3JlZC5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBn
cm91cF9pbmZvIGluaXRfZ3JvdXBzOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGdyb3Vw
X2luZm8gKmdyb3Vwc19hbGxvYyhpbnQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZ3JvdXBzX2ZyZWUo
c3RydWN0IGdyb3VwX2luZm8gKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgaW5fZ3JvdXBf
cChrZ2lkX3QpOwoxNDQ3NDogZXh0ZXJuIGludCBpbl9lZ3JvdXBfcChrZ2lkX3QpOwoxNDQ3NDog
ZXh0ZXJuIGludCBncm91cHNfc2VhcmNoKGNvbnN0IHN0cnVjdCBncm91cF9pbmZvICosIGtnaWRf
dCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgc2V0X2N1cnJlbnRfZ3JvdXBzKHN0cnVjdCBn
cm91cF9pbmZvICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0X2dyb3VwcyhzdHJ1Y3QgY3JlZCAq
LCBzdHJ1Y3QgZ3JvdXBfaW5mbyAqKTsKMTQ0NzQ6IGV4dGVybiBib29sIG1heV9zZXRncm91cHMo
dm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBncm91cHNfc29ydChzdHJ1Y3QgZ3JvdXBfaW5mbyAq
KTsKMTQ0NzQ6ICMgMTExICIuL2luY2x1ZGUvbGludXgvY3JlZC5oIgoxNDQ3NDogc3RydWN0IGNy
ZWQgewoxNDQ3NDogIGF0b21pY190IHVzYWdlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAga3VpZF90IHVpZDsKMTQ0NzQ6ICBr
Z2lkX3QgZ2lkOwoxNDQ3NDogIGt1aWRfdCBzdWlkOwoxNDQ3NDogIGtnaWRfdCBzZ2lkOwoxNDQ3
NDogIGt1aWRfdCBldWlkOwoxNDQ3NDogIGtnaWRfdCBlZ2lkOwoxNDQ3NDogIGt1aWRfdCBmc3Vp
ZDsKMTQ0NzQ6ICBrZ2lkX3QgZnNnaWQ7CjE0NDc0OiAgdW5zaWduZWQgc2VjdXJlYml0czsKMTQ0
NzQ6ICBrZXJuZWxfY2FwX3QgY2FwX2luaGVyaXRhYmxlOwoxNDQ3NDogIGtlcm5lbF9jYXBfdCBj
YXBfcGVybWl0dGVkOwoxNDQ3NDogIGtlcm5lbF9jYXBfdCBjYXBfZWZmZWN0aXZlOwoxNDQ3NDog
IGtlcm5lbF9jYXBfdCBjYXBfYnNldDsKMTQ0NzQ6ICBrZXJuZWxfY2FwX3QgY2FwX2FtYmllbnQ7
CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGppdF9rZXlyaW5nOwoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IGtleSAqc2Vzc2lvbl9rZXlyaW5nOwoxNDQ3NDogIHN0cnVjdCBrZXkgKnByb2Nl
c3Nfa2V5cmluZzsKMTQ0NzQ6ICBzdHJ1Y3Qga2V5ICp0aHJlYWRfa2V5cmluZzsKMTQ0NzQ6ICBz
dHJ1Y3Qga2V5ICpyZXF1ZXN0X2tleV9hdXRoOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lk
ICpzZWN1cml0eTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB1c2VyX3N0cnVjdCAqdXNlcjsKMTQ0
NzQ6ICBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnVzZXJfbnM7CjE0NDc0OiAgc3RydWN0IGdyb3Vw
X2luZm8gKmdyb3VwX2luZm87CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIGludCBu
b25fcmN1OwoxNDQ3NDogICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCByY3U7CjE0NDc0OiAgfTsKMTQ0
NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykpOwoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gdm9pZCBfX3B1dF9jcmVkKHN0cnVjdCBjcmVkICopOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgZXhpdF9jcmVkcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CjE0NDc0OiBleHRlcm4gaW50IGNv
cHlfY3JlZHMoc3RydWN0IHRhc2tfc3RydWN0ICosIHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogZXh0
ZXJuIGNvbnN0IHN0cnVjdCBjcmVkICpnZXRfdGFza19jcmVkKHN0cnVjdCB0YXNrX3N0cnVjdCAq
KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgY3JlZCAqY3JlZF9hbGxvY19ibGFuayh2b2lkKTsKMTQ0
NzQ6IGV4dGVybiBzdHJ1Y3QgY3JlZCAqcHJlcGFyZV9jcmVkcyh2b2lkKTsKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgY3JlZCAqcHJlcGFyZV9leGVjX2NyZWRzKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGlu
dCBjb21taXRfY3JlZHMoc3RydWN0IGNyZWQgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBhYm9ydF9j
cmVkcyhzdHJ1Y3QgY3JlZCAqKTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgY3JlZCAqb3Zl
cnJpZGVfY3JlZHMoY29uc3Qgc3RydWN0IGNyZWQgKik7CjE0NDc0OiBleHRlcm4gdm9pZCByZXZl
cnRfY3JlZHMoY29uc3Qgc3RydWN0IGNyZWQgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGNyZWQg
KnByZXBhcmVfa2VybmVsX2NyZWQoc3RydWN0IHRhc2tfc3RydWN0ICopOwoxNDQ3NDogZXh0ZXJu
IGludCBjaGFuZ2VfY3JlYXRlX2ZpbGVzX2FzKHN0cnVjdCBjcmVkICosIHN0cnVjdCBpbm9kZSAq
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2V0X3NlY3VyaXR5X292ZXJyaWRlKHN0cnVjdCBjcmVkICos
IHUzMik7CjE0NDc0OiBleHRlcm4gaW50IHNldF9zZWN1cml0eV9vdmVycmlkZV9mcm9tX2N0eChz
dHJ1Y3QgY3JlZCAqLCBjb25zdCBjaGFyICopOwoxNDQ3NDogZXh0ZXJuIGludCBzZXRfY3JlYXRl
X2ZpbGVzX2FzKHN0cnVjdCBjcmVkICosIHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgY3JlZF9mc2NtcChjb25zdCBzdHJ1Y3QgY3JlZCAqLCBjb25zdCBzdHJ1Y3QgY3JlZCAqKTsK
MTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0
IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIGNyZWRfaW5pdCh2b2lkKTsKMTQ0NzQ6ICMg
MjAzICIuL2luY2x1ZGUvbGludXgvY3JlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB2YWxpZGF0ZV9jcmVkcyhj
b25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdmFs
aWRhdGVfY3JlZHNfZm9yX2RvX2V4aXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCjE0NDc0OiB7
CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHZhbGlkYXRlX3Byb2Nlc3NfY3JlZHModm9pZCkKMTQ0NzQ6
IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGNhcF9hbWJpZW50X2ludmFy
aWFudF9vayhjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
Y2FwX2lzc3Vic2V0KGNyZWQtPmNhcF9hbWJpZW50LAoxNDQ3NDogICAgICAgIGNhcF9pbnRlcnNl
Y3QoY3JlZC0+Y2FwX3Blcm1pdHRlZCwKMTQ0NzQ6ICAgICAgICBjcmVkLT5jYXBfaW5oZXJpdGFi
bGUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjI4ICIuL2luY2x1ZGUvbGludXgvY3JlZC5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGNyZWQgKmdldF9uZXdfY3JlZChzdHJ1Y3QgY3JlZCAqY3JlZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBhdG9taWNfaW5jKCZjcmVkLT51c2FnZSk7CjE0NDc0OiAgcmV0dXJuIGNyZWQ7CjE0
NDc0OiB9CjE0NDc0OiAjIDI0NyAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGNvbnN0
IHN0cnVjdCBjcmVkICpnZXRfY3JlZChjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBzdHJ1Y3QgY3JlZCAqbm9uY29uc3RfY3JlZCA9IChzdHJ1Y3QgY3JlZCAqKSBjcmVk
OwoxNDQ3NDogIGlmICghY3JlZCkKMTQ0NzQ6ICAgcmV0dXJuIGNyZWQ7CjE0NDc0OiAgdmFsaWRh
dGVfY3JlZHMoY3JlZCk7CjE0NDc0OiAgbm9uY29uc3RfY3JlZC0+bm9uX3JjdSA9IDA7CjE0NDc0
OiAgcmV0dXJuIGdldF9uZXdfY3JlZChub25jb25zdF9jcmVkKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgY29uc3Qgc3RydWN0IGNyZWQgKmdldF9jcmVkX3JjdShjb25zdCBzdHJ1Y3QgY3JlZCAq
Y3JlZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgY3JlZCAqbm9uY29uc3RfY3JlZCA9IChzdHJ1
Y3QgY3JlZCAqKSBjcmVkOwoxNDQ3NDogIGlmICghY3JlZCkKMTQ0NzQ6ICAgcmV0dXJuICgodm9p
ZCAqKTApOwoxNDQ3NDogIGlmICghYXRvbWljX2luY19ub3RfemVybygmbm9uY29uc3RfY3JlZC0+
dXNhZ2UpKQoxNDQ3NDogICByZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiAgdmFsaWRhdGVfY3Jl
ZHMoY3JlZCk7CjE0NDc0OiAgbm9uY29uc3RfY3JlZC0+bm9uX3JjdSA9IDA7CjE0NDc0OiAgcmV0
dXJuIGNyZWQ7CjE0NDc0OiB9CjE0NDc0OiAjIDI4MCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgcHV0X2NyZWQoY29uc3Qgc3RydWN0IGNyZWQgKl9jcmVkKQoxNDQ3NDogewox
NDQ3NDogIHN0cnVjdCBjcmVkICpjcmVkID0gKHN0cnVjdCBjcmVkICopIF9jcmVkOwoxNDQ3NDog
CjE0NDc0OiAgaWYgKGNyZWQpIHsKMTQ0NzQ6ICAgdmFsaWRhdGVfY3JlZHMoY3JlZCk7CjE0NDc0
OiAgIGlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCYoY3JlZCktPnVzYWdlKSkKMTQ0NzQ6ICAgIF9f
cHV0X2NyZWQoY3JlZCk7CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogIyAzOTAgIi4vaW5jbHVk
ZS9saW51eC9jcmVkLmgiCjE0NDc0OiBleHRlcm4gc3RydWN0IHVzZXJfbmFtZXNwYWNlIGluaXRf
dXNlcl9uczsKMTQ0NzQ6ICMgMTMgIi4vaW5jbHVkZS9saW51eC9zZXFfZmlsZS5oIiAyCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBzZXFfb3BlcmF0aW9uczsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNl
cV9maWxlIHsKMTQ0NzQ6ICBjaGFyICpidWY7CjE0NDc0OiAgc2l6ZV90IHNpemU7CjE0NDc0OiAg
c2l6ZV90IGZyb207CjE0NDc0OiAgc2l6ZV90IGNvdW50OwoxNDQ3NDogIHNpemVfdCBwYWRfdW50
aWw7CjE0NDc0OiAgbG9mZl90IGluZGV4OwoxNDQ3NDogIGxvZmZfdCByZWFkX3BvczsKMTQ0NzQ6
ICB1NjQgdmVyc2lvbjsKMTQ0NzQ6ICBzdHJ1Y3QgbXV0ZXggbG9jazsKMTQ0NzQ6ICBjb25zdCBz
dHJ1Y3Qgc2VxX29wZXJhdGlvbnMgKm9wOwoxNDQ3NDogIGludCBwb2xsX2V2ZW50OwoxNDQ3NDog
IGNvbnN0IHN0cnVjdCBmaWxlICpmaWxlOwoxNDQ3NDogIHZvaWQgKnByaXZhdGU7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgewoxNDQ3NDogIHZvaWQgKiAo
KnN0YXJ0KSAoc3RydWN0IHNlcV9maWxlICptLCBsb2ZmX3QgKnBvcyk7CjE0NDc0OiAgdm9pZCAo
KnN0b3ApIChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpOwoxNDQ3NDogIHZvaWQgKiAoKm5l
eHQpIChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYsIGxvZmZfdCAqcG9zKTsKMTQ0NzQ6ICBp
bnQgKCpzaG93KSAoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KTsKMTQ0NzQ6IH07CjE0NDc0
OiAjIDUxICIuL2luY2x1ZGUvbGludXgvc2VxX2ZpbGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2VxX2hhc19v
dmVyZmxvd2VkKHN0cnVjdCBzZXFfZmlsZSAqbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbS0+
Y291bnQgPT0gbS0+c2l6ZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjQgIi4vaW5jbHVkZS9saW51eC9z
ZXFfZmlsZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgc2l6ZV90IHNlcV9nZXRfYnVmKHN0cnVjdCBzZXFfZmlsZSAqbSwg
Y2hhciAqKmJ1ZnApCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBpZiAoX19idWlsdGluX2V4cGVjdCgh
IShtLT5jb3VudCA+IG0tPnNpemUpLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGls
ZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJs
ZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6
YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5Ojpm
aWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMy
IiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9u
IiA6IDogImkiICgiaW5jbHVkZS9saW51eC9zZXFfZmlsZS5oIiksICJpIiAoNjYpLCAiaSIgKDAp
LCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBh
c20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxl
XG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMzMp
KTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGlmIChtLT5jb3VudCA8IG0t
PnNpemUpCjE0NDc0OiAgICpidWZwID0gbS0+YnVmICsgbS0+Y291bnQ7CjE0NDc0OiAgZWxzZQox
NDQ3NDogICAqYnVmcCA9ICgodm9pZCAqKTApOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIG0tPnNp
emUgLSBtLT5jb3VudDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgODQgIi4vaW5jbHVkZS9saW51eC9zZXFf
ZmlsZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXFfY29tbWl0KHN0cnVjdCBzZXFfZmlsZSAqbSwgaW50IG51
bSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAobnVtIDwgMCkgewoxNDQ3NDogICBtLT5jb3VudCA9IG0t
PnNpemU7CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6ICAgZG8geyBpZiAoX19idWlsdGluX2V4cGVj
dCghIShtLT5jb3VudCArIG51bSA+IG0tPnNpemUpLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGlu
ZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBf
X2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1
Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVn
X2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0
LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5w
b3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9zZXFfZmlsZS5oIiksICJpIiAoODkp
LCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsg
ZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVu
cmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6
ICJpIiAoMzQpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgp
OyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogICBtLT5jb3Vu
dCArPSBudW07CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogIyAxMDIgIi4vaW5jbHVkZS9saW51
eC9zZXFfZmlsZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXFfc2V0d2lkdGgoc3RydWN0IHNlcV9maWxlICpt
LCBzaXplX3Qgc2l6ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBtLT5wYWRfdW50aWwgPSBtLT5jb3VudCAr
IHNpemU7CjE0NDc0OiB9CjE0NDc0OiB2b2lkIHNlcV9wYWQoc3RydWN0IHNlcV9maWxlICptLCBj
aGFyIGMpOwoxNDQ3NDogCjE0NDc0OiBjaGFyICptYW5nbGVfcGF0aChjaGFyICpzLCBjb25zdCBj
aGFyICpwLCBjb25zdCBjaGFyICplc2MpOwoxNDQ3NDogaW50IHNlcV9vcGVuKHN0cnVjdCBmaWxl
ICosIGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyAqKTsKMTQ0NzQ6IHNzaXplX3Qgc2VxX3Jl
YWQoc3RydWN0IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKMTQ0NzQ6IGxvZmZf
dCBzZXFfbHNlZWsoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBpbnQpOwoxNDQ3NDogaW50IHNlcV9y
ZWxlYXNlKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKMTQ0NzQ6IGludCBzZXFfd3Jp
dGUoc3RydWN0IHNlcV9maWxlICpzZXEsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pOwox
NDQ3NDogCjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMCkpKQox
NDQ3NDogdm9pZCBzZXFfdnByaW50ZihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKmZt
dCwgdmFfbGlzdCBhcmdzKTsKMTQ0NzQ6IF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRm
LCAyLCAzKSkpCjE0NDc0OiB2b2lkIHNlcV9wcmludGYoc3RydWN0IHNlcV9maWxlICptLCBjb25z
dCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiB2b2lkIHNlcV9wdXRjKHN0cnVjdCBzZXFfZmlsZSAq
bSwgY2hhciBjKTsKMTQ0NzQ6IHZvaWQgc2VxX3B1dHMoc3RydWN0IHNlcV9maWxlICptLCBjb25z
dCBjaGFyICpzKTsKMTQ0NzQ6IHZvaWQgc2VxX3B1dF9kZWNpbWFsX3VsbF93aWR0aChzdHJ1Y3Qg
c2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKmRlbGltaXRlciwKMTQ0NzQ6ICAgICAgICAgICB1bnNp
Z25lZCBsb25nIGxvbmcgbnVtLCB1bnNpZ25lZCBpbnQgd2lkdGgpOwoxNDQ3NDogdm9pZCBzZXFf
cHV0X2RlY2ltYWxfdWxsKHN0cnVjdCBzZXFfZmlsZSAqbSwgY29uc3QgY2hhciAqZGVsaW1pdGVy
LAoxNDQ3NDogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBudW0pOwoxNDQ3NDogdm9pZCBzZXFfcHV0
X2RlY2ltYWxfbGwoc3RydWN0IHNlcV9maWxlICptLCBjb25zdCBjaGFyICpkZWxpbWl0ZXIsIGxv
bmcgbG9uZyBudW0pOwoxNDQ3NDogdm9pZCBzZXFfcHV0X2hleF9sbChzdHJ1Y3Qgc2VxX2ZpbGUg
Km0sIGNvbnN0IGNoYXIgKmRlbGltaXRlciwKMTQ0NzQ6ICAgICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyB2LCB1bnNpZ25lZCBpbnQgd2lkdGgpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHNlcV9lc2NhcGUo
c3RydWN0IHNlcV9maWxlICptLCBjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICplc2MpOwoxNDQ3
NDogdm9pZCBzZXFfZXNjYXBlX21lbV9hc2NpaShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNo
YXIgKnNyYywgc2l6ZV90IGlzeik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2VxX2hleF9kdW1wKHN0
cnVjdCBzZXFfZmlsZSAqbSwgY29uc3QgY2hhciAqcHJlZml4X3N0ciwgaW50IHByZWZpeF90eXBl
LAoxNDQ3NDogICAgIGludCByb3dzaXplLCBpbnQgZ3JvdXBzaXplLCBjb25zdCB2b2lkICpidWYs
IHNpemVfdCBsZW4sCjE0NDc0OiAgICAgYm9vbCBhc2NpaSk7CjE0NDc0OiAKMTQ0NzQ6IGludCBz
ZXFfcGF0aChzdHJ1Y3Qgc2VxX2ZpbGUgKiwgY29uc3Qgc3RydWN0IHBhdGggKiwgY29uc3QgY2hh
ciAqKTsKMTQ0NzQ6IGludCBzZXFfZmlsZV9wYXRoKHN0cnVjdCBzZXFfZmlsZSAqLCBzdHJ1Y3Qg
ZmlsZSAqLCBjb25zdCBjaGFyICopOwoxNDQ3NDogaW50IHNlcV9kZW50cnkoc3RydWN0IHNlcV9m
aWxlICosIHN0cnVjdCBkZW50cnkgKiwgY29uc3QgY2hhciAqKTsKMTQ0NzQ6IGludCBzZXFfcGF0
aF9yb290KHN0cnVjdCBzZXFfZmlsZSAqbSwgY29uc3Qgc3RydWN0IHBhdGggKnBhdGgsCjE0NDc0
OiAgICAgY29uc3Qgc3RydWN0IHBhdGggKnJvb3QsIGNvbnN0IGNoYXIgKmVzYyk7CjE0NDc0OiAK
MTQ0NzQ6IGludCBzaW5nbGVfb3BlbihzdHJ1Y3QgZmlsZSAqLCBpbnQgKCopKHN0cnVjdCBzZXFf
ZmlsZSAqLCB2b2lkICopLCB2b2lkICopOwoxNDQ3NDogaW50IHNpbmdsZV9vcGVuX3NpemUoc3Ry
dWN0IGZpbGUgKiwgaW50ICgqKShzdHJ1Y3Qgc2VxX2ZpbGUgKiwgdm9pZCAqKSwgdm9pZCAqLCBz
aXplX3QpOwoxNDQ3NDogaW50IHNpbmdsZV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3Qg
ZmlsZSAqKTsKMTQ0NzQ6IHZvaWQgKl9fc2VxX29wZW5fcHJpdmF0ZShzdHJ1Y3QgZmlsZSAqLCBj
b25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgKiwgaW50KTsKMTQ0NzQ6IGludCBzZXFfb3Blbl9w
cml2YXRlKHN0cnVjdCBmaWxlICosIGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyAqLCBpbnQp
OwoxNDQ3NDogaW50IHNlcV9yZWxlYXNlX3ByaXZhdGUoc3RydWN0IGlub2RlICosIHN0cnVjdCBm
aWxlICopOwoxNDQ3NDogIyAxNzYgIi4vaW5jbHVkZS9saW51eC9zZXFfZmlsZS5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IHVzZXJfbmFtZXNwYWNlICpzZXFfdXNlcl9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSkK
MTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBzZXEtPmZpbGUtPmZfY3JlZC0+dXNlcl9u
czsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNl
cV9zaG93X29wdGlvbihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKm5hbWUsCjE0NDc0
OiAgICAgICAgY29uc3QgY2hhciAqdmFsdWUpCjE0NDc0OiB7CjE0NDc0OiAgc2VxX3B1dGMobSwg
JywnKTsKMTQ0NzQ6ICBzZXFfZXNjYXBlKG0sIG5hbWUsICIsPSBcdFxuXFwiKTsKMTQ0NzQ6ICBp
ZiAodmFsdWUpIHsKMTQ0NzQ6ICAgc2VxX3B1dGMobSwgJz0nKTsKMTQ0NzQ6ICAgc2VxX2VzY2Fw
ZShtLCB2YWx1ZSwgIiwgXHRcblxcIik7CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogIyAyMjYg
Ii4vaW5jbHVkZS9saW51eC9zZXFfZmlsZS5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBsaXN0X2hl
YWQgKnNlcV9saXN0X3N0YXJ0KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCjE0NDc0OiAgIGxvZmZf
dCBwb3MpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgKnNlcV9saXN0X3N0YXJ0X2hl
YWQoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgbG9mZl90IHBvcyk7CjE0NDc0OiBl
eHRlcm4gc3RydWN0IGxpc3RfaGVhZCAqc2VxX2xpc3RfbmV4dCh2b2lkICp2LCBzdHJ1Y3QgbGlz
dF9oZWFkICpoZWFkLAoxNDQ3NDogICBsb2ZmX3QgKnBwb3MpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqc2Vx
X2hsaXN0X3N0YXJ0KHN0cnVjdCBobGlzdF9oZWFkICpoZWFkLAoxNDQ3NDogICAgICAgIGxvZmZf
dCBwb3MpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBobGlzdF9ub2RlICpzZXFfaGxpc3Rfc3RhcnRf
aGVhZChzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgICAgICAgICAgIGxvZmZfdCBw
b3MpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBobGlzdF9ub2RlICpzZXFfaGxpc3RfbmV4dCh2b2lk
ICp2LCBzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgICAgIGxvZmZfdCAqcHBvcyk7
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqc2VxX2hsaXN0X3N0YXJ0
X3JjdShzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgICAgICAgICAgbG9mZl90IHBv
cyk7CjE0NDc0OiBleHRlcm4gc3RydWN0IGhsaXN0X25vZGUgKnNlcV9obGlzdF9zdGFydF9oZWFk
X3JjdShzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgICAgICAgIGxvZmZfdCBwb3Mp
OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBobGlzdF9ub2RlICpzZXFfaGxpc3RfbmV4dF9yY3Uodm9p
ZCAqdiwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBobGlzdF9oZWFkICpoZWFkLAoxNDQ3NDogICAg
ICAgICAgbG9mZl90ICpwcG9zKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0
IGhsaXN0X25vZGUgKnNlcV9obGlzdF9zdGFydF9wZXJjcHUoc3RydWN0IGhsaXN0X2hlYWQgKmhl
YWQsIGludCAqY3B1LCBsb2ZmX3QgcG9zKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBo
bGlzdF9ub2RlICpzZXFfaGxpc3RfbmV4dF9wZXJjcHUodm9pZCAqdiwgc3RydWN0IGhsaXN0X2hl
YWQgKmhlYWQsIGludCAqY3B1LCBsb2ZmX3QgKnBvcyk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2Vx
X2ZpbGVfaW5pdCh2b2lkKTsKMTQ0NzQ6ICMgMzIgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50Lmgi
IDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIiAxCjE0NDc0OiAjIDE1ICIu
L2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9kZXZf
cHJpbnRrLmgiIDEKMTQ0NzQ6ICMgMjIgIi4vaW5jbHVkZS9saW51eC9kZXZfcHJpbnRrLmgiCjE0
NDc0OiBzdHJ1Y3QgZGV2aWNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogX19hdHRy
aWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDApKSkgX19hdHRyaWJ1dGVfXygoX19jb2xk
X18pKQoxNDQ3NDogaW50IGRldl92cHJpbnRrX2VtaXQoaW50IGxldmVsLCBjb25zdCBzdHJ1Y3Qg
ZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICAgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3Mp
OwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkgX19hdHRy
aWJ1dGVfXygoX19jb2xkX18pKQoxNDQ3NDogaW50IGRldl9wcmludGtfZW1pdChpbnQgbGV2ZWws
IGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDog
CjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKSBfX2F0dHJp
YnV0ZV9fKChfX2NvbGRfXykpCjE0NDc0OiB2b2lkIGRldl9wcmludGsoY29uc3QgY2hhciAqbGV2
ZWwsIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwKMTQ0NzQ6ICAgY29uc3QgY2hhciAqZm10LCAu
Li4pOwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkgX19h
dHRyaWJ1dGVfXygoX19jb2xkX18pKQoxNDQ3NDogdm9pZCBfZGV2X2VtZXJnKGNvbnN0IHN0cnVj
dCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogX19hdHRyaWJ1dGVf
XygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQox
NDQ3NDogdm9pZCBfZGV2X2FsZXJ0KGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hh
ciAqZm10LCAuLi4pOwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIs
IDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQoxNDQ3NDogdm9pZCBfZGV2X2NyaXQoY29u
c3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiBfX2F0
dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKSBfX2F0dHJpYnV0ZV9fKChfX2Nv
bGRfXykpCjE0NDc0OiB2b2lkIF9kZXZfZXJyKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgY29u
c3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmlu
dGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQoxNDQ3NDogdm9pZCBfZGV2X3dh
cm4oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0
OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKSBfX2F0dHJpYnV0ZV9f
KChfX2NvbGRfXykpCjE0NDc0OiB2b2lkIF9kZXZfbm90aWNlKGNvbnN0IHN0cnVjdCBkZXZpY2Ug
KmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3Jt
YXRfXyhwcmludGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQoxNDQ3NDogdm9p
ZCBfZGV2X2luZm8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4u
Lik7CjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oIiAxCjE0NDc0OiAjIDIwICIuL2luY2x1ZGUvbGludXgv
aW9wb3J0LmgiCjE0NDc0OiBzdHJ1Y3QgcmVzb3VyY2UgewoxNDQ3NDogIHJlc291cmNlX3NpemVf
dCBzdGFydDsKMTQ0NzQ6ICByZXNvdXJjZV9zaXplX3QgZW5kOwoxNDQ3NDogIGNvbnN0IGNoYXIg
Km5hbWU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBmbGFnczsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IGRlc2M7CjE0NDc0OiAgc3RydWN0IHJlc291cmNlICpwYXJlbnQsICpzaWJsaW5nLCAqY2hpbGQ7
CjE0NDc0OiB9OwoxNDQ3NDogIyAxMjggIi4vaW5jbHVkZS9saW51eC9pb3BvcnQuaCIKMTQ0NzQ6
IGVudW0gewoxNDQ3NDogIElPUkVTX0RFU0NfTk9ORSA9IDAsCjE0NDc0OiAgSU9SRVNfREVTQ19D
UkFTSF9LRVJORUwgPSAxLAoxNDQ3NDogIElPUkVTX0RFU0NfQUNQSV9UQUJMRVMgPSAyLAoxNDQ3
NDogIElPUkVTX0RFU0NfQUNQSV9OVl9TVE9SQUdFID0gMywKMTQ0NzQ6ICBJT1JFU19ERVNDX1BF
UlNJU1RFTlRfTUVNT1JZID0gNCwKMTQ0NzQ6ICBJT1JFU19ERVNDX1BFUlNJU1RFTlRfTUVNT1JZ
X0xFR0FDWSA9IDUsCjE0NDc0OiAgSU9SRVNfREVTQ19ERVZJQ0VfUFJJVkFURV9NRU1PUlkgPSA2
LAoxNDQ3NDogIElPUkVTX0RFU0NfUkVTRVJWRUQgPSA3LAoxNDQ3NDogIElPUkVTX0RFU0NfU09G
VF9SRVNFUlZFRCA9IDgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBJT1JFU19NQVBfU1lTVEVNX1JBTSA9ICgoKCgxVUwpKSkg
PDwgKDApKSwKMTQ0NzQ6ICBJT1JFU19NQVBfRU5DUllQVEVEID0gKCgoKDFVTCkpKSA8PCAoMSkp
LAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTc5ICIuL2luY2x1ZGUvbGludXgvaW9wb3J0LmgiCjE0NDc0
OiBleHRlcm4gc3RydWN0IHJlc291cmNlIGlvcG9ydF9yZXNvdXJjZTsKMTQ0NzQ6IGV4dGVybiBz
dHJ1Y3QgcmVzb3VyY2UgaW9tZW1fcmVzb3VyY2U7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1
Y3QgcmVzb3VyY2UgKnJlcXVlc3RfcmVzb3VyY2VfY29uZmxpY3Qoc3RydWN0IHJlc291cmNlICpy
b290LCBzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7CjE0NDc0OiBleHRlcm4gaW50IHJlcXVlc3RfcmVz
b3VyY2Uoc3RydWN0IHJlc291cmNlICpyb290LCBzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7CjE0NDc0
OiBleHRlcm4gaW50IHJlbGVhc2VfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpuZXcpOwoxNDQ3
NDogdm9pZCByZWxlYXNlX2NoaWxkX3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7CjE0
NDc0OiBleHRlcm4gdm9pZCByZXNlcnZlX3JlZ2lvbl93aXRoX3NwbGl0KHN0cnVjdCByZXNvdXJj
ZSAqcm9vdCwKMTQ0NzQ6ICAgICAgICAgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9z
aXplX3QgZW5kLAoxNDQ3NDogICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgcmVzb3VyY2UgKmluc2VydF9yZXNvdXJjZV9jb25mbGljdChzdHJ1Y3QgcmVzb3Vy
Y2UgKnBhcmVudCwgc3RydWN0IHJlc291cmNlICpuZXcpOwoxNDQ3NDogZXh0ZXJuIGludCBpbnNl
cnRfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpwYXJlbnQsIHN0cnVjdCByZXNvdXJjZSAqbmV3
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGluc2VydF9yZXNvdXJjZV9leHBhbmRfdG9fZml0KHN0cnVj
dCByZXNvdXJjZSAqcm9vdCwgc3RydWN0IHJlc291cmNlICpuZXcpOwoxNDQ3NDogZXh0ZXJuIGlu
dCByZW1vdmVfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpvbGQpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgYXJjaF9yZW1vdmVfcmVzZXJ2YXRpb25zKHN0cnVjdCByZXNvdXJjZSAqYXZhaWwpOwoxNDQ3
NDogZXh0ZXJuIGludCBhbGxvY2F0ZV9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnJvb3QsIHN0
cnVjdCByZXNvdXJjZSAqbmV3LAoxNDQ3NDogICAgICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwg
cmVzb3VyY2Vfc2l6ZV90IG1pbiwKMTQ0NzQ6ICAgICAgICAgcmVzb3VyY2Vfc2l6ZV90IG1heCwg
cmVzb3VyY2Vfc2l6ZV90IGFsaWduLAoxNDQ3NDogICAgICAgICByZXNvdXJjZV9zaXplX3QgKCph
bGlnbmYpKHZvaWQgKiwKMTQ0NzQ6ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2Ug
KiwKMTQ0NzQ6ICAgICAgICAgICAgICByZXNvdXJjZV9zaXplX3QsCjE0NDc0OiAgICAgICAgICAg
ICAgcmVzb3VyY2Vfc2l6ZV90KSwKMTQ0NzQ6ICAgICAgICAgdm9pZCAqYWxpZ25mX2RhdGEpOwox
NDQ3NDogc3RydWN0IHJlc291cmNlICpsb29rdXBfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpy
b290LCByZXNvdXJjZV9zaXplX3Qgc3RhcnQpOwoxNDQ3NDogaW50IGFkanVzdF9yZXNvdXJjZShz
dHJ1Y3QgcmVzb3VyY2UgKnJlcywgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LAoxNDQ3NDogICAgICAg
cmVzb3VyY2Vfc2l6ZV90IHNpemUpOwoxNDQ3NDogcmVzb3VyY2Vfc2l6ZV90IHJlc291cmNlX2Fs
aWdubWVudChzdHJ1Y3QgcmVzb3VyY2UgKnJlcyk7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSByZXNvdXJjZV9zaXplX3QgcmVz
b3VyY2Vfc2l6ZShjb25zdCBzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gcmVzLT5lbmQgLSByZXMtPnN0YXJ0ICsgMTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVk
IGxvbmcgcmVzb3VyY2VfdHlwZShjb25zdCBzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gcmVzLT5mbGFncyAmIDB4MDAwMDFmMDA7CjE0NDc0OiB9CjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1
bnNpZ25lZCBsb25nIHJlc291cmNlX2V4dF90eXBlKGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcmVz
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiByZXMtPmZsYWdzICYgMHgwMTAwMDAwMDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCByZXNvdXJjZV9jb250YWlucyhzdHJ1Y3QgcmVzb3VyY2Ug
KnIxLCBzdHJ1Y3QgcmVzb3VyY2UgKnIyKQoxNDQ3NDogewoxNDQ3NDogIGlmIChyZXNvdXJjZV90
eXBlKHIxKSAhPSByZXNvdXJjZV90eXBlKHIyKSkKMTQ0NzQ6ICAgcmV0dXJuIGZhbHNlOwoxNDQ3
NDogIGlmIChyMS0+ZmxhZ3MgJiAweDIwMDAwMDAwIHx8IHIyLT5mbGFncyAmIDB4MjAwMDAwMDAp
CjE0NDc0OiAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6ICByZXR1cm4gcjEtPnN0YXJ0IDw9IHIyLT5z
dGFydCAmJiByMS0+ZW5kID49IHIyLT5lbmQ7CjE0NDc0OiB9CjE0NDc0OiAjIDIzOCAiLi9pbmNs
dWRlL2xpbnV4L2lvcG9ydC5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCByZXNvdXJjZSAqIF9fcmVx
dWVzdF9yZWdpb24oc3RydWN0IHJlc291cmNlICosCjE0NDc0OiAgICAgIHJlc291cmNlX3NpemVf
dCBzdGFydCwKMTQ0NzQ6ICAgICAgcmVzb3VyY2Vfc2l6ZV90IG4sCjE0NDc0OiAgICAgIGNvbnN0
IGNoYXIgKm5hbWUsIGludCBmbGFncyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgX19yZWxlYXNlX3JlZ2lvbihzdHJ1Y3QgcmVzb3Vy
Y2UgKiwgcmVzb3VyY2Vfc2l6ZV90LAoxNDQ3NDogICAgIHJlc291cmNlX3NpemVfdCk7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcmVsZWFzZV9tZW1fcmVnaW9uX2FkanVzdGFibGUoc3RydWN0
IHJlc291cmNlICosIHJlc291cmNlX3NpemVfdCwKMTQ0NzQ6ICAgICByZXNvdXJjZV9zaXplX3Qp
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRldmljZTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGludCBkZXZtX3JlcXVlc3RfcmVzb3VyY2Uoc3RydWN0IGRldmljZSAqZGV2
LCBzdHJ1Y3QgcmVzb3VyY2UgKnJvb3QsCjE0NDc0OiAgICAgIHN0cnVjdCByZXNvdXJjZSAqbmV3
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldm1fcmVsZWFzZV9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNl
ICpkZXYsIHN0cnVjdCByZXNvdXJjZSAqbmV3KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgcmVzb3VyY2UgKiBfX2Rl
dm1fcmVxdWVzdF9yZWdpb24oc3RydWN0IGRldmljZSAqZGV2LAoxNDQ3NDogICAgIHN0cnVjdCBy
ZXNvdXJjZSAqcGFyZW50LCByZXNvdXJjZV9zaXplX3Qgc3RhcnQsCjE0NDc0OiAgICAgcmVzb3Vy
Y2Vfc2l6ZV90IG4sIGNvbnN0IGNoYXIgKm5hbWUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgX19kZXZtX3JlbGVhc2Vf
cmVnaW9uKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlc291cmNlICpwYXJlbnQsCjE0NDc0
OiAgICAgICByZXNvdXJjZV9zaXplX3Qgc3RhcnQsIHJlc291cmNlX3NpemVfdCBuKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgaW9tZW1fbWFwX3Nhbml0eV9jaGVjayhyZXNvdXJjZV9zaXplX3QgYWRkciwg
dW5zaWduZWQgbG9uZyBzaXplKTsKMTQ0NzQ6IGV4dGVybiBib29sIGlvbWVtX2lzX2V4Y2x1c2l2
ZSh1NjQgYWRkcik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQKMTQ0NzQ6IHdhbGtfc3lzdGVt
X3JhbV9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdl
cywKMTQ0NzQ6ICAgdm9pZCAqYXJnLCBpbnQgKCpmdW5jKSh1bnNpZ25lZCBsb25nLCB1bnNpZ25l
ZCBsb25nLCB2b2lkICopKTsKMTQ0NzQ6IGV4dGVybiBpbnQKMTQ0NzQ6IHdhbGtfbWVtX3Jlcyh1
NjQgc3RhcnQsIHU2NCBlbmQsIHZvaWQgKmFyZywKMTQ0NzQ6ICAgICAgIGludCAoKmZ1bmMpKHN0
cnVjdCByZXNvdXJjZSAqLCB2b2lkICopKTsKMTQ0NzQ6IGV4dGVybiBpbnQKMTQ0NzQ6IHdhbGtf
c3lzdGVtX3JhbV9yZXModTY0IHN0YXJ0LCB1NjQgZW5kLCB2b2lkICphcmcsCjE0NDc0OiAgICAg
ICBpbnQgKCpmdW5jKShzdHJ1Y3QgcmVzb3VyY2UgKiwgdm9pZCAqKSk7CjE0NDc0OiBleHRlcm4g
aW50CjE0NDc0OiB3YWxrX2lvbWVtX3Jlc19kZXNjKHVuc2lnbmVkIGxvbmcgZGVzYywgdW5zaWdu
ZWQgbG9uZyBmbGFncywgdTY0IHN0YXJ0LCB1NjQgZW5kLAoxNDQ3NDogICAgICAgdm9pZCAqYXJn
LCBpbnQgKCpmdW5jKShzdHJ1Y3QgcmVzb3VyY2UgKiwgdm9pZCAqKSk7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCByZXNvdXJjZV9vdmVybGFwcyhzdHJ1Y3QgcmVzb3VyY2UgKnIxLCBzdHJ1
Y3QgcmVzb3VyY2UgKnIyKQoxNDQ3NDogewoxNDQ3NDogICAgICAgIHJldHVybiAocjEtPnN0YXJ0
IDw9IHIyLT5lbmQgJiYgcjEtPmVuZCA+PSByMi0+c3RhcnQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgcmVzb3VyY2UgKmRldm1fcmVxdWVzdF9mcmVlX21lbV9yZWdpb24oc3RydWN0
IGRldmljZSAqZGV2LAoxNDQ3NDogICBzdHJ1Y3QgcmVzb3VyY2UgKmJhc2UsIHVuc2lnbmVkIGxv
bmcgc2l6ZSk7CjE0NDc0OiBzdHJ1Y3QgcmVzb3VyY2UgKnJlcXVlc3RfZnJlZV9tZW1fcmVnaW9u
KHN0cnVjdCByZXNvdXJjZSAqYmFzZSwKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyBzaXplLCBjb25z
dCBjaGFyICpuYW1lKTsKMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIgMgox
NDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgva29iamVjdC5oIiAxCjE0NDc0OiAjIDIwICIuL2lu
Y2x1ZGUvbGludXgva29iamVjdC5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvc3lzZnMu
aCIgMQoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3N5c2ZzLmgiCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS9saW51eC9rZXJuZnMuaCIgMQoxNDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2tl
cm5mcy5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvaWRyLmgiIDEKMTQ0NzQ6ICMgMTkg
Ii4vaW5jbHVkZS9saW51eC9pZHIuaCIKMTQ0NzQ6IHN0cnVjdCBpZHIgewoxNDQ3NDogIHN0cnVj
dCB4YXJyYXkgaWRyX3J0OwoxNDQ3NDogIHVuc2lnbmVkIGludCBpZHJfYmFzZTsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgaWRyX25leHQ7CjE0NDc0OiB9OwoxNDQ3NDogIyA2NiAiLi9pbmNsdWRlL2xp
bnV4L2lkci5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGlkcl9nZXRfY3Vyc29yKGNvbnN0IHN0cnVj
dCBpZHIgKmlkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdW5pb24geyB0eXBlb2YoaWRy
LT5pZHJfbmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNl
X3NpemUoJihpZHItPmlkcl9uZXh0KSwgX191Ll9fYywgc2l6ZW9mKGlkci0+aWRyX25leHQpKTsg
ZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihpZHItPmlkcl9uZXh0KSwgX191Ll9fYywg
c2l6ZW9mKGlkci0+aWRyX25leHQpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgNzkgIi4vaW5jbHVkZS9saW51eC9pZHIuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
aWRyX3NldF9jdXJzb3Ioc3RydWN0IGlkciAqaWRyLCB1bnNpZ25lZCBpbnQgdmFsKQoxNDQ3NDog
ewoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKGlkci0+aWRyX25leHQpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKGlkci0+aWRyX25leHQpKSAodmFsKSB9
OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKGlkci0+aWRyX25leHQpLCBfX3UuX19jLCBzaXplb2YoaWRy
LT5pZHJfbmV4dCkpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyAxMTIgIi4vaW5j
bHVkZS9saW51eC9pZHIuaCIKMTQ0NzQ6IHZvaWQgaWRyX3ByZWxvYWQoZ2ZwX3QgZ2ZwX21hc2sp
OwoxNDQ3NDogCjE0NDc0OiBpbnQgaWRyX2FsbG9jKHN0cnVjdCBpZHIgKiwgdm9pZCAqcHRyLCBp
bnQgc3RhcnQsIGludCBlbmQsIGdmcF90KTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dh
cm5fdW51c2VkX3Jlc3VsdF9fKSkgaWRyX2FsbG9jX3UzMihzdHJ1Y3QgaWRyICosIHZvaWQgKnB0
ciwgdTMyICppZCwKMTQ0NzQ6ICAgICB1bnNpZ25lZCBsb25nIG1heCwgZ2ZwX3QpOwoxNDQ3NDog
aW50IGlkcl9hbGxvY19jeWNsaWMoc3RydWN0IGlkciAqLCB2b2lkICpwdHIsIGludCBzdGFydCwg
aW50IGVuZCwgZ2ZwX3QpOwoxNDQ3NDogdm9pZCAqaWRyX3JlbW92ZShzdHJ1Y3QgaWRyICosIHVu
c2lnbmVkIGxvbmcgaWQpOwoxNDQ3NDogdm9pZCAqaWRyX2ZpbmQoY29uc3Qgc3RydWN0IGlkciAq
LCB1bnNpZ25lZCBsb25nIGlkKTsKMTQ0NzQ6IGludCBpZHJfZm9yX2VhY2goY29uc3Qgc3RydWN0
IGlkciAqLAoxNDQ3NDogICAgaW50ICgqZm4pKGludCBpZCwgdm9pZCAqcCwgdm9pZCAqZGF0YSks
IHZvaWQgKmRhdGEpOwoxNDQ3NDogdm9pZCAqaWRyX2dldF9uZXh0KHN0cnVjdCBpZHIgKiwgaW50
ICpuZXh0aWQpOwoxNDQ3NDogdm9pZCAqaWRyX2dldF9uZXh0X3VsKHN0cnVjdCBpZHIgKiwgdW5z
aWduZWQgbG9uZyAqbmV4dGlkKTsKMTQ0NzQ6IHZvaWQgKmlkcl9yZXBsYWNlKHN0cnVjdCBpZHIg
Kiwgdm9pZCAqLCB1bnNpZ25lZCBsb25nIGlkKTsKMTQ0NzQ6IHZvaWQgaWRyX2Rlc3Ryb3koc3Ry
dWN0IGlkciAqKTsKMTQ0NzQ6ICMgMTM1ICIuL2luY2x1ZGUvbGludXgvaWRyLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGlkcl9pbml0X2Jhc2Uoc3RydWN0IGlkciAqaWRyLCBpbnQgYmFzZSkKMTQ0NzQ6IHsKMTQ0
NzQ6ICB4YV9pbml0X2ZsYWdzKCZpZHItPmlkcl9ydCwgKCgoIGdmcF90KTQpIHwgKCBnZnBfdCkg
KDEgPDwgKCgoMjMgKyAwKSkgKyAwKSkpKTsKMTQ0NzQ6ICBpZHItPmlkcl9iYXNlID0gYmFzZTsK
MTQ0NzQ6ICBpZHItPmlkcl9uZXh0ID0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQ5ICIuL2luY2x1
ZGUvbGludXgvaWRyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlkcl9pbml0KHN0cnVjdCBpZHIgKmlkcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBpZHJfaW5pdF9iYXNlKGlkciwgMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
aWRyX2lzX2VtcHR5KGNvbnN0IHN0cnVjdCBpZHIgKmlkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gcmFkaXhfdHJlZV9lbXB0eSgmaWRyLT5pZHJfcnQpICYmCjE0NDc0OiAgIHJhZGl4X3RyZWVf
dGFnZ2VkKCZpZHItPmlkcl9ydCwgMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaWRyX3ByZWxvYWRf
ZW5kKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJt
ZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjQwICIuL2luY2x1ZGUvbGludXgvaWRyLmgiCjE0
NDc0OiBzdHJ1Y3QgaWRhX2JpdG1hcCB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBiaXRtYXBbKDEy
OCAvIHNpemVvZihsb25nKSldOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGlkYSB7
CjE0NDc0OiAgc3RydWN0IHhhcnJheSB4YTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI1NSAiLi9pbmNs
dWRlL2xpbnV4L2lkci5oIgoxNDQ3NDogaW50IGlkYV9hbGxvY19yYW5nZShzdHJ1Y3QgaWRhICos
IHVuc2lnbmVkIGludCBtaW4sIHVuc2lnbmVkIGludCBtYXgsIGdmcF90KTsKMTQ0NzQ6IHZvaWQg
aWRhX2ZyZWUoc3RydWN0IGlkYSAqLCB1bnNpZ25lZCBpbnQgaWQpOwoxNDQ3NDogdm9pZCBpZGFf
ZGVzdHJveShzdHJ1Y3QgaWRhICppZGEpOwoxNDQ3NDogIyAyNzAgIi4vaW5jbHVkZS9saW51eC9p
ZHIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBpZGFfYWxsb2Moc3RydWN0IGlkYSAqaWRhLCBnZnBfdCBnZnApCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGlkYV9hbGxvY19yYW5nZShpZGEsIDAsIH4wLCBnZnApOwox
NDQ3NDogfQoxNDQ3NDogIyAyODcgIi4vaW5jbHVkZS9saW51eC9pZHIuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBp
ZGFfYWxsb2NfbWluKHN0cnVjdCBpZGEgKmlkYSwgdW5zaWduZWQgaW50IG1pbiwgZ2ZwX3QgZ2Zw
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBpZGFfYWxsb2NfcmFuZ2UoaWRhLCBtaW4sIH4wLCBn
ZnApOwoxNDQ3NDogfQoxNDQ3NDogIyAzMDQgIi4vaW5jbHVkZS9saW51eC9pZHIuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBpZGFfYWxsb2NfbWF4KHN0cnVjdCBpZGEgKmlkYSwgdW5zaWduZWQgaW50IG1heCwgZ2Zw
X3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBpZGFfYWxsb2NfcmFuZ2UoaWRhLCAwLCBt
YXgsIGdmcCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaWRhX2luaXQoc3RydWN0IGlk
YSAqaWRhKQoxNDQ3NDogewoxNDQ3NDogIHhhX2luaXRfZmxhZ3MoJmlkYS0+eGEsICgoKCBnZnBf
dClYQV9MT0NLX0lSUSkgfCAoKCggZ2ZwX3QpNFUpIHwgKCggZ2ZwX3QpKCgxVSA8PCAoMjMgKyAw
KSkgPDwgKCB1bnNpZ25lZCkoKCggeGFfbWFya190KTBVKSkpKSkpKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGlkYV9pc19lbXB0
eShjb25zdCBzdHJ1Y3QgaWRhICppZGEpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHhhX2VtcHR5
KCZpZGEtPnhhKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQgIi4vaW5jbHVkZS9saW51eC9rZXJuZnMu
aCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGZpbGU7CjE0NDc0OiBzdHJ1Y3QgZGVudHJ5OwoxNDQ3NDogc3RydWN0IGlhdHRy
OwoxNDQ3NDogc3RydWN0IHNlcV9maWxlOwoxNDQ3NDogc3RydWN0IHZtX2FyZWFfc3RydWN0Owox
NDQ3NDogc3RydWN0IHN1cGVyX2Jsb2NrOwoxNDQ3NDogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGU7
CjE0NDc0OiBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3Q7CjE0NDc0OiBzdHJ1Y3QgZnNfY29udGV4
dDsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtlcm5mc19mc19jb250ZXh0OwoxNDQ3NDogc3RydWN0
IGtlcm5mc19vcGVuX25vZGU7CjE0NDc0OiBzdHJ1Y3Qga2VybmZzX2lhdHRyczsKMTQ0NzQ6IAox
NDQ3NDogZW51bSBrZXJuZnNfbm9kZV90eXBlIHsKMTQ0NzQ6ICBLRVJORlNfRElSID0gMHgwMDAx
LAoxNDQ3NDogIEtFUk5GU19GSUxFID0gMHgwMDAyLAoxNDQ3NDogIEtFUk5GU19MSU5LID0gMHgw
MDA0LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBrZXJuZnNfbm9kZV9mbGFnIHsKMTQ0NzQ6ICBLRVJORlNfQUNUSVZBVEVEID0gMHgwMDEwLAox
NDQ3NDogIEtFUk5GU19OUyA9IDB4MDAyMCwKMTQ0NzQ6ICBLRVJORlNfSEFTX1NFUV9TSE9XID0g
MHgwMDQwLAoxNDQ3NDogIEtFUk5GU19IQVNfTU1BUCA9IDB4MDA4MCwKMTQ0NzQ6ICBLRVJORlNf
TE9DS0RFUCA9IDB4MDEwMCwKMTQ0NzQ6ICBLRVJORlNfU1VJQ0lEQUwgPSAweDA0MDAsCjE0NDc0
OiAgS0VSTkZTX1NVSUNJREVEID0gMHgwODAwLAoxNDQ3NDogIEtFUk5GU19FTVBUWV9ESVIgPSAw
eDEwMDAsCjE0NDc0OiAgS0VSTkZTX0hBU19SRUxFQVNFID0gMHgyMDAwLAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGtlcm5mc19yb290X2ZsYWcgewoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIEtFUk5GU19ST09UX0NS
RUFURV9ERUFDVElWQVRFRCA9IDB4MDAwMSwKMTQ0NzQ6ICMgNzQgIi4vaW5jbHVkZS9saW51eC9r
ZXJuZnMuaCIKMTQ0NzQ6ICBLRVJORlNfUk9PVF9FWFRSQV9PUEVOX1BFUk1fQ0hFQ0sgPSAweDAw
MDIsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIEtFUk5G
U19ST09UX1NVUFBPUlRfRVhQT1JUT1AgPSAweDAwMDQsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBrZXJuZnNfZWxlbV9kaXIgewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
c3ViZGlyczsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCByYl9yb290IGNoaWxkcmVuOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qga2VybmZzX3Jv
b3QgKnJvb3Q7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2VybmZzX2VsZW1fc3lt
bGluayB7CjE0NDc0OiAgc3RydWN0IGtlcm5mc19ub2RlICp0YXJnZXRfa247CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2VybmZzX2VsZW1fYXR0ciB7CjE0NDc0OiAgY29uc3Qgc3Ry
dWN0IGtlcm5mc19vcHMgKm9wczsKMTQ0NzQ6ICBzdHJ1Y3Qga2VybmZzX29wZW5fbm9kZSAqb3Bl
bjsKMTQ0NzQ6ICBsb2ZmX3Qgc2l6ZTsKMTQ0NzQ6ICBzdHJ1Y3Qga2VybmZzX25vZGUgKm5vdGlm
eV9uZXh0OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTE2ICIuL2luY2x1ZGUvbGludXgva2VybmZzLmgi
CjE0NDc0OiBzdHJ1Y3Qga2VybmZzX25vZGUgewoxNDQ3NDogIGF0b21pY190IGNvdW50OwoxNDQ3
NDogIGF0b21pY190IGFjdGl2ZTsKMTQ0NzQ6ICMgMTI4ICIuL2luY2x1ZGUvbGludXgva2VybmZz
LmgiCjE0NDc0OiAgc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQ7CjE0NDc0OiAgY29uc3QgY2hh
ciAqbmFtZTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCByYl9ub2RlIHJiOwoxNDQ3NDogCjE0NDc0
OiAgY29uc3Qgdm9pZCAqbnM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGhhc2g7CjE0NDc0OiAgdW5p
b24gewoxNDQ3NDogICBzdHJ1Y3Qga2VybmZzX2VsZW1fZGlyIGRpcjsKMTQ0NzQ6ICAgc3RydWN0
IGtlcm5mc19lbGVtX3N5bWxpbmsgc3ltbGluazsKMTQ0NzQ6ICAgc3RydWN0IGtlcm5mc19lbGVt
X2F0dHIgYXR0cjsKMTQ0NzQ6ICB9OwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAqcHJpdjsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTY0IGlkOwoxNDQ3NDog
CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgZmxhZ3M7CjE0NDc0OiAgdW1vZGVfdCBtb2RlOwoxNDQ3
NDogIHN0cnVjdCBrZXJuZnNfaWF0dHJzICppYXR0cjsKMTQ0NzQ6IH07CjE0NDc0OiAjIDE2MSAi
Li9pbmNsdWRlL2xpbnV4L2tlcm5mcy5oIgoxNDQ3NDogc3RydWN0IGtlcm5mc19zeXNjYWxsX29w
cyB7CjE0NDc0OiAgaW50ICgqc2hvd19vcHRpb25zKShzdHJ1Y3Qgc2VxX2ZpbGUgKnNmLCBzdHJ1
Y3Qga2VybmZzX3Jvb3QgKnJvb3QpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqbWtkaXIpKHN0cnVj
dCBrZXJuZnNfbm9kZSAqcGFyZW50LCBjb25zdCBjaGFyICpuYW1lLAoxNDQ3NDogICAgICAgIHVt
b2RlX3QgbW9kZSk7CjE0NDc0OiAgaW50ICgqcm1kaXIpKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24p
OwoxNDQ3NDogIGludCAoKnJlbmFtZSkoc3RydWN0IGtlcm5mc19ub2RlICprbiwgc3RydWN0IGtl
cm5mc19ub2RlICpuZXdfcGFyZW50LAoxNDQ3NDogICAgICAgICBjb25zdCBjaGFyICpuZXdfbmFt
ZSk7CjE0NDc0OiAgaW50ICgqc2hvd19wYXRoKShzdHJ1Y3Qgc2VxX2ZpbGUgKnNmLCBzdHJ1Y3Qg
a2VybmZzX25vZGUgKmtuLAoxNDQ3NDogICAgIHN0cnVjdCBrZXJuZnNfcm9vdCAqcm9vdCk7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2VybmZzX3Jvb3QgewoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IGtlcm5mc19ub2RlICprbjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBpZHIgaW5vX2lkcjsKMTQ0NzQ6ICB1MzIgbGFz
dF9pZF9sb3diaXRzOwoxNDQ3NDogIHUzMiBpZF9oaWdoYml0czsKMTQ0NzQ6ICBzdHJ1Y3Qga2Vy
bmZzX3N5c2NhbGxfb3BzICpzeXNjYWxsX29wczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IGxpc3RfaGVhZCBzdXBlcnM7CjE0NDc0OiAKMTQ0NzQ6ICB3YWl0X3F1ZXVlX2hlYWRfdCBk
ZWFjdGl2YXRlX3dhaXRxOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtlcm5mc19v
cGVuX2ZpbGUgewoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGtlcm5mc19ub2RlICprbjsKMTQ0NzQ6
ICBzdHJ1Y3QgZmlsZSAqZmlsZTsKMTQ0NzQ6ICBzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcV9maWxlOwox
NDQ3NDogIHZvaWQgKnByaXY7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBtdXRleCBt
dXRleDsKMTQ0NzQ6ICBzdHJ1Y3QgbXV0ZXggcHJlYWxsb2NfbXV0ZXg7CjE0NDc0OiAgaW50IGV2
ZW50OwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKMTQ0NzQ6ICBjaGFyICpwcmVhbGxv
Y19idWY7CjE0NDc0OiAKMTQ0NzQ6ICBzaXplX3QgYXRvbWljX3dyaXRlX2xlbjsKMTQ0NzQ6ICBi
b29sIG1tYXBwZWQ6MTsKMTQ0NzQ6ICBib29sIHJlbGVhc2VkOjE7CjE0NDc0OiAgY29uc3Qgc3Ry
dWN0IHZtX29wZXJhdGlvbnNfc3RydWN0ICp2bV9vcHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3Qga2VybmZzX29wcyB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBpbnQgKCpvcGVuKShzdHJ1Y3Qga2VybmZzX29wZW5fZmlsZSAqb2YpOwoxNDQ3NDogIHZv
aWQgKCpyZWxlYXNlKShzdHJ1Y3Qga2VybmZzX29wZW5fZmlsZSAqb2YpOwoxNDQ3NDogIyAyMjkg
Ii4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKMTQ0NzQ6ICBpbnQgKCpzZXFfc2hvdykoc3RydWN0
IHNlcV9maWxlICpzZiwgdm9pZCAqdik7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICooKnNlcV9zdGFy
dCkoc3RydWN0IHNlcV9maWxlICpzZiwgbG9mZl90ICpwcG9zKTsKMTQ0NzQ6ICB2b2lkICooKnNl
cV9uZXh0KShzdHJ1Y3Qgc2VxX2ZpbGUgKnNmLCB2b2lkICp2LCBsb2ZmX3QgKnBwb3MpOwoxNDQ3
NDogIHZvaWQgKCpzZXFfc3RvcCkoc3RydWN0IHNlcV9maWxlICpzZiwgdm9pZCAqdik7CjE0NDc0
OiAKMTQ0NzQ6ICBzc2l6ZV90ICgqcmVhZCkoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLCBj
aGFyICpidWYsIHNpemVfdCBieXRlcywKMTQ0NzQ6ICAgIGxvZmZfdCBvZmYpOwoxNDQ3NDogIyAy
NDUgIi4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKMTQ0NzQ6ICBzaXplX3QgYXRvbWljX3dyaXRl
X2xlbjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBib29sIHByZWFsbG9jOwoxNDQ3NDogIHNzaXplX3QgKCp3cml0ZSkoc3RydWN0IGtlcm5m
c19vcGVuX2ZpbGUgKm9mLCBjaGFyICpidWYsIHNpemVfdCBieXRlcywKMTQ0NzQ6ICAgICBsb2Zm
X3Qgb2ZmKTsKMTQ0NzQ6IAoxNDQ3NDogIF9fcG9sbF90ICgqcG9sbCkoc3RydWN0IGtlcm5mc19v
cGVuX2ZpbGUgKm9mLAoxNDQ3NDogICAgIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqcHQpOwox
NDQ3NDogCjE0NDc0OiAgaW50ICgqbW1hcCkoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLCBz
dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBrZXJuZnNfZnNfY29udGV4dCB7CjE0NDc0OiAgc3RydWN0IGtlcm5mc19yb290ICpyb290Owox
NDQ3NDogIHZvaWQgKm5zX3RhZzsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIG1hZ2ljOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBib29sIG5ld19zYl9jcmVhdGVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGVudW0ga2VybmZzX25vZGVfdHlwZSBrZXJuZnNfdHlwZShz
dHJ1Y3Qga2VybmZzX25vZGUgKmtuKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrbi0+ZmxhZ3Mg
JiAweDAwMGY7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlub190IGtlcm5mc19pZF9pbm8odTY0
IGlkKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgaWYgKHNpemVvZihpbm9fdCkgPj0gc2l6ZW9m
KHU2NCkpCjE0NDc0OiAgIHJldHVybiBpZDsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAgIHJldHVybiAo
dTMyKWlkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIga2VybmZzX2lkX2dlbih1NjQgaWQp
CjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoc2l6ZW9mKGlub190KSA+PSBzaXplb2YodTY0
KSkKMTQ0NzQ6ICAgcmV0dXJuIDE7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1cm4gaWQgPj4g
MzI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlub190IGtlcm5mc19pbm8oc3RydWN0IGtlcm5m
c19ub2RlICprbikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga2VybmZzX2lkX2lubyhrbi0+aWQp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbm9fdCBrZXJuZnNfZ2VuKHN0cnVjdCBrZXJuZnNf
bm9kZSAqa24pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtlcm5mc19pZF9nZW4oa24tPmlkKTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgMzIxICIuL2luY2x1ZGUvbGludXgva2VybmZzLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGtlcm5mc19lbmFibGVfbnMoc3RydWN0IGtlcm5mc19ub2RlICprbikKMTQ0NzQ6IHsKMTQ0
NzQ6ICAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGtlcm5mc190eXBlKGtuKSAhPSBLRVJORlNf
RElSKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRv
IHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAi
LnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAi
IC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIg
LSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRy
eTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3Jn
IDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L2tlcm5mcy5o
IiksICJpIiAoMzIzKSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJp
IiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRp
bGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9u
ZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDM1KSk7IH0pOyB9IHdo
aWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3
NDogICh7IGludCBfX3JldF93YXJuX29uID0gISEoISgoeyB1bmlvbiB7IHR5cGVvZigoJmtuLT5k
aXIuY2hpbGRyZW4pLT5yYl9ub2RlKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkg
X19yZWFkX29uY2Vfc2l6ZSgmKCgma24tPmRpci5jaGlsZHJlbiktPnJiX25vZGUpLCBfX3UuX19j
LCBzaXplb2YoKCZrbi0+ZGlyLmNoaWxkcmVuKS0+cmJfbm9kZSkpOyBlbHNlIF9fcmVhZF9vbmNl
X3NpemVfbm9jaGVjaygmKCgma24tPmRpci5jaGlsZHJlbiktPnJiX25vZGUpLCBfX3UuX19jLCBz
aXplb2YoKCZrbi0+ZGlyLmNoaWxkcmVuKS0+cmJfbm9kZSkpOyBkbyB7IH0gd2hpbGUgKDApOyBf
X3UuX192YWw7IH0pID09ICgodm9pZCAqKTApKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9f
cmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIg
Ii5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJc
biIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJc
biIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJc
dC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1
Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImki
ICgiaW5jbHVkZS9saW51eC9rZXJuZnMuaCIpLCAiaSIgKDMyNCksICJpIiAoKDEgPDwgMCl8KCgx
IDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9
IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlz
Y2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0
IiA6IDogImkiICgzNikpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19y
ZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6ICBrbi0+ZmxhZ3MgfD0gS0VSTkZTX05TOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIGtlcm5mc19uc19lbmFibGVkKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24p
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtuLT5mbGFncyAmIEtFUk5GU19OUzsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogaW50IGtlcm5mc19uYW1lKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sIGNo
YXIgKmJ1Ziwgc2l6ZV90IGJ1Zmxlbik7CjE0NDc0OiBpbnQga2VybmZzX3BhdGhfZnJvbV9ub2Rl
KHN0cnVjdCBrZXJuZnNfbm9kZSAqcm9vdF9rbiwgc3RydWN0IGtlcm5mc19ub2RlICprbiwKMTQ0
NzQ6ICAgICAgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKTsKMTQ0NzQ6IHZvaWQgcHJfY29udF9r
ZXJuZnNfbmFtZShzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKMTQ0NzQ6IHZvaWQgcHJfY29udF9r
ZXJuZnNfcGF0aChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKMTQ0NzQ6IHN0cnVjdCBrZXJuZnNf
bm9kZSAqa2VybmZzX2dldF9wYXJlbnQoc3RydWN0IGtlcm5mc19ub2RlICprbik7CjE0NDc0OiBz
dHJ1Y3Qga2VybmZzX25vZGUgKmtlcm5mc19maW5kX2FuZF9nZXRfbnMoc3RydWN0IGtlcm5mc19u
b2RlICpwYXJlbnQsCjE0NDc0OiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHZvaWQg
Km5zKTsKMTQ0NzQ6IHN0cnVjdCBrZXJuZnNfbm9kZSAqa2VybmZzX3dhbGtfYW5kX2dldF9ucyhz
dHJ1Y3Qga2VybmZzX25vZGUgKnBhcmVudCwKMTQ0NzQ6ICAgICAgICAgY29uc3QgY2hhciAqcGF0
aCwgY29uc3Qgdm9pZCAqbnMpOwoxNDQ3NDogdm9pZCBrZXJuZnNfZ2V0KHN0cnVjdCBrZXJuZnNf
bm9kZSAqa24pOwoxNDQ3NDogdm9pZCBrZXJuZnNfcHV0KHN0cnVjdCBrZXJuZnNfbm9kZSAqa24p
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2VybmZzX25vZGUgKmtlcm5mc19ub2RlX2Zyb21fZGVu
dHJ5KHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7CjE0NDc0OiBzdHJ1Y3Qga2VybmZzX3Jvb3QgKmtl
cm5mc19yb290X2Zyb21fc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0NDc0OiBzdHJ1Y3Qg
aW5vZGUgKmtlcm5mc19nZXRfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtl
cm5mc19ub2RlICprbik7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZW50cnkgKmtlcm5mc19ub2Rl
X2RlbnRyeShzdHJ1Y3Qga2VybmZzX25vZGUgKmtuLAoxNDQ3NDogICAgICAgc3RydWN0IHN1cGVy
X2Jsb2NrICpzYik7CjE0NDc0OiBzdHJ1Y3Qga2VybmZzX3Jvb3QgKmtlcm5mc19jcmVhdGVfcm9v
dChzdHJ1Y3Qga2VybmZzX3N5c2NhbGxfb3BzICpzY29wcywKMTQ0NzQ6ICAgICAgICAgICAgdW5z
aWduZWQgaW50IGZsYWdzLCB2b2lkICpwcml2KTsKMTQ0NzQ6IHZvaWQga2VybmZzX2Rlc3Ryb3lf
cm9vdChzdHJ1Y3Qga2VybmZzX3Jvb3QgKnJvb3QpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2Vy
bmZzX25vZGUgKmtlcm5mc19jcmVhdGVfZGlyX25zKHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFyZW50
LAoxNDQ3NDogICAgICAgY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLAoxNDQ3NDogICAg
ICAga3VpZF90IHVpZCwga2dpZF90IGdpZCwKMTQ0NzQ6ICAgICAgIHZvaWQgKnByaXYsIGNvbnN0
IHZvaWQgKm5zKTsKMTQ0NzQ6IHN0cnVjdCBrZXJuZnNfbm9kZSAqa2VybmZzX2NyZWF0ZV9lbXB0
eV9kaXIoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsCjE0NDc0OiAgICAgICAgICBjb25zdCBj
aGFyICpuYW1lKTsKMTQ0NzQ6IHN0cnVjdCBrZXJuZnNfbm9kZSAqX19rZXJuZnNfY3JlYXRlX2Zp
bGUoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsCjE0NDc0OiAgICAgICBjb25zdCBjaGFyICpu
YW1lLCB1bW9kZV90IG1vZGUsCjE0NDc0OiAgICAgICBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAox
NDQ3NDogICAgICAgbG9mZl90IHNpemUsCjE0NDc0OiAgICAgICBjb25zdCBzdHJ1Y3Qga2VybmZz
X29wcyAqb3BzLAoxNDQ3NDogICAgICAgdm9pZCAqcHJpdiwgY29uc3Qgdm9pZCAqbnMsCjE0NDc0
OiAgICAgICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmtleSk7CjE0NDc0OiBzdHJ1Y3Qga2VybmZz
X25vZGUgKmtlcm5mc19jcmVhdGVfbGluayhzdHJ1Y3Qga2VybmZzX25vZGUgKnBhcmVudCwKMTQ0
NzQ6ICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgICAgICAgc3RydWN0
IGtlcm5mc19ub2RlICp0YXJnZXQpOwoxNDQ3NDogdm9pZCBrZXJuZnNfYWN0aXZhdGUoc3RydWN0
IGtlcm5mc19ub2RlICprbik7CjE0NDc0OiB2b2lkIGtlcm5mc19yZW1vdmUoc3RydWN0IGtlcm5m
c19ub2RlICprbik7CjE0NDc0OiB2b2lkIGtlcm5mc19icmVha19hY3RpdmVfcHJvdGVjdGlvbihz
dHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKMTQ0NzQ6IHZvaWQga2VybmZzX3VuYnJlYWtfYWN0aXZl
X3Byb3RlY3Rpb24oc3RydWN0IGtlcm5mc19ub2RlICprbik7CjE0NDc0OiBib29sIGtlcm5mc19y
ZW1vdmVfc2VsZihzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKMTQ0NzQ6IGludCBrZXJuZnNfcmVt
b3ZlX2J5X25hbWVfbnMoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsIGNvbnN0IGNoYXIgKm5h
bWUsCjE0NDc0OiAgICAgICAgIGNvbnN0IHZvaWQgKm5zKTsKMTQ0NzQ6IGludCBrZXJuZnNfcmVu
YW1lX25zKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sIHN0cnVjdCBrZXJuZnNfbm9kZSAqbmV3X3Bh
cmVudCwKMTQ0NzQ6ICAgICAgICBjb25zdCBjaGFyICpuZXdfbmFtZSwgY29uc3Qgdm9pZCAqbmV3
X25zKTsKMTQ0NzQ6IGludCBrZXJuZnNfc2V0YXR0cihzdHJ1Y3Qga2VybmZzX25vZGUgKmtuLCBj
b25zdCBzdHJ1Y3QgaWF0dHIgKmlhdHRyKTsKMTQ0NzQ6IF9fcG9sbF90IGtlcm5mc19nZW5lcmlj
X3BvbGwoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLAoxNDQ3NDogICAgICAgICBzdHJ1Y3Qg
cG9sbF90YWJsZV9zdHJ1Y3QgKnB0KTsKMTQ0NzQ6IHZvaWQga2VybmZzX25vdGlmeShzdHJ1Y3Qg
a2VybmZzX25vZGUgKmtuKTsKMTQ0NzQ6IAoxNDQ3NDogaW50IGtlcm5mc194YXR0cl9nZXQoc3Ry
dWN0IGtlcm5mc19ub2RlICprbiwgY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgICB2b2lk
ICp2YWx1ZSwgc2l6ZV90IHNpemUpOwoxNDQ3NDogaW50IGtlcm5mc194YXR0cl9zZXQoc3RydWN0
IGtlcm5mc19ub2RlICprbiwgY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgICBjb25zdCB2
b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsIGludCBmbGFncyk7CjE0NDc0OiAKMTQ0NzQ6IGNvbnN0
IHZvaWQgKmtlcm5mc19zdXBlcl9ucyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKMTQ0NzQ6IGlu
dCBrZXJuZnNfZ2V0X3RyZWUoc3RydWN0IGZzX2NvbnRleHQgKmZjKTsKMTQ0NzQ6IHZvaWQga2Vy
bmZzX2ZyZWVfZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpOwoxNDQ3NDogdm9pZCBr
ZXJuZnNfa2lsbF9zYihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKMTQ0NzQ6IAoxNDQ3NDogdm9p
ZCBrZXJuZnNfaW5pdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtlcm5mc19ub2RlICpr
ZXJuZnNfZmluZF9hbmRfZ2V0X25vZGVfYnlfaWQoc3RydWN0IGtlcm5mc19yb290ICpyb290LAox
NDQ3NDogICAgICAgICAgdTY0IGlkKTsKMTQ0NzQ6ICMgNTMzICIuL2luY2x1ZGUvbGludXgva2Vy
bmZzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQga2VybmZzX3BhdGgoc3RydWN0IGtlcm5mc19ub2RlICprbiwgY2hh
ciAqYnVmLCBzaXplX3QgYnVmbGVuKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrZXJuZnNfcGF0
aF9mcm9tX25vZGUoa24sICgodm9pZCAqKTApLCBidWYsIGJ1Zmxlbik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHN0cnVjdCBrZXJuZnNfbm9kZSAqCjE0NDc0OiBrZXJuZnNfZmluZF9hbmRfZ2V0
KHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sIGNvbnN0IGNoYXIgKm5hbWUpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGtlcm5mc19maW5kX2FuZF9nZXRfbnMoa24sIG5hbWUsICgodm9pZCAqKTApKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtlcm5mc19ub2RlICoKMTQ0NzQ6IGtlcm5m
c193YWxrX2FuZF9nZXQoc3RydWN0IGtlcm5mc19ub2RlICprbiwgY29uc3QgY2hhciAqcGF0aCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga2VybmZzX3dhbGtfYW5kX2dldF9ucyhrbiwgcGF0aCwg
KCh2b2lkICopMCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2VybmZzX25vZGUg
KgoxNDQ3NDoga2VybmZzX2NyZWF0ZV9kaXIoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsIGNv
bnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICB2b2lkICpwcml2KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBrZXJuZnNfY3JlYXRlX2Rpcl9ucyhwYXJlbnQsIG5hbWUsIG1v
ZGUsCjE0NDc0OiAgICAgICAgIChrdWlkX3QpeyAwIH0sIChrZ2lkX3QpeyAwIH0sCjE0NDc0OiAg
ICAgICAgIHByaXYsICgodm9pZCAqKTApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGtlcm5mc19ub2RlICoKMTQ0NzQ6IGtlcm5mc19jcmVhdGVfZmlsZV9ucyhzdHJ1Y3Qga2VybmZz
X25vZGUgKnBhcmVudCwgY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgICAgdW1vZGVfdCBt
b2RlLCBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAoxNDQ3NDogICAgICAgICBsb2ZmX3Qgc2l6ZSwg
Y29uc3Qgc3RydWN0IGtlcm5mc19vcHMgKm9wcywKMTQ0NzQ6ICAgICAgICAgdm9pZCAqcHJpdiwg
Y29uc3Qgdm9pZCAqbnMpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpr
ZXkgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHJldHVybiBfX2tlcm5mc19jcmVhdGVfZmlsZShwYXJlbnQsIG5hbWUsIG1vZGUsIHVpZCwgZ2lk
LAoxNDQ3NDogICAgICAgICBzaXplLCBvcHMsIHByaXYsIG5zLCBrZXkpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3Qga2VybmZzX25vZGUgKgoxNDQ3NDoga2VybmZzX2NyZWF0ZV9maWxl
KHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFyZW50LCBjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1v
ZGUsCjE0NDc0OiAgICAgIGxvZmZfdCBzaXplLCBjb25zdCBzdHJ1Y3Qga2VybmZzX29wcyAqb3Bz
LCB2b2lkICpwcml2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrZXJuZnNfY3JlYXRlX2ZpbGVf
bnMocGFyZW50LCBuYW1lLCBtb2RlLAoxNDQ3NDogICAgICAgICAgKGt1aWRfdCl7IDAgfSwgKGtn
aWRfdCl7IDAgfSwKMTQ0NzQ6ICAgICAgICAgIHNpemUsIG9wcywgcHJpdiwgKCh2b2lkICopMCkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQga2VybmZzX3JlbW92ZV9ieV9uYW1lKHN0cnVj
dCBrZXJuZnNfbm9kZSAqcGFyZW50LAoxNDQ3NDogICAgICBjb25zdCBjaGFyICpuYW1lKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBrZXJuZnNfcmVtb3ZlX2J5X25hbWVfbnMocGFyZW50LCBuYW1l
LCAoKHZvaWQgKikwKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBrZXJuZnNfcmVuYW1l
KHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sCjE0NDc0OiAgICAgc3RydWN0IGtlcm5mc19ub2RlICpu
ZXdfcGFyZW50LAoxNDQ3NDogICAgIGNvbnN0IGNoYXIgKm5ld19uYW1lKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBrZXJuZnNfcmVuYW1lX25zKGtuLCBuZXdfcGFyZW50LCBuZXdfbmFtZSwgKCh2
b2lkICopMCkpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNyAiLi9pbmNsdWRlL2xpbnV4L3N5c2ZzLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUv
bGludXgva29iamVjdF9ucy5oIiAxCjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvbGludXgva29iamVj
dF9ucy5oIgoxNDQ3NDogc3RydWN0IHNvY2s7CjE0NDc0OiBzdHJ1Y3Qga29iamVjdDsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGtvYmpfbnNfdHlw
ZSB7CjE0NDc0OiAgS09CSl9OU19UWVBFX05PTkUgPSAwLAoxNDQ3NDogIEtPQkpfTlNfVFlQRV9O
RVQsCjE0NDc0OiAgS09CSl9OU19UWVBFUwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzkgIi4vaW5jbHVk
ZS9saW51eC9rb2JqZWN0X25zLmgiCjE0NDc0OiBzdHJ1Y3Qga29ial9uc190eXBlX29wZXJhdGlv
bnMgewoxNDQ3NDogIGVudW0ga29ial9uc190eXBlIHR5cGU7CjE0NDc0OiAgYm9vbCAoKmN1cnJl
bnRfbWF5X21vdW50KSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICooKmdyYWJfY3VycmVudF9ucykodm9p
ZCk7CjE0NDc0OiAgY29uc3Qgdm9pZCAqKCpuZXRsaW5rX25zKShzdHJ1Y3Qgc29jayAqc2spOwox
NDQ3NDogIGNvbnN0IHZvaWQgKigqaW5pdGlhbF9ucykodm9pZCk7CjE0NDc0OiAgdm9pZCAoKmRy
b3BfbnMpKHZvaWQgKik7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBpbnQga29ial9uc190eXBl
X3JlZ2lzdGVyKGNvbnN0IHN0cnVjdCBrb2JqX25zX3R5cGVfb3BlcmF0aW9ucyAqb3BzKTsKMTQ0
NzQ6IGludCBrb2JqX25zX3R5cGVfcmVnaXN0ZXJlZChlbnVtIGtvYmpfbnNfdHlwZSB0eXBlKTsK
MTQ0NzQ6IGNvbnN0IHN0cnVjdCBrb2JqX25zX3R5cGVfb3BlcmF0aW9ucyAqa29ial9jaGlsZF9u
c19vcHMoc3RydWN0IGtvYmplY3QgKnBhcmVudCk7CjE0NDc0OiBjb25zdCBzdHJ1Y3Qga29ial9u
c190eXBlX29wZXJhdGlvbnMgKmtvYmpfbnNfb3BzKHN0cnVjdCBrb2JqZWN0ICprb2JqKTsKMTQ0
NzQ6IAoxNDQ3NDogYm9vbCBrb2JqX25zX2N1cnJlbnRfbWF5X21vdW50KGVudW0ga29ial9uc190
eXBlIHR5cGUpOwoxNDQ3NDogdm9pZCAqa29ial9uc19ncmFiX2N1cnJlbnQoZW51bSBrb2JqX25z
X3R5cGUgdHlwZSk7CjE0NDc0OiBjb25zdCB2b2lkICprb2JqX25zX25ldGxpbmsoZW51bSBrb2Jq
X25zX3R5cGUgdHlwZSwgc3RydWN0IHNvY2sgKnNrKTsKMTQ0NzQ6IGNvbnN0IHZvaWQgKmtvYmpf
bnNfaW5pdGlhbChlbnVtIGtvYmpfbnNfdHlwZSB0eXBlKTsKMTQ0NzQ6IHZvaWQga29ial9uc19k
cm9wKGVudW0ga29ial9uc190eXBlIHR5cGUsIHZvaWQgKm5zKTsKMTQ0NzQ6ICMgMjIgIi4vaW5j
bHVkZS9saW51eC9zeXNmcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qga29iamVjdDsKMTQ0NzQ6IHN0cnVjdCBtb2R1bGU7CjE0NDc0OiBzdHJ1Y3QgYmluX2F0dHJp
YnV0ZTsKMTQ0NzQ6IGVudW0ga29ial9uc190eXBlOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXR0
cmlidXRlIHsKMTQ0NzQ6ICBjb25zdCBjaGFyICpuYW1lOwoxNDQ3NDogIHVtb2RlX3QgbW9kZTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDog
IyA4NCAiLi9pbmNsdWRlL2xpbnV4L3N5c2ZzLmgiCjE0NDc0OiBzdHJ1Y3QgYXR0cmlidXRlX2dy
b3VwIHsKMTQ0NzQ6ICBjb25zdCBjaGFyICpuYW1lOwoxNDQ3NDogIHVtb2RlX3QgKCppc192aXNp
YmxlKShzdHJ1Y3Qga29iamVjdCAqLAoxNDQ3NDogICAgICAgICAgICBzdHJ1Y3QgYXR0cmlidXRl
ICosIGludCk7CjE0NDc0OiAgdW1vZGVfdCAoKmlzX2Jpbl92aXNpYmxlKShzdHJ1Y3Qga29iamVj
dCAqLAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqLCBpbnQpOwoxNDQ3NDog
IHN0cnVjdCBhdHRyaWJ1dGUgKiphdHRyczsKMTQ0NzQ6ICBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAq
KmJpbl9hdHRyczsKMTQ0NzQ6IH07CjE0NDc0OiAjIDE1OCAiLi9pbmNsdWRlL2xpbnV4L3N5c2Zz
LmgiCjE0NDc0OiBzdHJ1Y3QgZmlsZTsKMTQ0NzQ6IHN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGJpbl9hdHRyaWJ1dGUgewoxNDQ3NDogIHN0cnVjdCBhdHRyaWJ1
dGUgYXR0cjsKMTQ0NzQ6ICBzaXplX3Qgc2l6ZTsKMTQ0NzQ6ICB2b2lkICpwcml2YXRlOwoxNDQ3
NDogIHNzaXplX3QgKCpyZWFkKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qga29iamVjdCAqLCBzdHJ1
Y3QgYmluX2F0dHJpYnV0ZSAqLAoxNDQ3NDogICAgY2hhciAqLCBsb2ZmX3QsIHNpemVfdCk7CjE0
NDc0OiAgc3NpemVfdCAoKndyaXRlKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qga29iamVjdCAqLCBz
dHJ1Y3QgYmluX2F0dHJpYnV0ZSAqLAoxNDQ3NDogICAgIGNoYXIgKiwgbG9mZl90LCBzaXplX3Qp
OwoxNDQ3NDogIGludCAoKm1tYXApKHN0cnVjdCBmaWxlICosIHN0cnVjdCBrb2JqZWN0ICosIHN0
cnVjdCBiaW5fYXR0cmlidXRlICphdHRyLAoxNDQ3NDogICAgICAgc3RydWN0IHZtX2FyZWFfc3Ry
dWN0ICp2bWEpOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjIzICIuL2luY2x1ZGUvbGludXgvc3lzZnMu
aCIKMTQ0NzQ6IHN0cnVjdCBzeXNmc19vcHMgewoxNDQ3NDogIHNzaXplX3QgKCpzaG93KShzdHJ1
Y3Qga29iamVjdCAqLCBzdHJ1Y3QgYXR0cmlidXRlICosIGNoYXIgKik7CjE0NDc0OiAgc3NpemVf
dCAoKnN0b3JlKShzdHJ1Y3Qga29iamVjdCAqLCBzdHJ1Y3QgYXR0cmlidXRlICosIGNvbnN0IGNo
YXIgKiwgc2l6ZV90KTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBp
bnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX2NyZWF0ZV9k
aXJfbnMoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IHZvaWQgKm5zKTsKMTQ0NzQ6IHZvaWQg
c3lzZnNfcmVtb3ZlX2RpcihzdHJ1Y3Qga29iamVjdCAqa29iaik7CjE0NDc0OiBpbnQgX19hdHRy
aWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX3JlbmFtZV9kaXJfbnMoc3Ry
dWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKm5ld19uYW1lLAoxNDQ3NDogICAgICAgICAg
Y29uc3Qgdm9pZCAqbmV3X25zKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51
c2VkX3Jlc3VsdF9fKSkgc3lzZnNfbW92ZV9kaXJfbnMoc3RydWN0IGtvYmplY3QgKmtvYmosCjE0
NDc0OiAgICAgICAgc3RydWN0IGtvYmplY3QgKm5ld19wYXJlbnRfa29iaiwKMTQ0NzQ6ICAgICAg
ICBjb25zdCB2b2lkICpuZXdfbnMpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKSBzeXNmc19jcmVhdGVfbW91bnRfcG9pbnQoc3RydWN0IGtvYmplY3Qg
KnBhcmVudF9rb2JqLAoxNDQ3NDogICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOwoxNDQ3NDogdm9p
ZCBzeXNmc19yZW1vdmVfbW91bnRfcG9pbnQoc3RydWN0IGtvYmplY3QgKnBhcmVudF9rb2JqLAox
NDQ3NDogICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7CjE0NDc0OiAKMTQ0NzQ6IGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2ZpbGVfbnMo
c3RydWN0IGtvYmplY3QgKmtvYmosCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGF0dHJp
YnV0ZSAqYXR0ciwKMTQ0NzQ6ICAgICAgICAgICBjb25zdCB2b2lkICpucyk7CjE0NDc0OiBpbnQg
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX2NyZWF0ZV9maWxl
cyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmli
dXRlICogY29uc3QgKmF0dHIpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVz
ZWRfcmVzdWx0X18pKSBzeXNmc19jaG1vZF9maWxlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAoxNDQ3
NDogICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgdW1vZGVfdCBtb2RlKTsKMTQ0
NzQ6IHN0cnVjdCBrZXJuZnNfbm9kZSAqc3lzZnNfYnJlYWtfYWN0aXZlX3Byb3RlY3Rpb24oc3Ry
dWN0IGtvYmplY3QgKmtvYmosCjE0NDc0OiAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUg
KmF0dHIpOwoxNDQ3NDogdm9pZCBzeXNmc191bmJyZWFrX2FjdGl2ZV9wcm90ZWN0aW9uKHN0cnVj
dCBrZXJuZnNfbm9kZSAqa24pOwoxNDQ3NDogdm9pZCBzeXNmc19yZW1vdmVfZmlsZV9ucyhzdHJ1
Y3Qga29iamVjdCAqa29iaiwgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKMTQ0NzQ6ICAg
ICAgY29uc3Qgdm9pZCAqbnMpOwoxNDQ3NDogYm9vbCBzeXNmc19yZW1vdmVfZmlsZV9zZWxmKHN0
cnVjdCBrb2JqZWN0ICprb2JqLCBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyKTsKMTQ0NzQ6
IHZvaWQgc3lzZnNfcmVtb3ZlX2ZpbGVzKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBjb25zdCBzdHJ1
Y3QgYXR0cmlidXRlICogY29uc3QgKmF0dHIpOwoxNDQ3NDogCjE0NDc0OiBpbnQgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX2NyZWF0ZV9iaW5fZmlsZShzdHJ1
Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJpbl9hdHRy
aWJ1dGUgKmF0dHIpOwoxNDQ3NDogdm9pZCBzeXNmc19yZW1vdmVfYmluX2ZpbGUoc3RydWN0IGtv
YmplY3QgKmtvYmosCjE0NDc0OiAgICAgICBjb25zdCBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYXR0
cik7CjE0NDc0OiAKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkgc3lzZnNfY3JlYXRlX2xpbmsoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBrb2Jq
ZWN0ICp0YXJnZXQsCjE0NDc0OiAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7CjE0NDc0OiBpbnQg
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX2NyZWF0ZV9saW5r
X25vd2FybihzdHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3Qga29iamVj
dCAqdGFyZ2V0LAoxNDQ3NDogICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOwoxNDQ3NDogdm9pZCBz
eXNmc19yZW1vdmVfbGluayhzdHJ1Y3Qga29iamVjdCAqa29iaiwgY29uc3QgY2hhciAqbmFtZSk7
CjE0NDc0OiAKMTQ0NzQ6IGludCBzeXNmc19yZW5hbWVfbGlua19ucyhzdHJ1Y3Qga29iamVjdCAq
a29iaiwgc3RydWN0IGtvYmplY3QgKnRhcmdldCwKMTQ0NzQ6ICAgICBjb25zdCBjaGFyICpvbGRf
bmFtZSwgY29uc3QgY2hhciAqbmV3X25hbWUsCjE0NDc0OiAgICAgY29uc3Qgdm9pZCAqbmV3X25z
KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBzeXNmc19kZWxldGVfbGluayhzdHJ1Y3Qga29iamVjdCAq
ZGlyLCBzdHJ1Y3Qga29iamVjdCAqdGFyZywKMTQ0NzQ6ICAgIGNvbnN0IGNoYXIgKm5hbWUpOwox
NDQ3NDogCjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IHN5c2ZzX2NyZWF0ZV9ncm91cChzdHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICAg
Y29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZ3JwKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0
ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2dyb3VwcyhzdHJ1Y3Qg
a29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv
dXAgKipncm91cHMpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVz
dWx0X18pKSBzeXNmc191cGRhdGVfZ3JvdXBzKHN0cnVjdCBrb2JqZWN0ICprb2JqLAoxNDQ3NDog
ICAgICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CjE0NDc0OiBp
bnQgc3lzZnNfdXBkYXRlX2dyb3VwKHN0cnVjdCBrb2JqZWN0ICprb2JqLAoxNDQ3NDogICAgICAg
ICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZ3JwKTsKMTQ0NzQ6IHZvaWQgc3lzZnNf
cmVtb3ZlX2dyb3VwKHN0cnVjdCBrb2JqZWN0ICprb2JqLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0
IGF0dHJpYnV0ZV9ncm91cCAqZ3JwKTsKMTQ0NzQ6IHZvaWQgc3lzZnNfcmVtb3ZlX2dyb3Vwcyhz
dHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dy
b3VwICoqZ3JvdXBzKTsKMTQ0NzQ6IGludCBzeXNmc19hZGRfZmlsZV90b19ncm91cChzdHJ1Y3Qg
a29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIGNv
bnN0IGNoYXIgKmdyb3VwKTsKMTQ0NzQ6IHZvaWQgc3lzZnNfcmVtb3ZlX2ZpbGVfZnJvbV9ncm91
cChzdHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUg
KmF0dHIsIGNvbnN0IGNoYXIgKmdyb3VwKTsKMTQ0NzQ6IGludCBzeXNmc19tZXJnZV9ncm91cChz
dHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1
dGVfZ3JvdXAgKmdycCk7CjE0NDc0OiB2b2lkIHN5c2ZzX3VubWVyZ2VfZ3JvdXAoc3RydWN0IGtv
YmplY3QgKmtvYmosCjE0NDc0OiAgICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3Vw
ICpncnApOwoxNDQ3NDogaW50IHN5c2ZzX2FkZF9saW5rX3RvX2dyb3VwKHN0cnVjdCBrb2JqZWN0
ICprb2JqLCBjb25zdCBjaGFyICpncm91cF9uYW1lLAoxNDQ3NDogICAgICAgIHN0cnVjdCBrb2Jq
ZWN0ICp0YXJnZXQsIGNvbnN0IGNoYXIgKmxpbmtfbmFtZSk7CjE0NDc0OiB2b2lkIHN5c2ZzX3Jl
bW92ZV9saW5rX2Zyb21fZ3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKmdy
b3VwX25hbWUsCjE0NDc0OiAgICAgICBjb25zdCBjaGFyICpsaW5rX25hbWUpOwoxNDQ3NDogaW50
IF9fY29tcGF0X29ubHlfc3lzZnNfbGlua19lbnRyeV90b19rb2JqKHN0cnVjdCBrb2JqZWN0ICpr
b2JqLAoxNDQ3NDogICAgICAgICAgIHN0cnVjdCBrb2JqZWN0ICp0YXJnZXRfa29iaiwKMTQ0NzQ6
ICAgICAgICAgICBjb25zdCBjaGFyICp0YXJnZXRfbmFtZSk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQg
c3lzZnNfbm90aWZ5KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBjb25zdCBjaGFyICpkaXIsIGNvbnN0
IGNoYXIgKmF0dHIpOwoxNDQ3NDogCjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIHN5c2ZzX2luaXQodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc3lz
ZnNfZW5hYmxlX25zKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGtlcm5mc19lbmFibGVfbnMoa24pOwoxNDQ3NDogfQoxNDQ3NDogIyA1MjcgIi4vaW5jbHVk
ZS9saW51eC9zeXNmcy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBzeXNmc19jcmVhdGVfZmlsZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6
ICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBzeXNmc19jcmVhdGVfZmlsZV9ucyhrb2JqLCBhdHRyLCAoKHZvaWQgKikwKSk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc3lzZnNfcmVtb3ZlX2ZpbGUoc3RydWN0IGtvYmplY3Qg
KmtvYmosCjE0NDc0OiAgICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQoxNDQ3
NDogewoxNDQ3NDogIHN5c2ZzX3JlbW92ZV9maWxlX25zKGtvYmosIGF0dHIsICgodm9pZCAqKTAp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHN5c2ZzX3JlbmFtZV9saW5rKHN0cnVjdCBr
b2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29iamVjdCAqdGFyZ2V0LAoxNDQ3NDogICAgICAgICBjb25z
dCBjaGFyICpvbGRfbmFtZSwgY29uc3QgY2hhciAqbmV3X25hbWUpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIHN5c2ZzX3JlbmFtZV9saW5rX25zKGtvYmosIHRhcmdldCwgb2xkX25hbWUsIG5ld19u
YW1lLCAoKHZvaWQgKikwKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc3lzZnNfbm90
aWZ5X2RpcmVudChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKQoxNDQ3NDogewoxNDQ3NDogIGtlcm5m
c19ub3RpZnkoa24pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2VybmZzX25vZGUg
KnN5c2ZzX2dldF9kaXJlbnQoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsCjE0NDc0OiAgICAg
ICAgICBjb25zdCBjaGFyICpuYW1lKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrZXJuZnNfZmlu
ZF9hbmRfZ2V0KHBhcmVudCwgbmFtZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBr
ZXJuZnNfbm9kZSAqc3lzZnNfZ2V0KHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pCjE0NDc0OiB7CjE0
NDc0OiAga2VybmZzX2dldChrbik7CjE0NDc0OiAgcmV0dXJuIGtuOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHN5c2ZzX3B1dChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKQoxNDQ3NDogewox
NDQ3NDogIGtlcm5mc19wdXQoa24pOwoxNDQ3NDogfQoxNDQ3NDogIyAyMSAiLi9pbmNsdWRlL2xp
bnV4L2tvYmplY3QuaCIgMgoxNDQ3NDogIyA0MSAiLi9pbmNsdWRlL2xpbnV4L2tvYmplY3QuaCIK
MTQ0NzQ6IGV4dGVybiB1NjQgdWV2ZW50X3NlcW51bTsKMTQ0NzQ6ICMgNTMgIi4vaW5jbHVkZS9s
aW51eC9rb2JqZWN0LmgiCjE0NDc0OiBlbnVtIGtvYmplY3RfYWN0aW9uIHsKMTQ0NzQ6ICBLT0JK
X0FERCwKMTQ0NzQ6ICBLT0JKX1JFTU9WRSwKMTQ0NzQ6ICBLT0JKX0NIQU5HRSwKMTQ0NzQ6ICBL
T0JKX01PVkUsCjE0NDc0OiAgS09CSl9PTkxJTkUsCjE0NDc0OiAgS09CSl9PRkZMSU5FLAoxNDQ3
NDogIEtPQkpfQklORCwKMTQ0NzQ6ICBLT0JKX1VOQklORCwKMTQ0NzQ6ICBLT0JKX01BWAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtvYmplY3QgewoxNDQ3NDogIGNvbnN0IGNoYXIg
Km5hbWU7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKMTQ0NzQ6ICBzdHJ1Y3Qga29i
amVjdCAqcGFyZW50OwoxNDQ3NDogIHN0cnVjdCBrc2V0ICprc2V0OwoxNDQ3NDogIHN0cnVjdCBr
b2JqX3R5cGUgKmt0eXBlOwoxNDQ3NDogIHN0cnVjdCBrZXJuZnNfbm9kZSAqc2Q7CjE0NDc0OiAg
c3RydWN0IGtyZWYga3JlZjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgc3RhdGVfaW5pdGlhbGl6ZWQ6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3RhdGVfaW5f
c3lzZnM6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3RhdGVfYWRkX3VldmVudF9zZW50OjE7CjE0
NDc0OiAgdW5zaWduZWQgaW50IHN0YXRlX3JlbW92ZV91ZXZlbnRfc2VudDoxOwoxNDQ3NDogIHVu
c2lnbmVkIGludCB1ZXZlbnRfc3VwcHJlc3M6MTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKQoxNDQ3NDogaW50
IGtvYmplY3Rfc2V0X25hbWUoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKm5hbWUs
IC4uLik7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIs
IDApKSkKMTQ0NzQ6IGludCBrb2JqZWN0X3NldF9uYW1lX3ZhcmdzKHN0cnVjdCBrb2JqZWN0ICpr
b2JqLCBjb25zdCBjaGFyICpmbXQsCjE0NDc0OiAgICAgICB2YV9saXN0IHZhcmdzKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgY29uc3QgY2hhciAqa29iamVjdF9uYW1lKGNvbnN0IHN0cnVjdCBrb2JqZWN0ICpr
b2JqKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrb2JqLT5uYW1lOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBrb2JqZWN0X2luaXQoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0
cnVjdCBrb2JqX3R5cGUgKmt0eXBlKTsKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zv
cm1hdF9fKHByaW50ZiwgMywgNCkpKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkKMTQ0NzQ6IGludCBrb2JqZWN0X2FkZChzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0
IGtvYmplY3QgKnBhcmVudCwKMTQ0NzQ6ICAgY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDog
ZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCA0LCA1KSkpIF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKQoxNDQ3NDogaW50IGtvYmplY3RfaW5pdF9h
bmRfYWRkKHN0cnVjdCBrb2JqZWN0ICprb2JqLAoxNDQ3NDogICAgIHN0cnVjdCBrb2JqX3R5cGUg
Kmt0eXBlLCBzdHJ1Y3Qga29iamVjdCAqcGFyZW50LAoxNDQ3NDogICAgIGNvbnN0IGNoYXIgKmZt
dCwgLi4uKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQga29iamVjdF9kZWwoc3RydWN0IGtv
YmplY3QgKmtvYmopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGtvYmplY3QgKiBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga29iamVjdF9jcmVhdGUodm9pZCk7
CjE0NDc0OiBleHRlcm4gc3RydWN0IGtvYmplY3QgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51
c2VkX3Jlc3VsdF9fKSkga29iamVjdF9jcmVhdGVfYW5kX2FkZChjb25zdCBjaGFyICpuYW1lLAox
NDQ3NDogICAgICAgc3RydWN0IGtvYmplY3QgKnBhcmVudCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtvYmplY3RfcmVu
YW1lKHN0cnVjdCBrb2JqZWN0ICosIGNvbnN0IGNoYXIgKm5ld19uYW1lKTsKMTQ0NzQ6IGV4dGVy
biBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtvYmplY3RfbW92
ZShzdHJ1Y3Qga29iamVjdCAqLCBzdHJ1Y3Qga29iamVjdCAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCBrb2JqZWN0ICprb2JqZWN0X2dldChzdHJ1Y3Qga29iamVjdCAqa29iaik7CjE0
NDc0OiBleHRlcm4gc3RydWN0IGtvYmplY3QgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSkga29iamVjdF9nZXRfdW5sZXNzX3plcm8oCjE0NDc0OiAgICAgICBzdHJ1Y3Qg
a29iamVjdCAqa29iaik7CjE0NDc0OiBleHRlcm4gdm9pZCBrb2JqZWN0X3B1dChzdHJ1Y3Qga29i
amVjdCAqa29iaik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjb25zdCB2b2lkICprb2JqZWN0X25h
bWVzcGFjZShzdHJ1Y3Qga29iamVjdCAqa29iaik7CjE0NDc0OiBleHRlcm4gdm9pZCBrb2JqZWN0
X2dldF9vd25lcnNoaXAoc3RydWN0IGtvYmplY3QgKmtvYmosCjE0NDc0OiAgICAgICBrdWlkX3Qg
KnVpZCwga2dpZF90ICpnaWQpOwoxNDQ3NDogZXh0ZXJuIGNoYXIgKmtvYmplY3RfZ2V0X3BhdGgo
c3RydWN0IGtvYmplY3QgKmtvYmosIGdmcF90IGZsYWcpOwoxNDQ3NDogIyAxMzIgIi4vaW5jbHVk
ZS9saW51eC9rb2JqZWN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGtvYmplY3RfaGFzX2NoaWxkcmVuKHN0cnVj
dCBrb2JqZWN0ICprb2JqKQoxNDQ3NDogewoxNDQ3NDogICh7IGludCBfX3JldF93YXJuX29uID0g
ISEoa3JlZl9yZWFkKCZrb2JqLT5rcmVmKSA9PSAwKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEo
X19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0
IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdc
IlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRk
clxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIg
Ilx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMg
YnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAi
aSIgKCJpbmNsdWRlL2xpbnV4L2tvYmplY3QuaCIpLCAiaSIgKDEzNCksICJpIiAoKDEgPDwgMCl8
KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkp
OyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25c
blx0IiA6IDogImkiICgzNykpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEo
X19yZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBrb2JqLT5zZCAm
JiBrb2JqLT5zZC0+ZGlyLnN1YmRpcnM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBr
b2JqX3R5cGUgewoxNDQ3NDogIHZvaWQgKCpyZWxlYXNlKShzdHJ1Y3Qga29iamVjdCAqa29iaik7
CjE0NDc0OiAgY29uc3Qgc3RydWN0IHN5c2ZzX29wcyAqc3lzZnNfb3BzOwoxNDQ3NDogIHN0cnVj
dCBhdHRyaWJ1dGUgKipkZWZhdWx0X2F0dHJzOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhdHRyaWJ1
dGVfZ3JvdXAgKipkZWZhdWx0X2dyb3VwczsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3Qga29ial9uc190
eXBlX29wZXJhdGlvbnMgKigqY2hpbGRfbnNfdHlwZSkoc3RydWN0IGtvYmplY3QgKmtvYmopOwox
NDQ3NDogIGNvbnN0IHZvaWQgKigqbmFtZXNwYWNlKShzdHJ1Y3Qga29iamVjdCAqa29iaik7CjE0
NDc0OiAgdm9pZCAoKmdldF9vd25lcnNoaXApKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBrdWlkX3Qg
KnVpZCwga2dpZF90ICpnaWQpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtvYmpf
dWV2ZW50X2VudiB7CjE0NDc0OiAgY2hhciAqYXJndlszXTsKMTQ0NzQ6ICBjaGFyICplbnZwWzMy
XTsKMTQ0NzQ6ICBpbnQgZW52cF9pZHg7CjE0NDc0OiAgY2hhciBidWZbMjA0OF07CjE0NDc0OiAg
aW50IGJ1ZmxlbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBrc2V0X3VldmVudF9v
cHMgewoxNDQ3NDogIGludCAoKiBjb25zdCBmaWx0ZXIpKHN0cnVjdCBrc2V0ICprc2V0LCBzdHJ1
Y3Qga29iamVjdCAqa29iaik7CjE0NDc0OiAgY29uc3QgY2hhciAqKCogY29uc3QgbmFtZSkoc3Ry
dWN0IGtzZXQgKmtzZXQsIHN0cnVjdCBrb2JqZWN0ICprb2JqKTsKMTQ0NzQ6ICBpbnQgKCogY29u
c3QgdWV2ZW50KShzdHJ1Y3Qga3NldCAqa3NldCwgc3RydWN0IGtvYmplY3QgKmtvYmosCjE0NDc0
OiAgICAgICAgIHN0cnVjdCBrb2JqX3VldmVudF9lbnYgKmVudik7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgewoxNDQ3NDogIHN0cnVjdCBhdHRyaWJ1dGUg
YXR0cjsKMTQ0NzQ6ICBzc2l6ZV90ICgqc2hvdykoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVj
dCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwKMTQ0NzQ6ICAgIGNoYXIgKmJ1Zik7CjE0NDc0OiAgc3Np
emVfdCAoKnN0b3JlKShzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGtvYmpfYXR0cmlidXRl
ICphdHRyLAoxNDQ3NDogICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3lzZnNfb3BzIGtvYmpfc3lz
ZnNfb3BzOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc29jazsKMTQ0NzQ6ICMgMTkzICIuL2luY2x1
ZGUvbGludXgva29iamVjdC5oIgoxNDQ3NDogc3RydWN0IGtzZXQgewoxNDQ3NDogIHN0cnVjdCBs
aXN0X2hlYWQgbGlzdDsKMTQ0NzQ6ICBzcGlubG9ja190IGxpc3RfbG9jazsKMTQ0NzQ6ICBzdHJ1
Y3Qga29iamVjdCBrb2JqOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBrc2V0X3VldmVudF9vcHMgKnVl
dmVudF9vcHM7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQga3NldF9pbml0KHN0cnVjdCBrc2V0ICprc2V0KTsK
MTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGtzZXRfcmVnaXN0ZXIoc3RydWN0IGtzZXQgKmtzZXQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQga3Nl
dF91bnJlZ2lzdGVyKHN0cnVjdCBrc2V0ICprc2V0KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga3Nl
dCAqIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc2V0X2NyZWF0ZV9h
bmRfYWRkKGNvbnN0IGNoYXIgKm5hbWUsCjE0NDc0OiAgICAgICBjb25zdCBzdHJ1Y3Qga3NldF91
ZXZlbnRfb3BzICp1LAoxNDQ3NDogICAgICAgc3RydWN0IGtvYmplY3QgKnBhcmVudF9rb2JqKTsK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtzZXQgKnRvX2tzZXQoc3RydWN0IGtvYmplY3QgKmtvYmop
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtvYmogPyAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAq
KShrb2JqKTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8yMDkodm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFp
bmVyX29mKCkiKSkpOyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVv
ZigqKGtvYmopKSwgdHlwZW9mKCgoc3RydWN0IGtzZXQgKikwKS0+a29iaikpICYmICFfX2J1aWx0
aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKGtvYmopKSwgdHlwZW9mKHZvaWQpKSkpKSBf
X2NvbXBpbGV0aW1lX2Fzc2VydF8yMDkoKTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IGtzZXQgKiko
X19tcHRyIC0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBrc2V0LCBrb2JqKSkpOyB9KSA6ICgo
dm9pZCAqKTApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga3NldCAqa3NldF9nZXQo
c3RydWN0IGtzZXQgKmspCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGsgPyB0b19rc2V0KGtvYmpl
Y3RfZ2V0KCZrLT5rb2JqKSkgOiAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBrc2V0X3B1dChzdHJ1Y3Qga3NldCAqaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBrb2JqZWN0X3B1
dCgmay0+a29iaik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrb2JqX3R5cGUgKmdl
dF9rdHlwZShzdHJ1Y3Qga29iamVjdCAqa29iaikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga29i
ai0+a3R5cGU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga29iamVjdCAq
a3NldF9maW5kX29iaihzdHJ1Y3Qga3NldCAqLCBjb25zdCBjaGFyICopOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga29iamVjdCAqa2VybmVsX2tvYmo7CjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBzdHJ1Y3Qga29iamVjdCAqbW1fa29iajsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHN0cnVjdCBrb2JqZWN0ICpoeXBlcnZpc29yX2tvYmo7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBz
dHJ1Y3Qga29iamVjdCAqcG93ZXJfa29iajsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBr
b2JqZWN0ICpmaXJtd2FyZV9rb2JqOwoxNDQ3NDogCjE0NDc0OiBpbnQga29iamVjdF91ZXZlbnQo
c3RydWN0IGtvYmplY3QgKmtvYmosIGVudW0ga29iamVjdF9hY3Rpb24gYWN0aW9uKTsKMTQ0NzQ6
IGludCBrb2JqZWN0X3VldmVudF9lbnYoc3RydWN0IGtvYmplY3QgKmtvYmosIGVudW0ga29iamVj
dF9hY3Rpb24gYWN0aW9uLAoxNDQ3NDogICAgY2hhciAqZW52cFtdKTsKMTQ0NzQ6IGludCBrb2Jq
ZWN0X3N5bnRoX3VldmVudChzdHJ1Y3Qga29iamVjdCAqa29iaiwgY29uc3QgY2hhciAqYnVmLCBz
aXplX3QgY291bnQpOwoxNDQ3NDogCjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHBy
aW50ZiwgMiwgMykpKQoxNDQ3NDogaW50IGFkZF91ZXZlbnRfdmFyKHN0cnVjdCBrb2JqX3VldmVu
dF9lbnYgKmVudiwgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pOwoxNDQ3NDogIyAxOCAiLi9pbmNs
dWRlL2xpbnV4L2RldmljZS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9rbGlzdC5o
IiAxCjE0NDc0OiAjIDE3ICIuL2luY2x1ZGUvbGludXgva2xpc3QuaCIKMTQ0NzQ6IHN0cnVjdCBr
bGlzdF9ub2RlOwoxNDQ3NDogc3RydWN0IGtsaXN0IHsKMTQ0NzQ6ICBzcGlubG9ja190IGtfbG9j
azsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGtfbGlzdDsKMTQ0NzQ6ICB2b2lkICgqZ2V0KShz
dHJ1Y3Qga2xpc3Rfbm9kZSAqKTsKMTQ0NzQ6ICB2b2lkICgqcHV0KShzdHJ1Y3Qga2xpc3Rfbm9k
ZSAqKTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQgKHNpemVvZih2b2lkICopKSkp
OwoxNDQ3NDogIyAzNCAiLi9pbmNsdWRlL2xpbnV4L2tsaXN0LmgiCjE0NDc0OiBleHRlcm4gdm9p
ZCBrbGlzdF9pbml0KHN0cnVjdCBrbGlzdCAqaywgdm9pZCAoKmdldCkoc3RydWN0IGtsaXN0X25v
ZGUgKiksCjE0NDc0OiAgICAgICAgICB2b2lkICgqcHV0KShzdHJ1Y3Qga2xpc3Rfbm9kZSAqKSk7
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBrbGlzdF9ub2RlIHsKMTQ0NzQ6ICB2b2lkICpuX2tsaXN0
OwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgbl9ub2RlOwoxNDQ3NDogIHN0cnVjdCBrcmVmIG5f
cmVmOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQga2xpc3RfYWRkX3RhaWwo
c3RydWN0IGtsaXN0X25vZGUgKm4sIHN0cnVjdCBrbGlzdCAqayk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBrbGlzdF9hZGRfaGVhZChzdHJ1Y3Qga2xpc3Rfbm9kZSAqbiwgc3RydWN0IGtsaXN0ICprKTsK
MTQ0NzQ6IGV4dGVybiB2b2lkIGtsaXN0X2FkZF9iZWhpbmQoc3RydWN0IGtsaXN0X25vZGUgKm4s
IHN0cnVjdCBrbGlzdF9ub2RlICpwb3MpOwoxNDQ3NDogZXh0ZXJuIHZvaWQga2xpc3RfYWRkX2Jl
Zm9yZShzdHJ1Y3Qga2xpc3Rfbm9kZSAqbiwgc3RydWN0IGtsaXN0X25vZGUgKnBvcyk7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGtsaXN0X2RlbChzdHJ1Y3Qga2xpc3Rfbm9kZSAqbik7CjE0
NDc0OiBleHRlcm4gdm9pZCBrbGlzdF9yZW1vdmUoc3RydWN0IGtsaXN0X25vZGUgKm4pOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gaW50IGtsaXN0X25vZGVfYXR0YWNoZWQoc3RydWN0IGtsaXN0X25v
ZGUgKm4pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBrbGlzdF9pdGVyIHsKMTQ0NzQ6
ICBzdHJ1Y3Qga2xpc3QgKmlfa2xpc3Q7CjE0NDc0OiAgc3RydWN0IGtsaXN0X25vZGUgKmlfY3Vy
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBrbGlzdF9pdGVy
X2luaXQoc3RydWN0IGtsaXN0ICprLCBzdHJ1Y3Qga2xpc3RfaXRlciAqaSk7CjE0NDc0OiBleHRl
cm4gdm9pZCBrbGlzdF9pdGVyX2luaXRfbm9kZShzdHJ1Y3Qga2xpc3QgKmssIHN0cnVjdCBrbGlz
dF9pdGVyICppLAoxNDQ3NDogICAgICBzdHJ1Y3Qga2xpc3Rfbm9kZSAqbik7CjE0NDc0OiBleHRl
cm4gdm9pZCBrbGlzdF9pdGVyX2V4aXQoc3RydWN0IGtsaXN0X2l0ZXIgKmkpOwoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCBrbGlzdF9ub2RlICprbGlzdF9wcmV2KHN0cnVjdCBrbGlzdF9pdGVyICppKTsK
MTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga2xpc3Rfbm9kZSAqa2xpc3RfbmV4dChzdHJ1Y3Qga2xpc3Rf
aXRlciAqaSk7CjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiIDIKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9s
aW51eC9wbS5oIiAxCjE0NDc0OiAjIDIyICIuL2luY2x1ZGUvbGludXgvcG0uaCIKMTQ0NzQ6IGV4
dGVybiB2b2lkICgqcG1fcG93ZXJfb2ZmKSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkICgqcG1f
cG93ZXJfb2ZmX3ByZXBhcmUpKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlOwox
NDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBwbV92dF9zd2l0Y2hfcmVxdWlyZWQoc3RydWN0IGRl
dmljZSAqZGV2LCBib29sIHJlcXVpcmVkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHBtX3Z0X3N3aXRj
aF91bnJlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAjIDQyICIuL2luY2x1ZGUv
bGludXgvcG0uaCIKMTQ0NzQ6IHN0cnVjdCBkZXZpY2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIGNvbnN0IGNoYXIgcG93ZXJfZ3JvdXBfbmFtZVtdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBwbV9tZXNzYWdlIHsKMTQ0NzQ6ICBp
bnQgZXZlbnQ7CjE0NDc0OiB9IHBtX21lc3NhZ2VfdDsKMTQ0NzQ6ICMgMjc4ICIuL2luY2x1ZGUv
bGludXgvcG0uaCIKMTQ0NzQ6IHN0cnVjdCBkZXZfcG1fb3BzIHsKMTQ0NzQ6ICBpbnQgKCpwcmVw
YXJlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIHZvaWQgKCpjb21wbGV0ZSkoc3RydWN0
IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpzdXNwZW5kKShzdHJ1Y3QgZGV2aWNlICpkZXYp
OwoxNDQ3NDogIGludCAoKnJlc3VtZSkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQg
KCpmcmVlemUpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqdGhhdykoc3RydWN0
IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpwb3dlcm9mZikoc3RydWN0IGRldmljZSAqZGV2
KTsKMTQ0NzQ6ICBpbnQgKCpyZXN0b3JlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIGlu
dCAoKnN1c3BlbmRfbGF0ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpyZXN1
bWVfZWFybHkpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqZnJlZXplX2xhdGUp
KHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqdGhhd19lYXJseSkoc3RydWN0IGRl
dmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpwb3dlcm9mZl9sYXRlKShzdHJ1Y3QgZGV2aWNlICpk
ZXYpOwoxNDQ3NDogIGludCAoKnJlc3RvcmVfZWFybHkpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0
NDc0OiAgaW50ICgqc3VzcGVuZF9ub2lycSkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBp
bnQgKCpyZXN1bWVfbm9pcnEpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqZnJl
ZXplX25vaXJxKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIGludCAoKnRoYXdfbm9pcnEp
KHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqcG93ZXJvZmZfbm9pcnEpKHN0cnVj
dCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqcmVzdG9yZV9ub2lycSkoc3RydWN0IGRldmlj
ZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpydW50aW1lX3N1c3BlbmQpKHN0cnVjdCBkZXZpY2UgKmRl
dik7CjE0NDc0OiAgaW50ICgqcnVudGltZV9yZXN1bWUpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0
NDc0OiAgaW50ICgqcnVudGltZV9pZGxlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogfTsK
MTQ0NzQ6ICMgNDk2ICIuL2luY2x1ZGUvbGludXgvcG0uaCIKMTQ0NzQ6IGVudW0gcnBtX3N0YXR1
cyB7CjE0NDc0OiAgUlBNX0FDVElWRSA9IDAsCjE0NDc0OiAgUlBNX1JFU1VNSU5HLAoxNDQ3NDog
IFJQTV9TVVNQRU5ERUQsCjE0NDc0OiAgUlBNX1NVU1BFTkRJTkcsCjE0NDc0OiB9OwoxNDQ3NDog
IyA1MTggIi4vaW5jbHVkZS9saW51eC9wbS5oIgoxNDQ3NDogZW51bSBycG1fcmVxdWVzdCB7CjE0
NDc0OiAgUlBNX1JFUV9OT05FID0gMCwKMTQ0NzQ6ICBSUE1fUkVRX0lETEUsCjE0NDc0OiAgUlBN
X1JFUV9TVVNQRU5ELAoxNDQ3NDogIFJQTV9SRVFfQVVUT1NVU1BFTkQsCjE0NDc0OiAgUlBNX1JF
UV9SRVNVTUUsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgd2FrZXVwX3NvdXJjZTsK
MTQ0NzQ6IHN0cnVjdCB3YWtlX2lycTsKMTQ0NzQ6IHN0cnVjdCBwbV9kb21haW5fZGF0YTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IHBtX3N1YnN5c19kYXRhIHsKMTQ0NzQ6ICBzcGlubG9ja190IGxv
Y2s7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmNvdW50OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0
IGxpc3RfaGVhZCBjbG9ja19saXN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiB9OwoxNDQ3NDogIyA1NzMgIi4vaW5jbHVkZS9saW51eC9wbS5oIgoxNDQ3NDogc3RydWN0
IGRldl9wbV9pbmZvIHsKMTQ0NzQ6ICBwbV9tZXNzYWdlX3QgcG93ZXJfc3RhdGU7CjE0NDc0OiAg
dW5zaWduZWQgaW50IGNhbl93YWtldXA6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgYXN5bmNfc3Vz
cGVuZDoxOwoxNDQ3NDogIGJvb2wgaW5fZHBtX2xpc3Q6MTsKMTQ0NzQ6ICBib29sIGlzX3ByZXBh
cmVkOjE7CjE0NDc0OiAgYm9vbCBpc19zdXNwZW5kZWQ6MTsKMTQ0NzQ6ICBib29sIGlzX25vaXJx
X3N1c3BlbmRlZDoxOwoxNDQ3NDogIGJvb2wgaXNfbGF0ZV9zdXNwZW5kZWQ6MTsKMTQ0NzQ6ICBi
b29sIG5vX3BtOjE7CjE0NDc0OiAgYm9vbCBlYXJseV9pbml0OjE7CjE0NDc0OiAgYm9vbCBkaXJl
Y3RfY29tcGxldGU6MTsKMTQ0NzQ6ICB1MzIgZHJpdmVyX2ZsYWdzOwoxNDQ3NDogIHNwaW5sb2Nr
X3QgbG9jazsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgZW50cnk7CjE0NDc0OiAg
c3RydWN0IGNvbXBsZXRpb24gY29tcGxldGlvbjsKMTQ0NzQ6ICBzdHJ1Y3Qgd2FrZXVwX3NvdXJj
ZSAqd2FrZXVwOwoxNDQ3NDogIGJvb2wgd2FrZXVwX3BhdGg6MTsKMTQ0NzQ6ICBib29sIHN5c2Nv
cmU6MTsKMTQ0NzQ6ICBib29sIG5vX3BtX2NhbGxiYWNrczoxOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBtdXN0X3Jlc3VtZToxOwoxNDQ3NDogIHVuc2lnbmVkIGludCBtYXlfc2tpcF9yZXN1bWU6MTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBocnRpbWVyIHN1
c3BlbmRfdGltZXI7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB0aW1lcl9leHBpcmVzOwoxNDQ3NDog
IHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwoxNDQ3NDogIHdhaXRfcXVldWVfaGVhZF90IHdhaXRf
cXVldWU7CjE0NDc0OiAgc3RydWN0IHdha2VfaXJxICp3YWtlaXJxOwoxNDQ3NDogIGF0b21pY190
IHVzYWdlX2NvdW50OwoxNDQ3NDogIGF0b21pY190IGNoaWxkX2NvdW50OwoxNDQ3NDogIHVuc2ln
bmVkIGludCBkaXNhYmxlX2RlcHRoOjM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGlkbGVfbm90aWZp
Y2F0aW9uOjE7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlcXVlc3RfcGVuZGluZzoxOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBkZWZlcnJlZF9yZXN1bWU6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcnVu
dGltZV9hdXRvOjE7CjE0NDc0OiAgYm9vbCBpZ25vcmVfY2hpbGRyZW46MTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgbm9fY2FsbGJhY2tzOjE7CjE0NDc0OiAgdW5zaWduZWQgaW50IGlycV9zYWZlOjE7
CjE0NDc0OiAgdW5zaWduZWQgaW50IHVzZV9hdXRvc3VzcGVuZDoxOwoxNDQ3NDogIHVuc2lnbmVk
IGludCB0aW1lcl9hdXRvc3VzcGVuZHM6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWVtYWxsb2Nf
bm9pbzoxOwoxNDQ3NDogIHVuc2lnbmVkIGludCBsaW5rc19jb3VudDsKMTQ0NzQ6ICBlbnVtIHJw
bV9yZXF1ZXN0IHJlcXVlc3Q7CjE0NDc0OiAgZW51bSBycG1fc3RhdHVzIHJ1bnRpbWVfc3RhdHVz
OwoxNDQ3NDogIGludCBydW50aW1lX2Vycm9yOwoxNDQ3NDogIGludCBhdXRvc3VzcGVuZF9kZWxh
eTsKMTQ0NzQ6ICB1NjQgbGFzdF9idXN5OwoxNDQ3NDogIHU2NCBhY3RpdmVfdGltZTsKMTQ0NzQ6
ICB1NjQgc3VzcGVuZGVkX3RpbWU7CjE0NDc0OiAgdTY0IGFjY291bnRpbmdfdGltZXN0YW1wOwox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IHBtX3N1YnN5c19kYXRhICpzdWJzeXNfZGF0YTsKMTQ0NzQ6
ICB2b2lkICgqc2V0X2xhdGVuY3lfdG9sZXJhbmNlKShzdHJ1Y3QgZGV2aWNlICosIHMzMik7CjE0
NDc0OiAgc3RydWN0IGRldl9wbV9xb3MgKnFvczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgZGV2X3BtX2dldF9zdWJzeXNfZGF0YShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgZGV2X3BtX3B1dF9zdWJzeXNfZGF0YShzdHJ1Y3QgZGV2aWNlICpkZXYp
OwoxNDQ3NDogIyA2NTAgIi4vaW5jbHVkZS9saW51eC9wbS5oIgoxNDQ3NDogc3RydWN0IGRldl9w
bV9kb21haW4gewoxNDQ3NDogIHN0cnVjdCBkZXZfcG1fb3BzIG9wczsKMTQ0NzQ6ICBpbnQgKCpz
dGFydCkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICB2b2lkICgqZGV0YWNoKShzdHJ1Y3Qg
ZGV2aWNlICpkZXYsIGJvb2wgcG93ZXJfb2ZmKTsKMTQ0NzQ6ICBpbnQgKCphY3RpdmF0ZSkoc3Ry
dWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICB2b2lkICgqc3luYykoc3RydWN0IGRldmljZSAqZGV2
KTsKMTQ0NzQ6ICB2b2lkICgqZGlzbWlzcykoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IH07
CjE0NDc0OiAjIDcxNCAiLi9pbmNsdWRlL2xpbnV4L3BtLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBk
ZXZpY2VfcG1fbG9jayh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRwbV9yZXN1bWVfc3RhcnQo
cG1fbWVzc2FnZV90IHN0YXRlKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRwbV9yZXN1bWVfZW5kKHBt
X21lc3NhZ2VfdCBzdGF0ZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBkcG1fcmVzdW1lX25vaXJxKHBt
X21lc3NhZ2VfdCBzdGF0ZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBkcG1fcmVzdW1lX2Vhcmx5KHBt
X21lc3NhZ2VfdCBzdGF0ZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBkcG1fcmVzdW1lKHBtX21lc3Nh
Z2VfdCBzdGF0ZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBkcG1fY29tcGxldGUocG1fbWVzc2FnZV90
IHN0YXRlKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2aWNlX3BtX3VubG9jayh2b2lk
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgZHBtX3N1c3BlbmRfZW5kKHBtX21lc3NhZ2VfdCBzdGF0ZSk7
CjE0NDc0OiBleHRlcm4gaW50IGRwbV9zdXNwZW5kX3N0YXJ0KHBtX21lc3NhZ2VfdCBzdGF0ZSk7
CjE0NDc0OiBleHRlcm4gaW50IGRwbV9zdXNwZW5kX25vaXJxKHBtX21lc3NhZ2VfdCBzdGF0ZSk7
CjE0NDc0OiBleHRlcm4gaW50IGRwbV9zdXNwZW5kX2xhdGUocG1fbWVzc2FnZV90IHN0YXRlKTsK
MTQ0NzQ6IGV4dGVybiBpbnQgZHBtX3N1c3BlbmQocG1fbWVzc2FnZV90IHN0YXRlKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgZHBtX3ByZXBhcmUocG1fbWVzc2FnZV90IHN0YXRlKTsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHZvaWQgX19zdXNwZW5kX3JlcG9ydF9yZXN1bHQoY29uc3QgY2hhciAqZnVuY3Rp
b24sIHZvaWQgKmZuLCBpbnQgcmV0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZGV2aWNlX3BtX3dhaXRfZm9yX2Rldihz
dHJ1Y3QgZGV2aWNlICpzdWIsIHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4gdm9p
ZCBkcG1fZm9yX2VhY2hfZGV2KHZvaWQgKmRhdGEsIHZvaWQgKCpmbikoc3RydWN0IGRldmljZSAq
LCB2b2lkICopKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBwbV9nZW5lcmljX3ByZXBhcmUo
c3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcG1fZ2VuZXJpY19zdXNwZW5k
X2xhdGUoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcG1fZ2VuZXJpY19z
dXNwZW5kX25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4gaW50IHBtX2dl
bmVyaWNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0ZXJuIGludCBwbV9n
ZW5lcmljX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0ZXJuIGlu
dCBwbV9nZW5lcmljX3Jlc3VtZV9ub2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0
ZXJuIGludCBwbV9nZW5lcmljX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0
ZXJuIGludCBwbV9nZW5lcmljX2ZyZWV6ZV9ub2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3
NDogZXh0ZXJuIGludCBwbV9nZW5lcmljX2ZyZWV6ZV9sYXRlKHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiBleHRlcm4gaW50IHBtX2dlbmVyaWNfZnJlZXplKHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiBleHRlcm4gaW50IHBtX2dlbmVyaWNfdGhhd19ub2lycShzdHJ1Y3QgZGV2aWNlICpk
ZXYpOwoxNDQ3NDogZXh0ZXJuIGludCBwbV9nZW5lcmljX3RoYXdfZWFybHkoc3RydWN0IGRldmlj
ZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcG1fZ2VuZXJpY190aGF3KHN0cnVjdCBkZXZpY2Ug
KmRldik7CjE0NDc0OiBleHRlcm4gaW50IHBtX2dlbmVyaWNfcmVzdG9yZV9ub2lycShzdHJ1Y3Qg
ZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0ZXJuIGludCBwbV9nZW5lcmljX3Jlc3RvcmVfZWFybHko
c3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcG1fZ2VuZXJpY19yZXN0b3Jl
KHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4gaW50IHBtX2dlbmVyaWNfcG93ZXJv
ZmZfbm9pcnEoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcG1fZ2VuZXJp
Y19wb3dlcm9mZl9sYXRlKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4gaW50IHBt
X2dlbmVyaWNfcG93ZXJvZmYoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IHBtX2dlbmVyaWNfY29tcGxldGUoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIGJvb2wgZGV2X3BtX21heV9za2lwX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwox
NDQ3NDogZXh0ZXJuIGJvb2wgZGV2X3BtX3NtYXJ0X3N1c3BlbmRfYW5kX3N1c3BlbmRlZChzdHJ1
Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIyA4MDggIi4vaW5jbHVkZS9saW51eC9wbS5oIgoxNDQ3
NDogZW51bSBkcG1fb3JkZXIgewoxNDQ3NDogIERQTV9PUkRFUl9OT05FLAoxNDQ3NDogIERQTV9P
UkRFUl9ERVZfQUZURVJfUEFSRU5ULAoxNDQ3NDogIERQTV9PUkRFUl9QQVJFTlRfQkVGT1JFX0RF
ViwKMTQ0NzQ6ICBEUE1fT1JERVJfREVWX0xBU1QsCjE0NDc0OiB9OwoxNDQ3NDogIyAyNSAiLi9p
bmNsdWRlL2xpbnV4L2RldmljZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9idXMuaCIgMQoxNDQ3NDogIyAyMSAi
Li9pbmNsdWRlL2xpbnV4L2RldmljZS9idXMuaCIKMTQ0NzQ6IHN0cnVjdCBkZXZpY2VfZHJpdmVy
OwoxNDQ3NDogc3RydWN0IGZ3bm9kZV9oYW5kbGU7CjE0NDc0OiAjIDgyICIuL2luY2x1ZGUvbGlu
dXgvZGV2aWNlL2J1cy5oIgoxNDQ3NDogc3RydWN0IGJ1c190eXBlIHsKMTQ0NzQ6ICBjb25zdCBj
aGFyICpuYW1lOwoxNDQ3NDogIGNvbnN0IGNoYXIgKmRldl9uYW1lOwoxNDQ3NDogIHN0cnVjdCBk
ZXZpY2UgKmRldl9yb290OwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipi
dXNfZ3JvdXBzOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipkZXZfZ3Jv
dXBzOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipkcnZfZ3JvdXBzOwox
NDQ3NDogCjE0NDc0OiAgaW50ICgqbWF0Y2gpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl
dmljZV9kcml2ZXIgKmRydik7CjE0NDc0OiAgaW50ICgqdWV2ZW50KShzdHJ1Y3QgZGV2aWNlICpk
ZXYsIHN0cnVjdCBrb2JqX3VldmVudF9lbnYgKmVudik7CjE0NDc0OiAgaW50ICgqcHJvYmUpKHN0
cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgdm9pZCAoKnN5bmNfc3RhdGUpKHN0cnVjdCBkZXZp
Y2UgKmRldik7CjE0NDc0OiAgaW50ICgqcmVtb3ZlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3
NDogIHZvaWQgKCpzaHV0ZG93bikoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3NDog
IGludCAoKm9ubGluZSkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpvZmZsaW5l
KShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqc3VzcGVuZCkoc3Ry
dWN0IGRldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpOwoxNDQ3NDogIGludCAoKnJlc3Vt
ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKm51bV92Zikoc3Ry
dWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKmRtYV9jb25maWd1cmUpKHN0
cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGV2X3BtX29w
cyAqcG07CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzICppb21tdV9vcHM7
CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc3Vic3lzX3ByaXZhdGUgKnA7CjE0NDc0OiAgc3RydWN0
IGxvY2tfY2xhc3Nfa2V5IGxvY2tfa2V5OwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBuZWVkX3BhcmVu
dF9sb2NrOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9f
KChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYnVzX3JlZ2lzdGVyKHN0cnVjdCBidXNfdHlwZSAq
YnVzKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgYnVzX3VucmVnaXN0ZXIoc3RydWN0IGJ1
c190eXBlICpidXMpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9f
d2Fybl91bnVzZWRfcmVzdWx0X18pKSBidXNfcmVzY2FuX2RldmljZXMoc3RydWN0IGJ1c190eXBl
ICpidXMpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnVzX2F0dHJpYnV0ZSB7CjE0NDc0OiAgc3Ry
dWN0IGF0dHJpYnV0ZSBhdHRyOwoxNDQ3NDogIHNzaXplX3QgKCpzaG93KShzdHJ1Y3QgYnVzX3R5
cGUgKmJ1cywgY2hhciAqYnVmKTsKMTQ0NzQ6ICBzc2l6ZV90ICgqc3RvcmUpKHN0cnVjdCBidXNf
dHlwZSAqYnVzLCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCk7CjE0NDc0OiB9OwoxNDQ3
NDogIyAxMzYgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvYnVzLmgiCjE0NDc0OiBleHRlcm4gaW50
IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBidXNfY3JlYXRlX2ZpbGUo
c3RydWN0IGJ1c190eXBlICosCjE0NDc0OiAgICAgIHN0cnVjdCBidXNfYXR0cmlidXRlICopOwox
NDQ3NDogZXh0ZXJuIHZvaWQgYnVzX3JlbW92ZV9maWxlKHN0cnVjdCBidXNfdHlwZSAqLCBzdHJ1
Y3QgYnVzX2F0dHJpYnV0ZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgZGV2aWNlX21h
dGNoX25hbWUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpuYW1lKTsKMTQ0NzQ6IGlu
dCBkZXZpY2VfbWF0Y2hfb2Zfbm9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKm5w
KTsKMTQ0NzQ6IGludCBkZXZpY2VfbWF0Y2hfZndub2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29u
c3Qgdm9pZCAqZndub2RlKTsKMTQ0NzQ6IGludCBkZXZpY2VfbWF0Y2hfZGV2dChzdHJ1Y3QgZGV2
aWNlICpkZXYsIGNvbnN0IHZvaWQgKnBkZXZ0KTsKMTQ0NzQ6IGludCBkZXZpY2VfbWF0Y2hfYWNw
aV9kZXYoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICphZGV2KTsKMTQ0NzQ6IGludCBk
ZXZpY2VfbWF0Y2hfYW55KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqdW51c2VkKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3Vic3lzX2Rldl9pdGVyIHsKMTQ0NzQ6ICBz
dHJ1Y3Qga2xpc3RfaXRlciBraTsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgKnR5
cGU7CjE0NDc0OiB9OwoxNDQ3NDogdm9pZCBzdWJzeXNfZGV2X2l0ZXJfaW5pdChzdHJ1Y3Qgc3Vi
c3lzX2Rldl9pdGVyICppdGVyLAoxNDQ3NDogICAgIHN0cnVjdCBidXNfdHlwZSAqc3Vic3lzLAox
NDQ3NDogICAgIHN0cnVjdCBkZXZpY2UgKnN0YXJ0LAoxNDQ3NDogICAgIGNvbnN0IHN0cnVjdCBk
ZXZpY2VfdHlwZSAqdHlwZSk7CjE0NDc0OiBzdHJ1Y3QgZGV2aWNlICpzdWJzeXNfZGV2X2l0ZXJf
bmV4dChzdHJ1Y3Qgc3Vic3lzX2Rldl9pdGVyICppdGVyKTsKMTQ0NzQ6IHZvaWQgc3Vic3lzX2Rl
dl9pdGVyX2V4aXQoc3RydWN0IHN1YnN5c19kZXZfaXRlciAqaXRlcik7CjE0NDc0OiAKMTQ0NzQ6
IGludCBidXNfZm9yX2VhY2hfZGV2KHN0cnVjdCBidXNfdHlwZSAqYnVzLCBzdHJ1Y3QgZGV2aWNl
ICpzdGFydCwgdm9pZCAqZGF0YSwKMTQ0NzQ6ICAgICAgICBpbnQgKCpmbikoc3RydWN0IGRldmlj
ZSAqZGV2LCB2b2lkICpkYXRhKSk7CjE0NDc0OiBzdHJ1Y3QgZGV2aWNlICpidXNfZmluZF9kZXZp
Y2Uoc3RydWN0IGJ1c190eXBlICpidXMsIHN0cnVjdCBkZXZpY2UgKnN0YXJ0LAoxNDQ3NDogICAg
ICAgICAgIGNvbnN0IHZvaWQgKmRhdGEsCjE0NDc0OiAgICAgICAgICAgaW50ICgqbWF0Y2gpKHN0
cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNl
ICpidXNfZmluZF9kZXZpY2VfYnlfbmFtZShzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywKMTQ0NzQ6ICAg
ICAgICAgICAgc3RydWN0IGRldmljZSAqc3RhcnQsCjE0NDc0OiAgICAgICAgICAgIGNvbnN0IGNo
YXIgKm5hbWUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJ1c19maW5kX2RldmljZShidXMsIHN0
YXJ0LCBuYW1lLCBkZXZpY2VfbWF0Y2hfbmFtZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZp
Y2UgKgoxNDQ3NDogYnVzX2ZpbmRfZGV2aWNlX2J5X29mX25vZGUoc3RydWN0IGJ1c190eXBlICpi
dXMsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IGJ1c19maW5kX2RldmljZShidXMsICgodm9pZCAqKTApLCBucCwgZGV2aWNlX21hdGNoX29mX25v
ZGUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKMTQ0NzQ6IGJ1c19maW5kX2Rldmlj
ZV9ieV9md25vZGUoc3RydWN0IGJ1c190eXBlICpidXMsIGNvbnN0IHN0cnVjdCBmd25vZGVfaGFu
ZGxlICpmd25vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJ1c19maW5kX2RldmljZShidXMs
ICgodm9pZCAqKTApLCBmd25vZGUsIGRldmljZV9tYXRjaF9md25vZGUpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBzdHJ1Y3QgZGV2aWNlICpidXNfZmluZF9kZXZpY2VfYnlfZGV2dChzdHJ1Y3QgYnVzX3R5cGUg
KmJ1cywKMTQ0NzQ6ICAgICAgICAgICAgZGV2X3QgZGV2dCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYnVzX2ZpbmRfZGV2aWNlKGJ1cywgKCh2b2lkICopMCksICZkZXZ0LCBkZXZpY2VfbWF0Y2hf
ZGV2dCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKgoxNDQ3NDogYnVzX2ZpbmRfbmV4
dF9kZXZpY2Uoc3RydWN0IGJ1c190eXBlICpidXMsc3RydWN0IGRldmljZSAqY3VyKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBidXNfZmluZF9kZXZpY2UoYnVzLCBjdXIsICgodm9pZCAqKTApLCBk
ZXZpY2VfbWF0Y2hfYW55KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YWNwaV9kZXZpY2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKgoxNDQ3NDogYnVzX2ZpbmRfZGV2aWNl
X2J5X2FjcGlfZGV2KHN0cnVjdCBidXNfdHlwZSAqYnVzLCBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZp
Y2UgKmFkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJ1c19maW5kX2RldmljZShidXMsICgo
dm9pZCAqKTApLCBhZGV2LCBkZXZpY2VfbWF0Y2hfYWNwaV9kZXYpOwoxNDQ3NDogfQoxNDQ3NDog
IyAyNDkgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvYnVzLmgiCjE0NDc0OiBzdHJ1Y3QgZGV2aWNl
ICpzdWJzeXNfZmluZF9kZXZpY2VfYnlfaWQoc3RydWN0IGJ1c190eXBlICpidXMsIHVuc2lnbmVk
IGludCBpZCwKMTQ0NzQ6ICAgICAgc3RydWN0IGRldmljZSAqaGludCk7CjE0NDc0OiBpbnQgYnVz
X2Zvcl9lYWNoX2RydihzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywgc3RydWN0IGRldmljZV9kcml2ZXIg
KnN0YXJ0LAoxNDQ3NDogICAgICAgIHZvaWQgKmRhdGEsIGludCAoKmZuKShzdHJ1Y3QgZGV2aWNl
X2RyaXZlciAqLCB2b2lkICopKTsKMTQ0NzQ6IHZvaWQgYnVzX3NvcnRfYnJlYWR0aGZpcnN0KHN0
cnVjdCBidXNfdHlwZSAqYnVzLAoxNDQ3NDogICAgICAgaW50ICgqY29tcGFyZSkoY29uc3Qgc3Ry
dWN0IGRldmljZSAqYSwKMTQ0NzQ6ICAgICAgICBjb25zdCBzdHJ1Y3QgZGV2aWNlICpiKSk7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qgbm90aWZpZXJfYmxvY2s7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgYnVzX3JlZ2lzdGVy
X25vdGlmaWVyKHN0cnVjdCBidXNfdHlwZSAqYnVzLAoxNDQ3NDogICAgICBzdHJ1Y3Qgbm90aWZp
ZXJfYmxvY2sgKm5iKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYnVzX3VucmVnaXN0ZXJfbm90aWZpZXIo
c3RydWN0IGJ1c190eXBlICpidXMsCjE0NDc0OiAgICAgICAgc3RydWN0IG5vdGlmaWVyX2Jsb2Nr
ICpuYik7CjE0NDc0OiAjIDI4NSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9idXMuaCIKMTQ0NzQ6
IGV4dGVybiBzdHJ1Y3Qga3NldCAqYnVzX2dldF9rc2V0KHN0cnVjdCBidXNfdHlwZSAqYnVzKTsK
MTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga2xpc3QgKmJ1c19nZXRfZGV2aWNlX2tsaXN0KHN0cnVjdCBi
dXNfdHlwZSAqYnVzKTsKMTQ0NzQ6ICMgMzAgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIgMgox
NDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2NsYXNzLmgiIDEKMTQ0NzQ6ICMgMjIg
Ii4vaW5jbHVkZS9saW51eC9kZXZpY2UvY2xhc3MuaCIKMTQ0NzQ6IHN0cnVjdCBkZXZpY2U7CjE0
NDc0OiBzdHJ1Y3QgZndub2RlX2hhbmRsZTsKMTQ0NzQ6ICMgNTQgIi4vaW5jbHVkZS9saW51eC9k
ZXZpY2UvY2xhc3MuaCIKMTQ0NzQ6IHN0cnVjdCBjbGFzcyB7CjE0NDc0OiAgY29uc3QgY2hhciAq
bmFtZTsKMTQ0NzQ6ICBzdHJ1Y3QgbW9kdWxlICpvd25lcjsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0
IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipjbGFzc19ncm91cHM7CjE0NDc0OiAgY29uc3Qgc3Ry
dWN0IGF0dHJpYnV0ZV9ncm91cCAqKmRldl9ncm91cHM7CjE0NDc0OiAgc3RydWN0IGtvYmplY3Qg
KmRldl9rb2JqOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqZGV2X3VldmVudCkoc3RydWN0IGRldmlj
ZSAqZGV2LCBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYpOwoxNDQ3NDogIGNoYXIgKigqZGV2
bm9kZSkoc3RydWN0IGRldmljZSAqZGV2LCB1bW9kZV90ICptb2RlKTsKMTQ0NzQ6IAoxNDQ3NDog
IHZvaWQgKCpjbGFzc19yZWxlYXNlKShzdHJ1Y3QgY2xhc3MgKmNsYXNzKTsKMTQ0NzQ6ICB2b2lk
ICgqZGV2X3JlbGVhc2UpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQg
KCpzaHV0ZG93bl9wcmUpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAKMTQ0NzQ6ICBjb25z
dCBzdHJ1Y3Qga29ial9uc190eXBlX29wZXJhdGlvbnMgKm5zX3R5cGU7CjE0NDc0OiAgY29uc3Qg
dm9pZCAqKCpuYW1lc3BhY2UpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqZ2V0X293bmVyc2hpcCkoc3RydWN0IGRldmljZSAqZGV2LCBrdWlkX3QgKnVpZCwga2dp
ZF90ICpnaWQpOwoxNDQ3NDogCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgKnBtOwox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IHN1YnN5c19wcml2YXRlICpwOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGNsYXNzX2Rldl9pdGVyIHsKMTQ0NzQ6ICBzdHJ1Y3Qga2xpc3RfaXRl
ciBraTsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgKnR5cGU7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGtvYmplY3QgKnN5c2ZzX2Rldl9ibG9ja19rb2Jq
OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBrb2JqZWN0ICpzeXNmc19kZXZfY2hhcl9rb2JqOwoxNDQ3
NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX19j
bGFzc19yZWdpc3RlcihzdHJ1Y3QgY2xhc3MgKmNsYXNzLAoxNDQ3NDogICAgICAgc3RydWN0IGxv
Y2tfY2xhc3Nfa2V5ICprZXkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgY2xhc3NfdW5yZWdpc3Rlcihz
dHJ1Y3QgY2xhc3MgKmNsYXNzKTsKMTQ0NzQ6ICMgOTkgIi4vaW5jbHVkZS9saW51eC9kZXZpY2Uv
Y2xhc3MuaCIKMTQ0NzQ6IHN0cnVjdCBjbGFzc19jb21wYXQ7CjE0NDc0OiBzdHJ1Y3QgY2xhc3Nf
Y29tcGF0ICpjbGFzc19jb21wYXRfcmVnaXN0ZXIoY29uc3QgY2hhciAqbmFtZSk7CjE0NDc0OiB2
b2lkIGNsYXNzX2NvbXBhdF91bnJlZ2lzdGVyKHN0cnVjdCBjbGFzc19jb21wYXQgKmNscyk7CjE0
NDc0OiBpbnQgY2xhc3NfY29tcGF0X2NyZWF0ZV9saW5rKHN0cnVjdCBjbGFzc19jb21wYXQgKmNs
cywgc3RydWN0IGRldmljZSAqZGV2LAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXZp
Y2VfbGluayk7CjE0NDc0OiB2b2lkIGNsYXNzX2NvbXBhdF9yZW1vdmVfbGluayhzdHJ1Y3QgY2xh
c3NfY29tcGF0ICpjbHMsIHN0cnVjdCBkZXZpY2UgKmRldiwKMTQ0NzQ6ICAgICAgICAgIHN0cnVj
dCBkZXZpY2UgKmRldmljZV9saW5rKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgY2xhc3Nf
ZGV2X2l0ZXJfaW5pdChzdHJ1Y3QgY2xhc3NfZGV2X2l0ZXIgKml0ZXIsCjE0NDc0OiAgICAgc3Ry
dWN0IGNsYXNzICpjbGFzcywKMTQ0NzQ6ICAgICBzdHJ1Y3QgZGV2aWNlICpzdGFydCwKMTQ0NzQ6
ICAgICBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgKnR5cGUpOwoxNDQ3NDogZXh0ZXJuIHN0cnVj
dCBkZXZpY2UgKmNsYXNzX2Rldl9pdGVyX25leHQoc3RydWN0IGNsYXNzX2Rldl9pdGVyICppdGVy
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNsYXNzX2Rldl9pdGVyX2V4aXQoc3RydWN0IGNsYXNzX2Rl
dl9pdGVyICppdGVyKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBjbGFzc19mb3JfZWFjaF9k
ZXZpY2Uoc3RydWN0IGNsYXNzICpjbGFzcywgc3RydWN0IGRldmljZSAqc3RhcnQsCjE0NDc0OiAg
ICAgIHZvaWQgKmRhdGEsCjE0NDc0OiAgICAgIGludCAoKmZuKShzdHJ1Y3QgZGV2aWNlICpkZXYs
IHZvaWQgKmRhdGEpKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGV2aWNlICpjbGFzc19maW5kX2Rl
dmljZShzdHJ1Y3QgY2xhc3MgKmNsYXNzLAoxNDQ3NDogICAgICBzdHJ1Y3QgZGV2aWNlICpzdGFy
dCwgY29uc3Qgdm9pZCAqZGF0YSwKMTQ0NzQ6ICAgICAgaW50ICgqbWF0Y2gpKHN0cnVjdCBkZXZp
Y2UgKiwgY29uc3Qgdm9pZCAqKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKmNsYXNzX2ZpbmRfZGV2
aWNlX2J5X25hbWUoc3RydWN0IGNsYXNzICpjbGFzcywKMTQ0NzQ6ICAgICAgICAgICAgICBjb25z
dCBjaGFyICpuYW1lKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBjbGFzc19maW5kX2RldmljZShj
bGFzcywgKCh2b2lkICopMCksIG5hbWUsIGRldmljZV9tYXRjaF9uYW1lKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGRldmljZSAqCjE0NDc0OiBjbGFzc19maW5kX2RldmljZV9ieV9vZl9ub2RlKHN0
cnVjdCBjbGFzcyAqY2xhc3MsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIGNsYXNzX2ZpbmRfZGV2aWNlKGNsYXNzLCAoKHZvaWQgKikwKSwgbnAs
IGRldmljZV9tYXRjaF9vZl9ub2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmljZSAqCjE0
NDc0OiBjbGFzc19maW5kX2RldmljZV9ieV9md25vZGUoc3RydWN0IGNsYXNzICpjbGFzcywKMTQ0
NzQ6ICAgICAgICBjb25zdCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBjbGFzc19maW5kX2RldmljZShjbGFzcywgKCh2b2lkICopMCksIGZ3bm9k
ZSwgZGV2aWNlX21hdGNoX2Z3bm9kZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKmNs
YXNzX2ZpbmRfZGV2aWNlX2J5X2RldnQoc3RydWN0IGNsYXNzICpjbGFzcywKMTQ0NzQ6ICAgICAg
ICAgICAgICBkZXZfdCBkZXZ0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBjbGFzc19maW5kX2Rl
dmljZShjbGFzcywgKCh2b2lkICopMCksICZkZXZ0LCBkZXZpY2VfbWF0Y2hfZGV2dCk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGFjcGlfZGV2aWNlOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmlj
ZSAqCjE0NDc0OiBjbGFzc19maW5kX2RldmljZV9ieV9hY3BpX2RldihzdHJ1Y3QgY2xhc3MgKmNs
YXNzLCBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGNsYXNzX2ZpbmRfZGV2aWNlKGNsYXNzLCAoKHZvaWQgKikwKSwgYWRldiwgZGV2aWNlX21h
dGNoX2FjcGlfZGV2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTkxICIuL2luY2x1ZGUvbGludXgvZGV2
aWNlL2NsYXNzLmgiCjE0NDc0OiBzdHJ1Y3QgY2xhc3NfYXR0cmlidXRlIHsKMTQ0NzQ6ICBzdHJ1
Y3QgYXR0cmlidXRlIGF0dHI7CjE0NDc0OiAgc3NpemVfdCAoKnNob3cpKHN0cnVjdCBjbGFzcyAq
Y2xhc3MsIHN0cnVjdCBjbGFzc19hdHRyaWJ1dGUgKmF0dHIsCjE0NDc0OiAgICBjaGFyICpidWYp
OwoxNDQ3NDogIHNzaXplX3QgKCpzdG9yZSkoc3RydWN0IGNsYXNzICpjbGFzcywgc3RydWN0IGNs
YXNzX2F0dHJpYnV0ZSAqYXR0ciwKMTQ0NzQ6ICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNv
dW50KTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDIwNiAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9jbGFz
cy5oIgoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkgY2xhc3NfY3JlYXRlX2ZpbGVfbnMoc3RydWN0IGNsYXNzICpjbGFzcywKMTQ0NzQ6ICAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgY2xhc3NfYXR0cmlidXRlICphdHRyLAoxNDQ3NDogICAgICAg
ICAgIGNvbnN0IHZvaWQgKm5zKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNsYXNzX3JlbW92ZV9maWxl
X25zKHN0cnVjdCBjbGFzcyAqY2xhc3MsCjE0NDc0OiAgICAgIGNvbnN0IHN0cnVjdCBjbGFzc19h
dHRyaWJ1dGUgKmF0dHIsCjE0NDc0OiAgICAgIGNvbnN0IHZvaWQgKm5zKTsKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBjbGFzc19jcmVh
dGVfZmlsZShzdHJ1Y3QgY2xhc3MgKmNsYXNzLAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3QgY2xh
c3NfYXR0cmlidXRlICphdHRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBjbGFzc19jcmVhdGVf
ZmlsZV9ucyhjbGFzcywgYXR0ciwgKCh2b2lkICopMCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGNsYXNzX3JlbW92ZV9maWxlKHN0cnVjdCBjbGFzcyAqY2xhc3MsCjE0NDc0OiAgICAg
ICAgICBjb25zdCBzdHJ1Y3QgY2xhc3NfYXR0cmlidXRlICphdHRyKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiBjbGFzc19yZW1vdmVfZmlsZV9ucyhjbGFzcywgYXR0ciwgKCh2b2lkICopMCkpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbGFzc19hdHRyaWJ1dGVfc3Ry
aW5nIHsKMTQ0NzQ6ICBzdHJ1Y3QgY2xhc3NfYXR0cmlidXRlIGF0dHI7CjE0NDc0OiAgY2hhciAq
c3RyOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjM4ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2NsYXNz
LmgiCjE0NDc0OiBleHRlcm4gc3NpemVfdCBzaG93X2NsYXNzX2F0dHJfc3RyaW5nKHN0cnVjdCBj
bGFzcyAqY2xhc3MsIHN0cnVjdCBjbGFzc19hdHRyaWJ1dGUgKmF0dHIsCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICBjaGFyICpidWYpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY2xhc3Nf
aW50ZXJmYWNlIHsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7CjE0NDc0OiAgc3RydWN0
IGNsYXNzICpjbGFzczsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKmFkZF9kZXYpIChzdHJ1Y3QgZGV2
aWNlICosIHN0cnVjdCBjbGFzc19pbnRlcmZhY2UgKik7CjE0NDc0OiAgdm9pZCAoKnJlbW92ZV9k
ZXYpIChzdHJ1Y3QgZGV2aWNlICosIHN0cnVjdCBjbGFzc19pbnRlcmZhY2UgKik7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBjbGFzc19pbnRlcmZhY2VfcmVnaXN0ZXIoc3RydWN0IGNsYXNzX2ludGVyZmFj
ZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNsYXNzX2ludGVyZmFjZV91bnJlZ2lzdGVyKHN0cnVj
dCBjbGFzc19pbnRlcmZhY2UgKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgY2xhc3Mg
KiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX19jbGFzc19jcmVhdGUo
c3RydWN0IG1vZHVsZSAqb3duZXIsCjE0NDc0OiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCjE0
NDc0OiAgICAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5KTsKMTQ0NzQ6IGV4dGVybiB2
b2lkIGNsYXNzX2Rlc3Ryb3koc3RydWN0IGNsYXNzICpjbHMpOwoxNDQ3NDogIyAzMSAiLi9pbmNs
dWRlL2xpbnV4L2RldmljZS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9kZXZpY2Uv
ZHJpdmVyLmgiIDEKMTQ0NzQ6ICMgNDQgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvZHJpdmVyLmgi
CjE0NDc0OiBlbnVtIHByb2JlX3R5cGUgewoxNDQ3NDogIFBST0JFX0RFRkFVTFRfU1RSQVRFR1ks
CjE0NDc0OiAgUFJPQkVfUFJFRkVSX0FTWU5DSFJPTk9VUywKMTQ0NzQ6ICBQUk9CRV9GT1JDRV9T
WU5DSFJPTk9VUywKMTQ0NzQ6IH07CjE0NDc0OiAjIDk1ICIuL2luY2x1ZGUvbGludXgvZGV2aWNl
L2RyaXZlci5oIgoxNDQ3NDogc3RydWN0IGRldmljZV9kcml2ZXIgewoxNDQ3NDogIGNvbnN0IGNo
YXIgKm5hbWU7CjE0NDc0OiAgc3RydWN0IGJ1c190eXBlICpidXM7CjE0NDc0OiAKMTQ0NzQ6ICBz
dHJ1Y3QgbW9kdWxlICpvd25lcjsKMTQ0NzQ6ICBjb25zdCBjaGFyICptb2RfbmFtZTsKMTQ0NzQ6
IAoxNDQ3NDogIGJvb2wgc3VwcHJlc3NfYmluZF9hdHRyczsKMTQ0NzQ6ICBlbnVtIHByb2JlX3R5
cGUgcHJvYmVfdHlwZTsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg
Km9mX21hdGNoX3RhYmxlOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCAqYWNw
aV9tYXRjaF90YWJsZTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKnByb2JlKSAoc3RydWN0IGRldmlj
ZSAqZGV2KTsKMTQ0NzQ6ICB2b2lkICgqc3luY19zdGF0ZSkoc3RydWN0IGRldmljZSAqZGV2KTsK
MTQ0NzQ6ICBpbnQgKCpyZW1vdmUpIChzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIHZvaWQg
KCpzaHV0ZG93bikgKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqc3VzcGVuZCkg
KHN0cnVjdCBkZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKTsKMTQ0NzQ6ICBpbnQgKCpy
ZXN1bWUpIChzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhdHRyaWJ1
dGVfZ3JvdXAgKipncm91cHM7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAq
KmRldl9ncm91cHM7CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyAqcG07
CjE0NDc0OiAgdm9pZCAoKmNvcmVkdW1wKSAoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAox
NDQ3NDogIHN0cnVjdCBkcml2ZXJfcHJpdmF0ZSAqcDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkgZHJpdmVyX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpOwoxNDQ3NDogZXh0
ZXJuIHZvaWQgZHJpdmVyX3VucmVnaXN0ZXIoc3RydWN0IGRldmljZV9kcml2ZXIgKmRydik7CjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyX2ZpbmQoY29u
c3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBidXNfdHlwZSAqYnVzKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgZHJpdmVyX3Byb2JlX2RvbmUodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCB3
YWl0X2Zvcl9kZXZpY2VfcHJvYmUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZHJpdmVyX2F0dHJpYnV0ZSB7CjE0NDc0OiAgc3RydWN0IGF0dHJpYnV0ZSBhdHRy
OwoxNDQ3NDogIHNzaXplX3QgKCpzaG93KShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBj
aGFyICpidWYpOwoxNDQ3NDogIHNzaXplX3QgKCpzdG9yZSkoc3RydWN0IGRldmljZV9kcml2ZXIg
KmRyaXZlciwgY29uc3QgY2hhciAqYnVmLAoxNDQ3NDogICAgIHNpemVfdCBjb3VudCk7CjE0NDc0
OiB9OwoxNDQ3NDogIyAxNDggIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvZHJpdmVyLmgiCjE0NDc0
OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkcml2
ZXJfY3JlYXRlX2ZpbGUoc3RydWN0IGRldmljZV9kcml2ZXIgKmRyaXZlciwKMTQ0NzQ6ICAgICAg
Y29uc3Qgc3RydWN0IGRyaXZlcl9hdHRyaWJ1dGUgKmF0dHIpOwoxNDQ3NDogZXh0ZXJuIHZvaWQg
ZHJpdmVyX3JlbW92ZV9maWxlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsCjE0NDc0OiAg
ICAgICAgICAgY29uc3Qgc3RydWN0IGRyaXZlcl9hdHRyaWJ1dGUgKmF0dHIpOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBk
cml2ZXJfZm9yX2VhY2hfZGV2aWNlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYsCjE0NDc0OiAg
ICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlICpzdGFydCwKMTQ0NzQ6ICAgICAgICAgICAgIHZvaWQg
KmRhdGEsCjE0NDc0OiAgICAgICAgICAgICBpbnQgKCpmbikoc3RydWN0IGRldmljZSAqZGV2LAox
NDQ3NDogICAgICAgICB2b2lkICopKTsKMTQ0NzQ6IHN0cnVjdCBkZXZpY2UgKmRyaXZlcl9maW5k
X2RldmljZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2LAoxNDQ3NDogICAgICAgc3RydWN0IGRl
dmljZSAqc3RhcnQsIGNvbnN0IHZvaWQgKmRhdGEsCjE0NDc0OiAgICAgICBpbnQgKCptYXRjaCko
c3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpkYXRhKSk7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZp
Y2UgKmRyaXZlcl9maW5kX2RldmljZV9ieV9uYW1lKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYs
CjE0NDc0OiAgICAgICAgY29uc3QgY2hhciAqbmFtZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
ZHJpdmVyX2ZpbmRfZGV2aWNlKGRydiwgKCh2b2lkICopMCksIG5hbWUsIGRldmljZV9tYXRjaF9u
YW1lKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmljZSAqCjE0NDc0OiBkcml2ZXJfZmluZF9k
ZXZpY2VfYnlfb2Zfbm9kZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2LAoxNDQ3NDogICAgICAg
ICAgY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpucCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
ZHJpdmVyX2ZpbmRfZGV2aWNlKGRydiwgKCh2b2lkICopMCksIG5wLCBkZXZpY2VfbWF0Y2hfb2Zf
bm9kZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKgoxNDQ3NDogZHJpdmVyX2ZpbmRf
ZGV2aWNlX2J5X2Z3bm9kZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2LAoxNDQ3NDogICAgICAg
ICBjb25zdCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBkcml2ZXJfZmluZF9kZXZpY2UoZHJ2LCAoKHZvaWQgKikwKSwgZndub2RlLCBkZXZpY2Vf
bWF0Y2hfZndub2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmljZSAqZHJpdmVyX2ZpbmRf
ZGV2aWNlX2J5X2RldnQoc3RydWN0IGRldmljZV9kcml2ZXIgKmRydiwKMTQ0NzQ6ICAgICAgICBk
ZXZfdCBkZXZ0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkcml2ZXJfZmluZF9kZXZpY2UoZHJ2
LCAoKHZvaWQgKikwKSwgJmRldnQsIGRldmljZV9tYXRjaF9kZXZ0KTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgc3RydWN0IGRldmljZSAqZHJpdmVyX2ZpbmRfbmV4dF9kZXZpY2Uoc3RydWN0IGRl
dmljZV9kcml2ZXIgKmRydiwKMTQ0NzQ6ICAgICAgICAgICAgc3RydWN0IGRldmljZSAqc3RhcnQp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRyaXZlcl9maW5kX2RldmljZShkcnYsIHN0YXJ0LCAo
KHZvaWQgKikwKSwgZGV2aWNlX21hdGNoX2FueSk7CjE0NDc0OiB9CjE0NDc0OiAjIDIyNSAiLi9p
bmNsdWRlL2xpbnV4L2RldmljZS9kcml2ZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKgoxNDQ3
NDogZHJpdmVyX2ZpbmRfZGV2aWNlX2J5X2FjcGlfZGV2KHN0cnVjdCBkZXZpY2VfZHJpdmVyICpk
cnYsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICphZGV2KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBkcml2ZXJfZmluZF9kZXZpY2UoZHJ2LCAoKHZvaWQgKikwKSwg
YWRldiwgZGV2aWNlX21hdGNoX2FjcGlfZGV2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjM5ICIuL2lu
Y2x1ZGUvbGludXgvZGV2aWNlL2RyaXZlci5oIgoxNDQ3NDogdm9pZCBkcml2ZXJfZGVmZXJyZWRf
cHJvYmVfYWRkKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBpbnQgZHJpdmVyX2RlZmVycmVk
X3Byb2JlX2NoZWNrX3N0YXRlKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBpbnQgZHJpdmVy
X2RlZmVycmVkX3Byb2JlX2NoZWNrX3N0YXRlX2NvbnRpbnVlKHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiB2b2lkIGRyaXZlcl9pbml0KHZvaWQpOwoxNDQ3NDogIyAzMiAiLi9pbmNsdWRlL2xp
bnV4L2RldmljZS5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGV2aWNl
LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRldl9h
cmNoZGF0YSB7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICppb21tdTsKMTQ0NzQ6IAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBkZXZfYXJjaGRhdGEgewoxNDQ3NDogfTsKMTQ0NzQ6ICMg
MzMgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2
aWNlOwoxNDQ3NDogc3RydWN0IGRldmljZV9wcml2YXRlOwoxNDQ3NDogc3RydWN0IGRldmljZV9k
cml2ZXI7CjE0NDc0OiBzdHJ1Y3QgZHJpdmVyX3ByaXZhdGU7CjE0NDc0OiBzdHJ1Y3QgbW9kdWxl
OwoxNDQ3NDogc3RydWN0IGNsYXNzOwoxNDQ3NDogc3RydWN0IHN1YnN5c19wcml2YXRlOwoxNDQ3
NDogc3RydWN0IGRldmljZV9ub2RlOwoxNDQ3NDogc3RydWN0IGZ3bm9kZV9oYW5kbGU7CjE0NDc0
OiBzdHJ1Y3QgaW9tbXVfb3BzOwoxNDQ3NDogc3RydWN0IGlvbW11X2dyb3VwOwoxNDQ3NDogc3Ry
dWN0IGlvbW11X2Z3c3BlYzsKMTQ0NzQ6IHN0cnVjdCBkZXZfcGluX2luZm87CjE0NDc0OiBzdHJ1
Y3QgaW9tbXVfcGFyYW07CjE0NDc0OiAjIDYyICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCjE0
NDc0OiBzdHJ1Y3Qgc3Vic3lzX2ludGVyZmFjZSB7CjE0NDc0OiAgY29uc3QgY2hhciAqbmFtZTsK
MTQ0NzQ6ICBzdHJ1Y3QgYnVzX3R5cGUgKnN1YnN5czsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFk
IG5vZGU7CjE0NDc0OiAgaW50ICgqYWRkX2Rldikoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg
c3Vic3lzX2ludGVyZmFjZSAqc2lmKTsKMTQ0NzQ6ICB2b2lkICgqcmVtb3ZlX2Rldikoc3RydWN0
IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc3Vic3lzX2ludGVyZmFjZSAqc2lmKTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGludCBzdWJzeXNfaW50ZXJmYWNlX3JlZ2lzdGVyKHN0cnVjdCBzdWJzeXNf
aW50ZXJmYWNlICpzaWYpOwoxNDQ3NDogdm9pZCBzdWJzeXNfaW50ZXJmYWNlX3VucmVnaXN0ZXIo
c3RydWN0IHN1YnN5c19pbnRlcmZhY2UgKnNpZik7CjE0NDc0OiAKMTQ0NzQ6IGludCBzdWJzeXNf
c3lzdGVtX3JlZ2lzdGVyKHN0cnVjdCBidXNfdHlwZSAqc3Vic3lzLAoxNDQ3NDogICAgICAgY29u
c3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CjE0NDc0OiBpbnQgc3Vic3lzX3Zp
cnR1YWxfcmVnaXN0ZXIoc3RydWN0IGJ1c190eXBlICpzdWJzeXMsCjE0NDc0OiAgICAgICAgY29u
c3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CjE0NDc0OiAjIDg3ICIuL2luY2x1
ZGUvbGludXgvZGV2aWNlLmgiCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlX3R5cGUgewoxNDQ3NDogIGNv
bnN0IGNoYXIgKm5hbWU7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdy
b3VwczsKMTQ0NzQ6ICBpbnQgKCp1ZXZlbnQpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGtv
YmpfdWV2ZW50X2VudiAqZW52KTsKMTQ0NzQ6ICBjaGFyICooKmRldm5vZGUpKHN0cnVjdCBkZXZp
Y2UgKmRldiwgdW1vZGVfdCAqbW9kZSwKMTQ0NzQ6ICAgICBrdWlkX3QgKnVpZCwga2dpZF90ICpn
aWQpOwoxNDQ3NDogIHZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDog
CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgKnBtOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSB7CjE0NDc0OiAgc3RydWN0IGF0
dHJpYnV0ZSBhdHRyOwoxNDQ3NDogIHNzaXplX3QgKCpzaG93KShzdHJ1Y3QgZGV2aWNlICpkZXYs
IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAoxNDQ3NDogICAgY2hhciAqYnVmKTsKMTQ0
NzQ6ICBzc2l6ZV90ICgqc3RvcmUpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9h
dHRyaWJ1dGUgKmF0dHIsCjE0NDc0OiAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQp
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRldl9leHRfYXR0cmlidXRlIHsKMTQ0
NzQ6ICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBhdHRyOwoxNDQ3NDogIHZvaWQgKnZhcjsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHNzaXplX3QgZGV2aWNlX3Nob3dfdWxvbmcoc3RydWN0IGRl
dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKMTQ0NzQ6ICAgICAgY2hh
ciAqYnVmKTsKMTQ0NzQ6IHNzaXplX3QgZGV2aWNlX3N0b3JlX3Vsb25nKHN0cnVjdCBkZXZpY2Ug
KmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCjE0NDc0OiAgICAgICBjb25zdCBj
aGFyICpidWYsIHNpemVfdCBjb3VudCk7CjE0NDc0OiBzc2l6ZV90IGRldmljZV9zaG93X2ludChz
dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAoxNDQ3NDog
ICAgY2hhciAqYnVmKTsKMTQ0NzQ6IHNzaXplX3QgZGV2aWNlX3N0b3JlX2ludChzdHJ1Y3QgZGV2
aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAoxNDQ3NDogICAgIGNvbnN0
IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKMTQ0NzQ6IHNzaXplX3QgZGV2aWNlX3Nob3dfYm9v
bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAoxNDQ3
NDogICAgY2hhciAqYnVmKTsKMTQ0NzQ6IHNzaXplX3QgZGV2aWNlX3N0b3JlX2Jvb2woc3RydWN0
IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKMTQ0NzQ6ICAgICBj
b25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCk7CjE0NDc0OiAjIDE0OSAiLi9pbmNsdWRlL2xp
bnV4L2RldmljZS5oIgoxNDQ3NDogZXh0ZXJuIGludCBkZXZpY2VfY3JlYXRlX2ZpbGUoc3RydWN0
IGRldmljZSAqZGV2aWNlLAoxNDQ3NDogICAgICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9hdHRy
aWJ1dGUgKmVudHJ5KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldmljZV9yZW1vdmVfZmlsZShzdHJ1
Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9hdHRy
aWJ1dGUgKmF0dHIpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgZGV2aWNlX3JlbW92ZV9maWxlX3NlbGYo
c3RydWN0IGRldmljZSAqZGV2LAoxNDQ3NDogICAgICAgICBjb25zdCBzdHJ1Y3QgZGV2aWNlX2F0
dHJpYnV0ZSAqYXR0cik7CjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKSBkZXZpY2VfY3JlYXRlX2Jpbl9maWxlKHN0cnVjdCBkZXZpY2UgKmRl
diwKMTQ0NzQ6ICAgICAgY29uc3Qgc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0dHIpOwoxNDQ3NDog
ZXh0ZXJuIHZvaWQgZGV2aWNlX3JlbW92ZV9iaW5fZmlsZShzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0
NDc0OiAgICAgICAgY29uc3Qgc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0dHIpOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdm9pZCAoKmRyX3JlbGVhc2VfdCkoc3RydWN0IGRldmljZSAq
ZGV2LCB2b2lkICpyZXMpOwoxNDQ3NDogdHlwZWRlZiBpbnQgKCpkcl9tYXRjaF90KShzdHJ1Y3Qg
ZGV2aWNlICpkZXYsIHZvaWQgKnJlcywgdm9pZCAqbWF0Y2hfZGF0YSk7CjE0NDc0OiAjIDE3MiAi
Li9pbmNsdWRlL2xpbnV4L2RldmljZS5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgKmRldnJlc19hbGxv
Y19ub2RlKGRyX3JlbGVhc2VfdCByZWxlYXNlLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwLAoxNDQ3
NDogICAgICAgICAgIGludCBuaWQpIF9fYXR0cmlidXRlX18oKF9fbWFsbG9jX18pKTsKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgKmRldnJlc19hbGxvYyhkcl9yZWxlYXNlX3QgcmVsZWFzZSwgc2l6ZV90IHNpemUsIGdm
cF90IGdmcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZGV2cmVzX2FsbG9jX25vZGUocmVsZWFz
ZSwgc2l6ZSwgZ2ZwLCAoLTEpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBkZXZyZXNfZm9yX2VhY2hfcmVzKHN0cnVjdCBkZXZpY2UgKmRldiwgZHJfcmVsZWFz
ZV90IHJlbGVhc2UsCjE0NDc0OiAgICAgZHJfbWF0Y2hfdCBtYXRjaCwgdm9pZCAqbWF0Y2hfZGF0
YSwKMTQ0NzQ6ICAgICB2b2lkICgqZm4pKHN0cnVjdCBkZXZpY2UgKiwgdm9pZCAqLCB2b2lkICop
LAoxNDQ3NDogICAgIHZvaWQgKmRhdGEpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2cmVzX2ZyZWUo
dm9pZCAqcmVzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldnJlc19hZGQoc3RydWN0IGRldmljZSAq
ZGV2LCB2b2lkICpyZXMpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgKmRldnJlc19maW5kKHN0cnVjdCBk
ZXZpY2UgKmRldiwgZHJfcmVsZWFzZV90IHJlbGVhc2UsCjE0NDc0OiAgICAgZHJfbWF0Y2hfdCBt
YXRjaCwgdm9pZCAqbWF0Y2hfZGF0YSk7CjE0NDc0OiBleHRlcm4gdm9pZCAqZGV2cmVzX2dldChz
dHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKm5ld19yZXMsCjE0NDc0OiAgICBkcl9tYXRjaF90IG1h
dGNoLCB2b2lkICptYXRjaF9kYXRhKTsKMTQ0NzQ6IGV4dGVybiB2b2lkICpkZXZyZXNfcmVtb3Zl
KHN0cnVjdCBkZXZpY2UgKmRldiwgZHJfcmVsZWFzZV90IHJlbGVhc2UsCjE0NDc0OiAgICAgICBk
cl9tYXRjaF90IG1hdGNoLCB2b2lkICptYXRjaF9kYXRhKTsKMTQ0NzQ6IGV4dGVybiBpbnQgZGV2
cmVzX2Rlc3Ryb3koc3RydWN0IGRldmljZSAqZGV2LCBkcl9yZWxlYXNlX3QgcmVsZWFzZSwKMTQ0
NzQ6ICAgICAgZHJfbWF0Y2hfdCBtYXRjaCwgdm9pZCAqbWF0Y2hfZGF0YSk7CjE0NDc0OiBleHRl
cm4gaW50IGRldnJlc19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldiwgZHJfcmVsZWFzZV90IHJl
bGVhc2UsCjE0NDc0OiAgICAgIGRyX21hdGNoX3QgbWF0Y2gsIHZvaWQgKm1hdGNoX2RhdGEpOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkICogX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGRldnJlc19vcGVuX2dyb3VwKHN0cnVjdCBkZXZpY2UgKmRldiwg
dm9pZCAqaWQsCjE0NDc0OiAgICAgICAgICAgZ2ZwX3QgZ2ZwKTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IGRldnJlc19jbG9zZV9ncm91cChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmlkKTsKMTQ0NzQ6
IGV4dGVybiB2b2lkIGRldnJlc19yZW1vdmVfZ3JvdXAoc3RydWN0IGRldmljZSAqZGV2LCB2b2lk
ICppZCk7CjE0NDc0OiBleHRlcm4gaW50IGRldnJlc19yZWxlYXNlX2dyb3VwKHN0cnVjdCBkZXZp
Y2UgKmRldiwgdm9pZCAqaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkICpk
ZXZtX2ttYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwKSBf
X2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSk7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygo
X19mb3JtYXRfXyhwcmludGYsIDMsIDApKSkKMTQ0NzQ6IGNoYXIgKmRldm1fa3Zhc3ByaW50Zihz
dHJ1Y3QgZGV2aWNlICpkZXYsIGdmcF90IGdmcCwgY29uc3QgY2hhciAqZm10LAoxNDQ3NDogICAg
ICAgICB2YV9saXN0IGFwKSBfX2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSk7CjE0NDc0OiBleHRl
cm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKMTQ0NzQ6IGNoYXIg
KmRldm1fa2FzcHJpbnRmKHN0cnVjdCBkZXZpY2UgKmRldiwgZ2ZwX3QgZ2ZwLCBjb25zdCBjaGFy
ICpmbXQsIC4uLikgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpOwoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqZGV2
bV9remFsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGdmcF90IGdmcCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZGV2bV9rbWFsbG9jKGRldiwgc2l6ZSwgZ2ZwIHwgKCggZ2Zw
X3QpMHgxMDB1KSk7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICpkZXZtX2ttYWxsb2NfYXJyYXkoc3Ry
dWN0IGRldmljZSAqZGV2LAoxNDQ3NDogICAgICAgICAgICBzaXplX3Qgbiwgc2l6ZV90IHNpemUs
IGdmcF90IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIHNpemVfdCBieXRlczsKMTQ0NzQ6IAoxNDQ3
NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCh7IHR5cGVvZihuKSBfX2EgPSAobik7IHR5cGVv
ZihzaXplKSBfX2IgPSAoc2l6ZSk7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9p
ZCkgKCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVsX292
ZXJmbG93KF9fYSwgX19iLCBfX2QpOyB9KSksIDApKQoxNDQ3NDogICByZXR1cm4gKCh2b2lkICop
MCk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZGV2bV9rbWFsbG9jKGRldiwgYnl0ZXMsIGZsYWdz
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKmRldm1fa2NhbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYs
CjE0NDc0OiAgICAgIHNpemVfdCBuLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIGRldm1fa21hbGxvY19hcnJheShkZXYsIG4sIHNpemUsIGZsYWdzIHwg
KCggZ2ZwX3QpMHgxMDB1KSk7CjE0NDc0OiB9CjE0NDc0OiBleHRlcm4gdm9pZCBkZXZtX2tmcmVl
KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqcCk7CjE0NDc0OiBleHRlcm4gY2hhciAq
ZGV2bV9rc3RyZHVwKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqcywgZ2ZwX3QgZ2Zw
KSBfX2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSk7CjE0NDc0OiBleHRlcm4gY29uc3QgY2hhciAq
ZGV2bV9rc3RyZHVwX2NvbnN0KHN0cnVjdCBkZXZpY2UgKmRldiwKMTQ0NzQ6ICAgICAgICAgICBj
b25zdCBjaGFyICpzLCBnZnBfdCBnZnApOwoxNDQ3NDogZXh0ZXJuIHZvaWQgKmRldm1fa21lbWR1
cChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGxlbiwKMTQ0NzQ6
ICAgICAgZ2ZwX3QgZ2ZwKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZGV2
bV9nZXRfZnJlZV9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICBnZnBfdCBn
ZnBfbWFzaywgdW5zaWduZWQgaW50IG9yZGVyKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldm1fZnJl
ZV9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgYWRkcik7CjE0NDc0OiAK
MTQ0NzQ6IHZvaWQgKmRldm1faW9yZW1hcF9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0
NDc0OiAgICAgICAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcmVzKTsKMTQ0NzQ6IHZvaWQgKmRl
dm1faW9yZW1hcF9yZXNvdXJjZV93YyhzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICAg
ICAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcmVzKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCAqZGV2
bV9vZl9pb21hcChzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICAgc3RydWN0IGRldmlj
ZV9ub2RlICpub2RlLCBpbnQgaW5kZXgsCjE0NDc0OiAgICAgICAgcmVzb3VyY2Vfc2l6ZV90ICpz
aXplKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgZGV2bV9hZGRfYWN0aW9uKHN0cnVjdCBk
ZXZpY2UgKmRldiwgdm9pZCAoKmFjdGlvbikodm9pZCAqKSwgdm9pZCAqZGF0YSk7CjE0NDc0OiB2
b2lkIGRldm1fcmVtb3ZlX2FjdGlvbihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKCphY3Rpb24p
KHZvaWQgKiksIHZvaWQgKmRhdGEpOwoxNDQ3NDogdm9pZCBkZXZtX3JlbGVhc2VfYWN0aW9uKHN0
cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAoKmFjdGlvbikodm9pZCAqKSwgdm9pZCAqZGF0YSk7CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoc3RydWN0IGRldmljZSAq
ZGV2LAoxNDQ3NDogICAgICAgICB2b2lkICgqYWN0aW9uKSh2b2lkICopLCB2b2lkICpkYXRhKQox
NDQ3NDogewoxNDQ3NDogIGludCByZXQ7CjE0NDc0OiAKMTQ0NzQ6ICByZXQgPSBkZXZtX2FkZF9h
Y3Rpb24oZGV2LCBhY3Rpb24sIGRhdGEpOwoxNDQ3NDogIGlmIChyZXQpCjE0NDc0OiAgIGFjdGlv
bihkYXRhKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiByZXQ7CjE0NDc0OiB9CjE0NDc0OiAjIDI4
MiAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIgoxNDQ3NDogdm9pZCAqX19kZXZtX2FsbG9jX3Bl
cmNwdShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAoxNDQ3NDogICAgICAgIHNpemVf
dCBhbGlnbik7CjE0NDc0OiB2b2lkIGRldm1fZnJlZV9wZXJjcHUoc3RydWN0IGRldmljZSAqZGV2
LCB2b2lkICpwZGF0YSk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZXZpY2VfZG1hX3BhcmFtZXRl
cnMgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50
IG1heF9zZWdtZW50X3NpemU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzZWdtZW50X2JvdW5kYXJ5
X21hc2s7CjE0NDc0OiB9OwoxNDQ3NDogIyAzMDYgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIK
MTQ0NzQ6IHN0cnVjdCBkZXZpY2VfY29ubmVjdGlvbiB7CjE0NDc0OiAgc3RydWN0IGZ3bm9kZV9o
YW5kbGUgKmZ3bm9kZTsKMTQ0NzQ6ICBjb25zdCBjaGFyICplbmRwb2ludFsyXTsKMTQ0NzQ6ICBj
b25zdCBjaGFyICppZDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiB0eXBlZGVmIHZvaWQgKigqZGV2Y29uX21hdGNoX2ZuX3QpKHN0cnVjdCBk
ZXZpY2VfY29ubmVjdGlvbiAqY29uLCBpbnQgZXAsCjE0NDc0OiAgICAgICAgdm9pZCAqZGF0YSk7
CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgKmZ3bm9kZV9jb25uZWN0aW9uX2ZpbmRfbWF0Y2goc3RydWN0
IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSwKMTQ0NzQ6ICAgICAgICBjb25zdCBjaGFyICpjb25faWQs
IHZvaWQgKmRhdGEsCjE0NDc0OiAgICAgICAgZGV2Y29uX21hdGNoX2ZuX3QgbWF0Y2gpOwoxNDQ3
NDogdm9pZCAqZGV2aWNlX2Nvbm5lY3Rpb25fZmluZF9tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYs
IGNvbnN0IGNoYXIgKmNvbl9pZCwKMTQ0NzQ6ICAgICAgICB2b2lkICpkYXRhLCBkZXZjb25fbWF0
Y2hfZm5fdCBtYXRjaCk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZXZpY2UgKmRldmljZV9jb25u
ZWN0aW9uX2ZpbmQoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpjb25faWQpOwoxNDQ3
NDogCjE0NDc0OiB2b2lkIGRldmljZV9jb25uZWN0aW9uX2FkZChzdHJ1Y3QgZGV2aWNlX2Nvbm5l
Y3Rpb24gKmNvbik7CjE0NDc0OiB2b2lkIGRldmljZV9jb25uZWN0aW9uX3JlbW92ZShzdHJ1Y3Qg
ZGV2aWNlX2Nvbm5lY3Rpb24gKmNvbik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZpY2VfY29ubmVjdGlvbnNfYWRkKHN0cnVjdCBkZXZpY2Vf
Y29ubmVjdGlvbiAqY29ucykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZGV2aWNlX2Nvbm5lY3Rp
b24gKmM7CjE0NDc0OiAKMTQ0NzQ6ICBmb3IgKGMgPSBjb25zOyBjLT5lbmRwb2ludFswXTsgYysr
KQoxNDQ3NDogICBkZXZpY2VfY29ubmVjdGlvbl9hZGQoYyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZpY2VfY29ubmVjdGlv
bnNfcmVtb3ZlKHN0cnVjdCBkZXZpY2VfY29ubmVjdGlvbiAqY29ucykKMTQ0NzQ6IHsKMTQ0NzQ6
ICBzdHJ1Y3QgZGV2aWNlX2Nvbm5lY3Rpb24gKmM7CjE0NDc0OiAKMTQ0NzQ6ICBmb3IgKGMgPSBj
b25zOyBjLT5lbmRwb2ludFswXTsgYysrKQoxNDQ3NDogICBkZXZpY2VfY29ubmVjdGlvbl9yZW1v
dmUoYyk7CjE0NDc0OiB9CjE0NDc0OiAjIDM2MCAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIgox
NDQ3NDogZW51bSBkZXZpY2VfbGlua19zdGF0ZSB7CjE0NDc0OiAgRExfU1RBVEVfTk9ORSA9IC0x
LAoxNDQ3NDogIERMX1NUQVRFX0RPUk1BTlQgPSAwLAoxNDQ3NDogIERMX1NUQVRFX0FWQUlMQUJM
RSwKMTQ0NzQ6ICBETF9TVEFURV9DT05TVU1FUl9QUk9CRSwKMTQ0NzQ6ICBETF9TVEFURV9BQ1RJ
VkUsCjE0NDc0OiAgRExfU1RBVEVfU1VQUExJRVJfVU5CSU5ELAoxNDQ3NDogfTsKMTQ0NzQ6ICMg
NDAzICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlX2xpbmsg
ewoxNDQ3NDogIHN0cnVjdCBkZXZpY2UgKnN1cHBsaWVyOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hl
YWQgc19ub2RlOwoxNDQ3NDogIHN0cnVjdCBkZXZpY2UgKmNvbnN1bWVyOwoxNDQ3NDogIHN0cnVj
dCBsaXN0X2hlYWQgY19ub2RlOwoxNDQ3NDogIGVudW0gZGV2aWNlX2xpbmtfc3RhdGUgc3RhdHVz
OwoxNDQ3NDogIHUzMiBmbGFnczsKMTQ0NzQ6ICByZWZjb3VudF90IHJwbV9hY3RpdmU7CjE0NDc0
OiAgc3RydWN0IGtyZWYga3JlZjsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjYWxsYmFja19oZWFk
IGNhbGxiYWNrX2hlYWQ7CjE0NDc0OiAKMTQ0NzQ6ICBib29sIHN1cHBsaWVyX3ByZWFjdGl2YXRl
ZDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDQyNSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIgoxNDQ3
NDogZW51bSBkbF9kZXZfc3RhdGUgewoxNDQ3NDogIERMX0RFVl9OT19EUklWRVIgPSAwLAoxNDQ3
NDogIERMX0RFVl9QUk9CSU5HLAoxNDQ3NDogIERMX0RFVl9EUklWRVJfQk9VTkQsCjE0NDc0OiAg
RExfREVWX1VOQklORElORywKMTQ0NzQ6IH07CjE0NDc0OiAjIDQ0MiAiLi9pbmNsdWRlL2xpbnV4
L2RldmljZS5oIgoxNDQ3NDogc3RydWN0IGRldl9saW5rc19pbmZvIHsKMTQ0NzQ6ICBzdHJ1Y3Qg
bGlzdF9oZWFkIHN1cHBsaWVyczsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGNvbnN1bWVyczsK
MTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIG5lZWRzX3N1cHBsaWVyczsKMTQ0NzQ6ICBzdHJ1Y3Qg
bGlzdF9oZWFkIGRlZmVyX3N5bmM7CjE0NDc0OiAgYm9vbCBuZWVkX2Zvcl9wcm9iZTsKMTQ0NzQ6
ICBlbnVtIGRsX2Rldl9zdGF0ZSBzdGF0dXM7CjE0NDc0OiB9OwoxNDQ3NDogIyA1MzcgIi4vaW5j
bHVkZS9saW51eC9kZXZpY2UuaCIKMTQ0NzQ6IHN0cnVjdCBkZXZpY2UgewoxNDQ3NDogIHN0cnVj
dCBrb2JqZWN0IGtvYmo7CjE0NDc0OiAgc3RydWN0IGRldmljZSAqcGFyZW50OwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IGRldmljZV9wcml2YXRlICpwOwoxNDQ3NDogCjE0NDc0OiAgY29uc3QgY2hh
ciAqaW5pdF9uYW1lOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSAqdHlwZTsKMTQ0
NzQ6IAoxNDQ3NDogIHN0cnVjdCBidXNfdHlwZSAqYnVzOwoxNDQ3NDogIHN0cnVjdCBkZXZpY2Vf
ZHJpdmVyICpkcml2ZXI7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICpwbGF0Zm9ybV9kYXRhOwoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAqZHJpdmVyX2RhdGE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbXV0ZXggbXV0ZXg7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGRldl9saW5rc19pbmZvIGxpbmtzOwoxNDQ3NDogIHN0cnVjdCBkZXZf
cG1faW5mbyBwb3dlcjsKMTQ0NzQ6ICBzdHJ1Y3QgZGV2X3BtX2RvbWFpbiAqcG1fZG9tYWluOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgaXJxX2RvbWFpbiAqbXNpX2RvbWFpbjsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRldl9waW5faW5mbyAqcGluczsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBtc2lfbGlzdDsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzICpkbWFfb3BzOwoxNDQ3NDogIHU2NCAq
ZG1hX21hc2s7CjE0NDc0OiAgdTY0IGNvaGVyZW50X2RtYV9tYXNrOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTY0IGJ1c19kbWFfbGltaXQ7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBkbWFfcGZuX29mZnNldDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkZXZpY2VfZG1h
X3BhcmFtZXRlcnMgKmRtYV9wYXJtczsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQg
ZG1hX3Bvb2xzOwoxNDQ3NDogIyA1OTcgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKMTQ0NzQ6
ICBzdHJ1Y3QgZGV2X2FyY2hkYXRhIGFyY2hkYXRhOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRl
dmljZV9ub2RlICpvZl9ub2RlOwoxNDQ3NDogIHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGU7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBkZXZfdCBkZXZ0OwoxNDQ3
NDogIHUzMiBpZDsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5sb2NrX3QgZGV2cmVzX2xvY2s7CjE0NDc0
OiAgc3RydWN0IGxpc3RfaGVhZCBkZXZyZXNfaGVhZDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBj
bGFzcyAqY2xhc3M7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vw
czsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwox
NDQ3NDogIHN0cnVjdCBpb21tdV9ncm91cCAqaW9tbXVfZ3JvdXA7CjE0NDc0OiAgc3RydWN0IGlv
bW11X2Z3c3BlYyAqaW9tbXVfZndzcGVjOwoxNDQ3NDogIHN0cnVjdCBpb21tdV9wYXJhbSAqaW9t
bXVfcGFyYW07CjE0NDc0OiAKMTQ0NzQ6ICBib29sIG9mZmxpbmVfZGlzYWJsZWQ6MTsKMTQ0NzQ6
ICBib29sIG9mZmxpbmU6MTsKMTQ0NzQ6ICBib29sIG9mX25vZGVfcmV1c2VkOjE7CjE0NDc0OiAg
Ym9vbCBzdGF0ZV9zeW5jZWQ6MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICprb2JqX3RvX2Rldihz
dHJ1Y3Qga29iamVjdCAqa29iaikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdm9pZCAqX19t
cHRyID0gKHZvaWQgKikoa29iaik7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3Nl
cnRfNjMyKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21h
dGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWlsdGluX3R5cGVzX2NvbXBh
dGlibGVfcCh0eXBlb2YoKihrb2JqKSksIHR5cGVvZigoKHN0cnVjdCBkZXZpY2UgKikwKS0+a29i
aikpICYmICFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKGtvYmopKSwgdHlw
ZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF82MzIoKTsgfSB3aGlsZSAoMCk7ICgo
c3RydWN0IGRldmljZSAqKShfX21wdHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGRldmlj
ZSwga29iaikpKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRldmljZV9pb21tdV9tYXBwZWQoc3RydWN0IGRl
dmljZSAqZGV2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoZGV2LT5pb21tdV9ncm91cCAhPSAo
KHZvaWQgKikwKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvbGludXgvcG1fd2FrZXVwLmgiIDEKMTQ0NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9wbV93
YWtldXAuaCIKMTQ0NzQ6IHN0cnVjdCB3YWtlX2lycTsKMTQ0NzQ6ICMgNDMgIi4vaW5jbHVkZS9s
aW51eC9wbV93YWtldXAuaCIKMTQ0NzQ6IHN0cnVjdCB3YWtldXBfc291cmNlIHsKMTQ0NzQ6ICBj
b25zdCBjaGFyICpuYW1lOwoxNDQ3NDogIGludCBpZDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFk
IGVudHJ5OwoxNDQ3NDogIHNwaW5sb2NrX3QgbG9jazsKMTQ0NzQ6ICBzdHJ1Y3Qgd2FrZV9pcnEg
Kndha2VpcnE7CjE0NDc0OiAgc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyB0aW1lcl9leHBpcmVzOwoxNDQ3NDogIGt0aW1lX3QgdG90YWxfdGltZTsKMTQ0NzQ6
ICBrdGltZV90IG1heF90aW1lOwoxNDQ3NDogIGt0aW1lX3QgbGFzdF90aW1lOwoxNDQ3NDogIGt0
aW1lX3Qgc3RhcnRfcHJldmVudF90aW1lOwoxNDQ3NDogIGt0aW1lX3QgcHJldmVudF9zbGVlcF90
aW1lOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZXZlbnRfY291bnQ7CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBhY3RpdmVfY291bnQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyByZWxheF9jb3VudDsKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIGV4cGlyZV9jb3VudDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHdh
a2V1cF9jb3VudDsKMTQ0NzQ6ICBzdHJ1Y3QgZGV2aWNlICpkZXY7CjE0NDc0OiAgYm9vbCBhY3Rp
dmU6MTsKMTQ0NzQ6ICBib29sIGF1dG9zbGVlcF9lbmFibGVkOjE7CjE0NDc0OiB9OwoxNDQ3NDog
IyA3NyAiLi9pbmNsdWRlL2xpbnV4L3BtX3dha2V1cC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkZXZpY2VfY2Fu
X3dha2V1cChzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRldi0+
cG93ZXIuY2FuX3dha2V1cDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkZXZpY2VfbWF5
X3dha2V1cChzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRldi0+
cG93ZXIuY2FuX3dha2V1cCAmJiAhIWRldi0+cG93ZXIud2FrZXVwOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGRldmljZV9zZXRfd2FrZXVwX3BhdGgoc3RydWN0IGRldmljZSAqZGV2KQox
NDQ3NDogewoxNDQ3NDogIGRldi0+cG93ZXIud2FrZXVwX3BhdGggPSB0cnVlOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd2FrZXVw
X3NvdXJjZV9jcmVhdGUoY29uc3QgY2hhciAqbmFtZSk7CjE0NDc0OiBleHRlcm4gdm9pZCB3YWtl
dXBfc291cmNlX2Rlc3Ryb3koc3RydWN0IHdha2V1cF9zb3VyY2UgKndzKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIHdha2V1cF9zb3VyY2VfYWRkKHN0cnVjdCB3YWtldXBfc291cmNlICp3cyk7CjE0NDc0
OiBleHRlcm4gdm9pZCB3YWtldXBfc291cmNlX3JlbW92ZShzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAq
d3MpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB3YWtldXBfc291cmNlICp3YWtldXBfc291cmNlX3Jl
Z2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwKMTQ0NzQ6ICAgICAgICAgICBjb25zdCBjaGFyICpu
YW1lKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHdha2V1cF9zb3VyY2VfdW5yZWdpc3RlcihzdHJ1Y3Qg
d2FrZXVwX3NvdXJjZSAqd3MpOwoxNDQ3NDogZXh0ZXJuIGludCB3YWtldXBfc291cmNlc19yZWFk
X2xvY2sodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCB3YWtldXBfc291cmNlc19yZWFkX3VubG9j
ayhpbnQgaWR4KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd2FrZXVwX3Nv
dXJjZXNfd2Fsa19zdGFydCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgd2FrZXVwX3NvdXJj
ZSAqd2FrZXVwX3NvdXJjZXNfd2Fsa19uZXh0KHN0cnVjdCB3YWtldXBfc291cmNlICp3cyk7CjE0
NDc0OiBleHRlcm4gaW50IGRldmljZV93YWtldXBfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiBleHRlcm4gaW50IGRldmljZV93YWtldXBfZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpk
ZXYpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2aWNlX3NldF93YWtldXBfY2FwYWJsZShzdHJ1Y3Qg
ZGV2aWNlICpkZXYsIGJvb2wgY2FwYWJsZSk7CjE0NDc0OiBleHRlcm4gaW50IGRldmljZV9pbml0
X3dha2V1cChzdHJ1Y3QgZGV2aWNlICpkZXYsIGJvb2wgdmFsKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
ZGV2aWNlX3NldF93YWtldXBfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgYm9vbCBlbmFibGUp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19wbV9zdGF5X2F3YWtlKHN0cnVjdCB3YWtldXBfc291cmNl
ICp3cyk7CjE0NDc0OiBleHRlcm4gdm9pZCBwbV9zdGF5X2F3YWtlKHN0cnVjdCBkZXZpY2UgKmRl
dik7CjE0NDc0OiBleHRlcm4gdm9pZCBfX3BtX3JlbGF4KHN0cnVjdCB3YWtldXBfc291cmNlICp3
cyk7CjE0NDc0OiBleHRlcm4gdm9pZCBwbV9yZWxheChzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgcG1fd2FrZXVwX3dzX2V2ZW50KHN0cnVjdCB3YWtldXBfc291cmNlICp3
cywgdW5zaWduZWQgaW50IG1zZWMsIGJvb2wgaGFyZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBwbV93
YWtldXBfZGV2X2V2ZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG1zZWMsIGJv
b2wgaGFyZCk7CjE0NDc0OiAjIDE5NSAiLi9pbmNsdWRlL2xpbnV4L3BtX3dha2V1cC5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBfX3BtX3dha2V1cF9ldmVudChzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MsIHVuc2ln
bmVkIGludCBtc2VjKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBwbV93YWtldXBfd3NfZXZlbnQo
d3MsIG1zZWMsIGZhbHNlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwbV93YWtldXBf
ZXZlbnQoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgbXNlYykKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gcG1fd2FrZXVwX2Rldl9ldmVudChkZXYsIG1zZWMsIGZhbHNlKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwbV93YWtldXBfaGFyZF9ldmVudChzdHJ1Y3QgZGV2aWNl
ICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHBtX3dha2V1cF9kZXZfZXZlbnQoZGV2LCAw
LCB0cnVlKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjQ3ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgY29uc3QgY2hhciAqZGV2X25hbWUoY29uc3Qgc3RydWN0IGRldmlj
ZSAqZGV2KQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgaWYgKGRldi0+aW5pdF9uYW1lKQoxNDQ3
NDogICByZXR1cm4gZGV2LT5pbml0X25hbWU7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4ga29iamVj
dF9uYW1lKCZkZXYtPmtvYmopOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRy
aWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkKMTQ0NzQ6IGludCBkZXZfc2V0X25h
bWUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLCAuLi4pOwoxNDQ3NDogIyA2
NzAgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkZXZfdG9fbm9kZShzdHJ1
Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgtMSk7CjE0NDc0OiB9CjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIHNldF9kZXZfbm9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBub2RlKQoxNDQ3
NDogewoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBpcnFfZG9tYWluICpk
ZXZfZ2V0X21zaV9kb21haW4oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KQoxNDQ3NDogewoxNDQ3
NDogCjE0NDc0OiAgcmV0dXJuIGRldi0+bXNpX2RvbWFpbjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZfc2V0X21zaV9kb21haW4oc3RydWN0
IGRldmljZSAqZGV2LCBzdHJ1Y3QgaXJxX2RvbWFpbiAqZCkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3
NDogIGRldi0+bXNpX2RvbWFpbiA9IGQ7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCAqZGV2X2dldF9kcnZkYXRhKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldikKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gZGV2LT5kcml2ZXJfZGF0YTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBkZXZfc2V0X2RydmRhdGEoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQoxNDQ3
NDogewoxNDQ3NDogIGRldi0+ZHJpdmVyX2RhdGEgPSBkYXRhOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzdHJ1Y3QgcG1fc3Vic3lzX2RhdGEgKmRldl90b19wc2Qoc3RydWN0IGRldmljZSAqZGV2
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkZXYgPyBkZXYtPnBvd2VyLnN1YnN5c19kYXRhIDog
KCh2b2lkICopMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBkZXZfZ2V0
X3VldmVudF9zdXBwcmVzcyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGRldi0+a29iai51ZXZlbnRfc3VwcHJlc3M7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgZGV2X3NldF91ZXZlbnRfc3VwcHJlc3Moc3RydWN0IGRldmljZSAqZGV2LCBpbnQg
dmFsKQoxNDQ3NDogewoxNDQ3NDogIGRldi0+a29iai51ZXZlbnRfc3VwcHJlc3MgPSB2YWw7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkZXZpY2VfaXNfcmVnaXN0ZXJlZChzdHJ1Y3QgZGV2
aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRldi0+a29iai5zdGF0ZV9pbl9zeXNm
czsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZpY2VfZW5hYmxlX2FzeW5jX3N1c3Bl
bmQoc3RydWN0IGRldmljZSAqZGV2KQoxNDQ3NDogewoxNDQ3NDogIGlmICghZGV2LT5wb3dlci5p
c19wcmVwYXJlZCkKMTQ0NzQ6ICAgZGV2LT5wb3dlci5hc3luY19zdXNwZW5kID0gdHJ1ZTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZpY2VfZGlzYWJsZV9hc3luY19zdXNwZW5kKHN0
cnVjdCBkZXZpY2UgKmRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIWRldi0+cG93ZXIuaXNfcHJl
cGFyZWQpCjE0NDc0OiAgIGRldi0+cG93ZXIuYXN5bmNfc3VzcGVuZCA9IGZhbHNlOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGRldmljZV9hc3luY19zdXNwZW5kX2VuYWJsZWQoc3RydWN0
IGRldmljZSAqZGV2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhIWRldi0+cG93ZXIuYXN5bmNf
c3VzcGVuZDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkZXZpY2VfcG1fbm90X3JlcXVp
cmVkKHN0cnVjdCBkZXZpY2UgKmRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZGV2LT5wb3dl
ci5ub19wbTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZpY2Vfc2V0X3BtX25vdF9y
ZXF1aXJlZChzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgZGV2LT5wb3dlci5u
b19wbSA9IHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGV2X3BtX3N5c2NvcmVf
ZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgYm9vbCB2YWwpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0
NzQ6ICBkZXYtPnBvd2VyLnN5c2NvcmUgPSB2YWw7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBkZXZfcG1fc2V0X2RyaXZlcl9mbGFncyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHUz
MiBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkZXYtPnBvd2VyLmRyaXZlcl9mbGFncyA9IGZsYWdz
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRldl9wbV90ZXN0X2RyaXZlcl9mbGFncyhz
dHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gISEo
ZGV2LT5wb3dlci5kcml2ZXJfZmxhZ3MgJiBmbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgZGV2aWNlX2xvY2soc3RydWN0IGRldmljZSAqZGV2KQoxNDQ3NDogewoxNDQ3NDogIG11
dGV4X2xvY2soJmRldi0+bXV0ZXgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZGV2aWNl
X2xvY2tfaW50ZXJydXB0aWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZGV2LT5tdXRleCk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBkZXZpY2VfdHJ5bG9jayhzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIG11dGV4X3RyeWxvY2soJmRldi0+bXV0ZXgpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV91bmxvY2soc3RydWN0IGRldmljZSAqZGV2KQoxNDQ3
NDogewoxNDQ3NDogIG11dGV4X3VubG9jaygmZGV2LT5tdXRleCk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgZGV2aWNlX2xvY2tfYXNzZXJ0KHN0cnVjdCBkZXZpY2UgKmRldikKMTQ0NzQ6
IHsKMTQ0NzQ6ICBkbyB7ICh2b2lkKSgmZGV2LT5tdXRleCk7IH0gd2hpbGUgKDApOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlX25vZGUgKmRldl9vZl9ub2RlKHN0cnVjdCBk
ZXZpY2UgKmRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoITAgfHwgIWRldikKMTQ0NzQ6ICAgcmV0
dXJuICgodm9pZCAqKTApOwoxNDQ3NDogIHJldHVybiBkZXYtPm9mX25vZGU7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgZGV2X2hhc19zeW5jX3N0YXRlKHN0cnVjdCBkZXZpY2UgKmRldikK
MTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIWRldikKMTQ0NzQ6ICAgcmV0dXJuIGZhbHNlOwoxNDQ3NDog
IGlmIChkZXYtPmRyaXZlciAmJiBkZXYtPmRyaXZlci0+c3luY19zdGF0ZSkKMTQ0NzQ6ICAgcmV0
dXJuIHRydWU7CjE0NDc0OiAgaWYgKGRldi0+YnVzICYmIGRldi0+YnVzLT5zeW5jX3N0YXRlKQox
NDQ3NDogICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6ICByZXR1cm4gZmFsc2U7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVf
XygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGRldmljZV9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNl
ICpkZXYpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IGRldmlj
ZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldmljZV9pbml0aWFsaXplKHN0cnVjdCBkZXZp
Y2UgKmRldik7CjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBkZXZpY2VfYWRkKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4g
dm9pZCBkZXZpY2VfZGVsKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4gaW50IGRl
dmljZV9mb3JfZWFjaF9jaGlsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCjE0NDc0
OiAgICAgICAgaW50ICgqZm4pKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkpOwoxNDQ3
NDogZXh0ZXJuIGludCBkZXZpY2VfZm9yX2VhY2hfY2hpbGRfcmV2ZXJzZShzdHJ1Y3QgZGV2aWNl
ICpkZXYsIHZvaWQgKmRhdGEsCjE0NDc0OiAgICAgICAgaW50ICgqZm4pKHN0cnVjdCBkZXZpY2Ug
KmRldiwgdm9pZCAqZGF0YSkpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKmRldmljZV9m
aW5kX2NoaWxkKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKMTQ0NzQ6ICAgICBpbnQg
KCptYXRjaCkoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKSk7CjE0NDc0OiBleHRlcm4g
c3RydWN0IGRldmljZSAqZGV2aWNlX2ZpbmRfY2hpbGRfYnlfbmFtZShzdHJ1Y3QgZGV2aWNlICpw
YXJlbnQsCjE0NDc0OiAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
ZGV2aWNlX3JlbmFtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5ld19uYW1lKTsK
MTQ0NzQ6IGV4dGVybiBpbnQgZGV2aWNlX21vdmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg
ZGV2aWNlICpuZXdfcGFyZW50LAoxNDQ3NDogICAgICAgICAgZW51bSBkcG1fb3JkZXIgZHBtX29y
ZGVyKTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBjaGFyICpkZXZpY2VfZ2V0X2Rldm5vZGUoc3RydWN0
IGRldmljZSAqZGV2LAoxNDQ3NDogICAgICAgICAgIHVtb2RlX3QgKm1vZGUsIGt1aWRfdCAqdWlk
LCBrZ2lkX3QgKmdpZCwKMTQ0NzQ6ICAgICAgICAgICBjb25zdCBjaGFyICoqdG1wKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBkZXZpY2Vfc3VwcG9ydHNfb2ZmbGluZShzdHJ1Y3QgZGV2aWNlICpkZXYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRldi0+YnVzICYmIGRldi0+YnVzLT5vZmZsaW5lICYm
IGRldi0+YnVzLT5vbmxpbmU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGxv
Y2tfZGV2aWNlX2hvdHBsdWcodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCB1bmxvY2tfZGV2aWNl
X2hvdHBsdWcodm9pZCk7CjE0NDc0OiBleHRlcm4gaW50IGxvY2tfZGV2aWNlX2hvdHBsdWdfc3lz
ZnModm9pZCk7CjE0NDc0OiBleHRlcm4gaW50IGRldmljZV9vZmZsaW5lKHN0cnVjdCBkZXZpY2Ug
KmRldik7CjE0NDc0OiBleHRlcm4gaW50IGRldmljZV9vbmxpbmUoc3RydWN0IGRldmljZSAqZGV2
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNldF9wcmltYXJ5X2Z3bm9kZShzdHJ1Y3QgZGV2aWNlICpk
ZXYsIHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0
X3NlY29uZGFyeV9md25vZGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZndub2RlX2hhbmRs
ZSAqZndub2RlKTsKMTQ0NzQ6IHZvaWQgZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVj
dCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRldmljZSAqZGV2Mik7CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBkZXZfbnVtX3ZmKHN0cnVjdCBkZXZpY2UgKmRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAo
ZGV2LT5idXMgJiYgZGV2LT5idXMtPm51bV92ZikKMTQ0NzQ6ICAgcmV0dXJuIGRldi0+YnVzLT5u
dW1fdmYoZGV2KTsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKl9fcm9vdF9kZXZpY2Vf
cmVnaXN0ZXIoY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgICAgICBzdHJ1Y3QgbW9kdWxl
ICpvd25lcik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHZvaWQgcm9vdF9kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpyb290KTsK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCAqZGV2X2dldF9wbGF0ZGF0YShjb25zdCBzdHJ1Y3QgZGV2aWNl
ICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRldi0+cGxhdGZvcm1fZGF0YTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
aW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkZXZpY2VfYmluZF9k
cml2ZXIoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldmljZV9yZWxl
YXNlX2RyaXZlcihzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJp
YnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZGV2aWNlX2F0dGFjaChzdHJ1Y3QgZGV2
aWNlICpkZXYpOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSkgZHJpdmVyX2F0dGFjaChzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2KTsKMTQ0
NzQ6IGV4dGVybiB2b2lkIGRldmljZV9pbml0aWFsX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18p
KSBkZXZpY2VfcmVwcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gYm9vbCBkZXZpY2VfaXNfYm91bmQoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0
X18ocHJpbnRmLCA1LCAwKSkpCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlICpkZXZpY2VfY3JlYXRlX3Zh
cmdzKHN0cnVjdCBjbGFzcyAqY2xzLCBzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCjE0NDc0OiAgICAg
ICAgZGV2X3QgZGV2dCwgdm9pZCAqZHJ2ZGF0YSwKMTQ0NzQ6ICAgICAgICBjb25zdCBjaGFyICpm
bXQsIHZhX2xpc3QgdmFyZ3MpOwoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0
X18ocHJpbnRmLCA1LCA2KSkpCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlICpkZXZpY2VfY3JlYXRlKHN0
cnVjdCBjbGFzcyAqY2xzLCBzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCjE0NDc0OiAgICAgICAgIGRl
dl90IGRldnQsIHZvaWQgKmRydmRhdGEsCjE0NDc0OiAgICAgICAgIGNvbnN0IGNoYXIgKmZtdCwg
Li4uKTsKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgNiwg
NykpKQoxNDQ3NDogc3RydWN0IGRldmljZSAqZGV2aWNlX2NyZWF0ZV93aXRoX2dyb3VwcyhzdHJ1
Y3QgY2xhc3MgKmNscywKMTQ0NzQ6ICAgICAgICAgc3RydWN0IGRldmljZSAqcGFyZW50LCBkZXZf
dCBkZXZ0LCB2b2lkICpkcnZkYXRhLAoxNDQ3NDogICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmli
dXRlX2dyb3VwICoqZ3JvdXBzLAoxNDQ3NDogICAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7
CjE0NDc0OiBleHRlcm4gdm9pZCBkZXZpY2VfZGVzdHJveShzdHJ1Y3QgY2xhc3MgKmNscywgZGV2
X3QgZGV2dCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGRldmljZV9hZGRfZ3JvdXBzKHN0cnVjdCBkZXZpY2UgKmRldiwK
MTQ0NzQ6ICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CjE0NDc0
OiBleHRlcm4gdm9pZCBkZXZpY2VfcmVtb3ZlX2dyb3VwcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0
NDc0OiAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipncm91cHMpOwoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGRldmlj
ZV9hZGRfZ3JvdXAoc3RydWN0IGRldmljZSAqZGV2LAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3Qg
YXR0cmlidXRlX2dyb3VwICpncnApCjE0NDc0OiB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGF0dHJp
YnV0ZV9ncm91cCAqZ3JvdXBzW10gPSB7IGdycCwgKCh2b2lkICopMCkgfTsKMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiBkZXZpY2VfYWRkX2dyb3VwcyhkZXYsIGdyb3Vwcyk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgZGV2aWNlX3JlbW92ZV9ncm91cChzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0
NDc0OiAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmdycCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpncm91cHNbXSA9IHsgZ3Jw
LCAoKHZvaWQgKikwKSB9OwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGRldmljZV9yZW1vdmVfZ3Jv
dXBzKGRldiwgZ3JvdXBzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZGV2bV9kZXZpY2VfYWRkX2dyb3Vw
cyhzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVf
Z3JvdXAgKipncm91cHMpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2bV9kZXZpY2VfcmVtb3ZlX2dy
b3VwcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGF0
dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18o
KF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkZXZtX2RldmljZV9hZGRfZ3JvdXAoc3RydWN0IGRl
dmljZSAqZGV2LAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpncnAp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2bV9kZXZpY2VfcmVtb3ZlX2dyb3VwKHN0cnVjdCBkZXZp
Y2UgKmRldiwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmdy
cCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBpbnQgKCpwbGF0Zm9ybV9ub3RpZnkpKHN0cnVjdCBkZXZpY2UgKmRl
dik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgKCpwbGF0Zm9ybV9ub3RpZnlfcmVtb3ZlKShz
dHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKmdldF9kZXZpY2Uoc3RydWN0
IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHB1dF9kZXZpY2Uoc3RydWN0IGRldmlj
ZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBib29sIGtpbGxfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRl
dik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBkZXZ0bXBmc19tb3VudCh2b2lk
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
dm9pZCBkZXZpY2Vfc2h1dGRvd24odm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGNvbnN0IGNoYXIgKmRldl9kcml2ZXJfc3RyaW5nKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRldmljZV9saW5rICpkZXZpY2VfbGlua19h
ZGQoc3RydWN0IGRldmljZSAqY29uc3VtZXIsCjE0NDc0OiAgICAgICAgIHN0cnVjdCBkZXZpY2Ug
KnN1cHBsaWVyLCB1MzIgZmxhZ3MpOwoxNDQ3NDogdm9pZCBkZXZpY2VfbGlua19kZWwoc3RydWN0
IGRldmljZV9saW5rICpsaW5rKTsKMTQ0NzQ6IHZvaWQgZGV2aWNlX2xpbmtfcmVtb3ZlKHZvaWQg
KmNvbnN1bWVyLCBzdHJ1Y3QgZGV2aWNlICpzdXBwbGllcik7CjE0NDc0OiB2b2lkIGRldmljZV9s
aW5rc19zdXBwbGllcl9zeW5jX3N0YXRlX3BhdXNlKHZvaWQpOwoxNDQ3NDogdm9pZCBkZXZpY2Vf
bGlua3Nfc3VwcGxpZXJfc3luY19zdGF0ZV9yZXN1bWUodm9pZCk7CjE0NDc0OiAjIDMzICIuL2lu
Y2x1ZGUvZHJtL2RybV9wcmludC5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9kZWJ1
Z2ZzLmgiIDEKMTQ0NzQ6ICMgMjEgIi4vaW5jbHVkZS9saW51eC9kZWJ1Z2ZzLmgiCjE0NDc0OiBz
dHJ1Y3QgZGV2aWNlOwoxNDQ3NDogc3RydWN0IGZpbGVfb3BlcmF0aW9uczsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGRlYnVnZnNfYmxvYl93cmFwcGVyIHsKMTQ0NzQ6ICB2b2lkICpkYXRhOwoxNDQ3
NDogIHVuc2lnbmVkIGxvbmcgc2l6ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
ZWJ1Z2ZzX3JlZzMyIHsKMTQ0NzQ6ICBjaGFyICpuYW1lOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
b2Zmc2V0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlYnVnZnNfcmVnc2V0MzIg
ewoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX3JlZzMyICpyZWdzOwoxNDQ3NDogIGludCBu
cmVnczsKMTQ0NzQ6ICB2b2lkICpiYXNlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHN0cnVjdCBkZW50cnkgKmFyY2hfZGVidWdmc19kaXI7CjE0NDc0OiAjIDU3ICIuL2luY2x1ZGUv
bGludXgvZGVidWdmcy5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgdmZzbW91bnQgKigqZGVidWdm
c19hdXRvbW91bnRfdCkoc3RydWN0IGRlbnRyeSAqLCB2b2lkICopOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRyeSAqZGVidWdmc19sb29rdXAoY29uc3QgY2hhciAq
bmFtZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50KTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRy
eSAqZGVidWdmc19jcmVhdGVfZmlsZShjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCjE0
NDc0OiAgICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB2b2lkICpkYXRhLAoxNDQ3NDogICAg
ICAgIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpOwoxNDQ3NDogc3RydWN0IGRl
bnRyeSAqZGVidWdmc19jcmVhdGVfZmlsZV91bnNhZmUoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVf
dCBtb2RlLAoxNDQ3NDogICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdm9pZCAqZGF0YSwK
MTQ0NzQ6ICAgICAgICBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmb3BzKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGRlbnRyeSAqZGVidWdmc19jcmVhdGVfZmlsZV9zaXplKGNvbnN0IGNo
YXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50
LCB2b2lkICpkYXRhLAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpm
b3BzLAoxNDQ3NDogICAgICBsb2ZmX3QgZmlsZV9zaXplKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRlbnRyeSAqZGVidWdmc19jcmVhdGVfZGlyKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBkZW50
cnkgKnBhcmVudCk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRl
X3N5bWxpbmsoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDog
ICAgICAgICAgIGNvbnN0IGNoYXIgKmRlc3QpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGVudHJ5
ICpkZWJ1Z2ZzX2NyZWF0ZV9hdXRvbW91bnQoY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAg
c3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDogICAgICBkZWJ1Z2ZzX2F1dG9tb3VudF90IGYs
CjE0NDc0OiAgICAgIHZvaWQgKmRhdGEpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGRlYnVnZnNfcmVt
b3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogY29uc3Qg
c3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZGVidWdmc19yZWFsX2ZvcHMoY29uc3Qgc3RydWN0IGZp
bGUgKmZpbHApOwoxNDQ3NDogCjE0NDc0OiBpbnQgZGVidWdmc19maWxlX2dldChzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkpOwoxNDQ3NDogdm9pZCBkZWJ1Z2ZzX2ZpbGVfcHV0KHN0cnVjdCBkZW50cnkg
KmRlbnRyeSk7CjE0NDc0OiAKMTQ0NzQ6IHNzaXplX3QgZGVidWdmc19hdHRyX3JlYWQoc3RydWN0
IGZpbGUgKmZpbGUsIGNoYXIgKmJ1ZiwKMTQ0NzQ6ICAgIHNpemVfdCBsZW4sIGxvZmZfdCAqcHBv
cyk7CjE0NDc0OiBzc2l6ZV90IGRlYnVnZnNfYXR0cl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwg
Y29uc3QgY2hhciAqYnVmLAoxNDQ3NDogICAgc2l6ZV90IGxlbiwgbG9mZl90ICpwcG9zKTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRyeSAqZGVidWdmc19yZW5hbWUoc3RydWN0IGRlbnRyeSAq
b2xkX2Rpciwgc3RydWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICBzdHJ1Y3QgZGVudHJ5ICpuZXdfZGlyLCBjb25zdCBjaGFyICpuZXdfbmFtZSk7CjE0NDc0OiAK
MTQ0NzQ6IHZvaWQgZGVidWdmc19jcmVhdGVfdTgoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBt
b2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCjE0NDc0OiAgICAgICAgICB1OCAqdmFsdWUpOwox
NDQ3NDogdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV91MTYoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBt
b2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCjE0NDc0OiAgICB1MTYgKnZhbHVlKTsKMTQ0NzQ6
IHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX3UzMihjb25zdCBjaGFyICpuYW1lLCB1bW9k
ZV90IG1vZGUsCjE0NDc0OiAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIHUzMiAqdmFsdWUp
OwoxNDQ3NDogdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV91NjQoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVf
dCBtb2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCjE0NDc0OiAgICB1NjQgKnZhbHVlKTsKMTQ0
NzQ6IHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX3Vsb25nKGNvbnN0IGNoYXIgKm5hbWUs
IHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB1bnNp
Z25lZCBsb25nICp2YWx1ZSk7CjE0NDc0OiB2b2lkIGRlYnVnZnNfY3JlYXRlX3g4KGNvbnN0IGNo
YXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDogICAg
ICAgICAgdTggKnZhbHVlKTsKMTQ0NzQ6IHZvaWQgZGVidWdmc19jcmVhdGVfeDE2KGNvbnN0IGNo
YXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDogICAg
dTE2ICp2YWx1ZSk7CjE0NDc0OiB2b2lkIGRlYnVnZnNfY3JlYXRlX3gzMihjb25zdCBjaGFyICpu
YW1lLCB1bW9kZV90IG1vZGUsIHN0cnVjdCBkZW50cnkgKnBhcmVudCwKMTQ0NzQ6ICAgIHUzMiAq
dmFsdWUpOwoxNDQ3NDogdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV94NjQoY29uc3QgY2hhciAqbmFtZSwg
dW1vZGVfdCBtb2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCjE0NDc0OiAgICB1NjQgKnZhbHVl
KTsKMTQ0NzQ6IHZvaWQgZGVidWdmc19jcmVhdGVfc2l6ZV90KGNvbnN0IGNoYXIgKm5hbWUsIHVt
b2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgc2l6ZV90ICp2
YWx1ZSk7CjE0NDc0OiB2b2lkIGRlYnVnZnNfY3JlYXRlX2F0b21pY190KGNvbnN0IGNoYXIgKm5h
bWUsIHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCBh
dG9taWNfdCAqdmFsdWUpOwoxNDQ3NDogc3RydWN0IGRlbnRyeSAqZGVidWdmc19jcmVhdGVfYm9v
bChjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCjE0NDc0OiAgICAgICBzdHJ1Y3QgZGVu
dHJ5ICpwYXJlbnQsIGJvb2wgKnZhbHVlKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRyeSAq
ZGVidWdmc19jcmVhdGVfYmxvYihjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCjE0NDc0
OiAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCjE0NDc0OiAgICAgICBzdHJ1Y3QgZGVidWdm
c19ibG9iX3dyYXBwZXIgKmJsb2IpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGRlYnVnZnNfY3JlYXRl
X3JlZ3NldDMyKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgICAg
c3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgZGVidWdmc19yZWdz
ZXQzMiAqcmVnc2V0KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkZWJ1Z2ZzX3ByaW50X3JlZ3MzMihz
dHJ1Y3Qgc2VxX2ZpbGUgKnMsIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX3JlZzMyICpyZWdzLAoxNDQ3
NDogICAgICBpbnQgbnJlZ3MsIHZvaWQgKmJhc2UsIGNoYXIgKnByZWZpeCk7CjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgZGVidWdmc19jcmVhdGVfdTMyX2FycmF5KGNvbnN0IGNoYXIgKm5hbWUsIHVtb2Rl
X3QgbW9kZSwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdTMyICphcnJh
eSwgdTMyIGVsZW1lbnRzKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRyeSAqZGVidWdmc19j
cmVhdGVfZGV2bV9zZXFmaWxlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwK
MTQ0NzQ6ICAgICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDogICAgICAgICBpbnQg
KCpyZWFkX2ZuKShzdHJ1Y3Qgc2VxX2ZpbGUgKnMsCjE0NDc0OiAgICAgICAgICB2b2lkICpkYXRh
KSk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGVidWdmc19pbml0aWFsaXplZCh2b2lkKTsKMTQ0NzQ6
IAoxNDQ3NDogc3NpemVfdCBkZWJ1Z2ZzX3JlYWRfZmlsZV9ib29sKHN0cnVjdCBmaWxlICpmaWxl
LCBjaGFyICp1c2VyX2J1ZiwKMTQ0NzQ6ICAgICAgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAq
cHBvcyk7CjE0NDc0OiAKMTQ0NzQ6IHNzaXplX3QgZGVidWdmc193cml0ZV9maWxlX2Jvb2woc3Ry
dWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKnVzZXJfYnVmLAoxNDQ3NDogICAgIHNpemVfdCBj
b3VudCwgbG9mZl90ICpwcG9zKTsKMTQ0NzQ6ICMgMzY1ICIuL2luY2x1ZGUvbGludXgvZGVidWdm
cy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV94dWwoY29uc3QgY2hhciAqbmFtZSwgdW1v
ZGVfdCBtb2RlLAoxNDQ3NDogICAgICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwKMTQ0NzQ6
ICAgICAgICAgICB1bnNpZ25lZCBsb25nICp2YWx1ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoc2l6
ZW9mKCp2YWx1ZSkgPT0gc2l6ZW9mKHUzMikpCjE0NDc0OiAgIGRlYnVnZnNfY3JlYXRlX3gzMihu
YW1lLCBtb2RlLCBwYXJlbnQsICh1MzIgKil2YWx1ZSk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBk
ZWJ1Z2ZzX2NyZWF0ZV94NjQobmFtZSwgbW9kZSwgcGFyZW50LCAodTY0ICopdmFsdWUpOwoxNDQ3
NDogfQoxNDQ3NDogIyAzNCAiLi9pbmNsdWRlL2RybS9kcm1fcHJpbnQuaCIgMgoxNDQ3NDogCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIgMQoxNDQ3NDogIyA0MiAiLi9pbmNs
dWRlL3VhcGkvZHJtL2RybS5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJh
dGVkL3VhcGkvYXNtL2lvY3RsLmgiIDEKMTQ0NzQ6ICMgNDMgIi4vaW5jbHVkZS91YXBpL2RybS9k
cm0uaCIgMgoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBpbnQgZHJtX2hhbmRsZV90OwoxNDQ3NDog
IyA4NCAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBp
bnQgZHJtX2NvbnRleHRfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgaW50IGRybV9kcmF3YWJs
ZV90OwoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBpbnQgZHJtX21hZ2ljX3Q7CjE0NDc0OiAjIDk3
ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCB7
CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgeDE7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgeTE7CjE0
NDc0OiAgdW5zaWduZWQgc2hvcnQgeDI7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgeTI7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2Ry
YXdhYmxlX2luZm8gewoxNDQ3NDogIHVuc2lnbmVkIGludCBudW1fcmVjdHM7CjE0NDc0OiAgc3Ry
dWN0IGRybV9jbGlwX3JlY3QgKnJlY3RzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV90ZXhfcmVnaW9uIHsKMTQ0NzQ6ICB1bnNpZ25l
ZCBjaGFyIG5leHQ7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBwcmV2OwoxNDQ3NDogIHVuc2lnbmVk
IGNoYXIgaW5fdXNlOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcGFkZGluZzsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgYWdlOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTMwICIuL2luY2x1ZGUvdWFwaS9kcm0v
ZHJtLmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX2h3X2xvY2sgewoxNDQ3NDogIF9fdm9sYXRpbGVfXyB1
bnNpZ25lZCBpbnQgbG9jazsKMTQ0NzQ6ICBjaGFyIHBhZGRpbmdbNjBdOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBkcm1fdmVyc2lvbiB7CjE0NDc0OiAgaW50IHZlcnNpb25fbWFqb3I7CjE0NDc0OiAgaW50IHZl
cnNpb25fbWlub3I7CjE0NDc0OiAgaW50IHZlcnNpb25fcGF0Y2hsZXZlbDsKMTQ0NzQ6ICBfX2tl
cm5lbF9zaXplX3QgbmFtZV9sZW47CjE0NDc0OiAgY2hhciAqbmFtZTsKMTQ0NzQ6ICBfX2tlcm5l
bF9zaXplX3QgZGF0ZV9sZW47CjE0NDc0OiAgY2hhciAqZGF0ZTsKMTQ0NzQ6ICBfX2tlcm5lbF9z
aXplX3QgZGVzY19sZW47CjE0NDc0OiAgY2hhciAqZGVzYzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX3Vu
aXF1ZSB7CjE0NDc0OiAgX19rZXJuZWxfc2l6ZV90IHVuaXF1ZV9sZW47CjE0NDc0OiAgY2hhciAq
dW5pcXVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9saXN0IHsKMTQ0NzQ6
ICBpbnQgY291bnQ7CjE0NDc0OiAgc3RydWN0IGRybV92ZXJzaW9uICp2ZXJzaW9uOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9ibG9jayB7CjE0NDc0OiAgaW50IHVudXNlZDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZHJtX2NvbnRyb2wgewoxNDQ3NDogIGVudW0gewoxNDQ3NDogICBEUk1f
QUREX0NPTU1BTkQsCjE0NDc0OiAgIERSTV9STV9DT01NQU5ELAoxNDQ3NDogICBEUk1fSU5TVF9I
QU5ETEVSLAoxNDQ3NDogICBEUk1fVU5JTlNUX0hBTkRMRVIKMTQ0NzQ6ICB9IGZ1bmM7CjE0NDc0
OiAgaW50IGlycTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gZHJtX21hcF90eXBlIHsKMTQ0NzQ6ICBfRFJNX0ZSQU1FX0JVRkZFUiA9IDAsCjE0
NDc0OiAgX0RSTV9SRUdJU1RFUlMgPSAxLAoxNDQ3NDogIF9EUk1fU0hNID0gMiwKMTQ0NzQ6ICBf
RFJNX0FHUCA9IDMsCjE0NDc0OiAgX0RSTV9TQ0FUVEVSX0dBVEhFUiA9IDQsCjE0NDc0OiAgX0RS
TV9DT05TSVNURU5UID0gNQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBkcm1fbWFwX2ZsYWdzIHsKMTQ0NzQ6ICBfRFJNX1JFU1RSSUNURUQgPSAw
eDAxLAoxNDQ3NDogIF9EUk1fUkVBRF9PTkxZID0gMHgwMiwKMTQ0NzQ6ICBfRFJNX0xPQ0tFRCA9
IDB4MDQsCjE0NDc0OiAgX0RSTV9LRVJORUwgPSAweDA4LAoxNDQ3NDogIF9EUk1fV1JJVEVfQ09N
QklOSU5HID0gMHgxMCwKMTQ0NzQ6ICBfRFJNX0NPTlRBSU5TX0xPQ0sgPSAweDIwLAoxNDQ3NDog
IF9EUk1fUkVNT1ZBQkxFID0gMHg0MCwKMTQ0NzQ6ICBfRFJNX0RSSVZFUiA9IDB4ODAKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fY3R4X3ByaXZfbWFwIHsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgY3R4X2lkOwoxNDQ3NDogIHZvaWQgKmhhbmRsZTsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBkcm1fbWFwIHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIG9mZnNldDsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHNpemU7CjE0NDc0OiAgZW51bSBkcm1fbWFwX3R5cGUgdHlwZTsKMTQ0NzQ6ICBl
bnVtIGRybV9tYXBfZmxhZ3MgZmxhZ3M7CjE0NDc0OiAgdm9pZCAqaGFuZGxlOwoxNDQ3NDogCjE0
NDc0OiAgaW50IG10cnI7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fY2xpZW50IHsKMTQ0NzQ6ICBpbnQgaWR4OwoxNDQ3
NDogIGludCBhdXRoOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcGlkOwoxNDQ3NDogIHVuc2lnbmVk
IGxvbmcgdWlkOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbWFnaWM7CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBpb2NzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkcm1fc3RhdF90eXBlIHsK
MTQ0NzQ6ICBfRFJNX1NUQVRfTE9DSywKMTQ0NzQ6ICBfRFJNX1NUQVRfT1BFTlMsCjE0NDc0OiAg
X0RSTV9TVEFUX0NMT1NFUywKMTQ0NzQ6ICBfRFJNX1NUQVRfSU9DVExTLAoxNDQ3NDogIF9EUk1f
U1RBVF9MT0NLUywKMTQ0NzQ6ICBfRFJNX1NUQVRfVU5MT0NLUywKMTQ0NzQ6ICBfRFJNX1NUQVRf
VkFMVUUsCjE0NDc0OiAgX0RSTV9TVEFUX0JZVEUsCjE0NDc0OiAgX0RSTV9TVEFUX0NPVU5ULAox
NDQ3NDogCjE0NDc0OiAgX0RSTV9TVEFUX0lSUSwKMTQ0NzQ6ICBfRFJNX1NUQVRfUFJJTUFSWSwK
MTQ0NzQ6ICBfRFJNX1NUQVRfU0VDT05EQVJZLAoxNDQ3NDogIF9EUk1fU1RBVF9ETUEsCjE0NDc0
OiAgX0RSTV9TVEFUX1NQRUNJQUwsCjE0NDc0OiAgX0RSTV9TVEFUX01JU1NFRAoxNDQ3NDogCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJt
X3N0YXRzIHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGNvdW50OwoxNDQ3NDogIHN0cnVjdCB7CjE0
NDc0OiAgIHVuc2lnbmVkIGxvbmcgdmFsdWU7CjE0NDc0OiAgIGVudW0gZHJtX3N0YXRfdHlwZSB0
eXBlOwoxNDQ3NDogIH0gZGF0YVsxNV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRybV9sb2NrX2ZsYWdzIHsKMTQ0NzQ6ICBfRFJNX0xPQ0tf
UkVBRFkgPSAweDAxLAoxNDQ3NDogIF9EUk1fTE9DS19RVUlFU0NFTlQgPSAweDAyLAoxNDQ3NDog
IF9EUk1fTE9DS19GTFVTSCA9IDB4MDQsCjE0NDc0OiAgX0RSTV9MT0NLX0ZMVVNIX0FMTCA9IDB4
MDgsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX0RSTV9IQUxUX0FMTF9RVUVVRVMg
PSAweDEwLAoxNDQ3NDogIF9EUk1fSEFMVF9DVVJfUVVFVUVTID0gMHgyMAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBkcm1fbG9jayB7CjE0NDc0OiAgaW50IGNvbnRleHQ7CjE0NDc0OiAgZW51bSBkcm1fbG9ja19m
bGFncyBmbGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAjIDMxMCAiLi9pbmNsdWRlL3VhcGkvZHJtL2Ry
bS5oIgoxNDQ3NDogZW51bSBkcm1fZG1hX2ZsYWdzIHsKMTQ0NzQ6IAoxNDQ3NDogIF9EUk1fRE1B
X0JMT0NLID0gMHgwMSwKMTQ0NzQ6ICMgMzIyICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCjE0
NDc0OiAgX0RSTV9ETUFfV0hJTEVfTE9DS0VEID0gMHgwMiwKMTQ0NzQ6ICBfRFJNX0RNQV9QUklP
UklUWSA9IDB4MDQsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9EUk1fRE1BX1dBSVQgPSAweDEw
LAoxNDQ3NDogIF9EUk1fRE1BX1NNQUxMRVJfT0sgPSAweDIwLAoxNDQ3NDogIF9EUk1fRE1BX0xB
UkdFUl9PSyA9IDB4NDAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2J1Zl9kZXNjIHsKMTQ0NzQ6ICBpbnQg
Y291bnQ7CjE0NDc0OiAgaW50IHNpemU7CjE0NDc0OiAgaW50IGxvd19tYXJrOwoxNDQ3NDogIGlu
dCBoaWdoX21hcms7CjE0NDc0OiAgZW51bSB7CjE0NDc0OiAgIF9EUk1fUEFHRV9BTElHTiA9IDB4
MDEsCjE0NDc0OiAgIF9EUk1fQUdQX0JVRkZFUiA9IDB4MDIsCjE0NDc0OiAgIF9EUk1fU0dfQlVG
RkVSID0gMHgwNCwKMTQ0NzQ6ICAgX0RSTV9GQl9CVUZGRVIgPSAweDA4LAoxNDQ3NDogICBfRFJN
X1BDSV9CVUZGRVJfUk8gPSAweDEwCjE0NDc0OiAgfSBmbGFnczsKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIGFncF9zdGFydDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fYnVmX2luZm8gewoxNDQ3
NDogIGludCBjb3VudDsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX2J1Zl9kZXNjICpsaXN0OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9idWZf
ZnJlZSB7CjE0NDc0OiAgaW50IGNvdW50OwoxNDQ3NDogIGludCAqbGlzdDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZHJtX2J1Zl9wdWIgewoxNDQ3NDogIGludCBpZHg7CjE0NDc0OiAgaW50IHRvdGFsOwoxNDQ3
NDogIGludCB1c2VkOwoxNDQ3NDogIHZvaWQgKmFkZHJlc3M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2J1Zl9tYXAgewoxNDQ3NDog
IGludCBjb3VudDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICp2aXJ0dWFs
OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRybV9idWZfcHViICpsaXN0OwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgNDAyICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX2Rt
YSB7CjE0NDc0OiAgaW50IGNvbnRleHQ7CjE0NDc0OiAgaW50IHNlbmRfY291bnQ7CjE0NDc0OiAg
aW50ICpzZW5kX2luZGljZXM7CjE0NDc0OiAgaW50ICpzZW5kX3NpemVzOwoxNDQ3NDogIGVudW0g
ZHJtX2RtYV9mbGFncyBmbGFnczsKMTQ0NzQ6ICBpbnQgcmVxdWVzdF9jb3VudDsKMTQ0NzQ6ICBp
bnQgcmVxdWVzdF9zaXplOwoxNDQ3NDogIGludCAqcmVxdWVzdF9pbmRpY2VzOwoxNDQ3NDogIGlu
dCAqcmVxdWVzdF9zaXplczsKMTQ0NzQ6ICBpbnQgZ3JhbnRlZF9jb3VudDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gZHJtX2N0eF9mbGFncyB7CjE0NDc0OiAgX0RSTV9DT05URVhUX1BS
RVNFUlZFRCA9IDB4MDEsCjE0NDc0OiAgX0RSTV9DT05URVhUXzJET05MWSA9IDB4MDIKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZHJtX2N0eCB7CjE0NDc0OiAgZHJtX2NvbnRleHRfdCBoYW5kbGU7CjE0NDc0OiAg
ZW51bSBkcm1fY3R4X2ZsYWdzIGZsYWdzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9jdHhfcmVzIHsKMTQ0NzQ6ICBpbnQgY291bnQ7
CjE0NDc0OiAgc3RydWN0IGRybV9jdHggKmNvbnRleHRzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9kcmF3IHsKMTQ0NzQ6ICBkcm1f
ZHJhd2FibGVfdCBoYW5kbGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiB0eXBlZGVmIGVudW0gewoxNDQ3NDogIERSTV9EUkFXQUJMRV9DTElQUkVDVFMK
MTQ0NzQ6IH0gZHJtX2RyYXdhYmxlX2luZm9fdHlwZV90OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZHJtX3VwZGF0ZV9kcmF3IHsKMTQ0NzQ6ICBkcm1fZHJhd2FibGVfdCBoYW5kbGU7CjE0NDc0OiAg
dW5zaWduZWQgaW50IHR5cGU7CjE0NDc0OiAgdW5zaWduZWQgaW50IG51bTsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIGxvbmcgZGF0YTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fYXV0aCB7CjE0NDc0OiAgZHJtX21hZ2ljX3QgbWFnaWM7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGRybV9pcnFfYnVzaWQgewoxNDQ3NDogIGludCBpcnE7CjE0NDc0OiAg
aW50IGJ1c251bTsKMTQ0NzQ6ICBpbnQgZGV2bnVtOwoxNDQ3NDogIGludCBmdW5jbnVtOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkcm1fdmJsYW5rX3NlcV90eXBlIHsKMTQ0NzQ6ICBf
RFJNX1ZCTEFOS19BQlNPTFVURSA9IDB4MCwKMTQ0NzQ6ICBfRFJNX1ZCTEFOS19SRUxBVElWRSA9
IDB4MSwKMTQ0NzQ6IAoxNDQ3NDogIF9EUk1fVkJMQU5LX0hJR0hfQ1JUQ19NQVNLID0gMHgwMDAw
MDAzZSwKMTQ0NzQ6ICBfRFJNX1ZCTEFOS19FVkVOVCA9IDB4NDAwMDAwMCwKMTQ0NzQ6ICBfRFJN
X1ZCTEFOS19GTElQID0gMHg4MDAwMDAwLAoxNDQ3NDogIF9EUk1fVkJMQU5LX05FWFRPTk1JU1Mg
PSAweDEwMDAwMDAwLAoxNDQ3NDogIF9EUk1fVkJMQU5LX1NFQ09OREFSWSA9IDB4MjAwMDAwMDAs
CjE0NDc0OiAgX0RSTV9WQkxBTktfU0lHTkFMID0gMHg0MDAwMDAwMAoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
cm1fd2FpdF92YmxhbmtfcmVxdWVzdCB7CjE0NDc0OiAgZW51bSBkcm1fdmJsYW5rX3NlcV90eXBl
IHR5cGU7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNlcXVlbmNlOwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgc2lnbmFsOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV93YWl0X3ZibGFu
a19yZXBseSB7CjE0NDc0OiAgZW51bSBkcm1fdmJsYW5rX3NlcV90eXBlIHR5cGU7CjE0NDc0OiAg
dW5zaWduZWQgaW50IHNlcXVlbmNlOwoxNDQ3NDogIGxvbmcgdHZhbF9zZWM7CjE0NDc0OiAgbG9u
ZyB0dmFsX3VzZWM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHJtX3dhaXRfdmJsYW5rIHsKMTQ0NzQ6ICBzdHJ1
Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcXVlc3QgcmVxdWVzdDsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX3dh
aXRfdmJsYW5rX3JlcGx5IHJlcGx5OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTI2ICIuL2luY2x1ZGUv
dWFwaS9kcm0vZHJtLmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVzZXRfY3RsIHsKMTQ0NzQ6ICBf
X3UzMiBjcnRjOwoxNDQ3NDogIF9fdTMyIGNtZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2FncF9tb2Rl
IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIG1vZGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9hZ3BfYnVm
ZmVyIHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNpemU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBo
YW5kbGU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB0eXBlOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
cGh5c2ljYWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9hZ3BfYmluZGluZyB7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBoYW5kbGU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBvZmZzZXQ7CjE0NDc0OiB9Owox
NDQ3NDogIyA1NjkgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIKMTQ0NzQ6IHN0cnVjdCBkcm1f
YWdwX2luZm8gewoxNDQ3NDogIGludCBhZ3BfdmVyc2lvbl9tYWpvcjsKMTQ0NzQ6ICBpbnQgYWdw
X3ZlcnNpb25fbWlub3I7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtb2RlOwoxNDQ3NDogIHVuc2ln
bmVkIGxvbmcgYXBlcnR1cmVfYmFzZTsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGFwZXJ0dXJlX3Np
emU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtZW1vcnlfYWxsb3dlZDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIG1lbW9yeV91c2VkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBzaG9y
dCBpZF92ZW5kb3I7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgaWRfZGV2aWNlOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9zY2F0dGVy
X2dhdGhlciB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzaXplOwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgaGFuZGxlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGRybV9zZXRfdmVyc2lvbiB7CjE0NDc0OiAgaW50IGRybV9kaV9tYWpvcjsKMTQ0
NzQ6ICBpbnQgZHJtX2RpX21pbm9yOwoxNDQ3NDogIGludCBkcm1fZGRfbWFqb3I7CjE0NDc0OiAg
aW50IGRybV9kZF9taW5vcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRybV9nZW1fY2xvc2UgewoxNDQ3NDogCjE0NDc0OiAgX191MzIgaGFuZGxlOwoxNDQ3NDogIF9f
dTMyIHBhZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9nZW1f
ZmxpbmsgewoxNDQ3NDogCjE0NDc0OiAgX191MzIgaGFuZGxlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBfX3UzMiBuYW1lOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZHJtX2dlbV9vcGVuIHsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIG5hbWU7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIF9fdTMyIGhhbmRsZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191NjQgc2l6
ZTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDY1NiAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgoxNDQ3
NDogc3RydWN0IGRybV9nZXRfY2FwIHsKMTQ0NzQ6ICBfX3U2NCBjYXBhYmlsaXR5OwoxNDQ3NDog
IF9fdTY0IHZhbHVlOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNzAyICIuL2luY2x1ZGUvdWFwaS9kcm0v
ZHJtLmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX3NldF9jbGllbnRfY2FwIHsKMTQ0NzQ6ICBfX3U2NCBj
YXBhYmlsaXR5OwoxNDQ3NDogIF9fdTY0IHZhbHVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlIHsKMTQ0NzQ6ICBfX3UzMiBo
YW5kbGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBfX3MzMiBmZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1f
c3luY29ial9jcmVhdGUgewoxNDQ3NDogIF9fdTMyIGhhbmRsZTsKMTQ0NzQ6IAoxNDQ3NDogIF9f
dTMyIGZsYWdzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9zeW5jb2JqX2Rl
c3Ryb3kgewoxNDQ3NDogIF9fdTMyIGhhbmRsZTsKMTQ0NzQ6ICBfX3UzMiBwYWQ7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9zeW5jb2JqX2hhbmRs
ZSB7CjE0NDc0OiAgX191MzIgaGFuZGxlOwoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogCjE0
NDc0OiAgX19zMzIgZmQ7CjE0NDc0OiAgX191MzIgcGFkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGRybV9zeW5jb2JqX3RyYW5zZmVyIHsKMTQ0NzQ6ICBfX3UzMiBzcmNfaGFuZGxl
OwoxNDQ3NDogIF9fdTMyIGRzdF9oYW5kbGU7CjE0NDc0OiAgX191NjQgc3JjX3BvaW50OwoxNDQ3
NDogIF9fdTY0IGRzdF9wb2ludDsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6ICBfX3UzMiBw
YWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZHJtX3N5bmNvYmpfd2FpdCB7CjE0NDc0OiAgX191NjQgaGFuZGxlczsKMTQ0NzQ6IAoxNDQ3
NDogIF9fczY0IHRpbWVvdXRfbnNlYzsKMTQ0NzQ6ICBfX3UzMiBjb3VudF9oYW5kbGVzOwoxNDQ3
NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogIF9fdTMyIGZpcnN0X3NpZ25hbGVkOwoxNDQ3NDogIF9f
dTMyIHBhZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fc3luY29ial90aW1l
bGluZV93YWl0IHsKMTQ0NzQ6ICBfX3U2NCBoYW5kbGVzOwoxNDQ3NDogCjE0NDc0OiAgX191NjQg
cG9pbnRzOwoxNDQ3NDogCjE0NDc0OiAgX19zNjQgdGltZW91dF9uc2VjOwoxNDQ3NDogIF9fdTMy
IGNvdW50X2hhbmRsZXM7CjE0NDc0OiAgX191MzIgZmxhZ3M7CjE0NDc0OiAgX191MzIgZmlyc3Rf
c2lnbmFsZWQ7CjE0NDc0OiAgX191MzIgcGFkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZHJtX3N5bmNvYmpfYXJyYXkgewoxNDQ3NDogIF9fdTY0IGhhbmRsZXM7CjE0
NDc0OiAgX191MzIgY291bnRfaGFuZGxlczsKMTQ0NzQ6ICBfX3UzMiBwYWQ7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fc3luY29ial90aW1lbGluZV9hcnJheSB7
CjE0NDc0OiAgX191NjQgaGFuZGxlczsKMTQ0NzQ6ICBfX3U2NCBwb2ludHM7CjE0NDc0OiAgX191
MzIgY291bnRfaGFuZGxlczsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2NydGNfZ2V0X3NlcXVlbmNlIHsKMTQ0
NzQ6ICBfX3UzMiBjcnRjX2lkOwoxNDQ3NDogIF9fdTMyIGFjdGl2ZTsKMTQ0NzQ6ICBfX3U2NCBz
ZXF1ZW5jZTsKMTQ0NzQ6ICBfX3M2NCBzZXF1ZW5jZV9uczsKMTQ0NzQ6IH07CjE0NDc0OiAjIDgw
NSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgoxNDQ3NDogc3RydWN0IGRybV9jcnRjX3F1ZXVl
X3NlcXVlbmNlIHsKMTQ0NzQ6ICBfX3UzMiBjcnRjX2lkOwoxNDQ3NDogIF9fdTMyIGZsYWdzOwox
NDQ3NDogIF9fdTY0IHNlcXVlbmNlOwoxNDQ3NDogIF9fdTY0IHVzZXJfZGF0YTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2lu
Y2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIgMQoxNDQ3NDogIyAzMCAiLi9pbmNsdWRlL3VhcGkv
ZHJtL2RybV9tb2RlLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIgMQox
NDQ3NDogIyAzMSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiIDIKMTQ0NzQ6ICMgMjIx
ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9t
b2RlaW5mbyB7CjE0NDc0OiAgX191MzIgY2xvY2s7CjE0NDc0OiAgX191MTYgaGRpc3BsYXk7CjE0
NDc0OiAgX191MTYgaHN5bmNfc3RhcnQ7CjE0NDc0OiAgX191MTYgaHN5bmNfZW5kOwoxNDQ3NDog
IF9fdTE2IGh0b3RhbDsKMTQ0NzQ6ICBfX3UxNiBoc2tldzsKMTQ0NzQ6ICBfX3UxNiB2ZGlzcGxh
eTsKMTQ0NzQ6ICBfX3UxNiB2c3luY19zdGFydDsKMTQ0NzQ6ICBfX3UxNiB2c3luY19lbmQ7CjE0
NDc0OiAgX191MTYgdnRvdGFsOwoxNDQ3NDogIF9fdTE2IHZzY2FuOwoxNDQ3NDogCjE0NDc0OiAg
X191MzIgdnJlZnJlc2g7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6ICBfX3Uz
MiB0eXBlOwoxNDQ3NDogIGNoYXIgbmFtZVszMl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgZHJtX21vZGVfY2FyZF9yZXMgewoxNDQ3NDogIF9fdTY0IGZiX2lkX3B0cjsKMTQ0NzQ6
ICBfX3U2NCBjcnRjX2lkX3B0cjsKMTQ0NzQ6ICBfX3U2NCBjb25uZWN0b3JfaWRfcHRyOwoxNDQ3
NDogIF9fdTY0IGVuY29kZXJfaWRfcHRyOwoxNDQ3NDogIF9fdTMyIGNvdW50X2ZiczsKMTQ0NzQ6
ICBfX3UzMiBjb3VudF9jcnRjczsKMTQ0NzQ6ICBfX3UzMiBjb3VudF9jb25uZWN0b3JzOwoxNDQ3
NDogIF9fdTMyIGNvdW50X2VuY29kZXJzOwoxNDQ3NDogIF9fdTMyIG1pbl93aWR0aDsKMTQ0NzQ6
ICBfX3UzMiBtYXhfd2lkdGg7CjE0NDc0OiAgX191MzIgbWluX2hlaWdodDsKMTQ0NzQ6ICBfX3Uz
MiBtYXhfaGVpZ2h0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2Ny
dGMgewoxNDQ3NDogIF9fdTY0IHNldF9jb25uZWN0b3JzX3B0cjsKMTQ0NzQ6ICBfX3UzMiBjb3Vu
dF9jb25uZWN0b3JzOwoxNDQ3NDogCjE0NDc0OiAgX191MzIgY3J0Y19pZDsKMTQ0NzQ6ICBfX3Uz
MiBmYl9pZDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIHg7CjE0NDc0OiAgX191MzIgeTsKMTQ0NzQ6
IAoxNDQ3NDogIF9fdTMyIGdhbW1hX3NpemU7CjE0NDc0OiAgX191MzIgbW9kZV92YWxpZDsKMTQ0
NzQ6ICBzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8gbW9kZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX3NldF9w
bGFuZSB7CjE0NDc0OiAgX191MzIgcGxhbmVfaWQ7CjE0NDc0OiAgX191MzIgY3J0Y19pZDsKMTQ0
NzQ6ICBfX3UzMiBmYl9pZDsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgX19zMzIgY3J0Y194OwoxNDQ3NDogIF9fczMyIGNydGNfeTsKMTQ0NzQ6ICBfX3UzMiBj
cnRjX3c7CjE0NDc0OiAgX191MzIgY3J0Y19oOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3Uz
MiBzcmNfeDsKMTQ0NzQ6ICBfX3UzMiBzcmNfeTsKMTQ0NzQ6ICBfX3UzMiBzcmNfaDsKMTQ0NzQ6
ICBfX3UzMiBzcmNfdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9n
ZXRfcGxhbmUgewoxNDQ3NDogIF9fdTMyIHBsYW5lX2lkOwoxNDQ3NDogCjE0NDc0OiAgX191MzIg
Y3J0Y19pZDsKMTQ0NzQ6ICBfX3UzMiBmYl9pZDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIHBvc3Np
YmxlX2NydGNzOwoxNDQ3NDogIF9fdTMyIGdhbW1hX3NpemU7CjE0NDc0OiAKMTQ0NzQ6ICBfX3Uz
MiBjb3VudF9mb3JtYXRfdHlwZXM7CjE0NDc0OiAgX191NjQgZm9ybWF0X3R5cGVfcHRyOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2dldF9wbGFuZV9yZXMgewoxNDQ3
NDogIF9fdTY0IHBsYW5lX2lkX3B0cjsKMTQ0NzQ6ICBfX3UzMiBjb3VudF9wbGFuZXM7CjE0NDc0
OiB9OwoxNDQ3NDogIyAzMjIgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgoxNDQ3NDog
c3RydWN0IGRybV9tb2RlX2dldF9lbmNvZGVyIHsKMTQ0NzQ6ICBfX3UzMiBlbmNvZGVyX2lkOwox
NDQ3NDogIF9fdTMyIGVuY29kZXJfdHlwZTsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIGNydGNfaWQ7
CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBwb3NzaWJsZV9jcnRjczsKMTQ0NzQ6ICBfX3UzMiBwb3Nz
aWJsZV9jbG9uZXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBkcm1fbW9kZV9zdWJjb25uZWN0b3IgewoxNDQ3NDogIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9B
dXRvbWF0aWMgPSAwLAoxNDQ3NDogIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9Vbmtub3duID0gMCwK
MTQ0NzQ6ICBEUk1fTU9ERV9TVUJDT05ORUNUT1JfRFZJRCA9IDMsCjE0NDc0OiAgRFJNX01PREVf
U1VCQ09OTkVDVE9SX0RWSUEgPSA0LAoxNDQ3NDogIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9Db21w
b3NpdGUgPSA1LAoxNDQ3NDogIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9TVklERU8gPSA2LAoxNDQ3
NDogIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9Db21wb25lbnQgPSA4LAoxNDQ3NDogIERSTV9NT0RF
X1NVQkNPTk5FQ1RPUl9TQ0FSVCA9IDksCjE0NDc0OiB9OwoxNDQ3NDogIyAzNjYgIi4vaW5jbHVk
ZS91YXBpL2RybS9kcm1fbW9kZS5oIgoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2dldF9jb25uZWN0
b3IgewoxNDQ3NDogCjE0NDc0OiAgX191NjQgZW5jb2RlcnNfcHRyOwoxNDQ3NDogIF9fdTY0IG1v
ZGVzX3B0cjsKMTQ0NzQ6ICBfX3U2NCBwcm9wc19wdHI7CjE0NDc0OiAgX191NjQgcHJvcF92YWx1
ZXNfcHRyOwoxNDQ3NDogCjE0NDc0OiAgX191MzIgY291bnRfbW9kZXM7CjE0NDc0OiAgX191MzIg
Y291bnRfcHJvcHM7CjE0NDc0OiAgX191MzIgY291bnRfZW5jb2RlcnM7CjE0NDc0OiAKMTQ0NzQ6
ICBfX3UzMiBlbmNvZGVyX2lkOwoxNDQ3NDogIF9fdTMyIGNvbm5lY3Rvcl9pZDsKMTQ0NzQ6ICBf
X3UzMiBjb25uZWN0b3JfdHlwZTsKMTQ0NzQ6ICBfX3UzMiBjb25uZWN0b3JfdHlwZV9pZDsKMTQ0
NzQ6IAoxNDQ3NDogIF9fdTMyIGNvbm5lY3Rpb247CjE0NDc0OiAgX191MzIgbW1fd2lkdGg7CjE0
NDc0OiAgX191MzIgbW1faGVpZ2h0OwoxNDQ3NDogIF9fdTMyIHN1YnBpeGVsOwoxNDQ3NDogCjE0
NDc0OiAgX191MzIgcGFkOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNDE5ICIuL2luY2x1ZGUvdWFwaS9k
cm0vZHJtX21vZGUuaCIKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9wcm9wZXJ0eV9lbnVtIHsKMTQ0
NzQ6ICBfX3U2NCB2YWx1ZTsKMTQ0NzQ6ICBjaGFyIG5hbWVbMzJdOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2dldF9wcm9wZXJ0eSB7CjE0NDc0OiAgX191NjQgdmFs
dWVzX3B0cjsKMTQ0NzQ6ICBfX3U2NCBlbnVtX2Jsb2JfcHRyOwoxNDQ3NDogCjE0NDc0OiAgX191
MzIgcHJvcF9pZDsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6ICBjaGFyIG5hbWVbMzJdOwox
NDQ3NDogCjE0NDc0OiAgX191MzIgY291bnRfdmFsdWVzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBfX3UzMiBjb3VudF9lbnVtX2Jsb2JzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkgewoxNDQ3NDogIF9fdTY0IHZhbHVlOwox
NDQ3NDogIF9fdTMyIHByb3BfaWQ7CjE0NDc0OiAgX191MzIgY29ubmVjdG9yX2lkOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgNDU0ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKMTQ0NzQ6IHN0
cnVjdCBkcm1fbW9kZV9vYmpfZ2V0X3Byb3BlcnRpZXMgewoxNDQ3NDogIF9fdTY0IHByb3BzX3B0
cjsKMTQ0NzQ6ICBfX3U2NCBwcm9wX3ZhbHVlc19wdHI7CjE0NDc0OiAgX191MzIgY291bnRfcHJv
cHM7CjE0NDc0OiAgX191MzIgb2JqX2lkOwoxNDQ3NDogIF9fdTMyIG9ial90eXBlOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHkgewoxNDQ3
NDogIF9fdTY0IHZhbHVlOwoxNDQ3NDogIF9fdTMyIHByb3BfaWQ7CjE0NDc0OiAgX191MzIgb2Jq
X2lkOwoxNDQ3NDogIF9fdTMyIG9ial90eXBlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGRybV9tb2RlX2dldF9ibG9iIHsKMTQ0NzQ6ICBfX3UzMiBibG9iX2lkOwoxNDQ3NDogIF9f
dTMyIGxlbmd0aDsKMTQ0NzQ6ICBfX3U2NCBkYXRhOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGRybV9tb2RlX2ZiX2NtZCB7CjE0NDc0OiAgX191MzIgZmJfaWQ7CjE0NDc0OiAgX191
MzIgd2lkdGg7CjE0NDc0OiAgX191MzIgaGVpZ2h0OwoxNDQ3NDogIF9fdTMyIHBpdGNoOwoxNDQ3
NDogIF9fdTMyIGJwcDsKMTQ0NzQ6ICBfX3UzMiBkZXB0aDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMy
IGhhbmRsZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIHsKMTQ0NzQ6ICBfX3UzMiBmYl9pZDsKMTQ0NzQ6ICBf
X3UzMiB3aWR0aDsKMTQ0NzQ6ICBfX3UzMiBoZWlnaHQ7CjE0NDc0OiAgX191MzIgcGl4ZWxfZm9y
bWF0OwoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogIyA1MjAgIi4vaW5jbHVkZS91YXBpL2Ry
bS9kcm1fbW9kZS5oIgoxNDQ3NDogIF9fdTMyIGhhbmRsZXNbNF07CjE0NDc0OiAgX191MzIgcGl0
Y2hlc1s0XTsKMTQ0NzQ6ICBfX3UzMiBvZmZzZXRzWzRdOwoxNDQ3NDogIF9fdTY0IG1vZGlmaWVy
WzRdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTU5ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUu
aCIKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9mYl9kaXJ0eV9jbWQgewoxNDQ3NDogIF9fdTMyIGZi
X2lkOwoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogIF9fdTMyIGNvbG9yOwoxNDQ3NDogIF9f
dTMyIG51bV9jbGlwczsKMTQ0NzQ6ICBfX3U2NCBjbGlwc19wdHI7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVfbW9kZV9jbWQgewoxNDQ3NDogIF9fdTMyIGNvbm5lY3Rv
cl9pZDsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8gbW9kZTsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDU5MCAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCjE0NDc0OiBzdHJ1Y3Qg
ZHJtX21vZGVfY3Vyc29yIHsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6ICBfX3UzMiBjcnRj
X2lkOwoxNDQ3NDogIF9fczMyIHg7CjE0NDc0OiAgX19zMzIgeTsKMTQ0NzQ6ICBfX3UzMiB3aWR0
aDsKMTQ0NzQ6ICBfX3UzMiBoZWlnaHQ7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBoYW5kbGU7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVfY3Vyc29yMiB7CjE0NDc0OiAg
X191MzIgZmxhZ3M7CjE0NDc0OiAgX191MzIgY3J0Y19pZDsKMTQ0NzQ6ICBfX3MzMiB4OwoxNDQ3
NDogIF9fczMyIHk7CjE0NDc0OiAgX191MzIgd2lkdGg7CjE0NDc0OiAgX191MzIgaGVpZ2h0Owox
NDQ3NDogCjE0NDc0OiAgX191MzIgaGFuZGxlOwoxNDQ3NDogIF9fczMyIGhvdF94OwoxNDQ3NDog
IF9fczMyIGhvdF95OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2Ny
dGNfbHV0IHsKMTQ0NzQ6ICBfX3UzMiBjcnRjX2lkOwoxNDQ3NDogIF9fdTMyIGdhbW1hX3NpemU7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTY0IHJlZDsKMTQ0NzQ6ICBfX3U2NCBncmVlbjsK
MTQ0NzQ6ICBfX3U2NCBibHVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9j
b2xvcl9jdG0gewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191NjQg
bWF0cml4WzldOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9jb2xvcl9sdXQg
ewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MTYgcmVkOwoxNDQ3
NDogIF9fdTE2IGdyZWVuOwoxNDQ3NDogIF9fdTE2IGJsdWU7CjE0NDc0OiAgX191MTYgcmVzZXJ2
ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogIyA2NTIgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5o
IgoxNDQ3NDogc3RydWN0IGhkcl9tZXRhZGF0YV9pbmZvZnJhbWUgewoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191OCBlb3RmOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIF9fdTggbWV0YWRhdGFfdHlwZTsKMTQ0NzQ6ICMgNjcwICIuL2luY2x1ZGUvdWFw
aS9kcm0vZHJtX21vZGUuaCIKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICBfX3UxNiB4LCB5Owox
NDQ3NDogICB9IGRpc3BsYXlfcHJpbWFyaWVzWzNdOwoxNDQ3NDogIyA2ODEgIi4vaW5jbHVkZS91
YXBpL2RybS9kcm1fbW9kZS5oIgoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIF9fdTE2IHgsIHk7
CjE0NDc0OiAgIH0gd2hpdGVfcG9pbnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIF9fdTE2IG1heF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2U7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191
MTYgbWluX2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MTYgbWF4X2NsbDsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MTYgbWF4X2ZhbGw7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGhkcl9vdXRwdXRfbWV0YWRhdGEgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIF9fdTMyIG1ldGFkYXRhX3R5cGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgaGRyX21ldGFkYXRhX2luZm9mcmFtZSBoZG1pX21ldGFk
YXRhX3R5cGUxOwoxNDQ3NDogIH07CjE0NDc0OiB9OwoxNDQ3NDogIyA3NjMgIi4vaW5jbHVkZS91
YXBpL2RybS9kcm1fbW9kZS5oIgoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2NydGNfcGFnZV9mbGlw
IHsKMTQ0NzQ6ICBfX3UzMiBjcnRjX2lkOwoxNDQ3NDogIF9fdTMyIGZiX2lkOwoxNDQ3NDogIF9f
dTMyIGZsYWdzOwoxNDQ3NDogIF9fdTMyIHJlc2VydmVkOwoxNDQ3NDogIF9fdTY0IHVzZXJfZGF0
YTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDc5MSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgi
CjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVfY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0IHsKMTQ0NzQ6ICBf
X3UzMiBjcnRjX2lkOwoxNDQ3NDogIF9fdTMyIGZiX2lkOwoxNDQ3NDogIF9fdTMyIGZsYWdzOwox
NDQ3NDogIF9fdTMyIHNlcXVlbmNlOwoxNDQ3NDogIF9fdTY0IHVzZXJfZGF0YTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iIHsKMTQ0
NzQ6ICBfX3UzMiBoZWlnaHQ7CjE0NDc0OiAgX191MzIgd2lkdGg7CjE0NDc0OiAgX191MzIgYnBw
OwoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogCjE0NDc0OiAgX191MzIgaGFuZGxlOwoxNDQ3
NDogIF9fdTMyIHBpdGNoOwoxNDQ3NDogIF9fdTY0IHNpemU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9tYXBfZHVtYiB7CjE0NDc0OiAKMTQ0NzQ6ICBf
X3UzMiBoYW5kbGU7CjE0NDc0OiAgX191MzIgcGFkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3U2NCBvZmZzZXQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZHJtX21vZGVfZGVzdHJveV9kdW1iIHsKMTQ0NzQ6ICBfX3UzMiBoYW5kbGU7
CjE0NDc0OiB9OwoxNDQ3NDogIyA4NDAgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgox
NDQ3NDogc3RydWN0IGRybV9tb2RlX2F0b21pYyB7CjE0NDc0OiAgX191MzIgZmxhZ3M7CjE0NDc0
OiAgX191MzIgY291bnRfb2JqczsKMTQ0NzQ6ICBfX3U2NCBvYmpzX3B0cjsKMTQ0NzQ6ICBfX3U2
NCBjb3VudF9wcm9wc19wdHI7CjE0NDc0OiAgX191NjQgcHJvcHNfcHRyOwoxNDQ3NDogIF9fdTY0
IHByb3BfdmFsdWVzX3B0cjsKMTQ0NzQ6ICBfX3U2NCByZXNlcnZlZDsKMTQ0NzQ6ICBfX3U2NCB1
c2VyX2RhdGE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2Rp
Zmllcl9ibG9iIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgdmVyc2lvbjsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgZmxhZ3M7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9f
dTMyIGNvdW50X2Zvcm1hdHM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIGZvcm1hdHNf
b2Zmc2V0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBjb3VudF9tb2RpZmllcnM7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIG1vZGlmaWVyc19vZmZzZXQ7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2Zvcm1hdF9t
b2RpZmllciB7CjE0NDc0OiAjIDg5MyAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCjE0
NDc0OiAgX191NjQgZm9ybWF0czsKMTQ0NzQ6ICBfX3UzMiBvZmZzZXQ7CjE0NDc0OiAgX191MzIg
cGFkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3U2NCBtb2RpZmllcjsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDkwOSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCjE0NDc0OiBzdHJ1Y3Qg
ZHJtX21vZGVfY3JlYXRlX2Jsb2IgewoxNDQ3NDogCjE0NDc0OiAgX191NjQgZGF0YTsKMTQ0NzQ6
IAoxNDQ3NDogIF9fdTMyIGxlbmd0aDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIGJsb2JfaWQ7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRybV9tb2RlX2Rlc3Ryb3lfYmxvYiB7CjE0NDc0OiAgX191MzIgYmxvYl9p
ZDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDkzNiAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgi
CjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2xlYXNlIHsKMTQ0NzQ6IAoxNDQ3NDogIF9f
dTY0IG9iamVjdF9pZHM7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBvYmplY3RfY291bnQ7CjE0NDc0
OiAKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgbGVz
c2VlX2lkOwoxNDQ3NDogCjE0NDc0OiAgX191MzIgZmQ7CjE0NDc0OiB9OwoxNDQ3NDogIyA5NTcg
Ii4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2xp
c3RfbGVzc2VlcyB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBjb3VudF9sZXNzZWVzOwoxNDQ3NDogIF9fdTMyIHBh
ZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTY0IGxlc3NlZXNf
cHRyOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTgxICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUu
aCIKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9nZXRfbGVhc2UgewoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgY291bnRf
b2JqZWN0czsKMTQ0NzQ6ICBfX3UzMiBwYWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBfX3U2NCBvYmplY3RzX3B0cjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVfcmV2
b2tlX2xlYXNlIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgbGVzc2VlX2lkOwoxNDQ3
NDogfTsKMTQ0NzQ6ICMgMTAyMSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCjE0NDc0
OiBzdHJ1Y3QgZHJtX21vZGVfcmVjdCB7CjE0NDc0OiAgX19zMzIgeDE7CjE0NDc0OiAgX19zMzIg
eTE7CjE0NDc0OiAgX19zMzIgeDI7CjE0NDc0OiAgX19zMzIgeTI7CjE0NDc0OiB9OwoxNDQ3NDog
IyA4MTcgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIgMgoxNDQ3NDogIyA5NzQgIi4vaW5jbHVk
ZS91YXBpL2RybS9kcm0uaCIKMTQ0NzQ6IHN0cnVjdCBkcm1fZXZlbnQgewoxNDQ3NDogIF9fdTMy
IHR5cGU7CjE0NDc0OiAgX191MzIgbGVuZ3RoOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2V2ZW50X3ZibGFuayB7CjE0
NDc0OiAgc3RydWN0IGRybV9ldmVudCBiYXNlOwoxNDQ3NDogIF9fdTY0IHVzZXJfZGF0YTsKMTQ0
NzQ6ICBfX3UzMiB0dl9zZWM7CjE0NDc0OiAgX191MzIgdHZfdXNlYzsKMTQ0NzQ6ICBfX3UzMiBz
ZXF1ZW5jZTsKMTQ0NzQ6ICBfX3UzMiBjcnRjX2lkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9ldmVudF9jcnRjX3NlcXVlbmNlIHsK
MTQ0NzQ6ICBzdHJ1Y3QgZHJtX2V2ZW50IGJhc2U7CjE0NDc0OiAgX191NjQgdXNlcl9kYXRhOwox
NDQ3NDogIF9fczY0IHRpbWVfbnM7CjE0NDc0OiAgX191NjQgc2VxdWVuY2U7CjE0NDc0OiB9Owox
NDQ3NDogIyAzNiAiLi9pbmNsdWRlL2RybS9kcm1fcHJpbnQuaCIgMgoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgX19kcm1fZGVidWc7CjE0NDc0OiAjIDc1ICIuL2lu
Y2x1ZGUvZHJtL2RybV9wcmludC5oIgoxNDQ3NDogc3RydWN0IGRybV9wcmludGVyIHsKMTQ0NzQ6
IAoxNDQ3NDogIHZvaWQgKCpwcmludGZuKShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIHN0cnVjdCB2
YV9mb3JtYXQgKnZhZik7CjE0NDc0OiAgdm9pZCAoKnB1dHMpKHN0cnVjdCBkcm1fcHJpbnRlciAq
cCwgY29uc3QgY2hhciAqc3RyKTsKMTQ0NzQ6ICB2b2lkICphcmc7CjE0NDc0OiAgY29uc3QgY2hh
ciAqcHJlZml4OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBfX2RybV9wcmludGZuX2Nv
cmVkdW1wKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKTsKMTQ0
NzQ6IHZvaWQgX19kcm1fcHV0c19jb3JlZHVtcChzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIGNvbnN0
IGNoYXIgKnN0cik7CjE0NDc0OiB2b2lkIF9fZHJtX3ByaW50Zm5fc2VxX2ZpbGUoc3RydWN0IGRy
bV9wcmludGVyICpwLCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpOwoxNDQ3NDogdm9pZCBfX2RybV9w
dXRzX3NlcV9maWxlKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgY29uc3QgY2hhciAqc3RyKTsKMTQ0
NzQ6IHZvaWQgX19kcm1fcHJpbnRmbl9pbmZvKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0
IHZhX2Zvcm1hdCAqdmFmKTsKMTQ0NzQ6IHZvaWQgX19kcm1fcHJpbnRmbl9kZWJ1ZyhzdHJ1Y3Qg
ZHJtX3ByaW50ZXIgKnAsIHN0cnVjdCB2YV9mb3JtYXQgKnZhZik7CjE0NDc0OiB2b2lkIF9fZHJt
X3ByaW50Zm5fZXJyKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0IHZhX2Zvcm1hdCAqdmFm
KTsKMTQ0NzQ6IAoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMp
KSkKMTQ0NzQ6IHZvaWQgZHJtX3ByaW50ZihzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIGNvbnN0IGNo
YXIgKmYsIC4uLik7CjE0NDc0OiB2b2lkIGRybV9wdXRzKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwg
Y29uc3QgY2hhciAqc3RyKTsKMTQ0NzQ6IHZvaWQgZHJtX3ByaW50X3JlZ3NldDMyKHN0cnVjdCBk
cm1fcHJpbnRlciAqcCwgc3RydWN0IGRlYnVnZnNfcmVnc2V0MzIgKnJlZ3NldCk7CjE0NDc0OiB2
b2lkIGRybV9wcmludF9iaXRzKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgdW5zaWduZWQgbG9uZyB2
YWx1ZSwKMTQ0NzQ6ICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCBiaXRzW10sIHVuc2lnbmVkIGlu
dCBuYml0cyk7CjE0NDc0OiAKMTQ0NzQ6IF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRm
LCAyLCAwKSkpCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkCjE0NDc0OiBkcm1fdnByaW50ZihzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIGNv
bnN0IGNoYXIgKmZtdCwgdmFfbGlzdCAqdmEpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IHZhX2Zv
cm1hdCB2YWYgPSB7IC5mbXQgPSBmbXQsIC52YSA9IHZhIH07CjE0NDc0OiAKMTQ0NzQ6ICBwLT5w
cmludGZuKHAsICZ2YWYpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMjggIi4vaW5jbHVkZS9kcm0vZHJt
X3ByaW50LmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX3ByaW50X2l0ZXJhdG9yIHsKMTQ0NzQ6ICB2b2lk
ICpkYXRhOwoxNDQ3NDogIHNzaXplX3Qgc3RhcnQ7CjE0NDc0OiAgc3NpemVfdCByZW1haW47CjE0
NDc0OiAKMTQ0NzQ6ICBzc2l6ZV90IG9mZnNldDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDE3MiAiLi9p
bmNsdWRlL2RybS9kcm1fcHJpbnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkcm1fcHJpbnRlcgoxNDQ3NDog
ZHJtX2NvcmVkdW1wX3ByaW50ZXIoc3RydWN0IGRybV9wcmludF9pdGVyYXRvciAqaXRlcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IHsKMTQ0NzQ6ICAgLnByaW50Zm4g
PSBfX2RybV9wcmludGZuX2NvcmVkdW1wLAoxNDQ3NDogICAucHV0cyA9IF9fZHJtX3B1dHNfY29y
ZWR1bXAsCjE0NDc0OiAgIC5hcmcgPSBpdGVyLAoxNDQ3NDogIH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIGl0ZXItPm9mZnNldCA9IDA7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gcDsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMTk0ICIuL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGRybV9wcmludGVyIGRybV9zZXFfZmlsZV9wcmludGVyKHN0cnVjdCBzZXFfZmlsZSAqZikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IHsKMTQ0NzQ6ICAgLnByaW50Zm4g
PSBfX2RybV9wcmludGZuX3NlcV9maWxlLAoxNDQ3NDogICAucHV0cyA9IF9fZHJtX3B1dHNfc2Vx
X2ZpbGUsCjE0NDc0OiAgIC5hcmcgPSBmLAoxNDQ3NDogIH07CjE0NDc0OiAgcmV0dXJuIHA7CjE0
NDc0OiB9CjE0NDc0OiAjIDIxMSAiLi9pbmNsdWRlL2RybS9kcm1fcHJpbnQuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0
cnVjdCBkcm1fcHJpbnRlciBkcm1faW5mb19wcmludGVyKHN0cnVjdCBkZXZpY2UgKmRldikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IHsKMTQ0NzQ6ICAgLnByaW50Zm4g
PSBfX2RybV9wcmludGZuX2luZm8sCjE0NDc0OiAgIC5hcmcgPSBkZXYsCjE0NDc0OiAgfTsKMTQ0
NzQ6ICByZXR1cm4gcDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjI3ICIuL2luY2x1ZGUvZHJtL2RybV9w
cmludC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRybV9wcmludGVyIGRybV9kZWJ1Z19wcmludGVyKGNvbnN0
IGNoYXIgKnByZWZpeCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IHsK
MTQ0NzQ6ICAgLnByaW50Zm4gPSBfX2RybV9wcmludGZuX2RlYnVnLAoxNDQ3NDogICAucHJlZml4
ID0gcHJlZml4CjE0NDc0OiAgfTsKMTQ0NzQ6ICByZXR1cm4gcDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MjQzICIuL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRybV9wcmludGVy
IGRybV9lcnJfcHJpbnRlcihjb25zdCBjaGFyICpwcmVmaXgpCjE0NDc0OiB7CjE0NDc0OiAgc3Ry
dWN0IGRybV9wcmludGVyIHAgPSB7CjE0NDc0OiAgIC5wcmludGZuID0gX19kcm1fcHJpbnRmbl9l
cnIsCjE0NDc0OiAgIC5wcmVmaXggPSBwcmVmaXgKMTQ0NzQ6ICB9OwoxNDQ3NDogIHJldHVybiBw
OwoxNDQ3NDogfQoxNDQ3NDogIyAyNzcgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiCjE0NDc0
OiBlbnVtIGRybV9kZWJ1Z19jYXRlZ29yeSB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBEUk1fVVRfQ09SRSA9IDB4MDEsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBEUk1fVVRfRFJJVkVSID0gMHgwMiwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBEUk1fVVRfS01TID0gMHgwNCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBEUk1fVVRfUFJJTUUgPSAweDA4LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IERSTV9VVF9BVE9NSUMgPSAweDEwLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERS
TV9VVF9WQkwgPSAweDIwLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERSTV9VVF9T
VEFURSA9IDB4NDAsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRFJNX1VUX0xFQVNF
ID0gMHg4MCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBEUk1fVVRfRFAgPSAweDEw
MCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZHJtX2RlYnVnX2VuYWJsZWQoZW51bSBk
cm1fZGVidWdfY2F0ZWdvcnkgY2F0ZWdvcnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fYnVp
bHRpbl9leHBlY3QoISEoX19kcm1fZGVidWcgJiBjYXRlZ29yeSksIDApOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKQoxNDQ3NDogdm9pZCBk
cm1fZGV2X3ByaW50ayhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmxldmVs
LAoxNDQ3NDogICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pOwoxNDQ3NDogX19hdHRyaWJ1
dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKMTQ0NzQ6IHZvaWQgZHJtX2Rldl9kYmco
Y29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBlbnVtIGRybV9kZWJ1Z19jYXRlZ29yeSBjYXRlZ29y
eSwKMTQ0NzQ6ICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKMTQ0NzQ6ICMgNDg5ICIuL2lu
Y2x1ZGUvZHJtL2RybV9wcmludC5oIgoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhw
cmludGYsIDIsIDMpKSkKMTQ0NzQ6IHZvaWQgX19kcm1fZGJnKGVudW0gZHJtX2RlYnVnX2NhdGVn
b3J5IGNhdGVnb3J5LCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7CjE0NDc0OiBfX2F0dHJpYnV0
ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMikpKQoxNDQ3NDogdm9pZCBfX2RybV9lcnIoY29u
c3QgY2hhciAqZm9ybWF0LCAuLi4pOwoxNDQ3NDogIyAzOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL29zX3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvY2dzX2NvbW1vbi5oIiAxCjE0
NDc0OiAjIDI3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvY2dzX2Nv
bW1vbi5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1
ZGUvYW1kX3NoYXJlZC5oIiAxCjE0NDc0OiAjIDI2ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2luY2x1ZGUvYW1kX3NoYXJlZC5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvZHJtL2Ft
ZF9hc2ljX3R5cGUuaCIgMQoxNDQ3NDogIyAyOCAiLi9pbmNsdWRlL2RybS9hbWRfYXNpY190eXBl
LmgiCjE0NDc0OiBlbnVtIGFtZF9hc2ljX3R5cGUgewoxNDQ3NDogIENISVBfVEFISVRJID0gMCwK
MTQ0NzQ6ICBDSElQX1BJVENBSVJOLAoxNDQ3NDogIENISVBfVkVSREUsCjE0NDc0OiAgQ0hJUF9P
TEFORCwKMTQ0NzQ6ICBDSElQX0hBSU5BTiwKMTQ0NzQ6ICBDSElQX0JPTkFJUkUsCjE0NDc0OiAg
Q0hJUF9LQVZFUkksCjE0NDc0OiAgQ0hJUF9LQUJJTkksCjE0NDc0OiAgQ0hJUF9IQVdBSUksCjE0
NDc0OiAgQ0hJUF9NVUxMSU5TLAoxNDQ3NDogIENISVBfVE9QQVosCjE0NDc0OiAgQ0hJUF9UT05H
QSwKMTQ0NzQ6ICBDSElQX0ZJSkksCjE0NDc0OiAgQ0hJUF9DQVJSSVpPLAoxNDQ3NDogIENISVBf
U1RPTkVZLAoxNDQ3NDogIENISVBfUE9MQVJJUzEwLAoxNDQ3NDogIENISVBfUE9MQVJJUzExLAox
NDQ3NDogIENISVBfUE9MQVJJUzEyLAoxNDQ3NDogIENISVBfVkVHQU0sCjE0NDc0OiAgQ0hJUF9W
RUdBMTAsCjE0NDc0OiAgQ0hJUF9WRUdBMTIsCjE0NDc0OiAgQ0hJUF9WRUdBMjAsCjE0NDc0OiAg
Q0hJUF9SQVZFTiwKMTQ0NzQ6ICBDSElQX0FSQ1RVUlVTLAoxNDQ3NDogIENISVBfUkVOT0lSLAox
NDQ3NDogIENISVBfTkFWSTEwLAoxNDQ3NDogIENISVBfTkFWSTE0LAoxNDQ3NDogIENISVBfTkFW
STEyLAoxNDQ3NDogIENISVBfTEFTVCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBj
b25zdCBjaGFyICphbWRncHVfYXNpY19uYW1lW107CjE0NDc0OiAjIDI3ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYW1kX3NoYXJlZC5oIiAyCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYW1k
X2NoaXBfZmxhZ3MgewoxNDQ3NDogIEFNRF9BU0lDX01BU0sgPSAweDAwMDBmZmZmVUwsCjE0NDc0
OiAgQU1EX0ZMQUdTX01BU0sgPSAweGZmZmYwMDAwVUwsCjE0NDc0OiAgQU1EX0lTX01PQklMSVRZ
ID0gMHgwMDAxMDAwMFVMLAoxNDQ3NDogIEFNRF9JU19BUFUgPSAweDAwMDIwMDAwVUwsCjE0NDc0
OiAgQU1EX0lTX1BYID0gMHgwMDA0MDAwMFVMLAoxNDQ3NDogIEFNRF9FWFBfSFdfU1VQUE9SVCA9
IDB4MDAwODAwMDBVTCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYW1kX2lwX2Jsb2Nr
X3R5cGUgewoxNDQ3NDogIEFNRF9JUF9CTE9DS19UWVBFX0NPTU1PTiwKMTQ0NzQ6ICBBTURfSVBf
QkxPQ0tfVFlQRV9HTUMsCjE0NDc0OiAgQU1EX0lQX0JMT0NLX1RZUEVfSUgsCjE0NDc0OiAgQU1E
X0lQX0JMT0NLX1RZUEVfU01DLAoxNDQ3NDogIEFNRF9JUF9CTE9DS19UWVBFX1BTUCwKMTQ0NzQ6
ICBBTURfSVBfQkxPQ0tfVFlQRV9EQ0UsCjE0NDc0OiAgQU1EX0lQX0JMT0NLX1RZUEVfR0ZYLAox
NDQ3NDogIEFNRF9JUF9CTE9DS19UWVBFX1NETUEsCjE0NDc0OiAgQU1EX0lQX0JMT0NLX1RZUEVf
VVZELAoxNDQ3NDogIEFNRF9JUF9CTE9DS19UWVBFX1ZDRSwKMTQ0NzQ6ICBBTURfSVBfQkxPQ0tf
VFlQRV9BQ1AsCjE0NDc0OiAgQU1EX0lQX0JMT0NLX1RZUEVfVkNOLAoxNDQ3NDogIEFNRF9JUF9C
TE9DS19UWVBFX01FUywKMTQ0NzQ6ICBBTURfSVBfQkxPQ0tfVFlQRV9KUEVHCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBlbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSB7CjE0NDc0OiAgQU1EX0NH
X1NUQVRFX0dBVEUgPSAwLAoxNDQ3NDogIEFNRF9DR19TVEFURV9VTkdBVEUsCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYW1kX3Bvd2VyZ2F0aW5nX3N0YXRlIHsKMTQ0NzQ6
ICBBTURfUEdfU1RBVEVfR0FURSA9IDAsCjE0NDc0OiAgQU1EX1BHX1NUQVRFX1VOR0FURSwKMTQ0
NzQ6IH07CjE0NDc0OiAjIDEyNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNs
dWRlL2FtZF9zaGFyZWQuaCIKMTQ0NzQ6IGVudW0gUFBfRkVBVFVSRV9NQVNLIHsKMTQ0NzQ6ICBQ
UF9TQ0xLX0RQTV9NQVNLID0gMHgxLAoxNDQ3NDogIFBQX01DTEtfRFBNX01BU0sgPSAweDIsCjE0
NDc0OiAgUFBfUENJRV9EUE1fTUFTSyA9IDB4NCwKMTQ0NzQ6ICBQUF9TQ0xLX0RFRVBfU0xFRVBf
TUFTSyA9IDB4OCwKMTQ0NzQ6ICBQUF9QT1dFUl9DT05UQUlOTUVOVF9NQVNLID0gMHgxMCwKMTQ0
NzQ6ICBQUF9VVkRfSEFORFNIQUtFX01BU0sgPSAweDIwLAoxNDQ3NDogIFBQX1NNQ19WT0xUQUdF
X0NPTlRST0xfTUFTSyA9IDB4NDAsCjE0NDc0OiAgUFBfVkJJX1RJTUVfU1VQUE9SVF9NQVNLID0g
MHg4MCwKMTQ0NzQ6ICBQUF9VTFZfTUFTSyA9IDB4MTAwLAoxNDQ3NDogIFBQX0VOQUJMRV9HRlhf
Q0dfVEhSVV9TTVUgPSAweDIwMCwKMTQ0NzQ6ICBQUF9DTE9DS19TVFJFVENIX01BU0sgPSAweDQw
MCwKMTQ0NzQ6ICBQUF9PRF9GVVpaWV9GQU5fQ09OVFJPTF9NQVNLID0gMHg4MDAsCjE0NDc0OiAg
UFBfU09DQ0xLX0RQTV9NQVNLID0gMHgxMDAwLAoxNDQ3NDogIFBQX0RDRUZDTEtfRFBNX01BU0sg
PSAweDIwMDAsCjE0NDc0OiAgUFBfT1ZFUkRSSVZFX01BU0sgPSAweDQwMDAsCjE0NDc0OiAgUFBf
R0ZYT0ZGX01BU0sgPSAweDgwMDAsCjE0NDc0OiAgUFBfQUNHX01BU0sgPSAweDEwMDAwLAoxNDQ3
NDogIFBQX1NUVVRURVJfTU9ERSA9IDB4MjAwMDAsCjE0NDc0OiAgUFBfQVZGU19NQVNLID0gMHg0
MDAwMCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gRENfRkVBVFVSRV9NQVNLIHsKMTQ0
NzQ6ICBEQ19GQkNfTUFTSyA9IDB4MSwKMTQ0NzQ6ICBEQ19NVUxUSV9NT05fUFBfTUNMS19TV0lU
Q0hfTUFTSyA9IDB4MiwKMTQ0NzQ6ICBEQ19ESVNBQkxFX0ZSQUNUSU9OQUxfUFdNX01BU0sgPSAw
eDQsCjE0NDc0OiAgRENfUFNSX01BU0sgPSAweDgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBl
bnVtIGFtZF9kcG1fZm9yY2VkX2xldmVsOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGFtZF9pcF9mdW5jcyB7CjE0NDc0OiAKMTQ0NzQ6ICBjaGFyICpuYW1lOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKmVh
cmx5X2luaXQpKHZvaWQgKmhhbmRsZSk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpsYXRlX2luaXQp
KHZvaWQgKmhhbmRsZSk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpzd19pbml0KSh2b2lkICpoYW5k
bGUpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqc3dfZmluaSkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6
IAoxNDQ3NDogIGludCAoKmh3X2luaXQpKHZvaWQgKmhhbmRsZSk7CjE0NDc0OiAKMTQ0NzQ6ICBp
bnQgKCpod19maW5pKSh2b2lkICpoYW5kbGUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmxhdGVf
ZmluaSkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKnN1c3BlbmQpKHZvaWQg
KmhhbmRsZSk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpyZXN1bWUpKHZvaWQgKmhhbmRsZSk7CjE0
NDc0OiAKMTQ0NzQ6ICBib29sICgqaXNfaWRsZSkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6IAoxNDQ3
NDogIGludCAoKndhaXRfZm9yX2lkbGUpKHZvaWQgKmhhbmRsZSk7CjE0NDc0OiAKMTQ0NzQ6ICBi
b29sICgqY2hlY2tfc29mdF9yZXNldCkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6IAoxNDQ3NDogIGlu
dCAoKnByZV9zb2Z0X3Jlc2V0KSh2b2lkICpoYW5kbGUpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgq
c29mdF9yZXNldCkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKnBvc3Rfc29m
dF9yZXNldCkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKnNldF9jbG9ja2dh
dGluZ19zdGF0ZSkodm9pZCAqaGFuZGxlLAoxNDQ3NDogICAgICAgICAgZW51bSBhbWRfY2xvY2tn
YXRpbmdfc3RhdGUgc3RhdGUpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqc2V0X3Bvd2VyZ2F0aW5n
X3N0YXRlKSh2b2lkICpoYW5kbGUsCjE0NDc0OiAgICAgICAgICBlbnVtIGFtZF9wb3dlcmdhdGlu
Z19zdGF0ZSBzdGF0ZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZ2V0X2Nsb2NrZ2F0aW5nX3N0
YXRlKSh2b2lkICpoYW5kbGUsIHUzMiAqZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqZW5h
YmxlX3VtZF9wc3RhdGUpKHZvaWQgKmhhbmRsZSwgZW51bSBhbWRfZHBtX2ZvcmNlZF9sZXZlbCAq
bGV2ZWwpOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vaW5jbHVkZS9jZ3NfY29tbW9uLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNnc19k
ZXZpY2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gY2dzX2lu
ZF9yZWcgewoxNDQ3NDogIENHU19JTkRfUkVHX19NTUlPLAoxNDQ3NDogIENHU19JTkRfUkVHX19Q
Q0lFLAoxNDQ3NDogIENHU19JTkRfUkVHX19TTUMsCjE0NDc0OiAgQ0dTX0lORF9SRUdfX1VWRF9D
VFgsCjE0NDc0OiAgQ0dTX0lORF9SRUdfX0RJRFQsCjE0NDc0OiAgQ0dTX0lORF9SRUdfR0NfQ0FD
LAoxNDQ3NDogIENHU19JTkRfUkVHX1NFX0NBQywKMTQ0NzQ6ICBDR1NfSU5EX1JFR19fQVVESU9f
RU5EUFQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gY2dzX3Vjb2RlX2lkIHsKMTQ0NzQ6ICBDR1NfVUNPREVfSURfU01VID0gMCwKMTQ0NzQ6ICBD
R1NfVUNPREVfSURfU01VX1NLLAoxNDQ3NDogIENHU19VQ09ERV9JRF9TRE1BMCwKMTQ0NzQ6ICBD
R1NfVUNPREVfSURfU0RNQTEsCjE0NDc0OiAgQ0dTX1VDT0RFX0lEX0NQX0NFLAoxNDQ3NDogIENH
U19VQ09ERV9JRF9DUF9QRlAsCjE0NDc0OiAgQ0dTX1VDT0RFX0lEX0NQX01FLAoxNDQ3NDogIENH
U19VQ09ERV9JRF9DUF9NRUMsCjE0NDc0OiAgQ0dTX1VDT0RFX0lEX0NQX01FQ19KVDEsCjE0NDc0
OiAgQ0dTX1VDT0RFX0lEX0NQX01FQ19KVDIsCjE0NDc0OiAgQ0dTX1VDT0RFX0lEX0dNQ09OX1JF
TkcsCjE0NDc0OiAgQ0dTX1VDT0RFX0lEX1JMQ19HLAoxNDQ3NDogIENHU19VQ09ERV9JRF9TVE9S
QUdFLAoxNDQ3NDogIENHU19VQ09ERV9JRF9NQVhJTVVNLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNnc19maXJtd2FyZV9pbmZvIHsKMTQ0
NzQ6ICB1aW50MTZfdCB2ZXJzaW9uOwoxNDQ3NDogIHVpbnQxNl90IGZ3X3ZlcnNpb247CjE0NDc0
OiAgdWludDE2X3QgZmVhdHVyZV92ZXJzaW9uOwoxNDQ3NDogIHVpbnQzMl90IGltYWdlX3NpemU7
CjE0NDc0OiAgdWludDY0X3QgbWNfYWRkcjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMy
X3QgdWNvZGVfc3RhcnRfYWRkcmVzczsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKmtwdHI7CjE0NDc0
OiAgYm9vbCBpc19raWNrZXI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHVuc2ln
bmVkIGxvbmcgY2dzX2hhbmRsZV90OwoxNDQ3NDogIyA5MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9pbmNsdWRlL2Nnc19jb21tb24uaCIKMTQ0NzQ6IHR5cGVkZWYgdWludDMyX3Qg
KCpjZ3NfcmVhZF9yZWdpc3Rlcl90KShzdHJ1Y3QgY2dzX2RldmljZSAqY2dzX2RldmljZSwgdW5z
aWduZWQgb2Zmc2V0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB2b2lkICgqY2dzX3dyaXRlX3JlZ2lzdGVyX3Qp
KHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNlLCB1bnNpZ25lZCBvZmZzZXQsCjE0NDc0OiAg
ICAgICAgICB1aW50MzJfdCB2YWx1ZSk7CjE0NDc0OiAjIDEwOSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9pbmNsdWRlL2Nnc19jb21tb24uaCIKMTQ0NzQ6IHR5cGVkZWYgdWludDMy
X3QgKCpjZ3NfcmVhZF9pbmRfcmVnaXN0ZXJfdCkoc3RydWN0IGNnc19kZXZpY2UgKmNnc19kZXZp
Y2UsIGVudW0gY2dzX2luZF9yZWcgc3BhY2UsCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBpbmRl
eCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgdm9pZCAoKmNnc193cml0ZV9pbmRfcmVnaXN0ZXJfdCkoc3RydWN0
IGNnc19kZXZpY2UgKmNnc19kZXZpY2UsIGVudW0gY2dzX2luZF9yZWcgc3BhY2UsCjE0NDc0OiAg
ICAgICB1bnNpZ25lZCBpbmRleCwgdWludDMyX3QgdmFsdWUpOwoxNDQ3NDogIyAxMzcgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9jZ3NfY29tbW9uLmgiCjE0NDc0OiB0
eXBlZGVmIGludCAoKmNnc19nZXRfZmlybXdhcmVfaW5mbykoc3RydWN0IGNnc19kZXZpY2UgKmNn
c19kZXZpY2UsCjE0NDc0OiAgICAgICAgICBlbnVtIGNnc191Y29kZV9pZCB0eXBlLAoxNDQ3NDog
ICAgICAgICAgc3RydWN0IGNnc19maXJtd2FyZV9pbmZvICppbmZvKTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGNnc19vcHMgewoxNDQ3NDogCjE0NDc0OiAgY2dzX3JlYWRfcmVnaXN0ZXJfdCByZWFk
X3JlZ2lzdGVyOwoxNDQ3NDogIGNnc193cml0ZV9yZWdpc3Rlcl90IHdyaXRlX3JlZ2lzdGVyOwox
NDQ3NDogIGNnc19yZWFkX2luZF9yZWdpc3Rlcl90IHJlYWRfaW5kX3JlZ2lzdGVyOwoxNDQ3NDog
IGNnc193cml0ZV9pbmRfcmVnaXN0ZXJfdCB3cml0ZV9pbmRfcmVnaXN0ZXI7CjE0NDc0OiAKMTQ0
NzQ6ICBjZ3NfZ2V0X2Zpcm13YXJlX2luZm8gZ2V0X2Zpcm13YXJlX2luZm87CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY2dzX29zX29wczsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNn
c19kZXZpY2UKMTQ0NzQ6IHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgY2dzX29wcyAqb3BzOwoxNDQ3
NDogCjE0NDc0OiB9OwoxNDQ3NDogIyA0MCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL29zX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgNTUgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9vc190eXBlcy5oIgoxNDQ3NDogIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2ZwdS9hcGkuaCIgMQoxNDQ3NDogIyAyMiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9mcHUvYXBpLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBrZXJuZWxfZnB1X2JlZ2luKHZv
aWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQga2VybmVsX2ZwdV9lbmQodm9pZCk7CjE0NDc0OiBleHRl
cm4gYm9vbCBpcnFfZnB1X3VzYWJsZSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGZwcmVnc19t
YXJrX2FjdGl2YXRlKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGZwcmVnc19sb2NrKHZvaWQpCjE0NDc0OiB7
CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICBs
b2NhbF9iaF9kaXNhYmxlKCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZnByZWdzX3Vu
bG9jayh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGxvY2FsX2JoX2VuYWJsZSgpOwoxNDQ3NDogIF9f
YXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZnByZWdzX2Fzc2VydF9zdGF0ZV9jb25zaXN0ZW50KHZv
aWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzd2l0Y2hfZnB1X3JldHVybih2b2lkKTsKMTQ0NzQ6ICMg
NjMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L2FwaS5oIgoxNDQ3NDogZXh0ZXJuIGludCBj
cHVfaGFzX3hmZWF0dXJlcyh1NjQgeGZlYXR1cmVzX21hc2ssIGNvbnN0IGNoYXIgKipmZWF0dXJl
X25hbWUpOwoxNDQ3NDogIyA1NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL29zX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5oIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIgMQoxNDQ3
NDogIyA1NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUv
Zml4ZWQzMV8zMi5oIgoxNDQ3NDogc3RydWN0IGZpeGVkMzFfMzIgewoxNDQ3NDogIGxvbmcgbG9u
ZyB2YWx1ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBk
Y19maXhwdF96ZXJvID0geyAwIH07CjE0NDc0OiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpeGVkMzFf
MzIgZGNfZml4cHRfZXBzaWxvbiA9IHsgMUxMIH07CjE0NDc0OiBzdGF0aWMgY29uc3Qgc3RydWN0
IGZpeGVkMzFfMzIgZGNfZml4cHRfaGFsZiA9IHsgMHg4MDAwMDAwMExMIH07CjE0NDc0OiBzdGF0
aWMgY29uc3Qgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfb25lID0geyAweDEwMDAwMDAwMExM
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhw
dF9waSA9IHsgMTM0OTMwMzc3MDVMTCB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBmaXhl
ZDMxXzMyIGRjX2ZpeHB0X3R3b19waSA9IHsgMjY5ODYwNzU0MDlMTCB9OwoxNDQ3NDogc3RhdGlj
IGNvbnN0IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X2UgPSB7IDExNjc0OTMxNTU1TEwgfTsK
MTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9sbjIgPSB7IDI5
NzcwNDQ0NzFMTCB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2Zp
eHB0X2xuMl9kaXZfMiA9IHsgMTQ4ODUyMjIzNkxMIH07CjE0NDc0OiAjIDg3ICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiCjE0NDc0
OiBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKGxvbmcgbG9uZyBudW1l
cmF0b3IsIGxvbmcgbG9uZyBkZW5vbWluYXRvcik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfZnJvbV9pbnQo
aW50IGFyZykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiByZXM7CjE0NDc0OiAK
MTQ0NzQ6ICByZXMudmFsdWUgPSAobG9uZyBsb25nKSBhcmcgPDwgMzI7CjE0NDc0OiAKMTQ0NzQ6
ICByZXR1cm4gcmVzOwoxNDQ3NDogfQoxNDQ3NDogIyAxMTEgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBm
aXhlZDMxXzMyIGRjX2ZpeHB0X25lZyhzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpCjE0NDc0OiB7CjE0
NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcmVzOwoxNDQ3NDogCjE0NDc0OiAgcmVzLnZhbHVlID0g
LWFyZy52YWx1ZTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiByZXM7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIg
ZGNfZml4cHRfYWJzKHN0cnVjdCBmaXhlZDMxXzMyIGFyZykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAo
YXJnLnZhbHVlIDwgMCkKMTQ0NzQ6ICAgcmV0dXJuIGRjX2ZpeHB0X25lZyhhcmcpOwoxNDQ3NDog
IGVsc2UKMTQ0NzQ6ICAgcmV0dXJuIGFyZzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQxICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIGRjX2ZpeHB0X2x0KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhl
ZDMxXzMyIGFyZzIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGFyZzEudmFsdWUgPCBhcmcyLnZh
bHVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgZGNfZml4cHRfbGUoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgc3RydWN0IGZpeGVk
MzFfMzIgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJnMS52YWx1ZSA8PSBhcmcyLnZh
bHVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgZGNfZml4cHRfZXEoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgc3RydWN0IGZpeGVk
MzFfMzIgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJnMS52YWx1ZSA9PSBhcmcyLnZh
bHVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X21pbihzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcx
LCBzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcyKQoxNDQ3NDogewoxNDQ3NDogIGlmIChhcmcxLnZhbHVl
IDw9IGFyZzIudmFsdWUpCjE0NDc0OiAgIHJldHVybiBhcmcxOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6
ICAgcmV0dXJuIGFyZzI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfbWF4KHN0cnVjdCBmaXhl
ZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpCjE0NDc0OiB7CjE0NDc0OiAgaWYg
KGFyZzEudmFsdWUgPD0gYXJnMi52YWx1ZSkKMTQ0NzQ6ICAgcmV0dXJuIGFyZzI7CjE0NDc0OiAg
ZWxzZQoxNDQ3NDogICByZXR1cm4gYXJnMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFf
MzIgZGNfZml4cHRfY2xhbXAoCjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgYXJnLAoxNDQ3NDog
IHN0cnVjdCBmaXhlZDMxXzMyIG1pbl92YWx1ZSwKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBt
YXhfdmFsdWUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGRjX2ZpeHB0X2xlKGFyZywgbWluX3ZhbHVl
KSkKMTQ0NzQ6ICAgcmV0dXJuIG1pbl92YWx1ZTsKMTQ0NzQ6ICBlbHNlIGlmIChkY19maXhwdF9s
ZShtYXhfdmFsdWUsIGFyZykpCjE0NDc0OiAgIHJldHVybiBtYXhfdmFsdWU7CjE0NDc0OiAgZWxz
ZQoxNDQ3NDogICByZXR1cm4gYXJnOwoxNDQ3NDogfQoxNDQ3NDogIyAyMTYgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X3NobChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcsIHVu
c2lnbmVkIGNoYXIgc2hpZnQpCjE0NDc0OiB7CjE0NDc0OiAgKHsgaW50IF9fcmV0X3dhcm5fb24g
PSAhISghKCgoYXJnLnZhbHVlID49IDApICYmIChhcmcudmFsdWUgPD0gKChsb25nIGxvbmcpKH4w
VUxMID4+IDEpKSA+PiBzaGlmdCkpIHx8ICgoYXJnLnZhbHVlIDwgMCkgJiYgKGFyZy52YWx1ZSA+
PSB+KCgobG9uZyBsb25nKSh+MFVMTCA+PiAxKSkgPj4gc2hpZnQpKSkpKTsgaWYgKF9fYnVpbHRp
bl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZv
bGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVn
X3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2Vu
dHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50
cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29y
ZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNl
Y3Rpb24iIDogOiAiaSIgKCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2lu
Y2x1ZGUvZml4ZWQzMV8zMi5oIiksICJpIiAoMjE4KSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4
KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNt
IHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0
IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgzOCkpOyB9
KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9
KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOwoxNDQ3NDogCjE0NDc0OiAgYXJnLnZhbHVlID0gYXJnLnZhbHVlIDw8IHNo
aWZ0OwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGFyZzsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhw
dF9zaHIoc3RydWN0IGZpeGVkMzFfMzIgYXJnLCB1bnNpZ25lZCBjaGFyIHNoaWZ0KQoxNDQ3NDog
ewoxNDQ3NDogIGJvb2wgbmVnYXRpdmUgPSBhcmcudmFsdWUgPCAwOwoxNDQ3NDogCjE0NDc0OiAg
aWYgKG5lZ2F0aXZlKQoxNDQ3NDogICBhcmcudmFsdWUgPSAtYXJnLnZhbHVlOwoxNDQ3NDogIGFy
Zy52YWx1ZSA9IGFyZy52YWx1ZSA+PiBzaGlmdDsKMTQ0NzQ6ICBpZiAobmVnYXRpdmUpCjE0NDc0
OiAgIGFyZy52YWx1ZSA9IC1hcmcudmFsdWU7CjE0NDc0OiAgcmV0dXJuIGFyZzsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMjUxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5j
bHVkZS9maXhlZDMxXzMyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9hZGQo
c3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgc3RydWN0IGZpeGVkMzFfMzIgYXJnMikKMTQ0NzQ6IHsK
MTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiByZXM7CjE0NDc0OiAKMTQ0NzQ6ICAoeyBpbnQgX19y
ZXRfd2Fybl9vbiA9ICEhKCEoKChhcmcxLnZhbHVlID49IDApICYmICgoKGxvbmcgbG9uZykofjBV
TEwgPj4gMSkpIC0gYXJnMS52YWx1ZSA+PSBhcmcyLnZhbHVlKSkgfHwgKChhcmcxLnZhbHVlIDwg
MCkgJiYgKCgtKChsb25nIGxvbmcpKH4wVUxMID4+IDEpKSAtIDEpIC0gYXJnMS52YWx1ZSA8PSBh
cmcyLnZhbHVlKSkpKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDAp
KSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgw
YiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25n
ICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAi
ICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQj
IGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xu
IiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJkcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIiksICJpIiAoMjU1
KSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2Vu
dHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNl
Y3Rpb25cblx0IiA6IDogImkiICgzOSkpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBl
Y3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogCjE0NDc0
OiAgcmVzLnZhbHVlID0gYXJnMS52YWx1ZSArIGFyZzIudmFsdWU7CjE0NDc0OiAKMTQ0NzQ6ICBy
ZXR1cm4gcmVzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X2FkZF9pbnQoc3RydWN0IGZpeGVk
MzFfMzIgYXJnMSwgaW50IGFyZzIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRjX2ZpeHB0X2Fk
ZChhcmcxLCBkY19maXhwdF9mcm9tX2ludChhcmcyKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4
cHRfc3ViKHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpCjE0
NDc0OiB7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcmVzOwoxNDQ3NDogCjE0NDc0OiAgKHsg
aW50IF9fcmV0X3dhcm5fb24gPSAhISghKCgoYXJnMi52YWx1ZSA+PSAwKSAmJiAoKC0oKGxvbmcg
bG9uZykofjBVTEwgPj4gMSkpIC0gMSkgKyBhcmcyLnZhbHVlIDw9IGFyZzEudmFsdWUpKSB8fCAo
KGFyZzIudmFsdWUgPCAwKSAmJiAoKChsb25nIGxvbmcpKH4wVUxMID4+IDEpKSArIGFyZzIudmFs
dWUgPj0gYXJnMS52YWx1ZSkpKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5f
b24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4
MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQi
ICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAi
LmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVj
MSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6
ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIpLCAi
aSIgKDI4MCksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0
IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIu
cHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIg
Ii5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoNDApKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0
aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSkKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKMTQ0NzQ6
IAoxNDQ3NDogIHJlcy52YWx1ZSA9IGFyZzEudmFsdWUgLSBhcmcyLnZhbHVlOwoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuIHJlczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9zdWJfaW50KHN0cnVj
dCBmaXhlZDMxXzMyIGFyZzEsIGludCBhcmcyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkY19m
aXhwdF9zdWIoYXJnMSwgZGNfZml4cHRfZnJvbV9pbnQoYXJnMikpOwoxNDQ3NDogfQoxNDQ3NDog
IyAzMDcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2Zp
eGVkMzFfMzIuaCIKMTQ0NzQ6IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X211bChzdHJ1Y3Qg
Zml4ZWQzMV8zMiBhcmcxLCBzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcyKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBmaXhlZDMxXzMy
IGRjX2ZpeHB0X211bF9pbnQoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgaW50IGFyZzIpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGRjX2ZpeHB0X211bChhcmcxLCBkY19maXhwdF9mcm9tX2ludChh
cmcyKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfc3FyKHN0cnVjdCBmaXhlZDMxXzMyIGFy
Zyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGZpeGVkMzFfMzIgZGNfZml4cHRfZGl2X2ludChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLCBsb25n
IGxvbmcgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZGNfZml4cHRfZnJvbV9mcmFjdGlv
bihhcmcxLnZhbHVlLCBkY19maXhwdF9mcm9tX2ludChhcmcyKS52YWx1ZSk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVk
MzFfMzIgZGNfZml4cHRfZGl2KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMx
XzMyIGFyZzIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRjX2ZpeHB0X2Zyb21fZnJhY3Rpb24o
YXJnMS52YWx1ZSwgYXJnMi52YWx1ZSk7CjE0NDc0OiB9CjE0NDc0OiAjIDM1NSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgoxNDQ3
NDogc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfcmVjaXAoc3RydWN0IGZpeGVkMzFfMzIgYXJn
KTsKMTQ0NzQ6ICMgMzcwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
aW5jbHVkZS9maXhlZDMxXzMyLmgiCjE0NDc0OiBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9z
aW5jKHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAjIDM4MCAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgoxNDQ3NDogc3Ry
dWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfc2luKHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0
OiAjIDM5MiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUv
Zml4ZWQzMV8zMi5oIgoxNDQ3NDogc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfY29zKHN0cnVj
dCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAjIDQwNiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgoxNDQ3NDogc3RydWN0IGZpeGVk
MzFfMzIgZGNfZml4cHRfZXhwKHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAjIDQxOCAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8z
Mi5oIgoxNDQ3NDogc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfbG9nKHN0cnVjdCBmaXhlZDMx
XzMyIGFyZyk7CjE0NDc0OiAjIDQzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNf
Zml4cHRfcG93KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRjX2ZpeHB0X2V4cCgKMTQ0NzQ6ICAgZGNfZml4cHRf
bXVsKAoxNDQ3NDogICAgZGNfZml4cHRfbG9nKGFyZzEpLAoxNDQ3NDogICAgYXJnMikpOwoxNDQ3
NDogfQoxNDQ3NDogIyA0NDkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkY19maXhwdF9mbG9vcihzdHJ1Y3Qg
Zml4ZWQzMV8zMiBhcmcpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIGFyZ192
YWx1ZSA9IGFyZy52YWx1ZSA+IDAgPyBhcmcudmFsdWUgOiAtYXJnLnZhbHVlOwoxNDQ3NDogCjE0
NDc0OiAgaWYgKGFyZy52YWx1ZSA+PSAwKQoxNDQ3NDogICByZXR1cm4gKGludCkoYXJnX3ZhbHVl
ID4+IDMyKTsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAgIHJldHVybiAtKGludCkoYXJnX3ZhbHVlID4+
IDMyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgZGNfZml4cHRfcm91bmQoc3RydWN0IGZpeGVkMzFfMzIgYXJnKQoxNDQ3NDogewox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyBhcmdfdmFsdWUgPSBhcmcudmFsdWUgPiAwID8gYXJn
LnZhbHVlIDogLWFyZy52YWx1ZTsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IGxvbmcgbG9uZyBzdW1t
YW5kID0gZGNfZml4cHRfaGFsZi52YWx1ZTsKMTQ0NzQ6IAoxNDQ3NDogICh7IGludCBfX3JldF93
YXJuX29uID0gISEoISgoKGxvbmcgbG9uZykofjBVTEwgPj4gMSkpIC0gKGxvbmcgbG9uZylhcmdf
dmFsdWUgPj0gc3VtbWFuZCkpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29u
KSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBm
LCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAi
LmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5s
b25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEi
ICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZs
YWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiKSwgImki
ICg0NjkpLCAiaSIgKCgxIDw8IDApfCgoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBi
dWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1
c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIu
cG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDQxKSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGlu
X2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3NDogCjE0NDc0OiAgYXJnX3Zh
bHVlICs9IHN1bW1hbmQ7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoYXJnLnZhbHVlID49IDApCjE0NDc0
OiAgIHJldHVybiAoaW50KShhcmdfdmFsdWUgPj4gMzIpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAg
cmV0dXJuIC0oaW50KShhcmdfdmFsdWUgPj4gMzIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkY19maXhwdF9jZWlsKHN0cnVjdCBm
aXhlZDMxXzMyIGFyZykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvbmcgYXJnX3Zh
bHVlID0gYXJnLnZhbHVlID4gMCA/IGFyZy52YWx1ZSA6IC1hcmcudmFsdWU7CjE0NDc0OiAKMTQ0
NzQ6ICBjb25zdCBsb25nIGxvbmcgc3VtbWFuZCA9IGRjX2ZpeHB0X29uZS52YWx1ZSAtCjE0NDc0
OiAgIGRjX2ZpeHB0X2Vwc2lsb24udmFsdWU7CjE0NDc0OiAKMTQ0NzQ6ICAoeyBpbnQgX19yZXRf
d2Fybl9vbiA9ICEhKCEoKChsb25nIGxvbmcpKH4wVUxMID4+IDEpKSAtIChsb25nIGxvbmcpYXJn
X3ZhbHVlID49IHN1bW1hbmQpKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9v
biksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgw
ZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIg
Ii5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIu
bG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMx
IiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5Ojpm
bGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJkcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIiksICJp
IiAoNDkwKSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3Qg
YnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5w
dXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAi
LnBvcHNlY3Rpb25cblx0IiA6IDogImkiICg0MikpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRp
bl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6IAoxNDQ3NDogIGFyZ192
YWx1ZSArPSBzdW1tYW5kOwoxNDQ3NDogCjE0NDc0OiAgaWYgKGFyZy52YWx1ZSA+PSAwKQoxNDQ3
NDogICByZXR1cm4gKGludCkoYXJnX3ZhbHVlID4+IDMyKTsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAg
IHJldHVybiAtKGludCkoYXJnX3ZhbHVlID4+IDMyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5zaWduZWQg
aW50IGRjX2ZpeHB0X3U0ZDE5KHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAKMTQ0NzQ6
IHVuc2lnbmVkIGludCBkY19maXhwdF91M2QxOShzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwoxNDQ3
NDogCjE0NDc0OiB1bnNpZ25lZCBpbnQgZGNfZml4cHRfdTJkMTkoc3RydWN0IGZpeGVkMzFfMzIg
YXJnKTsKMTQ0NzQ6IAoxNDQ3NDogdW5zaWduZWQgaW50IGRjX2ZpeHB0X3UwZDE5KHN0cnVjdCBm
aXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAKMTQ0NzQ6IHVuc2lnbmVkIGludCBkY19maXhwdF9jbGFt
cF91MGQxNChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBp
bnQgZGNfZml4cHRfY2xhbXBfdTBkMTAoc3RydWN0IGZpeGVkMzFfMzIgYXJnKTsKMTQ0NzQ6IAox
NDQ3NDogaW50IGRjX2ZpeHB0X3M0ZDE5KHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X3RydW5jYXRlKHN0cnVjdCBmaXhlZDMx
XzMyIGFyZywgdW5zaWduZWQgaW50IGZyYWNfYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBib29sIG5l
Z2F0aXZlID0gYXJnLnZhbHVlIDwgMDsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChmcmFjX2JpdHMgPj0g
MzIpIHsKMTQ0NzQ6ICAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAhISghKGZyYWNfYml0cyA9PSAz
MikpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8g
eyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIu
cHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIg
LSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAt
IDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5
OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcg
MmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiKSwgImkiICg1MjUpLCAiaSIgKCgx
IDw8IDApfCgoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0g
d2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNj
YXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQi
IDogOiAiaSIgKDQzKSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3Jl
dF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3NDogICByZXR1cm4gYXJnOwoxNDQ3NDogIH0KMTQ0NzQ6
IAoxNDQ3NDogIGlmIChuZWdhdGl2ZSkKMTQ0NzQ6ICAgYXJnLnZhbHVlID0gLWFyZy52YWx1ZTsK
MTQ0NzQ6ICBhcmcudmFsdWUgJj0gKH4wTEwpIDw8ICgzMiAtIGZyYWNfYml0cyk7CjE0NDc0OiAg
aWYgKG5lZ2F0aXZlKQoxNDQ3NDogICBhcmcudmFsdWUgPSAtYXJnLnZhbHVlOwoxNDQ3NDogIHJl
dHVybiBhcmc7CjE0NDc0OiB9CjE0NDc0OiAjIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaXJxX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMzEg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pcnFfdHlwZXMuaCIK
MTQ0NzQ6IHN0cnVjdCBkY19jb250ZXh0OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHZvaWQgKCpp
bnRlcnJ1cHRfaGFuZGxlcikodm9pZCAqKTsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB2b2lkICpp
cnFfaGFuZGxlcl9pZHg7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gZGNfaXJxX3NvdXJjZSB7CjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0lOVkFMSUQg
PSAwLAoxNDQ3NDogCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9IUEQxLAoxNDQ3NDogIERDX0lSUV9T
T1VSQ0VfSFBEMiwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0hQRDMsCjE0NDc0OiAgRENfSVJRX1NP
VVJDRV9IUEQ0LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfSFBENSwKMTQ0NzQ6ICBEQ19JUlFfU09V
UkNFX0hQRDYsCjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0hQRDFSWCwKMTQ0NzQ6ICBE
Q19JUlFfU09VUkNFX0hQRDJSWCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0hQRDNSWCwKMTQ0NzQ6
ICBEQ19JUlFfU09VUkNFX0hQRDRSWCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0hQRDVSWCwKMTQ0
NzQ6ICBEQ19JUlFfU09VUkNFX0hQRDZSWCwKMTQ0NzQ6IAoxNDQ3NDogIERDX0lSUV9TT1VSQ0Vf
STJDX0REQzEsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9JMkNfRERDMiwKMTQ0NzQ6ICBEQ19JUlFf
U09VUkNFX0kyQ19EREMzLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfSTJDX0REQzQsCjE0NDc0OiAg
RENfSVJRX1NPVVJDRV9JMkNfRERDNSwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0kyQ19EREM2LAox
NDQ3NDogCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EUFNJTksxLAoxNDQ3NDogIERDX0lSUV9TT1VS
Q0VfRFBTSU5LMiwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0RQU0lOSzMsCjE0NDc0OiAgRENfSVJR
X1NPVVJDRV9EUFNJTks0LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfRFBTSU5LNSwKMTQ0NzQ6ICBE
Q19JUlFfU09VUkNFX0RQU0lOSzYsCjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX1RJTUVS
LAoxNDQ3NDogCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9QRkxJUF9GSVJTVCwKMTQ0NzQ6ICBEQ19J
UlFfU09VUkNFX1BGTElQMSA9IERDX0lSUV9TT1VSQ0VfUEZMSVBfRklSU1QsCjE0NDc0OiAgRENf
SVJRX1NPVVJDRV9QRkxJUDIsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9QRkxJUDMsCjE0NDc0OiAg
RENfSVJRX1NPVVJDRV9QRkxJUDQsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9QRkxJUDUsCjE0NDc0
OiAgRENfSVJRX1NPVVJDRV9QRkxJUDYsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9QRkxJUF9VTkRF
UkxBWTAsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9QRkxJUF9MQVNUID0gRENfSVJRX1NPVVJDRV9Q
RkxJUF9VTkRFUkxBWTAsCjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0dQSU9QQUQwLAox
NDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDEsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9HUElP
UEFEMiwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0dQSU9QQUQzLAoxNDQ3NDogIERDX0lSUV9TT1VS
Q0VfR1BJT1BBRDQsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9HUElPUEFENSwKMTQ0NzQ6ICBEQ19J
UlFfU09VUkNFX0dQSU9QQUQ2LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDcsCjE0NDc0
OiAgRENfSVJRX1NPVVJDRV9HUElPUEFEOCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0dQSU9QQUQ5
LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDEwLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0Vf
R1BJT1BBRDExLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDEyLAoxNDQ3NDogIERDX0lS
UV9TT1VSQ0VfR1BJT1BBRDEzLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDE0LAoxNDQ3
NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDE1LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BB
RDE2LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDE3LAoxNDQ3NDogIERDX0lSUV9TT1VS
Q0VfR1BJT1BBRDE4LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDE5LAoxNDQ3NDogIERD
X0lSUV9TT1VSQ0VfR1BJT1BBRDIwLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDIxLAox
NDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDIyLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJ
T1BBRDIzLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI0LAoxNDQ3NDogIERDX0lSUV9T
T1VSQ0VfR1BJT1BBRDI1LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI2LAoxNDQ3NDog
IERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI3LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI4
LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI5LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0Vf
R1BJT1BBRDMwLAoxNDQ3NDogCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzFVTkRFUkZMT1csCjE0
NDc0OiAgRENfSVJRX1NPVVJDRV9EQzJVTkRFUkZMT1csCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9E
QzNVTkRFUkZMT1csCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzRVTkRFUkZMT1csCjE0NDc0OiAg
RENfSVJRX1NPVVJDRV9EQzVVTkRFUkZMT1csCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzZVTkRF
UkZMT1csCjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0RNQ1VfU0NQLAoxNDQ3NDogIERD
X0lSUV9TT1VSQ0VfVkJJT1NfU1csCjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX1ZVUERB
VEUxLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfVlVQREFURTIsCjE0NDc0OiAgRENfSVJRX1NPVVJD
RV9WVVBEQVRFMywKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX1ZVUERBVEU0LAoxNDQ3NDogIERDX0lS
UV9TT1VSQ0VfVlVQREFURTUsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9WVVBEQVRFNiwKMTQ0NzQ6
IAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfVkJMQU5LMSwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX1ZC
TEFOSzIsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9WQkxBTkszLAoxNDQ3NDogIERDX0lSUV9TT1VS
Q0VfVkJMQU5LNCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX1ZCTEFOSzUsCjE0NDc0OiAgRENfSVJR
X1NPVVJDRV9WQkxBTks2LAoxNDQ3NDogCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzFfVkxJTkUw
LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfREMyX1ZMSU5FMCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNF
X0RDM19WTElORTAsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzRfVkxJTkUwLAoxNDQ3NDogIERD
X0lSUV9TT1VSQ0VfREM1X1ZMSU5FMCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0RDNl9WTElORTAs
CjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0RDMV9WTElORTEsCjE0NDc0OiAgRENfSVJR
X1NPVVJDRV9EQzJfVkxJTkUxLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfREMzX1ZMSU5FMSwKMTQ0
NzQ6ICBEQ19JUlFfU09VUkNFX0RDNF9WTElORTEsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzVf
VkxJTkUxLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfREM2X1ZMSU5FMSwKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgREFMX0lSUV9TT1VSQ0VTX05VTUJFUgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBpcnFfdHlwZQoxNDQ3NDogewoxNDQ3NDogIElSUV9UWVBFX1BGTElQID0gRENfSVJRX1NP
VVJDRV9QRkxJUDEsCjE0NDc0OiAgSVJRX1RZUEVfVlVQREFURSA9IERDX0lSUV9TT1VSQ0VfVlVQ
REFURTEsCjE0NDc0OiAgSVJRX1RZUEVfVkJMQU5LID0gRENfSVJRX1NPVVJDRV9WQkxBTksxLAox
NDQ3NDogfTsKMTQ0NzQ6ICMgMTczICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvaXJxX3R5cGVzLmgiCjE0NDc0OiBlbnVtIGRjX2ludGVycnVwdF9jb250ZXh0IHsK
MTQ0NzQ6ICBJTlRFUlJVUFRfTE9XX0lSUV9DT05URVhUID0gMCwKMTQ0NzQ6ICBJTlRFUlJVUFRf
SElHSF9JUlFfQ09OVEVYVCwKMTQ0NzQ6ICBJTlRFUlJVUFRfQ09OVEVYVF9OVU1CRVIKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfaW50ZXJydXB0X3Bvcmxhcml0eSB7CjE0NDc0OiAg
SU5URVJSVVBUX1BPTEFSSVRZX0RFRkFVTFQgPSAwLAoxNDQ3NDogIElOVEVSUlVQVF9QT0xBUklU
WV9MT1cgPSBJTlRFUlJVUFRfUE9MQVJJVFlfREVGQVVMVCwKMTQ0NzQ6ICBJTlRFUlJVUFRfUE9M
QVJJVFlfSElHSCwKMTQ0NzQ6ICBJTlRFUlJVUFRfUE9MQVJJVFlfQk9USAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBkY190aW1lcl9pbnRlcnJ1cHRfcGFyYW1zIHsKMTQ0NzQ6ICB1aW50MzJfdCBtaWNyb19zZWNf
aW50ZXJ2YWw7CjE0NDc0OiAgZW51bSBkY19pbnRlcnJ1cHRfY29udGV4dCBpbnRfY29udGV4dDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19pbnRlcnJ1cHRfcGFyYW1zIHsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRjX2ludGVycnVwdF9wb3JsYXJpdHkg
cmVxdWVzdGVkX3BvbGFyaXR5OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgZW51bSBkY19pbnRlcnJ1cHRfcG9ybGFyaXR5IGN1cnJlbnRfcG9sYXJpdHk7CjE0NDc0OiAg
ZW51bSBkY19pcnFfc291cmNlIGlycV9zb3VyY2U7CjE0NDc0OiAgZW51bSBkY19pbnRlcnJ1cHRf
Y29udGV4dCBpbnRfY29udGV4dDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM1ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfZHBfdHlwZXMuaCIg
MQoxNDQ3NDogIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RjX2RwX3R5cGVzLmgiCjE0NDc0OiBlbnVtIGRjX2xhbmVfY291bnQgewoxNDQ3NDogIExBTkVf
Q09VTlRfVU5LTk9XTiA9IDAsCjE0NDc0OiAgTEFORV9DT1VOVF9PTkUgPSAxLAoxNDQ3NDogIExB
TkVfQ09VTlRfVFdPID0gMiwKMTQ0NzQ6ICBMQU5FX0NPVU5UX0ZPVVIgPSA0LAoxNDQ3NDogIExB
TkVfQ09VTlRfRUlHSFQgPSA4LAoxNDQ3NDogIExBTkVfQ09VTlRfRFBfTUFYID0gTEFORV9DT1VO
VF9GT1VSCjE0NDc0OiB9OwoxNDQ3NDogIyA0NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2RjX2RwX3R5cGVzLmgiCjE0NDc0OiBlbnVtIGRjX2xpbmtfcmF0ZSB7
CjE0NDc0OiAgTElOS19SQVRFX1VOS05PV04gPSAwLAoxNDQ3NDogIExJTktfUkFURV9MT1cgPSAw
eDA2LAoxNDQ3NDogIExJTktfUkFURV9SQVRFXzIgPSAweDA4LAoxNDQ3NDogIExJTktfUkFURV9S
QVRFXzMgPSAweDA5LAoxNDQ3NDogIExJTktfUkFURV9ISUdIID0gMHgwQSwKMTQ0NzQ6ICBMSU5L
X1JBVEVfUkJSMiA9IDB4MEMsCjE0NDc0OiAgTElOS19SQVRFX1JBVEVfNiA9IDB4MTAsCjE0NDc0
OiAgTElOS19SQVRFX0hJR0gyID0gMHgxNCwKMTQ0NzQ6ICBMSU5LX1JBVEVfSElHSDMgPSAweDFF
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2xpbmtfc3ByZWFkIHsKMTQ0NzQ6ICBM
SU5LX1NQUkVBRF9ESVNBQkxFRCA9IDB4MDAsCjE0NDc0OiAKMTQ0NzQ6ICBMSU5LX1NQUkVBRF8w
NV9ET1dOU1BSRUFEXzMwS0haID0gMHgxMCwKMTQ0NzQ6IAoxNDQ3NDogIExJTktfU1BSRUFEXzA1
X0RPV05TUFJFQURfMzNLSFogPSAweDExCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRj
X3ZvbHRhZ2Vfc3dpbmcgewoxNDQ3NDogIFZPTFRBR0VfU1dJTkdfTEVWRUwwID0gMCwKMTQ0NzQ6
ICBWT0xUQUdFX1NXSU5HX0xFVkVMMSwKMTQ0NzQ6ICBWT0xUQUdFX1NXSU5HX0xFVkVMMiwKMTQ0
NzQ6ICBWT0xUQUdFX1NXSU5HX0xFVkVMMywKMTQ0NzQ6ICBWT0xUQUdFX1NXSU5HX01BWF9MRVZF
TCA9IFZPTFRBR0VfU1dJTkdfTEVWRUwzCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRj
X3ByZV9lbXBoYXNpcyB7CjE0NDc0OiAgUFJFX0VNUEhBU0lTX0RJU0FCTEVEID0gMCwKMTQ0NzQ6
ICBQUkVfRU1QSEFTSVNfTEVWRUwxLAoxNDQ3NDogIFBSRV9FTVBIQVNJU19MRVZFTDIsCjE0NDc0
OiAgUFJFX0VNUEhBU0lTX0xFVkVMMywKMTQ0NzQ6ICBQUkVfRU1QSEFTSVNfTUFYX0xFVkVMID0g
UFJFX0VNUEhBU0lTX0xFVkVMMwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gZGNfcG9zdF9jdXJzb3IyIHsKMTQ0NzQ6ICBQT1NUX0NVUlNPUjJfRElTQUJMRUQg
PSAwLAoxNDQ3NDogIFBPU1RfQ1VSU09SMl9MRVZFTDEsCjE0NDc0OiAgUE9TVF9DVVJTT1IyX0xF
VkVMMiwKMTQ0NzQ6ICBQT1NUX0NVUlNPUjJfTEVWRUwzLAoxNDQ3NDogIFBPU1RfQ1VSU09SMl9N
QVhfTEVWRUwgPSBQT1NUX0NVUlNPUjJfTEVWRUwzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBkY19kcF90cmFpbmluZ19wYXR0ZXJuIHsKMTQ0NzQ6ICBEUF9UUkFJTklOR19QQVRURVJO
X1NFUVVFTkNFXzEgPSAwLAoxNDQ3NDogIERQX1RSQUlOSU5HX1BBVFRFUk5fU0VRVUVOQ0VfMiwK
MTQ0NzQ6ICBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzMsCjE0NDc0OiAgRFBfVFJBSU5J
TkdfUEFUVEVSTl9TRVFVRU5DRV80LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRj
X2xpbmtfc2V0dGluZ3MgewoxNDQ3NDogIGVudW0gZGNfbGFuZV9jb3VudCBsYW5lX2NvdW50Owox
NDQ3NDogIGVudW0gZGNfbGlua19yYXRlIGxpbmtfcmF0ZTsKMTQ0NzQ6ICBlbnVtIGRjX2xpbmtf
c3ByZWFkIGxpbmtfc3ByZWFkOwoxNDQ3NDogIGJvb2wgdXNlX2xpbmtfcmF0ZV9zZXQ7CjE0NDc0
OiAgdWludDhfdCBsaW5rX3JhdGVfc2V0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRjX2xhbmVfc2V0dGluZ3MgewoxNDQ3NDogIGVudW0gZGNfdm9sdGFnZV9zd2luZyBWT0xUQUdF
X1NXSU5HOwoxNDQ3NDogIGVudW0gZGNfcHJlX2VtcGhhc2lzIFBSRV9FTVBIQVNJUzsKMTQ0NzQ6
ICBlbnVtIGRjX3Bvc3RfY3Vyc29yMiBQT1NUX0NVUlNPUjI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZGNfbGlua190cmFpbmluZ19zZXR0aW5ncyB7CjE0NDc0OiAgc3RydWN0IGRj
X2xpbmtfc2V0dGluZ3MgbGluazsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfbGFuZV9zZXR0aW5ncyBsYW5l
X3NldHRpbmdzW0xBTkVfQ09VTlRfRFBfTUFYXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBkY19saW5rX3RyYWluaW5nX292ZXJyaWRlcyB7CjE0NDc0OiAgZW51bSBkY192b2x0YWdl
X3N3aW5nICp2b2x0YWdlX3N3aW5nOwoxNDQ3NDogIGVudW0gZGNfcHJlX2VtcGhhc2lzICpwcmVf
ZW1waGFzaXM7CjE0NDc0OiAgZW51bSBkY19wb3N0X2N1cnNvcjIgKnBvc3RfY3Vyc29yMjsKMTQ0
NzQ6IAoxNDQ3NDogIHVpbnQxNl90ICpjcl9wYXR0ZXJuX3RpbWU7CjE0NDc0OiAgdWludDE2X3Qg
KmVxX3BhdHRlcm5fdGltZTsKMTQ0NzQ6ICBlbnVtIGRjX2RwX3RyYWluaW5nX3BhdHRlcm4gKnBh
dHRlcm5fZm9yX2VxOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19saW5rX3NwcmVhZCAqZG93bnNw
cmVhZDsKMTQ0NzQ6ICBib29sICphbHRlcm5hdGVfc2NyYW1ibGVyX3Jlc2V0OwoxNDQ3NDogIGJv
b2wgKmVuaGFuY2VkX2ZyYW1pbmc7CjE0NDc0OiAgYm9vbCAqbXN0X2VuYWJsZTsKMTQ0NzQ6ICBi
b29sICpmZWNfZW5hYmxlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHBjZF9yZXYg
ewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgTUlOT1I6NDsKMTQ0NzQ6ICAgdWlu
dDhfdCBNQUpPUjo0OwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIG1heF9sYW5lX2NvdW50IHsKMTQ0NzQ6ICBzdHJ1Y3Qg
ewoxNDQ3NDogICB1aW50OF90IE1BWF9MQU5FX0NPVU5UOjU7CjE0NDc0OiAgIHVpbnQ4X3QgUE9T
VF9MVF9BREpfUkVRX1NVUFBPUlRFRDoxOwoxNDQ3NDogICB1aW50OF90IFRQUzNfU1VQUE9SVEVE
OjE7CjE0NDc0OiAgIHVpbnQ4X3QgRU5IQU5DRURfRlJBTUVfQ0FQOjE7CjE0NDc0OiAgfSBiaXRz
OwoxNDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gbWF4
X2Rvd25fc3ByZWFkIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IE1BWF9ET1dO
X1NQUkVBRDoxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEOjU7CjE0NDc0OiAgIHVpbnQ4X3Qg
Tk9fQVVYX0hBTkRTSEFLRV9MSU5LX1RSQUlOSU5HOjE7CjE0NDc0OiAgIHVpbnQ4X3QgVFBTNF9T
VVBQT1JURUQ6MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBtc3RtX2NhcCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6
ICAgdWludDhfdCBNU1RfQ0FQOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6NzsKMTQ0NzQ6
ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1
bmlvbiBsYW5lX2NvdW50X3NldCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDhfdCBM
QU5FX0NPVU5UX1NFVDo1OwoxNDQ3NDogICB1aW50OF90IFBPU1RfTFRfQURKX1JFUV9HUkFOVEVE
OjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6MTsKMTQ0NzQ6ICAgdWludDhfdCBFTkhBTkNF
RF9GUkFNSU5HOjE7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gbGFuZV9zdGF0dXMgewoxNDQ3NDogIHN0cnVjdCB7CjE0
NDc0OiAgIHVpbnQ4X3QgQ1JfRE9ORV8wOjE7CjE0NDc0OiAgIHVpbnQ4X3QgQ0hBTk5FTF9FUV9E
T05FXzA6MTsKMTQ0NzQ6ICAgdWludDhfdCBTWU1CT0xfTE9DS0VEXzA6MTsKMTQ0NzQ6ICAgdWlu
dDhfdCBSRVNFUlZFRDA6MTsKMTQ0NzQ6ICAgdWludDhfdCBDUl9ET05FXzE6MTsKMTQ0NzQ6ICAg
dWludDhfdCBDSEFOTkVMX0VRX0RPTkVfMToxOwoxNDQ3NDogICB1aW50OF90IFNZTUJPTF9MT0NL
RURfMToxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEXzE6MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0
NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkZXZpY2Vf
c2VydmljZV9pcnEgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgUkVNT1RFX0NP
TlRST0xfQ01EX1BFTkRJTkc6MTsKMTQ0NzQ6ICAgdWludDhfdCBBVVRPTUFURURfVEVTVDoxOwox
NDQ3NDogICB1aW50OF90IENQX0lSUToxOwoxNDQ3NDogICB1aW50OF90IE1DQ1NfSVJROjE7CjE0
NDc0OiAgIHVpbnQ4X3QgRE9XTl9SRVBfTVNHX1JEWToxOwoxNDQ3NDogICB1aW50OF90IFVQX1JF
UV9NU0dfUkRZOjE7CjE0NDc0OiAgIHVpbnQ4X3QgU0lOS19TUEVDSUZJQzoxOwoxNDQ3NDogICB1
aW50OF90IHJlc2VydmVkOjE7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVpbnQ4X3QgcmF3Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gc2lua19jb3VudCB7CjE0NDc0OiAgc3RydWN0
IHsKMTQ0NzQ6ICAgdWludDhfdCBTSU5LX0NPVU5UOjY7CjE0NDc0OiAgIHVpbnQ4X3QgQ1BSRUFE
WToxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEOjE7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDog
IHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gbGFuZV9hbGlnbl9z
dGF0dXNfdXBkYXRlZCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDhfdCBJTlRFUkxB
TkVfQUxJR05fRE9ORToxOwoxNDQ3NDogICB1aW50OF90IFBPU1RfTFRfQURKX1JFUV9JTl9QUk9H
UkVTUzoxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEOjQ7CjE0NDc0OiAgIHVpbnQ4X3QgRE9X
TlNUUkVBTV9QT1JUX1NUQVRVU19DSEFOR0VEOjE7CjE0NDc0OiAgIHVpbnQ4X3QgTElOS19TVEFU
VVNfVVBEQVRFRDoxOwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGxhbmVfYWRqdXN0IHsKMTQ0NzQ6ICBzdHJ1Y3Qgewox
NDQ3NDogICB1aW50OF90IFZPTFRBR0VfU1dJTkdfTEFORToyOwoxNDQ3NDogICB1aW50OF90IFBS
RV9FTVBIQVNJU19MQU5FOjI7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6NDsKMTQ0NzQ6ICB9
IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlv
biBkcGNkX3RyYWluaW5nX3BhdHRlcm4gewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4
X3QgVFJBSU5JTkdfUEFUVEVSTl9TRVQ6NDsKMTQ0NzQ6ICAgdWludDhfdCBSRUNPVkVSRURfQ0xP
Q0tfT1VUX0VOOjE7CjE0NDc0OiAgIHVpbnQ4X3QgU0NSQU1CTElOR19ESVNBQkxFOjE7CjE0NDc0
OiAgIHVpbnQ4X3QgU1lNQk9MX0VSUk9SX0NPVU5UX1NFTDoyOwoxNDQ3NDogIH0gdjFfNDsKMTQ0
NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IFRSQUlOSU5HX1BBVFRFUk5fU0VUOjI7CjE0
NDc0OiAgIHVpbnQ4X3QgTElOS19RVUFMX1BBVFRFUk5fU0VUOjI7CjE0NDc0OiAgIHVpbnQ4X3Qg
UkVTRVJWRUQ6NDsKMTQ0NzQ6ICB9IHYxXzM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkcGNkX3RyYWlu
aW5nX2xhbmUgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgVk9MVEFHRV9TV0lO
R19TRVQ6MjsKMTQ0NzQ6ICAgdWludDhfdCBNQVhfU1dJTkdfUkVBQ0hFRDoxOwoxNDQ3NDogICB1
aW50OF90IFBSRV9FTVBIQVNJU19TRVQ6MjsKMTQ0NzQ6ICAgdWludDhfdCBNQVhfUFJFX0VNUEhB
U0lTX1JFQUNIRUQ6MTsKMTQ0NzQ6ICAgdWludDhfdCBSRVNFUlZFRDoyOwoxNDQ3NDogIH0gYml0
czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
dW5pb24gZHduc3RyZWFtX3BvcnRfY2Fwc19ieXRlMCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6
ICAgdWludDhfdCBEV05fU1RSTV9QT1JUWF9UWVBFOjM7CjE0NDc0OiAgIHVpbnQ4X3QgRFdOX1NU
Uk1fUE9SVFhfSFBEOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRVJEOjQ7CjE0NDc0OiAgfSBi
aXRzOwoxNDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBlbnVtIGRwY2RfZG93bnN0cmVhbV9wb3J0X2RldGFpbGVkX3R5cGUgewoxNDQ3NDogIERPV05f
U1RSRUFNX0RFVEFJTEVEX0RQID0gMCwKMTQ0NzQ6ICBET1dOX1NUUkVBTV9ERVRBSUxFRF9WR0Es
CjE0NDc0OiAgRE9XTl9TVFJFQU1fREVUQUlMRURfRFZJLAoxNDQ3NDogIERPV05fU1RSRUFNX0RF
VEFJTEVEX0hETUksCjE0NDc0OiAgRE9XTl9TVFJFQU1fREVUQUlMRURfTk9ORERDLAoxNDQ3NDog
IERPV05fU1RSRUFNX0RFVEFJTEVEX0RQX1BMVVNfUExVUwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogdW5pb24gZHduc3RyZWFtX3BvcnRfY2Fwc19ieXRlMiB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0
NzQ6ICAgdWludDhfdCBNQVhfQklUU19QRVJfQ09MT1JfQ09NUE9ORU5UOjI7CjE0NDc0OiAgIHVp
bnQ4X3QgUkVTRVJWRUQ6NjsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkcF9kb3duc3RyZWFtX3BvcnRfcHJlc2VudCB7
CjE0NDc0OiAgdWludDhfdCBieXRlOwoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3Qg
UE9SVF9QUkVTRU5UOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUE9SVF9UWVBFOjI7CjE0NDc0OiAgIHVp
bnQ4X3QgRk1UX0NPTlZFUlNJT046MTsKMTQ0NzQ6ICAgdWludDhfdCBERVRBSUxFRF9DQVBTOjE7
CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6MzsKMTQ0NzQ6ICB9IGZpZWxkczsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGR3bnN0cmVhbV9wb3J0X2NhcHNfYnl0ZTNfZHZpIHsKMTQ0
NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEMToxOwoxNDQ3NDogICB1aW50
OF90IERVQUxfTElOSzoxOwoxNDQ3NDogICB1aW50OF90IEhJR0hfQ09MT1JfREVQVEg6MTsKMTQ0
NzQ6ICAgdWludDhfdCBSRVNFUlZFRDI6NTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhf
dCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkd25zdHJlYW1fcG9ydF9jYXBz
X2J5dGUzX2hkbWkgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgRlJBTUVfU0VR
X1RPX0ZSQU1FX1BBQ0s6MTsKMTQ0NzQ6ICAgdWludDhfdCBZQ3JDcjQyMl9QQVNTX1RIUk9VR0g6
MTsKMTQ0NzQ6ICAgdWludDhfdCBZQ3JDcjQyMF9QQVNTX1RIUk9VR0g6MTsKMTQ0NzQ6ICAgdWlu
dDhfdCBZQ3JDcjQyMl9DT05WRVJTSU9OOjE7CjE0NDc0OiAgIHVpbnQ4X3QgWUNyQ3I0MjBfQ09O
VkVSU0lPTjoxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEOjM7CjE0NDc0OiAgfSBiaXRzOwox
NDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHVuaW9uIGR3bnN0cmVhbV9wb3J0eGNhcHMgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAg
IHVuaW9uIGR3bnN0cmVhbV9wb3J0X2NhcHNfYnl0ZTAgYnl0ZTA7CjE0NDc0OiAgIHVuc2lnbmVk
IGNoYXIgbWF4X1RNRFNfY2xvY2s7CjE0NDc0OiAgIHVuaW9uIGR3bnN0cmVhbV9wb3J0X2NhcHNf
Ynl0ZTIgYnl0ZTI7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5pb24gewoxNDQ3NDogICAgdW5pb24gZHdu
c3RyZWFtX3BvcnRfY2Fwc19ieXRlM19kdmkgYnl0ZURWSTsKMTQ0NzQ6ICAgIHVuaW9uIGR3bnN0
cmVhbV9wb3J0X2NhcHNfYnl0ZTNfaGRtaSBieXRlSERNSTsKMTQ0NzQ6ICAgfSBieXRlMzsKMTQ0
NzQ6ICB9IGJ5dGVzOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgY2hhciByYXdbNF07CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkb3duc3RyZWFtX3BvcnQgewoxNDQ3NDogIHN0cnVj
dCB7CjE0NDc0OiAgIHVuc2lnbmVkIGNoYXIgcHJlc2VudDoxOwoxNDQ3NDogICB1bnNpZ25lZCBj
aGFyIHR5cGU6MjsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBmb3JtYXRfY29udjoxOwoxNDQ3NDog
ICB1bnNpZ25lZCBjaGFyIGRldGFpbGVkX2NhcHM6MTsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBy
ZXNlcnZlZDozOwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIHJhdzsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gc2lua19zdGF0dXMgewoxNDQ3NDog
IHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgUlhfUE9SVDBfU1RBVFVTOjE7CjE0NDc0OiAgIHVp
bnQ4X3QgUlhfUE9SVDFfU1RBVFVTOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6NjsKMTQ0
NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gaHBkX2lycV9kYXRhIHsKMTQ0NzQ6ICBzdHJ1Y3Qgewox
NDQ3NDogICB1bmlvbiBzaW5rX2NvdW50IHNpbmtfY250OwoxNDQ3NDogICB1bmlvbiBkZXZpY2Vf
c2VydmljZV9pcnEgZGV2aWNlX3NlcnZpY2VfaXJxOwoxNDQ3NDogICB1bmlvbiBsYW5lX3N0YXR1
cyBsYW5lMDFfc3RhdHVzOwoxNDQ3NDogICB1bmlvbiBsYW5lX3N0YXR1cyBsYW5lMjNfc3RhdHVz
OwoxNDQ3NDogICB1bmlvbiBsYW5lX2FsaWduX3N0YXR1c191cGRhdGVkIGxhbmVfc3RhdHVzX3Vw
ZGF0ZWQ7CjE0NDc0OiAgIHVuaW9uIHNpbmtfc3RhdHVzIHNpbmtfc3RhdHVzOwoxNDQ3NDogIH0g
Ynl0ZXM7CjE0NDc0OiAgdWludDhfdCByYXdbNl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1
bmlvbiBkb3duX3N0cmVhbV9wb3J0X2NvdW50IHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1
aW50OF90IERPV05fU1RSX1BPUlRfQ09VTlQ6NDsKMTQ0NzQ6ICAgdWludDhfdCBSRVNFUlZFRDoy
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgSUdOT1JF
X01TQV9USU1JTkdfUEFSQU06MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50OF90IE9VSV9TVVBQT1JUOjE7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVpbnQ4
X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZG93bl9zcHJlYWRfY3RybCB7
CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDhfdCBSRVNFUlZFRDE6NDsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IFNQUkVBRF9BTVA6MTsKMTQ0
NzQ6ICAgdWludDhfdCBSRVNFUlZFRDI6MjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICAgdWludDhfdCBJR05PUkVfTVNBX1RJTUlOR19QQVJBTToxOwoxNDQ3NDogIH0gYml0czsKMTQ0
NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGRwY2RfZWRw
X2NvbmZpZyB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDhfdCBQQU5FTF9NT0RFX0VE
UDoxOwoxNDQ3NDogICB1aW50OF90IEZSQU1JTkdfQ0hBTkdFX0VOQUJMRToxOwoxNDQ3NDogICB1
aW50OF90IFJFU0VSVkVEOjU7CjE0NDc0OiAgIHVpbnQ4X3QgUEFORUxfU0VMRl9URVNUX0VOQUJM
RToxOwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBkcF9kZXZpY2VfdmVuZG9yX2lkIHsKMTQ0NzQ6ICB1aW50OF90IGll
ZWVfb3VpWzNdOwoxNDQ3NDogIHVpbnQ4X3QgaWVlZV9kZXZpY2VfaWRbNl07CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBfc2lua19od19md19yZXZpc2lvbiB7CjE0NDc0OiAgdWlu
dDhfdCBpZWVlX2h3X3JldjsKMTQ0NzQ6ICB1aW50OF90IGllZWVfZndfcmV2WzJdOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1bmlvbiBlZHBfY29uZmlndXJhdGlvbl9jYXAgewox
NDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgQUxUX1NDUkFNQkxFUl9SRVNFVDoxOwox
NDQ3NDogICB1aW50OF90IEZSQU1JTkdfQ0hBTkdFOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJW
RUQ6MTsKMTQ0NzQ6ICAgdWludDhfdCBEUENEX0RJU1BMQVlfQ09OVFJPTF9DQVBBQkxFOjE7CjE0
NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQyOjQ7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVpbnQ4
X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHByeF9mZWF0dXJlIHsKMTQ0
NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IEdUQ19DQVA6MTsKMTQ0NzQ6ICAgdWludDhf
dCBTU1RfU1BMSVRfU0RQX0NBUDoxOwoxNDQ3NDogICB1aW50OF90IEFWX1NZTkNfQ0FQOjE7CjE0
NDc0OiAgIHVpbnQ4X3QgVlNDX1NEUF9DT0xPUklNRVRSWV9TVVBQT1JURUQ6MTsKMTQ0NzQ6ICAg
dWludDhfdCBWU0NfRVhUX1ZFU0FfU0RQX1NVUFBPUlRFRDoxOwoxNDQ3NDogICB1aW50OF90IFZT
Q19FWFRfVkVTQV9TRFBfQ0hBSU5JTkdfU1VQUE9SVEVEOjE7CjE0NDc0OiAgIHVpbnQ4X3QgVlND
X0VYVF9DRUFfU0RQX1NVUFBPUlRFRDoxOwoxNDQ3NDogICB1aW50OF90IFZTQ19FWFRfQ0VBX1NE
UF9DSEFJTklOR19TVVBQT1JURUQ6MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCBy
YXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiB0cmFpbmluZ19hdXhfcmRfaW50ZXJ2
YWwgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgVFJBSU5JR19BVVhfUkRfSU5U
RVJWQUw6NzsKMTQ0NzQ6ICAgdWludDhfdCBFWFRfUkVDRUlWRVJfQ0FQX0ZJRUxEX1BSRVNFTlQ6
MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIHRlc3RfcmVxdWVzdCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0
NzQ6ICB1aW50OF90IExJTktfVFJBSU5JTkcgOjE7CjE0NDc0OiAgdWludDhfdCBMSU5LX1RFU1Rf
UEFUVFJOIDoxOwoxNDQ3NDogIHVpbnQ4X3QgRURJRF9SRUFEIDoxOwoxNDQ3NDogIHVpbnQ4X3Qg
UEhZX1RFU1RfUEFUVEVSTiA6MTsKMTQ0NzQ6ICB1aW50OF90IFJFU0VSVkVEIDoxOwoxNDQ3NDog
IHVpbnQ4X3QgQVVESU9fVEVTVF9QQVRURVJOIDoxOwoxNDQ3NDogIHVpbnQ4X3QgVEVTVF9BVURJ
T19ESVNBQkxFRF9WSURFTyA6MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiB0ZXN0X3Jlc3BvbnNlIHsKMTQ0NzQ6ICBz
dHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IEFDSyA6MTsKMTQ0NzQ6ICAgdWludDhfdCBOT19BQ0sg
OjE7CjE0NDc0OiAgIHVpbnQ4X3QgRURJRF9DSEVDS1NVTV9XUklURToxOwoxNDQ3NDogICB1aW50
OF90IFJFU0VSVkVEIDo1OwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIHBoeV90ZXN0X3BhdHRlcm4gewoxNDQ3NDogIHN0
cnVjdCB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgUEFUVEVSTiA6
MzsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEIDo1OwoxNDQ3NDogIH0gYml0czsK
MTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5p
b24gY29tcGxpYW5jZV90ZXN0X3N0YXRlIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNp
Z25lZCBjaGFyIFNURVJFT18zRF9SVU5OSU5HIDogMTsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBS
RVNFUlZFRCA6IDc7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcmF3Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gbGlua190ZXN0X3BhdHRlcm4gewoxNDQ3NDog
IHN0cnVjdCB7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBQQVRURVJOIDoyOwoxNDQ3
NDogICB1bnNpZ25lZCBjaGFyIFJFU0VSVkVEOjY7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVu
c2lnbmVkIGNoYXIgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gdGVzdF9taXNj
IHsKMTQ0NzQ6ICBzdHJ1Y3QgZHBjZF90ZXN0X21pc2NfYml0cyB7CjE0NDc0OiAgIHVuc2lnbmVk
IGNoYXIgU1lOQ19DTE9DSyA6MTsKMTQ0NzQ6IAoxNDQ3NDogICB1bnNpZ25lZCBjaGFyIENMUl9G
T1JNQVQgOjI7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBEWU5fUkFOR0UgOjE7CjE0
NDc0OiAgIHVuc2lnbmVkIGNoYXIgWUNCQ1JfQ09FRlMgOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5z
aWduZWQgY2hhciBCUEMgOjM7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIg
cmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gYXVkaW9fdGVzdF9tb2RlIHsKMTQ0
NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBjaGFyIHNhbXBsaW5nX3JhdGUgOjQ7CjE0
NDc0OiAgIHVuc2lnbmVkIGNoYXIgY2hhbm5lbF9jb3VudCA6NDsKMTQ0NzQ6ICB9IGJpdHM7CjE0
NDc0OiAgdW5zaWduZWQgY2hhciByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBh
dWRpb190ZXN0X3BhdHRlcm5fcGVyaW9kIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNp
Z25lZCBjaGFyIHBhdHRlcm5fcGVyaW9kIDo0OwoxNDQ3NDogICB1bnNpZ25lZCBjaGFyIHJlc2Vy
dmVkIDo0OwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIHJhdzsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb190ZXN0X3BhdHRlcm5fdHlwZSB7CjE0NDc0
OiAgdW5zaWduZWQgY2hhciB2YWx1ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
cF9hdWRpb190ZXN0X2RhdGFfZmxhZ3MgewoxNDQ3NDogIHVpbnQ4X3QgdGVzdF9yZXF1ZXN0ZWQg
OjE7CjE0NDc0OiAgdWludDhfdCBkaXNhYmxlX3ZpZGVvIDoxOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRwX2F1ZGlvX3Rlc3RfZGF0YSB7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qg
ZHBfYXVkaW9fdGVzdF9kYXRhX2ZsYWdzIGZsYWdzOwoxNDQ3NDogIHVpbnQ4X3Qgc2FtcGxpbmdf
cmF0ZTsKMTQ0NzQ6ICB1aW50OF90IGNoYW5uZWxfY291bnQ7CjE0NDc0OiAgdWludDhfdCBwYXR0
ZXJuX3R5cGU7CjE0NDc0OiAgdWludDhfdCBwYXR0ZXJuX3BlcmlvZFs4XTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHBjZF9mZWNfY2FwYWJpbGl0eSB7CjE0NDc0OiAg
c3RydWN0IHsKMTQ0NzQ6ICAgdWludDhfdCBGRUNfQ0FQQUJMRToxOwoxNDQ3NDogICB1aW50OF90
IFVOQ09SUkVDVEVEX0JMT0NLX0VSUk9SX0NPVU5UX0NBUEFCTEU6MTsKMTQ0NzQ6ICAgdWludDhf
dCBDT1JSRUNURURfQkxPQ0tfRVJST1JfQ09VTlRfQ0FQQUJMRToxOwoxNDQ3NDogICB1aW50OF90
IEJJVF9FUlJPUl9DT1VOVF9DQVBBQkxFOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6NDsK
MTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcGNkX2RzY19zdXBwb3J0IHsKMTQ0NzQ6ICB1aW50OF90IERT
Q19TVVBQT1JUIDoxOwoxNDQ3NDogIHVpbnQ4X3QgRFNDX1BBU1NUSFJPVUdIX1NVUFBPUlQgOjE7
CjE0NDc0OiAgdWludDhfdCBSRVNFUlZFRCA6NjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBkcGNkX2RzY19hbGdvcml0aG1fcmV2aXNpb24gewoxNDQ3NDogIHVpbnQ4X3QgRFNDX1ZF
UlNJT05fTUFKT1IgOjQ7CjE0NDc0OiAgdWludDhfdCBEU0NfVkVSU0lPTl9NSU5PUiA6NDsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcGNkX2RzY19yY19idWZmZXJfYmxvY2tfc2l6
ZSB7CjE0NDc0OiAgdWludDhfdCBSQ19CTE9DS19CVUZGRVJfU0laRSA6MjsKMTQ0NzQ6ICB1aW50
OF90IFJFU0VSVkVEIDo2OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRwY2RfZHNj
X3NsaWNlX2NhcGFiaWxpdHkxIHsKMTQ0NzQ6ICB1aW50OF90IE9ORV9TTElDRV9QRVJfRFBfRFND
X1NJTktfREVWSUNFIDoxOwoxNDQ3NDogIHVpbnQ4X3QgVFdPX1NMSUNFU19QRVJfRFBfRFNDX1NJ
TktfREVWSUNFIDoxOwoxNDQ3NDogIHVpbnQ4X3QgUkVTRVJWRUQgOjE7CjE0NDc0OiAgdWludDhf
dCBGT1VSX1NMSUNFU19QRVJfRFBfRFNDX1NJTktfREVWSUNFIDoxOwoxNDQ3NDogIHVpbnQ4X3Qg
U0lYX1NMSUNFU19QRVJfRFBfRFNDX1NJTktfREVWSUNFIDoxOwoxNDQ3NDogIHVpbnQ4X3QgRUlH
SFRfU0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0UgOjE7CjE0NDc0OiAgdWludDhfdCBURU5f
U0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0UgOjE7CjE0NDc0OiAgdWludDhfdCBUV0VMVkVf
U0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0UgOjE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZHBjZF9kc2NfbGluZV9idWZmZXJfYml0X2RlcHRoIHsKMTQ0NzQ6ICB1aW50OF90
IExJTkVfQlVGRkVSX0JJVF9ERVBUSCA6NDsKMTQ0NzQ6ICB1aW50OF90IFJFU0VSVkVEIDo0Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRwY2RfZHNjX2Jsb2NrX3ByZWRpY3Rpb25f
c3VwcG9ydCB7CjE0NDc0OiAgdWludDhfdCBCTE9DS19QUkVESUNUSU9OX1NVUFBPUlQ6MTsKMTQ0
NzQ6ICB1aW50OF90IFJFU0VSVkVEIDo3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRwY2RfbWF4aW11bV9iaXRzX3Blcl9waXhlbF9zdXBwb3J0ZWRfYnlfdGhlX2RlY29tcHJlc3Nv
ciB7CjE0NDc0OiAgdWludDhfdCBNQVhJTVVNX0JJVFNfUEVSX1BJWEVMX1NVUFBPUlRFRF9CWV9U
SEVfREVDT01QUkVTU09SX0xPVyA6NzsKMTQ0NzQ6ICB1aW50OF90IE1BWElNVU1fQklUU19QRVJf
UElYRUxfU1VQUE9SVEVEX0JZX1RIRV9ERUNPTVBSRVNTT1JfSElHSCA6NzsKMTQ0NzQ6ICB1aW50
OF90IFJFU0VSVkVEIDoyOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRwY2RfZHNj
X2RlY29kZXJfY29sb3JfZm9ybWF0X2NhcGFiaWxpdGllcyB7CjE0NDc0OiAgdWludDhfdCBSR0Jf
U1VQUE9SVCA6MTsKMTQ0NzQ6ICB1aW50OF90IFlfQ0JfQ1JfNDQ0X1NVUFBPUlQgOjE7CjE0NDc0
OiAgdWludDhfdCBZX0NCX0NSX1NJTVBMRV80MjJfU1VQUE9SVCA6MTsKMTQ0NzQ6ICB1aW50OF90
IFlfQ0JfQ1JfTkFUSVZFXzQyMl9TVVBQT1JUIDoxOwoxNDQ3NDogIHVpbnQ4X3QgWV9DQl9DUl9O
QVRJVkVfNDIwX1NVUFBPUlQgOjE7CjE0NDc0OiAgdWludDhfdCBSRVNFUlZFRCA6MzsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcGNkX2RzY19kZWNvZGVyX2NvbG9yX2RlcHRoX2Nh
cGFiaWxpdGllcyB7CjE0NDc0OiAgdWludDhfdCBSRVNFUlZFRDAgOjE7CjE0NDc0OiAgdWludDhf
dCBFSUdIVF9CSVRTX1BFUl9DT0xPUl9TVVBQT1JUIDoxOwoxNDQ3NDogIHVpbnQ4X3QgVEVOX0JJ
VFNfUEVSX0NPTE9SX1NVUFBPUlQgOjE7CjE0NDc0OiAgdWludDhfdCBUV0VMVkVfQklUU19QRVJf
Q09MT1JfU1VQUE9SVCA6MTsKMTQ0NzQ6ICB1aW50OF90IFJFU0VSVkVEMSA6NDsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcGNkX3BlYWtfZHNjX3Rocm91Z2hwdXRfZHNjX3Npbmsg
ewoxNDQ3NDogIHVpbnQ4X3QgVEhST1VHSFBVVF9NT0RFXzA6NDsKMTQ0NzQ6ICB1aW50OF90IFRI
Uk9VR0hQVVRfTU9ERV8xOjQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBjZF9k
c2Nfc2xpY2VfY2FwYWJpbGl0aWVzXzIgewoxNDQ3NDogIHVpbnQ4X3QgU0lYVEVFTl9TTElDRVNf
UEVSX0RTQ19TSU5LX0RFVklDRSA6MTsKMTQ0NzQ6ICB1aW50OF90IFRXRU5UWV9TTElDRVNfUEVS
X0RTQ19TSU5LX0RFVklDRSA6MTsKMTQ0NzQ6ICB1aW50OF90IFRXRU5UWUZPVVJfU0xJQ0VTX1BF
Ul9EU0NfU0lOS19ERVZJQ0UgOjE7CjE0NDc0OiAgdWludDhfdCBSRVNFUlZFRCA6NTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcGNkX2JpdHNfcGVyX3BpeGVsX2luY3JlbWVudHsK
MTQ0NzQ6ICB1aW50OF90IElOQ1JFTUVOVF9PRl9CSVRTX1BFUl9QSVhFTF9TVVBQT1JURUQgOjM7
CjE0NDc0OiAgdWludDhfdCBSRVNFUlZFRCA6NTsKMTQ0NzQ6IH07CjE0NDc0OiB1bmlvbiBkcGNk
X2RzY19iYXNpY19jYXBhYmlsaXRpZXMgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHN0cnVj
dCBkcGNkX2RzY19zdXBwb3J0IGRzY19zdXBwb3J0OwoxNDQ3NDogICBzdHJ1Y3QgZHBjZF9kc2Nf
YWxnb3JpdGhtX3JldmlzaW9uIGRzY19hbGdvcml0aG1fcmV2aXNpb247CjE0NDc0OiAgIHN0cnVj
dCBkcGNkX2RzY19yY19idWZmZXJfYmxvY2tfc2l6ZSBkc2NfcmNfYnVmZmVyX2Jsb2NrX3NpemU7
CjE0NDc0OiAgIHVpbnQ4X3QgZHNjX3JjX2J1ZmZlcl9zaXplOwoxNDQ3NDogICBzdHJ1Y3QgZHBj
ZF9kc2Nfc2xpY2VfY2FwYWJpbGl0eTEgZHNjX3NsaWNlX2NhcGFiaWxpdGllc18xOwoxNDQ3NDog
ICBzdHJ1Y3QgZHBjZF9kc2NfbGluZV9idWZmZXJfYml0X2RlcHRoIGRzY19saW5lX2J1ZmZlcl9i
aXRfZGVwdGg7CjE0NDc0OiAgIHN0cnVjdCBkcGNkX2RzY19ibG9ja19wcmVkaWN0aW9uX3N1cHBv
cnQgZHNjX2Jsb2NrX3ByZWRpY3Rpb25fc3VwcG9ydDsKMTQ0NzQ6ICAgc3RydWN0IGRwY2RfbWF4
aW11bV9iaXRzX3Blcl9waXhlbF9zdXBwb3J0ZWRfYnlfdGhlX2RlY29tcHJlc3NvciBtYXhpbXVt
X2JpdHNfcGVyX3BpeGVsX3N1cHBvcnRlZF9ieV90aGVfZGVjb21wcmVzc29yOwoxNDQ3NDogICBz
dHJ1Y3QgZHBjZF9kc2NfZGVjb2Rlcl9jb2xvcl9mb3JtYXRfY2FwYWJpbGl0aWVzIGRzY19kZWNv
ZGVyX2NvbG9yX2Zvcm1hdF9jYXBhYmlsaXRpZXM7CjE0NDc0OiAgIHN0cnVjdCBkcGNkX2RzY19k
ZWNvZGVyX2NvbG9yX2RlcHRoX2NhcGFiaWxpdGllcyBkc2NfZGVjb2Rlcl9jb2xvcl9kZXB0aF9j
YXBhYmlsaXRpZXM7CjE0NDc0OiAgIHN0cnVjdCBkcGNkX3BlYWtfZHNjX3Rocm91Z2hwdXRfZHNj
X3NpbmsgcGVha19kc2NfdGhyb3VnaHB1dF9kc2Nfc2luazsKMTQ0NzQ6ICAgdWludDhfdCBkc2Nf
bWF4aW11bV9zbGljZV93aWR0aDsKMTQ0NzQ6ICAgc3RydWN0IGRwY2RfZHNjX3NsaWNlX2NhcGFi
aWxpdGllc18yIGRzY19zbGljZV9jYXBhYmlsaXRpZXNfMjsKMTQ0NzQ6ICAgdWludDhfdCByZXNl
cnZlZDsKMTQ0NzQ6ICAgc3RydWN0IGRwY2RfYml0c19wZXJfcGl4ZWxfaW5jcmVtZW50IGJpdHNf
cGVyX3BpeGVsX2luY3JlbWVudDsKMTQ0NzQ6ICB9IGZpZWxkczsKMTQ0NzQ6ICB1aW50OF90IHJh
d1sxNl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkcGNkX2RzY19leHRfY2FwYWJp
bGl0aWVzIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IEJSQU5DSF9PVkVSQUxM
X1RIUk9VR0hQVVRfMDsKMTQ0NzQ6ICAgdWludDhfdCBCUkFOQ0hfT1ZFUkFMTF9USFJPVUdIUFVU
XzE7CjE0NDc0OiAgIHVpbnQ4X3QgQlJBTkNIX01BWF9MSU5FX1dJRFRIOwoxNDQ3NDogIH0gZmll
bGRzOwoxNDQ3NDogIHVpbnQ4X3QgcmF3WzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGRwY2RfZHNjX2NhcGFiaWxpdGllcyB7CjE0NDc0OiAgdW5pb24gZHBjZF9kc2NfYmFzaWNf
Y2FwYWJpbGl0aWVzIGRzY19iYXNpY19jYXBzOwoxNDQ3NDogIHVuaW9uIGRwY2RfZHNjX2V4dF9j
YXBhYmlsaXRpZXMgZHNjX2V4dF9jYXBzOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzYgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5oIiAyCjE0NDc0OiAj
IDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY19od190eXBl
cy5oIiAxCjE0NDc0OiAjIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvZGNfaHdfdHlwZXMuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvc2lnbmFsX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMzQgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL3NpZ25hbF90eXBl
cy5oIgoxNDQ3NDogZW51bSBzaWduYWxfdHlwZSB7CjE0NDc0OiAgU0lHTkFMX1RZUEVfTk9ORSA9
IDBMLAoxNDQ3NDogIFNJR05BTF9UWVBFX0RWSV9TSU5HTEVfTElOSyA9ICgxIDw8IDApLAoxNDQ3
NDogIFNJR05BTF9UWVBFX0RWSV9EVUFMX0xJTksgPSAoMSA8PCAxKSwKMTQ0NzQ6ICBTSUdOQUxf
VFlQRV9IRE1JX1RZUEVfQSA9ICgxIDw8IDIpLAoxNDQ3NDogIFNJR05BTF9UWVBFX0xWRFMgPSAo
MSA8PCAzKSwKMTQ0NzQ6ICBTSUdOQUxfVFlQRV9SR0IgPSAoMSA8PCA0KSwKMTQ0NzQ6ICBTSUdO
QUxfVFlQRV9ESVNQTEFZX1BPUlQgPSAoMSA8PCA1KSwKMTQ0NzQ6ICBTSUdOQUxfVFlQRV9ESVNQ
TEFZX1BPUlRfTVNUID0gKDEgPDwgNiksCjE0NDc0OiAgU0lHTkFMX1RZUEVfRURQID0gKDEgPDwg
NyksCjE0NDc0OiAgU0lHTkFMX1RZUEVfVklSVFVBTCA9ICgxIDw8IDkpLAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2hkbWlfdG1kc19zaWduYWwoZW51bSBzaWdu
YWxfdHlwZSBzaWduYWwpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChzaWduYWwgPT0gU0lHTkFM
X1RZUEVfSERNSV9UWVBFX0EpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2hk
bWlfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biAoc2lnbmFsID09IFNJR05BTF9UWVBFX0hETUlfVFlQRV9BKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCBkY19pc19kcF9zc3Rfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiAoc2lnbmFsID09IFNJR05BTF9UWVBFX0RJU1BMQVlfUE9S
VCB8fAoxNDQ3NDogICBzaWduYWwgPT0gU0lHTkFMX1RZUEVfRURQKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBkY19pc19kcF9zaWduYWwoZW51bSBzaWduYWxfdHlwZSBzaWduYWwpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JU
IHx8CjE0NDc0OiAgIHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9FRFAgfHwKMTQ0NzQ6ICAgc2lnbmFs
ID09IFNJR05BTF9UWVBFX0RJU1BMQVlfUE9SVF9NU1QpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIGRjX2lzX2VtYmVkZGVkX3NpZ25hbChlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9FRFAgfHwgc2lnbmFs
ID09IFNJR05BTF9UWVBFX0xWRFMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lz
X2x2ZHNfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAoc2lnbmFsID09IFNJR05BTF9UWVBFX0xWRFMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIGRjX2lzX2R2aV9zaWduYWwoZW51bSBzaWduYWxfdHlwZSBzaWduYWwpCjE0NDc0OiB7
CjE0NDc0OiAgc3dpdGNoIChzaWduYWwpIHsKMTQ0NzQ6ICBjYXNlIFNJR05BTF9UWVBFX0RWSV9T
SU5HTEVfTElOSzoKMTQ0NzQ6ICBjYXNlIFNJR05BTF9UWVBFX0RWSV9EVUFMX0xJTks6CjE0NDc0
OiAgIHJldHVybiB0cnVlOwoxNDQ3NDogIGJyZWFrOwoxNDQ3NDogIGRlZmF1bHQ6CjE0NDc0OiAg
IHJldHVybiBmYWxzZTsKMTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGNf
aXNfZHZpX3NpbmdsZV9saW5rX3NpZ25hbChlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9EVklfU0lOR0xFX0xJTksp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2R1YWxfbGlua19zaWduYWwoZW51
bSBzaWduYWxfdHlwZSBzaWduYWwpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChzaWduYWwgPT0g
U0lHTkFMX1RZUEVfRFZJX0RVQUxfTElOSyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
ZGNfaXNfYXVkaW9fY2FwYWJsZV9zaWduYWwoZW51bSBzaWduYWxfdHlwZSBzaWduYWwpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUIHx8
CjE0NDc0OiAgIHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9ESVNQTEFZX1BPUlRfTVNUIHx8CjE0NDc0
OiAgIGRjX2lzX2hkbWlfc2lnbmFsKHNpZ25hbCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIGRjX2lzX3ZpcnR1YWxfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAoc2lnbmFsID09IFNJR05BTF9UWVBFX1ZJUlRVQUwpOwoxNDQ3NDog
fQoxNDQ3NDogIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RjX2h3X3R5cGVzLmgiIDIKMTQ0NzQ6ICMgNDUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9kY19od190eXBlcy5oIgoxNDQ3NDogdW5pb24gbGFyZ2VfaW50ZWdl
ciB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDMyX3QgbG93X3BhcnQ7CjE0NDc0OiAg
IGludDMyX3QgaGlnaF9wYXJ0OwoxNDQ3NDogIH07CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgewox
NDQ3NDogICB1aW50MzJfdCBsb3dfcGFydDsKMTQ0NzQ6ICAgaW50MzJfdCBoaWdoX3BhcnQ7CjE0
NDc0OiAgfSB1OwoxNDQ3NDogCjE0NDc0OiAgaW50NjRfdCBxdWFkX3BhcnQ7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19wbGFuZV9hZGRyX3R5cGUgewox
NDQ3NDogIFBMTl9BRERSX1RZUEVfR1JBUEhJQ1MgPSAwLAoxNDQ3NDogIFBMTl9BRERSX1RZUEVf
R1JQSF9TVEVSRU8sCjE0NDc0OiAgUExOX0FERFJfVFlQRV9WSURFT19QUk9HUkVTU0lWRSwKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzIHsKMTQ0NzQ6ICBl
bnVtIGRjX3BsYW5lX2FkZHJfdHlwZSB0eXBlOwoxNDQ3NDogIGJvb2wgdG16X3N1cmZhY2U7CjE0
NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3R7CjE0NDc0OiAgICB1bmlvbiBsYXJnZV9pbnRl
Z2VyIGFkZHI7CjE0NDc0OiAgICB1bmlvbiBsYXJnZV9pbnRlZ2VyIG1ldGFfYWRkcjsKMTQ0NzQ6
ICAgIHVuaW9uIGxhcmdlX2ludGVnZXIgZGNjX2NvbnN0X2NvbG9yOwoxNDQ3NDogICB9IGdycGg7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdW5pb24gbGFyZ2Vf
aW50ZWdlciBsZWZ0X2FkZHI7CjE0NDc0OiAgICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGxlZnRfbWV0
YV9hZGRyOwoxNDQ3NDogICAgdW5pb24gbGFyZ2VfaW50ZWdlciBsZWZ0X2RjY19jb25zdF9jb2xv
cjsKMTQ0NzQ6IAoxNDQ3NDogICAgdW5pb24gbGFyZ2VfaW50ZWdlciByaWdodF9hZGRyOwoxNDQ3
NDogICAgdW5pb24gbGFyZ2VfaW50ZWdlciByaWdodF9tZXRhX2FkZHI7CjE0NDc0OiAgICB1bmlv
biBsYXJnZV9pbnRlZ2VyIHJpZ2h0X2RjY19jb25zdF9jb2xvcjsKMTQ0NzQ6IAoxNDQ3NDogICB9
IGdycGhfc3RlcmVvOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAg
IHVuaW9uIGxhcmdlX2ludGVnZXIgbHVtYV9hZGRyOwoxNDQ3NDogICAgdW5pb24gbGFyZ2VfaW50
ZWdlciBsdW1hX21ldGFfYWRkcjsKMTQ0NzQ6ICAgIHVuaW9uIGxhcmdlX2ludGVnZXIgbHVtYV9k
Y2NfY29uc3RfY29sb3I7CjE0NDc0OiAKMTQ0NzQ6ICAgIHVuaW9uIGxhcmdlX2ludGVnZXIgY2hy
b21hX2FkZHI7CjE0NDc0OiAgICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGNocm9tYV9tZXRhX2FkZHI7
CjE0NDc0OiAgICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGNocm9tYV9kY2NfY29uc3RfY29sb3I7CjE0
NDc0OiAgIH0gdmlkZW9fcHJvZ3Jlc3NpdmU7CjE0NDc0OiAgfTsKMTQ0NzQ6IAoxNDQ3NDogIHVu
aW9uIGxhcmdlX2ludGVnZXIgcGFnZV90YWJsZV9iYXNlOwoxNDQ3NDogCjE0NDc0OiAgdWludDhf
dCB2bWlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX3NpemUgewoxNDQ3NDog
IGludCB3aWR0aDsKMTQ0NzQ6ICBpbnQgaGVpZ2h0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHJlY3QgewoxNDQ3NDogIGludCB4OwoxNDQ3NDogIGludCB5OwoxNDQ3NDogIGludCB3
aWR0aDsKMTQ0NzQ6ICBpbnQgaGVpZ2h0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHBsYW5lX3NpemUgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50
IHN1cmZhY2VfcGl0Y2g7CjE0NDc0OiAgaW50IGNocm9tYV9waXRjaDsKMTQ0NzQ6ICBzdHJ1Y3Qg
cmVjdCBzdXJmYWNlX3NpemU7CjE0NDc0OiAgc3RydWN0IHJlY3QgY2hyb21hX3NpemU7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFtIHsKMTQ0NzQ6ICBi
b29sIGVuYWJsZTsKMTQ0NzQ6IAoxNDQ3NDogIGludCBtZXRhX3BpdGNoOwoxNDQ3NDogIGJvb2wg
aW5kZXBlbmRlbnRfNjRiX2Jsa3M7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgbWV0YV9waXRjaF9jOwox
NDQ3NDogIGJvb2wgaW5kZXBlbmRlbnRfNjRiX2Jsa3NfYzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCB7CjE0NDc0OiAgU1VSRkFDRV9Q
SVhFTF9GT1JNQVRfR1JQSF9CRUdJTiA9IDAsCjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVM
X0ZPUk1BVF9HUlBIX1BBTEVUQV8yNTZfQ09MT1JTID0KMTQ0NzQ6ICAgU1VSRkFDRV9QSVhFTF9G
T1JNQVRfR1JQSF9CRUdJTiwKMTQ0NzQ6IAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dS
UEhfQVJHQjE1NTUsCjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX1JH
QjU2NSwKMTQ0NzQ6IAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQVJHQjg4ODgs
CjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FCR1I4ODg4LAoxNDQ3
NDogCjE0NDc0OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BUkdCMjEwMTAxMCwKMTQ0NzQ6
IAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQUJHUjIxMDEwMTAsCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BQkdSMjEw
MTAxMF9YUl9CSUFTLAoxNDQ3NDogCjE0NDc0OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9B
UkdCMTYxNjE2MTYsCjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FS
R0IxNjE2MTYxNkYsCjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FC
R1IxNjE2MTYxNkYsCjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX1JH
QjExMTExMF9GSVgsCjE0NDc0OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9CR1IxMDExMTFf
RklYLAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfUkdCMTExMTEwX0ZMT0FULAox
NDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQkdSMTAxMTExX0ZMT0FULAoxNDQ3NDog
IFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJREVPX0JFR0lOLAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxf
Rk9STUFUX1ZJREVPXzQyMF9ZQ2JDciA9CjE0NDc0OiAgIFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJ
REVPX0JFR0lOLAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJREVPXzQyMF9ZQ3JDYiwK
MTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT180MjBfMTBicGNfWUNiQ3IsCjE0NDc0
OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfVklERU9fNDIwXzEwYnBjX1lDckNiLAoxNDQ3NDogICBT
VVJGQUNFX1BJWEVMX0ZPUk1BVF9TVUJTQU1QTEVfRU5ELAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxf
Rk9STUFUX1ZJREVPX0FDcllDYjIxMDEwMTAsCjE0NDc0OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRf
VklERU9fQ3JZQ2JBMTAxMDEwMiwKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT19B
WUNyQ2I4ODg4LAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0lOVkFMSUQKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
bnVtIHBpeGVsX2Zvcm1hdCB7CjE0NDc0OiAKMTQ0NzQ6ICBQSVhFTF9GT1JNQVRfVU5JTklUSUFM
SVpFRCwKMTQ0NzQ6ICBQSVhFTF9GT1JNQVRfSU5ERVg4LAoxNDQ3NDogIFBJWEVMX0ZPUk1BVF9S
R0I1NjUsCjE0NDc0OiAgUElYRUxfRk9STUFUX0FSR0I4ODg4LAoxNDQ3NDogIFBJWEVMX0ZPUk1B
VF9BUkdCMjEwMTAxMCwKMTQ0NzQ6ICBQSVhFTF9GT1JNQVRfQVJHQjIxMDEwMTBfWFJCSUFTLAox
NDQ3NDogIFBJWEVMX0ZPUk1BVF9GUDE2LAoxNDQ3NDogCjE0NDc0OiAgUElYRUxfRk9STUFUXzQy
MEJQUDgsCjE0NDc0OiAgUElYRUxfRk9STUFUXzQyMEJQUDEwLAoxNDQ3NDogCjE0NDc0OiAgUElY
RUxfRk9STUFUX0lOVkFMSUQsCjE0NDc0OiAKMTQ0NzQ6ICBQSVhFTF9GT1JNQVRfR1JQSF9CRUdJ
TiA9IFBJWEVMX0ZPUk1BVF9JTkRFWDgsCjE0NDc0OiAgUElYRUxfRk9STUFUX0dSUEhfRU5EID0g
UElYRUxfRk9STUFUX0ZQMTYsCjE0NDc0OiAgUElYRUxfRk9STUFUX1ZJREVPX0JFR0lOID0gUElY
RUxfRk9STUFUXzQyMEJQUDgsCjE0NDc0OiAgUElYRUxfRk9STUFUX1ZJREVPX0VORCA9IFBJWEVM
X0ZPUk1BVF80MjBCUFAxMCwKMTQ0NzQ6ICBQSVhFTF9GT1JNQVRfVU5LTk9XTgoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSB0aWxlX3NwbGl0X3ZhbHVlcyB7CjE0NDc0OiAgRENfRElTUExB
WV9NSUNST19USUxJTkcgPSAweDAsCjE0NDc0OiAgRENfVEhJTl9NSUNST19USUxJTkcgPSAweDEs
CjE0NDc0OiAgRENfREVQVEhfTUlDUk9fVElMSU5HID0gMHgyLAoxNDQ3NDogIERDX1JPVEFURURf
TUlDUk9fVElMSU5HID0gMHgzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB0cmlwbGVC
dWZmZXJfZW5hYmxlIHsKMTQ0NzQ6ICBEQ19UUklQTEVCVUZGRVJfRElTQUJMRSA9IDB4MCwKMTQ0
NzQ6ICBEQ19UUklQTEVCVUZGRVJfRU5BQkxFID0gMHgxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhcnJheV9tb2RlX3ZhbHVlcyB7CjE0NDc0
OiAgRENfQVJSQVlfTElORUFSX0dFTkVSQUwgPSAwLAoxNDQ3NDogIERDX0FSUkFZX0xJTkVBUl9B
TExJR05FRCwKMTQ0NzQ6ICBEQ19BUlJBWV8xRF9USUxFRF9USElOMSwKMTQ0NzQ6ICBEQ19BUlJB
WV8xRF9USUxFRF9USElDSywKMTQ0NzQ6ICBEQ19BUlJBWV8yRF9USUxFRF9USElOMSwKMTQ0NzQ6
ICBEQ19BUlJBWV9QUlRfVElMRURfVEhJTjEsCjE0NDc0OiAgRENfQVJSQVlfUFJUXzJEX1RJTEVE
X1RISU4xLAoxNDQ3NDogIERDX0FSUkFZXzJEX1RJTEVEX1RISUNLLAoxNDQ3NDogIERDX0FSUkFZ
XzJEX1RJTEVEX1hfVEhJQ0ssCjE0NDc0OiAgRENfQVJSQVlfUFJUX1RJTEVEX1RISUNLLAoxNDQ3
NDogIERDX0FSUkFZX1BSVF8yRF9USUxFRF9USElDSywKMTQ0NzQ6ICBEQ19BUlJBWV9QUlRfM0Rf
VElMRURfVEhJTjEsCjE0NDc0OiAgRENfQVJSQVlfM0RfVElMRURfVEhJTjEsCjE0NDc0OiAgRENf
QVJSQVlfM0RfVElMRURfVEhJQ0ssCjE0NDc0OiAgRENfQVJSQVlfM0RfVElMRURfWF9USElDSywK
MTQ0NzQ6ICBEQ19BUlJBWV9QUlRfM0RfVElMRURfVEhJQ0ssCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBlbnVtIHRpbGVfbW9kZV92YWx1ZXMgewoxNDQ3NDogIERDX0FERFJfU1VSRl9NSUNST19U
SUxJTkdfRElTUExBWSA9IDB4MCwKMTQ0NzQ6ICBEQ19BRERSX1NVUkZfTUlDUk9fVElMSU5HX05P
Tl9ESVNQTEFZID0gMHgxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBzd2l6emxlX21v
ZGVfdmFsdWVzIHsKMTQ0NzQ6ICBEQ19TV19MSU5FQVIgPSAwLAoxNDQ3NDogIERDX1NXXzI1NkJf
UyA9IDEsCjE0NDc0OiAgRENfU1dfMjU2X0QgPSAyLAoxNDQ3NDogIERDX1NXXzI1Nl9SID0gMywK
MTQ0NzQ6ICBEQ19TV180S0JfUyA9IDUsCjE0NDc0OiAgRENfU1dfNEtCX0QgPSA2LAoxNDQ3NDog
IERDX1NXXzRLQl9SID0gNywKMTQ0NzQ6ICBEQ19TV182NEtCX1MgPSA5LAoxNDQ3NDogIERDX1NX
XzY0S0JfRCA9IDEwLAoxNDQ3NDogIERDX1NXXzY0S0JfUiA9IDExLAoxNDQ3NDogIERDX1NXX1ZB
Ul9TID0gMTMsCjE0NDc0OiAgRENfU1dfVkFSX0QgPSAxNCwKMTQ0NzQ6ICBEQ19TV19WQVJfUiA9
IDE1LAoxNDQ3NDogIERDX1NXXzY0S0JfU19UID0gMTcsCjE0NDc0OiAgRENfU1dfNjRLQl9EX1Qg
PSAxOCwKMTQ0NzQ6ICBEQ19TV180S0JfU19YID0gMjEsCjE0NDc0OiAgRENfU1dfNEtCX0RfWCA9
IDIyLAoxNDQ3NDogIERDX1NXXzRLQl9SX1ggPSAyMywKMTQ0NzQ6ICBEQ19TV182NEtCX1NfWCA9
IDI1LAoxNDQ3NDogIERDX1NXXzY0S0JfRF9YID0gMjYsCjE0NDc0OiAgRENfU1dfNjRLQl9SX1gg
PSAyNywKMTQ0NzQ6ICBEQ19TV19WQVJfU19YID0gMjksCjE0NDc0OiAgRENfU1dfVkFSX0RfWCA9
IDMwLAoxNDQ3NDogIERDX1NXX1ZBUl9SX1ggPSAzMSwKMTQ0NzQ6ICBEQ19TV19NQVggPSAzMiwK
MTQ0NzQ6ICBEQ19TV19VTktOT1dOID0gRENfU1dfTUFYCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiB1bmlvbiBkY190aWxpbmdfaW5mbyB7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IG51
bV9iYW5rczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
IHVuc2lnbmVkIGludCBiYW5rX3dpZHRoOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgYmFua193aWR0
aF9jOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5z
aWduZWQgaW50IGJhbmtfaGVpZ2h0OwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgYmFua19oZWlnaHRf
YzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHRpbGVfYXNw
ZWN0OwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgdGlsZV9hc3BlY3RfYzsKMTQ0NzQ6ICMgMzE3ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfaHdfdHlwZXMuaCIK
MTQ0NzQ6ICAgZW51bSB0aWxlX3NwbGl0X3ZhbHVlcyB0aWxlX3NwbGl0OwoxNDQ3NDogICBlbnVt
IHRpbGVfc3BsaXRfdmFsdWVzIHRpbGVfc3BsaXRfYzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgZW51bSB0aWxlX21vZGVfdmFsdWVzIHRp
bGVfbW9kZTsKMTQ0NzQ6ICAgZW51bSB0aWxlX21vZGVfdmFsdWVzIHRpbGVfbW9kZV9jOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgaW50
IHBpcGVfY29uZmlnOwoxNDQ3NDogIyAzNDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9kY19od190eXBlcy5oIgoxNDQ3NDogICBlbnVtIGFycmF5X21vZGVfdmFs
dWVzIGFycmF5X21vZGU7CjE0NDc0OiAgfSBnZng4OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHsK
MTQ0NzQ6ICAgZW51bSBzd2l6emxlX21vZGVfdmFsdWVzIHN3aXp6bGU7CjE0NDc0OiAgIHVuc2ln
bmVkIGludCBudW1fcGlwZXM7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBtYXhfY29tcHJlc3NlZF9m
cmFnczsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHBpcGVfaW50ZXJsZWF2ZTsKMTQ0NzQ6IAoxNDQ3
NDogICB1bnNpZ25lZCBpbnQgbnVtX2JhbmtzOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVtX3No
YWRlcl9lbmdpbmVzOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVtX3JiX3Blcl9zZTsKMTQ0NzQ6
ICAgYm9vbCBzaGFkZXJFbmFibGU7CjE0NDc0OiAKMTQ0NzQ6ICAgYm9vbCBtZXRhX2xpbmVhcjsK
MTQ0NzQ6ICAgYm9vbCByYl9hbGlnbmVkOwoxNDQ3NDogICBib29sIHBpcGVfYWxpZ25lZDsKMTQ0
NzQ6ICB9IGdmeDk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfcm90
YXRpb25fYW5nbGUgewoxNDQ3NDogIFJPVEFUSU9OX0FOR0xFXzAgPSAwLAoxNDQ3NDogIFJPVEFU
SU9OX0FOR0xFXzkwLAoxNDQ3NDogIFJPVEFUSU9OX0FOR0xFXzE4MCwKMTQ0NzQ6ICBST1RBVElP
Tl9BTkdMRV8yNzAsCjE0NDc0OiAgUk9UQVRJT05fQU5HTEVfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IGVudW0gZGNfc2Nhbl9kaXJlY3Rpb24gewoxNDQ3NDogIFNDQU5fRElSRUNUSU9O
X1VOS05PV04gPSAwLAoxNDQ3NDogIFNDQU5fRElSRUNUSU9OX0hPUklaT05UQUwgPSAxLAoxNDQ3
NDogIFNDQU5fRElSRUNUSU9OX1ZFUlRJQ0FMID0gMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY19jdXJzb3JfcG9zaXRpb24gewoxNDQ3NDogIHVpbnQzMl90IHg7CjE0NDc0OiAg
dWludDMyX3QgeTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHhfaG90c3BvdDsKMTQ0NzQ6ICB1
aW50MzJfdCB5X2hvdHNwb3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBib29sIGVuYWJsZTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRj
X2N1cnNvcl9taV9wYXJhbSB7CjE0NDc0OiAgdW5zaWduZWQgaW50IHBpeGVsX2Nsa19raHo7CjE0
NDc0OiAgdW5zaWduZWQgaW50IHJlZl9jbGtfa2h6OwoxNDQ3NDogIHN0cnVjdCByZWN0IHZpZXdw
b3J0OwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGhfc2NhbGVfcmF0aW87CjE0NDc0OiAgc3Ry
dWN0IGZpeGVkMzFfMzIgdl9zY2FsZV9yYXRpbzsKMTQ0NzQ6ICBlbnVtIGRjX3JvdGF0aW9uX2Fu
Z2xlIHJvdGF0aW9uOwoxNDQ3NDogIGJvb2wgbWlycm9yOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIEdBTU1BX1JHQl8yNTZfRU5UUklFUyA9
IDI1NiwKMTQ0NzQ6ICBHQU1NQV9SR0JfRkxPQVRfMTAyNF9FTlRSSUVTID0gMTAyNCwKMTQ0NzQ6
ICBHQU1NQV9DU19URk1fMURfRU5UUklFUyA9IDQwOTYsCjE0NDc0OiAgR0FNTUFfQ1VTVE9NX0VO
VFJJRVMgPSA0MDk2LAoxNDQ3NDogIEdBTU1BX01BWF9FTlRSSUVTID0gNDA5NgoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19nYW1tYV90eXBlIHsKMTQ0NzQ6ICBHQU1NQV9SR0JfMjU2
ID0gMSwKMTQ0NzQ6ICBHQU1NQV9SR0JfRkxPQVRfMTAyNCA9IDIsCjE0NDc0OiAgR0FNTUFfQ1Nf
VEZNXzFEID0gMywKMTQ0NzQ6ICBHQU1NQV9DVVNUT00gPSA0LAoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gewoxNDQ3NDogIHVpbnQxNl90IG1hdHJpeFsx
Ml07CjE0NDc0OiAgYm9vbCBlbmFibGVfYWRqdXN0bWVudDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkY19yZ2JfZml4ZWQgewoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIHJlZDsK
MTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBncmVlbjsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8z
MiBibHVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX2dhbW1hIHsKMTQ0NzQ6
ICBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKMTQ0NzQ6ICBlbnVtIGRjX2dhbW1hX3R5cGUgdHlwZTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfZ2FtbWFfZW50cmllcyB7CjE0NDc0OiAgIHN0cnVjdCBmaXhlZDMxXzMyIHJlZFtHQU1NQV9N
QVhfRU5UUklFU107CjE0NDc0OiAgIHN0cnVjdCBmaXhlZDMxXzMyIGdyZWVuW0dBTU1BX01BWF9F
TlRSSUVTXTsKMTQ0NzQ6ICAgc3RydWN0IGZpeGVkMzFfMzIgYmx1ZVtHQU1NQV9NQVhfRU5UUklF
U107CjE0NDc0OiAgfSBlbnRyaWVzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9v
bCBpc19pZGVudGl0eTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDQ1NiAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiCjE0NDc0OiBlbnVtIGRjX2N1
cnNvcl9jb2xvcl9mb3JtYXQgewoxNDQ3NDogIENVUlNPUl9NT0RFX01PTk8sCjE0NDc0OiAgQ1VS
U09SX01PREVfQ09MT1JfMUJJVF9BTkQsCjE0NDc0OiAgQ1VSU09SX01PREVfQ09MT1JfUFJFX01V
TFRJUExJRURfQUxQSEEsCjE0NDc0OiAgQ1VSU09SX01PREVfQ09MT1JfVU5fUFJFX01VTFRJUExJ
RURfQUxQSEEsCjE0NDc0OiAgQ1VSU09SX01PREVfQ09MT1JfNjRCSVRfRlBfUFJFX01VTFRJUExJ
RUQsCjE0NDc0OiAgQ1VSU09SX01PREVfQ09MT1JfNjRCSVRfRlBfVU5fUFJFX01VTFRJUExJRUQK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGRjX2N1cnNvcl9hdHRyaWJ1dGVfZmxhZ3MgewoxNDQ3NDog
IHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQzMl90IEVOQUJMRV9NQUdOSUZJQ0FUSU9OOjE7CjE0NDc0
OiAgIHVpbnQzMl90IElOVkVSU0VfVFJBTlNQQVJFTlRfQ0xBTVBJTkc6MTsKMTQ0NzQ6ICAgdWlu
dDMyX3QgSE9SSVpPTlRBTF9NSVJST1I6MTsKMTQ0NzQ6ICAgdWludDMyX3QgVkVSVElDQUxfTUlS
Uk9SOjE7CjE0NDc0OiAgIHVpbnQzMl90IElOVkVSVF9QSVhFTF9EQVRBOjE7CjE0NDc0OiAgIHVp
bnQzMl90IFpFUk9fRVhQQU5TSU9OOjE7CjE0NDc0OiAgIHVpbnQzMl90IE1JTl9NQVhfSU5WRVJU
OjE7CjE0NDc0OiAgIHVpbnQzMl90IEVOQUJMRV9DVVJTT1JfREVHQU1NQToxOwoxNDQ3NDogICB1
aW50MzJfdCBSRVNFUlZFRDoyNDsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDMyX3QgdmFs
dWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMg
ewoxNDQ3NDogIHVuaW9uIGxhcmdlX2ludGVnZXIgYWRkcmVzczsKMTQ0NzQ6ICB1aW50MzJfdCBw
aXRjaDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3Qgd2lkdGg7CjE0NDc0OiAgdWlu
dDMyX3QgaGVpZ2h0OwoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19jdXJzb3JfY29sb3JfZm9ybWF0
IGNvbG9yX2Zvcm1hdDsKMTQ0NzQ6ICB1aW50MzJfdCBzZHJfd2hpdGVfbGV2ZWw7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIGVudW0gZGNfcm90YXRpb25fYW5nbGUgcm90YXRpb25fYW5nbGU7CjE0
NDc0OiAKMTQ0NzQ6ICB1bmlvbiBkY19jdXJzb3JfYXR0cmlidXRlX2ZsYWdzIGF0dHJpYnV0ZV9m
bGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcHBfY3Vyc29yX2F0dHJpYnV0
ZXMgewoxNDQ3NDogIGludCBiaWFzOwoxNDQ3NDogIGludCBzY2FsZTsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2NvbG9yX3NwYWNlIHsKMTQ0NzQ6ICBD
T0xPUl9TUEFDRV9VTktOT1dOLAoxNDQ3NDogIENPTE9SX1NQQUNFX1NSR0IsCjE0NDc0OiAgQ09M
T1JfU1BBQ0VfWFJfUkdCLAoxNDQ3NDogIENPTE9SX1NQQUNFX1NSR0JfTElNSVRFRCwKMTQ0NzQ6
ICBDT0xPUl9TUEFDRV9NU1JFRl9TQ1JHQiwKMTQ0NzQ6ICBDT0xPUl9TUEFDRV9ZQ0JDUjYwMSwK
MTQ0NzQ6ICBDT0xPUl9TUEFDRV9ZQ0JDUjcwOSwKMTQ0NzQ6ICBDT0xPUl9TUEFDRV9YVl9ZQ0Nf
NzA5LAoxNDQ3NDogIENPTE9SX1NQQUNFX1hWX1lDQ182MDEsCjE0NDc0OiAgQ09MT1JfU1BBQ0Vf
WUNCQ1I2MDFfTElNSVRFRCwKMTQ0NzQ6ICBDT0xPUl9TUEFDRV9ZQ0JDUjcwOV9MSU1JVEVELAox
NDQ3NDogIENPTE9SX1NQQUNFXzIwMjBfUkdCX0ZVTExSQU5HRSwKMTQ0NzQ6ICBDT0xPUl9TUEFD
RV8yMDIwX1JHQl9MSU1JVEVEUkFOR0UsCjE0NDc0OiAgQ09MT1JfU1BBQ0VfMjAyMF9ZQ0JDUiwK
MTQ0NzQ6ICBDT0xPUl9TUEFDRV9BRE9CRVJHQiwKMTQ0NzQ6ICBDT0xPUl9TUEFDRV9EQ0lQMywK
MTQ0NzQ6ICBDT0xPUl9TUEFDRV9ESVNQTEFZTkFUSVZFLAoxNDQ3NDogIENPTE9SX1NQQUNFX0RP
TEJZVklTSU9OLAoxNDQ3NDogIENPTE9SX1NQQUNFX0FQUENUUkwsCjE0NDc0OiAgQ09MT1JfU1BB
Q0VfQ1VTVE9NUE9JTlRTLAoxNDQ3NDogIENPTE9SX1NQQUNFX1lDQkNSNzA5X0JMQUNLLAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19kaXRoZXJfb3B0aW9uIHsKMTQ0NzQ6ICBESVRI
RVJfT1BUSU9OX0RFRkFVTFQsCjE0NDc0OiAgRElUSEVSX09QVElPTl9ESVNBQkxFLAoxNDQ3NDog
IERJVEhFUl9PUFRJT05fRk02LAoxNDQ3NDogIERJVEhFUl9PUFRJT05fRk04LAoxNDQ3NDogIERJ
VEhFUl9PUFRJT05fRk0xMCwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1NQQVRJQUw2X0ZSQU1FX1JB
TkRPTSwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1NQQVRJQUw4X0ZSQU1FX1JBTkRPTSwKMTQ0NzQ6
ICBESVRIRVJfT1BUSU9OX1NQQVRJQUwxMF9GUkFNRV9SQU5ET00sCjE0NDc0OiAgRElUSEVSX09Q
VElPTl9TUEFUSUFMNiwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1NQQVRJQUw4LAoxNDQ3NDogIERJ
VEhFUl9PUFRJT05fU1BBVElBTDEwLAoxNDQ3NDogIERJVEhFUl9PUFRJT05fVFJVTjYsCjE0NDc0
OiAgRElUSEVSX09QVElPTl9UUlVOOCwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1RSVU4xMCwKMTQ0
NzQ6ICBESVRIRVJfT1BUSU9OX1RSVU4xMF9TUEFUSUFMOCwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9O
X1RSVU4xMF9TUEFUSUFMNiwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1RSVU4xMF9GTTgsCjE0NDc0
OiAgRElUSEVSX09QVElPTl9UUlVOMTBfRk02LAoxNDQ3NDogIERJVEhFUl9PUFRJT05fVFJVTjEw
X1NQQVRJQUw4X0ZNNiwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1NQQVRJQUwxMF9GTTgsCjE0NDc0
OiAgRElUSEVSX09QVElPTl9TUEFUSUFMMTBfRk02LAoxNDQ3NDogIERJVEhFUl9PUFRJT05fVFJV
TjhfU1BBVElBTDYsCjE0NDc0OiAgRElUSEVSX09QVElPTl9UUlVOOF9GTTYsCjE0NDc0OiAgRElU
SEVSX09QVElPTl9TUEFUSUFMOF9GTTYsCjE0NDc0OiAgRElUSEVSX09QVElPTl9NQVggPSBESVRI
RVJfT1BUSU9OX1NQQVRJQUw4X0ZNNiwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX0lOVkFMSUQKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfcXVhbnRpemF0aW9uX3JhbmdlIHsKMTQ0NzQ6
ICBRVUFOVElaQVRJT05fUkFOR0VfVU5LTk9XTiwKMTQ0NzQ6ICBRVUFOVElaQVRJT05fUkFOR0Vf
RlVMTCwKMTQ0NzQ6ICBRVUFOVElaQVRJT05fUkFOR0VfTElNSVRFRAoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBkY19keW5hbWljX2V4cGFuc2lvbiB7CjE0NDc0OiAgRFlOX0VYUEFOU0lP
Tl9BVVRPLAoxNDQ3NDogIERZTl9FWFBBTlNJT05fRElTQUJMRQoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNjYWxpbmdfdGFwcyB7CjE0NDc0
OiAgdWludDMyX3Qgdl90YXBzOwoxNDQ3NDogIHVpbnQzMl90IGhfdGFwczsKMTQ0NzQ6ICB1aW50
MzJfdCB2X3RhcHNfYzsKMTQ0NzQ6ICB1aW50MzJfdCBoX3RhcHNfYzsKMTQ0NzQ6ICBib29sIGlu
dGVnZXJfc2NhbGluZzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfdGltaW5nX3N0
YW5kYXJkIHsKMTQ0NzQ6ICBEQ19USU1JTkdfU1RBTkRBUkRfVU5ERUZJTkVELAoxNDQ3NDogIERD
X1RJTUlOR19TVEFOREFSRF9ETVQsCjE0NDc0OiAgRENfVElNSU5HX1NUQU5EQVJEX0dURiwKMTQ0
NzQ6ICBEQ19USU1JTkdfU1RBTkRBUkRfQ1ZULAoxNDQ3NDogIERDX1RJTUlOR19TVEFOREFSRF9D
VlRfUkIsCjE0NDc0OiAgRENfVElNSU5HX1NUQU5EQVJEX0NFQTc3MCwKMTQ0NzQ6ICBEQ19USU1J
TkdfU1RBTkRBUkRfQ0VBODYxLAoxNDQ3NDogIERDX1RJTUlOR19TVEFOREFSRF9IRE1JLAoxNDQ3
NDogIERDX1RJTUlOR19TVEFOREFSRF9UVl9OVFNDLAoxNDQ3NDogIERDX1RJTUlOR19TVEFOREFS
RF9UVl9OVFNDX0osCjE0NDc0OiAgRENfVElNSU5HX1NUQU5EQVJEX1RWX1BBTCwKMTQ0NzQ6ICBE
Q19USU1JTkdfU1RBTkRBUkRfVFZfUEFMX00sCjE0NDc0OiAgRENfVElNSU5HX1NUQU5EQVJEX1RW
X1BBTF9DTiwKMTQ0NzQ6ICBEQ19USU1JTkdfU1RBTkRBUkRfVFZfU0VDQU0sCjE0NDc0OiAgRENf
VElNSU5HX1NUQU5EQVJEX0VYUExJQ0lULAoxNDQ3NDogCjE0NDc0OiAgRENfVElNSU5HX1NUQU5E
QVJEX1VTRVJfT1ZFUlJJREUsCjE0NDc0OiAKMTQ0NzQ6ICBEQ19USU1JTkdfU1RBTkRBUkRfTUFY
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2NvbG9yX2RlcHRoIHsKMTQ0NzQ6ICBD
T0xPUl9ERVBUSF9VTkRFRklORUQsCjE0NDc0OiAgQ09MT1JfREVQVEhfNjY2LAoxNDQ3NDogIENP
TE9SX0RFUFRIXzg4OCwKMTQ0NzQ6ICBDT0xPUl9ERVBUSF8xMDEwMTAsCjE0NDc0OiAgQ09MT1Jf
REVQVEhfMTIxMjEyLAoxNDQ3NDogIENPTE9SX0RFUFRIXzE0MTQxNCwKMTQ0NzQ6ICBDT0xPUl9E
RVBUSF8xNjE2MTYsCjE0NDc0OiAgQ09MT1JfREVQVEhfOTk5LAoxNDQ3NDogIENPTE9SX0RFUFRI
XzExMTExMSwKMTQ0NzQ6ICBDT0xPUl9ERVBUSF9DT1VOVAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogZW51bSBkY19waXhlbF9lbmNvZGluZyB7CjE0NDc0OiAgUElYRUxfRU5DT0RJTkdfVU5ERUZJ
TkVELAoxNDQ3NDogIFBJWEVMX0VOQ09ESU5HX1JHQiwKMTQ0NzQ6ICBQSVhFTF9FTkNPRElOR19Z
Q0JDUjQyMiwKMTQ0NzQ6ICBQSVhFTF9FTkNPRElOR19ZQ0JDUjQ0NCwKMTQ0NzQ6ICBQSVhFTF9F
TkNPRElOR19ZQ0JDUjQyMCwKMTQ0NzQ6ICBQSVhFTF9FTkNPRElOR19DT1VOVAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19hc3BlY3RfcmF0aW8gewoxNDQ3NDogIEFTUEVDVF9SQVRJ
T19OT19EQVRBLAoxNDQ3NDogIEFTUEVDVF9SQVRJT180XzMsCjE0NDc0OiAgQVNQRUNUX1JBVElP
XzE2XzksCjE0NDc0OiAgQVNQRUNUX1JBVElPXzY0XzI3LAoxNDQ3NDogIEFTUEVDVF9SQVRJT18y
NTZfMTM1LAoxNDQ3NDogIEFTUEVDVF9SQVRJT19GVVRVUkUKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IGVudW0gc2Nhbm5pbmdfdHlwZSB7CjE0NDc0OiAgU0NBTk5JTkdfVFlQRV9OT0RBVEEgPSAw
LAoxNDQ3NDogIFNDQU5OSU5HX1RZUEVfT1ZFUlNDQU4sCjE0NDc0OiAgU0NBTk5JTkdfVFlQRV9V
TkRFUlNDQU4sCjE0NDc0OiAgU0NBTk5JTkdfVFlQRV9GVVRVUkUsCjE0NDc0OiAgU0NBTk5JTkdf
VFlQRV9VTkRFRklORUQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19jcnRjX3Rp
bWluZ19mbGFncyB7CjE0NDc0OiAgdWludDMyX3QgSU5URVJMQUNFIDoxOwoxNDQ3NDogIHVpbnQz
Ml90IEhTWU5DX1BPU0lUSVZFX1BPTEFSSVRZIDoxOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3Qg
VlNZTkNfUE9TSVRJVkVfUE9MQVJJVFkgOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQz
Ml90IEhPUlpfQ09VTlRfQllfVFdPOjE7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBFWENMVVNJ
VkVfM0QgOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IFJJR0hUX0VZRV8zRF9Q
T0xBUklUWSA6MTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IFNVQl9TQU1QTEVfM0QgOjE7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBVU0VfSU5fM0RfVklFV19PTkxZIDoxOwoxNDQ3NDogCjE0
NDc0OiAgdWludDMyX3QgU1RFUkVPXzNEX1BSRUZFUkVOQ0UgOjE7CjE0NDc0OiAKMTQ0NzQ6ICB1
aW50MzJfdCBZX09OTFkgOjE7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBZQ0JDUjQyMCA6MTsK
MTQ0NzQ6ICB1aW50MzJfdCBEVERfQ09VTlRFUiA6NTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90
IEZPUkNFX0hEUiA6MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBM
VEVfMzQwTUNTQ19TQ1JBTUJMRToxOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgRFNDIDogMTsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfdGltaW5nXzNkX2Zvcm1hdCB7CjE0NDc0
OiAgVElNSU5HXzNEX0ZPUk1BVF9OT05FLAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRfRlJBTUVf
QUxURVJOQVRFLAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRfSU5CQU5EX0ZBLAoxNDQ3NDogIFRJ
TUlOR18zRF9GT1JNQVRfRFBfSERNSV9JTkJBTkRfRkEsCjE0NDc0OiAKMTQ0NzQ6ICBUSU1JTkdf
M0RfRk9STUFUX1NJREVCQU5EX0ZBLAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRfSFdfRlJBTUVf
UEFDS0lORywKMTQ0NzQ6ICBUSU1JTkdfM0RfRk9STUFUX1NXX0ZSQU1FX1BBQ0tJTkcsCjE0NDc0
OiAgVElNSU5HXzNEX0ZPUk1BVF9ST1dfSU5URVJMRUFWRSwKMTQ0NzQ6ICBUSU1JTkdfM0RfRk9S
TUFUX0NPTFVNTl9JTlRFUkxFQVZFLAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRfUElYRUxfSU5U
RVJMRUFWRSwKMTQ0NzQ6ICBUSU1JTkdfM0RfRk9STUFUX1NJREVfQllfU0lERSwKMTQ0NzQ6ICBU
SU1JTkdfM0RfRk9STUFUX1RPUF9BTkRfQk9UVE9NLAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRf
U0JTX1NXX1BBQ0tFRCwKMTQ0NzQ6IAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRfVEJfU1dfUEFD
S0VELAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBUSU1JTkdfM0RfRk9STUFUX01BWCwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19kc2NfY29uZmlnIHsKMTQ0NzQ6ICB1aW50MzJf
dCBudW1fc2xpY2VzX2g7CjE0NDc0OiAgdWludDMyX3QgbnVtX3NsaWNlc192OwoxNDQ3NDogIHVp
bnQzMl90IGJpdHNfcGVyX3BpeGVsOwoxNDQ3NDogIGJvb2wgYmxvY2tfcHJlZF9lbmFibGU7CjE0
NDc0OiAgdWludDMyX3QgbGluZWJ1Zl9kZXB0aDsKMTQ0NzQ6ICB1aW50MzJfdCB2ZXJzaW9uX21p
bm9yOwoxNDQ3NDogIGJvb2wgeWNiY3I0MjJfc2ltcGxlOwoxNDQ3NDogIGludDMyX3QgcmNfYnVm
ZmVyX3NpemU7CjE0NDc0OiB9OwoxNDQ3NDogc3RydWN0IGRjX2NydGNfdGltaW5nIHsKMTQ0NzQ6
ICB1aW50MzJfdCBoX3RvdGFsOwoxNDQ3NDogIHVpbnQzMl90IGhfYm9yZGVyX2xlZnQ7CjE0NDc0
OiAgdWludDMyX3QgaF9hZGRyZXNzYWJsZTsKMTQ0NzQ6ICB1aW50MzJfdCBoX2JvcmRlcl9yaWdo
dDsKMTQ0NzQ6ICB1aW50MzJfdCBoX2Zyb250X3BvcmNoOwoxNDQ3NDogIHVpbnQzMl90IGhfc3lu
Y193aWR0aDsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHZfdG90YWw7CjE0NDc0OiAgdWludDMy
X3Qgdl9ib3JkZXJfdG9wOwoxNDQ3NDogIHVpbnQzMl90IHZfYWRkcmVzc2FibGU7CjE0NDc0OiAg
dWludDMyX3Qgdl9ib3JkZXJfYm90dG9tOwoxNDQ3NDogIHVpbnQzMl90IHZfZnJvbnRfcG9yY2g7
CjE0NDc0OiAgdWludDMyX3Qgdl9zeW5jX3dpZHRoOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3Qg
cGl4X2Nsa18xMDBoejsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHZpYzsKMTQ0NzQ6ICB1aW50
MzJfdCBoZG1pX3ZpYzsKMTQ0NzQ6ICBlbnVtIGRjX3RpbWluZ18zZF9mb3JtYXQgdGltaW5nXzNk
X2Zvcm1hdDsKMTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX2RlcHRoIGRpc3BsYXlfY29sb3JfZGVwdGg7
CjE0NDc0OiAgZW51bSBkY19waXhlbF9lbmNvZGluZyBwaXhlbF9lbmNvZGluZzsKMTQ0NzQ6ICBl
bnVtIGRjX2FzcGVjdF9yYXRpbyBhc3BlY3RfcmF0aW87CjE0NDc0OiAgZW51bSBzY2FubmluZ190
eXBlIHNjYW5fdHlwZTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19jcnRjX3RpbWluZ19mbGFn
cyBmbGFnczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfZHNjX2NvbmZpZyBkc2NfY2ZnOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSB0cmlnZ2VyX2RlbGF5IHsKMTQ0NzQ6ICBUUklHR0VSX0RFTEFZ
X05FWFRfUElYRUwgPSAwLAoxNDQ3NDogIFRSSUdHRVJfREVMQVlfTkVYVF9MSU5FLAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjcnRjX2V2ZW50IHsKMTQ0NzQ6ICBDUlRDX0VWRU5UX1ZT
WU5DX1JJU0lORyA9IDAsCjE0NDc0OiAgQ1JUQ19FVkVOVF9WU1lOQ19GQUxMSU5HCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3J0Y190cmlnZ2VyX2luZm8gewoxNDQ3NDogIGJvb2wg
ZW5hYmxlZDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpldmVudF9zb3VyY2U7CjE0
NDc0OiAgZW51bSBjcnRjX2V2ZW50IGV2ZW50OwoxNDQ3NDogIGVudW0gdHJpZ2dlcl9kZWxheSBk
ZWxheTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19jcnRjX3RpbWluZ19hZGp1
c3QgewoxNDQ3NDogIHVpbnQzMl90IHZfdG90YWxfbWluOwoxNDQ3NDogIHVpbnQzMl90IHZfdG90
YWxfbWF4OwoxNDQ3NDogIHVpbnQzMl90IHZfdG90YWxfbWlkOwoxNDQ3NDogIHVpbnQzMl90IHZf
dG90YWxfbWlkX2ZyYW1lX251bTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBlbnVtIHZyYW1fdHlwZSB7CjE0NDc0OiAgVklERU9fTUVNT1JZX1RZUEVfR0REUjUgPSAy
LAoxNDQ3NDogIFZJREVPX01FTU9SWV9UWVBFX0REUjMgPSAzLAoxNDQ3NDogIFZJREVPX01FTU9S
WV9UWVBFX0REUjQgPSA0LAoxNDQ3NDogIFZJREVPX01FTU9SWV9UWVBFX0hCTSA9IDUsCjE0NDc0
OiAgVklERU9fTUVNT1JZX1RZUEVfR0REUjYgPSA2LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBkd2JfY252X291dF9icGMgewoxNDQ3NDogIERXQl9DTlZfT1VUX0JQQ184QlBDID0gMCwK
MTQ0NzQ6ICBEV0JfQ05WX09VVF9CUENfMTBCUEMgPSAxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogZW51bSBkd2Jfb3V0cHV0X2RlcHRoIHsKMTQ0NzQ6ICBEV0JfT1VUUFVUX1BJWEVMX0RFUFRI
XzhCUEMgPSAwLAoxNDQ3NDogIERXQl9PVVRQVVRfUElYRUxfREVQVEhfMTBCUEMgPSAxLAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkd2JfY2FwdHVyZV9yYXRlIHsKMTQ0NzQ6ICBkd2Jf
Y2FwdHVyZV9yYXRlXzAgPSAwLAoxNDQ3NDogIGR3Yl9jYXB0dXJlX3JhdGVfMSA9IDEsCjE0NDc0
OiAgZHdiX2NhcHR1cmVfcmF0ZV8yID0gMiwKMTQ0NzQ6ICBkd2JfY2FwdHVyZV9yYXRlXzMgPSAz
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkd2Jfc2NhbGVyX21vZGUgewoxNDQ3NDog
IGR3Yl9zY2FsZXJfbW9kZV9ieXBhc3M0NDQgPSAwLAoxNDQ3NDogIGR3Yl9zY2FsZXJfbW9kZV9y
Z2I0NDQgPSAxLAoxNDQ3NDogIGR3Yl9zY2FsZXJfbW9kZV95dXY0NDQgPSAyLAoxNDQ3NDogIGR3
Yl9zY2FsZXJfbW9kZV95dXY0MjAgPSAzCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGR3
Yl9zdWJzYW1wbGVfcG9zaXRpb24gewoxNDQ3NDogIERXQl9JTlRFUlNUSVRJQUxfU1VCU0FNUExJ
TkcgPSAwLAoxNDQ3NDogIERXQl9DT1NJVEVEX1NVQlNBTVBMSU5HID0gMQoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogZW51bSBkd2Jfc3RlcmVvX2V5ZV9zZWxlY3QgewoxNDQ3NDogIERXQl9TVEVS
RU9fRVlFX0xFRlQgPSAxLAoxNDQ3NDogIERXQl9TVEVSRU9fRVlFX1JJR0hUID0gMiwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZHdiX3N0ZXJlb190eXBlIHsKMTQ0NzQ6ICBEV0JfU1RF
UkVPX1RZUEVfRlJBTUVfUEFDS0lORyA9IDAsCjE0NDc0OiAgRFdCX1NURVJFT19UWVBFX0ZSQU1F
X1NFUVVFTlRJQUwgPSAzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBtY2lmX2J1Zl9wYXJhbXMgewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyBsdW1h
X2FkZHJlc3NbNF07CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIGNocm9tYV9hZGRyZXNzWzRd
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBsdW1hX3BpdGNoOwoxNDQ3NDogIHVuc2lnbmVkIGludCBj
aHJvbWFfcGl0Y2g7CjE0NDc0OiAgdW5zaWduZWQgaW50IHdhcm11cF9waXRjaDsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgc3dsb2NrOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCB0Z19jb2xvciB7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MTZfdCBjb2xvcl9yX2Ny
OwoxNDQ3NDogIHVpbnQxNl90IGNvbG9yX2dfeTsKMTQ0NzQ6ICB1aW50MTZfdCBjb2xvcl9iX2Ni
OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kY190eXBlcy5oIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2RhbF90eXBlcy5oIiAxCjE0NDc0OiAjIDI5ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9kYWxfdHlwZXMu
aCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2lu
Y2x1ZGUvc2lnbmFsX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMzAgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2RhbF90eXBlcy5oIiAyCjE0NDc0OiAjIDEgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5oIiAxCjE0
NDc0OiAjIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVk
ZS9kYWxfdHlwZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGFsX2xvZ2dlcjsKMTQ0NzQ6
IHN0cnVjdCBkY19iaW9zOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjZV92ZXJzaW9uIHsKMTQ0NzQ6
ICBEQ0VfVkVSU0lPTl9VTktOT1dOID0gKC0xKSwKMTQ0NzQ6ICBEQ0VfVkVSU0lPTl84XzAsCjE0
NDc0OiAgRENFX1ZFUlNJT05fOF8xLAoxNDQ3NDogIERDRV9WRVJTSU9OXzhfMywKMTQ0NzQ6ICBE
Q0VfVkVSU0lPTl8xMF8wLAoxNDQ3NDogIERDRV9WRVJTSU9OXzExXzAsCjE0NDc0OiAgRENFX1ZF
UlNJT05fMTFfMiwKMTQ0NzQ6ICBEQ0VfVkVSU0lPTl8xMV8yMiwKMTQ0NzQ6ICBEQ0VfVkVSU0lP
Tl8xMl8wLAoxNDQ3NDogIERDRV9WRVJTSU9OXzEyXzEsCjE0NDc0OiAgRENFX1ZFUlNJT05fTUFY
LAoxNDQ3NDogIERDTl9WRVJTSU9OXzFfMCwKMTQ0NzQ6ICBEQ05fVkVSU0lPTl8xXzAxLAoxNDQ3
NDogIERDTl9WRVJTSU9OXzJfMCwKMTQ0NzQ6ICBEQ05fVkVSU0lPTl8yXzEsCjE0NDc0OiAgRENO
X1ZFUlNJT05fTUFYCjE0NDc0OiB9OwoxNDQ3NDogIyAzOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZ3JwaF9vYmplY3RfZGVmcy5o
IiAxCjE0NDc0OiAjIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
aW5jbHVkZS9ncnBoX29iamVjdF9kZWZzLmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2lkLmgiIDEKMTQ0NzQ6
ICMgMzAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dy
cGhfb2JqZWN0X2lkLmgiCjE0NDc0OiBlbnVtIG9iamVjdF90eXBlIHsKMTQ0NzQ6ICBPQkpFQ1Rf
VFlQRV9VTktOT1dOID0gMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgT0JKRUNUX1RZUEVfR1BV
LAoxNDQ3NDogIE9CSkVDVF9UWVBFX0VOQ09ERVIsCjE0NDc0OiAgT0JKRUNUX1RZUEVfQ09OTkVD
VE9SLAoxNDQ3NDogIE9CSkVDVF9UWVBFX1JPVVRFUiwKMTQ0NzQ6ICBPQkpFQ1RfVFlQRV9HRU5F
UklDLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBPQkpFQ1RfVFlQRV9BVURJTywKMTQ0NzQ6ICBP
QkpFQ1RfVFlQRV9DT05UUk9MTEVSLAoxNDQ3NDogIE9CSkVDVF9UWVBFX0NMT0NLX1NPVVJDRSwK
MTQ0NzQ6ICBPQkpFQ1RfVFlQRV9FTkdJTkUsCjE0NDc0OiAKMTQ0NzQ6ICBPQkpFQ1RfVFlQRV9D
T1VOVAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIG9iamVjdF9lbnVtX2lk
IHsKMTQ0NzQ6ICBFTlVNX0lEX1VOS05PV04gPSAwLAoxNDQ3NDogIEVOVU1fSURfMSwKMTQ0NzQ6
ICBFTlVNX0lEXzIsCjE0NDc0OiAgRU5VTV9JRF8zLAoxNDQ3NDogIEVOVU1fSURfNCwKMTQ0NzQ6
ICBFTlVNX0lEXzUsCjE0NDc0OiAgRU5VTV9JRF82LAoxNDQ3NDogIEVOVU1fSURfNywKMTQ0NzQ6
IAoxNDQ3NDogIEVOVU1fSURfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBnZW5lcmljX2lkIHsKMTQ0NzQ6ICBHRU5FUklDX0lEX1VOS05PV04gPSAwLAoxNDQ3NDog
IEdFTkVSSUNfSURfTVhNX09QTSwKMTQ0NzQ6ICBHRU5FUklDX0lEX0dMU1lOQywKMTQ0NzQ6ICBH
RU5FUklDX0lEX1NURVJFTywKMTQ0NzQ6IAoxNDQ3NDogIEdFTkVSSUNfSURfQ09VTlQKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjb250cm9sbGVyX2lkIHsKMTQ0NzQ6ICBD
T05UUk9MTEVSX0lEX1VOREVGSU5FRCA9IDAsCjE0NDc0OiAgQ09OVFJPTExFUl9JRF9EMCwKMTQ0
NzQ6ICBDT05UUk9MTEVSX0lEX0QxLAoxNDQ3NDogIENPTlRST0xMRVJfSURfRDIsCjE0NDc0OiAg
Q09OVFJPTExFUl9JRF9EMywKMTQ0NzQ6ICBDT05UUk9MTEVSX0lEX0Q0LAoxNDQ3NDogIENPTlRS
T0xMRVJfSURfRDUsCjE0NDc0OiAgQ09OVFJPTExFUl9JRF9VTkRFUkxBWTAsCjE0NDc0OiAgQ09O
VFJPTExFUl9JRF9NQVggPSBDT05UUk9MTEVSX0lEX1VOREVSTEFZMAoxNDQ3NDogfTsKMTQ0NzQ6
ICMgOTMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dy
cGhfb2JqZWN0X2lkLmgiCjE0NDc0OiBlbnVtIGNsb2NrX3NvdXJjZV9pZCB7CjE0NDc0OiAgQ0xP
Q0tfU09VUkNFX0lEX1VOREVGSU5FRCA9IDAsCjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0lEX1BMTDAs
CjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0lEX1BMTDEsCjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0lEX1BM
TDIsCjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0lEX0VYVEVSTkFMLAoxNDQ3NDogIENMT0NLX1NPVVJD
RV9JRF9EQ1BMTCwKMTQ0NzQ6ICBDTE9DS19TT1VSQ0VfSURfREZTLAoxNDQ3NDogIENMT0NLX1NP
VVJDRV9JRF9WQ0UsCjE0NDc0OiAKMTQ0NzQ6ICBDTE9DS19TT1VSQ0VfSURfRFBfRFRPLAoxNDQ3
NDogCjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEwwLAoxNDQ3NDogIENMT0NLX1NP
VVJDRV9DT01CT19QSFlfUExMMSwKMTQ0NzQ6ICBDTE9DS19TT1VSQ0VfQ09NQk9fUEhZX1BMTDIs
CjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEwzLAoxNDQ3NDogIENMT0NLX1NPVVJD
RV9DT01CT19QSFlfUExMNCwKMTQ0NzQ6ICBDTE9DS19TT1VSQ0VfQ09NQk9fUEhZX1BMTDUsCjE0
NDc0OiAgQ0xPQ0tfU09VUkNFX0NPTUJPX0RJU1BMQVlfUExMMAoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBlbnVtIGVuY29kZXJfaWQgewoxNDQ3NDogIEVOQ09ERVJfSURfVU5LTk9X
TiA9IDAsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxfTFZEUywK
MTQ0NzQ6ICBFTkNPREVSX0lEX0lOVEVSTkFMX1RNRFMxLAoxNDQ3NDogIEVOQ09ERVJfSURfSU5U
RVJOQUxfVE1EUzIsCjE0NDc0OiAgRU5DT0RFUl9JRF9JTlRFUk5BTF9EQUMxLAoxNDQ3NDogIEVO
Q09ERVJfSURfSU5URVJOQUxfREFDMiwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRU5DT0RFUl9J
RF9JTlRFUk5BTF9MVlRNMSwKMTQ0NzQ6ICBFTkNPREVSX0lEX0lOVEVSTkFMX0hETUksCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxfS0xEU0NQX1RNRFMxLAoxNDQ3
NDogIEVOQ09ERVJfSURfSU5URVJOQUxfS0xEU0NQX0RBQzEsCjE0NDc0OiAgRU5DT0RFUl9JRF9J
TlRFUk5BTF9LTERTQ1BfREFDMiwKMTQ0NzQ6IAoxNDQ3NDogIEVOQ09ERVJfSURfRVhURVJOQUxf
TVZQVV9GUEdBLAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxfRERJLAoxNDQ3NDogIEVOQ09E
RVJfSURfSU5URVJOQUxfVU5JUEhZLAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxfS0xEU0NQ
X0xWVE1BLAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZMSwKMTQ0NzQ6ICBFTkNP
REVSX0lEX0lOVEVSTkFMX1VOSVBIWTIsCjE0NDc0OiAgRU5DT0RFUl9JRF9FWFRFUk5BTF9OVVRN
RUcsCjE0NDc0OiAgRU5DT0RFUl9JRF9FWFRFUk5BTF9UUkFWSVMsCjE0NDc0OiAKMTQ0NzQ6ICBF
TkNPREVSX0lEX0lOVEVSTkFMX1dJUkVMRVNTLAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxf
VU5JUEhZMywKMTQ0NzQ6ICBFTkNPREVSX0lEX0lOVEVSTkFMX1ZJUlRVQUwsCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gY29ubmVjdG9yX2lkIHsKMTQ0NzQ6ICBDT05ORUNU
T1JfSURfVU5LTk9XTiA9IDAsCjE0NDc0OiAgQ09OTkVDVE9SX0lEX1NJTkdMRV9MSU5LX0RWSUkg
PSAxLAoxNDQ3NDogIENPTk5FQ1RPUl9JRF9EVUFMX0xJTktfRFZJSSA9IDIsCjE0NDc0OiAgQ09O
TkVDVE9SX0lEX1NJTkdMRV9MSU5LX0RWSUQgPSAzLAoxNDQ3NDogIENPTk5FQ1RPUl9JRF9EVUFM
X0xJTktfRFZJRCA9IDQsCjE0NDc0OiAgQ09OTkVDVE9SX0lEX1ZHQSA9IDUsCjE0NDc0OiAgQ09O
TkVDVE9SX0lEX0hETUlfVFlQRV9BID0gMTIsCjE0NDc0OiAgQ09OTkVDVE9SX0lEX0xWRFMgPSAx
NCwKMTQ0NzQ6ICBDT05ORUNUT1JfSURfUENJRSA9IDE2LAoxNDQ3NDogIENPTk5FQ1RPUl9JRF9I
QVJEQ09ERV9EVkkgPSAxOCwKMTQ0NzQ6ICBDT05ORUNUT1JfSURfRElTUExBWV9QT1JUID0gMTks
CjE0NDc0OiAgQ09OTkVDVE9SX0lEX0VEUCA9IDIwLAoxNDQ3NDogIENPTk5FQ1RPUl9JRF9NWE0g
PSAyMSwKMTQ0NzQ6ICBDT05ORUNUT1JfSURfV0lSRUxFU1MgPSAyMiwKMTQ0NzQ6ICBDT05ORUNU
T1JfSURfTUlSQUNBU1QgPSAyMywKMTQ0NzQ6IAoxNDQ3NDogIENPTk5FQ1RPUl9JRF9WSVJUVUFM
ID0gMTAwCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXVkaW9faWQgewox
NDQ3NDogIEFVRElPX0lEX1VOS05PV04gPSAwLAoxNDQ3NDogIEFVRElPX0lEX0lOVEVSTkFMX0Fa
QUxJQQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGVuZ2luZV9pZCB7CjE0
NDc0OiAgRU5HSU5FX0lEX0RJR0EsCjE0NDc0OiAgRU5HSU5FX0lEX0RJR0IsCjE0NDc0OiAgRU5H
SU5FX0lEX0RJR0MsCjE0NDc0OiAgRU5HSU5FX0lEX0RJR0QsCjE0NDc0OiAgRU5HSU5FX0lEX0RJ
R0UsCjE0NDc0OiAgRU5HSU5FX0lEX0RJR0YsCjE0NDc0OiAgRU5HSU5FX0lEX0RJR0csCjE0NDc0
OiAgRU5HSU5FX0lEX0RBQ0EsCjE0NDc0OiAgRU5HSU5FX0lEX0RBQ0IsCjE0NDc0OiAgRU5HSU5F
X0lEX1ZDRSwKMTQ0NzQ6ICBFTkdJTkVfSURfVklSVFVBTCwKMTQ0NzQ6IAoxNDQ3NDogIEVOR0lO
RV9JRF9DT1VOVCwKMTQ0NzQ6ICBFTkdJTkVfSURfVU5LTk9XTiA9ICgtMUwpCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBlbnVtIHRyYW5zbWl0dGVyX2NvbG9yX2RlcHRoIHsKMTQ0NzQ6ICBUUkFO
U01JVFRFUl9DT0xPUl9ERVBUSF8yNCA9IDAsCjE0NDc0OiAgVFJBTlNNSVRURVJfQ09MT1JfREVQ
VEhfMzAsCjE0NDc0OiAgVFJBTlNNSVRURVJfQ09MT1JfREVQVEhfMzYsCjE0NDc0OiAgVFJBTlNN
SVRURVJfQ09MT1JfREVQVEhfNDgKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZHBfYWx0
X21vZGUgewoxNDQ3NDogIERQX0FsdF9tb2RlX19Vbmtub3duID0gMCwKMTQ0NzQ6ICBEUF9BbHRf
bW9kZV9fQ29ubmVjdCwKMTQ0NzQ6ICBEUF9BbHRfbW9kZV9fTm9Db25uZWN0LAoxNDQ3NDogfTsK
MTQ0NzQ6ICMgMjIwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5j
bHVkZS9ncnBoX29iamVjdF9pZC5oIgoxNDQ3NDogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCB7
CjE0NDc0OiAgdWludDMyX3QgaWQ6ODsKMTQ0NzQ6ICB1aW50MzJfdCBlbnVtX2lkOjQ7CjE0NDc0
OiAgdWludDMyX3QgdHlwZTo0OwoxNDQ3NDogIHVpbnQzMl90IHJlc2VydmVkOjE2OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBncmFwaGljc19vYmplY3Rf
aWQgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9pbml0KAoxNDQ3NDogIHVpbnQzMl90IGlkLAoxNDQ3
NDogIGVudW0gb2JqZWN0X2VudW1faWQgZW51bV9pZCwKMTQ0NzQ6ICBlbnVtIG9iamVjdF90eXBl
IHR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCByZXN1bHQg
PSB7CjE0NDc0OiAgIGlkLCBlbnVtX2lkLCB0eXBlLCAwCjE0NDc0OiAgfTsKMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiByZXN1bHQ7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdWludDMy
X3QgZGFsX2dyYXBoaWNzX29iamVjdF9pZF90b191aW50KAoxNDQ3NDogIHN0cnVjdCBncmFwaGlj
c19vYmplY3RfaWQgaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGlkLmlkICsgKGlkLmVudW1f
aWQgPDwgMHg4KSArIChpZC50eXBlIDw8IDB4Yyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGVu
dW0gY29udHJvbGxlcl9pZCBkYWxfZ3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9jb250cm9sbGVyX2lk
KAoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgaWQpCjE0NDc0OiB7CjE0NDc0OiAg
aWYgKGlkLnR5cGUgPT0gT0JKRUNUX1RZUEVfQ09OVFJPTExFUikKMTQ0NzQ6ICAgcmV0dXJuIChl
bnVtIGNvbnRyb2xsZXJfaWQpIGlkLmlkOwoxNDQ3NDogIHJldHVybiBDT05UUk9MTEVSX0lEX1VO
REVGSU5FRDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBjbG9ja19zb3VyY2VfaWQgZGFs
X2dyYXBoaWNzX29iamVjdF9pZF9nZXRfY2xvY2tfc291cmNlX2lkKAoxNDQ3NDogIHN0cnVjdCBn
cmFwaGljc19vYmplY3RfaWQgaWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGlkLnR5cGUgPT0gT0JK
RUNUX1RZUEVfQ0xPQ0tfU09VUkNFKQoxNDQ3NDogICByZXR1cm4gKGVudW0gY2xvY2tfc291cmNl
X2lkKSBpZC5pZDsKMTQ0NzQ6ICByZXR1cm4gQ0xPQ0tfU09VUkNFX0lEX1VOREVGSU5FRDsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBlbmNvZGVyX2lkIGRhbF9ncmFwaGljc19vYmplY3Rf
aWRfZ2V0X2VuY29kZXJfaWQoCjE0NDc0OiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBpZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoaWQudHlwZSA9PSBPQkpFQ1RfVFlQRV9FTkNPREVSKQoxNDQ3
NDogICByZXR1cm4gKGVudW0gZW5jb2Rlcl9pZCkgaWQuaWQ7CjE0NDc0OiAgcmV0dXJuIEVOQ09E
RVJfSURfVU5LTk9XTjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBjb25uZWN0b3JfaWQg
ZGFsX2dyYXBoaWNzX29iamVjdF9pZF9nZXRfY29ubmVjdG9yX2lkKAoxNDQ3NDogIHN0cnVjdCBn
cmFwaGljc19vYmplY3RfaWQgaWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGlkLnR5cGUgPT0gT0JK
RUNUX1RZUEVfQ09OTkVDVE9SKQoxNDQ3NDogICByZXR1cm4gKGVudW0gY29ubmVjdG9yX2lkKSBp
ZC5pZDsKMTQ0NzQ6ICByZXR1cm4gQ09OTkVDVE9SX0lEX1VOS05PV047CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGVudW0gYXVkaW9faWQgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9nZXRfYXVkaW9f
aWQoCjE0NDc0OiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBpZCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBpZiAoaWQudHlwZSA9PSBPQkpFQ1RfVFlQRV9BVURJTykKMTQ0NzQ6ICAgcmV0dXJuIChlbnVt
IGF1ZGlvX2lkKSBpZC5pZDsKMTQ0NzQ6ICByZXR1cm4gQVVESU9fSURfVU5LTk9XTjsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBlbmdpbmVfaWQgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9n
ZXRfZW5naW5lX2lkKAoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgaWQpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKGlkLnR5cGUgPT0gT0JKRUNUX1RZUEVfRU5HSU5FKQoxNDQ3NDogICBy
ZXR1cm4gKGVudW0gZW5naW5lX2lkKSBpZC5pZDsKMTQ0NzQ6ICByZXR1cm4gRU5HSU5FX0lEX1VO
S05PV047CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGFsX2dyYXBoaWNzX29iamVjdF9p
ZF9lcXVhbCgKMTQ0NzQ6ICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlkXzEsCjE0NDc0OiAg
c3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBpZF8yKQoxNDQ3NDogewoxNDQ3NDogIGlmICgoaWRf
MS5pZCA9PSBpZF8yLmlkKSAmJiAoaWRfMS5lbnVtX2lkID09IGlkXzIuZW51bV9pZCkgJiYKMTQ0
NzQ6ICAgKGlkXzEudHlwZSA9PSBpZF8yLnR5cGUpKSB7CjE0NDc0OiAgIHJldHVybiB0cnVlOwox
NDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gZmFsc2U7CjE0NDc0OiB9CjE0NDc0OiAjIDMwICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9k
ZWZzLmgiIDIKMTQ0NzQ6ICMgNDUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2RlZnMuaCIKMTQ0NzQ6IGVudW0gaHBkX3NvdXJjZV9p
ZCB7CjE0NDc0OiAgSFBEX1NPVVJDRUlEMSA9IDAsCjE0NDc0OiAgSFBEX1NPVVJDRUlEMiwKMTQ0
NzQ6ICBIUERfU09VUkNFSUQzLAoxNDQ3NDogIEhQRF9TT1VSQ0VJRDQsCjE0NDc0OiAgSFBEX1NP
VVJDRUlENSwKMTQ0NzQ6ICBIUERfU09VUkNFSUQ2LAoxNDQ3NDogCjE0NDc0OiAgSFBEX1NPVVJD
RUlEX0NPVU5ULAoxNDQ3NDogIEhQRF9TT1VSQ0VJRF9VTktOT1dOCjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gY2hhbm5lbF9pZCB7CjE0NDc0OiAgQ0hBTk5FTF9JRF9VTktO
T1dOID0gMCwKMTQ0NzQ6ICBDSEFOTkVMX0lEX0REQzEsCjE0NDc0OiAgQ0hBTk5FTF9JRF9EREMy
LAoxNDQ3NDogIENIQU5ORUxfSURfRERDMywKMTQ0NzQ6ICBDSEFOTkVMX0lEX0REQzQsCjE0NDc0
OiAgQ0hBTk5FTF9JRF9EREM1LAoxNDQ3NDogIENIQU5ORUxfSURfRERDNiwKMTQ0NzQ6ICBDSEFO
TkVMX0lEX0REQ19WR0EsCjE0NDc0OiAgQ0hBTk5FTF9JRF9JMkNfUEFELAoxNDQ3NDogIENIQU5O
RUxfSURfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0OiAjIDgxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9kZWZzLmgiCjE0NDc0OiBlbnVt
IHRyYW5zbWl0dGVyIHsKMTQ0NzQ6ICBUUkFOU01JVFRFUl9VTktOT1dOID0gKC0xTCksCjE0NDc0
OiAgVFJBTlNNSVRURVJfVU5JUEhZX0EsCjE0NDc0OiAgVFJBTlNNSVRURVJfVU5JUEhZX0IsCjE0
NDc0OiAgVFJBTlNNSVRURVJfVU5JUEhZX0MsCjE0NDc0OiAgVFJBTlNNSVRURVJfVU5JUEhZX0Qs
CjE0NDc0OiAgVFJBTlNNSVRURVJfVU5JUEhZX0UsCjE0NDc0OiAgVFJBTlNNSVRURVJfVU5JUEhZ
X0YsCjE0NDc0OiAgVFJBTlNNSVRURVJfTlVUTUVHX0NSVCwKMTQ0NzQ6ICBUUkFOU01JVFRFUl9U
UkFWSVNfQ1JULAoxNDQ3NDogIFRSQU5TTUlUVEVSX1RSQVZJU19MQ0QsCjE0NDc0OiAgVFJBTlNN
SVRURVJfVU5JUEhZX0csCjE0NDc0OiAgVFJBTlNNSVRURVJfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHN5bmNfc291cmNlIHsKMTQ0NzQ6ICBTWU5D
X1NPVVJDRV9OT05FID0gMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgU1lOQ19TT1VSQ0VfQ09O
VFJPTExFUjAsCjE0NDc0OiAgU1lOQ19TT1VSQ0VfQ09OVFJPTExFUjEsCjE0NDc0OiAgU1lOQ19T
T1VSQ0VfQ09OVFJPTExFUjIsCjE0NDc0OiAgU1lOQ19TT1VSQ0VfQ09OVFJPTExFUjMsCjE0NDc0
OiAgU1lOQ19TT1VSQ0VfQ09OVFJPTExFUjQsCjE0NDc0OiAgU1lOQ19TT1VSQ0VfQ09OVFJPTExF
UjUsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFNZTkNfU09VUkNFX0dTTF9HUk9VUDAsCjE0NDc0
OiAgU1lOQ19TT1VSQ0VfR1NMX0dST1VQMSwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9HU0xfR1JPVVAy
LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFNZTkNfU09VUkNFX0dTTF9JT19GSVJT
VCwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9HU0xfSU9fR0VOTE9DS19DTE9DSyA9IFNZTkNfU09VUkNF
X0dTTF9JT19GSVJTVCwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9HU0xfSU9fR0VOTE9DS19WU1lOQywK
MTQ0NzQ6ICBTWU5DX1NPVVJDRV9HU0xfSU9fU1dBUExPQ0tfQSwKMTQ0NzQ6ICBTWU5DX1NPVVJD
RV9HU0xfSU9fU1dBUExPQ0tfQiwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9HU0xfSU9fTEFTVCA9IFNZ
TkNfU09VUkNFX0dTTF9JT19TV0FQTE9DS19CLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBTWU5D
X1NPVVJDRV9JT19GSVJTVCwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9JT19HRU5FUklDX0EgPSBTWU5D
X1NPVVJDRV9JT19GSVJTVCwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9JT19HRU5FUklDX0IsCjE0NDc0
OiAgU1lOQ19TT1VSQ0VfSU9fR0VORVJJQ19DLAoxNDQ3NDogIFNZTkNfU09VUkNFX0lPX0dFTkVS
SUNfRCwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9JT19HRU5FUklDX0UsCjE0NDc0OiAgU1lOQ19TT1VS
Q0VfSU9fR0VORVJJQ19GLAoxNDQ3NDogIFNZTkNfU09VUkNFX0lPX0hQRDEsCjE0NDc0OiAgU1lO
Q19TT1VSQ0VfSU9fSFBEMiwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9JT19IU1lOQ19BLAoxNDQ3NDog
IFNZTkNfU09VUkNFX0lPX1ZTWU5DX0EsCjE0NDc0OiAgU1lOQ19TT1VSQ0VfSU9fSFNZTkNfQiwK
MTQ0NzQ6ICBTWU5DX1NPVVJDRV9JT19WU1lOQ19CLAoxNDQ3NDogIFNZTkNfU09VUkNFX0lPX0xB
U1QgPSBTWU5DX1NPVVJDRV9JT19WU1lOQ19CLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBTWU5D
X1NPVVJDRV9EVUFMX0dQVV9QSU4KMTQ0NzQ6IH07CjE0NDc0OiAjIDE1MSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZ3JwaF9vYmplY3RfZGVmcy5oIgox
NDQ3NDogZW51bSBjb25uZWN0b3JfbGF5b3V0X3R5cGUgewoxNDQ3NDogIENPTk5FQ1RPUl9MQVlP
VVRfVFlQRV9VTktOT1dOLAoxNDQ3NDogIENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9EVklfRCwKMTQ0
NzQ6ICBDT05ORUNUT1JfTEFZT1VUX1RZUEVfRFZJX0ksCjE0NDc0OiAgQ09OTkVDVE9SX0xBWU9V
VF9UWVBFX1ZHQSwKMTQ0NzQ6ICBDT05ORUNUT1JfTEFZT1VUX1RZUEVfSERNSSwKMTQ0NzQ6ICBD
T05ORUNUT1JfTEFZT1VUX1RZUEVfRFAsCjE0NDc0OiAgQ09OTkVDVE9SX0xBWU9VVF9UWVBFX01J
TklfRFAsCjE0NDc0OiB9OwoxNDQ3NDogc3RydWN0IGNvbm5lY3Rvcl9sYXlvdXRfaW5mbyB7CjE0
NDc0OiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBjb25uZWN0b3JfaWQ7CjE0NDc0OiAgZW51
bSBjb25uZWN0b3JfbGF5b3V0X3R5cGUgY29ubmVjdG9yX3R5cGU7CjE0NDc0OiAgdW5zaWduZWQg
aW50IGxlbmd0aDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcG9zaXRpb247CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzbG90X2xheW91dF9pbmZvIHsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgbGVuZ3RoOwoxNDQ3NDogIHVuc2lnbmVkIGludCB3aWR0aDsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgbnVtX29mX2Nvbm5lY3RvcnM7CjE0NDc0OiAgc3RydWN0IGNvbm5lY3Rvcl9sYXlv
dXRfaW5mbyBjb25uZWN0b3JzWygxNildOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGJvYXJkX2xheW91dF9pbmZvIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbnVtX29mX3Nsb3RzOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaXNfbnVtYmVyX29mX3Nsb3RzX3Zh
bGlkIDogMTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaXNfc2xvdHNfc2l6ZV92YWxpZCA6IDE7CjE0
NDc0OiAgdW5zaWduZWQgaW50IGlzX2Nvbm5lY3Rvcl9vZmZzZXRzX3ZhbGlkIDogMTsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgaXNfY29ubmVjdG9yX2xlbmd0aHNfdmFsaWQgOiAxOwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHNsb3RfbGF5b3V0X2luZm8gc2xvdHNbKDQpXTsKMTQ0NzQ6IH07CjE0NDc0
OiAjIDM5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlw
ZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRjX3BsYW5lX3N0YXRlOwoxNDQ3NDogc3RydWN0IGRjX3N0cmVhbV9zdGF0
ZTsKMTQ0NzQ6IHN0cnVjdCBkY19saW5rOwoxNDQ3NDogc3RydWN0IGRjX3Npbms7CjE0NDc0OiBz
dHJ1Y3QgZGFsOwoxNDQ3NDogc3RydWN0IGRjX2RtdWJfc3J2OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjZV9lbnZpcm9ubWVudCB7CjE0NDc0OiAgRENFX0VO
Vl9QUk9EVUNUSU9OX0RSViA9IDAsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRENF
X0VOVl9GUEdBX01BWElNVVMsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERDRV9FTlZfRElBRywK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERDRV9FTlZfVklSVFVBTF9I
VwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNzggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kY190eXBlcy5oIgoxNDQ3NDogc3RydWN0IGh3X2FzaWNfaWQgewoxNDQ3NDog
IHVpbnQzMl90IGNoaXBfaWQ7CjE0NDc0OiAgdWludDMyX3QgY2hpcF9mYW1pbHk7CjE0NDc0OiAg
dWludDMyX3QgcGNpX3JldmlzaW9uX2lkOwoxNDQ3NDogIHVpbnQzMl90IGh3X2ludGVybmFsX3Jl
djsKMTQ0NzQ6ICB1aW50MzJfdCB2cmFtX3R5cGU7CjE0NDc0OiAgdWludDMyX3QgdnJhbV93aWR0
aDsKMTQ0NzQ6ICB1aW50MzJfdCBmZWF0dXJlX2ZsYWdzOwoxNDQ3NDogIHVpbnQzMl90IGZha2Vf
cGF0aHNfbnVtOwoxNDQ3NDogIHZvaWQgKmF0b21iaW9zX2Jhc2VfYWRkcmVzczsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19wZXJmX3RyYWNlIHsKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIHJlYWRfY291bnQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB3cml0ZV9jb3VudDsKMTQ0NzQ6
ICB1bnNpZ25lZCBsb25nIGxhc3RfZW50cnlfcmVhZDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxh
c3RfZW50cnlfd3JpdGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY29udGV4
dCB7CjE0NDc0OiAgc3RydWN0IGRjICpkYzsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKmRyaXZlcl9j
b250ZXh0OwoxNDQ3NDogIHN0cnVjdCBkY19wZXJmX3RyYWNlICpwZXJmX3RyYWNlOwoxNDQ3NDog
IHZvaWQgKmNnc19kZXZpY2U7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRjZV9lbnZpcm9ubWVudCBk
Y2VfZW52aXJvbm1lbnQ7CjE0NDc0OiAgc3RydWN0IGh3X2FzaWNfaWQgYXNpY19pZDsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gZGNlX3ZlcnNpb24gZGNlX3Zl
cnNpb247CjE0NDc0OiAgc3RydWN0IGRjX2Jpb3MgKmRjX2Jpb3M7CjE0NDc0OiAgYm9vbCBjcmVh
dGVkX2Jpb3M7CjE0NDc0OiAgc3RydWN0IGdwaW9fc2VydmljZSAqZ3Bpb19zZXJ2aWNlOwoxNDQ3
NDogIHVpbnQzMl90IGRjX3NpbmtfaWRfY291bnQ7CjE0NDc0OiAgdWludDMyX3QgZGNfc3RyZWFt
X2lkX2NvdW50OwoxNDQ3NDogIHVpbnQ2NF90IGZiY19ncHVfYWRkcjsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfZG11Yl9zcnYgKmRtdWJfc3J2OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiB9OwoxNDQ3NDogIyAxMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9kY190eXBlcy5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvZGMvZGNfZGRjX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMjggIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY19kZGNfdHlwZXMuaCIKMTQ0NzQ6
IGVudW0gYXV4X3RyYW5zYWN0aW9uX3R5cGUgewoxNDQ3NDogIEFVWF9UUkFOU0FDVElPTl9UWVBF
X0RQLAoxNDQ3NDogIEFVWF9UUkFOU0FDVElPTl9UWVBFX0kyQwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBlbnVtIGkyY2F1eF90cmFuc2FjdGlvbl9hY3Rpb24gewoxNDQ3NDogIEky
Q0FVWF9UUkFOU0FDVElPTl9BQ1RJT05fSTJDX1dSSVRFID0gMHgwMCwKMTQ0NzQ6ICBJMkNBVVhf
VFJBTlNBQ1RJT05fQUNUSU9OX0kyQ19SRUFEID0gMHgxMCwKMTQ0NzQ6ICBJMkNBVVhfVFJBTlNB
Q1RJT05fQUNUSU9OX0kyQ19TVEFUVVNfUkVRVUVTVCA9IDB4MjAsCjE0NDc0OiAKMTQ0NzQ6ICBJ
MkNBVVhfVFJBTlNBQ1RJT05fQUNUSU9OX0kyQ19XUklURV9NT1QgPSAweDQwLAoxNDQ3NDogIEky
Q0FVWF9UUkFOU0FDVElPTl9BQ1RJT05fSTJDX1JFQURfTU9UID0gMHg1MCwKMTQ0NzQ6ICBJMkNB
VVhfVFJBTlNBQ1RJT05fQUNUSU9OX0kyQ19TVEFUVVNfUkVRVUVTVF9NT1QgPSAweDYwLAoxNDQ3
NDogCjE0NDc0OiAgSTJDQVVYX1RSQU5TQUNUSU9OX0FDVElPTl9EUF9XUklURSA9IDB4ODAsCjE0
NDc0OiAgSTJDQVVYX1RSQU5TQUNUSU9OX0FDVElPTl9EUF9SRUFEID0gMHg5MAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBhdXhfY2hhbm5lbF9vcGVyYXRpb25fcmVzdWx0IHsKMTQ0NzQ6
ICBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fU1VDQ0VFREVELAoxNDQ3NDogIEFVWF9DSEFOTkVMX09Q
RVJBVElPTl9GQUlMRURfUkVBU09OX1VOS05PV04sCjE0NDc0OiAgQVVYX0NIQU5ORUxfT1BFUkFU
SU9OX0ZBSUxFRF9JTlZBTElEX1JFUExZLAoxNDQ3NDogIEFVWF9DSEFOTkVMX09QRVJBVElPTl9G
QUlMRURfVElNRU9VVCwKMTQ0NzQ6ICBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fRkFJTEVEX0hQRF9E
SVNDT04sCjE0NDc0OiAgQVVYX0NIQU5ORUxfT1BFUkFUSU9OX0ZBSUxFRF9FTkdJTkVfQUNRVUlS
RQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXV4X3JlcXVlc3RfdHJh
bnNhY3Rpb25fZGF0YSB7CjE0NDc0OiAgZW51bSBhdXhfdHJhbnNhY3Rpb25fdHlwZSB0eXBlOwox
NDQ3NDogIGVudW0gaTJjYXV4X3RyYW5zYWN0aW9uX2FjdGlvbiBhY3Rpb247CjE0NDc0OiAKMTQ0
NzQ6ICB1aW50MzJfdCBhZGRyZXNzOwoxNDQ3NDogCjE0NDc0OiAgdWludDhfdCBkZWxheTsKMTQ0
NzQ6ICB1aW50MzJfdCBsZW5ndGg7CjE0NDc0OiAgdWludDhfdCAqZGF0YTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gYXV4X3RyYW5zYWN0aW9uX3JlcGx5IHsKMTQ0NzQ6ICBBVVhfVFJB
TlNBQ1RJT05fUkVQTFlfQVVYX0FDSyA9IDB4MDAsCjE0NDc0OiAgQVVYX1RSQU5TQUNUSU9OX1JF
UExZX0FVWF9OQUNLID0gMHgwMSwKMTQ0NzQ6ICBBVVhfVFJBTlNBQ1RJT05fUkVQTFlfQVVYX0RF
RkVSID0gMHgwMiwKMTQ0NzQ6ICBBVVhfVFJBTlNBQ1RJT05fUkVQTFlfSTJDX09WRVJfQVVYX05B
Q0sgPSAweDA0LAoxNDQ3NDogIEFVWF9UUkFOU0FDVElPTl9SRVBMWV9JMkNfT1ZFUl9BVVhfREVG
RVIgPSAweDA4LAoxNDQ3NDogCjE0NDc0OiAgQVVYX1RSQU5TQUNUSU9OX1JFUExZX0kyQ19BQ0sg
PSAweDAwLAoxNDQ3NDogIEFVWF9UUkFOU0FDVElPTl9SRVBMWV9JMkNfTkFDSyA9IDB4MTAsCjE0
NDc0OiAgQVVYX1RSQU5TQUNUSU9OX1JFUExZX0kyQ19ERUZFUiA9IDB4MjAsCjE0NDc0OiAKMTQ0
NzQ6ICBBVVhfVFJBTlNBQ1RJT05fUkVQTFlfSFBEX0RJU0NPTiA9IDB4NDAsCjE0NDc0OiAKMTQ0
NzQ6ICBBVVhfVFJBTlNBQ1RJT05fUkVQTFlfSU5WQUxJRCA9IDB4RkYKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBhdXhfcmVwbHlfdHJhbnNhY3Rpb25fZGF0YSB7CjE0NDc0OiAgZW51
bSBhdXhfdHJhbnNhY3Rpb25fcmVwbHkgc3RhdHVzOwoxNDQ3NDogIHVpbnQzMl90IGxlbmd0aDsK
MTQ0NzQ6ICB1aW50OF90ICpkYXRhOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGky
Y19wYXlsb2FkIHsKMTQ0NzQ6ICBib29sIHdyaXRlOwoxNDQ3NDogIHVpbnQ4X3QgYWRkcmVzczsK
MTQ0NzQ6ICB1aW50MzJfdCBsZW5ndGg7CjE0NDc0OiAgdWludDhfdCAqZGF0YTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gaTJjX2NvbW1hbmRfZW5naW5lIHsKMTQ0NzQ6ICBJMkNfQ09N
TUFORF9FTkdJTkVfREVGQVVMVCwKMTQ0NzQ6ICBJMkNfQ09NTUFORF9FTkdJTkVfU1csCjE0NDc0
OiAgSTJDX0NPTU1BTkRfRU5HSU5FX0hXCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
aTJjX2NvbW1hbmQgewoxNDQ3NDogIHN0cnVjdCBpMmNfcGF5bG9hZCAqcGF5bG9hZHM7CjE0NDc0
OiAgdWludDhfdCBudW1iZXJfb2ZfcGF5bG9hZHM7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGkyY19j
b21tYW5kX2VuZ2luZSBlbmdpbmU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWlu
dDMyX3Qgc3BlZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZ3Bpb19kZGNfaHdf
aW5mbyB7CjE0NDc0OiAgYm9vbCBod19zdXBwb3J0ZWQ7CjE0NDc0OiAgdWludDMyX3QgZGRjX2No
YW5uZWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGRjIHsKMTQ0NzQ6ICBzdHJ1
Y3QgZ3BpbyAqcGluX2RhdGE7CjE0NDc0OiAgc3RydWN0IGdwaW8gKnBpbl9jbG9jazsKMTQ0NzQ6
ICBzdHJ1Y3QgZ3Bpb19kZGNfaHdfaW5mbyBod19pbmZvOwoxNDQ3NDogIHN0cnVjdCBkY19jb250
ZXh0ICpjdHg7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkZGNfd2EgewoxNDQ3NDog
IHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQzMl90IERQX1NLSVBfUE9XRVJfT0ZGOjE7CjE0NDc0OiAg
IHVpbnQzMl90IERQX0FVWF9QT1dFUl9VUF9XQV9ERUxBWToxOwoxNDQ3NDogIH0gYml0czsKMTQ0
NzQ6ICB1aW50MzJfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGRjX2Zs
YWdzIHsKMTQ0NzQ6ICB1aW50OF90IEVESURfUVVFUllfRE9ORV9PTkNFOjE7CjE0NDc0OiAgdWlu
dDhfdCBJU19JTlRFUk5BTF9ESVNQTEFZOjE7CjE0NDc0OiAgdWludDhfdCBGT1JDRV9SRUFEX1JF
UEVBVEVEX1NUQVJUOjE7CjE0NDc0OiAgdWludDhfdCBFRElEX1NUUkVTU19SRUFEOjE7CjE0NDc0
OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGRjX3RyYW5zYWN0aW9uX3R5cGUgewox
NDQ3NDogIEREQ19UUkFOU0FDVElPTl9UWVBFX05PTkUgPSAwLAoxNDQ3NDogIEREQ19UUkFOU0FD
VElPTl9UWVBFX0kyQywKMTQ0NzQ6ICBERENfVFJBTlNBQ1RJT05fVFlQRV9JMkNfT1ZFUl9BVVgs
CjE0NDc0OiAgRERDX1RSQU5TQUNUSU9OX1RZUEVfSTJDX09WRVJfQVVYX1dJVEhfREVGRVIsCjE0
NDc0OiAgRERDX1RSQU5TQUNUSU9OX1RZUEVfSTJDX09WRVJfQVVYX1JFVFJZX0RFRkVSCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5cGUgewoxNDQ3NDogIERJ
U1BMQVlfRE9OR0xFX05PTkUgPSAwLAoxNDQ3NDogCjE0NDc0OiAgRElTUExBWV9ET05HTEVfRFBf
VkdBX0NPTlZFUlRFUiwKMTQ0NzQ6ICBESVNQTEFZX0RPTkdMRV9EUF9EVklfQ09OVkVSVEVSLAox
NDQ3NDogIERJU1BMQVlfRE9OR0xFX0RQX0hETUlfQ09OVkVSVEVSLAoxNDQ3NDogCjE0NDc0OiAg
RElTUExBWV9ET05HTEVfRFBfRFZJX0RPTkdMRSwKMTQ0NzQ6ICBESVNQTEFZX0RPTkdMRV9EUF9I
RE1JX0RPTkdMRSwKMTQ0NzQ6IAoxNDQ3NDogIERJU1BMQVlfRE9OR0xFX0RQX0hETUlfTUlTTUFU
Q0hFRF9ET05HTEUsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGRjX3NlcnZpY2Ug
ewoxNDQ3NDogIHN0cnVjdCBkZGMgKmRkY19waW47CjE0NDc0OiAgc3RydWN0IGRkY19mbGFncyBm
bGFnczsKMTQ0NzQ6ICB1bmlvbiBkZGNfd2Egd2E7CjE0NDc0OiAgZW51bSBkZGNfdHJhbnNhY3Rp
b25fdHlwZSB0cmFuc2FjdGlvbl90eXBlOwoxNDQ3NDogIGVudW0gZGlzcGxheV9kb25nbGVfdHlw
ZSBkb25nbGVfdHlwZTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIHN0
cnVjdCBkY19saW5rICpsaW5rOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgYWRkcmVzczsKMTQ0
NzQ6ICB1aW50MzJfdCBlZGlkX2J1Zl9sZW47CjE0NDc0OiAgdWludDhfdCBlZGlkX2J1ZlsxMDI0
XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDEzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2RjX3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogZW51bSB0aWxpbmdfbW9k
ZSB7CjE0NDc0OiAgVElMSU5HX01PREVfSU5WQUxJRCwKMTQ0NzQ6ICBUSUxJTkdfTU9ERV9MSU5F
QVIsCjE0NDc0OiAgVElMSU5HX01PREVfVElMRUQsCjE0NDc0OiAgVElMSU5HX01PREVfQ09VTlQK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gdmlld18zZF9mb3JtYXQgewoxNDQ3NDogIFZJ
RVdfM0RfRk9STUFUX05PTkUgPSAwLAoxNDQ3NDogIFZJRVdfM0RfRk9STUFUX0ZSQU1FX1NFUVVF
TlRJQUwsCjE0NDc0OiAgVklFV18zRF9GT1JNQVRfU0lERV9CWV9TSURFLAoxNDQ3NDogIFZJRVdf
M0RfRk9STUFUX1RPUF9BTkRfQk9UVE9NLAoxNDQ3NDogIFZJRVdfM0RfRk9STUFUX0NPVU5ULAox
NDQ3NDogIFZJRVdfM0RfRk9STUFUX0ZJUlNUID0gVklFV18zRF9GT1JNQVRfRlJBTUVfU0VRVUVO
VElBTAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBwbGFuZV9zdGVyZW9fZm9ybWF0IHsK
MTQ0NzQ6ICBQTEFORV9TVEVSRU9fRk9STUFUX05PTkUgPSAwLAoxNDQ3NDogIFBMQU5FX1NURVJF
T19GT1JNQVRfU0lERV9CWV9TSURFID0gMSwKMTQ0NzQ6ICBQTEFORV9TVEVSRU9fRk9STUFUX1RP
UF9BTkRfQk9UVE9NID0gMiwKMTQ0NzQ6ICBQTEFORV9TVEVSRU9fRk9STUFUX0ZSQU1FX0FMVEVS
TkFURSA9IDMsCjE0NDc0OiAgUExBTkVfU1RFUkVPX0ZPUk1BVF9ST1dfSU5URVJMRUFWRUQgPSA1
LAoxNDQ3NDogIFBMQU5FX1NURVJFT19GT1JNQVRfQ09MVU1OX0lOVEVSTEVBVkVEID0gNiwKMTQ0
NzQ6ICBQTEFORV9TVEVSRU9fRk9STUFUX0NIRUNLRVJfQk9BUkQgPSA3CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBk
Y19lZGlkX2Nvbm5lY3Rvcl90eXBlIHsKMTQ0NzQ6ICBEQ19FRElEX0NPTk5FQ1RPUl9VTktOT1dO
ID0gMCwKMTQ0NzQ6ICBEQ19FRElEX0NPTk5FQ1RPUl9BTkFMT0cgPSAxLAoxNDQ3NDogIERDX0VE
SURfQ09OTkVDVE9SX0RJR0lUQUwgPSAxMCwKMTQ0NzQ6ICBEQ19FRElEX0NPTk5FQ1RPUl9EVkkg
PSAxMSwKMTQ0NzQ6ICBEQ19FRElEX0NPTk5FQ1RPUl9IRE1JQSA9IDEyLAoxNDQ3NDogIERDX0VE
SURfQ09OTkVDVE9SX01EREkgPSAxNCwKMTQ0NzQ6ICBEQ19FRElEX0NPTk5FQ1RPUl9ESVNQTEFZ
UE9SVCA9IDE1CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2VkaWRfc3RhdHVzIHsK
MTQ0NzQ6ICBFRElEX09LLAoxNDQ3NDogIEVESURfQkFEX0lOUFVULAoxNDQ3NDogIEVESURfTk9f
UkVTUE9OU0UsCjE0NDc0OiAgRURJRF9CQURfQ0hFQ0tTVU0sCjE0NDc0OiAgRURJRF9USEVfU0FN
RSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYWN0X3JldHVybl9zdGF0dXMgewoxNDQ3
NDogIEFDVF9TVUNDRVNTLAoxNDQ3NDogIEFDVF9MSU5LX0xPU1QsCjE0NDc0OiAgQUNUX0ZBSUxF
RAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY2VhX2F1ZGlvX21v
ZGUgewoxNDQ3NDogIHVpbnQ4X3QgZm9ybWF0X2NvZGU7CjE0NDc0OiAgdWludDhfdCBjaGFubmVs
X2NvdW50OwoxNDQ3NDogIHVpbnQ4X3Qgc2FtcGxlX3JhdGU7CjE0NDc0OiAgdW5pb24gewoxNDQ3
NDogICB1aW50OF90IHNhbXBsZV9zaXplOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgbWF4X2Jp
dF9yYXRlOwoxNDQ3NDogICB1aW50OF90IGF1ZGlvX2NvZGVjX3ZlbmRvcl9zcGVjaWZpYzsKMTQ0
NzQ6ICB9OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX2VkaWQgewoxNDQ3NDog
IHVpbnQzMl90IGxlbmd0aDsKMTQ0NzQ6ICB1aW50OF90IHJhd19lZGlkWzEwMjRdOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMjE1ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZGNfdHlwZXMuaCIKMTQ0NzQ6IHVuaW9uIGRpc3BsYXlfY29udGVudF9zdXBwb3J0IHsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgcmF3OwoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVuc2lnbmVk
IGludCB2YWxpZF9jb250ZW50X3R5cGUgOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBnYW1lX2Nv
bnRlbnQgOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBjaW5lbWFfY29udGVudCA6MTsKMTQ0NzQ6
ICAgdW5zaWduZWQgaW50IHBob3RvX2NvbnRlbnQgOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBn
cmFwaGljc19jb250ZW50IDoxOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQgOjI3Owox
NDQ3NDogIH0gYml0czsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19wYW5lbF9w
YXRjaCB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRwcG93ZXJ1cF9kZWxheTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgZXh0cmFfdDEyX21zOwoxNDQ3NDogIHVuc2lnbmVkIGludCBleHRyYV9kZWxheV9i
YWNrbGlnaHRfb2ZmOwoxNDQ3NDogIHVuc2lnbmVkIGludCBleHRyYV90N19tczsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgbWFuYWdlX3NlY29uZGFyeV9saW5rOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGRjX2VkaWRfY2FwcyB7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MTZfdCBtYW51ZmFj
dHVyZXJfaWQ7CjE0NDc0OiAgdWludDE2X3QgcHJvZHVjdF9pZDsKMTQ0NzQ6ICB1aW50MzJfdCBz
ZXJpYWxfbnVtYmVyOwoxNDQ3NDogIHVpbnQ4X3QgbWFudWZhY3R1cmVfd2VlazsKMTQ0NzQ6ICB1
aW50OF90IG1hbnVmYWN0dXJlX3llYXI7CjE0NDc0OiAgdWludDhfdCBkaXNwbGF5X25hbWVbMjBd
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IHNwZWFrZXJfZmxhZ3M7CjE0NDc0OiAg
dWludDMyX3QgYXVkaW9fbW9kZV9jb3VudDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY2VhX2F1ZGlvX21v
ZGUgYXVkaW9fbW9kZXNbMTZdOwoxNDQ3NDogIHVpbnQzMl90IGF1ZGlvX2xhdGVuY3k7CjE0NDc0
OiAgdWludDMyX3QgdmlkZW9fbGF0ZW5jeTsKMTQ0NzQ6IAoxNDQ3NDogIHVuaW9uIGRpc3BsYXlf
Y29udGVudF9zdXBwb3J0IGNvbnRlbnRfc3VwcG9ydDsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQ4X3Qg
cXNfYml0OwoxNDQ3NDogIHVpbnQ4X3QgcXlfYml0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBi
b29sIGx0ZV8zNDBtY3NjX3NjcmFtYmxlOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBlZGlkX2hkbWk7
CjE0NDc0OiAgYm9vbCBoZHJfc3VwcG9ydGVkOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX3Bh
bmVsX3BhdGNoIHBhbmVsX3BhdGNoOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHZp
ZXcgewoxNDQ3NDogIHVpbnQzMl90IHdpZHRoOwoxNDQ3NDogIHVpbnQzMl90IGhlaWdodDsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19tb2RlX2ZsYWdzIHsKMTQ0NzQ6IAoxNDQ3
NDogIHVpbnQzMl90IElOVEVSTEFDRSA6MTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IE5BVElW
RSA6MTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IFBSRUZFUlJFRCA6MTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdWludDMyX3QgUkVEVUNFRF9CTEFOS0lORyA6MTsKMTQ0NzQ6IAoxNDQ3NDog
IHVpbnQzMl90IFZJREVPX09QVElNSVpFRF9SQVRFIDoxOwoxNDQ3NDogCjE0NDc0OiAgdWludDMy
X3QgUEFDS0VEX1BJWEVMX0ZPUk1BVCA6MTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IFBSRUZF
UlJFRF9WSUVXIDoxOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgVElMRURfTU9ERSA6MTsKMTQ0
NzQ6ICB1aW50MzJfdCBEU0VfTU9ERSA6MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHVpbnQzMl90IE1JUkFDQVNUX1JFRlJFU0hfRElWSURFUjsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY190aW1pbmdfc291cmNlIHsKMTQ0NzQ6ICBUSU1J
TkdfU09VUkNFX1VOREVGSU5FRCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgVElNSU5HX1NPVVJD
RV9VU0VSX0ZPUkNFRCwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX1VTRVJfT1ZFUlJJREUsCjE0NDc0
OiAgVElNSU5HX1NPVVJDRV9DVVNUT00sCjE0NDc0OiAgVElNSU5HX1NPVVJDRV9FWFBMSUNJVCwK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgVElNSU5HX1NPVVJDRV9FRElEX0NFQV9TVkRfM0QsCjE0
NDc0OiAgVElNSU5HX1NPVVJDRV9FRElEX0NFQV9TVkRfUFJFRkVSUkVELAoxNDQ3NDogIFRJTUlO
R19TT1VSQ0VfRURJRF9DRUFfU1ZEXzQyMCwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX0VESURfREVU
QUlMRUQsCjE0NDc0OiAgVElNSU5HX1NPVVJDRV9FRElEX0VTVEFCTElTSEVELAoxNDQ3NDogIFRJ
TUlOR19TT1VSQ0VfRURJRF9TVEFOREFSRCwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX0VESURfQ0VB
X1NWRCwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX0VESURfQ1ZUXzNCWVRFLAoxNDQ3NDogIFRJTUlO
R19TT1VSQ0VfRURJRF80QllURSwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX1ZCSU9TLAoxNDQ3NDog
IFRJTUlOR19TT1VSQ0VfQ1YsCjE0NDc0OiAgVElNSU5HX1NPVVJDRV9UViwKMTQ0NzQ6ICBUSU1J
TkdfU09VUkNFX0hETUlfVklDLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBUSU1JTkdfU09VUkNF
X0RFRkFVTFQsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFRJTUlOR19TT1VSQ0VfQ1VTVE9NX0JB
U0UsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFRJTUlOR19TT1VSQ0VfUkFOR0VMSU1JVCwKMTQ0
NzQ6ICBUSU1JTkdfU09VUkNFX09TX0ZPUkNFRCwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX0lNUExJ
Q0lULAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX0JBU0lDTU9ERSwKMTQ0
NzQ6IAoxNDQ3NDogIFRJTUlOR19TT1VSQ0VfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHN0ZXJlb18zZF9mZWF0dXJlcyB7CjE0NDc0OiAgYm9vbCBzdXBwb3J0
ZWQgOwoxNDQ3NDogIGJvb2wgYWxsVGltaW5ncyA7CjE0NDc0OiAgYm9vbCBjbG9uZU1vZGUgOwox
NDQ3NDogIGJvb2wgc2NhbGluZyA7CjE0NDc0OiAgYm9vbCBzaW5nbGVGcmFtZVNXUGFja2VkOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY190aW1pbmdfc3VwcG9ydF9tZXRob2Qgewox
NDQ3NDogIFRJTUlOR19TVVBQT1JUX01FVEhPRF9VTkRFRklORUQsCjE0NDc0OiAgVElNSU5HX1NV
UFBPUlRfTUVUSE9EX0VYUExJQ0lULAoxNDQ3NDogIFRJTUlOR19TVVBQT1JUX01FVEhPRF9JTVBM
SUNJVCwKMTQ0NzQ6ICBUSU1JTkdfU1VQUE9SVF9NRVRIT0RfTkFUSVZFCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZGNfbW9kZV9pbmZvIHsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF93
aWR0aDsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF9oZWlnaHQ7CjE0NDc0OiAgdWludDMyX3QgZmll
bGRfcmF0ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRjX3RpbWluZ19z
dGFuZGFyZCB0aW1pbmdfc3RhbmRhcmQ7CjE0NDc0OiAgZW51bSBkY190aW1pbmdfc291cmNlIHRp
bWluZ19zb3VyY2U7CjE0NDc0OiAgc3RydWN0IGRjX21vZGVfZmxhZ3MgZmxhZ3M7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX3Bvd2VyX3N0YXRlIHsKMTQ0NzQ6ICBEQ19QT1dFUl9T
VEFURV9PTiA9IDEsCjE0NDc0OiAgRENfUE9XRVJfU1RBVEVfU1RBTkRCWSwKMTQ0NzQ6ICBEQ19Q
T1dFUl9TVEFURV9TVVNQRU5ELAoxNDQ3NDogIERDX1BPV0VSX1NUQVRFX09GRgoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX3ZpZGVvX3Bvd2VyX3N0YXRlIHsKMTQ0NzQ6
ICBEQ19WSURFT19QT1dFUl9VTlNQRUNJRklFRCA9IDAsCjE0NDc0OiAgRENfVklERU9fUE9XRVJf
T04gPSAxLAoxNDQ3NDogIERDX1ZJREVPX1BPV0VSX1NUQU5EQlksCjE0NDc0OiAgRENfVklERU9f
UE9XRVJfU1VTUEVORCwKMTQ0NzQ6ICBEQ19WSURFT19QT1dFUl9PRkYsCjE0NDc0OiAgRENfVklE
RU9fUE9XRVJfSElCRVJOQVRFLAoxNDQ3NDogIERDX1ZJREVPX1BPV0VSX1NIVVRET1dOLAoxNDQ3
NDogIERDX1ZJREVPX1BPV0VSX1VMUFMsCjE0NDc0OiAgRENfVklERU9fUE9XRVJfQUZURVJfUkVT
RVQsCjE0NDc0OiAgRENfVklERU9fUE9XRVJfTUFYSU1VTQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogZW51bSBkY19hY3BpX2NtX3Bvd2VyX3N0YXRlIHsKMTQ0NzQ6ICBEQ19BQ1BJX0NNX1BPV0VS
X1NUQVRFX0QwID0gMSwKMTQ0NzQ6ICBEQ19BQ1BJX0NNX1BPV0VSX1NUQVRFX0QxID0gMiwKMTQ0
NzQ6ICBEQ19BQ1BJX0NNX1BPV0VSX1NUQVRFX0QyID0gNCwKMTQ0NzQ6ICBEQ19BQ1BJX0NNX1BP
V0VSX1NUQVRFX0QzID0gOAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19jb25uZWN0
aW9uX3R5cGUgewoxNDQ3NDogIGRjX2Nvbm5lY3Rpb25fbm9uZSwKMTQ0NzQ6ICBkY19jb25uZWN0
aW9uX3NpbmdsZSwKMTQ0NzQ6ICBkY19jb25uZWN0aW9uX21zdF9icmFuY2gsCjE0NDc0OiAgZGNf
Y29ubmVjdGlvbl9hY3RpdmVfZG9uZ2xlCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZGNfY3NjX2FkanVzdG1lbnRzIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBjb250cmFzdDsK
MTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBzYXR1cmF0aW9uOwoxNDQ3NDogIHN0cnVjdCBmaXhl
ZDMxXzMyIGJyaWdodG5lc3M7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgaHVlOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkcGNkX2Rvd25zdHJlYW1fcG9ydF9tYXhfYnBjIHsKMTQ0
NzQ6ICBET1dOX1NUUkVBTV9NQVhfOEJQQyA9IDAsCjE0NDc0OiAgRE9XTl9TVFJFQU1fTUFYXzEw
QlBDLAoxNDQ3NDogIERPV05fU1RSRUFNX01BWF8xMkJQQywKMTQ0NzQ6ICBET1dOX1NUUkVBTV9N
QVhfMTZCUEMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBsaW5rX3RyYWlu
aW5nX29mZnNldCB7CjE0NDc0OiAgRFBSWCA9IDAsCjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVBVEVS
MSA9IDEsCjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVBVEVSMiA9IDIsCjE0NDc0OiAgTFRUUFJfUEhZ
X1JFUEVBVEVSMyA9IDMsCjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVBVEVSNCA9IDQsCjE0NDc0OiAg
TFRUUFJfUEhZX1JFUEVBVEVSNSA9IDUsCjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVBVEVSNiA9IDYs
CjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVBVEVSNyA9IDcsCjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVB
VEVSOCA9IDgKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19sdHRwcl9jYXBzIHsK
MTQ0NzQ6ICB1bmlvbiBkcGNkX3JldiByZXZpc2lvbjsKMTQ0NzQ6ICB1aW50OF90IG1vZGU7CjE0
NDc0OiAgdWludDhfdCBtYXhfbGFuZV9jb3VudDsKMTQ0NzQ6ICB1aW50OF90IG1heF9saW5rX3Jh
dGU7CjE0NDc0OiAgdWludDhfdCBwaHlfcmVwZWF0ZXJfY250OwoxNDQ3NDogIHVpbnQ4X3QgbWF4
X2V4dF90aW1lb3V0OwoxNDQ3NDogIHVpbnQ4X3QgYXV4X3JkX2ludGVydmFsWzggLSAxXTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19kb25nbGVfY2FwcyB7CjE0NDc0OiAKMTQ0
NzQ6ICBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5cGUgZG9uZ2xlX3R5cGU7CjE0NDc0OiAgYm9vbCBl
eHRlbmRlZENhcFZhbGlkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIGlzX2RwX2hkbWlf
czNkX2NvbnZlcnRlcjsKMTQ0NzQ6ICBib29sIGlzX2RwX2hkbWlfeWNiY3I0MjJfcGFzc190aHJv
dWdoOwoxNDQ3NDogIGJvb2wgaXNfZHBfaGRtaV95Y2JjcjQyMF9wYXNzX3Rocm91Z2g7CjE0NDc0
OiAgYm9vbCBpc19kcF9oZG1pX3ljYmNyNDIyX2NvbnZlcnRlcjsKMTQ0NzQ6ICBib29sIGlzX2Rw
X2hkbWlfeWNiY3I0MjBfY29udmVydGVyOwoxNDQ3NDogIHVpbnQzMl90IGRwX2hkbWlfbWF4X2Jw
YzsKMTQ0NzQ6ICB1aW50MzJfdCBkcF9oZG1pX21heF9waXhlbF9jbGtfaW5fa2h6OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBzY2FsaW5nX3RyYW5zZm9ybWF0aW9uIHsKMTQ0NzQ6ICBT
Q0FMSU5HX1RSQU5TRk9STUFUSU9OX1VOSU5JVElBTElaRUQsCjE0NDc0OiAgU0NBTElOR19UUkFO
U0ZPUk1BVElPTl9JREVOVElUWSA9IDB4MDAwMSwKMTQ0NzQ6ICBTQ0FMSU5HX1RSQU5TRk9STUFU
SU9OX0NFTlRFUl9USU1JTkcgPSAweDAwMDIsCjE0NDc0OiAgU0NBTElOR19UUkFOU0ZPUk1BVElP
Tl9GVUxMX1NDUkVFTl9TQ0FMRSA9IDB4MDAwNCwKMTQ0NzQ6ICBTQ0FMSU5HX1RSQU5TRk9STUFU
SU9OX1BSRVNFUlZFX0FTUEVDVF9SQVRJT19TQ0FMRSA9IDB4MDAwOCwKMTQ0NzQ6ICBTQ0FMSU5H
X1RSQU5TRk9STUFUSU9OX0RBTF9ERUNJREUgPSAweDAwMTAsCjE0NDc0OiAgU0NBTElOR19UUkFO
U0ZPUk1BVElPTl9JTlZBTElEID0gMHg4MDAwMDAwMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
U0NBTElOR19UUkFOU0ZPUk1BVElPTl9CRUdJTkcgPSBTQ0FMSU5HX1RSQU5TRk9STUFUSU9OX0lE
RU5USVRZLAoxNDQ3NDogIFNDQUxJTkdfVFJBTlNGT1JNQVRJT05fRU5EID0KMTQ0NzQ6ICAgU0NB
TElOR19UUkFOU0ZPUk1BVElPTl9QUkVTRVJWRV9BU1BFQ1RfUkFUSU9fU0NBTEUKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGlzcGxheV9jb250ZW50X3R5cGUgewoxNDQ3NDogIERJU1BM
QVlfQ09OVEVOVF9UWVBFX05PX0RBVEEgPSAwLAoxNDQ3NDogIERJU1BMQVlfQ09OVEVOVF9UWVBF
X0dSQVBISUNTID0gMSwKMTQ0NzQ6ICBESVNQTEFZX0NPTlRFTlRfVFlQRV9QSE9UTyA9IDIsCjE0
NDc0OiAgRElTUExBWV9DT05URU5UX1RZUEVfQ0lORU1BID0gNCwKMTQ0NzQ6ICBESVNQTEFZX0NP
TlRFTlRfVFlQRV9HQU1FID0gOAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZHdiX3N0ZXJlb19wYXJhbXMgewoxNDQ3NDogIGJvb2wgc3RlcmVvX2VuYWJsZWQ7CjE0NDc0
OiAgZW51bSBkd2Jfc3RlcmVvX3R5cGUgc3RlcmVvX3R5cGU7CjE0NDc0OiAgYm9vbCBzdGVyZW9f
cG9sYXJpdHk7CjE0NDc0OiAgZW51bSBkd2Jfc3RlcmVvX2V5ZV9zZWxlY3Qgc3RlcmVvX2V5ZV9z
ZWxlY3Q7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfZHdiX2Nudl9wYXJhbXMg
ewoxNDQ3NDogIHVuc2lnbmVkIGludCBzcmNfd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNy
Y19oZWlnaHQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGNyb3Bfd2lkdGg7CjE0NDc0OiAgYm9vbCBj
cm9wX2VuOwoxNDQ3NDogIHVuc2lnbmVkIGludCBjcm9wX2hlaWdodDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgY3JvcF94OwoxNDQ3NDogIHVuc2lnbmVkIGludCBjcm9wX3k7CjE0NDc0OiAgZW51bSBk
d2JfY252X291dF9icGMgY252X291dF9icGM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZGNfZHdiX3BhcmFtcyB7CjE0NDc0OiAgc3RydWN0IGRjX2R3Yl9jbnZfcGFyYW1zIGNudl9w
YXJhbXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRlc3Rfd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQg
aW50IGRlc3RfaGVpZ2h0OwoxNDQ3NDogIGVudW0gZHdiX3NjYWxlcl9tb2RlIG91dF9mb3JtYXQ7
CjE0NDc0OiAgZW51bSBkd2Jfb3V0cHV0X2RlcHRoIG91dHB1dF9kZXB0aDsKMTQ0NzQ6ICBlbnVt
IGR3Yl9jYXB0dXJlX3JhdGUgY2FwdHVyZV9yYXRlOwoxNDQ3NDogIHN0cnVjdCBzY2FsaW5nX3Rh
cHMgc2NhbGVyX3RhcHM7CjE0NDc0OiAgZW51bSBkd2Jfc3Vic2FtcGxlX3Bvc2l0aW9uIHN1YnNh
bXBsZV9wb3NpdGlvbjsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqb3V0X3RyYW5z
ZmVyX2Z1bmM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5pb24g
YXVkaW9fc2FtcGxlX3JhdGVzIHsKMTQ0NzQ6ICBzdHJ1Y3Qgc2FtcGxlX3JhdGVzIHsKMTQ0NzQ6
ICAgdWludDhfdCBSQVRFXzMyOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkFURV80NF8xOjE7CjE0NDc0
OiAgIHVpbnQ4X3QgUkFURV80ODoxOwoxNDQ3NDogICB1aW50OF90IFJBVEVfODhfMjoxOwoxNDQ3
NDogICB1aW50OF90IFJBVEVfOTY6MTsKMTQ0NzQ6ICAgdWludDhfdCBSQVRFXzE3Nl80OjE7CjE0
NDc0OiAgIHVpbnQ4X3QgUkFURV8xOTI6MTsKMTQ0NzQ6ICB9IHJhdGU7CjE0NDc0OiAKMTQ0NzQ6
ICB1aW50OF90IGFsbDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb19zcGVh
a2VyX2ZsYWdzIHsKMTQ0NzQ6ICB1aW50MzJfdCBGTF9GUjoxOwoxNDQ3NDogIHVpbnQzMl90IExG
RToxOwoxNDQ3NDogIHVpbnQzMl90IEZDOjE7CjE0NDc0OiAgdWludDMyX3QgUkxfUlI6MTsKMTQ0
NzQ6ICB1aW50MzJfdCBSQzoxOwoxNDQ3NDogIHVpbnQzMl90IEZMQ19GUkM6MTsKMTQ0NzQ6ICB1
aW50MzJfdCBSTENfUlJDOjE7CjE0NDc0OiAgdWludDMyX3QgU1VQUE9SVF9BSToxOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF1ZGlvX3NwZWFrZXJfaW5mbyB7CjE0NDc0OiAgdWlu
dDMyX3QgQUxMU1BFQUtFUlM6NzsKMTQ0NzQ6ICB1aW50MzJfdCBTVVBQT1JUX0FJOjE7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb19pbmZvX2ZsYWdzIHsKMTQ0
NzQ6IAoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgYXVkaW9fc3BlYWtl
cl9mbGFncyBzcGVha2VyX2ZsYWdzOwoxNDQ3NDogICBzdHJ1Y3QgYXVkaW9fc3BlYWtlcl9pbmZv
IGluZm87CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBhbGw7CjE0NDc0OiAgfTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXVkaW9fZm9ybWF0X2NvZGUgewoxNDQ3NDogIEFVRElPX0ZP
Uk1BVF9DT0RFX0ZJUlNUID0gMSwKMTQ0NzQ6ICBBVURJT19GT1JNQVRfQ09ERV9MSU5FQVJQQ00g
PSBBVURJT19GT1JNQVRfQ09ERV9GSVJTVCwKMTQ0NzQ6IAoxNDQ3NDogIEFVRElPX0ZPUk1BVF9D
T0RFX0FDMywKMTQ0NzQ6IAoxNDQ3NDogIEFVRElPX0ZPUk1BVF9DT0RFX01QRUcxLAoxNDQ3NDog
CjE0NDc0OiAgQVVESU9fRk9STUFUX0NPREVfTVAzLAoxNDQ3NDogCjE0NDc0OiAgQVVESU9fRk9S
TUFUX0NPREVfTVBFRzIsCjE0NDc0OiAgQVVESU9fRk9STUFUX0NPREVfQUFDLAoxNDQ3NDogIEFV
RElPX0ZPUk1BVF9DT0RFX0RUUywKMTQ0NzQ6ICBBVURJT19GT1JNQVRfQ09ERV9BVFJBQywKMTQ0
NzQ6ICBBVURJT19GT1JNQVRfQ09ERV8xQklUQVVESU8sCjE0NDc0OiAgQVVESU9fRk9STUFUX0NP
REVfRE9MQllESUdJVEFMUExVUywKMTQ0NzQ6ICBBVURJT19GT1JNQVRfQ09ERV9EVFNfSEQsCjE0
NDc0OiAgQVVESU9fRk9STUFUX0NPREVfTUFUX01MUCwKMTQ0NzQ6ICBBVURJT19GT1JNQVRfQ09E
RV9EU1QsCjE0NDc0OiAgQVVESU9fRk9STUFUX0NPREVfV01BUFJPLAoxNDQ3NDogIEFVRElPX0ZP
Uk1BVF9DT0RFX0xBU1QsCjE0NDc0OiAgQVVESU9fRk9STUFUX0NPREVfQ09VTlQgPQoxNDQ3NDog
ICBBVURJT19GT1JNQVRfQ09ERV9MQVNUIC0gQVVESU9fRk9STUFUX0NPREVfRklSU1QKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb19tb2RlIHsKMTQ0NzQ6IAoxNDQ3NDogIGVu
dW0gYXVkaW9fZm9ybWF0X2NvZGUgZm9ybWF0X2NvZGU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90
IGNoYW5uZWxfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiBhdWRpb19zYW1wbGVfcmF0ZXMg
c2FtcGxlX3JhdGVzOwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IHNh
bXBsZV9zaXplOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgbWF4X2JpdF9yYXRlOwoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQ4X3QgdmVuZG9yX3NwZWNpZmljOwoxNDQ3NDogIH07CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXVkaW9faW5mbyB7CjE0NDc0OiAgc3RydWN0IGF1ZGlvX2lu
Zm9fZmxhZ3MgZmxhZ3M7CjE0NDc0OiAgdWludDMyX3QgdmlkZW9fbGF0ZW5jeTsKMTQ0NzQ6ICB1
aW50MzJfdCBhdWRpb19sYXRlbmN5OwoxNDQ3NDogIHVpbnQzMl90IGRpc3BsYXlfaW5kZXg7CjE0
NDc0OiAgdWludDhfdCBkaXNwbGF5X25hbWVbMjBdOwoxNDQ3NDogIHVpbnQzMl90IG1hbnVmYWN0
dXJlX2lkOwoxNDQ3NDogIHVpbnQzMl90IHByb2R1Y3RfaWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50
MzJfdCBwb3J0X2lkWzJdOwoxNDQ3NDogIHVpbnQzMl90IG1vZGVfY291bnQ7CjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3QgYXVkaW9fbW9kZSBtb2Rlc1sxNl07CjE0NDc0OiB9OwoxNDQ3NDogc3RydWN0
IGF1ZGlvX2NoZWNrIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgYXVkaW9fcGFja2V0X3R5cGU7CjE0
NDc0OiAgdW5zaWduZWQgaW50IG1heF9hdWRpb3NhbXBsZV9yYXRlOwoxNDQ3NDogIHVuc2lnbmVk
IGludCBhY2F0OwoxNDQ3NDogfTsKMTQ0NzQ6IGVudW0gZGNfaW5mb2ZyYW1lX3R5cGUgewoxNDQ3
NDogIERDX0hETUlfSU5GT0ZSQU1FX1RZUEVfVkVORE9SID0gMHg4MSwKMTQ0NzQ6ICBEQ19IRE1J
X0lORk9GUkFNRV9UWVBFX0FWSSA9IDB4ODIsCjE0NDc0OiAgRENfSERNSV9JTkZPRlJBTUVfVFlQ
RV9TUEQgPSAweDgzLAoxNDQ3NDogIERDX0hETUlfSU5GT0ZSQU1FX1RZUEVfQVVESU8gPSAweDg0
LAoxNDQ3NDogIERDX0RQX0lORk9GUkFNRV9UWVBFX1BQUyA9IDB4MTAsCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgewoxNDQ3NDogIGJvb2wgdmFsaWQ7CjE0
NDc0OiAgdWludDhfdCBoYjA7CjE0NDc0OiAgdWludDhfdCBoYjE7CjE0NDc0OiAgdWludDhfdCBo
YjI7CjE0NDc0OiAgdWludDhfdCBoYjM7CjE0NDc0OiAgdWludDhfdCBzYlszMl07CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXRfMTI4IHsKMTQ0NzQ6ICBib29s
IHZhbGlkOwoxNDQ3NDogIHVpbnQ4X3QgaGIwOwoxNDQ3NDogIHVpbnQ4X3QgaGIxOwoxNDQ3NDog
IHVpbnQ4X3QgaGIyOwoxNDQ3NDogIHVpbnQ4X3QgaGIzOwoxNDQ3NDogIHVpbnQ4X3Qgc2JbMTI4
XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfcGxh
bmVfZmxpcF90aW1lIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdGltZV9lbGFwc2VkX2luX3VzWzEw
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaW5kZXg7CjE0NDc0OiAgdW5zaWduZWQgaW50IHByZXZf
dXBkYXRlX3RpbWVfaW5fdXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHNyX2Nv
bmZpZyB7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBwc3JfdmVyc2lvbjsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgcHNyX3JmYl9zZXR1cF90aW1lOwoxNDQ3NDogIGJvb2wgcHNyX2V4aXRfbGlua190cmFp
bmluZ19yZXF1aXJlZDsKMTQ0NzQ6ICBib29sIHBzcl9mcmFtZV9jYXB0dXJlX2luZGljYXRpb25f
cmVxOwoxNDQ3NDogIHVuc2lnbmVkIGludCBwc3Jfc2RwX3RyYW5zbWl0X2xpbmVfbnVtX2RlYWRs
aW5lOwoxNDQ3NDogIGJvb2wgYWxsb3dfc211X29wdGltaXphdGlvbnM7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiB1bmlvbiBkbWN1X3Bzcl9sZXZlbCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6
ICAgdW5zaWduZWQgaW50IFNLSVBfQ1JDOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBTS0lQX0RQ
X1ZJRF9TVFJFQU1fRElTQUJMRToxOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgU0tJUF9QSFlfUE9X
RVJfRE9XTjoxOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgU0tJUF9BVVhfQUNLX0NIRUNLOjE7CjE0
NDc0OiAgIHVuc2lnbmVkIGludCBTS0lQX0NSVENfRElTQUJMRToxOwoxNDQ3NDogICB1bnNpZ25l
ZCBpbnQgU0tJUF9BVVhfUkZCX0NBUFRVUkVfQ0hFQ0s6MTsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50
IFNLSVBfU01VX05PVElGSUNBVElPTjoxOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgU0tJUF9BVVRP
X1NUQVRFX0FEVkFOQ0U6MTsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IERJU0FCTEVfUFNSX0VOVFJZ
X0FCT1JUOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBTS0lQX1NJTkdMRV9PVEdfRElTQUJMRTox
OwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgUkVTRVJWRUQ6MjI7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3
NDogIHVuc2lnbmVkIGludCB1MzJhbGw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHBo
eXNpY2FsX3BoeV9pZCB7CjE0NDc0OiAgUEhZTERfMCwKMTQ0NzQ6ICBQSFlMRF8xLAoxNDQ3NDog
IFBIWUxEXzIsCjE0NDc0OiAgUEhZTERfMywKMTQ0NzQ6ICBQSFlMRF80LAoxNDQ3NDogIFBIWUxE
XzUsCjE0NDc0OiAgUEhZTERfNiwKMTQ0NzQ6ICBQSFlMRF83LAoxNDQ3NDogIFBIWUxEXzgsCjE0
NDc0OiAgUEhZTERfOSwKMTQ0NzQ6ICBQSFlMRF9DT1VOVCwKMTQ0NzQ6ICBQSFlMRF9VTktOT1dO
ID0gKC0xTCkKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcGh5X3R5cGUgewoxNDQ3NDog
IFBIWV9UWVBFX1VOS05PV04gPSAxLAoxNDQ3NDogIFBIWV9UWVBFX1BDSUVfUEhZID0gMiwKMTQ0
NzQ6ICBQSFlfVFlQRV9VTklQSFkgPSAzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHBzcl9jb250ZXh0IHsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gY2hhbm5lbF9pZCBjaGFubmVsOwox
NDQ3NDogCjE0NDc0OiAgZW51bSB0cmFuc21pdHRlciB0cmFuc21pdHRlcklkOwoxNDQ3NDogCjE0
NDc0OiAgZW51bSBlbmdpbmVfaWQgZW5naW5lSWQ7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGNvbnRy
b2xsZXJfaWQgY29udHJvbGxlcklkOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBwaHlfdHlwZSBwaHlU
eXBlOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBwaHlzaWNhbF9waHlfaWQgc211UGh5SWQ7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBj
cnRjVGltaW5nVmVydGljYWxUb3RhbDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBi
b29sIHBzclN1cHBvcnRlZERpc3BsYXlDb25maWc7CjE0NDc0OiAKMTQ0NzQ6ICBib29sIHBzckV4
aXRMaW5rVHJhaW5pbmdSZXF1aXJlZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIHBzckZyYW1lQ2FwdHVyZUluZGljYXRpb25SZXE7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IHNkcFRyYW5zbWl0
TGluZU51bURlYWRsaW5lOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVk
IGludCB2c3luY19yYXRlX2h6OwoxNDQ3NDogIHVuc2lnbmVkIGludCBza2lwUHNyV2FpdEZvclBs
bExvY2s7CjE0NDc0OiAgdW5zaWduZWQgaW50IG51bWJlck9mQ29udHJvbGxlcnM7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIHJmYl91cGRhdGVfYXV0b19lbjsK
MTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCB0aW1laHlzdF9mcmFtZXM7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgaHlzdF9saW5lczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgYXV4X3JlcGVhdHM7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiBkbWN1
X3Bzcl9sZXZlbCBwc3JfbGV2ZWw7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5z
aWduZWQgaW50IGZyYW1lX2RlbGF5OwoxNDQ3NDogIGJvb2wgYWxsb3dfc211X29wdGltaXphdGlv
bnM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY29sb3JzcGFjZV90cmFuc2Zvcm0g
ewoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIG1hdHJpeFsxMl07CjE0NDc0OiAgYm9vbCBlbmFi
bGVfcmVtYXA7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGkyY19tb3RfbW9kZSB7CjE0
NDc0OiAgSTJDX01PVF9VTkRFRiwKMTQ0NzQ6ICBJMkNfTU9UX1RSVUUsCjE0NDc0OiAgSTJDX01P
VF9GQUxTRQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IEFzaWNTdGF0ZUV4IHsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgbWVtb3J5Q2xvY2s7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRpc3Bs
YXlDbG9jazsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZW5naW5lQ2xvY2s7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IG1heFN1cHBvcnRlZERwcENsb2NrOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHBDbG9j
azsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc29jQ2xvY2s7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRj
ZkNsb2NrRGVlcFNsZWVwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBmQ2xvY2s7CjE0NDc0OiAgdW5z
aWduZWQgaW50IHBoeUNsb2NrOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVt
IGRjX2Nsb2NrX3R5cGUgewoxNDQ3NDogIERDX0NMT0NLX1RZUEVfRElTUENMSyA9IDAsCjE0NDc0
OiAgRENfQ0xPQ0tfVFlQRV9EUFBDTEsgPSAxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGRjX2Nsb2NrX2NvbmZpZyB7CjE0NDc0OiAgdWludDMyX3QgbWF4X2Nsb2NrX2toejsKMTQ0
NzQ6ICB1aW50MzJfdCBtaW5fY2xvY2tfa2h6OwoxNDQ3NDogIHVpbnQzMl90IGJ3X3JlcXVpcmVx
dWlyZWRfY2xvY2tfa2h6OwoxNDQ3NDogIHVpbnQzMl90IGN1cnJlbnRfY2xvY2tfa2h6OwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkc2Nfc2xpY2VfY2FwczEgewoxNDQ3
NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgTlVNX1NMSUNFU18xIDogMTsKMTQ0NzQ6ICAg
dWludDhfdCBOVU1fU0xJQ0VTXzIgOiAxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEIDogMTsK
MTQ0NzQ6ICAgdWludDhfdCBOVU1fU0xJQ0VTXzQgOiAxOwoxNDQ3NDogICB1aW50OF90IE5VTV9T
TElDRVNfNiA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgTlVNX1NMSUNFU184IDogMTsKMTQ0NzQ6ICAg
dWludDhfdCBOVU1fU0xJQ0VTXzEwIDogMTsKMTQ0NzQ6ICAgdWludDhfdCBOVU1fU0xJQ0VTXzEy
IDogMTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiB1bmlvbiBkc2Nfc2xpY2VfY2FwczIgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0
OiAgIHVpbnQ4X3QgTlVNX1NMSUNFU18xNiA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgTlVNX1NMSUNF
U18yMCA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgTlVNX1NMSUNFU18yNCA6IDE7CjE0NDc0OiAgIHVp
bnQ4X3QgUkVTRVJWRUQgOiA1OwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGRzY19jb2xvcl9mb3JtYXRzIHsKMTQ0NzQ6
ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IFJHQiA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgWUNC
Q1JfNDQ0IDogMTsKMTQ0NzQ6ICAgdWludDhfdCBZQ0JDUl9TSU1QTEVfNDIyIDogMTsKMTQ0NzQ6
ICAgdWludDhfdCBZQ0JDUl9OQVRJVkVfNDIyIDogMTsKMTQ0NzQ6ICAgdWludDhfdCBZQ0JDUl9O
QVRJVkVfNDIwIDogMTsKMTQ0NzQ6ICAgdWludDhfdCBSRVNFUlZFRCA6IDM7CjE0NDc0OiAgfSBi
aXRzOwoxNDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24g
ZHNjX2NvbG9yX2RlcHRoIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IFJFU0VS
VkVEMSA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgQ09MT1JfREVQVEhfOF9CUEMgOiAxOwoxNDQ3NDog
ICB1aW50OF90IENPTE9SX0RFUFRIXzEwX0JQQyA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgQ09MT1Jf
REVQVEhfMTJfQlBDIDogMTsKMTQ0NzQ6ICAgdWludDhfdCBSRVNFUlZFRDIgOiAzOwoxNDQ3NDog
IH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBkc2NfZGVjX2RwY2RfY2FwcyB7CjE0NDc0OiAgYm9vbCBpc19kc2Nfc3VwcG9ydGVkOwox
NDQ3NDogIHVpbnQ4X3QgZHNjX3ZlcnNpb247CjE0NDc0OiAgaW50MzJfdCByY19idWZmZXJfc2l6
ZTsKMTQ0NzQ6ICB1bmlvbiBkc2Nfc2xpY2VfY2FwczEgc2xpY2VfY2FwczE7CjE0NDc0OiAgdW5p
b24gZHNjX3NsaWNlX2NhcHMyIHNsaWNlX2NhcHMyOwoxNDQ3NDogIGludDMyX3QgbGJfYml0X2Rl
cHRoOwoxNDQ3NDogIGJvb2wgaXNfYmxvY2tfcHJlZF9zdXBwb3J0ZWQ7CjE0NDc0OiAgaW50MzJf
dCBlZHBfbWF4X2JpdHNfcGVyX3BpeGVsOwoxNDQ3NDogIHVuaW9uIGRzY19jb2xvcl9mb3JtYXRz
IGNvbG9yX2Zvcm1hdHM7CjE0NDc0OiAgdW5pb24gZHNjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRo
OwoxNDQ3NDogIGludDMyX3QgdGhyb3VnaHB1dF9tb2RlXzBfbXBzOwoxNDQ3NDogIGludDMyX3Qg
dGhyb3VnaHB1dF9tb2RlXzFfbXBzOwoxNDQ3NDogIGludDMyX3QgbWF4X3NsaWNlX3dpZHRoOwox
NDQ3NDogIHVpbnQzMl90IGJwcF9pbmNyZW1lbnRfZGl2OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICB1aW50MzJfdCBicmFuY2hfb3ZlcmFsbF90aHJvdWdocHV0XzBfbXBzOwoxNDQ3NDogIHVpbnQz
Ml90IGJyYW5jaF9vdmVyYWxsX3Rocm91Z2hwdXRfMV9tcHM7CjE0NDc0OiAgdWludDMyX3QgYnJh
bmNoX21heF9saW5lX3dpZHRoOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzAgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvZGNjZy5oIiAyCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkY2NnIHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDog
IGNvbnN0IHN0cnVjdCBkY2NnX2Z1bmNzICpmdW5jczsKMTQ0NzQ6IAoxNDQ3NDogIGludCByZWZf
ZHBwY2xrOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjY2dfZnVuY3MgewoxNDQ3
NDogIHZvaWQgKCp1cGRhdGVfZHBwX2R0bykoc3RydWN0IGRjY2cgKmRjY2csCjE0NDc0OiAgICBp
bnQgZHBwX2luc3QsCjE0NDc0OiAgICBpbnQgcmVxX2RwcGNsayk7CjE0NDc0OiAgdm9pZCAoKmdl
dF9kY2NnX3JlZl9mcmVxKShzdHJ1Y3QgZGNjZyAqZGNjZywKMTQ0NzQ6ICAgIHVuc2lnbmVkIGlu
dCB4dGFsaW5fZnJlcV9pbktoeiwKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCAqZGNjZ19yZWZfZnJl
cV9pbktoeik7CjE0NDc0OiAgdm9pZCAoKmRjY2dfaW5pdCkoc3RydWN0IGRjY2cgKmRjY2cpOwox
NDQ3NDogfTsKMTQ0NzQ6ICMgMjcgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9jbGtfbWdyX2ludGVybmFs
LmgiIDEKMTQ0NzQ6ICMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5hbC5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaCIgMQoxNDQ3NDog
IyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9j
bGtfbWdyLmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9kYy5oIiAxCjE0NDc0OiAjIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZGMuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RjX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMzAgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMg
MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbG9nZ2Vy
X3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9pbmNsdWRlL2xvZ2dlcl90eXBlcy5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvb3NfdHlwZXMuaCIgMQoxNDQ3NDogIyAzMCAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbG9nZ2VyX3R5
cGVzLmgiIDIKMTQ0NzQ6ICMgNzIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9pbmNsdWRlL2xvZ2dlcl90eXBlcy5oIgoxNDQ3NDogc3RydWN0IGRhbF9sb2dnZXI7CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19sb2dfYnVmZmVyX2N0eCB7CjE0NDc0OiAgY2hhciAqYnVm
OwoxNDQ3NDogIHNpemVfdCBwb3M7CjE0NDc0OiAgc2l6ZV90IHNpemU7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBlbnVtIGRjX2xvZ190eXBlIHsKMTQ0NzQ6ICBMT0dfRVJST1IgPSAwLAoxNDQ3
NDogIExPR19XQVJOSU5HLAoxNDQ3NDogIExPR19ERUJVRywKMTQ0NzQ6ICBMT0dfREMsCjE0NDc0
OiAgTE9HX0RUTiwKMTQ0NzQ6ICBMT0dfU1VSRkFDRSwKMTQ0NzQ6ICBMT0dfSFdfSE9UUExVRywK
MTQ0NzQ6ICBMT0dfSFdfTElOS19UUkFJTklORywKMTQ0NzQ6ICBMT0dfSFdfU0VUX01PREUsCjE0
NDc0OiAgTE9HX0hXX1JFU1VNRV9TMywKMTQ0NzQ6ICBMT0dfSFdfQVVESU8sCjE0NDc0OiAgTE9H
X0hXX0hQRF9JUlEsCjE0NDc0OiAgTE9HX01TVCwKMTQ0NzQ6ICBMT0dfU0NBTEVSLAoxNDQ3NDog
IExPR19CSU9TLAoxNDQ3NDogIExPR19CQU5EV0lEVEhfQ0FMQ1MsCjE0NDc0OiAgTE9HX0JBTkRX
SURUSF9WQUxJREFUSU9OLAoxNDQ3NDogIExPR19JMkNfQVVYLAoxNDQ3NDogIExPR19TWU5DLAox
NDQ3NDogIExPR19CQUNLTElHSFQsCjE0NDc0OiAgTE9HX0ZFQVRVUkVfT1ZFUlJJREUsCjE0NDc0
OiAgTE9HX0RFVEVDVElPTl9FRElEX1BBUlNFUiwKMTQ0NzQ6ICBMT0dfREVURUNUSU9OX0RQX0NB
UFMsCjE0NDc0OiAgTE9HX1JFU09VUkNFLAoxNDQ3NDogIExPR19ETUwsCjE0NDc0OiAgTE9HX0VW
RU5UX01PREVfU0VULAoxNDQ3NDogIExPR19FVkVOVF9ERVRFQ1RJT04sCjE0NDc0OiAgTE9HX0VW
RU5UX0xJTktfVFJBSU5JTkcsCjE0NDc0OiAgTE9HX0VWRU5UX0xJTktfTE9TUywKMTQ0NzQ6ICBM
T0dfRVZFTlRfVU5ERVJGTE9XLAoxNDQ3NDogIExPR19JRl9UUkFDRSwKMTQ0NzQ6ICBMT0dfUEVS
Rl9UUkFDRSwKMTQ0NzQ6ICBMT0dfRElTUExBWVNUQVRTLAoxNDQ3NDogIExPR19IRE1JX1JFVElN
RVJfUkVEUklWRVIsCjE0NDc0OiAgTE9HX0RTQywKMTQ0NzQ6ICBMT0dfRFdCLAoxNDQ3NDogIExP
R19HQU1NQV9ERUJVRywKMTQ0NzQ6ICBMT0dfTUFYX0hXX1BPSU5UUywKMTQ0NzQ6ICBMT0dfQUxM
X1RGX0NIQU5ORUxTLAoxNDQ3NDogIExPR19TQU1QTEVfMURMVVQsCjE0NDc0OiAgTE9HX1NFQ1RJ
T05fVE9UQUxfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0OiAjIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX3R5cGVzLmgiIDEKMTQ0NzQ6
ICMgNDAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dw
aW9fdHlwZXMuaCIKMTQ0NzQ6IGVudW0gZ3Bpb19yZXN1bHQgewoxNDQ3NDogIEdQSU9fUkVTVUxU
X09LLAoxNDQ3NDogIEdQSU9fUkVTVUxUX05VTExfSEFORExFLAoxNDQ3NDogIEdQSU9fUkVTVUxU
X0lOVkFMSURfREFUQSwKMTQ0NzQ6ICBHUElPX1JFU1VMVF9ERVZJQ0VfQlVTWSwKMTQ0NzQ6ICBH
UElPX1JFU1VMVF9PUEVOX0ZBSUxFRCwKMTQ0NzQ6ICBHUElPX1JFU1VMVF9BTFJFQURZX09QRU5F
RCwKMTQ0NzQ6ICBHUElPX1JFU1VMVF9OT05fU1BFQ0lGSUNfRVJST1IKMTQ0NzQ6IH07CjE0NDc0
OiAjIDU4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9n
cGlvX3R5cGVzLmgiCjE0NDc0OiBlbnVtIGdwaW9faWQgewoxNDQ3NDogIEdQSU9fSURfVU5LTk9X
TiA9ICgtMSksCjE0NDc0OiAgR1BJT19JRF9ERENfREFUQSwKMTQ0NzQ6ICBHUElPX0lEX0REQ19D
TE9DSywKMTQ0NzQ6ICBHUElPX0lEX0dFTkVSSUMsCjE0NDc0OiAgR1BJT19JRF9IUEQsCjE0NDc0
OiAgR1BJT19JRF9HUElPX1BBRCwKMTQ0NzQ6ICBHUElPX0lEX1ZJUF9QQUQsCjE0NDc0OiAgR1BJ
T19JRF9TWU5DLAoxNDQ3NDogIEdQSU9fSURfR1NMLAoxNDQ3NDogIEdQSU9fSURfQ09VTlQsCjE0
NDc0OiAgR1BJT19JRF9NSU4gPSBHUElPX0lEX0REQ19EQVRBLAoxNDQ3NDogIEdQSU9fSURfTUFY
ID0gR1BJT19JRF9HU0wKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBncGlvX3Bpbl9pbmZvIHsKMTQ0NzQ6ICB1aW50MzJfdCBvZmZzZXQ7CjE0
NDc0OiAgdWludDMyX3Qgb2Zmc2V0X3k7CjE0NDc0OiAgdWludDMyX3Qgb2Zmc2V0X2VuOwoxNDQ3
NDogIHVpbnQzMl90IG9mZnNldF9tYXNrOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgbWFzazsK
MTQ0NzQ6ICB1aW50MzJfdCBtYXNrX3k7CjE0NDc0OiAgdWludDMyX3QgbWFza19lbjsKMTQ0NzQ6
ICB1aW50MzJfdCBtYXNrX21hc2s7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGdwaW9f
cGluX291dHB1dF9zdGF0ZSB7CjE0NDc0OiAgR1BJT19QSU5fT1VUUFVUX1NUQVRFX0FDVElWRV9M
T1csCjE0NDc0OiAgR1BJT19QSU5fT1VUUFVUX1NUQVRFX0FDVElWRV9ISUdILAoxNDQ3NDogIEdQ
SU9fUElOX09VVFBVVF9TVEFURV9ERUZBVUxUID0gR1BJT19QSU5fT1VUUFVUX1NUQVRFX0FDVElW
RV9MT1cKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZ3Bpb19nZW5lcmljIHsKMTQ0NzQ6
ICBHUElPX0dFTkVSSUNfVU5LTk9XTiA9ICgtMSksCjE0NDc0OiAgR1BJT19HRU5FUklDX0EsCjE0
NDc0OiAgR1BJT19HRU5FUklDX0IsCjE0NDc0OiAgR1BJT19HRU5FUklDX0MsCjE0NDc0OiAgR1BJ
T19HRU5FUklDX0QsCjE0NDc0OiAgR1BJT19HRU5FUklDX0UsCjE0NDc0OiAgR1BJT19HRU5FUklD
X0YsCjE0NDc0OiAgR1BJT19HRU5FUklDX0csCjE0NDc0OiAgR1BJT19HRU5FUklDX0NPVU5ULAox
NDQ3NDogIEdQSU9fR0VORVJJQ19NSU4gPSBHUElPX0dFTkVSSUNfQSwKMTQ0NzQ6ICBHUElPX0dF
TkVSSUNfTUFYID0gR1BJT19HRU5FUklDX0IKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0g
Z3Bpb19ocGQgewoxNDQ3NDogIEdQSU9fSFBEX1VOS05PV04gPSAoLTEpLAoxNDQ3NDogIEdQSU9f
SFBEXzEsCjE0NDc0OiAgR1BJT19IUERfMiwKMTQ0NzQ6ICBHUElPX0hQRF8zLAoxNDQ3NDogIEdQ
SU9fSFBEXzQsCjE0NDc0OiAgR1BJT19IUERfNSwKMTQ0NzQ6ICBHUElPX0hQRF82LAoxNDQ3NDog
IEdQSU9fSFBEX0NPVU5ULAoxNDQ3NDogIEdQSU9fSFBEX01JTiA9IEdQSU9fSFBEXzEsCjE0NDc0
OiAgR1BJT19IUERfTUFYID0gR1BJT19IUERfNgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBncGlvX2dwaW9fcGFkIHsKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEX1VOS05PV04gPSAoLTEpLAox
NDQ3NDogIEdQSU9fR1BJT19QQURfMCwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzEsCjE0NDc0OiAg
R1BJT19HUElPX1BBRF8yLAoxNDQ3NDogIEdQSU9fR1BJT19QQURfMywKMTQ0NzQ6ICBHUElPX0dQ
SU9fUEFEXzQsCjE0NDc0OiAgR1BJT19HUElPX1BBRF81LAoxNDQ3NDogIEdQSU9fR1BJT19QQURf
NiwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzcsCjE0NDc0OiAgR1BJT19HUElPX1BBRF84LAoxNDQ3
NDogIEdQSU9fR1BJT19QQURfOSwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzEwLAoxNDQ3NDogIEdQ
SU9fR1BJT19QQURfMTEsCjE0NDc0OiAgR1BJT19HUElPX1BBRF8xMiwKMTQ0NzQ6ICBHUElPX0dQ
SU9fUEFEXzEzLAoxNDQ3NDogIEdQSU9fR1BJT19QQURfMTQsCjE0NDc0OiAgR1BJT19HUElPX1BB
RF8xNSwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzE2LAoxNDQ3NDogIEdQSU9fR1BJT19QQURfMTcs
CjE0NDc0OiAgR1BJT19HUElPX1BBRF8xOCwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzE5LAoxNDQ3
NDogIEdQSU9fR1BJT19QQURfMjAsCjE0NDc0OiAgR1BJT19HUElPX1BBRF8yMSwKMTQ0NzQ6ICBH
UElPX0dQSU9fUEFEXzIyLAoxNDQ3NDogIEdQSU9fR1BJT19QQURfMjMsCjE0NDc0OiAgR1BJT19H
UElPX1BBRF8yNCwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzI1LAoxNDQ3NDogIEdQSU9fR1BJT19Q
QURfMjYsCjE0NDc0OiAgR1BJT19HUElPX1BBRF8yNywKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzI4
LAoxNDQ3NDogIEdQSU9fR1BJT19QQURfMjksCjE0NDc0OiAgR1BJT19HUElPX1BBRF8zMCwKMTQ0
NzQ6ICBHUElPX0dQSU9fUEFEX0NPVU5ULAoxNDQ3NDogIEdQSU9fR1BJT19QQURfTUlOID0gR1BJ
T19HUElPX1BBRF8wLAoxNDQ3NDogIEdQSU9fR1BJT19QQURfTUFYID0gR1BJT19HUElPX1BBRF8z
MAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBncGlvX3ZpcF9wYWQgewoxNDQ3NDogIEdQ
SU9fVklQX1BBRF9VTktOT1dOID0gKC0xKSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgR1BJT19W
SVBfUEFEX1NDTCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgR1BJT19WSVBfUEFEX1NEQSwKMTQ0
NzQ6ICBHUElPX1ZJUF9QQURfVkhBRCwKMTQ0NzQ6ICBHUElPX1ZJUF9QQURfVlBIQ1RMLAoxNDQ3
NDogIEdQSU9fVklQX1BBRF9WSVBDTEssCjE0NDc0OiAgR1BJT19WSVBfUEFEX1ZJRCwKMTQ0NzQ6
ICBHUElPX1ZJUF9QQURfVlBDTEswLAoxNDQ3NDogIEdQSU9fVklQX1BBRF9EVkFMSUQsCjE0NDc0
OiAgR1BJT19WSVBfUEFEX1BTWU5DLAoxNDQ3NDogIEdQSU9fVklQX1BBRF9DT1VOVCwKMTQ0NzQ6
ICBHUElPX1ZJUF9QQURfTUlOID0gR1BJT19WSVBfUEFEX1NDTCwKMTQ0NzQ6ICBHUElPX1ZJUF9Q
QURfTUFYID0gR1BJT19WSVBfUEFEX1BTWU5DCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVt
IGdwaW9fc3luYyB7CjE0NDc0OiAgR1BJT19TWU5DX1VOS05PV04gPSAoLTEpLAoxNDQ3NDogIEdQ
SU9fU1lOQ19IU1lOQ19BLAoxNDQ3NDogIEdQSU9fU1lOQ19WU1lOQ19BLAoxNDQ3NDogIEdQSU9f
U1lOQ19IU1lOQ19CLAoxNDQ3NDogIEdQSU9fU1lOQ19WU1lOQ19CLAoxNDQ3NDogIEdQSU9fU1lO
Q19DT1VOVCwKMTQ0NzQ6ICBHUElPX1NZTkNfTUlOID0gR1BJT19TWU5DX0hTWU5DX0EsCjE0NDc0
OiAgR1BJT19TWU5DX01BWCA9IEdQSU9fU1lOQ19WU1lOQ19CCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBlbnVtIGdwaW9fZ3NsIHsKMTQ0NzQ6ICBHUElPX0dTTF9VTktOT1dOID0gKC0xKSwKMTQ0
NzQ6ICBHUElPX0dTTF9HRU5MT0NLX0NMT0NLLAoxNDQ3NDogIEdQSU9fR1NMX0dFTkxPQ0tfVlNZ
TkMsCjE0NDc0OiAgR1BJT19HU0xfU1dBUExPQ0tfQSwKMTQ0NzQ6ICBHUElPX0dTTF9TV0FQTE9D
S19CLAoxNDQ3NDogIEdQSU9fR1NMX0NPVU5ULAoxNDQ3NDogIEdQSU9fR1NMX01JTiA9IEdQSU9f
R1NMX0dFTkxPQ0tfQ0xPQ0ssCjE0NDc0OiAgR1BJT19HU0xfTUFYID0gR1BJT19HU0xfU1dBUExP
Q0tfQgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0gZ3Bpb19kZGNfbGluZSB7CjE0NDc0OiAgR1BJT19ERENfTElORV9V
TktOT1dOID0gKC0xKSwKMTQ0NzQ6ICBHUElPX0REQ19MSU5FX0REQzEsCjE0NDc0OiAgR1BJT19E
RENfTElORV9EREMyLAoxNDQ3NDogIEdQSU9fRERDX0xJTkVfRERDMywKMTQ0NzQ6ICBHUElPX0RE
Q19MSU5FX0REQzQsCjE0NDc0OiAgR1BJT19ERENfTElORV9EREM1LAoxNDQ3NDogIEdQSU9fRERD
X0xJTkVfRERDNiwKMTQ0NzQ6ICBHUElPX0REQ19MSU5FX0REQ19WR0EsCjE0NDc0OiAgR1BJT19E
RENfTElORV9WSVBfUEFELAoxNDQ3NDogIEdQSU9fRERDX0xJTkVfSTJDX1BBRCA9IEdQSU9fRERD
X0xJTkVfVklQX1BBRCwKMTQ0NzQ6ICBHUElPX0REQ19MSU5FX0NPVU5ULAoxNDQ3NDogIEdQSU9f
RERDX0xJTkVfTUlOID0gR1BJT19ERENfTElORV9EREMxLAoxNDQ3NDogIEdQSU9fRERDX0xJTkVf
TUFYID0gR1BJT19ERENfTElORV9JMkNfUEFECjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBncGlvX21vZGUgewoxNDQ3
NDogIEdQSU9fTU9ERV9VTktOT1dOID0gKC0xKSwKMTQ0NzQ6ICBHUElPX01PREVfSU5QVVQsCjE0
NDc0OiAgR1BJT19NT0RFX09VVFBVVCwKMTQ0NzQ6ICBHUElPX01PREVfRkFTVF9PVVRQVVQsCjE0
NDc0OiAgR1BJT19NT0RFX0hBUkRXQVJFLAoxNDQ3NDogIEdQSU9fTU9ERV9JTlRFUlJVUFQKMTQ0
NzQ6IH07CjE0NDc0OiAjIDI0NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2luY2x1ZGUvZ3Bpb190eXBlcy5oIgoxNDQ3NDogZW51bSBncGlvX3NpZ25hbF9zb3VyY2Ug
ewoxNDQ3NDogIEdQSU9fU0lHTkFMX1NPVVJDRV9VTktOT1dOID0gKC0xKSwKMTQ0NzQ6ICBHUElP
X1NJR05BTF9TT1VSQ0VfREFDQV9TVEVSRU9fU1lOQywKMTQ0NzQ6ICBHUElPX1NJR05BTF9TT1VS
Q0VfUEFTU19USFJPVUdIX1NURVJFT19TWU5DLAoxNDQ3NDogIEdQSU9fU0lHTkFMX1NPVVJDRV9E
QUNCX1NURVJFT19TWU5DLAoxNDQ3NDogIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNBX0hTWU5DLAox
NDQ3NDogIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNCX0hTWU5DLAoxNDQ3NDogIEdQSU9fU0lHTkFM
X1NPVVJDRV9EQUNBX1ZTWU5DLAoxNDQ3NDogIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNCX1ZTWU5D
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBncGlvX3N0ZXJlb19zb3VyY2UgewoxNDQ3
NDogIEdQSU9fU1RFUkVPX1NPVVJDRV9VTktOT1dOID0gKC0xKSwKMTQ0NzQ6ICBHUElPX1NURVJF
T19TT1VSQ0VfRDEsCjE0NDc0OiAgR1BJT19TVEVSRU9fU09VUkNFX0QyLAoxNDQ3NDogIEdQSU9f
U1RFUkVPX1NPVVJDRV9EMywKMTQ0NzQ6ICBHUElPX1NURVJFT19TT1VSQ0VfRDQsCjE0NDc0OiAg
R1BJT19TVEVSRU9fU09VUkNFX0Q1LAoxNDQ3NDogIEdQSU9fU1RFUkVPX1NPVVJDRV9ENgoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVt
IGdwaW9fY29uZmlnX3R5cGUgewoxNDQ3NDogIEdQSU9fQ09ORklHX1RZUEVfTk9ORSwKMTQ0NzQ6
ICBHUElPX0NPTkZJR19UWVBFX0REQywKMTQ0NzQ6ICBHUElPX0NPTkZJR19UWVBFX0hQRCwKMTQ0
NzQ6ICBHUElPX0NPTkZJR19UWVBFX0dFTkVSSUNfTVVYLAoxNDQ3NDogIEdQSU9fQ09ORklHX1RZ
UEVfR1NMX01VWCwKMTQ0NzQ6ICBHUElPX0NPTkZJR19UWVBFX0kyQ19BVVhfRFVBTF9NT0RFCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBncGlvX2RkY19jb25m
aWdfdHlwZSB7CjE0NDc0OiAgR1BJT19ERENfQ09ORklHX1RZUEVfTU9ERV9BVVgsCjE0NDc0OiAg
R1BJT19ERENfQ09ORklHX1RZUEVfTU9ERV9JMkMsCjE0NDc0OiAgR1BJT19ERENfQ09ORklHX1RZ
UEVfUE9MTF9GT1JfQ09OTkVDVCwKMTQ0NzQ6ICBHUElPX0REQ19DT05GSUdfVFlQRV9QT0xMX0ZP
Ul9ESVNDT05ORUNULAoxNDQ3NDogIEdQSU9fRERDX0NPTkZJR19UWVBFX0RJU0FCTEVfUE9MTElO
RwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGdwaW9fZGRjX2NvbmZpZyB7CjE0NDc0
OiAgZW51bSBncGlvX2RkY19jb25maWdfdHlwZSB0eXBlOwoxNDQ3NDogIGJvb2wgZGF0YV9lbl9i
aXRfcHJlc2VudDsKMTQ0NzQ6ICBib29sIGNsb2NrX2VuX2JpdF9wcmVzZW50OwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBncGlvX2hwZF9jb25maWcgewox
NDQ3NDogIHVpbnQzMl90IGRlbGF5X29uX2Nvbm5lY3Q7CjE0NDc0OiAgdWludDMyX3QgZGVsYXlf
b25fZGlzY29ubmVjdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBncGlvX2dlbmVy
aWNfbXV4X2NvbmZpZyB7CjE0NDc0OiAgYm9vbCBlbmFibGVfb3V0cHV0X2Zyb21fbXV4OwoxNDQ3
NDogIGVudW0gZ3Bpb19zaWduYWxfc291cmNlIG11eF9zZWxlY3Q7CjE0NDc0OiAgZW51bSBncGlv
X3N0ZXJlb19zb3VyY2Ugc3RlcmVvX3NlbGVjdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gZ3Bpb19nc2xfbXV4X2NvbmZpZ190eXBlIHsKMTQ0NzQ6ICBHUElPX0dTTF9NVVhfQ09ORklH
X1RZUEVfRElTQUJMRSwKMTQ0NzQ6ICBHUElPX0dTTF9NVVhfQ09ORklHX1RZUEVfVElNSU5HX1NZ
TkMsCjE0NDc0OiAgR1BJT19HU0xfTVVYX0NPTkZJR19UWVBFX0ZMSVBfU1lOQwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGdwaW9fZ3NsX211eF9jb25maWcgewoxNDQ3NDogIGVudW0g
Z3Bpb19nc2xfbXV4X2NvbmZpZ190eXBlIHR5cGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVp
bnQzMl90IGdzbF9ncm91cDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBncGlvX2Nv
bmZpZ19kYXRhIHsKMTQ0NzQ6ICBlbnVtIGdwaW9fY29uZmlnX3R5cGUgdHlwZTsKMTQ0NzQ6ICB1
bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBncGlvX2RkY19jb25maWcgZGRjOwoxNDQ3NDogICBzdHJ1
Y3QgZ3Bpb19ocGRfY29uZmlnIGhwZDsKMTQ0NzQ6ICAgc3RydWN0IGdwaW9fZ2VuZXJpY19tdXhf
Y29uZmlnIGdlbmVyaWNfbXV4OwoxNDQ3NDogICBzdHJ1Y3QgZ3Bpb19nc2xfbXV4X2NvbmZpZyBn
c2xfbXV4OwoxNDQ3NDogIH0gY29uZmlnOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzMgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAjIDEgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xpbmtfc2Vydmlj
ZV90eXBlcy5oIiAxCjE0NDc0OiAjIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvaW5jbHVkZS9saW5rX3NlcnZpY2VfdHlwZXMuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgiIDEK
MTQ0NzQ6ICMgMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNs
dWRlL2xpbmtfc2VydmljZV90eXBlcy5oIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pcnFfdHlwZXMuaCIgMQoxNDQ3NDogIyAzMiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbGlua19zZXJ2aWNl
X3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGRjOwoxNDQ3NDogc3Ry
dWN0IGlycV9tYW5hZ2VyOwoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBNQVhfQ09OVFJP
TExFUl9OVU0gPSA2CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRwX3Bvd2VyX3N0YXRl
IHsKMTQ0NzQ6ICBEUF9QT1dFUl9TVEFURV9EMCA9IDEsCjE0NDc0OiAgRFBfUE9XRVJfU1RBVEVf
RDMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZWRwX3JldmlzaW9uIHsKMTQ0NzQ6IAox
NDQ3NDogIEVEUF9SRVZJU0lPTl8xMSA9IDB4MDAsCjE0NDc0OiAKMTQ0NzQ6ICBFRFBfUkVWSVNJ
T05fMTIgPSAweDAxLAoxNDQ3NDogCjE0NDc0OiAgRURQX1JFVklTSU9OXzEzID0gMHgwMgoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTElOS19SQVRFX1JFRl9GUkVRX0lO
X0tIWiA9IDI3MDAwCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGxpbmtfdHJhaW5pbmdf
cmVzdWx0IHsKMTQ0NzQ6ICBMSU5LX1RSQUlOSU5HX1NVQ0NFU1MsCjE0NDc0OiAgTElOS19UUkFJ
TklOR19DUl9GQUlMX0xBTkUwLAoxNDQ3NDogIExJTktfVFJBSU5JTkdfQ1JfRkFJTF9MQU5FMSwK
MTQ0NzQ6ICBMSU5LX1RSQUlOSU5HX0NSX0ZBSUxfTEFORTIzLAoxNDQ3NDogCjE0NDc0OiAgTElO
S19UUkFJTklOR19FUV9GQUlMX0NSLAoxNDQ3NDogCjE0NDc0OiAgTElOS19UUkFJTklOR19FUV9G
QUlMX0VRLAoxNDQ3NDogIExJTktfVFJBSU5JTkdfTFFBX0ZBSUwsCjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyB7CjE0NDc0OiAgc3RydWN0IGRj
X2xpbmtfc2V0dGluZ3MgbGlua19zZXR0aW5nczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfbGFuZV9zZXR0
aW5ncyBsYW5lX3NldHRpbmdzW0xBTkVfQ09VTlRfRFBfTUFYXTsKMTQ0NzQ6IAoxNDQ3NDogIGVu
dW0gZGNfdm9sdGFnZV9zd2luZyAqdm9sdGFnZV9zd2luZzsKMTQ0NzQ6ICBlbnVtIGRjX3ByZV9l
bXBoYXNpcyAqcHJlX2VtcGhhc2lzOwoxNDQ3NDogIGVudW0gZGNfcG9zdF9jdXJzb3IyICpwb3N0
X2N1cnNvcjI7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MTZfdCBjcl9wYXR0ZXJuX3RpbWU7CjE0NDc0
OiAgdWludDE2X3QgZXFfcGF0dGVybl90aW1lOwoxNDQ3NDogIGVudW0gZGNfZHBfdHJhaW5pbmdf
cGF0dGVybiBwYXR0ZXJuX2Zvcl9lcTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgZW5oYW5jZWRfZnJh
bWluZzsKMTQ0NzQ6ICBib29sIGFsbG93X2ludmFsaWRfbXNhX3RpbWluZ19wYXJhbTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRwX3Rlc3RfcGF0dGVybiB7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl9WSURFT19NT0RFID0gMCwK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX1BIWV9QQVRURVJOX0JFR0lO
LAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl9EMTAyID0gRFBfVEVTVF9QQVRURVJOX1BIWV9QQVRU
RVJOX0JFR0lOLAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl9TWU1CT0xfRVJST1IsCjE0NDc0OiAg
RFBfVEVTVF9QQVRURVJOX1BSQlM3LAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl84MEJJVF9DVVNU
T00sCjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX0NQMjUyMF8xLAoxNDQ3NDogIERQX1RFU1RfUEFU
VEVSTl9DUDI1MjBfMiwKMTQ0NzQ6ICBEUF9URVNUX1BBVFRFUk5fSEJSMl9DT01QTElBTkNFX0VZ
RSA9IERQX1RFU1RfUEFUVEVSTl9DUDI1MjBfMiwKMTQ0NzQ6ICBEUF9URVNUX1BBVFRFUk5fQ1Ay
NTIwXzMsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl9UUkFJTklOR19Q
QVRURVJOMSwKMTQ0NzQ6ICBEUF9URVNUX1BBVFRFUk5fVFJBSU5JTkdfUEFUVEVSTjIsCjE0NDc0
OiAgRFBfVEVTVF9QQVRURVJOX1RSQUlOSU5HX1BBVFRFUk4zLAoxNDQ3NDogIERQX1RFU1RfUEFU
VEVSTl9UUkFJTklOR19QQVRURVJONCwKMTQ0NzQ6ICBEUF9URVNUX1BBVFRFUk5fUEhZX1BBVFRF
Uk5fRU5EID0gRFBfVEVTVF9QQVRURVJOX1RSQUlOSU5HX1BBVFRFUk40LAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBEUF9URVNUX1BBVFRFUk5fQ09MT1JfU1FVQVJFUywKMTQ0NzQ6ICBEUF9URVNU
X1BBVFRFUk5fQ09MT1JfU1FVQVJFU19DRUEsCjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX1ZFUlRJ
Q0FMX0JBUlMsCjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX0hPUklaT05UQUxfQkFSUywKMTQ0NzQ6
ICBEUF9URVNUX1BBVFRFUk5fQ09MT1JfUkFNUCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRFBf
VEVTVF9QQVRURVJOX0FVRElPX09QRVJBVE9SX0RFRklORUQsCjE0NDc0OiAgRFBfVEVTVF9QQVRU
RVJOX0FVRElPX1NBV1RPT1RILAoxNDQ3NDogCjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX1VOU1VQ
UE9SVEVECjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRwX3Rlc3RfcGF0dGVybl9jb2xv
cl9zcGFjZSB7CjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX0NPTE9SX1NQQUNFX1JHQiwKMTQ0NzQ6
ICBEUF9URVNUX1BBVFRFUk5fQ09MT1JfU1BBQ0VfWUNCQ1I2MDEsCjE0NDc0OiAgRFBfVEVTVF9Q
QVRURVJOX0NPTE9SX1NQQUNFX1lDQkNSNzA5LAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl9DT0xP
Ul9TUEFDRV9VTkRFRklORUQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZHBfcGFuZWxf
bW9kZSB7CjE0NDc0OiAKMTQ0NzQ6ICBEUF9QQU5FTF9NT0RFX0RFRkFVTFQsCjE0NDc0OiAKMTQ0
NzQ6ICBEUF9QQU5FTF9NT0RFX0VEUCwKMTQ0NzQ6IAoxNDQ3NDogIERQX1BBTkVMX01PREVfU1BF
Q0lBTAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkcGNkX3RyYWluaW5n
X2xhbmVfc2V0IHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgVk9M
VEFHRV9TV0lOR19TRVQ6MjsKMTQ0NzQ6ICAgdWludDhfdCBNQVhfU1dJTkdfUkVBQ0hFRDoxOwox
NDQ3NDogICB1aW50OF90IFBSRV9FTVBIQVNJU19TRVQ6MjsKMTQ0NzQ6ICAgdWludDhfdCBNQVhf
UFJFX0VNUEhBU0lTX1JFQUNIRUQ6MTsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IFBPU1RfQ1VS
U09SMl9TRVQ6MjsKMTQ0NzQ6ICMgMTYxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvaW5jbHVkZS9saW5rX3NlcnZpY2VfdHlwZXMuaCIKMTQ0NzQ6ICB9IGJpdHM7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9hbGxvY2F0aW9uIHsKMTQ0NzQ6ICB1aW50
OF90IHZjcF9pZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDhfdCBzbG90X2NvdW50Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9hbGxv
Y2F0aW9uX3RhYmxlIHsKMTQ0NzQ6IAoxNDQ3NDogIGludCBzdHJlYW1fY291bnQ7CjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9hbGxvY2F0aW9uIHN0cmVhbV9hbGxvY2F0aW9u
c1tNQVhfQ09OVFJPTExFUl9OVU1dOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzQgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAjIDEgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2N0
cmxfZGVmcy5oIiAxCjE0NDc0OiAjIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9jdHJsX2RlZnMuaCIKMTQ0NzQ6ICMgMSAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZ3JwaF9vYmplY3Rf
ZGVmcy5oIiAxCjE0NDc0OiAjIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9jdHJsX2RlZnMuaCIgMgoxNDQ3NDogIyA0MiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZ3JwaF9vYmplY3Rf
Y3RybF9kZWZzLmgiCjE0NDc0OiBlbnVtIGRpc3BsYXlfb3V0cHV0X2JpdF9kZXB0aCB7CjE0NDc0
OiAgUEFORUxfVU5ERUZJTkUgPSAwLAoxNDQ3NDogIFBBTkVMXzZCSVRfQ09MT1IgPSAxLAoxNDQ3
NDogIFBBTkVMXzhCSVRfQ09MT1IgPSAyLAoxNDQ3NDogIFBBTkVMXzEwQklUX0NPTE9SID0gMywK
MTQ0NzQ6ICBQQU5FTF8xMkJJVF9DT0xPUiA9IDQsCjE0NDc0OiAgUEFORUxfMTZCSVRfQ09MT1Ig
PSA1LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGFsX2Rl
dmljZV90eXBlIHsKMTQ0NzQ6ICBERVZJQ0VfVFlQRV9VTktOT1dOID0gMCwKMTQ0NzQ6ICBERVZJ
Q0VfVFlQRV9MQ0QsCjE0NDc0OiAgREVWSUNFX1RZUEVfQ1JULAoxNDQ3NDogIERFVklDRV9UWVBF
X0RGUCwKMTQ0NzQ6ICBERVZJQ0VfVFlQRV9DViwKMTQ0NzQ6ICBERVZJQ0VfVFlQRV9UViwKMTQ0
NzQ6ICBERVZJQ0VfVFlQRV9DRiwKMTQ0NzQ6ICBERVZJQ0VfVFlQRV9XSVJFTEVTUwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlX2lkIHsKMTQ0NzQ6ICBlbnVt
IGRhbF9kZXZpY2VfdHlwZSBkZXZpY2VfdHlwZToxNjsKMTQ0NzQ6ICB1aW50MzJfdCBlbnVtX2lk
OjE2OwoxNDQ3NDogIHVpbnQxNl90IHJhd19kZXZpY2VfdGFnOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pMmNfaW5mbyB7CjE0NDc0OiAgc3RydWN0IGdw
aW9faW5mbyB7CjE0NDc0OiAgIHVpbnQzMl90IGNsa19tYXNrX3JlZ2lzdGVyX2luZGV4OwoxNDQ3
NDogICB1aW50MzJfdCBjbGtfZW5fcmVnaXN0ZXJfaW5kZXg7CjE0NDc0OiAgIHVpbnQzMl90IGNs
a195X3JlZ2lzdGVyX2luZGV4OwoxNDQ3NDogICB1aW50MzJfdCBjbGtfYV9yZWdpc3Rlcl9pbmRl
eDsKMTQ0NzQ6ICAgdWludDMyX3QgZGF0YV9tYXNrX3JlZ2lzdGVyX2luZGV4OwoxNDQ3NDogICB1
aW50MzJfdCBkYXRhX2VuX3JlZ2lzdGVyX2luZGV4OwoxNDQ3NDogICB1aW50MzJfdCBkYXRhX3lf
cmVnaXN0ZXJfaW5kZXg7CjE0NDc0OiAgIHVpbnQzMl90IGRhdGFfYV9yZWdpc3Rlcl9pbmRleDsK
MTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBjbGtfbWFza19zaGlmdDsKMTQ0NzQ6ICAgdWludDMy
X3QgY2xrX2VuX3NoaWZ0OwoxNDQ3NDogICB1aW50MzJfdCBjbGtfeV9zaGlmdDsKMTQ0NzQ6ICAg
dWludDMyX3QgY2xrX2Ffc2hpZnQ7CjE0NDc0OiAgIHVpbnQzMl90IGRhdGFfbWFza19zaGlmdDsK
MTQ0NzQ6ICAgdWludDMyX3QgZGF0YV9lbl9zaGlmdDsKMTQ0NzQ6ICAgdWludDMyX3QgZGF0YV95
X3NoaWZ0OwoxNDQ3NDogICB1aW50MzJfdCBkYXRhX2Ffc2hpZnQ7CjE0NDc0OiAgfSBncGlvX2lu
Zm87CjE0NDc0OiAKMTQ0NzQ6ICBib29sIGkyY19od19hc3Npc3Q7CjE0NDc0OiAgdWludDMyX3Qg
aTJjX2xpbmU7CjE0NDc0OiAgdWludDMyX3QgaTJjX2VuZ2luZV9pZDsKMTQ0NzQ6ICB1aW50MzJf
dCBpMmNfc2xhdmVfYWRkcmVzczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBncmFw
aGljc19vYmplY3RfaHBkX2luZm8gewoxNDQ3NDogIHVpbnQ4X3QgaHBkX2ludF9ncGlvX3VpZDsK
MTQ0NzQ6ICB1aW50OF90IGhwZF9hY3RpdmU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgY29ubmVjdG9yX2RldmljZV90YWdfaW5mbyB7CjE0NDc0OiAgdWludDMyX3QgYWNwaV9kZXZp
Y2U7CjE0NDc0OiAgc3RydWN0IGRldmljZV9pZCBkZXZfaWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZGV2aWNlX3RpbWluZyB7CjE0NDc0OiAgc3RydWN0IG1pc2NfaW5mbyB7CjE0
NDc0OiAgIHVpbnQzMl90IEhPUklaT05UQUxfQ1VUX09GRjoxOwoxNDQ3NDogCjE0NDc0OiAgIHVp
bnQzMl90IEhfU1lOQ19QT0xBUklUWToxOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IFZfU1lO
Q19QT0xBUklUWToxOwoxNDQ3NDogICB1aW50MzJfdCBWRVJUSUNBTF9DVVRfT0ZGOjE7CjE0NDc0
OiAgIHVpbnQzMl90IEhfUkVQTElDQVRJT05fQlkyOjE7CjE0NDc0OiAgIHVpbnQzMl90IFZfUkVQ
TElDQVRJT05fQlkyOjE7CjE0NDc0OiAgIHVpbnQzMl90IENPTVBPU0lURV9TWU5DOjE7CjE0NDc0
OiAgIHVpbnQzMl90IElOVEVSTEFDRToxOwoxNDQ3NDogICB1aW50MzJfdCBET1VCTEVfQ0xPQ0s6
MTsKMTQ0NzQ6ICAgdWludDMyX3QgUkdCODg4OjE7CjE0NDc0OiAgIHVpbnQzMl90IEdSRVlfTEVW
RUw6MjsKMTQ0NzQ6ICAgdWludDMyX3QgU1BBVElBTDoxOwoxNDQ3NDogICB1aW50MzJfdCBURU1Q
T1JBTDoxOwoxNDQ3NDogICB1aW50MzJfdCBBUElfRU5BQkxFRDoxOwoxNDQ3NDogIH0gbWlzY19p
bmZvOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgcGl4ZWxfY2xrOwoxNDQ3NDogIHVpbnQzMl90
IGhvcml6b250YWxfYWRkcmVzc2FibGU7CjE0NDc0OiAgdWludDMyX3QgaG9yaXpvbnRhbF9ibGFu
a2luZ190aW1lOwoxNDQ3NDogIHVpbnQzMl90IHZlcnRpY2FsX2FkZHJlc3NhYmxlOwoxNDQ3NDog
IHVpbnQzMl90IHZlcnRpY2FsX2JsYW5raW5nX3RpbWU7CjE0NDc0OiAgdWludDMyX3QgaG9yaXpv
bnRhbF9zeW5jX29mZnNldDsKMTQ0NzQ6ICB1aW50MzJfdCBob3Jpem9udGFsX3N5bmNfd2lkdGg7
CjE0NDc0OiAgdWludDMyX3QgdmVydGljYWxfc3luY19vZmZzZXQ7CjE0NDc0OiAgdWludDMyX3Qg
dmVydGljYWxfc3luY193aWR0aDsKMTQ0NzQ6ICB1aW50MzJfdCBob3Jpem9udGFsX2JvcmRlcjsK
MTQ0NzQ6ICB1aW50MzJfdCB2ZXJ0aWNhbF9ib3JkZXI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3Qgc3VwcG9ydGVkX3JlZnJlc2hfcmF0ZSB7CjE0NDc0OiAgdWludDMyX3QgUkVGUkVT
SF9SQVRFXzMwSFo6MTsKMTQ0NzQ6ICB1aW50MzJfdCBSRUZSRVNIX1JBVEVfNDBIWjoxOwoxNDQ3
NDogIHVpbnQzMl90IFJFRlJFU0hfUkFURV80OEhaOjE7CjE0NDc0OiAgdWludDMyX3QgUkVGUkVT
SF9SQVRFXzUwSFo6MTsKMTQ0NzQ6ICB1aW50MzJfdCBSRUZSRVNIX1JBVEVfNjBIWjoxOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGVtYmVkZGVkX3BhbmVsX2luZm8gewoxNDQ3NDog
IHN0cnVjdCBkZXZpY2VfdGltaW5nIGxjZF90aW1pbmc7CjE0NDc0OiAgdWludDMyX3Qgc3NfaWQ7
CjE0NDc0OiAgc3RydWN0IHN1cHBvcnRlZF9yZWZyZXNoX3JhdGUgc3VwcG9ydGVkX3JyOwoxNDQ3
NDogIHVpbnQzMl90IGRycl9lbmFibGVkOwoxNDQ3NDogIHVpbnQzMl90IG1pbl9kcnJfcmVmcmVz
aF9yYXRlOwoxNDQ3NDogIGJvb2wgcmVhbHRla19lRFBUb0xWRFM7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyB7CjE0NDc0OiAgc3RydWN0IHBsbF9pbmZv
IHsKMTQ0NzQ6ICAgdWludDMyX3QgY3J5c3RhbF9mcmVxdWVuY3k7CjE0NDc0OiAgIHVpbnQzMl90
IG1pbl9pbnB1dF9weGxfY2xrX3BsbF9mcmVxdWVuY3k7CjE0NDc0OiAgIHVpbnQzMl90IG1heF9p
bnB1dF9weGxfY2xrX3BsbF9mcmVxdWVuY3k7CjE0NDc0OiAgIHVpbnQzMl90IG1pbl9vdXRwdXRf
cHhsX2Nsa19wbGxfZnJlcXVlbmN5OwoxNDQ3NDogICB1aW50MzJfdCBtYXhfb3V0cHV0X3B4bF9j
bGtfcGxsX2ZyZXF1ZW5jeTsKMTQ0NzQ6ICB9IHBsbF9pbmZvOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IGZpcm13YXJlX2ZlYXR1cmUgewoxNDQ3NDogICB1aW50MzJfdCBtZW1vcnlfY2xrX3NzX3Bl
cmNlbnRhZ2U7CjE0NDc0OiAgIHVpbnQzMl90IGVuZ2luZV9jbGtfc3NfcGVyY2VudGFnZTsKMTQ0
NzQ6ICB9IGZlYXR1cmU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBkZWZhdWx0X2Rpc3BsYXlf
ZW5naW5lX3BsbF9mcmVxdWVuY3k7CjE0NDc0OiAgdWludDMyX3QgZXh0ZXJuYWxfY2xvY2tfc291
cmNlX2ZyZXF1ZW5jeV9mb3JfZHA7CjE0NDc0OiAgdWludDMyX3Qgc211X2dwdV9wbGxfb3V0cHV0
X2ZyZXE7CjE0NDc0OiAgdWludDhfdCBtaW5fYWxsb3dlZF9ibF9sZXZlbDsKMTQ0NzQ6ICB1aW50
OF90IHJlbW90ZV9kaXNwbGF5X2NvbmZpZzsKMTQ0NzQ6ICB1aW50MzJfdCBkZWZhdWx0X21lbW9y
eV9jbGs7CjE0NDc0OiAgdWludDMyX3QgZGVmYXVsdF9lbmdpbmVfY2xrOwoxNDQ3NDogIHVpbnQz
Ml90IGRwX3BoeV9yZWZfY2xrOwoxNDQ3NDogIHVpbnQzMl90IGkyY19lbmdpbmVfcmVmX2NsazsK
MTQ0NzQ6ICBib29sIG9lbV9pMmNfcHJlc2VudDsKMTQ0NzQ6ICB1aW50OF90IG9lbV9pMmNfb2Jq
X2lkOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3RlcF9hbmRfZGVs
YXlfaW5mbyB7CjE0NDc0OiAgdWludDMyX3Qgc3RlcDsKMTQ0NzQ6ICB1aW50MzJfdCBkZWxheTsK
MTQ0NzQ6ICB1aW50MzJfdCByZWNvbW1lbmRlZF9yZWZfZGl2OwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IHNwcmVhZF9zcGVjdHJ1bV9pbmZvIHsKMTQ0NzQ6ICBzdHJ1Y3Qgc3ByZWFk
X3NwZWN0cnVtX3R5cGUgewoxNDQ3NDogICBib29sIENFTlRFUl9NT0RFOjE7CjE0NDc0OiAgIGJv
b2wgRVhURVJOQUw6MTsKMTQ0NzQ6ICAgYm9vbCBTVEVQX0FORF9ERUxBWV9JTkZPOjE7CjE0NDc0
OiAgfSB0eXBlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHNwcmVh
ZF9zcGVjdHJ1bV9wZXJjZW50YWdlOwoxNDQ3NDogIHVpbnQzMl90IHNwcmVhZF9wZXJjZW50YWdl
X2RpdmlkZXI7CjE0NDc0OiAgdWludDMyX3Qgc3ByZWFkX3NwZWN0cnVtX3JhbmdlOwoxNDQ3NDog
CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3Qgc3RlcF9hbmRfZGVsYXlfaW5mbyBzdGVw
X2FuZF9kZWxheV9pbmZvOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJf
dCB0YXJnZXRfY2xvY2tfcmFuZ2U7CjE0NDc0OiAgfTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGdyYXBoaWNzX29iamVjdF9lbmNvZGVyX2NhcF9pbmZvIHsKMTQ0NzQ6
ICB1aW50MzJfdCBkcF9oYnIyX2NhcDoxOwoxNDQ3NDogIHVpbnQzMl90IGRwX2hicjJfdmFsaWRh
dGVkOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgcmVzZXJ2ZWQ6
MTU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGluX2Nvbm5lY3Rvcl9pbmZvIHsK
MTQ0NzQ6ICB1aW50MzJfdCBncGlvX2lkOwoxNDQ3NDogIGJvb2wgZ3Bpb190dl9hY3RpdmVfc3Rh
dGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0geyBJTlZBTElEX0RESV9D
SEFOTkVMX01BUFBJTkcgPSAweDAgfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdW5pb24gZGRpX2NoYW5uZWxfbWFwcGluZyB7CjE0NDc0OiAgc3RydWN0IG1hcHBpbmcg
ewoxNDQ3NDogICB1aW50OF90IGxhbmUwOjI7CjE0NDc0OiAgIHVpbnQ4X3QgbGFuZTE6MjsKMTQ0
NzQ6ICAgdWludDhfdCBsYW5lMjoyOwoxNDQ3NDogICB1aW50OF90IGxhbmUzOjI7CjE0NDc0OiAg
fSBtYXBwaW5nOwoxNDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRyYW5zbWl0dGVyX2NvbmZpZ3VyYXRpb25f
aW5mbyB7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHRyYW5zbWl0dGVyIHRyYW5zbWl0dGVyX3BoeV9p
ZDsKMTQ0NzQ6IAoxNDQ3NDogIHVuaW9uIGRkaV9jaGFubmVsX21hcHBpbmcgb3V0cHV0X2NoYW5u
ZWxfbWFwcGluZzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0cmFuc21pdHRlcl9j
b25maWd1cmF0aW9uIHsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB0cmFuc21pdHRlcl9jb25maWd1
cmF0aW9uX2luZm8gcHJpbWFyeV90cmFuc21pdHRlcl9jb25maWc7CjE0NDc0OiAKMTQ0NzQ6ICBz
dHJ1Y3QgdHJhbnNtaXR0ZXJfY29uZmlndXJhdGlvbl9pbmZvIHNlY29uZGFyeV90cmFuc21pdHRl
cl9jb25maWc7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2N0cmxfZGVmcy5oIgoxNDQ3NDog
c3RydWN0IGkyY19yZWdfaW5mbyB7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBpMmNfcmVnX2luZGV4
OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgaTJjX3JlZ192YWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZXh0X2hkbWlfc2V0dGluZ3MgewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgc2x2
X2FkZHI7CjE0NDc0OiAgdW5zaWduZWQgY2hhciByZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNf
cmVnX2luZm8gcmVnX3NldHRpbmdzWzldOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcmVnX251bV82
ZzsKMTQ0NzQ6ICBzdHJ1Y3QgaTJjX3JlZ19pbmZvIHJlZ19zZXR0aW5nc182Z1szXTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaW50ZWdyYXRlZF9pbmZv
IHsKMTQ0NzQ6ICBzdHJ1Y3QgY2xvY2tfdm9sdGFnZV9jYXBzIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgIHVpbnQzMl90IHZvbHRhZ2VfaW5kZXg7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3Qg
bWF4X3N1cHBvcnRlZF9jbGs7CjE0NDc0OiAgfSBkaXNwX2Nsa192b2x0YWdlWzRdOwoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGRpc3BsYXlfY29ubmVjdGlvbl9pbmZvIHsKMTQ0NzQ6ICAgc3RydWN0
IGV4dGVybmFsX2Rpc3BsYXlfcGF0aCB7CjE0NDc0OiAKMTQ0NzQ6ICAgIHVpbnQzMl90IGRldmlj
ZV90YWc7CjE0NDc0OiAKMTQ0NzQ6ICAgIHVpbnQzMl90IGRldmljZV9hY3BpX2VudW07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogICAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBkZXZpY2VfY29u
bmVjdG9yX2lkOwoxNDQ3NDogCjE0NDc0OiAgICB1aW50OF90IGV4dF9hdXhfZGRjX2x1dF9pbmRl
eDsKMTQ0NzQ6IAoxNDQ3NDogICAgdWludDhfdCBleHRfaHBkX3Bpbl9sdXRfaW5kZXg7CjE0NDc0
OiAKMTQ0NzQ6ICAgIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgZXh0X2VuY29kZXJfb2JqX2lk
OwoxNDQ3NDogCjE0NDc0OiAgICB1bmlvbiBkZGlfY2hhbm5lbF9tYXBwaW5nIGNoYW5uZWxfbWFw
cGluZzsKMTQ0NzQ6IAoxNDQ3NDogICAgdW5zaWduZWQgc2hvcnQgY2FwczsKMTQ0NzQ6ICAgfSBw
YXRoWzddOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgZ3VfaWRbMTZdOwoxNDQ3NDogICB1aW50
OF90IGNoZWNrc3VtOwoxNDQ3NDogIH0gZXh0X2Rpc3BfY29ubl9pbmZvOwoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IGF2YWlsYWJsZV9zX2Nsa19saXN0IHsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJf
dCBzdXBwb3J0ZWRfc19jbGs7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3Qgdm9sdGFnZV9pbmRl
eDsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCB2b2x0YWdlX2lkOwoxNDQ3NDogIH0gYXZhaWxf
c19jbGtbNV07CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IG1lbW9yeV90eXBlOwoxNDQ3NDogIHVp
bnQ4X3QgbWFfY2hhbm5lbF9udW1iZXI7CjE0NDc0OiAgdWludDMyX3QgYm9vdF91cF9lbmdpbmVf
Y2xvY2s7CjE0NDc0OiAgdWludDMyX3QgZGVudGlzdF92Y29fZnJlcTsKMTQ0NzQ6ICB1aW50MzJf
dCBib290X3VwX3VtYV9jbG9jazsKMTQ0NzQ6ICB1aW50MzJfdCBib290X3VwX3JlcV9kaXNwbGF5
X3ZlY3RvcjsKMTQ0NzQ6ICB1aW50MzJfdCBvdGhlcl9kaXNwbGF5X21pc2M7CjE0NDc0OiAgdWlu
dDMyX3QgZ3B1X2NhcF9pbmZvOwoxNDQ3NDogIHVpbnQzMl90IHNiX21taW9fYmFzZV9hZGRyOwox
NDQ3NDogIHVpbnQzMl90IHN5c3RlbV9jb25maWc7CjE0NDc0OiAgdWludDMyX3QgY3B1X2NhcF9p
bmZvOwoxNDQ3NDogIHVpbnQzMl90IG1heF9uYl92b2x0YWdlOwoxNDQ3NDogIHVpbnQzMl90IG1p
bl9uYl92b2x0YWdlOwoxNDQ3NDogIHVpbnQzMl90IGJvb3RfdXBfbmJfdm9sdGFnZTsKMTQ0NzQ6
ICB1aW50MzJfdCBleHRfZGlzcF9jb25uX2luZm9fb2Zmc2V0OwoxNDQ3NDogIHVpbnQzMl90IGNz
cl9tM19hcmJfY250bF9kZWZhdWx0WzEwXTsKMTQ0NzQ6ICB1aW50MzJfdCBjc3JfbTNfYXJiX2Nu
dGxfdXZkWzEwXTsKMTQ0NzQ6ICB1aW50MzJfdCBjc3JfbTNfYXJiX2NudGxfZnMzZFsxMF07CjE0
NDc0OiAgdWludDMyX3QgZ21jX3Jlc3RvcmVfcmVzZXRfdGltZTsKMTQ0NzQ6ICB1aW50MzJfdCBt
aW5pbXVtX25fY2xrOwoxNDQ3NDogIHVpbnQzMl90IGlkbGVfbl9jbGs7CjE0NDc0OiAgdWludDMy
X3QgZGRyX2RsbF9wb3dlcl91cF90aW1lOwoxNDQ3NDogIHVpbnQzMl90IGRkcl9wbGxfcG93ZXJf
dXBfdGltZTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHBjaWVfY2xrX3NzX3R5cGU7CjE0NDc0
OiAgdWludDMyX3QgbHZkc19zc19wZXJjZW50YWdlOwoxNDQ3NDogIHVpbnQzMl90IGx2ZHNfc3Nw
cmVhZF9yYXRlX2luXzEwaHo7CjE0NDc0OiAgdWludDMyX3QgaGRtaV9zc19wZXJjZW50YWdlOwox
NDQ3NDogIHVpbnQzMl90IGhkbWlfc3NwcmVhZF9yYXRlX2luXzEwaHo7CjE0NDc0OiAgdWludDMy
X3QgZHZpX3NzX3BlcmNlbnRhZ2U7CjE0NDc0OiAgdWludDMyX3QgZHZpX3NzcHJlYWRfcmF0ZV9p
bl8xMF9oejsKMTQ0NzQ6ICB1aW50MzJfdCBzY2xrX2RwbV9ib29zdF9tYXJnaW47CjE0NDc0OiAg
dWludDMyX3Qgc2Nsa19kcG1fdGhyb3R0bGVfbWFyZ2luOwoxNDQ3NDogIHVpbnQzMl90IHNjbGtf
ZHBtX3RkcF9saW1pdF9wZzsKMTQ0NzQ6ICB1aW50MzJfdCBzY2xrX2RwbV90ZHBfbGltaXRfYm9v
c3Q7CjE0NDc0OiAgdWludDMyX3QgYm9vc3RfZW5naW5lX2Nsb2NrOwoxNDQ3NDogIHVpbnQzMl90
IGJvb3N0X3ZpZF8yYml0OwoxNDQ3NDogIHVpbnQzMl90IGVuYWJsZV9ib29zdDsKMTQ0NzQ6ICB1
aW50MzJfdCBnbmJfdGRwX2xpbWl0OwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgbWF4X2x2ZHNf
cGNsa19mcmVxX2luX3NpbmdsZV9saW5rOwoxNDQ3NDogIHVpbnQzMl90IGx2ZHNfbWlzYzsKMTQ0
NzQ6ICB1aW50MzJfdCBsdmRzX3B3cl9vbl9zZXFfZGlnX29uX3RvX2RlX2luXzRtczsKMTQ0NzQ6
ICB1aW50MzJfdCBsdmRzX3B3cl9vbl9zZXFfZGVfdG9fdmFyeV9ibF9pbl80bXM7CjE0NDc0OiAg
dWludDMyX3QgbHZkc19wd3Jfb2ZmX3NlcV92YXJ5X2JsX3RvX2RlX2luNG1zOwoxNDQ3NDogIHVp
bnQzMl90IGx2ZHNfcHdyX29mZl9zZXFfZGVfdG9fZGlnX29uX2luNG1zOwoxNDQ3NDogIHVpbnQz
Ml90IGx2ZHNfb2ZmX3RvX29uX2RlbGF5X2luXzRtczsKMTQ0NzQ6ICB1aW50MzJfdCBsdmRzX3B3
cl9vbl9zZXFfdmFyeV9ibF90b19ibG9uX2luXzRtczsKMTQ0NzQ6ICB1aW50MzJfdCBsdmRzX3B3
cl9vZmZfc2VxX2Jsb25fdG9fdmFyeV9ibF9pbl80bXM7CjE0NDc0OiAgdWludDMyX3QgbHZkc19y
ZXNlcnZlZDE7CjE0NDc0OiAgdWludDMyX3QgbHZkc19iaXRfZGVwdGhfY29udHJvbF92YWw7CjE0
NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwMF9leHRfaGRtaV9zbHZfYWRkcjsKMTQ0NzQ6
ICB1bnNpZ25lZCBjaGFyIGRwMF9leHRfaGRtaV9yZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNf
cmVnX2luZm8gZHAwX2V4dF9oZG1pX3JlZ19zZXR0aW5nc1s5XTsKMTQ0NzQ6ICB1bnNpZ25lZCBj
aGFyIGRwMF9leHRfaGRtaV82Z19yZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNfcmVnX2luZm8g
ZHAwX2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5nc1szXTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRw
MV9leHRfaGRtaV9zbHZfYWRkcjsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwMV9leHRfaGRtaV9y
ZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAxX2V4dF9oZG1pX3JlZ19zZXR0
aW5nc1s5XTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwMV9leHRfaGRtaV82Z19yZWdfbnVtOwox
NDQ3NDogIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAxX2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5nc1sz
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwMl9leHRfaGRtaV9zbHZfYWRkcjsKMTQ0NzQ6ICB1
bnNpZ25lZCBjaGFyIGRwMl9leHRfaGRtaV9yZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNfcmVn
X2luZm8gZHAyX2V4dF9oZG1pX3JlZ19zZXR0aW5nc1s5XTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFy
IGRwMl9leHRfaGRtaV82Z19yZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAy
X2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5nc1szXTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwM19l
eHRfaGRtaV9zbHZfYWRkcjsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwM19leHRfaGRtaV9yZWdf
bnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAzX2V4dF9oZG1pX3JlZ19zZXR0aW5n
c1s5XTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwM19leHRfaGRtaV82Z19yZWdfbnVtOwoxNDQ3
NDogIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAzX2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5nc1szXTsK
MTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGRwX3NzX2NvbnRyb2w7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHBvd2VyX3NvdXJjZSB7CjE0NDc0
OiAgUE9XRVJfU09VUkNFX0FDID0gMCwKMTQ0NzQ6ICBQT1dFUl9TT1VSQ0VfREMsCjE0NDc0OiAg
UE9XRVJfU09VUkNFX0xJTUlURURfUE9XRVIsCjE0NDc0OiAgUE9XRVJfU09VUkNFX0xJTUlURURf
UE9XRVJfMiwKMTQ0NzQ6ICBQT1dFUl9TT1VSQ0VfTUFYCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgYmlvc19ldmVudF9pbmZvIHsKMTQ0NzQ6ICB1aW50MzJfdCB0aGVybWFsX3N0YXRl
OwoxNDQ3NDogIHVpbnQzMl90IGJhY2tsaWdodF9sZXZlbDsKMTQ0NzQ6ICBlbnVtIHBvd2VyX3Nv
dXJjZSBwb3dlclNvdXJjZTsKMTQ0NzQ6ICBib29sIGhhc190aGVybWFsX3N0YXRlX2NoYW5nZWQ7
CjE0NDc0OiAgYm9vbCBoYXNfcG93ZXJfc291cmNlX2NoYW5nZWQ7CjE0NDc0OiAgYm9vbCBoYXNf
Zm9yY2VkX21vZGVfY2hhbmdlZDsKMTQ0NzQ6ICBib29sIGZvcmNlZF9tb2RlOwoxNDQ3NDogIGJv
b2wgYmFja2xpZ2h0X2NoYW5nZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERGU19CWVBBU1NfRU5BQkxFID0g
MHgxMAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgSU5WQUxJRF9CQUNL
TElHSFQgPSAtMQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBhbmVsX2JhY2tsaWdo
dF9ib3VuZGFyaWVzIHsKMTQ0NzQ6ICB1aW50MzJfdCBtaW5fc2lnbmFsX2xldmVsOwoxNDQ3NDog
IHVpbnQzMl90IG1heF9zaWduYWxfbGV2ZWw7CjE0NDc0OiB9OwoxNDQ3NDogIyAzNSAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9vcHAuaCIg
MQoxNDQ3NDogIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2luYy9ody9vcHAuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2luYy9ody9od19zaGFyZWQuaCIgMQoxNDQ3NDogIyAzMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9od19zaGFyZWQuaCIKMTQ0
NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2h3
X3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMzIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9pbmMvaHcvaHdfc2hhcmVkLmgiIDIKMTQ0NzQ6ICMgNDEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvaHdfc2hhcmVkLmgiCjE0NDc0
OiBzdHJ1Y3QgZ2FtbWFfY3VydmUgewoxNDQ3NDogIHVpbnQzMl90IG9mZnNldDsKMTQ0NzQ6ICB1
aW50MzJfdCBzZWdtZW50c19udW07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3Vy
dmVfcG9pbnRzIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiB4OwoxNDQ3NDogIHN0cnVjdCBm
aXhlZDMxXzMyIHk7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgb2Zmc2V0OwoxNDQ3NDogIHN0
cnVjdCBmaXhlZDMxXzMyIHNsb3BlOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgY3VzdG9tX2Zs
b2F0X3g7CjE0NDc0OiAgdWludDMyX3QgY3VzdG9tX2Zsb2F0X3k7CjE0NDc0OiAgdWludDMyX3Qg
Y3VzdG9tX2Zsb2F0X29mZnNldDsKMTQ0NzQ6ICB1aW50MzJfdCBjdXN0b21fZmxvYXRfc2xvcGU7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3VydmVfcG9pbnRzMyB7CjE0NDc0OiAg
c3RydWN0IGN1cnZlX3BvaW50cyByZWQ7CjE0NDc0OiAgc3RydWN0IGN1cnZlX3BvaW50cyBncmVl
bjsKMTQ0NzQ6ICBzdHJ1Y3QgY3VydmVfcG9pbnRzIGJsdWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgcHdsX3Jlc3VsdF9kYXRhIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBy
ZWQ7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgZ3JlZW47CjE0NDc0OiAgc3RydWN0IGZpeGVk
MzFfMzIgYmx1ZTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGRlbHRhX3JlZDsK
MTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBkZWx0YV9ncmVlbjsKMTQ0NzQ6ICBzdHJ1Y3QgZml4
ZWQzMV8zMiBkZWx0YV9ibHVlOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgcmVkX3JlZzsKMTQ0
NzQ6ICB1aW50MzJfdCBncmVlbl9yZWc7CjE0NDc0OiAgdWludDMyX3QgYmx1ZV9yZWc7CjE0NDc0
OiAKMTQ0NzQ6ICB1aW50MzJfdCBkZWx0YV9yZWRfcmVnOwoxNDQ3NDogIHVpbnQzMl90IGRlbHRh
X2dyZWVuX3JlZzsKMTQ0NzQ6ICB1aW50MzJfdCBkZWx0YV9ibHVlX3JlZzsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19yZ2IgewoxNDQ3NDogIHVpbnQzMl90IHJlZDsKMTQ0NzQ6
ICB1aW50MzJfdCBncmVlbjsKMTQ0NzQ6ICB1aW50MzJfdCBibHVlOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHRldHJhaGVkcmFsXzE3eDE3eDE3IHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNf
cmdiIGx1dDBbMTIyOV07CjE0NDc0OiAgc3RydWN0IGRjX3JnYiBsdXQxWzEyMjhdOwoxNDQ3NDog
IHN0cnVjdCBkY19yZ2IgbHV0MlsxMjI4XTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcmdiIGx1dDNbMTIy
OF07CjE0NDc0OiB9OwoxNDQ3NDogc3RydWN0IHRldHJhaGVkcmFsXzl4OXg5IHsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNfcmdiIGx1dDBbMTgzXTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcmdiIGx1dDFbMTgyXTsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfcmdiIGx1dDJbMTgyXTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcmdiIGx1
dDNbMTgyXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0ZXRyYWhlZHJhbF9wYXJh
bXMgewoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHRldHJhaGVkcmFsXzE3eDE3eDE3
IHRldHJhaGVkcmFsXzE3OwoxNDQ3NDogICBzdHJ1Y3QgdGV0cmFoZWRyYWxfOXg5eDkgdGV0cmFo
ZWRyYWxfOTsKMTQ0NzQ6ICB9OwoxNDQ3NDogIGJvb2wgdXNlX3RldHJhaGVkcmFsXzk7CjE0NDc0
OiAgYm9vbCB1c2VfMTJiaXRzOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHB3bF9wYXJhbXMgewox
NDQ3NDogIHN0cnVjdCBnYW1tYV9jdXJ2ZSBhcnJfY3VydmVfcG9pbnRzWzM0XTsKMTQ0NzQ6ICB1
bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBjdXJ2ZV9wb2ludHMgYXJyX3BvaW50c1syXTsKMTQ0NzQ6
ICAgc3RydWN0IGN1cnZlX3BvaW50czMgY29ybmVyX3BvaW50c1syXTsKMTQ0NzQ6ICB9OwoxNDQ3
NDogIHN0cnVjdCBwd2xfcmVzdWx0X2RhdGEgcmdiX3Jlc3VsdGVkWzI1NiArIDNdOwoxNDQ3NDog
IHVpbnQzMl90IGh3X3BvaW50c19udW07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGxiX3BpeGVsX2Rl
cHRoIHsKMTQ0NzQ6IAoxNDQ3NDogIExCX1BJWEVMX0RFUFRIXzE4QlBQID0gMSwKMTQ0NzQ6ICBM
Ql9QSVhFTF9ERVBUSF8yNEJQUCA9IDIsCjE0NDc0OiAgTEJfUElYRUxfREVQVEhfMzBCUFAgPSA0
LAoxNDQ3NDogIExCX1BJWEVMX0RFUFRIXzM2QlBQID0gOAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogZW51bSBncmFwaGljc19jc2NfYWRqdXN0X3R5cGUgewoxNDQ3NDogIEdSQVBISUNTX0NTQ19B
REpVU1RfVFlQRV9CWVBBU1MgPSAwLAoxNDQ3NDogIEdSQVBISUNTX0NTQ19BREpVU1RfVFlQRV9I
VywKMTQ0NzQ6ICBHUkFQSElDU19DU0NfQURKVVNUX1RZUEVfU1cKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IGVudW0gaXBwX2RlZ2FtbWFfbW9kZSB7CjE0NDc0OiAgSVBQX0RFR0FNTUFfTU9ERV9C
WVBBU1MsCjE0NDc0OiAgSVBQX0RFR0FNTUFfTU9ERV9IV19zUkdCLAoxNDQ3NDogIElQUF9ERUdB
TU1BX01PREVfSFdfeHZZQ0MsCjE0NDc0OiAgSVBQX0RFR0FNTUFfTU9ERV9VU0VSX1BXTAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBpcHBfb3V0cHV0X2Zvcm1hdCB7CjE0NDc0OiAgSVBQ
X09VVFBVVF9GT1JNQVRfMTJfQklUX0ZJWCwKMTQ0NzQ6ICBJUFBfT1VUUFVUX0ZPUk1BVF8xNl9C
SVRfQllQQVNTLAoxNDQ3NDogIElQUF9PVVRQVVRfRk9STUFUX0ZMT0FUCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBlbnVtIGV4cGFuc2lvbl9tb2RlIHsKMTQ0NzQ6ICBFWFBBTlNJT05fTU9ERV9E
WU5BTUlDLAoxNDQ3NDogIEVYUEFOU0lPTl9NT0RFX1pFUk8KMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkZWZhdWx0X2FkanVzdG1lbnQgewoxNDQ3NDogIGVudW0gbGJfcGl4ZWxfZGVw
dGggbGJfY29sb3JfZGVwdGg7CjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFjZSBvdXRfY29sb3Jf
c3BhY2U7CjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFjZSBpbl9jb2xvcl9zcGFjZTsKMTQ0NzQ6
ICBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRoOwoxNDQ3NDogIGVudW0gcGl4ZWxfZm9y
bWF0IHN1cmZhY2VfcGl4ZWxfZm9ybWF0OwoxNDQ3NDogIGVudW0gZ3JhcGhpY3NfY3NjX2FkanVz
dF90eXBlIGNzY19hZGp1c3RfdHlwZTsKMTQ0NzQ6ICBib29sIGZvcmNlX2h3X2RlZmF1bHQ7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBvdXRfY3NjX2NvbG9yX21hdHJp
eCB7CjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcl9zcGFjZTsKMTQ0NzQ6ICB1aW50
MTZfdCByZWd2YWxbMTJdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBnYW11dF9yZW1h
cF9zZWxlY3QgewoxNDQ3NDogIEdBTVVUX1JFTUFQX0JZUEFTUyA9IDAsCjE0NDc0OiAgR0FNVVRf
UkVNQVBfQ09FRkYsCjE0NDc0OiAgR0FNVVRfUkVNQVBfQ09NQV9DT0VGRiwKMTQ0NzQ6ICBHQU1V
VF9SRU1BUF9DT01CX0NPRUZGCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIG9wcF9yZWdh
bW1hIHsKMTQ0NzQ6ICBPUFBfUkVHQU1NQV9CWVBBU1MgPSAwLAoxNDQ3NDogIE9QUF9SRUdBTU1B
X1NSR0IsCjE0NDc0OiAgT1BQX1JFR0FNTUFfWFZZQ0MsCjE0NDc0OiAgT1BQX1JFR0FNTUFfVVNF
UgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBvcHRjX2RzY19tb2RlIHsKMTQ0NzQ6ICBP
UFRDX0RTQ19ESVNBQkxFRCA9IDAsCjE0NDc0OiAgT1BUQ19EU0NfRU5BQkxFRF80NDQgPSAxLAox
NDQ3NDogIE9QVENfRFNDX0VOQUJMRURfTkFUSVZFX1NVQlNBTVBMRUQgPSAyCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfYmlhc19hbmRfc2NhbGUgewoxNDQ3NDogIHVpbnQxNl90
IHNjYWxlX3JlZDsKMTQ0NzQ6ICB1aW50MTZfdCBiaWFzX3JlZDsKMTQ0NzQ6ICB1aW50MTZfdCBz
Y2FsZV9ncmVlbjsKMTQ0NzQ6ICB1aW50MTZfdCBiaWFzX2dyZWVuOwoxNDQ3NDogIHVpbnQxNl90
IHNjYWxlX2JsdWU7CjE0NDc0OiAgdWludDE2X3QgYmlhc19ibHVlOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogZW51bSB0ZXN0X3BhdHRlcm5fZHluX3JhbmdlIHsKMTQ0NzQ6ICBURVNUX1BBVFRF
Uk5fRFlOX1JBTkdFX1ZFU0EgPSAwLAoxNDQ3NDogIFRFU1RfUEFUVEVSTl9EWU5fUkFOR0VfQ0VB
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHRlc3RfcGF0dGVybl9tb2RlIHsKMTQ0NzQ6
ICBURVNUX1BBVFRFUk5fTU9ERV9DT0xPUlNRVUFSRVNfUkdCID0gMCwKMTQ0NzQ6ICBURVNUX1BB
VFRFUk5fTU9ERV9DT0xPUlNRVUFSRVNfWUNCQ1I2MDEsCjE0NDc0OiAgVEVTVF9QQVRURVJOX01P
REVfQ09MT1JTUVVBUkVTX1lDQkNSNzA5LAoxNDQ3NDogIFRFU1RfUEFUVEVSTl9NT0RFX1ZFUlRJ
Q0FMQkFSUywKMTQ0NzQ6ICBURVNUX1BBVFRFUk5fTU9ERV9IT1JJWk9OVEFMQkFSUywKMTQ0NzQ6
ICBURVNUX1BBVFRFUk5fTU9ERV9TSU5HTEVSQU1QX1JHQiwKMTQ0NzQ6ICBURVNUX1BBVFRFUk5f
TU9ERV9EVUFMUkFNUF9SR0IsCjE0NDc0OiAgVEVTVF9QQVRURVJOX01PREVfWFJfQklBU19SR0IK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gdGVzdF9wYXR0ZXJuX2NvbG9yX2Zvcm1hdCB7
CjE0NDc0OiAgVEVTVF9QQVRURVJOX0NPTE9SX0ZPUk1BVF9CUENfNiA9IDAsCjE0NDc0OiAgVEVT
VF9QQVRURVJOX0NPTE9SX0ZPUk1BVF9CUENfOCwKMTQ0NzQ6ICBURVNUX1BBVFRFUk5fQ09MT1Jf
Rk9STUFUX0JQQ18xMCwKMTQ0NzQ6ICBURVNUX1BBVFRFUk5fQ09MT1JfRk9STUFUX0JQQ18xMgox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjb250cm9sbGVyX2RwX3Rlc3RfcGF0dGVybiB7
CjE0NDc0OiAgQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fRDEwMiA9IDAsCjE0NDc0OiAgQ09O
VFJPTExFUl9EUF9URVNUX1BBVFRFUk5fU1lNQk9MRVJST1IsCjE0NDc0OiAgQ09OVFJPTExFUl9E
UF9URVNUX1BBVFRFUk5fUFJCUzcsCjE0NDc0OiAgQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5f
Q09MT1JTUVVBUkVTLAoxNDQ3NDogIENPTlRST0xMRVJfRFBfVEVTVF9QQVRURVJOX1ZFUlRJQ0FM
QkFSUywKMTQ0NzQ6ICBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9IT1JJWk9OVEFMQkFSUywK
MTQ0NzQ6ICBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9DT0xPUlJBTVAsCjE0NDc0OiAgQ09O
VFJPTExFUl9EUF9URVNUX1BBVFRFUk5fVklERU9NT0RFLAoxNDQ3NDogIENPTlRST0xMRVJfRFBf
VEVTVF9QQVRURVJOX1JFU0VSVkVEXzgsCjE0NDc0OiAgQ09OVFJPTExFUl9EUF9URVNUX1BBVFRF
Uk5fUkVTRVJWRURfOSwKMTQ0NzQ6ICBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9SRVNFUlZF
RF9BLAoxNDQ3NDogIENPTlRST0xMRVJfRFBfVEVTVF9QQVRURVJOX0NPTE9SU1FVQVJFU19DRUEs
CjE0NDc0OiAgQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fU09MSURfQ09MT1IKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gY29udHJvbGxlcl9kcF9jb2xvcl9zcGFjZSB7CjE0NDc0OiAg
Q09OVFJPTExFUl9EUF9DT0xPUl9TUEFDRV9SR0IsCjE0NDc0OiAgQ09OVFJPTExFUl9EUF9DT0xP
Ul9TUEFDRV9ZQ0JDUjYwMSwKMTQ0NzQ6ICBDT05UUk9MTEVSX0RQX0NPTE9SX1NQQUNFX1lDQkNS
NzA5LAoxNDQ3NDogIENPTlRST0xMRVJfRFBfQ09MT1JfU1BBQ0VfVURFRklORUQKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfbHV0X21vZGUgewoxNDQ3NDogIExVVF9CWVBBU1MsCjE0
NDc0OiAgTFVUX1JBTV9BLAoxNDQ3NDogIExVVF9SQU1fQgoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzAg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvb3BwLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvaW5jL2h3L3RyYW5zZm9ybS5oIiAxCjE0NDc0OiAjIDM1ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L3RyYW5zZm9ybS5oIgoxNDQ3NDog
c3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
dHJhbnNmb3JtIHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgdHJhbnNmb3JtX2Z1bmNzICpmdW5jczsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIGludCBpbnN0OwoxNDQ3NDog
IHN0cnVjdCBkcHBfY2FwcyAqY2FwczsKMTQ0NzQ6ICBzdHJ1Y3QgcHdsX3BhcmFtcyByZWdhbW1h
X3BhcmFtczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjb2xvcmltZXRy
eSB7CjE0NDc0OiAgQ09MT1JJTUVUUllfTk9fREFUQSA9IDAsCjE0NDc0OiAgQ09MT1JJTUVUUllf
SVRVNjAxID0gMSwKMTQ0NzQ6ICBDT0xPUklNRVRSWV9JVFU3MDkgPSAyLAoxNDQ3NDogIENPTE9S
SU1FVFJZX0VYVEVOREVEID0gMwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjb2xvcmlt
ZXRyeV9leHQgewoxNDQ3NDogIENPTE9SSU1FVFJZRVhfWFZZQ0M2MDEgPSAwLAoxNDQ3NDogIENP
TE9SSU1FVFJZRVhfWFZZQ0M3MDkgPSAxLAoxNDQ3NDogIENPTE9SSU1FVFJZRVhfU1lDQzYwMSA9
IDIsCjE0NDc0OiAgQ09MT1JJTUVUUllFWF9BRE9CRVlDQzYwMSA9IDMsCjE0NDc0OiAgQ09MT1JJ
TUVUUllFWF9BRE9CRVJHQiA9IDQsCjE0NDc0OiAgQ09MT1JJTUVUUllFWF9CVDIwMjBZQ0MgPSA1
LAoxNDQ3NDogIENPTE9SSU1FVFJZRVhfQlQyMDIwUkdCWUNCQ1IgPSA2LAoxNDQ3NDogIENPTE9S
SU1FVFJZRVhfUkVTRVJWRUQgPSA3CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGFjdGl2
ZV9mb3JtYXRfaW5mbyB7CjE0NDc0OiAgQUNUSVZFX0ZPUk1BVF9OT19EQVRBID0gMCwKMTQ0NzQ6
ICBBQ1RJVkVfRk9STUFUX1ZBTElEID0gMQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBlbnVtIGFjdGl2ZV9mb3JtYXRfYXNwZWN0X3JhdGlvIHsKMTQ0NzQ6ICBBQ1RJVkVfRk9STUFU
X0FTUEVDVF9SQVRJT19TQU1FX0FTX1BJQ1RVUkUgPSA4LAoxNDQ3NDogIEFDVElWRV9GT1JNQVRf
QVNQRUNUX1JBVElPXzRfMyA9IDksCjE0NDc0OiAgQUNUSVZFX0ZPUk1BVF9BU1BFQ1RfUkFUSU9f
MTZfOSA9IDBYQSwKMTQ0NzQ6ICBBQ1RJVkVfRk9STUFUX0FTUEVDVF9SQVRJT18xNF85ID0gMFhC
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGJhcl9pbmZvIHsKMTQ0NzQ6ICBCQVJfSU5G
T19OT1RfVkFMSUQgPSAwLAoxNDQ3NDogIEJBUl9JTkZPX1ZFUlRJQ0FMX1ZBTElEID0gMSwKMTQ0
NzQ6ICBCQVJfSU5GT19IT1JJWk9OVEFMX1ZBTElEID0gMiwKMTQ0NzQ6ICBCQVJfSU5GT19CT1RI
X1ZBTElEID0gMwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBwaWN0dXJlX3NjYWxpbmcg
ewoxNDQ3NDogIFBJQ1RVUkVfU0NBTElOR19VTklGT1JNID0gMCwKMTQ0NzQ6ICBQSUNUVVJFX1ND
QUxJTkdfSE9SSVpPTlRBTCA9IDEsCjE0NDc0OiAgUElDVFVSRV9TQ0FMSU5HX1ZFUlRJQ0FMID0g
MiwKMTQ0NzQ6ICBQSUNUVVJFX1NDQUxJTkdfQk9USCA9IDMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZW51bSByZ2JfcXVhbnRpemF0aW9uX3JhbmdlIHsKMTQ0NzQ6ICBSR0JfUVVB
TlRJWkFUSU9OX0RFRkFVTFRfUkFOR0UgPSAwLAoxNDQ3NDogIFJHQl9RVUFOVElaQVRJT05fTElN
SVRFRF9SQU5HRSA9IDEsCjE0NDc0OiAgUkdCX1FVQU5USVpBVElPTl9GVUxMX1JBTkdFID0gMiwK
MTQ0NzQ6ICBSR0JfUVVBTlRJWkFUSU9OX1JFU0VSVkVEID0gMwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBlbnVtIHl5Y19xdWFudGl6YXRpb25fcmFuZ2UgewoxNDQ3NDogIFlZQ19R
VUFOVElaQVRJT05fTElNSVRFRF9SQU5HRSA9IDAsCjE0NDc0OiAgWVlDX1FVQU5USVpBVElPTl9G
VUxMX1JBTkdFID0gMSwKMTQ0NzQ6ICBZWUNfUVVBTlRJWkFUSU9OX1JFU0VSVkVEMiA9IDIsCjE0
NDc0OiAgWVlDX1FVQU5USVpBVElPTl9SRVNFUlZFRDMgPSAzCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBlbnVtIGdyYXBoaWNzX2dhbXV0X2FkanVzdF90eXBlIHsKMTQ0NzQ6ICBHUkFQSElDU19H
QU1VVF9BREpVU1RfVFlQRV9CWVBBU1MgPSAwLAoxNDQ3NDogIEdSQVBISUNTX0dBTVVUX0FESlVT
VF9UWVBFX0hXLAoxNDQ3NDogIEdSQVBISUNTX0dBTVVUX0FESlVTVF9UWVBFX1NXCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGxiX21lbW9yeV9jb25maWcgewoxNDQ3NDogCjE0NDc0OiAg
TEJfTUVNT1JZX0NPTkZJR18wID0gMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgTEJfTUVNT1JZ
X0NPTkZJR18xID0gMSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgTEJfTUVNT1JZX0NPTkZJR18y
ID0gMiwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIExCX01FTU9SWV9D
T05GSUdfMyA9IDMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB4Zm1fZ3JwaF9jc2Nf
YWRqdXN0bWVudCB7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgdGVtcGVyYXR1cmVfbWF0cml4
WzEyXTsKMTQ0NzQ6ICBlbnVtIGdyYXBoaWNzX2dhbXV0X2FkanVzdF90eXBlIGdhbXV0X2FkanVz
dF90eXBlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG92ZXJzY2FuX2luZm8gewox
NDQ3NDogIGludCBsZWZ0OwoxNDQ3NDogIGludCByaWdodDsKMTQ0NzQ6ICBpbnQgdG9wOwoxNDQ3
NDogIGludCBib3R0b207CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2NhbGluZ19y
YXRpb3MgewoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGhvcno7CjE0NDc0OiAgc3RydWN0IGZp
eGVkMzFfMzIgdmVydDsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBob3J6X2M7CjE0NDc0OiAg
c3RydWN0IGZpeGVkMzFfMzIgdmVydF9jOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHNoYXJwbmVzc19hZGogewoxNDQ3NDogIGludCBob3J6OwoxNDQ3NDogIGludCB2ZXJ0OwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGxpbmVfYnVmZmVyX3BhcmFtcyB7CjE0NDc0OiAg
Ym9vbCBhbHBoYV9lbjsKMTQ0NzQ6ICBib29sIHBpeGVsX2V4cGFuX21vZGU7CjE0NDc0OiAgYm9v
bCBpbnRlcmxlYXZlX2VuOwoxNDQ3NDogIGludCBkeW5hbWljX3BpeGVsX2RlcHRoOwoxNDQ3NDog
IGVudW0gbGJfcGl4ZWxfZGVwdGggZGVwdGg7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qgc2NsX2luaXRzIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBoOwoxNDQ3NDogIHN0cnVj
dCBmaXhlZDMxXzMyIGhfYzsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiB2OwoxNDQ3NDogIHN0
cnVjdCBmaXhlZDMxXzMyIHZfYm90OwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIHZfYzsKMTQ0
NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiB2X2NfYm90OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHNjYWxlcl9kYXRhIHsKMTQ0NzQ6ICBpbnQgaF9hY3RpdmU7CjE0NDc0OiAgaW50IHZf
YWN0aXZlOwoxNDQ3NDogIHN0cnVjdCBzY2FsaW5nX3RhcHMgdGFwczsKMTQ0NzQ6ICBzdHJ1Y3Qg
cmVjdCB2aWV3cG9ydDsKMTQ0NzQ6ICBzdHJ1Y3QgcmVjdCB2aWV3cG9ydF9jOwoxNDQ3NDogIHN0
cnVjdCByZWN0IHJlY291dDsKMTQ0NzQ6ICBzdHJ1Y3Qgc2NhbGluZ19yYXRpb3MgcmF0aW9zOwox
NDQ3NDogIHN0cnVjdCBzY2xfaW5pdHMgaW5pdHM7CjE0NDc0OiAgc3RydWN0IHNoYXJwbmVzc19h
ZGogc2hhcnBuZXNzOwoxNDQ3NDogIGVudW0gcGl4ZWxfZm9ybWF0IGZvcm1hdDsKMTQ0NzQ6ICBz
dHJ1Y3QgbGluZV9idWZmZXJfcGFyYW1zIGxiX3BhcmFtczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCB0cmFuc2Zvcm1fZnVuY3MgewoxNDQ3NDogIHZvaWQgKCp0cmFuc2Zvcm1fcmVz
ZXQpKHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqdHJhbnNm
b3JtX3NldF9zY2FsZXIpKHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKMTQ0NzQ6ICAgIGNvbnN0IHN0
cnVjdCBzY2FsZXJfZGF0YSAqc2NsX2RhdGEpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnRyYW5z
Zm9ybV9zZXRfcGl4ZWxfc3RvcmFnZV9kZXB0aCkoCjE0NDc0OiAgICBzdHJ1Y3QgdHJhbnNmb3Jt
ICp4Zm0sCjE0NDc0OiAgICBlbnVtIGxiX3BpeGVsX2RlcHRoIGRlcHRoLAoxNDQ3NDogICAgY29u
c3Qgc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zICpiaXRfZGVwdGhfcGFyYW1zKTsK
MTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCp0cmFuc2Zvcm1fZ2V0X29wdGltYWxfbnVtYmVyX29mX3Rh
cHMpKAoxNDQ3NDogICAgc3RydWN0IHRyYW5zZm9ybSAqeGZtLAoxNDQ3NDogICAgc3RydWN0IHNj
YWxlcl9kYXRhICpzY2xfZGF0YSwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBzY2FsaW5nX3RhcHMg
KmluX3RhcHMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnRyYW5zZm9ybV9zZXRfZ2FtdXRfcmVt
YXApKAoxNDQ3NDogICAgc3RydWN0IHRyYW5zZm9ybSAqeGZtLAoxNDQ3NDogICAgY29uc3Qgc3Ry
dWN0IHhmbV9ncnBoX2NzY19hZGp1c3RtZW50ICphZGp1c3QpOwoxNDQ3NDogCjE0NDc0OiAgdm9p
ZCAoKm9wcF9zZXRfY3NjX2RlZmF1bHQpKAoxNDQ3NDogICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0s
CjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkZWZhdWx0X2FkanVzdG1lbnQgKmRlZmF1bHRfYWRqdXN0
KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpvcHBfc2V0X2NzY19hZGp1c3RtZW50KSgKMTQ0NzQ6
ICAgc3RydWN0IHRyYW5zZm9ybSAqeGZtLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3Qgb3V0X2NzY19j
b2xvcl9tYXRyaXggKnRibF9lbnRyeSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqb3BwX3Bvd2Vy
X29uX3JlZ2FtbWFfbHV0KSgKMTQ0NzQ6ICAgc3RydWN0IHRyYW5zZm9ybSAqeGZtLAoxNDQ3NDog
ICBib29sIHBvd2VyX29uKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpvcHBfcHJvZ3JhbV9yZWdh
bW1hX2x1dCkoCjE0NDc0OiAgICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0sCjE0NDc0OiAgICBjb25z
dCBzdHJ1Y3QgcHdsX3Jlc3VsdF9kYXRhICpyZ2IsCjE0NDc0OiAgICB1aW50MzJfdCBudW0pOwox
NDQ3NDogCjE0NDc0OiAgdm9pZCAoKm9wcF9jb25maWd1cmVfcmVnYW1tYV9sdXQpKAoxNDQ3NDog
ICAgc3RydWN0IHRyYW5zZm9ybSAqeGZtLAoxNDQ3NDogICAgYm9vbCBpc19yYW1fYSk7CjE0NDc0
OiAKMTQ0NzQ6ICB2b2lkICgqb3BwX3Byb2dyYW1fcmVnYW1tYV9sdXRiX3NldHRpbmdzKSgKMTQ0
NzQ6ICAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBwd2xf
cGFyYW1zICpwYXJhbXMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKm9wcF9wcm9ncmFtX3JlZ2Ft
bWFfbHV0YV9zZXR0aW5ncykoCjE0NDc0OiAgICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0sCjE0NDc0
OiAgICBjb25zdCBzdHJ1Y3QgcHdsX3BhcmFtcyAqcGFyYW1zKTsKMTQ0NzQ6IAoxNDQ3NDogIHZv
aWQgKCpvcHBfcHJvZ3JhbV9yZWdhbW1hX3B3bCkoCjE0NDc0OiAgIHN0cnVjdCB0cmFuc2Zvcm0g
KnhmbSwgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqb3BwX3NldF9yZWdhbW1hX21vZGUpKAoxNDQ3NDogICAgc3RydWN0IHRyYW5zZm9ybSAq
eGZtX2Jhc2UsCjE0NDc0OiAgICBlbnVtIG9wcF9yZWdhbW1hIG1vZGUpOwoxNDQ3NDogCjE0NDc0
OiAgdm9pZCAoKmlwcF9zZXRfZGVnYW1tYSkoCjE0NDc0OiAgICBzdHJ1Y3QgdHJhbnNmb3JtICp4
Zm1fYmFzZSwKMTQ0NzQ6ICAgIGVudW0gaXBwX2RlZ2FtbWFfbW9kZSBtb2RlKTsKMTQ0NzQ6IAox
NDQ3NDogIHZvaWQgKCppcHBfcHJvZ3JhbV9pbnB1dF9sdXQpKAoxNDQ3NDogICAgc3RydWN0IHRy
YW5zZm9ybSAqeGZtX2Jhc2UsCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3QgZGNfZ2FtbWEgKmdhbW1h
KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCppcHBfcHJvZ3JhbV9kZWdhbW1hX3B3bCkoc3RydWN0
IHRyYW5zZm9ybSAqeGZtX2Jhc2UsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IHB3bF9w
YXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaXBwX3NldHVwKSgKMTQ0NzQ6
ICAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbV9iYXNlLAoxNDQ3NDogICAgZW51bSBzdXJmYWNlX3Bp
eGVsX2Zvcm1hdCBmb3JtYXQsCjE0NDc0OiAgICBlbnVtIGV4cGFuc2lvbl9tb2RlIG1vZGUsCjE0
NDc0OiAgICBzdHJ1Y3QgZGNfY3NjX3RyYW5zZm9ybSBpbnB1dF9jc2NfY29sb3JfbWF0cml4LAox
NDQ3NDogICAgZW51bSBkY19jb2xvcl9zcGFjZSBpbnB1dF9jb2xvcl9zcGFjZSk7CjE0NDc0OiAK
MTQ0NzQ6ICB2b2lkICgqaXBwX2Z1bGxfYnlwYXNzKShzdHJ1Y3QgdHJhbnNmb3JtICp4Zm1fYmFz
ZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X2N1cnNvcl9hdHRyaWJ1dGVzKSgKMTQ0NzQ6
ICAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbV9iYXNlLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IGRj
X2N1cnNvcl9hdHRyaWJ1dGVzICphdHRyKTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogY29uc3QgdWludDE2X3QgKmdldF9maWx0ZXJfMnRhcF8xNnAodm9pZCk7CjE0NDc0OiBjb25z
dCB1aW50MTZfdCAqZ2V0X2ZpbHRlcl8ydGFwXzY0cCh2b2lkKTsKMTQ0NzQ6IGNvbnN0IHVpbnQx
Nl90ICpnZXRfZmlsdGVyXzN0YXBfMTZwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsKMTQ0NzQ6
IGNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzN0YXBfNjRwKHN0cnVjdCBmaXhlZDMxXzMyIHJh
dGlvKTsKMTQ0NzQ6IGNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzR0YXBfMTZwKHN0cnVjdCBm
aXhlZDMxXzMyIHJhdGlvKTsKMTQ0NzQ6IGNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzR0YXBf
NjRwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsKMTQ0NzQ6IGNvbnN0IHVpbnQxNl90ICpnZXRf
ZmlsdGVyXzV0YXBfNjRwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsKMTQ0NzQ6IGNvbnN0IHVp
bnQxNl90ICpnZXRfZmlsdGVyXzZ0YXBfNjRwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsKMTQ0
NzQ6IGNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzd0YXBfNjRwKHN0cnVjdCBmaXhlZDMxXzMy
IHJhdGlvKTsKMTQ0NzQ6IGNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzh0YXBfNjRwKHN0cnVj
dCBmaXhlZDMxXzMyIHJhdGlvKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0g
ZHNjbF9kYXRhX3Byb2Nlc3NpbmdfZm9ybWF0IHsKMTQ0NzQ6ICBEU0NMX0RBVEFfUFJDRVNTSU5H
X0ZJWEVEX0ZPUk1BVCwKMTQ0NzQ6ICBEU0NMX0RBVEFfUFJDRVNTSU5HX0ZMT0FUX0ZPUk1BVCwK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcHBfY2FwcyB7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRz
Y2xfZGF0YV9wcm9jZXNzaW5nX2Zvcm1hdCBkc2NsX2RhdGFfcHJvY19mb3JtYXQ7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkc2NsX2NhbGNf
bGJfbnVtX3BhcnRpdGlvbnMpKAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IHNjYWxlcl9kYXRhICpz
Y2xfZGF0YSwKMTQ0NzQ6ICAgIGVudW0gbGJfbWVtb3J5X2NvbmZpZyBsYl9jb25maWcsCjE0NDc0
OiAgICBpbnQgKm51bV9wYXJ0X3ksCjE0NDc0OiAgICBpbnQgKm51bV9wYXJ0X2MpOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMzIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9pbmMvaHcvb3BwLmgiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2luYy9ody9tcGMuaCIgMQoxNDQ3NDogIyAzNiAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tcGMuaCIKMTQ0NzQ6IGVudW0g
bXBjX291dHB1dF9jc2NfbW9kZSB7CjE0NDc0OiAgTVBDX09VVFBVVF9DU0NfRElTQUJMRSA9IDAs
CjE0NDc0OiAgTVBDX09VVFBVVF9DU0NfQ09FRl9BLAoxNDQ3NDogIE1QQ19PVVRQVVRfQ1NDX0NP
RUZfQgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIG1wY2NfYmxlbmRfbW9k
ZSB7CjE0NDc0OiAgTVBDQ19CTEVORF9NT0RFX0JZUEFTUywKMTQ0NzQ6ICBNUENDX0JMRU5EX01P
REVfVE9QX0xBWUVSX1BBU1NUSFJPVUdILAoxNDQ3NDogIE1QQ0NfQkxFTkRfTU9ERV9UT1BfTEFZ
RVJfT05MWSwKMTQ0NzQ6ICBNUENDX0JMRU5EX01PREVfVE9QX0JPVF9CTEVORElORwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBtcGNjX2FscGhhX2JsZW5kX21vZGUgewoxNDQ3NDogIE1Q
Q0NfQUxQSEFfQkxFTkRfTU9ERV9QRVJfUElYRUxfQUxQSEEsCjE0NDc0OiAgTVBDQ19BTFBIQV9C
TEVORF9NT0RFX1BFUl9QSVhFTF9BTFBIQV9DT01CSU5FRF9HTE9CQUxfR0FJTiwKMTQ0NzQ6ICBN
UENDX0FMUEhBX0JMRU5EX01PREVfR0xPQkFMX0FMUEhBCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbXBjY19ibG5kX2NmZyB7CjE0NDc0OiAg
c3RydWN0IHRnX2NvbG9yIGJsYWNrX2NvbG9yOwoxNDQ3NDogIGVudW0gbXBjY19hbHBoYV9ibGVu
ZF9tb2RlIGFscGhhX21vZGU7CjE0NDc0OiAgYm9vbCBwcmVfbXVsdGlwbGllZF9hbHBoYTsKMTQ0
NzQ6ICBpbnQgZ2xvYmFsX2dhaW47CjE0NDc0OiAgaW50IGdsb2JhbF9hbHBoYTsKMTQ0NzQ6ICBi
b29sIG92ZXJsYXBfb25seTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IGJvdHRvbV9nYWlu
X21vZGU7CjE0NDc0OiAgaW50IGJhY2tncm91bmRfY29sb3JfYnBjOwoxNDQ3NDogIGludCB0b3Bf
Z2FpbjsKMTQ0NzQ6ICBpbnQgYm90dG9tX2luc2lkZV9nYWluOwoxNDQ3NDogIGludCBib3R0b21f
b3V0c2lkZV9nYWluOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1wY2Nfc21fY2Zn
IHsKMTQ0NzQ6ICBib29sIGVuYWJsZTsKMTQ0NzQ6IAoxNDQ3NDogIGludCBzbV9tb2RlOwoxNDQ3
NDogCjE0NDc0OiAgYm9vbCBmcmFtZV9hbHQ7CjE0NDc0OiAKMTQ0NzQ6ICBib29sIGZpZWxkX2Fs
dDsKMTQ0NzQ6IAoxNDQ3NDogIGludCBmb3JjZV9uZXh0X2ZyYW1lX3Bvcmxhcml0eTsKMTQ0NzQ6
IAoxNDQ3NDogIGludCBmb3JjZV9uZXh0X2ZpZWxkX3BvbGFyaXR5OwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IG1wY19kZW5vcm1fY2xhbXAgewoxNDQ3NDogIGludCBjbGFtcF9tYXhf
cl9jcjsKMTQ0NzQ6ICBpbnQgY2xhbXBfbWluX3JfY3I7CjE0NDc0OiAgaW50IGNsYW1wX21heF9n
X3k7CjE0NDc0OiAgaW50IGNsYW1wX21pbl9nX3k7CjE0NDc0OiAgaW50IGNsYW1wX21heF9iX2Ni
OwoxNDQ3NDogIGludCBjbGFtcF9taW5fYl9jYjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1wY2MgewoxNDQ3NDogIGludCBt
cGNjX2lkOwoxNDQ3NDogIGludCBkcHBfaWQ7CjE0NDc0OiAgc3RydWN0IG1wY2MgKm1wY2NfYm90
OwoxNDQ3NDogIHN0cnVjdCBtcGNjX2JsbmRfY2ZnIGJsbmRfY2ZnOwoxNDQ3NDogIHN0cnVjdCBt
cGNjX3NtX2NmZyBzbV9jZmc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgbXBjX3RyZWUgewoxNDQ3NDogIGludCBvcHBfaWQ7CjE0NDc0OiAg
c3RydWN0IG1wY2MgKm9wcF9saXN0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1w
YyB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IG1wY19mdW5jcyAqZnVuY3M7CjE0NDc0OiAgc3RydWN0
IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBtcGNjIG1wY2NfYXJyYXlb
Nl07CjE0NDc0OiAgc3RydWN0IHB3bF9wYXJhbXMgYmxlbmRlcl9wYXJhbXM7CjE0NDc0OiAgYm9v
bCBjbV9ieXBhc3NfbW9kZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtcGNjX3N0
YXRlIHsKMTQ0NzQ6ICB1aW50MzJfdCBvcHBfaWQ7CjE0NDc0OiAgdWludDMyX3QgZHBwX2lkOwox
NDQ3NDogIHVpbnQzMl90IGJvdF9tcGNjX2lkOwoxNDQ3NDogIHVpbnQzMl90IG1vZGU7CjE0NDc0
OiAgdWludDMyX3QgYWxwaGFfbW9kZTsKMTQ0NzQ6ICB1aW50MzJfdCBwcmVfbXVsdGlwbGllZF9h
bHBoYTsKMTQ0NzQ6ICB1aW50MzJfdCBvdmVybGFwX29ubHk7CjE0NDc0OiAgdWludDMyX3QgaWRs
ZTsKMTQ0NzQ6ICB1aW50MzJfdCBidXN5OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IG1wY19mdW5jcyB7CjE0NDc0OiAgdm9pZCAoKnJlYWRfbXBjY19zdGF0ZSkoCjE0NDc0OiAgICBz
dHJ1Y3QgbXBjICptcGMsCjE0NDc0OiAgICBpbnQgbXBjY19pbnN0LAoxNDQ3NDogICAgc3RydWN0
IG1wY2Nfc3RhdGUgKnMpOwoxNDQ3NDogIyAxNjEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgiCjE0NDc0OiAgc3RydWN0IG1wY2MqICgqaW5z
ZXJ0X3BsYW5lKSgKMTQ0NzQ6ICAgIHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6ICAgIHN0cnVjdCBt
cGNfdHJlZSAqdHJlZSwKMTQ0NzQ6ICAgIHN0cnVjdCBtcGNjX2JsbmRfY2ZnICpibG5kX2NmZywK
MTQ0NzQ6ICAgIHN0cnVjdCBtcGNjX3NtX2NmZyAqc21fY2ZnLAoxNDQ3NDogICAgc3RydWN0IG1w
Y2MgKmluc2VydF9hYm92ZV9tcGNjLAoxNDQ3NDogICAgaW50IGRwcF9pZCwKMTQ0NzQ6ICAgIGlu
dCBtcGNjX2lkKTsKMTQ0NzQ6ICMgMTgwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oIgoxNDQ3NDogIHZvaWQgKCpyZW1vdmVfbXBjYykoCjE0
NDc0OiAgICBzdHJ1Y3QgbXBjICptcGMsCjE0NDc0OiAgICBzdHJ1Y3QgbXBjX3RyZWUgKnRyZWUs
CjE0NDc0OiAgICBzdHJ1Y3QgbXBjYyAqbXBjYyk7CjE0NDc0OiAjIDE5MyAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tcGMuaCIKMTQ0NzQ6ICB2b2lk
ICgqbXBjX2luaXQpKHN0cnVjdCBtcGMgKm1wYyk7CjE0NDc0OiAgdm9pZCAoKm1wY19pbml0X3Np
bmdsZV9pbnN0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6ICAgIHVuc2lnbmVk
IGludCBtcGNjX2lkKTsKMTQ0NzQ6ICMgMjA4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oIgoxNDQ3NDogIHZvaWQgKCp1cGRhdGVfYmxlbmRp
bmcpKAoxNDQ3NDogICBzdHJ1Y3QgbXBjICptcGMsCjE0NDc0OiAgIHN0cnVjdCBtcGNjX2JsbmRf
Y2ZnICpibG5kX2NmZywKMTQ0NzQ6ICAgaW50IG1wY2NfaWQpOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IG1wY2MqICgqZ2V0X21wY2NfZm9yX2RwcCkoCjE0NDc0OiAgICBzdHJ1Y3QgbXBjX3RyZWUg
KnRyZWUsCjE0NDc0OiAgICBpbnQgZHBwX2lkKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCp3YWl0
X2Zvcl9pZGxlKShzdHJ1Y3QgbXBjICptcGMsIGludCBpZCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lk
ICgqYXNzZXJ0X21wY2NfaWRsZV9iZWZvcmVfY29ubmVjdCkoc3RydWN0IG1wYyAqbXBjLCBpbnQg
bXBjY19pZCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaW5pdF9tcGNjX2xpc3RfZnJvbV9odyko
CjE0NDc0OiAgIHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6ICAgc3RydWN0IG1wY190cmVlICp0cmVl
KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRfZGVub3JtKShzdHJ1Y3QgbXBjICptcGMsCjE0
NDc0OiAgICBpbnQgb3BwX2lkLAoxNDQ3NDogICAgZW51bSBkY19jb2xvcl9kZXB0aCBvdXRwdXRf
ZGVwdGgpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9kZW5vcm1fY2xhbXApKAoxNDQ3NDog
ICAgc3RydWN0IG1wYyAqbXBjLAoxNDQ3NDogICAgaW50IG9wcF9pZCwKMTQ0NzQ6ICAgIHN0cnVj
dCBtcGNfZGVub3JtX2NsYW1wIGRlbm9ybV9jbGFtcCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgq
c2V0X291dHB1dF9jc2MpKHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6ICAgIGludCBvcHBfaWQsCjE0
NDc0OiAgICBjb25zdCB1aW50MTZfdCAqcmVndmFsLAoxNDQ3NDogICAgZW51bSBtcGNfb3V0cHV0
X2NzY19tb2RlIG9jc2NfbW9kZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X29jc2NfZGVm
YXVsdCkoc3RydWN0IG1wYyAqbXBjLAoxNDQ3NDogICAgaW50IG9wcF9pZCwKMTQ0NzQ6ICAgIGVu
dW0gZGNfY29sb3Jfc3BhY2UgY29sb3Jfc3BhY2UsCjE0NDc0OiAgICBlbnVtIG1wY19vdXRwdXRf
Y3NjX21vZGUgb2NzY19tb2RlKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRfb3V0cHV0X2dh
bW1hKSgKMTQ0NzQ6ICAgIHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6ICAgIGludCBtcGNjX2lkLAox
NDQ3NDogICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAgdm9pZCAo
KnBvd2VyX29uX21wY19tZW1fcHdyKSgKMTQ0NzQ6ICAgIHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6
ICAgIGludCBtcGNjX2lkLAoxNDQ3NDogICAgYm9vbCBwb3dlcl9vbik7CjE0NDc0OiAKMTQ0NzQ6
IH07CjE0NDc0OiAjIDMzICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvaW5jL2h3L29wcC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmaXhlZDMxXzMyOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gY2xhbXBpbmdfcmFuZ2UgewoxNDQ3NDogIENMQU1QSU5H
X0ZVTExfUkFOR0UgPSAwLAoxNDQ3NDogIENMQU1QSU5HX0xJTUlURURfUkFOR0VfOEJQQywKMTQ0
NzQ6ICBDTEFNUElOR19MSU1JVEVEX1JBTkdFXzEwQlBDLAoxNDQ3NDogIENMQU1QSU5HX0xJTUlU
RURfUkFOR0VfMTJCUEMsCjE0NDc0OiAKMTQ0NzQ6ICBDTEFNUElOR19MSU1JVEVEX1JBTkdFX1BS
T0dSQU1NQUJMRQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsYW1waW5nX2FuZF9w
aXhlbF9lbmNvZGluZ19wYXJhbXMgewoxNDQ3NDogIGVudW0gZGNfcGl4ZWxfZW5jb2RpbmcgcGl4
ZWxfZW5jb2Rpbmc7CjE0NDc0OiAgZW51bSBjbGFtcGluZ19yYW5nZSBjbGFtcGluZ19sZXZlbDsK
MTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX2RlcHRoIGNfZGVwdGg7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJhbXMgewoxNDQ3NDogIHN0cnVjdCB7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBUUlVOQ0FURV9FTkFCTEVEOjE7CjE0
NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgVFJVTkNBVEVfREVQVEg6MjsKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50MzJfdCBUUlVOQ0FURV9NT0RFOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgIHVpbnQzMl90IFNQQVRJQUxfRElUSEVSX0VOQUJMRUQ6MTsKMTQ0NzQ6IAoxNDQ3NDogICB1
aW50MzJfdCBTUEFUSUFMX0RJVEhFUl9ERVBUSDoyOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90
IFNQQVRJQUxfRElUSEVSX01PREU6MjsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBSR0JfUkFO
RE9NOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgRlJBTUVfUkFORE9NOjE7CjE0NDc0OiAK
MTQ0NzQ6ICAgdWludDMyX3QgSElHSFBBU1NfUkFORE9NOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgIHVpbnQzMl90IEZSQU1FX01PRFVMQVRJT05fRU5BQkxFRDoxOwoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQzMl90IEZSQU1FX01PRFVMQVRJT05fREVQVEg6MjsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MzJfdCBURU1QT1JBTF9MRVZFTDoxOwoxNDQ3NDogICB1aW50MzJfdCBGUkMyNToy
OwoxNDQ3NDogICB1aW50MzJfdCBGUkM1MDoyOwoxNDQ3NDogICB1aW50MzJfdCBGUkM3NToyOwox
NDQ3NDogIH0gZmxhZ3M7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCByX3NlZWRfdmFsdWU7CjE0
NDc0OiAgdWludDMyX3QgYl9zZWVkX3ZhbHVlOwoxNDQ3NDogIHVpbnQzMl90IGdfc2VlZF92YWx1
ZTsKMTQ0NzQ6ICBlbnVtIGRjX3BpeGVsX2VuY29kaW5nIHBpeGVsX2VuY29kaW5nOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB3aWRlX2dhbXV0X3JlZ2FtbWFfbW9kZSB7CjE0NDc0OiAK
MTQ0NzQ6ICBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19CWVBBU1MsCjE0NDc0OiAK
MTQ0NzQ6ICBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19TUkdCMjQsCjE0NDc0OiAK
MTQ0NzQ6ICBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19YWVlDQzIyLAoxNDQ3NDog
CjE0NDc0OiAgV0lERV9HQU1VVF9SRUdBTU1BX01PREVfR1JBUEhJQ1NfTUFUUklYX0EsCjE0NDc0
OiAKMTQ0NzQ6ICBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19NQVRSSVhfQiwKMTQ0
NzQ6IAoxNDQ3NDogIFdJREVfR0FNVVRfUkVHQU1NQV9NT0RFX09WTF9CWVBBU1MsCjE0NDc0OiAK
MTQ0NzQ6ICBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9PVkxfU1JHQjI0LAoxNDQ3NDogCjE0NDc0
OiAgV0lERV9HQU1VVF9SRUdBTU1BX01PREVfT1ZMX1hZWUNDMjIsCjE0NDc0OiAKMTQ0NzQ6ICBX
SURFX0dBTVVUX1JFR0FNTUFfTU9ERV9PVkxfTUFUUklYX0EsCjE0NDc0OiAKMTQ0NzQ6ICBXSURF
X0dBTVVUX1JFR0FNTUFfTU9ERV9PVkxfTUFUUklYX0IKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBnYW1tYV9waXhlbCB7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcjsKMTQ0NzQ6
ICBzdHJ1Y3QgZml4ZWQzMV8zMiBnOwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGI7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGNoYW5uZWxfbmFtZSB7CjE0NDc0OiAgQ0hBTk5FTF9O
QU1FX1JFRCwKMTQ0NzQ6ICBDSEFOTkVMX05BTUVfR1JFRU4sCjE0NDc0OiAgQ0hBTk5FTF9OQU1F
X0JMVUUKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjdXN0b21fZmxvYXRfZm9ybWF0
IHsKMTQ0NzQ6ICB1aW50MzJfdCBtYW50aXNzYV9iaXRzOwoxNDQ3NDogIHVpbnQzMl90IGV4cG9u
ZW50YV9iaXRzOwoxNDQ3NDogIGJvb2wgc2lnbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBjdXN0b21fZmxvYXRfdmFsdWUgewoxNDQ3NDogIHVpbnQzMl90IG1hbnRpc3NhOwoxNDQ3
NDogIHVpbnQzMl90IGV4cG9uZW50YTsKMTQ0NzQ6ICB1aW50MzJfdCB2YWx1ZTsKMTQ0NzQ6ICBi
b29sIG5lZ2F0aXZlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGh3X3hfcG9pbnQg
ewoxNDQ3NDogIHVpbnQzMl90IGN1c3RvbV9mbG9hdF94OwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMx
XzMyIHg7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcmVnYW1tYV95X3JlZDsKMTQ0NzQ6ICBz
dHJ1Y3QgZml4ZWQzMV8zMiByZWdhbW1hX3lfZ3JlZW47CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFf
MzIgcmVnYW1tYV95X2JsdWU7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBwd2xfZmxvYXRfZGF0YV9leCB7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcjsKMTQ0NzQ6
ICBzdHJ1Y3QgZml4ZWQzMV8zMiBnOwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGI7CjE0NDc0
OiAgc3RydWN0IGZpeGVkMzFfMzIgZGVsdGFfcjsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBk
ZWx0YV9nOwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGRlbHRhX2I7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBlbnVtIGh3X3BvaW50X3Bvc2l0aW9uIHsKMTQ0NzQ6IAoxNDQ3NDogIEhXX1BP
SU5UX1BPU0lUSU9OX01JRERMRSwKMTQ0NzQ6IAoxNDQ3NDogIEhXX1BPSU5UX1BPU0lUSU9OX0xF
RlQsCjE0NDc0OiAKMTQ0NzQ6ICBIV19QT0lOVF9QT1NJVElPTl9SSUdIVAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGdhbW1hX3BvaW50IHsKMTQ0NzQ6ICBpbnQzMl90IGxlZnRfaW5k
ZXg7CjE0NDc0OiAgaW50MzJfdCByaWdodF9pbmRleDsKMTQ0NzQ6ICBlbnVtIGh3X3BvaW50X3Bv
c2l0aW9uIHBvczsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBjb2VmZjsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwaXhlbF9nYW1tYV9wb2ludCB7CjE0NDc0OiAgc3RydWN0IGdh
bW1hX3BvaW50IHI7CjE0NDc0OiAgc3RydWN0IGdhbW1hX3BvaW50IGc7CjE0NDc0OiAgc3RydWN0
IGdhbW1hX3BvaW50IGI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZ2FtbWFfY29l
ZmZpY2llbnRzIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBhMFszXTsKMTQ0NzQ6ICBzdHJ1
Y3QgZml4ZWQzMV8zMiBhMVszXTsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBhMlszXTsKMTQ0
NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBhM1szXTsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiB1
c2VyX2dhbW1hWzNdOwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIHVzZXJfY29udHJhc3Q7CjE0
NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgdXNlcl9icmlnaHRuZXNzOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHB3bF9mbG9hdF9kYXRhIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8z
MiByOwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGc7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFf
MzIgYjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtcGNfdHJlZV9jZmcgewoxNDQ3
NDogIGludCBudW1fcGlwZXM7CjE0NDc0OiAgaW50IGRwcFs2XTsKMTQ0NzQ6ICBpbnQgbXBjY1s2
XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29y
IHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIHVpbnQzMl90IGluc3Q7
CjE0NDc0OiAgc3RydWN0IHB3bF9wYXJhbXMgcmVnYW1tYV9wYXJhbXM7CjE0NDc0OiAgc3RydWN0
IG1wY190cmVlIG1wY190cmVlX3BhcmFtczsKMTQ0NzQ6ICBib29sIG1wY2NfZGlzY29ubmVjdF9w
ZW5kaW5nWzZdOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBvcHBfZnVuY3MgKmZ1bmNzOwoxNDQ3NDog
IHVpbnQzMl90IGR5bl9leHBhbnNpb247CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGZt
dF9zdGVyZW9fYWN0aW9uIHsKMTQ0NzQ6ICBGTVRfU1RFUkVPX0FDVElPTl9FTkFCTEUgPSAwLAox
NDQ3NDogIEZNVF9TVEVSRU9fQUNUSU9OX0RJU0FCTEUsCjE0NDc0OiAgRk1UX1NURVJFT19BQ1RJ
T05fVVBEQVRFX1BPTEFSSVRZCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgb3BwX2dy
cGhfY3NjX2FkanVzdG1lbnQgewoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFjZSBj
X3NwYWNlOwoxNDQ3NDogIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGg7CjE0NDc0OiAg
ZW51bSBncmFwaGljc19jc2NfYWRqdXN0X3R5cGUgY3NjX2FkanVzdF90eXBlOwoxNDQ3NDogIGlu
dDMyX3QgYWRqdXN0X2RpdmlkZXI7CjE0NDc0OiAgaW50MzJfdCBncnBoX2NvbnQ7CjE0NDc0OiAg
aW50MzJfdCBncnBoX3NhdDsKMTQ0NzQ6ICBpbnQzMl90IGdycGhfYnJpZ2h0OwoxNDQ3NDogIGlu
dDMyX3QgZ3JwaF9odWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGh3X2FkanVzdG1lbnRfcmFuZ2UgewoxNDQ3NDogIGludDMyX3QgaHdfZGVmYXVsdDsK
MTQ0NzQ6ICBpbnQzMl90IG1pbjsKMTQ0NzQ6ICBpbnQzMl90IG1heDsKMTQ0NzQ6ICBpbnQzMl90
IHN0ZXA7CjE0NDc0OiAgdWludDMyX3QgZGl2aWRlcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gb3ZsX2NzY19hZGp1c3RfaXRlbSB7CjE0NDc0OiAgT1ZFUkxBWV9CUklHSFRORVNTID0g
MCwKMTQ0NzQ6ICBPVkVSTEFZX0dBTU1BLAoxNDQ3NDogIE9WRVJMQVlfQ09OVFJBU1QsCjE0NDc0
OiAgT1ZFUkxBWV9TQVRVUkFUSU9OLAoxNDQ3NDogIE9WRVJMQVlfSFVFLAoxNDQ3NDogIE9WRVJM
QVlfQUxQSEEsCjE0NDc0OiAgT1ZFUkxBWV9BTFBIQV9QRVJfUElYLAoxNDQ3NDogIE9WRVJMQVlf
Q09MT1JfVEVNUEVSQVRVUkUKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gb3BwYnVmX2Rp
c3BsYXlfc2VnbWVudGF0aW9uIHsKMTQ0NzQ6ICBPUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05f
MV9TRUdNRU5UID0gMCwKMTQ0NzQ6ICBPUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fMl9TRUdN
RU5UID0gMSwKMTQ0NzQ6ICBPUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fNF9TRUdNRU5UID0g
MiwKMTQ0NzQ6ICBPUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fNF9TRUdNRU5UX1NQTElUX0xF
RlQgPSAzLAoxNDQ3NDogIE9QUEJVRl9ESVNQTEFZX1NFR01FTlRBVElPTl80X1NFR01FTlRfU1BM
SVRfUklHSFQgPSA0CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgb3BwYnVmX3BhcmFt
cyB7CjE0NDc0OiAgdWludDMyX3QgYWN0aXZlX3dpZHRoOwoxNDQ3NDogIGVudW0gb3BwYnVmX2Rp
c3BsYXlfc2VnbWVudGF0aW9uIG1zb19zZWdtZW50YXRpb247CjE0NDc0OiAgdWludDMyX3QgbXNv
X292ZXJsYXBfcGl4ZWxfbnVtOwoxNDQ3NDogIHVpbnQzMl90IHBpeGVsX3JlcGV0aXRpb247CjE0
NDc0OiAgdWludDMyX3QgbnVtX3NlZ21lbnRfcGFkZGVkX3BpeGVsczsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBvcHBfZnVuY3MgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAoKm9wcF9wcm9ncmFtX2ZtdCkoCjE0NDc0OiAgICBzdHJ1Y3Qgb3V0
cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwLAoxNDQ3NDogICAgc3RydWN0IGJpdF9kZXB0aF9yZWR1
Y3Rpb25fcGFyYW1zICpmbXRfYml0X2RlcHRoLAoxNDQ3NDogICAgc3RydWN0IGNsYW1waW5nX2Fu
ZF9waXhlbF9lbmNvZGluZ19wYXJhbXMgKmNsYW1waW5nKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQg
KCpvcHBfc2V0X2R5bl9leHBhbnNpb24pKAoxNDQ3NDogICBzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3By
b2Nlc3NvciAqb3BwLAoxNDQ3NDogICBlbnVtIGRjX2NvbG9yX3NwYWNlIGNvbG9yX3NwLAoxNDQ3
NDogICBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RwdGgsCjE0NDc0OiAgIGVudW0gc2lnbmFs
X3R5cGUgc2lnbmFsKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpvcHBfcHJvZ3JhbV9iaXRfZGVw
dGhfcmVkdWN0aW9uKSgKMTQ0NzQ6ICAgc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9w
cCwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zICpwYXJh
bXMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqb3BwX2dldF91bmRlcmxheV9hZGp1
c3RtZW50X3JhbmdlKSgKMTQ0NzQ6ICAgIHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpv
cHAsCjE0NDc0OiAgICBlbnVtIG92bF9jc2NfYWRqdXN0X2l0ZW0gb3ZlcmxheV9hZGp1c3RfaXRl
bSwKMTQ0NzQ6ICAgIHN0cnVjdCBod19hZGp1c3RtZW50X3JhbmdlICpyYW5nZSk7CjE0NDc0OiAK
MTQ0NzQ6ICB2b2lkICgqb3BwX2Rlc3Ryb3kpKHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29y
ICoqb3BwKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpvcHBfcHJvZ3JhbV9zdGVyZW8pKAoxNDQ3
NDogICBzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwLAoxNDQ3NDogICBib29sIGVu
YWJsZSwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcpOwoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAoKm9wcF9waXBlX2Nsb2NrX2NvbnRyb2wpKAoxNDQ3NDogICAgc3Ry
dWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKMTQ0NzQ6ICAgIGJvb2wgZW5hYmxlKTsK
MTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpvcHBfc2V0X2Rpc3BfcGF0dGVybl9nZW5lcmF0b3IpKAox
NDQ3NDogICAgc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKMTQ0NzQ6ICAgIGVu
dW0gY29udHJvbGxlcl9kcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuLAoxNDQ3NDogICAgZW51
bSBjb250cm9sbGVyX2RwX2NvbG9yX3NwYWNlIGNvbG9yX3NwYWNlLAoxNDQ3NDogICAgZW51bSBk
Y19jb2xvcl9kZXB0aCBjb2xvcl9kZXB0aCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCB0Z19jb2xv
ciAqc29saWRfY29sb3IsCjE0NDc0OiAgICBpbnQgd2lkdGgsCjE0NDc0OiAgICBpbnQgaGVpZ2h0
KTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCpkcGdfaXNfYmxhbmtlZCkoCjE0NDc0OiAgICBzdHJ1
Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpv
cHBfZHBnX3NldF9ibGFua19jb2xvcikoCjE0NDc0OiAgICBzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3By
b2Nlc3NvciAqb3BwLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IHRnX2NvbG9yICpjb2xvcik7CjE0
NDc0OiAKMTQ0NzQ6ICB2b2lkICgqb3BwX3Byb2dyYW1fbGVmdF9lZGdlX2V4dHJhX3BpeGVsKSgK
MTQ0NzQ6ICAgIHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHAsCjE0NDc0OiAgICBi
b29sIGNvdW50KTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzYgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9od19zZXF1ZW5j
ZXIuaCIgMQoxNDQ3NDogIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2luYy9od19zZXF1ZW5jZXIuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jbG9ja19zb3VyY2UuaCIgMQoxNDQ3NDogIyAz
MCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jbG9ja19z
b3VyY2UuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2luY2x1ZGUvZ3JwaF9vYmplY3RfaWQuaCIgMQoxNDQ3NDogIyAzMSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jbG9ja19zb3VyY2UuaCIgMgoxNDQ3
NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9i
aW9zX3BhcnNlcl90eXBlcy5oIiAxCjE0NDc0OiAjIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oIgoxNDQ3NDogIyAx
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMu
aCIgMQoxNDQ3NDogIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2RtX3NlcnZpY2VzLmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3RyYWNlLmgiIDEKMTQ0NzQ6ICMgMzIg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1
X2RtX3RyYWNlLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgiIDEK
MTQ0NzQ6ICMgMjMgIi4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgiCjE0NDc0OiBzdHJ1Y3Qg
bW9kdWxlOwoxNDQ3NDogc3RydWN0IHRyYWNlcG9pbnQ7CjE0NDc0OiBzdHJ1Y3Qgbm90aWZpZXJf
YmxvY2s7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0cmFjZV9ldmFsX21hcCB7CjE0NDc0OiAgY29u
c3QgY2hhciAqc3lzdGVtOwoxNDQ3NDogIGNvbnN0IGNoYXIgKmV2YWxfc3RyaW5nOwoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgZXZhbF92YWx1ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHNyY3Vfc3RydWN0IHRyYWNlcG9pbnRfc3JjdTsKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIGludAoxNDQ3NDogdHJhY2Vwb2ludF9wcm9iZV9yZWdpc3Rlcihz
dHJ1Y3QgdHJhY2Vwb2ludCAqdHAsIHZvaWQgKnByb2JlLCB2b2lkICpkYXRhKTsKMTQ0NzQ6IGV4
dGVybiBpbnQKMTQ0NzQ6IHRyYWNlcG9pbnRfcHJvYmVfcmVnaXN0ZXJfcHJpbyhzdHJ1Y3QgdHJh
Y2Vwb2ludCAqdHAsIHZvaWQgKnByb2JlLCB2b2lkICpkYXRhLAoxNDQ3NDogICAgICAgICAgIGlu
dCBwcmlvKTsKMTQ0NzQ6IGV4dGVybiBpbnQKMTQ0NzQ6IHRyYWNlcG9pbnRfcHJvYmVfdW5yZWdp
c3RlcihzdHJ1Y3QgdHJhY2Vwb2ludCAqdHAsIHZvaWQgKnByb2JlLCB2b2lkICpkYXRhKTsKMTQ0
NzQ6IGV4dGVybiB2b2lkCjE0NDc0OiBmb3JfZWFjaF9rZXJuZWxfdHJhY2Vwb2ludCh2b2lkICgq
ZmN0KShzdHJ1Y3QgdHJhY2Vwb2ludCAqdHAsIHZvaWQgKnByaXYpLAoxNDQ3NDogICB2b2lkICpw
cml2KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdHBfbW9kdWxlIHsKMTQ0NzQ6ICBz
dHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CjE0NDc0OiAgc3RydWN0IG1vZHVsZSAqbW9kOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCB0cmFjZV9tb2R1bGVfaGFzX2JhZF90YWludChzdHJ1Y3Qg
bW9kdWxlICptb2QpOwoxNDQ3NDogZXh0ZXJuIGludCByZWdpc3Rlcl90cmFjZXBvaW50X21vZHVs
ZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
dW5yZWdpc3Rlcl90cmFjZXBvaW50X21vZHVsZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxv
Y2sgKm5iKTsKMTQ0NzQ6ICMgODAgIi4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHRyYWNlcG9pbnRfc3luY2hyb25pemVfdW5yZWdpc3Rlcih2b2lkKQoxNDQ3NDogewox
NDQ3NDogIHN5bmNocm9uaXplX3NyY3UoJnRyYWNlcG9pbnRfc3JjdSk7CjE0NDc0OiAgc3luY2hy
b25pemVfcmN1KCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHN5c2NhbGxfcmVnZnVuYyh2b2lkKTsKMTQ0
NzQ6IGV4dGVybiB2b2lkIHN5c2NhbGxfdW5yZWdmdW5jKHZvaWQpOwoxNDQ3NDogIyAxMDEgIi4v
aW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgdHJhY2Vwb2ludCAqdHJh
Y2Vwb2ludF9wdHJfZGVyZWYodHJhY2Vwb2ludF9wdHJfdCAqcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gb2Zmc2V0X3RvX3B0cihwKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzMgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3RyYWNlLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB0cmFjZXBvaW50IF9fdHJhY2Vwb2ludF9h
bWRncHVfZGNfcnJlZzsgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCB0cmFjZV9hbWRncHVfZGNfcnJlZyh1bnNpZ25lZCBsb25nICpy
ZWFkX2NvdW50LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSB7IGlmIChzdGF0aWNfa2V5
X2ZhbHNlKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcua2V5KSkgZG8geyBzdHJ1Y3QgdHJh
Y2Vwb2ludF9mdW5jICppdF9mdW5jX3B0cjsgdm9pZCAqaXRfZnVuYzsgdm9pZCAqX19kYXRhOyBp
bnQgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9faWR4ID0gMDsgaWYgKCEoY3B1bWFza190
ZXN0X2NwdSgoKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBzY3JfcmV0X187IGRvIHsgY29uc3Qgdm9p
ZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJihjcHVfbnVtYmVyKSkgKyAwKSkoKHZvaWQgKikw
KTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZihjcHVfbnVt
YmVyKSkgeyBjYXNlIDE6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3Jl
dF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAo
Im1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAi
bSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAi
IiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251
bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6
IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJy
ZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIi
LCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgMjog
cHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6
ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikp
OyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIg
IjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBj
YXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6
ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNt
IHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZv
X3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1
X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2FzZSA0OiBwc2NyX3JldF9fID0gKHsg
dHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikp
IHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwl
MCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6
IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIg
KHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0
aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9f
KSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3Yi
ICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChj
cHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19y
ZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDg6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJl
cikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2
b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19y
ZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgi
bW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJt
IiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoi
ICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJl
YWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7
IGRlZmF1bHQ6IF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0ZXIoKTsgYnJlYWs7IH0gcHNjcl9yZXRf
XzsgfSkpLCAoKGNvbnN0IHN0cnVjdCBjcHVtYXNrICopJl9fY3B1X29ubGluZV9tYXNrKSkpKSBy
ZXR1cm47ICh7IGludCBfX3JldF93YXJuX29uID0gISEoMCAmJiAocHJlZW1wdF9jb3VudCgpICYg
KCgoMVVMIDw8ICgxKSktMSkgPDwgKCgoMCArIDgpICsgOCkgKyA0KSkpKTsgaWYgKF9fYnVpbHRp
bl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZv
bGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVn
X3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2Vu
dHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50
cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29y
ZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNl
Y3Rpb24iIDogOiAiaSIgKCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Ft
ZGdwdV9kbS9hbWRncHVfZG1fdHJhY2UuaCIpLCAiaSIgKDM0KSwgImkiICgoMSA8PCAwKXwoKDEg
PDwgMSkgfCAoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0g
d2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNj
YXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQi
IDogOiAiaSIgKDQ0KSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3Jl
dF93YXJuX29uKSwgMCk7IH0pOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OyBpZiAoMCkgeyBfX2lkeCA9IHNyY3VfcmVhZF9sb2NrX25vdHJhY2UoJnRyYWNlcG9pbnRfc3Jj
dSk7IHJjdV9pcnFfZW50ZXJfaXJxc29uKCk7IH0gaXRfZnVuY19wdHIgPSAoeyB0eXBlb2YoKCZf
X3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcpLT5mdW5jcykgX19fX19fX19wMSA9ICh7IHVuaW9u
IHsgdHlwZW9mKCgmX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnKS0+ZnVuY3MpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKCZfX3RyYWNlcG9p
bnRfYW1kZ3B1X2RjX3JyZWcpLT5mdW5jcyksIF9fdS5fX2MsIHNpemVvZigoJl9fdHJhY2Vwb2lu
dF9hbWRncHVfZGNfcnJlZyktPmZ1bmNzKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNr
KCYoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcpLT5mdW5jcyksIF9fdS5fX2MsIHNpemVv
ZigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJlZyktPmZ1bmNzKSk7IGRvIHsgfSB3aGlsZSAo
MCk7IF9fdS5fX3ZhbDsgfSk7ICgodHlwZW9mKCooJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJl
ZyktPmZ1bmNzKSAqKShfX19fX19fX3AxKSk7IH0pOyBpZiAoaXRfZnVuY19wdHIpIHsgZG8geyBp
dF9mdW5jID0gKGl0X2Z1bmNfcHRyKS0+ZnVuYzsgX19kYXRhID0gKGl0X2Z1bmNfcHRyKS0+ZGF0
YTsgKCh2b2lkKCopKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqcmVhZF9jb3VudCwgdWlu
dDMyX3QgcmVnLCB1aW50MzJfdCB2YWx1ZSkpKGl0X2Z1bmMpKShfX2RhdGEsIHJlYWRfY291bnQs
IHJlZywgdmFsdWUpOyB9IHdoaWxlICgoKytpdF9mdW5jX3B0ciktPmZ1bmMpOyB9IGlmICgwKSB7
IHJjdV9pcnFfZXhpdF9pcnFzb24oKTsgc3JjdV9yZWFkX3VubG9ja19ub3RyYWNlKCZ0cmFjZXBv
aW50X3NyY3UsIF9faWR4KTsgfSBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OyB9IHdoaWxlICgwKTsgaWYgKDAgJiYgKGNwdW1hc2tfdGVzdF9jcHUoKCh7IHR5cGVvZihjcHVf
bnVtYmVyKSBwc2NyX3JldF9fOyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBl
b2YoKCYoY3B1X251bWJlcikpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsg
fSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBwc2NyX3Jl
dF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1
X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAi
JSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFr
OyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUw
IiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDog
YXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRp
bGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDI6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2Yo
Y3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNl
IDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9
cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZv
bGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3Jl
dF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJt
b3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0i
IChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIl
JSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1i
ZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9
KTsgYnJlYWs7IGNhc2UgNDogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9f
cmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxl
ICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6
ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3
ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVf
bnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3Mi
IjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsg
YnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIx
IiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVm
YXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2FzZSA4
OiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChz
aXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUi
ImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVy
KSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIl
IiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7
IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAi
IDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBh
c20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChw
Zm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJj
cHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Nh
bGxfcGFyYW1ldGVyKCk7IGJyZWFrOyB9IHBzY3JfcmV0X187IH0pKSwgKChjb25zdCBzdHJ1Y3Qg
Y3B1bWFzayAqKSZfX2NwdV9vbmxpbmVfbWFzaykpKSkgeyByY3VfcmVhZF9sb2NrX3NjaGVkX25v
dHJhY2UoKTsgKHsgdHlwZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSkg
Kl9fX19fX19fcDEgPSAodHlwZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNz
KSkgKikoeyB1bmlvbiB7IHR5cGVvZigoX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNz
KSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJigo
X190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190
cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVf
bm9jaGVjaygmKChfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcuZnVuY3MpKSwgX191Ll9fYywg
c2l6ZW9mKChfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcuZnVuY3MpKSk7IGRvIHsgfSB3aGls
ZSAoMCk7IF9fdS5fX3ZhbDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihfX3Ry
YWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcuZnVuY3MpKSAqKShfX19fX19fX3AxKSk7IH0pOyByY3Vf
cmVhZF91bmxvY2tfc2NoZWRfbm90cmFjZSgpOyB9IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX2FtZGdw
dV9kY19ycmVnKHZvaWQgKCpwcm9iZSkodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nICpyZWFk
X2NvdW50LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSwgdm9pZCAqZGF0YSkgeyByZXR1
cm4gdHJhY2Vwb2ludF9wcm9iZV9yZWdpc3RlcigmX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVn
LCAodm9pZCAqKXByb2JlLCBkYXRhKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmVnaXN0ZXJfdHJhY2VfcHJpb19hbWRncHVf
ZGNfcnJlZyh2b2lkICgqcHJvYmUpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqcmVhZF9j
b3VudCwgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWx1ZSksIHZvaWQgKmRhdGEsIGludCBwcmlv
KSB7IHJldHVybiB0cmFjZXBvaW50X3Byb2JlX3JlZ2lzdGVyX3ByaW8oJl9fdHJhY2Vwb2ludF9h
bWRncHVfZGNfcnJlZywgKHZvaWQgKilwcm9iZSwgZGF0YSwgcHJpbyk7IH0gc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVucmVnaXN0
ZXJfdHJhY2VfYW1kZ3B1X2RjX3JyZWcodm9pZCAoKnByb2JlKSh2b2lkICpfX2RhdGEsIHVuc2ln
bmVkIGxvbmcgKnJlYWRfY291bnQsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsdWUpLCB2b2lk
ICpkYXRhKSB7IHJldHVybiB0cmFjZXBvaW50X3Byb2JlX3VucmVnaXN0ZXIoJl9fdHJhY2Vwb2lu
dF9hbWRncHVfZGNfcnJlZywgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja190cmFj
ZV9jYWxsYmFja190eXBlX2FtZGdwdV9kY19ycmVnKHZvaWQgKCpjYikodm9pZCAqX19kYXRhLCB1
bnNpZ25lZCBsb25nICpyZWFkX2NvdW50LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSkg
eyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgdHJhY2VfYW1kZ3B1X2RjX3JyZWdfZW5hYmxlZCh2b2lkKSB7IHJldHVybiBzdGF0
aWNfa2V5X2ZhbHNlKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcua2V5KTsgfQoxNDQ3NDog
IyA0OSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2FtZGdwdV9kbS9h
bWRncHVfZG1fdHJhY2UuaCIKMTQ0NzQ6ICA7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
dHJhY2Vwb2ludCBfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWc7IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdHJhY2VfYW1kZ3B1
X2RjX3dyZWcodW5zaWduZWQgbG9uZyAqd3JpdGVfY291bnQsIHVpbnQzMl90IHJlZywgdWludDMy
X3QgdmFsdWUpIHsgaWYgKHN0YXRpY19rZXlfZmFsc2UoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNf
d3JlZy5rZXkpKSBkbyB7IHN0cnVjdCB0cmFjZXBvaW50X2Z1bmMgKml0X2Z1bmNfcHRyOyB2b2lk
ICppdF9mdW5jOyB2b2lkICpfX2RhdGE7IGludCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19pZHggPSAwOyBpZiAoIShjcHVtYXNrX3Rlc3RfY3B1KCgoeyB0eXBlb2YoY3B1X251bWJlcikg
cHNjcl9yZXRfXzsgZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKGNw
dV9udW1iZXIpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUg
KDApOyBzd2l0Y2goc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogcHNjcl9yZXRfXyA9ICh7
IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIp
KSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIs
JTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAy
OiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xh
dGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRf
XykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92
IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAo
Y3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9f
cmV0X187IH0pOyBicmVhazsgY2FzZSAyOiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1i
ZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20g
dm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9f
cmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAo
Im1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAi
bSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAi
IiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251
bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6
IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFr
OyBjYXNlIDQ6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBz
d2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
ImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNw
dV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikp
OyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIg
IjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBj
YXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6
ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
YmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgODogcHNjcl9y
ZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNw
dV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIg
IiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVh
azsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwl
MCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6
IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIg
KHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0
aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9f
KSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUo
KTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3BhcmFt
ZXRlcigpOyBicmVhazsgfSBwc2NyX3JldF9fOyB9KSksICgoY29uc3Qgc3RydWN0IGNwdW1hc2sg
KikmX19jcHVfb25saW5lX21hc2spKSkpIHJldHVybjsgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAh
ISgwICYmIChwcmVlbXB0X2NvdW50KCkgJiAoKCgxVUwgPDwgKDEpKS0xKSA8PCAoKCgwICsgOCkg
KyA4KSArIDQpKSkpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkp
IGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBi
IiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcg
IiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIg
IiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMg
YnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4i
ICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90cmFjZS5oIiksICJp
IiAoNTEpLCAiaSIgKCgxIDw8IDApfCgoMSA8PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXpl
b2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMw
OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIg
LSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoNDUpKTsgfSk7IH0gd2hpbGUgKDAp
OyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7IF9fYXNtX18gX192
b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7IGlmICgwKSB7IF9faWR4ID0gc3JjdV9yZWFkX2xv
Y2tfbm90cmFjZSgmdHJhY2Vwb2ludF9zcmN1KTsgcmN1X2lycV9lbnRlcl9pcnFzb24oKTsgfSBp
dF9mdW5jX3B0ciA9ICh7IHR5cGVvZigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZyktPmZ1
bmNzKSBfX19fX19fX3AxID0gKHsgdW5pb24geyB0eXBlb2YoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1
X2RjX3dyZWcpLT5mdW5jcykgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVh
ZF9vbmNlX3NpemUoJigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZyktPmZ1bmNzKSwgX191
Ll9fYywgc2l6ZW9mKCgmX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnKS0+ZnVuY3MpKTsgZWxz
ZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3Jl
ZyktPmZ1bmNzKSwgX191Ll9fYywgc2l6ZW9mKCgmX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVn
KS0+ZnVuY3MpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgKCh0eXBlb2YoKigm
X190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnKS0+ZnVuY3MpICopKF9fX19fX19fcDEpKTsgfSk7
IGlmIChpdF9mdW5jX3B0cikgeyBkbyB7IGl0X2Z1bmMgPSAoaXRfZnVuY19wdHIpLT5mdW5jOyBf
X2RhdGEgPSAoaXRfZnVuY19wdHIpLT5kYXRhOyAoKHZvaWQoKikodm9pZCAqX19kYXRhLCB1bnNp
Z25lZCBsb25nICp3cml0ZV9jb3VudCwgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWx1ZSkpKGl0
X2Z1bmMpKShfX2RhdGEsIHdyaXRlX2NvdW50LCByZWcsIHZhbHVlKTsgfSB3aGlsZSAoKCsraXRf
ZnVuY19wdHIpLT5mdW5jKTsgfSBpZiAoMCkgeyByY3VfaXJxX2V4aXRfaXJxc29uKCk7IHNyY3Vf
cmVhZF91bmxvY2tfbm90cmFjZSgmdHJhY2Vwb2ludF9zcmN1LCBfX2lkeCk7IH0gX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgfSB3aGlsZSAoMCk7IGlmICgwICYmIChjcHVt
YXNrX3Rlc3RfY3B1KCgoeyB0eXBlb2YoY3B1X251bWJlcikgcHNjcl9yZXRfXzsgZG8geyBjb25z
dCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKGNwdV9udW1iZXIpKSArIDApKSgodm9p
ZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyBzd2l0Y2goc2l6ZW9mKGNw
dV9udW1iZXIpKSB7IGNhc2UgMTogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBw
Zm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0
aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9f
KSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3Yi
ICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChj
cHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIi
Z3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIp
KTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2Fz
ZSAyOiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNo
IChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoi
ICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJl
YWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIs
JTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4
OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDQ6IHBzY3JfcmV0X18g
PSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVt
YmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAi
MSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNh
c2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDog
Ij1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20g
dm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9f
cmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAo
Im1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAi
bSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0g
cGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgODogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVf
bnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTog
YXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRp
bGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
ImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNw
dV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikp
OyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBi
cmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3BhcmFtZXRlcigpOyBicmVhazsgfSBwc2Ny
X3JldF9fOyB9KSksICgoY29uc3Qgc3RydWN0IGNwdW1hc2sgKikmX19jcHVfb25saW5lX21hc2sp
KSkpIHsgcmN1X3JlYWRfbG9ja19zY2hlZF9ub3RyYWNlKCk7ICh7IHR5cGVvZigqKF9fdHJhY2Vw
b2ludF9hbWRncHVfZGNfd3JlZy5mdW5jcykpICpfX19fX19fX3AxID0gKHR5cGVvZigqKF9fdHJh
Y2Vwb2ludF9hbWRncHVfZGNfd3JlZy5mdW5jcykpICopKHsgdW5pb24geyB0eXBlb2YoKF9fdHJh
Y2Vwb2ludF9hbWRncHVfZGNfd3JlZy5mdW5jcykpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7
IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZy5m
dW5jcykpLCBfX3UuX19jLCBzaXplb2YoKF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZy5mdW5j
cykpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigoX190cmFjZXBvaW50X2FtZGdw
dV9kY193cmVnLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190cmFjZXBvaW50X2FtZGdwdV9k
Y193cmVnLmZ1bmNzKSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOyBkbyB7IH0g
d2hpbGUgKDApOyA7ICgodHlwZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnLmZ1bmNz
KSkgKikoX19fX19fX19wMSkpOyB9KTsgcmN1X3JlYWRfdW5sb2NrX3NjaGVkX25vdHJhY2UoKTsg
fSB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludCByZWdpc3Rlcl90cmFjZV9hbWRncHVfZGNfd3JlZyh2b2lkICgqcHJvYmUpKHZvaWQg
Kl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqd3JpdGVfY291bnQsIHVpbnQzMl90IHJlZywgdWludDMy
X3QgdmFsdWUpLCB2b2lkICpkYXRhKSB7IHJldHVybiB0cmFjZXBvaW50X3Byb2JlX3JlZ2lzdGVy
KCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWcsICh2b2lkICopcHJvYmUsIGRhdGEpOyB9IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCByZWdpc3Rlcl90cmFjZV9wcmlvX2FtZGdwdV9kY193cmVnKHZvaWQgKCpwcm9iZSkodm9pZCAq
X19kYXRhLCB1bnNpZ25lZCBsb25nICp3cml0ZV9jb3VudCwgdWludDMyX3QgcmVnLCB1aW50MzJf
dCB2YWx1ZSksIHZvaWQgKmRhdGEsIGludCBwcmlvKSB7IHJldHVybiB0cmFjZXBvaW50X3Byb2Jl
X3JlZ2lzdGVyX3ByaW8oJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZywgKHZvaWQgKilwcm9i
ZSwgZGF0YSwgcHJpbyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVucmVnaXN0ZXJfdHJhY2VfYW1kZ3B1X2RjX3dyZWcodm9p
ZCAoKnByb2JlKSh2b2lkICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgKndyaXRlX2NvdW50LCB1aW50
MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSwgdm9pZCAqZGF0YSkgeyByZXR1cm4gdHJhY2Vwb2lu
dF9wcm9iZV91bnJlZ2lzdGVyKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWcsICh2b2lkICop
cHJvYmUsIGRhdGEpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgY2hlY2tfdHJhY2VfY2FsbGJhY2tfdHlwZV9hbWRncHVfZGNf
d3JlZyh2b2lkICgqY2IpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqd3JpdGVfY291bnQs
IHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsdWUpKSB7IH0gc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0cmFjZV9hbWRncHVfZGNf
d3JlZ19lbmFibGVkKHZvaWQpIHsgcmV0dXJuIHN0YXRpY19rZXlfZmFsc2UoJl9fdHJhY2Vwb2lu
dF9hbWRncHVfZGNfd3JlZy5rZXkpOyB9CjE0NDc0OiAjIDY2ICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90cmFjZS5oIgoxNDQ3NDog
IDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHRyYWNlcG9pbnQgX190cmFj
ZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZTsgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0cmFjZV9hbWRncHVfZGNfcGVyZm9y
bWFuY2UodW5zaWduZWQgbG9uZyByZWFkX2NvdW50LCB1bnNpZ25lZCBsb25nIHdyaXRlX2NvdW50
LCB1bnNpZ25lZCBsb25nICpsYXN0X3JlYWQsIHVuc2lnbmVkIGxvbmcgKmxhc3Rfd3JpdGUsIGNv
bnN0IGNoYXIgKmZ1bmMsIHVuc2lnbmVkIGludCBsaW5lKSB7IGlmIChzdGF0aWNfa2V5X2ZhbHNl
KCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlLmtleSkpIGRvIHsgc3RydWN0IHRy
YWNlcG9pbnRfZnVuYyAqaXRfZnVuY19wdHI7IHZvaWQgKml0X2Z1bmM7IHZvaWQgKl9fZGF0YTsg
aW50IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2lkeCA9IDA7IGlmICghKGNwdW1hc2tf
dGVzdF9jcHUoKCh7IHR5cGVvZihjcHVfbnVtYmVyKSBwc2NyX3JldF9fOyBkbyB7IGNvbnN0IHZv
aWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X251bWJlcikpICsgMCkpKCh2b2lkICop
MCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoY3B1X251
bWJlcikpIHsgY2FzZSAxOiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19y
ZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUg
KCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDog
Im0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncg
IiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9u
dW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIi
OiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBi
cmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEi
IiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZh
dWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDI6
IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNp
emVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIi
Z3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIp
KTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsg
Y2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIg
OiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFz
bSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBm
b19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNw
dV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgNDogcHNjcl9yZXRfXyA9ICh7
IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIp
KSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIs
JTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAy
OiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xh
dGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRf
XykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92
IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAo
Y3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9f
cmV0X187IH0pOyBicmVhazsgY2FzZSA4OiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1i
ZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20g
dm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9f
cmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAo
Im1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAi
bSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAi
IiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251
bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6
IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFr
OyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7IGJyZWFrOyB9IHBzY3JfcmV0
X187IH0pKSwgKChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqKSZfX2NwdV9vbmxpbmVfbWFzaykpKSkg
cmV0dXJuOyAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKDAgJiYgKHByZWVtcHRfY291bnQoKSAm
ICgoKDFVTCA8PCAoMSkpLTEpIDw8ICgoKDAgKyA4KSArIDgpICsgNCkpKSk7IGlmIChfX2J1aWx0
aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2
b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1
Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19l
bnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2Vu
dHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0Lndv
cmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3Bz
ZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9h
bWRncHVfZG0vYW1kZ3B1X2RtX3RyYWNlLmgiKSwgImkiICg2OSksICJpIiAoKDEgPDwgMCl8KCgx
IDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9
IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlz
Y2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0
IiA6IDogImkiICg0NikpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19y
ZXRfd2Fybl9vbiksIDApOyB9KTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnki
KTsgaWYgKDApIHsgX19pZHggPSBzcmN1X3JlYWRfbG9ja19ub3RyYWNlKCZ0cmFjZXBvaW50X3Ny
Y3UpOyByY3VfaXJxX2VudGVyX2lycXNvbigpOyB9IGl0X2Z1bmNfcHRyID0gKHsgdHlwZW9mKCgm
X190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZSktPmZ1bmNzKSBfX19fX19fX3AxID0g
KHsgdW5pb24geyB0eXBlb2YoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+
ZnVuY3MpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXpl
KCYoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpLCBfX3UuX19j
LCBzaXplb2YoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpKTsg
ZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNf
cGVyZm9ybWFuY2UpLT5mdW5jcyksIF9fdS5fX2MsIHNpemVvZigoJl9fdHJhY2Vwb2ludF9hbWRn
cHVfZGNfcGVyZm9ybWFuY2UpLT5mdW5jcykpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7
IH0pOyAoKHR5cGVvZigqKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVu
Y3MpICopKF9fX19fX19fcDEpKTsgfSk7IGlmIChpdF9mdW5jX3B0cikgeyBkbyB7IGl0X2Z1bmMg
PSAoaXRfZnVuY19wdHIpLT5mdW5jOyBfX2RhdGEgPSAoaXRfZnVuY19wdHIpLT5kYXRhOyAoKHZv
aWQoKikodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nIHJlYWRfY291bnQsIHVuc2lnbmVkIGxv
bmcgd3JpdGVfY291bnQsIHVuc2lnbmVkIGxvbmcgKmxhc3RfcmVhZCwgdW5zaWduZWQgbG9uZyAq
bGFzdF93cml0ZSwgY29uc3QgY2hhciAqZnVuYywgdW5zaWduZWQgaW50IGxpbmUpKShpdF9mdW5j
KSkoX19kYXRhLCByZWFkX2NvdW50LCB3cml0ZV9jb3VudCwgbGFzdF9yZWFkLCBsYXN0X3dyaXRl
LCBmdW5jLCBsaW5lKTsgfSB3aGlsZSAoKCsraXRfZnVuY19wdHIpLT5mdW5jKTsgfSBpZiAoMCkg
eyByY3VfaXJxX2V4aXRfaXJxc29uKCk7IHNyY3VfcmVhZF91bmxvY2tfbm90cmFjZSgmdHJhY2Vw
b2ludF9zcmN1LCBfX2lkeCk7IH0gX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnki
KTsgfSB3aGlsZSAoMCk7IGlmICgwICYmIChjcHVtYXNrX3Rlc3RfY3B1KCgoeyB0eXBlb2YoY3B1
X251bWJlcikgcHNjcl9yZXRfXzsgZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlw
ZW9mKCgmKGNwdV9udW1iZXIpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7
IH0gd2hpbGUgKDApOyBzd2l0Y2goc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogcHNjcl9y
ZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNw
dV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIg
IiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVh
azsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwl
MCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6
IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIg
KHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0
aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9f
KSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUo
KTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2FzZSAyOiBwc2NyX3JldF9fID0gKHsgdHlwZW9m
KGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2Fz
ZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2
b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19y
ZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgi
bW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJt
IiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsg
fSk7IGJyZWFrOyBjYXNlIDQ6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZv
X3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGls
ZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykg
OiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAi
dyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1
X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdz
IiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7
IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAi
MSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2Ug
ODogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAo
c2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUl
IiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJl
cikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAi
JSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFr
OyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUw
IiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODog
YXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVy
Y3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9j
YWxsX3BhcmFtZXRlcigpOyBicmVhazsgfSBwc2NyX3JldF9fOyB9KSksICgoY29uc3Qgc3RydWN0
IGNwdW1hc2sgKikmX19jcHVfb25saW5lX21hc2spKSkpIHsgcmN1X3JlYWRfbG9ja19zY2hlZF9u
b3RyYWNlKCk7ICh7IHR5cGVvZigqKF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2Uu
ZnVuY3MpKSAqX19fX19fX19wMSA9ICh0eXBlb2YoKihfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3Bl
cmZvcm1hbmNlLmZ1bmNzKSkgKikoeyB1bmlvbiB7IHR5cGVvZigoX190cmFjZXBvaW50X2FtZGdw
dV9kY19wZXJmb3JtYW5jZS5mdW5jcykpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgx
KSBfX3JlYWRfb25jZV9zaXplKCYoKF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2Uu
ZnVuY3MpKSwgX191Ll9fYywgc2l6ZW9mKChfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1h
bmNlLmZ1bmNzKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChfX3RyYWNlcG9p
bnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190cmFj
ZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZS5mdW5jcykpKTsgZG8geyB9IHdoaWxlICgwKTsg
X191Ll9fdmFsOyB9KTsgZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigqKF9fdHJhY2Vwb2lu
dF9hbWRncHVfZGNfcGVyZm9ybWFuY2UuZnVuY3MpKSAqKShfX19fX19fX3AxKSk7IH0pOyByY3Vf
cmVhZF91bmxvY2tfc2NoZWRfbm90cmFjZSgpOyB9IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX2FtZGdw
dV9kY19wZXJmb3JtYW5jZSh2b2lkICgqcHJvYmUpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9u
ZyByZWFkX2NvdW50LCB1bnNpZ25lZCBsb25nIHdyaXRlX2NvdW50LCB1bnNpZ25lZCBsb25nICps
YXN0X3JlYWQsIHVuc2lnbmVkIGxvbmcgKmxhc3Rfd3JpdGUsIGNvbnN0IGNoYXIgKmZ1bmMsIHVu
c2lnbmVkIGludCBsaW5lKSwgdm9pZCAqZGF0YSkgeyByZXR1cm4gdHJhY2Vwb2ludF9wcm9iZV9y
ZWdpc3RlcigmX190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZSwgKHZvaWQgKilwcm9i
ZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX3ByaW9fYW1kZ3B1X2RjX3BlcmZvcm1hbmNl
KHZvaWQgKCpwcm9iZSkodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nIHJlYWRfY291bnQsIHVu
c2lnbmVkIGxvbmcgd3JpdGVfY291bnQsIHVuc2lnbmVkIGxvbmcgKmxhc3RfcmVhZCwgdW5zaWdu
ZWQgbG9uZyAqbGFzdF93cml0ZSwgY29uc3QgY2hhciAqZnVuYywgdW5zaWduZWQgaW50IGxpbmUp
LCB2b2lkICpkYXRhLCBpbnQgcHJpbykgeyByZXR1cm4gdHJhY2Vwb2ludF9wcm9iZV9yZWdpc3Rl
cl9wcmlvKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlLCAodm9pZCAqKXByb2Jl
LCBkYXRhLCBwcmlvKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgdW5yZWdpc3Rlcl90cmFjZV9hbWRncHVfZGNfcGVyZm9ybWFu
Y2Uodm9pZCAoKnByb2JlKSh2b2lkICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgcmVhZF9jb3VudCwg
dW5zaWduZWQgbG9uZyB3cml0ZV9jb3VudCwgdW5zaWduZWQgbG9uZyAqbGFzdF9yZWFkLCB1bnNp
Z25lZCBsb25nICpsYXN0X3dyaXRlLCBjb25zdCBjaGFyICpmdW5jLCB1bnNpZ25lZCBpbnQgbGlu
ZSksIHZvaWQgKmRhdGEpIHsgcmV0dXJuIHRyYWNlcG9pbnRfcHJvYmVfdW5yZWdpc3RlcigmX190
cmFjZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZSwgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0g
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBjaGVja190cmFjZV9jYWxsYmFja190eXBlX2FtZGdwdV9kY19wZXJmb3JtYW5jZSh2b2lk
ICgqY2IpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyByZWFkX2NvdW50LCB1bnNpZ25lZCBs
b25nIHdyaXRlX2NvdW50LCB1bnNpZ25lZCBsb25nICpsYXN0X3JlYWQsIHVuc2lnbmVkIGxvbmcg
Kmxhc3Rfd3JpdGUsIGNvbnN0IGNoYXIgKmZ1bmMsIHVuc2lnbmVkIGludCBsaW5lKSkgeyB9IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgdHJhY2VfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlX2VuYWJsZWQodm9pZCkgeyByZXR1cm4gc3Rh
dGljX2tleV9mYWxzZSgmX190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZS5rZXkpOyB9
CjE0NDc0OiAjIDk4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1k
Z3B1X2RtL2FtZGdwdV9kbV90cmFjZS5oIgoxNDQ3NDogIDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS90cmFjZS9kZWZpbmVfdHJh
Y2UuaCIgMQoxNDQ3NDogIyAxMDUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3RyYWNlLmgiIDIKMTQ0NzQ6ICMgMzUgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oIiAyCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvZG1fc2VydmljZXNfdHlwZXMuaCIgMQoxNDQ3NDogIyAzMiAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzX3R5cGVzLmgiCjE0NDc0
OiBzdHJ1Y3QgcHBfc211X2Z1bmNzOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZG1fcHBfY2xvY2tf
cmFuZ2UgewoxNDQ3NDogIGludCBtaW5fa2h6OwoxNDQ3NDogIGludCBtYXhfa2h6OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkbV9wcF9jbG9ja3Nfc3RhdGUgewoxNDQ3NDogIERNX1BQ
X0NMT0NLU19TVEFURV9JTlZBTElELAoxNDQ3NDogIERNX1BQX0NMT0NLU19TVEFURV9VTFRSQV9M
T1csCjE0NDc0OiAgRE1fUFBfQ0xPQ0tTX1NUQVRFX0xPVywKMTQ0NzQ6ICBETV9QUF9DTE9DS1Nf
U1RBVEVfTk9NSU5BTCwKMTQ0NzQ6ICBETV9QUF9DTE9DS1NfU1RBVEVfUEVSRk9STUFOQ0UsCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERNX1BQX0NMT0NLU19EUE1fU1RBVEVfTEVWRUxfSU5WQUxJ
RCA9IERNX1BQX0NMT0NLU19TVEFURV9JTlZBTElELAoxNDQ3NDogIERNX1BQX0NMT0NLU19EUE1f
U1RBVEVfTEVWRUxfMCwKMTQ0NzQ6ICBETV9QUF9DTE9DS1NfRFBNX1NUQVRFX0xFVkVMXzEsCjE0
NDc0OiAgRE1fUFBfQ0xPQ0tTX0RQTV9TVEFURV9MRVZFTF8yLAoxNDQ3NDogCjE0NDc0OiAgRE1f
UFBfQ0xPQ0tTX0RQTV9TVEFURV9MRVZFTF8zLAoxNDQ3NDogIERNX1BQX0NMT0NLU19EUE1fU1RB
VEVfTEVWRUxfNCwKMTQ0NzQ6ICBETV9QUF9DTE9DS1NfRFBNX1NUQVRFX0xFVkVMXzUsCjE0NDc0
OiAgRE1fUFBfQ0xPQ0tTX0RQTV9TVEFURV9MRVZFTF82LAoxNDQ3NDogIERNX1BQX0NMT0NLU19E
UE1fU1RBVEVfTEVWRUxfNywKMTQ0NzQ6IAoxNDQ3NDogIERNX1BQX0NMT0NLU19NQVhfU1RBVEVT
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZG1fcHBfZ3B1X2Nsb2NrX3JhbmdlIHsK
MTQ0NzQ6ICBlbnVtIGRtX3BwX2Nsb2Nrc19zdGF0ZSBjbG9ja19zdGF0ZTsKMTQ0NzQ6ICBzdHJ1
Y3QgZG1fcHBfY2xvY2tfcmFuZ2Ugc2NsazsKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFu
Z2UgbWNsazsKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2UgZWNsazsKMTQ0NzQ6ICBz
dHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2UgZGNsazsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gZG1fcHBfY2xvY2tfdHlwZSB7CjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQRV9ESVNQTEFZX0NM
SyA9IDEsCjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQRV9FTkdJTkVfQ0xLLAoxNDQ3NDogIERNX1BQ
X0NMT0NLX1RZUEVfTUVNT1JZX0NMSywKMTQ0NzQ6ICBETV9QUF9DTE9DS19UWVBFX0RDRkNMSywK
MTQ0NzQ6ICBETV9QUF9DTE9DS19UWVBFX0RDRUZDTEssCjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQ
RV9TT0NDTEssCjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQRV9QSVhFTENMSywKMTQ0NzQ6ICBETV9Q
UF9DTE9DS19UWVBFX0RJU1BMQVlQSFlDTEssCjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQRV9EUFBD
TEssCjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQRV9GQ0xLLAoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTcg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlc190
eXBlcy5oIgoxNDQ3NDogc3RydWN0IGRtX3BwX2Nsb2NrX2xldmVscyB7CjE0NDc0OiAgdWludDMy
X3QgbnVtX2xldmVsczsKMTQ0NzQ6ICB1aW50MzJfdCBjbG9ja3NfaW5fa2h6WzE2XTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkbV9wcF9jbG9ja193aXRoX2xhdGVuY3kgewoxNDQ3
NDogIHVpbnQzMl90IGNsb2Nrc19pbl9raHo7CjE0NDc0OiAgdWludDMyX3QgbGF0ZW5jeV9pbl91
czsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkbV9wcF9jbG9ja19sZXZlbHNfd2l0
aF9sYXRlbmN5IHsKMTQ0NzQ6ICB1aW50MzJfdCBudW1fbGV2ZWxzOwoxNDQ3NDogIHN0cnVjdCBk
bV9wcF9jbG9ja193aXRoX2xhdGVuY3kgZGF0YVsxNl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZG1fcHBfY2xvY2tfd2l0aF92b2x0YWdlIHsKMTQ0NzQ6ICB1aW50MzJfdCBjbG9j
a3NfaW5fa2h6OwoxNDQ3NDogIHVpbnQzMl90IHZvbHRhZ2VfaW5fbXY7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzX3dpdGhfdm9sdGFnZSB7CjE0NDc0
OiAgdWludDMyX3QgbnVtX2xldmVsczsKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfd2l0aF92
b2x0YWdlIGRhdGFbMTZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRtX3BwX3Np
bmdsZV9kaXNwX2NvbmZpZyB7CjE0NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaWduYWw7CjE0NDc0
OiAgdWludDhfdCB0cmFuc21pdHRlcjsKMTQ0NzQ6ICB1aW50OF90IGRkaV9jaGFubmVsX21hcHBp
bmc7CjE0NDc0OiAgdWludDhfdCBwaXBlX2lkeDsKMTQ0NzQ6ICB1aW50MzJfdCBzcmNfaGVpZ2h0
OwoxNDQ3NDogIHVpbnQzMl90IHNyY193aWR0aDsKMTQ0NzQ6ICB1aW50MzJfdCB2X3JlZnJlc2g7
CjE0NDc0OiAgdWludDMyX3Qgc3ltX2Nsb2NrOwoxNDQ3NDogIHN0cnVjdCBkY19saW5rX3NldHRp
bmdzIGxpbmtfc2V0dGluZ3M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogZW51bSBkbV9wcF93bV9zZXRfaWQgewoxNDQ3NDogIFdNX1NFVF9BID0gMCwKMTQ0NzQ6ICBX
TV9TRVRfQiwKMTQ0NzQ6ICBXTV9TRVRfQywKMTQ0NzQ6ICBXTV9TRVRfRCwKMTQ0NzQ6ICBXTV9T
RVRfSU5WQUxJRCA9IDB4ZmZmZiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkbV9w
cF9jbG9ja19yYW5nZV9mb3Jfd21fc2V0IHsKMTQ0NzQ6ICBlbnVtIGRtX3BwX3dtX3NldF9pZCB3
bV9zZXRfaWQ7CjE0NDc0OiAgdWludDMyX3Qgd21fbWluX2VuZ19jbGtfaW5fa2h6OwoxNDQ3NDog
IHVpbnQzMl90IHdtX21heF9lbmdfY2xrX2luX2toejsKMTQ0NzQ6ICB1aW50MzJfdCB3bV9taW5f
bWVtX2Nsa19pbl9raHo7CjE0NDc0OiAgdWludDMyX3Qgd21fbWF4X21lbV9jbGtfaW5fa2h6Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRtX3BwX3dtX3NldHNfd2l0aF9jbG9ja19y
YW5nZXMgewoxNDQ3NDogIHVpbnQzMl90IG51bV93bV9zZXRzOwoxNDQ3NDogIHN0cnVjdCBkbV9w
cF9jbG9ja19yYW5nZV9mb3Jfd21fc2V0IHdtX2Nsa19yYW5nZXNbNF07CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2VfZm9yX2RtaWZfd21fc2V0X3NvYzE1
IHsKMTQ0NzQ6ICBlbnVtIGRtX3BwX3dtX3NldF9pZCB3bV9zZXRfaWQ7CjE0NDc0OiAgdWludDMy
X3Qgd21fbWluX2RjZmNsa19jbGtfaW5fa2h6OwoxNDQ3NDogIHVpbnQzMl90IHdtX21heF9kY2Zj
bGtfY2xrX2luX2toejsKMTQ0NzQ6ICB1aW50MzJfdCB3bV9taW5fbWVtX2Nsa19pbl9raHo7CjE0
NDc0OiAgdWludDMyX3Qgd21fbWF4X21lbV9jbGtfaW5fa2h6OwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlX2Zvcl9tY2lmX3dtX3NldF9zb2MxNSB7CjE0
NDc0OiAgZW51bSBkbV9wcF93bV9zZXRfaWQgd21fc2V0X2lkOwoxNDQ3NDogIHVpbnQzMl90IHdt
X21pbl9zb2NjbGtfY2xrX2luX2toejsKMTQ0NzQ6ICB1aW50MzJfdCB3bV9tYXhfc29jY2xrX2Ns
a19pbl9raHo7CjE0NDc0OiAgdWludDMyX3Qgd21fbWluX21lbV9jbGtfaW5fa2h6OwoxNDQ3NDog
IHVpbnQzMl90IHdtX21heF9tZW1fY2xrX2luX2toejsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkbV9wcF93bV9zZXRzX3dpdGhfY2xvY2tfcmFuZ2VzX3NvYzE1IHsKMTQ0NzQ6ICB1
aW50MzJfdCBudW1fd21fZG1pZl9zZXRzOwoxNDQ3NDogIHVpbnQzMl90IG51bV93bV9tY2lmX3Nl
dHM7CjE0NDc0OiAgc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlX2Zvcl9kbWlmX3dtX3NldF9zb2Mx
NQoxNDQ3NDogICB3bV9kbWlmX2Nsb2Nrc19yYW5nZXNbNF07CjE0NDc0OiAgc3RydWN0IGRtX3Bw
X2Nsb2NrX3JhbmdlX2Zvcl9tY2lmX3dtX3NldF9zb2MxNQoxNDQ3NDogICB3bV9tY2lmX2Nsb2Nr
c19yYW5nZXNbNF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGRtX3BwX2Rpc3BsYXlfY29uZmlndXJhdGlvbiB7CjE0NDc0OiAgYm9vbCBuYl9wc3RhdGVf
c3dpdGNoX2Rpc2FibGU7CjE0NDc0OiAgYm9vbCBjcHVfY2M2X2Rpc2FibGU7CjE0NDc0OiAgYm9v
bCBjcHVfcHN0YXRlX2Rpc2FibGU7CjE0NDc0OiAgdWludDMyX3QgY3B1X3BzdGF0ZV9zZXBhcmF0
aW9uX3RpbWU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBtaW5fbWVtb3J5X2Nsb2NrX2toejsK
MTQ0NzQ6ICB1aW50MzJfdCBtaW5fZW5naW5lX2Nsb2NrX2toejsKMTQ0NzQ6ICB1aW50MzJfdCBt
aW5fZW5naW5lX2Nsb2NrX2RlZXBfc2xlZXBfa2h6OwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3Qg
YXZhaWxfbWNsa19zd2l0Y2hfdGltZV91czsKMTQ0NzQ6ICB1aW50MzJfdCBhdmFpbF9tY2xrX3N3
aXRjaF90aW1lX2luX2Rpc3BfYWN0aXZlX3VzOwoxNDQ3NDogIHVpbnQzMl90IG1pbl9kY2ZjbG9j
a19raHo7CjE0NDc0OiAgdWludDMyX3QgbWluX2RjZmNfZGVlcF9zbGVlcF9jbG9ja19raHo7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBkaXNwX2Nsa19raHo7CjE0NDc0OiAKMTQ0NzQ6ICBib29s
IGFsbF9kaXNwbGF5c19pbl9zeW5jOwoxNDQ3NDogCjE0NDc0OiAgdWludDhfdCBkaXNwbGF5X2Nv
dW50OwoxNDQ3NDogIHN0cnVjdCBkbV9wcF9zaW5nbGVfZGlzcF9jb25maWcgZGlzcF9jb25maWdz
WzZdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQ4X3QgY3J0Y19pbmRleDsK
MTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGxpbmVfdGltZV9pbl91czsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBkbV9ibF9kYXRhX3BvaW50IHsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50
OF90IGx1bWluYW5jZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBz
aWduYWxfbGV2ZWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGRtX2FjcGlfYXRpZl9iYWNrbGlnaHRfY2FwcyB7CjE0NDc0OiAgdWludDE2X3Qgc2l6ZTsK
MTQ0NzQ6ICB1aW50MTZfdCBmbGFnczsKMTQ0NzQ6ICB1aW50OF90IGVycm9yX2NvZGU7CjE0NDc0
OiAgdWludDhfdCBhY19sZXZlbF9wZXJjZW50YWdlOwoxNDQ3NDogIHVpbnQ4X3QgZGNfbGV2ZWxf
cGVyY2VudGFnZTsKMTQ0NzQ6ICB1aW50OF90IG1pbl9pbnB1dF9zaWduYWw7CjE0NDc0OiAgdWlu
dDhfdCBtYXhfaW5wdXRfc2lnbmFsOwoxNDQ3NDogIHVpbnQ4X3QgbnVtX2RhdGFfcG9pbnRzOwox
NDQ3NDogIHN0cnVjdCBkbV9ibF9kYXRhX3BvaW50IGRhdGFfcG9pbnRzWzk5XTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZG1fYWNwaV9kaXNwbGF5X3R5cGUgewoxNDQ3NDogIEFjcGlE
aXNwbGF5VHlwZV9MQ0QxID0gMCwKMTQ0NzQ6ICBBY3BpRGlzcGxheVR5cGVfQ1JUMSA9IDEsCjE0
NDc0OiAgQWNwaURpc3BsYXlUeXBlX0RGUDEgPSAzLAoxNDQ3NDogIEFjcGlEaXNwbGF5VHlwZV9D
UlQyID0gNCwKMTQ0NzQ6ICBBY3BpRGlzcGxheVR5cGVfTENEMiA9IDUsCjE0NDc0OiAgQWNwaURp
c3BsYXlUeXBlX0RGUDIgPSA3LAoxNDQ3NDogIEFjcGlEaXNwbGF5VHlwZV9ERlAzID0gOSwKMTQ0
NzQ6ICBBY3BpRGlzcGxheVR5cGVfREZQNCA9IDEwLAoxNDQ3NDogIEFjcGlEaXNwbGF5VHlwZV9E
RlA1ID0gMTEsCjE0NDc0OiAgQWNwaURpc3BsYXlUeXBlX0RGUDYgPSAxMgoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGRtX3BwX3Bvd2VyX2xldmVsX2NoYW5nZV9yZXF1ZXN0IHsKMTQ0
NzQ6ICBlbnVtIGRtX3BwX2Nsb2Nrc19zdGF0ZSBwb3dlcl9sZXZlbDsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBkbV9wcF9jbG9ja19mb3Jfdm9sdGFnZV9yZXEgewoxNDQ3NDogIGVu
dW0gZG1fcHBfY2xvY2tfdHlwZSBjbGtfdHlwZTsKMTQ0NzQ6ICB1aW50MzJfdCBjbG9ja3NfaW5f
a2h6OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRtX3BwX3N0YXRpY19jbG9ja19p
bmZvIHsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfc2Nsa19raHo7CjE0NDc0OiAgdWludDMyX3QgbWF4
X21jbGtfa2h6OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRtX3BwX2Nsb2Nrc19zdGF0
ZSBtYXhfY2xvY2tzX3N0YXRlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGR0bl9t
aW5fY2xrX2luZm8gewoxNDQ3NDogIHVpbnQzMl90IGRpc3BfY2xrX2toejsKMTQ0NzQ6ICB1aW50
MzJfdCBtaW5fZW5naW5lX2Nsb2NrX2toejsKMTQ0NzQ6ICB1aW50MzJfdCBtaW5fbWVtb3J5X2Ns
b2NrX2toejsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9sb2dnZXJfaW50ZXJmYWNlLmgi
IDEKMTQ0NzQ6ICMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL2xvZ2dlcl9pbnRlcmZhY2UuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbG9nZ2VyX3R5cGVzLmgiIDEKMTQ0NzQ6ICMg
MzAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xvZ2dl
cl9pbnRlcmZhY2UuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY29udGV4dDsKMTQ0NzQ6
IHN0cnVjdCBkY19saW5rOwoxNDQ3NDogc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlOwoxNDQ3NDog
c3RydWN0IHJlc291cmNlX2NvbnRleHQ7CjE0NDc0OiBzdHJ1Y3QgZGNfc3RhdGU7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgZGNfY29ubl9sb2dfaGV4X2xpbnV4KGNvbnN0IHVpbnQ4X3QgKmhleF9kYXRhLCBpbnQgaGV4
X2RhdGFfY291bnQpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHByZV9zdXJmYWNlX3RyYWNlKAoxNDQ3
NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUg
KmNvbnN0ICpwbGFuZV9zdGF0ZXMsCjE0NDc0OiAgIGludCBzdXJmYWNlX2NvdW50KTsKMTQ0NzQ6
IAoxNDQ3NDogdm9pZCB1cGRhdGVfc3VyZmFjZV90cmFjZSgKMTQ0NzQ6ICAgc3RydWN0IGRjICpk
YywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlICp1cGRhdGVzLAoxNDQ3
NDogICBpbnQgc3VyZmFjZV9jb3VudCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgcG9zdF9zdXJmYWNl
X3RyYWNlKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGNvbnRleHRfdGltaW5n
X3RyYWNlKAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgcmVzb3VyY2Vf
Y29udGV4dCAqcmVzX2N0eCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgY29udGV4dF9jbG9ja190cmFj
ZSgKMTQ0NzQ6ICAgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0YXRlICpjb250
ZXh0KTsKMTQ0NzQ6ICMgMzkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kbV9zZXJ2aWNlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkbXViX3NydjsKMTQ0NzQ6IHN0cnVjdCBkY19kbXViX3NydjsKMTQ0NzQ6IAox
NDQ3NDogaXJxX2hhbmRsZXJfaWR4IGRtX3JlZ2lzdGVyX2ludGVycnVwdCgKMTQ0NzQ6ICBzdHJ1
Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogIHN0cnVjdCBkY19pbnRlcnJ1cHRfcGFyYW1zICpp
bnRfcGFyYW1zLAoxNDQ3NDogIGludGVycnVwdF9oYW5kbGVyIGloLAoxNDQ3NDogIHZvaWQgKmhh
bmRsZXJfYXJncyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHVpbnQzMl90IGRtX3JlYWRfcmVnX2Z1bmMoCjE0NDc0OiAgY29u
c3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICB1aW50MzJfdCBhZGRyZXNzLAoxNDQ3
NDogIGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSk7CjE0NDc0OiAjIDczICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZG1f
d3JpdGVfcmVnX2Z1bmMoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0
NzQ6ICB1aW50MzJfdCBhZGRyZXNzLAoxNDQ3NDogIHVpbnQzMl90IHZhbHVlLAoxNDQ3NDogIGNv
bnN0IGNoYXIgKmZ1bmNfbmFtZSkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAoKChzdHJ1Y3QgY2dzX2RldmljZSAqKWN0eC0+
Y2dzX2RldmljZSktPm9wcy0+d3JpdGVfcmVnaXN0ZXIoY3R4LT5jZ3NfZGV2aWNlLCBhZGRyZXNz
LHZhbHVlKSk7CjE0NDc0OiAgdHJhY2VfYW1kZ3B1X2RjX3dyZWcoJmN0eC0+cGVyZl90cmFjZS0+
d3JpdGVfY291bnQsIGFkZHJlc3MsIHZhbHVlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdWlu
dDMyX3QgZG1fcmVhZF9pbmRleF9yZWcoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRleHQg
KmN0eCwKMTQ0NzQ6ICBlbnVtIGNnc19pbmRfcmVnIGFkZHJfc3BhY2UsCjE0NDc0OiAgdWludDMy
X3QgaW5kZXgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoKHN0cnVjdCBjZ3NfZGV2aWNlICop
Y3R4LT5jZ3NfZGV2aWNlKS0+b3BzLT5yZWFkX2luZF9yZWdpc3RlcihjdHgtPmNnc19kZXZpY2Us
IGFkZHJfc3BhY2UsaW5kZXgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkbV93cml0
ZV9pbmRleF9yZWcoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6
ICBlbnVtIGNnc19pbmRfcmVnIGFkZHJfc3BhY2UsCjE0NDc0OiAgdWludDMyX3QgaW5kZXgsCjE0
NDc0OiAgdWludDMyX3QgdmFsdWUpCjE0NDc0OiB7CjE0NDc0OiAgKCgoc3RydWN0IGNnc19kZXZp
Y2UgKiljdHgtPmNnc19kZXZpY2UpLT5vcHMtPndyaXRlX2luZF9yZWdpc3RlcihjdHgtPmNnc19k
ZXZpY2UsIGFkZHJfc3BhY2UsaW5kZXgsdmFsdWUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dWludDMyX3QgZ2V0X3JlZ19maWVsZF92YWx1ZV9leCgKMTQ0NzQ6ICB1aW50MzJfdCByZWdfdmFs
dWUsCjE0NDc0OiAgdWludDMyX3QgbWFzaywKMTQ0NzQ6ICB1aW50OF90IHNoaWZ0KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAobWFzayAmIHJlZ192YWx1ZSkgPj4gc2hpZnQ7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHVpbnQzMl90IHNldF9yZWdfZmllbGRfdmFsdWVfZXgoCjE0NDc0OiAgdWludDMyX3QgcmVn
X3ZhbHVlLAoxNDQ3NDogIHVpbnQzMl90IHZhbHVlLAoxNDQ3NDogIHVpbnQzMl90IG1hc2ssCjE0
NDc0OiAgdWludDhfdCBzaGlmdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyBpbnQgX19yZXRfd2Fybl9v
biA9ICEhKCEobWFzayAhPSAwKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5f
b24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4
MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQi
ICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAi
LmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVj
MSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6
ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oIiksICJpIiAo
MTI2KSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVn
X2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNo
c2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBv
cHNlY3Rpb25cblx0IiA6IDogImkiICg0NykpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9l
eHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6ICByZXR1cm4gKHJlZ192YWx1
ZSAmIH5tYXNrKSB8IChtYXNrICYgKHZhbHVlIDw8IHNoaWZ0KSk7CjE0NDc0OiB9CjE0NDc0OiAj
IDEzNyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZp
Y2VzLmgiCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX3JlZ19zZXRfZXgoY29uc3Qgc3RydWN0IGRj
X2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgdWludDMyX3QgYWRkciwgdWludDMyX3QgcmVnX3ZhbCwg
aW50IG4sCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3Qg
ZmllbGRfdmFsdWUxLCAuLi4pOwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX3JlZ191
cGRhdGVfZXgoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgdWludDMyX3Qg
YWRkciwgaW50IG4sCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWlu
dDMyX3QgZmllbGRfdmFsdWUxLCAuLi4pOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfZG11Yl9z
cnYgKmRjX2RtdWJfc3J2X2NyZWF0ZShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZG11Yl9zcnYgKmRt
dWIpOwoxNDQ3NDogdm9pZCBkY19kbXViX3Nydl9kZXN0cm95KHN0cnVjdCBkY19kbXViX3NydiAq
KmRtdWJfc3J2KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCByZWdfc2VxdWVuY2Vfc3RhcnRfZ2F0aGVy
KGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgpOwoxNDQ3NDogdm9pZCByZWdfc2VxdWVuY2Vf
c3RhcnRfZXhlY3V0ZShjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsKMTQ0NzQ6IHZvaWQg
cmVnX3NlcXVlbmNlX3dhaXRfZG9uZShjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsKMTQ0
NzQ6ICMgMTU5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1f
c2VydmljZXMuaCIKMTQ0NzQ6IHZvaWQgZ2VuZXJpY19yZWdfd2FpdChjb25zdCBzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4LAoxNDQ3NDogIHVpbnQzMl90IGFkZHIsIHVpbnQzMl90IG1hc2ssIHVpbnQz
Ml90IHNoaWZ0LCB1aW50MzJfdCBjb25kaXRpb25fdmFsdWUsCjE0NDc0OiAgdW5zaWduZWQgaW50
IGRlbGF5X2JldHdlZW5fcG9sbF91cywgdW5zaWduZWQgaW50IHRpbWVfb3V0X251bV90cmllcywK
MTQ0NzQ6ICBjb25zdCBjaGFyICpmdW5jX25hbWUsIGludCBsaW5lKTsKMTQ0NzQ6IAoxNDQ3NDog
dW5zaWduZWQgaW50IHNucHJpbnRmX2NvdW50KGNoYXIgKnBCdWYsIHVuc2lnbmVkIGludCBidWZT
aXplLCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiAjIDIwOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgiCjE0NDc0OiBib29sIGRtX3BwX2dl
dF9jbG9ja19sZXZlbHNfYnlfdHlwZSgKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAq
Y3R4LAoxNDQ3NDogIGVudW0gZG1fcHBfY2xvY2tfdHlwZSBjbGtfdHlwZSwKMTQ0NzQ6ICBzdHJ1
Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzICpjbGtfbGV2ZWxfaW5mbyk7CjE0NDc0OiAKMTQ0NzQ6IGJv
b2wgZG1fcHBfZ2V0X2Nsb2NrX2xldmVsc19ieV90eXBlX3dpdGhfbGF0ZW5jeSgKMTQ0NzQ6ICBj
b25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogIGVudW0gZG1fcHBfY2xvY2tfdHlw
ZSBjbGtfdHlwZSwKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzX3dpdGhfbGF0ZW5j
eSAqY2xrX2xldmVsX2luZm8pOwoxNDQ3NDogCjE0NDc0OiBib29sIGRtX3BwX2dldF9jbG9ja19s
ZXZlbHNfYnlfdHlwZV93aXRoX3ZvbHRhZ2UoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eCwKMTQ0NzQ6ICBlbnVtIGRtX3BwX2Nsb2NrX3R5cGUgY2xrX3R5cGUsCjE0NDc0OiAg
c3RydWN0IGRtX3BwX2Nsb2NrX2xldmVsc193aXRoX3ZvbHRhZ2UgKmNsa19sZXZlbF9pbmZvKTsK
MTQ0NzQ6IAoxNDQ3NDogYm9vbCBkbV9wcF9ub3RpZnlfd21fY2xvY2tfY2hhbmdlcygKMTQ0NzQ6
ICBjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogIHN0cnVjdCBkbV9wcF93bV9z
ZXRzX3dpdGhfY2xvY2tfcmFuZ2VzICp3bV93aXRoX2Nsb2NrX3Jhbmdlcyk7CjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgZG1fcHBfZ2V0X2Z1bmNzKHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAg
IHN0cnVjdCBwcF9zbXVfZnVuY3MgKmZ1bmNzKTsKMTQ0NzQ6ICMgMjQxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIKMTQ0NzQ6IGJvb2wg
ZG1fcHBfYXBwbHlfZGlzcGxheV9yZXF1aXJlbWVudHMoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRj
X2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZG1fcHBfZGlzcGxheV9jb25maWd1
cmF0aW9uICpwcF9kaXNwbGF5X2NmZyk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZG1fcHBfYXBwbHlf
cG93ZXJfbGV2ZWxfY2hhbmdlX3JlcXVlc3QoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eCwKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfcG93ZXJfbGV2ZWxfY2hhbmdlX3JlcXVlc3Qg
KmxldmVsX2NoYW5nZV9yZXEpOwoxNDQ3NDogCjE0NDc0OiBib29sIGRtX3BwX2FwcGx5X2Nsb2Nr
X2Zvcl92b2x0YWdlX3JlcXVlc3QoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0
eCwKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfZm9yX3ZvbHRhZ2VfcmVxICpjbG9ja19mb3Jf
dm9sdGFnZV9yZXEpOwoxNDQ3NDogCjE0NDc0OiBib29sIGRtX3BwX2dldF9zdGF0aWNfY2xvY2tz
KAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAgc3RydWN0IGRt
X3BwX3N0YXRpY19jbG9ja19pbmZvICpzdGF0aWNfY2xrX2luZm8pOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBlcnNpc3RlbnRfZGF0YV9mbGFnIHsKMTQ0NzQ6ICBib29s
IHNhdmVfcGVyX2xpbms7CjE0NDc0OiAgYm9vbCBzYXZlX3Blcl9lZGlkOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgMjkxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1f
c2VydmljZXMuaCIKMTQ0NzQ6IGJvb2wgZG1fd3JpdGVfcGVyc2lzdGVudF9kYXRhKHN0cnVjdCBk
Y19jb250ZXh0ICpjdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19zaW5rICpzaW5rLAoxNDQ3
NDogICBjb25zdCBjaGFyICptb2R1bGVfbmFtZSwKMTQ0NzQ6ICAgY29uc3QgY2hhciAqa2V5X25h
bWUsCjE0NDc0OiAgIHZvaWQgKnBhcmFtcywKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHNpemUsCjE0
NDc0OiAgIHN0cnVjdCBwZXJzaXN0ZW50X2RhdGFfZmxhZyAqZmxhZyk7CjE0NDc0OiAjIDMyNSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgi
CjE0NDc0OiBib29sIGRtX3JlYWRfcGVyc2lzdGVudF9kYXRhKHN0cnVjdCBkY19jb250ZXh0ICpj
dHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19zaW5rICpzaW5rLAoxNDQ3NDogICBjb25zdCBj
aGFyICptb2R1bGVfbmFtZSwKMTQ0NzQ6ICAgY29uc3QgY2hhciAqa2V5X25hbWUsCjE0NDc0OiAg
IHZvaWQgKnBhcmFtcywKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHNpemUsCjE0NDc0OiAgIHN0cnVj
dCBwZXJzaXN0ZW50X2RhdGFfZmxhZyAqZmxhZyk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZG1fcXVl
cnlfZXh0ZW5kZWRfYnJpZ2h0bmVzc19jYXBzCjE0NDc0OiAgKHN0cnVjdCBkY19jb250ZXh0ICpj
dHgsIGVudW0gZG1fYWNwaV9kaXNwbGF5X3R5cGUgZGlzcGxheSwKMTQ0NzQ6ICAgIHN0cnVjdCBk
bV9hY3BpX2F0aWZfYmFja2xpZ2h0X2NhcHMgKnBDYXBzKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBk
bV9kbWN1X3NldF9waXBlKHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVuc2lnbmVkIGludCBjb250
cm9sbGVyX2lkKTsKMTQ0NzQ6ICMgMzQ3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgbG9uZyBkbV9n
ZXRfdGltZXN0YW1wKHN0cnVjdCBkY19jb250ZXh0ICpjdHgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGt0aW1lX2dldF9yYXdfbnMoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdW5zaWduZWQg
bG9uZyBsb25nIGRtX2dldF9lbGFwc2VfdGltZV9pbl9ucyhzdHJ1Y3QgZGNfY29udGV4dCAqY3R4
LAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudF90aW1lX3N0YW1wLAoxNDQ3NDog
ICB1bnNpZ25lZCBsb25nIGxvbmcgbGFzdF90aW1lX3N0YW1wKTsKMTQ0NzQ6ICMgMzcxICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIKMTQ0
NzQ6IHZvaWQgZG1fZHRuX2xvZ19iZWdpbihzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDog
IHN0cnVjdCBkY19sb2dfYnVmZmVyX2N0eCAqbG9nX2N0eCk7CjE0NDc0OiB2b2lkIGRtX2R0bl9s
b2dfYXBwZW5kX3Yoc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICBzdHJ1Y3QgZGNfbG9n
X2J1ZmZlcl9jdHggKmxvZ19jdHgsCjE0NDc0OiAgY29uc3QgY2hhciAqbXNnLCAuLi4pOwoxNDQ3
NDogdm9pZCBkbV9kdG5fbG9nX2VuZChzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogIHN0
cnVjdCBkY19sb2dfYnVmZmVyX2N0eCAqbG9nX2N0eCk7CjE0NDc0OiAjIDMxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5o
IiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL3NpZ25hbF90eXBlcy5oIiAxCjE0NDc0OiAjIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oIiAyCjE0NDc0
OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dy
cGhfb2JqZWN0X2N0cmxfZGVmcy5oIiAxCjE0NDc0OiAjIDMzICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oIiAyCjE0NDc0
OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dw
aW9fdHlwZXMuaCIgMQoxNDQ3NDogIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9saW5rX3NlcnZpY2Vf
dHlwZXMuaCIgMQoxNDQ3NDogIyAzNSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfdHlwZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gYXNfc2lnbmFsX3R5cGUgewoxNDQ3NDogIEFTX1NJR05BTF9UWVBFX05PTkUgPSAw
TCwKMTQ0NzQ6ICBBU19TSUdOQUxfVFlQRV9EVkksCjE0NDc0OiAgQVNfU0lHTkFMX1RZUEVfSERN
SSwKMTQ0NzQ6ICBBU19TSUdOQUxfVFlQRV9MVkRTLAoxNDQ3NDogIEFTX1NJR05BTF9UWVBFX0RJ
U1BMQVlfUE9SVCwKMTQ0NzQ6ICBBU19TSUdOQUxfVFlQRV9HUFVfUExMLAoxNDQ3NDogIEFTX1NJ
R05BTF9UWVBFX1hHTUksCjE0NDc0OiAgQVNfU0lHTkFMX1RZUEVfVU5LTk9XTgoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBicF9yZXN1bHQgewoxNDQ3NDogIEJQX1JFU1VMVF9PSyA9IDAs
CjE0NDc0OiAgQlBfUkVTVUxUX0JBRElOUFVULAoxNDQ3NDogIEJQX1JFU1VMVF9CQURCSU9TVEFC
TEUsCjE0NDc0OiAgQlBfUkVTVUxUX1VOU1VQUE9SVEVELAoxNDQ3NDogIEJQX1JFU1VMVF9OT1JF
Q09SRCwKMTQ0NzQ6ICBCUF9SRVNVTFRfRkFJTFVSRQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBicF9lbmNvZGVyX2NvbnRyb2xfYWN0aW9uIHsKMTQ0NzQ6IAoxNDQ3NDogIEVOQ09ERVJf
Q09OVFJPTF9ESVNBQkxFID0gMCwKMTQ0NzQ6ICBFTkNPREVSX0NPTlRST0xfRU5BQkxFLAoxNDQ3
NDogIEVOQ09ERVJfQ09OVFJPTF9TRVRVUCwKMTQ0NzQ6ICBFTkNPREVSX0NPTlRST0xfSU5JVAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBicF90cmFuc21pdHRlcl9jb250cm9sX2FjdGlv
biB7CjE0NDc0OiAKMTQ0NzQ6ICBUUkFOU01JVFRFUl9DT05UUk9MX0RJU0FCTEUgPSAwLAoxNDQ3
NDogIFRSQU5TTUlUVEVSX0NPTlRST0xfRU5BQkxFLAoxNDQ3NDogIFRSQU5TTUlUVEVSX0NPTlRS
T0xfQkFDS0xJR0hUX09GRiwKMTQ0NzQ6ICBUUkFOU01JVFRFUl9DT05UUk9MX0JBQ0tMSUdIVF9P
TiwKMTQ0NzQ6ICBUUkFOU01JVFRFUl9DT05UUk9MX0JBQ0tMSUdIVF9CUklHSFRORVNTLAoxNDQ3
NDogIFRSQU5TTUlUVEVSX0NPTlRST0xfTENEX1NFVEZfVEVTVF9TVEFSVCwKMTQ0NzQ6ICBUUkFO
U01JVFRFUl9DT05UUk9MX0xDRF9TRUxGX1RFU1RfU1RPUCwKMTQ0NzQ6ICBUUkFOU01JVFRFUl9D
T05UUk9MX0lOSVQsCjE0NDc0OiAgVFJBTlNNSVRURVJfQ09OVFJPTF9ERUFDVElWQVRFLAoxNDQ3
NDogIFRSQU5TTUlUVEVSX0NPTlRST0xfQUNUSUFWQVRFLAoxNDQ3NDogIFRSQU5TTUlUVEVSX0NP
TlRST0xfU0VUVVAsCjE0NDc0OiAgVFJBTlNNSVRURVJfQ09OVFJPTF9TRVRfVk9MVEFHRV9BTkRf
UFJFRU1QQVNJUywKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBUUkFOU01JVFRFUl9D
T05UUk9MX1BPV0VSX09OLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFRSQU5TTUlU
VEVSX0NPTlRST0xfUE9XRVJfT0ZGCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGJwX2V4
dGVybmFsX2VuY29kZXJfY29udHJvbF9hY3Rpb24gewoxNDQ3NDogIEVYVEVSTkFMX0VOQ09ERVJf
Q09OVFJPTF9ESVNBQkxFID0gMCwKMTQ0NzQ6ICBFWFRFUk5BTF9FTkNPREVSX0NPTlRST0xfRU5B
QkxFID0gMSwKMTQ0NzQ6ICBFWFRFUk5BTF9FTkNPREVSX0NPTlRST0xfSU5JVCA9IDB4NywKMTQ0
NzQ6ICBFWFRFUk5BTF9FTkNPREVSX0NPTlRST0xfU0VUVVAgPSAweGYsCjE0NDc0OiAgRVhURVJO
QUxfRU5DT0RFUl9DT05UUk9MX1VOQkxBTksgPSAweDEwLAoxNDQ3NDogIEVYVEVSTkFMX0VOQ09E
RVJfQ09OVFJPTF9CTEFOSyA9IDB4MTEsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGJw
X3BpcGVfY29udHJvbF9hY3Rpb24gewoxNDQ3NDogIEFTSUNfUElQRV9ESVNBQkxFID0gMCwKMTQ0
NzQ6ICBBU0lDX1BJUEVfRU5BQkxFLAoxNDQ3NDogIEFTSUNfUElQRV9JTklUCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnBfZW5jb2Rlcl9jb250cm9sIHsKMTQ0NzQ6ICBlbnVtIGJw
X2VuY29kZXJfY29udHJvbF9hY3Rpb24gYWN0aW9uOwoxNDQ3NDogIGVudW0gZW5naW5lX2lkIGVu
Z2luZV9pZDsKMTQ0NzQ6ICBlbnVtIHRyYW5zbWl0dGVyIHRyYW5zbWl0dGVyOwoxNDQ3NDogIGVu
dW0gc2lnbmFsX3R5cGUgc2lnbmFsOwoxNDQ3NDogIGVudW0gZGNfbGFuZV9jb3VudCBsYW5lc19u
dW1iZXI7CjE0NDc0OiAgZW51bSBkY19jb2xvcl9kZXB0aCBjb2xvcl9kZXB0aDsKMTQ0NzQ6ICBi
b29sIGVuYWJsZV9kcF9hdWRpbzsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF9jbG9jazsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBicF9leHRlcm5hbF9lbmNvZGVyX2NvbnRyb2wgewox
NDQ3NDogIGVudW0gYnBfZXh0ZXJuYWxfZW5jb2Rlcl9jb250cm9sX2FjdGlvbiBhY3Rpb247CjE0
NDc0OiAgZW51bSBlbmdpbmVfaWQgZW5naW5lX2lkOwoxNDQ3NDogIGVudW0gZGNfbGlua19yYXRl
IGxpbmtfcmF0ZTsKMTQ0NzQ6ICBlbnVtIGRjX2xhbmVfY291bnQgbGFuZXNfbnVtYmVyOwoxNDQ3
NDogIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsOwoxNDQ3NDogIGVudW0gZGNfY29sb3JfZGVwdGgg
Y29sb3JfZGVwdGg7CjE0NDc0OiAgYm9vbCBjb2hlcmVudDsKMTQ0NzQ6ICBzdHJ1Y3QgZ3JhcGhp
Y3Nfb2JqZWN0X2lkIGVuY29kZXJfaWQ7CjE0NDc0OiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9p
ZCBjb25uZWN0b3Jfb2JqX2lkOwoxNDQ3NDogIHVpbnQzMl90IHBpeGVsX2Nsb2NrOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJwX2NydGNfc291cmNlX3NlbGVjdCB7CjE0NDc0OiAg
ZW51bSBlbmdpbmVfaWQgZW5naW5lX2lkOwoxNDQ3NDogIGVudW0gY29udHJvbGxlcl9pZCBjb250
cm9sbGVyX2lkOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaWduYWw7CjE0NDc0
OiAKMTQ0NzQ6ICBlbnVtIHNpZ25hbF90eXBlIHNpbmtfc2lnbmFsOwoxNDQ3NDogIGVudW0gZGlz
cGxheV9vdXRwdXRfYml0X2RlcHRoIGRpc3BsYXlfb3V0cHV0X2JpdF9kZXB0aDsKMTQ0NzQ6ICBi
b29sIGVuYWJsZV9kcF9hdWRpbzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBicF90
cmFuc21pdHRlcl9jb250cm9sIHsKMTQ0NzQ6ICBlbnVtIGJwX3RyYW5zbWl0dGVyX2NvbnRyb2xf
YWN0aW9uIGFjdGlvbjsKMTQ0NzQ6ICBlbnVtIGVuZ2luZV9pZCBlbmdpbmVfaWQ7CjE0NDc0OiAg
ZW51bSB0cmFuc21pdHRlciB0cmFuc21pdHRlcjsKMTQ0NzQ6ICBlbnVtIGRjX2xhbmVfY291bnQg
bGFuZXNfbnVtYmVyOwoxNDQ3NDogIGVudW0gY2xvY2tfc291cmNlX2lkIHBsbF9pZDsKMTQ0NzQ6
ICBlbnVtIHNpZ25hbF90eXBlIHNpZ25hbDsKMTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX2RlcHRoIGNv
bG9yX2RlcHRoOwoxNDQ3NDogIGVudW0gaHBkX3NvdXJjZV9pZCBocGRfc2VsOwoxNDQ3NDogIHN0
cnVjdCBncmFwaGljc19vYmplY3RfaWQgY29ubmVjdG9yX29ial9pZDsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF9jbG9jazsKMTQ0NzQ6ICB1aW50MzJfdCBs
YW5lX3NlbGVjdDsKMTQ0NzQ6ICB1aW50MzJfdCBsYW5lX3NldHRpbmdzOwoxNDQ3NDogIGJvb2wg
Y29oZXJlbnQ7CjE0NDc0OiAgYm9vbCBtdWx0aV9wYXRoOwoxNDQ3NDogIGJvb2wgc2luZ2xlX3Bs
bF9tb2RlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJwX2h3X2NydGNfdGltaW5n
X3BhcmFtZXRlcnMgewoxNDQ3NDogIGVudW0gY29udHJvbGxlcl9pZCBjb250cm9sbGVyX2lkOwox
NDQ3NDogCjE0NDc0OiAgdWludDMyX3QgaF90b3RhbDsKMTQ0NzQ6ICB1aW50MzJfdCBoX2FkZHJl
c3NhYmxlOwoxNDQ3NDogIHVpbnQzMl90IGhfb3ZlcnNjYW5fbGVmdDsKMTQ0NzQ6ICB1aW50MzJf
dCBoX292ZXJzY2FuX3JpZ2h0OwoxNDQ3NDogIHVpbnQzMl90IGhfc3luY19zdGFydDsKMTQ0NzQ6
ICB1aW50MzJfdCBoX3N5bmNfd2lkdGg7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90
IHZfdG90YWw7CjE0NDc0OiAgdWludDMyX3Qgdl9hZGRyZXNzYWJsZTsKMTQ0NzQ6ICB1aW50MzJf
dCB2X292ZXJzY2FuX3RvcDsKMTQ0NzQ6ICB1aW50MzJfdCB2X292ZXJzY2FuX2JvdHRvbTsKMTQ0
NzQ6ICB1aW50MzJfdCB2X3N5bmNfc3RhcnQ7CjE0NDc0OiAgdWludDMyX3Qgdl9zeW5jX3dpZHRo
OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRpbWluZ19mbGFncyB7CjE0NDc0OiAgIHVpbnQzMl90
IElOVEVSTEFDRToxOwoxNDQ3NDogICB1aW50MzJfdCBQSVhFTF9SRVBFVElUSU9OOjQ7CjE0NDc0
OiAgIHVpbnQzMl90IEhTWU5DX1BPU0lUSVZFX1BPTEFSSVRZOjE7CjE0NDc0OiAgIHVpbnQzMl90
IFZTWU5DX1BPU0lUSVZFX1BPTEFSSVRZOjE7CjE0NDc0OiAgIHVpbnQzMl90IEhPUlpfQ09VTlRf
QllfVFdPOjE7CjE0NDc0OiAgfSBmbGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBicF9hZGp1c3RfcGl4ZWxfY2xvY2tfcGFyYW1ldGVycyB7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVt
IHNpZ25hbF90eXBlIHNpZ25hbF90eXBlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGdyYXBoaWNz
X29iamVjdF9pZCBlbmNvZGVyX29iamVjdF9pZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICB1aW50MzJfdCBwaXhlbF9jbG9jazsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGFkanVz
dGVkX3BpeGVsX2Nsb2NrOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCByZWZlcmVu
Y2VfZGl2aWRlcjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgcGl4ZWxfY2xvY2tf
cG9zdF9kaXZpZGVyOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBzc19lbmFibGU7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnBfcGl4ZWxfY2xvY2tfcGFyYW1ldGVycyB7CjE0NDc0OiAg
ZW51bSBjb250cm9sbGVyX2lkIGNvbnRyb2xsZXJfaWQ7CjE0NDc0OiAgZW51bSBjbG9ja19zb3Vy
Y2VfaWQgcGxsX2lkOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaWduYWxfdHlw
ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgdGFyZ2V0X3BpeGVsX2Nsb2NrXzEw
MGh6OwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgcmVmZXJlbmNlX2RpdmlkZXI7CjE0NDc0OiAK
MTQ0NzQ6ICB1aW50MzJfdCBmZWVkYmFja19kaXZpZGVyOwoxNDQ3NDogCjE0NDc0OiAgdWludDMy
X3QgZnJhY3Rpb25hbF9mZWVkYmFja19kaXZpZGVyOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3Qg
cGl4ZWxfY2xvY2tfcG9zdF9kaXZpZGVyOwoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3Rf
aWQgZW5jb2Rlcl9vYmplY3RfaWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGRm
c19ieXBhc3NfZGlzcGxheV9jbG9jazsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gdHJhbnNtaXR0ZXJf
Y29sb3JfZGVwdGggY29sb3JfZGVwdGg7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgcHJvZ3JhbV9w
aXhlbF9jbG9ja19mbGFncyB7CjE0NDc0OiAgIHVpbnQzMl90IEZPUkNFX1BST0dSQU1NSU5HX09G
X1BMTDoxOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgVVNFX0VfQ0xPQ0tfQVNf
U09VUkNFX0ZPUl9EX0NMT0NLOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgU0VUX0VYVEVS
TkFMX1JFRl9ESVZfU1JDOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgU0VUX0RJU1BDTEtf
REZTX0JZUEFTUzoxOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IFBST0dSQU1fUEhZX1BMTF9P
TkxZOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgU1VQUE9SVF9ZVVZfNDIwOjE7CjE0NDc0
OiAKMTQ0NzQ6ICAgdWludDMyX3QgU0VUX1hUQUxJTl9SRUZfU1JDOjE7CjE0NDc0OiAKMTQ0NzQ6
ICAgdWludDMyX3QgU0VUX0dFTkxPQ0tfUkVGX0RJVl9TUkM6MTsKMTQ0NzQ6ICB9IGZsYWdzOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBicF9kY2VfY2xvY2tfdHlwZSB7CjE0NDc0OiAg
RENFQ0xPQ0tfVFlQRV9ESVNQTEFZX0NMT0NLID0gMCwKMTQ0NzQ6ICBEQ0VDTE9DS19UWVBFX0RQ
UkVGQ0xLID0gMQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnBfc2V0
X2RjZV9jbG9ja19wYXJhbWV0ZXJzIHsKMTQ0NzQ6ICBlbnVtIGNsb2NrX3NvdXJjZV9pZCBwbGxf
aWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCB0YXJnZXRfY2xvY2tfZnJlcXVlbmN5OwoxNDQ3
NDogCjE0NDc0OiAgZW51bSBicF9kY2VfY2xvY2tfdHlwZSBjbG9ja190eXBlOwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHNldF9kY2VfY2xvY2tfZmxhZ3MgewoxNDQ3NDogICB1aW50MzJfdCBVU0Vf
R0VORVJJQ0FfQVNfU09VUkNFX0ZPUl9EUFJFRkNMSzoxOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQz
Ml90IFVTRV9YVEFMSU5fQVNfU09VUkNFX0ZPUl9EUFJFRkNMSzoxOwoxNDQ3NDogCjE0NDc0OiAg
IHVpbnQzMl90IFVTRV9QQ0lFX0FTX1NPVVJDRV9GT1JfRFBSRUZDTEs6MTsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MzJfdCBVU0VfR0VOTE9DS19BU19TT1VSQ0VfRk9SX0RQUkVGQ0xLOjE7CjE0NDc0
OiAgfSBmbGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzcHJlYWRfc3BlY3Ry
dW1fZmxhZ3MgewoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgQ0VOVEVSX1NQUkVBRDoxOwoxNDQ3
NDogCjE0NDc0OiAgdWludDMyX3QgRVhURVJOQUxfU1M6MTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQz
Ml90IERTX1RZUEU6MTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBicF9zcHJlYWRf
c3BlY3RydW1fcGFyYW1ldGVycyB7CjE0NDc0OiAgZW51bSBjbG9ja19zb3VyY2VfaWQgcGxsX2lk
OwoxNDQ3NDogIHVpbnQzMl90IHBlcmNlbnRhZ2U7CjE0NDc0OiAgdWludDMyX3QgZHNfZnJhY19h
bW91bnQ7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAg
ICB1aW50MzJfdCBzdGVwOwoxNDQ3NDogICAgdWludDMyX3QgZGVsYXk7CjE0NDc0OiAgICB1aW50
MzJfdCByYW5nZTsKMTQ0NzQ6ICAgfSB2ZXIxOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAg
dWludDMyX3QgZmVlZGJhY2tfYW1vdW50OwoxNDQ3NDogICAgdWludDMyX3QgbmZyYWNfYW1vdW50
OwoxNDQ3NDogICAgdWludDMyX3QgZHNfZnJhY19zaXplOwoxNDQ3NDogICB9IGRzOwoxNDQ3NDog
IH07CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc3ByZWFkX3NwZWN0cnVtX2ZsYWdzIGZsYWdzOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJwX2VuY29kZXJfY2FwX2luZm8gewoxNDQ3
NDogIHVpbnQzMl90IERQX0hCUjJfQ0FQOjE7CjE0NDc0OiAgdWludDMyX3QgRFBfSEJSMl9FTjox
OwoxNDQ3NDogIHVpbnQzMl90IERQX0hCUjNfRU46MTsKMTQ0NzQ6ICB1aW50MzJfdCBIRE1JXzZH
Ql9FTjoxOwoxNDQ3NDogIHVpbnQzMl90IERQX0lTX1VTQl9DOjE7CjE0NDc0OiAgdWludDMyX3Qg
UkVTRVJWRUQ6Mjc7CjE0NDc0OiB9OwoxNDQ3NDogIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jbG9ja19zb3VyY2UuaCIgMgoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgY2xvY2tfc291cmNlOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3ByZWFkX3NwZWN0
cnVtX2RhdGEgewoxNDQ3NDogIHVpbnQzMl90IHBlcmNlbnRhZ2U7CjE0NDc0OiAgdWludDMyX3Qg
cGVyY2VudGFnZV9kaXZpZGVyOwoxNDQ3NDogIHVpbnQzMl90IGZyZXFfcmFuZ2Vfa2h6OwoxNDQ3
NDogIHVpbnQzMl90IG1vZHVsYXRpb25fZnJlcV9oejsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBz
cHJlYWRfc3BlY3RydW1fZmxhZ3MgZmxhZ3M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZGVsdGFfc2lnbWFfZGF0YSB7CjE0NDc0OiAgdWludDMyX3QgZmVlZGJhY2tfYW1vdW50Owox
NDQ3NDogIHVpbnQzMl90IG5mcmFjX2Ftb3VudDsKMTQ0NzQ6ICB1aW50MzJfdCBkc19mcmFjX3Np
emU7CjE0NDc0OiAgdWludDMyX3QgZHNfZnJhY19hbW91bnQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBpeGVs
X2Nsa19mbGFncyB7CjE0NDc0OiAgdWludDMyX3QgRU5BQkxFX1NTOjE7CjE0NDc0OiAgdWludDMy
X3QgRElTUExBWV9CTEFOS0VEOjE7CjE0NDc0OiAgdWludDMyX3QgUFJPR1JBTV9QSVhFTF9DTE9D
SzoxOwoxNDQ3NDogIHVpbnQzMl90IFBST0dSQU1fSURfQ0xPQ0s6MTsKMTQ0NzQ6ICB1aW50MzJf
dCBTVVBQT1JUX1lDQkNSNDIwOjE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjc2RwX3JlZl9jbGtfZHNfcGFyYW1zIHsKMTQ0
NzQ6ICBib29sIGh3X2Rzb19uX2RwX3JlZl9jbGs7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBh
dmdfZHBfcmVmX2Nsa19raHo7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBzc19wZXJjZW50YWdl
X29uX2RwX3JlZl9jbGs7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHNzX3BlcmNl
bnRhZ2VfZGl2aWRlcjsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBp
eGVsX2Nsa19wYXJhbXMgewoxNDQ3NDogIHVpbnQzMl90IHJlcXVlc3RlZF9waXhfY2xrXzEwMGh6
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCByZXF1ZXN0ZWRfc3ltX2NsazsKMTQ0
NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGRwX3JlZl9jbGs7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qg
Z3JhcGhpY3Nfb2JqZWN0X2lkIGVuY29kZXJfb2JqZWN0X2lkOwoxNDQ3NDogCjE0NDc0OiAgZW51
bSBzaWduYWxfdHlwZSBzaWduYWxfdHlwZTsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gY29udHJvbGxl
cl9pZCBjb250cm9sbGVyX2lkOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19jb2xvcl9kZXB0aCBj
b2xvcl9kZXB0aDsKMTQ0NzQ6ICBzdHJ1Y3QgY3NkcF9yZWZfY2xrX2RzX3BhcmFtcyBkZV9zcHJl
YWRfcGFyYW1zOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19waXhlbF9lbmNvZGluZyBwaXhlbF9l
bmNvZGluZzsKMTQ0NzQ6ICBzdHJ1Y3QgcGl4ZWxfY2xrX2ZsYWdzIGZsYWdzOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBwbGxfc2V0dGluZ3MgewoxNDQ3NDogIHVpbnQzMl90IGFjdHVhbF9waXhfY2xrXzEwMGh6
OwoxNDQ3NDogIHVpbnQzMl90IGFkanVzdGVkX3BpeF9jbGtfMTAwaHo7CjE0NDc0OiAgdWludDMy
X3QgY2FsY3VsYXRlZF9waXhfY2xrXzEwMGh6OwoxNDQ3NDogIHVpbnQzMl90IHZjb19mcmVxOwox
NDQ3NDogIHVpbnQzMl90IHJlZmVyZW5jZV9mcmVxOwoxNDQ3NDogIHVpbnQzMl90IHJlZmVyZW5j
ZV9kaXZpZGVyOwoxNDQ3NDogIHVpbnQzMl90IGZlZWRiYWNrX2RpdmlkZXI7CjE0NDc0OiAgdWlu
dDMyX3QgZnJhY3RfZmVlZGJhY2tfZGl2aWRlcjsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhfY2xrX3Bv
c3RfZGl2aWRlcjsKMTQ0NzQ6ICB1aW50MzJfdCBzc19wZXJjZW50YWdlOwoxNDQ3NDogIGJvb2wg
dXNlX2V4dGVybmFsX2NsazsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjYWxjX3Bs
bF9jbG9ja19zb3VyY2VfaW5pdF9kYXRhIHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfYmlvcyAqYnA7CjE0
NDc0OiAgdWludDMyX3QgbWluX3BpeF9jbGtfcGxsX3Bvc3RfZGl2aWRlcjsKMTQ0NzQ6ICB1aW50
MzJfdCBtYXhfcGl4X2Nsa19wbGxfcG9zdF9kaXZpZGVyOwoxNDQ3NDogIHVpbnQzMl90IG1pbl9w
bGxfcmVmX2RpdmlkZXI7CjE0NDc0OiAgdWludDMyX3QgbWF4X3BsbF9yZWZfZGl2aWRlcjsKMTQ0
NzQ6ICB1aW50MzJfdCBtaW5fb3ZlcnJpZGVfaW5wdXRfcHhsX2Nsa19wbGxfZnJlcV9raHo7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IG1heF9vdmVycmlkZV9pbnB1dF9weGxfY2xr
X3BsbF9mcmVxX2toejsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgbnVtX2ZyYWN0
X2ZiX2RpdmlkZXJfZGVjaW1hbF9wb2ludDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMy
X3QgbnVtX2ZyYWN0X2ZiX2RpdmlkZXJfZGVjaW1hbF9wb2ludF9wcmVjaXNpb247CjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgY2FsY19wbGxfY2xvY2tfc291cmNlIHsKMTQ0NzQ6ICB1aW50MzJfdCBy
ZWZfZnJlcV9raHo7CjE0NDc0OiAgdWludDMyX3QgbWluX3BpeF9jbG9ja19wbGxfcG9zdF9kaXZp
ZGVyOwoxNDQ3NDogIHVpbnQzMl90IG1heF9waXhfY2xvY2tfcGxsX3Bvc3RfZGl2aWRlcjsKMTQ0
NzQ6ICB1aW50MzJfdCBtaW5fcGxsX3JlZl9kaXZpZGVyOwoxNDQ3NDogIHVpbnQzMl90IG1heF9w
bGxfcmVmX2RpdmlkZXI7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfdmNvX2toejsKMTQ0
NzQ6ICB1aW50MzJfdCBtaW5fdmNvX2toejsKMTQ0NzQ6ICB1aW50MzJfdCBtaW5fcGxsX2lucHV0
X2ZyZXFfa2h6OwoxNDQ3NDogIHVpbnQzMl90IG1heF9wbGxfaW5wdXRfZnJlcV9raHo7CjE0NDc0
OiAKMTQ0NzQ6ICB1aW50MzJfdCBmcmFjdF9mYl9kaXZpZGVyX2RlY2ltYWxfcG9pbnRzX251bTsK
MTQ0NzQ6ICB1aW50MzJfdCBmcmFjdF9mYl9kaXZpZGVyX2ZhY3RvcjsKMTQ0NzQ6ICB1aW50MzJf
dCBmcmFjdF9mYl9kaXZpZGVyX3ByZWNpc2lvbjsKMTQ0NzQ6ICB1aW50MzJfdCBmcmFjdF9mYl9k
aXZpZGVyX3ByZWNpc2lvbl9mYWN0b3I7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbG9ja19zb3VyY2VfZnVuY3MgewoxNDQ3
NDogIGJvb2wgKCpjc19wb3dlcl9kb3duKSgKMTQ0NzQ6ICAgIHN0cnVjdCBjbG9ja19zb3VyY2Ug
Kik7CjE0NDc0OiAgYm9vbCAoKnByb2dyYW1fcGl4X2Nsaykoc3RydWN0IGNsb2NrX3NvdXJjZSAq
LAoxNDQ3NDogICAgc3RydWN0IHBpeGVsX2Nsa19wYXJhbXMgKiwgc3RydWN0IHBsbF9zZXR0aW5n
cyAqKTsKMTQ0NzQ6ICB1aW50MzJfdCAoKmdldF9waXhfY2xrX2RpdmlkZXJzKSgKMTQ0NzQ6ICAg
IHN0cnVjdCBjbG9ja19zb3VyY2UgKiwKMTQ0NzQ6ICAgIHN0cnVjdCBwaXhlbF9jbGtfcGFyYW1z
ICosCjE0NDc0OiAgICBzdHJ1Y3QgcGxsX3NldHRpbmdzICopOwoxNDQ3NDogIGJvb2wgKCpnZXRf
cGl4ZWxfY2xrX2ZyZXF1ZW5jeV8xMDBoeikoCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3QgY2xvY2tf
c291cmNlICpjbG9ja19zb3VyY2UsCjE0NDc0OiAgICB1bnNpZ25lZCBpbnQgaW5zdCwKMTQ0NzQ6
ICAgIHVuc2lnbmVkIGludCAqcGl4ZWxfY2xrX2toeik7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgY2xvY2tfc291cmNlIHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgY2xvY2tfc291cmNl
X2Z1bmNzICpmdW5jczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIGVu
dW0gY2xvY2tfc291cmNlX2lkIGlkOwoxNDQ3NDogIGJvb2wgZHBfY2xrX3NyYzsKMTQ0NzQ6IH07
CjE0NDc0OiAjIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
aW5jL2h3X3NlcXVlbmNlci5oIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvdGltaW5nX2dlbmVyYXRvci5oIiAxCjE0NDc0OiAj
IDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L3Rp
bWluZ19nZW5lcmF0b3IuaCIKMTQ0NzQ6IHN0cnVjdCBkY19iaW9zOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBjcnRjX3Bvc2l0aW9uIHsKMTQ0NzQ6ICBpbnQzMl90IHZlcnRpY2FsX2Nv
dW50OwoxNDQ3NDogIGludDMyX3QgaG9yaXpvbnRhbF9jb3VudDsKMTQ0NzQ6ICBpbnQzMl90IG5v
bWluYWxfdmNvdW50OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjcF9nc2xfcGFy
YW1zIHsKMTQ0NzQ6ICBpbnQgZ3NsX2dyb3VwOwoxNDQ3NDogIGludCBnc2xfbWFzdGVyOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGdzbF9wYXJhbXMgewoxNDQ3NDogIGludCBnc2ww
X2VuOwoxNDQ3NDogIGludCBnc2wxX2VuOwoxNDQ3NDogIGludCBnc2wyX2VuOwoxNDQ3NDogIGlu
dCBnc2xfbWFzdGVyX2VuOwoxNDQ3NDogIGludCBnc2xfbWFzdGVyX21vZGU7CjE0NDc0OiAgaW50
IG1hc3Rlcl91cGRhdGVfbG9ja19nc2xfZW47CjE0NDc0OiAgaW50IGdzbF93aW5kb3dfc3RhcnRf
eDsKMTQ0NzQ6ICBpbnQgZ3NsX3dpbmRvd19lbmRfeDsKMTQ0NzQ6ICBpbnQgZ3NsX3dpbmRvd19z
dGFydF95OwoxNDQ3NDogIGludCBnc2xfd2luZG93X2VuZF95OwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJyX3BhcmFtcyB7CjE0NDc0OiAgdWludDMyX3QgdmVydGlj
YWxfdG90YWxfbWluOwoxNDQ3NDogIHVpbnQzMl90IHZlcnRpY2FsX3RvdGFsX21heDsKMTQ0NzQ6
ICB1aW50MzJfdCB2ZXJ0aWNhbF90b3RhbF9taWQ7CjE0NDc0OiAgdWludDMyX3QgdmVydGljYWxf
dG90YWxfbWlkX2ZyYW1lX251bTsKMTQ0NzQ6ICBib29sIGltbWVkaWF0ZV9mbGlwOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjcnRjX3N0YXRl
IHsKMTQ0NzQ6ICBDUlRDX1NUQVRFX1ZCTEFOSyA9IDAsCjE0NDc0OiAgQ1JUQ19TVEFURV9WQUNU
SVZFCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdnVwZGF0ZV9rZWVwb3V0X3BhcmFt
cyB7CjE0NDc0OiAgaW50IHN0YXJ0X29mZnNldDsKMTQ0NzQ6ICBpbnQgZW5kX29mZnNldDsKMTQ0
NzQ6ICBpbnQgZW5hYmxlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNydGNfc3Rl
cmVvX2ZsYWdzIHsKMTQ0NzQ6ICB1aW50OF90IFBST0dSQU1fU1RFUkVPIDogMTsKMTQ0NzQ6ICB1
aW50OF90IFBST0dSQU1fUE9MQVJJVFkgOiAxOwoxNDQ3NDogIHVpbnQ4X3QgUklHSFRfRVlFX1BP
TEFSSVRZIDogMTsKMTQ0NzQ6ICB1aW50OF90IEZSQU1FX1BBQ0tFRCA6IDE7CjE0NDc0OiAgdWlu
dDhfdCBESVNBQkxFX1NURVJFT19EUF9TWU5DIDogMTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gY3JjX3NlbGVjdGlvbiB7CjE0NDc0OiAKMTQ0NzQ6ICBVTklPTl9XSU5ET1dfQV9CID0g
MCwKMTQ0NzQ6ICBVTklPTl9XSU5ET1dfQV9OT1RfQiwKMTQ0NzQ6ICBVTklPTl9XSU5ET1dfTk9U
X0FfQiwKMTQ0NzQ6ICBVTklPTl9XSU5ET1dfTk9UX0FfTk9UX0IsCjE0NDc0OiAgSU5URVJTRUNU
X1dJTkRPV19BX0IsCjE0NDc0OiAgSU5URVJTRUNUX1dJTkRPV19BX05PVF9CLAoxNDQ3NDogIElO
VEVSU0VDVF9XSU5ET1dfTk9UX0FfQiwKMTQ0NzQ6ICBJTlRFUlNFQ1RfV0lORE9XX05PVF9BX05P
VF9CLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBoX3RpbWluZ19kaXZfbW9kZSB7CjE0
NDc0OiAgSF9USU1JTkdfTk9fRElWLAoxNDQ3NDogIEhfVElNSU5HX0RJVl9CWTIsCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3JjX3BhcmFtcyB7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50
MTZfdCB3aW5kb3dhX3hfc3RhcnQ7CjE0NDc0OiAgdWludDE2X3Qgd2luZG93YV94X2VuZDsKMTQ0
NzQ6ICB1aW50MTZfdCB3aW5kb3dhX3lfc3RhcnQ7CjE0NDc0OiAgdWludDE2X3Qgd2luZG93YV95
X2VuZDsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQxNl90IHdpbmRvd2JfeF9zdGFydDsKMTQ0NzQ6ICB1
aW50MTZfdCB3aW5kb3diX3hfZW5kOwoxNDQ3NDogIHVpbnQxNl90IHdpbmRvd2JfeV9zdGFydDsK
MTQ0NzQ6ICB1aW50MTZfdCB3aW5kb3diX3lfZW5kOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBjcmNf
c2VsZWN0aW9uIHNlbGVjdGlvbjsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgY29udGludW91c19tb2Rl
OwoxNDQ3NDogIGJvb2wgZW5hYmxlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRp
bWluZ19nZW5lcmF0b3IgewoxNDQ3NDogIGNvbnN0IHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yX2Z1
bmNzICpmdW5jczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfYmlvcyAqYnA7CjE0NDc0OiAgc3RydWN0IGRj
X2NvbnRleHQgKmN0eDsKMTQ0NzQ6ICBpbnQgaW5zdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY19jcnRjX3RpbWluZzsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRycl9wYXJhbXM7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRpbWluZ19nZW5lcmF0b3JfZnVuY3Mgewox
NDQ3NDogIGJvb2wgKCp2YWxpZGF0ZV90aW1pbmcpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0
ZywKMTQ0NzQ6ICAgICAgICBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZyk7CjE0
NDc0OiAgdm9pZCAoKnByb2dyYW1fdGltaW5nKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcs
CjE0NDc0OiAgICAgICAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcsCjE0NDc0
OiAgICAgICAgaW50IHZyZWFkeV9vZmZzZXQsCjE0NDc0OiAgICAgICAgaW50IHZzdGFydHVwX3N0
YXJ0LAoxNDQ3NDogICAgICAgIGludCB2dXBkYXRlX29mZnNldCwKMTQ0NzQ6ICAgICAgICBpbnQg
dnVwZGF0ZV93aWR0aCwKMTQ0NzQ6ICAgICAgICBjb25zdCBlbnVtIHNpZ25hbF90eXBlIHNpZ25h
bCwKMTQ0NzQ6ICAgICAgICBib29sIHVzZV92YmlvcwoxNDQ3NDogICk7CjE0NDc0OiAgdm9pZCAo
KnNldHVwX3ZlcnRpY2FsX2ludGVycnVwdDApKAoxNDQ3NDogICAgc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKm9wdGMsCjE0NDc0OiAgICB1aW50MzJfdCBzdGFydF9saW5lLAoxNDQ3NDogICAgdWlu
dDMyX3QgZW5kX2xpbmUpOwoxNDQ3NDogIHZvaWQgKCpzZXR1cF92ZXJ0aWNhbF9pbnRlcnJ1cHQx
KSgKMTQ0NzQ6ICAgIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAoxNDQ3NDogICAgdWlu
dDMyX3Qgc3RhcnRfbGluZSk7CjE0NDc0OiAgdm9pZCAoKnNldHVwX3ZlcnRpY2FsX2ludGVycnVw
dDIpKAoxNDQ3NDogICAgc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCjE0NDc0OiAgICB1
aW50MzJfdCBzdGFydF9saW5lKTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCplbmFibGVfY3J0Yyko
c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICBib29sICgqZGlzYWJsZV9jcnRj
KShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwoxNDQ3NDogIGJvb2wgKCppc19jb3VudGVy
X21vdmluZykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICB2b2lkICgqZ2V0
X3Bvc2l0aW9uKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCjE0NDc0OiAgICAgc3RydWN0
IGNydGNfcG9zaXRpb24gKnBvc2l0aW9uKTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90ICgqZ2V0
X2ZyYW1lX2NvdW50KShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwoxNDQ3NDogIHZvaWQg
KCpnZXRfc2Nhbm91dHBvcykoCjE0NDc0OiAgIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywK
MTQ0NzQ6ICAgdWludDMyX3QgKnZfYmxhbmtfc3RhcnQsCjE0NDc0OiAgIHVpbnQzMl90ICp2X2Js
YW5rX2VuZCwKMTQ0NzQ6ICAgdWludDMyX3QgKmhfcG9zaXRpb24sCjE0NDc0OiAgIHVpbnQzMl90
ICp2X3Bvc2l0aW9uKTsKMTQ0NzQ6ICBib29sICgqZ2V0X290Z19hY3RpdmVfc2l6ZSkoc3RydWN0
IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCjE0NDc0OiAgICB1aW50MzJfdCAqb3RnX2FjdGl2ZV93
aWR0aCwKMTQ0NzQ6ICAgIHVpbnQzMl90ICpvdGdfYWN0aXZlX2hlaWdodCk7CjE0NDc0OiAgYm9v
bCAoKmlzX21hdGNoaW5nX3RpbWluZykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAoxNDQ3
NDogICAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICpvdGdfdGltaW5nKTsKMTQ0NzQ6ICB2
b2lkICgqc2V0X2Vhcmx5X2NvbnRyb2wpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKMTQ0
NzQ6ICAgICAgICAgICB1aW50MzJfdCBlYXJseV9jbnRsKTsKMTQ0NzQ6ICB2b2lkICgqd2FpdF9m
b3Jfc3RhdGUpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgICAgICBlbnVt
IGNydGNfc3RhdGUgc3RhdGUpOwoxNDQ3NDogIHZvaWQgKCpzZXRfYmxhbmspKHN0cnVjdCB0aW1p
bmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgICAgYm9vbCBlbmFibGVfYmxhbmtpbmcpOwoxNDQ3
NDogIGJvb2wgKCppc19ibGFua2VkKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwoxNDQ3
NDogIHZvaWQgKCpzZXRfb3ZlcnNjYW5fYmxhbmtfY29sb3IpIChzdHJ1Y3QgdGltaW5nX2dlbmVy
YXRvciAqdGcsIGNvbnN0IHN0cnVjdCB0Z19jb2xvciAqY29sb3IpOwoxNDQ3NDogIHZvaWQgKCpz
ZXRfYmxhbmtfY29sb3IpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywgY29uc3Qgc3RydWN0
IHRnX2NvbG9yICpjb2xvcik7CjE0NDc0OiAgdm9pZCAoKnNldF9jb2xvcnMpKHN0cnVjdCB0aW1p
bmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgICAgIGNvbnN0IHN0cnVjdCB0Z19jb2xvciAqYmxh
bmtfY29sb3IsCjE0NDc0OiAgICAgICBjb25zdCBzdHJ1Y3QgdGdfY29sb3IgKm92ZXJzY2FuX2Nv
bG9yKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkaXNhYmxlX3ZnYSkoc3RydWN0IHRpbWluZ19n
ZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICBib29sICgqZGlkX3RyaWdnZXJlZF9yZXNldF9vY2N1ciko
c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICB2b2lkICgqc2V0dXBfZ2xvYmFs
X3N3YXBfbG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAoxNDQ3NDogICAgICAgIGNv
bnN0IHN0cnVjdCBkY3BfZ3NsX3BhcmFtcyAqZ3NsX3BhcmFtcyk7CjE0NDc0OiAgdm9pZCAoKnVu
bG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICB2b2lkICgqbG9jayko
c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICB2b2lkICgqbG9ja19kb3VibGVi
dWZmZXJfZGlzYWJsZSkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICB2b2lk
ICgqbG9ja19kb3VibGVidWZmZXJfZW5hYmxlKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcp
OwoxNDQ3NDogIHZvaWQoKnRyaXBsZWJ1ZmZlcl91bmxvY2spKHN0cnVjdCB0aW1pbmdfZ2VuZXJh
dG9yICp0Zyk7CjE0NDc0OiAgdm9pZCgqdHJpcGxlYnVmZmVyX2xvY2spKHN0cnVjdCB0aW1pbmdf
Z2VuZXJhdG9yICp0Zyk7CjE0NDc0OiAgdm9pZCAoKmVuYWJsZV9yZXNldF90cmlnZ2VyKShzdHJ1
Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCjE0NDc0OiAgICAgICAgICBpbnQgc291cmNlX3RnX2lu
c3QpOwoxNDQ3NDogIHZvaWQgKCplbmFibGVfY3J0Y19yZXNldCkoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnLAoxNDQ3NDogICAgICAgaW50IHNvdXJjZV90Z19pbnN0LAoxNDQ3NDogICAgICAg
c3RydWN0IGNydGNfdHJpZ2dlcl9pbmZvICpjcnRjX3RwKTsKMTQ0NzQ6ICB2b2lkICgqZGlzYWJs
ZV9yZXNldF90cmlnZ2VyKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwoxNDQ3NDogIHZv
aWQgKCp0ZWFyX2Rvd25fZ2xvYmFsX3N3YXBfbG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3Ig
KnRnKTsKMTQ0NzQ6ICB2b2lkICgqZW5hYmxlX2FkdmFuY2VkX3JlcXVlc3QpKHN0cnVjdCB0aW1p
bmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgICAgYm9vbCBlbmFibGUsIGNvbnN0IHN0cnVjdCBk
Y19jcnRjX3RpbWluZyAqdGltaW5nKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X2Rycikoc3RydWN0IHRp
bWluZ19nZW5lcmF0b3IgKnRnLCBjb25zdCBzdHJ1Y3QgZHJyX3BhcmFtcyAqcGFyYW1zKTsKMTQ0
NzQ6ICB2b2lkICgqc2V0X3N0YXRpY19zY3JlZW5fY29udHJvbCkoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnLAoxNDQ3NDogICAgICAgdWludDMyX3QgZXZlbnRfdHJpZ2dlcnMsCjE0NDc0OiAg
ICAgICB1aW50MzJfdCBudW1fZnJhbWVzKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X3Rlc3RfcGF0dGVy
bikoCjE0NDc0OiAgIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgZW51bSBj
b250cm9sbGVyX2RwX3Rlc3RfcGF0dGVybiB0ZXN0X3BhdHRlcm4sCjE0NDc0OiAgIGVudW0gZGNf
Y29sb3JfZGVwdGggY29sb3JfZGVwdGgpOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCAoKmFybV92ZXJ0
X2ludHIpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywgdWludDhfdCB3aWR0aCk7CjE0NDc0
OiAKMTQ0NzQ6ICB2b2lkICgqcHJvZ3JhbV9nbG9iYWxfc3luYykoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnLAoxNDQ3NDogICAgaW50IHZyZWFkeV9vZmZzZXQsCjE0NDc0OiAgICBpbnQgdnN0
YXJ0dXBfc3RhcnQsCjE0NDc0OiAgICBpbnQgdnVwZGF0ZV9vZmZzZXQsCjE0NDc0OiAgICBpbnQg
dnVwZGF0ZV93aWR0aCk7CjE0NDc0OiAgdm9pZCAoKmVuYWJsZV9vcHRjX2Nsb2NrKShzdHJ1Y3Qg
dGltaW5nX2dlbmVyYXRvciAqdGcsIGJvb2wgZW5hYmxlKTsKMTQ0NzQ6ICB2b2lkICgqcHJvZ3Jh
bV9zdGVyZW8pKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgY29uc3Qgc3Ry
dWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcsIHN0cnVjdCBjcnRjX3N0ZXJlb19mbGFncyAqZmxh
Z3MpOwoxNDQ3NDogIGJvb2wgKCppc19zdGVyZW9fbGVmdF9leWUpKHN0cnVjdCB0aW1pbmdfZ2Vu
ZXJhdG9yICp0Zyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X2JsYW5rX2RhdGFfZG91Ymxl
X2J1ZmZlcikoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLCBib29sIGVuYWJsZSk7CjE0NDc0
OiAKMTQ0NzQ6ICB2b2lkICgqdGdfaW5pdCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsK
MTQ0NzQ6ICBib29sICgqaXNfdGdfZW5hYmxlZCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRn
KTsKMTQ0NzQ6ICBib29sICgqaXNfb3B0Y191bmRlcmZsb3dfb2NjdXJyZWQpKHN0cnVjdCB0aW1p
bmdfZ2VuZXJhdG9yICp0Zyk7CjE0NDc0OiAgdm9pZCAoKmNsZWFyX29wdGNfdW5kZXJmbG93KShz
dHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9k
d2Jfc291cmNlKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKMTQ0NzQ6ICAgdWludDMy
X3QgZHdiX3BpcGVfaW5zdCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZ2V0X29wdGNfc291cmNl
KShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKMTQ0NzQ6ICAgIHVpbnQzMl90ICpudW1f
b2ZfaW5wdXRfc2VnbWVudHMsCjE0NDc0OiAgICB1aW50MzJfdCAqc2VnMF9zcmNfc2VsLAoxNDQ3
NDogICAgdWludDMyX3QgKnNlZzFfc3JjX3NlbCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCpjb25maWd1cmVfY3JjKShzdHJ1Y3QgdGltaW5n
X2dlbmVyYXRvciAqdGcsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGNyY19wYXJhbXMg
KnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IGJvb2wgKCpnZXRfY3JjKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCjE0NDc0OiAgICB1
aW50MzJfdCAqcl9jciwgdWludDMyX3QgKmdfeSwgdWludDMyX3QgKmJfY2IpOwoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAoKnByb2dyYW1fbWFudWFsX3RyaWdnZXIpKHN0cnVjdCB0aW1pbmdfZ2VuZXJh
dG9yICpvcHRjKTsKMTQ0NzQ6ICB2b2lkICgqc2V0dXBfbWFudWFsX3RyaWdnZXIpKHN0cnVjdCB0
aW1pbmdfZ2VuZXJhdG9yICpvcHRjKTsKMTQ0NzQ6ICBib29sICgqZ2V0X2h3X3RpbWluZykoc3Ry
dWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY3J0Y190aW1p
bmcgKmh3X2NydGNfdGltaW5nKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRfdnRnX3BhcmFt
cykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3Qg
ZGNfY3J0Y190aW1pbmcgKmRjX2NydGNfdGltaW5nKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpz
ZXRfZHNjX2NvbmZpZykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCjE0NDc0OiAgICAg
ICAgICAgZW51bSBvcHRjX2RzY19tb2RlIGRzY19tb2RlLAoxNDQ3NDogICAgICAgICAgIHVpbnQz
Ml90IGRzY19ieXRlc19wZXJfcGl4ZWwsCjE0NDc0OiAgICAgICAgICAgdWludDMyX3QgZHNjX3Ns
aWNlX3dpZHRoKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X29kbV9ieXBhc3MpKHN0cnVjdCB0aW1pbmdf
Z2VuZXJhdG9yICpvcHRjLCBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmRjX2NydGNfdGlt
aW5nKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X29kbV9jb21iaW5lKShzdHJ1Y3QgdGltaW5nX2dlbmVy
YXRvciAqb3B0YywgaW50ICpvcHBfaWQsIGludCBvcHBfY250LAoxNDQ3NDogICAgc3RydWN0IGRj
X2NydGNfdGltaW5nICp0aW1pbmcpOwoxNDQ3NDogIHZvaWQgKCpzZXRfZ3NsKShzdHJ1Y3QgdGlt
aW5nX2dlbmVyYXRvciAqb3B0YywgY29uc3Qgc3RydWN0IGdzbF9wYXJhbXMgKnBhcmFtcyk7CjE0
NDc0OiAgdm9pZCAoKnNldF9nc2xfc291cmNlX3NlbGVjdCkoc3RydWN0IHRpbWluZ19nZW5lcmF0
b3IgKm9wdGMsCjE0NDc0OiAgICBpbnQgZ3JvdXBfaWR4LAoxNDQ3NDogICAgdWludDMyX3QgZ3Ns
X3JlYWR5X3NpZ25hbCk7CjE0NDc0OiB9OwoxNDQ3NDogIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9od19zZXF1ZW5jZXIuaCIgMgoxNDQ3NDogCjE0
NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMv
aHcvbGlua19lbmNvZGVyLmgiIDEKMTQ0NzQ6ICMgMzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbGlua19lbmNvZGVyLmgiCjE0NDc0OiBzdHJ1Y3Qg
ZGNfY29udGV4dDsKMTQ0NzQ6IHN0cnVjdCBlbmNvZGVyX3NldF9kcF9waHlfcGF0dGVybl9wYXJh
bTsKMTQ0NzQ6IHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZTsKMTQ0NzQ6
IHN0cnVjdCBkY19saW5rX3NldHRpbmdzOwoxNDQ3NDogc3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0
dGluZ3M7CjE0NDc0OiBzdHJ1Y3QgcGlwZV9jdHg7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBlbmNv
ZGVyX2luaXRfZGF0YSB7CjE0NDc0OiAgZW51bSBjaGFubmVsX2lkIGNoYW5uZWw7CjE0NDc0OiAg
c3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBjb25uZWN0b3I7CjE0NDc0OiAgZW51bSBocGRfc291
cmNlX2lkIGhwZF9zb3VyY2U7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0
X2lkIGVuY29kZXI7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6ICBlbnVt
IHRyYW5zbWl0dGVyIHRyYW5zbWl0dGVyOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGVuY29kZXJfZmVhdHVyZV9zdXBwb3J0IHsKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVj
dCB7CjE0NDc0OiAgICB1aW50MzJfdCBJU19IQlIyX0NBUEFCTEU6MTsKMTQ0NzQ6ICAgIHVpbnQz
Ml90IElTX0hCUjNfQ0FQQUJMRToxOwoxNDQ3NDogICAgdWludDMyX3QgSVNfVFBTM19DQVBBQkxF
OjE7CjE0NDc0OiAgICB1aW50MzJfdCBJU19UUFM0X0NBUEFCTEU6MTsKMTQ0NzQ6ICAgIHVpbnQz
Ml90IEhETUlfNkdCX0VOOjE7CjE0NDc0OiAgICB1aW50MzJfdCBEUF9JU19VU0JfQzoxOwoxNDQ3
NDogICB9IGJpdHM7CjE0NDc0OiAgIHVpbnQzMl90IHJhdzsKMTQ0NzQ6ICB9IGZsYWdzOwoxNDQ3
NDogCjE0NDc0OiAgZW51bSBkY19jb2xvcl9kZXB0aCBtYXhfaGRtaV9kZWVwX2NvbG9yOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBtYXhfaGRtaV9waXhlbF9jbG9jazsKMTQ0NzQ6ICBib29sIGhkbWlf
eWNiY3I0MjBfc3VwcG9ydGVkOwoxNDQ3NDogIGJvb2wgZHBfeWNiY3I0MjBfc3VwcG9ydGVkOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHBjZF9wc3JfY29uZmlndXJhdGlvbiB7CjE0
NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBFTkFCTEUgOiAxOwoxNDQ3NDog
ICB1bnNpZ25lZCBjaGFyIFRSQU5TTUlUVEVSX0FDVElWRV9JTl9QU1IgOiAxOwoxNDQ3NDogICB1
bnNpZ25lZCBjaGFyIENSQ19WRVJJRklDQVRJT04gOiAxOwoxNDQ3NDogICB1bnNpZ25lZCBjaGFy
IEZSQU1FX0NBUFRVUkVfSU5ESUNBVElPTiA6IDE7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQg
Y2hhciBMSU5FX0NBUFRVUkVfSU5ESUNBVElPTiA6IDE7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWdu
ZWQgY2hhciBJUlFfSFBEX1dJVEhfQ1JDX0VSUk9SIDogMTsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hh
ciBSRVNFUlZFRCA6IDI7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcmF3
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gcHNyX2Vycm9yX3N0YXR1cyB7CjE0NDc0
OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBMSU5LX0NSQ19FUlJPUiA6MTsKMTQ0
NzQ6ICAgdW5zaWduZWQgY2hhciBSRkJfU1RPUkFHRV9FUlJPUiA6MTsKMTQ0NzQ6ICAgdW5zaWdu
ZWQgY2hhciBSRVNFUlZFRCA6NjsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdW5zaWduZWQgY2hh
ciByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBwc3Jfc2lua19wc3Jfc3RhdHVz
IHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgU0lOS19TRUxGX1JFRlJF
U0hfU1RBVFVTIDozOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgUkVTRVJWRUQgOjU7CjE0NDc0OiAg
fSBiaXRzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGxpbmtfZW5jb2RlciB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGxpbmtfZW5jb2Rl
cl9mdW5jcyAqZnVuY3M7CjE0NDc0OiAgaW50MzJfdCBhdXhfY2hhbm5lbF9vZmZzZXQ7CjE0NDc0
OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6ICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0
X2lkIGlkOwoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgY29ubmVjdG9yOwoxNDQ3
NDogIHVpbnQzMl90IG91dHB1dF9zaWduYWxzOwoxNDQ3NDogIGVudW0gZW5naW5lX2lkIHByZWZl
cnJlZF9lbmdpbmU7CjE0NDc0OiAgc3RydWN0IGVuY29kZXJfZmVhdHVyZV9zdXBwb3J0IGZlYXR1
cmVzOwoxNDQ3NDogIGVudW0gdHJhbnNtaXR0ZXIgdHJhbnNtaXR0ZXI7CjE0NDc0OiAgZW51bSBo
cGRfc291cmNlX2lkIGhwZF9zb3VyY2U7CjE0NDc0OiAgYm9vbCB1c2JjX2NvbWJvX3BoeTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsaW5rX2VuY19zdGF0ZSB7CjE0NDc0OiAKMTQ0
NzQ6ICAgdWludDMyX3QgZHBoeV9mZWNfZW47CjE0NDc0OiAgIHVpbnQzMl90IGRwaHlfZmVjX3Jl
YWR5X3NoYWRvdzsKMTQ0NzQ6ICAgdWludDMyX3QgZHBoeV9mZWNfYWN0aXZlX3N0YXR1czsKMTQ0
NzQ6ICAgdWludDMyX3QgZHBfbGlua190cmFpbmluZ19jb21wbGV0ZTsKMTQ0NzQ6IAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGxpbmtfZW5jb2Rlcl9mdW5jcyB7CjE0NDc0OiAgdm9p
ZCAoKnJlYWRfc3RhdGUpKAoxNDQ3NDogICAgc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLCBzdHJ1
Y3QgbGlua19lbmNfc3RhdGUgKnMpOwoxNDQ3NDogIGJvb2wgKCp2YWxpZGF0ZV9vdXRwdXRfd2l0
aF9zdHJlYW0pKAoxNDQ3NDogICBzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMsIGNvbnN0IHN0cnVj
dCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAgdm9pZCAoKmh3X2luaXQpKHN0cnVj
dCBsaW5rX2VuY29kZXIgKmVuYyk7CjE0NDc0OiAgdm9pZCAoKnNldHVwKShzdHJ1Y3QgbGlua19l
bmNvZGVyICplbmMsCjE0NDc0OiAgIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKTsKMTQ0NzQ6ICB2
b2lkICgqZW5hYmxlX3RtZHNfb3V0cHV0KShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMsCjE0NDc0
OiAgIGVudW0gY2xvY2tfc291cmNlX2lkIGNsb2NrX3NvdXJjZSwKMTQ0NzQ6ICAgZW51bSBkY19j
b2xvcl9kZXB0aCBjb2xvcl9kZXB0aCwKMTQ0NzQ6ICAgZW51bSBzaWduYWxfdHlwZSBzaWduYWws
CjE0NDc0OiAgIHVpbnQzMl90IHBpeGVsX2Nsb2NrKTsKMTQ0NzQ6ICB2b2lkICgqZW5hYmxlX2Rw
X291dHB1dCkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3Qg
ZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5ncywKMTQ0NzQ6ICAgZW51bSBjbG9ja19zb3Vy
Y2VfaWQgY2xvY2tfc291cmNlKTsKMTQ0NzQ6ICB2b2lkICgqZW5hYmxlX2RwX21zdF9vdXRwdXQp
KHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX2xpbmtf
c2V0dGluZ3MgKmxpbmtfc2V0dGluZ3MsCjE0NDc0OiAgIGVudW0gY2xvY2tfc291cmNlX2lkIGNs
b2NrX3NvdXJjZSk7CjE0NDc0OiAgdm9pZCAoKmVuYWJsZV9sdmRzX291dHB1dCkoc3RydWN0IGxp
bmtfZW5jb2RlciAqZW5jLAoxNDQ3NDogICBlbnVtIGNsb2NrX3NvdXJjZV9pZCBjbG9ja19zb3Vy
Y2UsCjE0NDc0OiAgIHVpbnQzMl90IHBpeGVsX2Nsb2NrKTsKMTQ0NzQ6ICB2b2lkICgqZGlzYWJs
ZV9vdXRwdXQpKHN0cnVjdCBsaW5rX2VuY29kZXIgKmxpbmtfZW5jLAoxNDQ3NDogICBlbnVtIHNp
Z25hbF90eXBlIHNpZ25hbCk7CjE0NDc0OiAgdm9pZCAoKmRwX3NldF9sYW5lX3NldHRpbmdzKShz
dHJ1Y3QgbGlua19lbmNvZGVyICplbmMsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBsaW5rX3RyYWlu
aW5nX3NldHRpbmdzICpsaW5rX3NldHRpbmdzKTsKMTQ0NzQ6ICB2b2lkICgqZHBfc2V0X3BoeV9w
YXR0ZXJuKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBl
bmNvZGVyX3NldF9kcF9waHlfcGF0dGVybl9wYXJhbSAqcGFyYSk7CjE0NDc0OiAgdm9pZCAoKnVw
ZGF0ZV9tc3Rfc3RyZWFtX2FsbG9jYXRpb25fdGFibGUpKAoxNDQ3NDogICBzdHJ1Y3QgbGlua19l
bmNvZGVyICplbmMsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2Nh
dGlvbl90YWJsZSAqdGFibGUpOwoxNDQ3NDogIHZvaWQgKCpwc3JfcHJvZ3JhbV9kcF9kcGh5X2Zh
c3RfdHJhaW5pbmcpKHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgIGJvb2wgZXhp
dF9saW5rX3RyYWluaW5nX3JlcXVpcmVkKTsKMTQ0NzQ6ICB2b2lkICgqcHNyX3Byb2dyYW1fc2Vj
b25kYXJ5X3BhY2tldCkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAoxNDQ3NDogICAgIHVuc2ln
bmVkIGludCBzZHBfdHJhbnNtaXRfbGluZV9udW1fZGVhZGxpbmUpOwoxNDQ3NDogIHZvaWQgKCpj
b25uZWN0X2RpZ19iZV90b19mZSkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAoxNDQ3NDogICBl
bnVtIGVuZ2luZV9pZCBlbmdpbmUsCjE0NDc0OiAgIGJvb2wgY29ubmVjdCk7CjE0NDc0OiAgdm9p
ZCAoKmVuYWJsZV9ocGQpKHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYyk7CjE0NDc0OiAgdm9pZCAo
KmRpc2FibGVfaHBkKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMpOwoxNDQ3NDogIGJvb2wgKCpp
c19kaWdfZW5hYmxlZCkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgKCpnZXRfZGlnX2Zyb250ZW5kKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMpOwoxNDQ3
NDogIHZvaWQgKCpkZXN0cm95KShzdHJ1Y3QgbGlua19lbmNvZGVyICoqZW5jKTsKMTQ0NzQ6IAox
NDQ3NDogIHZvaWQgKCpmZWNfc2V0X2VuYWJsZSkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAox
NDQ3NDogICBib29sIGVuYWJsZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZmVjX3NldF9yZWFk
eSkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAoxNDQ3NDogICBib29sIHJlYWR5KTsKMTQ0NzQ6
IAoxNDQ3NDogIGJvb2wgKCpmZWNfaXNfYWN0aXZlKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMp
OwoxNDQ3NDogIGJvb2wgKCppc19pbl9hbHRfbW9kZSkgKHN0cnVjdCBsaW5rX2VuY29kZXIgKmVu
Yyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZ2V0X21heF9saW5rX2NhcCkoc3RydWN0IGxpbmtf
ZW5jb2RlciAqZW5jLAoxNDQ3NDogICBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0
aW5ncyk7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHNpZ25hbF90eXBlICgqZ2V0X2RpZ19tb2RlKSgK
MTQ0NzQ6ICAgc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDMz
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3X3NlcXVl
bmNlci5oIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvY29yZV9zdGF0dXMuaCIgMQoxNDQ3NDogIyAyOSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3N0YXR1cy5oIgoxNDQ3NDogZW51
bSBkY19zdGF0dXMgewoxNDQ3NDogIERDX09LID0gMSwKMTQ0NzQ6IAoxNDQ3NDogIERDX05PX0NP
TlRST0xMRVJfUkVTT1VSQ0UgPSAyLAoxNDQ3NDogIERDX05PX1NUUkVBTV9FTkNfUkVTT1VSQ0Ug
PSAzLAoxNDQ3NDogIERDX05PX0NMT0NLX1NPVVJDRV9SRVNPVVJDRSA9IDQsCjE0NDc0OiAgRENf
RkFJTF9DT05UUk9MTEVSX1ZBTElEQVRFID0gNSwKMTQ0NzQ6ICBEQ19GQUlMX0VOQ19WQUxJREFU
RSA9IDYsCjE0NDc0OiAgRENfRkFJTF9BVFRBQ0hfU1VSRkFDRVMgPSA3LAoxNDQ3NDogIERDX0ZB
SUxfREVUQUNIX1NVUkZBQ0VTID0gOCwKMTQ0NzQ6ICBEQ19GQUlMX1NVUkZBQ0VfVkFMSURBVEUg
PSA5LAoxNDQ3NDogIERDX05PX0RQX0xJTktfQkFORFdJRFRIID0gMTAsCjE0NDc0OiAgRENfRVhD
RUVEX0RPTkdMRV9DQVAgPSAxMSwKMTQ0NzQ6ICBEQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9VTlNV
UFBPUlRFRCA9IDEyLAoxNDQ3NDogIERDX0ZBSUxfQkFORFdJRFRIX1ZBTElEQVRFID0gMTMsCjE0
NDc0OiAgRENfRkFJTF9TQ0FMSU5HID0gMTQsCjE0NDc0OiAgRENfRkFJTF9EUF9MSU5LX1RSQUlO
SU5HID0gMTUsCjE0NDc0OiAgRENfRkFJTF9EU0NfVkFMSURBVEUgPSAxNiwKMTQ0NzQ6ICBEQ19O
T19EU0NfUkVTT1VSQ0UgPSAxNywKMTQ0NzQ6ICBEQ19GQUlMX1VOU1VQUE9SVEVEXzEgPSAxOCwK
MTQ0NzQ6ICBEQ19GQUlMX0NMS19FWENFRURfTUFYID0gMjEsCjE0NDc0OiAgRENfRkFJTF9DTEtf
QkVMT1dfTUlOID0gMjIsCjE0NDc0OiAgRENfRkFJTF9DTEtfQkVMT1dfQ0ZHX1JFUVVJUkVEID0g
MjMsCjE0NDc0OiAKMTQ0NzQ6ICBEQ19FUlJPUl9VTkVYUEVDVEVEID0gLTEKMTQ0NzQ6IH07CjE0
NDc0OiAjIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L2h3X3NlcXVlbmNlci5oIiAyCjE0NDc0OiAKMTQ0NzQ6IGVudW0gdmxpbmVfc2VsZWN0IHsKMTQ0
NzQ6ICBWTElORTAsCjE0NDc0OiAgVkxJTkUxCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgcGlwZV9jdHg7CjE0NDc0OiBzdHJ1Y3QgZGNfc3RhdGU7CjE0NDc0OiBzdHJ1Y3QgZGNfc3Ry
ZWFtX3N0YXR1czsKMTQ0NzQ6IHN0cnVjdCBkY193cml0ZWJhY2tfaW5mbzsKMTQ0NzQ6IHN0cnVj
dCBkY2h1Yl9pbml0X2RhdGE7CjE0NDc0OiBzdHJ1Y3QgZGNfc3RhdGljX3NjcmVlbl9wYXJhbXM7
CjE0NDc0OiBzdHJ1Y3QgcmVzb3VyY2VfcG9vbDsKMTQ0NzQ6IHN0cnVjdCBkY19waHlfYWRkcl9z
cGFjZV9jb25maWc7CjE0NDc0OiBzdHJ1Y3QgZGNfdmlydHVhbF9hZGRyX3NwYWNlX2NvbmZpZzsK
MTQ0NzQ6IHN0cnVjdCBkcHA7CjE0NDc0OiBzdHJ1Y3QgZGNlX2h3c2VxOwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgaHdfc2VxdWVuY2VyX2Z1bmNzIHsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCplZHBf
cG93ZXJfY29udHJvbCkoc3RydWN0IGRjX2xpbmsgKmxpbmssIGJvb2wgZW5hYmxlKTsKMTQ0NzQ6
ICB2b2lkICgqZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSkoc3RydWN0IGRjX2xpbmsgKmxpbmssIGJv
b2wgcG93ZXJfdXApOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaW5pdF9odykoc3Ry
dWN0IGRjICpkYyk7CjE0NDc0OiAgdm9pZCAoKmVuYWJsZV9hY2NlbGVyYXRlZF9tb2RlKShzdHJ1
Y3QgZGMgKmRjLAoxNDQ3NDogICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKMTQ0NzQ6ICBl
bnVtIGRjX3N0YXR1cyAoKmFwcGx5X2N0eF90b19odykoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAg
IHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAgdm9pZCAoKmRpc2FibGVfcGxhbmUp
KHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogIHZvaWQg
KCphcHBseV9jdHhfZm9yX3N1cmZhY2UpKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICBjb25zdCBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0OiAgICBpbnQgbnVtX3BsYW5lcywg
c3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKMTQ0NzQ6ICB2b2lkICgqcHJvZ3JhbV9mcm9udF9l
bmRfZm9yX2N0eCkoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdGF0ZSAqY29u
dGV4dCk7CjE0NDc0OiAgdm9pZCAoKnVwZGF0ZV9wbGFuZV9hZGRyKShjb25zdCBzdHJ1Y3QgZGMg
KmRjLAoxNDQ3NDogICAgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CjE0NDc0OiAgdm9pZCAo
KnVwZGF0ZV9kY2h1Yikoc3RydWN0IGRjZV9od3NlcSAqaHdzLAoxNDQ3NDogICAgc3RydWN0IGRj
aHViX2luaXRfZGF0YSAqZGhfZGF0YSk7CjE0NDc0OiAgdm9pZCAoKndhaXRfZm9yX21wY2NfZGlz
Y29ubmVjdCkoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgIHN0cnVjdCByZXNvdXJjZV9wb29sICpy
ZXNfcG9vbCwKMTQ0NzQ6ICAgIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogIHZv
aWQgKCpwcm9ncmFtX3RyaXBsZWJ1ZmZlcikoY29uc3Qgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAg
c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgYm9vbCBlbmFibGVUcmlwbGVCdWZmZXIpOwoxNDQ3
NDogIHZvaWQgKCp1cGRhdGVfcGVuZGluZ19zdGF0dXMpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9j
dHgpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqcGlwZV9jb250cm9sX2xvY2tfZ2xv
YmFsKShzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgc3RydWN0IHBpcGVfY3R4ICpwaXBlLCBib29s
IGxvY2spOwoxNDQ3NDogIHZvaWQgKCpwaXBlX2NvbnRyb2xfbG9jaykoc3RydWN0IGRjICpkYywK
MTQ0NzQ6ICAgIHN0cnVjdCBwaXBlX2N0eCAqcGlwZSwgYm9vbCBsb2NrKTsKMTQ0NzQ6ICB2b2lk
ICgqc2V0X2ZsaXBfY29udHJvbF9nc2wpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCjE0NDc0
OiAgICBib29sIGZsaXBfaW1tZWRpYXRlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAo
KmdldF9wb3NpdGlvbikoc3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsIGludCBudW1fcGlwZXMs
CjE0NDc0OiAgICBzdHJ1Y3QgY3J0Y19wb3NpdGlvbiAqcG9zaXRpb24pOwoxNDQ3NDogIGludCAo
KmdldF92dXBkYXRlX29mZnNldF9mcm9tX3ZzeW5jKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4
KTsKMTQ0NzQ6ICB2b2lkICgqZW5hYmxlX3Blcl9mcmFtZV9jcnRjX3Bvc2l0aW9uX3Jlc2V0KShz
dHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgaW50IGdyb3VwX3NpemUsIHN0cnVjdCBwaXBlX2N0eCAq
Z3JvdXBlZF9waXBlc1tdKTsKMTQ0NzQ6ICB2b2lkICgqZW5hYmxlX3RpbWluZ19zeW5jaHJvbml6
YXRpb24pKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICBpbnQgZ3JvdXBfaW5kZXgsIGludCBncm91
cF9zaXplLAoxNDQ3NDogICAgc3RydWN0IHBpcGVfY3R4ICpncm91cGVkX3BpcGVzW10pOwoxNDQ3
NDogIHZvaWQgKCpzZXR1cF9wZXJpb2RpY19pbnRlcnJ1cHQpKHN0cnVjdCBkYyAqZGMsCjE0NDc0
OiAgICBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAoxNDQ3NDogICAgZW51bSB2bGluZV9zZWxl
Y3QgdmxpbmUpOwoxNDQ3NDogIHZvaWQgKCpzZXRfZHJyKShzdHJ1Y3QgcGlwZV9jdHggKipwaXBl
X2N0eCwgaW50IG51bV9waXBlcywKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCB2bWluLCB1bnNpZ25l
ZCBpbnQgdm1heCwKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCB2bWlkLCB1bnNpZ25lZCBpbnQgdm1p
ZF9mcmFtZV9udW1iZXIpOwoxNDQ3NDogIHZvaWQgKCpzZXRfc3RhdGljX3NjcmVlbl9jb250cm9s
KShzdHJ1Y3QgcGlwZV9jdHggKipwaXBlX2N0eCwKMTQ0NzQ6ICAgIGludCBudW1fcGlwZXMsCjE0
NDc0OiAgICBjb25zdCBzdHJ1Y3QgZGNfc3RhdGljX3NjcmVlbl9wYXJhbXMgKmV2ZW50cyk7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCplbmFibGVfc3RyZWFtKShzdHJ1Y3QgcGlwZV9j
dHggKnBpcGVfY3R4KTsKMTQ0NzQ6ICB2b2lkICgqZGlzYWJsZV9zdHJlYW0pKHN0cnVjdCBwaXBl
X2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogIHZvaWQgKCpibGFua19zdHJlYW0pKHN0cnVjdCBwaXBl
X2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogIHZvaWQgKCp1bmJsYW5rX3N0cmVhbSkoc3RydWN0IHBp
cGVfY3R4ICpwaXBlX2N0eCwKMTQ0NzQ6ICAgIHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5r
X3NldHRpbmdzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnByZXBhcmVfYmFuZHdp
ZHRoKShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogIGJv
b2wgKCp1cGRhdGVfYmFuZHdpZHRoKShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNv
bnRleHQpOwoxNDQ3NDogIHZvaWQgKCpvcHRpbWl6ZV9iYW5kd2lkdGgpKHN0cnVjdCBkYyAqZGMs
IHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQg
KCpzZXRfYXZtdXRlKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBib29sIGVuYWJsZSk7CjE0
NDc0OiAgdm9pZCAoKnNlbmRfaW1tZWRpYXRlX3NkcF9tZXNzYWdlKSgKMTQ0NzQ6ICAgIHN0cnVj
dCBwaXBlX2N0eCAqcGlwZV9jdHgsCjE0NDc0OiAgICBjb25zdCB1aW50OF90ICpjdXN0b21fc2Rw
X21lc3NhZ2UsCjE0NDc0OiAgICB1bnNpZ25lZCBpbnQgc2RwX21lc3NhZ2Vfc2l6ZSk7CjE0NDc0
OiAgdm9pZCAoKnVwZGF0ZV9pbmZvX2ZyYW1lKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsK
MTQ0NzQ6ICB2b2lkICgqc2V0X2RtZGF0YV9hdHRyaWJ1dGVzKShzdHJ1Y3QgcGlwZV9jdHggKnBp
cGUpOwoxNDQ3NDogIHZvaWQgKCpwcm9ncmFtX2RtZGF0YV9lbmdpbmUpKHN0cnVjdCBwaXBlX2N0
eCAqcGlwZV9jdHgpOwoxNDQ3NDogIGJvb2wgKCpkbWRhdGFfc3RhdHVzX2RvbmUpKHN0cnVjdCBw
aXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X2N1
cnNvcl9wb3NpdGlvbikoc3RydWN0IHBpcGVfY3R4ICpwaXBlKTsKMTQ0NzQ6ICB2b2lkICgqc2V0
X2N1cnNvcl9hdHRyaWJ1dGUpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZSk7CjE0NDc0OiAgdm9pZCAo
KnNldF9jdXJzb3Jfc2RyX3doaXRlX2xldmVsKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGUpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqcHJvZ3JhbV9nYW11dF9yZW1hcCkoc3RydWN0IHBp
cGVfY3R4ICpwaXBlX2N0eCk7CjE0NDc0OiAgdm9pZCAoKnByb2dyYW1fb3V0cHV0X2NzYykoc3Ry
dWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKMTQ0NzQ6ICAgIGVudW0gZGNf
Y29sb3Jfc3BhY2UgY29sb3JzcGFjZSwKMTQ0NzQ6ICAgIHVpbnQxNl90ICptYXRyaXgsIGludCBv
cHBfaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCppbml0X3N5c19jdHgpKHN0cnVj
dCBkY2VfaHdzZXEgKmh3cywKMTQ0NzQ6ICAgIHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICBzdHJ1
Y3QgZGNfcGh5X2FkZHJfc3BhY2VfY29uZmlnICpwYV9jb25maWcpOwoxNDQ3NDogIHZvaWQgKCpp
bml0X3ZtX2N0eCkoc3RydWN0IGRjZV9od3NlcSAqaHdzLAoxNDQ3NDogICAgc3RydWN0IGRjICpk
YywKMTQ0NzQ6ICAgIHN0cnVjdCBkY192aXJ0dWFsX2FkZHJfc3BhY2VfY29uZmlnICp2YV9jb25m
aWcsCjE0NDc0OiAgICBpbnQgdm1pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCp1
cGRhdGVfd3JpdGViYWNrKShzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgc3RydWN0IGRjX3dyaXRl
YmFja19pbmZvICp3Yl9pbmZvLAoxNDQ3NDogICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsK
MTQ0NzQ6ICB2b2lkICgqZW5hYmxlX3dyaXRlYmFjaykoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAg
IHN0cnVjdCBkY193cml0ZWJhY2tfaW5mbyAqd2JfaW5mbywKMTQ0NzQ6ICAgIHN0cnVjdCBkY19z
dGF0ZSAqY29udGV4dCk7CjE0NDc0OiAgdm9pZCAoKmRpc2FibGVfd3JpdGViYWNrKShzdHJ1Y3Qg
ZGMgKmRjLAoxNDQ3NDogICAgdW5zaWduZWQgaW50IGR3Yl9waXBlX2luc3QpOwoxNDQ3NDogCjE0
NDc0OiAgYm9vbCAoKm1taHViYnViX3dhcm11cCkoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgIHVu
c2lnbmVkIGludCBudW1fZHdiLAoxNDQ3NDogICAgc3RydWN0IGRjX3dyaXRlYmFja19pbmZvICp3
Yl9pbmZvKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19zdGF0dXMgKCpzZXRfY2xv
Y2spKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICBlbnVtIGRjX2Nsb2NrX3R5cGUgY2xvY2tfdHlw
ZSwKMTQ0NzQ6ICAgIHVpbnQzMl90IGNsa19raHosIHVpbnQzMl90IHN0ZXBwaW5nKTsKMTQ0NzQ6
ICB2b2lkICgqZ2V0X2Nsb2NrKShzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRjX2Nsb2NrX3R5cGUgY2xv
Y2tfdHlwZSwKMTQ0NzQ6ICAgIHN0cnVjdCBkY19jbG9ja19jb25maWcgKmNsb2NrX2NmZyk7CjE0
NDc0OiAgdm9pZCAoKm9wdGltaXplX3B3cl9zdGF0ZSkoY29uc3Qgc3RydWN0IGRjICpkYywKMTQ0
NzQ6ICAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAgdm9pZCAoKmV4aXRfb3B0
aW1pemVkX3B3cl9zdGF0ZSkoY29uc3Qgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgIHN0cnVjdCBk
Y19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCplbmFibGVf
YXVkaW9fc3RyZWFtKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKMTQ0NzQ6ICB2b2lkICgq
ZGlzYWJsZV9hdWRpb19zdHJlYW0pKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0dXBfc3RlcmVvKShzdHJ1Y3QgcGlwZV9jdHggKnBp
cGVfY3R4LCBzdHJ1Y3QgZGMgKmRjKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmxv
Z19od19zdGF0ZSkoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX2xvZ19idWZmZXJfY3R4ICpsb2df
Y3R4KTsKMTQ0NzQ6ICB2b2lkICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgZGMgKmRjLCBjaGFyICpw
QnVmLAoxNDQ3NDogICAgdW5zaWduZWQgaW50IGJ1ZlNpemUsIHVuc2lnbmVkIGludCBtYXNrKTsK
MTQ0NzQ6ICB2b2lkICgqY2xlYXJfc3RhdHVzX2JpdHMpKHN0cnVjdCBkYyAqZGMsIHVuc2lnbmVk
IGludCBtYXNrKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lk
IGNvbG9yX3NwYWNlX3RvX2JsYWNrX2NvbG9yKAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkYyAqZGMs
CjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcnNwYWNlLAoxNDQ3NDogIHN0cnVjdCB0
Z19jb2xvciAqYmxhY2tfY29sb3IpOwoxNDQ3NDogCjE0NDc0OiBib29sIGh3c3Nfd2FpdF9mb3Jf
YmxhbmtfY29tcGxldGUoCjE0NDc0OiAgIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CjE0
NDc0OiAKMTQ0NzQ6IGNvbnN0IHVpbnQxNl90ICpmaW5kX2NvbG9yX21hdHJpeCgKMTQ0NzQ6ICAg
ZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcl9zcGFjZSwKMTQ0NzQ6ICAgdWludDMyX3QgKmFycmF5
X3NpemUpOwoxNDQ3NDogIyAzOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2RjLmgiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2luYy9jb21wcmVzc29yLmgiIDEKMTQ0NzQ6ICMgMzAgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29tcHJlc3Nvci5oIgoxNDQ3NDog
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9z
X3BhcnNlcl9pbnRlcmZhY2UuaCIgMQoxNDQ3NDogIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfaW50ZXJmYWNlLmgiCjE0NDc0
OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY19iaW9z
X3R5cGVzLmgiIDEKMTQ0NzQ6ICMgNDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kY19iaW9zX3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3QgZGNfdmJpb3NfZnVuY3Mg
ewoxNDQ3NDogIHVpbnQ4X3QgKCpnZXRfY29ubmVjdG9yc19udW1iZXIpKHN0cnVjdCBkY19iaW9z
ICpiaW9zKTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgKCpnZXRf
Y29ubmVjdG9yX2lkKSgKMTQ0NzQ6ICAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0NDc0OiAgIHVp
bnQ4X3QgY29ubmVjdG9yX2luZGV4KTsKMTQ0NzQ6ICBlbnVtIGJwX3Jlc3VsdCAoKmdldF9zcmNf
b2JqKSgKMTQ0NzQ6ICAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0NDc0OiAgIHN0cnVjdCBncmFw
aGljc19vYmplY3RfaWQgb2JqZWN0X2lkLCB1aW50MzJfdCBpbmRleCwKMTQ0NzQ6ICAgc3RydWN0
IGdyYXBoaWNzX29iamVjdF9pZCAqc3JjX29iamVjdF9pZCk7CjE0NDc0OiAgZW51bSBicF9yZXN1
bHQgKCpnZXRfaTJjX2luZm8pKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqZGNiLAoxNDQ3NDog
ICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlkLAoxNDQ3NDogICBzdHJ1Y3QgZ3JhcGhpY3Nf
b2JqZWN0X2kyY19pbmZvICppbmZvKTsKMTQ0NzQ6ICBlbnVtIGJwX3Jlc3VsdCAoKmdldF9ocGRf
aW5mbykoCjE0NDc0OiAgIHN0cnVjdCBkY19iaW9zICpiaW9zLAoxNDQ3NDogICBzdHJ1Y3QgZ3Jh
cGhpY3Nfb2JqZWN0X2lkIGlkLAoxNDQ3NDogICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2hwZF9p
bmZvICppbmZvKTsKMTQ0NzQ6ICBlbnVtIGJwX3Jlc3VsdCAoKmdldF9kZXZpY2VfdGFnKSgKMTQ0
NzQ6ICAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0NDc0OiAgIHN0cnVjdCBncmFwaGljc19vYmpl
Y3RfaWQgY29ubmVjdG9yX29iamVjdF9pZCwKMTQ0NzQ6ICAgdWludDMyX3QgZGV2aWNlX3RhZ19p
bmRleCwKMTQ0NzQ6ICAgc3RydWN0IGNvbm5lY3Rvcl9kZXZpY2VfdGFnX2luZm8gKmluZm8pOwox
NDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqZ2V0X3NwcmVhZF9zcGVjdHJ1bV9pbmZvKSgKMTQ0NzQ6
ICAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0NDc0OiAgIGVudW0gYXNfc2lnbmFsX3R5cGUgc2ln
bmFsLAoxNDQ3NDogICB1aW50MzJfdCBpbmRleCwKMTQ0NzQ6ICAgc3RydWN0IHNwcmVhZF9zcGVj
dHJ1bV9pbmZvICpzc19pbmZvKTsKMTQ0NzQ6ICB1aW50MzJfdCAoKmdldF9zc19lbnRyeV9udW1i
ZXIpKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgZW51bSBhc19zaWdu
YWxfdHlwZSBzaWduYWwpOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqZ2V0X2VtYmVkZGVkX3Bh
bmVsX2luZm8pKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgc3RydWN0
IGVtYmVkZGVkX3BhbmVsX2luZm8gKmluZm8pOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqZ2V0
X2dwaW9fcGluX2luZm8pKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAg
dWludDMyX3QgZ3Bpb19pZCwKMTQ0NzQ6ICAgc3RydWN0IGdwaW9fcGluX2luZm8gKmluZm8pOwox
NDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqZ2V0X2VuY29kZXJfY2FwX2luZm8pKAoxNDQ3NDogICBz
dHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBv
YmplY3RfaWQsCjE0NDc0OiAgIHN0cnVjdCBicF9lbmNvZGVyX2NhcF9pbmZvICppbmZvKTsKMTQ0
NzQ6IAoxNDQ3NDogIGJvb2wgKCppc19hY2NlbGVyYXRlZF9tb2RlKSgKMTQ0NzQ6ICAgc3RydWN0
IGRjX2Jpb3MgKmJpb3MpOwoxNDQ3NDogIHZvaWQgKCpzZXRfc2NyYXRjaF9jcml0aWNhbF9zdGF0
ZSkoCjE0NDc0OiAgIHN0cnVjdCBkY19iaW9zICpiaW9zLAoxNDQ3NDogICBib29sIHN0YXRlKTsK
MTQ0NzQ6ICBib29sICgqaXNfZGV2aWNlX2lkX3N1cHBvcnRlZCkoCjE0NDc0OiAgIHN0cnVjdCBk
Y19iaW9zICpiaW9zLAoxNDQ3NDogICBzdHJ1Y3QgZGV2aWNlX2lkIGlkKTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGJwX3Jlc3VsdCAoKmVuY29kZXJfY29udHJvbCkoCjE0
NDc0OiAgIHN0cnVjdCBkY19iaW9zICpiaW9zLAoxNDQ3NDogICBzdHJ1Y3QgYnBfZW5jb2Rlcl9j
b250cm9sICpjbnRsKTsKMTQ0NzQ6ICBlbnVtIGJwX3Jlc3VsdCAoKnRyYW5zbWl0dGVyX2NvbnRy
b2wpKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgc3RydWN0IGJwX3Ry
YW5zbWl0dGVyX2NvbnRyb2wgKmNudGwpOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqZW5hYmxl
X2NydGMpKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgZW51bSBjb250
cm9sbGVyX2lkIGlkLAoxNDQ3NDogICBib29sIGVuYWJsZSk7CjE0NDc0OiAgZW51bSBicF9yZXN1
bHQgKCphZGp1c3RfcGl4ZWxfY2xvY2spKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywK
MTQ0NzQ6ICAgc3RydWN0IGJwX2FkanVzdF9waXhlbF9jbG9ja19wYXJhbWV0ZXJzICpicF9wYXJh
bXMpOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqc2V0X3BpeGVsX2Nsb2NrKSgKMTQ0NzQ6ICAg
c3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0NDc0OiAgIHN0cnVjdCBicF9waXhlbF9jbG9ja19wYXJh
bWV0ZXJzICpicF9wYXJhbXMpOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqc2V0X2RjZV9jbG9j
aykoCjE0NDc0OiAgIHN0cnVjdCBkY19iaW9zICpiaW9zLAoxNDQ3NDogICBzdHJ1Y3QgYnBfc2V0
X2RjZV9jbG9ja19wYXJhbWV0ZXJzICpicF9wYXJhbXMpOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0
ICgqZW5hYmxlX3NwcmVhZF9zcGVjdHJ1bV9vbl9wcGxsKSgKMTQ0NzQ6ICAgc3RydWN0IGRjX2Jp
b3MgKmJpb3MsCjE0NDc0OiAgIHN0cnVjdCBicF9zcHJlYWRfc3BlY3RydW1fcGFyYW1ldGVycyAq
YnBfcGFyYW1zLAoxNDQ3NDogICBib29sIGVuYWJsZSk7CjE0NDc0OiAgZW51bSBicF9yZXN1bHQg
KCpwcm9ncmFtX2NydGNfdGltaW5nKSgKMTQ0NzQ6ICAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0
NDc0OiAgIHN0cnVjdCBicF9od19jcnRjX3RpbWluZ19wYXJhbWV0ZXJzICpicF9wYXJhbXMpOwox
NDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqcHJvZ3JhbV9kaXNwbGF5X2VuZ2luZV9wbGwpKAoxNDQ3
NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgc3RydWN0IGJwX3BpeGVsX2Nsb2Nr
X3BhcmFtZXRlcnMgKmJwX3BhcmFtcyk7CjE0NDc0OiAgZW51bSBicF9yZXN1bHQgKCplbmFibGVf
ZGlzcF9wb3dlcl9nYXRpbmcpKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6
ICAgZW51bSBjb250cm9sbGVyX2lkIGNvbnRyb2xsZXJfaWQsCjE0NDc0OiAgIGVudW0gYnBfcGlw
ZV9jb250cm9sX2FjdGlvbiBhY3Rpb24pOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmJpb3NfcGFy
c2VyX2Rlc3Ryb3kpKHN0cnVjdCBkY19iaW9zICoqZGNiKTsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0g
YnBfcmVzdWx0ICgqZ2V0X2JvYXJkX2xheW91dF9pbmZvKSgKMTQ0NzQ6ICAgc3RydWN0IGRjX2Jp
b3MgKmRjYiwKMTQ0NzQ6ICAgc3RydWN0IGJvYXJkX2xheW91dF9pbmZvICpib2FyZF9sYXlvdXRf
aW5mbyk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYmlvc19yZWdpc3RlcnMgewox
NDQ3NDogIHVpbnQzMl90IEJJT1NfU0NSQVRDSF8zOwoxNDQ3NDogIHVpbnQzMl90IEJJT1NfU0NS
QVRDSF82OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX2Jpb3MgewoxNDQ3NDog
IGNvbnN0IHN0cnVjdCBkY192Ymlvc19mdW5jcyAqZnVuY3M7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50
OF90ICpiaW9zOwoxNDQ3NDogIHVpbnQzMl90IGJpb3Nfc2l6ZTsKMTQ0NzQ6IAoxNDQ3NDogIHVp
bnQ4X3QgKmJpb3NfbG9jYWxfaW1hZ2U7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4
dCAqY3R4OwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBiaW9zX3JlZ2lzdGVycyAqcmVnczsKMTQ0NzQ6
ICBzdHJ1Y3QgaW50ZWdyYXRlZF9pbmZvICppbnRlZ3JhdGVkX2luZm87CjE0NDc0OiAgc3RydWN0
IGRjX2Zpcm13YXJlX2luZm8gZndfaW5mbzsKMTQ0NzQ6ICBib29sIGZ3X2luZm9fdmFsaWQ7CjE0
NDc0OiB9OwoxNDQ3NDogIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfaW50ZXJmYWNlLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGJpb3NfcGFyc2VyOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnBfaW5pdF9kYXRhIHsKMTQ0
NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIHVpbnQ4X3QgKmJpb3M7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfYmlvcyAqZGFsX2Jpb3NfcGFyc2VyX2NyZWF0
ZSgKMTQ0NzQ6ICBzdHJ1Y3QgYnBfaW5pdF9kYXRhICppbml0LAoxNDQ3NDogIGVudW0gZGNlX3Zl
cnNpb24gZGNlX3ZlcnNpb24pOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGRhbF9iaW9zX3BhcnNlcl9k
ZXN0cm95KHN0cnVjdCBkY19iaW9zICoqZGNiKTsKMTQ0NzQ6ICMgMzEgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29tcHJlc3Nvci5oIiAyCjE0NDc0OiAK
MTQ0NzQ6IGVudW0gZmJjX2NvbXByZXNzX3JhdGlvIHsKMTQ0NzQ6ICBGQkNfQ09NUFJFU1NfUkFU
SU9fSU5WQUxJRCA9IDAsCjE0NDc0OiAgRkJDX0NPTVBSRVNTX1JBVElPXzFUTzEgPSAxLAoxNDQ3
NDogIEZCQ19DT01QUkVTU19SQVRJT18yVE8xID0gMiwKMTQ0NzQ6ICBGQkNfQ09NUFJFU1NfUkFU
SU9fNFRPMSA9IDQsCjE0NDc0OiAgRkJDX0NPTVBSRVNTX1JBVElPXzhUTzEgPSA4LAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZmJjX3BoeXNpY2FsX2FkZHJlc3MgewoxNDQ3NDogIHN0
cnVjdCB7CjE0NDc0OiAgIHVpbnQzMl90IGxvd19wYXJ0OwoxNDQ3NDogICBpbnQzMl90IGhpZ2hf
cGFydDsKMTQ0NzQ6ICB9IGFkZHI7CjE0NDc0OiAgdWludDY0X3QgcXVhZF9wYXJ0OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNvbXByX2FkZHJfYW5kX3BpdGNoX3BhcmFtcyB7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBpbnN0OwoxNDQ3NDogIHVpbnQzMl90IHNvdXJjZV92aWV3
X3dpZHRoOwoxNDQ3NDogIHVpbnQzMl90IHNvdXJjZV92aWV3X2hlaWdodDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gZmJjX2h3X21heF9yZXNvbHV0aW9uX3N1cHBvcnRlZCB7CjE0NDc0
OiAgRkJDX01BWF9YID0gMzg0MCwKMTQ0NzQ6ICBGQkNfTUFYX1kgPSAyNDAwLAoxNDQ3NDogIEZC
Q19NQVhfWF9TRyA9IDE5MjAsCjE0NDc0OiAgRkJDX01BWF9ZX1NHID0gMTA4MCwKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjb21wcmVzc29yOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
Y29tcHJlc3Nvcl9mdW5jcyB7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqcG93ZXJfdXBfZmJjKShz
dHJ1Y3QgY29tcHJlc3NvciAqY3ApOwoxNDQ3NDogIHZvaWQgKCplbmFibGVfZmJjKShzdHJ1Y3Qg
Y29tcHJlc3NvciAqY3AsCjE0NDc0OiAgIHN0cnVjdCBjb21wcl9hZGRyX2FuZF9waXRjaF9wYXJh
bXMgKnBhcmFtcyk7CjE0NDc0OiAgdm9pZCAoKmRpc2FibGVfZmJjKShzdHJ1Y3QgY29tcHJlc3Nv
ciAqY3ApOwoxNDQ3NDogIHZvaWQgKCpzZXRfZmJjX2ludmFsaWRhdGlvbl90cmlnZ2Vycykoc3Ry
dWN0IGNvbXByZXNzb3IgKmNwLAoxNDQ3NDogICB1aW50MzJfdCBmYmNfdHJpZ2dlcik7CjE0NDc0
OiAgdm9pZCAoKnN1cmZhY2VfYWRkcmVzc19hbmRfcGl0Y2gpKAoxNDQ3NDogICBzdHJ1Y3QgY29t
cHJlc3NvciAqY3AsCjE0NDc0OiAgIHN0cnVjdCBjb21wcl9hZGRyX2FuZF9waXRjaF9wYXJhbXMg
KnBhcmFtcyk7CjE0NDc0OiAgYm9vbCAoKmlzX2ZiY19lbmFibGVkX2luX2h3KShzdHJ1Y3QgY29t
cHJlc3NvciAqY3AsCjE0NDc0OiAgIHVpbnQzMl90ICpmYmNfbWFwcGVkX2NydGNfaWQpOwoxNDQ3
NDogfTsKMTQ0NzQ6IHN0cnVjdCBjb21wcmVzc29yIHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4
dCAqY3R4OwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgYXR0YWNoZWRfaW5zdDsKMTQ0NzQ6ICBi
b29sIGlzX2VuYWJsZWQ7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGNvbXByZXNzb3JfZnVuY3MgKmZ1
bmNzOwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgdWludDMyX3QgcmF3OwoxNDQ3NDogICBzdHJ1
Y3QgewoxNDQ3NDogICAgdWludDMyX3QgRkJDX1NVUFBPUlQ6MTsKMTQ0NzQ6ICAgIHVpbnQzMl90
IEZCX1BPT0w6MTsKMTQ0NzQ6ICAgIHVpbnQzMl90IERZTkFNSUNfQUxMT0M6MTsKMTQ0NzQ6ICAg
IHVpbnQzMl90IExQVF9TVVBQT1JUOjE7CjE0NDc0OiAgICB1aW50MzJfdCBMUFRfTUNfQ09ORklH
OjE7CjE0NDc0OiAgICB1aW50MzJfdCBEVU1NWV9CQUNLRU5EOjE7CjE0NDc0OiAgICB1aW50MzJf
dCBDTEtfR0FUSU5HX0RJU0FCTEVEOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgfSBiaXRzOwoxNDQ3NDog
IH0gb3B0aW9uczsKMTQ0NzQ6IAoxNDQ3NDogIHVuaW9uIGZiY19waHlzaWNhbF9hZGRyZXNzIGNv
bXByX3N1cmZhY2VfYWRkcmVzczsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGVtYmVkZGVkX3Bh
bmVsX2hfc2l6ZTsKMTQ0NzQ6ICB1aW50MzJfdCBlbWJlZGRlZF9wYW5lbF92X3NpemU7CjE0NDc0
OiAgdWludDMyX3QgbWVtb3J5X2J1c193aWR0aDsKMTQ0NzQ6ICB1aW50MzJfdCBiYW5rc19udW07
CjE0NDc0OiAgdWludDMyX3QgcmF3X3NpemU7CjE0NDc0OiAgdWludDMyX3QgY2hhbm5lbF9pbnRl
cmxlYXZlX3NpemU7CjE0NDc0OiAgdWludDMyX3QgZHJhbV9jaGFubmVsc19udW07CjE0NDc0OiAK
MTQ0NzQ6ICB1aW50MzJfdCBhbGxvY2F0ZWRfc2l6ZTsKMTQ0NzQ6ICB1aW50MzJfdCBwcmVmZXJy
ZWRfcmVxdWVzdGVkX3NpemU7CjE0NDc0OiAgdWludDMyX3QgbHB0X2NoYW5uZWxzX251bTsKMTQ0
NzQ6ICBlbnVtIGZiY19jb21wcmVzc19yYXRpbyBtaW5fY29tcHJlc3NfcmF0aW87CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZmJjX2lucHV0X2luZm8gewoxNDQ3NDogIGJvb2wgZHlu
YW1pY19mYmNfYnVmZmVyX2FsbG9jOwoxNDQ3NDogIHVuc2lnbmVkIGludCBzb3VyY2Vfdmlld193
aWR0aDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc291cmNlX3ZpZXdfaGVpZ2h0OwoxNDQ3NDogIHVu
c2lnbmVkIGludCBudW1fb2ZfYWN0aXZlX3RhcmdldHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBmYmNfcmVxdWVzdGVkX2NvbXByZXNzZWRfc2l6ZSB7CjE0NDc0OiAg
dW5zaWduZWQgaW50IHByZWZlcnJlZF9zaXplOwoxNDQ3NDogIHVuc2lnbmVkIGludCBwcmVmZXJy
ZWRfc2l6ZV9hbGlnbm1lbnQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1pbl9zaXplOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBtaW5fc2l6ZV9hbGlnbm1lbnQ7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDog
ICBzdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAgICB1bnNpZ25lZCBpbnQgcHJlZmVycmVkX211c3Rf
YmVfZnJhbWVidWZmZXJfcG9vbCA6IDE7CjE0NDc0OiAKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBt
aW5fbXVzdF9iZV9mcmFtZWJ1ZmZlcl9wb29sIDogMTsKMTQ0NzQ6ICAgfSBiaXRzOwoxNDQ3NDog
ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CjE0NDc0OiAgfTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM5ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgoxNDQ3NDog
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Rt
Y3UuaCIgMQoxNDQ3NDogIyAyOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2luYy9ody9kbWN1LmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlc190eXBlcy5oIiAxCjE0NDc0OiAjIDI5ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2RtY3UuaCIg
MgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBkbWN1X3N0YXRlIHsKMTQ0NzQ6ICBETUNVX1VOTE9BREVEID0gMCwKMTQ0NzQ6ICBETUNV
X0xPQURFRF9VTklOSVRJQUxJWkVEID0gMSwKMTQ0NzQ6ICBETUNVX1JVTk5JTkcgPSAyLAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRtY3VfdmVyc2lvbiB7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGludGVyZmFjZV92ZXJzaW9uOwoxNDQ3NDogIHVuc2lnbmVkIGludCBhYm1fdmVyc2lv
bjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcHNyX3ZlcnNpb247CjE0NDc0OiAgdW5zaWduZWQgaW50
IGJ1aWxkX3ZlcnNpb247CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZG1jdSB7CjE0
NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZG1jdV9m
dW5jcyAqZnVuY3M7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRtY3Vfc3RhdGUgZG1jdV9zdGF0ZTsK
MTQ0NzQ6ICBzdHJ1Y3QgZG1jdV92ZXJzaW9uIGRtY3VfdmVyc2lvbjsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgY2FjaGVkX3dhaXRfbG9vcF9udW1iZXI7CjE0NDc0OiAgdWludDMyX3QgcHNwX3ZlcnNp
b247CjE0NDc0OiAgYm9vbCBhdXRvX2xvYWRfZG1jdTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkbWN1X2Z1bmNzIHsKMTQ0NzQ6ICBib29sICgqZG1jdV9pbml0KShzdHJ1Y3QgZG1j
dSAqZG1jdSk7CjE0NDc0OiAgYm9vbCAoKmxvYWRfaXJhbSkoc3RydWN0IGRtY3UgKmRtY3UsCjE0
NDc0OiAgICB1bnNpZ25lZCBpbnQgc3RhcnRfb2Zmc2V0LAoxNDQ3NDogICAgY29uc3QgY2hhciAq
c3JjLAoxNDQ3NDogICAgdW5zaWduZWQgaW50IGJ5dGVzKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X3Bz
cl9lbmFibGUpKHN0cnVjdCBkbWN1ICpkbWN1LCBib29sIGVuYWJsZSwgYm9vbCB3YWl0KTsKMTQ0
NzQ6ICBib29sICgqc2V0dXBfcHNyKShzdHJ1Y3QgZG1jdSAqZG1jdSwKMTQ0NzQ6ICAgIHN0cnVj
dCBkY19saW5rICpsaW5rLAoxNDQ3NDogICAgc3RydWN0IHBzcl9jb250ZXh0ICpwc3JfY29udGV4
dCk7CjE0NDc0OiAgdm9pZCAoKmdldF9wc3Jfc3RhdGUpKHN0cnVjdCBkbWN1ICpkbWN1LCB1aW50
MzJfdCAqcHNyX3N0YXRlKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X3Bzcl93YWl0X2xvb3ApKHN0cnVj
dCBkbWN1ICpkbWN1LAoxNDQ3NDogICAgdW5zaWduZWQgaW50IHdhaXRfbG9vcF9udW1iZXIpOwox
NDQ3NDogIHZvaWQgKCpnZXRfcHNyX3dhaXRfbG9vcCkoc3RydWN0IGRtY3UgKmRtY3UsCjE0NDc0
OiAgICB1bnNpZ25lZCBpbnQgKnBzcl93YWl0X2xvb3BfbnVtYmVyKTsKMTQ0NzQ6ICBib29sICgq
aXNfZG1jdV9pbml0aWFsaXplZCkoc3RydWN0IGRtY3UgKmRtY3UpOwoxNDQ3NDogIGJvb2wgKCps
b2NrX3BoeSkoc3RydWN0IGRtY3UgKmRtY3UpOwoxNDQ3NDogIGJvb2wgKCp1bmxvY2tfcGh5KShz
dHJ1Y3QgZG1jdSAqZG1jdSk7CjE0NDc0OiB9OwoxNDQ3NDogIyA0MCAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmgi
IDEKMTQ0NzQ6ICMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9kbWwvZGlzcGxheV9tb2RlX2xpYi5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2RtbF9jb21tb25fZGVmcy5oIiAxCjE0NDc0OiAj
IDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2RtbF9j
b21tb25fZGVmcy5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZG1sL2RjX2ZlYXR1cmVzLmgiIDEKMTQ0NzQ6ICMgMzEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZG1sX2NvbW1vbl9kZWZzLmgiIDIK
MTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Rt
bC9kaXNwbGF5X21vZGVfc3RydWN0cy5oIiAxCjE0NDc0OiAjIDMwICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2Rpc3BsYXlfbW9kZV9zdHJ1Y3RzLmgiCjE0
NDc0OiB0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV92b2x0YWdlX3NjYWxpbmdfc3Qgdm9sdGFnZV9z
Y2FsaW5nX3N0OwoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlfc29jX2JvdW5kaW5nX2Jv
eF9zdCBzb2NfYm91bmRpbmdfYm94X3N0OwoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlf
aXBfcGFyYW1zX3N0IGlwX3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBp
X2Rpc3BsYXlfcGlwZV9zb3VyY2VfcGFyYW1zX3N0IGRpc3BsYXlfcGlwZV9zb3VyY2VfcGFyYW1z
X3N0OwoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9vdXRwdXRfcGFyYW1z
X3N0IGRpc3BsYXlfb3V0cHV0X3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3Nf
ZHBpX3NjYWxlcl9yYXRpb19kZXB0aF9zdCBzY2FsZXJfcmF0aW9fZGVwdGhfc3Q7CjE0NDc0OiB0
eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9zY2FsZXJfdGFwc19zdCBzY2FsZXJfdGFwc19zdDsKMTQ0
NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCBk
aXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3Q7CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBfdmNzX2Rw
aV9kaXNwbGF5X3BpcGVfcGFyYW1zX3N0IGRpc3BsYXlfcGlwZV9wYXJhbXNfc3Q7CjE0NDc0OiB0
eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2Nsb2Nrc19hbmRfY2ZnX3N0IGRpc3BsYXlf
Y2xvY2tzX2FuZF9jZmdfc3Q7CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdDsKMTQ0NzQ6IHR5
cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9ycV9taXNjX3BhcmFtc19zdCBkaXNw
bGF5X2RhdGFfcnFfbWlzY19wYXJhbXNfc3Q7CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBfdmNzX2Rw
aV9kaXNwbGF5X2RhdGFfcnFfc2l6aW5nX3BhcmFtc19zdCBkaXNwbGF5X2RhdGFfcnFfc2l6aW5n
X3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9y
cV9kbGdfcGFyYW1zX3N0IGRpc3BsYXlfZGF0YV9ycV9kbGdfcGFyYW1zX3N0OwoxNDQ3NDogdHlw
ZWRlZiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9kbGdfcGFyYW1zX3N0IGRpc3BsYXlfcnFf
ZGxnX3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcnFf
c2l6aW5nX3BhcmFtc19zdCBkaXNwbGF5X3JxX3NpemluZ19wYXJhbXNfc3Q7CjE0NDc0OiB0eXBl
ZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX21pc2NfcGFyYW1zX3N0IGRpc3BsYXlfcnFf
bWlzY19wYXJhbXNfc3Q7CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3Jx
X3BhcmFtc19zdCBkaXNwbGF5X3JxX3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92
Y3NfZHBpX2Rpc3BsYXlfZGxnX3JlZ3Nfc3QgZGlzcGxheV9kbGdfcmVnc19zdDsKMTQ0NzQ6IHR5
cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfdHR1X3JlZ3Nfc3QgZGlzcGxheV90dHVfcmVn
c19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9ycV9yZWdz
X3N0IGRpc3BsYXlfZGF0YV9ycV9yZWdzX3N0OwoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgX3Zjc19k
cGlfZGlzcGxheV9ycV9yZWdzX3N0IGRpc3BsYXlfcnFfcmVnc19zdDsKMTQ0NzQ6IHR5cGVkZWYg
c3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGxnX3N5c19wYXJhbXNfc3QgZGlzcGxheV9kbGdfc3lz
X3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfYXJiX3Bh
cmFtc19zdCBkaXNwbGF5X2FyYl9wYXJhbXNfc3Q7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBfdmNz
X2RwaV92b2x0YWdlX3NjYWxpbmdfc3QgewoxNDQ3NDogIGludCBzdGF0ZTsKMTQ0NzQ6ICBkb3Vi
bGUgZHNjY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUgZGNmY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUg
c29jY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUgcGh5Y2xrX2QxOF9taHo7CjE0NDc0OiAgZG91Ymxl
IGRyYW1fc3BlZWRfbXRzOwoxNDQ3NDogIGRvdWJsZSBmYWJyaWNjbGtfbWh6OwoxNDQ3NDogIGRv
dWJsZSBkaXNwY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUgcGh5Y2xrX21oejsKMTQ0NzQ6ICBkb3Vi
bGUgZHBwY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUgZHRiY2xrX21oejsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBfdmNzX2RwaV9zb2NfYm91bmRpbmdfYm94X3N0IHsKMTQ0NzQ6ICBk
b3VibGUgc3JfZXhpdF90aW1lX3VzOwoxNDQ3NDogIGRvdWJsZSBzcl9lbnRlcl9wbHVzX2V4aXRf
dGltZV91czsKMTQ0NzQ6ICBkb3VibGUgdXJnZW50X2xhdGVuY3lfdXM7CjE0NDc0OiAgZG91Ymxl
IHVyZ2VudF9sYXRlbmN5X3BpeGVsX2RhdGFfb25seV91czsKMTQ0NzQ6ICBkb3VibGUgdXJnZW50
X2xhdGVuY3lfcGl4ZWxfbWl4ZWRfd2l0aF92bV9kYXRhX3VzOwoxNDQ3NDogIGRvdWJsZSB1cmdl
bnRfbGF0ZW5jeV92bV9kYXRhX29ubHlfdXM7CjE0NDc0OiAgZG91YmxlIHdyaXRlYmFja19sYXRl
bmN5X3VzOwoxNDQ3NDogIGRvdWJsZSBpZGVhbF9kcmFtX2J3X2FmdGVyX3VyZ2VudF9wZXJjZW50
OwoxNDQ3NDogIGRvdWJsZSBwY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJfdXJnZW50X3BpeGVs
X29ubHk7CjE0NDc0OiAgZG91YmxlIHBjdF9pZGVhbF9kcmFtX3NkcF9id19hZnRlcl91cmdlbnRf
cGl4ZWxfYW5kX3ZtOwoxNDQ3NDogIGRvdWJsZSBwY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJf
dXJnZW50X3ZtX29ubHk7CjE0NDc0OiAgZG91YmxlIG1heF9hdmdfc2RwX2J3X3VzZV9ub3JtYWxf
cGVyY2VudDsKMTQ0NzQ6ICBkb3VibGUgbWF4X2F2Z19kcmFtX2J3X3VzZV9ub3JtYWxfcGVyY2Vu
dDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWF4X3JlcXVlc3Rfc2l6ZV9ieXRlczsKMTQ0NzQ6ICBk
b3VibGUgZG93bnNwcmVhZF9wZXJjZW50OwoxNDQ3NDogIGRvdWJsZSBkcmFtX3BhZ2Vfb3Blbl90
aW1lX25zOwoxNDQ3NDogIGRvdWJsZSBkcmFtX3J3X3R1cm5hcm91bmRfdGltZV9uczsKMTQ0NzQ6
ICBkb3VibGUgZHJhbV9yZXR1cm5fYnVmZmVyX3Blcl9jaGFubmVsX2J5dGVzOwoxNDQ3NDogIGRv
dWJsZSBkcmFtX2NoYW5uZWxfd2lkdGhfYnl0ZXM7CjE0NDc0OiAgZG91YmxlIGZhYnJpY19kYXRh
cGF0aF90b19kY25fZGF0YV9yZXR1cm5fYnl0ZXM7CjE0NDc0OiAgZG91YmxlIGRjbl9kb3duc3By
ZWFkX3BlcmNlbnQ7CjE0NDc0OiAgZG91YmxlIGRpc3BjbGtfZHBwY2xrX3Zjb19zcGVlZF9taHo7
CjE0NDc0OiAgZG91YmxlIGRmc192Y29fcGVyaW9kX3BzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB1
cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbF9waXhlbF9vbmx5X2J5dGVzOwox
NDQ3NDogIHVuc2lnbmVkIGludCB1cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5l
bF9waXhlbF9hbmRfdm1fYnl0ZXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IHVyZ2VudF9vdXRfb2Zf
b3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3ZtX29ubHlfYnl0ZXM7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHJvdW5kX3RyaXBfcGluZ19sYXRlbmN5X2RjZmNsa19jeWNsZXM7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX2J5dGVzOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBjaGFubmVsX2ludGVybGVhdmVfYnl0ZXM7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IG51bV9iYW5rczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbnVtX2NoYW5zOwoxNDQ3NDog
IHVuc2lnbmVkIGludCB2bW1fcGFnZV9zaXplX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBo
b3N0dm1fbWluX3BhZ2Vfc2l6ZV9ieXRlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZ3B1dm1fbWlu
X3BhZ2Vfc2l6ZV9ieXRlczsKMTQ0NzQ6ICBkb3VibGUgZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5j
eV91czsKMTQ0NzQ6ICBkb3VibGUgZHVtbXlfcHN0YXRlX2xhdGVuY3lfdXM7CjE0NDc0OiAgZG91
YmxlIHdyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X3VzOwoxNDQ3NDogIHVuc2ln
bmVkIGludCByZXR1cm5fYnVzX3dpZHRoX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB2b2x0
YWdlX292ZXJyaWRlOwoxNDQ3NDogIGRvdWJsZSB4ZmNfYnVzX3RyYW5zcG9ydF90aW1lX3VzOwox
NDQ3NDogIGRvdWJsZSB4ZmNfeGJ1Zl9sYXRlbmN5X3RvbGVyYW5jZV91czsKMTQ0NzQ6ICBpbnQg
dXNlX3VyZ2VudF9idXJzdF9idzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbnVtX3N0YXRlczsKMTQ0
NzQ6ICBzdHJ1Y3QgX3Zjc19kcGlfdm9sdGFnZV9zY2FsaW5nX3N0IGNsb2NrX2xpbWl0c1s4XTsK
MTQ0NzQ6ICBib29sIGRvX3VyZ2VudF9sYXRlbmN5X2FkanVzdG1lbnQ7CjE0NDc0OiAgZG91Ymxl
IHVyZ2VudF9sYXRlbmN5X2FkanVzdG1lbnRfZmFicmljX2Nsb2NrX2NvbXBvbmVudF91czsKMTQ0
NzQ6ICBkb3VibGUgdXJnZW50X2xhdGVuY3lfYWRqdXN0bWVudF9mYWJyaWNfY2xvY2tfcmVmZXJl
bmNlX21oejsKMTQ0NzQ6ICBib29sIGRpc2FibGVfZHJhbV9jbG9ja19jaGFuZ2VfdmFjdGl2ZV9z
dXBwb3J0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF92Y3NfZHBpX2lwX3BhcmFt
c19zdCB7CjE0NDc0OiAgYm9vbCBncHV2bV9lbmFibGU7CjE0NDc0OiAgYm9vbCBob3N0dm1fZW5h
YmxlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBncHV2bV9tYXhfcGFnZV90YWJsZV9sZXZlbHM7CjE0
NDc0OiAgdW5zaWduZWQgaW50IGhvc3R2bV9tYXhfcGFnZV90YWJsZV9sZXZlbHM7CjE0NDc0OiAg
dW5zaWduZWQgaW50IGhvc3R2bV9jYWNoZWRfcGFnZV90YWJsZV9sZXZlbHM7CjE0NDc0OiAgdW5z
aWduZWQgaW50IHB0ZV9ncm91cF9zaXplX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBtYXhf
aW50ZXJfZGNuX3RpbGVfcmVwZWF0ZXJzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBudW1fZHNjOwox
NDQ3NDogIHVuc2lnbmVkIGludCBvZG1fY2FwYWJsZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcm9i
X2J1ZmZlcl9zaXplX2tieXRlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZGV0X2J1ZmZlcl9zaXpl
X2tieXRlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHB0ZV9idWZmZXJfc2l6ZV9pbl9wdGVfcmVx
c19sdW1hOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX2J1ZmZlcl9zaXplX2luX3B0ZV9yZXFz
X2Nocm9tYTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcGRlX3Byb2NfYnVmZmVyX3NpemVfNjRrX3Jl
cXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRwcF9vdXRwdXRfYnVmZmVyX3BpeGVsczsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgb3BwX291dHB1dF9idWZmZXJfbGluZXM7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHBpeGVsX2NodW5rX3NpemVfa2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcHRlX2Vu
YWJsZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcHRlX2NodW5rX3NpemVfa2J5dGVzOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBtZXRhX2NodW5rX3NpemVfa2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCB3cml0ZWJhY2tfY2h1bmtfc2l6ZV9rYnl0ZXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGxpbmVf
YnVmZmVyX3NpemVfYml0czsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWF4X2xpbmVfYnVmZmVyX2xp
bmVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfbHVtYV9idWZmZXJfc2l6ZV9rYnl0
ZXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IHdyaXRlYmFja19jaHJvbWFfYnVmZmVyX3NpemVfa2J5
dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfY2hyb21hX2xpbmVfYnVmZmVyX3dp
ZHRoX3BpeGVsczsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfaW50ZXJm
YWNlX2J1ZmZlcl9zaXplX2tieXRlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgd3JpdGViYWNrX2xp
bmVfYnVmZmVyX2J1ZmZlcl9zaXplOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IHdyaXRl
YmFja18xMGJwYzQyMF9zdXBwb3J0ZWQ7CjE0NDc0OiAgZG91YmxlIHdyaXRlYmFja19tYXhfaHNj
bF9yYXRpbzsKMTQ0NzQ6ICBkb3VibGUgd3JpdGViYWNrX21heF92c2NsX3JhdGlvOwoxNDQ3NDog
IGRvdWJsZSB3cml0ZWJhY2tfbWluX2hzY2xfcmF0aW87CjE0NDc0OiAgZG91YmxlIHdyaXRlYmFj
a19taW5fdnNjbF9yYXRpbzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgd3JpdGViYWNrX21heF9oc2Ns
X3RhcHM7CjE0NDc0OiAgdW5zaWduZWQgaW50IHdyaXRlYmFja19tYXhfdnNjbF90YXBzOwoxNDQ3
NDogIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfbGluZV9idWZmZXJfbHVtYV9idWZmZXJfc2l6ZTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgd3JpdGViYWNrX2xpbmVfYnVmZmVyX2Nocm9tYV9idWZmZXJf
c2l6ZTsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBtYXhfcGFnZV90YWJsZV9sZXZlbHM7
CjE0NDc0OiAgdW5zaWduZWQgaW50IG1heF9udW1fZHBwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBt
YXhfbnVtX290ZzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY3Vyc29yX2NodW5rX3NpemU7CjE0NDc0
OiAgdW5zaWduZWQgaW50IGN1cnNvcl9idWZmZXJfc2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
bWF4X251bV93YjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWF4X2RjaHViX3BzY2xfYndfcGl4X3Bl
cl9jbGs7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1heF9wc2NsX2xiX2J3X3BpeF9wZXJfY2xrOwox
NDQ3NDogIHVuc2lnbmVkIGludCBtYXhfbGJfdnNjbF9id19waXhfcGVyX2NsazsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgbWF4X3ZzY2xfaHNjbF9id19waXhfcGVyX2NsazsKMTQ0NzQ6ICBkb3VibGUg
bWF4X2hzY2xfcmF0aW87CjE0NDc0OiAgZG91YmxlIG1heF92c2NsX3JhdGlvOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBoc2NsX211bHRzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB2c2NsX211bHRzOwox
NDQ3NDogIHVuc2lnbmVkIGludCBtYXhfaHNjbF90YXBzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBt
YXhfdnNjbF90YXBzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB4ZmNfc3VwcG9ydGVkOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBwdG9pX3N1cHBvcnRlZDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZ2Z4N19j
b21wYXRfdGlsaW5nX3N1cHBvcnRlZDsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgb2RtX2NvbWJpbmVf
NHRvMV9zdXBwb3J0ZWQ7CjE0NDc0OiAgYm9vbCBkeW5hbWljX21ldGFkYXRhX3ZtX2VuYWJsZWQ7
CjE0NDc0OiAgdW5zaWduZWQgaW50IG1heF9udW1faGRtaV9mcmxfb3V0cHV0czsKMTQ0NzQ6IAox
NDQ3NDogIHVuc2lnbmVkIGludCB4ZmNfZmlsbF9jb25zdGFudF9ieXRlczsKMTQ0NzQ6ICBkb3Vi
bGUgZGlzcGNsa19yYW1wX21hcmdpbl9wZXJjZW50OwoxNDQ3NDogIGRvdWJsZSB4ZmNfZmlsbF9i
d19vdmVyaGVhZF9wZXJjZW50OwoxNDQ3NDogIGRvdWJsZSB1bmRlcnNjYW5fZmFjdG9yOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBtaW5fdmJsYW5rX2xpbmVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBk
cHBjbGtfZGVsYXlfc3VidG90YWw7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRpc3BjbGtfZGVsYXlf
c3VidG90YWw7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRjZmNsa19jc3RhdGVfbGF0ZW5jeTsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgZHBwY2xrX2RlbGF5X3NjbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
ZHBwY2xrX2RlbGF5X3NjbF9sYl9vbmx5OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHBjbGtfZGVs
YXlfY252Y19mb3JtYXR0ZXI7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRwcGNsa19kZWxheV9jbnZj
X2N1cnNvcjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaXNfbGluZV9idWZmZXJfYnBwX2ZpeGVkOwox
NDQ3NDogIHVuc2lnbmVkIGludCBsaW5lX2J1ZmZlcl9maXhlZF9icHA7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGRjY19zdXBwb3J0ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgSXNMaW5l
QnVmZmVyQnBwRml4ZWQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IExpbmVCdWZmZXJGaXhlZEJwcDsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY2FuX3ZzdGFydHVwX2xpbmVzX2V4Y2VlZF92c3luY19wbHVz
X2JhY2tfcG9yY2hfbGluZXNfbWludXNfb25lOwoxNDQ3NDogIHVuc2lnbmVkIGludCBidWdfZm9y
Y2luZ19MQ19yZXFfc2FtZV9zaXplX2ZpeGVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IF92Y3NfZHBpX2Rpc3BsYXlfeGZjX3BhcmFtc19zdCB7CjE0NDc0OiAgZG91YmxlIHhmY190
c2x2X3ZyZWFkeV9vZmZzZXRfdXM7CjE0NDc0OiAgZG91YmxlIHhmY190c2x2X3Z1cGRhdGVfd2lk
dGhfdXM7CjE0NDc0OiAgZG91YmxlIHhmY190c2x2X3Z1cGRhdGVfb2Zmc2V0X3VzOwoxNDQ3NDog
IGludCB4ZmNfc2x2X2NodW5rX3NpemVfYnl0ZXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNfc3QgewoxNDQ3NDogIGlu
dCBzb3VyY2VfZm9ybWF0OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgZGNjOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBkY2NfcmF0ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZGNjX3JhdGVfY2hyb21hOwox
NDQ3NDogIHVuc2lnbmVkIGNoYXIgZGNjX3VzZV9nbG9iYWw7CjE0NDc0OiAgdW5zaWduZWQgY2hh
ciB2bTsKMTQ0NzQ6ICBib29sIGdwdXZtOwoxNDQ3NDogIGJvb2wgaG9zdHZtOwoxNDQ3NDogIGJv
b2wgZ3B1dm1fbGV2ZWxzX2ZvcmNlX2VuOwoxNDQ3NDogIHVuc2lnbmVkIGludCBncHV2bV9sZXZl
bHNfZm9yY2U7CjE0NDc0OiAgYm9vbCBob3N0dm1fbGV2ZWxzX2ZvcmNlX2VuOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBob3N0dm1fbGV2ZWxzX2ZvcmNlOwoxNDQ3NDogIGludCBzb3VyY2Vfc2NhbjsK
MTQ0NzQ6ICBpbnQgc3dfbW9kZTsKMTQ0NzQ6ICBpbnQgbWFjcm9fdGlsZV9zaXplOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBzdXJmYWNlX3dpZHRoX3k7CjE0NDc0OiAgdW5zaWduZWQgaW50IHN1cmZh
Y2VfaGVpZ2h0X3k7CjE0NDc0OiAgdW5zaWduZWQgaW50IHN1cmZhY2Vfd2lkdGhfYzsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgc3VyZmFjZV9oZWlnaHRfYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdmll
d3BvcnRfd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQgaW50IHZpZXdwb3J0X2hlaWdodDsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgdmlld3BvcnRfeV95OwoxNDQ3NDogIHVuc2lnbmVkIGludCB2aWV3cG9y
dF95X2M7CjE0NDc0OiAgdW5zaWduZWQgaW50IHZpZXdwb3J0X3dpZHRoX2M7CjE0NDc0OiAgdW5z
aWduZWQgaW50IHZpZXdwb3J0X2hlaWdodF9jOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkYXRhX3Bp
dGNoOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkYXRhX3BpdGNoX2M7CjE0NDc0OiAgdW5zaWduZWQg
aW50IG1ldGFfcGl0Y2g7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1ldGFfcGl0Y2hfYzsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgY3VyMF9zcmNfd2lkdGg7CjE0NDc0OiAgaW50IGN1cjBfYnBwOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBjdXIxX3NyY193aWR0aDsKMTQ0NzQ6ICBpbnQgY3VyMV9icHA7CjE0
NDc0OiAgaW50IG51bV9jdXJzb3JzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgaXNfaHNwbGl0Owox
NDQ3NDogIHVuc2lnbmVkIGNoYXIgZHluYW1pY19tZXRhZGF0YV9lbmFibGU7CjE0NDc0OiAgdW5z
aWduZWQgaW50IGR5bmFtaWNfbWV0YWRhdGFfbGluZXNfYmVmb3JlX2FjdGl2ZTsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgZHluYW1pY19tZXRhZGF0YV94bWl0X2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVk
IGludCBoc3BsaXRfZ3JwOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgeGZjX2VuYWJsZTsKMTQ0NzQ6
ICB1bnNpZ25lZCBjaGFyIHhmY19zbGF2ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGltbWVkaWF0
ZV9mbGlwOwoxNDQ3NDogIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3hmY19wYXJhbXNfc3QgeGZj
X3BhcmFtczsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgdl90b3RhbF9taW47CjE0NDc0
OiAgdW5zaWduZWQgY2hhciB2X3RvdGFsX21heDsKMTQ0NzQ6IH07CjE0NDc0OiBzdHJ1Y3Qgd3Jp
dGViYWNrX3N0IHsKMTQ0NzQ6ICBpbnQgd2Jfc3JjX2hlaWdodDsKMTQ0NzQ6ICBpbnQgd2Jfc3Jj
X3dpZHRoOwoxNDQ3NDogIGludCB3Yl9kc3Rfd2lkdGg7CjE0NDc0OiAgaW50IHdiX2RzdF9oZWln
aHQ7CjE0NDc0OiAgaW50IHdiX3BpeGVsX2Zvcm1hdDsKMTQ0NzQ6ICBpbnQgd2JfaHRhcHNfbHVt
YTsKMTQ0NzQ6ICBpbnQgd2JfdnRhcHNfbHVtYTsKMTQ0NzQ6ICBpbnQgd2JfaHRhcHNfY2hyb21h
OwoxNDQ3NDogIGludCB3Yl92dGFwc19jaHJvbWE7CjE0NDc0OiAgZG91YmxlIHdiX2hyYXRpbzsK
MTQ0NzQ6ICBkb3VibGUgd2JfdnJhdGlvOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IF92Y3NfZHBpX2Rpc3BsYXlfb3V0cHV0X3BhcmFtc19zdCB7CjE0NDc0OiAgaW50IGRwX2xhbmVz
OwoxNDQ3NDogIGRvdWJsZSBvdXRwdXRfYnBwOwoxNDQ3NDogIGludCBkc2NfZW5hYmxlOwoxNDQ3
NDogIGludCB3Yl9lbmFibGU7CjE0NDc0OiAgaW50IG51bV9hY3RpdmVfd2I7CjE0NDc0OiAgaW50
IG91dHB1dF9icGM7CjE0NDc0OiAgaW50IG91dHB1dF90eXBlOwoxNDQ3NDogIGludCBvdXRwdXRf
Zm9ybWF0OwoxNDQ3NDogIGludCBkc2Nfc2xpY2VzOwoxNDQ3NDogIGludCBtYXhfYXVkaW9fc2Ft
cGxlX3JhdGU7CjE0NDc0OiAgc3RydWN0IHdyaXRlYmFja19zdCB3YjsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBfdmNzX2RwaV9zY2FsZXJfcmF0aW9fZGVwdGhfc3QgewoxNDQ3NDog
IGRvdWJsZSBoc2NsX3JhdGlvOwoxNDQ3NDogIGRvdWJsZSB2c2NsX3JhdGlvOwoxNDQ3NDogIGRv
dWJsZSBoc2NsX3JhdGlvX2M7CjE0NDc0OiAgZG91YmxlIHZzY2xfcmF0aW9fYzsKMTQ0NzQ6ICBk
b3VibGUgdmluaXQ7CjE0NDc0OiAgZG91YmxlIHZpbml0X2M7CjE0NDc0OiAgZG91YmxlIHZpbml0
X2JvdDsKMTQ0NzQ6ICBkb3VibGUgdmluaXRfYm90X2M7CjE0NDc0OiAgaW50IGxiX2RlcHRoOwox
NDQ3NDogIGludCBzY2xfZW5hYmxlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF92
Y3NfZHBpX3NjYWxlcl90YXBzX3N0IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaHRhcHM7CjE0NDc0
OiAgdW5zaWduZWQgaW50IHZ0YXBzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBodGFwc19jOwoxNDQ3
NDogIHVuc2lnbmVkIGludCB2dGFwc19jOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IF92Y3NfZHBpX2Rpc3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCB7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHJlY291dF93aWR0aDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVjb3V0X2hlaWdodDsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgZnVsbF9yZWNvdXRfd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQgaW50
IGZ1bGxfcmVjb3V0X2hlaWdodDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaGJsYW5rX3N0YXJ0Owox
NDQ3NDogIHVuc2lnbmVkIGludCBoYmxhbmtfZW5kOwoxNDQ3NDogIHVuc2lnbmVkIGludCB2Ymxh
bmtfc3RhcnQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHZibGFua19lbmQ7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGh0b3RhbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdnRvdGFsOwoxNDQ3NDogIHVuc2ln
bmVkIGludCB2YWN0aXZlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBoYWN0aXZlOwoxNDQ3NDogIHVu
c2lnbmVkIGludCB2c3RhcnR1cF9zdGFydDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdnVwZGF0ZV9v
ZmZzZXQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHZ1cGRhdGVfd2lkdGg7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHZyZWFkeV9vZmZzZXQ7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBpbnRlcmxhY2VkOwox
NDQ3NDogIHVuc2lnbmVkIGNoYXIgZW1iZWRkZWQ7CjE0NDc0OiAgZG91YmxlIHBpeGVsX3JhdGVf
bWh6OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgc3luY2hyb25pemVkX3ZibGFua19hbGxfcGxhbmVz
OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgb3RnX2luc3Q7CjE0NDc0OiAgdW5zaWduZWQgaW50IG9k
bV9jb21iaW5lOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgdXNlX21heGltdW1fdnN0YXJ0dXA7CjE0
NDc0OiAgdW5zaWduZWQgaW50IHZ0b3RhbF9tYXg7CjE0NDc0OiAgdW5zaWduZWQgaW50IHZ0b3Rh
bF9taW47CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9w
aXBlX3BhcmFtc19zdCB7CjE0NDc0OiAgZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNfc3Qgc3Jj
OwoxNDQ3NDogIGRpc3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCBkZXN0OwoxNDQ3NDogIHNjYWxl
cl9yYXRpb19kZXB0aF9zdCBzY2FsZV9yYXRpb19kZXB0aDsKMTQ0NzQ6ICBzY2FsZXJfdGFwc19z
dCBzY2FsZV90YXBzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF92Y3NfZHBpX2Rp
c3BsYXlfY2xvY2tzX2FuZF9jZmdfc3QgewoxNDQ3NDogIGludCB2b2x0YWdlOwoxNDQ3NDogIGRv
dWJsZSBkcHBjbGtfbWh6OwoxNDQ3NDogIGRvdWJsZSByZWZjbGtfbWh6OwoxNDQ3NDogIGRvdWJs
ZSBkaXNwY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUgZGNmY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUg
c29jY2xrX21oejsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBfdmNzX2RwaV9kaXNw
bGF5X2UyZV9waXBlX3BhcmFtc19zdCB7CjE0NDc0OiAgZGlzcGxheV9waXBlX3BhcmFtc19zdCBw
aXBlOwoxNDQ3NDogIGRpc3BsYXlfb3V0cHV0X3BhcmFtc19zdCBkb3V0OwoxNDQ3NDogIGRpc3Bs
YXlfY2xvY2tzX2FuZF9jZmdfc3QgY2xrc19jZmc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kYXRhX3JxX21pc2NfcGFyYW1zX3N0IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgZnVsbF9zd2F0aF9ieXRlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3RvcmVk
X3N3YXRoX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBibGsyNTZfaGVpZ2h0OwoxNDQ3NDog
IHVuc2lnbmVkIGludCBibGsyNTZfd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlcV9oZWln
aHQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlcV93aWR0aDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RhdGFfcnFfc2l6aW5nX3BhcmFtc19zdCB7CjE0
NDc0OiAgdW5zaWduZWQgaW50IGNodW5rX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBtaW5f
Y2h1bmtfYnl0ZXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1ldGFfY2h1bmtfYnl0ZXM7CjE0NDc0
OiAgdW5zaWduZWQgaW50IG1pbl9tZXRhX2NodW5rX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBtcHRlX2dyb3VwX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX2dyb3VwX2J5dGVz
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9y
cV9kbGdfcGFyYW1zX3N0IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3dhdGhfd2lkdGhfdWI7CjE0
NDc0OiAgdW5zaWduZWQgaW50IHN3YXRoX2hlaWdodDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVx
X3Blcl9zd2F0aF91YjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9wdGVfYnl0ZXNfcGVyX2Zy
YW1lX3ViOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX3JlcV9wZXJfcm93X3ViOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBkcHRlX2dyb3Vwc19wZXJfcm93X3ViOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBkcHRlX3Jvd19oZWlnaHQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRwdGVfYnl0ZXNfcGVyX3Jv
d191YjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9jaHVua3NfcGVyX3Jvd191YjsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgbWV0YV9yZXFfcGVyX3Jvd191YjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
bWV0YV9yb3dfaGVpZ2h0OwoxNDQ3NDogIHVuc2lnbmVkIGludCBtZXRhX2J5dGVzX3Blcl9yb3df
dWI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9k
bGdfcGFyYW1zX3N0IHsKMTQ0NzQ6ICBkaXNwbGF5X2RhdGFfcnFfZGxnX3BhcmFtc19zdCBycV9s
OwoxNDQ3NDogIGRpc3BsYXlfZGF0YV9ycV9kbGdfcGFyYW1zX3N0IHJxX2M7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9zaXppbmdfcGFyYW1zX3N0
IHsKMTQ0NzQ6ICBkaXNwbGF5X2RhdGFfcnFfc2l6aW5nX3BhcmFtc19zdCBycV9sOwoxNDQ3NDog
IGRpc3BsYXlfZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0IHJxX2M7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9taXNjX3BhcmFtc19zdCB7CjE0NDc0
OiAgZGlzcGxheV9kYXRhX3JxX21pc2NfcGFyYW1zX3N0IHJxX2w7CjE0NDc0OiAgZGlzcGxheV9k
YXRhX3JxX21pc2NfcGFyYW1zX3N0IHJxX2M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9wYXJhbXNfc3QgewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIg
eXV2NDIwOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgeXV2NDIwXzEwYnBjOwoxNDQ3NDogIHVuc2ln
bmVkIGNoYXIgcmdiZV9hbHBoYTsKMTQ0NzQ6ICBkaXNwbGF5X3JxX21pc2NfcGFyYW1zX3N0IG1p
c2M7CjE0NDc0OiAgZGlzcGxheV9ycV9zaXppbmdfcGFyYW1zX3N0IHNpemluZzsKMTQ0NzQ6ICBk
aXNwbGF5X3JxX2RsZ19wYXJhbXNfc3QgZGxnOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGxnX3JlZ3Nfc3QgewoxNDQ3NDogIHVuc2lnbmVkIGludCBy
ZWZjeWNfaF9ibGFua19lbmQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRsZ192YmxhbmtfZW5kOwox
NDQ3NDogIHVuc2lnbmVkIGludCBtaW5fZHN0X3lfbmV4dF9zdGFydDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgcmVmY3ljX3Blcl9odG90YWw7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmN5Y194X2Fm
dGVyX3NjYWxlcjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHN0X3lfYWZ0ZXJfc2NhbGVyOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBkc3RfeV9wcmVmZXRjaDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHN0
X3lfcGVyX3ZtX3ZibGFuazsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHN0X3lfcGVyX3Jvd192Ymxh
bms7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRzdF95X3Blcl92bV9mbGlwOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBkc3RfeV9wZXJfcm93X2ZsaXA7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZl9mcmVx
X3RvX3BpeF9mcmVxOwoxNDQ3NDogIHVuc2lnbmVkIGludCB2cmF0aW9fcHJlZmV0Y2g7CjE0NDc0
OiAgdW5zaWduZWQgaW50IHZyYXRpb19wcmVmZXRjaF9jOwoxNDQ3NDogIHVuc2lnbmVkIGludCBy
ZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3lj
X3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2M7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmN5Y19wZXJf
bWV0YV9jaHVua192YmxhbmtfbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9tZXRh
X2NodW5rX3ZibGFua19jOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3B0ZV9ncm91
cF9mbGlwX2w7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfcHRlX2dyb3VwX2ZsaXBf
YzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9tZXRhX2NodW5rX2ZsaXBfbDsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9tZXRhX2NodW5rX2ZsaXBfYzsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2w7CjE0NDc0OiAgdW5zaWduZWQgaW50
IGRzdF95X3Blcl9wdGVfcm93X25vbV9jOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNfcGVy
X3B0ZV9ncm91cF9ub21fbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9wdGVfZ3Jv
dXBfbm9tX2M7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRzdF95X3Blcl9tZXRhX3Jvd19ub21fbDsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHN0X3lfcGVyX21ldGFfcm93X25vbV9jOwoxNDQ3NDogIHVu
c2lnbmVkIGludCByZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2w7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVm
Y3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9sOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNf
cGVyX2xpbmVfZGVsaXZlcnlfcHJlX2M7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmN5Y19wZXJf
bGluZV9kZWxpdmVyeV9sOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX2xpbmVfZGVs
aXZlcnlfYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY2h1bmtfaGRsX2FkanVzdF9jdXIwOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBjaHVua19oZGxfYWRqdXN0X2N1cjE7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHZyZWFkeV9hZnRlcl92Y291bnQwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkc3RfeV9vZmZz
ZXRfY3VyMDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHN0X3lfb2Zmc2V0X2N1cjE7CjE0NDc0OiAg
dW5zaWduZWQgaW50IHhmY19yZWdfdHJhbnNmZXJfZGVsYXk7CjE0NDc0OiAgdW5zaWduZWQgaW50
IHhmY19yZWdfcHJlY2hhcmdlX2RlbGF5OwoxNDQ3NDogIHVuc2lnbmVkIGludCB4ZmNfcmVnX3Jl
bW90ZV9zdXJmYWNlX2ZsaXBfbGF0ZW5jeTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgeGZjX3JlZ19w
cmVmZXRjaF9tYXJnaW47CjE0NDc0OiAgdW5zaWduZWQgaW50IGRzdF95X2RlbHRhX2RycV9saW1p
dDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl92bV9ncm91cF92Ymxhbms7CjE0NDc0
OiAgdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfdm1fZ3JvdXBfZmxpcDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgcmVmY3ljX3Blcl92bV9yZXFfdmJsYW5rOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZj
eWNfcGVyX3ZtX3JlcV9mbGlwOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3ZtX2Rt
ZGF0YTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0
dV9yZWdzX3N0IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcW9zX2xldmVsX2xvd193bTsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgcW9zX2xldmVsX2hpZ2hfd207CjE0NDc0OiAgdW5zaWduZWQgaW50IG1p
bl90dHVfdmJsYW5rOwoxNDQ3NDogIHVuc2lnbmVkIGludCBxb3NfbGV2ZWxfZmxpcDsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVm
Y3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Bl
cl9yZXFfZGVsaXZlcnlfY3VyMTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9yZXFf
ZGVsaXZlcnlfcHJlX2w7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfcmVxX2RlbGl2
ZXJ5X3ByZV9jOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9w
cmVfY3VyMDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJl
X2N1cjE7CjE0NDc0OiAgdW5zaWduZWQgaW50IHFvc19sZXZlbF9maXhlZF9sOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBxb3NfbGV2ZWxfZml4ZWRfYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcW9zX2xl
dmVsX2ZpeGVkX2N1cjA7CjE0NDc0OiAgdW5zaWduZWQgaW50IHFvc19sZXZlbF9maXhlZF9jdXIx
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBxb3NfcmFtcF9kaXNhYmxlX2w7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHFvc19yYW1wX2Rpc2FibGVfYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcW9zX3JhbXBf
ZGlzYWJsZV9jdXIwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBxb3NfcmFtcF9kaXNhYmxlX2N1cjE7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kYXRhX3Jx
X3JlZ3Nfc3QgewoxNDQ3NDogIHVuc2lnbmVkIGludCBjaHVua19zaXplOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBtaW5fY2h1bmtfc2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9jaHVua19z
aXplOwoxNDQ3NDogIHVuc2lnbmVkIGludCBtaW5fbWV0YV9jaHVua19zaXplOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBkcHRlX2dyb3VwX3NpemU7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1wdGVfZ3Jv
dXBfc2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3dhdGhfaGVpZ2h0OwoxNDQ3NDogIHVuc2ln
bmVkIGludCBwdGVfcm93X2hlaWdodF9saW5lYXI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9yZWdzX3N0IHsKMTQ0NzQ6ICBkaXNwbGF5X2RhdGFf
cnFfcmVnc19zdCBycV9yZWdzX2w7CjE0NDc0OiAgZGlzcGxheV9kYXRhX3JxX3JlZ3Nfc3QgcnFf
cmVnc19jOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcnFfZXhwYW5zaW9uX21vZGU7CjE0NDc0OiAg
dW5zaWduZWQgaW50IHBycV9leHBhbnNpb25fbW9kZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbXJx
X2V4cGFuc2lvbl9tb2RlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBjcnFfZXhwYW5zaW9uX21vZGU7
CjE0NDc0OiAgdW5zaWduZWQgaW50IHBsYW5lMV9iYXNlX2FkZHJlc3M7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfc3lzX3BhcmFtc19zdCB7CjE0
NDc0OiAgZG91YmxlIHRfbWNsa193bV91czsKMTQ0NzQ6ICBkb3VibGUgdF91cmdfd21fdXM7CjE0
NDc0OiAgZG91YmxlIHRfc3Jfd21fdXM7CjE0NDc0OiAgZG91YmxlIHRfZXh0cmFfdXM7CjE0NDc0
OiAgZG91YmxlIG1lbV90cmlwX3VzOwoxNDQ3NDogIGRvdWJsZSB0X3NyeF9kZWxheV91czsKMTQ0
NzQ6ICBkb3VibGUgZGVlcHNsZWVwX2RjZmNsa19taHo7CjE0NDc0OiAgZG91YmxlIHRvdGFsX2Zs
aXBfYnc7CjE0NDc0OiAgdW5zaWduZWQgaW50IHRvdGFsX2ZsaXBfYnl0ZXM7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9hcmJfcGFyYW1zX3N0IHsKMTQ0
NzQ6ICBpbnQgbWF4X3JlcV9vdXRzdGFuZGluZzsKMTQ0NzQ6ICBpbnQgbWluX3JlcV9vdXRzdGFu
ZGluZzsKMTQ0NzQ6ICBpbnQgc2F0X2xldmVsX3VzOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzIgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZG1sX2NvbW1vbl9k
ZWZzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfZW51bXMuaCIgMQoxNDQ3NDogIyAyOCAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfZW51bXMu
aCIKMTQ0NzQ6IGVudW0gb3V0cHV0X2VuY29kZXJfY2xhc3MgewoxNDQ3NDogIGRtX2RwID0gMCwg
ZG1faGRtaSA9IDEsIGRtX3diID0gMiwgZG1fZWRwCjE0NDc0OiB9OwoxNDQ3NDogZW51bSBvdXRw
dXRfZm9ybWF0X2NsYXNzIHsKMTQ0NzQ6ICBkbV80NDQgPSAwLCBkbV80MjAgPSAxLCBkbV9uNDIy
LCBkbV9zNDIyCjE0NDc0OiB9OwoxNDQ3NDogZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIHsKMTQ0
NzQ6ICBkbV80NDRfMTYgPSAwLAoxNDQ3NDogIGRtXzQ0NF8zMiA9IDEsCjE0NDc0OiAgZG1fNDQ0
XzY0ID0gMiwKMTQ0NzQ6ICBkbV80MjBfOCA9IDMsCjE0NDc0OiAgZG1fNDIwXzEwID0gNCwKMTQ0
NzQ6ICBkbV80MjBfMTIgPSA1LAoxNDQ3NDogIGRtXzQyMl84ID0gNiwKMTQ0NzQ6ICBkbV80MjJf
MTAgPSA3LAoxNDQ3NDogIGRtXzQ0NF84ID0gOCwKMTQ0NzQ6ICBkbV9tb25vXzggPSBkbV80NDRf
OCwKMTQ0NzQ6ICBkbV9tb25vXzE2ID0gZG1fNDQ0XzE2LAoxNDQ3NDogIGRtX3JnYmUgPSA5LAox
NDQ3NDogIGRtX3JnYmVfYWxwaGEgPSAxMCwKMTQ0NzQ6IH07CjE0NDc0OiBlbnVtIG91dHB1dF9i
cGNfY2xhc3MgewoxNDQ3NDogIGRtX291dF82ID0gMCwgZG1fb3V0XzggPSAxLCBkbV9vdXRfMTAg
PSAyLCBkbV9vdXRfMTIgPSAzLCBkbV9vdXRfMTYgPSA0CjE0NDc0OiB9OwoxNDQ3NDogZW51bSBz
Y2FuX2RpcmVjdGlvbl9jbGFzcyB7CjE0NDc0OiAgZG1faG9yeiA9IDAsIGRtX3ZlcnQgPSAxCjE0
NDc0OiB9OwoxNDQ3NDogZW51bSBkbV9zd2l6emxlX21vZGUgewoxNDQ3NDogIGRtX3N3X2xpbmVh
ciA9IDAsCjE0NDc0OiAgZG1fc3dfMjU2Yl9zID0gMSwKMTQ0NzQ6ICBkbV9zd18yNTZiX2QgPSAy
LAoxNDQ3NDogIGRtX3N3X1NQQVJFXzAgPSAzLAoxNDQ3NDogIGRtX3N3X1NQQVJFXzEgPSA0LAox
NDQ3NDogIGRtX3N3XzRrYl9zID0gNSwKMTQ0NzQ6ICBkbV9zd180a2JfZCA9IDYsCjE0NDc0OiAg
ZG1fc3dfU1BBUkVfMiA9IDcsCjE0NDc0OiAgZG1fc3dfU1BBUkVfMyA9IDgsCjE0NDc0OiAgZG1f
c3dfNjRrYl9zID0gOSwKMTQ0NzQ6ICBkbV9zd182NGtiX2QgPSAxMCwKMTQ0NzQ6ICBkbV9zd19T
UEFSRV80ID0gMTEsCjE0NDc0OiAgZG1fc3dfU1BBUkVfNSA9IDEyLAoxNDQ3NDogIGRtX3N3X3Zh
cl9zID0gMTMsCjE0NDc0OiAgZG1fc3dfdmFyX2QgPSAxNCwKMTQ0NzQ6ICBkbV9zd19TUEFSRV82
ID0gMTUsCjE0NDc0OiAgZG1fc3dfU1BBUkVfNyA9IDE2LAoxNDQ3NDogIGRtX3N3XzY0a2Jfc190
ID0gMTcsCjE0NDc0OiAgZG1fc3dfNjRrYl9kX3QgPSAxOCwKMTQ0NzQ6ICBkbV9zd19TUEFSRV8x
MCA9IDE5LAoxNDQ3NDogIGRtX3N3X1NQQVJFXzExID0gMjAsCjE0NDc0OiAgZG1fc3dfNGtiX3Nf
eCA9IDIxLAoxNDQ3NDogIGRtX3N3XzRrYl9kX3ggPSAyMiwKMTQ0NzQ6ICBkbV9zd19TUEFSRV8x
MiA9IDIzLAoxNDQ3NDogIGRtX3N3X1NQQVJFXzEzID0gMjQsCjE0NDc0OiAgZG1fc3dfNjRrYl9z
X3ggPSAyNSwKMTQ0NzQ6ICBkbV9zd182NGtiX2RfeCA9IDI2LAoxNDQ3NDogIGRtX3N3X1NQQVJF
XzE0ID0gMjcsCjE0NDc0OiAgZG1fc3dfU1BBUkVfMTUgPSAyOCwKMTQ0NzQ6ICBkbV9zd192YXJf
c194ID0gMjksCjE0NDc0OiAgZG1fc3dfdmFyX2RfeCA9IDMwLAoxNDQ3NDogIGRtX3N3XzY0a2Jf
cl94LAoxNDQ3NDogIGRtX3N3X2dmeDdfMmRfdGhpbl9sX3ZwLAoxNDQ3NDogIGRtX3N3X2dmeDdf
MmRfdGhpbl9nbCwKMTQ0NzQ6IH07CjE0NDc0OiBlbnVtIGxiX2RlcHRoIHsKMTQ0NzQ6ICBkbV9s
Yl8xMCA9IDAsIGRtX2xiXzggPSAxLCBkbV9sYl82ID0gMiwgZG1fbGJfMTIgPSAzLCBkbV9sYl8x
NiA9IDQsCjE0NDc0OiAgZG1fbGJfMTkgPSA1CjE0NDc0OiB9OwoxNDQ3NDogZW51bSB2b2x0YWdl
X3N0YXRlIHsKMTQ0NzQ6ICBkbV92bWluID0gMCwgZG1fdm1pZCA9IDEsIGRtX3Zub20gPSAyLCBk
bV92bWF4ID0gMwoxNDQ3NDogfTsKMTQ0NzQ6IGVudW0gc291cmNlX21hY3JvX3RpbGVfc2l6ZSB7
CjE0NDc0OiAgZG1fNGtfdGlsZSA9IDAsIGRtXzY0a190aWxlID0gMSwgZG1fMjU2a190aWxlID0g
MgoxNDQ3NDogfTsKMTQ0NzQ6IGVudW0gY3Vyc29yX2JwcCB7CjE0NDc0OiAgZG1fY3VyXzJiaXQg
PSAwLCBkbV9jdXJfMzJiaXQgPSAxLCBkbV9jdXJfNjRiaXQgPSAyCjE0NDc0OiB9OwoxNDQ3NDog
ZW51bSBjbG9ja19jaGFuZ2Vfc3VwcG9ydCB7CjE0NDc0OiAgZG1fZHJhbV9jbG9ja19jaGFuZ2Vf
dW5pbml0aWFsaXplZCA9IDAsCjE0NDc0OiAgZG1fZHJhbV9jbG9ja19jaGFuZ2VfdmFjdGl2ZSwK
MTQ0NzQ6ICBkbV9kcmFtX2Nsb2NrX2NoYW5nZV92YmxhbmssCjE0NDc0OiAgZG1fZHJhbV9jbG9j
a19jaGFuZ2VfdW5zdXBwb3J0ZWQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gb3V0cHV0
X3N0YW5kYXJkIHsKMTQ0NzQ6ICBkbV9zdGRfdW5pbml0aWFsaXplZCA9IDAsIGRtX3N0ZF9jdnRy
MiwgZG1fc3RkX2N2dAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBtcGNfY29tYmluZV9h
ZmZpbml0eSB7CjE0NDc0OiAgZG1fbXBjX2Fsd2F5c193aGVuX3Bvc3NpYmxlLAoxNDQ3NDogIGRt
X21wY19yZWR1Y2Vfdm9sdGFnZSwKMTQ0NzQ6ICBkbV9tcGNfcmVkdWNlX3ZvbHRhZ2VfYW5kX2Ns
b2NrcywKMTQ0NzQ6ICBkbV9tcGNfbmV2ZXIKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0g
UmVxdWVzdFR5cGUgewoxNDQ3NDogIFJFUV8yNTZCeXRlcywgUkVRXzEyOEJ5dGVzTm9uQ29udGln
dW91cywgUkVRXzEyOEJ5dGVzQ29udGlndW91cywgUkVRX05BCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBlbnVtIHNlbGZfcmVmcmVzaF9hZmZpbml0eSB7CjE0NDc0OiAgZG1fdHJ5X3RvX2FsbG93
X3NlbGZfcmVmcmVzaF9hbmRfbWNsa19zd2l0Y2gsCjE0NDc0OiAgZG1fYWxsb3dfc2VsZl9yZWZy
ZXNoX2FuZF9tY2xrX3N3aXRjaCwKMTQ0NzQ6ICBkbV9hbGxvd19zZWxmX3JlZnJlc2gsCjE0NDc0
OiAgZG1fbmVpdGhlcl9zZWxmX3JlZnJlc2hfbm9yX21jbGtfc3dpdGNoCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBlbnVtIGRtX3ZhbGlkYXRpb25fc3RhdHVzIHsKMTQ0NzQ6ICBETUxfVkFMSURB
VElPTl9PSywKMTQ0NzQ6ICBETUxfRkFJTF9TQ0FMRV9SQVRJT19UQVAsCjE0NDc0OiAgRE1MX0ZB
SUxfU09VUkNFX1BJWEVMX0ZPUk1BVCwKMTQ0NzQ6ICBETUxfRkFJTF9WSUVXUE9SVF9TSVpFLAox
NDQ3NDogIERNTF9GQUlMX1RPVEFMX1ZfQUNUSVZFX0JXLAoxNDQ3NDogIERNTF9GQUlMX0RJT19T
VVBQT1JULAoxNDQ3NDogIERNTF9GQUlMX05PVF9FTk9VR0hfRFNDLAoxNDQ3NDogIERNTF9GQUlM
X0RTQ19DTEtfUkVRVUlSRUQsCjE0NDc0OiAgRE1MX0ZBSUxfRFNDX1ZBTElEQVRJT05fRkFJTFVS
RSwKMTQ0NzQ6ICBETUxfRkFJTF9VUkdFTlRfTEFURU5DWSwKMTQ0NzQ6ICBETUxfRkFJTF9SRU9S
REVSSU5HX0JVRkZFUiwKMTQ0NzQ6ICBETUxfRkFJTF9ESVNQQ0xLX0RQUENMSywKMTQ0NzQ6ICBE
TUxfRkFJTF9UT1RBTF9BVkFJTEFCTEVfUElQRVMsCjE0NDc0OiAgRE1MX0ZBSUxfTlVNX09URywK
MTQ0NzQ6ICBETUxfRkFJTF9XUklURUJBQ0tfTU9ERSwKMTQ0NzQ6ICBETUxfRkFJTF9XUklURUJB
Q0tfTEFURU5DWSwKMTQ0NzQ6ICBETUxfRkFJTF9XUklURUJBQ0tfU0NBTEVfUkFUSU9fVEFQLAox
NDQ3NDogIERNTF9GQUlMX0NVUlNPUl9TVVBQT1JULAoxNDQ3NDogIERNTF9GQUlMX1BJVENIX1NV
UFBPUlQsCjE0NDc0OiAgRE1MX0ZBSUxfUFRFX0JVRkZFUl9TSVpFLAoxNDQ3NDogIERNTF9GQUlM
X0hPU1RfVk1fSU1NRURJQVRFX0ZMSVAsCjE0NDc0OiAgRE1MX0ZBSUxfRFNDX0lOUFVUX0JQQywK
MTQ0NzQ6ICBETUxfRkFJTF9QUkVGRVRDSF9TVVBQT1JULAoxNDQ3NDogIERNTF9GQUlMX1ZfUkFU
SU9fUFJFRkVUQ0gsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHdyaXRlYmFja19jb25m
aWcgewoxNDQ3NDogIGRtX25vcm1hbCwKMTQ0NzQ6ICBkbV93aG9sZV9idWZmZXJfZm9yX3Npbmds
ZV9zdHJlYW1fbm9faW50ZXJsZWF2ZSwKMTQ0NzQ6ICBkbV93aG9sZV9idWZmZXJfZm9yX3Npbmds
ZV9zdHJlYW1faW50ZXJsZWF2ZSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gb2RtX2Nv
bWJpbmVfbW9kZSB7CjE0NDc0OiAgZG1fb2RtX2NvbWJpbmVfbW9kZV9kaXNhYmxlZCwKMTQ0NzQ6
ICBkbV9vZG1fY29tYmluZV9tb2RlXzJ0bzEsCjE0NDc0OiAgZG1fb2RtX2NvbWJpbmVfbW9kZV80
dG8xLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBvZG1fY29tYmluZV9wb2xpY3kgewox
NDQ3NDogIGRtX29kbV9jb21iaW5lX3BvbGljeV9kYWwsCjE0NDc0OiAgZG1fb2RtX2NvbWJpbmVf
cG9saWN5X25vbmUsCjE0NDc0OiAgZG1fb2RtX2NvbWJpbmVfcG9saWN5XzJ0bzEsCjE0NDc0OiAg
ZG1fb2RtX2NvbWJpbmVfcG9saWN5XzR0bzEsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVt
IGltbWVkaWF0ZV9mbGlwX3JlcXVpcmVtZW50IHsKMTQ0NzQ6ICBkbV9pbW1lZGlhdGVfZmxpcF9u
b3RfcmVxdWlyZWQsCjE0NDc0OiAgZG1faW1tZWRpYXRlX2ZsaXBfcmVxdWlyZWQsCjE0NDc0OiB9
OwoxNDQ3NDogIyAzMyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RtbC9kbWxfY29tbW9uX2RlZnMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGRvdWJsZSBk
bWxfcm91bmQoZG91YmxlIGEpOwoxNDQ3NDogIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21v
ZGVfdmJhLmgiIDEKMTQ0NzQ6ICMgMzIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3ZiYS5oIgoxNDQ3NDogc3RydWN0IGRpc3BsYXlf
bW9kZV9saWI7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgTW9kZVN1cHBvcnRBbmRTeXN0ZW1Db25maWd1
cmF0aW9uKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYik7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBkb3VibGUgZ2V0X2Nsa19kY2ZfZGVlcHNsZWVwKHN0cnVjdCBkaXNw
bGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3Qg
KnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfd21fdXJn
ZW50KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVf
cGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IGRv
dWJsZSBnZXRfd21fbWVtb3J5X3RyaXAoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGli
LCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBu
dW1fcGlwZXMpOwoxNDQ3NDogZG91YmxlIGdldF93bV93cml0ZWJhY2tfdXJnZW50KHN0cnVjdCBk
aXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNf
c3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfd21f
c3R1dHRlcl9leGl0KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlz
cGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsK
MTQ0NzQ6IGRvdWJsZSBnZXRfd21fc3R1dHRlcl9lbnRlcl9leGl0KHN0cnVjdCBkaXNwbGF5X21v
ZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVz
LCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfd21fZHJhbV9jbG9j
a19jaGFuZ2Uoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3
NDogZG91YmxlIGdldF93bV93cml0ZWJhY2tfZHJhbV9jbG9ja19jaGFuZ2Uoc3RydWN0IGRpc3Bs
YXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAq
cGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91YmxlIGdldF93bV94ZmNf
dW5kZXJmbG93KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxh
eV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0
NzQ6IGRvdWJsZSBnZXRfc3R1dHRlcl9lZmZpY2llbmN5X25vX3ZibGFuayhzdHJ1Y3QgZGlzcGxh
eV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpw
aXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CjE0NDc0OiBkb3VibGUgZ2V0X3N0dXR0ZXJf
ZWZmaWNpZW5jeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3Bs
YXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CjE0
NDc0OiBkb3VibGUgZ2V0X3VyZ2VudF9sYXRlbmN5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICpt
b2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25l
ZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfdXJnZW50X2V4dHJhX2xhdGVuY3ko
c3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBl
X3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91Ymxl
IGdldF9ub251cmdlbnRfbGF0ZW5jeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIs
IGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51
bV9waXBlcyk7CjE0NDc0OiBkb3VibGUgZ2V0X2RyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3koc3Ry
dWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3Bh
cmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91YmxlIGdl
dF9kaXNwY2xrX2NhbGN1bGF0ZWQoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBj
b25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1f
cGlwZXMpOwoxNDQ3NDogZG91YmxlIGdldF90b3RhbF9kYXRhX3JlYWRfYncoc3RydWN0IGRpc3Bs
YXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAq
cGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91YmxlIGdldF9yZXR1cm5f
Yncoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9w
aXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91
YmxlIGdldF90Y2FsYyhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRp
c3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7
CjE0NDc0OiBkb3VibGUgZ2V0X2ZyYWN0aW9uX29mX3VyZ2VudF9iYW5kd2lkdGgoc3RydWN0IGRp
c3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19z
dCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91YmxlIGdldF9mcmFj
dGlvbl9vZl91cmdlbnRfYmFuZHdpZHRoX2ltbV9mbGlwKHN0cnVjdCBkaXNwbGF5X21vZGVfbGli
ICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNp
Z25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGRvdWJs
ZSBnZXRfZHNjX2RlbGF5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3Qg
ZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVz
LCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X2RwcGNsa19jYWxj
dWxhdGVkKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25l
ZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X2RzY2Nsa19jYWxjdWxhdGVkKHN0
cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9w
YXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hp
Y2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X21pbl90dHVfdmJsYW5rKHN0cnVjdCBkaXNwbGF5
X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBp
cGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0
NDc0OiBkb3VibGUgZ2V0X3ZyYXRpb19wcmVmZXRjaF9sKHN0cnVjdCBkaXNwbGF5X21vZGVfbGli
ICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNp
Z25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3Vi
bGUgZ2V0X3ZyYXRpb19wcmVmZXRjaF9jKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xp
YiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQg
bnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X2Rz
dF94X2FmdGVyX3NjYWxlcihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0
IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBl
cywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwoxNDQ3NDogZG91YmxlIGdldF9kc3RfeV9hZnRl
cl9zY2FsZXIoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2ln
bmVkIGludCB3aGljaF9waXBlKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfZHN0X3lfcGVyX3ZtX3ZibGFu
ayhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3Bp
cGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50
IHdoaWNoX3BpcGUpOwoxNDQ3NDogZG91YmxlIGdldF9kc3RfeV9wZXJfcm93X3ZibGFuayhzdHJ1
Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFy
YW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNo
X3BpcGUpOwoxNDQ3NDogZG91YmxlIGdldF9kc3RfeV9wcmVmZXRjaChzdHJ1Y3QgZGlzcGxheV9t
b2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBl
cywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwoxNDQ3
NDogZG91YmxlIGdldF9kc3RfeV9wZXJfdm1fZmxpcChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAq
bW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWdu
ZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwoxNDQ3NDogZG91Ymxl
IGdldF9kc3RfeV9wZXJfcm93X2ZsaXAoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGli
LCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBu
dW1fcGlwZXMsIHVuc2lnbmVkIGludCB3aGljaF9waXBlKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfeGZj
X3RyYW5zZmVyX2RlbGF5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3Qg
ZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVz
LCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X3hmY19wcmVjaGFy
Z2VfZGVsYXkoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2ln
bmVkIGludCB3aGljaF9waXBlKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfeGZjX3JlbW90ZV9zdXJmYWNl
X2ZsaXBfbGF0ZW5jeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRp
c3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywg
dW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwoxNDQ3NDogZG91YmxlIGdldF94ZmNfcHJlZmV0Y2hf
bWFyZ2luKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25l
ZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X3JlZmN5Y19wZXJfdm1fZ3JvdXBf
dmJsYW5rKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25l
ZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X3JlZmN5Y19wZXJfdm1fZ3JvdXBf
ZmxpcChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJl
X3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQg
aW50IHdoaWNoX3BpcGUpOwoxNDQ3NDogZG91YmxlIGdldF9yZWZjeWNfcGVyX3ZtX3JlcV92Ymxh
bmsoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9w
aXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGlu
dCB3aGljaF9waXBlKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfcmVmY3ljX3Blcl92bV9yZXFfZmxpcChz
dHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVf
cGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdo
aWNoX3BpcGUpOwoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBpbnQgZ2V0X3ZzdGFydHVwX2NhbGN1
bGF0ZWQoCjE0NDc0OiAgIHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6
ICAgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICB1bnNp
Z25lZCBpbnQgbnVtX3BpcGVzLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0
NDc0OiAKMTQ0NzQ6IGRvdWJsZSBnZXRfdG90YWxfaW1tZWRpYXRlX2ZsaXBfYnl0ZXMoCjE0NDc0
OiAgIHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgY29uc3QgZGlz
cGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVt
X3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfdG90YWxfaW1tZWRpYXRlX2ZsaXBfYncoCjE0NDc0
OiAgIHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgY29uc3QgZGlz
cGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVt
X3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfdG90YWxfcHJlZmV0Y2hfYncoCjE0NDc0OiAgIHN0
cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVtX3BpcGVz
KTsKMTQ0NzQ6IHVuc2lnbmVkIGludCBkbWxfZ2V0X3ZvbHRhZ2VfbGV2ZWwoCjE0NDc0OiAgIHN0
cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVtX3BpcGVz
KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBQaXhlbENsb2NrQWRqdXN0bWVudEZvclByb2dyZXNzaXZl
VG9JbnRlcmxhY2VVbml0KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYik7CjE0NDc0
OiAKMTQ0NzQ6IGJvb2wgQ2FsY3VsYXRlMjU2QkJsb2NrU2l6ZXMoCjE0NDc0OiAgIGVudW0gc291
cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKMTQ0NzQ6ICAgZW51bSBkbV9zd2l6
emxlX21vZGUgU3VyZmFjZVRpbGluZywKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IEJ5dGVQZXJQaXhl
bFksCjE0NDc0OiAgIHVuc2lnbmVkIGludCBCeXRlUGVyUGl4ZWxDLAoxNDQ3NDogICB1bnNpZ25l
ZCBpbnQgKkJsb2NrSGVpZ2h0MjU2Qnl0ZXNZLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgKkJsb2Nr
SGVpZ2h0MjU2Qnl0ZXNDLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgKkJsb2NrV2lkdGgyNTZCeXRl
c1ksCjE0NDc0OiAgIHVuc2lnbmVkIGludCAqQmxvY2tXaWR0aDI1NkJ5dGVzQyk7CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCB2YmFfdmFyc19zdCB7CjE0NDc0OiAgaXBfcGFyYW1zX3N0IGlwOwoxNDQ3
NDogIHNvY19ib3VuZGluZ19ib3hfc3Qgc29jOwoxNDQ3NDogCjE0NDc0OiAgaW50IG1heE1wY0Nv
bWI7CjE0NDc0OiAgYm9vbCBVc2VNYXhpbXVtVlN0YXJ0dXA7CjE0NDc0OiAKMTQ0NzQ6ICBkb3Vi
bGUgV3JpdGViYWNrRElTUENMSzsKMTQ0NzQ6ICBkb3VibGUgRFBQQ0xLVXNpbmdTaW5nbGVEUFBM
dW1hOwoxNDQ3NDogIGRvdWJsZSBEUFBDTEtVc2luZ1NpbmdsZURQUENocm9tYTsKMTQ0NzQ6ICBk
b3VibGUgRElTUENMS1dpdGhSYW1waW5nOwoxNDQ3NDogIGRvdWJsZSBESVNQQ0xLV2l0aG91dFJh
bXBpbmc7CjE0NDc0OiAgZG91YmxlIEdsb2JhbERQUENMSzsKMTQ0NzQ6ICBkb3VibGUgRElTUENM
S1dpdGhSYW1waW5nUm91bmRlZFRvREZTR3JhbnVsYXJpdHk7CjE0NDc0OiAgZG91YmxlIERJU1BD
TEtXaXRob3V0UmFtcGluZ1JvdW5kZWRUb0RGU0dyYW51bGFyaXR5OwoxNDQ3NDogIGRvdWJsZSBN
YXhEaXNwY2xrUm91bmRlZFRvREZTR3JhbnVsYXJpdHk7CjE0NDc0OiAgYm9vbCBEQ0NFbmFibGVk
QW55UGxhbmU7CjE0NDc0OiAgZG91YmxlIFJldHVybkJhbmR3aWR0aFRvRENOOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBUb3RhbEFjdGl2ZURQUDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgVG90YWxEQ0NB
Y3RpdmVEUFA7CjE0NDc0OiAgZG91YmxlIFVyZ2VudFJvdW5kVHJpcEFuZE91dE9mT3JkZXJMYXRl
bmN5OwoxNDQ3NDogIGRvdWJsZSBTdHV0dGVyUGVyaW9kOwoxNDQ3NDogIGRvdWJsZSBGcmFtZVRp
bWVGb3JNaW5GdWxsREVUQnVmZmVyaW5nVGltZTsKMTQ0NzQ6ICBkb3VibGUgQXZlcmFnZVJlYWRC
YW5kd2lkdGg7CjE0NDc0OiAgZG91YmxlIFRvdGFsUm93UmVhZEJhbmR3aWR0aDsKMTQ0NzQ6ICBk
b3VibGUgUGFydE9mQnVyc3RUaGF0Rml0c0luUk9COwoxNDQ3NDogIGRvdWJsZSBTdHV0dGVyQnVy
c3RUaW1lOwoxNDQ3NDogIHVuc2lnbmVkIGludCBOZXh0UHJlZmV0Y2hNb2RlOwoxNDQ3NDogIGRv
dWJsZSBOZXh0TWF4VlN0YXJ0dXA7CjE0NDc0OiAgZG91YmxlIFZCbGFua1RpbWU7CjE0NDc0OiAg
ZG91YmxlIFNtYWxsZXN0VkJsYW5rOwoxNDQ3NDogIGRvdWJsZSBEQ0ZDTEtEZWVwU2xlZXBQZXJQ
bGFuZVs4XTsKMTQ0NzQ6ICBkb3VibGUgRWZmZWN0aXZlREVUUGx1c0xCTGluZXNMdW1hOwoxNDQ3
NDogIGRvdWJsZSBFZmZlY3RpdmVERVRQbHVzTEJMaW5lc0Nocm9tYTsKMTQ0NzQ6ICBkb3VibGUg
VXJnZW50TGF0ZW5jeVN1cHBvcnRVc0x1bWE7CjE0NDc0OiAgZG91YmxlIFVyZ2VudExhdGVuY3lT
dXBwb3J0VXNDaHJvbWE7CjE0NDc0OiAgdW5zaWduZWQgaW50IERTQ0Zvcm1hdEZhY3RvcjsKMTQ0
NzQ6IAoxNDQ3NDogIGJvb2wgRHVtbXlQU3RhdGVDaGVjazsKMTQ0NzQ6ICBib29sIERSQU1DbG9j
a0NoYW5nZVN1cHBvcnRzVkFjdGl2ZTsKMTQ0NzQ6ICBib29sIFByZWZldGNoTW9kZVN1cHBvcnRl
ZDsKMTQ0NzQ6ICBib29sIFByZWZldGNoQW5kSW1tZWRpYXRlRmxpcFN1cHBvcnRlZDsKMTQ0NzQ6
ICBlbnVtIHNlbGZfcmVmcmVzaF9hZmZpbml0eSBBbGxvd0RSQU1TZWxmUmVmcmVzaE9yRFJBTUNs
b2NrQ2hhbmdlSW5WYmxhbms7CjE0NDc0OiAgZG91YmxlIFhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVs
YXk7CjE0NDc0OiAgZG91YmxlIFRJbml0WEZpbGw7CjE0NDc0OiAgZG91YmxlIFRzbHZDaGs7CjE0
NDc0OiAgZG91YmxlIFNyY0FjdGl2ZURyYWluUmF0ZTsKMTQ0NzQ6ICBib29sIEltbWVkaWF0ZUZs
aXBTdXBwb3J0ZWQ7CjE0NDc0OiAgZW51bSBtcGNfY29tYmluZV9hZmZpbml0eSBXaGVuVG9Eb01Q
Q0NvbWJpbmU7CjE0NDc0OiAKMTQ0NzQ6ICBib29sIFByZWZldGNoRVJST1I7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgVlN0YXJ0dXBMaW5lczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgQWN0
aXZlRFBQczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNZ
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBMQkxhdGVuY3lIaWRpbmdTb3VyY2VMaW5lc0M7CjE0NDc0
OiAgZG91YmxlIEFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5bOF07CjE0NDc0OiAg
ZG91YmxlIE1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbjsKMTQ0NzQ6ICBkb3VibGUgSW5p
dEZpbGxMZXZlbDsKMTQ0NzQ6ICBkb3VibGUgRmluYWxGaWxsTWFyZ2luOwoxNDQ3NDogIGRvdWJs
ZSBGaW5hbEZpbGxMZXZlbDsKMTQ0NzQ6ICBkb3VibGUgUmVtYWluaW5nRmlsbExldmVsOwoxNDQ3
NDogIGRvdWJsZSBURmluYWx4RmlsbDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIGRvdWJsZSBTUkV4aXRUaW1lOwoxNDQ3NDogIGRvdWJsZSBTUkVudGVyUGx1c0V4aXRU
aW1lOwoxNDQ3NDogIGRvdWJsZSBVcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seTsKMTQ0NzQ6ICBk
b3VibGUgVXJnZW50TGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhOwoxNDQ3NDogIGRvdWJsZSBV
cmdlbnRMYXRlbmN5Vk1EYXRhT25seTsKMTQ0NzQ6ICBkb3VibGUgVXJnZW50TGF0ZW5jeTsKMTQ0
NzQ6ICBkb3VibGUgV3JpdGViYWNrTGF0ZW5jeTsKMTQ0NzQ6ICBkb3VibGUgUGVyY2VudE9mSWRl
YWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lQaXhlbERhdGFP
bmx5OwoxNDQ3NDogIGRvdWJsZSBQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldS
ZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhOwoxNDQ3NDogIGRvdWJs
ZSBQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0
ZW5jeVZNRGF0YU9ubHk7CjE0NDc0OiAgZG91YmxlIE1heEF2ZXJhZ2VQZXJjZW50T2ZJZGVhbFNE
UFBvcnRCV0Rpc3BsYXlDYW5Vc2VJbk5vcm1hbFN5c3RlbU9wZXJhdGlvbjsKMTQ0NzQ6ICBkb3Vi
bGUgTWF4QXZlcmFnZVBlcmNlbnRPZklkZWFsRFJBTUJXRGlzcGxheUNhblVzZUluTm9ybWFsU3lz
dGVtT3BlcmF0aW9uOwoxNDQ3NDogIGRvdWJsZSBOdW1iZXJPZkNoYW5uZWxzOwoxNDQ3NDogIGRv
dWJsZSBEUkFNQ2hhbm5lbFdpZHRoOwoxNDQ3NDogIGRvdWJsZSBGYWJyaWNEYXRhcGF0aFRvRENO
RGF0YVJldHVybjsKMTQ0NzQ6ICBkb3VibGUgUmV0dXJuQnVzV2lkdGg7CjE0NDc0OiAgZG91Ymxl
IERvd25zcHJlYWRpbmc7CjE0NDc0OiAgZG91YmxlIERJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3By
ZWFkaW5nOwoxNDQ3NDogIGRvdWJsZSBESVNQQ0xLRFBQQ0xLVkNPU3BlZWQ7CjE0NDc0OiAgZG91
YmxlIFJvdW5kVHJpcFBpbmdMYXRlbmN5Q3ljbGVzOwoxNDQ3NDogIGRvdWJsZSBVcmdlbnRPdXRP
Zk9yZGVyUmV0dXJuUGVyQ2hhbm5lbDsKMTQ0NzQ6ICBkb3VibGUgVXJnZW50T3V0T2ZPcmRlclJl
dHVyblBlckNoYW5uZWxQaXhlbERhdGFPbmx5OwoxNDQ3NDogIGRvdWJsZSBVcmdlbnRPdXRPZk9y
ZGVyUmV0dXJuUGVyQ2hhbm5lbFBpeGVsTWl4ZWRXaXRoVk1EYXRhOwoxNDQ3NDogIGRvdWJsZSBV
cmdlbnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbFZNRGF0YU9ubHk7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IFZNTVBhZ2VTaXplOwoxNDQ3NDogIGRvdWJsZSBEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5
OwoxNDQ3NDogIGRvdWJsZSBYRkNCdXNUcmFuc3BvcnRUaW1lOwoxNDQ3NDogIGJvb2wgVXNlVXJn
ZW50QnVyc3RCYW5kd2lkdGg7CjE0NDc0OiAgZG91YmxlIFhGQ1hCVUZMYXRlbmN5VG9sZXJhbmNl
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IFJP
QkJ1ZmZlclNpemVJbktCeXRlOwoxNDQ3NDogIGRvdWJsZSBERVRCdWZmZXJTaXplSW5LQnl0ZTsK
MTQ0NzQ6ICBkb3VibGUgREVUQnVmZmVyU2l6ZUluVGltZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
RFBQT3V0cHV0QnVmZmVyUGl4ZWxzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBPUFBPdXRwdXRCdWZm
ZXJMaW5lczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgUGl4ZWxDaHVua1NpemVJbktCeXRlOwoxNDQ3
NDogIGRvdWJsZSBSZXR1cm5CVzsKMTQ0NzQ6ICBib29sIEdQVVZNRW5hYmxlOwoxNDQ3NDogIGJv
b2wgSG9zdFZNRW5hYmxlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBHUFVWTU1heFBhZ2VUYWJsZUxl
dmVsczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgSG9zdFZNTWF4UGFnZVRhYmxlTGV2ZWxzOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBIb3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHM7CjE0NDc0OiAgdW5z
aWduZWQgaW50IE92ZXJyaWRlR1BVVk1QYWdlVGFibGVMZXZlbHM7CjE0NDc0OiAgdW5zaWduZWQg
aW50IE92ZXJyaWRlSG9zdFZNUGFnZVRhYmxlTGV2ZWxzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBN
ZXRhQ2h1bmtTaXplOwoxNDQ3NDogIGRvdWJsZSBNaW5QaXhlbENodW5rU2l6ZUJ5dGVzOwoxNDQ3
NDogIGRvdWJsZSBNaW5NZXRhQ2h1bmtTaXplQnl0ZXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IFdy
aXRlYmFja0NodW5rU2l6ZTsKMTQ0NzQ6ICBib29sIE9ETUNhcGFiaWxpdHk7CjE0NDc0OiAgdW5z
aWduZWQgaW50IE51bWJlck9mRFNDOwoxNDQ3NDogIHVuc2lnbmVkIGludCBMaW5lQnVmZmVyU2l6
ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTWF4TGluZUJ1ZmZlckxpbmVzOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBXcml0ZWJhY2tJbnRlcmZhY2VMdW1hQnVmZmVyU2l6ZTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgV3JpdGViYWNrSW50ZXJmYWNlQ2hyb21hQnVmZmVyU2l6ZTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgV3JpdGViYWNrQ2hyb21hTGluZUJ1ZmZlcldpZHRoOwoxNDQ3NDogIGVudW0gd3JpdGVi
YWNrX2NvbmZpZyBXcml0ZWJhY2tDb25maWd1cmF0aW9uOwoxNDQ3NDogIGRvdWJsZSBNYXhEQ0hV
QlRvUFNDTFRocm91Z2hwdXQ7CjE0NDc0OiAgZG91YmxlIE1heFBTQ0xUb0xCVGhyb3VnaHB1dDsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNMdW1hOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0Nocm9tYTsKMTQ0NzQ6ICBkb3Vi
bGUgRElTUENMS1JhbXBpbmdNYXJnaW47CjE0NDc0OiAgdW5zaWduZWQgaW50IE1heEludGVyRENO
VGlsZVJlcGVhdGVyczsKMTQ0NzQ6ICBib29sIFhGQ1N1cHBvcnRlZDsKMTQ0NzQ6ICBkb3VibGUg
WEZDU2x2Q2h1bmtTaXplOwoxNDQ3NDogIGRvdWJsZSBYRkNGaWxsQldPdmVyaGVhZDsKMTQ0NzQ6
ICBkb3VibGUgWEZDRmlsbENvbnN0YW50OwoxNDQ3NDogIGRvdWJsZSBYRkNUU2x2VnVwZGF0ZU9m
ZnNldDsKMTQ0NzQ6ICBkb3VibGUgWEZDVFNsdlZ1cGRhdGVXaWR0aDsKMTQ0NzQ6ICBkb3VibGUg
WEZDVFNsdlZyZWFkeU9mZnNldDsKMTQ0NzQ6ICBkb3VibGUgRFBQQ0xLRGVsYXlTdWJ0b3RhbDsK
MTQ0NzQ6ICBkb3VibGUgRFBQQ0xLRGVsYXlTQ0w7CjE0NDc0OiAgZG91YmxlIERQUENMS0RlbGF5
U0NMTEJPbmx5OwoxNDQ3NDogIGRvdWJsZSBEUFBDTEtEZWxheUNOVkNGb3JtYXRlcjsKMTQ0NzQ6
ICBkb3VibGUgRFBQQ0xLRGVsYXlDTlZDQ3Vyc29yOwoxNDQ3NDogIGRvdWJsZSBESVNQQ0xLRGVs
YXlTdWJ0b3RhbDsKMTQ0NzQ6ICBib29sIFByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0SW5PUFA7
CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgVm9sdGFnZUxldmVsOwoxNDQ3NDogIGRvdWJsZSBGYWJyaWND
bG9jazsKMTQ0NzQ6ICBkb3VibGUgRFJBTVNwZWVkOwoxNDQ3NDogIGRvdWJsZSBESVNQQ0xLOwox
NDQ3NDogIGRvdWJsZSBTT0NDTEs7CjE0NDc0OiAgZG91YmxlIERDRkNMSzsKMTQ0NzQ6IAoxNDQ3
NDogIHVuc2lnbmVkIGludCBOdW1iZXJPZkFjdGl2ZVBsYW5lczsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgTnVtYmVyT2ZEU0NTbGljZXNbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFZpZXdwb3J0V2lk
dGhbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFZpZXdwb3J0SGVpZ2h0WzhdOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBWaWV3cG9ydFlTdGFydFlbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFZpZXdw
b3J0WVN0YXJ0Q1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgUGl0Y2hZWzhdOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBQaXRjaENbOF07CjE0NDc0OiAgZG91YmxlIEhSYXRpb1s4XTsKMTQ0NzQ6ICBk
b3VibGUgVlJhdGlvWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBodGFwc1s4XTsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgdnRhcHNbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IEhUQVBzQ2hyb21hWzhd
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBWVEFQc0Nocm9tYVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgSFRvdGFsWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBWVG90YWxbOF07CjE0NDc0OiAgdW5z
aWduZWQgaW50IFZUb3RhbF9NYXhbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFZUb3RhbF9NaW5b
OF07CjE0NDc0OiAgaW50IERQUFBlclBsYW5lWzhdOwoxNDQ3NDogIGRvdWJsZSBQaXhlbENsb2Nr
WzhdOwoxNDQ3NDogIGRvdWJsZSBQaXhlbENsb2NrQmFja0VuZFs4XTsKMTQ0NzQ6ICBib29sIERD
Q0VuYWJsZVs4XTsKMTQ0NzQ6ICBib29sIEZFQ0VuYWJsZVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgRENDTWV0YVBpdGNoWVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgRENDTWV0YVBpdGNoQ1s4
XTsKMTQ0NzQ6ICBlbnVtIHNjYW5fZGlyZWN0aW9uX2NsYXNzIFNvdXJjZVNjYW5bOF07CjE0NDc0
OiAgZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIFNvdXJjZVBpeGVsRm9ybWF0WzhdOwoxNDQ3NDog
IGJvb2wgV3JpdGViYWNrRW5hYmxlWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBBY3RpdmVXcml0
ZWJhY2tzUGVyUGxhbmVbOF07CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja0Rlc3RpbmF0aW9uV2lk
dGhbOF07CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja0Rlc3RpbmF0aW9uSGVpZ2h0WzhdOwoxNDQ3
NDogIGRvdWJsZSBXcml0ZWJhY2tTb3VyY2VIZWlnaHRbOF07CjE0NDc0OiAgZW51bSBzb3VyY2Vf
Zm9ybWF0X2NsYXNzIFdyaXRlYmFja1BpeGVsRm9ybWF0WzhdOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBXcml0ZWJhY2tMdW1hSFRhcHNbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFdyaXRlYmFja0x1
bWFWVGFwc1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgV3JpdGViYWNrQ2hyb21hSFRhcHNbOF07
CjE0NDc0OiAgdW5zaWduZWQgaW50IFdyaXRlYmFja0Nocm9tYVZUYXBzWzhdOwoxNDQ3NDogIGRv
dWJsZSBXcml0ZWJhY2tIUmF0aW9bOF07CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja1ZSYXRpb1s4
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgSEFjdGl2ZVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
VkFjdGl2ZVs4XTsKMTQ0NzQ6ICBib29sIEludGVybGFjZVs4XTsKMTQ0NzQ6ICBlbnVtIGRtX3N3
aXp6bGVfbW9kZSBTdXJmYWNlVGlsaW5nWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBTY2FsZXJS
ZWNvdXRXaWR0aFs4XTsKMTQ0NzQ6ICBib29sIER5bmFtaWNNZXRhZGF0YUVuYWJsZVs4XTsKMTQ0
NzQ6ICBpbnQgRHluYW1pY01ldGFkYXRhTGluZXNCZWZvcmVBY3RpdmVSZXF1aXJlZFs4XTsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgRHluYW1pY01ldGFkYXRhVHJhbnNtaXR0ZWRCeXRlc1s4XTsKMTQ0
NzQ6ICBkb3VibGUgRENDUmF0ZVs4XTsKMTQ0NzQ6ICBkb3VibGUgQXZlcmFnZURDQ0NvbXByZXNz
aW9uUmF0ZTsKMTQ0NzQ6ICBlbnVtIG9kbV9jb21iaW5lX21vZGUgT0RNQ29tYmluZUVuYWJsZWRb
OF07CjE0NDc0OiAgZG91YmxlIE91dHB1dEJwcFs4XTsKMTQ0NzQ6ICBib29sIERTQ0VuYWJsZWRb
OF07CjE0NDc0OiAgdW5zaWduZWQgaW50IERTQ0lucHV0Qml0UGVyQ29tcG9uZW50WzhdOwoxNDQ3
NDogIGVudW0gb3V0cHV0X2Zvcm1hdF9jbGFzcyBPdXRwdXRGb3JtYXRbOF07CjE0NDc0OiAgZW51
bSBvdXRwdXRfZW5jb2Rlcl9jbGFzcyBPdXRwdXRbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IEJs
ZW5kaW5nQW5kVGltaW5nWzhdOwoxNDQ3NDogIGJvb2wgU3luY2hyb25pemVkVkJsYW5rOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBOdW1iZXJPZkN1cnNvcnNbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50
IEN1cnNvcldpZHRoWzhdWzJdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBDdXJzb3JCUFBbOF1bMl07
CjE0NDc0OiAgYm9vbCBYRkNFbmFibGVkWzhdOwoxNDQ3NDogIGJvb2wgU2NhbGVyRW5hYmxlZFs4
XTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBJbW1lZGlhdGVGbGlwU3VwcG9ydDsKMTQ0
NzQ6ICBkb3VibGUgREVUQnVmZmVyU2l6ZVlbOF07CjE0NDc0OiAgZG91YmxlIERFVEJ1ZmZlclNp
emVDWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBTd2F0aEhlaWdodFlbOF07CjE0NDc0OiAgdW5z
aWduZWQgaW50IFN3YXRoSGVpZ2h0Q1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTEJCaXRQZXJQ
aXhlbFs4XTsKMTQ0NzQ6ICBkb3VibGUgTGFzdFBpeGVsT2ZMaW5lRXh0cmFXYXRlcm1hcms7CjE0
NDc0OiAgZG91YmxlIFRvdGFsRGF0YVJlYWRCYW5kd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQgaW50
IFRvdGFsQWN0aXZlV3JpdGViYWNrOwoxNDQ3NDogIHVuc2lnbmVkIGludCBFZmZlY3RpdmVMQkxh
dGVuY3lIaWRpbmdTb3VyY2VMaW5lc0x1bWE7CjE0NDc0OiAgdW5zaWduZWQgaW50IEVmZmVjdGl2
ZUxCTGF0ZW5jeUhpZGluZ1NvdXJjZUxpbmVzQ2hyb21hOwoxNDQ3NDogIGRvdWJsZSBCYW5kd2lk
dGhBdmFpbGFibGVGb3JJbW1lZGlhdGVGbGlwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBQcmVmZXRj
aE1vZGVbNyArIDFdWzJdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBQcmVmZXRjaE1vZGVQZXJTdGF0
ZVs3ICsgMV1bMl07CjE0NDc0OiAgdW5zaWduZWQgaW50IE1pblByZWZldGNoTW9kZTsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgTWF4UHJlZmV0Y2hNb2RlOwoxNDQ3NDogIGJvb2wgQW55TGluZXNGb3JW
TU9yUm93VG9vTGFyZ2U7CjE0NDc0OiAgZG91YmxlIE1heFZTdGFydHVwOwoxNDQ3NDogIGJvb2wg
SWdub3JlVmlld3BvcnRQb3NpdGlvbmluZzsKMTQ0NzQ6ICBib29sIEVycm9yUmVzdWx0WzhdOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGRvdWJsZSBEQ0ZDTEtEZWVwU2xlZXA7CjE0
NDc0OiAgZG91YmxlIFVyZ2VudFdhdGVybWFyazsKMTQ0NzQ6ICBkb3VibGUgVXJnZW50RXh0cmFM
YXRlbmN5OwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tVcmdlbnRXYXRlcm1hcms7CjE0NDc0OiAg
ZG91YmxlIFN0dXR0ZXJFeGl0V2F0ZXJtYXJrOwoxNDQ3NDogIGRvdWJsZSBTdHV0dGVyRW50ZXJQ
bHVzRXhpdFdhdGVybWFyazsKMTQ0NzQ6ICBkb3VibGUgRFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJr
OwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcms7CjE0NDc0
OiAgZG91YmxlIFN0dXR0ZXJFZmZpY2llbmN5OwoxNDQ3NDogIGRvdWJsZSBTdHV0dGVyRWZmaWNp
ZW5jeU5vdEluY2x1ZGluZ1ZCbGFuazsKMTQ0NzQ6ICBkb3VibGUgTm9uVXJnZW50TGF0ZW5jeVRv
bGVyYW5jZTsKMTQ0NzQ6ICBkb3VibGUgTWluQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeVN1
cHBvcnRlZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGRvdWJsZSBE
SVNQQ0xLX2NhbGN1bGF0ZWQ7CjE0NDc0OiAgZG91YmxlIERQUENMS19jYWxjdWxhdGVkWzhdOwox
NDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IFZVcGRhdGVPZmZzZXRQaXhbOF07CjE0NDc0OiAg
ZG91YmxlIFZVcGRhdGVXaWR0aFBpeFs4XTsKMTQ0NzQ6ICBkb3VibGUgVlJlYWR5T2Zmc2V0UGl4
WzhdOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IFRvdEltbWVkaWF0ZUZsaXBCeXRlczsK
MTQ0NzQ6ICBkb3VibGUgVENhbGM7CjE0NDc0OiAKMTQ0NzQ6ICBkaXNwbGF5X2UyZV9waXBlX3Bh
cmFtc19zdCBjYWNoZV9waXBlc1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY2FjaGVfbnVtX3Bp
cGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBwaXBlX3BsYW5lWzhdOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIGJvb2wgRW1iZWRkZWRQYW5lbFs4XTsKMTQ0NzQ6ICBib29sIFN1cHBv
cnRHRlg3Q29tcGF0aWJsZVRpbGluZ0luMzJicHBBbmQ2NGJwcDsKMTQ0NzQ6ICBkb3VibGUgTWF4
SFNDTFJhdGlvOwoxNDQ3NDogIGRvdWJsZSBNYXhWU0NMUmF0aW87CjE0NDc0OiAgdW5zaWduZWQg
aW50IE1heE51bVdyaXRlYmFjazsKMTQ0NzQ6ICBib29sIFdyaXRlYmFja0x1bWFBbmRDaHJvbWFT
Y2FsaW5nU3VwcG9ydGVkOwoxNDQ3NDogIGJvb2wgQ3Vyc29yNjRCcHBTdXBwb3J0OwoxNDQ3NDog
IGRvdWJsZSBEQ0ZDTEtQZXJTdGF0ZVs3ICsgMV07CjE0NDc0OiAgZG91YmxlIERDRkNMS1N0YXRl
WzcgKyAxXVsyXTsKMTQ0NzQ6ICBkb3VibGUgRmFicmljQ2xvY2tQZXJTdGF0ZVs3ICsgMV07CjE0
NDc0OiAgZG91YmxlIFNPQ0NMS1BlclN0YXRlWzcgKyAxXTsKMTQ0NzQ6ICBkb3VibGUgUEhZQ0xL
UGVyU3RhdGVbNyArIDFdOwoxNDQ3NDogIGRvdWJsZSBEVEJDTEtQZXJTdGF0ZVs3ICsgMV07CjE0
NDc0OiAgZG91YmxlIE1heERwcGNsa1s3ICsgMV07CjE0NDc0OiAgZG91YmxlIE1heERTQ0NMS1s3
ICsgMV07CjE0NDc0OiAgZG91YmxlIERSQU1TcGVlZFBlclN0YXRlWzcgKyAxXTsKMTQ0NzQ6ICBk
b3VibGUgTWF4RGlzcGNsa1s3ICsgMV07CjE0NDc0OiAgaW50IFZvbHRhZ2VPdmVycmlkZUxldmVs
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIFNjYWxlUmF0aW9BbmRUYXBzU3VwcG9ydDsK
MTQ0NzQ6ICBib29sIFNvdXJjZUZvcm1hdFBpeGVsQW5kU2NhblN1cHBvcnQ7CjE0NDc0OiAgZG91
YmxlIFRvdGFsQmFuZHdpZHRoQ29uc3VtZWRHQnl0ZVBlclNlY29uZDsKMTQ0NzQ6ICBib29sIERD
Q0VuYWJsZWRJbkFueVBsYW5lOwoxNDQ3NDogIGJvb2wgV3JpdGViYWNrTGF0ZW5jeVN1cHBvcnQ7
CjE0NDc0OiAgYm9vbCBXcml0ZWJhY2tNb2RlU3VwcG9ydDsKMTQ0NzQ6ICBib29sIFdyaXRlYmFj
azEwYnBjNDIwU3VwcG9ydGVkOwoxNDQ3NDogIGJvb2wgQmFuZHdpZHRoU3VwcG9ydFs3ICsgMV07
CjE0NDc0OiAgdW5zaWduZWQgaW50IFRvdGFsTnVtYmVyT2ZBY3RpdmVXcml0ZWJhY2s7CjE0NDc0
OiAgZG91YmxlIENyaXRpY2FsUG9pbnQ7CjE0NDc0OiAgZG91YmxlIFJldHVybkJXVG9EQ05QZXJT
dGF0ZTsKMTQ0NzQ6ICBib29sIElzRXJyb3JSZXN1bHRbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGJv
b2wgcHJlZmV0Y2hfdm1fYndfdmFsaWQ7CjE0NDc0OiAgYm9vbCBwcmVmZXRjaF9yb3dfYndfdmFs
aWQ7CjE0NDc0OiAgYm9vbCBOdW1iZXJPZk9UR1N1cHBvcnQ7CjE0NDc0OiAgYm9vbCBOb25zdXBw
b3J0ZWREU0NJbnB1dEJQQzsKMTQ0NzQ6ICBib29sIFdyaXRlYmFja1NjYWxlUmF0aW9BbmRUYXBz
U3VwcG9ydDsKMTQ0NzQ6ICBib29sIEN1cnNvclN1cHBvcnQ7CjE0NDc0OiAgYm9vbCBQaXRjaFN1
cHBvcnQ7CjE0NDc0OiAgZW51bSBkbV92YWxpZGF0aW9uX3N0YXR1cyBWYWxpZGF0aW9uU3RhdHVz
WzcgKyAxXTsKMTQ0NzQ6IAoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tMaW5lQnVmZmVyTHVtYUJ1
ZmZlclNpemU7CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja0xpbmVCdWZmZXJDaHJvbWFCdWZmZXJT
aXplOwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tNaW5IU0NMUmF0aW87CjE0NDc0OiAgZG91Ymxl
IFdyaXRlYmFja01pblZTQ0xSYXRpbzsKMTQ0NzQ6ICBkb3VibGUgV3JpdGViYWNrTWF4SFNDTFJh
dGlvOwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tNYXhWU0NMUmF0aW87CjE0NDc0OiAgZG91Ymxl
IFdyaXRlYmFja01heEhTQ0xUYXBzOwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tNYXhWU0NMVGFw
czsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTWF4TnVtRFBQOwoxNDQ3NDogIHVuc2lnbmVkIGludCBN
YXhOdW1PVEc7CjE0NDc0OiAgZG91YmxlIEN1cnNvckJ1ZmZlclNpemU7CjE0NDc0OiAgZG91Ymxl
IEN1cnNvckNodW5rU2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTW9kZTsKMTQ0NzQ6ICBkb3Vi
bGUgT3V0cHV0TGlua0RQTGFuZXNbOF07CjE0NDc0OiAgZG91YmxlIEZvcmNlZE91dHB1dExpbmtC
UFBbOF07CjE0NDc0OiAgZG91YmxlIEltbWVkaWF0ZUZsaXBCV1s4XTsKMTQ0NzQ6ICBkb3VibGUg
TWF4TWF4VlN0YXJ0dXBbNyArIDFdWzJdOwoxNDQ3NDogCjE0NDc0OiAgZG91YmxlIFdyaXRlYmFj
a0x1bWFWRXh0cmE7CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja0Nocm9tYVZFeHRyYTsKMTQ0NzQ6
ICBkb3VibGUgV3JpdGViYWNrUmVxdWlyZWRESVNQQ0xLOwoxNDQ3NDogIGRvdWJsZSBNYXhpbXVt
U3dhdGhXaWR0aFN1cHBvcnQ7CjE0NDc0OiAgZG91YmxlIE1heGltdW1Td2F0aFdpZHRoSW5ERVRC
dWZmZXI7CjE0NDc0OiAgZG91YmxlIE1heGltdW1Td2F0aFdpZHRoSW5MaW5lQnVmZmVyOwoxNDQ3
NDogIGRvdWJsZSBNYXhEaXNwY2xrUm91bmRlZERvd25Ub0RGU0dyYW51bGFyaXR5OwoxNDQ3NDog
IGRvdWJsZSBNYXhEcHBjbGtSb3VuZGVkRG93blRvREZTR3JhbnVsYXJpdHk7CjE0NDc0OiAgZG91
YmxlIFBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aG91dE9ETUNvbWJpbmU7CjE0NDc0OiAgZG91Ymxl
IFBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aE9ETUNvbWJpbmU7CjE0NDc0OiAgZG91YmxlIFBsYW5l
UmVxdWlyZWRESVNQQ0xLOwoxNDQ3NDogIGRvdWJsZSBUb3RhbE51bWJlck9mQWN0aXZlT1RHOwox
NDQ3NDogIGRvdWJsZSBGRUNPdmVyaGVhZDsKMTQ0NzQ6ICBkb3VibGUgRWZmZWN0aXZlRkVDT3Zl
cmhlYWQ7CjE0NDc0OiAgZG91YmxlIE91dGJwcDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgT3V0YnBw
RFNDOwoxNDQ3NDogIGRvdWJsZSBUb3RhbERTQ1VuaXRzUmVxdWlyZWQ7CjE0NDc0OiAgZG91Ymxl
IGJwcDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc2xpY2VzOwoxNDQ3NDogIGRvdWJsZSBTd2F0aFdp
ZHRoR3JhbnVsYXJpdHlZOwoxNDQ3NDogIGRvdWJsZSBSb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRl
c1k7CjE0NDc0OiAgZG91YmxlIFN3YXRoV2lkdGhHcmFudWxhcml0eUM7CjE0NDc0OiAgZG91Ymxl
IFJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzQzsKMTQ0NzQ6ICBkb3VibGUgRWZmZWN0aXZlREVU
TEJMaW5lc0x1bWE7CjE0NDc0OiAgZG91YmxlIEVmZmVjdGl2ZURFVExCTGluZXNDaHJvbWE7CjE0
NDc0OiAgZG91YmxlIFByb2plY3RlZERDRkNMS0RlZXBTbGVlcFs3ICsgMV1bMl07CjE0NDc0OiAg
ZG91YmxlIFBERUFuZE1ldGFQVEVCeXRlc1BlckZyYW1lWTsKMTQ0NzQ6ICBkb3VibGUgUERFQW5k
TWV0YVBURUJ5dGVzUGVyRnJhbWVDOwoxNDQ3NDogIHVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZXNZ
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZXNDOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBEUFRFQnl0ZXNQZXJSb3dDOwoxNDQ3NDogIHVuc2lnbmVkIGludCBEUFRFQnl0ZXNQZXJSb3dZ
OwoxNDQ3NDogIGRvdWJsZSBFeHRyYUxhdGVuY3k7CjE0NDc0OiAgZG91YmxlIFRpbWVDYWxjOwox
NDQ3NDogIGRvdWJsZSBUV2FpdDsKMTQ0NzQ6ICBkb3VibGUgTWF4aW11bVJlYWRCYW5kd2lkdGhX
aXRoUHJlZmV0Y2g7CjE0NDc0OiAgZG91YmxlIE1heGltdW1SZWFkQmFuZHdpZHRoV2l0aG91dFBy
ZWZldGNoOwoxNDQ3NDogIGRvdWJsZSB0b3RhbF9kY25fcmVhZF9id193aXRoX2ZsaXA7CjE0NDc0
OiAgZG91YmxlIHRvdGFsX2Rjbl9yZWFkX2J3X3dpdGhfZmxpcF9ub191cmdlbnRfYnVyc3Q7CjE0
NDc0OiAgZG91YmxlIEZyYWN0aW9uT2ZVcmdlbnRCYW5kd2lkdGg7CjE0NDc0OiAgZG91YmxlIEZy
YWN0aW9uT2ZVcmdlbnRCYW5kd2lkdGhJbW1lZGlhdGVGbGlwOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBkb3VibGUgSWRlYWxTRFBQb3J0QmFuZHdpZHRoUGVyU3RhdGVbNyArIDFdWzJdOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBOb09mRFBQWzcgKyAxXVsyXVs4XTsKMTQ0NzQ6ICBpbnQgTm9PZkRQ
UFRoaXNTdGF0ZVs4XTsKMTQ0NzQ6ICBlbnVtIG9kbV9jb21iaW5lX21vZGUgT0RNQ29tYmluZUVu
YWJsZVBlclN0YXRlWzcgKyAxXVs4XTsKMTQ0NzQ6ICBkb3VibGUgU3dhdGhXaWR0aFlUaGlzU3Rh
dGVbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0Q1BlclN0YXRlWzcgKyAxXVsy
XVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRZVGhpc1N0YXRlWzhdOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBTd2F0aEhlaWdodENUaGlzU3RhdGVbOF07CjE0NDc0OiAgZG91Ymxl
IFZSYXRpb1ByZVlbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBWUmF0aW9QcmVDWzcgKyAx
XVsyXVs4XTsKMTQ0NzQ6ICBkb3VibGUgUmVxdWlyZWRQcmVmZXRjaFBpeGVsRGF0YUJXTHVtYVs3
ICsgMV1bMl1bOF07CjE0NDc0OiAgZG91YmxlIFJlcXVpcmVkUHJlZmV0Y2hQaXhlbERhdGFCV0No
cm9tYVs3ICsgMV1bMl1bOF07CjE0NDc0OiAgZG91YmxlIFJlcXVpcmVkRFBQQ0xLWzcgKyAxXVsy
XVs4XTsKMTQ0NzQ6ICBkb3VibGUgUmVxdWlyZWREUFBDTEtUaGlzU3RhdGVbOF07CjE0NDc0OiAg
Ym9vbCBQVEVCdWZmZXJTaXplTm90RXhjZWVkZWRZWzcgKyAxXVsyXVs4XTsKMTQ0NzQ6ICBib29s
IFBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZENbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGJvb2wgQmFu
ZHdpZHRoV2l0aG91dFByZWZldGNoU3VwcG9ydGVkWzcgKyAxXVsyXTsKMTQ0NzQ6ICBib29sIFBy
ZWZldGNoU3VwcG9ydGVkWzcgKyAxXVsyXTsKMTQ0NzQ6ICBib29sIFZSYXRpb0luUHJlZmV0Y2hT
dXBwb3J0ZWRbNyArIDFdWzJdOwoxNDQ3NDogIGRvdWJsZSBSZXF1aXJlZERJU1BDTEtbNyArIDFd
WzJdOwoxNDQ3NDogIGJvb2wgRElTUENMS19EUFBDTEtfU3VwcG9ydFs3ICsgMV1bMl07CjE0NDc0
OiAgYm9vbCBUb3RhbEF2YWlsYWJsZVBpcGVzU3VwcG9ydFs3ICsgMV1bMl07CjE0NDc0OiAgdW5z
aWduZWQgaW50IFRvdGFsTnVtYmVyT2ZBY3RpdmVEUFBbNyArIDFdWzJdOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBUb3RhbE51bWJlck9mRENDQWN0aXZlRFBQWzcgKyAxXVsyXTsKMTQ0NzQ6ICBib29s
IE1vZGVTdXBwb3J0WzcgKyAxXVsyXTsKMTQ0NzQ6ICBkb3VibGUgUmV0dXJuQldQZXJTdGF0ZVs3
ICsgMV1bMl07CjE0NDc0OiAgYm9vbCBESU9TdXBwb3J0WzcgKyAxXTsKMTQ0NzQ6ICBib29sIE5v
dEVub3VnaERTQ1VuaXRzWzcgKyAxXTsKMTQ0NzQ6ICBib29sIERTQ0NMS1JlcXVpcmVkTW9yZVRo
YW5TdXBwb3J0ZWRbNyArIDFdOwoxNDQ3NDogIGJvb2wgRFRCQ0xLUmVxdWlyZWRNb3JlVGhhblN1
cHBvcnRlZFs3ICsgMV07CjE0NDc0OiAgZG91YmxlIFVyZ2VudFJvdW5kVHJpcEFuZE91dE9mT3Jk
ZXJMYXRlbmN5UGVyU3RhdGVbNyArIDFdOwoxNDQ3NDogIGJvb2wgUk9CU3VwcG9ydFs3ICsgMV1b
Ml07CjE0NDc0OiAgYm9vbCBQVEVCdWZmZXJTaXplTm90RXhjZWVkZWRbNyArIDFdWzJdOwoxNDQ3
NDogIGJvb2wgVG90YWxWZXJ0aWNhbEFjdGl2ZUJhbmR3aWR0aFN1cHBvcnRbNyArIDFdWzJdOwox
NDQ3NDogIGRvdWJsZSBNYXhUb3RhbFZlcnRpY2FsQWN0aXZlQXZhaWxhYmxlQmFuZHdpZHRoWzcg
KyAxXVsyXTsKMTQ0NzQ6ICBkb3VibGUgUHJlZmV0Y2hCV1s4XTsKMTQ0NzQ6ICBkb3VibGUgUERF
QW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBNZXRh
Um93Qnl0ZXNbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBEUFRFQnl0ZXNQZXJSb3dbNyAr
IDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBQcmVmZXRjaExpbmVzWVs3ICsgMV1bMl1bOF07CjE0
NDc0OiAgZG91YmxlIFByZWZldGNoTGluZXNDWzcgKyAxXVsyXVs4XTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgTWF4TnVtU3dZWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBNYXhOdW1Td0NbOF07CjE0
NDc0OiAgZG91YmxlIFByZWZpbGxZWzhdOwoxNDQ3NDogIGRvdWJsZSBQcmVmaWxsQ1s4XTsKMTQ0
NzQ6ICBkb3VibGUgTGluZVRpbWVzRm9yUHJlZmV0Y2hbOF07CjE0NDc0OiAgZG91YmxlIExpbmVz
Rm9yTWV0YVBURVs4XTsKMTQ0NzQ6ICBkb3VibGUgTGluZXNGb3JNZXRhQW5kRFBURVJvd1s4XTsK
MTQ0NzQ6ICBkb3VibGUgTWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBbOF07CjE0NDc0OiAgZG91Ymxl
IFN3YXRoV2lkdGhZU2luZ2xlRFBQWzhdOwoxNDQ3NDogIGRvdWJsZSBCeXRlUGVyUGl4ZWxJbkRF
VFlbOF07CjE0NDc0OiAgZG91YmxlIEJ5dGVQZXJQaXhlbEluREVUQ1s4XTsKMTQ0NzQ6ICBib29s
IFJlcXVpcmVzRFNDWzcgKyAxXVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTnVtYmVyT2ZEU0NT
bGljZVs3ICsgMV1bOF07CjE0NDc0OiAgZG91YmxlIFJlcXVpcmVzRkVDWzcgKyAxXVs4XTsKMTQ0
NzQ6ICBkb3VibGUgT3V0cHV0QnBwUGVyU3RhdGVbNyArIDFdWzhdOwoxNDQ3NDogIGRvdWJsZSBE
U0NEZWxheVBlclN0YXRlWzcgKyAxXVs4XTsKMTQ0NzQ6ICBib29sIFZpZXdwb3J0U2l6ZVN1cHBv
cnRbNyArIDFdWzJdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBSZWFkMjU2QmxvY2tIZWlnaHRZWzhd
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBSZWFkMjU2QmxvY2tXaWR0aFlbOF07CjE0NDc0OiAgdW5z
aWduZWQgaW50IFJlYWQyNTZCbG9ja0hlaWdodENbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFJl
YWQyNTZCbG9ja1dpZHRoQ1s4XTsKMTQ0NzQ6ICBkb3VibGUgTWF4U3dhdGhIZWlnaHRZWzhdOwox
NDQ3NDogIGRvdWJsZSBNYXhTd2F0aEhlaWdodENbOF07CjE0NDc0OiAgZG91YmxlIE1pblN3YXRo
SGVpZ2h0WVs4XTsKMTQ0NzQ6ICBkb3VibGUgTWluU3dhdGhIZWlnaHRDWzhdOwoxNDQ3NDogIGRv
dWJsZSBSZWFkQmFuZHdpZHRoTHVtYVs4XTsKMTQ0NzQ6ICBkb3VibGUgUmVhZEJhbmR3aWR0aENo
cm9tYVs4XTsKMTQ0NzQ6ICBkb3VibGUgUmVhZEJhbmR3aWR0aFs4XTsKMTQ0NzQ6ICBkb3VibGUg
V3JpdGVCYW5kd2lkdGhbOF07CjE0NDc0OiAgZG91YmxlIFBTQ0xfRkFDVE9SWzhdOwoxNDQ3NDog
IGRvdWJsZSBQU0NMX0ZBQ1RPUl9DSFJPTUFbOF07CjE0NDc0OiAgZG91YmxlIE1heGltdW1WU3Rh
cnR1cFs3ICsgMV1bMl1bOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IE1hY3JvVGlsZVdpZHRoWVs4
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTWFjcm9UaWxlV2lkdGhDWzhdOwoxNDQ3NDogIGRvdWJs
ZSBBbGlnbmVkRENDTWV0YVBpdGNoWzhdOwoxNDQ3NDogIGRvdWJsZSBBbGlnbmVkWVBpdGNoWzhd
OwoxNDQ3NDogIGRvdWJsZSBBbGlnbmVkQ1BpdGNoWzhdOwoxNDQ3NDogIGRvdWJsZSBNYXhpbXVt
U3dhdGhXaWR0aFs4XTsKMTQ0NzQ6ICBkb3VibGUgY3Vyc29yX2J3WzhdOwoxNDQ3NDogIGRvdWJs
ZSBjdXJzb3JfYndfcHJlWzhdOwoxNDQ3NDogIGRvdWJsZSBUbm9fYndbOF07CjE0NDc0OiAgZG91
YmxlIHByZWZldGNoX3Ztcm93X2J3WzhdOwoxNDQ3NDogIGRvdWJsZSBEZXN0aW5hdGlvbkxpbmVz
VG9SZXF1ZXN0Vk1JbkltbWVkaWF0ZUZsaXBbOF07CjE0NDc0OiAgZG91YmxlIERlc3RpbmF0aW9u
TGluZXNUb1JlcXVlc3RSb3dJbkltbWVkaWF0ZUZsaXBbOF07CjE0NDc0OiAgZG91YmxlIGZpbmFs
X2ZsaXBfYndbOF07CjE0NDc0OiAgYm9vbCBJbW1lZGlhdGVGbGlwU3VwcG9ydGVkRm9yU3RhdGVb
NyArIDFdWzJdOwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tEZWxheVs3ICsgMV1bOF07CjE0NDc0
OiAgdW5zaWduZWQgaW50IHZtX2dyb3VwX2J5dGVzWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBk
cHRlX2dyb3VwX2J5dGVzWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRb
OF07CjE0NDc0OiAgdW5zaWduZWQgaW50IG1ldGFfcmVxX2hlaWdodFs4XTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgbWV0YV9yZXFfd2lkdGhbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IG1ldGFfcm93
X2hlaWdodFs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9yb3dfd2lkdGhbOF07CjE0NDc0
OiAgdW5zaWduZWQgaW50IGRwdGVfcm93X2hlaWdodF9jaHJvbWFbOF07CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IG1ldGFfcmVxX2hlaWdodF9jaHJvbWFbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IG1l
dGFfcmVxX3dpZHRoX2Nocm9tYVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVp
Z2h0X2Nocm9tYVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9yb3dfd2lkdGhfY2hyb21h
WzhdOwoxNDQ3NDogIGJvb2wgSW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclBpcGVbOF07CjE0NDc0
OiAgZG91YmxlIG1ldGFfcm93X2J3WzhdOwoxNDQ3NDogIGRvdWJsZSBkcHRlX3Jvd19id1s4XTsK
MTQ0NzQ6ICBkb3VibGUgRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lTHVtYVs4XTsKMTQ0NzQ6
ICBkb3VibGUgRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hWzhdOwoxNDQ3NDogIGRv
dWJsZSBEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVMdW1hWzhdOwoxNDQ3NDogIGRvdWJs
ZSBEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVDaHJvbWFbOF07CjE0NDc0OiAgZW51bSBj
bG9ja19jaGFuZ2Vfc3VwcG9ydCBEUkFNQ2xvY2tDaGFuZ2VTdXBwb3J0WzcgKyAxXVsyXTsKMTQ0
NzQ6ICBkb3VibGUgVXJnZW50QnVyc3RGYWN0b3JDdXJzb3JbOF07CjE0NDc0OiAgZG91YmxlIFVy
Z2VudEJ1cnN0RmFjdG9yQ3Vyc29yUHJlWzhdOwoxNDQ3NDogIGRvdWJsZSBVcmdlbnRCdXJzdEZh
Y3Rvckx1bWFbOF07CjE0NDc0OiAgZG91YmxlIFVyZ2VudEJ1cnN0RmFjdG9yTHVtYVByZVs4XTsK
MTQ0NzQ6ICBkb3VibGUgVXJnZW50QnVyc3RGYWN0b3JDaHJvbWFbOF07CjE0NDc0OiAgZG91Ymxl
IFVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hUHJlWzhdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBi
b29sIE1QQ0NvbWJpbmVbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBTd2F0aFdpZHRoQ1Np
bmdsZURQUFs4XTsKMTQ0NzQ6ICBkb3VibGUgTWF4aW11bVN3YXRoV2lkdGhJbkxpbmVCdWZmZXJM
dW1hOwoxNDQ3NDogIGRvdWJsZSBNYXhpbXVtU3dhdGhXaWR0aEluTGluZUJ1ZmZlckNocm9tYTsK
MTQ0NzQ6ICBkb3VibGUgTWF4aW11bVN3YXRoV2lkdGhMdW1hWzhdOwoxNDQ3NDogIGRvdWJsZSBN
YXhpbXVtU3dhdGhXaWR0aENocm9tYVs4XTsKMTQ0NzQ6ICBlbnVtIG9kbV9jb21iaW5lX21vZGUg
b2RtX2NvbWJpbmVfZHVtbXlbOF07CjE0NDc0OiAgZG91YmxlIGR1bW15MVs4XTsKMTQ0NzQ6ICBk
b3VibGUgZHVtbXkyWzhdOwoxNDQ3NDogIGRvdWJsZSBkdW1teTNbOF07CjE0NDc0OiAgZG91Ymxl
IGR1bW15NFs4XTsKMTQ0NzQ6ICBkb3VibGUgZHVtbXk1OwoxNDQ3NDogIGRvdWJsZSBkdW1teTY7
CjE0NDc0OiAgZG91YmxlIGR1bW15N1s4XTsKMTQ0NzQ6ICBkb3VibGUgZHVtbXk4WzhdOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIxbXNbOF07CjE0NDc0OiAgZG91YmxlIGR1bW15
aW50ZWdlcjJtc1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyM1s4XTsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyNFs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
ZHVtbXlpbnRlZ2VyNTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyNjsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyNzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlp
bnRlZ2VyODsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyOTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgZHVtbXlpbnRlZ2VyMTA7CjE0NDc0OiAgdW5zaWduZWQgaW50IGR1bW15aW50ZWdl
cjExOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIxMjsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgZHVtbXlpbnRlZ2VyYXJyMVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRl
Z2VyYXJyMls4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyYXJyM1s4XTsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyYXJyNFs4XTsKMTQ0NzQ6ICBib29sIGR1bW15
c2luZ2xlc3RyaW5nOwoxNDQ3NDogIGJvb2wgU2luZ2xlRFBQVmlld3BvcnRTaXplU3VwcG9ydFBl
clBsYW5lWzhdOwoxNDQ3NDogIGRvdWJsZSBQbGFuZVJlcXVpcmVkRElTUENMS1dpdGhPRE1Db21i
aW5lMlRvMTsKMTQ0NzQ6ICBkb3VibGUgUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRoT0RNQ29tYmlu
ZTRUbzE7CjE0NDc0OiAgdW5zaWduZWQgaW50IFRvdGFsTnVtYmVyT2ZTaW5nbGVEUFBQbGFuZXNb
NyArIDFdWzJdOwoxNDQ3NDogIGJvb2wgTGlua0RTQ0VuYWJsZTsKMTQ0NzQ6ICBib29sIE9ETUNv
bWJpbmU0VG8xU3VwcG9ydENoZWNrT0tbNyArIDFdOwoxNDQ3NDogIGVudW0gb2RtX2NvbWJpbmVf
bW9kZSBPRE1Db21iaW5lRW5hYmxlVGhpc1N0YXRlWzhdOwoxNDQ3NDogIGRvdWJsZSBTd2F0aFdp
ZHRoQ1RoaXNTdGF0ZVs4XTsKMTQ0NzQ6ICBib29sIFZpZXdwb3J0U2l6ZVN1cHBvcnRQZXJQbGFu
ZVs4XTsKMTQ0NzQ6ICBkb3VibGUgQWxpZ25lZERDQ01ldGFQaXRjaFlbOF07CjE0NDc0OiAgZG91
YmxlIEFsaWduZWREQ0NNZXRhUGl0Y2hDWzhdOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50
IE5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmc7CjE0NDc0OiAgdW5zaWduZWQgaW50IE5vdEVu
b3VnaFVyZ2VudExhdGVuY3lIaWRpbmdQcmU7CjE0NDc0OiAgaW50IFBURUJ1ZmZlclNpemVJblJl
cXVlc3RzRm9yTHVtYTsKMTQ0NzQ6ICBpbnQgUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNGb3JDaHJv
bWE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCBkcHRlX2dyb3VwX2J5dGVzX2Nocm9tYTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdm1fZ3JvdXBfYnl0ZXNfY2hyb21hOwoxNDQ3NDogIGRvdWJs
ZSBkc3RfeF9hZnRlcl9zY2FsZXI7CjE0NDc0OiAgZG91YmxlIGRzdF95X2FmdGVyX3NjYWxlcjsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgVlN0YXJ0dXBSZXF1aXJlZFdoZW5Ob3RFbm91Z2hUaW1lRm9y
RHluYW1pY01ldGFkYXRhOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBkb3VibGUgUHJlZmV0Y2hC
YW5kd2lkdGhbOF07CjE0NDc0OiAgZG91YmxlIFZJbml0UHJlRmlsbFlbOF07CjE0NDc0OiAgZG91
YmxlIFZJbml0UHJlRmlsbENbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IE1heE51bVN3YXRoWVs4
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTWF4TnVtU3dhdGhDWzhdOwoxNDQ3NDogIHVuc2lnbmVk
IGludCBWU3RhcnR1cFs4XTsKMTQ0NzQ6ICBkb3VibGUgRFNUWUFmdGVyU2NhbGVyWzhdOwoxNDQ3
NDogIGRvdWJsZSBEU1RYQWZ0ZXJTY2FsZXJbOF07CjE0NDc0OiAgYm9vbCBBbGxvd0RSQU1DbG9j
a0NoYW5nZUR1cmluZ1ZCbGFua1s4XTsKMTQ0NzQ6ICBib29sIEFsbG93RFJBTVNlbGZSZWZyZXNo
RHVyaW5nVkJsYW5rWzhdOwoxNDQ3NDogIGRvdWJsZSBWUmF0aW9QcmVmZXRjaFlbOF07CjE0NDc0
OiAgZG91YmxlIFZSYXRpb1ByZWZldGNoQ1s4XTsKMTQ0NzQ6ICBkb3VibGUgRGVzdGluYXRpb25M
aW5lc0ZvclByZWZldGNoWzhdOwoxNDQ3NDogIGRvdWJsZSBEZXN0aW5hdGlvbkxpbmVzVG9SZXF1
ZXN0Vk1JblZCbGFua1s4XTsKMTQ0NzQ6ICBkb3VibGUgRGVzdGluYXRpb25MaW5lc1RvUmVxdWVz
dFJvd0luVkJsYW5rWzhdOwoxNDQ3NDogIGRvdWJsZSBNaW5UVFVWQmxhbmtbOF07CjE0NDc0OiAg
ZG91YmxlIEJ5dGVQZXJQaXhlbERFVFlbOF07CjE0NDc0OiAgZG91YmxlIEJ5dGVQZXJQaXhlbERF
VENbOF07CjE0NDc0OiAgZG91YmxlIFN3YXRoV2lkdGhZWzhdOwoxNDQ3NDogIGRvdWJsZSBTd2F0
aFdpZHRoU2luZ2xlRFBQWVs4XTsKMTQ0NzQ6ICBkb3VibGUgQ3Vyc29yUmVxdWVzdERlbGl2ZXJ5
VGltZVs4XTsKMTQ0NzQ6ICBkb3VibGUgQ3Vyc29yUmVxdWVzdERlbGl2ZXJ5VGltZVByZWZldGNo
WzhdOwoxNDQ3NDogIGRvdWJsZSBSZWFkQmFuZHdpZHRoUGxhbmVMdW1hWzhdOwoxNDQ3NDogIGRv
dWJsZSBSZWFkQmFuZHdpZHRoUGxhbmVDaHJvbWFbOF07CjE0NDc0OiAgZG91YmxlIERpc3BsYXlQ
aXBlTGluZURlbGl2ZXJ5VGltZUx1bWFQcmVmZXRjaFs4XTsKMTQ0NzQ6ICBkb3VibGUgRGlzcGxh
eVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hUHJlZmV0Y2hbOF07CjE0NDc0OiAgZG91YmxlIERp
c3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUx1bWFQcmVmZXRjaFs4XTsKMTQ0NzQ6ICBkb3Vi
bGUgRGlzcGxheVBpcGVSZXF1ZXN0RGVsaXZlcnlUaW1lQ2hyb21hUHJlZmV0Y2hbOF07CjE0NDc0
OiAgZG91YmxlIFBpeGVsUFRFQnl0ZXNQZXJSb3dbOF07CjE0NDc0OiAgZG91YmxlIFBERUFuZE1l
dGFQVEVCeXRlc0ZyYW1lWzhdOwoxNDQ3NDogIGRvdWJsZSBNZXRhUm93Qnl0ZVs4XTsKMTQ0NzQ6
ICBkb3VibGUgUHJlZmV0Y2hTb3VyY2VMaW5lc1lbOF07CjE0NDc0OiAgZG91YmxlIFJlcXVpcmVk
UHJlZmV0Y2hQaXhEYXRhQldMdW1hWzhdOwoxNDQ3NDogIGRvdWJsZSBSZXF1aXJlZFByZWZldGNo
UGl4RGF0YUJXQ2hyb21hWzhdOwoxNDQ3NDogIGRvdWJsZSBQcmVmZXRjaFNvdXJjZUxpbmVzQ1s4
XTsKMTQ0NzQ6ICBkb3VibGUgUFNDTF9USFJPVUdIUFVUX0xVTUFbOF07CjE0NDc0OiAgZG91Ymxl
IFBTQ0xfVEhST1VHSFBVVF9DSFJPTUFbOF07CjE0NDc0OiAgZG91YmxlIERTQ0NMS19jYWxjdWxh
dGVkWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBEU0NEZWxheVs4XTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgTWF4VlN0YXJ0dXBMaW5lc1s4XTsKMTQ0NzQ6ICBkb3VibGUgRFBQQ0xLVXNpbmdTaW5n
bGVEUFBbOF07CjE0NDc0OiAgZG91YmxlIERQUENMS1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
RENDWU1heFVuY29tcHJlc3NlZEJsb2NrWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBEQ0NZTWF4
Q29tcHJlc3NlZEJsb2NrWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBEQ0NZSW5kZXBlbmRlbnQ2
NEJ5dGVCbG9ja1s4XTsKMTQ0NzQ6ICBkb3VibGUgTWF4aW11bURDQ0NvbXByZXNzaW9uWVN1cmZh
Y2VbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IEJsb2NrSGVpZ2h0MjU2Qnl0ZXNZWzhdOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBCbG9ja0hlaWdodDI1NkJ5dGVzQ1s4XTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgQmxvY2tXaWR0aDI1NkJ5dGVzWVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgQmxvY2tX
aWR0aDI1NkJ5dGVzQ1s4XTsKMTQ0NzQ6ICBkb3VibGUgWEZDU2xhdmVWVXBkYXRlT2Zmc2V0Wzhd
OwoxNDQ3NDogIGRvdWJsZSBYRkNTbGF2ZVZ1cGRhdGVXaWR0aFs4XTsKMTQ0NzQ6ICBkb3VibGUg
WEZDU2xhdmVWUmVhZHlPZmZzZXRbOF07CjE0NDc0OiAgZG91YmxlIFhGQ1RyYW5zZmVyRGVsYXlb
OF07CjE0NDc0OiAgZG91YmxlIFhGQ1ByZWNoYXJnZURlbGF5WzhdOwoxNDQ3NDogIGRvdWJsZSBY
RkNSZW1vdGVTdXJmYWNlRmxpcExhdGVuY3lbOF07CjE0NDc0OiAgZG91YmxlIFhGQ1ByZWZldGNo
TWFyZ2luWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX3Jvd193aWR0aF9sdW1hX3ViWzhd
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX3Jvd193aWR0aF9jaHJvbWFfdWJbOF07CjE0NDc0
OiAgZG91YmxlIEZ1bGxERVRCdWZmZXJpbmdUaW1lWVs4XTsKMTQ0NzQ6ICBkb3VibGUgRnVsbERF
VEJ1ZmZlcmluZ1RpbWVDWzhdOwoxNDQ3NDogIGRvdWJsZSBEU1RfWV9QRVJfUFRFX1JPV19OT01f
TFs4XTsKMTQ0NzQ6ICBkb3VibGUgRFNUX1lfUEVSX1BURV9ST1dfTk9NX0NbOF07CjE0NDc0OiAg
ZG91YmxlIERTVF9ZX1BFUl9NRVRBX1JPV19OT01fTFs4XTsKMTQ0NzQ6ICBkb3VibGUgVGltZVBl
ck1ldGFDaHVua05vbWluYWxbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJNZXRhQ2h1bmtWQmxh
bmtbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJNZXRhQ2h1bmtGbGlwWzhdOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBzd2F0aF93aWR0aF9sdW1hX3ViWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBz
d2F0aF93aWR0aF9jaHJvbWFfdWJbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFBpeGVsUFRFUmVx
V2lkdGhZWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBQaXhlbFBURVJlcUhlaWdodFlbOF07CjE0
NDc0OiAgdW5zaWduZWQgaW50IFBURVJlcXVlc3RTaXplWVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgUGl4ZWxQVEVSZXFXaWR0aENbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFBpeGVsUFRFUmVx
SGVpZ2h0Q1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgUFRFUmVxdWVzdFNpemVDWzhdOwoxNDQ3
NDogIGRvdWJsZSB0aW1lX3Blcl9wdGVfZ3JvdXBfbm9tX2x1bWFbOF07CjE0NDc0OiAgZG91Ymxl
IHRpbWVfcGVyX3B0ZV9ncm91cF9ub21fY2hyb21hWzhdOwoxNDQ3NDogIGRvdWJsZSB0aW1lX3Bl
cl9wdGVfZ3JvdXBfdmJsYW5rX2x1bWFbOF07CjE0NDc0OiAgZG91YmxlIHRpbWVfcGVyX3B0ZV9n
cm91cF92YmxhbmtfY2hyb21hWzhdOwoxNDQ3NDogIGRvdWJsZSB0aW1lX3Blcl9wdGVfZ3JvdXBf
ZmxpcF9sdW1hWzhdOwoxNDQ3NDogIGRvdWJsZSB0aW1lX3Blcl9wdGVfZ3JvdXBfZmxpcF9jaHJv
bWFbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJWTUdyb3VwVkJsYW5rWzhdOwoxNDQ3NDogIGRv
dWJsZSBUaW1lUGVyVk1Hcm91cEZsaXBbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJWTVJlcXVl
c3RWQmxhbmtbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJWTVJlcXVlc3RGbGlwWzhdOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfbFs4XTsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xbOF07CjE0NDc0OiAgdW5z
aWduZWQgaW50IGRwZGUwX2J5dGVzX3Blcl9mcmFtZV91Yl9jWzhdOwoxNDQ3NDogIHVuc2lnbmVk
IGludCBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfY1s4XTsKMTQ0NzQ6ICBkb3VibGUgTGlu
ZXNUb0ZpbmlzaFN3YXRoVHJhbnNmZXJTdHV0dGVyQ3JpdGljYWxQbGFuZTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgQnl0ZVBlclBpeGVsWUNyaXRpY2FsUGxhbmU7CjE0NDc0OiAgZG91YmxlIFN3YXRo
V2lkdGhZQ3JpdGljYWxQbGFuZTsKMTQ0NzQ6ICBkb3VibGUgTGluZXNJbkRFVFlbOF07CjE0NDc0
OiAgZG91YmxlIExpbmVzSW5ERVRZUm91bmRlZERvd25Ub1N3YXRoWzhdOwoxNDQ3NDogCjE0NDc0
OiAgZG91YmxlIFN3YXRoV2lkdGhTaW5nbGVEUFBDWzhdOwoxNDQ3NDogIGRvdWJsZSBTd2F0aFdp
ZHRoQ1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgQnl0ZVBlclBpeGVsWVs4XTsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgQnl0ZVBlclBpeGVsQ1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlp
bnRlZ2VyMTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMjsKMTQ0NzQ6ICBkb3Vi
bGUgRmluYWxEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5OwoxNDQ3NDogIGRvdWJsZSBUZG1kbF92bVs4
XTsKMTQ0NzQ6ICBkb3VibGUgVGRtZGxbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFRoaXNWU3Rh
cnR1cDsKMTQ0NzQ6ICBib29sIFdyaXRlYmFja0FsbG93RFJBTUNsb2NrQ2hhbmdlRW5kUG9zaXRp
b25bOF07CjE0NDc0OiAgZG91YmxlIERTVF9ZX1BFUl9NRVRBX1JPV19OT01fQ1s4XTsKMTQ0NzQ6
ICBkb3VibGUgVGltZVBlckNocm9tYU1ldGFDaHVua05vbWluYWxbOF07CjE0NDc0OiAgZG91Ymxl
IFRpbWVQZXJDaHJvbWFNZXRhQ2h1bmtWQmxhbmtbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJD
aHJvbWFNZXRhQ2h1bmtGbGlwWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBEQ0NDTWF4VW5jb21w
cmVzc2VkQmxvY2tbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IERDQ0NNYXhDb21wcmVzc2VkQmxv
Y2tbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IERDQ0NJbmRlcGVuZGVudDY0Qnl0ZUJsb2NrWzhd
OwoxNDQ3NDogIGRvdWJsZSBWU3RhcnR1cE1hcmdpbjsKMTQ0NzQ6ICBib29sIE5vdEVub3VnaFRp
bWVGb3JEeW5hbWljTWV0YWRhdGE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBNYXhpbXVtTWF4VlN0YXJ0dXBMaW5lczsKMTQ0NzQ6ICBkb3VibGUgRmFicmljQW5kRFJBTUJh
bmR3aWR0aDsKMTQ0NzQ6ICBkb3VibGUgTGluZXNJbkRFVEx1bWE7CjE0NDc0OiAgZG91YmxlIExp
bmVzSW5ERVRDaHJvbWE7CjE0NDc0OiAgdW5zaWduZWQgaW50IEltbWVkaWF0ZUZsaXBCeXRlc1s4
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTGluZXNJbkRFVENbOF07CjE0NDc0OiAgdW5zaWduZWQg
aW50IExpbmVzSW5ERVRDUm91bmRlZERvd25Ub1N3YXRoWzhdOwoxNDQ3NDogIGRvdWJsZSBVcmdl
bnRMYXRlbmN5U3VwcG9ydFVzUGVyU3RhdGVbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBV
cmdlbnRMYXRlbmN5U3VwcG9ydFVzWzhdOwoxNDQ3NDogIGRvdWJsZSBGYWJyaWNBbmREUkFNQmFu
ZHdpZHRoUGVyU3RhdGVbNyArIDFdOwoxNDQ3NDogIGJvb2wgVXJnZW50TGF0ZW5jeVN1cHBvcnRb
NyArIDFdWzJdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBTd2F0aFdpZHRoWVBlclN0YXRlWzcgKyAx
XVsyXVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRZUGVyU3RhdGVbNyArIDFd
WzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBxdWFsX3Jvd19id1s4XTsKMTQ0NzQ6ICBkb3VibGUgcHJl
ZmV0Y2hfcm93X2J3WzhdOwoxNDQ3NDogIGRvdWJsZSBwcmVmZXRjaF92bV9id1s4XTsKMTQ0NzQ6
IAoxNDQ3NDogIGRvdWJsZSBQVEVHcm91cFNpemU7CjE0NDc0OiAgdW5zaWduZWQgaW50IFBERVBy
b2Nlc3NpbmdCdWZJbjY0S0JSZXFzOwoxNDQ3NDogCjE0NDc0OiAgZG91YmxlIE1heFRvdGFsVkFj
dGl2ZVJEQmFuZHdpZHRoOwoxNDQ3NDogIGJvb2wgRG9VcmdlbnRMYXRlbmN5QWRqdXN0bWVudDsK
MTQ0NzQ6ICBkb3VibGUgVXJnZW50TGF0ZW5jeUFkanVzdG1lbnRGYWJyaWNDbG9ja0NvbXBvbmVu
dDsKMTQ0NzQ6ICBkb3VibGUgVXJnZW50TGF0ZW5jeUFkanVzdG1lbnRGYWJyaWNDbG9ja1JlZmVy
ZW5jZTsKMTQ0NzQ6ICBkb3VibGUgTWluVXJnZW50TGF0ZW5jeVN1cHBvcnRVczsKMTQ0NzQ6ICBk
b3VibGUgTWluRnVsbERFVEJ1ZmZlcmluZ1RpbWU7CjE0NDc0OiAgZG91YmxlIEF2ZXJhZ2VSZWFk
QmFuZHdpZHRoR0J5dGVQZXJTZWNvbmQ7CjE0NDc0OiAgYm9vbCBGaXJzdE1haW5QbGFuZTsKMTQ0
NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBWaWV3cG9ydFdpZHRoQ2hyb21hWzhdOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBWaWV3cG9ydEhlaWdodENocm9tYVs4XTsKMTQ0NzQ6ICBkb3VibGUgSFJh
dGlvQ2hyb21hWzhdOwoxNDQ3NDogIGRvdWJsZSBWUmF0aW9DaHJvbWFbOF07CjE0NDc0OiAgaW50
IFdyaXRlYmFja1NvdXJjZVdpZHRoWzhdOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBNb2RlSXNTdXBw
b3J0ZWQ7CjE0NDc0OiAgYm9vbCBPRE1Db21iaW5lNFRvMVN1cHBvcnRlZDsKMTQ0NzQ6IAoxNDQ3
NDogIHVuc2lnbmVkIGludCBTdXJmYWNlV2lkdGhZWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBT
dXJmYWNlV2lkdGhDWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBTdXJmYWNlSGVpZ2h0WVs4XTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgU3VyZmFjZUhlaWdodENbOF07CjE0NDc0OiAgdW5zaWduZWQg
aW50IFdyaXRlYmFja0hUYXBzWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBXcml0ZWJhY2tWVGFw
c1s4XTsKMTQ0NzQ6ICBib29sIERTQ0VuYWJsZVs4XTsKMTQ0NzQ6IAoxNDQ3NDogIGRvdWJsZSBE
UkFNQ2xvY2tDaGFuZ2VMYXRlbmN5T3ZlcnJpZGU7CjE0NDc0OiAKMTQ0NzQ6ICBkb3VibGUgR1BV
Vk1NaW5QYWdlU2l6ZTsKMTQ0NzQ6ICBkb3VibGUgSG9zdFZNTWluUGFnZVNpemU7CjE0NDc0OiAK
MTQ0NzQ6ICBib29sIE1QQ0NvbWJpbmVFbmFibGVbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IEhv
c3RWTU1heE5vbkNhY2hlZFBhZ2VUYWJsZUxldmVsczsKMTQ0NzQ6ICBib29sIER5bmFtaWNNZXRh
ZGF0YVZNRW5hYmxlZDsKMTQ0NzQ6ICBkb3VibGUgV3JpdGViYWNrSW50ZXJmYWNlQnVmZmVyU2l6
ZTsKMTQ0NzQ6ICBkb3VibGUgV3JpdGViYWNrTGluZUJ1ZmZlclNpemU7CjE0NDc0OiAKMTQ0NzQ6
ICBkb3VibGUgRENDUmF0ZUx1bWFbOF07CjE0NDc0OiAgZG91YmxlIERDQ1JhdGVDaHJvbWFbOF07
CjE0NDc0OiAKMTQ0NzQ6ICBkb3VibGUgUEhZQ0xLRDE4UGVyU3RhdGVbNyArIDFdOwoxNDQ3NDog
IGludCBNaW5Wb2x0YWdlTGV2ZWw7CjE0NDc0OiAgaW50IE1heFZvbHRhZ2VMZXZlbDsKMTQ0NzQ6
IAoxNDQ3NDogIGJvb2wgV3JpdGViYWNrU3VwcG9ydEludGVybGVhdmVBbmRVc2luZ1dob2xlQnVm
ZmVyRm9yQVNpbmdsZVN0cmVhbTsKMTQ0NzQ6ICBib29sIE51bWJlck9mSERNSUZSTFN1cHBvcnQ7
CjE0NDc0OiAgdW5zaWduZWQgaW50IE1heE51bUhETUlGUkxPdXRwdXRzOwoxNDQ3NDogIGludCBB
dWRpb1NhbXBsZVJhdGVbOF07CjE0NDc0OiAgaW50IEF1ZGlvU2FtcGxlTGF5b3V0WzhdOwoxNDQ3
NDogCjE0NDc0OiAgaW50IFBlcmNlbnRNYXJnaW5PdmVyTWluaW11bVJlcXVpcmVkRENGQ0xLOwox
NDQ3NDogIGJvb2wgRHluYW1pY01ldGFkYXRhU3VwcG9ydGVkWzcgKyAxXVsyXTsKMTQ0NzQ6ICBl
bnVtIGltbWVkaWF0ZV9mbGlwX3JlcXVpcmVtZW50IEltbWVkaWF0ZUZsaXBSZXF1aXJlbWVudDsK
MTQ0NzQ6ICBkb3VibGUgREVUQnVmZmVyU2l6ZVlUaGlzU3RhdGVbOF07CjE0NDc0OiAgZG91Ymxl
IERFVEJ1ZmZlclNpemVDVGhpc1N0YXRlWzhdOwoxNDQ3NDogIGJvb2wgTm9VcmdlbnRMYXRlbmN5
SGlkaW5nWzhdOwoxNDQ3NDogIGJvb2wgTm9VcmdlbnRMYXRlbmN5SGlkaW5nUHJlWzhdOwoxNDQ3
NDogIGludCBzd2F0aF93aWR0aF9sdW1hX3ViX3RoaXNfc3RhdGVbOF07CjE0NDc0OiAgaW50IHN3
YXRoX3dpZHRoX2Nocm9tYV91Yl90aGlzX3N0YXRlWzhdOwoxNDQ3NDogIGRvdWJsZSBVcmdMYXRl
bmN5WzcgKyAxXTsKMTQ0NzQ6ICBkb3VibGUgVkFjdGl2ZUN1cnNvckJhbmR3aWR0aFs3ICsgMV1b
Ml1bOF07CjE0NDc0OiAgZG91YmxlIFZBY3RpdmVQaXhlbEJhbmR3aWR0aFs3ICsgMV1bMl1bOF07
CjE0NDc0OiAgYm9vbCBOb1RpbWVGb3JQcmVmZXRjaFs3ICsgMV1bMl1bOF07CjE0NDc0OiAgYm9v
bCBOb1RpbWVGb3JEeW5hbWljTWV0YWRhdGFbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBk
cHRlX3Jvd19iYW5kd2lkdGhbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBtZXRhX3Jvd19i
YW5kd2lkdGhbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBERVRCdWZmZXJTaXplWUFsbFN0
YXRlc1s3ICsgMV1bMl1bOF07CjE0NDc0OiAgZG91YmxlIERFVEJ1ZmZlclNpemVDQWxsU3RhdGVz
WzcgKyAxXVsyXVs4XTsKMTQ0NzQ6ICBpbnQgc3dhdGhfd2lkdGhfbHVtYV91Yl9hbGxfc3RhdGVz
WzcgKyAxXVsyXVs4XTsKMTQ0NzQ6ICBpbnQgc3dhdGhfd2lkdGhfY2hyb21hX3ViX2FsbF9zdGF0
ZXNbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGJvb2wgTm90VXJnZW50TGF0ZW5jeUhpZGluZ1s3ICsg
MV1bMl07CjE0NDc0OiAgdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WUFsbFN0YXRlc1s3ICsgMV1b
Ml1bOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0Q0FsbFN0YXRlc1s3ICsgMV1b
Ml1bOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFN3YXRoV2lkdGhZQWxsU3RhdGVzWzcgKyAxXVsy
XVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aENBbGxTdGF0ZXNbNyArIDFdWzJd
WzhdOwoxNDQ3NDogIGRvdWJsZSBUb3RhbERQVEVSb3dCYW5kd2lkdGhbNyArIDFdWzJdOwoxNDQ3
NDogIGRvdWJsZSBUb3RhbE1ldGFSb3dCYW5kd2lkdGhbNyArIDFdWzJdOwoxNDQ3NDogIGRvdWJs
ZSBUb3RhbFZBY3RpdmVDdXJzb3JCYW5kd2lkdGhbNyArIDFdWzJdOwoxNDQ3NDogIGRvdWJsZSBU
b3RhbFZBY3RpdmVQaXhlbEJhbmR3aWR0aFs3ICsgMV1bMl07CjE0NDc0OiAgYm9vbCBVc2VNaW5p
bXVtUmVxdWlyZWREQ0ZDTEs7CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja0RlbGF5VGltZVs4XTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgRENDWUluZGVwZW5kZW50QmxvY2tbOF07CjE0NDc0OiAgdW5z
aWduZWQgaW50IERDQ0NJbmRlcGVuZGVudEJsb2NrWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBk
dW1teWludGVnZXIxNTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMTY7CjE0NDc0
OiAgdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcjE3OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkdW1t
eWludGVnZXIxODsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMTk7CjE0NDc0OiAg
dW5zaWduZWQgaW50IGR1bW15aW50ZWdlcjIwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkdW1teWlu
dGVnZXIyMTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMjI7CjE0NDc0OiAgdW5z
aWduZWQgaW50IGR1bW15aW50ZWdlcjIzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkdW1teWludGVn
ZXIyNDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMjU7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGR1bW15aW50ZWdlcjI2OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIy
NzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMjg7CjE0NDc0OiAgdW5zaWduZWQg
aW50IGR1bW15aW50ZWdlcjI5OwoxNDQ3NDogIGJvb2wgZHVtbXlzdHJpbmdbOF07CjE0NDc0OiAg
ZG91YmxlIEJQUDsKMTQ0NzQ6ICBlbnVtIG9kbV9jb21iaW5lX3BvbGljeSBPRE1Db21iaW5lUG9s
aWN5OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBDYWxjdWxhdGVNaW5BbmRNYXhQcmVm
ZXRjaE1vZGUoCjE0NDc0OiAgIGVudW0gc2VsZl9yZWZyZXNoX2FmZmluaXR5IEFsbG93RFJBTVNl
bGZSZWZyZXNoT3JEUkFNQ2xvY2tDaGFuZ2VJblZibGFuaywKMTQ0NzQ6ICAgdW5zaWduZWQgaW50
ICpNaW5QcmVmZXRjaE1vZGUsCjE0NDc0OiAgIHVuc2lnbmVkIGludCAqTWF4UHJlZmV0Y2hNb2Rl
KTsKMTQ0NzQ6IAoxNDQ3NDogZG91YmxlIENhbGN1bGF0ZVdyaXRlQmFja0RJU1BDTEsoCjE0NDc0
OiAgIGVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBXcml0ZWJhY2tQaXhlbEZvcm1hdCwKMTQ0NzQ6
ICAgZG91YmxlIFBpeGVsQ2xvY2ssCjE0NDc0OiAgIGRvdWJsZSBXcml0ZWJhY2tIUmF0aW8sCjE0
NDc0OiAgIGRvdWJsZSBXcml0ZWJhY2tWUmF0aW8sCjE0NDc0OiAgIHVuc2lnbmVkIGludCBXcml0
ZWJhY2tMdW1hSFRhcHMsCjE0NDc0OiAgIHVuc2lnbmVkIGludCBXcml0ZWJhY2tMdW1hVlRhcHMs
CjE0NDc0OiAgIHVuc2lnbmVkIGludCBXcml0ZWJhY2tDaHJvbWFIVGFwcywKMTQ0NzQ6ICAgdW5z
aWduZWQgaW50IFdyaXRlYmFja0Nocm9tYVZUYXBzLAoxNDQ3NDogICBkb3VibGUgV3JpdGViYWNr
RGVzdGluYXRpb25XaWR0aCwKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IEhUb3RhbCwKMTQ0NzQ6ICAg
dW5zaWduZWQgaW50IFdyaXRlYmFja0Nocm9tYUxpbmVCdWZmZXJXaWR0aCk7CjE0NDc0OiAjIDMx
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2Rpc3BsYXlf
bW9kZV9saWIuaCIgMgoxNDQ3NDogCjE0NDc0OiBlbnVtIGRtbF9wcm9qZWN0IHsKMTQ0NzQ6ICBE
TUxfUFJPSkVDVF9VTkRFRklORUQsCjE0NDc0OiAgRE1MX1BST0pFQ1RfUkFWRU4xLAoxNDQ3NDog
IERNTF9QUk9KRUNUX05BVkkxMCwKMTQ0NzQ6ICBETUxfUFJPSkVDVF9OQVZJMTB2MiwKMTQ0NzQ6
ICBETUxfUFJPSkVDVF9EQ04yMSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkaXNw
bGF5X21vZGVfbGliOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZG1sX2Z1bmNzIHsKMTQ0NzQ6ICB2
b2lkICgqcnFfZGxnX2dldF9kbGdfcmVnKSgKMTQ0NzQ6ICAgIHN0cnVjdCBkaXNwbGF5X21vZGVf
bGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgIGRpc3BsYXlfZGxnX3JlZ3Nfc3QgKmRsZ19yZWdzLAox
NDQ3NDogICAgZGlzcGxheV90dHVfcmVnc19zdCAqdHR1X3JlZ3MsCjE0NDc0OiAgICBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCAqZTJlX3BpcGVfcGFyYW0sCjE0NDc0OiAgICBjb25zdCB1bnNp
Z25lZCBpbnQgbnVtX3BpcGVzLAoxNDQ3NDogICAgY29uc3QgdW5zaWduZWQgaW50IHBpcGVfaWR4
LAoxNDQ3NDogICAgY29uc3QgYm9vbCBjc3RhdGVfZW4sCjE0NDc0OiAgICBjb25zdCBib29sIHBz
dGF0ZV9lbiwKMTQ0NzQ6ICAgIGNvbnN0IGJvb2wgdm1fZW4sCjE0NDc0OiAgICBjb25zdCBib29s
IGlnbm9yZV92aWV3cG9ydF9wb3MsCjE0NDc0OiAgICBjb25zdCBib29sIGltbWVkaWF0ZV9mbGlw
X3N1cHBvcnQpOwoxNDQ3NDogIHZvaWQgKCpycV9kbGdfZ2V0X3JxX3JlZykoCjE0NDc0OiAgIHN0
cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgZGlzcGxheV9ycV9yZWdz
X3N0ICpycV9yZWdzLAoxNDQ3NDogICBjb25zdCBkaXNwbGF5X3BpcGVfcGFyYW1zX3N0IHBpcGVf
cGFyYW0pOwoxNDQ3NDogIHZvaWQgKCpyZWNhbGN1bGF0ZSkoc3RydWN0IGRpc3BsYXlfbW9kZV9s
aWIgKm1vZGVfbGliKTsKMTQ0NzQ6ICB2b2lkICgqdmFsaWRhdGUpKHN0cnVjdCBkaXNwbGF5X21v
ZGVfbGliICptb2RlX2xpYik7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGlzcGxh
eV9tb2RlX2xpYiB7CjE0NDc0OiAgc3RydWN0IF92Y3NfZHBpX2lwX3BhcmFtc19zdCBpcDsKMTQ0
NzQ6ICBzdHJ1Y3QgX3Zjc19kcGlfc29jX2JvdW5kaW5nX2JveF9zdCBzb2M7CjE0NDc0OiAgZW51
bSBkbWxfcHJvamVjdCBwcm9qZWN0OwoxNDQ3NDogIHN0cnVjdCB2YmFfdmFyc19zdCB2YmE7CjE0
NDc0OiAgc3RydWN0IGRhbF9sb2dnZXIgKmxvZ2dlcjsKMTQ0NzQ6ICBzdHJ1Y3QgZG1sX2Z1bmNz
IGZ1bmNzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkbWxfaW5pdF9pbnN0YW5jZShz
dHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbGliLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgX3Zjc19k
cGlfc29jX2JvdW5kaW5nX2JveF9zdCAqc29jX2JiLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgX3Zj
c19kcGlfaXBfcGFyYW1zX3N0ICppcF9wYXJhbXMsCjE0NDc0OiAgIGVudW0gZG1sX3Byb2plY3Qg
cHJvamVjdCk7CjE0NDc0OiAKMTQ0NzQ6IGNvbnN0IGNoYXIgKmRtbF9nZXRfc3RhdHVzX21lc3Nh
Z2UoZW51bSBkbV92YWxpZGF0aW9uX3N0YXR1cyBzdGF0dXMpOwoxNDQ3NDogIyA0MSAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiIDIKMTQ0NzQ6ICMgNTIg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIgoxNDQ3NDog
c3RydWN0IGRjX3ZlcnNpb25zIHsKMTQ0NzQ6ICBjb25zdCBjaGFyICpkY192ZXI7CjE0NDc0OiAg
c3RydWN0IGRtY3VfdmVyc2lvbiBkbWN1X3ZlcnNpb247CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBlbnVtIGRwX3Byb3RvY29sX3ZlcnNpb24gewoxNDQ3NDogIERQX1ZFUlNJT05fMV80LAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19wbGFuZV90eXBlIHsKMTQ0NzQ6ICBEQ19QTEFO
RV9UWVBFX0lOVkFMSUQsCjE0NDc0OiAgRENfUExBTkVfVFlQRV9EQ0VfUkdCLAoxNDQ3NDogIERD
X1BMQU5FX1RZUEVfRENFX1VOREVSTEFZLAoxNDQ3NDogIERDX1BMQU5FX1RZUEVfRENOX1VOSVZF
UlNBTCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19wbGFuZV9jYXAgewoxNDQ3
NDogIGVudW0gZGNfcGxhbmVfdHlwZSB0eXBlOwoxNDQ3NDogIHVpbnQzMl90IGJsZW5kc193aXRo
X2Fib3ZlIDogMTsKMTQ0NzQ6ICB1aW50MzJfdCBibGVuZHNfd2l0aF9iZWxvdyA6IDE7CjE0NDc0
OiAgdWludDMyX3QgcGVyX3BpeGVsX2FscGhhIDogMTsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDog
ICB1aW50MzJfdCBhcmdiODg4OCA6IDE7CjE0NDc0OiAgIHVpbnQzMl90IG52MTIgOiAxOwoxNDQ3
NDogICB1aW50MzJfdCBmcDE2IDogMTsKMTQ0NzQ6ICAgdWludDMyX3QgcDAxMCA6IDE7CjE0NDc0
OiAgIHVpbnQzMl90IGF5dXYgOiAxOwoxNDQ3NDogIH0gcGl4ZWxfZm9ybWF0X3N1cHBvcnQ7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDMyX3Qg
YXJnYjg4ODg7CjE0NDc0OiAgIHVpbnQzMl90IG52MTI7CjE0NDc0OiAgIHVpbnQzMl90IGZwMTY7
CjE0NDc0OiAgfSBtYXhfdXBzY2FsZV9mYWN0b3I7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDMyX3QgYXJnYjg4ODg7CjE0NDc0OiAgIHVpbnQz
Ml90IG52MTI7CjE0NDc0OiAgIHVpbnQzMl90IGZwMTY7CjE0NDc0OiAgfSBtYXhfZG93bnNjYWxl
X2ZhY3RvcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19jYXBzIHsKMTQ0NzQ6
ICB1aW50MzJfdCBtYXhfc3RyZWFtczsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfbGlua3M7CjE0NDc0
OiAgdWludDMyX3QgbWF4X2F1ZGlvczsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfc2xhdmVfcGxhbmVz
OwoxNDQ3NDogIHVpbnQzMl90IG1heF9wbGFuZXM7CjE0NDc0OiAgdWludDMyX3QgbWF4X2Rvd25z
Y2FsZV9yYXRpbzsKMTQ0NzQ6ICB1aW50MzJfdCBpMmNfc3BlZWRfaW5fa2h6OwoxNDQ3NDogIHVp
bnQzMl90IGRtZGF0YV9hbGxvY19zaXplOwoxNDQ3NDogIHVuc2lnbmVkIGludCBtYXhfY3Vyc29y
X3NpemU7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1heF92aWRlb193aWR0aDsKMTQ0NzQ6ICBpbnQg
bGluZWFyX3BpdGNoX2FsaWdubWVudDsKMTQ0NzQ6ICBib29sIGRjY19jb25zdF9jb2xvcjsKMTQ0
NzQ6ICBib29sIGR5bmFtaWNfYXVkaW87CjE0NDc0OiAgYm9vbCBpc19hcHU7CjE0NDc0OiAgYm9v
bCBkdWFsX2xpbmtfZHZpOwoxNDQ3NDogIGJvb2wgcG9zdF9ibGVuZF9jb2xvcl9wcm9jZXNzaW5n
OwoxNDQ3NDogIGJvb2wgZm9yY2VfZHBfdHBzNF9mb3JfY3AyNTIwOwoxNDQ3NDogIGJvb2wgZGlz
YWJsZV9kcF9jbGtfc2hhcmU7CjE0NDc0OiAgYm9vbCBwc3Bfc2V0dXBfcGFuZWxfbW9kZTsKMTQ0
NzQ6ICBib29sIGV4dGVuZGVkX2F1eF90aW1lb3V0X3N1cHBvcnQ7CjE0NDc0OiAgYm9vbCBkbWN1
Yl9zdXBwb3J0OwoxNDQ3NDogIGJvb2wgaHdfM2RfbHV0OwoxNDQ3NDogIGVudW0gZHBfcHJvdG9j
b2xfdmVyc2lvbiBtYXhfZHBfcHJvdG9jb2xfdmVyc2lvbjsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxh
bmVfY2FwIHBsYW5lc1s2XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19idWdf
d2EgewoxNDQ3NDogIGJvb2wgbm9fY29ubmVjdF9waHlfY29uZmlnOwoxNDQ3NDogIGJvb2wgZGVk
Y24yMF8zMDVfd2E7CjE0NDc0OiAgYm9vbCBza2lwX2Nsb2NrX3VwZGF0ZTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19kY2Nfc3VyZmFjZV9wYXJhbSB7CjE0NDc0OiAgc3RydWN0
IGRjX3NpemUgc3VyZmFjZV9zaXplOwoxNDQ3NDogIGVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQg
Zm9ybWF0OwoxNDQ3NDogIGVudW0gc3dpenpsZV9tb2RlX3ZhbHVlcyBzd2l6emxlX21vZGU7CjE0
NDc0OiAgZW51bSBkY19zY2FuX2RpcmVjdGlvbiBzY2FuOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGRjX2RjY19zZXR0aW5nIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWF4X2NvbXBy
ZXNzZWRfYmxrX3NpemU7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1heF91bmNvbXByZXNzZWRfYmxr
X3NpemU7CjE0NDc0OiAgYm9vbCBpbmRlcGVuZGVudF82NGJfYmxrczsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBkY19zdXJmYWNlX2RjY19jYXAgewoxNDQ3NDogIHVuaW9uIHsKMTQ0
NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIHN0cnVjdCBkY19kY2Nfc2V0dGluZyByZ2I7CjE0NDc0
OiAgIH0gZ3JwaDsKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgc3RydWN0IGRj
X2RjY19zZXR0aW5nIGx1bWE7CjE0NDc0OiAgICBzdHJ1Y3QgZGNfZGNjX3NldHRpbmcgY2hyb21h
OwoxNDQ3NDogICB9IHZpZGVvOwoxNDQ3NDogIH07CjE0NDc0OiAKMTQ0NzQ6ICBib29sIGNhcGFi
bGU7CjE0NDc0OiAgYm9vbCBjb25zdF9jb2xvcl9zdXBwb3J0OwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRjX3N0YXRpY19zY3JlZW5fcGFyYW1zIHsKMTQ0NzQ6ICBzdHJ1Y3Qgewox
NDQ3NDogICBib29sIGZvcmNlX3RyaWdnZXI7CjE0NDc0OiAgIGJvb2wgY3Vyc29yX3VwZGF0ZTsK
MTQ0NzQ6ICAgYm9vbCBzdXJmYWNlX3VwZGF0ZTsKMTQ0NzQ6ICAgYm9vbCBvdmVybGF5X3VwZGF0
ZTsKMTQ0NzQ6ICB9IHRyaWdnZXJzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBudW1fZnJhbWVzOwox
NDQ3NDogfTsKMTQ0NzQ6ICMgMTk3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvZGMuaCIKMTQ0NzQ6IGVudW0gc3VyZmFjZV91cGRhdGVfdHlwZSB7CjE0NDc0OiAg
VVBEQVRFX1RZUEVfRkFTVCwKMTQ0NzQ6ICBVUERBVEVfVFlQRV9NRUQsCjE0NDc0OiAgVVBEQVRF
X1RZUEVfRlVMTCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjOwox
NDQ3NDogc3RydWN0IGRjX3BsYW5lX3N0YXRlOwoxNDQ3NDogc3RydWN0IGRjX3N0YXRlOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19jYXBfZnVuY3MgewoxNDQ3NDogIGJvb2wgKCpn
ZXRfZGNjX2NvbXByZXNzaW9uX2NhcCkoY29uc3Qgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgIGNv
bnN0IHN0cnVjdCBkY19kY2Nfc3VyZmFjZV9wYXJhbSAqaW5wdXQsCjE0NDc0OiAgICBzdHJ1Y3Qg
ZGNfc3VyZmFjZV9kY2NfY2FwICpvdXRwdXQpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3M7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZGNfY29uZmlnIHsKMTQ0NzQ6ICBib29sIGdwdV92bV9zdXBwb3J0OwoxNDQ3NDog
IGJvb2wgZGlzYWJsZV9kaXNwX3BsbF9zaGFyaW5nOwoxNDQ3NDogIGJvb2wgZmJjX3N1cHBvcnQ7
CjE0NDc0OiAgYm9vbCBvcHRpbWl6ZV9lZHBfbGlua19yYXRlOwoxNDQ3NDogIGJvb2wgZGlzYWJs
ZV9mcmFjdGlvbmFsX3B3bTsKMTQ0NzQ6ICBib29sIGFsbG93X3NlYW1sZXNzX2Jvb3Rfb3B0aW1p
emF0aW9uOwoxNDQ3NDogIGJvb2wgcG93ZXJfZG93bl9kaXNwbGF5X29uX2Jvb3Q7CjE0NDc0OiAg
Ym9vbCBlZHBfbm90X2Nvbm5lY3RlZDsKMTQ0NzQ6ICBib29sIGZvcmNlX2VudW1fZWRwOwoxNDQ3
NDogIGJvb2wgZm9yY2VkX2Nsb2NrczsKMTQ0NzQ6ICBib29sIGRpc2FibGVfZXh0ZW5kZWRfdGlt
ZW91dF9zdXBwb3J0OwoxNDQ3NDogIGJvb2wgbXVsdGlfbW9uX3BwX21jbGtfc3dpdGNoOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB2aXN1YWxfY29uZmlybSB7CjE0NDc0OiAgVklTVUFM
X0NPTkZJUk1fRElTQUJMRSA9IDAsCjE0NDc0OiAgVklTVUFMX0NPTkZJUk1fU1VSRkFDRSA9IDEs
CjE0NDc0OiAgVklTVUFMX0NPTkZJUk1fSERSID0gMiwKMTQ0NzQ6ICBWSVNVQUxfQ09ORklSTV9N
UENUUkVFID0gNCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNjX29wdGlvbiB7CjE0
NDc0OiAgRENDX0VOQUJMRSA9IDAsCjE0NDc0OiAgRENDX0RJU0FCTEUgPSAxLAoxNDQ3NDogIERD
Q19IQUxGX1JFUV9ESVNBTEJFID0gMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcGlw
ZV9zcGxpdF9wb2xpY3kgewoxNDQ3NDogIE1QQ19TUExJVF9EWU5BTUlDID0gMCwKMTQ0NzQ6ICBN
UENfU1BMSVRfQVZPSUQgPSAxLAoxNDQ3NDogIE1QQ19TUExJVF9BVk9JRF9NVUxUX0RJU1AgPSAy
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB3bV9yZXBvcnRfbW9kZSB7CjE0NDc0OiAg
V01fUkVQT1JUX0RFRkFVTFQgPSAwLAoxNDQ3NDogIFdNX1JFUE9SVF9PVkVSUklERSA9IDEsCjE0
NDc0OiB9OwoxNDQ3NDogZW51bSBkdG1fcHN0YXRlewoxNDQ3NDogIGR0bV9sZXZlbF9wMCA9IDAs
CjE0NDc0OiAgZHRtX2xldmVsX3AxLAoxNDQ3NDogIGR0bV9sZXZlbF9wMiwKMTQ0NzQ6ICBkdG1f
bGV2ZWxfcDMsCjE0NDc0OiAgZHRtX2xldmVsX3A0LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBkY25fcHdyX3N0YXRlIHsKMTQ0NzQ6ICBEQ05fUFdSX1NUQVRFX1VOS05PV04gPSAtMSwK
MTQ0NzQ6ICBEQ05fUFdSX1NUQVRFX01JU1NJT05fTU9ERSA9IDAsCjE0NDc0OiAgRENOX1BXUl9T
VEFURV9MT1dfUE9XRVIgPSAzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY2xvY2tzIHsKMTQ0NzQ6ICBpbnQgZGlzcGNs
a19raHo7CjE0NDc0OiAgaW50IGRwcGNsa19raHo7CjE0NDc0OiAgaW50IGRjZmNsa19raHo7CjE0
NDc0OiAgaW50IHNvY2Nsa19raHo7CjE0NDc0OiAgaW50IGRjZmNsa19kZWVwX3NsZWVwX2toejsK
MTQ0NzQ6ICBpbnQgZmNsa19raHo7CjE0NDc0OiAgaW50IHBoeWNsa19raHo7CjE0NDc0OiAgaW50
IGRyYW1jbGtfa2h6OwoxNDQ3NDogIGJvb2wgcF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydDsKMTQ0NzQ6
ICBlbnVtIGRjbl9wd3Jfc3RhdGUgcHdyX3N0YXRlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgYm9vbCBwcmV2X3Bfc3RhdGVfY2hhbmdlX3N1cHBvcnQ7CjE0NDc0OiAg
ZW51bSBkdG1fcHN0YXRlIGR0bV9sZXZlbDsKMTQ0NzQ6ICBpbnQgbWF4X3N1cHBvcnRlZF9kcHBj
bGtfa2h6OwoxNDQ3NDogIGludCBtYXhfc3VwcG9ydGVkX2Rpc3BjbGtfa2h6OwoxNDQ3NDogIGlu
dCBid19kcHBjbGtfa2h6OwoxNDQ3NDogIGludCBid19kaXNwY2xrX2toejsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19id192YWxpZGF0aW9uX3Byb2ZpbGUgewoxNDQ3NDogIGJv
b2wgZW5hYmxlOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsX3RpY2tz
OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyB2b2x0YWdlX2xldmVsX3RpY2tzOwoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgbG9uZyB3YXRlcm1hcmtfdGlja3M7CjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBsb25nIHJxX2RsZ190aWNrczsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyB0
b3RhbF9jb3VudDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvbmcgc2tpcF9mYXN0X2NvdW50Owox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyBza2lwX3Bhc3NfY291bnQ7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBsb25nIHNraXBfZmFpbF9jb3VudDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM0OSAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiCjE0NDc0OiBzdHJ1
Y3QgZGNfZGVidWdfb3B0aW9ucyB7CjE0NDc0OiAgZW51bSB2aXN1YWxfY29uZmlybSB2aXN1YWxf
Y29uZmlybTsKMTQ0NzQ6ICBib29sIHNhbml0eV9jaGVja3M7CjE0NDc0OiAgYm9vbCBtYXhfZGlz
cF9jbGs7CjE0NDc0OiAgYm9vbCBzdXJmYWNlX3RyYWNlOwoxNDQ3NDogIGJvb2wgdGltaW5nX3Ry
YWNlOwoxNDQ3NDogIGJvb2wgY2xvY2tfdHJhY2U7CjE0NDc0OiAgYm9vbCB2YWxpZGF0aW9uX3Ry
YWNlOwoxNDQ3NDogIGJvb2wgYmFuZHdpZHRoX2NhbGNzX3RyYWNlOwoxNDQ3NDogIGludCBtYXhf
ZG93bnNjYWxlX3NyY193aWR0aDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBkaXNhYmxl
X3N0dXR0ZXI7CjE0NDc0OiAgYm9vbCB1c2VfbWF4X2xiOwoxNDQ3NDogIGVudW0gZGNjX29wdGlv
biBkaXNhYmxlX2RjYzsKMTQ0NzQ6ICBlbnVtIHBpcGVfc3BsaXRfcG9saWN5IHBpcGVfc3BsaXRf
cG9saWN5OwoxNDQ3NDogIGJvb2wgZm9yY2Vfc2luZ2xlX2Rpc3BfcGlwZV9zcGxpdDsKMTQ0NzQ6
ICBib29sIHZvbHRhZ2VfYWxpZ25fZmNsazsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgZGlzYWJsZV9k
ZnNfYnlwYXNzOwoxNDQ3NDogIGJvb2wgZGlzYWJsZV9kcHBfcG93ZXJfZ2F0ZTsKMTQ0NzQ6ICBi
b29sIGRpc2FibGVfaHVicF9wb3dlcl9nYXRlOwoxNDQ3NDogIGJvb2wgZGlzYWJsZV9kc2NfcG93
ZXJfZ2F0ZTsKMTQ0NzQ6ICBpbnQgZHNjX21pbl9zbGljZV9oZWlnaHRfb3ZlcnJpZGU7CjE0NDc0
OiAgaW50IGRzY19icHBfaW5jcmVtZW50X2RpdjsKMTQ0NzQ6ICBib29sIG5hdGl2ZTQyMl9zdXBw
b3J0OwoxNDQ3NDogIGJvb2wgZGlzYWJsZV9wcGxpYl93bV9yYW5nZTsKMTQ0NzQ6ICBlbnVtIHdt
X3JlcG9ydF9tb2RlIHBwbGliX3dtX3JlcG9ydF9tb2RlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBt
aW5fZGlzcF9jbGtfa2h6OwoxNDQ3NDogIHVuc2lnbmVkIGludCBtaW5fZHBwX2Nsa19raHo7CjE0
NDc0OiAgaW50IHNyX2V4aXRfdGltZV9kcG0wX25zOwoxNDQ3NDogIGludCBzcl9lbnRlcl9wbHVz
X2V4aXRfdGltZV9kcG0wX25zOwoxNDQ3NDogIGludCBzcl9leGl0X3RpbWVfbnM7CjE0NDc0OiAg
aW50IHNyX2VudGVyX3BsdXNfZXhpdF90aW1lX25zOwoxNDQ3NDogIGludCB1cmdlbnRfbGF0ZW5j
eV9uczsKMTQ0NzQ6ICB1aW50MzJfdCB1bmRlcmZsb3dfYXNzZXJ0X2RlbGF5X3VzOwoxNDQ3NDog
IGludCBwZXJjZW50X29mX2lkZWFsX2RyYW1idzsKMTQ0NzQ6ICBpbnQgZHJhbV9jbG9ja19jaGFu
Z2VfbGF0ZW5jeV9uczsKMTQ0NzQ6ICBib29sIG9wdGltaXplZF93YXRlcm1hcms7CjE0NDc0OiAg
aW50IGFsd2F5c19zY2FsZTsKMTQ0NzQ6ICBib29sIGRpc2FibGVfcHBsaWJfY2xvY2tfcmVxdWVz
dDsKMTQ0NzQ6ICBib29sIGRpc2FibGVfY2xvY2tfZ2F0ZTsKMTQ0NzQ6ICBib29sIGRpc2FibGVf
ZG1jdTsKMTQ0NzQ6ICBib29sIGRpc2FibGVfcHNyOwoxNDQ3NDogIGJvb2wgZm9yY2VfYWJtX2Vu
YWJsZTsKMTQ0NzQ6ICBib29sIGRpc2FibGVfc3RlcmVvX3N1cHBvcnQ7CjE0NDc0OiAgYm9vbCB2
c3Jfc3VwcG9ydDsKMTQ0NzQ6ICBib29sIHBlcmZvcm1hbmNlX3RyYWNlOwoxNDQ3NDogIGJvb2wg
YXpfZW5kcG9pbnRfbXV0ZV9vbmx5OwoxNDQ3NDogIGJvb2wgYWx3YXlzX3VzZV9yZWdhbW1hOwox
NDQ3NDogIGJvb2wgcDAxMF9tcG9fc3VwcG9ydDsKMTQ0NzQ6ICBib29sIHJlY292ZXJ5X2VuYWJs
ZWQ7CjE0NDc0OiAgYm9vbCBhdm9pZF92Ymlvc19leGVjX3RhYmxlOwoxNDQ3NDogIGJvb2wgc2Ns
X3Jlc2V0X2xlbmd0aDEwOwoxNDQ3NDogIGJvb2wgaGRtaTIwX2Rpc2FibGU7CjE0NDc0OiAgYm9v
bCBza2lwX2RldGVjdGlvbl9saW5rX3RyYWluaW5nOwoxNDQ3NDogIGJvb2wgcmVtb3ZlX2Rpc2Nv
bm5lY3RfZWRwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBmb3JjZV9vZG1fY29tYmluZTsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgZm9yY2VfZmNsa19raHo7CjE0NDc0OiAgYm9vbCBkaXNhYmxlX3RyaV9i
dWY7CjE0NDc0OiAgYm9vbCBkbXViX29mZmxvYWRfZW5hYmxlZDsKMTQ0NzQ6ICBib29sIGRtY3Vi
X2VtdWxhdGlvbjsKMTQ0NzQ6ICBib29sIGRtdWJfY29tbWFuZF90YWJsZTsKMTQ0NzQ6ICBzdHJ1
Y3QgZGNfYndfdmFsaWRhdGlvbl9wcm9maWxlIGJ3X3ZhbF9wcm9maWxlOwoxNDQ3NDogIGJvb2wg
ZGlzYWJsZV9mZWM7CjE0NDc0OiAgYm9vbCBkaXNhYmxlXzQ4bWh6X3B3cmR3bjsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZm9yY2VfbWluX2RjZmNsa19taHo7
CjE0NDc0OiAgYm9vbCBkaXNhYmxlX3RpbWluZ19zeW5jOwoxNDQ3NDogIGJvb2wgY21faW5fYnlw
YXNzOwoxNDQ3NDogIGludCBmb3JjZV9jbG9ja19tb2RlOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBu
djEyX2lmbGlwX3ZtX3dhOwoxNDQ3NDogIGJvb2wgZGlzYWJsZV9kcmFtX2Nsb2NrX2NoYW5nZV92
YWN0aXZlX3N1cHBvcnQ7CjE0NDc0OiAgYm9vbCB2YWxpZGF0ZV9kbWxfb3V0cHV0OwoxNDQ3NDog
IGJvb2wgZW5hYmxlX2RtY3ViX3N1cmZhY2VfZmxpcDsKMTQ0NzQ6ICBib29sIHVzYmNfY29tYm9f
cGh5X3Jlc2V0X3dhOwoxNDQ3NDogIGJvb2wgZGlzYWJsZV9kc2M7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZGNfZGVidWdfZGF0YSB7CjE0NDc0OiAgdWludDMyX3QgbHRGYWlsQ291
bnQ7CjE0NDc0OiAgdWludDMyX3QgaTJjRXJyb3JDb3VudDsKMTQ0NzQ6ICB1aW50MzJfdCBhdXhF
cnJvckNvdW50OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX3BoeV9hZGRyX3Nw
YWNlX2NvbmZpZyB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDY0X3Qgc3RhcnRfYWRk
cjsKMTQ0NzQ6ICAgdWludDY0X3QgZW5kX2FkZHI7CjE0NDc0OiAgIHVpbnQ2NF90IGZiX3RvcDsK
MTQ0NzQ6ICAgdWludDY0X3QgZmJfb2Zmc2V0OwoxNDQ3NDogICB1aW50NjRfdCBmYl9iYXNlOwox
NDQ3NDogICB1aW50NjRfdCBhZ3BfdG9wOwoxNDQ3NDogICB1aW50NjRfdCBhZ3BfYm90OwoxNDQ3
NDogICB1aW50NjRfdCBhZ3BfYmFzZTsKMTQ0NzQ6ICB9IHN5c3RlbV9hcGVydHVyZTsKMTQ0NzQ6
IAoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ2NF90IHBhZ2VfdGFibGVfc3RhcnRfYWRk
cjsKMTQ0NzQ6ICAgdWludDY0X3QgcGFnZV90YWJsZV9lbmRfYWRkcjsKMTQ0NzQ6ICAgdWludDY0
X3QgcGFnZV90YWJsZV9iYXNlX2FkZHI7CjE0NDc0OiAgfSBnYXJ0X2NvbmZpZzsKMTQ0NzQ6IAox
NDQ3NDogIGJvb2wgdmFsaWQ7CjE0NDc0OiAgdWludDY0X3QgcGFnZV90YWJsZV9kZWZhdWx0X3Bh
Z2VfYWRkcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY192aXJ0dWFsX2FkZHJf
c3BhY2VfY29uZmlnIHsKMTQ0NzQ6ICB1aW50NjRfdCBwYWdlX3RhYmxlX2Jhc2VfYWRkcjsKMTQ0
NzQ6ICB1aW50NjRfdCBwYWdlX3RhYmxlX3N0YXJ0X2FkZHI7CjE0NDc0OiAgdWludDY0X3QgcGFn
ZV90YWJsZV9lbmRfYWRkcjsKMTQ0NzQ6ICB1aW50MzJfdCBwYWdlX3RhYmxlX2Jsb2NrX3NpemVf
aW5fYnl0ZXM7CjE0NDc0OiAgdWludDhfdCBwYWdlX3RhYmxlX2RlcHRoOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGRjX2JvdW5kaW5nX2JveF9vdmVycmlkZXMgewoxNDQ3NDogIGlu
dCBzcl9leGl0X3RpbWVfbnM7CjE0NDc0OiAgaW50IHNyX2VudGVyX3BsdXNfZXhpdF90aW1lX25z
OwoxNDQ3NDogIGludCB1cmdlbnRfbGF0ZW5jeV9uczsKMTQ0NzQ6ICBpbnQgcGVyY2VudF9vZl9p
ZGVhbF9kcmFtYnc7CjE0NDc0OiAgaW50IGRyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3lfbnM7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgbWluX2RjZmNsa19taHo7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfc3RhdGU7CjE0NDc0OiBzdHJ1Y3Qg
cmVzb3VyY2VfcG9vbDsKMTQ0NzQ6IHN0cnVjdCBkY2VfaHdzZXE7CjE0NDc0OiBzdHJ1Y3QgZ3B1
X2luZm9fc29jX2JvdW5kaW5nX2JveF92MV8wOwoxNDQ3NDogc3RydWN0IGRjIHsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNfdmVyc2lvbnMgdmVyc2lvbnM7CjE0NDc0OiAgc3RydWN0IGRjX2NhcHMgY2FwczsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfY2FwX2Z1bmNzIGNhcF9mdW5jczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNf
Y29uZmlnIGNvbmZpZzsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfZGVidWdfb3B0aW9ucyBkZWJ1ZzsKMTQ0
NzQ6ICBzdHJ1Y3QgZGNfYm91bmRpbmdfYm94X292ZXJyaWRlcyBiYl9vdmVycmlkZXM7CjE0NDc0
OiAgc3RydWN0IGRjX2J1Z193YSB3b3JrX2Fyb3VuZHM7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGh5X2FkZHJfc3BhY2VfY29uZmlnIHZtX3BhX2Nv
bmZpZzsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQ4X3QgbGlua19jb3VudDsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfbGluayAqbGlua3NbNiAqIDJdOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX3N0YXRlICpj
dXJyZW50X3N0YXRlOwoxNDQ3NDogIHN0cnVjdCByZXNvdXJjZV9wb29sICpyZXNfcG9vbDsKMTQ0
NzQ6IAoxNDQ3NDogIHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzIHNjbGtfbHZsczsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGJ3X2NhbGNzX2RjZWlwICpid19kY2VpcDsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfY2FsY3NfdmJpb3MgKmJ3X3ZiaW9zOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjbl9zb2Nf
Ym91bmRpbmdfYm94ICpkY25fc29jOwoxNDQ3NDogIHN0cnVjdCBkY25faXBfcGFyYW1zICpkY25f
aXA7CjE0NDc0OiAgc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgZG1sOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBod19zZXF1ZW5jZXJfZnVuY3MgaHdzczsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNlX2h3c2VxICpod3NlcTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBvcHRp
bWl6ZWRfcmVxdWlyZWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCBvcHRpbWl6ZV9zZWFt
bGVzc19ib290X3N0cmVhbXM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjb21wcmVz
c29yICpmYmNfY29tcHJlc3NvcjsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19kZWJ1Z19kYXRh
IGRlYnVnX2RhdGE7CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBjaGFyICpidWlsZF9pZDsKMTQ0NzQ6
ICBzdHJ1Y3Qgdm1faGVscGVyICp2bV9oZWxwZXI7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGdwdV9p
bmZvX3NvY19ib3VuZGluZ19ib3hfdjFfMCAqc29jX2JvdW5kaW5nX2JveDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gZnJhbWVfYnVmZmVyX21vZGUgewoxNDQ3NDogIEZSQU1FX0JVRkZF
Ul9NT0RFX0xPQ0FMX09OTFkgPSAwLAoxNDQ3NDogIEZSQU1FX0JVRkZFUl9NT0RFX1pGQl9PTkxZ
LAoxNDQ3NDogIEZSQU1FX0JVRkZFUl9NT0RFX01JWEVEX1pGQl9BTkRfTE9DQUwsCjE0NDc0OiB9
IDsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjaHViX2luaXRfZGF0YSB7CjE0NDc0OiAgaW50NjRf
dCB6ZmJfcGh5c19hZGRyX2Jhc2U7CjE0NDc0OiAgaW50NjRfdCB6ZmJfbWNfYmFzZV9hZGRyOwox
NDQ3NDogIHVpbnQ2NF90IHpmYl9zaXplX2luX2J5dGU7CjE0NDc0OiAgZW51bSBmcmFtZV9idWZm
ZXJfbW9kZSBmYl9tb2RlOwoxNDQ3NDogIGJvb2wgZGNodWJfaW5pdGlhbHppZWQ7CjE0NDc0OiAg
Ym9vbCBkY2h1Yl9pbmZvX3ZhbGlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRj
X2luaXRfZGF0YSB7CjE0NDc0OiAgc3RydWN0IGh3X2FzaWNfaWQgYXNpY19pZDsKMTQ0NzQ6ICB2
b2lkICpkcml2ZXI7CjE0NDc0OiAgc3RydWN0IGNnc19kZXZpY2UgKmNnc19kZXZpY2U7CjE0NDc0
OiAgc3RydWN0IGRjX2JvdW5kaW5nX2JveF9vdmVycmlkZXMgYmJfb3ZlcnJpZGVzOwoxNDQ3NDog
CjE0NDc0OiAgaW50IG51bV92aXJ0dWFsX2xpbmtzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2Jpb3MgKnZiaW9zX292ZXJyaWRlOwoxNDQ3NDogIGVu
dW0gZGNlX2Vudmlyb25tZW50IGRjZV9lbnZpcm9ubWVudDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVj
dCBkbXViX29mZmxvYWRfZnVuY3MgKmRtdWJfaWY7CjE0NDc0OiAgc3RydWN0IGRjX3JlZ19oZWxw
ZXJfc3RhdGUgKmRtdWJfb2ZmbG9hZDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19jb25maWcg
ZmxhZ3M7CjE0NDc0OiAgdWludDMyX3QgbG9nX21hc2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZ3B1X2luZm9fc29jX2JvdW5kaW5nX2JveF92
MV8wICpzb2NfYm91bmRpbmdfYm94OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRj
X2NhbGxiYWNrX2luaXQgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQ4X3Qg
cmVzZXJ2ZWQ7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkYyAqZGNf
Y3JlYXRlKGNvbnN0IHN0cnVjdCBkY19pbml0X2RhdGEgKmluaXRfcGFyYW1zKTsKMTQ0NzQ6IHZv
aWQgZGNfaGFyZHdhcmVfaW5pdChzdHJ1Y3QgZGMgKmRjKTsKMTQ0NzQ6IAoxNDQ3NDogaW50IGRj
X2dldF92bWlkX3VzZV92ZWN0b3Ioc3RydWN0IGRjICpkYyk7CjE0NDc0OiB2b2lkIGRjX3NldHVw
X3ZtX2NvbnRleHQoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3ZpcnR1YWxfYWRkcl9zcGFjZV9j
b25maWcgKnZhX2NvbmZpZywgaW50IHZtaWQpOwoxNDQ3NDogCjE0NDc0OiBpbnQgZGNfc2V0dXBf
c3lzdGVtX2NvbnRleHQoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3BoeV9hZGRyX3NwYWNlX2Nv
bmZpZyAqcGFfY29uZmlnKTsKMTQ0NzQ6IHZvaWQgZGNfaW5pdF9jYWxsYmFja3Moc3RydWN0IGRj
ICpkYywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX2NhbGxiYWNrX2luaXQgKmluaXRfcGFyYW1z
KTsKMTQ0NzQ6IHZvaWQgZGNfZGVpbml0X2NhbGxiYWNrcyhzdHJ1Y3QgZGMgKmRjKTsKMTQ0NzQ6
IHZvaWQgZGNfZGVzdHJveShzdHJ1Y3QgZGMgKipkYyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgVFJBTlNGRVJfRlVOQ19QT0lO
VFMgPSAxMDI1CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfaGRyX3N0YXRpY19t
ZXRhZGF0YSB7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY2hyb21hdGljaXR5X2dyZWVu
X3g7CjE0NDc0OiAgdW5zaWduZWQgaW50IGNocm9tYXRpY2l0eV9ncmVlbl95OwoxNDQ3NDogIHVu
c2lnbmVkIGludCBjaHJvbWF0aWNpdHlfYmx1ZV94OwoxNDQ3NDogIHVuc2lnbmVkIGludCBjaHJv
bWF0aWNpdHlfYmx1ZV95OwoxNDQ3NDogIHVuc2lnbmVkIGludCBjaHJvbWF0aWNpdHlfcmVkX3g7
CjE0NDc0OiAgdW5zaWduZWQgaW50IGNocm9tYXRpY2l0eV9yZWRfeTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgY2hyb21hdGljaXR5X3doaXRlX3BvaW50X3g7CjE0NDc0OiAgdW5zaWduZWQgaW50IGNo
cm9tYXRpY2l0eV93aGl0ZV9wb2ludF95OwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgbWluX2x1
bWluYW5jZTsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfbHVtaW5hbmNlOwoxNDQ3NDogIHVpbnQzMl90
IG1heGltdW1fY29udGVudF9saWdodF9sZXZlbDsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhpbXVtX2Zy
YW1lX2F2ZXJhZ2VfbGlnaHRfbGV2ZWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRj
X3RyYW5zZmVyX2Z1bmNfdHlwZSB7CjE0NDc0OiAgVEZfVFlQRV9QUkVERUZJTkVELAoxNDQ3NDog
IFRGX1RZUEVfRElTVFJJQlVURURfUE9JTlRTLAoxNDQ3NDogIFRGX1RZUEVfQllQQVNTLAoxNDQ3
NDogIFRGX1RZUEVfSFdQV0wKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY190cmFu
c2Zlcl9mdW5jX2Rpc3RyaWJ1dGVkX3BvaW50cyB7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIg
cmVkW1RSQU5TRkVSX0ZVTkNfUE9JTlRTXTsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBncmVl
bltUUkFOU0ZFUl9GVU5DX1BPSU5UU107CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgYmx1ZVtU
UkFOU0ZFUl9GVU5DX1BPSU5UU107CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MTZfdCBlbmRfZXhwb25l
bnQ7CjE0NDc0OiAgdWludDE2X3QgeF9wb2ludF9hdF95MV9yZWQ7CjE0NDc0OiAgdWludDE2X3Qg
eF9wb2ludF9hdF95MV9ncmVlbjsKMTQ0NzQ6ICB1aW50MTZfdCB4X3BvaW50X2F0X3kxX2JsdWU7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX3RyYW5zZmVyX2Z1bmNfcHJlZGVmaW5l
ZCB7CjE0NDc0OiAgVFJBTlNGRVJfRlVOQ1RJT05fU1JHQiwKMTQ0NzQ6ICBUUkFOU0ZFUl9GVU5D
VElPTl9CVDcwOSwKMTQ0NzQ6ICBUUkFOU0ZFUl9GVU5DVElPTl9QUSwKMTQ0NzQ6ICBUUkFOU0ZF
Ul9GVU5DVElPTl9MSU5FQVIsCjE0NDc0OiAgVFJBTlNGRVJfRlVOQ1RJT05fVU5JVFksCjE0NDc0
OiAgVFJBTlNGRVJfRlVOQ1RJT05fSExHLAoxNDQ3NDogIFRSQU5TRkVSX0ZVTkNUSU9OX0hMRzEy
LAoxNDQ3NDogIFRSQU5TRkVSX0ZVTkNUSU9OX0dBTU1BMjIsCjE0NDc0OiAgVFJBTlNGRVJfRlVO
Q1RJT05fR0FNTUEyNCwKMTQ0NzQ6ICBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTI2CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jIHsKMTQ0NzQ6
ICBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKMTQ0NzQ6ICBlbnVtIGRjX3RyYW5zZmVyX2Z1bmNfdHlw
ZSB0eXBlOwoxNDQ3NDogIGVudW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHRmOwoxNDQ3
NDogCjE0NDc0OiAgdWludDMyX3Qgc2RyX3JlZl93aGl0ZV9sZXZlbDsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHB3bF9wYXJh
bXMgcHdsOwoxNDQ3NDogICBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuY19kaXN0cmlidXRlZF9wb2lu
dHMgdGZfcHRzOwoxNDQ3NDogIH07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHVu
aW9uIGRjXzNkbHV0X3N0YXRlIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50MzJfdCBp
bml0aWFsaXplZDoxOwoxNDQ3NDogICB1aW50MzJfdCBybXVfaWR4X3ZhbGlkOjE7CjE0NDc0OiAg
IHVpbnQzMl90IHJtdV9tdXhfbnVtOjM7CjE0NDc0OiAgIHVpbnQzMl90IG1wY19ybXUwX211eDo0
OwoxNDQ3NDogICB1aW50MzJfdCBtcGNfcm11MV9tdXg6NDsKMTQ0NzQ6ICAgdWludDMyX3QgbXBj
X3JtdTJfbXV4OjQ7CjE0NDc0OiAgIHVpbnQzMl90IHJlc2VydmVkOjE1OwoxNDQ3NDogIH0gYml0
czsKMTQ0NzQ6ICB1aW50MzJfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY18zZGx1dCB7CjE0NDc0OiAgc3RydWN0IGtyZWYgcmVmY291bnQ7CjE0NDc0OiAg
c3RydWN0IHRldHJhaGVkcmFsX3BhcmFtcyBsdXRfM2Q7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFf
MzIgaGRyX211bHRpcGxpZXI7CjE0NDc0OiAgYm9vbCBpbml0aWFsaXplZDsKMTQ0NzQ6ICB1bmlv
biBkY18zZGx1dF9zdGF0ZSBzdGF0ZTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgZGNfcGxhbmVfc3RhdHVzIHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyBy
ZXF1ZXN0ZWRfYWRkcmVzczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyBjdXJyZW50
X2FkZHJlc3M7CjE0NDc0OiAgYm9vbCBpc19mbGlwX3BlbmRpbmc7CjE0NDc0OiAgYm9vbCBpc19y
aWdodF9leWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBzdXJmYWNlX3VwZGF0ZV9m
bGFncyB7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50MzJfdCBhZGRyX3Vw
ZGF0ZToxOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IGRjY19jaGFuZ2U6MTsKMTQ0NzQ6ICAg
dWludDMyX3QgY29sb3Jfc3BhY2VfY2hhbmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IGhvcml6b250
YWxfbWlycm9yX2NoYW5nZToxOwoxNDQ3NDogICB1aW50MzJfdCBwZXJfcGl4ZWxfYWxwaGFfY2hh
bmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IGdsb2JhbF9hbHBoYV9jaGFuZ2U6MTsKMTQ0NzQ6ICAg
dWludDMyX3QgaGRyX211bHQ6MTsKMTQ0NzQ6ICAgdWludDMyX3Qgcm90YXRpb25fY2hhbmdlOjE7
CjE0NDc0OiAgIHVpbnQzMl90IHN3aXp6bGVfY2hhbmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IHNj
YWxpbmdfY2hhbmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IHBvc2l0aW9uX2NoYW5nZToxOwoxNDQ3
NDogICB1aW50MzJfdCBpbl90cmFuc2Zlcl9mdW5jX2NoYW5nZToxOwoxNDQ3NDogICB1aW50MzJf
dCBpbnB1dF9jc2NfY2hhbmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IGNvZWZmX3JlZHVjdGlvbl9j
aGFuZ2U6MTsKMTQ0NzQ6ICAgdWludDMyX3Qgb3V0cHV0X3RmX2NoYW5nZToxOwoxNDQ3NDogICB1
aW50MzJfdCBwaXhlbF9mb3JtYXRfY2hhbmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IHBsYW5lX3Np
emVfY2hhbmdlOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBuZXdfcGxhbmU6
MTsKMTQ0NzQ6ICAgdWludDMyX3QgYnBwX2NoYW5nZToxOwoxNDQ3NDogICB1aW50MzJfdCBnYW1t
YV9jaGFuZ2U6MTsKMTQ0NzQ6ICAgdWludDMyX3QgYmFuZHdpZHRoX2NoYW5nZToxOwoxNDQ3NDog
ICB1aW50MzJfdCBjbG9ja19jaGFuZ2U6MTsKMTQ0NzQ6ICAgdWludDMyX3Qgc3RlcmVvX2Zvcm1h
dF9jaGFuZ2U6MTsKMTQ0NzQ6ICAgdWludDMyX3QgZnVsbF91cGRhdGU6MTsKMTQ0NzQ6ICB9IGJp
dHM7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgewoxNDQ3NDogIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNz
IGFkZHJlc3M7CjE0NDc0OiAgc3RydWN0IGRjX3BsYW5lX2ZsaXBfdGltZSB0aW1lOwoxNDQ3NDog
IGJvb2wgdHJpcGxlYnVmZmVyX2ZsaXBzOwoxNDQ3NDogIHN0cnVjdCBzY2FsaW5nX3RhcHMgc2Nh
bGluZ19xdWFsaXR5OwoxNDQ3NDogIHN0cnVjdCByZWN0IHNyY19yZWN0OwoxNDQ3NDogIHN0cnVj
dCByZWN0IGRzdF9yZWN0OwoxNDQ3NDogIHN0cnVjdCByZWN0IGNsaXBfcmVjdDsKMTQ0NzQ6IAox
NDQ3NDogIHN0cnVjdCBwbGFuZV9zaXplIHBsYW5lX3NpemU7CjE0NDc0OiAgdW5pb24gZGNfdGls
aW5nX2luZm8gdGlsaW5nX2luZm87CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxhbmVfZGNj
X3BhcmFtIGRjYzsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19nYW1tYSAqZ2FtbWFfY29ycmVj
dGlvbjsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqaW5fdHJhbnNmZXJfZnVuYzsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfYmlhc19hbmRfc2NhbGUgKmJpYXNfYW5kX3NjYWxlOwoxNDQ3NDog
IHN0cnVjdCBkY19jc2NfdHJhbnNmb3JtIGlucHV0X2NzY19jb2xvcl9tYXRyaXg7CjE0NDc0OiAg
c3RydWN0IGZpeGVkMzFfMzIgY29lZmZfcmVkdWN0aW9uX2ZhY3RvcjsKMTQ0NzQ6ICBzdHJ1Y3Qg
Zml4ZWQzMV8zMiBoZHJfbXVsdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2hk
cl9zdGF0aWNfbWV0YWRhdGEgaGRyX3N0YXRpY19jdHg7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRj
X2NvbG9yX3NwYWNlIGNvbG9yX3NwYWNlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjXzNkbHV0
ICpsdXQzZF9mdW5jOwoxNDQ3NDogIHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICppbl9zaGFwZXJf
ZnVuYzsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqYmxlbmRfdGY7CjE0NDc0OiAK
MTQ0NzQ6ICBlbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdDsKMTQ0NzQ6ICBlbnVtIGRj
X3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uOwoxNDQ3NDogIGVudW0gcGxhbmVfc3RlcmVvX2Zvcm1h
dCBzdGVyZW9fZm9ybWF0OwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBpc190aWxpbmdfcm90YXRlZDsK
MTQ0NzQ6ICBib29sIHBlcl9waXhlbF9hbHBoYTsKMTQ0NzQ6ICBib29sIGdsb2JhbF9hbHBoYTsK
MTQ0NzQ6ICBpbnQgZ2xvYmFsX2FscGhhX3ZhbHVlOwoxNDQ3NDogIGJvb2wgdmlzaWJsZTsKMTQ0
NzQ6ICBib29sIGZsaXBfaW1tZWRpYXRlOwoxNDQ3NDogIGJvb2wgaG9yaXpvbnRhbF9taXJyb3I7
CjE0NDc0OiAgaW50IGxheWVyX2luZGV4OwoxNDQ3NDogCjE0NDc0OiAgdW5pb24gc3VyZmFjZV91
cGRhdGVfZmxhZ3MgdXBkYXRlX2ZsYWdzOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX3BsYW5l
X3N0YXR1cyBzdGF0dXM7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgYm9vbCBmb3JjZV9mdWxsX3VwZGF0ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgZW51bSBkY19pcnFfc291cmNlIGlycV9zb3VyY2U7CjE0NDc0OiAgc3RydWN0IGtyZWYg
cmVmY291bnQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfcGxhbmVfaW5mbyB7
CjE0NDc0OiAgc3RydWN0IHBsYW5lX3NpemUgcGxhbmVfc2l6ZTsKMTQ0NzQ6ICB1bmlvbiBkY190
aWxpbmdfaW5mbyB0aWxpbmdfaW5mbzsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFt
IGRjYzsKMTQ0NzQ6ICBlbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdDsKMTQ0NzQ6ICBl
bnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uOwoxNDQ3NDogIGVudW0gcGxhbmVfc3RlcmVv
X2Zvcm1hdCBzdGVyZW9fZm9ybWF0OwoxNDQ3NDogIGVudW0gZGNfY29sb3Jfc3BhY2UgY29sb3Jf
c3BhY2U7CjE0NDc0OiAgYm9vbCBob3Jpem9udGFsX21pcnJvcjsKMTQ0NzQ6ICBib29sIHZpc2li
bGU7CjE0NDc0OiAgYm9vbCBwZXJfcGl4ZWxfYWxwaGE7CjE0NDc0OiAgYm9vbCBnbG9iYWxfYWxw
aGE7CjE0NDc0OiAgaW50IGdsb2JhbF9hbHBoYV92YWx1ZTsKMTQ0NzQ6ICBib29sIGlucHV0X2Nz
Y19lbmFibGVkOwoxNDQ3NDogIGludCBsYXllcl9pbmRleDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkY19zY2FsaW5nX2luZm8gewoxNDQ3NDogIHN0cnVjdCByZWN0IHNyY19yZWN0
OwoxNDQ3NDogIHN0cnVjdCByZWN0IGRzdF9yZWN0OwoxNDQ3NDogIHN0cnVjdCByZWN0IGNsaXBf
cmVjdDsKMTQ0NzQ6ICBzdHJ1Y3Qgc2NhbGluZ190YXBzIHNjYWxpbmdfcXVhbGl0eTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19zdXJmYWNlX3VwZGF0ZSB7CjE0NDc0OiAgc3Ry
dWN0IGRjX3BsYW5lX3N0YXRlICpzdXJmYWNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBjb25z
dCBzdHJ1Y3QgZGNfZmxpcF9hZGRycyAqZmxpcF9hZGRyOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBk
Y19wbGFuZV9pbmZvICpwbGFuZV9pbmZvOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY19zY2FsaW5n
X2luZm8gKnNjYWxpbmdfaW5mbzsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBoZHJfbXVsdDsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGNfZ2FtbWEgKmdh
bW1hOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICppbl90cmFuc2Zlcl9m
dW5jOwoxNDQ3NDogCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gKmlucHV0
X2NzY19jb2xvcl9tYXRyaXg7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGZpeGVkMzFfMzIgKmNvZWZm
X3JlZHVjdGlvbl9mYWN0b3I7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMg
KmZ1bmNfc2hhcGVyOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY18zZGx1dCAqbHV0M2RfZnVuYzsK
MTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqYmxlbmRfdGY7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfcGxhbmVf
c3RhdGUgKmRjX2NyZWF0ZV9wbGFuZV9zdGF0ZShzdHJ1Y3QgZGMgKmRjKTsKMTQ0NzQ6IGNvbnN0
IHN0cnVjdCBkY19wbGFuZV9zdGF0dXMgKmRjX3BsYW5lX2dldF9zdGF0dXMoCjE0NDc0OiAgIGNv
bnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwoxNDQ3NDogCjE0NDc0OiB2
b2lkIGRjX3BsYW5lX3N0YXRlX3JldGFpbihzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0
YXRlKTsKMTQ0NzQ6IHZvaWQgZGNfcGxhbmVfc3RhdGVfcmVsZWFzZShzdHJ1Y3QgZGNfcGxhbmVf
c3RhdGUgKnBsYW5lX3N0YXRlKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19nYW1tYV9yZXRhaW4o
c3RydWN0IGRjX2dhbW1hICpkY19nYW1tYSk7CjE0NDc0OiB2b2lkIGRjX2dhbW1hX3JlbGVhc2Uo
c3RydWN0IGRjX2dhbW1hICoqZGNfZ2FtbWEpOwoxNDQ3NDogc3RydWN0IGRjX2dhbW1hICpkY19j
cmVhdGVfZ2FtbWEodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNfdHJhbnNmZXJfZnVuY19y
ZXRhaW4oc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgKmRjX3RmKTsKMTQ0NzQ6IHZvaWQgZGNfdHJh
bnNmZXJfZnVuY19yZWxlYXNlKHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICpkY190Zik7CjE0NDc0
OiBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqZGNfY3JlYXRlX3RyYW5zZmVyX2Z1bmModm9pZCk7
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY18zZGx1dCAqZGNfY3JlYXRlXzNkbHV0X2Z1bmModm9p
ZCk7CjE0NDc0OiB2b2lkIGRjXzNkbHV0X2Z1bmNfcmVsZWFzZShzdHJ1Y3QgZGNfM2RsdXQgKmx1
dCk7CjE0NDc0OiB2b2lkIGRjXzNkbHV0X2Z1bmNfcmV0YWluKHN0cnVjdCBkY18zZGx1dCAqbHV0
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZGNfZmxpcF9hZGRycyB7CjE0NDc0OiAgc3RydWN0IGRjX3BsYW5lX2FkZHJlc3MgYWRkcmVzczsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmxpcF90aW1lc3RhbXBfaW5fdXM7CjE0NDc0OiAgYm9vbCBm
bGlwX2ltbWVkaWF0ZTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19w
b3N0X3VwZGF0ZV9zdXJmYWNlc190b19zdHJlYW0oCjE0NDc0OiAgIHN0cnVjdCBkYyAqZGMpOwox
NDQ3NDogCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kY19zdHJlYW0uaCIgMQoxNDQ3NDogIyAzNSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RjX3N0cmVhbS5oIgoxNDQ3NDogc3RydWN0IHRpbWluZ19zeW5j
X2luZm8gewoxNDQ3NDogIGludCBncm91cF9pZDsKMTQ0NzQ6ICBpbnQgZ3JvdXBfc2l6ZTsKMTQ0
NzQ6ICBib29sIG1hc3RlcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19zdHJl
YW1fc3RhdHVzIHsKMTQ0NzQ6ICBpbnQgcHJpbWFyeV9vdGdfaW5zdDsKMTQ0NzQ6ICBpbnQgc3Ry
ZWFtX2VuY19pbnN0OwoxNDQ3NDogIGludCBwbGFuZV9jb3VudDsKMTQ0NzQ6ICBpbnQgYXVkaW9f
aW5zdDsKMTQ0NzQ6ICBzdHJ1Y3QgdGltaW5nX3N5bmNfaW5mbyB0aW1pbmdfc3luY19pbmZvOwox
NDQ3NDogIHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGVzWzRdOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZnJlZXN5bmNfY29udGV4dCB7CjE0NDc0OiAg
Ym9vbCBkdW1teTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gaHVicF9kbWRhdGFfbW9k
ZSB7CjE0NDc0OiAgRE1EQVRBX1NXX01PREUsCjE0NDc0OiAgRE1EQVRBX0hXX01PREUKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19kbWRhdGFfYXR0cmlidXRlcyB7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZW51bSBodWJwX2RtZGF0YV9tb2RlIGRtZGF0YV9tb2Rl
OwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBkbWRhdGFfcmVwZWF0OwoxNDQ3NDogCjE0NDc0OiAgdWlu
dDMyX3QgZG1kYXRhX3NpemU7CjE0NDc0OiAKMTQ0NzQ6ICBib29sIGRtZGF0YV91cGRhdGVkOwox
NDQ3NDogCjE0NDc0OiAgdW5pb24gbGFyZ2VfaW50ZWdlciBhZGRyZXNzOwoxNDQ3NDogCjE0NDc0
OiAgYm9vbCBkbWRhdGFfcW9zX21vZGU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBkbWRhdGFf
cW9zX2xldmVsOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGRtZGF0
YV9kbF9kZWx0YTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90ICpkbWRhdGFfc3dfZGF0YTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY193cml0ZWJhY2tfaW5mbyB7CjE0NDc0OiAg
Ym9vbCB3Yl9lbmFibGVkOwoxNDQ3NDogIGludCBkd2JfcGlwZV9pbnN0OwoxNDQ3NDogIHN0cnVj
dCBkY19kd2JfcGFyYW1zIGR3Yl9wYXJhbXM7CjE0NDc0OiAgc3RydWN0IG1jaWZfYnVmX3BhcmFt
cyBtY2lmX2J1Zl9wYXJhbXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfd3Jp
dGViYWNrX3VwZGF0ZSB7CjE0NDc0OiAgdW5zaWduZWQgaW50IG51bV93Yl9pbmZvOwoxNDQ3NDog
IHN0cnVjdCBkY193cml0ZWJhY2tfaW5mbyB3cml0ZWJhY2tfaW5mb1sxXTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gdmVydGljYWxfaW50ZXJydXB0X3JlZl9wb2ludCB7CjE0NDc0OiAg
U1RBUlRfVl9VUERBVEUgPSAwLAoxNDQ3NDogIFNUQVJUX1ZfU1lOQywKMTQ0NzQ6ICBJTlZBTElE
X1BPSU5UCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBwZXJpb2RpY19pbnRlcnJ1cHRfY29uZmlnIHsKMTQ0NzQ6ICBlbnVtIHZl
cnRpY2FsX2ludGVycnVwdF9yZWZfcG9pbnQgcmVmX3BvaW50OwoxNDQ3NDogIGludCBsaW5lc19v
ZmZzZXQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBzdHJlYW1fdXBkYXRlX2ZsYWdz
IHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50MzJfdCBzY2FsaW5nOjE7CjE0NDc0OiAg
IHVpbnQzMl90IG91dF90ZjoxOwoxNDQ3NDogICB1aW50MzJfdCBvdXRfY3NjOjE7CjE0NDc0OiAg
IHVpbnQzMl90IGFibV9sZXZlbDoxOwoxNDQ3NDogICB1aW50MzJfdCBkcG1zX29mZjoxOwoxNDQ3
NDogICB1aW50MzJfdCBnYW11dF9yZW1hcDoxOwoxNDQ3NDogICB1aW50MzJfdCB3Yl91cGRhdGU6
MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCByYXc7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlIHsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGRjX3NpbmsgKnNpbms7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNf
bGluayAqbGluazsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGFuZWxfcGF0Y2ggc2lua19wYXRjaGVzOwox
NDQ3NDogIHVuaW9uIGRpc3BsYXlfY29udGVudF9zdXBwb3J0IGNvbnRlbnRfc3VwcG9ydDsKMTQ0
NzQ6ICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgdGltaW5nOwoxNDQ3NDogIHN0cnVjdCBkY19jcnRj
X3RpbWluZ19hZGp1c3QgYWRqdXN0OwoxNDQ3NDogIHN0cnVjdCBkY19pbmZvX3BhY2tldCB2cnJf
aW5mb3BhY2tldDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgdnNjX2luZm9wYWNrZXQ7
CjE0NDc0OiAgc3RydWN0IGRjX2luZm9fcGFja2V0IHZzcF9pbmZvcGFja2V0OwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHJlY3Qgc3JjOwoxNDQ3NDogIHN0cnVjdCByZWN0IGRzdDsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGZyZWVzeW5jX2NvbnRleHQgZnJlZXN5bmNfY3R4OwoxNDQ3
NDogCjE0NDc0OiAgc3RydWN0IGF1ZGlvX2luZm8gYXVkaW9faW5mbzsKMTQ0NzQ6IAoxNDQ3NDog
IHN0cnVjdCBkY19pbmZvX3BhY2tldCBoZHJfc3RhdGljX21ldGFkYXRhOwoxNDQ3NDogIHVuaW9u
IGxhcmdlX2ludGVnZXIgZG1kYXRhX2FkZHJlc3M7CjE0NDc0OiAgYm9vbCB1c2VfZHluYW1pY19t
ZXRhOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgKm91dF90cmFuc2Zl
cl9mdW5jOwoxNDQ3NDogIHN0cnVjdCBjb2xvcnNwYWNlX3RyYW5zZm9ybSBnYW11dF9yZW1hcF9t
YXRyaXg7CjE0NDc0OiAgc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gY3NjX2NvbG9yX21hdHJpeDsK
MTQ0NzQ6IAoxNDQ3NDogIGVudW0gZGNfY29sb3Jfc3BhY2Ugb3V0cHV0X2NvbG9yX3NwYWNlOwox
NDQ3NDogIGVudW0gZGNfZGl0aGVyX29wdGlvbiBkaXRoZXJfb3B0aW9uOwoxNDQ3NDogCjE0NDc0
OiAgZW51bSB2aWV3XzNkX2Zvcm1hdCB2aWV3X2Zvcm1hdDsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wg
dXNlX3ZzY19zZHBfZm9yX2NvbG9yaW1ldHJ5OwoxNDQ3NDogIGJvb2wgaWdub3JlX21zYV90aW1p
bmdfcGFyYW07CjE0NDc0OiAgYm9vbCBjb252ZXJ0ZXJfZGlzYWJsZV9hdWRpbzsKMTQ0NzQ6ICB1
aW50OF90IHFzX2JpdDsKMTQ0NzQ6ICB1aW50OF90IHF5X2JpdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcHNyX3ZlcnNpb247CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IGFibV9sZXZlbDsKMTQ0NzQ6IAox
NDQ3NDogIHN0cnVjdCBwZXJpb2RpY19pbnRlcnJ1cHRfY29uZmlnIHBlcmlvZGljX2ludGVycnVw
dDA7CjE0NDc0OiAgc3RydWN0IHBlcmlvZGljX2ludGVycnVwdF9jb25maWcgcGVyaW9kaWNfaW50
ZXJydXB0MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1z
IGJpdF9kZXB0aF9wYXJhbXM7CjE0NDc0OiAgc3RydWN0IGNsYW1waW5nX2FuZF9waXhlbF9lbmNv
ZGluZ19wYXJhbXMgY2xhbXBpbmc7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgcGh5X3BpeF9jbGs7CjE0
NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaWduYWw7CjE0NDc0OiAgYm9vbCBkcG1zX29mZjsKMTQ0
NzQ6IAoxNDQ3NDogIHZvaWQgKmRtX3N0cmVhbV9jb250ZXh0OwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzIGN1cnNvcl9hdHRyaWJ1dGVzOwoxNDQ3NDogIHN0cnVj
dCBkY19jdXJzb3JfcG9zaXRpb24gY3Vyc29yX3Bvc2l0aW9uOwoxNDQ3NDogIHVpbnQzMl90IHNk
cl93aGl0ZV9sZXZlbDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGtyZWYgcmVmY291
bnQ7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgY3J0Y190cmlnZ2VyX2luZm8gdHJpZ2dlcmVkX2Ny
dGNfcmVzZXQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBudW1fd2JfaW5m
bzsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8gd3JpdGViYWNrX2luZm9bMV07CjE0
NDc0OiAKMTQ0NzQ6ICBib29sIG1vZGVfY2hhbmdlZCA6IDE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgIHVpbnQ4X3Qgb3RnX29mZnNldDsKMTQ0NzQ6ICB9IG91dDsKMTQ0NzQ6IAox
NDQ3NDogIGJvb2wgYXBwbHlfZWRwX2Zhc3RfYm9vdF9vcHRpbWl6YXRpb247CjE0NDc0OiAgYm9v
bCBhcHBseV9zZWFtbGVzc19ib290X29wdGltaXphdGlvbjsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQz
Ml90IHN0cmVhbV9pZDsKMTQ0NzQ6ICBib29sIGlzX2RzY19lbmFibGVkOwoxNDQ3NDogIHVuaW9u
IHN0cmVhbV91cGRhdGVfZmxhZ3MgdXBkYXRlX2ZsYWdzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19zdHJlYW1fdXBkYXRlIHsKMTQ0NzQ6ICBzdHJ1
Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW07CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgcmVjdCBz
cmM7CjE0NDc0OiAgc3RydWN0IHJlY3QgZHN0OwoxNDQ3NDogIHN0cnVjdCBkY190cmFuc2Zlcl9m
dW5jICpvdXRfdHJhbnNmZXJfZnVuYzsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgKmhk
cl9zdGF0aWNfbWV0YWRhdGE7CjE0NDc0OiAgdW5zaWduZWQgaW50ICphYm1fbGV2ZWw7CjE0NDc0
OiAKMTQ0NzQ6ICBzdHJ1Y3QgcGVyaW9kaWNfaW50ZXJydXB0X2NvbmZpZyAqcGVyaW9kaWNfaW50
ZXJydXB0MDsKMTQ0NzQ6ICBzdHJ1Y3QgcGVyaW9kaWNfaW50ZXJydXB0X2NvbmZpZyAqcGVyaW9k
aWNfaW50ZXJydXB0MTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19pbmZvX3BhY2tldCAqdnJy
X2luZm9wYWNrZXQ7CjE0NDc0OiAgc3RydWN0IGRjX2luZm9fcGFja2V0ICp2c2NfaW5mb3BhY2tl
dDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgKnZzcF9pbmZvcGFja2V0OwoxNDQ3NDog
CjE0NDc0OiAgYm9vbCAqZHBtc19vZmY7CjE0NDc0OiAgYm9vbCBpbnRlZ2VyX3NjYWxpbmdfdXBk
YXRlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGNvbG9yc3BhY2VfdHJhbnNmb3JtICpnYW11dF9y
ZW1hcDsKMTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX3NwYWNlICpvdXRwdXRfY29sb3Jfc3BhY2U7CjE0
NDc0OiAgZW51bSBkY19kaXRoZXJfb3B0aW9uICpkaXRoZXJfb3B0aW9uOwoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gKm91dHB1dF9jc2NfdHJhbnNmb3JtOwoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGRjX3dyaXRlYmFja191cGRhdGUgKndiX3VwZGF0ZTsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNfZHNjX2NvbmZpZyAqZHNjX2NvbmZpZzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGJvb2wgZGNfaXNfc3RyZWFtX3VuY2hhbmdlZCgKMTQ0NzQ6ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0
YXRlICpvbGRfc3RyZWFtLCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoxNDQ3NDog
Ym9vbCBkY19pc19zdHJlYW1fc2NhbGluZ191bmNoYW5nZWQoCjE0NDc0OiAgc3RydWN0IGRjX3N0
cmVhbV9zdGF0ZSAqb2xkX3N0cmVhbSwgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsK
MTQ0NzQ6ICMgMjczICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
ZGNfc3RyZWFtLmgiCjE0NDc0OiB2b2lkIGRjX2NvbW1pdF91cGRhdGVzX2Zvcl9zdHJlYW0oc3Ry
dWN0IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlICpzcmZfdXBkYXRl
cywKMTQ0NzQ6ICAgaW50IHN1cmZhY2VfY291bnQsCjE0NDc0OiAgIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKnN0cmVhbSwKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0cmVhbV91cGRhdGUgKnN0cmVhbV91
cGRhdGUsCjE0NDc0OiAgIHN0cnVjdCBkY19zdGF0ZSAqc3RhdGUpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19zdHJlYW1fbG9nKGNvbnN0IHN0cnVjdCBkYyAqZGMsIGNv
bnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6IHVpbnQ4
X3QgZGNfZ2V0X2N1cnJlbnRfc3RyZWFtX2NvdW50KHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqZGNfZ2V0X3N0cmVhbV9hdF9pbmRleChzdHJ1Y3QgZGMgKmRj
LCB1aW50OF90IGkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1aW50
MzJfdCBkY19zdHJlYW1fZ2V0X3ZibGFua19jb3VudGVyKGNvbnN0IHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGJv
b2wgZGNfc3RyZWFtX3NlbmRfZHBfc2RwKGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0
cmVhbSwKMTQ0NzQ6ICAgY29uc3QgdWludDhfdCAqY3VzdG9tX3NkcF9tZXNzYWdlLAoxNDQ3NDog
ICB1bnNpZ25lZCBpbnQgc2RwX21lc3NhZ2Vfc2l6ZSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19zdHJlYW1fZ2V0X3NjYW5vdXRwb3MoY29u
c3Qgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAoxNDQ3NDogICAgICAgdWludDMyX3Qg
KnZfYmxhbmtfc3RhcnQsCjE0NDc0OiAgICAgICB1aW50MzJfdCAqdl9ibGFua19lbmQsCjE0NDc0
OiAgICAgICB1aW50MzJfdCAqaF9wb3NpdGlvbiwKMTQ0NzQ6ICAgICAgIHVpbnQzMl90ICp2X3Bv
c2l0aW9uKTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19zdGF0dXMgZGNfYWRkX3N0cmVhbV90b19j
dHgoCjE0NDc0OiAgICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKm5l
d19jdHgsCjE0NDc0OiAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAK
MTQ0NzQ6IGVudW0gZGNfc3RhdHVzIGRjX3JlbW92ZV9zdHJlYW1fZnJvbV9jdHgoCjE0NDc0OiAg
IHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfc3RhdGUgKm5ld19jdHgsCjE0NDc0
OiAgICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGJvb2wgZGNfYWRkX3BsYW5lX3RvX2NvbnRleHQoCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBk
YyAqZGMsCjE0NDc0OiAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKMTQ0NzQ6ICAg
c3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0
YXRlICpjb250ZXh0KTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19yZW1vdmVfcGxhbmVfZnJvbV9j
b250ZXh0KAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNf
c3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0OiAgIHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxh
bmVfc3RhdGUsCjE0NDc0OiAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0
NzQ6IGJvb2wgZGNfcmVtX2FsbF9wbGFuZXNfZm9yX3N0cmVhbSgKMTQ0NzQ6ICAgY29uc3Qgc3Ry
dWN0IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAoxNDQ3
NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX2Fk
ZF9hbGxfcGxhbmVzX2Zvcl9zdHJlYW0oCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkYyAqZGMsCjE0
NDc0OiAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKMTQ0NzQ6ICAgc3RydWN0IGRj
X3BsYW5lX3N0YXRlICogY29uc3QgKnBsYW5lX3N0YXRlcywKMTQ0NzQ6ICAgaW50IHBsYW5lX2Nv
dW50LAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogCjE0NDc0OiBi
b29sIGRjX3N0cmVhbV9hZGRfd3JpdGViYWNrKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgIHN0cnVj
dCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKMTQ0NzQ6ICAgc3RydWN0IGRjX3dyaXRlYmFja19p
bmZvICp3Yl9pbmZvKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19zdHJlYW1fcmVtb3ZlX3dyaXRl
YmFjayhzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJl
YW0sCjE0NDc0OiAgIHVpbnQzMl90IGR3Yl9waXBlX2luc3QpOwoxNDQ3NDogCjE0NDc0OiBib29s
IGRjX3N0cmVhbV93YXJtdXBfd3JpdGViYWNrKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgIGludCBu
dW1fZHdiLAoxNDQ3NDogICBzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8gKndiX2luZm8pOwoxNDQ3
NDogCjE0NDc0OiBib29sIGRjX3N0cmVhbV9kbWRhdGFfc3RhdHVzX2RvbmUoc3RydWN0IGRjICpk
Yywgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBk
Y19zdHJlYW1fc2V0X2R5bmFtaWNfbWV0YWRhdGEoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAoxNDQ3NDogICBzdHJ1Y3QgZGNfZG1kYXRhX2F0
dHJpYnV0ZXMgKmRtZGF0YV9hdHRyKTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19zdGF0dXMgZGNf
dmFsaWRhdGVfc3RyZWFtKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0
cmVhbSk7CjE0NDc0OiAjIDM3NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2RjX3N0cmVhbS5oIgoxNDQ3NDogYm9vbCBkY19lbmFibGVfc3RlcmVvKAoxNDQ3NDog
IHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAoxNDQ3NDog
IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbXNbXSwKMTQ0NzQ6ICB1aW50OF90IHN0cmVh
bV9jb3VudCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBzdXJmYWNlX3VwZGF0ZV90eXBl
IGRjX2NoZWNrX3VwZGF0ZV9zdXJmYWNlc19mb3Jfc3RyZWFtKAoxNDQ3NDogICBzdHJ1Y3QgZGMg
KmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3VyZmFjZV91cGRhdGUgKnVwZGF0ZXMsCjE0NDc0OiAg
IGludCBzdXJmYWNlX2NvdW50LAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RyZWFtX3VwZGF0ZSAqc3Ry
ZWFtX3VwZGF0ZSwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX3N0cmVhbV9zdGF0dXMgKnN0cmVh
bV9zdGF0dXMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpkY19jcmVhdGVfc3RyZWFtX2Zvcl9zaW5rKHN0cnVjdCBkY19zaW5r
ICpkY19zaW5rKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqZGNfY29w
eV9zdHJlYW0oY29uc3Qgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCB1cGRhdGVfc3RyZWFtX3NpZ25hbChzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpz
dHJlYW0sIHN0cnVjdCBkY19zaW5rICpzaW5rKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19zdHJl
YW1fcmV0YWluKHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKmRjX3N0cmVhbSk7CjE0NDc0OiB2b2lk
IGRjX3N0cmVhbV9yZWxlYXNlKHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKmRjX3N0cmVhbSk7CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19zdHJlYW1fc3RhdHVzICpkY19zdHJlYW1fZ2V0X3N0YXR1
c19mcm9tX3N0YXRlKAoxNDQ3NDogIHN0cnVjdCBkY19zdGF0ZSAqc3RhdGUsCjE0NDc0OiAgc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IHN0cnVjdCBkY19zdHJlYW1fc3Rh
dHVzICpkY19zdHJlYW1fZ2V0X3N0YXR1cygKMTQ0NzQ6ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRl
ICpkY19zdHJlYW0pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGJvb2wgZGNfc3RyZWFtX3NldF9jdXJzb3JfYXR0cmlidXRlcygKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9h
dHRyaWJ1dGVzICphdHRyaWJ1dGVzKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19zdHJlYW1fc2V0
X2N1cnNvcl9wb3NpdGlvbigKMTQ0NzQ6ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0s
CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9wb3NpdGlvbiAqcG9zaXRpb24pOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfc3RyZWFtX2FkanVzdF92bWluX3ZtYXgoc3RydWN0
IGRjICpkYywKMTQ0NzQ6ICAgICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0
OiAgICAgc3RydWN0IGRjX2NydGNfdGltaW5nX2FkanVzdCAqYWRqdXN0KTsKMTQ0NzQ6IAoxNDQ3
NDogYm9vbCBkY19zdHJlYW1fZ2V0X2NydGNfcG9zaXRpb24oc3RydWN0IGRjICpkYywKMTQ0NzQ6
ICAgICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqKnN0cmVhbSwKMTQ0NzQ6ICAgICAgaW50IG51
bV9zdHJlYW1zLAoxNDQ3NDogICAgICB1bnNpZ25lZCBpbnQgKnZfcG9zLAoxNDQ3NDogICAgICB1
bnNpZ25lZCBpbnQgKm5vbV92X3Bvcyk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfc3RyZWFtX2Nv
bmZpZ3VyZV9jcmMoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgICAgICAgc3RydWN0IGRjX3N0cmVh
bV9zdGF0ZSAqc3RyZWFtLAoxNDQ3NDogICAgICAgICBib29sIGVuYWJsZSwKMTQ0NzQ6ICAgICAg
ICAgYm9vbCBjb250aW51b3VzKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19zdHJlYW1fZ2V0X2Ny
YyhzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgICAgICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAq
c3RyZWFtLAoxNDQ3NDogICAgICAgICAgdWludDMyX3QgKnJfY3IsCjE0NDc0OiAgICAgICAgICB1
aW50MzJfdCAqZ195LAoxNDQ3NDogICAgICAgICAgdWludDMyX3QgKmJfY2IpOwoxNDQ3NDogCjE0
NDc0OiB2b2lkIGRjX3N0cmVhbV9zZXRfc3RhdGljX3NjcmVlbl9wYXJhbXMoc3RydWN0IGRjICpk
YywKMTQ0NzQ6ICAgICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqKnN0cmVhbSwKMTQ0NzQ6ICAg
ICAgaW50IG51bV9zdHJlYW1zLAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3QgZGNfc3RhdGljX3Nj
cmVlbl9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNfc3RyZWFtX3NldF9k
eW5fZXhwYW5zaW9uKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVh
bSwKMTQ0NzQ6ICAgZW51bSBkY19keW5hbWljX2V4cGFuc2lvbiBvcHRpb24pOwoxNDQ3NDogCjE0
NDc0OiB2b2lkIGRjX3N0cmVhbV9zZXRfZGl0aGVyX29wdGlvbihzdHJ1Y3QgZGNfc3RyZWFtX3N0
YXRlICpzdHJlYW0sCjE0NDc0OiAgICAgIGVudW0gZGNfZGl0aGVyX29wdGlvbiBvcHRpb24pOwox
NDQ3NDogCjE0NDc0OiBib29sIGRjX3N0cmVhbV9zZXRfZ2FtdXRfcmVtYXAoc3RydWN0IGRjICpk
YywKMTQ0NzQ6ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0p
OwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX3N0cmVhbV9wcm9ncmFtX2NzY19tYXRyaXgoc3RydWN0
IGRjICpkYywKMTQ0NzQ6ICAgICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CjE0
NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfc3RyZWFtX2dldF9jcnRjX3Bvc2l0aW9uKHN0cnVjdCBkYyAq
ZGMsCjE0NDc0OiAgICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKipzdHJlYW0sCjE0NDc0OiAg
ICAgIGludCBudW1fc3RyZWFtcywKMTQ0NzQ6ICAgICAgdW5zaWduZWQgaW50ICp2X3BvcywKMTQ0
NzQ6ICAgICAgdW5zaWduZWQgaW50ICpub21fdl9wb3MpOwoxNDQ3NDogIyA4NzQgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY192YWxpZGF0aW9uX3NldCB7CjE0NDc0
OiAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtOwoxNDQ3NDogIHN0cnVjdCBkY19wbGFu
ZV9zdGF0ZSAqcGxhbmVfc3RhdGVzWzNdOwoxNDQ3NDogIHVpbnQ4X3QgcGxhbmVfY291bnQ7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX3ZhbGlkYXRlX3NlYW1sZXNzX2Jvb3RfdGlt
aW5nKGNvbnN0IHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICAgY29uc3Qgc3RydWN0IGRjX3Npbmsg
KnNpbmssCjE0NDc0OiAgICAgc3RydWN0IGRjX2NydGNfdGltaW5nICpjcnRjX3RpbWluZyk7CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gZGNfc3RhdHVzIGRjX3ZhbGlkYXRlX3BsYW5lKHN0cnVjdCBkYyAq
ZGMsIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwoxNDQ3NDogCjE0
NDc0OiB2b2lkIGdldF9jbG9ja19yZXF1aXJlbWVudHNfZm9yX3N0YXRlKHN0cnVjdCBkY19zdGF0
ZSAqc3RhdGUsIHN0cnVjdCBBc2ljU3RhdGVFeCAqaW5mbyk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wg
ZGNfc2V0X2dlbmVyaWNfZ3Bpb19mb3Jfc3RlcmVvKGJvb2wgZW5hYmxlLAoxNDQ3NDogICBzdHJ1
Y3QgZ3Bpb19zZXJ2aWNlICpncGlvX3NlcnZpY2UpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfc3RhdHVzIGRjX3ZhbGlkYXRlX2dsb2JhbF9z
dGF0ZSgKMTQ0NzQ6ICAgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0YXRlICpu
ZXdfY3R4LAoxNDQ3NDogICBib29sIGZhc3RfdmFsaWRhdGUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgZGNfcmVzb3VyY2Vfc3RhdGVfY29uc3RydWN0KAoxNDQ3NDogICBjb25zdCBzdHJ1
Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmRzdF9jdHgpOwoxNDQ3NDogCjE0
NDc0OiB2b2lkIGRjX3Jlc291cmNlX3N0YXRlX2NvcHlfY29uc3RydWN0KAoxNDQ3NDogICBjb25z
dCBzdHJ1Y3QgZGNfc3RhdGUgKnNyY19jdHgsCjE0NDc0OiAgIHN0cnVjdCBkY19zdGF0ZSAqZHN0
X2N0eCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNfcmVzb3VyY2Vfc3RhdGVfY29weV9jb25zdHJ1
Y3RfY3VycmVudCgKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0
IGRjX3N0YXRlICpkc3RfY3R4KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19yZXNvdXJjZV9zdGF0
ZV9kZXN0cnVjdChzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogCjE0NDc0OiBib29s
IGRjX3Jlc291cmNlX2lzX2RzY19lbmNvZGluZ19zdXBwb3J0ZWQoY29uc3Qgc3RydWN0IGRjICpk
Yyk7CjE0NDc0OiAjIDkzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2RjLmgiCjE0NDc0OiBib29sIGRjX2NvbW1pdF9zdGF0ZShzdHJ1Y3QgZGMgKmRjLCBzdHJ1
Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19z
dGF0ZSAqZGNfY3JlYXRlX3N0YXRlKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogc3RydWN0IGRjX3N0
YXRlICpkY19jb3B5X3N0YXRlKHN0cnVjdCBkY19zdGF0ZSAqc3JjX2N0eCk7CjE0NDc0OiB2b2lk
IGRjX3JldGFpbl9zdGF0ZShzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogdm9pZCBk
Y19yZWxlYXNlX3N0YXRlKHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRwY2RfY2FwcyB7CjE0NDc0
OiAgdW5pb24gZHBjZF9yZXYgZHBjZF9yZXY7CjE0NDc0OiAgdW5pb24gbWF4X2xhbmVfY291bnQg
bWF4X2xuX2NvdW50OwoxNDQ3NDogIHVuaW9uIG1heF9kb3duX3NwcmVhZCBtYXhfZG93bl9zcHJl
YWQ7CjE0NDc0OiAgdW5pb24gZHByeF9mZWF0dXJlIGRwcnhfZmVhdHVyZTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdWludDhfdCBlZHBfc3VwcG9ydGVkX2xpbmtfcmF0ZXNfY291bnQ7CjE0NDc0
OiAgZW51bSBkY19saW5rX3JhdGUgZWRwX3N1cHBvcnRlZF9saW5rX3JhdGVzWzhdOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5cGUgZG9uZ2xlX3R5cGU7CjE0
NDc0OiAKMTQ0NzQ6ICBib29sIGlzX2JyYW5jaF9kZXY7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiBz
aW5rX2NvdW50IHNpbmtfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19k
b25nbGVfY2FwcyBkb25nbGVfY2FwczsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHNpbmtfZGV2
X2lkOwoxNDQ3NDogIGludDhfdCBzaW5rX2Rldl9pZF9zdHJbNl07CjE0NDc0OiAgaW50OF90IHNp
bmtfaHdfcmV2aXNpb247CjE0NDc0OiAgaW50OF90IHNpbmtfZndfcmV2aXNpb25bMl07CjE0NDc0
OiAKMTQ0NzQ6ICB1aW50MzJfdCBicmFuY2hfZGV2X2lkOwoxNDQ3NDogIGludDhfdCBicmFuY2hf
ZGV2X25hbWVbNl07CjE0NDc0OiAgaW50OF90IGJyYW5jaF9od19yZXZpc2lvbjsKMTQ0NzQ6ICBp
bnQ4X3QgYnJhbmNoX2Z3X3JldmlzaW9uWzJdOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBhbGxvd19p
bnZhbGlkX01TQV90aW1pbmdfcGFyYW07CjE0NDc0OiAgYm9vbCBwYW5lbF9tb2RlX2VkcDsKMTQ0
NzQ6ICBib29sIGRwY2RfZGlzcGxheV9jb250cm9sX2NhcGFibGU7CjE0NDc0OiAgYm9vbCBleHRf
cmVjZWl2ZXJfY2FwX2ZpZWxkX3ByZXNlbnQ7CjE0NDc0OiAgdW5pb24gZHBjZF9mZWNfY2FwYWJp
bGl0eSBmZWNfY2FwOwoxNDQ3NDogIHN0cnVjdCBkcGNkX2RzY19jYXBhYmlsaXRpZXMgZHNjX2Nh
cHM7CjE0NDc0OiAgc3RydWN0IGRjX2x0dHByX2NhcHMgbHR0cHJfY2FwczsKMTQ0NzQ6IAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZGNfbGluay5oIiAxCjE0NDc0OiAjIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfbGluay5oIgoxNDQ3NDogZW51bSBkY19saW5rX2Zl
Y19zdGF0ZSB7CjE0NDc0OiAgZGNfbGlua19mZWNfbm90X3JlYWR5LAoxNDQ3NDogIGRjX2xpbmtf
ZmVjX3JlYWR5LAoxNDQ3NDogIGRjX2xpbmtfZmVjX2VuYWJsZWQKMTQ0NzQ6IH07CjE0NDc0OiBz
dHJ1Y3QgZGNfbGlua19zdGF0dXMgewoxNDQ3NDogIGJvb2wgbGlua19hY3RpdmU7CjE0NDc0OiAg
c3RydWN0IGRwY2RfY2FwcyAqZHBjZF9jYXBzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgbGlua19tc3Rfc3RyZWFtX2FsbG9jYXRpb24gewoxNDQ3NDogCjE0NDc0OiAg
Y29uc3Qgc3RydWN0IHN0cmVhbV9lbmNvZGVyICpzdHJlYW1fZW5jOwoxNDQ3NDogCjE0NDc0OiAg
dWludDhfdCB2Y3BfaWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IHNsb3RfY291bnQ7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2Nh
dGlvbl90YWJsZSB7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgc3RyZWFtX2NvdW50OwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IGxpbmtfbXN0X3N0cmVhbV9hbGxvY2F0aW9uIHN0cmVhbV9hbGxvY2F0aW9u
c1tNQVhfQ09OVFJPTExFUl9OVU1dOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRp
bWVfc3RhbXAgewoxNDQ3NDogIHVpbnQ2NF90IGVkcF9wb3dlcm9mZjsKMTQ0NzQ6ICB1aW50NjRf
dCBlZHBfcG93ZXJvbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsaW5rX3RyYWNl
IHsKMTQ0NzQ6ICBzdHJ1Y3QgdGltZV9zdGFtcCB0aW1lX3N0YW1wOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX2xpbmsgewoxNDQ3NDog
IHN0cnVjdCBkY19zaW5rICpyZW1vdGVfc2lua3NbNF07CjE0NDc0OiAgdW5zaWduZWQgaW50IHNp
bmtfY291bnQ7CjE0NDc0OiAgc3RydWN0IGRjX3NpbmsgKmxvY2FsX3Npbms7CjE0NDc0OiAgdW5z
aWduZWQgaW50IGxpbmtfaW5kZXg7CjE0NDc0OiAgZW51bSBkY19jb25uZWN0aW9uX3R5cGUgdHlw
ZTsKMTQ0NzQ6ICBlbnVtIHNpZ25hbF90eXBlIGNvbm5lY3Rvcl9zaWduYWw7CjE0NDc0OiAgZW51
bSBkY19pcnFfc291cmNlIGlycV9zb3VyY2VfaHBkOwoxNDQ3NDogIGVudW0gZGNfaXJxX3NvdXJj
ZSBpcnFfc291cmNlX2hwZF9yeDsKMTQ0NzQ6ICBib29sIGlzX2hwZF9maWx0ZXJfZGlzYWJsZWQ7
CjE0NDc0OiAgYm9vbCBkcF9zc19vZmY7CjE0NDc0OiAgYm9vbCBsaW5rX3N0YXRlX3ZhbGlkOwox
NDQ3NDogIGJvb2wgYXV4X2FjY2Vzc19kaXNhYmxlZDsKMTQ0NzQ6ICBib29sIHN5bmNfbHRfaW5f
cHJvZ3Jlc3M7CjE0NDc0OiAgYm9vbCBpc19sdHRwcl9tb2RlX3RyYW5zcGFyZW50OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3Mg
cmVwb3J0ZWRfbGlua19jYXA7CjE0NDc0OiAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgdmVyaWZp
ZWRfbGlua19jYXA7CjE0NDc0OiAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgY3VyX2xpbmtfc2V0
dGluZ3M7CjE0NDc0OiAgc3RydWN0IGRjX2xhbmVfc2V0dGluZ3MgY3VyX2xhbmVfc2V0dGluZzsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyBwcmVmZXJyZWRfbGlua19zZXR0aW5nOwox
NDQ3NDogIHN0cnVjdCBkY19saW5rX3RyYWluaW5nX292ZXJyaWRlcyBwcmVmZXJyZWRfdHJhaW5p
bmdfc2V0dGluZ3M7CjE0NDc0OiAgc3RydWN0IGRwX2F1ZGlvX3Rlc3RfZGF0YSBhdWRpb190ZXN0
X2RhdGE7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IGRkY19od19pbnN0OwoxNDQ3NDogCjE0NDc0
OiAgdWludDhfdCBocGRfc3JjOwoxNDQ3NDogCjE0NDc0OiAgdWludDhfdCBsaW5rX2VuY19od19p
bnN0OwoxNDQ3NDogCjE0NDc0OiAgYm9vbCB0ZXN0X3BhdHRlcm5fZW5hYmxlZDsKMTQ0NzQ6ICB1
bmlvbiBjb21wbGlhbmNlX3Rlc3Rfc3RhdGUgY29tcGxpYW5jZV90ZXN0X3N0YXRlOwoxNDQ3NDog
CjE0NDc0OiAgdm9pZCAqcHJpdjsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkZGNfc2VydmljZSAq
ZGRjOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBhdXhfbW9kZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGMgKmRjOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRj
X2NvbnRleHQgKmN0eDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaW5rX2VuY29kZXIgKmxpbmtf
ZW5jOwoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgbGlua19pZDsKMTQ0NzQ6ICB1
bmlvbiBkZGlfY2hhbm5lbF9tYXBwaW5nIGRkaV9jaGFubmVsX21hcHBpbmc7CjE0NDc0OiAgc3Ry
dWN0IGNvbm5lY3Rvcl9kZXZpY2VfdGFnX2luZm8gZGV2aWNlX3RhZzsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZHBjZF9jYXBzIGRwY2RfY2FwczsKMTQ0NzQ6ICB1aW50MzJfdCBkb25nbGVfbWF4X3BpeF9jbGs7
CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgY2hpcF9jYXBzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBk
cGNkX3NpbmtfY291bnQ7CjE0NDc0OiAgZW51bSBlZHBfcmV2aXNpb24gZWRwX3JldmlzaW9uOwox
NDQ3NDogIGJvb2wgcHNyX2ZlYXR1cmVfZW5hYmxlZDsKMTQ0NzQ6ICBib29sIHBzcl9hbGxvd19h
Y3RpdmU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaW5rX2ZsYWdzIHsKMTQ0NzQ6
ICAgYm9vbCBkcF9rZWVwX3JlY2VpdmVyX3Bvd2VyZWQ7CjE0NDc0OiAgIGJvb2wgZHBfc2tpcF9E
SUQyOwoxNDQ3NDogICBib29sIGRwX3NraXBfcmVzZXRfc2VnbWVudDsKMTQ0NzQ6ICB9IHdhX2Zs
YWdzOwoxNDQ3NDogIHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZSBtc3Rf
c3RyZWFtX2FsbG9jX3RhYmxlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2xpbmtfc3RhdHVz
IGxpbmtfc3RhdHVzOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxpbmtfdHJhY2UgbGlua190cmFj
ZTsKMTQ0NzQ6ICBzdHJ1Y3QgZ3BpbyAqaHBkX2dwaW87CjE0NDc0OiAgZW51bSBkY19saW5rX2Zl
Y19zdGF0ZSBmZWNfc3RhdGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBjb25zdCBzdHJ1Y3Qg
ZGNfbGlua19zdGF0dXMgKmRjX2xpbmtfZ2V0X3N0YXR1cyhjb25zdCBzdHJ1Y3QgZGNfbGluayAq
ZGNfbGluayk7CjE0NDc0OiAjIDE1NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RjX2xpbmsuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkY19saW5rICpkY19nZXRfbGlua19h
dF9pbmRleChzdHJ1Y3QgZGMgKmRjLCB1aW50MzJfdCBsaW5rX2luZGV4KQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBkYy0+bGlua3NbbGlua19pbmRleF07CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHN0cnVjdCBkY19saW5rICpnZXRfZWRwX2xpbmsoY29uc3Qgc3RydWN0IGRjICpkYykKMTQ0NzQ6
IHsKMTQ0NzQ6ICBpbnQgaTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZm9yIChpID0gMDsgaSA8
IGRjLT5saW5rX2NvdW50OyBpKyspIHsKMTQ0NzQ6ICAgaWYgKGRjLT5saW5rc1tpXS0+Y29ubmVj
dG9yX3NpZ25hbCA9PSBTSUdOQUxfVFlQRV9FRFApCjE0NDc0OiAgICByZXR1cm4gZGMtPmxpbmtz
W2ldOwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19saW5rX3Nl
dF9iYWNrbGlnaHRfbGV2ZWwoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmRjX2xpbmssCjE0NDc0OiAg
IHVpbnQzMl90IGJhY2tsaWdodF9wd21fdTE2XzE2LAoxNDQ3NDogICB1aW50MzJfdCBmcmFtZV9y
YW1wKTsKMTQ0NzQ6IAoxNDQ3NDogaW50IGRjX2xpbmtfZ2V0X2JhY2tsaWdodF9sZXZlbChjb25z
dCBzdHJ1Y3QgZGNfbGluayAqZGNfbGluayk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfbGlua19z
ZXRfYWJtX2Rpc2FibGUoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmRjX2xpbmspOwoxNDQ3NDogCjE0
NDc0OiBib29sIGRjX2xpbmtfc2V0X3Bzcl9hbGxvd19hY3RpdmUoc3RydWN0IGRjX2xpbmsgKmRj
X2xpbmssIGJvb2wgZW5hYmxlLCBib29sIHdhaXQpOwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX2xp
bmtfZ2V0X3Bzcl9zdGF0ZShjb25zdCBzdHJ1Y3QgZGNfbGluayAqZGNfbGluaywgdWludDMyX3Qg
KnBzcl9zdGF0ZSk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfbGlua19zZXR1cF9wc3Ioc3RydWN0
IGRjX2xpbmsgKmRjX2xpbmssCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUg
KnN0cmVhbSwgc3RydWN0IHBzcl9jb25maWcgKnBzcl9jb25maWcsCjE0NDc0OiAgIHN0cnVjdCBw
c3JfY29udGV4dCAqcHNyX2NvbnRleHQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2RldGVjdF9yZWFzb24gewox
NDQ3NDogIERFVEVDVF9SRUFTT05fQk9PVCwKMTQ0NzQ6ICBERVRFQ1RfUkVBU09OX0hQRCwKMTQ0
NzQ6ICBERVRFQ1RfUkVBU09OX0hQRFJYLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBk
Y19saW5rX2RldGVjdChzdHJ1Y3QgZGNfbGluayAqZGNfbGluaywgZW51bSBkY19kZXRlY3RfcmVh
c29uIHJlYXNvbik7CjE0NDc0OiBib29sIGRjX2xpbmtfZ2V0X2hwZF9zdGF0ZShzdHJ1Y3QgZGNf
bGluayAqZGNfbGluayk7CjE0NDc0OiBlbnVtIGRjX3N0YXR1cyBkY19saW5rX2FsbG9jYXRlX21z
dF9wYXlsb2FkKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogZW51bSBkY19zdGF0
dXMgZGNfbGlua19yZWFsbG9jYXRlX21zdF9wYXlsb2FkKHN0cnVjdCBkY19saW5rICpsaW5rKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogYm9vbCBkY19saW5rX2hhbmRsZV9ocGRfcnhfaXJxKHN0cnVjdCBkY19saW5rICpkY19s
aW5rLAoxNDQ3NDogICB1bmlvbiBocGRfaXJxX2RhdGEgKmhwZF9pcnFfZHBjZF9kYXRhLCBib29s
ICpvdXRfbGlua19sb3NzKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX3NpbmtfaW5pdF9kYXRh
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfc2luayAqZGNfbGlua19hZGRfcmVtb3RlX3Npbmso
CjE0NDc0OiAgIHN0cnVjdCBkY19saW5rICpkY19saW5rLAoxNDQ3NDogICBjb25zdCB1aW50OF90
ICplZGlkLAoxNDQ3NDogICBpbnQgbGVuLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc2lua19pbml0X2Rh
dGEgKmluaXRfZGF0YSk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNfbGlua19yZW1vdmVfcmVtb3Rl
X3NpbmsoCjE0NDc0OiAgc3RydWN0IGRjX2xpbmsgKmxpbmssCjE0NDc0OiAgc3RydWN0IGRjX3Np
bmsgKnNpbmspOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19saW5rX2Rw
X3NldF9kcml2ZV9zZXR0aW5ncygKMTQ0NzQ6ICBzdHJ1Y3QgZGNfbGluayAqbGluaywKMTQ0NzQ6
ICBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqbHRfc2V0dGluZ3MpOwoxNDQ3NDogCjE0
NDc0OiBib29sIGRjX2xpbmtfZHBfcGVyZm9ybV9saW5rX3RyYWluaW5nX3NraXBfYXV4KAoxNDQ3
NDogIHN0cnVjdCBkY19saW5rICpsaW5rLAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY19saW5rX3Nl
dHRpbmdzICpsaW5rX3NldHRpbmcpOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGxpbmtfdHJhaW5pbmdf
cmVzdWx0IGRjX2xpbmtfZHBfcGVyZm9ybV9saW5rX3RyYWluaW5nKAoxNDQ3NDogIHN0cnVjdCBk
Y19saW5rICpsaW5rLAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5r
X3NldHRpbmcsCjE0NDc0OiAgYm9vbCBza2lwX3ZpZGVvX3BhdHRlcm4pOwoxNDQ3NDogCjE0NDc0
OiBib29sIGRjX2xpbmtfZHBfc3luY19sdF9iZWdpbihzdHJ1Y3QgZGNfbGluayAqbGluayk7CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gbGlua190cmFpbmluZ19yZXN1bHQgZGNfbGlua19kcF9zeW5jX2x0
X2F0dGVtcHQoCjE0NDc0OiAgc3RydWN0IGRjX2xpbmsgKmxpbmssCjE0NDc0OiAgc3RydWN0IGRj
X2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywKMTQ0NzQ6ICBzdHJ1Y3QgZGNfbGlua190cmFp
bmluZ19vdmVycmlkZXMgKmx0X3NldHRpbmdzKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19saW5r
X2RwX3N5bmNfbHRfZW5kKHN0cnVjdCBkY19saW5rICpsaW5rLCBib29sIGxpbmtfZG93bik7CjE0
NDc0OiAKMTQ0NzQ6IHZvaWQgZGNfbGlua19kcF9lbmFibGVfaHBkKGNvbnN0IHN0cnVjdCBkY19s
aW5rICpsaW5rKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19saW5rX2RwX2Rpc2FibGVfaHBkKGNv
bnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19saW5rX2Rw
X3NldF90ZXN0X3BhdHRlcm4oCjE0NDc0OiAgc3RydWN0IGRjX2xpbmsgKmxpbmssCjE0NDc0OiAg
ZW51bSBkcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuLAoxNDQ3NDogIGVudW0gZHBfdGVzdF9w
YXR0ZXJuX2NvbG9yX3NwYWNlIHRlc3RfcGF0dGVybl9jb2xvcl9zcGFjZSwKMTQ0NzQ6ICBjb25z
dCBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqcF9saW5rX3NldHRpbmdzLAoxNDQ3NDog
IGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBfY3VzdG9tX3BhdHRlcm4sCjE0NDc0OiAgdW5zaWduZWQg
aW50IGN1c3RfcGF0dGVybl9zaXplKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19saW5rX2VuYWJs
ZV9ocGRfZmlsdGVyKHN0cnVjdCBkY19saW5rICpsaW5rLCBib29sIGVuYWJsZSk7CjE0NDc0OiAK
MTQ0NzQ6IGJvb2wgZGNfbGlua19pc19kcF9zaW5rX3ByZXNlbnQoc3RydWN0IGRjX2xpbmsgKmxp
bmspOwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX2xpbmtfZGV0ZWN0X3Npbmsoc3RydWN0IGRjX2xp
bmsgKmxpbmssIGVudW0gZGNfY29ubmVjdGlvbl90eXBlICp0eXBlKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19saW5rX3NldF9kcml2ZV9zZXR0aW5ncyhz
dHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgIHN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdzICps
dF9zZXR0aW5ncywKMTQ0NzQ6ICAgICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CjE0NDc0
OiB2b2lkIGRjX2xpbmtfcGVyZm9ybV9saW5rX3RyYWluaW5nKHN0cnVjdCBkYyAqZGMsCjE0NDc0
OiAgICAgICAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywKMTQ0NzQ6ICAg
ICAgICBib29sIHNraXBfdmlkZW9fcGF0dGVybik7CjE0NDc0OiB2b2lkIGRjX2xpbmtfc2V0X3By
ZWZlcnJlZF9saW5rX3NldHRpbmdzKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICAgICBzdHJ1Y3Qg
ZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5nLAoxNDQ3NDogICAgICAgc3RydWN0IGRjX2xp
bmsgKmxpbmspOwoxNDQ3NDogdm9pZCBkY19saW5rX3NldF9wcmVmZXJyZWRfdHJhaW5pbmdfc2V0
dGluZ3Moc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgICAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3Mg
Kmxpbmtfc2V0dGluZywKMTQ0NzQ6ICAgICAgc3RydWN0IGRjX2xpbmtfdHJhaW5pbmdfb3ZlcnJp
ZGVzICpsdF9vdmVycmlkZXMsCjE0NDc0OiAgICAgIHN0cnVjdCBkY19saW5rICpsaW5rLAoxNDQ3
NDogICAgICBib29sIHNraXBfaW1tZWRpYXRlX3JldHJhaW4pOwoxNDQ3NDogdm9pZCBkY19saW5r
X2VuYWJsZV9ocGQoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspOwoxNDQ3NDogdm9pZCBkY19s
aW5rX2Rpc2FibGVfaHBkKGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsKMTQ0NzQ6IHZvaWQg
ZGNfbGlua19zZXRfdGVzdF9wYXR0ZXJuKHN0cnVjdCBkY19saW5rICpsaW5rLAoxNDQ3NDogICAg
ZW51bSBkcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuLAoxNDQ3NDogICAgZW51bSBkcF90ZXN0
X3BhdHRlcm5fY29sb3Jfc3BhY2UgdGVzdF9wYXR0ZXJuX2NvbG9yX3NwYWNlLAoxNDQ3NDogICAg
Y29uc3Qgc3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3MgKnBfbGlua19zZXR0aW5ncywKMTQ0
NzQ6ICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBfY3VzdG9tX3BhdHRlcm4sCjE0NDc0OiAgICB1
bnNpZ25lZCBpbnQgY3VzdF9wYXR0ZXJuX3NpemUpOwoxNDQ3NDogdWludDMyX3QgZGNfbGlua19i
YW5kd2lkdGhfa2JwcygKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluaywKMTQ0NzQ6
ICBjb25zdCBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5nKTsKMTQ0NzQ6IAox
NDQ3NDogY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmRjX2xpbmtfZ2V0X2xpbmtfY2Fw
KAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgZGNfbGlua19vdmVyd3JpdGVfZXh0ZW5kZWRfcmVjZWl2ZXJfY2FwKAoxNDQ3NDogICBzdHJ1
Y3QgZGNfbGluayAqbGluayk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfc3VibWl0X2kyYygKMTQ0
NzQ6ICAgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgdWludDMyX3QgbGlua19pbmRleCwKMTQ0NzQ6
ICAgc3RydWN0IGkyY19jb21tYW5kICpjbWQpOwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX3N1Ym1p
dF9pMmNfb2VtKAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgaTJjX2Nv
bW1hbmQgKmNtZCk7CjE0NDc0OiAKMTQ0NzQ6IHVpbnQzMl90IGRjX2JhbmR3aWR0aF9pbl9rYnBz
X2Zyb21fdGltaW5nKAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqdGltaW5n
KTsKMTQ0NzQ6ICMgOTgzICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZGMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY19jb250YWluZXJfaWQgewoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgY2hhciBn
dWlkWzE2XTsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBwb3J0SWRbMl07CjE0NDc0OiAK
MTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBtYW51ZmFjdHVyZXJOYW1lOwoxNDQ3NDogCjE0NDc0OiAg
dW5zaWduZWQgc2hvcnQgcHJvZHVjdENvZGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkY19zaW5rX2RzY19jYXBzIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9v
bCBpc192aXJ0dWFsX2RwY2RfZHNjOwoxNDQ3NDogIHN0cnVjdCBkc2NfZGVjX2RwY2RfY2FwcyBk
c2NfZGVjX2NhcHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZGNfc2luayB7CjE0NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaW5rX3NpZ25h
bDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfZWRpZCBkY19lZGlkOwoxNDQ3NDogIHN0cnVjdCBkY19lZGlk
X2NhcHMgZWRpZF9jYXBzOwoxNDQ3NDogIHN0cnVjdCBkY19jb250YWluZXJfaWQgKmRjX2NvbnRh
aW5lcl9pZDsKMTQ0NzQ6ICB1aW50MzJfdCBkb25nbGVfbWF4X3BpeF9jbGs7CjE0NDc0OiAgdm9p
ZCAqcHJpdjsKMTQ0NzQ6ICBzdHJ1Y3Qgc3RlcmVvXzNkX2ZlYXR1cmVzIGZlYXR1cmVzXzNkW1RJ
TUlOR18zRF9GT1JNQVRfTUFYXTsKMTQ0NzQ6ICBib29sIGNvbnZlcnRlcl9kaXNhYmxlX2F1ZGlv
OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX3NpbmtfZHNjX2NhcHMgc2lua19kc2NfY2FwczsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2xpbmsgKmxpbms7CjE0NDc0OiAgc3Ry
dWN0IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHNpbmtfaWQ7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBrcmVm
IHJlZmNvdW50OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19zaW5rX3JldGFpbihz
dHJ1Y3QgZGNfc2luayAqc2luayk7CjE0NDc0OiB2b2lkIGRjX3NpbmtfcmVsZWFzZShzdHJ1Y3Qg
ZGNfc2luayAqc2luayk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19zaW5rX2luaXRfZGF0YSB7
CjE0NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaW5rX3NpZ25hbDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNf
bGluayAqbGluazsKMTQ0NzQ6ICB1aW50MzJfdCBkb25nbGVfbWF4X3BpeF9jbGs7CjE0NDc0OiAg
Ym9vbCBjb252ZXJ0ZXJfZGlzYWJsZV9hdWRpbzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBkY19zaW5rICpkY19zaW5rX2NyZWF0ZShjb25zdCBzdHJ1Y3QgZGNfc2lua19pbml0X2Rh
dGEgKmluaXRfcGFyYW1zKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY3Vyc29y
IHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyBhZGRyZXNzOwoxNDQ3NDogIHN0cnVj
dCBkY19jdXJzb3JfYXR0cmlidXRlcyBhdHRyaWJ1dGVzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2lycV9zb3VyY2UgZGNf
aW50ZXJydXB0X3RvX2lycV9zb3VyY2UoCjE0NDc0OiAgIHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAg
IHVpbnQzMl90IHNyY19pZCwKMTQ0NzQ6ICAgdWludDMyX3QgZXh0X2lkKTsKMTQ0NzQ6IGJvb2wg
ZGNfaW50ZXJydXB0X3NldChzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRjX2lycV9zb3VyY2Ugc3JjLCBi
b29sIGVuYWJsZSk7CjE0NDc0OiB2b2lkIGRjX2ludGVycnVwdF9hY2soc3RydWN0IGRjICpkYywg
ZW51bSBkY19pcnFfc291cmNlIHNyYyk7CjE0NDc0OiBlbnVtIGRjX2lycV9zb3VyY2UgZGNfZ2V0
X2hwZF9pcnFfc291cmNlX2F0X2luZGV4KAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLCB1aW50MzJf
dCBsaW5rX2luZGV4KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiB2b2lkIGRjX3NldF9wb3dlcl9zdGF0ZSgKMTQ0NzQ6ICAgc3RydWN0IGRjICpkYywKMTQ0
NzQ6ICAgZW51bSBkY19hY3BpX2NtX3Bvd2VyX3N0YXRlIHBvd2VyX3N0YXRlKTsKMTQ0NzQ6IHZv
aWQgZGNfcmVzdW1lKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogdW5zaWduZWQgaW50IGRjX2dldF9j
dXJyZW50X2JhY2tsaWdodF9wd20oc3RydWN0IGRjICpkYyk7CjE0NDc0OiB1bnNpZ25lZCBpbnQg
ZGNfZ2V0X3RhcmdldF9iYWNrbGlnaHRfcHdtKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogCjE0NDc0
OiBib29sIGRjX2lzX2RtY3VfaW5pdGlhbGl6ZWQoc3RydWN0IGRjICpkYyk7CjE0NDc0OiBib29s
IGRjX2lzX2h3X2luaXRpYWxpemVkKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogCjE0NDc0OiBlbnVt
IGRjX3N0YXR1cyBkY19zZXRfY2xvY2soc3RydWN0IGRjICpkYywgZW51bSBkY19jbG9ja190eXBl
IGNsb2NrX3R5cGUsIHVpbnQzMl90IGNsa19raHosIHVpbnQzMl90IHN0ZXBwaW5nKTsKMTQ0NzQ6
IHZvaWQgZGNfZ2V0X2Nsb2NrKHN0cnVjdCBkYyAqZGMsIGVudW0gZGNfY2xvY2tfdHlwZSBjbG9j
a190eXBlLCBzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvZGNfZHNjLmgiIDEKMTQ0NzQ6ICMgMzQgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9kY19kc2MuaCIKMTQ0NzQ6IHN0cnVjdCBkY19kc2NfYndfcmFu
Z2UgewoxNDQ3NDogIHVpbnQzMl90IG1pbl9rYnBzOwoxNDQ3NDogIHVpbnQzMl90IG1pbl90YXJn
ZXRfYnBwX3gxNjsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfa2JwczsKMTQ0NzQ6ICB1aW50MzJfdCBt
YXhfdGFyZ2V0X2JwcF94MTY7CjE0NDc0OiAgdWludDMyX3Qgc3RyZWFtX2ticHM7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGlzcGxheV9zdHJlYW1fY29tcHJlc3NvciB7CjE0NDc0
OiAgY29uc3Qgc3RydWN0IGRzY19mdW5jcyAqZnVuY3M7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eDsKMTQ0NzQ6ICBpbnQgaW5zdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBkY19kc2NfcG9saWN5IHsKMTQ0NzQ6ICBib29sIHVzZV9taW5fc2xpY2VzX2g7CjE0NDc0OiAg
aW50IG1heF9zbGljZXNfaDsKMTQ0NzQ6ICBpbnQgbWluX3NsaWNlX2hlaWdodDsKMTQ0NzQ6ICB1
aW50MzJfdCBtYXhfdGFyZ2V0X2JwcDsKMTQ0NzQ6ICB1aW50MzJfdCBtaW5fdGFyZ2V0X2JwcDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfZHNjX3BhcnNlX2RzY19kcGNkKGNvbnN0
IHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgIGNvbnN0IHVpbnQ4X3QgKmRwY2RfZHNjX2Jhc2ljX2Rh
dGEsCjE0NDc0OiAgIGNvbnN0IHVpbnQ4X3QgKmRwY2RfZHNjX2V4dF9kYXRhLAoxNDQ3NDogICBz
dHJ1Y3QgZHNjX2RlY19kcGNkX2NhcHMgKmRzY19zaW5rX2NhcHMpOwoxNDQ3NDogCjE0NDc0OiBi
b29sIGRjX2RzY19jb21wdXRlX2JhbmR3aWR0aF9yYW5nZSgKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0
IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywKMTQ0NzQ6ICAgY29uc3QgdWludDMyX3Qg
ZHNjX21pbl9zbGljZV9oZWlnaHRfb3ZlcnJpZGUsCjE0NDc0OiAgIGNvbnN0IHVpbnQzMl90IG1p
bl9icHAsCjE0NDc0OiAgIGNvbnN0IHVpbnQzMl90IG1heF9icHAsCjE0NDc0OiAgIGNvbnN0IHN0
cnVjdCBkc2NfZGVjX2RwY2RfY2FwcyAqZHNjX3NpbmtfY2FwcywKMTQ0NzQ6ICAgY29uc3Qgc3Ry
dWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcsCjE0NDc0OiAgIHN0cnVjdCBkY19kc2NfYndfcmFu
Z2UgKnJhbmdlKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19kc2NfY29tcHV0ZV9jb25maWcoCjE0
NDc0OiAgIGNvbnN0IHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsCjE0NDc0
OiAgIGNvbnN0IHN0cnVjdCBkc2NfZGVjX2RwY2RfY2FwcyAqZHNjX3NpbmtfY2FwcywKMTQ0NzQ6
ICAgY29uc3QgdWludDMyX3QgZHNjX21pbl9zbGljZV9oZWlnaHRfb3ZlcnJpZGUsCjE0NDc0OiAg
IHVpbnQzMl90IHRhcmdldF9iYW5kd2lkdGhfa2JwcywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRj
X2NydGNfdGltaW5nICp0aW1pbmcsCjE0NDc0OiAgIHN0cnVjdCBkY19kc2NfY29uZmlnICpkc2Nf
Y2ZnKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19kc2NfZ2V0X3BvbGljeV9mb3JfdGltaW5nKGNv
bnN0IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqdGltaW5nLAoxNDQ3NDogICBzdHJ1Y3QgZGNfZHNj
X3BvbGljeSAqcG9saWN5KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19kc2NfcG9saWN5X3NldF9t
YXhfdGFyZ2V0X2JwcF9saW1pdCh1aW50MzJfdCBsaW1pdCk7CjE0NDc0OiAjIDEwODYgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAjIDMw
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19t
Z3IuaCIgMgoxNDQ3NDogIyA1MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2luYy9ody9jbGtfbWdyLmgiCjE0NDc0OiBzdHJ1Y3QgY2xrX2xpbWl0X3RhYmxlX2Vu
dHJ5IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdm9sdGFnZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
ZGNmY2xrX21oejsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmNsa19taHo7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IG1lbWNsa19taHo7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNvY2Nsa19taHo7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbGtfbGltaXRfdGFibGUgewoxNDQ3
NDogIHN0cnVjdCBjbGtfbGltaXRfdGFibGVfZW50cnkgZW50cmllc1s4XTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgbnVtX2VudHJpZXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgd21f
cmFuZ2VfdGFibGVfZW50cnkgewoxNDQ3NDogIHVuc2lnbmVkIGludCB3bV9pbnN0OwoxNDQ3NDog
IHVuc2lnbmVkIGludCB3bV90eXBlOwoxNDQ3NDogIGRvdWJsZSBwc3RhdGVfbGF0ZW5jeV91czsK
MTQ0NzQ6ICBkb3VibGUgc3JfZXhpdF90aW1lX3VzOwoxNDQ3NDogIGRvdWJsZSBzcl9lbnRlcl9w
bHVzX2V4aXRfdGltZV91czsKMTQ0NzQ6ICBib29sIHZhbGlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY2xrX2xvZ19pbmZvIHsKMTQ0NzQ6ICBib29sIGVuYWJsZWQ7
CjE0NDc0OiAgY2hhciAqcEJ1ZjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgYnVmU2l6ZTsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgKnN1bV9jaGFyc19wcmludGVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnNfYW5kX2J5cGFzcyB7CjE0NDc0OiAgdWludDMy
X3QgZGNmY2xrOwoxNDQ3NDogIHVpbnQzMl90IGRjZl9kZWVwX3NsZWVwX2RpdmlkZXI7CjE0NDc0
OiAgdWludDMyX3QgZGNmX2RlZXBfc2xlZXBfYWxsb3c7CjE0NDc0OiAgdWludDMyX3QgZHByZWZj
bGs7CjE0NDc0OiAgdWludDMyX3QgZGlzcGNsazsKMTQ0NzQ6ICB1aW50MzJfdCBkcHBjbGs7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBkcHBjbGtfYnlwYXNzOwoxNDQ3NDogIHVpbnQzMl90IGRj
ZmNsa19ieXBhc3M7CjE0NDc0OiAgdWludDMyX3QgZHByZWZjbGtfYnlwYXNzOwoxNDQ3NDogIHVp
bnQzMl90IGRpc3BjbGtfYnlwYXNzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJ2
MV9jbGtfaW50ZXJuYWwgewoxNDQ3NDogIHVpbnQzMl90IENMSzBfQ0xLOF9DVVJSRU5UX0NOVDsK
MTQ0NzQ6ICB1aW50MzJfdCBDTEswX0NMSzhfRFNfQ05UTDsKMTQ0NzQ6ICB1aW50MzJfdCBDTEsw
X0NMSzhfQUxMT1dfRFM7CjE0NDc0OiAgdWludDMyX3QgQ0xLMF9DTEsxMF9DVVJSRU5UX0NOVDsK
MTQ0NzQ6ICB1aW50MzJfdCBDTEswX0NMSzExX0NVUlJFTlRfQ05UOwoxNDQ3NDogCjE0NDc0OiAg
dWludDMyX3QgQ0xLMF9DTEs4X0JZUEFTU19DTlRMOwoxNDQ3NDogIHVpbnQzMl90IENMSzBfQ0xL
MTBfQllQQVNTX0NOVEw7CjE0NDc0OiAgdWludDMyX3QgQ0xLMF9DTEsxMV9CWVBBU1NfQ05UTDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBybl9jbGtfaW50ZXJuYWwgewoxNDQ3NDog
IHVpbnQzMl90IENMSzFfQ0xLMF9DVVJSRU5UX0NOVDsKMTQ0NzQ6ICB1aW50MzJfdCBDTEsxX0NM
SzFfQ1VSUkVOVF9DTlQ7CjE0NDc0OiAgdWludDMyX3QgQ0xLMV9DTEsyX0NVUlJFTlRfQ05UOwox
NDQ3NDogIHVpbnQzMl90IENMSzFfQ0xLM19DVVJSRU5UX0NOVDsKMTQ0NzQ6ICB1aW50MzJfdCBD
TEsxX0NMSzNfRFNfQ05UTDsKMTQ0NzQ6ICB1aW50MzJfdCBDTEsxX0NMSzNfQUxMT1dfRFM7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBDTEsxX0NMSzBfQllQQVNTX0NOVEw7CjE0NDc0OiAgdWlu
dDMyX3QgQ0xLMV9DTEsxX0JZUEFTU19DTlRMOwoxNDQ3NDogIHVpbnQzMl90IENMSzFfQ0xLMl9C
WVBBU1NfQ05UTDsKMTQ0NzQ6ICB1aW50MzJfdCBDTEsxX0NMSzNfQllQQVNTX0NOVEw7CjE0NDc0
OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19zdGF0ZV9yZWdp
c3RlcnMgewoxNDQ3NDogICB1aW50MzJfdCBDTEswX0NMSzhfQ1VSUkVOVF9DTlQ7CjE0NDc0OiAg
IHVpbnQzMl90IENMSzBfQ0xLOF9EU19DTlRMOwoxNDQ3NDogICB1aW50MzJfdCBDTEswX0NMSzhf
QUxMT1dfRFM7CjE0NDc0OiAgIHVpbnQzMl90IENMSzBfQ0xLMTBfQ1VSUkVOVF9DTlQ7CjE0NDc0
OiAgIHVpbnQzMl90IENMSzBfQ0xLMTFfQ1VSUkVOVF9DTlQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbGtfYnlwYXNzIHsKMTQ0NzQ6ICB1aW50MzJfdCBkY2ZjbGtf
YnlwYXNzOwoxNDQ3NDogIHVpbnQzMl90IGRpc3BjbGtfcHlwYXNzOwoxNDQ3NDogIHVpbnQzMl90
IGRwcmVmY2xrX2J5cGFzczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgd21fdGFibGUgewoxNDQ3NDogIHN0cnVj
dCB3bV9yYW5nZV90YWJsZV9lbnRyeSBlbnRyaWVzWzRdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGNsa19id19wYXJhbXMgewoxNDQ3NDogIHVuc2lnbmVkIGludCB2cmFtX3R5cGU7
CjE0NDc0OiAgdW5zaWduZWQgaW50IG51bV9jaGFubmVsczsKMTQ0NzQ6ICBzdHJ1Y3QgY2xrX2xp
bWl0X3RhYmxlIGNsa190YWJsZTsKMTQ0NzQ6ICBzdHJ1Y3Qgd21fdGFibGUgd21fdGFibGU7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbGtfc3RhdGVzIHsKMTQ0NzQ6
ICB1aW50MzJfdCBkcHJlZmNsa19raHo7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
Y2xrX21ncl9mdW5jcyB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqdXBkYXRlX2Nsb2Nrcykoc3RydWN0IGNsa19t
Z3IgKmNsa19tZ3IsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCjE0NDc0OiAg
ICBib29sIHNhZmVfdG9fbG93ZXIpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqZ2V0X2RwX3JlZl9j
bGtfZnJlcXVlbmN5KShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncik7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqaW5pdF9jbG9ja3MpKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyKTsKMTQ0NzQ6IAoxNDQ3
NDogIHZvaWQgKCplbmFibGVfcG1lX3dhKSAoc3RydWN0IGNsa19tZ3IgKmNsa19tZ3IpOwoxNDQ3
NDogIHZvaWQgKCpnZXRfY2xvY2spKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyLAoxNDQ3NDogICAg
c3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAoxNDQ3NDogICAgZW51bSBkY19jbG9ja190eXBlIGNs
b2NrX3R5cGUsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpOwox
NDQ3NDogCjE0NDc0OiAgYm9vbCAoKmFyZV9jbG9ja19zdGF0ZXNfZXF1YWwpIChzdHJ1Y3QgZGNf
Y2xvY2tzICphLAoxNDQ3NDogICAgc3RydWN0IGRjX2Nsb2NrcyAqYik7CjE0NDc0OiAgdm9pZCAo
Km5vdGlmeV93bV9yYW5nZXMpKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyKTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbGtfbWdyIHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAq
Y3R4OwoxNDQ3NDogIHN0cnVjdCBjbGtfbWdyX2Z1bmNzICpmdW5jczsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfY2xvY2tzIGNsa3M7CjE0NDc0OiAgYm9vbCBwc3JfYWxsb3dfYWN0aXZlX2NhY2hlOwoxNDQ3
NDogIGludCBkcHJlZmNsa19raHo7CjE0NDc0OiAgaW50IGRlbnRpc3RfdmNvX2ZyZXFfa2h6Owox
NDQ3NDogIHN0cnVjdCBjbGtfc3RhdGVfcmVnaXN0ZXJzX2FuZF9ieXBhc3MgYm9vdF9zbmFwc2hv
dDsKMTQ0NzQ6ICBzdHJ1Y3QgY2xrX2J3X3BhcmFtcyAqYndfcGFyYW1zOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNjZzsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNs
a19tZ3IgKmRjX2Nsa19tZ3JfY3JlYXRlKHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHN0cnVjdCBw
cF9zbXVfZnVuY3MgKnBwX3NtdSwgc3RydWN0IGRjY2cgKmRjY2cpOwoxNDQ3NDogCjE0NDc0OiB2
b2lkIGRjX2Rlc3Ryb3lfY2xrX21ncihzdHJ1Y3QgY2xrX21nciAqY2xrX21ncik7CjE0NDc0OiAK
MTQ0NzQ6IHZvaWQgY2xrX21ncl9leGl0X29wdGltaXplZF9wd3Jfc3RhdGUoY29uc3Qgc3RydWN0
IGRjICpkYywgc3RydWN0IGNsa19tZ3IgKmNsa19tZ3IpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGNs
a19tZ3Jfb3B0aW1pemVfcHdyX3N0YXRlKGNvbnN0IHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBjbGtf
bWdyICpjbGtfbWdyKTsKMTQ0NzQ6ICMgMzAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5hbC5oIiAyCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvcmVzb3VyY2UuaCIgMQoxNDQ3NDog
IyAyOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9yZXNv
dXJjZS5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMQoxNDQ3NDogIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvZGNlX2NhbGNzLmgi
IDEKMTQ0NzQ6ICMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9pbmMvZGNlX2NhbGNzLmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9pbmMvYndfZml4ZWQuaCIgMQoxNDQ3NDogIyAzMiAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9id19maXhlZC5oIgoxNDQ3NDog
c3RydWN0IGJ3X2ZpeGVkIHsKMTQ0NzQ6ICBpbnQ2NF90IHZhbHVlOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IGJ3X2ZpeGVkIGJ3X21pbjIoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsCjE0NDc0
OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzIpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIChhcmcxLnZhbHVlIDw9IGFyZzIudmFsdWUpID8gYXJnMSA6IGFyZzI7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHN0cnVjdCBid19maXhlZCBid19tYXgyKGNvbnN0IHN0cnVjdCBid19m
aXhlZCBhcmcxLAoxNDQ3NDogICAgICAgICAgIGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiAoYXJnMi52YWx1ZSA8PSBhcmcxLnZhbHVlKSA/IGFyZzEg
OiBhcmcyOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgYndfZml4ZWQgYndfbWluMyhz
dHJ1Y3QgYndfZml4ZWQgdjEsCjE0NDc0OiAgICAgICAgICAgc3RydWN0IGJ3X2ZpeGVkIHYyLAox
NDQ3NDogICAgICAgICAgIHN0cnVjdCBid19maXhlZCB2MykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYndfbWluMihid19taW4yKHYxLCB2MiksIHYzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IGJ3X2ZpeGVkIGJ3X21heDMoc3RydWN0IGJ3X2ZpeGVkIHYxLAoxNDQ3NDogICAgICAg
ICAgIHN0cnVjdCBid19maXhlZCB2MiwKMTQ0NzQ6ICAgICAgICAgICBzdHJ1Y3QgYndfZml4ZWQg
djMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJ3X21heDIoYndfbWF4Mih2MSwgdjIpLCB2Myk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBid19maXhlZCBid19pbnRfdG9fZml4ZWRf
bm9uY29uc3QoaW50NjRfdCB2YWx1ZSk7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgYndfZml4ZWQgYndfaW50X3Rv
X2ZpeGVkKGludDY0X3QgdmFsdWUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25z
dGFudF9wKHZhbHVlKSkgewoxNDQ3NDogICBzdHJ1Y3QgYndfZml4ZWQgcmVzOwoxNDQ3NDogICBk
byB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzczKHZvaWQpIF9fYXR0cmlidXRl
X18oKF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAidmFsdWUgPiBCV19GSVhFRF9N
QVhfSTMyIHx8IHZhbHVlIDwgQldfRklYRURfTUlOX0kzMiIpKSk7IGlmICghKCEodmFsdWUgPiAo
aW50NjRfdCkoKDFVTEwgPDwgKDYzIC0gMjQpKSAtIDEpIHx8IHZhbHVlIDwgKGludDY0X3QpKC0o
MUxMIDw8ICg2MyAtIDI0KSkpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzczKCk7IH0gd2hpbGUg
KDApOwoxNDQ3NDogICByZXMudmFsdWUgPSB2YWx1ZSA8PCAyNDsKMTQ0NzQ6ICAgcmV0dXJuIHJl
czsKMTQ0NzQ6ICB9IGVsc2UKMTQ0NzQ6ICAgcmV0dXJuIGJ3X2ludF90b19maXhlZF9ub25jb25z
dCh2YWx1ZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludDMyX3QgYndfZml4ZWRfdG9faW50
KHN0cnVjdCBid19maXhlZCB2YWx1ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh2YWx1ZS52
YWx1ZSkgPj4gMjQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYndfZml4ZWQgYndf
ZnJjX3RvX2ZpeGVkKGludDY0X3QgbnVtLCBpbnQ2NF90IGRlbnVtKTsKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IGJ3X2ZpeGVkIGZpeGVkMzFfMzJfdG9fYndfZml4ZWQoaW50NjRfdCByYXcpCjE0NDc0
OiB7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHJlc3VsdCA9IHsgMCB9OwoxNDQ3NDogCjE0NDc0
OiAgaWYgKHJhdyA8IDApIHsKMTQ0NzQ6ICAgcmF3ID0gLXJhdzsKMTQ0NzQ6ICAgcmVzdWx0LnZh
bHVlID0gLShyYXcgPj4gKDMyIC0gMjQpKTsKMTQ0NzQ6ICB9IGVsc2UgewoxNDQ3NDogICByZXN1
bHQudmFsdWUgPSByYXcgPj4gKDMyIC0gMjQpOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogIHJl
dHVybiByZXN1bHQ7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBid19maXhlZCBid19h
ZGQoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsCjE0NDc0OiAgICAgICAgICBjb25zdCBzdHJ1
Y3QgYndfZml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcmVzOwox
NDQ3NDogCjE0NDc0OiAgcmVzLnZhbHVlID0gYXJnMS52YWx1ZSArIGFyZzIudmFsdWU7CjE0NDc0
OiAKMTQ0NzQ6ICByZXR1cm4gcmVzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgYndf
Zml4ZWQgYndfc3ViKGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25zdCBzdHJ1Y3QgYndf
Zml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcmVzOwoxNDQ3NDog
CjE0NDc0OiAgcmVzLnZhbHVlID0gYXJnMS52YWx1ZSAtIGFyZzIudmFsdWU7CjE0NDc0OiAKMTQ0
NzQ6ICByZXR1cm4gcmVzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYndfZml4ZWQg
YndfbXVsKGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQg
YXJnMik7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzdHJ1Y3QgYndfZml4ZWQgYndfZGl2KGNvbnN0IHN0cnVjdCBid19maXhl
ZCBhcmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYndfZnJjX3RvX2ZpeGVkKGFyZzEudmFsdWUsIGFyZzIudmFsdWUpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3QgYndfZml4ZWQgYndfbW9kKGNvbnN0IHN0cnVjdCBid19maXhlZCBh
cmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfZml4ZWQgcmVzOwoxNDQ3NDogIGRpdjY0X3U2NF9yZW0oYXJnMS52YWx1ZSwgYXJnMi52YWx1
ZSwgKHVpbnQ2NF90ICopJnJlcy52YWx1ZSk7CjE0NDc0OiAgcmV0dXJuIHJlczsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJ3X2ZpeGVkIGJ3X2Zsb29yMihjb25zdCBzdHJ1Y3QgYndf
Zml4ZWQgYXJnLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgc2lnbmlmaWNhbmNlKTsKMTQ0NzQ6IHN0
cnVjdCBid19maXhlZCBid19jZWlsMihjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnLCBjb25zdCBz
dHJ1Y3QgYndfZml4ZWQgc2lnbmlmaWNhbmNlKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBid19lcXUo
Y29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsIGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBhcmcxLnZhbHVlID09IGFyZzIudmFsdWU7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgYndfbmVxKGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBj
b25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJnMS52
YWx1ZSAhPSBhcmcyLnZhbHVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGJ3X2xlcShj
b25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMSwgY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzIpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGFyZzEudmFsdWUgPD0gYXJnMi52YWx1ZTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBid19tZXEoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsIGNv
bnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhcmcxLnZh
bHVlID49IGFyZzIudmFsdWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYndfbHRuKGNv
bnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJnMS52YWx1ZSA8IGFyZzIudmFsdWU7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgYndfbXRuKGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25z
dCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJnMS52YWx1
ZSA+IGFyZzIudmFsdWU7CjE0NDc0OiB9CjE0NDc0OiAjIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2RjZV9jYWxjcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBwaXBlX2N0eDsKMTQ0NzQ6IHN0cnVjdCBkYzsKMTQ0NzQ6IHN0cnVjdCBkY19zdGF0
ZTsKMTQ0NzQ6IHN0cnVjdCBkY2VfYndfb3V0cHV0OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGJ3X2Nh
bGNzX3ZlcnNpb24gewoxNDQ3NDogIEJXX0NBTENTX1ZFUlNJT05fSU5WQUxJRCwKMTQ0NzQ6ICBC
V19DQUxDU19WRVJTSU9OX0NBUlJJWk8sCjE0NDc0OiAgQldfQ0FMQ1NfVkVSU0lPTl9QT0xBUklT
MTAsCjE0NDc0OiAgQldfQ0FMQ1NfVkVSU0lPTl9QT0xBUklTMTEsCjE0NDc0OiAgQldfQ0FMQ1Nf
VkVSU0lPTl9QT0xBUklTMTIsCjE0NDc0OiAgQldfQ0FMQ1NfVkVSU0lPTl9WRUdBTSwKMTQ0NzQ6
ICBCV19DQUxDU19WRVJTSU9OX1NUT05FWSwKMTQ0NzQ6ICBCV19DQUxDU19WRVJTSU9OX1ZFR0Ex
MAoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9pbmMvZGNlX2NhbGNzLmgiCjE0NDc0OiBlbnVtIGJ3X2RlZmluZXMgewoxNDQ3
NDogCjE0NDc0OiAgYndfZGVmX25vID0gMCwKMTQ0NzQ6ICBid19kZWZfbm9uZSA9IDAsCjE0NDc0
OiAgYndfZGVmX3llcyA9IDEsCjE0NDc0OiAgYndfZGVmX29rID0gMSwKMTQ0NzQ6ICBid19kZWZf
aGlnaCA9IDIsCjE0NDc0OiAgYndfZGVmX21pZCA9IDEsCjE0NDc0OiAgYndfZGVmX2xvdyA9IDAs
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGJ3X2RlZnNfc3RhcnQgPSAyNTUsCjE0NDc0OiAgYndf
ZGVmX3VuZGVybGF5NDIyLAoxNDQ3NDogIGJ3X2RlZl91bmRlcmxheTQyMF9sdW1hLAoxNDQ3NDog
IGJ3X2RlZl91bmRlcmxheTQyMF9jaHJvbWEsCjE0NDc0OiAgYndfZGVmX3VuZGVybGF5NDQ0LAox
NDQ3NDogIGJ3X2RlZl9ncmFwaGljcywKMTQ0NzQ6ICBid19kZWZfZGlzcGxheV93cml0ZV9iYWNr
NDIwX2x1bWEsCjE0NDc0OiAgYndfZGVmX2Rpc3BsYXlfd3JpdGVfYmFjazQyMF9jaHJvbWEsCjE0
NDc0OiAgYndfZGVmX3BvcnRyYWl0LAoxNDQ3NDogIGJ3X2RlZl9oc3JfbXRuXzQsCjE0NDc0OiAg
YndfZGVmX2hzcl9tdG5faF90YXBzLAoxNDQ3NDogIGJ3X2RlZl9jZWlsaW5nX19oX3RhcHNfZGl2
XzRfX19tZXFfaHNyLAoxNDQ3NDogIGJ3X2RlZl9pbnZhbGlkX2xpbmVhcl9vcl9zdGVyZW9fbW9k
ZSwKMTQ0NzQ6ICBid19kZWZfaW52YWxpZF9yb3RhdGlvbl9vcl9icHBfb3Jfc3RlcmVvLAoxNDQ3
NDogIGJ3X2RlZl92c3JfbXRuX3ZfdGFwcywKMTQ0NzQ6ICBid19kZWZfdnNyX210bl80LAoxNDQ3
NDogIGJ3X2RlZl9hdXRvLAoxNDQ3NDogIGJ3X2RlZl9tYW51YWwsCjE0NDc0OiAgYndfZGVmX2V4
Y2VlZGVkX2FsbG93ZWRfbWF4aW11bV9zY2xrLAoxNDQ3NDogIGJ3X2RlZl9leGNlZWRlZF9hbGxv
d2VkX3BhZ2VfY2xvc2Vfb3BlbiwKMTQ0NzQ6ICBid19kZWZfZXhjZWVkZWRfYWxsb3dlZF9vdXRz
dGFuZGluZ19wdGVfcmVxX3F1ZXVlX3NpemUsCjE0NDc0OiAgYndfZGVmX2V4Y2VlZGVkX2FsbG93
ZWRfbWF4aW11bV9idywKMTQ0NzQ6ICBid19kZWZfbGFuZHNjYXBlLAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBid19kZWZfYW55X2xpbmVzLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBid19kZWZf
dW5kZXJsYXlfb25seSwKMTQ0NzQ6ICBid19kZWZfYmxlbmRlZCwKMTQ0NzQ6ICBid19kZWZfYmxl
bmQsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGJ3X2RlZl9tb25vLAoxNDQ3NDogIGJ3X2RlZl9z
aWRlX2J5X3NpZGUsCjE0NDc0OiAgYndfZGVmX3RvcF9ib3R0b20sCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIGJ3X2RlZl80MjAsCjE0NDc0OiAgYndfZGVmXzQyMiwKMTQ0NzQ6ICBid19kZWZfNDQ0
LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBid19kZWZfbGluZWFyLAoxNDQ3NDogIGJ3X2RlZl90
aWxlZCwKMTQ0NzQ6ICBid19kZWZfYXJyYXlfbGluZWFyX2dlbmVyYWwsCjE0NDc0OiAgYndfZGVm
X2FycmF5X2xpbmVhcl9hbGlnbmVkLAoxNDQ3NDogIGJ3X2RlZl9yb3RhdGVkX21pY3JvX3RpbGlu
ZywKMTQ0NzQ6ICBid19kZWZfZGlzcGxheV9taWNyb190aWxpbmcsCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIGJ3X2RlZl9nZGRyNSwKMTQ0NzQ6ICBid19kZWZfaGJtLAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBid19kZWZfaGlnaF9ub19uYnBfc3RhdGVfY2hhbmdlLAoxNDQ3NDogIGJ3X2RlZl8w
XzcyLAoxNDQ3NDogIGJ3X2RlZl8wXzgsCjE0NDc0OiAgYndfZGVmXzBfOSwKMTQ0NzQ6IAoxNDQ3
NDogIGJ3X2RlZl9ub3RvayA9IC0xLAoxNDQ3NDogIGJ3X2RlZl9uYSA9IC0xCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYndfY2FsY3NfZGNlaXAgewoxNDQ3NDogIGVudW0gYndfY2Fs
Y3NfdmVyc2lvbiB2ZXJzaW9uOwoxNDQ3NDogIHVpbnQzMl90IHBlcmNlbnRfb2ZfaWRlYWxfcG9y
dF9id19yZWNlaXZlZF9hZnRlcl91cmdlbnRfbGF0ZW5jeTsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhf
YXZlcmFnZV9wZXJjZW50X29mX2lkZWFsX3BvcnRfYndfZGlzcGxheV9jYW5fdXNlX2luX25vcm1h
bF9zeXN0ZW1fb3BlcmF0aW9uOwoxNDQ3NDogIHVpbnQzMl90IG1heF9hdmVyYWdlX3BlcmNlbnRf
b2ZfaWRlYWxfZHJhbWJ3X2Rpc3BsYXlfY2FuX3VzZV9pbl9ub3JtYWxfc3lzdGVtX29wZXJhdGlv
bjsKMTQ0NzQ6ICBib29sIGxhcmdlX2N1cnNvcjsKMTQ0NzQ6ICB1aW50MzJfdCBjdXJzb3JfbWF4
X291dHN0YW5kaW5nX2dyb3VwX251bTsKMTQ0NzQ6ICBib29sIGRtaWZfcGlwZV9lbl9mYmNfY2h1
bmtfdHJhY2tlcjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgZG1pZl9yZXF1ZXN0X2J1ZmZlcl9z
aXplOwoxNDQ3NDogIHVpbnQzMl90IGxpbmVzX2ludGVybGVhdmVkX2ludG9fbGI7CjE0NDc0OiAg
dWludDMyX3QgbG93X3Bvd2VyX3RpbGluZ19tb2RlOwoxNDQ3NDogIHVpbnQzMl90IGNodW5rX3dp
ZHRoOwoxNDQ3NDogIHVpbnQzMl90IG51bWJlcl9vZl9ncmFwaGljc19waXBlczsKMTQ0NzQ6ICB1
aW50MzJfdCBudW1iZXJfb2ZfdW5kZXJsYXlfcGlwZXM7CjE0NDc0OiAgYm9vbCBkaXNwbGF5X3dy
aXRlX2JhY2tfc3VwcG9ydGVkOwoxNDQ3NDogIGJvb2wgYXJnYl9jb21wcmVzc2lvbl9zdXBwb3J0
OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB1bmRlcmxheV92c2NhbGVyX2VmZmljaWVuY3k2X2Jp
dF9wZXJfY29tcG9uZW50OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB1bmRlcmxheV92c2NhbGVy
X2VmZmljaWVuY3k4X2JpdF9wZXJfY29tcG9uZW50OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB1
bmRlcmxheV92c2NhbGVyX2VmZmljaWVuY3kxMF9iaXRfcGVyX2NvbXBvbmVudDsKMTQ0NzQ6ICBz
dHJ1Y3QgYndfZml4ZWQgdW5kZXJsYXlfdnNjYWxlcl9lZmZpY2llbmN5MTJfYml0X3Blcl9jb21w
b25lbnQ7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGdyYXBoaWNzX3ZzY2FsZXJfZWZmaWNpZW5j
eTZfYml0X3Blcl9jb21wb25lbnQ7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGdyYXBoaWNzX3Zz
Y2FsZXJfZWZmaWNpZW5jeThfYml0X3Blcl9jb21wb25lbnQ7CjE0NDc0OiAgc3RydWN0IGJ3X2Zp
eGVkIGdyYXBoaWNzX3ZzY2FsZXJfZWZmaWNpZW5jeTEwX2JpdF9wZXJfY29tcG9uZW50OwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBncmFwaGljc192c2NhbGVyX2VmZmljaWVuY3kxMl9iaXRfcGVy
X2NvbXBvbmVudDsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgYWxwaGFfdnNjYWxlcl9lZmZpY2ll
bmN5OwoxNDQ3NDogIHVpbnQzMl90IG1heF9kbWlmX2J1ZmZlcl9hbGxvY2F0ZWQ7CjE0NDc0OiAg
dWludDMyX3QgZ3JhcGhpY3NfZG1pZl9zaXplOwoxNDQ3NDogIHVpbnQzMl90IHVuZGVybGF5X2x1
bWFfZG1pZl9zaXplOwoxNDQ3NDogIHVpbnQzMl90IHVuZGVybGF5X2Nocm9tYV9kbWlmX3NpemU7
CjE0NDc0OiAgYm9vbCBwcmVfZG93bnNjYWxlcl9lbmFibGVkOwoxNDQ3NDogIGJvb2wgdW5kZXJs
YXlfZG93bnNjYWxlX3ByZWZldGNoX2VuYWJsZWQ7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGxi
X3dyaXRlX3BpeGVsc19wZXJfZGlzcGNsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbGJfc2l6
ZV9wZXJfY29tcG9uZW50NDQ0OwoxNDQ3NDogIGJvb2wgZ3JhcGhpY3NfbGJfbm9kb3duc2NhbGlu
Z19tdWx0aV9saW5lX3ByZWZldGNoaW5nOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzdHV0dGVy
X2FuZF9kcmFtX2Nsb2NrX3N0YXRlX2NoYW5nZV9nYXRlZF9iZWZvcmVfY3Vyc29yOwoxNDQ3NDog
IHN0cnVjdCBid19maXhlZCB1bmRlcmxheTQyMF9sdW1hX2xiX3NpemVfcGVyX2NvbXBvbmVudDsK
MTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgdW5kZXJsYXk0MjBfY2hyb21hX2xiX3NpemVfcGVyX2Nv
bXBvbmVudDsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgdW5kZXJsYXk0MjJfbGJfc2l6ZV9wZXJf
Y29tcG9uZW50OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBjdXJzb3JfY2h1bmtfd2lkdGg7CjE0
NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGN1cnNvcl9kY3BfYnVmZmVyX2xpbmVzOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCB1bmRlcmxheV9tYXhpbXVtX3dpZHRoX2VmZmljaWVudF9mb3JfdGlsaW5n
OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB1bmRlcmxheV9tYXhpbXVtX2hlaWdodF9lZmZpY2ll
bnRfZm9yX3RpbGluZzsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcGVha19wdGVfcmVxdWVzdF90
b19ldmljdGlvbl9yYXRpb19saW1pdGluZ19tdWx0aXBsZV9kaXNwbGF5c19vcl9zaW5nbGVfcm90
YXRlZF9kaXNwbGF5OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBwZWFrX3B0ZV9yZXF1ZXN0X3Rv
X2V2aWN0aW9uX3JhdGlvX2xpbWl0aW5nX3NpbmdsZV9kaXNwbGF5X25vX3JvdGF0aW9uOwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBtaW5pbXVtX291dHN0YW5kaW5nX3B0ZV9yZXF1ZXN0X2xpbWl0
OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBtYXhpbXVtX3RvdGFsX291dHN0YW5kaW5nX3B0ZV9y
ZXF1ZXN0c19hbGxvd2VkX2J5X3NhdzsKMTQ0NzQ6ICBib29sIGxpbWl0X2V4Y2Vzc2l2ZV9vdXRz
dGFuZGluZ19kbWlmX3JlcXVlc3RzOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBsaW5lYXJfbW9k
ZV9saW5lX3JlcXVlc3RfYWx0ZXJuYXRpb25fc2xpY2U7CjE0NDc0OiAgdWludDMyX3Qgc2NhdHRl
cl9nYXRoZXJfbGluZXNfb2ZfcHRlX3ByZWZldGNoaW5nX2luX2xpbmVhcl9tb2RlOwoxNDQ3NDog
IHVpbnQzMl90IGRpc3BsYXlfd3JpdGVfYmFjazQyMF9sdW1hX21jaWZ3cl9idWZmZXJfc2l6ZTsK
MTQ0NzQ6ICB1aW50MzJfdCBkaXNwbGF5X3dyaXRlX2JhY2s0MjBfY2hyb21hX21jaWZ3cl9idWZm
ZXJfc2l6ZTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcmVxdWVzdF9lZmZpY2llbmN5OwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBkaXNwY2xrX3Blcl9yZXF1ZXN0OwoxNDQ3NDogIHN0cnVjdCBi
d19maXhlZCBkaXNwY2xrX3JhbXBpbmdfZmFjdG9yOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBk
aXNwbGF5X3BpcGVfdGhyb3VnaHB1dF9mYWN0b3I7CjE0NDc0OiAgdWludDMyX3Qgc2NhdHRlcl9n
YXRoZXJfcHRlX3JlcXVlc3Rfcm93c19pbl90aWxpbmdfbW9kZTsKMTQ0NzQ6ICBzdHJ1Y3QgYndf
Zml4ZWQgbWNpZndyX2FsbF9zdXJmYWNlc19idXJzdF90aW1lOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGJ3X2NhbGNzX3ZiaW9zIHsKMTQ0NzQ6ICBlbnVtIGJ3X2RlZmluZXMgbWVt
b3J5X3R5cGU7CjE0NDc0OiAgdWludDMyX3QgZHJhbV9jaGFubmVsX3dpZHRoX2luX2JpdHM7CjE0
NDc0OiAgdWludDMyX3QgbnVtYmVyX29mX2RyYW1fY2hhbm5lbHM7CjE0NDc0OiAgdWludDMyX3Qg
bnVtYmVyX29mX2RyYW1fYmFua3M7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGxvd195Y2xrOwox
NDQ3NDogIHN0cnVjdCBid19maXhlZCBtaWRfeWNsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
aGlnaF95Y2xrOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBsb3dfc2NsazsKMTQ0NzQ6ICBzdHJ1
Y3QgYndfZml4ZWQgbWlkMV9zY2xrOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBtaWQyX3NjbGs7
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG1pZDNfc2NsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4
ZWQgbWlkNF9zY2xrOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBtaWQ1X3NjbGs7CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIG1pZDZfc2NsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgaGlnaF9z
Y2xrOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBsb3dfdm9sdGFnZV9tYXhfZGlzcGNsazsKMTQ0
NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbWlkX3ZvbHRhZ2VfbWF4X2Rpc3BjbGs7CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIGhpZ2hfdm9sdGFnZV9tYXhfZGlzcGNsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndf
Zml4ZWQgbG93X3ZvbHRhZ2VfbWF4X3BoeWNsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbWlk
X3ZvbHRhZ2VfbWF4X3BoeWNsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgaGlnaF92b2x0YWdl
X21heF9waHljbGs7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRhdGFfcmV0dXJuX2J1c193aWR0
aDsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgdHJjOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBk
bWlmbWNfdXJnZW50X2xhdGVuY3k7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfc2Vs
Zl9yZWZyZXNoX2V4aXRfbGF0ZW5jeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9z
ZWxmX3JlZnJlc2hfZW50cnlfbGF0ZW5jeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbmJwX3N0
YXRlX2NoYW5nZV9sYXRlbmN5OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBtY2lmd3JtY191cmdl
bnRfbGF0ZW5jeTsKMTQ0NzQ6ICBib29sIHNjYXR0ZXJfZ2F0aGVyX2VuYWJsZTsKMTQ0NzQ6ICBz
dHJ1Y3QgYndfZml4ZWQgZG93bl9zcHJlYWRfcGVyY2VudGFnZTsKMTQ0NzQ6ICB1aW50MzJfdCBj
dXJzb3Jfd2lkdGg7CjE0NDc0OiAgdWludDMyX3QgYXZlcmFnZV9jb21wcmVzc2lvbl9yYXRlOwox
NDQ3NDogIHVpbnQzMl90IG51bWJlcl9vZl9yZXF1ZXN0X3Nsb3RzX2dtY19yZXNlcnZlc19mb3Jf
ZG1pZl9wZXJfY2hhbm5lbDsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgYmxhY2tvdXRfZHVyYXRp
b247CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG1heGltdW1fYmxhY2tvdXRfcmVjb3ZlcnlfdGlt
ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBid19jYWxjc19kYXRhIHsKMTQ0NzQ6IAoxNDQ3NDog
IGJvb2wgZGlzcGxheV9zeW5jaHJvbml6YXRpb25fZW5hYmxlZDsKMTQ0NzQ6ICB1aW50MzJfdCBu
dW1iZXJfb2ZfZGlzcGxheXM7CjE0NDc0OiAgZW51bSBid19kZWZpbmVzIHVuZGVybGF5X3N1cmZh
Y2VfdHlwZTsKMTQ0NzQ6ICBlbnVtIGJ3X2RlZmluZXMgcGFubmluZ19hbmRfYmV6ZWxfYWRqdXN0
bWVudDsKMTQ0NzQ6ICBlbnVtIGJ3X2RlZmluZXMgZ3JhcGhpY3NfdGlsaW5nX21vZGU7CjE0NDc0
OiAgdWludDMyX3QgZ3JhcGhpY3NfbGJfYnBjOwoxNDQ3NDogIHVpbnQzMl90IHVuZGVybGF5X2xi
X2JwYzsKMTQ0NzQ6ICBlbnVtIGJ3X2RlZmluZXMgdW5kZXJsYXlfdGlsaW5nX21vZGU7CjE0NDc0
OiAgZW51bSBid19kZWZpbmVzIGQwX3VuZGVybGF5X21vZGU7CjE0NDc0OiAgYm9vbCBkMV9kaXNw
bGF5X3dyaXRlX2JhY2tfZHdiX2VuYWJsZTsKMTQ0NzQ6ICBlbnVtIGJ3X2RlZmluZXMgZDFfdW5k
ZXJsYXlfbW9kZTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgaW5jcmVhc2Vfdm9sdGFnZV90b19zdXBw
b3J0X21jbGtfc3dpdGNoOwoxNDQ3NDogIGJvb2wgY3B1cF9zdGF0ZV9jaGFuZ2VfZW5hYmxlOwox
NDQ3NDogIGJvb2wgY3B1Y19zdGF0ZV9jaGFuZ2VfZW5hYmxlOwoxNDQ3NDogIGJvb2wgbmJwX3N0
YXRlX2NoYW5nZV9lbmFibGU7CjE0NDc0OiAgYm9vbCBzdHV0dGVyX21vZGVfZW5hYmxlOwoxNDQ3
NDogIHVpbnQzMl90IHlfY2xrX2xldmVsOwoxNDQ3NDogIHVpbnQzMl90IHNjbGtfbGV2ZWw7CjE0
NDc0OiAgdWludDMyX3QgbnVtYmVyX29mX3VuZGVybGF5X3N1cmZhY2VzOwoxNDQ3NDogIHVpbnQz
Ml90IG51bWJlcl9vZl9kcmFtX3dyY2hhbm5lbHM7CjE0NDc0OiAgdWludDMyX3QgY2h1bmtfcmVx
dWVzdF9kZWxheTsKMTQ0NzQ6ICB1aW50MzJfdCBudW1iZXJfb2ZfZHJhbV9jaGFubmVsczsKMTQ0
NzQ6ICBlbnVtIGJ3X2RlZmluZXMgdW5kZXJsYXlfbWljcm9fdGlsZV9tb2RlOwoxNDQ3NDogIGVu
dW0gYndfZGVmaW5lcyBncmFwaGljc19taWNyb190aWxlX21vZGU7CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIG1heF9waHljbGs7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRyYW1fZWZmaWNpZW5j
eTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3JjX3dpZHRoX2FmdGVyX3N1cmZhY2VfdHlwZTsK
MTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3JjX2hlaWdodF9hZnRlcl9zdXJmYWNlX3R5cGU7CjE0
NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGhzcl9hZnRlcl9zdXJmYWNlX3R5cGU7CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIHZzcl9hZnRlcl9zdXJmYWNlX3R5cGU7CjE0NDc0OiAgc3RydWN0IGJ3X2Zp
eGVkIHNyY193aWR0aF9hZnRlcl9yb3RhdGlvbjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3Jj
X2hlaWdodF9hZnRlcl9yb3RhdGlvbjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgaHNyX2FmdGVy
X3JvdGF0aW9uOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB2c3JfYWZ0ZXJfcm90YXRpb247CjE0
NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHNvdXJjZV9oZWlnaHRfcGl4ZWxzOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCBoc3JfYWZ0ZXJfc3RlcmVvOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB2c3Jf
YWZ0ZXJfc3RlcmVvOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzb3VyY2Vfd2lkdGhfaW5fbGI7
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGxiX2xpbmVfcGl0Y2g7CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIHVuZGVybGF5X21heGltdW1fc291cmNlX2VmZmljaWVudF9mb3JfdGlsaW5nOwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBudW1fbGluZXNfYXRfZnJhbWVfc3RhcnQ7CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIG1pbl9kbWlmX3NpemVfaW5fdGltZTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4
ZWQgbWluX21jaWZ3cl9zaXplX2luX3RpbWU7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFs
X3JlcXVlc3RzX2Zvcl9kbWlmX3NpemU7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHBlYWtfcHRl
X3JlcXVlc3RfdG9fZXZpY3Rpb25fcmF0aW9fbGltaXRpbmc7CjE0NDc0OiAgc3RydWN0IGJ3X2Zp
eGVkIHVzZWZ1bF9wdGVfcGVyX3B0ZV9yZXF1ZXN0OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBz
Y2F0dGVyX2dhdGhlcl9wdGVfcmVxdWVzdF9yb3dzOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBz
Y2F0dGVyX2dhdGhlcl9yb3dfaGVpZ2h0OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzY2F0dGVy
X2dhdGhlcl9wdGVfcmVxdWVzdHNfaW5fdmJsYW5rOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBp
bmVmZmljaWVudF9saW5lYXJfcGl0Y2hfaW5fYnl0ZXM7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IGN1cnNvcl90b3RhbF9kYXRhOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBjdXJzb3JfdG90YWxf
cmVxdWVzdF9ncm91cHM7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHNjYXR0ZXJfZ2F0aGVyX3Rv
dGFsX3B0ZV9yZXF1ZXN0czsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc2NhdHRlcl9nYXRoZXJf
dG90YWxfcHRlX3JlcXVlc3RfZ3JvdXBzOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB0aWxlX3dp
ZHRoX2luX3BpeGVsczsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgZG1pZl90b3RhbF9udW1iZXJf
b2ZfZGF0YV9yZXF1ZXN0X3BhZ2VfY2xvc2Vfb3BlbjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
bWNpZndyX3RvdGFsX251bWJlcl9vZl9kYXRhX3JlcXVlc3RfcGFnZV9jbG9zZV9vcGVuOwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBieXRlc19wZXJfcGFnZV9jbG9zZV9vcGVuOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCBtY2lmd3JfdG90YWxfcGFnZV9jbG9zZV9vcGVuX3RpbWU7CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIHRvdGFsX3JlcXVlc3RzX2Zvcl9hZGp1c3RlZF9kbWlmX3NpemU7CjE0
NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2RtaWZtY191cmdlbnRfdHJpcHM7CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2RtaWZtY191cmdlbnRfbGF0ZW5jeTsKMTQ0NzQ6ICBzdHJ1
Y3QgYndfZml4ZWQgdG90YWxfZGlzcGxheV9yZWFkc19yZXF1aXJlZF9kYXRhOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCB0b3RhbF9kaXNwbGF5X3JlYWRzX3JlcXVpcmVkX2RyYW1fYWNjZXNzX2Rh
dGE7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2Rpc3BsYXlfd3JpdGVzX3JlcXVpcmVk
X2RhdGE7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2Rpc3BsYXlfd3JpdGVzX3JlcXVp
cmVkX2RyYW1fYWNjZXNzX2RhdGE7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRpc3BsYXlfcmVh
ZHNfcmVxdWlyZWRfZGF0YTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgZGlzcGxheV9yZWFkc19y
ZXF1aXJlZF9kcmFtX2FjY2Vzc19kYXRhOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBkbWlmX3Rv
dGFsX3BhZ2VfY2xvc2Vfb3Blbl90aW1lOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBtaW5fY3Vy
c29yX21lbW9yeV9pbnRlcmZhY2VfYnVmZmVyX3NpemVfaW5fdGltZTsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfZml4ZWQgbWluX3JlYWRfYnVmZmVyX3NpemVfaW5fdGltZTsKMTQ0NzQ6ICBzdHJ1Y3QgYndf
Zml4ZWQgZGlzcGxheV9yZWFkc190aW1lX2Zvcl9kYXRhX3RyYW5zZmVyOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCBkaXNwbGF5X3dyaXRlc190aW1lX2Zvcl9kYXRhX3RyYW5zZmVyOwoxNDQ3NDog
IHN0cnVjdCBid19maXhlZCBkbWlmX3JlcXVpcmVkX2RyYW1fYmFuZHdpZHRoOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCBtY2lmd3JfcmVxdWlyZWRfZHJhbV9iYW5kd2lkdGg7CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIHJlcXVpcmVkX2RtaWZtY191cmdlbnRfbGF0ZW5jeV9mb3JfcGFnZV9jbG9z
ZV9vcGVuOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCByZXF1aXJlZF9tY2lmbWN3cl91cmdlbnRf
bGF0ZW5jeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcmVxdWlyZWRfZHJhbV9iYW5kd2lkdGhf
Z2J5dGVfcGVyX3NlY29uZDsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgZHJhbV9iYW5kd2lkdGg7
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRtaWZfcmVxdWlyZWRfc2NsazsKMTQ0NzQ6ICBzdHJ1
Y3QgYndfZml4ZWQgbWNpZndyX3JlcXVpcmVkX3NjbGs7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IHJlcXVpcmVkX3NjbGs7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRvd25zcHJlYWRfZmFjdG9y
OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB2X3NjYWxlcl9lZmZpY2llbmN5OwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCBzY2FsZXJfbGltaXRzX2ZhY3RvcjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4
ZWQgZGlzcGxheV9waXBlX3BpeGVsX3Rocm91Z2hwdXQ7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IHRvdGFsX2Rpc3BjbGtfcmVxdWlyZWRfd2l0aF9yYW1waW5nOwoxNDQ3NDogIHN0cnVjdCBid19m
aXhlZCB0b3RhbF9kaXNwY2xrX3JlcXVpcmVkX3dpdGhvdXRfcmFtcGluZzsKMTQ0NzQ6ICBzdHJ1
Y3QgYndfZml4ZWQgdG90YWxfcmVhZF9yZXF1ZXN0X2JhbmR3aWR0aDsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfZml4ZWQgdG90YWxfd3JpdGVfcmVxdWVzdF9iYW5kd2lkdGg7CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIGRpc3BjbGtfcmVxdWlyZWRfZm9yX3RvdGFsX3JlYWRfcmVxdWVzdF9iYW5kd2lkdGg7
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2Rpc3BjbGtfcmVxdWlyZWRfd2l0aF9yYW1w
aW5nX3dpdGhfcmVxdWVzdF9iYW5kd2lkdGg7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFs
X2Rpc3BjbGtfcmVxdWlyZWRfd2l0aG91dF9yYW1waW5nX3dpdGhfcmVxdWVzdF9iYW5kd2lkdGg7
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRpc3BjbGs7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IGJsYWNrb3V0X3JlY292ZXJ5X3RpbWU7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG1pbl9waXhl
bHNfcGVyX2RhdGFfZmlmb19lbnRyeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc2Nsa19kZWVw
X3NsZWVwOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBjaHVua19yZXF1ZXN0X3RpbWU7CjE0NDc0
OiAgc3RydWN0IGJ3X2ZpeGVkIGN1cnNvcl9yZXF1ZXN0X3RpbWU7CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIGxpbmVfc291cmNlX3BpeGVsc190cmFuc2Zlcl90aW1lOwoxNDQ3NDogIHN0cnVjdCBi
d19maXhlZCBkbWlmZHJhbV9hY2Nlc3NfZWZmaWNpZW5jeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4
ZWQgbWNpZndyZHJhbV9hY2Nlc3NfZWZmaWNpZW5jeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
dG90YWxfYXZlcmFnZV9iYW5kd2lkdGhfbm9fY29tcHJlc3Npb247CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIHRvdGFsX2F2ZXJhZ2VfYmFuZHdpZHRoOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB0
b3RhbF9zdHV0dGVyX2N5Y2xlX2R1cmF0aW9uOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzdHV0
dGVyX2J1cnN0X3RpbWU7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRpbWVfaW5fc2VsZl9yZWZy
ZXNoOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzdHV0dGVyX2VmZmljaWVuY3k7CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIHdvcnN0X251bWJlcl9vZl90cmlwc190b19tZW1vcnk7CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIGltbWVkaWF0ZV9mbGlwX3RpbWU7CjE0NDc0OiAgc3RydWN0IGJ3X2Zp
eGVkIGxhdGVuY3lfZm9yX25vbl9kbWlmX2NsaWVudHM7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IGxhdGVuY3lfZm9yX25vbl9tY2lmd3JfY2xpZW50czsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
ZG1pZm1jX3VyZ2VudF9sYXRlbmN5X3N1cHBvcnRlZF9pbl9oaWdoX3NjbGtfYW5kX3ljbGs7CjE0
NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG5icF9zdGF0ZV9kcmFtX3NwZWVkX2NoYW5nZV9tYXJnaW47
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRpc3BsYXlfcmVhZHNfdGltZV9mb3JfZGF0YV90cmFu
c2Zlcl9hbmRfdXJnZW50X2xhdGVuY3k7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRyYW1fc3Bl
ZWRfY2hhbmdlX21hcmdpbjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbWluX3ZibGFua19kcmFt
X3NwZWVkX2NoYW5nZV9tYXJnaW47CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG1pbl9zdHV0dGVy
X3JlZnJlc2hfZHVyYXRpb247CjE0NDc0OiAgdWludDMyX3QgdG90YWxfc3R1dHRlcl9kbWlmX2J1
ZmZlcl9zaXplOwoxNDQ3NDogIHVpbnQzMl90IHRvdGFsX2J5dGVzX3JlcXVlc3RlZDsKMTQ0NzQ6
ICB1aW50MzJfdCBtaW5fc3R1dHRlcl9kbWlmX2J1ZmZlcl9zaXplOwoxNDQ3NDogIHVpbnQzMl90
IG51bV9zdHV0dGVyX2J1cnN0czsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgdl9ibGFua19uYnBf
c3RhdGVfZHJhbV9zcGVlZF9jaGFuZ2VfbGF0ZW5jeV9zdXBwb3J0ZWQ7CjE0NDc0OiAgc3RydWN0
IGJ3X2ZpeGVkIG5icF9zdGF0ZV9kcmFtX3NwZWVkX2NoYW5nZV9sYXRlbmN5X3N1cHBvcnRlZDsK
MTQ0NzQ6ICBib29sIGZiY19lblsxMl07CjE0NDc0OiAgYm9vbCBscHRfZW5bMTJdOwoxNDQ3NDog
IGJvb2wgZGlzcGxheXNfbWF0Y2hfZmxhZ1sxMl07CjE0NDc0OiAgYm9vbCB1c2VfYWxwaGFbMTJd
OwoxNDQ3NDogIGJvb2wgb3J0aG9nb25hbF9yb3RhdGlvblsxMl07CjE0NDc0OiAgYm9vbCBlbmFi
bGVbMTJdOwoxNDQ3NDogIGJvb2wgYWNjZXNzX29uZV9jaGFubmVsX29ubHlbMTJdOwoxNDQ3NDog
IGJvb2wgc2NhdHRlcl9nYXRoZXJfZW5hYmxlX2Zvcl9waXBlWzEyXTsKMTQ0NzQ6ICBib29sIGlu
dGVybGFjZV9tb2RlWzEyXTsKMTQ0NzQ6ICBib29sIGRpc3BsYXlfcHN0YXRlX2NoYW5nZV9lbmFi
bGVbMTJdOwoxNDQ3NDogIGJvb2wgbGluZV9idWZmZXJfcHJlZmV0Y2hbMTJdOwoxNDQ3NDogIHVp
bnQzMl90IGJ5dGVzX3Blcl9waXhlbFsxMl07CjE0NDc0OiAgdWludDMyX3QgbWF4X2NodW5rc19u
b25fZmJjX21vZGVbMTJdOwoxNDQ3NDogIHVpbnQzMl90IGxiX2JwY1sxMl07CjE0NDc0OiAgdWlu
dDMyX3Qgb3V0cHV0X2JwcGhkbWlbMTJdOwoxNDQ3NDogIHVpbnQzMl90IG91dHB1dF9icHBkcDRf
bGFuZV9oYnJbMTJdOwoxNDQ3NDogIHVpbnQzMl90IG91dHB1dF9icHBkcDRfbGFuZV9oYnIyWzEy
XTsKMTQ0NzQ6ICB1aW50MzJfdCBvdXRwdXRfYnBwZHA0X2xhbmVfaGJyM1sxMl07CjE0NDc0OiAg
ZW51bSBid19kZWZpbmVzIHN0ZXJlb19tb2RlWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
ZG1pZl9idWZmZXJfdHJhbnNmZXJfdGltZVsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRp
c3BsYXlzX3dpdGhfc2FtZV9tb2RlWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRl
cl9kbWlmX2J1ZmZlcl9zaXplWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9y
ZWZyZXNoX2R1cmF0aW9uWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9leGl0
X3dhdGVybWFya1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfZW50cnlfd2F0
ZXJtYXJrWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgaF90b3RhbFsxMl07CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIHZfdG90YWxbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBwaXhl
bF9yYXRlWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3JjX3dpZHRoWzEyXTsKMTQ0NzQ6
ICBzdHJ1Y3QgYndfZml4ZWQgcGl0Y2hfaW5fcGl4ZWxzWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndf
Zml4ZWQgcGl0Y2hfaW5fcGl4ZWxzX2FmdGVyX3N1cmZhY2VfdHlwZVsxMl07CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIHNyY19oZWlnaHRbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzY2Fs
ZV9yYXRpb1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGhfdGFwc1sxMl07CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIHZfdGFwc1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGhfc2Nh
bGVfcmF0aW9bMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB2X3NjYWxlX3JhdGlvWzEyXTsK
MTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcm90YXRpb25fYW5nbGVbMTJdOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCBjb21wcmVzc2lvbl9yYXRlWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
aHNyWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgdnNyWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfZml4ZWQgc291cmNlX3dpZHRoX3JvdW5kZWRfdXBfdG9fY2h1bmtzWzEyXTsKMTQ0NzQ6ICBz
dHJ1Y3QgYndfZml4ZWQgc291cmNlX3dpZHRoX3BpeGVsc1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIHNvdXJjZV9oZWlnaHRfcm91bmRlZF91cF90b19jaHVua3NbMTJdOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCBkaXNwbGF5X2JhbmR3aWR0aFsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2Zp
eGVkIHJlcXVlc3RfYmFuZHdpZHRoWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgYnl0ZXNf
cGVyX3JlcXVlc3RbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB1c2VmdWxfYnl0ZXNfcGVy
X3JlcXVlc3RbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBsaW5lc19pbnRlcmxlYXZlZF9p
bl9tZW1fYWNjZXNzWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbGF0ZW5jeV9oaWRpbmdf
bGluZXNbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBsYl9wYXJ0aXRpb25zWzEyXTsKMTQ0
NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbGJfcGFydGl0aW9uc19tYXhbMTJdOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCBkaXNwY2xrX3JlcXVpcmVkX3dpdGhfcmFtcGluZ1sxMl07CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIGRpc3BjbGtfcmVxdWlyZWRfd2l0aG91dF9yYW1waW5nWzEyXTsKMTQ0NzQ6
ICBzdHJ1Y3QgYndfZml4ZWQgZGF0YV9idWZmZXJfc2l6ZVsxMl07CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIG91dHN0YW5kaW5nX2NodW5rX3JlcXVlc3RfbGltaXRbMTJdOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCB1cmdlbnRfd2F0ZXJtYXJrWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
bmJwX3N0YXRlX2NoYW5nZV93YXRlcm1hcmtbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB2
X2ZpbHRlcl9pbml0WzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9jeWNsZV9k
dXJhdGlvblsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGF2ZXJhZ2VfYmFuZHdpZHRoWzEy
XTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgYXZlcmFnZV9iYW5kd2lkdGhfbm9fY29tcHJlc3Np
b25bMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzY2F0dGVyX2dhdGhlcl9wdGVfcmVxdWVz
dF9saW1pdFsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGxiX3NpemVfcGVyX2NvbXBvbmVu
dFsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG1lbW9yeV9jaHVua19zaXplX2luX2J5dGVz
WzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcGlwZV9jaHVua19zaXplX2luX2J5dGVzWzEy
XTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbnVtYmVyX29mX3RyaXBzX3RvX21lbW9yeV9mb3Jf
Z2V0dGluZ19hcHRlX3Jvd1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGFkanVzdGVkX2Rh
dGFfYnVmZmVyX3NpemVbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBhZGp1c3RlZF9kYXRh
X2J1ZmZlcl9zaXplX2luX21lbW9yeVsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHBpeGVs
c19wZXJfZGF0YV9maWZvX2VudHJ5WzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc2NhdHRl
cl9nYXRoZXJfcHRlX3JlcXVlc3RzX2luX3Jvd1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IHB0ZV9yZXF1ZXN0X3Blcl9jaHVua1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHNjYXR0
ZXJfZ2F0aGVyX3BhZ2Vfd2lkdGhbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzY2F0dGVy
X2dhdGhlcl9wYWdlX2hlaWdodFsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGxiX2xpbmVz
X2luX3Blcl9saW5lX291dF9pbl9iZWdpbm5pbmdfb2ZfZnJhbWVbMTJdOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCBsYl9saW5lc19pbl9wZXJfbGluZV9vdXRfaW5fbWlkZGxlX29mX2ZyYW1lWzEy
XTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgY3Vyc29yX3dpZHRoX3BpeGVsc1sxMl07CjE0NDc0
OiAgc3RydWN0IGJ3X2ZpeGVkIG1pbmltdW1fbGF0ZW5jeV9oaWRpbmdbMTJdOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCBtYXhpbXVtX2xhdGVuY3lfaGlkaW5nWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfZml4ZWQgbWluaW11bV9sYXRlbmN5X2hpZGluZ193aXRoX2N1cnNvclsxMl07CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIG1heGltdW1fbGF0ZW5jeV9oaWRpbmdfd2l0aF9jdXJzb3JbMTJdOwox
NDQ3NDogIHN0cnVjdCBid19maXhlZCBzcmNfcGl4ZWxzX2Zvcl9maXJzdF9vdXRwdXRfcGl4ZWxb
MTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzcmNfcGl4ZWxzX2Zvcl9sYXN0X291dHB1dF9w
aXhlbFsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHNyY19kYXRhX2Zvcl9maXJzdF9vdXRw
dXRfcGl4ZWxbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzcmNfZGF0YV9mb3JfbGFzdF9v
dXRwdXRfcGl4ZWxbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBhY3RpdmVfdGltZVsxMl07
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGhvcml6b250YWxfYmxhbmtfYW5kX2NodW5rX2dyYW51
bGFyaXR5X2ZhY3RvclsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGN1cnNvcl9sYXRlbmN5
X2hpZGluZ1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHZfYmxhbmtfZHJhbV9zcGVlZF9j
aGFuZ2VfbWFyZ2luWzEyXTsKMTQ0NzQ6ICB1aW50MzJfdCBudW1fZGlzcGxheXNfd2l0aF9tYXJn
aW5bM11bOF07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRtaWZfYnVyc3RfdGltZVszXVs4XTsK
MTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbWNpZndyX2J1cnN0X3RpbWVbM11bOF07CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIGxpbmVfc291cmNlX3RyYW5zZmVyX3RpbWVbMTJdWzNdWzhdOwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBkcmFtX3NwZWVkX2NoYW5nZV9saW5lX3NvdXJjZV90cmFuc2Zl
cl90aW1lWzEyXVszXVs4XTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbWluX2RyYW1fc3BlZWRf
Y2hhbmdlX21hcmdpblszXVs4XTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgZGlzcGNsa19yZXF1
aXJlZF9mb3JfZHJhbV9zcGVlZF9jaGFuZ2VbM11bOF07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IGRpc3BjbGtfcmVxdWlyZWRfZm9yX2RyYW1fc3BlZWRfY2hhbmdlX3BpcGVbM11bOF07CjE0NDc0
OiAgc3RydWN0IGJ3X2ZpeGVkIGJsYWNrb3V0X2R1cmF0aW9uX21hcmdpblszXVs4XTsKMTQ0NzQ6
ICBzdHJ1Y3QgYndfZml4ZWQgZGlzcGNsa19yZXF1aXJlZF9mb3JfYmxhY2tvdXRfZHVyYXRpb25b
M11bOF07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRpc3BjbGtfcmVxdWlyZWRfZm9yX2JsYWNr
b3V0X3JlY292ZXJ5WzNdWzhdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBkbWlmX3JlcXVpcmVk
X3NjbGtfZm9yX3VyZ2VudF9sYXRlbmN5WzZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBid19jYWxjc19pbml0KAoxNDQ3NDogIHN0cnVjdCBi
d19jYWxjc19kY2VpcCAqYndfZGNlaXAsCjE0NDc0OiAgc3RydWN0IGJ3X2NhbGNzX3ZiaW9zICpi
d192YmlvcywKMTQ0NzQ6ICBzdHJ1Y3QgaHdfYXNpY19pZCBhc2ljX2lkKTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBi
d19jYWxjcygKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogIGNvbnN0IHN0
cnVjdCBid19jYWxjc19kY2VpcCAqZGNlaXAsCjE0NDc0OiAgY29uc3Qgc3RydWN0IGJ3X2NhbGNz
X3ZiaW9zICp2YmlvcywKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGUsCjE0NDc0
OiAgaW50IHBpcGVfY291bnQsCjE0NDc0OiAgc3RydWN0IGRjZV9id19vdXRwdXQgKmNhbGNzX291
dHB1dCk7CjE0NDc0OiAjIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2Rjbl9jYWxjcy5oIiAxCjE0NDc0OiAjIDM0ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2Rjbl9jYWxjcy5o
IgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
aW5jLy4uL2RtbC9kaXNwbGF5X21vZGVfbGliLmgiIDEKMTQ0NzQ6ICMgMzUgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvZGNuX2NhbGNzLmgiIDIKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGM7CjE0NDc0OiBzdHJ1Y3QgZGNfc3RhdGU7CjE0NDc0
OiAjIDUxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2Rj
bl9jYWxjcy5oIgoxNDQ3NDogZW51bSBkY25fYndfZGVmcyB7CjE0NDc0OiAgZGNuX2J3X3ZfbWlu
MHA2NSwKMTQ0NzQ6ICBkY25fYndfdl9taWQwcDcyLAoxNDQ3NDogIGRjbl9id192X25vbTBwOCwK
MTQ0NzQ6ICBkY25fYndfdl9tYXgwcDksCjE0NDc0OiAgZGNuX2J3X3ZfbWF4MHA5MSwKMTQ0NzQ6
ICBkY25fYndfbm9fc3VwcG9ydCA9IDUsCjE0NDc0OiAgZGNuX2J3X3llcywKMTQ0NzQ6ICBkY25f
YndfaG9yLAoxNDQ3NDogIGRjbl9id192ZXJ0LAoxNDQ3NDogIGRjbl9id19vdmVycmlkZSwKMTQ0
NzQ6ICBkY25fYndfcmdiX3N1Yl82NCwKMTQ0NzQ6ICBkY25fYndfcmdiX3N1Yl8zMiwKMTQ0NzQ6
ICBkY25fYndfcmdiX3N1Yl8xNiwKMTQ0NzQ6ICBkY25fYndfbm8sCjE0NDc0OiAgZGNuX2J3X3N3
X2xpbmVhciwKMTQ0NzQ6ICBkY25fYndfc3dfNF9rYl9kLAoxNDQ3NDogIGRjbl9id19zd180X2ti
X2RfeCwKMTQ0NzQ6ICBkY25fYndfc3dfNjRfa2JfZCwKMTQ0NzQ6ICBkY25fYndfc3dfNjRfa2Jf
ZF90LAoxNDQ3NDogIGRjbl9id19zd182NF9rYl9kX3gsCjE0NDc0OiAgZGNuX2J3X3N3X3Zhcl9k
LAoxNDQ3NDogIGRjbl9id19zd192YXJfZF94LAoxNDQ3NDogIGRjbl9id195dXY0MjBfc3ViXzgs
CjE0NDc0OiAgZGNuX2J3X3N3XzRfa2JfcywKMTQ0NzQ6ICBkY25fYndfc3dfNF9rYl9zX3gsCjE0
NDc0OiAgZGNuX2J3X3N3XzY0X2tiX3MsCjE0NDc0OiAgZGNuX2J3X3N3XzY0X2tiX3NfdCwKMTQ0
NzQ6ICBkY25fYndfc3dfNjRfa2Jfc194LAoxNDQ3NDogIGRjbl9id193cml0ZWJhY2ssCjE0NDc0
OiAgZGNuX2J3XzQ0NCwKMTQ0NzQ6ICBkY25fYndfZHAsCjE0NDc0OiAgZGNuX2J3XzQyMCwKMTQ0
NzQ6ICBkY25fYndfaGRtaSwKMTQ0NzQ6ICBkY25fYndfc3dfdmFyX3MsCjE0NDc0OiAgZGNuX2J3
X3N3X3Zhcl9zX3gsCjE0NDc0OiAgZGNuX2J3X3l1djQyMF9zdWJfMTAsCjE0NDc0OiAgZGNuX2J3
X3N1cHBvcnRlZF9pbl92X2FjdGl2ZSwKMTQ0NzQ6ICBkY25fYndfc3VwcG9ydGVkX2luX3ZfYmxh
bmssCjE0NDc0OiAgZGNuX2J3X25vdF9zdXBwb3J0ZWQsCjE0NDc0OiAgZGNuX2J3X25hLAoxNDQ3
NDogIGRjbl9id19lbmNvZGVyXzhicGMsCjE0NDc0OiAgZGNuX2J3X2VuY29kZXJfMTBicGMsCjE0
NDc0OiAgZGNuX2J3X2VuY29kZXJfMTJicGMsCjE0NDc0OiAgZGNuX2J3X2VuY29kZXJfMTZicGMs
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY25fYndfaW50ZXJuYWxfdmFycyB7CjE0NDc0OiAgZmxvYXQgdm9sdGFnZVs1ICsg
MV07CjE0NDc0OiAgZmxvYXQgbWF4X2Rpc3BjbGtbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG1heF9k
cHBjbGtbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGRjZmNsa19wZXJfc3RhdGVbNSArIDFdOwoxNDQ3
NDogIGZsb2F0IHBoeWNsa19wZXJfc3RhdGVbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGZhYnJpY19h
bmRfZHJhbV9iYW5kd2lkdGhfcGVyX3N0YXRlWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBzcl9leGl0
X3RpbWU7CjE0NDc0OiAgZmxvYXQgc3JfZW50ZXJfcGx1c19leGl0X3RpbWU7CjE0NDc0OiAgZmxv
YXQgZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeTsKMTQ0NzQ6ICBmbG9hdCB1cmdlbnRfbGF0ZW5j
eTsKMTQ0NzQ6ICBmbG9hdCB3cml0ZV9iYWNrX2xhdGVuY3k7CjE0NDc0OiAgZmxvYXQgcGVyY2Vu
dF9vZl9pZGVhbF9kcmFtYndfcmVjZWl2ZWRfYWZ0ZXJfdXJnX2xhdGVuY3k7CjE0NDc0OiAgZmxv
YXQgZGNmY2xrdl9tYXgwcDk7CjE0NDc0OiAgZmxvYXQgZGNmY2xrdl9ub20wcDg7CjE0NDc0OiAg
ZmxvYXQgZGNmY2xrdl9taWQwcDcyOwoxNDQ3NDogIGZsb2F0IGRjZmNsa3ZfbWluMHA2NTsKMTQ0
NzQ6ICBmbG9hdCBtYXhfZGlzcGNsa192bWF4MHA5OwoxNDQ3NDogIGZsb2F0IG1heF9kcHBjbGtf
dm1heDBwOTsKMTQ0NzQ6ICBmbG9hdCBtYXhfZGlzcGNsa192bm9tMHA4OwoxNDQ3NDogIGZsb2F0
IG1heF9kcHBjbGtfdm5vbTBwODsKMTQ0NzQ6ICBmbG9hdCBtYXhfZGlzcGNsa192bWlkMHA3MjsK
MTQ0NzQ6ICBmbG9hdCBtYXhfZHBwY2xrX3ZtaWQwcDcyOwoxNDQ3NDogIGZsb2F0IG1heF9kaXNw
Y2xrX3ZtaW4wcDY1OwoxNDQ3NDogIGZsb2F0IG1heF9kcHBjbGtfdm1pbjBwNjU7CjE0NDc0OiAg
ZmxvYXQgc29jY2xrOwoxNDQ3NDogIGZsb2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGhfdm1h
eDBwOTsKMTQ0NzQ6ICBmbG9hdCBmYWJyaWNfYW5kX2RyYW1fYmFuZHdpZHRoX3Zub20wcDg7CjE0
NDc0OiAgZmxvYXQgZmFicmljX2FuZF9kcmFtX2JhbmR3aWR0aF92bWlkMHA3MjsKMTQ0NzQ6ICBm
bG9hdCBmYWJyaWNfYW5kX2RyYW1fYmFuZHdpZHRoX3ZtaW4wcDY1OwoxNDQ3NDogIGZsb2F0IHJv
dW5kX3RyaXBfcGluZ19sYXRlbmN5X2N5Y2xlczsKMTQ0NzQ6ICBmbG9hdCB1cmdlbnRfb3V0X29m
X29yZGVyX3JldHVybl9wZXJfY2hhbm5lbDsKMTQ0NzQ6ICBmbG9hdCBudW1iZXJfb2ZfY2hhbm5l
bHM7CjE0NDc0OiAgZmxvYXQgdm1tX3BhZ2Vfc2l6ZTsKMTQ0NzQ6ICBmbG9hdCByZXR1cm5fYnVz
X3dpZHRoOwoxNDQ3NDogIGZsb2F0IHJvYl9idWZmZXJfc2l6ZV9pbl9rYnl0ZTsKMTQ0NzQ6ICBm
bG9hdCBkZXRfYnVmZmVyX3NpemVfaW5fa2J5dGU7CjE0NDc0OiAgZmxvYXQgZHBwX291dHB1dF9i
dWZmZXJfcGl4ZWxzOwoxNDQ3NDogIGZsb2F0IG9wcF9vdXRwdXRfYnVmZmVyX2xpbmVzOwoxNDQ3
NDogIGZsb2F0IHBpeGVsX2NodW5rX3NpemVfaW5fa2J5dGU7CjE0NDc0OiAgZmxvYXQgcHRlX2No
dW5rX3NpemU7CjE0NDc0OiAgZmxvYXQgbWV0YV9jaHVua19zaXplOwoxNDQ3NDogIGZsb2F0IHdy
aXRlYmFja19jaHVua19zaXplOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgb2RtX2NhcGFiaWxp
dHk7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBkc2NfY2FwYWJpbGl0eTsKMTQ0NzQ6ICBmbG9h
dCBsaW5lX2J1ZmZlcl9zaXplOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgaXNfbGluZV9idWZm
ZXJfYnBwX2ZpeGVkOwoxNDQ3NDogIGZsb2F0IGxpbmVfYnVmZmVyX2ZpeGVkX2JwcDsKMTQ0NzQ6
ICBmbG9hdCBtYXhfbGluZV9idWZmZXJfbGluZXM7CjE0NDc0OiAgZmxvYXQgd3JpdGViYWNrX2x1
bWFfYnVmZmVyX3NpemU7CjE0NDc0OiAgZmxvYXQgd3JpdGViYWNrX2Nocm9tYV9idWZmZXJfc2l6
ZTsKMTQ0NzQ6ICBmbG9hdCBtYXhfbnVtX2RwcDsKMTQ0NzQ6ICBmbG9hdCBtYXhfbnVtX3dyaXRl
YmFjazsKMTQ0NzQ6ICBmbG9hdCBtYXhfZGNodWJfdG9wc2NsX3Rocm91Z2hwdXQ7CjE0NDc0OiAg
ZmxvYXQgbWF4X3BzY2xfdG9sYl90aHJvdWdocHV0OwoxNDQ3NDogIGZsb2F0IG1heF9sYl90b3Zz
Y2xfdGhyb3VnaHB1dDsKMTQ0NzQ6ICBmbG9hdCBtYXhfdnNjbF90b2hzY2xfdGhyb3VnaHB1dDsK
MTQ0NzQ6ICBmbG9hdCBtYXhfaHNjbF9yYXRpbzsKMTQ0NzQ6ICBmbG9hdCBtYXhfdnNjbF9yYXRp
bzsKMTQ0NzQ6ICBmbG9hdCBtYXhfaHNjbF90YXBzOwoxNDQ3NDogIGZsb2F0IG1heF92c2NsX3Rh
cHM7CjE0NDc0OiAgZmxvYXQgdW5kZXJfc2Nhbl9mYWN0b3I7CjE0NDc0OiAgZmxvYXQgcGh5Y2xr
dl9tYXgwcDk7CjE0NDc0OiAgZmxvYXQgcGh5Y2xrdl9ub20wcDg7CjE0NDc0OiAgZmxvYXQgcGh5
Y2xrdl9taWQwcDcyOwoxNDQ3NDogIGZsb2F0IHBoeWNsa3ZfbWluMHA2NTsKMTQ0NzQ6ICBmbG9h
dCBwdGVfYnVmZmVyX3NpemVfaW5fcmVxdWVzdHM7CjE0NDc0OiAgZmxvYXQgZGlzcGNsa19yYW1w
aW5nX21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCBkb3duc3ByZWFkaW5nOwoxNDQ3NDogIGZsb2F0IG1h
eF9pbnRlcl9kY25fdGlsZV9yZXBlYXRlcnM7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBjYW5f
dnN0YXJ0dXBfbGluZXNfZXhjZWVkX3ZzeW5jX3BsdXNfYmFja19wb3JjaF9saW5lc19taW51c19v
bmU7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBidWdfZm9yY2luZ19sdW1hX2FuZF9jaHJvbWFf
cmVxdWVzdF90b19zYW1lX3NpemVfZml4ZWQ7CjE0NDc0OiAgaW50IG1vZGU7CjE0NDc0OiAgZmxv
YXQgdmlld3BvcnRfd2lkdGhbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGh0b3RhbFs1ICsgMV07CjE0
NDc0OiAgZmxvYXQgdnRvdGFsWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB2X3N5bmNfcGx1c19iYWNr
X3BvcmNoWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB2YWN0aXZlWzUgKyAxXTsKMTQ0NzQ6ICBmbG9h
dCBwaXhlbF9jbG9ja1s1ICsgMV07CjE0NDc0OiAgZmxvYXQgdmlld3BvcnRfaGVpZ2h0WzUgKyAx
XTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGRjY19lbmFibGVbNSArIDFdOwoxNDQ3NDogIGZs
b2F0IGRjY19yYXRlWzUgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIHNvdXJjZV9zY2Fu
WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBsYl9iaXRfcGVyX3BpeGVsWzUgKyAxXTsKMTQ0NzQ6ICBl
bnVtIGRjbl9id19kZWZzIHNvdXJjZV9waXhlbF9mb3JtYXRbNSArIDFdOwoxNDQ3NDogIGVudW0g
ZGNuX2J3X2RlZnMgc291cmNlX3N1cmZhY2VfbW9kZVs1ICsgMV07CjE0NDc0OiAgZW51bSBkY25f
YndfZGVmcyBvdXRwdXRfZm9ybWF0WzUgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIG91
dHB1dF9kZWVwX2NvbG9yWzUgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIG91dHB1dFs1
ICsgMV07CjE0NDc0OiAgZmxvYXQgc2NhbGVyX3JlY19vdXRfd2lkdGhbNSArIDFdOwoxNDQ3NDog
IGZsb2F0IHNjYWxlcl9yZWNvdXRfaGVpZ2h0WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB1bmRlcnNj
YW5fb3V0cHV0WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBpbnRlcmxhY2Vfb3V0cHV0WzUgKyAxXTsK
MTQ0NzQ6ICBmbG9hdCBvdmVycmlkZV9odGFfcHNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG92ZXJy
aWRlX3Z0YV9wc1s1ICsgMV07CjE0NDc0OiAgZmxvYXQgb3ZlcnJpZGVfaHRhX3BzY2hyb21hWzUg
KyAxXTsKMTQ0NzQ6ICBmbG9hdCBvdmVycmlkZV92dGFfcHNjaHJvbWFbNSArIDFdOwoxNDQ3NDog
IGZsb2F0IHVyZ2VudF9sYXRlbmN5X3N1cHBvcnRfdXNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGhf
cmF0aW9bNSArIDFdOwoxNDQ3NDogIGZsb2F0IHZfcmF0aW9bNSArIDFdOwoxNDQ3NDogIGZsb2F0
IGh0YXBzWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB2dGFwc1s1ICsgMV07CjE0NDc0OiAgZmxvYXQg
aHRhX3BzY2hyb21hWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB2dGFfcHNjaHJvbWFbNSArIDFdOwox
NDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgcHRlX2VuYWJsZTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19k
ZWZzIHN5bmNocm9uaXplZF92Ymxhbms7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyB0YV9wc2Nh
bGN1bGF0aW9uOwoxNDQ3NDogIGludCB2b2x0YWdlX292ZXJyaWRlX2xldmVsOwoxNDQ3NDogIGlu
dCBudW1iZXJfb2ZfYWN0aXZlX3BsYW5lczsKMTQ0NzQ6ICBpbnQgdm9sdGFnZV9sZXZlbDsKMTQ0
NzQ6ICBlbnVtIGRjbl9id19kZWZzIGltbWVkaWF0ZV9mbGlwX3N1cHBvcnRlZDsKMTQ0NzQ6ICBm
bG9hdCBkY2ZjbGs7CjE0NDc0OiAgZmxvYXQgbWF4X3BoeWNsazsKMTQ0NzQ6ICBmbG9hdCBmYWJy
aWNfYW5kX2RyYW1fYmFuZHdpZHRoOwoxNDQ3NDogIGZsb2F0IGRwcF9wZXJfcGxhbmVfcGVyX3Jh
dGlvWzEgKyAxXVs1ICsgMV07CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBkaXNwY2xrX2RwcGNs
a19zdXBwb3J0X3Blcl9yYXRpb1sxICsgMV07CjE0NDc0OiAgZmxvYXQgcmVxdWlyZWRfZGlzcGNs
a19wZXJfcmF0aW9bMSArIDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgZXJyb3JfbWVzc2Fn
ZVsxICsgMV07CjE0NDc0OiAgaW50IGRpc3BjbGtfZHBwY2xrX3JhdGlvOwoxNDQ3NDogIGZsb2F0
IGRwcF9wZXJfcGxhbmVbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGRldF9idWZmZXJfc2l6ZV95WzUg
KyAxXTsKMTQ0NzQ6ICBmbG9hdCBkZXRfYnVmZmVyX3NpemVfY1s1ICsgMV07CjE0NDc0OiAgZmxv
YXQgc3dhdGhfaGVpZ2h0X3lbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHN3YXRoX2hlaWdodF9jWzUg
KyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGZpbmFsX2Vycm9yX21lc3NhZ2U7CjE0NDc0
OiAgZmxvYXQgZnJlcXVlbmN5OwoxNDQ3NDogIGZsb2F0IGhlYWRlcl9saW5lOwoxNDQ3NDogIGZs
b2F0IGhlYWRlcjsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIHZvbHRhZ2Vfb3ZlcnJpZGU7CjE0
NDc0OiAgZW51bSBkY25fYndfZGVmcyBhbGxvd19kaWZmZXJlbnRfaHJhdGlvX3ZyYXRpbzsKMTQ0
NzQ6ICBmbG9hdCBhY2NlcHRhYmxlX3F1YWxpdHlfaHRhX3BzOwoxNDQ3NDogIGZsb2F0IGFjY2Vw
dGFibGVfcXVhbGl0eV92dGFfcHM7CjE0NDc0OiAgZmxvYXQgbm9fb2ZfZHBwWzUgKyAxXVsxICsg
MV1bNSArIDFdOwoxNDQ3NDogIGZsb2F0IHN3YXRoX3dpZHRoX3lwZXJfc3RhdGVbNSArIDFdWzEg
KyAxXVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgc3dhdGhfaGVpZ2h0X3lwZXJfc3RhdGVbNSArIDFd
WzEgKyAxXVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgc3dhdGhfaGVpZ2h0X2NwZXJfc3RhdGVbNSAr
IDFdWzEgKyAxXVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgdXJnZW50X2xhdGVuY3lfc3VwcG9ydF91
c19wZXJfc3RhdGVbNSArIDFdWzEgKyAxXVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgdl9yYXRpb19w
cmVfeXdpdGhfaW1tZWRpYXRlX2ZsaXBbNSArIDFdWzEgKyAxXVs1ICsgMV07CjE0NDc0OiAgZmxv
YXQgdl9yYXRpb19wcmVfY3dpdGhfaW1tZWRpYXRlX2ZsaXBbNSArIDFdWzEgKyAxXVs1ICsgMV07
CjE0NDc0OiAgZmxvYXQgcmVxdWlyZWRfcHJlZmV0Y2hfcGl4ZWxfZGF0YV9id193aXRoX2ltbWVk
aWF0ZV9mbGlwWzUgKyAxXVsxICsgMV1bNSArIDFdOwoxNDQ3NDogIGZsb2F0IHZfcmF0aW9fcHJl
X3l3aXRob3V0X2ltbWVkaWF0ZV9mbGlwWzUgKyAxXVsxICsgMV1bNSArIDFdOwoxNDQ3NDogIGZs
b2F0IHZfcmF0aW9fcHJlX2N3aXRob3V0X2ltbWVkaWF0ZV9mbGlwWzUgKyAxXVsxICsgMV1bNSAr
IDFdOwoxNDQ3NDogIGZsb2F0IHJlcXVpcmVkX3ByZWZldGNoX3BpeGVsX2RhdGFfYndfd2l0aG91
dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdWzUgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9i
d19kZWZzIHByZWZldGNoX3N1cHBvcnRlZF93aXRoX2ltbWVkaWF0ZV9mbGlwWzUgKyAxXVsxICsg
MV07CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBwcmVmZXRjaF9zdXBwb3J0ZWRfd2l0aG91dF9p
bW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgdl9y
YXRpb19pbl9wcmVmZXRjaF9zdXBwb3J0ZWRfd2l0aF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSAr
IDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgdl9yYXRpb19pbl9wcmVmZXRjaF9zdXBwb3J0
ZWRfd2l0aG91dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdOwoxNDQ3NDogIGZsb2F0IHJl
cXVpcmVkX2Rpc3BjbGtbNSArIDFdWzEgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGRp
c3BjbGtfZHBwY2xrX3N1cHBvcnRbNSArIDFdWzEgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19k
ZWZzIHRvdGFsX2F2YWlsYWJsZV9waXBlc19zdXBwb3J0WzUgKyAxXVsxICsgMV07CjE0NDc0OiAg
ZmxvYXQgdG90YWxfbnVtYmVyX29mX2FjdGl2ZV9kcHBbNSArIDFdWzEgKyAxXTsKMTQ0NzQ6ICBm
bG9hdCB0b3RhbF9udW1iZXJfb2ZfZGNjX2FjdGl2ZV9kcHBbNSArIDFdWzEgKyAxXTsKMTQ0NzQ6
ICBlbnVtIGRjbl9id19kZWZzIHVyZ2VudF9sYXRlbmN5X3N1cHBvcnRbNSArIDFdWzEgKyAxXTsK
MTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIG1vZGVfc3VwcG9ydF93aXRoX2ltbWVkaWF0ZV9mbGlw
WzUgKyAxXVsxICsgMV07CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBtb2RlX3N1cHBvcnRfd2l0
aG91dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdOwoxNDQ3NDogIGZsb2F0IHJldHVybl9i
d19wZXJfc3RhdGVbNSArIDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgZGlvX3N1cHBvcnRb
NSArIDFdOwoxNDQ3NDogIGZsb2F0IHVyZ2VudF9yb3VuZF90cmlwX2FuZF9vdXRfb2Zfb3JkZXJf
bGF0ZW5jeV9wZXJfc3RhdGVbNSArIDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgcm9iX3N1
cHBvcnRbNSArIDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgYmFuZHdpZHRoX3N1cHBvcnRb
NSArIDFdOwoxNDQ3NDogIGZsb2F0IHByZWZldGNoX2J3WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBt
ZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG1ldGFfcm93X2J5
dGVzWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBkcHRlX2J5dGVzX3Blcl9yb3dbNSArIDFdOwoxNDQ3
NDogIGZsb2F0IHByZWZldGNoX2xpbmVzX3lbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHByZWZldGNo
X2xpbmVzX2NbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG1heF9udW1fc3dfeVs1ICsgMV07CjE0NDc0
OiAgZmxvYXQgbWF4X251bV9zd19jWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBsaW5lX3RpbWVzX2Zv
cl9wcmVmZXRjaFs1ICsgMV07CjE0NDc0OiAgZmxvYXQgbGluZXNfZm9yX21ldGFfcHRlX3dpdGhf
aW1tZWRpYXRlX2ZsaXBbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGxpbmVzX2Zvcl9tZXRhX3B0ZV93
aXRob3V0X2ltbWVkaWF0ZV9mbGlwWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBsaW5lc19mb3JfbWV0
YV9hbmRfZHB0ZV9yb3dfd2l0aF9pbW1lZGlhdGVfZmxpcFs1ICsgMV07CjE0NDc0OiAgZmxvYXQg
bGluZXNfZm9yX21ldGFfYW5kX2RwdGVfcm93X3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXBbNSArIDFd
OwoxNDQ3NDogIGZsb2F0IG1pbl9kcHBjbGtfdXNpbmdfc2luZ2xlX2RwcFs1ICsgMV07CjE0NDc0
OiAgZmxvYXQgc3dhdGhfd2lkdGhfeXNpbmdsZV9kcHBbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGJ5
dGVfcGVyX3BpeGVsX2luX2RldHlbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGJ5dGVfcGVyX3BpeGVs
X2luX2RldGNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG51bWJlcl9vZl9kcHBfcmVxdWlyZWRfZm9y
X2RldF9hbmRfbGJfc2l6ZVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgcmVxdWlyZWRfcGh5Y2xrWzUg
KyAxXTsKMTQ0NzQ6ICBmbG9hdCByZWFkMjU2X2Jsb2NrX2hlaWdodF95WzUgKyAxXTsKMTQ0NzQ6
ICBmbG9hdCByZWFkMjU2X2Jsb2NrX3dpZHRoX3lbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHJlYWQy
NTZfYmxvY2tfaGVpZ2h0X2NbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHJlYWQyNTZfYmxvY2tfd2lk
dGhfY1s1ICsgMV07CjE0NDc0OiAgZmxvYXQgbWF4X3N3YXRoX2hlaWdodF95WzUgKyAxXTsKMTQ0
NzQ6ICBmbG9hdCBtYXhfc3dhdGhfaGVpZ2h0X2NbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG1pbl9z
d2F0aF9oZWlnaHRfeVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgbWluX3N3YXRoX2hlaWdodF9jWzUg
KyAxXTsKMTQ0NzQ6ICBmbG9hdCByZWFkX2JhbmR3aWR0aFs1ICsgMV07CjE0NDc0OiAgZmxvYXQg
d3JpdGVfYmFuZHdpZHRoWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBwc2NsX2ZhY3Rvcls1ICsgMV07
CjE0NDc0OiAgZmxvYXQgcHNjbF9mYWN0b3JfY2hyb21hWzUgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRj
bl9id19kZWZzIHNjYWxlX3JhdGlvX3N1cHBvcnQ7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBz
b3VyY2VfZm9ybWF0X3BpeGVsX2FuZF9zY2FuX3N1cHBvcnQ7CjE0NDc0OiAgZmxvYXQgdG90YWxf
cmVhZF9iYW5kd2lkdGhfY29uc3VtZWRfZ2J5dGVfcGVyX3NlY29uZDsKMTQ0NzQ6ICBmbG9hdCB0
b3RhbF93cml0ZV9iYW5kd2lkdGhfY29uc3VtZWRfZ2J5dGVfcGVyX3NlY29uZDsKMTQ0NzQ6ICBm
bG9hdCB0b3RhbF9iYW5kd2lkdGhfY29uc3VtZWRfZ2J5dGVfcGVyX3NlY29uZDsKMTQ0NzQ6ICBl
bnVtIGRjbl9id19kZWZzIGRjY19lbmFibGVkX2luX2FueV9wbGFuZTsKMTQ0NzQ6ICBmbG9hdCBy
ZXR1cm5fYndfdG9kY25fcGVyX3N0YXRlOwoxNDQ3NDogIGZsb2F0IGNyaXRpY2FsX3BvaW50Owox
NDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgd3JpdGViYWNrX2xhdGVuY3lfc3VwcG9ydDsKMTQ0NzQ6
ICBmbG9hdCByZXF1aXJlZF9vdXRwdXRfYnc7CjE0NDc0OiAgZmxvYXQgdG90YWxfbnVtYmVyX29m
X2FjdGl2ZV93cml0ZWJhY2s7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyB0b3RhbF9hdmFpbGFi
bGVfd3JpdGViYWNrX3N1cHBvcnQ7CjE0NDc0OiAgZmxvYXQgbWF4aW11bV9zd2F0aF93aWR0aDsK
MTQ0NzQ6ICBmbG9hdCBudW1iZXJfb2ZfZHBwX3JlcXVpcmVkX2Zvcl9kZXRfc2l6ZTsKMTQ0NzQ6
ICBmbG9hdCBudW1iZXJfb2ZfZHBwX3JlcXVpcmVkX2Zvcl9sYl9zaXplOwoxNDQ3NDogIGZsb2F0
IG1pbl9kaXNwY2xrX3VzaW5nX3NpbmdsZV9kcHA7CjE0NDc0OiAgZmxvYXQgbWluX2Rpc3BjbGtf
dXNpbmdfZHVhbF9kcHA7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyB2aWV3cG9ydF9zaXplX3N1
cHBvcnQ7CjE0NDc0OiAgZmxvYXQgc3dhdGhfd2lkdGhfZ3JhbnVsYXJpdHlfeTsKMTQ0NzQ6ICBm
bG9hdCByb3VuZGVkX3VwX21heF9zd2F0aF9zaXplX2J5dGVzX3k7CjE0NDc0OiAgZmxvYXQgc3dh
dGhfd2lkdGhfZ3JhbnVsYXJpdHlfYzsKMTQ0NzQ6ICBmbG9hdCByb3VuZGVkX3VwX21heF9zd2F0
aF9zaXplX2J5dGVzX2M7CjE0NDc0OiAgZmxvYXQgbGluZXNfaW5fZGV0X2x1bWE7CjE0NDc0OiAg
ZmxvYXQgbGluZXNfaW5fZGV0X2Nocm9tYTsKMTQ0NzQ6ICBmbG9hdCBlZmZlY3RpdmVfbGJfbGF0
ZW5jeV9oaWRpbmdfc291cmNlX2xpbmVzX2x1bWE7CjE0NDc0OiAgZmxvYXQgZWZmZWN0aXZlX2xi
X2xhdGVuY3lfaGlkaW5nX3NvdXJjZV9saW5lc19jaHJvbWE7CjE0NDc0OiAgZmxvYXQgZWZmZWN0
aXZlX2RldGxiX2xpbmVzX2x1bWE7CjE0NDc0OiAgZmxvYXQgZWZmZWN0aXZlX2RldGxiX2xpbmVz
X2Nocm9tYTsKMTQ0NzQ6ICBmbG9hdCBwcm9qZWN0ZWRfZGNmY2xrX2RlZXBfc2xlZXA7CjE0NDc0
OiAgZmxvYXQgbWV0YV9yZXFfaGVpZ2h0X3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9yZXFfd2lkdGhf
eTsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3N1cmZhY2Vfd2lkdGhfeTsKMTQ0NzQ6ICBmbG9hdCBtZXRh
X3N1cmZhY2VfaGVpZ2h0X3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1l
X3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9yb3dfYnl0ZXNfeTsKMTQ0NzQ6ICBmbG9hdCBtYWNyb190
aWxlX2Jsb2NrX3NpemVfYnl0ZXNfeTsKMTQ0NzQ6ICBmbG9hdCBtYWNyb190aWxlX2Jsb2NrX2hl
aWdodF95OwoxNDQ3NDogIGZsb2F0IGRhdGFfcHRlX3JlcV9oZWlnaHRfeTsKMTQ0NzQ6ICBmbG9h
dCBkYXRhX3B0ZV9yZXFfd2lkdGhfeTsKMTQ0NzQ6ICBmbG9hdCBkcHRlX2J5dGVzX3Blcl9yb3df
eTsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3JlcV9oZWlnaHRfYzsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3Jl
cV93aWR0aF9jOwoxNDQ3NDogIGZsb2F0IG1ldGFfc3VyZmFjZV93aWR0aF9jOwoxNDQ3NDogIGZs
b2F0IG1ldGFfc3VyZmFjZV9oZWlnaHRfYzsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3B0ZV9ieXRlc19w
ZXJfZnJhbWVfYzsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3Jvd19ieXRlc19jOwoxNDQ3NDogIGZsb2F0
IG1hY3JvX3RpbGVfYmxvY2tfc2l6ZV9ieXRlc19jOwoxNDQ3NDogIGZsb2F0IG1hY3JvX3RpbGVf
YmxvY2tfaGVpZ2h0X2M7CjE0NDc0OiAgZmxvYXQgbWFjcm9fdGlsZV9ibG9ja193aWR0aF9jOwox
NDQ3NDogIGZsb2F0IGRhdGFfcHRlX3JlcV9oZWlnaHRfYzsKMTQ0NzQ6ICBmbG9hdCBkYXRhX3B0
ZV9yZXFfd2lkdGhfYzsKMTQ0NzQ6ICBmbG9hdCBkcHRlX2J5dGVzX3Blcl9yb3dfYzsKMTQ0NzQ6
ICBmbG9hdCB2X2luaXRfeTsKMTQ0NzQ6ICBmbG9hdCBtYXhfcGFydGlhbF9zd195OwoxNDQ3NDog
IGZsb2F0IHZfaW5pdF9jOwoxNDQ3NDogIGZsb2F0IG1heF9wYXJ0aWFsX3N3X2M7CjE0NDc0OiAg
ZmxvYXQgZHN0X3hfYWZ0ZXJfc2NhbGVyOwoxNDQ3NDogIGZsb2F0IGRzdF95X2FmdGVyX3NjYWxl
cjsKMTQ0NzQ6ICBmbG9hdCB0aW1lX2NhbGM7CjE0NDc0OiAgZmxvYXQgdl91cGRhdGVfb2Zmc2V0
WzUgKyAxXVsyXTsKMTQ0NzQ6ICBmbG9hdCB0b3RhbF9yZXBlYXRlcl9kZWxheTsKMTQ0NzQ6ICBm
bG9hdCB2X3VwZGF0ZV93aWR0aFs1ICsgMV1bMl07CjE0NDc0OiAgZmxvYXQgdl9yZWFkeV9vZmZz
ZXRbNSArIDFdWzJdOwoxNDQ3NDogIGZsb2F0IHRpbWVfc2V0dXA7CjE0NDc0OiAgZmxvYXQgZXh0
cmFfbGF0ZW5jeTsKMTQ0NzQ6ICBmbG9hdCBtYXhpbXVtX3ZzdGFydHVwOwoxNDQ3NDogIGZsb2F0
IGJ3X2F2YWlsYWJsZV9mb3JfaW1tZWRpYXRlX2ZsaXA7CjE0NDc0OiAgZmxvYXQgdG90YWxfaW1t
ZWRpYXRlX2ZsaXBfYnl0ZXNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHRpbWVfZm9yX21ldGFfcHRl
X3dpdGhfaW1tZWRpYXRlX2ZsaXA7CjE0NDc0OiAgZmxvYXQgdGltZV9mb3JfbWV0YV9wdGVfd2l0
aG91dF9pbW1lZGlhdGVfZmxpcDsKMTQ0NzQ6ICBmbG9hdCB0aW1lX2Zvcl9tZXRhX2FuZF9kcHRl
X3Jvd193aXRoX2ltbWVkaWF0ZV9mbGlwOwoxNDQ3NDogIGZsb2F0IHRpbWVfZm9yX21ldGFfYW5k
X2RwdGVfcm93X3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXA7CjE0NDc0OiAgZmxvYXQgbGluZV90aW1l
c190b19yZXF1ZXN0X3ByZWZldGNoX3BpeGVsX2RhdGFfd2l0aF9pbW1lZGlhdGVfZmxpcDsKMTQ0
NzQ6ICBmbG9hdCBsaW5lX3RpbWVzX3RvX3JlcXVlc3RfcHJlZmV0Y2hfcGl4ZWxfZGF0YV93aXRo
b3V0X2ltbWVkaWF0ZV9mbGlwOwoxNDQ3NDogIGZsb2F0IG1heGltdW1fcmVhZF9iYW5kd2lkdGhf
d2l0aF9wcmVmZXRjaF93aXRoX2ltbWVkaWF0ZV9mbGlwOwoxNDQ3NDogIGZsb2F0IG1heGltdW1f
cmVhZF9iYW5kd2lkdGhfd2l0aF9wcmVmZXRjaF93aXRob3V0X2ltbWVkaWF0ZV9mbGlwOwoxNDQ3
NDogIGZsb2F0IHZvbHRhZ2VfbGV2ZWxfd2l0aF9pbW1lZGlhdGVfZmxpcDsKMTQ0NzQ6ICBmbG9h
dCB2b2x0YWdlX2xldmVsX3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXA7CjE0NDc0OiAgZmxvYXQgdG90
YWxfbnVtYmVyX29mX2FjdGl2ZV9kcHBfcGVyX3JhdGlvWzEgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBi
eXRlX3Blcl9waXhfZGV0eTsKMTQ0NzQ6ICBmbG9hdCBieXRlX3Blcl9waXhfZGV0YzsKMTQ0NzQ6
ICBmbG9hdCByZWFkMjU2X2J5dGVzX2Jsb2NrX2hlaWdodF95OwoxNDQ3NDogIGZsb2F0IHJlYWQy
NTZfYnl0ZXNfYmxvY2tfd2lkdGhfeTsKMTQ0NzQ6ICBmbG9hdCByZWFkMjU2X2J5dGVzX2Jsb2Nr
X2hlaWdodF9jOwoxNDQ3NDogIGZsb2F0IHJlYWQyNTZfYnl0ZXNfYmxvY2tfd2lkdGhfYzsKMTQ0
NzQ6ICBmbG9hdCBtYXhpbXVtX3N3YXRoX2hlaWdodF95OwoxNDQ3NDogIGZsb2F0IG1heGltdW1f
c3dhdGhfaGVpZ2h0X2M7CjE0NDc0OiAgZmxvYXQgbWluaW11bV9zd2F0aF9oZWlnaHRfeTsKMTQ0
NzQ6ICBmbG9hdCBtaW5pbXVtX3N3YXRoX2hlaWdodF9jOwoxNDQ3NDogIGZsb2F0IHN3YXRoX3dp
ZHRoOwoxNDQ3NDogIGZsb2F0IHByZWZldGNoX2JhbmR3aWR0aFs1ICsgMV07CjE0NDc0OiAgZmxv
YXQgdl9pbml0X3ByZV9maWxsX3lbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHZfaW5pdF9wcmVfZmls
bF9jWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBtYXhfbnVtX3N3YXRoX3lbNSArIDFdOwoxNDQ3NDog
IGZsb2F0IG1heF9udW1fc3dhdGhfY1s1ICsgMV07CjE0NDc0OiAgZmxvYXQgcHJlZmlsbF95WzUg
KyAxXTsKMTQ0NzQ6ICBmbG9hdCBwcmVmaWxsX2NbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHZfc3Rh
cnR1cFs1ICsgMV07CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBhbGxvd19kcmFtX2Nsb2NrX2No
YW5nZV9kdXJpbmdfdmJsYW5rWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBhbGxvd19kcmFtX3NlbGZf
cmVmcmVzaF9kdXJpbmdfdmJsYW5rWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB2X3JhdGlvX3ByZWZl
dGNoX3lbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHZfcmF0aW9fcHJlZmV0Y2hfY1s1ICsgMV07CjE0
NDc0OiAgZmxvYXQgZGVzdGluYXRpb25fbGluZXNfZm9yX3ByZWZldGNoWzUgKyAxXTsKMTQ0NzQ6
ICBmbG9hdCBkZXN0aW5hdGlvbl9saW5lc190b19yZXF1ZXN0X3ZtX2ludl9ibGFua1s1ICsgMV07
CjE0NDc0OiAgZmxvYXQgZGVzdGluYXRpb25fbGluZXNfdG9fcmVxdWVzdF9yb3dfaW5fdmJsYW5r
WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBtaW5fdHR1dl9ibGFua1s1ICsgMV07CjE0NDc0OiAgZmxv
YXQgYnl0ZV9wZXJfcGl4ZWxfZGV0eVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgYnl0ZV9wZXJfcGl4
ZWxfZGV0Y1s1ICsgMV07CjE0NDc0OiAgZmxvYXQgc3dhdGhfd2lkdGhfeVs1ICsgMV07CjE0NDc0
OiAgZmxvYXQgbGluZXNfaW5fZGV0eVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgbGluZXNfaW5fZGV0
eV9yb3VuZGVkX2Rvd25fdG9fc3dhdGhbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGxpbmVzX2luX2Rl
dGNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGxpbmVzX2luX2RldGNfcm91bmRlZF9kb3duX3RvX3N3
YXRoWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBmdWxsX2RldF9idWZmZXJpbmdfdGltZV95WzUgKyAx
XTsKMTQ0NzQ6ICBmbG9hdCBmdWxsX2RldF9idWZmZXJpbmdfdGltZV9jWzUgKyAxXTsKMTQ0NzQ6
ICBmbG9hdCBhY3RpdmVfZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV9tYXJnaW5bNSArIDFdOwox
NDQ3NDogIGZsb2F0IHZfYmxhbmtfZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV9tYXJnaW5bNSAr
IDFdOwoxNDQ3NDogIGZsb2F0IGRjZmNsa19kZWVwX3NsZWVwX3Blcl9wbGFuZVs1ICsgMV07CjE0
NDc0OiAgZmxvYXQgcmVhZF9iYW5kd2lkdGhfcGxhbmVfbHVtYVs1ICsgMV07CjE0NDc0OiAgZmxv
YXQgcmVhZF9iYW5kd2lkdGhfcGxhbmVfY2hyb21hWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBkaXNw
bGF5X3BpcGVfbGluZV9kZWxpdmVyeV90aW1lX2x1bWFbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGRp
c3BsYXlfcGlwZV9saW5lX2RlbGl2ZXJ5X3RpbWVfY2hyb21hWzUgKyAxXTsKMTQ0NzQ6ICBmbG9h
dCBkaXNwbGF5X3BpcGVfbGluZV9kZWxpdmVyeV90aW1lX2x1bWFfcHJlZmV0Y2hbNSArIDFdOwox
NDQ3NDogIGZsb2F0IGRpc3BsYXlfcGlwZV9saW5lX2RlbGl2ZXJ5X3RpbWVfY2hyb21hX3ByZWZl
dGNoWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBwaXhlbF9wdGVfYnl0ZXNfcGVyX3Jvd1s1ICsgMV07
CjE0NDc0OiAgZmxvYXQgbWV0YV9wdGVfYnl0ZXNfZnJhbWVbNSArIDFdOwoxNDQ3NDogIGZsb2F0
IG1ldGFfcm93X2J5dGVbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHByZWZldGNoX3NvdXJjZV9saW5l
c195WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBwcmVmZXRjaF9zb3VyY2VfbGluZXNfY1s1ICsgMV07
CjE0NDc0OiAgZmxvYXQgcHNjbF90aHJvdWdocHV0WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBwc2Ns
X3Rocm91Z2hwdXRfY2hyb21hWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBvdXRwdXRfYnBwaGRtaVs1
ICsgMV07CjE0NDc0OiAgZmxvYXQgb3V0cHV0X2JwcGRwNF9sYW5lX2hicls1ICsgMV07CjE0NDc0
OiAgZmxvYXQgb3V0cHV0X2JwcGRwNF9sYW5lX2hicjJbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG91
dHB1dF9icHBkcDRfbGFuZV9oYnIzWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBtYXhfdnN0YXJ0dXBf
bGluZXNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGRpc3BjbGtfd2l0aF9yYW1waW5nOwoxNDQ3NDog
IGZsb2F0IGRpc3BjbGtfd2l0aG91dF9yYW1waW5nOwoxNDQ3NDogIGZsb2F0IGRwcGNsa191c2lu
Z19zaW5nbGVfZHBwX2x1bWE7CjE0NDc0OiAgZmxvYXQgZHBwY2xrX3VzaW5nX3NpbmdsZV9kcHA7
CjE0NDc0OiAgZmxvYXQgZHBwY2xrX3VzaW5nX3NpbmdsZV9kcHBfY2hyb21hOwoxNDQ3NDogIGVu
dW0gZGNuX2J3X2RlZnMgb2RtX2NhcGFibGU7CjE0NDc0OiAgZmxvYXQgZGlzcGNsazsKMTQ0NzQ6
ICBmbG9hdCBkcHBjbGs7CjE0NDc0OiAgZmxvYXQgcmV0dXJuX2JhbmR3aWR0aF90b19kY247CjE0
NDc0OiAgZW51bSBkY25fYndfZGVmcyBkY2NfZW5hYmxlZF9hbnlfcGxhbmU7CjE0NDc0OiAgZmxv
YXQgcmV0dXJuX2J3OwoxNDQ3NDogIGZsb2F0IGNyaXRpY2FsX2NvbXByZXNzaW9uOwoxNDQ3NDog
IGZsb2F0IHRvdGFsX2RhdGFfcmVhZF9iYW5kd2lkdGg7CjE0NDc0OiAgZmxvYXQgdG90YWxfYWN0
aXZlX2RwcDsKMTQ0NzQ6ICBmbG9hdCB0b3RhbF9kY2NfYWN0aXZlX2RwcDsKMTQ0NzQ6ICBmbG9h
dCB1cmdlbnRfcm91bmRfdHJpcF9hbmRfb3V0X29mX29yZGVyX2xhdGVuY3k7CjE0NDc0OiAgZmxv
YXQgbGFzdF9waXhlbF9vZl9saW5lX2V4dHJhX3dhdGVybWFyazsKMTQ0NzQ6ICBmbG9hdCBkYXRh
X2ZhYnJpY19saW5lX2RlbGl2ZXJ5X3RpbWVfbHVtYTsKMTQ0NzQ6ICBmbG9hdCBkYXRhX2ZhYnJp
Y19saW5lX2RlbGl2ZXJ5X3RpbWVfY2hyb21hOwoxNDQ3NDogIGZsb2F0IHVyZ2VudF9leHRyYV9s
YXRlbmN5OwoxNDQ3NDogIGZsb2F0IHVyZ2VudF93YXRlcm1hcms7CjE0NDc0OiAgZmxvYXQgcHRl
bWV0YV91cmdlbnRfd2F0ZXJtYXJrOwoxNDQ3NDogIGZsb2F0IGRyYW1fY2xvY2tfY2hhbmdlX3dh
dGVybWFyazsKMTQ0NzQ6ICBmbG9hdCB0b3RhbF9hY3RpdmVfd3JpdGViYWNrOwoxNDQ3NDogIGZs
b2F0IHdyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5nZV93YXRlcm1hcms7CjE0NDc0OiAgZmxvYXQg
bWluX2Z1bGxfZGV0X2J1ZmZlcmluZ190aW1lOwoxNDQ3NDogIGZsb2F0IGZyYW1lX3RpbWVfZm9y
X21pbl9mdWxsX2RldF9idWZmZXJpbmdfdGltZTsKMTQ0NzQ6ICBmbG9hdCBhdmVyYWdlX3JlYWRf
YmFuZHdpZHRoX2dieXRlX3Blcl9zZWNvbmQ7CjE0NDc0OiAgZmxvYXQgcGFydF9vZl9idXJzdF90
aGF0X2ZpdHNfaW5fcm9iOwoxNDQ3NDogIGZsb2F0IHN0dXR0ZXJfYnVyc3RfdGltZTsKMTQ0NzQ6
ICBmbG9hdCBzdHV0dGVyX2VmZmljaWVuY3lfbm90X2luY2x1ZGluZ192Ymxhbms7CjE0NDc0OiAg
ZmxvYXQgc21hbGxlc3RfdmJsYW5rOwoxNDQ3NDogIGZsb2F0IHZfYmxhbmtfdGltZTsKMTQ0NzQ6
ICBmbG9hdCBzdHV0dGVyX2VmZmljaWVuY3k7CjE0NDc0OiAgZmxvYXQgZGNmX2Nsa19kZWVwX3Ns
ZWVwOwoxNDQ3NDogIGZsb2F0IHN0dXR0ZXJfZXhpdF93YXRlcm1hcms7CjE0NDc0OiAgZmxvYXQg
c3R1dHRlcl9lbnRlcl9wbHVzX2V4aXRfd2F0ZXJtYXJrOwoxNDQ3NDogIGZsb2F0IGVmZmVjdGl2
ZV9kZXRfcGx1c19sYl9saW5lc19sdW1hOwoxNDQ3NDogIGZsb2F0IHVyZ2VudF9sYXRlbmN5X3N1
cHBvcnRfdXNfbHVtYTsKMTQ0NzQ6ICBmbG9hdCBlZmZlY3RpdmVfZGV0X3BsdXNfbGJfbGluZXNf
Y2hyb21hOwoxNDQ3NDogIGZsb2F0IHVyZ2VudF9sYXRlbmN5X3N1cHBvcnRfdXNfY2hyb21hOwox
NDQ3NDogIGZsb2F0IG1pbl91cmdlbnRfbGF0ZW5jeV9zdXBwb3J0X3VzOwoxNDQ3NDogIGZsb2F0
IG5vbl91cmdlbnRfbGF0ZW5jeV90b2xlcmFuY2U7CjE0NDc0OiAgZmxvYXQgYmxvY2tfaGVpZ2h0
MjU2X2J5dGVzX3k7CjE0NDc0OiAgZmxvYXQgYmxvY2tfaGVpZ2h0MjU2X2J5dGVzX2M7CjE0NDc0
OiAgZmxvYXQgbWV0YV9yZXF1ZXN0X3dpZHRoX3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9zdXJmX3dp
ZHRoX3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9zdXJmX2hlaWdodF95OwoxNDQ3NDogIGZsb2F0IG1l
dGFfcHRlX2J5dGVzX2ZyYW1lX3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9yb3dfYnl0ZV95OwoxNDQ3
NDogIGZsb2F0IG1hY3JvX3RpbGVfc2l6ZV9ieXRlX3k7CjE0NDc0OiAgZmxvYXQgbWFjcm9fdGls
ZV9oZWlnaHRfeTsKMTQ0NzQ6ICBmbG9hdCBwaXhlbF9wdGVfcmVxX2hlaWdodF95OwoxNDQ3NDog
IGZsb2F0IHBpeGVsX3B0ZV9yZXFfd2lkdGhfeTsKMTQ0NzQ6ICBmbG9hdCBwaXhlbF9wdGVfYnl0
ZXNfcGVyX3Jvd195OwoxNDQ3NDogIGZsb2F0IG1ldGFfcmVxdWVzdF93aWR0aF9jOwoxNDQ3NDog
IGZsb2F0IG1ldGFfc3VyZl93aWR0aF9jOwoxNDQ3NDogIGZsb2F0IG1ldGFfc3VyZl9oZWlnaHRf
YzsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3B0ZV9ieXRlc19mcmFtZV9jOwoxNDQ3NDogIGZsb2F0IG1l
dGFfcm93X2J5dGVfYzsKMTQ0NzQ6ICBmbG9hdCBtYWNyb190aWxlX3NpemVfYnl0ZXNfYzsKMTQ0
NzQ6ICBmbG9hdCBtYWNyb190aWxlX2hlaWdodF9jOwoxNDQ3NDogIGZsb2F0IHBpeGVsX3B0ZV9y
ZXFfaGVpZ2h0X2M7CjE0NDc0OiAgZmxvYXQgcGl4ZWxfcHRlX3JlcV93aWR0aF9jOwoxNDQ3NDog
IGZsb2F0IHBpeGVsX3B0ZV9ieXRlc19wZXJfcm93X2M7CjE0NDc0OiAgZmxvYXQgbWF4X3BhcnRp
YWxfc3dhdGhfeTsKMTQ0NzQ6ICBmbG9hdCBtYXhfcGFydGlhbF9zd2F0aF9jOwoxNDQ3NDogIGZs
b2F0IHRfY2FsYzsKMTQ0NzQ6ICBmbG9hdCBuZXh0X3ByZWZldGNoX21vZGU7CjE0NDc0OiAgZmxv
YXQgdl9zdGFydHVwX2xpbmVzOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgcGxhbmVzX3dpdGhf
cm9vbV90b19pbmNyZWFzZV92c3RhcnR1cF9wcmVmZXRjaF9id19sZXNzX3RoYW5fYWN0aXZlX2J3
OwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgcGxhbmVzX3dpdGhfcm9vbV90b19pbmNyZWFzZV92
c3RhcnR1cF92cmF0aW9fcHJlZmV0Y2hfbW9yZV90aGFuNDsKMTQ0NzQ6ICBlbnVtIGRjbl9id19k
ZWZzIHBsYW5lc193aXRoX3Jvb21fdG9faW5jcmVhc2VfdnN0YXJ0dXBfZGVzdGluYXRpb25fbGlu
ZV90aW1lc19mb3JfcHJlZmV0Y2hfbGVzc190aGFuMjsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZz
IHZfcmF0aW9fcHJlZmV0Y2hfbW9yZV90aGFuNDsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGRl
c3RpbmF0aW9uX2xpbmVfdGltZXNfZm9yX3ByZWZldGNoX2xlc3NfdGhhbjI7CjE0NDc0OiAgZmxv
YXQgcHJlZmV0Y2hfbW9kZTsKMTQ0NzQ6ICBmbG9hdCBkc3R4X2FmdGVyX3NjYWxlcjsKMTQ0NzQ6
ICBmbG9hdCBkc3R5X2FmdGVyX3NjYWxlcjsKMTQ0NzQ6ICBmbG9hdCB2X3VwZGF0ZV9vZmZzZXRf
cGl4WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB0b3RhbF9yZXBlYXRlcl9kZWxheV90aW1lOwoxNDQ3
NDogIGZsb2F0IHZfdXBkYXRlX3dpZHRoX3BpeFs1ICsgMV07CjE0NDc0OiAgZmxvYXQgdl9yZWFk
eV9vZmZzZXRfcGl4WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB0X3NldHVwOwoxNDQ3NDogIGZsb2F0
IHRfd2FpdDsKMTQ0NzQ6ICBmbG9hdCBiYW5kd2lkdGhfYXZhaWxhYmxlX2Zvcl9pbW1lZGlhdGVf
ZmxpcDsKMTQ0NzQ6ICBmbG9hdCB0b3RfaW1tZWRpYXRlX2ZsaXBfYnl0ZXM7CjE0NDc0OiAgZmxv
YXQgbWF4X3JkX2JhbmR3aWR0aDsKMTQ0NzQ6ICBmbG9hdCB0aW1lX2Zvcl9mZXRjaGluZ19tZXRh
X3B0ZTsKMTQ0NzQ6ICBmbG9hdCB0aW1lX2Zvcl9mZXRjaGluZ19yb3dfaW5fdmJsYW5rOwoxNDQ3
NDogIGZsb2F0IGxpbmVzX3RvX3JlcXVlc3RfcHJlZmV0Y2hfcGl4ZWxfZGF0YTsKMTQ0NzQ6ICBm
bG9hdCByZXF1aXJlZF9wcmVmZXRjaF9waXhfZGF0YV9idzsKMTQ0NzQ6ICBlbnVtIGRjbl9id19k
ZWZzIHByZWZldGNoX21vZGVfc3VwcG9ydGVkOwoxNDQ3NDogIGZsb2F0IGFjdGl2ZV9kcF9wczsK
MTQ0NzQ6ICBmbG9hdCBsYl9sYXRlbmN5X2hpZGluZ19zb3VyY2VfbGluZXNfeTsKMTQ0NzQ6ICBm
bG9hdCBsYl9sYXRlbmN5X2hpZGluZ19zb3VyY2VfbGluZXNfYzsKMTQ0NzQ6ICBmbG9hdCBlZmZl
Y3RpdmVfbGJfbGF0ZW5jeV9oaWRpbmdfeTsKMTQ0NzQ6ICBmbG9hdCBlZmZlY3RpdmVfbGJfbGF0
ZW5jeV9oaWRpbmdfYzsKMTQ0NzQ6ICBmbG9hdCBkcHBfb3V0cHV0X2J1ZmZlcl9saW5lc195Owox
NDQ3NDogIGZsb2F0IGRwcF9vdXRwdXRfYnVmZmVyX2xpbmVzX2M7CjE0NDc0OiAgZmxvYXQgZHBw
b3BwX2J1ZmZlcmluZ195OwoxNDQ3NDogIGZsb2F0IG1heF9kZXRfYnVmZmVyaW5nX3RpbWVfeTsK
MTQ0NzQ6ICBmbG9hdCBhY3RpdmVfZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV9tYXJnaW5feTsK
MTQ0NzQ6ICBmbG9hdCBkcHBvcHBfYnVmZmVyaW5nX2M7CjE0NDc0OiAgZmxvYXQgbWF4X2RldF9i
dWZmZXJpbmdfdGltZV9jOwoxNDQ3NDogIGZsb2F0IGFjdGl2ZV9kcmFtX2Nsb2NrX2NoYW5nZV9s
YXRlbmN5X21hcmdpbl9jOwoxNDQ3NDogIGZsb2F0IHdyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5n
ZV9sYXRlbmN5X21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCBtaW5fYWN0aXZlX2RyYW1fY2xvY2tfY2hh
bmdlX21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCB2X2JsYW5rX29mX21pbl9hY3RpdmVfZHJhbV9jbG9j
a19jaGFuZ2VfbWFyZ2luOwoxNDQ3NDogIGZsb2F0IHNlY29uZF9taW5fYWN0aXZlX2RyYW1fY2xv
Y2tfY2hhbmdlX21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCBtaW5fdmJsYW5rX2RyYW1fY2xvY2tfY2hh
bmdlX21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCBkcmFtX2Nsb2NrX2NoYW5nZV9tYXJnaW47CjE0NDc0
OiAgZmxvYXQgZHJhbV9jbG9ja19jaGFuZ2Vfc3VwcG9ydDsKMTQ0NzQ6ICBmbG9hdCB3cl9iYW5k
d2lkdGg7CjE0NDc0OiAgZmxvYXQgbWF4X3VzZWRfYnc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZGNuX3NvY19ib3VuZGluZ19ib3ggewoxNDQ3NDogIGZsb2F0IHNyX2V4aXRfdGlt
ZTsKMTQ0NzQ6ICBmbG9hdCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZTsKMTQ0NzQ6ICBmbG9hdCB1
cmdlbnRfbGF0ZW5jeTsKMTQ0NzQ6ICBmbG9hdCB3cml0ZV9iYWNrX2xhdGVuY3k7CjE0NDc0OiAg
ZmxvYXQgcGVyY2VudF9vZl9pZGVhbF9kcmFtYndfcmVjZWl2ZWRfYWZ0ZXJfdXJnX2xhdGVuY3k7
CjE0NDc0OiAgaW50IG1heF9yZXF1ZXN0X3NpemU7CjE0NDc0OiAgZmxvYXQgZGNmY2xrdl9tYXgw
cDk7CjE0NDc0OiAgZmxvYXQgZGNmY2xrdl9ub20wcDg7CjE0NDc0OiAgZmxvYXQgZGNmY2xrdl9t
aWQwcDcyOwoxNDQ3NDogIGZsb2F0IGRjZmNsa3ZfbWluMHA2NTsKMTQ0NzQ6ICBmbG9hdCBtYXhf
ZGlzcGNsa192bWF4MHA5OwoxNDQ3NDogIGZsb2F0IG1heF9kaXNwY2xrX3ZtaWQwcDcyOwoxNDQ3
NDogIGZsb2F0IG1heF9kaXNwY2xrX3Zub20wcDg7CjE0NDc0OiAgZmxvYXQgbWF4X2Rpc3BjbGtf
dm1pbjBwNjU7CjE0NDc0OiAgZmxvYXQgbWF4X2RwcGNsa192bWF4MHA5OwoxNDQ3NDogIGZsb2F0
IG1heF9kcHBjbGtfdm5vbTBwODsKMTQ0NzQ6ICBmbG9hdCBtYXhfZHBwY2xrX3ZtaWQwcDcyOwox
NDQ3NDogIGZsb2F0IG1heF9kcHBjbGtfdm1pbjBwNjU7CjE0NDc0OiAgZmxvYXQgc29jY2xrOwox
NDQ3NDogIGZsb2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGhfdm1heDBwOTsKMTQ0NzQ6ICBm
bG9hdCBmYWJyaWNfYW5kX2RyYW1fYmFuZHdpZHRoX3Zub20wcDg7CjE0NDc0OiAgZmxvYXQgZmFi
cmljX2FuZF9kcmFtX2JhbmR3aWR0aF92bWlkMHA3MjsKMTQ0NzQ6ICBmbG9hdCBmYWJyaWNfYW5k
X2RyYW1fYmFuZHdpZHRoX3ZtaW4wcDY1OwoxNDQ3NDogIGZsb2F0IHBoeWNsa3ZfbWF4MHA5Owox
NDQ3NDogIGZsb2F0IHBoeWNsa3Zfbm9tMHA4OwoxNDQ3NDogIGZsb2F0IHBoeWNsa3ZfbWlkMHA3
MjsKMTQ0NzQ6ICBmbG9hdCBwaHljbGt2X21pbjBwNjU7CjE0NDc0OiAgZmxvYXQgZG93bnNwcmVh
ZGluZzsKMTQ0NzQ6ICBpbnQgcm91bmRfdHJpcF9waW5nX2xhdGVuY3lfY3ljbGVzOwoxNDQ3NDog
IGludCB1cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbDsKMTQ0NzQ6ICBpbnQg
bnVtYmVyX29mX2NoYW5uZWxzOwoxNDQ3NDogIGludCB2bW1fcGFnZV9zaXplOwoxNDQ3NDogIGZs
b2F0IGRyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3k7CjE0NDc0OiAgaW50IHJldHVybl9idXNfd2lk
dGg7CjE0NDc0OiAgZmxvYXQgcGVyY2VudF9kaXNwX2J3X2xpbWl0OwoxNDQ3NDogfTsKMTQ0NzQ6
IGV4dGVybiBjb25zdCBzdHJ1Y3QgZGNuX3NvY19ib3VuZGluZ19ib3ggZGNuMTBfc29jX2RlZmF1
bHRzOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNuX2lwX3BhcmFtcyB7CjE0NDc0OiAgZmxvYXQg
cm9iX2J1ZmZlcl9zaXplX2luX2tieXRlOwoxNDQ3NDogIGZsb2F0IGRldF9idWZmZXJfc2l6ZV9p
bl9rYnl0ZTsKMTQ0NzQ6ICBmbG9hdCBkcHBfb3V0cHV0X2J1ZmZlcl9waXhlbHM7CjE0NDc0OiAg
ZmxvYXQgb3BwX291dHB1dF9idWZmZXJfbGluZXM7CjE0NDc0OiAgZmxvYXQgcGl4ZWxfY2h1bmtf
c2l6ZV9pbl9rYnl0ZTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIHB0ZV9lbmFibGU7CjE0NDc0
OiAgaW50IHB0ZV9jaHVua19zaXplOwoxNDQ3NDogIGludCBtZXRhX2NodW5rX3NpemU7CjE0NDc0
OiAgaW50IHdyaXRlYmFja19jaHVua19zaXplOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgb2Rt
X2NhcGFiaWxpdHk7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBkc2NfY2FwYWJpbGl0eTsKMTQ0
NzQ6ICBpbnQgbGluZV9idWZmZXJfc2l6ZTsKMTQ0NzQ6ICBpbnQgbWF4X2xpbmVfYnVmZmVyX2xp
bmVzOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgaXNfbGluZV9idWZmZXJfYnBwX2ZpeGVkOwox
NDQ3NDogIGludCBsaW5lX2J1ZmZlcl9maXhlZF9icHA7CjE0NDc0OiAgaW50IHdyaXRlYmFja19s
dW1hX2J1ZmZlcl9zaXplOwoxNDQ3NDogIGludCB3cml0ZWJhY2tfY2hyb21hX2J1ZmZlcl9zaXpl
OwoxNDQ3NDogIGludCBtYXhfbnVtX2RwcDsKMTQ0NzQ6ICBpbnQgbWF4X251bV93cml0ZWJhY2s7
CjE0NDc0OiAgaW50IG1heF9kY2h1Yl90b3BzY2xfdGhyb3VnaHB1dDsKMTQ0NzQ6ICBpbnQgbWF4
X3BzY2xfdG9sYl90aHJvdWdocHV0OwoxNDQ3NDogIGludCBtYXhfbGJfdG92c2NsX3Rocm91Z2hw
dXQ7CjE0NDc0OiAgaW50IG1heF92c2NsX3RvaHNjbF90aHJvdWdocHV0OwoxNDQ3NDogIGZsb2F0
IG1heF9oc2NsX3JhdGlvOwoxNDQ3NDogIGZsb2F0IG1heF92c2NsX3JhdGlvOwoxNDQ3NDogIGlu
dCBtYXhfaHNjbF90YXBzOwoxNDQ3NDogIGludCBtYXhfdnNjbF90YXBzOwoxNDQ3NDogIGludCBw
dGVfYnVmZmVyX3NpemVfaW5fcmVxdWVzdHM7CjE0NDc0OiAgZmxvYXQgZGlzcGNsa19yYW1waW5n
X21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCB1bmRlcl9zY2FuX2ZhY3RvcjsKMTQ0NzQ6ICBpbnQgbWF4
X2ludGVyX2Rjbl90aWxlX3JlcGVhdGVyczsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGNhbl92
c3RhcnR1cF9saW5lc19leGNlZWRfdnN5bmNfcGx1c19iYWNrX3BvcmNoX2xpbmVzX21pbnVzX29u
ZTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGJ1Z19mb3JjaW5nX2x1bWFfYW5kX2Nocm9tYV9y
ZXF1ZXN0X3RvX3NhbWVfc2l6ZV9maXhlZDsKMTQ0NzQ6ICBpbnQgZGNmY2xrX2NzdGF0ZV9sYXRl
bmN5OwoxNDQ3NDogfTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZGNuX2lwX3BhcmFtcyBk
Y24xMF9pcF9kZWZhdWx0czsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY25fdmFsaWRhdGVfYmFuZHdp
ZHRoKAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNv
bnRleHQsCjE0NDc0OiAgIGJvb2wgZmFzdF92YWxpZGF0ZSk7CjE0NDc0OiAKMTQ0NzQ6IHVuc2ln
bmVkIGludCBkY25fZmluZF9kY2ZjbGtfc3VpdHNfYWxsKAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBk
YyAqZGMsCjE0NDc0OiAgc3RydWN0IGRjX2Nsb2NrcyAqY2xvY2tzKTsKMTQ0NzQ6IAoxNDQ3NDog
dm9pZCBkY25fYndfdXBkYXRlX2Zyb21fcHBsaWIoc3RydWN0IGRjICpkYyk7CjE0NDc0OiB2b2lk
IGRjbl9id19ub3RpZnlfcHBsaWJfb2Zfd21fcmFuZ2VzKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDog
dm9pZCBkY25fYndfc3luY19jYWxjc19hbmRfZG1sKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogCjE0
NDc0OiBlbnVtIHNvdXJjZV9tYWNyb190aWxlX3NpemUgc3dpenpsZV9tb2RlX3RvX21hY3JvX3Rp
bGVfc2l6ZShlbnVtIHN3aXp6bGVfbW9kZV92YWx1ZXMgc3dfbW9kZSk7CjE0NDc0OiAjIDMyICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMu
aCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
aW5jbHVkZS9kZGNfc2VydmljZV90eXBlcy5oIiAxCjE0NDc0OiAjIDM3ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9kZGNfc2VydmljZV90eXBlcy5oIgox
NDQ3NDogZW51bSBkZGNfcmVzdWx0IHsKMTQ0NzQ6ICBERENfUkVTVUxUX1VOS05PV04gPSAwLAox
NDQ3NDogIEREQ19SRVNVTFRfU1VDRVNTRlVMTCwKMTQ0NzQ6ICBERENfUkVTVUxUX0ZBSUxFRF9D
SEFOTkVMX0JVU1ksCjE0NDc0OiAgRERDX1JFU1VMVF9GQUlMRURfVElNRU9VVCwKMTQ0NzQ6ICBE
RENfUkVTVUxUX0ZBSUxFRF9QUk9UT0NPTF9FUlJPUiwKMTQ0NzQ6ICBERENfUkVTVUxUX0ZBSUxF
RF9OQUNLLAoxNDQ3NDogIEREQ19SRVNVTFRfRkFJTEVEX0lOQ09NUExFVEUsCjE0NDc0OiAgRERD
X1JFU1VMVF9GQUlMRURfT1BFUkFUSU9OLAoxNDQ3NDogIEREQ19SRVNVTFRfRkFJTEVEX0lOVkFM
SURfT1BFUkFUSU9OLAoxNDQ3NDogIEREQ19SRVNVTFRfRkFJTEVEX0JVRkZFUl9PVkVSRkxPVywK
MTQ0NzQ6ICBERENfUkVTVUxUX0ZBSUxFRF9IUERfRElTQ09OCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBlbnVtIGRkY19zZXJ2aWNlX3R5cGUgewoxNDQ3NDogIEREQ19TRVJWSUNFX1RZUEVfQ09O
TkVDVE9SLAoxNDQ3NDogIEREQ19TRVJWSUNFX1RZUEVfRElTUExBWV9QT1JUX01TVCwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkaXNwbGF5
X3NpbmtfY2FwYWJpbGl0eSB7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5
cGUgZG9uZ2xlX3R5cGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIHVpbnQzMl90IGRvd25zdHJtX3NpbmtfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIGJvb2wgZG93bnN0cm1fc2lua19jb3VudF92YWxpZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgdWludDMyX3QgYWRkaXRpb25hbF9hdWRpb19kZWxheTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQz
Ml90IGF1ZGlvX2xhdGVuY3k7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCB2aWRlb19sYXRlbmN5
X2ludGVybGFjZTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHZpZGVvX2xhdGVuY3lfcHJvZ3Jl
c3NpdmU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfaGRtaV9waXhlbF9jbG9jazsKMTQ0
NzQ6IAoxNDQ3NDogIGVudW0gZGNfY29sb3JfZGVwdGggbWF4X2hkbWlfZGVlcF9jb2xvcjsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBzc19zdXBw
b3J0ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBkcF9saW5rX2xhbmVfY291bnQ7CjE0NDc0
OiAgdWludDMyX3QgZHBfbGlua19yYXRlOwoxNDQ3NDogIHVpbnQzMl90IGRwX2xpbmtfc3BlYWQ7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBpc19kcF9oZG1pX3MzZF9jb252
ZXJ0ZXI7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgaXNfZWRwX3NpbmtfY2FwX3ZhbGlk
OwoxNDQ3NDogCjE0NDc0OiAgZW51bSBkZGNfdHJhbnNhY3Rpb25fdHlwZSB0cmFuc2FjdGlvbl90
eXBlOwoxNDQ3NDogIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGF2X3N5bmNfZGF0YSB7CjE0NDc0OiAgdWludDhfdCBhdl9ncmFudWxhcml0
eTsKMTQ0NzQ6ICB1aW50OF90IGF1ZF9kZWNfbGF0MTsKMTQ0NzQ6ICB1aW50OF90IGF1ZF9kZWNf
bGF0MjsKMTQ0NzQ6ICB1aW50OF90IGF1ZF9wcF9sYXQxOwoxNDQ3NDogIHVpbnQ4X3QgYXVkX3Bw
X2xhdDI7CjE0NDc0OiAgdWludDhfdCB2aWRfaW50ZXJfbGF0OwoxNDQ3NDogIHVpbnQ4X3Qgdmlk
X3Byb2dfbGF0OwoxNDQ3NDogIHVpbnQ4X3QgYXVkX2RlbF9pbnMxOwoxNDQ3NDogIHVpbnQ4X3Qg
YXVkX2RlbF9pbnMyOwoxNDQ3NDogIHVpbnQ4X3QgYXVkX2RlbF9pbnMzOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgY29uc3QgdWludDhfdCBEUF9WR0FfTFZEU19DT05W
RVJURVJfSURfMltdID0gInNpdmFyVCI7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBjb25zdCB1aW50
OF90IERQX1ZHQV9MVkRTX0NPTlZFUlRFUl9JRF8zW10gPSAiZG5vbWxBIjsKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGNvbnN0IHVpbnQ4X3QgRFBfRFZJX0NPTlZFUlRFUl9JRF80W10gPSAibTJEVklh
IjsKMTQ0NzQ6ICMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9pbmMvY29yZV90eXBlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tZW1faW5wdXQuaCIgMQoxNDQ3NDog
IyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9t
ZW1faW5wdXQuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfc3RydWN0cy5oIiAxCjE0NDc0OiAjIDMyICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21lbV9pbnB1dC5o
IiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY2h1Yl9pbml0X2RhdGE7CjE0NDc0OiBzdHJ1Y3Qg
Y3N0YXRlX3BzdGF0ZV93YXRlcm1hcmtzX3N0IHsKMTQ0NzQ6ICB1aW50MzJfdCBjc3RhdGVfZXhp
dF9uczsKMTQ0NzQ6ICB1aW50MzJfdCBjc3RhdGVfZW50ZXJfcGx1c19leGl0X25zOwoxNDQ3NDog
IHVpbnQzMl90IHBzdGF0ZV9jaGFuZ2VfbnM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZGNuX3dhdGVybWFya3MgewoxNDQ3NDogIHVpbnQzMl90IHB0ZV9tZXRhX3VyZ2VudF9uczsK
MTQ0NzQ6ICB1aW50MzJfdCB1cmdlbnRfbnM7CjE0NDc0OiAgdWludDMyX3QgZnJhY191cmdfYndf
bm9tOwoxNDQ3NDogIHVpbnQzMl90IGZyYWNfdXJnX2J3X2ZsaXA7CjE0NDc0OiAgaW50MzJfdCB1
cmdlbnRfbGF0ZW5jeV9uczsKMTQ0NzQ6ICBzdHJ1Y3QgY3N0YXRlX3BzdGF0ZV93YXRlcm1hcmtz
X3N0IGNzdGF0ZV9wc3RhdGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNuX3dh
dGVybWFya19zZXQgewoxNDQ3NDogIHN0cnVjdCBkY25fd2F0ZXJtYXJrcyBhOwoxNDQ3NDogIHN0
cnVjdCBkY25fd2F0ZXJtYXJrcyBiOwoxNDQ3NDogIHN0cnVjdCBkY25fd2F0ZXJtYXJrcyBjOwox
NDQ3NDogIHN0cnVjdCBkY25fd2F0ZXJtYXJrcyBkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGRjZV93YXRlcm1hcmtzIHsKMTQ0NzQ6ICBpbnQgYV9tYXJrOwoxNDQ3NDogIGludCBi
X21hcms7CjE0NDc0OiAgaW50IGNfbWFyazsKMTQ0NzQ6ICBpbnQgZF9tYXJrOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHN0dXR0ZXJfbW9kZXMgewoxNDQ3NDogIGJvb2wgZW5oYW5j
ZWQ7CjE0NDc0OiAgYm9vbCBxdWFkX2RtaWZfYnVmZmVyOwoxNDQ3NDogIGJvb2wgd2F0ZXJtYXJr
X25iX3BzdGF0ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtZW1faW5wdXQgewox
NDQ3NDogIGNvbnN0IHN0cnVjdCBtZW1faW5wdXRfZnVuY3MgKmZ1bmNzOwoxNDQ3NDogIHN0cnVj
dCBkY19jb250ZXh0ICpjdHg7CjE0NDc0OiAgc3RydWN0IGRjX3BsYW5lX2FkZHJlc3MgcmVxdWVz
dF9hZGRyZXNzOwoxNDQ3NDogIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzIGN1cnJlbnRfYWRkcmVz
czsKMTQ0NzQ6ICBpbnQgaW5zdDsKMTQ0NzQ6ICBzdHJ1Y3Qgc3R1dHRlcl9tb2RlcyBzdHV0dGVy
X21vZGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgdm1fc3lzdGVtX2FwZXJ0dXJl
X3BhcmFtIHsKMTQ0NzQ6ICB1bmlvbiBsYXJnZV9pbnRlZ2VyIHN5c19kZWZhdWx0OwoxNDQ3NDog
IHVuaW9uIGxhcmdlX2ludGVnZXIgc3lzX2xvdzsKMTQ0NzQ6ICB1bmlvbiBsYXJnZV9pbnRlZ2Vy
IHN5c19oaWdoOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHZtX2NvbnRleHQwX3Bh
cmFtIHsKMTQ0NzQ6ICB1bmlvbiBsYXJnZV9pbnRlZ2VyIHB0ZV9iYXNlOwoxNDQ3NDogIHVuaW9u
IGxhcmdlX2ludGVnZXIgcHRlX3N0YXJ0OwoxNDQ3NDogIHVuaW9uIGxhcmdlX2ludGVnZXIgcHRl
X2VuZDsKMTQ0NzQ6ICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGZhdWx0X2RlZmF1bHQ7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbWVtX2lucHV0X2Z1bmNzIHsKMTQ0NzQ6ICB2b2lkICgq
bWVtX2lucHV0X3NldHVwKSgKMTQ0NzQ6ICAgIHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwK
MTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbGdfcmVncywK
MTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0ICp0dHVfcmVncywK
MTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3JlZ3MsCjE0
NDc0OiAgICBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX2Rlc3RfcGFyYW1zX3N0ICpwaXBl
X2Rlc3QpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRjY19jb250cm9sKShzdHJ1Y3QgbWVtX2lu
cHV0ICptZW1faW5wdXQsIGJvb2wgZW5hYmxlLAoxNDQ3NDogICAgYm9vbCBpbmRlcGVuZGVudF82
NGJfYmxrcyk7CjE0NDc0OiAgdm9pZCAoKm1lbV9wcm9ncmFtX3ZpZXdwb3J0KSgKMTQ0NzQ6ICAg
IHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCByZWN0
ICp2aWV3cG9ydCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCByZWN0ICp2aWV3cG9ydF9jKTsKMTQ0
NzQ6IAoxNDQ3NDogIHZvaWQgKCptZW1faW5wdXRfcHJvZ3JhbV9kaXNwbGF5X21hcmtzKSgKMTQ0
NzQ6ICAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAoxNDQ3NDogICBzdHJ1Y3QgZGNlX3dh
dGVybWFya3MgbmJwLAoxNDQ3NDogICBzdHJ1Y3QgZGNlX3dhdGVybWFya3Mgc3R1dHRlciwKMTQ0
NzQ6ICAgc3RydWN0IGRjZV93YXRlcm1hcmtzIHN0dXR0ZXJfZW50ZXIsCjE0NDc0OiAgIHN0cnVj
dCBkY2Vfd2F0ZXJtYXJrcyB1cmdlbnQsCjE0NDc0OiAgIHVpbnQzMl90IHRvdGFsX2Rlc3RfbGlu
ZV90aW1lX25zKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCptZW1faW5wdXRfcHJvZ3JhbV9jaHJv
bWFfZGlzcGxheV9tYXJrcykoCjE0NDc0OiAgICBzdHJ1Y3QgbWVtX2lucHV0ICptZW1faW5wdXQs
CjE0NDc0OiAgICBzdHJ1Y3QgZGNlX3dhdGVybWFya3MgbmJwLAoxNDQ3NDogICAgc3RydWN0IGRj
ZV93YXRlcm1hcmtzIHN0dXR0ZXIsCjE0NDc0OiAgICBzdHJ1Y3QgZGNlX3dhdGVybWFya3MgdXJn
ZW50LAoxNDQ3NDogICAgdWludDMyX3QgdG90YWxfZGVzdF9saW5lX3RpbWVfbnMpOwoxNDQ3NDog
CjE0NDc0OiAgdm9pZCAoKmFsbG9jYXRlX21lbV9pbnB1dCkoCjE0NDc0OiAgIHN0cnVjdCBtZW1f
aW5wdXQgKm1lbV9pbnB1dCwKMTQ0NzQ6ICAgdWludDMyX3QgaF90b3RhbCwKMTQ0NzQ6ICAgdWlu
dDMyX3Qgdl90b3RhbCwKMTQ0NzQ6ICAgdWludDMyX3QgcGl4X2Nsa19raHosCjE0NDc0OiAgIHVp
bnQzMl90IHRvdGFsX3N0cmVhbXNfbnVtKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpmcmVlX21l
bV9pbnB1dCkoCjE0NDc0OiAgIHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwKMTQ0NzQ6ICAg
dWludDMyX3QgcGF0aHNfbnVtKTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCptZW1faW5wdXRfcHJv
Z3JhbV9zdXJmYWNlX2ZsaXBfYW5kX2FkZHIpKAoxNDQ3NDogICBzdHJ1Y3QgbWVtX2lucHV0ICpt
ZW1faW5wdXQsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzICphZGRyZXNz
LAoxNDQ3NDogICBib29sIGZsaXBfaW1tZWRpYXRlKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpt
ZW1faW5wdXRfcHJvZ3JhbV9wdGVfdm0pKAoxNDQ3NDogICBzdHJ1Y3QgbWVtX2lucHV0ICptZW1f
aW5wdXQsCjE0NDc0OiAgIGVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0LAoxNDQ3NDog
ICB1bmlvbiBkY190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCjE0NDc0OiAgIGVudW0gZGNfcm90
YXRpb25fYW5nbGUgcm90YXRpb24pOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKm1lbV9pbnB1dF9z
ZXRfdm1fc3lzdGVtX2FwZXJ0dXJlX3NldHRpbmdzKSgKMTQ0NzQ6ICAgIHN0cnVjdCBtZW1faW5w
dXQgKm1lbV9pbnB1dCwKMTQ0NzQ6ICAgIHN0cnVjdCB2bV9zeXN0ZW1fYXBlcnR1cmVfcGFyYW0g
KmFwdCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqbWVtX2lucHV0X3NldF92bV9jb250ZXh0MF9z
ZXR0aW5ncykoCjE0NDc0OiAgICBzdHJ1Y3QgbWVtX2lucHV0ICptZW1faW5wdXQsCjE0NDc0OiAg
ICBjb25zdCBzdHJ1Y3Qgdm1fY29udGV4dDBfcGFyYW0gKnZtMCk7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqbWVtX2lucHV0X3Byb2dyYW1fc3VyZmFjZV9jb25maWcpKAoxNDQ3NDogICBzdHJ1Y3Qg
bWVtX2lucHV0ICptZW1faW5wdXQsCjE0NDc0OiAgIGVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQg
Zm9ybWF0LAoxNDQ3NDogICB1bmlvbiBkY190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCjE0NDc0
OiAgIHN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXplLAoxNDQ3NDogICBlbnVtIGRjX3JvdGF0
aW9uX2FuZ2xlIHJvdGF0aW9uLAoxNDQ3NDogICBzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFtICpk
Y2MsCjE0NDc0OiAgIGJvb2wgaG9yaXpvbnRhbF9taXJyb3IpOwoxNDQ3NDogCjE0NDc0OiAgYm9v
bCAoKm1lbV9pbnB1dF9pc19mbGlwX3BlbmRpbmcpKHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1
dCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqbWVtX2lucHV0X3VwZGF0ZV9kY2h1Yikoc3RydWN0
IG1lbV9pbnB1dCAqbWVtX2lucHV0LAoxNDQ3NDogICAgIHN0cnVjdCBkY2h1Yl9pbml0X2RhdGEg
KmRoX2RhdGEpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9ibGFuaykoc3RydWN0IG1lbV9p
bnB1dCAqbWksIGJvb2wgYmxhbmspOwoxNDQ3NDogIHZvaWQgKCpzZXRfaHVicF9ibGFua19lbiko
c3RydWN0IG1lbV9pbnB1dCAqbWksIGJvb2wgYmxhbmspOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAo
KnNldF9jdXJzb3JfYXR0cmlidXRlcykoCjE0NDc0OiAgICBzdHJ1Y3QgbWVtX2lucHV0ICptZW1f
aW5wdXQsCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgKmF0dHIp
OwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9jdXJzb3JfcG9zaXRpb24pKAoxNDQ3NDogICAg
c3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IGRjX2N1
cnNvcl9wb3NpdGlvbiAqcG9zLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9taV9w
YXJhbSAqcGFyYW0pOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogIyAzNSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgiIDIKMTQ0NzQ6
ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9o
dWJwLmgiIDEKMTQ0NzQ6ICMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvaHcvaHVicC5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21lbV9pbnB1dC5oIiAxCjE0NDc0OiAjIDMwICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2h1YnAuaCIg
MgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGN1cnNvcl9waXRj
aCB7CjE0NDc0OiAgQ1VSU09SX1BJVENIXzY0X1BJWEVMUyA9IDAsCjE0NDc0OiAgQ1VSU09SX1BJ
VENIXzEyOF9QSVhFTFMsCjE0NDc0OiAgQ1VSU09SX1BJVENIXzI1Nl9QSVhFTFMKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gY3Vyc29yX2xpbmVzX3Blcl9jaHVuayB7CjE0NDc0OiAgQ1VS
U09SX0xJTkVfUEVSX0NIVU5LXzEgPSAwLAoxNDQ3NDogIENVUlNPUl9MSU5FX1BFUl9DSFVOS18y
ID0gMSwKMTQ0NzQ6ICBDVVJTT1JfTElORV9QRVJfQ0hVTktfNCwKMTQ0NzQ6ICBDVVJTT1JfTElO
RV9QRVJfQ0hVTktfOCwKMTQ0NzQ6ICBDVVJTT1JfTElORV9QRVJfQ0hVTktfMTYKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gaHVicF9pbmRfYmxvY2tfc2l6ZSB7CjE0NDc0OiAgaHVicF9p
bmRfYmxvY2tfdW5jb25zdHJhaW5lZCA9IDAsCjE0NDc0OiAgaHVicF9pbmRfYmxvY2tfNjRiLAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGh1YnAgewoxNDQ3NDogIGNvbnN0IHN0cnVj
dCBodWJwX2Z1bmNzICpmdW5jczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3
NDogIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzIHJlcXVlc3RfYWRkcmVzczsKMTQ0NzQ6ICBpbnQg
aW5zdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IG9wcF9pZDsKMTQ0NzQ6ICBpbnQgbXBj
Y19pZDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgY3Vyc19hdHRyOwoxNDQ3
NDogIGJvb2wgcG93ZXJfZ2F0ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3Vy
ZmFjZV9mbGlwX3JlZ2lzdGVycyB7CjE0NDc0OiAgdWludDMyX3QgRENTVVJGX1NVUkZBQ0VfQ09O
VFJPTDsKMTQ0NzQ6ICB1aW50MzJfdCBEQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVT
U19ISUdIOwoxNDQ3NDogIHVpbnQzMl90IERDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERS
RVNTOwoxNDQ3NDogIHVpbnQzMl90IERDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdI
OwoxNDQ3NDogIHVpbnQzMl90IERDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTUzsKMTQ0NzQ6
ICB1aW50MzJfdCBEQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0M7CjE0
NDc0OiAgdWludDMyX3QgRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQzsKMTQ0
NzQ6ICB1aW50MzJfdCBEQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DOwoxNDQ3
NDogIHVpbnQzMl90IERDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19DOwoxNDQ3NDogIHVp
bnQzMl90IERDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSDsKMTQ0NzQ6
ICB1aW50MzJfdCBEQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTOwoxNDQ3NDog
IHVpbnQzMl90IERDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0g7CjE0NDc0OiAg
dWludDMyX3QgRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1M7CjE0NDc0OiAgYm9vbCB0
bXpfc3VyZmFjZTsKMTQ0NzQ6ICBib29sIGltbWVkaWF0ZTsKMTQ0NzQ6ICB1aW50OF90IHZtaWQ7
CjE0NDc0OiAgYm9vbCBncnBoX3N0ZXJlbzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBodWJwX2Z1bmNzIHsKMTQ0NzQ6ICB2b2lkICgqaHVicF9zZXR1cCkoCjE0NDc0OiAgICBzdHJ1
Y3QgaHVicCAqaHVicCwKMTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdz
X3N0ICpkbGdfcmVncywKMTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdz
X3N0ICp0dHVfcmVncywKMTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nf
c3QgKnJxX3JlZ3MsCjE0NDc0OiAgICBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX2Rlc3Rf
cGFyYW1zX3N0ICpwaXBlX2Rlc3QpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmh1YnBfc2V0dXBf
aW50ZXJkZXBlbmRlbnQpKAoxNDQ3NDogICAgc3RydWN0IGh1YnAgKmh1YnAsCjE0NDc0OiAgICBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfcmVnc19zdCAqZGxnX3JlZ3MsCjE0NDc0OiAgICBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV90dHVfcmVnc19zdCAqdHR1X3JlZ3MpOwoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAoKmRjY19jb250cm9sKShzdHJ1Y3QgaHVicCAqaHVicCwgYm9vbCBlbmFibGUs
CjE0NDc0OiAgICBlbnVtIGh1YnBfaW5kX2Jsb2NrX3NpemUgYmxrX3NpemUpOwoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAoKm1lbV9wcm9ncmFtX3ZpZXdwb3J0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBodWJw
ICpodWJwLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IHJlY3QgKnZpZXdwb3J0LAoxNDQ3NDogICAg
Y29uc3Qgc3RydWN0IHJlY3QgKnZpZXdwb3J0X2MpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmFw
cGx5X1BMQVRfNTQxODZfd2EpKHN0cnVjdCBodWJwICpodWJwLAoxNDQ3NDogICAgY29uc3Qgc3Ry
dWN0IGRjX3BsYW5lX2FkZHJlc3MgKmFkZHJlc3MpOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCAoKmh1
YnBfcHJvZ3JhbV9zdXJmYWNlX2ZsaXBfYW5kX2FkZHIpKAoxNDQ3NDogICBzdHJ1Y3QgaHVicCAq
aHVicCwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX3BsYW5lX2FkZHJlc3MgKmFkZHJlc3MsCjE0
NDc0OiAgIGJvb2wgZmxpcF9pbW1lZGlhdGUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmh1YnBf
cHJvZ3JhbV9wdGVfdm0pKAoxNDQ3NDogICBzdHJ1Y3QgaHVicCAqaHVicCwKMTQ0NzQ6ICAgZW51
bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQsCjE0NDc0OiAgIHVuaW9uIGRjX3RpbGluZ19p
bmZvICp0aWxpbmdfaW5mbywKMTQ0NzQ6ICAgZW51bSBkY19yb3RhdGlvbl9hbmdsZSByb3RhdGlv
bik7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaHVicF9zZXRfdm1fc3lzdGVtX2FwZXJ0dXJlX3Nl
dHRpbmdzKSgKMTQ0NzQ6ICAgIHN0cnVjdCBodWJwICpodWJwLAoxNDQ3NDogICAgc3RydWN0IHZt
X3N5c3RlbV9hcGVydHVyZV9wYXJhbSAqYXB0KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpodWJw
X3NldF92bV9jb250ZXh0MF9zZXR0aW5ncykoCjE0NDc0OiAgICBzdHJ1Y3QgaHVicCAqaHVicCwK
MTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCB2bV9jb250ZXh0MF9wYXJhbSAqdm0wKTsKMTQ0NzQ6IAox
NDQ3NDogIHZvaWQgKCpodWJwX3Byb2dyYW1fc3VyZmFjZV9jb25maWcpKAoxNDQ3NDogICBzdHJ1
Y3QgaHVicCAqaHVicCwKMTQ0NzQ6ICAgZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQs
CjE0NDc0OiAgIHVuaW9uIGRjX3RpbGluZ19pbmZvICp0aWxpbmdfaW5mbywKMTQ0NzQ6ICAgc3Ry
dWN0IHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCjE0NDc0OiAgIGVudW0gZGNfcm90YXRpb25fYW5n
bGUgcm90YXRpb24sCjE0NDc0OiAgIHN0cnVjdCBkY19wbGFuZV9kY2NfcGFyYW0gKmRjYywKMTQ0
NzQ6ICAgYm9vbCBob3Jpem9udGFsX21pcnJvciwKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IGNvbXBh
X2xldmVsKTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCpodWJwX2lzX2ZsaXBfcGVuZGluZykoc3Ry
dWN0IGh1YnAgKmh1YnApOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9ibGFuaykoc3RydWN0
IGh1YnAgKmh1YnAsIGJvb2wgYmxhbmspOwoxNDQ3NDogIHZvaWQgKCpzZXRfaHVicF9ibGFua19l
bikoc3RydWN0IGh1YnAgKmh1YnAsIGJvb2wgYmxhbmspOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAo
KnNldF9jdXJzb3JfYXR0cmlidXRlcykoCjE0NDc0OiAgICBzdHJ1Y3QgaHVicCAqaHVicCwKMTQ0
NzQ6ICAgIGNvbnN0IHN0cnVjdCBkY19jdXJzb3JfYXR0cmlidXRlcyAqYXR0cik7CjE0NDc0OiAK
MTQ0NzQ6ICB2b2lkICgqc2V0X2N1cnNvcl9wb3NpdGlvbikoCjE0NDc0OiAgICBzdHJ1Y3QgaHVi
cCAqaHVicCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBkY19jdXJzb3JfcG9zaXRpb24gKnBvcywK
MTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBkY19jdXJzb3JfbWlfcGFyYW0gKnBhcmFtKTsKMTQ0NzQ6
IAoxNDQ3NDogIHZvaWQgKCpodWJwX2Rpc2Nvbm5lY3QpKHN0cnVjdCBodWJwICpodWJwKTsKMTQ0
NzQ6IAoxNDQ3NDogIHZvaWQgKCpodWJwX2Nsa19jbnRsKShzdHJ1Y3QgaHVicCAqaHVicCwgYm9v
bCBlbmFibGUpOwoxNDQ3NDogIHZvaWQgKCpodWJwX3Z0Z19zZWwpKHN0cnVjdCBodWJwICpodWJw
LCB1aW50MzJfdCBvdGdfaW5zdCk7CjE0NDc0OiAgdm9pZCAoKmh1YnBfcmVhZF9zdGF0ZSkoc3Ry
dWN0IGh1YnAgKmh1YnApOwoxNDQ3NDogIHZvaWQgKCpodWJwX2NsZWFyX3VuZGVyZmxvdykoc3Ry
dWN0IGh1YnAgKmh1YnApOwoxNDQ3NDogIHZvaWQgKCpodWJwX2Rpc2FibGVfY29udHJvbCkoc3Ry
dWN0IGh1YnAgKmh1YnAsIGJvb2wgZGlzYWJsZV9odWJwKTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
KCpodWJwX2dldF91bmRlcmZsb3dfc3RhdHVzKShzdHJ1Y3QgaHVicCAqaHVicCk7CjE0NDc0OiAg
dm9pZCAoKmh1YnBfaW5pdCkoc3RydWN0IGh1YnAgKmh1YnApOwoxNDQ3NDogCjE0NDc0OiAgdm9p
ZCAoKmRtZGF0YV9zZXRfYXR0cmlidXRlcykoCjE0NDc0OiAgICBzdHJ1Y3QgaHVicCAqaHVicCwK
MTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBkY19kbWRhdGFfYXR0cmlidXRlcyAqYXR0cik7CjE0NDc0
OiAKMTQ0NzQ6ICB2b2lkICgqZG1kYXRhX2xvYWQpKAoxNDQ3NDogICAgc3RydWN0IGh1YnAgKmh1
YnAsCjE0NDc0OiAgICB1aW50MzJfdCBkbWRhdGFfc3dfc2l6ZSwKMTQ0NzQ6ICAgIGNvbnN0IHVp
bnQzMl90ICpkbWRhdGFfc3dfZGF0YSk7CjE0NDc0OiAgYm9vbCAoKmRtZGF0YV9zdGF0dXNfZG9u
ZSkoc3RydWN0IGh1YnAgKmh1YnApOwoxNDQ3NDogIHZvaWQgKCpodWJwX2VuYWJsZV90cmlwbGVC
dWZmZXIpKAoxNDQ3NDogICBzdHJ1Y3QgaHVicCAqaHVicCwKMTQ0NzQ6ICAgYm9vbCBlbmFibGUp
OwoxNDQ3NDogCjE0NDc0OiAgYm9vbCAoKmh1YnBfaXNfdHJpcGxlYnVmZmVyX2VuYWJsZWQpKAox
NDQ3NDogICBzdHJ1Y3QgaHVicCAqaHVicCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaHVicF9z
ZXRfZmxpcF9jb250cm9sX3N1cmZhY2VfZ3NsKSgKMTQ0NzQ6ICAgc3RydWN0IGh1YnAgKmh1YnAs
CjE0NDc0OiAgIGJvb2wgZW5hYmxlKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCp2YWxpZGF0ZV9k
bWxfb3V0cHV0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBodWJwICpodWJwLAoxNDQ3NDogICAgc3RydWN0
IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3Jl
Z3Nfc3QgKmRtbF9ycV9yZWdzLAoxNDQ3NDogICAgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGxn
X3JlZ3Nfc3QgKmRtbF9kbGdfYXR0ciwKMTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5
X3R0dV9yZWdzX3N0ICpkbWxfdHR1X2F0dHIpOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogIyAz
NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3R5
cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oIiAxCjE0NDc0OiAjIDM4ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9p
bmMvaHcvZHdiLmgiIDEKMTQ0NzQ6ICMgMzUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9pbmMvaHcvZHdiLmgiCjE0NDc0OiBzdHJ1Y3QgbWNpZl93YjsKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBkY2VfdmVyc2lvbjsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkd2Jfc3dfdmVy
c2lvbiB7CjE0NDc0OiAgZHdiX3Zlcl8xXzAgPSAxLAoxNDQ3NDogIGR3Yl92ZXJfMl8wID0gMiwK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZHdiX3NvdXJjZSB7CjE0NDc0OiAgZHdiX3Ny
Y19zY2wgPSAwLAoxNDQ3NDogIGR3Yl9zcmNfYmxuZCwKMTQ0NzQ6ICBkd2Jfc3JjX2ZtdCwKMTQ0
NzQ6ICBkd2Jfc3JjX290ZzAgPSAweDEwMCwKMTQ0NzQ6ICBkd2Jfc3JjX290ZzEsCjE0NDc0OiAg
ZHdiX3NyY19vdGcyLAoxNDQ3NDogIGR3Yl9zcmNfb3RnMywKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZW51bSBkd2JfcGlwZSB7CjE0NDc0OiAgZHdiX3BpcGUwID0gMCwKMTQ0NzQ6
IAoxNDQ3NDogIGR3Yl9waXBlMSwKMTQ0NzQ6IAoxNDQ3NDogIGR3Yl9waXBlX21heF9udW0sCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGR3Yl9mcmFtZV9jYXB0dXJlX2VuYWJsZSB7CjE0
NDc0OiAgRFdCX0ZSQU1FX0NBUFRVUkVfRElTQUJMRSA9IDAsCjE0NDc0OiAgRFdCX0ZSQU1FX0NB
UFRVUkVfRU5BQkxFID0gMSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gd2JzY2xfY29l
Zl9maWx0ZXJfdHlwZV9zZWwgewoxNDQ3NDogIFdCU0NMX0NPRUZfTFVNQV9WRVJUX0ZJTFRFUiA9
IDAsCjE0NDc0OiAgV0JTQ0xfQ09FRl9DSFJPTUFfVkVSVF9GSUxURVIgPSAxLAoxNDQ3NDogIFdC
U0NMX0NPRUZfTFVNQV9IT1JaX0ZJTFRFUiA9IDIsCjE0NDc0OiAgV0JTQ0xfQ09FRl9DSFJPTUFf
SE9SWl9GSUxURVIgPSAzCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
d2Jfd2FybXVwX3BhcmFtcyB7CjE0NDc0OiAgYm9vbCB3YXJtdXBfZW47CjE0NDc0OiAgYm9vbCB3
YXJtdXBfbW9kZTsKMTQ0NzQ6ICBib29sIHdhcm11cF9kZXB0aDsKMTQ0NzQ6ICBpbnQgd2FybXVw
X2RhdGE7CjE0NDc0OiAgaW50IHdhcm11cF93aWR0aDsKMTQ0NzQ6ICBpbnQgd2FybXVwX2hlaWdo
dDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkd2JfY2FwcyB7CjE0NDc0OiAgZW51
bSBkY2VfdmVyc2lvbiBod192ZXJzaW9uOwoxNDQ3NDogIGVudW0gZHdiX3N3X3ZlcnNpb24gc3df
dmVyc2lvbjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWRbNl07CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGFkYXB0ZXJfaWQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IG51bV9waXBlczsKMTQ0NzQ6
ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgc3VwcG9ydF9kd2IgOjE7CjE0NDc0OiAg
IHVuc2lnbmVkIGludCBzdXBwb3J0X29nYW0gOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBzdXBw
b3J0X3dic2NsIDoxOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgc3VwcG9ydF9vY3NjIDoxOwoxNDQ3
NDogICB1bnNpZ25lZCBpbnQgc3VwcG9ydF9zdGVyZW8gOjE7CjE0NDc0OiAgfSBjYXBzOwoxNDQ3
NDogIHVuc2lnbmVkIGludCByZXNlcnZlZDJbOV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgZHdiYyB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGR3YmNfZnVuY3MgKmZ1bmNzOwoxNDQ3
NDogIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CjE0NDc0OiAgaW50IGluc3Q7CjE0NDc0OiAgc3Ry
dWN0IG1jaWZfd2IgKm1jaWY7CjE0NDc0OiAgYm9vbCBzdGF0dXM7CjE0NDc0OiAgaW50IGlucHV0
U3JjU2VsZWN0OwoxNDQ3NDogIGJvb2wgZHdiX291dHB1dF9ibGFjazsKMTQ0NzQ6ICBlbnVtIGRj
X3RyYW5zZmVyX2Z1bmNfcHJlZGVmaW5lZCB0ZjsKMTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX3NwYWNl
IG91dHB1dF9jb2xvcl9zcGFjZTsKMTQ0NzQ6ICBib29sIGR3Yl9pc19lZmNfdHJhbnNpdGlvbjsK
MTQ0NzQ6ICBib29sIGR3Yl9pc19kcmM7CjE0NDc0OiAgaW50IHdiX3NyY19wbGFuZV9pbnN0Owox
NDQ3NDogIGJvb2wgdXBkYXRlX3ByaXZhY3ltYXNrOwoxNDQ3NDogIHVpbnQzMl90IG1hc2tfaWQ7
CjE0NDc0OiAgICAgICAgIGludCBvdGdfaW5zdDsKMTQ0NzQ6ICAgICAgICAgYm9vbCBtdmNfY2Zn
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGR3YmNfZnVuY3MgewoxNDQ3NDogIGJv
b2wgKCpnZXRfY2FwcykoCjE0NDc0OiAgIHN0cnVjdCBkd2JjICpkd2JjLAoxNDQ3NDogICBzdHJ1
Y3QgZHdiX2NhcHMgKmNhcHMpOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCAoKmVuYWJsZSkoCjE0NDc0
OiAgIHN0cnVjdCBkd2JjICpkd2JjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfZHdiX3BhcmFtcyAqcGFy
YW1zKTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCpkaXNhYmxlKShzdHJ1Y3QgZHdiYyAqZHdiYyk7
CjE0NDc0OiAKMTQ0NzQ6ICBib29sICgqdXBkYXRlKSgKMTQ0NzQ6ICAgc3RydWN0IGR3YmMgKmR3
YmMsCjE0NDc0OiAgIHN0cnVjdCBkY19kd2JfcGFyYW1zICpwYXJhbXMpOwoxNDQ3NDogCjE0NDc0
OiAgYm9vbCAoKmlzX2VuYWJsZWQpKAoxNDQ3NDogICBzdHJ1Y3QgZHdiYyAqZHdiYyk7CjE0NDc0
OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X3N0ZXJlbykoCjE0NDc0OiAgIHN0cnVjdCBkd2JjICpkd2Jj
LAoxNDQ3NDogICBzdHJ1Y3QgZHdiX3N0ZXJlb19wYXJhbXMgKnN0ZXJlb19wYXJhbXMpOwoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAoKnNldF9uZXdfY29udGVudCkoCjE0NDc0OiAgIHN0cnVjdCBkd2Jj
ICpkd2JjLAoxNDQ3NDogICBib29sIGlzX25ld19jb250ZW50KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAoKnNldF93YXJtdXApKAoxNDQ3NDogICBzdHJ1Y3QgZHdiYyAqZHdiYywKMTQ0
NzQ6ICAgc3RydWN0IGR3Yl93YXJtdXBfcGFyYW1zICp3YXJtdXBfcGFyYW1zKTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgYm9vbCAoKmdldF9kd2Jfc3RhdHVzKSgKMTQ0NzQ6ICAgc3RydWN0IGR3
YmMgKmR3YmMpOwoxNDQ3NDogIHZvaWQgKCpkd2Jfc2V0X3NjYWxlcikoCjE0NDc0OiAgIHN0cnVj
dCBkd2JjICpkd2JjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfZHdiX3BhcmFtcyAqcGFyYW1zKTsKMTQ0
NzQ6IH07CjE0NDc0OiAjIDQwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21jaWZfd2IuaCIgMQoxNDQ3NDogIyAzMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tY2lmX3di
LmgiCjE0NDc0OiBlbnVtIG1taHViYnViX3diaWZfbW9kZSB7CjE0NDc0OiAgUEFDS0VEXzQ0NCA9
IDAsCjE0NDc0OiAgUEFDS0VEXzQ0NF9GUDE2ID0gMSwKMTQ0NzQ6ICBQTEFOQVJfNDIwXzhCUEMg
PSAyLAoxNDQ3NDogIFBMQU5BUl80MjBfMTBCUEMgPSAzCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgbWNpZl9hcmJfcGFyYW1zIHsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCB0
aW1lX3Blcl9waXhlbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY2xpX3dhdGVybWFya1s0XTsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgcHN0YXRlX3dhdGVybWFya1s0XTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgYXJiaXRyYXRpb25fc2xpY2U7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNsaWNlX2xpbmVzOwox
NDQ3NDogIHVuc2lnbmVkIGludCBtYXhfc2NhbGVkX3RpbWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgbWNpZl9pcnFfcGFyYW1zIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3dfaW50
X2VuOwoxNDQ3NDogIHVuc2lnbmVkIGludCBzd19zbGljZV9pbnRfZW47CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHN3X292ZXJydW5faW50X2VuOwoxNDQ3NDogIHVuc2lnbmVkIGludCB2Y2VfaW50X2Vu
OwoxNDQ3NDogIHVuc2lnbmVkIGludCB2Y2Vfc2xpY2VfaW50X2VuOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtY2lmX3diX2ZyYW1lX2R1bXBfaW5mbyB7
CjE0NDc0OiAgdW5zaWduZWQgaW50IHNpemU7CjE0NDc0OiAgdW5zaWduZWQgaW50IHdpZHRoOwox
NDQ3NDogIHVuc2lnbmVkIGludCBoZWlnaHQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGx1bWFfcGl0
Y2g7CjE0NDc0OiAgdW5zaWduZWQgaW50IGNocm9tYV9waXRjaDsKMTQ0NzQ6ICBlbnVtIGR3Yl9z
Y2FsZXJfbW9kZSBmb3JtYXQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbWNpZl93
YiB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IG1jaWZfd2JfZnVuY3MgKmZ1bmNzOwoxNDQ3NDogIHN0
cnVjdCBkY19jb250ZXh0ICpjdHg7CjE0NDc0OiAgaW50IGluc3Q7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgbWNpZl93Yl9mdW5jcyB7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZW5h
YmxlX21jaWYpKHN0cnVjdCBtY2lmX3diICptY2lmX3diKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQg
KCpkaXNhYmxlX21jaWYpKHN0cnVjdCBtY2lmX3diICptY2lmX3diKTsKMTQ0NzQ6IAoxNDQ3NDog
IHZvaWQgKCpjb25maWdfbWNpZl9idWYpKAoxNDQ3NDogICBzdHJ1Y3QgbWNpZl93YiAqbWNpZl93
YiwKMTQ0NzQ6ICAgc3RydWN0IG1jaWZfYnVmX3BhcmFtcyAqcGFyYW1zLAoxNDQ3NDogICB1bnNp
Z25lZCBpbnQgZGVzdF9oZWlnaHQpOwoxNDQ3NDogCjE0NDc0OiAgIHZvaWQgKCpjb25maWdfbWNp
Zl9hcmIpKAoxNDQ3NDogICBzdHJ1Y3QgbWNpZl93YiAqbWNpZl93YiwKMTQ0NzQ6ICAgc3RydWN0
IG1jaWZfYXJiX3BhcmFtcyAqcGFyYW1zKTsKMTQ0NzQ6IAoxNDQ3NDogICB2b2lkICgqY29uZmln
X21jaWZfaXJxKSgKMTQ0NzQ6ICAgc3RydWN0IG1jaWZfd2IgKm1jaWZfd2IsCjE0NDc0OiAgIHN0
cnVjdCBtY2lmX2lycV9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHVt
cF9mcmFtZSkoCjE0NDc0OiAgIHN0cnVjdCBtY2lmX3diICptY2lmX3diLAoxNDQ3NDogICBzdHJ1
Y3QgbWNpZl9idWZfcGFyYW1zICptY2lmX3BhcmFtcywKMTQ0NzQ6ICAgZW51bSBkd2Jfc2NhbGVy
X21vZGUgb3V0X2Zvcm1hdCwKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IGRlc3Rfd2lkdGgsCjE0NDc0
OiAgIHVuc2lnbmVkIGludCBkZXN0X2hlaWdodCwKMTQ0NzQ6ICAgc3RydWN0IG1jaWZfd2JfZnJh
bWVfZHVtcF9pbmZvICpkdW1wX2luZm8sCjE0NDc0OiAgIHVuc2lnbmVkIGNoYXIgKmx1bWFfYnVm
ZmVyLAoxNDQ3NDogICB1bnNpZ25lZCBjaGFyICpjaHJvbWFfYnVmZmVyLAoxNDQ3NDogICB1bnNp
Z25lZCBjaGFyICpkZXN0X2x1bWFfYnVmZmVyLAoxNDQ3NDogICB1bnNpZ25lZCBjaGFyICpkZXN0
X2Nocm9tYV9idWZmZXIpOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNDEgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIGVuYWJsZV9zdXJmYWNlX2ZsaXBfcmVwb3J0aW5nKHN0
cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCjE0NDc0OiAgIHVpbnQzMl90IGNvbnRy
b2xsZXJfaWQpOwoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2lkLmgiIDEKMTQ0NzQ6ICMgNDggIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5o
IiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9pbmMvaHcvbGlua19lbmNvZGVyLmgiIDEKMTQ0NzQ6ICMgNDkgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCjE0NDc0OiAjIDEg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvc3RyZWFt
X2VuY29kZXIuaCIgMQoxNDQ3NDogIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2luYy9ody9zdHJlYW1fZW5jb2Rlci5oIgoxNDQ3NDogIyAxICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9hdWRpb190eXBlcy5oIiAx
CjE0NDc0OiAjIDM2ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5j
bHVkZS9hdWRpb190eXBlcy5oIgoxNDQ3NDogc3RydWN0IGF1ZGlvX2NydGNfaW5mbyB7CjE0NDc0
OiAgdWludDMyX3QgaF90b3RhbDsKMTQ0NzQ6ICB1aW50MzJfdCBoX2FjdGl2ZTsKMTQ0NzQ6ICB1
aW50MzJfdCB2X2FjdGl2ZTsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF9yZXBldGl0aW9uOwoxNDQ3
NDogIHVpbnQzMl90IHJlcXVlc3RlZF9waXhlbF9jbG9ja18xMDBIejsKMTQ0NzQ6ICB1aW50MzJf
dCBjYWxjdWxhdGVkX3BpeGVsX2Nsb2NrXzEwMEh6OwoxNDQ3NDogIHVpbnQzMl90IHJlZnJlc2hf
cmF0ZTsKMTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRoOwoxNDQ3NDogIGJv
b2wgaW50ZXJsYWNlZDsKMTQ0NzQ6IH07CjE0NDc0OiBzdHJ1Y3QgYXphbGlhX2Nsb2NrX2luZm8g
ewoxNDQ3NDogIHVpbnQzMl90IHBpeGVsX2Nsb2NrX2luXzEwa2h6OwoxNDQ3NDogIHVpbnQzMl90
IGF1ZGlvX2R0b19waGFzZTsKMTQ0NzQ6ICB1aW50MzJfdCBhdWRpb19kdG9fbW9kdWxlOwoxNDQ3
NDogIHVpbnQzMl90IGF1ZGlvX2R0b193YWxsX2Nsb2NrX3JhdGlvOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBhdWRpb19kdG9fc291cmNlIHsKMTQ0NzQ6ICBEVE9fU09VUkNFX1VOS05P
V04gPSAwLAoxNDQ3NDogIERUT19TT1VSQ0VfSUQwLAoxNDQ3NDogIERUT19TT1VSQ0VfSUQxLAox
NDQ3NDogIERUT19TT1VSQ0VfSUQyLAoxNDQ3NDogIERUT19TT1VSQ0VfSUQzLAoxNDQ3NDogIERU
T19TT1VSQ0VfSUQ0LAoxNDQ3NDogIERUT19TT1VSQ0VfSUQ1CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF1ZGlvX3BsbF9pbmZvIHsKMTQ0NzQ6ICB1aW50
MzJfdCBkcF9kdG9fc291cmNlX2Nsb2NrX2luX2toejsKMTQ0NzQ6ICB1aW50MzJfdCBmZWVkX2Jh
Y2tfZGl2aWRlcjsKMTQ0NzQ6ICBlbnVtIGF1ZGlvX2R0b19zb3VyY2UgZHRvX3NvdXJjZTsKMTQ0
NzQ6ICBib29sIHNzX2VuYWJsZWQ7CjE0NDc0OiAgdWludDMyX3Qgc3NfcGVyY2VudGFnZTsKMTQ0
NzQ6ICB1aW50MzJfdCBzc19wZXJjZW50YWdlX2RpdmlkZXI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgYXVkaW9fY2hhbm5lbF9hc3NvY2lhdGVfaW5mbyB7CjE0NDc0OiAgdW5pb24g
ewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdWludDMyX3QgQUxMX0NIQU5ORUxfRkw6NDsK
MTQ0NzQ6ICAgIHVpbnQzMl90IEFMTF9DSEFOTkVMX0ZSOjQ7CjE0NDc0OiAgICB1aW50MzJfdCBB
TExfQ0hBTk5FTF9GQzo0OwoxNDQ3NDogICAgdWludDMyX3QgQUxMX0NIQU5ORUxfU3ViOjQ7CjE0
NDc0OiAgICB1aW50MzJfdCBBTExfQ0hBTk5FTF9TTDo0OwoxNDQ3NDogICAgdWludDMyX3QgQUxM
X0NIQU5ORUxfU1I6NDsKMTQ0NzQ6ICAgIHVpbnQzMl90IEFMTF9DSEFOTkVMX0JMOjQ7CjE0NDc0
OiAgICB1aW50MzJfdCBBTExfQ0hBTk5FTF9CUjo0OwoxNDQ3NDogICB9IGJpdHM7CjE0NDc0OiAg
IHVpbnQzMl90IHUzMmFsbDsKMTQ0NzQ6ICB9OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGF1ZGlvX291dHB1dCB7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGVuZ2luZV9pZCBlbmdpbmVf
aWQ7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHNpZ25hbF90eXBlIHNpZ25hbDsKMTQ0NzQ6IAoxNDQ3
NDogIHN0cnVjdCBhdWRpb19jcnRjX2luZm8gY3J0Y19pbmZvOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IGF1ZGlvX3BsbF9pbmZvIHBsbF9pbmZvOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBhdWRpb19wYXlsb2FkIHsKMTQ0NzQ6ICBDSEFOTkVMX1NQTElUX01BUFBJTkdDSEFORyA9IDB4
OSwKMTQ0NzQ6IH07CjE0NDc0OiAjIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvaW5jL2h3L3N0cmVhbV9lbmNvZGVyLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZGNfYmlvczsKMTQ0NzQ6IHN0cnVjdCBkY19jb250ZXh0OwoxNDQ3NDogc3Ry
dWN0IGRjX2NydGNfdGltaW5nOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRwX3BpeGVsX2VuY29kaW5n
X3R5cGUgewoxNDQ3NDogIERQX1BJWEVMX0VOQ09ESU5HX1RZUEVfUkdCNDQ0ID0gMHgwMDAwMDAw
MCwKMTQ0NzQ6ICBEUF9QSVhFTF9FTkNPRElOR19UWVBFX1lDQkNSNDIyID0gMHgwMDAwMDAwMSwK
MTQ0NzQ6ICBEUF9QSVhFTF9FTkNPRElOR19UWVBFX1lDQkNSNDQ0ID0gMHgwMDAwMDAwMiwKMTQ0
NzQ6ICBEUF9QSVhFTF9FTkNPRElOR19UWVBFX1JHQl9XSURFX0dBTVVUID0gMHgwMDAwMDAwMywK
MTQ0NzQ6ICBEUF9QSVhFTF9FTkNPRElOR19UWVBFX1lfT05MWSA9IDB4MDAwMDAwMDQsCjE0NDc0
OiAgRFBfUElYRUxfRU5DT0RJTkdfVFlQRV9ZQ0JDUjQyMCA9IDB4MDAwMDAwMDUKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZHBfY29tcG9uZW50X2RlcHRoIHsKMTQ0NzQ6ICBEUF9DT01Q
T05FTlRfUElYRUxfREVQVEhfNkJQQyA9IDB4MDAwMDAwMDAsCjE0NDc0OiAgRFBfQ09NUE9ORU5U
X1BJWEVMX0RFUFRIXzhCUEMgPSAweDAwMDAwMDAxLAoxNDQ3NDogIERQX0NPTVBPTkVOVF9QSVhF
TF9ERVBUSF8xMEJQQyA9IDB4MDAwMDAwMDIsCjE0NDc0OiAgRFBfQ09NUE9ORU5UX1BJWEVMX0RF
UFRIXzEyQlBDID0gMHgwMDAwMDAwMywKMTQ0NzQ6ICBEUF9DT01QT05FTlRfUElYRUxfREVQVEhf
MTZCUEMgPSAweDAwMDAwMDA0CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXVkaW9f
Y2xvY2tfaW5mbyB7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF9jbG9ja19pbl8xMGto
ejsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IG5fMzJraHo7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50
MzJfdCBjdHNfMzJraHo7CjE0NDc0OiAgdWludDMyX3Qgbl80NGtoejsKMTQ0NzQ6ICB1aW50MzJf
dCBjdHNfNDRraHo7CjE0NDc0OiAgdWludDMyX3Qgbl80OGtoejsKMTQ0NzQ6ICB1aW50MzJfdCBj
dHNfNDhraHo7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGR5bmFtaWNfbWV0YWRhdGFf
bW9kZSB7CjE0NDc0OiAgZG1kYXRhX2RwLAoxNDQ3NDogIGRtZGF0YV9oZG1pLAoxNDQ3NDogIGRt
ZGF0YV9kb2xieV92aXNpb24KMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBlbmNvZGVy
X2luZm9fZnJhbWUgewoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2luZm9fcGFja2V0IGF2aTsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgZ2FtdXQ7CjE0NDc0OiAgc3RydWN0IGRjX2lu
Zm9fcGFja2V0IHZlbmRvcjsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgaGZ2c2lmOwox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2luZm9fcGFja2V0IHNwZDsKMTQ0NzQ6IAoxNDQ3NDog
IHN0cnVjdCBkY19pbmZvX3BhY2tldCB2c2M7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5m
b19wYWNrZXQgaGRyc21kOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGVuY29kZXJf
dW5ibGFua19wYXJhbSB7CjE0NDc0OiAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgbGlua19zZXR0
aW5nczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgdGltaW5nOwoxNDQ3NDogIGludCBv
cHBfY250OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGVuY29kZXJfc2V0X2RwX3Bo
eV9wYXR0ZXJuX3BhcmFtIHsKMTQ0NzQ6ICBlbnVtIGRwX3Rlc3RfcGF0dGVybiBkcF9waHlfcGF0
dGVybjsKMTQ0NzQ6ICBjb25zdCB1aW50OF90ICpjdXN0b21fcGF0dGVybjsKMTQ0NzQ6ICB1aW50
MzJfdCBjdXN0b21fcGF0dGVybl9zaXplOwoxNDQ3NDogIGVudW0gZHBfcGFuZWxfbW9kZSBkcF9w
YW5lbF9tb2RlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHN0cmVhbV9lbmNvZGVy
IHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXJfZnVuY3MgKmZ1bmNzOwoxNDQ3
NDogIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CjE0NDc0OiAgc3RydWN0IGRjX2Jpb3MgKmJwOwox
NDQ3NDogIGVudW0gZW5naW5lX2lkIGlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGVuY19zdGF0ZSB7CjE0NDc0OiAgdWludDMyX3QgZHNjX21vZGU7CjE0NDc0OiAgdWludDMyX3Qg
ZHNjX3NsaWNlX3dpZHRoOwoxNDQ3NDogIHVpbnQzMl90IHNlY19nc3BfcHBzX2xpbmVfbnVtOwox
NDQ3NDogIHVpbnQzMl90IHZiaWQ2X2xpbmVfcmVmZXJlbmNlOwoxNDQ3NDogIHVpbnQzMl90IHZi
aWQ2X2xpbmVfbnVtOwoxNDQ3NDogIHVpbnQzMl90IHNlY19nc3BfcHBzX2VuYWJsZTsKMTQ0NzQ6
ICB1aW50MzJfdCBzZWNfc3RyZWFtX2VuYWJsZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBzdHJlYW1fZW5jb2Rlcl9mdW5jcyB7CjE0NDc0OiAgdm9pZCAoKmRwX3NldF9zdHJlYW1f
YXR0cmlidXRlKSgKMTQ0NzQ6ICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCjE0NDc0OiAg
IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqY3J0Y190aW1pbmcsCjE0NDc0OiAgIGVudW0gZGNfY29s
b3Jfc3BhY2Ugb3V0cHV0X2NvbG9yX3NwYWNlLAoxNDQ3NDogICBib29sIHVzZV92c2Nfc2RwX2Zv
cl9jb2xvcmltZXRyeSwKMTQ0NzQ6ICAgdWludDMyX3QgZW5hYmxlX3NkcF9zcGxpdHRpbmcpOwox
NDQ3NDogCjE0NDc0OiAgdm9pZCAoKmhkbWlfc2V0X3N0cmVhbV9hdHRyaWJ1dGUpKAoxNDQ3NDog
ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgc3RydWN0IGRjX2NydGNfdGlt
aW5nICpjcnRjX3RpbWluZywKMTQ0NzQ6ICAgaW50IGFjdHVhbF9waXhfY2xrX2toeiwKMTQ0NzQ6
ICAgYm9vbCBlbmFibGVfYXVkaW8pOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmR2aV9zZXRfc3Ry
ZWFtX2F0dHJpYnV0ZSkoCjE0NDc0OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAoxNDQ3
NDogICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmNydGNfdGltaW5nLAoxNDQ3NDogICBib29sIGlz
X2R1YWxfbGluayk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqbHZkc19zZXRfc3RyZWFtX2F0dHJp
YnV0ZSkoCjE0NDc0OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAoxNDQ3NDogICBzdHJ1
Y3QgZGNfY3J0Y190aW1pbmcgKmNydGNfdGltaW5nKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpz
ZXRfbXN0X2JhbmR3aWR0aCkoCjE0NDc0OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAox
NDQ3NDogICBzdHJ1Y3QgZml4ZWQzMV8zMiBhdmdfdGltZV9zbG90c19wZXJfbXRwKTsKMTQ0NzQ6
IAoxNDQ3NDogIHZvaWQgKCp1cGRhdGVfaGRtaV9pbmZvX3BhY2tldHMpKAoxNDQ3NDogICBzdHJ1
Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGVuY29kZXJfaW5m
b19mcmFtZSAqaW5mb19mcmFtZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc3RvcF9oZG1pX2lu
Zm9fcGFja2V0cykoCjE0NDc0OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jKTsKMTQ0NzQ6
IAoxNDQ3NDogIHZvaWQgKCp1cGRhdGVfZHBfaW5mb19wYWNrZXRzKSgKMTQ0NzQ6ICAgc3RydWN0
IHN0cmVhbV9lbmNvZGVyICplbmMsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBlbmNvZGVyX2luZm9f
ZnJhbWUgKmluZm9fZnJhbWUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNlbmRfaW1tZWRpYXRl
X3NkcF9tZXNzYWdlKSgKMTQ0NzQ6ICAgICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0
NzQ6ICAgICBjb25zdCB1aW50OF90ICpjdXN0b21fc2RwX21lc3NhZ2UsCjE0NDc0OiAgICAgdW5z
aWduZWQgaW50IHNkcF9tZXNzYWdlX3NpemUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnN0b3Bf
ZHBfaW5mb19wYWNrZXRzKSgKMTQ0NzQ6ICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMpOwox
NDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwX2JsYW5rKSgKMTQ0NzQ6ICAgc3RydWN0IHN0cmVhbV9l
bmNvZGVyICplbmMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwX3VuYmxhbmspKAoxNDQ3NDog
ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGVuY29k
ZXJfdW5ibGFua19wYXJhbSAqcGFyYW0pOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmF1ZGlvX211
dGVfY29udHJvbCkoCjE0NDc0OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLCBib29sIG11
dGUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwX2F1ZGlvX3NldHVwKSgKMTQ0NzQ6ICAgc3Ry
dWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCjE0NDc0OiAgIHVuc2lnbmVkIGludCBhel9pbnN0LAox
NDQ3NDogICBzdHJ1Y3QgYXVkaW9faW5mbyAqaW5mbyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgq
ZHBfYXVkaW9fZW5hYmxlKSAoCjE0NDc0OiAgICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYyk7
CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHBfYXVkaW9fZGlzYWJsZSkgKAoxNDQ3NDogICAgc3Ry
dWN0IHN0cmVhbV9lbmNvZGVyICplbmMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmhkbWlfYXVk
aW9fc2V0dXApKAoxNDQ3NDogICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAg
dW5zaWduZWQgaW50IGF6X2luc3QsCjE0NDc0OiAgIHN0cnVjdCBhdWRpb19pbmZvICppbmZvLAox
NDQ3NDogICBzdHJ1Y3QgYXVkaW9fY3J0Y19pbmZvICphdWRpb19jcnRjX2luZm8pOwoxNDQ3NDog
CjE0NDc0OiAgdm9pZCAoKmhkbWlfYXVkaW9fZGlzYWJsZSkgKAoxNDQ3NDogICAgc3RydWN0IHN0
cmVhbV9lbmNvZGVyICplbmMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldHVwX3N0ZXJlb19z
eW5jKSAoCjE0NDc0OiAgICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgIGlu
dCB0Z19pbnN0LAoxNDQ3NDogICAgYm9vbCBlbmFibGUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAo
KnNldF9hdm11dGUpKAoxNDQ3NDogICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywgYm9vbCBl
bmFibGUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRpZ19jb25uZWN0X3RvX290ZykoCjE0NDc0
OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAoxNDQ3NDogICBpbnQgdGdfaW5zdCk7CjE0
NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaGRtaV9yZXNldF9zdHJlYW1fYXR0cmlidXRlKSgKMTQ0NzQ6
ICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMpOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQg
aW50ICgqZGlnX3NvdXJjZV9vdGcpKAoxNDQ3NDogICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVu
Yyk7CjE0NDc0OiAKMTQ0NzQ6ICBib29sICgqZHBfZ2V0X3BpeGVsX2Zvcm1hdCkoCjE0NDc0OiAg
IHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAoxNDQ3NDogICBlbnVtIGRjX3BpeGVsX2VuY29k
aW5nICplbmNvZGluZywKMTQ0NzQ6ICAgZW51bSBkY19jb2xvcl9kZXB0aCAqZGVwdGgpOwoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAoKmVuY19yZWFkX3N0YXRlKShzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIg
KmVuYywgc3RydWN0IGVuY19zdGF0ZSAqcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHBfc2V0
X2RzY19jb25maWcpKAoxNDQ3NDogICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCjE0NDc0
OiAgICBlbnVtIG9wdGNfZHNjX21vZGUgZHNjX21vZGUsCjE0NDc0OiAgICB1aW50MzJfdCBkc2Nf
Ynl0ZXNfcGVyX3BpeGVsLAoxNDQ3NDogICAgdWludDMyX3QgZHNjX3NsaWNlX3dpZHRoKTsKMTQ0
NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcF9zZXRfZHNjX3Bwc19pbmZvX3BhY2tldCkoc3RydWN0IHN0
cmVhbV9lbmNvZGVyICplbmMsCjE0NDc0OiAgICAgYm9vbCBlbmFibGUsCjE0NDc0OiAgICAgdWlu
dDhfdCAqZHNjX3BhY2tlZF9wcHMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9keW5hbWlj
X21ldGFkYXRhKShzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgIGJvb2wgZW5h
YmxlLAoxNDQ3NDogICAgdWludDMyX3QgaHVicF9yZXF1ZXN0b3JfaWQsCjE0NDc0OiAgICBlbnVt
IGR5bmFtaWNfbWV0YWRhdGFfbW9kZSBkbWRhdGFfbW9kZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lk
ICgqZHBfc2V0X29kbV9jb21iaW5lKSgKMTQ0NzQ6ICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICpl
bmMsCjE0NDc0OiAgIGJvb2wgb2RtX2NvbWJpbmUpOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTAgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5o
IiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2luYy9ody9hdWRpby5oIiAxCjE0NDc0OiAjIDMxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2F1ZGlvLmgiCjE0NDc0OiBzdHJ1Y3Qg
YXVkaW87CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb19mdW5jcyB7CjE0NDc0OiAKMTQ0NzQ6
ICBib29sICgqZW5kcG9pbnRfdmFsaWQpKHN0cnVjdCBhdWRpbyAqYXVkaW8pOwoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAoKmh3X2luaXQpKHN0cnVjdCBhdWRpbyAqYXVkaW8pOwoxNDQ3NDogCjE0NDc0
OiAgdm9pZCAoKmF6X2VuYWJsZSkoc3RydWN0IGF1ZGlvICphdWRpbyk7CjE0NDc0OiAKMTQ0NzQ6
ICB2b2lkICgqYXpfZGlzYWJsZSkoc3RydWN0IGF1ZGlvICphdWRpbyk7CjE0NDc0OiAKMTQ0NzQ6
ICB2b2lkICgqYXpfY29uZmlndXJlKShzdHJ1Y3QgYXVkaW8gKmF1ZGlvLAoxNDQ3NDogICBlbnVt
IHNpZ25hbF90eXBlIHNpZ25hbCwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGF1ZGlvX2NydGNfaW5m
byAqY3J0Y19pbmZvLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgYXVkaW9faW5mbyAqYXVkaW9faW5m
byk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqd2FsbF9kdG9fc2V0dXApKHN0cnVjdCBhdWRpbyAq
YXVkaW8sCjE0NDc0OiAgIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsLAoxNDQ3NDogICBjb25zdCBz
dHJ1Y3QgYXVkaW9fY3J0Y19pbmZvICpjcnRjX2luZm8sCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBh
dWRpb19wbGxfaW5mbyAqcGxsX2luZm8pOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRlc3Ryb3kp
KHN0cnVjdCBhdWRpbyAqKmF1ZGlvKTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBh
dWRpbyB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGF1ZGlvX2Z1bmNzICpmdW5jczsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIHVuc2lnbmVkIGludCBpbnN0OwoxNDQ3NDog
IGJvb2wgZW5hYmxlZDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDUyICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fcHBfc211LmgiIDEK
MTQ0NzQ6ICMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9k
bV9wcF9zbXUuaCIKMTQ0NzQ6IHR5cGVkZWYgYm9vbCBCT09MRUFOOwoxNDQ3NDogCjE0NDc0OiBl
bnVtIHBwX3NtdV92ZXIgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIFBQX1NNVV9VTlNVUFBPUlRFRCwKMTQ0NzQ6ICBQUF9TTVVfVkVSX1JW
LAoxNDQ3NDogIFBQX1NNVV9WRVJfTlYsCjE0NDc0OiAgUFBfU01VX1ZFUl9STiwKMTQ0NzQ6IAox
NDQ3NDogIFBQX1NNVV9WRVJfTUFYCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHBf
c211IHsKMTQ0NzQ6ICBlbnVtIHBwX3NtdV92ZXIgdmVyOwoxNDQ3NDogIGNvbnN0IHZvaWQgKnBw
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IGNvbnN0IHZvaWQgKmRtOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBwcF9zbXVfc3Rh
dHVzIHsKMTQ0NzQ6ICBQUF9TTVVfUkVTVUxUX1VOREVGSU5FRCA9IDAsCjE0NDc0OiAgUFBfU01V
X1JFU1VMVF9PSyA9IDEsCjE0NDc0OiAgUFBfU01VX1JFU1VMVF9GQUlMLAoxNDQ3NDogIFBQX1NN
VV9SRVNVTFRfVU5TVVBQT1JURUQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0gd21fdHlwZSB7CjE0NDc0OiAgV01fVFlQRV9QU1RBVEVfQ0hHID0g
MCwKMTQ0NzQ6ICBXTV9UWVBFX1JFVFJBSU5JTkcgPSAxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgcHBfc211X3dtX3NldF9yYW5nZSB7CjE0NDc0OiAgdWludDE2X3Qg
bWluX2ZpbGxfY2xrX21oejsKMTQ0NzQ6ICB1aW50MTZfdCBtYXhfZmlsbF9jbGtfbWh6OwoxNDQ3
NDogIHVpbnQxNl90IG1pbl9kcmFpbl9jbGtfbWh6OwoxNDQ3NDogIHVpbnQxNl90IG1heF9kcmFp
bl9jbGtfbWh6OwoxNDQ3NDogCjE0NDc0OiAgdWludDhfdCB3bV9pbnN0OwoxNDQ3NDogIHVpbnQ4
X3Qgd21fdHlwZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgcHBfc211X3dtX3JhbmdlX3NldHMgewoxNDQ3NDogIHVuc2lnbmVkIGludCBudW1fcmVhZGVy
X3dtX3NldHM7CjE0NDc0OiAgc3RydWN0IHBwX3NtdV93bV9zZXRfcmFuZ2UgcmVhZGVyX3dtX3Nl
dHNbNF07CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbnVtX3dyaXRlcl93bV9zZXRzOwox
NDQ3NDogIHN0cnVjdCBwcF9zbXVfd21fc2V0X3JhbmdlIHdyaXRlcl93bV9zZXRzWzRdOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBwX3NtdV9mdW5jc19ydiB7CjE0NDc0OiAgc3Ry
dWN0IHBwX3NtdSBwcF9zbXU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHZvaWQgKCpzZXRfZGlzcGxheV9jb3VudCkoc3RydWN0IHBwX3NtdSAqcHAsIGlu
dCBjb3VudCk7CjE0NDc0OiAjIDExNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RtX3BwX3NtdS5oIgoxNDQ3NDogIHZvaWQgKCpzZXRfd21fcmFuZ2VzKShzdHJ1
Y3QgcHBfc211ICpwcCwKMTQ0NzQ6ICAgIHN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vfc2V0cyAqcmFu
Z2VzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRf
aGFyZF9taW5fZGNmY2xrX2J5X2ZyZXEpKHN0cnVjdCBwcF9zbXUgKnBwLCBpbnQgbWh6KTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9t
aW5fZGVlcF9zbGVlcF9kY2ZjbGspKHN0cnVjdCBwcF9zbXUgKnBwLCBpbnQgbWh6KTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRfaGFyZF9taW5fZmNs
a19ieV9mcmVxKShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IG1oeik7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X2hhcmRfbWluX3NvY2Nsa19ieV9mcmVx
KShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IG1oeik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZv
aWQgKCpzZXRfcG1lX3dhX2VuYWJsZSkoc3RydWN0IHBwX3NtdSAqcHApOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBwcF9zbXVfbnZfY2xvY2tf
aWQgewoxNDQ3NDogIFBQX1NNVV9OVl9ESVNQQ0xLLAoxNDQ3NDogIFBQX1NNVV9OVl9QSFlDTEss
CjE0NDc0OiAgUFBfU01VX05WX1BJWEVMQ0xLCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHBfc211X252X2Nsb2NrX3RhYmxlIHsKMTQ0NzQ6
IAoxNDQ3NDogIHVuc2lnbmVkIGludCBkaXNwbGF5Q2xvY2tJbktoejsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgZHBwQ2xvY2tJbktoejsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcGh5Q2xvY2tJbktoejsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcGl4ZWxDbG9ja0luS2h6OwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBkc2NDbG9ja0luS2h6OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmFi
cmljQ2xvY2tJbktoejsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc29jQ2xvY2tJbktoejsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgZGNmQ2xvY2tJbktoejsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdUNsb2Nr
SW5LaHo7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHBfc211X2Z1bmNzX252IHsK
MTQ0NzQ6ICBzdHJ1Y3QgcHBfc211IHBwX3NtdTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIGVudW0gcHBfc211X3N0YXR1cyAoKnNldF9kaXNwbGF5X2NvdW50KShzdHJ1
Y3QgcHBfc211ICpwcCwgaW50IGNvdW50KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIGVudW0gcHBfc211X3N0YXR1cyAoKnNldF9oYXJkX21pbl9kY2ZjbGtfYnlfZnJl
cSkoc3RydWN0IHBwX3NtdSAqcHAsIGludCBNaHopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfbWluX2RlZXBf
c2xlZXBfZGNmY2xrKShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IE1oeik7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfaGFyZF9t
aW5fdWNsa19ieV9mcmVxKShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IE1oeik7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfaGFy
ZF9taW5fc29jY2xrX2J5X2ZyZXEpKHN0cnVjdCBwcF9zbXUgKnBwLCBpbnQgTWh6KTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X3BtZV93YV9lbmFibGUp
KHN0cnVjdCBwcF9zbXUgKnBwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIGVudW0gcHBfc211X3N0YXR1cyAoKnNldF92b2x0YWdlX2J5X2ZyZXEpKHN0cnVjdCBwcF9z
bXUgKnBwLAoxNDQ3NDogICAgZW51bSBwcF9zbXVfbnZfY2xvY2tfaWQgY2xvY2tfaWQsIGludCBN
aHopOwoxNDQ3NDogIyAyMTkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kbV9wcF9zbXUuaCIKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfd21fcmFu
Z2VzKShzdHJ1Y3QgcHBfc211ICpwcCwKMTQ0NzQ6ICAgIHN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vf
c2V0cyAqcmFuZ2VzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGVu
dW0gcHBfc211X3N0YXR1cyAoKmdldF9tYXhpbXVtX3N1c3RhaW5hYmxlX2Nsb2Nrcykoc3RydWN0
IHBwX3NtdSAqcHAsCjE0NDc0OiAgICBzdHJ1Y3QgcHBfc211X252X2Nsb2NrX3RhYmxlICptYXhf
Y2xvY2tzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0
dXMgKCpnZXRfdWNsa19kcG1fc3RhdGVzKShzdHJ1Y3QgcHBfc211ICpwcCwKMTQ0NzQ6ICAgIHVu
c2lnbmVkIGludCAqY2xvY2tfdmFsdWVzX2luX2toeiwgdW5zaWduZWQgaW50ICpudW1fc3RhdGVz
KTsKMTQ0NzQ6ICMgMjQyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZG1fcHBfc211LmgiCjE0NDc0OiAgZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X3BzdGF0ZV9o
YW5kc2hha2Vfc3VwcG9ydCkoc3RydWN0IHBwX3NtdSAqcHAsCjE0NDc0OiAgICBCT09MRUFOIHBz
dGF0ZV9oYW5kc2hha2Vfc3VwcG9ydGVkKTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBtX2Nsb2NrIHsKMTQ0
NzQ6ICAgdWludDMyX3QgRnJlcTsKMTQ0NzQ6ICAgdWludDMyX3QgVm9sOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcG1fY2xvY2tzIHsKMTQ0NzQ6ICBz
dHJ1Y3QgZHBtX2Nsb2NrIERjZkNsb2Nrc1s4XTsKMTQ0NzQ6ICBzdHJ1Y3QgZHBtX2Nsb2NrIFNv
Y0Nsb2Nrc1s4XTsKMTQ0NzQ6ICBzdHJ1Y3QgZHBtX2Nsb2NrIEZDbG9ja3NbNF07CjE0NDc0OiAg
c3RydWN0IGRwbV9jbG9jayBNZW1DbG9ja3NbNF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBwcF9zbXVfZnVuY3Nfcm4gewoxNDQ3NDogIHN0cnVjdCBwcF9zbXUgcHBf
c211OwoxNDQ3NDogIyAyNzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kbV9wcF9zbXUuaCIKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfd21fcmFu
Z2VzKShzdHJ1Y3QgcHBfc211ICpwcCwKMTQ0NzQ6ICAgIHN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vf
c2V0cyAqcmFuZ2VzKTsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gcHBfc211X3N0YXR1cyAoKmdldF9k
cG1fY2xvY2tfdGFibGUpIChzdHJ1Y3QgcHBfc211ICpwcCwKMTQ0NzQ6ICAgIHN0cnVjdCBkcG1f
Y2xvY2tzICpjbG9ja190YWJsZSk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHBf
c211X2Z1bmNzIHsKMTQ0NzQ6ICBzdHJ1Y3QgcHBfc211IGN0eDsKMTQ0NzQ6ICB1bmlvbiB7CjE0
NDc0OiAgIHN0cnVjdCBwcF9zbXVfZnVuY3NfcnYgcnZfZnVuY3M7CjE0NDc0OiAgIHN0cnVjdCBw
cF9zbXVfZnVuY3NfbnYgbnZfZnVuY3M7CjE0NDc0OiAgIHN0cnVjdCBwcF9zbXVfZnVuY3Nfcm4g
cm5fZnVuY3M7CjE0NDc0OiAKMTQ0NzQ6ICB9OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTMgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAy
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGxp
bmtfaW5pdF9kYXRhIHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGMgKmRjOwoxNDQ3NDogIHN0cnVj
dCBkY19jb250ZXh0ICpjdHg7CjE0NDc0OiAgdWludDMyX3QgY29ubmVjdG9yX2luZGV4OwoxNDQ3
NDogIHVpbnQzMl90IGxpbmtfaW5kZXg7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY19saW5rICpsaW5rX2NyZWF0ZShjb25zdCBzdHJ1Y3QgbGlua19pbml0X2RhdGEg
KmluaXRfcGFyYW1zKTsKMTQ0NzQ6IHZvaWQgbGlua19kZXN0cm95KHN0cnVjdCBkY19saW5rICoq
bGluayk7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfc3RhdHVzIGRjX2xpbmtfdmFsaWRhdGVfbW9k
ZV90aW1pbmcoCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwK
MTQ0NzQ6ICAgc3RydWN0IGRjX2xpbmsgKmxpbmssCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19j
cnRjX3RpbWluZyAqdGltaW5nKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBjb3JlX2xpbmtfcmVzdW1l
KHN0cnVjdCBkY19saW5rICpsaW5rKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBjb3JlX2xpbmtfZW5h
YmxlX3N0cmVhbSgKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0YXRlICpzdGF0ZSwKMTQ0NzQ6ICAgc3Ry
dWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgY29yZV9saW5rX2Rp
c2FibGVfc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogCjE0NDc0OiB2
b2lkIGNvcmVfbGlua19zZXRfYXZtdXRlKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGJvb2wg
ZW5hYmxlKTsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L3RyYW5zZm9ybS5oIiAxCjE0NDc0OiAjIDg1ICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgox
NDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L2h3L2RwcC5oIiAxCjE0NDc0OiAjIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvaW5jL2h3L2RwcC5oIgoxNDQ3NDogc3RydWN0IGRwcCB7CjE0NDc0OiAgY29u
c3Qgc3RydWN0IGRwcF9mdW5jcyAqZnVuY3M7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0
eDsKMTQ0NzQ6ICBpbnQgaW5zdDsKMTQ0NzQ6ICBzdHJ1Y3QgZHBwX2NhcHMgKmNhcHM7CjE0NDc0
OiAgc3RydWN0IHB3bF9wYXJhbXMgcmVnYW1tYV9wYXJhbXM7CjE0NDc0OiAgc3RydWN0IHB3bF9w
YXJhbXMgZGVnYW1tYV9wYXJhbXM7CjE0NDc0OiAgc3RydWN0IGRwcF9jdXJzb3JfYXR0cmlidXRl
cyBjdXJfYXR0cjsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwd2xfcGFyYW1zIHNoYXBlcl9wYXJh
bXM7CjE0NDc0OiAgYm9vbCBjbV9ieXBhc3NfbW9kZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkcHBfaW5wdXRfY3NjX21hdHJpeCB7CjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFj
ZSBjb2xvcl9zcGFjZTsKMTQ0NzQ6ICB1aW50MTZfdCByZWd2YWxbMTJdOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBkcHBfaW5wdXRfY3NjX21hdHJpeCBkcHBf
aW5wdXRfY3NjX21hdHJpeFtdID0gewoxNDQ3NDogIHtDT0xPUl9TUEFDRV9TUkdCLAoxNDQ3NDog
ICB7MHgyMDAwLCAwLCAwLCAwLCAwLCAweDIwMDAsIDAsIDAsIDAsIDAsIDB4MjAwMCwgMH0gfSwK
MTQ0NzQ6ICB7Q09MT1JfU1BBQ0VfU1JHQl9MSU1JVEVELAoxNDQ3NDogICB7MHgyMDAwLCAwLCAw
LCAwLCAwLCAweDIwMDAsIDAsIDAsIDAsIDAsIDB4MjAwMCwgMH0gfSwKMTQ0NzQ6ICB7Q09MT1Jf
U1BBQ0VfWUNCQ1I2MDEsCjE0NDc0OiAgIHsweDJjZGQsIDB4MjAwMCwgMCwgMHhlOTkxLCAweGU5
MjYsIDB4MjAwMCwgMHhmNGZkLCAweDEwZWYsCjE0NDc0OiAgICAgICAwLCAweDIwMDAsIDB4Mzhi
NCwgMHhlM2E2fSB9LAoxNDQ3NDogIHtDT0xPUl9TUEFDRV9ZQ0JDUjYwMV9MSU1JVEVELAoxNDQ3
NDogICB7MHgzMzUzLCAweDI1NjgsIDAsIDB4ZTQwMCwgMHhlNWRjLCAweDI1NjgsIDB4ZjM2Nywg
MHgxMTA4LAoxNDQ3NDogICAgICAgMCwgMHgyNTY4LCAweDQwZGUsIDB4ZGQzYX0gfSwKMTQ0NzQ6
ICB7Q09MT1JfU1BBQ0VfWUNCQ1I3MDksCjE0NDc0OiAgIHsweDMyNjUsIDB4MjAwMCwgMCwgMHhl
NmNlLCAweGYxMDUsIDB4MjAwMCwgMHhmYTAxLCAweGE3ZCwgMCwKMTQ0NzQ6ICAgICAgIDB4MjAw
MCwgMHgzYjYxLCAweGUyNGZ9IH0sCjE0NDc0OiAKMTQ0NzQ6ICB7Q09MT1JfU1BBQ0VfWUNCQ1I3
MDlfTElNSVRFRCwKMTQ0NzQ6ICAgezB4MzlhNiwgMHgyNTY4LCAwLCAweGUwZDYsIDB4ZWVkZCwg
MHgyNTY4LCAweGY5MjUsIDB4OWE4LCAwLAoxNDQ3NDogICAgICAgMHgyNTY4LCAweDQzZWUsIDB4
ZGJiMn0gfQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRwcF9ncnBoX2NzY19hZGp1
c3RtZW50IHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiB0ZW1wZXJhdHVyZV9tYXRyaXhbMTJd
OwoxNDQ3NDogIGVudW0gZ3JhcGhpY3NfZ2FtdXRfYWRqdXN0X3R5cGUgZ2FtdXRfYWRqdXN0X3R5
cGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY252X2NvbG9yX2tleWVyX3BhcmFt
cyB7CjE0NDc0OiAgaW50IGNvbG9yX2tleWVyX2VuOwoxNDQ3NDogIGludCBjb2xvcl9rZXllcl9t
b2RlOwoxNDQ3NDogIGludCBjb2xvcl9rZXllcl9hbHBoYV9sb3c7CjE0NDc0OiAgaW50IGNvbG9y
X2tleWVyX2FscGhhX2hpZ2g7CjE0NDc0OiAgaW50IGNvbG9yX2tleWVyX3JlZF9sb3c7CjE0NDc0
OiAgaW50IGNvbG9yX2tleWVyX3JlZF9oaWdoOwoxNDQ3NDogIGludCBjb2xvcl9rZXllcl9ncmVl
bl9sb3c7CjE0NDc0OiAgaW50IGNvbG9yX2tleWVyX2dyZWVuX2hpZ2g7CjE0NDc0OiAgaW50IGNv
bG9yX2tleWVyX2JsdWVfbG93OwoxNDQ3NDogIGludCBjb2xvcl9rZXllcl9ibHVlX2hpZ2g7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY252X2FscGhhXzJiaXRfbHV0IHsKMTQ0NzQ6ICBpbnQgbHV0
MDsKMTQ0NzQ6ICBpbnQgbHV0MTsKMTQ0NzQ6ICBpbnQgbHV0MjsKMTQ0NzQ6ICBpbnQgbHV0MzsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY25fZHBwX3N0YXRlIHsKMTQ0NzQ6ICB1
aW50MzJfdCBpc19lbmFibGVkOwoxNDQ3NDogIHVpbnQzMl90IGlnYW1fbHV0X21vZGU7CjE0NDc0
OiAgdWludDMyX3QgaWdhbV9pbnB1dF9mb3JtYXQ7CjE0NDc0OiAgdWludDMyX3QgZGdhbV9sdXRf
bW9kZTsKMTQ0NzQ6ICB1aW50MzJfdCByZ2FtX2x1dF9tb2RlOwoxNDQ3NDogIHVpbnQzMl90IGdh
bXV0X3JlbWFwX21vZGU7CjE0NDc0OiAgdWludDMyX3QgZ2FtdXRfcmVtYXBfYzExX2MxMjsKMTQ0
NzQ6ICB1aW50MzJfdCBnYW11dF9yZW1hcF9jMTNfYzE0OwoxNDQ3NDogIHVpbnQzMl90IGdhbXV0
X3JlbWFwX2MyMV9jMjI7CjE0NDc0OiAgdWludDMyX3QgZ2FtdXRfcmVtYXBfYzIzX2MyNDsKMTQ0
NzQ6ICB1aW50MzJfdCBnYW11dF9yZW1hcF9jMzFfYzMyOwoxNDQ3NDogIHVpbnQzMl90IGdhbXV0
X3JlbWFwX2MzM19jMzQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgQ01fYmlhc19w
YXJhbXMgewoxNDQ3NDogIHVpbnQzMl90IGNtX2JpYXNfY3JfcjsKMTQ0NzQ6ICB1aW50MzJfdCBj
bV9iaWFzX3lfZzsKMTQ0NzQ6ICB1aW50MzJfdCBjbV9iaWFzX2NiX2I7CjE0NDc0OiAgdWludDMy
X3QgY21fYmlhc19mb3JtYXQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBwX2Z1
bmNzIHsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfcHJvZ3JhbV9jbV9kZWFscGhhKShzdHJ1
Y3QgZHBwICpkcHBfYmFzZSwKMTQ0NzQ6ICAgdWludDMyX3QgZW5hYmxlLCB1aW50MzJfdCBhZGRp
dGl2ZV9ibGVuZGluZyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHBwX3Byb2dyYW1fY21fYmlh
cykoCjE0NDc0OiAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAoxNDQ3NDogICBzdHJ1Y3QgQ01fYmlh
c19wYXJhbXMgKmJpYXNfcGFyYW1zKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfcmVhZF9z
dGF0ZSkoc3RydWN0IGRwcCAqZHBwLCBzdHJ1Y3QgZGNuX2RwcF9zdGF0ZSAqcyk7CjE0NDc0OiAK
MTQ0NzQ6ICB2b2lkICgqZHBwX3Jlc2V0KShzdHJ1Y3QgZHBwICpkcHApOwoxNDQ3NDogCjE0NDc0
OiAgdm9pZCAoKmRwcF9zZXRfc2NhbGVyKShzdHJ1Y3QgZHBwICpkcHAsCjE0NDc0OiAgICBjb25z
dCBzdHJ1Y3Qgc2NhbGVyX2RhdGEgKnNjbF9kYXRhKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpk
cHBfc2V0X3BpeGVsX3N0b3JhZ2VfZGVwdGgpKAoxNDQ3NDogICAgc3RydWN0IGRwcCAqZHBwLAox
NDQ3NDogICAgZW51bSBsYl9waXhlbF9kZXB0aCBkZXB0aCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVj
dCBiaXRfZGVwdGhfcmVkdWN0aW9uX3BhcmFtcyAqYml0X2RlcHRoX3BhcmFtcyk7CjE0NDc0OiAK
MTQ0NzQ6ICBib29sICgqZHBwX2dldF9vcHRpbWFsX251bWJlcl9vZl90YXBzKSgKMTQ0NzQ6ICAg
IHN0cnVjdCBkcHAgKmRwcCwKMTQ0NzQ6ICAgIHN0cnVjdCBzY2FsZXJfZGF0YSAqc2NsX2RhdGEs
CjE0NDc0OiAgICBjb25zdCBzdHJ1Y3Qgc2NhbGluZ190YXBzICppbl90YXBzKTsKMTQ0NzQ6IAox
NDQ3NDogIHZvaWQgKCpkcHBfc2V0X2dhbXV0X3JlbWFwKSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAg
KmRwcCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBkcHBfZ3JwaF9jc2NfYWRqdXN0bWVudCAqYWRq
dXN0KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfc2V0X2NzY19kZWZhdWx0KSgKMTQ0NzQ6
ICAgc3RydWN0IGRwcCAqZHBwLAoxNDQ3NDogICBlbnVtIGRjX2NvbG9yX3NwYWNlIGNvbG9yc3Bh
Y2UpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwcF9zZXRfY3NjX2FkanVzdG1lbnQpKAoxNDQ3
NDogICBzdHJ1Y3QgZHBwICpkcHAsCjE0NDc0OiAgIGNvbnN0IHVpbnQxNl90ICpyZWd2YWwpOwox
NDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwcF9wb3dlcl9vbl9yZWdhbW1hX2x1dCkoCjE0NDc0OiAg
IHN0cnVjdCBkcHAgKmRwcCwKMTQ0NzQ6ICAgYm9vbCBwb3dlcl9vbik7CjE0NDc0OiAKMTQ0NzQ6
ICB2b2lkICgqZHBwX3Byb2dyYW1fcmVnYW1tYV9sdXQpKAoxNDQ3NDogICAgc3RydWN0IGRwcCAq
ZHBwLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IHB3bF9yZXN1bHRfZGF0YSAqcmdiLAoxNDQ3NDog
ICAgdWludDMyX3QgbnVtKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfY29uZmlndXJlX3Jl
Z2FtbWFfbHV0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcCwKMTQ0NzQ6ICAgIGJvb2wgaXNf
cmFtX2EpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwcF9wcm9ncmFtX3JlZ2FtbWFfbHV0Yl9z
ZXR0aW5ncykoCjE0NDc0OiAgICBzdHJ1Y3QgZHBwICpkcHAsCjE0NDc0OiAgICBjb25zdCBzdHJ1
Y3QgcHdsX3BhcmFtcyAqcGFyYW1zKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfcHJvZ3Jh
bV9yZWdhbW1hX2x1dGFfc2V0dGluZ3MpKAoxNDQ3NDogICAgc3RydWN0IGRwcCAqZHBwLAoxNDQ3
NDogICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqZHBwX3Byb2dyYW1fcmVnYW1tYV9wd2wpKAoxNDQ3NDogICBzdHJ1Y3QgZHBwICpkcHAs
CjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBwd2xfcGFyYW1zICpwYXJhbXMsCjE0NDc0OiAgIGVudW0g
b3BwX3JlZ2FtbWEgbW9kZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHBwX3Byb2dyYW1fYmlh
c19hbmRfc2NhbGUpKAoxNDQ3NDogICAgc3RydWN0IGRwcCAqZHBwLAoxNDQ3NDogICAgc3RydWN0
IGRjX2JpYXNfYW5kX3NjYWxlICpwYXJhbXMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwcF9z
ZXRfZGVnYW1tYSkoCjE0NDc0OiAgICBzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKMTQ0NzQ6ICAgIGVu
dW0gaXBwX2RlZ2FtbWFfbW9kZSBtb2RlKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfcHJv
Z3JhbV9pbnB1dF9sdXQpKAoxNDQ3NDogICAgc3RydWN0IGRwcCAqZHBwX2Jhc2UsCjE0NDc0OiAg
ICBjb25zdCBzdHJ1Y3QgZGNfZ2FtbWEgKmdhbW1hKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpk
cHBfcHJvZ3JhbV9kZWdhbW1hX3B3bCkoc3RydWN0IGRwcCAqZHBwX2Jhc2UsCjE0NDc0OiAgICAg
ICAgICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqZHBwX3NldHVwKSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAoxNDQ3NDog
ICAgZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQsCjE0NDc0OiAgICBlbnVtIGV4cGFu
c2lvbl9tb2RlIG1vZGUsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY3NjX3RyYW5zZm9ybSBpbnB1dF9j
c2NfY29sb3JfbWF0cml4LAoxNDQ3NDogICAgZW51bSBkY19jb2xvcl9zcGFjZSBpbnB1dF9jb2xv
cl9zcGFjZSwKMTQ0NzQ6ICAgIHN0cnVjdCBjbnZfYWxwaGFfMmJpdF9sdXQgKmFscGhhXzJiaXRf
bHV0KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfZnVsbF9ieXBhc3MpKHN0cnVjdCBkcHAg
KmRwcF9iYXNlKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRfY3Vyc29yX2F0dHJpYnV0ZXMp
KAoxNDQ3NDogICAgc3RydWN0IGRwcCAqZHBwX2Jhc2UsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY3Vy
c29yX2F0dHJpYnV0ZXMgKmN1cnNvcl9hdHRyaWJ1dGVzKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQg
KCpzZXRfY3Vyc29yX3Bvc2l0aW9uKSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAox
NDQ3NDogICAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9wb3NpdGlvbiAqcG9zLAoxNDQ3NDogICAg
Y29uc3Qgc3RydWN0IGRjX2N1cnNvcl9taV9wYXJhbSAqcGFyYW0sCjE0NDc0OiAgICB1aW50MzJf
dCB3aWR0aCwKMTQ0NzQ6ICAgIHVpbnQzMl90IGhlaWdodAoxNDQ3NDogICAgKTsKMTQ0NzQ6IAox
NDQ3NDogIHZvaWQgKCpkcHBfc2V0X2hkcl9tdWx0aXBsaWVyKSgKMTQ0NzQ6ICAgIHN0cnVjdCBk
cHAgKmRwcF9iYXNlLAoxNDQ3NDogICAgdWludDMyX3QgbXVsdGlwbGllcik7CjE0NDc0OiAKMTQ0
NzQ6ICB2b2lkICgqc2V0X29wdGlvbmFsX2N1cnNvcl9hdHRyaWJ1dGVzKSgKMTQ0NzQ6ICAgIHN0
cnVjdCBkcHAgKmRwcF9iYXNlLAoxNDQ3NDogICAgc3RydWN0IGRwcF9jdXJzb3JfYXR0cmlidXRl
cyAqYXR0cik7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHBwX2RwcGNsa19jb250cm9sKSgKMTQ0
NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAoxNDQ3NDogICAgYm9vbCBkcHBjbGtfZGl2LAox
NDQ3NDogICAgYm9vbCBlbmFibGUpOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCAoKmRwcF9wcm9ncmFt
X2JsbmRfbHV0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcCwKMTQ0NzQ6ICAgIGNvbnN0IHN0
cnVjdCBwd2xfcGFyYW1zICpwYXJhbXMpOwoxNDQ3NDogIGJvb2wgKCpkcHBfcHJvZ3JhbV9zaGFw
ZXJfbHV0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVj
dCBwd2xfcGFyYW1zICpwYXJhbXMpOwoxNDQ3NDogIGJvb2wgKCpkcHBfcHJvZ3JhbV8zZGx1dCko
CjE0NDc0OiAgICBzdHJ1Y3QgZHBwICpkcHAsCjE0NDc0OiAgICBzdHJ1Y3QgdGV0cmFoZWRyYWxf
cGFyYW1zICpwYXJhbXMpOwoxNDQ3NDogIHZvaWQgKCpkcHBfY252X3NldF9hbHBoYV9rZXllciko
CjE0NDc0OiAgICBzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKMTQ0NzQ6ICAgIHN0cnVjdCBjbnZfY29s
b3Jfa2V5ZXJfcGFyYW1zICpjb2xvcl9rZXllcik7CjE0NDc0OiB9OwoxNDQ3NDogIyA4NiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJlc291cmNlX3Bvb2w7CjE0NDc0OiBzdHJ1Y3QgZGNf
c3RhdGU7CjE0NDc0OiBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dDsKMTQ0NzQ6IHN0cnVjdCBjbGtf
YndfcGFyYW1zOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcmVzb3VyY2VfZnVuY3MgewoxNDQ3NDog
IHZvaWQgKCpkZXN0cm95KShzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqKnBvb2wpOwoxNDQ3NDogIHZv
aWQgKCpsaW5rX2luaXQpKHN0cnVjdCBkY19saW5rICpsaW5rKTsKMTQ0NzQ6ICBzdHJ1Y3QgbGlu
a19lbmNvZGVyICooKmxpbmtfZW5jX2NyZWF0ZSkoCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3QgZW5j
b2Rlcl9pbml0X2RhdGEgKmluaXQpOwoxNDQ3NDogIGJvb2wgKCp2YWxpZGF0ZV9iYW5kd2lkdGgp
KAoxNDQ3NDogICAgICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgICBzdHJ1Y3QgZGNfc3RhdGUg
KmNvbnRleHQsCjE0NDc0OiAgICAgIGJvb2wgZmFzdF92YWxpZGF0ZSk7CjE0NDc0OiAKMTQ0NzQ6
ICBpbnQgKCpwb3B1bGF0ZV9kbWxfcGlwZXMpKAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3
NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCjE0NDc0OiAgIGRpc3BsYXlfZTJlX3BpcGVf
cGFyYW1zX3N0ICpwaXBlcyk7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRjX3N0YXR1cyAoKnZhbGlk
YXRlX2dsb2JhbCkoCjE0NDc0OiAgIHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgIHN0cnVjdCBkY19z
dGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgcGlwZV9jdHggKigqYWNxdWly
ZV9pZGxlX3BpcGVfZm9yX2xheWVyKSgKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4
dCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAoxNDQ3NDogICAg
c3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gZGNf
c3RhdHVzICgqdmFsaWRhdGVfcGxhbmUpKGNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxh
bmVfc3RhdGUsIHN0cnVjdCBkY19jYXBzICpjYXBzKTsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gZGNf
c3RhdHVzICgqYWRkX3N0cmVhbV90b19jdHgpKAoxNDQ3NDogICAgc3RydWN0IGRjICpkYywKMTQ0
NzQ6ICAgIHN0cnVjdCBkY19zdGF0ZSAqbmV3X2N0eCwKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdHJl
YW1fc3RhdGUgKmRjX3N0cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRjX3N0YXR1cyAoKnJl
bW92ZV9zdHJlYW1fZnJvbV9jdHgpKAoxNDQ3NDogICAgIHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAg
ICAgc3RydWN0IGRjX3N0YXRlICpuZXdfY3R4LAoxNDQ3NDogICAgIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAgZW51bSBkY19zdGF0dXMgKCpnZXRfZGVmYXVsdF9zd2l6
emxlX21vZGUpKAoxNDQ3NDogICAgc3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7
CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKigqZmluZF9maXJzdF9mcmVl
X21hdGNoX3N0cmVhbV9lbmNfZm9yX2xpbmspKAoxNDQ3NDogICAgc3RydWN0IHJlc291cmNlX2Nv
bnRleHQgKnJlc19jdHgsCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcG9v
bCwKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAgdm9p
ZCAoKnBvcHVsYXRlX2RtbF93cml0ZWJhY2tfZnJvbV9jb250ZXh0KSgKMTQ0NzQ6ICAgIHN0cnVj
dCBkYyAqZGMsCjE0NDc0OiAgICBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKMTQ0
NzQ6ICAgIGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcyk7CjE0NDc0OiAKMTQ0NzQ6
ICB2b2lkICgqc2V0X21jaWZfYXJiX3BhcmFtcykoCjE0NDc0OiAgICBzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAoxNDQ3NDogICAgZGlzcGxheV9lMmVf
cGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICAgaW50IHBpcGVfY250KTsKMTQ0NzQ6ICB2
b2lkICgqdXBkYXRlX2J3X2JvdW5kaW5nX2JveCkoCjE0NDc0OiAgICBzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogICAgc3RydWN0IGNsa19id19wYXJhbXMgKmJ3X3BhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb19zdXBwb3J0ewoxNDQ3NDogIGJvb2wgZHBf
YXVkaW87CjE0NDc0OiAgYm9vbCBoZG1pX2F1ZGlvX29uX2RvbmdsZTsKMTQ0NzQ6ICBib29sIGhk
bWlfYXVkaW9fbmF0aXZlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCByZXNvdXJjZV9wb29sIHsKMTQ0NzQ6ICBzdHJ1Y3QgbWVtX2lucHV0ICptaXNbNl07
CjE0NDc0OiAgc3RydWN0IGh1YnAgKmh1YnBzWzZdOwoxNDQ3NDogIHN0cnVjdCBpbnB1dF9waXhl
bF9wcm9jZXNzb3IgKmlwcHNbNl07CjE0NDc0OiAgc3RydWN0IHRyYW5zZm9ybSAqdHJhbnNmb3Jt
c1s2XTsKMTQ0NzQ6ICBzdHJ1Y3QgZHBwICpkcHBzWzZdOwoxNDQ3NDogIHN0cnVjdCBvdXRwdXRf
cGl4ZWxfcHJvY2Vzc29yICpvcHBzWzZdOwoxNDQ3NDogIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9y
ICp0aW1pbmdfZ2VuZXJhdG9yc1s2XTsKMTQ0NzQ6ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKnN0
cmVhbV9lbmNbNiAqIDJdOwoxNDQ3NDogIHN0cnVjdCBodWJidWIgKmh1YmJ1YjsKMTQ0NzQ6ICBz
dHJ1Y3QgbXBjICptcGM7CjE0NDc0OiAgc3RydWN0IHBwX3NtdV9mdW5jcyAqcHBfc211OwoxNDQ3
NDogIHN0cnVjdCBkY2VfYXV4ICplbmdpbmVzWzZdOwoxNDQ3NDogIHN0cnVjdCBkY2VfaTJjX2h3
ICpod19pMmNzWzZdOwoxNDQ3NDogIHN0cnVjdCBkY2VfaTJjX3N3ICpzd19pMmNzWzZdOwoxNDQ3
NDogIGJvb2wgaTJjX2h3X2J1ZmZlcl9pbl91c2U7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZHdi
YyAqZHdiY1sxXTsKMTQ0NzQ6ICBzdHJ1Y3QgbWNpZl93YiAqbWNpZl93YlsxXTsKMTQ0NzQ6ICBz
dHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgZ3NsXzA6MTsKMTQ0NzQ6ICAgdW5zaWduZWQg
aW50IGdzbF8xOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBnc2xfMjoxOwoxNDQ3NDogIH0gZ3Ns
X2dyb3VwczsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29y
ICpkc2NzWzZdOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IHBpcGVfY291bnQ7CjE0NDc0
OiAgdW5zaWduZWQgaW50IHVuZGVybGF5X3BpcGVfaW5kZXg7CjE0NDc0OiAgdW5zaWduZWQgaW50
IHN0cmVhbV9lbmNfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNp
Z25lZCBpbnQgeHRhbGluX2Nsb2NrX2luS2h6OwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgZGNjZ19y
ZWZfY2xvY2tfaW5LaHo7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBkY2h1Yl9yZWZfY2xvY2tfaW5L
aHo7CjE0NDc0OiAgfSByZWZfY2xvY2tzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB0aW1pbmdfZ2Vu
ZXJhdG9yX2NvdW50OwoxNDQ3NDogIHVuc2lnbmVkIGludCBtcGNjX2NvdW50OwoxNDQ3NDogCjE0
NDc0OiAgdW5zaWduZWQgaW50IHdyaXRlYmFja19waXBlX2NvdW50OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjbG9ja19zb3VyY2UgKmRwX2Nsb2NrX3NvdXJjZTsKMTQ0
NzQ6IAoxNDQ3NDogIHN0cnVjdCBjbG9ja19zb3VyY2UgKmNsb2NrX3NvdXJjZXNbN107CjE0NDc0
OiAgdW5zaWduZWQgaW50IGNsa19zcmNfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgYXVk
aW8gKmF1ZGlvc1s3XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgYXVkaW9fY291bnQ7CjE0NDc0OiAg
c3RydWN0IGF1ZGlvX3N1cHBvcnQgYXVkaW9fc3VwcG9ydDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVj
dCBkY2NnICpkY2NnOwoxNDQ3NDogIHN0cnVjdCBpcnFfc2VydmljZSAqaXJxczsKMTQ0NzQ6IAox
NDQ3NDogIHN0cnVjdCBhYm0gKmFibTsKMTQ0NzQ6ICBzdHJ1Y3QgZG1jdSAqZG1jdTsKMTQ0NzQ6
ICBzdHJ1Y3QgZG11Yl9wc3IgKnBzcjsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IHN0cnVjdCByZXNv
dXJjZV9mdW5jcyAqZnVuY3M7CjE0NDc0OiAgY29uc3Qgc3RydWN0IHJlc291cmNlX2NhcHMgKnJl
c19jYXA7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGRjX3NlcnZpY2UgKm9lbV9kZXZpY2U7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNuX2ZlX2JhbmR3aWR0aCB7CjE0NDc0OiAg
aW50IGRwcGNsa19raHo7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBz
dHJlYW1fcmVzb3VyY2UgewoxNDQ3NDogIHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpv
cHA7CjE0NDc0OiAgc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYzsKMTQ0NzQ6
ICBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGc7CjE0NDc0OiAgc3RydWN0IHN0cmVhbV9lbmNv
ZGVyICpzdHJlYW1fZW5jOwoxNDQ3NDogIHN0cnVjdCBhdWRpbyAqYXVkaW87CjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3QgcGl4ZWxfY2xrX3BhcmFtcyBwaXhfY2xrX3BhcmFtczsKMTQ0NzQ6ICBzdHJ1
Y3QgZW5jb2Rlcl9pbmZvX2ZyYW1lIGVuY29kZXJfaW5mb19mcmFtZTsKMTQ0NzQ6IAoxNDQ3NDog
IHN0cnVjdCBhYm0gKmFibTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90
IGdzbF9ncm91cDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwbGFuZV9yZXNvdXJj
ZSB7CjE0NDc0OiAgc3RydWN0IHNjYWxlcl9kYXRhIHNjbF9kYXRhOwoxNDQ3NDogIHN0cnVjdCBo
dWJwICpodWJwOwoxNDQ3NDogIHN0cnVjdCBtZW1faW5wdXQgKm1pOwoxNDQ3NDogIHN0cnVjdCBp
bnB1dF9waXhlbF9wcm9jZXNzb3IgKmlwcDsKMTQ0NzQ6ICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm07
CjE0NDc0OiAgc3RydWN0IGRwcCAqZHBwOwoxNDQ3NDogIHVpbnQ4X3QgbXBjY19pbnN0OwoxNDQ3
NDogCjE0NDc0OiAgc3RydWN0IGRjbl9mZV9iYW5kd2lkdGggYnc7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiB1bmlvbiBwaXBlX3VwZGF0ZV9mbGFncyB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6
ICAgdWludDMyX3QgZW5hYmxlIDogMTsKMTQ0NzQ6ICAgdWludDMyX3QgZGlzYWJsZSA6IDE7CjE0
NDc0OiAgIHVpbnQzMl90IG9kbSA6IDE7CjE0NDc0OiAgIHVpbnQzMl90IGdsb2JhbF9zeW5jIDog
MTsKMTQ0NzQ6ICAgdWludDMyX3Qgb3BwX2NoYW5nZWQgOiAxOwoxNDQ3NDogICB1aW50MzJfdCB0
Z19jaGFuZ2VkIDogMTsKMTQ0NzQ6ICAgdWludDMyX3QgbXBjYyA6IDE7CjE0NDc0OiAgIHVpbnQz
Ml90IGRwcGNsayA6IDE7CjE0NDc0OiAgIHVpbnQzMl90IGh1YnBfaW50ZXJkZXBlbmRlbnQgOiAx
OwoxNDQ3NDogICB1aW50MzJfdCBodWJwX3JxX2RsZ190dHUgOiAxOwoxNDQ3NDogICB1aW50MzJf
dCBnYW11dF9yZW1hcCA6IDE7CjE0NDc0OiAgIHVpbnQzMl90IHNjYWxlciA6IDE7CjE0NDc0OiAg
IHVpbnQzMl90IHZpZXdwb3J0IDogMTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDMyX3Qg
cmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBpcGVfY3R4IHsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwoxNDQ3NDogIHN0cnVjdCBkY19zdHJl
YW1fc3RhdGUgKnN0cmVhbTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwbGFuZV9yZXNvdXJjZSBw
bGFuZV9yZXM7CjE0NDc0OiAgc3RydWN0IHN0cmVhbV9yZXNvdXJjZSBzdHJlYW1fcmVzOwoxNDQ3
NDogCjE0NDc0OiAgc3RydWN0IGNsb2NrX3NvdXJjZSAqY2xvY2tfc291cmNlOwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHBsbF9zZXR0aW5ncyBwbGxfc2V0dGluZ3M7CjE0NDc0OiAKMTQ0NzQ6ICB1
aW50OF90IHBpcGVfaWR4OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHBpcGVfY3R4ICp0b3BfcGlw
ZTsKMTQ0NzQ6ICBzdHJ1Y3QgcGlwZV9jdHggKmJvdHRvbV9waXBlOwoxNDQ3NDogIHN0cnVjdCBw
aXBlX2N0eCAqbmV4dF9vZG1fcGlwZTsKMTQ0NzQ6ICBzdHJ1Y3QgcGlwZV9jdHggKnByZXZfb2Rt
X3BpcGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2Rs
Z19yZWdzX3N0IGRsZ19yZWdzOwoxNDQ3NDogIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9y
ZWdzX3N0IHR0dV9yZWdzOwoxNDQ3NDogIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nf
c3QgcnFfcmVnczsKMTQ0NzQ6ICBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX2Rlc3RfcGFy
YW1zX3N0IHBpcGVfZGxnX3BhcmFtOwoxNDQ3NDogCjE0NDc0OiAgdW5pb24gcGlwZV91cGRhdGVf
ZmxhZ3MgdXBkYXRlX2ZsYWdzOwoxNDQ3NDogIHN0cnVjdCBkd2JjICpkd2JjOwoxNDQ3NDogIHN0
cnVjdCBtY2lmX3diICptY2lmX3diOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJl
c291cmNlX2NvbnRleHQgewoxNDQ3NDogIHN0cnVjdCBwaXBlX2N0eCBwaXBlX2N0eFs2XTsKMTQ0
NzQ6ICBib29sIGlzX3N0cmVhbV9lbmNfYWNxdWlyZWRbNiAqIDJdOwoxNDQ3NDogIGJvb2wgaXNf
YXVkaW9fYWNxdWlyZWRbNl07CjE0NDc0OiAgdWludDhfdCBjbG9ja19zb3VyY2VfcmVmX2NvdW50
WzddOwoxNDQ3NDogIHVpbnQ4X3QgZHBfY2xvY2tfc291cmNlX3JlZl9jb3VudDsKMTQ0NzQ6ICBi
b29sIGlzX2RzY19hY3F1aXJlZFs2XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
Y2VfYndfb3V0cHV0IHsKMTQ0NzQ6ICBib29sIGNwdWNfc3RhdGVfY2hhbmdlX2VuYWJsZTsKMTQ0
NzQ6ICBib29sIGNwdXBfc3RhdGVfY2hhbmdlX2VuYWJsZTsKMTQ0NzQ6ICBib29sIHN0dXR0ZXJf
bW9kZV9lbmFibGU7CjE0NDc0OiAgYm9vbCBuYnBfc3RhdGVfY2hhbmdlX2VuYWJsZTsKMTQ0NzQ6
ICBib29sIGFsbF9kaXNwbGF5c19pbl9zeW5jOwoxNDQ3NDogIHN0cnVjdCBkY2Vfd2F0ZXJtYXJr
cyB1cmdlbnRfd21fbnNbNl07CjE0NDc0OiAgc3RydWN0IGRjZV93YXRlcm1hcmtzIHN0dXR0ZXJf
ZXhpdF93bV9uc1s2XTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNlX3dhdGVybWFya3Mgc3R1dHRlcl9lbnRy
eV93bV9uc1s2XTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNlX3dhdGVybWFya3MgbmJwX3N0YXRlX2NoYW5n
ZV93bV9uc1s2XTsKMTQ0NzQ6ICBpbnQgc2Nsa19raHo7CjE0NDc0OiAgaW50IHNjbGtfZGVlcF9z
bGVlcF9raHo7CjE0NDc0OiAgaW50IHljbGtfa2h6OwoxNDQ3NDogIGludCBkaXNwY2xrX2toejsK
MTQ0NzQ6ICBpbnQgYmxhY2tvdXRfcmVjb3ZlcnlfdGltZV91czsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBkY25fYndfd3JpdGViYWNrIHsKMTQ0NzQ6ICBzdHJ1Y3QgbWNpZl9hcmJf
cGFyYW1zIG1jaWZfd2JfYXJiWzFdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRj
bl9id19vdXRwdXQgewoxNDQ3NDogIHN0cnVjdCBkY19jbG9ja3MgY2xrOwoxNDQ3NDogIHN0cnVj
dCBkY25fd2F0ZXJtYXJrX3NldCB3YXRlcm1hcmtzOwoxNDQ3NDogIHN0cnVjdCBkY25fYndfd3Jp
dGViYWNrIGJ3X3dyaXRlYmFjazsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGJ3X291
dHB1dCB7CjE0NDc0OiAgc3RydWN0IGRjbl9id19vdXRwdXQgZGNuOwoxNDQ3NDogIHN0cnVjdCBk
Y2VfYndfb3V0cHV0IGRjZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBid19jb250
ZXh0IHsKMTQ0NzQ6ICB1bmlvbiBid19vdXRwdXQgYnc7CjE0NDc0OiAgc3RydWN0IGRpc3BsYXlf
bW9kZV9saWIgZG1sOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzYxICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIKMTQ0NzQ6IHN0cnVjdCBk
Y19zdGF0ZSB7CjE0NDc0OiAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtc1s2XTsKMTQ0
NzQ6ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXR1cyBzdHJlYW1fc3RhdHVzWzZdOwoxNDQ3NDogIHVp
bnQ4X3Qgc3RyZWFtX2NvdW50OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHJlc291cmNlX2NvbnRl
eHQgcmVzX2N0eDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBid19jb250ZXh0IGJ3X2N0eDsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRtX3BwX2Rpc3BsYXlfY29uZmlndXJhdGlvbiBw
cF9kaXNwbGF5X2NmZzsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY25fYndfaW50ZXJuYWxfdmFy
cyBkY25fYndfdmFyczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGNsa19tZ3IgKmNs
a19tZ3I7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L3Jlc291cmNlLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9kYWxfYXNpY19pZC5oIiAxCjE0NDc0OiAjIDE2OCAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZGFsX2FzaWNf
aWQuaCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIE5WX05BVkkxMF9QX0EwID0gMSwKMTQ0NzQ6ICBO
Vl9OQVZJMTJfUF9BMCA9IDEwLAoxNDQ3NDogIE5WX05BVkkxNF9NX0EwID0gMjAsCjE0NDc0OiAg
TlZfVU5LTk9XTiA9IDB4RkYKMTQ0NzQ6IH07CjE0NDc0OiAjIDMxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL3Jlc291cmNlLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNlX3ZlcnNp
b24gcmVzb3VyY2VfcGFyc2VfYXNpY19pZCgKMTQ0NzQ6ICAgc3RydWN0IGh3X2FzaWNfaWQgYXNp
Y19pZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCByZXNvdXJjZV9jYXBzIHsKMTQ0NzQ6ICBpbnQg
bnVtX3RpbWluZ19nZW5lcmF0b3I7CjE0NDc0OiAgaW50IG51bV9vcHA7CjE0NDc0OiAgaW50IG51
bV92aWRlb19wbGFuZTsKMTQ0NzQ6ICBpbnQgbnVtX2F1ZGlvOwoxNDQ3NDogIGludCBudW1fc3Ry
ZWFtX2VuY29kZXI7CjE0NDc0OiAgaW50IG51bV9wbGw7CjE0NDc0OiAgaW50IG51bV9kd2I7CjE0
NDc0OiAgaW50IG51bV9kZGM7CjE0NDc0OiAgaW50IG51bV92bWlkOwoxNDQ3NDogIGludCBudW1f
ZHNjOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJlc291cmNlX3N0cmFwcyB7CjE0
NDc0OiAgdWludDMyX3QgaGRtaV9kaXNhYmxlOwoxNDQ3NDogIHVpbnQzMl90IGRjX3BpbnN0cmFw
c19hdWRpbzsKMTQ0NzQ6ICB1aW50MzJfdCBhdWRpb19zdHJlYW1fbnVtYmVyOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJlc291cmNlX2NyZWF0ZV9mdW5jcyB7CjE0NDc0OiAgdm9p
ZCAoKnJlYWRfZGNlX3N0cmFwcykoCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LCBz
dHJ1Y3QgcmVzb3VyY2Vfc3RyYXBzICpzdHJhcHMpOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGF1
ZGlvICooKmNyZWF0ZV9hdWRpbykoCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LCB1
bnNpZ25lZCBpbnQgaW5zdCk7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIg
KigqY3JlYXRlX3N0cmVhbV9lbmNvZGVyKSgKMTQ0NzQ6ICAgIGVudW0gZW5naW5lX2lkIGVuZ19p
ZCwgc3RydWN0IGRjX2NvbnRleHQgKmN0eCk7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNlX2h3
c2VxICooKmNyZWF0ZV9od3NlcSkoCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgcmVzb3VyY2VfY29uc3RydWN0KAoxNDQ3NDog
IHVuc2lnbmVkIGludCBudW1fdmlydHVhbF9saW5rcywKMTQ0NzQ6ICBzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogIHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBy
ZXNvdXJjZV9jcmVhdGVfZnVuY3MgKmNyZWF0ZV9mdW5jcyk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCByZXNvdXJjZV9wb29sICpkY19jcmVhdGVfcmVzb3VyY2VfcG9vbChzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZGNfaW5pdF9kYXRhICppbml0X2RhdGEsCjE0
NDc0OiAgICAgICAgICAgIGVudW0gZGNlX3ZlcnNpb24gZGNfdmVyc2lvbik7CjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgZGNfZGVzdHJveV9yZXNvdXJjZV9wb29sKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDog
CjE0NDc0OiBlbnVtIGRjX3N0YXR1cyByZXNvdXJjZV9tYXBfcG9vbF9yZXNvdXJjZXMoCjE0NDc0
OiAgIGNvbnN0IHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4
dCwKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IAoxNDQ3
NDogYm9vbCByZXNvdXJjZV9idWlsZF9zY2FsaW5nX3BhcmFtcyhzdHJ1Y3QgcGlwZV9jdHggKnBp
cGVfY3R4KTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19zdGF0dXMgcmVzb3VyY2VfYnVpbGRfc2Nh
bGluZ19wYXJhbXNfZm9yX2NvbnRleHQoCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkYyAqZGMsCjE0
NDc0OiAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgcmVz
b3VyY2VfYnVpbGRfaW5mb19mcmFtZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKMTQ0NzQ6
IAoxNDQ3NDogdm9pZCByZXNvdXJjZV91bnJlZmVyZW5jZV9jbG9ja19zb3VyY2UoCjE0NDc0OiAg
IHN0cnVjdCByZXNvdXJjZV9jb250ZXh0ICpyZXNfY3R4LAoxNDQ3NDogICBjb25zdCBzdHJ1Y3Qg
cmVzb3VyY2VfcG9vbCAqcG9vbCwKMTQ0NzQ6ICAgc3RydWN0IGNsb2NrX3NvdXJjZSAqY2xvY2tf
c291cmNlKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCByZXNvdXJjZV9yZWZlcmVuY2VfY2xvY2tfc291
cmNlKAoxNDQ3NDogICBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKMTQ0NzQ6ICAg
Y29uc3Qgc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wsCjE0NDc0OiAgIHN0cnVjdCBjbG9ja19z
b3VyY2UgKmNsb2NrX3NvdXJjZSk7CjE0NDc0OiAKMTQ0NzQ6IGludCByZXNvdXJjZV9nZXRfY2xv
Y2tfc291cmNlX3JlZmVyZW5jZSgKMTQ0NzQ6ICAgc3RydWN0IHJlc291cmNlX2NvbnRleHQgKnJl
c19jdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAoxNDQ3NDog
ICBzdHJ1Y3QgY2xvY2tfc291cmNlICpjbG9ja19zb3VyY2UpOwoxNDQ3NDogCjE0NDc0OiBib29s
IHJlc291cmNlX2FyZV9zdHJlYW1zX3RpbWluZ19zeW5jaHJvbml6YWJsZSgKMTQ0NzQ6ICAgc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtMSwKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0cmVhbV9z
dGF0ZSAqc3RyZWFtMik7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbG9ja19zb3VyY2UgKnJlc291
cmNlX2ZpbmRfdXNlZF9jbGtfc3JjX2Zvcl9zaGFyaW5nKAoxNDQ3NDogICBzdHJ1Y3QgcmVzb3Vy
Y2VfY29udGV4dCAqcmVzX2N0eCwKMTQ0NzQ6ICAgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbG9ja19zb3VyY2UgKmRjX3Jlc291cmNlX2ZpbmRfZmly
c3RfZnJlZV9wbGwoCjE0NDc0OiAgIHN0cnVjdCByZXNvdXJjZV9jb250ZXh0ICpyZXNfY3R4LAox
NDQ3NDogICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcG9vbCk7CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBwaXBlX2N0eCAqcmVzb3VyY2VfZ2V0X2hlYWRfcGlwZV9mb3Jfc3RyZWFtKAoxNDQ3
NDogICBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKMTQ0NzQ6ICAgc3RydWN0IGRj
X3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCByZXNvdXJjZV9hdHRh
Y2hfc3VyZmFjZXNfdG9fY29udGV4dCgKMTQ0NzQ6ICAgc3RydWN0IGRjX3BsYW5lX3N0YXRlICpj
b25zdCAqcGxhbmVfc3RhdGUsCjE0NDc0OiAgIGludCBzdXJmYWNlX2NvdW50LAoxNDQ3NDogICBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpkY19zdHJlYW0sCjE0NDc0OiAgIHN0cnVjdCBkY19zdGF0
ZSAqY29udGV4dCwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wpOwox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGlwZV9jdHggKmZpbmRfaWRsZV9zZWNvbmRhcnlfcGlwZSgK
MTQ0NzQ6ICAgc3RydWN0IHJlc291cmNlX2NvbnRleHQgKnJlc19jdHgsCjE0NDc0OiAgIGNvbnN0
IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgcGlwZV9j
dHggKnByaW1hcnlfcGlwZSk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgcmVzb3VyY2VfaXNfc3RyZWFt
X3VuY2hhbmdlZCgKMTQ0NzQ6ICBzdHJ1Y3QgZGNfc3RhdGUgKm9sZF9jb250ZXh0LCBzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoxNDQ3NDogCjE0NDc0OiBib29sIHJlc291cmNlX3Zh
bGlkYXRlX2F0dGFjaF9zdXJmYWNlcygKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX3ZhbGlkYXRp
b25fc2V0IHNldFtdLAoxNDQ3NDogICBpbnQgc2V0X2NvdW50LAoxNDQ3NDogICBjb25zdCBzdHJ1
Y3QgZGNfc3RhdGUgKm9sZF9jb250ZXh0LAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRl
eHQsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCByZXNvdXJjZV92YWxpZGF0ZV9jdHhfdXBkYXRlX3BvaW50ZXJfYWZ0ZXJfY29w
eSgKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX3N0YXRlICpzcmNfY3R4LAoxNDQ3NDogICBzdHJ1
Y3QgZGNfc3RhdGUgKmRzdF9jdHgpOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX3N0YXR1cyByZXNv
dXJjZV9tYXBfY2xvY2tfcmVzb3VyY2VzKAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCjE0NDc0OiAgIHN0cnVjdCBkY19zdHJl
YW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfc3RhdHVzIHJlc291cmNl
X21hcF9waHlfY2xvY2tfcmVzb3VyY2VzKAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCjE0NDc0OiAgIHN0cnVjdCBkY19zdHJl
YW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgcGlwZV9uZWVkX3JlcHJvZ3Jh
bSgKMTQ0NzQ6ICAgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eF9vbGQsCjE0NDc0OiAgIHN0cnVj
dCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHJlc291cmNlX2J1aWxk
X2JpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zKHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVh
bSwKMTQ0NzQ6ICAgc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zICpmbXRfYml0X2Rl
cHRoKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCB1cGRhdGVfYXVkaW9fdXNhZ2UoCjE0NDc0OiAgIHN0
cnVjdCByZXNvdXJjZV9jb250ZXh0ICpyZXNfY3R4LAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgcmVz
b3VyY2VfcG9vbCAqcG9vbCwKMTQ0NzQ6ICAgc3RydWN0IGF1ZGlvICphdWRpbywKMTQ0NzQ6ICAg
Ym9vbCBhY3F1aXJlZCk7CjE0NDc0OiAKMTQ0NzQ6IHVuc2lnbmVkIGludCByZXNvdXJjZV9waXhl
bF9mb3JtYXRfdG9fYnBwKGVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0KTsKMTQ0NzQ6
IAoxNDQ3NDogdm9pZCBnZXRfYXVkaW9fY2hlY2soc3RydWN0IGF1ZGlvX2luZm8gKmF1ZF9tb2Rl
cywKMTQ0NzQ6ICBzdHJ1Y3QgYXVkaW9fY2hlY2sgKmF1ZF9jaGspOwoxNDQ3NDogIyAzNyAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9jbGtfbWdyX2lu
dGVybmFsLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGVudGlzdF9i
YXNlX2RpdmlkZXJfaWQgewoxNDQ3NDogIERFTlRJU1RfQkFTRV9ESURfMSA9IDB4MDgsCjE0NDc0
OiAgREVOVElTVF9CQVNFX0RJRF8yID0gMHg0MCwKMTQ0NzQ6ICBERU5USVNUX0JBU0VfRElEXzMg
PSAweDYwLAoxNDQ3NDogIERFTlRJU1RfQkFTRV9ESURfNCA9IDB4N2UsCjE0NDc0OiAgREVOVElT
VF9NQVhfRElEID0gMHg3ZgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRl
bnRpc3RfZGl2aWRlcl9yYW5nZSB7CjE0NDc0OiAgREVOVElTVF9ESVZJREVSX1JBTkdFXzFfU1RB
UlQgPSA4LAoxNDQ3NDogIERFTlRJU1RfRElWSURFUl9SQU5HRV8xX1NURVAgPSAxLAoxNDQ3NDog
IERFTlRJU1RfRElWSURFUl9SQU5HRV8yX1NUQVJUID0gNjQsCjE0NDc0OiAgREVOVElTVF9ESVZJ
REVSX1JBTkdFXzJfU1RFUCA9IDIsCjE0NDc0OiAgREVOVElTVF9ESVZJREVSX1JBTkdFXzNfU1RB
UlQgPSAxMjgsCjE0NDc0OiAgREVOVElTVF9ESVZJREVSX1JBTkdFXzNfU1RFUCA9IDQsCjE0NDc0
OiAgREVOVElTVF9ESVZJREVSX1JBTkdFXzRfU1RBUlQgPSAyNDgsCjE0NDc0OiAgREVOVElTVF9E
SVZJREVSX1JBTkdFXzRfU1RFUCA9IDI2NCwKMTQ0NzQ6ICBERU5USVNUX0RJVklERVJfUkFOR0Vf
U0NBTEVfRkFDVE9SID0gNAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTUxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3JfaW50ZXJuYWwuaCIKMTQ0
NzQ6IHN0cnVjdCBjbGtfbWdyX3NoaWZ0IHsKMTQ0NzQ6ICB1aW50OF90IERQUkVGQ0xLX1NSQ19T
RUw7IHVpbnQ4X3QgREVOVElTVF9EUFJFRkNMS19XRElWSURFUjsgdWludDhfdCBERU5USVNUX0RJ
U1BDTEtfV0RJVklERVI7IHVpbnQ4X3QgREVOVElTVF9ESVNQQ0xLX0NIR19ET05FOwoxNDQ3NDog
IHVpbnQ4X3QgREVOVElTVF9EUFBDTEtfV0RJVklERVI7IHVpbnQ4X3QgREVOVElTVF9EUFBDTEtf
Q0hHX0RPTkU7IHVpbnQ4X3QgRmJNdWx0X2ludDsgdWludDhfdCBGYk11bHRfZnJhYzsKMTQ0NzQ6
ICB1aW50MzJfdCBDT05URU5UOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19t
Z3JfbWFzayB7CjE0NDc0OiAgdWludDMyX3QgRFBSRUZDTEtfU1JDX1NFTDsgdWludDMyX3QgREVO
VElTVF9EUFJFRkNMS19XRElWSURFUjsgdWludDMyX3QgREVOVElTVF9ESVNQQ0xLX1dESVZJREVS
OyB1aW50MzJfdCBERU5USVNUX0RJU1BDTEtfQ0hHX0RPTkU7CjE0NDc0OiAgdWludDMyX3QgREVO
VElTVF9EUFBDTEtfV0RJVklERVI7IHVpbnQzMl90IERFTlRJU1RfRFBQQ0xLX0NIR19ET05FOyB1
aW50MzJfdCBGYk11bHRfaW50OyB1aW50MzJfdCBGYk11bHRfZnJhYzsKMTQ0NzQ6ICB1aW50MzJf
dCBDT05URU5UOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19tZ3JfcmVnaXN0
ZXJzIHsKMTQ0NzQ6ICB1aW50MzJfdCBEUFJFRkNMS19DTlRMOwoxNDQ3NDogIHVpbnQzMl90IERF
TlRJU1RfRElTUENMS19DTlRMOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgQ0xLM19DTEsyX0RG
U19DTlRMOwoxNDQ3NDogIHVpbnQzMl90IENMSzNfQ0xLX1BMTF9SRVE7CjE0NDc0OiAKMTQ0NzQ6
ICB1aW50MzJfdCBNUDFfU01OX0MyUE1TR182NzsKMTQ0NzQ6ICB1aW50MzJfdCBNUDFfU01OX0My
UE1TR184MzsKMTQ0NzQ6ICB1aW50MzJfdCBNUDFfU01OX0MyUE1TR185MTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gY2xvY2tfdHlwZSB7CjE0NDc0OiAgY2xvY2tfdHlwZV9kaXNwY2xr
ID0gMSwKMTQ0NzQ6ICBjbG9ja190eXBlX2RjZmNsaywKMTQ0NzQ6ICBjbG9ja190eXBlX3NvY2Ns
aywKMTQ0NzQ6ICBjbG9ja190eXBlX3BpeGVsY2xrLAoxNDQ3NDogIGNsb2NrX3R5cGVfcGh5Y2xr
LAoxNDQ3NDogIGNsb2NrX3R5cGVfZHBwY2xrLAoxNDQ3NDogIGNsb2NrX3R5cGVfZmNsaywKMTQ0
NzQ6ICBjbG9ja190eXBlX2RjZmRzY2xrLAoxNDQ3NDogIGNsb2NrX3R5cGVfZHNjY2xrLAoxNDQ3
NDogIGNsb2NrX3R5cGVfdWNsaywKMTQ0NzQ6ICBjbG9ja190eXBlX2RyYW1jbGssCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzdGF0ZV9kZXBlbmRlbnRfY2xvY2tzIHsK
MTQ0NzQ6ICBpbnQgZGlzcGxheV9jbGtfa2h6OwoxNDQ3NDogIGludCBwaXhlbF9jbGtfa2h6Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgewoxNDQ3NDog
IHN0cnVjdCBjbGtfbWdyIGJhc2U7CjE0NDc0OiAgaW50IHNtdV92ZXI7CjE0NDc0OiAgc3RydWN0
IHBwX3NtdV9mdW5jcyAqcHBfc211OwoxNDQ3NDogIHN0cnVjdCBjbGtfbWdyX2ludGVybmFsX2Z1
bmNzICpmdW5jczsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY2NnICpkY2NnOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgY29u
c3Qgc3RydWN0IGNsa19tZ3JfcmVnaXN0ZXJzICpyZWdzOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBj
bGtfbWdyX3NoaWZ0ICpjbGtfbWdyX3NoaWZ0OwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBjbGtfbWdy
X21hc2sgKmNsa19tZ3JfbWFzazsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBzdGF0ZV9kZXBlbmRl
bnRfY2xvY2tzIG1heF9jbGtzX2J5X3N0YXRlW0RNX1BQX0NMT0NLU19NQVhfU1RBVEVTXTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIGRmc19ieXBhc3NfZW5hYmxlZDsKMTQ0
NzQ6IAoxNDQ3NDogIGJvb2wgZGZzX2J5cGFzc19hY3RpdmU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50
MzJfdCBkZnNfcmVmX2ZyZXFfa2h6OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgaW50IGRmc19ieXBhc3NfZGlzcF9jbGs7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBzc19vbl9kcHJlZmNsazsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IGJvb2wgeGdtaV9lbmFibGVkOwoxNDQ3NDogIyAyNTIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5hbC5oIgoxNDQ3NDogIGlu
dCBkcHJlZmNsa19zc19wZXJjZW50YWdlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCBkcHJlZmNsa19zc19kaXZpZGVyOwoxNDQ3NDog
CjE0NDc0OiAgZW51bSBkbV9wcF9jbG9ja3Nfc3RhdGUgbWF4X2Nsa3Nfc3RhdGU7CjE0NDc0OiAg
ZW51bSBkbV9wcF9jbG9ja3Nfc3RhdGUgY3VyX21pbl9jbGtzX3N0YXRlOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19tZ3JfaW50ZXJuYWxfZnVuY3MgewoxNDQ3NDogIGludCAo
KnNldF9kaXNwY2xrKShzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVl
c3RlZF9kaXNwY2xrX2toeik7CjE0NDc0OiAgaW50ICgqc2V0X2RwcmVmY2xrKShzdHJ1Y3QgY2xr
X21ncl9pbnRlcm5hbCAqY2xrX21ncik7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNzggIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5h
bC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBzaG91bGRfc2V0X2Nsb2NrKGJvb2wgc2FmZV90b19sb3dlciwgaW50
IGNhbGNfY2xrLCBpbnQgY3VyX2NsaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKChzYWZlX3Rv
X2xvd2VyICYmIGNhbGNfY2xrIDwgY3VyX2NsaykgfHwgY2FsY19jbGsgPiBjdXJfY2xrKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBzaG91bGRfdXBkYXRlX3BzdGF0ZV9zdXBwb3J0KGJv
b2wgc2FmZV90b19sb3dlciwgYm9vbCBjYWxjX3N1cHBvcnQsIGJvb2wgY3VyX3N1cHBvcnQpCjE0
NDc0OiB7CjE0NDc0OiAgaWYgKGN1cl9zdXBwb3J0ICE9IGNhbGNfc3VwcG9ydCkgewoxNDQ3NDog
ICBpZiAoY2FsY19zdXBwb3J0ID09IHRydWUgJiYgc2FmZV90b19sb3dlcikKMTQ0NzQ6ICAgIHJl
dHVybiB0cnVlOwoxNDQ3NDogICBlbHNlIGlmIChjYWxjX3N1cHBvcnQgPT0gZmFsc2UgJiYgIXNh
ZmVfdG9fbG93ZXIpCjE0NDc0OiAgICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0
NzQ6ICByZXR1cm4gZmFsc2U7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGludCBjbGtfbWdyX2hl
bHBlcl9nZXRfYWN0aXZlX2Rpc3BsYXlfY250KAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3
NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogIyAyOCAiZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIg
MgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjAvZGNuMjBfY2xrX21nci5oIiAxCjE0NDc0OiAj
IDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9k
Y24yMC9kY24yMF9jbGtfbWdyLmgiCjE0NDc0OiB2b2lkIGRjbjJfdXBkYXRlX2Nsb2NrcyhzdHJ1
Y3QgY2xrX21nciAqZGNjZywKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKMTQ0
NzQ6ICAgIGJvb2wgc2FmZV90b19sb3dlcik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNuMl91cGRh
dGVfY2xvY2tzX2ZwZ2Eoc3RydWN0IGNsa19tZ3IgKmNsa19tZ3IsCjE0NDc0OiAgICBzdHJ1Y3Qg
ZGNfc3RhdGUgKmNvbnRleHQsCjE0NDc0OiAgICBib29sIHNhZmVfdG9fbG93ZXIpOwoxNDQ3NDog
dm9pZCBkY24yMF91cGRhdGVfY2xvY2tzX3VwZGF0ZV9kcHBfZHRvKHN0cnVjdCBjbGtfbWdyX2lu
dGVybmFsICpjbGtfbWdyLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsIGJvb2wg
c2FmZV90b19sb3dlcik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNuMl9pbml0X2Nsb2NrcyhzdHJ1
Y3QgY2xrX21nciAqY2xrX21ncik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNuMjBfY2xrX21ncl9j
b25zdHJ1Y3Qoc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgc3RydWN0IGNsa19tZ3Jf
aW50ZXJuYWwgKmNsa19tZ3IsCjE0NDc0OiAgIHN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSwK
MTQ0NzQ6ICAgc3RydWN0IGRjY2cgKmRjY2cpOwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBkZW50
aXN0X2dldF9kaWRfZnJvbV9kaXZpZGVyKGludCBkaXZpZGVyKTsKMTQ0NzQ6IAoxNDQ3NDogdm9p
ZCBkY24yX2dldF9jbG9jayhzdHJ1Y3QgY2xrX21nciAqY2xrX21nciwKMTQ0NzQ6ICAgc3RydWN0
IGRjX3N0YXRlICpjb250ZXh0LAoxNDQ3NDogICAgZW51bSBkY19jbG9ja190eXBlIGNsb2NrX3R5
cGUsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpOwoxNDQ3NDog
CjE0NDc0OiB2b2lkIGRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRlX2RlbnRpc3Qoc3RydWN0IGNs
a19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGRjbjJfcmVhZF9j
bG9ja3NfZnJvbV9od19kZW50aXN0KHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UpOwoxNDQ3
NDogIyAzMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdy
L2RjbjIxL3JuX2Nsa19tZ3IuYyIgMgoxNDQ3NDogIyAxICJkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5oIiAxCjE0NDc0OiAj
IDI5ICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNu
MjEvcm5fY2xrX21nci5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaCIgMQoxNDQ3NDogIyAzMCAiZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3Iu
aCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBybl9jbGtfcmVnaXN0ZXJzIHsKMTQ0
NzQ6ICB1aW50MzJfdCBDTEsxX0NMSzBfQ1VSUkVOVF9DTlQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiB2b2lkIHJuX2Nsa19tZ3JfY29uc3RydWN0KHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0
NDc0OiAgIHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLAoxNDQ3NDogICBzdHJ1Y3Qg
cHBfc211X2Z1bmNzICpwcF9zbXUsCjE0NDc0OiAgIHN0cnVjdCBkY2NnICpkY2NnKTsKMTQ0NzQ6
ICMgMzIgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9k
Y24yMS9ybl9jbGtfbWdyLmMiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjZTEwMC9kY2VfY2xr
X21nci5oIiAxCjE0NDc0OiAjIDMzICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvY2xrX21nci9kY2UxMDAvZGNlX2Nsa19tZ3IuaCIKMTQ0NzQ6IGludCBkY2VfYWRq
dXN0X2RwX3JlZl9mcmVxX2Zvcl9zcyhzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21ncl9k
Y2UsIGludCBkcF9yZWZfY2xrX2toeik7CjE0NDc0OiBpbnQgZGNlX2dldF9kcF9yZWZfZnJlcV9r
aHooc3RydWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSk7CjE0NDc0OiBlbnVtIGRtX3BwX2Nsb2Nr
c19zdGF0ZSBkY2VfZ2V0X3JlcXVpcmVkX2Nsb2Nrc19zdGF0ZSgKMTQ0NzQ6ICBzdHJ1Y3QgY2xr
X21nciAqY2xrX21ncl9iYXNlLAoxNDQ3NDogIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0
NDc0OiAKMTQ0NzQ6IHVpbnQzMl90IGRjZV9nZXRfbWF4X3BpeGVsX2Nsb2NrX2Zvcl9hbGxfcGF0
aHMoc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lk
IGRjZV9jbGtfbWdyX2NvbnN0cnVjdCgKMTQ0NzQ6ICAgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwK
MTQ0NzQ6ICAgc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3JfZGNlKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCBkY2VfY2xvY2tfcmVhZF9zc19pbmZvKHN0cnVjdCBjbGtfbWdyX2ludGVybmFs
ICpkY2NnX2RjZSk7CjE0NDc0OiAKMTQ0NzQ6IGludCBkY2UxMl9nZXRfZHBfcmVmX2ZyZXFfa2h6
KHN0cnVjdCBjbGtfbWdyICpkY2NnKTsKMTQ0NzQ6IAoxNDQ3NDogaW50IGRjZV9zZXRfY2xvY2so
CjE0NDc0OiAgc3RydWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSwKMTQ0NzQ6ICBpbnQgcmVxdWVz
dGVkX2Nsa19raHopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNlX2Nsa19tZ3JfZGVz
dHJveShzdHJ1Y3QgY2xrX21nciAqKmNsa19tZ3IpOwoxNDQ3NDogCjE0NDc0OiBpbnQgZGVudGlz
dF9nZXRfZGl2aWRlcl9mcm9tX2RpZChpbnQgZGlkKTsKMTQ0NzQ6ICMgMzUgImRyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMi
IDIKMTQ0NzQ6ICMgMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9j
bGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3JfdmJpb3Nfc211LmgiIDEKMTQ0NzQ6ICMgMjkgImRyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtf
bWdyX3ZiaW9zX3NtdS5oIgoxNDQ3NDogaW50IHJuX3ZiaW9zX3NtdV9nZXRfc211X3ZlcnNpb24o
c3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpOwoxNDQ3NDogaW50IHJuX3ZiaW9zX3Nt
dV9zZXRfZGlzcGNsayhzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVl
c3RlZF9kaXNwY2xrX2toeik7CjE0NDc0OiBpbnQgcm5fdmJpb3Nfc211X3NldF9kcHJlZmNsayhz
dHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21ncik7CjE0NDc0OiBpbnQgcm5fdmJpb3Nfc211
X3NldF9oYXJkX21pbl9kY2ZjbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGlu
dCByZXF1ZXN0ZWRfZGNmY2xrX2toeik7CjE0NDc0OiBpbnQgcm5fdmJpb3Nfc211X3NldF9taW5f
ZGVlcF9zbGVlcF9kY2ZjbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCBy
ZXF1ZXN0ZWRfbWluX2RzX2RjZmNsa19raHopOwoxNDQ3NDogdm9pZCBybl92Ymlvc19zbXVfc2V0
X3BoeWNsayhzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVlc3RlZF9w
aHljbGtfa2h6KTsKMTQ0NzQ6IGludCBybl92Ymlvc19zbXVfc2V0X2RwcGNsayhzdHJ1Y3QgY2xr
X21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVlc3RlZF9kcHBfa2h6KTsKMTQ0NzQ6IHZv
aWQgcm5fdmJpb3Nfc211X3NldF9kY25fbG93X3Bvd2VyX3N0YXRlKHN0cnVjdCBjbGtfbWdyX2lu
dGVybmFsICpjbGtfbWdyLCBpbnQgZGlzcGxheV9jb3VudCk7CjE0NDc0OiB2b2lkIHJuX3ZiaW9z
X3NtdV9lbmFibGVfNDhtaHpfdG1kcF9yZWZjbGtfcHdyZHduKHN0cnVjdCBjbGtfbWdyX2ludGVy
bmFsICpjbGtfbWdyLCBib29sIGVuYWJsZSk7CjE0NDc0OiB2b2lkIHJuX3ZiaW9zX3NtdV9lbmFi
bGVfcG1lX3dhKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyKTsKMTQ0NzQ6ICMgMzYg
ImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9y
bl9jbGtfbWdyLmMiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2luYy9yZWdfaGVscGVyLmgiIDEKMTQ0NzQ6ICMgMzkxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL3JlZ19oZWxwZXIuaCIKMTQ0NzQ6
IHVpbnQzMl90IGdlbmVyaWNfcmVnX2dldChjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LCB1
aW50MzJfdCBhZGRyLAoxNDQ3NDogICB1aW50OF90IHNoaWZ0LCB1aW50MzJfdCBtYXNrLCB1aW50
MzJfdCAqZmllbGRfdmFsdWUpOwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX3JlZ19n
ZXQyKGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCjE0NDc0OiAg
IHVpbnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMSwK
MTQ0NzQ6ICAgdWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRf
dmFsdWUyKTsKMTQ0NzQ6IAoxNDQ3NDogdWludDMyX3QgZ2VuZXJpY19yZWdfZ2V0Myhjb25zdCBz
dHJ1Y3QgZGNfY29udGV4dCAqY3R4LCB1aW50MzJfdCBhZGRyLAoxNDQ3NDogICB1aW50OF90IHNo
aWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCjE0NDc0OiAgIHVp
bnQ4X3Qgc2hpZnQyLCB1aW50MzJfdCBtYXNrMiwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMiwKMTQ0
NzQ6ICAgdWludDhfdCBzaGlmdDMsIHVpbnQzMl90IG1hc2szLCB1aW50MzJfdCAqZmllbGRfdmFs
dWUzKTsKMTQ0NzQ6IAoxNDQ3NDogdWludDMyX3QgZ2VuZXJpY19yZWdfZ2V0NChjb25zdCBzdHJ1
Y3QgZGNfY29udGV4dCAqY3R4LCB1aW50MzJfdCBhZGRyLAoxNDQ3NDogICB1aW50OF90IHNoaWZ0
MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCjE0NDc0OiAgIHVpbnQ4
X3Qgc2hpZnQyLCB1aW50MzJfdCBtYXNrMiwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMiwKMTQ0NzQ6
ICAgdWludDhfdCBzaGlmdDMsIHVpbnQzMl90IG1hc2szLCB1aW50MzJfdCAqZmllbGRfdmFsdWUz
LAoxNDQ3NDogICB1aW50OF90IHNoaWZ0NCwgdWludDMyX3QgbWFzazQsIHVpbnQzMl90ICpmaWVs
ZF92YWx1ZTQpOwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX3JlZ19nZXQ1KGNvbnN0
IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCjE0NDc0OiAgIHVpbnQ4X3Qg
c2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMSwKMTQ0NzQ6ICAg
dWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRfdmFsdWUyLAox
NDQ3NDogICB1aW50OF90IHNoaWZ0MywgdWludDMyX3QgbWFzazMsIHVpbnQzMl90ICpmaWVsZF92
YWx1ZTMsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQ0LCB1aW50MzJfdCBtYXNrNCwgdWludDMyX3Qg
KmZpZWxkX3ZhbHVlNCwKMTQ0NzQ6ICAgdWludDhfdCBzaGlmdDUsIHVpbnQzMl90IG1hc2s1LCB1
aW50MzJfdCAqZmllbGRfdmFsdWU1KTsKMTQ0NzQ6IAoxNDQ3NDogdWludDMyX3QgZ2VuZXJpY19y
ZWdfZ2V0Nihjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LCB1aW50MzJfdCBhZGRyLAoxNDQ3
NDogICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92YWx1
ZTEsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQyLCB1aW50MzJfdCBtYXNrMiwgdWludDMyX3QgKmZp
ZWxkX3ZhbHVlMiwKMTQ0NzQ6ICAgdWludDhfdCBzaGlmdDMsIHVpbnQzMl90IG1hc2szLCB1aW50
MzJfdCAqZmllbGRfdmFsdWUzLAoxNDQ3NDogICB1aW50OF90IHNoaWZ0NCwgdWludDMyX3QgbWFz
azQsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTQsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQ1LCB1aW50
MzJfdCBtYXNrNSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlNSwKMTQ0NzQ6ICAgdWludDhfdCBzaGlm
dDYsIHVpbnQzMl90IG1hc2s2LCB1aW50MzJfdCAqZmllbGRfdmFsdWU2KTsKMTQ0NzQ6IAoxNDQ3
NDogdWludDMyX3QgZ2VuZXJpY19yZWdfZ2V0Nyhjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4
LCB1aW50MzJfdCBhZGRyLAoxNDQ3NDogICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEs
IHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQyLCB1aW50MzJf
dCBtYXNrMiwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMiwKMTQ0NzQ6ICAgdWludDhfdCBzaGlmdDMs
IHVpbnQzMl90IG1hc2szLCB1aW50MzJfdCAqZmllbGRfdmFsdWUzLAoxNDQ3NDogICB1aW50OF90
IHNoaWZ0NCwgdWludDMyX3QgbWFzazQsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTQsCjE0NDc0OiAg
IHVpbnQ4X3Qgc2hpZnQ1LCB1aW50MzJfdCBtYXNrNSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlNSwK
MTQ0NzQ6ICAgdWludDhfdCBzaGlmdDYsIHVpbnQzMl90IG1hc2s2LCB1aW50MzJfdCAqZmllbGRf
dmFsdWU2LAoxNDQ3NDogICB1aW50OF90IHNoaWZ0NywgdWludDMyX3QgbWFzazcsIHVpbnQzMl90
ICpmaWVsZF92YWx1ZTcpOwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX3JlZ19nZXQ4
KGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCjE0NDc0OiAgIHVp
bnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMSwKMTQ0
NzQ6ICAgdWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRfdmFs
dWUyLAoxNDQ3NDogICB1aW50OF90IHNoaWZ0MywgdWludDMyX3QgbWFzazMsIHVpbnQzMl90ICpm
aWVsZF92YWx1ZTMsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQ0LCB1aW50MzJfdCBtYXNrNCwgdWlu
dDMyX3QgKmZpZWxkX3ZhbHVlNCwKMTQ0NzQ6ICAgdWludDhfdCBzaGlmdDUsIHVpbnQzMl90IG1h
c2s1LCB1aW50MzJfdCAqZmllbGRfdmFsdWU1LAoxNDQ3NDogICB1aW50OF90IHNoaWZ0NiwgdWlu
dDMyX3QgbWFzazYsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTYsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hp
ZnQ3LCB1aW50MzJfdCBtYXNrNywgdWludDMyX3QgKmZpZWxkX3ZhbHVlNywKMTQ0NzQ6ICAgdWlu
dDhfdCBzaGlmdDgsIHVpbnQzMl90IG1hc2s4LCB1aW50MzJfdCAqZmllbGRfdmFsdWU4KTsKMTQ0
NzQ6ICMgNDgxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L3JlZ19oZWxwZXIuaCIKMTQ0NzQ6IHZvaWQgZ2VuZXJpY193cml0ZV9pbmRpcmVjdF9yZWcoY29u
c3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgdWludDMyX3QgYWRkcl9pbmRleCwg
dWludDMyX3QgYWRkcl9kYXRhLAoxNDQ3NDogICB1aW50MzJfdCBpbmRleCwgdWludDMyX3QgZGF0
YSk7CjE0NDc0OiAKMTQ0NzQ6IHVpbnQzMl90IGdlbmVyaWNfcmVhZF9pbmRpcmVjdF9yZWcoY29u
c3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgdWludDMyX3QgYWRkcl9pbmRleCwg
dWludDMyX3QgYWRkcl9kYXRhLAoxNDQ3NDogICB1aW50MzJfdCBpbmRleCk7CjE0NDc0OiAKMTQ0
NzQ6IHVpbnQzMl90IGdlbmVyaWNfaW5kaXJlY3RfcmVnX2dldChjb25zdCBzdHJ1Y3QgZGNfY29u
dGV4dCAqY3R4LAoxNDQ3NDogICB1aW50MzJfdCBhZGRyX2luZGV4LCB1aW50MzJfdCBhZGRyX2Rh
dGEsCjE0NDc0OiAgIHVpbnQzMl90IGluZGV4LCBpbnQgbiwKMTQ0NzQ6ICAgdWludDhfdCBzaGlm
dDEsIHVpbnQzMl90IG1hc2sxLCB1aW50MzJfdCAqZmllbGRfdmFsdWUxLAoxNDQ3NDogICAuLi4p
OwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX2luZGlyZWN0X3JlZ191cGRhdGVfZXgo
Y29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgdWludDMyX3QgYWRkcl9pbmRl
eCwgdWludDMyX3QgYWRkcl9kYXRhLAoxNDQ3NDogICB1aW50MzJfdCBpbmRleCwgdWludDMyX3Qg
cmVnX3ZhbCwgaW50IG4sCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwg
dWludDMyX3QgZmllbGRfdmFsdWUxLAoxNDQ3NDogICAuLi4pOwoxNDQ3NDogIyAzNyAiZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19t
Z3IuYyIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMQoxNDQ3NDogIyAzOCAiZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIgMgoxNDQ3
NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1faGVs
cGVycy5oIiAxCjE0NDc0OiAjIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvZG1faGVscGVycy5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMQoxNDQ3NDogIyAzNSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX2hlbHBlcnMuaCIgMgoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9hbGxvY2F0aW9uX3RhYmxlOwoxNDQ3NDogCjE0NDc0OiBl
bnVtIGRjX2VkaWRfc3RhdHVzIGRtX2hlbHBlcnNfcGFyc2VfZWRpZF9jYXBzKAoxNDQ3NDogIHN0
cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2VkaWQgKmVkaWQs
CjE0NDc0OiAgc3RydWN0IGRjX2VkaWRfY2FwcyAqZWRpZF9jYXBzKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIGRtX2hlbHBlcnNfZHBfdXBkYXRl
X2JyYW5jaF9pbmZvKAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBj
b25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGJvb2wgZG1faGVscGVyc19kcF9tc3Rfd3JpdGVfcGF5bG9hZF9hbGxvY2F0aW9u
X3RhYmxlKAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBjb25zdCBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0OiAgIHN0cnVjdCBkcF9tc3Rfc3Ry
ZWFtX2FsbG9jYXRpb25fdGFibGUgKnByb3Bvc2VkX3RhYmxlLAoxNDQ3NDogICBib29sIGVuYWJs
ZSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZG1faGVscGVy
c19kcF9tc3RfcG9sbF9wZW5kaW5nX2Rvd25fcmVwbHkoCjE0NDc0OiAgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eCwKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZG1faGVscGVyc19kcF9tc3RfY2xlYXJf
cGF5bG9hZF9hbGxvY2F0aW9uX3RhYmxlKAoxNDQ3NDogIHN0cnVjdCBkY19jb250ZXh0ICpjdHgs
CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGFjdF9yZXR1cm5fc3RhdHVzIGRtX2hlbHBlcnNfZHBf
bXN0X3BvbGxfZm9yX2FsbG9jYXRpb25fY2hhbmdlX3RyaWdnZXIoCjE0NDc0OiAgIHN0cnVjdCBk
Y19jb250ZXh0ICpjdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0
cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBib29sIGRtX2hlbHBlcnNfZHBf
bXN0X3NlbmRfcGF5bG9hZF9hbGxvY2F0aW9uKAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAq
Y3R4LAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0
OiAgIGJvb2wgZW5hYmxlKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkbV9oZWxwZXJzX2RwX21zdF9z
dGFydF90b3BfbWdyKAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBj
b25zdCBzdHJ1Y3QgZGNfbGluayAqbGluaywKMTQ0NzQ6ICAgYm9vbCBib290KTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCBkbV9oZWxwZXJzX2RwX21zdF9zdG9wX3RvcF9tZ3IoCjE0NDc0OiAgIHN0cnVj
dCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZG1faGVscGVyc19kcF9yZWFkX2Rw
Y2QoCjE0NDc0OiAgIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVj
dCBkY19saW5rICpsaW5rLAoxNDQ3NDogICB1aW50MzJfdCBhZGRyZXNzLAoxNDQ3NDogICB1aW50
OF90ICpkYXRhLAoxNDQ3NDogICB1aW50MzJfdCBzaXplKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkbV9oZWxwZXJzX2RwX3dyaXRlX2RwY2QoCjE0NDc0OiAg
IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19saW5rICps
aW5rLAoxNDQ3NDogICB1aW50MzJfdCBhZGRyZXNzLAoxNDQ3NDogICBjb25zdCB1aW50OF90ICpk
YXRhLAoxNDQ3NDogICB1aW50MzJfdCBzaXplKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkbV9oZWxw
ZXJzX3N1Ym1pdF9pMmMoCjE0NDc0OiAgIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAg
IGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rLAoxNDQ3NDogICBzdHJ1Y3QgaTJjX2NvbW1hbmQg
KmNtZCk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZG1faGVscGVyc19kcF93cml0ZV9kc2NfZW5hYmxl
KAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBjb25zdCBzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0OiAgIGJvb2wgZW5hYmxlCjE0NDc0OiApOwox
NDQ3NDogYm9vbCBkbV9oZWxwZXJzX2lzX2RwX3NpbmtfcHJlc2VudCgKMTQ0NzQ6ICAgc3RydWN0
IGRjX2xpbmsgKmxpbmspOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2VkaWRfc3RhdHVzIGRtX2hl
bHBlcnNfcmVhZF9sb2NhbF9lZGlkKAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAox
NDQ3NDogICBzdHJ1Y3QgZGNfbGluayAqbGluaywKMTQ0NzQ6ICAgc3RydWN0IGRjX3NpbmsgKnNp
bmspOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGRtX3NldF9kY25fY2xvY2tzKAoxNDQ3NDogICBzdHJ1
Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBzdHJ1Y3QgZGNfY2xvY2tzICpjbGtzKTsKMTQ0
NzQ6ICMgMzkgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21n
ci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiIDEKMTQ0NzQ6ICMgMzgg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIK
MTQ0NzQ6IGVudW0gYXRvbV9iaW9zX2hlYWRlcl92ZXJzaW9uX2RlZnsKMTQ0NzQ6ICAgQVRPTV9N
QUpPUl9WRVJTSU9OID0weDAwMDMsCjE0NDc0OiAgIEFUT01fTUlOT1JfVkVSU0lPTiA9MHgwMDAz
LAoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
aW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKMTQ0NzQ6IGVudW0gYXRvbV9jcnRjX2RlZnsKMTQ0NzQ6
ICAgQVRPTV9DUlRDMSA9MCwKMTQ0NzQ6ICAgQVRPTV9DUlRDMiA9MSwKMTQ0NzQ6ICAgQVRPTV9D
UlRDMyA9MiwKMTQ0NzQ6ICAgQVRPTV9DUlRDNCA9MywKMTQ0NzQ6ICAgQVRPTV9DUlRDNSA9NCwK
MTQ0NzQ6ICAgQVRPTV9DUlRDNiA9NSwKMTQ0NzQ6ICAgQVRPTV9DUlRDX0lOVkFMSUQgPTB4ZmYs
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fcHBsbF9kZWZ7CjE0NDc0OiAgIEFU
T01fUFBMTDAgPTIsCjE0NDc0OiAgIEFUT01fR0NLX0RGUyA9OCwKMTQ0NzQ6ICAgQVRPTV9GQ0hf
Q0xLID05LAoxNDQ3NDogICBBVE9NX0RQX0RUTyA9MTEsCjE0NDc0OiAgIEFUT01fQ09NQk9QSFlf
UExMMCA9MjAsCjE0NDc0OiAgIEFUT01fQ09NQk9QSFlfUExMMSA9MjEsCjE0NDc0OiAgIEFUT01f
Q09NQk9QSFlfUExMMiA9MjIsCjE0NDc0OiAgIEFUT01fQ09NQk9QSFlfUExMMyA9MjMsCjE0NDc0
OiAgIEFUT01fQ09NQk9QSFlfUExMNCA9MjQsCjE0NDc0OiAgIEFUT01fQ09NQk9QSFlfUExMNSA9
MjUsCjE0NDc0OiAgIEFUT01fUFBMTF9JTlZBTElEID0weGZmLAoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZGlnX2RlZnsKMTQ0NzQ6ICAgQVNJQ19JTlRfRElHMV9F
TkNPREVSX0lEID0weDAzLAoxNDQ3NDogICBBU0lDX0lOVF9ESUcyX0VOQ09ERVJfSUQgPTB4MDks
CjE0NDc0OiAgIEFTSUNfSU5UX0RJRzNfRU5DT0RFUl9JRCA9MHgwYSwKMTQ0NzQ6ICAgQVNJQ19J
TlRfRElHNF9FTkNPREVSX0lEID0weDBiLAoxNDQ3NDogICBBU0lDX0lOVF9ESUc1X0VOQ09ERVJf
SUQgPTB4MGMsCjE0NDc0OiAgIEFTSUNfSU5UX0RJRzZfRU5DT0RFUl9JRCA9MHgwZCwKMTQ0NzQ6
ICAgQVNJQ19JTlRfRElHN19FTkNPREVSX0lEID0weDBlLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBlbnVtIGF0b21fZW5jb2RlX21vZGVfZGVmCjE0NDc0OiB7CjE0NDc0OiAgIEFU
T01fRU5DT0RFUl9NT0RFX0RQID0wLAoxNDQ3NDogICBBVE9NX0VOQ09ERVJfTU9ERV9EUF9TU1Qg
PTAsCjE0NDc0OiAgIEFUT01fRU5DT0RFUl9NT0RFX0xWRFMgPTEsCjE0NDc0OiAgIEFUT01fRU5D
T0RFUl9NT0RFX0RWSSA9MiwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX01PREVfSERNSSA9MywKMTQ0
NzQ6ICAgQVRPTV9FTkNPREVSX01PREVfRFBfQVVESU8gPTUsCjE0NDc0OiAgIEFUT01fRU5DT0RF
Ul9NT0RFX0RQX01TVCA9NSwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX01PREVfQ1JUID0xNSwKMTQ0
NzQ6ICAgQVRPTV9FTkNPREVSX01PREVfRFZPID0xNiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gYXRvbV9lbmNvZGVyX3JlZmNsa19zcmNfZGVmewoxNDQ3NDogICBFTkNPREVSX1JFRkNM
S19TUkNfUDFQTEwgPTAsCjE0NDc0OiAgIEVOQ09ERVJfUkVGQ0xLX1NSQ19QMlBMTCA9MSwKMTQ0
NzQ6ICAgRU5DT0RFUl9SRUZDTEtfU1JDX1AzUExMID0yLAoxNDQ3NDogICBFTkNPREVSX1JFRkNM
S19TUkNfRVhUQ0xLID0zLAoxNDQ3NDogICBFTkNPREVSX1JFRkNMS19TUkNfSU5WQUxJRCA9MHhm
ZiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zY2FsZXJfZGVmewoxNDQ3NDog
ICBBVE9NX1NDQUxFUl9ESVNBQkxFID0wLAoxNDQ3NDogICBBVE9NX1NDQUxFUl9DRU5URVIgPTEs
CjE0NDc0OiAgIEFUT01fU0NBTEVSX0VYUEFOU0lPTiA9MiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IGVudW0gYXRvbV9vcGVyYXRpb25fZGVmewoxNDQ3NDogICBBVE9NX0RJU0FCTEUgPSAwLAox
NDQ3NDogICBBVE9NX0VOQUJMRSA9IDEsCjE0NDc0OiAgIEFUT01fSU5JVCA9IDcsCjE0NDc0OiAg
IEFUT01fR0VUX1NUQVRVUyA9IDgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21f
ZW1iZWRkZWRfZGlzcGxheV9vcF9kZWZ7CjE0NDc0OiAgIEFUT01fTENEX0JMX09GRiA9IDIsCjE0
NDc0OiAgIEFUT01fTENEX0JMX09NID0gMywKMTQ0NzQ6ICAgQVRPTV9MQ0RfQkxfQlJJR0hUTkVT
U19DT05UUk9MID0gNCwKMTQ0NzQ6ICAgQVRPTV9MQ0RfU0VMRlRFU1RfU1RBUlQgPSA1LAoxNDQ3
NDogICBBVE9NX0xDRF9TRUxGVEVTVF9TVE9QID0gNiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gYXRvbV9zcHJlYWRfc3BlY3RydW1fbW9kZXsKMTQ0NzQ6ICAgQVRPTV9TU19DRU5URVJf
T1JfRE9XTl9NT0RFX01BU0sgPSAweDAxLAoxNDQ3NDogICBBVE9NX1NTX0RPV05fU1BSRUFEX01P
REUgPSAweDAwLAoxNDQ3NDogICBBVE9NX1NTX0NFTlRSRV9TUFJFQURfTU9ERSA9IDB4MDEsCjE0
NDc0OiAgIEFUT01fSU5UX09SX0VYVF9TU19NQVNLID0gMHgwMiwKMTQ0NzQ6ICAgQVRPTV9JTlRF
Uk5BTF9TU19NQVNLID0gMHgwMCwKMTQ0NzQ6ICAgQVRPTV9FWFRFUk5BTF9TU19NQVNLID0gMHgw
MiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3BhbmVsX2JpdF9w
ZXJfY29sb3J7CjE0NDc0OiAgIFBBTkVMX0JQQ19VTkRFRklORSA9MHgwMCwKMTQ0NzQ6ICAgUEFO
RUxfNkJJVF9QRVJfQ09MT1IgPTB4MDEsCjE0NDc0OiAgIFBBTkVMXzhCSVRfUEVSX0NPTE9SID0w
eDAyLAoxNDQ3NDogICBQQU5FTF8xMEJJVF9QRVJfQ09MT1IgPTB4MDMsCjE0NDc0OiAgIFBBTkVM
XzEyQklUX1BFUl9DT0xPUiA9MHgwNCwKMTQ0NzQ6ICAgUEFORUxfMTZCSVRfUEVSX0NPTE9SID0w
eDA1LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fdm9sdGFnZV90
eXBlCjE0NDc0OiB7CjE0NDc0OiAgIFZPTFRBR0VfVFlQRV9WRERDID0gMSwKMTQ0NzQ6ICAgVk9M
VEFHRV9UWVBFX01WRERDID0gMiwKMTQ0NzQ6ICAgVk9MVEFHRV9UWVBFX01WRERRID0gMywKMTQ0
NzQ6ICAgVk9MVEFHRV9UWVBFX1ZERENJID0gNCwKMTQ0NzQ6ICAgVk9MVEFHRV9UWVBFX1ZEREdG
WCA9IDUsCjE0NDc0OiAgIFZPTFRBR0VfVFlQRV9QQ0MgPSA2LAoxNDQ3NDogICBWT0xUQUdFX1RZ
UEVfTVZQUCA9IDcsCjE0NDc0OiAgIFZPTFRBR0VfVFlQRV9MRUREUE0gPSA4LAoxNDQ3NDogICBW
T0xUQUdFX1RZUEVfUENDX01WREQgPSA5LAoxNDQ3NDogICBWT0xUQUdFX1RZUEVfUENJRV9WRERD
ID0gMTAsCjE0NDc0OiAgIFZPTFRBR0VfVFlQRV9QQ0lFX1ZERFIgPSAxMSwKMTQ0NzQ6ICAgVk9M
VEFHRV9UWVBFX0dFTkVSSUNfSTJDXzEgPSAweDExLAoxNDQ3NDogICBWT0xUQUdFX1RZUEVfR0VO
RVJJQ19JMkNfMiA9IDB4MTIsCjE0NDc0OiAgIFZPTFRBR0VfVFlQRV9HRU5FUklDX0kyQ18zID0g
MHgxMywKMTQ0NzQ6ICAgVk9MVEFHRV9UWVBFX0dFTkVSSUNfSTJDXzQgPSAweDE0LAoxNDQ3NDog
ICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNfNSA9IDB4MTUsCjE0NDc0OiAgIFZPTFRBR0VfVFlQ
RV9HRU5FUklDX0kyQ182ID0gMHgxNiwKMTQ0NzQ6ICAgVk9MVEFHRV9UWVBFX0dFTkVSSUNfSTJD
XzcgPSAweDE3LAoxNDQ3NDogICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNfOCA9IDB4MTgsCjE0
NDc0OiAgIFZPTFRBR0VfVFlQRV9HRU5FUklDX0kyQ185ID0gMHgxOSwKMTQ0NzQ6ICAgVk9MVEFH
RV9UWVBFX0dFTkVSSUNfSTJDXzEwID0gMHgxQSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gYXRvbV9kZ3B1X3ZyYW1fdHlwZSB7CjE0NDc0OiAgIEFUT01fREdQVV9WUkFNX1RZUEVfR0RE
UjUgPSAweDUwLAoxNDQ3NDogICBBVE9NX0RHUFVfVlJBTV9UWVBFX0hCTTIgPSAweDYwLAoxNDQ3
NDogICBBVE9NX0RHUFVfVlJBTV9UWVBFX0dERFI2ID0gMHg3MCwKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IGVudW0gYXRvbV9kcF92c19wcmVlbXBoX2RlZnsKMTQ0NzQ6ICAgRFBfVlNfTEVWRUww
X1BSRUVNUEhfTEVWRUwwID0gMHgwMCwKMTQ0NzQ6ICAgRFBfVlNfTEVWRUwxX1BSRUVNUEhfTEVW
RUwwID0gMHgwMSwKMTQ0NzQ6ICAgRFBfVlNfTEVWRUwyX1BSRUVNUEhfTEVWRUwwID0gMHgwMiwK
MTQ0NzQ6ICAgRFBfVlNfTEVWRUwzX1BSRUVNUEhfTEVWRUwwID0gMHgwMywKMTQ0NzQ6ICAgRFBf
VlNfTEVWRUwwX1BSRUVNUEhfTEVWRUwxID0gMHgwOCwKMTQ0NzQ6ICAgRFBfVlNfTEVWRUwxX1BS
RUVNUEhfTEVWRUwxID0gMHgwOSwKMTQ0NzQ6ICAgRFBfVlNfTEVWRUwyX1BSRUVNUEhfTEVWRUwx
ID0gMHgwYSwKMTQ0NzQ6ICAgRFBfVlNfTEVWRUwwX1BSRUVNUEhfTEVWRUwyID0gMHgxMCwKMTQ0
NzQ6ICAgRFBfVlNfTEVWRUwxX1BSRUVNUEhfTEVWRUwyID0gMHgxMSwKMTQ0NzQ6ICAgRFBfVlNf
TEVWRUwwX1BSRUVNUEhfTEVWRUwzID0gMHgxOCwKMTQ0NzQ6IH07CjE0NDc0OiAjIDIwOCAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgoxNDQ3
NDogI3ByYWdtYSBwYWNrKDEpCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbWJpb3NfaW1hZ2Vfb2Zm
c2V0ewoxNDQ3NDogT0ZGU0VUX1RPX0FUT01fUk9NX0hFQURFUl9QT0lOVEVSID0weDAwMDAwMDQ4
LAoxNDQ3NDogT0ZGU0VUX1RPX0FUT01fUk9NX0lNQUdFX1NJWkUgPTB4MDAwMDAwMDIsCjE0NDc0
OiBPRkZTRVRfVE9fQVRPTUJJT1NfQVNJQ19CVVNfTUVNX1RZUEUgPTB4OTQsCjE0NDc0OiBNQVhT
SVpFX09GX0FUT01CSU9TX0FTSUNfQlVTX01FTV9UWVBFID0yMCwKMTQ0NzQ6IE9GRlNFVF9UT19H
RVRfQVRPTUJJT1NfTlVNQkVSX09GX1NUUklOR1MgPTB4MmYsCjE0NDc0OiBPRkZTRVRfVE9fR0VU
X0FUT01CSU9TX1NUUklOR19TVEFSVCA9MHg2ZSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9t
X2NvbW1vbl90YWJsZV9oZWFkZXIKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDE2X3Qgc3RydWN0dXJl
c2l6ZTsKMTQ0NzQ6ICAgdWludDhfdCBmb3JtYXRfcmV2aXNpb247CjE0NDc0OiAgIHVpbnQ4X3Qg
Y29udGVudF9yZXZpc2lvbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3JvbV9oZWFkZXJfdjJfMgoxNDQ3NDogewoxNDQ3NDogICBz
dHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWlu
dDhfdCBhdG9tX2Jpb3Nfc3RyaW5nWzRdOwoxNDQ3NDogICB1aW50MTZfdCBiaW9zX3NlZ21lbnRf
YWRkcmVzczsKMTQ0NzQ6ICAgdWludDE2X3QgcHJvdGVjdGVkbW9kZW9mZnNldDsKMTQ0NzQ6ICAg
dWludDE2X3QgY29uZmlnZmlsZW5hbWVvZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IGNyY19ibG9j
a19vZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IHZiaW9zX2Jvb3R1cG1lc3NhZ2VvZmZzZXQ7CjE0
NDc0OiAgIHVpbnQxNl90IGludDEwX29mZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgcGNpYnVzZGV2
aW5pdGNvZGU7CjE0NDc0OiAgIHVpbnQxNl90IGlvYmFzZWFkZHJlc3M7CjE0NDc0OiAgIHVpbnQx
Nl90IHN1YnN5c3RlbV92ZW5kb3JfaWQ7CjE0NDc0OiAgIHVpbnQxNl90IHN1YnN5c3RlbV9pZDsK
MTQ0NzQ6ICAgdWludDE2X3QgcGNpX2luZm9fb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBtYXN0
ZXJod2Z1bmN0aW9uX29mZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgbWFzdGVyZGF0YXRhYmxlX29m
ZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgcmVzZXJ2ZWQ7CjE0NDc0OiAgIHVpbnQzMl90IHBzcGRp
cnRhYmxlb2Zmc2V0OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjY0ICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiCjE0NDc0OiBzdHJ1Y3QgYXRvbV9t
YXN0ZXJfbGlzdF9vZl9jb21tYW5kX2Z1bmN0aW9uc192Ml8xewoxNDQ3NDogICB1aW50MTZfdCBh
c2ljX2luaXQ7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjE7CjE0NDc0OiAgIHVpbnQx
Nl90IGNtZF9mdW5jdGlvbjI7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjM7CjE0NDc0
OiAgIHVpbnQxNl90IGRpZ3hlbmNvZGVyY29udHJvbDsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1
bmN0aW9uNTsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNjsKMTQ0NzQ6ICAgdWludDE2
X3QgY21kX2Z1bmN0aW9uNzsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uODsKMTQ0NzQ6
ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uOTsKMTQ0NzQ6ICAgdWludDE2X3Qgc2V0ZW5naW5lY2xv
Y2s7CjE0NDc0OiAgIHVpbnQxNl90IHNldG1lbW9yeWNsb2NrOwoxNDQ3NDogICB1aW50MTZfdCBz
ZXRwaXhlbGNsb2NrOwoxNDQ3NDogICB1aW50MTZfdCBlbmFibGVkaXNwcG93ZXJnYXRpbmc7CjE0
NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjE0OwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVu
Y3Rpb24xNTsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uMTY7CjE0NDc0OiAgIHVpbnQx
Nl90IGNtZF9mdW5jdGlvbjE3OwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb24xODsKMTQ0
NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uMTk7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5j
dGlvbjIwOwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yMTsKMTQ0NzQ6ICAgdWludDE2
X3QgY21kX2Z1bmN0aW9uMjI7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjIzOwoxNDQ3
NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yNDsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0
aW9uMjU7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjI2OwoxNDQ3NDogICB1aW50MTZf
dCBjbWRfZnVuY3Rpb24yNzsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uMjg7CjE0NDc0
OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjI5OwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rp
b24zMDsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uMzE7CjE0NDc0OiAgIHVpbnQxNl90
IGNtZF9mdW5jdGlvbjMyOwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zMzsKMTQ0NzQ6
ICAgdWludDE2X3QgYmxhbmtjcnRjOwoxNDQ3NDogICB1aW50MTZfdCBlbmFibGVjcnRjOwoxNDQ3
NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zNjsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0
aW9uMzc7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjM4OwoxNDQ3NDogICB1aW50MTZf
dCBjbWRfZnVuY3Rpb24zOTsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNDA7CjE0NDc0
OiAgIHVpbnQxNl90IGdldHNtdWNsb2NraW5mbzsKMTQ0NzQ6ICAgdWludDE2X3Qgc2VsZWN0Y3J0
Y19zb3VyY2U7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjQzOwoxNDQ3NDogICB1aW50
MTZfdCBjbWRfZnVuY3Rpb240NDsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNDU7CjE0
NDc0OiAgIHVpbnQxNl90IHNldGRjZWNsb2NrOwoxNDQ3NDogICB1aW50MTZfdCBnZXRtZW1vcnlj
bG9jazsKMTQ0NzQ6ICAgdWludDE2X3QgZ2V0ZW5naW5lY2xvY2s7CjE0NDc0OiAgIHVpbnQxNl90
IHNldGNydGNfdXNpbmdkdGR0aW1pbmc7CjE0NDc0OiAgIHVpbnQxNl90IGV4dGVybmFsZW5jb2Rl
cmNvbnRyb2w7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjUxOwoxNDQ3NDogICB1aW50
MTZfdCBjbWRfZnVuY3Rpb241MjsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNTM7CjE0
NDc0OiAgIHVpbnQxNl90IHByb2Nlc3NpMmNjaGFubmVsdHJhbnNhY3Rpb247CjE0NDc0OiAgIHVp
bnQxNl90IGNtZF9mdW5jdGlvbjU1OwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb241NjsK
MTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNTc7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9m
dW5jdGlvbjU4OwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb241OTsKMTQ0NzQ6ICAgdWlu
dDE2X3QgY29tcHV0ZWdwdWNsb2NrcGFyYW07CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlv
bjYxOwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb242MjsKMTQ0NzQ6ICAgdWludDE2X3Qg
ZHluYW1pY21lbW9yeXNldHRpbmdzOwoxNDQ3NDogICB1aW50MTZfdCBtZW1vcnl0cmFpbmluZzsK
MTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNjU7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9m
dW5jdGlvbjY2OwoxNDQ3NDogICB1aW50MTZfdCBzZXR2b2x0YWdlOwoxNDQ3NDogICB1aW50MTZf
dCBjbWRfZnVuY3Rpb242ODsKMTQ0NzQ6ICAgdWludDE2X3QgcmVhZGVmdXNldmFsdWU7CjE0NDc0
OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjcwOwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rp
b243MTsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNzI7CjE0NDc0OiAgIHVpbnQxNl90
IGNtZF9mdW5jdGlvbjczOwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb243NDsKMTQ0NzQ6
ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNzU7CjE0NDc0OiAgIHVpbnQxNl90IGRpZzF0cmFuc21p
dHRlcmNvbnRyb2w7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjc3OwoxNDQ3NDogICB1
aW50MTZfdCBwcm9jZXNzYXV4Y2hhbm5lbHRyYW5zYWN0aW9uOwoxNDQ3NDogICB1aW50MTZfdCBj
bWRfZnVuY3Rpb243OTsKMTQ0NzQ6ICAgdWludDE2X3QgZ2V0dm9sdGFnZWluZm87CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9tYXN0ZXJfY29tbWFuZF9mdW5jdGlvbl92Ml8x
CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVf
aGVhZGVyOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9tYXN0ZXJfbGlzdF9vZl9jb21tYW5kX2Z1bmN0
aW9uc192Ml8xIGxpc3RvZmNtZGZ1bmN0aW9uczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2Z1bmN0aW9uX2F0dHJpYnV0ZQoxNDQ3
NDogewoxNDQ3NDogICB1aW50MTZfdCB3c19pbl9ieXRlczo4OwoxNDQ3NDogICB1aW50MTZfdCBw
c19pbl9ieXRlczo3OwoxNDQ3NDogICB1aW50MTZfdCB1cGRhdGVkX2J5X3V0aWw6MTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3JvbV9od19mdW5jdGlvbl9oZWFkZXIKMTQ0NzQ6IHsKMTQ0
NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciBmdW5jX2hlYWRlcjsKMTQ0NzQ6
ICAgc3RydWN0IGF0b21fZnVuY3Rpb25fYXR0cmlidXRlIGZ1bmNfYXR0cmliOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGF0b21fbWFzdGVyX2xpc3Rfb2ZfZGF0YV90YWJsZXNfdjJfMXsKMTQ0NzQ6
ICAgdWludDE2X3QgdXRpbGl0eXBpcGVsaW5lOwoxNDQ3NDogICB1aW50MTZfdCBtdWx0aW1lZGlh
X2luZm87CjE0NDc0OiAgIHVpbnQxNl90IHNtY19kcG1faW5mbzsKMTQ0NzQ6ICAgdWludDE2X3Qg
c3dfZGF0YXRhYmxlMzsKMTQ0NzQ6ICAgdWludDE2X3QgZmlybXdhcmVpbmZvOwoxNDQ3NDogICB1
aW50MTZfdCBzd19kYXRhdGFibGU1OwoxNDQ3NDogICB1aW50MTZfdCBsY2RfaW5mbzsKMTQ0NzQ6
ICAgdWludDE2X3Qgc3dfZGF0YXRhYmxlNzsKMTQ0NzQ6ICAgdWludDE2X3Qgc211X2luZm87CjE0
NDc0OiAgIHVpbnQxNl90IHN3X2RhdGF0YWJsZTk7CjE0NDc0OiAgIHVpbnQxNl90IHN3X2RhdGF0
YWJsZTEwOwoxNDQ3NDogICB1aW50MTZfdCB2cmFtX3VzYWdlYnlmaXJtd2FyZTsKMTQ0NzQ6ICAg
dWludDE2X3QgZ3Bpb19waW5fbHV0OwoxNDQ3NDogICB1aW50MTZfdCBzd19kYXRhdGFibGUxMzsK
MTQ0NzQ6ICAgdWludDE2X3QgZ2Z4X2luZm87CjE0NDc0OiAgIHVpbnQxNl90IHBvd2VycGxheWlu
Zm87CjE0NDc0OiAgIHVpbnQxNl90IHN3X2RhdGF0YWJsZTE2OwoxNDQ3NDogICB1aW50MTZfdCBz
d19kYXRhdGFibGUxNzsKMTQ0NzQ6ICAgdWludDE2X3Qgc3dfZGF0YXRhYmxlMTg7CjE0NDc0OiAg
IHVpbnQxNl90IHN3X2RhdGF0YWJsZTE5OwoxNDQ3NDogICB1aW50MTZfdCBzd19kYXRhdGFibGUy
MDsKMTQ0NzQ6ICAgdWludDE2X3Qgc3dfZGF0YXRhYmxlMjE7CjE0NDc0OiAgIHVpbnQxNl90IGRp
c3BsYXlvYmplY3RpbmZvOwoxNDQ3NDogICB1aW50MTZfdCBpbmRpcmVjdGlvYWNjZXNzOwoxNDQ3
NDogICB1aW50MTZfdCB1bWNfaW5mbzsKMTQ0NzQ6ICAgdWludDE2X3Qgc3dfZGF0YXRhYmxlMjU7
CjE0NDc0OiAgIHVpbnQxNl90IHN3X2RhdGF0YWJsZTI2OwoxNDQ3NDogICB1aW50MTZfdCBkY2Vf
aW5mbzsKMTQ0NzQ6ICAgdWludDE2X3QgdnJhbV9pbmZvOwoxNDQ3NDogICB1aW50MTZfdCBzd19k
YXRhdGFibGUyOTsKMTQ0NzQ6ICAgdWludDE2X3QgaW50ZWdyYXRlZHN5c3RlbWluZm87CjE0NDc0
OiAgIHVpbnQxNl90IGFzaWNfcHJvZmlsaW5nX2luZm87CjE0NDc0OiAgIHVpbnQxNl90IHZvbHRh
Z2VvYmplY3RfaW5mbzsKMTQ0NzQ6ICAgdWludDE2X3Qgc3dfZGF0YXRhYmxlMzM7CjE0NDc0OiAg
IHVpbnQxNl90IHN3X2RhdGF0YWJsZTM0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgYXRvbV9tYXN0ZXJfZGF0YV90YWJsZV92Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHN0
cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwoxNDQ3NDogICBzdHJ1
Y3QgYXRvbV9tYXN0ZXJfbGlzdF9vZl9kYXRhX3RhYmxlc192Ml8xIGxpc3RPZmRhdGF0YWJsZXM7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2R0ZF9mb3JtYXQK
MTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDE2X3QgcGl4Y2xrOwoxNDQ3NDogICB1aW50MTZfdCBoX2Fj
dGl2ZTsKMTQ0NzQ6ICAgdWludDE2X3QgaF9ibGFua2luZ190aW1lOwoxNDQ3NDogICB1aW50MTZf
dCB2X2FjdGl2ZTsKMTQ0NzQ6ICAgdWludDE2X3Qgdl9ibGFua2luZ190aW1lOwoxNDQ3NDogICB1
aW50MTZfdCBoX3N5bmNfb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBoX3N5bmNfd2lkdGg7CjE0
NDc0OiAgIHVpbnQxNl90IHZfc3luY19vZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IHZfc3luY3dp
ZHRoOwoxNDQ3NDogICB1aW50MTZfdCByZXNlcnZlZDsKMTQ0NzQ6ICAgdWludDE2X3QgcmVzZXJ2
ZWQwOwoxNDQ3NDogICB1aW50OF90IGhfYm9yZGVyOwoxNDQ3NDogICB1aW50OF90IHZfYm9yZGVy
OwoxNDQ3NDogICB1aW50MTZfdCBtaXNjaW5mbzsKMTQ0NzQ6ICAgdWludDhfdCBhdG9tX21vZGVf
aWQ7CjE0NDc0OiAgIHVpbnQ4X3QgcmVmcmVzaHJhdGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGVudW0gYXRvbV9kdGRfZm9ybWF0X21vZGVtaXNjaW5mb3sKMTQ0NzQ6ICAgQVRP
TV9IU1lOQ19QT0xBUklUWSA9IDB4MDAwMiwKMTQ0NzQ6ICAgQVRPTV9WU1lOQ19QT0xBUklUWSA9
IDB4MDAwNCwKMTQ0NzQ6ICAgQVRPTV9IX1JFUExJQ0FUSU9OQlkyID0gMHgwMDEwLAoxNDQ3NDog
ICBBVE9NX1ZfUkVQTElDQVRJT05CWTIgPSAweDAwMjAsCjE0NDc0OiAgIEFUT01fSU5URVJMQUNF
ID0gMHgwMDgwLAoxNDQ3NDogICBBVE9NX0NPTVBPU0lURVNZTkMgPSAweDAwNDAsCjE0NDc0OiB9
OwoxNDQ3NDogIyA0NzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9h
dG9tZmlybXdhcmUuaCIKMTQ0NzQ6IHN0cnVjdCBhdG9tX2Zpcm13YXJlX2luZm9fdjNfMQoxNDQ3
NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRl
cjsKMTQ0NzQ6ICAgdWludDMyX3QgZmlybXdhcmVfcmV2aXNpb247CjE0NDc0OiAgIHVpbnQzMl90
IGJvb3R1cF9zY2xrX2luMTBraHo7CjE0NDc0OiAgIHVpbnQzMl90IGJvb3R1cF9tY2xrX2luMTBr
aHo7CjE0NDc0OiAgIHVpbnQzMl90IGZpcm13YXJlX2NhcGFiaWxpdHk7CjE0NDc0OiAgIHVpbnQz
Ml90IG1haW5fY2FsbF9wYXJzZXJfZW50cnk7CjE0NDc0OiAgIHVpbnQzMl90IGJpb3Nfc2NyYXRj
aF9yZWdfc3RhcnRhZGRyOwoxNDQ3NDogICB1aW50MTZfdCBib290dXBfdmRkY19tdjsKMTQ0NzQ6
ICAgdWludDE2X3QgYm9vdHVwX3ZkZGNpX212OwoxNDQ3NDogICB1aW50MTZfdCBib290dXBfbXZk
ZGNfbXY7CjE0NDc0OiAgIHVpbnQxNl90IGJvb3R1cF92ZGRnZnhfbXY7CjE0NDc0OiAgIHVpbnQ4
X3QgbWVtX21vZHVsZV9pZDsKMTQ0NzQ6ICAgdWludDhfdCBjb29saW5nc29sdXRpb25faWQ7CjE0
NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQxWzJdOwoxNDQ3NDogICB1aW50MzJfdCBtY19iYXNlYWRk
cl9oaWdoOwoxNDQ3NDogICB1aW50MzJfdCBtY19iYXNlYWRkcl9sb3c7CjE0NDc0OiAgIHVpbnQz
Ml90IHJlc2VydmVkMls2XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBh
dG9tYmlvc19maXJtd2FyZV9jYXBhYmlsaXR5CjE0NDc0OiB7CjE0NDc0OiAgQVRPTV9GSVJNV0FS
RV9DQVBfRklSTVdBUkVfUE9TVEVEID0gMHgwMDAwMDAwMSwKMTQ0NzQ6ICBBVE9NX0ZJUk1XQVJF
X0NBUF9HUFVfVklSVFVBTElaQVRJT04gPSAweDAwMDAwMDAyLAoxNDQ3NDogIEFUT01fRklSTVdB
UkVfQ0FQX1dNSV9TVVBQT1JUID0gMHgwMDAwMDA0MCwKMTQ0NzQ6ICBBVE9NX0ZJUk1XQVJFX0NB
UF9IV0VNVV9FTkFCTEUgPSAweDAwMDAwMDgwLAoxNDQ3NDogIEFUT01fRklSTVdBUkVfQ0FQX0hX
RU1VX1VNQ19DRkcgPSAweDAwMDAwMTAwLAoxNDQ3NDogIEFUT01fRklSTVdBUkVfQ0FQX1NSQU1f
RUNDID0gMHgwMDAwMDIwMCwKMTQ0NzQ6ICBBVE9NX0ZJUk1XQVJFX0NBUF9FTkFCTEVfMlNUQUdF
X0JJU1RfVFJBSU5JTkcgPSAweDAwMDAwNDAwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBhdG9tX2Nvb2xpbmdfc29sdXRpb25faWR7CjE0NDc0OiAgIEFJUl9DT09MSU5HID0gMHgwMCwK
MTQ0NzQ6ICAgTElRVUlEX0NPT0xJTkcgPSAweDAxCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgYXRvbV9maXJtd2FyZV9pbmZvX3YzXzIgewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21t
b25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDMyX3QgZmlybXdhcmVf
cmV2aXNpb247CjE0NDc0OiAgIHVpbnQzMl90IGJvb3R1cF9zY2xrX2luMTBraHo7CjE0NDc0OiAg
IHVpbnQzMl90IGJvb3R1cF9tY2xrX2luMTBraHo7CjE0NDc0OiAgIHVpbnQzMl90IGZpcm13YXJl
X2NhcGFiaWxpdHk7CjE0NDc0OiAgIHVpbnQzMl90IG1haW5fY2FsbF9wYXJzZXJfZW50cnk7CjE0
NDc0OiAgIHVpbnQzMl90IGJpb3Nfc2NyYXRjaF9yZWdfc3RhcnRhZGRyOwoxNDQ3NDogICB1aW50
MTZfdCBib290dXBfdmRkY19tdjsKMTQ0NzQ6ICAgdWludDE2X3QgYm9vdHVwX3ZkZGNpX212Owox
NDQ3NDogICB1aW50MTZfdCBib290dXBfbXZkZGNfbXY7CjE0NDc0OiAgIHVpbnQxNl90IGJvb3R1
cF92ZGRnZnhfbXY7CjE0NDc0OiAgIHVpbnQ4X3QgbWVtX21vZHVsZV9pZDsKMTQ0NzQ6ICAgdWlu
dDhfdCBjb29saW5nc29sdXRpb25faWQ7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQxWzJdOwox
NDQ3NDogICB1aW50MzJfdCBtY19iYXNlYWRkcl9oaWdoOwoxNDQ3NDogICB1aW50MzJfdCBtY19i
YXNlYWRkcl9sb3c7CjE0NDc0OiAgIHVpbnQ4X3QgYm9hcmRfaTJjX2ZlYXR1cmVfaWQ7CjE0NDc0
OiAgIHVpbnQ4X3QgYm9hcmRfaTJjX2ZlYXR1cmVfZ3Bpb19pZDsKMTQ0NzQ6ICAgdWludDhfdCBi
b2FyZF9pMmNfZmVhdHVyZV9zbGF2ZV9hZGRyOwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVkMzsK
MTQ0NzQ6ICAgdWludDE2X3QgYm9vdHVwX212ZGRxX212OwoxNDQ3NDogICB1aW50MTZfdCBib290
dXBfbXZwcF9tdjsKMTQ0NzQ6ICAgdWludDMyX3QgemZic3RhcnRhZGRyaW4xNm1iOwoxNDQ3NDog
ICB1aW50MzJfdCByZXNlcnZlZDJbM107CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YXRvbV9maXJtd2FyZV9pbmZvX3YzXzMKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29t
bW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CjE0NDc0OiAgIHVpbnQzMl90IGZpcm13YXJl
X3JldmlzaW9uOwoxNDQ3NDogICB1aW50MzJfdCBib290dXBfc2Nsa19pbjEwa2h6OwoxNDQ3NDog
ICB1aW50MzJfdCBib290dXBfbWNsa19pbjEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBmaXJtd2Fy
ZV9jYXBhYmlsaXR5OwoxNDQ3NDogICB1aW50MzJfdCBtYWluX2NhbGxfcGFyc2VyX2VudHJ5Owox
NDQ3NDogICB1aW50MzJfdCBiaW9zX3NjcmF0Y2hfcmVnX3N0YXJ0YWRkcjsKMTQ0NzQ6ICAgdWlu
dDE2X3QgYm9vdHVwX3ZkZGNfbXY7CjE0NDc0OiAgIHVpbnQxNl90IGJvb3R1cF92ZGRjaV9tdjsK
MTQ0NzQ6ICAgdWludDE2X3QgYm9vdHVwX212ZGRjX212OwoxNDQ3NDogICB1aW50MTZfdCBib290
dXBfdmRkZ2Z4X212OwoxNDQ3NDogICB1aW50OF90IG1lbV9tb2R1bGVfaWQ7CjE0NDc0OiAgIHVp
bnQ4X3QgY29vbGluZ3NvbHV0aW9uX2lkOwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVkMVsyXTsK
MTQ0NzQ6ICAgdWludDMyX3QgbWNfYmFzZWFkZHJfaGlnaDsKMTQ0NzQ6ICAgdWludDMyX3QgbWNf
YmFzZWFkZHJfbG93OwoxNDQ3NDogICB1aW50OF90IGJvYXJkX2kyY19mZWF0dXJlX2lkOwoxNDQ3
NDogICB1aW50OF90IGJvYXJkX2kyY19mZWF0dXJlX2dwaW9faWQ7CjE0NDc0OiAgIHVpbnQ4X3Qg
Ym9hcmRfaTJjX2ZlYXR1cmVfc2xhdmVfYWRkcjsKMTQ0NzQ6ICAgdWludDhfdCByZXNlcnZlZDM7
CjE0NDc0OiAgIHVpbnQxNl90IGJvb3R1cF9tdmRkcV9tdjsKMTQ0NzQ6ICAgdWludDE2X3QgYm9v
dHVwX212cHBfbXY7CjE0NDc0OiAgIHVpbnQzMl90IHpmYnN0YXJ0YWRkcmluMTZtYjsKMTQ0NzQ6
ICAgdWludDMyX3QgcHBsaWJfcHB0YWJsZV9pZDsKMTQ0NzQ6ICAgdWludDMyX3QgcmVzZXJ2ZWQy
WzJdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGxjZF9pbmZvX3YyXzEKMTQ0NzQ6IHsKMTQ0NzQ6
ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CjE0NDc0OiAg
IHN0cnVjdCBhdG9tX2R0ZF9mb3JtYXQgbGNkX3RpbWluZzsKMTQ0NzQ6ICAgdWludDE2X3QgYmFj
a2xpZ2h0X3B3bTsKMTQ0NzQ6ICAgdWludDE2X3Qgc3BlY2lhbF9oYW5kbGVfY2FwOwoxNDQ3NDog
ICB1aW50MTZfdCBwYW5lbF9taXNjOwoxNDQ3NDogICB1aW50MTZfdCBsdmRzX21heF9zbGlua19w
Y2xrOwoxNDQ3NDogICB1aW50MTZfdCBsdmRzX3NzX3BlcmNlbnRhZ2U7CjE0NDc0OiAgIHVpbnQx
Nl90IGx2ZHNfc3NfcmF0ZV8xMGh6OwoxNDQ3NDogICB1aW50OF90IHB3cl9vbl9kaWdvbl90b19k
ZTsKMTQ0NzQ6ICAgdWludDhfdCBwd3Jfb25fZGVfdG9fdmFyeV9ibDsKMTQ0NzQ6ICAgdWludDhf
dCBwd3JfZG93bl92YXJ5X2Jsb2ZmX3RvX2RlOwoxNDQ3NDogICB1aW50OF90IHB3cl9kb3duX2Rl
X3RvX2RpZ29mZjsKMTQ0NzQ6ICAgdWludDhfdCBwd3Jfb2ZmX2RlbGF5OwoxNDQ3NDogICB1aW50
OF90IHB3cl9vbl92YXJ5X2JsX3RvX2Jsb247CjE0NDc0OiAgIHVpbnQ4X3QgcHdyX2Rvd25fYmxv
ZmZfdG9fdmFyeV9ibG9mZjsKMTQ0NzQ6ICAgdWludDhfdCBwYW5lbF9icGM7CjE0NDc0OiAgIHVp
bnQ4X3QgZHBjZF9lZHBfY29uZmlnX2NhcDsKMTQ0NzQ6ICAgdWludDhfdCBkcGNkX21heF9saW5r
X3JhdGU7CjE0NDc0OiAgIHVpbnQ4X3QgZHBjZF9tYXhfbGFuZV9jb3VudDsKMTQ0NzQ6ICAgdWlu
dDhfdCBkcGNkX21heF9kb3duc3ByZWFkOwoxNDQ3NDogICB1aW50OF90IG1pbl9hbGxvd2VkX2Js
X2xldmVsOwoxNDQ3NDogICB1aW50OF90IG1heF9hbGxvd2VkX2JsX2xldmVsOwoxNDQ3NDogICB1
aW50OF90IGJvb3R1cF9ibF9sZXZlbDsKMTQ0NzQ6ICAgdWludDhfdCBkcGx2ZHNyeGlkOwoxNDQ3
NDogICB1aW50MzJfdCByZXNlcnZlZDFbOF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gYXRvbV9sY2RfaW5mb19wYW5lbF9taXNjewoxNDQ3NDogICBBVE9NX1BBTkVMX01J
U0NfRlBESSA9MHgwMDAyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0
b21fbGNkX2luZm9fZHB0b2x2ZHNfcnhfaWQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgZURQX1RPX0xWRFNf
UlhfRElTQUJMRSA9IDB4MDAsCjE0NDc0OiAgIGVEUF9UT19MVkRTX0NPTU1PTl9JRCA9IDB4MDEs
CjE0NDc0OiAgIGVEUF9UT19MVkRTX1JFQUxURUtfSUQgPSAweDAyLAoxNDQ3NDogfTsKMTQ0NzQ6
ICMgNjIwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13
YXJlLmgiCjE0NDc0OiBzdHJ1Y3QgYXRvbV9ncGlvX3Bpbl9hc3NpZ25tZW50CjE0NDc0OiB7CjE0
NDc0OiAgIHVpbnQzMl90IGRhdGFfYV9yZWdfaW5kZXg7CjE0NDc0OiAgIHVpbnQ4X3QgZ3Bpb19i
aXRzaGlmdDsKMTQ0NzQ6ICAgdWludDhfdCBncGlvX21hc2tfYml0c2hpZnQ7CjE0NDc0OiAgIHVp
bnQ4X3QgZ3Bpb19pZDsKMTQ0NzQ6ICAgdWludDhfdCByZXNlcnZlZDsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX2dwaW9fcGluX2Fzc2lnbm1lbnRfZ3Bpb19pZCB7
CjE0NDc0OiAgIEkyQ19IV19MQU5FX01VWCA9MHgwZiwKMTQ0NzQ6ICAgSTJDX0hXX0VOR0lORV9J
RF9NQVNLID0weDcwLAoxNDQ3NDogICBJMkNfSFdfQ0FQID0weDgwLAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogICBQQ0lFX1ZERENfQ09OVFJPTF9HUElPX1BJTklEID0gNTYsCjE0NDc0
OiAKMTQ0NzQ6ICAgUFBfQUNfRENfU1dJVENIX0dQSU9fUElOSUQgPSA2MCwKMTQ0NzQ6IAoxNDQ3
NDogICBWRERDX1ZSSE9UX0dQSU9fUElOSUQgPSA2MSwKMTQ0NzQ6IAoxNDQ3NDogICBWRERDX1BD
Q19HUElPX1BJTklEID0gNjIsCjE0NDc0OiAKMTQ0NzQ6ICAgRUZVU0VfQ1VUX0VOQUJMRV9HUElP
X1BJTklEID0gNjMsCjE0NDc0OiAKMTQ0NzQ6ICAgRFJBTV9TRUxGX1JFRlJFU0hfR1BJT19QSU5J
RCA9IDY0LAoxNDQ3NDogCjE0NDc0OiAgIFRIRVJNQUxfSU5UX09VVFBVVF9HUElPX1BJTklEID02
NSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fZ3Bpb19waW5f
bHV0X3YyXzEKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRl
ciB0YWJsZV9oZWFkZXI7CjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IGF0b21fZ3Bpb19waW5fYXNz
aWdubWVudCBncGlvX3Bpbls4XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDY2NyAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgoxNDQ3NDogc3RydWN0
IHZyYW1fdXNhZ2VieWZpcm13YXJlX3YyXzEKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21f
Y29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CjE0NDc0OiAgIHVpbnQzMl90IHN0YXJ0
X2FkZHJlc3NfaW5fa2I7CjE0NDc0OiAgIHVpbnQxNl90IHVzZWRfYnlfZmlybXdhcmVfaW5fa2I7
CjE0NDc0OiAgIHVpbnQxNl90IHVzZWRfYnlfZHJpdmVyX2luX2tiOwoxNDQ3NDogfTsKMTQ0NzQ6
ICMgNjgyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13
YXJlLmgiCjE0NDc0OiBlbnVtIGF0b21fb2JqZWN0X3JlY29yZF90eXBlX2lkCjE0NDc0OiB7CjE0
NDc0OiAgIEFUT01fSTJDX1JFQ09SRF9UWVBFID0xLAoxNDQ3NDogICBBVE9NX0hQRF9JTlRfUkVD
T1JEX1RZUEUgPTIsCjE0NDc0OiAgIEFUT01fT0JKRUNUX0dQSU9fQ05UTF9SRUNPUkRfVFlQRSA9
OSwKMTQ0NzQ6ICAgQVRPTV9DT05ORUNUT1JfSFBEUElOX0xVVF9SRUNPUkRfVFlQRSA9MTYsCjE0
NDc0OiAgIEFUT01fQ09OTkVDVE9SX0FVWEREQ19MVVRfUkVDT1JEX1RZUEUgPTE3LAoxNDQ3NDog
ICBBVE9NX0VOQ09ERVJfQ0FQX1JFQ09SRF9UWVBFPTIwLAoxNDQ3NDogICBBVE9NX0JSQUNLRVRf
TEFZT1VUX1JFQ09SRF9UWVBFPTIxLAoxNDQ3NDogICBBVE9NX0NPTk5FQ1RPUl9GT1JDRURfVE1E
U19DQVBfUkVDT1JEX1RZUEU9MjIsCjE0NDc0OiAgIEFUT01fUkVDT1JEX0VORF9UWVBFID0weEZG
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fY29tbW9uX3JlY29yZF9oZWFk
ZXIKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDhfdCByZWNvcmRfdHlwZTsKMTQ0NzQ6ICAgdWludDhf
dCByZWNvcmRfc2l6ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2kyY19y
ZWNvcmQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3JlY29yZF9oZWFkZXIg
cmVjb3JkX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBpMmNfaWQ7CjE0NDc0OiAgIHVpbnQ4X3Qg
aTJjX3NsYXZlX2FkZHI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9ocGRf
aW50X3JlY29yZAoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fcmVjb3JkX2hl
YWRlciByZWNvcmRfaGVhZGVyOwoxNDQ3NDogICB1aW50OF90IHBpbl9pZDsKMTQ0NzQ6ICAgdWlu
dDhfdCBwbHVnaW5fcGluX3N0YXRlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
bnVtIGF0b21fZW5jb2Rlcl9jYXBzX2RlZgoxNDQ3NDogewoxNDQ3NDogICBBVE9NX0VOQ09ERVJf
Q0FQX1JFQ09SRF9IQlIyID0weDAxLAoxNDQ3NDogICBBVE9NX0VOQ09ERVJfQ0FQX1JFQ09SRF9N
U1RfRU4gPTB4MDEsCjE0NDc0OiAgIEFUT01fRU5DT0RFUl9DQVBfUkVDT1JEX0hCUjJfRU4gPTB4
MDIsCjE0NDc0OiAgIEFUT01fRU5DT0RFUl9DQVBfUkVDT1JEX0hETUk2R2Jwc19FTiA9MHgwNCwK
MTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NBUF9SRUNPUkRfSEJSM19FTiA9MHgwOCwKMTQ0NzQ6ICAg
QVRPTV9FTkNPREVSX0NBUF9SRUNPUkRfVVNCX0NfVFlQRSA9MHgxMDAsCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9lbmNvZGVyX2NhcHNfcmVjb3JkCjE0NDc0OiB7CjE0NDc0
OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7CjE0NDc0
OiAgIHVpbnQzMl90IGVuY29kZXJjYXBzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBh
dG9tX2Nvbm5lY3Rvcl9jYXBzX2RlZgoxNDQ3NDogewoxNDQ3NDogICBBVE9NX0NPTk5FQ1RPUl9D
QVBfSU5URVJOQUxfRElTUExBWSA9IDB4MDEsCjE0NDc0OiAgIEFUT01fQ09OTkVDVE9SX0NBUF9J
TlRFUk5BTF9ESVNQTEFZX0JMID0gMHgwMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBhdG9tX2Rpc3BfY29ubmVjdG9yX2NhcHNfcmVjb3JkCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVj
dCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7CjE0NDc0OiAgIHVpbnQz
Ml90IGNvbm5lY3RjYXBzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YXRvbV9ncGlvX3Bpbl9jb250cm9sX3BhaXIKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDhfdCBncGlv
X2lkOwoxNDQ3NDogICB1aW50OF90IGdwaW9fcGluc3RhdGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgYXRvbV9vYmplY3RfZ3Bpb19jbnRsX3JlY29yZAoxNDQ3NDogewoxNDQ3NDog
ICBzdHJ1Y3QgYXRvbV9jb21tb25fcmVjb3JkX2hlYWRlciByZWNvcmRfaGVhZGVyOwoxNDQ3NDog
ICB1aW50OF90IGZsYWc7CjE0NDc0OiAgIHVpbnQ4X3QgbnVtYmVyX29mX3BpbnM7CjE0NDc0OiAg
IHN0cnVjdCBhdG9tX2dwaW9fcGluX2NvbnRyb2xfcGFpciBncGlvWzFdOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZ3Bpb19waW5fY29udHJvbF9waW5zdGF0ZV9k
ZWYKMTQ0NzQ6IHsKMTQ0NzQ6ICAgR1BJT19QSU5fVFlQRV9JTlBVVCA9IDB4MDAsCjE0NDc0OiAg
IEdQSU9fUElOX1RZUEVfT1VUUFVUID0gMHgxMCwKMTQ0NzQ6ICAgR1BJT19QSU5fVFlQRV9IV19D
T05UUk9MID0gMHgyMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIEdQSU9fUElOX09VVFBVVF9T
VEFURV9NQVNLID0gMHgwMSwKMTQ0NzQ6ICAgR1BJT19QSU5fT1VUUFVUX1NUQVRFX1NISUZUID0g
MCwKMTQ0NzQ6ICAgR1BJT19QSU5fU1RBVEVfQUNUSVZFX0xPVyA9IDB4MCwKMTQ0NzQ6ICAgR1BJ
T19QSU5fU1RBVEVfQUNUSVZFX0hJR0ggPSAweDEsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX2dsc3luY19yZWNvcmRfZ3Bpb19pbmRleF9kZWYKMTQ0
NzQ6IHsKMTQ0NzQ6ICAgQVRPTV9HUElPX0lOREVYX0dMU1lOQ19SRUZDTEsgPSAwLAoxNDQ3NDog
ICBBVE9NX0dQSU9fSU5ERVhfR0xTWU5DX0hTWU5DID0gMSwKMTQ0NzQ6ICAgQVRPTV9HUElPX0lO
REVYX0dMU1lOQ19WU1lOQyA9IDIsCjE0NDc0OiAgIEFUT01fR1BJT19JTkRFWF9HTFNZTkNfU1dB
UF9SRVEgPSAzLAoxNDQ3NDogICBBVE9NX0dQSU9fSU5ERVhfR0xTWU5DX1NXQVBfR05UID0gNCwK
MTQ0NzQ6ICAgQVRPTV9HUElPX0lOREVYX0dMU1lOQ19JTlRFUlJVUFQgPSA1LAoxNDQ3NDogICBB
VE9NX0dQSU9fSU5ERVhfR0xTWU5DX1ZfUkVTRVQgPSA2LAoxNDQ3NDogICBBVE9NX0dQSU9fSU5E
RVhfR0xTWU5DX1NXQVBfQ05UTCA9IDcsCjE0NDc0OiAgIEFUT01fR1BJT19JTkRFWF9HTFNZTkNf
U1dBUF9TRUwgPSA4LAoxNDQ3NDogICBBVE9NX0dQSU9fSU5ERVhfR0xTWU5DX01BWCA9IDksCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2Nvbm5lY3Rvcl9ocGRw
aW5fbHV0X3JlY29yZAoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fcmVjb3Jk
X2hlYWRlciByZWNvcmRfaGVhZGVyOwoxNDQ3NDogICB1aW50OF90IGhwZF9waW5fbWFwWzhdOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fY29ubmVjdG9yX2F1eGRkY19sdXRf
cmVjb3JkCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVy
IHJlY29yZF9oZWFkZXI7CjE0NDc0OiAgIHVpbnQ4X3QgYXV4X2RkY19tYXBbOF07CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9jb25uZWN0b3JfZm9yY2VkX3RtZHNfY2FwX3Jl
Y29yZAoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fcmVjb3JkX2hlYWRlciBy
ZWNvcmRfaGVhZGVyOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgbWF4dG1kc2Nsa3JhdGVfaW4y
XzVtaHo7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgYXRvbV9jb25uZWN0b3JfbGF5b3V0X2luZm8KMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWlu
dDE2X3QgY29ubmVjdG9yb2JqaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgY29ubmVjdG9yX3R5cGU7CjE0
NDc0OiAgIHVpbnQ4X3QgcG9zaXRpb247CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGVudW0gYXRvbV9jb25uZWN0b3JfbGF5b3V0X2luZm9fY29ubmVjdG9yX3R5cGVfZGVmCjE0NDc0
OiB7CjE0NDc0OiAgIENPTk5FQ1RPUl9UWVBFX0RWSV9EID0gMSwKMTQ0NzQ6IAoxNDQ3NDogICBD
T05ORUNUT1JfVFlQRV9IRE1JID0gNCwKMTQ0NzQ6ICAgQ09OTkVDVE9SX1RZUEVfRElTUExBWV9Q
T1JUID0gNSwKMTQ0NzQ6ICAgQ09OTkVDVE9SX1RZUEVfTUlOSV9ESVNQTEFZX1BPUlQgPSA2LAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fYnJhY2tldF9sYXlvdXRfcmVjb3Jk
CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29y
ZF9oZWFkZXI7CjE0NDc0OiAgIHVpbnQ4X3QgYnJhY2tldGxlbjsKMTQ0NzQ6ICAgdWludDhfdCBi
cmFja2V0d2lkdGg7CjE0NDc0OiAgIHVpbnQ4X3QgY29ubl9udW07CjE0NDc0OiAgIHVpbnQ4X3Qg
cmVzZXJ2ZWQ7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2Nvbm5lY3Rvcl9sYXlvdXRfaW5mbyBjb25u
X2luZm9bMV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZGlzcGxheV9kZXZp
Y2VfdGFnX2RlZnsKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0xDRDFfU1VQUE9SVCA9IDB4MDAwMiwK
MTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDFfU1VQUE9SVCA9IDB4MDAwOCwKMTQ0NzQ6ICAgQVRP
TV9ESVNQTEFZX0RGUDJfU1VQUE9SVCA9IDB4MDA4MCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RG
UDNfU1VQUE9SVCA9IDB4MDIwMCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDRfU1VQUE9SVCA9
IDB4MDQwMCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDVfU1VQUE9SVCA9IDB4MDgwMCwKMTQ0
NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDZfU1VQUE9SVCA9IDB4MDA0MCwKMTQ0NzQ6ICAgQVRPTV9E
SVNQTEFZX0RGUHhfU1VQUE9SVCA9IDB4MGVjOCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBhdG9tX2Rpc3BsYXlfb2JqZWN0X3BhdGhfdjIKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDE2
X3QgZGlzcGxheV9vYmppZDsKMTQ0NzQ6ICAgdWludDE2X3QgZGlzcF9yZWNvcmRvZmZzZXQ7CjE0
NDc0OiAgIHVpbnQxNl90IGVuY29kZXJvYmppZDsKMTQ0NzQ6ICAgdWludDE2X3QgZXh0ZW5jb2Rl
cm9iamlkOwoxNDQ3NDogICB1aW50MTZfdCBlbmNvZGVyX3JlY29yZG9mZnNldDsKMTQ0NzQ6ICAg
dWludDE2X3QgZXh0ZW5jb2Rlcl9yZWNvcmRvZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IGRldmlj
ZV90YWc7CjE0NDc0OiAgIHVpbnQ4X3QgcHJpb3JpdHlfaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgcmVz
ZXJ2ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGlzcGxheV9vYmplY3RfaW5m
b190YWJsZV92MV80CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9o
ZWFkZXIgdGFibGVfaGVhZGVyOwoxNDQ3NDogICB1aW50MTZfdCBzdXBwb3J0ZWRkZXZpY2VzOwox
NDQ3NDogICB1aW50OF90IG51bWJlcl9vZl9wYXRoOwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVk
OwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9kaXNwbGF5X29iamVjdF9wYXRoX3YyIGRpc3BsYXlfcGF0
aFs4XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2Rpc3BsYXlfY29udHJvbGxlcl9pbmZv
X3Y0XzEKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0
YWJsZV9oZWFkZXI7CjE0NDc0OiAgIHVpbnQzMl90IGRpc3BsYXlfY2FwczsKMTQ0NzQ6ICAgdWlu
dDMyX3QgYm9vdHVwX2Rpc3BjbGtfMTBraHo7CjE0NDc0OiAgIHVpbnQxNl90IGRjZV9yZWZjbGtf
MTBraHo7CjE0NDc0OiAgIHVpbnQxNl90IGkyY19lbmdpbmVfcmVmY2xrXzEwa2h6OwoxNDQ3NDog
ICB1aW50MTZfdCBkdmlfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgZHZpX3NzX3Jh
dGVfMTBoejsKMTQ0NzQ6ICAgdWludDE2X3QgaGRtaV9zc19wZXJjZW50YWdlOwoxNDQ3NDogICB1
aW50MTZfdCBoZG1pX3NzX3JhdGVfMTBoejsKMTQ0NzQ6ICAgdWludDE2X3QgZHBfc3NfcGVyY2Vu
dGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgZHBfc3NfcmF0ZV8xMGh6OwoxNDQ3NDogICB1aW50OF90
IGR2aV9zc19tb2RlOwoxNDQ3NDogICB1aW50OF90IGhkbWlfc3NfbW9kZTsKMTQ0NzQ6ICAgdWlu
dDhfdCBkcF9zc19tb2RlOwoxNDQ3NDogICB1aW50OF90IHNzX3Jlc2VydmVkOwoxNDQ3NDogICB1
aW50OF90IGhhcmRjb2RlX21vZGVfbnVtOwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVkMVszXTsK
MTQ0NzQ6ICAgdWludDE2X3QgZHBwaHlfcmVmY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MTZfdCBy
ZXNlcnZlZDI7CjE0NDc0OiAgIHVpbnQ4X3QgZGNlaXBfbWluX3ZlcjsKMTQ0NzQ6ICAgdWludDhf
dCBkY2VpcF9tYXhfdmVyOwoxNDQ3NDogICB1aW50OF90IG1heF9kaXNwX3BpcGVfbnVtOwoxNDQ3
NDogICB1aW50OF90IG1heF92Ymlvc19hY3RpdmVfZGlzcF9waXBlX251bTsKMTQ0NzQ6ICAgdWlu
dDhfdCBtYXhfcHBsbF9udW07CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X2Rpc3BfcGh5X251bTsKMTQ0
NzQ6ICAgdWludDhfdCBtYXhfYXV4X3BhaXJzOwoxNDQ3NDogICB1aW50OF90IHJlbW90ZWRpc3Bs
YXljb25maWc7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQzWzhdOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9kaXNwbGF5X2NvbnRyb2xsZXJfaW5mb192NF8y
CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVf
aGVhZGVyOwoxNDQ3NDogICB1aW50MzJfdCBkaXNwbGF5X2NhcHM7CjE0NDc0OiAgIHVpbnQzMl90
IGJvb3R1cF9kaXNwY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MTZfdCBkY2VfcmVmY2xrXzEwa2h6
OwoxNDQ3NDogICB1aW50MTZfdCBpMmNfZW5naW5lX3JlZmNsa18xMGtoejsKMTQ0NzQ6ICAgdWlu
dDE2X3QgZHZpX3NzX3BlcmNlbnRhZ2U7CjE0NDc0OiAgIHVpbnQxNl90IGR2aV9zc19yYXRlXzEw
aHo7CjE0NDc0OiAgIHVpbnQxNl90IGhkbWlfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2
X3QgaGRtaV9zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVpbnQxNl90IGRwX3NzX3BlcmNlbnRhZ2U7
CjE0NDc0OiAgIHVpbnQxNl90IGRwX3NzX3JhdGVfMTBoejsKMTQ0NzQ6ICAgdWludDhfdCBkdmlf
c3NfbW9kZTsKMTQ0NzQ6ICAgdWludDhfdCBoZG1pX3NzX21vZGU7CjE0NDc0OiAgIHVpbnQ4X3Qg
ZHBfc3NfbW9kZTsKMTQ0NzQ6ICAgdWludDhfdCBzc19yZXNlcnZlZDsKMTQ0NzQ6ICAgdWludDhf
dCBkZnBfaGFyZGNvZGVfbW9kZV9udW07CjE0NDc0OiAgIHVpbnQ4X3QgZGZwX2hhcmRjb2RlX3Jl
ZnJlc2hyYXRlOwoxNDQ3NDogICB1aW50OF90IHZnYV9oYXJkY29kZV9tb2RlX251bTsKMTQ0NzQ6
ICAgdWludDhfdCB2Z2FfaGFyZGNvZGVfcmVmcmVzaHJhdGU7CjE0NDc0OiAgIHVpbnQxNl90IGRw
cGh5X3JlZmNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDE2X3QgcmVzZXJ2ZWQyOwoxNDQ3NDogICB1
aW50OF90IGRjbmlwX21pbl92ZXI7CjE0NDc0OiAgIHVpbnQ4X3QgZGNuaXBfbWF4X3ZlcjsKMTQ0
NzQ6ICAgdWludDhfdCBtYXhfZGlzcF9waXBlX251bTsKMTQ0NzQ6ICAgdWludDhfdCBtYXhfdmJp
b3NfYWN0aXZlX2Rpc3BfcGlwZV9udW07CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X3BwbGxfbnVtOwox
NDQ3NDogICB1aW50OF90IG1heF9kaXNwX3BoeV9udW07CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X2F1
eF9wYWlyczsKMTQ0NzQ6ICAgdWludDhfdCByZW1vdGVkaXNwbGF5Y29uZmlnOwoxNDQ3NDogICB1
aW50OF90IHJlc2VydmVkM1s4XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBkY2VfaW5mb19jYXBzX2RlZgoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgIERDRV9JTkZPX0NB
UFNfRk9SQ0VfRElTUERFVl9DT05ORUNURUQgPTB4MDIsCjE0NDc0OiAKMTQ0NzQ6ICAgRENFX0lO
Rk9fQ0FQU19ESVNBQkxFX0RGUF9EUF9IQlIyID0weDA0LAoxNDQ3NDogCjE0NDc0OiAgIERDRV9J
TkZPX0NBUFNfRU5BQkxFX0lOVEVSTEFDX1RJTUlORyA9MHgwOCwKMTQ0NzQ6IAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBhdG9tX2V4dF9kaXNwbGF5X3BhdGgKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDE2X3QgZGV2
aWNlX3RhZzsKMTQ0NzQ6ICAgdWludDE2X3QgZGV2aWNlX2FjcGlfZW51bTsKMTQ0NzQ6ICAgdWlu
dDE2X3QgY29ubmVjdG9yb2JqaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgYXV4ZGRjbHV0X2luZGV4Owox
NDQ3NDogICB1aW50OF90IGhwZGx1dF9pbmRleDsKMTQ0NzQ6ICAgdWludDE2X3QgZXh0X2VuY29k
ZXJfb2JqaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgY2hhbm5lbG1hcHBpbmc7CjE0NDc0OiAgIHVpbnQ4
X3QgY2hwbmludmVydDsKMTQ0NzQ6ICAgdWludDE2X3QgY2FwczsKMTQ0NzQ6ICAgdWludDE2X3Qg
cmVzZXJ2ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZXh0X2Rpc3Bs
YXlfcGF0aF9jYXBfZGVmCjE0NDc0OiB7CjE0NDc0OiAgIEVYVF9ESVNQTEFZX1BBVEhfQ0FQU19f
SEJSMl9ESVNBQkxFID0weDAwMDEsCjE0NDc0OiAgIEVYVF9ESVNQTEFZX1BBVEhfQ0FQU19fRFBf
RklYRURfVlNfRU4gPTB4MDAwMiwKMTQ0NzQ6ICAgRVhUX0RJU1BMQVlfUEFUSF9DQVBTX19FWFRf
Q0hJUF9NQVNLID0weDAwN0MsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9l
eHRlcm5hbF9kaXNwbGF5X2Nvbm5lY3Rpb25faW5mbwoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3Qg
YXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBn
dWlkWzE2XTsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fZXh0X2Rpc3BsYXlfcGF0aCBwYXRoWzddOwox
NDQ3NDogICB1aW50OF90IGNoZWNrc3VtOwoxNDQ3NDogICB1aW50OF90IHN0ZXJlb3BpbmlkOwox
NDQ3NDogICB1aW50OF90IHJlbW90ZWRpc3BsYXljb25maWc7CjE0NDc0OiAgIHVpbnQ4X3QgZWRw
dG9sdmRzcnhpZDsKMTQ0NzQ6ICAgdWludDhfdCBmaXhkcHZvbHRhZ2Vzd2luZzsKMTQ0NzQ6ICAg
dWludDhfdCByZXNlcnZlZFszXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2NhbWVyYV9k
cGh5X3RpbWluZ19wYXJhbQoxNDQ3NDogewoxNDQ3NDogICB1aW50OF90IHByb2ZpbGVfaWQ7CjE0
NDc0OiAgIHVpbnQzMl90IHBhcmFtOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0
b21fY2FtZXJhX2RwaHlfZWxlY19wYXJhbQoxNDQ3NDogewoxNDQ3NDogICB1aW50MTZfdCBwYXJh
bVszXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2NhbWVyYV9tb2R1bGVf
aW5mbwoxNDQ3NDogewoxNDQ3NDogICB1aW50OF90IG1vZHVsZV9pZDsKMTQ0NzQ6ICAgdWludDhf
dCBtb2R1bGVfbmFtZVs4XTsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY2FtZXJhX2RwaHlfdGltaW5n
X3BhcmFtIHRpbWluZ3BhcmFtWzZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0
b21fY2FtZXJhX2ZsYXNobGlnaHRfaW5mbwoxNDQ3NDogewoxNDQ3NDogICB1aW50OF90IGZsYXNo
bGlnaHRfaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgbmFtZVs4XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBhdG9tX2NhbWVyYV9kYXRhCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQzMl90IHZl
cnNpb25Db2RlOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jYW1lcmFfbW9kdWxlX2luZm8gY2FtZXJh
SW5mb1szXTsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY2FtZXJhX2ZsYXNobGlnaHRfaW5mbyBmbGFz
aEluZm87CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NhbWVyYV9kcGh5X2VsZWNfcGFyYW0gZHBoeV9w
YXJhbTsKMTQ0NzQ6ICAgdWludDMyX3QgY3JjX3ZhbDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGF0b21fMTRubV9kcHBoeV9kdmloZG1pX3R1bmluZ3NldAoxNDQ3NDog
ewoxNDQ3NDogICB1aW50MzJfdCBtYXhfc3ltY2xrX2luMTBraHo7CjE0NDc0OiAgIHVpbnQ4X3Qg
ZW5jb2Rlcl9tb2RlOwoxNDQ3NDogICB1aW50OF90IHBoeV9zZWw7CjE0NDc0OiAgIHVpbnQxNl90
IG1hcmdpbmRlZW1waDsKMTQ0NzQ6ICAgdWludDhfdCBkZWVtcGhfNmRiXzQ7CjE0NDc0OiAgIHVp
bnQ4X3QgYm9vc3RhZGo7CjE0NDc0OiAgIHVpbnQ4X3QgdHhfZHJpdmVyX2ZpZnR5X29obXM7CjE0
NDc0OiAgIHVpbnQ4X3QgZGVlbXBoX3NlbDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBhdG9tXzE0bm1fZHBwaHlfZHBfc2V0dGluZ3sKMTQ0NzQ6ICAgdWludDhfdCBkcF92c19wZW1w
aF9sZXZlbDsKMTQ0NzQ6ICAgdWludDE2X3QgbWFyZ2luZGVlbXBoOwoxNDQ3NDogICB1aW50OF90
IGRlZW1waF82ZGJfNDsKMTQ0NzQ6ICAgdWludDhfdCBib29zdGFkajsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHBfdHVuaW5nc2V0ewoxNDQ3NDogICB1
aW50OF90IHBoeV9zZWw7CjE0NDc0OiAgIHVpbnQ4X3QgdmVyc2lvbjsKMTQ0NzQ6ICAgdWludDE2
X3QgdGFibGVfc2l6ZTsKMTQ0NzQ6ICAgdWludDE2X3QgcmVzZXJ2ZWQ7CjE0NDc0OiAgIHN0cnVj
dCBhdG9tXzE0bm1fZHBwaHlfZHBfc2V0dGluZyBkcHR1bmluZ1sxMF07CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV8xNG5tX2RpZ190cmFuc21pdHRlcl9pbmZvX2hlYWRlcl92
NF8wewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRl
cjsKMTQ0NzQ6ICAgdWludDE2X3QgcGNpZV9waHlfdG1kc19oZG1pX21hY3JvX3NldHRpbmdzX29m
ZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgdW5pcGh5X3ZzX2VtcGhfbG9va3VwX3RhYmxlX29mZnNl
dDsKMTQ0NzQ6ICAgdWludDE2X3QgdW5pcGh5X3hiYXJfc2V0dGluZ3NfdGFibGVfb2Zmc2V0Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fMTRubV9jb21icGh5X3RtZHNfdnNf
c2V0CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3Qgc3ltX2NsazsKMTQ0NzQ6ICAgdWludDhfdCBk
aWdfbW9kZTsKMTQ0NzQ6ICAgdWludDhfdCBwaHlfc2VsOwoxNDQ3NDogICB1aW50MTZfdCBjb21t
b25fbWFyX2RlZW1waF9ub21fX21hcmdpbl9kZWVtcGhfdmFsOwoxNDQ3NDogICB1aW50OF90IGNv
bW1vbl9zZWxkZWVtcGg2MF9fZGVlbXBoXzZkYl80X3ZhbDsKMTQ0NzQ6ICAgdWludDhfdCBjbWRf
YnVzX2dsb2JhbF9mb3JfdHhfbGFuZTBfX2Jvb3N0YWRqX3ZhbCA7CjE0NDc0OiAgIHVpbnQ4X3Qg
Y29tbW9uX3pjYWxjb2RlX2N0cmxfX3R4X2RyaXZlcl9maWZ0eV9vaG1zX3ZhbDsKMTQ0NzQ6ICAg
dWludDhfdCBtYXJnaW5fZGVlbXBoX2xhbmUwX19kZWVtcGhfc2VsX3ZhbDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2kyY19yZWdfaW5mbyB7CjE0NDc0OiAgIHVpbnQ4X3Qg
dWNJMmNSZWdJbmRleDsKMTQ0NzQ6ICAgdWludDhfdCB1Y0kyY1JlZ1ZhbDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2hkbWlfcmV0aW1lcl9yZWRyaXZlcl9zZXQgewoxNDQ3
NDogICB1aW50OF90IEhkbWlTbHZBZGRyOwoxNDQ3NDogICB1aW50OF90IEhkbWlSZWdOdW07CjE0
NDc0OiAgIHVpbnQ4X3QgSGRtaTZHUmVnTnVtOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9pMmNfcmVn
X2luZm8gSGRtaVJlZ1NldHRpbmdbOV07CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2kyY19yZWdfaW5m
byBIZG1pNkdoelJlZ1NldHRpbmdbM107CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YXRvbV9pbnRlZ3JhdGVkX3N5c3RlbV9pbmZvX3YxXzExCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVj
dCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwoxNDQ3NDogICB1aW50MzJf
dCB2Ymlvc19taXNjOwoxNDQ3NDogICB1aW50MzJfdCBncHVjYXBpbmZvOwoxNDQ3NDogICB1aW50
MzJfdCBzeXN0ZW1fY29uZmlnOwoxNDQ3NDogICB1aW50MzJfdCBjcHVjYXBpbmZvOwoxNDQ3NDog
ICB1aW50MTZfdCBncHVjbGtfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgZ3B1Y2xr
X3NzX3R5cGU7CjE0NDc0OiAgIHVpbnQxNl90IGx2ZHNfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAg
dWludDE2X3QgbHZkc19zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVpbnQxNl90IGhkbWlfc3NfcGVy
Y2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgaGRtaV9zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVp
bnQxNl90IGR2aV9zc19wZXJjZW50YWdlOwoxNDQ3NDogICB1aW50MTZfdCBkdmlfc3NfcmF0ZV8x
MGh6OwoxNDQ3NDogICB1aW50MTZfdCBkcHBoeV9vdmVycmlkZTsKMTQ0NzQ6ICAgdWludDE2X3Qg
bHZkc19taXNjOwoxNDQ3NDogICB1aW50MTZfdCBiYWNrbGlnaHRfcHdtX2h6OwoxNDQ3NDogICB1
aW50OF90IG1lbW9yeXR5cGU7CjE0NDc0OiAgIHVpbnQ4X3QgdW1hY2hhbm5lbG51bWJlcjsKMTQ0
NzQ6ICAgdWludDhfdCBwd3Jfb25fZGlnb25fdG9fZGU7CjE0NDc0OiAgIHVpbnQ4X3QgcHdyX29u
X2RlX3RvX3ZhcnlfYmw7CjE0NDc0OiAgIHVpbnQ4X3QgcHdyX2Rvd25fdmFyeV9ibG9mZl90b19k
ZTsKMTQ0NzQ6ICAgdWludDhfdCBwd3JfZG93bl9kZV90b19kaWdvZmY7CjE0NDc0OiAgIHVpbnQ4
X3QgcHdyX29mZl9kZWxheTsKMTQ0NzQ6ICAgdWludDhfdCBwd3Jfb25fdmFyeV9ibF90b19ibG9u
OwoxNDQ3NDogICB1aW50OF90IHB3cl9kb3duX2Jsb2ZmX3RvX3ZhcnlfYmxvZmY7CjE0NDc0OiAg
IHVpbnQ4X3QgbWluX2FsbG93ZWRfYmxfbGV2ZWw7CjE0NDc0OiAgIHVpbnQ4X3QgaHRjX2h5c3Rf
bGltaXQ7CjE0NDc0OiAgIHVpbnQ4X3QgaHRjX3RtcF9saW1pdDsKMTQ0NzQ6ICAgdWludDhfdCBy
ZXNlcnZlZDE7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQyOwoxNDQ3NDogICBzdHJ1Y3QgYXRv
bV9leHRlcm5hbF9kaXNwbGF5X2Nvbm5lY3Rpb25faW5mbyBleHRkaXNwY29ubmluZm87CjE0NDc0
OiAgIHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHZpaGRtaV90dW5pbmdzZXQgZHZpX3R1bmluZ3Nl
dDsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fMTRubV9kcHBoeV9kdmloZG1pX3R1bmluZ3NldCBoZG1p
X3R1bmluZ3NldDsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fMTRubV9kcHBoeV9kdmloZG1pX3R1bmlu
Z3NldCBoZG1pNmdfdHVuaW5nc2V0OwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2Rw
X3R1bmluZ3NldCBkcF90dW5pbmdzZXQ7CjE0NDc0OiAgIHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlf
ZHBfdHVuaW5nc2V0IGRwX2hicjNfdHVuaW5nc2V0OwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jYW1l
cmFfZGF0YSBjYW1lcmFfaW5mbzsKMTQ0NzQ6ICAgc3RydWN0IGF0b21faGRtaV9yZXRpbWVyX3Jl
ZHJpdmVyX3NldCBkcDBfcmV0aW1lcl9zZXQ7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2hkbWlfcmV0
aW1lcl9yZWRyaXZlcl9zZXQgZHAxX3JldGltZXJfc2V0OwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9o
ZG1pX3JldGltZXJfcmVkcml2ZXJfc2V0IGRwMl9yZXRpbWVyX3NldDsKMTQ0NzQ6ICAgc3RydWN0
IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3NldCBkcDNfcmV0aW1lcl9zZXQ7CjE0NDc0OiAg
IHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHBfdHVuaW5nc2V0IGRwX2hicl90dW5pbmdzZXQ7CjE0
NDc0OiAgIHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHBfdHVuaW5nc2V0IGRwX2hicjJfdHVuaW5n
c2V0OwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2RwX3R1bmluZ3NldCBlZHBfdHVu
aW5nc2V0OwoxNDQ3NDogICB1aW50MzJfdCByZXNlcnZlZFs2Nl07CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3N5c3RlbV92Ymlvc21pc2NfZGVmewox
NDQ3NDogICBJTlRFR1JBVEVEX1NZU1RFTV9JTkZPX19HRVRfRURJRF9DQUxMQkFDS19GVU5DX1NV
UFBPUlQgPSAweDAxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gYXRvbV9zeXN0ZW1fZ3B1Y2FwaW5mX2RlZnsKMTQ0NzQ6ICAgU1lTX0lORk9fR1BVQ0FQU19f
RU5BQkVMX0RGU19CWVBBU1MgPSAweDEwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBlbnVtIGF0b21fc3lzaW5mb19kcHBoeV9vdmVycmlkZV9kZWZ7CjE0NDc0OiAgIEFUT01fRU5B
QkxFX0RWSV9UVU5JTkdTRVQgPSAweDAxLAoxNDQ3NDogICBBVE9NX0VOQUJMRV9IRE1JX1RVTklO
R1NFVCA9IDB4MDIsCjE0NDc0OiAgIEFUT01fRU5BQkxFX0hETUk2R19UVU5JTkdTRVQgPSAweDA0
LAoxNDQ3NDogICBBVE9NX0VOQUJMRV9EUF9UVU5JTkdTRVQgPSAweDA4LAoxNDQ3NDogICBBVE9N
X0VOQUJMRV9EUF9IQlIzX1RVTklOR1NFVCA9IDB4MTAsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGVudW0gYXRvbV9zeXNfaW5mb19sdmRzX21pc2NfZGVmCjE0NDc0OiB7CjE0NDc0
OiAgIFNZU19JTkZPX0xWRFNfTUlTQ184ODhfRlBESV9NT0RFID0weDAxLAoxNDQ3NDogICBTWVNf
SU5GT19MVkRTX01JU0NfODg4X0JQQ19NT0RFID0weDA0LAoxNDQ3NDogICBTWVNfSU5GT19MVkRT
X01JU0NfT1ZFUlJJREVfRU4gPTB4MDgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBhdG9tX2RtaV90MTdfbWVtX3R5cGVfZGVmewoxNDQ3NDogICBPdGhlck1l
bVR5cGUgPSAweDAxLAoxNDQ3NDogICBVbmtub3duTWVtVHlwZSwKMTQ0NzQ6ICAgRHJhbU1lbVR5
cGUsCjE0NDc0OiAgIEVkcmFtTWVtVHlwZSwKMTQ0NzQ6ICAgVnJhbU1lbVR5cGUsCjE0NDc0OiAg
IFNyYW1NZW1UeXBlLAoxNDQ3NDogICBSYW1NZW1UeXBlLAoxNDQ3NDogICBSb21NZW1UeXBlLAox
NDQ3NDogICBGbGFzaE1lbVR5cGUsCjE0NDc0OiAgIEVlcHJvbU1lbVR5cGUsCjE0NDc0OiAgIEZl
cHJvbU1lbVR5cGUsCjE0NDc0OiAgIEVwcm9tTWVtVHlwZSwKMTQ0NzQ6ICAgQ2RyYW1NZW1UeXBl
LAoxNDQ3NDogICBUaHJlZURyYW1NZW1UeXBlLAoxNDQ3NDogICBTZHJhbU1lbVR5cGUsCjE0NDc0
OiAgIFNncmFtTWVtVHlwZSwKMTQ0NzQ6ICAgUmRyYW1NZW1UeXBlLAoxNDQ3NDogICBEZHJNZW1U
eXBlLAoxNDQ3NDogICBEZHIyTWVtVHlwZSwKMTQ0NzQ6ICAgRGRyMkZiZGltbU1lbVR5cGUsCjE0
NDc0OiAgIERkcjNNZW1UeXBlID0gMHgxOCwKMTQ0NzQ6ICAgRmJkMk1lbVR5cGUsCjE0NDc0OiAg
IERkcjRNZW1UeXBlLAoxNDQ3NDogICBMcERkck1lbVR5cGUsCjE0NDc0OiAgIExwRGRyMk1lbVR5
cGUsCjE0NDc0OiAgIExwRGRyM01lbVR5cGUsCjE0NDc0OiAgIExwRGRyNE1lbVR5cGUsCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fZnVzaW9uX3N5
c3RlbV9pbmZvX3Y0CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2ludGVncmF0ZWRfc3lz
dGVtX2luZm9fdjFfMTEgc3lzaW5mbzsKMTQ0NzQ6ICAgdWludDMyX3QgcG93ZXJwbGF5aW5mb1sy
NTZdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTIxOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgoxNDQ3NDogc3RydWN0IGF0b21fZ2Z4X2luZm9f
djJfMgoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRh
YmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBnZnhpcF9taW5fdmVyOwoxNDQ3NDogICB1aW50
OF90IGdmeGlwX21heF92ZXI7CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X3NoYWRlcl9lbmdpbmVzOwox
NDQ3NDogICB1aW50OF90IG1heF90aWxlX3BpcGVzOwoxNDQ3NDogICB1aW50OF90IG1heF9jdV9w
ZXJfc2g7CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X3NoX3Blcl9zZTsKMTQ0NzQ6ICAgdWludDhfdCBt
YXhfYmFja2VuZHNfcGVyX3NlOwoxNDQ3NDogICB1aW50OF90IG1heF90ZXh0dXJlX2NoYW5uZWxf
Y2FjaGVzOwoxNDQ3NDogICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9zcmNfYWRkcjsKMTQ0NzQ6
ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFfc3JjX2FkZHJfaGk7CjE0NDc0OiAgIHVpbnQzMl90
IHJlZ2FkZHJfY3BfZG1hX2RzdF9hZGRyOwoxNDQ3NDogICB1aW50MzJfdCByZWdhZGRyX2NwX2Rt
YV9kc3RfYWRkcl9oaTsKMTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFfY29tbWFuZDsK
MTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9zdGF0dXM7CjE0NDc0OiAgIHVpbnQzMl90IHJl
Z2FkZHJfcmxjX2dwdV9jbG9ja18zMjsKMTQ0NzQ6ICAgdWludDMyX3QgcmxjX2dwdV90aW1lcl9y
ZWZjbGs7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9nZnhfaW5mb192Ml8z
IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7
CjE0NDc0OiAgIHVpbnQ4X3QgZ2Z4aXBfbWluX3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCBnZnhpcF9t
YXhfdmVyOwoxNDQ3NDogICB1aW50OF90IG1heF9zaGFkZXJfZW5naW5lczsKMTQ0NzQ6ICAgdWlu
dDhfdCBtYXhfdGlsZV9waXBlczsKMTQ0NzQ6ICAgdWludDhfdCBtYXhfY3VfcGVyX3NoOwoxNDQ3
NDogICB1aW50OF90IG1heF9zaF9wZXJfc2U7CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X2JhY2tlbmRz
X3Blcl9zZTsKMTQ0NzQ6ICAgdWludDhfdCBtYXhfdGV4dHVyZV9jaGFubmVsX2NhY2hlczsKMTQ0
NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFfc3JjX2FkZHI7CjE0NDc0OiAgIHVpbnQzMl90
IHJlZ2FkZHJfY3BfZG1hX3NyY19hZGRyX2hpOwoxNDQ3NDogICB1aW50MzJfdCByZWdhZGRyX2Nw
X2RtYV9kc3RfYWRkcjsKMTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFfZHN0X2FkZHJf
aGk7CjE0NDc0OiAgIHVpbnQzMl90IHJlZ2FkZHJfY3BfZG1hX2NvbW1hbmQ7CjE0NDc0OiAgIHVp
bnQzMl90IHJlZ2FkZHJfY3Bfc3RhdHVzOwoxNDQ3NDogICB1aW50MzJfdCByZWdhZGRyX3JsY19n
cHVfY2xvY2tfMzI7CjE0NDc0OiAgIHVpbnQzMl90IHJsY19ncHVfdGltZXJfcmVmY2xrOwoxNDQ3
NDogICB1aW50OF90IGFjdGl2ZV9jdV9wZXJfc2g7CjE0NDc0OiAgIHVpbnQ4X3QgYWN0aXZlX3Ji
X3Blcl9zZTsKMTQ0NzQ6ICAgdWludDE2X3QgZ2Nnb2xkZW5vZmZzZXQ7CjE0NDc0OiAgIHVpbnQz
Ml90IHJtMjFfc3JhbV92bWluX3ZhbHVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGF0b21fZ2Z4X2luZm9fdjJfNAoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25f
dGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBnZnhpcF9taW5fdmVy
OwoxNDQ3NDogICB1aW50OF90IGdmeGlwX21heF92ZXI7CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X3No
YWRlcl9lbmdpbmVzOwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVkOwoxNDQ3NDogICB1aW50OF90
IG1heF9jdV9wZXJfc2g7CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X3NoX3Blcl9zZTsKMTQ0NzQ6ICAg
dWludDhfdCBtYXhfYmFja2VuZHNfcGVyX3NlOwoxNDQ3NDogICB1aW50OF90IG1heF90ZXh0dXJl
X2NoYW5uZWxfY2FjaGVzOwoxNDQ3NDogICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9zcmNfYWRk
cjsKMTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFfc3JjX2FkZHJfaGk7CjE0NDc0OiAg
IHVpbnQzMl90IHJlZ2FkZHJfY3BfZG1hX2RzdF9hZGRyOwoxNDQ3NDogICB1aW50MzJfdCByZWdh
ZGRyX2NwX2RtYV9kc3RfYWRkcl9oaTsKMTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFf
Y29tbWFuZDsKMTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9zdGF0dXM7CjE0NDc0OiAgIHVp
bnQzMl90IHJlZ2FkZHJfcmxjX2dwdV9jbG9ja18zMjsKMTQ0NzQ6ICAgdWludDMyX3QgcmxjX2dw
dV90aW1lcl9yZWZjbGs7CjE0NDc0OiAgIHVpbnQ4X3QgYWN0aXZlX2N1X3Blcl9zaDsKMTQ0NzQ6
ICAgdWludDhfdCBhY3RpdmVfcmJfcGVyX3NlOwoxNDQ3NDogICB1aW50MTZfdCBnY2dvbGRlbm9m
ZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgZ2NfbnVtX2dwcnM7CjE0NDc0OiAgIHVpbnQxNl90IGdj
X2dzcHJpbV9idWZmX2RlcHRoOwoxNDQ3NDogICB1aW50MTZfdCBnY19wYXJhbWV0ZXJfY2FjaGVf
ZGVwdGg7CjE0NDc0OiAgIHVpbnQxNl90IGdjX3dhdmVfc2l6ZTsKMTQ0NzQ6ICAgdWludDE2X3Qg
Z2NfbWF4X3dhdmVzX3Blcl9zaW1kOwoxNDQ3NDogICB1aW50MTZfdCBnY19sZHNfc2l6ZTsKMTQ0
NzQ6ICAgdWludDhfdCBnY19udW1fbWF4X2dzX3RoZHM7CjE0NDc0OiAgIHVpbnQ4X3QgZ2NfZ3Nf
dGFibGVfZGVwdGg7CjE0NDc0OiAgIHVpbnQ4X3QgZ2NfZG91YmxlX29mZmNoaXBfbGRzX2J1ZmZl
cjsKMTQ0NzQ6ICAgdWludDhfdCBnY19tYXhfc2NyYXRjaF9zbG90c19wZXJfY3U7CjE0NDc0OiAg
IHVpbnQzMl90IHNyYW1fcm1fZnVzZXNfdmFsOwoxNDQ3NDogICB1aW50MzJfdCBzcmFtX2N1c3Rv
bV9ybV9mdXNlc192YWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fc211X2luZm9fdjNfMQoxNDQ3NDog
ewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsK
MTQ0NzQ6ICAgdWludDhfdCBzbXVpcF9taW5fdmVyOwoxNDQ3NDogICB1aW50OF90IHNtdWlwX21h
eF92ZXI7CjE0NDc0OiAgIHVpbnQ4X3Qgc211X3JzZDE7CjE0NDc0OiAgIHVpbnQ4X3QgZ3B1Y2xr
X3NzX21vZGU7CjE0NDc0OiAgIHVpbnQxNl90IHNjbGtfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAg
dWludDE2X3Qgc2Nsa19zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVpbnQxNl90IGdwdWNsa19zc19w
ZXJjZW50YWdlOwoxNDQ3NDogICB1aW50MTZfdCBncHVjbGtfc3NfcmF0ZV8xMGh6OwoxNDQ3NDog
ICB1aW50MzJfdCBjb3JlX3JlZmNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDhfdCBhY19kY19ncGlv
X2JpdDsKMTQ0NzQ6ICAgdWludDhfdCBhY19kY19wb2xhcml0eTsKMTQ0NzQ6ICAgdWludDhfdCB2
cjBob3RfZ3Bpb19iaXQ7CjE0NDc0OiAgIHVpbnQ4X3QgdnIwaG90X3BvbGFyaXR5OwoxNDQ3NDog
ICB1aW50OF90IHZyMWhvdF9ncGlvX2JpdDsKMTQ0NzQ6ICAgdWludDhfdCB2cjFob3RfcG9sYXJp
dHk7CjE0NDc0OiAgIHVpbnQ4X3QgZndfY3RmX2dwaW9fYml0OwoxNDQ3NDogICB1aW50OF90IGZ3
X2N0Zl9wb2xhcml0eTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3NtdV9p
bmZvX3YzXzIgewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxl
X2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBzbXVpcF9taW5fdmVyOwoxNDQ3NDogICB1aW50OF90
IHNtdWlwX21heF92ZXI7CjE0NDc0OiAgIHVpbnQ4X3Qgc211X3JzZDE7CjE0NDc0OiAgIHVpbnQ4
X3QgZ3B1Y2xrX3NzX21vZGU7CjE0NDc0OiAgIHVpbnQxNl90IHNjbGtfc3NfcGVyY2VudGFnZTsK
MTQ0NzQ6ICAgdWludDE2X3Qgc2Nsa19zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVpbnQxNl90IGdw
dWNsa19zc19wZXJjZW50YWdlOwoxNDQ3NDogICB1aW50MTZfdCBncHVjbGtfc3NfcmF0ZV8xMGh6
OwoxNDQ3NDogICB1aW50MzJfdCBjb3JlX3JlZmNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDhfdCBh
Y19kY19ncGlvX2JpdDsKMTQ0NzQ6ICAgdWludDhfdCBhY19kY19wb2xhcml0eTsKMTQ0NzQ6ICAg
dWludDhfdCB2cjBob3RfZ3Bpb19iaXQ7CjE0NDc0OiAgIHVpbnQ4X3QgdnIwaG90X3BvbGFyaXR5
OwoxNDQ3NDogICB1aW50OF90IHZyMWhvdF9ncGlvX2JpdDsKMTQ0NzQ6ICAgdWludDhfdCB2cjFo
b3RfcG9sYXJpdHk7CjE0NDc0OiAgIHVpbnQ4X3QgZndfY3RmX2dwaW9fYml0OwoxNDQ3NDogICB1
aW50OF90IGZ3X2N0Zl9wb2xhcml0eTsKMTQ0NzQ6ICAgdWludDhfdCBwY2NfZ3Bpb19iaXQ7CjE0
NDc0OiAgIHVpbnQ4X3QgcGNjX2dwaW9fcG9sYXJpdHk7CjE0NDc0OiAgIHVpbnQxNl90IHNtdWdv
bGRlbm9mZnNldDsKMTQ0NzQ6ICAgdWludDMyX3QgZ3B1cGxsX3Zjb19mcmVxXzEwa2h6OwoxNDQ3
NDogICB1aW50MzJfdCBib290dXBfc21uY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBib290
dXBfc29jY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBib290dXBfbXAwY2xrXzEwa2h6Owox
NDQ3NDogICB1aW50MzJfdCBib290dXBfbXAxY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBi
b290dXBfbGNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDMyX3QgYm9vdHVwX2RjZWZjbGtfMTBraHo7
CjE0NDc0OiAgIHVpbnQzMl90IGN0Zl90aHJlc2hvbGRfb3ZlcnJpZGVfdmFsdWU7CjE0NDc0OiAg
IHVpbnQzMl90IHJlc2VydmVkWzVdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0
b21fc211X2luZm9fdjNfMyB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFk
ZXIgdGFibGVfaGVhZGVyOwoxNDQ3NDogICB1aW50OF90IHNtdWlwX21pbl92ZXI7CjE0NDc0OiAg
IHVpbnQ4X3Qgc211aXBfbWF4X3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCB3YWZsY2xrX3NzX21vZGU7
CjE0NDc0OiAgIHVpbnQ4X3QgZ3B1Y2xrX3NzX21vZGU7CjE0NDc0OiAgIHVpbnQxNl90IHNjbGtf
c3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3Qgc2Nsa19zc19yYXRlXzEwaHo7CjE0NDc0
OiAgIHVpbnQxNl90IGdwdWNsa19zc19wZXJjZW50YWdlOwoxNDQ3NDogICB1aW50MTZfdCBncHVj
bGtfc3NfcmF0ZV8xMGh6OwoxNDQ3NDogICB1aW50MzJfdCBjb3JlX3JlZmNsa18xMGtoejsKMTQ0
NzQ6ICAgdWludDhfdCBhY19kY19ncGlvX2JpdDsKMTQ0NzQ6ICAgdWludDhfdCBhY19kY19wb2xh
cml0eTsKMTQ0NzQ6ICAgdWludDhfdCB2cjBob3RfZ3Bpb19iaXQ7CjE0NDc0OiAgIHVpbnQ4X3Qg
dnIwaG90X3BvbGFyaXR5OwoxNDQ3NDogICB1aW50OF90IHZyMWhvdF9ncGlvX2JpdDsKMTQ0NzQ6
ICAgdWludDhfdCB2cjFob3RfcG9sYXJpdHk7CjE0NDc0OiAgIHVpbnQ4X3QgZndfY3RmX2dwaW9f
Yml0OwoxNDQ3NDogICB1aW50OF90IGZ3X2N0Zl9wb2xhcml0eTsKMTQ0NzQ6ICAgdWludDhfdCBw
Y2NfZ3Bpb19iaXQ7CjE0NDc0OiAgIHVpbnQ4X3QgcGNjX2dwaW9fcG9sYXJpdHk7CjE0NDc0OiAg
IHVpbnQxNl90IHNtdWdvbGRlbm9mZnNldDsKMTQ0NzQ6ICAgdWludDMyX3QgZ3B1cGxsX3Zjb19m
cmVxXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBib290dXBfc21uY2xrXzEwa2h6OwoxNDQ3NDog
ICB1aW50MzJfdCBib290dXBfc29jY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBib290dXBf
bXAwY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBib290dXBfbXAxY2xrXzEwa2h6OwoxNDQ3
NDogICB1aW50MzJfdCBib290dXBfbGNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDMyX3QgYm9vdHVw
X2RjZWZjbGtfMTBraHo7CjE0NDc0OiAgIHVpbnQzMl90IGN0Zl90aHJlc2hvbGRfb3ZlcnJpZGVf
dmFsdWU7CjE0NDc0OiAgIHVpbnQzMl90IHN5c3BsbDNfMF92Y29fZnJlcV8xMGtoejsKMTQ0NzQ6
ICAgdWludDMyX3Qgc3lzcGxsM18xX3Zjb19mcmVxXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBi
b290dXBfZmNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDMyX3QgYm9vdHVwX3dhZmxjbGtfMTBraHo7
CjE0NDc0OiAgIHVpbnQzMl90IHNtdV9pbmZvX2NhcHM7CjE0NDc0OiAgIHVpbnQxNl90IHdhZmxj
bGtfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3Qgc211aW5pdG9mZnNldDsKMTQ0NzQ6
ICAgdWludDMyX3QgcmVzZXJ2ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fc21jX2RwbV9pbmZvX3Y0
XzEKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJs
ZV9oZWFkZXI7CjE0NDc0OiAgIHVpbnQ4X3QgbGlxdWlkMV9pMmNfYWRkcmVzczsKMTQ0NzQ6ICAg
dWludDhfdCBsaXF1aWQyX2kyY19hZGRyZXNzOwoxNDQ3NDogICB1aW50OF90IHZyX2kyY19hZGRy
ZXNzOwoxNDQ3NDogICB1aW50OF90IHBseF9pMmNfYWRkcmVzczsKMTQ0NzQ6IAoxNDQ3NDogICB1
aW50OF90IGxpcXVpZF9pMmNfbGluZXNjbDsKMTQ0NzQ6ICAgdWludDhfdCBsaXF1aWRfaTJjX2xp
bmVzZGE7CjE0NDc0OiAgIHVpbnQ4X3QgdnJfaTJjX2xpbmVzY2w7CjE0NDc0OiAgIHVpbnQ4X3Qg
dnJfaTJjX2xpbmVzZGE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBwbHhfaTJjX2xpbmVzY2w7
CjE0NDc0OiAgIHVpbnQ4X3QgcGx4X2kyY19saW5lc2RhOwoxNDQ3NDogICB1aW50OF90IHZyc2Vu
c29ycHJlc2VudDsKMTQ0NzQ6ICAgdWludDhfdCBsaXF1aWRzZW5zb3JwcmVzZW50OwoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQxNl90IG1heHZvbHRhZ2VzdGVwZ2Z4OwoxNDQ3NDogICB1aW50MTZfdCBt
YXh2b2x0YWdlc3RlcHNvYzsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IHZkZGdmeHZybWFwcGlu
ZzsKMTQ0NzQ6ICAgdWludDhfdCB2ZGRzb2N2cm1hcHBpbmc7CjE0NDc0OiAgIHVpbnQ4X3QgdmRk
bWVtMHZybWFwcGluZzsKMTQ0NzQ6ICAgdWludDhfdCB2ZGRtZW0xdnJtYXBwaW5nOwoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQ4X3QgZ2Z4dWx2cGhhc2VzaGVkZGluZ21hc2s7CjE0NDc0OiAgIHVpbnQ4
X3Qgc29jdWx2cGhhc2VzaGVkZGluZ21hc2s7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZzhfdlsy
XTsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MTZfdCBnZnhtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50
OF90IGdmeG9mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeWdmeDsKMTQ0
NzQ6IAoxNDQ3NDogICB1aW50MTZfdCBzb2NtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50OF90IHNv
Y29mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeXNvYzsKMTQ0NzQ6IAox
NDQ3NDogICB1aW50MTZfdCBtZW0wbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0wb2Zm
c2V0OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMDsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MTZfdCBtZW0xbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0xb2Zmc2V0
OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMTsKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50OF90IGFjZGNncGlvOwoxNDQ3NDogICB1aW50OF90IGFjZGNwb2xhcml0eTsKMTQ0NzQ6
ICAgdWludDhfdCB2cjBob3RncGlvOwoxNDQ3NDogICB1aW50OF90IHZyMGhvdHBvbGFyaXR5Owox
NDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgdnIxaG90Z3BpbzsKMTQ0NzQ6ICAgdWludDhfdCB2cjFo
b3Rwb2xhcml0eTsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nMTsKMTQ0NzQ6ICAgdWludDhfdCBw
YWRkaW5nMjsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IGxlZHBpbjA7CjE0NDc0OiAgIHVpbnQ4
X3QgbGVkcGluMTsKMTQ0NzQ6ICAgdWludDhfdCBsZWRwaW4yOwoxNDQ3NDogICB1aW50OF90IHBh
ZGRpbmc4XzQ7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7
CjE0NDc0OiAgdWludDhfdCBwbGxnZnhjbGtzcHJlYWRwZXJjZW50OwoxNDQ3NDogIHVpbnQxNl90
IHBsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCB1Y2xrc3ByZWFk
ZW5hYmxlZDsKMTQ0NzQ6ICAgdWludDhfdCB1Y2xrc3ByZWFkcGVyY2VudDsKMTQ0NzQ6ICAgdWlu
dDE2X3QgdWNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBzb2NjbGtzcHJl
YWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90IHNvY2Nsa3NwcmVhZHBlcmNlbnQ7CjE0NDc0OiAg
IHVpbnQxNl90IHNvY2Nsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IGFjZ2dm
eGNsa3NwcmVhZGVuYWJsZWQ7CjE0NDc0OiAgdWludDhfdCBhY2dnZnhjbGtzcHJlYWRwZXJjZW50
OwoxNDQ3NDogIHVpbnQxNl90IGFjZ2dmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICB1
aW50OF90IFZyMl9JMkNfYWRkcmVzczsKMTQ0NzQ6ICB1aW50OF90IHBhZGRpbmdfdnIyWzNdOwox
NDQ3NDogCjE0NDc0OiAgdWludDMyX3QgYm9hcmRyZXNlcnZlZFs5XTsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YXRvbV9zbWNfZHBtX2luZm9fdjRfMwoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21t
b25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBsaXF1aWQxX2ky
Y19hZGRyZXNzOwoxNDQ3NDogICB1aW50OF90IGxpcXVpZDJfaTJjX2FkZHJlc3M7CjE0NDc0OiAg
IHVpbnQ4X3QgdnJfaTJjX2FkZHJlc3M7CjE0NDc0OiAgIHVpbnQ4X3QgcGx4X2kyY19hZGRyZXNz
OwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgbGlxdWlkX2kyY19saW5lc2NsOwoxNDQ3NDogICB1
aW50OF90IGxpcXVpZF9pMmNfbGluZXNkYTsKMTQ0NzQ6ICAgdWludDhfdCB2cl9pMmNfbGluZXNj
bDsKMTQ0NzQ6ICAgdWludDhfdCB2cl9pMmNfbGluZXNkYTsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50
OF90IHBseF9pMmNfbGluZXNjbDsKMTQ0NzQ6ICAgdWludDhfdCBwbHhfaTJjX2xpbmVzZGE7CjE0
NDc0OiAgIHVpbnQ4X3QgdnJzZW5zb3JwcmVzZW50OwoxNDQ3NDogICB1aW50OF90IGxpcXVpZHNl
bnNvcnByZXNlbnQ7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDE2X3QgbWF4dm9sdGFnZXN0ZXBnZng7
CjE0NDc0OiAgIHVpbnQxNl90IG1heHZvbHRhZ2VzdGVwc29jOwoxNDQ3NDogCjE0NDc0OiAgIHVp
bnQ4X3QgdmRkZ2Z4dnJtYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IHZkZHNvY3ZybWFwcGluZzsK
MTQ0NzQ6ICAgdWludDhfdCB2ZGRtZW0wdnJtYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IHZkZG1l
bTF2cm1hcHBpbmc7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBnZnh1bHZwaGFzZXNoZWRkaW5n
bWFzazsKMTQ0NzQ6ICAgdWludDhfdCBzb2N1bHZwaGFzZXNoZWRkaW5nbWFzazsKMTQ0NzQ6ICAg
dWludDhfdCBleHRlcm5hbHNlbnNvcnByZXNlbnQ7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZzhf
djsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MTZfdCBnZnhtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50
OF90IGdmeG9mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeWdmeDsKMTQ0
NzQ6IAoxNDQ3NDogICB1aW50MTZfdCBzb2NtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50OF90IHNv
Y29mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeXNvYzsKMTQ0NzQ6IAox
NDQ3NDogICB1aW50MTZfdCBtZW0wbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0wb2Zm
c2V0OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMDsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MTZfdCBtZW0xbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0xb2Zmc2V0
OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMTsKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50OF90IGFjZGNncGlvOwoxNDQ3NDogICB1aW50OF90IGFjZGNwb2xhcml0eTsKMTQ0NzQ6
ICAgdWludDhfdCB2cjBob3RncGlvOwoxNDQ3NDogICB1aW50OF90IHZyMGhvdHBvbGFyaXR5Owox
NDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgdnIxaG90Z3BpbzsKMTQ0NzQ6ICAgdWludDhfdCB2cjFo
b3Rwb2xhcml0eTsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nMTsKMTQ0NzQ6ICAgdWludDhfdCBw
YWRkaW5nMjsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IGxlZHBpbjA7CjE0NDc0OiAgIHVpbnQ4
X3QgbGVkcGluMTsKMTQ0NzQ6ICAgdWludDhfdCBsZWRwaW4yOwoxNDQ3NDogICB1aW50OF90IHBh
ZGRpbmc4XzQ7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBwbGxnZnhjbGtzcHJlYWRlbmFibGVk
OwoxNDQ3NDogICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7CjE0NDc0OiAgIHVpbnQx
Nl90IHBsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCB1Y2xrc3By
ZWFkZW5hYmxlZDsKMTQ0NzQ6ICAgdWludDhfdCB1Y2xrc3ByZWFkcGVyY2VudDsKMTQ0NzQ6ICAg
dWludDE2X3QgdWNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBmY2xrc3By
ZWFkZW5hYmxlZDsKMTQ0NzQ6ICAgdWludDhfdCBmY2xrc3ByZWFkcGVyY2VudDsKMTQ0NzQ6ICAg
dWludDE2X3QgZmNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBmbGxnZnhj
bGtzcHJlYWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90IGZsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7
CjE0NDc0OiAgIHVpbnQxNl90IGZsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAg
dWludDMyX3QgYm9hcmRyZXNlcnZlZFsxMF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qgc211ZHBtX2kyY2NvbnRyb2xsZXJjb25maWdfdCB7CjE0NDc0OiAgIHVpbnQzMl90IGVuYWJs
ZWQ7CjE0NDc0OiAgIHVpbnQzMl90IHNsYXZlYWRkcmVzczsKMTQ0NzQ6ICAgdWludDMyX3QgY29u
dHJvbGxlcnBvcnQ7CjE0NDc0OiAgIHVpbnQzMl90IGNvbnRyb2xsZXJuYW1lOwoxNDQ3NDogICB1
aW50MzJfdCB0aGVybWFsdGhyb3R0bGVyOwoxNDQ3NDogICB1aW50MzJfdCBpMmNwcm90b2NvbDsK
MTQ0NzQ6ICAgdWludDMyX3QgaTJjc3BlZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgYXRvbV9zbWNfZHBtX2luZm9fdjRfNAoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9j
b21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDMyX3QgaTJjX3Bh
ZGRpbmdbM107CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDE2X3QgbWF4dm9sdGFnZXN0ZXBnZng7CjE0
NDc0OiAgIHVpbnQxNl90IG1heHZvbHRhZ2VzdGVwc29jOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4
X3QgdmRkZ2Z4dnJtYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IHZkZHNvY3ZybWFwcGluZzsKMTQ0
NzQ6ICAgdWludDhfdCB2ZGRtZW0wdnJtYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IHZkZG1lbTF2
cm1hcHBpbmc7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBnZnh1bHZwaGFzZXNoZWRkaW5nbWFz
azsKMTQ0NzQ6ICAgdWludDhfdCBzb2N1bHZwaGFzZXNoZWRkaW5nbWFzazsKMTQ0NzQ6ICAgdWlu
dDhfdCBleHRlcm5hbHNlbnNvcnByZXNlbnQ7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZzhfdjsK
MTQ0NzQ6IAoxNDQ3NDogICB1aW50MTZfdCBnZnhtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50OF90
IGdmeG9mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeWdmeDsKMTQ0NzQ6
IAoxNDQ3NDogICB1aW50MTZfdCBzb2NtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50OF90IHNvY29m
ZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeXNvYzsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MTZfdCBtZW0wbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0wb2Zmc2V0
OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMDsKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50MTZfdCBtZW0xbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0xb2Zmc2V0Owox
NDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgIHVpbnQ4X3QgYWNkY2dwaW87CjE0NDc0OiAgIHVpbnQ4X3QgYWNkY3BvbGFyaXR5Owox
NDQ3NDogICB1aW50OF90IHZyMGhvdGdwaW87CjE0NDc0OiAgIHVpbnQ4X3QgdnIwaG90cG9sYXJp
dHk7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCB2cjFob3RncGlvOwoxNDQ3NDogICB1aW50OF90
IHZyMWhvdHBvbGFyaXR5OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmcxOwoxNDQ3NDogICB1aW50
OF90IHBhZGRpbmcyOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBsZWRwaW4wOwox
NDQ3NDogICB1aW50OF90IGxlZHBpbjE7CjE0NDc0OiAgIHVpbnQ4X3QgbGVkcGluMjsKMTQ0NzQ6
ICAgdWludDhfdCBwYWRkaW5nOF80OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBw
bGxnZnhjbGtzcHJlYWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZHBl
cmNlbnQ7CjE0NDc0OiAgIHVpbnQxNl90IHBsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogICB1aW50OF90IHVjbGtzcHJlYWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90
IHVjbGtzcHJlYWRwZXJjZW50OwoxNDQ3NDogICB1aW50MTZfdCB1Y2xrc3ByZWFkZnJlcTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgZmNsa3NwcmVhZGVuYWJsZWQ7CjE0NDc0OiAg
IHVpbnQ4X3QgZmNsa3NwcmVhZHBlcmNlbnQ7CjE0NDc0OiAgIHVpbnQxNl90IGZjbGtzcHJlYWRm
cmVxOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBmbGxnZnhjbGtzcHJlYWRlbmFi
bGVkOwoxNDQ3NDogICB1aW50OF90IGZsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7CjE0NDc0OiAgIHVp
bnQxNl90IGZsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1
Y3Qgc211ZHBtX2kyY2NvbnRyb2xsZXJjb25maWdfdCBpMmNjb250cm9sbGVyc1s3XTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IGJvYXJkcmVzZXJ2ZWRbMTBdOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBzbXVkcG1fdjRfNV9pMmNjb250cm9sbGVybmFtZV9lewoxNDQ3
NDogICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX05BTUVfVlJfR0ZYID0gMCwKMTQ0NzQ6ICAg
ICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9OQU1FX1ZSX1NPQywKMTQ0NzQ6ICAgICBTTUNfVjRf
NV9JMkNfQ09OVFJPTExFUl9OQU1FX1ZSX1ZERENJLAoxNDQ3NDogICAgIFNNQ19WNF81X0kyQ19D
T05UUk9MTEVSX05BTUVfVlJfTVZERCwKMTQ0NzQ6ICAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExF
Ul9OQU1FX0xJUVVJRDAsCjE0NDc0OiAgICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9M
SVFVSUQxLAoxNDQ3NDogICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX05BTUVfUExYLAoxNDQ3
NDogICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX05BTUVfU1BBUkUsCjE0NDc0OiAgICAgU01D
X1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9DT1VOVCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gc211ZHBtX3Y0XzVfaTJjY29udHJvbGxlcnRocm90dGxlcl9lewoxNDQ3NDogICAgIFNN
Q19WNF81X0kyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9UWVBFX05PTkUgPSAwLAoxNDQ3NDogICAg
IFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9WUl9HRlgsCjE0NDc0OiAgICAgU01D
X1Y0XzVfSTJDX0NPTlRST0xMRVJfVEhST1RUTEVSX1ZSX1NPQywKMTQ0NzQ6ICAgICBTTUNfVjRf
NV9JMkNfQ09OVFJPTExFUl9USFJPVFRMRVJfVlJfVkREQ0ksCjE0NDc0OiAgICAgU01DX1Y0XzVf
STJDX0NPTlRST0xMRVJfVEhST1RUTEVSX1ZSX01WREQsCjE0NDc0OiAgICAgU01DX1Y0XzVfSTJD
X0NPTlRST0xMRVJfVEhST1RUTEVSX0xJUVVJRDAsCjE0NDc0OiAgICAgU01DX1Y0XzVfSTJDX0NP
TlRST0xMRVJfVEhST1RUTEVSX0xJUVVJRDEsCjE0NDc0OiAgICAgU01DX1Y0XzVfSTJDX0NPTlRS
T0xMRVJfVEhST1RUTEVSX1BMWCwKMTQ0NzQ6ICAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9U
SFJPVFRMRVJfQ09VTlQsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHNtdWRwbV92NF81
X2kyY2NvbnRyb2xsZXJwcm90b2NvbF9lewoxNDQ3NDogICAgIFNNQ19WNF81X0kyQ19DT05UUk9M
TEVSX1BST1RPQ09MX1ZSXzAsCjE0NDc0OiAgICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfUFJP
VE9DT0xfVlJfMSwKMTQ0NzQ6ICAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9U
TVBfMCwKMTQ0NzQ6ICAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9UTVBfMSwK
MTQ0NzQ6ICAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9TUEFSRV8wLAoxNDQ3
NDogICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1BST1RPQ09MX1NQQVJFXzEsCjE0NDc0OiAg
ICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfUFJPVE9DT0xfQ09VTlQsCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3Qgc211ZHBtX2kyY19jb250cm9sbGVyX2NvbmZpZ192MgoxNDQ3NDog
ewoxNDQ3NDogICAgIHVpbnQ4X3QgRW5hYmxlZDsKMTQ0NzQ6ICAgICB1aW50OF90IFNwZWVkOwox
NDQ3NDogICAgIHVpbnQ4X3QgUGFkZGluZ1syXTsKMTQ0NzQ6ICAgICB1aW50MzJfdCBTbGF2ZUFk
ZHJlc3M7CjE0NDc0OiAgICAgdWludDhfdCBDb250cm9sbGVyUG9ydDsKMTQ0NzQ6ICAgICB1aW50
OF90IENvbnRyb2xsZXJOYW1lOwoxNDQ3NDogICAgIHVpbnQ4X3QgVGhlcm1hbFRocm90dGVyOwox
NDQ3NDogICAgIHVpbnQ4X3QgSTJjUHJvdG9jb2w7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgYXRvbV9zbWNfZHBtX2luZm9fdjRfNQoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRv
bV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgIHN0cnVjdCBzbXVkcG1faTJjX2NvbnRyb2xsZXJfY29uZmlnX3YyIEkyY0NvbnRyb2xsZXJz
WzhdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDE2X3QgTWF4Vm9sdGFnZVN0ZXBHZng7
CjE0NDc0OiAgIHVpbnQxNl90IE1heFZvbHRhZ2VTdGVwU29jOwoxNDQ3NDogCjE0NDc0OiAgIHVp
bnQ4X3QgVmRkR2Z4VnJNYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IFZkZFNvY1ZyTWFwcGluZzsK
MTQ0NzQ6ICAgdWludDhfdCBWZGRNZW0wVnJNYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IFZkZE1l
bTFWck1hcHBpbmc7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBHZnhVbHZQaGFzZVNoZWRkaW5n
TWFzazsKMTQ0NzQ6ICAgdWludDhfdCBTb2NVbHZQaGFzZVNoZWRkaW5nTWFzazsKMTQ0NzQ6ICAg
dWludDhfdCBFeHRlcm5hbFNlbnNvclByZXNlbnQ7CjE0NDc0OiAgIHVpbnQ4X3QgUGFkZGluZzhf
VjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQxNl90IEdmeE1heEN1cnJlbnQ7CjE0NDc0
OiAgIHVpbnQ4X3QgR2Z4T2Zmc2V0OwoxNDQ3NDogICB1aW50OF90IFBhZGRpbmdfVGVsZW1ldHJ5
R2Z4OwoxNDQ3NDogICB1aW50MTZfdCBTb2NNYXhDdXJyZW50OwoxNDQ3NDogICB1aW50OF90IFNv
Y09mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBQYWRkaW5nX1RlbGVtZXRyeVNvYzsKMTQ0NzQ6IAox
NDQ3NDogICB1aW50MTZfdCBNZW0wTWF4Q3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBNZW0wT2Zm
c2V0OwoxNDQ3NDogICB1aW50OF90IFBhZGRpbmdfVGVsZW1ldHJ5TWVtMDsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MTZfdCBNZW0xTWF4Q3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBNZW0xT2Zmc2V0
OwoxNDQ3NDogICB1aW50OF90IFBhZGRpbmdfVGVsZW1ldHJ5TWVtMTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQ4X3QgQWNEY0dwaW87CjE0NDc0OiAgIHVpbnQ4X3QgQWNEY1BvbGFyaXR5
OwoxNDQ3NDogICB1aW50OF90IFZSMEhvdEdwaW87CjE0NDc0OiAgIHVpbnQ4X3QgVlIwSG90UG9s
YXJpdHk7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBWUjFIb3RHcGlvOwoxNDQ3NDogICB1aW50
OF90IFZSMUhvdFBvbGFyaXR5OwoxNDQ3NDogICB1aW50OF90IEd0aHJHcGlvOwoxNDQ3NDogICB1
aW50OF90IEd0aHJQb2xhcml0eTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgTGVk
UGluMDsKMTQ0NzQ6ICAgdWludDhfdCBMZWRQaW4xOwoxNDQ3NDogICB1aW50OF90IExlZFBpbjI7
CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZzhfNDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVp
bnQ4X3QgUGxsR2Z4Y2xrU3ByZWFkRW5hYmxlZDsKMTQ0NzQ6ICAgdWludDhfdCBQbGxHZnhjbGtT
cHJlYWRQZXJjZW50OwoxNDQ3NDogICB1aW50MTZfdCBQbGxHZnhjbGtTcHJlYWRGcmVxOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBEZmxsR2Z4Y2xrU3ByZWFkRW5hYmxlZDsKMTQ0
NzQ6ICAgdWludDhfdCBEZmxsR2Z4Y2xrU3ByZWFkUGVyY2VudDsKMTQ0NzQ6ICAgdWludDE2X3Qg
RGZsbEdmeGNsa1NwcmVhZEZyZXE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IFVj
bGtTcHJlYWRFbmFibGVkOwoxNDQ3NDogICB1aW50OF90IFVjbGtTcHJlYWRQZXJjZW50OwoxNDQ3
NDogICB1aW50MTZfdCBVY2xrU3ByZWFkRnJlcTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVp
bnQ4X3QgU29jbGtTcHJlYWRFbmFibGVkOwoxNDQ3NDogICB1aW50OF90IFNvY2Nsa1NwcmVhZFBl
cmNlbnQ7CjE0NDc0OiAgIHVpbnQxNl90IFNvY2Nsa1NwcmVhZEZyZXE7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogICB1aW50MTZfdCBUb3RhbEJvYXJkUG93ZXI7CjE0NDc0OiAgIHVpbnQxNl90IEJv
YXJkUGFkZGluZzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IE12ZGRSYXRpbzsK
MTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBCb2FyZFJlc2VydmVkWzldOwoxNDQ3NDogCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9zbWNfZHBtX2luZm9fdjRfNgoxNDQ3NDog
ewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsK
MTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBpMmNfcGFkZGluZ1szXTsKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50MTZfdCBtYXh2b2x0YWdlc3RlcGdmeDsKMTQ0NzQ6ICAgdWludDE2X3QgbWF4dm9sdGFn
ZXN0ZXBzb2M7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCB2ZGRnZnh2cm1hcHBpbmc7CjE0NDc0
OiAgIHVpbnQ4X3QgdmRkc29jdnJtYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IHZkZG1lbXZybWFw
cGluZzsKMTQ0NzQ6ICAgdWludDhfdCBib2FyZHZybWFwcGluZzsKMTQ0NzQ6IAoxNDQ3NDogICB1
aW50OF90IGdmeHVsdnBoYXNlc2hlZGRpbmdtYXNrOwoxNDQ3NDogICB1aW50OF90IGV4dGVybmFs
c2Vuc29ycHJlc2VudDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nOF92WzJdOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICAgdWludDE2X3QgZ2Z4bWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBn
ZnhvZmZzZXQ7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnlnZng7CjE0NDc0OiAK
MTQ0NzQ6ICAgdWludDE2X3Qgc29jbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBzb2NvZmZz
ZXQ7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnlzb2M7CjE0NDc0OiAKMTQ0NzQ6
ICAgdWludDE2X3QgbWVtbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW1vZmZzZXQ7CjE0
NDc0OiAgIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnltZW07CjE0NDc0OiAKMTQ0NzQ6ICAgdWlu
dDE2X3QgYm9hcmRtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50OF90IGJvYXJkb2Zmc2V0OwoxNDQ3
NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5Ym9hcmRpbnB1dDsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQ4X3QgdnIwaG90Z3BpbzsKMTQ0NzQ6ICAgdWludDhfdCB2cjBob3Rwb2xh
cml0eTsKMTQ0NzQ6ICAgdWludDhfdCB2cjFob3RncGlvOwoxNDQ3NDogICB1aW50OF90IHZyMWhv
dHBvbGFyaXR5OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBwbGxnZnhjbGtzcHJl
YWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7CjE0NDc0
OiAgIHVpbnQxNl90IHBsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50OF90IHVjbGtzcHJlYWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90IHVjbGtzcHJlYWRw
ZXJjZW50OwoxNDQ3NDogICB1aW50MTZfdCB1Y2xrc3ByZWFkZnJlcTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQ4X3QgZmNsa3NwcmVhZGVuYWJsZWQ7CjE0NDc0OiAgIHVpbnQ4X3QgZmNs
a3NwcmVhZHBlcmNlbnQ7CjE0NDc0OiAgIHVpbnQxNl90IGZjbGtzcHJlYWRmcmVxOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IGZsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7
CjE0NDc0OiAgIHVpbnQ4X3QgZmxsZ2Z4Y2xrc3ByZWFkcGVyY2VudDsKMTQ0NzQ6ICAgdWludDE2
X3QgZmxsZ2Z4Y2xrc3ByZWFkZnJlcTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHN0cnVjdCBz
bXVkcG1faTJjX2NvbnRyb2xsZXJfY29uZmlnX3YyIGkyY2NvbnRyb2xsZXJzWzhdOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgbWVtb3J5Y2hhbm5lbGVuYWJsZWQ7CjE0NDc0OiAK
MTQ0NzQ6ICAgdWludDhfdCBkcmFtYml0d2lkdGg7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZ21l
bVszXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQxNl90IHRvdGFsYm9hcmRwb3dlcjsK
MTQ0NzQ6ICAgdWludDE2X3QgYm9hcmRwYWRkaW5nOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAg
dWludDhfdCB4Z21pbGlua3NwZWVkWzRdOwoxNDQ3NDogICB1aW50OF90IHhnbWlsaW5rd2lkdGhb
NF07CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDE2X3QgeGdtaWZjbGtmcmVxWzRdOwoxNDQ3NDogICB1
aW50MTZfdCB4Z21pc29jdm9sdGFnZVs0XTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQz
Ml90IGJvYXJkcmVzZXJ2ZWRbMTBdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2FzaWNfcHJvZmlsaW5n
X2luZm9fdjRfMQoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVh
ZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDMyX3QgbWF4dmRkYzsKMTQ0NzQ6ICAgdWlu
dDMyX3QgbWludmRkYzsKMTQ0NzQ6ICAgdWludDMyX3QgYXZmc19tZWFubnNpZ21hX2Fjb250YW50
MDsKMTQ0NzQ6ICAgdWludDMyX3QgYXZmc19tZWFubnNpZ21hX2Fjb250YW50MTsKMTQ0NzQ6ICAg
dWludDMyX3QgYXZmc19tZWFubnNpZ21hX2Fjb250YW50MjsKMTQ0NzQ6ICAgdWludDE2X3QgYXZm
c19tZWFubnNpZ21hX2RjX3RvbF9zaWdtYTsKMTQ0NzQ6ICAgdWludDE2X3QgYXZmc19tZWFubnNp
Z21hX3BsYXRmb3JtX21lYW47CjE0NDc0OiAgIHVpbnQxNl90IGF2ZnNfbWVhbm5zaWdtYV9wbGF0
Zm9ybV9zaWdtYTsKMTQ0NzQ6ICAgdWludDMyX3QgZ2JfdmRyb29wX3RhYmxlX2Nrc29mZl9hMDsK
MTQ0NzQ6ICAgdWludDMyX3QgZ2JfdmRyb29wX3RhYmxlX2Nrc29mZl9hMTsKMTQ0NzQ6ICAgdWlu
dDMyX3QgZ2JfdmRyb29wX3RhYmxlX2Nrc29mZl9hMjsKMTQ0NzQ6ICAgdWludDMyX3QgZ2JfdmRy
b29wX3RhYmxlX2Nrc29uX2EwOwoxNDQ3NDogICB1aW50MzJfdCBnYl92ZHJvb3BfdGFibGVfY2tz
b25fYTE7CjE0NDc0OiAgIHVpbnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3Nvbl9hMjsKMTQ0NzQ6
ICAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb2ZmX20xOwoxNDQ3NDogICB1aW50MzJf
dCBhdmZzZ2JfZnVzZV90YWJsZV9ja3NvZmZfbTI7CjE0NDc0OiAgIHVpbnQzMl90IGF2ZnNnYl9m
dXNlX3RhYmxlX2Nrc29mZl9iOwoxNDQ3NDogICB1aW50MzJfdCBhdmZzZ2JfZnVzZV90YWJsZV9j
a3Nvbl9tMTsKMTQ0NzQ6ICAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb25fbTI7CjE0
NDc0OiAgIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29uX2I7CjE0NDc0OiAgIHVpbnQx
Nl90IG1heF92b2x0YWdlXzBfMjVtdjsKMTQ0NzQ6ICAgdWludDhfdCBlbmFibGVfZ2JfdmRyb29w
X3RhYmxlX2Nrc29mZjsKMTQ0NzQ6ICAgdWludDhfdCBlbmFibGVfZ2JfdmRyb29wX3RhYmxlX2Nr
c29uOwoxNDQ3NDogICB1aW50OF90IGVuYWJsZV9nYl9mdXNlX3RhYmxlX2Nrc29mZjsKMTQ0NzQ6
ICAgdWludDhfdCBlbmFibGVfZ2JfZnVzZV90YWJsZV9ja3NvbjsKMTQ0NzQ6ICAgdWludDE2X3Qg
cHNtX2FnZV9jb21mYWN0b3I7CjE0NDc0OiAgIHVpbnQ4X3QgZW5hYmxlX2FwcGx5X2F2ZnNfY2tz
b2ZmX3ZvbHRhZ2U7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQ7CjE0NDc0OiAgIHVpbnQzMl90
IGRpc3BjbGsyZ2Z4Y2xrX2E7CjE0NDc0OiAgIHVpbnQzMl90IGRpc3BjbGsyZ2Z4Y2xrX2I7CjE0
NDc0OiAgIHVpbnQzMl90IGRpc3BjbGsyZ2Z4Y2xrX2M7CjE0NDc0OiAgIHVpbnQzMl90IHBpeGNs
azJnZnhjbGtfYTsKMTQ0NzQ6ICAgdWludDMyX3QgcGl4Y2xrMmdmeGNsa19iOwoxNDQ3NDogICB1
aW50MzJfdCBwaXhjbGsyZ2Z4Y2xrX2M7CjE0NDc0OiAgIHVpbnQzMl90IGRjZWZjbGsyZ2Z4Y2xr
X2E7CjE0NDc0OiAgIHVpbnQzMl90IGRjZWZjbGsyZ2Z4Y2xrX2I7CjE0NDc0OiAgIHVpbnQzMl90
IGRjZWZjbGsyZ2Z4Y2xrX2M7CjE0NDc0OiAgIHVpbnQzMl90IHBoeWNsazJnZnhjbGtfYTsKMTQ0
NzQ6ICAgdWludDMyX3QgcGh5Y2xrMmdmeGNsa19iOwoxNDQ3NDogICB1aW50MzJfdCBwaHljbGsy
Z2Z4Y2xrX2M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9hc2ljX3Byb2Zp
bGluZ19pbmZvX3Y0XzIgewoxNDQ3NDogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIg
dGFibGVfaGVhZGVyOwoxNDQ3NDogIHVpbnQzMl90IG1heHZkZGM7CjE0NDc0OiAgdWludDMyX3Qg
bWludmRkYzsKMTQ0NzQ6ICB1aW50MzJfdCBhdmZzX21lYW5uc2lnbWFfYWNvbnRhbnQwOwoxNDQ3
NDogIHVpbnQzMl90IGF2ZnNfbWVhbm5zaWdtYV9hY29udGFudDE7CjE0NDc0OiAgdWludDMyX3Qg
YXZmc19tZWFubnNpZ21hX2Fjb250YW50MjsKMTQ0NzQ6ICB1aW50MTZfdCBhdmZzX21lYW5uc2ln
bWFfZGNfdG9sX3NpZ21hOwoxNDQ3NDogIHVpbnQxNl90IGF2ZnNfbWVhbm5zaWdtYV9wbGF0Zm9y
bV9tZWFuOwoxNDQ3NDogIHVpbnQxNl90IGF2ZnNfbWVhbm5zaWdtYV9wbGF0Zm9ybV9zaWdtYTsK
MTQ0NzQ6ICB1aW50MzJfdCBnYl92ZHJvb3BfdGFibGVfY2tzb2ZmX2EwOwoxNDQ3NDogIHVpbnQz
Ml90IGdiX3Zkcm9vcF90YWJsZV9ja3NvZmZfYTE7CjE0NDc0OiAgdWludDMyX3QgZ2JfdmRyb29w
X3RhYmxlX2Nrc29mZl9hMjsKMTQ0NzQ6ICB1aW50MzJfdCBnYl92ZHJvb3BfdGFibGVfY2tzb25f
YTA7CjE0NDc0OiAgdWludDMyX3QgZ2JfdmRyb29wX3RhYmxlX2Nrc29uX2ExOwoxNDQ3NDogIHVp
bnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3Nvbl9hMjsKMTQ0NzQ6ICB1aW50MzJfdCBhdmZzZ2Jf
ZnVzZV90YWJsZV9ja3NvZmZfbTE7CjE0NDc0OiAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVf
Y2tzb2ZmX20yOwoxNDQ3NDogIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29mZl9iOwox
NDQ3NDogIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29uX20xOwoxNDQ3NDogIHVpbnQz
Ml90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29uX20yOwoxNDQ3NDogIHVpbnQzMl90IGF2ZnNnYl9m
dXNlX3RhYmxlX2Nrc29uX2I7CjE0NDc0OiAgdWludDE2X3QgbWF4X3ZvbHRhZ2VfMF8yNW12Owox
NDQ3NDogIHVpbnQ4X3QgZW5hYmxlX2diX3Zkcm9vcF90YWJsZV9ja3NvZmY7CjE0NDc0OiAgdWlu
dDhfdCBlbmFibGVfZ2JfdmRyb29wX3RhYmxlX2Nrc29uOwoxNDQ3NDogIHVpbnQ4X3QgZW5hYmxl
X2diX2Z1c2VfdGFibGVfY2tzb2ZmOwoxNDQ3NDogIHVpbnQ4X3QgZW5hYmxlX2diX2Z1c2VfdGFi
bGVfY2tzb247CjE0NDc0OiAgdWludDE2X3QgcHNtX2FnZV9jb21mYWN0b3I7CjE0NDc0OiAgdWlu
dDhfdCBlbmFibGVfYXBwbHlfYXZmc19ja3NvZmZfdm9sdGFnZTsKMTQ0NzQ6ICB1aW50OF90IHJl
c2VydmVkOwoxNDQ3NDogIHVpbnQzMl90IGRpc3BjbGsyZ2Z4Y2xrX2E7CjE0NDc0OiAgdWludDMy
X3QgZGlzcGNsazJnZnhjbGtfYjsKMTQ0NzQ6ICB1aW50MzJfdCBkaXNwY2xrMmdmeGNsa19jOwox
NDQ3NDogIHVpbnQzMl90IHBpeGNsazJnZnhjbGtfYTsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhjbGsy
Z2Z4Y2xrX2I7CjE0NDc0OiAgdWludDMyX3QgcGl4Y2xrMmdmeGNsa19jOwoxNDQ3NDogIHVpbnQz
Ml90IGRjZWZjbGsyZ2Z4Y2xrX2E7CjE0NDc0OiAgdWludDMyX3QgZGNlZmNsazJnZnhjbGtfYjsK
MTQ0NzQ6ICB1aW50MzJfdCBkY2VmY2xrMmdmeGNsa19jOwoxNDQ3NDogIHVpbnQzMl90IHBoeWNs
azJnZnhjbGtfYTsKMTQ0NzQ6ICB1aW50MzJfdCBwaHljbGsyZ2Z4Y2xrX2I7CjE0NDc0OiAgdWlu
dDMyX3QgcGh5Y2xrMmdmeGNsa19jOwoxNDQ3NDogIHVpbnQzMl90IGFjZ19nYl92ZHJvb3BfdGFi
bGVfYTA7CjE0NDc0OiAgdWludDMyX3QgYWNnX2diX3Zkcm9vcF90YWJsZV9hMTsKMTQ0NzQ6ICB1
aW50MzJfdCBhY2dfZ2JfdmRyb29wX3RhYmxlX2EyOwoxNDQ3NDogIHVpbnQzMl90IGFjZ19hdmZz
Z2JfZnVzZV90YWJsZV9tMTsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfYXZmc2diX2Z1c2VfdGFibGVf
bTI7CjE0NDc0OiAgdWludDMyX3QgYWNnX2F2ZnNnYl9mdXNlX3RhYmxlX2I7CjE0NDc0OiAgdWlu
dDhfdCBlbmFibGVfYWNnX2diX3Zkcm9vcF90YWJsZTsKMTQ0NzQ6ICB1aW50OF90IGVuYWJsZV9h
Y2dfZ2JfZnVzZV90YWJsZTsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfZGlzcGNsazJnZnhjbGtfYTsK
MTQ0NzQ6ICB1aW50MzJfdCBhY2dfZGlzcGNsazJnZnhjbGtfYjsKMTQ0NzQ6ICB1aW50MzJfdCBh
Y2dfZGlzcGNsazJnZnhjbGtfYzsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfcGl4Y2xrMmdmeGNsa19h
OwoxNDQ3NDogIHVpbnQzMl90IGFjZ19waXhjbGsyZ2Z4Y2xrX2I7CjE0NDc0OiAgdWludDMyX3Qg
YWNnX3BpeGNsazJnZnhjbGtfYzsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfZGNlZmNsazJnZnhjbGtf
YTsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfZGNlZmNsazJnZnhjbGtfYjsKMTQ0NzQ6ICB1aW50MzJf
dCBhY2dfZGNlZmNsazJnZnhjbGtfYzsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfcGh5Y2xrMmdmeGNs
a19hOwoxNDQ3NDogIHVpbnQzMl90IGFjZ19waHljbGsyZ2Z4Y2xrX2I7CjE0NDc0OiAgdWludDMy
X3QgYWNnX3BoeWNsazJnZnhjbGtfYzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9tdWx0aW1lZGlhX2lu
Zm9fdjJfMQoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVy
IHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCB1dmRpcF9taW5fdmVyOwoxNDQ3NDogICB1
aW50OF90IHV2ZGlwX21heF92ZXI7CjE0NDc0OiAgIHVpbnQ4X3QgdmNlaXBfbWluX3ZlcjsKMTQ0
NzQ6ICAgdWludDhfdCB2Y2VpcF9tYXhfdmVyOwoxNDQ3NDogICB1aW50MTZfdCB1dmRfZW5jX21h
eF9pbnB1dF93aWR0aF9waXhlbHM7CjE0NDc0OiAgIHVpbnQxNl90IHV2ZF9lbmNfbWF4X2lucHV0
X2hlaWdodF9waXhlbHM7CjE0NDc0OiAgIHVpbnQxNl90IHZjZV9lbmNfbWF4X2lucHV0X3dpZHRo
X3BpeGVsczsKMTQ0NzQ6ICAgdWludDE2X3QgdmNlX2VuY19tYXhfaW5wdXRfaGVpZ2h0X3BpeGVs
czsKMTQ0NzQ6ICAgdWludDMyX3QgdXZkX2VuY19tYXhfYmFuZHdpZHRoOwoxNDQ3NDogICB1aW50
MzJfdCB2Y2VfZW5jX21heF9iYW5kd2lkdGg7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV91
bWNfaW5mb192M18xCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9o
ZWFkZXIgdGFibGVfaGVhZGVyOwoxNDQ3NDogICB1aW50MzJfdCB1Y29kZV92ZXJzaW9uOwoxNDQ3
NDogICB1aW50MzJfdCB1Y29kZV9yb21fc3RhcnRhZGRyOwoxNDQ3NDogICB1aW50MzJfdCB1Y29k
ZV9sZW5ndGg7CjE0NDc0OiAgIHVpbnQxNl90IHVtY19yZWdfaW5pdF9vZmZzZXQ7CjE0NDc0OiAg
IHVpbnQxNl90IGN1c3RvbWVyX3Vjb2RlX25hbWVfb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBt
Y2xrX3NzX3BlcmNlbnRhZ2U7CjE0NDc0OiAgIHVpbnQxNl90IG1jbGtfc3NfcmF0ZV8xMGh6Owox
NDQ3NDogICB1aW50OF90IHVtY2lwX21pbl92ZXI7CjE0NDc0OiAgIHVpbnQ4X3QgdW1jaXBfbWF4
X3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCB2cmFtX3R5cGU7CjE0NDc0OiAgIHVpbnQ4X3QgdW1jX2Nv
bmZpZzsKMTQ0NzQ6ICAgdWludDMyX3QgbWVtX3JlZmNsa18xMGtoejsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3VtY19jb25maWdfZGVmIHsKMTQ0NzQ6ICAgVU1D
X0NPTkZJR19fRU5BQkxFXzFLQl9JTlRFUkxFQVZFX01PREUgPSAweDAwMDAwMDAxLAoxNDQ3NDog
ICBVTUNfQ09ORklHX19ERUZBVUxUX01FTV9FQ0NfRU5BQkxFID0gMHgwMDAwMDAwMiwKMTQ0NzQ6
ICAgVU1DX0NPTkZJR19fRU5BQkxFX0hCTV9MQU5FX1JFUEFJUiA9IDB4MDAwMDAwMDQsCjE0NDc0
OiAgIFVNQ19DT05GSUdfX0VOQUJMRV9CQU5LX0hBUlZFU1RJTkcgPSAweDAwMDAwMDA4LAoxNDQ3
NDogICBVTUNfQ09ORklHX19FTkFCTEVfUEhZX1JFSU5JVCA9IDB4MDAwMDAwMTAsCjE0NDc0OiAg
IFVNQ19DT05GSUdfX0RJU0FCTEVfVUNPREVfQ0hLU1RBVFVTID0gMHgwMDAwMDAyMCwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3VtY19pbmZvX3YzXzIKMTQ0NzQ6IHsKMTQ0
NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CjE0NDc0
OiAgIHVpbnQzMl90IHVjb2RlX3ZlcnNpb247CjE0NDc0OiAgIHVpbnQzMl90IHVjb2RlX3JvbV9z
dGFydGFkZHI7CjE0NDc0OiAgIHVpbnQzMl90IHVjb2RlX2xlbmd0aDsKMTQ0NzQ6ICAgdWludDE2
X3QgdW1jX3JlZ19pbml0X29mZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgY3VzdG9tZXJfdWNvZGVf
bmFtZV9vZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IG1jbGtfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6
ICAgdWludDE2X3QgbWNsa19zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVpbnQ4X3QgdW1jaXBfbWlu
X3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCB1bWNpcF9tYXhfdmVyOwoxNDQ3NDogICB1aW50OF90IHZy
YW1fdHlwZTsKMTQ0NzQ6ICAgdWludDhfdCB1bWNfY29uZmlnOwoxNDQ3NDogICB1aW50MzJfdCBt
ZW1fcmVmY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBwc3RhdGVfdWNsa18xMGtoels0XTsK
MTQ0NzQ6ICAgdWludDE2X3QgdW1jZ29sZGVub2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBkZW5z
aXR5Z29sZGVub2Zmc2V0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fdW1j
X2luZm9fdjNfMwoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVh
ZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDMyX3QgdWNvZGVfcmVzZXJ2ZWQ7CjE0NDc0
OiAgIHVpbnQzMl90IHVjb2RlX3JvbV9zdGFydGFkZHI7CjE0NDc0OiAgIHVpbnQzMl90IHVjb2Rl
X2xlbmd0aDsKMTQ0NzQ6ICAgdWludDE2X3QgdW1jX3JlZ19pbml0X29mZnNldDsKMTQ0NzQ6ICAg
dWludDE2X3QgY3VzdG9tZXJfdWNvZGVfbmFtZV9vZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IG1j
bGtfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgbWNsa19zc19yYXRlXzEwaHo7CjE0
NDc0OiAgIHVpbnQ4X3QgdW1jaXBfbWluX3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCB1bWNpcF9tYXhf
dmVyOwoxNDQ3NDogICB1aW50OF90IHZyYW1fdHlwZTsKMTQ0NzQ6ICAgdWludDhfdCB1bWNfY29u
ZmlnOwoxNDQ3NDogICB1aW50MzJfdCBtZW1fcmVmY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJf
dCBwc3RhdGVfdWNsa18xMGtoels0XTsKMTQ0NzQ6ICAgdWludDE2X3QgdW1jZ29sZGVub2Zmc2V0
OwoxNDQ3NDogICB1aW50MTZfdCBkZW5zaXR5Z29sZGVub2Zmc2V0OwoxNDQ3NDogICB1aW50MzJf
dCByZXNlcnZlZFs0XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV92cmFtX21vZHVsZV92OSB7CjE0NDc0
OiAKMTQ0NzQ6ICAgdWludDMyX3QgbWVtb3J5X3NpemU7CjE0NDc0OiAgIHVpbnQzMl90IGNoYW5u
ZWxfZW5hYmxlOwoxNDQ3NDogICB1aW50MzJfdCBtYXhfbWVtX2NsazsKMTQ0NzQ6ICAgdWludDE2
X3QgcmVzZXJ2ZWRbM107CjE0NDc0OiAgIHVpbnQxNl90IG1lbV92b2x0YWdlOwoxNDQ3NDogICB1
aW50MTZfdCB2cmFtX21vZHVsZV9zaXplOwoxNDQ3NDogICB1aW50OF90IGV4dF9tZW1vcnlfaWQ7
CjE0NDc0OiAgIHVpbnQ4X3QgbWVtb3J5X3R5cGU7CjE0NDc0OiAgIHVpbnQ4X3QgY2hhbm5lbF9u
dW07CjE0NDc0OiAgIHVpbnQ4X3QgY2hhbm5lbF93aWR0aDsKMTQ0NzQ6ICAgdWludDhfdCBkZW5z
aXR5OwoxNDQ3NDogICB1aW50OF90IHR1bm5pbmdzZXRfaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgdmVu
ZGVyX3Jldl9pZDsKMTQ0NzQ6ICAgdWludDhfdCByZWZyZXNocmF0ZTsKMTQ0NzQ6ICAgdWludDhf
dCBoYm1fdmVuX3Jldl9pZDsKMTQ0NzQ6ICAgdWludDhfdCB2cmFtX3JzZDI7CjE0NDc0OiAgIGNo
YXIgZHJhbV9wbnN0cmluZ1syMF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRv
bV92cmFtX2luZm9faGVhZGVyX3YyXzMgewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFi
bGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDE2X3QgbWVtX2FkanVzdF90Ymxv
ZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IG1lbV9jbGtfcGF0Y2hfdGJsb2Zmc2V0OwoxNDQ3NDog
ICB1aW50MTZfdCBtY19hZGp1c3RfcGVydGlsZV90YmxvZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90
IG1jX3BoeWluaXRfdGJsb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBkcmFtX2RhdGFfcmVtYXBf
dGJsb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCB0bXJzX3NlcV9vZmZzZXQ7CjE0NDc0OiAgIHVp
bnQxNl90IHBvc3RfdWNvZGVfaW5pdF9vZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IHZyYW1fcnNk
MjsKMTQ0NzQ6ICAgdWludDhfdCB2cmFtX21vZHVsZV9udW07CjE0NDc0OiAgIHVpbnQ4X3QgdW1j
aXBfbWluX3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCB1bWNpcF9tYXhfdmVyOwoxNDQ3NDogICB1aW50
OF90IG1jX3BoeV90aWxlX251bTsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fdnJhbV9tb2R1bGVfdjkg
dnJhbV9tb2R1bGVbMTZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fdW1j
X3JlZ2lzdGVyX2FkZHJfaW5mb3sKMTQ0NzQ6ICAgdWludDMyX3QgdW1jX3JlZ2lzdGVyX2FkZHI6
MjQ7CjE0NDc0OiAgIHVpbnQzMl90IHVtY19yZWdfdHlwZV9pbmQ6MTsKMTQ0NzQ6ICAgdWludDMy
X3QgdW1jX3JlZ19yc3ZkOjc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0g
YXRvbV91bWNfcmVnaXN0ZXJfYWRkcl9pbmZvX2ZsYWd7CjE0NDc0OiAgIGIzQVRPTV9VTUNfUkVH
X0FERF9JTkZPX0lORElSRUNUX0FDQ0VTUyA9MHgwMSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHVuaW9uIGF0b21fdW1jX3JlZ2lzdGVyX2FkZHJfaW5mb19hY2Nlc3MKMTQ0NzQ6IHsKMTQ0NzQ6
ICAgc3RydWN0IGF0b21fdW1jX3JlZ2lzdGVyX2FkZHJfaW5mbyB1bWNfcmVnX2FkZHI7CjE0NDc0
OiAgIHVpbnQzMl90IHUzMnVtY19yZWdfYWRkcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBhdG9tX3VtY19yZWdfc2V0dGluZ19pZF9jb25maWd7CjE0NDc0OiAgIHVpbnQzMl90IG1l
bWNsb2NrcmFuZ2U6MjQ7CjE0NDc0OiAgIHVpbnQzMl90IG1lbV9ibGtfaWQ6ODsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGF0b21fdW1jX3JlZ19zZXR0aW5nX2lkX2NvbmZpZ19hY2Nl
c3MKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fdW1jX3JlZ19zZXR0aW5nX2lkX2NvbmZp
ZyB1bWNfaWRfYWNjZXNzOwoxNDQ3NDogICB1aW50MzJfdCB1MzJ1bWNfaWRfYWNjZXNzOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fdW1jX3JlZ19zZXR0aW5nX2RhdGFfYmxv
Y2t7CjE0NDc0OiAgIHVuaW9uIGF0b21fdW1jX3JlZ19zZXR0aW5nX2lkX2NvbmZpZ19hY2Nlc3Mg
YmxvY2tfaWQ7CjE0NDc0OiAgIHVpbnQzMl90IHUzMnVtY19yZWdfZGF0YVsxXTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3VtY19pbml0X3JlZ19ibG9ja3sKMTQ0NzQ6ICAg
dWludDE2X3QgdW1jX3JlZ19udW07CjE0NDc0OiAgIHVpbnQxNl90IHJlc2VydmVkOwoxNDQ3NDog
ICB1bmlvbiBhdG9tX3VtY19yZWdpc3Rlcl9hZGRyX2luZm9fYWNjZXNzIHVtY19yZWdfbGlzdFsx
XTsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fdW1jX3JlZ19zZXR0aW5nX2RhdGFfYmxvY2sgdW1jX3Jl
Z19zZXR0aW5nX2xpc3RbMV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV92
cmFtX21vZHVsZV92MTAgewoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IG1lbW9yeV9zaXplOwox
NDQ3NDogICB1aW50MzJfdCBjaGFubmVsX2VuYWJsZTsKMTQ0NzQ6ICAgdWludDMyX3QgbWF4X21l
bV9jbGs7CjE0NDc0OiAgIHVpbnQxNl90IHJlc2VydmVkWzNdOwoxNDQ3NDogICB1aW50MTZfdCBt
ZW1fdm9sdGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgdnJhbV9tb2R1bGVfc2l6ZTsKMTQ0NzQ6ICAg
dWludDhfdCBleHRfbWVtb3J5X2lkOwoxNDQ3NDogICB1aW50OF90IG1lbW9yeV90eXBlOwoxNDQ3
NDogICB1aW50OF90IGNoYW5uZWxfbnVtOwoxNDQ3NDogICB1aW50OF90IGNoYW5uZWxfd2lkdGg7
CjE0NDc0OiAgIHVpbnQ4X3QgZGVuc2l0eTsKMTQ0NzQ6ICAgdWludDhfdCB0dW5uaW5nc2V0X2lk
OwoxNDQ3NDogICB1aW50OF90IHZlbmRlcl9yZXZfaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgcmVmcmVz
aHJhdGU7CjE0NDc0OiAgIHVpbnQ4X3QgdnJhbV9mbGFnczsKMTQ0NzQ6ICAgdWludDhfdCB2cmFt
X3JzZDI7CjE0NDc0OiAgIHVpbnQxNl90IGdkZHI2X21yMTA7CjE0NDc0OiAgIHVpbnQxNl90IGdk
ZHI2X21yMTsKMTQ0NzQ6ICAgdWludDE2X3QgZ2RkcjZfbXIyOwoxNDQ3NDogICB1aW50MTZfdCBn
ZGRyNl9tcjc7CjE0NDc0OiAgIGNoYXIgZHJhbV9wbnN0cmluZ1syMF07CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV92cmFtX2luZm9faGVhZGVyX3YyXzQgewoxNDQ3NDogICBz
dHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWlu
dDE2X3QgbWVtX2FkanVzdF90YmxvZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IG1lbV9jbGtfcGF0
Y2hfdGJsb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBtY19hZGp1c3RfcGVydGlsZV90YmxvZmZz
ZXQ7CjE0NDc0OiAgIHVpbnQxNl90IG1jX3BoeWluaXRfdGJsb2Zmc2V0OwoxNDQ3NDogICB1aW50
MTZfdCBkcmFtX2RhdGFfcmVtYXBfdGJsb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCByZXNlcnZl
ZDsKMTQ0NzQ6ICAgdWludDE2X3QgcG9zdF91Y29kZV9pbml0X29mZnNldDsKMTQ0NzQ6ICAgdWlu
dDE2X3QgdnJhbV9yc2QyOwoxNDQ3NDogICB1aW50OF90IHZyYW1fbW9kdWxlX251bTsKMTQ0NzQ6
ICAgdWludDhfdCB1bWNpcF9taW5fdmVyOwoxNDQ3NDogICB1aW50OF90IHVtY2lwX21heF92ZXI7
CjE0NDc0OiAgIHVpbnQ4X3QgbWNfcGh5X3RpbGVfbnVtOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV92
cmFtX21vZHVsZV92MTAgdnJhbV9tb2R1bGVbMTZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2kyY19k
YXRhX2VudHJ5CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQxNl90IGkyY19yZWdfaW5kZXg7CjE0NDc0
OiAgIHVpbnQxNl90IGkyY19yZWdfZGF0YTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NHsKMTQ0NzQ6ICAgdWludDhfdCB2b2x0YWdl
X3R5cGU7CjE0NDc0OiAgIHVpbnQ4X3Qgdm9sdGFnZV9tb2RlOwoxNDQ3NDogICB1aW50MTZfdCBv
YmplY3Rfc2l6ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3Zv
bHRhZ2Vfb2JqZWN0X21vZGUKMTQ0NzQ6IHsKMTQ0NzQ6ICAgIFZPTFRBR0VfT0JKX0dQSU9fTFVU
ID0gMCwKMTQ0NzQ6ICAgIFZPTFRBR0VfT0JKX1ZSX0kyQ19JTklUX1NFUSA9IDMsCjE0NDc0OiAg
ICBWT0xUQUdFX09CSl9QSEFTRV9MVVQgPSA0LAoxNDQ3NDogICAgVk9MVEFHRV9PQkpfU1ZJRDIg
PSA3LAoxNDQ3NDogICAgVk9MVEFHRV9PQkpfRVZWID0gOCwKMTQ0NzQ6ICAgIFZPTFRBR0VfT0JK
X01FUkdFRF9QT1dFUiA9IDksCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9p
MmNfdm9sdGFnZV9vYmplY3RfdjQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgIHN0cnVjdCBhdG9tX3ZvbHRh
Z2Vfb2JqZWN0X2hlYWRlcl92NCBoZWFkZXI7CjE0NDc0OiAgICB1aW50OF90IHJlZ3VsYXRvcl9p
ZDsKMTQ0NzQ6ICAgIHVpbnQ4X3QgaTJjX2lkOwoxNDQ3NDogICAgdWludDhfdCBpMmNfc2xhdmVf
YWRkcjsKMTQ0NzQ6ICAgIHVpbnQ4X3QgaTJjX2NvbnRyb2xfb2Zmc2V0OwoxNDQ3NDogICAgdWlu
dDhfdCBpMmNfZmxhZzsKMTQ0NzQ6ICAgIHVpbnQ4X3QgaTJjX3NwZWVkOwoxNDQ3NDogICAgdWlu
dDhfdCByZXNlcnZlZFsyXTsKMTQ0NzQ6ICAgIHN0cnVjdCBhdG9tX2kyY19kYXRhX2VudHJ5IGky
Y2RhdGFsdXRbMV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9p
MmNfdm9sdGFnZV9jb250cm9sX2ZsYWcKMTQ0NzQ6IHsKMTQ0NzQ6ICAgIFZPTFRBR0VfREFUQV9P
TkVfQllURSA9IDAsCjE0NDc0OiAgICBWT0xUQUdFX0RBVEFfVFdPX0JZVEUgPSAxLAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV92b2x0YWdlX2dwaW9fbWFwX2x1
dAoxNDQ3NDogewoxNDQ3NDogICB1aW50MzJfdCB2b2x0YWdlX2dwaW9fcmVnX3ZhbDsKMTQ0NzQ6
ICAgdWludDE2X3Qgdm9sdGFnZV9sZXZlbF9tdjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBhdG9tX2dwaW9fdm9sdGFnZV9vYmplY3RfdjQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgIHN0cnVj
dCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NCBoZWFkZXI7CjE0NDc0OiAgICB1aW50OF90
IGdwaW9fY29udHJvbF9pZDsKMTQ0NzQ6ICAgIHVpbnQ4X3QgZ3Bpb19lbnRyeV9udW07CjE0NDc0
OiAgICB1aW50OF90IHBoYXNlX2RlbGF5X3VzOwoxNDQ3NDogICAgdWludDhfdCByZXNlcnZlZDsK
MTQ0NzQ6ICAgIHVpbnQzMl90IGdwaW9fbWFza192YWw7CjE0NDc0OiAgICBzdHJ1Y3QgYXRvbV92
b2x0YWdlX2dwaW9fbWFwX2x1dCB2b2x0YWdlX2dwaW9fbHV0WzFdOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGF0b21fc3ZpZDJfdm9sdGFnZV9vYmplY3RfdjQKMTQ0NzQ6IHsKMTQ0
NzQ6ICAgIHN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NCBoZWFkZXI7CjE0NDc0
OiAgICB1aW50OF90IGxvYWRsaW5lX3BzaTE7CjE0NDc0OiAgICB1aW50OF90IHBzaTBfbF92aWRf
dGhyZXNkOwoxNDQ3NDogICAgdWludDhfdCBwc2kwX2VuYWJsZTsKMTQ0NzQ6ICAgIHVpbnQ4X3Qg
bWF4dnN0ZXA7CjE0NDc0OiAgICB1aW50OF90IHRlbGVtZXRyeV9vZmZzZXQ7CjE0NDc0OiAgICB1
aW50OF90IHRlbGVtZXRyeV9nYWluOwoxNDQ3NDogICAgdWludDE2X3QgcmVzZXJ2ZWQxOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fbWVyZ2VkX3ZvbHRhZ2Vfb2JqZWN0X3Y0
CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NCBo
ZWFkZXI7CjE0NDc0OiAgIHVpbnQ4X3QgbWVyZ2VkX3Bvd2VycmFpbF90eXBlOwoxNDQ3NDogICB1
aW50OF90IHJlc2VydmVkWzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gYXRvbV92
b2x0YWdlX29iamVjdF92NHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fZ3Bpb192b2x0YWdlX29iamVj
dF92NCBncGlvX3ZvbHRhZ2Vfb2JqOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9pMmNfdm9sdGFnZV9v
YmplY3RfdjQgaTJjX3ZvbHRhZ2Vfb2JqOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9zdmlkMl92b2x0
YWdlX29iamVjdF92NCBzdmlkMl92b2x0YWdlX29iajsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fbWVy
Z2VkX3ZvbHRhZ2Vfb2JqZWN0X3Y0IG1lcmdlZF92b2x0YWdlX29iajsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0c19pbmZvX3Y0XzEKMTQ0NzQ6IHsK
MTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CjE0
NDc0OiAgIHVuaW9uIGF0b21fdm9sdGFnZV9vYmplY3RfdjQgdm9sdGFnZV9vYmplY3RbMV07CjE0
NDc0OiB9OwoxNDQ3NDogIyAyMzIzICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2lu
Y2x1ZGUvYXRvbWZpcm13YXJlLmgiCjE0NDc0OiBzdHJ1Y3QgYXNpY19pbml0X2VuZ2luZV9wYXJh
bWV0ZXJzCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQzMl90IHNjbGtmcmVxaW4xMGtoejoyNDsKMTQ0
NzQ6ICAgdWludDMyX3QgZW5naW5lZmxhZzo4OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGFzaWNfaW5pdF9tZW1fcGFyYW1ldGVycwoxNDQ3NDogewoxNDQ3NDogICB1aW50MzJfdCBt
Y2xrZnJlcWluMTBraHo6MjQ7CjE0NDc0OiAgIHVpbnQzMl90IG1lbWZsYWc6ODsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhc2ljX2luaXRfcGFyYW1ldGVyc192Ml8xCjE0NDc0OiB7
CjE0NDc0OiAgIHN0cnVjdCBhc2ljX2luaXRfZW5naW5lX3BhcmFtZXRlcnMgZW5naW5lcGFyYW07
CjE0NDc0OiAgIHN0cnVjdCBhc2ljX2luaXRfbWVtX3BhcmFtZXRlcnMgbWVtcGFyYW07CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXNpY19pbml0X3BzX2FsbG9jYXRpb25fdjJfMQox
NDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXNpY19pbml0X3BhcmFtZXRlcnNfdjJfMSBwYXJhbTsK
MTQ0NzQ6ICAgdWludDMyX3QgcmVzZXJ2ZWRbMTZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBlbnVtIGF0b21fYXNpY19pbml0X2VuZ2luZV9mbGFnCjE0NDc0OiB7CjE0NDc0OiAg
IGIzTk9STUFMX0VOR0lORV9JTklUID0gMCwKMTQ0NzQ6ICAgYjNTUklPVl9TS0lQX0FTSUNfSU5J
VCA9IDB4MDIsCjE0NDc0OiAgIGIzU1JJT1ZfTE9BRF9VQ09ERSA9IDB4NDAsCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fYXNpY19pbml0X21lbV9mbGFnCjE0NDc0OiB7CjE0NDc0
OiAgIGIzTk9STUFMX01FTV9JTklUID0gMCwKMTQ0NzQ6ICAgYjNEUkFNX1NFTEZfUkVGUkVTSF9F
WElUID0weDIwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNldF9lbmdpbmVfY2xvY2tfcGFyYW1l
dGVyc192Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQzMl90IHNjbGtmcmVxaW4xMGtoejoyNDsK
MTQ0NzQ6ICAgdWludDMyX3Qgc2Nsa2ZsYWc6ODsKMTQ0NzQ6ICAgdWludDMyX3QgcmVzZXJ2ZWRb
MTBdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNldF9lbmdpbmVfY2xvY2tfcHNf
YWxsb2NhdGlvbl92Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBzZXRfZW5naW5lX2Nsb2Nr
X3BhcmFtZXRlcnNfdjJfMSBjbG9ja2luZm87CjE0NDc0OiAgIHVpbnQzMl90IHJlc2VydmVkWzEw
XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3NldF9lbmdpbmVf
bWVtX2Nsb2NrX2ZsYWcKMTQ0NzQ6IHsKMTQ0NzQ6ICAgYjNOT1JNQUxfQ0hBTkdFX0NMT0NLID0g
MCwKMTQ0NzQ6ICAgYjNGSVJTVF9USU1FX0NIQU5HRV9DTE9DSyA9IDB4MDgsCjE0NDc0OiAgIGIz
U1RPUkVfRFBNX1RSQUlOR0lORyA9IDB4NDAsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGdldF9lbmdpbmVfY2xv
Y2tfcGFyYW1ldGVyCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQzMl90IHNjbGtfMTBraHo7CjE0NDc0
OiAgIHVpbnQzMl90IHJlc2VydmVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzZXRfbWVtb3J5X2Nsb2NrX3Bh
cmFtZXRlcnNfdjJfMQoxNDQ3NDogewoxNDQ3NDogICB1aW50MzJfdCBtY2xrZnJlcWluMTBraHo6
MjQ7CjE0NDc0OiAgIHVpbnQzMl90IG1jbGtmbGFnOjg7CjE0NDc0OiAgIHVpbnQzMl90IHJlc2Vy
dmVkWzEwXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzZXRfbWVtb3J5X2Nsb2Nr
X3BzX2FsbG9jYXRpb25fdjJfMQoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3Qgc2V0X21lbW9yeV9j
bG9ja19wYXJhbWV0ZXJzX3YyXzEgY2xvY2tpbmZvOwoxNDQ3NDogICB1aW50MzJfdCByZXNlcnZl
ZFsxMF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZ2V0X21lbW9yeV9jbG9ja19wYXJhbWV0ZXIK
MTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDMyX3QgbWNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDMyX3Qg
cmVzZXJ2ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNDM3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiCjE0NDc0OiBzdHJ1Y3Qgc2V0X3ZvbHRh
Z2VfcGFyYW1ldGVyc192MV80CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3Qgdm9sdGFnZXR5cGU7
CjE0NDc0OiAgIHVpbnQ4X3QgY29tbWFuZDsKMTQ0NzQ6ICAgdWludDE2X3QgdmxldmVsX212Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fc2V0X3ZvbHRhZ2VfY29t
bWFuZHsKMTQ0NzQ6ICAgQVRPTV9TRVRfVk9MVEFHRSA9IDAsCjE0NDc0OiAgIEFUT01fSU5JVF9W
T0xUQUdFX1JFR1VMQVRPUiA9IDMsCjE0NDc0OiAgIEFUT01fU0VUX1ZPTFRBR0VfUEhBU0UgPSA0
LAoxNDQ3NDogICBBVE9NX0dFVF9MRUFLQUdFX0lEID0gOCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBzZXRfdm9sdGFnZV9wc19hbGxvY2F0aW9uX3YxXzQKMTQ0NzQ6IHsKMTQ0NzQ6
ICAgc3RydWN0IHNldF92b2x0YWdlX3BhcmFtZXRlcnNfdjFfNCBzZXR2b2x0YWdlcGFyYW07CjE0
NDc0OiAgIHVpbnQzMl90IHJlc2VydmVkWzEwXTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI0NjYgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKMTQ0
NzQ6IGVudW0gYXRvbV9ncHVfY2xvY2tfdHlwZQoxNDQ3NDogewoxNDQ3NDogICBDT01QVVRFX0dQ
VUNMS19JTlBVVF9GTEFHX0RFRkFVTFRfR1BVQ0xLID0weDAwLAoxNDQ3NDogICBDT01QVVRFX0dQ
VUNMS19JTlBVVF9GTEFHX0dGWENMSyA9MHgwMSwKMTQ0NzQ6ICAgQ09NUFVURV9HUFVDTEtfSU5Q
VVRfRkxBR19VQ0xLID0weDAyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNvbXB1
dGVfZ3B1X2Nsb2NrX2lucHV0X3BhcmFtZXRlcl92MV84CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQz
Ml90IGdwdWNsb2NrXzEwa2h6OjI0OwoxNDQ3NDogICB1aW50MzJfdCBncHVfY2xvY2tfdHlwZTo4
OwoxNDQ3NDogICB1aW50MzJfdCByZXNlcnZlZFs1XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGNvbXB1dGVfZ3B1X2Nsb2NrX291dHB1dF9wYXJhbWV0ZXJfdjFfOAox
NDQ3NDogewoxNDQ3NDogICB1aW50MzJfdCBncHVjbG9ja18xMGtoejoyNDsKMTQ0NzQ6ICAgdWlu
dDMyX3QgZGZzX2RpZDo4OwoxNDQ3NDogICB1aW50MzJfdCBwbGxfZmJfbXVsdDsKMTQ0NzQ6ICAg
dWludDMyX3QgcGxsX3NzX2Zic211bHQ7CjE0NDc0OiAgIHVpbnQxNl90IHBsbF9zc19zbGV3X2Zy
YWM7CjE0NDc0OiAgIHVpbnQ4X3QgcGxsX3NzX2VuYWJsZTsKMTQ0NzQ6ICAgdWludDhfdCByZXNl
cnZlZDsKMTQ0NzQ6ICAgdWludDMyX3QgcmVzZXJ2ZWQxWzJdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMg
MjUwMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2Fy
ZS5oIgoxNDQ3NDogc3RydWN0IHJlYWRfZWZ1c2VfaW5wdXRfcGFyYW1ldGVyc192M18xCjE0NDc0
OiB7CjE0NDc0OiAgIHVpbnQxNl90IGVmdXNlX3N0YXJ0X2luZGV4OwoxNDQ3NDogICB1aW50OF90
IHJlc2VydmVkOwoxNDQ3NDogICB1aW50OF90IGJpdHNsZW47CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHVuaW9uIHJlYWRfZWZ1c2VfdmFsdWVfcGFyYW1ldGVyc192M18xCjE0NDc0
OiB7CjE0NDc0OiAgIHN0cnVjdCByZWFkX2VmdXNlX2lucHV0X3BhcmFtZXRlcnNfdjNfMSBlZnVz
ZV9pbmZvOwoxNDQ3NDogICB1aW50MzJfdCBlZnVzZXZhbHVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGF0b21fZ2V0X3NtdV9jbG9ja19pbmZvX3BhcmFtZXRlcnNfdjNfMQoxNDQ3NDogewoxNDQ3
NDogICB1aW50OF90IHN5c3BsbF9pZDsKMTQ0NzQ6ICAgdWludDhfdCBjbGtfaWQ7CjE0NDc0OiAg
IHVpbnQ4X3QgY29tbWFuZDsKMTQ0NzQ6ICAgdWludDhfdCBkZnNkaWQ7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBlbnVtIGF0b21fZ2V0X3NtdV9jbG9ja19pbmZvX2NvbW1hbmQKMTQ0NzQ6IHsK
MTQ0NzQ6ICAgR0VUX1NNVV9DTE9DS19JTkZPX1YzXzFfR0VUX0NMT0NLX0ZSRVEgPSAwLAoxNDQ3
NDogICBHRVRfU01VX0NMT0NLX0lORk9fVjNfMV9HRVRfUExMVkNPX0ZSRVEgPSAxLAoxNDQ3NDog
ICBHRVRfU01VX0NMT0NLX0lORk9fVjNfMV9HRVRfUExMUkVGQ0xLX0ZSRVEgPSAyLAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3NtdTlfc3lzcGxsMF9jbG9ja19pZAoxNDQ3NDog
ewoxNDQ3NDogICBTTVU5X1NZU1BMTDBfU01OQ0xLX0lEID0gMCwKMTQ0NzQ6ICAgU01VOV9TWVNQ
TEwwX1NPQ0NMS19JRCA9IDEsCjE0NDc0OiAgIFNNVTlfU1lTUExMMF9NUDBDTEtfSUQgPSAyLAox
NDQ3NDogICBTTVU5X1NZU1BMTDBfTVAxQ0xLX0lEID0gMywKMTQ0NzQ6ICAgU01VOV9TWVNQTEww
X0xDTEtfSUQgPSA0LAoxNDQ3NDogICBTTVU5X1NZU1BMTDBfRENMS19JRCA9IDUsCjE0NDc0OiAg
IFNNVTlfU1lTUExMMF9WQ0xLX0lEID0gNiwKMTQ0NzQ6ICAgU01VOV9TWVNQTEwwX0VDTEtfSUQg
PSA3LAoxNDQ3NDogICBTTVU5X1NZU1BMTDBfRENFRkNMS19JRCA9IDgsCjE0NDc0OiAgIFNNVTlf
U1lTUExMMF9EUFJFRkNMS19JRCA9IDEwLAoxNDQ3NDogICBTTVU5X1NZU1BMTDBfRElTUENMS19J
RCA9IDExLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3NtdTExX3N5c3BsbF9p
ZCB7CjE0NDc0OiAgIFNNVTExX1NZU1BMTDBfSUQgPSAwLAoxNDQ3NDogICBTTVUxMV9TWVNQTEwx
XzBfSUQgPSAxLAoxNDQ3NDogICBTTVUxMV9TWVNQTEwxXzFfSUQgPSAyLAoxNDQ3NDogICBTTVUx
MV9TWVNQTEwxXzJfSUQgPSAzLAoxNDQ3NDogICBTTVUxMV9TWVNQTEwyX0lEID0gNCwKMTQ0NzQ6
ICAgU01VMTFfU1lTUExMM18wX0lEID0gNSwKMTQ0NzQ6ICAgU01VMTFfU1lTUExMM18xX0lEID0g
NiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zbXUxMV9zeXNwbGwwX2Nsb2Nr
X2lkIHsKMTQ0NzQ6ICAgU01VMTFfU1lTUExMMF9FQ0xLX0lEID0gMCwKMTQ0NzQ6ICAgU01VMTFf
U1lTUExMMF9TT0NDTEtfSUQgPSAxLAoxNDQ3NDogICBTTVUxMV9TWVNQTEwwX01QMENMS19JRCA9
IDIsCjE0NDc0OiAgIFNNVTExX1NZU1BMTDBfRENMS19JRCA9IDMsCjE0NDc0OiAgIFNNVTExX1NZ
U1BMTDBfVkNMS19JRCA9IDQsCjE0NDc0OiAgIFNNVTExX1NZU1BMTDBfRENFRkNMS19JRCA9IDUs
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fc211MTFfc3lzcGxsMV8wX2Nsb2Nr
X2lkIHsKMTQ0NzQ6ICAgU01VMTFfU1lTUExMMV8wX1VDTEtBX0lEID0gMCwKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zbXUxMV9zeXNwbGwxXzFfY2xvY2tfaWQgewoxNDQ3NDog
ICBTTVUxMV9TWVNQTEwxXzBfVUNMS0JfSUQgPSAwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBhdG9tX3NtdTExX3N5c3BsbDFfMl9jbG9ja19pZCB7CjE0NDc0OiAgIFNNVTExX1NZU1BM
TDFfMF9GQ0xLX0lEID0gMCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zbXUx
MV9zeXNwbGwyX2Nsb2NrX2lkIHsKMTQ0NzQ6ICAgU01VMTFfU1lTUExMMl9HRlhDTEtfSUQgPSAw
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3NtdTExX3N5c3BsbDNfMF9jbG9j
a19pZCB7CjE0NDc0OiAgIFNNVTExX1NZU1BMTDNfMF9XQUZDTEtfSUQgPSAwLAoxNDQ3NDogICBT
TVUxMV9TWVNQTEwzXzBfRElTUENMS19JRCA9IDEsCjE0NDc0OiAgIFNNVTExX1NZU1BMTDNfMF9E
UFJFRkNMS19JRCA9IDIsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fc211MTFf
c3lzcGxsM18xX2Nsb2NrX2lkIHsKMTQ0NzQ6ICAgU01VMTFfU1lTUExMM18xX01QMUNMS19JRCA9
IDAsCjE0NDc0OiAgIFNNVTExX1NZU1BMTDNfMV9TTU5DTEtfSUQgPSAxLAoxNDQ3NDogICBTTVUx
MV9TWVNQTEwzXzFfTENMS19JRCA9IDIsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YXRvbV9nZXRfc211X2Nsb2NrX2luZm9fb3V0cHV0X3BhcmFtZXRlcnNfdjNfMQoxNDQ3NDogewox
NDQ3NDogICB1bmlvbiB7CjE0NDc0OiAgICAgdWludDMyX3Qgc211X2Nsb2NrX2ZyZXFfaHo7CjE0
NDc0OiAgICAgdWludDMyX3Qgc3lzcGxsdmNvZnJlcV8xMGtoejsKMTQ0NzQ6ICAgICB1aW50MzJf
dCBzeXNzcGxscmVmY2xrXzEwa2h6OwoxNDQ3NDogICB9YXRvbV9zbXVfb3V0cHV0Y2xrZnJlcTsK
MTQ0NzQ6IH07CjE0NDc0OiAjIDI2MTUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
aW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKMTQ0NzQ6IGVudW0gYXRvbV9keW5hbWljX21lbW9yeV9z
ZXR0aW5nX2NvbW1hbmQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgQ09NUFVURV9NRU1PUllfUExMX1BBUkFN
ID0gMSwKMTQ0NzQ6ICAgQ09NUFVURV9FTkdJTkVfUExMX1BBUkFNID0gMiwKMTQ0NzQ6ICAgQURK
VVNUX01DX1NFVFRJTkdfUEFSQU0gPSAzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZHluYW1pY19tY2xrX3NldHRpbmdzX3BhcmFtZXRlcnNfdjJfMQoxNDQ3NDogewox
NDQ3NDogICB1aW50MzJfdCBtY2xrXzEwa2h6OjI0OwoxNDQ3NDogICB1aW50MzJfdCBjb21tYW5k
Ojg7CjE0NDc0OiAgIHVpbnQzMl90IHJlc2VydmVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZHluYW1pY19zY2xrX3NldHRpbmdzX3BhcmFtZXRlcnNfdjJfMQoxNDQ3
NDogewoxNDQ3NDogICB1aW50MzJfdCBzY2xrXzEwa2h6OjI0OwoxNDQ3NDogICB1aW50MzJfdCBj
b21tYW5kOjg7CjE0NDc0OiAgIHVpbnQzMl90IG1jbGtfMTBraHo7CjE0NDc0OiAgIHVpbnQzMl90
IHJlc2VydmVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHluYW1pY19tZW1vcnlf
c2V0dGluZ3NfcGFyYW1ldGVyc192Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBkeW5hbWlj
X21jbGtfc2V0dGluZ3NfcGFyYW1ldGVyc192Ml8xIG1jbGtfc2V0dGluZzsKMTQ0NzQ6ICAgc3Ry
dWN0IGR5bmFtaWNfc2Nsa19zZXR0aW5nc19wYXJhbWV0ZXJzX3YyXzEgc2Nsa19zZXR0aW5nOwox
NDQ3NDogfTsKMTQ0NzQ6ICMgMjY1MyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9p
bmNsdWRlL2F0b21maXJtd2FyZS5oIgoxNDQ3NDogZW51bSBhdG9tX3VtYzZfMF91Y29kZV9mdW5j
dGlvbl9jYWxsX2VudW1faWQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgVU1DNjBfVUNPREVfRlVOQ19JRF9S
RUlOSVQgPSAwLAoxNDQ3NDogICBVTUM2MF9VQ09ERV9GVU5DX0lEX0VOVEVSX1NFTEZSRUZSRVNI
ID0gMSwKMTQ0NzQ6ICAgVU1DNjBfVUNPREVfRlVOQ19JRF9FWElUX1NFTEZSRUZSRVNIID0gMiwK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1lbW9yeV90cmFpbmluZ19w
YXJhbWV0ZXJzX3YyXzEKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDhfdCB1Y29kZV9mdW5jX2lkOwox
NDQ3NDogICB1aW50OF90IHVjb2RlX3Jlc2VydmVkWzNdOwoxNDQ3NDogICB1aW50MzJfdCByZXNl
cnZlZFs1XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI2NzUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKMTQ0NzQ6IHN0cnVjdCBzZXRfcGl4ZWxf
Y2xvY2tfcGFyYW1ldGVyX3YxXzcKMTQ0NzQ6IHsKMTQ0NzQ6ICAgICB1aW50MzJfdCBwaXhjbGtf
MTAwaHo7CjE0NDc0OiAKMTQ0NzQ6ICAgICB1aW50OF90IHBsbF9pZDsKMTQ0NzQ6ICAgICB1aW50
OF90IGVuY29kZXJvYmppZDsKMTQ0NzQ6IAoxNDQ3NDogICAgIHVpbnQ4X3QgZW5jb2Rlcl9tb2Rl
OwoxNDQ3NDogICAgIHVpbnQ4X3QgbWlzY2luZm87CjE0NDc0OiAgICAgdWludDhfdCBjcnRjX2lk
OwoxNDQ3NDogICAgIHVpbnQ4X3QgZGVlcF9jb2xvcl9yYXRpbzsKMTQ0NzQ6ICAgICB1aW50OF90
IHJlc2VydmVkMVsyXTsKMTQ0NzQ6ICAgICB1aW50MzJfdCByZXNlcnZlZDI7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zZXRfcGl4ZWxfY2xvY2tfdjFfN19taXNj
X2luZm8KMTQ0NzQ6IHsKMTQ0NzQ6ICAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19GT1JDRV9QUk9HX1BQ
TEwgPSAweDAxLAoxNDQ3NDogICBQSVhFTF9DTE9DS19WN19NSVNDX1BST0dfUEhZUExMID0gMHgw
MiwKMTQ0NzQ6ICAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19ZVVY0MjBfTU9ERSA9IDB4MDQsCjE0NDc0
OiAgIFBJWEVMX0NMT0NLX1Y3X01JU0NfRFZJX0RVQUxMSU5LX0VOID0gMHgwOCwKMTQ0NzQ6ICAg
UElYRUxfQ0xPQ0tfVjdfTUlTQ19SRUZfRElWX1NSQyA9IDB4MzAsCjE0NDc0OiAgIFBJWEVMX0NM
T0NLX1Y3X01JU0NfUkVGX0RJVl9TUkNfWFRBTElOID0gMHgwMCwKMTQ0NzQ6ICAgUElYRUxfQ0xP
Q0tfVjdfTUlTQ19SRUZfRElWX1NSQ19QQ0lFID0gMHgxMCwKMTQ0NzQ6ICAgUElYRUxfQ0xPQ0tf
VjdfTUlTQ19SRUZfRElWX1NSQ19HRU5MSyA9IDB4MjAsCjE0NDc0OiAgIFBJWEVMX0NMT0NLX1Y3
X01JU0NfUkVGX0RJVl9TUkNfUkVGUEFEID0gMHgzMCwKMTQ0NzQ6ICAgUElYRUxfQ0xPQ0tfVjdf
TUlTQ19BVE9NSUNfVVBEQVRFID0gMHg0MCwKMTQ0NzQ6ICAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19G
T1JDRV9TU19ESVMgPSAweDgwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVt
IGF0b21fc2V0X3BpeGVsX2Nsb2NrX3YxXzdfZGVlcGNvbG9yX3JhdGlvCjE0NDc0OiB7CjE0NDc0
OiAgIFBJWEVMX0NMT0NLX1Y3X0RFRVBDT0xPUl9SQVRJT19ESVMgPSAweDAwLAoxNDQ3NDogICBQ
SVhFTF9DTE9DS19WN19ERUVQQ09MT1JfUkFUSU9fNV80ID0gMHgwMSwKMTQ0NzQ6ICAgUElYRUxf
Q0xPQ0tfVjdfREVFUENPTE9SX1JBVElPXzNfMiA9IDB4MDIsCjE0NDc0OiAgIFBJWEVMX0NMT0NL
X1Y3X0RFRVBDT0xPUl9SQVRJT18yXzEgPSAweDAzLAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjcyMiAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgox
NDQ3NDogc3RydWN0IHNldF9kY2VfY2xvY2tfcGFyYW1ldGVyc192Ml8xCjE0NDc0OiB7CjE0NDc0
OiAgIHVpbnQzMl90IGRjZWNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDhfdCBkY2VjbGt0eXBlOwox
NDQ3NDogICB1aW50OF90IGRjZWNsa3NyYzsKMTQ0NzQ6ICAgdWludDhfdCBkY2VjbGtmbGFnOwox
NDQ3NDogICB1aW50OF90IGNydGNfaWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGVudW0gYXRvbV9zZXRfZGNlX2Nsb2NrX2Nsb2NrX3R5cGUKMTQ0NzQ6IHsKMTQ0NzQ6ICAgRENF
X0NMT0NLX1RZUEVfRElTUENMSyA9IDAsCjE0NDc0OiAgIERDRV9DTE9DS19UWVBFX0RQUkVGQ0xL
ID0gMSwKMTQ0NzQ6ICAgRENFX0NMT0NLX1RZUEVfUElYRUxDTEsgPSAyLAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fc2V0X2RjZV9jbG9ja19kcHJlZmNsa19mbGFn
CjE0NDc0OiB7CjE0NDc0OiAgIERDRV9DTE9DS19GTEFHX1BMTF9SRUZDTEtfU1JDX01BU0sgPSAw
eDAzLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QTExfUkVGQ0xLX1NSQ19HRU5FUklDQSA9IDB4
MDAsCjE0NDc0OiAgIERDRV9DTE9DS19GTEFHX1BMTF9SRUZDTEtfU1JDX0dFTkxLID0gMHgwMSwK
MTQ0NzQ6ICAgRENFX0NMT0NLX0ZMQUdfUExMX1JFRkNMS19TUkNfUENJRSA9IDB4MDIsCjE0NDc0
OiAgIERDRV9DTE9DS19GTEFHX1BMTF9SRUZDTEtfU1JDX1hUQUxJTiA9IDB4MDMsCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zZXRfZGNlX2Nsb2NrX3BpeGNsa19m
bGFnCjE0NDc0OiB7CjE0NDc0OiAgIERDRV9DTE9DS19GTEFHX1BDTEtfREVFUENPTE9SX1JBVElP
X01BU0sgPSAweDAzLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QQ0xLX0RFRVBDT0xPUl9SQVRJ
T19ESVMgPSAweDAwLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QQ0xLX0RFRVBDT0xPUl9SQVRJ
T181XzQgPSAweDAxLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QQ0xLX0RFRVBDT0xPUl9SQVRJ
T18zXzIgPSAweDAyLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QQ0xLX0RFRVBDT0xPUl9SQVRJ
T18yXzEgPSAweDAzLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QSVhDTEtfWVVWNDIwX01PREUg
PSAweDA0LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNldF9kY2VfY2xvY2tfcHNf
YWxsb2NhdGlvbl92Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBzZXRfZGNlX2Nsb2NrX3Bh
cmFtZXRlcnNfdjJfMSBwYXJhbTsKMTQ0NzQ6ICAgdWludDMyX3QgdWxSZXNlcnZlZFsyXTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGJsYW5rX2NydGNfcGFyYW1ldGVycwoxNDQ3NDogewoxNDQ3NDogICB1aW50OF90IGNydGNf
aWQ7CjE0NDc0OiAgIHVpbnQ4X3QgYmxhbmtpbmc7CjE0NDc0OiAgIHVpbnQxNl90IHJlc2VydmVk
OwoxNDQ3NDogICB1aW50MzJfdCByZXNlcnZlZDE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBl
bnVtIGF0b21fYmxhbmtfY3J0Y19jb21tYW5kCjE0NDc0OiB7CjE0NDc0OiAgIEFUT01fQkxBTktJ
TkcgPSAxLAoxNDQ3NDogICBBVE9NX0JMQU5LSU5HX09GRiA9IDAsCjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZW5hYmxlX2NydGNfcGFyYW1l
dGVycwoxNDQ3NDogewoxNDQ3NDogICB1aW50OF90IGNydGNfaWQ7CjE0NDc0OiAgIHVpbnQ4X3Qg
ZW5hYmxlOwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdbMl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBlbmFibGVfZGlzcF9w
b3dlcl9nYXRpbmdfcGFyYW1ldGVyc192Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3QgZGlz
cF9waXBlX2lkOwoxNDQ3NDogICB1aW50OF90IGVuYWJsZTsKMTQ0NzQ6ICAgdWludDhfdCBwYWRk
aW5nWzJdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGVuYWJsZV9kaXNwX3Bvd2Vy
X2dhdGluZ19wc19hbGxvY2F0aW9uCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBlbmFibGVfZGlz
cF9wb3dlcl9nYXRpbmdfcGFyYW1ldGVyc192Ml8xIHBhcmFtOwoxNDQ3NDogICB1aW50MzJfdCB1
bFJlc2VydmVkWzRdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IHNldF9jcnRjX3VzaW5nX2R0ZF90aW1pbmdfcGFyYW1ldGVycwoxNDQ3NDog
ewoxNDQ3NDogICB1aW50MTZfdCBoX3NpemU7CjE0NDc0OiAgIHVpbnQxNl90IGhfYmxhbmtpbmdf
dGltZTsKMTQ0NzQ6ICAgdWludDE2X3Qgdl9zaXplOwoxNDQ3NDogICB1aW50MTZfdCB2X2JsYW5r
aW5nX3RpbWU7CjE0NDc0OiAgIHVpbnQxNl90IGhfc3luY29mZnNldDsKMTQ0NzQ6ICAgdWludDE2
X3QgaF9zeW5jd2lkdGg7CjE0NDc0OiAgIHVpbnQxNl90IHZfc3luY29mZnNldDsKMTQ0NzQ6ICAg
dWludDE2X3Qgdl9zeW5jd2lkdGg7CjE0NDc0OiAgIHVpbnQxNl90IG1vZGVtaXNjaW5mbzsKMTQ0
NzQ6ICAgdWludDhfdCBoX2JvcmRlcjsKMTQ0NzQ6ICAgdWludDhfdCB2X2JvcmRlcjsKMTQ0NzQ6
ICAgdWludDhfdCBjcnRjX2lkOwoxNDQ3NDogICB1aW50OF90IGVuY29kZXJfbW9kZTsKMTQ0NzQ6
ICAgdWludDhfdCBwYWRkaW5nWzJdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHJvY2Vzc19pMmNfY2hhbm5lbF90cmFuc2Fj
dGlvbl9wYXJhbWV0ZXJzCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3QgaTJjc3BlZWRfa2h6Owox
NDQ3NDogICB1bmlvbiB7CjE0NDc0OiAgICAgdWludDhfdCByZWdpbmRleDsKMTQ0NzQ6ICAgICB1
aW50OF90IHN0YXR1czsKMTQ0NzQ6ICAgfSByZWdpbmRfc3RhdHVzOwoxNDQ3NDogICB1aW50MTZf
dCBpMmNfZGF0YV9vdXQ7CjE0NDc0OiAgIHVpbnQ4X3QgZmxhZzsKMTQ0NzQ6ICAgdWludDhfdCB0
cmFuc19ieXRlczsKMTQ0NzQ6ICAgdWludDhfdCBzbGF2ZV9hZGRyOwoxNDQ3NDogICB1aW50OF90
IGkyY19pZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3Byb2Nl
c3NfaTJjX2ZsYWcKMTQ0NzQ6IHsKMTQ0NzQ6ICAgSFdfSTJDX1dSSVRFID0gMSwKMTQ0NzQ6ICAg
SFdfSTJDX1JFQUQgPSAwLAoxNDQ3NDogICBJMkNfMkJZVEVfQUREUiA9IDB4MDIsCjE0NDc0OiAg
IEhXX0kyQ19TTUJVU19CWVRFX1dSID0gMHgwNCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogZW51bSBhdG9tX3Byb2Nlc3NfaTJjX3N0YXR1cwoxNDQ3NDogewoxNDQ3NDogICBIV19B
U1NJU1RFRF9JMkNfU1RBVFVTX0ZBSUxVUkUgPTIsCjE0NDc0OiAgIEhXX0FTU0lTVEVEX0kyQ19T
VEFUVVNfU1VDQ0VTUyA9MSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHJvY2Vzc19hdXhfY2hhbm5lbF90cmFu
c2FjdGlvbl9wYXJhbWV0ZXJzX3YxXzIKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDE2X3QgYXV4X3Jl
cXVlc3Q7CjE0NDc0OiAgIHVpbnQxNl90IGRhdGFvdXQ7CjE0NDc0OiAgIHVpbnQ4X3QgY2hhbm5l
bGlkOwoxNDQ3NDogICB1bmlvbiB7CjE0NDc0OiAgICAgdWludDhfdCByZXBseV9zdGF0dXM7CjE0
NDc0OiAgICAgdWludDhfdCBhdXhfZGVsYXk7CjE0NDc0OiAgIH0gYXV4X3N0YXR1c19kZWxheTsK
MTQ0NzQ6ICAgdWludDhfdCBkYXRhb3V0X2xlbjsKMTQ0NzQ6ICAgdWludDhfdCBocGRfaWQ7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IHNlbGVjdF9jcnRjX3NvdXJjZV9wYXJhbWV0ZXJzX3YyXzMKMTQ0NzQ6IHsK
MTQ0NzQ6ICAgdWludDhfdCBjcnRjX2lkOwoxNDQ3NDogICB1aW50OF90IGVuY29kZXJfaWQ7CjE0
NDc0OiAgIHVpbnQ4X3QgZW5jb2RlX21vZGU7CjE0NDc0OiAgIHVpbnQ4X3QgZHN0X2JwYzsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9kaWdfZW5jb2Rlcl9jb250cm9sX2FjdGlvbgoxNDQ3NDog
ewoxNDQ3NDogICBBVE9NX0VOQ09ERVJfQ01EX0RJU0FCTEVfRElHID0gMCwKMTQ0NzQ6ICAgQVRP
TV9FTkNPREVSX0NNRF9FTkFCTEVfRElHID0gMSwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NNRF9E
UF9MSU5LX1RSQUlOSU5HX1NUQVJUID0gMHgwOCwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NNRF9E
UF9MSU5LX1RSQUlOSU5HX1BBVFRFUk4xID0gMHgwOSwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NN
RF9EUF9MSU5LX1RSQUlOSU5HX1BBVFRFUk4yID0gMHgwYSwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVS
X0NNRF9EUF9MSU5LX1RSQUlOSU5HX1BBVFRFUk4zID0gMHgxMywKMTQ0NzQ6ICAgQVRPTV9FTkNP
REVSX0NNRF9EUF9MSU5LX1RSQUlOSU5HX0NPTVBMRVRFID0gMHgwYiwKMTQ0NzQ6ICAgQVRPTV9F
TkNPREVSX0NNRF9EUF9WSURFT19PRkYgPSAweDBjLAoxNDQ3NDogICBBVE9NX0VOQ09ERVJfQ01E
X0RQX1ZJREVPX09OID0gMHgwZCwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NNRF9TRVRVUF9QQU5F
TF9NT0RFID0gMHgxMCwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NNRF9EUF9MSU5LX1RSQUlOSU5H
X1BBVFRFUk40ID0gMHgxNCwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NNRF9TVFJFQU1fU0VUVVAg
PSAweDBGLAoxNDQ3NDogICBBVE9NX0VOQ09ERVJfQ01EX0xJTktfU0VUVVAgPSAweDExLAoxNDQ3
NDogICBBVE9NX0VOQ09ERVJfQ01EX0VOQ09ERVJfQkxBTksgPSAweDEyLAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZGlnX2VuY29kZXJfY29udHJvbF9wYW5lbG1v
ZGUKMTQ0NzQ6IHsKMTQ0NzQ6ICAgRFBfUEFORUxfTU9ERV9ESVNBQkxFID0gMHgwMCwKMTQ0NzQ6
ICAgRFBfUEFORUxfTU9ERV9FTkFCTEVfZURQX01PREUgPSAweDAxLAoxNDQ3NDogICBEUF9QQU5F
TF9NT0RFX0VOQUJMRV9MVkxJTktfTU9ERSA9IDB4MTEsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGVudW0gYXRvbV9kaWdfZW5jb2Rlcl9jb250cm9sX3Y1X2RpZ2lkCjE0NDc0OiB7
CjE0NDc0OiAgIEFUT01fRU5DT0RFUl9DT05GSUdfVjVfRElHMF9FTkNPREVSID0gMHgwMCwKMTQ0
NzQ6ICAgQVRPTV9FTkNPREVSX0NPTkZJR19WNV9ESUcxX0VOQ09ERVIgPSAweDAxLAoxNDQ3NDog
ICBBVE9NX0VOQ09ERVJfQ09ORklHX1Y1X0RJRzJfRU5DT0RFUiA9IDB4MDIsCjE0NDc0OiAgIEFU
T01fRU5DT0RFUl9DT05GSUdfVjVfRElHM19FTkNPREVSID0gMHgwMywKMTQ0NzQ6ICAgQVRPTV9F
TkNPREVSX0NPTkZJR19WNV9ESUc0X0VOQ09ERVIgPSAweDA0LAoxNDQ3NDogICBBVE9NX0VOQ09E
RVJfQ09ORklHX1Y1X0RJRzVfRU5DT0RFUiA9IDB4MDUsCjE0NDc0OiAgIEFUT01fRU5DT0RFUl9D
T05GSUdfVjVfRElHNl9FTkNPREVSID0gMHgwNiwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NPTkZJ
R19WNV9ESUc3X0VOQ09ERVIgPSAweDA3LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRpZ19lbmNvZGVyX3N0cmVhbV9zZXR1cF9wYXJhbWV0ZXJzX3YxXzUKMTQ0NzQ6IHsKMTQ0NzQ6
ICAgdWludDhfdCBkaWdpZDsKMTQ0NzQ6ICAgdWludDhfdCBhY3Rpb247CjE0NDc0OiAgIHVpbnQ4
X3QgZGlnbW9kZTsKMTQ0NzQ6ICAgdWludDhfdCBsYW5lbnVtOwoxNDQ3NDogICB1aW50MzJfdCBw
Y2xrXzEwa2h6OwoxNDQ3NDogICB1aW50OF90IGJpdHBlcmNvbG9yOwoxNDQ3NDogICB1aW50OF90
IGRwbGlua3JhdGVfMjcwbWh6OwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVkWzJdOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRpZ19lbmNvZGVyX2xpbmtfc2V0dXBfcGFyYW1ldGVy
c192MV81CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3QgZGlnaWQ7CjE0NDc0OiAgIHVpbnQ4X3Qg
YWN0aW9uOwoxNDQ3NDogICB1aW50OF90IGRpZ21vZGU7CjE0NDc0OiAgIHVpbnQ4X3QgbGFuZW51
bTsKMTQ0NzQ6ICAgdWludDhfdCBzeW1jbGtfMTBraHo7CjE0NDc0OiAgIHVpbnQ4X3QgaHBkX3Nl
bDsKMTQ0NzQ6ICAgdWludDhfdCBkaWdmZV9zZWw7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWRb
Ml07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBfcGFuZWxfbW9kZV9zZXRfcGFy
YW1ldGVyc192MV81CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3QgZGlnaWQ7CjE0NDc0OiAgIHVp
bnQ4X3QgYWN0aW9uOwoxNDQ3NDogICB1aW50OF90IHBhbmVsbW9kZTsKMTQ0NzQ6ICAgdWludDhf
dCByZXNlcnZlZDE7CjE0NDc0OiAgIHVpbnQzMl90IHJlc2VydmVkMlsyXTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkaWdfZW5jb2Rlcl9nZW5lcmljX2NtZF9wYXJhbWV0ZXJzX3Yx
XzUKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDhfdCBkaWdpZDsKMTQ0NzQ6ICAgdWludDhfdCBhY3Rp
b247CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQxWzJdOwoxNDQ3NDogICB1aW50MzJfdCByZXNl
cnZlZDJbMl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkaWdfZW5jb2Rlcl9jb250
cm9sX3BhcmFtZXRlcnNfdjFfNQoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgZGlnX2VuY29kZXJf
Z2VuZXJpY19jbWRfcGFyYW1ldGVyc192MV81IGNtZF9wYXJhbTsKMTQ0NzQ6ICAgc3RydWN0IGRp
Z19lbmNvZGVyX3N0cmVhbV9zZXR1cF9wYXJhbWV0ZXJzX3YxXzUgc3RyZWFtX3BhcmFtOwoxNDQ3
NDogICBzdHJ1Y3QgZGlnX2VuY29kZXJfbGlua19zZXR1cF9wYXJhbWV0ZXJzX3YxXzUgbGlua19w
YXJhbTsKMTQ0NzQ6ICAgc3RydWN0IGRwX3BhbmVsX21vZGVfc2V0X3BhcmFtZXRlcnNfdjFfNSBk
cHBhbmVsX3BhcmFtOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkaWdfdHJhbnNtaXR0ZXJfY29udHJvbF9wYXJh
bWV0ZXJzX3YxXzYKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDhfdCBwaHlpZDsKMTQ0NzQ6ICAgdWlu
dDhfdCBhY3Rpb247CjE0NDc0OiAgIHVuaW9uIHsKMTQ0NzQ6ICAgICB1aW50OF90IGRpZ21vZGU7
CjE0NDc0OiAgICAgdWludDhfdCBkcGxhbmVzZXQ7CjE0NDc0OiAgIH0gbW9kZV9sYW5lc2V0Owox
NDQ3NDogICB1aW50OF90IGxhbmVudW07CjE0NDc0OiAgIHVpbnQzMl90IHN5bWNsa18xMGtoejsK
MTQ0NzQ6ICAgdWludDhfdCBocGRzZWw7CjE0NDc0OiAgIHVpbnQ4X3QgZGlnZmVfc2VsOwoxNDQ3
NDogICB1aW50OF90IGNvbm5vYmpfaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQ7CjE0NDc0
OiAgIHVpbnQzMl90IHJlc2VydmVkMTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
aWdfdHJhbnNtaXR0ZXJfY29udHJvbF9wc19hbGxvY2F0aW9uX3YxXzYKMTQ0NzQ6IHsKMTQ0NzQ6
ICAgc3RydWN0IGRpZ190cmFuc21pdHRlcl9jb250cm9sX3BhcmFtZXRlcnNfdjFfNiBwYXJhbTsK
MTQ0NzQ6ICAgdWludDMyX3QgcmVzZXJ2ZWRbNF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IGVudW0gYXRvbV9kaWdfdHJhbnNtaXR0ZXJfY29udHJvbF9hY3Rpb24KMTQ0NzQ6IHsK
MTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fRElTQUJMRSA9IDAsCjE0NDc0OiAgIEFU
T01fVFJBTlNNSVRURVJfQUNUSU9OX0VOQUJMRSA9IDEsCjE0NDc0OiAgIEFUT01fVFJBTlNNSVRU
RVJfQUNUSU9OX0xDRF9CTE9GRiA9IDIsCjE0NDc0OiAgIEFUT01fVFJBTlNNSVRURVJfQUNUSU9O
X0xDRF9CTE9OID0gMywKMTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fQkxfQlJJR0hU
TkVTU19DT05UUk9MID0gNCwKMTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fTENEX1NF
TEZURVNUX1NUQVJUID0gNSwKMTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fTENEX1NF
TEZURVNUX1NUT1AgPSA2LAoxNDQ3NDogICBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9JTklUID0g
NywKMTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fRElTQUJMRV9PVVRQVVQgPSA4LAox
NDQ3NDogICBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9FTkFCTEVfT1VUUFVUID0gOSwKMTQ0NzQ6
ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fU0VUVVAgPSAxMCwKMTQ0NzQ6ICAgQVRPTV9UUkFO
U01JVFRFUl9BQ1RJT05fU0VUVVBfVlNFTVBIID0gMTEsCjE0NDc0OiAgIEFUT01fVFJBTlNNSVRU
RVJfQUNUSU9OX1BPV0VSX09OID0gMTIsCjE0NDc0OiAgIEFUT01fVFJBTlNNSVRURVJfQUNUSU9O
X1BPV0VSX09GRiA9IDEzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0
b21fZGlnX3RyYW5zbWl0dGVyX2NvbnRyb2xfZGlnZmVfc2VsCjE0NDc0OiB7CjE0NDc0OiAgIEFU
T01fVFJBTk1TSVRURVJfVjZfX0RJR0FfU0VMID0gMHgwMSwKMTQ0NzQ6ICAgQVRPTV9UUkFOTVNJ
VFRFUl9WNl9fRElHQl9TRUwgPSAweDAyLAoxNDQ3NDogICBBVE9NX1RSQU5NU0lUVEVSX1Y2X19E
SUdDX1NFTCA9IDB4MDQsCjE0NDc0OiAgIEFUT01fVFJBTk1TSVRURVJfVjZfX0RJR0RfU0VMID0g
MHgwOCwKMTQ0NzQ6ICAgQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHRV9TRUwgPSAweDEwLAoxNDQ3
NDogICBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdGX1NFTCA9IDB4MjAsCjE0NDc0OiAgIEFUT01f
VFJBTk1TSVRURVJfVjZfX0RJR0dfU0VMID0gMHg0MCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZGlnX3RyYW5zbWl0dGVyX2NvbnRyb2xfaHBkX3Nl
bAoxNDQ3NDogewoxNDQ3NDogICBBVE9NX1RSQU5TTUlUVEVSX1Y2X05PX0hQRF9TRUwgPSAweDAw
LAoxNDQ3NDogICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQRDFfU0VMID0gMHgwMSwKMTQ0NzQ6ICAg
QVRPTV9UUkFOU01JVFRFUl9WNl9IUEQyX1NFTCA9IDB4MDIsCjE0NDc0OiAgIEFUT01fVFJBTlNN
SVRURVJfVjZfSFBEM19TRUwgPSAweDAzLAoxNDQ3NDogICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQ
RDRfU0VMID0gMHgwNCwKMTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9WNl9IUEQ1X1NFTCA9IDB4
MDUsCjE0NDc0OiAgIEFUT01fVFJBTlNNSVRURVJfVjZfSFBENl9TRUwgPSAweDA2LAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZGlnX3RyYW5zbWl0dGVyX2NvbnRy
b2xfZHBsYW5lc2V0CjE0NDc0OiB7CjE0NDc0OiAgIERQX0xBTkVfU0VUX18wREJfMF80ViA9IDB4
MDAsCjE0NDc0OiAgIERQX0xBTkVfU0VUX18wREJfMF82ViA9IDB4MDEsCjE0NDc0OiAgIERQX0xB
TkVfU0VUX18wREJfMF84ViA9IDB4MDIsCjE0NDc0OiAgIERQX0xBTkVfU0VUX18wREJfMV8yViA9
IDB4MDMsCjE0NDc0OiAgIERQX0xBTkVfU0VUX18zXzVEQl8wXzRWID0gMHgwOCwKMTQ0NzQ6ICAg
RFBfTEFORV9TRVRfXzNfNURCXzBfNlYgPSAweDA5LAoxNDQ3NDogICBEUF9MQU5FX1NFVF9fM181
REJfMF84ViA9IDB4MGEsCjE0NDc0OiAgIERQX0xBTkVfU0VUX182REJfMF80ViA9IDB4MTAsCjE0
NDc0OiAgIERQX0xBTkVfU0VUX182REJfMF82ViA9IDB4MTEsCjE0NDc0OiAgIERQX0xBTkVfU0VU
X185XzVEQl8wXzRWID0gMHgxOCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBleHRlcm5hbF9lbmNv
ZGVyX2NvbnRyb2xfcGFyYW1ldGVyc192Ml80CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQxNl90IHBp
eGVsY2xvY2tfMTBraHo7CjE0NDc0OiAgIHVpbnQ4X3QgY29uZmlnOwoxNDQ3NDogICB1aW50OF90
IGFjdGlvbjsKMTQ0NzQ6ICAgdWludDhfdCBlbmNvZGVybW9kZTsKMTQ0NzQ6ICAgdWludDhfdCBs
YW5lbnVtOwoxNDQ3NDogICB1aW50OF90IGJpdHBlcmNvbG9yOwoxNDQ3NDogICB1aW50OF90IGhw
ZF9pZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGV4dGVy
bmFsX2VuY29kZXJfY29udHJvbF9hY3Rpb25fZGVmCjE0NDc0OiB7CjE0NDc0OiAgIEVYVEVSTkFM
X0VOQ09ERVJfQUNUSU9OX1YzX0RJU0FCTEVfT1VUUFVUID0gMHgwMCwKMTQ0NzQ6ICAgRVhURVJO
QUxfRU5DT0RFUl9BQ1RJT05fVjNfRU5BQkxFX09VVFBVVCA9IDB4MDEsCjE0NDc0OiAgIEVYVEVS
TkFMX0VOQ09ERVJfQUNUSU9OX1YzX0VOQ09ERVJfSU5JVCA9IDB4MDcsCjE0NDc0OiAgIEVYVEVS
TkFMX0VOQ09ERVJfQUNUSU9OX1YzX0VOQ09ERVJfU0VUVVAgPSAweDBmLAoxNDQ3NDogICBFWFRF
Uk5BTF9FTkNPREVSX0FDVElPTl9WM19FTkNPREVSX0JMQU5LSU5HX09GRiA9IDB4MTAsCjE0NDc0
OiAgIEVYVEVSTkFMX0VOQ09ERVJfQUNUSU9OX1YzX0VOQ09ERVJfQkxBTktJTkcgPSAweDExLAox
NDQ3NDogICBFWFRFUk5BTF9FTkNPREVSX0FDVElPTl9WM19EQUNMT0FEX0RFVEVDVElPTiA9IDB4
MTIsCjE0NDc0OiAgIEVYVEVSTkFMX0VOQ09ERVJfQUNUSU9OX1YzX0REQ19TRVRVUCA9IDB4MTQs
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZXh0ZXJuYWxfZW5jb2Rlcl9j
b250cm9sX3YyXzRfY29uZmlnX2RlZgoxNDQ3NDogewoxNDQ3NDogICBFWFRFUk5BTF9FTkNPREVS
X0NPTkZJR19WM19EUExJTktSQVRFX01BU0sgPSAweDAzLAoxNDQ3NDogICBFWFRFUk5BTF9FTkNP
REVSX0NPTkZJR19WM19EUExJTktSQVRFXzFfNjJHSFogPSAweDAwLAoxNDQ3NDogICBFWFRFUk5B
TF9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFXzJfNzBHSFogPSAweDAxLAoxNDQ3NDogICBF
WFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFXzVfNDBHSFogPSAweDAyLAoxNDQ3
NDogICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFXzNfMjRHSFogPSAweDAz
LAoxNDQ3NDogICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19FTkNPREVSX1NFTF9NQUtTID0g
MHg3MCwKMTQ0NzQ6ICAgRVhURVJOQUxfRU5DT0RFUl9DT05GSUdfVjNfRU5DT0RFUjEgPSAweDAw
LAoxNDQ3NDogICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19FTkNPREVSMiA9IDB4MTAsCjE0
NDc0OiAgIEVYVEVSTkFMX0VOQ09ERVJfQ09ORklHX1YzX0VOQ09ERVIzID0gMHgyMCwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBleHRlcm5hbF9lbmNvZGVyX2NvbnRyb2xfcHNfYWxs
b2NhdGlvbl92Ml80CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBleHRlcm5hbF9lbmNvZGVyX2Nv
bnRyb2xfcGFyYW1ldGVyc192Ml80IHNFeHRFbmNvZGVyOwoxNDQ3NDogICB1aW50MzJfdCByZXNl
cnZlZFsyXTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDMxMzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKMTQ0NzQ6IHN0cnVjdCBhbWRfYWNwaV9k
ZXNjcmlwdGlvbl9oZWFkZXJ7CjE0NDc0OiAgIHVpbnQzMl90IHNpZ25hdHVyZTsKMTQ0NzQ6ICAg
dWludDMyX3QgdGFibGVMZW5ndGg7CjE0NDc0OiAgIHVpbnQ4X3QgcmV2aXNpb247CjE0NDc0OiAg
IHVpbnQ4X3QgY2hlY2tzdW07CjE0NDc0OiAgIHVpbnQ4X3Qgb2VtSWRbNl07CjE0NDc0OiAgIHVp
bnQ4X3Qgb2VtVGFibGVJZFs4XTsKMTQ0NzQ6ICAgdWludDMyX3Qgb2VtUmV2aXNpb247CjE0NDc0
OiAgIHVpbnQzMl90IGNyZWF0b3JJZDsKMTQ0NzQ6ICAgdWludDMyX3QgY3JlYXRvclJldmlzaW9u
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHVlZmlfYWNwaV92ZmN0ewoxNDQ3NDog
ICBzdHJ1Y3QgYW1kX2FjcGlfZGVzY3JpcHRpb25faGVhZGVyIHNoZWFkZXI7CjE0NDc0OiAgIHVp
bnQ4X3QgdGFibGVVVUlEWzE2XTsKMTQ0NzQ6ICAgdWludDMyX3QgdmJpb3NpbWFnZW9mZnNldDsK
MTQ0NzQ6ICAgdWludDMyX3QgbGliMUltYWdlb2Zmc2V0OwoxNDQ3NDogICB1aW50MzJfdCByZXNl
cnZlZFs0XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB2ZmN0X2ltYWdlX2hlYWRl
cnsKMTQ0NzQ6ICAgdWludDMyX3QgcGNpYnVzOwoxNDQ3NDogICB1aW50MzJfdCBwY2lkZXZpY2U7
CjE0NDc0OiAgIHVpbnQzMl90IHBjaWZ1bmN0aW9uOwoxNDQ3NDogICB1aW50MTZfdCB2ZW5kb3Jp
ZDsKMTQ0NzQ6ICAgdWludDE2X3QgZGV2aWNlaWQ7CjE0NDc0OiAgIHVpbnQxNl90IHNzdmlkOwox
NDQ3NDogICB1aW50MTZfdCBzc2lkOwoxNDQ3NDogICB1aW50MzJfdCByZXZpc2lvbjsKMTQ0NzQ6
ICAgdWludDMyX3QgaW1hZ2VsZW5ndGg7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBnb3BfdmJpb3NfY29udGVudCB7CjE0NDc0OiAgIHN0cnVjdCB2ZmN0X2ltYWdlX2hl
YWRlciB2Ymlvc2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCB2Ymlvc2NvbnRlbnRbMV07CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZ29wX2xpYjFfY29udGVudCB7CjE0NDc0OiAgIHN0
cnVjdCB2ZmN0X2ltYWdlX2hlYWRlciBsaWIxaGVhZGVyOwoxNDQ3NDogICB1aW50OF90IGxpYjFj
b250ZW50WzFdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzE5MCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgoxNDQ3NDogZW51bSBzY3JhdGNoX3Jl
Z2lzdGVyX2RlZnsKMTQ0NzQ6ICAgQVRPTV9ERVZJQ0VfQ09OTkVDVF9JTkZPX0RFRiA9IDAsCjE0
NDc0OiAgIEFUT01fQkxfQlJJX0xFVkVMX0lORk9fREVGID0gMiwKMTQ0NzQ6ICAgQVRPTV9BQ1RJ
VkVfSU5GT19ERUYgPSAzLAoxNDQ3NDogICBBVE9NX0xDRF9JTkZPX0RFRiA9IDQsCjE0NDc0OiAg
IEFUT01fREVWSUNFX1JFUV9JTkZPX0RFRiA9IDUsCjE0NDc0OiAgIEFUT01fQUNDX0NIQU5HRV9J
TkZPX0RFRiA9IDYsCjE0NDc0OiAgIEFUT01fUFJFX09TX01PREVfSU5GT19ERUYgPSA3LAoxNDQ3
NDogICBBVE9NX1BSRV9PU19BU1NFUlRJT05fREVGID0gOCwKMTQ0NzQ6ICAgQVRPTV9JTlRFUk5B
TF9USU1FUl9JTkZPX0RFRiA9IDEwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBzY3Jh
dGNoX2RldmljZV9jb25uZWN0X2luZm9fYml0X2RlZnsKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0xD
RDFfQ09OTkVDVCA9MHgwMDAyLAoxNDQ3NDogICBBVE9NX0RJU1BMQVlfREZQMV9DT05ORUNUID0w
eDAwMDgsCjE0NDc0OiAgIEFUT01fRElTUExBWV9ERlAyX0NPTk5FQ1QgPTB4MDA4MCwKMTQ0NzQ6
ICAgQVRPTV9ESVNQTEFZX0RGUDNfQ09OTkVDVCA9MHgwMjAwLAoxNDQ3NDogICBBVE9NX0RJU1BM
QVlfREZQNF9DT05ORUNUID0weDA0MDAsCjE0NDc0OiAgIEFUT01fRElTUExBWV9ERlA1X0NPTk5F
Q1QgPTB4MDgwMCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDZfQ09OTkVDVCA9MHgwMDQwLAox
NDQ3NDogICBBVE9NX0RJU1BMQVlfREZQeF9DT05ORUNUID0weDBlYzgsCjE0NDc0OiAgIEFUT01f
Q09OTkVDVF9JTkZPX0RFVklDRV9NQVNLID0weDBmZmYsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBlbnVtIHNjcmF0Y2hfYmxfYnJpX2xldmVsX2luZm9fYml0X2RlZnsKMTQ0NzQ6ICAgQVRPTV9D
VVJSRU5UX0JMX0xFVkVMX1NISUZUID0weDgsCjE0NDc0OiAKMTQ0NzQ6ICAgQVRPTV9DVVJSRU5U
X0JMX0xFVkVMX01BU0sgPTB4MDAwMGZmMDAsCjE0NDc0OiAgIEFUT01fREVWSUNFX0RQTVNfU1RB
VEUgPTB4MDAwMTAwMDAsCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gc2Ny
YXRjaF9hY3RpdmVfaW5mb19iaXRzX2RlZnsKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0xDRDFfQUNU
SVZFID0weDAwMDIsCjE0NDc0OiAgIEFUT01fRElTUExBWV9ERlAxX0FDVElWRSA9MHgwMDA4LAox
NDQ3NDogICBBVE9NX0RJU1BMQVlfREZQMl9BQ1RJVkUgPTB4MDA4MCwKMTQ0NzQ6ICAgQVRPTV9E
SVNQTEFZX0RGUDNfQUNUSVZFID0weDAyMDAsCjE0NDc0OiAgIEFUT01fRElTUExBWV9ERlA0X0FD
VElWRSA9MHgwNDAwLAoxNDQ3NDogICBBVE9NX0RJU1BMQVlfREZQNV9BQ1RJVkUgPTB4MDgwMCwK
MTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDZfQUNUSVZFID0weDAwNDAsCjE0NDc0OiAgIEFUT01f
QUNUSVZFX0lORk9fREVWSUNFX01BU0sgPTB4MGZmZiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gc2NyYXRjaF9kZXZpY2VfcmVxX2luZm9fYml0c19kZWZ7CjE0NDc0OiAgIEFUT01fRElT
UExBWV9MQ0QxX1JFUSA9MHgwMDAyLAoxNDQ3NDogICBBVE9NX0RJU1BMQVlfREZQMV9SRVEgPTB4
MDAwOCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDJfUkVRID0weDAwODAsCjE0NDc0OiAgIEFU
T01fRElTUExBWV9ERlAzX1JFUSA9MHgwMjAwLAoxNDQ3NDogICBBVE9NX0RJU1BMQVlfREZQNF9S
RVEgPTB4MDQwMCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDVfUkVRID0weDA4MDAsCjE0NDc0
OiAgIEFUT01fRElTUExBWV9ERlA2X1JFUSA9MHgwMDQwLAoxNDQ3NDogICBBVE9NX1JFUV9JTkZP
X0RFVklDRV9NQVNLID0weDBmZmYsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHNjcmF0
Y2hfYWNjX2NoYW5nZV9pbmZvX2JpdHNoaWZ0X2RlZnsKMTQ0NzQ6ICAgQVRPTV9BQ0NfQ0hBTkdF
X0FDQ19NT0RFX1NISUZUID00LAoxNDQ3NDogICBBVE9NX0FDQ19DSEFOR0VfTElEX1NUQVRVU19T
SElGVCA9NiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gc2NyYXRjaF9hY2NfY2hhbmdl
X2luZm9fYml0c19kZWZ7CjE0NDc0OiAgIEFUT01fQUNDX0NIQU5HRV9BQ0NfTU9ERSA9MHgwMDAw
MDAxMCwKMTQ0NzQ6ICAgQVRPTV9BQ0NfQ0hBTkdFX0xJRF9TVEFUVVMgPTB4MDAwMDAwNDAsCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHNjcmF0Y2hfcHJlX29zX21vZGVfaW5mb19iaXRz
X2RlZnsKMTQ0NzQ6ICAgQVRPTV9QUkVfT1NfTU9ERV9NQVNLID0weDAwMDAwMDAzLAoxNDQ3NDog
ICBBVE9NX1BSRV9PU19NT0RFX1ZHQSA9MHgwMDAwMDAwMCwKMTQ0NzQ6ICAgQVRPTV9QUkVfT1Nf
TU9ERV9WRVNBID0weDAwMDAwMDAxLAoxNDQ3NDogICBBVE9NX1BSRV9PU19NT0RFX0dPUCA9MHgw
MDAwMDAwMiwKMTQ0NzQ6ICAgQVRPTV9QUkVfT1NfTU9ERV9QSVhFTF9ERVBUSCA9MHgwMDAwMDAw
QywKMTQ0NzQ6ICAgQVRPTV9QUkVfT1NfTU9ERV9QSVhFTF9GT1JNQVRfTUFTSz0weDAwMDAwMEYw
LAoxNDQ3NDogICBBVE9NX1BSRV9PU19NT0RFXzhCSVRfUEFMX0VOID0weDAwMDAwMTAwLAoxNDQ3
NDogICBBVE9NX0FTSUNfSU5JVF9DT01QTEVURSA9MHgwMDAwMDIwMCwKMTQ0NzQ6IAoxNDQ3NDog
ICBBVE9NX1BSRV9PU19NT0RFX05VTUJFUl9NQVNLID0weEZGRkYwMDAwLAoxNDQ3NDogCjE0NDc0
OiB9OwoxNDQ3NDogIyAzMjc2ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1
ZGUvYXRvbWZpcm13YXJlLmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmVpZC5oIiAxCjE0NDc0OiAjIDMxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlaWQuaCIKMTQ0NzQ6IGVu
dW0gYXRvbV9tYXN0ZXJfZGF0YV90YWJsZV9pZAoxNDQ3NDogewoxNDQ3NDogICAgIFZCSU9TX0RB
VEFfVEJMX0lEX19VVElMSVRZX1BJUEVMSU5FLAoxNDQ3NDogICAgIFZCSU9TX0RBVEFfVEJMX0lE
X19NVUxUSU1FRElBX0lORiwKMTQ0NzQ6ICAgICBWQklPU19EQVRBX1RCTF9JRF9fRklSTVdBUkVf
SU5GLAoxNDQ3NDogICAgIFZCSU9TX0RBVEFfVEJMX0lEX19MQ0RfSU5GLAoxNDQ3NDogICAgIFZC
SU9TX0RBVEFfVEJMX0lEX19TTVVfSU5GLAoxNDQ3NDogICAgIFZCSU9TX0RBVEFfVEJMX0lEX19W
UkFNX1VTQUdFX0JZX0ZJUk1XQVJFLAoxNDQ3NDogICAgIFZCSU9TX0RBVEFfVEJMX0lEX19HUElP
X1BJTl9MVVQsCjE0NDc0OiAgICAgVkJJT1NfREFUQV9UQkxfSURfX0dGWF9JTkYsCjE0NDc0OiAg
ICAgVkJJT1NfREFUQV9UQkxfSURfX1BPV0VSX1BMQVlfSU5GLAoxNDQ3NDogICAgIFZCSU9TX0RB
VEFfVEJMX0lEX19ESVNQTEFZX09CSkVDVF9JTkYsCjE0NDc0OiAgICAgVkJJT1NfREFUQV9UQkxf
SURfX0lORElSRUNUX0lPX0FDQ0VTUywKMTQ0NzQ6ICAgICBWQklPU19EQVRBX1RCTF9JRF9fVU1D
X0lORiwKMTQ0NzQ6ICAgICBWQklPU19EQVRBX1RCTF9JRF9fRENFX0lORiwKMTQ0NzQ6ICAgICBW
QklPU19EQVRBX1RCTF9JRF9fVlJBTV9JTkYsCjE0NDc0OiAgICAgVkJJT1NfREFUQV9UQkxfSURf
X0lOVEVHUkFURURfU1lTX0lORiwKMTQ0NzQ6ICAgICBWQklPU19EQVRBX1RCTF9JRF9fQVNJQ19Q
Uk9GSUxJTkdfSU5GLAoxNDQ3NDogICAgIFZCSU9TX0RBVEFfVEJMX0lEX19WT0xUQUdFX09CSl9J
TkYsCjE0NDc0OiAKMTQ0NzQ6ICAgICBWQklPU19EQVRBX1RCTF9JRF9fVU5ERUZJTkVELAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX21hc3Rlcl9jb21tYW5kX3RhYmxlX2lkCjE0
NDc0OiB7CjE0NDc0OiAgICAgVkJJT1NfQ01EX1RCTF9JRF9fQVNJQ19JTklULAoxNDQ3NDogICAg
IFZCSU9TX0NNRF9UQkxfSURfX0RJR1hfRU5DT0RFUl9DT05UUk9MLAoxNDQ3NDogICAgIFZCSU9T
X0NNRF9UQkxfSURfX1NFVF9FTkdJTkVfQ0xPQ0ssCjE0NDc0OiAgICAgVkJJT1NfQ01EX1RCTF9J
RF9fU0VUX01FTU9SWV9DTE9DSywKMTQ0NzQ6ICAgICBWQklPU19DTURfVEJMX0lEX19TRVRfUElY
RUxfQ0xPQ0ssCjE0NDc0OiAgICAgVkJJT1NfQ01EX1RCTF9JRF9fRU5BQkxFX0RJU1BfUE9XRVJf
R0FUSU5HLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX0JMQU5LX0NSVEMsCjE0NDc0OiAg
ICAgVkJJT1NfQ01EX1RCTF9JRF9fRU5BQkxFX0NSVEMsCjE0NDc0OiAgICAgVkJJT1NfQ01EX1RC
TF9JRF9fR0VUX1NNVV9DTE9DS19JTkZPLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX1NF
TEVDVF9DUlRDX1NPVVJDRSwKMTQ0NzQ6ICAgICBWQklPU19DTURfVEJMX0lEX19TRVRfRENFX0NM
T0NLLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX0dFVF9NRU1PUllfQ0xPQ0ssCjE0NDc0
OiAgICAgVkJJT1NfQ01EX1RCTF9JRF9fR0VUX0VOR0lORV9DTE9DSywKMTQ0NzQ6ICAgICBWQklP
U19DTURfVEJMX0lEX19TRVRfQ1JUQ19VU0lOR19EVERfVElNSU5HLAoxNDQ3NDogICAgIFZCSU9T
X0NNRF9UQkxfSURfX0VYVEVOQUxfRU5DT0RFUl9DT05UUk9MLAoxNDQ3NDogICAgIFZCSU9TX0NN
RF9UQkxfSURfX1BST0NFU1NfSTJDX0NIQU5ORUxfVFJBTlNBQ1RJT04sCjE0NDc0OiAgICAgVkJJ
T1NfQ01EX1RCTF9JRF9fQ09NUFVURV9HUFVfQ0xPQ0tfUEFSQU0sCjE0NDc0OiAgICAgVkJJT1Nf
Q01EX1RCTF9JRF9fRFlOQU1JQ19NRU1PUllfU0VUVElOR1MsCjE0NDc0OiAgICAgVkJJT1NfQ01E
X1RCTF9JRF9fTUVNT1JZX1RSQUlOSU5HLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX1NF
VF9WT0xUQUdFLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX0RJRzFfVFJBTlNNSVRURVJf
Q09OVFJPTCwKMTQ0NzQ6ICAgICBWQklPU19DTURfVEJMX0lEX19QUk9DRVNTX0FVWF9DSEFOTkVM
X1RSQU5TQUNUSU9OLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX0dFVF9WT0xUQUdFX0lO
RiwKMTQ0NzQ6IAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX1VOREVGSU5FRCwKMTQ0NzQ6
IH07CjE0NDc0OiAjIDMyNzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVk
ZS9hdG9tZmlybXdhcmUuaCIgMgoxNDQ3NDogI3ByYWdtYSBwYWNrKCkKMTQ0NzQ6ICMgNDEgImRy
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9j
bGtfbWdyLmMiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9p
bmNsdWRlL2FzaWNfcmVnL2Nsay9jbGtfMTBfMF8yX29mZnNldC5oIiAxCjE0NDc0OiAjIDQyICJk
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5f
Y2xrX21nci5jIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
aW5jbHVkZS9hc2ljX3JlZy9jbGsvY2xrXzEwXzBfMl9zaF9tYXNrLmgiIDEKMTQ0NzQ6ICMgNDMg
ImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9y
bl9jbGtfbWdyLmMiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9pbmNsdWRlL3Jlbm9pcl9pcF9vZmZzZXQuaCIgMQoxNDQ3NDogIyAyOCAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL3Jlbm9pcl9pcF9vZmZzZXQuaCIKMTQ0NzQ6IHN0
cnVjdCBJUF9CQVNFX0lOU1RBTkNFCjE0NDc0OiB7CjE0NDc0OiAgICAgdW5zaWduZWQgaW50IHNl
Z21lbnRbNV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgSVBfQkFTRQoxNDQ3NDog
ewoxNDQ3NDogICAgIHN0cnVjdCBJUF9CQVNFX0lOU1RBTkNFIGluc3RhbmNlWzddOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgQUNQ
X0JBU0UgPXsgeyB7IHsgMHgwMjQwMzgwMCwgMHgwMDQ4MDAwMCwgMCwgMCwgMCB9IH0sCjE0NDc0
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAs
IDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
eyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0g
fSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0gfSB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIEFU
SFVCX0JBU0UgPXsgeyB7IHsgMHgwMDAwMEMyMCwgMHgwMjQwOEMwMCwgMCwgMCwgMCB9IH0sCjE0
NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAw
IH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsg
MCwgMCwgMCwgMCwgMCB9IH0gfSB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNF
IENMS19CQVNFID17IHsgeyB7IDB4MDAwMTZDMDAsIDB4MDAwMTZFMDAsIDB4MDAwMTcwMDAsIDB4
MDAwMTdFMDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBj
b25zdCBzdHJ1Y3QgSVBfQkFTRSBEQkdVX0lPMF9CQVNFID17IHsgeyB7IDB4MDAwMDAxRTAsIDB4
MDI0MEI0MDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0
YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBERl9CQVNFID17IHsgeyB7IDB4MDAwMDcwMDAsIDB4
MDI0MEI4MDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0
YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBESU9fQkFTRSA9eyB7IHsgeyAweDAyNDA0MDAwLCAw
LCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0OiBzdGF0aWMgY29u
c3Qgc3RydWN0IElQX0JBU0UgRE1VX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAxMiwgMHgwMDAwMDBD
MCwgMHgwMDAwMzRDMCwgMHgwMDAwOTAwMCwgMHgwMjQwM0MwMCB9IH0sCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwg
MCB9IH0gfSB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIERQQ1NfQkFTRSA9
eyB7IHsgeyAweDAwMDAwMDEyLCAweDAwMDAwMEMwLCAweDAwMDAzNEMwLCAweDAwMDA5MDAwLCAw
eDAyNDAzQzAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0OiBzdGF0aWMgY29u
c3Qgc3RydWN0IElQX0JBU0UgRlVTRV9CQVNFID17IHsgeyB7IDB4MDAwMTc0MDAsIDB4MDI0MDE0
MDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBj
b25zdCBzdHJ1Y3QgSVBfQkFTRSBHQ19CQVNFID17IHsgeyB7IDB4MDAwMDIwMDAsIDB4MDAwMEEw
MDAsIDB4MDI0MDJDMDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAs
IDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
eyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBIREFfQkFTRSA9eyB7IHsgeyAweDAyNDA0ODAw
LCAweDAwNEMwMDAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3
NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAw
LCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0
OiBzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSERQX0JBU0UgPXsgeyB7IHsgMHgwMDAwMEYy
MCwgMHgwMjQwQTQwMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwoxNDQ3
NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIElPSEMwX0JBU0UgPXsgeyB7IHsgMHgwMDAx
MDAwMCwgMHgwMjQwNjAwMCwgMHgwNEVDMDAwMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3
NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAw
LCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9
IH0gfSB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIElTUF9CQVNFID17IHsg
eyB7IDB4MDAwMTgwMDAsIDB4MDI0MEIwMDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBMMklNVTBfQkFTRSA9
eyB7IHsgeyAweDAwMDA3REMwLCAweDAyNDA3MDAwLCAweDAwOTAwMDAwLCAweDA0RkMwMDAwLCAw
eDA1NUMwMDAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0OiBzdGF0aWMgY29u
c3Qgc3RydWN0IElQX0JBU0UgTU1IVUJfQkFTRSA9eyB7IHsgeyAweDAwMDFBMDAwLCAweDAyNDA4
ODAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwK
MTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwg
MCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0OiBzdGF0aWMg
Y29uc3Qgc3RydWN0IElQX0JBU0UgTVAwX0JBU0UgPXsgeyB7IHsgMHgwMDAxNjAwMCwgMHgwMjQz
RkMwMCwgMHgwMERDMDAwMCwgMHgwMEUwMDAwMCwgMHgwMEU0MDAwMCB9IH0sCjE0NDc0OiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAw
LCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0gfSB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE1QMV9CQVNF
ID17IHsgeyB7IDB4MDAwMTYwMDAsIDB4MDI0MDA0MDAsIDB4MDBFODAwMDAsIDB4MDBFQzAwMDAs
IDB4MDBGMDAwMDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBj
b25zdCBzdHJ1Y3QgSVBfQkFTRSBOQklGMF9CQVNFID17IHsgeyB7IDB4MDAwMDAwMDAsIDB4MDAw
MDAwMTQsIDB4MDAwMDBEMjAsIDB4MDAwMTA0MDAsIDB4MDI0MUIwMDAgfSB9LAoxNDQ3NDogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0g
fSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0
NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBEQ05fQkFT
RSA9eyB7IHsgeyAweDAwMDAwMDEyLCAweDAwMDAwMEMwLCAweDAwMDAzNEMwLCAwLCAwIH0gfSwK
MTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwg
MCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Owox
NDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE9TU1NZU19CQVNFID17IHsgeyB7IDB4
MDAwMDEwQTAsIDB4MDI0MEEwMDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9
IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAs
IDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0g
fTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBQQ0lFMF9CQVNFID17IHsgeyB7
IDB4MDI0MTE4MDAsIDB4MDQ0NDAwMDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwg
MCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
IH0gfTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BMF9CQVNFID17IHsg
eyB7IDB4MDAwMDEyNjAsIDB4MDI0MEE4MDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTTVVJT19CQVNFID17
IHsgeyB7IDB4MDAwMTY4MDAsIDB4MDAwMTZBMDAsIDB4MDI0MDEwMDAsIDB4MDA0NDAwMDAsIDAg
fSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwK
MTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwg
MCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3Qg
SVBfQkFTRSBUSE1fQkFTRSA9eyB7IHsgeyAweDAwMDE2NjAwLCAweDAyNDAwQzAwLCAwLCAwLCAw
IH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsg
MCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0s
CjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAs
IDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0OiBzdGF0aWMgY29uc3Qgc3RydWN0
IElQX0JBU0UgVU1DX0JBU0UgPXsgeyB7IHsgMHgwMDAxNDAwMCwgMHgwMjQyNTgwMCwgMCwgMCwg
MCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDB4MDAwNTQwMDAsIDB4MDI0MjVDMDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwg
MCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwoxNDQ3NDog
c3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFVTQjBfQkFTRSA9eyB7IHsgeyAweDAyNDJBODAw
LCAweDA1QjAwMDAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3
NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAw
LCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0
OiBzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgVVZEMF9CQVNFID17IHsgeyB7IDB4MDAwMDc4
MDAsIDB4MDAwMDdFMDAsIDB4MDI0MDMwMDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwg
MCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
IH0gfTsKMTQ0NzQ6ICMgNDQgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKMTQ0NzQ6ICMgNTcgImRyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMi
CjE0NDc0OiBpbnQgcm5fZ2V0X2FjdGl2ZV9kaXNwbGF5X2NudF93YSgKMTQ0NzQ6ICAgc3RydWN0
IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KQoxNDQ3NDogewoxNDQ3
NDogIGludCBpLCBkaXNwbGF5X2NvdW50OwoxNDQ3NDogIGJvb2wgdG1kc19wcmVzZW50ID0gZmFs
c2U7CjE0NDc0OiAKMTQ0NzQ6ICBkaXNwbGF5X2NvdW50ID0gMDsKMTQ0NzQ6ICBmb3IgKGkgPSAw
OyBpIDwgY29udGV4dC0+c3RyZWFtX2NvdW50OyBpKyspIHsKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0
IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtID0gY29udGV4dC0+c3RyZWFtc1tpXTsKMTQ0NzQ6IAox
NDQ3NDogICBpZiAoc3RyZWFtLT5zaWduYWwgPT0gU0lHTkFMX1RZUEVfSERNSV9UWVBFX0EgfHwK
MTQ0NzQ6ICAgICBzdHJlYW0tPnNpZ25hbCA9PSBTSUdOQUxfVFlQRV9EVklfU0lOR0xFX0xJTksg
fHwKMTQ0NzQ6ICAgICBzdHJlYW0tPnNpZ25hbCA9PSBTSUdOQUxfVFlQRV9EVklfRFVBTF9MSU5L
KQoxNDQ3NDogICAgdG1kc19wcmVzZW50ID0gdHJ1ZTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6
ICBmb3IgKGkgPSAwOyBpIDwgZGMtPmxpbmtfY291bnQ7IGkrKykgewoxNDQ3NDogICBjb25zdCBz
dHJ1Y3QgZGNfbGluayAqbGluayA9IGRjLT5saW5rc1tpXTsKMTQ0NzQ6ICMgODQgImRyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdy
LmMiCjE0NDc0OiAgIGlmIChsaW5rLT5jb25uZWN0b3Jfc2lnbmFsID09IFNJR05BTF9UWVBFX1ZJ
UlRVQUwgfHwKMTQ0NzQ6ICAgICBsaW5rLT5saW5rX2VuYy0+ZnVuY3MtPmlzX2RpZ19lbmFibGVk
KGxpbmstPmxpbmtfZW5jKSkKMTQ0NzQ6ICAgIGRpc3BsYXlfY291bnQrKzsKMTQ0NzQ6ICB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGlmIChkaXNwbGF5X2NvdW50ID09IDAgJiYgdG1kc19wcmVz
ZW50KQoxNDQ3NDogICBkaXNwbGF5X2NvdW50ID0gMTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBk
aXNwbGF5X2NvdW50OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB2b2lkIHJuX3VwZGF0ZV9jbG9j
a3Moc3RydWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSwKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdGF0
ZSAqY29udGV4dCwKMTQ0NzQ6ICAgIGJvb2wgc2FmZV90b19sb3dlcikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciA9ICh7IHZvaWQgKl9fbXB0ciA9ICh2
b2lkICopKGNsa19tZ3JfYmFzZSk7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3Nl
cnRfMTAwKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21h
dGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWlsdGluX3R5cGVzX2NvbXBh
dGlibGVfcCh0eXBlb2YoKihjbGtfbWdyX2Jhc2UpKSwgdHlwZW9mKCgoc3RydWN0IGNsa19tZ3Jf
aW50ZXJuYWwgKikwKS0+YmFzZSkpICYmICFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5
cGVvZigqKGNsa19tZ3JfYmFzZSkpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29tcGlsZXRpbWVfYXNz
ZXJ0XzEwMCgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqKShfX21w
dHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwsIGJhc2UpKSk7
IH0pOwoxNDQ3NDogIHN0cnVjdCBkY19jbG9ja3MgKm5ld19jbG9ja3MgPSAmY29udGV4dC0+Yndf
Y3R4LmJ3LmRjbi5jbGs7CjE0NDc0OiAgc3RydWN0IGRjICpkYyA9IGNsa19tZ3JfYmFzZS0+Y3R4
LT5kYzsKMTQ0NzQ6ICBpbnQgZGlzcGxheV9jb3VudDsKMTQ0NzQ6ICBib29sIHVwZGF0ZV9kcHBj
bGsgPSBmYWxzZTsKMTQ0NzQ6ICBib29sIHVwZGF0ZV9kaXNwY2xrID0gZmFsc2U7CjE0NDc0OiAg
Ym9vbCBkcHBfY2xvY2tfbG93ZXJlZCA9IGZhbHNlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRt
Y3UgKmRtY3UgPSBjbGtfbWdyX2Jhc2UtPmN0eC0+ZGMtPnJlc19wb29sLT5kbWN1OwoxNDQ3NDog
CjE0NDc0OiAgaWYgKGRjLT53b3JrX2Fyb3VuZHMuc2tpcF9jbG9ja191cGRhdGUpCjE0NDc0OiAg
IHJldHVybjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
aWYgKHNhZmVfdG9fbG93ZXIpIHsKMTQ0NzQ6IAoxNDQ3NDogICBpZiAoY2xrX21ncl9iYXNlLT5j
bGtzLnB3cl9zdGF0ZSAhPSBEQ05fUFdSX1NUQVRFX0xPV19QT1dFUikgewoxNDQ3NDogCjE0NDc0
OiAgICBkaXNwbGF5X2NvdW50ID0gcm5fZ2V0X2FjdGl2ZV9kaXNwbGF5X2NudF93YShkYywgY29u
dGV4dCk7CjE0NDc0OiAKMTQ0NzQ6ICAgIGlmIChkaXNwbGF5X2NvdW50ID09IDApIHsKMTQ0NzQ6
ICAgICBybl92Ymlvc19zbXVfc2V0X2Rjbl9sb3dfcG93ZXJfc3RhdGUoY2xrX21nciwgRENOX1BX
Ul9TVEFURV9MT1dfUE9XRVIpOwoxNDQ3NDogCjE0NDc0OiAgICAgY2xrX21ncl9iYXNlLT5jbGtz
LnB3cl9zdGF0ZSA9IERDTl9QV1JfU1RBVEVfTE9XX1BPV0VSOwoxNDQ3NDogICAgfQoxNDQ3NDog
ICB9CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6IAoxNDQ3NDogICBpZiAoY2xrX21ncl9iYXNlLT5j
bGtzLnB3cl9zdGF0ZSAhPSBEQ05fUFdSX1NUQVRFX01JU1NJT05fTU9ERSkgewoxNDQ3NDogICAg
cm5fdmJpb3Nfc211X3NldF9kY25fbG93X3Bvd2VyX3N0YXRlKGNsa19tZ3IsIERDTl9QV1JfU1RB
VEVfTUlTU0lPTl9NT0RFKTsKMTQ0NzQ6IAoxNDQ3NDogICAgY2xrX21ncl9iYXNlLT5jbGtzLnB3
cl9zdGF0ZSA9IERDTl9QV1JfU1RBVEVfTUlTU0lPTl9NT0RFOwoxNDQ3NDogICB9CjE0NDc0OiAg
fQoxNDQ3NDogCjE0NDc0OiAgaWYgKHNob3VsZF9zZXRfY2xvY2soc2FmZV90b19sb3dlciwgbmV3
X2Nsb2Nrcy0+cGh5Y2xrX2toeiwgY2xrX21ncl9iYXNlLT5jbGtzLnBoeWNsa19raHopKSB7CjE0
NDc0OiAgIGNsa19tZ3JfYmFzZS0+Y2xrcy5waHljbGtfa2h6ID0gbmV3X2Nsb2Nrcy0+cGh5Y2xr
X2toejsKMTQ0NzQ6ICAgcm5fdmJpb3Nfc211X3NldF9waHljbGsoY2xrX21nciwgY2xrX21ncl9i
YXNlLT5jbGtzLnBoeWNsa19raHopOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogIGlmIChzaG91
bGRfc2V0X2Nsb2NrKHNhZmVfdG9fbG93ZXIsIG5ld19jbG9ja3MtPmRjZmNsa19raHosIGNsa19t
Z3JfYmFzZS0+Y2xrcy5kY2ZjbGtfa2h6KSkgewoxNDQ3NDogICBjbGtfbWdyX2Jhc2UtPmNsa3Mu
ZGNmY2xrX2toeiA9IG5ld19jbG9ja3MtPmRjZmNsa19raHo7CjE0NDc0OiAgIHJuX3ZiaW9zX3Nt
dV9zZXRfaGFyZF9taW5fZGNmY2xrKGNsa19tZ3IsIGNsa19tZ3JfYmFzZS0+Y2xrcy5kY2ZjbGtf
a2h6KTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoc2hvdWxkX3NldF9jbG9jayhzYWZl
X3RvX2xvd2VyLAoxNDQ3NDogICAgbmV3X2Nsb2Nrcy0+ZGNmY2xrX2RlZXBfc2xlZXBfa2h6LCBj
bGtfbWdyX2Jhc2UtPmNsa3MuZGNmY2xrX2RlZXBfc2xlZXBfa2h6KSkgewoxNDQ3NDogICBjbGtf
bWdyX2Jhc2UtPmNsa3MuZGNmY2xrX2RlZXBfc2xlZXBfa2h6ID0gbmV3X2Nsb2Nrcy0+ZGNmY2xr
X2RlZXBfc2xlZXBfa2h6OwoxNDQ3NDogICBybl92Ymlvc19zbXVfc2V0X21pbl9kZWVwX3NsZWVw
X2RjZmNsayhjbGtfbWdyLCBjbGtfbWdyX2Jhc2UtPmNsa3MuZGNmY2xrX2RlZXBfc2xlZXBfa2h6
KTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGlmICghKChkYy0+Y3R4LT5kY2Vf
ZW52aXJvbm1lbnQgPT0gRENFX0VOVl9GUEdBX01BWElNVVMpIHx8IChkYy0+Y3R4LT5kY2VfZW52
aXJvbm1lbnQgPT0gRENFX0VOVl9ESUFHKSkpIHsKMTQ0NzQ6ICAgaWYgKG5ld19jbG9ja3MtPmRw
cGNsa19raHogPCAxMDAwMDApCjE0NDc0OiAgICBuZXdfY2xvY2tzLT5kcHBjbGtfa2h6ID0gMTAw
MDAwOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogIGlmIChzaG91bGRfc2V0X2Nsb2NrKHNhZmVf
dG9fbG93ZXIsIG5ld19jbG9ja3MtPmRwcGNsa19raHosIGNsa19tZ3ItPmJhc2UuY2xrcy5kcHBj
bGtfa2h6KSkgewoxNDQ3NDogICBpZiAoY2xrX21nci0+YmFzZS5jbGtzLmRwcGNsa19raHogPiBu
ZXdfY2xvY2tzLT5kcHBjbGtfa2h6KQoxNDQ3NDogICAgZHBwX2Nsb2NrX2xvd2VyZWQgPSB0cnVl
OwoxNDQ3NDogICBjbGtfbWdyX2Jhc2UtPmNsa3MuZHBwY2xrX2toeiA9IG5ld19jbG9ja3MtPmRw
cGNsa19raHo7CjE0NDc0OiAgIHVwZGF0ZV9kcHBjbGsgPSB0cnVlOwoxNDQ3NDogIH0KMTQ0NzQ6
IAoxNDQ3NDogIGlmIChzaG91bGRfc2V0X2Nsb2NrKHNhZmVfdG9fbG93ZXIsIG5ld19jbG9ja3Mt
PmRpc3BjbGtfa2h6LCBjbGtfbWdyX2Jhc2UtPmNsa3MuZGlzcGNsa19raHopKSB7CjE0NDc0OiAg
IGNsa19tZ3JfYmFzZS0+Y2xrcy5kaXNwY2xrX2toeiA9IG5ld19jbG9ja3MtPmRpc3BjbGtfa2h6
OwoxNDQ3NDogICBybl92Ymlvc19zbXVfc2V0X2Rpc3BjbGsoY2xrX21nciwgY2xrX21ncl9iYXNl
LT5jbGtzLmRpc3BjbGtfa2h6KTsKMTQ0NzQ6IAoxNDQ3NDogICB1cGRhdGVfZGlzcGNsayA9IHRy
dWU7CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0OiAgaWYgKGRwcF9jbG9ja19sb3dlcmVkKSB7CjE0
NDc0OiAKMTQ0NzQ6ICAgZGNuMjBfdXBkYXRlX2Nsb2Nrc191cGRhdGVfZHBwX2R0byhjbGtfbWdy
LCBjb250ZXh0LCBzYWZlX3RvX2xvd2VyKTsKMTQ0NzQ6ICAgcm5fdmJpb3Nfc211X3NldF9kcHBj
bGsoY2xrX21nciwgY2xrX21ncl9iYXNlLT5jbGtzLmRwcGNsa19raHopOwoxNDQ3NDogIH0gZWxz
ZSB7CjE0NDc0OiAKMTQ0NzQ6ICAgaWYgKHVwZGF0ZV9kcHBjbGsgfHwgdXBkYXRlX2Rpc3BjbGsp
CjE0NDc0OiAgICBybl92Ymlvc19zbXVfc2V0X2RwcGNsayhjbGtfbWdyLCBjbGtfbWdyX2Jhc2Ut
PmNsa3MuZHBwY2xrX2toeik7CjE0NDc0OiAKMTQ0NzQ6ICAgaWYgKG5ld19jbG9ja3MtPmRwcGNs
a19raHogPj0gZGMtPmN1cnJlbnRfc3RhdGUtPmJ3X2N0eC5idy5kY24uY2xrLmRwcGNsa19raHop
CjE0NDc0OiAgICBkY24yMF91cGRhdGVfY2xvY2tzX3VwZGF0ZV9kcHBfZHRvKGNsa19tZ3IsIGNv
bnRleHQsIHNhZmVfdG9fbG93ZXIpOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogIGlmICh1cGRh
dGVfZGlzcGNsayAmJgoxNDQ3NDogICAgZG1jdSAmJiBkbWN1LT5mdW5jcy0+aXNfZG1jdV9pbml0
aWFsaXplZChkbWN1KSkgewoxNDQ3NDogCjE0NDc0OiAgIGRtY3UtPmZ1bmNzLT5zZXRfcHNyX3dh
aXRfbG9vcChkbWN1LAoxNDQ3NDogICAgY2xrX21ncl9iYXNlLT5jbGtzLmRpc3BjbGtfa2h6IC8g
MTAwMCAvIDcpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW50IGdldF92Y29fZnJlcXVlbmN5X2Zyb21fcmVnKHN0cnVjdCBjbGtfbWdyX2ludGVybmFs
ICpjbGtfbWdyKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcGxs
X3JlcTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmJtdWx0X2ZyYWNfdmFsID0gMDsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgZmJtdWx0X2ludF92YWwgPSAwOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZ2VuZXJpY19yZWdfZ2V0KGNs
a19tZ3ItPmJhc2UuY3R4LCAoQ0xLX0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDAw
ZiksIDB4MTAsIDB4RkZGRjAwMDBMLCAmZmJtdWx0X2ZyYWNfdmFsKTsKMTQ0NzQ6ICBnZW5lcmlj
X3JlZ19nZXQoY2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50
WzFdICsgMHgwMDBmKSwgMHgwLCAweDAwMDAwMUZGTCwgJmZibXVsdF9pbnRfdmFsKTsKMTQ0NzQ6
IAoxNDQ3NDogIHBsbF9yZXEgPSBkY19maXhwdF9mcm9tX2ludChmYm11bHRfaW50X3ZhbCk7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHBsbF9yZXEudmFs
dWUgfD0gZmJtdWx0X2ZyYWNfdmFsIDw8IDE2OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBwbGxf
cmVxID0gZGNfZml4cHRfbXVsX2ludChwbGxfcmVxLCBjbGtfbWdyLT5kZnNfcmVmX2ZyZXFfa2h6
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGRjX2ZpeHB0X2Zsb29yKHBsbF9yZXEp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgdm9pZCBybl9kdW1wX2Nsa19yZWdpc3Rl
cnNfaW50ZXJuYWwoc3RydWN0IHJuX2Nsa19pbnRlcm5hbCAqaW50ZXJuYWwsIHN0cnVjdCBjbGtf
bWdyICpjbGtfbWdyX2Jhc2UpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGNsa19tZ3JfaW50ZXJu
YWwgKmNsa19tZ3IgPSAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKShjbGtfbWdyX2Jhc2UpOyBk
byB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzIyOSh2b2lkKSBfX2F0dHJpYnV0
ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWluZXJfb2YoKSIp
KSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCooY2xrX21n
cl9iYXNlKSksIHR5cGVvZigoKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICopMCktPmJhc2UpKSAm
JiAhX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKihjbGtfbWdyX2Jhc2UpKSwg
dHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF8yMjkoKTsgfSB3aGlsZSAoMCk7
ICgoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKikoX19tcHRyIC0gX19idWlsdGluX29mZnNldG9m
KHN0cnVjdCBjbGtfbWdyX2ludGVybmFsLCBiYXNlKSkpOyB9KTsKMTQ0NzQ6IAoxNDQ3NDogIGlu
dGVybmFsLT5DTEsxX0NMSzNfQ1VSUkVOVF9DTlQgPSBkbV9yZWFkX3JlZ19mdW5jKGNsa19tZ3It
PmJhc2UuY3R4LCAoQ0xLX0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA4ZCksIF9f
ZnVuY19fKTsKMTQ0NzQ6ICBpbnRlcm5hbC0+Q0xLMV9DTEszX0JZUEFTU19DTlRMID0gZG1fcmVh
ZF9yZWdfZnVuYyhjbGtfbWdyLT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNlWzBdLnNlZ21l
bnRbMV0gKyAweDAwNjcpLCBfX2Z1bmNfXyk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnRlcm5hbC0+Q0xL
MV9DTEszX0RTX0NOVEwgPSBkbV9yZWFkX3JlZ19mdW5jKGNsa19tZ3ItPmJhc2UuY3R4LCAoQ0xL
X0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA2MCksIF9fZnVuY19fKTsKMTQ0NzQ6
ICBpbnRlcm5hbC0+Q0xLMV9DTEszX0FMTE9XX0RTID0gZG1fcmVhZF9yZWdfZnVuYyhjbGtfbWdy
LT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNlWzBdLnNlZ21lbnRbMV0gKyAweDAwNjEpLCBf
X2Z1bmNfXyk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnRlcm5hbC0+Q0xLMV9DTEsxX0NVUlJFTlRfQ05U
ID0gZG1fcmVhZF9yZWdfZnVuYyhjbGtfbWdyLT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNl
WzBdLnNlZ21lbnRbMV0gKyAweDAwOGIpLCBfX2Z1bmNfXyk7CjE0NDc0OiAgaW50ZXJuYWwtPkNM
SzFfQ0xLMV9CWVBBU1NfQ05UTCA9IGRtX3JlYWRfcmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgs
IChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50WzFdICsgMHgwMDUzKSwgX19mdW5jX18pOwox
NDQ3NDogCjE0NDc0OiAgaW50ZXJuYWwtPkNMSzFfQ0xLMl9DVVJSRU5UX0NOVCA9IGRtX3JlYWRf
cmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50
WzFdICsgMHgwMDhjKSwgX19mdW5jX18pOwoxNDQ3NDogIGludGVybmFsLT5DTEsxX0NMSzJfQllQ
QVNTX0NOVEwgPSBkbV9yZWFkX3JlZ19mdW5jKGNsa19tZ3ItPmJhc2UuY3R4LCAoQ0xLX0JBU0Uu
aW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA1ZCksIF9fZnVuY19fKTsKMTQ0NzQ6IAoxNDQ3
NDogIGludGVybmFsLT5DTEsxX0NMSzBfQ1VSUkVOVF9DTlQgPSBkbV9yZWFkX3JlZ19mdW5jKGNs
a19tZ3ItPmJhc2UuY3R4LCAoQ0xLX0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA4
YSksIF9fZnVuY19fKTsKMTQ0NzQ6ICBpbnRlcm5hbC0+Q0xLMV9DTEswX0JZUEFTU19DTlRMID0g
ZG1fcmVhZF9yZWdfZnVuYyhjbGtfbWdyLT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNlWzBd
LnNlZ21lbnRbMV0gKyAweDAwNDkpLCBfX2Z1bmNfXyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIHZvaWQgcm5fZHVtcF9jbGtfcmVnaXN0ZXJzKHN0cnVjdCBjbGtfc3Rh
dGVfcmVnaXN0ZXJzX2FuZF9ieXBhc3MgKnJlZ3NfYW5kX2J5cGFzcywKMTQ0NzQ6ICAgc3RydWN0
IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSwgc3RydWN0IGNsa19sb2dfaW5mbyAqbG9nX2luZm8pCjE0
NDc0OiB7CjE0NDc0OiAgc3RydWN0IHJuX2Nsa19pbnRlcm5hbCBpbnRlcm5hbCA9IHswfTsKMTQ0
NzQ6ICBjaGFyICpieXBhc3NfY2xrc1s1XSA9IHsiMHgwIERGUyIsICIweDEgUkVGQ0xLIiwgIjB4
MiBFUlJPUiIsICIweDMgNDAwIEZDSCIsICIweDQgNjAwIEZDSCJ9OwoxNDQ3NDogIHVuc2lnbmVk
IGludCBjaGFyc19wcmludGVkID0gMDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVtYWluaW5nX2J1
ZmZlciA9IGxvZ19pbmZvLT5idWZTaXplOwoxNDQ3NDogCjE0NDc0OiAgcm5fZHVtcF9jbGtfcmVn
aXN0ZXJzX2ludGVybmFsKCZpbnRlcm5hbCwgY2xrX21ncl9iYXNlKTsKMTQ0NzQ6IAoxNDQ3NDog
IHJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrID0gaW50ZXJuYWwuQ0xLMV9DTEszX0NVUlJFTlRfQ05U
IC8gMTA7CjE0NDc0OiAgcmVnc19hbmRfYnlwYXNzLT5kY2ZfZGVlcF9zbGVlcF9kaXZpZGVyID0g
aW50ZXJuYWwuQ0xLMV9DTEszX0RTX0NOVEwgLyAxMDsKMTQ0NzQ6ICByZWdzX2FuZF9ieXBhc3Mt
PmRjZl9kZWVwX3NsZWVwX2FsbG93ID0gaW50ZXJuYWwuQ0xLMV9DTEszX0FMTE9XX0RTOwoxNDQ3
NDogIHJlZ3NfYW5kX2J5cGFzcy0+ZHByZWZjbGsgPSBpbnRlcm5hbC5DTEsxX0NMSzJfQ1VSUkVO
VF9DTlQgLyAxMDsKMTQ0NzQ6ICByZWdzX2FuZF9ieXBhc3MtPmRpc3BjbGsgPSBpbnRlcm5hbC5D
TEsxX0NMSzBfQ1VSUkVOVF9DTlQgLyAxMDsKMTQ0NzQ6ICByZWdzX2FuZF9ieXBhc3MtPmRwcGNs
ayA9IGludGVybmFsLkNMSzFfQ0xLMV9DVVJSRU5UX0NOVCAvIDEwOwoxNDQ3NDogCjE0NDc0OiAg
cmVnc19hbmRfYnlwYXNzLT5kcHBjbGtfYnlwYXNzID0gaW50ZXJuYWwuQ0xLMV9DTEsxX0JZUEFT
U19DTlRMICYgMHgwMDA3OwoxNDQ3NDogIGlmIChyZWdzX2FuZF9ieXBhc3MtPmRwcGNsa19ieXBh
c3MgPCAwIHx8IHJlZ3NfYW5kX2J5cGFzcy0+ZHBwY2xrX2J5cGFzcyA+IDQpCjE0NDc0OiAgIHJl
Z3NfYW5kX2J5cGFzcy0+ZHBwY2xrX2J5cGFzcyA9IDA7CjE0NDc0OiAgcmVnc19hbmRfYnlwYXNz
LT5kY2ZjbGtfYnlwYXNzID0gaW50ZXJuYWwuQ0xLMV9DTEszX0JZUEFTU19DTlRMICYgMHgwMDA3
OwoxNDQ3NDogIGlmIChyZWdzX2FuZF9ieXBhc3MtPmRjZmNsa19ieXBhc3MgPCAwIHx8IHJlZ3Nf
YW5kX2J5cGFzcy0+ZGNmY2xrX2J5cGFzcyA+IDQpCjE0NDc0OiAgIHJlZ3NfYW5kX2J5cGFzcy0+
ZGNmY2xrX2J5cGFzcyA9IDA7CjE0NDc0OiAgcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFz
cyA9IGludGVybmFsLkNMSzFfQ0xLMF9CWVBBU1NfQ05UTCAmIDB4MDAwNzsKMTQ0NzQ6ICBpZiAo
cmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFzcyA8IDAgfHwgcmVnc19hbmRfYnlwYXNzLT5k
aXNwY2xrX2J5cGFzcyA+IDQpCjE0NDc0OiAgIHJlZ3NfYW5kX2J5cGFzcy0+ZGlzcGNsa19ieXBh
c3MgPSAwOwoxNDQ3NDogIHJlZ3NfYW5kX2J5cGFzcy0+ZHByZWZjbGtfYnlwYXNzID0gaW50ZXJu
YWwuQ0xLMV9DTEsyX0JZUEFTU19DTlRMICYgMHgwMDA3OwoxNDQ3NDogIGlmIChyZWdzX2FuZF9i
eXBhc3MtPmRwcmVmY2xrX2J5cGFzcyA8IDAgfHwgcmVnc19hbmRfYnlwYXNzLT5kcHJlZmNsa19i
eXBhc3MgPiA0KQoxNDQ3NDogICByZWdzX2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5cGFzcyA9IDA7
CjE0NDc0OiAKMTQ0NzQ6ICBpZiAobG9nX2luZm8tPmVuYWJsZWQpIHsKMTQ0NzQ6ICAgY2hhcnNf
cHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVy
LCAiY2xrX3R5cGUsY2xrX3ZhbHVlLGRlZXBzbGVlcF9jbnRsLGRlZXBzbGVlcF9hbGxvdyxieXBh
c3NcbiIpOwoxNDQ3NDogICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CjE0NDc0
OiAgICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6
ICAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6IAoxNDQ3NDogICBjaGFy
c19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZm
ZXIsICJkY2ZjbGssJWQsJWQsJWQsJXNcbiIsCjE0NDc0OiAgICByZWdzX2FuZF9ieXBhc3MtPmRj
ZmNsaywKMTQ0NzQ6ICAgIHJlZ3NfYW5kX2J5cGFzcy0+ZGNmX2RlZXBfc2xlZXBfZGl2aWRlciwK
MTQ0NzQ6ICAgIHJlZ3NfYW5kX2J5cGFzcy0+ZGNmX2RlZXBfc2xlZXBfYWxsb3csCjE0NDc0OiAg
ICBieXBhc3NfY2xrc1soaW50KSByZWdzX2FuZF9ieXBhc3MtPmRjZmNsa19ieXBhc3NdKTsKMTQ0
NzQ6ICAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwoxNDQ3NDogICAqbG9nX2lu
Zm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgIGxvZ19pbmZv
LT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgY2hhcnNfcHJpbnRlZCA9
IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiZHByZWZj
bGssJWQsTi9BLE4vQSwlc1xuIiwKMTQ0NzQ6ICAgIHJlZ3NfYW5kX2J5cGFzcy0+ZHByZWZjbGss
CjE0NDc0OiAgICBieXBhc3NfY2xrc1soaW50KSByZWdzX2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5
cGFzc10pOwoxNDQ3NDogICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CjE0NDc0
OiAgICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6
ICAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6IAoxNDQ3NDogICBjaGFy
c19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZm
ZXIsICJkaXNwY2xrLCVkLE4vQSxOL0EsJXNcbiIsCjE0NDc0OiAgICByZWdzX2FuZF9ieXBhc3Mt
PmRpc3BjbGssCjE0NDc0OiAgICBieXBhc3NfY2xrc1soaW50KSByZWdzX2FuZF9ieXBhc3MtPmRp
c3BjbGtfYnlwYXNzXSk7CjE0NDc0OiAgIHJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRl
ZDsKMTQ0NzQ6ICAgKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVk
OwoxNDQ3NDogICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICAgY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVm
LCByZW1haW5pbmdfYnVmZmVyLCAiU1BMSVRcbiIpOwoxNDQ3NDogICByZW1haW5pbmdfYnVmZmVy
IC09IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQg
Kz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRl
ZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3Vu
dChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgInJlZ19uYW1lLHZhbHVlLGNsa190
eXBlXG4iKTsKMTQ0NzQ6ICAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwoxNDQ3
NDogICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0
OiAgIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgY2hh
cnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVm
ZmVyLCAiQ0xLMV9DTEszX0NVUlJFTlRfQ05ULCVkLGRjZmNsa1xuIiwKMTQ0NzQ6ICAgICBpbnRl
cm5hbC5DTEsxX0NMSzNfQ1VSUkVOVF9DTlQpOwoxNDQ3NDogICByZW1haW5pbmdfYnVmZmVyIC09
IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0g
Y2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsK
MTQ0NzQ6IAoxNDQ3NDogICBjaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8t
PnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NMSzNfRFNfQ05UTCwlZCxkY2ZfZGVlcF9z
bGVlcF9kaXZpZGVyXG4iLAoxNDQ3NDogICAgICBpbnRlcm5hbC5DTEsxX0NMSzNfRFNfQ05UTCk7
CjE0NDc0OiAgIHJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgKmxv
Z19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogICBsb2df
aW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogCjE0NDc0OiAgIGNoYXJzX3ByaW50
ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNM
SzFfQ0xLM19BTExPV19EUywlZCxkY2ZfZGVlcF9zbGVlcF9hbGxvd1xuIiwKMTQ0NzQ6ICAgICAg
aW50ZXJuYWwuQ0xLMV9DTEszX0FMTE9XX0RTKTsKMTQ0NzQ6ICAgcmVtYWluaW5nX2J1ZmZlciAt
PSBjaGFyc19wcmludGVkOwoxNDQ3NDogICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9
IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7
CjE0NDc0OiAKMTQ0NzQ6ICAgY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZv
LT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEsyX0NVUlJFTlRfQ05ULCVkLGRwcmVm
Y2xrXG4iLAoxNDQ3NDogICAgICBpbnRlcm5hbC5DTEsxX0NMSzJfQ1VSUkVOVF9DTlQpOwoxNDQ3
NDogICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgICpsb2dfaW5m
by0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgbG9nX2luZm8t
PnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6IAoxNDQ3NDogICBjaGFyc19wcmludGVkID0g
c25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NM
SzBfQ1VSUkVOVF9DTlQsJWQsZGlzcGNsa1xuIiwKMTQ0NzQ6ICAgICAgaW50ZXJuYWwuQ0xLMV9D
TEswX0NVUlJFTlRfQ05UKTsKMTQ0NzQ6ICAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmlu
dGVkOwoxNDQ3NDogICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50
ZWQ7CjE0NDc0OiAgIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAKMTQ0
NzQ6ICAgY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1h
aW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEsxX0NVUlJFTlRfQ05ULCVkLGRwcGNsa1xuIiwKMTQ0NzQ6
ICAgICAgaW50ZXJuYWwuQ0xLMV9DTEsxX0NVUlJFTlRfQ05UKTsKMTQ0NzQ6ICAgcmVtYWluaW5n
X2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwoxNDQ3NDogICAqbG9nX2luZm8tPnN1bV9jaGFyc19w
cmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJz
X3ByaW50ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50
KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEszX0JZUEFTU19DTlRM
LCVkLGRjZmNsa19ieXBhc3NcbiIsCjE0NDc0OiAgICAgIGludGVybmFsLkNMSzFfQ0xLM19CWVBB
U1NfQ05UTCk7CjE0NDc0OiAgIHJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKMTQ0
NzQ6ICAgKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwoxNDQ3
NDogICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogCjE0NDc0OiAgIGNo
YXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1
ZmZlciwgIkNMSzFfQ0xLMl9CWVBBU1NfQ05UTCwlZCxkcHJlZmNsa19ieXBhc3NcbiIsCjE0NDc0
OiAgICAgIGludGVybmFsLkNMSzFfQ0xLMl9CWVBBU1NfQ05UTCk7CjE0NDc0OiAgIHJlbWFpbmlu
Z19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgKmxvZ19pbmZvLT5zdW1fY2hhcnNf
cHJpbnRlZCArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFy
c19wcmludGVkOwoxNDQ3NDogCjE0NDc0OiAgIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3Vu
dChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLMF9CWVBBU1NfQ05U
TCwlZCxkaXNwY2xrX2J5cGFzc1xuIiwKMTQ0NzQ6ICAgICAgaW50ZXJuYWwuQ0xLMV9DTEswX0JZ
UEFTU19DTlRMKTsKMTQ0NzQ6ICAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwox
NDQ3NDogICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CjE0
NDc0OiAgIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICAg
Y2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdf
YnVmZmVyLCAiQ0xLMV9DTEsxX0JZUEFTU19DTlRMLCVkLGRwcGNsa19ieXBhc3NcbiIsCjE0NDc0
OiAgICAgIGludGVybmFsLkNMSzFfQ0xLMV9CWVBBU1NfQ05UTCk7CjE0NDc0OiAgIHJlbWFpbmlu
Z19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgKmxvZ19pbmZvLT5zdW1fY2hhcnNf
cHJpbnRlZCArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFy
c19wcmludGVkOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lk
IHJuX2dldF9jbGtfc3RhdGVzKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UsIHN0cnVjdCBj
bGtfc3RhdGVzICpzKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBjbGtfc3RhdGVfcmVnaXN0ZXJz
X2FuZF9ieXBhc3Mgc2IgPSB7IDAgfTsKMTQ0NzQ6ICBzdHJ1Y3QgY2xrX2xvZ19pbmZvIGxvZ19p
bmZvID0geyAwIH07CjE0NDc0OiAKMTQ0NzQ6ICBybl9kdW1wX2Nsa19yZWdpc3RlcnMoJnNiLCBj
bGtfbWdyX2Jhc2UsICZsb2dfaW5mbyk7CjE0NDc0OiAKMTQ0NzQ6ICBzLT5kcHJlZmNsa19raHog
PSBzYi5kcHJlZmNsayAqIDEwMDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgcm5fZW5h
YmxlX3BtZV93YShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlKQoxNDQ3NDogewoxNDQ3NDog
IHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyID0gKHsgdm9pZCAqX19tcHRyID0gKHZv
aWQgKikoY2xrX21ncl9iYXNlKTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF8zOTQodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0
Y2ggaW4gY29udGFpbmVyX29mKCkiKSkpOyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0
aWJsZV9wKHR5cGVvZigqKGNsa19tZ3JfYmFzZSkpLCB0eXBlb2YoKChzdHJ1Y3QgY2xrX21ncl9p
bnRlcm5hbCAqKTApLT5iYXNlKSkgJiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlw
ZW9mKCooY2xrX21ncl9iYXNlKSksIHR5cGVvZih2b2lkKSkpKSkgX19jb21waWxldGltZV9hc3Nl
cnRfMzk0KCk7IH0gd2hpbGUgKDApOyAoKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICopKF9fbXB0
ciAtIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCwgYmFzZSkpKTsg
fSk7CjE0NDc0OiAKMTQ0NzQ6ICBybl92Ymlvc19zbXVfZW5hYmxlX3BtZV93YShjbGtfbWdyKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCBybl9pbml0X2Nsb2NrcyhzdHJ1Y3QgY2xrX21n
ciAqY2xrX21ncikKMTQ0NzQ6IHsKMTQ0NzQ6ICBtZW1zZXQoJihjbGtfbWdyLT5jbGtzKSwgMCwg
c2l6ZW9mKHN0cnVjdCBkY19jbG9ja3MpKTsKMTQ0NzQ6IAoxNDQ3NDogIGNsa19tZ3ItPmNsa3Mu
cF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydCA9IHRydWU7CjE0NDc0OiAgY2xrX21nci0+Y2xrcy5wcmV2
X3Bfc3RhdGVfY2hhbmdlX3N1cHBvcnQgPSB0cnVlOwoxNDQ3NDogIGNsa19tZ3ItPmNsa3MucHdy
X3N0YXRlID0gRENOX1BXUl9TVEFURV9VTktOT1dOOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB2
b2lkIGJ1aWxkX3dhdGVybWFya19yYW5nZXMoc3RydWN0IGNsa19id19wYXJhbXMgKmJ3X3BhcmFt
cywgc3RydWN0IHBwX3NtdV93bV9yYW5nZV9zZXRzICpyYW5nZXMpCjE0NDc0OiB7CjE0NDc0OiAg
aW50IGksIG51bV92YWxpZF9zZXRzOwoxNDQ3NDogCjE0NDc0OiAgbnVtX3ZhbGlkX3NldHMgPSAw
OwoxNDQ3NDogCjE0NDc0OiAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewoxNDQ3NDogCjE0NDc0
OiAgIGlmICghYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLnZhbGlkKQoxNDQ3NDogICAg
Y29udGludWU7CjE0NDc0OiAKMTQ0NzQ6ICAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFs
aWRfc2V0c10ud21faW5zdCA9IGJ3X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS53bV9pbnN0
OwoxNDQ3NDogICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS53bV90eXBl
ID0gYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLndtX3R5cGU7CjE0NDc0OiAKMTQ0NzQ6
ICAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFsaWRfc2V0c10ubWluX2ZpbGxfY2xrX21o
eiA9IDB4MDsKMTQ0NzQ6ICAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFsaWRfc2V0c10u
bWF4X2ZpbGxfY2xrX21oeiA9IDB4RkZGRjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIGlmIChy
YW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS53bV90eXBlID09IFdNX1RZUEVf
UFNUQVRFX0NIRykgewoxNDQ3NDogICAgaWYgKGkgPT0gMCkKMTQ0NzQ6ICAgICByYW5nZXMtPnJl
YWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5taW5fZHJhaW5fY2xrX21oeiA9IDA7CjE0NDc0
OiAgICBlbHNlIHsKMTQ0NzQ6IAoxNDQ3NDogICAgIHJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVt
X3ZhbGlkX3NldHNdLm1pbl9kcmFpbl9jbGtfbWh6ID0gYndfcGFyYW1zLT5jbGtfdGFibGUuZW50
cmllc1tpIC0gMV0uZGNmY2xrX21oeiArIDE7CjE0NDc0OiAgICB9CjE0NDc0OiAgICByYW5nZXMt
PnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5tYXhfZHJhaW5fY2xrX21oeiA9IGJ3X3Bh
cmFtcy0+Y2xrX3RhYmxlLmVudHJpZXNbaV0uZGNmY2xrX21oejsKMTQ0NzQ6IAoxNDQ3NDogICB9
IGVsc2UgewoxNDQ3NDogCjE0NDc0OiAgICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxp
ZF9zZXRzXS5taW5fZmlsbF9jbGtfbWh6ID0gMHgwOwoxNDQ3NDogICAgcmFuZ2VzLT5yZWFkZXJf
d21fc2V0c1tudW1fdmFsaWRfc2V0c10ubWF4X2ZpbGxfY2xrX21oeiA9IDB4RkZGRjsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRz
IC0gMV0ubWF4X2ZpbGxfY2xrX21oeiA9IDB4RkZGRjsKMTQ0NzQ6ICAgfQoxNDQ3NDogICBudW1f
dmFsaWRfc2V0cysrOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogICh7IGludCBfX3JldF93YXJu
X29uID0gISEoIShudW1fdmFsaWRfc2V0cyAhPSAwKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEh
KF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpc
dCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3
XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2Fk
ZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4i
ICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQj
IGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDog
ImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2Rj
bjIxL3JuX2Nsa19tZ3IuYyIpLCAiaSIgKDQ0NiksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkp
KSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2
b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIg
Ii5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoNDgpKTsgfSk7
IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7
CjE0NDc0OiAgcmFuZ2VzLT5udW1fcmVhZGVyX3dtX3NldHMgPSBudW1fdmFsaWRfc2V0czsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1swXS5taW5fZHJhaW5f
Y2xrX21oeiA9IDB4MDsKMTQ0NzQ6ICByYW5nZXMtPnJlYWRlcl93bV9zZXRzWzBdLm1pbl9maWxs
X2Nsa19taHogPSAweDA7CjE0NDc0OiAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tyYW5nZXMtPm51
bV9yZWFkZXJfd21fc2V0cyAtIDFdLm1heF9kcmFpbl9jbGtfbWh6ID0gMHhGRkZGOwoxNDQ3NDog
IHJhbmdlcy0+cmVhZGVyX3dtX3NldHNbcmFuZ2VzLT5udW1fcmVhZGVyX3dtX3NldHMgLSAxXS5t
YXhfZmlsbF9jbGtfbWh6ID0gMHhGRkZGOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByYW5nZXMt
Pm51bV93cml0ZXJfd21fc2V0cyA9IDE7CjE0NDc0OiAgcmFuZ2VzLT53cml0ZXJfd21fc2V0c1sw
XS53bV9pbnN0ID0gMDsKMTQ0NzQ6ICByYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1pbl9maWxs
X2Nsa19taHogPSAweDA7CjE0NDc0OiAgcmFuZ2VzLT53cml0ZXJfd21fc2V0c1swXS5tYXhfZmls
bF9jbGtfbWh6ID0gMHhGRkZGOwoxNDQ3NDogIHJhbmdlcy0+d3JpdGVyX3dtX3NldHNbMF0ubWlu
X2RyYWluX2Nsa19taHogPSAweDA7CjE0NDc0OiAgcmFuZ2VzLT53cml0ZXJfd21fc2V0c1swXS5t
YXhfZHJhaW5fY2xrX21oeiA9IDB4RkZGRjsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgdm9pZCBybl9ub3RpZnlfd21fcmFuZ2VzKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdy
X2Jhc2UpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgKmRlYnVnID0g
JmNsa19tZ3JfYmFzZS0+Y3R4LT5kYy0+ZGVidWc7CjE0NDc0OiAgc3RydWN0IHBwX3NtdV93bV9y
YW5nZV9zZXRzIHJhbmdlcyA9IHswfTsKMTQ0NzQ6ICBzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAq
Y2xrX21nciA9ICh7IHZvaWQgKl9fbXB0ciA9ICh2b2lkICopKGNsa19tZ3JfYmFzZSk7IGRvIHsg
ZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfNDY5KHZvaWQpIF9fYXR0cmlidXRlX18o
KF9fZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsg
aWYgKCEoISghX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKihjbGtfbWdyX2Jh
c2UpKSwgdHlwZW9mKCgoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKikwKS0+YmFzZSkpICYmICFf
X2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKGNsa19tZ3JfYmFzZSkpLCB0eXBl
b2Yodm9pZCkpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzQ2OSgpOyB9IHdoaWxlICgwKTsgKChz
dHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqKShfX21wdHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3Ry
dWN0IGNsa19tZ3JfaW50ZXJuYWwsIGJhc2UpKSk7IH0pOwoxNDQ3NDogIHN0cnVjdCBwcF9zbXVf
ZnVuY3MgKnBwX3NtdSA9IGNsa19tZ3ItPnBwX3NtdTsKMTQ0NzQ6IAoxNDQ3NDogIGlmICghZGVi
dWctPmRpc2FibGVfcHBsaWJfd21fcmFuZ2UpIHsKMTQ0NzQ6ICAgYnVpbGRfd2F0ZXJtYXJrX3Jh
bmdlcyhjbGtfbWdyX2Jhc2UtPmJ3X3BhcmFtcywgJnJhbmdlcyk7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogICBpZiAocHBfc211ICYmIHBwX3NtdS0+cm5fZnVuY3Muc2V0X3dtX3JhbmdlcykKMTQ0
NzQ6ICAgIHBwX3NtdS0+cm5fZnVuY3Muc2V0X3dtX3JhbmdlcygmcHBfc211LT5ybl9mdW5jcy5w
cF9zbXUsICZyYW5nZXMpOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgYm9vbCBybl9hcmVfY2xvY2tfc3RhdGVzX2VxdWFsKHN0cnVjdCBkY19jbG9ja3Mg
KmEsCjE0NDc0OiAgIHN0cnVjdCBkY19jbG9ja3MgKmIpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGEt
PmRpc3BjbGtfa2h6ICE9IGItPmRpc3BjbGtfa2h6KQoxNDQ3NDogICByZXR1cm4gZmFsc2U7CjE0
NDc0OiAgZWxzZSBpZiAoYS0+ZHBwY2xrX2toeiAhPSBiLT5kcHBjbGtfa2h6KQoxNDQ3NDogICBy
ZXR1cm4gZmFsc2U7CjE0NDc0OiAgZWxzZSBpZiAoYS0+ZGNmY2xrX2toeiAhPSBiLT5kY2ZjbGtf
a2h6KQoxNDQ3NDogICByZXR1cm4gZmFsc2U7CjE0NDc0OiAgZWxzZSBpZiAoYS0+ZGNmY2xrX2Rl
ZXBfc2xlZXBfa2h6ICE9IGItPmRjZmNsa19kZWVwX3NsZWVwX2toeikKMTQ0NzQ6ICAgcmV0dXJu
IGZhbHNlOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIHN0cnVjdCBjbGtfbWdyX2Z1bmNzIGRjbjIxX2Z1bmNzID0gewox
NDQ3NDogIC5nZXRfZHBfcmVmX2Nsa19mcmVxdWVuY3kgPSBkY2UxMl9nZXRfZHBfcmVmX2ZyZXFf
a2h6LAoxNDQ3NDogIC51cGRhdGVfY2xvY2tzID0gcm5fdXBkYXRlX2Nsb2NrcywKMTQ0NzQ6ICAu
aW5pdF9jbG9ja3MgPSBybl9pbml0X2Nsb2NrcywKMTQ0NzQ6ICAuZW5hYmxlX3BtZV93YSA9IHJu
X2VuYWJsZV9wbWVfd2EsCjE0NDc0OiAgLmFyZV9jbG9ja19zdGF0ZXNfZXF1YWwgPSBybl9hcmVf
Y2xvY2tfc3RhdGVzX2VxdWFsLAoxNDQ3NDogIC5ub3RpZnlfd21fcmFuZ2VzID0gcm5fbm90aWZ5
X3dtX3JhbmdlcwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19id19wYXJhbXMg
cm5fYndfcGFyYW1zID0gewoxNDQ3NDogIC52cmFtX3R5cGUgPSBEZHI0TWVtVHlwZSwKMTQ0NzQ6
ICAubnVtX2NoYW5uZWxzID0gMSwKMTQ0NzQ6ICAuY2xrX3RhYmxlID0gewoxNDQ3NDogICAuZW50
cmllcyA9IHsKMTQ0NzQ6ICAgIHsKMTQ0NzQ6ICAgICAudm9sdGFnZSA9IDAsCjE0NDc0OiAgICAg
LmRjZmNsa19taHogPSA0MDAsCjE0NDc0OiAgICAgLmZjbGtfbWh6ID0gNDAwLAoxNDQ3NDogICAg
IC5tZW1jbGtfbWh6ID0gODAwLAoxNDQ3NDogICAgIC5zb2NjbGtfbWh6ID0gMCwKMTQ0NzQ6ICAg
IH0sCjE0NDc0OiAgICB7CjE0NDc0OiAgICAgLnZvbHRhZ2UgPSAwLAoxNDQ3NDogICAgIC5kY2Zj
bGtfbWh6ID0gNDgzLAoxNDQ3NDogICAgIC5mY2xrX21oeiA9IDgwMCwKMTQ0NzQ6ICAgICAubWVt
Y2xrX21oeiA9IDE2MDAsCjE0NDc0OiAgICAgLnNvY2Nsa19taHogPSAwLAoxNDQ3NDogICAgfSwK
MTQ0NzQ6ICAgIHsKMTQ0NzQ6ICAgICAudm9sdGFnZSA9IDAsCjE0NDc0OiAgICAgLmRjZmNsa19t
aHogPSA2MDIsCjE0NDc0OiAgICAgLmZjbGtfbWh6ID0gMTA2NywKMTQ0NzQ6ICAgICAubWVtY2xr
X21oeiA9IDEwNjcsCjE0NDc0OiAgICAgLnNvY2Nsa19taHogPSAwLAoxNDQ3NDogICAgfSwKMTQ0
NzQ6ICAgIHsKMTQ0NzQ6ICAgICAudm9sdGFnZSA9IDAsCjE0NDc0OiAgICAgLmRjZmNsa19taHog
PSA3MzgsCjE0NDc0OiAgICAgLmZjbGtfbWh6ID0gMTMzMywKMTQ0NzQ6ICAgICAubWVtY2xrX21o
eiA9IDE2MDAsCjE0NDc0OiAgICAgLnNvY2Nsa19taHogPSAwLAoxNDQ3NDogICAgfSwKMTQ0NzQ6
ICAgfSwKMTQ0NzQ6IAoxNDQ3NDogICAubnVtX2VudHJpZXMgPSA0LAoxNDQ3NDogIH0sCjE0NDc0
OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB3bV90YWJsZSBkZHI0X3dtX3RhYmxl
ID0gewoxNDQ3NDogIC5lbnRyaWVzID0gewoxNDQ3NDogICB7CjE0NDc0OiAgICAud21faW5zdCA9
IDAsCjE0NDc0OiAgICAud21fdHlwZSA9IFdNX1RZUEVfUFNUQVRFX0NIRywKMTQ0NzQ6ICAgIC5w
c3RhdGVfbGF0ZW5jeV91cyA9IDExLjcyLAoxNDQ3NDogICAgLnNyX2V4aXRfdGltZV91cyA9IDYu
MDksCjE0NDc0OiAgICAuc3JfZW50ZXJfcGx1c19leGl0X3RpbWVfdXMgPSA3LjE0LAoxNDQ3NDog
ICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICAgewoxNDQ3NDogICAgLndtX2lu
c3QgPSAxLAoxNDQ3NDogICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcsCjE0NDc0OiAg
ICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS43MiwKMTQ0NzQ6ICAgIC5zcl9leGl0X3RpbWVfdXMg
PSAxMC4xMiwKMTQ0NzQ6ICAgIC5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9IDExLjQ4LAox
NDQ3NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICAgewoxNDQ3NDogICAg
LndtX2luc3QgPSAyLAoxNDQ3NDogICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcsCjE0
NDc0OiAgICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS43MiwKMTQ0NzQ6ICAgIC5zcl9leGl0X3Rp
bWVfdXMgPSAxMC4xMiwKMTQ0NzQ6ICAgIC5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9IDEx
LjQ4LAoxNDQ3NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICAgewoxNDQ3
NDogICAgLndtX2luc3QgPSAzLAoxNDQ3NDogICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9D
SEcsCjE0NDc0OiAgICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS43MiwKMTQ0NzQ6ICAgIC5zcl9l
eGl0X3RpbWVfdXMgPSAxMC4xMiwKMTQ0NzQ6ICAgIC5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91
cyA9IDExLjQ4LAoxNDQ3NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICB9
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgd21fdGFibGUgbHBkZHI0X3dtX3RhYmxl
ID0gewoxNDQ3NDogIC5lbnRyaWVzID0gewoxNDQ3NDogICB7CjE0NDc0OiAgICAud21faW5zdCA9
IDAsCjE0NDc0OiAgICAud21fdHlwZSA9IFdNX1RZUEVfUFNUQVRFX0NIRywKMTQ0NzQ6ICAgIC5w
c3RhdGVfbGF0ZW5jeV91cyA9IDExLjY1MzMzLAoxNDQ3NDogICAgLnNyX2V4aXRfdGltZV91cyA9
IDUuMzIsCjE0NDc0OiAgICAuc3JfZW50ZXJfcGx1c19leGl0X3RpbWVfdXMgPSA2LjM4LAoxNDQ3
NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICAgewoxNDQ3NDogICAgLndt
X2luc3QgPSAxLAoxNDQ3NDogICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcsCjE0NDc0
OiAgICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS42NTMzMywKMTQ0NzQ6ICAgIC5zcl9leGl0X3Rp
bWVfdXMgPSA5LjgyLAoxNDQ3NDogICAgLnNyX2VudGVyX3BsdXNfZXhpdF90aW1lX3VzID0gMTEu
MTk2LAoxNDQ3NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICAgewoxNDQ3
NDogICAgLndtX2luc3QgPSAyLAoxNDQ3NDogICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9D
SEcsCjE0NDc0OiAgICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS42NTMzMywKMTQ0NzQ6ICAgIC5z
cl9leGl0X3RpbWVfdXMgPSA5Ljg5LAoxNDQ3NDogICAgLnNyX2VudGVyX3BsdXNfZXhpdF90aW1l
X3VzID0gMTEuMjQsCjE0NDc0OiAgICAudmFsaWQgPSB0cnVlLAoxNDQ3NDogICB9LAoxNDQ3NDog
ICB7CjE0NDc0OiAgICAud21faW5zdCA9IDMsCjE0NDc0OiAgICAud21fdHlwZSA9IFdNX1RZUEVf
UFNUQVRFX0NIRywKMTQ0NzQ6ICAgIC5wc3RhdGVfbGF0ZW5jeV91cyA9IDExLjY1MzMzLAoxNDQ3
NDogICAgLnNyX2V4aXRfdGltZV91cyA9IDkuNzQ4LAoxNDQ3NDogICAgLnNyX2VudGVyX3BsdXNf
ZXhpdF90aW1lX3VzID0gMTEuMTAyLAoxNDQ3NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAg
fSwKMTQ0NzQ6ICB9CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyB1bnNp
Z25lZCBpbnQgZmluZF9kY2ZjbGtfZm9yX3ZvbHRhZ2Uoc3RydWN0IGRwbV9jbG9ja3MgKmNsb2Nr
X3RhYmxlLCB1bnNpZ25lZCBpbnQgdm9sdGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgaTsKMTQ0
NzQ6IAoxNDQ3NDogIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKMTQ0NzQ6ICAgaWYgKGNsb2Nr
X3RhYmxlLT5EY2ZDbG9ja3NbaV0uVm9sID09IHZvbHRhZ2UpCjE0NDc0OiAgICByZXR1cm4gY2xv
Y2tfdGFibGUtPkRjZkNsb2Nrc1tpXS5GcmVxOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogICh7
IGludCBfX3JldF93YXJuX29uID0gISEoISgwKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9f
cmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIg
Ii5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJc
biIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJc
biIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJc
dC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1
Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImki
ICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIx
L3JuX2Nsa19tZ3IuYyIpLCAiaSIgKDYzMSksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwg
ImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xh
dGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5s
b25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoNDkpKTsgfSk7IH0g
d2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CjE0
NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyB2b2lkIHJuX2Ns
a19tZ3JfaGVscGVyX3BvcHVsYXRlX2J3X3BhcmFtcyhzdHJ1Y3QgY2xrX2J3X3BhcmFtcyAqYndf
cGFyYW1zLCBzdHJ1Y3QgZHBtX2Nsb2NrcyAqY2xvY2tfdGFibGUsIHN0cnVjdCBpbnRlZ3JhdGVk
X2luZm8gKmJpb3NfaW5mbykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgaSwgaiA9IDA7CjE0NDc0OiAK
MTQ0NzQ6ICBqID0gLTE7CjE0NDc0OiAKMTQ0NzQ6ICAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEh
KCEoNCA8PSA4KSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkg
ZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIi
ICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAi
ICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAi
JWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBi
dWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIg
Ilx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIpLCAi
aSIgKDY0MSksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0
IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIu
cHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIg
Ii5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoNTApKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0
aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgZm9yIChpID0gNCAtIDE7IGkgPj0gMDsgaS0tKSB7CjE0NDc0OiAgIGlmIChj
bG9ja190YWJsZS0+RkNsb2Nrc1tpXS5GcmVxICE9IDApIHsKMTQ0NzQ6ICAgIGogPSBpOwoxNDQ3
NDogICAgYnJlYWs7CjE0NDc0OiAgIH0KMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoaiA9
PSAtMSkgewoxNDQ3NDogCjE0NDc0OiAgICh7IGludCBfX3JldF93YXJuX29uID0gISEoISgwKSk7
IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFz
bSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNo
c2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJi
IiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIi
ICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6Omxp
bmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYisl
YzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIpLCAiaSIgKDY1NCksICJp
IiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkp
KTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24g
LmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9u
XG5cdCIgOiA6ICJpIiAoNTEpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEh
KF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CjE0NDc0OiAgIHJldHVybjsKMTQ0NzQ6ICB9CjE0NDc0
OiAKMTQ0NzQ6ICBid19wYXJhbXMtPmNsa190YWJsZS5udW1fZW50cmllcyA9IGogKyAxOwoxNDQ3
NDogCjE0NDc0OiAgZm9yIChpID0gMDsgaSA8IGJ3X3BhcmFtcy0+Y2xrX3RhYmxlLm51bV9lbnRy
aWVzOyBpKyssIGotLSkgewoxNDQ3NDogICBid19wYXJhbXMtPmNsa190YWJsZS5lbnRyaWVzW2ld
LmZjbGtfbWh6ID0gY2xvY2tfdGFibGUtPkZDbG9ja3Nbal0uRnJlcTsKMTQ0NzQ6ICAgYndfcGFy
YW1zLT5jbGtfdGFibGUuZW50cmllc1tpXS5tZW1jbGtfbWh6ID0gY2xvY2tfdGFibGUtPk1lbUNs
b2Nrc1tqXS5GcmVxOwoxNDQ3NDogICBid19wYXJhbXMtPmNsa190YWJsZS5lbnRyaWVzW2ldLnZv
bHRhZ2UgPSBjbG9ja190YWJsZS0+RkNsb2Nrc1tqXS5Wb2w7CjE0NDc0OiAgIGJ3X3BhcmFtcy0+
Y2xrX3RhYmxlLmVudHJpZXNbaV0uZGNmY2xrX21oeiA9IGZpbmRfZGNmY2xrX2Zvcl92b2x0YWdl
KGNsb2NrX3RhYmxlLCBjbG9ja190YWJsZS0+RkNsb2Nrc1tqXS5Wb2wpOwoxNDQ3NDogIH0KMTQ0
NzQ6IAoxNDQ3NDogIGJ3X3BhcmFtcy0+dnJhbV90eXBlID0gYmlvc19pbmZvLT5tZW1vcnlfdHlw
ZTsKMTQ0NzQ6ICBid19wYXJhbXMtPm51bV9jaGFubmVscyA9IGJpb3NfaW5mby0+bWFfY2hhbm5l
bF9udW1iZXI7CjE0NDc0OiAKMTQ0NzQ6ICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CjE0NDc0
OiAgIGJ3X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS53bV9pbnN0ID0gaTsKMTQ0NzQ6IAox
NDQ3NDogICBpZiAoaSA+PSBid19wYXJhbXMtPmNsa190YWJsZS5udW1fZW50cmllcykgewoxNDQ3
NDogICAgYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLnZhbGlkID0gZmFsc2U7CjE0NDc0
OiAgICBjb250aW51ZTsKMTQ0NzQ6ICAgfQoxNDQ3NDogCjE0NDc0OiAgIGJ3X3BhcmFtcy0+d21f
dGFibGUuZW50cmllc1tpXS53bV90eXBlID0gV01fVFlQRV9QU1RBVEVfQ0hHOwoxNDQ3NDogICBi
d19wYXJhbXMtPndtX3RhYmxlLmVudHJpZXNbaV0udmFsaWQgPSB0cnVlOwoxNDQ3NDogIH0KMTQ0
NzQ6IAoxNDQ3NDogIGlmIChid19wYXJhbXMtPnZyYW1fdHlwZSA9PSBMcERkcjRNZW1UeXBlKSB7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIGJ3X3BhcmFtcy0+d21fdGFibGUuZW50
cmllc1szXS5wc3RhdGVfbGF0ZW5jeV91cyA9IDQuOTc3OwoxNDQ3NDogICBid19wYXJhbXMtPndt
X3RhYmxlLmVudHJpZXNbM10ud21faW5zdCA9IDM7CjE0NDc0OiAgIGJ3X3BhcmFtcy0+d21fdGFi
bGUuZW50cmllc1szXS53bV90eXBlID0gV01fVFlQRV9SRVRSQUlOSU5HOwoxNDQ3NDogICBid19w
YXJhbXMtPndtX3RhYmxlLmVudHJpZXNbM10udmFsaWQgPSB0cnVlOwoxNDQ3NDogIH0KMTQ0NzQ6
IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB2b2lkIHJuX2Nsa19tZ3JfY29uc3RydWN0KAoxNDQ3
NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBzdHJ1Y3QgY2xrX21ncl9pbnRl
cm5hbCAqY2xrX21nciwKMTQ0NzQ6ICAgc3RydWN0IHBwX3NtdV9mdW5jcyAqcHBfc211LAoxNDQ3
NDogICBzdHJ1Y3QgZGNjZyAqZGNjZykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfZGVidWdf
b3B0aW9ucyAqZGVidWcgPSAmY3R4LT5kYy0+ZGVidWc7CjE0NDc0OiAgc3RydWN0IGRwbV9jbG9j
a3MgY2xvY2tfdGFibGUgPSB7IDAgfTsKMTQ0NzQ6IAoxNDQ3NDogIGNsa19tZ3ItPmJhc2UuY3R4
ID0gY3R4OwoxNDQ3NDogIGNsa19tZ3ItPmJhc2UuZnVuY3MgPSAmZGNuMjFfZnVuY3M7CjE0NDc0
OiAKMTQ0NzQ6ICBjbGtfbWdyLT5wcF9zbXUgPSBwcF9zbXU7CjE0NDc0OiAKMTQ0NzQ6ICBjbGtf
bWdyLT5kY2NnID0gZGNjZzsKMTQ0NzQ6ICBjbGtfbWdyLT5kZnNfYnlwYXNzX2Rpc3BfY2xrID0g
MDsKMTQ0NzQ6IAoxNDQ3NDogIGNsa19tZ3ItPmRwcmVmY2xrX3NzX3BlcmNlbnRhZ2UgPSAwOwox
NDQ3NDogIGNsa19tZ3ItPmRwcmVmY2xrX3NzX2RpdmlkZXIgPSAxMDAwOwoxNDQ3NDogIGNsa19t
Z3ItPnNzX29uX2RwcmVmY2xrID0gZmFsc2U7CjE0NDc0OiAgY2xrX21nci0+ZGZzX3JlZl9mcmVx
X2toeiA9IDQ4MDAwOwoxNDQ3NDogCjE0NDc0OiAgY2xrX21nci0+c211X3ZlciA9IHJuX3ZiaW9z
X3NtdV9nZXRfc211X3ZlcnNpb24oY2xrX21ncik7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoKGN0eC0+
ZGNlX2Vudmlyb25tZW50ID09IERDRV9FTlZfRlBHQV9NQVhJTVVTKSkgewoxNDQ3NDogICBkY24y
MV9mdW5jcy51cGRhdGVfY2xvY2tzID0gZGNuMl91cGRhdGVfY2xvY2tzX2ZwZ2E7CjE0NDc0OiAg
IGNsa19tZ3ItPmJhc2UuZGVudGlzdF92Y29fZnJlcV9raHogPSAzNjAwMDAwOwoxNDQ3NDogIH0g
ZWxzZSB7CjE0NDc0OiAgIHN0cnVjdCBjbGtfbG9nX2luZm8gbG9nX2luZm8gPSB7MH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogICBjbGtfbWdyLT5iYXNlLmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID0g
Z2V0X3Zjb19mcmVxdWVuY3lfZnJvbV9yZWcoY2xrX21ncik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogICBpZiAoY2xrX21nci0+YmFzZS5kZW50aXN0X3Zjb19mcmVxX2toeiA9PSAwKQoxNDQ3NDog
ICAgY2xrX21nci0+YmFzZS5kZW50aXN0X3Zjb19mcmVxX2toeiA9IDM2MDAwMDA7CjE0NDc0OiAK
MTQ0NzQ6ICAgaWYgKGN0eC0+ZGNfYmlvcy0+aW50ZWdyYXRlZF9pbmZvLT5tZW1vcnlfdHlwZSA9
PSBMcERkcjRNZW1UeXBlKSB7CjE0NDc0OiAgICBybl9id19wYXJhbXMud21fdGFibGUgPSBscGRk
cjRfd21fdGFibGU7CjE0NDc0OiAgIH0gZWxzZSB7CjE0NDc0OiAgICBybl9id19wYXJhbXMud21f
dGFibGUgPSBkZHI0X3dtX3RhYmxlOwoxNDQ3NDogICB9CjE0NDc0OiAKMTQ0NzQ6ICAgcm5fZHVt
cF9jbGtfcmVnaXN0ZXJzKCZjbGtfbWdyLT5iYXNlLmJvb3Rfc25hcHNob3QsICZjbGtfbWdyLT5i
YXNlLCAmbG9nX2luZm8pOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogIGNsa19tZ3ItPmJhc2Uu
ZHByZWZjbGtfa2h6ID0gNjAwMDAwOwoxNDQ3NDogIGRjZV9jbG9ja19yZWFkX3NzX2luZm8oY2xr
X21ncik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGNsa19tZ3ItPmJhc2UuYndfcGFyYW1zID0g
JnJuX2J3X3BhcmFtczsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChwcF9zbXUgJiYgcHBfc211LT5ybl9m
dW5jcy5nZXRfZHBtX2Nsb2NrX3RhYmxlKSB7CjE0NDc0OiAgIHBwX3NtdS0+cm5fZnVuY3MuZ2V0
X2RwbV9jbG9ja190YWJsZSgmcHBfc211LT5ybl9mdW5jcy5wcF9zbXUsICZjbG9ja190YWJsZSk7
CjE0NDc0OiAgIGlmIChjdHgtPmRjX2Jpb3MgJiYgY3R4LT5kY19iaW9zLT5pbnRlZ3JhdGVkX2lu
Zm8pIHsKMTQ0NzQ6ICAgIHJuX2Nsa19tZ3JfaGVscGVyX3BvcHVsYXRlX2J3X3BhcmFtcyAoY2xr
X21nci0+YmFzZS5id19wYXJhbXMsICZjbG9ja190YWJsZSwgY3R4LT5kY19iaW9zLT5pbnRlZ3Jh
dGVkX2luZm8pOwoxNDQ3NDogICB9CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0OiAgaWYgKCEoY3R4
LT5kY2VfZW52aXJvbm1lbnQgPT0gRENFX0VOVl9GUEdBX01BWElNVVMpICYmIGNsa19tZ3ItPnNt
dV92ZXIgPj0gMHgwMDM3MTUwMCkgewoxNDQ3NDogCjE0NDc0OiAgIHJuX3ZiaW9zX3NtdV9lbmFi
bGVfNDhtaHpfdG1kcF9yZWZjbGtfcHdyZHduKGNsa19tZ3IsICFkZWJ1Zy0+ZGlzYWJsZV80OG1o
el9wd3Jkd24pOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KPT09IEVORCBHQ0MgRFVNUCA9PT0KbWFrZVs4
XTogKioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1aWxkOjI2ODogZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3Iub10gRXJyb3IgMQpt
YWtlWzddOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6NTA1OiBkcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdV0gRXJyb3IgMgptYWtlWzZdOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6
NTA1OiBkcml2ZXJzL2dwdS9kcm1dIEVycm9yIDIKbWFrZVs1XTogKioqIFtzY3JpcHRzL01ha2Vm
aWxlLmJ1aWxkOjUwNTogZHJpdmVycy9ncHVdIEVycm9yIDIKbWFrZVs0XTogKioqIFtNYWtlZmls
ZToxNjgzOiBkcml2ZXJzXSBFcnJvciAyCm1ha2VbM106ICoqKiBbZGViaWFuL3J1bGVzOjY6IGJ1
aWxkXSBFcnJvciAyChtbMW1kcGtnLWJ1aWxkcGFja2FnZTogG1swbRtbMTszMW1lcnJvchtbMG06
IGRlYmlhbi9ydWxlcyBidWlsZCBzdWJwcm9jZXNzIHJldHVybmVkIGV4aXQgc3RhdHVzIDIKbWFr
ZVsyXTogKioqIFtzY3JpcHRzL01ha2VmaWxlLnBhY2thZ2U6ODM6IGJpbmRlYi1wa2ddIEVycm9y
IDIKbWFrZVsxXTogKioqIFtNYWtlZmlsZToxNDE3OiBiaW5kZWItcGtnXSBFcnJvciAyCm1ha2U6
ICoqKiBbTWFrZWZpbGU6MzI3OiBfX2J1aWxkX29uZV9ieV9vbmVdIEVycm9yIDIK

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

Ly8gVGFyZ2V0OiB4ODZfNjQtbGludXgtZ251Ci8vIENvbmZpZ3VyZWQgd2l0aDogLi4vc3JjL2Nv
bmZpZ3VyZSAtdiAtLXdpdGgtcGtndmVyc2lvbj0nRGViaWFuIDEwLTIwMjAwMzIxLTEnIC0td2l0
aC1idWd1cmw9ZmlsZTovLy91c3Ivc2hhcmUvZG9jL2djYy0xMC9SRUFETUUuQnVncyAtLWVuYWJs
ZS1sYW5ndWFnZXM9YyxjKyssZ28sYnJpZyxkLGZvcnRyYW4sb2JqYyxvYmotYysrLG0yIC0tcHJl
Zml4PS91c3IgLS13aXRoLWdjYy1tYWpvci12ZXJzaW9uLW9ubHkgLS1wcm9ncmFtLXN1ZmZpeD0t
MTAgLS1wcm9ncmFtLXByZWZpeD14ODZfNjQtbGludXgtZ251LSAtLWVuYWJsZS1zaGFyZWQgLS1l
bmFibGUtbGlua2VyLWJ1aWxkLWlkIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiAtLXdpdGhvdXQtaW5j
bHVkZWQtZ2V0dGV4dCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tbGliZGlyPS91c3IvbGliIC0t
ZW5hYmxlLW5scyAtLWVuYWJsZS1jbG9jYWxlPWdudSAtLWVuYWJsZS1saWJzdGRjeHgtZGVidWcg
LS1lbmFibGUtbGlic3RkY3h4LXRpbWU9eWVzIC0td2l0aC1kZWZhdWx0LWxpYnN0ZGN4eC1hYmk9
bmV3IC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IC0t
ZW5hYmxlLXBsdWdpbiAtLWVuYWJsZS1kZWZhdWx0LXBpZSAtLXdpdGgtc3lzdGVtLXpsaWIgLS13
aXRoLXRhcmdldC1zeXN0ZW0temxpYj1hdXRvIC0tZW5hYmxlLW9iamMtZ2M9YXV0byAtLWVuYWJs
ZS1tdWx0aWFyY2ggLS1kaXNhYmxlLXdlcnJvciAtLXdpdGgtYXJjaC0zMj1pNjg2IC0td2l0aC1h
Ymk9bTY0IC0td2l0aC1tdWx0aWxpYi1saXN0PW0zMixtNjQsbXgzMiAtLWVuYWJsZS1tdWx0aWxp
YiAtLXdpdGgtdHVuZT1nZW5lcmljIC0tZW5hYmxlLW9mZmxvYWQtdGFyZ2V0cz1udnB0eC1ub25l
LGFtZGdjbi1hbWRoc2EsaHNhIC0td2l0aG91dC1jdWRhLWRyaXZlciAtLWVuYWJsZS1jaGVja2lu
Zz1yZWxlYXNlIC0tYnVpbGQ9eDg2XzY0LWxpbnV4LWdudSAtLWhvc3Q9eDg2XzY0LWxpbnV4LWdu
dSAtLXRhcmdldD14ODZfNjQtbGludXgtZ251Ci8vIFRocmVhZCBtb2RlbDogcG9zaXgKLy8gU3Vw
cG9ydGVkIExUTyBjb21wcmVzc2lvbiBhbGdvcml0aG1zOiB6bGliIHpzdGQKLy8gZ2NjIHZlcnNp
b24gMTAuMC4xIDIwMjAwMzIxIChleHBlcmltZW50YWwpIFttYXN0ZXIgcmV2aXNpb24gMTU3MTFl
ODM3YjI6YWI2NTg2Y2IwMjQ6NDk3NDk4Yzg3OGQ0ODc1NDMxOGU0ODY0MjhlMmFhMzA4NTQwMjBi
OV0gKERlYmlhbiAxMC0yMDIwMDMyMS0xKSAKLy8gCi8vIGR1cmluZyBSVEwgcGFzczogY29tYmlu
ZQovLyBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNu
MjEvcm5fY2xrX21nci5jOiBJbiBmdW5jdGlvbiDigJhybl91cGRhdGVfY2xvY2tz4oCZOgovLyBk
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5f
Y2xrX21nci5jOjE5MzoxOiBpbnRlcm5hbCBjb21waWxlciBlcnJvcjogaW4gaXg4Nl9jY19tb2Rl
LCBhdCBjb25maWcvaTM4Ni9pMzg2LmM6MTUyODUKLy8gICAxOTMgfCB9Ci8vICAgICAgIHwgXgov
LyAweDVkMDZhMiBpeDg2X2NjX21vZGUocnR4X2NvZGUsIHJ0eF9kZWYqLCBydHhfZGVmKikKLy8g
CS4uLy4uL3NyYy9nY2MvY29uZmlnL2kzODYvaTM4Ni5jOjE1Mjg1Ci8vIDB4MTI3OGRlMiBzaW1w
bGlmeV9zZXQKLy8gCS4uLy4uL3NyYy9nY2MvY29tYmluZS5jOjY5MzgKLy8gMHgxMjdjNDZhIHN1
YnN0Ci8vIAkuLi8uLi9zcmMvZ2NjL2NvbWJpbmUuYzo1NzE5Ci8vIDB4MTI3YzVmYyBzdWJzdAov
LyAJLi4vLi4vc3JjL2djYy9jb21iaW5lLmM6NTU4MQovLyAweDEyN2U3YzkgdHJ5X2NvbWJpbmUK
Ly8gCS4uLy4uL3NyYy9nY2MvY29tYmluZS5jOjM0NzkKLy8gMHgxMjg0NzcyIGNvbWJpbmVfaW5z
dHJ1Y3Rpb25zCi8vIAkuLi8uLi9zcmMvZ2NjL2NvbWJpbmUuYzoxNDY5Ci8vIDB4MTI4NDc3MiBy
ZXN0X29mX2hhbmRsZV9jb21iaW5lCi8vIAkuLi8uLi9zcmMvZ2NjL2NvbWJpbmUuYzoxNTA1OQov
LyAweDEyODQ3NzIgZXhlY3V0ZQovLyAJLi4vLi4vc3JjL2djYy9jb21iaW5lLmM6MTUxMDQKLy8g
UGxlYXNlIHN1Ym1pdCBhIGZ1bGwgYnVnIHJlcG9ydCwKLy8gd2l0aCBwcmVwcm9jZXNzZWQgc291
cmNlIGlmIGFwcHJvcHJpYXRlLgovLyBQbGVhc2UgaW5jbHVkZSB0aGUgY29tcGxldGUgYmFja3Ry
YWNlIHdpdGggYW55IGJ1ZyByZXBvcnQuCi8vIFNlZSA8ZmlsZTovLy91c3Ivc2hhcmUvZG9jL2dj
Yy0xMC9SRUFETUUuQnVncz4gZm9yIGluc3RydWN0aW9ucy4KCi8vIC91c3IvbGliL2djYy94ODZf
NjQtbGludXgtZ251LzEwL2NjMSAtcXVpZXQgLW5vc3RkaW5jIC1JIC4vYXJjaC94ODYvaW5jbHVk
ZSAtSSAuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkIC1JIC4vaW5jbHVkZSAtSSAuL2FyY2gv
eDg2L2luY2x1ZGUvdWFwaSAtSSAuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkgLUkg
Li9pbmNsdWRlL3VhcGkgLUkgLi9pbmNsdWRlL2dlbmVyYXRlZC91YXBpIC1JIC4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vcG93ZXJwbGF5L2luYy8gLUkgLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9pbmNsdWRlL2FzaWNfcmVnIC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vaW5jbHVkZSAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL3Bvd2Vy
cGxheS9zbXVtZ3IgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9wb3dlcnBsYXkv
aHdtZ3IgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy8g
LUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9odyAtSSAu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nciAtSSAuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvbW9kdWxlcy9pbmMgLUkgLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L21vZHVsZXMvZnJlZXN5bmMgLUkgLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L21vZHVsZXMvY29sb3IgLUkgLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L21vZHVsZXMvaW5mb19wYWNrZXQg
LUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L21vZHVsZXMvcG93ZXIg
LUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RtdWIvaW5jIC1JIC4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYyAtSSAuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXNpY19yZWcgLUkgLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9pbmNsdWRlIC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
YW1kZ3B1IC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vcG93ZXJwbGF5L2luYyAt
SSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2FjcC9pbmNsdWRlIC1JIC4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheSAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZSAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2FtZGdwdV9kbSAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2FtZGtmZCAtaW11
bHRpYXJjaCB4ODZfNjQtbGludXgtZ251IC1EIF9fS0VSTkVMX18gLUQgQ09ORklHX0FTX0NGST0x
IC1EIENPTkZJR19BU19DRklfU0lHTkFMX0ZSQU1FPTEgLUQgQ09ORklHX0FTX0NGSV9TRUNUSU9O
Uz0xIC1EIENPTkZJR19BU19TU1NFMz0xIC1EIENPTkZJR19BU19BVlg9MSAtRCBDT05GSUdfQVNf
QVZYMj0xIC1EIENPTkZJR19BU19BVlg1MTI9MSAtRCBDT05GSUdfQVNfU0hBMV9OST0xIC1EIENP
TkZJR19BU19TSEEyNTZfTkk9MSAtRCBDT05GSUdfQVNfQURYPTEgLUQgQ0NfVVNJTkdfRkVOVFJZ
IC1EIEJVSUxEX0ZFQVRVUkVfVElNSU5HX1NZTkM9MCAtRCBNT0RVTEUgLUQgS0JVSUxEX0JBU0VO
QU1FPSJybl9jbGtfbWdyIiAtRCBLQlVJTERfTU9ETkFNRT0iYW1kZ3B1IiAtaXN5c3RlbSAvdXNy
L2xpYi9nY2MveDg2XzY0LWxpbnV4LWdudS8xMC9pbmNsdWRlIC1pbmNsdWRlIC4vaW5jbHVkZS9s
aW51eC9rY29uZmlnLmggLWluY2x1ZGUgLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgg
LU1EIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24y
MS8ucm5fY2xrX21nci5vLmQgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyAtcXVpZXQgLWR1bXBiYXNlIHJuX2Nsa19tZ3Iu
YyAtbW5vLXNzZSAtbW5vLW1teCAtbW5vLXNzZTIgLW1uby0zZG5vdyAtbW5vLWF2eCAtbTY0IC1t
bm8tODAzODcgLW1uby1mcC1yZXQtaW4tMzg3IC1tcHJlZmVycmVkLXN0YWNrLWJvdW5kYXJ5PTMg
LW1za2lwLXJheC1zZXR1cCAtbWFyY2g9azggLW1uby1yZWQtem9uZSAtbWNtb2RlbD1rZXJuZWwg
LW1pbmRpcmVjdC1icmFuY2g9dGh1bmstZXh0ZXJuIC1taW5kaXJlY3QtYnJhbmNoLXJlZ2lzdGVy
IC1tcmVjb3JkLW1jb3VudCAtbWZlbnRyeSAtYXV4YmFzZS1zdHJpcCBkcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5vIC1PMiAt
V2FsbCAtV3VuZGVmIC1XZXJyb3I9c3RyaWN0LXByb3RvdHlwZXMgLVduby10cmlncmFwaHMgLVdl
cnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtV2Vycm9yPWltcGxpY2l0LWludCAt
V25vLWZvcm1hdC1zZWN1cml0eSAtV25vLXNpZ24tY29tcGFyZSAtV25vLWZyYW1lLWFkZHJlc3Mg
LVdmb3JtYXQtdHJ1bmNhdGlvbj0wIC1XZm9ybWF0LW92ZXJmbG93PTAgLVduby1hZGRyZXNzLW9m
LXBhY2tlZC1tZW1iZXIgLVdmcmFtZS1sYXJnZXItdGhhbj0yMDQ4IC1Xbm8tdW51c2VkLWJ1dC1z
ZXQtdmFyaWFibGUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaD0zIC1XdW51c2VkLWNvbnN0LXZhcmlh
YmxlPTAgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVd2bGEgLVduby1wb2ludGVyLXNp
Z24gLVduby1zdHJpbmdvcC10cnVuY2F0aW9uIC1XZXJyb3I9ZGF0ZS10aW1lIC1XZXJyb3I9aW5j
b21wYXRpYmxlLXBvaW50ZXItdHlwZXMgLVdlcnJvcj1kZXNpZ25hdGVkLWluaXQgLVduby1wYWNr
ZWQtbm90LWFsaWduZWQgLXN0ZD1nbnU5MCAtcCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWNv
bW1vbiAtZnNob3J0LXdjaGFyIC1mbm8tUElFIC1mYWxpZ24tanVtcHM9MSAtZmFsaWduLWxvb3Bz
PTEgLWZuby1hc3luY2hyb25vdXMtdW53aW5kLXRhYmxlcyAtZm5vLWp1bXAtdGFibGVzIC1mbm8t
ZGVsZXRlLW51bGwtcG9pbnRlci1jaGVja3MgLWZzdGFjay1wcm90ZWN0b3IgLWZuby12YXItdHJh
Y2tpbmctYXNzaWdubWVudHMgLWZuby1zdHJpY3Qtb3ZlcmZsb3cgLWZuby1tZXJnZS1hbGwtY29u
c3RhbnRzIC1mbWVyZ2UtY29uc3RhbnRzIC1mc3RhY2stY2hlY2s9bm8gLWZjb25zZXJ2ZS1zdGFj
ayAtZm1hY3JvLXByZWZpeC1tYXA9Li89IC1mY2YtcHJvdGVjdGlvbj1ub25lIC1vIC0gLWZyYW5k
b20tc2VlZD0wIC1mZHVtcC1ub2FkZHIKCiMgMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIKIyAxICI8YnVpbHQtaW4+
IgojIDEgIjxjb21tYW5kLWxpbmU+IgojIDEgIi4vLi9pbmNsdWRlL2xpbnV4L2tjb25maWcuaCIg
MQoKCgoKIyAxICIuL2luY2x1ZGUvZ2VuZXJhdGVkL2F1dG9jb25mLmgiIDEKIyA2ICIuLy4vaW5j
bHVkZS9saW51eC9rY29uZmlnLmgiIDIKIyAxICI8Y29tbWFuZC1saW5lPiIgMgojIDEgIi4vLi9p
bmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiIDEKIyA1OSAiLi8uL2luY2x1ZGUvbGludXgv
Y29tcGlsZXJfdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvY29tcGlsZXJfYXR0cmlidXRl
cy5oIiAxCiMgNjAgIi4vLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiIDIKIyA2OCAi
Li8uL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvbGludXgv
Y29tcGlsZXItZ2NjLmgiIDEKIyA2OSAiLi8uL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMu
aCIgMgojIDg1ICIuLy4vaW5jbHVkZS9saW51eC9jb21waWxlcl90eXBlcy5oIgpzdHJ1Y3QgZnRy
YWNlX2JyYW5jaF9kYXRhIHsKIGNvbnN0IGNoYXIgKmZ1bmM7CiBjb25zdCBjaGFyICpmaWxlOwog
dW5zaWduZWQgbGluZTsKIHVuaW9uIHsKICBzdHJ1Y3QgewogICB1bnNpZ25lZCBsb25nIGNvcnJl
Y3Q7CiAgIHVuc2lnbmVkIGxvbmcgaW5jb3JyZWN0OwogIH07CiAgc3RydWN0IHsKICAgdW5zaWdu
ZWQgbG9uZyBtaXNzOwogICB1bnNpZ25lZCBsb25nIGhpdDsKICB9OwogIHVuc2lnbmVkIGxvbmcg
bWlzc19oaXRbMl07CiB9Owp9OwoKc3RydWN0IGZ0cmFjZV9saWtlbHlfZGF0YSB7CiBzdHJ1Y3Qg
ZnRyYWNlX2JyYW5jaF9kYXRhIGRhdGE7CiB1bnNpZ25lZCBsb25nIGNvbnN0YW50Owp9OwojIDEg
Ijxjb21tYW5kLWxpbmU+IiAyCiMgMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIKIyAyNiAiZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIKIyAx
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2RjY2cu
aCIgMQojIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L2h3L2RjY2cuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZGNfdHlwZXMuaCIgMQojIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvZGNfdHlwZXMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvb3NfdHlwZXMuaCIgMQojIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvZGMvb3NfdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvbGludXgva2dkYi5o
IiAxCiMgMTYgIi4vaW5jbHVkZS9saW51eC9rZ2RiLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2xp
bmthZ2UuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaCIgMQoj
IDYgIi4vaW5jbHVkZS9saW51eC9saW5rYWdlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvc3Ry
aW5naWZ5LmgiIDEKIyA3ICIuL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIiAyCiMgMSAiLi9pbmNs
dWRlL2xpbnV4L2V4cG9ydC5oIiAxCiMgMTYgIi4vaW5jbHVkZS9saW51eC9leHBvcnQuaCIKZXh0
ZXJuIHN0cnVjdCBtb2R1bGUgX190aGlzX21vZHVsZTsKIyA0MyAiLi9pbmNsdWRlL2xpbnV4L2V4
cG9ydC5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9jb21waWxlci5oIiAxCiMgMTgwICIuL2luY2x1
ZGUvbGludXgvY29tcGlsZXIuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC90eXBlcy5oIiAx
CgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vdHlwZXMuaCIg
MQojIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3R5cGVzLmgiIDEKCgoKCgoKIyAxICIu
L2luY2x1ZGUvYXNtLWdlbmVyaWMvaW50LWxsNjQuaCIgMQojIDExICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvaW50LWxsNjQuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9pbnQtbGw2
NC5oIiAxCiMgMTIgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2ludC1sbDY0LmgiCiMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2JpdHNwZXJsb25nLmgiIDEKIyAxMSAiLi9hcmNo
L3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2JpdHNwZXJsb25nLmgiCiMgMSAiLi9pbmNsdWRlL2FzbS1n
ZW5lcmljL2JpdHNwZXJsb25nLmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVy
aWMvYml0c3BlcmxvbmcuaCIgMQojIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRzcGVybG9u
Zy5oIiAyCiMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9iaXRzcGVybG9uZy5oIiAy
CiMgMTMgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2ludC1sbDY0LmgiIDIKCgoKCgoKCnR5
cGVkZWYgX19zaWduZWRfXyBjaGFyIF9fczg7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3U4OwoK
dHlwZWRlZiBfX3NpZ25lZF9fIHNob3J0IF9fczE2Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9f
dTE2OwoKdHlwZWRlZiBfX3NpZ25lZF9fIGludCBfX3MzMjsKdHlwZWRlZiB1bnNpZ25lZCBpbnQg
X191MzI7CgoKX19leHRlbnNpb25fXyB0eXBlZGVmIF9fc2lnbmVkX18gbG9uZyBsb25nIF9fczY0
OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fdTY0OwojIDEyICIu
L2luY2x1ZGUvYXNtLWdlbmVyaWMvaW50LWxsNjQuaCIgMgoKCgoKdHlwZWRlZiBfX3M4IHM4Owp0
eXBlZGVmIF9fdTggdTg7CnR5cGVkZWYgX19zMTYgczE2Owp0eXBlZGVmIF9fdTE2IHUxNjsKdHlw
ZWRlZiBfX3MzMiBzMzI7CnR5cGVkZWYgX191MzIgdTMyOwp0eXBlZGVmIF9fczY0IHM2NDsKdHlw
ZWRlZiBfX3U2NCB1NjQ7CiMgOCAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdHlwZXMuaCIg
MgojIDIgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vdHlwZXMuaCIgMgoj
IDYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3R5cGVzLmgiIDIKIyAxNCAiLi9pbmNsdWRlL3VhcGkv
bGludXgvdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9wb3NpeF90eXBlcy5oIiAx
CgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9zdGRkZWYuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUv
dWFwaS9saW51eC9zdGRkZWYuaCIgMQojIDYgIi4vaW5jbHVkZS9saW51eC9zdGRkZWYuaCIgMgoK
CgoKZW51bSB7CiBmYWxzZSA9IDAsCiB0cnVlID0gMQp9OwojIDYgIi4vaW5jbHVkZS91YXBpL2xp
bnV4L3Bvc2l4X3R5cGVzLmgiIDIKIyAyNSAiLi9pbmNsdWRlL3VhcGkvbGludXgvcG9zaXhfdHlw
ZXMuaCIKdHlwZWRlZiBzdHJ1Y3QgewogdW5zaWduZWQgbG9uZyBmZHNfYml0c1sxMDI0IC8gKDgg
KiBzaXplb2YobG9uZykpXTsKfSBfX2tlcm5lbF9mZF9zZXQ7CgoKdHlwZWRlZiB2b2lkICgqX19r
ZXJuZWxfc2lnaGFuZGxlcl90KShpbnQpOwoKCnR5cGVkZWYgaW50IF9fa2VybmVsX2tleV90Owp0
eXBlZGVmIGludCBfX2tlcm5lbF9tcWRfdDsKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
b3NpeF90eXBlcy5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9wb3Np
eF90eXBlc182NC5oIiAxCiMgMTEgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9wb3NpeF90
eXBlc182NC5oIgp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX29sZF91aWRfdDsKdHlw
ZWRlZiB1bnNpZ25lZCBzaG9ydCBfX2tlcm5lbF9vbGRfZ2lkX3Q7CgoKdHlwZWRlZiB1bnNpZ25l
ZCBsb25nIF9fa2VybmVsX29sZF9kZXZfdDsKCgojIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5l
cmljL3Bvc2l4X3R5cGVzLmgiIDEKIyAxNSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvcG9z
aXhfdHlwZXMuaCIKdHlwZWRlZiBsb25nIF9fa2VybmVsX2xvbmdfdDsKdHlwZWRlZiB1bnNpZ25l
ZCBsb25nIF9fa2VybmVsX3Vsb25nX3Q7CgoKCnR5cGVkZWYgX19rZXJuZWxfdWxvbmdfdCBfX2tl
cm5lbF9pbm9fdDsKCgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfbW9kZV90OwoKCgp0
eXBlZGVmIGludCBfX2tlcm5lbF9waWRfdDsKCgoKdHlwZWRlZiBpbnQgX19rZXJuZWxfaXBjX3Bp
ZF90OwoKCgp0eXBlZGVmIHVuc2lnbmVkIGludCBfX2tlcm5lbF91aWRfdDsKdHlwZWRlZiB1bnNp
Z25lZCBpbnQgX19rZXJuZWxfZ2lkX3Q7CgoKCnR5cGVkZWYgX19rZXJuZWxfbG9uZ190IF9fa2Vy
bmVsX3N1c2Vjb25kc190OwoKCgp0eXBlZGVmIGludCBfX2tlcm5lbF9kYWRkcl90OwoKCgp0eXBl
ZGVmIHVuc2lnbmVkIGludCBfX2tlcm5lbF91aWQzMl90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBf
X2tlcm5lbF9naWQzMl90OwojIDcyICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9wb3NpeF90
eXBlcy5oIgp0eXBlZGVmIF9fa2VybmVsX3Vsb25nX3QgX19rZXJuZWxfc2l6ZV90Owp0eXBlZGVm
IF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9zc2l6ZV90Owp0eXBlZGVmIF9fa2VybmVsX2xvbmdf
dCBfX2tlcm5lbF9wdHJkaWZmX3Q7CgoKCgp0eXBlZGVmIHN0cnVjdCB7CiBpbnQgdmFsWzJdOwp9
IF9fa2VybmVsX2ZzaWRfdDsKCgoKCgp0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9v
ZmZfdDsKdHlwZWRlZiBsb25nIGxvbmcgX19rZXJuZWxfbG9mZl90Owp0eXBlZGVmIF9fa2VybmVs
X2xvbmdfdCBfX2tlcm5lbF9vbGRfdGltZV90OwoKCgp0eXBlZGVmIGxvbmcgbG9uZyBfX2tlcm5l
bF90aW1lNjRfdDsKdHlwZWRlZiBfX2tlcm5lbF9sb25nX3QgX19rZXJuZWxfY2xvY2tfdDsKdHlw
ZWRlZiBpbnQgX19rZXJuZWxfdGltZXJfdDsKdHlwZWRlZiBpbnQgX19rZXJuZWxfY2xvY2tpZF90
Owp0eXBlZGVmIGNoYXIgKiBfX2tlcm5lbF9jYWRkcl90Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0
IF9fa2VybmVsX3VpZDE2X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX19rZXJuZWxfZ2lkMTZf
dDsKIyAxOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3Bvc2l4X3R5cGVzXzY0LmgiIDIK
IyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bvc2l4X3R5cGVzLmgiIDIKIyAzNyAiLi9pbmNs
dWRlL3VhcGkvbGludXgvcG9zaXhfdHlwZXMuaCIgMgojIDE1ICIuL2luY2x1ZGUvdWFwaS9saW51
eC90eXBlcy5oIiAyCiMgMjkgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3R5cGVzLmgiCnR5cGVkZWYg
X191MTYgX19sZTE2Owp0eXBlZGVmIF9fdTE2IF9fYmUxNjsKdHlwZWRlZiBfX3UzMiBfX2xlMzI7
CnR5cGVkZWYgX191MzIgX19iZTMyOwp0eXBlZGVmIF9fdTY0IF9fbGU2NDsKdHlwZWRlZiBfX3U2
NCBfX2JlNjQ7Cgp0eXBlZGVmIF9fdTE2IF9fc3VtMTY7CnR5cGVkZWYgX191MzIgX193c3VtOwoj
IDUyICIuL2luY2x1ZGUvdWFwaS9saW51eC90eXBlcy5oIgp0eXBlZGVmIHVuc2lnbmVkIF9fcG9s
bF90OwojIDE4MSAiLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgiIDIKIyAxOTYgIi4vaW5jbHVk
ZS9saW51eC9jb21waWxlci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9f
aW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KQp2b2lkIF9fcmVhZF9vbmNlX3NpemUoY29uc3Qgdm9sYXRpbGUgdm9pZCAqcCwgdm9pZCAqcmVz
LCBpbnQgc2l6ZSkKewogKHsgc3dpdGNoIChzaXplKSB7IGNhc2UgMTogKihfX3U4ICopcmVzID0g
Kih2b2xhdGlsZSBfX3U4ICopcDsgYnJlYWs7IGNhc2UgMjogKihfX3UxNiAqKXJlcyA9ICoodm9s
YXRpbGUgX191MTYgKilwOyBicmVhazsgY2FzZSA0OiAqKF9fdTMyICopcmVzID0gKih2b2xhdGls
ZSBfX3UzMiAqKXA7IGJyZWFrOyBjYXNlIDg6ICooX191NjQgKilyZXMgPSAqKHZvbGF0aWxlIF9f
dTY0ICopcDsgYnJlYWs7IGRlZmF1bHQ6IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVt
b3J5Iik7IF9fYnVpbHRpbl9tZW1jcHkoKHZvaWQgKilyZXMsIChjb25zdCB2b2lkICopcCwgc2l6
ZSk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7IH0gfSk7Cn0KIyAyMTQg
Ii4vaW5jbHVkZS9saW51eC9jb21waWxlci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKQp2b2lkIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjayhjb25zdCB2b2xhdGlsZSB2
b2lkICpwLCB2b2lkICpyZXMsIGludCBzaXplKQp7CiAoeyBzd2l0Y2ggKHNpemUpIHsgY2FzZSAx
OiAqKF9fdTggKilyZXMgPSAqKHZvbGF0aWxlIF9fdTggKilwOyBicmVhazsgY2FzZSAyOiAqKF9f
dTE2ICopcmVzID0gKih2b2xhdGlsZSBfX3UxNiAqKXA7IGJyZWFrOyBjYXNlIDQ6ICooX191MzIg
KilyZXMgPSAqKHZvbGF0aWxlIF9fdTMyICopcDsgYnJlYWs7IGNhc2UgODogKihfX3U2NCAqKXJl
cyA9ICoodm9sYXRpbGUgX191NjQgKilwOyBicmVhazsgZGVmYXVsdDogX19hc21fXyBfX3ZvbGF0
aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgX19idWlsdGluX21lbWNweSgodm9pZCAqKXJlcywgKGNv
bnN0IHZvaWQgKilwLCBzaXplKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnki
KTsgfSB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChfX25vX2luc3RydW1l
bnRfZnVuY3Rpb25fXykpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBf
X3dyaXRlX29uY2Vfc2l6ZSh2b2xhdGlsZSB2b2lkICpwLCB2b2lkICpyZXMsIGludCBzaXplKQp7
CiBzd2l0Y2ggKHNpemUpIHsKIGNhc2UgMTogKih2b2xhdGlsZSBfX3U4ICopcCA9ICooX191OCAq
KXJlczsgYnJlYWs7CiBjYXNlIDI6ICoodm9sYXRpbGUgX191MTYgKilwID0gKihfX3UxNiAqKXJl
czsgYnJlYWs7CiBjYXNlIDQ6ICoodm9sYXRpbGUgX191MzIgKilwID0gKihfX3UzMiAqKXJlczsg
YnJlYWs7CiBjYXNlIDg6ICoodm9sYXRpbGUgX191NjQgKilwID0gKihfX3U2NCAqKXJlczsgYnJl
YWs7CiBkZWZhdWx0OgogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiAg
X19idWlsdGluX21lbWNweSgodm9pZCAqKXAsIChjb25zdCB2b2lkICopcmVzLCBzaXplKTsKICBf
X2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogfQp9CiMgMjU2ICIuL2luY2x1
ZGUvbGludXgvY29tcGlsZXIuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2JhcnJpZXIu
aCIgMQoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgiIDEKCgoK
CgoKIyAxICIuL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDEzICIuL2luY2x1ZGUvbGludXgv
dHlwZXMuaCIKdHlwZWRlZiB1MzIgX19rZXJuZWxfZGV2X3Q7Cgp0eXBlZGVmIF9fa2VybmVsX2Zk
X3NldCBmZF9zZXQ7CnR5cGVkZWYgX19rZXJuZWxfZGV2X3QgZGV2X3Q7CnR5cGVkZWYgX19rZXJu
ZWxfaW5vX3QgaW5vX3Q7CnR5cGVkZWYgX19rZXJuZWxfbW9kZV90IG1vZGVfdDsKdHlwZWRlZiB1
bnNpZ25lZCBzaG9ydCB1bW9kZV90Owp0eXBlZGVmIHUzMiBubGlua190Owp0eXBlZGVmIF9fa2Vy
bmVsX29mZl90IG9mZl90Owp0eXBlZGVmIF9fa2VybmVsX3BpZF90IHBpZF90Owp0eXBlZGVmIF9f
a2VybmVsX2RhZGRyX3QgZGFkZHJfdDsKdHlwZWRlZiBfX2tlcm5lbF9rZXlfdCBrZXlfdDsKdHlw
ZWRlZiBfX2tlcm5lbF9zdXNlY29uZHNfdCBzdXNlY29uZHNfdDsKdHlwZWRlZiBfX2tlcm5lbF90
aW1lcl90IHRpbWVyX3Q7CnR5cGVkZWYgX19rZXJuZWxfY2xvY2tpZF90IGNsb2NraWRfdDsKdHlw
ZWRlZiBfX2tlcm5lbF9tcWRfdCBtcWRfdDsKCnR5cGVkZWYgX0Jvb2wgYm9vbDsKCnR5cGVkZWYg
X19rZXJuZWxfdWlkMzJfdCB1aWRfdDsKdHlwZWRlZiBfX2tlcm5lbF9naWQzMl90IGdpZF90Owp0
eXBlZGVmIF9fa2VybmVsX3VpZDE2X3QgdWlkMTZfdDsKdHlwZWRlZiBfX2tlcm5lbF9naWQxNl90
IGdpZDE2X3Q7Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWludHB0cl90OwojIDQ2ICIuL2luY2x1
ZGUvbGludXgvdHlwZXMuaCIKdHlwZWRlZiBfX2tlcm5lbF9sb2ZmX3QgbG9mZl90OwojIDU1ICIu
L2luY2x1ZGUvbGludXgvdHlwZXMuaCIKdHlwZWRlZiBfX2tlcm5lbF9zaXplX3Qgc2l6ZV90OwoK
CgoKdHlwZWRlZiBfX2tlcm5lbF9zc2l6ZV90IHNzaXplX3Q7CgoKCgp0eXBlZGVmIF9fa2VybmVs
X3B0cmRpZmZfdCBwdHJkaWZmX3Q7CgoKCgp0eXBlZGVmIF9fa2VybmVsX2Nsb2NrX3QgY2xvY2tf
dDsKCgoKCnR5cGVkZWYgX19rZXJuZWxfY2FkZHJfdCBjYWRkcl90OwoKCgp0eXBlZGVmIHVuc2ln
bmVkIGNoYXIgdV9jaGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVfc2hvcnQ7CnR5cGVkZWYg
dW5zaWduZWQgaW50IHVfaW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdV9sb25nOwoKCnR5cGVk
ZWYgdW5zaWduZWQgY2hhciB1bmNoYXI7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdXNob3J0Owp0
eXBlZGVmIHVuc2lnbmVkIGludCB1aW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWxvbmc7CgoK
Cgp0eXBlZGVmIHU4IHVfaW50OF90Owp0eXBlZGVmIHM4IGludDhfdDsKdHlwZWRlZiB1MTYgdV9p
bnQxNl90Owp0eXBlZGVmIHMxNiBpbnQxNl90Owp0eXBlZGVmIHUzMiB1X2ludDMyX3Q7CnR5cGVk
ZWYgczMyIGludDMyX3Q7CgoKCnR5cGVkZWYgdTggdWludDhfdDsKdHlwZWRlZiB1MTYgdWludDE2
X3Q7CnR5cGVkZWYgdTMyIHVpbnQzMl90OwoKCnR5cGVkZWYgdTY0IHVpbnQ2NF90Owp0eXBlZGVm
IHU2NCB1X2ludDY0X3Q7CnR5cGVkZWYgczY0IGludDY0X3Q7CiMgMTI1ICIuL2luY2x1ZGUvbGlu
dXgvdHlwZXMuaCIKdHlwZWRlZiB1NjQgc2VjdG9yX3Q7CnR5cGVkZWYgdTY0IGJsa2NudF90Owoj
IDE0MyAiLi9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiCnR5cGVkZWYgdTY0IGRtYV9hZGRyX3Q7CgoK
Cgp0eXBlZGVmIHVuc2lnbmVkIGludCBnZnBfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2xhYl9m
bGFnc190Owp0eXBlZGVmIHVuc2lnbmVkIGludCBmbW9kZV90OwoKCnR5cGVkZWYgdTY0IHBoeXNf
YWRkcl90OwoKCgoKdHlwZWRlZiBwaHlzX2FkZHJfdCByZXNvdXJjZV9zaXplX3Q7CgoKCgoKdHlw
ZWRlZiB1bnNpZ25lZCBsb25nIGlycV9od19udW1iZXJfdDsKCnR5cGVkZWYgc3RydWN0IHsKIGlu
dCBjb3VudGVyOwp9IGF0b21pY190OwoKCnR5cGVkZWYgc3RydWN0IHsKIHM2NCBjb3VudGVyOwp9
IGF0b21pYzY0X3Q7CgoKc3RydWN0IGxpc3RfaGVhZCB7CiBzdHJ1Y3QgbGlzdF9oZWFkICpuZXh0
LCAqcHJldjsKfTsKCnN0cnVjdCBobGlzdF9oZWFkIHsKIHN0cnVjdCBobGlzdF9ub2RlICpmaXJz
dDsKfTsKCnN0cnVjdCBobGlzdF9ub2RlIHsKIHN0cnVjdCBobGlzdF9ub2RlICpuZXh0LCAqKnBw
cmV2Owp9OwoKc3RydWN0IHVzdGF0IHsKIF9fa2VybmVsX2RhZGRyX3QgZl90ZnJlZTsKIF9fa2Vy
bmVsX2lub190IGZfdGlub2RlOwogY2hhciBmX2ZuYW1lWzZdOwogY2hhciBmX2ZwYWNrWzZdOwp9
OwojIDIxNCAiLi9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiCnN0cnVjdCBjYWxsYmFja19oZWFkIHsK
IHN0cnVjdCBjYWxsYmFja19oZWFkICpuZXh0Owogdm9pZCAoKmZ1bmMpKHN0cnVjdCBjYWxsYmFj
a19oZWFkICpoZWFkKTsKfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKHNpemVvZih2b2lkICopKSkp
OwoKCnR5cGVkZWYgdm9pZCAoKnJjdV9jYWxsYmFja190KShzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAq
aGVhZCk7CnR5cGVkZWYgdm9pZCAoKmNhbGxfcmN1X2Z1bmNfdCkoc3RydWN0IGNhbGxiYWNrX2hl
YWQgKmhlYWQsIHJjdV9jYWxsYmFja190IGZ1bmMpOwoKdHlwZWRlZiB2b2lkICgqc3dhcF9mdW5j
X3QpKHZvaWQgKmEsIHZvaWQgKmIsIGludCBzaXplKTsKCnR5cGVkZWYgaW50ICgqY21wX3JfZnVu
Y190KShjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBjb25zdCB2b2lkICpwcml2KTsKdHlw
ZWRlZiBpbnQgKCpjbXBfZnVuY190KShjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKTsKIyA4
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgiIDIKCgojIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vYXNtLmgiIDEKIyAxODIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXNt
LmgiCnJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyIGFzbSgicnNw
Iik7CiMgMTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUuaCIgMgojIDU4ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgiCnN0cnVjdCBhbHRfaW5zdHIgewog
czMyIGluc3RyX29mZnNldDsKIHMzMiByZXBsX29mZnNldDsKIHUxNiBjcHVpZDsKIHU4IGluc3Ry
bGVuOwogdTggcmVwbGFjZW1lbnRsZW47CiB1OCBwYWRsZW47Cn0gX19hdHRyaWJ1dGVfXygoX19w
YWNrZWRfXykpOwoKCgoKCmV4dGVybiBpbnQgYWx0ZXJuYXRpdmVzX3BhdGNoZWQ7CgpleHRlcm4g
dm9pZCBhbHRlcm5hdGl2ZV9pbnN0cnVjdGlvbnModm9pZCk7CmV4dGVybiB2b2lkIGFwcGx5X2Fs
dGVybmF0aXZlcyhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwgc3RydWN0IGFsdF9pbnN0ciAqZW5k
KTsKCnN0cnVjdCBtb2R1bGU7CgoKZXh0ZXJuIHZvaWQgYWx0ZXJuYXRpdmVzX3NtcF9tb2R1bGVf
YWRkKHN0cnVjdCBtb2R1bGUgKm1vZCwgY2hhciAqbmFtZSwKICAgICB2b2lkICpsb2Nrcywgdm9p
ZCAqbG9ja3NfZW5kLAogICAgIHZvaWQgKnRleHQsIHZvaWQgKnRleHRfZW5kKTsKZXh0ZXJuIHZv
aWQgYWx0ZXJuYXRpdmVzX3NtcF9tb2R1bGVfZGVsKHN0cnVjdCBtb2R1bGUgKm1vZCk7CmV4dGVy
biB2b2lkIGFsdGVybmF0aXZlc19lbmFibGVfc21wKHZvaWQpOwpleHRlcm4gaW50IGFsdGVybmF0
aXZlc190ZXh0X3Jlc2VydmVkKHZvaWQgKnN0YXJ0LCB2b2lkICplbmQpOwpleHRlcm4gYm9vbCBz
a2lwX3NtcF9hbHRlcm5hdGl2ZXM7CiMgNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iYXJyaWVy
LmgiIDIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vcHMuaCIgMQojIDE0MyAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9ub3BzLmgiCmV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyICogY29u
c3QgKmlkZWFsX25vcHM7CmV4dGVybiB2b2lkIGFyY2hfaW5pdF9pZGVhbF9ub3BzKHZvaWQpOwoj
IDcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYmFycmllci5oIiAyCiMgMzYgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYmFycmllci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9f
bm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgdW5zaWduZWQgbG9uZyBhcnJheV9pbmRleF9tYXNr
X25vc3BlYyh1bnNpZ25lZCBsb25nIGluZGV4LAogIHVuc2lnbmVkIGxvbmcgc2l6ZSkKewogdW5z
aWduZWQgbG9uZyBtYXNrOwoKIGFzbSB2b2xhdGlsZSAoImNtcCAlMSwlMjsgc2JiICUwLCUwOyIK
ICAgOiI9ciIgKG1hc2spCiAgIDoiZyIoc2l6ZSksInIiIChpbmRleCkKICAgOiJjYyIpOwogcmV0
dXJuIG1hc2s7Cn0KIyA4NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iYXJyaWVyLmgiCiMgMSAi
Li9pbmNsdWRlL2FzbS1nZW5lcmljL2JhcnJpZXIuaCIgMQojIDE2ICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYmFycmllci5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9jb21waWxlci5oIiAxCiMgMTcg
Ii4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iYXJyaWVyLmgiIDIKIyA4NiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9iYXJyaWVyLmgiIDIKIyAyNTcgIi4vaW5jbHVkZS9saW51eC9jb21waWxlci5oIiAy
CiMgMSAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLWNoZWNrcy5oIiAxCiMgMTYgIi4vaW5jbHVkZS9s
aW51eC9rYXNhbi1jaGVja3MuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChfX25v
X2luc3RydW1lbnRfZnVuY3Rpb25fXykpIGJvb2wgX19rYXNhbl9jaGVja19yZWFkKGNvbnN0IHZv
bGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVkIGludCBzaXplKQp7CiByZXR1cm4gdHJ1ZTsKfQpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkg
Ym9vbCBfX2thc2FuX2NoZWNrX3dyaXRlKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVk
IGludCBzaXplKQp7CiByZXR1cm4gdHJ1ZTsKfQojIDM0ICIuL2luY2x1ZGUvbGludXgva2FzYW4t
Y2hlY2tzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygoX19ub19pbnN0cnVtZW50
X2Z1bmN0aW9uX18pKSBib29sIGthc2FuX2NoZWNrX3JlYWQoY29uc3Qgdm9sYXRpbGUgdm9pZCAq
cCwgdW5zaWduZWQgaW50IHNpemUpCnsKIHJldHVybiB0cnVlOwp9CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygoX19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKSBib29sIGthc2FuX2No
ZWNrX3dyaXRlKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVkIGludCBzaXplKQp7CiBy
ZXR1cm4gdHJ1ZTsKfQojIDI1OCAiLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgiIDIKIyAyNzcg
Ii4vaW5jbHVkZS9saW51eC9jb21waWxlci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKQp1bnNpZ25lZCBsb25nIHJlYWRfd29yZF9hdF9hX3RpbWUoY29uc3Qgdm9pZCAq
YWRkcikKewoga2FzYW5fY2hlY2tfcmVhZChhZGRyLCAxKTsKIHJldHVybiAqKHVuc2lnbmVkIGxv
bmcgKilhZGRyOwp9CiMgMzA4ICIuL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChfX25vX2luc3RydW1lbnRfZnVuY3Rpb25fXykpIHZvaWQg
Km9mZnNldF90b19wdHIoY29uc3QgaW50ICpvZmYpCnsKIHJldHVybiAodm9pZCAqKSgodW5zaWdu
ZWQgbG9uZylvZmYgKyAqb2ZmKTsKfQojIDQ0ICIuL2luY2x1ZGUvbGludXgvZXhwb3J0LmgiIDIK
IyA2MCAiLi9pbmNsdWRlL2xpbnV4L2V4cG9ydC5oIgpzdHJ1Y3Qga2VybmVsX3N5bWJvbCB7CiBp
bnQgdmFsdWVfb2Zmc2V0OwogaW50IG5hbWVfb2Zmc2V0OwogaW50IG5hbWVzcGFjZV9vZmZzZXQ7
Cn07CiMgOCAiLi9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vbGlua2FnZS5oIiAxCiMgOSAiLi9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaCIgMgoj
IDE3ICIuL2luY2x1ZGUvbGludXgva2dkYi5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2luaXQu
aCIgMQojIDExNiAiLi9pbmNsdWRlL2xpbnV4L2luaXQuaCIKdHlwZWRlZiBpbnQgKCppbml0Y2Fs
bF90KSh2b2lkKTsKdHlwZWRlZiB2b2lkICgqZXhpdGNhbGxfdCkodm9pZCk7CgoKdHlwZWRlZiBp
bnQgaW5pdGNhbGxfZW50cnlfdDsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGluaXRjYWxsX3QgaW5pdGNhbGxfZnJvbV9lbnRyeShpbml0
Y2FsbF9lbnRyeV90ICplbnRyeSkKewogcmV0dXJuIG9mZnNldF90b19wdHIoZW50cnkpOwp9CiMg
MTM1ICIuL2luY2x1ZGUvbGludXgvaW5pdC5oIgpleHRlcm4gaW5pdGNhbGxfZW50cnlfdCBfX2Nv
bl9pbml0Y2FsbF9zdGFydFtdLCBfX2Nvbl9pbml0Y2FsbF9lbmRbXTsKCgp0eXBlZGVmIHZvaWQg
KCpjdG9yX2ZuX3QpKHZvaWQpOwoKc3RydWN0IGZpbGVfc3lzdGVtX3R5cGU7CgoKZXh0ZXJuIGlu
dCBkb19vbmVfaW5pdGNhbGwoaW5pdGNhbGxfdCBmbik7CmV4dGVybiBjaGFyIF9fYXR0cmlidXRl
X18oKF9fc2VjdGlvbl9fKCIuaW5pdC5kYXRhIikpKSBib290X2NvbW1hbmRfbGluZVtdOwpleHRl
cm4gY2hhciAqc2F2ZWRfY29tbWFuZF9saW5lOwpleHRlcm4gdW5zaWduZWQgaW50IHJlc2V0X2Rl
dmljZXM7CgoKdm9pZCBzZXR1cF9hcmNoKGNoYXIgKiopOwp2b2lkIHByZXBhcmVfbmFtZXNwYWNl
KHZvaWQpOwp2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIGluaXRfcm9vdGZzKHZvaWQpOwpleHRlcm4gc3RydWN0
IGZpbGVfc3lzdGVtX3R5cGUgcm9vdGZzX2ZzX3R5cGU7CgoKZXh0ZXJuIGJvb2wgcm9kYXRhX2Vu
YWJsZWQ7CgoKdm9pZCBtYXJrX3JvZGF0YV9ybyh2b2lkKTsKCgpleHRlcm4gdm9pZCAoKmxhdGVf
dGltZV9pbml0KSh2b2lkKTsKCmV4dGVybiBib29sIGluaXRjYWxsX2RlYnVnOwojIDE4ICIuL2lu
Y2x1ZGUvbGludXgva2dkYi5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy5oIiAxCgoK
CgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIgMQoKCgoKCgoKIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaCIgMQoKCgoKCiMgMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIiAxCgoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3JlcXVpcmVkLWZlYXR1cmVzLmgiIDEKIyA3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Nw
dWZlYXR1cmVzLmgiIDIKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Rpc2FibGVkLWZl
YXR1cmVzLmgiIDEKIyAxMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIiAy
CiMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmgiIDIKCgoKCgoKZXh0ZXJuIHZv
aWQgX194Y2hnX3dyb25nX3NpemUodm9pZCkKIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQmFk
IGFyZ3VtZW50IHNpemUgZm9yIHhjaGciKSkpOwpleHRlcm4gdm9pZCBfX2NtcHhjaGdfd3Jvbmdf
c2l6ZSh2b2lkKQogX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJCYWQgYXJndW1lbnQgc2l6ZSBm
b3IgY21weGNoZyIpKSk7CmV4dGVybiB2b2lkIF9feGFkZF93cm9uZ19zaXplKHZvaWQpCiBfX2F0
dHJpYnV0ZV9fKChfX2Vycm9yX18oIkJhZCBhcmd1bWVudCBzaXplIGZvciB4YWRkIikpKTsKZXh0
ZXJuIHZvaWQgX19hZGRfd3Jvbmdfc2l6ZSh2b2lkKQogX19hdHRyaWJ1dGVfXygoX19lcnJvcl9f
KCJCYWQgYXJndW1lbnQgc2l6ZSBmb3IgYWRkIikpKTsKIyAxNDUgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vY21weGNoZy5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY21weGNoZ182NC5o
IiAxCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHNldF82NGJpdCh2b2xhdGlsZSB1NjQgKnB0ciwgdTY0IHZhbCkKewogKnB0
ciA9IHZhbDsKfQojIDE0NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmgiIDIKIyA5
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIiAyCiMgMSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9ybXdjYy5oIiAxCiMgMTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgi
IDIKIyAyNSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBpbnQgYXJjaF9hdG9taWNfcmVhZChjb25zdCBhdG9taWNfdCAq
dikKewoKCgoKIHJldHVybiAoeyB1bmlvbiB7IHR5cGVvZigodiktPmNvdW50ZXIpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKHYpLT5jb3VudGVy
KSwgX191Ll9fYywgc2l6ZW9mKCh2KS0+Y291bnRlcikpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVf
bm9jaGVjaygmKCh2KS0+Y291bnRlciksIF9fdS5fX2MsIHNpemVvZigodiktPmNvdW50ZXIpKTsg
ZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsKfQojIDQxICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2F0b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
YXJjaF9hdG9taWNfc2V0KGF0b21pY190ICp2LCBpbnQgaSkKewogKHsgdW5pb24geyB0eXBlb2Yo
di0+Y291bnRlcikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBl
b2Yodi0+Y291bnRlcikpIChpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKHYtPmNvdW50ZXIpLCBf
X3UuX19jLCBzaXplb2Yodi0+Y291bnRlcikpOyBfX3UuX192YWw7IH0pOwp9CiMgNTMgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZCBhcmNoX2F0b21pY19hZGQoaW50IGksIGF0b21pY190ICp2KQp7CiBhc20gdm9s
YXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5s
b25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJhZGRs
ICUxLCUwIgogICAgICAgOiAiK20iICh2LT5jb3VudGVyKQogICAgICAgOiAiaXIiIChpKSA6ICJt
ZW1vcnkiKTsKfQojIDY3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYXJjaF9hdG9taWNfc3ViKGludCBpLCBh
dG9taWNfdCAqdikKewogYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFc
IlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3
MToiICJcblx0bG9jazsgIiAic3VibCAlMSwlMCIKICAgICAgIDogIittIiAodi0+Y291bnRlcikK
ICAgICAgIDogImlyIiAoaSkgOiAibWVtb3J5Iik7Cn0KIyA4MyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9hdG9taWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sIGFy
Y2hfYXRvbWljX3N1Yl9hbmRfdGVzdChpbnQgaSwgYXRvbWljX3QgKnYpCnsKIHJldHVybiAoeyBi
b29sIGM7IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJzdWJsIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25k
aXRpb24gY29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20iICh2LT5jb3VudGVyKSwgIj1AY2Mi
ICJlIiAoYykgOiBbdmFsXSAiZXIiIChpKSA6ICJtZW1vcnkiKTsgYzsgfSk7Cn0KIyA5NSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkIGFyY2hfYXRvbWljX2luYyhhdG9taWNfdCAqdikKewogYXNtIHZvbGF0aWxl
KCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2
NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiaW5jbCAlMCIK
ICAgICAgIDogIittIiAodi0+Y291bnRlcikgOjogIm1lbW9yeSIpOwp9CiMgMTA4ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgYXJjaF9hdG9taWNfZGVjKGF0b21pY190ICp2KQp7CiBhc20gdm9sYXRpbGUoIi5w
dXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYg
LSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJkZWNsICUwIgogICAg
ICAgOiAiK20iICh2LT5jb3VudGVyKSA6OiAibWVtb3J5Iik7Cn0KIyAxMjMgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYXRvbWljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
Ym9vbCBhcmNoX2F0b21pY19kZWNfYW5kX3Rlc3QoYXRvbWljX3QgKnYpCnsKIHJldHVybiAoeyBi
b29sIGM7IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJkZWNsIiAiICIgIiVbdmFyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNv
ZGUgIiAiZSIgIiovXG4iIDogW3Zhcl0gIittIiAodi0+Y291bnRlciksICI9QGNjIiAiZSIgKGMp
IDogOiAibWVtb3J5Iik7IGM7IH0pOwp9CiMgMTM3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0
b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wgYXJjaF9hdG9t
aWNfaW5jX2FuZF90ZXN0KGF0b21pY190ICp2KQp7CiByZXR1cm4gKHsgYm9vbCBjOyBhc20gdm9s
YXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIu
bG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiaW5j
bCIgIiAiICIlW3Zhcl0iICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgImUiICIqL1xu
IiA6IFt2YXJdICIrbSIgKHYtPmNvdW50ZXIpLCAiPUBjYyIgImUiIChjKSA6IDogIm1lbW9yeSIp
OyBjOyB9KTsKfQojIDE1MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sIGFyY2hfYXRvbWljX2FkZF9uZWdhdGl2
ZShpbnQgaSwgYXRvbWljX3QgKnYpCnsKIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJhZGRsIiAiICVb
dmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJzIiAiKi9c
biIgOiBbdmFyXSAiK20iICh2LT5jb3VudGVyKSwgIj1AY2MiICJzIiAoYykgOiBbdmFsXSAiZXIi
IChpKSA6ICJtZW1vcnkiKTsgYzsgfSk7Cn0KIyAxNjUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
YXRvbWljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGFyY2hfYXRv
bWljX2FkZF9yZXR1cm4oaW50IGksIGF0b21pY190ICp2KQp7CiByZXR1cm4gaSArICh7IF9fdHlw
ZW9mX18gKCooKCgmdi0+Y291bnRlcikpKSkgX19yZXQgPSAoKChpKSkpOyBzd2l0Y2ggKHNpemVv
ZigqKCgoJnYtPmNvdW50ZXIpKSkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0
aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIg
Ii5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJiICViMCwgJTFcbiIg
OiAiK3EiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAi
Y2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9j
a3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9u
XG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJ3ICV3MCwgJTFcbiIgOiAiK3IiIChfX3Jl
dCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7
IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIg
Ii5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAi
XG5cdGxvY2s7ICIgInhhZGQiICJsICUwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigo
KCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA4OiBhc20g
dm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4i
ICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAi
eGFkZCIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVy
KSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgZGVmYXVsdDogX194YWRkX3dyb25nX3Np
emUoKTsgfSBfX3JldDsgfSk7Cn0KIyAxNzcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWlj
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGFyY2hfYXRvbWljX3N1
Yl9yZXR1cm4oaW50IGksIGF0b21pY190ICp2KQp7CiByZXR1cm4gYXJjaF9hdG9taWNfYWRkX3Jl
dHVybigtaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGFy
Y2hfYXRvbWljX2ZldGNoX2FkZChpbnQgaSwgYXRvbWljX3QgKnYpCnsKIHJldHVybiAoeyBfX3R5
cGVvZl9fICgqKCgoJnYtPmNvdW50ZXIpKSkpIF9fcmV0ID0gKCgoaSkpKTsgc3dpdGNoIChzaXpl
b2YoKigoKCZ2LT5jb3VudGVyKSkpKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2Vj
dGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4i
ICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAiYiAlYjAsICUxXG4i
IDogIitxIiAoX19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5Iiwg
ImNjIik7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xv
Y2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlv
blxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAidyAldzAsICUxXG4iIDogIityIiAoX19y
ZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFr
OyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4i
ICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIg
IlxuXHRsb2NrOyAiICJ4YWRkIiAibCAlMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCoo
KCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNt
IHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxu
IiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIg
InhhZGQiICJxICVxMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRl
cikpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGRlZmF1bHQ6IF9feGFkZF93cm9uZ19z
aXplKCk7IH0gX19yZXQ7IH0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IGludCBhcmNoX2F0b21pY19mZXRjaF9zdWIoaW50IGksIGF0b21pY190ICp2KQp7CiByZXR1cm4g
KHsgX190eXBlb2ZfXyAoKigoKCZ2LT5jb3VudGVyKSkpKSBfX3JldCA9ICgoKC1pKSkpOyBzd2l0
Y2ggKHNpemVvZigqKCgoJnYtPmNvdW50ZXIpKSkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgi
LnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcx
ZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJiICVi
MCwgJTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJt
ZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9u
IC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5w
b3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJ3ICV3MCwgJTFcbiIgOiAi
K3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2Mi
KTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3Ms
XCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4i
ICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJsICUwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwg
IittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2Fz
ZSA4OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJh
bGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0
bG9jazsgIiAieGFkZCIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2
LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgZGVmYXVsdDogX194YWRk
X3dyb25nX3NpemUoKTsgfSBfX3JldDsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgaW50IGFyY2hfYXRvbWljX2NtcHhjaGcoYXRvbWljX3QgKnYsIGludCBvbGQsIGlu
dCBuZXcpCnsKIHJldHVybiAoeyBfX3R5cGVvZl9fKCooKCZ2LT5jb3VudGVyKSkpIF9fcmV0OyBf
X3R5cGVvZl9fKCooKCZ2LT5jb3VudGVyKSkpIF9fb2xkID0gKChvbGQpKTsgX190eXBlb2ZfXygq
KCgmdi0+Y291bnRlcikpKSBfX25ldyA9ICgobmV3KSk7IHN3aXRjaCAoKHNpemVvZigqKCZ2LT5j
b3VudGVyKSkpKSB7IGNhc2UgMTogeyB2b2xhdGlsZSB1OCAqX19wdHIgPSAodm9sYXRpbGUgdTgg
KikoKCZ2LT5jb3VudGVyKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3Ms
XCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4i
ICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdiICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwgIitt
IiAoKl9fcHRyKSA6ICJxIiAoX19uZXcpLCAiMCIgKF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJlYWs7
IH0gY2FzZSAyOiB7IHZvbGF0aWxlIHUxNiAqX19wdHIgPSAodm9sYXRpbGUgdTE2ICopKCgmdi0+
Y291bnRlcikpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4i
ICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIg
IlxuXHRsb2NrOyAiICJjbXB4Y2hndyAlMiwlMSIgOiAiPWEiIChfX3JldCksICIrbSIgKCpfX3B0
cikgOiAiciIgKF9fbmV3KSwgIjAiIChfX29sZCkgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNhc2Ug
NDogeyB2b2xhdGlsZSB1MzIgKl9fcHRyID0gKHZvbGF0aWxlIHUzMiAqKSgoJnYtPmNvdW50ZXIp
KTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAiY21weGNoZ2wgJTIsJTEiIDogIj1hIiAoX19yZXQpLCAiK20iICgqX19wdHIpIDogInIi
IChfX25ldyksICIwIiAoX19vbGQpIDogIm1lbW9yeSIpOyBicmVhazsgfSBjYXNlIDg6IHsgdm9s
YXRpbGUgdTY0ICpfX3B0ciA9ICh2b2xhdGlsZSB1NjQgKikoKCZ2LT5jb3VudGVyKSk7IGFzbSB2
b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAi
LmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNt
cHhjaGdxICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwgIittIiAoKl9fcHRyKSA6ICJyIiAoX19uZXcp
LCAiMCIgKF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gZGVmYXVsdDogX19jbXB4Y2hnX3dy
b25nX3NpemUoKTsgfSBfX3JldDsgfSk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIGJvb2wgYXJjaF9hdG9taWNfdHJ5X2NtcHhjaGcoYXRvbWljX3QgKnYsIGludCAqb2xk
LCBpbnQgbmV3KQp7CiByZXR1cm4gKHsgYm9vbCBzdWNjZXNzOyBfX3R5cGVvZl9fKCgoJnYtPmNv
dW50ZXIpKSkgX29sZCA9IChfX3R5cGVvZl9fKCgoJnYtPmNvdW50ZXIpKSkpKCgob2xkKSkpOyBf
X3R5cGVvZl9fKCooKCgmdi0+Y291bnRlcikpKSkgX19vbGQgPSAqX29sZDsgX190eXBlb2ZfXygq
KCgoJnYtPmNvdW50ZXIpKSkpIF9fbmV3ID0gKCgobmV3KSkpOyBzd2l0Y2ggKChzaXplb2YoKigm
di0+Y291bnRlcikpKSkgeyBjYXNlIDE6IHsgdm9sYXRpbGUgdTggKl9fcHRyID0gKHZvbGF0aWxl
IHU4ICopKCgoJnYtPmNvdW50ZXIpKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBf
bG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0
aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdiICVbbmV3XSwgJVtwdHJdIiAiXG5c
dC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJ6IiAiKi9cbiIgOiAiPUBjYyIgInoiIChzdWNj
ZXNzKSwgW3B0cl0gIittIiAoKl9fcHRyKSwgW29sZF0gIithIiAoX19vbGQpIDogW25ld10gInEi
IChfX25ldykgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNhc2UgMjogeyB2b2xhdGlsZSB1MTYgKl9f
cHRyID0gKHZvbGF0aWxlIHUxNiAqKSgoKCZ2LT5jb3VudGVyKSkpOyBhc20gdm9sYXRpbGUoIi5w
dXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYg
LSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hndyAlW25l
d10sICVbcHRyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAieiIgIiovXG4iIDog
Ij1AY2MiICJ6IiAoc3VjY2VzcyksIFtwdHJdICIrbSIgKCpfX3B0ciksIFtvbGRdICIrYSIgKF9f
b2xkKSA6IFtuZXddICJyIiAoX19uZXcpIDogIm1lbW9yeSIpOyBicmVhazsgfSBjYXNlIDQ6IHsg
dm9sYXRpbGUgdTMyICpfX3B0ciA9ICh2b2xhdGlsZSB1MzIgKikoKCgmdi0+Y291bnRlcikpKTsg
YXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0
XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsg
IiAiY21weGNoZ2wgJVtuZXddLCAlW3B0cl0iICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2Rl
ICIgInoiICIqL1xuIiA6ICI9QGNjIiAieiIgKHN1Y2Nlc3MpLCBbcHRyXSAiK20iICgqX19wdHIp
LCBbb2xkXSAiK2EiIChfX29sZCkgOiBbbmV3XSAiciIgKF9fbmV3KSA6ICJtZW1vcnkiKTsgYnJl
YWs7IH0gY2FzZSA4OiB7IHZvbGF0aWxlIHU2NCAqX19wdHIgPSAodm9sYXRpbGUgdTY0ICopKCgo
JnYtPmNvdW50ZXIpKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJh
XCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2
NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdxICVbbmV3XSwgJVtwdHJdIiAiXG5cdC8qIG91dHB1
dCBjb25kaXRpb24gY29kZSAiICJ6IiAiKi9cbiIgOiAiPUBjYyIgInoiIChzdWNjZXNzKSwgW3B0
cl0gIittIiAoKl9fcHRyKSwgW29sZF0gIithIiAoX19vbGQpIDogW25ld10gInIiIChfX25ldykg
OiAibWVtb3J5Iik7IGJyZWFrOyB9IGRlZmF1bHQ6IF9fY21weGNoZ193cm9uZ19zaXplKCk7IH0g
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoIXN1Y2Nlc3MpLCAwKSkgKl9vbGQgPSBfX29sZDsgX19i
dWlsdGluX2V4cGVjdCghIShzdWNjZXNzKSwgMSk7IH0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgYXJjaF9hdG9taWNfeGNo
ZyhhdG9taWNfdCAqdiwgaW50IG5ldykKewogcmV0dXJuICh7IF9fdHlwZW9mX18gKCooKCZ2LT5j
b3VudGVyKSkpIF9fcmV0ID0gKChuZXcpKTsgc3dpdGNoIChzaXplb2YoKigoJnYtPmNvdW50ZXIp
KSkpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAiYiAlYjAsICUxXG4iIDogIitx
IiAoX19yZXQpLCAiK20iICgqKCgmdi0+Y291bnRlcikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBi
cmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAidyAldzAsICUxXG4iIDogIity
IiAoX19yZXQpLCAiK20iICgqKCgmdi0+Y291bnRlcikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBi
cmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAibCAlMCwgJTFcbiIgOiAiK3Ii
IChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJy
ZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGciICJxICVxMCwgJTFcbiIgOiAiK3Ii
IChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJy
ZWFrOyBkZWZhdWx0OiBfX3hjaGdfd3Jvbmdfc2l6ZSgpOyB9IF9fcmV0OyB9KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBh
cmNoX2F0b21pY19hbmQoaW50IGksIGF0b21pY190ICp2KQp7CiBhc20gdm9sYXRpbGUoIi5wdXNo
c2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAu
XG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJhbmRsICUxLCUwIgogICA6
ICIrbSIgKHYtPmNvdW50ZXIpCiAgIDogImlyIiAoaSkKICAgOiAibWVtb3J5Iik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBh
cmNoX2F0b21pY19mZXRjaF9hbmQoaW50IGksIGF0b21pY190ICp2KQp7CiBpbnQgdmFsID0gYXJj
aF9hdG9taWNfcmVhZCh2KTsKCiBkbyB7IH0gd2hpbGUgKCFhcmNoX2F0b21pY190cnlfY21weGNo
Zyh2LCAmdmFsLCB2YWwgJiBpKSk7CgogcmV0dXJuIHZhbDsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX2F0b21pY19v
cihpbnQgaSwgYXRvbWljX3QgKnYpCnsKIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBf
bG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0
aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgIm9ybCAlMSwlMCIKICAgOiAiK20iICh2LT5jb3Vu
dGVyKQogICA6ICJpciIgKGkpCiAgIDogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgYXJjaF9hdG9taWNfZmV0
Y2hfb3IoaW50IGksIGF0b21pY190ICp2KQp7CiBpbnQgdmFsID0gYXJjaF9hdG9taWNfcmVhZCh2
KTsKCiBkbyB7IH0gd2hpbGUgKCFhcmNoX2F0b21pY190cnlfY21weGNoZyh2LCAmdmFsLCB2YWwg
fCBpKSk7CgogcmV0dXJuIHZhbDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX2F0b21pY194b3IoaW50IGksIGF0b21p
Y190ICp2KQp7CiBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4i
ICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIg
IlxuXHRsb2NrOyAiICJ4b3JsICUxLCUwIgogICA6ICIrbSIgKHYtPmNvdW50ZXIpCiAgIDogImly
IiAoaSkKICAgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBhcmNoX2F0b21pY19mZXRjaF94b3IoaW50IGks
IGF0b21pY190ICp2KQp7CiBpbnQgdmFsID0gYXJjaF9hdG9taWNfcmVhZCh2KTsKCiBkbyB7IH0g
d2hpbGUgKCFhcmNoX2F0b21pY190cnlfY21weGNoZyh2LCAmdmFsLCB2YWwgXiBpKSk7CgogcmV0
dXJuIHZhbDsKfQoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0Lmgi
IDEKIyAyMCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgYXJjaF9h
dG9taWM2NF9yZWFkKGNvbnN0IGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiAoeyB1bmlvbiB7IHR5
cGVvZigodiktPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3Jl
YWRfb25jZV9zaXplKCYoKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKCh2KS0+Y291bnRl
cikpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCh2KS0+Y291bnRlciksIF9fdS5f
X2MsIHNpemVvZigodiktPmNvdW50ZXIpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9
KTsKfQojIDMyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXJj
aF9hdG9taWM2NF9zZXQoYXRvbWljNjRfdCAqdiwgczY0IGkpCnsKICh7IHVuaW9uIHsgdHlwZW9m
KHYtPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlw
ZW9mKHYtPmNvdW50ZXIpKSAoaSkgfTsgX193cml0ZV9vbmNlX3NpemUoJih2LT5jb3VudGVyKSwg
X191Ll9fYywgc2l6ZW9mKHYtPmNvdW50ZXIpKTsgX191Ll9fdmFsOyB9KTsKfQojIDQ0ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgdm9pZCBhcmNoX2F0b21pYzY0X2FkZChzNjQgaSwgYXRvbWljNjRfdCAqdikK
ewogYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAiYWRkcSAlMSwlMCIKICAgICAgIDogIj1tIiAodi0+Y291bnRlcikKICAgICAgIDogImVy
IiAoaSksICJtIiAodi0+Y291bnRlcikgOiAibWVtb3J5Iik7Cn0KIyA1OCAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hfYXRvbWljNjRfc3ViKHM2NCBpLCBh
dG9taWM2NF90ICp2KQp7CiBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwi
YVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAi
NjcxOiIgIlxuXHRsb2NrOyAiICJzdWJxICUxLCUwIgogICAgICAgOiAiPW0iICh2LT5jb3VudGVy
KQogICAgICAgOiAiZXIiIChpKSwgIm0iICh2LT5jb3VudGVyKSA6ICJtZW1vcnkiKTsKfQojIDc0
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYXJjaF9hdG9taWM2
NF9zdWJfYW5kX3Rlc3QoczY0IGksIGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiAoeyBib29sIGM7
IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWdu
IDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2Nr
OyAiICJzdWJxIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24g
Y29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20iICh2LT5jb3VudGVyKSwgIj1AY2MiICJlIiAo
YykgOiBbdmFsXSAiZXIiIChpKSA6ICJtZW1vcnkiKTsgYzsgfSk7Cn0KIyA4NiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQgYXJjaF9hdG9taWM2NF9pbmMoYXRvbWljNjRfdCAqdikKewogYXNtIHZvbGF0
aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9u
ZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiaW5jcSAl
MCIKICAgICAgIDogIj1tIiAodi0+Y291bnRlcikKICAgICAgIDogIm0iICh2LT5jb3VudGVyKSA6
ICJtZW1vcnkiKTsKfQojIDEwMCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYXJjaF9hdG9taWM2NF9k
ZWMoYXRvbWljNjRfdCAqdikKewogYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2Nr
cyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25c
biIgIjY3MToiICJcblx0bG9jazsgIiAiZGVjcSAlMCIKICAgICAgIDogIj1tIiAodi0+Y291bnRl
cikKICAgICAgIDogIm0iICh2LT5jb3VudGVyKSA6ICJtZW1vcnkiKTsKfQojIDExNiAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGFyY2hfYXRvbWljNjRfZGVjX2Fu
ZF90ZXN0KGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJkZWNxIiAiICIg
IiVbdmFyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAiZSIgIiovXG4iIDogW3Zh
cl0gIittIiAodi0+Y291bnRlciksICI9QGNjIiAiZSIgKGMpIDogOiAibWVtb3J5Iik7IGM7IH0p
Owp9CiMgMTMwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYXJj
aF9hdG9taWM2NF9pbmNfYW5kX3Rlc3QoYXRvbWljNjRfdCAqdikKewogcmV0dXJuICh7IGJvb2wg
YzsgYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxp
Z24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxv
Y2s7ICIgImluY3EiICIgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAi
ICJlIiAiKi9cbiIgOiBbdmFyXSAiK20iICh2LT5jb3VudGVyKSwgIj1AY2MiICJlIiAoYykgOiA6
ICJtZW1vcnkiKTsgYzsgfSk7Cn0KIyAxNDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWlj
NjRfNjQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBhcmNoX2F0b21pYzY0X2FkZF9uZWdhdGl2ZShzNjQgaSwgYXRvbWljNjRf
dCAqdikKewogcmV0dXJuICh7IGJvb2wgYzsgYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5z
bXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3Bz
ZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImFkZHEiICIgJVt2YWxdLCAiICIlW3Zhcl0i
ICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgInMiICIqL1xuIiA6IFt2YXJdICIrbSIg
KHYtPmNvdW50ZXIpLCAiPUBjYyIgInMiIChjKSA6IFt2YWxdICJlciIgKGkpIDogIm1lbW9yeSIp
OyBjOyB9KTsKfQojIDE1OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHM2NCBhcmNoX2F0b21pYzY0X2FkZF9y
ZXR1cm4oczY0IGksIGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiBpICsgKHsgX190eXBlb2ZfXyAo
KigoKCZ2LT5jb3VudGVyKSkpKSBfX3JldCA9ICgoKGkpKSk7IHN3aXRjaCAoc2l6ZW9mKCooKCgm
di0+Y291bnRlcikpKSkpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNt
cF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNl
Y3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFkZCIgImIgJWIwLCAlMVxuIiA6ICIrcSIg
KF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBi
cmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFc
IlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3
MToiICJcblx0bG9jazsgIiAieGFkZCIgIncgJXcwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIitt
IiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA0
OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAieGFkZCIgImwgJTAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKCgoJnYtPmNv
dW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGls
ZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25n
IDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAi
cSAlcTAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDog
OiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0OiBfX3hhZGRfd3Jvbmdfc2l6ZSgpOyB9
IF9fcmV0OyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgczY0IGFyY2hfYXRvbWljNjRfc3ViX3JldHVybihzNjQgaSwgYXRvbWlj
NjRfdCAqdikKewogcmV0dXJuIGFyY2hfYXRvbWljNjRfYWRkX3JldHVybigtaSwgdik7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2
NCBhcmNoX2F0b21pYzY0X2ZldGNoX2FkZChzNjQgaSwgYXRvbWljNjRfdCAqdikKewogcmV0dXJu
ICh7IF9fdHlwZW9mX18gKCooKCgmdi0+Y291bnRlcikpKSkgX19yZXQgPSAoKChpKSkpOyBzd2l0
Y2ggKHNpemVvZigqKCgoJnYtPmNvdW50ZXIpKSkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgi
LnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcx
ZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJiICVi
MCwgJTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJt
ZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9u
IC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5w
b3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJ3ICV3MCwgJTFcbiIgOiAi
K3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2Mi
KTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3Ms
XCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4i
ICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJsICUwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwg
IittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2Fz
ZSA4OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJh
bGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0
bG9jazsgIiAieGFkZCIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2
LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgZGVmYXVsdDogX194YWRk
X3dyb25nX3NpemUoKTsgfSBfX3JldDsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBhcmNoX2F0b21pYzY0X2ZldGNoX3N1
YihzNjQgaSwgYXRvbWljNjRfdCAqdikKewogcmV0dXJuICh7IF9fdHlwZW9mX18gKCooKCgmdi0+
Y291bnRlcikpKSkgX19yZXQgPSAoKCgtaSkpKTsgc3dpdGNoIChzaXplb2YoKigoKCZ2LT5jb3Vu
dGVyKSkpKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tz
LFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxu
IiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQp
LCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBj
YXNlIDI6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJ4YWRkIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKCgo
JnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2
b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIg
Ii5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4
YWRkIiAibCAlMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikp
KSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgiLnB1
c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAt
IC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJxICVxMCwg
JTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1v
cnkiLCAiY2MiKTsgYnJlYWs7IGRlZmF1bHQ6IF9feGFkZF93cm9uZ19zaXplKCk7IH0gX19yZXQ7
IH0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBzNjQgYXJjaF9hdG9taWM2NF9jbXB4Y2hnKGF0b21pYzY0X3QgKnYsIHM2NCBvbGQs
IHM2NCBuZXcpCnsKIHJldHVybiAoeyBfX3R5cGVvZl9fKCooKCZ2LT5jb3VudGVyKSkpIF9fcmV0
OyBfX3R5cGVvZl9fKCooKCZ2LT5jb3VudGVyKSkpIF9fb2xkID0gKChvbGQpKTsgX190eXBlb2Zf
XygqKCgmdi0+Y291bnRlcikpKSBfX25ldyA9ICgobmV3KSk7IHN3aXRjaCAoKHNpemVvZigqKCZ2
LT5jb3VudGVyKSkpKSB7IGNhc2UgMTogeyB2b2xhdGlsZSB1OCAqX19wdHIgPSAodm9sYXRpbGUg
dTggKikoKCZ2LT5jb3VudGVyKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9j
a3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9u
XG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdiICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwg
IittIiAoKl9fcHRyKSA6ICJxIiAoX19uZXcpLCAiMCIgKF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJl
YWs7IH0gY2FzZSAyOiB7IHZvbGF0aWxlIHUxNiAqX19wdHIgPSAodm9sYXRpbGUgdTE2ICopKCgm
di0+Y291bnRlcikpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwi
XG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcx
OiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hndyAlMiwlMSIgOiAiPWEiIChfX3JldCksICIrbSIgKCpf
X3B0cikgOiAiciIgKF9fbmV3KSwgIjAiIChfX29sZCkgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNh
c2UgNDogeyB2b2xhdGlsZSB1MzIgKl9fcHRyID0gKHZvbGF0aWxlIHUzMiAqKSgoJnYtPmNvdW50
ZXIpKTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJh
bGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0
bG9jazsgIiAiY21weGNoZ2wgJTIsJTEiIDogIj1hIiAoX19yZXQpLCAiK20iICgqX19wdHIpIDog
InIiIChfX25ldyksICIwIiAoX19vbGQpIDogIm1lbW9yeSIpOyBicmVhazsgfSBjYXNlIDg6IHsg
dm9sYXRpbGUgdTY0ICpfX3B0ciA9ICh2b2xhdGlsZSB1NjQgKikoKCZ2LT5jb3VudGVyKSk7IGFz
bSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxu
IiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIg
ImNtcHhjaGdxICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwgIittIiAoKl9fcHRyKSA6ICJyIiAoX19u
ZXcpLCAiMCIgKF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gZGVmYXVsdDogX19jbXB4Y2hn
X3dyb25nX3NpemUoKTsgfSBfX3JldDsgfSk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIGJvb2wgYXJjaF9hdG9taWM2NF90cnlfY21weGNoZyhhdG9taWM2NF90ICp2LCBz
NjQgKm9sZCwgczY0IG5ldykKewogcmV0dXJuICh7IGJvb2wgc3VjY2VzczsgX190eXBlb2ZfXygo
KCZ2LT5jb3VudGVyKSkpIF9vbGQgPSAoX190eXBlb2ZfXygoKCZ2LT5jb3VudGVyKSkpKSgoKG9s
ZCkpKTsgX190eXBlb2ZfXygqKCgoJnYtPmNvdW50ZXIpKSkpIF9fb2xkID0gKl9vbGQ7IF9fdHlw
ZW9mX18oKigoKCZ2LT5jb3VudGVyKSkpKSBfX25ldyA9ICgoKG5ldykpKTsgc3dpdGNoICgoc2l6
ZW9mKCooJnYtPmNvdW50ZXIpKSkpIHsgY2FzZSAxOiB7IHZvbGF0aWxlIHU4ICpfX3B0ciA9ICh2
b2xhdGlsZSB1OCAqKSgoKCZ2LT5jb3VudGVyKSkpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlv
biAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIu
cG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hnYiAlW25ld10sICVbcHRy
XSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAieiIgIiovXG4iIDogIj1AY2MiICJ6
IiAoc3VjY2VzcyksIFtwdHJdICIrbSIgKCpfX3B0ciksIFtvbGRdICIrYSIgKF9fb2xkKSA6IFtu
ZXddICJxIiAoX19uZXcpIDogIm1lbW9yeSIpOyBicmVhazsgfSBjYXNlIDI6IHsgdm9sYXRpbGUg
dTE2ICpfX3B0ciA9ICh2b2xhdGlsZSB1MTYgKikoKCgmdi0+Y291bnRlcikpKTsgYXNtIHZvbGF0
aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9u
ZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiY21weGNo
Z3cgJVtuZXddLCAlW3B0cl0iICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgInoiICIq
L1xuIiA6ICI9QGNjIiAieiIgKHN1Y2Nlc3MpLCBbcHRyXSAiK20iICgqX19wdHIpLCBbb2xkXSAi
K2EiIChfX29sZCkgOiBbbmV3XSAiciIgKF9fbmV3KSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gY2Fz
ZSA0OiB7IHZvbGF0aWxlIHUzMiAqX19wdHIgPSAodm9sYXRpbGUgdTMyICopKCgoJnYtPmNvdW50
ZXIpKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5i
YWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5c
dGxvY2s7ICIgImNtcHhjaGdsICVbbmV3XSwgJVtwdHJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRp
b24gY29kZSAiICJ6IiAiKi9cbiIgOiAiPUBjYyIgInoiIChzdWNjZXNzKSwgW3B0cl0gIittIiAo
Kl9fcHRyKSwgW29sZF0gIithIiAoX19vbGQpIDogW25ld10gInIiIChfX25ldykgOiAibWVtb3J5
Iik7IGJyZWFrOyB9IGNhc2UgODogeyB2b2xhdGlsZSB1NjQgKl9fcHRyID0gKHZvbGF0aWxlIHU2
NCAqKSgoKCZ2LT5jb3VudGVyKSkpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xv
Y2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlv
blxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hncSAlW25ld10sICVbcHRyXSIgIlxuXHQv
KiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAieiIgIiovXG4iIDogIj1AY2MiICJ6IiAoc3VjY2Vz
cyksIFtwdHJdICIrbSIgKCpfX3B0ciksIFtvbGRdICIrYSIgKF9fb2xkKSA6IFtuZXddICJyIiAo
X19uZXcpIDogIm1lbW9yeSIpOyBicmVhazsgfSBkZWZhdWx0OiBfX2NtcHhjaGdfd3Jvbmdfc2l6
ZSgpOyB9IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFzdWNjZXNzKSwgMCkpICpfb2xkID0gX19v
bGQ7IF9fYnVpbHRpbl9leHBlY3QoISEoc3VjY2VzcyksIDEpOyB9KTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGFyY2hfYXRv
bWljNjRfeGNoZyhhdG9taWM2NF90ICp2LCBzNjQgbmV3KQp7CiByZXR1cm4gKHsgX190eXBlb2Zf
XyAoKigoJnYtPmNvdW50ZXIpKSkgX19yZXQgPSAoKG5ldykpOyBzd2l0Y2ggKHNpemVvZigqKCgm
di0+Y291bnRlcikpKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGciICJiICViMCwg
JTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5
IiwgImNjIik7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGciICJ3ICV3MCwg
JTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5
IiwgImNjIik7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGciICJsICUwLCAl
MVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoJnYtPmNvdW50ZXIpKSkgOiA6ICJtZW1vcnki
LCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgiIiAieGNoZyIgInEgJXEwLCAl
MVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoJnYtPmNvdW50ZXIpKSkgOiA6ICJtZW1vcnki
LCAiY2MiKTsgYnJlYWs7IGRlZmF1bHQ6IF9feGNoZ193cm9uZ19zaXplKCk7IH0gX19yZXQ7IH0p
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGFyY2hfYXRvbWljNjRfYW5kKHM2NCBpLCBhdG9taWM2NF90ICp2KQp7CiBhc20g
dm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIg
Ii5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJh
bmRxICUxLCUwIgogICA6ICIrbSIgKHYtPmNvdW50ZXIpCiAgIDogImVyIiAoaSkKICAgOiAibWVt
b3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NCBhcmNoX2F0b21pYzY0X2ZldGNoX2FuZChzNjQgaSwgYXRvbWljNjRfdCAq
dikKewogczY0IHZhbCA9IGFyY2hfYXRvbWljNjRfcmVhZCh2KTsKCiBkbyB7CiB9IHdoaWxlICgh
YXJjaF9hdG9taWM2NF90cnlfY21weGNoZyh2LCAmdmFsLCB2YWwgJiBpKSk7CiByZXR1cm4gdmFs
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGFyY2hfYXRvbWljNjRfb3IoczY0IGksIGF0b21pYzY0X3QgKnYpCnsKIGFzbSB2
b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAi
LmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgIm9y
cSAlMSwlMCIKICAgOiAiK20iICh2LT5jb3VudGVyKQogICA6ICJlciIgKGkpCiAgIDogIm1lbW9y
eSIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBzNjQgYXJjaF9hdG9taWM2NF9mZXRjaF9vcihzNjQgaSwgYXRvbWljNjRfdCAqdikK
ewogczY0IHZhbCA9IGFyY2hfYXRvbWljNjRfcmVhZCh2KTsKCiBkbyB7CiB9IHdoaWxlICghYXJj
aF9hdG9taWM2NF90cnlfY21weGNoZyh2LCAmdmFsLCB2YWwgfCBpKSk7CiByZXR1cm4gdmFsOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGFyY2hfYXRvbWljNjRfeG9yKHM2NCBpLCBhdG9taWM2NF90ICp2KQp7CiBhc20gdm9s
YXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5s
b25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4b3Jx
ICUxLCUwIgogICA6ICIrbSIgKHYtPmNvdW50ZXIpCiAgIDogImVyIiAoaSkKICAgOiAibWVtb3J5
Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHM2NCBhcmNoX2F0b21pYzY0X2ZldGNoX3hvcihzNjQgaSwgYXRvbWljNjRfdCAqdikK
ewogczY0IHZhbCA9IGFyY2hfYXRvbWljNjRfcmVhZCh2KTsKCiBkbyB7CiB9IHdoaWxlICghYXJj
aF9hdG9taWM2NF90cnlfY21weGNoZyh2LCAmdmFsLCB2YWwgXiBpKSk7CiByZXR1cm4gdmFsOwp9
CiMgMjYzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIiAyCgoKIyAxICIuL2luY2x1
ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIiAxCiMgMjAgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2J1
aWxkX2J1Zy5oIiAxCiMgMjEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVu
dGVkLmgiIDIKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQKYXRvbWljX3JlYWQoY29uc3QgYXRvbWljX3QgKnYpCnsKIGthc2FuX2No
ZWNrX3JlYWQodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4gYXJjaF9hdG9taWNfcmVhZCh2KTsKfQoj
IDQxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0
b21pY19zZXQoYXRvbWljX3QgKnYsIGludCBpKQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXpl
b2YoKnYpKTsKIGFyY2hfYXRvbWljX3NldCh2LCBpKTsKfQojIDU5ICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pY19hZGQoaW50IGksIGF0b21p
Y190ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIGFyY2hfYXRvbWlj
X2FkZChpLCB2KTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2FkZF9yZXR1cm4oaW50IGksIGF0b21pY190ICp2
KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21p
Y19hZGRfcmV0dXJuKGksIHYpOwp9CiMgMTA4ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWlj
LWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2ZldGNoX2FkZChpbnQgaSwgYXRvbWljX3QgKnYp
CnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFyY2hfYXRvbWlj
X2ZldGNoX2FkZChpLCB2KTsKfQojIDE0NyAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1p
bnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWNfc3ViKGludCBpLCBhdG9taWNfdCAqdikKewoga2Fz
YW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiBhcmNoX2F0b21pY19zdWIoaSwgdik7Cn0K
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50CmF0b21pY19zdWJfcmV0dXJuKGludCBpLCBhdG9taWNfdCAqdikKewoga2FzYW5fY2hl
Y2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4gYXJjaF9hdG9taWNfc3ViX3JldHVybihp
LCB2KTsKfQojIDE5NiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50CmF0b21pY19mZXRjaF9zdWIoaW50IGksIGF0b21pY190ICp2KQp7CiBrYXNhbl9jaGVj
a193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21pY19mZXRjaF9zdWIoaSwg
dik7Cn0KIyAyMzYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQKYXRvbWljX2luYyhhdG9taWNfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6
ZW9mKCp2KSk7CiBhcmNoX2F0b21pY19pbmModik7Cn0KIyAzMjYgIi4vaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKYXRvbWljX2RlYyhhdG9taWNfdCAqdikK
ewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiBhcmNoX2F0b21pY19kZWModik7
Cn0KIyA0MTUgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQKYXRvbWljX2FuZChpbnQgaSwgYXRvbWljX3QgKnYpCnsKIGthc2FuX2NoZWNrX3dyaXRlKHYs
IHNpemVvZigqdikpOwogYXJjaF9hdG9taWNfYW5kKGksIHYpOwp9CgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAphdG9taWNfZmV0
Y2hfYW5kKGludCBpLCBhdG9taWNfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9m
KCp2KSk7CiByZXR1cm4gYXJjaF9hdG9taWNfZmV0Y2hfYW5kKGksIHYpOwp9CiMgNTEzICIuL2lu
Y2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pY19vcihp
bnQgaSwgYXRvbWljX3QgKnYpCnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwog
YXJjaF9hdG9taWNfb3IoaSwgdik7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9vcihpbnQgaSwgYXRv
bWljX3QgKnYpCnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFy
Y2hfYXRvbWljX2ZldGNoX29yKGksIHYpOwp9CiMgNTYxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMv
YXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pY194b3IoaW50IGksIGF0b21pY190ICp2
KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIGFyY2hfYXRvbWljX3hvcihp
LCB2KTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQKYXRvbWljX2ZldGNoX3hvcihpbnQgaSwgYXRvbWljX3QgKnYpCnsKIGth
c2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFyY2hfYXRvbWljX2ZldGNo
X3hvcihpLCB2KTsKfQojIDYxMCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVt
ZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50CmF0b21pY194Y2hnKGF0b21pY190ICp2LCBpbnQgaSkKewoga2FzYW5fY2hl
Y2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4gYXJjaF9hdG9taWNfeGNoZyh2LCBpKTsK
fQojIDY1MCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50
CmF0b21pY19jbXB4Y2hnKGF0b21pY190ICp2LCBpbnQgb2xkLCBpbnQgbmV3KQp7CiBrYXNhbl9j
aGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21pY19jbXB4Y2hnKHYs
IG9sZCwgbmV3KTsKfQojIDY5MCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVt
ZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbAphdG9taWNfdHJ5X2NtcHhjaGcoYXRvbWljX3QgKnYsIGludCAqb2xkLCBp
bnQgbmV3KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIGthc2FuX2NoZWNr
X3dyaXRlKG9sZCwgc2l6ZW9mKCpvbGQpKTsKIHJldHVybiBhcmNoX2F0b21pY190cnlfY21weGNo
Zyh2LCBvbGQsIG5ldyk7Cn0KIyA3MzQgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5z
dHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wKYXRvbWljX3N1Yl9hbmRfdGVzdChpbnQgaSwgYXRvbWljX3QgKnYp
CnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFyY2hfYXRvbWlj
X3N1Yl9hbmRfdGVzdChpLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAphdG9taWNfZGVjX2FuZF90ZXN0KGF0b21p
Y190ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNo
X2F0b21pY19kZWNfYW5kX3Rlc3Qodik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljX2luY19hbmRfdGVzdChh
dG9taWNfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4g
YXJjaF9hdG9taWNfaW5jX2FuZF90ZXN0KHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pY19hZGRfbmVnYXRp
dmUoaW50IGksIGF0b21pY190ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYp
KTsKIHJldHVybiBhcmNoX2F0b21pY19hZGRfbmVnYXRpdmUoaSwgdik7Cn0KIyA4MzMgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAphdG9taWM2NF9yZWFk
KGNvbnN0IGF0b21pYzY0X3QgKnYpCnsKIGthc2FuX2NoZWNrX3JlYWQodiwgc2l6ZW9mKCp2KSk7
CiByZXR1cm4gYXJjaF9hdG9taWM2NF9yZWFkKHYpOwp9CiMgODUxICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pYzY0X3NldChhdG9taWM2NF90
ICp2LCBzNjQgaSkKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiBhcmNoX2F0
b21pYzY0X3NldCh2LCBpKTsKfQojIDg2OSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1p
bnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWM2NF9hZGQoczY0IGksIGF0b21pYzY0X3QgKnYpCnsK
IGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogYXJjaF9hdG9taWM2NF9hZGQoaSwg
dik7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgczY0CmF0b21pYzY0X2FkZF9yZXR1cm4oczY0IGksIGF0b21pYzY0X3QgKnYpCnsK
IGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFyY2hfYXRvbWljNjRf
YWRkX3JldHVybihpLCB2KTsKfQojIDkxOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1p
bnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX2FkZChzNjQgaSwgYXRvbWljNjRfdCAq
dikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4gYXJjaF9hdG9t
aWM2NF9mZXRjaF9hZGQoaSwgdik7Cn0KIyA5NTcgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9t
aWMtaW5zdHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKYXRvbWljNjRfc3ViKHM2NCBpLCBhdG9taWM2NF90ICp2
KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIGFyY2hfYXRvbWljNjRfc3Vi
KGksIHYpOwp9CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHM2NAphdG9taWM2NF9zdWJfcmV0dXJuKHM2NCBpLCBhdG9taWM2NF90ICp2
KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21p
YzY0X3N1Yl9yZXR1cm4oaSwgdik7Cn0KIyAxMDA2ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRv
bWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKYXRvbWljNjRfZmV0Y2hfc3ViKHM2NCBpLCBhdG9taWM2
NF90ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNo
X2F0b21pYzY0X2ZldGNoX3N1YihpLCB2KTsKfQojIDEwNDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKYXRvbWljNjRfaW5jKGF0b21pYzY0X3QgKnYp
CnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogYXJjaF9hdG9taWM2NF9pbmMo
dik7Cn0KIyAxMTM2ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkCmF0b21pYzY0X2RlYyhhdG9taWM2NF90ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2
LCBzaXplb2YoKnYpKTsKIGFyY2hfYXRvbWljNjRfZGVjKHYpOwp9CiMgMTIyNSAiLi9pbmNsdWRl
L2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWM2NF9hbmQoczY0
IGksIGF0b21pYzY0X3QgKnYpCnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwog
YXJjaF9hdG9taWM2NF9hbmQoaSwgdik7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX2FuZChzNjQg
aSwgYXRvbWljNjRfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiBy
ZXR1cm4gYXJjaF9hdG9taWM2NF9mZXRjaF9hbmQoaSwgdik7Cn0KIyAxMzIzICIuL2luY2x1ZGUv
YXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pYzY0X29yKHM2NCBp
LCBhdG9taWM2NF90ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIGFy
Y2hfYXRvbWljNjRfb3IoaSwgdik7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX29yKHM2NCBpLCBh
dG9taWM2NF90ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVy
biBhcmNoX2F0b21pYzY0X2ZldGNoX29yKGksIHYpOwp9CiMgMTM3MSAiLi9pbmNsdWRlL2FzbS1n
ZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWM2NF94b3IoczY0IGksIGF0
b21pYzY0X3QgKnYpCnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogYXJjaF9h
dG9taWM2NF94b3IoaSwgdik7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX3hvcihzNjQgaSwgYXRv
bWljNjRfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4g
YXJjaF9hdG9taWM2NF9mZXRjaF94b3IoaSwgdik7Cn0KIyAxNDIwICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKYXRvbWljNjRfeGNoZyhhdG9taWM2NF90
ICp2LCBzNjQgaSkKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4g
YXJjaF9hdG9taWM2NF94Y2hnKHYsIGkpOwp9CiMgMTQ2MCAiLi9pbmNsdWRlL2FzbS1nZW5lcmlj
L2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2NtcHhjaGcoYXRvbWljNjRfdCAq
diwgczY0IG9sZCwgczY0IG5ldykKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7
CiByZXR1cm4gYXJjaF9hdG9taWM2NF9jbXB4Y2hnKHYsIG9sZCwgbmV3KTsKfQojIDE1MDAgIi4v
aW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljNjRf
dHJ5X2NtcHhjaGcoYXRvbWljNjRfdCAqdiwgczY0ICpvbGQsIHM2NCBuZXcpCnsKIGthc2FuX2No
ZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoga2FzYW5fY2hlY2tfd3JpdGUob2xkLCBzaXplb2Yo
Km9sZCkpOwogcmV0dXJuIGFyY2hfYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgb2xkLCBuZXcpOwp9
CiMgMTU0NCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bAphdG9taWM2NF9zdWJfYW5kX3Rlc3QoczY0IGksIGF0b21pYzY0X3QgKnYpCnsKIGthc2FuX2No
ZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFyY2hfYXRvbWljNjRfc3ViX2FuZF90
ZXN0KGksIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pYzY0X2RlY19hbmRfdGVzdChhdG9taWM2NF90ICp2
KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21p
YzY0X2RlY19hbmRfdGVzdCh2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAphdG9taWM2NF9pbmNfYW5kX3Rlc3QoYXRv
bWljNjRfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4g
YXJjaF9hdG9taWM2NF9pbmNfYW5kX3Rlc3Qodik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljNjRfYWRkX25l
Z2F0aXZlKHM2NCBpLCBhdG9taWM2NF90ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXpl
b2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21pYzY0X2FkZF9uZWdhdGl2ZShpLCB2KTsKfQojIDI2
NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIgMgojIDggIi4vaW5jbHVkZS9saW51
eC9hdG9taWMuaCIgMgojIDc0ICIuL2luY2x1ZGUvbGludXgvYXRvbWljLmgiCiMgMSAiLi9pbmNs
dWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIiAxCiMgNzkgIi4vaW5jbHVkZS9saW51eC9hdG9t
aWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19yZWFkX2FjcXVpcmUoY29uc3QgYXRvbWljX3QgKnYp
CnsKIHJldHVybiAoeyB0eXBlb2YoKiYodiktPmNvdW50ZXIpIF9fX3AxID0gKHsgdW5pb24geyB0
eXBlb2YoKiYodiktPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBf
X3JlYWRfb25jZV9zaXplKCYoKiYodiktPmNvdW50ZXIpLCBfX3UuX19jLCBzaXplb2YoKiYodikt
PmNvdW50ZXIpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigqJih2KS0+Y291bnRl
ciksIF9fdS5fX2MsIHNpemVvZigqJih2KS0+Y291bnRlcikpOyBkbyB7IH0gd2hpbGUgKDApOyBf
X3UuX192YWw7IH0pOyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzgyKHZv
aWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9y
ZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComKHYpLT5jb3VudGVy
KSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComKHYpLT5jb3VudGVyKSA9PSBzaXplb2Yoc2hv
cnQpIHx8IHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKCom
KHYpLT5jb3VudGVyKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfODIo
KTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7IF9f
X3AxOyB9KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWNfc2V0X3JlbGVhc2UoYXRvbWljX3QgKnYsIGludCBp
KQp7CiBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfOTEodm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9s
b2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2YoKiYodiktPmNvdW50ZXIpID09
IHNpemVvZihjaGFyKSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihzaG9ydCkg
fHwgc2l6ZW9mKComKHYpLT5jb3VudGVyKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYodikt
PmNvdW50ZXIpID09IHNpemVvZihsb25nKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF85MSgpOyB9
IHdoaWxlICgwKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKHsgdW5p
b24geyB0eXBlb2YoKiYodiktPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7
IC5fX3ZhbCA9ICggdHlwZW9mKComKHYpLT5jb3VudGVyKSkgKGkpIH07IF9fd3JpdGVfb25jZV9z
aXplKCYoKiYodiktPmNvdW50ZXIpLCBfX3UuX19jLCBzaXplb2YoKiYodiktPmNvdW50ZXIpKTsg
X191Ll9fdmFsOyB9KTsgfSB3aGlsZSAoMCk7Cn0KIyAyODEgIi4vaW5jbHVkZS9saW51eC9hdG9t
aWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19pbmNfcmV0dXJuKGF0b21pY190ICp2KQp7CiByZXR1
cm4gYXRvbWljX2FkZF9yZXR1cm4oMSwgdik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAphdG9taWNfaW5jX3JldHVybl9h
Y3F1aXJlKGF0b21pY190ICp2KQp7CiByZXR1cm4gYXRvbWljX2FkZF9yZXR1cm4oMSwgdik7Cn0K
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludAphdG9taWNfaW5jX3JldHVybl9yZWxlYXNlKGF0b21pY190ICp2KQp7CiByZXR1cm4g
YXRvbWljX2FkZF9yZXR1cm4oMSwgdik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAphdG9taWNfaW5jX3JldHVybl9yZWxh
eGVkKGF0b21pY190ICp2KQp7CiByZXR1cm4gYXRvbWljX2FkZF9yZXR1cm4oMSwgdik7Cn0KIyAz
NjIgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9p
bmMoYXRvbWljX3QgKnYpCnsKIHJldHVybiBhdG9taWNfZmV0Y2hfYWRkKDEsIHYpOwp9CgoKCgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQKYXRvbWljX2ZldGNoX2luY19hY3F1aXJlKGF0b21pY190ICp2KQp7CiByZXR1cm4gYXRvbWlj
X2ZldGNoX2FkZCgxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9pbmNfcmVsZWFzZShhdG9t
aWNfdCAqdikKewogcmV0dXJuIGF0b21pY19mZXRjaF9hZGQoMSwgdik7Cn0KCgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAphdG9t
aWNfZmV0Y2hfaW5jX3JlbGF4ZWQoYXRvbWljX3QgKnYpCnsKIHJldHVybiBhdG9taWNfZmV0Y2hf
YWRkKDEsIHYpOwp9CiMgNDUyICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNrLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dAphdG9taWNfZGVjX3JldHVybihhdG9taWNfdCAqdikKewogcmV0dXJuIGF0b21pY19zdWJfcmV0
dXJuKDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2RlY19yZXR1cm5fYWNxdWlyZShhdG9taWNfdCAq
dikKewogcmV0dXJuIGF0b21pY19zdWJfcmV0dXJuKDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2Rl
Y19yZXR1cm5fcmVsZWFzZShhdG9taWNfdCAqdikKewogcmV0dXJuIGF0b21pY19zdWJfcmV0dXJu
KDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2RlY19yZXR1cm5fcmVsYXhlZChhdG9taWNfdCAqdikK
ewogcmV0dXJuIGF0b21pY19zdWJfcmV0dXJuKDEsIHYpOwp9CiMgNTMzICIuL2luY2x1ZGUvbGlu
dXgvYXRvbWljLWZhbGxiYWNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAphdG9taWNfZmV0Y2hfZGVjKGF0b21pY190ICp2KQp7
CiByZXR1cm4gYXRvbWljX2ZldGNoX3N1YigxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9k
ZWNfYWNxdWlyZShhdG9taWNfdCAqdikKewogcmV0dXJuIGF0b21pY19mZXRjaF9zdWIoMSwgdik7
Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludAphdG9taWNfZmV0Y2hfZGVjX3JlbGVhc2UoYXRvbWljX3QgKnYpCnsKIHJldHVy
biBhdG9taWNfZmV0Y2hfc3ViKDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2ZldGNoX2RlY19yZWxh
eGVkKGF0b21pY190ICp2KQp7CiByZXR1cm4gYXRvbWljX2ZldGNoX3N1YigxLCB2KTsKfQojIDY0
OSAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pY19hbmRub3Qo
aW50IGksIGF0b21pY190ICp2KQp7CiBhdG9taWNfYW5kKH5pLCB2KTsKfQojIDY2NSAiLi9pbmNs
dWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2ZldGNoX2FuZG5vdChpbnQg
aSwgYXRvbWljX3QgKnYpCnsKIHJldHVybiBhdG9taWNfZmV0Y2hfYW5kKH5pLCB2KTsKfQoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50CmF0b21pY19mZXRjaF9hbmRub3RfYWNxdWlyZShpbnQgaSwgYXRvbWljX3QgKnYpCnsKIHJl
dHVybiBhdG9taWNfZmV0Y2hfYW5kKH5pLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9hbmRu
b3RfcmVsZWFzZShpbnQgaSwgYXRvbWljX3QgKnYpCnsKIHJldHVybiBhdG9taWNfZmV0Y2hfYW5k
KH5pLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9hbmRub3RfcmVsYXhlZChpbnQgaSwgYXRv
bWljX3QgKnYpCnsKIHJldHVybiBhdG9taWNfZmV0Y2hfYW5kKH5pLCB2KTsKfQojIDEwODMgIi4v
aW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9hZGRfdW5s
ZXNzKGF0b21pY190ICp2LCBpbnQgYSwgaW50IHUpCnsKIGludCBjID0gYXRvbWljX3JlYWQodik7
CgogZG8gewogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGMgPT0gdSksIDApKQogICBicmVhazsK
IH0gd2hpbGUgKCFhdG9taWNfdHJ5X2NtcHhjaGcodiwgJmMsIGMgKyBhKSk7CgogcmV0dXJuIGM7
Cn0KIyAxMTA4ICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNrLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWlj
X2FkZF91bmxlc3MoYXRvbWljX3QgKnYsIGludCBhLCBpbnQgdSkKewogcmV0dXJuIGF0b21pY19m
ZXRjaF9hZGRfdW5sZXNzKHYsIGEsIHUpICE9IHU7Cn0KIyAxMTI0ICIuL2luY2x1ZGUvbGludXgv
YXRvbWljLWZhbGxiYWNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljX2luY19ub3RfemVybyhhdG9taWNfdCAqdikK
ewogcmV0dXJuIGF0b21pY19hZGRfdW5sZXNzKHYsIDEsIDApOwp9CgoKCgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pY19p
bmNfdW5sZXNzX25lZ2F0aXZlKGF0b21pY190ICp2KQp7CiBpbnQgYyA9IGF0b21pY19yZWFkKHYp
OwoKIGRvIHsKICBpZiAoX19idWlsdGluX2V4cGVjdCghIShjIDwgMCksIDApKQogICByZXR1cm4g
ZmFsc2U7CiB9IHdoaWxlICghYXRvbWljX3RyeV9jbXB4Y2hnKHYsICZjLCBjICsgMSkpOwoKIHJl
dHVybiB0cnVlOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pY19kZWNfdW5sZXNzX3Bvc2l0aXZlKGF0b21pY190
ICp2KQp7CiBpbnQgYyA9IGF0b21pY19yZWFkKHYpOwoKIGRvIHsKICBpZiAoX19idWlsdGluX2V4
cGVjdCghIShjID4gMCksIDApKQogICByZXR1cm4gZmFsc2U7CiB9IHdoaWxlICghYXRvbWljX3Ry
eV9jbXB4Y2hnKHYsICZjLCBjIC0gMSkpOwoKIHJldHVybiB0cnVlOwp9CgoKCgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWlj
X2RlY19pZl9wb3NpdGl2ZShhdG9taWNfdCAqdikKewogaW50IGRlYywgYyA9IGF0b21pY19yZWFk
KHYpOwoKIGRvIHsKICBkZWMgPSBjIC0gMTsKICBpZiAoX19idWlsdGluX2V4cGVjdCghIShkZWMg
PCAwKSwgMCkpCiAgIGJyZWFrOwogfSB3aGlsZSAoIWF0b21pY190cnlfY21weGNoZyh2LCAmYywg
ZGVjKSk7CgogcmV0dXJuIGRlYzsKfQojIDExODkgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFs
bGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgczY0CmF0b21pYzY0X3JlYWRfYWNxdWlyZShjb25zdCBhdG9taWM2NF90ICp2KQp7
CiByZXR1cm4gKHsgdHlwZW9mKComKHYpLT5jb3VudGVyKSBfX19wMSA9ICh7IHVuaW9uIHsgdHlw
ZW9mKComKHYpLT5jb3VudGVyKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19y
ZWFkX29uY2Vfc2l6ZSgmKComKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKComKHYpLT5j
b3VudGVyKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoKiYodiktPmNvdW50ZXIp
LCBfX3UuX19jLCBzaXplb2YoKiYodiktPmNvdW50ZXIpKTsgZG8geyB9IHdoaWxlICgwKTsgX191
Ll9fdmFsOyB9KTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xMTkyKHZv
aWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9y
ZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComKHYpLT5jb3VudGVy
KSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComKHYpLT5jb3VudGVyKSA9PSBzaXplb2Yoc2hv
cnQpIHx8IHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKCom
KHYpLT5jb3VudGVyKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfMTE5
MigpOyB9IHdoaWxlICgwKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsg
X19fcDE7IH0pOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pYzY0X3NldF9yZWxlYXNlKGF0b21pYzY0X3QgKnYs
IHM2NCBpKQp7CiBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMTIw
MSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQg
c3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJih2KS0+Y291
bnRlcikgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9m
KHNob3J0KSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihpbnQpIHx8IHNpemVv
ZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0
XzEyMDEoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5
Iik7ICh7IHVuaW9uIHsgdHlwZW9mKComKHYpLT5jb3VudGVyKSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJih2KS0+Y291bnRlcikpIChpKSB9OyBfX3dy
aXRlX29uY2Vfc2l6ZSgmKComKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKComKHYpLT5j
b3VudGVyKSk7IF9fdS5fX3ZhbDsgfSk7IH0gd2hpbGUgKDApOwp9CiMgMTM5MSAiLi9pbmNsdWRl
L2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKYXRvbWljNjRfaW5jX3JldHVybihhdG9taWM2
NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfYWRkX3JldHVybigxLCB2KTsKfQoKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0
b21pYzY0X2luY19yZXR1cm5fYWNxdWlyZShhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWlj
NjRfYWRkX3JldHVybigxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2luY19yZXR1cm5fcmVsZWFz
ZShhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfYWRkX3JldHVybigxLCB2KTsKfQoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgczY0CmF0b21pYzY0X2luY19yZXR1cm5fcmVsYXhlZChhdG9taWM2NF90ICp2KQp7CiByZXR1
cm4gYXRvbWljNjRfYWRkX3JldHVybigxLCB2KTsKfQojIDE0NzIgIi4vaW5jbHVkZS9saW51eC9h
dG9taWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX2luYyhhdG9taWM2NF90ICp2KQp7
CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYWRkKDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKYXRvbWljNjRfZmV0
Y2hfaW5jX2FjcXVpcmUoYXRvbWljNjRfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2Fk
ZCgxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX2luY19yZWxlYXNlKGF0b21pYzY0X3Qg
KnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGQoMSwgdik7Cn0KCgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAphdG9taWM2
NF9mZXRjaF9pbmNfcmVsYXhlZChhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0
Y2hfYWRkKDEsIHYpOwp9CiMgMTU2MiAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBzNjQKYXRvbWljNjRfZGVjX3JldHVybihhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWlj
NjRfc3ViX3JldHVybigxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2RlY19yZXR1cm5fYWNxdWly
ZShhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybigxLCB2KTsKfQoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgczY0CmF0b21pYzY0X2RlY19yZXR1cm5fcmVsZWFzZShhdG9taWM2NF90ICp2KQp7CiByZXR1
cm4gYXRvbWljNjRfc3ViX3JldHVybigxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2RlY19yZXR1
cm5fcmVsYXhlZChhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybigx
LCB2KTsKfQojIDE2NDMgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0
b21pYzY0X2ZldGNoX2RlYyhhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hf
c3ViKDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzNjQKYXRvbWljNjRfZmV0Y2hfZGVjX2FjcXVpcmUoYXRvbWljNjRf
dCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX3N1YigxLCB2KTsKfQoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21p
YzY0X2ZldGNoX2RlY19yZWxlYXNlKGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9m
ZXRjaF9zdWIoMSwgdik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAphdG9taWM2NF9mZXRjaF9kZWNfcmVsYXhlZChhdG9t
aWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfc3ViKDEsIHYpOwp9CiMgMTc1OSAi
Li9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pYzY0X2FuZG5vdChz
NjQgaSwgYXRvbWljNjRfdCAqdikKewogYXRvbWljNjRfYW5kKH5pLCB2KTsKfQojIDE3NzUgIi4v
aW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX2FuZG5v
dChzNjQgaSwgYXRvbWljNjRfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FuZCh+aSwg
dik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NAphdG9taWM2NF9mZXRjaF9hbmRub3RfYWNxdWlyZShzNjQgaSwgYXRvbWlj
NjRfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FuZCh+aSwgdik7Cn0KCgoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAph
dG9taWM2NF9mZXRjaF9hbmRub3RfcmVsZWFzZShzNjQgaSwgYXRvbWljNjRfdCAqdikKewogcmV0
dXJuIGF0b21pYzY0X2ZldGNoX2FuZCh+aSwgdik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAphdG9taWM2NF9mZXRjaF9h
bmRub3RfcmVsYXhlZChzNjQgaSwgYXRvbWljNjRfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2Zl
dGNoX2FuZCh+aSwgdik7Cn0KIyAyMTkzICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNr
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHM2NAphdG9taWM2NF9mZXRjaF9hZGRfdW5sZXNzKGF0b21pYzY0X3QgKnYsIHM2NCBhLCBz
NjQgdSkKewogczY0IGMgPSBhdG9taWM2NF9yZWFkKHYpOwoKIGRvIHsKICBpZiAoX19idWlsdGlu
X2V4cGVjdCghIShjID09IHUpLCAwKSkKICAgYnJlYWs7CiB9IHdoaWxlICghYXRvbWljNjRfdHJ5
X2NtcHhjaGcodiwgJmMsIGMgKyBhKSk7CgogcmV0dXJuIGM7Cn0KIyAyMjE4ICIuL2luY2x1ZGUv
bGludXgvYXRvbWljLWZhbGxiYWNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljNjRfYWRkX3VubGVzcyhhdG9taWM2
NF90ICp2LCBzNjQgYSwgczY0IHUpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGRfdW5sZXNz
KHYsIGEsIHUpICE9IHU7Cn0KIyAyMjM0ICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNr
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wKYXRvbWljNjRfaW5jX25vdF96ZXJvKGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiBh
dG9taWM2NF9hZGRfdW5sZXNzKHYsIDEsIDApOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pYzY0X2luY191bmxl
c3NfbmVnYXRpdmUoYXRvbWljNjRfdCAqdikKewogczY0IGMgPSBhdG9taWM2NF9yZWFkKHYpOwoK
IGRvIHsKICBpZiAoX19idWlsdGluX2V4cGVjdCghIShjIDwgMCksIDApKQogICByZXR1cm4gZmFs
c2U7CiB9IHdoaWxlICghYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgJmMsIGMgKyAxKSk7CgogcmV0
dXJuIHRydWU7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljNjRfZGVjX3VubGVzc19wb3NpdGl2ZShhdG9taWM2
NF90ICp2KQp7CiBzNjQgYyA9IGF0b21pYzY0X3JlYWQodik7CgogZG8gewogIGlmIChfX2J1aWx0
aW5fZXhwZWN0KCEhKGMgPiAwKSwgMCkpCiAgIHJldHVybiBmYWxzZTsKIH0gd2hpbGUgKCFhdG9t
aWM2NF90cnlfY21weGNoZyh2LCAmYywgYyAtIDEpKTsKCiByZXR1cm4gdHJ1ZTsKfQoKCgoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0
CmF0b21pYzY0X2RlY19pZl9wb3NpdGl2ZShhdG9taWM2NF90ICp2KQp7CiBzNjQgZGVjLCBjID0g
YXRvbWljNjRfcmVhZCh2KTsKCiBkbyB7CiAgZGVjID0gYyAtIDE7CiAgaWYgKF9fYnVpbHRpbl9l
eHBlY3QoISEoZGVjIDwgMCksIDApKQogICBicmVhazsKIH0gd2hpbGUgKCFhdG9taWM2NF90cnlf
Y21weGNoZyh2LCAmYywgZGVjKSk7CgogcmV0dXJuIGRlYzsKfQojIDc1ICIuL2luY2x1ZGUvbGlu
dXgvYXRvbWljLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1sb25nLmgi
IDEKIyA5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWxvbmcuaCIKIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgiIDEKIyAxMCAiLi9pbmNsdWRl
L2FzbS1nZW5lcmljL2F0b21pYy1sb25nLmgiIDIKCgp0eXBlZGVmIGF0b21pYzY0X3QgYXRvbWlj
X2xvbmdfdDsKIyAyNSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1sb25nLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcK
YXRvbWljX2xvbmdfcmVhZChjb25zdCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWlj
NjRfcmVhZCh2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19yZWFkX2FjcXVpcmUoY29uc3QgYXRvbWlj
X2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X3JlYWRfYWNxdWlyZSh2KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAph
dG9taWNfbG9uZ19zZXQoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyBpKQp7CiBhdG9taWM2NF9zZXQo
diwgaSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQKYXRvbWljX2xvbmdfc2V0X3JlbGVhc2UoYXRvbWljX2xvbmdfdCAqdiwg
bG9uZyBpKQp7CiBhdG9taWM2NF9zZXRfcmVsZWFzZSh2LCBpKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWNfbG9u
Z19hZGQobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiBhdG9taWM2NF9hZGQoaSwgdik7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGxvbmcKYXRvbWljX2xvbmdfYWRkX3JldHVybihsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsK
IHJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2Fk
ZF9yZXR1cm5fYWNxdWlyZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9t
aWM2NF9hZGRfcmV0dXJuKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2FkZF9yZXR1cm5fcmVs
ZWFzZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9hZGRfcmV0
dXJuKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2FkZF9yZXR1cm5fcmVsYXhlZChsb25nIGks
IGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKGksIHYpOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBsb25nCmF0b21pY19sb25nX2ZldGNoX2FkZChsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsK
IHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGQoaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0
Y2hfYWRkX2FjcXVpcmUobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWlj
NjRfZmV0Y2hfYWRkKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX2FkZF9yZWxlYXNl
KGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZChp
LCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9hZGRfcmVsYXhlZChsb25nIGksIGF0b21p
Y19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGQoaSwgdik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQK
YXRvbWljX2xvbmdfc3ViKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogYXRvbWljNjRfc3Vi
KGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX3N1Yl9yZXR1cm4obG9uZyBpLCBhdG9taWNfbG9u
Z190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybihpLCB2KTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9t
aWNfbG9uZ19zdWJfcmV0dXJuX2FjcXVpcmUobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiBy
ZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybihpLCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19zdWJf
cmV0dXJuX3JlbGVhc2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWlj
NjRfc3ViX3JldHVybihpLCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19zdWJfcmV0dXJuX3JlbGF4
ZWQobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVy
bihpLCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9zdWIobG9uZyBpLCBhdG9taWNfbG9u
Z190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfc3ViKGksIHYpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21p
Y19sb25nX2ZldGNoX3N1Yl9hY3F1aXJlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogcmV0
dXJuIGF0b21pYzY0X2ZldGNoX3N1YihpLCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9z
dWJfcmVsZWFzZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9m
ZXRjaF9zdWIoaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfc3ViX3JlbGF4ZWQobG9u
ZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfc3ViKGksIHYp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkCmF0b21pY19sb25nX2luYyhhdG9taWNfbG9uZ190ICp2KQp7CiBhdG9taWM2NF9p
bmModik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfaW5jX3JldHVybihhdG9taWNfbG9uZ190ICp2KQp7
CiByZXR1cm4gYXRvbWljNjRfaW5jX3JldHVybih2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19pbmNf
cmV0dXJuX2FjcXVpcmUoYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2luY19y
ZXR1cm5fYWNxdWlyZSh2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19pbmNfcmV0dXJuX3JlbGVhc2Uo
YXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2luY19yZXR1cm5fcmVsZWFzZSh2
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgbG9uZwphdG9taWNfbG9uZ19pbmNfcmV0dXJuX3JlbGF4ZWQoYXRvbWljX2xvbmdfdCAq
dikKewogcmV0dXJuIGF0b21pYzY0X2luY19yZXR1cm5fcmVsYXhlZCh2KTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9t
aWNfbG9uZ19mZXRjaF9pbmMoYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2Zl
dGNoX2luYyh2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9pbmNfYWNxdWlyZShhdG9taWNf
bG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfaW5jX2FjcXVpcmUodik7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxv
bmcKYXRvbWljX2xvbmdfZmV0Y2hfaW5jX3JlbGVhc2UoYXRvbWljX2xvbmdfdCAqdikKewogcmV0
dXJuIGF0b21pYzY0X2ZldGNoX2luY19yZWxlYXNlKHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2Zl
dGNoX2luY19yZWxheGVkKGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRj
aF9pbmNfcmVsYXhlZCh2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWNfbG9uZ19kZWMoYXRvbWljX2xvbmdfdCAq
dikKewogYXRvbWljNjRfZGVjKHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2RlY19yZXR1cm4oYXRv
bWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2RlY19yZXR1cm4odik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcK
YXRvbWljX2xvbmdfZGVjX3JldHVybl9hY3F1aXJlKGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVy
biBhdG9taWM2NF9kZWNfcmV0dXJuX2FjcXVpcmUodik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZGVj
X3JldHVybl9yZWxlYXNlKGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9kZWNf
cmV0dXJuX3JlbGVhc2Uodik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZGVjX3JldHVybl9yZWxheGVk
KGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9kZWNfcmV0dXJuX3JlbGF4ZWQo
dik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfZGVjKGF0b21pY19sb25nX3QgKnYpCnsKIHJl
dHVybiBhdG9taWM2NF9mZXRjaF9kZWModik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfZGVj
X2FjcXVpcmUoYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2RlY19h
Y3F1aXJlKHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX2RlY19yZWxlYXNlKGF0b21pY19s
b25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9kZWNfcmVsZWFzZSh2KTsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9u
ZwphdG9taWNfbG9uZ19mZXRjaF9kZWNfcmVsYXhlZChhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1
cm4gYXRvbWljNjRfZmV0Y2hfZGVjX3JlbGF4ZWQodik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKYXRvbWljX2xvbmdfYW5k
KGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogYXRvbWljNjRfYW5kKGksIHYpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25n
CmF0b21pY19sb25nX2ZldGNoX2FuZChsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVy
biBhdG9taWM2NF9mZXRjaF9hbmQoaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfYW5k
X2FjcXVpcmUobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0
Y2hfYW5kKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX2FuZF9yZWxlYXNlKGxvbmcg
aSwgYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FuZChpLCB2KTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9hbmRfcmVsYXhlZChsb25nIGksIGF0b21pY19sb25n
X3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQoaSwgdik7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKYXRvbWlj
X2xvbmdfYW5kbm90KGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogYXRvbWljNjRfYW5kbm90
KGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX2FuZG5vdChsb25nIGksIGF0b21pY19s
b25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmRub3QoaSwgdik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcK
YXRvbWljX2xvbmdfZmV0Y2hfYW5kbm90X2FjcXVpcmUobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2
KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYW5kbm90X2FjcXVpcmUoaSwgdik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcK
YXRvbWljX2xvbmdfZmV0Y2hfYW5kbm90X3JlbGVhc2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2
KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYW5kbm90X3JlbGVhc2UoaSwgdik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcK
YXRvbWljX2xvbmdfZmV0Y2hfYW5kbm90X3JlbGF4ZWQobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2
KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYW5kbm90X3JlbGF4ZWQoaSwgdik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQK
YXRvbWljX2xvbmdfb3IobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiBhdG9taWM2NF9vcihp
LCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9vcihsb25nIGksIGF0b21pY19sb25nX3Qg
KnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9vcihpLCB2KTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9u
Z19mZXRjaF9vcl9hY3F1aXJlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0
b21pYzY0X2ZldGNoX29yKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX29yX3JlbGVh
c2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfb3Io
aSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfb3JfcmVsYXhlZChsb25nIGksIGF0b21p
Y19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9vcihpLCB2KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAph
dG9taWNfbG9uZ194b3IobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiBhdG9taWM2NF94b3Io
aSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfeG9yKGxvbmcgaSwgYXRvbWljX2xvbmdf
dCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX3hvcihpLCB2KTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNf
bG9uZ19mZXRjaF94b3JfYWNxdWlyZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVy
biBhdG9taWM2NF9mZXRjaF94b3IoaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfeG9y
X3JlbGVhc2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0
Y2hfeG9yKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX3hvcl9yZWxheGVkKGxvbmcg
aSwgYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX3hvcihpLCB2KTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgbG9uZwphdG9taWNfbG9uZ194Y2hnKGF0b21pY19sb25nX3QgKnYsIGxvbmcgaSkKewogcmV0
dXJuIGF0b21pYzY0X3hjaGcodiwgaSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfeGNoZ19hY3F1aXJl
KGF0b21pY19sb25nX3QgKnYsIGxvbmcgaSkKewogcmV0dXJuIGF0b21pYzY0X3hjaGcodiwgaSk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGxvbmcKYXRvbWljX2xvbmdfeGNoZ19yZWxlYXNlKGF0b21pY19sb25nX3QgKnYsIGxvbmcg
aSkKewogcmV0dXJuIGF0b21pYzY0X3hjaGcodiwgaSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfeGNo
Z19yZWxheGVkKGF0b21pY19sb25nX3QgKnYsIGxvbmcgaSkKewogcmV0dXJuIGF0b21pYzY0X3hj
aGcodiwgaSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfY21weGNoZyhhdG9taWNfbG9uZ190ICp2LCBs
b25nIG9sZCwgbG9uZyBuZXcpCnsKIHJldHVybiBhdG9taWM2NF9jbXB4Y2hnKHYsIG9sZCwgbmV3
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgbG9uZwphdG9taWNfbG9uZ19jbXB4Y2hnX2FjcXVpcmUoYXRvbWljX2xvbmdfdCAqdiwg
bG9uZyBvbGQsIGxvbmcgbmV3KQp7CiByZXR1cm4gYXRvbWljNjRfY21weGNoZyh2LCBvbGQsIG5l
dyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGxvbmcKYXRvbWljX2xvbmdfY21weGNoZ19yZWxlYXNlKGF0b21pY19sb25nX3QgKnYs
IGxvbmcgb2xkLCBsb25nIG5ldykKewogcmV0dXJuIGF0b21pYzY0X2NtcHhjaGcodiwgb2xkLCBu
ZXcpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBsb25nCmF0b21pY19sb25nX2NtcHhjaGdfcmVsYXhlZChhdG9taWNfbG9uZ190ICp2
LCBsb25nIG9sZCwgbG9uZyBuZXcpCnsKIHJldHVybiBhdG9taWM2NF9jbXB4Y2hnKHYsIG9sZCwg
bmV3KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbAphdG9taWNfbG9uZ190cnlfY21weGNoZyhhdG9taWNfbG9uZ190ICp2LCBs
b25nICpvbGQsIGxvbmcgbmV3KQp7CiByZXR1cm4gYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgKHM2
NCAqKW9sZCwgbmV3KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAphdG9taWNfbG9uZ190cnlfY21weGNoZ19hY3F1aXJlKGF0
b21pY19sb25nX3QgKnYsIGxvbmcgKm9sZCwgbG9uZyBuZXcpCnsKIHJldHVybiBhdG9taWM2NF90
cnlfY21weGNoZyh2LCAoczY0ICopb2xkLCBuZXcpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pY19sb25nX3RyeV9j
bXB4Y2hnX3JlbGVhc2UoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyAqb2xkLCBsb25nIG5ldykKewog
cmV0dXJuIGF0b21pYzY0X3RyeV9jbXB4Y2hnKHYsIChzNjQgKilvbGQsIG5ldyk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wK
YXRvbWljX2xvbmdfdHJ5X2NtcHhjaGdfcmVsYXhlZChhdG9taWNfbG9uZ190ICp2LCBsb25nICpv
bGQsIGxvbmcgbmV3KQp7CiByZXR1cm4gYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgKHM2NCAqKW9s
ZCwgbmV3KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbAphdG9taWNfbG9uZ19zdWJfYW5kX3Rlc3QobG9uZyBpLCBhdG9taWNf
bG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfc3ViX2FuZF90ZXN0KGksIHYpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
CmF0b21pY19sb25nX2RlY19hbmRfdGVzdChhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRv
bWljNjRfZGVjX2FuZF90ZXN0KHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pY19sb25nX2luY19hbmRfdGVzdChh
dG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfaW5jX2FuZF90ZXN0KHYpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sCmF0b21pY19sb25nX2FkZF9uZWdhdGl2ZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsK
IHJldHVybiBhdG9taWM2NF9hZGRfbmVnYXRpdmUoaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdf
ZmV0Y2hfYWRkX3VubGVzcyhhdG9taWNfbG9uZ190ICp2LCBsb25nIGEsIGxvbmcgdSkKewogcmV0
dXJuIGF0b21pYzY0X2ZldGNoX2FkZF91bmxlc3ModiwgYSwgdSk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljX2xv
bmdfYWRkX3VubGVzcyhhdG9taWNfbG9uZ190ICp2LCBsb25nIGEsIGxvbmcgdSkKewogcmV0dXJu
IGF0b21pYzY0X2FkZF91bmxlc3ModiwgYSwgdSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljX2xvbmdfaW5jX25v
dF96ZXJvKGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9pbmNfbm90X3plcm8o
dik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wKYXRvbWljX2xvbmdfaW5jX3VubGVzc19uZWdhdGl2ZShhdG9taWNfbG9uZ190
ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfaW5jX3VubGVzc19uZWdhdGl2ZSh2KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAph
dG9taWNfbG9uZ19kZWNfdW5sZXNzX3Bvc2l0aXZlKGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVy
biBhdG9taWM2NF9kZWNfdW5sZXNzX3Bvc2l0aXZlKHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2Rl
Y19pZl9wb3NpdGl2ZShhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZGVjX2lm
X3Bvc2l0aXZlKHYpOwp9CiMgNzcgIi4vaW5jbHVkZS9saW51eC9hdG9taWMuaCIgMgojIDE5ICIu
L2luY2x1ZGUvbGludXgva2dkYi5oIiAyCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20va2dk
Yi5oIiAxCiMgMTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20va2dkYi5oIgojIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDEKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zZWdtZW50LmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2NvbnN0LmgiIDEKCgoKIyAx
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9jb25zdC5oIiAxCiMgNSAiLi9pbmNsdWRlL2xpbnV4L2Nv
bnN0LmgiIDIKIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NlZ21lbnQuaCIgMgojIDE2OSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9jYWNoZS5oIiAxCiMgMTcwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NlZ21lbnQuaCIg
MgojIDI0OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcg
dmRzb19lbmNvZGVfY3B1bm9kZShpbnQgY3B1LCB1bnNpZ25lZCBsb25nIG5vZGUpCnsKIHJldHVy
biAobm9kZSA8PCAxMikgfCBjcHU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdmRzb19yZWFkX2NwdW5vZGUodW5zaWduZWQg
KmNwdSwgdW5zaWduZWQgKm5vZGUpCnsKIHVuc2lnbmVkIGludCBwOwojIDI2NiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiCiBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIjIEFMVDog
b2xkbnN0clxuIiAiNjYxOlxuXHQiICJsc2wgJVtzZWddLCVbcF0iICJcbjY2MjpcbiIgIiMgQUxU
OiBwYWRkaW5nXG4iICIuc2tpcCAtKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0oIiAi
NjYyYi02NjFiIiAiKSkgPiAwKSAqICIgIigoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0o
IiAiNjYyYi02NjFiIiAiKSksMHg5MFxuIiAiNjYzIiAiOlxuIiAiLnB1c2hzZWN0aW9uIC5hbHRp
bnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2NCIi
MSIiZiAtIC5cbiIgIiAud29yZCAiICIoMTYqMzIrMjIpIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJi
LTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICJcbiIgIiAuYnl0
ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5wdXNoc2VjdGlvbiAuYWx0
aW5zdHJfcmVwbGFjZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjEiICJc
biIgIjY2NCIiMSIiOlxuXHQiICIuYnl0ZSAweGYzLDB4MGYsMHhjNywweGY4IiAiXG4iICI2NjUi
IjEiICI6XG4iICIucG9wc2VjdGlvblxuIiA6IFtwXSAiPWEiIChwKSA6ICJpIiAoMCksIFtzZWdd
ICJyIiAoKDE1KjggKyAzKSkpCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDsKCiBpZiAoY3B1KQogICpjcHUgPSAocCAmIDB4ZmZmKTsKIGlmIChub2RlKQogICpu
b2RlID0gKHAgPj4gMTIpOwp9CiMgMzAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NlZ21lbnQu
aCIKZXh0ZXJuIGNvbnN0IGNoYXIgZWFybHlfaWR0X2hhbmRsZXJfYXJyYXlbMzJdWzldOwpleHRl
cm4gdm9pZCBlYXJseV9pZ25vcmVfaXJxKHZvaWQpOwojIDM0NyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9zZWdtZW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgX19sb2Fkc2VnbWVudF9mcyh1bnNpZ25lZCBzaG9ydCB2YWx1
ZSkKewogYXNtIHZvbGF0aWxlKCIJCQkJCQlcbiIKICAgICAgICIxOgltb3Z3ICUwLCAlJWZzCQkJ
XG4iCiAgICAgICAiMjoJCQkJCVxuIgoKICAgICAgICIgLnB1c2hzZWN0aW9uIFwiX19leF90YWJs
ZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxvbmcgKCIgIjFiIiAiKSAtIC5cbiIgIiAu
bG9uZyAoIiAiMmIiICIpIC0gLlxuIiAiIC5sb25nICgiICJleF9oYW5kbGVyX2NsZWFyX2ZzIiAi
KSAtIC5cbiIgIiAucG9wc2VjdGlvblxuIgoKICAgICAgIDogOiAicm0iICh2YWx1ZSkgOiAibWVt
b3J5Iik7Cn0KIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCiMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdlX3R5cGVzLmgiIDEKCgoKCgoKIyAxICIuL2luY2x1ZGUv
bGludXgvbWVtX2VuY3J5cHQuaCIgMQojIDE3ICIuL2luY2x1ZGUvbGludXgvbWVtX2VuY3J5cHQu
aCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0LmgiIDEKIyAxNyAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS91YXBpL2FzbS9ib290cGFyYW0uaCIgMQojIDQzICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9h
c20vYm9vdHBhcmFtLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NjcmVlbl9pbmZvLmgiIDEKCgoK
CiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2NyZWVuX2luZm8uaCIgMQojIDExICIuL2luY2x1
ZGUvdWFwaS9saW51eC9zY3JlZW5faW5mby5oIgpzdHJ1Y3Qgc2NyZWVuX2luZm8gewogX191OCBv
cmlnX3g7CiBfX3U4IG9yaWdfeTsKIF9fdTE2IGV4dF9tZW1fazsKIF9fdTE2IG9yaWdfdmlkZW9f
cGFnZTsKIF9fdTggb3JpZ192aWRlb19tb2RlOwogX191OCBvcmlnX3ZpZGVvX2NvbHM7CiBfX3U4
IGZsYWdzOwogX191OCB1bnVzZWQyOwogX191MTYgb3JpZ192aWRlb19lZ2FfYng7CiBfX3UxNiB1
bnVzZWQzOwogX191OCBvcmlnX3ZpZGVvX2xpbmVzOwogX191OCBvcmlnX3ZpZGVvX2lzVkdBOwog
X191MTYgb3JpZ192aWRlb19wb2ludHM7CgoKIF9fdTE2IGxmYl93aWR0aDsKIF9fdTE2IGxmYl9o
ZWlnaHQ7CiBfX3UxNiBsZmJfZGVwdGg7CiBfX3UzMiBsZmJfYmFzZTsKIF9fdTMyIGxmYl9zaXpl
OwogX191MTYgY2xfbWFnaWMsIGNsX29mZnNldDsKIF9fdTE2IGxmYl9saW5lbGVuZ3RoOwogX191
OCByZWRfc2l6ZTsKIF9fdTggcmVkX3BvczsKIF9fdTggZ3JlZW5fc2l6ZTsKIF9fdTggZ3JlZW5f
cG9zOwogX191OCBibHVlX3NpemU7CiBfX3U4IGJsdWVfcG9zOwogX191OCByc3ZkX3NpemU7CiBf
X3U4IHJzdmRfcG9zOwogX191MTYgdmVzYXBtX3NlZzsKIF9fdTE2IHZlc2FwbV9vZmY7CiBfX3Ux
NiBwYWdlczsKIF9fdTE2IHZlc2FfYXR0cmlidXRlczsKIF9fdTMyIGNhcGFiaWxpdGllczsKIF9f
dTMyIGV4dF9sZmJfYmFzZTsKIF9fdTggX3Jlc2VydmVkWzJdOwp9IF9fYXR0cmlidXRlX18oKHBh
Y2tlZCkpOwojIDYgIi4vaW5jbHVkZS9saW51eC9zY3JlZW5faW5mby5oIiAyCgpleHRlcm4gc3Ry
dWN0IHNjcmVlbl9pbmZvIHNjcmVlbl9pbmZvOwojIDQ0ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFw
aS9hc20vYm9vdHBhcmFtLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvYXBtX2Jpb3MuaCIgMQoj
IDkgIi4vaW5jbHVkZS9saW51eC9hcG1fYmlvcy5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4
L2FwbV9iaW9zLmgiIDEKIyAyMiAiLi9pbmNsdWRlL3VhcGkvbGludXgvYXBtX2Jpb3MuaCIKdHlw
ZWRlZiB1bnNpZ25lZCBzaG9ydCBhcG1fZXZlbnRfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBh
cG1fZXZlbnRpbmZvX3Q7CgpzdHJ1Y3QgYXBtX2Jpb3NfaW5mbyB7CiBfX3UxNiB2ZXJzaW9uOwog
X191MTYgY3NlZzsKIF9fdTMyIG9mZnNldDsKIF9fdTE2IGNzZWdfMTY7CiBfX3UxNiBkc2VnOwog
X191MTYgZmxhZ3M7CiBfX3UxNiBjc2VnX2xlbjsKIF9fdTE2IGNzZWdfMTZfbGVuOwogX191MTYg
ZHNlZ19sZW47Cn07CiMgMTMzICIuL2luY2x1ZGUvdWFwaS9saW51eC9hcG1fYmlvcy5oIgojIDEg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2lvY3RsLmgiIDEKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2dlbmVyYXRlZC91YXBpL2FzbS9pb2N0bC5oIiAxCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5l
cmljL2lvY3RsLmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaW9jdGwu
aCIgMQojIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9pb2N0bC5oIiAyCgoKCgoKZXh0ZXJuIHVu
c2lnbmVkIGludCBfX2ludmFsaWRfc2l6ZV9hcmd1bWVudF9mb3JfSU9DOwojIDIgIi4vYXJjaC94
ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vaW9jdGwuaCIgMgojIDYgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L2lvY3RsLmgiIDIKIyAxMzQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2FwbV9iaW9z
LmgiIDIKIyAxMCAiLi9pbmNsdWRlL2xpbnV4L2FwbV9iaW9zLmgiIDIKIyAyNiAiLi9pbmNsdWRl
L2xpbnV4L2FwbV9iaW9zLmgiCnN0cnVjdCBhcG1faW5mbyB7CiBzdHJ1Y3QgYXBtX2Jpb3NfaW5m
byBiaW9zOwogdW5zaWduZWQgc2hvcnQgY29ubmVjdGlvbl92ZXJzaW9uOwogaW50IGdldF9wb3dl
cl9zdGF0dXNfYnJva2VuOwogaW50IGdldF9wb3dlcl9zdGF0dXNfc3dhYmlubWludXRlczsKIGlu
dCBhbGxvd19pbnRzOwogaW50IGZvcmJpZF9pZGxlOwogaW50IHJlYWxtb2RlX3Bvd2VyX29mZjsK
IGludCBkaXNhYmxlZDsKfTsKIyA4NSAiLi9pbmNsdWRlL2xpbnV4L2FwbV9iaW9zLmgiCmV4dGVy
biBzdHJ1Y3QgYXBtX2luZm8gYXBtX2luZm87CiMgNDUgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBp
L2FzbS9ib290cGFyYW0uaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9lZGQuaCIgMQojIDI0ICIu
L2luY2x1ZGUvbGludXgvZWRkLmgiCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZWRkLmgiIDEK
IyA3MiAiLi9pbmNsdWRlL3VhcGkvbGludXgvZWRkLmgiCnN0cnVjdCBlZGRfZGV2aWNlX3BhcmFt
cyB7CiBfX3UxNiBsZW5ndGg7CiBfX3UxNiBpbmZvX2ZsYWdzOwogX191MzIgbnVtX2RlZmF1bHRf
Y3lsaW5kZXJzOwogX191MzIgbnVtX2RlZmF1bHRfaGVhZHM7CiBfX3UzMiBzZWN0b3JzX3Blcl90
cmFjazsKIF9fdTY0IG51bWJlcl9vZl9zZWN0b3JzOwogX191MTYgYnl0ZXNfcGVyX3NlY3RvcjsK
IF9fdTMyIGRwdGVfcHRyOwogX191MTYga2V5OwogX191OCBkZXZpY2VfcGF0aF9pbmZvX2xlbmd0
aDsKIF9fdTggcmVzZXJ2ZWQyOwogX191MTYgcmVzZXJ2ZWQzOwogX191OCBob3N0X2J1c190eXBl
WzRdOwogX191OCBpbnRlcmZhY2VfdHlwZVs4XTsKIHVuaW9uIHsKICBzdHJ1Y3QgewogICBfX3Ux
NiBiYXNlX2FkZHJlc3M7CiAgIF9fdTE2IHJlc2VydmVkMTsKICAgX191MzIgcmVzZXJ2ZWQyOwog
IH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIGlzYTsKICBzdHJ1Y3QgewogICBfX3U4IGJ1czsK
ICAgX191OCBzbG90OwogICBfX3U4IGZ1bmN0aW9uOwogICBfX3U4IGNoYW5uZWw7CiAgIF9fdTMy
IHJlc2VydmVkOwogIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIHBjaTsKCiAgc3RydWN0IHsK
ICAgX191NjQgcmVzZXJ2ZWQ7CiAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgaWJuZDsKICBz
dHJ1Y3QgewogICBfX3U2NCByZXNlcnZlZDsKICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSB4
cHJzOwogIHN0cnVjdCB7CiAgIF9fdTY0IHJlc2VydmVkOwogIH0gX19hdHRyaWJ1dGVfXyAoKHBh
Y2tlZCkpIGh0cHQ7CiAgc3RydWN0IHsKICAgX191NjQgcmVzZXJ2ZWQ7CiAgfSBfX2F0dHJpYnV0
ZV9fICgocGFja2VkKSkgdW5rbm93bjsKIH0gaW50ZXJmYWNlX3BhdGg7CiB1bmlvbiB7CiAgc3Ry
dWN0IHsKICAgX191OCBkZXZpY2U7CiAgIF9fdTggcmVzZXJ2ZWQxOwogICBfX3UxNiByZXNlcnZl
ZDI7CiAgIF9fdTMyIHJlc2VydmVkMzsKICAgX191NjQgcmVzZXJ2ZWQ0OwogIH0gX19hdHRyaWJ1
dGVfXyAoKHBhY2tlZCkpIGF0YTsKICBzdHJ1Y3QgewogICBfX3U4IGRldmljZTsKICAgX191OCBs
dW47CiAgIF9fdTggcmVzZXJ2ZWQxOwogICBfX3U4IHJlc2VydmVkMjsKICAgX191MzIgcmVzZXJ2
ZWQzOwogICBfX3U2NCByZXNlcnZlZDQ7CiAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgYXRh
cGk7CiAgc3RydWN0IHsKICAgX191MTYgaWQ7CiAgIF9fdTY0IGx1bjsKICAgX191MTYgcmVzZXJ2
ZWQxOwogICBfX3UzMiByZXNlcnZlZDI7CiAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgc2Nz
aTsKICBzdHJ1Y3QgewogICBfX3U2NCBzZXJpYWxfbnVtYmVyOwogICBfX3U2NCByZXNlcnZlZDsK
ICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSB1c2I7CiAgc3RydWN0IHsKICAgX191NjQgZXVp
OwogICBfX3U2NCByZXNlcnZlZDsKICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBpMTM5NDsK
ICBzdHJ1Y3QgewogICBfX3U2NCB3d2lkOwogICBfX3U2NCBsdW47CiAgfSBfX2F0dHJpYnV0ZV9f
ICgocGFja2VkKSkgZmlicmU7CiAgc3RydWN0IHsKICAgX191NjQgaWRlbnRpdHlfdGFnOwogICBf
X3U2NCByZXNlcnZlZDsKICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBpMm87CiAgc3RydWN0
IHsKICAgX191MzIgYXJyYXlfbnVtYmVyOwogICBfX3UzMiByZXNlcnZlZDE7CiAgIF9fdTY0IHJl
c2VydmVkMjsKICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSByYWlkOwogIHN0cnVjdCB7CiAg
IF9fdTggZGV2aWNlOwogICBfX3U4IHJlc2VydmVkMTsKICAgX191MTYgcmVzZXJ2ZWQyOwogICBf
X3UzMiByZXNlcnZlZDM7CiAgIF9fdTY0IHJlc2VydmVkNDsKICB9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKSBzYXRhOwogIHN0cnVjdCB7CiAgIF9fdTY0IHJlc2VydmVkMTsKICAgX191NjQgcmVz
ZXJ2ZWQyOwogIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIHVua25vd247CiB9IGRldmljZV9w
YXRoOwogX191OCByZXNlcnZlZDQ7CiBfX3U4IGNoZWNrc3VtOwp9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKTsKCnN0cnVjdCBlZGRfaW5mbyB7CiBfX3U4IGRldmljZTsKIF9fdTggdmVyc2lvbjsK
IF9fdTE2IGludGVyZmFjZV9zdXBwb3J0OwogX191MTYgbGVnYWN5X21heF9jeWxpbmRlcjsKIF9f
dTggbGVnYWN5X21heF9oZWFkOwogX191OCBsZWdhY3lfc2VjdG9yc19wZXJfdHJhY2s7CiBzdHJ1
Y3QgZWRkX2RldmljZV9wYXJhbXMgcGFyYW1zOwp9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsK
CnN0cnVjdCBlZGQgewogdW5zaWduZWQgaW50IG1icl9zaWduYXR1cmVbMTZdOwogc3RydWN0IGVk
ZF9pbmZvIGVkZF9pbmZvWzZdOwogdW5zaWduZWQgY2hhciBtYnJfc2lnbmF0dXJlX25yOwogdW5z
aWduZWQgY2hhciBlZGRfaW5mb19ucjsKfTsKIyAyNSAiLi9pbmNsdWRlL2xpbnV4L2VkZC5oIiAy
CgoKZXh0ZXJuIHN0cnVjdCBlZGQgZWRkOwojIDQ2ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9h
c20vYm9vdHBhcmFtLmgiIDIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lzdC5oIiAxCiMg
OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pc3QuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUv
dWFwaS9hc20vaXN0LmgiIDEKIyAyMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2lzdC5o
IgpzdHJ1Y3QgaXN0X2luZm8gewogX191MzIgc2lnbmF0dXJlOwogX191MzIgY29tbWFuZDsKIF9f
dTMyIGV2ZW50OwogX191MzIgcGVyZl9sZXZlbDsKfTsKIyAxMCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9pc3QuaCIgMgoKCmV4dGVybiBzdHJ1Y3QgaXN0X2luZm8gaXN0X2luZm87CiMgNDcgIi4v
YXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIgMgojIDEgIi4vaW5jbHVkZS92
aWRlby9lZGlkLmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvdmlkZW8vZWRpZC5oIiAxCgoK
CgpzdHJ1Y3QgZWRpZF9pbmZvIHsKIHVuc2lnbmVkIGNoYXIgZHVtbXlbMTI4XTsKfTsKIyA2ICIu
L2luY2x1ZGUvdmlkZW8vZWRpZC5oIiAyCgoKZXh0ZXJuIHN0cnVjdCBlZGlkX2luZm8gZWRpZF9p
bmZvOwojIDQ4ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYm9vdHBhcmFtLmgiIDIKCgpz
dHJ1Y3Qgc2V0dXBfZGF0YSB7CiBfX3U2NCBuZXh0OwogX191MzIgdHlwZTsKIF9fdTMyIGxlbjsK
IF9fdTggZGF0YVswXTsKfTsKCgpzdHJ1Y3Qgc2V0dXBfaW5kaXJlY3QgewogX191MzIgdHlwZTsK
IF9fdTMyIHJlc2VydmVkOwogX191NjQgbGVuOwogX191NjQgYWRkcjsKfTsKCnN0cnVjdCBzZXR1
cF9oZWFkZXIgewogX191OCBzZXR1cF9zZWN0czsKIF9fdTE2IHJvb3RfZmxhZ3M7CiBfX3UzMiBz
eXNzaXplOwogX191MTYgcmFtX3NpemU7CiBfX3UxNiB2aWRfbW9kZTsKIF9fdTE2IHJvb3RfZGV2
OwogX191MTYgYm9vdF9mbGFnOwogX191MTYganVtcDsKIF9fdTMyIGhlYWRlcjsKIF9fdTE2IHZl
cnNpb247CiBfX3UzMiByZWFsbW9kZV9zd3RjaDsKIF9fdTE2IHN0YXJ0X3N5c19zZWc7CiBfX3Ux
NiBrZXJuZWxfdmVyc2lvbjsKIF9fdTggdHlwZV9vZl9sb2FkZXI7CiBfX3U4IGxvYWRmbGFnczsK
IF9fdTE2IHNldHVwX21vdmVfc2l6ZTsKIF9fdTMyIGNvZGUzMl9zdGFydDsKIF9fdTMyIHJhbWRp
c2tfaW1hZ2U7CiBfX3UzMiByYW1kaXNrX3NpemU7CiBfX3UzMiBib290c2VjdF9rbHVkZ2U7CiBf
X3UxNiBoZWFwX2VuZF9wdHI7CiBfX3U4IGV4dF9sb2FkZXJfdmVyOwogX191OCBleHRfbG9hZGVy
X3R5cGU7CiBfX3UzMiBjbWRfbGluZV9wdHI7CiBfX3UzMiBpbml0cmRfYWRkcl9tYXg7CiBfX3Uz
MiBrZXJuZWxfYWxpZ25tZW50OwogX191OCByZWxvY2F0YWJsZV9rZXJuZWw7CiBfX3U4IG1pbl9h
bGlnbm1lbnQ7CiBfX3UxNiB4bG9hZGZsYWdzOwogX191MzIgY21kbGluZV9zaXplOwogX191MzIg
aGFyZHdhcmVfc3ViYXJjaDsKIF9fdTY0IGhhcmR3YXJlX3N1YmFyY2hfZGF0YTsKIF9fdTMyIHBh
eWxvYWRfb2Zmc2V0OwogX191MzIgcGF5bG9hZF9sZW5ndGg7CiBfX3U2NCBzZXR1cF9kYXRhOwog
X191NjQgcHJlZl9hZGRyZXNzOwogX191MzIgaW5pdF9zaXplOwogX191MzIgaGFuZG92ZXJfb2Zm
c2V0OwogX191MzIga2VybmVsX2luZm9fb2Zmc2V0Owp9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkp
OwoKc3RydWN0IHN5c19kZXNjX3RhYmxlIHsKIF9fdTE2IGxlbmd0aDsKIF9fdTggdGFibGVbMTRd
Owp9OwoKCnN0cnVjdCBvbHBjX29md19oZWFkZXIgewogX191MzIgb2Z3X21hZ2ljOwogX191MzIg
b2Z3X3ZlcnNpb247CiBfX3UzMiBjaWZfaGFuZGxlcjsKIF9fdTMyIGlycV9kZXNjX3RhYmxlOwp9
IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoKc3RydWN0IGVmaV9pbmZvIHsKIF9fdTMyIGVmaV9s
b2FkZXJfc2lnbmF0dXJlOwogX191MzIgZWZpX3N5c3RhYjsKIF9fdTMyIGVmaV9tZW1kZXNjX3Np
emU7CiBfX3UzMiBlZmlfbWVtZGVzY192ZXJzaW9uOwogX191MzIgZWZpX21lbW1hcDsKIF9fdTMy
IGVmaV9tZW1tYXBfc2l6ZTsKIF9fdTMyIGVmaV9zeXN0YWJfaGk7CiBfX3UzMiBlZmlfbWVtbWFw
X2hpOwp9OwojIDE0MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJhbS5oIgpz
dHJ1Y3QgYm9vdF9lODIwX2VudHJ5IHsKIF9fdTY0IGFkZHI7CiBfX3U2NCBzaXplOwogX191MzIg
dHlwZTsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIyAxNTUgIi4vYXJjaC94ODYvaW5jbHVk
ZS91YXBpL2FzbS9ib290cGFyYW0uaCIKc3RydWN0IGphaWxob3VzZV9zZXR1cF9kYXRhIHsKIHN0
cnVjdCB7CiAgX191MTYgdmVyc2lvbjsKICBfX3UxNiBjb21wYXRpYmxlX3ZlcnNpb247CiB9IF9f
YXR0cmlidXRlX18oKHBhY2tlZCkpIGhkcjsKIHN0cnVjdCB7CiAgX191MTYgcG1fdGltZXJfYWRk
cmVzczsKICBfX3UxNiBudW1fY3B1czsKICBfX3U2NCBwY2lfbW1jb25maWdfYmFzZTsKICBfX3Uz
MiB0c2Nfa2h6OwogIF9fdTMyIGFwaWNfa2h6OwogIF9fdTggc3RhbmRhcmRfaW9hcGljOwogIF9f
dTggY3B1X2lkc1syNTVdOwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSB2MTsKIHN0cnVjdCB7
CiAgX191MzIgZmxhZ3M7CiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHYyOwp9IF9fYXR0cmli
dXRlX18oKHBhY2tlZCkpOwoKCnN0cnVjdCBib290X3BhcmFtcyB7CiBzdHJ1Y3Qgc2NyZWVuX2lu
Zm8gc2NyZWVuX2luZm87CiBzdHJ1Y3QgYXBtX2Jpb3NfaW5mbyBhcG1fYmlvc19pbmZvOwogX191
OCBfcGFkMls0XTsKIF9fdTY0IHRib290X2FkZHI7CiBzdHJ1Y3QgaXN0X2luZm8gaXN0X2luZm87
CiBfX3U2NCBhY3BpX3JzZHBfYWRkcjsKIF9fdTggX3BhZDNbOF07CiBfX3U4IGhkMF9pbmZvWzE2
XTsKIF9fdTggaGQxX2luZm9bMTZdOwogc3RydWN0IHN5c19kZXNjX3RhYmxlIHN5c19kZXNjX3Rh
YmxlOwogc3RydWN0IG9scGNfb2Z3X2hlYWRlciBvbHBjX29md19oZWFkZXI7CiBfX3UzMiBleHRf
cmFtZGlza19pbWFnZTsKIF9fdTMyIGV4dF9yYW1kaXNrX3NpemU7CiBfX3UzMiBleHRfY21kX2xp
bmVfcHRyOwogX191OCBfcGFkNFsxMTZdOwogc3RydWN0IGVkaWRfaW5mbyBlZGlkX2luZm87CiBz
dHJ1Y3QgZWZpX2luZm8gZWZpX2luZm87CiBfX3UzMiBhbHRfbWVtX2s7CiBfX3UzMiBzY3JhdGNo
OwogX191OCBlODIwX2VudHJpZXM7CiBfX3U4IGVkZGJ1Zl9lbnRyaWVzOwogX191OCBlZGRfbWJy
X3NpZ19idWZfZW50cmllczsKIF9fdTgga2JkX3N0YXR1czsKIF9fdTggc2VjdXJlX2Jvb3Q7CiBf
X3U4IF9wYWQ1WzJdOwojIDIxMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJh
bS5oIgogX191OCBzZW50aW5lbDsKIF9fdTggX3BhZDZbMV07CiBzdHJ1Y3Qgc2V0dXBfaGVhZGVy
IGhkcjsKIF9fdTggX3BhZDdbMHgyOTAtMHgxZjEtc2l6ZW9mKHN0cnVjdCBzZXR1cF9oZWFkZXIp
XTsKIF9fdTMyIGVkZF9tYnJfc2lnX2J1ZmZlclsxNl07CiBzdHJ1Y3QgYm9vdF9lODIwX2VudHJ5
IGU4MjBfdGFibGVbMTI4XTsKIF9fdTggX3BhZDhbNDhdOwogc3RydWN0IGVkZF9pbmZvIGVkZGJ1
Zls2XTsKIF9fdTggX3BhZDlbMjc2XTsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIyAyNjIg
Ii4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIKZW51bSB4ODZfaGFyZHdh
cmVfc3ViYXJjaCB7CiBYODZfU1VCQVJDSF9QQyA9IDAsCiBYODZfU1VCQVJDSF9MR1VFU1QsCiBY
ODZfU1VCQVJDSF9YRU4sCiBYODZfU1VCQVJDSF9JTlRFTF9NSUQsCiBYODZfU1VCQVJDSF9DRTQx
MDAsCiBYODZfTlJfU1VCQVJDSFMsCn07CiMgMTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbWVt
X2VuY3J5cHQuaCIgMgojIDU5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0Lmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmli
dXRlX18oKF9fY29sZF9fKSkgc21lX2Vhcmx5X2VuY3J5cHQocmVzb3VyY2Vfc2l6ZV90IHBhZGRy
LAogICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpIHsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYXR0cmlidXRlX18oKF9f
c2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHNtZV9l
YXJseV9kZWNyeXB0KHJlc291cmNlX3NpemVfdCBwYWRkciwKICAgICAgICAgdW5zaWduZWQgbG9u
ZyBzaXplKSB7IH0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQi
KSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgc21lX21hcF9ib290ZGF0YShjaGFyICpyZWFs
X21vZGVfZGF0YSkgeyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRl
eHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgc21lX3VubWFwX2Jvb3RkYXRhKGNoYXIg
KnJlYWxfbW9kZV9kYXRhKSB7IH0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5p
bml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgc21lX2Vhcmx5X2luaXQodm9p
ZCkgeyB9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHNtZV9lbmNyeXB0X2tlcm5lbChzdHJ1Y3QgYm9vdF9w
YXJhbXMgKmJwKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4
dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBzbWVfZW5hYmxlKHN0cnVjdCBib290X3Bh
cmFtcyAqYnApIHsgfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBzbWVfYWN0aXZlKHZvaWQpIHsgcmV0dXJuIGZhbHNlOyB9CnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgc2V2X2FjdGl2ZSh2b2lkKSB7IHJldHVybiBmYWxzZTsgfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18o
KF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpCmVh
cmx5X3NldF9tZW1vcnlfZGVjcnlwdGVkKHVuc2lnbmVkIGxvbmcgdmFkZHIsIHVuc2lnbmVkIGxv
bmcgc2l6ZSkgeyByZXR1cm4gMDsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5p
bml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkKZWFybHlfc2V0X21lbW9yeV9l
bmNyeXB0ZWQodW5zaWduZWQgbG9uZyB2YWRkciwgdW5zaWduZWQgbG9uZyBzaXplKSB7IHJldHVy
biAwOyB9CiMgOTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbWVtX2VuY3J5cHQuaCIKZXh0ZXJu
IGNoYXIgX19zdGFydF9ic3NfZGVjcnlwdGVkW10sIF9fZW5kX2Jzc19kZWNyeXB0ZWRbXSwgX19z
dGFydF9ic3NfZGVjcnlwdGVkX3VudXNlZFtdOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBtZW1fZW5jcnlwdF9hY3RpdmUodm9p
ZCkKewogcmV0dXJuIDBVTEw7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBzbWVfZ2V0X21lX21hc2sodm9pZCkKewogcmV0dXJu
IDBVTEw7Cn0KIyAxOCAiLi9pbmNsdWRlL2xpbnV4L21lbV9lbmNyeXB0LmgiIDIKIyA4ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfdHlwZXMuaCIgMgojIDQ4ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3BhZ2VfdHlwZXMuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjRf
dHlwZXMuaCIgMQoKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rYXNsci5oIiAxCgoK
Cgp1bnNpZ25lZCBsb25nIGthc2xyX2dldF9yYW5kb21fbG9uZyhjb25zdCBjaGFyICpwdXJwb3Nl
KTsKCgp2b2lkIGtlcm5lbF9yYW5kb21pemVfbWVtb3J5KHZvaWQpOwojIDcgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcGFnZV82NF90eXBlcy5oIiAyCiMgNDkgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcGFnZV90eXBlcy5oIiAyCiMgNjQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZV90eXBl
cy5oIgpleHRlcm4gaW50IGRldm1lbV9pc19hbGxvd2VkKHVuc2lnbmVkIGxvbmcgcGFnZW5yKTsK
CmV4dGVybiB1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuX21hcHBlZDsKZXh0ZXJuIHVuc2lnbmVk
IGxvbmcgbWF4X3Bmbl9tYXBwZWQ7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaHlzX2FkZHJfdCBnZXRfbWF4X21hcHBlZCh2b2lkKQp7
CiByZXR1cm4gKHBoeXNfYWRkcl90KW1heF9wZm5fbWFwcGVkIDw8IDEyOwp9Cgpib29sIHBmbl9y
YW5nZV9pc19tYXBwZWQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5k
X3Bmbik7CgpleHRlcm4gdW5zaWduZWQgbG9uZyBpbml0X21lbW9yeV9tYXBwaW5nKHVuc2lnbmVk
IGxvbmcgc3RhcnQsCiAgICAgIHVuc2lnbmVkIGxvbmcgZW5kKTsKCmV4dGVybiB2b2lkIGluaXRt
ZW1faW5pdCh2b2lkKTsKIyA3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCiMg
MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIiAxCgoKCgoKIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvdWFwaS9hc20vcHRyYWNlLWFiaS5oIiAxCiMgNyAiLi9hcmNoL3g4Ni9p
bmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIiAyCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3ItZmxhZ3MuaCIgMQoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20v
cHJvY2Vzc29yLWZsYWdzLmgiIDEKIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nv
ci1mbGFncy5oIiAyCiMgOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIiAy
CiMgOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIgMgojIDU2ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgpzdHJ1Y3QgcHRfcmVncyB7CgoKCgogdW5zaWduZWQgbG9u
ZyByMTU7CiB1bnNpZ25lZCBsb25nIHIxNDsKIHVuc2lnbmVkIGxvbmcgcjEzOwogdW5zaWduZWQg
bG9uZyByMTI7CiB1bnNpZ25lZCBsb25nIGJwOwogdW5zaWduZWQgbG9uZyBieDsKCiB1bnNpZ25l
ZCBsb25nIHIxMTsKIHVuc2lnbmVkIGxvbmcgcjEwOwogdW5zaWduZWQgbG9uZyByOTsKIHVuc2ln
bmVkIGxvbmcgcjg7CiB1bnNpZ25lZCBsb25nIGF4OwogdW5zaWduZWQgbG9uZyBjeDsKIHVuc2ln
bmVkIGxvbmcgZHg7CiB1bnNpZ25lZCBsb25nIHNpOwogdW5zaWduZWQgbG9uZyBkaTsKCgoKCiB1
bnNpZ25lZCBsb25nIG9yaWdfYXg7CgogdW5zaWduZWQgbG9uZyBpcDsKIHVuc2lnbmVkIGxvbmcg
Y3M7CiB1bnNpZ25lZCBsb25nIGZsYWdzOwogdW5zaWduZWQgbG9uZyBzcDsKIHVuc2lnbmVkIGxv
bmcgc3M7Cgp9OwoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVz
LmgiIDEKIyA0MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgojIDEg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGVzY19kZWZzLmgiIDEKIyAxNiAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9kZXNjX2RlZnMuaCIKc3RydWN0IGRlc2Nfc3RydWN0IHsKIHUxNiBsaW1pdDA7
CiB1MTYgYmFzZTA7CiB1MTYgYmFzZTE6IDgsIHR5cGU6IDQsIHM6IDEsIGRwbDogMiwgcDogMTsK
IHUxNiBsaW1pdDE6IDQsIGF2bDogMSwgbDogMSwgZDogMSwgZzogMSwgYmFzZTI6IDg7Cn0gX19h
dHRyaWJ1dGVfXygocGFja2VkKSk7CiMgNDAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGVzY19k
ZWZzLmgiCmVudW0gewogR0FURV9JTlRFUlJVUFQgPSAweEUsCiBHQVRFX1RSQVAgPSAweEYsCiBH
QVRFX0NBTEwgPSAweEMsCiBHQVRFX1RBU0sgPSAweDUsCn07CgplbnVtIHsKIERFU0NfVFNTID0g
MHg5LAogREVTQ19MRFQgPSAweDIsCiBERVNDVFlQRV9TID0gMHgxMCwKfTsKCgpzdHJ1Y3QgbGR0
dHNzX2Rlc2MgewogdTE2IGxpbWl0MDsKIHUxNiBiYXNlMDsKCiB1MTYgYmFzZTEgOiA4LCB0eXBl
IDogNSwgZHBsIDogMiwgcCA6IDE7CiB1MTYgbGltaXQxIDogNCwgemVybzAgOiAzLCBnIDogMSwg
YmFzZTIgOiA4OwoKIHUzMiBiYXNlMzsKIHUzMiB6ZXJvMTsKCn0gX19hdHRyaWJ1dGVfXygocGFj
a2VkKSk7Cgp0eXBlZGVmIHN0cnVjdCBsZHR0c3NfZGVzYyBsZHRfZGVzYzsKdHlwZWRlZiBzdHJ1
Y3QgbGR0dHNzX2Rlc2MgdHNzX2Rlc2M7CgpzdHJ1Y3QgaWR0X2JpdHMgewogdTE2IGlzdCA6IDMs
CiAgIHplcm8gOiA1LAogICB0eXBlIDogNSwKICAgZHBsIDogMiwKICAgcCA6IDE7Cn0gX19hdHRy
aWJ1dGVfXygocGFja2VkKSk7CgpzdHJ1Y3QgZ2F0ZV9zdHJ1Y3QgewogdTE2IG9mZnNldF9sb3c7
CiB1MTYgc2VnbWVudDsKIHN0cnVjdCBpZHRfYml0cyBiaXRzOwogdTE2IG9mZnNldF9taWRkbGU7
CgogdTMyIG9mZnNldF9oaWdoOwogdTMyIHJlc2VydmVkOwoKfSBfX2F0dHJpYnV0ZV9fKChwYWNr
ZWQpKTsKCnR5cGVkZWYgc3RydWN0IGdhdGVfc3RydWN0IGdhdGVfZGVzYzsKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxv
bmcgZ2F0ZV9vZmZzZXQoY29uc3QgZ2F0ZV9kZXNjICpnKQp7CgogcmV0dXJuIGctPm9mZnNldF9s
b3cgfCAoKHVuc2lnbmVkIGxvbmcpZy0+b2Zmc2V0X21pZGRsZSA8PCAxNikgfAogICgodW5zaWdu
ZWQgbG9uZykgZy0+b2Zmc2V0X2hpZ2ggPDwgMzIpOwoKCgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGdhdGVf
c2VnbWVudChjb25zdCBnYXRlX2Rlc2MgKmcpCnsKIHJldHVybiBnLT5zZWdtZW50Owp9CgpzdHJ1
Y3QgZGVzY19wdHIgewogdW5zaWduZWQgc2hvcnQgc2l6ZTsKIHVuc2lnbmVkIGxvbmcgYWRkcmVz
czsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSA7CiMgNDQgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcGFyYXZpcnRfdHlwZXMuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20va21hcF90
eXBlcy5oIiAxCiMgOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rbWFwX3R5cGVzLmgiCiMgMSAi
Li9pbmNsdWRlL2FzbS1nZW5lcmljL2ttYXBfdHlwZXMuaCIgMQojIDEwICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2ttYXBfdHlwZXMuaCIgMgojIDQ1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bh
cmF2aXJ0X3R5cGVzLmgiIDIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlw
ZXMuaCIgMQojIDEzMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlX3R5cGVzLmgiCmVu
dW0gcGFnZV9jYWNoZV9tb2RlIHsKIF9QQUdFX0NBQ0hFX01PREVfV0IgPSAwLAogX1BBR0VfQ0FD
SEVfTU9ERV9XQyA9IDEsCiBfUEFHRV9DQUNIRV9NT0RFX1VDX01JTlVTID0gMiwKIF9QQUdFX0NB
Q0hFX01PREVfVUMgPSAzLAogX1BBR0VfQ0FDSEVfTU9ERV9XVCA9IDQsCiBfUEFHRV9DQUNIRV9N
T0RFX1dQID0gNSwKCiBfUEFHRV9DQUNIRV9NT0RFX05VTSA9IDgKfTsKIyAyNTcgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcGd0YWJsZV82NF90eXBlcy5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c3BhcnNlbWVtLmgiIDEKIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjRfdHlw
ZXMuaCIgMgojIDE0ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjRfdHlwZXMuaCIK
dHlwZWRlZiB1bnNpZ25lZCBsb25nIHB0ZXZhbF90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgcG1k
dmFsX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBwdWR2YWxfdDsKdHlwZWRlZiB1bnNpZ25lZCBs
b25nIHA0ZHZhbF90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgcGdkdmFsX3Q7CnR5cGVkZWYgdW5z
aWduZWQgbG9uZyBwZ3Byb3R2YWxfdDsKCnR5cGVkZWYgc3RydWN0IHsgcHRldmFsX3QgcHRlOyB9
IHB0ZV90OwojIDQzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjRfdHlwZXMuaCIK
ZXh0ZXJuIHVuc2lnbmVkIGludCBwZ2Rpcl9zaGlmdDsKZXh0ZXJuIHVuc2lnbmVkIGludCBwdHJz
X3Blcl9wNGQ7CiMgMjU4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlwZXMuaCIg
MgojIDI3MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlX3R5cGVzLmgiCnR5cGVkZWYg
c3RydWN0IHBncHJvdCB7IHBncHJvdHZhbF90IHBncHJvdDsgfSBwZ3Byb3RfdDsKCnR5cGVkZWYg
c3RydWN0IHsgcGdkdmFsX3QgcGdkOyB9IHBnZF90OwojIDMwMCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9wZ3RhYmxlX3R5cGVzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHBnZF90IG5hdGl2ZV9tYWtlX3BnZChwZ2R2YWxfdCB2YWwp
CnsKIHJldHVybiAocGdkX3QpIHsgdmFsICYgKH4wVUxMKSB9Owp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwZ2R2YWxfdCBuYXRpdmVf
cGdkX3ZhbChwZ2RfdCBwZ2QpCnsKIHJldHVybiBwZ2QucGdkICYgKH4wVUxMKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGdkdmFs
X3QgcGdkX2ZsYWdzKHBnZF90IHBnZCkKewogcmV0dXJuIG5hdGl2ZV9wZ2RfdmFsKHBnZCkgJiAo
figocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8IDEyKS0xKSkpICYgKChwaHlz
X2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSkpOwp9CiMgMzI4ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3BndGFibGVfdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJs
ZS1ub3A0ZC5oIiAxCiMgOSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUtbm9wNGQuaCIK
dHlwZWRlZiBzdHJ1Y3QgeyBwZ2RfdCBwZ2Q7IH0gcDRkX3Q7CiMgMjIgIi4vaW5jbHVkZS9hc20t
Z2VuZXJpYy9wZ3RhYmxlLW5vcDRkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwZ2Rfbm9uZShwZ2RfdCBwZ2QpIHsgcmV0dXJu
IDA7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IHBnZF9iYWQocGdkX3QgcGdkKSB7IHJldHVybiAwOyB9CnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwZ2RfcHJlc2Vu
dChwZ2RfdCBwZ2QpIHsgcmV0dXJuIDE7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZ2RfY2xlYXIocGdkX3QgKnBnZCkgeyB9
CiMgMzYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcDRkLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0ZF90ICpwNGRf
b2Zmc2V0KHBnZF90ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKewogcmV0dXJuIChwNGRf
dCAqKXBnZDsKfQojIDMyOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlX3R5cGVzLmgi
IDIKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHA0ZF90IG5hdGl2ZV9tYWtlX3A0ZChwdWR2YWxfdCB2YWwpCnsKIHJldHVybiAocDRkX3Qp
IHsgLnBnZCA9IG5hdGl2ZV9tYWtlX3BnZCgocGdkdmFsX3QpdmFsKSB9Owp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwNGR2YWxfdCBu
YXRpdmVfcDRkX3ZhbChwNGRfdCBwNGQpCnsKIHJldHVybiBuYXRpdmVfcGdkX3ZhbChwNGQucGdk
KTsKfQoKCgp0eXBlZGVmIHN0cnVjdCB7IHB1ZHZhbF90IHB1ZDsgfSBwdWRfdDsKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHB1ZF90IG5h
dGl2ZV9tYWtlX3B1ZChwbWR2YWxfdCB2YWwpCnsKIHJldHVybiAocHVkX3QpIHsgdmFsIH07Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHB1ZHZhbF90IG5hdGl2ZV9wdWRfdmFsKHB1ZF90IHB1ZCkKewogcmV0dXJuIHB1ZC5wdWQ7Cn0K
IyAzNjggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5oIgp0eXBlZGVmIHN0
cnVjdCB7IHBtZHZhbF90IHBtZDsgfSBwbWRfdDsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBtZF90IG5hdGl2ZV9tYWtlX3BtZChwbWR2
YWxfdCB2YWwpCnsKIHJldHVybiAocG1kX3QpIHsgdmFsIH07Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBtZHZhbF90IG5hdGl2ZV9w
bWRfdmFsKHBtZF90IHBtZCkKewogcmV0dXJuIHBtZC5wbWQ7Cn0KIyAzOTMgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwNGR2YWxfdCBwNGRfcGZuX21hc2socDRkX3Qg
cDRkKQp7CgogcmV0dXJuICgocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8IDEy
KS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0ZHZhbF90
IHA0ZF9mbGFnc19tYXNrKHA0ZF90IHA0ZCkKewogcmV0dXJuIH5wNGRfcGZuX21hc2socDRkKTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgcDRkdmFsX3QgcDRkX2ZsYWdzKHA0ZF90IHA0ZCkKewogcmV0dXJuIG5hdGl2ZV9wNGRfdmFs
KHA0ZCkgJiBwNGRfZmxhZ3NfbWFzayhwNGQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwdWR2YWxfdCBwdWRfcGZuX21hc2socHVk
X3QgcHVkKQp7CiBpZiAobmF0aXZlX3B1ZF92YWwocHVkKSAmICgoKHB0ZXZhbF90KSgxKSkgPDwg
NykpCiAgcmV0dXJuICgoKHNpZ25lZCBsb25nKSh+KCgoMVVMKSA8PCAzMCktMSkpKSAmICgocGh5
c19hZGRyX3QpKCgxVUxMIDw8IDUyKSAtIDEpKSk7CiBlbHNlCiAgcmV0dXJuICgocHRldmFsX3Qp
KCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8IDEyKS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFV
TEwgPDwgNTIpIC0gMSkpKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHB1ZHZhbF90IHB1ZF9mbGFnc19tYXNrKHB1ZF90IHB1ZCkK
ewogcmV0dXJuIH5wdWRfcGZuX21hc2socHVkKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHVkdmFsX3QgcHVkX2ZsYWdzKHB1ZF90
IHB1ZCkKewogcmV0dXJuIG5hdGl2ZV9wdWRfdmFsKHB1ZCkgJiBwdWRfZmxhZ3NfbWFzayhwdWQp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBwbWR2YWxfdCBwbWRfcGZuX21hc2socG1kX3QgcG1kKQp7CiBpZiAobmF0aXZlX3BtZF92
YWwocG1kKSAmICgoKHB0ZXZhbF90KSgxKSkgPDwgNykpCiAgcmV0dXJuICgoKHNpZ25lZCBsb25n
KSh+KCgoMVVMKSA8PCAyMSktMSkpKSAmICgocGh5c19hZGRyX3QpKCgxVUxMIDw8IDUyKSAtIDEp
KSk7CiBlbHNlCiAgcmV0dXJuICgocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8
IDEyKS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBtZHZh
bF90IHBtZF9mbGFnc19tYXNrKHBtZF90IHBtZCkKewogcmV0dXJuIH5wbWRfcGZuX21hc2socG1k
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgcG1kdmFsX3QgcG1kX2ZsYWdzKHBtZF90IHBtZCkKewogcmV0dXJuIG5hdGl2ZV9wbWRf
dmFsKHBtZCkgJiBwbWRfZmxhZ3NfbWFzayhwbWQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwdGVfdCBuYXRpdmVfbWFrZV9wdGUo
cHRldmFsX3QgdmFsKQp7CiByZXR1cm4gKHB0ZV90KSB7IC5wdGUgPSB2YWwgfTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHRldmFs
X3QgbmF0aXZlX3B0ZV92YWwocHRlX3QgcHRlKQp7CiByZXR1cm4gcHRlLnB0ZTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHRldmFs
X3QgcHRlX2ZsYWdzKHB0ZV90IHB0ZSkKewogcmV0dXJuIG5hdGl2ZV9wdGVfdmFsKHB0ZSkgJiAo
figocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8IDEyKS0xKSkpICYgKChwaHlz
X2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSkpOwp9CgpleHRlcm4gdWludDE2X3QgX19jYWNo
ZW1vZGUycHRlX3RibFtfUEFHRV9DQUNIRV9NT0RFX05VTV07CmV4dGVybiB1aW50OF90IF9fcHRl
MmNhY2hlbW9kZV90YmxbOF07CiMgNDcyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVf
dHlwZXMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBjYWNoZW1vZGUycHJvdHZhbChlbnVtIHBhZ2VfY2FjaGVf
bW9kZSBwY20pCnsKIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHBjbSA9PSAwKSwgMSkpCiAgcmV0
dXJuIDA7CiByZXR1cm4gX19jYWNoZW1vZGUycHRlX3RibFtwY21dOwp9CnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBncHJvdF90IGNhY2hl
bW9kZTJwZ3Byb3QoZW51bSBwYWdlX2NhY2hlX21vZGUgcGNtKQp7CiByZXR1cm4gKChwZ3Byb3Rf
dCkgeyAoY2FjaGVtb2RlMnByb3R2YWwocGNtKSkgfSApOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGVudW0gcGFnZV9jYWNoZV9tb2Rl
IHBncHJvdDJjYWNoZW1vZGUocGdwcm90X3QgcGdwcm90KQp7CiB1bnNpZ25lZCBsb25nIG1hc2tl
ZDsKCiBtYXNrZWQgPSAoKHBncHJvdCkucGdwcm90KSAmICgoKChwdGV2YWxfdCkoMSkpIDw8IDMp
IHwgKCgocHRldmFsX3QpKDEpKSA8PCA0KSB8ICgoKHB0ZXZhbF90KSgxKSkgPDwgNykpOwogaWYg
KF9fYnVpbHRpbl9leHBlY3QoISEobWFza2VkID09IDApLCAxKSkKICByZXR1cm4gMDsKIHJldHVy
biBfX3B0ZTJjYWNoZW1vZGVfdGJsWygoKChtYXNrZWQpID4+ICg3IC0gMikpICYgNCkgfCAoKCht
YXNrZWQpID4+ICg0IC0gMSkpICYgMikgfCAoKChtYXNrZWQpID4+IDMpICYgMSkpXTsKfQpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwZ3By
b3RfdCBwZ3Byb3RfNGtfMl9sYXJnZShwZ3Byb3RfdCBwZ3Byb3QpCnsKIHBncHJvdHZhbF90IHZh
bCA9ICgocGdwcm90KS5wZ3Byb3QpOwogcGdwcm90X3QgbmV3OwoKICgobmV3KS5wZ3Byb3QpID0g
KHZhbCAmIH4oKCgocHRldmFsX3QpKDEpKSA8PCA3KSB8ICgoKHB0ZXZhbF90KSgxKSkgPDwgMTIp
KSkgfAogICgodmFsICYgKCgocHRldmFsX3QpKDEpKSA8PCA3KSkgPDwgKDEyIC0gNykpOwogcmV0
dXJuIG5ldzsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBwZ3Byb3RfdCBwZ3Byb3RfbGFyZ2VfMl80ayhwZ3Byb3RfdCBwZ3Byb3QpCnsK
IHBncHJvdHZhbF90IHZhbCA9ICgocGdwcm90KS5wZ3Byb3QpOwogcGdwcm90X3QgbmV3OwoKICgo
bmV3KS5wZ3Byb3QpID0gKHZhbCAmIH4oKCgocHRldmFsX3QpKDEpKSA8PCA3KSB8ICgoKHB0ZXZh
bF90KSgxKSkgPDwgMTIpKSkgfAogICAgICgodmFsICYgKCgocHRldmFsX3QpKDEpKSA8PCAxMikp
ID4+CiAgICAgICgxMiAtIDcpKTsKIHJldHVybiBuZXc7Cn0KCgp0eXBlZGVmIHN0cnVjdCBwYWdl
ICpwZ3RhYmxlX3Q7CgpleHRlcm4gcHRldmFsX3QgX19zdXBwb3J0ZWRfcHRlX21hc2s7CmV4dGVy
biBwdGV2YWxfdCBfX2RlZmF1bHRfa2VybmVsX3B0ZV9tYXNrOwpleHRlcm4gdm9pZCBzZXRfbngo
dm9pZCk7CmV4dGVybiBpbnQgbnhfZW5hYmxlZDsKCgpleHRlcm4gcGdwcm90X3QgcGdwcm90X3dy
aXRlY29tYmluZShwZ3Byb3RfdCBwcm90KTsKCgpleHRlcm4gcGdwcm90X3QgcGdwcm90X3dyaXRl
dGhyb3VnaChwZ3Byb3RfdCBwcm90KTsKCgoKCgpzdHJ1Y3QgZmlsZTsKcGdwcm90X3QgcGh5c19t
ZW1fYWNjZXNzX3Byb3Qoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxvbmcgcGZuLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHBncHJvdF90IHZt
YV9wcm90KTsKCgp2b2lkIHNldF9wdGVfdmFkZHIodW5zaWduZWQgbG9uZyB2YWRkciwgcHRlX3Qg
cHRlKTsKCgoKCgoKCnN0cnVjdCBzZXFfZmlsZTsKZXh0ZXJuIHZvaWQgYXJjaF9yZXBvcnRfbWVt
aW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOwoKZW51bSBwZ19sZXZlbCB7CiBQR19MRVZFTF9OT05F
LAogUEdfTEVWRUxfNEssCiBQR19MRVZFTF8yTSwKIFBHX0xFVkVMXzFHLAogUEdfTEVWRUxfNTEy
RywKIFBHX0xFVkVMX05VTQp9OwoKCmV4dGVybiB2b2lkIHVwZGF0ZV9wYWdlX2NvdW50KGludCBs
ZXZlbCwgdW5zaWduZWQgbG9uZyBwYWdlcyk7CiMgNTY2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3BndGFibGVfdHlwZXMuaCIKZXh0ZXJuIHB0ZV90ICpsb29rdXBfYWRkcmVzcyh1bnNpZ25lZCBs
b25nIGFkZHJlc3MsIHVuc2lnbmVkIGludCAqbGV2ZWwpOwpleHRlcm4gcHRlX3QgKmxvb2t1cF9h
ZGRyZXNzX2luX3BnZChwZ2RfdCAqcGdkLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAgICAgICAg
dW5zaWduZWQgaW50ICpsZXZlbCk7CgpzdHJ1Y3QgbW1fc3RydWN0OwpleHRlcm4gcHRlX3QgKmxv
b2t1cF9hZGRyZXNzX2luX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFk
ZHJlc3MsCiAgICAgICB1bnNpZ25lZCBpbnQgKmxldmVsKTsKZXh0ZXJuIHBtZF90ICpsb29rdXBf
cG1kX2FkZHJlc3ModW5zaWduZWQgbG9uZyBhZGRyZXNzKTsKZXh0ZXJuIHBoeXNfYWRkcl90IHNs
b3dfdmlydF90b19waHlzKHZvaWQgKl9fYWRkcmVzcyk7CmV4dGVybiBpbnQgX19hdHRyaWJ1dGVf
XygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkg
a2VybmVsX21hcF9wYWdlc19pbl9wZ2QocGdkX3QgKnBnZCwgdTY0IHBmbiwKICAgICAgIHVuc2ln
bmVkIGxvbmcgYWRkcmVzcywKICAgICAgIHVuc2lnbmVkIG51bXBhZ2VzLAogICAgICAgdW5zaWdu
ZWQgbG9uZyBwYWdlX2ZsYWdzKTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25f
XygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBrZXJuZWxfdW5tYXBf
cGFnZXNfaW5fcGdkKHBnZF90ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKICAgICAgICAg
dW5zaWduZWQgbG9uZyBudW1wYWdlcyk7CiMgNDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy
YXZpcnRfdHlwZXMuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5j
aC5oIiAxCgoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvc3RhdGljX2tleS5oIiAxCiMgMSAiLi9p
bmNsdWRlL2xpbnV4L2p1bXBfbGFiZWwuaCIgMQojIDc5ICIuL2luY2x1ZGUvbGludXgvanVtcF9s
YWJlbC5oIgpleHRlcm4gYm9vbCBzdGF0aWNfa2V5X2luaXRpYWxpemVkOwoKCgoKCgoKc3RydWN0
IHN0YXRpY19rZXkgewogYXRvbWljX3QgZW5hYmxlZDsKIyAxMDIgIi4vaW5jbHVkZS9saW51eC9q
dW1wX2xhYmVsLmgiCiB1bmlvbiB7CiAgdW5zaWduZWQgbG9uZyB0eXBlOwogIHN0cnVjdCBqdW1w
X2VudHJ5ICplbnRyaWVzOwogIHN0cnVjdCBzdGF0aWNfa2V5X21vZCAqbmV4dDsKIH07Cn07CiMg
MTE3ICIuL2luY2x1ZGUvbGludXgvanVtcF9sYWJlbC5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vanVtcF9sYWJlbC5oIiAxCiMgMjMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vanVtcF9s
YWJlbC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wgYXJjaF9zdGF0
aWNfYnJhbmNoKHN0cnVjdCBzdGF0aWNfa2V5ICprZXksIGJvb2wgYnJhbmNoKQp7CiBkbyB7IGFz
bSBnb3RvKCIxOiIgIi5ieXRlICIgIjB4MGYsMHgxZiwweDQ0LDB4MDAsMCIgIlxuXHQiICIucHVz
aHNlY3Rpb24gX19qdW1wX3RhYmxlLCAgXCJhd1wiIFxuXHQiICIgIiAiLmJhbGlnbiA4IiAiICIg
IlxuXHQiICIubG9uZyAxYiAtIC4sICVsW2xfeWVzXSAtIC4gXG5cdCIgIiAiICIucXVhZCIgIiAi
ICIlYzAgKyAlYzEgLSAuXG5cdCIgIi5wb3BzZWN0aW9uIFxuXHQiIDogOiAiaSIgKGtleSksICJp
IiAoYnJhbmNoKSA6IDogbF95ZXMpOyBhc20gKCIiKTsgfSB3aGlsZSAoMCkKCgoKCgoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CgogcmV0dXJuIGZhbHNlOwpsX3ll
czoKIHJldHVybiB0cnVlOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJv
b2wgYXJjaF9zdGF0aWNfYnJhbmNoX2p1bXAoc3RydWN0IHN0YXRpY19rZXkgKmtleSwgYm9vbCBi
cmFuY2gpCnsKIGRvIHsgYXNtIGdvdG8oIjE6IiAiLmJ5dGUgMHhlOVxuXHQgLmxvbmcgJWxbbF95
ZXNdIC0gMmZcblx0IiAiMjpcblx0IiAiLnB1c2hzZWN0aW9uIF9fanVtcF90YWJsZSwgIFwiYXdc
IiBcblx0IiAiICIgIi5iYWxpZ24gOCIgIiAiICJcblx0IiAiLmxvbmcgMWIgLSAuLCAlbFtsX3ll
c10gLSAuIFxuXHQiICIgIiAiLnF1YWQiICIgIiAiJWMwICsgJWMxIC0gLlxuXHQiICIucG9wc2Vj
dGlvbiBcblx0IiA6IDogImkiIChrZXkpLCAiaSIgKGJyYW5jaCkgOiA6IGxfeWVzKTsgYXNtICgi
Iik7IH0gd2hpbGUgKDApCgoKCgoKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDsKCiByZXR1cm4gZmFsc2U7CmxfeWVzOgogcmV0dXJuIHRydWU7Cn0KIyAxMTggIi4v
aW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmgiIDIKCgoKCnN0cnVjdCBqdW1wX2VudHJ5IHsKIHMz
MiBjb2RlOwogczMyIHRhcmdldDsKIGxvbmcga2V5Owp9OwoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBqdW1wX2Vu
dHJ5X2NvZGUoY29uc3Qgc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5KQp7CiByZXR1cm4gKHVuc2ln
bmVkIGxvbmcpJmVudHJ5LT5jb2RlICsgZW50cnktPmNvZGU7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcganVt
cF9lbnRyeV90YXJnZXQoY29uc3Qgc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5KQp7CiByZXR1cm4g
KHVuc2lnbmVkIGxvbmcpJmVudHJ5LT50YXJnZXQgKyBlbnRyeS0+dGFyZ2V0Owp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qg
c3RhdGljX2tleSAqanVtcF9lbnRyeV9rZXkoY29uc3Qgc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5
KQp7CiBsb25nIG9mZnNldCA9IGVudHJ5LT5rZXkgJiB+M0w7CgogcmV0dXJuIChzdHJ1Y3Qgc3Rh
dGljX2tleSAqKSgodW5zaWduZWQgbG9uZykmZW50cnktPmtleSArIG9mZnNldCk7Cn0KIyAxNjQg
Ii4vaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wganVtcF9lbnRyeV9pc19icmFuY2go
Y29uc3Qgc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5KQp7CiByZXR1cm4gKHVuc2lnbmVkIGxvbmcp
ZW50cnktPmtleSAmIDFVTDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBqdW1wX2VudHJ5X2lzX2luaXQoY29uc3Qgc3RydWN0
IGp1bXBfZW50cnkgKmVudHJ5KQp7CiByZXR1cm4gKHVuc2lnbmVkIGxvbmcpZW50cnktPmtleSAm
IDJVTDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBqdW1wX2VudHJ5X3NldF9pbml0KHN0cnVjdCBqdW1wX2VudHJ5ICplbnRy
eSkKewogZW50cnktPmtleSB8PSAyOwp9CgoKCgoKCmVudW0ganVtcF9sYWJlbF90eXBlIHsKIEpV
TVBfTEFCRUxfTk9QID0gMCwKIEpVTVBfTEFCRUxfSk1QLAp9OwoKc3RydWN0IG1vZHVsZTsKIyAx
OTggIi4vaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgYm9vbCBzdGF0aWNfa2V5X2ZhbHNlKHN0cnVjdCBzdGF0aWNfa2V5ICprZXkp
CnsKIHJldHVybiBhcmNoX3N0YXRpY19icmFuY2goa2V5LCBmYWxzZSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBzdGF0aWNfa2V5X3RydWUoc3RydWN0IHN0YXRp
Y19rZXkgKmtleSkKewogcmV0dXJuICFhcmNoX3N0YXRpY19icmFuY2goa2V5LCB0cnVlKTsKfQoK
ZXh0ZXJuIHN0cnVjdCBqdW1wX2VudHJ5IF9fc3RhcnRfX19qdW1wX3RhYmxlW107CmV4dGVybiBz
dHJ1Y3QganVtcF9lbnRyeSBfX3N0b3BfX19qdW1wX3RhYmxlW107CgpleHRlcm4gdm9pZCBqdW1w
X2xhYmVsX2luaXQodm9pZCk7CmV4dGVybiB2b2lkIGp1bXBfbGFiZWxfbG9jayh2b2lkKTsKZXh0
ZXJuIHZvaWQganVtcF9sYWJlbF91bmxvY2sodm9pZCk7CmV4dGVybiB2b2lkIGFyY2hfanVtcF9s
YWJlbF90cmFuc2Zvcm0oc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5LAogICAgICAgICAgZW51bSBq
dW1wX2xhYmVsX3R5cGUgdHlwZSk7CmV4dGVybiB2b2lkIGFyY2hfanVtcF9sYWJlbF90cmFuc2Zv
cm1fc3RhdGljKHN0cnVjdCBqdW1wX2VudHJ5ICplbnRyeSwKICAgICAgICAgIGVudW0ganVtcF9s
YWJlbF90eXBlIHR5cGUpOwpleHRlcm4gYm9vbCBhcmNoX2p1bXBfbGFiZWxfdHJhbnNmb3JtX3F1
ZXVlKHN0cnVjdCBqdW1wX2VudHJ5ICplbnRyeSwKICAgICAgICAgZW51bSBqdW1wX2xhYmVsX3R5
cGUgdHlwZSk7CmV4dGVybiB2b2lkIGFyY2hfanVtcF9sYWJlbF90cmFuc2Zvcm1fYXBwbHkodm9p
ZCk7CmV4dGVybiBpbnQganVtcF9sYWJlbF90ZXh0X3Jlc2VydmVkKHZvaWQgKnN0YXJ0LCB2b2lk
ICplbmQpOwpleHRlcm4gdm9pZCBzdGF0aWNfa2V5X3Nsb3dfaW5jKHN0cnVjdCBzdGF0aWNfa2V5
ICprZXkpOwpleHRlcm4gdm9pZCBzdGF0aWNfa2V5X3Nsb3dfZGVjKHN0cnVjdCBzdGF0aWNfa2V5
ICprZXkpOwpleHRlcm4gdm9pZCBzdGF0aWNfa2V5X3Nsb3dfaW5jX2NwdXNsb2NrZWQoc3RydWN0
IHN0YXRpY19rZXkgKmtleSk7CmV4dGVybiB2b2lkIHN0YXRpY19rZXlfc2xvd19kZWNfY3B1c2xv
Y2tlZChzdHJ1Y3Qgc3RhdGljX2tleSAqa2V5KTsKZXh0ZXJuIHZvaWQganVtcF9sYWJlbF9hcHBs
eV9ub3BzKHN0cnVjdCBtb2R1bGUgKm1vZCk7CmV4dGVybiBpbnQgc3RhdGljX2tleV9jb3VudChz
dHJ1Y3Qgc3RhdGljX2tleSAqa2V5KTsKZXh0ZXJuIHZvaWQgc3RhdGljX2tleV9lbmFibGUoc3Ry
dWN0IHN0YXRpY19rZXkgKmtleSk7CmV4dGVybiB2b2lkIHN0YXRpY19rZXlfZGlzYWJsZShzdHJ1
Y3Qgc3RhdGljX2tleSAqa2V5KTsKZXh0ZXJuIHZvaWQgc3RhdGljX2tleV9lbmFibGVfY3B1c2xv
Y2tlZChzdHJ1Y3Qgc3RhdGljX2tleSAqa2V5KTsKZXh0ZXJuIHZvaWQgc3RhdGljX2tleV9kaXNh
YmxlX2NwdXNsb2NrZWQoc3RydWN0IHN0YXRpY19rZXkgKmtleSk7CiMgMzQ2ICIuL2luY2x1ZGUv
bGludXgvanVtcF9sYWJlbC5oIgpzdHJ1Y3Qgc3RhdGljX2tleV90cnVlIHsKIHN0cnVjdCBzdGF0
aWNfa2V5IGtleTsKfTsKCnN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlIHsKIHN0cnVjdCBzdGF0aWNf
a2V5IGtleTsKfTsKIyAzODUgIi4vaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmgiCmV4dGVybiBi
b29sIF9fX193cm9uZ19icmFuY2hfZXJyb3Iodm9pZCk7CiMgMiAiLi9pbmNsdWRlL2xpbnV4L3N0
YXRpY19rZXkuaCIgMgojIDcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5jaC5o
IiAyCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLWFzbS5oIiAxCiMg
MTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5jaC5oIiAyCgojIDEgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L2JpdHMuaCIgMQojIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmgiIDIKIyAx
MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMtYnJhbmNoLmgiIDIKIyAyMTMgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5jaC5oIgplbnVtIHNwZWN0cmVfdjJfbWl0aWdh
dGlvbiB7CiBTUEVDVFJFX1YyX05PTkUsCiBTUEVDVFJFX1YyX1JFVFBPTElORV9HRU5FUklDLAog
U1BFQ1RSRV9WMl9SRVRQT0xJTkVfQU1ELAogU1BFQ1RSRV9WMl9JQlJTX0VOSEFOQ0VELAp9OwoK
CmVudW0gc3BlY3RyZV92Ml91c2VyX21pdGlnYXRpb24gewogU1BFQ1RSRV9WMl9VU0VSX05PTkUs
CiBTUEVDVFJFX1YyX1VTRVJfU1RSSUNULAogU1BFQ1RSRV9WMl9VU0VSX1NUUklDVF9QUkVGRVJS
RUQsCiBTUEVDVFJFX1YyX1VTRVJfUFJDVEwsCiBTUEVDVFJFX1YyX1VTRVJfU0VDQ09NUCwKfTsK
CgplbnVtIHNzYl9taXRpZ2F0aW9uIHsKIFNQRUNfU1RPUkVfQllQQVNTX05PTkUsCiBTUEVDX1NU
T1JFX0JZUEFTU19ESVNBQkxFLAogU1BFQ19TVE9SRV9CWVBBU1NfUFJDVEwsCiBTUEVDX1NUT1JF
X0JZUEFTU19TRUNDT01QLAp9OwoKZXh0ZXJuIGNoYXIgX19pbmRpcmVjdF90aHVua19zdGFydFtd
OwpleHRlcm4gY2hhciBfX2luZGlyZWN0X3RodW5rX2VuZFtdOwoKCgoKCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB2bWV4aXRf
ZmlsbF9SU0Iodm9pZCkKewoKIHVuc2lnbmVkIGxvbmcgbG9vcHM7CgogYXNtIHZvbGF0aWxlICgi
OTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQuaWdub3JlX2FsdHNcblx0IiAiLmxvbmcg
OTk5YiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IgogICAgICAgICIjIEFMVDogb2xkbnN0clxu
IiAiNjYxOlxuXHQiICJqbXAgOTEwZiIgIlxuNjYyOlxuIiAiIyBBTFQ6IHBhZGRpbmdcbiIgIi5z
a2lwIC0oKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpLSgiICI2NjJiLTY2MWIiICIpKSA+
IDApICogIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpLSgiICI2NjJiLTY2MWIiICIp
KSwweDkwXG4iICI2NjMiICI6XG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RydWN0aW9ucyxcImFc
IlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcgIiAiNjY0IiIxIiJmIC0gLlxuIiAiIC53
b3JkICIgIiggNyozMisxMikiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYxYiIgIlxuIiAiIC5i
eXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjJi
IiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVu
dCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQgIiAiMSIgIlxuIiAiNjY0IiIxIiI6XG5c
dCIgIm1vdiAkKDMyLzIpLCAlMDsgNzcxOiBjYWxsIDc3MmY7IDc3MzogcGF1c2U7IGxmZW5jZTsg
am1wIDc3M2I7IDc3MjogY2FsbCA3NzRmOyA3NzU6IHBhdXNlOyBsZmVuY2U7IGptcCA3NzViOyA3
NzQ6IGRlYyAlMDsgam56IDc3MWI7IGFkZCAkKDY0LzgpICogMzIsICUxOyIgIlxuIiAiNjY1IiIx
IiAiOlxuIiAiLnBvcHNlY3Rpb25cbiIKCgogICAgICAgICI5MTA6IgogICAgICAgIDogIj1yIiAo
bG9vcHMpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpCiAgICAgICAgOiA6ICJtZW1vcnki
ICk7Cgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZvaWQgYWx0ZXJuYXRp
dmVfbXNyX3dyaXRlKHVuc2lnbmVkIGludCBtc3IsIHU2NCB2YWwsIHVuc2lnbmVkIGludCBmZWF0
dXJlKQp7CiBhc20gdm9sYXRpbGUoIiMgQUxUOiBvbGRuc3RyXG4iICI2NjE6XG5cdCIgIiIgIlxu
NjYyOlxuIiAiIyBBTFQ6IHBhZGRpbmdcbiIgIi5za2lwIC0oKCgiICI2NjUiIjEiImYtIiI2NjQi
IjEiImYiICIpLSgiICI2NjJiLTY2MWIiICIpKSA+IDApICogIiAiKCgiICI2NjUiIjEiImYtIiI2
NjQiIjEiImYiICIpLSgiICI2NjJiLTY2MWIiICIpKSwweDkwXG4iICI2NjMiICI6XG4iICIucHVz
aHNlY3Rpb24gLmFsdGluc3RydWN0aW9ucyxcImFcIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIg
LmxvbmcgIiAiNjY0IiIxIiJmIC0gLlxuIiAiIC53b3JkICIgIiVjW2ZlYXR1cmVdIiAiXG4iICIg
LmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEi
ImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5w
dXNoc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxh
Y2VtZW50ICIgIjEiICJcbiIgIjY2NCIiMSIiOlxuXHQiICJ3cm1zciIgIlxuIiAiNjY1IiIxIiAi
OlxuIiAiLnBvcHNlY3Rpb25cbiIKICA6IDogImMiIChtc3IpLAogICAgICAiYSIgKCh1MzIpdmFs
KSwKICAgICAgImQiICgodTMyKSh2YWwgPj4gMzIpKSwKICAgICAgW2ZlYXR1cmVdICJpIiAoZmVh
dHVyZSkKICA6ICJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbmRpcmVjdF9icmFuY2hfcHJlZGljdGlvbl9i
YXJyaWVyKHZvaWQpCnsKIHU2NCB2YWwgPSAoKCgoMVVMKSkpIDw8ICgwKSk7CgogYWx0ZXJuYXRp
dmVfbXNyX3dyaXRlKDB4MDAwMDAwNDksIHZhbCwgKCA3KjMyKzIxKSk7Cn0KCgpleHRlcm4gdTY0
IHg4Nl9zcGVjX2N0cmxfYmFzZTsKIyAzMDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVj
LWJyYW5jaC5oIgpleHRlcm4gc3RydWN0IHN0YXRpY19rZXlfZmFsc2Ugc3dpdGNoX3RvX2NvbmRf
c3RpYnA7CmV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleV9mYWxzZSBzd2l0Y2hfbW1fY29uZF9pYnBi
OwpleHRlcm4gc3RydWN0IHN0YXRpY19rZXlfZmFsc2Ugc3dpdGNoX21tX2Fsd2F5c19pYnBiOwoK
ZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlIG1kc191c2VyX2NsZWFyOwpleHRlcm4gc3Ry
dWN0IHN0YXRpY19rZXlfZmFsc2UgbWRzX2lkbGVfY2xlYXI7CiMgMzIyICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL25vc3BlYy1icmFuY2guaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtZHNfY2xlYXJfY3B1X2J1ZmZlcnModm9p
ZCkKewogc3RhdGljIGNvbnN0IHUxNiBkcyA9ICgzKjgpOwojIDMzNSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9ub3NwZWMtYnJhbmNoLmgiCiBhc20gdm9sYXRpbGUoInZlcncgJVtkc10iIDogOiBb
ZHNdICJtIiAoZHMpIDogImNjIik7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtZHNfdXNlcl9jbGVhcl9jcHVfYnVm
ZmVycyh2b2lkKQp7CiBpZiAoKHsgYm9vbCBicmFuY2g7IGlmIChfX2J1aWx0aW5fdHlwZXNfY29t
cGF0aWJsZV9wKHR5cGVvZigqJm1kc191c2VyX2NsZWFyKSwgc3RydWN0IHN0YXRpY19rZXlfdHJ1
ZSkpIGJyYW5jaCA9ICFhcmNoX3N0YXRpY19icmFuY2goJigmbWRzX3VzZXJfY2xlYXIpLT5rZXks
IHRydWUpOyBlbHNlIGlmIChfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqJm1k
c191c2VyX2NsZWFyKSwgc3RydWN0IHN0YXRpY19rZXlfZmFsc2UpKSBicmFuY2ggPSAhYXJjaF9z
dGF0aWNfYnJhbmNoX2p1bXAoJigmbWRzX3VzZXJfY2xlYXIpLT5rZXksIHRydWUpOyBlbHNlIGJy
YW5jaCA9IF9fX193cm9uZ19icmFuY2hfZXJyb3IoKTsgX19idWlsdGluX2V4cGVjdCghIShicmFu
Y2gpLCAxKTsgfSkpCiAgbWRzX2NsZWFyX2NwdV9idWZmZXJzKCk7Cn0KCgoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtZHNf
aWRsZV9jbGVhcl9jcHVfYnVmZmVycyh2b2lkKQp7CiBpZiAoKHsgYm9vbCBicmFuY2g7IGlmIChf
X2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqJm1kc19pZGxlX2NsZWFyKSwgc3Ry
dWN0IHN0YXRpY19rZXlfdHJ1ZSkpIGJyYW5jaCA9ICFhcmNoX3N0YXRpY19icmFuY2goJigmbWRz
X2lkbGVfY2xlYXIpLT5rZXksIHRydWUpOyBlbHNlIGlmIChfX2J1aWx0aW5fdHlwZXNfY29tcGF0
aWJsZV9wKHR5cGVvZigqJm1kc19pZGxlX2NsZWFyKSwgc3RydWN0IHN0YXRpY19rZXlfZmFsc2Up
KSBicmFuY2ggPSAhYXJjaF9zdGF0aWNfYnJhbmNoX2p1bXAoJigmbWRzX2lkbGVfY2xlYXIpLT5r
ZXksIHRydWUpOyBlbHNlIGJyYW5jaCA9IF9fX193cm9uZ19icmFuY2hfZXJyb3IoKTsgX19idWls
dGluX2V4cGVjdCghIShicmFuY2gpLCAxKTsgfSkpCiAgbWRzX2NsZWFyX2NwdV9idWZmZXJzKCk7
Cn0KIyA0NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIiAyCgpzdHJ1
Y3QgcGFnZTsKc3RydWN0IHRocmVhZF9zdHJ1Y3Q7CnN0cnVjdCBkZXNjX3B0cjsKc3RydWN0IHRz
c19zdHJ1Y3Q7CnN0cnVjdCBtbV9zdHJ1Y3Q7CnN0cnVjdCBkZXNjX3N0cnVjdDsKc3RydWN0IHRh
c2tfc3RydWN0OwpzdHJ1Y3QgY3B1bWFzazsKc3RydWN0IGZsdXNoX3RsYl9pbmZvOwpzdHJ1Y3Qg
bW11X2dhdGhlcjsKc3RydWN0IHZtX2FyZWFfc3RydWN0OwoKCgoKCnN0cnVjdCBwYXJhdmlydF9j
YWxsZWVfc2F2ZSB7CiB2b2lkICpmdW5jOwp9OwoKCnN0cnVjdCBwdl9pbmZvIHsKIyA3OSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgogY29uc3QgY2hhciAqbmFtZTsK
fTsKCnN0cnVjdCBwdl9pbml0X29wcyB7CiMgOTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy
YXZpcnRfdHlwZXMuaCIKIHVuc2lnbmVkICgqcGF0Y2gpKHU4IHR5cGUsIHZvaWQgKmluc25fYnVm
ZiwKICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxlbik7Cn0gOwojIDEwNCAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgpzdHJ1Y3QgcHZfdGltZV9vcHMg
ewogdW5zaWduZWQgbG9uZyBsb25nICgqc2NoZWRfY2xvY2spKHZvaWQpOwogdW5zaWduZWQgbG9u
ZyBsb25nICgqc3RlYWxfY2xvY2spKGludCBjcHUpOwp9IDsKCnN0cnVjdCBwdl9jcHVfb3BzIHsK
CiB2b2lkICgqaW9fZGVsYXkpKHZvaWQpOwojIDE4MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
YXJhdmlydF90eXBlcy5oIgp9IDsKCnN0cnVjdCBwdl9pcnFfb3BzIHsKIyAyMDQgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCIKfSA7CgpzdHJ1Y3QgcHZfbW11X29wcyB7
Cgogdm9pZCAoKmZsdXNoX3RsYl91c2VyKSh2b2lkKTsKIHZvaWQgKCpmbHVzaF90bGJfa2VybmVs
KSh2b2lkKTsKIHZvaWQgKCpmbHVzaF90bGJfb25lX3VzZXIpKHVuc2lnbmVkIGxvbmcgYWRkcik7
CiB2b2lkICgqZmx1c2hfdGxiX290aGVycykoY29uc3Qgc3RydWN0IGNwdW1hc2sgKmNwdXMsCiAg
ICAgY29uc3Qgc3RydWN0IGZsdXNoX3RsYl9pbmZvICppbmZvKTsKCiB2b2lkICgqdGxiX3JlbW92
ZV90YWJsZSkoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwgdm9pZCAqdGFibGUpOwoKCiB2b2lkICgq
ZXhpdF9tbWFwKShzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiMgMzA2ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgiCn0gOwoKc3RydWN0IGFyY2hfc3BpbmxvY2s7CgojIDEg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3BpbmxvY2tfdHlwZXMuaCIgMQojIDE2ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrX3R5cGVzLmgiCnR5cGVkZWYgdTggX190aWNrZXRfdDsK
dHlwZWRlZiB1MTYgX190aWNrZXRwYWlyX3Q7CiMgMjcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c3BpbmxvY2tfdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcXNwaW5sb2NrX3R5
cGVzLmgiIDEKIyAyMiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3FzcGlubG9ja190eXBlcy5oIgp0
eXBlZGVmIHN0cnVjdCBxc3BpbmxvY2sgewogdW5pb24gewogIGF0b21pY190IHZhbDsKCgoKCgoK
CiAgc3RydWN0IHsKICAgdTggbG9ja2VkOwogICB1OCBwZW5kaW5nOwogIH07CiAgc3RydWN0IHsK
ICAgdTE2IGxvY2tlZF9wZW5kaW5nOwogICB1MTYgdGFpbDsKICB9OwojIDUxICIuL2luY2x1ZGUv
YXNtLWdlbmVyaWMvcXNwaW5sb2NrX3R5cGVzLmgiCiB9Owp9IGFyY2hfc3BpbmxvY2tfdDsKIyAy
OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9ja190eXBlcy5oIiAyCgojIDEgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9xcndsb2NrX3R5cGVzLmgiIDEKCgoKCgojIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9ieXRlb3JkZXIuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgv
Ynl0ZW9yZGVyL2xpdHRsZV9lbmRpYW4uaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51
eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIiAxCiMgMTMgIi4vaW5jbHVkZS91YXBpL2xpbnV4
L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3N3YWIuaCIg
MQoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zd2FiLmgiIDEKCgoKCgoKCiMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3N3YWIuaCIgMQoKCgoKCgoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19jb25zdF9fKSkgX191MzIgX19hcmNoX3N3YWIzMihfX3UzMiB2YWwpCnsKIGFzbSgiYnN3YXBs
ICUwIiA6ICI9ciIgKHZhbCkgOiAiMCIgKHZhbCkpOwogcmV0dXJuIHZhbDsKfQoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fY29uc3RfXykpIF9fdTY0IF9fYXJjaF9zd2FiNjQoX191NjQgdmFsKQp7CiMgMzEg
Ii4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zd2FiLmgiCiBhc20oImJzd2FwcSAlMCIgOiAi
PXIiICh2YWwpIDogIjAiICh2YWwpKTsKIHJldHVybiB2YWw7Cgp9CiMgOSAiLi9pbmNsdWRlL3Vh
cGkvbGludXgvc3dhYi5oIiAyCiMgNDggIi4vaW5jbHVkZS91YXBpL2xpbnV4L3N3YWIuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19jb25zdF9fKSkgX191MTYgX19mc3dhYjE2KF9fdTE2IHZhbCkKewoKCgog
cmV0dXJuICgoX191MTYpKCAoKChfX3UxNikodmFsKSAmIChfX3UxNikweDAwZmZVKSA8PCA4KSB8
ICgoKF9fdTE2KSh2YWwpICYgKF9fdTE2KTB4ZmYwMFUpID4+IDgpKSk7Cgp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbnN0X18pKSBfX3UzMiBfX2Zzd2FiMzIoX191MzIgdmFsKQp7CgogcmV0dXJuIF9f
YXJjaF9zd2FiMzIodmFsKTsKCgoKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19jb25zdF9fKSkgX191NjQg
X19mc3dhYjY0KF9fdTY0IHZhbCkKewoKIHJldHVybiBfX2FyY2hfc3dhYjY0KHZhbCk7CgoKCgoK
Cgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKSBfX3UzMiBfX2Zzd2FodzMyKF9fdTMyIHZh
bCkKewoKCgogcmV0dXJuICgoX191MzIpKCAoKChfX3UzMikodmFsKSAmIChfX3UzMikweDAwMDBm
ZmZmVUwpIDw8IDE2KSB8ICgoKF9fdTMyKSh2YWwpICYgKF9fdTMyKTB4ZmZmZjAwMDBVTCkgPj4g
MTYpKSk7Cgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKSBfX3UzMiBfX2Zzd2FoYjMyKF9f
dTMyIHZhbCkKewoKCgogcmV0dXJuICgoX191MzIpKCAoKChfX3UzMikodmFsKSAmIChfX3UzMikw
eDAwZmYwMGZmVUwpIDw8IDgpIHwgKCgoX191MzIpKHZhbCkgJiAoX191MzIpMHhmZjAwZmYwMFVM
KSA+PiA4KSkpOwoKfQojIDEzNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3dhYi5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgX19zd2FiKGNvbnN0IHVu
c2lnbmVkIGxvbmcgeSkKewoKIHJldHVybiAoX191NjQpX19idWlsdGluX2Jzd2FwNjQoKF9fdTY0
KSh5KSk7CgoKCn0KIyAxNzEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3N3YWIuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBfX3UxNiBfX3N3YWIxNnAoY29uc3QgX191MTYgKnAp
CnsKCgoKIHJldHVybiAoX191MTYpX19idWlsdGluX2Jzd2FwMTYoKF9fdTE2KSgqcCkpOwoKfQoK
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgX191MzIgX19zd2FiMzJwKGNv
bnN0IF9fdTMyICpwKQp7CgoKCiByZXR1cm4gKF9fdTMyKV9fYnVpbHRpbl9ic3dhcDMyKChfX3Uz
MikoKnApKTsKCn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fdTY0
IF9fc3dhYjY0cChjb25zdCBfX3U2NCAqcCkKewoKCgogcmV0dXJuIChfX3U2NClfX2J1aWx0aW5f
YnN3YXA2NCgoX191NjQpKCpwKSk7Cgp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX3UzMiBfX3N3YWh3MzJwKGNvbnN0IF9f
dTMyICpwKQp7CgoKCiByZXR1cm4gKF9fYnVpbHRpbl9jb25zdGFudF9wKChfX3UzMikoKnApKSA/
ICgoX191MzIpKCAoKChfX3UzMikoKnApICYgKF9fdTMyKTB4MDAwMGZmZmZVTCkgPDwgMTYpIHwg
KCgoX191MzIpKCpwKSAmIChfX3UzMikweGZmZmYwMDAwVUwpID4+IDE2KSkpIDogX19mc3dhaHcz
MigqcCkpOwoKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191MzIgX19zd2FoYjMycChjb25zdCBfX3UzMiAqcCkKewoKCgog
cmV0dXJuIChfX2J1aWx0aW5fY29uc3RhbnRfcCgoX191MzIpKCpwKSkgPyAoKF9fdTMyKSggKCgo
X191MzIpKCpwKSAmIChfX3UzMikweDAwZmYwMGZmVUwpIDw8IDgpIHwgKCgoX191MzIpKCpwKSAm
IChfX3UzMikweGZmMDBmZjAwVUwpID4+IDgpKSkgOiBfX2Zzd2FoYjMyKCpwKSk7Cgp9CgoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBfX3N3YWIxNnMoX191MTYgKnApCnsKCgoKICpwID0gX19zd2FiMTZwKHApOwoKfQoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fc3dhYjMycyhfX3UzMiAq
cCkKewoKCgogKnAgPSBfX3N3YWIzMnAocCk7Cgp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIF9fc3dhYjY0cyhfX3U2NCAqcCkKewoKCgogKnAgPSBfX3N3YWI2
NHAocCk7Cgp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fc3dhaHczMnMoX191MzIgKnApCnsKCgoKICpwID0gX19z
d2FodzMycChwKTsKCn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19zd2FoYjMycyhfX3UzMiAqcCkKewoKCgogKnAg
PSBfX3N3YWhiMzJwKHApOwoKfQojIDYgIi4vaW5jbHVkZS9saW51eC9zd2FiLmgiIDIKIyAxNCAi
Li9pbmNsdWRlL3VhcGkvbGludXgvYnl0ZW9yZGVyL2xpdHRsZV9lbmRpYW4uaCIgMgojIDQ0ICIu
L2luY2x1ZGUvdWFwaS9saW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fbGU2NCBfX2NwdV90b19sZTY0cChjb25zdCBfX3U2
NCAqcCkKewogcmV0dXJuICggX19sZTY0KSpwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgX191NjQgX19sZTY0X3RvX2NwdXAoY29uc3QgX19sZTY0ICpwKQp7CiByZXR1cm4g
KCBfX3U2NCkqcDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fbGUzMiBf
X2NwdV90b19sZTMycChjb25zdCBfX3UzMiAqcCkKewogcmV0dXJuICggX19sZTMyKSpwOwp9CnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgX191MzIgX19sZTMyX3RvX2NwdXAoY29u
c3QgX19sZTMyICpwKQp7CiByZXR1cm4gKCBfX3UzMikqcDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIF9fbGUxNiBfX2NwdV90b19sZTE2cChjb25zdCBfX3UxNiAqcCkKewog
cmV0dXJuICggX19sZTE2KSpwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
X191MTYgX19sZTE2X3RvX2NwdXAoY29uc3QgX19sZTE2ICpwKQp7CiByZXR1cm4gKCBfX3UxNikq
cDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYmU2NCBfX2NwdV90b19i
ZTY0cChjb25zdCBfX3U2NCAqcCkKewogcmV0dXJuICggX19iZTY0KV9fc3dhYjY0cChwKTsKfQpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fdTY0IF9fYmU2NF90b19jcHVwKGNv
bnN0IF9fYmU2NCAqcCkKewogcmV0dXJuIF9fc3dhYjY0cCgoX191NjQgKilwKTsKfQpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYmUzMiBfX2NwdV90b19iZTMycChjb25zdCBf
X3UzMiAqcCkKewogcmV0dXJuICggX19iZTMyKV9fc3dhYjMycChwKTsKfQpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIF9fdTMyIF9fYmUzMl90b19jcHVwKGNvbnN0IF9fYmUzMiAq
cCkKewogcmV0dXJuIF9fc3dhYjMycCgoX191MzIgKilwKTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIF9fYmUxNiBfX2NwdV90b19iZTE2cChjb25zdCBfX3UxNiAqcCkKewog
cmV0dXJuICggX19iZTE2KV9fc3dhYjE2cChwKTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIF9fdTE2IF9fYmUxNl90b19jcHVwKGNvbnN0IF9fYmUxNiAqcCkKewogcmV0dXJu
IF9fc3dhYjE2cCgoX191MTYgKilwKTsKfQojIDYgIi4vaW5jbHVkZS9saW51eC9ieXRlb3JkZXIv
bGl0dGxlX2VuZGlhbi5oIiAyCgoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvYnl0ZW9yZGVyL2dl
bmVyaWMuaCIgMQojIDE0NCAiLi9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9nZW5lcmljLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgbGUxNl9hZGRfY3B1KF9fbGUxNiAqdmFyLCB1MTYgdmFsKQp7CiAqdmFyID0gKCggX19sZTE2
KShfX3UxNikoKCggX191MTYpKF9fbGUxNikoKnZhcikpICsgdmFsKSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGUzMl9h
ZGRfY3B1KF9fbGUzMiAqdmFyLCB1MzIgdmFsKQp7CiAqdmFyID0gKCggX19sZTMyKShfX3UzMiko
KCggX191MzIpKF9fbGUzMikoKnZhcikpICsgdmFsKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGU2NF9hZGRfY3B1KF9f
bGU2NCAqdmFyLCB1NjQgdmFsKQp7CiAqdmFyID0gKCggX19sZTY0KShfX3U2NCkoKCggX191NjQp
KF9fbGU2NCkoKnZhcikpICsgdmFsKSk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxlMzJfdG9fY3B1X2FycmF5KHUzMiAq
YnVmLCB1bnNpZ25lZCBpbnQgd29yZHMpCnsKIHdoaWxlICh3b3Jkcy0tKSB7CiAgZG8geyAodm9p
ZCkoYnVmKTsgfSB3aGlsZSAoMCk7CiAgYnVmKys7CiB9Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1X3RvX2xlMzJfYXJy
YXkodTMyICpidWYsIHVuc2lnbmVkIGludCB3b3JkcykKewogd2hpbGUgKHdvcmRzLS0pIHsKICBk
byB7ICh2b2lkKShidWYpOyB9IHdoaWxlICgwKTsKICBidWYrKzsKIH0KfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBiZTE2X2Fk
ZF9jcHUoX19iZTE2ICp2YXIsIHUxNiB2YWwpCnsKICp2YXIgPSAoKCBfX2JlMTYpKF9fdTE2KV9f
YnVpbHRpbl9ic3dhcDE2KChfX3UxNikoKChfX3UxNilfX2J1aWx0aW5fYnN3YXAxNigoX191MTYp
KCggX191MTYpKF9fYmUxNikoKnZhcikpKSArIHZhbCkpKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYmUzMl9hZGRfY3B1
KF9fYmUzMiAqdmFyLCB1MzIgdmFsKQp7CiAqdmFyID0gKCggX19iZTMyKShfX3UzMilfX2J1aWx0
aW5fYnN3YXAzMigoX191MzIpKCgoX191MzIpX19idWlsdGluX2Jzd2FwMzIoKF9fdTMyKSgoIF9f
dTMyKShfX2JlMzIpKCp2YXIpKSkgKyB2YWwpKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGJlNjRfYWRkX2NwdShfX2Jl
NjQgKnZhciwgdTY0IHZhbCkKewogKnZhciA9ICgoIF9fYmU2NCkoX191NjQpX19idWlsdGluX2Jz
d2FwNjQoKF9fdTY0KSgoKF9fdTY0KV9fYnVpbHRpbl9ic3dhcDY0KChfX3U2NCkoKCBfX3U2NCko
X19iZTY0KSgqdmFyKSkpICsgdmFsKSkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjcHVfdG9fYmUzMl9hcnJheShfX2Jl
MzIgKmRzdCwgY29uc3QgdTMyICpzcmMsIHNpemVfdCBsZW4pCnsKIGludCBpOwoKIGZvciAoaSA9
IDA7IGkgPCBsZW47IGkrKykKICBkc3RbaV0gPSAoKCBfX2JlMzIpKF9fdTMyKV9fYnVpbHRpbl9i
c3dhcDMyKChfX3UzMikoKHNyY1tpXSkpKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYmUzMl90b19jcHVfYXJyYXkodTMy
ICpkc3QsIGNvbnN0IF9fYmUzMiAqc3JjLCBzaXplX3QgbGVuKQp7CiBpbnQgaTsKCiBmb3IgKGkg
PSAwOyBpIDwgbGVuOyBpKyspCiAgZHN0W2ldID0gKF9fdTMyKV9fYnVpbHRpbl9ic3dhcDMyKChf
X3UzMikoKCBfX3UzMikoX19iZTMyKShzcmNbaV0pKSk7Cn0KIyAxMiAiLi9pbmNsdWRlL2xpbnV4
L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiIDIKIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFw
aS9hc20vYnl0ZW9yZGVyLmgiIDIKIyA3ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcXJ3bG9ja190
eXBlcy5oIiAyCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9ja190eXBlcy5oIiAx
CiMgOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3Fyd2xvY2tfdHlwZXMuaCIgMgoKCgoKCnR5cGVk
ZWYgc3RydWN0IHFyd2xvY2sgewogdW5pb24gewogIGF0b21pY190IGNudHM7CiAgc3RydWN0IHsK
CiAgIHU4IHdsb2NrZWQ7CiAgIHU4IF9fbHN0YXRlWzNdOwoKCgoKICB9OwogfTsKIGFyY2hfc3Bp
bmxvY2tfdCB3YWl0X2xvY2s7Cn0gYXJjaF9yd2xvY2tfdDsKIyAzMCAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zcGlubG9ja190eXBlcy5oIiAyCiMgMzExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3BhcmF2aXJ0X3R5cGVzLmgiIDIKCgpzdHJ1Y3QgcXNwaW5sb2NrOwoKc3RydWN0IHB2X2xvY2tf
b3BzIHsKIHZvaWQgKCpxdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoKShzdHJ1Y3QgcXNwaW5sb2Nr
ICpsb2NrLCB1MzIgdmFsKTsKIHN0cnVjdCBwYXJhdmlydF9jYWxsZWVfc2F2ZSBxdWV1ZWRfc3Bp
bl91bmxvY2s7Cgogdm9pZCAoKndhaXQpKHU4ICpwdHIsIHU4IHZhbCk7CiB2b2lkICgqa2ljayko
aW50IGNwdSk7Cgogc3RydWN0IHBhcmF2aXJ0X2NhbGxlZV9zYXZlIHZjcHVfaXNfcHJlZW1wdGVk
Owp9IDsKCgoKCnN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSB7CiBzdHJ1Y3QgcHZfaW5p
dF9vcHMgaW5pdDsKIHN0cnVjdCBwdl90aW1lX29wcyB0aW1lOwogc3RydWN0IHB2X2NwdV9vcHMg
Y3B1Owogc3RydWN0IHB2X2lycV9vcHMgaXJxOwogc3RydWN0IHB2X21tdV9vcHMgbW11Owogc3Ry
dWN0IHB2X2xvY2tfb3BzIGxvY2s7Cn0gOwoKZXh0ZXJuIHN0cnVjdCBwdl9pbmZvIHB2X2luZm87
CmV4dGVybiBzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUgcHZfb3BzOwojIDM3MCAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgp1bnNpZ25lZCBwYXJhdmlydF9w
YXRjaF9pZGVudF82NCh2b2lkICppbnNuX2J1ZmYsIHVuc2lnbmVkIGxlbik7CnVuc2lnbmVkIHBh
cmF2aXJ0X3BhdGNoX2RlZmF1bHQodTggdHlwZSwgdm9pZCAqaW5zbl9idWZmLCB1bnNpZ25lZCBs
b25nIGFkZHIsIHVuc2lnbmVkIGxlbik7CnVuc2lnbmVkIHBhcmF2aXJ0X3BhdGNoX2luc25zKHZv
aWQgKmluc25fYnVmZiwgdW5zaWduZWQgbGVuLCBjb25zdCBjaGFyICpzdGFydCwgY29uc3QgY2hh
ciAqZW5kKTsKCnVuc2lnbmVkIG5hdGl2ZV9wYXRjaCh1OCB0eXBlLCB2b2lkICppbnNuX2J1ZmYs
IHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbGVuKTsKCmludCBwYXJhdmlydF9kaXNhYmxl
X2lvc3BhY2Uodm9pZCk7CiMgNjUxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5
cGVzLmgiCmVudW0gcGFyYXZpcnRfbGF6eV9tb2RlIHsKIFBBUkFWSVJUX0xBWllfTk9ORSwKIFBB
UkFWSVJUX0xBWllfTU1VLAogUEFSQVZJUlRfTEFaWV9DUFUsCn07CgplbnVtIHBhcmF2aXJ0X2xh
enlfbW9kZSBwYXJhdmlydF9nZXRfbGF6eV9tb2RlKHZvaWQpOwp2b2lkIHBhcmF2aXJ0X3N0YXJ0
X2NvbnRleHRfc3dpdGNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldik7CnZvaWQgcGFyYXZpcnRf
ZW5kX2NvbnRleHRfc3dpdGNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCk7Cgp2b2lkIHBhcmF2
aXJ0X2VudGVyX2xhenlfbW11KHZvaWQpOwp2b2lkIHBhcmF2aXJ0X2xlYXZlX2xhenlfbW11KHZv
aWQpOwp2b2lkIHBhcmF2aXJ0X2ZsdXNoX2xhenlfbW11KHZvaWQpOwoKdm9pZCBfcGFyYXZpcnRf
bm9wKHZvaWQpOwp1NjQgX3BhcmF2aXJ0X2lkZW50XzY0KHU2NCk7CgoKCgpzdHJ1Y3QgcGFyYXZp
cnRfcGF0Y2hfc2l0ZSB7CiB1OCAqaW5zdHI7CiB1OCB0eXBlOwogdTggbGVuOwp9OwoKZXh0ZXJu
IHN0cnVjdCBwYXJhdmlydF9wYXRjaF9zaXRlIF9fcGFyYWluc3RydWN0aW9uc1tdLAogX19wYXJh
aW5zdHJ1Y3Rpb25zX2VuZFtdOwojIDk1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5o
IiAyCgoKc3RydWN0IGNwdWluZm9feDg2OwpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CgpleHRlcm4gdW5z
aWduZWQgbG9uZyBwcm9maWxlX3BjKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKCmV4dGVybiB1bnNp
Z25lZCBsb25nCmNvbnZlcnRfaXBfdG9fbGluZWFyKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQs
IHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKZXh0ZXJuIHZvaWQgc2VuZF9zaWd0cmFwKHN0cnVjdCBw
dF9yZWdzICpyZWdzLCBpbnQgZXJyb3JfY29kZSwgaW50IHNpX2NvZGUpOwoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxv
bmcgcmVnc19yZXR1cm5fdmFsdWUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCnsKIHJldHVybiByZWdz
LT5heDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCByZWdzX3NldF9yZXR1cm5fdmFsdWUoc3RydWN0IHB0X3JlZ3MgKnJlZ3Ms
IHVuc2lnbmVkIGxvbmcgcmMpCnsKIHJlZ3MtPmF4ID0gcmM7Cn0KIyAxMjYgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcHRyYWNlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB1c2VyX21vZGUoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp
CnsKCgoKIHJldHVybiAhIShyZWdzLT5jcyAmIDMpOwoKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHY4MDg2X21vZGUoc3RydWN0
IHB0X3JlZ3MgKnJlZ3MpCnsKCgoKIHJldHVybiAwOwoKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1c2VyXzY0Yml0X21vZGUo
c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCnsKCgoKCgoKIHJldHVybiByZWdzLT5jcyA9PSAoNio4ICsg
Myk7CgoKCgoKCgp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBhbnlfNjRiaXRfbW9kZShzdHJ1Y3QgcHRfcmVncyAqcmVn
cykKewoKIHJldHVybiAhdXNlcl9tb2RlKHJlZ3MpIHx8IHVzZXJfNjRiaXRfbW9kZShyZWdzKTsK
CgoKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGtlcm5lbF9zdGFja19wb2ludGVyKHN0cnVjdCBwdF9y
ZWdzICpyZWdzKQp7CiByZXR1cm4gcmVncy0+c3A7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgaW5zdHJ1Y3Rp
b25fcG9pbnRlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKewogcmV0dXJuIHJlZ3MtPmlwOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGluc3RydWN0aW9uX3BvaW50ZXJfc2V0KHN0cnVjdCBwdF9yZWdzICpyZWdzLAogIHVuc2ln
bmVkIGxvbmcgdmFsKQp7CiByZWdzLT5pcCA9IHZhbDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBmcmFtZV9w
b2ludGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzKQp7CiByZXR1cm4gcmVncy0+YnA7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcgdXNlcl9zdGFja19wb2ludGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzKQp7CiByZXR1
cm4gcmVncy0+c3A7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgdXNlcl9zdGFja19wb2ludGVyX3NldChzdHJ1Y3QgcHRfcmVn
cyAqcmVncywKICB1bnNpZ25lZCBsb25nIHZhbCkKewogcmVncy0+c3AgPSB2YWw7Cn0KCgpleHRl
cm4gaW50IHJlZ3NfcXVlcnlfcmVnaXN0ZXJfb2Zmc2V0KGNvbnN0IGNoYXIgKm5hbWUpOwpleHRl
cm4gY29uc3QgY2hhciAqcmVnc19xdWVyeV9yZWdpc3Rlcl9uYW1lKHVuc2lnbmVkIGludCBvZmZz
ZXQpOwojIDIyNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9u
ZyByZWdzX2dldF9yZWdpc3RlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywKICAgICAgICAgICB1bnNp
Z25lZCBpbnQgb2Zmc2V0KQp7CiBpZiAoX19idWlsdGluX2V4cGVjdCghIShvZmZzZXQgPiAoX19i
dWlsdGluX29mZnNldG9mKHN0cnVjdCBwdF9yZWdzLCBzcykpKSwgMCkpCiAgcmV0dXJuIDA7CiMg
MjQzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgogcmV0dXJuICoodW5zaWduZWQg
bG9uZyAqKSgodW5zaWduZWQgbG9uZylyZWdzICsgb2Zmc2V0KTsKfQojIDI1NCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ3Nfd2l0aGluX2tlcm5lbF9zdGFjayhzdHJ1
Y3QgcHRfcmVncyAqcmVncywKICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHIpCnsKIHJldHVybiAo
KGFkZHIgJiB+KCgoKDFVTCkgPDwgMTIpIDw8ICgyICsgMCkpIC0gMSkpID09IChyZWdzLT5zcCAm
IH4oKCgoMVVMKSA8PCAxMikgPDwgKDIgKyAwKSkgLSAxKSkpOwp9CiMgMjY5ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nICpyZWdzX2dldF9rZXJuZWxfc3Rh
Y2tfbnRoX2FkZHIoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGludCBuKQp7CiB1bnNp
Z25lZCBsb25nICphZGRyID0gKHVuc2lnbmVkIGxvbmcgKilyZWdzLT5zcDsKCiBhZGRyICs9IG47
CiBpZiAocmVnc193aXRoaW5fa2VybmVsX3N0YWNrKHJlZ3MsICh1bnNpZ25lZCBsb25nKWFkZHIp
KQogIHJldHVybiBhZGRyOwogZWxzZQogIHJldHVybiAoKHZvaWQgKikwKTsKfQoKCmV4dGVybiBs
b25nIHByb2JlX2tlcm5lbF9yZWFkKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3Qg
c2l6ZSk7CiMgMjkyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBs
b25nIHJlZ3NfZ2V0X2tlcm5lbF9zdGFja19udGgoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAgICAg
ICAgICAgIHVuc2lnbmVkIGludCBuKQp7CiB1bnNpZ25lZCBsb25nICphZGRyOwogdW5zaWduZWQg
bG9uZyB2YWw7CiBsb25nIHJldDsKCiBhZGRyID0gcmVnc19nZXRfa2VybmVsX3N0YWNrX250aF9h
ZGRyKHJlZ3MsIG4pOwogaWYgKGFkZHIpIHsKICByZXQgPSBwcm9iZV9rZXJuZWxfcmVhZCgmdmFs
LCBhZGRyLCBzaXplb2YodmFsKSk7CiAgaWYgKCFyZXQpCiAgIHJldHVybiB2YWw7CiB9CiByZXR1
cm4gMDsKfQojIDMxOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQg
bG9uZyByZWdzX2dldF9rZXJuZWxfYXJndW1lbnQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAgICAg
ICAgICAgdW5zaWduZWQgaW50IG4pCnsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgYXJndW1l
bnRfb2Zmc1tdID0gewoKCgoKCgogIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywg
ZGkpLAogIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgc2kpLAogIF9fYnVpbHRp
bl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgZHgpLAogIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1
Y3QgcHRfcmVncywgY3gpLAogIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgcjgp
LAogIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgcjkpLAoKCiB9OwoKIGlmIChu
ID49IDYpIHsKICBuIC09IDYgLSAxOwogIHJldHVybiByZWdzX2dldF9rZXJuZWxfc3RhY2tfbnRo
KHJlZ3MsIG4pOwogfSBlbHNlCiAgcmV0dXJuIHJlZ3NfZ2V0X3JlZ2lzdGVyKHJlZ3MsIGFyZ3Vt
ZW50X29mZnNbbl0pOwp9CiMgMzU1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgpz
dHJ1Y3QgdXNlcl9kZXNjOwpleHRlcm4gaW50IGRvX2dldF90aHJlYWRfYXJlYShzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnAsIGludCBpZHgsCiAgICAgICAgIHN0cnVjdCB1c2VyX2Rlc2MgKmluZm8pOwpl
eHRlcm4gaW50IGRvX3NldF90aHJlYWRfYXJlYShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBp
ZHgsCiAgICAgICAgIHN0cnVjdCB1c2VyX2Rlc2MgKmluZm8sIGludCBjYW5fYWxsb2NhdGUpOwoj
IDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2tnZGIuaCIgMgojIDQ5ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2tnZGIuaCIKZW51bSByZWduYW1lcyB7CiBHREJfQVgsCiBHREJfQlgsCiBHREJf
Q1gsCiBHREJfRFgsCiBHREJfU0ksCiBHREJfREksCiBHREJfQlAsCiBHREJfU1AsCiBHREJfUjgs
CiBHREJfUjksCiBHREJfUjEwLAogR0RCX1IxMSwKIEdEQl9SMTIsCiBHREJfUjEzLAogR0RCX1Ix
NCwKIEdEQl9SMTUsCiBHREJfUEMsCiBHREJfUFMsCiBHREJfQ1MsCiBHREJfU1MsCiBHREJfRFMs
CiBHREJfRVMsCiBHREJfRlMsCiBHREJfR1MsCn07CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXJjaF9rZ2RiX2JyZWFr
cG9pbnQodm9pZCkKewogYXNtKCIgICBpbnQgJDMiKTsKfQoKCgoKZXh0ZXJuIGludCBrZ2RiX2xs
X3RyYXAoaW50IGNtZCwgY29uc3QgY2hhciAqc3RyLAogICBzdHJ1Y3QgcHRfcmVncyAqcmVncywg
bG9uZyBlcnIsIGludCB0cmFwLCBpbnQgc2lnKTsKIyAyMSAiLi9pbmNsdWRlL2xpbnV4L2tnZGIu
aCIgMgojIDMzMyAiLi9pbmNsdWRlL2xpbnV4L2tnZGIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrZ2RiX3BhbmljKGNvbnN0
IGNoYXIgKm1zZykge30KIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL29zX3R5cGVzLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgva3JlZi5oIiAxCiMgMTYg
Ii4vaW5jbHVkZS9saW51eC9rcmVmLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgi
IDEKIyA1MCAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L3R5cGVjaGVjay5oIiAxCiMgNTEgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCiMgMSAi
Li9pbmNsdWRlL2xpbnV4L3ByZWVtcHQuaCIgMQojIDExICIuL2luY2x1ZGUvbGludXgvcHJlZW1w
dC5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiIDEKCgoKCgoKIyAxICIuL2luY2x1ZGUv
bGludXgvcG9pc29uLmgiIDEKIyA4ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIiAyCgojIDEgIi4v
aW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMQoKCgoKCiMgMSAiL3Vzci9saWIvZ2NjL3g4Nl82NC1s
aW51eC1nbnUvMTAvaW5jbHVkZS9zdGRhcmcuaCIgMSAzIDQKIyA0MCAiL3Vzci9saWIvZ2NjL3g4
Nl82NC1saW51eC1nbnUvMTAvaW5jbHVkZS9zdGRhcmcuaCIgMyA0CgojIDQwICIvdXNyL2xpYi9n
Y2MveDg2XzY0LWxpbnV4LWdudS8xMC9pbmNsdWRlL3N0ZGFyZy5oIiAzIDQKdHlwZWRlZiBfX2J1
aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKIyA5OSAiL3Vzci9saWIvZ2NjL3g4Nl82NC1s
aW51eC1nbnUvMTAvaW5jbHVkZS9zdGRhcmcuaCIgMyA0CnR5cGVkZWYgX19nbnVjX3ZhX2xpc3Qg
dmFfbGlzdDsKIyA3ICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDIKIyAxICIuL2luY2x1ZGUv
bGludXgvbGltaXRzLmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvbGltaXRzLmgi
IDEKIyA2ICIuL2luY2x1ZGUvbGludXgvbGltaXRzLmgiIDIKIyA4ICIuL2luY2x1ZGUvbGludXgv
a2VybmVsLmgiIDIKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIiAxCgoKCiMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS90eXBlcy5oIiAxCiMgNSAiLi9p
bmNsdWRlL2xpbnV4L2JpdG9wcy5oIiAyCiMgMjAgIi4vaW5jbHVkZS9saW51eC9iaXRvcHMuaCIK
CiMgMjAgIi4vaW5jbHVkZS9saW51eC9iaXRvcHMuaCIKZXh0ZXJuIHVuc2lnbmVkIGludCBfX3N3
X2h3ZWlnaHQ4KHVuc2lnbmVkIGludCB3KTsKZXh0ZXJuIHVuc2lnbmVkIGludCBfX3N3X2h3ZWln
aHQxNih1bnNpZ25lZCBpbnQgdyk7CmV4dGVybiB1bnNpZ25lZCBpbnQgX19zd19od2VpZ2h0MzIo
dW5zaWduZWQgaW50IHcpOwpleHRlcm4gdW5zaWduZWQgbG9uZyBfX3N3X2h3ZWlnaHQ2NChfX3U2
NCB3KTsKCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKIyA1MSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkCmFyY2hfc2V0X2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBs
b25nICphZGRyKQp7CiBpZiAoX19idWlsdGluX2NvbnN0YW50X3AobnIpKSB7CiAgYXNtIHZvbGF0
aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9u
ZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAib3JiICUx
LCUwIgogICA6ICIrbSIgKCoodm9sYXRpbGUgY2hhciAqKSAoKHZvaWQgKikoYWRkcikgKyAoKG5y
KT4+MykpKQogICA6ICJpcSIgKCh1OCkoMSA8PCAoKG5yKSAmIDcpKSkKICAgOiAibWVtb3J5Iik7
CiB9IGVsc2UgewogIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJc
biIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6
IiAiXG5cdGxvY2s7ICIgIiAiICJidHNxIiAiICIgIiAlMSwlMCIKICAgOiA6ICJtIiAoKih2b2xh
dGlsZSBsb25nICopIChhZGRyKSksICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKIH0KfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkCmFyY2hfX19zZXRfYml0KGxvbmcgbnIs
IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIGFzbSB2b2xhdGlsZSgiICIgImJ0c3Ei
ICIgIiAiICUxLCUwIiA6IDogIm0iICgqKHZvbGF0aWxlIGxvbmcgKikgKGFkZHIpKSwgIklyIiAo
bnIpIDogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQKYXJjaF9jbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikK
ewogaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG5yKSkgewogIGFzbSB2b2xhdGlsZSgiLnB1c2hz
ZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5c
biIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImFuZGIgJTEsJTAiCiAgIDog
IittIiAoKih2b2xhdGlsZSBjaGFyICopICgodm9pZCAqKShhZGRyKSArICgobnIpPj4zKSkpCiAg
IDogImlxIiAoKHU4KX4oMSA8PCAoKG5yKSAmIDcpKSkpOwogfSBlbHNlIHsKICBhc20gdm9sYXRp
bGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25n
IDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICIgIiAiYnRy
cSIgIiAiICIgJTEsJTAiCiAgIDogOiAibSIgKCoodm9sYXRpbGUgbG9uZyAqKSAoYWRkcikpLCAi
SXIiIChucikgOiAibWVtb3J5Iik7CiB9Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZAphcmNoX2NsZWFyX2JpdF91bmxvY2sobG9uZyBuciwgdm9sYXRpbGUgdW5zaWdu
ZWQgbG9uZyAqYWRkcikKewogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsK
IGFyY2hfY2xlYXJfYml0KG5yLCBhZGRyKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkCmFyY2hfX19jbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQg
bG9uZyAqYWRkcikKewogYXNtIHZvbGF0aWxlKCIgIiAiYnRycSIgIiAiICIgJTEsJTAiIDogOiAi
bSIgKCoodm9sYXRpbGUgbG9uZyAqKSAoYWRkcikpLCAiSXIiIChucikgOiAibWVtb3J5Iik7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbAphcmNoX2NsZWFyX2JpdF91
bmxvY2tfaXNfbmVnYXRpdmVfYnl0ZShsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICph
ZGRyKQp7CiBib29sIG5lZ2F0aXZlOwogYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9s
b2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rp
b25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiYW5kYiAlMiwlMSIKICAiXG5cdC8qIG91dHB1dCBj
b25kaXRpb24gY29kZSAiICJzIiAiKi9cbiIKICA6ICI9QGNjIiAicyIgKG5lZ2F0aXZlKSwgIitt
IiAoKih2b2xhdGlsZSBjaGFyICopIChhZGRyKSkKICA6ICJpciIgKChjaGFyKSB+KDEgPDwgbnIp
KSA6ICJtZW1vcnkiKTsKIHJldHVybiBuZWdhdGl2ZTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQKYXJjaF9fX2NsZWFyX2JpdF91bmxvY2sobG9uZyBuciwgdm9s
YXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewogYXJjaF9fX2NsZWFyX2JpdChuciwgYWRkcik7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZAphcmNoX19fY2hhbmdl
X2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQp7CiBhc20gdm9sYXRp
bGUoIiAiICJidGNxIiAiICIgIiAlMSwlMCIgOiA6ICJtIiAoKih2b2xhdGlsZSBsb25nICopIChh
ZGRyKSksICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkCmFyY2hfY2hhbmdlX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25l
ZCBsb25nICphZGRyKQp7CiBpZiAoX19idWlsdGluX2NvbnN0YW50X3AobnIpKSB7CiAgYXNtIHZv
bGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIu
bG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieG9y
YiAlMSwlMCIKICAgOiAiK20iICgqKHZvbGF0aWxlIGNoYXIgKikgKCh2b2lkICopKGFkZHIpICsg
KChucik+PjMpKSkKICAgOiAiaXEiICgodTgpKDEgPDwgKChucikgJiA3KSkpKTsKIH0gZWxzZSB7
CiAgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAiICIgImJ0Y3EiICIgIiAiICUxLCUwIgogICA6IDogIm0iICgqKHZvbGF0aWxlIGxvbmcg
KikgKGFkZHIpKSwgIklyIiAobnIpIDogIm1lbW9yeSIpOwogfQp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIGJvb2wKYXJjaF90ZXN0X2FuZF9zZXRfYml0KGxvbmcgbnIsIHZv
bGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xh
dGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5s
b25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICIgIiAi
YnRzcSIgIiAiICIgJVt2YWxdLCAiICIlW3Zhcl0iICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBj
b2RlICIgImMiICIqL1xuIiA6IFt2YXJdICIrbSIgKCphZGRyKSwgIj1AY2MiICJjIiAoYykgOiBb
dmFsXSAiSXIiIChucikgOiAibWVtb3J5Iik7IGM7IH0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGJvb2wKYXJjaF90ZXN0X2FuZF9zZXRfYml0X2xvY2sobG9uZyBuciwg
dm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewogcmV0dXJuIGFyY2hfdGVzdF9hbmRfc2V0
X2JpdChuciwgYWRkcik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9v
bAphcmNoX19fdGVzdF9hbmRfc2V0X2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25n
ICphZGRyKQp7CiBib29sIG9sZGJpdDsKCiBhc20oIiAiICJidHNxIiAiICIgIiAlMiwlMSIKICAg
ICAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJjIiAiKi9cbiIKICAgICA6ICI9QGNj
IiAiYyIgKG9sZGJpdCkKICAgICA6ICJtIiAoKih2b2xhdGlsZSBsb25nICopIChhZGRyKSksICJJ
ciIgKG5yKSA6ICJtZW1vcnkiKTsKIHJldHVybiBvbGRiaXQ7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgYm9vbAphcmNoX3Rlc3RfYW5kX2NsZWFyX2JpdChsb25nIG5yLCB2
b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQp7CiByZXR1cm4gKHsgYm9vbCBjOyBhc20gdm9s
YXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIu
bG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiICIg
ImJ0cnEiICIgIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24g
Y29kZSAiICJjIiAiKi9cbiIgOiBbdmFyXSAiK20iICgqYWRkciksICI9QGNjIiAiYyIgKGMpIDog
W3ZhbF0gIklyIiAobnIpIDogIm1lbW9yeSIpOyBjOyB9KTsKfQojIDE3MyAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9iaXRvcHMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBi
b29sCmFyY2hfX190ZXN0X2FuZF9jbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQg
bG9uZyAqYWRkcikKewogYm9vbCBvbGRiaXQ7CgogYXNtIHZvbGF0aWxlKCIgIiAiYnRycSIgIiAi
ICIgJTIsJTEiCiAgICAgICAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJjIiAiKi9c
biIKICAgICAgIDogIj1AY2MiICJjIiAob2xkYml0KQogICAgICAgOiAibSIgKCoodm9sYXRpbGUg
bG9uZyAqKSAoYWRkcikpLCAiSXIiIChucikgOiAibWVtb3J5Iik7CiByZXR1cm4gb2xkYml0Owp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wKYXJjaF9fX3Rlc3RfYW5k
X2NoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewogYm9v
bCBvbGRiaXQ7CgogYXNtIHZvbGF0aWxlKCIgIiAiYnRjcSIgIiAiICIgJTIsJTEiCiAgICAgICAi
XG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJjIiAiKi9cbiIKICAgICAgIDogIj1AY2Mi
ICJjIiAob2xkYml0KQogICAgICAgOiAibSIgKCoodm9sYXRpbGUgbG9uZyAqKSAoYWRkcikpLCAi
SXIiIChucikgOiAibWVtb3J5Iik7CgogcmV0dXJuIG9sZGJpdDsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBib29sCmFyY2hfdGVzdF9hbmRfY2hhbmdlX2JpdChsb25nIG5y
LCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQp7CiByZXR1cm4gKHsgYm9vbCBjOyBhc20g
dm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4i
ICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAi
ICIgImJ0Y3EiICIgIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRp
b24gY29kZSAiICJjIiAiKi9cbiIgOiBbdmFyXSAiK20iICgqYWRkciksICI9QGNjIiAiYyIgKGMp
IDogW3ZhbF0gIklyIiAobnIpIDogIm1lbW9yeSIpOyBjOyB9KTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBib29sIGNvbnN0YW50X3Rlc3RfYml0KGxvbmcgbnIsIGNvbnN0
IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIHJldHVybiAoKDFVTCA8PCAobnIgJiAo
NjQgLTEpKSkgJgogIChhZGRyW25yID4+IDZdKSkgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBib29sIHZhcmlhYmxlX3Rlc3RfYml0KGxvbmcgbnIsIHZvbGF0aWxl
IGNvbnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIGJvb2wgb2xkYml0OwoKIGFzbSB2b2xhdGls
ZSgiICIgImJ0cSIgIiAiICIgJTIsJTEiCiAgICAgICAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24g
Y29kZSAiICJjIiAiKi9cbiIKICAgICAgIDogIj1AY2MiICJjIiAob2xkYml0KQogICAgICAgOiAi
bSIgKCoodW5zaWduZWQgbG9uZyAqKWFkZHIpLCAiSXIiIChucikgOiAibWVtb3J5Iik7CgogcmV0
dXJuIG9sZGJpdDsKfQojIDIzMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBsb25nIF9fZmZzKHVuc2ln
bmVkIGxvbmcgd29yZCkKewogYXNtKCJyZXA7IGJzZiAlMSwlMCIKICA6ICI9ciIgKHdvcmQpCiAg
OiAicm0iICh3b3JkKSk7CiByZXR1cm4gd29yZDsKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBsb25nIGZmeih1bnNpZ25lZCBsb25nIHdvcmQpCnsK
IGFzbSgicmVwOyBic2YgJTEsJTAiCiAgOiAiPXIiICh3b3JkKQogIDogInIiICh+d29yZCkpOwog
cmV0dXJuIHdvcmQ7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dW5zaWduZWQgbG9uZyBfX2Zscyh1bnNpZ25lZCBsb25nIHdvcmQpCnsKIGFzbSgiYnNyICUxLCUw
IgogICAgIDogIj1yIiAod29yZCkKICAgICA6ICJybSIgKHdvcmQpKTsKIHJldHVybiB3b3JkOwp9
CiMgMjgzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIGludCBmZnMoaW50IHgpCnsKIGludCByOwojIDI5NyAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIKIGFzbSgiYnNmbCAlMSwlMCIKICAgICA6ICI9ciIg
KHIpCiAgICAgOiAicm0iICh4KSwgIjAiICgtMSkpOwojIDMxMCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9iaXRvcHMuaCIKIHJldHVybiByICsgMTsKfQojIDMyNCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9iaXRvcHMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgZmxz
KHVuc2lnbmVkIGludCB4KQp7CiBpbnQgcjsKIyAzMzggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Yml0b3BzLmgiCiBhc20oImJzcmwgJTEsJTAiCiAgICAgOiAiPXIiIChyKQogICAgIDogInJtIiAo
eCksICIwIiAoLTEpKTsKIyAzNTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCiBy
ZXR1cm4gciArIDE7Cn0KIyAzNjYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGZsczY0KF9fdTY0IHgpCnsKIGlu
dCBiaXRwb3MgPSAtMTsKCgoKCgogYXNtKCJic3JxICUxLCVxMCIKICAgICA6ICIrciIgKGJpdHBv
cykKICAgICA6ICJybSIgKHgpKTsKIHJldHVybiBiaXRwb3MgKyAxOwp9CgoKCgojIDEgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvZmluZC5oIiAxCiMgMTUgIi4vaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9iaXRvcHMvZmluZC5oIgpleHRlcm4gdW5zaWduZWQgbG9uZyBmaW5kX25leHRfYml0KGNv
bnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIsIHVuc2lnbmVkIGxvbmcKICBzaXplLCB1bnNpZ25lZCBs
b25nIG9mZnNldCk7CiMgMzAgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvZmluZC5oIgpl
eHRlcm4gdW5zaWduZWQgbG9uZyBmaW5kX25leHRfYW5kX2JpdChjb25zdCB1bnNpZ25lZCBsb25n
ICphZGRyMSwKICBjb25zdCB1bnNpZ25lZCBsb25nICphZGRyMiwgdW5zaWduZWQgbG9uZyBzaXpl
LAogIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKIyA0NSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2Jp
dG9wcy9maW5kLmgiCmV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF96ZXJvX2JpdChjb25z
dCB1bnNpZ25lZCBsb25nICphZGRyLCB1bnNpZ25lZAogIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9u
ZyBvZmZzZXQpOwojIDU5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2ZpbmQuaCIKZXh0
ZXJuIHVuc2lnbmVkIGxvbmcgZmluZF9maXJzdF9iaXQoY29uc3QgdW5zaWduZWQgbG9uZyAqYWRk
ciwKICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwojIDcwICIuL2luY2x1ZGUvYXNtLWdlbmVy
aWMvYml0b3BzL2ZpbmQuaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZmluZF9maXJzdF96ZXJvX2Jp
dChjb25zdCB1bnNpZ25lZCBsb25nICphZGRyLAogICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwoj
IDkzICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2ZpbmQuaCIKZXh0ZXJuIHVuc2lnbmVk
IGxvbmcgZmluZF9uZXh0X2NsdW1wOCh1bnNpZ25lZCBsb25nICpjbHVtcCwKICAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIsCiAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHVu
c2lnbmVkIGxvbmcgb2Zmc2V0KTsKIyAzODQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3Bz
LmgiIDIKCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9zY2hlZC5oIiAxCgoKCgoK
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgiIDEKIyA3
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL3NjaGVkLmgiIDIKCgoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHNjaGVk
X2ZpbmRfZmlyc3RfYml0KGNvbnN0IHVuc2lnbmVkIGxvbmcgKmIpCnsKCiBpZiAoYlswXSkKICBy
ZXR1cm4gX19mZnMoYlswXSk7CiByZXR1cm4gX19mZnMoYlsxXSkgKyA2NDsKIyAzMCAiLi9pbmNs
dWRlL2FzbS1nZW5lcmljL2JpdG9wcy9zY2hlZC5oIgp9CiMgMzg2ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2JpdG9wcy5oIiAyCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXJjaF9od2Vp
Z2h0LmgiIDEKIyAxNSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcmNoX2h3ZWlnaHQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBpbnQgX19hcmNoX2h3ZWln
aHQzMih1bnNpZ25lZCBpbnQgdykKewogdW5zaWduZWQgaW50IHJlczsKCiBhc20gKCIjIEFMVDog
b2xkbnN0clxuIiAiNjYxOlxuXHQiICJjYWxsIF9fc3dfaHdlaWdodDMyIiAiXG42NjI6XG4iICIj
IEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikt
KCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAu
YWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2
NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCA0KjMyKzIzKSIgIlxuIiAiIC5ieXRlICIgIjY2
MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIg
LmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24g
LmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIx
IiAiXG4iICI2NjQiIjEiIjpcblx0IiAicG9wY250bCAlMSwgJTAiICJcbiIgIjY2NSIiMSIgIjpc
biIgIi5wb3BzZWN0aW9uXG4iCiAgICA6ICI9IiJhIiAocmVzKQogICAgOiAiRCIgKHcpKTsKCiBy
ZXR1cm4gcmVzOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgX19hcmNoX2h3ZWlnaHQxNih1bnNpZ25lZCBpbnQg
dykKewogcmV0dXJuIF9fYXJjaF9od2VpZ2h0MzIodyAmIDB4ZmZmZik7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGlu
dCBfX2FyY2hfaHdlaWdodDgodW5zaWduZWQgaW50IHcpCnsKIHJldHVybiBfX2FyY2hfaHdlaWdo
dDMyKHcgJiAweGZmKTsKfQojIDQzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FyY2hfaHdlaWdo
dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgX19h
cmNoX2h3ZWlnaHQ2NChfX3U2NCB3KQp7CiB1bnNpZ25lZCBsb25nIHJlczsKCiBhc20gKCIjIEFM
VDogb2xkbnN0clxuIiAiNjYxOlxuXHQiICJjYWxsIF9fc3dfaHdlaWdodDY0IiAiXG42NjI6XG4i
ICIjIEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IiktKCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIi
ZiIgIiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlv
biAuYWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAi
ICI2NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCA0KjMyKzIzKSIgIlxuIiAiIC5ieXRlICIg
IjY2MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4i
ICIgLmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rp
b24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAi
ICIxIiAiXG4iICI2NjQiIjEiIjpcblx0IiAicG9wY250cSAlMSwgJTAiICJcbiIgIjY2NSIiMSIg
IjpcbiIgIi5wb3BzZWN0aW9uXG4iCiAgICA6ICI9IiJhIiAocmVzKQogICAgOiAiRCIgKHcpKTsK
CiByZXR1cm4gcmVzOwp9CiMgMzg4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIiAy
CgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvY29uc3RfaHdlaWdodC5oIiAxCiMg
MzkwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIiAyCgojIDEgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIiAxCiMgMjYgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF9iaXQo
bG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3Jp
dGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogYXJjaF9zZXRfYml0KG5yLCBh
ZGRyKTsKfQojIDM5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1h
dG9taWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBjbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAq
YWRkcikKewoga2FzYW5fY2hlY2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9u
ZykpOwogYXJjaF9jbGVhcl9iaXQobnIsIGFkZHIpOwp9CiMgNTUgIi4vaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNoYW5nZV9iaXQobG9uZyBu
ciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3JpdGUoYWRk
ciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogYXJjaF9jaGFuZ2VfYml0KG5yLCBhZGRy
KTsKfQojIDY4ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1hdG9t
aWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCB0ZXN0X2FuZF9zZXRfYml0KGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxv
bmcgKmFkZHIpCnsKIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9m
KGxvbmcpKTsKIHJldHVybiBhcmNoX3Rlc3RfYW5kX3NldF9iaXQobnIsIGFkZHIpOwp9CiMgODEg
Ii4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IHRlc3RfYW5kX2NsZWFyX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRy
KQp7CiBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCksIHNpemVvZihsb25nKSk7
CiByZXR1cm4gYXJjaF90ZXN0X2FuZF9jbGVhcl9iaXQobnIsIGFkZHIpOwp9CiMgOTQgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRlc3Rf
YW5kX2NoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewog
a2FzYW5fY2hlY2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0
dXJuIGFyY2hfdGVzdF9hbmRfY2hhbmdlX2JpdChuciwgYWRkcik7Cn0KIyAzOTIgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0
b3BzL2luc3RydW1lbnRlZC1ub24tYXRvbWljLmgiIDEKIyAyNSAiLi9pbmNsdWRlL2FzbS1nZW5l
cmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtbm9uLWF0b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fc2V0X2JpdChsb25n
IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQp7CiBrYXNhbl9jaGVja193cml0ZShh
ZGRyICsgKChucikgLyA2NCksIHNpemVvZihsb25nKSk7CiBhcmNoX19fc2V0X2JpdChuciwgYWRk
cik7Cn0KIyA0MCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtbm9u
LWF0b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIF9fY2xlYXJfYml0KGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxv
bmcgKmFkZHIpCnsKIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9m
KGxvbmcpKTsKIGFyY2hfX19jbGVhcl9iaXQobnIsIGFkZHIpOwp9CiMgNTUgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLW5vbi1hdG9taWMuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2NoYW5n
ZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hl
Y2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogYXJjaF9fX2NoYW5n
ZV9iaXQobnIsIGFkZHIpOwp9CiMgNjkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5z
dHJ1bWVudGVkLW5vbi1hdG9taWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBfX3Rlc3RfYW5kX3NldF9iaXQobG9uZyBuciwg
dm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3JpdGUoYWRkciAr
ICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0dXJuIGFyY2hfX190ZXN0X2FuZF9zZXRf
Yml0KG5yLCBhZGRyKTsKfQojIDgzICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3Ry
dW1lbnRlZC1ub24tYXRvbWljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgX190ZXN0X2FuZF9jbGVhcl9iaXQobG9uZyBuciwg
dm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3JpdGUoYWRkciAr
ICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0dXJuIGFyY2hfX190ZXN0X2FuZF9jbGVh
cl9iaXQobnIsIGFkZHIpOwp9CiMgOTcgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5z
dHJ1bWVudGVkLW5vbi1hdG9taWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBfX3Rlc3RfYW5kX2NoYW5nZV9iaXQobG9uZyBu
ciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3JpdGUoYWRk
ciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0dXJuIGFyY2hfX190ZXN0X2FuZF9j
aGFuZ2VfYml0KG5yLCBhZGRyKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRlc3RfYml0KGxvbmcgbnIsIGNvbnN0
IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIGthc2FuX2NoZWNrX3JlYWQoYWRkciAr
ICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0dXJuIChfX2J1aWx0aW5fY29uc3RhbnRf
cCgobnIpKSA/IGNvbnN0YW50X3Rlc3RfYml0KChuciksIChhZGRyKSkgOiB2YXJpYWJsZV90ZXN0
X2JpdCgobnIpLCAoYWRkcikpKTsKfQojIDM5MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRv
cHMuaCIgMgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWxv
Y2suaCIgMQojIDIzICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1s
b2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgY2xlYXJfYml0X3VubG9jayhsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBs
b25nICphZGRyKQp7CiBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCksIHNpemVv
Zihsb25nKSk7CiBhcmNoX2NsZWFyX2JpdF91bmxvY2sobnIsIGFkZHIpOwp9CiMgMzggIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWxvY2suaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2NsZWFy
X2JpdF91bmxvY2sobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2Fz
YW5fY2hlY2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogYXJjaF9f
X2NsZWFyX2JpdF91bmxvY2sobnIsIGFkZHIpOwp9CiMgNTMgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9iaXRvcHMvaW5zdHJ1bWVudGVkLWxvY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0ZXN0X2FuZF9zZXRfYml0X2xvY2so
bG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3Jp
dGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0dXJuIGFyY2hfdGVzdF9h
bmRfc2V0X2JpdF9sb2NrKG5yLCBhZGRyKTsKfQojIDcxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMv
Yml0b3BzL2luc3RydW1lbnRlZC1sb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKY2xlYXJfYml0X3VubG9ja19pc19uZWdh
dGl2ZV9ieXRlKGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIGthc2Fu
X2NoZWNrX3dyaXRlKGFkZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKIHJldHVybiBh
cmNoX2NsZWFyX2JpdF91bmxvY2tfaXNfbmVnYXRpdmVfYnl0ZShuciwgYWRkcik7Cn0KIyAzOTQg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2FzbS1n
ZW5lcmljL2JpdG9wcy9sZS5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0
ZWQvdWFwaS9hc20vdHlwZXMuaCIgMQojIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMv
bGUuaCIgMgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF96ZXJvX2JpdF9sZShjb25zdCB2
b2lkICphZGRyLAogIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpCnsK
IHJldHVybiBmaW5kX25leHRfemVyb19iaXQoYWRkciwgc2l6ZSwgb2Zmc2V0KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWdu
ZWQgbG9uZyBmaW5kX25leHRfYml0X2xlKGNvbnN0IHZvaWQgKmFkZHIsCiAgdW5zaWduZWQgbG9u
ZyBzaXplLCB1bnNpZ25lZCBsb25nIG9mZnNldCkKewogcmV0dXJuIGZpbmRfbmV4dF9iaXQoYWRk
ciwgc2l6ZSwgb2Zmc2V0KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBmaW5kX2ZpcnN0X3plcm9fYml0X2xl
KGNvbnN0IHZvaWQgKmFkZHIsCiAgdW5zaWduZWQgbG9uZyBzaXplKQp7CiByZXR1cm4gZmluZF9m
aXJzdF96ZXJvX2JpdChhZGRyLCBzaXplKTsKfQojIDUzICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMv
Yml0b3BzL2xlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCB0ZXN0X2JpdF9sZShpbnQgbnIsIGNvbnN0IHZvaWQgKmFkZHIpCnsK
IHJldHVybiB0ZXN0X2JpdChuciBeIDAsIGFkZHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF9iaXRfbGUoaW50IG5y
LCB2b2lkICphZGRyKQp7CiBzZXRfYml0KG5yIF4gMCwgYWRkcik7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY2xlYXJfYml0
X2xlKGludCBuciwgdm9pZCAqYWRkcikKewogY2xlYXJfYml0KG5yIF4gMCwgYWRkcik7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgX19zZXRfYml0X2xlKGludCBuciwgdm9pZCAqYWRkcikKewogX19zZXRfYml0KG5yIF4gMCwg
YWRkcik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgX19jbGVhcl9iaXRfbGUoaW50IG5yLCB2b2lkICphZGRyKQp7CiBfX2Ns
ZWFyX2JpdChuciBeIDAsIGFkZHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGVzdF9hbmRfc2V0X2JpdF9sZShpbnQgbnIs
IHZvaWQgKmFkZHIpCnsKIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KG5yIF4gMCwgYWRkcik7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCB0ZXN0X2FuZF9jbGVhcl9iaXRfbGUoaW50IG5yLCB2b2lkICphZGRyKQp7CiByZXR1cm4g
dGVzdF9hbmRfY2xlYXJfYml0KG5yIF4gMCwgYWRkcik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX3Rlc3RfYW5kX3NldF9i
aXRfbGUoaW50IG5yLCB2b2lkICphZGRyKQp7CiByZXR1cm4gX190ZXN0X2FuZF9zZXRfYml0KG5y
IF4gMCwgYWRkcik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBfX3Rlc3RfYW5kX2NsZWFyX2JpdF9sZShpbnQgbnIsIHZvaWQg
KmFkZHIpCnsKIHJldHVybiBfX3Rlc3RfYW5kX2NsZWFyX2JpdChuciBeIDAsIGFkZHIpOwp9CiMg
Mzk2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIiAyCgojIDEgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9iaXRvcHMvZXh0Mi1hdG9taWMtc2V0Yml0LmgiIDEKIyAzOTggIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKIyAzMCAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5o
IiAyCiMgNjUgIi4vaW5jbHVkZS9saW51eC9iaXRvcHMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGdldF9iaXRtYXNrX29yZGVy
KHVuc2lnbmVkIGludCBjb3VudCkKewogaW50IG9yZGVyOwoKIG9yZGVyID0gZmxzKGNvdW50KTsK
IHJldHVybiBvcmRlcjsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB1bnNp
Z25lZCBsb25nIGh3ZWlnaHRfbG9uZyh1bnNpZ25lZCBsb25nIHcpCnsKIHJldHVybiBzaXplb2Yo
dykgPT0gNCA/IChfX2J1aWx0aW5fY29uc3RhbnRfcCh3KSA/ICgoKCh1bnNpZ25lZCBpbnQpICgo
ISEoKHcpICYgKDFVTEwgPDwgMCkpKSArICghISgodykgJiAoMVVMTCA8PCAxKSkpICsgKCEhKCh3
KSAmICgxVUxMIDw8IDIpKSkgKyAoISEoKHcpICYgKDFVTEwgPDwgMykpKSArICghISgodykgJiAo
MVVMTCA8PCA0KSkpICsgKCEhKCh3KSAmICgxVUxMIDw8IDUpKSkgKyAoISEoKHcpICYgKDFVTEwg
PDwgNikpKSArICghISgodykgJiAoMVVMTCA8PCA3KSkpKSkgKyAoKHVuc2lnbmVkIGludCkgKCgh
ISgoKHcpID4+IDgpICYgKDFVTEwgPDwgMCkpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwg
MSkpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgMikpKSArICghISgoKHcpID4+IDgpICYg
KDFVTEwgPDwgMykpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgNCkpKSArICghISgoKHcp
ID4+IDgpICYgKDFVTEwgPDwgNSkpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgNikpKSAr
ICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgNykpKSkpKSArICgoKHVuc2lnbmVkIGludCkgKCgh
ISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDApKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8
PCAxKSkpICsgKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwgMikpKSArICghISgoKHcpID4+IDE2
KSAmICgxVUxMIDw8IDMpKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCA0KSkpICsgKCEh
KCgodykgPj4gMTYpICYgKDFVTEwgPDwgNSkpKSArICghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8
IDYpKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCA3KSkpKSkgKyAoKHVuc2lnbmVkIGlu
dCkgKCghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAwKSkpICsgKCEhKCgoKHcpID4+
IDE2KSA+PiA4KSAmICgxVUxMIDw8IDEpKSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFV
TEwgPDwgMikpKSArICghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAzKSkpICsgKCEh
KCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKCgodykgPj4gMTYpID4+
IDgpICYgKDFVTEwgPDwgNSkpKSArICghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCA2
KSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDcpKSkpKSkpIDogX19hcmNo
X2h3ZWlnaHQzMih3KSkgOiAoX19idWlsdGluX2NvbnN0YW50X3AodykgPyAoKCgoKHVuc2lnbmVk
IGludCkgKCghISgodykgJiAoMVVMTCA8PCAwKSkpICsgKCEhKCh3KSAmICgxVUxMIDw8IDEpKSkg
KyAoISEoKHcpICYgKDFVTEwgPDwgMikpKSArICghISgodykgJiAoMVVMTCA8PCAzKSkpICsgKCEh
KCh3KSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKHcpICYgKDFVTEwgPDwgNSkpKSArICghISgodykg
JiAoMVVMTCA8PCA2KSkpICsgKCEhKCh3KSAmICgxVUxMIDw8IDcpKSkpKSArICgodW5zaWduZWQg
aW50KSAoKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCAwKSkpICsgKCEhKCgodykgPj4gOCkgJiAo
MVVMTCA8PCAxKSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgodykg
Pj4gOCkgJiAoMVVMTCA8PCAzKSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCA0KSkpICsg
KCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCA1KSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8
PCA2KSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCA3KSkpKSkpICsgKCgodW5zaWduZWQg
aW50KSAoKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwgMCkpKSArICghISgoKHcpID4+IDE2KSAm
ICgxVUxMIDw8IDEpKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgo
dykgPj4gMTYpICYgKDFVTEwgPDwgMykpKSArICghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDQp
KSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCA1KSkpICsgKCEhKCgodykgPj4gMTYpICYg
KDFVTEwgPDwgNikpKSArICghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDcpKSkpKSArICgodW5z
aWduZWQgaW50KSAoKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDApKSkgKyAoISEo
KCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgMSkpKSArICghISgoKCh3KSA+PiAxNikgPj4g
OCkgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDMp
KSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgNCkpKSArICghISgoKCh3KSA+
PiAxNikgPj4gOCkgJiAoMVVMTCA8PCA1KSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgx
VUxMIDw8IDYpKSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgNykpKSkpKSkg
KyAoKCgodW5zaWduZWQgaW50KSAoKCEhKCgodykgPj4gMzIpICYgKDFVTEwgPDwgMCkpKSArICgh
ISgoKHcpID4+IDMyKSAmICgxVUxMIDw8IDEpKSkgKyAoISEoKCh3KSA+PiAzMikgJiAoMVVMTCA8
PCAyKSkpICsgKCEhKCgodykgPj4gMzIpICYgKDFVTEwgPDwgMykpKSArICghISgoKHcpID4+IDMy
KSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKCh3KSA+PiAzMikgJiAoMVVMTCA8PCA1KSkpICsgKCEh
KCgodykgPj4gMzIpICYgKDFVTEwgPDwgNikpKSArICghISgoKHcpID4+IDMyKSAmICgxVUxMIDw8
IDcpKSkpKSArICgodW5zaWduZWQgaW50KSAoKCEhKCgoKHcpID4+IDMyKSA+PiA4KSAmICgxVUxM
IDw8IDApKSkgKyAoISEoKCgodykgPj4gMzIpID4+IDgpICYgKDFVTEwgPDwgMSkpKSArICghISgo
KCh3KSA+PiAzMikgPj4gOCkgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgoKHcpID4+IDMyKSA+PiA4
KSAmICgxVUxMIDw8IDMpKSkgKyAoISEoKCgodykgPj4gMzIpID4+IDgpICYgKDFVTEwgPDwgNCkp
KSArICghISgoKCh3KSA+PiAzMikgPj4gOCkgJiAoMVVMTCA8PCA1KSkpICsgKCEhKCgoKHcpID4+
IDMyKSA+PiA4KSAmICgxVUxMIDw8IDYpKSkgKyAoISEoKCgodykgPj4gMzIpID4+IDgpICYgKDFV
TEwgPDwgNykpKSkpKSArICgoKHVuc2lnbmVkIGludCkgKCghISgoKCh3KSA+PiAzMikgPj4gMTYp
ICYgKDFVTEwgPDwgMCkpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgMSkp
KSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgMikpKSArICghISgoKCh3KSA+
PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgMykpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYg
KDFVTEwgPDwgNCkpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgNSkpKSAr
ICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgNikpKSArICghISgoKCh3KSA+PiAz
MikgPj4gMTYpICYgKDFVTEwgPDwgNykpKSkpICsgKCh1bnNpZ25lZCBpbnQpICgoISEoKCgoKHcp
ID4+IDMyKSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAwKSkpICsgKCEhKCgoKCh3KSA+PiAzMikg
Pj4gMTYpID4+IDgpICYgKDFVTEwgPDwgMSkpKSArICghISgoKCgodykgPj4gMzIpID4+IDE2KSA+
PiA4KSAmICgxVUxMIDw8IDIpKSkgKyAoISEoKCgoKHcpID4+IDMyKSA+PiAxNikgPj4gOCkgJiAo
MVVMTCA8PCAzKSkpICsgKCEhKCgoKCh3KSA+PiAzMikgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwg
NCkpKSArICghISgoKCgodykgPj4gMzIpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDUpKSkgKyAo
ISEoKCgoKHcpID4+IDMyKSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCA2KSkpICsgKCEhKCgoKCh3
KSA+PiAzMikgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgNykpKSkpKSkpIDogX19hcmNoX2h3ZWln
aHQ2NCh3KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191NjQgcm9sNjQoX191NjQgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPDwgKHNoaWZ0ICYgNjMpKSB8ICh3b3JkID4+ICgoLXNoaWZ0
KSAmIDYzKSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191NjQgcm9yNjQoX191NjQgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPj4gKHNoaWZ0ICYgNjMpKSB8ICh3b3JkIDw8ICgoLXNoaWZ0
KSAmIDYzKSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191MzIgcm9sMzIoX191MzIgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPDwgKHNoaWZ0ICYgMzEpKSB8ICh3b3JkID4+ICgoLXNoaWZ0
KSAmIDMxKSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191MzIgcm9yMzIoX191MzIgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPj4gKHNoaWZ0ICYgMzEpKSB8ICh3b3JkIDw8ICgoLXNoaWZ0
KSAmIDMxKSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191MTYgcm9sMTYoX191MTYgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPDwgKHNoaWZ0ICYgMTUpKSB8ICh3b3JkID4+ICgoLXNoaWZ0
KSAmIDE1KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191MTYgcm9yMTYoX191MTYgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPj4gKHNoaWZ0ICYgMTUpKSB8ICh3b3JkIDw8ICgoLXNoaWZ0
KSAmIDE1KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191OCByb2w4KF9fdTggd29yZCwgdW5zaWduZWQgaW50IHNoaWZ0
KQp7CiByZXR1cm4gKHdvcmQgPDwgKHNoaWZ0ICYgNykpIHwgKHdvcmQgPj4gKCgtc2hpZnQpICYg
NykpOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fdTggcm9yOChfX3U4IHdvcmQsIHVuc2lnbmVkIGludCBzaGlmdCkKewog
cmV0dXJuICh3b3JkID4+IChzaGlmdCAmIDcpKSB8ICh3b3JkIDw8ICgoLXNoaWZ0KSAmIDcpKTsK
fQojIDE2NSAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX3MzMiBzaWduX2V4dGVuZDMyKF9f
dTMyIHZhbHVlLCBpbnQgaW5kZXgpCnsKIF9fdTggc2hpZnQgPSAzMSAtIGluZGV4OwogcmV0dXJu
IChfX3MzMikodmFsdWUgPDwgc2hpZnQpID4+IHNoaWZ0Owp9CgoKCgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fczY0IHNpZ25fZXh0
ZW5kNjQoX191NjQgdmFsdWUsIGludCBpbmRleCkKewogX191OCBzaGlmdCA9IDYzIC0gaW5kZXg7
CiByZXR1cm4gKF9fczY0KSh2YWx1ZSA8PCBzaGlmdCkgPj4gc2hpZnQ7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGZs
c19sb25nKHVuc2lnbmVkIGxvbmcgbCkKewogaWYgKHNpemVvZihsKSA9PSA0KQogIHJldHVybiBm
bHMobCk7CiByZXR1cm4gZmxzNjQobCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBnZXRfY291bnRfb3JkZXIodW5zaWduZWQg
aW50IGNvdW50KQp7CiBpbnQgb3JkZXI7Cgogb3JkZXIgPSBmbHMoY291bnQpIC0gMTsKIGlmIChj
b3VudCAmIChjb3VudCAtIDEpKQogIG9yZGVyKys7CiByZXR1cm4gb3JkZXI7Cn0KCgoKCgoKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBnZXRfY291bnRfb3JkZXJfbG9uZyh1bnNpZ25lZCBsb25nIGwpCnsKIGlmIChsID09IDBVTCkK
ICByZXR1cm4gLTE7CiBlbHNlIGlmIChsICYgKGwgLSAxVUwpKQogIHJldHVybiAoaW50KWZsc19s
b25nKGwpOwogZWxzZQogIHJldHVybiAoaW50KWZsc19sb25nKGwpIC0gMTsKfQojIDIyMyAiLi9p
bmNsdWRlL2xpbnV4L2JpdG9wcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9fZmZzNjQodTY0IHdvcmQpCnsK
CgoKCgoKIHJldHVybiBfX2ZmcygodW5zaWduZWQgbG9uZyl3b3JkKTsKfQoKCgoKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGFzc2lnbl9iaXQobG9uZyBuciwgdm9s
YXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkciwKICAgICAgICAgICBib29sIHZhbHVlKQp7CiBpZiAo
dmFsdWUpCiAgc2V0X2JpdChuciwgYWRkcik7CiBlbHNlCiAgY2xlYXJfYml0KG5yLCBhZGRyKTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fYXNzaWduX2JpdChs
b25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyLAogICAgICBib29sIHZhbHVlKQp7
CiBpZiAodmFsdWUpCiAgX19zZXRfYml0KG5yLCBhZGRyKTsKIGVsc2UKICBfX2NsZWFyX2JpdChu
ciwgYWRkcik7Cn0KIyAyOTkgIi4vaW5jbHVkZS9saW51eC9iaXRvcHMuaCIKZXh0ZXJuIHVuc2ln
bmVkIGxvbmcgZmluZF9sYXN0X2JpdChjb25zdCB1bnNpZ25lZCBsb25nICphZGRyLAogICAgICAg
dW5zaWduZWQgbG9uZyBzaXplKTsKIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAyCiMg
MSAiLi9pbmNsdWRlL2xpbnV4L2xvZzIuaCIgMQojIDIxICIuL2luY2x1ZGUvbGludXgvbG9nMi5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChjb25zdCkpCmludCBfX2lsb2cyX3UzMih1MzIgbikKewogcmV0dXJu
IGZscyhuKSAtIDE7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoY29uc3QpKQppbnQgX19pbG9nMl91NjQo
dTY0IG4pCnsKIHJldHVybiBmbHM2NChuKSAtIDE7Cn0KIyA0NCAiLi9pbmNsdWRlL2xpbnV4L2xv
ZzIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoY29uc3QpKQpib29sIGlzX3Bvd2VyX29mXzIodW5zaWduZWQg
bG9uZyBuKQp7CiByZXR1cm4gKG4gIT0gMCAmJiAoKG4gJiAobiAtIDEpKSA9PSAwKSk7Cn0KCgoK
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChjb25zdCkpCnVuc2lnbmVkIGxvbmcgX19yb3VuZHVwX3Bvd19vZl90
d28odW5zaWduZWQgbG9uZyBuKQp7CiByZXR1cm4gMVVMIDw8IGZsc19sb25nKG4gLSAxKTsKfQoK
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKGNvbnN0KSkKdW5zaWduZWQgbG9uZyBfX3JvdW5kZG93bl9wb3df
b2ZfdHdvKHVuc2lnbmVkIGxvbmcgbikKewogcmV0dXJuIDFVTCA8PCAoZmxzX2xvbmcobikgLSAx
KTsKfQojIDE5NyAiLi9pbmNsdWRlL2xpbnV4L2xvZzIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19jb25z
dF9fKSkKaW50IF9fb3JkZXJfYmFzZV8yKHVuc2lnbmVkIGxvbmcgbikKewogcmV0dXJuIG4gPiAx
ID8gKCBfX2J1aWx0aW5fY29uc3RhbnRfcChuIC0gMSkgPyAoIF9fYnVpbHRpbl9jb25zdGFudF9w
KG4gLSAxKSA/ICggKG4gLSAxKSA8IDIgPyAwIDogKG4gLSAxKSAmICgxVUxMIDw8IDYzKSA/IDYz
IDogKG4gLSAxKSAmICgxVUxMIDw8IDYyKSA/IDYyIDogKG4gLSAxKSAmICgxVUxMIDw8IDYxKSA/
IDYxIDogKG4gLSAxKSAmICgxVUxMIDw8IDYwKSA/IDYwIDogKG4gLSAxKSAmICgxVUxMIDw8IDU5
KSA/IDU5IDogKG4gLSAxKSAmICgxVUxMIDw8IDU4KSA/IDU4IDogKG4gLSAxKSAmICgxVUxMIDw8
IDU3KSA/IDU3IDogKG4gLSAxKSAmICgxVUxMIDw8IDU2KSA/IDU2IDogKG4gLSAxKSAmICgxVUxM
IDw8IDU1KSA/IDU1IDogKG4gLSAxKSAmICgxVUxMIDw8IDU0KSA/IDU0IDogKG4gLSAxKSAmICgx
VUxMIDw8IDUzKSA/IDUzIDogKG4gLSAxKSAmICgxVUxMIDw8IDUyKSA/IDUyIDogKG4gLSAxKSAm
ICgxVUxMIDw8IDUxKSA/IDUxIDogKG4gLSAxKSAmICgxVUxMIDw8IDUwKSA/IDUwIDogKG4gLSAx
KSAmICgxVUxMIDw8IDQ5KSA/IDQ5IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ4KSA/IDQ4IDogKG4g
LSAxKSAmICgxVUxMIDw8IDQ3KSA/IDQ3IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ2KSA/IDQ2IDog
KG4gLSAxKSAmICgxVUxMIDw8IDQ1KSA/IDQ1IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ0KSA/IDQ0
IDogKG4gLSAxKSAmICgxVUxMIDw8IDQzKSA/IDQzIDogKG4gLSAxKSAmICgxVUxMIDw8IDQyKSA/
IDQyIDogKG4gLSAxKSAmICgxVUxMIDw8IDQxKSA/IDQxIDogKG4gLSAxKSAmICgxVUxMIDw8IDQw
KSA/IDQwIDogKG4gLSAxKSAmICgxVUxMIDw8IDM5KSA/IDM5IDogKG4gLSAxKSAmICgxVUxMIDw8
IDM4KSA/IDM4IDogKG4gLSAxKSAmICgxVUxMIDw8IDM3KSA/IDM3IDogKG4gLSAxKSAmICgxVUxM
IDw8IDM2KSA/IDM2IDogKG4gLSAxKSAmICgxVUxMIDw8IDM1KSA/IDM1IDogKG4gLSAxKSAmICgx
VUxMIDw8IDM0KSA/IDM0IDogKG4gLSAxKSAmICgxVUxMIDw8IDMzKSA/IDMzIDogKG4gLSAxKSAm
ICgxVUxMIDw8IDMyKSA/IDMyIDogKG4gLSAxKSAmICgxVUxMIDw8IDMxKSA/IDMxIDogKG4gLSAx
KSAmICgxVUxMIDw8IDMwKSA/IDMwIDogKG4gLSAxKSAmICgxVUxMIDw8IDI5KSA/IDI5IDogKG4g
LSAxKSAmICgxVUxMIDw8IDI4KSA/IDI4IDogKG4gLSAxKSAmICgxVUxMIDw8IDI3KSA/IDI3IDog
KG4gLSAxKSAmICgxVUxMIDw8IDI2KSA/IDI2IDogKG4gLSAxKSAmICgxVUxMIDw8IDI1KSA/IDI1
IDogKG4gLSAxKSAmICgxVUxMIDw8IDI0KSA/IDI0IDogKG4gLSAxKSAmICgxVUxMIDw8IDIzKSA/
IDIzIDogKG4gLSAxKSAmICgxVUxMIDw8IDIyKSA/IDIyIDogKG4gLSAxKSAmICgxVUxMIDw8IDIx
KSA/IDIxIDogKG4gLSAxKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKG4gLSAxKSAmICgxVUxMIDw8
IDE5KSA/IDE5IDogKG4gLSAxKSAmICgxVUxMIDw8IDE4KSA/IDE4IDogKG4gLSAxKSAmICgxVUxM
IDw8IDE3KSA/IDE3IDogKG4gLSAxKSAmICgxVUxMIDw8IDE2KSA/IDE2IDogKG4gLSAxKSAmICgx
VUxMIDw8IDE1KSA/IDE1IDogKG4gLSAxKSAmICgxVUxMIDw8IDE0KSA/IDE0IDogKG4gLSAxKSAm
ICgxVUxMIDw8IDEzKSA/IDEzIDogKG4gLSAxKSAmICgxVUxMIDw8IDEyKSA/IDEyIDogKG4gLSAx
KSAmICgxVUxMIDw8IDExKSA/IDExIDogKG4gLSAxKSAmICgxVUxMIDw8IDEwKSA/IDEwIDogKG4g
LSAxKSAmICgxVUxMIDw8IDkpID8gOSA6IChuIC0gMSkgJiAoMVVMTCA8PCA4KSA/IDggOiAobiAt
IDEpICYgKDFVTEwgPDwgNykgPyA3IDogKG4gLSAxKSAmICgxVUxMIDw8IDYpID8gNiA6IChuIC0g
MSkgJiAoMVVMTCA8PCA1KSA/IDUgOiAobiAtIDEpICYgKDFVTEwgPDwgNCkgPyA0IDogKG4gLSAx
KSAmICgxVUxMIDw8IDMpID8gMyA6IChuIC0gMSkgJiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0x
KSA6IChzaXplb2YobiAtIDEpIDw9IDQpID8gX19pbG9nMl91MzIobiAtIDEpIDogX19pbG9nMl91
NjQobiAtIDEpICkgKyAxIDogMDsKfQojIDIyNCAiLi9pbmNsdWRlL2xpbnV4L2xvZzIuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoY29uc3QpKQppbnQgX19iaXRzX3Blcih1bnNpZ25lZCBsb25nIG4pCnsKIGlm
IChuIDwgMikKICByZXR1cm4gMTsKIGlmIChpc19wb3dlcl9vZl8yKG4pKQogIHJldHVybiAoIF9f
YnVpbHRpbl9jb25zdGFudF9wKG4pID8gKCAoKG4pID09IDAgfHwgKG4pID09IDEpID8gMCA6ICgg
X19idWlsdGluX2NvbnN0YW50X3AoKG4pIC0gMSkgPyAoIF9fYnVpbHRpbl9jb25zdGFudF9wKChu
KSAtIDEpID8gKCAoKG4pIC0gMSkgPCAyID8gMCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYzKSA/
IDYzIDogKChuKSAtIDEpICYgKDFVTEwgPDwgNjIpID8gNjIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8
PCA2MSkgPyA2MSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYwKSA/IDYwIDogKChuKSAtIDEpICYg
KDFVTEwgPDwgNTkpID8gNTkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1OCkgPyA1OCA6ICgobikg
LSAxKSAmICgxVUxMIDw8IDU3KSA/IDU3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTYpID8gNTYg
OiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1NSkgPyA1NSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDU0
KSA/IDU0IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTMpID8gNTMgOiAoKG4pIC0gMSkgJiAoMVVM
TCA8PCA1MikgPyA1MiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDUxKSA/IDUxIDogKChuKSAtIDEp
ICYgKDFVTEwgPDwgNTApID8gNTAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0OSkgPyA0OSA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDQ4KSA/IDQ4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDcpID8g
NDcgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0NikgPyA0NiA6ICgobikgLSAxKSAmICgxVUxMIDw8
IDQ1KSA/IDQ1IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDQpID8gNDQgOiAoKG4pIC0gMSkgJiAo
MVVMTCA8PCA0MykgPyA0MyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQyKSA/IDQyIDogKChuKSAt
IDEpICYgKDFVTEwgPDwgNDEpID8gNDEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0MCkgPyA0MCA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDM5KSA/IDM5IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzgp
ID8gMzggOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzNykgPyAzNyA6ICgobikgLSAxKSAmICgxVUxM
IDw8IDM2KSA/IDM2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzUpID8gMzUgOiAoKG4pIC0gMSkg
JiAoMVVMTCA8PCAzNCkgPyAzNCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMzKSA/IDMzIDogKChu
KSAtIDEpICYgKDFVTEwgPDwgMzIpID8gMzIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzMSkgPyAz
MSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMwKSA/IDMwIDogKChuKSAtIDEpICYgKDFVTEwgPDwg
MjkpID8gMjkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyOCkgPyAyOCA6ICgobikgLSAxKSAmICgx
VUxMIDw8IDI3KSA/IDI3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjYpID8gMjYgOiAoKG4pIC0g
MSkgJiAoMVVMTCA8PCAyNSkgPyAyNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDI0KSA/IDI0IDog
KChuKSAtIDEpICYgKDFVTEwgPDwgMjMpID8gMjMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyMikg
PyAyMiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDIxKSA/IDIxIDogKChuKSAtIDEpICYgKDFVTEwg
PDwgMjApID8gMjAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxOSkgPyAxOSA6ICgobikgLSAxKSAm
ICgxVUxMIDw8IDE4KSA/IDE4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTcpID8gMTcgOiAoKG4p
IC0gMSkgJiAoMVVMTCA8PCAxNikgPyAxNiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDE1KSA/IDE1
IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTQpID8gMTQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAx
MykgPyAxMyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDEyKSA/IDEyIDogKChuKSAtIDEpICYgKDFV
TEwgPDwgMTEpID8gMTEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxMCkgPyAxMCA6ICgobikgLSAx
KSAmICgxVUxMIDw8IDkpID8gOSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDgpID8gOCA6ICgobikg
LSAxKSAmICgxVUxMIDw8IDcpID8gNyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYpID8gNiA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDUpID8gNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQpID8gNCA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDMpID8gMyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDIpID8g
MiA6IDEpIDogLTEpIDogKHNpemVvZigobikgLSAxKSA8PSA0KSA/IF9faWxvZzJfdTMyKChuKSAt
IDEpIDogX19pbG9nMl91NjQoKG4pIC0gMSkgKSArIDEpIDogX19vcmRlcl9iYXNlXzIobikgKSAr
IDE7CiByZXR1cm4gKCBfX2J1aWx0aW5fY29uc3RhbnRfcChuKSA/ICggKChuKSA9PSAwIHx8IChu
KSA9PSAxKSA/IDAgOiAoIF9fYnVpbHRpbl9jb25zdGFudF9wKChuKSAtIDEpID8gKCBfX2J1aWx0
aW5fY29uc3RhbnRfcCgobikgLSAxKSA/ICggKChuKSAtIDEpIDwgMiA/IDAgOiAoKG4pIC0gMSkg
JiAoMVVMTCA8PCA2MykgPyA2MyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYyKSA/IDYyIDogKChu
KSAtIDEpICYgKDFVTEwgPDwgNjEpID8gNjEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA2MCkgPyA2
MCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDU5KSA/IDU5IDogKChuKSAtIDEpICYgKDFVTEwgPDwg
NTgpID8gNTggOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1NykgPyA1NyA6ICgobikgLSAxKSAmICgx
VUxMIDw8IDU2KSA/IDU2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTUpID8gNTUgOiAoKG4pIC0g
MSkgJiAoMVVMTCA8PCA1NCkgPyA1NCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDUzKSA/IDUzIDog
KChuKSAtIDEpICYgKDFVTEwgPDwgNTIpID8gNTIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1MSkg
PyA1MSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDUwKSA/IDUwIDogKChuKSAtIDEpICYgKDFVTEwg
PDwgNDkpID8gNDkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0OCkgPyA0OCA6ICgobikgLSAxKSAm
ICgxVUxMIDw8IDQ3KSA/IDQ3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDYpID8gNDYgOiAoKG4p
IC0gMSkgJiAoMVVMTCA8PCA0NSkgPyA0NSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQ0KSA/IDQ0
IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDMpID8gNDMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0
MikgPyA0MiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQxKSA/IDQxIDogKChuKSAtIDEpICYgKDFV
TEwgPDwgNDApID8gNDAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzOSkgPyAzOSA6ICgobikgLSAx
KSAmICgxVUxMIDw8IDM4KSA/IDM4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzcpID8gMzcgOiAo
KG4pIC0gMSkgJiAoMVVMTCA8PCAzNikgPyAzNiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDM1KSA/
IDM1IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzQpID8gMzQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8
PCAzMykgPyAzMyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMyKSA/IDMyIDogKChuKSAtIDEpICYg
KDFVTEwgPDwgMzEpID8gMzEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzMCkgPyAzMCA6ICgobikg
LSAxKSAmICgxVUxMIDw8IDI5KSA/IDI5IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjgpID8gMjgg
OiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyNykgPyAyNyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDI2
KSA/IDI2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjUpID8gMjUgOiAoKG4pIC0gMSkgJiAoMVVM
TCA8PCAyNCkgPyAyNCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDIzKSA/IDIzIDogKChuKSAtIDEp
ICYgKDFVTEwgPDwgMjIpID8gMjIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyMSkgPyAyMSA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTkpID8g
MTkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxOCkgPyAxOCA6ICgobikgLSAxKSAmICgxVUxMIDw8
IDE3KSA/IDE3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTYpID8gMTYgOiAoKG4pIC0gMSkgJiAo
MVVMTCA8PCAxNSkgPyAxNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDE0KSA/IDE0IDogKChuKSAt
IDEpICYgKDFVTEwgPDwgMTMpID8gMTMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxMikgPyAxMiA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDExKSA/IDExIDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTAp
ID8gMTAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA5KSA/IDkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8
PCA4KSA/IDggOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA3KSA/IDcgOiAoKG4pIC0gMSkgJiAoMVVM
TCA8PCA2KSA/IDYgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1KSA/IDUgOiAoKG4pIC0gMSkgJiAo
MVVMTCA8PCA0KSA/IDQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzKSA/IDMgOiAoKG4pIC0gMSkg
JiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0xKSA6IChzaXplb2YoKG4pIC0gMSkgPD0gNCkgPyBf
X2lsb2cyX3UzMigobikgLSAxKSA6IF9faWxvZzJfdTY0KChuKSAtIDEpICkgKyAxKSA6IF9fb3Jk
ZXJfYmFzZV8yKG4pICk7Cn0KIyAxNCAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAyCgojIDEg
Ii4vaW5jbHVkZS9saW51eC9wcmludGsuaCIgMQoKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9r
ZXJuX2xldmVscy5oIiAxCiMgOCAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIiAyCgojIDEgIi4v
aW5jbHVkZS9saW51eC9jYWNoZS5oIiAxCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2tl
cm5lbC5oIiAxCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3N5c2luZm8uaCIgMQoKCgoK
CgoKc3RydWN0IHN5c2luZm8gewogX19rZXJuZWxfbG9uZ190IHVwdGltZTsKIF9fa2VybmVsX3Vs
b25nX3QgbG9hZHNbM107CiBfX2tlcm5lbF91bG9uZ190IHRvdGFscmFtOwogX19rZXJuZWxfdWxv
bmdfdCBmcmVlcmFtOwogX19rZXJuZWxfdWxvbmdfdCBzaGFyZWRyYW07CiBfX2tlcm5lbF91bG9u
Z190IGJ1ZmZlcnJhbTsKIF9fa2VybmVsX3Vsb25nX3QgdG90YWxzd2FwOwogX19rZXJuZWxfdWxv
bmdfdCBmcmVlc3dhcDsKIF9fdTE2IHByb2NzOwogX191MTYgcGFkOwogX19rZXJuZWxfdWxvbmdf
dCB0b3RhbGhpZ2g7CiBfX2tlcm5lbF91bG9uZ190IGZyZWVoaWdoOwogX191MzIgbWVtX3VuaXQ7
CiBjaGFyIF9mWzIwLTIqc2l6ZW9mKF9fa2VybmVsX3Vsb25nX3QpLXNpemVvZihfX3UzMildOwp9
OwojIDYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2tlcm5lbC5oIiAyCiMgNiAiLi9pbmNsdWRlL2xp
bnV4L2NhY2hlLmgiIDIKIyAxMCAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIiAyCgpleHRlcm4g
Y29uc3QgY2hhciBsaW51eF9iYW5uZXJbXTsKZXh0ZXJuIGNvbnN0IGNoYXIgbGludXhfcHJvY19i
YW5uZXJbXTsKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IHByaW50a19nZXRfbGV2ZWwoY29uc3QgY2hhciAqYnVmZmVyKQp7CiBp
ZiAoYnVmZmVyWzBdID09ICdcMDAxJyAmJiBidWZmZXJbMV0pIHsKICBzd2l0Y2ggKGJ1ZmZlclsx
XSkgewogIGNhc2UgJzAnIC4uLiAnNyc6CiAgY2FzZSAnYyc6CiAgIHJldHVybiBidWZmZXJbMV07
CiAgfQogfQogcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGNvbnN0IGNoYXIgKnByaW50a19za2lwX2xldmVsKGNvbnN0
IGNoYXIgKmJ1ZmZlcikKewogaWYgKHByaW50a19nZXRfbGV2ZWwoYnVmZmVyKSkKICByZXR1cm4g
YnVmZmVyICsgMjsKCiByZXR1cm4gYnVmZmVyOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25zdCBjaGFyICpwcmludGtfc2tpcF9o
ZWFkZXJzKGNvbnN0IGNoYXIgKmJ1ZmZlcikKewogd2hpbGUgKHByaW50a19nZXRfbGV2ZWwoYnVm
ZmVyKSkKICBidWZmZXIgPSBwcmludGtfc2tpcF9sZXZlbChidWZmZXIpOwoKIHJldHVybiBidWZm
ZXI7Cn0KIyA2MiAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIgpleHRlcm4gaW50IGNvbnNvbGVf
cHJpbnRrW107CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgY29uc29sZV9zaWxlbnQodm9pZCkKewogKGNvbnNvbGVfcHJp
bnRrWzBdKSA9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgY29uc29sZV92ZXJib3NlKHZvaWQpCnsKIGlmICgoY29uc29s
ZV9wcmludGtbMF0pKQogIChjb25zb2xlX3ByaW50a1swXSkgPSAxNTsKfQoKCgpleHRlcm4gY2hh
ciBkZXZrbXNnX2xvZ19zdHJbXTsKc3RydWN0IGN0bF90YWJsZTsKCmV4dGVybiBpbnQgc3VwcHJl
c3NfcHJpbnRrOwoKc3RydWN0IHZhX2Zvcm1hdCB7CiBjb25zdCBjaGFyICpmbXQ7CiB2YV9saXN0
ICp2YTsKfTsKIyAxNDIgIi4vaW5jbHVkZS9saW51eC9wcmludGsuaCIKZXh0ZXJuIF9fYXR0cmli
dXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAxLCAyKSkpCnZvaWQgZWFybHlfcHJpbnRrKGNvbnN0
IGNoYXIgKmZtdCwgLi4uKTsKCgoKCgoKZXh0ZXJuIHZvaWQgcHJpbnRrX25taV9lbnRlcih2b2lk
KTsKZXh0ZXJuIHZvaWQgcHJpbnRrX25taV9leGl0KHZvaWQpOwpleHRlcm4gdm9pZCBwcmludGtf
bm1pX2RpcmVjdF9lbnRlcih2b2lkKTsKZXh0ZXJuIHZvaWQgcHJpbnRrX25taV9kaXJlY3RfZXhp
dCh2b2lkKTsKIyAxNjIgIi4vaW5jbHVkZS9saW51eC9wcmludGsuaCIKIF9fYXR0cmlidXRlX18o
KF9fZm9ybWF0X18ocHJpbnRmLCA1LCAwKSkpCmludCB2cHJpbnRrX2VtaXQoaW50IGZhY2lsaXR5
LCBpbnQgbGV2ZWwsCiAgIGNvbnN0IGNoYXIgKmRpY3QsIHNpemVfdCBkaWN0bGVuLAogICBjb25z
dCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7CgogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhw
cmludGYsIDEsIDApKSkKaW50IHZwcmludGsoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3Mp
OwoKIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAxLCAyKSkpIF9fYXR0cmlidXRl
X18oKF9fY29sZF9fKSkKaW50IHByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLik7CgoKCgpfX2F0
dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMikpKSBfX2F0dHJpYnV0ZV9fKChfX2Nv
bGRfXykpIGludCBwcmludGtfZGVmZXJyZWQoY29uc3QgY2hhciAqZm10LCAuLi4pOwoKCgoKCgpl
eHRlcm4gaW50IF9fcHJpbnRrX3JhdGVsaW1pdChjb25zdCBjaGFyICpmdW5jKTsKCmV4dGVybiBi
b29sIHByaW50a190aW1lZF9yYXRlbGltaXQodW5zaWduZWQgbG9uZyAqY2FsbGVyX2ppZmZpZXMs
CiAgICAgICB1bnNpZ25lZCBpbnQgaW50ZXJ2YWxfbXNlYyk7CgpleHRlcm4gaW50IHByaW50a19k
ZWxheV9tc2VjOwpleHRlcm4gaW50IGRtZXNnX3Jlc3RyaWN0OwoKZXh0ZXJuIGludApkZXZrbXNn
X3N5c2N0bF9zZXRfbG9nbHZsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZv
aWQgKmJ1ZiwKICAgICBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CgpleHRlcm4gdm9pZCB3
YWtlX3VwX2tsb2dkKHZvaWQpOwoKY2hhciAqbG9nX2J1Zl9hZGRyX2dldCh2b2lkKTsKdTMyIGxv
Z19idWZfbGVuX2dldCh2b2lkKTsKdm9pZCBsb2dfYnVmX3ZtY29yZWluZm9fc2V0dXAodm9pZCk7
CnZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmli
dXRlX18oKF9fY29sZF9fKSkgc2V0dXBfbG9nX2J1ZihpbnQgZWFybHkpOwpfX2F0dHJpYnV0ZV9f
KChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMikpKSB2b2lkIGR1bXBfc3RhY2tfc2V0X2FyY2hfZGVz
Yyhjb25zdCBjaGFyICpmbXQsIC4uLik7CnZvaWQgZHVtcF9zdGFja19wcmludF9pbmZvKGNvbnN0
IGNoYXIgKmxvZ19sdmwpOwp2b2lkIHNob3dfcmVnc19wcmludF9pbmZvKGNvbnN0IGNoYXIgKmxv
Z19sdmwpOwpleHRlcm4gdm9pZCBkdW1wX3N0YWNrKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fY29s
ZF9fKSk7CmV4dGVybiB2b2lkIHByaW50a19zYWZlX2luaXQodm9pZCk7CmV4dGVybiB2b2lkIHBy
aW50a19zYWZlX2ZsdXNoKHZvaWQpOwpleHRlcm4gdm9pZCBwcmludGtfc2FmZV9mbHVzaF9vbl9w
YW5pYyh2b2lkKTsKIyAyODUgIi4vaW5jbHVkZS9saW51eC9wcmludGsuaCIKZXh0ZXJuIGludCBr
cHRyX3Jlc3RyaWN0OwojIDMzMSAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIgojIDEgIi4vaW5j
bHVkZS9saW51eC9keW5hbWljX2RlYnVnLmgiIDEKIyAxNCAiLi9pbmNsdWRlL2xpbnV4L2R5bmFt
aWNfZGVidWcuaCIKc3RydWN0IF9kZGVidWcgewoKCgoKIGNvbnN0IGNoYXIgKm1vZG5hbWU7CiBj
b25zdCBjaGFyICpmdW5jdGlvbjsKIGNvbnN0IGNoYXIgKmZpbGVuYW1lOwogY29uc3QgY2hhciAq
Zm9ybWF0OwogdW5zaWduZWQgaW50IGxpbmVubzoxODsKIyA0MCAiLi9pbmNsdWRlL2xpbnV4L2R5
bmFtaWNfZGVidWcuaCIKIHVuc2lnbmVkIGludCBmbGFnczo4OwoKIHVuaW9uIHsKICBzdHJ1Y3Qg
c3RhdGljX2tleV90cnVlIGRkX2tleV90cnVlOwogIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlIGRk
X2tleV9mYWxzZTsKIH0ga2V5OwoKfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSk7CgoKCgpp
bnQgZGRlYnVnX2FkZF9tb2R1bGUoc3RydWN0IF9kZGVidWcgKnRhYiwgdW5zaWduZWQgaW50IG4s
CiAgICBjb25zdCBjaGFyICptb2RuYW1lKTsKZXh0ZXJuIGludCBkZGVidWdfcmVtb3ZlX21vZHVs
ZShjb25zdCBjaGFyICptb2RfbmFtZSk7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9f
KHByaW50ZiwgMiwgMykpKQp2b2lkIF9fZHluYW1pY19wcl9kZWJ1ZyhzdHJ1Y3QgX2RkZWJ1ZyAq
ZGVzY3JpcHRvciwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoKZXh0ZXJuIGludCBkZGVidWdfZHlu
ZGJnX21vZHVsZV9wYXJhbV9jYihjaGFyICpwYXJhbSwgY2hhciAqdmFsLAogICAgIGNvbnN0IGNo
YXIgKm1vZG5hbWUpOwoKc3RydWN0IGRldmljZTsKCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zv
cm1hdF9fKHByaW50ZiwgMywgNCkpKQp2b2lkIF9fZHluYW1pY19kZXZfZGJnKHN0cnVjdCBfZGRl
YnVnICpkZXNjcmlwdG9yLCBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgICAgICAgIGNvbnN0
IGNoYXIgKmZtdCwgLi4uKTsKCnN0cnVjdCBuZXRfZGV2aWNlOwoKZXh0ZXJuIF9fYXR0cmlidXRl
X18oKF9fZm9ybWF0X18ocHJpbnRmLCAzLCA0KSkpCnZvaWQgX19keW5hbWljX25ldGRldl9kYmco
c3RydWN0IF9kZGVidWcgKmRlc2NyaXB0b3IsCiAgICAgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Ug
KmRldiwKICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CgpzdHJ1Y3QgaWJfZGV2aWNlOwoKZXh0
ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAzLCA0KSkpCnZvaWQgX19keW5h
bWljX2liZGV2X2RiZyhzdHJ1Y3QgX2RkZWJ1ZyAqZGVzY3JpcHRvciwKICAgIGNvbnN0IHN0cnVj
dCBpYl9kZXZpY2UgKmliZGV2LAogICAgY29uc3QgY2hhciAqZm10LCAuLi4pOwojIDMzMiAiLi9p
bmNsdWRlL2xpbnV4L3ByaW50ay5oIiAyCiMgNDc2ICIuL2luY2x1ZGUvbGludXgvcHJpbnRrLmgi
CmV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGttc2dfZm9wczsKCmVudW0gewog
RFVNUF9QUkVGSVhfTk9ORSwKIERVTVBfUFJFRklYX0FERFJFU1MsCiBEVU1QX1BSRUZJWF9PRkZT
RVQKfTsKZXh0ZXJuIGludCBoZXhfZHVtcF90b19idWZmZXIoY29uc3Qgdm9pZCAqYnVmLCBzaXpl
X3QgbGVuLCBpbnQgcm93c2l6ZSwKICAgICAgICAgaW50IGdyb3Vwc2l6ZSwgY2hhciAqbGluZWJ1
Ziwgc2l6ZV90IGxpbmVidWZsZW4sCiAgICAgICAgIGJvb2wgYXNjaWkpOwoKZXh0ZXJuIHZvaWQg
cHJpbnRfaGV4X2R1bXAoY29uc3QgY2hhciAqbGV2ZWwsIGNvbnN0IGNoYXIgKnByZWZpeF9zdHIs
CiAgICAgIGludCBwcmVmaXhfdHlwZSwgaW50IHJvd3NpemUsIGludCBncm91cHNpemUsCiAgICAg
IGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbiwgYm9vbCBhc2NpaSk7CiMgMTYgIi4vaW5jbHVk
ZS9saW51eC9rZXJuZWwuaCIgMgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kaXY2NC5o
IiAxCiMgNzUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGl2NjQuaCIKIyAxICIuL2luY2x1ZGUv
YXNtLWdlbmVyaWMvZGl2NjQuaCIgMQojIDc2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2RpdjY0
LmgiIDIKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHU2NCBtdWxfdTY0X3UzMl9kaXYodTY0IGEsIHUzMiBtdWwsIHUzMiBkaXYpCnsKIHU2
NCBxOwoKIGFzbSAoIm11bHEgJTI7IGRpdnEgJTMiIDogIj1hIiAocSkKICAgIDogImEiIChhKSwg
InJtIiAoKHU2NCltdWwpLCAicm0iICgodTY0KWRpdikKICAgIDogInJkeCIpOwoKIHJldHVybiBx
Owp9CiMgMTkgIi4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMgojIDE5MSAiLi9pbmNsdWRlL2xp
bnV4L2tlcm5lbC5oIgpzdHJ1Y3QgY29tcGxldGlvbjsKc3RydWN0IHB0X3JlZ3M7CnN0cnVjdCB1
c2VyOwojIDI0NyAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgogIHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19fbWlnaHRfc2xl
ZXAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsCiAgICAgICBpbnQgcHJlZW1wdF9vZmZzZXQp
IHsgfQogIHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19taWdodF9zbGVlcChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKICAg
ICAgIGludCBwcmVlbXB0X29mZnNldCkgeyB9CiMgMjk3ICIuL2luY2x1ZGUvbGludXgva2VybmVs
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHUzMiByZWNpcHJvY2FsX3NjYWxlKHUzMiB2YWwsIHUzMiBlcF9ybykKewogcmV0dXJuICh1
MzIpKCgodTY0KSB2YWwgKiBlcF9ybykgPj4gMzIpOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbWlnaHRfZmF1bHQo
dm9pZCkgeyB9CgoKZXh0ZXJuIHN0cnVjdCBhdG9taWNfbm90aWZpZXJfaGVhZCBwYW5pY19ub3Rp
Zmllcl9saXN0OwpleHRlcm4gbG9uZyAoKnBhbmljX2JsaW5rKShpbnQgc3RhdGUpOwpfX2F0dHJp
YnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMikpKQp2b2lkIHBhbmljKGNvbnN0IGNoYXIg
KmZtdCwgLi4uKSBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKSBfX2F0dHJpYnV0ZV9fKChf
X2NvbGRfXykpOwp2b2lkIG5taV9wYW5pYyhzdHJ1Y3QgcHRfcmVncyAqcmVncywgY29uc3QgY2hh
ciAqbXNnKTsKZXh0ZXJuIHZvaWQgb29wc19lbnRlcih2b2lkKTsKZXh0ZXJuIHZvaWQgb29wc19l
eGl0KHZvaWQpOwp2b2lkIHByaW50X29vcHNfZW5kX21hcmtlcih2b2lkKTsKZXh0ZXJuIGludCBv
b3BzX21heV9wcmludCh2b2lkKTsKdm9pZCBkb19leGl0KGxvbmcgZXJyb3JfY29kZSkgX19hdHRy
aWJ1dGVfXygoX19ub3JldHVybl9fKSk7CnZvaWQgY29tcGxldGVfYW5kX2V4aXQoc3RydWN0IGNv
bXBsZXRpb24gKiwgbG9uZykgX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSk7CgoKaW50IF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBfa3N0cnRvdWwoY29uc3QgY2hh
ciAqcywgdW5zaWduZWQgaW50IGJhc2UsIHVuc2lnbmVkIGxvbmcgKnJlcyk7CmludCBfX2F0dHJp
YnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX2tzdHJ0b2woY29uc3QgY2hhciAqcywg
dW5zaWduZWQgaW50IGJhc2UsIGxvbmcgKnJlcyk7CgppbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3VsbChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgdW5zaWduZWQgbG9uZyBsb25nICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2xsKGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBi
YXNlLCBsb25nIGxvbmcgKnJlcyk7CiMgMzQ0ICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvdWwoY29uc3Qg
Y2hhciAqcywgdW5zaWduZWQgaW50IGJhc2UsIHVuc2lnbmVkIGxvbmcgKnJlcykKewoKCgoKIGlm
IChzaXplb2YodW5zaWduZWQgbG9uZykgPT0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykgJiYK
ICAgICBfX2FsaWdub2ZfXyh1bnNpZ25lZCBsb25nKSA9PSBfX2FsaWdub2ZfXyh1bnNpZ25lZCBs
b25nIGxvbmcpKQogIHJldHVybiBrc3RydG91bGwocywgYmFzZSwgKHVuc2lnbmVkIGxvbmcgbG9u
ZyAqKXJlcyk7CiBlbHNlCiAgcmV0dXJuIF9rc3RydG91bChzLCBiYXNlLCByZXMpOwp9CiMgMzcy
ICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51
c2VkX3Jlc3VsdF9fKSkga3N0cnRvbChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwg
bG9uZyAqcmVzKQp7CgoKCgogaWYgKHNpemVvZihsb25nKSA9PSBzaXplb2YobG9uZyBsb25nKSAm
JgogICAgIF9fYWxpZ25vZl9fKGxvbmcpID09IF9fYWxpZ25vZl9fKGxvbmcgbG9uZykpCiAgcmV0
dXJuIGtzdHJ0b2xsKHMsIGJhc2UsIChsb25nIGxvbmcgKilyZXMpOwogZWxzZQogIHJldHVybiBf
a3N0cnRvbChzLCBiYXNlLCByZXMpOwp9CgppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIGtzdHJ0b3VpbnQoY29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGJhc2Us
IHVuc2lnbmVkIGludCAqcmVzKTsKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVz
dWx0X18pKSBrc3RydG9pbnQoY29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGJhc2UsIGludCAq
cmVzKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRv
dTY0KGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBiYXNlLCB1NjQgKnJlcykKewogcmV0dXJu
IGtzdHJ0b3VsbChzLCBiYXNlLCByZXMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIGtzdHJ0b3M2NChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgYmFz
ZSwgczY0ICpyZXMpCnsKIHJldHVybiBrc3RydG9sbChzLCBiYXNlLCByZXMpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3UzMihjb25zdCBjaGFy
ICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwgdTMyICpyZXMpCnsKIHJldHVybiBrc3RydG91aW50KHMs
IGJhc2UsIHJlcyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkga3N0cnRvczMyKGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBiYXNlLCBzMzIgKnJlcykK
ewogcmV0dXJuIGtzdHJ0b2ludChzLCBiYXNlLCByZXMpOwp9CgppbnQgX19hdHRyaWJ1dGVfXygo
X193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3UxNihjb25zdCBjaGFyICpzLCB1bnNpZ25l
ZCBpbnQgYmFzZSwgdTE2ICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9y
ZXN1bHRfXykpIGtzdHJ0b3MxNihjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwgczE2
ICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0
b3U4KGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBiYXNlLCB1OCAqcmVzKTsKaW50IF9fYXR0
cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG9zOChjb25zdCBjaGFyICpz
LCB1bnNpZ25lZCBpbnQgYmFzZSwgczggKnJlcyk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvYm9vbChjb25zdCBjaGFyICpzLCBib29sICpyZXMpOwoK
aW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG91bGxfZnJv
bV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIHVu
c2lnbmVkIGxvbmcgbG9uZyAqcmVzKTsKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBrc3RydG9sbF9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50
LCB1bnNpZ25lZCBpbnQgYmFzZSwgbG9uZyBsb25nICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygo
X193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3VsX2Zyb21fdXNlcihjb25zdCBjaGFyICpz
LCBzaXplX3QgY291bnQsIHVuc2lnbmVkIGludCBiYXNlLCB1bnNpZ25lZCBsb25nICpyZXMpOwpp
bnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2xfZnJvbV91
c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIGxvbmcg
KnJlcyk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRv
dWludF9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQg
YmFzZSwgdW5zaWduZWQgaW50ICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIGtzdHJ0b2ludF9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNv
dW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgaW50ICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193
YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3UxNl9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywg
c2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgdTE2ICpyZXMpOwppbnQgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3MxNl9mcm9tX3VzZXIoY29uc3Qg
Y2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgczE2ICpyZXMpOwppbnQg
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3U4X2Zyb21fdXNl
cihjb25zdCBjaGFyICpzLCBzaXplX3QgY291bnQsIHVuc2lnbmVkIGludCBiYXNlLCB1OCAqcmVz
KTsKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG9zOF9m
cm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwg
czggKnJlcyk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0
cnRvYm9vbF9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCBib29sICpyZXMp
OwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG91NjRf
ZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2Us
IHU2NCAqcmVzKQp7CiByZXR1cm4ga3N0cnRvdWxsX2Zyb21fdXNlcihzLCBjb3VudCwgYmFzZSwg
cmVzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3Ry
dG9zNjRfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50
IGJhc2UsIHM2NCAqcmVzKQp7CiByZXR1cm4ga3N0cnRvbGxfZnJvbV91c2VyKHMsIGNvdW50LCBi
YXNlLCByZXMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGtzdHJ0b3UzMl9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25l
ZCBpbnQgYmFzZSwgdTMyICpyZXMpCnsKIHJldHVybiBrc3RydG91aW50X2Zyb21fdXNlcihzLCBj
b3VudCwgYmFzZSwgcmVzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVz
dWx0X18pKSBrc3RydG9zMzJfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwg
dW5zaWduZWQgaW50IGJhc2UsIHMzMiAqcmVzKQp7CiByZXR1cm4ga3N0cnRvaW50X2Zyb21fdXNl
cihzLCBjb3VudCwgYmFzZSwgcmVzKTsKfQojIDQ1OSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5o
IgpleHRlcm4gdW5zaWduZWQgbG9uZyBzaW1wbGVfc3RydG91bChjb25zdCBjaGFyICosY2hhciAq
Kix1bnNpZ25lZCBpbnQpOwpleHRlcm4gbG9uZyBzaW1wbGVfc3RydG9sKGNvbnN0IGNoYXIgKixj
aGFyICoqLHVuc2lnbmVkIGludCk7CmV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgc2ltcGxlX3N0
cnRvdWxsKGNvbnN0IGNoYXIgKixjaGFyICoqLHVuc2lnbmVkIGludCk7CmV4dGVybiBsb25nIGxv
bmcgc2ltcGxlX3N0cnRvbGwoY29uc3QgY2hhciAqLGNoYXIgKiosdW5zaWduZWQgaW50KTsKCmV4
dGVybiBpbnQgbnVtX3RvX3N0cihjaGFyICpidWYsIGludCBzaXplLAogICAgICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyBudW0sIHVuc2lnbmVkIGludCB3aWR0aCk7CgoKCmV4dGVybiBfX2F0dHJpYnV0
ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKSBpbnQgc3ByaW50ZihjaGFyICpidWYsIGNv
bnN0IGNoYXIgKiBmbXQsIC4uLik7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHBy
aW50ZiwgMiwgMCkpKSBpbnQgdnNwcmludGYoY2hhciAqYnVmLCBjb25zdCBjaGFyICosIHZhX2xp
c3QpOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKaW50
IHNucHJpbnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsK
ZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAzLCAwKSkpCmludCB2c25w
cmludGYoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFy
Z3MpOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKaW50
IHNjbnByaW50ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmbXQsIC4uLik7
CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgMCkpKQppbnQgdnNj
bnByaW50ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3Qg
YXJncyk7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKSBf
X2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSkKY2hhciAqa2FzcHJpbnRmKGdmcF90IGdmcCwgY29u
c3QgY2hhciAqZm10LCAuLi4pOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmlu
dGYsIDIsIDApKSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpCmNoYXIgKmt2YXNwcmludGYo
Z2ZwX3QgZ2ZwLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7CmV4dGVybiBfX2F0dHJp
YnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMCkpKQpjb25zdCBjaGFyICprdmFzcHJpbnRm
X2NvbnN0KGdmcF90IGdmcCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpOwoKZXh0ZXJu
IF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18oc2NhbmYsIDIsIDMpKSkKaW50IHNzY2FuZihjb25z
dCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9y
bWF0X18oc2NhbmYsIDIsIDApKSkKaW50IHZzc2NhbmYoY29uc3QgY2hhciAqLCBjb25zdCBjaGFy
ICosIHZhX2xpc3QpOwoKZXh0ZXJuIGludCBnZXRfb3B0aW9uKGNoYXIgKipzdHIsIGludCAqcGlu
dCk7CmV4dGVybiBjaGFyICpnZXRfb3B0aW9ucyhjb25zdCBjaGFyICpzdHIsIGludCBuaW50cywg
aW50ICppbnRzKTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBtZW1wYXJzZShjb25zdCBjaGFy
ICpwdHIsIGNoYXIgKipyZXRwdHIpOwpleHRlcm4gYm9vbCBwYXJzZV9vcHRpb25fc3RyKGNvbnN0
IGNoYXIgKnN0ciwgY29uc3QgY2hhciAqb3B0aW9uKTsKZXh0ZXJuIGNoYXIgKm5leHRfYXJnKGNo
YXIgKmFyZ3MsIGNoYXIgKipwYXJhbSwgY2hhciAqKnZhbCk7CgpleHRlcm4gaW50IGNvcmVfa2Vy
bmVsX3RleHQodW5zaWduZWQgbG9uZyBhZGRyKTsKZXh0ZXJuIGludCBpbml0X2tlcm5lbF90ZXh0
KHVuc2lnbmVkIGxvbmcgYWRkcik7CmV4dGVybiBpbnQgY29yZV9rZXJuZWxfZGF0YSh1bnNpZ25l
ZCBsb25nIGFkZHIpOwpleHRlcm4gaW50IF9fa2VybmVsX3RleHRfYWRkcmVzcyh1bnNpZ25lZCBs
b25nIGFkZHIpOwpleHRlcm4gaW50IGtlcm5lbF90ZXh0X2FkZHJlc3ModW5zaWduZWQgbG9uZyBh
ZGRyKTsKZXh0ZXJuIGludCBmdW5jX3B0cl9pc19rZXJuZWxfdGV4dCh2b2lkICpwdHIpOwoKdTY0
IGludF9wb3codTY0IGJhc2UsIHVuc2lnbmVkIGludCBleHApOwp1bnNpZ25lZCBsb25nIGludF9z
cXJ0KHVuc2lnbmVkIGxvbmcpOwoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIGludF9zcXJ0NjQodTY0IHgpCnsKIHJldHVybiAo
dTMyKWludF9zcXJ0KHgpOwp9CgoKZXh0ZXJuIHZvaWQgYnVzdF9zcGlubG9ja3MoaW50IHllcyk7
CmV4dGVybiBpbnQgb29wc19pbl9wcm9ncmVzczsKZXh0ZXJuIGludCBwYW5pY190aW1lb3V0Owpl
eHRlcm4gdW5zaWduZWQgbG9uZyBwYW5pY19wcmludDsKZXh0ZXJuIGludCBwYW5pY19vbl9vb3Bz
OwpleHRlcm4gaW50IHBhbmljX29uX3VucmVjb3ZlcmVkX25taTsKZXh0ZXJuIGludCBwYW5pY19v
bl9pb19ubWk7CmV4dGVybiBpbnQgcGFuaWNfb25fd2FybjsKZXh0ZXJuIGludCBzeXNjdGxfcGFu
aWNfb25fcmN1X3N0YWxsOwpleHRlcm4gaW50IHN5c2N0bF9wYW5pY19vbl9zdGFja292ZXJmbG93
OwoKZXh0ZXJuIGJvb2wgY3Jhc2hfa2V4ZWNfcG9zdF9ub3RpZmllcnM7CgoKCgoKCmV4dGVybiBh
dG9taWNfdCBwYW5pY19jcHU7CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X2FyY2hfcGFuaWNfdGltZW91dChpbnQg
dGltZW91dCwgaW50IGFyY2hfZGVmYXVsdF90aW1lb3V0KQp7CiBpZiAocGFuaWNfdGltZW91dCA9
PSBhcmNoX2RlZmF1bHRfdGltZW91dCkKICBwYW5pY190aW1lb3V0ID0gdGltZW91dDsKfQpleHRl
cm4gY29uc3QgY2hhciAqcHJpbnRfdGFpbnRlZCh2b2lkKTsKZW51bSBsb2NrZGVwX29rIHsKIExP
Q0tERVBfU1RJTExfT0ssCiBMT0NLREVQX05PV19VTlJFTElBQkxFCn07CmV4dGVybiB2b2lkIGFk
ZF90YWludCh1bnNpZ25lZCBmbGFnLCBlbnVtIGxvY2tkZXBfb2spOwpleHRlcm4gaW50IHRlc3Rf
dGFpbnQodW5zaWduZWQgZmxhZyk7CmV4dGVybiB1bnNpZ25lZCBsb25nIGdldF90YWludCh2b2lk
KTsKZXh0ZXJuIGludCByb290X21vdW50ZmxhZ3M7CgpleHRlcm4gYm9vbCBlYXJseV9ib290X2ly
cXNfZGlzYWJsZWQ7CgoKCgoKZXh0ZXJuIGVudW0gc3lzdGVtX3N0YXRlcyB7CiBTWVNURU1fQk9P
VElORywKIFNZU1RFTV9TQ0hFRFVMSU5HLAogU1lTVEVNX1JVTk5JTkcsCiBTWVNURU1fSEFMVCwK
IFNZU1RFTV9QT1dFUl9PRkYsCiBTWVNURU1fUkVTVEFSVCwKIFNZU1RFTV9TVVNQRU5ELAp9IHN5
c3RlbV9zdGF0ZTsKIyA1OTMgIi4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIKc3RydWN0IHRhaW50
X2ZsYWcgewogY2hhciBjX3RydWU7CiBjaGFyIGNfZmFsc2U7CiBib29sIG1vZHVsZTsKfTsKCmV4
dGVybiBjb25zdCBzdHJ1Y3QgdGFpbnRfZmxhZyB0YWludF9mbGFnc1sxOF07CgpleHRlcm4gY29u
c3QgY2hhciBoZXhfYXNjW107CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGNoYXIgKmhleF9ieXRlX3BhY2soY2hhciAqYnVmLCB1OCBi
eXRlKQp7CiAqYnVmKysgPSBoZXhfYXNjWygoYnl0ZSkgJiAweGYwKSA+PiA0XTsKICpidWYrKyA9
IGhleF9hc2NbKChieXRlKSAmIDB4MGYpXTsKIHJldHVybiBidWY7Cn0KCmV4dGVybiBjb25zdCBj
aGFyIGhleF9hc2NfdXBwZXJbXTsKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2hhciAqaGV4X2J5dGVfcGFja191cHBlcihjaGFyICpi
dWYsIHU4IGJ5dGUpCnsKICpidWYrKyA9IGhleF9hc2NfdXBwZXJbKChieXRlKSAmIDB4ZjApID4+
IDRdOwogKmJ1ZisrID0gaGV4X2FzY191cHBlclsoKGJ5dGUpICYgMHgwZildOwogcmV0dXJuIGJ1
ZjsKfQoKZXh0ZXJuIGludCBoZXhfdG9fYmluKGNoYXIgY2gpOwpleHRlcm4gaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBoZXgyYmluKHU4ICpkc3QsIGNvbnN0IGNo
YXIgKnNyYywgc2l6ZV90IGNvdW50KTsKZXh0ZXJuIGNoYXIgKmJpbjJoZXgoY2hhciAqZHN0LCBj
b25zdCB2b2lkICpzcmMsIHNpemVfdCBjb3VudCk7Cgpib29sIG1hY19wdG9uKGNvbnN0IGNoYXIg
KnMsIHU4ICptYWMpOwojIDY0OSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgplbnVtIGZ0cmFj
ZV9kdW1wX21vZGUgewogRFVNUF9OT05FLAogRFVNUF9BTEwsCiBEVU1QX09SSUcsCn07CgoKdm9p
ZCB0cmFjaW5nX29uKHZvaWQpOwp2b2lkIHRyYWNpbmdfb2ZmKHZvaWQpOwppbnQgdHJhY2luZ19p
c19vbih2b2lkKTsKdm9pZCB0cmFjaW5nX3NuYXBzaG90KHZvaWQpOwp2b2lkIHRyYWNpbmdfc25h
cHNob3RfYWxsb2Modm9pZCk7CgpleHRlcm4gdm9pZCB0cmFjaW5nX3N0YXJ0KHZvaWQpOwpleHRl
cm4gdm9pZCB0cmFjaW5nX3N0b3Aodm9pZCk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHBy
aW50ZiwgMSwgMikpKQp2b2lkIF9fX190cmFjZV9wcmludGtfY2hlY2tfZm9ybWF0KGNvbnN0IGNo
YXIgKmZtdCwgLi4uKQp7Cn0KIyA3MjggIi4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIKZXh0ZXJu
IF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpCmludCBfX3RyYWNlX2Jw
cmludGsodW5zaWduZWQgbG9uZyBpcCwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoKZXh0ZXJuIF9f
YXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpCmludCBfX3RyYWNlX3ByaW50
ayh1bnNpZ25lZCBsb25nIGlwLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CiMgNzY5ICIuL2luY2x1
ZGUvbGludXgva2VybmVsLmgiCmV4dGVybiBpbnQgX190cmFjZV9icHV0cyh1bnNpZ25lZCBsb25n
IGlwLCBjb25zdCBjaGFyICpzdHIpOwpleHRlcm4gaW50IF9fdHJhY2VfcHV0cyh1bnNpZ25lZCBs
b25nIGlwLCBjb25zdCBjaGFyICpzdHIsIGludCBzaXplKTsKCmV4dGVybiB2b2lkIHRyYWNlX2R1
bXBfc3RhY2soaW50IHNraXApOwojIDc5MSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgpleHRl
cm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDApKSkgaW50Cl9fZnRyYWNl
X3ZicHJpbnRrKHVuc2lnbmVkIGxvbmcgaXAsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCk7
CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDApKSkgaW50Cl9f
ZnRyYWNlX3ZwcmludGsodW5zaWduZWQgbG9uZyBpcCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0
IGFwKTsKCmV4dGVybiB2b2lkIGZ0cmFjZV9kdW1wKGVudW0gZnRyYWNlX2R1bXBfbW9kZSBvb3Bz
X2R1bXBfbW9kZSk7CiMgMTAgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiIDIKIyAzMyAiLi9pbmNs
dWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBJTklUX0xJU1RfSEVBRChzdHJ1Y3QgbGlzdF9oZWFkICps
aXN0KQp7CiAoeyB1bmlvbiB7IHR5cGVvZihsaXN0LT5uZXh0KSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihsaXN0LT5uZXh0KSkgKGxpc3QpIH07IF9fd3Jp
dGVfb25jZV9zaXplKCYobGlzdC0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihsaXN0LT5uZXh0KSk7
IF9fdS5fX3ZhbDsgfSk7CiBsaXN0LT5wcmV2ID0gbGlzdDsKfQoKCmV4dGVybiBib29sIF9fbGlz
dF9hZGRfdmFsaWQoc3RydWN0IGxpc3RfaGVhZCAqbmV3LAogICAgICAgICBzdHJ1Y3QgbGlzdF9o
ZWFkICpwcmV2LAogICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpuZXh0KTsKZXh0ZXJuIGJvb2wg
X19saXN0X2RlbF9lbnRyeV92YWxpZChzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeSk7CiMgNjMgIi4v
aW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19saXN0X2FkZChzdHJ1Y3QgbGlzdF9oZWFkICpu
ZXcsCiAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnByZXYsCiAgICAgICAgIHN0cnVjdCBsaXN0
X2hlYWQgKm5leHQpCnsKIGlmICghX19saXN0X2FkZF92YWxpZChuZXcsIHByZXYsIG5leHQpKQog
IHJldHVybjsKCiBuZXh0LT5wcmV2ID0gbmV3OwogbmV3LT5uZXh0ID0gbmV4dDsKIG5ldy0+cHJl
diA9IHByZXY7CiAoeyB1bmlvbiB7IHR5cGVvZihwcmV2LT5uZXh0KSBfX3ZhbDsgY2hhciBfX2Nb
MV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihwcmV2LT5uZXh0KSkgKG5ldykgfTsgX193
cml0ZV9vbmNlX3NpemUoJihwcmV2LT5uZXh0KSwgX191Ll9fYywgc2l6ZW9mKHByZXYtPm5leHQp
KTsgX191Ll9fdmFsOyB9KTsKfQojIDg0ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxp
c3RfYWRkKHN0cnVjdCBsaXN0X2hlYWQgKm5ldywgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewog
X19saXN0X2FkZChuZXcsIGhlYWQsIGhlYWQtPm5leHQpOwp9CiMgOTggIi4vaW5jbHVkZS9saW51
eC9saXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgbGlzdF9hZGRfdGFpbChzdHJ1Y3QgbGlzdF9oZWFkICpuZXcsIHN0cnVj
dCBsaXN0X2hlYWQgKmhlYWQpCnsKIF9fbGlzdF9hZGQobmV3LCBoZWFkLT5wcmV2LCBoZWFkKTsK
fQojIDExMCAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2xpc3RfZGVsKHN0cnVjdCBs
aXN0X2hlYWQgKiBwcmV2LCBzdHJ1Y3QgbGlzdF9oZWFkICogbmV4dCkKewogbmV4dC0+cHJldiA9
IHByZXY7CiAoeyB1bmlvbiB7IHR5cGVvZihwcmV2LT5uZXh0KSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihwcmV2LT5uZXh0KSkgKG5leHQpIH07IF9fd3Jp
dGVfb25jZV9zaXplKCYocHJldi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihwcmV2LT5uZXh0KSk7
IF9fdS5fX3ZhbDsgfSk7Cn0KIyAxMjQgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19s
aXN0X2RlbF9jbGVhcnByZXYoc3RydWN0IGxpc3RfaGVhZCAqZW50cnkpCnsKIF9fbGlzdF9kZWwo
ZW50cnktPnByZXYsIGVudHJ5LT5uZXh0KTsKIGVudHJ5LT5wcmV2ID0gKCh2b2lkICopMCk7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgX19saXN0X2RlbF9lbnRyeShzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeSkKewogaWYgKCFf
X2xpc3RfZGVsX2VudHJ5X3ZhbGlkKGVudHJ5KSkKICByZXR1cm47CgogX19saXN0X2RlbChlbnRy
eS0+cHJldiwgZW50cnktPm5leHQpOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxpc3RfZGVsKHN0cnVjdCBsaXN0
X2hlYWQgKmVudHJ5KQp7CiBfX2xpc3RfZGVsX2VudHJ5KGVudHJ5KTsKIGVudHJ5LT5uZXh0ID0g
KCh2b2lkICopIDB4MTAwICsgKDB4ZGVhZDAwMDAwMDAwMDAwMFVMKSk7CiBlbnRyeS0+cHJldiA9
ICgodm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwp9CiMgMTU4ICIuL2lu
Y2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxpc3RfcmVwbGFjZShzdHJ1Y3QgbGlzdF9oZWFkICpv
bGQsCiAgICBzdHJ1Y3QgbGlzdF9oZWFkICpuZXcpCnsKIG5ldy0+bmV4dCA9IG9sZC0+bmV4dDsK
IG5ldy0+bmV4dC0+cHJldiA9IG5ldzsKIG5ldy0+cHJldiA9IG9sZC0+cHJldjsKIG5ldy0+cHJl
di0+bmV4dCA9IG5ldzsKfQojIDE3NCAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0
X3JlcGxhY2VfaW5pdChzdHJ1Y3QgbGlzdF9oZWFkICpvbGQsCiAgICAgICAgIHN0cnVjdCBsaXN0
X2hlYWQgKm5ldykKewogbGlzdF9yZXBsYWNlKG9sZCwgbmV3KTsKIElOSVRfTElTVF9IRUFEKG9s
ZCk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3N3YXAoc3RydWN0IGxpc3RfaGVhZCAqZW50cnkxLAogICAg
ICAgIHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5MikKewogc3RydWN0IGxpc3RfaGVhZCAqcG9zID0g
ZW50cnkyLT5wcmV2OwoKIGxpc3RfZGVsKGVudHJ5Mik7CiBsaXN0X3JlcGxhY2UoZW50cnkxLCBl
bnRyeTIpOwogaWYgKHBvcyA9PSBlbnRyeTEpCiAgcG9zID0gZW50cnkyOwogbGlzdF9hZGQoZW50
cnkxLCBwb3MpOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X2RlbF9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmVu
dHJ5KQp7CiBfX2xpc3RfZGVsX2VudHJ5KGVudHJ5KTsKIElOSVRfTElTVF9IRUFEKGVudHJ5KTsK
fQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGxpc3RfbW92ZShzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LCBzdHJ1Y3QgbGlz
dF9oZWFkICpoZWFkKQp7CiBfX2xpc3RfZGVsX2VudHJ5KGxpc3QpOwogbGlzdF9hZGQobGlzdCwg
aGVhZCk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X21vdmVfdGFpbChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0
LAogICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQp7CiBfX2xpc3RfZGVsX2VudHJ5KGxpc3Qp
OwogbGlzdF9hZGRfdGFpbChsaXN0LCBoZWFkKTsKfQojIDI0MCAiLi9pbmNsdWRlL2xpbnV4L2xp
c3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBsaXN0X2J1bGtfbW92ZV90YWlsKHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCiAg
ICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqZmlyc3QsCiAgICAgICAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqbGFzdCkKewogZmlyc3QtPnByZXYtPm5leHQgPSBsYXN0LT5uZXh0OwogbGFzdC0+bmV4
dC0+cHJldiA9IGZpcnN0LT5wcmV2OwoKIGhlYWQtPnByZXYtPm5leHQgPSBmaXJzdDsKIGZpcnN0
LT5wcmV2ID0gaGVhZC0+cHJldjsKCiBsYXN0LT5uZXh0ID0gaGVhZDsKIGhlYWQtPnByZXYgPSBs
YXN0Owp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBsaXN0X2lzX2ZpcnN0KGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmxp
c3QsCiAgICAgY29uc3Qgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewogcmV0dXJuIGxpc3QtPnBy
ZXYgPT0gaGVhZDsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbGlzdF9pc19sYXN0KGNvbnN0IHN0cnVjdCBsaXN0X2hl
YWQgKmxpc3QsCiAgICBjb25zdCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQp7CiByZXR1cm4gbGlz
dC0+bmV4dCA9PSBoZWFkOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxpc3RfZW1wdHkoY29uc3Qgc3RydWN0IGxpc3Rf
aGVhZCAqaGVhZCkKewogcmV0dXJuICh7IHVuaW9uIHsgdHlwZW9mKGhlYWQtPm5leHQpIF9fdmFs
OyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoaGVhZC0+bmV4
dCksIF9fdS5fX2MsIHNpemVvZihoZWFkLT5uZXh0KSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9u
b2NoZWNrKCYoaGVhZC0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihoZWFkLT5uZXh0KSk7IGRvIHsg
fSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSkgPT0gaGVhZDsKfQojIDI5OCAiLi9pbmNsdWRlL2xp
bnV4L2xpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IGxpc3RfZW1wdHlfY2FyZWZ1bChjb25zdCBzdHJ1Y3QgbGlzdF9oZWFk
ICpoZWFkKQp7CiBzdHJ1Y3QgbGlzdF9oZWFkICpuZXh0ID0gaGVhZC0+bmV4dDsKIHJldHVybiAo
bmV4dCA9PSBoZWFkKSAmJiAobmV4dCA9PSBoZWFkLT5wcmV2KTsKfQoKCgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9y
b3RhdGVfbGVmdChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQp7CiBzdHJ1Y3QgbGlzdF9oZWFkICpm
aXJzdDsKCiBpZiAoIWxpc3RfZW1wdHkoaGVhZCkpIHsKICBmaXJzdCA9IGhlYWQtPm5leHQ7CiAg
bGlzdF9tb3ZlX3RhaWwoZmlyc3QsIGhlYWQpOwogfQp9CiMgMzI1ICIuL2luY2x1ZGUvbGludXgv
bGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGxpc3Rfcm90YXRlX3RvX2Zyb250KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3Qs
CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewoKCgoKCiBsaXN0X21vdmVfdGFpbChoZWFk
LCBsaXN0KTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBsaXN0X2lzX3Npbmd1bGFyKGNvbnN0IHN0cnVjdCBsaXN0X2hl
YWQgKmhlYWQpCnsKIHJldHVybiAhbGlzdF9lbXB0eShoZWFkKSAmJiAoaGVhZC0+bmV4dCA9PSBo
ZWFkLT5wcmV2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2xpc3RfY3V0X3Bvc2l0aW9uKHN0cnVjdCBsaXN0X2hlYWQg
Kmxpc3QsCiAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgc3RydWN0IGxpc3RfaGVhZCAqZW50cnkp
CnsKIHN0cnVjdCBsaXN0X2hlYWQgKm5ld19maXJzdCA9IGVudHJ5LT5uZXh0OwogbGlzdC0+bmV4
dCA9IGhlYWQtPm5leHQ7CiBsaXN0LT5uZXh0LT5wcmV2ID0gbGlzdDsKIGxpc3QtPnByZXYgPSBl
bnRyeTsKIGVudHJ5LT5uZXh0ID0gbGlzdDsKIGhlYWQtPm5leHQgPSBuZXdfZmlyc3Q7CiBuZXdf
Zmlyc3QtPnByZXYgPSBoZWFkOwp9CiMgMzcxICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGxpc3RfY3V0X3Bvc2l0aW9uKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAgc3RydWN0IGxpc3Rf
aGVhZCAqaGVhZCwgc3RydWN0IGxpc3RfaGVhZCAqZW50cnkpCnsKIGlmIChsaXN0X2VtcHR5KGhl
YWQpKQogIHJldHVybjsKIGlmIChsaXN0X2lzX3Npbmd1bGFyKGhlYWQpICYmCiAgKGhlYWQtPm5l
eHQgIT0gZW50cnkgJiYgaGVhZCAhPSBlbnRyeSkpCiAgcmV0dXJuOwogaWYgKGVudHJ5ID09IGhl
YWQpCiAgSU5JVF9MSVNUX0hFQUQobGlzdCk7CiBlbHNlCiAgX19saXN0X2N1dF9wb3NpdGlvbihs
aXN0LCBoZWFkLCBlbnRyeSk7Cn0KIyAzOTkgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
bGlzdF9jdXRfYmVmb3JlKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAgICAgICBzdHJ1Y3QgbGlz
dF9oZWFkICpoZWFkLAogICAgICAgc3RydWN0IGxpc3RfaGVhZCAqZW50cnkpCnsKIGlmIChoZWFk
LT5uZXh0ID09IGVudHJ5KSB7CiAgSU5JVF9MSVNUX0hFQUQobGlzdCk7CiAgcmV0dXJuOwogfQog
bGlzdC0+bmV4dCA9IGhlYWQtPm5leHQ7CiBsaXN0LT5uZXh0LT5wcmV2ID0gbGlzdDsKIGxpc3Qt
PnByZXYgPSBlbnRyeS0+cHJldjsKIGxpc3QtPnByZXYtPm5leHQgPSBsaXN0OwogaGVhZC0+bmV4
dCA9IGVudHJ5OwogZW50cnktPnByZXYgPSBoZWFkOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbGlzdF9zcGxpY2UoY29u
c3Qgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwcmV2LAog
ICAgIHN0cnVjdCBsaXN0X2hlYWQgKm5leHQpCnsKIHN0cnVjdCBsaXN0X2hlYWQgKmZpcnN0ID0g
bGlzdC0+bmV4dDsKIHN0cnVjdCBsaXN0X2hlYWQgKmxhc3QgPSBsaXN0LT5wcmV2OwoKIGZpcnN0
LT5wcmV2ID0gcHJldjsKIHByZXYtPm5leHQgPSBmaXJzdDsKCiBsYXN0LT5uZXh0ID0gbmV4dDsK
IG5leHQtPnByZXYgPSBsYXN0Owp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9zcGxpY2UoY29uc3Qgc3RydWN0
IGxpc3RfaGVhZCAqbGlzdCwKICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCnsKIGlmICghbGlz
dF9lbXB0eShsaXN0KSkKICBfX2xpc3Rfc3BsaWNlKGxpc3QsIGhlYWQsIGhlYWQtPm5leHQpOwp9
CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgbGlzdF9zcGxpY2VfdGFpbChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAogICAg
c3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewogaWYgKCFsaXN0X2VtcHR5KGxpc3QpKQogIF9fbGlz
dF9zcGxpY2UobGlzdCwgaGVhZC0+cHJldiwgaGVhZCk7Cn0KIyA0NjAgIi4vaW5jbHVkZS9saW51
eC9saXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgbGlzdF9zcGxpY2VfaW5pdChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAog
ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCnsKIGlmICghbGlzdF9lbXB0eShsaXN0KSkg
ewogIF9fbGlzdF9zcGxpY2UobGlzdCwgaGVhZCwgaGVhZC0+bmV4dCk7CiAgSU5JVF9MSVNUX0hF
QUQobGlzdCk7CiB9Cn0KIyA0NzcgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9z
cGxpY2VfdGFpbF9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAgICAgIHN0cnVjdCBsaXN0
X2hlYWQgKmhlYWQpCnsKIGlmICghbGlzdF9lbXB0eShsaXN0KSkgewogIF9fbGlzdF9zcGxpY2Uo
bGlzdCwgaGVhZC0+cHJldiwgaGVhZCk7CiAgSU5JVF9MSVNUX0hFQUQobGlzdCk7CiB9Cn0KIyA3
NjUgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgSU5JVF9ITElTVF9OT0RFKHN0cnVjdCBo
bGlzdF9ub2RlICpoKQp7CiBoLT5uZXh0ID0gKCh2b2lkICopMCk7CiBoLT5wcHJldiA9ICgodm9p
ZCAqKTApOwp9CiMgNzc5ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaGxpc3RfdW5oYXNo
ZWQoY29uc3Qgc3RydWN0IGhsaXN0X25vZGUgKmgpCnsKIHJldHVybiAhaC0+cHByZXY7Cn0KIyA3
OTIgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBobGlzdF91bmhhc2hlZF9sb2NrbGVzcyhj
b25zdCBzdHJ1Y3QgaGxpc3Rfbm9kZSAqaCkKewogcmV0dXJuICEoeyB1bmlvbiB7IHR5cGVvZiho
LT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3Np
emUoJihoLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihoLT5wcHJldikpOyBlbHNlIF9fcmVhZF9v
bmNlX3NpemVfbm9jaGVjaygmKGgtPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKGgtPnBwcmV2KSk7
IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaGxpc3RfZW1wdHko
Y29uc3Qgc3RydWN0IGhsaXN0X2hlYWQgKmgpCnsKIHJldHVybiAhKHsgdW5pb24geyB0eXBlb2Yo
aC0+Zmlyc3QpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9z
aXplKCYoaC0+Zmlyc3QpLCBfX3UuX19jLCBzaXplb2YoaC0+Zmlyc3QpKTsgZWxzZSBfX3JlYWRf
b25jZV9zaXplX25vY2hlY2soJihoLT5maXJzdCksIF9fdS5fX2MsIHNpemVvZihoLT5maXJzdCkp
OyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9faGxpc3RfZGVsKHN0
cnVjdCBobGlzdF9ub2RlICpuKQp7CiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqbmV4dCA9IG4tPm5leHQ7
CiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqKnBwcmV2ID0gbi0+cHByZXY7CgogKHsgdW5pb24geyB0eXBl
b2YoKnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVv
ZigqcHByZXYpKSAobmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqcHByZXYpLCBfX3UuX19j
LCBzaXplb2YoKnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7CiBpZiAobmV4dCkKICAoeyB1bmlvbiB7
IHR5cGVvZihuZXh0LT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFs
ID0gKCB0eXBlb2YobmV4dC0+cHByZXYpKSAocHByZXYpIH07IF9fd3JpdGVfb25jZV9zaXplKCYo
bmV4dC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2YobmV4dC0+cHByZXYpKTsgX191Ll9fdmFsOyB9
KTsKfQojIDgyMyAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9kZWwoc3RydWN0
IGhsaXN0X25vZGUgKm4pCnsKIF9faGxpc3RfZGVsKG4pOwogbi0+bmV4dCA9ICgodm9pZCAqKSAw
eDEwMCArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwogbi0+cHByZXYgPSAoKHZvaWQgKikgMHgx
MjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwpKTsKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9kZWxfaW5p
dChzdHJ1Y3QgaGxpc3Rfbm9kZSAqbikKewogaWYgKCFobGlzdF91bmhhc2hlZChuKSkgewogIF9f
aGxpc3RfZGVsKG4pOwogIElOSVRfSExJU1RfTk9ERShuKTsKIH0KfQojIDg1MiAiLi9pbmNsdWRl
L2xpbnV4L2xpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9hZGRfaGVhZChzdHJ1Y3QgaGxpc3Rfbm9kZSAqbiwg
c3RydWN0IGhsaXN0X2hlYWQgKmgpCnsKIHN0cnVjdCBobGlzdF9ub2RlICpmaXJzdCA9IGgtPmZp
cnN0OwogKHsgdW5pb24geyB0eXBlb2Yobi0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+bmV4dCkpIChmaXJzdCkgfTsgX193cml0ZV9vbmNl
X3NpemUoJihuLT5uZXh0KSwgX191Ll9fYywgc2l6ZW9mKG4tPm5leHQpKTsgX191Ll9fdmFsOyB9
KTsKIGlmIChmaXJzdCkKICAoeyB1bmlvbiB7IHR5cGVvZihmaXJzdC0+cHByZXYpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKGZpcnN0LT5wcHJldikpICgm
bi0+bmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihmaXJzdC0+cHByZXYpLCBfX3UuX19jLCBz
aXplb2YoZmlyc3QtPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7CiAoeyB1bmlvbiB7IHR5cGVvZiho
LT5maXJzdCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yo
aC0+Zmlyc3QpKSAobikgfTsgX193cml0ZV9vbmNlX3NpemUoJihoLT5maXJzdCksIF9fdS5fX2Ms
IHNpemVvZihoLT5maXJzdCkpOyBfX3UuX192YWw7IH0pOwogKHsgdW5pb24geyB0eXBlb2Yobi0+
cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4t
PnBwcmV2KSkgKCZoLT5maXJzdCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9f
dS5fX2MsIHNpemVvZihuLT5wcHJldikpOyBfX3UuX192YWw7IH0pOwp9CgoKCgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxp
c3RfYWRkX2JlZm9yZShzdHJ1Y3QgaGxpc3Rfbm9kZSAqbiwKICAgICAgICBzdHJ1Y3QgaGxpc3Rf
bm9kZSAqbmV4dCkKewogKHsgdW5pb24geyB0eXBlb2Yobi0+cHByZXYpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPnBwcmV2KSkgKG5leHQtPnBwcmV2
KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG4tPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG4tPnBw
cmV2KSk7IF9fdS5fX3ZhbDsgfSk7CiAoeyB1bmlvbiB7IHR5cGVvZihuLT5uZXh0KSBfX3ZhbDsg
Y2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5uZXh0KSkgKG5leHQp
IH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihuLT5uZXh0
KSk7IF9fdS5fX3ZhbDsgfSk7CiAoeyB1bmlvbiB7IHR5cGVvZihuZXh0LT5wcHJldikgX192YWw7
IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YobmV4dC0+cHByZXYpKSAo
Jm4tPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobmV4dC0+cHByZXYpLCBfX3UuX19jLCBz
aXplb2YobmV4dC0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKICh7IHVuaW9uIHsgdHlwZW9mKCoo
bi0+cHByZXYpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVv
ZigqKG4tPnBwcmV2KSkpIChuKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCoobi0+cHByZXYpKSwg
X191Ll9fYywgc2l6ZW9mKCoobi0+cHByZXYpKSk7IF9fdS5fX3ZhbDsgfSk7Cn0KCgoKCgoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBobGlzdF9hZGRfYmVoaW5kKHN0cnVjdCBobGlzdF9ub2RlICpuLAogICAgICAgIHN0cnVjdCBo
bGlzdF9ub2RlICpwcmV2KQp7CiAoeyB1bmlvbiB7IHR5cGVvZihuLT5uZXh0KSBfX3ZhbDsgY2hh
ciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5uZXh0KSkgKHByZXYtPm5l
eHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihuLT5u
ZXh0KSk7IF9fdS5fX3ZhbDsgfSk7CiAoeyB1bmlvbiB7IHR5cGVvZihwcmV2LT5uZXh0KSBfX3Zh
bDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihwcmV2LT5uZXh0KSkg
KG4pIH07IF9fd3JpdGVfb25jZV9zaXplKCYocHJldi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihw
cmV2LT5uZXh0KSk7IF9fdS5fX3ZhbDsgfSk7CiAoeyB1bmlvbiB7IHR5cGVvZihuLT5wcHJldikg
X192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+cHByZXYp
KSAoJnByZXYtPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+cHByZXYpLCBfX3UuX19j
LCBzaXplb2Yobi0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKCiBpZiAobi0+bmV4dCkKICAoeyB1
bmlvbiB7IHR5cGVvZihuLT5uZXh0LT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9
IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+bmV4dC0+cHByZXYpKSAoJm4tPm5leHQpIH07IF9fd3Jp
dGVfb25jZV9zaXplKCYobi0+bmV4dC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2Yobi0+bmV4dC0+
cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKfQojIDkwMCAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBobGlzdF9hZGRfZmFrZShzdHJ1Y3QgaGxpc3Rfbm9kZSAqbikKewogbi0+cHByZXYgPSAm
bi0+bmV4dDsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgaGxpc3RfZmFrZShzdHJ1Y3QgaGxpc3Rfbm9kZSAqaCkKewog
cmV0dXJuIGgtPnBwcmV2ID09ICZoLT5uZXh0Owp9CiMgOTIyICIuL2luY2x1ZGUvbGludXgvbGlz
dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sCmhsaXN0X2lzX3Npbmd1bGFyX25vZGUoc3RydWN0IGhsaXN0X25vZGUgKm4sIHN0
cnVjdCBobGlzdF9oZWFkICpoKQp7CiByZXR1cm4gIW4tPm5leHQgJiYgbi0+cHByZXYgPT0gJmgt
PmZpcnN0Owp9CiMgOTM2ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X21vdmVf
bGlzdChzdHJ1Y3QgaGxpc3RfaGVhZCAqb2xkLAogICAgICAgc3RydWN0IGhsaXN0X2hlYWQgKm5l
dykKewogbmV3LT5maXJzdCA9IG9sZC0+Zmlyc3Q7CiBpZiAobmV3LT5maXJzdCkKICBuZXctPmZp
cnN0LT5wcHJldiA9ICZuZXctPmZpcnN0Owogb2xkLT5maXJzdCA9ICgodm9pZCAqKTApOwp9CiMg
MTIgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiIDIKIyA3OCAiLi9pbmNsdWRlL2xpbnV4L3By
ZWVtcHQuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3ByZWVtcHQuaCIgMQoKCgoKCiMg
MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZXJjcHUuaCIgMQojIDg4ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL3BlcmNwdS5oIgpleHRlcm4gdm9pZCBfX2JhZF9wZXJjcHVfc2l6ZSh2b2lkKTsK
IyA1MjQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGVyY3B1LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgYm9vbCB4ODZfdGhpc19jcHVfY29uc3RhbnRfdGVzdF9iaXQodW5z
aWduZWQgaW50IG5yLAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25n
ICphZGRyKQp7CiB1bnNpZ25lZCBsb25nICphID0KICAodW5zaWduZWQgbG9uZyAqKWFkZHIgKyBu
ciAvIDY0OwoKCiByZXR1cm4gKCgxVUwgPDwgKG5yICUgNjQpKSAmICh7IHR5cGVvZigqYSkgcGZv
X3JldF9fOyBzd2l0Y2ggKHNpemVvZigqYSkpIHsgY2FzZSAxOiBhc20gKCJtb3YiICJiICIiJSUi
ImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iICgqYSkpOyBicmVh
azsgY2FzZSAyOiBhc20gKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iICgqYSkpOyBicmVhazsgY2FzZSA0OiBhc20gKCJtb3YiICJsICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iICgqYSkpOyBi
cmVhazsgY2FzZSA4OiBhc20gKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXIiIChwZm9fcmV0X18pIDogIm0iICgqYSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1
X3NpemUoKTsgfSBwZm9fcmV0X187IH0pKSAhPSAwOwoKCgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHg4Nl90aGlzX2NwdV92
YXJpYWJsZV90ZXN0X2JpdChpbnQgbnIsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIGxvbmcgKmFkZHIpCnsKIGJvb2wgb2xkYml0OwoKIGFzbSB2b2xhdGlsZSgiYnRsICIi
JSUiImdzIiI6IiAiJSIgIjIiIiwlMSIKICAgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUg
IiAiYyIgIiovXG4iCiAgIDogIj1AY2MiICJjIiAob2xkYml0KQogICA6ICJtIiAoKih1bnNpZ25l
ZCBsb25nICopYWRkciksICJJciIgKG5yKSk7CgogcmV0dXJuIG9sZGJpdDsKfQoKCgoKCgoKIyAx
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGVyY3B1LmgiIDEKCgoKCgojIDEgIi4vaW5jbHVkZS9s
aW51eC90aHJlYWRzLmgiIDEKIyA3ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGVyY3B1LmgiIDIK
IyAxICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LWRlZnMuaCIgMQojIDMwOCAiLi9pbmNsdWRlL2xp
bnV4L3BlcmNwdS1kZWZzLmgiCmV4dGVybiB2b2lkIF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0ZXIo
dm9pZCk7CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIF9fdGhpc19jcHVfcHJlZW1wdF9jaGVjayhjb25zdCBjaGFyICpvcCkg
eyB9CiMgOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3BlcmNwdS5oIiAyCiMgMTkgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9wZXJjcHUuaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19wZXJfY3B1X29m
ZnNldFs4XTsKIyA0OCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3BlcmNwdS5oIgpleHRlcm4gdm9p
ZCBzZXR1cF9wZXJfY3B1X2FyZWFzKHZvaWQpOwojIDU1NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9wZXJjcHUuaCIgMgoKCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVy
Y3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyh1bnNpZ25lZCBsb25nKSB0aGlzX2Nw
dV9vZmY7CiMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcmVlbXB0LmgiIDIKIyAxICIuL2lu
Y2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIgMQojIDEyICIuL2luY2x1ZGUvbGludXgvdGhyZWFk
X2luZm8uaCIKIyAxICIuL2luY2x1ZGUvbGludXgvYnVnLmgiIDEKCgoKCiMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9idWcuaCIgMQojIDgzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2J1Zy5o
IgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9idWcuaCIgMQojIDI0ICIuL2luY2x1ZGUvYXNt
LWdlbmVyaWMvYnVnLmgiCnN0cnVjdCBidWdfZW50cnkgewoKCgogc2lnbmVkIGludCBidWdfYWRk
cl9kaXNwOwoKCgoKCiBzaWduZWQgaW50IGZpbGVfZGlzcDsKCiB1bnNpZ25lZCBzaG9ydCBsaW5l
OwoKIHVuc2lnbmVkIHNob3J0IGZsYWdzOwp9OwojIDg5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMv
YnVnLmgiCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMikpKSB2
b2lkIF9fd2Fybl9wcmludGsoY29uc3QgY2hhciAqZm10LCAuLi4pOwojIDEwNSAiLi9pbmNsdWRl
L2FzbS1nZW5lcmljL2J1Zy5oIgpzdHJ1Y3Qgd2Fybl9hcmdzOwpzdHJ1Y3QgcHRfcmVnczsKCnZv
aWQgX193YXJuKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCB2b2lkICpjYWxsZXIsIHVuc2ln
bmVkIHRhaW50LAogICAgIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3Qgd2Fybl9hcmdzICph
cmdzKTsKIyA4NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9idWcuaCIgMgojIDYgIi4vaW5jbHVk
ZS9saW51eC9idWcuaCIgMgoKCgplbnVtIGJ1Z190cmFwX3R5cGUgewogQlVHX1RSQVBfVFlQRV9O
T05FID0gMCwKIEJVR19UUkFQX1RZUEVfV0FSTiA9IDEsCiBCVUdfVFJBUF9UWVBFX0JVRyA9IDIs
Cn07CgpzdHJ1Y3QgcHRfcmVnczsKIyAzNCAiLi9pbmNsdWRlL2xpbnV4L2J1Zy5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaXNf
d2FybmluZ19idWcoY29uc3Qgc3RydWN0IGJ1Z19lbnRyeSAqYnVnKQp7CiByZXR1cm4gYnVnLT5m
bGFncyAmICgxIDw8IDApOwp9CgpzdHJ1Y3QgYnVnX2VudHJ5ICpmaW5kX2J1Zyh1bnNpZ25lZCBs
b25nIGJ1Z2FkZHIpOwoKZW51bSBidWdfdHJhcF90eXBlIHJlcG9ydF9idWcodW5zaWduZWQgbG9u
ZyBidWdfYWRkciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwoKCmludCBpc192YWxpZF9idWdhZGRy
KHVuc2lnbmVkIGxvbmcgYWRkcik7Cgp2b2lkIGdlbmVyaWNfYnVnX2NsZWFyX29uY2Uodm9pZCk7
CiMgNzAgIi4vaW5jbHVkZS9saW51eC9idWcuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIGJvb2wgY2hlY2tfZGF0YV9jb3JydXB0aW9uKGJvb2wgdikgeyByZXR1cm4g
djsgfQojIDEzICIuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIgMgojIDEgIi4vaW5jbHVk
ZS9saW51eC9yZXN0YXJ0X2Jsb2NrLmgiIDEKIyAxMCAiLi9pbmNsdWRlL2xpbnV4L3Jlc3RhcnRf
YmxvY2suaCIKIyAxICIuL2luY2x1ZGUvbGludXgvdGltZTY0LmgiIDEKCgoKCiMgMSAiLi9pbmNs
dWRlL2xpbnV4L21hdGg2NC5oIiAxCiMgMjQgIi4vaW5jbHVkZS9saW51eC9tYXRoNjQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0
IGRpdl91NjRfcmVtKHU2NCBkaXZpZGVuZCwgdTMyIGRpdmlzb3IsIHUzMiAqcmVtYWluZGVyKQp7
CiAqcmVtYWluZGVyID0gZGl2aWRlbmQgJSBkaXZpc29yOwogcmV0dXJuIGRpdmlkZW5kIC8gZGl2
aXNvcjsKfQojIDM4ICIuL2luY2x1ZGUvbGludXgvbWF0aDY0LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBkaXZfczY0X3JlbShz
NjQgZGl2aWRlbmQsIHMzMiBkaXZpc29yLCBzMzIgKnJlbWFpbmRlcikKewogKnJlbWFpbmRlciA9
IGRpdmlkZW5kICUgZGl2aXNvcjsKIHJldHVybiBkaXZpZGVuZCAvIGRpdmlzb3I7Cn0KIyA1MiAi
Li9pbmNsdWRlL2xpbnV4L21hdGg2NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgZGl2NjRfdTY0X3JlbSh1NjQgZGl2aWRlbmQs
IHU2NCBkaXZpc29yLCB1NjQgKnJlbWFpbmRlcikKewogKnJlbWFpbmRlciA9IGRpdmlkZW5kICUg
ZGl2aXNvcjsKIHJldHVybiBkaXZpZGVuZCAvIGRpdmlzb3I7Cn0KIyA2NSAiLi9pbmNsdWRlL2xp
bnV4L21hdGg2NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1NjQgZGl2NjRfdTY0KHU2NCBkaXZpZGVuZCwgdTY0IGRpdmlzb3IpCnsK
IHJldHVybiBkaXZpZGVuZCAvIGRpdmlzb3I7Cn0KIyA3NyAiLi9pbmNsdWRlL2xpbnV4L21hdGg2
NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzNjQgZGl2NjRfczY0KHM2NCBkaXZpZGVuZCwgczY0IGRpdmlzb3IpCnsKIHJldHVybiBk
aXZpZGVuZCAvIGRpdmlzb3I7Cn0KIyAxMjMgIi4vaW5jbHVkZS9saW51eC9tYXRoNjQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0
IGRpdl91NjQodTY0IGRpdmlkZW5kLCB1MzIgZGl2aXNvcikKewogdTMyIHJlbWFpbmRlcjsKIHJl
dHVybiBkaXZfdTY0X3JlbShkaXZpZGVuZCwgZGl2aXNvciwgJnJlbWFpbmRlcik7Cn0KIyAxMzYg
Ii4vaW5jbHVkZS9saW51eC9tYXRoNjQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGRpdl9zNjQoczY0IGRpdmlkZW5kLCBzMzIg
ZGl2aXNvcikKewogczMyIHJlbWFpbmRlcjsKIHJldHVybiBkaXZfczY0X3JlbShkaXZpZGVuZCwg
ZGl2aXNvciwgJnJlbWFpbmRlcik7Cn0KCgp1MzIgaXRlcl9kaXZfdTY0X3JlbSh1NjQgZGl2aWRl
bmQsIHUzMiBkaXZpc29yLCB1NjQgKnJlbWFpbmRlcik7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIHUzMgpfX2l0ZXJfZGl2X3U2NF9yZW0odTY0IGRpdmlkZW5kLCB1MzIgZGl2
aXNvciwgdTY0ICpyZW1haW5kZXIpCnsKIHUzMiByZXQgPSAwOwoKIHdoaWxlIChkaXZpZGVuZCA+
PSBkaXZpc29yKSB7CgoKICBhc20oIiIgOiAiK3JtIihkaXZpZGVuZCkpOwoKICBkaXZpZGVuZCAt
PSBkaXZpc29yOwogIHJldCsrOwogfQoKICpyZW1haW5kZXIgPSBkaXZpZGVuZDsKCiByZXR1cm4g
cmV0Owp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdTY0IG11bF91MzJfdTMyKHUzMiBhLCB1MzIgYikKewogcmV0dXJuICh1NjQp
YSAqIGI7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1NjQgbXVsX3U2NF91MzJfc2hyKHU2NCBhLCB1MzIgbXVsLCB1bnNpZ25l
ZCBpbnQgc2hpZnQpCnsKIHJldHVybiAodTY0KSgoKHVuc2lnbmVkIF9faW50MTI4KWEgKiBtdWwp
ID4+IHNoaWZ0KTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1NjQgbXVsX3U2NF91NjRfc2hyKHU2NCBhLCB1NjQgbXVsLCB1bnNp
Z25lZCBpbnQgc2hpZnQpCnsKIHJldHVybiAodTY0KSgoKHVuc2lnbmVkIF9faW50MTI4KWEgKiBt
dWwpID4+IHNoaWZ0KTsKfQojIDYgIi4vaW5jbHVkZS9saW51eC90aW1lNjQuaCIgMgoKdHlwZWRl
ZiBfX3M2NCB0aW1lNjRfdDsKdHlwZWRlZiBfX3U2NCB0aW1ldTY0X3Q7CgojIDEgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L3RpbWUuaCIgMQoKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvdGlt
ZV90eXBlcy5oIiAxCgoKCgoKCnN0cnVjdCBfX2tlcm5lbF90aW1lc3BlYyB7CiBfX2tlcm5lbF90
aW1lNjRfdCB0dl9zZWM7CiBsb25nIGxvbmcgdHZfbnNlYzsKfTsKCnN0cnVjdCBfX2tlcm5lbF9p
dGltZXJzcGVjIHsKIHN0cnVjdCBfX2tlcm5lbF90aW1lc3BlYyBpdF9pbnRlcnZhbDsKIHN0cnVj
dCBfX2tlcm5lbF90aW1lc3BlYyBpdF92YWx1ZTsKfTsKIyAyNSAiLi9pbmNsdWRlL3VhcGkvbGlu
dXgvdGltZV90eXBlcy5oIgpzdHJ1Y3QgX19rZXJuZWxfb2xkX3RpbWV2YWwgewogX19rZXJuZWxf
bG9uZ190IHR2X3NlYzsKIF9fa2VybmVsX2xvbmdfdCB0dl91c2VjOwp9OwoKCnN0cnVjdCBfX2tl
cm5lbF9vbGRfdGltZXNwZWMgewogX19rZXJuZWxfb2xkX3RpbWVfdCB0dl9zZWM7CiBsb25nIHR2
X25zZWM7Cn07CgpzdHJ1Y3QgX19rZXJuZWxfb2xkX2l0aW1lcnZhbCB7CiBzdHJ1Y3QgX19rZXJu
ZWxfb2xkX3RpbWV2YWwgaXRfaW50ZXJ2YWw7CiBzdHJ1Y3QgX19rZXJuZWxfb2xkX3RpbWV2YWwg
aXRfdmFsdWU7Cn07CgpzdHJ1Y3QgX19rZXJuZWxfc29ja190aW1ldmFsIHsKIF9fczY0IHR2X3Nl
YzsKIF9fczY0IHR2X3VzZWM7Cn07CiMgNyAiLi9pbmNsdWRlL3VhcGkvbGludXgvdGltZS5oIiAy
CiMgMzMgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWUuaCIKc3RydWN0IHRpbWV6b25lIHsKIGlu
dCB0el9taW51dGVzd2VzdDsKIGludCB0el9kc3R0aW1lOwp9OwojIDExICIuL2luY2x1ZGUvbGlu
dXgvdGltZTY0LmgiIDIKCnN0cnVjdCB0aW1lc3BlYzY0IHsKIHRpbWU2NF90IHR2X3NlYzsKIGxv
bmcgdHZfbnNlYzsKfTsKCnN0cnVjdCBpdGltZXJzcGVjNjQgewogc3RydWN0IHRpbWVzcGVjNjQg
aXRfaW50ZXJ2YWw7CiBzdHJ1Y3QgdGltZXNwZWM2NCBpdF92YWx1ZTsKfTsKIyA0OSAiLi9pbmNs
dWRlL2xpbnV4L3RpbWU2NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGltZXNwZWM2NF9lcXVhbChjb25zdCBzdHJ1Y3QgdGlt
ZXNwZWM2NCAqYSwKICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICpiKQp7CiByZXR1cm4g
KGEtPnR2X3NlYyA9PSBiLT50dl9zZWMpICYmIChhLT50dl9uc2VjID09IGItPnR2X25zZWMpOwp9
CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCB0aW1lc3BlYzY0X2NvbXBhcmUoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKmxo
cywgY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnJocykKewogaWYgKGxocy0+dHZfc2VjIDwgcmhz
LT50dl9zZWMpCiAgcmV0dXJuIC0xOwogaWYgKGxocy0+dHZfc2VjID4gcmhzLT50dl9zZWMpCiAg
cmV0dXJuIDE7CiByZXR1cm4gbGhzLT50dl9uc2VjIC0gcmhzLT50dl9uc2VjOwp9CgpleHRlcm4g
dm9pZCBzZXRfbm9ybWFsaXplZF90aW1lc3BlYzY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cywgdGlt
ZTY0X3Qgc2VjLCBzNjQgbnNlYyk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgdGltZXNwZWM2NCB0aW1lc3BlYzY0X2FkZChz
dHJ1Y3QgdGltZXNwZWM2NCBsaHMsCiAgICAgIHN0cnVjdCB0aW1lc3BlYzY0IHJocykKewogc3Ry
dWN0IHRpbWVzcGVjNjQgdHNfZGVsdGE7CiBzZXRfbm9ybWFsaXplZF90aW1lc3BlYzY0KCZ0c19k
ZWx0YSwgbGhzLnR2X3NlYyArIHJocy50dl9zZWMsCiAgICBsaHMudHZfbnNlYyArIHJocy50dl9u
c2VjKTsKIHJldHVybiB0c19kZWx0YTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHRpbWVzcGVjNjQgdGltZXNwZWM2
NF9zdWIoc3RydWN0IHRpbWVzcGVjNjQgbGhzLAogICAgICBzdHJ1Y3QgdGltZXNwZWM2NCByaHMp
CnsKIHN0cnVjdCB0aW1lc3BlYzY0IHRzX2RlbHRhOwogc2V0X25vcm1hbGl6ZWRfdGltZXNwZWM2
NCgmdHNfZGVsdGEsIGxocy50dl9zZWMgLSByaHMudHZfc2VjLAogICAgbGhzLnR2X25zZWMgLSBy
aHMudHZfbnNlYyk7CiByZXR1cm4gdHNfZGVsdGE7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGltZXNwZWM2NF92YWxp
ZChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCnsKCiBpZiAodHMtPnR2X3NlYyA8IDApCiAg
cmV0dXJuIGZhbHNlOwoKIGlmICgodW5zaWduZWQgbG9uZyl0cy0+dHZfbnNlYyA+PSAxMDAwMDAw
MDAwTCkKICByZXR1cm4gZmFsc2U7CiByZXR1cm4gdHJ1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0aW1lc3BlYzY0X3Zh
bGlkX3N0cmljdChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCnsKIGlmICghdGltZXNwZWM2
NF92YWxpZCh0cykpCiAgcmV0dXJuIGZhbHNlOwoKIGlmICgodW5zaWduZWQgbG9uZyBsb25nKXRz
LT50dl9zZWMgPj0gKCgoczY0KX4oKHU2NCkxIDw8IDYzKSkgLyAxMDAwMDAwMDAwTCkpCiAgcmV0
dXJuIGZhbHNlOwogcmV0dXJuIHRydWU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGltZXNwZWM2NF92YWxpZF9zZXR0b2Qo
Y29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnRzKQp7CiBpZiAoIXRpbWVzcGVjNjRfdmFsaWQodHMp
KQogIHJldHVybiBmYWxzZTsKCiBpZiAoKHVuc2lnbmVkIGxvbmcgbG9uZyl0cy0+dHZfc2VjID49
ICgoKChzNjQpfigodTY0KTEgPDwgNjMpKSAvIDEwMDAwMDAwMDBMKSAtICgzMExMICogMzY1ICog
MjQgKjM2MDApKSkKICByZXR1cm4gZmFsc2U7CiByZXR1cm4gdHJ1ZTsKfQojIDEzMyAiLi9pbmNs
dWRlL2xpbnV4L3RpbWU2NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgdGltZXNwZWM2NF90b19ucyhjb25zdCBzdHJ1Y3QgdGlt
ZXNwZWM2NCAqdHMpCnsKIHJldHVybiAoKHM2NCkgdHMtPnR2X3NlYyAqIDEwMDAwMDAwMDBMKSAr
IHRzLT50dl9uc2VjOwp9CgoKCgoKCgpleHRlcm4gc3RydWN0IHRpbWVzcGVjNjQgbnNfdG9fdGlt
ZXNwZWM2NChjb25zdCBzNjQgbnNlYyk7CiMgMTU0ICIuL2luY2x1ZGUvbGludXgvdGltZTY0Lmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCB0aW1lc3BlYzY0X2FkZF9u
cyhzdHJ1Y3QgdGltZXNwZWM2NCAqYSwgdTY0IG5zKQp7CiBhLT50dl9zZWMgKz0gX19pdGVyX2Rp
dl91NjRfcmVtKGEtPnR2X25zZWMgKyBucywgMTAwMDAwMDAwMEwsICZucyk7CiBhLT50dl9uc2Vj
ID0gbnM7Cn0KCgoKCgpleHRlcm4gc3RydWN0IHRpbWVzcGVjNjQgdGltZXNwZWM2NF9hZGRfc2Fm
ZShjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCBsaHMsCiAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3Bl
YzY0IHJocyk7CiMgMTEgIi4vaW5jbHVkZS9saW51eC9yZXN0YXJ0X2Jsb2NrLmgiIDIKCnN0cnVj
dCB0aW1lc3BlYzsKc3RydWN0IG9sZF90aW1lc3BlYzMyOwpzdHJ1Y3QgcG9sbGZkOwoKZW51bSB0
aW1lc3BlY190eXBlIHsKIFRUX05PTkUgPSAwLAogVFRfTkFUSVZFID0gMSwKIFRUX0NPTVBBVCA9
IDIsCn07CgoKCgpzdHJ1Y3QgcmVzdGFydF9ibG9jayB7CiBsb25nICgqZm4pKHN0cnVjdCByZXN0
YXJ0X2Jsb2NrICopOwogdW5pb24gewoKICBzdHJ1Y3QgewogICB1MzIgKnVhZGRyOwogICB1MzIg
dmFsOwogICB1MzIgZmxhZ3M7CiAgIHUzMiBiaXRzZXQ7CiAgIHU2NCB0aW1lOwogICB1MzIgKnVh
ZGRyMjsKICB9IGZ1dGV4OwoKICBzdHJ1Y3QgewogICBjbG9ja2lkX3QgY2xvY2tpZDsKICAgZW51
bSB0aW1lc3BlY190eXBlIHR5cGU7CiAgIHVuaW9uIHsKICAgIHN0cnVjdCBfX2tlcm5lbF90aW1l
c3BlYyAqcm10cDsKICAgIHN0cnVjdCBvbGRfdGltZXNwZWMzMiAqY29tcGF0X3JtdHA7CiAgIH07
CiAgIHU2NCBleHBpcmVzOwogIH0gbmFub3NsZWVwOwoKICBzdHJ1Y3QgewogICBzdHJ1Y3QgcG9s
bGZkICp1ZmRzOwogICBpbnQgbmZkczsKICAgaW50IGhhc190aW1lb3V0OwogICB1bnNpZ25lZCBs
b25nIHR2X3NlYzsKICAgdW5zaWduZWQgbG9uZyB0dl9uc2VjOwogIH0gcG9sbDsKIH07Cn07Cgpl
eHRlcm4gbG9uZyBkb19ub19yZXN0YXJ0X3N5c2NhbGwoc3RydWN0IHJlc3RhcnRfYmxvY2sgKnBh
cm0pOwojIDE0ICIuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIgMgoKCgoKCgoKIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2N1cnJlbnQuaCIgMQojIDkgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vY3VycmVudC5oIgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CgpleHRlcm4gX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIiIpKSkgX190eXBlb2ZfXyhzdHJ1Y3QgdGFza19z
dHJ1Y3QgKikgY3VycmVudF90YXNrOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmdldF9jdXJyZW50KHZvaWQpCnsKIHJldHVybiAoeyB0eXBl
b2YoY3VycmVudF90YXNrKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGN1cnJlbnRfdGFzaykp
IHsgY2FzZSAxOiBhc20oIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAiPXEi
IChwZm9fcmV0X18pIDogInAiICgmKGN1cnJlbnRfdGFzaykpKTsgYnJlYWs7IGNhc2UgMjogYXNt
KCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIlAxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6
ICJwIiAoJihjdXJyZW50X3Rhc2spKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSgibW92IiAibCAiIiUl
IiJncyIiOiIgIiUiICJQMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAicCIgKCYoY3VycmVu
dF90YXNrKSkpOyBicmVhazsgY2FzZSA4OiBhc20oIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAi
UDEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogInAiICgmKGN1cnJlbnRfdGFzaykpKTsgYnJl
YWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsKfQojIDIy
ICIuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIgMgojIDMxICIuL2luY2x1ZGUvbGludXgv
dGhyZWFkX2luZm8uaCIKZW51bSB7CiBCQURfU1RBQ0sgPSAtMSwKIE5PVF9TVEFDSyA9IDAsCiBH
T09EX0ZSQU1FLAogR09PRF9TVEFDSywKfTsKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90
aHJlYWRfaW5mby5oIiAxCiMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8u
aCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2UuaCIgMQojIDEyICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3BhZ2UuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjQu
aCIgMQojIDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjQuaCIKZXh0ZXJuIHVuc2ln
bmVkIGxvbmcgbWF4X3BmbjsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcGh5c19iYXNlOwoKZXh0ZXJu
IHVuc2lnbmVkIGxvbmcgcGFnZV9vZmZzZXRfYmFzZTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdm1h
bGxvY19iYXNlOwpleHRlcm4gdW5zaWduZWQgbG9uZyB2bWVtbWFwX2Jhc2U7CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBs
b25nIF9fcGh5c19hZGRyX25vZGVidWcodW5zaWduZWQgbG9uZyB4KQp7CiB1bnNpZ25lZCBsb25n
IHkgPSB4IC0gKDB4ZmZmZmZmZmY4MDAwMDAwMFVMKTsKCgogeCA9IHkgKyAoKHggPiB5KSA/IHBo
eXNfYmFzZSA6ICgoMHhmZmZmZmZmZjgwMDAwMDAwVUwpIC0gKCh1bnNpZ25lZCBsb25nKXBhZ2Vf
b2Zmc2V0X2Jhc2UpKSk7CgogcmV0dXJuIHg7Cn0KIyA0MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9wYWdlXzY0LmgiCnZvaWQgY2xlYXJfcGFnZV9vcmlnKHZvaWQgKnBhZ2UpOwp2b2lkIGNsZWFy
X3BhZ2VfcmVwKHZvaWQgKnBhZ2UpOwp2b2lkIGNsZWFyX3BhZ2VfZXJtcyh2b2lkICpwYWdlKTsK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgY2xlYXJfcGFnZSh2b2lkICpwYWdlKQp7CiBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIj
IEFMVDogb2xkaW5zdHIyXG4iICI2NjE6XG5cdCIgImNhbGwgJVBbb2xkXSIgIlxuNjYyOlxuIiAi
IyBBTFQ6IHBhZGRpbmcyXG4iICIuc2tpcCAtKCgiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIi
ZiIgIikgXiAoKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCIgIjY2NSIiMiIiZi0i
IjY2NCIiMiIiZiIgIikpICYgLSgtKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIDwgKCIg
IjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIikpKSkpIiAiIC0gKCIgIjY2MmItNjYxYiIgIikpID4g
MCkgKiAiICIoIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCgoIiAiNjY1IiIx
IiJmLSIiNjY0IiIxIiJmIiAiKSBeICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSAmIC0o
LSgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSA8ICgiICI2NjUiIjIiImYtIiI2NjQiIjIi
ImYiICIpKSkpKSIgIiAtICgiICI2NjJiLTY2MWIiICIpKSwgMHg5MFxuIiAiNjYzIiAiOlxuIiAi
LnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9uZyA2NjFiIC0gLlxu
IiAiIC5sb25nICIgIjY2NCIiMSIiZiAtIC5cbiIgIiAud29yZCAiICIoIDMqMzIrMTYpIiAiXG4i
ICIgLmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQi
IjEiImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiIC5sb25nIDY2MWIgLSAu
XG4iICIgLmxvbmcgIiAiNjY0IiIyIiJmIC0gLlxuIiAiIC53b3JkICIgIiggOSozMisgOSkiICJc
biIgIiAuYnl0ZSAiICI2NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIgIjY2NSIiMiIiZi0iIjY2
NCIiMiIiZiIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxu
IiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDog
cmVwbGFjZW1lbnQgIiAiMSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgImNhbGwgJVBbbmV3MV0iICJc
biIgIjY2NSIiMSIgIjpcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIyIiAiXG4iICI2NjQiIjIi
Ijpcblx0IiAiY2FsbCAlUFtuZXcyXSIgIlxuIiAiNjY1IiIyIiAiOlxuIiAiLnBvcHNlY3Rpb25c
biIgOiAiPUQiIChwYWdlKSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtvbGRdICJp
IiAoY2xlYXJfcGFnZV9vcmlnKSwgW25ldzFdICJpIiAoY2xlYXJfcGFnZV9yZXApLCBbbmV3Ml0g
ImkiIChjbGVhcl9wYWdlX2VybXMpLCAiMCIgKHBhZ2UpIDogImNjIiwgIm1lbW9yeSIsICJyYXgi
LCAicmN4IikKCgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Cn0KCnZv
aWQgY29weV9wYWdlKHZvaWQgKnRvLCB2b2lkICpmcm9tKTsKIyAxMyAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9wYWdlLmgiIDIKCgoKCgoKc3RydWN0IHBhZ2U7CgojIDEgIi4vaW5jbHVkZS9saW51
eC9yYW5nZS5oIiAxCgoKCgpzdHJ1Y3QgcmFuZ2UgewogdTY0IHN0YXJ0OwogdTY0IGVuZDsKfTsK
CmludCBhZGRfcmFuZ2Uoc3RydWN0IHJhbmdlICpyYW5nZSwgaW50IGF6LCBpbnQgbnJfcmFuZ2Us
CiAgdTY0IHN0YXJ0LCB1NjQgZW5kKTsKCgppbnQgYWRkX3JhbmdlX3dpdGhfbWVyZ2Uoc3RydWN0
IHJhbmdlICpyYW5nZSwgaW50IGF6LCBpbnQgbnJfcmFuZ2UsCiAgICB1NjQgc3RhcnQsIHU2NCBl
bmQpOwoKdm9pZCBzdWJ0cmFjdF9yYW5nZShzdHJ1Y3QgcmFuZ2UgKnJhbmdlLCBpbnQgYXosIHU2
NCBzdGFydCwgdTY0IGVuZCk7CgppbnQgY2xlYW5fc29ydF9yYW5nZShzdHJ1Y3QgcmFuZ2UgKnJh
bmdlLCBpbnQgYXopOwoKdm9pZCBzb3J0X3JhbmdlKHN0cnVjdCByYW5nZSAqcmFuZ2UsIGludCBu
cl9yYW5nZSk7CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgcmVzb3VyY2Vfc2l6ZV90IGNhcF9yZXNvdXJjZSh1NjQgdmFsKQp7CiBpZiAo
dmFsID4gKChyZXNvdXJjZV9zaXplX3QpfjApKQogIHJldHVybiAoKHJlc291cmNlX3NpemVfdCl+
MCk7CgogcmV0dXJuIHZhbDsKfQojIDIyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2UuaCIg
MgpleHRlcm4gc3RydWN0IHJhbmdlIHBmbl9tYXBwZWRbXTsKZXh0ZXJuIGludCBucl9wZm5fbWFw
cGVkOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBjbGVhcl91c2VyX3BhZ2Uodm9pZCAqcGFnZSwgdW5zaWduZWQgbG9uZyB2YWRk
ciwKICAgICAgIHN0cnVjdCBwYWdlICpwZykKewogY2xlYXJfcGFnZShwYWdlKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBj
b3B5X3VzZXJfcGFnZSh2b2lkICp0bywgdm9pZCAqZnJvbSwgdW5zaWduZWQgbG9uZyB2YWRkciwK
ICAgICAgc3RydWN0IHBhZ2UgKnRvcGFnZSkKewogY29weV9wYWdlKHRvLCBmcm9tKTsKfQojIDcx
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2UuaCIKZXh0ZXJuIGJvb2wgX192aXJ0X2FkZHJf
dmFsaWQodW5zaWduZWQgbG9uZyBrYWRkcik7CgoKCgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9tZW1vcnlfbW9kZWwuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvcGZuLmgiIDEKIyAx
MyAiLi9pbmNsdWRlL2xpbnV4L3Bmbi5oIgp0eXBlZGVmIHN0cnVjdCB7CiB1NjQgdmFsOwp9IHBm
bl90OwojIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9tZW1vcnlfbW9kZWwuaCIgMgojIDc3ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2UuaCIgMgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9nZXRvcmRlci5oIiAxCiMgMjkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9nZXRvcmRlci5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKSBpbnQgZ2V0X29yZGVyKHVuc2lnbmVkIGxvbmcgc2l6
ZSkKewogaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpKSB7CiAgaWYgKCFzaXplKQogICBy
ZXR1cm4gNjQgLSAxMjsKCiAgaWYgKHNpemUgPCAoMVVMIDw8IDEyKSkKICAgcmV0dXJuIDA7Cgog
IHJldHVybiAoIF9fYnVpbHRpbl9jb25zdGFudF9wKChzaXplKSAtIDEpID8gKCBfX2J1aWx0aW5f
Y29uc3RhbnRfcCgoc2l6ZSkgLSAxKSA/ICggKChzaXplKSAtIDEpIDwgMiA/IDAgOiAoKHNpemUp
IC0gMSkgJiAoMVVMTCA8PCA2MykgPyA2MyA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDYyKSA/
IDYyIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNjEpID8gNjEgOiAoKHNpemUpIC0gMSkgJiAo
MVVMTCA8PCA2MCkgPyA2MCA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDU5KSA/IDU5IDogKChz
aXplKSAtIDEpICYgKDFVTEwgPDwgNTgpID8gNTggOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1
NykgPyA1NyA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDU2KSA/IDU2IDogKChzaXplKSAtIDEp
ICYgKDFVTEwgPDwgNTUpID8gNTUgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1NCkgPyA1NCA6
ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDUzKSA/IDUzIDogKChzaXplKSAtIDEpICYgKDFVTEwg
PDwgNTIpID8gNTIgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1MSkgPyA1MSA6ICgoc2l6ZSkg
LSAxKSAmICgxVUxMIDw8IDUwKSA/IDUwIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDkpID8g
NDkgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA0OCkgPyA0OCA6ICgoc2l6ZSkgLSAxKSAmICgx
VUxMIDw8IDQ3KSA/IDQ3IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDYpID8gNDYgOiAoKHNp
emUpIC0gMSkgJiAoMVVMTCA8PCA0NSkgPyA0NSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDQ0
KSA/IDQ0IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDMpID8gNDMgOiAoKHNpemUpIC0gMSkg
JiAoMVVMTCA8PCA0MikgPyA0MiA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDQxKSA/IDQxIDog
KChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDApID8gNDAgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8
PCAzOSkgPyAzOSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDM4KSA/IDM4IDogKChzaXplKSAt
IDEpICYgKDFVTEwgPDwgMzcpID8gMzcgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzNikgPyAz
NiA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDM1KSA/IDM1IDogKChzaXplKSAtIDEpICYgKDFV
TEwgPDwgMzQpID8gMzQgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzMykgPyAzMyA6ICgoc2l6
ZSkgLSAxKSAmICgxVUxMIDw8IDMyKSA/IDMyIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMzEp
ID8gMzEgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzMCkgPyAzMCA6ICgoc2l6ZSkgLSAxKSAm
ICgxVUxMIDw8IDI5KSA/IDI5IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMjgpID8gMjggOiAo
KHNpemUpIC0gMSkgJiAoMVVMTCA8PCAyNykgPyAyNyA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8
IDI2KSA/IDI2IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMjUpID8gMjUgOiAoKHNpemUpIC0g
MSkgJiAoMVVMTCA8PCAyNCkgPyAyNCA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDIzKSA/IDIz
IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMjIpID8gMjIgOiAoKHNpemUpIC0gMSkgJiAoMVVM
TCA8PCAyMSkgPyAyMSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKChzaXpl
KSAtIDEpICYgKDFVTEwgPDwgMTkpID8gMTkgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAxOCkg
PyAxOCA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDE3KSA/IDE3IDogKChzaXplKSAtIDEpICYg
KDFVTEwgPDwgMTYpID8gMTYgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAxNSkgPyAxNSA6ICgo
c2l6ZSkgLSAxKSAmICgxVUxMIDw8IDE0KSA/IDE0IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwg
MTMpID8gMTMgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAxMikgPyAxMiA6ICgoc2l6ZSkgLSAx
KSAmICgxVUxMIDw8IDExKSA/IDExIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMTApID8gMTAg
OiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA5KSA/IDkgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8
PCA4KSA/IDggOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA3KSA/IDcgOiAoKHNpemUpIC0gMSkg
JiAoMVVMTCA8PCA2KSA/IDYgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1KSA/IDUgOiAoKHNp
emUpIC0gMSkgJiAoMVVMTCA8PCA0KSA/IDQgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzKSA/
IDMgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0xKSA6IChzaXplb2Yo
KHNpemUpIC0gMSkgPD0gNCkgPyBfX2lsb2cyX3UzMigoc2l6ZSkgLSAxKSA6IF9faWxvZzJfdTY0
KChzaXplKSAtIDEpICkgLSAxMiArIDE7CiB9Cgogc2l6ZS0tOwogc2l6ZSA+Pj0gMTI7CgoKCiBy
ZXR1cm4gZmxzNjQoc2l6ZSk7Cgp9CiMgNzggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZS5o
IiAyCiMgMTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaCIgMgoKIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgiIDEKIyAxNSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIiAyCiMgNTIgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vdGhyZWFkX2luZm8uaCIKc3RydWN0IHRhc2tfc3RydWN0OwojIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vcHJvY2Vzc29yLmgiIDEKCgoKCgoKCnN0cnVjdCB0YXNrX3N0cnVjdDsKc3RydWN0IG1t
X3N0cnVjdDsKc3RydWN0IGlvX2JpdG1hcDsKc3RydWN0IHZtODY7CgojIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vbWF0aF9lbXUuaCIgMQojIDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21h
dGhfZW11LmgiCnN0cnVjdCBtYXRoX2VtdV9pbmZvIHsKIGxvbmcgX19fb3JpZ19laXA7CiBzdHJ1
Y3QgcHRfcmVncyAqcmVnczsKfTsKIyAxNCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaCIgMgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVz
LmgiIDEKIyAxNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgiIDEKIyA0MCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL3VhcGkvYXNtL3NpZ2NvbnRleHQuaCIKc3RydWN0IF9mcHhfc3dfYnl0ZXMgewoK
CgoKIF9fdTMyIG1hZ2ljMTsKIyA1NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NpZ2Nv
bnRleHQuaCIKIF9fdTMyIGV4dGVuZGVkX3NpemU7CgoKCgoKIF9fdTY0IHhmZWF0dXJlczsKCgoK
CgogX191MzIgeHN0YXRlX3NpemU7CgoKIF9fdTMyIHBhZGRpbmdbN107Cn07CiMgODUgIi4vYXJj
aC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgiCnN0cnVjdCBfZnByZWcgewogX191
MTYgc2lnbmlmaWNhbmRbNF07CiBfX3UxNiBleHBvbmVudDsKfTsKCgpzdHJ1Y3QgX2ZweHJlZyB7
CiBfX3UxNiBzaWduaWZpY2FuZFs0XTsKIF9fdTE2IGV4cG9uZW50OwogX191MTYgcGFkZGluZ1sz
XTsKfTsKCgpzdHJ1Y3QgX3htbXJlZyB7CiBfX3UzMiBlbGVtZW50WzRdOwp9OwoKCgoKCgpzdHJ1
Y3QgX2Zwc3RhdGVfMzIgewoKIF9fdTMyIGN3OwogX191MzIgc3c7CiBfX3UzMiB0YWc7CiBfX3Uz
MiBpcG9mZjsKIF9fdTMyIGNzc2VsOwogX191MzIgZGF0YW9mZjsKIF9fdTMyIGRhdGFzZWw7CiBz
dHJ1Y3QgX2ZwcmVnIF9zdFs4XTsKIF9fdTE2IHN0YXR1czsKIF9fdTE2IG1hZ2ljOwoKCgogX191
MzIgX2Z4c3JfZW52WzZdOwogX191MzIgbXhjc3I7CiBfX3UzMiByZXNlcnZlZDsKIHN0cnVjdCBf
ZnB4cmVnIF9meHNyX3N0WzhdOwogc3RydWN0IF94bW1yZWcgX3htbVs4XTsKIHVuaW9uIHsKICBf
X3UzMiBwYWRkaW5nMVs0NF07CiAgX191MzIgcGFkZGluZ1s0NF07CiB9OwoKIHVuaW9uIHsKICBf
X3UzMiBwYWRkaW5nMlsxMl07CiAgc3RydWN0IF9mcHhfc3dfYnl0ZXMgc3dfcmVzZXJ2ZWQ7CiB9
Owp9OwojIDE0OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NpZ2NvbnRleHQuaCIKc3Ry
dWN0IF9mcHN0YXRlXzY0IHsKIF9fdTE2IGN3ZDsKIF9fdTE2IHN3ZDsKCiBfX3UxNiB0d2Q7CiBf
X3UxNiBmb3A7CiBfX3U2NCByaXA7CiBfX3U2NCByZHA7CiBfX3UzMiBteGNzcjsKIF9fdTMyIG14
Y3NyX21hc2s7CiBfX3UzMiBzdF9zcGFjZVszMl07CiBfX3UzMiB4bW1fc3BhY2VbNjRdOwogX191
MzIgcmVzZXJ2ZWQyWzEyXTsKIHVuaW9uIHsKICBfX3UzMiByZXNlcnZlZDNbMTJdOwogIHN0cnVj
dCBfZnB4X3N3X2J5dGVzIHN3X3Jlc2VydmVkOwogfTsKfTsKCgoKCgoKCnN0cnVjdCBfaGVhZGVy
IHsKIF9fdTY0IHhmZWF0dXJlczsKIF9fdTY0IHJlc2VydmVkMVsyXTsKIF9fdTY0IHJlc2VydmVk
Mls1XTsKfTsKCnN0cnVjdCBfeW1taF9zdGF0ZSB7CgogX191MzIgeW1taF9zcGFjZVs2NF07Cn07
CiMgMTkyICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oIgpzdHJ1Y3Qg
X3hzdGF0ZSB7CiBzdHJ1Y3QgX2Zwc3RhdGVfNjQgZnBzdGF0ZTsKIHN0cnVjdCBfaGVhZGVyIHhz
dGF0ZV9oZHI7CiBzdHJ1Y3QgX3ltbWhfc3RhdGUgeW1taDsKCn07CgoKCgpzdHJ1Y3Qgc2lnY29u
dGV4dF8zMiB7CiBfX3UxNiBncywgX19nc2g7CiBfX3UxNiBmcywgX19mc2g7CiBfX3UxNiBlcywg
X19lc2g7CiBfX3UxNiBkcywgX19kc2g7CiBfX3UzMiBkaTsKIF9fdTMyIHNpOwogX191MzIgYnA7
CiBfX3UzMiBzcDsKIF9fdTMyIGJ4OwogX191MzIgZHg7CiBfX3UzMiBjeDsKIF9fdTMyIGF4Owog
X191MzIgdHJhcG5vOwogX191MzIgZXJyOwogX191MzIgaXA7CiBfX3UxNiBjcywgX19jc2g7CiBf
X3UzMiBmbGFnczsKIF9fdTMyIHNwX2F0X3NpZ25hbDsKIF9fdTE2IHNzLCBfX3NzaDsKIyAyMzAg
Ii4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgiCiBfX3UzMiBmcHN0YXRl
OwogX191MzIgb2xkbWFzazsKIF9fdTMyIGNyMjsKfTsKCgoKCnN0cnVjdCBzaWdjb250ZXh0XzY0
IHsKIF9fdTY0IHI4OwogX191NjQgcjk7CiBfX3U2NCByMTA7CiBfX3U2NCByMTE7CiBfX3U2NCBy
MTI7CiBfX3U2NCByMTM7CiBfX3U2NCByMTQ7CiBfX3U2NCByMTU7CiBfX3U2NCBkaTsKIF9fdTY0
IHNpOwogX191NjQgYnA7CiBfX3U2NCBieDsKIF9fdTY0IGR4OwogX191NjQgYXg7CiBfX3U2NCBj
eDsKIF9fdTY0IHNwOwogX191NjQgaXA7CiBfX3U2NCBmbGFnczsKIF9fdTE2IGNzOwogX191MTYg
Z3M7CiBfX3UxNiBmczsKIF9fdTE2IHNzOwogX191NjQgZXJyOwogX191NjQgdHJhcG5vOwogX191
NjQgb2xkbWFzazsKIF9fdTY0IGNyMjsKIyAyNzMgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2Fz
bS9zaWdjb250ZXh0LmgiCiBfX3U2NCBmcHN0YXRlOwogX191NjQgcmVzZXJ2ZWQxWzhdOwp9Owoj
IDE3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCgoKCgoKIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL21zci5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXNyLWluZGV4LmgiIDEKIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIiAyCgoK
CgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vZXJybm8uaCIgMQoj
IDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2Vycm5vLmgiIDEKCgoKCiMgMSAiLi9pbmNs
dWRlL3VhcGkvYXNtLWdlbmVyaWMvZXJybm8tYmFzZS5oIiAxCiMgNiAiLi9pbmNsdWRlL3VhcGkv
YXNtLWdlbmVyaWMvZXJybm8uaCIgMgojIDIgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQv
dWFwaS9hc20vZXJybm8uaCIgMgojIDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIiAy
CiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVtYXNrLmgiIDEKCgoKCiMgMSAiLi9pbmNs
dWRlL2xpbnV4L2NwdW1hc2suaCIgMQojIDEyICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoj
IDEgIi4vaW5jbHVkZS9saW51eC9iaXRtYXAuaCIgMQojIDkgIi4vaW5jbHVkZS9saW51eC9iaXRt
YXAuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiIDEKIyAxMCAiLi9pbmNsdWRlL2xp
bnV4L3N0cmluZy5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3N0cmluZy5oIiAxCiMgMTEg
Ii4vaW5jbHVkZS9saW51eC9zdHJpbmcuaCIgMgoKZXh0ZXJuIGNoYXIgKnN0cm5kdXBfdXNlcihj
b25zdCBjaGFyICosIGxvbmcpOwpleHRlcm4gdm9pZCAqbWVtZHVwX3VzZXIoY29uc3Qgdm9pZCAq
LCBzaXplX3QpOwpleHRlcm4gdm9pZCAqdm1lbWR1cF91c2VyKGNvbnN0IHZvaWQgKiwgc2l6ZV90
KTsKZXh0ZXJuIHZvaWQgKm1lbWR1cF91c2VyX251bChjb25zdCB2b2lkICosIHNpemVfdCk7CgoK
CgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3RyaW5nLmgiIDEKCgoKCiMgMSAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zdHJpbmdfNjQuaCIgMQojIDE0ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3N0cmluZ182NC5oIgpleHRlcm4gdm9pZCAqbWVtY3B5KHZvaWQgKnRvLCBjb25zdCB2b2lk
ICpmcm9tLCBzaXplX3QgbGVuKTsKZXh0ZXJuIHZvaWQgKl9fbWVtY3B5KHZvaWQgKnRvLCBjb25z
dCB2b2lkICpmcm9tLCBzaXplX3QgbGVuKTsKCgp2b2lkICptZW1zZXQodm9pZCAqcywgaW50IGMs
IHNpemVfdCBuKTsKdm9pZCAqX19tZW1zZXQodm9pZCAqcywgaW50IGMsIHNpemVfdCBuKTsKCgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkICptZW1zZXQxNih1aW50MTZfdCAqcywgdWludDE2X3Qgdiwgc2l6ZV90IG4pCnsKIGxvbmcg
ZDAsIGQxOwogYXNtIHZvbGF0aWxlKCJyZXBcblx0IgogICAgICAgInN0b3N3IgogICAgICAgOiAi
PSZjIiAoZDApLCAiPSZEIiAoZDEpCiAgICAgICA6ICJhIiAodiksICIxIiAocyksICIwIiAobikK
ICAgICAgIDogIm1lbW9yeSIpOwogcmV0dXJuIHM7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXQzMih1aW50MzJf
dCAqcywgdWludDMyX3Qgdiwgc2l6ZV90IG4pCnsKIGxvbmcgZDAsIGQxOwogYXNtIHZvbGF0aWxl
KCJyZXBcblx0IgogICAgICAgInN0b3NsIgogICAgICAgOiAiPSZjIiAoZDApLCAiPSZEIiAoZDEp
CiAgICAgICA6ICJhIiAodiksICIxIiAocyksICIwIiAobikKICAgICAgIDogIm1lbW9yeSIpOwog
cmV0dXJuIHM7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXQ2NCh1aW50NjRfdCAqcywgdWludDY0X3Qgdiwgc2l6
ZV90IG4pCnsKIGxvbmcgZDAsIGQxOwogYXNtIHZvbGF0aWxlKCJyZXBcblx0IgogICAgICAgInN0
b3NxIgogICAgICAgOiAiPSZjIiAoZDApLCAiPSZEIiAoZDEpCiAgICAgICA6ICJhIiAodiksICIx
IiAocyksICIwIiAobikKICAgICAgIDogIm1lbW9yeSIpOwogcmV0dXJuIHM7Cn0KCgp2b2lkICpt
ZW1tb3ZlKHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNvdW50KTsKdm9pZCAq
X19tZW1tb3ZlKHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNvdW50KTsKCmlu
dCBtZW1jbXAoY29uc3Qgdm9pZCAqY3MsIGNvbnN0IHZvaWQgKmN0LCBzaXplX3QgY291bnQpOwpz
aXplX3Qgc3RybGVuKGNvbnN0IGNoYXIgKnMpOwpjaGFyICpzdHJjcHkoY2hhciAqZGVzdCwgY29u
c3QgY2hhciAqc3JjKTsKY2hhciAqc3RyY2F0KGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYyk7
CmludCBzdHJjbXAoY29uc3QgY2hhciAqY3MsIGNvbnN0IGNoYXIgKmN0KTsKIyA4NiAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zdHJpbmdfNjQuaCIKX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIHVuc2lnbmVkIGxvbmcgX19tZW1jcHlfbWNzYWZlKHZvaWQgKmRzdCwgY29u
c3Qgdm9pZCAqc3JjLAogIHNpemVfdCBjbnQpOwpleHRlcm4gc3RydWN0IHN0YXRpY19rZXlfZmFs
c2UgbWNzYWZlX2tleTsKIyAxMDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3RyaW5nXzY0Lmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIHVuc2lnbmVkIGxvbmcKbWVtY3B5X21jc2FmZSh2b2lkICpkc3Qs
IGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNudCkKewoKIGlmICgoeyBib29sIGJyYW5jaDsgaWYg
KF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCombWNzYWZlX2tleSksIHN0cnVj
dCBzdGF0aWNfa2V5X3RydWUpKSBicmFuY2ggPSBhcmNoX3N0YXRpY19icmFuY2hfanVtcCgmKCZt
Y3NhZmVfa2V5KS0+a2V5LCBmYWxzZSk7IGVsc2UgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRp
YmxlX3AodHlwZW9mKCombWNzYWZlX2tleSksIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlKSkgYnJh
bmNoID0gYXJjaF9zdGF0aWNfYnJhbmNoKCYoJm1jc2FmZV9rZXkpLT5rZXksIGZhbHNlKTsgZWxz
ZSBicmFuY2ggPSBfX19fd3JvbmdfYnJhbmNoX2Vycm9yKCk7IF9fYnVpbHRpbl9leHBlY3QoISEo
YnJhbmNoKSwgMCk7IH0pKQogIHJldHVybiBfX21lbWNweV9tY3NhZmUoZHN0LCBzcmMsIGNudCk7
CiBlbHNlCgogIG1lbWNweShkc3QsIHNyYywgY250KTsKIHJldHVybiAwOwp9CgoKCnZvaWQgX19t
ZW1jcHlfZmx1c2hjYWNoZSh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNudCk7
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBtZW1jcHlfZmx1c2hjYWNo
ZSh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNudCkKewogaWYgKF9fYnVpbHRp
bl9jb25zdGFudF9wKGNudCkpIHsKICBzd2l0Y2ggKGNudCkgewogICBjYXNlIDQ6CiAgICBhc20g
KCJtb3ZudGlsICUxLCAlMCIgOiAiPW0iKCoodTMyICopZHN0KSA6ICJyIigqKHUzMiAqKXNyYykp
OwogICAgcmV0dXJuOwogICBjYXNlIDg6CiAgICBhc20gKCJtb3ZudGlxICUxLCAlMCIgOiAiPW0i
KCoodTY0ICopZHN0KSA6ICJyIigqKHU2NCAqKXNyYykpOwogICAgcmV0dXJuOwogICBjYXNlIDE2
OgogICAgYXNtICgibW92bnRpcSAlMSwgJTAiIDogIj1tIigqKHU2NCAqKWRzdCkgOiAiciIoKih1
NjQgKilzcmMpKTsKICAgIGFzbSAoIm1vdm50aXEgJTEsICUwIiA6ICI9bSIoKih1NjQgKikoZHN0
ICsgOCkpIDogInIiKCoodTY0ICopKHNyYyArIDgpKSk7CiAgICByZXR1cm47CiAgfQogfQogX19t
ZW1jcHlfZmx1c2hjYWNoZShkc3QsIHNyYywgY250KTsKfQojIDYgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vc3RyaW5nLmgiIDIKIyAyMSAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAyCgoKZXh0
ZXJuIGNoYXIgKiBzdHJjcHkoY2hhciAqLGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGNoYXIgKiBz
dHJuY3B5KGNoYXIgKixjb25zdCBjaGFyICosIF9fa2VybmVsX3NpemVfdCk7CgoKc2l6ZV90IHN0
cmxjcHkoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CgoKc3NpemVfdCBzdHJzY3B5KGNo
YXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOwoKCgpzc2l6ZV90IHN0cnNjcHlfcGFkKGNoYXIg
KmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IGNvdW50KTsKCgpleHRlcm4gY2hhciAqIHN0
cmNhdChjaGFyICosIGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGNoYXIgKiBzdHJuY2F0KGNoYXIg
KiwgY29uc3QgY2hhciAqLCBfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiBzaXplX3Qgc3RybGNh
dChjaGFyICosIGNvbnN0IGNoYXIgKiwgX19rZXJuZWxfc2l6ZV90KTsKCgpleHRlcm4gaW50IHN0
cmNtcChjb25zdCBjaGFyICosY29uc3QgY2hhciAqKTsKCgpleHRlcm4gaW50IHN0cm5jbXAoY29u
c3QgY2hhciAqLGNvbnN0IGNoYXIgKixfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiBpbnQgc3Ry
Y2FzZWNtcChjb25zdCBjaGFyICpzMSwgY29uc3QgY2hhciAqczIpOwoKCmV4dGVybiBpbnQgc3Ry
bmNhc2VjbXAoY29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyLCBzaXplX3Qgbik7CgoKZXh0
ZXJuIGNoYXIgKiBzdHJjaHIoY29uc3QgY2hhciAqLGludCk7CgoKZXh0ZXJuIGNoYXIgKiBzdHJj
aHJudWwoY29uc3QgY2hhciAqLGludCk7CgpleHRlcm4gY2hhciAqIHN0cm5jaHJudWwoY29uc3Qg
Y2hhciAqLCBzaXplX3QsIGludCk7CgpleHRlcm4gY2hhciAqIHN0cm5jaHIoY29uc3QgY2hhciAq
LCBzaXplX3QsIGludCk7CgoKZXh0ZXJuIGNoYXIgKiBzdHJyY2hyKGNvbnN0IGNoYXIgKixpbnQp
OwoKZXh0ZXJuIGNoYXIgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
c2tpcF9zcGFjZXMoY29uc3QgY2hhciAqKTsKCmV4dGVybiBjaGFyICpzdHJpbShjaGFyICopOwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGNoYXIgKnN0cnN0cmlwKGNo
YXIgKnN0cikKewogcmV0dXJuIHN0cmltKHN0cik7Cn0KCgpleHRlcm4gY2hhciAqIHN0cnN0cihj
b25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGNoYXIgKiBzdHJuc3RyKGNvbnN0
IGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOwoKCmV4dGVybiBfX2tlcm5lbF9zaXplX3Qg
c3RybGVuKGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIF9fa2VybmVsX3NpemVfdCBzdHJubGVuKGNv
bnN0IGNoYXIgKixfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiBjaGFyICogc3RycGJyayhjb25z
dCBjaGFyICosY29uc3QgY2hhciAqKTsKCgpleHRlcm4gY2hhciAqIHN0cnNlcChjaGFyICoqLGNv
bnN0IGNoYXIgKik7CgoKZXh0ZXJuIF9fa2VybmVsX3NpemVfdCBzdHJzcG4oY29uc3QgY2hhciAq
LGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIF9fa2VybmVsX3NpemVfdCBzdHJjc3BuKGNvbnN0IGNo
YXIgKixjb25zdCBjaGFyICopOwojIDEyMiAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
ICptZW1zZXRfbCh1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHYsCiAgX19rZXJuZWxf
c2l6ZV90IG4pCnsKIGlmICg2NCA9PSAzMikKICByZXR1cm4gbWVtc2V0MzIoKHVpbnQzMl90ICop
cCwgdiwgbik7CiBlbHNlCiAgcmV0dXJuIG1lbXNldDY0KCh1aW50NjRfdCAqKXAsIHYsIG4pOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkICptZW1zZXRfcCh2b2lkICoqcCwgdm9pZCAqdiwgX19rZXJuZWxfc2l6ZV90IG4pCnsK
IGlmICg2NCA9PSAzMikKICByZXR1cm4gbWVtc2V0MzIoKHVpbnQzMl90ICopcCwgKHVpbnRwdHJf
dCl2LCBuKTsKIGVsc2UKICByZXR1cm4gbWVtc2V0NjQoKHVpbnQ2NF90ICopcCwgKHVpbnRwdHJf
dCl2LCBuKTsKfQoKZXh0ZXJuIHZvaWQgKipfX21lbWNhdF9wKHZvaWQgKiphLCB2b2lkICoqYik7
CiMgMTUzICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCmV4dGVybiB2b2lkICogbWVtc2Nhbih2
b2lkICosaW50LF9fa2VybmVsX3NpemVfdCk7CgoKZXh0ZXJuIGludCBtZW1jbXAoY29uc3Qgdm9p
ZCAqLGNvbnN0IHZvaWQgKixfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiBpbnQgYmNtcChjb25z
dCB2b2lkICosY29uc3Qgdm9pZCAqLF9fa2VybmVsX3NpemVfdCk7CgoKZXh0ZXJuIHZvaWQgKiBt
ZW1jaHIoY29uc3Qgdm9pZCAqLGludCxfX2tlcm5lbF9zaXplX3QpOwojIDE3OCAiLi9pbmNsdWRl
L2xpbnV4L3N0cmluZy5oIgp2b2lkICptZW1jaHJfaW52KGNvbnN0IHZvaWQgKnMsIGludCBjLCBz
aXplX3Qgbik7CmNoYXIgKnN0cnJlcGxhY2UoY2hhciAqcywgY2hhciBvbGQsIGNoYXIgbmV3KTsK
CmV4dGVybiB2b2lkIGtmcmVlX2NvbnN0KGNvbnN0IHZvaWQgKngpOwoKZXh0ZXJuIGNoYXIgKmtz
dHJkdXAoY29uc3QgY2hhciAqcywgZ2ZwX3QgZ2ZwKSBfX2F0dHJpYnV0ZV9fKChfX21hbGxvY19f
KSk7CmV4dGVybiBjb25zdCBjaGFyICprc3RyZHVwX2NvbnN0KGNvbnN0IGNoYXIgKnMsIGdmcF90
IGdmcCk7CmV4dGVybiBjaGFyICprc3RybmR1cChjb25zdCBjaGFyICpzLCBzaXplX3QgbGVuLCBn
ZnBfdCBnZnApOwpleHRlcm4gdm9pZCAqa21lbWR1cChjb25zdCB2b2lkICpzcmMsIHNpemVfdCBs
ZW4sIGdmcF90IGdmcCk7CmV4dGVybiBjaGFyICprbWVtZHVwX251bChjb25zdCBjaGFyICpzLCBz
aXplX3QgbGVuLCBnZnBfdCBnZnApOwoKZXh0ZXJuIGNoYXIgKiphcmd2X3NwbGl0KGdmcF90IGdm
cCwgY29uc3QgY2hhciAqc3RyLCBpbnQgKmFyZ2NwKTsKZXh0ZXJuIHZvaWQgYXJndl9mcmVlKGNo
YXIgKiphcmd2KTsKCmV4dGVybiBib29sIHN5c2ZzX3N0cmVxKGNvbnN0IGNoYXIgKnMxLCBjb25z
dCBjaGFyICpzMik7CmV4dGVybiBpbnQga3N0cnRvYm9vbChjb25zdCBjaGFyICpzLCBib29sICpy
ZXMpOwpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgc3RydG9ib29sKGNvbnN0IGNoYXIgKnMsIGJvb2wgKnJlcykKewogcmV0dXJuIGtz
dHJ0b2Jvb2wocywgcmVzKTsKfQoKaW50IG1hdGNoX3N0cmluZyhjb25zdCBjaGFyICogY29uc3Qg
KmFycmF5LCBzaXplX3QgbiwgY29uc3QgY2hhciAqc3RyaW5nKTsKaW50IF9fc3lzZnNfbWF0Y2hf
c3RyaW5nKGNvbnN0IGNoYXIgKiBjb25zdCAqYXJyYXksIHNpemVfdCBuLCBjb25zdCBjaGFyICpz
KTsKIyAyMTIgIi4vaW5jbHVkZS9saW51eC9zdHJpbmcuaCIKaW50IHZiaW5fcHJpbnRmKHUzMiAq
YmluX2J1Ziwgc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKTsKaW50
IGJzdHJfcHJpbnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmZtdCwgY29u
c3QgdTMyICpiaW5fYnVmKTsKaW50IGJwcmludGYodTMyICpiaW5fYnVmLCBzaXplX3Qgc2l6ZSwg
Y29uc3QgY2hhciAqZm10LCAuLi4pIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAz
LCA0KSkpOwoKCmV4dGVybiBzc2l6ZV90IG1lbW9yeV9yZWFkX2Zyb21fYnVmZmVyKHZvaWQgKnRv
LCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcywKICAgICAgICAgICBjb25zdCB2b2lkICpmcm9t
LCBzaXplX3QgYXZhaWxhYmxlKTsKCmludCBwdHJfdG9faGFzaHZhbChjb25zdCB2b2lkICpwdHIs
IHVuc2lnbmVkIGxvbmcgKmhhc2h2YWxfb3V0KTsKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBzdHJzdGFydHMoY29uc3Qg
Y2hhciAqc3RyLCBjb25zdCBjaGFyICpwcmVmaXgpCnsKIHJldHVybiBzdHJuY21wKHN0ciwgcHJl
Zml4LCBzdHJsZW4ocHJlZml4KSkgPT0gMDsKfQoKc2l6ZV90IG1lbXdlaWdodChjb25zdCB2b2lk
ICpwdHIsIHNpemVfdCBieXRlcyk7CiMgMjQ4ICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgbWVtemVyb19leHBsaWNpdCh2b2lkICpzLCBzaXplX3QgY291bnQpCnsKIG1lbXNldChzLCAw
LCBjb3VudCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiJyIihzKSA6Im1lbW9yeSIpOwp9
CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGNvbnN0IGNoYXIgKmtiYXNlbmFtZShjb25zdCBjaGFyICpwYXRoKQp7CiBjb25zdCBj
aGFyICp0YWlsID0gc3RycmNocihwYXRoLCAnLycpOwogcmV0dXJuIHRhaWwgPyB0YWlsICsgMSA6
IHBhdGg7Cn0KCgoKCnZvaWQgZm9ydGlmeV9wYW5pYyhjb25zdCBjaGFyICpuYW1lKSBfX2F0dHJp
YnV0ZV9fKChfX25vcmV0dXJuX18pKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpOwp2b2lkIF9f
cmVhZF9vdmVyZmxvdyh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oImRldGVjdGVkIHJl
YWQgYmV5b25kIHNpemUgb2Ygb2JqZWN0IHBhc3NlZCBhcyAxc3QgcGFyYW1ldGVyIikpKTsKdm9p
ZCBfX3JlYWRfb3ZlcmZsb3cyKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiZGV0ZWN0
ZWQgcmVhZCBiZXlvbmQgc2l6ZSBvZiBvYmplY3QgcGFzc2VkIGFzIDJuZCBwYXJhbWV0ZXIiKSkp
Owp2b2lkIF9fcmVhZF9vdmVyZmxvdzModm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJk
ZXRlY3RlZCByZWFkIGJleW9uZCBzaXplIG9mIG9iamVjdCBwYXNzZWQgYXMgM3JkIHBhcmFtZXRl
ciIpKSk7CnZvaWQgX193cml0ZV9vdmVyZmxvdyh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9y
X18oImRldGVjdGVkIHdyaXRlIGJleW9uZCBzaXplIG9mIG9iamVjdCBwYXNzZWQgYXMgMXN0IHBh
cmFtZXRlciIpKSk7CiMgNDc4ICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbWVtY3B5
X2FuZF9wYWQodm9pZCAqZGVzdCwgc2l6ZV90IGRlc3RfbGVuLAogICAgICBjb25zdCB2b2lkICpz
cmMsIHNpemVfdCBjb3VudCwgaW50IHBhZCkKewogaWYgKGRlc3RfbGVuID4gY291bnQpIHsKICBt
ZW1jcHkoZGVzdCwgc3JjLCBjb3VudCk7CiAgbWVtc2V0KGRlc3QgKyBjb3VudCwgcGFkLCBkZXN0
X2xlbiAtIGNvdW50KTsKIH0gZWxzZQogIG1lbWNweShkZXN0LCBzcmMsIGRlc3RfbGVuKTsKfQoj
IDUwMyAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIHNpemVfdCBzdHJfaGFzX3ByZWZpeChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNo
YXIgKnByZWZpeCkKewogc2l6ZV90IGxlbiA9IHN0cmxlbihwcmVmaXgpOwogcmV0dXJuIHN0cm5j
bXAoc3RyLCBwcmVmaXgsIGxlbikgPT0gMCA/IGxlbiA6IDA7Cn0KIyAxMCAiLi9pbmNsdWRlL2xp
bnV4L2JpdG1hcC5oIiAyCiMgMTE1ICIuL2luY2x1ZGUvbGludXgvYml0bWFwLmgiCmV4dGVybiB1
bnNpZ25lZCBsb25nICpiaXRtYXBfYWxsb2ModW5zaWduZWQgaW50IG5iaXRzLCBnZnBfdCBmbGFn
cyk7CmV4dGVybiB1bnNpZ25lZCBsb25nICpiaXRtYXBfemFsbG9jKHVuc2lnbmVkIGludCBuYml0
cywgZ2ZwX3QgZmxhZ3MpOwpleHRlcm4gdm9pZCBiaXRtYXBfZnJlZShjb25zdCB1bnNpZ25lZCBs
b25nICpiaXRtYXApOwoKCgoKCmV4dGVybiBpbnQgX19iaXRtYXBfZW1wdHkoY29uc3QgdW5zaWdu
ZWQgbG9uZyAqYml0bWFwLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4gaW50IF9fYml0bWFw
X2Z1bGwoY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFwLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpl
eHRlcm4gaW50IF9fYml0bWFwX2VxdWFsKGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCiAg
ICAgY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFwMiwgdW5zaWduZWQgaW50IG5iaXRzKTsKZXh0
ZXJuIGJvb2wgX19hdHRyaWJ1dGVfXygoX19wdXJlX18pKSBfX2JpdG1hcF9vcl9lcXVhbChjb25z
dCB1bnNpZ25lZCBsb25nICpzcmMxLAogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMy
LAogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMzLAogICAgICAgICB1bnNpZ25lZCBp
bnQgbmJpdHMpOwpleHRlcm4gdm9pZCBfX2JpdG1hcF9jb21wbGVtZW50KHVuc2lnbmVkIGxvbmcg
KmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLAogICB1bnNpZ25lZCBpbnQgbmJpdHMpOwpl
eHRlcm4gdm9pZCBfX2JpdG1hcF9zaGlmdF9yaWdodCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0
IHVuc2lnbmVkIGxvbmcgKnNyYywKICAgIHVuc2lnbmVkIGludCBzaGlmdCwgdW5zaWduZWQgaW50
IG5iaXRzKTsKZXh0ZXJuIHZvaWQgX19iaXRtYXBfc2hpZnRfbGVmdCh1bnNpZ25lZCBsb25nICpk
c3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKICAgIHVuc2lnbmVkIGludCBzaGlmdCwgdW5z
aWduZWQgaW50IG5iaXRzKTsKZXh0ZXJuIHZvaWQgYml0bWFwX2N1dCh1bnNpZ25lZCBsb25nICpk
c3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKICAgICAgICAgdW5zaWduZWQgaW50IGZpcnN0
LCB1bnNpZ25lZCBpbnQgY3V0LAogICAgICAgICB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4g
aW50IF9fYml0bWFwX2FuZCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcg
KmJpdG1hcDEsCiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDIsIHVuc2lnbmVkIGludCBu
Yml0cyk7CmV4dGVybiB2b2lkIF9fYml0bWFwX29yKHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3Qg
dW5zaWduZWQgbG9uZyAqYml0bWFwMSwKICAgY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFwMiwg
dW5zaWduZWQgaW50IG5iaXRzKTsKZXh0ZXJuIHZvaWQgX19iaXRtYXBfeG9yKHVuc2lnbmVkIGxv
bmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFwMSwKICAgY29uc3QgdW5zaWduZWQg
bG9uZyAqYml0bWFwMiwgdW5zaWduZWQgaW50IG5iaXRzKTsKZXh0ZXJuIGludCBfX2JpdG1hcF9h
bmRub3QodW5zaWduZWQgbG9uZyAqZHN0LCBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAog
ICBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRl
cm4gdm9pZCBfX2JpdG1hcF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgKmRzdCwKICAgY29uc3QgdW5z
aWduZWQgbG9uZyAqb2xkLCBjb25zdCB1bnNpZ25lZCBsb25nICpuZXcsCiAgIGNvbnN0IHVuc2ln
bmVkIGxvbmcgKm1hc2ssIHVuc2lnbmVkIGludCBuYml0cyk7CmV4dGVybiBpbnQgX19iaXRtYXBf
aW50ZXJzZWN0cyhjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAogICBjb25zdCB1bnNpZ25l
ZCBsb25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4gaW50IF9fYml0bWFw
X3N1YnNldChjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAogICBjb25zdCB1bnNpZ25lZCBs
b25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4gaW50IF9fYml0bWFwX3dl
aWdodChjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBuYml0cyk7CmV4
dGVybiB2b2lkIF9fYml0bWFwX3NldCh1bnNpZ25lZCBsb25nICptYXAsIHVuc2lnbmVkIGludCBz
dGFydCwgaW50IGxlbik7CmV4dGVybiB2b2lkIF9fYml0bWFwX2NsZWFyKHVuc2lnbmVkIGxvbmcg
Km1hcCwgdW5zaWduZWQgaW50IHN0YXJ0LCBpbnQgbGVuKTsKCmV4dGVybiB1bnNpZ25lZCBsb25n
IGJpdG1hcF9maW5kX25leHRfemVyb19hcmVhX29mZih1bnNpZ25lZCBsb25nICptYXAsCiAgICAg
ICAgICB1bnNpZ25lZCBsb25nIHNpemUsCiAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LAog
ICAgICAgICAgdW5zaWduZWQgaW50IG5yLAogICAgICAgICAgdW5zaWduZWQgbG9uZyBhbGlnbl9t
YXNrLAogICAgICAgICAgdW5zaWduZWQgbG9uZyBhbGlnbl9vZmZzZXQpOwojIDE3OCAiLi9pbmNs
dWRlL2xpbnV4L2JpdG1hcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nCmJpdG1hcF9maW5kX25leHRfemVyb19h
cmVhKHVuc2lnbmVkIGxvbmcgKm1hcCwKICAgICAgdW5zaWduZWQgbG9uZyBzaXplLAogICAgICB1
bnNpZ25lZCBsb25nIHN0YXJ0LAogICAgICB1bnNpZ25lZCBpbnQgbnIsCiAgICAgIHVuc2lnbmVk
IGxvbmcgYWxpZ25fbWFzaykKewogcmV0dXJuIGJpdG1hcF9maW5kX25leHRfemVyb19hcmVhX29m
ZihtYXAsIHNpemUsIHN0YXJ0LCBuciwKICAgICAgICAgICBhbGlnbl9tYXNrLCAwKTsKfQoKZXh0
ZXJuIGludCBiaXRtYXBfcGFyc2UoY29uc3QgY2hhciAqYnVmLCB1bnNpZ25lZCBpbnQgYnVmbGVu
LAogICB1bnNpZ25lZCBsb25nICpkc3QsIGludCBuYml0cyk7CmV4dGVybiBpbnQgYml0bWFwX3Bh
cnNlX3VzZXIoY29uc3QgY2hhciAqdWJ1ZiwgdW5zaWduZWQgaW50IHVsZW4sCiAgIHVuc2lnbmVk
IGxvbmcgKmRzdCwgaW50IG5iaXRzKTsKZXh0ZXJuIGludCBiaXRtYXBfcGFyc2VsaXN0KGNvbnN0
IGNoYXIgKmJ1ZiwgdW5zaWduZWQgbG9uZyAqbWFza3AsCiAgIGludCBubWFza2JpdHMpOwpleHRl
cm4gaW50IGJpdG1hcF9wYXJzZWxpc3RfdXNlcihjb25zdCBjaGFyICp1YnVmLCB1bnNpZ25lZCBp
bnQgdWxlbiwKICAgdW5zaWduZWQgbG9uZyAqZHN0LCBpbnQgbmJpdHMpOwpleHRlcm4gdm9pZCBi
aXRtYXBfcmVtYXAodW5zaWduZWQgbG9uZyAqZHN0LCBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMs
CiAgY29uc3QgdW5zaWduZWQgbG9uZyAqb2xkLCBjb25zdCB1bnNpZ25lZCBsb25nICpuZXcsIHVu
c2lnbmVkIGludCBuYml0cyk7CmV4dGVybiBpbnQgYml0bWFwX2JpdHJlbWFwKGludCBvbGRiaXQs
CiAgY29uc3QgdW5zaWduZWQgbG9uZyAqb2xkLCBjb25zdCB1bnNpZ25lZCBsb25nICpuZXcsIGlu
dCBiaXRzKTsKZXh0ZXJuIHZvaWQgYml0bWFwX29udG8odW5zaWduZWQgbG9uZyAqZHN0LCBjb25z
dCB1bnNpZ25lZCBsb25nICpvcmlnLAogIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnJlbG1hcCwgdW5z
aWduZWQgaW50IGJpdHMpOwpleHRlcm4gdm9pZCBiaXRtYXBfZm9sZCh1bnNpZ25lZCBsb25nICpk
c3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm9yaWcsCiAgdW5zaWduZWQgaW50IHN6LCB1bnNpZ25l
ZCBpbnQgbmJpdHMpOwpleHRlcm4gaW50IGJpdG1hcF9maW5kX2ZyZWVfcmVnaW9uKHVuc2lnbmVk
IGxvbmcgKmJpdG1hcCwgdW5zaWduZWQgaW50IGJpdHMsIGludCBvcmRlcik7CmV4dGVybiB2b2lk
IGJpdG1hcF9yZWxlYXNlX3JlZ2lvbih1bnNpZ25lZCBsb25nICpiaXRtYXAsIHVuc2lnbmVkIGlu
dCBwb3MsIGludCBvcmRlcik7CmV4dGVybiBpbnQgYml0bWFwX2FsbG9jYXRlX3JlZ2lvbih1bnNp
Z25lZCBsb25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBwb3MsIGludCBvcmRlcik7CgoKCgoKCmV4
dGVybiB1bnNpZ25lZCBpbnQgYml0bWFwX29yZF90b19wb3MoY29uc3QgdW5zaWduZWQgbG9uZyAq
Yml0bWFwLCB1bnNpZ25lZCBpbnQgb3JkLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4gaW50
IGJpdG1hcF9wcmludF90b19wYWdlYnVmKGJvb2wgbGlzdCwgY2hhciAqYnVmLAogICAgICAgY29u
c3QgdW5zaWduZWQgbG9uZyAqbWFza3AsIGludCBubWFza2JpdHMpOwojIDIyOSAiLi9pbmNsdWRl
L2xpbnV4L2JpdG1hcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF96ZXJvKHVuc2lnbmVkIGxvbmcgKmRzdCwgdW5z
aWduZWQgaW50IG5iaXRzKQp7CiB1bnNpZ25lZCBpbnQgbGVuID0gKCgobmJpdHMpICsgKChzaXpl
b2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKSAqIHNpemVvZih1bnNp
Z25lZCBsb25nKTsKIG1lbXNldChkc3QsIDAsIGxlbik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0bWFwX2ZpbGwodW5z
aWduZWQgbG9uZyAqZHN0LCB1bnNpZ25lZCBpbnQgbmJpdHMpCnsKIHVuc2lnbmVkIGludCBsZW4g
PSAoKChuYml0cykgKyAoKHNpemVvZihsb25nKSAqIDgpKSAtIDEpIC8gKChzaXplb2YobG9uZykg
KiA4KSkpICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOwogbWVtc2V0KGRzdCwgMHhmZiwgbGVuKTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBiaXRtYXBfY29weSh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxv
bmcgKnNyYywKICAgdW5zaWduZWQgaW50IG5iaXRzKQp7CiB1bnNpZ25lZCBpbnQgbGVuID0gKCgo
bmJpdHMpICsgKChzaXplb2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkp
KSAqIHNpemVvZih1bnNpZ25lZCBsb25nKTsKIG1lbWNweShkc3QsIHNyYywgbGVuKTsKfQoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBiaXRtYXBfY29weV9jbGVhcl90YWlsKHVuc2lnbmVkIGxvbmcgKmRzdCwKICBjb25zdCB1
bnNpZ25lZCBsb25nICpzcmMsIHVuc2lnbmVkIGludCBuYml0cykKewogYml0bWFwX2NvcHkoZHN0
LCBzcmMsIG5iaXRzKTsKIGlmIChuYml0cyAlIDY0KQogIGRzdFtuYml0cyAvIDY0XSAmPSAofjBV
TCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpOwp9CgoKCgoKCmV4dGVybiB2b2lkIGJpdG1hcF9m
cm9tX2FycjMyKHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwgY29uc3QgdTMyICpidWYsCiAgICAgICB1
bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4gdm9pZCBiaXRtYXBfdG9fYXJyMzIodTMyICpidWYs
IGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwKICAgICAgIHVuc2lnbmVkIGludCBuYml0cyk7
CiMgMjc3ICIuL2luY2x1ZGUvbGludXgvYml0bWFwLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRtYXBfYW5kKHVuc2lnbmVk
IGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKICAgY29uc3QgdW5zaWduZWQg
bG9uZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAoKF9fYnVpbHRpbl9jb25zdGFu
dF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKICByZXR1cm4gKCpk
c3QgPSAqc3JjMSAmICpzcmMyICYgKH4wVUwgPj4gKC0obmJpdHMpICYgKDY0IC0gMSkpKSkgIT0g
MDsKIHJldHVybiBfX2JpdG1hcF9hbmQoZHN0LCBzcmMxLCBzcmMyLCBuYml0cyk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
Yml0bWFwX29yKHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwK
ICAgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAo
KF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykg
PiAwKSkKICAqZHN0ID0gKnNyYzEgfCAqc3JjMjsKIGVsc2UKICBfX2JpdG1hcF9vcihkc3QsIHNy
YzEsIHNyYzIsIG5iaXRzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfeG9yKHVuc2lnbmVkIGxvbmcgKmRzdCwg
Y29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKICAgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMiwg
dW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAm
JiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKICAqZHN0ID0gKnNyYzEgXiAqc3JjMjsK
IGVsc2UKICBfX2JpdG1hcF94b3IoZHN0LCBzcmMxLCBzcmMyLCBuYml0cyk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRt
YXBfYW5kbm90KHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwK
ICAgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAo
KF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykg
PiAwKSkKICByZXR1cm4gKCpkc3QgPSAqc3JjMSAmIH4oKnNyYzIpICYgKH4wVUwgPj4gKC0obmJp
dHMpICYgKDY0IC0gMSkpKSkgIT0gMDsKIHJldHVybiBfX2JpdG1hcF9hbmRub3QoZHN0LCBzcmMx
LCBzcmMyLCBuYml0cyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0bWFwX2NvbXBsZW1lbnQodW5zaWduZWQgbG9uZyAq
ZHN0LCBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsCiAgIHVuc2lnbmVkIGludCBuYml0cykKewog
aWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJp
dHMpID4gMCkpCiAgKmRzdCA9IH4oKnNyYyk7CiBlbHNlCiAgX19iaXRtYXBfY29tcGxlbWVudChk
c3QsIHNyYywgbmJpdHMpOwp9CiMgMzI3ICIuL2luY2x1ZGUvbGludXgvYml0bWFwLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBi
aXRtYXBfZXF1YWwoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKICAgY29uc3QgdW5zaWduZWQg
bG9uZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAoKF9fYnVpbHRpbl9jb25zdGFu
dF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKICByZXR1cm4gISgo
KnNyYzEgXiAqc3JjMikgJiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpKTsKIGlmIChf
X2J1aWx0aW5fY29uc3RhbnRfcChuYml0cyAmICg4IC0gMSkpICYmCiAgICAgKCgobmJpdHMpICYg
KCh0eXBlb2YobmJpdHMpKSg4KSAtIDEpKSA9PSAwKSkKICByZXR1cm4gIW1lbWNtcChzcmMxLCBz
cmMyLCBuYml0cyAvIDgpOwogcmV0dXJuIF9fYml0bWFwX2VxdWFsKHNyYzEsIHNyYzIsIG5iaXRz
KTsKfQojIDM0NyAiLi9pbmNsdWRlL2xpbnV4L2JpdG1hcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGJpdG1hcF9vcl9lcXVh
bChjb25zdCB1bnNpZ25lZCBsb25nICpzcmMxLAogICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAq
c3JjMiwKICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzMsCiAgICAgICB1bnNpZ25lZCBp
bnQgbmJpdHMpCnsKIGlmICghKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMp
IDw9IDY0ICYmIChuYml0cykgPiAwKSkKICByZXR1cm4gX19iaXRtYXBfb3JfZXF1YWwoc3JjMSwg
c3JjMiwgc3JjMywgbmJpdHMpOwoKIHJldHVybiAhKCgoKnNyYzEgfCAqc3JjMikgXiAqc3JjMykg
JiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJpdG1hcF9pbnRlcnNl
Y3RzKGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzEsCiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNy
YzIsIHVuc2lnbmVkIGludCBuYml0cykKewogaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0
cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJpdHMpID4gMCkpCiAgcmV0dXJuICgoKnNyYzEgJiAq
c3JjMikgJiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpKSAhPSAwOwogZWxzZQogIHJl
dHVybiBfX2JpdG1hcF9pbnRlcnNlY3RzKHNyYzEsIHNyYzIsIG5iaXRzKTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJpdG1h
cF9zdWJzZXQoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKICAgY29uc3QgdW5zaWduZWQgbG9u
ZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9w
KG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKICByZXR1cm4gISAoKCpz
cmMxICYgfigqc3JjMikpICYgKH4wVUwgPj4gKC0obmJpdHMpICYgKDY0IC0gMSkpKSk7CiBlbHNl
CiAgcmV0dXJuIF9fYml0bWFwX3N1YnNldChzcmMxLCBzcmMyLCBuYml0cyk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRt
YXBfZW1wdHkoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLCB1bnNpZ25lZCBuYml0cykKewogaWYg
KChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJpdHMp
ID4gMCkpCiAgcmV0dXJuICEgKCpzcmMgJiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkp
KTsKCiByZXR1cm4gZmluZF9maXJzdF9iaXQoc3JjLCBuYml0cykgPT0gbmJpdHM7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBi
aXRtYXBfZnVsbChjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsIHVuc2lnbmVkIGludCBuYml0cykK
ewogaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAo
bmJpdHMpID4gMCkpCiAgcmV0dXJuICEgKH4oKnNyYykgJiAofjBVTCA+PiAoLShuYml0cykgJiAo
NjQgLSAxKSkpKTsKCiByZXR1cm4gZmluZF9maXJzdF96ZXJvX2JpdChzcmMsIG5iaXRzKSA9PSBu
Yml0czsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgYml0bWFwX3dl
aWdodChjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsIHVuc2lnbmVkIGludCBuYml0cykKewogaWYg
KChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJpdHMp
ID4gMCkpCiAgcmV0dXJuIGh3ZWlnaHRfbG9uZygqc3JjICYgKH4wVUwgPj4gKC0obmJpdHMpICYg
KDY0IC0gMSkpKSk7CiByZXR1cm4gX19iaXRtYXBfd2VpZ2h0KHNyYywgbmJpdHMpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYml0bWFwX3NldCh1bnNpZ25lZCBs
b25nICptYXAsIHVuc2lnbmVkIGludCBzdGFydCwKICB1bnNpZ25lZCBpbnQgbmJpdHMpCnsKIGlm
IChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgbmJpdHMgPT0gMSkKICBfX3NldF9iaXQo
c3RhcnQsIG1hcCk7CiBlbHNlIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChzdGFydCAmICg4IC0g
MSkpICYmCiAgICgoKHN0YXJ0KSAmICgodHlwZW9mKHN0YXJ0KSkoOCkgLSAxKSkgPT0gMCkgJiYK
ICAgX19idWlsdGluX2NvbnN0YW50X3AobmJpdHMgJiAoOCAtIDEpKSAmJgogICAoKChuYml0cykg
JiAoKHR5cGVvZihuYml0cykpKDgpIC0gMSkpID09IDApKQogIG1lbXNldCgoY2hhciAqKW1hcCAr
IHN0YXJ0IC8gOCwgMHhmZiwgbmJpdHMgLyA4KTsKIGVsc2UKICBfX2JpdG1hcF9zZXQobWFwLCBz
dGFydCwgbmJpdHMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
Yml0bWFwX2NsZWFyKHVuc2lnbmVkIGxvbmcgKm1hcCwgdW5zaWduZWQgaW50IHN0YXJ0LAogIHVu
c2lnbmVkIGludCBuYml0cykKewogaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiBu
Yml0cyA9PSAxKQogIF9fY2xlYXJfYml0KHN0YXJ0LCBtYXApOwogZWxzZSBpZiAoX19idWlsdGlu
X2NvbnN0YW50X3Aoc3RhcnQgJiAoOCAtIDEpKSAmJgogICAoKChzdGFydCkgJiAoKHR5cGVvZihz
dGFydCkpKDgpIC0gMSkpID09IDApICYmCiAgIF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzICYg
KDggLSAxKSkgJiYKICAgKCgobmJpdHMpICYgKCh0eXBlb2YobmJpdHMpKSg4KSAtIDEpKSA9PSAw
KSkKICBtZW1zZXQoKGNoYXIgKiltYXAgKyBzdGFydCAvIDgsIDAsIG5iaXRzIC8gOCk7CiBlbHNl
CiAgX19iaXRtYXBfY2xlYXIobWFwLCBzdGFydCwgbmJpdHMpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF9zaGlm
dF9yaWdodCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKICAg
IHVuc2lnbmVkIGludCBzaGlmdCwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAoKF9fYnVpbHRp
bl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKICAq
ZHN0ID0gKCpzcmMgJiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpKSA+PiBzaGlmdDsK
IGVsc2UKICBfX2JpdG1hcF9zaGlmdF9yaWdodChkc3QsIHNyYywgc2hpZnQsIG5iaXRzKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBiaXRtYXBfc2hpZnRfbGVmdCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVk
IGxvbmcgKnNyYywKICAgIHVuc2lnbmVkIGludCBzaGlmdCwgdW5zaWduZWQgaW50IG5iaXRzKQp7
CiBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChu
Yml0cykgPiAwKSkKICAqZHN0ID0gKCpzcmMgPDwgc2hpZnQpICYgKH4wVUwgPj4gKC0obmJpdHMp
ICYgKDY0IC0gMSkpKTsKIGVsc2UKICBfX2JpdG1hcF9zaGlmdF9sZWZ0KGRzdCwgc3JjLCBzaGlm
dCwgbmJpdHMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgKmRzdCwKICAg
ICAgY29uc3QgdW5zaWduZWQgbG9uZyAqb2xkLAogICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpu
ZXcsCiAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm1hc2ssCiAgICAgIHVuc2lnbmVkIGludCBu
Yml0cykKewogaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2
NCAmJiAobmJpdHMpID4gMCkpCiAgKmRzdCA9ICgqb2xkICYgfigqbWFzaykpIHwgKCpuZXcgJiAq
bWFzayk7CiBlbHNlCiAgX19iaXRtYXBfcmVwbGFjZShkc3QsIG9sZCwgbmV3LCBtYXNrLCBuYml0
cyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgYml0bWFwX25leHRfY2xlYXJfcmVnaW9uKHVuc2lnbmVkIGxvbmcgKmJpdG1h
cCwKICAgICAgICAgdW5zaWduZWQgaW50ICpycywgdW5zaWduZWQgaW50ICpyZSwKICAgICAgICAg
dW5zaWduZWQgaW50IGVuZCkKewogKnJzID0gZmluZF9uZXh0X3plcm9fYml0KGJpdG1hcCwgZW5k
LCAqcnMpOwogKnJlID0gZmluZF9uZXh0X2JpdChiaXRtYXAsIGVuZCwgKnJzICsgMSk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgYml0bWFwX25leHRfc2V0X3JlZ2lvbih1bnNpZ25lZCBsb25nICpiaXRtYXAsCiAgICAgICB1
bnNpZ25lZCBpbnQgKnJzLCB1bnNpZ25lZCBpbnQgKnJlLAogICAgICAgdW5zaWduZWQgaW50IGVu
ZCkKewogKnJzID0gZmluZF9uZXh0X2JpdChiaXRtYXAsIGVuZCwgKnJzKTsKICpyZSA9IGZpbmRf
bmV4dF96ZXJvX2JpdChiaXRtYXAsIGVuZCwgKnJzICsgMSk7Cn0KIyA1MzUgIi4vaW5jbHVkZS9s
aW51eC9iaXRtYXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfZnJvbV91NjQodW5zaWduZWQgbG9uZyAqZHN0LCB1
NjQgbWFzaykKewogZHN0WzBdID0gbWFzayAmICh+MFVMKTsKCiBpZiAoc2l6ZW9mKG1hc2spID4g
c2l6ZW9mKHVuc2lnbmVkIGxvbmcpKQogIGRzdFsxXSA9IG1hc2sgPj4gMzI7Cn0KIyA1NTEgIi4v
aW5jbHVkZS9saW51eC9iaXRtYXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBiaXRtYXBfZ2V0X3ZhbHVlOChj
b25zdCB1bnNpZ25lZCBsb25nICptYXAsCiAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCkK
ewogY29uc3Qgc2l6ZV90IGluZGV4ID0gKChzdGFydCkgLyA2NCk7CiBjb25zdCB1bnNpZ25lZCBs
b25nIG9mZnNldCA9IHN0YXJ0ICUgNjQ7CgogcmV0dXJuIChtYXBbaW5kZXhdID4+IG9mZnNldCkg
JiAweEZGOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF9zZXRfdmFsdWU4KHVuc2lnbmVkIGxvbmcgKm1h
cCwgdW5zaWduZWQgbG9uZyB2YWx1ZSwKICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCkKewog
Y29uc3Qgc2l6ZV90IGluZGV4ID0gKChzdGFydCkgLyA2NCk7CiBjb25zdCB1bnNpZ25lZCBsb25n
IG9mZnNldCA9IHN0YXJ0ICUgNjQ7CgogbWFwW2luZGV4XSAmPSB+KDB4RkZVTCA8PCBvZmZzZXQp
OwogbWFwW2luZGV4XSB8PSB2YWx1ZSA8PCBvZmZzZXQ7Cn0KIyAxMyAiLi9pbmNsdWRlL2xpbnV4
L2NwdW1hc2suaCIgMgoKCgoKdHlwZWRlZiBzdHJ1Y3QgY3B1bWFzayB7IHVuc2lnbmVkIGxvbmcg
Yml0c1soKCg4KSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0gMSkgLyAoKHNpemVvZihsb25nKSAq
IDgpKSldOyB9IGNwdW1hc2tfdDsKIyAzOSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKZXh0
ZXJuIHVuc2lnbmVkIGludCBucl9jcHVfaWRzOwojIDkwICIuL2luY2x1ZGUvbGludXgvY3B1bWFz
ay5oIgpleHRlcm4gc3RydWN0IGNwdW1hc2sgX19jcHVfcG9zc2libGVfbWFzazsKZXh0ZXJuIHN0
cnVjdCBjcHVtYXNrIF9fY3B1X29ubGluZV9tYXNrOwpleHRlcm4gc3RydWN0IGNwdW1hc2sgX19j
cHVfcHJlc2VudF9tYXNrOwpleHRlcm4gc3RydWN0IGNwdW1hc2sgX19jcHVfYWN0aXZlX21hc2s7
CgoKCgoKZXh0ZXJuIGF0b21pY190IF9fbnVtX29ubGluZV9jcHVzOwojIDExMCAiLi9pbmNsdWRl
L2xpbnV4L2NwdW1hc2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IG51bV9vbmxpbmVfY3B1cyh2b2lkKQp7CiBy
ZXR1cm4gYXRvbWljX3JlYWQoJl9fbnVtX29ubGluZV9jcHVzKTsKfQojIDEzMiAiLi9pbmNsdWRl
L2xpbnV4L2NwdW1hc2suaCIKZXh0ZXJuIGNwdW1hc2tfdCBjcHVzX2Jvb3RlZF9vbmNlX21hc2s7
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGNwdV9tYXhfYml0c193YXJuKHVuc2lnbmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBi
aXRzKQp7CgoKCn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgY3B1bWFza19jaGVjayh1bnNpZ25lZCBpbnQgY3B1
KQp7CiBjcHVfbWF4X2JpdHNfd2FybihjcHUsICgodW5zaWduZWQgaW50KTgpKTsKIHJldHVybiBj
cHU7Cn0KIyAyMTIgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBjcHVt
YXNrX2ZpcnN0KGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNwKQp7CiByZXR1cm4gZmluZF9maXJz
dF9iaXQoKChzcmNwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsKfQoKCgoKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWdu
ZWQgaW50IGNwdW1hc2tfbGFzdChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCkKewogcmV0dXJu
IGZpbmRfbGFzdF9iaXQoKChzcmNwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsKfQoKdW5z
aWduZWQgaW50IGNwdW1hc2tfbmV4dChpbnQgbiwgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyY3Ap
OwojIDIzNyAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGNwdW1hc2tf
bmV4dF96ZXJvKGludCBuLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCkKewoKIGlmIChuICE9
IC0xKQogIGNwdW1hc2tfY2hlY2sobik7CiByZXR1cm4gZmluZF9uZXh0X3plcm9fYml0KCgoc3Jj
cCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSwgbisxKTsKfQoKaW50IGNwdW1hc2tfbmV4dF9h
bmQoaW50IG4sIGNvbnN0IHN0cnVjdCBjcHVtYXNrICosIGNvbnN0IHN0cnVjdCBjcHVtYXNrICop
OwppbnQgY3B1bWFza19hbnlfYnV0KGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLCB1bnNpZ25l
ZCBpbnQgY3B1KTsKdW5zaWduZWQgaW50IGNwdW1hc2tfbG9jYWxfc3ByZWFkKHVuc2lnbmVkIGlu
dCBpLCBpbnQgbm9kZSk7CiMgMjczICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpleHRlcm4g
aW50IGNwdW1hc2tfbmV4dF93cmFwKGludCBuLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywg
aW50IHN0YXJ0LCBib29sIHdyYXApOwojIDMyNSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBjcHVtYXNrX3NldF9jcHUodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGNwdW1hc2sgKmRz
dHApCnsKIHNldF9iaXQoY3B1bWFza19jaGVjayhjcHUpLCAoKGRzdHApLT5iaXRzKSk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgX19jcHVtYXNrX3NldF9jcHUodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGNwdW1hc2sgKmRz
dHApCnsKIF9fc2V0X2JpdChjcHVtYXNrX2NoZWNrKGNwdSksICgoZHN0cCktPmJpdHMpKTsKfQoK
CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBjcHVtYXNrX2NsZWFyX2NwdShpbnQgY3B1LCBzdHJ1Y3QgY3B1bWFzayAqZHN0
cCkKewogY2xlYXJfYml0KGNwdW1hc2tfY2hlY2soY3B1KSwgKChkc3RwKS0+Yml0cykpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIF9fY3B1bWFza19jbGVhcl9jcHUoaW50IGNwdSwgc3RydWN0IGNwdW1hc2sgKmRzdHApCnsK
IF9fY2xlYXJfYml0KGNwdW1hc2tfY2hlY2soY3B1KSwgKChkc3RwKS0+Yml0cykpOwp9CiMgMzU4
ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza190ZXN0X2NwdShpbnQgY3B1
LCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1bWFzaykKewogcmV0dXJuIHRlc3RfYml0KGNwdW1h
c2tfY2hlY2soY3B1KSwgKCgoY3B1bWFzaykpLT5iaXRzKSk7Cn0KIyAzNzIgIi4vaW5jbHVkZS9s
aW51eC9jcHVtYXNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBjcHVtYXNrX3Rlc3RfYW5kX3NldF9jcHUoaW50IGNwdSwgc3Ry
dWN0IGNwdW1hc2sgKmNwdW1hc2spCnsKIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KGNwdW1hc2tf
Y2hlY2soY3B1KSwgKChjcHVtYXNrKS0+Yml0cykpOwp9CiMgMzg2ICIuL2luY2x1ZGUvbGludXgv
Y3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgY3B1bWFza190ZXN0X2FuZF9jbGVhcl9jcHUoaW50IGNwdSwgc3RydWN0
IGNwdW1hc2sgKmNwdW1hc2spCnsKIHJldHVybiB0ZXN0X2FuZF9jbGVhcl9iaXQoY3B1bWFza19j
aGVjayhjcHUpLCAoKGNwdW1hc2spLT5iaXRzKSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNwdW1hc2tfc2V0YWxs
KHN0cnVjdCBjcHVtYXNrICpkc3RwKQp7CiBiaXRtYXBfZmlsbCgoKGRzdHApLT5iaXRzKSwgKCh1
bnNpZ25lZCBpbnQpOCkpOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjcHVtYXNrX2NsZWFyKHN0cnVjdCBjcHVtYXNr
ICpkc3RwKQp7CiBiaXRtYXBfemVybygoKGRzdHApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkp
Owp9CiMgNDE3ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza19hbmQoc3Ry
dWN0IGNwdW1hc2sgKmRzdHAsCiAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAs
CiAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMnApCnsKIHJldHVybiBiaXRtYXBf
YW5kKCgoZHN0cCktPmJpdHMpLCAoKHNyYzFwKS0+Yml0cyksCiAgICAgICAgICAgKChzcmMycCkt
PmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFza19vcihzdHJ1
Y3QgY3B1bWFzayAqZHN0cCwgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYzFwLAogICAgICAgICBj
b25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMnApCnsKIGJpdG1hcF9vcigoKGRzdHApLT5iaXRzKSwg
KChzcmMxcCktPmJpdHMpLAogICAgICAgICAgKChzcmMycCktPmJpdHMpLCAoKHVuc2lnbmVkIGlu
dCk4KSk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFza194b3Ioc3RydWN0IGNwdW1hc2sgKmRzdHAsCiAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAsCiAgICAgICAgICBjb25zdCBzdHJ1
Y3QgY3B1bWFzayAqc3JjMnApCnsKIGJpdG1hcF94b3IoKChkc3RwKS0+Yml0cyksICgoc3JjMXAp
LT5iaXRzKSwKICAgICAgICAgICAoKHNyYzJwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsK
fQojIDQ2MCAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNwdW1hc2tfYW5kbm90KHN0
cnVjdCBjcHVtYXNrICpkc3RwLAogICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAsCiAg
ICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMycCkKewogcmV0dXJuIGJpdG1hcF9hbmRub3Qo
KChkc3RwKS0+Yml0cyksICgoc3JjMXApLT5iaXRzKSwKICAgICAgICgoc3JjMnApLT5iaXRzKSwg
KCh1bnNpZ25lZCBpbnQpOCkpOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFza19jb21wbGVtZW50KHN0cnVj
dCBjcHVtYXNrICpkc3RwLAogICAgICAgICAgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyY3ApCnsK
IGJpdG1hcF9jb21wbGVtZW50KCgoZHN0cCktPmJpdHMpLCAoKHNyY3ApLT5iaXRzKSwKICAgICAg
ICAgICAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBjcHVtYXNrX2VxdWFsKGNvbnN0
IHN0cnVjdCBjcHVtYXNrICpzcmMxcCwKICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMycCkK
ewogcmV0dXJuIGJpdG1hcF9lcXVhbCgoKHNyYzFwKS0+Yml0cyksICgoc3JjMnApLT5iaXRzKSwK
ICAgICAgICgodW5zaWduZWQgaW50KTgpKTsKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBjcHVtYXNrX29yX2VxdWFs
KGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMxcCwKICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFz
ayAqc3JjMnAsCiAgICAgICAgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYzNwKQp7CiByZXR1cm4g
Yml0bWFwX29yX2VxdWFsKCgoc3JjMXApLT5iaXRzKSwgKChzcmMycCktPmJpdHMpLAogICAgICAg
ICAgKChzcmMzcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBjcHVt
YXNrX2ludGVyc2VjdHMoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYzFwLAogICAgICAgICBjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqc3JjMnApCnsKIHJldHVybiBiaXRtYXBfaW50ZXJzZWN0cygoKHNy
YzFwKS0+Yml0cyksICgoc3JjMnApLT5iaXRzKSwKICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQp
OCkpOwp9CiMgNTI1ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza19zdWJz
ZXQoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYzFwLAogICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNr
ICpzcmMycCkKewogcmV0dXJuIGJpdG1hcF9zdWJzZXQoKChzcmMxcCktPmJpdHMpLCAoKHNyYzJw
KS0+Yml0cyksCiAgICAgICAgKCh1bnNpZ25lZCBpbnQpOCkpOwp9CgoKCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBjcHVtYXNr
X2VtcHR5KGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNwKQp7CiByZXR1cm4gYml0bWFwX2VtcHR5
KCgoc3JjcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGNwdW1hc2tf
ZnVsbChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCkKewogcmV0dXJuIGJpdG1hcF9mdWxsKCgo
c3JjcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgY3B1
bWFza193ZWlnaHQoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyY3ApCnsKIHJldHVybiBiaXRtYXBf
d2VpZ2h0KCgoc3JjcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
Y3B1bWFza19zaGlmdF9yaWdodChzdHJ1Y3QgY3B1bWFzayAqZHN0cCwKICAgICAgICAgICBjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCwgaW50IG4pCnsKIGJpdG1hcF9zaGlmdF9yaWdodCgoKGRz
dHApLT5iaXRzKSwgKChzcmNwKS0+Yml0cyksIG4sCiAgICAgICAgICAgICgodW5zaWduZWQgaW50
KTgpKTsKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBjcHVtYXNrX3NoaWZ0X2xlZnQoc3RydWN0IGNwdW1hc2sgKmRz
dHAsCiAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCwgaW50IG4pCnsKIGJpdG1h
cF9zaGlmdF9sZWZ0KCgoZHN0cCktPmJpdHMpLCAoKHNyY3ApLT5iaXRzKSwgbiwKICAgICAgICAg
ICAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjcHVtYXNrX2NvcHkoc3RydWN0IGNw
dW1hc2sgKmRzdHAsCiAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCkKewogYml0bWFwX2Nv
cHkoKChkc3RwKS0+Yml0cyksICgoc3JjcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0K
IyA2MzYgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBjcHVtYXNrX3BhcnNlX3VzZXIo
Y29uc3QgY2hhciAqYnVmLCBpbnQgbGVuLAogICAgICAgICBzdHJ1Y3QgY3B1bWFzayAqZHN0cCkK
ewogcmV0dXJuIGJpdG1hcF9wYXJzZV91c2VyKGJ1ZiwgbGVuLCAoKGRzdHApLT5iaXRzKSwgKCh1
bnNpZ25lZCBpbnQpOCkpOwp9CiMgNjUwICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
Y3B1bWFza19wYXJzZWxpc3RfdXNlcihjb25zdCBjaGFyICpidWYsIGludCBsZW4sCiAgICAgICAg
IHN0cnVjdCBjcHVtYXNrICpkc3RwKQp7CiByZXR1cm4gYml0bWFwX3BhcnNlbGlzdF91c2VyKGJ1
ZiwgbGVuLCAoKGRzdHApLT5iaXRzKSwKICAgICAgICAgKCh1bnNpZ25lZCBpbnQpOCkpOwp9CiMg
NjY0ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza19wYXJzZShjb25zdCBj
aGFyICpidWYsIHN0cnVjdCBjcHVtYXNrICpkc3RwKQp7CiByZXR1cm4gYml0bWFwX3BhcnNlKGJ1
ZiwgKH4wVSksICgoZHN0cCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KIyA2NzYgIi4v
aW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBjcHVsaXN0X3BhcnNlKGNvbnN0IGNoYXIgKmJ1
Ziwgc3RydWN0IGNwdW1hc2sgKmRzdHApCnsKIHJldHVybiBiaXRtYXBfcGFyc2VsaXN0KGJ1Ziwg
KChkc3RwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsKfQoKCgoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGNw
dW1hc2tfc2l6ZSh2b2lkKQp7CiByZXR1cm4gKCgoKCh1bnNpZ25lZCBpbnQpOCkpICsgKChzaXpl
b2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKSAqIHNpemVvZihsb25n
KTsKfQojIDc0OSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKdHlwZWRlZiBzdHJ1Y3QgY3B1
bWFzayBjcHVtYXNrX3Zhcl90WzFdOwoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBhbGxvY19jcHVtYXNrX3ZhcihjcHVtYXNr
X3Zhcl90ICptYXNrLCBnZnBfdCBmbGFncykKewogcmV0dXJuIHRydWU7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYWxsb2Nf
Y3B1bWFza192YXJfbm9kZShjcHVtYXNrX3Zhcl90ICptYXNrLCBnZnBfdCBmbGFncywKICAgICAg
IGludCBub2RlKQp7CiByZXR1cm4gdHJ1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB6YWxsb2NfY3B1bWFza192YXIoY3B1
bWFza192YXJfdCAqbWFzaywgZ2ZwX3QgZmxhZ3MpCnsKIGNwdW1hc2tfY2xlYXIoKm1hc2spOwog
cmV0dXJuIHRydWU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgemFsbG9jX2NwdW1hc2tfdmFyX25vZGUoY3B1bWFza192YXJf
dCAqbWFzaywgZ2ZwX3QgZmxhZ3MsCiAgICAgICBpbnQgbm9kZSkKewogY3B1bWFza19jbGVhcigq
bWFzayk7CiByZXR1cm4gdHJ1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhbGxvY19ib290bWVtX2NwdW1hc2tfdmFyKGNw
dW1hc2tfdmFyX3QgKm1hc2spCnsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmcmVlX2NwdW1hc2tfdmFyKGNwdW1hc2tfdmFy
X3QgbWFzaykKewp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGZyZWVfYm9vdG1lbV9jcHVtYXNrX3ZhcihjcHVtYXNrX3Zhcl90
IG1hc2spCnsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBjcHVtYXNrX2F2YWlsYWJsZShjcHVtYXNrX3Zhcl90IG1hc2spCnsK
IHJldHVybiB0cnVlOwp9CgoKCgpleHRlcm4gY29uc3QgdW5zaWduZWQgbG9uZyBjcHVfYWxsX2Jp
dHNbKCgoOCkgKyAoKHNpemVvZihsb25nKSAqIDgpKSAtIDEpIC8gKChzaXplb2YobG9uZykgKiA4
KSkpXTsKIyA4MDkgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCnZvaWQgaW5pdF9jcHVfcHJl
c2VudChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjKTsKdm9pZCBpbml0X2NwdV9wb3NzaWJsZShj
b25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjKTsKdm9pZCBpbml0X2NwdV9vbmxpbmUoY29uc3Qgc3Ry
dWN0IGNwdW1hc2sgKnNyYyk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlc2V0X2NwdV9wb3NzaWJsZV9tYXNrKHZvaWQpCnsK
IGJpdG1hcF96ZXJvKCgoJl9fY3B1X3Bvc3NpYmxlX21hc2spLT5iaXRzKSwgOCk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQK
c2V0X2NwdV9wb3NzaWJsZSh1bnNpZ25lZCBpbnQgY3B1LCBib29sIHBvc3NpYmxlKQp7CiBpZiAo
cG9zc2libGUpCiAgY3B1bWFza19zZXRfY3B1KGNwdSwgJl9fY3B1X3Bvc3NpYmxlX21hc2spOwog
ZWxzZQogIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJl9fY3B1X3Bvc3NpYmxlX21hc2spOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkCnNldF9jcHVfcHJlc2VudCh1bnNpZ25lZCBpbnQgY3B1LCBib29sIHByZXNlbnQpCnsKIGlm
IChwcmVzZW50KQogIGNwdW1hc2tfc2V0X2NwdShjcHUsICZfX2NwdV9wcmVzZW50X21hc2spOwog
ZWxzZQogIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJl9fY3B1X3ByZXNlbnRfbWFzayk7Cn0KCnZv
aWQgc2V0X2NwdV9vbmxpbmUodW5zaWduZWQgaW50IGNwdSwgYm9vbCBvbmxpbmUpOwoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApz
ZXRfY3B1X2FjdGl2ZSh1bnNpZ25lZCBpbnQgY3B1LCBib29sIGFjdGl2ZSkKewogaWYgKGFjdGl2
ZSkKICBjcHVtYXNrX3NldF9jcHUoY3B1LCAmX19jcHVfYWN0aXZlX21hc2spOwogZWxzZQogIGNw
dW1hc2tfY2xlYXJfY3B1KGNwdSwgJl9fY3B1X2FjdGl2ZV9tYXNrKTsKfQojIDg2MiAiLi9pbmNs
dWRlL2xpbnV4L2NwdW1hc2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fY2hlY2tfaXNfYml0bWFwKGNvbnN0IHVuc2lnbmVk
IGxvbmcgKmJpdG1hcCkKewogcmV0dXJuIDE7Cn0KIyA4NzQgIi4vaW5jbHVkZS9saW51eC9jcHVt
YXNrLmgiCmV4dGVybiBjb25zdCB1bnNpZ25lZCBsb25nCiBjcHVfYml0X2JpdG1hcFs2NCArMV1b
KCgoOCkgKyAoKHNpemVvZihsb25nKSAqIDgpKSAtIDEpIC8gKChzaXplb2YobG9uZykgKiA4KSkp
XTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpnZXRfY3B1X21hc2sodW5zaWduZWQgaW50IGNwdSkK
ewogY29uc3QgdW5zaWduZWQgbG9uZyAqcCA9IGNwdV9iaXRfYml0bWFwWzEgKyBjcHUgJSA2NF07
CiBwIC09IGNwdSAvIDY0OwogcmV0dXJuICgoc3RydWN0IGNwdW1hc2sgKikoMSA/IChwKSA6ICh2
b2lkICopc2l6ZW9mKF9fY2hlY2tfaXNfYml0bWFwKHApKSkpOwp9CiMgOTExICIuL2luY2x1ZGUv
bGludXgvY3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzc2l6ZV90CmNwdW1hcF9wcmludF90b19wYWdlYnVmKGJvb2wgbGlz
dCwgY2hhciAqYnVmLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaykKewogcmV0dXJuIGJpdG1h
cF9wcmludF90b19wYWdlYnVmKGxpc3QsIGJ1ZiwgKChtYXNrKS0+Yml0cyksCiAgICAgICAgICBu
cl9jcHVfaWRzKTsKfQojIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1bWFzay5oIiAyCgpl
eHRlcm4gY3B1bWFza192YXJfdCBjcHVfY2FsbGluX21hc2s7CmV4dGVybiBjcHVtYXNrX3Zhcl90
IGNwdV9jYWxsb3V0X21hc2s7CmV4dGVybiBjcHVtYXNrX3Zhcl90IGNwdV9pbml0aWFsaXplZF9t
YXNrOwpleHRlcm4gY3B1bWFza192YXJfdCBjcHVfc2libGluZ19zZXR1cF9tYXNrOwoKZXh0ZXJu
IHZvaWQgc2V0dXBfY3B1X2xvY2FsX21hc2tzKHZvaWQpOwojIDEyICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL21zci5oIiAyCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL21zci5oIiAx
CiMgMTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmgiIDIKCnN0cnVjdCBtc3IgewogdW5p
b24gewogIHN0cnVjdCB7CiAgIHUzMiBsOwogICB1MzIgaDsKICB9OwogIHU2NCBxOwogfTsKfTsK
CnN0cnVjdCBtc3JfaW5mbyB7CiB1MzIgbXNyX25vOwogc3RydWN0IG1zciByZWc7CiBzdHJ1Y3Qg
bXNyICptc3JzOwogaW50IGVycjsKfTsKCnN0cnVjdCBtc3JfcmVnc19pbmZvIHsKIHUzMiAqcmVn
czsKIGludCBlcnI7Cn07CgpzdHJ1Y3Qgc2F2ZWRfbXNyIHsKIGJvb2wgdmFsaWQ7CiBzdHJ1Y3Qg
bXNyX2luZm8gaW5mbzsKfTsKCnN0cnVjdCBzYXZlZF9tc3JzIHsKIHVuc2lnbmVkIGludCBudW07
CiBzdHJ1Y3Qgc2F2ZWRfbXNyICphcnJheTsKfTsKIyA2OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9tc3IuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC1kZWZzLmgiIDEKIyAxMiAi
Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQtZGVmcy5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9z
dGF0aWNfa2V5LmgiIDEKIyAxMyAiLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQtZGVmcy5oIiAy
CgpzdHJ1Y3QgdHJhY2VfcHJpbnRfZmxhZ3MgewogdW5zaWduZWQgbG9uZyBtYXNrOwogY29uc3Qg
Y2hhciAqbmFtZTsKfTsKCnN0cnVjdCB0cmFjZV9wcmludF9mbGFnc191NjQgewogdW5zaWduZWQg
bG9uZyBsb25nIG1hc2s7CiBjb25zdCBjaGFyICpuYW1lOwp9OwoKc3RydWN0IHRyYWNlcG9pbnRf
ZnVuYyB7CiB2b2lkICpmdW5jOwogdm9pZCAqZGF0YTsKIGludCBwcmlvOwp9OwoKc3RydWN0IHRy
YWNlcG9pbnQgewogY29uc3QgY2hhciAqbmFtZTsKIHN0cnVjdCBzdGF0aWNfa2V5IGtleTsKIGlu
dCAoKnJlZ2Z1bmMpKHZvaWQpOwogdm9pZCAoKnVucmVnZnVuYykodm9pZCk7CiBzdHJ1Y3QgdHJh
Y2Vwb2ludF9mdW5jICpmdW5jczsKfTsKCgp0eXBlZGVmIGNvbnN0IGludCB0cmFjZXBvaW50X3B0
cl90OwoKCgoKc3RydWN0IGJwZl9yYXdfZXZlbnRfbWFwIHsKIHN0cnVjdCB0cmFjZXBvaW50ICp0
cDsKIHZvaWQgKmJwZl9mdW5jOwogdTMyIG51bV9hcmdzOwogdTMyIHdyaXRhYmxlX3NpemU7Cn0g
X19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMzIpKSk7CiMgNjkgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vbXNyLmgiIDIKCmV4dGVybiBzdHJ1Y3QgdHJhY2Vwb2ludCBfX3RyYWNlcG9pbnRfcmVh
ZF9tc3I7CmV4dGVybiBzdHJ1Y3QgdHJhY2Vwb2ludCBfX3RyYWNlcG9pbnRfd3JpdGVfbXNyOwpl
eHRlcm4gc3RydWN0IHRyYWNlcG9pbnQgX190cmFjZXBvaW50X3JkcG1jOwoKZXh0ZXJuIHZvaWQg
ZG9fdHJhY2Vfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBtc3IsIHU2NCB2YWwsIGludCBmYWlsZWQp
OwpleHRlcm4gdm9pZCBkb190cmFjZV9yZWFkX21zcih1bnNpZ25lZCBpbnQgbXNyLCB1NjQgdmFs
LCBpbnQgZmFpbGVkKTsKZXh0ZXJuIHZvaWQgZG9fdHJhY2VfcmRwbWModW5zaWduZWQgaW50IG1z
ciwgdTY0IHZhbCwgaW50IGZhaWxlZCk7CiMgOTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNy
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19yZG1zcih1bnNpZ25lZCBpbnQgbXNyKQp7CiB1bnNpZ25lZCBsb25nIGxvdywgaGln
aDsKCiBhc20gdm9sYXRpbGUoIjE6IHJkbXNyXG4iCiAgICAgICAiMjpcbiIKICAgICAgICIgLnB1
c2hzZWN0aW9uIFwiX19leF90YWJsZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxvbmcg
KCIgIjFiIiAiKSAtIC5cbiIgIiAubG9uZyAoIiAiMmIiICIpIC0gLlxuIiAiIC5sb25nICgiICJl
eF9oYW5kbGVyX3JkbXNyX3Vuc2FmZSIgIikgLSAuXG4iICIgLnBvcHNlY3Rpb25cbiIKICAgICAg
IDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCkgOiAiYyIgKG1zcikpOwoKIHJldHVybiAoKGxvdykg
fCAoaGlnaCkgPDwgMzIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX3dybXNyKHVuc2lnbmVkIGludCBtc3IsIHUzMiBsb3csIHUzMiBoaWdoKQp7CiBh
c20gdm9sYXRpbGUoIjE6IHdybXNyXG4iCiAgICAgICAiMjpcbiIKICAgICAgICIgLnB1c2hzZWN0
aW9uIFwiX19leF90YWJsZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxvbmcgKCIgIjFi
IiAiKSAtIC5cbiIgIiAubG9uZyAoIiAiMmIiICIpIC0gLlxuIiAiIC5sb25nICgiICJleF9oYW5k
bGVyX3dybXNyX3Vuc2FmZSIgIikgLSAuXG4iICIgLnBvcHNlY3Rpb25cbiIKICAgICAgIDogOiAi
YyIgKG1zciksICJhIihsb3cpLCAiZCIgKGhpZ2gpIDogIm1lbW9yeSIpOwp9CiMgMTI1ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL21zci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlX3JlYWRf
bXNyKHVuc2lnbmVkIGludCBtc3IpCnsKIHVuc2lnbmVkIGxvbmcgbG9uZyB2YWw7CgogdmFsID0g
X19yZG1zcihtc3IpOwoKIGlmIChzdGF0aWNfa2V5X2ZhbHNlKCYoX190cmFjZXBvaW50X3JlYWRf
bXNyKS5rZXkpKQogIGRvX3RyYWNlX3JlYWRfbXNyKG1zciwgdmFsLCAwKTsKCiByZXR1cm4gdmFs
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlX3JlYWRfbXNyX3NhZmUodW5zaWduZWQgaW50
IG1zciwKICAgICAgICAgICAgaW50ICplcnIpCnsKIHVuc2lnbmVkIGxvbmcgbG93LCBoaWdoOwoK
IGFzbSB2b2xhdGlsZSgiMjogcmRtc3IgOyB4b3IgJVtlcnJdLCVbZXJyXVxuIgogICAgICAgIjE6
XG5cdCIKICAgICAgICIuc2VjdGlvbiAuZml4dXAsXCJheFwiXG5cdCIKICAgICAgICIzOiBtb3Yg
JVtmYXVsdF0sJVtlcnJdXG5cdCIKICAgICAgICJ4b3JsICUlZWF4LCAlJWVheFxuXHQiCiAgICAg
ICAieG9ybCAlJWVkeCwgJSVlZHhcblx0IgogICAgICAgImptcCAxYlxuXHQiCiAgICAgICAiLnBy
ZXZpb3VzXG5cdCIKICAgICAgICIgLnB1c2hzZWN0aW9uIFwiX19leF90YWJsZVwiLFwiYVwiXG4i
ICIgLmJhbGlnbiA0XG4iICIgLmxvbmcgKCIgIjJiIiAiKSAtIC5cbiIgIiAubG9uZyAoIiAiM2Ii
ICIpIC0gLlxuIiAiIC5sb25nICgiICJleF9oYW5kbGVyX2RlZmF1bHQiICIpIC0gLlxuIiAiIC5w
b3BzZWN0aW9uXG4iCiAgICAgICA6IFtlcnJdICI9ciIgKCplcnIpLCAiPWEiIChsb3cpLCAiPWQi
IChoaWdoKQogICAgICAgOiAiYyIgKG1zciksIFtmYXVsdF0gImkiICgtNSkpOwogaWYgKHN0YXRp
Y19rZXlfZmFsc2UoJihfX3RyYWNlcG9pbnRfcmVhZF9tc3IpLmtleSkpCiAgZG9fdHJhY2VfcmVh
ZF9tc3IobXNyLCAoKGxvdykgfCAoaGlnaCkgPDwgMzIpLCAqZXJyKTsKIHJldHVybiAoKGxvdykg
fCAoaGlnaCkgPDwgMzIpOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkKbmF0aXZlX3dyaXRlX21zcih1bnNpZ25lZCBpbnQgbXNyLCB1MzIgbG93LCB1MzIg
aGlnaCkKewogX193cm1zcihtc3IsIGxvdywgaGlnaCk7CgogaWYgKHN0YXRpY19rZXlfZmFsc2Uo
JihfX3RyYWNlcG9pbnRfd3JpdGVfbXNyKS5rZXkpKQogIGRvX3RyYWNlX3dyaXRlX21zcihtc3Is
ICgodTY0KWhpZ2ggPDwgMzIgfCBsb3cpLCAwKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkKbmF0aXZlX3dyaXRlX21zcl9zYWZlKHVuc2lnbmVkIGludCBt
c3IsIHUzMiBsb3csIHUzMiBoaWdoKQp7CiBpbnQgZXJyOwoKIGFzbSB2b2xhdGlsZSgiMjogd3Jt
c3IgOyB4b3IgJVtlcnJdLCVbZXJyXVxuIgogICAgICAgIjE6XG5cdCIKICAgICAgICIuc2VjdGlv
biAuZml4dXAsXCJheFwiXG5cdCIKICAgICAgICIzOiAgbW92ICVbZmF1bHRdLCVbZXJyXSA7IGpt
cCAxYlxuXHQiCiAgICAgICAiLnByZXZpb3VzXG5cdCIKICAgICAgICIgLnB1c2hzZWN0aW9uIFwi
X19leF90YWJsZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxvbmcgKCIgIjJiIiAiKSAt
IC5cbiIgIiAubG9uZyAoIiAiM2IiICIpIC0gLlxuIiAiIC5sb25nICgiICJleF9oYW5kbGVyX2Rl
ZmF1bHQiICIpIC0gLlxuIiAiIC5wb3BzZWN0aW9uXG4iCiAgICAgICA6IFtlcnJdICI9YSIgKGVy
cikKICAgICAgIDogImMiIChtc3IpLCAiMCIgKGxvdyksICJkIiAoaGlnaCksCiAgICAgICAgIFtm
YXVsdF0gImkiICgtNSkKICAgICAgIDogIm1lbW9yeSIpOwogaWYgKHN0YXRpY19rZXlfZmFsc2Uo
JihfX3RyYWNlcG9pbnRfd3JpdGVfbXNyKS5rZXkpKQogIGRvX3RyYWNlX3dyaXRlX21zcihtc3Is
ICgodTY0KWhpZ2ggPDwgMzIgfCBsb3cpLCBlcnIpOwogcmV0dXJuIGVycjsKfQoKZXh0ZXJuIGlu
dCByZG1zcl9zYWZlX3JlZ3ModTMyIHJlZ3NbOF0pOwpleHRlcm4gaW50IHdybXNyX3NhZmVfcmVn
cyh1MzIgcmVnc1s4XSk7CiMgMjAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgbG9uZyByZHRzYyh2
b2lkKQp7CiB1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKCiBhc20gdm9sYXRpbGUoInJkdHNjIiA6
ICI9YSIgKGxvdyksICI9ZCIgKGhpZ2gpKTsKCiByZXR1cm4gKChsb3cpIHwgKGhpZ2gpIDw8IDMy
KTsKfQojIDIxOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBsb25nIGxvbmcgcmR0c2Nfb3JkZXJlZCh2b2lk
KQp7CiB1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKIyAyMzYgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXNyLmgiCiBhc20gdm9sYXRpbGUoIiMgQUxUOiBvbGRpbnN0cjJcbiIgIjY2MTpcblx0IiAi
cmR0c2MiICJcbjY2MjpcbiIgIiMgQUxUOiBwYWRkaW5nMlxuIiAiLnNraXAgLSgoIiAiKCgiICI2
NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAi
KSBeICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSAmIC0oLSgoIiAiNjY1IiIxIiJmLSIi
NjY0IiIxIiJmIiAiKSA8ICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSkpKSIgIiAtICgi
ICI2NjJiLTY2MWIiICIpKSA+IDApICogIiAiKCIgIigoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJm
IiAiKSBeICgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikgXiAoIiAiNjY1IiIyIiJmLSIi
NjY0IiIyIiJmIiAiKSkgJiAtKC0oKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikgPCAoIiAi
NjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiKSkpKSkiICIgLSAoIiAiNjYyYi02NjFiIiAiKSksIDB4
OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4i
ICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQiIjEiImYgLSAuXG4iICIgLndvcmQg
IiAiKCAzKjMyKzE4KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUg
IiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJc
biIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2NCIiMiIiZiAtIC5cbiIgIiAud29y
ZCAiICIoIDEqMzIrMjcpIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0
ZSAiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYyYiIg
IlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQs
IFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjEiICJcbiIgIjY2NCIiMSIiOlxuXHQi
ICJsZmVuY2U7IHJkdHNjIiAiXG4iICI2NjUiIjEiICI6XG4iICIjIEFMVDogcmVwbGFjZW1lbnQg
IiAiMiIgIlxuIiAiNjY0IiIyIiI6XG5cdCIgInJkdHNjcCIgIlxuIiAiNjY1IiIyIiAiOlxuIiAi
LnBvcHNlY3Rpb25cbiIKCgogICA6ICI9YSIgKGxvdyksICI9ZCIgKGhpZ2gpCgogICA6OiAiZWN4
Iik7CgogcmV0dXJuICgobG93KSB8IChoaWdoKSA8PCAzMik7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgbG9u
ZyBuYXRpdmVfcmVhZF9wbWMoaW50IGNvdW50ZXIpCnsKIHVuc2lnbmVkIGxvbmcgbG93LCBoaWdo
OwoKIGFzbSB2b2xhdGlsZSgicmRwbWMiIDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCkgOiAiYyIg
KGNvdW50ZXIpKTsKIGlmIChzdGF0aWNfa2V5X2ZhbHNlKCYoX190cmFjZXBvaW50X3JkcG1jKS5r
ZXkpKQogIGRvX3RyYWNlX3JkcG1jKGNvdW50ZXIsICgobG93KSB8IChoaWdoKSA8PCAzMiksIDAp
OwogcmV0dXJuICgobG93KSB8IChoaWdoKSA8PCAzMik7Cn0KCgoKCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L2Vycm5vLmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZXJybm8uaCIgMQoj
IDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vZXJybm8uaCIgMQojIDIg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2Vycm5vLmgiIDIKIyA2ICIuL2luY2x1ZGUvbGludXgvZXJy
bm8uaCIgMgojIDI2MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIgMgojIDI3MyAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cm1zcih1bnNpZ25lZCBpbnQgbXNyLCB1
MzIgbG93LCB1MzIgaGlnaCkKewogbmF0aXZlX3dyaXRlX21zcihtc3IsIGxvdywgaGlnaCk7Cn0K
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgd3Jtc3JsKHVuc2lnbmVkIGludCBtc3IsIHU2NCB2YWwpCnsKIG5hdGl2ZV93cml0
ZV9tc3IobXNyLCAodTMyKSh2YWwgJiAweGZmZmZmZmZmVUxMKSwgKHUzMikodmFsID4+IDMyKSk7
Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgd3Jtc3Jfc2FmZSh1bnNpZ25lZCBpbnQgbXNyLCB1MzIgbG93LCB1MzIgaGlnaCkK
ewogcmV0dXJuIG5hdGl2ZV93cml0ZV9tc3Jfc2FmZShtc3IsIGxvdywgaGlnaCk7Cn0KIyAzMDIg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCByZG1zcmxfc2FmZSh1bnNpZ25lZCBp
bnQgbXNyLCB1bnNpZ25lZCBsb25nIGxvbmcgKnApCnsKIGludCBlcnI7CgogKnAgPSBuYXRpdmVf
cmVhZF9tc3Jfc2FmZShtc3IsICZlcnIpOwogcmV0dXJuIGVycjsKfQojIDMyNCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9tc3IuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHdybXNybF9zYWZlKHUzMiBtc3IsIHU2NCB2YWwpCnsK
IHJldHVybiB3cm1zcl9zYWZlKG1zciwgKHUzMil2YWwsICh1MzIpKHZhbCA+PiAzMikpOwp9CgoK
CgoKc3RydWN0IG1zciAqbXNyc19hbGxvYyh2b2lkKTsKdm9pZCBtc3JzX2ZyZWUoc3RydWN0IG1z
ciAqbXNycyk7CmludCBtc3Jfc2V0X2JpdCh1MzIgbXNyLCB1OCBiaXQpOwppbnQgbXNyX2NsZWFy
X2JpdCh1MzIgbXNyLCB1OCBiaXQpOwoKCmludCByZG1zcl9vbl9jcHUodW5zaWduZWQgaW50IGNw
dSwgdTMyIG1zcl9ubywgdTMyICpsLCB1MzIgKmgpOwppbnQgd3Jtc3Jfb25fY3B1KHVuc2lnbmVk
IGludCBjcHUsIHUzMiBtc3Jfbm8sIHUzMiBsLCB1MzIgaCk7CmludCByZG1zcmxfb25fY3B1KHVu
c2lnbmVkIGludCBjcHUsIHUzMiBtc3Jfbm8sIHU2NCAqcSk7CmludCB3cm1zcmxfb25fY3B1KHVu
c2lnbmVkIGludCBjcHUsIHUzMiBtc3Jfbm8sIHU2NCBxKTsKdm9pZCByZG1zcl9vbl9jcHVzKGNv
bnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLCB1MzIgbXNyX25vLCBzdHJ1Y3QgbXNyICptc3JzKTsK
dm9pZCB3cm1zcl9vbl9jcHVzKGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLCB1MzIgbXNyX25v
LCBzdHJ1Y3QgbXNyICptc3JzKTsKaW50IHJkbXNyX3NhZmVfb25fY3B1KHVuc2lnbmVkIGludCBj
cHUsIHUzMiBtc3Jfbm8sIHUzMiAqbCwgdTMyICpoKTsKaW50IHdybXNyX3NhZmVfb25fY3B1KHVu
c2lnbmVkIGludCBjcHUsIHUzMiBtc3Jfbm8sIHUzMiBsLCB1MzIgaCk7CmludCByZG1zcmxfc2Fm
ZV9vbl9jcHUodW5zaWduZWQgaW50IGNwdSwgdTMyIG1zcl9ubywgdTY0ICpxKTsKaW50IHdybXNy
bF9zYWZlX29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCB1MzIgbXNyX25vLCB1NjQgcSk7CmludCBy
ZG1zcl9zYWZlX3JlZ3Nfb25fY3B1KHVuc2lnbmVkIGludCBjcHUsIHUzMiByZWdzWzhdKTsKaW50
IHdybXNyX3NhZmVfcmVnc19vbl9jcHUodW5zaWduZWQgaW50IGNwdSwgdTMyIHJlZ3NbOF0pOwoj
IDIzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCgoKIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3NwZWNpYWxfaW5zbnMuaCIgMQojIDE5ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3NwZWNpYWxfaW5zbnMuaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19mb3JjZV9vcmRl
cjsKCnZvaWQgbmF0aXZlX3dyaXRlX2NyMCh1bnNpZ25lZCBsb25nIHZhbCk7CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBs
b25nIG5hdGl2ZV9yZWFkX2NyMCh2b2lkKQp7CiB1bnNpZ25lZCBsb25nIHZhbDsKIGFzbSB2b2xh
dGlsZSgibW92ICUlY3IwLCUwXG5cdCIgOiAiPXIiICh2YWwpLCAiPW0iIChfX2ZvcmNlX29yZGVy
KSk7CiByZXR1cm4gdmFsOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIG5hdGl2ZV9yZWFkX2NyMih2b2lkKQp7
CiB1bnNpZ25lZCBsb25nIHZhbDsKIGFzbSB2b2xhdGlsZSgibW92ICUlY3IyLCUwXG5cdCIgOiAi
PXIiICh2YWwpLCAiPW0iIChfX2ZvcmNlX29yZGVyKSk7CiByZXR1cm4gdmFsOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5h
dGl2ZV93cml0ZV9jcjIodW5zaWduZWQgbG9uZyB2YWwpCnsKIGFzbSB2b2xhdGlsZSgibW92ICUw
LCUlY3IyIjogOiAiciIgKHZhbCksICJtIiAoX19mb3JjZV9vcmRlcikpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBs
b25nIF9fbmF0aXZlX3JlYWRfY3IzKHZvaWQpCnsKIHVuc2lnbmVkIGxvbmcgdmFsOwogYXNtIHZv
bGF0aWxlKCJtb3YgJSVjcjMsJTBcblx0IiA6ICI9ciIgKHZhbCksICI9bSIgKF9fZm9yY2Vfb3Jk
ZXIpKTsKIHJldHVybiB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbmF0aXZlX3dyaXRlX2NyMyh1bnNpZ25lZCBsb25n
IHZhbCkKewogYXNtIHZvbGF0aWxlKCJtb3YgJTAsJSVjcjMiOiA6ICJyIiAodmFsKSwgIm0iIChf
X2ZvcmNlX29yZGVyKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgbmF0aXZlX3JlYWRfY3I0KHZvaWQpCnsK
IHVuc2lnbmVkIGxvbmcgdmFsOwojIDY5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwZWNpYWxf
aW5zbnMuaCIKIGFzbSB2b2xhdGlsZSgibW92ICUlY3I0LCUwXG5cdCIgOiAiPXIiICh2YWwpLCAi
PW0iIChfX2ZvcmNlX29yZGVyKSk7CgogcmV0dXJuIHZhbDsKfQoKdm9pZCBuYXRpdmVfd3JpdGVf
Y3I0KHVuc2lnbmVkIGxvbmcgdmFsKTsKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgcmRwa3J1KHZvaWQpCnsKIHUzMiBlY3ggPSAw
OwogdTMyIGVkeCwgcGtydTsKCgoKCgogYXNtIHZvbGF0aWxlKCIuYnl0ZSAweDBmLDB4MDEsMHhl
ZVxuXHQiCiAgICAgICA6ICI9YSIgKHBrcnUpLCAiPWQiIChlZHgpCiAgICAgICA6ICJjIiAoZWN4
KSk7CiByZXR1cm4gcGtydTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cnBrcnUodTMyIHBrcnUpCnsKIHUzMiBlY3ggPSAw
LCBlZHggPSAwOwoKCgoKCiBhc20gdm9sYXRpbGUoIi5ieXRlIDB4MGYsMHgwMSwweGVmXG5cdCIK
ICAgICAgIDogOiAiYSIgKHBrcnUpLCAiYyIoZWN4KSwgImQiKGVkeCkpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fd3Jp
dGVfcGtydSh1MzIgcGtydSkKewoKCgoKIGlmIChwa3J1ID09IHJkcGtydSgpKQogIHJldHVybjsK
CiB3cnBrcnUocGtydSk7Cn0KIyAxMjcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3BlY2lhbF9p
bnNucy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIG5hdGl2ZV93YmludmQodm9pZCkKewogYXNtIHZvbGF0aWxlKCJ3YmludmQi
OiA6IDoibWVtb3J5Iik7Cn0KCmV4dGVybiB2b2lkIG5hdGl2ZV9sb2FkX2dzX2luZGV4KHVuc2ln
bmVkKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGxvbmcgX19yZWFkX2NyNCh2b2lkKQp7CiByZXR1cm4gbmF0aXZlX3Jl
YWRfY3I0KCk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHJlYWRfY3IwKHZvaWQpCnsKIHJldHVybiBu
YXRpdmVfcmVhZF9jcjAoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cml0ZV9jcjAodW5zaWduZWQgbG9uZyB4KQp7CiBu
YXRpdmVfd3JpdGVfY3IwKHgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHJlYWRfY3IyKHZvaWQpCnsKIHJl
dHVybiBuYXRpdmVfcmVhZF9jcjIoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cml0ZV9jcjIodW5zaWduZWQgbG9uZyB4
KQp7CiBuYXRpdmVfd3JpdGVfY3IyKHgpOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX3JlYWRfY3Iz
KHZvaWQpCnsKIHJldHVybiBfX25hdGl2ZV9yZWFkX2NyMygpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX2NyMyh1
bnNpZ25lZCBsb25nIHgpCnsKIG5hdGl2ZV93cml0ZV9jcjMoeCk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX193cml0ZV9j
cjQodW5zaWduZWQgbG9uZyB4KQp7CiBuYXRpdmVfd3JpdGVfY3I0KHgpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdiaW52
ZCh2b2lkKQp7CiBuYXRpdmVfd2JpbnZkKCk7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2FkX2dzX2luZGV4KHVuc2ln
bmVkIHNlbGVjdG9yKQp7CiBuYXRpdmVfbG9hZF9nc19pbmRleChzZWxlY3Rvcik7Cn0KCgoKCgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGNsZmx1c2godm9sYXRpbGUgdm9pZCAqX19wKQp7CiBhc20gdm9sYXRpbGUoImNsZmx1c2gg
JTAiIDogIittIiAoKih2b2xhdGlsZSBjaGFyICopX19wKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY2xmbHVzaG9wdCh2
b2xhdGlsZSB2b2lkICpfX3ApCnsKIGFzbSBfX2lubGluZSB2b2xhdGlsZSAoIiMgQUxUOiBvbGRu
c3RyXG4iICI2NjE6XG5cdCIgIi5ieXRlICIgIjB4M2UiICI7IGNsZmx1c2ggJVAwIiAiXG42NjI6
XG4iICIjIEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIi
ZiIgIiktKCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIi
MSIiZiIgIiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2Vj
dGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9u
ZyAiICI2NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCA5KjMyKzIzKSIgIlxuIiAiIC5ieXRl
ICIgIjY2MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAi
XG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNl
Y3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVu
dCAiICIxIiAiXG4iICI2NjQiIjEiIjpcblx0IiAiLmJ5dGUgMHg2NjsgY2xmbHVzaCAlUDAiICJc
biIgIjY2NSIiMSIgIjpcbiIgIi5wb3BzZWN0aW9uXG4iIDogIittIiAoKih2b2xhdGlsZSBjaGFy
ICopX19wKSA6ICJpIiAoMCkpCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBjbHdiKHZvbGF0aWxlIHZvaWQgKl9fcCkKewogdm9sYXRpbGUg
c3RydWN0IHsgY2hhciB4WzY0XTsgfSAqcCA9IF9fcDsKCiBhc20gdm9sYXRpbGUoIiMgQUxUOiBv
bGRpbnN0cjJcbiIgIjY2MTpcblx0IiAiLmJ5dGUgIiAiMHgzZSIgIjsgY2xmbHVzaCAoJVtwYXhd
KSIgIlxuNjYyOlxuIiAiIyBBTFQ6IHBhZGRpbmcyXG4iICIuc2tpcCAtKCgiICIoKCIgIjY2NSIi
MSIiZi0iIjY2NCIiMSIiZiIgIikgXiAoKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4g
KCIgIjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIikpICYgLSgtKCgiICI2NjUiIjEiImYtIiI2NjQi
IjEiImYiICIpIDwgKCIgIjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIikpKSkpIiAiIC0gKCIgIjY2
MmItNjYxYiIgIikpID4gMCkgKiAiICIoIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIp
IF4gKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSBeICgiICI2NjUiIjIiImYtIiI2NjQi
IjIiImYiICIpKSAmIC0oLSgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSA8ICgiICI2NjUi
IjIiImYtIiI2NjQiIjIiImYiICIpKSkpKSIgIiAtICgiICI2NjJiLTY2MWIiICIpKSwgMHg5MFxu
IiAiNjYzIiAiOlxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAu
bG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2NCIiMSIiZiAtIC5cbiIgIiAud29yZCAiICIo
IDkqMzIrMjMpIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2
NjUiIjEiImYtIiI2NjQiIjEiImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAi
IC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcgIiAiNjY0IiIyIiJmIC0gLlxuIiAiIC53b3JkICIg
IiggOSozMisyNCkiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIg
IjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4i
ICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJh
eFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQgIiAiMSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgIi5i
eXRlIDB4NjY7IGNsZmx1c2ggKCVbcGF4XSkiICJcbiIgIjY2NSIiMSIgIjpcbiIgIiMgQUxUOiBy
ZXBsYWNlbWVudCAiICIyIiAiXG4iICI2NjQiIjIiIjpcblx0IiAiLmJ5dGUgMHg2NiwgMHgwZiwg
MHhhZSwgMHgzMCIgIlxuIiAiNjY1IiIyIiAiOlxuIiAiLnBvcHNlY3Rpb25cbiIKCgoKCgogIDog
W3BdICIrbSIgKCpwKQogIDogW3BheF0gImEiIChwKSk7Cn0KIyAyNiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L3R5
cGVzLmgiIDEKIyAxMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mcHUvdHlwZXMuaCIKc3RydWN0
IGZyZWdzX3N0YXRlIHsKIHUzMiBjd2Q7CiB1MzIgc3dkOwogdTMyIHR3ZDsKIHUzMiBmaXA7CiB1
MzIgZmNzOwogdTMyIGZvbzsKIHUzMiBmb3M7CgoKIHUzMiBzdF9zcGFjZVsyMF07CgoKIHUzMiBz
dGF0dXM7Cn07CgoKCgoKCgpzdHJ1Y3QgZnhyZWdzX3N0YXRlIHsKIHUxNiBjd2Q7CiB1MTYgc3dk
OwogdTE2IHR3ZDsKIHUxNiBmb3A7CiB1bmlvbiB7CiAgc3RydWN0IHsKICAgdTY0IHJpcDsKICAg
dTY0IHJkcDsKICB9OwogIHN0cnVjdCB7CiAgIHUzMiBmaXA7CiAgIHUzMiBmY3M7CiAgIHUzMiBm
b287CiAgIHUzMiBmb3M7CiAgfTsKIH07CiB1MzIgbXhjc3I7CiB1MzIgbXhjc3JfbWFzazsKCgog
dTMyIHN0X3NwYWNlWzMyXTsKCgogdTMyIHhtbV9zcGFjZVs2NF07CgogdTMyIHBhZGRpbmdbMTJd
OwoKIHVuaW9uIHsKICB1MzIgcGFkZGluZzFbMTJdOwogIHUzMiBzd19yZXNlcnZlZFsxMl07CiB9
OwoKfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDE2KSkpOwojIDc5ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2ZwdS90eXBlcy5oIgpzdHJ1Y3Qgc3dyZWdzX3N0YXRlIHsKIHUzMiBjd2Q7CiB1MzIg
c3dkOwogdTMyIHR3ZDsKIHUzMiBmaXA7CiB1MzIgZmNzOwogdTMyIGZvbzsKIHUzMiBmb3M7Cgog
dTMyIHN0X3NwYWNlWzIwXTsKIHU4IGZ0b3A7CiB1OCBjaGFuZ2VkOwogdTggbG9va2FoZWFkOwog
dTggbm9fdXBkYXRlOwogdTggcm07CiB1OCBhbGltaXQ7CiBzdHJ1Y3QgbWF0aF9lbXVfaW5mbyAq
aW5mbzsKIHUzMiBlbnRyeV9laXA7Cn07CgoKCgplbnVtIHhmZWF0dXJlIHsKIFhGRUFUVVJFX0ZQ
LAogWEZFQVRVUkVfU1NFLAoKCgoKIFhGRUFUVVJFX1lNTSwKIFhGRUFUVVJFX0JORFJFR1MsCiBY
RkVBVFVSRV9CTkRDU1IsCiBYRkVBVFVSRV9PUE1BU0ssCiBYRkVBVFVSRV9aTU1fSGkyNTYsCiBY
RkVBVFVSRV9IaTE2X1pNTSwKIFhGRUFUVVJFX1BUX1VOSU1QTEVNRU5URURfU09fRkFSLAogWEZF
QVRVUkVfUEtSVSwKCiBYRkVBVFVSRV9NQVgsCn07CiMgMTM5ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2ZwdS90eXBlcy5oIgpzdHJ1Y3QgcmVnXzEyOF9iaXQgewogdTggcmVnYnl0ZXNbMTI4Lzhd
Owp9OwpzdHJ1Y3QgcmVnXzI1Nl9iaXQgewogdTggcmVnYnl0ZXNbMjU2LzhdOwp9OwpzdHJ1Y3Qg
cmVnXzUxMl9iaXQgewogdTggcmVnYnl0ZXNbNTEyLzhdOwp9OwojIDE1OSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9mcHUvdHlwZXMuaCIKc3RydWN0IHltbWhfc3RydWN0IHsKIHN0cnVjdCByZWdf
MTI4X2JpdCBoaV95bW1bMTZdOwp9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKCgoKc3Ry
dWN0IG1weF9ibmRyZWcgewogdTY0IGxvd2VyX2JvdW5kOwogdTY0IHVwcGVyX2JvdW5kOwp9IF9f
YXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKCgoKc3RydWN0IG1weF9ibmRyZWdfc3RhdGUgewog
c3RydWN0IG1weF9ibmRyZWcgYm5kcmVnWzRdOwp9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18p
KTsKCgoKCgoKc3RydWN0IG1weF9ibmRjc3IgewogdTY0IGJuZGNmZ3U7CiB1NjQgYm5kc3RhdHVz
Owp9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKCgoKCnN0cnVjdCBtcHhfYm5kY3NyX3N0
YXRlIHsKIHVuaW9uIHsKICBzdHJ1Y3QgbXB4X2JuZGNzciBibmRjc3I7CiAgdTggcGFkX3RvXzY0
X2J5dGVzWzY0XTsKIH07Cn0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwoKCgoKCgoKc3Ry
dWN0IGF2eF81MTJfb3BtYXNrX3N0YXRlIHsKIHU2NCBvcG1hc2tfcmVnWzhdOwp9IF9fYXR0cmli
dXRlX18oKF9fcGFja2VkX18pKTsKCgoKCgoKc3RydWN0IGF2eF81MTJfem1tX3VwcGVyc19zdGF0
ZSB7CiBzdHJ1Y3QgcmVnXzI1Nl9iaXQgem1tX3VwcGVyWzE2XTsKfSBfX2F0dHJpYnV0ZV9fKChf
X3BhY2tlZF9fKSk7CgoKCgoKc3RydWN0IGF2eF81MTJfaGkxNl9zdGF0ZSB7CiBzdHJ1Y3QgcmVn
XzUxMl9iaXQgaGkxNl96bW1bMTZdOwp9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKCgoK
CgpzdHJ1Y3QgcGtydV9zdGF0ZSB7CiB1MzIgcGtydTsKIHUzMiBwYWQ7Cn0gX19hdHRyaWJ1dGVf
XygoX19wYWNrZWRfXykpOwoKc3RydWN0IHhzdGF0ZV9oZWFkZXIgewogdTY0IHhmZWF0dXJlczsK
IHU2NCB4Y29tcF9idjsKIHU2NCByZXNlcnZlZFs2XTsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp
KTsKIyAyNTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L3R5cGVzLmgiCnN0cnVjdCB4cmVn
c19zdGF0ZSB7CiBzdHJ1Y3QgZnhyZWdzX3N0YXRlIGkzODc7CiBzdHJ1Y3QgeHN0YXRlX2hlYWRl
ciBoZWFkZXI7CiB1OCBleHRlbmRlZF9zdGF0ZV9hcmVhWzBdOwp9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQsIGFsaWduZWQgKDY0KSkpOwojIDI2OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mcHUv
dHlwZXMuaCIKdW5pb24gZnByZWdzX3N0YXRlIHsKIHN0cnVjdCBmcmVnc19zdGF0ZSBmc2F2ZTsK
IHN0cnVjdCBmeHJlZ3Nfc3RhdGUgZnhzYXZlOwogc3RydWN0IHN3cmVnc19zdGF0ZSBzb2Z0Owog
c3RydWN0IHhyZWdzX3N0YXRlIHhzYXZlOwogdTggX19wYWRkaW5nWygoMVVMKSA8PCAxMildOwp9
OwoKCgoKCgpzdHJ1Y3QgZnB1IHsKIyAyOTQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L3R5
cGVzLmgiCiB1bnNpZ25lZCBpbnQgbGFzdF9jcHU7CgoKCgoKCiB1bnNpZ25lZCBsb25nIGF2eDUx
Ml90aW1lc3RhbXA7CiMgMzEyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ZwdS90eXBlcy5oIgog
dW5pb24gZnByZWdzX3N0YXRlIHN0YXRlOwoKCgoKfTsKIyAyNyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdW53aW5kX2hp
bnRzLmgiIDEKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL29yY190eXBlcy5oIiAxCiMg
NzMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vb3JjX3R5cGVzLmgiCnN0cnVjdCBvcmNfZW50cnkg
ewogczE2IHNwX29mZnNldDsKIHMxNiBicF9vZmZzZXQ7CiB1bnNpZ25lZCBzcF9yZWc6NDsKIHVu
c2lnbmVkIGJwX3JlZzo0OwogdW5zaWduZWQgdHlwZToyOwogdW5zaWduZWQgZW5kOjE7Cn0gX19h
dHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwoKCgoKCgoKc3RydWN0IHVud2luZF9oaW50IHsKIHUz
MiBpcDsKIHMxNiBzcF9vZmZzZXQ7CiB1OCBzcF9yZWc7CiB1OCB0eXBlOwogdTggZW5kOwp9Owoj
IDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdW53aW5kX2hpbnRzLmgiIDIKIyAyOCAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vdm14ZmVhdHVyZXMuaCIgMQojIDI5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nv
ci5oIiAyCgojIDEgIi4vaW5jbHVkZS9saW51eC9wZXJzb25hbGl0eS5oIiAxCgoKCgojIDEgIi4v
aW5jbHVkZS91YXBpL2xpbnV4L3BlcnNvbmFsaXR5LmgiIDEKIyAxMSAiLi9pbmNsdWRlL3VhcGkv
bGludXgvcGVyc29uYWxpdHkuaCIKZW51bSB7CiBVTkFNRTI2ID0gMHgwMDIwMDAwLAogQUREUl9O
T19SQU5ET01JWkUgPSAweDAwNDAwMDAsCiBGRFBJQ19GVU5DUFRSUyA9IDB4MDA4MDAwMCwKCgog
TU1BUF9QQUdFX1pFUk8gPSAweDAxMDAwMDAsCiBBRERSX0NPTVBBVF9MQVlPVVQgPSAweDAyMDAw
MDAsCiBSRUFEX0lNUExJRVNfRVhFQyA9IDB4MDQwMDAwMCwKIEFERFJfTElNSVRfMzJCSVQgPSAw
eDA4MDAwMDAsCiBTSE9SVF9JTk9ERSA9IDB4MTAwMDAwMCwKIFdIT0xFX1NFQ09ORFMgPSAweDIw
MDAwMDAsCiBTVElDS1lfVElNRU9VVFMgPSAweDQwMDAwMDAsCiBBRERSX0xJTUlUXzNHQiA9IDB4
ODAwMDAwMCwKfTsKIyA0MiAiLi9pbmNsdWRlL3VhcGkvbGludXgvcGVyc29uYWxpdHkuaCIKZW51
bSB7CiBQRVJfTElOVVggPSAweDAwMDAsCiBQRVJfTElOVVhfMzJCSVQgPSAweDAwMDAgfCBBRERS
X0xJTUlUXzMyQklULAogUEVSX0xJTlVYX0ZEUElDID0gMHgwMDAwIHwgRkRQSUNfRlVOQ1BUUlMs
CiBQRVJfU1ZSNCA9IDB4MDAwMSB8IFNUSUNLWV9USU1FT1VUUyB8IE1NQVBfUEFHRV9aRVJPLAog
UEVSX1NWUjMgPSAweDAwMDIgfCBTVElDS1lfVElNRU9VVFMgfCBTSE9SVF9JTk9ERSwKIFBFUl9T
Q09TVlIzID0gMHgwMDAzIHwgU1RJQ0tZX1RJTUVPVVRTIHwKICAgICAgV0hPTEVfU0VDT05EUyB8
IFNIT1JUX0lOT0RFLAogUEVSX09TUjUgPSAweDAwMDMgfCBTVElDS1lfVElNRU9VVFMgfCBXSE9M
RV9TRUNPTkRTLAogUEVSX1dZU0VWMzg2ID0gMHgwMDA0IHwgU1RJQ0tZX1RJTUVPVVRTIHwgU0hP
UlRfSU5PREUsCiBQRVJfSVNDUjQgPSAweDAwMDUgfCBTVElDS1lfVElNRU9VVFMsCiBQRVJfQlNE
ID0gMHgwMDA2LAogUEVSX1NVTk9TID0gMHgwMDA2IHwgU1RJQ0tZX1RJTUVPVVRTLAogUEVSX1hF
TklYID0gMHgwMDA3IHwgU1RJQ0tZX1RJTUVPVVRTIHwgU0hPUlRfSU5PREUsCiBQRVJfTElOVVgz
MiA9IDB4MDAwOCwKIFBFUl9MSU5VWDMyXzNHQiA9IDB4MDAwOCB8IEFERFJfTElNSVRfM0dCLAog
UEVSX0lSSVgzMiA9IDB4MDAwOSB8IFNUSUNLWV9USU1FT1VUUywKIFBFUl9JUklYTjMyID0gMHgw
MDBhIHwgU1RJQ0tZX1RJTUVPVVRTLAogUEVSX0lSSVg2NCA9IDB4MDAwYiB8IFNUSUNLWV9USU1F
T1VUUywKIFBFUl9SSVNDT1MgPSAweDAwMGMsCiBQRVJfU09MQVJJUyA9IDB4MDAwZCB8IFNUSUNL
WV9USU1FT1VUUywKIFBFUl9VVzcgPSAweDAwMGUgfCBTVElDS1lfVElNRU9VVFMgfCBNTUFQX1BB
R0VfWkVSTywKIFBFUl9PU0Y0ID0gMHgwMDBmLAogUEVSX0hQVVggPSAweDAwMTAsCiBQRVJfTUFT
SyA9IDB4MDBmZiwKfTsKIyA2ICIuL2luY2x1ZGUvbGludXgvcGVyc29uYWxpdHkuaCIgMgojIDMx
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCgoKCiMgMSAiLi9pbmNsdWRl
L2xpbnV4L2Vyci5oIiAxCgoKCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQv
dWFwaS9hc20vZXJybm8uaCIgMQojIDkgIi4vaW5jbHVkZS9saW51eC9lcnIuaCIgMgojIDI0ICIu
L2luY2x1ZGUvbGludXgvZXJyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSkgRVJSX1BUUihsb25nIGVycm9yKQp7CiByZXR1cm4gKHZvaWQgKikgZXJyb3I7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGxvbmcgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIFBUUl9FUlIo
IGNvbnN0IHZvaWQgKnB0cikKewogcmV0dXJuIChsb25nKSBwdHI7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIElTX0VSUiggY29uc3Qgdm9pZCAqcHRyKQp7
CiByZXR1cm4gX19idWlsdGluX2V4cGVjdCghISgodW5zaWduZWQgbG9uZykodm9pZCAqKSgodW5z
aWduZWQgbG9uZylwdHIpID49ICh1bnNpZ25lZCBsb25nKS00MDk1KSwgMCk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIElTX0VSUl9PUl9OVUxMKCBjb25z
dCB2b2lkICpwdHIpCnsKIHJldHVybiBfX2J1aWx0aW5fZXhwZWN0KCEhKCFwdHIpLCAwKSB8fCBf
X2J1aWx0aW5fZXhwZWN0KCEhKCh1bnNpZ25lZCBsb25nKSh2b2lkICopKCh1bnNpZ25lZCBsb25n
KXB0cikgPj0gKHVuc2lnbmVkIGxvbmcpLTQwOTUpLCAwKTsKfQojIDUxICIuL2luY2x1ZGUvbGlu
dXgvZXJyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
RVJSX0NBU1QoIGNvbnN0IHZvaWQgKnB0cikKewoKIHJldHVybiAodm9pZCAqKSBwdHI7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgUFRSX0VSUl9PUl9aRVJP
KCBjb25zdCB2b2lkICpwdHIpCnsKIGlmIChJU19FUlIocHRyKSkKICByZXR1cm4gUFRSX0VSUihw
dHIpOwogZWxzZQogIHJldHVybiAwOwp9CiMgMzUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJv
Y2Vzc29yLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvaXJxZmxhZ3MuaCIgMQojIDE2ICIuL2lu
Y2x1ZGUvbGludXgvaXJxZmxhZ3MuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lycWZs
YWdzLmgiIDEKIyAxOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFmbGFncy5oIgpleHRlcm4g
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25l
ZCBsb25nIG5hdGl2ZV9zYXZlX2ZsKHZvaWQpOwpleHRlcm4gaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIG5hdGl2ZV9zYXZlX2Zs
KHZvaWQpCnsKIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CgoKCgoKCiBhc20gdm9sYXRpbGUoIiMgX19y
YXdfc2F2ZV9mbGFnc1xuXHQiCiAgICAgICAicHVzaGYgOyBwb3AgJTAiCiAgICAgICA6ICI9cm0i
IChmbGFncykKICAgICAgIDoKICAgICAgIDogIm1lbW9yeSIpOwoKIHJldHVybiBmbGFnczsKfQoK
ZXh0ZXJuIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBuYXRpdmVfcmVzdG9yZV9mbCh1bnNpZ25lZCBsb25nIGZsYWdzKTsKZXh0ZXJuIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBuYXRpdmVf
cmVzdG9yZV9mbCh1bnNpZ25lZCBsb25nIGZsYWdzKQp7CiBhc20gdm9sYXRpbGUoInB1c2ggJTAg
OyBwb3BmIgogICAgICAgOgogICAgICAgOiJnIiAoZmxhZ3MpCiAgICAgICA6Im1lbW9yeSIsICJj
YyIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIG5hdGl2ZV9pcnFfZGlzYWJsZSh2b2lkKQp7CiBhc20gdm9sYXRpbGUoImNs
aSI6IDogOiJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBuYXRpdmVfaXJxX2VuYWJsZSh2b2lkKQp7CiBhc20g
dm9sYXRpbGUoInN0aSI6IDogOiJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9u
X18oIi5jcHVpZGxlLnRleHQiKSkpIHZvaWQgbmF0aXZlX3NhZmVfaGFsdCh2b2lkKQp7CiBtZHNf
aWRsZV9jbGVhcl9jcHVfYnVmZmVycygpOwogYXNtIHZvbGF0aWxlKCJzdGk7IGhsdCI6IDogOiJt
ZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5jcHVpZGxlLnRleHQiKSkp
IHZvaWQgbmF0aXZlX2hhbHQodm9pZCkKewogbWRzX2lkbGVfY2xlYXJfY3B1X2J1ZmZlcnMoKTsK
IGFzbSB2b2xhdGlsZSgiaGx0IjogOiA6Im1lbW9yeSIpOwp9CiMgNzcgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vaXJxZmxhZ3MuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHVuc2lnbmVkIGxvbmcgYXJjaF9sb2NhbF9zYXZlX2ZsYWdzKHZvaWQpCnsKIHJldHVybiBu
YXRpdmVfc2F2ZV9mbCgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBhcmNoX2xvY2FsX2lycV9yZXN0b3JlKHVuc2lnbmVkIGxvbmcgZmxhZ3MpCnsKIG5h
dGl2ZV9yZXN0b3JlX2ZsKGZsYWdzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYXJjaF9sb2NhbF9pcnFfZGlzYWJsZSh2b2lkKQp7CiBuYXRpdmVfaXJx
X2Rpc2FibGUoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgYXJjaF9sb2NhbF9pcnFfZW5hYmxlKHZvaWQpCnsKIG5hdGl2ZV9pcnFfZW5hYmxlKCk7Cn0K
CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmNwdWlkbGUudGV4dCIpKSkgdm9pZCBh
cmNoX3NhZmVfaGFsdCh2b2lkKQp7CiBuYXRpdmVfc2FmZV9oYWx0KCk7Cn0KCgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX3NlY3Rpb25fXygiLmNwdWlkbGUudGV4dCIpKSkgdm9pZCBoYWx0KHZvaWQpCnsK
IG5hdGl2ZV9oYWx0KCk7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIGFyY2hfbG9jYWxfaXJxX3NhdmUodm9pZCkKewogdW5zaWduZWQg
bG9uZyBmbGFncyA9IGFyY2hfbG9jYWxfc2F2ZV9mbGFncygpOwogYXJjaF9sb2NhbF9pcnFfZGlz
YWJsZSgpOwogcmV0dXJuIGZsYWdzOwp9CiMgMTYyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ly
cWZsYWdzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCBhcmNoX2lycXNfZGlzYWJsZWRfZmxhZ3ModW5zaWduZWQgbG9uZyBmbGFn
cykKewogcmV0dXJuICEoZmxhZ3MgJiAoKCgxVUwpKSA8PCAoOSkpKTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGFyY2hfaXJx
c19kaXNhYmxlZCh2b2lkKQp7CiB1bnNpZ25lZCBsb25nIGZsYWdzID0gYXJjaF9sb2NhbF9zYXZl
X2ZsYWdzKCk7CgogcmV0dXJuIGFyY2hfaXJxc19kaXNhYmxlZF9mbGFncyhmbGFncyk7Cn0KIyAx
NyAiLi9pbmNsdWRlL2xpbnV4L2lycWZsYWdzLmgiIDIKIyAyNSAiLi9pbmNsdWRlL2xpbnV4L2ly
cWZsYWdzLmgiCiAgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCB0cmFjZV9zb2Z0aXJxc19vbih1bnNpZ25lZCBsb25nIGlwKSB7IH0K
ICBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHRyYWNlX3NvZnRpcnFzX29mZih1bnNpZ25lZCBsb25nIGlwKSB7IH0KICBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxv
Y2tkZXBfaGFyZGlycXNfb24odW5zaWduZWQgbG9uZyBpcCkgeyB9CiAgc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2NrZGVwX2hh
cmRpcnFzX29mZih1bnNpZ25lZCBsb25nIGlwKSB7IH0KIyAzNiAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9wcm9jZXNzb3IuaCIgMgojIDYxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nv
ci5oIgplbnVtIHRsYl9pbmZvcyB7CiBFTlRSSUVTLAogTlJfSU5GTwp9OwoKZXh0ZXJuIHUxNiBf
X2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRhdGEuLnJlYWRfbW9zdGx5IikpKSB0bGJfbGxp
XzRrW05SX0lORk9dOwpleHRlcm4gdTE2IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0
YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGlfMm1bTlJfSU5GT107CmV4dGVybiB1MTYgX19hdHRy
aWJ1dGVfXygoX19zZWN0aW9uX18oIi5kYXRhLi5yZWFkX21vc3RseSIpKSkgdGxiX2xsaV80bVtO
Ul9JTkZPXTsKZXh0ZXJuIHUxNiBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRhdGEuLnJl
YWRfbW9zdGx5IikpKSB0bGJfbGxkXzRrW05SX0lORk9dOwpleHRlcm4gdTE2IF9fYXR0cmlidXRl
X18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGRfMm1bTlJfSU5G
T107CmV4dGVybiB1MTYgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5kYXRhLi5yZWFkX21v
c3RseSIpKSkgdGxiX2xsZF80bVtOUl9JTkZPXTsKZXh0ZXJuIHUxNiBfX2F0dHJpYnV0ZV9fKChf
X3NlY3Rpb25fXygiLmRhdGEuLnJlYWRfbW9zdGx5IikpKSB0bGJfbGxkXzFnW05SX0lORk9dOwoK
CgoKCgoKc3RydWN0IGNwdWluZm9feDg2IHsKIF9fdTggeDg2OwogX191OCB4ODZfdmVuZG9yOwog
X191OCB4ODZfbW9kZWw7CiBfX3U4IHg4Nl9zdGVwcGluZzsKCgogaW50IHg4Nl90bGJzaXplOwoK
CiBfX3UzMiB2bXhfY2FwYWJpbGl0eVszXTsKCiBfX3U4IHg4Nl92aXJ0X2JpdHM7CiBfX3U4IHg4
Nl9waHlzX2JpdHM7CgogX191OCB4ODZfY29yZWlkX2JpdHM7CiBfX3U4IGN1X2lkOwoKIF9fdTMy
IGV4dGVuZGVkX2NwdWlkX2xldmVsOwoKIGludCBjcHVpZF9sZXZlbDsKCgoKCgogdW5pb24gewog
IF9fdTMyIHg4Nl9jYXBhYmlsaXR5WzE5ICsgMV07CiAgdW5zaWduZWQgbG9uZyB4ODZfY2FwYWJp
bGl0eV9hbGlnbm1lbnQ7CiB9OwogY2hhciB4ODZfdmVuZG9yX2lkWzE2XTsKIGNoYXIgeDg2X21v
ZGVsX2lkWzY0XTsKCiB1bnNpZ25lZCBpbnQgeDg2X2NhY2hlX3NpemU7CiBpbnQgeDg2X2NhY2hl
X2FsaWdubWVudDsKCiBpbnQgeDg2X2NhY2hlX21heF9ybWlkOwogaW50IHg4Nl9jYWNoZV9vY2Nf
c2NhbGU7CiBpbnQgeDg2X3Bvd2VyOwogdW5zaWduZWQgbG9uZyBsb29wc19wZXJfamlmZnk7Cgog
dTE2IHg4Nl9tYXhfY29yZXM7CiB1MTYgYXBpY2lkOwogdTE2IGluaXRpYWxfYXBpY2lkOwogdTE2
IHg4Nl9jbGZsdXNoX3NpemU7CgogdTE2IGJvb3RlZF9jb3JlczsKCiB1MTYgcGh5c19wcm9jX2lk
OwoKIHUxNiBsb2dpY2FsX3Byb2NfaWQ7CgogdTE2IGNwdV9jb3JlX2lkOwogdTE2IGNwdV9kaWVf
aWQ7CiB1MTYgbG9naWNhbF9kaWVfaWQ7CgogdTE2IGNwdV9pbmRleDsKIHUzMiBtaWNyb2NvZGU7
CgogdTggeDg2X2NhY2hlX2JpdHM7CiB1bnNpZ25lZCBpbml0aWFsaXplZCA6IDE7Cn0gX19hdHRy
aWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykpOwoKc3RydWN0IGNwdWlkX3JlZ3MgewogdTMy
IGVheCwgZWJ4LCBlY3gsIGVkeDsKfTsKCmVudW0gY3B1aWRfcmVnc19pZHggewogQ1BVSURfRUFY
ID0gMCwKIENQVUlEX0VCWCwKIENQVUlEX0VDWCwKIENQVUlEX0VEWCwKfTsKIyAxNzAgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCmV4dGVybiBzdHJ1Y3QgY3B1aW5mb194ODYg
Ym9vdF9jcHVfZGF0YTsKZXh0ZXJuIHN0cnVjdCBjcHVpbmZvX3g4NiBuZXdfY3B1X2RhdGE7Cgpl
eHRlcm4gX191MzIgY3B1X2NhcHNfY2xlYXJlZFsxOSArIDFdOwpleHRlcm4gX191MzIgY3B1X2Nh
cHNfc2V0WzE5ICsgMV07CgoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5w
ZXJjcHUiICIuLnJlYWRfbW9zdGx5IikpKSBfX3R5cGVvZl9fKHN0cnVjdCBjcHVpbmZvX3g4Nikg
Y3B1X2luZm87CgoKCgoKCmV4dGVybiBjb25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgY3B1aW5m
b19vcDsKCgoKZXh0ZXJuIHZvaWQgY3B1X2RldGVjdChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dW5zaWduZWQgbG9uZyBsb25nIGwxdGZfcGZuX2xpbWl0KHZvaWQpCnsKIHJldHVybiAoKCgoMVVM
TCkpKSA8PCAoYm9vdF9jcHVfZGF0YS54ODZfY2FjaGVfYml0cyAtIDEgLSAxMikpOwp9CgpleHRl
cm4gdm9pZCBlYXJseV9jcHVfaW5pdCh2b2lkKTsKZXh0ZXJuIHZvaWQgaWRlbnRpZnlfYm9vdF9j
cHUodm9pZCk7CmV4dGVybiB2b2lkIGlkZW50aWZ5X3NlY29uZGFyeV9jcHUoc3RydWN0IGNwdWlu
Zm9feDg2ICopOwpleHRlcm4gdm9pZCBwcmludF9jcHVfaW5mbyhzdHJ1Y3QgY3B1aW5mb194ODYg
Kik7CnZvaWQgcHJpbnRfY3B1X21zcihzdHJ1Y3QgY3B1aW5mb194ODYgKik7CgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaGF2
ZV9jcHVpZF9wKHZvaWQpCnsKIHJldHVybiAxOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9jcHVpZCh1bnNpZ25l
ZCBpbnQgKmVheCwgdW5zaWduZWQgaW50ICplYngsCiAgICB1bnNpZ25lZCBpbnQgKmVjeCwgdW5z
aWduZWQgaW50ICplZHgpCnsKCiBhc20gdm9sYXRpbGUoImNwdWlkIgogICAgIDogIj1hIiAoKmVh
eCksCiAgICAgICAiPWIiICgqZWJ4KSwKICAgICAgICI9YyIgKCplY3gpLAogICAgICAgIj1kIiAo
KmVkeCkKICAgICA6ICIwIiAoKmVheCksICIyIiAoKmVjeCkKICAgICA6ICJtZW1vcnkiKTsKfQoj
IDIzNSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IG5h
dGl2ZV9jcHVpZF9lYXgodW5zaWduZWQgaW50IG9wKSB7IHVuc2lnbmVkIGludCBlYXggPSBvcCwg
ZWJ4LCBlY3ggPSAwLCBlZHg7IG5hdGl2ZV9jcHVpZCgmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsg
cmV0dXJuIGVheDsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgbmF0aXZlX2NwdWlkX2VieCh1bnNpZ25lZCBpbnQg
b3ApIHsgdW5zaWduZWQgaW50IGVheCA9IG9wLCBlYngsIGVjeCA9IDAsIGVkeDsgbmF0aXZlX2Nw
dWlkKCZlYXgsICZlYngsICZlY3gsICZlZHgpOyByZXR1cm4gZWJ4OyB9CnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBu
YXRpdmVfY3B1aWRfZWN4KHVuc2lnbmVkIGludCBvcCkgeyB1bnNpZ25lZCBpbnQgZWF4ID0gb3As
IGVieCwgZWN4ID0gMCwgZWR4OyBuYXRpdmVfY3B1aWQoJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7
IHJldHVybiBlY3g7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IG5hdGl2ZV9jcHVpZF9lZHgodW5zaWduZWQgaW50
IG9wKSB7IHVuc2lnbmVkIGludCBlYXggPSBvcCwgZWJ4LCBlY3ggPSAwLCBlZHg7IG5hdGl2ZV9j
cHVpZCgmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsgcmV0dXJuIGVkeDsgfQoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQg
bG9uZyByZWFkX2NyM19wYSh2b2lkKQp7CiByZXR1cm4gX19yZWFkX2NyMygpICYgKDB4N0ZGRkZG
RkZGRkZGRjAwMHVsbCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgbmF0aXZlX3JlYWRfY3IzX3BhKHZvaWQp
CnsKIHJldHVybiBfX25hdGl2ZV9yZWFkX2NyMygpICYgKDB4N0ZGRkZGRkZGRkZGRjAwMHVsbCk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgbG9hZF9jcjMocGdkX3QgKnBnZGlyKQp7CiB3cml0ZV9jcjMoKF9fcGh5c19hZGRy
X25vZGVidWcoKHVuc2lnbmVkIGxvbmcpKHBnZGlyKSkgfCAwVUxMKSk7Cn0KIyAzMTIgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCnN0cnVjdCB4ODZfaHdfdHNzIHsKIHUzMiBy
ZXNlcnZlZDE7CiB1NjQgc3AwOwoKCgoKCiB1NjQgc3AxOwoKCgoKCgogdTY0IHNwMjsKCiB1NjQg
cmVzZXJ2ZWQyOwogdTY0IGlzdFs3XTsKIHUzMiByZXNlcnZlZDM7CiB1MzIgcmVzZXJ2ZWQ0Owog
dTE2IHJlc2VydmVkNTsKIHUxNiBpb19iaXRtYXBfYmFzZTsKCn0gX19hdHRyaWJ1dGVfXygocGFj
a2VkKSk7CiMgMzcwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgpzdHJ1Y3Qg
ZW50cnlfc3RhY2sgewogdW5zaWduZWQgbG9uZyB3b3Jkc1s2NF07Cn07CgpzdHJ1Y3QgZW50cnlf
c3RhY2tfcGFnZSB7CiBzdHJ1Y3QgZW50cnlfc3RhY2sgc3RhY2s7Cn0gX19hdHRyaWJ1dGVfXygo
X19hbGlnbmVkX18oKCgxVUwpIDw8IDEyKSkpKTsKCgoKCnN0cnVjdCB4ODZfaW9fYml0bWFwIHsK
CiB1NjQgcHJldl9zZXF1ZW5jZTsKIyAzOTIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vz
c29yLmgiCiB1bnNpZ25lZCBpbnQgcHJldl9tYXg7CgoKCgoKCgogdW5zaWduZWQgbG9uZyBiaXRt
YXBbKCg2NTUzNiAvIDgpIC8gc2l6ZW9mKGxvbmcpKSArIDFdOwoKCgoKCiB1bnNpZ25lZCBsb25n
IG1hcGFsbFsoKDY1NTM2IC8gOCkgLyBzaXplb2YobG9uZykpICsgMV07Cn07CgpzdHJ1Y3QgdHNz
X3N0cnVjdCB7CgoKCgoKIHN0cnVjdCB4ODZfaHdfdHNzIHg4Nl90c3M7Cgogc3RydWN0IHg4Nl9p
b19iaXRtYXAgaW9fYml0bWFwOwp9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgoMVVMKSA8
PCAxMikpKSk7CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIg
Ii4ucGFnZV9hbGlnbmVkIikpKSBfX3R5cGVvZl9fKHN0cnVjdCB0c3Nfc3RydWN0KSBjcHVfdHNz
X3J3IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgoMVVMKSA8PCAxMikpKSk7CgoKc3RydWN0
IGlycV9zdGFjayB7CiBjaGFyIHN0YWNrWygoKDFVTCkgPDwgMTIpIDw8ICgyICsgMCkpXTsKfSBf
X2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoKCgxVUwpIDw8IDEyKSA8PCAoMiArIDApKSkpKTsK
CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiIikpKSBfX3R5
cGVvZl9fKHN0cnVjdCBpcnFfc3RhY2sgKikgaGFyZGlycV9zdGFja19wdHI7CiMgNDM3ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgpzdHJ1Y3QgZml4ZWRfcGVyY3B1X2RhdGEg
ewoKCgoKCiBjaGFyIGdzX2Jhc2VbNDBdOwogdW5zaWduZWQgbG9uZyBzdGFja19jYW5hcnk7Cn07
CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4uZmlyc3Qi
KSkpIF9fdHlwZW9mX18oc3RydWN0IGZpeGVkX3BlcmNwdV9kYXRhKSBmaXhlZF9wZXJjcHVfZGF0
YSBfX2F0dHJpYnV0ZV9fKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSk7CmV4dGVybiB0eXBlb2Yo
Zml4ZWRfcGVyY3B1X2RhdGEpIGluaXRfcGVyX2NwdV9fZml4ZWRfcGVyY3B1X2RhdGE7CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNp
Z25lZCBsb25nIGNwdV9rZXJuZWxtb2RlX2dzX2Jhc2UoaW50IGNwdSkKewogcmV0dXJuICh1bnNp
Z25lZCBsb25nKSgqKHsgZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgm
KGZpeGVkX3BlcmNwdV9kYXRhLmdzX2Jhc2UpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3Zw
cF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBfX2FzbV9fICgi
IiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihmaXhlZF9wZXJjcHVfZGF0YS5nc19i
YXNlKSkpKSAqKSgoJihmaXhlZF9wZXJjcHVfZGF0YS5nc19iYXNlKSkpKSk7ICh0eXBlb2YoKHR5
cGVvZigqKCgmKGZpeGVkX3BlcmNwdV9kYXRhLmdzX2Jhc2UpKSkpICopKCgmKGZpeGVkX3BlcmNw
dV9kYXRhLmdzX2Jhc2UpKSkpKSAoX19wdHIgKyAoKChfX3Blcl9jcHVfb2Zmc2V0WyhjcHUpXSkp
KSk7IH0pOyB9KSk7Cn0KCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVy
Y3B1IiAiIikpKSBfX3R5cGVvZl9fKHVuc2lnbmVkIGludCkgaXJxX2NvdW50OwpleHRlcm4gdm9p
ZCBpZ25vcmVfc3lzcmV0KHZvaWQpOwoKCgp2b2lkIHNhdmVfZnNnc19mb3Jfa3ZtKHZvaWQpOwoj
IDQ4MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKZXh0ZXJuIHVuc2lnbmVk
IGludCBmcHVfa2VybmVsX3hzdGF0ZV9zaXplOwpleHRlcm4gdW5zaWduZWQgaW50IGZwdV91c2Vy
X3hzdGF0ZV9zaXplOwoKc3RydWN0IHBlcmZfZXZlbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiB1bnNp
Z25lZCBsb25nIHNlZzsKfSBtbV9zZWdtZW50X3Q7CgpzdHJ1Y3QgdGhyZWFkX3N0cnVjdCB7Cgog
c3RydWN0IGRlc2Nfc3RydWN0IHRsc19hcnJheVszXTsKCgoKIHVuc2lnbmVkIGxvbmcgc3A7CgoK
CiB1bnNpZ25lZCBzaG9ydCBlczsKIHVuc2lnbmVkIHNob3J0IGRzOwogdW5zaWduZWQgc2hvcnQg
ZnNpbmRleDsKIHVuc2lnbmVkIHNob3J0IGdzaW5kZXg7CgoKCiB1bnNpZ25lZCBsb25nIGZzYmFz
ZTsKIHVuc2lnbmVkIGxvbmcgZ3NiYXNlOwojIDUxOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCIKIHN0cnVjdCBwZXJmX2V2ZW50ICpwdHJhY2VfYnBzWzRdOwoKIHVuc2lnbmVk
IGxvbmcgZGVidWdyZWc2OwoKIHVuc2lnbmVkIGxvbmcgcHRyYWNlX2RyNzsKCiB1bnNpZ25lZCBs
b25nIGNyMjsKIHVuc2lnbmVkIGxvbmcgdHJhcF9ucjsKIHVuc2lnbmVkIGxvbmcgZXJyb3JfY29k
ZTsKCgoKCgogc3RydWN0IGlvX2JpdG1hcCAqaW9fYml0bWFwOwoKCgoKCgogdW5zaWduZWQgbG9u
ZyBpb3BsX2VtdWw7CgogbW1fc2VnbWVudF90IGFkZHJfbGltaXQ7CgogdW5zaWduZWQgaW50IHNp
Z19vbl91YWNjZXNzX2VycjoxOwogdW5zaWduZWQgaW50IHVhY2Nlc3NfZXJyOjE7CgoKIHN0cnVj
dCBmcHUgZnB1OwoKCgoKfTsKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hfdGhyZWFkX3N0cnVjdF93aGl0ZWxpc3QodW5z
aWduZWQgbG9uZyAqb2Zmc2V0LAogICAgICB1bnNpZ25lZCBsb25nICpzaXplKQp7CiAqb2Zmc2V0
ID0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCB0aHJlYWRfc3RydWN0LCBmcHUuc3RhdGUpOwog
KnNpemUgPSBmcHVfa2VybmVsX3hzdGF0ZV9zaXplOwp9CiMgNTcxICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3Byb2Nlc3Nvci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCm5hdGl2ZV9sb2FkX3NwMCh1bnNpZ25lZCBsb25nIHNw
MCkKewogZG8geyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1
X3Rzc19ydy54ODZfdHNzLnNwMCkpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3Zlcmlm
eTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIHsg
Y2FzZSAxOiBkbyB7IHR5cGVkZWYgdHlwZW9mKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgcHRv
X1RfXzsgaWYgKDApIHsgcHRvX1RfXyBwdG9fdG1wX187IHB0b190bXBfXyA9IChzcDApOyAodm9p
ZClwdG9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSkg
eyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInFpIiAoKHB0b19UX18pKHNwMCkp
KTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAlMSwiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicmkiICgocHRvX1Rf
Xykoc3AwKSkpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICUxLCIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyaSIg
KChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEg
JTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkp
IDogInJlIiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9z
aXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgMjogZG8geyB0eXBlZGVmIHR5cGVvZigo
Y3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIHB0b19UX187IGlmICgwKSB7IHB0b19UX18gcHRvX3Rt
cF9fOyBwdG9fdG1wX18gPSAoc3AwKTsgKHZvaWQpcHRvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9m
KChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3Yi
ICJiICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5z
cDApKSA6ICJxaSIgKChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGls
ZSAoIm1vdiIgIncgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54
ODZfdHNzLnNwMCkpIDogInJpIiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgNDogYXNt
IHZvbGF0aWxlICgibW92IiAibCAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVf
dHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicmkiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgY2Fz
ZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyZSIgKChwdG9fVF9fKShzcDApKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBj
YXNlIDQ6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSBwdG9f
VF9fOyBpZiAoMCkgeyBwdG9fVF9fIHB0b190bXBfXzsgcHRvX3RtcF9fID0gKHNwMCk7ICh2b2lk
KXB0b190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpKSB7
IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicWkiICgocHRvX1RfXykoc3AwKSkp
OyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICUxLCIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyaSIgKChwdG9fVF9f
KShzcDApKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgJTEsIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJpIiAo
KHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAl
MSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkg
OiAicmUiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3Np
emUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA4OiBkbyB7IHR5cGVkZWYgdHlwZW9mKChj
cHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgcHRvX1RfXzsgaWYgKDApIHsgcHRvX1RfXyBwdG9fdG1w
X187IHB0b190bXBfXyA9IChzcDApOyAodm9pZClwdG9fdG1wX187IH0gc3dpdGNoIChzaXplb2Yo
KGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
ImIgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNw
MCkpIDogInFpIiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxl
ICgibW92IiAidyAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4
Nl90c3Muc3AwKSkgOiAicmkiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgY2FzZSA0OiBhc20g
dm9sYXRpbGUgKCJtb3YiICJsICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNwdV90
c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyaSIgKChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBjYXNl
IDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJlIiAoKHB0b19UX18pKHNwMCkpKTsgYnJl
YWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0ZXIoKTticmVhazsgfSB9IHdoaWxlICgwKTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBuYXRpdmVfc3dhcGdzKHZvaWQpCnsKCiBhc20gdm9sYXRpbGUoInN3YXBncyIgOjo6
ICJtZW1vcnkiKTsKCn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgY3VycmVudF90b3Bfb2Zfc3RhY2sodm9pZCkK
ewoKCgoKCiByZXR1cm4gKHsgdHlwZW9mKGNwdV90c3NfcncueDg2X3Rzcy5zcDEpIHBmb19yZXRf
Xzsgc3dpdGNoIChzaXplb2YoY3B1X3Rzc19ydy54ODZfdHNzLnNwMSkpIHsgY2FzZSAxOiBhc20o
Im1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDog
InAiICgmKGNwdV90c3NfcncueDg2X3Rzcy5zcDEpKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSgibW92
IiAidyAiIiUlIiJncyIiOiIgIiUiICJQMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAicCIg
KCYoY3B1X3Rzc19ydy54ODZfdHNzLnNwMSkpKTsgYnJlYWs7IGNhc2UgNDogYXNtKCJtb3YiICJs
ICIiJSUiImdzIiI6IiAiJSIgIlAxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJwIiAoJihj
cHVfdHNzX3J3Lng4Nl90c3Muc3AxKSkpOyBicmVhazsgY2FzZSA4OiBhc20oIm1vdiIgInEgIiIl
JSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogInAiICgmKGNwdV90
c3NfcncueDg2X3Rzcy5zcDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IHBmb19yZXRfXzsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgb25fdGhyZWFkX3N0YWNrKHZvaWQpCnsKIHJldHVy
biAodW5zaWduZWQgbG9uZykoY3VycmVudF90b3Bfb2Zfc3RhY2soKSAtCiAgICAgICAgICBjdXJy
ZW50X3N0YWNrX3BvaW50ZXIpIDwgKCgoMVVMKSA8PCAxMikgPDwgKDIgKyAwKSk7Cn0KCgoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBsb2FkX3NwMCh1bnNpZ25lZCBsb25nIHNwMCkKewogbmF0aXZlX2xvYWRfc3AwKHNwMCk7
Cn0KCgoKCmV4dGVybiB2b2lkIHJlbGVhc2VfdGhyZWFkKHN0cnVjdCB0YXNrX3N0cnVjdCAqKTsK
CnVuc2lnbmVkIGxvbmcgZ2V0X3djaGFuKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CgoKCgoKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgY3B1aWQodW5zaWduZWQgaW50IG9wLAogICAgdW5zaWduZWQgaW50ICplYXgsIHVuc2lnbmVk
IGludCAqZWJ4LAogICAgdW5zaWduZWQgaW50ICplY3gsIHVuc2lnbmVkIGludCAqZWR4KQp7CiAq
ZWF4ID0gb3A7CiAqZWN4ID0gMDsKIG5hdGl2ZV9jcHVpZChlYXgsIGVieCwgZWN4LCBlZHgpOwp9
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBjcHVpZF9jb3VudCh1bnNpZ25lZCBpbnQgb3AsIGludCBjb3VudCwKICAgICAgICAg
IHVuc2lnbmVkIGludCAqZWF4LCB1bnNpZ25lZCBpbnQgKmVieCwKICAgICAgICAgIHVuc2lnbmVk
IGludCAqZWN4LCB1bnNpZ25lZCBpbnQgKmVkeCkKewogKmVheCA9IG9wOwogKmVjeCA9IGNvdW50
OwogbmF0aXZlX2NwdWlkKGVheCwgZWJ4LCBlY3gsIGVkeCk7Cn0KCgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBj
cHVpZF9lYXgodW5zaWduZWQgaW50IG9wKQp7CiB1bnNpZ25lZCBpbnQgZWF4LCBlYngsIGVjeCwg
ZWR4OwoKIGNwdWlkKG9wLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKCiByZXR1cm4gZWF4Owp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBpbnQgY3B1aWRfZWJ4KHVuc2lnbmVkIGludCBvcCkKewogdW5zaWduZWQgaW50
IGVheCwgZWJ4LCBlY3gsIGVkeDsKCiBjcHVpZChvcCwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7
CgogcmV0dXJuIGVieDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGNwdWlkX2VjeCh1bnNpZ25lZCBpbnQgb3Ap
CnsKIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4LCBlZHg7CgogY3B1aWQob3AsICZlYXgsICZl
YngsICZlY3gsICZlZHgpOwoKIHJldHVybiBlY3g7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBjcHVpZF9lZHgo
dW5zaWduZWQgaW50IG9wKQp7CiB1bnNpZ25lZCBpbnQgZWF4LCBlYngsIGVjeCwgZWR4OwoKIGNw
dWlkKG9wLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKCiByZXR1cm4gZWR4Owp9CgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHJlcF9ub3Aodm9pZCkKewogYXNtIHZv
bGF0aWxlKCJyZXA7IG5vcCIgOjo6ICJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIGNwdV9yZWxheCh2b2lkKQp7CiByZXBfbm9wKCk7Cn0KIyA3MDUg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc3luY19jb3JlKHZvaWQp
CnsKIyA3MzggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCiB1bnNpZ25lZCBp
bnQgdG1wOwoKIGFzbSB2b2xhdGlsZSAoCiAgIjk4NzogXG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlz
Y2FyZC51bndpbmRfaGludHNcblx0IiAiLmxvbmcgOTg3YiAtIC5cblx0IiAiLnNob3J0ICIgIjAi
ICJcblx0IiAiLmJ5dGUgIiAiMCIgIlxuXHQiICIuYnl0ZSAiICIzIiAiXG5cdCIgIi5ieXRlICIg
IjAiICJcblx0IiAiLmJhbGlnbiA0IFxuXHQiICIucG9wc2VjdGlvblxuXHQiCiAgIm1vdiAlJXNz
LCAlMFxuXHQiCiAgInB1c2hxICVxMFxuXHQiCiAgInB1c2hxICUlcnNwXG5cdCIKICAiYWRkcSAk
OCwgKCUlcnNwKVxuXHQiCiAgInB1c2hmcVxuXHQiCiAgIm1vdiAlJWNzLCAlMFxuXHQiCiAgInB1
c2hxICVxMFxuXHQiCiAgInB1c2hxICQxZlxuXHQiCiAgImlyZXRxXG5cdCIKICAiOTg3OiBcblx0
IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVud2luZF9oaW50c1xuXHQiICIubG9uZyA5ODdiIC0g
LlxuXHQiICIuc2hvcnQgIiAiMCIgIlxuXHQiICIuYnl0ZSAiICIwIiAiXG5cdCIgIi5ieXRlICIg
IjQiICJcblx0IiAiLmJ5dGUgIiAiMCIgIlxuXHQiICIuYmFsaWduIDQgXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIKICAiMToiCiAgOiAiPSZyIiAodG1wKSwgIityIiAoY3VycmVudF9zdGFja19wb2lu
dGVyKSA6IDogImNjIiwgIm1lbW9yeSIpOwoKfQoKZXh0ZXJuIHZvaWQgc2VsZWN0X2lkbGVfcm91
dGluZShjb25zdCBzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwpleHRlcm4gdm9pZCBhbWRfZTQwMF9j
MWVfYXBpY19zZXR1cCh2b2lkKTsKCmV4dGVybiB1bnNpZ25lZCBsb25nIGJvb3Rfb3B0aW9uX2lk
bGVfb3ZlcnJpZGU7CgplbnVtIGlkbGVfYm9vdF9vdmVycmlkZSB7SURMRV9OT19PVkVSUklERT0w
LCBJRExFX0hBTFQsIElETEVfTk9NV0FJVCwKICAgIElETEVfUE9MTH07CgpleHRlcm4gdm9pZCBl
bmFibGVfc2VwX2NwdSh2b2lkKTsKZXh0ZXJuIGludCBzeXNlbnRlcl9zZXR1cCh2b2lkKTsKCgoK
ZXh0ZXJuIHN0cnVjdCBkZXNjX3B0ciBlYXJseV9nZHRfZGVzY3I7CgpleHRlcm4gdm9pZCBzd2l0
Y2hfdG9fbmV3X2dkdChpbnQpOwpleHRlcm4gdm9pZCBsb2FkX2RpcmVjdF9nZHQoaW50KTsKZXh0
ZXJuIHZvaWQgbG9hZF9maXhtYXBfZ2R0KGludCk7CmV4dGVybiB2b2lkIGxvYWRfcGVyY3B1X3Nl
Z21lbnQoaW50KTsKZXh0ZXJuIHZvaWQgY3B1X2luaXQodm9pZCk7CmV4dGVybiB2b2lkIGNyNF9p
bml0KHZvaWQpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBnZXRfZGVidWdjdGxtc3Iodm9pZCkKewogdW5zaWdu
ZWQgbG9uZyBkZWJ1Z2N0bG1zciA9IDA7CgoKCgoKICgoZGVidWdjdGxtc3IpID0gbmF0aXZlX3Jl
YWRfbXNyKCgweDAwMDAwMWQ5KSkpOwoKIHJldHVybiBkZWJ1Z2N0bG1zcjsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB1cGRh
dGVfZGVidWdjdGxtc3IodW5zaWduZWQgbG9uZyBkZWJ1Z2N0bG1zcikKewoKCgoKIHdybXNybCgw
eDAwMDAwMWQ5LCBkZWJ1Z2N0bG1zcik7Cn0KCmV4dGVybiB2b2lkIHNldF90YXNrX2Jsb2Nrc3Rl
cChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGJvb2wgb24pOwoKCmV4dGVybiBpbnQgYm9vdGxv
YWRlcl90eXBlOwpleHRlcm4gaW50IGJvb3Rsb2FkZXJfdmVyc2lvbjsKCmV4dGVybiBjaGFyIGln
bm9yZV9mcHVfaXJxOwojIDgyNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBwcmVmZXRjaChjb25zdCB2b2lkICp4KQp7CiBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIj
IEFMVDogb2xkbnN0clxuIiAiNjYxOlxuXHQiICJwcmVmZXRjaHQwICVQMSIgIlxuNjYyOlxuIiAi
IyBBTFQ6IHBhZGRpbmdcbiIgIi5za2lwIC0oKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIp
LSgiICI2NjJiLTY2MWIiICIpKSA+IDApICogIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYi
ICIpLSgiICI2NjJiLTY2MWIiICIpKSwweDkwXG4iICI2NjMiICI6XG4iICIucHVzaHNlY3Rpb24g
LmFsdGluc3RydWN0aW9ucyxcImFcIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcgIiAi
NjY0IiIxIiJmIC0gLlxuIiAiIC53b3JkICIgIiggMCozMisyNSkiICJcbiIgIiAuYnl0ZSAiICI2
NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIlxuIiAi
IC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0aW9u
IC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQgIiAi
MSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgInByZWZldGNobnRhICVQMSIgIlxuIiAiNjY1IiIxIiAi
OlxuIiAiLnBvcHNlY3Rpb25cbiIgOiA6ICJpIiAoMCksICJtIiAoKihjb25zdCBjaGFyICopeCkp
CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcHJlZmV0Y2h3KGNv
bnN0IHZvaWQgKngpCnsKIGFzbSBfX2lubGluZSB2b2xhdGlsZSAoIiMgQUxUOiBvbGRuc3RyXG4i
ICI2NjE6XG5cdCIgInByZWZldGNodDAgJVAxIiAiXG42NjI6XG4iICIjIEFMVDogcGFkZGluZ1xu
IiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYxYiIg
IikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYx
YiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25z
LFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQiIjEiImYgLSAuXG4i
ICIgLndvcmQgIiAiKCA2KjMyKyA4KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjFiIiAiXG4i
ICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJi
LTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RyX3JlcGxh
Y2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIxIiAiXG4iICI2NjQiIjEi
Ijpcblx0IiAicHJlZmV0Y2h3ICVQMSIgIlxuIiAiNjY1IiIxIiAiOlxuIiAiLnBvcHNlY3Rpb25c
biIgOiA6ICJpIiAoMCksICJtIiAoKihjb25zdCBjaGFyICopeCkpCgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNwaW5fbG9ja19wcmVmZXRjaChjb25zdCB2b2lkICp4KQp7
CiBwcmVmZXRjaHcoeCk7Cn0KIyA5MjUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29y
LmgiCmV4dGVybiB1bnNpZ25lZCBsb25nIEtTVEtfRVNQKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFz
ayk7CgoKCmV4dGVybiB2b2lkIHN0YXJ0X3RocmVhZChzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5z
aWduZWQgbG9uZyBuZXdfaXAsCiAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV3X3NwKTsKIyA5
NDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCmV4dGVybiBpbnQgZ2V0X3Rz
Y19tb2RlKHVuc2lnbmVkIGxvbmcgYWRyKTsKZXh0ZXJuIGludCBzZXRfdHNjX21vZGUodW5zaWdu
ZWQgaW50IHZhbCk7CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNw
dSIgIiIpKSkgX190eXBlb2ZfXyh1NjQpIG1zcl9taXNjX2ZlYXR1cmVzX3NoYWRvdzsKCgpleHRl
cm4gdTE2IGFtZF9nZXRfbmJfaWQoaW50IGNwdSk7CmV4dGVybiB1MzIgYW1kX2dldF9ub2Rlc19w
ZXJfc29ja2V0KHZvaWQpOwoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVpbnQzMl90IGh5cGVydmlzb3JfY3B1aWRfYmFzZShjb25z
dCBjaGFyICpzaWcsIHVpbnQzMl90IGxlYXZlcykKewogdWludDMyX3QgYmFzZSwgZWF4LCBzaWdu
YXR1cmVbM107CgogZm9yIChiYXNlID0gMHg0MDAwMDAwMDsgYmFzZSA8IDB4NDAwMTAwMDA7IGJh
c2UgKz0gMHgxMDApIHsKICBjcHVpZChiYXNlLCAmZWF4LCAmc2lnbmF0dXJlWzBdLCAmc2lnbmF0
dXJlWzFdLCAmc2lnbmF0dXJlWzJdKTsKCiAgaWYgKCFtZW1jbXAoc2lnLCBzaWduYXR1cmUsIDEy
KSAmJgogICAgICAobGVhdmVzID09IDAgfHwgKChlYXggLSBiYXNlKSA+PSBsZWF2ZXMpKSkKICAg
cmV0dXJuIGJhc2U7CiB9CgogcmV0dXJuIDA7Cn0KCmV4dGVybiB1bnNpZ25lZCBsb25nIGFyY2hf
YWxpZ25fc3RhY2sodW5zaWduZWQgbG9uZyBzcCk7CnZvaWQgZnJlZV9pbml0X3BhZ2VzKGNvbnN0
IGNoYXIgKndoYXQsIHVuc2lnbmVkIGxvbmcgYmVnaW4sIHVuc2lnbmVkIGxvbmcgZW5kKTsKZXh0
ZXJuIHZvaWQgZnJlZV9rZXJuZWxfaW1hZ2VfcGFnZXMoY29uc3QgY2hhciAqd2hhdCwgdm9pZCAq
YmVnaW4sIHZvaWQgKmVuZCk7Cgp2b2lkIGRlZmF1bHRfaWRsZSh2b2lkKTsKCgoKCgoKdm9pZCBz
dG9wX3RoaXNfY3B1KHZvaWQgKmR1bW15KTsKdm9pZCBtaWNyb2NvZGVfY2hlY2sodm9pZCk7Cgpl
bnVtIGwxdGZfbWl0aWdhdGlvbnMgewogTDFURl9NSVRJR0FUSU9OX09GRiwKIEwxVEZfTUlUSUdB
VElPTl9GTFVTSF9OT1dBUk4sCiBMMVRGX01JVElHQVRJT05fRkxVU0gsCiBMMVRGX01JVElHQVRJ
T05fRkxVU0hfTk9TTVQsCiBMMVRGX01JVElHQVRJT05fRlVMTCwKIEwxVEZfTUlUSUdBVElPTl9G
VUxMX0ZPUkNFCn07CgpleHRlcm4gZW51bSBsMXRmX21pdGlnYXRpb25zIGwxdGZfbWl0aWdhdGlv
bjsKCmVudW0gbWRzX21pdGlnYXRpb25zIHsKIE1EU19NSVRJR0FUSU9OX09GRiwKIE1EU19NSVRJ
R0FUSU9OX0ZVTEwsCiBNRFNfTUlUSUdBVElPTl9WTVdFUlYsCn07CiMgNiAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgiIDIKCgoKCgoKZW51bSBjcHVpZF9sZWFmcwp7CiBDUFVJ
RF8xX0VEWCA9IDAsCiBDUFVJRF84MDAwXzAwMDFfRURYLAogQ1BVSURfODA4Nl8wMDAxX0VEWCwK
IENQVUlEX0xOWF8xLAogQ1BVSURfMV9FQ1gsCiBDUFVJRF9DMDAwXzAwMDFfRURYLAogQ1BVSURf
ODAwMF8wMDAxX0VDWCwKIENQVUlEX0xOWF8yLAogQ1BVSURfTE5YXzMsCiBDUFVJRF83XzBfRUJY
LAogQ1BVSURfRF8xX0VBWCwKIENQVUlEX0xOWF80LAogQ1BVSURfN18xX0VBWCwKIENQVUlEXzgw
MDBfMDAwOF9FQlgsCiBDUFVJRF82X0VBWCwKIENQVUlEXzgwMDBfMDAwQV9FRFgsCiBDUFVJRF83
X0VDWCwKIENQVUlEXzgwMDBfMDAwN19FQlgsCiBDUFVJRF83X0VEWCwKfTsKCgpleHRlcm4gY29u
c3QgY2hhciAqIGNvbnN0IHg4Nl9jYXBfZmxhZ3NbMTkqMzJdOwpleHRlcm4gY29uc3QgY2hhciAq
IGNvbnN0IHg4Nl9wb3dlcl9mbGFnc1szMl07CiMgNDkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Y3B1ZmVhdHVyZS5oIgpleHRlcm4gY29uc3QgY2hhciAqIGNvbnN0IHg4Nl9idWdfZmxhZ3NbMSoz
Ml07CiMgMTQxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCIKZXh0ZXJuIHZv
aWQgc2V0dXBfY2xlYXJfY3B1X2NhcCh1bnNpZ25lZCBpbnQgYml0KTsKZXh0ZXJuIHZvaWQgY2xl
YXJfY3B1X2NhcChzdHJ1Y3QgY3B1aW5mb194ODYgKmMsIHVuc2lnbmVkIGludCBiaXQpOwojIDE3
MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgYm9vbCBfc3RhdGljX2NwdV9oYXModTE2IGJpdCkKewogZG8geyBh
c20gZ290bygiMTogam1wIDZmXG4iICIyOlxuIiAiLnNraXAgLSgoKDVmLTRmKSAtICgyYi0xYikp
ID4gMCkgKiAiICIoKDVmLTRmKSAtICgyYi0xYikpLDB4OTBcbiIgIjM6XG4iICIuc2VjdGlvbiAu
YWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgMWIgLSAuXG4iICIgLmxvbmcgNGYgLSAu
XG4iICIgLndvcmQgJVBbYWx3YXlzXVxuIiAiIC5ieXRlIDNiIC0gMWJcbiIgIiAuYnl0ZSA1ZiAt
IDRmXG4iICIgLmJ5dGUgM2IgLSAyYlxuIiAiLnByZXZpb3VzXG4iICIuc2VjdGlvbiAuYWx0aW5z
dHJfcmVwbGFjZW1lbnQsXCJheFwiXG4iICI0OiBqbXAgJWxbdF9ub11cbiIgIjU6XG4iICIucHJl
dmlvdXNcbiIgIi5zZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9uZyAxYiAt
IC5cbiIgIiAubG9uZyAwXG4iICIgLndvcmQgJVBbZmVhdHVyZV1cbiIgIiAuYnl0ZSAzYiAtIDFi
XG4iICIgLmJ5dGUgMFxuIiAiIC5ieXRlIDBcbiIgIi5wcmV2aW91c1xuIiAiLnNlY3Rpb24gLmFs
dGluc3RyX2F1eCxcImF4XCJcbiIgIjY6XG4iICIgdGVzdGIgJVtiaXRudW1dLCVbY2FwX2J5dGVd
XG4iICIgam56ICVsW3RfeWVzXVxuIiAiIGptcCAlbFt0X25vXVxuIiAiLnByZXZpb3VzXG4iIDog
OiBbZmVhdHVyZV0gImkiIChiaXQpLCBbYWx3YXlzXSAiaSIgKCggMyozMisyMSkpLCBbYml0bnVt
XSAiaSIgKDEgPDwgKGJpdCAmIDcpKSwgW2NhcF9ieXRlXSAibSIgKCgoY29uc3QgY2hhciAqKWJv
b3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHkpW2JpdCA+PiAzXSkgOiA6IHRfeWVzLCB0X25vKTsg
YXNtICgiIik7IH0gd2hpbGUgKDApCiMgMjEwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZl
YXR1cmUuaCIKICAgICAgICAgICAgICAgICAgIDsKdF95ZXM6CiByZXR1cm4gdHJ1ZTsKdF9ubzoK
IHJldHVybiBmYWxzZTsKfQojIDU0ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZv
LmgiIDIKCgpzdHJ1Y3QgdGhyZWFkX2luZm8gewogdW5zaWduZWQgbG9uZyBmbGFnczsKIHUzMiBz
dGF0dXM7Cn07CiMgMTg2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBhcmNoX3dpdGhpbl9zdGFja19mcmFtZXMoY29uc3Qgdm9pZCAqIGNvbnN0IHN0YWNrLAogICAg
ICAgIGNvbnN0IHZvaWQgKiBjb25zdCBzdGFja2VuZCwKICAgICAgICBjb25zdCB2b2lkICpvYmos
IHVuc2lnbmVkIGxvbmcgbGVuKQp7CiMgMjE4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVh
ZF9pbmZvLmgiCiByZXR1cm4gTk9UX1NUQUNLOwoKfQojIDI0MiAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS90aHJlYWRfaW5mby5oIgpleHRlcm4gdm9pZCBhcmNoX3Rhc2tfY2FjaGVfaW5pdCh2b2lk
KTsKZXh0ZXJuIGludCBhcmNoX2R1cF90YXNrX3N0cnVjdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmRz
dCwgc3RydWN0IHRhc2tfc3RydWN0ICpzcmMpOwpleHRlcm4gdm9pZCBhcmNoX3JlbGVhc2VfdGFz
a19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spOwpleHRlcm4gdm9pZCBhcmNoX3NldHVw
X25ld19leGVjKHZvaWQpOwojIDM5ICIuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIgMgoj
IDUzICIuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXRfdGlfdGhyZWFkX2Zs
YWcoc3RydWN0IHRocmVhZF9pbmZvICp0aSwgaW50IGZsYWcpCnsKIHNldF9iaXQoZmxhZywgKHVu
c2lnbmVkIGxvbmcgKikmdGktPmZsYWdzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl90aV90aHJlYWRfZmxhZyhz
dHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgZmxhZykKewogY2xlYXJfYml0KGZsYWcsICh1bnNp
Z25lZCBsb25nICopJnRpLT5mbGFncyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdXBkYXRlX3RpX3RocmVhZF9mbGFnKHN0
cnVjdCB0aHJlYWRfaW5mbyAqdGksIGludCBmbGFnLAogICAgICBib29sIHZhbHVlKQp7CiBpZiAo
dmFsdWUpCiAgc2V0X3RpX3RocmVhZF9mbGFnKHRpLCBmbGFnKTsKIGVsc2UKICBjbGVhcl90aV90
aHJlYWRfZmxhZyh0aSwgZmxhZyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2FuZF9zZXRfdGlfdGhyZWFkX2ZsYWco
c3RydWN0IHRocmVhZF9pbmZvICp0aSwgaW50IGZsYWcpCnsKIHJldHVybiB0ZXN0X2FuZF9zZXRf
Yml0KGZsYWcsICh1bnNpZ25lZCBsb25nICopJnRpLT5mbGFncyk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2FuZF9j
bGVhcl90aV90aHJlYWRfZmxhZyhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgZmxhZykKewog
cmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChmbGFnLCAodW5zaWduZWQgbG9uZyAqKSZ0aS0+Zmxh
Z3MpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgdGVzdF90aV90aHJlYWRfZmxhZyhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBp
bnQgZmxhZykKewogcmV0dXJuIHRlc3RfYml0KGZsYWcsICh1bnNpZ25lZCBsb25nICopJnRpLT5m
bGFncyk7Cn0KIyAxMjIgIi4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNoZWNr
X29iamVjdF9zaXplKGNvbnN0IHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyBuLAogICAgICAgICBi
b29sIHRvX3VzZXIpCnsgfQoKCmV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygi
Y29weSBzb3VyY2Ugc2l6ZSBpcyB0b28gc21hbGwiKSkpCl9fYmFkX2NvcHlfZnJvbSh2b2lkKTsK
ZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJjb3B5IGRlc3RpbmF0aW9uIHNp
emUgaXMgdG9vIHNtYWxsIikpKQpfX2JhZF9jb3B5X3RvKHZvaWQpOwoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjb3B5X292ZXJm
bG93KGludCBzaXplLCB1bnNpZ25lZCBsb25nIGNvdW50KQp7CiAoeyBpbnQgX19yZXRfd2Fybl9v
biA9ICEhKDEpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRv
IHsgX193YXJuX3ByaW50aygiQnVmZmVyIG92ZXJmbG93IGRldGVjdGVkICglZCA8ICVsdSkhXG4i
LCBzaXplLCBjb3VudCk7IGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIu
Ynl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4i
ICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4i
ICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQu
d29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdf
ZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAo
ImluY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIpLCAiaSIgKDEzNCksICJpIiAoKDEgPDwgMCl8
KCgxIDw8IDMpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkp
OyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25c
blx0IiA6IDogImkiICgwKSk7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRp
bl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
Ym9vbApjaGVja19jb3B5X3NpemUoY29uc3Qgdm9pZCAqYWRkciwgc2l6ZV90IGJ5dGVzLCBib29s
IGlzX3NvdXJjZSkKewogaW50IHN6ID0gX19idWlsdGluX29iamVjdF9zaXplKGFkZHIsIDApOwog
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoc3ogPj0gMCAmJiBzeiA8IGJ5dGVzKSwgMCkpIHsKICBp
ZiAoIV9fYnVpbHRpbl9jb25zdGFudF9wKGJ5dGVzKSkKICAgY29weV9vdmVyZmxvdyhzeiwgYnl0
ZXMpOwogIGVsc2UgaWYgKGlzX3NvdXJjZSkKICAgX19iYWRfY29weV9mcm9tKCk7CiAgZWxzZQog
ICBfX2JhZF9jb3B5X3RvKCk7CiAgcmV0dXJuIGZhbHNlOwogfQogaWYgKCh7IGludCBfX3JldF93
YXJuX29uID0gISEoYnl0ZXMgPiAoKGludCkofjBVID4+IDEpKSk7IGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGls
ZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJs
ZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6
YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5Ojpm
aWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMy
IiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9u
IiA6IDogImkiICgiaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIiksICJpIiAoMTUwKSwgImki
ICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBi
dWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1
c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIu
cG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDEpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5f
ZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSkpCiAgcmV0dXJuIGZhbHNlOwogY2hlY2tf
b2JqZWN0X3NpemUoYWRkciwgYnl0ZXMsIGlzX3NvdXJjZSk7CiByZXR1cm4gdHJ1ZTsKfQojIDgg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJlZW1wdC5oIiAyCgpleHRlcm4gX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIiIpKSkgX190eXBlb2ZfXyhpbnQpIF9fcHJlZW1w
dF9jb3VudDsKIyAyNCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcmVlbXB0LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IHByZWVtcHRfY291bnQodm9pZCkKewogcmV0
dXJuICh7IHR5cGVvZihfX3ByZWVtcHRfY291bnQpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2Yo
X19wcmVlbXB0X2NvdW50KSkgeyBjYXNlIDE6IGFzbSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIl
IiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBi
cmVhazsgY2FzZSAyOiBhc20gKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXIiIChwZm9fcmV0X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNhc2UgNDog
YXNtICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9f
KSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBjYXNlIDg6IGFzbSAoIm1vdiIgInEg
IiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJl
ZW1wdF9jb3VudCkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9f
cmV0X187IH0pICYgfjB4ODAwMDAwMDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZCBwcmVlbXB0X2NvdW50X3NldChpbnQgcGMpCnsKIGludCBvbGQsIG5ldzsKCiBk
byB7CiAgb2xkID0gKHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGZvX3JldF9fOyBzd2l0Y2gg
KHNpemVvZihfX3ByZWVtcHRfY291bnQpKSB7IGNhc2UgMTogYXNtICgibW92IiAiYiAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2Nv
dW50KSk7IGJyZWFrOyBjYXNlIDI6IGFzbSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIi
LCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBicmVhazsg
Y2FzZSA0OiBhc20gKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChw
Zm9fcmV0X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNhc2UgODogYXNtICgi
bW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJt
IiAoX19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IHBmb19yZXRfXzsgfSk7CiAgbmV3ID0gKG9sZCAmIDB4ODAwMDAwMDApIHwKICAgKHBjICYg
fjB4ODAwMDAwMDApOwogfSB3aGlsZSAoKHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGNvX3Jl
dF9fOyB0eXBlb2YoX19wcmVlbXB0X2NvdW50KSBwY29fb2xkX18gPSAob2xkKTsgdHlwZW9mKF9f
cHJlZW1wdF9jb3VudCkgcGNvX25ld19fID0gKG5ldyk7IHN3aXRjaCAoc2l6ZW9mKF9fcHJlZW1w
dF9jb3VudCkpIHsgY2FzZSAxOiBhc20gKCJjbXB4Y2hnYiAlMiwgIiIlJSIiZ3MiIjoiICIlIiAi
MSIgOiAiPWEiIChwY29fcmV0X18pLCAiK20iIChfX3ByZWVtcHRfY291bnQpIDogInEiIChwY29f
bmV3X18pLCAiMCIgKHBjb19vbGRfXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDI6IGFzbSAo
ImNtcHhjaGd3ICUyLCAiIiUlIiJncyIiOiIgIiUiICIxIiA6ICI9YSIgKHBjb19yZXRfXyksICIr
bSIgKF9fcHJlZW1wdF9jb3VudCkgOiAiciIgKHBjb19uZXdfXyksICIwIiAocGNvX29sZF9fKSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgNDogYXNtICgiY21weGNoZ2wgJTIsICIiJSUiImdzIiI6
IiAiJSIgIjEiIDogIj1hIiAocGNvX3JldF9fKSwgIittIiAoX19wcmVlbXB0X2NvdW50KSA6ICJy
IiAocGNvX25ld19fKSwgIjAiIChwY29fb2xkX18pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4
OiBhc20gKCJjbXB4Y2hncSAlMiwgIiIlJSIiZ3MiIjoiICIlIiAiMSIgOiAiPWEiIChwY29fcmV0
X18pLCAiK20iIChfX3ByZWVtcHRfY291bnQpIDogInIiIChwY29fbmV3X18pLCAiMCIgKHBjb19v
bGRfXykgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9
IHBjb19yZXRfXzsgfSkgIT0gb2xkKTsKfQojIDU4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3By
ZWVtcHQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNldF9wcmVl
bXB0X25lZWRfcmVzY2hlZCh2b2lkKQp7CiBkbyB7IHR5cGVkZWYgdHlwZW9mKChfX3ByZWVtcHRf
Y291bnQpKSBwdG9fVF9fOyBpZiAoMCkgeyBwdG9fVF9fIHB0b190bXBfXzsgcHRvX3RtcF9fID0g
KH4weDgwMDAwMDAwKTsgKHZvaWQpcHRvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKChfX3ByZWVt
cHRfY291bnQpKSkgeyBjYXNlIDE6IGFzbSAoImFuZCIgImIgJTEsIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicWkiICgocHRvX1RfXykofjB4ODAwMDAw
MDApKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSAoImFuZCIgIncgJTEsIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmkiICgocHRvX1RfXykofjB4ODAwMDAw
MDApKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSAoImFuZCIgImwgJTEsIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmkiICgocHRvX1RfXykofjB4ODAwMDAw
MDApKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSAoImFuZCIgInEgJTEsIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmUiICgocHRvX1RfXykofjB4ODAwMDAw
MDApKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDAp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgY2xlYXJfcHJlZW1w
dF9uZWVkX3Jlc2NoZWQodm9pZCkKewogZG8geyB0eXBlZGVmIHR5cGVvZigoX19wcmVlbXB0X2Nv
dW50KSkgcHRvX1RfXzsgaWYgKDApIHsgcHRvX1RfXyBwdG9fdG1wX187IHB0b190bXBfXyA9ICgw
eDgwMDAwMDAwKTsgKHZvaWQpcHRvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKChfX3ByZWVtcHRf
Y291bnQpKSkgeyBjYXNlIDE6IGFzbSAoIm9yIiAiYiAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJxaSIgKChwdG9fVF9fKSgweDgwMDAwMDAwKSkp
OyBicmVhazsgY2FzZSAyOiBhc20gKCJvciIgIncgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmkiICgocHRvX1RfXykoMHg4MDAwMDAwMCkpKTsg
YnJlYWs7IGNhc2UgNDogYXNtICgib3IiICJsICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKF9fcHJlZW1wdF9jb3VudCkpIDogInJpIiAoKHB0b19UX18pKDB4ODAwMDAwMDApKSk7IGJy
ZWFrOyBjYXNlIDg6IGFzbSAoIm9yIiAicSAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KChfX3ByZWVtcHRfY291bnQpKSA6ICJyZSIgKChwdG9fVF9fKSgweDgwMDAwMDAwKSkpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sIHRlc3RfcHJlZW1wdF9uZWVkX3Jlc2No
ZWQodm9pZCkKewogcmV0dXJuICEoKHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGZvX3JldF9f
OyBzd2l0Y2ggKHNpemVvZihfX3ByZWVtcHRfY291bnQpKSB7IGNhc2UgMTogYXNtICgibW92IiAi
YiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoX19w
cmVlbXB0X2NvdW50KSk7IGJyZWFrOyBjYXNlIDI6IGFzbSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoi
ICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkp
OyBicmVhazsgY2FzZSA0OiBhc20gKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIg
OiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNhc2Ug
ODogYXNtICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3Jl
dF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJj
cHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSkgJiAweDgwMDAwMDAwKTsKfQoKCgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX3ByZWVtcHRfY291bnRfYWRkKGludCB2
YWwpCnsKIGRvIHsgdHlwZWRlZiB0eXBlb2YoKF9fcHJlZW1wdF9jb3VudCkpIHBhb19UX187IGNv
bnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCh2YWwpICYmICgodmFsKSA9
PSAxIHx8ICh2YWwpID09IC0xKSkgPyAoaW50KSh2YWwpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBw
YW9fdG1wX187IHBhb190bXBfXyA9ICh2YWwpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChz
aXplb2YoKF9fcHJlZW1wdF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFz
bSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicWkiICgocGFvX1Rf
XykodmFsKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jdyAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSh2YWwpKSk7
IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18g
PT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0
X2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKF9fcHJlZW1wdF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKHZhbCkpKTsgYnJlYWs7IGNh
c2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNt
ICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSk7
IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVl
bXB0X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykodmFsKSkpOyBicmVhazsgZGVmYXVsdDogX19i
YWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIF9fcHJlZW1wdF9jb3VudF9zdWIoaW50IHZhbCkKewogZG8geyB0
eXBlZGVmIHR5cGVvZigoX19wcmVlbXB0X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19J
RF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKC12YWwpICYmICgoLXZhbCkgPT0gMSB8fCAoLXZh
bCkgPT0gLTEpKSA/IChpbnQpKC12YWwpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187
IHBhb190bXBfXyA9ICgtdmFsKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKChf
X3ByZWVtcHRfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNi
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBp
ZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZGIgJTEsICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKC12YWwp
KSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lE
X18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVl
bXB0X2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKF9fcHJlZW1wdF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC12YWwpKSk7IGJyZWFr
OyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50
KSkpOyBlbHNlIGFzbSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9f
cHJlZW1wdF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC12YWwpKSk7IGJyZWFrOyBjYXNlIDg6
IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRl
Y3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNl
IGFzbSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9j
b3VudCkpIDogInJlIiAoKHBhb19UX18pKC12YWwpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgYm9vbCBfX3ByZWVtcHRfY291bnRfZGVjX2FuZF90ZXN0KHZvaWQpCnsK
IHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAoImRlY2wiICIgIiAiJSUiImdzIiI6IiAi
JSIgIlt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJlIiAiKi9cbiIgOiBb
dmFyXSAiK20iIChfX3ByZWVtcHRfY291bnQpLCAiPUBjYyIgImUiIChjKSA6IDogIm1lbW9yeSIp
OyBjOyB9KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sIHNo
b3VsZF9yZXNjaGVkKGludCBwcmVlbXB0X29mZnNldCkKewogcmV0dXJuIF9fYnVpbHRpbl9leHBl
Y3QoISEoKHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVv
ZihfX3ByZWVtcHRfY291bnQpKSB7IGNhc2UgMTogYXNtICgibW92IiAiYiAiIiUlIiJncyIiOiIg
IiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7
IGJyZWFrOyBjYXNlIDI6IGFzbSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6
ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBicmVhazsgY2FzZSA0
OiBhc20gKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0
X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNhc2UgODogYXNtICgibW92IiAi
cSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoX19w
cmVlbXB0X2NvdW50KSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBm
b19yZXRfXzsgfSkgPT0gcHJlZW1wdF9vZmZzZXQpLCAwKTsKfQojIDc5ICIuL2luY2x1ZGUvbGlu
dXgvcHJlZW1wdC5oIiAyCiMgMjc3ICIuL2luY2x1ZGUvbGludXgvcHJlZW1wdC5oIgpzdHJ1Y3Qg
cHJlZW1wdF9ub3RpZmllcjsKIyAyOTMgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiCnN0cnVj
dCBwcmVlbXB0X29wcyB7CiB2b2lkICgqc2NoZWRfaW4pKHN0cnVjdCBwcmVlbXB0X25vdGlmaWVy
ICpub3RpZmllciwgaW50IGNwdSk7CiB2b2lkICgqc2NoZWRfb3V0KShzdHJ1Y3QgcHJlZW1wdF9u
b3RpZmllciAqbm90aWZpZXIsCiAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0KTsKfTsKIyAz
MDYgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiCnN0cnVjdCBwcmVlbXB0X25vdGlmaWVyIHsK
IHN0cnVjdCBobGlzdF9ub2RlIGxpbms7CiBzdHJ1Y3QgcHJlZW1wdF9vcHMgKm9wczsKfTsKCnZv
aWQgcHJlZW1wdF9ub3RpZmllcl9pbmModm9pZCk7CnZvaWQgcHJlZW1wdF9ub3RpZmllcl9kZWMo
dm9pZCk7CnZvaWQgcHJlZW1wdF9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgcHJlZW1wdF9ub3Rp
ZmllciAqbm90aWZpZXIpOwp2b2lkIHByZWVtcHRfbm90aWZpZXJfdW5yZWdpc3RlcihzdHJ1Y3Qg
cHJlZW1wdF9ub3RpZmllciAqbm90aWZpZXIpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwcmVlbXB0X25vdGlmaWVyX2luaXQo
c3RydWN0IHByZWVtcHRfbm90aWZpZXIgKm5vdGlmaWVyLAogICAgICAgICBzdHJ1Y3QgcHJlZW1w
dF9vcHMgKm9wcykKewogSU5JVF9ITElTVF9OT0RFKCZub3RpZmllci0+bGluayk7CiBub3RpZmll
ci0+b3BzID0gb3BzOwp9CiMgNTIgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCgoKCgoK
CiMgMSAiLi9pbmNsdWRlL2xpbnV4L2JvdHRvbV9oYWxmLmgiIDEKIyAxMCAiLi9pbmNsdWRlL2xp
bnV4L2JvdHRvbV9oYWxmLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZCBfX2xvY2FsX2JoX2Rpc2FibGVfaXAodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgaW50IGNu
dCkKewogX19wcmVlbXB0X2NvdW50X2FkZChjbnQpOwogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6
IDogOiJtZW1vcnkiKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9jYWxfYmhfZGlzYWJsZSh2b2lkKQp7CiBfX2xvY2Fs
X2JoX2Rpc2FibGVfaXAoKHsgX19sYWJlbF9fIF9faGVyZTsgX19oZXJlOiAodW5zaWduZWQgbG9u
ZykmJl9faGVyZTsgfSksICgyICogKDFVTCA8PCAoMCArIDgpKSkpOwp9CgpleHRlcm4gdm9pZCBf
bG9jYWxfYmhfZW5hYmxlKHZvaWQpOwpleHRlcm4gdm9pZCBfX2xvY2FsX2JoX2VuYWJsZV9pcCh1
bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBpbnQgY250KTsKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9jYWxfYmhfZW5hYmxl
X2lwKHVuc2lnbmVkIGxvbmcgaXApCnsKIF9fbG9jYWxfYmhfZW5hYmxlX2lwKGlwLCAoMiAqICgx
VUwgPDwgKDAgKyA4KSkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2NhbF9iaF9lbmFibGUodm9pZCkKewogX19sb2Nh
bF9iaF9lbmFibGVfaXAoKHsgX19sYWJlbF9fIF9faGVyZTsgX19oZXJlOiAodW5zaWduZWQgbG9u
ZykmJl9faGVyZTsgfSksICgyICogKDFVTCA8PCAoMCArIDgpKSkpOwp9CiMgNTkgIi4vaW5jbHVk
ZS9saW51eC9zcGlubG9jay5oIiAyCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQv
YXNtL21taW93Yi5oIiAxCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL21taW93Yi5oIiAxCiMg
MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC9hc20vbW1pb3diLmgiIDIKIyA2MSAiLi9p
bmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDIKIyA4MyAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2Nr
LmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX3R5cGVzLmgiIDEKIyAxOCAiLi9pbmNs
dWRlL2xpbnV4L3NwaW5sb2NrX3R5cGVzLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2xvY2tkZXAu
aCIgMQojIDEzICIuL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oIgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7
CnN0cnVjdCBsb2NrZGVwX21hcDsKCgpleHRlcm4gaW50IHByb3ZlX2xvY2tpbmc7CmV4dGVybiBp
bnQgbG9ja19zdGF0OwojIDQxMyAiLi9pbmNsdWRlL2xpbnV4L2xvY2tkZXAuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2Nr
ZGVwX2luaXRfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCnsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2NrZGVw
X29mZih2b2lkKQp7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF9vbih2b2lkKQp7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF9z
ZXRfc2VsZnRlc3RfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCnsKfQojIDQ1OCAiLi9p
bmNsdWRlL2xpbnV4L2xvY2tkZXAuaCIKc3RydWN0IGxvY2tfY2xhc3Nfa2V5IHsgfTsKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
bG9ja2RlcF9yZWdpc3Rlcl9rZXkoc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpCnsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBsb2NrZGVwX3VucmVnaXN0ZXJfa2V5KHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5KQp7Cn0K
CgoKCnN0cnVjdCBsb2NrZGVwX21hcCB7IH07CiMgNDg0ICIuL2luY2x1ZGUvbGludXgvbG9ja2Rl
cC5oIgpzdHJ1Y3QgcGluX2Nvb2tpZSB7IH07CiMgNDk0ICIuL2luY2x1ZGUvbGludXgvbG9ja2Rl
cC5oIgplbnVtIHhobG9ja19jb250ZXh0X3QgewogWEhMT0NLX0hBUkQsCiBYSExPQ0tfU09GVCwK
IFhITE9DS19DVFhfTlIsCn07CiMgNTA4ICIuL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGxvY2tkZXBfaW52YXJpYW50X3N0YXRlKGJvb2wgZm9yY2UpIHt9CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF9mcmVl
X3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKSB7fQojIDU3MCAiLi9pbmNsdWRlL2xpbnV4
L2xvY2tkZXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBwcmludF9pcnF0cmFjZV9ldmVudHMoc3RydWN0IHRhc2tfc3RydWN0
ICpjdXJyKQp7Cn0KIyA2NjggIi4vaW5jbHVkZS9saW51eC9sb2NrZGVwLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKbG9ja2Rl
cF9yY3Vfc3VzcGljaW91cyhjb25zdCBjaGFyICpmaWxlLCBjb25zdCBpbnQgbGluZSwgY29uc3Qg
Y2hhciAqcykKewp9CiMgMTkgIi4vaW5jbHVkZS9saW51eC9zcGlubG9ja190eXBlcy5oIiAyCgp0
eXBlZGVmIHN0cnVjdCByYXdfc3BpbmxvY2sgewogYXJjaF9zcGlubG9ja190IHJhd19sb2NrOwoK
CgoKCgoKfSByYXdfc3BpbmxvY2tfdDsKIyA2MSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX3R5
cGVzLmgiCnR5cGVkZWYgc3RydWN0IHNwaW5sb2NrIHsKIHVuaW9uIHsKICBzdHJ1Y3QgcmF3X3Nw
aW5sb2NrIHJsb2NrOwojIDcyICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfdHlwZXMuaCIKIH07
Cn0gc3BpbmxvY2tfdDsKIyA4MyAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX3R5cGVzLmgiCiMg
MSAiLi9pbmNsdWRlL2xpbnV4L3J3bG9ja190eXBlcy5oIiAxCiMgMTEgIi4vaW5jbHVkZS9saW51
eC9yd2xvY2tfdHlwZXMuaCIKdHlwZWRlZiBzdHJ1Y3QgewogYXJjaF9yd2xvY2tfdCByYXdfbG9j
azsKCgoKCgoKCn0gcndsb2NrX3Q7CiMgODQgIi4vaW5jbHVkZS9saW51eC9zcGlubG9ja190eXBl
cy5oIiAyCiMgODQgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCgoKCgoKIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgiIDEKIyAxMCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9zcGlubG9jay5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCIg
MQojIDE4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmgiCiMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9mcmFtZS5oIiAxCiMgMTkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy
YXZpcnQuaCIgMgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBsb25nIHBhcmF2aXJ0X3NjaGVkX2Nsb2NrKHZvaWQp
CnsKIHJldHVybiAoeyB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXQ7IHVuc2lnbmVkIGxvbmcgX19l
ZGkgPSBfX2VkaSwgX19lc2kgPSBfX2VzaSwgX19lZHggPSBfX2VkeCwgX19lY3ggPSBfX2VjeCwg
X19lYXggPSBfX2VheDs7ICgodm9pZClwdl9vcHMudGltZS5zY2hlZF9jbG9jayk7IGlmIChzaXpl
b2YodW5zaWduZWQgbG9uZyBsb25nKSA+IHNpemVvZih1bnNpZ25lZCBsb25nKSkgeyBhc20gdm9s
YXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0
cG9saW5lX3NhZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9u
XG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2Vj
dGlvbiAucGFyYWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIg
IiAiICIucXVhZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVt
XSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Ns
b2JiZXJdIiAiXG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAoX19l
c2kpLCAiPWQiIChfX2VkeCksICI9YyIgKF9fZWN4KSwgIj1hIiAoX19lYXgpLCAiK3IiIChjdXJy
ZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9v
ZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIHRpbWUuc2NoZWRfY2xvY2sp
IC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLnRpbWUu
c2NoZWRfY2xvY2spKSwgW3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpIDog
Im1lbW9yeSIsICJjYyIgLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIpOyBfX3JldCA9ICh1bnNp
Z25lZCBsb25nIGxvbmcpKCgoKHU2NClfX2VkeCkgPDwgMzIpIHwgX19lYXgpOyB9IGVsc2UgeyBh
c20gdm9sYXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2Nh
cmQucmV0cG9saW5lX3NhZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3Bz
ZWN0aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5w
dXNoc2VjdGlvbiAucGFyYWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAi
ICJcbiIgIiAiICIucXVhZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90
eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2
aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1T
IiAoX19lc2kpLCAiPWQiIChfX2VkeCksICI9YyIgKF9fZWN4KSwgIj1hIiAoX19lYXgpLCAiK3Ii
IChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVp
bHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIHRpbWUuc2NoZWRf
Y2xvY2spIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3Bz
LnRpbWUuc2NoZWRfY2xvY2spKSwgW3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0g
MSkpIDogIm1lbW9yeSIsICJjYyIgLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIpOyBfX3JldCA9
ICh1bnNpZ25lZCBsb25nIGxvbmcpKF9fZWF4ICYgKHsgdW5zaWduZWQgbG9uZyBfX21hc2sgPSB+
MFVMOyBzd2l0Y2ggKHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpKSB7IGNhc2UgMTogX19tYXNr
ID0gMHhmZlVMOyBicmVhazsgY2FzZSAyOiBfX21hc2sgPSAweGZmZmZVTDsgYnJlYWs7IGNhc2Ug
NDogX19tYXNrID0gMHhmZmZmZmZmZlVMOyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0gX19tYXNr
OyB9KSk7IH0gX19yZXQ7IH0pOwp9CgpzdHJ1Y3Qgc3RhdGljX2tleTsKZXh0ZXJuIHN0cnVjdCBz
dGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQ7CmV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tl
eSBwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkOwoKX19hdHRyaWJ1dGVfXygoX19leHRlcm5hbGx5
X3Zpc2libGVfXykpIHZvaWQgX19uYXRpdmVfcXVldWVkX3NwaW5fdW5sb2NrKHN0cnVjdCBxc3Bp
bmxvY2sgKmxvY2spOwpib29sIHB2X2lzX25hdGl2ZV9zcGluX3VubG9jayh2b2lkKTsKX19hdHRy
aWJ1dGVfXygoX19leHRlcm5hbGx5X3Zpc2libGVfXykpIGJvb2wgX19uYXRpdmVfdmNwdV9pc19w
cmVlbXB0ZWQobG9uZyBjcHUpOwpib29sIHB2X2lzX25hdGl2ZV92Y3B1X2lzX3ByZWVtcHRlZCh2
b2lkKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHU2NCBwYXJhdmlydF9zdGVhbF9jbG9jayhpbnQgY3B1KQp7CiByZXR1cm4gKHsgdTY0
IF9fcmV0OyB1bnNpZ25lZCBsb25nIF9fZWRpID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9fZWR4
ID0gX19lZHgsIF9fZWN4ID0gX19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3BzLnRp
bWUuc3RlYWxfY2xvY2spOyBpZiAoc2l6ZW9mKHU2NCkgPiBzaXplb2YodW5zaWduZWQgbG9uZykp
IHsgYXNtIHZvbGF0aWxlKCIiICI3NzE6XG5cdCIgIjk5OTpcblx0IiAiLnB1c2hzZWN0aW9uIC5k
aXNjYXJkLnJldHBvbGluZV9zYWZlXG5cdCIgIiAiICIucXVhZCIgIiAiICIgOTk5YlxuXHQiICIu
cG9wc2VjdGlvblxuXHQiICJjYWxsIColY1twYXJhdmlydF9vcHB0cl07IiAiXG4iICI3NzI6XG4i
ICIucHVzaHNlY3Rpb24gLnBhcmFpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAiICIuYmFsaWduIDgi
ICIgIiAiXG4iICIgIiAiLnF1YWQiICIgIiAiIDc3MWJcbiIgIiAgLmJ5dGUgIiAiJWNbcGFyYXZp
cnRfdHlwZW51bV0iICJcbiIgIiAgLmJ5dGUgNzcyYi03NzFiXG4iICIgIC5zaG9ydCAiICIlY1tw
YXJhdmlydF9jbG9iYmVyXSIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIiIgOiAiPUQiIChfX2VkaSks
ICI9UyIgKF9fZXNpKSwgIj1kIiAoX19lZHgpLCAiPWMiIChfX2VjeCksICI9YSIgKF9fZWF4KSwg
IityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtwYXJhdmlydF90eXBlbnVtXSAiaSIgKChf
X2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2aXJ0X3BhdGNoX3RlbXBsYXRlLCB0aW1lLnN0
ZWFsX2Nsb2NrKSAvIHNpemVvZih2b2lkICopKSksIFtwYXJhdmlydF9vcHB0cl0gImkiICgmKHB2
X29wcy50aW1lLnN0ZWFsX2Nsb2NrKSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCA5
KSAtIDEpKSwgIkQiICgodW5zaWduZWQgbG9uZykoY3B1KSkgOiAibWVtb3J5IiwgImNjIiAsICJy
OCIsICJyOSIsICJyMTAiLCAicjExIik7IF9fcmV0ID0gKHU2NCkoKCgodTY0KV9fZWR4KSA8PCAz
MikgfCBfX2VheCk7IH0gZWxzZSB7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQi
ICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3Bw
dHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwi
XG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIg
IC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxu
IiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4i
ICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19l
Y3gpLCAiPWEiIChfX2VheCksICIrciIgKGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZp
cnRfdHlwZW51bV0gImkiICgoX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRj
aF90ZW1wbGF0ZSwgdGltZS5zdGVhbF9jbG9jaykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZp
cnRfb3BwdHJdICJpIiAoJihwdl9vcHMudGltZS5zdGVhbF9jbG9jaykpLCBbcGFyYXZpcnRfY2xv
YmJlcl0gImkiICgoKDEgPDwgOSkgLSAxKSksICJEIiAoKHVuc2lnbmVkIGxvbmcpKGNwdSkpIDog
Im1lbW9yeSIsICJjYyIgLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIpOyBfX3JldCA9ICh1NjQp
KF9fZWF4ICYgKHsgdW5zaWduZWQgbG9uZyBfX21hc2sgPSB+MFVMOyBzd2l0Y2ggKHNpemVvZih1
NjQpKSB7IGNhc2UgMTogX19tYXNrID0gMHhmZlVMOyBicmVhazsgY2FzZSAyOiBfX21hc2sgPSAw
eGZmZmZVTDsgYnJlYWs7IGNhc2UgNDogX19tYXNrID0gMHhmZmZmZmZmZlVMOyBicmVhazsgZGVm
YXVsdDogYnJlYWs7IH0gX19tYXNrOyB9KSk7IH0gX19yZXQ7IH0pOwp9CgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzbG93X2Rv
d25faW8odm9pZCkKewogcHZfb3BzLmNwdS5pb19kZWxheSgpOwoKCgoKCn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19mbHVz
aF90bGIodm9pZCkKewogKHsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9f
ZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lk
KXB2X29wcy5tbXUuZmx1c2hfdGxiX3VzZXIpOyBhc20gdm9sYXRpbGUoIiIgIjc3MTpcblx0IiAi
OTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3NhZmVcblx0IiAiICIg
Ii5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2
aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFyYWluc3RydWN0aW9u
cyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVhZCIgIiAiICIgNzcx
YlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJi
LTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9wc2Vj
dGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAoX19lc2kpLCAiPWQiIChfX2VkeCksICI9
YyIgKF9fZWN4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtwYXJhdmlydF90eXBl
bnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2aXJ0X3BhdGNoX3RlbXBs
YXRlLCBtbXUuZmx1c2hfdGxiX3VzZXIpIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29w
cHRyXSAiaSIgKCYocHZfb3BzLm1tdS5mbHVzaF90bGJfdXNlcikpLCBbcGFyYXZpcnRfY2xvYmJl
cl0gImkiICgoKDEgPDwgOSkgLSAxKSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAi
cjkiLCAicjEwIiwgInIxMSIpOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2ZsdXNoX3RsYl9nbG9iYWwodm9pZCkK
ewogKHsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9
IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5tbXUu
Zmx1c2hfdGxiX2tlcm5lbCk7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIg
Ii5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIg
IiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJd
OyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4i
ICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5i
eXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAi
ICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIi
IDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gp
LCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAo
KF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS5m
bHVzaF90bGJfa2VybmVsKSAvIHNpemVvZih2b2lkICopKSksIFtwYXJhdmlydF9vcHB0cl0gImki
ICgmKHB2X29wcy5tbXUuZmx1c2hfdGxiX2tlcm5lbCkpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImki
ICgoKDEgPDwgOSkgLSAxKSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAicjkiLCAi
cjEwIiwgInIxMSIpOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2ZsdXNoX3RsYl9vbmVfdXNlcih1bnNpZ25lZCBs
b25nIGFkZHIpCnsKICh7IHVuc2lnbmVkIGxvbmcgX19lZGkgPSBfX2VkaSwgX19lc2kgPSBfX2Vz
aSwgX19lZHggPSBfX2VkeCwgX19lY3ggPSBfX2VjeCwgX19lYXggPSBfX2VheDs7ICgodm9pZClw
dl9vcHMubW11LmZsdXNoX3RsYl9vbmVfdXNlcik7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQi
ICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIg
IiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFy
YXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rp
b25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3
NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3
MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3Bz
ZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwg
Ij1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5
cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVt
cGxhdGUsIG1tdS5mbHVzaF90bGJfb25lX3VzZXIpIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2
aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLm1tdS5mbHVzaF90bGJfb25lX3VzZXIpKSwgW3BhcmF2
aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpLCAiRCIgKCh1bnNpZ25lZCBsb25nKShh
ZGRyKSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIp
OyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBmbHVzaF90bGJfb3RoZXJzKGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVt
YXNrLAogICAgICAgIGNvbnN0IHN0cnVjdCBmbHVzaF90bGJfaW5mbyAqaW5mbykKewogKHsgdW5z
aWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBf
X2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5tbXUuZmx1c2hfdGxi
X290aGVycyk7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJc
blx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAi
NzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJh
bGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVj
W3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQg
IiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAo
X19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3IiIChj
dXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRp
bl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS5mbHVzaF90bGJf
b3RoZXJzKSAvIHNpemVvZih2b2lkICopKSksIFtwYXJhdmlydF9vcHB0cl0gImkiICgmKHB2X29w
cy5tbXUuZmx1c2hfdGxiX290aGVycykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwg
OSkgLSAxKSksICJEIiAoKHVuc2lnbmVkIGxvbmcpKGNwdW1hc2spKSwgIlMiICgodW5zaWduZWQg
bG9uZykoaW5mbykpIDogIm1lbW9yeSIsICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIs
ICJyMTEiKTsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcGFyYXZpcnRfdGxiX3JlbW92ZV90YWJsZShzdHJ1Y3QgbW11
X2dhdGhlciAqdGxiLCB2b2lkICp0YWJsZSkKewogKHsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9f
ZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9
IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5tbXUudGxiX3JlbW92ZV90YWJsZSk7IGFzbSB2b2xhdGls
ZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xp
bmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0
IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9u
IC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIg
Ii5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAi
XG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJl
cl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSks
ICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIp
IDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFy
YXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS50bGJfcmVtb3ZlX3RhYmxlKSAvIHNpemVvZih2b2lk
ICopKSksIFtwYXJhdmlydF9vcHB0cl0gImkiICgmKHB2X29wcy5tbXUudGxiX3JlbW92ZV90YWJs
ZSkpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgOSkgLSAxKSksICJEIiAoKHVuc2ln
bmVkIGxvbmcpKHRsYikpLCAiUyIgKCh1bnNpZ25lZCBsb25nKSh0YWJsZSkpIDogIm1lbW9yeSIs
ICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGFy
YXZpcnRfYXJjaF9leGl0X21tYXAoc3RydWN0IG1tX3N0cnVjdCAqbW0pCnsKICh7IHVuc2lnbmVk
IGxvbmcgX19lZGkgPSBfX2VkaSwgX19lc2kgPSBfX2VzaSwgX19lZHggPSBfX2VkeCwgX19lY3gg
PSBfX2VjeCwgX19lYXggPSBfX2VheDs7ICgodm9pZClwdl9vcHMubW11LmV4aXRfbW1hcCk7IGFz
bSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2Fy
ZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNl
Y3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1
c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIg
IlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5
cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZp
cnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMi
IChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50X3N0YWNr
X3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihz
dHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS5leGl0X21tYXApIC8gc2l6ZW9mKHZv
aWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLm1tdS5leGl0X21tYXApKSwg
W3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpLCAiRCIgKCh1bnNpZ25lZCBs
b25nKShtbSkpIDogIm1lbW9yeSIsICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJy
MTEiKTsgfSk7Cn0KIyA2NDIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHB2X3F1ZXVlZF9zcGluX2xvY2tf
c2xvd3BhdGgoc3RydWN0IHFzcGlubG9jayAqbG9jaywKICAgICAgIHUzMiB2YWwpCnsKICh7IHVu
c2lnbmVkIGxvbmcgX19lZGkgPSBfX2VkaSwgX19lc2kgPSBfX2VzaSwgX19lZHggPSBfX2VkeCwg
X19lY3ggPSBfX2VjeCwgX19lYXggPSBfX2VheDs7ICgodm9pZClwdl9vcHMubG9jay5xdWV1ZWRf
c3Bpbl9sb2NrX3Nsb3dwYXRoKTsgYXNtIHZvbGF0aWxlKCIiICI3NzE6XG5cdCIgIjk5OTpcblx0
IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJldHBvbGluZV9zYWZlXG5cdCIgIiAiICIucXVhZCIg
IiAiICIgOTk5YlxuXHQiICIucG9wc2VjdGlvblxuXHQiICJjYWxsIColY1twYXJhdmlydF9vcHB0
cl07IiAiXG4iICI3NzI6XG4iICIucHVzaHNlY3Rpb24gLnBhcmFpbnN0cnVjdGlvbnMsXCJhXCJc
biIgIiAiICIuYmFsaWduIDgiICIgIiAiXG4iICIgIiAiLnF1YWQiICIgIiAiIDc3MWJcbiIgIiAg
LmJ5dGUgIiAiJWNbcGFyYXZpcnRfdHlwZW51bV0iICJcbiIgIiAgLmJ5dGUgNzcyYi03NzFiXG4i
ICIgIC5zaG9ydCAiICIlY1twYXJhdmlydF9jbG9iYmVyXSIgIlxuIiAiLnBvcHNlY3Rpb25cbiIg
IiIgOiAiPUQiIChfX2VkaSksICI9UyIgKF9fZXNpKSwgIj1kIiAoX19lZHgpLCAiPWMiIChfX2Vj
eCksICIrciIgKGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImki
ICgoX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgbG9j
ay5xdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoKSAvIHNpemVvZih2b2lkICopKSksIFtwYXJhdmly
dF9vcHB0cl0gImkiICgmKHB2X29wcy5sb2NrLnF1ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGgpKSwg
W3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpLCAiRCIgKCh1bnNpZ25lZCBs
b25nKShsb2NrKSksICJTIiAoKHVuc2lnbmVkIGxvbmcpKHZhbCkpIDogIm1lbW9yeSIsICJjYyIg
LCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBwdl9xdWV1ZWRfc3Bpbl91bmxvY2soc3RydWN0IHFz
cGlubG9jayAqbG9jaykKewogKHsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9
IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2
b2lkKXB2X29wcy5sb2NrLnF1ZXVlZF9zcGluX3VubG9jay5mdW5jKTsgYXNtIHZvbGF0aWxlKCIi
ICI3NzE6XG5cdCIgIjk5OTpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJldHBvbGluZV9z
YWZlXG5cdCIgIiAiICIucXVhZCIgIiAiICIgOTk5YlxuXHQiICIucG9wc2VjdGlvblxuXHQiICJj
YWxsIColY1twYXJhdmlydF9vcHB0cl07IiAiXG4iICI3NzI6XG4iICIucHVzaHNlY3Rpb24gLnBh
cmFpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAiICIuYmFsaWduIDgiICIgIiAiXG4iICIgIiAiLnF1
YWQiICIgIiAiIDc3MWJcbiIgIiAgLmJ5dGUgIiAiJWNbcGFyYXZpcnRfdHlwZW51bV0iICJcbiIg
IiAgLmJ5dGUgNzcyYi03NzFiXG4iICIgIC5zaG9ydCAiICIlY1twYXJhdmlydF9jbG9iYmVyXSIg
IlxuIiAiLnBvcHNlY3Rpb25cbiIgIiIgOiAiPWEiIChfX2VheCksICIrciIgKGN1cnJlbnRfc3Rh
Y2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgoX19idWlsdGluX29mZnNldG9m
KHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgbG9jay5xdWV1ZWRfc3Bpbl91bmxvY2su
ZnVuYykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMu
bG9jay5xdWV1ZWRfc3Bpbl91bmxvY2suZnVuYykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgo
KDEgPDwgMCkpKSwgIkQiICgodW5zaWduZWQgbG9uZykobG9jaykpIDogIm1lbW9yeSIsICJjYyIg
KTsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBwdl93YWl0
KHU4ICpwdHIsIHU4IHZhbCkKewogKHsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2Vz
aSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4Ozsg
KCh2b2lkKXB2X29wcy5sb2NrLndhaXQpOyBhc20gdm9sYXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5
OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3NhZmVcblx0IiAiICIgIi5x
dWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0
X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFyYWluc3RydWN0aW9ucyxc
ImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVhZCIgIiAiICIgNzcxYlxu
IiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3
MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9wc2VjdGlv
blxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAoX19lc2kpLCAiPWQiIChfX2VkeCksICI9YyIg
KF9fZWN4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtwYXJhdmlydF90eXBlbnVt
XSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2aXJ0X3BhdGNoX3RlbXBsYXRl
LCBsb2NrLndhaXQpIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYo
cHZfb3BzLmxvY2sud2FpdCkpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgOSkgLSAx
KSksICJEIiAoKHVuc2lnbmVkIGxvbmcpKHB0cikpLCAiUyIgKCh1bnNpZ25lZCBsb25nKSh2YWwp
KSA6ICJtZW1vcnkiLCAiY2MiICwgInJheCIsICJyOCIsICJyOSIsICJyMTAiLCAicjExIik7IH0p
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgcHZfa2ljayhpbnQg
Y3B1KQp7CiAoeyB1bnNpZ25lZCBsb25nIF9fZWRpID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9f
ZWR4ID0gX19lZHgsIF9fZWN4ID0gX19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3Bz
LmxvY2sua2ljayk7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNo
c2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5
OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxu
IiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAi
LmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIg
IiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hv
cnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1E
IiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3Ii
IChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVp
bHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIGxvY2sua2ljaykg
LyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMubG9jay5r
aWNrKSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCA5KSAtIDEpKSwgIkQiICgodW5z
aWduZWQgbG9uZykoY3B1KSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAicjkiLCAi
cjEwIiwgInIxMSIpOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBi
b29sIHB2X3ZjcHVfaXNfcHJlZW1wdGVkKGxvbmcgY3B1KQp7CiByZXR1cm4gKHsgYm9vbCBfX3Jl
dDsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9f
ZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5sb2NrLnZj
cHVfaXNfcHJlZW1wdGVkLmZ1bmMpOyBpZiAoc2l6ZW9mKGJvb2wpID4gc2l6ZW9mKHVuc2lnbmVk
IGxvbmcpKSB7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJc
blx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAi
NzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJh
bGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVj
W3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQg
IiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1hIiAo
X19lYXgpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1d
ICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUs
IGxvY2sudmNwdV9pc19wcmVlbXB0ZWQuZnVuYykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZp
cnRfb3BwdHJdICJpIiAoJihwdl9vcHMubG9jay52Y3B1X2lzX3ByZWVtcHRlZC5mdW5jKSksIFtw
YXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCAwKSkpLCAiRCIgKCh1bnNpZ25lZCBsb25nKShj
cHUpKSA6ICJtZW1vcnkiLCAiY2MiICk7IF9fcmV0ID0gKGJvb2wpKCgoKHU2NClfX2VkeCkgPDwg
MzIpIHwgX19lYXgpOyB9IGVsc2UgeyBhc20gdm9sYXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5Olxu
XHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3NhZmVcblx0IiAiICIgIi5xdWFk
IiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0X29w
cHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFyYWluc3RydWN0aW9ucyxcImFc
IlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVhZCIgIiAiICIgNzcxYlxuIiAi
ICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3MWJc
biIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9wc2VjdGlvblxu
IiAiIiA6ICI9YSIgKF9fZWF4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtwYXJh
dmlydF90eXBlbnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2aXJ0X3Bh
dGNoX3RlbXBsYXRlLCBsb2NrLnZjcHVfaXNfcHJlZW1wdGVkLmZ1bmMpIC8gc2l6ZW9mKHZvaWQg
KikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLmxvY2sudmNwdV9pc19wcmVlbXB0
ZWQuZnVuYykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgMCkpKSwgIkQiICgodW5z
aWduZWQgbG9uZykoY3B1KSkgOiAibWVtb3J5IiwgImNjIiApOyBfX3JldCA9IChib29sKShfX2Vh
eCAmICh7IHVuc2lnbmVkIGxvbmcgX19tYXNrID0gfjBVTDsgc3dpdGNoIChzaXplb2YoYm9vbCkp
IHsgY2FzZSAxOiBfX21hc2sgPSAweGZmVUw7IGJyZWFrOyBjYXNlIDI6IF9fbWFzayA9IDB4ZmZm
ZlVMOyBicmVhazsgY2FzZSA0OiBfX21hc2sgPSAweGZmZmZmZmZmVUw7IGJyZWFrOyBkZWZhdWx0
OiBicmVhazsgfSBfX21hc2s7IH0pKTsgfSBfX3JldDsgfSk7Cn0KCnZvaWQgX19yYXdfY2FsbGVl
X3NhdmVfX19uYXRpdmVfcXVldWVkX3NwaW5fdW5sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2sp
Owpib29sIF9fcmF3X2NhbGxlZV9zYXZlX19fbmF0aXZlX3ZjcHVfaXNfcHJlZW1wdGVkKGxvbmcg
Y3B1KTsKIyA3OTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCIKZXh0ZXJuIHZv
aWQgZGVmYXVsdF9iYW5uZXIodm9pZCk7CiMgOTM5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bh
cmF2aXJ0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgcGFyYXZpcnRfYXJjaF9kdXBfbW1hcChzdHJ1Y3QgbW1fc3RydWN0ICpv
bGRtbSwKICAgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQp7Cn0KIyAxMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGlubG9jay5oIiAyCiMgMjcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3Bp
bmxvY2suaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlubG9jay5oIiAxCiMgMTQg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXNwaW5sb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdTMyIHF1ZXVlZF9mZXRjaF9zZXRfcGVuZGluZ19hY3F1aXJlKHN0cnVj
dCBxc3BpbmxvY2sgKmxvY2spCnsKIHUzMiB2YWw7CgoKCgoKCiB2YWwgPSAoeyBib29sIGM7IGFz
bSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRc
biIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAi
ICJidHNsIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29k
ZSAiICJjIiAiKi9cbiIgOiBbdmFyXSAiK20iIChsb2NrLT52YWwuY291bnRlciksICI9QGNjIiAi
YyIgKGMpIDogW3ZhbF0gIkkiICgoMCArIDgpKSA6ICJtZW1vcnkiKTsgYzsgfSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICogKDFVIDw8ICgwICsgOCkpOwogdmFsIHw9IGF0b21p
Y19yZWFkKCZsb2NrLT52YWwpICYgfigoKDFVIDw8IDgpIC0gMSkgPDwgKDAgKyA4KSk7CgogcmV0
dXJuIHZhbDsKfQoKCmV4dGVybiB2b2lkIG5hdGl2ZV9xdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRo
KHN0cnVjdCBxc3BpbmxvY2sgKmxvY2ssIHUzMiB2YWwpOwpleHRlcm4gdm9pZCBfX3B2X2luaXRf
bG9ja19oYXNoKHZvaWQpOwpleHRlcm4gdm9pZCBfX3B2X3F1ZXVlZF9zcGluX2xvY2tfc2xvd3Bh
dGgoc3RydWN0IHFzcGlubG9jayAqbG9jaywgdTMyIHZhbCk7CmV4dGVybiB2b2lkIF9fcmF3X2Nh
bGxlZV9zYXZlX19fcHZfcXVldWVkX3NwaW5fdW5sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2sp
OwojIDQzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlubG9jay5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9x
dWV1ZWRfc3Bpbl91bmxvY2soc3RydWN0IHFzcGlubG9jayAqbG9jaykKewogZG8geyBkbyB7IGV4
dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzQ1KHZvaWQpIF9fYXR0cmlidXRlX18oKF9f
ZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0
eS4iKSkpOyBpZiAoISgoc2l6ZW9mKCombG9jay0+bG9ja2VkKSA9PSBzaXplb2YoY2hhcikgfHwg
c2l6ZW9mKCombG9jay0+bG9ja2VkKSA9PSBzaXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJmxvY2st
PmxvY2tlZCkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKCombG9jay0+bG9ja2VkKSA9PSBzaXpl
b2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfNDUoKTsgfSB3aGlsZSAoMCk7IF9fYXNt
X18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7ICh7IHVuaW9uIHsgdHlwZW9mKCombG9j
ay0+bG9ja2VkKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVv
ZigqJmxvY2stPmxvY2tlZCkpICgwKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCombG9jay0+bG9j
a2VkKSwgX191Ll9fYywgc2l6ZW9mKCombG9jay0+bG9ja2VkKSk7IF9fdS5fX3ZhbDsgfSk7IH0g
d2hpbGUgKDApOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHF1ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGgoc3RydWN0IHFzcGlu
bG9jayAqbG9jaywgdTMyIHZhbCkKewogcHZfcXVldWVkX3NwaW5fbG9ja19zbG93cGF0aChsb2Nr
LCB2YWwpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHF1ZXVlZF9zcGluX3VubG9jayhzdHJ1Y3QgcXNwaW5sb2NrICpsb2Nr
KQp7CiBwdl9xdWV1ZWRfc3Bpbl91bmxvY2sobG9jayk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHZjcHVfaXNfcHJlZW1w
dGVkKGxvbmcgY3B1KQp7CiByZXR1cm4gcHZfdmNwdV9pc19wcmVlbXB0ZWQoY3B1KTsKfQojIDcz
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlubG9jay5oIgpleHRlcm4gc3RydWN0IHN0YXRp
Y19rZXlfdHJ1ZSB2aXJ0X3NwaW5fbG9ja19rZXk7Cgp2b2lkIG5hdGl2ZV9wdl9sb2NrX2luaXQo
dm9pZCkgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmli
dXRlX18oKF9fY29sZF9fKSkgOwojIDg2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlubG9j
ay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIHZpcnRfc3Bpbl9sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2spCnsKIGlmICgh
KHsgYm9vbCBicmFuY2g7IGlmIChfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigq
JnZpcnRfc3Bpbl9sb2NrX2tleSksIHN0cnVjdCBzdGF0aWNfa2V5X3RydWUpKSBicmFuY2ggPSAh
YXJjaF9zdGF0aWNfYnJhbmNoKCYoJnZpcnRfc3Bpbl9sb2NrX2tleSktPmtleSwgdHJ1ZSk7IGVs
c2UgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKComdmlydF9zcGluX2xv
Y2tfa2V5KSwgc3RydWN0IHN0YXRpY19rZXlfZmFsc2UpKSBicmFuY2ggPSAhYXJjaF9zdGF0aWNf
YnJhbmNoX2p1bXAoJigmdmlydF9zcGluX2xvY2tfa2V5KS0+a2V5LCB0cnVlKTsgZWxzZSBicmFu
Y2ggPSBfX19fd3JvbmdfYnJhbmNoX2Vycm9yKCk7IF9fYnVpbHRpbl9leHBlY3QoISEoYnJhbmNo
KSwgMSk7IH0pKQogIHJldHVybiBmYWxzZTsKCgoKCgoKCiBkbyB7CiAgd2hpbGUgKGF0b21pY19y
ZWFkKCZsb2NrLT52YWwpICE9IDApCiAgIGNwdV9yZWxheCgpOwogfSB3aGlsZSAoYXRvbWljX2Nt
cHhjaGcoJmxvY2stPnZhbCwgMCwgKDFVIDw8IDApKSAhPSAwKTsKCiByZXR1cm4gdHJ1ZTsKfQoK
CgoKCgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xc3BpbmxvY2suaCIgMQojIDIwICIuL2lu
Y2x1ZGUvYXNtLWdlbmVyaWMvcXNwaW5sb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgaW50IHF1ZXVlZF9zcGluX2lzX2xvY2tlZChzdHJ1Y3QgcXNwaW5sb2NrICpsb2Nr
KQp7CgoKCgogcmV0dXJuIGF0b21pY19yZWFkKCZsb2NrLT52YWwpOwp9CiMgMzkgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9xc3BpbmxvY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5l
X18pKSBpbnQgcXVldWVkX3NwaW5fdmFsdWVfdW5sb2NrZWQoc3RydWN0IHFzcGlubG9jayBsb2Nr
KQp7CiByZXR1cm4gIWF0b21pY19yZWFkKCZsb2NrLnZhbCk7Cn0KCgoKCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgcXVldWVkX3NwaW5faXNfY29udGVuZGVkKHN0cnVj
dCBxc3BpbmxvY2sgKmxvY2spCnsKIHJldHVybiBhdG9taWNfcmVhZCgmbG9jay0+dmFsKSAmIH4o
KCgxVSA8PCA4KSAtIDEpIDw8IDApOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSBpbnQgcXVldWVkX3NwaW5fdHJ5bG9jayhzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrKQp7
CiB1MzIgdmFsID0gYXRvbWljX3JlYWQoJmxvY2stPnZhbCk7CgogaWYgKF9fYnVpbHRpbl9leHBl
Y3QoISEodmFsKSwgMCkpCiAgcmV0dXJuIDA7CgogcmV0dXJuIF9fYnVpbHRpbl9leHBlY3QoISEo
YXRvbWljX3RyeV9jbXB4Y2hnKCZsb2NrLT52YWwsICZ2YWwsICgxVSA8PCAwKSkpLCAxKTsKfQoK
ZXh0ZXJuIHZvaWQgcXVldWVkX3NwaW5fbG9ja19zbG93cGF0aChzdHJ1Y3QgcXNwaW5sb2NrICps
b2NrLCB1MzIgdmFsKTsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgcXVldWVkX3NwaW5fbG9jayhzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrKQp7CiB1MzIgdmFsID0g
MDsKCiBpZiAoX19idWlsdGluX2V4cGVjdCghIShhdG9taWNfdHJ5X2NtcHhjaGcoJmxvY2stPnZh
bCwgJnZhbCwgKDFVIDw8IDApKSksIDEpKQogIHJldHVybjsKCiBxdWV1ZWRfc3Bpbl9sb2NrX3Ns
b3dwYXRoKGxvY2ssIHZhbCk7Cn0KIyAxMTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXNwaW5s
b2NrLmgiIDIKIyAyOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9jay5oIiAyCiMgNDMg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIKIyAxICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3Fyd2xvY2suaCIgMQoKCgoKCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3Fyd2xv
Y2suaCIgMQojIDMwICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcXJ3bG9jay5oIgpleHRlcm4gdm9p
ZCBxdWV1ZWRfcmVhZF9sb2NrX3Nsb3dwYXRoKHN0cnVjdCBxcndsb2NrICpsb2NrKTsKZXh0ZXJu
IHZvaWQgcXVldWVkX3dyaXRlX2xvY2tfc2xvd3BhdGgoc3RydWN0IHFyd2xvY2sgKmxvY2spOwoK
CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgcXVldWVkX3JlYWRfdHJ5bG9jayhzdHJ1Y3QgcXJ3bG9jayAqbG9jaykKewogdTMy
IGNudHM7CgogY250cyA9IGF0b21pY19yZWFkKCZsb2NrLT5jbnRzKTsKIGlmIChfX2J1aWx0aW5f
ZXhwZWN0KCEhKCEoY250cyAmIDB4MWZmKSksIDEpKSB7CiAgY250cyA9ICh1MzIpYXRvbWljX2Fk
ZF9yZXR1cm4oKDFVIDw8IDkpLCAmbG9jay0+Y250cyk7CiAgaWYgKF9fYnVpbHRpbl9leHBlY3Qo
ISEoIShjbnRzICYgMHgxZmYpKSwgMSkpCiAgIHJldHVybiAxOwogIGF0b21pY19zdWIoKDFVIDw8
IDkpLCAmbG9jay0+Y250cyk7CiB9CiByZXR1cm4gMDsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcXVldWVkX3dyaXRl
X3RyeWxvY2soc3RydWN0IHFyd2xvY2sgKmxvY2spCnsKIHUzMiBjbnRzOwoKIGNudHMgPSBhdG9t
aWNfcmVhZCgmbG9jay0+Y250cyk7CiBpZiAoX19idWlsdGluX2V4cGVjdCghIShjbnRzKSwgMCkp
CiAgcmV0dXJuIDA7CgogcmV0dXJuIF9fYnVpbHRpbl9leHBlY3QoISEoYXRvbWljX3RyeV9jbXB4
Y2hnKCZsb2NrLT5jbnRzLCAmY250cywgMHgwZmYpKSwgMSkKICAgICAgICAgICAgICAgIDsKfQoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBxdWV1ZWRfcmVhZF9sb2NrKHN0cnVjdCBxcndsb2NrICpsb2NrKQp7CiB1MzIgY250
czsKCiBjbnRzID0gYXRvbWljX2FkZF9yZXR1cm4oKDFVIDw8IDkpLCAmbG9jay0+Y250cyk7CiBp
ZiAoX19idWlsdGluX2V4cGVjdCghISghKGNudHMgJiAweDFmZikpLCAxKSkKICByZXR1cm47CgoK
IHF1ZXVlZF9yZWFkX2xvY2tfc2xvd3BhdGgobG9jayk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHF1ZXVlZF93cml0
ZV9sb2NrKHN0cnVjdCBxcndsb2NrICpsb2NrKQp7CiB1MzIgY250cyA9IDA7CgogaWYgKF9fYnVp
bHRpbl9leHBlY3QoISEoYXRvbWljX3RyeV9jbXB4Y2hnKCZsb2NrLT5jbnRzLCAmY250cywgMHgw
ZmYpKSwgMSkpCiAgcmV0dXJuOwoKIHF1ZXVlZF93cml0ZV9sb2NrX3Nsb3dwYXRoKGxvY2spOwp9
CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBxdWV1ZWRfcmVhZF91bmxvY2soc3RydWN0IHFyd2xvY2sgKmxvY2spCnsKCgoK
ICh2b2lkKWF0b21pY19zdWJfcmV0dXJuKCgxVSA8PCA5KSwgJmxvY2stPmNudHMpOwp9CgoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBxdWV1ZWRfd3JpdGVfdW5sb2NrKHN0cnVjdCBxcndsb2NrICpsb2NrKQp7CiBkbyB7IGRv
IHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMTE2KHZvaWQpIF9fYXR0cmlidXRl
X18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0
b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKCombG9jay0+d2xvY2tlZCkgPT0gc2l6ZW9mKGNo
YXIpIHx8IHNpemVvZigqJmxvY2stPndsb2NrZWQpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9m
KCombG9jay0+d2xvY2tlZCkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKCombG9jay0+d2xvY2tl
ZCkgPT0gc2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzExNigpOyB9IHdoaWxl
ICgwKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKHsgdW5pb24geyB0
eXBlb2YoKiZsb2NrLT53bG9ja2VkKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192
YWwgPSAoIHR5cGVvZigqJmxvY2stPndsb2NrZWQpKSAoMCkgfTsgX193cml0ZV9vbmNlX3NpemUo
JigqJmxvY2stPndsb2NrZWQpLCBfX3UuX19jLCBzaXplb2YoKiZsb2NrLT53bG9ja2VkKSk7IF9f
dS5fX3ZhbDsgfSk7IH0gd2hpbGUgKDApOwp9CiMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9x
cndsb2NrLmgiIDIKIyA0NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9jay5oIiAyCiMg
OTAgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCiMgMTc4ICIuL2luY2x1ZGUvbGludXgv
c3BpbmxvY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBkb19yYXdfc3Bpbl9sb2NrKHJhd19zcGlubG9ja190ICpsb2NrKQp7
CiAodm9pZCkwOwogcXVldWVkX3NwaW5fbG9jaygmbG9jay0+cmF3X2xvY2spOwogZG8geyB9IHdo
aWxlICgwKTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQKZG9fcmF3X3NwaW5fbG9ja19mbGFncyhyYXdfc3BpbmxvY2tf
dCAqbG9jaywgdW5zaWduZWQgbG9uZyAqZmxhZ3MpCnsKICh2b2lkKTA7CiBxdWV1ZWRfc3Bpbl9s
b2NrKCZsb2NrLT5yYXdfbG9jayk7CiBkbyB7IH0gd2hpbGUgKDApOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZG9fcmF3X3Nw
aW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tfdCAqbG9jaykKewogaW50IHJldCA9IHF1ZXVlZF9zcGlu
X3RyeWxvY2soJihsb2NrKS0+cmF3X2xvY2spOwoKIGlmIChyZXQpCiAgZG8geyB9IHdoaWxlICgw
KTsKCiByZXR1cm4gcmV0Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRvX3Jhd19zcGluX3VubG9jayhyYXdfc3BpbmxvY2tf
dCAqbG9jaykKewogZG8geyB9IHdoaWxlICgwKTsKIHF1ZXVlZF9zcGluX3VubG9jaygmbG9jay0+
cmF3X2xvY2spOwogKHZvaWQpMDsKfQojIDMxMCAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgi
CiMgMSAiLi9pbmNsdWRlL2xpbnV4L3J3bG9jay5oIiAxCiMgMzExICIuL2luY2x1ZGUvbGludXgv
c3BpbmxvY2suaCIgMgoKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX2FwaV9zbXAu
aCIgMQojIDE4ICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfYXBpX3NtcC5oIgppbnQgaW5fbG9j
a19mdW5jdGlvbnModW5zaWduZWQgbG9uZyBhZGRyKTsKCgoKdm9pZCBfX2F0dHJpYnV0ZV9fKChz
ZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX2xvY2socmF3X3NwaW5sb2NrX3Qg
KmxvY2spIDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkg
X3Jhd19zcGluX2xvY2tfbmVzdGVkKHJhd19zcGlubG9ja190ICpsb2NrLCBpbnQgc3ViY2xhc3Mp
CiAgICAgICAgOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0Iikp
KQpfcmF3X3NwaW5fbG9ja19uZXN0X2xvY2socmF3X3NwaW5sb2NrX3QgKmxvY2ssIHN0cnVjdCBs
b2NrZGVwX21hcCAqbWFwKQogICAgICAgIDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIu
c3BpbmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX2xvY2tfYmgocmF3X3NwaW5sb2NrX3QgKmxvY2sp
IDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19z
cGluX2xvY2tfaXJxKHJhd19zcGlubG9ja190ICpsb2NrKQogICAgICAgIDsKCnVuc2lnbmVkIGxv
bmcgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bpbl9s
b2NrX2lycXNhdmUocmF3X3NwaW5sb2NrX3QgKmxvY2spCiAgICAgICAgOwp1bnNpZ25lZCBsb25n
IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQpfcmF3X3NwaW5fbG9j
a19pcnFzYXZlX25lc3RlZChyYXdfc3BpbmxvY2tfdCAqbG9jaywgaW50IHN1YmNsYXNzKQogICAg
ICAgIDsKaW50IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKSBfcmF3
X3NwaW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tfdCAqbG9jayk7CmludCBfX2F0dHJpYnV0ZV9fKChz
ZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX3RyeWxvY2tfYmgocmF3X3NwaW5s
b2NrX3QgKmxvY2spOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0
IikpKSBfcmF3X3NwaW5fdW5sb2NrKHJhd19zcGlubG9ja190ICpsb2NrKSA7CnZvaWQgX19hdHRy
aWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bpbl91bmxvY2tfYmgo
cmF3X3NwaW5sb2NrX3QgKmxvY2spIDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3Bp
bmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX3VubG9ja19pcnEocmF3X3NwaW5sb2NrX3QgKmxvY2sp
IDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkKX3Jhd19z
cGluX3VubG9ja19pcnFyZXN0b3JlKHJhd19zcGlubG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25n
IGZsYWdzKQogICAgICAgIDsKIyA4NiAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX2FwaV9zbXAu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IF9fcmF3X3NwaW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tfdCAqbG9jaykKewogX19hc21f
XyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIGlmIChkb19yYXdfc3Bpbl90cnlsb2Nr
KGxvY2spKSB7CiAgZG8geyB9IHdoaWxlICgwKTsKICByZXR1cm4gMTsKIH0KIF9fYXNtX18gX192
b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiByZXR1cm4gMDsKfQojIDEwNCAiLi9pbmNsdWRl
L2xpbnV4L3NwaW5sb2NrX2FwaV9zbXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX3Jhd19zcGluX2xvY2tf
aXJxc2F2ZShyYXdfc3BpbmxvY2tfdCAqbG9jaykKewogdW5zaWduZWQgbG9uZyBmbGFnczsKCiBk
byB7IGRvIHsgKHsgdW5zaWduZWQgbG9uZyBfX2R1bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVtbXky
OyAodm9pZCkoJl9fZHVtbXkgPT0gJl9fZHVtbXkyKTsgMTsgfSk7IGZsYWdzID0gYXJjaF9sb2Nh
bF9pcnFfc2F2ZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CiBfX2FzbV9fIF9fdm9sYXRp
bGVfXygiIjogOiA6Im1lbW9yeSIpOwogZG8geyB9IHdoaWxlICgwKTsKIyAxMTkgIi4vaW5jbHVk
ZS9saW51eC9zcGlubG9ja19hcGlfc21wLmgiCiBkb19yYXdfc3Bpbl9sb2NrX2ZsYWdzKGxvY2ss
ICZmbGFncyk7CgogcmV0dXJuIGZsYWdzOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3NwaW5fbG9ja19pcnEocmF3
X3NwaW5sb2NrX3QgKmxvY2spCnsKIGRvIHsgYXJjaF9sb2NhbF9pcnFfZGlzYWJsZSgpOyB9IHdo
aWxlICgwKTsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBkbyB7IH0g
d2hpbGUgKDApOwogZG9fcmF3X3NwaW5fbG9jayhsb2NrKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd19zcGluX2xv
Y2tfYmgocmF3X3NwaW5sb2NrX3QgKmxvY2spCnsKIF9fbG9jYWxfYmhfZGlzYWJsZV9pcCgodW5z
aWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICgoMiAqICgxVUwgPDwgKDAg
KyA4KSkpICsgMCkpOwogZG8geyB9IHdoaWxlICgwKTsKIGRvX3Jhd19zcGluX2xvY2sobG9jayk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgX19yYXdfc3Bpbl9sb2NrKHJhd19zcGlubG9ja190ICpsb2NrKQp7CiBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogZG8geyB9IHdoaWxlICgwKTsKIGRvX3Jh
d19zcGluX2xvY2sobG9jayk7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd19zcGluX3VubG9jayhyYXdfc3Bpbmxv
Y2tfdCAqbG9jaykKewogZG8geyB9IHdoaWxlICgwKTsKIGRvX3Jhd19zcGluX3VubG9jayhsb2Nr
KTsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdf
c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShyYXdfc3BpbmxvY2tfdCAqbG9jaywKICAgICAgICAgdW5z
aWduZWQgbG9uZyBmbGFncykKewogZG8geyB9IHdoaWxlICgwKTsKIGRvX3Jhd19zcGluX3VubG9j
ayhsb2NrKTsKIGRvIHsgZG8geyAoeyB1bnNpZ25lZCBsb25nIF9fZHVtbXk7IHR5cGVvZihmbGFn
cykgX19kdW1teTI7ICh2b2lkKSgmX19kdW1teSA9PSAmX19kdW1teTIpOyAxOyB9KTsgYXJjaF9s
b2NhbF9pcnFfcmVzdG9yZShmbGFncyk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIF9fYXNt
X18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfc3Bpbl91bmxv
Y2tfaXJxKHJhd19zcGlubG9ja190ICpsb2NrKQp7CiBkbyB7IH0gd2hpbGUgKDApOwogZG9fcmF3
X3NwaW5fdW5sb2NrKGxvY2spOwogZG8geyBhcmNoX2xvY2FsX2lycV9lbmFibGUoKTsgfSB3aGls
ZSAoMCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9f
cmF3X3NwaW5fdW5sb2NrX2JoKHJhd19zcGlubG9ja190ICpsb2NrKQp7CiBkbyB7IH0gd2hpbGUg
KDApOwogZG9fcmF3X3NwaW5fdW5sb2NrKGxvY2spOwogX19sb2NhbF9iaF9lbmFibGVfaXAoKHVu
c2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCAoKDIgKiAoMVVMIDw8ICgw
ICsgOCkpKSArIDApKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fcmF3X3NwaW5fdHJ5bG9ja19iaChyYXdfc3BpbmxvY2tf
dCAqbG9jaykKewogX19sb2NhbF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRp
bl9yZXR1cm5fYWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CiBpZiAo
ZG9fcmF3X3NwaW5fdHJ5bG9jayhsb2NrKSkgewogIGRvIHsgfSB3aGlsZSAoMCk7CiAgcmV0dXJu
IDE7CiB9CiBfX2xvY2FsX2JoX2VuYWJsZV9pcCgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0
dXJuX2FkZHJlc3MoMCksICgoMiAqICgxVUwgPDwgKDAgKyA4KSkpICsgMCkpOwogcmV0dXJuIDA7
Cn0KCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3J3bG9ja19hcGlfc21wLmgiIDEKIyAxOCAiLi9pbmNs
dWRlL2xpbnV4L3J3bG9ja19hcGlfc21wLmgiCnZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigi
LnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfcmVhZF9sb2NrKHJ3bG9ja190ICpsb2NrKSA7CnZvaWQg
X19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfbG9j
ayhyd2xvY2tfdCAqbG9jaykgOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9j
ay50ZXh0IikpKSBfcmF3X3JlYWRfbG9ja19iaChyd2xvY2tfdCAqbG9jaykgOwp2b2lkIF9fYXR0
cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKSBfcmF3X3dyaXRlX2xvY2tfYmgo
cndsb2NrX3QgKmxvY2spIDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2su
dGV4dCIpKSkgX3Jhd19yZWFkX2xvY2tfaXJxKHJ3bG9ja190ICpsb2NrKSA7CnZvaWQgX19hdHRy
aWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfbG9ja19pcnEo
cndsb2NrX3QgKmxvY2spIDsKdW5zaWduZWQgbG9uZyBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIu
c3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFkX2xvY2tfaXJxc2F2ZShyd2xvY2tfdCAqbG9jaykK
ICAgICAgIDsKdW5zaWduZWQgbG9uZyBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2su
dGV4dCIpKSkgX3Jhd193cml0ZV9sb2NrX2lycXNhdmUocndsb2NrX3QgKmxvY2spCiAgICAgICA7
CmludCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFk
X3RyeWxvY2socndsb2NrX3QgKmxvY2spOwppbnQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNw
aW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfdHJ5bG9jayhyd2xvY2tfdCAqbG9jayk7CnZvaWQg
X19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfcmVhZF91bmxv
Y2socndsb2NrX3QgKmxvY2spIDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3Bpbmxv
Y2sudGV4dCIpKSkgX3Jhd193cml0ZV91bmxvY2socndsb2NrX3QgKmxvY2spIDsKdm9pZCBfX2F0
dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFkX3VubG9ja19i
aChyd2xvY2tfdCAqbG9jaykgOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9j
ay50ZXh0IikpKSBfcmF3X3dyaXRlX3VubG9ja19iaChyd2xvY2tfdCAqbG9jaykgOwp2b2lkIF9f
YXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKSBfcmF3X3JlYWRfdW5sb2Nr
X2lycShyd2xvY2tfdCAqbG9jaykgOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlu
bG9jay50ZXh0IikpKSBfcmF3X3dyaXRlX3VubG9ja19pcnEocndsb2NrX3QgKmxvY2spIDsKdm9p
ZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkKX3Jhd19yZWFkX3Vu
bG9ja19pcnFyZXN0b3JlKHJ3bG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZsYWdzKQogICAg
ICAgOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQpfcmF3
X3dyaXRlX3VubG9ja19pcnFyZXN0b3JlKHJ3bG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZs
YWdzKQogICAgICAgOwojIDExNyAiLi9pbmNsdWRlL2xpbnV4L3J3bG9ja19hcGlfc21wLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBfX3Jhd19yZWFkX3RyeWxvY2socndsb2NrX3QgKmxvY2spCnsKIF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBpZiAocXVldWVkX3JlYWRfdHJ5bG9jaygmKGxvY2spLT5y
YXdfbG9jaykpIHsKICBkbyB7IH0gd2hpbGUgKDApOwogIHJldHVybiAxOwogfQogX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19yYXdfd3Jp
dGVfdHJ5bG9jayhyd2xvY2tfdCAqbG9jaykKewogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDog
OiJtZW1vcnkiKTsKIGlmIChxdWV1ZWRfd3JpdGVfdHJ5bG9jaygmKGxvY2spLT5yYXdfbG9jaykp
IHsKICBkbyB7IH0gd2hpbGUgKDApOwogIHJldHVybiAxOwogfQogX19hc21fXyBfX3ZvbGF0aWxl
X18oIiI6IDogOiJtZW1vcnkiKTsKIHJldHVybiAwOwp9CiMgMTQ2ICIuL2luY2x1ZGUvbGludXgv
cndsb2NrX2FwaV9zbXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd19yZWFkX2xvY2socndsb2NrX3QgKmxvY2spCnsK
IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBkbyB7IH0gd2hpbGUgKDAp
OwogZG8geyh2b2lkKTA7IHF1ZXVlZF9yZWFkX2xvY2soJihsb2NrKS0+cmF3X2xvY2spOyB9IHdo
aWxlICgwKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX3Jhd19yZWFkX2xvY2tfaXJxc2F2ZShyd2xvY2tf
dCAqbG9jaykKewogdW5zaWduZWQgbG9uZyBmbGFnczsKCiBkbyB7IGRvIHsgKHsgdW5zaWduZWQg
bG9uZyBfX2R1bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0g
Jl9fZHVtbXkyKTsgMTsgfSk7IGZsYWdzID0gYXJjaF9sb2NhbF9pcnFfc2F2ZSgpOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OwogZG8geyB9IHdoaWxlICgwKTsKIGRvIHsodm9pZCkwOyBxdWV1ZWRfcmVhZF9sb2NrKCYoKGxv
Y2spKS0+cmF3X2xvY2spOyB9IHdoaWxlICgwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA7CiByZXR1cm4gZmxhZ3M7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfcmVhZF9sb2NrX2lycShy
d2xvY2tfdCAqbG9jaykKewogZG8geyBhcmNoX2xvY2FsX2lycV9kaXNhYmxlKCk7IH0gd2hpbGUg
KDApOwogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIGRvIHsgfSB3aGls
ZSAoMCk7CiBkbyB7KHZvaWQpMDsgcXVldWVkX3JlYWRfbG9jaygmKGxvY2spLT5yYXdfbG9jayk7
IH0gd2hpbGUgKDApOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3JlYWRfbG9ja19iaChyd2xvY2tfdCAqbG9jaykK
ewogX19sb2NhbF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5f
YWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CiBkbyB7IH0gd2hpbGUg
KDApOwogZG8geyh2b2lkKTA7IHF1ZXVlZF9yZWFkX2xvY2soJihsb2NrKS0+cmF3X2xvY2spOyB9
IHdoaWxlICgwKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX3Jhd193cml0ZV9sb2NrX2lycXNhdmUocnds
b2NrX3QgKmxvY2spCnsKIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CgogZG8geyBkbyB7ICh7IHVuc2ln
bmVkIGxvbmcgX19kdW1teTsgdHlwZW9mKGZsYWdzKSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15
ID09ICZfX2R1bW15Mik7IDE7IH0pOyBmbGFncyA9IGFyY2hfbG9jYWxfaXJxX3NhdmUoKTsgfSB3
aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1v
cnkiKTsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7KHZvaWQpMDsgcXVldWVkX3dyaXRlX2xvY2so
JigobG9jaykpLT5yYXdfbG9jayk7IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA7CiByZXR1cm4gZmxhZ3M7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfd3JpdGVfbG9j
a19pcnEocndsb2NrX3QgKmxvY2spCnsKIGRvIHsgYXJjaF9sb2NhbF9pcnFfZGlzYWJsZSgpOyB9
IHdoaWxlICgwKTsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBkbyB7
IH0gd2hpbGUgKDApOwogZG8geyh2b2lkKTA7IHF1ZXVlZF93cml0ZV9sb2NrKCYobG9jayktPnJh
d19sb2NrKTsgfSB3aGlsZSAoMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfd3JpdGVfbG9ja19iaChyd2xvY2tf
dCAqbG9jaykKewogX19sb2NhbF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRp
bl9yZXR1cm5fYWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CiBkbyB7
IH0gd2hpbGUgKDApOwogZG8geyh2b2lkKTA7IHF1ZXVlZF93cml0ZV9sb2NrKCYobG9jayktPnJh
d19sb2NrKTsgfSB3aGlsZSAoMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfd3JpdGVfbG9jayhyd2xvY2tfdCAq
bG9jaykKewogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIGRvIHsgfSB3
aGlsZSAoMCk7CiBkbyB7KHZvaWQpMDsgcXVldWVkX3dyaXRlX2xvY2soJihsb2NrKS0+cmF3X2xv
Y2spOyB9IHdoaWxlICgwKTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3dyaXRlX3VubG9jayhyd2xvY2tfdCAq
bG9jaykKewogZG8geyB9IHdoaWxlICgwKTsKIGRvIHtxdWV1ZWRfd3JpdGVfdW5sb2NrKCYobG9j
ayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAoMCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVf
XygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3JlYWRfdW5sb2NrKHJ3bG9ja190ICps
b2NrKQp7CiBkbyB7IH0gd2hpbGUgKDApOwogZG8ge3F1ZXVlZF9yZWFkX3VubG9jaygmKGxvY2sp
LT5yYXdfbG9jayk7ICh2b2lkKTA7IH0gd2hpbGUgKDApOwogX19hc21fXyBfX3ZvbGF0aWxlX18o
IiI6IDogOiJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApfX3Jhd19yZWFkX3VubG9ja19pcnFyZXN0b3JlKHJ3
bG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZsYWdzKQp7CiBkbyB7IH0gd2hpbGUgKDApOwog
ZG8ge3F1ZXVlZF9yZWFkX3VubG9jaygmKGxvY2spLT5yYXdfbG9jayk7ICh2b2lkKTA7IH0gd2hp
bGUgKDApOwogZG8geyBkbyB7ICh7IHVuc2lnbmVkIGxvbmcgX19kdW1teTsgdHlwZW9mKGZsYWdz
KSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15ID09ICZfX2R1bW15Mik7IDE7IH0pOyBhcmNoX2xv
Y2FsX2lycV9yZXN0b3JlKGZsYWdzKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogX19hc21f
XyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd19yZWFkX3VubG9j
a19pcnEocndsb2NrX3QgKmxvY2spCnsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7cXVldWVkX3Jl
YWRfdW5sb2NrKCYobG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAoMCk7CiBkbyB7
IGFyY2hfbG9jYWxfaXJxX2VuYWJsZSgpOyB9IHdoaWxlICgwKTsKIF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfcmVhZF91bmxvY2tfYmgocndsb2Nr
X3QgKmxvY2spCnsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7cXVldWVkX3JlYWRfdW5sb2NrKCYo
bG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAoMCk7CiBfX2xvY2FsX2JoX2VuYWJs
ZV9pcCgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICgoMiAqICgx
VUwgPDwgKDAgKyA4KSkpICsgMCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3dyaXRlX3VubG9ja19pcnFyZXN0
b3JlKHJ3bG9ja190ICpsb2NrLAogICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncykKewogZG8g
eyB9IHdoaWxlICgwKTsKIGRvIHtxdWV1ZWRfd3JpdGVfdW5sb2NrKCYobG9jayktPnJhd19sb2Nr
KTsgKHZvaWQpMDsgfSB3aGlsZSAoMCk7CiBkbyB7IGRvIHsgKHsgdW5zaWduZWQgbG9uZyBfX2R1
bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0gJl9fZHVtbXky
KTsgMTsgfSk7IGFyY2hfbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyB9IHdoaWxlICgwKTsgfSB3
aGlsZSAoMCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IF9fcmF3X3dyaXRlX3VubG9ja19pcnEocndsb2NrX3QgKmxvY2spCnsKIGRvIHsgfSB3aGlsZSAo
MCk7CiBkbyB7cXVldWVkX3dyaXRlX3VubG9jaygmKGxvY2spLT5yYXdfbG9jayk7ICh2b2lkKTA7
IH0gd2hpbGUgKDApOwogZG8geyBhcmNoX2xvY2FsX2lycV9lbmFibGUoKTsgfSB3aGlsZSAoMCk7
CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3dy
aXRlX3VubG9ja19iaChyd2xvY2tfdCAqbG9jaykKewogZG8geyB9IHdoaWxlICgwKTsKIGRvIHtx
dWV1ZWRfd3JpdGVfdW5sb2NrKCYobG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAo
MCk7CiBfX2xvY2FsX2JoX2VuYWJsZV9pcCgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJu
X2FkZHJlc3MoMCksICgoMiAqICgxVUwgPDwgKDAgKyA4KSkpICsgMCkpOwp9CiMgMTkxICIuL2lu
Y2x1ZGUvbGludXgvc3BpbmxvY2tfYXBpX3NtcC5oIiAyCiMgMzE3ICIuL2luY2x1ZGUvbGludXgv
c3BpbmxvY2suaCIgMgojIDMyNSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgcmF3X3NwaW5sb2NrX3QgKnNwaW5sb2NrX2NoZWNr
KHNwaW5sb2NrX3QgKmxvY2spCnsKIHJldHVybiAmbG9jay0+cmxvY2s7Cn0KCgoKCgoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBzcGluX2xvY2soc3BpbmxvY2tfdCAq
bG9jaykKewogX3Jhd19zcGluX2xvY2soJmxvY2stPnJsb2NrKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNwaW5fbG9ja19iaChzcGlubG9ja190ICpsb2NrKQp7
CiBfcmF3X3NwaW5fbG9ja19iaCgmbG9jay0+cmxvY2spOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBzcGluX3RyeWxvY2soc3BpbmxvY2tfdCAqbG9jaykKewogcmV0
dXJuIChfcmF3X3NwaW5fdHJ5bG9jaygmbG9jay0+cmxvY2spKTsKfQojIDM2MSAiLi9pbmNsdWRl
L2xpbnV4L3NwaW5sb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZCBzcGluX2xvY2tfaXJxKHNwaW5sb2NrX3QgKmxvY2spCnsKIF9yYXdfc3Bpbl9sb2NrX2lycSgm
bG9jay0+cmxvY2spOwp9CiMgMzc2ICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNwaW5fdW5sb2NrKHNwaW5sb2NrX3Qg
KmxvY2spCnsKIF9fcmF3X3NwaW5fdW5sb2NrKCZsb2NrLT5ybG9jayk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBzcGluX3VubG9ja19iaChzcGlubG9ja190ICps
b2NrKQp7CiBfcmF3X3NwaW5fdW5sb2NrX2JoKCZsb2NrLT5ybG9jayk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBzcGluX3VubG9ja19pcnEoc3BpbmxvY2tfdCAq
bG9jaykKewogX19yYXdfc3Bpbl91bmxvY2tfaXJxKCZsb2NrLT5ybG9jayk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBzcGluX3VubG9ja19pcnFyZXN0b3JlKHNw
aW5sb2NrX3QgKmxvY2ssIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCnsKIGRvIHsgKHsgdW5zaWduZWQg
bG9uZyBfX2R1bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0g
Jl9fZHVtbXkyKTsgMTsgfSk7IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbG9jay0+cmxv
Y2ssIGZsYWdzKTsgfSB3aGlsZSAoMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgaW50IHNwaW5fdHJ5bG9ja19iaChzcGlubG9ja190ICpsb2NrKQp7CiByZXR1cm4gKF9y
YXdfc3Bpbl90cnlsb2NrX2JoKCZsb2NrLT5ybG9jaykpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBzcGluX3RyeWxvY2tfaXJxKHNwaW5sb2NrX3QgKmxvY2spCnsK
IHJldHVybiAoeyBkbyB7IGFyY2hfbG9jYWxfaXJxX2Rpc2FibGUoKTsgfSB3aGlsZSAoMCk7IChf
cmF3X3NwaW5fdHJ5bG9jaygmbG9jay0+cmxvY2spKSA/IDEgOiAoeyBkbyB7IGFyY2hfbG9jYWxf
aXJxX2VuYWJsZSgpOyB9IHdoaWxlICgwKTsgMDsgfSk7IH0pOwp9CiMgNDI5ICIuL2luY2x1ZGUv
bGludXgvc3BpbmxvY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQg
c3Bpbl9pc19sb2NrZWQoc3BpbmxvY2tfdCAqbG9jaykKewogcmV0dXJuIHF1ZXVlZF9zcGluX2lz
X2xvY2tlZCgmKCZsb2NrLT5ybG9jayktPnJhd19sb2NrKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBpbnQgc3Bpbl9pc19jb250ZW5kZWQoc3BpbmxvY2tfdCAqbG9jaykK
ewogcmV0dXJuIHF1ZXVlZF9zcGluX2lzX2NvbnRlbmRlZCgmKCZsb2NrLT5ybG9jayktPnJhd19s
b2NrKTsKfQojIDQ1NCAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiCmV4dGVybiBpbnQgX2F0
b21pY19kZWNfYW5kX2xvY2soYXRvbWljX3QgKmF0b21pYywgc3BpbmxvY2tfdCAqbG9jayk7CgoK
CmV4dGVybiBpbnQgX2F0b21pY19kZWNfYW5kX2xvY2tfaXJxc2F2ZShhdG9taWNfdCAqYXRvbWlj
LCBzcGlubG9ja190ICpsb2NrLAogICAgIHVuc2lnbmVkIGxvbmcgKmZsYWdzKTsKCgoKaW50IF9f
YWxsb2NfYnVja2V0X3NwaW5sb2NrcyhzcGlubG9ja190ICoqbG9ja3MsIHVuc2lnbmVkIGludCAq
bG9ja19tYXNrLAogICAgICAgIHNpemVfdCBtYXhfc2l6ZSwgdW5zaWduZWQgaW50IGNwdV9tdWx0
LAogICAgICAgIGdmcF90IGdmcCwgY29uc3QgY2hhciAqbmFtZSwKICAgICAgICBzdHJ1Y3QgbG9j
a19jbGFzc19rZXkgKmtleSk7CiMgNDc4ICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIKdm9p
ZCBmcmVlX2J1Y2tldF9zcGlubG9ja3Moc3BpbmxvY2tfdCAqbG9ja3MpOwojIDE3ICIuL2luY2x1
ZGUvbGludXgva3JlZi5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiIDEKIyA4
OCAiLi9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiCnN0cnVjdCBtdXRleDsKIyA5OCAiLi9pbmNs
dWRlL2xpbnV4L3JlZmNvdW50LmgiCnR5cGVkZWYgc3RydWN0IHJlZmNvdW50X3N0cnVjdCB7CiBh
dG9taWNfdCByZWZzOwp9IHJlZmNvdW50X3Q7CgoKCgoKZW51bSByZWZjb3VudF9zYXR1cmF0aW9u
X3R5cGUgewogUkVGQ09VTlRfQUREX05PVF9aRVJPX09WRiwKIFJFRkNPVU5UX0FERF9PVkYsCiBS
RUZDT1VOVF9BRERfVUFGLAogUkVGQ09VTlRfU1VCX1VBRiwKIFJFRkNPVU5UX0RFQ19MRUFLLAp9
OwoKdm9pZCByZWZjb3VudF93YXJuX3NhdHVyYXRlKHJlZmNvdW50X3QgKnIsIGVudW0gcmVmY291
bnRfc2F0dXJhdGlvbl90eXBlIHQpOwoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlZmNvdW50X3NldChyZWZjb3VudF90
ICpyLCBpbnQgbikKewogYXRvbWljX3NldCgmci0+cmVmcywgbik7Cn0KCgoKCgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVk
IGludCByZWZjb3VudF9yZWFkKGNvbnN0IHJlZmNvdW50X3QgKnIpCnsKIHJldHVybiBhdG9taWNf
cmVhZCgmci0+cmVmcyk7Cn0KIyAxNTUgIi4vaW5jbHVkZS9saW51eC9yZWZjb3VudC5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYm9vbCByZWZjb3VudF9hZGRfbm90
X3plcm8oaW50IGksIHJlZmNvdW50X3QgKnIpCnsKIGludCBvbGQgPSByZWZjb3VudF9yZWFkKHIp
OwoKIGRvIHsKICBpZiAoIW9sZCkKICAgYnJlYWs7CiB9IHdoaWxlICghYXRvbWljX3RyeV9jbXB4
Y2hnKCZyLT5yZWZzLCAmb2xkLCBvbGQgKyBpKSk7CgogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEo
b2xkIDwgMCB8fCBvbGQgKyBpIDwgMCksIDApKQogIHJlZmNvdW50X3dhcm5fc2F0dXJhdGUociwg
UkVGQ09VTlRfQUREX05PVF9aRVJPX09WRik7CgogcmV0dXJuIG9sZDsKfQojIDE4NiAiLi9pbmNs
dWRlL2xpbnV4L3JlZmNvdW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmVmY291bnRfYWRkKGludCBpLCByZWZjb3VudF90
ICpyKQp7CiBpbnQgb2xkID0gYXRvbWljX2ZldGNoX2FkZChpLCAmci0+cmVmcyk7CgogaWYgKF9f
YnVpbHRpbl9leHBlY3QoISEoIW9sZCksIDApKQogIHJlZmNvdW50X3dhcm5fc2F0dXJhdGUociwg
UkVGQ09VTlRfQUREX1VBRik7CiBlbHNlIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKG9sZCA8IDAg
fHwgb2xkICsgaSA8IDApLCAwKSkKICByZWZjb3VudF93YXJuX3NhdHVyYXRlKHIsIFJFRkNPVU5U
X0FERF9PVkYpOwp9CiMgMjA5ICIuL2luY2x1ZGUvbGludXgvcmVmY291bnQuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGJvb2wgcmVmY291bnRfaW5jX25vdF96ZXJv
KHJlZmNvdW50X3QgKnIpCnsKIHJldHVybiByZWZjb3VudF9hZGRfbm90X3plcm8oMSwgcik7Cn0K
IyAyMjYgIi4vaW5jbHVkZS9saW51eC9yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlZmNvdW50X2luYyhyZWZj
b3VudF90ICpyKQp7CiByZWZjb3VudF9hZGQoMSwgcik7Cn0KIyAyNTEgIi4vaW5jbHVkZS9saW51
eC9yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYm9v
bCByZWZjb3VudF9zdWJfYW5kX3Rlc3QoaW50IGksIHJlZmNvdW50X3QgKnIpCnsKIGludCBvbGQg
PSBhdG9taWNfZmV0Y2hfc3ViKGksICZyLT5yZWZzKTsKCiBpZiAob2xkID09IGkpIHsKICBfX2Fz
bV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogIHJldHVybiB0cnVlOwogfQoKIGlm
IChfX2J1aWx0aW5fZXhwZWN0KCEhKG9sZCA8IDAgfHwgb2xkIC0gaSA8IDApLCAwKSkKICByZWZj
b3VudF93YXJuX3NhdHVyYXRlKHIsIFJFRkNPVU5UX1NVQl9VQUYpOwoKIHJldHVybiBmYWxzZTsK
fQojIDI3OSAiLi9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fd2Fy
bl91bnVzZWRfcmVzdWx0X18pKSBib29sIHJlZmNvdW50X2RlY19hbmRfdGVzdChyZWZjb3VudF90
ICpyKQp7CiByZXR1cm4gcmVmY291bnRfc3ViX2FuZF90ZXN0KDEsIHIpOwp9CiMgMjk0ICIuL2lu
Y2x1ZGUvbGludXgvcmVmY291bnQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByZWZjb3VudF9kZWMocmVmY291bnRfdCAqcikK
ewogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoYXRvbWljX2ZldGNoX3N1YigxLCAmci0+cmVmcykg
PD0gMSksIDApKQogIHJlZmNvdW50X3dhcm5fc2F0dXJhdGUociwgUkVGQ09VTlRfREVDX0xFQUsp
Owp9CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGJvb2wg
cmVmY291bnRfZGVjX2lmX29uZShyZWZjb3VudF90ICpyKTsKZXh0ZXJuIF9fYXR0cmlidXRlX18o
KF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBib29sIHJlZmNvdW50X2RlY19ub3Rfb25lKHJlZmNv
dW50X3QgKnIpOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGJvb2wgcmVmY291bnRfZGVjX2FuZF9tdXRleF9sb2NrKHJlZmNvdW50X3QgKnIsIHN0cnVjdCBt
dXRleCAqbG9jayk7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkgYm9vbCByZWZjb3VudF9kZWNfYW5kX2xvY2socmVmY291bnRfdCAqciwgc3BpbmxvY2tfdCAq
bG9jayk7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYm9v
bCByZWZjb3VudF9kZWNfYW5kX2xvY2tfaXJxc2F2ZShyZWZjb3VudF90ICpyLAogICAgICAgICAg
ICAgc3BpbmxvY2tfdCAqbG9jaywKICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKmZsYWdzKTsK
IyAxOCAiLi9pbmNsdWRlL2xpbnV4L2tyZWYuaCIgMgoKc3RydWN0IGtyZWYgewogcmVmY291bnRf
dCByZWZjb3VudDsKfTsKCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga3JlZl9pbml0KHN0cnVjdCBrcmVmICprcmVmKQp7
CiByZWZjb3VudF9zZXQoJmtyZWYtPnJlZmNvdW50LCAxKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGtyZWZf
cmVhZChjb25zdCBzdHJ1Y3Qga3JlZiAqa3JlZikKewogcmV0dXJuIHJlZmNvdW50X3JlYWQoJmty
ZWYtPnJlZmNvdW50KTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga3JlZl9nZXQoc3RydWN0IGtyZWYgKmtyZWYpCnsK
IHJlZmNvdW50X2luYygma3JlZi0+cmVmY291bnQpOwp9CiMgNjIgIi4vaW5jbHVkZS9saW51eC9r
cmVmLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCBrcmVmX3B1dChzdHJ1Y3Qga3JlZiAqa3JlZiwgdm9pZCAoKnJlbGVhc2UpKHN0
cnVjdCBrcmVmICprcmVmKSkKewogaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgma3JlZi0+cmVm
Y291bnQpKSB7CiAgcmVsZWFzZShrcmVmKTsKICByZXR1cm4gMTsKIH0KIHJldHVybiAwOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQga3JlZl9wdXRfbXV0ZXgoc3RydWN0IGtyZWYgKmtyZWYsCiAgICAgdm9pZCAoKnJlbGVhc2Up
KHN0cnVjdCBrcmVmICprcmVmKSwKICAgICBzdHJ1Y3QgbXV0ZXggKmxvY2spCnsKIGlmIChyZWZj
b3VudF9kZWNfYW5kX211dGV4X2xvY2soJmtyZWYtPnJlZmNvdW50LCBsb2NrKSkgewogIHJlbGVh
c2Uoa3JlZik7CiAgcmV0dXJuIDE7CiB9CiByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGtyZWZfcHV0X2xvY2so
c3RydWN0IGtyZWYgKmtyZWYsCiAgICB2b2lkICgqcmVsZWFzZSkoc3RydWN0IGtyZWYgKmtyZWYp
LAogICAgc3BpbmxvY2tfdCAqbG9jaykKewogaWYgKHJlZmNvdW50X2RlY19hbmRfbG9jaygma3Jl
Zi0+cmVmY291bnQsIGxvY2spKSB7CiAgcmVsZWFzZShrcmVmKTsKICByZXR1cm4gMTsKIH0KIHJl
dHVybiAwOwp9CiMgMTA5ICIuL2luY2x1ZGUvbGludXgva3JlZi5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVf
XygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtyZWZfZ2V0X3VubGVzc196ZXJvKHN0cnVjdCBr
cmVmICprcmVmKQp7CiByZXR1cm4gcmVmY291bnRfaW5jX25vdF96ZXJvKCZrcmVmLT5yZWZjb3Vu
dCk7Cn0KIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL29z
X3R5cGVzLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIgMQojIDE1ICIuL2luY2x1
ZGUvbGludXgvc2xhYi5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9nZnAuaCIgMQoKCgoKIyAxICIu
L2luY2x1ZGUvbGludXgvbW1kZWJ1Zy5oIiAxCgoKCgoKCgpzdHJ1Y3QgcGFnZTsKc3RydWN0IHZt
X2FyZWFfc3RydWN0OwpzdHJ1Y3QgbW1fc3RydWN0OwoKZXh0ZXJuIHZvaWQgZHVtcF9wYWdlKHN0
cnVjdCBwYWdlICpwYWdlLCBjb25zdCBjaGFyICpyZWFzb24pOwpleHRlcm4gdm9pZCBfX2R1bXBf
cGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgY29uc3QgY2hhciAqcmVhc29uKTsKdm9pZCBkdW1wX3Zt
YShjb25zdCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CnZvaWQgZHVtcF9tbShjb25zdCBz
dHJ1Y3QgbW1fc3RydWN0ICptbSk7CiMgNiAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIiAyCiMgMSAi
Li9pbmNsdWRlL2xpbnV4L21tem9uZS5oIiAxCiMgMTAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUu
aCIKIyAxICIuL2luY2x1ZGUvbGludXgvd2FpdC5oIiAxCiMgMTIgIi4vaW5jbHVkZS9saW51eC93
YWl0LmgiCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvd2FpdC5oIiAxCiMgMTMgIi4vaW5jbHVk
ZS9saW51eC93YWl0LmgiIDIKCnR5cGVkZWYgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgd2FpdF9x
dWV1ZV9lbnRyeV90OwoKdHlwZWRlZiBpbnQgKCp3YWl0X3F1ZXVlX2Z1bmNfdCkoc3RydWN0IHdh
aXRfcXVldWVfZW50cnkgKndxX2VudHJ5LCB1bnNpZ25lZCBtb2RlLCBpbnQgZmxhZ3MsIHZvaWQg
KmtleSk7CmludCBkZWZhdWx0X3dha2VfZnVuY3Rpb24oc3RydWN0IHdhaXRfcXVldWVfZW50cnkg
KndxX2VudHJ5LCB1bnNpZ25lZCBtb2RlLCBpbnQgZmxhZ3MsIHZvaWQgKmtleSk7CiMgMjcgIi4v
aW5jbHVkZS9saW51eC93YWl0LmgiCnN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5IHsKIHVuc2lnbmVk
IGludCBmbGFnczsKIHZvaWQgKnByaXZhdGU7CiB3YWl0X3F1ZXVlX2Z1bmNfdCBmdW5jOwogc3Ry
dWN0IGxpc3RfaGVhZCBlbnRyeTsKfTsKCnN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgewogc3Bpbmxv
Y2tfdCBsb2NrOwogc3RydWN0IGxpc3RfaGVhZCBoZWFkOwp9Owp0eXBlZGVmIHN0cnVjdCB3YWl0
X3F1ZXVlX2hlYWQgd2FpdF9xdWV1ZV9oZWFkX3Q7CgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CiMgNjEg
Ii4vaW5jbHVkZS9saW51eC93YWl0LmgiCmV4dGVybiB2b2lkIF9faW5pdF93YWl0cXVldWVfaGVh
ZChzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1
Y3QgbG9ja19jbGFzc19rZXkgKik7CiMgNzkgIi4vaW5jbHVkZS9saW51eC93YWl0LmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
aW5pdF93YWl0cXVldWVfZW50cnkoc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5LCBz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnApCnsKIHdxX2VudHJ5LT5mbGFncyA9IDA7CiB3cV9lbnRyeS0+
cHJpdmF0ZSA9IHA7CiB3cV9lbnRyeS0+ZnVuYyA9IGRlZmF1bHRfd2FrZV9mdW5jdGlvbjsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZAppbml0X3dhaXRxdWV1ZV9mdW5jX2VudHJ5KHN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5ICp3
cV9lbnRyeSwgd2FpdF9xdWV1ZV9mdW5jX3QgZnVuYykKewogd3FfZW50cnktPmZsYWdzID0gMDsK
IHdxX2VudHJ5LT5wcml2YXRlID0gKCh2b2lkICopMCk7CiB3cV9lbnRyeS0+ZnVuYyA9IGZ1bmM7
Cn0KIyAxMjQgIi4vaW5jbHVkZS9saW51eC93YWl0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB3YWl0cXVldWVfYWN0aXZlKHN0
cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQpCnsKIHJldHVybiAhbGlzdF9lbXB0eSgmd3Ff
aGVhZC0+aGVhZCk7Cn0KIyAxMzcgIi4vaW5jbHVkZS9saW51eC93YWl0LmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgd3FfaGFz
X3NpbmdsZV9zbGVlcGVyKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQpCnsKIHJldHVy
biBsaXN0X2lzX3Npbmd1bGFyKCZ3cV9oZWFkLT5oZWFkKTsKfQojIDE1MCAiLi9pbmNsdWRlL2xp
bnV4L3dhaXQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCB3cV9oYXNfc2xlZXBlcihzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3
cV9oZWFkKQp7CgoKCgoKCgogYXNtIHZvbGF0aWxlKCJsb2NrOyBhZGRsICQwLC00KCUlcnNwKSIg
Ojo6ICJtZW1vcnkiLCAiY2MiKTsKIHJldHVybiB3YWl0cXVldWVfYWN0aXZlKHdxX2hlYWQpOwp9
CgpleHRlcm4gdm9pZCBhZGRfd2FpdF9xdWV1ZShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9o
ZWFkLCBzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnkpOwpleHRlcm4gdm9pZCBhZGRf
d2FpdF9xdWV1ZV9leGNsdXNpdmUoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3Ry
dWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5KTsKZXh0ZXJuIHZvaWQgcmVtb3ZlX3dhaXRf
cXVldWUoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVf
ZW50cnkgKndxX2VudHJ5KTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19hZGRfd2FpdF9xdWV1ZShzdHJ1Y3Qgd2FpdF9xdWV1
ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnkpCnsKIGxp
c3RfYWRkKCZ3cV9lbnRyeS0+ZW50cnksICZ3cV9oZWFkLT5oZWFkKTsKfQoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApfX2Fk
ZF93YWl0X3F1ZXVlX2V4Y2x1c2l2ZShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBz
dHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnkpCnsKIHdxX2VudHJ5LT5mbGFncyB8PSAw
eDAxOwogX19hZGRfd2FpdF9xdWV1ZSh3cV9oZWFkLCB3cV9lbnRyeSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19hZGRf
d2FpdF9xdWV1ZV9lbnRyeV90YWlsKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0
cnVjdCB3YWl0X3F1ZXVlX2VudHJ5ICp3cV9lbnRyeSkKewogbGlzdF9hZGRfdGFpbCgmd3FfZW50
cnktPmVudHJ5LCAmd3FfaGVhZC0+aGVhZCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKX19hZGRfd2FpdF9xdWV1ZV9lbnRy
eV90YWlsX2V4Y2x1c2l2ZShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qg
d2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnkpCnsKIHdxX2VudHJ5LT5mbGFncyB8PSAweDAxOwog
X19hZGRfd2FpdF9xdWV1ZV9lbnRyeV90YWlsKHdxX2hlYWQsIHdxX2VudHJ5KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApf
X3JlbW92ZV93YWl0X3F1ZXVlKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0cnVj
dCB3YWl0X3F1ZXVlX2VudHJ5ICp3cV9lbnRyeSkKewogbGlzdF9kZWwoJndxX2VudHJ5LT5lbnRy
eSk7Cn0KCnZvaWQgX193YWtlX3VwKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHVu
c2lnbmVkIGludCBtb2RlLCBpbnQgbnIsIHZvaWQgKmtleSk7CnZvaWQgX193YWtlX3VwX2xvY2tl
ZF9rZXkoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgdW5zaWduZWQgaW50IG1vZGUs
IHZvaWQgKmtleSk7CnZvaWQgX193YWtlX3VwX2xvY2tlZF9rZXlfYm9va21hcmsoc3RydWN0IHdh
aXRfcXVldWVfaGVhZCAqd3FfaGVhZCwKICB1bnNpZ25lZCBpbnQgbW9kZSwgdm9pZCAqa2V5LCB3
YWl0X3F1ZXVlX2VudHJ5X3QgKmJvb2ttYXJrKTsKdm9pZCBfX3dha2VfdXBfc3luY19rZXkoc3Ry
dWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgdW5zaWduZWQgaW50IG1vZGUsIHZvaWQgKmtl
eSk7CnZvaWQgX193YWtlX3VwX2xvY2tlZF9zeW5jX2tleShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFk
ICp3cV9oZWFkLCB1bnNpZ25lZCBpbnQgbW9kZSwgdm9pZCAqa2V5KTsKdm9pZCBfX3dha2VfdXBf
bG9ja2VkKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHVuc2lnbmVkIGludCBtb2Rl
LCBpbnQgbnIpOwp2b2lkIF9fd2FrZV91cF9zeW5jKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndx
X2hlYWQsIHVuc2lnbmVkIGludCBtb2RlKTsKIyAyNDggIi4vaW5jbHVkZS9saW51eC93YWl0Lmgi
CmV4dGVybiB2b2lkIGluaXRfd2FpdF9lbnRyeShzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3Ff
ZW50cnksIGludCBmbGFncyk7CiMgNzMyICIuL2luY2x1ZGUvbGludXgvd2FpdC5oIgpleHRlcm4g
aW50IGRvX3dhaXRfaW50cih3YWl0X3F1ZXVlX2hlYWRfdCAqLCB3YWl0X3F1ZXVlX2VudHJ5X3Qg
Kik7CmV4dGVybiBpbnQgZG9fd2FpdF9pbnRyX2lycSh3YWl0X3F1ZXVlX2hlYWRfdCAqLCB3YWl0
X3F1ZXVlX2VudHJ5X3QgKik7CiMgMTEyNiAiLi9pbmNsdWRlL2xpbnV4L3dhaXQuaCIKdm9pZCBw
cmVwYXJlX3RvX3dhaXQoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdh
aXRfcXVldWVfZW50cnkgKndxX2VudHJ5LCBpbnQgc3RhdGUpOwp2b2lkIHByZXBhcmVfdG9fd2Fp
dF9leGNsdXNpdmUoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRf
cXVldWVfZW50cnkgKndxX2VudHJ5LCBpbnQgc3RhdGUpOwpsb25nIHByZXBhcmVfdG9fd2FpdF9l
dmVudChzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qgd2FpdF9xdWV1ZV9l
bnRyeSAqd3FfZW50cnksIGludCBzdGF0ZSk7CnZvaWQgZmluaXNoX3dhaXQoc3RydWN0IHdhaXRf
cXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5KTsK
bG9uZyB3YWl0X3dva2VuKHN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5ICp3cV9lbnRyeSwgdW5zaWdu
ZWQgbW9kZSwgbG9uZyB0aW1lb3V0KTsKaW50IHdva2VuX3dha2VfZnVuY3Rpb24oc3RydWN0IHdh
aXRfcXVldWVfZW50cnkgKndxX2VudHJ5LCB1bnNpZ25lZCBtb2RlLCBpbnQgc3luYywgdm9pZCAq
a2V5KTsKaW50IGF1dG9yZW1vdmVfd2FrZV9mdW5jdGlvbihzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRy
eSAqd3FfZW50cnksIHVuc2lnbmVkIG1vZGUsIGludCBzeW5jLCB2b2lkICprZXkpOwojIDExICIu
L2luY2x1ZGUvbGludXgvbW16b25lLmgiIDIKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvbnVtYS5o
IiAxCiMgMTUgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgoKIyAxICIuL2luY2x1ZGUvbGlu
dXgvc2VxbG9jay5oIiAxCiMgNDggIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCnR5cGVkZWYg
c3RydWN0IHNlcWNvdW50IHsKIHVuc2lnbmVkIHNlcXVlbmNlOwoKCgp9IHNlcWNvdW50X3Q7Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIF9fc2VxY291bnRfaW5pdChzZXFjb3VudF90ICpzLCBjb25zdCBjaGFyICpuYW1lLAogICAg
ICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpCnsKCgoKIGRvIHsgKHZvaWQpKG5hbWUpOyAo
dm9pZCkoa2V5KTsgfSB3aGlsZSAoMCk7CiBzLT5zZXF1ZW5jZSA9IDA7Cn0KIyAxMDggIi4vaW5j
bHVkZS9saW51eC9zZXFsb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIF9fcmVhZF9zZXFjb3VudF9iZWdpbihjb25z
dCBzZXFjb3VudF90ICpzKQp7CiB1bnNpZ25lZCByZXQ7CgpyZXBlYXQ6CiByZXQgPSAoeyB1bmlv
biB7IHR5cGVvZihzLT5zZXF1ZW5jZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEp
IF9fcmVhZF9vbmNlX3NpemUoJihzLT5zZXF1ZW5jZSksIF9fdS5fX2MsIHNpemVvZihzLT5zZXF1
ZW5jZSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKHMtPnNlcXVlbmNlKSwgX191
Ll9fYywgc2l6ZW9mKHMtPnNlcXVlbmNlKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsg
fSk7CiBpZiAoX19idWlsdGluX2V4cGVjdCghIShyZXQgJiAxKSwgMCkpIHsKICBjcHVfcmVsYXgo
KTsKICBnb3RvIHJlcGVhdDsKIH0KIHJldHVybiByZXQ7Cn0KIyAxMzAgIi4vaW5jbHVkZS9saW51
eC9zZXFsb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHVuc2lnbmVkIHJhd19yZWFkX3NlcWNvdW50KGNvbnN0IHNlcWNvdW50X3Qg
KnMpCnsKIHVuc2lnbmVkIHJldCA9ICh7IHVuaW9uIHsgdHlwZW9mKHMtPnNlcXVlbmNlKSBfX3Zh
bDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKHMtPnNlcXVl
bmNlKSwgX191Ll9fYywgc2l6ZW9mKHMtPnNlcXVlbmNlKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6
ZV9ub2NoZWNrKCYocy0+c2VxdWVuY2UpLCBfX3UuX19jLCBzaXplb2Yocy0+c2VxdWVuY2UpKTsg
ZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIi
OiA6IDoibWVtb3J5Iik7CiByZXR1cm4gcmV0Owp9CiMgMTQ2ICIuL2luY2x1ZGUvbGludXgvc2Vx
bG9jay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB1bnNpZ25lZCByYXdfcmVhZF9zZXFjb3VudF9iZWdpbihjb25zdCBzZXFjb3VudF90
ICpzKQp7CiB1bnNpZ25lZCByZXQgPSBfX3JlYWRfc2VxY291bnRfYmVnaW4ocyk7CiBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogcmV0dXJuIHJldDsKfQojIDE2MiAiLi9p
bmNsdWRlL2xpbnV4L3NlcWxvY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgcmVhZF9zZXFjb3VudF9iZWdpbihjb25z
dCBzZXFjb3VudF90ICpzKQp7CiA7CiByZXR1cm4gcmF3X3JlYWRfc2VxY291bnRfYmVnaW4ocyk7
Cn0KIyAxODIgIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHJhd19zZXFjb3Vu
dF9iZWdpbihjb25zdCBzZXFjb3VudF90ICpzKQp7CiB1bnNpZ25lZCByZXQgPSAoeyB1bmlvbiB7
IHR5cGVvZihzLT5zZXF1ZW5jZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9f
cmVhZF9vbmNlX3NpemUoJihzLT5zZXF1ZW5jZSksIF9fdS5fX2MsIHNpemVvZihzLT5zZXF1ZW5j
ZSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKHMtPnNlcXVlbmNlKSwgX191Ll9f
Yywgc2l6ZW9mKHMtPnNlcXVlbmNlKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7
CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogcmV0dXJuIHJldCAmIH4x
Owp9CiMgMjAzICIuL2luY2x1ZGUvbGludXgvc2VxbG9jay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19yZWFkX3NlcWNvdW50
X3JldHJ5KGNvbnN0IHNlcWNvdW50X3QgKnMsIHVuc2lnbmVkIHN0YXJ0KQp7CiByZXR1cm4gX19i
dWlsdGluX2V4cGVjdCghIShzLT5zZXF1ZW5jZSAhPSBzdGFydCksIDApOwp9CiMgMjE4ICIuL2lu
Y2x1ZGUvbGludXgvc2VxbG9jay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmVhZF9zZXFjb3VudF9yZXRyeShjb25zdCBzZXFj
b3VudF90ICpzLCB1bnNpZ25lZCBzdGFydCkKewogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDog
OiJtZW1vcnkiKTsKIHJldHVybiBfX3JlYWRfc2VxY291bnRfcmV0cnkocywgc3RhcnQpOwp9CgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgcmF3X3dyaXRlX3NlcWNvdW50X2JlZ2luKHNlcWNvdW50X3QgKnMpCnsKIHMtPnNlcXVl
bmNlKys7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJh
d193cml0ZV9zZXFjb3VudF9lbmQoc2VxY291bnRfdCAqcykKewogX19hc21fXyBfX3ZvbGF0aWxl
X18oIiI6IDogOiJtZW1vcnkiKTsKIHMtPnNlcXVlbmNlKys7Cn0KIyAyNzIgIi4vaW5jbHVkZS9s
aW51eC9zZXFsb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcmF3X3dyaXRlX3NlcWNvdW50X2JhcnJpZXIoc2VxY291bnRf
dCAqcykKewogcy0+c2VxdWVuY2UrKzsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVt
b3J5Iik7CiBzLT5zZXF1ZW5jZSsrOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmF3X3JlYWRfc2VxY291bnRfbGF0Y2goc2Vx
Y291bnRfdCAqcykKewoKIGludCBzZXEgPSAoeyB1bmlvbiB7IHR5cGVvZihzLT5zZXF1ZW5jZSkg
X192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihzLT5z
ZXF1ZW5jZSksIF9fdS5fX2MsIHNpemVvZihzLT5zZXF1ZW5jZSkpOyBlbHNlIF9fcmVhZF9vbmNl
X3NpemVfbm9jaGVjaygmKHMtPnNlcXVlbmNlKSwgX191Ll9fYywgc2l6ZW9mKHMtPnNlcXVlbmNl
KSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CiByZXR1cm4gc2VxOwp9CiMgMzYz
ICIuL2luY2x1ZGUvbGludXgvc2VxbG9jay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJhd193cml0ZV9zZXFjb3VudF9sYXRj
aChzZXFjb3VudF90ICpzKQp7CiAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1l
bW9yeSIpOwogICAgICAgcy0+c2VxdWVuY2UrKzsKICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9f
KCIiOiA6IDoibWVtb3J5Iik7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX3NlcWNvdW50X2JlZ2luX25lc3Rl
ZChzZXFjb3VudF90ICpzLCBpbnQgc3ViY2xhc3MpCnsKIHJhd193cml0ZV9zZXFjb3VudF9iZWdp
bihzKTsKIGRvIHsgfSB3aGlsZSAoMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3JpdGVfc2VxY291bnRfYmVnaW4oc2Vx
Y291bnRfdCAqcykKewogd3JpdGVfc2VxY291bnRfYmVnaW5fbmVzdGVkKHMsIDApOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHdyaXRlX3NlcWNvdW50X2VuZChzZXFjb3VudF90ICpzKQp7CiBkbyB7IH0gd2hpbGUgKDApOwog
cmF3X3dyaXRlX3NlcWNvdW50X2VuZChzKTsKfQojIDM5OCAiLi9pbmNsdWRlL2xpbnV4L3NlcWxv
Y2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCB3cml0ZV9zZXFjb3VudF9pbnZhbGlkYXRlKHNlcWNvdW50X3QgKnMpCnsKIF9f
YXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBzLT5zZXF1ZW5jZSs9MjsKfQoK
dHlwZWRlZiBzdHJ1Y3Qgewogc3RydWN0IHNlcWNvdW50IHNlcWNvdW50Owogc3BpbmxvY2tfdCBs
b2NrOwp9IHNlcWxvY2tfdDsKIyA0MzEgIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIHJlYWRfc2VxYmVnaW4oY29uc3Qgc2VxbG9ja190ICpzbCkKewogcmV0dXJuIHJlYWRfc2Vx
Y291bnRfYmVnaW4oJnNsLT5zZXFjb3VudCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHJlYWRfc2VxcmV0cnkoY29u
c3Qgc2VxbG9ja190ICpzbCwgdW5zaWduZWQgc3RhcnQpCnsKIHJldHVybiByZWFkX3NlcWNvdW50
X3JldHJ5KCZzbC0+c2VxY291bnQsIHN0YXJ0KTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX3NlcWxvY2so
c2VxbG9ja190ICpzbCkKewogc3Bpbl9sb2NrKCZzbC0+bG9jayk7CiB3cml0ZV9zZXFjb3VudF9i
ZWdpbigmc2wtPnNlcWNvdW50KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cml0ZV9zZXF1bmxvY2soc2VxbG9ja190ICpz
bCkKewogd3JpdGVfc2VxY291bnRfZW5kKCZzbC0+c2VxY291bnQpOwogc3Bpbl91bmxvY2soJnNs
LT5sb2NrKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCB3cml0ZV9zZXFsb2NrX2JoKHNlcWxvY2tfdCAqc2wpCnsKIHNwaW5f
bG9ja19iaCgmc2wtPmxvY2spOwogd3JpdGVfc2VxY291bnRfYmVnaW4oJnNsLT5zZXFjb3VudCk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgd3JpdGVfc2VxdW5sb2NrX2JoKHNlcWxvY2tfdCAqc2wpCnsKIHdyaXRlX3NlcWNv
dW50X2VuZCgmc2wtPnNlcWNvdW50KTsKIHNwaW5fdW5sb2NrX2JoKCZzbC0+bG9jayk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgd3JpdGVfc2VxbG9ja19pcnEoc2VxbG9ja190ICpzbCkKewogc3Bpbl9sb2NrX2lycSgmc2wt
PmxvY2spOwogd3JpdGVfc2VxY291bnRfYmVnaW4oJnNsLT5zZXFjb3VudCk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3Jp
dGVfc2VxdW5sb2NrX2lycShzZXFsb2NrX3QgKnNsKQp7CiB3cml0ZV9zZXFjb3VudF9lbmQoJnNs
LT5zZXFjb3VudCk7CiBzcGluX3VubG9ja19pcnEoJnNsLT5sb2NrKTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9u
ZyBfX3dyaXRlX3NlcWxvY2tfaXJxc2F2ZShzZXFsb2NrX3QgKnNsKQp7CiB1bnNpZ25lZCBsb25n
IGZsYWdzOwoKIGRvIHsgZG8geyAoeyB1bnNpZ25lZCBsb25nIF9fZHVtbXk7IHR5cGVvZihmbGFn
cykgX19kdW1teTI7ICh2b2lkKSgmX19kdW1teSA9PSAmX19kdW1teTIpOyAxOyB9KTsgZmxhZ3Mg
PSBfcmF3X3NwaW5fbG9ja19pcnFzYXZlKHNwaW5sb2NrX2NoZWNrKCZzbC0+bG9jaykpOyB9IHdo
aWxlICgwKTsgfSB3aGlsZSAoMCk7CiB3cml0ZV9zZXFjb3VudF9iZWdpbigmc2wtPnNlcWNvdW50
KTsKIHJldHVybiBmbGFnczsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAp3cml0ZV9zZXF1bmxvY2tfaXJxcmVzdG9yZShz
ZXFsb2NrX3QgKnNsLCB1bnNpZ25lZCBsb25nIGZsYWdzKQp7CiB3cml0ZV9zZXFjb3VudF9lbmQo
JnNsLT5zZXFjb3VudCk7CiBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzbC0+bG9jaywgZmxhZ3Mp
Owp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgcmVhZF9zZXFsb2NrX2V4Y2woc2VxbG9ja190ICpzbCkKewogc3Bpbl9s
b2NrKCZzbC0+bG9jayk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmVhZF9zZXF1bmxvY2tfZXhjbChzZXFsb2NrX3QgKnNs
KQp7CiBzcGluX3VubG9jaygmc2wtPmxvY2spOwp9CiMgNTI2ICIuL2luY2x1ZGUvbGludXgvc2Vx
bG9jay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHJlYWRfc2VxYmVnaW5fb3JfbG9jayhzZXFsb2NrX3QgKmxvY2ssIGludCAq
c2VxKQp7CiBpZiAoISgqc2VxICYgMSkpCiAgKnNlcSA9IHJlYWRfc2VxYmVnaW4obG9jayk7CiBl
bHNlCiAgcmVhZF9zZXFsb2NrX2V4Y2wobG9jayk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBuZWVkX3NlcXJldHJ5KHNlcWxv
Y2tfdCAqbG9jaywgaW50IHNlcSkKewogcmV0dXJuICEoc2VxICYgMSkgJiYgcmVhZF9zZXFyZXRy
eShsb2NrLCBzZXEpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRvbmVfc2VxcmV0cnkoc2VxbG9ja190ICpsb2NrLCBpbnQg
c2VxKQp7CiBpZiAoc2VxICYgMSkKICByZWFkX3NlcXVubG9ja19leGNsKGxvY2spOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHJlYWRfc2VxbG9ja19leGNsX2JoKHNlcWxvY2tfdCAqc2wpCnsKIHNwaW5fbG9ja19iaCgmc2wt
PmxvY2spOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHJlYWRfc2VxdW5sb2NrX2V4Y2xfYmgoc2VxbG9ja190ICpzbCkKewog
c3Bpbl91bmxvY2tfYmgoJnNsLT5sb2NrKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByZWFkX3NlcWxvY2tfZXhjbF9pcnEo
c2VxbG9ja190ICpzbCkKewogc3Bpbl9sb2NrX2lycSgmc2wtPmxvY2spOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlYWRf
c2VxdW5sb2NrX2V4Y2xfaXJxKHNlcWxvY2tfdCAqc2wpCnsKIHNwaW5fdW5sb2NrX2lycSgmc2wt
PmxvY2spOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9fcmVhZF9zZXFsb2NrX2V4Y2xfaXJxc2F2ZShzZXFs
b2NrX3QgKnNsKQp7CiB1bnNpZ25lZCBsb25nIGZsYWdzOwoKIGRvIHsgZG8geyAoeyB1bnNpZ25l
ZCBsb25nIF9fZHVtbXk7IHR5cGVvZihmbGFncykgX19kdW1teTI7ICh2b2lkKSgmX19kdW1teSA9
PSAmX19kdW1teTIpOyAxOyB9KTsgZmxhZ3MgPSBfcmF3X3NwaW5fbG9ja19pcnFzYXZlKHNwaW5s
b2NrX2NoZWNrKCZzbC0+bG9jaykpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CiByZXR1cm4g
ZmxhZ3M7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQKcmVhZF9zZXF1bmxvY2tfZXhjbF9pcnFyZXN0b3JlKHNlcWxvY2tf
dCAqc2wsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCnsKIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNs
LT5sb2NrLCBmbGFncyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcKcmVhZF9zZXFiZWdpbl9vcl9sb2NrX2ly
cXNhdmUoc2VxbG9ja190ICpsb2NrLCBpbnQgKnNlcSkKewogdW5zaWduZWQgbG9uZyBmbGFncyA9
IDA7CgogaWYgKCEoKnNlcSAmIDEpKQogICpzZXEgPSByZWFkX3NlcWJlZ2luKGxvY2spOwogZWxz
ZQogIGRvIHsgZmxhZ3MgPSBfX3JlYWRfc2VxbG9ja19leGNsX2lycXNhdmUobG9jayk7IH0gd2hp
bGUgKDApOwoKIHJldHVybiBmbGFnczsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApkb25lX3NlcXJldHJ5X2lycXJlc3RvcmUo
c2VxbG9ja190ICpsb2NrLCBpbnQgc2VxLCB1bnNpZ25lZCBsb25nIGZsYWdzKQp7CiBpZiAoc2Vx
ICYgMSkKICByZWFkX3NlcXVubG9ja19leGNsX2lycXJlc3RvcmUobG9jaywgZmxhZ3MpOwp9CiMg
MTcgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9ub2Rl
bWFzay5oIiAxCiMgOTggIi4vaW5jbHVkZS9saW51eC9ub2RlbWFzay5oIgp0eXBlZGVmIHN0cnVj
dCB7IHVuc2lnbmVkIGxvbmcgYml0c1soKCgoMSA8PCAwKSkgKyAoKHNpemVvZihsb25nKSAqIDgp
KSAtIDEpIC8gKChzaXplb2YobG9uZykgKiA4KSkpXTsgfSBub2RlbWFza190OwpleHRlcm4gbm9k
ZW1hc2tfdCBfdW51c2VkX25vZGVtYXNrX2FyZ187CiMgMTA5ICIuL2luY2x1ZGUvbGludXgvbm9k
ZW1hc2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgaW50IF9fbm9kZW1hc2tfcHJfbnVtbm9kZXMoY29uc3Qgbm9kZW1h
c2tfdCAqbSkKewogcmV0dXJuIG0gPyAoMSA8PCAwKSA6IDA7Cn0Kc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY29uc3QgdW5zaWduZWQgbG9u
ZyAqX19ub2RlbWFza19wcl9iaXRzKGNvbnN0IG5vZGVtYXNrX3QgKm0pCnsKIHJldHVybiBtID8g
bS0+Yml0cyA6ICgodm9pZCAqKTApOwp9CiMgMTI4ICIuL2luY2x1ZGUvbGludXgvbm9kZW1hc2su
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fbm9kZV9zZXQoaW50
IG5vZGUsIHZvbGF0aWxlIG5vZGVtYXNrX3QgKmRzdHApCnsKIHNldF9iaXQobm9kZSwgZHN0cC0+
Yml0cyk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIF9fbm9kZV9jbGVhcihpbnQgbm9kZSwgdm9sYXRpbGUgbm9kZW1hc2tf
dCAqZHN0cCkKewogY2xlYXJfYml0KG5vZGUsIGRzdHAtPmJpdHMpOwp9CgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX25vZGVz
X3NldGFsbChub2RlbWFza190ICpkc3RwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCnsKIGJpdG1hcF9m
aWxsKGRzdHAtPmJpdHMsIG5iaXRzKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19ub2Rlc19jbGVhcihub2RlbWFza190
ICpkc3RwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCnsKIGJpdG1hcF96ZXJvKGRzdHAtPmJpdHMsIG5i
aXRzKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgX19ub2RlX3Rlc3RfYW5kX3NldChpbnQgbm9kZSwgbm9kZW1hc2tf
dCAqYWRkcikKewogcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQobm9kZSwgYWRkci0+Yml0cyk7Cn0K
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBfX25vZGVzX2FuZChub2RlbWFza190ICpkc3RwLCBjb25zdCBub2RlbWFza190ICpz
cmMxcCwKICAgICBjb25zdCBub2RlbWFza190ICpzcmMycCwgdW5zaWduZWQgaW50IG5iaXRzKQp7
CiBiaXRtYXBfYW5kKGRzdHAtPmJpdHMsIHNyYzFwLT5iaXRzLCBzcmMycC0+Yml0cywgbmJpdHMp
Owp9CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19ub2Rlc19vcihub2RlbWFza190ICpkc3RwLCBjb25zdCBub2RlbWFza190
ICpzcmMxcCwKICAgICBjb25zdCBub2RlbWFza190ICpzcmMycCwgdW5zaWduZWQgaW50IG5iaXRz
KQp7CiBiaXRtYXBfb3IoZHN0cC0+Yml0cywgc3JjMXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0
cyk7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBfX25vZGVzX3hvcihub2RlbWFza190ICpkc3RwLCBjb25zdCBub2RlbWFz
a190ICpzcmMxcCwKICAgICBjb25zdCBub2RlbWFza190ICpzcmMycCwgdW5zaWduZWQgaW50IG5i
aXRzKQp7CiBiaXRtYXBfeG9yKGRzdHAtPmJpdHMsIHNyYzFwLT5iaXRzLCBzcmMycC0+Yml0cywg
bmJpdHMpOwp9CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgX19ub2Rlc19hbmRub3Qobm9kZW1hc2tfdCAqZHN0cCwgY29uc3Qg
bm9kZW1hc2tfdCAqc3JjMXAsCiAgICAgY29uc3Qgbm9kZW1hc2tfdCAqc3JjMnAsIHVuc2lnbmVk
IGludCBuYml0cykKewogYml0bWFwX2FuZG5vdChkc3RwLT5iaXRzLCBzcmMxcC0+Yml0cywgc3Jj
MnAtPmJpdHMsIG5iaXRzKTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfY29tcGxlbWVudChub2RlbWFza190
ICpkc3RwLAogICAgIGNvbnN0IG5vZGVtYXNrX3QgKnNyY3AsIHVuc2lnbmVkIGludCBuYml0cykK
ewogYml0bWFwX2NvbXBsZW1lbnQoZHN0cC0+Yml0cywgc3JjcC0+Yml0cywgbmJpdHMpOwp9CgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBfX25vZGVzX2VxdWFsKGNvbnN0IG5vZGVtYXNrX3QgKnNyYzFwLAogICAgIGNvbnN0IG5v
ZGVtYXNrX3QgKnNyYzJwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCnsKIHJldHVybiBiaXRtYXBfZXF1
YWwoc3JjMXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0cyk7Cn0KCgoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbm9kZXNfaW50
ZXJzZWN0cyhjb25zdCBub2RlbWFza190ICpzcmMxcCwKICAgICBjb25zdCBub2RlbWFza190ICpz
cmMycCwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiByZXR1cm4gYml0bWFwX2ludGVyc2VjdHMoc3Jj
MXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0cyk7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbm9kZXNfc3Vic2V0KGNv
bnN0IG5vZGVtYXNrX3QgKnNyYzFwLAogICAgIGNvbnN0IG5vZGVtYXNrX3QgKnNyYzJwLCB1bnNp
Z25lZCBpbnQgbmJpdHMpCnsKIHJldHVybiBiaXRtYXBfc3Vic2V0KHNyYzFwLT5iaXRzLCBzcmMy
cC0+Yml0cywgbmJpdHMpOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbm9kZXNfZW1wdHkoY29uc3Qgbm9kZW1hc2tfdCAq
c3JjcCwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiByZXR1cm4gYml0bWFwX2VtcHR5KHNyY3AtPmJp
dHMsIG5iaXRzKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBfX25vZGVzX2Z1bGwoY29uc3Qgbm9kZW1hc2tfdCAqc3JjcCwg
dW5zaWduZWQgaW50IG5iaXRzKQp7CiByZXR1cm4gYml0bWFwX2Z1bGwoc3JjcC0+Yml0cywgbmJp
dHMpOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fbm9kZXNfd2VpZ2h0KGNvbnN0IG5vZGVtYXNrX3QgKnNyY3AsIHVuc2ln
bmVkIGludCBuYml0cykKewogcmV0dXJuIGJpdG1hcF93ZWlnaHQoc3JjcC0+Yml0cywgbmJpdHMp
Owp9CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19ub2Rlc19zaGlmdF9yaWdodChub2RlbWFza190ICpkc3RwLAogICAgIGNv
bnN0IG5vZGVtYXNrX3QgKnNyY3AsIGludCBuLCBpbnQgbmJpdHMpCnsKIGJpdG1hcF9zaGlmdF9y
aWdodChkc3RwLT5iaXRzLCBzcmNwLT5iaXRzLCBuLCBuYml0cyk7Cn0KCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX25vZGVz
X3NoaWZ0X2xlZnQobm9kZW1hc2tfdCAqZHN0cCwKICAgICBjb25zdCBub2RlbWFza190ICpzcmNw
LCBpbnQgbiwgaW50IG5iaXRzKQp7CiBiaXRtYXBfc2hpZnRfbGVmdChkc3RwLT5iaXRzLCBzcmNw
LT5iaXRzLCBuLCBuYml0cyk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19maXJzdF9ub2RlKGNvbnN0IG5vZGVtYXNr
X3QgKnNyY3ApCnsKIHJldHVybiBfX2J1aWx0aW5fY2hvb3NlX2V4cHIoKCghIShzaXplb2YoKHR5
cGVvZigoaW50KSgoMSA8PCAwKSkpICopMSA9PSAodHlwZW9mKChpbnQpKGZpbmRfZmlyc3RfYml0
KHNyY3AtPmJpdHMsICgxIDw8IDApKSkpICopMSkpKSAmJiAoKHNpemVvZihpbnQpID09IHNpemVv
ZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKChpbnQpKCgxIDw8IDApKSkgKiAwbCkpIDogKGludCAq
KTgpKSkgJiYgKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKChp
bnQpKGZpbmRfZmlyc3RfYml0KHNyY3AtPmJpdHMsICgxIDw8IDApKSkpICogMGwpKSA6IChpbnQg
Kik4KSkpKSksICgoKGludCkoKDEgPDwgMCkpKSA8ICgoaW50KShmaW5kX2ZpcnN0X2JpdChzcmNw
LT5iaXRzLCAoMSA8PCAwKSkpKSA/ICgoaW50KSgoMSA8PCAwKSkpIDogKChpbnQpKGZpbmRfZmly
c3RfYml0KHNyY3AtPmJpdHMsICgxIDw8IDApKSkpKSwgKHsgdHlwZW9mKChpbnQpKCgxIDw8IDAp
KSkgX19VTklRVUVfSURfX194MiA9ICgoaW50KSgoMSA8PCAwKSkpOyB0eXBlb2YoKGludCkoZmlu
ZF9maXJzdF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCkpKSkgX19VTklRVUVfSURfX195MyA9ICgo
aW50KShmaW5kX2ZpcnN0X2JpdChzcmNwLT5iaXRzLCAoMSA8PCAwKSkpKTsgKChfX1VOSVFVRV9J
RF9fX3gyKSA8IChfX1VOSVFVRV9JRF9fX3kzKSA/IChfX1VOSVFVRV9JRF9fX3gyKSA6IChfX1VO
SVFVRV9JRF9fX3kzKSk7IH0pKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX25leHRfbm9kZShpbnQgbiwgY29uc3Qgbm9k
ZW1hc2tfdCAqc3JjcCkKewogcmV0dXJuIF9fYnVpbHRpbl9jaG9vc2VfZXhwcigoKCEhKHNpemVv
ZigodHlwZW9mKChpbnQpKCgxIDw8IDApKSkgKikxID09ICh0eXBlb2YoKGludCkoZmluZF9uZXh0
X2JpdChzcmNwLT5iaXRzLCAoMSA8PCAwKSwgbisxKSkpICopMSkpKSAmJiAoKHNpemVvZihpbnQp
ID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKChpbnQpKCgxIDw8IDApKSkgKiAwbCkp
IDogKGludCAqKTgpKSkgJiYgKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKiko
KGxvbmcpKChpbnQpKGZpbmRfbmV4dF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCksIG4rMSkpKSAq
IDBsKSkgOiAoaW50ICopOCkpKSkpLCAoKChpbnQpKCgxIDw8IDApKSkgPCAoKGludCkoZmluZF9u
ZXh0X2JpdChzcmNwLT5iaXRzLCAoMSA8PCAwKSwgbisxKSkpID8gKChpbnQpKCgxIDw8IDApKSkg
OiAoKGludCkoZmluZF9uZXh0X2JpdChzcmNwLT5iaXRzLCAoMSA8PCAwKSwgbisxKSkpKSwgKHsg
dHlwZW9mKChpbnQpKCgxIDw8IDApKSkgX19VTklRVUVfSURfX194NCA9ICgoaW50KSgoMSA8PCAw
KSkpOyB0eXBlb2YoKGludCkoZmluZF9uZXh0X2JpdChzcmNwLT5iaXRzLCAoMSA8PCAwKSwgbisx
KSkpIF9fVU5JUVVFX0lEX19feTUgPSAoKGludCkoZmluZF9uZXh0X2JpdChzcmNwLT5iaXRzLCAo
MSA8PCAwKSwgbisxKSkpOyAoKF9fVU5JUVVFX0lEX19feDQpIDwgKF9fVU5JUVVFX0lEX19feTUp
ID8gKF9fVU5JUVVFX0lEX19feDQpIDogKF9fVU5JUVVFX0lEX19feTUpKTsgfSkpOwp9CgoKCgoK
CmludCBfX25leHRfbm9kZV9pbihpbnQgbm9kZSwgY29uc3Qgbm9kZW1hc2tfdCAqc3JjcCk7Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGluaXRfbm9kZW1hc2tfb2Zfbm9kZShub2RlbWFza190ICptYXNrLCBpbnQgbm9kZSkKewog
X19ub2Rlc19jbGVhcigmKCptYXNrKSwgKDEgPDwgMCkpOwogX19ub2RlX3NldCgobm9kZSksICYo
Km1hc2spKTsKfQojIDI5OSAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2ZpcnN0
X3Vuc2V0X25vZGUoY29uc3Qgbm9kZW1hc2tfdCAqbWFza3ApCnsKIHJldHVybiBfX2J1aWx0aW5f
Y2hvb3NlX2V4cHIoKCghIShzaXplb2YoKHR5cGVvZigoaW50KSgoMSA8PCAwKSkpICopMSA9PSAo
dHlwZW9mKChpbnQpKGZpbmRfZmlyc3RfemVyb19iaXQobWFza3AtPmJpdHMsICgxIDw8IDApKSkp
ICopMSkpKSAmJiAoKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcp
KChpbnQpKCgxIDw8IDApKSkgKiAwbCkpIDogKGludCAqKTgpKSkgJiYgKHNpemVvZihpbnQpID09
IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKChpbnQpKGZpbmRfZmlyc3RfemVyb19iaXQo
bWFza3AtPmJpdHMsICgxIDw8IDApKSkpICogMGwpKSA6IChpbnQgKik4KSkpKSksICgoKGludCko
KDEgPDwgMCkpKSA8ICgoaW50KShmaW5kX2ZpcnN0X3plcm9fYml0KG1hc2twLT5iaXRzLCAoMSA8
PCAwKSkpKSA/ICgoaW50KSgoMSA8PCAwKSkpIDogKChpbnQpKGZpbmRfZmlyc3RfemVyb19iaXQo
bWFza3AtPmJpdHMsICgxIDw8IDApKSkpKSwgKHsgdHlwZW9mKChpbnQpKCgxIDw8IDApKSkgX19V
TklRVUVfSURfX194NiA9ICgoaW50KSgoMSA8PCAwKSkpOyB0eXBlb2YoKGludCkoZmluZF9maXJz
dF96ZXJvX2JpdChtYXNrcC0+Yml0cywgKDEgPDwgMCkpKSkgX19VTklRVUVfSURfX195NyA9ICgo
aW50KShmaW5kX2ZpcnN0X3plcm9fYml0KG1hc2twLT5iaXRzLCAoMSA8PCAwKSkpKTsgKChfX1VO
SVFVRV9JRF9fX3g2KSA8IChfX1VOSVFVRV9JRF9fX3k3KSA/IChfX1VOSVFVRV9JRF9fX3g2KSA6
IChfX1VOSVFVRV9JRF9fX3k3KSk7IH0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDsKfQojIDMzMyAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBfX25vZGVtYXNrX3BhcnNlX3VzZXIoY29uc3QgY2hhciAqYnVmLCBpbnQgbGVuLAogICAg
IG5vZGVtYXNrX3QgKmRzdHAsIGludCBuYml0cykKewogcmV0dXJuIGJpdG1hcF9wYXJzZV91c2Vy
KGJ1ZiwgbGVuLCBkc3RwLT5iaXRzLCBuYml0cyk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19ub2RlbGlzdF9wYXJzZShj
b25zdCBjaGFyICpidWYsIG5vZGVtYXNrX3QgKmRzdHAsIGludCBuYml0cykKewogcmV0dXJuIGJp
dG1hcF9wYXJzZWxpc3QoYnVmLCBkc3RwLT5iaXRzLCBuYml0cyk7Cn0KCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbm9kZV9y
ZW1hcChpbnQgb2xkYml0LAogIGNvbnN0IG5vZGVtYXNrX3QgKm9sZHAsIGNvbnN0IG5vZGVtYXNr
X3QgKm5ld3AsIGludCBuYml0cykKewogcmV0dXJuIGJpdG1hcF9iaXRyZW1hcChvbGRiaXQsIG9s
ZHAtPmJpdHMsIG5ld3AtPmJpdHMsIG5iaXRzKTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfcmVtYXAobm9k
ZW1hc2tfdCAqZHN0cCwgY29uc3Qgbm9kZW1hc2tfdCAqc3JjcCwKICBjb25zdCBub2RlbWFza190
ICpvbGRwLCBjb25zdCBub2RlbWFza190ICpuZXdwLCBpbnQgbmJpdHMpCnsKIGJpdG1hcF9yZW1h
cChkc3RwLT5iaXRzLCBzcmNwLT5iaXRzLCBvbGRwLT5iaXRzLCBuZXdwLT5iaXRzLCBuYml0cyk7
Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBfX25vZGVzX29udG8obm9kZW1hc2tfdCAqZHN0cCwgY29uc3Qgbm9kZW1hc2tf
dCAqb3JpZ3AsCiAgY29uc3Qgbm9kZW1hc2tfdCAqcmVsbWFwcCwgaW50IG5iaXRzKQp7CiBiaXRt
YXBfb250byhkc3RwLT5iaXRzLCBvcmlncC0+Yml0cywgcmVsbWFwcC0+Yml0cywgbmJpdHMpOwp9
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgX19ub2Rlc19mb2xkKG5vZGVtYXNrX3QgKmRzdHAsIGNvbnN0IG5vZGVtYXNrX3Qg
Km9yaWdwLAogIGludCBzeiwgaW50IG5iaXRzKQp7CiBiaXRtYXBfZm9sZChkc3RwLT5iaXRzLCBv
cmlncC0+Yml0cywgc3osIG5iaXRzKTsKfQojIDM5MSAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNr
LmgiCmVudW0gbm9kZV9zdGF0ZXMgewogTl9QT1NTSUJMRSwKIE5fT05MSU5FLAogTl9OT1JNQUxf
TUVNT1JZLAoKCgogTl9ISUdIX01FTU9SWSA9IE5fTk9STUFMX01FTU9SWSwKCiBOX01FTU9SWSwK
IE5fQ1BVLAogTlJfTk9ERV9TVEFURVMKfTsKCgoKCgoKZXh0ZXJuIG5vZGVtYXNrX3Qgbm9kZV9z
dGF0ZXNbTlJfTk9ERV9TVEFURVNdOwojIDQ2NCAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBub2RlX3N0YXRlKGludCBub2RlLCBlbnVtIG5vZGVfc3RhdGVzIHN0YXRlKQp7CiByZXR1
cm4gbm9kZSA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5vZGVfc2V0X3N0YXRlKGludCBub2RlLCBlbnVtIG5vZGVf
c3RhdGVzIHN0YXRlKQp7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbm9kZV9jbGVhcl9zdGF0ZShpbnQgbm9kZSwgZW51bSBu
b2RlX3N0YXRlcyBzdGF0ZSkKewp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbnVtX25vZGVfc3RhdGUoZW51bSBub2RlX3N0YXRl
cyBzdGF0ZSkKewogcmV0dXJuIDE7Cn0KIyA0OTkgIi4vaW5jbHVkZS9saW51eC9ub2RlbWFzay5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgbm9kZV9yYW5kb20oY29uc3Qgbm9kZW1hc2tfdCAqbWFzaykKewogcmV0dXJuIDA7Cn0K
IyA1MzEgIi4vaW5jbHVkZS9saW51eC9ub2RlbWFzay5oIgpzdHJ1Y3Qgbm9kZW1hc2tfc2NyYXRj
aCB7CiBub2RlbWFza190IG1hc2sxOwogbm9kZW1hc2tfdCBtYXNrMjsKfTsKIyAxOCAiLi9pbmNs
dWRlL2xpbnV4L21tem9uZS5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2VibG9jay1mbGFn
cy5oIiAxCiMgMTggIi4vaW5jbHVkZS9saW51eC9wYWdlYmxvY2stZmxhZ3MuaCIKZW51bSBwYWdl
YmxvY2tfYml0cyB7CiBQQl9taWdyYXRlLAogUEJfbWlncmF0ZV9lbmQgPSBQQl9taWdyYXRlICsg
MyAtIDEsCgogUEJfbWlncmF0ZV9za2lwLAoKCgoKCiBOUl9QQUdFQkxPQ0tfQklUUwp9OwojIDU1
ICIuL2luY2x1ZGUvbGludXgvcGFnZWJsb2NrLWZsYWdzLmgiCnN0cnVjdCBwYWdlOwoKdW5zaWdu
ZWQgbG9uZyBnZXRfcGZuYmxvY2tfZmxhZ3NfbWFzayhzdHJ1Y3QgcGFnZSAqcGFnZSwKICAgIHVu
c2lnbmVkIGxvbmcgcGZuLAogICAgdW5zaWduZWQgbG9uZyBlbmRfYml0aWR4LAogICAgdW5zaWdu
ZWQgbG9uZyBtYXNrKTsKCnZvaWQgc2V0X3BmbmJsb2NrX2ZsYWdzX21hc2soc3RydWN0IHBhZ2Ug
KnBhZ2UsCiAgICB1bnNpZ25lZCBsb25nIGZsYWdzLAogICAgdW5zaWduZWQgbG9uZyBwZm4sCiAg
ICB1bnNpZ25lZCBsb25nIGVuZF9iaXRpZHgsCiAgICB1bnNpZ25lZCBsb25nIG1hc2spOwojIDE5
ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvcGFnZS1m
bGFncy1sYXlvdXQuaCIgMQoKCgoKCiMgMSAiLi9pbmNsdWRlL2dlbmVyYXRlZC9ib3VuZHMuaCIg
MQojIDcgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLWxheW91dC5oIiAyCiMgMjAgIi4vaW5j
bHVkZS9saW51eC9tbXpvbmUuaCIgMgoKIyAxICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIg
MQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXNfdGFzay5oIiAxCiMgMTkgIi4vaW5j
bHVkZS9saW51eC9tbV90eXBlc190YXNrLmgiCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90
bGJiYXRjaC5oIiAxCgoKCgoKCnN0cnVjdCBhcmNoX3RsYmZsdXNoX3VubWFwX2JhdGNoIHsKCgoK
CiBzdHJ1Y3QgY3B1bWFzayBjcHVtYXNrOwp9OwojIDIwICIuL2luY2x1ZGUvbGludXgvbW1fdHlw
ZXNfdGFzay5oIiAyCiMgMzQgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlc190YXNrLmgiCnN0cnVj
dCB2bWFjYWNoZSB7CiB1NjQgc2VxbnVtOwogc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWFzWygx
VSA8PCAyKV07Cn07CgoKCgoKZW51bSB7CiBNTV9GSUxFUEFHRVMsCiBNTV9BTk9OUEFHRVMsCiBN
TV9TV0FQRU5UUywKIE1NX1NITUVNUEFHRVMsCiBOUl9NTV9DT1VOVEVSUwp9OwoKCgoKc3RydWN0
IHRhc2tfcnNzX3N0YXQgewogaW50IGV2ZW50czsKIGludCBjb3VudFtOUl9NTV9DT1VOVEVSU107
Cn07CgoKc3RydWN0IG1tX3Jzc19zdGF0IHsKIGF0b21pY19sb25nX3QgY291bnRbTlJfTU1fQ09V
TlRFUlNdOwp9OwoKc3RydWN0IHBhZ2VfZnJhZyB7CiBzdHJ1Y3QgcGFnZSAqcGFnZTsKCiBfX3Uz
MiBvZmZzZXQ7CiBfX3UzMiBzaXplOwoKCgoKfTsKCgpzdHJ1Y3QgdGxiZmx1c2hfdW5tYXBfYmF0
Y2ggewojIDg1ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXNfdGFzay5oIgogc3RydWN0IGFyY2hf
dGxiZmx1c2hfdW5tYXBfYmF0Y2ggYXJjaDsKCgogYm9vbCBmbHVzaF9yZXF1aXJlZDsKCgoKCgoK
IGJvb2wgd3JpdGFibGU7Cgp9OwojIDYgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAyCgoj
IDEgIi4vaW5jbHVkZS9saW51eC9hdXh2ZWMuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9s
aW51eC9hdXh2ZWMuaCIgMQoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4
dmVjLmgiIDEKIyA2ICIuL2luY2x1ZGUvdWFwaS9saW51eC9hdXh2ZWMuaCIgMgojIDYgIi4vaW5j
bHVkZS9saW51eC9hdXh2ZWMuaCIgMgojIDggIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAy
CgoKIyAxICIuL2luY2x1ZGUvbGludXgvcmJ0cmVlLmgiIDEKIyAyMiAiLi9pbmNsdWRlL2xpbnV4
L3JidHJlZS5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIiAxCiMgMzggIi4vaW5j
bHVkZS9saW51eC9yY3VwZGF0ZS5oIgp2b2lkIGNhbGxfcmN1KHN0cnVjdCBjYWxsYmFja19oZWFk
ICpoZWFkLCByY3VfY2FsbGJhY2tfdCBmdW5jKTsKdm9pZCByY3VfYmFycmllcl90YXNrcyh2b2lk
KTsKdm9pZCBzeW5jaHJvbml6ZV9yY3Uodm9pZCk7CiMgNTcgIi4vaW5jbHVkZS9saW51eC9yY3Vw
ZGF0ZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIF9fcmN1X3JlYWRfbG9jayh2b2lkKQp7CiBfX2FzbV9fIF9fdm9sYXRpbGVf
XygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmN1X3JlYWRfdW5sb2NrKHZvaWQpCnsKIF9f
YXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCByY3VfcHJlZW1wdF9k
ZXB0aCh2b2lkKQp7CiByZXR1cm4gMDsKfQoKCgoKdm9pZCByY3VfaW5pdCh2b2lkKTsKZXh0ZXJu
IGludCByY3Vfc2NoZWR1bGVyX2FjdGl2ZSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRh
dGEuLnJlYWRfbW9zdGx5IikpKTsKdm9pZCByY3Vfc2NoZWRfY2xvY2tfaXJxKGludCB1c2VyKTsK
dm9pZCByY3VfcmVwb3J0X2RlYWQodW5zaWduZWQgaW50IGNwdSk7CnZvaWQgcmN1dHJlZV9taWdy
YXRlX2NhbGxiYWNrcyhpbnQgY3B1KTsKCgp2b2lkIHJjdV9zeXNycV9zdGFydCh2b2lkKTsKdm9p
ZCByY3Vfc3lzcnFfZW5kKHZvaWQpOwojIDkzICIuL2luY2x1ZGUvbGludXgvcmN1cGRhdGUuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCByY3VfdXNlcl9lbnRlcih2b2lkKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByY3VfdXNlcl9leGl0KHZvaWQpIHsg
fQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgcmN1X2luaXRfbm9oeih2b2lkKSB7IH0KIyAxNDggIi4vaW5jbHVkZS9saW51
eC9yY3VwZGF0ZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGV4aXRfdGFza3NfcmN1X3N0YXJ0KHZvaWQpIHsgfQpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGV4
aXRfdGFza3NfcmN1X2ZpbmlzaCh2b2lkKSB7IH0KIyAxNzEgIi4vaW5jbHVkZS9saW51eC9yY3Vw
ZGF0ZS5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9yY3V0cmVlLmgiIDEKIyAyMCAiLi9pbmNsdWRl
L2xpbnV4L3JjdXRyZWUuaCIKdm9pZCByY3Vfc29mdGlycV9xcyh2b2lkKTsKdm9pZCByY3Vfbm90
ZV9jb250ZXh0X3N3aXRjaChib29sIHByZWVtcHQpOwppbnQgcmN1X25lZWRzX2NwdSh1NjQgYmFz
ZW0sIHU2NCAqbmV4dGV2dCk7CnZvaWQgcmN1X2NwdV9zdGFsbF9yZXNldCh2b2lkKTsKCgoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCByY3VfdmlydF9ub3RlX2NvbnRleHRfc3dpdGNoKGludCBjcHUpCnsKIHJjdV9ub3RlX2Nv
bnRleHRfc3dpdGNoKGZhbHNlKTsKfQoKdm9pZCBzeW5jaHJvbml6ZV9yY3VfZXhwZWRpdGVkKHZv
aWQpOwp2b2lkIGtmcmVlX2NhbGxfcmN1KHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkLCByY3Vf
Y2FsbGJhY2tfdCBmdW5jKTsKCnZvaWQgcmN1X2JhcnJpZXIodm9pZCk7CmJvb2wgcmN1X2Vxc19z
cGVjaWFsX3NldChpbnQgY3B1KTsKdm9pZCByY3VfbW9tZW50YXJ5X2R5bnRpY2tfaWRsZSh2b2lk
KTsKdm9pZCBrZnJlZV9yY3Vfc2NoZWR1bGVyX3J1bm5pbmcodm9pZCk7CnVuc2lnbmVkIGxvbmcg
Z2V0X3N0YXRlX3N5bmNocm9uaXplX3JjdSh2b2lkKTsKdm9pZCBjb25kX3N5bmNocm9uaXplX3Jj
dSh1bnNpZ25lZCBsb25nIG9sZHN0YXRlKTsKCnZvaWQgcmN1X2lkbGVfZW50ZXIodm9pZCk7CnZv
aWQgcmN1X2lkbGVfZXhpdCh2b2lkKTsKdm9pZCByY3VfaXJxX2VudGVyKHZvaWQpOwp2b2lkIHJj
dV9pcnFfZXhpdCh2b2lkKTsKdm9pZCByY3VfaXJxX2VudGVyX2lycXNvbih2b2lkKTsKdm9pZCBy
Y3VfaXJxX2V4aXRfaXJxc29uKHZvaWQpOwoKdm9pZCBleGl0X3JjdSh2b2lkKTsKCnZvaWQgcmN1
X3NjaGVkdWxlcl9zdGFydGluZyh2b2lkKTsKZXh0ZXJuIGludCByY3Vfc2NoZWR1bGVyX2FjdGl2
ZSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRhdGEuLnJlYWRfbW9zdGx5IikpKTsKdm9p
ZCByY3VfZW5kX2lua2VybmVsX2Jvb3Qodm9pZCk7CmJvb2wgcmN1X2lzX3dhdGNoaW5nKHZvaWQp
OwoKdm9pZCByY3VfYWxsX3FzKHZvaWQpOwoKCgppbnQgcmN1dHJlZV9wcmVwYXJlX2NwdSh1bnNp
Z25lZCBpbnQgY3B1KTsKaW50IHJjdXRyZWVfb25saW5lX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsK
aW50IHJjdXRyZWVfb2ZmbGluZV9jcHUodW5zaWduZWQgaW50IGNwdSk7CmludCByY3V0cmVlX2Rl
YWRfY3B1KHVuc2lnbmVkIGludCBjcHUpOwppbnQgcmN1dHJlZV9keWluZ19jcHUodW5zaWduZWQg
aW50IGNwdSk7CnZvaWQgcmN1X2NwdV9zdGFydGluZyh1bnNpZ25lZCBpbnQgY3B1KTsKIyAxNzIg
Ii4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIiAyCiMgMTkyICIuL2luY2x1ZGUvbGludXgvcmN1
cGRhdGUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBpbml0X3JjdV9oZWFkKHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkKSB7
IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBkZXN0cm95X3JjdV9oZWFkKHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkKSB7IH0K
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBpbml0X3JjdV9oZWFkX29uX3N0YWNrKHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkKSB7
IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBkZXN0cm95X3JjdV9oZWFkX29uX3N0YWNrKHN0cnVjdCBjYWxsYmFja19oZWFkICpo
ZWFkKSB7IH0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIHJjdV9sb2NrZGVwX2N1cnJlbnRfY3B1X29ubGluZSh2b2lkKSB7
IHJldHVybiB0cnVlOyB9CiMgMjMxICIuL2luY2x1ZGUvbGludXgvcmN1cGRhdGUuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJj
dV9yZWFkX2xvY2tfaGVsZCh2b2lkKQp7CiByZXR1cm4gMTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJjdV9yZWFkX2xvY2tf
YmhfaGVsZCh2b2lkKQp7CiByZXR1cm4gMTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJjdV9yZWFkX2xvY2tfc2NoZWRfaGVs
ZCh2b2lkKQp7CiByZXR1cm4gITA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCByY3VfcmVhZF9sb2NrX2FueV9oZWxkKHZvaWQp
CnsKIHJldHVybiAhMDsKfQojIDU5NyAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCByY3VfcmVhZF9sb2NrKHZvaWQpCnsK
IF9fcmN1X3JlYWRfbG9jaygpOwogKHZvaWQpMDsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7IH0g
d2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDsKfQojIDY0OSAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmN1X3JlYWRfdW5s
b2NrKHZvaWQpCnsKIGRvIHsgfSB3aGlsZSAoMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7CiAodm9pZCkwOwogX19yY3VfcmVhZF91bmxvY2soKTsK
IGRvIHsgfSB3aGlsZSAoMCk7Cn0KIyA2NzAgIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHJjdV9yZWFkX2xvY2tfYmgodm9pZCkKewogbG9jYWxfYmhfZGlzYWJsZSgpOwogKHZvaWQp
MDsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoKCgoKCgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdV9yZWFk
X3VubG9ja19iaCh2b2lkKQp7CiBkbyB7IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogZG8geyB9IHdoaWxlICgwKTsKICh2
b2lkKTA7CiBsb2NhbF9iaF9lbmFibGUoKTsKfQojIDcwNSAiLi9pbmNsdWRlL2xpbnV4L3JjdXBk
YXRlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgcmN1X3JlYWRfbG9ja19zY2hlZCh2b2lkKQp7CiBfX2FzbV9fIF9fdm9sYXRp
bGVfXygiIjogOiA6Im1lbW9yeSIpOwogKHZvaWQpMDsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7
IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHJjdV9yZWFkX2xvY2tfc2NoZWRfbm90cmFjZSh2b2lkKQp7CiBfX2FzbV9fIF9fdm9sYXRp
bGVfXygiIjogOiA6Im1lbW9yeSIpOwogKHZvaWQpMDsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdV9yZWFkX3Vu
bG9ja19zY2hlZCh2b2lkKQp7CiBkbyB7IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogZG8geyB9IHdoaWxlICgwKTsK
ICh2b2lkKTA7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9CgoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmN1X3JlYWRfdW5sb2Nr
X3NjaGVkX25vdHJhY2Uodm9pZCkKewogKHZvaWQpMDsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIi
OiA6IDoibWVtb3J5Iik7Cn0KIyA4NzAgIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHJjdV9oZWFkX2luaXQoc3RydWN0IGNhbGxiYWNrX2hlYWQgKnJocCkKewogcmhwLT5mdW5jID0g
KHJjdV9jYWxsYmFja190KX4wTDsKfQojIDg4OCAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wKcmN1X2hlYWRfYWZ0ZXJfY2FsbF9yY3Uoc3RydWN0IGNhbGxiYWNrX2hlYWQgKnJocCwg
cmN1X2NhbGxiYWNrX3QgZikKewogcmN1X2NhbGxiYWNrX3QgZnVuYyA9ICh7IHVuaW9uIHsgdHlw
ZW9mKHJocC0+ZnVuYykgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9v
bmNlX3NpemUoJihyaHAtPmZ1bmMpLCBfX3UuX19jLCBzaXplb2YocmhwLT5mdW5jKSk7IGVsc2Ug
X19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYocmhwLT5mdW5jKSwgX191Ll9fYywgc2l6ZW9mKHJo
cC0+ZnVuYykpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOwoKIGlmIChmdW5jID09
IGYpCiAgcmV0dXJuIHRydWU7CiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGZ1bmMgIT0gKHJj
dV9jYWxsYmFja190KX4wTCk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24p
LCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYs
IDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIu
bG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxv
bmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIg
Ilx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6Zmxh
Z3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9s
aW51eC9yY3VwZGF0ZS5oIiksICJpIiAoODk1KSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAo
KDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDAp
OyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNo
YWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIg
KDgpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24p
LCAwKTsgfSk7CiByZXR1cm4gZmFsc2U7Cn0KCgpleHRlcm4gaW50IHJjdV9leHBlZGl0ZWQ7CmV4
dGVybiBpbnQgcmN1X25vcm1hbDsKIyAyMyAiLi9pbmNsdWRlL2xpbnV4L3JidHJlZS5oIiAyCgpz
dHJ1Y3QgcmJfbm9kZSB7CiB1bnNpZ25lZCBsb25nIF9fcmJfcGFyZW50X2NvbG9yOwogc3RydWN0
IHJiX25vZGUgKnJiX3JpZ2h0Owogc3RydWN0IHJiX25vZGUgKnJiX2xlZnQ7Cn0gX19hdHRyaWJ1
dGVfXygoYWxpZ25lZChzaXplb2YobG9uZykpKSk7CgoKc3RydWN0IHJiX3Jvb3Qgewogc3RydWN0
IHJiX25vZGUgKnJiX25vZGU7Cn07CiMgNDkgIi4vaW5jbHVkZS9saW51eC9yYnRyZWUuaCIKZXh0
ZXJuIHZvaWQgcmJfaW5zZXJ0X2NvbG9yKHN0cnVjdCByYl9ub2RlICosIHN0cnVjdCByYl9yb290
ICopOwpleHRlcm4gdm9pZCByYl9lcmFzZShzdHJ1Y3QgcmJfbm9kZSAqLCBzdHJ1Y3QgcmJfcm9v
dCAqKTsKCgoKZXh0ZXJuIHN0cnVjdCByYl9ub2RlICpyYl9uZXh0KGNvbnN0IHN0cnVjdCByYl9u
b2RlICopOwpleHRlcm4gc3RydWN0IHJiX25vZGUgKnJiX3ByZXYoY29uc3Qgc3RydWN0IHJiX25v
ZGUgKik7CmV4dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfZmlyc3QoY29uc3Qgc3RydWN0IHJiX3Jv
b3QgKik7CmV4dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfbGFzdChjb25zdCBzdHJ1Y3QgcmJfcm9v
dCAqKTsKCgpleHRlcm4gc3RydWN0IHJiX25vZGUgKnJiX2ZpcnN0X3Bvc3RvcmRlcihjb25zdCBz
dHJ1Y3QgcmJfcm9vdCAqKTsKZXh0ZXJuIHN0cnVjdCByYl9ub2RlICpyYl9uZXh0X3Bvc3RvcmRl
cihjb25zdCBzdHJ1Y3QgcmJfbm9kZSAqKTsKCgpleHRlcm4gdm9pZCByYl9yZXBsYWNlX25vZGUo
c3RydWN0IHJiX25vZGUgKnZpY3RpbSwgc3RydWN0IHJiX25vZGUgKm5ldywKICAgICAgIHN0cnVj
dCByYl9yb290ICpyb290KTsKZXh0ZXJuIHZvaWQgcmJfcmVwbGFjZV9ub2RlX3JjdShzdHJ1Y3Qg
cmJfbm9kZSAqdmljdGltLCBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAogICAgc3RydWN0IHJiX3Jvb3Qg
KnJvb3QpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCByYl9saW5rX25vZGUoc3RydWN0IHJiX25vZGUgKm5vZGUsIHN0cnVjdCBy
Yl9ub2RlICpwYXJlbnQsCiAgICBzdHJ1Y3QgcmJfbm9kZSAqKnJiX2xpbmspCnsKIG5vZGUtPl9f
cmJfcGFyZW50X2NvbG9yID0gKHVuc2lnbmVkIGxvbmcpcGFyZW50Owogbm9kZS0+cmJfbGVmdCA9
IG5vZGUtPnJiX3JpZ2h0ID0gKCh2b2lkICopMCk7CgogKnJiX2xpbmsgPSBub2RlOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHJiX2xpbmtfbm9kZV9yY3Uoc3RydWN0IHJiX25vZGUgKm5vZGUsIHN0cnVjdCByYl9ub2RlICpw
YXJlbnQsCiAgICAgICAgc3RydWN0IHJiX25vZGUgKipyYl9saW5rKQp7CiBub2RlLT5fX3JiX3Bh
cmVudF9jb2xvciA9ICh1bnNpZ25lZCBsb25nKXBhcmVudDsKIG5vZGUtPnJiX2xlZnQgPSBub2Rl
LT5yYl9yaWdodCA9ICgodm9pZCAqKTApOwoKIGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1
aW50cHRyX3QpKG5vZGUpOyA7IGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChub2RlKSAmJiAoX3Jf
YV9wX192KSA9PSAodWludHB0cl90KSgodm9pZCAqKTApKSAoeyB1bmlvbiB7IHR5cGVvZigoKnJi
X2xpbmspKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigo
KnJiX2xpbmspKSkgKCh0eXBlb2YoKnJiX2xpbmspKShfcl9hX3BfX3YpKSB9OyBfX3dyaXRlX29u
Y2Vfc2l6ZSgmKCgqcmJfbGluaykpLCBfX3UuX19jLCBzaXplb2YoKCpyYl9saW5rKSkpOyBfX3Uu
X192YWw7IH0pOyBlbHNlIGRvIHsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF84NCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6
ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJipyYl9s
aW5rKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComKnJiX2xpbmspID09IHNpemVvZihzaG9y
dCkgfHwgc2l6ZW9mKComKnJiX2xpbmspID09IHNpemVvZihpbnQpIHx8IHNpemVvZigqJipyYl9s
aW5rKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfODQoKTsgfSB3aGls
ZSAoMCk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7ICh7IHVuaW9uIHsg
dHlwZW9mKComKnJiX2xpbmspIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9
ICggdHlwZW9mKComKnJiX2xpbmspKSAoKHR5cGVvZigqKCh0eXBlb2YoKnJiX2xpbmspKV9yX2Ff
cF9fdikpICopKCh0eXBlb2YoKnJiX2xpbmspKV9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9z
aXplKCYoKiYqcmJfbGluayksIF9fdS5fX2MsIHNpemVvZigqJipyYl9saW5rKSk7IF9fdS5fX3Zh
bDsgfSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKfQojIDEyNSAiLi9pbmNsdWRlL2xpbnV4
L3JidHJlZS5oIgpzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgewogc3RydWN0IHJiX3Jvb3QgcmJfcm9v
dDsKIHN0cnVjdCByYl9ub2RlICpyYl9sZWZ0bW9zdDsKfTsKCgoKCgoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByYl9pbnNlcnRf
Y29sb3JfY2FjaGVkKHN0cnVjdCByYl9ub2RlICpub2RlLAogICAgICAgc3RydWN0IHJiX3Jvb3Rf
Y2FjaGVkICpyb290LAogICAgICAgYm9vbCBsZWZ0bW9zdCkKewogaWYgKGxlZnRtb3N0KQogIHJv
b3QtPnJiX2xlZnRtb3N0ID0gbm9kZTsKIHJiX2luc2VydF9jb2xvcihub2RlLCAmcm9vdC0+cmJf
cm9vdCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgcmJfZXJhc2VfY2FjaGVkKHN0cnVjdCByYl9ub2RlICpub2RlLAogICAg
ICAgc3RydWN0IHJiX3Jvb3RfY2FjaGVkICpyb290KQp7CiBpZiAocm9vdC0+cmJfbGVmdG1vc3Qg
PT0gbm9kZSkKICByb290LT5yYl9sZWZ0bW9zdCA9IHJiX25leHQobm9kZSk7CiByYl9lcmFzZShu
b2RlLCAmcm9vdC0+cmJfcm9vdCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmJfcmVwbGFjZV9ub2RlX2NhY2hlZChzdHJ1
Y3QgcmJfbm9kZSAqdmljdGltLAogICAgICAgc3RydWN0IHJiX25vZGUgKm5ldywKICAgICAgIHN0
cnVjdCByYl9yb290X2NhY2hlZCAqcm9vdCkKewogaWYgKHJvb3QtPnJiX2xlZnRtb3N0ID09IHZp
Y3RpbSkKICByb290LT5yYl9sZWZ0bW9zdCA9IG5ldzsKIHJiX3JlcGxhY2Vfbm9kZSh2aWN0aW0s
IG5ldywgJnJvb3QtPnJiX3Jvb3QpOwp9CiMgMTEgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5o
IiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3J3c2VtLmgiIDEKIyAyMCAiLi9pbmNsdWRlL2xpbnV4
L3J3c2VtLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L29zcV9sb2NrLmgiIDEKIyA5ICIuL2luY2x1
ZGUvbGludXgvb3NxX2xvY2suaCIKc3RydWN0IG9wdGltaXN0aWNfc3Bpbl9ub2RlIHsKIHN0cnVj
dCBvcHRpbWlzdGljX3NwaW5fbm9kZSAqbmV4dCwgKnByZXY7CiBpbnQgbG9ja2VkOwogaW50IGNw
dTsKfTsKCnN0cnVjdCBvcHRpbWlzdGljX3NwaW5fcXVldWUgewoKCgoKIGF0b21pY190IHRhaWw7
Cn07CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgb3NxX2xvY2tfaW5pdChzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVl
ICpsb2NrKQp7CiBhdG9taWNfc2V0KCZsb2NrLT50YWlsLCAoMCkpOwp9CgpleHRlcm4gYm9vbCBv
c3FfbG9jayhzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVlICpsb2NrKTsKZXh0ZXJuIHZvaWQg
b3NxX3VubG9jayhzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVlICpsb2NrKTsKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgb3Nx
X2lzX2xvY2tlZChzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVlICpsb2NrKQp7CiByZXR1cm4g
YXRvbWljX3JlYWQoJmxvY2stPnRhaWwpICE9ICgwKTsKfQojIDIxICIuL2luY2x1ZGUvbGludXgv
cndzZW0uaCIgMgojIDM1ICIuL2luY2x1ZGUvbGludXgvcndzZW0uaCIKc3RydWN0IHJ3X3NlbWFw
aG9yZSB7CiBhdG9taWNfbG9uZ190IGNvdW50OwoKCgoKCiBhdG9taWNfbG9uZ190IG93bmVyOwoK
IHN0cnVjdCBvcHRpbWlzdGljX3NwaW5fcXVldWUgb3NxOwoKIHJhd19zcGlubG9ja190IHdhaXRf
bG9jazsKIHN0cnVjdCBsaXN0X2hlYWQgd2FpdF9saXN0OwoKCgoKCgp9OwojIDYzICIuL2luY2x1
ZGUvbGludXgvcndzZW0uaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJ3c2VtX2lzX2xvY2tlZChzdHJ1Y3Qgcndfc2VtYXBob3Jl
ICpzZW0pCnsKIHJldHVybiBhdG9taWNfbG9uZ19yZWFkKCZzZW0tPmNvdW50KSAhPSAwOwp9CiMg
MTAzICIuL2luY2x1ZGUvbGludXgvcndzZW0uaCIKZXh0ZXJuIHZvaWQgX19pbml0X3J3c2VtKHN0
cnVjdCByd19zZW1hcGhvcmUgKnNlbSwgY29uc3QgY2hhciAqbmFtZSwKICAgIHN0cnVjdCBsb2Nr
X2NsYXNzX2tleSAqa2V5KTsKIyAxMTkgIi4vaW5jbHVkZS9saW51eC9yd3NlbS5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcndz
ZW1faXNfY29udGVuZGVkKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSkKewogcmV0dXJuICFsaXN0
X2VtcHR5KCZzZW0tPndhaXRfbGlzdCk7Cn0KCgoKCmV4dGVybiB2b2lkIGRvd25fcmVhZChzdHJ1
Y3Qgcndfc2VtYXBob3JlICpzZW0pOwpleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKSBkb3duX3JlYWRfa2lsbGFibGUoc3RydWN0IHJ3X3NlbWFwaG9yZSAq
c2VtKTsKCgoKCmV4dGVybiBpbnQgZG93bl9yZWFkX3RyeWxvY2soc3RydWN0IHJ3X3NlbWFwaG9y
ZSAqc2VtKTsKCgoKCmV4dGVybiB2b2lkIGRvd25fd3JpdGUoc3RydWN0IHJ3X3NlbWFwaG9yZSAq
c2VtKTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
ZG93bl93cml0ZV9raWxsYWJsZShzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwoKCgoKZXh0ZXJu
IGludCBkb3duX3dyaXRlX3RyeWxvY2soc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKTsKCgoKCmV4
dGVybiB2b2lkIHVwX3JlYWQoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKTsKCgoKCmV4dGVybiB2
b2lkIHVwX3dyaXRlKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSk7CgoKCgpleHRlcm4gdm9pZCBk
b3duZ3JhZGVfd3JpdGUoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKTsKIyAxMiAiLi9pbmNsdWRl
L2xpbnV4L21tX3R5cGVzLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvY29tcGxldGlvbi5oIiAx
CiMgMjYgIi4vaW5jbHVkZS9saW51eC9jb21wbGV0aW9uLmgiCnN0cnVjdCBjb21wbGV0aW9uIHsK
IHVuc2lnbmVkIGludCBkb25lOwogd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDsKfTsKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBj
b21wbGV0ZV9hY3F1aXJlKHN0cnVjdCBjb21wbGV0aW9uICp4KSB7fQpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNvbXBsZXRlX3Jl
bGVhc2Uoc3RydWN0IGNvbXBsZXRpb24gKngpIHt9CiMgODUgIi4vaW5jbHVkZS9saW51eC9jb21w
bGV0aW9uLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgX19pbml0X2NvbXBsZXRpb24oc3RydWN0IGNvbXBsZXRpb24gKngpCnsK
IHgtPmRvbmUgPSAwOwogZG8geyBzdGF0aWMgc3RydWN0IGxvY2tfY2xhc3Nfa2V5IF9fa2V5OyBf
X2luaXRfd2FpdHF1ZXVlX2hlYWQoKCZ4LT53YWl0KSwgIiZ4LT53YWl0IiwgJl9fa2V5KTsgfSB3
aGlsZSAoMCk7Cn0KIyA5OCAiLi9pbmNsdWRlL2xpbnV4L2NvbXBsZXRpb24uaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByZWlu
aXRfY29tcGxldGlvbihzdHJ1Y3QgY29tcGxldGlvbiAqeCkKewogeC0+ZG9uZSA9IDA7Cn0KCmV4
dGVybiB2b2lkIHdhaXRfZm9yX2NvbXBsZXRpb24oc3RydWN0IGNvbXBsZXRpb24gKik7CmV4dGVy
biB2b2lkIHdhaXRfZm9yX2NvbXBsZXRpb25faW8oc3RydWN0IGNvbXBsZXRpb24gKik7CmV4dGVy
biBpbnQgd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKHN0cnVjdCBjb21wbGV0aW9u
ICp4KTsKZXh0ZXJuIGludCB3YWl0X2Zvcl9jb21wbGV0aW9uX2tpbGxhYmxlKHN0cnVjdCBjb21w
bGV0aW9uICp4KTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgd2FpdF9mb3JfY29tcGxldGlvbl90aW1l
b3V0KHN0cnVjdCBjb21wbGV0aW9uICp4LAogICAgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQp
OwpleHRlcm4gdW5zaWduZWQgbG9uZyB3YWl0X2Zvcl9jb21wbGV0aW9uX2lvX3RpbWVvdXQoc3Ry
dWN0IGNvbXBsZXRpb24gKngsCiAgICAgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwpleHRl
cm4gbG9uZyB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGVfdGltZW91dCgKIHN0cnVj
dCBjb21wbGV0aW9uICp4LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwpleHRlcm4gbG9uZyB3YWl0
X2Zvcl9jb21wbGV0aW9uX2tpbGxhYmxlX3RpbWVvdXQoCiBzdHJ1Y3QgY29tcGxldGlvbiAqeCwg
dW5zaWduZWQgbG9uZyB0aW1lb3V0KTsKZXh0ZXJuIGJvb2wgdHJ5X3dhaXRfZm9yX2NvbXBsZXRp
b24oc3RydWN0IGNvbXBsZXRpb24gKngpOwpleHRlcm4gYm9vbCBjb21wbGV0aW9uX2RvbmUoc3Ry
dWN0IGNvbXBsZXRpb24gKngpOwoKZXh0ZXJuIHZvaWQgY29tcGxldGUoc3RydWN0IGNvbXBsZXRp
b24gKik7CmV4dGVybiB2b2lkIGNvbXBsZXRlX2FsbChzdHJ1Y3QgY29tcGxldGlvbiAqKTsKIyAx
MyAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3Vw
cm9iZXMuaCIgMQojIDE5ICIuL2luY2x1ZGUvbGludXgvdXByb2Jlcy5oIgpzdHJ1Y3Qgdm1fYXJl
YV9zdHJ1Y3Q7CnN0cnVjdCBtbV9zdHJ1Y3Q7CnN0cnVjdCBpbm9kZTsKc3RydWN0IG5vdGlmaWVy
X2Jsb2NrOwpzdHJ1Y3QgcGFnZTsKCgoKCgoKZW51bSB1cHJvYmVfZmlsdGVyX2N0eCB7CiBVUFJP
QkVfRklMVEVSX1JFR0lTVEVSLAogVVBST0JFX0ZJTFRFUl9VTlJFR0lTVEVSLAogVVBST0JFX0ZJ
TFRFUl9NTUFQLAp9OwoKc3RydWN0IHVwcm9iZV9jb25zdW1lciB7CiBpbnQgKCpoYW5kbGVyKShz
dHJ1Y3QgdXByb2JlX2NvbnN1bWVyICpzZWxmLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CiBpbnQg
KCpyZXRfaGFuZGxlcikoc3RydWN0IHVwcm9iZV9jb25zdW1lciAqc2VsZiwKICAgIHVuc2lnbmVk
IGxvbmcgZnVuYywKICAgIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKIGJvb2wgKCpmaWx0ZXIpKHN0
cnVjdCB1cHJvYmVfY29uc3VtZXIgKnNlbGYsCiAgICBlbnVtIHVwcm9iZV9maWx0ZXJfY3R4IGN0
eCwKICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKCiBzdHJ1Y3QgdXByb2JlX2NvbnN1bWVyICpu
ZXh0Owp9OwojIDE0MiAiLi9pbmNsdWRlL2xpbnV4L3Vwcm9iZXMuaCIKc3RydWN0IHVwcm9iZXNf
c3RhdGUgewp9OwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCB1cHJvYmVzX2luaXQodm9pZCkKewp9CgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAp1cHJvYmVfcmVn
aXN0ZXIoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgc3RydWN0IHVwcm9iZV9j
b25zdW1lciAqdWMpCnsKIHJldHVybiAtMzg7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVwcm9iZV9yZWdpc3Rlcl9yZWZjdHIo
c3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IHJlZl9jdHJfb2Zmc2V0
LCBzdHJ1Y3QgdXByb2JlX2NvbnN1bWVyICp1YykKewogcmV0dXJuIC0zODsKfQpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKdXByb2Jl
X2FwcGx5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBvZmZzZXQsIHN0cnVjdCB1cHJvYmVf
Y29uc3VtZXIgKnVjLCBib29sIGFkZCkKewogcmV0dXJuIC0zODsKfQpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCnVwcm9iZV91bnJl
Z2lzdGVyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBvZmZzZXQsIHN0cnVjdCB1cHJvYmVf
Y29uc3VtZXIgKnVjKQp7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVwcm9iZV9tbWFwKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq
dm1hKQp7CiByZXR1cm4gMDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCnVwcm9iZV9tdW5tYXAoc3RydWN0IHZtX2FyZWFfc3Ry
dWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQp7Cn0Kc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCB1cHJvYmVfc3RhcnRfZHVwX21tYXAodm9pZCkKewp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdXByb2JlX2VuZF9kdXBfbW1h
cCh2b2lkKQp7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZAp1cHJvYmVfZHVwX21tYXAoc3RydWN0IG1tX3N0cnVjdCAqb2xkbW0s
IHN0cnVjdCBtbV9zdHJ1Y3QgKm5ld21tKQp7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB1cHJvYmVfbm90aWZ5X3Jlc3VtZShz
dHJ1Y3QgcHRfcmVncyAqcmVncykKewp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdXByb2JlX2Rlbnlfc2lnbmFsKHZvaWQpCnsK
IHJldHVybiBmYWxzZTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVwcm9iZV9mcmVlX3V0YXNrKHN0cnVjdCB0YXNrX3N0cnVj
dCAqdCkKewp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgdXByb2JlX2NvcHlfcHJvY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQs
IHVuc2lnbmVkIGxvbmcgZmxhZ3MpCnsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVwcm9iZV9jbGVhcl9zdGF0ZShzdHJ1Y3Qg
bW1fc3RydWN0ICptbSkKewp9CiMgMTUgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAyCgoj
IDEgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIgMQojIDkgIi4vaW5jbHVkZS9saW51eC93
b3JrcXVldWUuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvdGltZXIuaCIgMQoKCgoKCiMgMSAiLi9p
bmNsdWRlL2xpbnV4L2t0aW1lLmgiIDEKIyAyNCAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgiCiMg
MSAiLi9pbmNsdWRlL2xpbnV4L3RpbWUuaCIgMQojIDEwICIuL2luY2x1ZGUvbGludXgvdGltZS5o
IgpleHRlcm4gc3RydWN0IHRpbWV6b25lIHN5c190ejsKCmludCBnZXRfdGltZXNwZWM2NChzdHJ1
Y3QgdGltZXNwZWM2NCAqdHMsCiAgY29uc3Qgc3RydWN0IF9fa2VybmVsX3RpbWVzcGVjICp1dHMp
OwppbnQgcHV0X3RpbWVzcGVjNjQoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnRzLAogIHN0cnVj
dCBfX2tlcm5lbF90aW1lc3BlYyAqdXRzKTsKaW50IGdldF9pdGltZXJzcGVjNjQoc3RydWN0IGl0
aW1lcnNwZWM2NCAqaXQsCiAgIGNvbnN0IHN0cnVjdCBfX2tlcm5lbF9pdGltZXJzcGVjICp1aXQp
OwppbnQgcHV0X2l0aW1lcnNwZWM2NChjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYzY0ICppdCwKICAg
c3RydWN0IF9fa2VybmVsX2l0aW1lcnNwZWMgKnVpdCk7CgpleHRlcm4gdGltZTY0X3QgbWt0aW1l
NjQoY29uc3QgdW5zaWduZWQgaW50IHllYXIsIGNvbnN0IHVuc2lnbmVkIGludCBtb24sCiAgIGNv
bnN0IHVuc2lnbmVkIGludCBkYXksIGNvbnN0IHVuc2lnbmVkIGludCBob3VyLAogICBjb25zdCB1
bnNpZ25lZCBpbnQgbWluLCBjb25zdCB1bnNpZ25lZCBpbnQgc2VjKTsKIyAzOSAiLi9pbmNsdWRl
L2xpbnV4L3RpbWUuaCIKZXh0ZXJuIHZvaWQgY2xlYXJfaXRpbWVyKHZvaWQpOwoKCgoKZXh0ZXJu
IGxvbmcgZG9fdXRpbWVzKGludCBkZmQsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgdGlt
ZXNwZWM2NCAqdGltZXMsIGludCBmbGFncyk7CgoKCgoKc3RydWN0IHRtIHsKCgoKCiBpbnQgdG1f
c2VjOwoKIGludCB0bV9taW47CgogaW50IHRtX2hvdXI7CgogaW50IHRtX21kYXk7CgogaW50IHRt
X21vbjsKCiBsb25nIHRtX3llYXI7CgogaW50IHRtX3dkYXk7CgogaW50IHRtX3lkYXk7Cn07Cgp2
b2lkIHRpbWU2NF90b190bSh0aW1lNjRfdCB0b3RhbHNlY3MsIGludCBvZmZzZXQsIHN0cnVjdCB0
bSAqcmVzdWx0KTsKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3RpbWUzMi5oIiAxCiMgMTMgIi4vaW5j
bHVkZS9saW51eC90aW1lMzIuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvdGltZXguaCIgMQojIDU2
ICIuL2luY2x1ZGUvbGludXgvdGltZXguaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC90aW1l
eC5oIiAxCiMgNTYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWV4LmgiCiMgMSAiLi9pbmNsdWRl
L2xpbnV4L3RpbWUuaCIgMQojIDU3ICIuL2luY2x1ZGUvdWFwaS9saW51eC90aW1leC5oIiAyCiMg
OTcgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWV4LmgiCnN0cnVjdCBfX2tlcm5lbF90aW1leF90
aW1ldmFsIHsKIF9fa2VybmVsX3RpbWU2NF90IHR2X3NlYzsKIGxvbmcgbG9uZyB0dl91c2VjOwp9
OwoKc3RydWN0IF9fa2VybmVsX3RpbWV4IHsKIHVuc2lnbmVkIGludCBtb2RlczsKIGludCA6MzI7
CiBsb25nIGxvbmcgb2Zmc2V0OwogbG9uZyBsb25nIGZyZXE7CiBsb25nIGxvbmcgbWF4ZXJyb3I7
CiBsb25nIGxvbmcgZXN0ZXJyb3I7CiBpbnQgc3RhdHVzOwogaW50IDozMjsKIGxvbmcgbG9uZyBj
b25zdGFudDsKIGxvbmcgbG9uZyBwcmVjaXNpb247CiBsb25nIGxvbmcgdG9sZXJhbmNlOwoKCiBz
dHJ1Y3QgX19rZXJuZWxfdGltZXhfdGltZXZhbCB0aW1lOwogbG9uZyBsb25nIHRpY2s7CgogbG9u
ZyBsb25nIHBwc2ZyZXE7CiBsb25nIGxvbmcgaml0dGVyOwogaW50IHNoaWZ0OwogaW50IDozMjsK
IGxvbmcgbG9uZyBzdGFiaWw7CiBsb25nIGxvbmcgaml0Y250OwogbG9uZyBsb25nIGNhbGNudDsK
IGxvbmcgbG9uZyBlcnJjbnQ7CiBsb25nIGxvbmcgc3RiY250OwoKIGludCB0YWk7CgogaW50IDoz
MjsgaW50IDozMjsgaW50IDozMjsgaW50IDozMjsKIGludCA6MzI7IGludCA6MzI7IGludCA6MzI7
IGludCA6MzI7CiBpbnQgOjMyOyBpbnQgOjMyOyBpbnQgOjMyOwp9OwojIDU3ICIuL2luY2x1ZGUv
bGludXgvdGltZXguaCIgMgoKCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3BhcmFtLmgi
IDEKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9wYXJhbS5o
IiAxCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3BhcmFtLmgiIDEKCgoKCiMgMSAiLi9pbmNs
dWRlL3VhcGkvYXNtLWdlbmVyaWMvcGFyYW0uaCIgMQojIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9wYXJhbS5oIiAyCiMgMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9w
YXJhbS5oIiAyCiMgNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvcGFyYW0uaCIgMgojIDY0ICIuL2lu
Y2x1ZGUvbGludXgvdGltZXguaCIgMgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RpbWV4
LmgiIDEKCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdHNjLmgiIDEKIyAxNiAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS90c2MuaCIKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgY3lj
bGVzX3Q7CgpleHRlcm4gdW5zaWduZWQgaW50IGNwdV9raHo7CmV4dGVybiB1bnNpZ25lZCBpbnQg
dHNjX2toejsKCmV4dGVybiB2b2lkIGRpc2FibGVfVFNDKHZvaWQpOwoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY3ljbGVzX3QgZ2V0X2N5
Y2xlcyh2b2lkKQp7CgoKCgoKIHJldHVybiByZHRzYygpOwp9CgpleHRlcm4gc3RydWN0IHN5c3Rl
bV9jb3VudGVydmFsX3QgY29udmVydF9hcnRfdG9fdHNjKHU2NCBhcnQpOwpleHRlcm4gc3RydWN0
IHN5c3RlbV9jb3VudGVydmFsX3QgY29udmVydF9hcnRfbnNfdG9fdHNjKHU2NCBhcnRfbnMpOwoK
ZXh0ZXJuIHZvaWQgdHNjX2Vhcmx5X2luaXQodm9pZCk7CmV4dGVybiB2b2lkIHRzY19pbml0KHZv
aWQpOwpleHRlcm4gdW5zaWduZWQgbG9uZyBjYWxpYnJhdGVfZGVsYXlfaXNfa25vd24odm9pZCk7
CmV4dGVybiB2b2lkIG1hcmtfdHNjX3Vuc3RhYmxlKGNoYXIgKnJlYXNvbik7CmV4dGVybiBpbnQg
dW5zeW5jaHJvbml6ZWRfdHNjKHZvaWQpOwpleHRlcm4gaW50IGNoZWNrX3RzY191bnN0YWJsZSh2
b2lkKTsKZXh0ZXJuIHZvaWQgbWFya190c2NfYXN5bmNfcmVzZXRzKGNoYXIgKnJlYXNvbik7CmV4
dGVybiB1bnNpZ25lZCBsb25nIG5hdGl2ZV9jYWxpYnJhdGVfY3B1X2Vhcmx5KHZvaWQpOwpleHRl
cm4gdW5zaWduZWQgbG9uZyBuYXRpdmVfY2FsaWJyYXRlX3RzYyh2b2lkKTsKZXh0ZXJuIHVuc2ln
bmVkIGxvbmcgbG9uZyBuYXRpdmVfc2NoZWRfY2xvY2tfZnJvbV90c2ModTY0IHRzYyk7CgpleHRl
cm4gaW50IHRzY19jbG9ja3NvdXJjZV9yZWxpYWJsZTsKCmV4dGVybiBib29sIHRzY19hc3luY19y
ZXNldHM7CiMgNTkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdHNjLmgiCmV4dGVybiBib29sIHRz
Y19zdG9yZV9hbmRfY2hlY2tfdHNjX2FkanVzdChib29sIGJvb3RjcHUpOwpleHRlcm4gdm9pZCB0
c2NfdmVyaWZ5X3RzY19hZGp1c3QoYm9vbCByZXN1bWUpOwpleHRlcm4gdm9pZCBjaGVja190c2Nf
c3luY19zb3VyY2UoaW50IGNwdSk7CmV4dGVybiB2b2lkIGNoZWNrX3RzY19zeW5jX3RhcmdldCh2
b2lkKTsKCgoKCgoKCmV4dGVybiBpbnQgbm90c2Nfc2V0dXAoY2hhciAqKTsKZXh0ZXJuIHZvaWQg
dHNjX3NhdmVfc2NoZWRfY2xvY2tfc3RhdGUodm9pZCk7CmV4dGVybiB2b2lkIHRzY19yZXN0b3Jl
X3NjaGVkX2Nsb2NrX3N0YXRlKHZvaWQpOwoKdW5zaWduZWQgbG9uZyBjcHVfa2h6X2Zyb21fbXNy
KHZvaWQpOwojIDcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdGltZXguaCIgMgojIDY2ICIuL2lu
Y2x1ZGUvbGludXgvdGltZXguaCIgMgojIDEzOSAiLi9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiCmV4
dGVybiB1bnNpZ25lZCBsb25nIHRpY2tfdXNlYzsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdGlja19u
c2VjOwojIDE1NCAiLi9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiCmV4dGVybiBpbnQgZG9fYWRqdGlt
ZXgoc3RydWN0IF9fa2VybmVsX3RpbWV4ICopOwpleHRlcm4gaW50IGRvX2Nsb2NrX2FkanRpbWUo
Y29uc3QgY2xvY2tpZF90IHdoaWNoX2Nsb2NrLCBzdHJ1Y3QgX19rZXJuZWxfdGltZXggKiBrdHgp
OwoKZXh0ZXJuIHZvaWQgaGFyZHBwcyhjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqLCBjb25zdCBz
dHJ1Y3QgdGltZXNwZWM2NCAqKTsKCmludCByZWFkX2N1cnJlbnRfdGltZXIodW5zaWduZWQgbG9u
ZyAqdGltZXJfdmFsKTsKdm9pZCBudHBfbm90aWZ5X2Ntb3NfdGltZXIodm9pZCk7CiMgMTQgIi4v
aW5jbHVkZS9saW51eC90aW1lMzIuaCIgMgoKdHlwZWRlZiBzMzIgb2xkX3RpbWUzMl90OwoKc3Ry
dWN0IG9sZF90aW1lc3BlYzMyIHsKIG9sZF90aW1lMzJfdCB0dl9zZWM7CiBzMzIgdHZfbnNlYzsK
fTsKCnN0cnVjdCBvbGRfdGltZXZhbDMyIHsKIG9sZF90aW1lMzJfdCB0dl9zZWM7CiBzMzIgdHZf
dXNlYzsKfTsKCnN0cnVjdCBvbGRfaXRpbWVyc3BlYzMyIHsKIHN0cnVjdCBvbGRfdGltZXNwZWMz
MiBpdF9pbnRlcnZhbDsKIHN0cnVjdCBvbGRfdGltZXNwZWMzMiBpdF92YWx1ZTsKfTsKCnN0cnVj
dCBvbGRfdXRpbWJ1ZjMyIHsKIG9sZF90aW1lMzJfdCBhY3RpbWU7CiBvbGRfdGltZTMyX3QgbW9k
dGltZTsKfTsKCnN0cnVjdCBvbGRfdGltZXgzMiB7CiB1MzIgbW9kZXM7CiBzMzIgb2Zmc2V0Owog
czMyIGZyZXE7CiBzMzIgbWF4ZXJyb3I7CiBzMzIgZXN0ZXJyb3I7CiBzMzIgc3RhdHVzOwogczMy
IGNvbnN0YW50OwogczMyIHByZWNpc2lvbjsKIHMzMiB0b2xlcmFuY2U7CiBzdHJ1Y3Qgb2xkX3Rp
bWV2YWwzMiB0aW1lOwogczMyIHRpY2s7CiBzMzIgcHBzZnJlcTsKIHMzMiBqaXR0ZXI7CiBzMzIg
c2hpZnQ7CiBzMzIgc3RhYmlsOwogczMyIGppdGNudDsKIHMzMiBjYWxjbnQ7CiBzMzIgZXJyY250
OwogczMyIHN0YmNudDsKIHMzMiB0YWk7CgogczMyOjMyOyBzMzI6MzI7IHMzMjozMjsgczMyOjMy
OwogczMyOjMyOyBzMzI6MzI7IHMzMjozMjsgczMyOjMyOwogczMyOjMyOyBzMzI6MzI7IHMzMjoz
MjsKfTsKCmV4dGVybiBpbnQgZ2V0X29sZF90aW1lc3BlYzMyKHN0cnVjdCB0aW1lc3BlYzY0ICos
IGNvbnN0IHZvaWQgKik7CmV4dGVybiBpbnQgcHV0X29sZF90aW1lc3BlYzMyKGNvbnN0IHN0cnVj
dCB0aW1lc3BlYzY0ICosIHZvaWQgKik7CmV4dGVybiBpbnQgZ2V0X29sZF9pdGltZXJzcGVjMzIo
c3RydWN0IGl0aW1lcnNwZWM2NCAqaXRzLAogICBjb25zdCBzdHJ1Y3Qgb2xkX2l0aW1lcnNwZWMz
MiAqdWl0cyk7CmV4dGVybiBpbnQgcHV0X29sZF9pdGltZXJzcGVjMzIoY29uc3Qgc3RydWN0IGl0
aW1lcnNwZWM2NCAqaXRzLAogICBzdHJ1Y3Qgb2xkX2l0aW1lcnNwZWMzMiAqdWl0cyk7CnN0cnVj
dCBfX2tlcm5lbF90aW1leDsKaW50IGdldF9vbGRfdGltZXgzMihzdHJ1Y3QgX19rZXJuZWxfdGlt
ZXggKiwgY29uc3Qgc3RydWN0IG9sZF90aW1leDMyICopOwppbnQgcHV0X29sZF90aW1leDMyKHN0
cnVjdCBvbGRfdGltZXgzMiAqLCBjb25zdCBzdHJ1Y3QgX19rZXJuZWxfdGltZXggKik7CgoKCgoK
CgpleHRlcm4gc3RydWN0IF9fa2VybmVsX29sZF90aW1ldmFsIG5zX3RvX2tlcm5lbF9vbGRfdGlt
ZXZhbChzNjQgbnNlYyk7CiMgNzUgIi4vaW5jbHVkZS9saW51eC90aW1lLmgiIDIKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaXRp
bWVyc3BlYzY0X3ZhbGlkKGNvbnN0IHN0cnVjdCBpdGltZXJzcGVjNjQgKml0cykKewogaWYgKCF0
aW1lc3BlYzY0X3ZhbGlkKCYoaXRzLT5pdF9pbnRlcnZhbCkpIHx8CiAgIXRpbWVzcGVjNjRfdmFs
aWQoJihpdHMtPml0X3ZhbHVlKSkpCiAgcmV0dXJuIGZhbHNlOwoKIHJldHVybiB0cnVlOwp9CiMg
MTE0ICIuL2luY2x1ZGUvbGludXgvdGltZS5oIgpzdHJ1Y3QgdGltZW5zX29mZnNldCB7CiBzNjQg
c2VjOwogdTY0IG5zZWM7Cn07CiMgMjUgIi4vaW5jbHVkZS9saW51eC9rdGltZS5oIiAyCiMgMSAi
Li9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaCIgMQojIDExICIuL2luY2x1ZGUvbGludXgvamlmZmll
cy5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vcGFyYW0uaCIg
MQojIDEyICIuL2luY2x1ZGUvbGludXgvamlmZmllcy5oIiAyCiMgMSAiLi9pbmNsdWRlL2dlbmVy
YXRlZC90aW1lY29uc3QuaCIgMQojIDEzICIuL2luY2x1ZGUvbGludXgvamlmZmllcy5oIiAyCiMg
NjAgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCmV4dGVybiBpbnQgcmVnaXN0ZXJfcmVmaW5l
ZF9qaWZmaWVzKGxvbmcgY2xvY2tfdGlja19yYXRlKTsKIyA4MCAiLi9pbmNsdWRlL2xpbnV4L2pp
ZmZpZXMuaCIKZXh0ZXJuIHU2NCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikp
KSwgX19zZWN0aW9uX18oIi5kYXRhLi5jYWNoZWxpbmVfYWxpZ25lZCIpKSkgamlmZmllc182NDsK
ZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdm9sYXRpbGUgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18o
KDEgPDwgKDYpKSksIF9fc2VjdGlvbl9fKCIuZGF0YS4uY2FjaGVsaW5lX2FsaWduZWQiKSkpIGpp
ZmZpZXM7CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1NjQgZ2V0X2ppZmZpZXNfNjQodm9pZCkKewogcmV0dXJuICh1NjQpamlmZmll
czsKfQojIDE5MCAiLi9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaCIKZXh0ZXJuIHVuc2lnbmVkIGxv
bmcgcHJlc2V0X2xwajsKIyAyOTEgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCmV4dGVybiB1
bnNpZ25lZCBpbnQgamlmZmllc190b19tc2Vjcyhjb25zdCB1bnNpZ25lZCBsb25nIGopOwpleHRl
cm4gdW5zaWduZWQgaW50IGppZmZpZXNfdG9fdXNlY3MoY29uc3QgdW5zaWduZWQgbG9uZyBqKTsK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHU2NCBqaWZmaWVzX3RvX25zZWNzKGNvbnN0IHVuc2lnbmVkIGxvbmcgaikKewogcmV0dXJuICh1
NjQpamlmZmllc190b191c2VjcyhqKSAqIDEwMDBMOwp9CgpleHRlcm4gdTY0IGppZmZpZXM2NF90
b19uc2Vjcyh1NjQgaik7CmV4dGVybiB1NjQgamlmZmllczY0X3RvX21zZWNzKHU2NCBqKTsKCmV4
dGVybiB1bnNpZ25lZCBsb25nIF9fbXNlY3NfdG9famlmZmllcyhjb25zdCB1bnNpZ25lZCBpbnQg
bSk7CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgX21zZWNzX3RvX2ppZmZpZXMoY29uc3QgdW5zaWduZWQg
aW50IG0pCnsKIHJldHVybiAobSArICgxMDAwTCAvIDI1MCkgLSAxKSAvICgxMDAwTCAvIDI1MCk7
Cn0KIyAzNjQgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdW5zaWduZWQgbG9uZyBtc2Vjc190b19qaWZmaWVzKGNvbnN0IHVuc2ln
bmVkIGludCBtKQp7CiBpZiAoX19idWlsdGluX2NvbnN0YW50X3AobSkpIHsKICBpZiAoKGludClt
IDwgMCkKICAgcmV0dXJuICgoKChsb25nKSh+MFVMID4+IDEpKSA+PiAxKS0xKTsKICByZXR1cm4g
X21zZWNzX3RvX2ppZmZpZXMobSk7CiB9IGVsc2UgewogIHJldHVybiBfX21zZWNzX3RvX2ppZmZp
ZXMobSk7CiB9Cn0KCmV4dGVybiB1bnNpZ25lZCBsb25nIF9fdXNlY3NfdG9famlmZmllcyhjb25z
dCB1bnNpZ25lZCBpbnQgdSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF91c2Vjc190b19qaWZmaWVzKGNvbnN0
IHVuc2lnbmVkIGludCB1KQp7CiByZXR1cm4gKHUgKyAoMTAwMDAwMEwgLyAyNTApIC0gMSkgLyAo
MTAwMDAwMEwgLyAyNTApOwp9CiMgNDExICIuL2luY2x1ZGUvbGludXgvamlmZmllcy5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgdXNlY3NfdG9famlm
Zmllcyhjb25zdCB1bnNpZ25lZCBpbnQgdSkKewogaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKHUp
KSB7CiAgaWYgKHUgPiBqaWZmaWVzX3RvX3VzZWNzKCgoKChsb25nKSh+MFVMID4+IDEpKSA+PiAx
KS0xKSkpCiAgIHJldHVybiAoKCgobG9uZykofjBVTCA+PiAxKSkgPj4gMSktMSk7CiAgcmV0dXJu
IF91c2Vjc190b19qaWZmaWVzKHUpOwogfSBlbHNlIHsKICByZXR1cm4gX191c2Vjc190b19qaWZm
aWVzKHUpOwogfQp9CgpleHRlcm4gdW5zaWduZWQgbG9uZyB0aW1lc3BlYzY0X3RvX2ppZmZpZXMo
Y29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnZhbHVlKTsKZXh0ZXJuIHZvaWQgamlmZmllc190b190
aW1lc3BlYzY0KGNvbnN0IHVuc2lnbmVkIGxvbmcgamlmZmllcywKICAgICAgc3RydWN0IHRpbWVz
cGVjNjQgKnZhbHVlKTsKZXh0ZXJuIGNsb2NrX3QgamlmZmllc190b19jbG9ja190KHVuc2lnbmVk
IGxvbmcgeCk7CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGNsb2NrX3QgamlmZmllc19kZWx0YV90b19jbG9ja190KGxvbmcgZGVsdGEpCnsK
IHJldHVybiBqaWZmaWVzX3RvX2Nsb2NrX3QoX19idWlsdGluX2Nob29zZV9leHByKCgoISEoc2l6
ZW9mKCh0eXBlb2YoMEwpICopMSA9PSAodHlwZW9mKGRlbHRhKSAqKTEpKSkgJiYgKChzaXplb2Yo
aW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25nKSgwTCkgKiAwbCkpIDogKGludCAq
KTgpKSkgJiYgKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKGRl
bHRhKSAqIDBsKSkgOiAoaW50ICopOCkpKSkpLCAoKDBMKSA+IChkZWx0YSkgPyAoMEwpIDogKGRl
bHRhKSksICh7IHR5cGVvZigwTCkgX19VTklRVUVfSURfX194OSA9ICgwTCk7IHR5cGVvZihkZWx0
YSkgX19VTklRVUVfSURfX195MTAgPSAoZGVsdGEpOyAoKF9fVU5JUVVFX0lEX19feDkpID4gKF9f
VU5JUVVFX0lEX19feTEwKSA/IChfX1VOSVFVRV9JRF9fX3g5KSA6IChfX1VOSVFVRV9JRF9fX3kx
MCkpOyB9KSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgamlmZmllc19kZWx0YV90b19tc2Vjcyhsb25nIGRl
bHRhKQp7CiByZXR1cm4gamlmZmllc190b19tc2VjcyhfX2J1aWx0aW5fY2hvb3NlX2V4cHIoKCgh
IShzaXplb2YoKHR5cGVvZigwTCkgKikxID09ICh0eXBlb2YoZGVsdGEpICopMSkpKSAmJiAoKHNp
emVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKDBMKSAqIDBsKSkgOiAo
aW50ICopOCkpKSAmJiAoc2l6ZW9mKGludCkgPT0gc2l6ZW9mKCooOCA/ICgodm9pZCAqKSgobG9u
ZykoZGVsdGEpICogMGwpKSA6IChpbnQgKik4KSkpKSksICgoMEwpID4gKGRlbHRhKSA/ICgwTCkg
OiAoZGVsdGEpKSwgKHsgdHlwZW9mKDBMKSBfX1VOSVFVRV9JRF9fX3gxMSA9ICgwTCk7IHR5cGVv
ZihkZWx0YSkgX19VTklRVUVfSURfX195MTIgPSAoZGVsdGEpOyAoKF9fVU5JUVVFX0lEX19feDEx
KSA+IChfX1VOSVFVRV9JRF9fX3kxMikgPyAoX19VTklRVUVfSURfX194MTEpIDogKF9fVU5JUVVF
X0lEX19feTEyKSk7IH0pKSk7Cn0KCmV4dGVybiB1bnNpZ25lZCBsb25nIGNsb2NrX3RfdG9famlm
Zmllcyh1bnNpZ25lZCBsb25nIHgpOwpleHRlcm4gdTY0IGppZmZpZXNfNjRfdG9fY2xvY2tfdCh1
NjQgeCk7CmV4dGVybiB1NjQgbnNlY190b19jbG9ja190KHU2NCB4KTsKZXh0ZXJuIHU2NCBuc2Vj
c190b19qaWZmaWVzNjQodTY0IG4pOwpleHRlcm4gdW5zaWduZWQgbG9uZyBuc2Vjc190b19qaWZm
aWVzKHU2NCBuKTsKIyAyNiAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgiIDIKCgp0eXBlZGVmIHM2
NCBrdGltZV90OwojIDM3ICIuL2luY2x1ZGUvbGludXgva3RpbWUuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9z
ZXQoY29uc3QgczY0IHNlY3MsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbnNlY3MpCnsKIGlmIChfX2J1
aWx0aW5fZXhwZWN0KCEhKHNlY3MgPj0gKCgoczY0KX4oKHU2NCkxIDw8IDYzKSkgLyAxMDAwMDAw
MDAwTCkpLCAwKSkKICByZXR1cm4gKChzNjQpfigodTY0KTEgPDwgNjMpKTsKCiByZXR1cm4gc2Vj
cyAqIDEwMDAwMDAwMDBMICsgKHM2NCluc2VjczsKfQojIDcwICIuL2luY2x1ZGUvbGludXgva3Rp
bWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkga3RpbWVfdCB0aW1lc3BlYzY0X3RvX2t0aW1lKHN0cnVjdCB0aW1lc3BlYzY0IHRzKQp7
CiByZXR1cm4ga3RpbWVfc2V0KHRzLnR2X3NlYywgdHMudHZfbnNlYyk7Cn0KCgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQga3Rp
bWVfdG9fbnMoY29uc3Qga3RpbWVfdCBrdCkKewogcmV0dXJuIGt0Owp9CiMgOTQgIi4vaW5jbHVk
ZS9saW51eC9rdGltZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQga3RpbWVfY29tcGFyZShjb25zdCBrdGltZV90IGNtcDEsIGNv
bnN0IGt0aW1lX3QgY21wMikKewogaWYgKGNtcDEgPCBjbXAyKQogIHJldHVybiAtMTsKIGlmIChj
bXAxID4gY21wMikKICByZXR1cm4gMTsKIHJldHVybiAwOwp9CiMgMTEwICIuL2luY2x1ZGUvbGlu
dXgva3RpbWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBrdGltZV9hZnRlcihjb25zdCBrdGltZV90IGNtcDEsIGNvbnN0IGt0
aW1lX3QgY21wMikKewogcmV0dXJuIGt0aW1lX2NvbXBhcmUoY21wMSwgY21wMikgPiAwOwp9CiMg
MTIyICIuL2luY2x1ZGUvbGludXgva3RpbWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrdGltZV9iZWZvcmUoY29uc3Qga3Rp
bWVfdCBjbXAxLCBjb25zdCBrdGltZV90IGNtcDIpCnsKIHJldHVybiBrdGltZV9jb21wYXJlKGNt
cDEsIGNtcDIpIDwgMDsKfQojIDE0NyAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBrdGlt
ZV9kaXZucyhjb25zdCBrdGltZV90IGt0LCBzNjQgZGl2KQp7CgoKCgogKHsgaW50IF9fcmV0X3dh
cm5fb24gPSAhIShkaXYgPCAwKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9v
biksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgw
ZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIg
Ii5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIu
bG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMx
IiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5Ojpm
bGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRl
L2xpbnV4L2t0aW1lLmgiKSwgImkiICgxNTMpLCAiaSIgKCgxIDw8IDApfCgoKDkpIDw8IDgpKSks
ICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9s
YXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIu
bG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDEzKSk7IH0pOyB9
IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwog
cmV0dXJuIGt0IC8gZGl2Owp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGt0aW1lX3RvX3VzKGNvbnN0IGt0aW1lX3Qga3QpCnsK
IHJldHVybiBrdGltZV9kaXZucyhrdCwgMTAwMEwpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQga3RpbWVfdG9fbXMoY29uc3Qg
a3RpbWVfdCBrdCkKewogcmV0dXJuIGt0aW1lX2Rpdm5zKGt0LCAxMDAwMDAwTCk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBr
dGltZV91c19kZWx0YShjb25zdCBrdGltZV90IGxhdGVyLCBjb25zdCBrdGltZV90IGVhcmxpZXIp
CnsKICAgICAgIHJldHVybiBrdGltZV90b191cygoKGxhdGVyKSAtIChlYXJsaWVyKSkpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBz
NjQga3RpbWVfbXNfZGVsdGEoY29uc3Qga3RpbWVfdCBsYXRlciwgY29uc3Qga3RpbWVfdCBlYXJs
aWVyKQp7CiByZXR1cm4ga3RpbWVfdG9fbXMoKChsYXRlcikgLSAoZWFybGllcikpKTsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3Rp
bWVfdCBrdGltZV9hZGRfdXMoY29uc3Qga3RpbWVfdCBrdCwgY29uc3QgdTY0IHVzZWMpCnsKIHJl
dHVybiAoKGt0KSArICh1c2VjICogMTAwMEwpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9hZGRfbXMoY29u
c3Qga3RpbWVfdCBrdCwgY29uc3QgdTY0IG1zZWMpCnsKIHJldHVybiAoKGt0KSArIChtc2VjICog
MTAwMDAwMEwpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9zdWJfdXMoY29uc3Qga3RpbWVfdCBrdCwgY29u
c3QgdTY0IHVzZWMpCnsKIHJldHVybiAoKGt0KSAtICh1c2VjICogMTAwMEwpKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVf
dCBrdGltZV9zdWJfbXMoY29uc3Qga3RpbWVfdCBrdCwgY29uc3QgdTY0IG1zZWMpCnsKIHJldHVy
biAoKGt0KSAtIChtc2VjICogMTAwMDAwMEwpKTsKfQoKZXh0ZXJuIGt0aW1lX3Qga3RpbWVfYWRk
X3NhZmUoY29uc3Qga3RpbWVfdCBsaHMsIGNvbnN0IGt0aW1lX3QgcmhzKTsKIyAyMDggIi4vaW5j
bHVkZS9saW51eC9rdGltZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkgYm9vbCBrdGltZV90b190aW1lc3BlYzY0X2NvbmQoY29uc3Qga3RpbWVfdCBrdCwKICAgICAg
ICAgICAgIHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKewogaWYgKGt0KSB7CiAgKnRzID0gbnNfdG9f
dGltZXNwZWM2NCgoa3QpKTsKICByZXR1cm4gdHJ1ZTsKIH0gZWxzZSB7CiAgcmV0dXJuIGZhbHNl
OwogfQp9CiMgMjI4ICIuL2luY2x1ZGUvbGludXgva3RpbWUuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBuc190b19rdGlt
ZSh1NjQgbnMpCnsKIHJldHVybiBuczsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBtc190b19rdGltZSh1NjQgbXMpCnsK
IHJldHVybiBtcyAqIDEwMDAwMDBMOwp9CgojIDEgIi4vaW5jbHVkZS9saW51eC90aW1la2VlcGlu
Zy5oIiAxCiMgOSAiLi9pbmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nLmgiCnZvaWQgdGltZWtlZXBp
bmdfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCB0aW1la2VlcGluZ19zdXNwZW5kZWQ7CgoKZXh0ZXJu
IHZvaWQgdXBkYXRlX3Byb2Nlc3NfdGltZXMoaW50IHVzZXIpOwpleHRlcm4gdm9pZCB4dGltZV91
cGRhdGUodW5zaWduZWQgbG9uZyB0aWNrcyk7CgoKCgpleHRlcm4gaW50IGRvX3NldHRpbWVvZmRh
eTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CmV4dGVybiBpbnQgZG9fc3lzX3NldHRp
bWVvZmRheTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0diwKICAgICBjb25zdCBzdHJ1Y3Qg
dGltZXpvbmUgKnR6KTsKIyA0MSAiLi9pbmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nLmgiCmV4dGVy
biB2b2lkIGt0aW1lX2dldF9yYXdfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwpleHRlcm4g
dm9pZCBrdGltZV9nZXRfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwpleHRlcm4gdm9pZCBr
dGltZV9nZXRfcmVhbF90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0dik7CmV4dGVybiB2b2lkIGt0
aW1lX2dldF9jb2Fyc2VfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwpleHRlcm4gdm9pZCBr
dGltZV9nZXRfY29hcnNlX3JlYWxfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwoKdm9pZCBn
ZXRib290dGltZTY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CgoKCgpleHRlcm4gdGltZTY0X3Qg
a3RpbWVfZ2V0X3NlY29uZHModm9pZCk7CmV4dGVybiB0aW1lNjRfdCBfX2t0aW1lX2dldF9yZWFs
X3NlY29uZHModm9pZCk7CmV4dGVybiB0aW1lNjRfdCBrdGltZV9nZXRfcmVhbF9zZWNvbmRzKHZv
aWQpOwoKCgoKCmVudW0gdGtfb2Zmc2V0cyB7CiBUS19PRkZTX1JFQUwsCiBUS19PRkZTX0JPT1Qs
CiBUS19PRkZTX1RBSSwKIFRLX09GRlNfTUFYLAp9OwoKZXh0ZXJuIGt0aW1lX3Qga3RpbWVfZ2V0
KHZvaWQpOwpleHRlcm4ga3RpbWVfdCBrdGltZV9nZXRfd2l0aF9vZmZzZXQoZW51bSB0a19vZmZz
ZXRzIG9mZnMpOwpleHRlcm4ga3RpbWVfdCBrdGltZV9nZXRfY29hcnNlX3dpdGhfb2Zmc2V0KGVu
dW0gdGtfb2Zmc2V0cyBvZmZzKTsKZXh0ZXJuIGt0aW1lX3Qga3RpbWVfbW9ub190b19hbnkoa3Rp
bWVfdCB0bW9ubywgZW51bSB0a19vZmZzZXRzIG9mZnMpOwpleHRlcm4ga3RpbWVfdCBrdGltZV9n
ZXRfcmF3KHZvaWQpOwpleHRlcm4gdTMyIGt0aW1lX2dldF9yZXNvbHV0aW9uX25zKHZvaWQpOwoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkga3RpbWVfdCBrdGltZV9nZXRfcmVhbCh2b2lkKQp7CiByZXR1cm4ga3RpbWVfZ2V0X3dpdGhf
b2Zmc2V0KFRLX09GRlNfUkVBTCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X2NvYXJzZV9yZWFsKHZv
aWQpCnsKIHJldHVybiBrdGltZV9nZXRfY29hcnNlX3dpdGhfb2Zmc2V0KFRLX09GRlNfUkVBTCk7
Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X2Jvb3R0aW1lKHZvaWQpCnsKIHJldHVybiBrdGlt
ZV9nZXRfd2l0aF9vZmZzZXQoVEtfT0ZGU19CT09UKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9nZXRfY29h
cnNlX2Jvb3R0aW1lKHZvaWQpCnsKIHJldHVybiBrdGltZV9nZXRfY29hcnNlX3dpdGhfb2Zmc2V0
KFRLX09GRlNfQk9PVCk7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X2Nsb2NrdGFpKHZvaWQpCnsK
IHJldHVybiBrdGltZV9nZXRfd2l0aF9vZmZzZXQoVEtfT0ZGU19UQUkpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGt0
aW1lX2dldF9jb2Fyc2VfY2xvY2t0YWkodm9pZCkKewogcmV0dXJuIGt0aW1lX2dldF9jb2Fyc2Vf
d2l0aF9vZmZzZXQoVEtfT0ZGU19UQUkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGt0aW1lX2dldF9jb2Fyc2Uodm9p
ZCkKewogc3RydWN0IHRpbWVzcGVjNjQgdHM7Cgoga3RpbWVfZ2V0X2NvYXJzZV90czY0KCZ0cyk7
CiByZXR1cm4gdGltZXNwZWM2NF90b19rdGltZSh0cyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfY29hcnNl
X25zKHZvaWQpCnsKIHJldHVybiBrdGltZV90b19ucyhrdGltZV9nZXRfY29hcnNlKCkpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1
NjQga3RpbWVfZ2V0X2NvYXJzZV9yZWFsX25zKHZvaWQpCnsKIHJldHVybiBrdGltZV90b19ucyhr
dGltZV9nZXRfY29hcnNlX3JlYWwoKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfY29hcnNlX2Jvb3R0aW1l
X25zKHZvaWQpCnsKIHJldHVybiBrdGltZV90b19ucyhrdGltZV9nZXRfY29hcnNlX2Jvb3R0aW1l
KCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB1NjQga3RpbWVfZ2V0X2NvYXJzZV9jbG9ja3RhaV9ucyh2b2lkKQp7CiByZXR1cm4g
a3RpbWVfdG9fbnMoa3RpbWVfZ2V0X2NvYXJzZV9jbG9ja3RhaSgpKTsKfQoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBr
dGltZV9tb25vX3RvX3JlYWwoa3RpbWVfdCBtb25vKQp7CiByZXR1cm4ga3RpbWVfbW9ub190b19h
bnkobW9ubywgVEtfT0ZGU19SRUFMKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0IGt0aW1lX2dldF9ucyh2b2lkKQp7CiByZXR1
cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0KCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVfZ2V0X3JlYWxfbnModm9p
ZCkKewogcmV0dXJuIGt0aW1lX3RvX25zKGt0aW1lX2dldF9yZWFsKCkpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVf
Z2V0X2Jvb3R0aW1lX25zKHZvaWQpCnsKIHJldHVybiBrdGltZV90b19ucyhrdGltZV9nZXRfYm9v
dHRpbWUoKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfY2xvY2t0YWlfbnModm9pZCkKewogcmV0dXJuIGt0
aW1lX3RvX25zKGt0aW1lX2dldF9jbG9ja3RhaSgpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0IGt0aW1lX2dldF9yYXdfbnMo
dm9pZCkKewogcmV0dXJuIGt0aW1lX3RvX25zKGt0aW1lX2dldF9yYXcoKSk7Cn0KCmV4dGVybiB1
NjQga3RpbWVfZ2V0X21vbm9fZmFzdF9ucyh2b2lkKTsKZXh0ZXJuIHU2NCBrdGltZV9nZXRfcmF3
X2Zhc3RfbnModm9pZCk7CmV4dGVybiB1NjQga3RpbWVfZ2V0X2Jvb3RfZmFzdF9ucyh2b2lkKTsK
ZXh0ZXJuIHU2NCBrdGltZV9nZXRfcmVhbF9mYXN0X25zKHZvaWQpOwoKCgoKCgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGt0aW1l
X2dldF9ib290dGltZV90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKewogKnRzID0gbnNfdG9f
dGltZXNwZWM2NCgoa3RpbWVfZ2V0X2Jvb3R0aW1lKCkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrdGltZV9nZXRfY29h
cnNlX2Jvb3R0aW1lX3RzNjQoc3RydWN0IHRpbWVzcGVjNjQgKnRzKQp7CiAqdHMgPSBuc190b190
aW1lc3BlYzY0KChrdGltZV9nZXRfY29hcnNlX2Jvb3R0aW1lKCkpKTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdGltZTY0X3Qga3Rp
bWVfZ2V0X2Jvb3R0aW1lX3NlY29uZHModm9pZCkKewogcmV0dXJuIGt0aW1lX2Rpdm5zKGt0aW1l
X2dldF9jb2Fyc2VfYm9vdHRpbWUoKSwgMTAwMDAwMDAwMEwpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGt0aW1lX2dldF9j
bG9ja3RhaV90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKewogKnRzID0gbnNfdG9fdGltZXNw
ZWM2NCgoa3RpbWVfZ2V0X2Nsb2NrdGFpKCkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrdGltZV9nZXRfY29hcnNlX2Ns
b2NrdGFpX3RzNjQoc3RydWN0IHRpbWVzcGVjNjQgKnRzKQp7CiAqdHMgPSBuc190b190aW1lc3Bl
YzY0KChrdGltZV9nZXRfY29hcnNlX2Nsb2NrdGFpKCkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdGltZTY0X3Qga3RpbWVfZ2V0
X2Nsb2NrdGFpX3NlY29uZHModm9pZCkKewogcmV0dXJuIGt0aW1lX2Rpdm5zKGt0aW1lX2dldF9j
b2Fyc2VfY2xvY2t0YWkoKSwgMTAwMDAwMDAwMEwpOwp9CgoKCgpleHRlcm4gYm9vbCB0aW1la2Vl
cGluZ19ydGNfc2tpcHN1c3BlbmQodm9pZCk7CmV4dGVybiBib29sIHRpbWVrZWVwaW5nX3J0Y19z
a2lwcmVzdW1lKHZvaWQpOwoKZXh0ZXJuIHZvaWQgdGltZWtlZXBpbmdfaW5qZWN0X3NsZWVwdGlt
ZTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICpkZWx0YSk7CiMgMjM0ICIuL2luY2x1ZGUvbGlu
dXgvdGltZWtlZXBpbmcuaCIKc3RydWN0IHN5c3RlbV90aW1lX3NuYXBzaG90IHsKIHU2NCBjeWNs
ZXM7CiBrdGltZV90IHJlYWw7CiBrdGltZV90IHJhdzsKIHVuc2lnbmVkIGludCBjbG9ja193YXNf
c2V0X3NlcTsKIHU4IGNzX3dhc19jaGFuZ2VkX3NlcTsKfTsKIyAyNDkgIi4vaW5jbHVkZS9saW51
eC90aW1la2VlcGluZy5oIgpzdHJ1Y3Qgc3lzdGVtX2RldmljZV9jcm9zc3RzdGFtcCB7CiBrdGlt
ZV90IGRldmljZTsKIGt0aW1lX3Qgc3lzX3JlYWx0aW1lOwoga3RpbWVfdCBzeXNfbW9ub3JhdzsK
fTsKIyAyNjIgIi4vaW5jbHVkZS9saW51eC90aW1la2VlcGluZy5oIgpzdHJ1Y3Qgc3lzdGVtX2Nv
dW50ZXJ2YWxfdCB7CiB1NjQgY3ljbGVzOwogc3RydWN0IGNsb2Nrc291cmNlICpjczsKfTsKCgoK
CmV4dGVybiBpbnQgZ2V0X2RldmljZV9zeXN0ZW1fY3Jvc3N0c3RhbXAoCiAgIGludCAoKmdldF90
aW1lX2ZuKShrdGltZV90ICpkZXZpY2VfdGltZSwKICAgIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZh
bF90ICpzeXN0ZW1fY291bnRlcnZhbCwKICAgIHZvaWQgKmN0eCksCiAgIHZvaWQgKmN0eCwKICAg
c3RydWN0IHN5c3RlbV90aW1lX3NuYXBzaG90ICpoaXN0b3J5LAogICBzdHJ1Y3Qgc3lzdGVtX2Rl
dmljZV9jcm9zc3RzdGFtcCAqeHRzdGFtcCk7CgoKCgpleHRlcm4gdm9pZCBrdGltZV9nZXRfc25h
cHNob3Qoc3RydWN0IHN5c3RlbV90aW1lX3NuYXBzaG90ICpzeXN0aW1lX3NuYXBzaG90KTsKCgoK
CmV4dGVybiBpbnQgcGVyc2lzdGVudF9jbG9ja19pc19sb2NhbDsKCmV4dGVybiB2b2lkIHJlYWRf
cGVyc2lzdGVudF9jbG9jazY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CnZvaWQgcmVhZF9wZXJz
aXN0ZW50X3dhbGxfYW5kX2Jvb3Rfb2Zmc2V0KHN0cnVjdCB0aW1lc3BlYzY0ICp3YWxsX2Nsb2Nr
LAogICAgICAgc3RydWN0IHRpbWVzcGVjNjQgKmJvb3Rfb2Zmc2V0KTsKZXh0ZXJuIGludCB1cGRh
dGVfcGVyc2lzdGVudF9jbG9jazY0KHN0cnVjdCB0aW1lc3BlYzY0IG5vdyk7CiMgMjM5ICIuL2lu
Y2x1ZGUvbGludXgva3RpbWUuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC90aW1la2VlcGluZzMy
LmgiIDEKIyA5ICIuL2luY2x1ZGUvbGludXgvdGltZWtlZXBpbmczMi5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25n
IGdldF9zZWNvbmRzKHZvaWQpCnsKIHJldHVybiBrdGltZV9nZXRfcmVhbF9zZWNvbmRzKCk7Cn0K
IyAyNDAgIi4vaW5jbHVkZS9saW51eC9rdGltZS5oIiAyCiMgNyAiLi9pbmNsdWRlL2xpbnV4L3Rp
bWVyLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnb2JqZWN0cy5oIiAxCgoKCgoKCgpl
bnVtIGRlYnVnX29ial9zdGF0ZSB7CiBPREVCVUdfU1RBVEVfTk9ORSwKIE9ERUJVR19TVEFURV9J
TklULAogT0RFQlVHX1NUQVRFX0lOQUNUSVZFLAogT0RFQlVHX1NUQVRFX0FDVElWRSwKIE9ERUJV
R19TVEFURV9ERVNUUk9ZRUQsCiBPREVCVUdfU1RBVEVfTk9UQVZBSUxBQkxFLAogT0RFQlVHX1NU
QVRFX01BWCwKfTsKCnN0cnVjdCBkZWJ1Z19vYmpfZGVzY3I7CiMgMjggIi4vaW5jbHVkZS9saW51
eC9kZWJ1Z29iamVjdHMuaCIKc3RydWN0IGRlYnVnX29iaiB7CiBzdHJ1Y3QgaGxpc3Rfbm9kZSBu
b2RlOwogZW51bSBkZWJ1Z19vYmpfc3RhdGUgc3RhdGU7CiB1bnNpZ25lZCBpbnQgYXN0YXRlOwog
dm9pZCAqb2JqZWN0Owogc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3I7Cn07CiMgNTUgIi4v
aW5jbHVkZS9saW51eC9kZWJ1Z29iamVjdHMuaCIKc3RydWN0IGRlYnVnX29ial9kZXNjciB7CiBj
b25zdCBjaGFyICpuYW1lOwogdm9pZCAqKCpkZWJ1Z19oaW50KSh2b2lkICphZGRyKTsKIGJvb2wg
KCppc19zdGF0aWNfb2JqZWN0KSh2b2lkICphZGRyKTsKIGJvb2wgKCpmaXh1cF9pbml0KSh2b2lk
ICphZGRyLCBlbnVtIGRlYnVnX29ial9zdGF0ZSBzdGF0ZSk7CiBib29sICgqZml4dXBfYWN0aXZh
dGUpKHZvaWQgKmFkZHIsIGVudW0gZGVidWdfb2JqX3N0YXRlIHN0YXRlKTsKIGJvb2wgKCpmaXh1
cF9kZXN0cm95KSh2b2lkICphZGRyLCBlbnVtIGRlYnVnX29ial9zdGF0ZSBzdGF0ZSk7CiBib29s
ICgqZml4dXBfZnJlZSkodm9pZCAqYWRkciwgZW51bSBkZWJ1Z19vYmpfc3RhdGUgc3RhdGUpOwog
Ym9vbCAoKmZpeHVwX2Fzc2VydF9pbml0KSh2b2lkICphZGRyLCBlbnVtIGRlYnVnX29ial9zdGF0
ZSBzdGF0ZSk7Cn07CiMgODggIi4vaW5jbHVkZS9saW51eC9kZWJ1Z29iamVjdHMuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApk
ZWJ1Z19vYmplY3RfaW5pdCAodm9pZCAqYWRkciwgc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVz
Y3IpIHsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkCmRlYnVnX29iamVjdF9pbml0X29uX3N0YWNrKHZvaWQgKmFkZHIsIHN0cnVj
dCBkZWJ1Z19vYmpfZGVzY3IgKmRlc2NyKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmRlYnVnX29iamVjdF9hY3RpdmF0ZSAo
dm9pZCAqYWRkciwgc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3IpIHsgcmV0dXJuIDA7IH0K
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZApkZWJ1Z19vYmplY3RfZGVhY3RpdmF0ZSh2b2lkICphZGRyLCBzdHJ1Y3QgZGVidWdfb2Jq
X2Rlc2NyICpkZXNjcikgeyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKZGVidWdfb2JqZWN0X2Rlc3Ryb3kgKHZvaWQgKmFkZHIs
IHN0cnVjdCBkZWJ1Z19vYmpfZGVzY3IgKmRlc2NyKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApkZWJ1Z19vYmplY3RfZnJl
ZSAodm9pZCAqYWRkciwgc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3IpIHsgfQpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmRl
YnVnX29iamVjdF9hc3NlcnRfaW5pdCh2b2lkICphZGRyLCBzdHJ1Y3QgZGVidWdfb2JqX2Rlc2Ny
ICpkZXNjcikgeyB9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGRlYnVnX29iamVjdHNfZWFybHlfaW5pdCh2b2lkKSB7IH0Kc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBkZWJ1Z19vYmplY3RzX21lbV9pbml0KHZvaWQpIHsgfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKZGVidWdfY2hlY2tf
bm9fb2JqX2ZyZWVkKGNvbnN0IHZvaWQgKmFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgc2l6ZSkgeyB9
CiMgOSAiLi9pbmNsdWRlL2xpbnV4L3RpbWVyLmgiIDIKCgpzdHJ1Y3QgdGltZXJfbGlzdCB7CgoK
Cgogc3RydWN0IGhsaXN0X25vZGUgZW50cnk7CiB1bnNpZ25lZCBsb25nIGV4cGlyZXM7CiB2b2lk
ICgqZnVuY3Rpb24pKHN0cnVjdCB0aW1lcl9saXN0ICopOwogdTMyIGZsYWdzOwoKCgoKfTsKIyA5
MCAiLi9pbmNsdWRlL2xpbnV4L3RpbWVyLmgiCnZvaWQgaW5pdF90aW1lcl9rZXkoc3RydWN0IHRp
bWVyX2xpc3QgKnRpbWVyLAogICAgICB2b2lkICgqZnVuYykoc3RydWN0IHRpbWVyX2xpc3QgKiks
IHVuc2lnbmVkIGludCBmbGFncywKICAgICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxvY2tf
Y2xhc3Nfa2V5ICprZXkpOwoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbml0X3RpbWVyX29uX3N0YWNrX2tleShzdHJ1
Y3QgdGltZXJfbGlzdCAqdGltZXIsCiAgICAgICAgdm9pZCAoKmZ1bmMpKHN0cnVjdCB0aW1lcl9s
aXN0ICopLAogICAgICAgIHVuc2lnbmVkIGludCBmbGFncywKICAgICAgICBjb25zdCBjaGFyICpu
YW1lLAogICAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5KQp7CiBpbml0X3RpbWVyX2tl
eSh0aW1lciwgZnVuYywgZmxhZ3MsIG5hbWUsIGtleSk7Cn0KIyAxNDkgIi4vaW5jbHVkZS9saW51
eC90aW1lci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGRlc3Ryb3lfdGltZXJfb25fc3RhY2soc3RydWN0IHRpbWVyX2xpc3Qg
KnRpbWVyKSB7IH0KIyAxNjUgIi4vaW5jbHVkZS9saW51eC90aW1lci5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGltZXJfcGVu
ZGluZyhjb25zdCBzdHJ1Y3QgdGltZXJfbGlzdCAqIHRpbWVyKQp7CiByZXR1cm4gdGltZXItPmVu
dHJ5LnBwcmV2ICE9ICgodm9pZCAqKTApOwp9CgpleHRlcm4gdm9pZCBhZGRfdGltZXJfb24oc3Ry
dWN0IHRpbWVyX2xpc3QgKnRpbWVyLCBpbnQgY3B1KTsKZXh0ZXJuIGludCBkZWxfdGltZXIoc3Ry
dWN0IHRpbWVyX2xpc3QgKiB0aW1lcik7CmV4dGVybiBpbnQgbW9kX3RpbWVyKHN0cnVjdCB0aW1l
cl9saXN0ICp0aW1lciwgdW5zaWduZWQgbG9uZyBleHBpcmVzKTsKZXh0ZXJuIGludCBtb2RfdGlt
ZXJfcGVuZGluZyhzdHJ1Y3QgdGltZXJfbGlzdCAqdGltZXIsIHVuc2lnbmVkIGxvbmcgZXhwaXJl
cyk7CmV4dGVybiBpbnQgdGltZXJfcmVkdWNlKHN0cnVjdCB0aW1lcl9saXN0ICp0aW1lciwgdW5z
aWduZWQgbG9uZyBleHBpcmVzKTsKCgoKCgoKCmV4dGVybiB2b2lkIGFkZF90aW1lcihzdHJ1Y3Qg
dGltZXJfbGlzdCAqdGltZXIpOwoKZXh0ZXJuIGludCB0cnlfdG9fZGVsX3RpbWVyX3N5bmMoc3Ry
dWN0IHRpbWVyX2xpc3QgKnRpbWVyKTsKCgogIGV4dGVybiBpbnQgZGVsX3RpbWVyX3N5bmMoc3Ry
dWN0IHRpbWVyX2xpc3QgKnRpbWVyKTsKCgoKCgoKZXh0ZXJuIHZvaWQgaW5pdF90aW1lcnModm9p
ZCk7CmV4dGVybiB2b2lkIHJ1bl9sb2NhbF90aW1lcnModm9pZCk7CnN0cnVjdCBocnRpbWVyOwpl
eHRlcm4gZW51bSBocnRpbWVyX3Jlc3RhcnQgaXRfcmVhbF9mbihzdHJ1Y3QgaHJ0aW1lciAqKTsK
CgpzdHJ1Y3QgY3RsX3RhYmxlOwoKZXh0ZXJuIHVuc2lnbmVkIGludCBzeXNjdGxfdGltZXJfbWln
cmF0aW9uOwppbnQgdGltZXJfbWlncmF0aW9uX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFi
bGUsIGludCB3cml0ZSwKICAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAogICAgICAg
bG9mZl90ICpwcG9zKTsKCgp1bnNpZ25lZCBsb25nIF9fcm91bmRfamlmZmllcyh1bnNpZ25lZCBs
b25nIGosIGludCBjcHUpOwp1bnNpZ25lZCBsb25nIF9fcm91bmRfamlmZmllc19yZWxhdGl2ZSh1
bnNpZ25lZCBsb25nIGosIGludCBjcHUpOwp1bnNpZ25lZCBsb25nIHJvdW5kX2ppZmZpZXModW5z
aWduZWQgbG9uZyBqKTsKdW5zaWduZWQgbG9uZyByb3VuZF9qaWZmaWVzX3JlbGF0aXZlKHVuc2ln
bmVkIGxvbmcgaik7Cgp1bnNpZ25lZCBsb25nIF9fcm91bmRfamlmZmllc191cCh1bnNpZ25lZCBs
b25nIGosIGludCBjcHUpOwp1bnNpZ25lZCBsb25nIF9fcm91bmRfamlmZmllc191cF9yZWxhdGl2
ZSh1bnNpZ25lZCBsb25nIGosIGludCBjcHUpOwp1bnNpZ25lZCBsb25nIHJvdW5kX2ppZmZpZXNf
dXAodW5zaWduZWQgbG9uZyBqKTsKdW5zaWduZWQgbG9uZyByb3VuZF9qaWZmaWVzX3VwX3JlbGF0
aXZlKHVuc2lnbmVkIGxvbmcgaik7CgoKaW50IHRpbWVyc19wcmVwYXJlX2NwdSh1bnNpZ25lZCBp
bnQgY3B1KTsKaW50IHRpbWVyc19kZWFkX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKIyAxMCAiLi9p
bmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIiAyCiMgMTggIi4vaW5jbHVkZS9saW51eC93b3JrcXVl
dWUuaCIKc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3Q7CgpzdHJ1Y3Qgd29ya19zdHJ1Y3Q7CnR5cGVk
ZWYgdm9pZCAoKndvcmtfZnVuY190KShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwp2b2lkIGRl
bGF5ZWRfd29ya190aW1lcl9mbihzdHJ1Y3QgdGltZXJfbGlzdCAqdCk7CgoKCgoKCgplbnVtIHsK
IFdPUktfU1RSVUNUX1BFTkRJTkdfQklUID0gMCwKIFdPUktfU1RSVUNUX0RFTEFZRURfQklUID0g
MSwKIFdPUktfU1RSVUNUX1BXUV9CSVQgPSAyLAogV09SS19TVFJVQ1RfTElOS0VEX0JJVCA9IDMs
CgoKCgogV09SS19TVFJVQ1RfQ09MT1JfU0hJRlQgPSA0LAoKCiBXT1JLX1NUUlVDVF9DT0xPUl9C
SVRTID0gNCwKCiBXT1JLX1NUUlVDVF9QRU5ESU5HID0gMSA8PCBXT1JLX1NUUlVDVF9QRU5ESU5H
X0JJVCwKIFdPUktfU1RSVUNUX0RFTEFZRUQgPSAxIDw8IFdPUktfU1RSVUNUX0RFTEFZRURfQklU
LAogV09SS19TVFJVQ1RfUFdRID0gMSA8PCBXT1JLX1NUUlVDVF9QV1FfQklULAogV09SS19TVFJV
Q1RfTElOS0VEID0gMSA8PCBXT1JLX1NUUlVDVF9MSU5LRURfQklULAoKCgogV09SS19TVFJVQ1Rf
U1RBVElDID0gMCwKCgoKCgoKIFdPUktfTlJfQ09MT1JTID0gKDEgPDwgV09SS19TVFJVQ1RfQ09M
T1JfQklUUykgLSAxLAogV09SS19OT19DT0xPUiA9IFdPUktfTlJfQ09MT1JTLAoKCiBXT1JLX0NQ
VV9VTkJPVU5EID0gOCwKCgoKCgoKIFdPUktfU1RSVUNUX0ZMQUdfQklUUyA9IFdPUktfU1RSVUNU
X0NPTE9SX1NISUZUICsKICAgICAgV09SS19TVFJVQ1RfQ09MT1JfQklUUywKCgogV09SS19PRkZR
X0ZMQUdfQkFTRSA9IFdPUktfU1RSVUNUX0NPTE9SX1NISUZULAoKIF9fV09SS19PRkZRX0NBTkNF
TElORyA9IFdPUktfT0ZGUV9GTEFHX0JBU0UsCiBXT1JLX09GRlFfQ0FOQ0VMSU5HID0gKDEgPDwg
X19XT1JLX09GRlFfQ0FOQ0VMSU5HKSwKCgoKCgoKIFdPUktfT0ZGUV9GTEFHX0JJVFMgPSAxLAog
V09SS19PRkZRX1BPT0xfU0hJRlQgPSBXT1JLX09GRlFfRkxBR19CQVNFICsgV09SS19PRkZRX0ZM
QUdfQklUUywKIFdPUktfT0ZGUV9MRUZUID0gNjQgLSBXT1JLX09GRlFfUE9PTF9TSElGVCwKIFdP
UktfT0ZGUV9QT09MX0JJVFMgPSBXT1JLX09GRlFfTEVGVCA8PSAzMSA/IFdPUktfT0ZGUV9MRUZU
IDogMzEsCiBXT1JLX09GRlFfUE9PTF9OT05FID0gKDFMVSA8PCBXT1JLX09GRlFfUE9PTF9CSVRT
KSAtIDEsCgoKIFdPUktfU1RSVUNUX0ZMQUdfTUFTSyA9ICgxVUwgPDwgV09SS19TVFJVQ1RfRkxB
R19CSVRTKSAtIDEsCiBXT1JLX1NUUlVDVF9XUV9EQVRBX01BU0sgPSB+V09SS19TVFJVQ1RfRkxB
R19NQVNLLAogV09SS19TVFJVQ1RfTk9fUE9PTCA9ICh1bnNpZ25lZCBsb25nKVdPUktfT0ZGUV9Q
T09MX05PTkUgPDwgV09SS19PRkZRX1BPT0xfU0hJRlQsCgoKIFdPUktfQlVTWV9QRU5ESU5HID0g
MSA8PCAwLAogV09SS19CVVNZX1JVTk5JTkcgPSAxIDw8IDEsCgoKIFdPUktFUl9ERVNDX0xFTiA9
IDI0LAp9OwoKc3RydWN0IHdvcmtfc3RydWN0IHsKIGF0b21pY19sb25nX3QgZGF0YTsKIHN0cnVj
dCBsaXN0X2hlYWQgZW50cnk7CiB3b3JrX2Z1bmNfdCBmdW5jOwoKCgp9OwoKCgoKCnN0cnVjdCBk
ZWxheWVkX3dvcmsgewogc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiBzdHJ1Y3QgdGltZXJfbGlz
dCB0aW1lcjsKCgogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwogaW50IGNwdTsKfTsKCnN0
cnVjdCByY3Vfd29yayB7CiBzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKIHN0cnVjdCBjYWxsYmFj
a19oZWFkIHJjdTsKCgogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwp9OwoKCgoKCgpzdHJ1
Y3Qgd29ya3F1ZXVlX2F0dHJzIHsKCgoKIGludCBuaWNlOwoKCgoKIGNwdW1hc2tfdmFyX3QgY3B1
bWFzazsKIyAxNTUgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKIGJvb2wgbm9fbnVtYTsK
fTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBkZWxheWVkX3dvcmsgKnRvX2RlbGF5ZWRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1
Y3QgKndvcmspCnsKIHJldHVybiAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKSh3b3JrKTsgZG8g
eyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNjAodm9pZCkgX19hdHRyaWJ1dGVf
XygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFpbmVyX29mKCkiKSkp
OyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKHdvcmspKSwg
dHlwZW9mKCgoc3RydWN0IGRlbGF5ZWRfd29yayAqKTApLT53b3JrKSkgJiYgIV9fYnVpbHRpbl90
eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCood29yaykpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29t
cGlsZXRpbWVfYXNzZXJ0XzE2MCgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgZGVsYXllZF93b3Jr
ICopKF9fbXB0ciAtIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgZGVsYXllZF93b3JrLCB3b3Jr
KSkpOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgc3RydWN0IHJjdV93b3JrICp0b19yY3Vfd29yayhzdHJ1Y3Qgd29ya19zdHJ1
Y3QgKndvcmspCnsKIHJldHVybiAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKSh3b3JrKTsgZG8g
eyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNjUodm9pZCkgX19hdHRyaWJ1dGVf
XygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFpbmVyX29mKCkiKSkp
OyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKHdvcmspKSwg
dHlwZW9mKCgoc3RydWN0IHJjdV93b3JrICopMCktPndvcmspKSAmJiAhX19idWlsdGluX3R5cGVz
X2NvbXBhdGlibGVfcCh0eXBlb2YoKih3b3JrKSksIHR5cGVvZih2b2lkKSkpKSkgX19jb21waWxl
dGltZV9hc3NlcnRfMTY1KCk7IH0gd2hpbGUgKDApOyAoKHN0cnVjdCByY3Vfd29yayAqKShfX21w
dHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHJjdV93b3JrLCB3b3JrKSkpOyB9KTsKfQoK
c3RydWN0IGV4ZWN1dGVfd29yayB7CiBzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKfTsKIyAyMTUg
Ii4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2luaXRfd29yayhzdHJ1Y3Qgd29y
a19zdHJ1Y3QgKndvcmssIGludCBvbnN0YWNrKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXN0cm95X3dvcmtfb25fc3Rh
Y2soc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXN0cm95X2RlbGF5ZWRfd29y
a19vbl9zdGFjayhzdHJ1Y3QgZGVsYXllZF93b3JrICp3b3JrKSB7IH0Kc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IHdv
cmtfc3RhdGljKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykgeyByZXR1cm4gMDsgfQojIDMwOCAi
Li9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIgplbnVtIHsKIFdRX1VOQk9VTkQgPSAxIDw8IDEs
CiBXUV9GUkVFWkFCTEUgPSAxIDw8IDIsCiBXUV9NRU1fUkVDTEFJTSA9IDEgPDwgMywKIFdRX0hJ
R0hQUkkgPSAxIDw8IDQsCiBXUV9DUFVfSU5URU5TSVZFID0gMSA8PCA1LAogV1FfU1lTRlMgPSAx
IDw8IDYsCiMgMzQxICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCiBXUV9QT1dFUl9FRkZJ
Q0lFTlQgPSAxIDw8IDcsCgogX19XUV9EUkFJTklORyA9IDEgPDwgMTYsCiBfX1dRX09SREVSRUQg
PSAxIDw8IDE3LAogX19XUV9MRUdBQ1kgPSAxIDw8IDE4LAogX19XUV9PUkRFUkVEX0VYUExJQ0lU
ID0gMSA8PCAxOSwKCiBXUV9NQVhfQUNUSVZFID0gNTEyLAogV1FfTUFYX1VOQk9VTkRfUEVSX0NQ
VSA9IDQsCiBXUV9ERkxfQUNUSVZFID0gV1FfTUFYX0FDVElWRSAvIDIsCn07CiMgMzg1ICIuL2lu
Y2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCmV4dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAq
c3lzdGVtX3dxOwpleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV9oaWdocHJp
X3dxOwpleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV9sb25nX3dxOwpleHRl
cm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV91bmJvdW5kX3dxOwpleHRlcm4gc3Ry
dWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV9mcmVlemFibGVfd3E7CmV4dGVybiBzdHJ1Y3Qg
d29ya3F1ZXVlX3N0cnVjdCAqc3lzdGVtX3Bvd2VyX2VmZmljaWVudF93cTsKZXh0ZXJuIHN0cnVj
dCB3b3JrcXVldWVfc3RydWN0ICpzeXN0ZW1fZnJlZXphYmxlX3Bvd2VyX2VmZmljaWVudF93cTsK
IyA0MDcgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKc3RydWN0IHdvcmtxdWV1ZV9zdHJ1
Y3QgKmFsbG9jX3dvcmtxdWV1ZShjb25zdCBjaGFyICpmbXQsCiAgICAgIHVuc2lnbmVkIGludCBm
bGFncywKICAgICAgaW50IG1heF9hY3RpdmUsIC4uLik7CiMgNDM2ICIuL2luY2x1ZGUvbGludXgv
d29ya3F1ZXVlLmgiCmV4dGVybiB2b2lkIGRlc3Ryb3lfd29ya3F1ZXVlKHN0cnVjdCB3b3JrcXVl
dWVfc3RydWN0ICp3cSk7CgpzdHJ1Y3Qgd29ya3F1ZXVlX2F0dHJzICphbGxvY193b3JrcXVldWVf
YXR0cnModm9pZCk7CnZvaWQgZnJlZV93b3JrcXVldWVfYXR0cnMoc3RydWN0IHdvcmtxdWV1ZV9h
dHRycyAqYXR0cnMpOwppbnQgYXBwbHlfd29ya3F1ZXVlX2F0dHJzKHN0cnVjdCB3b3JrcXVldWVf
c3RydWN0ICp3cSwKICAgICBjb25zdCBzdHJ1Y3Qgd29ya3F1ZXVlX2F0dHJzICphdHRycyk7Cmlu
dCB3b3JrcXVldWVfc2V0X3VuYm91bmRfY3B1bWFzayhjcHVtYXNrX3Zhcl90IGNwdW1hc2spOwoK
ZXh0ZXJuIGJvb2wgcXVldWVfd29ya19vbihpbnQgY3B1LCBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVj
dCAqd3EsCiAgIHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CmV4dGVybiBib29sIHF1ZXVlX3dv
cmtfbm9kZShpbnQgbm9kZSwgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAogICAgICAgc3Ry
dWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKZXh0ZXJuIGJvb2wgcXVldWVfZGVsYXllZF93b3JrX29u
KGludCBjcHUsIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwKICAgc3RydWN0IGRlbGF5ZWRf
d29yayAqd29yaywgdW5zaWduZWQgbG9uZyBkZWxheSk7CmV4dGVybiBib29sIG1vZF9kZWxheWVk
X3dvcmtfb24oaW50IGNwdSwgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAogICBzdHJ1Y3Qg
ZGVsYXllZF93b3JrICpkd29yaywgdW5zaWduZWQgbG9uZyBkZWxheSk7CmV4dGVybiBib29sIHF1
ZXVlX3JjdV93b3JrKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwgc3RydWN0IHJjdV93b3Jr
ICpyd29yayk7CgpleHRlcm4gdm9pZCBmbHVzaF93b3JrcXVldWUoc3RydWN0IHdvcmtxdWV1ZV9z
dHJ1Y3QgKndxKTsKZXh0ZXJuIHZvaWQgZHJhaW5fd29ya3F1ZXVlKHN0cnVjdCB3b3JrcXVldWVf
c3RydWN0ICp3cSk7CgpleHRlcm4gaW50IHNjaGVkdWxlX29uX2VhY2hfY3B1KHdvcmtfZnVuY190
IGZ1bmMpOwoKaW50IGV4ZWN1dGVfaW5fcHJvY2Vzc19jb250ZXh0KHdvcmtfZnVuY190IGZuLCBz
dHJ1Y3QgZXhlY3V0ZV93b3JrICopOwoKZXh0ZXJuIGJvb2wgZmx1c2hfd29yayhzdHJ1Y3Qgd29y
a19zdHJ1Y3QgKndvcmspOwpleHRlcm4gYm9vbCBjYW5jZWxfd29ya19zeW5jKHN0cnVjdCB3b3Jr
X3N0cnVjdCAqd29yayk7CgpleHRlcm4gYm9vbCBmbHVzaF9kZWxheWVkX3dvcmsoc3RydWN0IGRl
bGF5ZWRfd29yayAqZHdvcmspOwpleHRlcm4gYm9vbCBjYW5jZWxfZGVsYXllZF93b3JrKHN0cnVj
dCBkZWxheWVkX3dvcmsgKmR3b3JrKTsKZXh0ZXJuIGJvb2wgY2FuY2VsX2RlbGF5ZWRfd29ya19z
eW5jKHN0cnVjdCBkZWxheWVkX3dvcmsgKmR3b3JrKTsKCmV4dGVybiBib29sIGZsdXNoX3JjdV93
b3JrKHN0cnVjdCByY3Vfd29yayAqcndvcmspOwoKZXh0ZXJuIHZvaWQgd29ya3F1ZXVlX3NldF9t
YXhfYWN0aXZlKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwKICAgICAgICAgaW50IG1heF9h
Y3RpdmUpOwpleHRlcm4gc3RydWN0IHdvcmtfc3RydWN0ICpjdXJyZW50X3dvcmsodm9pZCk7CmV4
dGVybiBib29sIGN1cnJlbnRfaXNfd29ya3F1ZXVlX3Jlc2N1ZXIodm9pZCk7CmV4dGVybiBib29s
IHdvcmtxdWV1ZV9jb25nZXN0ZWQoaW50IGNwdSwgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndx
KTsKZXh0ZXJuIHVuc2lnbmVkIGludCB3b3JrX2J1c3koc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr
KTsKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAxLCAyKSkpIHZvaWQg
c2V0X3dvcmtlcl9kZXNjKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKZXh0ZXJuIHZvaWQgcHJpbnRf
d29ya2VyX2luZm8oY29uc3QgY2hhciAqbG9nX2x2bCwgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNr
KTsKZXh0ZXJuIHZvaWQgc2hvd193b3JrcXVldWVfc3RhdGUodm9pZCk7CmV4dGVybiB2b2lkIHdx
X3dvcmtlcl9jb21tKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIHN0cnVjdCB0YXNrX3N0cnVjdCAq
dGFzayk7CiMgNTA0ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcXVldWVfd29y
ayhzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3EsCiAgICAgICAgIHN0cnVjdCB3b3JrX3N0cnVj
dCAqd29yaykKewogcmV0dXJuIHF1ZXVlX3dvcmtfb24oV09SS19DUFVfVU5CT1VORCwgd3EsIHdv
cmspOwp9CiMgNTE4ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcXVldWVfZGVs
YXllZF93b3JrKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwKICAgICAgICAgIHN0cnVjdCBk
ZWxheWVkX3dvcmsgKmR3b3JrLAogICAgICAgICAgdW5zaWduZWQgbG9uZyBkZWxheSkKewogcmV0
dXJuIHF1ZXVlX2RlbGF5ZWRfd29ya19vbihXT1JLX0NQVV9VTkJPVU5ELCB3cSwgZHdvcmssIGRl
bGF5KTsKfQojIDUzMyAiLi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIG1vZF9kZWxh
eWVkX3dvcmsoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAogICAgICAgIHN0cnVjdCBkZWxh
eWVkX3dvcmsgKmR3b3JrLAogICAgICAgIHVuc2lnbmVkIGxvbmcgZGVsYXkpCnsKIHJldHVybiBt
b2RfZGVsYXllZF93b3JrX29uKFdPUktfQ1BVX1VOQk9VTkQsIHdxLCBkd29yaywgZGVsYXkpOwp9
CiMgNTQ3ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2NoZWR1bGVfd29ya19v
bihpbnQgY3B1LCBzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCnsKIHJldHVybiBxdWV1ZV93b3Jr
X29uKGNwdSwgc3lzdGVtX3dxLCB3b3JrKTsKfQojIDU2NiAiLi9pbmNsdWRlL2xpbnV4L3dvcmtx
dWV1ZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIHNjaGVkdWxlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQp7CiBy
ZXR1cm4gcXVldWVfd29yayhzeXN0ZW1fd3EsIHdvcmspOwp9CiMgNTk1ICIuL2luY2x1ZGUvbGlu
dXgvd29ya3F1ZXVlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgZmx1c2hfc2NoZWR1bGVkX3dvcmsodm9pZCkKewogZmx1c2hf
d29ya3F1ZXVlKHN5c3RlbV93cSk7Cn0KIyA2MDkgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBzY2hlZHVsZV9kZWxheWVkX3dvcmtfb24oaW50IGNwdSwgc3RydWN0IGRlbGF5ZWRf
d29yayAqZHdvcmssCiAgICAgICAgIHVuc2lnbmVkIGxvbmcgZGVsYXkpCnsKIHJldHVybiBxdWV1
ZV9kZWxheWVkX3dvcmtfb24oY3B1LCBzeXN0ZW1fd3EsIGR3b3JrLCBkZWxheSk7Cn0KIyA2MjMg
Ii4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBzY2hlZHVsZV9kZWxheWVkX3dvcmso
c3RydWN0IGRlbGF5ZWRfd29yayAqZHdvcmssCiAgICAgIHVuc2lnbmVkIGxvbmcgZGVsYXkpCnsK
IHJldHVybiBxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX3dxLCBkd29yaywgZGVsYXkpOwp9CiMg
NjM5ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCmxvbmcgd29ya19vbl9jcHUoaW50IGNw
dSwgbG9uZyAoKmZuKSh2b2lkICopLCB2b2lkICphcmcpOwpsb25nIHdvcmtfb25fY3B1X3NhZmUo
aW50IGNwdSwgbG9uZyAoKmZuKSh2b2lkICopLCB2b2lkICphcmcpOwoKCgpleHRlcm4gdm9pZCBm
cmVlemVfd29ya3F1ZXVlc19iZWdpbih2b2lkKTsKZXh0ZXJuIGJvb2wgZnJlZXplX3dvcmtxdWV1
ZXNfYnVzeSh2b2lkKTsKZXh0ZXJuIHZvaWQgdGhhd193b3JrcXVldWVzKHZvaWQpOwoKCgppbnQg
d29ya3F1ZXVlX3N5c2ZzX3JlZ2lzdGVyKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSk7CiMg
NjU5ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3Ffd2F0Y2hkb2dfdG91Y2go
aW50IGNwdSkgeyB9CgoKCmludCB3b3JrcXVldWVfcHJlcGFyZV9jcHUodW5zaWduZWQgaW50IGNw
dSk7CmludCB3b3JrcXVldWVfb25saW5lX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKaW50IHdvcmtx
dWV1ZV9vZmZsaW5lX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKCgppbnQgX19hdHRyaWJ1dGVfXygo
X19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgd29y
a3F1ZXVlX2luaXRfZWFybHkodm9pZCk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygi
LmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSB3b3JrcXVldWVfaW5pdCh2
b2lkKTsKIyAxNyAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiIDIKCiMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9tbXUuaCIgMQoKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9tdXRleC5o
IiAxCiMgMjEgIi4vaW5jbHVkZS9saW51eC9tdXRleC5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9k
ZWJ1Z19sb2Nrcy5oIiAxCiMgOSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgiCnN0cnVj
dCB0YXNrX3N0cnVjdDsKCmV4dGVybiBpbnQgZGVidWdfbG9ja3MgX19hdHRyaWJ1dGVfXygoX19z
ZWN0aW9uX18oIi5kYXRhLi5yZWFkX21vc3RseSIpKSk7CmV4dGVybiBpbnQgZGVidWdfbG9ja3Nf
c2lsZW50IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkp
OwoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludCBfX2RlYnVnX2xvY2tzX29mZih2b2lkKQp7CiByZXR1cm4gKHsgdHlwZW9mKCZkZWJ1
Z19sb2NrcykgX19haV9wdHIgPSAoJmRlYnVnX2xvY2tzKTsga2FzYW5fY2hlY2tfd3JpdGUoX19h
aV9wdHIsIHNpemVvZigqX19haV9wdHIpKTsgKHsgX190eXBlb2ZfXyAoKigoX19haV9wdHIpKSkg
X19yZXQgPSAoKDApKTsgc3dpdGNoIChzaXplb2YoKigoX19haV9wdHIpKSkpIHsgY2FzZSAxOiBh
c20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQpLCAiK20i
ICgqKChfX2FpX3B0cikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSAyOiBhc20g
dm9sYXRpbGUgKCIiICJ4Y2hnIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgq
KChfX2FpX3B0cikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9s
YXRpbGUgKCIiICJ4Y2hnIiAibCAlMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9f
YWlfcHRyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGls
ZSAoIiIgInhjaGciICJxICVxMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9fYWlf
cHRyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0OiBfX3hjaGdfd3Jvbmdf
c2l6ZSgpOyB9IF9fcmV0OyB9KTsgfSk7Cn0KCgoKCmV4dGVybiBpbnQgZGVidWdfbG9ja3Nfb2Zm
KHZvaWQpOwojIDQ5ICIuL2luY2x1ZGUvbGludXgvZGVidWdfbG9ja3MuaCIKc3RydWN0IHRhc2tf
c3RydWN0OwoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWJ1Z19zaG93X2FsbF9sb2Nrcyh2b2lkKQp7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
ZGVidWdfc2hvd19oZWxkX2xvY2tzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKewp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
CmRlYnVnX2NoZWNrX25vX2xvY2tzX2ZyZWVkKGNvbnN0IHZvaWQgKmZyb20sIHVuc2lnbmVkIGxv
bmcgbGVuKQp7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQKZGVidWdfY2hlY2tfbm9fbG9ja3NfaGVsZCh2b2lkKQp7Cn0KIyAy
MiAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiIDIKCnN0cnVjdCB3d19hY3F1aXJlX2N0eDsKIyA1
MyAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiCnN0cnVjdCBtdXRleCB7CiBhdG9taWNfbG9uZ190
IG93bmVyOwogc3BpbmxvY2tfdCB3YWl0X2xvY2s7Cgogc3RydWN0IG9wdGltaXN0aWNfc3Bpbl9x
dWV1ZSBvc3E7Cgogc3RydWN0IGxpc3RfaGVhZCB3YWl0X2xpc3Q7CgoKCgoKCn07CgoKCgoKc3Ry
dWN0IG11dGV4X3dhaXRlciB7CiBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiBzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnRhc2s7CiBzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnd3X2N0eDsKCgoKfTsKIyA5MiAi
Li9pbmNsdWRlL2xpbnV4L211dGV4LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbXV0ZXhfZGVzdHJveShzdHJ1Y3QgbXV0ZXgg
KmxvY2spIHt9CiMgMTI4ICIuL2luY2x1ZGUvbGludXgvbXV0ZXguaCIKZXh0ZXJuIHZvaWQgX19t
dXRleF9pbml0KHN0cnVjdCBtdXRleCAqbG9jaywgY29uc3QgY2hhciAqbmFtZSwKICAgIHN0cnVj
dCBsb2NrX2NsYXNzX2tleSAqa2V5KTsKCgoKCgoKCmV4dGVybiBib29sIG11dGV4X2lzX2xvY2tl
ZChzdHJ1Y3QgbXV0ZXggKmxvY2spOwojIDE2NSAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiCmV4
dGVybiB2b2lkIG11dGV4X2xvY2soc3RydWN0IG11dGV4ICpsb2NrKTsKZXh0ZXJuIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgbXV0ZXhfbG9ja19pbnRlcnJ1cHRp
YmxlKHN0cnVjdCBtdXRleCAqbG9jayk7CmV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIG11dGV4X2xvY2tfa2lsbGFibGUoc3RydWN0IG11dGV4ICpsb2Nr
KTsKZXh0ZXJuIHZvaWQgbXV0ZXhfbG9ja19pbyhzdHJ1Y3QgbXV0ZXggKmxvY2spOwojIDE4MyAi
Li9pbmNsdWRlL2xpbnV4L211dGV4LmgiCmV4dGVybiBpbnQgbXV0ZXhfdHJ5bG9jayhzdHJ1Y3Qg
bXV0ZXggKmxvY2spOwpleHRlcm4gdm9pZCBtdXRleF91bmxvY2soc3RydWN0IG11dGV4ICpsb2Nr
KTsKCmV4dGVybiBpbnQgYXRvbWljX2RlY19hbmRfbXV0ZXhfbG9jayhhdG9taWNfdCAqY250LCBz
dHJ1Y3QgbXV0ZXggKmxvY2spOwoKCgoKCmVudW0gbXV0ZXhfdHJ5bG9ja19yZWN1cnNpdmVfZW51
bSB7CiBNVVRFWF9UUllMT0NLX0ZBSUxFRCA9IDAsCiBNVVRFWF9UUllMT0NLX1NVQ0NFU1MgPSAx
LAogTVVURVhfVFJZTE9DS19SRUNVUlNJVkUsCn07CiMgMjEwICIuL2luY2x1ZGUvbGludXgvbXV0
ZXguaCIKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBlbnVt
IG11dGV4X3RyeWxvY2tfcmVjdXJzaXZlX2VudW0KbXV0ZXhfdHJ5bG9ja19yZWN1cnNpdmUoc3Ry
dWN0IG11dGV4ICpsb2NrKTsKIyA4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdS5oIiAyCgoK
CgoKdHlwZWRlZiBzdHJ1Y3QgewoKCgoKIHU2NCBjdHhfaWQ7CiMgMjggIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vbW11LmgiCiBhdG9taWM2NF90IHRsYl9nZW47CgoKIHN0cnVjdCByd19zZW1hcGhv
cmUgbGR0X3Vzcl9zZW07CiBzdHJ1Y3QgbGR0X3N0cnVjdCAqbGR0OwoKCgoKIHVuc2lnbmVkIHNo
b3J0IGlhMzJfY29tcGF0OwoKCiBzdHJ1Y3QgbXV0ZXggbG9jazsKIHZvaWQgKnZkc287CiBjb25z
dCBzdHJ1Y3QgdmRzb19pbWFnZSAqdmRzb19pbWFnZTsKCiBhdG9taWNfdCBwZXJmX3JkcG1jX2Fs
bG93ZWQ7CgoKCgoKIHUxNiBwa2V5X2FsbG9jYXRpb25fbWFwOwogczE2IGV4ZWN1dGVfb25seV9w
a2V5OwoKfSBtbV9jb250ZXh0X3Q7CgoKCgoKCgp2b2lkIGxlYXZlX21tKGludCBjcHUpOwojIDE5
ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIgMgoKCgoKCgoKc3RydWN0IGFkZHJlc3Nfc3Bh
Y2U7CnN0cnVjdCBtZW1fY2dyb3VwOwojIDY4ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIK
c3RydWN0IHBhZ2UgewogdW5zaWduZWQgbG9uZyBmbGFnczsKCgoKCgoKCiB1bmlvbiB7CiAgc3Ry
dWN0IHsKCgoKCgogICBzdHJ1Y3QgbGlzdF9oZWFkIGxydTsKCiAgIHN0cnVjdCBhZGRyZXNzX3Nw
YWNlICptYXBwaW5nOwogICB1bnNpZ25lZCBsb25nIGluZGV4OwoKCgoKCgogICB1bnNpZ25lZCBs
b25nIHByaXZhdGU7CiAgfTsKICBzdHJ1Y3QgewoKCgoKICAgZG1hX2FkZHJfdCBkbWFfYWRkcjsK
ICB9OwogIHN0cnVjdCB7CiAgIHVuaW9uIHsKICAgIHN0cnVjdCBsaXN0X2hlYWQgc2xhYl9saXN0
OwogICAgc3RydWN0IHsKICAgICBzdHJ1Y3QgcGFnZSAqbmV4dDsKCiAgICAgaW50IHBhZ2VzOwog
ICAgIGludCBwb2JqZWN0czsKCgoKCiAgICB9OwogICB9OwogICBzdHJ1Y3Qga21lbV9jYWNoZSAq
c2xhYl9jYWNoZTsKCiAgIHZvaWQgKmZyZWVsaXN0OwogICB1bmlvbiB7CiAgICB2b2lkICpzX21l
bTsKICAgIHVuc2lnbmVkIGxvbmcgY291bnRlcnM7CiAgICBzdHJ1Y3QgewogICAgIHVuc2lnbmVk
IGludXNlOjE2OwogICAgIHVuc2lnbmVkIG9iamVjdHM6MTU7CiAgICAgdW5zaWduZWQgZnJvemVu
OjE7CiAgICB9OwogICB9OwogIH07CiAgc3RydWN0IHsKICAgdW5zaWduZWQgbG9uZyBjb21wb3Vu
ZF9oZWFkOwoKCiAgIHVuc2lnbmVkIGNoYXIgY29tcG91bmRfZHRvcjsKICAgdW5zaWduZWQgY2hh
ciBjb21wb3VuZF9vcmRlcjsKICAgYXRvbWljX3QgY29tcG91bmRfbWFwY291bnQ7CiAgfTsKICBz
dHJ1Y3QgewogICB1bnNpZ25lZCBsb25nIF9jb21wb3VuZF9wYWRfMTsKICAgdW5zaWduZWQgbG9u
ZyBfY29tcG91bmRfcGFkXzI7CgogICBzdHJ1Y3QgbGlzdF9oZWFkIGRlZmVycmVkX2xpc3Q7CiAg
fTsKICBzdHJ1Y3QgewogICB1bnNpZ25lZCBsb25nIF9wdF9wYWRfMTsKICAgcGd0YWJsZV90IHBt
ZF9odWdlX3B0ZTsKICAgdW5zaWduZWQgbG9uZyBfcHRfcGFkXzI7CiAgIHVuaW9uIHsKICAgIHN0
cnVjdCBtbV9zdHJ1Y3QgKnB0X21tOwogICAgYXRvbWljX3QgcHRfZnJhZ19yZWZjb3VudDsKICAg
fTsKCgoKICAgc3BpbmxvY2tfdCBwdGw7CgogIH07CiAgc3RydWN0IHsKCiAgIHN0cnVjdCBkZXZf
cGFnZW1hcCAqcGdtYXA7CiAgIHZvaWQgKnpvbmVfZGV2aWNlX2RhdGE7CiMgMTcyICIuL2luY2x1
ZGUvbGludXgvbW1fdHlwZXMuaCIKICB9OwoKCiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgY2FsbGJh
Y2tfaGVhZDsKIH07CgogdW5pb24gewoKCgoKICBhdG9taWNfdCBfbWFwY291bnQ7CgoKCgoKCgog
IHVuc2lnbmVkIGludCBwYWdlX3R5cGU7CgogIHVuc2lnbmVkIGludCBhY3RpdmU7CiAgaW50IHVu
aXRzOwogfTsKCgogYXRvbWljX3QgX3JlZmNvdW50OwoKCiBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVt
X2Nncm91cDsKIyAyMjIgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgp9IDsKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGF0b21pY190
ICpjb21wb3VuZF9tYXBjb3VudF9wdHIoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKIHJldHVybiAmcGFn
ZVsxXS5jb21wb3VuZF9tYXBjb3VudDsKfQojIDI0MCAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVz
LmgiCnN0cnVjdCBwYWdlX2ZyYWdfY2FjaGUgewogdm9pZCAqIHZhOwoKIF9fdTE2IG9mZnNldDsK
IF9fdTE2IHNpemU7CgoKCgoKCiB1bnNpZ25lZCBpbnQgcGFnZWNudF9iaWFzOwogYm9vbCBwZm1l
bWFsbG9jOwp9OwoKdHlwZWRlZiB1bnNpZ25lZCBsb25nIHZtX2ZsYWdzX3Q7CgoKCgoKCnN0cnVj
dCB2bV9yZWdpb24gewogc3RydWN0IHJiX25vZGUgdm1fcmI7CiB2bV9mbGFnc190IHZtX2ZsYWdz
OwogdW5zaWduZWQgbG9uZyB2bV9zdGFydDsKIHVuc2lnbmVkIGxvbmcgdm1fZW5kOwogdW5zaWdu
ZWQgbG9uZyB2bV90b3A7CiB1bnNpZ25lZCBsb25nIHZtX3Bnb2ZmOwogc3RydWN0IGZpbGUgKnZt
X2ZpbGU7CgogaW50IHZtX3VzYWdlOwogYm9vbCB2bV9pY2FjaGVfZmx1c2hlZCA6IDE7Cgp9Owoj
IDI4MyAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiCnN0cnVjdCB2bV91c2VyZmF1bHRmZF9j
dHgge307CiMgMjkyICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKc3RydWN0IHZtX2FyZWFf
c3RydWN0IHsKCgogdW5zaWduZWQgbG9uZyB2bV9zdGFydDsKIHVuc2lnbmVkIGxvbmcgdm1fZW5k
OwoKCgogc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bV9uZXh0LCAqdm1fcHJldjsKCiBzdHJ1Y3Qg
cmJfbm9kZSB2bV9yYjsKCgoKCgoKCiB1bnNpZ25lZCBsb25nIHJiX3N1YnRyZWVfZ2FwOwoKCgog
c3RydWN0IG1tX3N0cnVjdCAqdm1fbW07CgoKCgoKIHBncHJvdF90IHZtX3BhZ2VfcHJvdDsKIHVu
c2lnbmVkIGxvbmcgdm1fZmxhZ3M7CgoKCgoKIHN0cnVjdCB7CiAgc3RydWN0IHJiX25vZGUgcmI7
CiAgdW5zaWduZWQgbG9uZyByYl9zdWJ0cmVlX2xhc3Q7CiB9IHNoYXJlZDsKCgoKCgoKCiBzdHJ1
Y3QgbGlzdF9oZWFkIGFub25fdm1hX2NoYWluOwoKIHN0cnVjdCBhbm9uX3ZtYSAqYW5vbl92bWE7
CgoKIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCAqdm1fb3BzOwoKCiB1bnNpZ25l
ZCBsb25nIHZtX3Bnb2ZmOwoKIHN0cnVjdCBmaWxlICogdm1fZmlsZTsKIHZvaWQgKiB2bV9wcml2
YXRlX2RhdGE7CgoKIGF0b21pY19sb25nX3Qgc3dhcF9yZWFkYWhlYWRfaW5mbzsKCgoKCgoKCiBz
dHJ1Y3Qgdm1fdXNlcmZhdWx0ZmRfY3R4IHZtX3VzZXJmYXVsdGZkX2N0eDsKfSBfX2F0dHJpYnV0
ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CgpzdHJ1Y3QgY29yZV90aHJlYWQgewogc3RydWN0
IHRhc2tfc3RydWN0ICp0YXNrOwogc3RydWN0IGNvcmVfdGhyZWFkICpuZXh0Owp9OwoKc3RydWN0
IGNvcmVfc3RhdGUgewogYXRvbWljX3QgbnJfdGhyZWFkczsKIHN0cnVjdCBjb3JlX3RocmVhZCBk
dW1wZXI7CiBzdHJ1Y3QgY29tcGxldGlvbiBzdGFydHVwOwp9OwoKc3RydWN0IGtpb2N0eF90YWJs
ZTsKc3RydWN0IG1tX3N0cnVjdCB7CiBzdHJ1Y3QgewogIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq
bW1hcDsKICBzdHJ1Y3QgcmJfcm9vdCBtbV9yYjsKICB1NjQgdm1hY2FjaGVfc2VxbnVtOwoKICB1
bnNpZ25lZCBsb25nICgqZ2V0X3VubWFwcGVkX2FyZWEpIChzdHJ1Y3QgZmlsZSAqZmlscCwKICAg
IHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBsZW4sCiAgICB1bnNpZ25lZCBsb25n
IHBnb2ZmLCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKCiAgdW5zaWduZWQgbG9uZyBtbWFwX2Jhc2U7
CiAgdW5zaWduZWQgbG9uZyBtbWFwX2xlZ2FjeV9iYXNlOwoKCgoKCiAgdW5zaWduZWQgbG9uZyB0
YXNrX3NpemU7CiAgdW5zaWduZWQgbG9uZyBoaWdoZXN0X3ZtX2VuZDsKICBwZ2RfdCAqIHBnZDsK
IyA0MDMgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgogIGF0b21pY190IG1lbWJhcnJpZXJf
c3RhdGU7CiMgNDE1ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKICBhdG9taWNfdCBtbV91
c2VyczsKIyA0MjQgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgogIGF0b21pY190IG1tX2Nv
dW50OwoKCiAgYXRvbWljX2xvbmdfdCBwZ3RhYmxlc19ieXRlczsKCiAgaW50IG1hcF9jb3VudDsK
CiAgc3BpbmxvY2tfdCBwYWdlX3RhYmxlX2xvY2s7CgoKICBzdHJ1Y3Qgcndfc2VtYXBob3JlIG1t
YXBfc2VtOwoKICBzdHJ1Y3QgbGlzdF9oZWFkIG1tbGlzdDsKCgoKCgoKICB1bnNpZ25lZCBsb25n
IGhpd2F0ZXJfcnNzOwogIHVuc2lnbmVkIGxvbmcgaGl3YXRlcl92bTsKCiAgdW5zaWduZWQgbG9u
ZyB0b3RhbF92bTsKICB1bnNpZ25lZCBsb25nIGxvY2tlZF92bTsKICBhdG9taWM2NF90IHBpbm5l
ZF92bTsKICB1bnNpZ25lZCBsb25nIGRhdGFfdm07CiAgdW5zaWduZWQgbG9uZyBleGVjX3ZtOwog
IHVuc2lnbmVkIGxvbmcgc3RhY2tfdm07CiAgdW5zaWduZWQgbG9uZyBkZWZfZmxhZ3M7CgogIHNw
aW5sb2NrX3QgYXJnX2xvY2s7CiAgdW5zaWduZWQgbG9uZyBzdGFydF9jb2RlLCBlbmRfY29kZSwg
c3RhcnRfZGF0YSwgZW5kX2RhdGE7CiAgdW5zaWduZWQgbG9uZyBzdGFydF9icmssIGJyaywgc3Rh
cnRfc3RhY2s7CiAgdW5zaWduZWQgbG9uZyBhcmdfc3RhcnQsIGFyZ19lbmQsIGVudl9zdGFydCwg
ZW52X2VuZDsKCiAgdW5zaWduZWQgbG9uZyBzYXZlZF9hdXh2WygyKigxICsgMjAgKyAxKSldOwoK
CgoKCiAgc3RydWN0IG1tX3Jzc19zdGF0IHJzc19zdGF0OwoKICBzdHJ1Y3QgbGludXhfYmluZm10
ICpiaW5mbXQ7CgoKICBtbV9jb250ZXh0X3QgY29udGV4dDsKCiAgdW5zaWduZWQgbG9uZyBmbGFn
czsKCiAgc3RydWN0IGNvcmVfc3RhdGUgKmNvcmVfc3RhdGU7CgoKICBzcGlubG9ja190IGlvY3R4
X2xvY2s7CiAgc3RydWN0IGtpb2N0eF90YWJsZSAqaW9jdHhfdGFibGU7CiMgNDkxICIuL2luY2x1
ZGUvbGludXgvbW1fdHlwZXMuaCIKICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKm93bmVyOwoKICBzdHJ1
Y3QgdXNlcl9uYW1lc3BhY2UgKnVzZXJfbnM7CgoKICBzdHJ1Y3QgZmlsZSAqZXhlX2ZpbGU7Cgog
IHN0cnVjdCBtbXVfbm90aWZpZXJfc3Vic2NyaXB0aW9ucyAqbm90aWZpZXJfc3Vic2NyaXB0aW9u
czsKIyA1MjIgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgogIGF0b21pY190IHRsYl9mbHVz
aF9wZW5kaW5nOwoKCiAgYm9vbCB0bGJfZmx1c2hfYmF0Y2hlZDsKCiAgc3RydWN0IHVwcm9iZXNf
c3RhdGUgdXByb2Jlc19zdGF0ZTsKCiAgYXRvbWljX2xvbmdfdCBodWdldGxiX3VzYWdlOwoKICBz
dHJ1Y3Qgd29ya19zdHJ1Y3QgYXN5bmNfcHV0X3dvcms7CiB9IF9fYXR0cmlidXRlX18oKF9fZGVz
aWduYXRlZF9pbml0X18pKTsKCgoKCgogdW5zaWduZWQgbG9uZyBjcHVfYml0bWFwW107Cn07Cgpl
eHRlcm4gc3RydWN0IG1tX3N0cnVjdCBpbml0X21tOwoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbW1faW5pdF9jcHVtYXNrKHN0
cnVjdCBtbV9zdHJ1Y3QgKm1tKQp7CiB1bnNpZ25lZCBsb25nIGNwdV9iaXRtYXAgPSAodW5zaWdu
ZWQgbG9uZyltbTsKCiBjcHVfYml0bWFwICs9IF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgbW1f
c3RydWN0LCBjcHVfYml0bWFwKTsKIGNwdW1hc2tfY2xlYXIoKHN0cnVjdCBjcHVtYXNrICopY3B1
X2JpdG1hcCk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBjcHVtYXNrX3QgKm1tX2NwdW1hc2soc3RydWN0IG1tX3N0cnVjdCAqbW0p
CnsKIHJldHVybiAoc3RydWN0IGNwdW1hc2sgKikmbW0tPmNwdV9iaXRtYXA7Cn0KCnN0cnVjdCBt
bXVfZ2F0aGVyOwpleHRlcm4gdm9pZCB0bGJfZ2F0aGVyX21tdShzdHJ1Y3QgbW11X2dhdGhlciAq
dGxiLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2ln
bmVkIGxvbmcgZW5kKTsKZXh0ZXJuIHZvaWQgdGxiX2ZpbmlzaF9tbXUoc3RydWN0IG1tdV9nYXRo
ZXIgKnRsYiwKICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaW5pdF90bGJfZmx1c2hfcGVuZGluZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKewogYXRvbWlj
X3NldCgmbW0tPnRsYl9mbHVzaF9wZW5kaW5nLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbmNfdGxiX2ZsdXNoX3Bl
bmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pCnsKIGF0b21pY19pbmMoJm1tLT50bGJfZmx1c2hf
cGVuZGluZyk7CiMgNjA4ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWNf
dGxiX2ZsdXNoX3BlbmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pCnsKIyA2MjAgIi4vaW5jbHVk
ZS9saW51eC9tbV90eXBlcy5oIgogYXRvbWljX2RlYygmbW0tPnRsYl9mbHVzaF9wZW5kaW5nKTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBtbV90bGJfZmx1c2hfcGVuZGluZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKewojIDYz
MyAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiCiByZXR1cm4gYXRvbWljX3JlYWQoJm1tLT50
bGJfZmx1c2hfcGVuZGluZyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgbW1fdGxiX2ZsdXNoX25lc3RlZChzdHJ1Y3QgbW1f
c3RydWN0ICptbSkKewoKCgoKCgoKIHJldHVybiBhdG9taWNfcmVhZCgmbW0tPnRsYl9mbHVzaF9w
ZW5kaW5nKSA+IDE7Cn0KCnN0cnVjdCB2bV9mYXVsdDsKCgoKCgoKdHlwZWRlZiB1bnNpZ25lZCBp
bnQgdm1fZmF1bHRfdDsKIyA2ODIgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgplbnVtIHZt
X2ZhdWx0X3JlYXNvbiB7CiBWTV9GQVVMVF9PT00gPSAoIHZtX2ZhdWx0X3QpMHgwMDAwMDEsCiBW
TV9GQVVMVF9TSUdCVVMgPSAoIHZtX2ZhdWx0X3QpMHgwMDAwMDIsCiBWTV9GQVVMVF9NQUpPUiA9
ICggdm1fZmF1bHRfdCkweDAwMDAwNCwKIFZNX0ZBVUxUX1dSSVRFID0gKCB2bV9mYXVsdF90KTB4
MDAwMDA4LAogVk1fRkFVTFRfSFdQT0lTT04gPSAoIHZtX2ZhdWx0X3QpMHgwMDAwMTAsCiBWTV9G
QVVMVF9IV1BPSVNPTl9MQVJHRSA9ICggdm1fZmF1bHRfdCkweDAwMDAyMCwKIFZNX0ZBVUxUX1NJ
R1NFR1YgPSAoIHZtX2ZhdWx0X3QpMHgwMDAwNDAsCiBWTV9GQVVMVF9OT1BBR0UgPSAoIHZtX2Zh
dWx0X3QpMHgwMDAxMDAsCiBWTV9GQVVMVF9MT0NLRUQgPSAoIHZtX2ZhdWx0X3QpMHgwMDAyMDAs
CiBWTV9GQVVMVF9SRVRSWSA9ICggdm1fZmF1bHRfdCkweDAwMDQwMCwKIFZNX0ZBVUxUX0ZBTExC
QUNLID0gKCB2bV9mYXVsdF90KTB4MDAwODAwLAogVk1fRkFVTFRfRE9ORV9DT1cgPSAoIHZtX2Zh
dWx0X3QpMHgwMDEwMDAsCiBWTV9GQVVMVF9ORUVERFNZTkMgPSAoIHZtX2ZhdWx0X3QpMHgwMDIw
MDAsCiBWTV9GQVVMVF9ISU5ERVhfTUFTSyA9ICggdm1fZmF1bHRfdCkweDBmMDAwMCwKfTsKIyA3
MjIgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgpzdHJ1Y3Qgdm1fc3BlY2lhbF9tYXBwaW5n
IHsKIGNvbnN0IGNoYXIgKm5hbWU7CgoKCgoKCgogc3RydWN0IHBhZ2UgKipwYWdlczsKCgoKCgog
dm1fZmF1bHRfdCAoKmZhdWx0KShjb25zdCBzdHJ1Y3Qgdm1fc3BlY2lhbF9tYXBwaW5nICpzbSwK
ICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogICAgc3RydWN0IHZtX2ZhdWx0ICp2bWYp
OwoKIGludCAoKm1yZW1hcCkoY29uc3Qgc3RydWN0IHZtX3NwZWNpYWxfbWFwcGluZyAqc20sCiAg
ICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKm5ld192bWEpOwp9OwoKZW51bSB0bGJfZmx1c2hf
cmVhc29uIHsKIFRMQl9GTFVTSF9PTl9UQVNLX1NXSVRDSCwKIFRMQl9SRU1PVEVfU0hPT1RET1dO
LAogVExCX0xPQ0FMX1NIT09URE9XTiwKIFRMQl9MT0NBTF9NTV9TSE9PVERPV04sCiBUTEJfUkVN
T1RFX1NFTkRfSVBJLAogTlJfVExCX0ZMVVNIX1JFQVNPTlMsCn07CgoKCgoKdHlwZWRlZiBzdHJ1
Y3QgewogdW5zaWduZWQgbG9uZyB2YWw7Cn0gc3dwX2VudHJ5X3Q7CiMgMjIgIi4vaW5jbHVkZS9s
aW51eC9tbXpvbmUuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgiIDEKIyA5
OSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKZW51bSBwYWdlZmxhZ3MgewogUEdfbG9j
a2VkLAogUEdfcmVmZXJlbmNlZCwKIFBHX3VwdG9kYXRlLAogUEdfZGlydHksCiBQR19scnUsCiBQ
R19hY3RpdmUsCiBQR193b3JraW5nc2V0LAogUEdfd2FpdGVycywKIFBHX2Vycm9yLAogUEdfc2xh
YiwKIFBHX293bmVyX3ByaXZfMSwKIFBHX2FyY2hfMSwKIFBHX3Jlc2VydmVkLAogUEdfcHJpdmF0
ZSwKIFBHX3ByaXZhdGVfMiwKIFBHX3dyaXRlYmFjaywKIFBHX2hlYWQsCiBQR19tYXBwZWR0b2Rp
c2ssCiBQR19yZWNsYWltLAogUEdfc3dhcGJhY2tlZCwKIFBHX3VuZXZpY3RhYmxlLAoKIFBHX21s
b2NrZWQsCgoKIFBHX3VuY2FjaGVkLAojIDEzNCAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3Mu
aCIKIF9fTlJfUEFHRUZMQUdTLAoKCiBQR19jaGVja2VkID0gUEdfb3duZXJfcHJpdl8xLAoKCiBQ
R19zd2FwY2FjaGUgPSBQR19vd25lcl9wcml2XzEsCgoKCgoKIFBHX2ZzY2FjaGUgPSBQR19wcml2
YXRlXzIsCgoKCiBQR19waW5uZWQgPSBQR19vd25lcl9wcml2XzEsCgogUEdfc2F2ZXBpbm5lZCA9
IFBHX2RpcnR5LAoKIFBHX2ZvcmVpZ24gPSBQR19vd25lcl9wcml2XzEsCgogUEdfeGVuX3JlbWFw
cGVkID0gUEdfb3duZXJfcHJpdl8xLAoKCiBQR19zbG9iX2ZyZWUgPSBQR19wcml2YXRlLAoKCiBQ
R19kb3VibGVfbWFwID0gUEdfcHJpdmF0ZV8yLAoKCiBQR19pc29sYXRlZCA9IFBHX3JlY2xhaW0s
Cn07CgoKCnN0cnVjdCBwYWdlOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBhZ2UgKmNvbXBvdW5kX2hlYWQoc3RydWN0IHBh
Z2UgKnBhZ2UpCnsKIHVuc2lnbmVkIGxvbmcgaGVhZCA9ICh7IHVuaW9uIHsgdHlwZW9mKHBhZ2Ut
PmNvbXBvdW5kX2hlYWQpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRf
b25jZV9zaXplKCYocGFnZS0+Y29tcG91bmRfaGVhZCksIF9fdS5fX2MsIHNpemVvZihwYWdlLT5j
b21wb3VuZF9oZWFkKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYocGFnZS0+Y29t
cG91bmRfaGVhZCksIF9fdS5fX2MsIHNpemVvZihwYWdlLT5jb21wb3VuZF9oZWFkKSk7IGRvIHsg
fSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CgogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoaGVh
ZCAmIDEpLCAwKSkKICByZXR1cm4gKHN0cnVjdCBwYWdlICopIChoZWFkIC0gMSk7CiByZXR1cm4g
cGFnZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVRhaWwo
c3RydWN0IHBhZ2UgKnBhZ2UpCnsKIHJldHVybiAoeyB1bmlvbiB7IHR5cGVvZihwYWdlLT5jb21w
b3VuZF9oZWFkKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vf
c2l6ZSgmKHBhZ2UtPmNvbXBvdW5kX2hlYWQpLCBfX3UuX19jLCBzaXplb2YocGFnZS0+Y29tcG91
bmRfaGVhZCkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKHBhZ2UtPmNvbXBvdW5k
X2hlYWQpLCBfX3UuX19jLCBzaXplb2YocGFnZS0+Y29tcG91bmRfaGVhZCkpOyBkbyB7IH0gd2hp
bGUgKDApOyBfX3UuX192YWw7IH0pICYgMTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSBpbnQgUGFnZUNvbXBvdW5kKHN0cnVjdCBwYWdlICpwYWdlKQp7CiByZXR1cm4gdGVz
dF9iaXQoUEdfaGVhZCwgJnBhZ2UtPmZsYWdzKSB8fCBQYWdlVGFpbChwYWdlKTsKfQoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBQ
YWdlUG9pc29uZWQoY29uc3Qgc3RydWN0IHBhZ2UgKnBhZ2UpCnsKIHJldHVybiBwYWdlLT5mbGFn
cyA9PSAtMWw7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcGFnZV9pbml0X3BvaXNvbihzdHJ1Y3QgcGFnZSAqcGFnZSwg
c2l6ZV90IHNpemUpCnsKfQojIDMxMiAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUxvY2tlZChzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfbG9ja2VkLCAmKHsgKCh2b2lkKShzaXplb2Yo
KCBsb25nKSgwICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25n
KShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBh
Z2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IHZvaWQgX19TZXRQYWdlTG9ja2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fc2V0X2JpdChQR19s
b2NrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkp
OyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBh
Z2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUxvY2tlZChzdHJ1Y3Qg
cGFnZSAqcGFnZSkgeyBfX2NsZWFyX2JpdChQR19sb2NrZWQsICYoeyAoKHZvaWQpKHNpemVvZigo
IGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFn
ZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
aW50IFBhZ2VXYWl0ZXJzKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR193
YWl0ZXJzLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlVGFpbChwYWdlKSkpKSk7ICh7
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7
IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNl
dFBhZ2VXYWl0ZXJzKHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdfd2FpdGVycywgJih7
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3Mp
OyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VXYWl0
ZXJzKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR193YWl0ZXJzLCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCgg
bG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQYWdlV2FpdGVycyhz
dHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX2NsZWFyX2JpdChQR193YWl0ZXJzLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0Kc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUVycm9yKHN0cnVjdCBwYWdlICpw
YWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19lcnJvciwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFn
ZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsg
fSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lk
IFNldFBhZ2VFcnJvcihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX2Vycm9yLCAmKHsg
KCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBj
b21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlRXJyb3Ioc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
Y2xlYXJfYml0KFBHX2Vycm9yLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VU
YWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29t
cG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdz
KTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdl
RXJyb3Ioc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19l
cnJvciwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7
ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0Kc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVJlZmVyZW5jZWQoc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3JlZmVyZW5jZWQsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5k
X2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5l
X18pKSB2b2lkIFNldFBhZ2VSZWZlcmVuY2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQo
UEdfcmVmZXJlbmNlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNv
bXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsg
fSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlUmVmZXJl
bmNlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfcmVmZXJlbmNlZCwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkp
KTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZVJlZmVyZW5jZWQoc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19yZWZlcmVuY2VkLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkp
OyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlUmVmZXJlbmNlZChzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyBfX3NldF9iaXQoUEdfcmVmZXJlbmNlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
UGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdl
KTsgfSktPmZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQ
YWdlRGlydHkoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX2RpcnR5LCAm
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdl
KSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlRGlydHkoc3RydWN0IHBhZ2UgKnBhZ2Up
IHsgc2V0X2JpdChQR19kaXJ0eSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNv
bmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZs
YWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdl
RGlydHkoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX2RpcnR5LCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBj
b21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgaW50IFRlc3RTZXRQYWdlRGlydHkoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0
dXJuIHRlc3RfYW5kX3NldF9iaXQoUEdfZGlydHksICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFn
ZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQg
VGVzdENsZWFyUGFnZURpcnR5KHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2FuZF9j
bGVhcl9iaXQoUEdfZGlydHksICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25l
ZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFn
cyk7IH0KIHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFn
ZURpcnR5KHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX2RpcnR5LCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkp
OyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgaW50IFBhZ2VMUlUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRl
c3RfYml0KFBHX2xydSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNv
bXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsg
fSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZUxSVShzdHJ1
Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX2xydSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChw
YWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgQ2xlYXJQYWdlTFJVKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19scnUsICYo
eyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2Up
KSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQYWdlTFJVKHN0cnVjdCBwYWdlICpwYWdl
KSB7IF9fY2xlYXJfYml0KFBHX2xydSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSkt
PmZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlQWN0
aXZlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19hY3RpdmUsICYoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkp
KSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VBY3RpdmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
c2V0X2JpdChQR19hY3RpdmUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25l
ZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZUFj
dGl2ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfYWN0aXZlLCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBj
b21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUFjdGl2ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBf
X2NsZWFyX2JpdChQR19hY3RpdmUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5m
bGFncyk7IH0KIHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RDbGVh
clBhZ2VBY3RpdmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2Jp
dChQR19hY3RpdmUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21w
b3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0K
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVdvcmtpbmdzZXQoc3Ry
dWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3dvcmtpbmdzZXQsICYoeyAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7
IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VXb3JraW5nc2V0KHN0cnVjdCBwYWdlICpwYWdlKSB7
IHNldF9iaXQoUEdfd29ya2luZ3NldCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSkt
PmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQ
YWdlV29ya2luZ3NldChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfd29ya2luZ3Nl
dCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQo
cGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZVdvcmtpbmdzZXQoc3Ry
dWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR193b3JraW5nc2V0
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChw
YWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VTbGFiKHN0cnVjdCBwYWdlICpwYWdlKSB7
IHJldHVybiB0ZXN0X2JpdChQR19zbGFiLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYm
IFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29u
ZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSkt
PmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQ
YWdlU2xhYihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX3NldF9iaXQoUEdfc2xhYiwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91
bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQYWdlU2xhYihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX2Ns
ZWFyX2JpdChQR19zbGFiLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWls
KHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91
bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsg
fQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlU2xvYkZyZWUoc3Ry
dWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3Nsb2JfZnJlZSwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91
bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkIF9fU2V0UGFnZVNsb2JGcmVlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9f
c2V0X2JpdChQR19zbG9iX2ZyZWUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFn
ZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChj
b21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+Zmxh
Z3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFn
ZVNsb2JGcmVlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX3Nsb2JfZnJlZSwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkp
KTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0Kc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUNoZWNrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
cmV0dXJuIHRlc3RfYml0KFBHX2NoZWNrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAg
JiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZUNoZWNrZWQoc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgc2V0X2JpdChQR19jaGVja2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZUNoZWNrZWQoc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgY2xlYXJfYml0KFBHX2NoZWNrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEg
JiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VQaW5uZWQoc3RydWN0IHBhZ2UgKnBhZ2Up
IHsgcmV0dXJuIHRlc3RfYml0KFBHX3Bpbm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
MCAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBh
Z2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlUGlubmVkKHN0cnVjdCBwYWdlICpw
YWdlKSB7IHNldF9iaXQoUEdfcGlubmVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyBjbGVhcl9iaXQoUEdfcGlubmVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0KIHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RTZXRQYWdlUGlubmVkKHN0cnVjdCBwYWdlICpw
YWdlKSB7IHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KFBHX3Bpbm5lZCwgJih7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RDbGVhclBhZ2VQaW5u
ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19waW5u
ZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkp
KTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KTsgfSktPmZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlU2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdf
c2F2ZXBpbm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlQ29tcG91bmQo
cGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkp
KSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZCBTZXRQYWdlU2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0
KFBHX3NhdmVwaW5uZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBv
dW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFn
ZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlU2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBj
bGVhcl9iaXQoUEdfc2F2ZXBpbm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQ
YWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9OwpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlRm9yZWlnbihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBy
ZXR1cm4gdGVzdF9iaXQoUEdfZm9yZWlnbiwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAm
JiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQ
b2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlRm9yZWlnbihzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyBzZXRfYml0KFBHX2ZvcmVpZ24sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYg
UGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9p
c29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlRm9yZWlnbihzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyBjbGVhcl9iaXQoUEdfZm9yZWlnbiwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAm
JiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQ
b2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9OwpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlWGVuUmVtYXBwZWQoc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3hlbl9yZW1hcHBlZCwgJih7ICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoMCAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigo
IGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlWGVuUmVtYXBwZWQo
c3RydWN0IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR194ZW5fcmVtYXBwZWQsICYoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdz
KTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlWGVu
UmVtYXBwZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3hlbl9yZW1hcHBlZCwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAo
eyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0p
OyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBU
ZXN0Q2xlYXJQYWdlWGVuUmVtYXBwZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3Rf
YW5kX2NsZWFyX2JpdChQR194ZW5fcmVtYXBwZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVJlc2VydmVkKHN0cnVjdCBwYWdlICpw
YWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19yZXNlcnZlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCgg
bG9uZykoMCAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxv
bmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlUmVzZXJ2ZWQoc3RydWN0
IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR19yZXNlcnZlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCgg
bG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxv
bmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VSZXNlcnZlZChzdHJ1
Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfcmVzZXJ2ZWQsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2Yo
KCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQYWdlUmVzZXJ2
ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfcmVzZXJ2ZWQsICYoeyAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZs
YWdzKTsgfQogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fU2V0UGFn
ZVJlc2VydmVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fc2V0X2JpdChQR19yZXNlcnZlZCwgJih7
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9
KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VT
d2FwQmFja2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19zd2FwYmFj
a2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsg
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdl
KSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVN3YXBCYWNrZWQoc3RydWN0IHBh
Z2UgKnBhZ2UpIHsgc2V0X2JpdChQR19zd2FwYmFja2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBs
b25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2Up
OyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgQ2xlYXJQYWdlU3dhcEJhY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdf
c3dhcGJhY2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdl
KSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hl
YWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KIHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZVN3YXBCYWNr
ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfc3dhcGJhY2tlZCwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29t
cG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KIHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBfX1NldFBhZ2VTd2FwQmFja2VkKHN0cnVjdCBwYWdlICpwYWdl
KSB7IF9fc2V0X2JpdChQR19zd2FwYmFja2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgx
ICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9p
c29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsg
fSktPmZsYWdzKTsgfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlUHJpdmF0ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfcHJp
dmF0ZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsg
cGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgU2V0UGFnZVByaXZhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR19wcml2YXRl
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBD
bGVhclBhZ2VQcml2YXRlKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19wcml2YXRl
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBf
X1NldFBhZ2VQcml2YXRlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fc2V0X2JpdChQR19wcml2YXRl
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
X19DbGVhclBhZ2VQcml2YXRlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX3By
aXZhdGUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7
IHBhZ2U7IH0pLT5mbGFncyk7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBp
bnQgUGFnZVByaXZhdGUyKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19w
cml2YXRlXzIsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkp
KSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIFNldFBhZ2VQcml2YXRlMihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3By
aXZhdGVfMiwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkp
KTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IHZvaWQgQ2xlYXJQYWdlUHJpdmF0ZTIoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBH
X3ByaXZhdGVfMiwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2Up
KSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIGludCBUZXN0U2V0UGFnZVByaXZhdGUyKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0
ZXN0X2FuZF9zZXRfYml0KFBHX3ByaXZhdGVfMiwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
UGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlUHJpdmF0ZTIoc3RydWN0IHBh
Z2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19wcml2YXRlXzIsICYoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pLT5m
bGFncyk7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZU93bmVy
UHJpdjEoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX293bmVyX3ByaXZf
MSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFn
ZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
U2V0UGFnZU93bmVyUHJpdjEoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR19vd25lcl9w
cml2XzEsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7
IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2
b2lkIENsZWFyUGFnZU93bmVyUHJpdjEoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBH
X293bmVyX3ByaXZfMSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBh
Z2UpKSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfQogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZU93bmVyUHJpdjEoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
cmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19vd25lcl9wcml2XzEsICYoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0K
CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlV3JpdGViYWNr
KHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR193cml0ZWJhY2ssICYoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKDAgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNv
bXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBUZXN0U2V0UGFnZVdyaXRlYmFjayhzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyByZXR1cm4gdGVzdF9hbmRfc2V0X2JpdChQR193cml0ZWJhY2ssICYoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigo
IGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hl
YWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgaW50IFRlc3RDbGVhclBhZ2VXcml0ZWJhY2soc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0
dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR193cml0ZWJhY2ssICYoeyAoKHZvaWQpKHNpemVvZigo
IGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFn
ZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
aW50IFBhZ2VNYXBwZWRUb0Rpc2soc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0
KFBHX21hcHBlZHRvZGlzaywgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFp
bChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBv
dW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7
IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VNYXBwZWRU
b0Rpc2soc3RydWN0IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR19tYXBwZWR0b2Rpc2ssICYoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNv
bXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VNYXBwZWRUb0Rpc2soc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgY2xlYXJfYml0KFBHX21hcHBlZHRvZGlzaywgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFn
ZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsg
fSk7IH0pLT5mbGFncyk7IH0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlUmVjbGFpbShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfcmVj
bGFpbSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7
ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VSZWNsYWltKHN0cnVjdCBwYWdl
ICpwYWdlKSB7IHNldF9iaXQoUEdfcmVjbGFpbSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
MSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7
IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENs
ZWFyUGFnZVJlY2xhaW0oc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3JlY2xhaW0s
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkp
KSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlUmVjbGFpbShzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3JlY2xhaW0sICYoeyAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBv
dW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgaW50IFBhZ2VSZWFkYWhlYWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJu
IHRlc3RfYml0KFBHX3JlY2xhaW0sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAgJiYgUGFn
ZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29u
ZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVJlYWRhaGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkg
eyBzZXRfYml0KFBHX3JlY2xhaW0sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFn
ZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29u
ZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlUmVhZGFoZWFkKHN0cnVjdCBwYWdlICpwYWdl
KSB7IGNsZWFyX2JpdChQR19yZWNsYWltLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0KIHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RDbGVhclBhZ2VSZWFkYWhlYWQoc3RydWN0IHBh
Z2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19yZWNsYWltLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5m
bGFncyk7IH0KIyAzNzYgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBQYWdlSGln
aE1lbShjb25zdCBzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gMDsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIFNldFBhZ2VI
aWdoTWVtKHN0cnVjdCBwYWdlICpwYWdlKSB7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBDbGVhclBhZ2VIaWdoTWVtKHN0cnVj
dCBwYWdlICpwYWdlKSB7IH0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBp
bnQgUGFnZVN3YXBDYWNoZShzdHJ1Y3QgcGFnZSAqcGFnZSkKewoKIHBhZ2UgPSBjb21wb3VuZF9o
ZWFkKHBhZ2UpOwoKIHJldHVybiBQYWdlU3dhcEJhY2tlZChwYWdlKSAmJiB0ZXN0X2JpdChQR19z
d2FwY2FjaGUsICZwYWdlLT5mbGFncyk7Cgp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZCBTZXRQYWdlU3dhcENhY2hlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQo
UEdfc3dhcGNhY2hlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBh
Z2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRf
aGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlU3dhcENhY2hl
KHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19zd2FwY2FjaGUsICYoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5k
X2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGludCBQYWdlVW5ldmljdGFibGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0
dXJuIHRlc3RfYml0KFBHX3VuZXZpY3RhYmxlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2Up
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBT
ZXRQYWdlVW5ldmljdGFibGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR191bmV2aWN0
YWJsZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hl
YWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlVW5ldmljdGFibGUoc3Ry
dWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3VuZXZpY3RhYmxlLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21w
b3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIHZvaWQgX19DbGVhclBhZ2VVbmV2aWN0YWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSkg
eyBfX2NsZWFyX2JpdChQR191bmV2aWN0YWJsZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
UGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdl
KTsgfSktPmZsYWdzKTsgfQogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQg
VGVzdENsZWFyUGFnZVVuZXZpY3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0
X2FuZF9jbGVhcl9iaXQoUEdfdW5ldmljdGFibGUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFn
ZSk7IH0pLT5mbGFncyk7IH0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlTWxvY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfbWxv
Y2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7
ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VNbG9ja2VkKHN0cnVjdCBwYWdl
ICpwYWdlKSB7IHNldF9iaXQoUEdfbWxvY2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
MSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7
IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENs
ZWFyUGFnZU1sb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX21sb2NrZWQs
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkp
KSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19DbGVhclBhZ2VNbG9ja2VkKHN0cnVjdCBwYWdl
ICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX21sb2NrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxv
bmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBh
Z2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7
IH0pOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBUZXN0U2V0UGFnZU1sb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5k
X3NldF9iaXQoUEdfbWxvY2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdl
VGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNv
bXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFn
ZU1sb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQ
R19tbG9ja2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2Up
KSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVh
ZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoKCgoK
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlVW5jYWNoZWQoc3Ry
dWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3VuY2FjaGVkLCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VVbmNh
Y2hlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3VuY2FjaGVkLCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVVu
Y2FjaGVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR191bmNhY2hlZCwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+
ZmxhZ3MpOyB9CiMgNDE5ICIuL2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgUGFnZUhX
UG9pc29uKGNvbnN0IHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiAwOyB9IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgU2V0UGFn
ZUhXUG9pc29uKHN0cnVjdCBwYWdlICpwYWdlKSB7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBDbGVhclBhZ2VIV1BvaXNvbihz
dHJ1Y3QgcGFnZSAqcGFnZSkgeyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2V0X2h3cG9pc29uX2ZyZWVfYnVkZHlfcGFnZShz
dHJ1Y3QgcGFnZSAqcGFnZSkKewogcmV0dXJuIDA7Cn0KIyA0NTYgIi4vaW5jbHVkZS9saW51eC9w
YWdlLWZsYWdzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VN
YXBwaW5nRmxhZ3Moc3RydWN0IHBhZ2UgKnBhZ2UpCnsKIHJldHVybiAoKHVuc2lnbmVkIGxvbmcp
cGFnZS0+bWFwcGluZyAmICgweDEgfCAweDIpKSAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBQYWdlQW5vbihzdHJ1Y3QgcGFnZSAqcGFnZSkKewogcGFnZSA9
IGNvbXBvdW5kX2hlYWQocGFnZSk7CiByZXR1cm4gKCh1bnNpZ25lZCBsb25nKXBhZ2UtPm1hcHBp
bmcgJiAweDEpICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50
IF9fUGFnZU1vdmFibGUoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKIHJldHVybiAoKHVuc2lnbmVkIGxv
bmcpcGFnZS0+bWFwcGluZyAmICgweDEgfCAweDIpKSA9PQogICAgMHgyOwp9CiMgNDgwICIuL2lu
Y2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIGludCBQYWdlS3NtKHN0cnVjdCBwYWdlICpwYWdlKQp7CiBwYWdlID0gY29tcG91bmRfaGVh
ZChwYWdlKTsKIHJldHVybiAoKHVuc2lnbmVkIGxvbmcpcGFnZS0+bWFwcGluZyAmICgweDEgfCAw
eDIpKSA9PQogICAgKDB4MSB8IDB4Mik7Cn0KCgoKCnU2NCBzdGFibGVfcGFnZV9mbGFncyhzdHJ1
Y3QgcGFnZSAqcGFnZSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgUGFnZVVwdG9kYXRlKHN0cnVjdCBwYWdlICpwYWdlKQp7CiBp
bnQgcmV0OwogcGFnZSA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CiByZXQgPSB0ZXN0X2JpdChQR191
cHRvZGF0ZSwgJihwYWdlKS0+ZmxhZ3MpOwojIDUwNSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxh
Z3MuaCIKIGlmIChyZXQpCiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsK
CiByZXR1cm4gcmV0Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
X19TZXRQYWdlVXB0b2RhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKICgodm9pZCkoc2l6ZW9mKCgg
bG9uZykoUGFnZVRhaWwocGFnZSkpKSkpOwogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJt
ZW1vcnkiKTsKIF9fc2V0X2JpdChQR191cHRvZGF0ZSwgJnBhZ2UtPmZsYWdzKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VVcHRvZGF0ZShzdHJ1Y3Qg
cGFnZSAqcGFnZSkKewogKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlVGFpbChwYWdlKSkpKSk7
CgoKCgoKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBzZXRfYml0KFBH
X3VwdG9kYXRlLCAmcGFnZS0+ZmxhZ3MpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQgQ2xlYXJQYWdlVXB0b2RhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJf
Yml0KFBHX3VwdG9kYXRlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWls
KHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91
bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsg
fQoKaW50IHRlc3RfY2xlYXJfcGFnZV93cml0ZWJhY2soc3RydWN0IHBhZ2UgKnBhZ2UpOwppbnQg
X190ZXN0X3NldF9wYWdlX3dyaXRlYmFjayhzdHJ1Y3QgcGFnZSAqcGFnZSwgYm9vbCBrZWVwX3dy
aXRlKTsKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBzZXRfcGFnZV93cml0ZWJhY2soc3RydWN0IHBhZ2UgKnBhZ2UpCnsK
IF9fdGVzdF9zZXRfcGFnZV93cml0ZWJhY2socGFnZSwgZmFsc2UpOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF9wYWdl
X3dyaXRlYmFja19rZWVwd3JpdGUoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKIF9fdGVzdF9zZXRfcGFn
ZV93cml0ZWJhY2socGFnZSwgdHJ1ZSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgaW50IFBhZ2VIZWFkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQ
R19oZWFkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCBfX1NldFBhZ2VIZWFkKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fc2V0X2JpdChQR19oZWFk
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBf
X0NsZWFyUGFnZUhlYWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfaGVhZCwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsg
fSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xl
YXJQYWdlSGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfaGVhZCwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSktPmZs
YWdzKTsgfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNldF9jb21w
b3VuZF9oZWFkKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgcGFnZSAqaGVhZCkKewogKHsgdW5p
b24geyB0eXBlb2YocGFnZS0+Y29tcG91bmRfaGVhZCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2YocGFnZS0+Y29tcG91bmRfaGVhZCkpICgodW5zaWduZWQg
bG9uZyloZWFkICsgMSkgfTsgX193cml0ZV9vbmNlX3NpemUoJihwYWdlLT5jb21wb3VuZF9oZWFk
KSwgX191Ll9fYywgc2l6ZW9mKHBhZ2UtPmNvbXBvdW5kX2hlYWQpKTsgX191Ll9fdmFsOyB9KTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGNsZWFyX2NvbXBvdW5k
X2hlYWQoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKICh7IHVuaW9uIHsgdHlwZW9mKHBhZ2UtPmNvbXBv
dW5kX2hlYWQpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9m
KHBhZ2UtPmNvbXBvdW5kX2hlYWQpKSAoMCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihwYWdlLT5j
b21wb3VuZF9oZWFkKSwgX191Ll9fYywgc2l6ZW9mKHBhZ2UtPmNvbXBvdW5kX2hlYWQpKTsgX191
Ll9fdmFsOyB9KTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgQ2xlYXJQYWdlQ29tcG91bmQoc3RydWN0IHBhZ2UgKnBhZ2Up
CnsKIGRvIHsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoIVBhZ2VIZWFkKHBhZ2UpKSwgMCkpIGRv
IHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAi
XG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAi
MWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVj
MCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVn
X2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJc
dC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvcGFn
ZS1mbGFncy5oIiksICJpIiAoNTY1KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19l
bnRyeSkpKTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5w
dXNoc2VjdGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQi
ICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDE0KSk7IH0pOyBhc20gdm9sYXRpbGUoIiIpOyBf
X2J1aWx0aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9IHdoaWxl
ICgwKTsKIENsZWFyUGFnZUhlYWQocGFnZSk7Cn0KCgoKCgppbnQgUGFnZUh1Z2Uoc3RydWN0IHBh
Z2UgKnBhZ2UpOwppbnQgUGFnZUhlYWRIdWdlKHN0cnVjdCBwYWdlICpwYWdlKTsKYm9vbCBwYWdl
X2h1Z2VfYWN0aXZlKHN0cnVjdCBwYWdlICpwYWdlKTsKIyA1OTYgIi4vaW5jbHVkZS9saW51eC9w
YWdlLWZsYWdzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBQYWdlVHJhbnNIdWdlKHN0cnVjdCBwYWdlICpwYWdlKQp7CiAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKFBhZ2VUYWlsKHBhZ2UpKSkpKTsKIHJldHVybiBQYWdlSGVhZChw
YWdlKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgUGFnZVRyYW5zQ29tcG91bmQoc3RydWN0IHBhZ2UgKnBhZ2UpCnsK
IHJldHVybiBQYWdlQ29tcG91bmQocGFnZSk7Cn0KIyA2MzMgIi4vaW5jbHVkZS9saW51eC9wYWdl
LWZsYWdzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCBQYWdlVHJhbnNDb21wb3VuZE1hcChzdHJ1Y3QgcGFnZSAqcGFnZSkKewog
c3RydWN0IHBhZ2UgKmhlYWQ7CgogaWYgKCFQYWdlVHJhbnNDb21wb3VuZChwYWdlKSkKICByZXR1
cm4gMDsKCiBpZiAoUGFnZUFub24ocGFnZSkpCiAgcmV0dXJuIGF0b21pY19yZWFkKCZwYWdlLT5f
bWFwY291bnQpIDwgMDsKCiBoZWFkID0gY29tcG91bmRfaGVhZChwYWdlKTsKCiByZXR1cm4gYXRv
bWljX3JlYWQoJnBhZ2UtPl9tYXBjb3VudCkgPT0KICAgICAgICBhdG9taWNfcmVhZChjb21wb3Vu
ZF9tYXBjb3VudF9wdHIoaGVhZCkpOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBQYWdlVHJhbnNUYWlsKHN0cnVjdCBw
YWdlICpwYWdlKQp7CiByZXR1cm4gUGFnZVRhaWwocGFnZSk7Cn0KIyA2NzIgIi4vaW5jbHVkZS9s
aW51eC9wYWdlLWZsYWdzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludCBQYWdlRG91YmxlTWFwKHN0cnVjdCBwYWdlICpwYWdlKQp7
CiByZXR1cm4gUGFnZUhlYWQocGFnZSkgJiYgdGVzdF9iaXQoUEdfZG91YmxlX21hcCwgJnBhZ2Vb
MV0uZmxhZ3MpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIFNldFBhZ2VEb3VibGVNYXAoc3RydWN0IHBhZ2UgKnBhZ2UpCnsK
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VIZWFkKHBhZ2UpKSkpKTsKIHNldF9iaXQoUEdf
ZG91YmxlX21hcCwgJnBhZ2VbMV0uZmxhZ3MpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIENsZWFyUGFnZURvdWJsZU1hcChz
dHJ1Y3QgcGFnZSAqcGFnZSkKewogKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFnZUhlYWQocGFn
ZSkpKSkpOwogY2xlYXJfYml0KFBHX2RvdWJsZV9tYXAsICZwYWdlWzFdLmZsYWdzKTsKfQpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
VGVzdFNldFBhZ2VEb3VibGVNYXAoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoIVBhZ2VIZWFkKHBhZ2UpKSkpKTsKIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KFBH
X2RvdWJsZV9tYXAsICZwYWdlWzFdLmZsYWdzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IFRlc3RDbGVhclBhZ2VEb3VibGVN
YXAoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VIZWFk
KHBhZ2UpKSkpKTsKIHJldHVybiB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfZG91YmxlX21hcCwgJnBh
Z2VbMV0uZmxhZ3MpOwp9CiMgNzMxICIuL2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
cGFnZV9oYXNfdHlwZShzdHJ1Y3QgcGFnZSAqcGFnZSkKewogcmV0dXJuIChpbnQpcGFnZS0+cGFn
ZV90eXBlIDwgLTEyODsKfQojIDc1NiAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUJ1ZGR5KHN0cnVjdCBwYWdl
ICpwYWdlKSB7IHJldHVybiAoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwgMHgwMDAw
MDA4MCkpID09IDB4ZjAwMDAwMDApOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9f
KSkgdm9pZCBfX1NldFBhZ2VCdWRkeShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwgMCkpID09IDB4ZjAw
MDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAwMDgwOyB9IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUJ1ZGR5KHN0cnVjdCBwYWdl
ICpwYWdlKSB7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VCdWRkeShwYWdlKSkpKSk7IHBh
Z2UtPnBhZ2VfdHlwZSB8PSAweDAwMDAwMDgwOyB9CiMgNzY1ICIuL2luY2x1ZGUvbGludXgvcGFn
ZS1mbGFncy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlT2Zm
bGluZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gKChwYWdlLT5wYWdlX3R5cGUgJiAoMHhm
MDAwMDAwMCB8IDB4MDAwMDAxMDApKSA9PSAweGYwMDAwMDAwKTsgfSBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlT2ZmbGluZShzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAw
MDAwIHwgMCkpID09IDB4ZjAwMDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAw
MTAwOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFn
ZU9mZmxpbmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFn
ZU9mZmxpbmUocGFnZSkpKSkpOyBwYWdlLT5wYWdlX3R5cGUgfD0gMHgwMDAwMDEwMDsgfQoKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VLbWVtY2coc3RydWN0
IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuICgocGFnZS0+cGFnZV90eXBlICYgKDB4ZjAwMDAwMDAgfCAw
eDAwMDAwMjAwKSkgPT0gMHhmMDAwMDAwMCk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkIF9fU2V0UGFnZUttZW1jZyhzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwgMCkpID09
IDB4ZjAwMDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAwMjAwOyB9IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUttZW1jZyhzdHJ1
Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlS21lbWNnKHBhZ2Up
KSkpKTsgcGFnZS0+cGFnZV90eXBlIHw9IDB4MDAwMDAyMDA7IH0KCgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VUYWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBy
ZXR1cm4gKChwYWdlLT5wYWdlX3R5cGUgJiAoMHhmMDAwMDAwMCB8IDB4MDAwMDA0MDApKSA9PSAw
eGYwMDAwMDAwKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19T
ZXRQYWdlVGFibGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgh
KChwYWdlLT5wYWdlX3R5cGUgJiAoMHhmMDAwMDAwMCB8IDApKSA9PSAweGYwMDAwMDAwKSkpKSk7
IHBhZ2UtPnBhZ2VfdHlwZSAmPSB+MHgwMDAwMDQwMDsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIHZvaWQgX19DbGVhclBhZ2VUYWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlVGFibGUocGFnZSkpKSkpOyBwYWdlLT5wYWdlX3R5
cGUgfD0gMHgwMDAwMDQwMDsgfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBpbnQgUGFnZUd1YXJkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiAoKHBhZ2UtPnBhZ2Vf
dHlwZSAmICgweGYwMDAwMDAwIHwgMHgwMDAwMDgwMCkpID09IDB4ZjAwMDAwMDApOyB9IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX1NldFBhZ2VHdWFyZChzdHJ1Y3Qg
cGFnZSAqcGFnZSkgeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAm
ICgweGYwMDAwMDAwIHwgMCkpID09IDB4ZjAwMDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9
IH4weDAwMDAwODAwOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBf
X0NsZWFyUGFnZUd1YXJkKHN0cnVjdCBwYWdlICpwYWdlKSB7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoIVBhZ2VHdWFyZChwYWdlKSkpKSk7IHBhZ2UtPnBhZ2VfdHlwZSB8PSAweDAwMDAwODAwOyB9
CgpleHRlcm4gYm9vbCBpc19mcmVlX2J1ZGR5X3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpOwoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUlzb2xhdGVkKHN0cnVjdCBw
YWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19pc29sYXRlZCwgJih7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlSXNvbGF0ZWQo
c3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19zZXRfYml0KFBHX2lzb2xhdGVkLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KS0+ZmxhZ3MpOyB9
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUlzb2xh
dGVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX2lzb2xhdGVkLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KS0+Zmxh
Z3MpOyB9OwoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBQYWdlU2xhYlBmbWVtYWxsb2Moc3RydWN0IHBhZ2UgKnBhZ2UpCnsK
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VTbGFiKHBhZ2UpKSkpKTsKIHJldHVybiBQYWdl
QWN0aXZlKHBhZ2UpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIFNldFBhZ2VTbGFiUGZtZW1hbGxvYyhzdHJ1Y3QgcGFnZSAq
cGFnZSkKewogKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFnZVNsYWIocGFnZSkpKSkpOwogU2V0
UGFnZUFjdGl2ZShwYWdlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX0NsZWFyUGFnZVNsYWJQZm1lbWFsbG9jKHN0cnVj
dCBwYWdlICpwYWdlKQp7CiAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlU2xhYihwYWdlKSkp
KSk7CiBfX0NsZWFyUGFnZUFjdGl2ZShwYWdlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBDbGVhclBhZ2VTbGFiUGZtZW1h
bGxvYyhzdHJ1Y3QgcGFnZSAqcGFnZSkKewogKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFnZVNs
YWIocGFnZSkpKSkpOwogQ2xlYXJQYWdlQWN0aXZlKHBhZ2UpOwp9CiMgODUyICIuL2luY2x1ZGUv
bGludXgvcGFnZS1mbGFncy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGFnZV9oYXNfcHJpdmF0ZShzdHJ1Y3QgcGFnZSAqcGFn
ZSkKewogcmV0dXJuICEhKHBhZ2UtPmZsYWdzICYgKDFVTCA8PCBQR19wcml2YXRlIHwgMVVMIDw8
IFBHX3ByaXZhdGVfMikpOwp9CiMgMjMgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgojIDQx
ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCmVudW0gbWlncmF0ZXR5cGUgewogTUlHUkFURV9V
Tk1PVkFCTEUsCiBNSUdSQVRFX01PVkFCTEUsCiBNSUdSQVRFX1JFQ0xBSU1BQkxFLAogTUlHUkFU
RV9QQ1BUWVBFUywKIE1JR1JBVEVfSElHSEFUT01JQyA9IE1JR1JBVEVfUENQVFlQRVMsCiMgNjQg
Ii4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKIE1JR1JBVEVfSVNPTEFURSwKCiBNSUdSQVRFX1RZ
UEVTCn07CgoKZXh0ZXJuIGNvbnN0IGNoYXIgKiBjb25zdCBtaWdyYXRldHlwZV9uYW1lc1tNSUdS
QVRFX1RZUEVTXTsKIyA4MCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGlzX21pZ3Jh
dGVfbW92YWJsZShpbnQgbXQpCnsKIHJldHVybiBmYWxzZSB8fCBtdCA9PSBNSUdSQVRFX01PVkFC
TEU7Cn0KCgoKCgpleHRlcm4gaW50IHBhZ2VfZ3JvdXBfYnlfbW9iaWxpdHlfZGlzYWJsZWQ7CiMg
OTggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKc3RydWN0IGZyZWVfYXJlYSB7CiBzdHJ1Y3Qg
bGlzdF9oZWFkIGZyZWVfbGlzdFtNSUdSQVRFX1RZUEVTXTsKIHVuc2lnbmVkIGxvbmcgbnJfZnJl
ZTsKfTsKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGFkZF90b19mcmVlX2FyZWEoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCBm
cmVlX2FyZWEgKmFyZWEsCiAgICAgICAgaW50IG1pZ3JhdGV0eXBlKQp7CiBsaXN0X2FkZCgmcGFn
ZS0+bHJ1LCAmYXJlYS0+ZnJlZV9saXN0W21pZ3JhdGV0eXBlXSk7CiBhcmVhLT5ucl9mcmVlKys7
Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGFkZF90b19mcmVlX2FyZWFfdGFpbChzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0
IGZyZWVfYXJlYSAqYXJlYSwKICAgICAgaW50IG1pZ3JhdGV0eXBlKQp7CiBsaXN0X2FkZF90YWls
KCZwYWdlLT5scnUsICZhcmVhLT5mcmVlX2xpc3RbbWlncmF0ZXR5cGVdKTsKIGFyZWEtPm5yX2Zy
ZWUrKzsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGFkZF90b19mcmVlX2FyZWFfcmFuZG9tKHN0cnVjdCBwYWdlICpw
YWdlLAogIHN0cnVjdCBmcmVlX2FyZWEgKmFyZWEsIGludCBtaWdyYXRldHlwZSkKewogYWRkX3Rv
X2ZyZWVfYXJlYShwYWdlLCBhcmVhLCBtaWdyYXRldHlwZSk7Cn0KCgoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtb3ZlX3RvX2Zy
ZWVfYXJlYShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGZyZWVfYXJlYSAqYXJlYSwKICAgICAg
ICBpbnQgbWlncmF0ZXR5cGUpCnsKIGxpc3RfbW92ZSgmcGFnZS0+bHJ1LCAmYXJlYS0+ZnJlZV9s
aXN0W21pZ3JhdGV0eXBlXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBwYWdlICpnZXRfcGFnZV9mcm9tX2ZyZWVfYXJl
YShzdHJ1Y3QgZnJlZV9hcmVhICphcmVhLAogICAgICAgICBpbnQgbWlncmF0ZXR5cGUpCnsKIHJl
dHVybiAoeyBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkX18gPSAoJmFyZWEtPmZyZWVfbGlzdFttaWdy
YXRldHlwZV0pOyBzdHJ1Y3QgbGlzdF9oZWFkICpwb3NfXyA9ICh7IHVuaW9uIHsgdHlwZW9mKGhl
YWRfXy0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNl
X3NpemUoJihoZWFkX18tPm5leHQpLCBfX3UuX19jLCBzaXplb2YoaGVhZF9fLT5uZXh0KSk7IGVs
c2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoaGVhZF9fLT5uZXh0KSwgX191Ll9fYywgc2l6
ZW9mKGhlYWRfXy0+bmV4dCkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOyBwb3Nf
XyAhPSBoZWFkX18gPyAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKShwb3NfXyk7IGRvIHsgZXh0
ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMTQxKHZvaWQpIF9fYXR0cmlidXRlX18oKF9f
ZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYg
KCEoISghX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKihwb3NfXykpLCB0eXBl
b2YoKChzdHJ1Y3QgcGFnZSAqKTApLT5scnUpKSAmJiAhX19idWlsdGluX3R5cGVzX2NvbXBhdGli
bGVfcCh0eXBlb2YoKihwb3NfXykpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29tcGlsZXRpbWVfYXNz
ZXJ0XzE0MSgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgcGFnZSAqKShfX21wdHIgLSBfX2J1aWx0
aW5fb2Zmc2V0b2Yoc3RydWN0IHBhZ2UsIGxydSkpKTsgfSkgOiAoKHZvaWQgKikwKTsgfSkKICAg
ICAgICAgICAgICAgICAgICAgIDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWxfcGFnZV9mcm9tX2ZyZWVfYXJlYShzdHJ1
Y3QgcGFnZSAqcGFnZSwKICBzdHJ1Y3QgZnJlZV9hcmVhICphcmVhKQp7CiBsaXN0X2RlbCgmcGFn
ZS0+bHJ1KTsKIF9fQ2xlYXJQYWdlQnVkZHkocGFnZSk7CiAoKHBhZ2UpLT5wcml2YXRlID0gKDAp
KTsKIGFyZWEtPm5yX2ZyZWUtLTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBmcmVlX2FyZWFfZW1wdHkoc3RydWN0IGZyZWVf
YXJlYSAqYXJlYSwgaW50IG1pZ3JhdGV0eXBlKQp7CiByZXR1cm4gbGlzdF9lbXB0eSgmYXJlYS0+
ZnJlZV9saXN0W21pZ3JhdGV0eXBlXSk7Cn0KCnN0cnVjdCBwZ2xpc3RfZGF0YTsKIyAxNjggIi4v
aW5jbHVkZS9saW51eC9tbXpvbmUuaCIKc3RydWN0IHpvbmVfcGFkZGluZyB7CiBjaGFyIHhbMF07
Cn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMSA8PCAoNikpKSk7CiMgMTkwICIuL2luY2x1
ZGUvbGludXgvbW16b25lLmgiCmVudW0gem9uZV9zdGF0X2l0ZW0gewoKIE5SX0ZSRUVfUEFHRVMs
CiBOUl9aT05FX0xSVV9CQVNFLAogTlJfWk9ORV9JTkFDVElWRV9BTk9OID0gTlJfWk9ORV9MUlVf
QkFTRSwKIE5SX1pPTkVfQUNUSVZFX0FOT04sCiBOUl9aT05FX0lOQUNUSVZFX0ZJTEUsCiBOUl9a
T05FX0FDVElWRV9GSUxFLAogTlJfWk9ORV9VTkVWSUNUQUJMRSwKIE5SX1pPTkVfV1JJVEVfUEVO
RElORywKIE5SX01MT0NLLAogTlJfUEFHRVRBQkxFLAogTlJfS0VSTkVMX1NUQUNLX0tCLAoKIE5S
X0JPVU5DRSwKCiBOUl9aU1BBR0VTLAoKIE5SX0ZSRUVfQ01BX1BBR0VTLAogTlJfVk1fWk9ORV9T
VEFUX0lURU1TIH07CgplbnVtIG5vZGVfc3RhdF9pdGVtIHsKIE5SX0xSVV9CQVNFLAogTlJfSU5B
Q1RJVkVfQU5PTiA9IE5SX0xSVV9CQVNFLAogTlJfQUNUSVZFX0FOT04sCiBOUl9JTkFDVElWRV9G
SUxFLAogTlJfQUNUSVZFX0ZJTEUsCiBOUl9VTkVWSUNUQUJMRSwKIE5SX1NMQUJfUkVDTEFJTUFC
TEUsCiBOUl9TTEFCX1VOUkVDTEFJTUFCTEUsCiBOUl9JU09MQVRFRF9BTk9OLAogTlJfSVNPTEFU
RURfRklMRSwKIFdPUktJTkdTRVRfTk9ERVMsCiBXT1JLSU5HU0VUX1JFRkFVTFQsCiBXT1JLSU5H
U0VUX0FDVElWQVRFLAogV09SS0lOR1NFVF9SRVNUT1JFLAogV09SS0lOR1NFVF9OT0RFUkVDTEFJ
TSwKIE5SX0FOT05fTUFQUEVELAogTlJfRklMRV9NQVBQRUQsCgogTlJfRklMRV9QQUdFUywKIE5S
X0ZJTEVfRElSVFksCiBOUl9XUklURUJBQ0ssCiBOUl9XUklURUJBQ0tfVEVNUCwKIE5SX1NITUVN
LAogTlJfU0hNRU1fVEhQUywKIE5SX1NITUVNX1BNRE1BUFBFRCwKIE5SX0ZJTEVfVEhQUywKIE5S
X0ZJTEVfUE1ETUFQUEVELAogTlJfQU5PTl9USFBTLAogTlJfVU5TVEFCTEVfTkZTLAogTlJfVk1T
Q0FOX1dSSVRFLAogTlJfVk1TQ0FOX0lNTUVESUFURSwKIE5SX0RJUlRJRUQsCiBOUl9XUklUVEVO
LAogTlJfS0VSTkVMX01JU0NfUkVDTEFJTUFCTEUsCiBOUl9WTV9OT0RFX1NUQVRfSVRFTVMKfTsK
IyAyNjIgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKZW51bSBscnVfbGlzdCB7CiBMUlVfSU5B
Q1RJVkVfQU5PTiA9IDAsCiBMUlVfQUNUSVZFX0FOT04gPSAwICsgMSwKIExSVV9JTkFDVElWRV9G
SUxFID0gMCArIDIsCiBMUlVfQUNUSVZFX0ZJTEUgPSAwICsgMiArIDEsCiBMUlVfVU5FVklDVEFC
TEUsCiBOUl9MUlVfTElTVFMKfTsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGlzX2ZpbGVfbHJ1KGVudW0gbHJ1X2xpc3Qg
bHJ1KQp7CiByZXR1cm4gKGxydSA9PSBMUlVfSU5BQ1RJVkVfRklMRSB8fCBscnUgPT0gTFJVX0FD
VElWRV9GSUxFKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBpc19hY3RpdmVfbHJ1KGVudW0gbHJ1X2xpc3QgbHJ1KQp7CiBy
ZXR1cm4gKGxydSA9PSBMUlVfQUNUSVZFX0FOT04gfHwgbHJ1ID09IExSVV9BQ1RJVkVfRklMRSk7
Cn0KCnN0cnVjdCB6b25lX3JlY2xhaW1fc3RhdCB7CiMgMjk0ICIuL2luY2x1ZGUvbGludXgvbW16
b25lLmgiCiB1bnNpZ25lZCBsb25nIHJlY2VudF9yb3RhdGVkWzJdOwogdW5zaWduZWQgbG9uZyBy
ZWNlbnRfc2Nhbm5lZFsyXTsKfTsKCmVudW0gbHJ1dmVjX2ZsYWdzIHsKIExSVVZFQ19DT05HRVNU
RUQsCgoKfTsKCnN0cnVjdCBscnV2ZWMgewogc3RydWN0IGxpc3RfaGVhZCBsaXN0c1tOUl9MUlVf
TElTVFNdOwogc3RydWN0IHpvbmVfcmVjbGFpbV9zdGF0IHJlY2xhaW1fc3RhdDsKCiBhdG9taWNf
bG9uZ190IGluYWN0aXZlX2FnZTsKCiB1bnNpZ25lZCBsb25nIHJlZmF1bHRzOwoKIHVuc2lnbmVk
IGxvbmcgZmxhZ3M7Cgogc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdDsKCn07CiMgMzI2ICIuL2lu
Y2x1ZGUvbGludXgvbW16b25lLmgiCnR5cGVkZWYgdW5zaWduZWQgaXNvbGF0ZV9tb2RlX3Q7Cgpl
bnVtIHpvbmVfd2F0ZXJtYXJrcyB7CiBXTUFSS19NSU4sCiBXTUFSS19MT1csCiBXTUFSS19ISUdI
LAogTlJfV01BUksKfTsKCgoKCgoKc3RydWN0IHBlcl9jcHVfcGFnZXMgewogaW50IGNvdW50Owog
aW50IGhpZ2g7CiBpbnQgYmF0Y2g7CgoKIHN0cnVjdCBsaXN0X2hlYWQgbGlzdHNbTUlHUkFURV9Q
Q1BUWVBFU107Cn07CgpzdHJ1Y3QgcGVyX2NwdV9wYWdlc2V0IHsKIHN0cnVjdCBwZXJfY3B1X3Bh
Z2VzIHBjcDsKCgoKCgogczggc3RhdF90aHJlc2hvbGQ7CiBzOCB2bV9zdGF0X2RpZmZbTlJfVk1f
Wk9ORV9TVEFUX0lURU1TXTsKCn07CgpzdHJ1Y3QgcGVyX2NwdV9ub2Rlc3RhdCB7CiBzOCBzdGF0
X3RocmVzaG9sZDsKIHM4IHZtX25vZGVfc3RhdF9kaWZmW05SX1ZNX05PREVfU1RBVF9JVEVNU107
Cn07CgoKCmVudW0gem9uZV90eXBlIHsKIyA0MDAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIK
IFpPTkVfRE1BLAoKCiBaT05FX0RNQTMyLAoKCgoKCgogWk9ORV9OT1JNQUwsCiMgNDIyICIuL2lu
Y2x1ZGUvbGludXgvbW16b25lLmgiCiBaT05FX01PVkFCTEUsCgoKCiBfX01BWF9OUl9aT05FUwoK
fTsKCgoKc3RydWN0IHpvbmUgewoKCgogdW5zaWduZWQgbG9uZyBfd2F0ZXJtYXJrW05SX1dNQVJL
XTsKIHVuc2lnbmVkIGxvbmcgd2F0ZXJtYXJrX2Jvb3N0OwoKIHVuc2lnbmVkIGxvbmcgbnJfcmVz
ZXJ2ZWRfaGlnaGF0b21pYzsKIyA0NTAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKIGxvbmcg
bG93bWVtX3Jlc2VydmVbNF07CgoKCgogc3RydWN0IHBnbGlzdF9kYXRhICp6b25lX3BnZGF0Owog
c3RydWN0IHBlcl9jcHVfcGFnZXNldCAqcGFnZXNldDsKIyA0NjcgIi4vaW5jbHVkZS9saW51eC9t
bXpvbmUuaCIKIHVuc2lnbmVkIGxvbmcgem9uZV9zdGFydF9wZm47CiMgNTA0ICIuL2luY2x1ZGUv
bGludXgvbW16b25lLmgiCiBhdG9taWNfbG9uZ190IG1hbmFnZWRfcGFnZXM7CiB1bnNpZ25lZCBs
b25nIHNwYW5uZWRfcGFnZXM7CiB1bnNpZ25lZCBsb25nIHByZXNlbnRfcGFnZXM7CgogY29uc3Qg
Y2hhciAqbmFtZTsKCgoKCgoKCiB1bnNpZ25lZCBsb25nIG5yX2lzb2xhdGVfcGFnZWJsb2NrOwoK
CgoKIHNlcWxvY2tfdCBzcGFuX3NlcWxvY2s7CgoKIGludCBpbml0aWFsaXplZDsKCgogc3RydWN0
IHpvbmVfcGFkZGluZyBfcGFkMV87CgoKIHN0cnVjdCBmcmVlX2FyZWEgZnJlZV9hcmVhWzExXTsK
CgogdW5zaWduZWQgbG9uZyBmbGFnczsKCgogc3BpbmxvY2tfdCBsb2NrOwoKCiBzdHJ1Y3Qgem9u
ZV9wYWRkaW5nIF9wYWQyXzsKCgoKCgoKIHVuc2lnbmVkIGxvbmcgcGVyY3B1X2RyaWZ0X21hcms7
CgoKCiB1bnNpZ25lZCBsb25nIGNvbXBhY3RfY2FjaGVkX2ZyZWVfcGZuOwoKIHVuc2lnbmVkIGxv
bmcgY29tcGFjdF9jYWNoZWRfbWlncmF0ZV9wZm5bMl07CiB1bnNpZ25lZCBsb25nIGNvbXBhY3Rf
aW5pdF9taWdyYXRlX3BmbjsKIHVuc2lnbmVkIGxvbmcgY29tcGFjdF9pbml0X2ZyZWVfcGZuOwoj
IDU2MyAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgogdW5zaWduZWQgaW50IGNvbXBhY3RfY29u
c2lkZXJlZDsKIHVuc2lnbmVkIGludCBjb21wYWN0X2RlZmVyX3NoaWZ0OwogaW50IGNvbXBhY3Rf
b3JkZXJfZmFpbGVkOwoKCgoKIGJvb2wgY29tcGFjdF9ibG9ja3NraXBfZmx1c2g7CgoKIGJvb2wg
Y29udGlndW91czsKCiBzdHJ1Y3Qgem9uZV9wYWRkaW5nIF9wYWQzXzsKCiBhdG9taWNfbG9uZ190
IHZtX3N0YXRbTlJfVk1fWk9ORV9TVEFUX0lURU1TXTsKIGF0b21pY19sb25nX3Qgdm1fbnVtYV9z
dGF0WzBdOwp9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDEgPDwgKDYpKSkpOwoKZW51bSBw
Z2RhdF9mbGFncyB7CiBQR0RBVF9ESVJUWSwKCgoKIFBHREFUX1dSSVRFQkFDSywKCgogUEdEQVRf
UkVDTEFJTV9MT0NLRUQsCn07CgplbnVtIHpvbmVfZmxhZ3MgewogWk9ORV9CT09TVEVEX1dBVEVS
TUFSSywKCgp9OwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyB6b25lX21hbmFnZWRfcGFnZXMoc3RydWN0IHpvbmUg
KnpvbmUpCnsKIHJldHVybiAodW5zaWduZWQgbG9uZylhdG9taWNfbG9uZ19yZWFkKCZ6b25lLT5t
YW5hZ2VkX3BhZ2VzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyB6b25lX2VuZF9wZm4oY29uc3Qgc3RydWN0
IHpvbmUgKnpvbmUpCnsKIHJldHVybiB6b25lLT56b25lX3N0YXJ0X3BmbiArIHpvbmUtPnNwYW5u
ZWRfcGFnZXM7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgem9uZV9zcGFuc19wZm4oY29uc3Qgc3RydWN0IHpvbmUgKnpvbmUs
IHVuc2lnbmVkIGxvbmcgcGZuKQp7CiByZXR1cm4gem9uZS0+em9uZV9zdGFydF9wZm4gPD0gcGZu
ICYmIHBmbiA8IHpvbmVfZW5kX3Bmbih6b25lKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB6b25lX2lzX2luaXRpYWxpemVk
KHN0cnVjdCB6b25lICp6b25lKQp7CiByZXR1cm4gem9uZS0+aW5pdGlhbGl6ZWQ7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
em9uZV9pc19lbXB0eShzdHJ1Y3Qgem9uZSAqem9uZSkKewogcmV0dXJuIHpvbmUtPnNwYW5uZWRf
cGFnZXMgPT0gMDsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgem9uZV9pbnRlcnNlY3RzKHN0cnVjdCB6b25lICp6b25l
LAogIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKQp7CiBp
ZiAoem9uZV9pc19lbXB0eSh6b25lKSkKICByZXR1cm4gZmFsc2U7CiBpZiAoc3RhcnRfcGZuID49
IHpvbmVfZW5kX3Bmbih6b25lKSB8fAogICAgIHN0YXJ0X3BmbiArIG5yX3BhZ2VzIDw9IHpvbmUt
PnpvbmVfc3RhcnRfcGZuKQogIHJldHVybiBmYWxzZTsKCiByZXR1cm4gdHJ1ZTsKfQojIDY0OSAi
Li9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgplbnVtIHsKIFpPTkVMSVNUX0ZBTExCQUNLLAoKCgoK
CgoKIE1BWF9aT05FTElTVFMKfTsKCgoKCgpzdHJ1Y3Qgem9uZXJlZiB7CiBzdHJ1Y3Qgem9uZSAq
em9uZTsKIGludCB6b25lX2lkeDsKfTsKIyA2ODQgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIK
c3RydWN0IHpvbmVsaXN0IHsKIHN0cnVjdCB6b25lcmVmIF96b25lcmVmc1soKDEgPDwgMCkgKiA0
KSArIDFdOwp9OwoKCgpleHRlcm4gc3RydWN0IHBhZ2UgKm1lbV9tYXA7CgoKCnN0cnVjdCBkZWZl
cnJlZF9zcGxpdCB7CiBzcGlubG9ja190IHNwbGl0X3F1ZXVlX2xvY2s7CiBzdHJ1Y3QgbGlzdF9o
ZWFkIHNwbGl0X3F1ZXVlOwogdW5zaWduZWQgbG9uZyBzcGxpdF9xdWV1ZV9sZW47Cn07CiMgNzA5
ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCnN0cnVjdCBib290bWVtX2RhdGE7CnR5cGVkZWYg
c3RydWN0IHBnbGlzdF9kYXRhIHsKIHN0cnVjdCB6b25lIG5vZGVfem9uZXNbNF07CiBzdHJ1Y3Qg
em9uZWxpc3Qgbm9kZV96b25lbGlzdHNbTUFYX1pPTkVMSVNUU107CiBpbnQgbnJfem9uZXM7CiMg
NzMxICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCiBzcGlubG9ja190IG5vZGVfc2l6ZV9sb2Nr
OwoKIHVuc2lnbmVkIGxvbmcgbm9kZV9zdGFydF9wZm47CiB1bnNpZ25lZCBsb25nIG5vZGVfcHJl
c2VudF9wYWdlczsKIHVuc2lnbmVkIGxvbmcgbm9kZV9zcGFubmVkX3BhZ2VzOwoKIGludCBub2Rl
X2lkOwogd2FpdF9xdWV1ZV9oZWFkX3Qga3N3YXBkX3dhaXQ7CiB3YWl0X3F1ZXVlX2hlYWRfdCBw
Zm1lbWFsbG9jX3dhaXQ7CiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmtzd2FwZDsKCiBpbnQga3N3YXBk
X29yZGVyOwogZW51bSB6b25lX3R5cGUga3N3YXBkX2NsYXNzem9uZV9pZHg7CgogaW50IGtzd2Fw
ZF9mYWlsdXJlczsKCgogaW50IGtjb21wYWN0ZF9tYXhfb3JkZXI7CiBlbnVtIHpvbmVfdHlwZSBr
Y29tcGFjdGRfY2xhc3N6b25lX2lkeDsKIHdhaXRfcXVldWVfaGVhZF90IGtjb21wYWN0ZF93YWl0
Owogc3RydWN0IHRhc2tfc3RydWN0ICprY29tcGFjdGQ7CgoKCgoKIHVuc2lnbmVkIGxvbmcgdG90
YWxyZXNlcnZlX3BhZ2VzOwojIDc2OCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgogc3RydWN0
IHpvbmVfcGFkZGluZyBfcGFkMV87CiBzcGlubG9ja190IGxydV9sb2NrOwojIDc4MCAiLi9pbmNs
dWRlL2xpbnV4L21tem9uZS5oIgogc3RydWN0IGRlZmVycmVkX3NwbGl0IGRlZmVycmVkX3NwbGl0
X3F1ZXVlOwojIDc5MCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgogc3RydWN0IGxydXZlYyBf
X2xydXZlYzsKCiB1bnNpZ25lZCBsb25nIGZsYWdzOwoKIHN0cnVjdCB6b25lX3BhZGRpbmcgX3Bh
ZDJfOwoKCiBzdHJ1Y3QgcGVyX2NwdV9ub2Rlc3RhdCAqcGVyX2NwdV9ub2Rlc3RhdHM7CiBhdG9t
aWNfbG9uZ190IHZtX3N0YXRbTlJfVk1fTk9ERV9TVEFUX0lURU1TXTsKfSBwZ19kYXRhX3Q7CiMg
ODEzICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgcGdkYXRfZW5kX3Bm
bihwZ19kYXRhX3QgKnBnZGF0KQp7CiByZXR1cm4gcGdkYXQtPm5vZGVfc3RhcnRfcGZuICsgcGdk
YXQtPm5vZGVfc3Bhbm5lZF9wYWdlczsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwZ2RhdF9pc19lbXB0eShwZ19kYXRhX3Qg
KnBnZGF0KQp7CiByZXR1cm4gIXBnZGF0LT5ub2RlX3N0YXJ0X3BmbiAmJiAhcGdkYXQtPm5vZGVf
c3Bhbm5lZF9wYWdlczsKfQoKIyAxICIuL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIg
MQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDEKIyA2ICIuL2luY2x1ZGUvbGlu
dXgvbWVtb3J5X2hvdHBsdWcuaCIgMgoKIyAxICIuL2luY2x1ZGUvbGludXgvbm90aWZpZXIuaCIg
MQojIDE2ICIuL2luY2x1ZGUvbGludXgvbm90aWZpZXIuaCIKIyAxICIuL2luY2x1ZGUvbGludXgv
c3JjdS5oIiAxCiMgMjIgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L3JjdV9zZWdjYmxpc3QuaCIgMQojIDIxICIuL2luY2x1ZGUvbGludXgvcmN1X3NlZ2NibGlz
dC5oIgpzdHJ1Y3QgcmN1X2NibGlzdCB7CiBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZDsKIHN0
cnVjdCBjYWxsYmFja19oZWFkICoqdGFpbDsKIGxvbmcgbGVuOwp9OwojIDY2ICIuL2luY2x1ZGUv
bGludXgvcmN1X3NlZ2NibGlzdC5oIgpzdHJ1Y3QgcmN1X3NlZ2NibGlzdCB7CiBzdHJ1Y3QgY2Fs
bGJhY2tfaGVhZCAqaGVhZDsKIHN0cnVjdCBjYWxsYmFja19oZWFkICoqdGFpbHNbNF07CiB1bnNp
Z25lZCBsb25nIGdwX3NlcVs0XTsKCgoKIGxvbmcgbGVuOwoKIHU4IGVuYWJsZWQ7CiB1OCBvZmZs
b2FkZWQ7Cn07CiMgMjMgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiIDIKCnN0cnVjdCBzcmN1X3N0
cnVjdDsKIyA0MSAiLi9pbmNsdWRlL2xpbnV4L3NyY3UuaCIKaW50IGluaXRfc3JjdV9zdHJ1Y3Qo
c3RydWN0IHNyY3Vfc3RydWN0ICpzc3ApOwoKCgoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvc3Jj
dXRyZWUuaCIgMQojIDE0ICIuL2luY2x1ZGUvbGludXgvc3JjdXRyZWUuaCIKIyAxICIuL2luY2x1
ZGUvbGludXgvcmN1X25vZGVfdHJlZS5oIiAxCiMgMTUgIi4vaW5jbHVkZS9saW51eC9zcmN1dHJl
ZS5oIiAyCgoKc3RydWN0IHNyY3Vfbm9kZTsKc3RydWN0IHNyY3Vfc3RydWN0OwoKCgoKCnN0cnVj
dCBzcmN1X2RhdGEgewoKIHVuc2lnbmVkIGxvbmcgc3JjdV9sb2NrX2NvdW50WzJdOwogdW5zaWdu
ZWQgbG9uZyBzcmN1X3VubG9ja19jb3VudFsyXTsKCgogc3BpbmxvY2tfdCBsb2NrIF9fYXR0cmli
dXRlX18oKF9fYWxpZ25lZF9fKDEgPDwgKDYpKSkpOwogc3RydWN0IHJjdV9zZWdjYmxpc3Qgc3Jj
dV9jYmxpc3Q7CiB1bnNpZ25lZCBsb25nIHNyY3VfZ3Bfc2VxX25lZWRlZDsKIHVuc2lnbmVkIGxv
bmcgc3JjdV9ncF9zZXFfbmVlZGVkX2V4cDsKIGJvb2wgc3JjdV9jYmxpc3RfaW52b2tpbmc7CiBz
dHJ1Y3QgdGltZXJfbGlzdCBkZWxheV93b3JrOwogc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiBz
dHJ1Y3QgY2FsbGJhY2tfaGVhZCBzcmN1X2JhcnJpZXJfaGVhZDsKIHN0cnVjdCBzcmN1X25vZGUg
Km15bm9kZTsKIHVuc2lnbmVkIGxvbmcgZ3JwbWFzazsKCiBpbnQgY3B1Owogc3RydWN0IHNyY3Vf
c3RydWN0ICpzc3A7Cn07CgoKCgpzdHJ1Y3Qgc3JjdV9ub2RlIHsKIHNwaW5sb2NrX3QgbG9jazsK
IHVuc2lnbmVkIGxvbmcgc3JjdV9oYXZlX2Nic1s0XTsKCgogdW5zaWduZWQgbG9uZyBzcmN1X2Rh
dGFfaGF2ZV9jYnNbNF07CgogdW5zaWduZWQgbG9uZyBzcmN1X2dwX3NlcV9uZWVkZWRfZXhwOwog
c3RydWN0IHNyY3Vfbm9kZSAqc3JjdV9wYXJlbnQ7CiBpbnQgZ3JwbG87CiBpbnQgZ3JwaGk7Cn07
CgoKCgpzdHJ1Y3Qgc3JjdV9zdHJ1Y3Qgewogc3RydWN0IHNyY3Vfbm9kZSBub2RlWzFdOwogc3Ry
dWN0IHNyY3Vfbm9kZSAqbGV2ZWxbMSArIDFdOwoKIHN0cnVjdCBtdXRleCBzcmN1X2NiX211dGV4
Owogc3BpbmxvY2tfdCBsb2NrOwogc3RydWN0IG11dGV4IHNyY3VfZ3BfbXV0ZXg7CiB1bnNpZ25l
ZCBpbnQgc3JjdV9pZHg7CiB1bnNpZ25lZCBsb25nIHNyY3VfZ3Bfc2VxOwogdW5zaWduZWQgbG9u
ZyBzcmN1X2dwX3NlcV9uZWVkZWQ7CiB1bnNpZ25lZCBsb25nIHNyY3VfZ3Bfc2VxX25lZWRlZF9l
eHA7CiB1bnNpZ25lZCBsb25nIHNyY3VfbGFzdF9ncF9lbmQ7CiBzdHJ1Y3Qgc3JjdV9kYXRhICpz
ZGE7CiB1bnNpZ25lZCBsb25nIHNyY3VfYmFycmllcl9zZXE7CiBzdHJ1Y3QgbXV0ZXggc3JjdV9i
YXJyaWVyX211dGV4Owogc3RydWN0IGNvbXBsZXRpb24gc3JjdV9iYXJyaWVyX2NvbXBsZXRpb247
CgogYXRvbWljX3Qgc3JjdV9iYXJyaWVyX2NwdV9jbnQ7CgoKIHN0cnVjdCBkZWxheWVkX3dvcmsg
d29yazsKCgoKfTsKIyAxMzcgIi4vaW5jbHVkZS9saW51eC9zcmN1dHJlZS5oIgp2b2lkIHN5bmNo
cm9uaXplX3NyY3VfZXhwZWRpdGVkKHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKTsKdm9pZCBzcmN1
X2JhcnJpZXIoc3RydWN0IHNyY3Vfc3RydWN0ICpzc3ApOwp2b2lkIHNyY3VfdG9ydHVyZV9zdGF0
c19wcmludChzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCwgY2hhciAqdHQsIGNoYXIgKnRmKTsKIyA1
MCAiLi9pbmNsdWRlL2xpbnV4L3NyY3UuaCIgMgoKCgoKCgoKdm9pZCBjYWxsX3NyY3Uoc3RydWN0
IHNyY3Vfc3RydWN0ICpzc3AsIHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkLAogIHZvaWQgKCpm
dW5jKShzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZCkpOwp2b2lkIGNsZWFudXBfc3JjdV9zdHJ1
Y3Qoc3RydWN0IHNyY3Vfc3RydWN0ICpzc3ApOwppbnQgX19zcmN1X3JlYWRfbG9jayhzdHJ1Y3Qg
c3JjdV9zdHJ1Y3QgKnNzcCkgOwp2b2lkIF9fc3JjdV9yZWFkX3VubG9jayhzdHJ1Y3Qgc3JjdV9z
dHJ1Y3QgKnNzcCwgaW50IGlkeCkgOwp2b2lkIHN5bmNocm9uaXplX3NyY3Uoc3RydWN0IHNyY3Vf
c3RydWN0ICpzc3ApOwojIDkxICIuL2luY2x1ZGUvbGludXgvc3JjdS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc3JjdV9yZWFk
X2xvY2tfaGVsZChjb25zdCBzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCkKewogcmV0dXJuIDE7Cn0K
IyAxNTAgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBzcmN1X3JlYWRfbG9jayhzdHJ1Y3Qg
c3JjdV9zdHJ1Y3QgKnNzcCkKewogaW50IHJldHZhbDsKCiByZXR2YWwgPSBfX3NyY3VfcmVhZF9s
b2NrKHNzcCk7CiBkbyB7IH0gd2hpbGUgKDApOwogcmV0dXJuIHJldHZhbDsKfQoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKc3JjdV9yZWFkX2xvY2tfbm90cmFj
ZShzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCkKewogaW50IHJldHZhbDsKCiByZXR2YWwgPSBfX3Ny
Y3VfcmVhZF9sb2NrKHNzcCk7CiByZXR1cm4gcmV0dmFsOwp9CiMgMTc2ICIuL2luY2x1ZGUvbGlu
dXgvc3JjdS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHNyY3VfcmVhZF91bmxvY2soc3RydWN0IHNyY3Vfc3RydWN0ICpzc3As
IGludCBpZHgpCgp7CiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGlkeCAmIH4weDEpOyBpZiAo
X19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19p
bmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rp
b24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0
IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQj
IGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4i
ICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4i
ICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvc3JjdS5oIiksICJpIiAoMTc5
KSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0
cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0
IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxu
XHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDE1KSk7IH0pOyB9IHdoaWxlICgwKTsgX19i
dWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwogZG8geyB9IHdoaWxlICgw
KTsKIF9fc3JjdV9yZWFkX3VubG9jayhzc3AsIGlkeCk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApzcmN1X3JlYWRfdW5sb2NrX25vdHJhY2Uoc3RydWN0
IHNyY3Vfc3RydWN0ICpzc3AsIGludCBpZHgpCnsKIF9fc3JjdV9yZWFkX3VubG9jayhzc3AsIGlk
eCk7Cn0KIyAyMDAgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc21wX21iX19hZnRlcl9z
cmN1X3JlYWRfdW5sb2NrKHZvaWQpCnsKCn0KIyAxNyAiLi9pbmNsdWRlL2xpbnV4L25vdGlmaWVy
LmgiIDIKIyA0OSAiLi9pbmNsdWRlL2xpbnV4L25vdGlmaWVyLmgiCnN0cnVjdCBub3RpZmllcl9i
bG9jazsKCnR5cGVkZWYgaW50ICgqbm90aWZpZXJfZm5fdCkoc3RydWN0IG5vdGlmaWVyX2Jsb2Nr
ICpuYiwKICAgdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmRhdGEpOwoKc3RydWN0IG5vdGlm
aWVyX2Jsb2NrIHsKIG5vdGlmaWVyX2ZuX3Qgbm90aWZpZXJfY2FsbDsKIHN0cnVjdCBub3RpZmll
cl9ibG9jayAqbmV4dDsKIGludCBwcmlvcml0eTsKfTsKCnN0cnVjdCBhdG9taWNfbm90aWZpZXJf
aGVhZCB7CiBzcGlubG9ja190IGxvY2s7CiBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKmhlYWQ7Cn07
CgpzdHJ1Y3QgYmxvY2tpbmdfbm90aWZpZXJfaGVhZCB7CiBzdHJ1Y3Qgcndfc2VtYXBob3JlIHJ3
c2VtOwogc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpoZWFkOwp9OwoKc3RydWN0IHJhd19ub3RpZmll
cl9oZWFkIHsKIHN0cnVjdCBub3RpZmllcl9ibG9jayAqaGVhZDsKfTsKCnN0cnVjdCBzcmN1X25v
dGlmaWVyX2hlYWQgewogc3RydWN0IG11dGV4IG11dGV4Owogc3RydWN0IHNyY3Vfc3RydWN0IHNy
Y3U7CiBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKmhlYWQ7Cn07CiMgOTMgIi4vaW5jbHVkZS9saW51
eC9ub3RpZmllci5oIgpleHRlcm4gdm9pZCBzcmN1X2luaXRfbm90aWZpZXJfaGVhZChzdHJ1Y3Qg
c3JjdV9ub3RpZmllcl9oZWFkICpuaCk7CiMgMTQ0ICIuL2luY2x1ZGUvbGludXgvbm90aWZpZXIu
aCIKZXh0ZXJuIGludCBhdG9taWNfbm90aWZpZXJfY2hhaW5fcmVnaXN0ZXIoc3RydWN0IGF0b21p
Y19ub3RpZmllcl9oZWFkICpuaCwKICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTsKZXh0ZXJu
IGludCBibG9ja2luZ19ub3RpZmllcl9jaGFpbl9yZWdpc3RlcihzdHJ1Y3QgYmxvY2tpbmdfbm90
aWZpZXJfaGVhZCAqbmgsCiAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CmV4dGVybiBpbnQg
cmF3X25vdGlmaWVyX2NoYWluX3JlZ2lzdGVyKHN0cnVjdCByYXdfbm90aWZpZXJfaGVhZCAqbmgs
CiAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CmV4dGVybiBpbnQgc3JjdV9ub3RpZmllcl9j
aGFpbl9yZWdpc3RlcihzdHJ1Y3Qgc3JjdV9ub3RpZmllcl9oZWFkICpuaCwKICBzdHJ1Y3Qgbm90
aWZpZXJfYmxvY2sgKm5iKTsKCmV4dGVybiBpbnQgYXRvbWljX25vdGlmaWVyX2NoYWluX3VucmVn
aXN0ZXIoc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkICpuaCwKICBzdHJ1Y3Qgbm90aWZpZXJf
YmxvY2sgKm5iKTsKZXh0ZXJuIGludCBibG9ja2luZ19ub3RpZmllcl9jaGFpbl91bnJlZ2lzdGVy
KHN0cnVjdCBibG9ja2luZ19ub3RpZmllcl9oZWFkICpuaCwKICBzdHJ1Y3Qgbm90aWZpZXJfYmxv
Y2sgKm5iKTsKZXh0ZXJuIGludCByYXdfbm90aWZpZXJfY2hhaW5fdW5yZWdpc3RlcihzdHJ1Y3Qg
cmF3X25vdGlmaWVyX2hlYWQgKm5oLAogIHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpOwpleHRl
cm4gaW50IHNyY3Vfbm90aWZpZXJfY2hhaW5fdW5yZWdpc3RlcihzdHJ1Y3Qgc3JjdV9ub3RpZmll
cl9oZWFkICpuaCwKICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTsKCmV4dGVybiBpbnQgYXRv
bWljX25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkICpuaCwK
ICB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdik7CmV4dGVybiBpbnQgX19hdG9taWNfbm90aWZp
ZXJfY2FsbF9jaGFpbihzdHJ1Y3QgYXRvbWljX25vdGlmaWVyX2hlYWQgKm5oLAogdW5zaWduZWQg
bG9uZyB2YWwsIHZvaWQgKnYsIGludCBucl90b19jYWxsLCBpbnQgKm5yX2NhbGxzKTsKZXh0ZXJu
IGludCBibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKHN0cnVjdCBibG9ja2luZ19ub3RpZmll
cl9oZWFkICpuaCwKICB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdik7CmV4dGVybiBpbnQgX19i
bG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKHN0cnVjdCBibG9ja2luZ19ub3RpZmllcl9oZWFk
ICpuaCwKIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lkICp2LCBpbnQgbnJfdG9fY2FsbCwgaW50ICpu
cl9jYWxscyk7CmV4dGVybiBpbnQgcmF3X25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0IHJhd19u
b3RpZmllcl9oZWFkICpuaCwKICB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdik7CmV4dGVybiBp
bnQgX19yYXdfbm90aWZpZXJfY2FsbF9jaGFpbihzdHJ1Y3QgcmF3X25vdGlmaWVyX2hlYWQgKm5o
LAogdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKnYsIGludCBucl90b19jYWxsLCBpbnQgKm5yX2Nh
bGxzKTsKZXh0ZXJuIGludCBzcmN1X25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0IHNyY3Vfbm90
aWZpZXJfaGVhZCAqbmgsCiAgdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKnYpOwpleHRlcm4gaW50
IF9fc3JjdV9ub3RpZmllcl9jYWxsX2NoYWluKHN0cnVjdCBzcmN1X25vdGlmaWVyX2hlYWQgKm5o
LAogdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKnYsIGludCBucl90b19jYWxsLCBpbnQgKm5yX2Nh
bGxzKTsKIyAxOTAgIi4vaW5jbHVkZS9saW51eC9ub3RpZmllci5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbm90aWZpZXJfZnJv
bV9lcnJubyhpbnQgZXJyKQp7CiBpZiAoZXJyKQogIHJldHVybiAweDgwMDAgfCAoMHgwMDAxIC0g
ZXJyKTsKCiByZXR1cm4gMHgwMDAxOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG5vdGlmaWVyX3RvX2Vycm5vKGludCByZXQp
CnsKIHJldCAmPSB+MHg4MDAwOwogcmV0dXJuIHJldCA+IDB4MDAwMSA/IDB4MDAwMSAtIHJldCA6
IDA7Cn0KIyAyMzQgIi4vaW5jbHVkZS9saW51eC9ub3RpZmllci5oIgpleHRlcm4gc3RydWN0IGJs
b2NraW5nX25vdGlmaWVyX2hlYWQgcmVib290X25vdGlmaWVyX2xpc3Q7CiMgOCAiLi9pbmNsdWRl
L2xpbnV4L21lbW9yeV9ob3RwbHVnLmgiIDIKCgpzdHJ1Y3QgcGFnZTsKc3RydWN0IHpvbmU7CnN0
cnVjdCBwZ2xpc3RfZGF0YTsKc3RydWN0IG1lbV9zZWN0aW9uOwpzdHJ1Y3QgbWVtb3J5X2Jsb2Nr
OwpzdHJ1Y3QgcmVzb3VyY2U7CnN0cnVjdCB2bWVtX2FsdG1hcDsKIyA0MCAiLi9pbmNsdWRlL2xp
bnV4L21lbW9yeV9ob3RwbHVnLmgiCmVudW0gewogTUVNT1JZX0hPVFBMVUdfTUlOX0JPT1RNRU1f
VFlQRSA9IDEyLAogU0VDVElPTl9JTkZPID0gTUVNT1JZX0hPVFBMVUdfTUlOX0JPT1RNRU1fVFlQ
RSwKIE1JWF9TRUNUSU9OX0lORk8sCiBOT0RFX0lORk8sCiBNRU1PUllfSE9UUExVR19NQVhfQk9P
VE1FTV9UWVBFID0gTk9ERV9JTkZPLAp9OwoKCmVudW0gewogTU1PUF9PRkZMSU5FID0gLTEsCiBN
TU9QX09OTElORV9LRUVQLAogTU1PUF9PTkxJTkVfS0VSTkVMLAogTU1PUF9PTkxJTkVfTU9WQUJM
RSwKfTsKCgoKCgoKc3RydWN0IG1ocF9yZXN0cmljdGlvbnMgewogdW5zaWduZWQgbG9uZyBmbGFn
czsKIHN0cnVjdCB2bWVtX2FsdG1hcCAqYWx0bWFwOwp9OwojIDczICIuL2luY2x1ZGUvbGludXgv
bWVtb3J5X2hvdHBsdWcuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgem9uZV9zcGFuX3NlcWJlZ2luKHN0cnVjdCB6b25l
ICp6b25lKQp7CiByZXR1cm4gcmVhZF9zZXFiZWdpbigmem9uZS0+c3Bhbl9zZXFsb2NrKTsKfQpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgem9uZV9zcGFuX3NlcXJldHJ5KHN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25lZCBpdikKewog
cmV0dXJuIHJlYWRfc2VxcmV0cnkoJnpvbmUtPnNwYW5fc2VxbG9jaywgaXYpOwp9CnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgem9u
ZV9zcGFuX3dyaXRlbG9jayhzdHJ1Y3Qgem9uZSAqem9uZSkKewogd3JpdGVfc2VxbG9jaygmem9u
ZS0+c3Bhbl9zZXFsb2NrKTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHpvbmVfc3Bhbl93cml0ZXVubG9jayhzdHJ1Y3Qgem9u
ZSAqem9uZSkKewogd3JpdGVfc2VxdW5sb2NrKCZ6b25lLT5zcGFuX3NlcWxvY2spOwp9CnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
em9uZV9zZXFsb2NrX2luaXQoc3RydWN0IHpvbmUgKnpvbmUpCnsKIGRvIHsgX19zZXFjb3VudF9p
bml0KCYoJnpvbmUtPnNwYW5fc2VxbG9jayktPnNlcWNvdW50LCAoKHZvaWQgKikwKSwgKCh2b2lk
ICopMCkpOyBkbyB7IHNwaW5sb2NrX2NoZWNrKCYoJnpvbmUtPnNwYW5fc2VxbG9jayktPmxvY2sp
OyBkbyB7ICooJigmKCZ6b25lLT5zcGFuX3NlcWxvY2spLT5sb2NrKS0+cmxvY2spID0gKHJhd19z
cGlubG9ja190KSB7IC5yYXdfbG9jayA9IHsgeyAudmFsID0geyAoMCkgfSB9IH0sIH07IH0gd2hp
bGUgKDApOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7Cn0KZXh0ZXJuIGludCB6b25lX2dyb3df
ZnJlZV9saXN0cyhzdHJ1Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgbG9uZyBuZXdfbnJfcGFnZXMp
OwpleHRlcm4gaW50IHpvbmVfZ3Jvd193YWl0cXVldWVzKHN0cnVjdCB6b25lICp6b25lLCB1bnNp
Z25lZCBsb25nIG5yX3BhZ2VzKTsKZXh0ZXJuIGludCBhZGRfb25lX2hpZ2hwYWdlKHN0cnVjdCBw
YWdlICpwYWdlLCBpbnQgcGZuLCBpbnQgYmFkX3Bwcm8pOwoKZXh0ZXJuIGludCBvbmxpbmVfcGFn
ZXModW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCiAgIGludCBvbmxp
bmVfdHlwZSwgaW50IG5pZCk7CmV4dGVybiBzdHJ1Y3Qgem9uZSAqdGVzdF9wYWdlc19pbl9hX3pv
bmUodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCiAgICAgIHVuc2lnbmVkIGxvbmcgZW5kX3Bmbik7
CmV4dGVybiB1bnNpZ25lZCBsb25nIF9fb2ZmbGluZV9pc29sYXRlZF9wYWdlcyh1bnNpZ25lZCBs
b25nIHN0YXJ0X3BmbiwKICAgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKCnR5cGVkZWYgdm9p
ZCAoKm9ubGluZV9wYWdlX2NhbGxiYWNrX3QpKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBp
bnQgb3JkZXIpOwoKZXh0ZXJuIHZvaWQgZ2VuZXJpY19vbmxpbmVfcGFnZShzdHJ1Y3QgcGFnZSAq
cGFnZSwgdW5zaWduZWQgaW50IG9yZGVyKTsKZXh0ZXJuIGludCBzZXRfb25saW5lX3BhZ2VfY2Fs
bGJhY2sob25saW5lX3BhZ2VfY2FsbGJhY2tfdCBjYWxsYmFjayk7CmV4dGVybiBpbnQgcmVzdG9y
ZV9vbmxpbmVfcGFnZV9jYWxsYmFjayhvbmxpbmVfcGFnZV9jYWxsYmFja190IGNhbGxiYWNrKTsK
CmV4dGVybiBpbnQgdHJ5X29ubGluZV9ub2RlKGludCBuaWQpOwoKZXh0ZXJuIGludCBhcmNoX2Fk
ZF9tZW1vcnkoaW50IG5pZCwgdTY0IHN0YXJ0LCB1NjQgc2l6ZSwKICAgc3RydWN0IG1ocF9yZXN0
cmljdGlvbnMgKnJlc3RyaWN0aW9ucyk7CmV4dGVybiB1NjQgbWF4X21lbV9zaXplOwoKZXh0ZXJu
IGJvb2wgbWVtaHBfYXV0b19vbmxpbmU7CgpleHRlcm4gYm9vbCBtb3ZhYmxlX25vZGVfZW5hYmxl
ZDsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBtb3ZhYmxlX25vZGVfaXNfZW5hYmxlZCh2b2lkKQp7CiByZXR1cm4gbW92YWJsZV9u
b2RlX2VuYWJsZWQ7Cn0KCmV4dGVybiB2b2lkIGFyY2hfcmVtb3ZlX21lbW9yeShpbnQgbmlkLCB1
NjQgc3RhcnQsIHU2NCBzaXplLAogICAgICAgICAgc3RydWN0IHZtZW1fYWx0bWFwICphbHRtYXAp
OwpleHRlcm4gdm9pZCBfX3JlbW92ZV9wYWdlcyh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5z
aWduZWQgbG9uZyBucl9wYWdlcywKICAgICAgc3RydWN0IHZtZW1fYWx0bWFwICphbHRtYXApOwoK
CmV4dGVybiBpbnQgX19hZGRfcGFnZXMoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4s
IHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCiAgICAgICAgIHN0cnVjdCBtaHBfcmVzdHJpY3Rpb25z
ICpyZXN0cmljdGlvbnMpOwojIDE0MCAiLi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgi
CmludCBhZGRfcGFnZXMoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVk
IGxvbmcgbnJfcGFnZXMsCiAgICAgICBzdHJ1Y3QgbWhwX3Jlc3RyaWN0aW9ucyAqcmVzdHJpY3Rp
b25zKTsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgbWVtb3J5X2FkZF9waHlzYWRkcl90b19uaWQodTY0IHN0YXJ0KQp7CiBy
ZXR1cm4gMDsKfQojIDE5OSAiLi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBnX2Rh
dGFfdCAqZ2VuZXJpY19hbGxvY19ub2RlZGF0YShpbnQgbmlkKQp7CiBkbyB7IGRvIHsgYXNtIF9f
aW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0
aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJc
dCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0
IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxu
IiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xu
IiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgi
KSwgImkiICgyMDEpLCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9
IHdoaWxlICgwKTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9u
IC5kaXNjYXJkLnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIgOiA6ICJpIiAoMTYpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91
bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CiByZXR1cm4gKCh2b2lkICop
MCk7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBnZW5lcmljX2ZyZWVfbm9kZWRhdGEocGdfZGF0YV90ICpwZ2RhdCkKewp9CnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgYXJjaF9yZWZyZXNoX25vZGVkYXRhKGludCBuaWQsIHBnX2RhdGFfdCAqcGdkYXQpCnsKfQoK
CgoKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkp
IF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgcmVnaXN0ZXJfcGFnZV9ib290bWVtX2luZm9fbm9k
ZShzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0KTsKCgoKCgpleHRlcm4gdm9pZCBwdXRfcGFnZV9i
b290bWVtKHN0cnVjdCBwYWdlICpwYWdlKTsKZXh0ZXJuIHZvaWQgZ2V0X3BhZ2VfYm9vdG1lbSh1
bnNpZ25lZCBsb25nIGluZ28sIHN0cnVjdCBwYWdlICpwYWdlLAogICAgICAgIHVuc2lnbmVkIGxv
bmcgdHlwZSk7Cgp2b2lkIGdldF9vbmxpbmVfbWVtcyh2b2lkKTsKdm9pZCBwdXRfb25saW5lX21l
bXModm9pZCk7Cgp2b2lkIG1lbV9ob3RwbHVnX2JlZ2luKHZvaWQpOwp2b2lkIG1lbV9ob3RwbHVn
X2RvbmUodm9pZCk7CiMgMjgzICIuL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkKdm9p
ZCBwZ2RhdF9yZXNpemVfbG9jayhzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0LCB1bnNpZ25lZCBs
b25nICpmbGFncykKewogZG8geyBkbyB7ICh7IHVuc2lnbmVkIGxvbmcgX19kdW1teTsgdHlwZW9m
KCpmbGFncykgX19kdW1teTI7ICh2b2lkKSgmX19kdW1teSA9PSAmX19kdW1teTIpOyAxOyB9KTsg
KmZsYWdzID0gX3Jhd19zcGluX2xvY2tfaXJxc2F2ZShzcGlubG9ja19jaGVjaygmcGdkYXQtPm5v
ZGVfc2l6ZV9sb2NrKSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKfQpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQp2b2lkIHBnZGF0X3Jl
c2l6ZV91bmxvY2soc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdCwgdW5zaWduZWQgbG9uZyAqZmxh
Z3MpCnsKIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZGF0LT5ub2RlX3NpemVfbG9jaywgKmZs
YWdzKTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKQp2b2lkIHBnZGF0X3Jlc2l6ZV9pbml0KHN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQp
CnsKIGRvIHsgc3BpbmxvY2tfY2hlY2soJnBnZGF0LT5ub2RlX3NpemVfbG9jayk7IGRvIHsgKigm
KCZwZ2RhdC0+bm9kZV9zaXplX2xvY2spLT5ybG9jaykgPSAocmF3X3NwaW5sb2NrX3QpIHsgLnJh
d19sb2NrID0geyB7IC52YWwgPSB7ICgwKSB9IH0gfSwgfTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUg
KDApOwp9CiMgMzA5ICIuL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIKZXh0ZXJuIGJv
b2wgaXNfbWVtX3NlY3Rpb25fcmVtb3ZhYmxlKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBs
b25nIG5yX3BhZ2VzKTsKZXh0ZXJuIHZvaWQgdHJ5X29mZmxpbmVfbm9kZShpbnQgbmlkKTsKZXh0
ZXJuIGludCBvZmZsaW5lX3BhZ2VzKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBs
b25nIG5yX3BhZ2VzKTsKZXh0ZXJuIGludCByZW1vdmVfbWVtb3J5KGludCBuaWQsIHU2NCBzdGFy
dCwgdTY0IHNpemUpOwpleHRlcm4gdm9pZCBfX3JlbW92ZV9tZW1vcnkoaW50IG5pZCwgdTY0IHN0
YXJ0LCB1NjQgc2l6ZSk7CiMgMzM3ICIuL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIK
ZXh0ZXJuIHZvaWQgc2V0X3pvbmVfY29udGlndW91cyhzdHJ1Y3Qgem9uZSAqem9uZSk7CmV4dGVy
biB2b2lkIGNsZWFyX3pvbmVfY29udGlndW91cyhzdHJ1Y3Qgem9uZSAqem9uZSk7CgpleHRlcm4g
dm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLnJlZi50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX25vaW5saW5lX18pKSBmcmVlX2FyZWFfaW5pdF9jb3JlX2hvdHBsdWcoaW50IG5pZCk7
CmV4dGVybiBpbnQgX19hZGRfbWVtb3J5KGludCBuaWQsIHU2NCBzdGFydCwgdTY0IHNpemUpOwpl
eHRlcm4gaW50IGFkZF9tZW1vcnkoaW50IG5pZCwgdTY0IHN0YXJ0LCB1NjQgc2l6ZSk7CmV4dGVy
biBpbnQgYWRkX21lbW9yeV9yZXNvdXJjZShpbnQgbmlkLCBzdHJ1Y3QgcmVzb3VyY2UgKnJlc291
cmNlKTsKZXh0ZXJuIHZvaWQgbW92ZV9wZm5fcmFuZ2VfdG9fem9uZShzdHJ1Y3Qgem9uZSAqem9u
ZSwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCiAgdW5zaWduZWQgbG9uZyBucl9wYWdlcywgc3Ry
dWN0IHZtZW1fYWx0bWFwICphbHRtYXApOwpleHRlcm4gdm9pZCByZW1vdmVfcGZuX3JhbmdlX2Zy
b21fem9uZShzdHJ1Y3Qgem9uZSAqem9uZSwKICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0
X3BmbiwKICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKTsKZXh0ZXJuIGJvb2wgaXNf
bWVtYmxvY2tfb2ZmbGluZWQoc3RydWN0IG1lbW9yeV9ibG9jayAqbWVtKTsKZXh0ZXJuIGludCBz
cGFyc2VfYWRkX3NlY3Rpb24oaW50IG5pZCwgdW5zaWduZWQgbG9uZyBwZm4sCiAgdW5zaWduZWQg
bG9uZyBucl9wYWdlcywgc3RydWN0IHZtZW1fYWx0bWFwICphbHRtYXApOwpleHRlcm4gdm9pZCBz
cGFyc2VfcmVtb3ZlX3NlY3Rpb24oc3RydWN0IG1lbV9zZWN0aW9uICptcywKICB1bnNpZ25lZCBs
b25nIHBmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywKICB1bnNpZ25lZCBsb25nIG1hcF9vZmZz
ZXQsIHN0cnVjdCB2bWVtX2FsdG1hcCAqYWx0bWFwKTsKZXh0ZXJuIHN0cnVjdCBwYWdlICpzcGFy
c2VfZGVjb2RlX21lbV9tYXAodW5zaWduZWQgbG9uZyBjb2RlZF9tZW1fbWFwLAogICAgICAgdW5z
aWduZWQgbG9uZyBwbnVtKTsKZXh0ZXJuIGJvb2wgYWxsb3dfb25saW5lX3Bmbl9yYW5nZShpbnQg
bmlkLCB1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywKICBpbnQgb25s
aW5lX3R5cGUpOwpleHRlcm4gc3RydWN0IHpvbmUgKnpvbmVfZm9yX3Bmbl9yYW5nZShpbnQgb25s
aW5lX3R5cGUsIGludCBuaWQsIHVuc2lnbmVkIHN0YXJ0X3BmbiwKICB1bnNpZ25lZCBsb25nIG5y
X3BhZ2VzKTsKIyA4MjQgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgoKdm9pZCBidWlsZF9h
bGxfem9uZWxpc3RzKHBnX2RhdGFfdCAqcGdkYXQpOwp2b2lkIHdha2V1cF9rc3dhcGQoc3RydWN0
IHpvbmUgKnpvbmUsIGdmcF90IGdmcF9tYXNrLCBpbnQgb3JkZXIsCiAgICAgZW51bSB6b25lX3R5
cGUgY2xhc3N6b25lX2lkeCk7CmJvb2wgX196b25lX3dhdGVybWFya19vayhzdHJ1Y3Qgem9uZSAq
eiwgdW5zaWduZWQgaW50IG9yZGVyLCB1bnNpZ25lZCBsb25nIG1hcmssCiAgICBpbnQgY2xhc3N6
b25lX2lkeCwgdW5zaWduZWQgaW50IGFsbG9jX2ZsYWdzLAogICAgbG9uZyBmcmVlX3BhZ2VzKTsK
Ym9vbCB6b25lX3dhdGVybWFya19vayhzdHJ1Y3Qgem9uZSAqeiwgdW5zaWduZWQgaW50IG9yZGVy
LAogIHVuc2lnbmVkIGxvbmcgbWFyaywgaW50IGNsYXNzem9uZV9pZHgsCiAgdW5zaWduZWQgaW50
IGFsbG9jX2ZsYWdzKTsKYm9vbCB6b25lX3dhdGVybWFya19va19zYWZlKHN0cnVjdCB6b25lICp6
LCB1bnNpZ25lZCBpbnQgb3JkZXIsCiAgdW5zaWduZWQgbG9uZyBtYXJrLCBpbnQgY2xhc3N6b25l
X2lkeCk7CmVudW0gbWVtbWFwX2NvbnRleHQgewogTUVNTUFQX0VBUkxZLAogTUVNTUFQX0hPVFBM
VUcsCn07CmV4dGVybiB2b2lkIGluaXRfY3VycmVudGx5X2VtcHR5X3pvbmUoc3RydWN0IHpvbmUg
KnpvbmUsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAogICAgICAgICB1bnNpZ25lZCBsb25nIHNp
emUpOwoKZXh0ZXJuIHZvaWQgbHJ1dmVjX2luaXQoc3RydWN0IGxydXZlYyAqbHJ1dmVjKTsKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0
cnVjdCBwZ2xpc3RfZGF0YSAqbHJ1dmVjX3BnZGF0KHN0cnVjdCBscnV2ZWMgKmxydXZlYykKewoK
IHJldHVybiBscnV2ZWMtPnBnZGF0OwoKCgp9CgpleHRlcm4gdW5zaWduZWQgbG9uZyBscnV2ZWNf
bHJ1X3NpemUoc3RydWN0IGxydXZlYyAqbHJ1dmVjLCBlbnVtIGxydV9saXN0IGxydSwgaW50IHpv
bmVfaWR4KTsKCgp2b2lkIG1lbW9yeV9wcmVzZW50KGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3Rh
cnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKCgoKCgp2b2lkIG1lbWJsb2Nrc19wcmVzZW50KHZvaWQp
OwoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IGxvY2FsX21lbW9yeV9ub2RlKGludCBub2RlX2lkKSB7IHJldHVybiBub2Rl
X2lkOyB9OwojIDg4NSAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIG1hbmFnZWRfem9u
ZShzdHJ1Y3Qgem9uZSAqem9uZSkKewogcmV0dXJuIHpvbmVfbWFuYWdlZF9wYWdlcyh6b25lKTsK
fQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgcG9wdWxhdGVkX3pvbmUoc3RydWN0IHpvbmUgKnpvbmUpCnsKIHJldHVybiB6b25l
LT5wcmVzZW50X3BhZ2VzOwp9CiMgOTA3ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB6
b25lX3RvX25pZChzdHJ1Y3Qgem9uZSAqem9uZSkKewogcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgem9uZV9z
ZXRfbmlkKHN0cnVjdCB6b25lICp6b25lLCBpbnQgbmlkKSB7fQoKCmV4dGVybiBpbnQgbW92YWJs
ZV96b25lOwojIDkyOCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaXNfaGlnaG1lbV9p
ZHgoZW51bSB6b25lX3R5cGUgaWR4KQp7CgoKCgogcmV0dXJuIDA7Cgp9CgoKCgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaXNf
aGlnaG1lbShzdHJ1Y3Qgem9uZSAqem9uZSkKewoKCgogcmV0dXJuIDA7Cgp9CgoKc3RydWN0IGN0
bF90YWJsZTsKaW50IG1pbl9mcmVlX2tieXRlc19zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3Rh
YmxlICosIGludCwKICAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmludCB3YXRlcm1h
cmtfYm9vc3RfZmFjdG9yX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAog
ICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKaW50IHdhdGVybWFya19zY2FsZV9mYWN0
b3Jfc3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCiAgICAgdm9pZCAqLCBz
aXplX3QgKiwgbG9mZl90ICopOwpleHRlcm4gaW50IHN5c2N0bF9sb3dtZW1fcmVzZXJ2ZV9yYXRp
b1s0XTsKaW50IGxvd21lbV9yZXNlcnZlX3JhdGlvX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxf
dGFibGUgKiwgaW50LAogICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKaW50IHBlcmNw
dV9wYWdlbGlzdF9mcmFjdGlvbl9zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICosIGlu
dCwKICAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmludCBzeXNjdGxfbWluX3VubWFw
cGVkX3JhdGlvX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAogICB2b2lk
ICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmludCBzeXNjdGxfbWluX3NsYWJfcmF0aW9fc3lzY3Rs
X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCiAgIHZvaWQgKiwgc2l6ZV90ICosIGxv
ZmZfdCAqKTsKCmV4dGVybiBpbnQgbnVtYV96b25lbGlzdF9vcmRlcl9oYW5kbGVyKHN0cnVjdCBj
dGxfdGFibGUgKiwgaW50LAogICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmV4dGVybiBj
aGFyIG51bWFfem9uZWxpc3Rfb3JkZXJbXTsKCgoKCmV4dGVybiBzdHJ1Y3QgcGdsaXN0X2RhdGEg
Y29udGlnX3BhZ2VfZGF0YTsKIyA5ODggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKZXh0ZXJu
IHN0cnVjdCBwZ2xpc3RfZGF0YSAqZmlyc3Rfb25saW5lX3BnZGF0KHZvaWQpOwpleHRlcm4gc3Ry
dWN0IHBnbGlzdF9kYXRhICpuZXh0X29ubGluZV9wZ2RhdChzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBn
ZGF0KTsKZXh0ZXJuIHN0cnVjdCB6b25lICpuZXh0X3pvbmUoc3RydWN0IHpvbmUgKnpvbmUpOwoj
IDEwMjAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHpvbmUgKnpvbmVsaXN0X3pv
bmUoc3RydWN0IHpvbmVyZWYgKnpvbmVyZWYpCnsKIHJldHVybiB6b25lcmVmLT56b25lOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgem9uZWxpc3Rfem9uZV9pZHgoc3RydWN0IHpvbmVyZWYgKnpvbmVyZWYpCnsKIHJldHVybiB6
b25lcmVmLT56b25lX2lkeDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHpvbmVsaXN0X25vZGVfaWR4KHN0cnVjdCB6b25lcmVm
ICp6b25lcmVmKQp7CiByZXR1cm4gem9uZV90b19uaWQoem9uZXJlZi0+em9uZSk7Cn0KCnN0cnVj
dCB6b25lcmVmICpfX25leHRfem9uZXNfem9uZWxpc3Qoc3RydWN0IHpvbmVyZWYgKnosCiAgICAg
ZW51bSB6b25lX3R5cGUgaGlnaGVzdF96b25laWR4LAogICAgIG5vZGVtYXNrX3QgKm5vZGVzKTsK
IyAxMDUxICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgc3RydWN0IHpvbmVyZWYgKm5leHRfem9uZXNfem9uZWxpc3Qoc3RydWN0IHpv
bmVyZWYgKnosCiAgICAgZW51bSB6b25lX3R5cGUgaGlnaGVzdF96b25laWR4LAogICAgIG5vZGVt
YXNrX3QgKm5vZGVzKQp7CiBpZiAoX19idWlsdGluX2V4cGVjdCghISghbm9kZXMgJiYgem9uZWxp
c3Rfem9uZV9pZHgoeikgPD0gaGlnaGVzdF96b25laWR4KSwgMSkpCiAgcmV0dXJuIHo7CiByZXR1
cm4gX19uZXh0X3pvbmVzX3pvbmVsaXN0KHosIGhpZ2hlc3Rfem9uZWlkeCwgbm9kZXMpOwp9CiMg
MTA3NiAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qgem9uZXJlZiAqZmlyc3Rfem9u
ZXNfem9uZWxpc3Qoc3RydWN0IHpvbmVsaXN0ICp6b25lbGlzdCwKICAgICBlbnVtIHpvbmVfdHlw
ZSBoaWdoZXN0X3pvbmVpZHgsCiAgICAgbm9kZW1hc2tfdCAqbm9kZXMpCnsKIHJldHVybiBuZXh0
X3pvbmVzX3pvbmVsaXN0KHpvbmVsaXN0LT5fem9uZXJlZnMsCiAgICAgICBoaWdoZXN0X3pvbmVp
ZHgsIG5vZGVzKTsKfQojIDExNjAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQg
bG9uZyBwZm5fdG9fc2VjdGlvbl9ucih1bnNpZ25lZCBsb25nIHBmbikKewogcmV0dXJuIHBmbiA+
PiAoMjcgLSAxMik7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBzZWN0aW9uX25yX3RvX3Bmbih1bnNpZ25lZCBs
b25nIHNlYykKewogcmV0dXJuIHNlYyA8PCAoMjcgLSAxMik7Cn0KIyAxMTg3ICIuL2luY2x1ZGUv
bGludXgvbW16b25lLmgiCnN0cnVjdCBtZW1fc2VjdGlvbl91c2FnZSB7CiB1bnNpZ25lZCBsb25n
IHN1YnNlY3Rpb25fbWFwWygoKCgxVUwgPDwgKDI3IC0gMjEpKSkgKyAoKHNpemVvZihsb25nKSAq
IDgpKSAtIDEpIC8gKChzaXplb2YobG9uZykgKiA4KSkpXTsKCiB1bnNpZ25lZCBsb25nIHBhZ2Vi
bG9ja19mbGFnc1swXTsKfTsKCnZvaWQgc3Vic2VjdGlvbl9tYXBfaW5pdCh1bnNpZ25lZCBsb25n
IHBmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdlcyk7CgpzdHJ1Y3QgcGFnZTsKc3RydWN0IHBhZ2Vf
ZXh0OwpzdHJ1Y3QgbWVtX3NlY3Rpb24gewojIDEyMTAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUu
aCIKIHVuc2lnbmVkIGxvbmcgc2VjdGlvbl9tZW1fbWFwOwoKIHN0cnVjdCBtZW1fc2VjdGlvbl91
c2FnZSAqdXNhZ2U7CgoKCgoKIHN0cnVjdCBwYWdlX2V4dCAqcGFnZV9leHQ7CiB1bnNpZ25lZCBs
b25nIHBhZDsKCgoKCgp9OwojIDEyMzggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKZXh0ZXJu
IHN0cnVjdCBtZW1fc2VjdGlvbiAqKm1lbV9zZWN0aW9uOwoKCgoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyAqc2Vj
dGlvbl90b191c2VtYXAoc3RydWN0IG1lbV9zZWN0aW9uICptcykKewogcmV0dXJuIG1zLT51c2Fn
ZS0+cGFnZWJsb2NrX2ZsYWdzOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgbWVtX3NlY3Rpb24gKl9fbnJfdG9fc2VjdGlv
bih1bnNpZ25lZCBsb25nIG5yKQp7CgogaWYgKCFtZW1fc2VjdGlvbikKICByZXR1cm4gKCh2b2lk
ICopMCk7CgogaWYgKCFtZW1fc2VjdGlvblsoKG5yKSAvICgoKDFVTCkgPDwgMTIpIC8gc2l6ZW9m
IChzdHJ1Y3QgbWVtX3NlY3Rpb24pKSldKQogIHJldHVybiAoKHZvaWQgKikwKTsKIHJldHVybiAm
bWVtX3NlY3Rpb25bKChucikgLyAoKCgxVUwpIDw8IDEyKSAvIHNpemVvZiAoc3RydWN0IG1lbV9z
ZWN0aW9uKSkpXVtuciAmICgoKCgxVUwpIDw8IDEyKSAvIHNpemVvZiAoc3RydWN0IG1lbV9zZWN0
aW9uKSkgLSAxKV07Cn0KZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19zZWN0aW9uX25yKHN0cnVjdCBt
ZW1fc2VjdGlvbiAqbXMpOwpleHRlcm4gc2l6ZV90IG1lbV9zZWN0aW9uX3VzYWdlX3NpemUodm9p
ZCk7CiMgMTI4MiAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgcGFnZSAqX19zZWN0
aW9uX21lbV9tYXBfYWRkcihzdHJ1Y3QgbWVtX3NlY3Rpb24gKnNlY3Rpb24pCnsKIHVuc2lnbmVk
IGxvbmcgbWFwID0gc2VjdGlvbi0+c2VjdGlvbl9tZW1fbWFwOwogbWFwICY9ICh+KCgxVUw8PDQp
LTEpKTsKIHJldHVybiAoc3RydWN0IHBhZ2UgKiltYXA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwcmVzZW50X3NlY3Rpb24o
c3RydWN0IG1lbV9zZWN0aW9uICpzZWN0aW9uKQp7CiByZXR1cm4gKHNlY3Rpb24gJiYgKHNlY3Rp
b24tPnNlY3Rpb25fbWVtX21hcCAmICgxVUw8PDApKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwcmVzZW50X3NlY3Rpb25f
bnIodW5zaWduZWQgbG9uZyBucikKewogcmV0dXJuIHByZXNlbnRfc2VjdGlvbihfX25yX3RvX3Nl
Y3Rpb24obnIpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHZhbGlkX3NlY3Rpb24oc3RydWN0IG1lbV9zZWN0aW9uICpzZWN0
aW9uKQp7CiByZXR1cm4gKHNlY3Rpb24gJiYgKHNlY3Rpb24tPnNlY3Rpb25fbWVtX21hcCAmICgx
VUw8PDEpKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBlYXJseV9zZWN0aW9uKHN0cnVjdCBtZW1fc2VjdGlvbiAqc2VjdGlv
bikKewogcmV0dXJuIChzZWN0aW9uICYmIChzZWN0aW9uLT5zZWN0aW9uX21lbV9tYXAgJiAoMVVM
PDwzKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgdmFsaWRfc2VjdGlvbl9ucih1bnNpZ25lZCBsb25nIG5yKQp7CiByZXR1
cm4gdmFsaWRfc2VjdGlvbihfX25yX3RvX3NlY3Rpb24obnIpKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG9ubGluZV9zZWN0
aW9uKHN0cnVjdCBtZW1fc2VjdGlvbiAqc2VjdGlvbikKewogcmV0dXJuIChzZWN0aW9uICYmIChz
ZWN0aW9uLT5zZWN0aW9uX21lbV9tYXAgJiAoMVVMPDwyKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgb25saW5lX3NlY3Rp
b25fbnIodW5zaWduZWQgbG9uZyBucikKewogcmV0dXJuIG9ubGluZV9zZWN0aW9uKF9fbnJfdG9f
c2VjdGlvbihucikpOwp9CgoKdm9pZCBvbmxpbmVfbWVtX3NlY3Rpb25zKHVuc2lnbmVkIGxvbmcg
c3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwoKdm9pZCBvZmZsaW5lX21lbV9zZWN0
aW9ucyh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IG1lbV9zZWN0aW9uICpfX3Bmbl90b19zZWN0aW9uKHVuc2lnbmVkIGxvbmcgcGZuKQp7
CiByZXR1cm4gX19ucl90b19zZWN0aW9uKHBmbl90b19zZWN0aW9uX25yKHBmbikpOwp9CgpleHRl
cm4gdW5zaWduZWQgbG9uZyBfX2hpZ2hlc3RfcHJlc2VudF9zZWN0aW9uX25yOwoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHN1YnNl
Y3Rpb25fbWFwX2luZGV4KHVuc2lnbmVkIGxvbmcgcGZuKQp7CiByZXR1cm4gKHBmbiAmIH4oKH4o
KDFVTCA8PCAoMjcgLSAxMikpLTEpKSkpIC8gKDFVTCA8PCAoMjEgLSAxMikpOwp9CgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHBm
bl9zZWN0aW9uX3ZhbGlkKHN0cnVjdCBtZW1fc2VjdGlvbiAqbXMsIHVuc2lnbmVkIGxvbmcgcGZu
KQp7CiBpbnQgaWR4ID0gc3Vic2VjdGlvbl9tYXBfaW5kZXgocGZuKTsKCiByZXR1cm4gdGVzdF9i
aXQoaWR4LCBtcy0+dXNhZ2UtPnN1YnNlY3Rpb25fbWFwKTsKfQojIDEzNTggIi4vaW5jbHVkZS9s
aW51eC9tbXpvbmUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHBmbl92YWxpZCh1bnNpZ25lZCBsb25nIHBmbikKewogc3RydWN0
IG1lbV9zZWN0aW9uICptczsKCiBpZiAocGZuX3RvX3NlY3Rpb25fbnIocGZuKSA+PSAoMVVMIDw8
ICgoMCA/IDUyIDogNDYpIC0gMjcpKSkKICByZXR1cm4gMDsKIG1zID0gX19ucl90b19zZWN0aW9u
KHBmbl90b19zZWN0aW9uX25yKHBmbikpOwogaWYgKCF2YWxpZF9zZWN0aW9uKG1zKSkKICByZXR1
cm4gMDsKCgoKCiByZXR1cm4gZWFybHlfc2VjdGlvbihtcykgfHwgcGZuX3NlY3Rpb25fdmFsaWQo
bXMsIHBmbik7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgcGZuX3ByZXNlbnQodW5zaWduZWQgbG9uZyBwZm4pCnsKIGlmIChw
Zm5fdG9fc2VjdGlvbl9ucihwZm4pID49ICgxVUwgPDwgKCgwID8gNTIgOiA0NikgLSAyNykpKQog
IHJldHVybiAwOwogcmV0dXJuIHByZXNlbnRfc2VjdGlvbihfX25yX3RvX3NlY3Rpb24ocGZuX3Rv
X3NlY3Rpb25fbnIocGZuKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIG5leHRfcHJlc2VudF9zZWN0aW9u
X25yKHVuc2lnbmVkIGxvbmcgc2VjdGlvbl9ucikKewogd2hpbGUgKCsrc2VjdGlvbl9uciA8PSBf
X2hpZ2hlc3RfcHJlc2VudF9zZWN0aW9uX25yKSB7CiAgaWYgKHByZXNlbnRfc2VjdGlvbl9ucihz
ZWN0aW9uX25yKSkKICAgcmV0dXJuIHNlY3Rpb25fbnI7CiB9CgogcmV0dXJuIC0xOwp9CiMgMTQw
OCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgp2b2lkIHNwYXJzZV9pbml0KHZvaWQpOwojIDE0
MjEgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKc3RydWN0IG1taW5pdF9wZm5uaWRfY2FjaGUg
ewogdW5zaWduZWQgbG9uZyBsYXN0X3N0YXJ0OwogdW5zaWduZWQgbG9uZyBsYXN0X2VuZDsKIGlu
dCBsYXN0X25pZDsKfTsKCgoKCgp2b2lkIG1lbW9yeV9wcmVzZW50KGludCBuaWQsIHVuc2lnbmVk
IGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKIyAxNDY5ICIuL2luY2x1ZGUvbGludXgv
bW16b25lLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgbWVtbWFwX3ZhbGlkX3dpdGhpbih1bnNpZ25lZCBsb25nIHBmbiwKICAg
ICBzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHpvbmUgKnpvbmUpCnsKIHJldHVybiB0cnVlOwp9
CiMgNyAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIiAyCgoKIyAxICIuL2luY2x1ZGUvbGludXgvdG9w
b2xvZ3kuaCIgMQojIDMwICIuL2luY2x1ZGUvbGludXgvdG9wb2xvZ3kuaCIKIyAxICIuL2luY2x1
ZGUvbGludXgvYXJjaF90b3BvbG9neS5oIiAxCiMgOSAiLi9pbmNsdWRlL2xpbnV4L2FyY2hfdG9w
b2xvZ3kuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LmgiIDEKCgoKCgoKIyAxICIuL2lu
Y2x1ZGUvbGludXgvc21wLmgiIDEKIyAxNSAiLi9pbmNsdWRlL2xpbnV4L3NtcC5oIgojIDEgIi4v
aW5jbHVkZS9saW51eC9sbGlzdC5oIiAxCiMgNTQgIi4vaW5jbHVkZS9saW51eC9sbGlzdC5oIgpz
dHJ1Y3QgbGxpc3RfaGVhZCB7CiBzdHJ1Y3QgbGxpc3Rfbm9kZSAqZmlyc3Q7Cn07CgpzdHJ1Y3Qg
bGxpc3Rfbm9kZSB7CiBzdHJ1Y3QgbGxpc3Rfbm9kZSAqbmV4dDsKfTsKIyA2OSAiLi9pbmNsdWRl
L2xpbnV4L2xsaXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgaW5pdF9sbGlzdF9oZWFkKHN0cnVjdCBsbGlzdF9oZWFkICps
aXN0KQp7CiBsaXN0LT5maXJzdCA9ICgodm9pZCAqKTApOwp9CiMgMTg3ICIuL2luY2x1ZGUvbGlu
dXgvbGxpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBsbGlzdF9lbXB0eShjb25zdCBzdHJ1Y3QgbGxpc3RfaGVhZCAqaGVh
ZCkKewogcmV0dXJuICh7IHVuaW9uIHsgdHlwZW9mKGhlYWQtPmZpcnN0KSBfX3ZhbDsgY2hhciBf
X2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKGhlYWQtPmZpcnN0KSwgX191
Ll9fYywgc2l6ZW9mKGhlYWQtPmZpcnN0KSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNr
KCYoaGVhZC0+Zmlyc3QpLCBfX3UuX19jLCBzaXplb2YoaGVhZC0+Zmlyc3QpKTsgZG8geyB9IHdo
aWxlICgwKTsgX191Ll9fdmFsOyB9KSA9PSAoKHZvaWQgKikwKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGxsaXN0X25v
ZGUgKmxsaXN0X25leHQoc3RydWN0IGxsaXN0X25vZGUgKm5vZGUpCnsKIHJldHVybiBub2RlLT5u
ZXh0Owp9CgpleHRlcm4gYm9vbCBsbGlzdF9hZGRfYmF0Y2goc3RydWN0IGxsaXN0X25vZGUgKm5l
d19maXJzdCwKICAgICAgIHN0cnVjdCBsbGlzdF9ub2RlICpuZXdfbGFzdCwKICAgICAgIHN0cnVj
dCBsbGlzdF9oZWFkICpoZWFkKTsKCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgbGxpc3RfYWRkKHN0cnVjdCBsbGlzdF9u
b2RlICpuZXcsIHN0cnVjdCBsbGlzdF9oZWFkICpoZWFkKQp7CiByZXR1cm4gbGxpc3RfYWRkX2Jh
dGNoKG5ldywgbmV3LCBoZWFkKTsKfQojIDIyMCAiLi9pbmNsdWRlL2xpbnV4L2xsaXN0LmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0
cnVjdCBsbGlzdF9ub2RlICpsbGlzdF9kZWxfYWxsKHN0cnVjdCBsbGlzdF9oZWFkICpoZWFkKQp7
CiByZXR1cm4gKHsgdHlwZW9mKCZoZWFkLT5maXJzdCkgX19haV9wdHIgPSAoJmhlYWQtPmZpcnN0
KTsga2FzYW5fY2hlY2tfd3JpdGUoX19haV9wdHIsIHNpemVvZigqX19haV9wdHIpKTsgKHsgX190
eXBlb2ZfXyAoKigoX19haV9wdHIpKSkgX19yZXQgPSAoKCgodm9pZCAqKTApKSk7IHN3aXRjaCAo
c2l6ZW9mKCooKF9fYWlfcHRyKSkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgiIiAieGNoZyIg
ImIgJWIwLCAlMVxuIiA6ICIrcSIgKF9fcmV0KSwgIittIiAoKigoX19haV9wdHIpKSkgOiA6ICJt
ZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiIiAieGNoZyIgIncg
JXcwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoX19haV9wdHIpKSkgOiA6ICJtZW1v
cnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiIiAieGNoZyIgImwgJTAs
ICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKChfX2FpX3B0cikpKSA6IDogIm1lbW9yeSIs
ICJjYyIpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAicSAlcTAsICUx
XG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKChfX2FpX3B0cikpKSA6IDogIm1lbW9yeSIsICJj
YyIpOyBicmVhazsgZGVmYXVsdDogX194Y2hnX3dyb25nX3NpemUoKTsgfSBfX3JldDsgfSk7IH0p
Owp9CgpleHRlcm4gc3RydWN0IGxsaXN0X25vZGUgKmxsaXN0X2RlbF9maXJzdChzdHJ1Y3QgbGxp
c3RfaGVhZCAqaGVhZCk7CgpzdHJ1Y3QgbGxpc3Rfbm9kZSAqbGxpc3RfcmV2ZXJzZV9vcmRlcihz
dHJ1Y3QgbGxpc3Rfbm9kZSAqaGVhZCk7CiMgMTYgIi4vaW5jbHVkZS9saW51eC9zbXAuaCIgMgoK
dHlwZWRlZiB2b2lkICgqc21wX2NhbGxfZnVuY190KSh2b2lkICppbmZvKTsKdHlwZWRlZiBib29s
ICgqc21wX2NvbmRfZnVuY190KShpbnQgY3B1LCB2b2lkICppbmZvKTsKc3RydWN0IF9fY2FsbF9z
aW5nbGVfZGF0YSB7CiBzdHJ1Y3QgbGxpc3Rfbm9kZSBsbGlzdDsKIHNtcF9jYWxsX2Z1bmNfdCBm
dW5jOwogdm9pZCAqaW5mbzsKIHVuc2lnbmVkIGludCBmbGFnczsKfTsKCgp0eXBlZGVmIHN0cnVj
dCBfX2NhbGxfc2luZ2xlX2RhdGEgY2FsbF9zaW5nbGVfZGF0YV90CiBfX2F0dHJpYnV0ZV9fKChf
X2FsaWduZWRfXyhzaXplb2Yoc3RydWN0IF9fY2FsbF9zaW5nbGVfZGF0YSkpKSk7CgoKZXh0ZXJu
IHVuc2lnbmVkIGludCB0b3RhbF9jcHVzOwoKaW50IHNtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZShp
bnQgY3B1aWQsIHNtcF9jYWxsX2Z1bmNfdCBmdW5jLCB2b2lkICppbmZvLAogICAgICAgIGludCB3
YWl0KTsKCgoKCnZvaWQgb25fZWFjaF9jcHUoc21wX2NhbGxfZnVuY190IGZ1bmMsIHZvaWQgKmlu
Zm8sIGludCB3YWl0KTsKCgoKCgp2b2lkIG9uX2VhY2hfY3B1X21hc2soY29uc3Qgc3RydWN0IGNw
dW1hc2sgKm1hc2ssIHNtcF9jYWxsX2Z1bmNfdCBmdW5jLAogIHZvaWQgKmluZm8sIGJvb2wgd2Fp
dCk7CgoKCgoKCnZvaWQgb25fZWFjaF9jcHVfY29uZChzbXBfY29uZF9mdW5jX3QgY29uZF9mdW5j
LCBzbXBfY2FsbF9mdW5jX3QgZnVuYywKICAgICAgICB2b2lkICppbmZvLCBib29sIHdhaXQpOwoK
dm9pZCBvbl9lYWNoX2NwdV9jb25kX21hc2soc21wX2NvbmRfZnVuY190IGNvbmRfZnVuYywgc21w
X2NhbGxfZnVuY190IGZ1bmMsCiAgICAgIHZvaWQgKmluZm8sIGJvb2wgd2FpdCwgY29uc3Qgc3Ry
dWN0IGNwdW1hc2sgKm1hc2spOwoKaW50IHNtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZV9hc3luYyhp
bnQgY3B1LCBjYWxsX3NpbmdsZV9kYXRhX3QgKmNzZCk7CgoKCgoKCgojIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vc21wLmgiIDEKIyAxMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zbXAuaCIK
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlYy5oIiAxCgoKCgoKIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL21wc3BlY19kZWYuaCIgMQojIDIyICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL21wc3BlY19kZWYuaCIKc3RydWN0IG1wZl9pbnRlbCB7CiBjaGFyIHNpZ25hdHVyZVs0XTsK
IHVuc2lnbmVkIGludCBwaHlzcHRyOwogdW5zaWduZWQgY2hhciBsZW5ndGg7CiB1bnNpZ25lZCBj
aGFyIHNwZWNpZmljYXRpb247CiB1bnNpZ25lZCBjaGFyIGNoZWNrc3VtOwogdW5zaWduZWQgY2hh
ciBmZWF0dXJlMTsKIHVuc2lnbmVkIGNoYXIgZmVhdHVyZTI7CiB1bnNpZ25lZCBjaGFyIGZlYXR1
cmUzOwogdW5zaWduZWQgY2hhciBmZWF0dXJlNDsKIHVuc2lnbmVkIGNoYXIgZmVhdHVyZTU7Cn07
CgoKCnN0cnVjdCBtcGNfdGFibGUgewogY2hhciBzaWduYXR1cmVbNF07CiB1bnNpZ25lZCBzaG9y
dCBsZW5ndGg7CiBjaGFyIHNwZWM7CiBjaGFyIGNoZWNrc3VtOwogY2hhciBvZW1bOF07CiBjaGFy
IHByb2R1Y3RpZFsxMl07CiB1bnNpZ25lZCBpbnQgb2VtcHRyOwogdW5zaWduZWQgc2hvcnQgb2Vt
c2l6ZTsKIHVuc2lnbmVkIHNob3J0IG9lbWNvdW50OwogdW5zaWduZWQgaW50IGxhcGljOwogdW5z
aWduZWQgaW50IHJlc2VydmVkOwp9OwojIDY4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3Bl
Y19kZWYuaCIKc3RydWN0IG1wY19jcHUgewogdW5zaWduZWQgY2hhciB0eXBlOwogdW5zaWduZWQg
Y2hhciBhcGljaWQ7CiB1bnNpZ25lZCBjaGFyIGFwaWN2ZXI7CiB1bnNpZ25lZCBjaGFyIGNwdWZs
YWc7CiB1bnNpZ25lZCBpbnQgY3B1ZmVhdHVyZTsKIHVuc2lnbmVkIGludCBmZWF0dXJlZmxhZzsK
IHVuc2lnbmVkIGludCByZXNlcnZlZFsyXTsKfTsKCnN0cnVjdCBtcGNfYnVzIHsKIHVuc2lnbmVk
IGNoYXIgdHlwZTsKIHVuc2lnbmVkIGNoYXIgYnVzaWQ7CiB1bnNpZ25lZCBjaGFyIGJ1c3R5cGVb
Nl07Cn07CiMgMTA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlY19kZWYuaCIKc3RydWN0
IG1wY19pb2FwaWMgewogdW5zaWduZWQgY2hhciB0eXBlOwogdW5zaWduZWQgY2hhciBhcGljaWQ7
CiB1bnNpZ25lZCBjaGFyIGFwaWN2ZXI7CiB1bnNpZ25lZCBjaGFyIGZsYWdzOwogdW5zaWduZWQg
aW50IGFwaWNhZGRyOwp9OwoKc3RydWN0IG1wY19pbnRzcmMgewogdW5zaWduZWQgY2hhciB0eXBl
OwogdW5zaWduZWQgY2hhciBpcnF0eXBlOwogdW5zaWduZWQgc2hvcnQgaXJxZmxhZzsKIHVuc2ln
bmVkIGNoYXIgc3JjYnVzOwogdW5zaWduZWQgY2hhciBzcmNidXNpcnE7CiB1bnNpZ25lZCBjaGFy
IGRzdGFwaWM7CiB1bnNpZ25lZCBjaGFyIGRzdGlycTsKfTsKCmVudW0gbXBfaXJxX3NvdXJjZV90
eXBlcyB7CiBtcF9JTlQgPSAwLAogbXBfTk1JID0gMSwKIG1wX1NNSSA9IDIsCiBtcF9FeHRJTlQg
PSAzCn07CiMgMTQ1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlY19kZWYuaCIKc3RydWN0
IG1wY19saW50c3JjIHsKIHVuc2lnbmVkIGNoYXIgdHlwZTsKIHVuc2lnbmVkIGNoYXIgaXJxdHlw
ZTsKIHVuc2lnbmVkIHNob3J0IGlycWZsYWc7CiB1bnNpZ25lZCBjaGFyIHNyY2J1c2lkOwogdW5z
aWduZWQgY2hhciBzcmNidXNpcnE7CiB1bnNpZ25lZCBjaGFyIGRlc3RhcGljOwogdW5zaWduZWQg
Y2hhciBkZXN0YXBpY2xpbnQ7Cn07CgoKCnN0cnVjdCBtcGNfb2VtdGFibGUgewogY2hhciBzaWdu
YXR1cmVbNF07CiB1bnNpZ25lZCBzaG9ydCBsZW5ndGg7CiBjaGFyIHJldjsKIGNoYXIgY2hlY2tz
dW07CiBjaGFyIG1wY1s4XTsKfTsKIyAxNzcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVj
X2RlZi5oIgplbnVtIG1wX2J1c3R5cGUgewogTVBfQlVTX0lTQSA9IDEsCiBNUF9CVVNfRUlTQSwK
IE1QX0JVU19QQ0ksCn07CiMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tcHNwZWMuaCIgMgoj
IDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCIgMQoKCgoKCgpzdHJ1Y3QgbXBj
X2J1czsKc3RydWN0IG1wY19jcHU7CnN0cnVjdCBtcGNfdGFibGU7CnN0cnVjdCBjcHVpbmZvX3g4
NjsKIyAyMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgpzdHJ1Y3QgeDg2X2lu
aXRfbXBwYXJzZSB7CiB2b2lkICgqbXBjX3JlY29yZCkodW5zaWduZWQgaW50IG1vZGUpOwogdm9p
ZCAoKnNldHVwX2lvYXBpY19pZHMpKHZvaWQpOwogaW50ICgqbXBjX2FwaWNfaWQpKHN0cnVjdCBt
cGNfY3B1ICptKTsKIHZvaWQgKCpzbXBfcmVhZF9tcGNfb2VtKShzdHJ1Y3QgbXBjX3RhYmxlICpt
cGMpOwogdm9pZCAoKm1wY19vZW1fcGNpX2J1cykoc3RydWN0IG1wY19idXMgKm0pOwogdm9pZCAo
Km1wY19vZW1fYnVzX2luZm8pKHN0cnVjdCBtcGNfYnVzICptLCBjaGFyICpuYW1lKTsKIHZvaWQg
KCpmaW5kX3NtcF9jb25maWcpKHZvaWQpOwogdm9pZCAoKmdldF9zbXBfY29uZmlnKSh1bnNpZ25l
ZCBpbnQgZWFybHkpOwp9OwojIDQyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0Lmgi
CnN0cnVjdCB4ODZfaW5pdF9yZXNvdXJjZXMgewogdm9pZCAoKnByb2JlX3JvbXMpKHZvaWQpOwog
dm9pZCAoKnJlc2VydmVfcmVzb3VyY2VzKSh2b2lkKTsKIGNoYXIgKigqbWVtb3J5X3NldHVwKSh2
b2lkKTsKfTsKIyA1NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgpzdHJ1Y3Qg
eDg2X2luaXRfaXJxcyB7CiB2b2lkICgqcHJlX3ZlY3Rvcl9pbml0KSh2b2lkKTsKIHZvaWQgKCpp
bnRyX2luaXQpKHZvaWQpOwogdm9pZCAoKnRyYXBfaW5pdCkodm9pZCk7CiB2b2lkICgqaW50cl9t
b2RlX3NlbGVjdCkodm9pZCk7CiB2b2lkICgqaW50cl9tb2RlX2luaXQpKHZvaWQpOwp9OwoKCgoK
CgpzdHJ1Y3QgeDg2X2luaXRfb2VtIHsKIHZvaWQgKCphcmNoX3NldHVwKSh2b2lkKTsKIHZvaWQg
KCpiYW5uZXIpKHZvaWQpOwp9OwojIDgyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0
LmgiCnN0cnVjdCB4ODZfaW5pdF9wYWdpbmcgewogdm9pZCAoKnBhZ2V0YWJsZV9pbml0KSh2b2lk
KTsKfTsKIyA5MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgpzdHJ1Y3QgeDg2
X2luaXRfdGltZXJzIHsKIHZvaWQgKCpzZXR1cF9wZXJjcHVfY2xvY2tldikodm9pZCk7CiB2b2lk
ICgqdGltZXJfaW5pdCkodm9pZCk7CiB2b2lkICgqd2FsbGNsb2NrX2luaXQpKHZvaWQpOwp9OwoK
CgoKCnN0cnVjdCB4ODZfaW5pdF9pb21tdSB7CiBpbnQgKCppb21tdV9pbml0KSh2b2lkKTsKfTsK
IyAxMTQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCIKc3RydWN0IHg4Nl9pbml0
X3BjaSB7CiBpbnQgKCphcmNoX2luaXQpKHZvaWQpOwogaW50ICgqaW5pdCkodm9pZCk7CiB2b2lk
ICgqaW5pdF9pcnEpKHZvaWQpOwogdm9pZCAoKmZpeHVwX2lycXMpKHZvaWQpOwp9OwojIDEyOSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgpzdHJ1Y3QgeDg2X2h5cGVyX2luaXQg
ewogdm9pZCAoKmluaXRfcGxhdGZvcm0pKHZvaWQpOwogdm9pZCAoKmd1ZXN0X2xhdGVfaW5pdCko
dm9pZCk7CiBib29sICgqeDJhcGljX2F2YWlsYWJsZSkodm9pZCk7CiB2b2lkICgqaW5pdF9tZW1f
bWFwcGluZykodm9pZCk7CiB2b2lkICgqaW5pdF9hZnRlcl9ib290bWVtKSh2b2lkKTsKfTsKCgoK
CgoKCnN0cnVjdCB4ODZfaW5pdF9hY3BpIHsKIHZvaWQgKCpzZXRfcm9vdF9wb2ludGVyKSh1NjQg
YWRkcik7CiB1NjQgKCpnZXRfcm9vdF9wb2ludGVyKSh2b2lkKTsKIHZvaWQgKCpyZWR1Y2VkX2h3
X2Vhcmx5X2luaXQpKHZvaWQpOwp9OwoKCgoKCnN0cnVjdCB4ODZfaW5pdF9vcHMgewogc3RydWN0
IHg4Nl9pbml0X3Jlc291cmNlcyByZXNvdXJjZXM7CiBzdHJ1Y3QgeDg2X2luaXRfbXBwYXJzZSBt
cHBhcnNlOwogc3RydWN0IHg4Nl9pbml0X2lycXMgaXJxczsKIHN0cnVjdCB4ODZfaW5pdF9vZW0g
b2VtOwogc3RydWN0IHg4Nl9pbml0X3BhZ2luZyBwYWdpbmc7CiBzdHJ1Y3QgeDg2X2luaXRfdGlt
ZXJzIHRpbWVyczsKIHN0cnVjdCB4ODZfaW5pdF9pb21tdSBpb21tdTsKIHN0cnVjdCB4ODZfaW5p
dF9wY2kgcGNpOwogc3RydWN0IHg4Nl9oeXBlcl9pbml0IGh5cGVyOwogc3RydWN0IHg4Nl9pbml0
X2FjcGkgYWNwaTsKfTsKCgoKCgoKc3RydWN0IHg4Nl9jcHVpbml0X29wcyB7CiB2b2lkICgqc2V0
dXBfcGVyY3B1X2Nsb2NrZXYpKHZvaWQpOwogdm9pZCAoKmVhcmx5X3BlcmNwdV9jbG9ja19pbml0
KSh2b2lkKTsKIHZvaWQgKCpmaXh1cF9jcHVfaWQpKHN0cnVjdCBjcHVpbmZvX3g4NiAqYywgaW50
IG5vZGUpOwp9OwoKc3RydWN0IHRpbWVzcGVjNjQ7CiMgMTk4ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3g4Nl9pbml0LmgiCnN0cnVjdCB4ODZfbGVnYWN5X2RldmljZXMgewogaW50IHBucGJpb3M7
Cn07CiMgMjExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0LmgiCmVudW0geDg2X2xl
Z2FjeV9pODA0Ml9zdGF0ZSB7CiBYODZfTEVHQUNZX0k4MDQyX1BMQVRGT1JNX0FCU0VOVCwKIFg4
Nl9MRUdBQ1lfSTgwNDJfRklSTVdBUkVfQUJTRU5ULAogWDg2X0xFR0FDWV9JODA0Ml9FWFBFQ1RF
RF9QUkVTRU5ULAp9OwojIDIyOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgpz
dHJ1Y3QgeDg2X2xlZ2FjeV9mZWF0dXJlcyB7CiBlbnVtIHg4Nl9sZWdhY3lfaTgwNDJfc3RhdGUg
aTgwNDI7CiBpbnQgcnRjOwogaW50IHdhcm1fcmVzZXQ7CiBpbnQgbm9fdmdhOwogaW50IHJlc2Vy
dmVfYmlvc19yZWdpb25zOwogc3RydWN0IHg4Nl9sZWdhY3lfZGV2aWNlcyBkZXZpY2VzOwp9OwoK
CgoKCgpzdHJ1Y3QgeDg2X2h5cGVyX3J1bnRpbWUgewogdm9pZCAoKnBpbl92Y3B1KShpbnQgY3B1
KTsKfTsKIyAyNjggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCIKc3RydWN0IHg4
Nl9wbGF0Zm9ybV9vcHMgewogdW5zaWduZWQgbG9uZyAoKmNhbGlicmF0ZV9jcHUpKHZvaWQpOwog
dW5zaWduZWQgbG9uZyAoKmNhbGlicmF0ZV90c2MpKHZvaWQpOwogdm9pZCAoKmdldF93YWxsY2xv
Y2spKHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CiBpbnQgKCpzZXRfd2FsbGNsb2NrKShjb25zdCBz
dHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwogdm9pZCAoKmlvbW11X3NodXRkb3duKSh2b2lkKTsKIGJv
b2wgKCppc191bnRyYWNrZWRfcGF0X3JhbmdlKSh1NjQgc3RhcnQsIHU2NCBlbmQpOwogdm9pZCAo
Km5taV9pbml0KSh2b2lkKTsKIHVuc2lnbmVkIGNoYXIgKCpnZXRfbm1pX3JlYXNvbikodm9pZCk7
CiB2b2lkICgqc2F2ZV9zY2hlZF9jbG9ja19zdGF0ZSkodm9pZCk7CiB2b2lkICgqcmVzdG9yZV9z
Y2hlZF9jbG9ja19zdGF0ZSkodm9pZCk7CiB2b2lkICgqYXBpY19wb3N0X2luaXQpKHZvaWQpOwog
c3RydWN0IHg4Nl9sZWdhY3lfZmVhdHVyZXMgbGVnYWN5Owogdm9pZCAoKnNldF9sZWdhY3lfZmVh
dHVyZXMpKHZvaWQpOwogc3RydWN0IHg4Nl9oeXBlcl9ydW50aW1lIGh5cGVyOwp9OwoKc3RydWN0
IHBjaV9kZXY7CgpzdHJ1Y3QgeDg2X21zaV9vcHMgewogaW50ICgqc2V0dXBfbXNpX2lycXMpKHN0
cnVjdCBwY2lfZGV2ICpkZXYsIGludCBudmVjLCBpbnQgdHlwZSk7CiB2b2lkICgqdGVhcmRvd25f
bXNpX2lycSkodW5zaWduZWQgaW50IGlycSk7CiB2b2lkICgqdGVhcmRvd25fbXNpX2lycXMpKHN0
cnVjdCBwY2lfZGV2ICpkZXYpOwogdm9pZCAoKnJlc3RvcmVfbXNpX2lycXMpKHN0cnVjdCBwY2lf
ZGV2ICpkZXYpOwp9OwoKc3RydWN0IHg4Nl9hcGljX29wcyB7CiB1bnNpZ25lZCBpbnQgKCppb19h
cGljX3JlYWQpICh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZyk7CiB2b2lkICgq
cmVzdG9yZSkodm9pZCk7Cn07CgpleHRlcm4gc3RydWN0IHg4Nl9pbml0X29wcyB4ODZfaW5pdDsK
ZXh0ZXJuIHN0cnVjdCB4ODZfY3B1aW5pdF9vcHMgeDg2X2NwdWluaXQ7CmV4dGVybiBzdHJ1Y3Qg
eDg2X3BsYXRmb3JtX29wcyB4ODZfcGxhdGZvcm07CmV4dGVybiBzdHJ1Y3QgeDg2X21zaV9vcHMg
eDg2X21zaTsKZXh0ZXJuIHN0cnVjdCB4ODZfYXBpY19vcHMgeDg2X2FwaWNfb3BzOwoKZXh0ZXJu
IHZvaWQgeDg2X2Vhcmx5X2luaXRfcGxhdGZvcm1fcXVpcmtzKHZvaWQpOwpleHRlcm4gdm9pZCB4
ODZfaW5pdF9ub29wKHZvaWQpOwpleHRlcm4gdm9pZCB4ODZfaW5pdF91aW50X25vb3AodW5zaWdu
ZWQgaW50IHVudXNlZCk7CmV4dGVybiBib29sIGJvb2xfeDg2X2luaXRfbm9vcCh2b2lkKTsKZXh0
ZXJuIHZvaWQgeDg2X29wX2ludF9ub29wKGludCBjcHUpOwpleHRlcm4gYm9vbCB4ODZfcG5wYmlv
c19kaXNhYmxlZCh2b2lkKTsKIyA4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlYy5oIiAy
CiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljZGVmLmgiIDEKIyAxNzkgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vYXBpY2RlZi5oIgpzdHJ1Y3QgbG9jYWxfYXBpYyB7CgogICAgICAgIHN0
cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMDE7CgogICAg
ICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMDI7
CgogICAgICAgIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfMSA6IDI0LAogICBw
aHlzX2FwaWNfaWQgOiA0LAogICBfX3Jlc2VydmVkXzIgOiA0OwogIHVuc2lnbmVkIGludCBfX3Jl
c2VydmVkWzNdOwogfSBpZDsKCiAgICAgICAgY29uc3QKIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50
IHZlcnNpb24gOiA4LAogICBfX3Jlc2VydmVkXzEgOiA4LAogICBtYXhfbHZ0IDogOCwKICAgX19y
ZXNlcnZlZF8yIDogODsKICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFszXTsKIH0gdmVyc2lvbjsK
CiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZl
ZF8wMzsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19y
ZXNlcnZlZF8wNDsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07
IH0gX19yZXNlcnZlZF8wNTsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2
ZWRbNF07IH0gX19yZXNlcnZlZF8wNjsKCiAgICAgICAgc3RydWN0IHsKICB1bnNpZ25lZCBpbnQg
cHJpb3JpdHkgOiA4LAogICBfX3Jlc2VydmVkXzEgOiAyNDsKICB1bnNpZ25lZCBpbnQgX19yZXNl
cnZlZF8yWzNdOwogfSB0cHI7CgogICAgICAgIGNvbnN0CiBzdHJ1Y3QgewogIHVuc2lnbmVkIGlu
dCBwcmlvcml0eSA6IDgsCiAgIF9fcmVzZXJ2ZWRfMSA6IDI0OwogIHVuc2lnbmVkIGludCBfX3Jl
c2VydmVkXzJbM107CiB9IGFwcjsKCiAgICAgICAgY29uc3QKIHN0cnVjdCB7CiAgdW5zaWduZWQg
aW50IHByaW9yaXR5IDogOCwKICAgX19yZXNlcnZlZF8xIDogMjQ7CiAgdW5zaWduZWQgaW50IF9f
cmVzZXJ2ZWRfMlszXTsKIH0gcHByOwoKICAgICAgICBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCBl
b2k7CiAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbM107CiB9IGVvaTsKCiAgICAgICAgc3RydWN0
IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8wNzsKCiAgICAgICAg
c3RydWN0IHsKICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF8xIDogMjQsCiAgIGxvZ2ljYWxfZGVz
dCA6IDg7CiAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfMlszXTsKIH0gbGRyOwoKICAgICAgICBz
dHJ1Y3QgewogIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzEgOiAyOCwKICAgbW9kZWwgOiA0Owog
IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzJbM107CiB9IGRmcjsKCiAgICAgICAgc3RydWN0IHsK
ICB1bnNpZ25lZCBpbnQgc3B1cmlvdXNfdmVjdG9yIDogOCwKICAgYXBpY19lbmFibGVkIDogMSwK
ICAgZm9jdXNfY3B1IDogMSwKICAgX19yZXNlcnZlZF8yIDogMjI7CiAgdW5zaWduZWQgaW50IF9f
cmVzZXJ2ZWRfM1szXTsKIH0gc3ZyOwoKICAgICAgICBzdHJ1Y3QgewogICAgICAgICB1bnNpZ25l
ZCBpbnQgYml0ZmllbGQ7CiAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbM107CiB9IGlzciBbOF07
CgogICAgICAgIHN0cnVjdCB7CiAgICAgICAgIHVuc2lnbmVkIGludCBiaXRmaWVsZDsKICB1bnNp
Z25lZCBpbnQgX19yZXNlcnZlZFszXTsKIH0gdG1yIFs4XTsKCiAgICAgICAgc3RydWN0IHsKICAg
ICAgICAgdW5zaWduZWQgaW50IGJpdGZpZWxkOwogIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzNd
OwogfSBpcnIgWzhdOwoKICAgICAgICB1bmlvbiB7CiAgc3RydWN0IHsKICAgdW5zaWduZWQgaW50
IHNlbmRfY3NfZXJyb3IgOiAxLAogICAgcmVjZWl2ZV9jc19lcnJvciA6IDEsCiAgICBzZW5kX2Fj
Y2VwdF9lcnJvciA6IDEsCiAgICByZWNlaXZlX2FjY2VwdF9lcnJvciA6IDEsCiAgICBfX3Jlc2Vy
dmVkXzEgOiAxLAogICAgc2VuZF9pbGxlZ2FsX3ZlY3RvciA6IDEsCiAgICByZWNlaXZlX2lsbGVn
YWxfdmVjdG9yIDogMSwKICAgIGlsbGVnYWxfcmVnaXN0ZXJfYWRkcmVzcyA6IDEsCiAgICBfX3Jl
c2VydmVkXzIgOiAyNDsKICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfM1szXTsKICB9IGVycm9y
X2JpdHM7CiAgc3RydWN0IHsKICAgdW5zaWduZWQgaW50IGVycm9yczsKICAgdW5zaWduZWQgaW50
IF9fcmVzZXJ2ZWRfM1szXTsKICB9IGFsbF9lcnJvcnM7CiB9IGVzcjsKCiAgICAgICAgc3RydWN0
IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8wODsKCiAgICAgICAg
c3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8wOTsKCiAg
ICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8x
MDsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNl
cnZlZF8xMTsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0g
X19yZXNlcnZlZF8xMjsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRb
NF07IH0gX19yZXNlcnZlZF8xMzsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVz
ZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8xNDsKCiAgICAgICAgc3RydWN0IHsKICB1bnNpZ25lZCBp
bnQgdmVjdG9yIDogOCwKICAgZGVsaXZlcnlfbW9kZSA6IDMsCiAgIGRlc3RpbmF0aW9uX21vZGUg
OiAxLAogICBkZWxpdmVyeV9zdGF0dXMgOiAxLAogICBfX3Jlc2VydmVkXzEgOiAxLAogICBsZXZl
bCA6IDEsCiAgIHRyaWdnZXIgOiAxLAogICBfX3Jlc2VydmVkXzIgOiAyLAogICBzaG9ydGhhbmQg
OiAyLAogICBfX3Jlc2VydmVkXzMgOiAxMjsKICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF80WzNd
OwogfSBpY3IxOwoKICAgICAgICBzdHJ1Y3QgewogIHVuaW9uIHsKICAgdW5zaWduZWQgaW50IF9f
cmVzZXJ2ZWRfMSA6IDI0LAogICAgcGh5c19kZXN0IDogNCwKICAgIF9fcmVzZXJ2ZWRfMiA6IDQ7
CiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzMgOiAyNCwKICAgIGxvZ2ljYWxfZGVzdCA6IDg7
CiAgfSBkZXN0OwogIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzRbM107CiB9IGljcjI7CgogICAg
ICAgIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IHZlY3RvciA6IDgsCiAgIF9fcmVzZXJ2ZWRfMSA6
IDQsCiAgIGRlbGl2ZXJ5X3N0YXR1cyA6IDEsCiAgIF9fcmVzZXJ2ZWRfMiA6IDMsCiAgIG1hc2sg
OiAxLAogICB0aW1lcl9tb2RlIDogMSwKICAgX19yZXNlcnZlZF8zIDogMTQ7CiAgdW5zaWduZWQg
aW50IF9fcmVzZXJ2ZWRfNFszXTsKIH0gbHZ0X3RpbWVyOwoKICAgICAgICBzdHJ1Y3QgewogIHVu
c2lnbmVkIGludCB2ZWN0b3IgOiA4LAogICBkZWxpdmVyeV9tb2RlIDogMywKICAgX19yZXNlcnZl
ZF8xIDogMSwKICAgZGVsaXZlcnlfc3RhdHVzIDogMSwKICAgX19yZXNlcnZlZF8yIDogMywKICAg
bWFzayA6IDEsCiAgIF9fcmVzZXJ2ZWRfMyA6IDE1OwogIHVuc2lnbmVkIGludCBfX3Jlc2VydmVk
XzRbM107CiB9IGx2dF90aGVybWFsOwoKICAgICAgICBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCB2
ZWN0b3IgOiA4LAogICBkZWxpdmVyeV9tb2RlIDogMywKICAgX19yZXNlcnZlZF8xIDogMSwKICAg
ZGVsaXZlcnlfc3RhdHVzIDogMSwKICAgX19yZXNlcnZlZF8yIDogMywKICAgbWFzayA6IDEsCiAg
IF9fcmVzZXJ2ZWRfMyA6IDE1OwogIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzRbM107CiB9IGx2
dF9wYzsKCiAgICAgICAgc3RydWN0IHsKICB1bnNpZ25lZCBpbnQgdmVjdG9yIDogOCwKICAgZGVs
aXZlcnlfbW9kZSA6IDMsCiAgIF9fcmVzZXJ2ZWRfMSA6IDEsCiAgIGRlbGl2ZXJ5X3N0YXR1cyA6
IDEsCiAgIHBvbGFyaXR5IDogMSwKICAgcmVtb3RlX2lyciA6IDEsCiAgIHRyaWdnZXIgOiAxLAog
ICBtYXNrIDogMSwKICAgX19yZXNlcnZlZF8yIDogMTU7CiAgdW5zaWduZWQgaW50IF9fcmVzZXJ2
ZWRfM1szXTsKIH0gbHZ0X2xpbnQwOwoKICAgICAgICBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCB2
ZWN0b3IgOiA4LAogICBkZWxpdmVyeV9tb2RlIDogMywKICAgX19yZXNlcnZlZF8xIDogMSwKICAg
ZGVsaXZlcnlfc3RhdHVzIDogMSwKICAgcG9sYXJpdHkgOiAxLAogICByZW1vdGVfaXJyIDogMSwK
ICAgdHJpZ2dlciA6IDEsCiAgIG1hc2sgOiAxLAogICBfX3Jlc2VydmVkXzIgOiAxNTsKICB1bnNp
Z25lZCBpbnQgX19yZXNlcnZlZF8zWzNdOwogfSBsdnRfbGludDE7CgogICAgICAgIHN0cnVjdCB7
CiAgdW5zaWduZWQgaW50IHZlY3RvciA6IDgsCiAgIF9fcmVzZXJ2ZWRfMSA6IDQsCiAgIGRlbGl2
ZXJ5X3N0YXR1cyA6IDEsCiAgIF9fcmVzZXJ2ZWRfMiA6IDMsCiAgIG1hc2sgOiAxLAogICBfX3Jl
c2VydmVkXzMgOiAxNTsKICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF80WzNdOwogfSBsdnRfZXJy
b3I7CgogICAgICAgIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IGluaXRpYWxfY291bnQ7CiAgdW5z
aWduZWQgaW50IF9fcmVzZXJ2ZWRfMlszXTsKIH0gdGltZXJfaWNyOwoKICAgICAgICBjb25zdAog
c3RydWN0IHsKICB1bnNpZ25lZCBpbnQgY3Vycl9jb3VudDsKICB1bnNpZ25lZCBpbnQgX19yZXNl
cnZlZF8yWzNdOwogfSB0aW1lcl9jY3I7CgogICAgICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBf
X3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMTY7CgogICAgICAgIHN0cnVjdCB7IHVuc2lnbmVk
IGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMTc7CgogICAgICAgIHN0cnVjdCB7IHVu
c2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMTg7CgogICAgICAgIHN0cnVj
dCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMTk7CgogICAgICAg
IHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IGRpdmlzb3IgOiA0LAogICBfX3Jlc2VydmVkXzEgOiAy
ODsKICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF8yWzNdOwogfSB0aW1lcl9kY3I7CgogICAgICAg
IHN0cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMjA7Cgp9
IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIyA0MzUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
YXBpY2RlZi5oIgplbnVtIGlvYXBpY19pcnFfZGVzdGluYXRpb25fdHlwZXMgewogZGVzdF9GaXhl
ZCA9IDAsCiBkZXN0X0xvd2VzdFByaW8gPSAxLAogZGVzdF9TTUkgPSAyLAogZGVzdF9fcmVzZXJ2
ZWRfMSA9IDMsCiBkZXN0X05NSSA9IDQsCiBkZXN0X0lOSVQgPSA1LAogZGVzdF9fcmVzZXJ2ZWRf
MiA9IDYsCiBkZXN0X0V4dElOVCA9IDcKfTsKIyA5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21w
c3BlYy5oIiAyCgpleHRlcm4gaW50IHBpY19tb2RlOwojIDQwICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL21wc3BlYy5oIgpleHRlcm4gdW5zaWduZWQgbG9uZyBtcF9idXNfbm90X3BjaVsoKCgyNTYp
ICsgKChzaXplb2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKV07Cgpl
eHRlcm4gdW5zaWduZWQgaW50IGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZDsKZXh0ZXJuIHU4IGJv
b3RfY3B1X2FwaWNfdmVyc2lvbjsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbXBfbGFwaWNfYWRkcjsK
CgpleHRlcm4gaW50IHNtcF9mb3VuZF9jb25maWc7CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGdldF9zbXBfY29uZmlnKHZv
aWQpCnsKIHg4Nl9pbml0Lm1wcGFyc2UuZ2V0X3NtcF9jb25maWcoMCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZWFybHlf
Z2V0X3NtcF9jb25maWcodm9pZCkKewogeDg2X2luaXQubXBwYXJzZS5nZXRfc21wX2NvbmZpZygx
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBmaW5kX3NtcF9jb25maWcodm9pZCkKewogeDg2X2luaXQubXBwYXJzZS5maW5k
X3NtcF9jb25maWcoKTsKfQoKCmV4dGVybiB2b2lkIGU4MjBfX21lbWJsb2NrX2FsbG9jX3Jlc2Vy
dmVkX21wY19uZXcodm9pZCk7CmV4dGVybiBpbnQgZW5hYmxlX3VwZGF0ZV9tcHRhYmxlOwpleHRl
cm4gaW50IGRlZmF1bHRfbXBjX2FwaWNfaWQoc3RydWN0IG1wY19jcHUgKm0pOwpleHRlcm4gdm9p
ZCBkZWZhdWx0X3NtcF9yZWFkX21wY19vZW0oc3RydWN0IG1wY190YWJsZSAqbXBjKTsKCmV4dGVy
biB2b2lkIGRlZmF1bHRfbXBjX29lbV9idXNfaW5mbyhzdHJ1Y3QgbXBjX2J1cyAqbSwgY2hhciAq
c3RyKTsKCgoKZXh0ZXJuIHZvaWQgZGVmYXVsdF9maW5kX3NtcF9jb25maWcodm9pZCk7CmV4dGVy
biB2b2lkIGRlZmF1bHRfZ2V0X3NtcF9jb25maWcodW5zaWduZWQgaW50IGVhcmx5KTsKIyA4OSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tcHNwZWMuaCIKaW50IGdlbmVyaWNfcHJvY2Vzc29yX2lu
Zm8oaW50IGFwaWNpZCwgaW50IHZlcnNpb24pOwoKCgpzdHJ1Y3QgcGh5c2lkX21hc2sgewogdW5z
aWduZWQgbG9uZyBtYXNrWygoKDMyNzY4KSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0gMSkgLyAo
KHNpemVvZihsb25nKSAqIDgpKSldOwp9OwoKdHlwZWRlZiBzdHJ1Y3QgcGh5c2lkX21hc2sgcGh5
c2lkX21hc2tfdDsKIyAxMzIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVjLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcgcGh5c2lkc19jb2VyY2UocGh5c2lkX21hc2tfdCAqbWFwKQp7CiByZXR1cm4gbWFw
LT5tYXNrWzBdOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHBoeXNpZHNfcHJvbW90ZSh1bnNpZ25lZCBsb25nIHBoeXNpZHMs
IHBoeXNpZF9tYXNrX3QgKm1hcCkKewogYml0bWFwX3plcm8oKCptYXApLm1hc2ssIDMyNzY4KTsK
IG1hcC0+bWFza1swXSA9IHBoeXNpZHM7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGh5c2lkX3NldF9tYXNrX29mX3BoeXNp
ZChpbnQgcGh5c2lkLCBwaHlzaWRfbWFza190ICptYXApCnsKIGJpdG1hcF96ZXJvKCgqbWFwKS5t
YXNrLCAzMjc2OCk7CiBzZXRfYml0KHBoeXNpZCwgKCptYXApLm1hc2spOwp9CgoKCgpleHRlcm4g
cGh5c2lkX21hc2tfdCBwaHlzX2NwdV9wcmVzZW50X21hcDsKIyAxMyAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zbXAuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5oIiAxCiMg
MTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vZml4bWFwLmgiIDEKIyAyOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIK
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIgMQojIDkgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vYWNwaS5oIgojIDEgIi4vaW5jbHVkZS9hY3BpL3BkY19pbnRlbC5oIiAxCiMgMTAg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWNwaS5oIiAyCgojIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vbnVtYS5oIiAxCgoKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90b3BvbG9n
eS5oIiAxCiMgODUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG51bWFf
bm9kZV9pZCh2b2lkKQp7CiByZXR1cm4gMDsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBlYXJseV9jcHVfdG9fbm9kZShp
bnQgY3B1KQp7CiByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXR1cF9ub2RlX3RvX2NwdW1hc2tfbWFwKHZv
aWQpIHsgfQoKCgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy90b3BvbG9neS5oIiAxCiMgMTA0
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RvcG9sb2d5LmgiIDIKCmV4dGVybiBjb25zdCBzdHJ1
Y3QgY3B1bWFzayAqY3B1X2NvcmVncm91cF9tYXNrKGludCBjcHUpOwojIDExOCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS90b3BvbG9neS5oIgpleHRlcm4gdW5zaWduZWQgaW50IF9fbWF4X2xvZ2lj
YWxfcGFja2FnZXM7CgoKZXh0ZXJuIHVuc2lnbmVkIGludCBfX21heF9kaWVfcGVyX3BhY2thZ2U7
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgdG9wb2xvZ3lfbWF4X2RpZV9wZXJfcGFja2FnZSh2b2lkKQp7CiByZXR1cm4gX19tYXhf
ZGllX3Blcl9wYWNrYWdlOwp9CgpleHRlcm4gaW50IF9fbWF4X3NtdF90aHJlYWRzOwoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHRv
cG9sb2d5X21heF9zbXRfdGhyZWFkcyh2b2lkKQp7CiByZXR1cm4gX19tYXhfc210X3RocmVhZHM7
Cn0KCmludCB0b3BvbG9neV91cGRhdGVfcGFja2FnZV9tYXAodW5zaWduZWQgaW50IGFwaWNpZCwg
dW5zaWduZWQgaW50IGNwdSk7CmludCB0b3BvbG9neV91cGRhdGVfZGllX21hcCh1bnNpZ25lZCBp
bnQgZGllaWQsIHVuc2lnbmVkIGludCBjcHUpOwppbnQgdG9wb2xvZ3lfcGh5c190b19sb2dpY2Fs
X3BrZyh1bnNpZ25lZCBpbnQgcGtnKTsKaW50IHRvcG9sb2d5X3BoeXNfdG9fbG9naWNhbF9kaWUo
dW5zaWduZWQgaW50IGRpZSwgdW5zaWduZWQgaW50IGNwdSk7CmJvb2wgdG9wb2xvZ3lfaXNfcHJp
bWFyeV90aHJlYWQodW5zaWduZWQgaW50IGNwdSk7CmJvb2wgdG9wb2xvZ3lfc210X3N1cHBvcnRl
ZCh2b2lkKTsKIyAxNTYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBh
cmNoX2ZpeF9waHlzX3BhY2thZ2VfaWQoaW50IG51bSwgdTMyIHNsb3QpCnsKfQoKc3RydWN0IHBj
aV9idXM7CmludCB4ODZfcGNpX3Jvb3RfYnVzX25vZGUoaW50IGJ1cyk7CnZvaWQgeDg2X3BjaV9y
b290X2J1c19yZXNvdXJjZXMoaW50IGJ1cywgc3RydWN0IGxpc3RfaGVhZCAqcmVzb3VyY2VzKTsK
CmV4dGVybiBib29sIHg4Nl90b3BvbG9neV91cGRhdGU7CgoKCgpleHRlcm4gX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4ucmVhZF9tb3N0bHkiKSkpIF9fdHlwZW9mX18o
aW50KSBzY2hlZF9jb3JlX3ByaW9yaXR5OwpleHRlcm4gdW5zaWduZWQgaW50IF9fYXR0cmlidXRl
X18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHN5c2N0bF9zY2hlZF9pdG10
X2VuYWJsZWQ7CgoKdm9pZCBzY2hlZF9zZXRfaXRtdF9jb3JlX3ByaW8oaW50IHByaW8sIGludCBj
b3JlX2NwdSk7CgoKaW50IHNjaGVkX3NldF9pdG10X3N1cHBvcnQodm9pZCk7CgoKdm9pZCBzY2hl
ZF9jbGVhcl9pdG10X3N1cHBvcnQodm9pZCk7CiMgOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9u
dW1hLmgiIDIKIyA0NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9udW1hLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X2Fw
aWNpZF90b19ub2RlKGludCBhcGljaWQsIHMxNiBub2RlKQp7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBudW1hX2NwdV9ub2Rl
KGludCBjcHUpCnsKIHJldHVybiAoLTEpOwp9CiMgNjYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
bnVtYS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIG51bWFfc2V0X25vZGUoaW50IGNwdSwgaW50IG5vZGUpIHsgfQpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG51
bWFfY2xlYXJfbm9kZShpbnQgY3B1KSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbml0X2NwdV90b19ub2RlKHZvaWQpIHsg
fQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIG51bWFfYWRkX2NwdShpbnQgY3B1KSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBudW1hX3JlbW92ZV9jcHUoaW50
IGNwdSkgeyB9CiMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWNwaS5oIiAyCiMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIgMQojIDEzICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2FjcGkuaCIgMgojIDIzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIKZXh0ZXJu
IGludCBhY3BpX2xhcGljOwpleHRlcm4gaW50IGFjcGlfaW9hcGljOwpleHRlcm4gaW50IGFjcGlf
bm9pcnE7CmV4dGVybiBpbnQgYWNwaV9zdHJpY3Q7CmV4dGVybiBpbnQgYWNwaV9kaXNhYmxlZDsK
ZXh0ZXJuIGludCBhY3BpX3BjaV9kaXNhYmxlZDsKZXh0ZXJuIGludCBhY3BpX3NraXBfdGltZXJf
b3ZlcnJpZGU7CmV4dGVybiBpbnQgYWNwaV91c2VfdGltZXJfb3ZlcnJpZGU7CmV4dGVybiBpbnQg
YWNwaV9maXhfcGluMl9wb2xhcml0eTsKZXh0ZXJuIGludCBhY3BpX2Rpc2FibGVfY21jZmY7Cgpl
eHRlcm4gdTggYWNwaV9zY2lfZmxhZ3M7CmV4dGVybiB1MzIgYWNwaV9zY2lfb3ZlcnJpZGVfZ3Np
Owp2b2lkIGFjcGlfcGljX3NjaV9zZXRfdHJpZ2dlcih1bnNpZ25lZCBpbnQsIHUxNik7CgpzdHJ1
Y3QgZGV2aWNlOwoKZXh0ZXJuIGludCAoKl9fYWNwaV9yZWdpc3Rlcl9nc2kpKHN0cnVjdCBkZXZp
Y2UgKmRldiwgdTMyIGdzaSwKICAgICAgaW50IHRyaWdnZXIsIGludCBwb2xhcml0eSk7CmV4dGVy
biB2b2lkICgqX19hY3BpX3VucmVnaXN0ZXJfZ3NpKSh1MzIgZ3NpKTsKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGlzYWJsZV9h
Y3BpKHZvaWQpCnsKIGFjcGlfZGlzYWJsZWQgPSAxOwogYWNwaV9wY2lfZGlzYWJsZWQgPSAxOwog
YWNwaV9ub2lycSA9IDE7Cn0KCmV4dGVybiBpbnQgYWNwaV9nc2lfdG9faXJxKHUzMiBnc2ksIHVu
c2lnbmVkIGludCAqaXJxKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYWNwaV9ub2lycV9zZXQodm9pZCkgeyBhY3BpX25vaXJx
ID0gMTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGFjcGlfZGlzYWJsZV9wY2kodm9pZCkKewogYWNwaV9wY2lfZGlzYWJsZWQg
PSAxOwogYWNwaV9ub2lycV9zZXQoKTsKfQoKCmV4dGVybiBpbnQgKCphY3BpX3N1c3BlbmRfbG93
bGV2ZWwpKHZvaWQpOwoKCnVuc2lnbmVkIGxvbmcgYWNwaV9nZXRfd2FrZXVwX2FkZHJlc3Modm9p
ZCk7CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB1bnNpZ25lZCBpbnQgYWNwaV9wcm9jZXNzb3JfY3N0YXRlX2NoZWNrKHVuc2lnbmVk
IGludCBtYXhfY3N0YXRlKQp7CgoKCgoKCiBpZiAoYm9vdF9jcHVfZGF0YS54ODYgPT0gMHgwRiAm
JgogICAgIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSAyICYmCiAgICAgYm9vdF9jcHVfZGF0
YS54ODZfbW9kZWwgPD0gMHgwNSAmJgogICAgIGJvb3RfY3B1X2RhdGEueDg2X3N0ZXBwaW5nIDwg
MHgwQSkKICByZXR1cm4gMTsKIGVsc2UgaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcCgoMTkqMzIg
KyAoNCkpKSAmJiAoICgoKCgxOSozMiArICg0KSkpPj41KT09KDApICYmICgxVUw8PCgoKDE5KjMy
ICsgKDQpKSkmMzEpICYgKCgxPDwoKCAwKjMyKyAwKSAmIDMxKSl8MHwoMTw8KCggMCozMisgNSkg
JiAzMSkpfCgxPDwoKCAwKjMyKyA2KSAmIDMxKSl8ICgxPDwoKCAwKjMyKyA4KSAmIDMxKSl8MHwo
MTw8KCggMCozMisyNCkgJiAzMSkpfCgxPDwoKCAwKjMyKzE1KSAmIDMxKSl8ICgxPDwoKCAwKjMy
KzI1KSAmIDMxKSl8KDE8PCgoIDAqMzIrMjYpICYgMzEpKSkgKSkgfHwgKCgoKDE5KjMyICsgKDQp
KSk+PjUpPT0oMSkgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAoKDE8PCgoIDEqMzIr
MjkpICYgMzEpKXwwKSApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgyKSAmJiAoMVVMPDwo
KCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oMykg
JiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAoKDE8PCgoIDMqMzIrMjApICYgMzEpKSkg
KSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oNCkgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkp
KSYzMSkgJiAoMCkgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oNSkgJiYgKDFVTDw8KCgo
MTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDYpICYm
ICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+
NSk9PSg3KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMy
ICsgKDQpKSk+PjUpPT0oOCkgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8
ICgoKCgxOSozMiArICg0KSkpPj41KT09KDkpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEp
ICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgxMCkgJiYgKDFVTDw8KCgoMTkqMzIg
KyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDExKSAmJiAoMVVM
PDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0o
MTIpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAo
NCkpKT4+NSk9PSgxMykgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgo
KCgxOSozMiArICg0KSkpPj41KT09KDE0KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAm
IDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oMTUpICYmICgxVUw8PCgoKDE5KjMyICsg
KDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgxNikgJiYgKDFVTDw8
KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDE3
KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQp
KSk+PjUpPT0oMTgpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKGlu
dCkoc2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkgfHwgKChpbnQpKHNp
emVvZihzdHJ1Y3QgeyBpbnQ6KC0hISgxOSAhPSAxOSkpOyB9KSkpKSA/IDEgOiB0ZXN0X2JpdCgo
MTkqMzIgKyAoNCkpLCAodW5zaWduZWQgbG9uZyAqKSgoJmJvb3RfY3B1X2RhdGEpLT54ODZfY2Fw
YWJpbGl0eSkpKSkKICByZXR1cm4gMTsKIGVsc2UKICByZXR1cm4gbWF4X2NzdGF0ZTsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCBhcmNoX2hhc19hY3BpX3BkYyh2b2lkKQp7CiBzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmKCoo
eyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X2luZm8pKSAr
IDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNp
Z25lZCBsb25nIF9fcHRyOyBfX2FzbV9fICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2Yo
KigoJihjcHVfaW5mbykpKSkgKikoKCYoY3B1X2luZm8pKSkpKTsgKHR5cGVvZigodHlwZW9mKCoo
KCYoY3B1X2luZm8pKSkpICopKCgmKGNwdV9pbmZvKSkpKSkgKF9fcHRyICsgKCgoX19wZXJfY3B1
X29mZnNldFsoMCldKSkpKTsgfSk7IH0pKTsKIHJldHVybiAoYy0+eDg2X3ZlbmRvciA9PSAwIHx8
CiAgYy0+eDg2X3ZlbmRvciA9PSA1KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX2FjcGlfc2V0X3BkY19iaXRzKHUz
MiAqYnVmKQp7CiBzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmKCooeyBkbyB7IGNvbnN0IHZvaWQg
Kl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X2luZm8pKSArIDApKSgodm9pZCAqKTApOyAo
dm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBf
X2FzbV9fICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihjcHVfaW5mbykpKSkg
KikoKCYoY3B1X2luZm8pKSkpKTsgKHR5cGVvZigodHlwZW9mKCooKCYoY3B1X2luZm8pKSkpICop
KCgmKGNwdV9pbmZvKSkpKSkgKF9fcHRyICsgKCgoX19wZXJfY3B1X29mZnNldFsoMCldKSkpKTsg
fSk7IH0pKTsKCiBidWZbMl0gfD0gKCgweDAwMTApIHwgKDB4MDAwOCkgfCAoMHgwMDAyKSB8ICgw
eDAxMDApIHwgKDB4MDIwMCkpOwoKIGlmICgoX19idWlsdGluX2NvbnN0YW50X3AoKCA0KjMyKyA3
KSkgJiYgKCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgwKSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMx
KSAmICgoMTw8KCggMCozMisgMCkgJiAzMSkpfDB8KDE8PCgoIDAqMzIrIDUpICYgMzEpKXwoMTw8
KCggMCozMisgNikgJiAzMSkpfCAoMTw8KCggMCozMisgOCkgJiAzMSkpfDB8KDE8PCgoIDAqMzIr
MjQpICYgMzEpKXwoMTw8KCggMCozMisxNSkgJiAzMSkpfCAoMTw8KCggMCozMisyNSkgJiAzMSkp
fCgxPDwoKCAwKjMyKzI2KSAmIDMxKSkpICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDEpICYm
ICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgKCgxPDwoKCAxKjMyKzI5KSAmIDMxKSl8MCkgKSkg
fHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMikgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAw
ICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDMpICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEp
ICYgKCgxPDwoKCAzKjMyKzIwKSAmIDMxKSkpICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDQp
ICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgKDApICkpIHx8ICgoKCggNCozMisgNykpPj41
KT09KDUpICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcp
KT4+NSk9PSg2KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMy
KyA3KSk+PjUpPT0oNykgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgoKCgg
NCozMisgNykpPj41KT09KDgpICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAo
KCgoIDQqMzIrIDcpKT4+NSk9PSg5KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkg
fHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMTApICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYg
MCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgxMSkgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYz
MSkgJiAwICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDEyKSAmJiAoMVVMPDwoKCggNCozMisg
NykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMTMpICYmICgxVUw8PCgoKCA0
KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgxNCkgJiYgKDFVTDw8
KCgoIDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDE1KSAmJiAo
MVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMTYp
ICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9
PSgxNykgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgNykp
Pj41KT09KDE4KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkgfHwgKChpbnQpKHNp
emVvZihzdHJ1Y3QgeyBpbnQ6KC0hISgxOSAhPSAxOSkpOyB9KSkpIHx8ICgoaW50KShzaXplb2Yo
c3RydWN0IHsgaW50OigtISEoMTkgIT0gMTkpKTsgfSkpKSkgPyAxIDogdGVzdF9iaXQoKCA0KjMy
KyA3KSwgKHVuc2lnbmVkIGxvbmcgKikoKGMpLT54ODZfY2FwYWJpbGl0eSkpKSkKICBidWZbMl0g
fD0gKCgweDAwMDgpIHwgKDB4MDAwMikgfCAoMHgwMDIwKSB8ICgweDA4MDApIHwgKDB4MDAwMSkp
OwoKIGlmICgoX19idWlsdGluX2NvbnN0YW50X3AoKCAwKjMyKzIyKSkgJiYgKCAoKCgoIDAqMzIr
MjIpKT4+NSk9PSgwKSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmICgoMTw8KCggMCozMisg
MCkgJiAzMSkpfDB8KDE8PCgoIDAqMzIrIDUpICYgMzEpKXwoMTw8KCggMCozMisgNikgJiAzMSkp
fCAoMTw8KCggMCozMisgOCkgJiAzMSkpfDB8KDE8PCgoIDAqMzIrMjQpICYgMzEpKXwoMTw8KCgg
MCozMisxNSkgJiAzMSkpfCAoMTw8KCggMCozMisyNSkgJiAzMSkpfCgxPDwoKCAwKjMyKzI2KSAm
IDMxKSkpICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDEpICYmICgxVUw8PCgoKCAwKjMyKzIy
KSkmMzEpICYgKCgxPDwoKCAxKjMyKzI5KSAmIDMxKSl8MCkgKSkgfHwgKCgoKCAwKjMyKzIyKSk+
PjUpPT0oMikgJiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisy
MikpPj41KT09KDMpICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgKCgxPDwoKCAzKjMyKzIw
KSAmIDMxKSkpICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDQpICYmICgxVUw8PCgoKCAwKjMy
KzIyKSkmMzEpICYgKDApICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDUpICYmICgxVUw8PCgo
KCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSg2KSAmJiAoMVVM
PDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oNykgJiYg
KDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDgp
ICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9
PSg5KSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+
PjUpPT0oMTApICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIr
MjIpKT4+NSk9PSgxMSkgJiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCgg
MCozMisyMikpPj41KT09KDEyKSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwg
KCgoKCAwKjMyKzIyKSk+PjUpPT0oMTMpICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCAp
KSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSgxNCkgJiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkg
JiAwICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDE1KSAmJiAoMVVMPDwoKCggMCozMisyMikp
JjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oMTYpICYmICgxVUw8PCgoKCAwKjMy
KzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSgxNykgJiYgKDFVTDw8KCgo
IDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDE4KSAmJiAoMVVM
PDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwgKChpbnQpKHNpemVvZihzdHJ1Y3QgeyBpbnQ6
KC0hISgxOSAhPSAxOSkpOyB9KSkpIHx8ICgoaW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEo
MTkgIT0gMTkpKTsgfSkpKSkgPyAxIDogdGVzdF9iaXQoKCAwKjMyKzIyKSwgKHVuc2lnbmVkIGxv
bmcgKikoKGMpLT54ODZfY2FwYWJpbGl0eSkpKSkKICBidWZbMl0gfD0gKDB4MDAwNCk7CgoKCgog
aWYgKCEoX19idWlsdGluX2NvbnN0YW50X3AoKCA0KjMyKyAzKSkgJiYgKCAoKCgoIDQqMzIrIDMp
KT4+NSk9PSgwKSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmICgoMTw8KCggMCozMisgMCkg
JiAzMSkpfDB8KDE8PCgoIDAqMzIrIDUpICYgMzEpKXwoMTw8KCggMCozMisgNikgJiAzMSkpfCAo
MTw8KCggMCozMisgOCkgJiAzMSkpfDB8KDE8PCgoIDAqMzIrMjQpICYgMzEpKXwoMTw8KCggMCoz
MisxNSkgJiAzMSkpfCAoMTw8KCggMCozMisyNSkgJiAzMSkpfCgxPDwoKCAwKjMyKzI2KSAmIDMx
KSkpICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDEpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkm
MzEpICYgKCgxPDwoKCAxKjMyKzI5KSAmIDMxKSl8MCkgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUp
PT0oMikgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgMykp
Pj41KT09KDMpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgKCgxPDwoKCAzKjMyKzIwKSAm
IDMxKSkpICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDQpICYmICgxVUw8PCgoKCA0KjMyKyAz
KSkmMzEpICYgKDApICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDUpICYmICgxVUw8PCgoKCA0
KjMyKyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSg2KSAmJiAoMVVMPDwo
KCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUpPT0oNykgJiYgKDFV
TDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDgpICYm
ICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSg5
KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUp
PT0oMTApICYmICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMp
KT4+NSk9PSgxMSkgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCoz
MisgMykpPj41KT09KDEyKSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgo
KCA0KjMyKyAzKSk+PjUpPT0oMTMpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8
fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSgxNCkgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAw
ICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDE1KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMx
KSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUpPT0oMTYpICYmICgxVUw8PCgoKCA0KjMyKyAz
KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSgxNykgJiYgKDFVTDw8KCgoIDQq
MzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDE4KSAmJiAoMVVMPDwo
KCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKChpbnQpKHNpemVvZihzdHJ1Y3QgeyBpbnQ6KC0h
ISgxOSAhPSAxOSkpOyB9KSkpIHx8ICgoaW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEoMTkg
IT0gMTkpKTsgfSkpKSkgPyAxIDogdGVzdF9iaXQoKCA0KjMyKyAzKSwgKHVuc2lnbmVkIGxvbmcg
KikoKGMpLT54ODZfY2FwYWJpbGl0eSkpKSkKICBidWZbMl0gJj0gfigoMHgwMjAwKSk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgYWNwaV9oYXNfY3B1X2luX21hZHQodm9pZCkKewogcmV0dXJuICEhYWNwaV9sYXBpYzsKfQoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgYWNwaV9hcmNoX3NldF9yb290X3BvaW50ZXIodTY0IGFkZHIpCnsKIHg4Nl9pbml0LmFj
cGkuc2V0X3Jvb3RfcG9pbnRlcihhZGRyKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBhY3BpX2FyY2hfZ2V0X3Jvb3RfcG9p
bnRlcih2b2lkKQp7CiByZXR1cm4geDg2X2luaXQuYWNwaS5nZXRfcm9vdF9wb2ludGVyKCk7Cn0K
CnZvaWQgYWNwaV9nZW5lcmljX3JlZHVjZWRfaHdfaW5pdCh2b2lkKTsKCnZvaWQgeDg2X2RlZmF1
bHRfc2V0X3Jvb3RfcG9pbnRlcih1NjQgYWRkcik7CnU2NCB4ODZfZGVmYXVsdF9nZXRfcm9vdF9w
b2ludGVyKHZvaWQpOwojIDE2NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hY3BpLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBncHJv
dF90IGFyY2hfYXBlaV9nZXRfbWVtX2F0dHJpYnV0ZShwaHlzX2FkZHJfdCBhZGRyKQp7CiMgMTgw
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIKIHJldHVybiAoKHBncHJvdF90KSB7ICgo
KCgoKHB0ZXZhbF90KSgxKSkgPDwgMCl8KCgocHRldmFsX3QpKDEpKSA8PCAxKXwgMHwoKChwdGV2
YWxfdCkoMSkpIDw8IDUpfCgoKHB0ZXZhbF90KSgxKSkgPDwgNjMpfCgoKHB0ZXZhbF90KSgxKSkg
PDwgNil8IDB8KCgocHRldmFsX3QpKDEpKSA8PCA4KSkgfCAwKSAmIF9fZGVmYXVsdF9rZXJuZWxf
cHRlX21hc2spIH0gKTsKfQojIDMwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oIiAy
CgoKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3ZzeXNjYWxsLmgiIDEKCgoK
CmVudW0gdnN5c2NhbGxfbnVtIHsKIF9fTlJfdmdldHRpbWVvZmRheSwKIF9fTlJfdnRpbWUsCiBf
X05SX3ZnZXRjcHUsCn07CiMgMzcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZml4bWFwLmgiIDIK
IyA3NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIKZW51bSBmaXhlZF9hZGRyZXNz
ZXMgewoKCgoKIFZTWVNDQUxMX1BBR0UgPSAoKCgoKCgoLTEwVUwgPDwgMjApICsgKCgxVUwpIDw8
IDEyKSktMSkgfCAoKF9fdHlwZW9mX18oKC0xMFVMIDw8IDIwKSArICgoMVVMKSA8PCAxMikpKSgo
MTw8MjEpLTEpKSkrMSkgLSAoKDFVTCkgPDwgMTIpKSAtICgtMTBVTCA8PCAyMCkpID4+IDEyLAoK
CiBGSVhfREJHUF9CQVNFLAogRklYX0VBUkxZQ09OX01FTV9CQVNFLAoKCgoKIEZJWF9BUElDX0JB
U0UsCgoKIEZJWF9JT19BUElDX0JBU0VfMCwKIEZJWF9JT19BUElDX0JBU0VfRU5EID0gRklYX0lP
X0FQSUNfQkFTRV8wICsgMTI4IC0gMSwKIyAxMDMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZml4
bWFwLmgiCiBGSVhfUEFSQVZJUlRfQk9PVE1BUCwKCgoKCgoKCiBGSVhfQVBFSV9HSEVTX0lSUSwK
IEZJWF9BUEVJX0dIRVNfTk1JLAoKCiBfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2Vz
LAojIDEyNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIKIEZJWF9CVE1BUF9FTkQg
PQogIChfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzIF4KICAgKF9fZW5kX29mX3Bl
cm1hbmVudF9maXhlZF9hZGRyZXNzZXMgKyAoNjQgKiA4KSAtIDEpKSAmCiAgLTUxMgogID8gX19l
bmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJlc3NlcyArICg2NCAqIDgpIC0KICAgIChfX2VuZF9v
Zl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzICYgKCg2NCAqIDgpIC0gMSkpCiAgOiBfX2VuZF9v
Zl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzLAogRklYX0JUTUFQX0JFR0lOID0gRklYX0JUTUFQ
X0VORCArICg2NCAqIDgpIC0gMSwKCgoKCgoKIF9fZW5kX29mX2ZpeGVkX2FkZHJlc3Nlcwp9OwoK
CmV4dGVybiB2b2lkIHJlc2VydmVfdG9wX2FkZHJlc3ModW5zaWduZWQgbG9uZyByZXNlcnZlKTsK
CgoKCgoKZXh0ZXJuIGludCBmaXhtYXBzX3NldDsKCmV4dGVybiBwdGVfdCAqa21hcF9wdGU7Cgpl
eHRlcm4gcHRlX3QgKnBrbWFwX3BhZ2VfdGFibGU7Cgp2b2lkIF9fbmF0aXZlX3NldF9maXhtYXAo
ZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCBwdGVfdCBwdGUpOwp2b2lkIG5hdGl2ZV9zZXRfZml4
bWFwKHVuc2lnbmVkIGlkeCwKICAgICAgICAgcGh5c19hZGRyX3QgcGh5cywgcGdwcm90X3QgZmxh
Z3MpOwoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwKICAgIHBo
eXNfYWRkcl90IHBoeXMsIHBncHJvdF90IGZsYWdzKQp7CiBuYXRpdmVfc2V0X2ZpeG1hcChpZHgs
IHBoeXMsIGZsYWdzKTsKfQojIDE4MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIK
dm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1
dGVfXygoX19jb2xkX18pKSAqZWFybHlfbWVtcmVtYXBfZW5jcnlwdGVkKHJlc291cmNlX3NpemVf
dCBwaHlzX2FkZHIsCiAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwp2b2lkIF9fYXR0cmli
dXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRf
XykpICplYXJseV9tZW1yZW1hcF9lbmNyeXB0ZWRfd3AocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRk
ciwKICAgICAgdW5zaWduZWQgbG9uZyBzaXplKTsKdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rp
b25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSAqZWFybHlfbWVt
cmVtYXBfZGVjcnlwdGVkKHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsCiAgICAgICAgICB1bnNp
Z25lZCBsb25nIHNpemUpOwp2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50
ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpICplYXJseV9tZW1yZW1hcF9kZWNyeXB0
ZWRfd3AocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkciwKICAgICAgdW5zaWduZWQgbG9uZyBzaXpl
KTsKCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2ZpeG1hcC5oIiAxCiMgMzAgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9maXhtYXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB1bnNpZ25lZCBsb25nIGZpeF90b192aXJ0KGNvbnN0IHVuc2lnbmVkIGludCBpZHgpCnsKIGRv
IHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMzIodm9pZCkgX19hdHRyaWJ1dGVf
XygoX19lcnJvcl9fKCJCVUlMRF9CVUdfT04gZmFpbGVkOiAiICJpZHggPj0gX19lbmRfb2ZfZml4
ZWRfYWRkcmVzc2VzIikpKTsgaWYgKCEoIShpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2Vz
KSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzMyKCk7IH0gd2hpbGUgKDApOwogcmV0dXJuICgoKCgo
KCgtMTBVTCA8PCAyMCkgKyAoKDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2ZfXygoLTEwVUwg
PDwgMjApICsgKCgxVUwpIDw8IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVMKSA8PCAxMikp
IC0gKChpZHgpIDw8IDEyKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgdmlydF90b19maXgoY29uc3QgdW5z
aWduZWQgbG9uZyB2YWRkcikKewogZG8geyBpZiAoX19idWlsdGluX2V4cGVjdCghISh2YWRkciA+
PSAoKCgoKCgtMTBVTCA8PCAyMCkgKyAoKDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2ZfXygo
LTEwVUwgPDwgMjApICsgKCgxVUwpIDw8IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVMKSA8
PCAxMikpIHx8IHZhZGRyIDwgKCgoKCgoKC0xMFVMIDw8IDIwKSArICgoMVVMKSA8PCAxMikpLTEp
IHwgKChfX3R5cGVvZl9fKCgtMTBVTCA8PCAyMCkgKyAoKDFVTCkgPDwgMTIpKSkoKDE8PDIxKS0x
KSkpKzEpIC0gKCgxVUwpIDw8IDEyKSkgLSAoX19lbmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJl
c3NlcyA8PCAxMikpKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQi
ICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wi
XG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRy
XG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAi
XHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBi
dWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJp
IiAoImluY2x1ZGUvYXNtLWdlbmVyaWMvZml4bWFwLmgiKSwgImkiICgzOCksICJpIiAoMCksICJp
IiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2
b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0
IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgxNykpOyB9
KTsgYXNtIHZvbGF0aWxlKCIiKTsgX19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDAp
OyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CiByZXR1cm4gKCgoKCgoKCgtMTBVTCA8PCAyMCkg
KyAoKDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2ZfXygoLTEwVUwgPDwgMjApICsgKCgxVUwp
IDw8IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVMKSA8PCAxMikpIC0gKCh2YWRkcikmKH4o
KCgxVUwpIDw8IDEyKS0xKSkpKSA+PiAxMik7Cn0KIyAxOTEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vZml4bWFwLmgiIDIKCgoKCnZvaWQgX19lYXJseV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRk
cmVzc2VzIGlkeCwKICAgcGh5c19hZGRyX3QgcGh5cywgcGdwcm90X3QgZmxhZ3MpOwojIDEyICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMuaCIgMgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9oYXJkaXJxLmgiIDEKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogdTE2IF9fc29mdGlycV9w
ZW5kaW5nOwoKCgogdW5zaWduZWQgaW50IF9fbm1pX2NvdW50OwoKIHVuc2lnbmVkIGludCBhcGlj
X3RpbWVyX2lycXM7CiB1bnNpZ25lZCBpbnQgaXJxX3NwdXJpb3VzX2NvdW50OwogdW5zaWduZWQg
aW50IGljcl9yZWFkX3JldHJ5X2NvdW50OwoKCiB1bnNpZ25lZCBpbnQga3ZtX3Bvc3RlZF9pbnRy
X2lwaXM7CiB1bnNpZ25lZCBpbnQga3ZtX3Bvc3RlZF9pbnRyX3dha2V1cF9pcGlzOwogdW5zaWdu
ZWQgaW50IGt2bV9wb3N0ZWRfaW50cl9uZXN0ZWRfaXBpczsKCiB1bnNpZ25lZCBpbnQgeDg2X3Bs
YXRmb3JtX2lwaXM7CiB1bnNpZ25lZCBpbnQgYXBpY19wZXJmX2lycXM7CiB1bnNpZ25lZCBpbnQg
YXBpY19pcnFfd29ya19pcnFzOwoKIHVuc2lnbmVkIGludCBpcnFfcmVzY2hlZF9jb3VudDsKIHVu
c2lnbmVkIGludCBpcnFfY2FsbF9jb3VudDsKCiB1bnNpZ25lZCBpbnQgaXJxX3RsYl9jb3VudDsK
CiB1bnNpZ25lZCBpbnQgaXJxX3RoZXJtYWxfY291bnQ7CgoKIHVuc2lnbmVkIGludCBpcnFfdGhy
ZXNob2xkX2NvdW50OwoKCiB1bnNpZ25lZCBpbnQgaXJxX2RlZmVycmVkX2Vycm9yX2NvdW50OwoK
CiB1bnNpZ25lZCBpbnQgaXJxX2h2X2NhbGxiYWNrX2NvdW50OwoKCiB1bnNpZ25lZCBpbnQgaXJx
X2h2X3JlZW5saWdodGVubWVudF9jb3VudDsKIHVuc2lnbmVkIGludCBoeXBlcnZfc3RpbWVyMF9j
b3VudDsKCn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYpKSkpKSBpcnFfY3B1
c3RhdF90OwoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIi
KSkpIF9fdHlwZW9mX18oaXJxX2NwdXN0YXRfdCkgaXJxX3N0YXQgX19hdHRyaWJ1dGVfXygoX19h
bGlnbmVkX18oKDEgPDwgKDYpKSkpKTsKCgoKCgpleHRlcm4gdm9pZCBhY2tfYmFkX2lycSh1bnNp
Z25lZCBpbnQgaXJxKTsKCmV4dGVybiB1NjQgYXJjaF9pcnFfc3RhdF9jcHUodW5zaWduZWQgaW50
IGNwdSk7CgoKZXh0ZXJuIHU2NCBhcmNoX2lycV9zdGF0KHZvaWQpOwojIDgwICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2hhcmRpcnEuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrdm1fc2V0X2NwdV9sMXRmX2ZsdXNoX2wxZCh2
b2lkKSB7IH0KIyAxNSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiIDIKIyA0NSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZ2VuZXJpY19hcGljX3Byb2JlKHZvaWQp
CnsKfQoKCgoKZXh0ZXJuIGludCBhcGljX3ZlcmJvc2l0eTsKZXh0ZXJuIGludCBsb2NhbF9hcGlj
X3RpbWVyX2MyX29rOwoKZXh0ZXJuIGludCBkaXNhYmxlX2FwaWM7CmV4dGVybiB1bnNpZ25lZCBp
bnQgbGFwaWNfdGltZXJfcGVyaW9kOwoKZXh0ZXJuIGVudW0gYXBpY19pbnRyX21vZGVfaWQgYXBp
Y19pbnRyX21vZGU7CmVudW0gYXBpY19pbnRyX21vZGVfaWQgewogQVBJQ19QSUMsCiBBUElDX1ZJ
UlRVQUxfV0lSRSwKIEFQSUNfVklSVFVBTF9XSVJFX05PX0NPTkZJRywKIEFQSUNfU1lNTUVUUklD
X0lPLAogQVBJQ19TWU1NRVRSSUNfSU9fTk9fUk9VVElORwp9OwoKCmV4dGVybiB2b2lkIF9faW5x
dWlyZV9yZW1vdGVfYXBpYyhpbnQgYXBpY2lkKTsKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWZhdWx0X2lucXVpcmVf
cmVtb3RlX2FwaWMoaW50IGFwaWNpZCkKewogaWYgKGFwaWNfdmVyYm9zaXR5ID49IDIpCiAgX19p
bnF1aXJlX3JlbW90ZV9hcGljKGFwaWNpZCk7Cn0KIyA4OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9hcGljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgYXBpY19mcm9tX3NtcF9jb25maWcodm9pZCkKewogcmV0dXJuIHNtcF9m
b3VuZF9jb25maWcgJiYgIWRpc2FibGVfYXBpYzsKfQojIDEwMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9hcGljLmgiCmV4dGVybiBpbnQgc2V0dXBfcHJvZmlsaW5nX3RpbWVyKHVuc2lnbmVkIGlu
dCk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIG5hdGl2ZV9hcGljX21lbV93cml0ZSh1MzIgcmVnLCB1MzIgdikKewogdm9sYXRp
bGUgdTMyICphZGRyID0gKHZvbGF0aWxlIHUzMiAqKSgoZml4X3RvX3ZpcnQoRklYX0FQSUNfQkFT
RSkpICsgcmVnKTsKCiBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIjIEFMVDogb2xkbnN0clxuIiAi
NjYxOlxuXHQiICJtb3ZsICUwLCAlUDEiICJcbjY2MjpcbiIgIiMgQUxUOiBwYWRkaW5nXG4iICIu
c2tpcCAtKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0oIiAiNjYyYi02NjFiIiAiKSkg
PiAwKSAqICIgIigoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0oIiAiNjYyYi02NjFiIiAi
KSksMHg5MFxuIiAiNjYzIiAiOlxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJh
XCJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2NCIiMSIiZiAtIC5cbiIgIiAu
d29yZCAiICIoMTkqMzIgKyAoNSkpIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIg
IiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImIt
NjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFj
ZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjEiICJcbiIgIjY2NCIiMSIi
OlxuXHQiICJ4Y2hnbCAlMCwgJVAxIiAiXG4iICI2NjUiIjEiICI6XG4iICIucG9wc2VjdGlvblxu
IiA6ICI9ciIgKHYpLCAiPW0iICgqYWRkcikgOiAiaSIgKDApLCAiMCIgKHYpLCAibSIgKCphZGRy
KSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHUzMiBu
YXRpdmVfYXBpY19tZW1fcmVhZCh1MzIgcmVnKQp7CiByZXR1cm4gKigodm9sYXRpbGUgdTMyICop
KChmaXhfdG9fdmlydChGSVhfQVBJQ19CQVNFKSkgKyByZWcpKTsKfQoKZXh0ZXJuIHZvaWQgbmF0
aXZlX2FwaWNfd2FpdF9pY3JfaWRsZSh2b2lkKTsKZXh0ZXJuIHUzMiBuYXRpdmVfc2FmZV9hcGlj
X3dhaXRfaWNyX2lkbGUodm9pZCk7CmV4dGVybiB2b2lkIG5hdGl2ZV9hcGljX2ljcl93cml0ZSh1
MzIgbG93LCB1MzIgaWQpOwpleHRlcm4gdTY0IG5hdGl2ZV9hcGljX2ljcl9yZWFkKHZvaWQpOwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBhcGljX2lzX3gyYXBpY19lbmFibGVkKHZvaWQpCnsKIHU2NCBtc3I7CgogaWYgKHJkbXNy
bF9zYWZlKDB4MDAwMDAwMWIsICZtc3IpKQogIHJldHVybiBmYWxzZTsKIHJldHVybiBtc3IgJiAo
MVVMIDw8IDEwKTsKfQoKZXh0ZXJuIHZvaWQgZW5hYmxlX0lSX3gyYXBpYyh2b2lkKTsKCmV4dGVy
biBpbnQgZ2V0X3BoeXNpY2FsX2Jyb2FkY2FzdCh2b2lkKTsKCmV4dGVybiBpbnQgbGFwaWNfZ2V0
X21heGx2dCh2b2lkKTsKZXh0ZXJuIHZvaWQgY2xlYXJfbG9jYWxfQVBJQyh2b2lkKTsKZXh0ZXJu
IHZvaWQgZGlzY29ubmVjdF9ic3BfQVBJQyhpbnQgdmlydF93aXJlX3NldHVwKTsKZXh0ZXJuIHZv
aWQgZGlzYWJsZV9sb2NhbF9BUElDKHZvaWQpOwpleHRlcm4gdm9pZCBhcGljX3NvZnRfZGlzYWJs
ZSh2b2lkKTsKZXh0ZXJuIHZvaWQgbGFwaWNfc2h1dGRvd24odm9pZCk7CmV4dGVybiB2b2lkIHN5
bmNfQXJiX0lEcyh2b2lkKTsKZXh0ZXJuIHZvaWQgaW5pdF9ic3BfQVBJQyh2b2lkKTsKZXh0ZXJu
IHZvaWQgYXBpY19pbnRyX21vZGVfc2VsZWN0KHZvaWQpOwpleHRlcm4gdm9pZCBhcGljX2ludHJf
bW9kZV9pbml0KHZvaWQpOwpleHRlcm4gdm9pZCBpbml0X2FwaWNfbWFwcGluZ3Modm9pZCk7CnZv
aWQgcmVnaXN0ZXJfbGFwaWNfYWRkcmVzcyh1bnNpZ25lZCBsb25nIGFkZHJlc3MpOwpleHRlcm4g
dm9pZCBzZXR1cF9ib290X0FQSUNfY2xvY2sodm9pZCk7CmV4dGVybiB2b2lkIHNldHVwX3NlY29u
ZGFyeV9BUElDX2Nsb2NrKHZvaWQpOwpleHRlcm4gdm9pZCBsYXBpY191cGRhdGVfdHNjX2ZyZXEo
dm9pZCk7CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IGFwaWNfZm9yY2VfZW5hYmxlKHVuc2lnbmVkIGxvbmcgYWRkcikKewogcmV0
dXJuIC0xOwp9CgoKCgpleHRlcm4gdm9pZCBhcGljX2FwX3NldHVwKHZvaWQpOwoKCgoKCmV4dGVy
biBpbnQgYXBpY19pc19jbHVzdGVyZWRfYm94KHZvaWQpOwoKCgoKCgoKZXh0ZXJuIGludCBzZXR1
cF9BUElDX2VpbHZ0KHU4IGx2dF9vZmYsIHU4IHZlY3RvciwgdTggbXNnX3R5cGUsIHU4IG1hc2sp
OwpleHRlcm4gdm9pZCBsYXBpY19hc3NpZ25fc3lzdGVtX3ZlY3RvcnModm9pZCk7CmV4dGVybiB2
b2lkIGxhcGljX2Fzc2lnbl9sZWdhY3lfdmVjdG9yKHVuc2lnbmVkIGludCBpc2FpcnEsIGJvb2wg
cmVwbGFjZSk7CmV4dGVybiB2b2lkIGxhcGljX29ubGluZSh2b2lkKTsKZXh0ZXJuIHZvaWQgbGFw
aWNfb2ZmbGluZSh2b2lkKTsKZXh0ZXJuIGJvb2wgYXBpY19uZWVkc19waXQodm9pZCk7CgpleHRl
cm4gdm9pZCBhcGljX3NlbmRfSVBJX2FsbGJ1dHNlbGYodW5zaWduZWQgaW50IHZlY3Rvcik7CiMg
MjcxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja194MmFwaWModm9p
ZCkgeyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgeDJhcGljX3NldHVwKHZvaWQpIHsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgeDJhcGljX2VuYWJsZWQodm9p
ZCkgeyByZXR1cm4gMDsgfQoKCgoKCnN0cnVjdCBpcnFfZGF0YTsKIyAyOTAgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYXBpYy5oIgpzdHJ1Y3QgYXBpYyB7Cgogdm9pZCAoKmVvaV93cml0ZSkodTMy
IHJlZywgdTMyIHYpOwogdm9pZCAoKm5hdGl2ZV9lb2lfd3JpdGUpKHUzMiByZWcsIHUzMiB2KTsK
IHZvaWQgKCp3cml0ZSkodTMyIHJlZywgdTMyIHYpOwogdTMyICgqcmVhZCkodTMyIHJlZyk7CgoK
IHZvaWQgKCp3YWl0X2ljcl9pZGxlKSh2b2lkKTsKIHUzMiAoKnNhZmVfd2FpdF9pY3JfaWRsZSko
dm9pZCk7Cgogdm9pZCAoKnNlbmRfSVBJKShpbnQgY3B1LCBpbnQgdmVjdG9yKTsKIHZvaWQgKCpz
ZW5kX0lQSV9tYXNrKShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywgaW50IHZlY3Rvcik7CiB2
b2lkICgqc2VuZF9JUElfbWFza19hbGxidXRzZWxmKShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbXNr
LCBpbnQgdmVjKTsKIHZvaWQgKCpzZW5kX0lQSV9hbGxidXRzZWxmKShpbnQgdmVjdG9yKTsKIHZv
aWQgKCpzZW5kX0lQSV9hbGwpKGludCB2ZWN0b3IpOwogdm9pZCAoKnNlbmRfSVBJX3NlbGYpKGlu
dCB2ZWN0b3IpOwoKCiB1MzIgZGVzdF9sb2dpY2FsOwogdTMyIGRpc2FibGVfZXNyOwogdTMyIGly
cV9kZWxpdmVyeV9tb2RlOwogdTMyIGlycV9kZXN0X21vZGU7CgogdTMyICgqY2FsY19kZXN0X2Fw
aWNpZCkodW5zaWduZWQgaW50IGNwdSk7CgoKIHU2NCAoKmljcl9yZWFkKSh2b2lkKTsKIHZvaWQg
KCppY3Jfd3JpdGUpKHUzMiBsb3csIHUzMiBoaWdoKTsKCgogaW50ICgqcHJvYmUpKHZvaWQpOwog
aW50ICgqYWNwaV9tYWR0X29lbV9jaGVjaykoY2hhciAqb2VtX2lkLCBjaGFyICpvZW1fdGFibGVf
aWQpOwogaW50ICgqYXBpY19pZF92YWxpZCkodTMyIGFwaWNpZCk7CiBpbnQgKCphcGljX2lkX3Jl
Z2lzdGVyZWQpKHZvaWQpOwoKIGJvb2wgKCpjaGVja19hcGljaWRfdXNlZCkocGh5c2lkX21hc2tf
dCAqbWFwLCBpbnQgYXBpY2lkKTsKIHZvaWQgKCppbml0X2FwaWNfbGRyKSh2b2lkKTsKIHZvaWQg
KCppb2FwaWNfcGh5c19pZF9tYXApKHBoeXNpZF9tYXNrX3QgKnBoeXNfbWFwLCBwaHlzaWRfbWFz
a190ICpyZXRtYXApOwogdm9pZCAoKnNldHVwX2FwaWNfcm91dGluZykodm9pZCk7CiBpbnQgKCpj
cHVfcHJlc2VudF90b19hcGljaWQpKGludCBtcHNfY3B1KTsKIHZvaWQgKCphcGljaWRfdG9fY3B1
X3ByZXNlbnQpKGludCBwaHlzX2FwaWNpZCwgcGh5c2lkX21hc2tfdCAqcmV0bWFwKTsKIGludCAo
KmNoZWNrX3BoeXNfYXBpY2lkX3ByZXNlbnQpKGludCBwaHlzX2FwaWNpZCk7CiBpbnQgKCpwaHlz
X3BrZ19pZCkoaW50IGNwdWlkX2FwaWMsIGludCBpbmRleF9tc2IpOwoKIHUzMiAoKmdldF9hcGlj
X2lkKSh1bnNpZ25lZCBsb25nIHgpOwogdTMyICgqc2V0X2FwaWNfaWQpKHVuc2lnbmVkIGludCBp
ZCk7CgoKIGludCAoKndha2V1cF9zZWNvbmRhcnlfY3B1KShpbnQgYXBpY2lkLCB1bnNpZ25lZCBs
b25nIHN0YXJ0X2VpcCk7Cgogdm9pZCAoKmlucXVpcmVfcmVtb3RlX2FwaWMpKGludCBhcGljaWQp
OwojIDM1NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiCiBjaGFyICpuYW1lOwp9OwoK
CgoKCgpleHRlcm4gc3RydWN0IGFwaWMgKmFwaWM7CiMgMzg0ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2FwaWMuaCIKZXh0ZXJuIHN0cnVjdCBhcGljICpfX2FwaWNkcml2ZXJzW10sICpfX2FwaWNk
cml2ZXJzX2VuZFtdOwoKCgoKCmV4dGVybiBpbnQgd2FrZXVwX3NlY29uZGFyeV9jcHVfdmlhX25t
aShpbnQgYXBpY2lkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X2VpcCk7CmV4dGVybiBpbnQgbGFwaWNf
Y2FuX3VucGx1Z19jcHUodm9pZCk7CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgYXBpY19yZWFkKHUzMiByZWcpCnsKIHJldHVy
biBhcGljLT5yZWFkKHJlZyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXBpY193cml0ZSh1MzIgcmVnLCB1MzIgdmFsKQp7
CiBhcGljLT53cml0ZShyZWcsIHZhbCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXBpY19lb2kodm9pZCkKewogYXBpYy0+
ZW9pX3dyaXRlKDB4QjAsIDB4MCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBhcGljX2ljcl9yZWFkKHZvaWQpCnsKIHJldHVy
biBhcGljLT5pY3JfcmVhZCgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFwaWNfaWNyX3dyaXRlKHUzMiBsb3csIHUzMiBo
aWdoKQp7CiBhcGljLT5pY3Jfd3JpdGUobG93LCBoaWdoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcGljX3dhaXRfaWNy
X2lkbGUodm9pZCkKewogYXBpYy0+d2FpdF9pY3JfaWRsZSgpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgc2FmZV9hcGljX3dh
aXRfaWNyX2lkbGUodm9pZCkKewogcmV0dXJuIGFwaWMtPnNhZmVfd2FpdF9pY3JfaWRsZSgpOwp9
CgpleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkg
X19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBhcGljX3NldF9lb2lfd3JpdGUodm9pZCAoKmVvaV93
cml0ZSkodTMyIHJlZywgdTMyIHYpKTsKIyA0NDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBp
Yy5oIgpleHRlcm4gdm9pZCBhcGljX2Fja19pcnEoc3RydWN0IGlycV9kYXRhICpkYXRhKTsKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgYWNrX0FQSUNfaXJxKHZvaWQpCnsKCgoKCiBhcGljX2VvaSgpOwp9CgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBsYXBpY192
ZWN0b3Jfc2V0X2luX2lycih1bnNpZ25lZCBpbnQgdmVjdG9yKQp7CiB1MzIgaXJyID0gYXBpY19y
ZWFkKDB4MjAwICsgKHZlY3RvciAvIDMyICogMHgxMCkpOwoKIHJldHVybiAhIShpcnIgJiAoMVUg
PDwgKHZlY3RvciAlIDMyKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBkZWZhdWx0X2dldF9hcGljX2lkKHVuc2ln
bmVkIGxvbmcgeCkKewogdW5zaWduZWQgaW50IHZlciA9ICgoYXBpY19yZWFkKDB4MzApKSAmIDB4
RkZ1KTsKCiBpZiAoKCh2ZXIpID49IDB4MTQpIHx8IChfX2J1aWx0aW5fY29uc3RhbnRfcCgoIDMq
MzIrMjYpKSAmJiAoICgoKCggMyozMisyNikpPj41KT09KDApICYmICgxVUw8PCgoKCAzKjMyKzI2
KSkmMzEpICYgKCgxPDwoKCAwKjMyKyAwKSAmIDMxKSl8MHwoMTw8KCggMCozMisgNSkgJiAzMSkp
fCgxPDwoKCAwKjMyKyA2KSAmIDMxKSl8ICgxPDwoKCAwKjMyKyA4KSAmIDMxKSl8MHwoMTw8KCgg
MCozMisyNCkgJiAzMSkpfCgxPDwoKCAwKjMyKzE1KSAmIDMxKSl8ICgxPDwoKCAwKjMyKzI1KSAm
IDMxKSl8KDE8PCgoIDAqMzIrMjYpICYgMzEpKSkgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0o
MSkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAoKDE8PCgoIDEqMzIrMjkpICYgMzEpKXww
KSApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9PSgyKSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMx
KSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMykgJiYgKDFVTDw8KCgoIDMqMzIrMjYp
KSYzMSkgJiAoKDE8PCgoIDMqMzIrMjApICYgMzEpKSkgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUp
PT0oNCkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAoMCkgKSkgfHwgKCgoKCAzKjMyKzI2
KSk+PjUpPT0oNSkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyoz
MisyNikpPj41KT09KDYpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgo
IDMqMzIrMjYpKT4+NSk9PSg3KSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwg
KCgoKCAzKjMyKzI2KSk+PjUpPT0oOCkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkp
IHx8ICgoKCggMyozMisyNikpPj41KT09KDkpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYg
MCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9PSgxMCkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYz
MSkgJiAwICkpIHx8ICgoKCggMyozMisyNikpPj41KT09KDExKSAmJiAoMVVMPDwoKCggMyozMisy
NikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMTIpICYmICgxVUw8PCgoKCAz
KjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9PSgxMykgJiYgKDFVTDw8
KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyozMisyNikpPj41KT09KDE0KSAmJiAo
MVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMTUp
ICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9
PSgxNikgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyozMisyNikp
Pj41KT09KDE3KSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMy
KzI2KSk+PjUpPT0oMTgpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKGlu
dCkoc2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkgfHwgKChpbnQpKHNp
emVvZihzdHJ1Y3QgeyBpbnQ6KC0hISgxOSAhPSAxOSkpOyB9KSkpKSA/IDEgOiB0ZXN0X2JpdCgo
IDMqMzIrMjYpLCAodW5zaWduZWQgbG9uZyAqKSgoJmJvb3RfY3B1X2RhdGEpLT54ODZfY2FwYWJp
bGl0eSkpKSkKICByZXR1cm4gKHggPj4gMjQpICYgMHhGRjsKIGVsc2UKICByZXR1cm4gKHggPj4g
MjQpICYgMHgwRjsKfQoKCgoKCgoKZXh0ZXJuIHZvaWQgZ2VuZXJpY19iaWdzbXBfcHJvYmUodm9p
ZCk7CgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zbXAuaCIgMQojIDQ4NiAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiIDIKCgoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rp
b24oIi5kYXRhLi5wZXJjcHUiICIuLnJlYWRfbW9zdGx5IikpKSBfX3R5cGVvZl9fKHUxNikgeDg2
X2Jpb3NfY3B1X2FwaWNpZDsgZXh0ZXJuIF9fdHlwZW9mX18odTE2KSAqeDg2X2Jpb3NfY3B1X2Fw
aWNpZF9lYXJseV9wdHI7IGV4dGVybiBfX3R5cGVvZl9fKHUxNikgeDg2X2Jpb3NfY3B1X2FwaWNp
ZF9lYXJseV9tYXBbXTsKCmV4dGVybiBzdHJ1Y3QgYXBpYyBhcGljX25vb3A7CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBp
bnQgcmVhZF9hcGljX2lkKHZvaWQpCnsKIHVuc2lnbmVkIGludCByZWcgPSBhcGljX3JlYWQoMHgy
MCk7CgogcmV0dXJuIGFwaWMtPmdldF9hcGljX2lkKHJlZyk7Cn0KCmV4dGVybiBpbnQgZGVmYXVs
dF9hcGljX2lkX3ZhbGlkKHUzMiBhcGljaWQpOwpleHRlcm4gaW50IGRlZmF1bHRfYWNwaV9tYWR0
X29lbV9jaGVjayhjaGFyICosIGNoYXIgKik7CmV4dGVybiB2b2lkIGRlZmF1bHRfc2V0dXBfYXBp
Y19yb3V0aW5nKHZvaWQpOwoKZXh0ZXJuIHUzMiBhcGljX2RlZmF1bHRfY2FsY19hcGljaWQodW5z
aWduZWQgaW50IGNwdSk7CmV4dGVybiB1MzIgYXBpY19mbGF0X2NhbGNfYXBpY2lkKHVuc2lnbmVk
IGludCBjcHUpOwoKZXh0ZXJuIGJvb2wgZGVmYXVsdF9jaGVja19hcGljaWRfdXNlZChwaHlzaWRf
bWFza190ICptYXAsIGludCBhcGljaWQpOwpleHRlcm4gdm9pZCBkZWZhdWx0X2lvYXBpY19waHlz
X2lkX21hcChwaHlzaWRfbWFza190ICpwaHlzX21hcCwgcGh5c2lkX21hc2tfdCAqcmV0bWFwKTsK
ZXh0ZXJuIGludCBkZWZhdWx0X2NwdV9wcmVzZW50X3RvX2FwaWNpZChpbnQgbXBzX2NwdSk7CmV4
dGVybiBpbnQgZGVmYXVsdF9jaGVja19waHlzX2FwaWNpZF9wcmVzZW50KGludCBwaHlzX2FwaWNp
ZCk7CgoKCgpib29sIGFwaWNfaWRfaXNfcHJpbWFyeV90aHJlYWQodW5zaWduZWQgaW50IGlkKTsK
dm9pZCBhcGljX3NtdF91cGRhdGUodm9pZCk7CgoKCgoKZXh0ZXJuIHZvaWQgaXJxX2VudGVyKHZv
aWQpOwpleHRlcm4gdm9pZCBpcnFfZXhpdCh2b2lkKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZW50ZXJpbmdfaXJxKHZvaWQp
CnsKIGlycV9lbnRlcigpOwoga3ZtX3NldF9jcHVfbDF0Zl9mbHVzaF9sMWQoKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBl
bnRlcmluZ19hY2tfaXJxKHZvaWQpCnsKIGVudGVyaW5nX2lycSgpOwogYWNrX0FQSUNfaXJxKCk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgaXBpX2VudGVyaW5nX2Fja19pcnEodm9pZCkKewogaXJxX2VudGVyKCk7CiBhY2tf
QVBJQ19pcnEoKTsKIGt2bV9zZXRfY3B1X2wxdGZfZmx1c2hfbDFkKCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZXhpdGlu
Z19pcnEodm9pZCkKewogaXJxX2V4aXQoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBleGl0aW5nX2Fja19pcnEodm9pZCkK
ewogYWNrX0FQSUNfaXJxKCk7CiBpcnFfZXhpdCgpOwp9CgpleHRlcm4gdm9pZCBpb2FwaWNfemFw
X2xvY2tzKHZvaWQpOwojIDE0ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NtcC5oIiAyCgojIDEg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vaW9fYXBpYy5oIiAxCgoKCgoKCgojIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaXJxX3ZlY3RvcnMuaCIgMQojIDkgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vaW9fYXBpYy5oIiAyCiMgMjggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vaW9fYXBpYy5oIgp1
bmlvbiBJT19BUElDX3JlZ18wMCB7CiB1MzIgcmF3Owogc3RydWN0IHsKICB1MzIgX19yZXNlcnZl
ZF8yIDogMTQsCiAgIExUUyA6IDEsCiAgIGRlbGl2ZXJ5X3R5cGUgOiAxLAogICBfX3Jlc2VydmVk
XzEgOiA4LAogICBJRCA6IDg7CiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBiaXRzOwp9OwoK
dW5pb24gSU9fQVBJQ19yZWdfMDEgewogdTMyIHJhdzsKIHN0cnVjdCB7CiAgdTMyIHZlcnNpb24g
OiA4LAogICBfX3Jlc2VydmVkXzIgOiA3LAogICBQUlEgOiAxLAogICBlbnRyaWVzIDogOCwKICAg
X19yZXNlcnZlZF8xIDogODsKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIGJpdHM7Cn07Cgp1
bmlvbiBJT19BUElDX3JlZ18wMiB7CiB1MzIgcmF3Owogc3RydWN0IHsKICB1MzIgX19yZXNlcnZl
ZF8yIDogMjQsCiAgIGFyYml0cmF0aW9uIDogNCwKICAgX19yZXNlcnZlZF8xIDogNDsKIH0gX19h
dHRyaWJ1dGVfXyAoKHBhY2tlZCkpIGJpdHM7Cn07Cgp1bmlvbiBJT19BUElDX3JlZ18wMyB7CiB1
MzIgcmF3Owogc3RydWN0IHsKICB1MzIgYm9vdF9EVCA6IDEsCiAgIF9fcmVzZXJ2ZWRfMSA6IDMx
OwogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgYml0czsKfTsKCnN0cnVjdCBJT19BUElDX3Jv
dXRlX2VudHJ5IHsKIF9fdTMyIHZlY3RvciA6IDgsCiAgZGVsaXZlcnlfbW9kZSA6IDMsCgoKCiAg
ZGVzdF9tb2RlIDogMSwKICBkZWxpdmVyeV9zdGF0dXMgOiAxLAogIHBvbGFyaXR5IDogMSwKICBp
cnIgOiAxLAogIHRyaWdnZXIgOiAxLAogIG1hc2sgOiAxLAogIF9fcmVzZXJ2ZWRfMiA6IDE1OwoK
IF9fdTMyIF9fcmVzZXJ2ZWRfMyA6IDI0LAogIGRlc3QgOiA4Owp9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKTsKCnN0cnVjdCBJUl9JT19BUElDX3JvdXRlX2VudHJ5IHsKIF9fdTY0IHZlY3RvciA6
IDgsCiAgemVybyA6IDMsCiAgaW5kZXgyIDogMSwKICBkZWxpdmVyeV9zdGF0dXMgOiAxLAogIHBv
bGFyaXR5IDogMSwKICBpcnIgOiAxLAogIHRyaWdnZXIgOiAxLAogIG1hc2sgOiAxLAogIHJlc2Vy
dmVkIDogMzEsCiAgZm9ybWF0IDogMSwKICBpbmRleCA6IDE1Owp9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKTsKCnN0cnVjdCBpcnFfYWxsb2NfaW5mbzsKc3RydWN0IGlvYXBpY19kb21haW5fY2Zn
OwojIDEyMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb19hcGljLmgiCmV4dGVybiBpbnQgbnJf
aW9hcGljczsKCmV4dGVybiBpbnQgbXBjX2lvYXBpY19pZChpbnQgaW9hcGljKTsKZXh0ZXJuIHVu
c2lnbmVkIGludCBtcGNfaW9hcGljX2FkZHIoaW50IGlvYXBpYyk7CgoKZXh0ZXJuIGludCBtcF9p
cnFfZW50cmllczsKCgpleHRlcm4gc3RydWN0IG1wY19pbnRzcmMgbXBfaXJxc1soMjU2ICogNCld
OwoKCmV4dGVybiBpbnQgc2tpcF9pb2FwaWNfc2V0dXA7CgoKZXh0ZXJuIGludCBub2lvYXBpY3F1
aXJrOwoKCmV4dGVybiBpbnQgbm9pb2FwaWNyZXJvdXRlOwoKZXh0ZXJuIHUzMiBnc2lfdG9wOwoK
ZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOwojIDE1NiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9pb19hcGljLmgiCnN0cnVjdCBpcnFfY2ZnOwpleHRlcm4gdm9pZCBpb2FwaWNfaW5z
ZXJ0X3Jlc291cmNlcyh2b2lkKTsKZXh0ZXJuIGludCBhcmNoX2Vhcmx5X2lvYXBpY19pbml0KHZv
aWQpOwoKZXh0ZXJuIGludCBzYXZlX2lvYXBpY19lbnRyaWVzKHZvaWQpOwpleHRlcm4gdm9pZCBt
YXNrX2lvYXBpY19lbnRyaWVzKHZvaWQpOwpleHRlcm4gaW50IHJlc3RvcmVfaW9hcGljX2VudHJp
ZXModm9pZCk7CgpleHRlcm4gdm9pZCBzZXR1cF9pb2FwaWNfaWRzX2Zyb21fbXBjKHZvaWQpOwpl
eHRlcm4gdm9pZCBzZXR1cF9pb2FwaWNfaWRzX2Zyb21fbXBjX25vY2hlY2sodm9pZCk7CgpleHRl
cm4gaW50IG1wX2ZpbmRfaW9hcGljKHUzMiBnc2kpOwpleHRlcm4gaW50IG1wX2ZpbmRfaW9hcGlj
X3BpbihpbnQgaW9hcGljLCB1MzIgZ3NpKTsKZXh0ZXJuIGludCBtcF9tYXBfZ3NpX3RvX2lycSh1
MzIgZ3NpLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAgICAgICAgc3RydWN0IGlycV9hbGxvY19pbmZv
ICppbmZvKTsKZXh0ZXJuIHZvaWQgbXBfdW5tYXBfaXJxKGludCBpcnEpOwpleHRlcm4gaW50IG1w
X3JlZ2lzdGVyX2lvYXBpYyhpbnQgaWQsIHUzMiBhZGRyZXNzLCB1MzIgZ3NpX2Jhc2UsCiAgICAg
ICAgIHN0cnVjdCBpb2FwaWNfZG9tYWluX2NmZyAqY2ZnKTsKZXh0ZXJuIGludCBtcF91bnJlZ2lz
dGVyX2lvYXBpYyh1MzIgZ3NpX2Jhc2UpOwpleHRlcm4gaW50IG1wX2lvYXBpY19yZWdpc3RlcmVk
KHUzMiBnc2lfYmFzZSk7CgpleHRlcm4gdm9pZCBpb2FwaWNfc2V0X2FsbG9jX2F0dHIoc3RydWN0
IGlycV9hbGxvY19pbmZvICppbmZvLAogICAgICBpbnQgbm9kZSwgaW50IHRyaWdnZXIsIGludCBw
b2xhcml0eSk7CgpleHRlcm4gdm9pZCBtcF9zYXZlX2lycShzdHJ1Y3QgbXBjX2ludHNyYyAqbSk7
CgpleHRlcm4gdm9pZCBkaXNhYmxlX2lvYXBpY19zdXBwb3J0KHZvaWQpOwoKZXh0ZXJuIHZvaWQg
X19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18o
KF9fY29sZF9fKSkgaW9fYXBpY19pbml0X21hcHBpbmdzKHZvaWQpOwpleHRlcm4gdW5zaWduZWQg
aW50IG5hdGl2ZV9pb19hcGljX3JlYWQodW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCBy
ZWcpOwpleHRlcm4gdm9pZCBuYXRpdmVfcmVzdG9yZV9ib290X2lycV9tb2RlKHZvaWQpOwoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5z
aWduZWQgaW50IGlvX2FwaWNfcmVhZCh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJl
ZykKewogcmV0dXJuIHg4Nl9hcGljX29wcy5pb19hcGljX3JlYWQoYXBpYywgcmVnKTsKfQoKZXh0
ZXJuIHZvaWQgc2V0dXBfSU9fQVBJQyh2b2lkKTsKZXh0ZXJuIHZvaWQgZW5hYmxlX0lPX0FQSUMo
dm9pZCk7CmV4dGVybiB2b2lkIGNsZWFyX0lPX0FQSUModm9pZCk7CmV4dGVybiB2b2lkIHJlc3Rv
cmVfYm9vdF9pcnFfbW9kZSh2b2lkKTsKZXh0ZXJuIGludCBJT19BUElDX2dldF9QQ0lfaXJxX3Zl
Y3RvcihpbnQgYnVzLCBpbnQgZGV2Zm4sIGludCBwaW4pOwpleHRlcm4gdm9pZCBwcmludF9JT19B
UElDcyh2b2lkKTsKIyAxNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zbXAuaCIgMgoKCgoKCmV4
dGVybiBpbnQgc21wX251bV9zaWJsaW5nczsKZXh0ZXJuIHVuc2lnbmVkIGludCBudW1fcHJvY2Vz
c29yczsKCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5y
ZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyhjcHVtYXNrX3Zhcl90KSBjcHVfc2libGluZ19tYXA7
CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21v
c3RseSIpKSkgX190eXBlb2ZfXyhjcHVtYXNrX3Zhcl90KSBjcHVfY29yZV9tYXA7CmV4dGVybiBf
X2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkg
X190eXBlb2ZfXyhjcHVtYXNrX3Zhcl90KSBjcHVfZGllX21hcDsKCmV4dGVybiBfX2F0dHJpYnV0
ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2Zf
XyhjcHVtYXNrX3Zhcl90KSBjcHVfbGxjX3NoYXJlZF9tYXA7CmV4dGVybiBfX2F0dHJpYnV0ZV9f
KChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyh1
MTYpIGNwdV9sbGNfaWQ7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVy
Y3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyhpbnQpIGNwdV9udW1iZXI7CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3QgY3B1bWFzayAqY3B1X2xsY19zaGFyZWRfbWFzayhpbnQgY3B1KQp7CiByZXR1cm4gKCooeyBk
byB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X2xsY19zaGFyZWRf
bWFwKSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsg
KHsgdW5zaWduZWQgbG9uZyBfX3B0cjsgX19hc21fXyAoIiIgOiAiPXIiKF9fcHRyKSA6ICIwIigo
dHlwZW9mKCooKCYoY3B1X2xsY19zaGFyZWRfbWFwKSkpKSAqKSgoJihjcHVfbGxjX3NoYXJlZF9t
YXApKSkpKTsgKHR5cGVvZigodHlwZW9mKCooKCYoY3B1X2xsY19zaGFyZWRfbWFwKSkpKSAqKSgo
JihjcHVfbGxjX3NoYXJlZF9tYXApKSkpKSAoX19wdHIgKyAoKChfX3Blcl9jcHVfb2Zmc2V0Wyhj
cHUpXSkpKSk7IH0pOyB9KSk7Cn0KCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0
YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyh1MTYpIHg4Nl9jcHVfdG9f
YXBpY2lkOyBleHRlcm4gX190eXBlb2ZfXyh1MTYpICp4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9w
dHI7IGV4dGVybiBfX3R5cGVvZl9fKHUxNikgeDg2X2NwdV90b19hcGljaWRfZWFybHlfbWFwW107
CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21v
c3RseSIpKSkgX190eXBlb2ZfXyh1MzIpIHg4Nl9jcHVfdG9fYWNwaWlkOyBleHRlcm4gX190eXBl
b2ZfXyh1MzIpICp4ODZfY3B1X3RvX2FjcGlpZF9lYXJseV9wdHI7IGV4dGVybiBfX3R5cGVvZl9f
KHUzMikgeDg2X2NwdV90b19hY3BpaWRfZWFybHlfbWFwW107CmV4dGVybiBfX2F0dHJpYnV0ZV9f
KChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyh1
MTYpIHg4Nl9iaW9zX2NwdV9hcGljaWQ7IGV4dGVybiBfX3R5cGVvZl9fKHUxNikgKng4Nl9iaW9z
X2NwdV9hcGljaWRfZWFybHlfcHRyOyBleHRlcm4gX190eXBlb2ZfXyh1MTYpIHg4Nl9iaW9zX2Nw
dV9hcGljaWRfZWFybHlfbWFwW107CgoKCgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CgpzdHJ1Y3Qgc21w
X29wcyB7CiB2b2lkICgqc21wX3ByZXBhcmVfYm9vdF9jcHUpKHZvaWQpOwogdm9pZCAoKnNtcF9w
cmVwYXJlX2NwdXMpKHVuc2lnbmVkIG1heF9jcHVzKTsKIHZvaWQgKCpzbXBfY3B1c19kb25lKSh1
bnNpZ25lZCBtYXhfY3B1cyk7Cgogdm9pZCAoKnN0b3Bfb3RoZXJfY3B1cykoaW50IHdhaXQpOwog
dm9pZCAoKmNyYXNoX3N0b3Bfb3RoZXJfY3B1cykodm9pZCk7CiB2b2lkICgqc21wX3NlbmRfcmVz
Y2hlZHVsZSkoaW50IGNwdSk7CgogaW50ICgqY3B1X3VwKSh1bnNpZ25lZCBjcHUsIHN0cnVjdCB0
YXNrX3N0cnVjdCAqdGlkbGUpOwogaW50ICgqY3B1X2Rpc2FibGUpKHZvaWQpOwogdm9pZCAoKmNw
dV9kaWUpKHVuc2lnbmVkIGludCBjcHUpOwogdm9pZCAoKnBsYXlfZGVhZCkodm9pZCk7Cgogdm9p
ZCAoKnNlbmRfY2FsbF9mdW5jX2lwaSkoY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1hc2spOwogdm9p
ZCAoKnNlbmRfY2FsbF9mdW5jX3NpbmdsZV9pcGkpKGludCBjcHUpOwp9OwoKCmV4dGVybiB2b2lk
IHNldF9jcHVfc2libGluZ19tYXAoaW50IGNwdSk7CgoKZXh0ZXJuIHN0cnVjdCBzbXBfb3BzIHNt
cF9vcHM7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHNtcF9zZW5kX3N0b3Aodm9pZCkKewogc21wX29wcy5zdG9wX290aGVyX2Nw
dXMoMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgc3RvcF9vdGhlcl9jcHVzKHZvaWQpCnsKIHNtcF9vcHMuc3RvcF9vdGhl
cl9jcHVzKDEpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHNtcF9wcmVwYXJlX2Jvb3RfY3B1KHZvaWQpCnsKIHNtcF9vcHMu
c21wX3ByZXBhcmVfYm9vdF9jcHUoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzbXBfcHJlcGFyZV9jcHVzKHVuc2lnbmVk
IGludCBtYXhfY3B1cykKewogc21wX29wcy5zbXBfcHJlcGFyZV9jcHVzKG1heF9jcHVzKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBzbXBfY3B1c19kb25lKHVuc2lnbmVkIGludCBtYXhfY3B1cykKewogc21wX29wcy5zbXBf
Y3B1c19kb25lKG1heF9jcHVzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fY3B1X3VwKHVuc2lnbmVkIGludCBjcHUsIHN0
cnVjdCB0YXNrX3N0cnVjdCAqdGlkbGUpCnsKIHJldHVybiBzbXBfb3BzLmNwdV91cChjcHUsIHRp
ZGxlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fY3B1X2Rpc2FibGUodm9pZCkKewogcmV0dXJuIHNtcF9vcHMuY3B1X2Rp
c2FibGUoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBfX2NwdV9kaWUodW5zaWduZWQgaW50IGNwdSkKewogc21wX29wcy5j
cHVfZGllKGNwdSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcGxheV9kZWFkKHZvaWQpCnsKIHNtcF9vcHMucGxheV9kZWFk
KCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgc21wX3NlbmRfcmVzY2hlZHVsZShpbnQgY3B1KQp7CiBzbXBfb3BzLnNtcF9z
ZW5kX3Jlc2NoZWR1bGUoY3B1KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX3NlbmRfY2FsbF9mdW5jdGlvbl9zaW5n
bGVfaXBpKGludCBjcHUpCnsKIHNtcF9vcHMuc2VuZF9jYWxsX2Z1bmNfc2luZ2xlX2lwaShjcHUp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGFyY2hfc2VuZF9jYWxsX2Z1bmN0aW9uX2lwaV9tYXNrKGNvbnN0IHN0cnVjdCBj
cHVtYXNrICptYXNrKQp7CiBzbXBfb3BzLnNlbmRfY2FsbF9mdW5jX2lwaShtYXNrKTsKfQoKdm9p
ZCBjcHVfZGlzYWJsZV9jb21tb24odm9pZCk7CnZvaWQgbmF0aXZlX3NtcF9wcmVwYXJlX2Jvb3Rf
Y3B1KHZvaWQpOwp2b2lkIG5hdGl2ZV9zbXBfcHJlcGFyZV9jcHVzKHVuc2lnbmVkIGludCBtYXhf
Y3B1cyk7CnZvaWQgY2FsY3VsYXRlX21heF9sb2dpY2FsX3BhY2thZ2VzKHZvaWQpOwp2b2lkIG5h
dGl2ZV9zbXBfY3B1c19kb25lKHVuc2lnbmVkIGludCBtYXhfY3B1cyk7CmludCBjb21tb25fY3B1
X3VwKHVuc2lnbmVkIGludCBjcHVudW0sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGlkbGUpOwppbnQg
bmF0aXZlX2NwdV91cCh1bnNpZ25lZCBpbnQgY3B1bnVtLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRp
ZGxlKTsKaW50IG5hdGl2ZV9jcHVfZGlzYWJsZSh2b2lkKTsKaW50IGNvbW1vbl9jcHVfZGllKHVu
c2lnbmVkIGludCBjcHUpOwp2b2lkIG5hdGl2ZV9jcHVfZGllKHVuc2lnbmVkIGludCBjcHUpOwp2
b2lkIGhsdF9wbGF5X2RlYWQodm9pZCk7CnZvaWQgbmF0aXZlX3BsYXlfZGVhZCh2b2lkKTsKdm9p
ZCBwbGF5X2RlYWRfY29tbW9uKHZvaWQpOwp2b2lkIHdiaW52ZF9vbl9jcHUoaW50IGNwdSk7Cmlu
dCB3YmludmRfb25fYWxsX2NwdXModm9pZCk7Cgp2b2lkIG5hdGl2ZV9zbXBfc2VuZF9yZXNjaGVk
dWxlKGludCBjcHUpOwp2b2lkIG5hdGl2ZV9zZW5kX2NhbGxfZnVuY19pcGkoY29uc3Qgc3RydWN0
IGNwdW1hc2sgKm1hc2spOwp2b2lkIG5hdGl2ZV9zZW5kX2NhbGxfZnVuY19zaW5nbGVfaXBpKGlu
dCBjcHUpOwp2b2lkIHg4Nl9pZGxlX3RocmVhZF9pbml0KHVuc2lnbmVkIGludCBjcHUsIHN0cnVj
dCB0YXNrX3N0cnVjdCAqaWRsZSk7Cgp2b2lkIHNtcF9zdG9yZV9ib290X2NwdV9pbmZvKHZvaWQp
Owp2b2lkIHNtcF9zdG9yZV9jcHVfaW5mbyhpbnQgaWQpOwoKIF9fYXR0cmlidXRlX18oKF9fZXh0
ZXJuYWxseV92aXNpYmxlX18pKSB2b2lkIHNtcF9yZWJvb3RfaW50ZXJydXB0KHZvaWQpOwpfX2F0
dHJpYnV0ZV9fKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSkgdm9pZCBzbXBfcmVzY2hlZHVsZV9p
bnRlcnJ1cHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwpfX2F0dHJpYnV0ZV9fKChfX2V4dGVybmFs
bHlfdmlzaWJsZV9fKSkgdm9pZCBzbXBfY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQoc3RydWN0IHB0
X3JlZ3MgKnJlZ3MpOwpfX2F0dHJpYnV0ZV9fKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSkgdm9p
ZCBzbXBfY2FsbF9mdW5jdGlvbl9zaW5nbGVfaW50ZXJydXB0KHN0cnVjdCBwdF9yZWdzICpyKTsK
IyAxODUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgiCmV4dGVybiB1bnNpZ25lZCBkaXNh
YmxlZF9jcHVzOwoKCmV4dGVybiBpbnQgaGFyZF9zbXBfcHJvY2Vzc29yX2lkKHZvaWQpOwojIDY4
ICIuL2luY2x1ZGUvbGludXgvc21wLmgiIDIKIyA3NyAiLi9pbmNsdWRlL2xpbnV4L3NtcC5oIgpl
eHRlcm4gdm9pZCBzbXBfc2VuZF9zdG9wKHZvaWQpOwoKCgoKZXh0ZXJuIHZvaWQgc21wX3NlbmRf
cmVzY2hlZHVsZShpbnQgY3B1KTsKCgoKCgpleHRlcm4gdm9pZCBzbXBfcHJlcGFyZV9jcHVzKHVu
c2lnbmVkIGludCBtYXhfY3B1cyk7CgoKCgpleHRlcm4gaW50IF9fY3B1X3VwKHVuc2lnbmVkIGlu
dCBjcHVudW0sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGlkbGUpOwoKCgoKZXh0ZXJuIHZvaWQgc21w
X2NwdXNfZG9uZSh1bnNpZ25lZCBpbnQgbWF4X2NwdXMpOwoKCgoKdm9pZCBzbXBfY2FsbF9mdW5j
dGlvbihzbXBfY2FsbF9mdW5jX3QgZnVuYywgdm9pZCAqaW5mbywgaW50IHdhaXQpOwp2b2lkIHNt
cF9jYWxsX2Z1bmN0aW9uX21hbnkoY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1hc2ssCiAgICAgICBz
bXBfY2FsbF9mdW5jX3QgZnVuYywgdm9pZCAqaW5mbywgYm9vbCB3YWl0KTsKCmludCBzbXBfY2Fs
bF9mdW5jdGlvbl9hbnkoY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1hc2ssCiAgICAgc21wX2NhbGxf
ZnVuY190IGZ1bmMsIHZvaWQgKmluZm8sIGludCB3YWl0KTsKCnZvaWQga2lja19hbGxfY3B1c19z
eW5jKHZvaWQpOwp2b2lkIHdha2VfdXBfYWxsX2lkbGVfY3B1cyh2b2lkKTsKCgoKCnZvaWQgX19h
dHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9f
Y29sZF9fKSkgY2FsbF9mdW5jdGlvbl9pbml0KHZvaWQpOwp2b2lkIGdlbmVyaWNfc21wX2NhbGxf
ZnVuY3Rpb25fc2luZ2xlX2ludGVycnVwdCh2b2lkKTsKCgoKCgoKCnZvaWQgc21wX3ByZXBhcmVf
Ym9vdF9jcHUodm9pZCk7CgpleHRlcm4gdW5zaWduZWQgaW50IHNldHVwX21heF9jcHVzOwpleHRl
cm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRy
aWJ1dGVfXygoX19jb2xkX18pKSBzZXR1cF9ucl9jcHVfaWRzKHZvaWQpOwpleHRlcm4gdm9pZCBf
X2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygo
X19jb2xkX18pKSBzbXBfaW5pdCh2b2lkKTsKCmV4dGVybiBpbnQgX19ib290X2NwdV9pZDsKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBnZXRfYm9vdF9jcHVfaWQodm9pZCkKewogcmV0dXJuIF9fYm9vdF9jcHVfaWQ7Cn0KIyAyMjgg
Ii4vaW5jbHVkZS9saW51eC9zbXAuaCIKZXh0ZXJuIHZvaWQgYXJjaF9kaXNhYmxlX3NtcF9zdXBw
b3J0KHZvaWQpOwoKZXh0ZXJuIHZvaWQgYXJjaF9lbmFibGVfbm9uYm9vdF9jcHVzX2JlZ2luKHZv
aWQpOwpleHRlcm4gdm9pZCBhcmNoX2VuYWJsZV9ub25ib290X2NwdXNfZW5kKHZvaWQpOwoKdm9p
ZCBzbXBfc2V0dXBfcHJvY2Vzc29yX2lkKHZvaWQpOwoKaW50IHNtcF9jYWxsX29uX2NwdSh1bnNp
Z25lZCBpbnQgY3B1LCBpbnQgKCpmdW5jKSh2b2lkICopLCB2b2lkICpwYXIsCiAgICAgIGJvb2wg
cGh5cyk7CgoKaW50IHNtcGNmZF9wcmVwYXJlX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKaW50IHNt
cGNmZF9kZWFkX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKaW50IHNtcGNmZF9keWluZ19jcHUodW5z
aWduZWQgaW50IGNwdSk7CiMgOCAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS5oIiAyCiMgNjUgIi4v
aW5jbHVkZS9saW51eC9wZXJjcHUuaCIKZXh0ZXJuIHZvaWQgKnBjcHVfYmFzZV9hZGRyOwpleHRl
cm4gY29uc3QgdW5zaWduZWQgbG9uZyAqcGNwdV91bml0X29mZnNldHM7CgpzdHJ1Y3QgcGNwdV9n
cm91cF9pbmZvIHsKIGludCBucl91bml0czsKIHVuc2lnbmVkIGxvbmcgYmFzZV9vZmZzZXQ7CiB1
bnNpZ25lZCBpbnQgKmNwdV9tYXA7Cgp9OwoKc3RydWN0IHBjcHVfYWxsb2NfaW5mbyB7CiBzaXpl
X3Qgc3RhdGljX3NpemU7CiBzaXplX3QgcmVzZXJ2ZWRfc2l6ZTsKIHNpemVfdCBkeW5fc2l6ZTsK
IHNpemVfdCB1bml0X3NpemU7CiBzaXplX3QgYXRvbV9zaXplOwogc2l6ZV90IGFsbG9jX3NpemU7
CiBzaXplX3QgX19haV9zaXplOwogaW50IG5yX2dyb3VwczsKIHN0cnVjdCBwY3B1X2dyb3VwX2lu
Zm8gZ3JvdXBzW107Cn07CgplbnVtIHBjcHVfZmMgewogUENQVV9GQ19BVVRPLAogUENQVV9GQ19F
TUJFRCwKIFBDUFVfRkNfUEFHRSwKCiBQQ1BVX0ZDX05SLAp9OwpleHRlcm4gY29uc3QgY2hhciAq
IGNvbnN0IHBjcHVfZmNfbmFtZXNbUENQVV9GQ19OUl07CgpleHRlcm4gZW51bSBwY3B1X2ZjIHBj
cHVfY2hvc2VuX2ZjOwoKdHlwZWRlZiB2b2lkICogKCpwY3B1X2ZjX2FsbG9jX2ZuX3QpKHVuc2ln
bmVkIGludCBjcHUsIHNpemVfdCBzaXplLAogICAgICAgICBzaXplX3QgYWxpZ24pOwp0eXBlZGVm
IHZvaWQgKCpwY3B1X2ZjX2ZyZWVfZm5fdCkodm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSk7CnR5cGVk
ZWYgdm9pZCAoKnBjcHVfZmNfcG9wdWxhdGVfcHRlX2ZuX3QpKHVuc2lnbmVkIGxvbmcgYWRkcik7
CnR5cGVkZWYgaW50IChwY3B1X2ZjX2NwdV9kaXN0YW5jZV9mbl90KSh1bnNpZ25lZCBpbnQgZnJv
bSwgdW5zaWduZWQgaW50IHRvKTsKCmV4dGVybiBzdHJ1Y3QgcGNwdV9hbGxvY19pbmZvICogX19h
dHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9f
Y29sZF9fKSkgcGNwdV9hbGxvY19hbGxvY19pbmZvKGludCBucl9ncm91cHMsCiAgICAgICAgICAg
IGludCBucl91bml0cyk7CmV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIu
aW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHBjcHVfZnJlZV9hbGxvY19p
bmZvKHN0cnVjdCBwY3B1X2FsbG9jX2luZm8gKmFpKTsKCmV4dGVybiB2b2lkIF9fYXR0cmlidXRl
X18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykp
IHBjcHVfc2V0dXBfZmlyc3RfY2h1bmsoY29uc3Qgc3RydWN0IHBjcHVfYWxsb2NfaW5mbyAqYWks
CiAgICAgIHZvaWQgKmJhc2VfYWRkcik7CgoKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBwY3B1X2Vt
YmVkX2ZpcnN0X2NodW5rKHNpemVfdCByZXNlcnZlZF9zaXplLCBzaXplX3QgZHluX3NpemUsCiAg
ICBzaXplX3QgYXRvbV9zaXplLAogICAgcGNwdV9mY19jcHVfZGlzdGFuY2VfZm5fdCBjcHVfZGlz
dGFuY2VfZm4sCiAgICBwY3B1X2ZjX2FsbG9jX2ZuX3QgYWxsb2NfZm4sCiAgICBwY3B1X2ZjX2Zy
ZWVfZm5fdCBmcmVlX2ZuKTsKCgoKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25f
XygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBwY3B1X3BhZ2VfZmly
c3RfY2h1bmsoc2l6ZV90IHJlc2VydmVkX3NpemUsCiAgICBwY3B1X2ZjX2FsbG9jX2ZuX3QgYWxs
b2NfZm4sCiAgICBwY3B1X2ZjX2ZyZWVfZm5fdCBmcmVlX2ZuLAogICAgcGNwdV9mY19wb3B1bGF0
ZV9wdGVfZm5fdCBwb3B1bGF0ZV9wdGVfZm4pOwoKCmV4dGVybiB2b2lkICpfX2FsbG9jX3Jlc2Vy
dmVkX3BlcmNwdShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWduKTsKZXh0ZXJuIGJvb2wgX19pc19r
ZXJuZWxfcGVyY3B1X2FkZHJlc3ModW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nICpj
YW5fYWRkcik7CmV4dGVybiBib29sIGlzX2tlcm5lbF9wZXJjcHVfYWRkcmVzcyh1bnNpZ25lZCBs
b25nIGFkZHIpOwoKCgoKCmV4dGVybiB2b2lkICpfX2FsbG9jX3BlcmNwdV9nZnAoc2l6ZV90IHNp
emUsIHNpemVfdCBhbGlnbiwgZ2ZwX3QgZ2ZwKTsKZXh0ZXJuIHZvaWQgKl9fYWxsb2NfcGVyY3B1
KHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ24pOwpleHRlcm4gdm9pZCBmcmVlX3BlcmNwdSh2b2lk
ICpfX3BkYXRhKTsKZXh0ZXJuIHBoeXNfYWRkcl90IHBlcl9jcHVfcHRyX3RvX3BoeXModm9pZCAq
YWRkcik7CiMgMTQ2ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LmgiCmV4dGVybiB1bnNpZ25lZCBs
b25nIHBjcHVfbnJfcGFnZXModm9pZCk7CiMgMTAgIi4vaW5jbHVkZS9saW51eC9hcmNoX3RvcG9s
b2d5LmgiIDIKCnZvaWQgdG9wb2xvZ3lfbm9ybWFsaXplX2NwdV9zY2FsZSh2b2lkKTsKaW50IHRv
cG9sb2d5X3VwZGF0ZV9jcHVfdG9wb2xvZ3kodm9pZCk7CgpzdHJ1Y3QgZGV2aWNlX25vZGU7CmJv
b2wgdG9wb2xvZ3lfcGFyc2VfY3B1X2NhcGFjaXR5KHN0cnVjdCBkZXZpY2Vfbm9kZSAqY3B1X25v
ZGUsIGludCBjcHUpOwoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJj
cHUiICIiKSkpIF9fdHlwZW9mX18odW5zaWduZWQgbG9uZykgY3B1X3NjYWxlOwoKc3RydWN0IHNj
aGVkX2RvbWFpbjsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkKdW5zaWduZWQgbG9uZyB0b3BvbG9neV9nZXRfY3B1X3NjYWxlKGludCBjcHUp
CnsKIHJldHVybiAoKih7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigo
JihjcHVfc2NhbGUpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hp
bGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBfX2FzbV9fICgiIiA6ICI9ciIoX19wdHIp
IDogIjAiKCh0eXBlb2YoKigoJihjcHVfc2NhbGUpKSkpICopKCgmKGNwdV9zY2FsZSkpKSkpOyAo
dHlwZW9mKCh0eXBlb2YoKigoJihjcHVfc2NhbGUpKSkpICopKCgmKGNwdV9zY2FsZSkpKSkpIChf
X3B0ciArICgoKF9fcGVyX2NwdV9vZmZzZXRbKGNwdSldKSkpKTsgfSk7IH0pKTsKfQoKdm9pZCB0
b3BvbG9neV9zZXRfY3B1X3NjYWxlKHVuc2lnbmVkIGludCBjcHUsIHVuc2lnbmVkIGxvbmcgY2Fw
YWNpdHkpOwoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIi
KSkpIF9fdHlwZW9mX18odW5zaWduZWQgbG9uZykgZnJlcV9zY2FsZTsKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpCnVuc2lnbmVkIGxvbmcg
dG9wb2xvZ3lfZ2V0X2ZyZXFfc2NhbGUoaW50IGNwdSkKewogcmV0dXJuICgqKHsgZG8geyBjb25z
dCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKGZyZXFfc2NhbGUpKSArIDApKSgodm9p
ZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25n
IF9fcHRyOyBfX2FzbV9fICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihmcmVx
X3NjYWxlKSkpKSAqKSgoJihmcmVxX3NjYWxlKSkpKSk7ICh0eXBlb2YoKHR5cGVvZigqKCgmKGZy
ZXFfc2NhbGUpKSkpICopKCgmKGZyZXFfc2NhbGUpKSkpKSAoX19wdHIgKyAoKChfX3Blcl9jcHVf
b2Zmc2V0WyhjcHUpXSkpKSk7IH0pOyB9KSk7Cn0KCnN0cnVjdCBjcHVfdG9wb2xvZ3kgewogaW50
IHRocmVhZF9pZDsKIGludCBjb3JlX2lkOwogaW50IHBhY2thZ2VfaWQ7CiBpbnQgbGxjX2lkOwog
Y3B1bWFza190IHRocmVhZF9zaWJsaW5nOwogY3B1bWFza190IGNvcmVfc2libGluZzsKIGNwdW1h
c2tfdCBsbGNfc2libGluZzsKfTsKIyAzMSAiLi9pbmNsdWRlL2xpbnV4L3RvcG9sb2d5LmgiIDIK
IyA0NiAiLi9pbmNsdWRlL2xpbnV4L3RvcG9sb2d5LmgiCmludCBhcmNoX3VwZGF0ZV9jcHVfdG9w
b2xvZ3kodm9pZCk7CiMgNzUgIi4vaW5jbHVkZS9saW51eC90b3BvbG9neS5oIgpleHRlcm4gaW50
IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIG5vZGVf
cmVjbGFpbV9kaXN0YW5jZTsKIyAxNzcgIi4vaW5jbHVkZS9saW51eC90b3BvbG9neS5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
bnVtYV9tZW1faWQodm9pZCkKewogcmV0dXJuIG51bWFfbm9kZV9pZCgpOwp9CgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBub2Rl
X3RvX21lbV9ub2RlKGludCBub2RlKQp7CiByZXR1cm4gbm9kZTsKfQojIDIxOSAiLi9pbmNsdWRl
L2xpbnV4L3RvcG9sb2d5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVfc210X21hc2soaW50
IGNwdSkKewogcmV0dXJuICgoKih7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5
cGVvZigoJihjcHVfc2libGluZ19tYXApKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92
ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBfX2FzbV9fICgiIiA6
ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihjcHVfc2libGluZ19tYXApKSkpICopKCgm
KGNwdV9zaWJsaW5nX21hcCkpKSkpOyAodHlwZW9mKCh0eXBlb2YoKigoJihjcHVfc2libGluZ19t
YXApKSkpICopKCgmKGNwdV9zaWJsaW5nX21hcCkpKSkpIChfX3B0ciArICgoKF9fcGVyX2NwdV9v
ZmZzZXRbKGNwdSldKSkpKTsgfSk7IH0pKSk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1
X2NwdV9tYXNrKGludCBjcHUpCnsKIHJldHVybiAoKHZvaWQpKCh2b2lkKShjcHUpLDApLCAoKGNv
bnN0IHN0cnVjdCBjcHVtYXNrICopJl9fY3B1X29ubGluZV9tYXNrKSk7Cn0KIyAxMCAiLi9pbmNs
dWRlL2xpbnV4L2dmcC5oIiAyCgpzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Q7CiMgMzA4ICIuL2luY2x1
ZGUvbGludXgvZ2ZwLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBnZnBmbGFnc190b19taWdyYXRldHlwZShjb25zdCBnZnBfdCBn
ZnBfZmxhZ3MpCnsKICgodm9pZCkoc2l6ZW9mKCggbG9uZykoKGdmcF9mbGFncyAmICgoKCBnZnBf
dCkweDEwdSl8KCggZ2ZwX3QpMHgwOHUpKSkgPT0gKCgoIGdmcF90KTB4MTB1KXwoKCBnZnBfdCkw
eDA4dSkpKSkpKTsKIGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMzExKHZv
aWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAiKDFV
TCA8PCBHRlBfTU9WQUJMRV9TSElGVCkgIT0gX19fR0ZQX01PVkFCTEUiKSkpOyBpZiAoISghKCgx
VUwgPDwgMykgIT0gMHgwOHUpKSkgX19jb21waWxldGltZV9hc3NlcnRfMzExKCk7IH0gd2hpbGUg
KDApOwogZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8zMTIodm9pZCkgX19h
dHRyaWJ1dGVfXygoX19lcnJvcl9fKCJCVUlMRF9CVUdfT04gZmFpbGVkOiAiICIoX19fR0ZQX01P
VkFCTEUgPj4gR0ZQX01PVkFCTEVfU0hJRlQpICE9IE1JR1JBVEVfTU9WQUJMRSIpKSk7IGlmICgh
KCEoKDB4MDh1ID4+IDMpICE9IE1JR1JBVEVfTU9WQUJMRSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF8zMTIoKTsgfSB3aGlsZSAoMCk7CgogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEocGFnZV9ncm91
cF9ieV9tb2JpbGl0eV9kaXNhYmxlZCksIDApKQogIHJldHVybiBNSUdSQVRFX1VOTU9WQUJMRTsK
CgogcmV0dXJuIChnZnBfZmxhZ3MgJiAoKCggZ2ZwX3QpMHgxMHUpfCgoIGdmcF90KTB4MDh1KSkp
ID4+IDM7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBnZnBmbGFnc19hbGxvd19ibG9ja2luZyhjb25zdCBnZnBfdCBnZnBf
ZmxhZ3MpCnsKIHJldHVybiAhIShnZnBfZmxhZ3MgJiAoKCBnZnBfdCkweDQwMHUpKTsKfQojIDM0
NSAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGdmcGZsYWdzX25vcm1hbF9jb250ZXh0KGNv
bnN0IGdmcF90IGdmcF9mbGFncykKewogcmV0dXJuIChnZnBfZmxhZ3MgJiAoKCggZ2ZwX3QpMHg0
MDB1KSB8ICgoIGdmcF90KTB4MjAwMDB1KSkpID09CiAgKCggZ2ZwX3QpMHg0MDB1KTsKfQojIDQ0
MSAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBlbnVtIHpvbmVfdHlwZSBnZnBfem9uZShnZnBfdCBm
bGFncykKewogZW51bSB6b25lX3R5cGUgejsKIGludCBiaXQgPSAoIGludCkgKGZsYWdzICYgKCgo
IGdmcF90KTB4MDF1KXwoKCBnZnBfdCkweDAydSl8KCggZ2ZwX3QpMHgwNHUpfCgoIGdmcF90KTB4
MDh1KSkpOwoKIHogPSAoKCAoWk9ORV9OT1JNQUwgPDwgMCAqIDIpIHwgKFpPTkVfRE1BIDw8IDB4
MDF1ICogMikgfCAoWk9ORV9OT1JNQUwgPDwgMHgwMnUgKiAyKSB8IChaT05FX0RNQTMyIDw8IDB4
MDR1ICogMikgfCAoWk9ORV9OT1JNQUwgPDwgMHgwOHUgKiAyKSB8IChaT05FX0RNQSA8PCAoMHgw
OHUgfCAweDAxdSkgKiAyKSB8IChaT05FX01PVkFCTEUgPDwgKDB4MDh1IHwgMHgwMnUpICogMikg
fCAoWk9ORV9ETUEzMiA8PCAoMHgwOHUgfCAweDA0dSkgKiAyKSkgPj4gKGJpdCAqIDIpKSAmCiAg
ICAgICgoMSA8PCAyKSAtIDEpOwogKCh2b2lkKShzaXplb2YoKCBsb25nKSgoKCAxIDw8ICgweDAx
dSB8IDB4MDJ1KSB8IDEgPDwgKDB4MDF1IHwgMHgwNHUpIHwgMSA8PCAoMHgwNHUgfCAweDAydSkg
fCAxIDw8ICgweDAxdSB8IDB4MDR1IHwgMHgwMnUpIHwgMSA8PCAoMHgwOHUgfCAweDAydSB8IDB4
MDF1KSB8IDEgPDwgKDB4MDh1IHwgMHgwNHUgfCAweDAxdSkgfCAxIDw8ICgweDA4dSB8IDB4MDR1
IHwgMHgwMnUpIHwgMSA8PCAoMHgwOHUgfCAweDA0dSB8IDB4MDF1IHwgMHgwMnUpICkgPj4gYml0
KSAmIDEpKSkpOwogcmV0dXJuIHo7Cn0KIyA0NTkgIi4vaW5jbHVkZS9saW51eC9nZnAuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50
IGdmcF96b25lbGlzdChnZnBfdCBmbGFncykKewoKCgoKIHJldHVybiBaT05FTElTVF9GQUxMQkFD
SzsKfQojIDQ3NyAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qgem9uZWxpc3QgKm5vZGVf
em9uZWxpc3QoaW50IG5pZCwgZ2ZwX3QgZmxhZ3MpCnsKIHJldHVybiAoJmNvbnRpZ19wYWdlX2Rh
dGEpLT5ub2RlX3pvbmVsaXN0cyArIGdmcF96b25lbGlzdChmbGFncyk7Cn0KCgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hf
ZnJlZV9wYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgb3JkZXIpIHsgfQoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXJjaF9h
bGxvY19wYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgb3JkZXIpIHsgfQoKCnN0cnVjdCBwYWdl
ICoKX19hbGxvY19wYWdlc19ub2RlbWFzayhnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9y
ZGVyLCBpbnQgcHJlZmVycmVkX25pZCwKICAgICAgIG5vZGVtYXNrX3QgKm5vZGVtYXNrKTsKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0
cnVjdCBwYWdlICoKX19hbGxvY19wYWdlcyhnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9y
ZGVyLCBpbnQgcHJlZmVycmVkX25pZCkKewogcmV0dXJuIF9fYWxsb2NfcGFnZXNfbm9kZW1hc2so
Z2ZwX21hc2ssIG9yZGVyLCBwcmVmZXJyZWRfbmlkLCAoKHZvaWQgKikwKSk7Cn0KCgoKCgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3QgcGFnZSAqCl9fYWxsb2NfcGFnZXNfbm9kZShpbnQgbmlkLCBnZnBfdCBnZnBfbWFzaywgdW5z
aWduZWQgaW50IG9yZGVyKQp7CiAoKHZvaWQpKHNpemVvZigoIGxvbmcpKG5pZCA8IDAgfHwgbmlk
ID49ICgxIDw8IDApKSkpKTsKICgodm9pZCkoc2l6ZW9mKCggbG9uZykoKGdmcF9tYXNrICYgKCgg
Z2ZwX3QpMHgyMDAwMDB1KSkgJiYgIW5vZGVfc3RhdGUoKG5pZCksIE5fT05MSU5FKSkpKSk7Cgog
cmV0dXJuIF9fYWxsb2NfcGFnZXMoZ2ZwX21hc2ssIG9yZGVyLCBuaWQpOwp9CgoKCgoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVj
dCBwYWdlICphbGxvY19wYWdlc19ub2RlKGludCBuaWQsIGdmcF90IGdmcF9tYXNrLAogICAgICB1
bnNpZ25lZCBpbnQgb3JkZXIpCnsKIGlmIChuaWQgPT0gKC0xKSkKICBuaWQgPSBudW1hX21lbV9p
ZCgpOwoKIHJldHVybiBfX2FsbG9jX3BhZ2VzX25vZGUobmlkLCBnZnBfbWFzaywgb3JkZXIpOwp9
CiMgNTUzICIuL2luY2x1ZGUvbGludXgvZ2ZwLmgiCmV4dGVybiB1bnNpZ25lZCBsb25nIF9fZ2V0
X2ZyZWVfcGFnZXMoZ2ZwX3QgZ2ZwX21hc2ssIHVuc2lnbmVkIGludCBvcmRlcik7CmV4dGVybiB1
bnNpZ25lZCBsb25nIGdldF96ZXJvZWRfcGFnZShnZnBfdCBnZnBfbWFzayk7Cgp2b2lkICphbGxv
Y19wYWdlc19leGFjdChzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwX21hc2spOwp2b2lkIGZyZWVfcGFn
ZXNfZXhhY3Qodm9pZCAqdmlydCwgc2l6ZV90IHNpemUpOwp2b2lkICogX19hdHRyaWJ1dGVfXygo
X19zZWN0aW9uX18oIi5tZW1pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGFsbG9jX3BhZ2VzX2V4YWN0
X25pZChpbnQgbmlkLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwX21hc2spOwoKCgoKCgoKZXh0ZXJu
IHZvaWQgX19mcmVlX3BhZ2VzKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIp
OwpleHRlcm4gdm9pZCBmcmVlX3BhZ2VzKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgaW50
IG9yZGVyKTsKZXh0ZXJuIHZvaWQgZnJlZV91bnJlZl9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKTsK
ZXh0ZXJuIHZvaWQgZnJlZV91bnJlZl9wYWdlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCk7
CgpzdHJ1Y3QgcGFnZV9mcmFnX2NhY2hlOwpleHRlcm4gdm9pZCBfX3BhZ2VfZnJhZ19jYWNoZV9k
cmFpbihzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IGNvdW50KTsKZXh0ZXJuIHZvaWQg
KnBhZ2VfZnJhZ19hbGxvYyhzdHJ1Y3QgcGFnZV9mcmFnX2NhY2hlICpuYywKICAgICAgICB1bnNp
Z25lZCBpbnQgZnJhZ3N6LCBnZnBfdCBnZnBfbWFzayk7CmV4dGVybiB2b2lkIHBhZ2VfZnJhZ19m
cmVlKHZvaWQgKmFkZHIpOwoKCgoKdm9pZCBwYWdlX2FsbG9jX2luaXQodm9pZCk7CnZvaWQgZHJh
aW5fem9uZV9wYWdlcyhzdHJ1Y3Qgem9uZSAqem9uZSwgc3RydWN0IHBlcl9jcHVfcGFnZXMgKnBj
cCk7CnZvaWQgZHJhaW5fYWxsX3BhZ2VzKHN0cnVjdCB6b25lICp6b25lKTsKdm9pZCBkcmFpbl9s
b2NhbF9wYWdlcyhzdHJ1Y3Qgem9uZSAqem9uZSk7Cgp2b2lkIHBhZ2VfYWxsb2NfaW5pdF9sYXRl
KHZvaWQpOwojIDU5NCAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIgpleHRlcm4gZ2ZwX3QgZ2ZwX2Fs
bG93ZWRfbWFzazsKCgpib29sIGdmcF9wZm1lbWFsbG9jX2FsbG93ZWQoZ2ZwX3QgZ2ZwX21hc2sp
OwoKZXh0ZXJuIHZvaWQgcG1fcmVzdHJpY3RfZ2ZwX21hc2sodm9pZCk7CmV4dGVybiB2b2lkIHBt
X3Jlc3RvcmVfZ2ZwX21hc2sodm9pZCk7CgoKZXh0ZXJuIGJvb2wgcG1fc3VzcGVuZGVkX3N0b3Jh
Z2Uodm9pZCk7CiMgNjEzICIuL2luY2x1ZGUvbGludXgvZ2ZwLmgiCmV4dGVybiBpbnQgYWxsb2Nf
Y29udGlnX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAogICAg
ICAgICB1bnNpZ25lZCBtaWdyYXRldHlwZSwgZ2ZwX3QgZ2ZwX21hc2spOwpleHRlcm4gc3RydWN0
IHBhZ2UgKmFsbG9jX2NvbnRpZ19wYWdlcyh1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBnZnBfdCBn
ZnBfbWFzaywKICAgICAgICAgICBpbnQgbmlkLCBub2RlbWFza190ICpub2RlbWFzayk7Cgp2b2lk
IGZyZWVfY29udGlnX3JhbmdlKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBpbnQgbnJfcGFn
ZXMpOwojIDE2ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L292ZXJmbG93LmgiIDEKIyAyNTMgIi4vaW5jbHVkZS9saW51eC9vdmVyZmxvdy5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc2l6ZV90IGFycmF5X3NpemUoc2l6ZV90
IGEsIHNpemVfdCBiKQp7CiBzaXplX3QgYnl0ZXM7CgogaWYgKCh7IHR5cGVvZihhKSBfX2EgPSAo
YSk7IHR5cGVvZihiKSBfX2IgPSAoYik7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAo
dm9pZCkgKCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVs
X292ZXJmbG93KF9fYSwgX19iLCBfX2QpOyB9KSkKICByZXR1cm4gKH4oc2l6ZV90KTApOwoKIHJl
dHVybiBieXRlczsKfQojIDI3NSAiLi9pbmNsdWRlL2xpbnV4L292ZXJmbG93LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzaXplX3QgYXJyYXkzX3NpemUoc2l6ZV90
IGEsIHNpemVfdCBiLCBzaXplX3QgYykKewogc2l6ZV90IGJ5dGVzOwoKIGlmICgoeyB0eXBlb2Yo
YSkgX19hID0gKGEpOyB0eXBlb2YoYikgX19iID0gKGIpOyB0eXBlb2YoJmJ5dGVzKSBfX2QgPSAo
JmJ5dGVzKTsgKHZvaWQpICgmX19hID09ICZfX2IpOyAodm9pZCkgKCZfX2EgPT0gX19kKTsgX19i
dWlsdGluX211bF9vdmVyZmxvdyhfX2EsIF9fYiwgX19kKTsgfSkpCiAgcmV0dXJuICh+KHNpemVf
dCkwKTsKIGlmICgoeyB0eXBlb2YoYnl0ZXMpIF9fYSA9IChieXRlcyk7IHR5cGVvZihjKSBfX2Ig
PSAoYyk7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0gJl9f
Yik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwgX19i
LCBfX2QpOyB9KSkKICByZXR1cm4gKH4oc2l6ZV90KTApOwoKIHJldHVybiBieXRlczsKfQoKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzaXplX3QgX19hYl9jX3Np
emUoc2l6ZV90IGEsIHNpemVfdCBiLCBzaXplX3QgYykKewogc2l6ZV90IGJ5dGVzOwoKIGlmICgo
eyB0eXBlb2YoYSkgX19hID0gKGEpOyB0eXBlb2YoYikgX19iID0gKGIpOyB0eXBlb2YoJmJ5dGVz
KSBfX2QgPSAoJmJ5dGVzKTsgKHZvaWQpICgmX19hID09ICZfX2IpOyAodm9pZCkgKCZfX2EgPT0g
X19kKTsgX19idWlsdGluX211bF9vdmVyZmxvdyhfX2EsIF9fYiwgX19kKTsgfSkpCiAgcmV0dXJu
ICh+KHNpemVfdCkwKTsKIGlmICgoeyB0eXBlb2YoYnl0ZXMpIF9fYSA9IChieXRlcyk7IHR5cGVv
ZihjKSBfX2IgPSAoYyk7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZf
X2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fYWRkX292ZXJmbG93
KF9fYSwgX19iLCBfX2QpOyB9KSkKICByZXR1cm4gKH4oc2l6ZV90KTApOwoKIHJldHVybiBieXRl
czsKfQojIDE3ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCgoKIyAxICIuL2luY2x1ZGUvbGlu
dXgvcGVyY3B1LXJlZmNvdW50LmgiIDEKIyA1OSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZj
b3VudC5oIgpzdHJ1Y3QgcGVyY3B1X3JlZjsKdHlwZWRlZiB2b2lkIChwZXJjcHVfcmVmX2Z1bmNf
dCkoc3RydWN0IHBlcmNwdV9yZWYgKik7CgoKZW51bSB7CiBfX1BFUkNQVV9SRUZfQVRPTUlDID0g
MUxVIDw8IDAsCiBfX1BFUkNQVV9SRUZfREVBRCA9IDFMVSA8PCAxLAogX19QRVJDUFVfUkVGX0FU
T01JQ19ERUFEID0gX19QRVJDUFVfUkVGX0FUT01JQyB8IF9fUEVSQ1BVX1JFRl9ERUFELAoKIF9f
UEVSQ1BVX1JFRl9GTEFHX0JJVFMgPSAyLAp9OwoKCmVudW0gewoKCgoKCgoKIFBFUkNQVV9SRUZf
SU5JVF9BVE9NSUMgPSAxIDw8IDAsCgoKCgoKCiBQRVJDUFVfUkVGX0lOSVRfREVBRCA9IDEgPDwg
MSwKCgoKCiBQRVJDUFVfUkVGX0FMTE9XX1JFSU5JVCA9IDEgPDwgMiwKfTsKCnN0cnVjdCBwZXJj
cHVfcmVmIHsKIGF0b21pY19sb25nX3QgY291bnQ7CgoKCgogdW5zaWduZWQgbG9uZyBwZXJjcHVf
Y291bnRfcHRyOwogcGVyY3B1X3JlZl9mdW5jX3QgKnJlbGVhc2U7CiBwZXJjcHVfcmVmX2Z1bmNf
dCAqY29uZmlybV9zd2l0Y2g7CiBib29sIGZvcmNlX2F0b21pYzoxOwogYm9vbCBhbGxvd19yZWlu
aXQ6MTsKIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKfTsKCmludCBfX2F0dHJpYnV0ZV9fKChf
X3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgcGVyY3B1X3JlZl9pbml0KHN0cnVjdCBwZXJjcHVfcmVm
ICpyZWYsCiAgICAgcGVyY3B1X3JlZl9mdW5jX3QgKnJlbGVhc2UsIHVuc2lnbmVkIGludCBmbGFn
cywKICAgICBnZnBfdCBnZnApOwp2b2lkIHBlcmNwdV9yZWZfZXhpdChzdHJ1Y3QgcGVyY3B1X3Jl
ZiAqcmVmKTsKdm9pZCBwZXJjcHVfcmVmX3N3aXRjaF90b19hdG9taWMoc3RydWN0IHBlcmNwdV9y
ZWYgKnJlZiwKICAgICBwZXJjcHVfcmVmX2Z1bmNfdCAqY29uZmlybV9zd2l0Y2gpOwp2b2lkIHBl
cmNwdV9yZWZfc3dpdGNoX3RvX2F0b21pY19zeW5jKHN0cnVjdCBwZXJjcHVfcmVmICpyZWYpOwp2
b2lkIHBlcmNwdV9yZWZfc3dpdGNoX3RvX3BlcmNwdShzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKTsK
dm9pZCBwZXJjcHVfcmVmX2tpbGxfYW5kX2NvbmZpcm0oc3RydWN0IHBlcmNwdV9yZWYgKnJlZiwK
ICAgICBwZXJjcHVfcmVmX2Z1bmNfdCAqY29uZmlybV9raWxsKTsKdm9pZCBwZXJjcHVfcmVmX3Jl
c3VycmVjdChzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKTsKdm9pZCBwZXJjcHVfcmVmX3JlaW5pdChz
dHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKTsKIyAxMzQgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVm
Y291bnQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBwZXJjcHVfcmVmX2tpbGwoc3RydWN0IHBlcmNwdV9yZWYgKnJlZikKewog
cGVyY3B1X3JlZl9raWxsX2FuZF9jb25maXJtKHJlZiwgKCh2b2lkICopMCkpOwp9CgoKCgoKCgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIF9fcmVmX2lzX3BlcmNwdShzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmLAogICAgICAgdW5zaWdu
ZWQgbG9uZyAqKnBlcmNwdV9jb3VudHApCnsKIHVuc2lnbmVkIGxvbmcgcGVyY3B1X3B0cjsKIyAx
NjEgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVmY291bnQuaCIKIHBlcmNwdV9wdHIgPSAoeyB1
bmlvbiB7IHR5cGVvZihyZWYtPnBlcmNwdV9jb3VudF9wdHIpIF9fdmFsOyBjaGFyIF9fY1sxXTsg
fSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYocmVmLT5wZXJjcHVfY291bnRfcHRyKSwg
X191Ll9fYywgc2l6ZW9mKHJlZi0+cGVyY3B1X2NvdW50X3B0cikpOyBlbHNlIF9fcmVhZF9vbmNl
X3NpemVfbm9jaGVjaygmKHJlZi0+cGVyY3B1X2NvdW50X3B0ciksIF9fdS5fX2MsIHNpemVvZihy
ZWYtPnBlcmNwdV9jb3VudF9wdHIpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsK
CgoKCgoKCiBpZiAoX19idWlsdGluX2V4cGVjdCghIShwZXJjcHVfcHRyICYgX19QRVJDUFVfUkVG
X0FUT01JQ19ERUFEKSwgMCkpCiAgcmV0dXJuIGZhbHNlOwoKICpwZXJjcHVfY291bnRwID0gKHVu
c2lnbmVkIGxvbmcgKilwZXJjcHVfcHRyOwogcmV0dXJuIHRydWU7Cn0KIyAxODUgIi4vaW5jbHVk
ZS9saW51eC9wZXJjcHUtcmVmY291bnQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVfcmVmX2dldF9tYW55KHN0cnVj
dCBwZXJjcHVfcmVmICpyZWYsIHVuc2lnbmVkIGxvbmcgbnIpCnsKIHVuc2lnbmVkIGxvbmcgKnBl
cmNwdV9jb3VudDsKCiByY3VfcmVhZF9sb2NrKCk7CgogaWYgKF9fcmVmX2lzX3BlcmNwdShyZWYs
ICZwZXJjcHVfY291bnQpKQogIGRvIHsgZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAo
dHlwZW9mKCgmKCpwZXJjcHVfY291bnQpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92
ZXJpZnk7IH0gd2hpbGUgKDApOyBzd2l0Y2goc2l6ZW9mKCpwZXJjcHVfY291bnQpKSB7IGNhc2Ug
MTogZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3VudCkpIHBhb19UX187IGNvbnN0IGlu
dCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcChucikgJiYgKChucikgPT0gMSB8fCAo
bnIpID09IC0xKSkgPyAoaW50KShucikgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsg
cGFvX3RtcF9fID0gKG5yKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVy
Y3B1X2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgi
aW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNl
IGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIg
JTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIg
KChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2
b2xhdGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRp
bGUgKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkgOiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9
PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJk
ZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2Ug
YXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA4OiBpZiAo
cGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZv
bGF0aWxlICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgMjog
ZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBw
YW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcChucikgJiYgKChucikgPT0gMSB8fCAobnIp
ID09IC0xKSkgPyAoaW50KShucikgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFv
X3RtcF9fID0gKG5yKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1
X2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5j
YiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlm
IChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIgJTEs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIgKChw
YW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xh
dGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
KTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUg
KCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkg
OiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAx
KSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJj
cHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNt
IHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFv
X0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0
aWxlICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkp
OyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgNDogZG8g
eyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9f
SURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcChucikgJiYgKChucikgPT0gMSB8fCAobnIpID09
IC0xKSkgPyAoaW50KShucikgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3Rt
cF9fID0gKG5yKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1X2Nv
dW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jYiAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChw
YW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIgJTEsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIgKChwYW9f
VF9fKShucikpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGls
ZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsg
ZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJh
ZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAi
cmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBh
c20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVf
Y291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZv
bGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lE
X18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxl
ICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBl
bHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgODogZG8geyB0
eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURf
XyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcChucikgJiYgKChucikgPT0gMSB8fCAobnIpID09IC0x
KSkgPyAoaW50KShucikgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9f
ID0gKG5yKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1X2NvdW50
KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jYiAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9f
SURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIgJTEsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIgKChwYW9fVF9f
KShucikpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAo
ImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGR3
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmki
ICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
dm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0
aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lEX18g
PT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
cGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgi
ZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNl
IGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
YmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3Np
emVfY2FsbF9wYXJhbWV0ZXIoKTticmVhazsgfSB9IHdoaWxlICgwKTsKIGVsc2UKICBhdG9taWNf
bG9uZ19hZGQobnIsICZyZWYtPmNvdW50KTsKCiByY3VfcmVhZF91bmxvY2soKTsKfQojIDIwNyAi
Li9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBlcmNwdV9yZWZfZ2V0KHN0
cnVjdCBwZXJjcHVfcmVmICpyZWYpCnsKIHBlcmNwdV9yZWZfZ2V0X21hbnkocmVmLCAxKTsKfQoj
IDIyMiAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHBlcmNwdV9yZWZf
dHJ5Z2V0X21hbnkoc3RydWN0IHBlcmNwdV9yZWYgKnJlZiwKICAgICAgIHVuc2lnbmVkIGxvbmcg
bnIpCnsKIHVuc2lnbmVkIGxvbmcgKnBlcmNwdV9jb3VudDsKIGJvb2wgcmV0OwoKIHJjdV9yZWFk
X2xvY2soKTsKCiBpZiAoX19yZWZfaXNfcGVyY3B1KHJlZiwgJnBlcmNwdV9jb3VudCkpIHsKICBk
byB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJigqcGVyY3B1X2Nv
dW50KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsg
c3dpdGNoKHNpemVvZigqcGVyY3B1X2NvdW50KSkgeyBjYXNlIDE6IGRvIHsgdHlwZWRlZiB0eXBl
b2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWls
dGluX2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGludCko
bnIpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7ICh2
b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2Ug
MTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7IGJy
ZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19J
RF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18p
KG5yKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgi
aW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNl
IGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwg
JTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIg
KChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2
b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRp
bGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkgOiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVf
c2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRvIHsgdHlwZWRlZiB0eXBlb2Yo
KCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGlu
X2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGludCkobnIp
IDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7ICh2b2lk
KXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2UgMTog
aWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7IGJyZWFr
OyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9f
ID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKG5y
KSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5j
bCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlm
IChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwgJTEs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChw
YW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xh
dGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
KTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUg
KCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkg
OiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6
ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpw
ZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2Nv
bnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGludCkobnIpIDog
MDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7ICh2b2lkKXBh
b190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2UgMTogaWYg
KHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2
b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBj
YXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09
IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkp
OyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jbCAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChw
YW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwgJTEsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9f
VF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGls
ZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsg
ZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJh
ZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAi
cmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJj
cHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0
YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGludCkobnIpIDogMDsg
aWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7ICh2b2lkKXBhb190
bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBh
b19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xh
dGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
KTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNl
IDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0x
KSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJj
cHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkpOyBi
cmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jbCAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9f
SURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwgJTEsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9fVF9f
KShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAo
ImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRx
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmUi
ICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9
IH0gd2hpbGUgKDApO2JyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7
YnJlYWs7IH0gfSB3aGlsZSAoMCk7CiAgcmV0ID0gdHJ1ZTsKIH0gZWxzZSB7CiAgcmV0ID0gYXRv
bWljX2xvbmdfYWRkX3VubGVzcygmcmVmLT5jb3VudCwgbnIsIDApOwogfQoKIHJjdV9yZWFkX3Vu
bG9jaygpOwoKIHJldHVybiByZXQ7Cn0KIyAyNTEgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVm
Y291bnQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBwZXJjcHVfcmVmX3RyeWdldChzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKQp7
CiByZXR1cm4gcGVyY3B1X3JlZl90cnlnZXRfbWFueShyZWYsIDEpOwp9CiMgMjcxICIuL2luY2x1
ZGUvbGludXgvcGVyY3B1LXJlZmNvdW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcGVyY3B1X3JlZl90cnlnZXRfbGl2ZShz
dHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKQp7CiB1bnNpZ25lZCBsb25nICpwZXJjcHVfY291bnQ7CiBi
b29sIHJldCA9IGZhbHNlOwoKIHJjdV9yZWFkX2xvY2soKTsKCiBpZiAoX19yZWZfaXNfcGVyY3B1
KHJlZiwgJnBlcmNwdV9jb3VudCkpIHsKICBkbyB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVy
aWZ5ID0gKHR5cGVvZigoJigqcGVyY3B1X2NvdW50KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQp
X192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZigqcGVyY3B1X2NvdW50KSkg
eyBjYXNlIDE6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBj
b25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAx
IHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBf
XzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpw
ZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUg
KCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRk
YiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFp
IiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
dm9sYXRpbGUgKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0
aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9
PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJk
ZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2Ug
YXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChw
YW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9s
YXRpbGUgKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZh
dWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRv
IHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFv
X0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAt
MSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9f
ID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpwZXJjcHVfY291bnQp
KSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNiICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19J
RF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkYiAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFpIiAoKHBhb19UX18p
KDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJp
bmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2Ug
aWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAo
KHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9s
YXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNsICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxl
ICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
IDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAx
KSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJj
cHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNx
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNt
IHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6IGRvIHsgdHlwZWRlZiB0
eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19i
dWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCko
MSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9p
ZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6
IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBh
c20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVf
Y291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFr
OyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9f
ID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEp
KSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBh
b19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRp
bGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7
IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgi
YWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDog
InJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJj
cHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0
YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAwOyBpZiAo
MCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9fdG1wX187
IH0gc3dpdGNoIChzaXplb2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUg
KCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgYXNtIHZvbGF0aWxlICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20g
dm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBj
YXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09
IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7
IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19U
X18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUg
KDApO2JyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7YnJlYWs7IH0g
fSB3aGlsZSAoMCk7CiAgcmV0ID0gdHJ1ZTsKIH0gZWxzZSBpZiAoIShyZWYtPnBlcmNwdV9jb3Vu
dF9wdHIgJiBfX1BFUkNQVV9SRUZfREVBRCkpIHsKICByZXQgPSBhdG9taWNfbG9uZ19pbmNfbm90
X3plcm8oJnJlZi0+Y291bnQpOwogfQoKIHJjdV9yZWFkX3VubG9jaygpOwoKIHJldHVybiByZXQ7
Cn0KIyAzMDAgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVmY291bnQuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVf
cmVmX3B1dF9tYW55KHN0cnVjdCBwZXJjcHVfcmVmICpyZWYsIHVuc2lnbmVkIGxvbmcgbnIpCnsK
IHVuc2lnbmVkIGxvbmcgKnBlcmNwdV9jb3VudDsKCiByY3VfcmVhZF9sb2NrKCk7CgogaWYgKF9f
cmVmX2lzX3BlcmNwdShyZWYsICZwZXJjcHVfY291bnQpKQogIGRvIHsgZG8geyBjb25zdCB2b2lk
ICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKCpwZXJjcHVfY291bnQpKSArIDApKSgodm9pZCAq
KTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyBzd2l0Y2goc2l6ZW9mKCpwZXJj
cHVfY291bnQpKSB7IGNhc2UgMTogZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3VudCkp
IHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgtKHR5
cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSAmJiAoKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShu
cikpID09IDEgfHwgKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpID09IC0xKSkgPyAoaW50
KSgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFv
X3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSk7ICh2b2lk
KXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2UgMTog
aWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0eXBlb2YoKnBl
cmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFz
bSB2b2xhdGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9s
YXRpbGUgKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2Nv
dW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsg
YnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2wgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFv
X0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRsICUxLCAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmkiICgocGFvX1Rf
XykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBh
b19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xh
dGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
KTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9j
b3VudCkpKG5yKSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3
aGlsZSAoMCk7YnJlYWs7IGNhc2UgMjogZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3Vu
dCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgt
KHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSAmJiAoKC0odHlwZW9mKCpwZXJjcHVfY291bnQp
KShucikpID09IDEgfHwgKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpID09IC0xKSkgPyAo
aW50KSgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA6IDA7IGlmICgwKSB7IHBhb19UX18g
cGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSk7ICh2
b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2Ug
MTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0eXBlb2Yo
KnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEp
IGFzbSB2b2xhdGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20g
dm9sYXRpbGUgKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1
X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkp
KTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2wg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAo
cGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRsICUxLCAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmkiICgocGFv
X1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgODogaWYg
KHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2
b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNw
dV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0g
fSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgNDogZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9j
b3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRf
cCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSAmJiAoKC0odHlwZW9mKCpwZXJjcHVfY291
bnQpKShucikpID09IDEgfHwgKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpID09IC0xKSkg
PyAoaW50KSgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA6IDA7IGlmICgwKSB7IHBhb19U
X18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSk7
ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNh
c2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0g
LTEpIGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0eXBl
b2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09
IDEpIGFzbSB2b2xhdGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRl
Y3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBh
c20gdm9sYXRpbGUgKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVy
Y3B1X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5y
KSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImlu
Y2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBp
ZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRsICUx
LCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmkiICgo
cGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgODog
aWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSB2b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2YoKnBl
cmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7
IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgODogZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNw
dV9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3Rh
bnRfcCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSAmJiAoKC0odHlwZW9mKCpwZXJjcHVf
Y291bnQpKShucikpID09IDEgfHwgKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpID09IC0x
KSkgPyAoaW50KSgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA6IDA7IGlmICgwKSB7IHBh
b19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5y
KSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7
IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18g
PT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0
eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9f
ID09IDEpIGFzbSB2b2xhdGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAo
ImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxz
ZSBhc20gdm9sYXRpbGUgKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
cGVyY3B1X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkp
KG5yKSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAo
ImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRs
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmki
ICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2Ug
ODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2Yo
KnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXpl
KCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0
ZXIoKTticmVhazsgfSB9IHdoaWxlICgwKTsKIGVsc2UgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEo
YXRvbWljX2xvbmdfc3ViX2FuZF90ZXN0KG5yLCAmcmVmLT5jb3VudCkpLCAwKSkKICByZWYtPnJl
bGVhc2UocmVmKTsKCiByY3VfcmVhZF91bmxvY2soKTsKfQojIDMyMyAiLi9pbmNsdWRlL2xpbnV4
L3BlcmNwdS1yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBlcmNwdV9yZWZfcHV0KHN0cnVjdCBwZXJjcHVfcmVm
ICpyZWYpCnsKIHBlcmNwdV9yZWZfcHV0X21hbnkocmVmLCAxKTsKfQojIDMzNyAiLi9pbmNsdWRl
L2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHBlcmNwdV9yZWZfaXNfZHlpbmcoc3RydWN0
IHBlcmNwdV9yZWYgKnJlZikKewogcmV0dXJuIHJlZi0+cGVyY3B1X2NvdW50X3B0ciAmIF9fUEVS
Q1BVX1JFRl9ERUFEOwp9CiMgMzUwICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LXJlZmNvdW50Lmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgcGVyY3B1X3JlZl9pc196ZXJvKHN0cnVjdCBwZXJjcHVfcmVmICpyZWYpCnsKIHVuc2ln
bmVkIGxvbmcgKnBlcmNwdV9jb3VudDsKCiBpZiAoX19yZWZfaXNfcGVyY3B1KHJlZiwgJnBlcmNw
dV9jb3VudCkpCiAgcmV0dXJuIGZhbHNlOwogcmV0dXJuICFhdG9taWNfbG9uZ19yZWFkKCZyZWYt
PmNvdW50KTsKfQojIDIwICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCiMgMTM2ICIuL2luY2x1
ZGUvbGludXgvc2xhYi5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9rYXNhbi5oIiAxCgoKCgoKCnN0
cnVjdCBrbWVtX2NhY2hlOwpzdHJ1Y3QgcGFnZTsKc3RydWN0IHZtX3N0cnVjdDsKc3RydWN0IHRh
c2tfc3RydWN0OwojIDEwMSAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5w
b2lzb25fc2hhZG93KGNvbnN0IHZvaWQgKmFkZHJlc3MsIHNpemVfdCBzaXplKSB7fQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBr
YXNhbl91bnBvaXNvbl90YXNrX3N0YWNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykge30Kc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBrYXNhbl91bnBvaXNvbl9zdGFja19hYm92ZV9zcF90byhjb25zdCB2b2lkICp3YXRlcm1hcmsp
IHt9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGthc2FuX2VuYWJsZV9jdXJyZW50KHZvaWQpIHt9CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fZGlzYWJs
ZV9jdXJyZW50KHZvaWQpIHt9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2FsbG9jX3BhZ2VzKHN0cnVjdCBwYWdlICpw
YWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIpIHt9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fZnJlZV9wYWdlcyhzdHJ1Y3Qg
cGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IG9yZGVyKSB7fQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9jYWNoZV9jcmVh
dGUoc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlLAogICAgICAgICAgdW5zaWduZWQgaW50ICpzaXpl
LAogICAgICAgICAgc2xhYl9mbGFnc190ICpmbGFncykge30KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fcG9pc29uX3Ns
YWIoc3RydWN0IHBhZ2UgKnBhZ2UpIHt9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5wb2lzb25fb2JqZWN0X2RhdGEo
c3RydWN0IGttZW1fY2FjaGUgKmNhY2hlLAogICAgIHZvaWQgKm9iamVjdCkge30Kc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNh
bl9wb2lzb25fb2JqZWN0X2RhdGEoc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlLAogICAgIHZvaWQg
Km9iamVjdCkge30Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCAqa2FzYW5faW5pdF9zbGFiX29iaihzdHJ1Y3Qga21lbV9jYWNoZSAq
Y2FjaGUsCiAgICBjb25zdCB2b2lkICpvYmplY3QpCnsKIHJldHVybiAodm9pZCAqKW9iamVjdDsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCAqa2FzYW5fa21hbGxvY19sYXJnZSh2b2lkICpwdHIsIHNpemVfdCBzaXplLCBnZnBf
dCBmbGFncykKewogcmV0dXJuIHB0cjsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2tmcmVlX2xhcmdlKHZvaWQgKnB0
ciwgdW5zaWduZWQgbG9uZyBpcCkge30Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9wb2lzb25fa2ZyZWUodm9pZCAqcHRy
LCB1bnNpZ25lZCBsb25nIGlwKSB7fQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprYXNhbl9rbWFsbG9jKHN0cnVjdCBrbWVtX2Nh
Y2hlICpzLCBjb25zdCB2b2lkICpvYmplY3QsCiAgICBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3Mp
CnsKIHJldHVybiAodm9pZCAqKW9iamVjdDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprYXNhbl9rcmVhbGxvYyhjb25zdCB2
b2lkICpvYmplY3QsIHNpemVfdCBuZXdfc2l6ZSwKICAgICBnZnBfdCBmbGFncykKewogcmV0dXJu
ICh2b2lkICopb2JqZWN0Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprYXNhbl9zbGFiX2FsbG9jKHN0cnVjdCBrbWVtX2Nh
Y2hlICpzLCB2b2lkICpvYmplY3QsCiAgICAgICBnZnBfdCBmbGFncykKewogcmV0dXJuIG9iamVj
dDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIGthc2FuX3NsYWJfZnJlZShzdHJ1Y3Qga21lbV9jYWNoZSAqcywgdm9pZCAqb2Jq
ZWN0LAogICAgICAgdW5zaWduZWQgbG9uZyBpcCkKewogcmV0dXJuIGZhbHNlOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQga2Fz
YW5fbW9kdWxlX2FsbG9jKHZvaWQgKmFkZHIsIHNpemVfdCBzaXplKSB7IHJldHVybiAwOyB9CnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQga2FzYW5fZnJlZV9zaGFkb3coY29uc3Qgc3RydWN0IHZtX3N0cnVjdCAqdm0pIHt9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
a2FzYW5fYWRkX3plcm9fc2hhZG93KHZvaWQgKnN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUpCnsK
IHJldHVybiAwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQga2FzYW5fcmVtb3ZlX3plcm9fc2hhZG93KHZvaWQgKnN0YXJ0LAog
ICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSkKe30KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5wb2lzb25fc2xhYihjb25z
dCB2b2lkICpwdHIpIHsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzaXplX3Qga2FzYW5fbWV0YWRhdGFfc2l6ZShzdHJ1Y3Qga21lbV9j
YWNoZSAqY2FjaGUpIHsgcmV0dXJuIDA7IH0KIyAxODAgIi4vaW5jbHVkZS9saW51eC9rYXNhbi5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGthc2FuX2NhY2hlX3NocmluayhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpIHt9CnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQga2FzYW5fY2FjaGVfc2h1dGRvd24oc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlKSB7fQojIDE5
OCAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5faW5pdF90YWdzKHZvaWQpIHsg
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCAqa2FzYW5fcmVzZXRfdGFnKGNvbnN0IHZvaWQgKmFkZHIpCnsKIHJldHVybiAodm9p
ZCAqKWFkZHI7Cn0KIyAyMTUgIi4vaW5jbHVkZS9saW51eC9rYXNhbi5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQga2FzYW5fcG9w
dWxhdGVfdm1hbGxvYyh1bnNpZ25lZCBsb25nIHN0YXJ0LAogICAgIHVuc2lnbmVkIGxvbmcgc2l6
ZSkKewogcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fcG9pc29uX3ZtYWxsb2MoY29uc3Qgdm9pZCAq
c3RhcnQsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKeyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5wb2lzb25fdm1hbGxv
Yyhjb25zdCB2b2lkICpzdGFydCwgdW5zaWduZWQgbG9uZyBzaXplKQp7IH0Kc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9y
ZWxlYXNlX3ZtYWxsb2ModW5zaWduZWQgbG9uZyBzdGFydCwKICAgICAgdW5zaWduZWQgbG9uZyBl
bmQsCiAgICAgIHVuc2lnbmVkIGxvbmcgZnJlZV9yZWdpb25fc3RhcnQsCiAgICAgIHVuc2lnbmVk
IGxvbmcgZnJlZV9yZWdpb25fZW5kKSB7fQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fbm9uX2Nhbm9uaWNhbF9o
b29rKHVuc2lnbmVkIGxvbmcgYWRkcikgeyB9CiMgMTM3ICIuL2luY2x1ZGUvbGludXgvc2xhYi5o
IiAyCgpzdHJ1Y3QgbWVtX2Nncm91cDsKCgoKdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25f
XygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBrbWVtX2NhY2hlX2lu
aXQodm9pZCk7CmJvb2wgc2xhYl9pc19hdmFpbGFibGUodm9pZCk7CgpleHRlcm4gYm9vbCB1c2Vy
Y29weV9mYWxsYmFjazsKCnN0cnVjdCBrbWVtX2NhY2hlICprbWVtX2NhY2hlX2NyZWF0ZShjb25z
dCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgc2l6ZSwKICAgdW5zaWduZWQgaW50IGFsaWduLCBz
bGFiX2ZsYWdzX3QgZmxhZ3MsCiAgIHZvaWQgKCpjdG9yKSh2b2lkICopKTsKc3RydWN0IGttZW1f
Y2FjaGUgKmttZW1fY2FjaGVfY3JlYXRlX3VzZXJjb3B5KGNvbnN0IGNoYXIgKm5hbWUsCiAgIHVu
c2lnbmVkIGludCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24sCiAgIHNsYWJfZmxhZ3NfdCBmbGFn
cywKICAgdW5zaWduZWQgaW50IHVzZXJvZmZzZXQsIHVuc2lnbmVkIGludCB1c2Vyc2l6ZSwKICAg
dm9pZCAoKmN0b3IpKHZvaWQgKikpOwp2b2lkIGttZW1fY2FjaGVfZGVzdHJveShzdHJ1Y3Qga21l
bV9jYWNoZSAqKTsKaW50IGttZW1fY2FjaGVfc2hyaW5rKHN0cnVjdCBrbWVtX2NhY2hlICopOwoK
dm9pZCBtZW1jZ19jcmVhdGVfa21lbV9jYWNoZShzdHJ1Y3QgbWVtX2Nncm91cCAqLCBzdHJ1Y3Qg
a21lbV9jYWNoZSAqKTsKdm9pZCBtZW1jZ19kZWFjdGl2YXRlX2ttZW1fY2FjaGVzKHN0cnVjdCBt
ZW1fY2dyb3VwICosIHN0cnVjdCBtZW1fY2dyb3VwICopOwojIDE4NyAiLi9pbmNsdWRlL2xpbnV4
L3NsYWIuaCIKdm9pZCAqIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBr
cmVhbGxvYyhjb25zdCB2b2lkICosIHNpemVfdCwgZ2ZwX3QpOwp2b2lkIGtmcmVlKGNvbnN0IHZv
aWQgKik7CnZvaWQga3pmcmVlKGNvbnN0IHZvaWQgKik7CnNpemVfdCBfX2tzaXplKGNvbnN0IHZv
aWQgKik7CnNpemVfdCBrc2l6ZShjb25zdCB2b2lkICopOwoKCnZvaWQgX19jaGVja19oZWFwX29i
amVjdChjb25zdCB2b2lkICpwdHIsIHVuc2lnbmVkIGxvbmcgbiwgc3RydWN0IHBhZ2UgKnBhZ2Us
CiAgIGJvb2wgdG9fdXNlcik7CiMgMzA4ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIgplbnVtIGtt
YWxsb2NfY2FjaGVfdHlwZSB7CiBLTUFMTE9DX05PUk1BTCA9IDAsCiBLTUFMTE9DX1JFQ0xBSU0s
CgogS01BTExPQ19ETUEsCgogTlJfS01BTExPQ19UWVBFUwp9OwoKCmV4dGVybiBzdHJ1Y3Qga21l
bV9jYWNoZSAqCmttYWxsb2NfY2FjaGVzW05SX0tNQUxMT0NfVFlQRVNdWygoMTEgKyAxMiAtIDEp
IDw9IDI1ID8gKDExICsgMTIgLSAxKSA6IDI1KSArIDFdOwoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSBlbnVtIGttYWxsb2NfY2FjaGVfdHlwZSBrbWFsbG9jX3R5cGUoZ2ZwX3Qg
ZmxhZ3MpCnsKCgoKCgogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoKGZsYWdzICYgKCgoIGdmcF90
KTB4MDF1KSB8ICgoIGdmcF90KTB4MTB1KSkpID09IDApLCAxKSkKICByZXR1cm4gS01BTExPQ19O
T1JNQUw7CgoKCgoKIHJldHVybiBmbGFncyAmICgoIGdmcF90KTB4MDF1KSA/IEtNQUxMT0NfRE1B
IDogS01BTExPQ19SRUNMQUlNOwoKCgp9CiMgMzQ5ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGludCBrbWFsbG9jX2lu
ZGV4KHNpemVfdCBzaXplKQp7CiBpZiAoIXNpemUpCiAgcmV0dXJuIDA7CgogaWYgKHNpemUgPD0g
KDEgPDwgNSkpCiAgcmV0dXJuIDU7CgogaWYgKCgxIDw8IDUpIDw9IDMyICYmIHNpemUgPiA2NCAm
JiBzaXplIDw9IDk2KQogIHJldHVybiAxOwogaWYgKCgxIDw8IDUpIDw9IDY0ICYmIHNpemUgPiAx
MjggJiYgc2l6ZSA8PSAxOTIpCiAgcmV0dXJuIDI7CiBpZiAoc2l6ZSA8PSA4KSByZXR1cm4gMzsK
IGlmIChzaXplIDw9IDE2KSByZXR1cm4gNDsKIGlmIChzaXplIDw9IDMyKSByZXR1cm4gNTsKIGlm
IChzaXplIDw9IDY0KSByZXR1cm4gNjsKIGlmIChzaXplIDw9IDEyOCkgcmV0dXJuIDc7CiBpZiAo
c2l6ZSA8PSAyNTYpIHJldHVybiA4OwogaWYgKHNpemUgPD0gNTEyKSByZXR1cm4gOTsKIGlmIChz
aXplIDw9IDEwMjQpIHJldHVybiAxMDsKIGlmIChzaXplIDw9IDIgKiAxMDI0KSByZXR1cm4gMTE7
CiBpZiAoc2l6ZSA8PSA0ICogMTAyNCkgcmV0dXJuIDEyOwogaWYgKHNpemUgPD0gOCAqIDEwMjQp
IHJldHVybiAxMzsKIGlmIChzaXplIDw9IDE2ICogMTAyNCkgcmV0dXJuIDE0OwogaWYgKHNpemUg
PD0gMzIgKiAxMDI0KSByZXR1cm4gMTU7CiBpZiAoc2l6ZSA8PSA2NCAqIDEwMjQpIHJldHVybiAx
NjsKIGlmIChzaXplIDw9IDEyOCAqIDEwMjQpIHJldHVybiAxNzsKIGlmIChzaXplIDw9IDI1NiAq
IDEwMjQpIHJldHVybiAxODsKIGlmIChzaXplIDw9IDUxMiAqIDEwMjQpIHJldHVybiAxOTsKIGlm
IChzaXplIDw9IDEwMjQgKiAxMDI0KSByZXR1cm4gMjA7CiBpZiAoc2l6ZSA8PSAyICogMTAyNCAq
IDEwMjQpIHJldHVybiAyMTsKIGlmIChzaXplIDw9IDQgKiAxMDI0ICogMTAyNCkgcmV0dXJuIDIy
OwogaWYgKHNpemUgPD0gOCAqIDEwMjQgKiAxMDI0KSByZXR1cm4gMjM7CiBpZiAoc2l6ZSA8PSAx
NiAqIDEwMjQgKiAxMDI0KSByZXR1cm4gMjQ7CiBpZiAoc2l6ZSA8PSAzMiAqIDEwMjQgKiAxMDI0
KSByZXR1cm4gMjU7CiBpZiAoc2l6ZSA8PSA2NCAqIDEwMjQgKiAxMDI0KSByZXR1cm4gMjY7CiBk
byB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIg
IlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIg
IjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIl
YzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1
Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAi
XHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3Ns
YWIuaCIpLCAiaSIgKDM4NSksICJpIiAoMCksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkp
KSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNl
Y3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBv
cHNlY3Rpb25cblx0IiA6IDogImkiICgxOCkpOyB9KTsgYXNtIHZvbGF0aWxlKCIiKTsgX19idWls
dGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKCgogcmV0dXJuIC0x
Owp9CgoKdm9pZCAqX19rbWFsbG9jKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncykgX19hdHRyaWJ1
dGVfXygoX19hc3N1bWVfYWxpZ25lZF9fKF9fYWxpZ25vZl9fKHVuc2lnbmVkIGxvbmcgbG9uZykp
KSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpOwp2b2lkICprbWVtX2NhY2hlX2FsbG9jKHN0
cnVjdCBrbWVtX2NhY2hlICosIGdmcF90IGZsYWdzKSBfX2F0dHJpYnV0ZV9fKChfX2Fzc3VtZV9h
bGlnbmVkX18oX19hbGlnbm9mX18odW5zaWduZWQgbG9uZyBsb25nKSkpKSBfX2F0dHJpYnV0ZV9f
KChfX21hbGxvY19fKSk7CnZvaWQga21lbV9jYWNoZV9mcmVlKHN0cnVjdCBrbWVtX2NhY2hlICos
IHZvaWQgKik7CiMgNDAzICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIgp2b2lkIGttZW1fY2FjaGVf
ZnJlZV9idWxrKHN0cnVjdCBrbWVtX2NhY2hlICosIHNpemVfdCwgdm9pZCAqKik7CmludCBrbWVt
X2NhY2hlX2FsbG9jX2J1bGsoc3RydWN0IGttZW1fY2FjaGUgKiwgZ2ZwX3QsIHNpemVfdCwgdm9p
ZCAqKik7CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGtmcmVl
X2J1bGsoc2l6ZV90IHNpemUsIHZvaWQgKipwKQp7CiBrbWVtX2NhY2hlX2ZyZWVfYnVsaygoKHZv
aWQgKikwKSwgc2l6ZSwgcCk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgKl9fa21hbGxvY19ub2RlKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncywgaW50IG5v
ZGUpCnsKIHJldHVybiBfX2ttYWxsb2Moc2l6ZSwgZmxhZ3MpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgKmttZW1fY2FjaGVfYWxsb2Nfbm9kZShzdHJ1Y3Qga21l
bV9jYWNoZSAqcywgZ2ZwX3QgZmxhZ3MsIGludCBub2RlKQp7CiByZXR1cm4ga21lbV9jYWNoZV9h
bGxvYyhzLCBmbGFncyk7Cn0KCgoKZXh0ZXJuIHZvaWQgKmttZW1fY2FjaGVfYWxsb2NfdHJhY2Uo
c3RydWN0IGttZW1fY2FjaGUgKiwgZ2ZwX3QsIHNpemVfdCkgX19hdHRyaWJ1dGVfXygoX19hc3N1
bWVfYWxpZ25lZF9fKF9fYWxpZ25vZl9fKHVuc2lnbmVkIGxvbmcgbG9uZykpKSkgX19hdHRyaWJ1
dGVfXygoX19tYWxsb2NfXykpOwoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgKgprbWVtX2NhY2hlX2FsbG9jX25vZGVfdHJhY2Uoc3RydWN0IGttZW1fY2FjaGUg
KnMsCiAgICAgICAgIGdmcF90IGdmcGZsYWdzLAogICAgICAgICBpbnQgbm9kZSwgc2l6ZV90IHNp
emUpCnsKIHJldHVybiBrbWVtX2NhY2hlX2FsbG9jX3RyYWNlKHMsIGdmcGZsYWdzLCBzaXplKTsK
fQojIDQ2OSAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKZXh0ZXJuIHZvaWQgKmttYWxsb2Nfb3Jk
ZXIoc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzLCB1bnNpZ25lZCBpbnQgb3JkZXIpIF9fYXR0cmli
dXRlX18oKF9fYXNzdW1lX2FsaWduZWRfXygoKDFVTCkgPDwgMTIpKSkpIF9fYXR0cmlidXRlX18o
KF9fbWFsbG9jX18pKTsKCgpleHRlcm4gdm9pZCAqa21hbGxvY19vcmRlcl90cmFjZShzaXplX3Qg
c2l6ZSwgZ2ZwX3QgZmxhZ3MsIHVuc2lnbmVkIGludCBvcmRlcikgX19hdHRyaWJ1dGVfXygoX19h
c3N1bWVfYWxpZ25lZF9fKCgoMVVMKSA8PCAxMikpKSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2Nf
XykpOwojIDQ4MSAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkICprbWFsbG9jX2xhcmdlKHNpemVfdCBzaXplLCBnZnBfdCBmbGFn
cykKewogdW5zaWduZWQgaW50IG9yZGVyID0gZ2V0X29yZGVyKHNpemUpOwogcmV0dXJuIGttYWxs
b2Nfb3JkZXJfdHJhY2Uoc2l6ZSwgZmxhZ3MsIG9yZGVyKTsKfQojIDU0MSAiLi9pbmNsdWRlL2xp
bnV4L3NsYWIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkICprbWFs
bG9jKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncykKewogaWYgKF9fYnVpbHRpbl9jb25zdGFudF9w
KHNpemUpKSB7CgogIHVuc2lnbmVkIGludCBpbmRleDsKCiAgaWYgKHNpemUgPiAoMVVMIDw8ICgo
MTEgKyAxMiAtIDEpIDw9IDI1ID8gKDExICsgMTIgLSAxKSA6IDI1KSkpCiAgIHJldHVybiBrbWFs
bG9jX2xhcmdlKHNpemUsIGZsYWdzKTsKCiAgaW5kZXggPSBrbWFsbG9jX2luZGV4KHNpemUpOwoK
ICBpZiAoIWluZGV4KQogICByZXR1cm4gKCh2b2lkICopMTYpOwoKICByZXR1cm4ga21lbV9jYWNo
ZV9hbGxvY190cmFjZSgKICAgIGttYWxsb2NfY2FjaGVzW2ttYWxsb2NfdHlwZShmbGFncyldW2lu
ZGV4XSwKICAgIGZsYWdzLCBzaXplKTsKCiB9CiByZXR1cm4gX19rbWFsbG9jKHNpemUsIGZsYWdz
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkICprbWFsbG9jX25v
ZGUoc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzLCBpbnQgbm9kZSkKewoKIGlmIChfX2J1aWx0aW5f
Y29uc3RhbnRfcChzaXplKSAmJgogIHNpemUgPD0gKDFVTCA8PCAoKDExICsgMTIgLSAxKSA8PSAy
NSA/ICgxMSArIDEyIC0gMSkgOiAyNSkpKSB7CiAgdW5zaWduZWQgaW50IGkgPSBrbWFsbG9jX2lu
ZGV4KHNpemUpOwoKICBpZiAoIWkpCiAgIHJldHVybiAoKHZvaWQgKikxNik7CgogIHJldHVybiBr
bWVtX2NhY2hlX2FsbG9jX25vZGVfdHJhY2UoCiAgICBrbWFsbG9jX2NhY2hlc1trbWFsbG9jX3R5
cGUoZmxhZ3MpXVtpXSwKICAgICAgZmxhZ3MsIG5vZGUsIHNpemUpOwogfQoKIHJldHVybiBfX2tt
YWxsb2Nfbm9kZShzaXplLCBmbGFncywgbm9kZSk7Cn0KCmludCBtZW1jZ191cGRhdGVfYWxsX2Nh
Y2hlcyhpbnQgbnVtX21lbWNncyk7CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprbWFsbG9jX2FycmF5KHNpemVfdCBu
LCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCnsKIHNpemVfdCBieXRlczsKCiBpZiAoX19idWls
dGluX2V4cGVjdCghISgoeyB0eXBlb2YobikgX19hID0gKG4pOyB0eXBlb2Yoc2l6ZSkgX19iID0g
KHNpemUpOyB0eXBlb2YoJmJ5dGVzKSBfX2QgPSAoJmJ5dGVzKTsgKHZvaWQpICgmX19hID09ICZf
X2IpOyAodm9pZCkgKCZfX2EgPT0gX19kKTsgX19idWlsdGluX211bF9vdmVyZmxvdyhfX2EsIF9f
YiwgX19kKTsgfSkpLCAwKSkKICByZXR1cm4gKCh2b2lkICopMCk7CiBpZiAoX19idWlsdGluX2Nv
bnN0YW50X3AobikgJiYgX19idWlsdGluX2NvbnN0YW50X3Aoc2l6ZSkpCiAgcmV0dXJuIGttYWxs
b2MoYnl0ZXMsIGZsYWdzKTsKIHJldHVybiBfX2ttYWxsb2MoYnl0ZXMsIGZsYWdzKTsKfQoKCgoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCAqa2NhbGxvYyhzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzKQp7CiBy
ZXR1cm4ga21hbGxvY19hcnJheShuLCBzaXplLCBmbGFncyB8ICgoIGdmcF90KTB4MTAwdSkpOwp9
CiMgNjE5ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIgpleHRlcm4gdm9pZCAqX19rbWFsbG9jX3Ry
YWNrX2NhbGxlcihzaXplX3QsIGdmcF90LCB1bnNpZ25lZCBsb25nKTsKCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqa21hbGxv
Y19hcnJheV9ub2RlKHNpemVfdCBuLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MsCiAgICAgICAg
ICAgaW50IG5vZGUpCnsKIHNpemVfdCBieXRlczsKCiBpZiAoX19idWlsdGluX2V4cGVjdCghISgo
eyB0eXBlb2YobikgX19hID0gKG4pOyB0eXBlb2Yoc2l6ZSkgX19iID0gKHNpemUpOyB0eXBlb2Yo
JmJ5dGVzKSBfX2QgPSAoJmJ5dGVzKTsgKHZvaWQpICgmX19hID09ICZfX2IpOyAodm9pZCkgKCZf
X2EgPT0gX19kKTsgX19idWlsdGluX211bF9vdmVyZmxvdyhfX2EsIF9fYiwgX19kKTsgfSkpLCAw
KSkKICByZXR1cm4gKCh2b2lkICopMCk7CiBpZiAoX19idWlsdGluX2NvbnN0YW50X3AobikgJiYg
X19idWlsdGluX2NvbnN0YW50X3Aoc2l6ZSkpCiAgcmV0dXJuIGttYWxsb2Nfbm9kZShieXRlcywg
ZmxhZ3MsIG5vZGUpOwogcmV0dXJuIF9fa21hbGxvY19ub2RlKGJ5dGVzLCBmbGFncywgbm9kZSk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgKmtjYWxsb2Nfbm9kZShzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdz
LCBpbnQgbm9kZSkKewogcmV0dXJuIGttYWxsb2NfYXJyYXlfbm9kZShuLCBzaXplLCBmbGFncyB8
ICgoIGdmcF90KTB4MTAwdSksIG5vZGUpOwp9CiMgNjU3ICIuL2luY2x1ZGUvbGludXgvc2xhYi5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkICprbWVtX2NhY2hlX3phbGxvYyhzdHJ1Y3Qga21lbV9jYWNoZSAqaywgZ2ZwX3QgZmxh
Z3MpCnsKIHJldHVybiBrbWVtX2NhY2hlX2FsbG9jKGssIGZsYWdzIHwgKCggZ2ZwX3QpMHgxMDB1
KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCAqa3phbGxvYyhzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCnsKIHJl
dHVybiBrbWFsbG9jKHNpemUsIGZsYWdzIHwgKCggZ2ZwX3QpMHgxMDB1KSk7Cn0KCgoKCgoKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgKmt6YWxsb2Nfbm9kZShzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MsIGludCBub2RlKQp7CiBy
ZXR1cm4ga21hbGxvY19ub2RlKHNpemUsIGZsYWdzIHwgKCggZ2ZwX3QpMHgxMDB1KSwgbm9kZSk7
Cn0KCnVuc2lnbmVkIGludCBrbWVtX2NhY2hlX3NpemUoc3RydWN0IGttZW1fY2FjaGUgKnMpOwp2
b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbGRfXykpIGttZW1fY2FjaGVfaW5pdF9sYXRlKHZvaWQpOwoKCmludCBzbGFiX3By
ZXBhcmVfY3B1KHVuc2lnbmVkIGludCBjcHUpOwppbnQgc2xhYl9kZWFkX2NwdSh1bnNpZ25lZCBp
bnQgY3B1KTsKIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L29zX3R5cGVzLmgiIDIKCgoKIyAxICIuL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIiAxCiMgMzEg
Ii4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxl
LmgiIDEKIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L2ZzLmgiIDEKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5oIiAxCiMgMTAg
Ii4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5oIgpzdHJ1Y3Qgd2FpdF9iaXRfa2V5IHsKIHZvaWQg
KmZsYWdzOwogaW50IGJpdF9ucjsKIHVuc2lnbmVkIGxvbmcgdGltZW91dDsKfTsKCnN0cnVjdCB3
YWl0X2JpdF9xdWV1ZV9lbnRyeSB7CiBzdHJ1Y3Qgd2FpdF9iaXRfa2V5IGtleTsKIHN0cnVjdCB3
YWl0X3F1ZXVlX2VudHJ5IHdxX2VudHJ5Owp9OwoKCgoKdHlwZWRlZiBpbnQgd2FpdF9iaXRfYWN0
aW9uX2Yoc3RydWN0IHdhaXRfYml0X2tleSAqa2V5LCBpbnQgbW9kZSk7Cgp2b2lkIF9fd2FrZV91
cF9iaXQoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgdm9pZCAqd29yZCwgaW50IGJp
dCk7CmludCBfX3dhaXRfb25fYml0KHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0
cnVjdCB3YWl0X2JpdF9xdWV1ZV9lbnRyeSAqd2JxX2VudHJ5LCB3YWl0X2JpdF9hY3Rpb25fZiAq
YWN0aW9uLCB1bnNpZ25lZCBpbnQgbW9kZSk7CmludCBfX3dhaXRfb25fYml0X2xvY2soc3RydWN0
IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfYml0X3F1ZXVlX2VudHJ5ICp3
YnFfZW50cnksIHdhaXRfYml0X2FjdGlvbl9mICphY3Rpb24sIHVuc2lnbmVkIGludCBtb2RlKTsK
dm9pZCB3YWtlX3VwX2JpdCh2b2lkICp3b3JkLCBpbnQgYml0KTsKaW50IG91dF9vZl9saW5lX3dh
aXRfb25fYml0KHZvaWQgKndvcmQsIGludCwgd2FpdF9iaXRfYWN0aW9uX2YgKmFjdGlvbiwgdW5z
aWduZWQgaW50IG1vZGUpOwppbnQgb3V0X29mX2xpbmVfd2FpdF9vbl9iaXRfdGltZW91dCh2b2lk
ICp3b3JkLCBpbnQsIHdhaXRfYml0X2FjdGlvbl9mICphY3Rpb24sIHVuc2lnbmVkIGludCBtb2Rl
LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwppbnQgb3V0X29mX2xpbmVfd2FpdF9vbl9iaXRfbG9j
ayh2b2lkICp3b3JkLCBpbnQsIHdhaXRfYml0X2FjdGlvbl9mICphY3Rpb24sIHVuc2lnbmVkIGlu
dCBtb2RlKTsKc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqYml0X3dhaXRxdWV1ZSh2b2lkICp3b3Jk
LCBpbnQgYml0KTsKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0
LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgd2FpdF9iaXRfaW5pdCh2b2lkKTsK
CmludCB3YWtlX2JpdF9mdW5jdGlvbihzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnks
IHVuc2lnbmVkIG1vZGUsIGludCBzeW5jLCB2b2lkICprZXkpOwojIDQ5ICIuL2luY2x1ZGUvbGlu
dXgvd2FpdF9iaXQuaCIKZXh0ZXJuIGludCBiaXRfd2FpdChzdHJ1Y3Qgd2FpdF9iaXRfa2V5ICpr
ZXksIGludCBtb2RlKTsKZXh0ZXJuIGludCBiaXRfd2FpdF9pbyhzdHJ1Y3Qgd2FpdF9iaXRfa2V5
ICprZXksIGludCBtb2RlKTsKZXh0ZXJuIGludCBiaXRfd2FpdF90aW1lb3V0KHN0cnVjdCB3YWl0
X2JpdF9rZXkgKmtleSwgaW50IG1vZGUpOwpleHRlcm4gaW50IGJpdF93YWl0X2lvX3RpbWVvdXQo
c3RydWN0IHdhaXRfYml0X2tleSAqa2V5LCBpbnQgbW9kZSk7CiMgNzAgIi4vaW5jbHVkZS9saW51
eC93YWl0X2JpdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQKd2FpdF9vbl9iaXQodW5zaWduZWQgbG9uZyAqd29yZCwgaW50IGJp
dCwgdW5zaWduZWQgbW9kZSkKewogZG8geyBkbyB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsK
IGlmICghdGVzdF9iaXQoYml0LCB3b3JkKSkKICByZXR1cm4gMDsKIHJldHVybiBvdXRfb2ZfbGlu
ZV93YWl0X29uX2JpdCh3b3JkLCBiaXQsCiAgICAgICAgICAgYml0X3dhaXQsCiAgICAgICAgICAg
bW9kZSk7Cn0KIyA5NSAiLi9pbmNsdWRlL2xpbnV4L3dhaXRfYml0LmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAp3YWl0X29uX2Jp
dF9pbyh1bnNpZ25lZCBsb25nICp3b3JkLCBpbnQgYml0LCB1bnNpZ25lZCBtb2RlKQp7CiBkbyB7
IGRvIHsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogaWYgKCF0ZXN0X2JpdChiaXQsIHdvcmQp
KQogIHJldHVybiAwOwogcmV0dXJuIG91dF9vZl9saW5lX3dhaXRfb25fYml0KHdvcmQsIGJpdCwK
ICAgICAgICAgICBiaXRfd2FpdF9pbywKICAgICAgICAgICBtb2RlKTsKfQojIDEyMSAiLi9pbmNs
dWRlL2xpbnV4L3dhaXRfYml0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAp3YWl0X29uX2JpdF90aW1lb3V0KHVuc2lnbmVkIGxv
bmcgKndvcmQsIGludCBiaXQsIHVuc2lnbmVkIG1vZGUsCiAgICAgIHVuc2lnbmVkIGxvbmcgdGlt
ZW91dCkKewogZG8geyBkbyB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIGlmICghdGVzdF9i
aXQoYml0LCB3b3JkKSkKICByZXR1cm4gMDsKIHJldHVybiBvdXRfb2ZfbGluZV93YWl0X29uX2Jp
dF90aW1lb3V0KHdvcmQsIGJpdCwKICAgICAgICAgICAgYml0X3dhaXRfdGltZW91dCwKICAgICAg
ICAgICAgbW9kZSwgdGltZW91dCk7Cn0KIyAxNDkgIi4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQKd2FpdF9vbl9iaXRfYWN0aW9uKHVuc2lnbmVkIGxvbmcgKndvcmQsIGludCBiaXQsIHdh
aXRfYml0X2FjdGlvbl9mICphY3Rpb24sCiAgICAgdW5zaWduZWQgbW9kZSkKewogZG8geyBkbyB7
IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIGlmICghdGVzdF9iaXQoYml0LCB3b3JkKSkKICBy
ZXR1cm4gMDsKIHJldHVybiBvdXRfb2ZfbGluZV93YWl0X29uX2JpdCh3b3JkLCBiaXQsIGFjdGlv
biwgbW9kZSk7Cn0KIyAxNzggIi4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKd2FpdF9v
bl9iaXRfbG9jayh1bnNpZ25lZCBsb25nICp3b3JkLCBpbnQgYml0LCB1bnNpZ25lZCBtb2RlKQp7
CiBkbyB7IGRvIHsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogaWYgKCF0ZXN0X2FuZF9zZXRf
Yml0KGJpdCwgd29yZCkpCiAgcmV0dXJuIDA7CiByZXR1cm4gb3V0X29mX2xpbmVfd2FpdF9vbl9i
aXRfbG9jayh3b3JkLCBiaXQsIGJpdF93YWl0LCBtb2RlKTsKfQojIDIwMiAiLi9pbmNsdWRlL2xp
bnV4L3dhaXRfYml0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludAp3YWl0X29uX2JpdF9sb2NrX2lvKHVuc2lnbmVkIGxvbmcgKndv
cmQsIGludCBiaXQsIHVuc2lnbmVkIG1vZGUpCnsKIGRvIHsgZG8geyB9IHdoaWxlICgwKTsgfSB3
aGlsZSAoMCk7CiBpZiAoIXRlc3RfYW5kX3NldF9iaXQoYml0LCB3b3JkKSkKICByZXR1cm4gMDsK
IHJldHVybiBvdXRfb2ZfbGluZV93YWl0X29uX2JpdF9sb2NrKHdvcmQsIGJpdCwgYml0X3dhaXRf
aW8sIG1vZGUpOwp9CiMgMjI4ICIuL2luY2x1ZGUvbGludXgvd2FpdF9iaXQuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CndhaXRf
b25fYml0X2xvY2tfYWN0aW9uKHVuc2lnbmVkIGxvbmcgKndvcmQsIGludCBiaXQsIHdhaXRfYml0
X2FjdGlvbl9mICphY3Rpb24sCiAgIHVuc2lnbmVkIG1vZGUpCnsKIGRvIHsgZG8geyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CiBpZiAoIXRlc3RfYW5kX3NldF9iaXQoYml0LCB3b3JkKSkKICBy
ZXR1cm4gMDsKIHJldHVybiBvdXRfb2ZfbGluZV93YWl0X29uX2JpdF9sb2NrKHdvcmQsIGJpdCwg
YWN0aW9uLCBtb2RlKTsKfQoKZXh0ZXJuIHZvaWQgaW5pdF93YWl0X3Zhcl9lbnRyeShzdHJ1Y3Qg
d2FpdF9iaXRfcXVldWVfZW50cnkgKndicV9lbnRyeSwgdm9pZCAqdmFyLCBpbnQgZmxhZ3MpOwpl
eHRlcm4gdm9pZCB3YWtlX3VwX3Zhcih2b2lkICp2YXIpOwpleHRlcm4gd2FpdF9xdWV1ZV9oZWFk
X3QgKl9fdmFyX3dhaXRxdWV1ZSh2b2lkICpwKTsKIyAzMzAgIi4vaW5jbHVkZS9saW51eC93YWl0
X2JpdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGNsZWFyX2FuZF93YWtlX3VwX2JpdChpbnQgYml0LCB2b2lkICp3b3JkKQp7
CiBjbGVhcl9iaXRfdW5sb2NrKGJpdCwgd29yZCk7CgogZG8geyB9IHdoaWxlICgwKTsKIHdha2Vf
dXBfYml0KHdvcmQsIGJpdCk7Cn0KIyA3ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi4v
aW5jbHVkZS9saW51eC9rZGV2X3QuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9r
ZGV2X3QuaCIgMQojIDYgIi4vaW5jbHVkZS9saW51eC9rZGV2X3QuaCIgMgojIDI0ICIuL2luY2x1
ZGUvbGludXgva2Rldl90LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgb2xkX3ZhbGlkX2RldihkZXZfdCBkZXYpCnsKIHJldHVy
biAoKHVuc2lnbmVkIGludCkgKChkZXYpID4+IDIwKSkgPCAyNTYgJiYgKCh1bnNpZ25lZCBpbnQp
ICgoZGV2KSAmICgoMVUgPDwgMjApIC0gMSkpKSA8IDI1NjsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTE2IG9sZF9lbmNvZGVfZGV2
KGRldl90IGRldikKewogcmV0dXJuICgoKHVuc2lnbmVkIGludCkgKChkZXYpID4+IDIwKSkgPDwg
OCkgfCAoKHVuc2lnbmVkIGludCkgKChkZXYpICYgKCgxVSA8PCAyMCkgLSAxKSkpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBkZXZf
dCBvbGRfZGVjb2RlX2Rldih1MTYgdmFsKQp7CiByZXR1cm4gKCgoKHZhbCA+PiA4KSAmIDI1NSkg
PDwgMjApIHwgKHZhbCAmIDI1NSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgbmV3X2VuY29kZV9kZXYoZGV2X3QgZGV2KQp7
CiB1bnNpZ25lZCBtYWpvciA9ICgodW5zaWduZWQgaW50KSAoKGRldikgPj4gMjApKTsKIHVuc2ln
bmVkIG1pbm9yID0gKCh1bnNpZ25lZCBpbnQpICgoZGV2KSAmICgoMVUgPDwgMjApIC0gMSkpKTsK
IHJldHVybiAobWlub3IgJiAweGZmKSB8IChtYWpvciA8PCA4KSB8ICgobWlub3IgJiB+MHhmZikg
PDwgMTIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBkZXZfdCBuZXdfZGVjb2RlX2Rldih1MzIgZGV2KQp7CiB1bnNpZ25lZCBtYWpv
ciA9IChkZXYgJiAweGZmZjAwKSA+PiA4OwogdW5zaWduZWQgbWlub3IgPSAoZGV2ICYgMHhmZikg
fCAoKGRldiA+PiAxMikgJiAweGZmZjAwKTsKIHJldHVybiAoKChtYWpvcikgPDwgMjApIHwgKG1p
bm9yKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHU2NCBodWdlX2VuY29kZV9kZXYoZGV2X3QgZGV2KQp7CiByZXR1cm4gbmV3X2Vu
Y29kZV9kZXYoZGV2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgZGV2X3QgaHVnZV9kZWNvZGVfZGV2KHU2NCBkZXYpCnsKIHJldHVy
biBuZXdfZGVjb2RlX2RldihkZXYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc3lzdl92YWxpZF9kZXYoZGV2X3QgZGV2KQp7
CiByZXR1cm4gKCh1bnNpZ25lZCBpbnQpICgoZGV2KSA+PiAyMCkpIDwgKDE8PDE0KSAmJiAoKHVu
c2lnbmVkIGludCkgKChkZXYpICYgKCgxVSA8PCAyMCkgLSAxKSkpIDwgKDE8PDE4KTsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMy
IHN5c3ZfZW5jb2RlX2RldihkZXZfdCBkZXYpCnsKIHJldHVybiAoKHVuc2lnbmVkIGludCkgKChk
ZXYpICYgKCgxVSA8PCAyMCkgLSAxKSkpIHwgKCgodW5zaWduZWQgaW50KSAoKGRldikgPj4gMjAp
KSA8PCAxOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHVuc2lnbmVkIHN5c3ZfbWFqb3IodTMyIGRldikKewogcmV0dXJuIChkZXYg
Pj4gMTgpICYgMHgzZmZmOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBzeXN2X21pbm9yKHUzMiBkZXYpCnsKIHJldHVy
biBkZXYgJiAweDNmZmZmOwp9CiMgOCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIuL2lu
Y2x1ZGUvbGludXgvZGNhY2hlLmgiIDEKCgoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvcmN1bGlz
dC5oIiAxCiMgMzEgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgSU5JVF9MSVNUX0hF
QURfUkNVKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCnsKICh7IHVuaW9uIHsgdHlwZW9mKGxpc3Qt
Pm5leHQpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKGxp
c3QtPm5leHQpKSAobGlzdCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihsaXN0LT5uZXh0KSwgX191
Ll9fYywgc2l6ZW9mKGxpc3QtPm5leHQpKTsgX191Ll9fdmFsOyB9KTsKICh7IHVuaW9uIHsgdHlw
ZW9mKGxpc3QtPnByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICgg
dHlwZW9mKGxpc3QtPnByZXYpKSAobGlzdCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihsaXN0LT5w
cmV2KSwgX191Ll9fYywgc2l6ZW9mKGxpc3QtPnByZXYpKTsgX191Ll9fdmFsOyB9KTsKfQojIDc3
ICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbGlzdF9hZGRfcmN1KHN0cnVjdCBs
aXN0X2hlYWQgKm5ldywKICBzdHJ1Y3QgbGlzdF9oZWFkICpwcmV2LCBzdHJ1Y3QgbGlzdF9oZWFk
ICpuZXh0KQp7CiBpZiAoIV9fbGlzdF9hZGRfdmFsaWQobmV3LCBwcmV2LCBuZXh0KSkKICByZXR1
cm47CgogbmV3LT5uZXh0ID0gbmV4dDsKIG5ldy0+cHJldiA9IHByZXY7CiBkbyB7IHVpbnRwdHJf
dCBfcl9hX3BfX3YgPSAodWludHB0cl90KShuZXcpOyA7IGlmIChfX2J1aWx0aW5fY29uc3RhbnRf
cChuZXcpICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9u
IHsgdHlwZW9mKCgoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpIF9f
dmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCgoKigoc3RydWN0
IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpKSAoKHR5cGVvZigoKigoc3RydWN0IGxp
c3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25j
ZV9zaXplKCYoKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSksIF9f
dS5fX2MsIHNpemVvZigoKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkp
KSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2UgZG8geyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRp
bWVfYXNzZXJ0Xzg1KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUg
d29yZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9m
KComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVvZihj
aGFyKSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkp
KSkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKiko
JihwcmV2KS0+bmV4dCkpKSkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBs
aXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVvZihsb25nKSkpKSBfX2NvbXBp
bGV0aW1lX2Fzc2VydF84NSgpOyB9IHdoaWxlICgwKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6
IDogOiJtZW1vcnkiKTsgKHsgdW5pb24geyB0eXBlb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAq
KikoJihwcmV2KS0+bmV4dCkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFs
ID0gKCB0eXBlb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkp
ICgodHlwZW9mKCooKHR5cGVvZigoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4
dCkpKSkpX3JfYV9wX192KSkgKikoKHR5cGVvZigoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihw
cmV2KS0+bmV4dCkpKSkpX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJigqKChz
dHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSwgX191Ll9fYywgc2l6ZW9mKCom
KCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpKTsgX191Ll9fdmFsOyB9
KTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogbmV4dC0+cHJldiA9IG5ldzsKfQojIDEwNSAi
Li9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X2FkZF9yY3Uoc3RydWN0IGxpc3Rf
aGVhZCAqbmV3LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQp7CiBfX2xpc3RfYWRkX3JjdShuZXcs
IGhlYWQsIGhlYWQtPm5leHQpOwp9CiMgMTI2ICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGxpc3RfYWRkX3RhaWxfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKm5ldywKICAgICBzdHJ1Y3Qg
bGlzdF9oZWFkICpoZWFkKQp7CiBfX2xpc3RfYWRkX3JjdShuZXcsIGhlYWQtPnByZXYsIGhlYWQp
Owp9CiMgMTU2ICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxpc3RfZGVsX3JjdShz
dHJ1Y3QgbGlzdF9oZWFkICplbnRyeSkKewogX19saXN0X2RlbF9lbnRyeShlbnRyeSk7CiBlbnRy
eS0+cHJldiA9ICgodm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwp9CiMg
MTgyICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2RlbF9pbml0X3JjdShz
dHJ1Y3QgaGxpc3Rfbm9kZSAqbikKewogaWYgKCFobGlzdF91bmhhc2hlZChuKSkgewogIF9faGxp
c3RfZGVsKG4pOwogICh7IHVuaW9uIHsgdHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2Nb
MV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5wcHJldikpICgoKHZvaWQgKikwKSkg
fTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihuLT5wcHJl
dikpOyBfX3UuX192YWw7IH0pOwogfQp9CiMgMTk4ICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGxpc3RfcmVwbGFjZV9yY3Uoc3RydWN0IGxpc3RfaGVhZCAqb2xkLAogICAgc3RydWN0
IGxpc3RfaGVhZCAqbmV3KQp7CiBuZXctPm5leHQgPSBvbGQtPm5leHQ7CiBuZXctPnByZXYgPSBv
bGQtPnByZXY7CiBkbyB7IHVpbnRwdHJfdCBfcl9hX3BfX3YgPSAodWludHB0cl90KShuZXcpOyA7
IGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChuZXcpICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRy
X3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGxpc3RfaGVhZCAq
KikoJihuZXctPnByZXYpLT5uZXh0KSkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsg
Ll9fdmFsID0gKCB0eXBlb2YoKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldikt
Pm5leHQpKSkpKSkgKCh0eXBlb2YoKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3LT5wcmV2
KS0+bmV4dCkpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCgqKChzdHJ1
Y3QgbGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpKSwgX191Ll9fYywgc2l6ZW9m
KCgoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSkpOyBfX3Uu
X192YWw7IH0pOyBlbHNlIGRvIHsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF8yMDModm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNp
emVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2YoKiYoKigo
c3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoY2hh
cikgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3LT5wcmV2KS0+bmV4
dCkpKSkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAq
KikoJihuZXctPnByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYoKigo
c3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YobG9u
ZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfMjAzKCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9f
dm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1
Y3QgbGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpIF9fdmFsOyBjaGFyIF9fY1sx
XTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiop
KCYobmV3LT5wcmV2KS0+bmV4dCkpKSkpICgodHlwZW9mKCooKHR5cGVvZigoKigoc3RydWN0IGxp
c3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSlfcl9hX3BfX3YpKSAqKSgodHlwZW9m
KCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpKV9yX2FfcF9f
dikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihu
ZXctPnByZXYpLT5uZXh0KSkpKSwgX191Ll9fYywgc2l6ZW9mKComKCooKHN0cnVjdCBsaXN0X2hl
YWQgKiopKCYobmV3LT5wcmV2KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgw
KTsgfSB3aGlsZSAoMCk7CiBuZXctPm5leHQtPnByZXYgPSBuZXc7CiBvbGQtPnByZXYgPSAoKHZv
aWQgKikgMHgxMjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwpKTsKfQojIDIyNyAiLi9pbmNsdWRl
L2xpbnV4L3JjdWxpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2xpc3Rfc3BsaWNlX2luaXRfcmN1KHN0cnVjdCBsaXN0
X2hlYWQgKmxpc3QsCiAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwcmV2LAogICAgICAgc3RydWN0
IGxpc3RfaGVhZCAqbmV4dCwKICAgICAgIHZvaWQgKCpzeW5jKSh2b2lkKSkKewogc3RydWN0IGxp
c3RfaGVhZCAqZmlyc3QgPSBsaXN0LT5uZXh0Owogc3RydWN0IGxpc3RfaGVhZCAqbGFzdCA9IGxp
c3QtPnByZXY7CgoKCgoKCgogSU5JVF9MSVNUX0hFQURfUkNVKGxpc3QpOwojIDI1MCAiLi9pbmNs
dWRlL2xpbnV4L3JjdWxpc3QuaCIKIHN5bmMoKTsKIyAyNjAgIi4vaW5jbHVkZS9saW51eC9yY3Vs
aXN0LmgiCiBsYXN0LT5uZXh0ID0gbmV4dDsKIGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1
aW50cHRyX3QpKGZpcnN0KTsgOyBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoZmlyc3QpICYmIChf
cl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlwZW9mKCgo
Kigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCgoKigoc3RydWN0IGxpc3RfaGVhZCAq
KikoJihwcmV2KS0+bmV4dCkpKSkpKSAoKHR5cGVvZigoKigoc3RydWN0IGxpc3RfaGVhZCAqKiko
JihwcmV2KS0+bmV4dCkpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCgq
KChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSksIF9fdS5fX2MsIHNpemVv
ZigoKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpKSk7IF9fdS5fX3Zh
bDsgfSk7IGVsc2UgZG8geyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzI2
MSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQg
c3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJigqKChzdHJ1
Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6
ZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVv
ZihzaG9ydCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5l
eHQpKSkpID09IHNpemVvZihpbnQpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoq
KSgmKHByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3Nl
cnRfMjYxKCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9y
eSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYp
LT5uZXh0KSkpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVv
ZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgKCh0eXBlb2Yo
KigodHlwZW9mKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSlfcl9h
X3BfX3YpKSAqKSgodHlwZW9mKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0
KSkpKSlfcl9hX3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKComKCooKHN0cnVjdCBsaXN0
X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpLCBfX3UuX19jLCBzaXplb2YoKiYoKigoc3RydWN0
IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CiBmaXJzdC0+cHJldiA9IHByZXY7CiBuZXh0LT5wcmV2ID0gbGFz
dDsKfQojIDI3MyAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3NwbGljZV9p
bml0X3JjdShzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhl
YWQsCiAgICAgdm9pZCAoKnN5bmMpKHZvaWQpKQp7CiBpZiAoIWxpc3RfZW1wdHkobGlzdCkpCiAg
X19saXN0X3NwbGljZV9pbml0X3JjdShsaXN0LCBoZWFkLCBoZWFkLT5uZXh0LCBzeW5jKTsKfQoj
IDI4OCAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3NwbGljZV90YWlsX2lu
aXRfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFk
ICpoZWFkLAogICAgICAgICAgdm9pZCAoKnN5bmMpKHZvaWQpKQp7CiBpZiAoIWxpc3RfZW1wdHko
bGlzdCkpCiAgX19saXN0X3NwbGljZV9pbml0X3JjdShsaXN0LCBoZWFkLT5wcmV2LCBoZWFkLCBz
eW5jKTsKfQojIDQ4MyAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9kZWxf
cmN1KHN0cnVjdCBobGlzdF9ub2RlICpuKQp7CiBfX2hsaXN0X2RlbChuKTsKICh7IHVuaW9uIHsg
dHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAo
IHR5cGVvZihuLT5wcHJldikpICgoKHZvaWQgKikgMHgxMjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAw
VUwpKSkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihu
LT5wcHJldikpOyBfX3UuX192YWw7IH0pOwp9CiMgNDk2ICIuL2luY2x1ZGUvbGludXgvcmN1bGlz
dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGhsaXN0X3JlcGxhY2VfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpvbGQsCiAgICAg
c3RydWN0IGhsaXN0X25vZGUgKm5ldykKewogc3RydWN0IGhsaXN0X25vZGUgKm5leHQgPSBvbGQt
Pm5leHQ7CgogbmV3LT5uZXh0ID0gbmV4dDsKICh7IHVuaW9uIHsgdHlwZW9mKG5ldy0+cHByZXYp
IF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG5ldy0+cHBy
ZXYpKSAob2xkLT5wcHJldikgfTsgX193cml0ZV9vbmNlX3NpemUoJihuZXctPnBwcmV2KSwgX191
Ll9fYywgc2l6ZW9mKG5ldy0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKIGRvIHsgdWludHB0cl90
IF9yX2FfcF9fdiA9ICh1aW50cHRyX3QpKG5ldyk7IDsgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9w
KG5ldykgJiYgKF9yX2FfcF9fdikgPT0gKHVpbnRwdHJfdCkoKHZvaWQgKikwKSkgKHsgdW5pb24g
eyB0eXBlb2YoKCooc3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldikpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCgqKHN0cnVjdCBobGlzdF9ub2Rl
ICoqKW5ldy0+cHByZXYpKSkgKCh0eXBlb2YoKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBw
cmV2KSkoX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigoKihzdHJ1Y3QgaGxpc3Rf
bm9kZSAqKiluZXctPnBwcmV2KSksIF9fdS5fX2MsIHNpemVvZigoKihzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqKiluZXctPnBwcmV2KSkpOyBfX3UuX192YWw7IH0pOyBlbHNlIGRvIHsgZG8geyBleHRlcm4g
dm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF81MDModm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJv
cl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIp
KSk7IGlmICghKChzaXplb2YoKiYqKHN0cnVjdCBobGlzdF9ub2RlICoqKW5ldy0+cHByZXYpID09
IHNpemVvZihjaGFyKSB8fCBzaXplb2YoKiYqKHN0cnVjdCBobGlzdF9ub2RlICoqKW5ldy0+cHBy
ZXYpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9mKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKilu
ZXctPnBwcmV2KSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYqKHN0cnVjdCBobGlzdF9ub2Rl
ICoqKW5ldy0+cHByZXYpID09IHNpemVvZihsb25nKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF81
MDMoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7
ICh7IHVuaW9uIHsgdHlwZW9mKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSBf
X3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJiooc3RydWN0
IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldikpICgodHlwZW9mKCooKHR5cGVvZigqKHN0cnVjdCBo
bGlzdF9ub2RlICoqKW5ldy0+cHByZXYpKV9yX2FfcF9fdikpICopKCh0eXBlb2YoKihzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSlfcl9hX3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6
ZSgmKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9m
KComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7IH0g
d2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIGlmIChuZXh0KQogICh7IHVuaW9uIHsgdHlwZW9mKG5l
dy0+bmV4dC0+cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICgg
dHlwZW9mKG5ldy0+bmV4dC0+cHByZXYpKSAoJm5ldy0+bmV4dCkgfTsgX193cml0ZV9vbmNlX3Np
emUoJihuZXctPm5leHQtPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG5ldy0+bmV4dC0+cHByZXYp
KTsgX191Ll9fdmFsOyB9KTsKICh7IHVuaW9uIHsgdHlwZW9mKG9sZC0+cHByZXYpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG9sZC0+cHByZXYpKSAoKCh2
b2lkICopIDB4MTIyICsgKDB4ZGVhZDAwMDAwMDAwMDAwMFVMKSkpIH07IF9fd3JpdGVfb25jZV9z
aXplKCYob2xkLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihvbGQtPnBwcmV2KSk7IF9fdS5fX3Zh
bDsgfSk7Cn0KIyA1MzUgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfYWRk
X2hlYWRfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpuLAogICAgIHN0cnVjdCBobGlzdF9oZWFkICpo
KQp7CiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqZmlyc3QgPSBoLT5maXJzdDsKCiBuLT5uZXh0ID0gZmly
c3Q7CiAoeyB1bmlvbiB7IHR5cGVvZihuLT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+cHByZXYpKSAoJmgtPmZpcnN0KSB9OyBfX3dyaXRl
X29uY2Vfc2l6ZSgmKG4tPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG4tPnBwcmV2KSk7IF9fdS5f
X3ZhbDsgfSk7CiBkbyB7IHVpbnRwdHJfdCBfcl9hX3BfX3YgPSAodWludHB0cl90KShuKTsgOyBp
ZiAoX19idWlsdGluX2NvbnN0YW50X3AobikgJiYgKF9yX2FfcF9fdikgPT0gKHVpbnRwdHJfdCko
KHZvaWQgKikwKSkgKHsgdW5pb24geyB0eXBlb2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiko
JihoKS0+Zmlyc3QpKSkpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAo
IHR5cGVvZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkpKSAoKHR5
cGVvZigoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCktPmZpcnN0KSkpKSkoX3JfYV9wX192
KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgp
LT5maXJzdCkpKSkpLCBfX3UuX19jLCBzaXplb2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiko
JihoKS0+Zmlyc3QpKSkpKSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2UgZG8geyBkbyB7IGV4dGVybiB2
b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzU0Mih2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9y
X18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikp
KTsgaWYgKCEoKHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3Qp
KSkpID09IHNpemVvZihjaGFyKSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiop
KCYoaCktPmZpcnN0KSkpKSA9PSBzaXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJigqKChzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3QpKSkpID09IHNpemVvZihpbnQpIHx8IHNpemVvZigq
JigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3QpKSkpID09IHNpemVvZihsb25n
KSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF81NDIoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192
b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7ICh7IHVuaW9uIHsgdHlwZW9mKComKCooKHN0cnVj
dCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCkt
PmZpcnN0KSkpKSkgKCh0eXBlb2YoKigodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiko
JihoKS0+Zmlyc3QpKSkpKV9yX2FfcF9fdikpICopKCh0eXBlb2YoKCooKHN0cnVjdCBobGlzdF9u
b2RlICoqKSgmKGgpLT5maXJzdCkpKSkpX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUo
JigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3QpKSkpLCBfX3UuX19jLCBz
aXplb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCktPmZpcnN0KSkpKSk7IF9fdS5f
X3ZhbDsgfSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIGlmIChmaXJzdCkKICAoeyB1bmlv
biB7IHR5cGVvZihmaXJzdC0+cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5f
X3ZhbCA9ICggdHlwZW9mKGZpcnN0LT5wcHJldikpICgmbi0+bmV4dCkgfTsgX193cml0ZV9vbmNl
X3NpemUoJihmaXJzdC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2YoZmlyc3QtPnBwcmV2KSk7IF9f
dS5fX3ZhbDsgfSk7Cn0KIyA1NjYgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxp
c3RfYWRkX3RhaWxfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpuLAogICAgICAgICAgc3RydWN0IGhs
aXN0X2hlYWQgKmgpCnsKIHN0cnVjdCBobGlzdF9ub2RlICppLCAqbGFzdCA9ICgodm9pZCAqKTAp
OwoKCiBmb3IgKGkgPSBoLT5maXJzdDsgaTsgaSA9IGktPm5leHQpCiAgbGFzdCA9IGk7CgogaWYg
KGxhc3QpIHsKICBuLT5uZXh0ID0gbGFzdC0+bmV4dDsKICAoeyB1bmlvbiB7IHR5cGVvZihuLT5w
cHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+
cHByZXYpKSAoJmxhc3QtPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+cHByZXYpLCBf
X3UuX19jLCBzaXplb2Yobi0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKICBkbyB7IHVpbnRwdHJf
dCBfcl9hX3BfX3YgPSAodWludHB0cl90KShuKTsgOyBpZiAoX19idWlsdGluX2NvbnN0YW50X3Ao
bikgJiYgKF9yX2FfcF9fdikgPT0gKHVpbnRwdHJfdCkoKHZvaWQgKikwKSkgKHsgdW5pb24geyB0
eXBlb2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSkpIF9fdmFs
OyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCgoKigoc3RydWN0IGhs
aXN0X25vZGUgKiopKCYobGFzdCktPm5leHQpKSkpKSkgKCh0eXBlb2YoKCooKHN0cnVjdCBobGlz
dF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSkoX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNl
X3NpemUoJigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSksIF9f
dS5fX2MsIHNpemVvZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkp
KSkpOyBfX3UuX192YWw7IH0pOyBlbHNlIGRvIHsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0
aW1lX2Fzc2VydF81Nzgodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2
ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXpl
b2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYobGFzdCktPm5leHQpKSkpID09IHNpemVv
ZihjaGFyKSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYobGFzdCktPm5l
eHQpKSkpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2Rl
ICoqKSgmKGxhc3QpLT5uZXh0KSkpKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYoKigoc3Ry
dWN0IGhsaXN0X25vZGUgKiopKCYobGFzdCktPm5leHQpKSkpID09IHNpemVvZihsb25nKSkpKSBf
X2NvbXBpbGV0aW1lX2Fzc2VydF81NzgoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7ICh7IHVuaW9uIHsgdHlwZW9mKComKCooKHN0cnVjdCBobGlz
dF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0g
eyAuX192YWwgPSAoIHR5cGVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+
bmV4dCkpKSkpICgodHlwZW9mKCooKHR5cGVvZigoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYo
bGFzdCktPm5leHQpKSkpKV9yX2FfcF9fdikpICopKCh0eXBlb2YoKCooKHN0cnVjdCBobGlzdF9u
b2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSlfcl9hX3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6
ZSgmKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSwgX191Ll9f
Yywgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSk7
IF9fdS5fX3ZhbDsgfSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIH0gZWxzZSB7CiAgaGxp
c3RfYWRkX2hlYWRfcmN1KG4sIGgpOwogfQp9CiMgNjAyICIuL2luY2x1ZGUvbGludXgvcmN1bGlz
dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGhsaXN0X2FkZF9iZWZvcmVfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpuLAogICAg
IHN0cnVjdCBobGlzdF9ub2RlICpuZXh0KQp7CiAoeyB1bmlvbiB7IHR5cGVvZihuLT5wcHJldikg
X192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+cHByZXYp
KSAobmV4dC0+cHByZXYpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+cHByZXYpLCBfX3UuX19j
LCBzaXplb2Yobi0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKIG4tPm5leHQgPSBuZXh0OwogZG8g
eyB1aW50cHRyX3QgX3JfYV9wX192ID0gKHVpbnRwdHJfdCkobik7IDsgaWYgKF9fYnVpbHRpbl9j
b25zdGFudF9wKG4pICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICopMCkpICh7
IHVuaW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKChuKS0+cHByZXYpKSkp
KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigoKCooKHN0
cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSkpICgodHlwZW9mKCgqKChzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25j
ZV9zaXplKCYoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpLCBfX3Uu
X19jLCBzaXplb2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpKTsg
X191Ll9fdmFsOyB9KTsgZWxzZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9h
c3NlcnRfNjA3KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29y
ZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKCom
KCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSA9PSBzaXplb2YoY2hhcikg
fHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSA9PSBz
aXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5w
cHJldikpKSkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2Rl
ICoqKSgobiktPnBwcmV2KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3Nl
cnRfNjA3KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9y
eSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5w
cHJldikpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yo
KiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKChuKS0+cHByZXYpKSkpKSAoKHR5cGVvZigqKCh0
eXBlb2YoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSlfcl9hX3BfX3Yp
KSAqKSgodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpX3Jf
YV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAq
KikoKG4pLT5wcHJldikpKSksIF9fdS5fX2MsIHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqKikoKG4pLT5wcHJldikpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGls
ZSAoMCk7CiAoeyB1bmlvbiB7IHR5cGVvZihuZXh0LT5wcHJldikgX192YWw7IGNoYXIgX19jWzFd
OyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YobmV4dC0+cHByZXYpKSAoJm4tPm5leHQpIH07
IF9fd3JpdGVfb25jZV9zaXplKCYobmV4dC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2YobmV4dC0+
cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKfQojIDYyOSAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3Qu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBobGlzdF9hZGRfYmVoaW5kX3JjdShzdHJ1Y3QgaGxpc3Rfbm9kZSAqbiwKICAgICBz
dHJ1Y3QgaGxpc3Rfbm9kZSAqcHJldikKewogbi0+bmV4dCA9IHByZXYtPm5leHQ7CiAoeyB1bmlv
biB7IHR5cGVvZihuLT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFs
ID0gKCB0eXBlb2Yobi0+cHByZXYpKSAoJnByZXYtPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXpl
KCYobi0+cHByZXYpLCBfX3UuX19jLCBzaXplb2Yobi0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsK
IGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1aW50cHRyX3QpKG4pOyA7IGlmIChfX2J1aWx0
aW5fY29uc3RhbnRfcChuKSAmJiAoX3JfYV9wX192KSA9PSAodWludHB0cl90KSgodm9pZCAqKTAp
KSAoeyB1bmlvbiB7IHR5cGVvZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKHByZXYpLT5u
ZXh0KSkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yo
KCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkpKSAoKHR5cGVvZigo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpKShfcl9hX3BfX3YpKSB9
OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldikt
Pm5leHQpKSkpKSwgX191Ll9fYywgc2l6ZW9mKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYo
cHJldiktPm5leHQpKSkpKSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2UgZG8geyBkbyB7IGV4dGVybiB2
b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzYzNCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9y
X18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikp
KTsgaWYgKCEoKHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4
dCkpKSkgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAq
KikoJihwcmV2KS0+bmV4dCkpKSkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYoKigoc3Ry
dWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVvZihpbnQpIHx8IHNp
emVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkgPT0gc2l6
ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzYzNCgpOyB9IHdoaWxlICgwKTsgX19h
c21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKHsgdW5pb24geyB0eXBlb2YoKiYo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2Rl
ICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgKCh0eXBlb2YoKigodHlwZW9mKCgqKChzdHJ1Y3QgaGxp
c3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkpX3JfYV9wX192KSkgKikoKHR5cGVvZigoKigo
c3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpKV9yX2FfcF9fdikpIH07IF9f
d3JpdGVfb25jZV9zaXplKCYoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5l
eHQpKSkpLCBfX3UuX19jLCBzaXplb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJl
diktPm5leHQpKSkpKTsgX191Ll9fdmFsOyB9KTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwog
aWYgKG4tPm5leHQpCiAgKHsgdW5pb24geyB0eXBlb2Yobi0+bmV4dC0+cHByZXYpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPm5leHQtPnBwcmV2KSkg
KCZuLT5uZXh0KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG4tPm5leHQtPnBwcmV2KSwgX191Ll9f
Yywgc2l6ZW9mKG4tPm5leHQtPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7Cn0KIyA4ICIuL2luY2x1
ZGUvbGludXgvZGNhY2hlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdF9ibC5oIiAx
CgoKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9saXN0X2JsLmgiIDEKCgoKCgojIDEgIi4vaW5j
bHVkZS9saW51eC9iaXRfc3BpbmxvY2suaCIgMQojIDE2ICIuL2luY2x1ZGUvbGludXgvYml0X3Nw
aW5sb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYml0X3NwaW5fbG9jayhpbnQgYml0bnVtLCB1bnNpZ25lZCBsb25nICph
ZGRyKQp7CgoKCgoKCgogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKCiB3
aGlsZSAoX19idWlsdGluX2V4cGVjdCghISh0ZXN0X2FuZF9zZXRfYml0X2xvY2soYml0bnVtLCBh
ZGRyKSksIDApKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKICBk
byB7CiAgIGNwdV9yZWxheCgpOwogIH0gd2hpbGUgKHRlc3RfYml0KGJpdG51bSwgYWRkcikpOwog
IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiB9CgogKHZvaWQpMDsKfQoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IGJpdF9zcGluX3RyeWxvY2soaW50IGJpdG51bSwgdW5zaWduZWQgbG9uZyAqYWRkcikK
ewogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKCiBpZiAoX19idWlsdGlu
X2V4cGVjdCghISh0ZXN0X2FuZF9zZXRfYml0X2xvY2soYml0bnVtLCBhZGRyKSksIDApKSB7CiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKICByZXR1cm4gMDsKIH0KCiAo
dm9pZCkwOwogcmV0dXJuIDE7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0X3NwaW5fdW5sb2NrKGludCBiaXRudW0s
IHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKCgoKCiBjbGVhcl9iaXRfdW5sb2NrKGJpdG51bSwgYWRk
cik7CgogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKICh2b2lkKTA7Cn0K
CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBfX2JpdF9zcGluX3VubG9jayhpbnQgYml0bnVtLCB1bnNpZ25lZCBsb25nICph
ZGRyKQp7CgoKCgogX19jbGVhcl9iaXRfdW5sb2NrKGJpdG51bSwgYWRkcik7CgogX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKICh2b2lkKTA7Cn0KCgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRfc3Bp
bl9pc19sb2NrZWQoaW50IGJpdG51bSwgdW5zaWduZWQgbG9uZyAqYWRkcikKewoKIHJldHVybiB0
ZXN0X2JpdChiaXRudW0sIGFkZHIpOwoKCgoKCn0KIyA3ICIuL2luY2x1ZGUvbGludXgvbGlzdF9i
bC5oIiAyCiMgMzQgIi4vaW5jbHVkZS9saW51eC9saXN0X2JsLmgiCnN0cnVjdCBobGlzdF9ibF9o
ZWFkIHsKIHN0cnVjdCBobGlzdF9ibF9ub2RlICpmaXJzdDsKfTsKCnN0cnVjdCBobGlzdF9ibF9u
b2RlIHsKIHN0cnVjdCBobGlzdF9ibF9ub2RlICpuZXh0LCAqKnBwcmV2Owp9OwoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIElO
SVRfSExJU1RfQkxfTk9ERShzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqaCkKewogaC0+bmV4dCA9ICgo
dm9pZCAqKTApOwogaC0+cHByZXYgPSAoKHZvaWQgKikwKTsKfQoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGhsaXN0X2JsX3Vu
aGFzaGVkKGNvbnN0IHN0cnVjdCBobGlzdF9ibF9ub2RlICpoKQp7CiByZXR1cm4gIWgtPnBwcmV2
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqaGxpc3RfYmxfZmlyc3Qoc3RydWN0IGhsaXN0X2Js
X2hlYWQgKmgpCnsKIHJldHVybiAoc3RydWN0IGhsaXN0X2JsX25vZGUgKikKICAoKHVuc2lnbmVk
IGxvbmcpaC0+Zmlyc3QgJiB+MVVMKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9ibF9zZXRfZmlyc3Qoc3RydWN0
IGhsaXN0X2JsX2hlYWQgKmgsCiAgICAgc3RydWN0IGhsaXN0X2JsX25vZGUgKm4pCnsKIGRvIHsg
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoKHVuc2lnbmVkIGxvbmcpbiAmIDFVTCksIDApKSBkbyB7
IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxu
IiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFi
IiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAi
ICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19l
bnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQu
b3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L2xpc3Rf
YmwuaCIpLCAiaSIgKDY2KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkp
KTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9w
c2VjdGlvblxuXHQiIDogOiAiaSIgKDE5KSk7IH0pOyBhc20gdm9sYXRpbGUoIiIpOyBfX2J1aWx0
aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsK
IGRvIHsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoKCh1bnNpZ25lZCBsb25nKWgtPmZpcnN0ICYg
MVVMKSAhPSAxVUwpLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIg
Ii5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJc
biIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJc
biIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJc
dC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1
Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImki
ICgiaW5jbHVkZS9saW51eC9saXN0X2JsLmgiKSwgImkiICg2NyksICJpIiAoMCksICJpIiAoc2l6
ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGls
ZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxv
bmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgyMCkpOyB9KTsgYXNt
IHZvbGF0aWxlKCIiKTsgX19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdo
aWxlICgwKTsgfSB3aGlsZSAoMCkKICAgICAgICAgICAgICAgICAgICAgICAgOwogaC0+Zmlyc3Qg
PSAoc3RydWN0IGhsaXN0X2JsX25vZGUgKikoKHVuc2lnbmVkIGxvbmcpbiB8IDFVTCk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgaGxpc3RfYmxfZW1wdHkoY29uc3Qgc3RydWN0IGhsaXN0X2JsX2hlYWQgKmgpCnsKIHJldHVy
biAhKCh1bnNpZ25lZCBsb25nKSh7IHVuaW9uIHsgdHlwZW9mKGgtPmZpcnN0KSBfX3ZhbDsgY2hh
ciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKGgtPmZpcnN0KSwgX191
Ll9fYywgc2l6ZW9mKGgtPmZpcnN0KSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYo
aC0+Zmlyc3QpLCBfX3UuX19jLCBzaXplb2YoaC0+Zmlyc3QpKTsgZG8geyB9IHdoaWxlICgwKTsg
X191Ll9fdmFsOyB9KSAmIH4xVUwpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2JsX2FkZF9oZWFkKHN0cnVjdCBo
bGlzdF9ibF9ub2RlICpuLAogICAgIHN0cnVjdCBobGlzdF9ibF9oZWFkICpoKQp7CiBzdHJ1Y3Qg
aGxpc3RfYmxfbm9kZSAqZmlyc3QgPSBobGlzdF9ibF9maXJzdChoKTsKCiBuLT5uZXh0ID0gZmly
c3Q7CiBpZiAoZmlyc3QpCiAgZmlyc3QtPnBwcmV2ID0gJm4tPm5leHQ7CiBuLT5wcHJldiA9ICZo
LT5maXJzdDsKIGhsaXN0X2JsX3NldF9maXJzdChoLCBuKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9ibF9hZGRf
YmVmb3JlKHN0cnVjdCBobGlzdF9ibF9ub2RlICpuLAogICAgICAgICAgIHN0cnVjdCBobGlzdF9i
bF9ub2RlICpuZXh0KQp7CiBzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqKnBwcmV2ID0gbmV4dC0+cHBy
ZXY7Cgogbi0+cHByZXYgPSBwcHJldjsKIG4tPm5leHQgPSBuZXh0OwogbmV4dC0+cHByZXYgPSAm
bi0+bmV4dDsKCgogKHsgdW5pb24geyB0eXBlb2YoKnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqcHByZXYpKSAoKHN0cnVjdCBobGlzdF9ibF9u
b2RlICopICgodWludHB0cl90KW4gfCAoKHVpbnRwdHJfdCkqcHByZXYgJiAxVUwpKSkgfTsgX193
cml0ZV9vbmNlX3NpemUoJigqcHByZXYpLCBfX3UuX19jLCBzaXplb2YoKnBwcmV2KSk7IF9fdS5f
X3ZhbDsgfSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2JsX2FkZF9iZWhpbmQoc3RydWN0IGhsaXN0X2Js
X25vZGUgKm4sCiAgICAgICAgICAgc3RydWN0IGhsaXN0X2JsX25vZGUgKnByZXYpCnsKIG4tPm5l
eHQgPSBwcmV2LT5uZXh0Owogbi0+cHByZXYgPSAmcHJldi0+bmV4dDsKIHByZXYtPm5leHQgPSBu
OwoKIGlmIChuLT5uZXh0KQogIG4tPm5leHQtPnBwcmV2ID0gJm4tPm5leHQ7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19o
bGlzdF9ibF9kZWwoc3RydWN0IGhsaXN0X2JsX25vZGUgKm4pCnsKIHN0cnVjdCBobGlzdF9ibF9u
b2RlICpuZXh0ID0gbi0+bmV4dDsKIHN0cnVjdCBobGlzdF9ibF9ub2RlICoqcHByZXYgPSBuLT5w
cHJldjsKCiBkbyB7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCh1bnNpZ25lZCBsb25nKW4gJiAx
VUwpLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4
MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQi
ICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAi
LmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVj
MSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6
ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVk
ZS9saW51eC9saXN0X2JsLmgiKSwgImkiICgxMjApLCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1
Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpc
blx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIg
LSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMjEpKTsgfSk7IGFzbSB2b2xhdGls
ZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7
IH0gd2hpbGUgKDApOwoKCiAoeyB1bmlvbiB7IHR5cGVvZigqcHByZXYpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCpwcHJldikpICgoc3RydWN0IGhsaXN0
X2JsX25vZGUgKikgKCh1bnNpZ25lZCBsb25nKW5leHQgfCAoKHVuc2lnbmVkIGxvbmcpKnBwcmV2
ICYgMVVMKSkpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKnBwcmV2KSwgX191Ll9fYywgc2l6ZW9m
KCpwcHJldikpOyBfX3UuX192YWw7IH0pCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOwogaWYgKG5leHQpCiAgbmV4dC0+cHByZXYgPSBwcHJldjsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBobGlzdF9ibF9kZWwoc3RydWN0IGhsaXN0X2JsX25vZGUgKm4pCnsKIF9faGxpc3RfYmxf
ZGVsKG4pOwogbi0+bmV4dCA9ICgodm9pZCAqKSAweDEwMCArICgweGRlYWQwMDAwMDAwMDAwMDBV
TCkpOwogbi0+cHByZXYgPSAoKHZvaWQgKikgMHgxMjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwp
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBobGlzdF9ibF9kZWxfaW5pdChzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbikKewog
aWYgKCFobGlzdF9ibF91bmhhc2hlZChuKSkgewogIF9faGxpc3RfYmxfZGVsKG4pOwogIElOSVRf
SExJU1RfQkxfTk9ERShuKTsKIH0KfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9ibF9sb2NrKHN0cnVjdCBobGlzdF9i
bF9oZWFkICpiKQp7CiBiaXRfc3Bpbl9sb2NrKDAsICh1bnNpZ25lZCBsb25nICopYik7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaGxpc3RfYmxfdW5sb2NrKHN0cnVjdCBobGlzdF9ibF9oZWFkICpiKQp7CiBfX2JpdF9zcGlu
X3VubG9jaygwLCAodW5zaWduZWQgbG9uZyAqKWIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGhsaXN0X2JsX2lzX2xvY2tl
ZChzdHJ1Y3QgaGxpc3RfYmxfaGVhZCAqYikKewogcmV0dXJuIGJpdF9zcGluX2lzX2xvY2tlZCgw
LCAodW5zaWduZWQgbG9uZyAqKWIpOwp9CiMgOSAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3RfYmwu
aCIgMgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgaGxpc3RfYmxfc2V0X2ZpcnN0X3JjdShzdHJ1Y3QgaGxpc3RfYmxfaGVhZCAq
aCwKICAgICBzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbikKewogZG8geyBpZiAoX19idWlsdGluX2V4
cGVjdCghISgodW5zaWduZWQgbG9uZyluICYgMVVMKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxp
bmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24g
X19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBi
dWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1
Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJc
dC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIu
cG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvcmN1bGlzdF9ibC5oIiksICJpIiAo
MTQpLCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgw
KTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJk
LnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIg
OiA6ICJpIiAoMjIpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJs
ZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogZG8geyBpZiAoX19i
dWlsdGluX2V4cGVjdCghISgoKHVuc2lnbmVkIGxvbmcpaC0+Zmlyc3QgJiAxVUwpICE9IDFVTCks
IDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwg
MHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5s
b25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9u
ZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAi
XHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFn
c1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xp
bnV4L3JjdWxpc3RfYmwuaCIpLCAiaSIgKDE1KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0
IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0g
LlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDIzKSk7IH0pOyBhc20gdm9sYXRpbGUo
IiIpOyBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9
IHdoaWxlICgwKQogICAgICAgICAgICAgICAgICAgICAgICA7CiBkbyB7IHVpbnRwdHJfdCBfcl9h
X3BfX3YgPSAodWludHB0cl90KSgoc3RydWN0IGhsaXN0X2JsX25vZGUgKikoKHVuc2lnbmVkIGxv
bmcpbiB8IDFVTCkpOyA7IGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcCgoc3RydWN0IGhsaXN0X2Js
X25vZGUgKikoKHVuc2lnbmVkIGxvbmcpbiB8IDFVTCkpICYmIChfcl9hX3BfX3YpID09ICh1aW50
cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlwZW9mKChoLT5maXJzdCkpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKChoLT5maXJzdCkpKSAoKHR5
cGVvZihoLT5maXJzdCkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKGgtPmZp
cnN0KSksIF9fdS5fX2MsIHNpemVvZigoaC0+Zmlyc3QpKSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2Ug
ZG8geyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzE3KHZvaWQpIF9fYXR0
cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9yZXMvbG9hZHMg
Zm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComaC0+Zmlyc3QpID09IHNpemVvZihj
aGFyKSB8fCBzaXplb2YoKiZoLT5maXJzdCkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiZo
LT5maXJzdCkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComaC0+Zmlyc3QpID09IHNpemVvZihs
b25nKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNygpOyB9IHdoaWxlICgwKTsgX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKHsgdW5pb24geyB0eXBlb2YoKiZoLT5maXJz
dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiZoLT5m
aXJzdCkpICgodHlwZW9mKCooKHR5cGVvZihoLT5maXJzdCkpX3JfYV9wX192KSkgKikoKHR5cGVv
ZihoLT5maXJzdCkpX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJmgtPmZpcnN0
KSwgX191Ll9fYywgc2l6ZW9mKComaC0+Zmlyc3QpKTsgX191Ll9fdmFsOyB9KTsgfSB3aGlsZSAo
MCk7IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBobGlzdF9ibF9ub2RlICpobGlzdF9i
bF9maXJzdF9yY3Uoc3RydWN0IGhsaXN0X2JsX2hlYWQgKmgpCnsKIHJldHVybiAoc3RydWN0IGhs
aXN0X2JsX25vZGUgKikKICAoKHVuc2lnbmVkIGxvbmcpKHsgdHlwZW9mKCooaC0+Zmlyc3QpKSAq
X19fX19fX19wMSA9ICh0eXBlb2YoKihoLT5maXJzdCkpICopKHsgdW5pb24geyB0eXBlb2YoKGgt
PmZpcnN0KSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3Np
emUoJigoaC0+Zmlyc3QpKSwgX191Ll9fYywgc2l6ZW9mKChoLT5maXJzdCkpKTsgZWxzZSBfX3Jl
YWRfb25jZV9zaXplX25vY2hlY2soJigoaC0+Zmlyc3QpKSwgX191Ll9fYywgc2l6ZW9mKChoLT5m
aXJzdCkpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyB9IHdoaWxlICgw
KTsgOyAoKHR5cGVvZigqKGgtPmZpcnN0KSkgKikoX19fX19fX19wMSkpOyB9KSAmIH4xVUwpOwp9
CiMgNDYgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0X2JsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfYmxfZGVsX3Jj
dShzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbikKewogX19obGlzdF9ibF9kZWwobik7CiBuLT5wcHJl
diA9ICgodm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwp9CiMgNzEgIi4v
aW5jbHVkZS9saW51eC9yY3VsaXN0X2JsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfYmxfYWRkX2hlYWRfcmN1KHN0
cnVjdCBobGlzdF9ibF9ub2RlICpuLAogICAgIHN0cnVjdCBobGlzdF9ibF9oZWFkICpoKQp7CiBz
dHJ1Y3QgaGxpc3RfYmxfbm9kZSAqZmlyc3Q7CgoKIGZpcnN0ID0gaGxpc3RfYmxfZmlyc3QoaCk7
Cgogbi0+bmV4dCA9IGZpcnN0OwogaWYgKGZpcnN0KQogIGZpcnN0LT5wcHJldiA9ICZuLT5uZXh0
Owogbi0+cHByZXYgPSAmaC0+Zmlyc3Q7CgoKIGhsaXN0X2JsX3NldF9maXJzdF9yY3UoaCwgbik7
Cn0KIyA5ICIuL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiIDIKCgoKCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L2xvY2tyZWYuaCIgMQojIDI1ICIuL2luY2x1ZGUvbGludXgvbG9ja3JlZi5oIgpzdHJ1Y3Qg
bG9ja3JlZiB7CiB1bmlvbiB7CgogIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBs
b2NrX2NvdW50OwoKICBzdHJ1Y3QgewogICBzcGlubG9ja190IGxvY2s7CiAgIGludCBjb3VudDsK
ICB9OwogfTsKfTsKCmV4dGVybiB2b2lkIGxvY2tyZWZfZ2V0KHN0cnVjdCBsb2NrcmVmICopOwpl
eHRlcm4gaW50IGxvY2tyZWZfcHV0X3JldHVybihzdHJ1Y3QgbG9ja3JlZiAqKTsKZXh0ZXJuIGlu
dCBsb2NrcmVmX2dldF9ub3RfemVybyhzdHJ1Y3QgbG9ja3JlZiAqKTsKZXh0ZXJuIGludCBsb2Nr
cmVmX3B1dF9ub3RfemVybyhzdHJ1Y3QgbG9ja3JlZiAqKTsKZXh0ZXJuIGludCBsb2NrcmVmX2dl
dF9vcl9sb2NrKHN0cnVjdCBsb2NrcmVmICopOwpleHRlcm4gaW50IGxvY2tyZWZfcHV0X29yX2xv
Y2soc3RydWN0IGxvY2tyZWYgKik7CgpleHRlcm4gdm9pZCBsb2NrcmVmX21hcmtfZGVhZChzdHJ1
Y3QgbG9ja3JlZiAqKTsKZXh0ZXJuIGludCBsb2NrcmVmX2dldF9ub3RfZGVhZChzdHJ1Y3QgbG9j
a3JlZiAqKTsKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIF9fbG9ja3JlZl9pc19kZWFkKGNvbnN0IHN0cnVjdCBsb2NrcmVmICps
KQp7CiByZXR1cm4gKChpbnQpbC0+Y291bnQgPCAwKTsKfQojIDE0ICIuL2luY2x1ZGUvbGludXgv
ZGNhY2hlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvc3RyaW5naGFzaC5oIiAxCgoKCgoKCiMg
MSAiLi9pbmNsdWRlL2xpbnV4L2hhc2guaCIgMQoKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2dlbmVyYXRlZC91YXBpL2FzbS90eXBlcy5oIiAxCiMgNyAiLi9pbmNsdWRlL2xpbnV4L2hhc2gu
aCIgMgojIDYwICIuL2luY2x1ZGUvbGludXgvaGFzaC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgX19oYXNoXzMyX2dlbmVyaWMo
dTMyIHZhbCkKewogcmV0dXJuIHZhbCAqIDB4NjFDODg2NDc7Cn0KCgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHUzMiBoYXNoXzMyX2dl
bmVyaWModTMyIHZhbCwgdW5zaWduZWQgaW50IGJpdHMpCnsKCiByZXR1cm4gX19oYXNoXzMyX2dl
bmVyaWModmFsKSA+PiAoMzIgLSBiaXRzKTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB1MzIgaGFzaF82NF9nZW5lcmljKHU2NCB2YWwsIHVuc2lnbmVkIGludCBiaXRz
KQp7CgoKIHJldHVybiB2YWwgKiAweDYxQzg4NjQ2ODBCNTgzRUJ1bGwgPj4gKDY0IC0gYml0cyk7
CgoKCgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB1MzIgaGFzaF9wdHIoY29uc3Qgdm9pZCAqcHRyLCB1bnNpZ25lZCBpbnQgYml0cykK
ewogcmV0dXJuIGhhc2hfNjRfZ2VuZXJpYygodW5zaWduZWQgbG9uZylwdHIsIGJpdHMpOwp9CgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dTMyIGhhc2gzMl9wdHIoY29uc3Qgdm9pZCAqcHRyKQp7CiB1bnNpZ25lZCBsb25nIHZhbCA9ICh1
bnNpZ25lZCBsb25nKXB0cjsKCgogdmFsIF49ICh2YWwgPj4gMzIpOwoKIHJldHVybiAodTMyKXZh
bDsKfQojIDggIi4vaW5jbHVkZS9saW51eC9zdHJpbmdoYXNoLmgiIDIKIyA0MiAiLi9pbmNsdWRl
L2xpbnV4L3N0cmluZ2hhc2guaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZwpwYXJ0aWFsX25hbWVfaGFzaCh1bnNp
Z25lZCBsb25nIGMsIHVuc2lnbmVkIGxvbmcgcHJldmhhc2gpCnsKIHJldHVybiAocHJldmhhc2gg
KyAoYyA8PCA0KSArIChjID4+IDQpKSAqIDExOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBlbmRfbmFt
ZV9oYXNoKHVuc2lnbmVkIGxvbmcgaGFzaCkKewogcmV0dXJuIGhhc2hfNjRfZ2VuZXJpYyhoYXNo
LCAzMik7Cn0KIyA2NiAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZ2hhc2guaCIKZXh0ZXJuIHVuc2ln
bmVkIGludCBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpIGZ1bGxfbmFtZV9oYXNoKGNvbnN0IHZv
aWQgKnNhbHQsIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50KTsKIyA3NyAiLi9pbmNsdWRlL2xp
bnV4L3N0cmluZ2hhc2guaCIKZXh0ZXJuIHU2NCBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpIGhh
c2hsZW5fc3RyaW5nKGNvbnN0IHZvaWQgKnNhbHQsIGNvbnN0IGNoYXIgKm5hbWUpOwojIDE1ICIu
L2luY2x1ZGUvbGludXgvZGNhY2hlLmgiIDIKCgpzdHJ1Y3QgcGF0aDsKc3RydWN0IHZmc21vdW50
OwojIDQ3ICIuL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCnN0cnVjdCBxc3RyIHsKIHVuaW9uIHsK
ICBzdHJ1Y3QgewogICB1MzIgaGFzaDsgdTMyIGxlbjsKICB9OwogIHU2NCBoYXNoX2xlbjsKIH07
CiBjb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lOwp9OwoKCgpleHRlcm4gY29uc3Qgc3RydWN0IHFz
dHIgZW1wdHlfbmFtZTsKZXh0ZXJuIGNvbnN0IHN0cnVjdCBxc3RyIHNsYXNoX25hbWU7CgpzdHJ1
Y3QgZGVudHJ5X3N0YXRfdCB7CiBsb25nIG5yX2RlbnRyeTsKIGxvbmcgbnJfdW51c2VkOwogbG9u
ZyBhZ2VfbGltaXQ7CiBsb25nIHdhbnRfcGFnZXM7CiBsb25nIG5yX25lZ2F0aXZlOwogbG9uZyBk
dW1teTsKfTsKZXh0ZXJuIHN0cnVjdCBkZW50cnlfc3RhdF90IGRlbnRyeV9zdGF0OwojIDg5ICIu
L2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCnN0cnVjdCBkZW50cnkgewoKIHVuc2lnbmVkIGludCBk
X2ZsYWdzOwogc2VxY291bnRfdCBkX3NlcTsKIHN0cnVjdCBobGlzdF9ibF9ub2RlIGRfaGFzaDsK
IHN0cnVjdCBkZW50cnkgKmRfcGFyZW50Owogc3RydWN0IHFzdHIgZF9uYW1lOwogc3RydWN0IGlu
b2RlICpkX2lub2RlOwoKIHVuc2lnbmVkIGNoYXIgZF9pbmFtZVszMl07CgoKIHN0cnVjdCBsb2Nr
cmVmIGRfbG9ja3JlZjsKIGNvbnN0IHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyAqZF9vcDsKIHN0
cnVjdCBzdXBlcl9ibG9jayAqZF9zYjsKIHVuc2lnbmVkIGxvbmcgZF90aW1lOwogdm9pZCAqZF9m
c2RhdGE7CgogdW5pb24gewogIHN0cnVjdCBsaXN0X2hlYWQgZF9scnU7CiAgd2FpdF9xdWV1ZV9o
ZWFkX3QgKmRfd2FpdDsKIH07CiBzdHJ1Y3QgbGlzdF9oZWFkIGRfY2hpbGQ7CiBzdHJ1Y3QgbGlz
dF9oZWFkIGRfc3ViZGlyczsKCgoKIHVuaW9uIHsKICBzdHJ1Y3QgaGxpc3Rfbm9kZSBkX2FsaWFz
OwogIHN0cnVjdCBobGlzdF9ibF9ub2RlIGRfaW5fbG9va3VwX2hhc2g7CiAgIHN0cnVjdCBjYWxs
YmFja19oZWFkIGRfcmN1OwogfSBkX3U7Cn0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2lu
aXRfXykpOwoKCgoKCgoKZW51bSBkZW50cnlfZF9sb2NrX2NsYXNzCnsKIERFTlRSWV9EX0xPQ0tf
Tk9STUFMLAogREVOVFJZX0RfTE9DS19ORVNURUQKfTsKCnN0cnVjdCBkZW50cnlfb3BlcmF0aW9u
cyB7CiBpbnQgKCpkX3JldmFsaWRhdGUpKHN0cnVjdCBkZW50cnkgKiwgdW5zaWduZWQgaW50KTsK
IGludCAoKmRfd2Vha19yZXZhbGlkYXRlKShzdHJ1Y3QgZGVudHJ5ICosIHVuc2lnbmVkIGludCk7
CiBpbnQgKCpkX2hhc2gpKGNvbnN0IHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IHFzdHIgKik7CiBp
bnQgKCpkX2NvbXBhcmUpKGNvbnN0IHN0cnVjdCBkZW50cnkgKiwKICAgdW5zaWduZWQgaW50LCBj
b25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCBxc3RyICopOwogaW50ICgqZF9kZWxldGUpKGNvbnN0
IHN0cnVjdCBkZW50cnkgKik7CiBpbnQgKCpkX2luaXQpKHN0cnVjdCBkZW50cnkgKik7CiB2b2lk
ICgqZF9yZWxlYXNlKShzdHJ1Y3QgZGVudHJ5ICopOwogdm9pZCAoKmRfcHJ1bmUpKHN0cnVjdCBk
ZW50cnkgKik7CiB2b2lkICgqZF9pcHV0KShzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAq
KTsKIGNoYXIgKigqZF9kbmFtZSkoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIGludCk7CiBzdHJ1
Y3QgdmZzbW91bnQgKigqZF9hdXRvbW91bnQpKHN0cnVjdCBwYXRoICopOwogaW50ICgqZF9tYW5h
Z2UpKGNvbnN0IHN0cnVjdCBwYXRoICosIGJvb2wpOwogc3RydWN0IGRlbnRyeSAqKCpkX3JlYWwp
KHN0cnVjdCBkZW50cnkgKiwgY29uc3Qgc3RydWN0IGlub2RlICopOwp9IF9fYXR0cmlidXRlX18o
KF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpKSk7CiMgMjIxICIuL2luY2x1ZGUvbGludXgvZGNhY2hl
LmgiCmV4dGVybiBzZXFsb2NrX3QgcmVuYW1lX2xvY2s7CgoKCgpleHRlcm4gdm9pZCBkX2luc3Rh
bnRpYXRlKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBkX2lu
c3RhbnRpYXRlX25ldyhzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHN0
cnVjdCBkZW50cnkgKiBkX2luc3RhbnRpYXRlX3VuaXF1ZShzdHJ1Y3QgZGVudHJ5ICosIHN0cnVj
dCBpbm9kZSAqKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX2luc3RhbnRpYXRlX2Fub24oc3Ry
dWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIF9fZF9kcm9wKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSk7CmV4dGVybiB2b2lkIGRfZHJvcChzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpOwpleHRlcm4gdm9pZCBkX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICopOwpleHRlcm4gdm9pZCBk
X3NldF9kX29wKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3Qgc3RydWN0IGRlbnRyeV9vcGVy
YXRpb25zICpvcCk7CgoKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX2FsbG9jKHN0cnVjdCBkZW50
cnkgKiwgY29uc3Qgc3RydWN0IHFzdHIgKik7CmV4dGVybiBzdHJ1Y3QgZGVudHJ5ICogZF9hbGxv
Y19hbm9uKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX2Fs
bG9jX3BhcmFsbGVsKHN0cnVjdCBkZW50cnkgKiwgY29uc3Qgc3RydWN0IHFzdHIgKiwKICAgICB3
YWl0X3F1ZXVlX2hlYWRfdCAqKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX3NwbGljZV9hbGlh
cyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkg
KiBkX2FkZF9jaShzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgcXN0ciAq
KTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX2V4YWN0X2FsaWFzKHN0cnVjdCBkZW50cnkgKiwg
c3RydWN0IGlub2RlICopOwpleHRlcm4gc3RydWN0IGRlbnRyeSAqZF9maW5kX2FueV9hbGlhcyhz
dHJ1Y3QgaW5vZGUgKmlub2RlKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX29idGFpbl9hbGlh
cyhzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBzdHJ1Y3QgZGVudHJ5ICogZF9vYnRhaW5fcm9vdChz
dHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIHNocmlua19kY2FjaGVfc2Ioc3RydWN0IHN1cGVy
X2Jsb2NrICopOwpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX3BhcmVudChzdHJ1Y3QgZGVudHJ5
ICopOwpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX2Zvcl91bW91bnQoc3RydWN0IHN1cGVyX2Js
b2NrICopOwpleHRlcm4gdm9pZCBkX2ludmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqKTsKCgpleHRl
cm4gc3RydWN0IGRlbnRyeSAqIGRfbWFrZV9yb290KHN0cnVjdCBpbm9kZSAqKTsKCgpleHRlcm4g
dm9pZCBkX2dlbm9jaWRlKHN0cnVjdCBkZW50cnkgKik7CgpleHRlcm4gdm9pZCBkX3RtcGZpbGUo
c3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKik7CgpleHRlcm4gc3RydWN0IGRlbnRyeSAq
ZF9maW5kX2FsaWFzKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgZF9wcnVuZV9hbGlhc2Vz
KHN0cnVjdCBpbm9kZSAqKTsKCgpleHRlcm4gaW50IHBhdGhfaGFzX3N1Ym1vdW50cyhjb25zdCBz
dHJ1Y3QgcGF0aCAqKTsKCgoKCmV4dGVybiB2b2lkIGRfcmVoYXNoKHN0cnVjdCBkZW50cnkgKik7
CgpleHRlcm4gdm9pZCBkX2FkZChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqKTsKCgpl
eHRlcm4gdm9pZCBkX21vdmUoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwpleHRl
cm4gdm9pZCBkX2V4Y2hhbmdlKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0
ZXJuIHN0cnVjdCBkZW50cnkgKmRfYW5jZXN0b3Ioc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgZGVu
dHJ5ICopOwoKCmV4dGVybiBzdHJ1Y3QgZGVudHJ5ICpkX2xvb2t1cChjb25zdCBzdHJ1Y3QgZGVu
dHJ5ICosIGNvbnN0IHN0cnVjdCBxc3RyICopOwpleHRlcm4gc3RydWN0IGRlbnRyeSAqZF9oYXNo
X2FuZF9sb29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgcXN0ciAqKTsKZXh0ZXJuIHN0cnVj
dCBkZW50cnkgKl9fZF9sb29rdXAoY29uc3Qgc3RydWN0IGRlbnRyeSAqLCBjb25zdCBzdHJ1Y3Qg
cXN0ciAqKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKl9fZF9sb29rdXBfcmN1KGNvbnN0IHN0cnVj
dCBkZW50cnkgKnBhcmVudCwKICAgIGNvbnN0IHN0cnVjdCBxc3RyICpuYW1lLCB1bnNpZ25lZCAq
c2VxKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGRfY291bnQoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiBy
ZXR1cm4gZGVudHJ5LT5kX2xvY2tyZWYuY291bnQ7Cn0KCgoKCmV4dGVybiBfX2F0dHJpYnV0ZV9f
KChfX2Zvcm1hdF9fKHByaW50ZiwgNCwgNSkpKQpjaGFyICpkeW5hbWljX2RuYW1lKHN0cnVjdCBk
ZW50cnkgKiwgY2hhciAqLCBpbnQsIGNvbnN0IGNoYXIgKiwgLi4uKTsKCmV4dGVybiBjaGFyICpf
X2RfcGF0aChjb25zdCBzdHJ1Y3QgcGF0aCAqLCBjb25zdCBzdHJ1Y3QgcGF0aCAqLCBjaGFyICos
IGludCk7CmV4dGVybiBjaGFyICpkX2Fic29sdXRlX3BhdGgoY29uc3Qgc3RydWN0IHBhdGggKiwg
Y2hhciAqLCBpbnQpOwpleHRlcm4gY2hhciAqZF9wYXRoKGNvbnN0IHN0cnVjdCBwYXRoICosIGNo
YXIgKiwgaW50KTsKZXh0ZXJuIGNoYXIgKmRlbnRyeV9wYXRoX3JhdyhzdHJ1Y3QgZGVudHJ5ICos
IGNoYXIgKiwgaW50KTsKZXh0ZXJuIGNoYXIgKmRlbnRyeV9wYXRoKHN0cnVjdCBkZW50cnkgKiwg
Y2hhciAqLCBpbnQpOwojIDMxMSAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGVu
dHJ5ICpkZ2V0X2Rsb2NrKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogaWYgKGRlbnRyeSkKICBk
ZW50cnktPmRfbG9ja3JlZi5jb3VudCsrOwogcmV0dXJuIGRlbnRyeTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRlbnRy
eSAqZGdldChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKIGlmIChkZW50cnkpCiAgbG9ja3JlZl9n
ZXQoJmRlbnRyeS0+ZF9sb2NrcmVmKTsKIHJldHVybiBkZW50cnk7Cn0KCmV4dGVybiBzdHJ1Y3Qg
ZGVudHJ5ICpkZ2V0X3BhcmVudChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwojIDMzNCAiLi9pbmNs
dWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZF91bmhhc2hlZChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkpCnsKIHJldHVybiBobGlzdF9ibF91bmhhc2hlZCgmZGVudHJ5LT5kX2hhc2gpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgZF91bmxpbmtlZChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKIHJldHVybiBkX3Vu
aGFzaGVkKGRlbnRyeSkgJiYgISgoZGVudHJ5KSA9PSAoZGVudHJ5KS0+ZF9wYXJlbnQpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgY2FudF9tb3VudChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKIHJldHVybiAoZGVu
dHJ5LT5kX2ZsYWdzICYgMHgwMDAwMDEwMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZG9udF9tb3VudChzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkpCnsKIHNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2tyZWYubG9jayk7CiBkZW50
cnktPmRfZmxhZ3MgfD0gMHgwMDAwMDEwMDsKIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9ja3Jl
Zi5sb2NrKTsKfQoKZXh0ZXJuIHZvaWQgX19kX2xvb2t1cF9kb25lKHN0cnVjdCBkZW50cnkgKik7
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgZF9pbl9sb29rdXAoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiByZXR1cm4g
ZGVudHJ5LT5kX2ZsYWdzICYgMHgxMDAwMDAwMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkX2xvb2t1cF9kb25lKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSkKewogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoZF9pbl9sb29rdXAo
ZGVudHJ5KSksIDApKSB7CiAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9ja3JlZi5sb2NrKTsKICBf
X2RfbG9va3VwX2RvbmUoZGVudHJ5KTsKICBzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2tyZWYu
bG9jayk7CiB9Cn0KCmV4dGVybiB2b2lkIGRwdXQoc3RydWN0IGRlbnRyeSAqKTsKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZF9t
YW5hZ2VkKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIGRlbnRyeS0+ZF9m
bGFncyAmICgweDAwMDEwMDAwfDB4MDAwMjAwMDB8MHgwMDA0MDAwMCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZF9tb3Vu
dHBvaW50KGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIGRlbnRyeS0+ZF9m
bGFncyAmIDB4MDAwMTAwMDA7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIF9fZF9lbnRyeV90eXBlKGNvbnN0IHN0
cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIGRlbnRyeS0+ZF9mbGFncyAmIDB4MDA3MDAw
MDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgZF9pc19taXNzKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0
dXJuIF9fZF9lbnRyeV90eXBlKGRlbnRyeSkgPT0gMHgwMDAwMDAwMDsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX3do
aXRlb3V0KGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIF9fZF9lbnRyeV90
eXBlKGRlbnRyeSkgPT0gMHgwMDEwMDAwMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2Nhbl9sb29rdXAoY29uc3Qgc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5KQp7CiByZXR1cm4gX19kX2VudHJ5X3R5cGUoZGVudHJ5KSA9PSAw
eDAwMjAwMDAwOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIGRfaXNfYXV0b2Rpcihjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpCnsKIHJldHVybiBfX2RfZW50cnlfdHlwZShkZW50cnkpID09IDB4MDAzMDAwMDA7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgZF9pc19kaXIoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiByZXR1cm4gZF9jYW5f
bG9va3VwKGRlbnRyeSkgfHwgZF9pc19hdXRvZGlyKGRlbnRyeSk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZF9pc19zeW1s
aW5rKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIF9fZF9lbnRyeV90eXBl
KGRlbnRyeSkgPT0gMHgwMDYwMDAwMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX3JlZyhjb25zdCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkpCnsKIHJldHVybiBfX2RfZW50cnlfdHlwZShkZW50cnkpID09IDB4MDA0MDAw
MDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgZF9pc19zcGVjaWFsKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewog
cmV0dXJuIF9fZF9lbnRyeV90eXBlKGRlbnRyeSkgPT0gMHgwMDUwMDAwMDsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lz
X2ZpbGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiByZXR1cm4gZF9pc19yZWcoZGVu
dHJ5KSB8fCBkX2lzX3NwZWNpYWwoZGVudHJ5KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX25lZ2F0aXZlKGNvbnN0
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewoKIHJldHVybiBkX2lzX21pc3MoZGVudHJ5KTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBkX2ZsYWdzX25lZ2F0aXZlKHVuc2lnbmVkIGZsYWdzKQp7CiByZXR1cm4gKGZsYWdzICYg
MHgwMDcwMDAwMCkgPT0gMHgwMDAwMDAwMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX3Bvc2l0aXZlKGNvbnN0IHN0
cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuICFkX2lzX25lZ2F0aXZlKGRlbnRyeSk7Cn0K
IyA0NjggIi4vaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX3JlYWxseV9pc19uZWdhdGl2
ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKIHJldHVybiBkZW50cnktPmRfaW5vZGUg
PT0gKCh2b2lkICopMCk7Cn0KIyA0ODYgIi4vaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBk
X3JlYWxseV9pc19wb3NpdGl2ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKIHJldHVy
biBkZW50cnktPmRfaW5vZGUgIT0gKCh2b2lkICopMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBzaW1wbGVfcG9zaXRpdmUo
Y29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiByZXR1cm4gZF9yZWFsbHlfaXNfcG9zaXRp
dmUoZGVudHJ5KSAmJiAhZF91bmhhc2hlZChkZW50cnkpOwp9CgpleHRlcm4gdm9pZCBkX3NldF9m
YWxsdGhydShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX2ZhbGx0aHJ1KGNvbnN0
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIGRlbnRyeS0+ZF9mbGFncyAmIDB4MDEw
MDAwMDA7Cn0KCgpleHRlcm4gaW50IHN5c2N0bF92ZnNfY2FjaGVfcHJlc3N1cmU7CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25l
ZCBsb25nIHZmc19wcmVzc3VyZV9yYXRpbyh1bnNpZ25lZCBsb25nIHZhbCkKewogcmV0dXJuICgg
eyB0eXBlb2YodmFsKSBxdW90ID0gKHZhbCkgLyAoMTAwKTsgdHlwZW9mKHZhbCkgcmVtID0gKHZh
bCkgJSAoMTAwKTsgKHF1b3QgKiAoc3lzY3RsX3Zmc19jYWNoZV9wcmVzc3VyZSkpICsgKChyZW0g
KiAoc3lzY3RsX3Zmc19jYWNoZV9wcmVzc3VyZSkpIC8gKDEwMCkpOyB9ICk7Cn0KIyA1MTggIi4v
aW5jbHVkZS9saW51eC9kY2FjaGUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGlub2RlICpkX2lub2RlKGNvbnN0IHN0cnVj
dCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIGRlbnRyeS0+ZF9pbm9kZTsKfQojIDUzMCAiLi9p
bmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgaW5vZGUgKmRfaW5vZGVfcmN1KGNvbnN0IHN0
cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuICh7IHVuaW9uIHsgdHlwZW9mKGRlbnRyeS0+
ZF9pbm9kZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3Np
emUoJihkZW50cnktPmRfaW5vZGUpLCBfX3UuX19jLCBzaXplb2YoZGVudHJ5LT5kX2lub2RlKSk7
IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoZGVudHJ5LT5kX2lub2RlKSwgX191Ll9f
Yywgc2l6ZW9mKGRlbnRyeS0+ZF9pbm9kZSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7
IH0pOwp9CiMgNTQ1ICIuL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBpbm9kZSAqZF9i
YWNraW5nX2lub2RlKGNvbnN0IHN0cnVjdCBkZW50cnkgKnVwcGVyKQp7CiBzdHJ1Y3QgaW5vZGUg
Kmlub2RlID0gdXBwZXItPmRfaW5vZGU7CgogcmV0dXJuIGlub2RlOwp9CiMgNTYyICIuL2luY2x1
ZGUvbGludXgvZGNhY2hlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZW50cnkgKmRfYmFja2luZ19kZW50cnkoc3RydWN0
IGRlbnRyeSAqdXBwZXIpCnsKIHJldHVybiB1cHBlcjsKfQojIDU3NyAiLi9pbmNsdWRlL2xpbnV4
L2RjYWNoZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3QgZGVudHJ5ICpkX3JlYWwoc3RydWN0IGRlbnRyeSAqZGVudHJ5LAog
ICAgICAgIGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIGlmIChfX2J1aWx0aW5fZXhwZWN0
KCEhKGRlbnRyeS0+ZF9mbGFncyAmIDB4MDQwMDAwMDApLCAwKSkKICByZXR1cm4gZGVudHJ5LT5k
X29wLT5kX3JlYWwoZGVudHJ5LCBpbm9kZSk7CiBlbHNlCiAgcmV0dXJuIGRlbnRyeTsKfQojIDU5
MyAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgaW5vZGUgKmRfcmVhbF9pbm9kZShj
b25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKCiByZXR1cm4gZF9iYWNraW5nX2lub2RlKGRf
cmVhbCgoc3RydWN0IGRlbnRyeSAqKSBkZW50cnksICgodm9pZCAqKTApKSk7Cn0KCnN0cnVjdCBu
YW1lX3NuYXBzaG90IHsKIHN0cnVjdCBxc3RyIG5hbWU7CiB1bnNpZ25lZCBjaGFyIGlubGluZV9u
YW1lWzMyXTsKfTsKdm9pZCB0YWtlX2RlbnRyeV9uYW1lX3NuYXBzaG90KHN0cnVjdCBuYW1lX3Nu
YXBzaG90ICosIHN0cnVjdCBkZW50cnkgKik7CnZvaWQgcmVsZWFzZV9kZW50cnlfbmFtZV9zbmFw
c2hvdChzdHJ1Y3QgbmFtZV9zbmFwc2hvdCAqKTsKIyA5ICIuL2luY2x1ZGUvbGludXgvZnMuaCIg
MgojIDEgIi4vaW5jbHVkZS9saW51eC9wYXRoLmgiIDEKCgoKCnN0cnVjdCBkZW50cnk7CnN0cnVj
dCB2ZnNtb3VudDsKCnN0cnVjdCBwYXRoIHsKIHN0cnVjdCB2ZnNtb3VudCAqbW50Owogc3RydWN0
IGRlbnRyeSAqZGVudHJ5Owp9IF9fYXR0cmlidXRlX18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsK
CmV4dGVybiB2b2lkIHBhdGhfZ2V0KGNvbnN0IHN0cnVjdCBwYXRoICopOwpleHRlcm4gdm9pZCBw
YXRoX3B1dChjb25zdCBzdHJ1Y3QgcGF0aCAqKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwYXRoX2VxdWFsKGNvbnN0IHN0cnVj
dCBwYXRoICpwYXRoMSwgY29uc3Qgc3RydWN0IHBhdGggKnBhdGgyKQp7CiByZXR1cm4gcGF0aDEt
Pm1udCA9PSBwYXRoMi0+bW50ICYmIHBhdGgxLT5kZW50cnkgPT0gcGF0aDItPmRlbnRyeTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBwYXRoX3B1dF9pbml0KHN0cnVjdCBwYXRoICpwYXRoKQp7CiBwYXRoX3B1dChwYXRoKTsK
ICpwYXRoID0gKHN0cnVjdCBwYXRoKSB7IH07Cn0KIyAxMCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgi
IDIKIyAxICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIiAxCgoKCgoKIyAxICIuL2FyY2gveDg2L2lu
Y2x1ZGUvdWFwaS9hc20vc3RhdC5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
cG9zaXhfdHlwZXMuaCIgMQojIDYgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zdGF0Lmgi
IDIKIyA4MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3N0YXQuaCIKc3RydWN0IHN0YXQg
ewogX19rZXJuZWxfdWxvbmdfdCBzdF9kZXY7CiBfX2tlcm5lbF91bG9uZ190IHN0X2lubzsKIF9f
a2VybmVsX3Vsb25nX3Qgc3Rfbmxpbms7CgogdW5zaWduZWQgaW50IHN0X21vZGU7CiB1bnNpZ25l
ZCBpbnQgc3RfdWlkOwogdW5zaWduZWQgaW50IHN0X2dpZDsKIHVuc2lnbmVkIGludCBfX3BhZDA7
CiBfX2tlcm5lbF91bG9uZ190IHN0X3JkZXY7CiBfX2tlcm5lbF9sb25nX3Qgc3Rfc2l6ZTsKIF9f
a2VybmVsX2xvbmdfdCBzdF9ibGtzaXplOwogX19rZXJuZWxfbG9uZ190IHN0X2Jsb2NrczsKCiBf
X2tlcm5lbF91bG9uZ190IHN0X2F0aW1lOwogX19rZXJuZWxfdWxvbmdfdCBzdF9hdGltZV9uc2Vj
OwogX19rZXJuZWxfdWxvbmdfdCBzdF9tdGltZTsKIF9fa2VybmVsX3Vsb25nX3Qgc3RfbXRpbWVf
bnNlYzsKIF9fa2VybmVsX3Vsb25nX3Qgc3RfY3RpbWU7CiBfX2tlcm5lbF91bG9uZ190IHN0X2N0
aW1lX25zZWM7CiBfX2tlcm5lbF9sb25nX3QgX191bnVzZWRbM107Cn07CiMgMTE3ICIuL2FyY2gv
eDg2L2luY2x1ZGUvdWFwaS9hc20vc3RhdC5oIgpzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQgewog
dW5zaWduZWQgc2hvcnQgc3RfZGV2OwogdW5zaWduZWQgc2hvcnQgc3RfaW5vOwogdW5zaWduZWQg
c2hvcnQgc3RfbW9kZTsKIHVuc2lnbmVkIHNob3J0IHN0X25saW5rOwogdW5zaWduZWQgc2hvcnQg
c3RfdWlkOwogdW5zaWduZWQgc2hvcnQgc3RfZ2lkOwogdW5zaWduZWQgc2hvcnQgc3RfcmRldjsK
CgoKCgoKIHVuc2lnbmVkIGludCBzdF9zaXplOwogdW5zaWduZWQgaW50IHN0X2F0aW1lOwogdW5z
aWduZWQgaW50IHN0X210aW1lOwogdW5zaWduZWQgaW50IHN0X2N0aW1lOwoKfTsKIyA3ICIuL2lu
Y2x1ZGUvbGludXgvc3RhdC5oIiAyCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3RhdC5oIiAx
CiMgNTYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3N0YXQuaCIKc3RydWN0IHN0YXR4X3RpbWVzdGFt
cCB7CiBfX3M2NCB0dl9zZWM7CiBfX3UzMiB0dl9uc2VjOwogX19zMzIgX19yZXNlcnZlZDsKfTsK
IyA5OSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3RhdC5oIgpzdHJ1Y3Qgc3RhdHggewoKIF9fdTMy
IHN0eF9tYXNrOwogX191MzIgc3R4X2Jsa3NpemU7CiBfX3U2NCBzdHhfYXR0cmlidXRlczsKCiBf
X3UzMiBzdHhfbmxpbms7CiBfX3UzMiBzdHhfdWlkOwogX191MzIgc3R4X2dpZDsKIF9fdTE2IHN0
eF9tb2RlOwogX191MTYgX19zcGFyZTBbMV07CgogX191NjQgc3R4X2lubzsKIF9fdTY0IHN0eF9z
aXplOwogX191NjQgc3R4X2Jsb2NrczsKIF9fdTY0IHN0eF9hdHRyaWJ1dGVzX21hc2s7Cgogc3Ry
dWN0IHN0YXR4X3RpbWVzdGFtcCBzdHhfYXRpbWU7CiBzdHJ1Y3Qgc3RhdHhfdGltZXN0YW1wIHN0
eF9idGltZTsKIHN0cnVjdCBzdGF0eF90aW1lc3RhbXAgc3R4X2N0aW1lOwogc3RydWN0IHN0YXR4
X3RpbWVzdGFtcCBzdHhfbXRpbWU7CgogX191MzIgc3R4X3JkZXZfbWFqb3I7CiBfX3UzMiBzdHhf
cmRldl9taW5vcjsKIF9fdTMyIHN0eF9kZXZfbWFqb3I7CiBfX3UzMiBzdHhfZGV2X21pbm9yOwoK
IF9fdTY0IF9fc3BhcmUyWzE0XTsKCn07CiMgOCAiLi9pbmNsdWRlL2xpbnV4L3N0YXQuaCIgMgoj
IDIwICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIgojIDEgIi4vaW5jbHVkZS9saW51eC91aWRnaWQu
aCIgMQojIDE2ICIuL2luY2x1ZGUvbGludXgvdWlkZ2lkLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L2hpZ2h1aWQuaCIgMQojIDM1ICIuL2luY2x1ZGUvbGludXgvaGlnaHVpZC5oIgpleHRlcm4gaW50
IG92ZXJmbG93dWlkOwpleHRlcm4gaW50IG92ZXJmbG93Z2lkOwoKZXh0ZXJuIHZvaWQgX19iYWRf
dWlkKHZvaWQpOwpleHRlcm4gdm9pZCBfX2JhZF9naWQodm9pZCk7CiMgODIgIi4vaW5jbHVkZS9s
aW51eC9oaWdodWlkLmgiCmV4dGVybiBpbnQgZnNfb3ZlcmZsb3d1aWQ7CmV4dGVybiBpbnQgZnNf
b3ZlcmZsb3dnaWQ7CiMgMTcgIi4vaW5jbHVkZS9saW51eC91aWRnaWQuaCIgMgoKc3RydWN0IHVz
ZXJfbmFtZXNwYWNlOwpleHRlcm4gc3RydWN0IHVzZXJfbmFtZXNwYWNlIGluaXRfdXNlcl9uczsK
CnR5cGVkZWYgc3RydWN0IHsKIHVpZF90IHZhbDsKfSBrdWlkX3Q7CgoKdHlwZWRlZiBzdHJ1Y3Qg
ewogZ2lkX3QgdmFsOwp9IGtnaWRfdDsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1aWRfdCBfX2t1aWRfdmFsKGt1aWRfdCB1aWQp
CnsKIHJldHVybiB1aWQudmFsOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBnaWRfdCBfX2tnaWRfdmFsKGtnaWRfdCBnaWQpCnsKIHJl
dHVybiBnaWQudmFsOwp9CiMgNjEgIi4vaW5jbHVkZS9saW51eC91aWRnaWQuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1aWRf
ZXEoa3VpZF90IGxlZnQsIGt1aWRfdCByaWdodCkKewogcmV0dXJuIF9fa3VpZF92YWwobGVmdCkg
PT0gX19rdWlkX3ZhbChyaWdodCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZ2lkX2VxKGtnaWRfdCBsZWZ0LCBrZ2lkX3Qg
cmlnaHQpCnsKIHJldHVybiBfX2tnaWRfdmFsKGxlZnQpID09IF9fa2dpZF92YWwocmlnaHQpOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIHVpZF9ndChrdWlkX3QgbGVmdCwga3VpZF90IHJpZ2h0KQp7CiByZXR1cm4gX19rdWlk
X3ZhbChsZWZ0KSA+IF9fa3VpZF92YWwocmlnaHQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGdpZF9ndChrZ2lkX3QgbGVm
dCwga2dpZF90IHJpZ2h0KQp7CiByZXR1cm4gX19rZ2lkX3ZhbChsZWZ0KSA+IF9fa2dpZF92YWwo
cmlnaHQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIHVpZF9ndGUoa3VpZF90IGxlZnQsIGt1aWRfdCByaWdodCkKewogcmV0
dXJuIF9fa3VpZF92YWwobGVmdCkgPj0gX19rdWlkX3ZhbChyaWdodCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZ2lkX2d0
ZShrZ2lkX3QgbGVmdCwga2dpZF90IHJpZ2h0KQp7CiByZXR1cm4gX19rZ2lkX3ZhbChsZWZ0KSA+
PSBfX2tnaWRfdmFsKHJpZ2h0KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1aWRfbHQoa3VpZF90IGxlZnQsIGt1aWRfdCBy
aWdodCkKewogcmV0dXJuIF9fa3VpZF92YWwobGVmdCkgPCBfX2t1aWRfdmFsKHJpZ2h0KTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBnaWRfbHQoa2dpZF90IGxlZnQsIGtnaWRfdCByaWdodCkKewogcmV0dXJuIF9fa2dpZF92
YWwobGVmdCkgPCBfX2tnaWRfdmFsKHJpZ2h0KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1aWRfbHRlKGt1aWRfdCBsZWZ0
LCBrdWlkX3QgcmlnaHQpCnsKIHJldHVybiBfX2t1aWRfdmFsKGxlZnQpIDw9IF9fa3VpZF92YWwo
cmlnaHQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIGdpZF9sdGUoa2dpZF90IGxlZnQsIGtnaWRfdCByaWdodCkKewogcmV0
dXJuIF9fa2dpZF92YWwobGVmdCkgPD0gX19rZ2lkX3ZhbChyaWdodCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdWlkX3Zh
bGlkKGt1aWRfdCB1aWQpCnsKIHJldHVybiBfX2t1aWRfdmFsKHVpZCkgIT0gKHVpZF90KSAtMTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBnaWRfdmFsaWQoa2dpZF90IGdpZCkKewogcmV0dXJuIF9fa2dpZF92YWwoZ2lkKSAh
PSAoZ2lkX3QpIC0xOwp9CgoKCmV4dGVybiBrdWlkX3QgbWFrZV9rdWlkKHN0cnVjdCB1c2VyX25h
bWVzcGFjZSAqZnJvbSwgdWlkX3QgdWlkKTsKZXh0ZXJuIGtnaWRfdCBtYWtlX2tnaWQoc3RydWN0
IHVzZXJfbmFtZXNwYWNlICpmcm9tLCBnaWRfdCBnaWQpOwoKZXh0ZXJuIHVpZF90IGZyb21fa3Vp
ZChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnRvLCBrdWlkX3QgdWlkKTsKZXh0ZXJuIGdpZF90IGZy
b21fa2dpZChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnRvLCBrZ2lkX3QgZ2lkKTsKZXh0ZXJuIHVp
ZF90IGZyb21fa3VpZF9tdW5nZWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICp0bywga3VpZF90IHVp
ZCk7CmV4dGVybiBnaWRfdCBmcm9tX2tnaWRfbXVuZ2VkKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAq
dG8sIGtnaWRfdCBnaWQpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrdWlkX2hhc19tYXBwaW5nKHN0cnVjdCB1c2VyX25hbWVz
cGFjZSAqbnMsIGt1aWRfdCB1aWQpCnsKIHJldHVybiBmcm9tX2t1aWQobnMsIHVpZCkgIT0gKHVp
ZF90KSAtMTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBrZ2lkX2hhc19tYXBwaW5nKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAq
bnMsIGtnaWRfdCBnaWQpCnsKIHJldHVybiBmcm9tX2tnaWQobnMsIGdpZCkgIT0gKGdpZF90KSAt
MTsKfQojIDIxICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIiAyCgoKCnN0cnVjdCBrc3RhdCB7CiB1
MzIgcmVzdWx0X21hc2s7CiB1bW9kZV90IG1vZGU7CiB1bnNpZ25lZCBpbnQgbmxpbms7CiB1aW50
MzJfdCBibGtzaXplOwogdTY0IGF0dHJpYnV0ZXM7CiB1NjQgYXR0cmlidXRlc19tYXNrOwojIDM5
ICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIgogdTY0IGlubzsKIGRldl90IGRldjsKIGRldl90IHJk
ZXY7CiBrdWlkX3QgdWlkOwoga2dpZF90IGdpZDsKIGxvZmZfdCBzaXplOwogc3RydWN0IHRpbWVz
cGVjNjQgYXRpbWU7CiBzdHJ1Y3QgdGltZXNwZWM2NCBtdGltZTsKIHN0cnVjdCB0aW1lc3BlYzY0
IGN0aW1lOwogc3RydWN0IHRpbWVzcGVjNjQgYnRpbWU7CiB1NjQgYmxvY2tzOwp9OwojIDExICIu
L2luY2x1ZGUvbGludXgvZnMuaCIgMgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2xpc3RfbHJ1Lmgi
IDEKIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2xpc3RfbHJ1LmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L3Nocmlua2VyLmgiIDEKIyAxMiAiLi9pbmNsdWRlL2xpbnV4L3Nocmlua2VyLmgiCnN0cnVjdCBz
aHJpbmtfY29udHJvbCB7CiBnZnBfdCBnZnBfbWFzazsKCgogaW50IG5pZDsKCgoKCgoKIHVuc2ln
bmVkIGxvbmcgbnJfdG9fc2NhbjsKCgoKCgoKIHVuc2lnbmVkIGxvbmcgbnJfc2Nhbm5lZDsKCgog
c3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnOwp9OwojIDYwICIuL2luY2x1ZGUvbGludXgvc2hyaW5r
ZXIuaCIKc3RydWN0IHNocmlua2VyIHsKIHVuc2lnbmVkIGxvbmcgKCpjb3VudF9vYmplY3RzKShz
dHJ1Y3Qgc2hyaW5rZXIgKiwKICAgICAgICAgICBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKTsK
IHVuc2lnbmVkIGxvbmcgKCpzY2FuX29iamVjdHMpKHN0cnVjdCBzaHJpbmtlciAqLAogICAgICAg
ICAgc3RydWN0IHNocmlua19jb250cm9sICpzYyk7CgogbG9uZyBiYXRjaDsKIGludCBzZWVrczsK
IHVuc2lnbmVkIGZsYWdzOwoKCiBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CgoKIGludCBpZDsKCgog
YXRvbWljX2xvbmdfdCAqbnJfZGVmZXJyZWQ7Cn07CiMgOTAgIi4vaW5jbHVkZS9saW51eC9zaHJp
bmtlci5oIgpleHRlcm4gaW50IHByZWFsbG9jX3Nocmlua2VyKHN0cnVjdCBzaHJpbmtlciAqc2hy
aW5rZXIpOwpleHRlcm4gdm9pZCByZWdpc3Rlcl9zaHJpbmtlcl9wcmVwYXJlZChzdHJ1Y3Qgc2hy
aW5rZXIgKnNocmlua2VyKTsKZXh0ZXJuIGludCByZWdpc3Rlcl9zaHJpbmtlcihzdHJ1Y3Qgc2hy
aW5rZXIgKnNocmlua2VyKTsKZXh0ZXJuIHZvaWQgdW5yZWdpc3Rlcl9zaHJpbmtlcihzdHJ1Y3Qg
c2hyaW5rZXIgKnNocmlua2VyKTsKZXh0ZXJuIHZvaWQgZnJlZV9wcmVhbGxvY2VkX3Nocmlua2Vy
KHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIpOwojIDE0ICIuL2luY2x1ZGUvbGludXgvbGlzdF9s
cnUuaCIgMgoKc3RydWN0IG1lbV9jZ3JvdXA7CgoKZW51bSBscnVfc3RhdHVzIHsKIExSVV9SRU1P
VkVELAogTFJVX1JFTU9WRURfUkVUUlksCgogTFJVX1JPVEFURSwKIExSVV9TS0lQLAogTFJVX1JF
VFJZLAoKfTsKCnN0cnVjdCBsaXN0X2xydV9vbmUgewogc3RydWN0IGxpc3RfaGVhZCBsaXN0OwoK
IGxvbmcgbnJfaXRlbXM7Cn07CgpzdHJ1Y3QgbGlzdF9scnVfbWVtY2cgewogc3RydWN0IGNhbGxi
YWNrX2hlYWQgcmN1OwoKIHN0cnVjdCBsaXN0X2xydV9vbmUgKmxydVswXTsKfTsKCnN0cnVjdCBs
aXN0X2xydV9ub2RlIHsKCiBzcGlubG9ja190IGxvY2s7Cgogc3RydWN0IGxpc3RfbHJ1X29uZSBs
cnU7CgoKIHN0cnVjdCBsaXN0X2xydV9tZW1jZyAqbWVtY2dfbHJ1czsKCiBsb25nIG5yX2l0ZW1z
Owp9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpKSk7CgpzdHJ1Y3QgbGlz
dF9scnUgewogc3RydWN0IGxpc3RfbHJ1X25vZGUgKm5vZGU7Cgogc3RydWN0IGxpc3RfaGVhZCBs
aXN0OwogaW50IHNocmlua2VyX2lkOwogYm9vbCBtZW1jZ19hd2FyZTsKCn07Cgp2b2lkIGxpc3Rf
bHJ1X2Rlc3Ryb3koc3RydWN0IGxpc3RfbHJ1ICpscnUpOwppbnQgX19saXN0X2xydV9pbml0KHN0
cnVjdCBsaXN0X2xydSAqbHJ1LCBib29sIG1lbWNnX2F3YXJlLAogICAgICBzdHJ1Y3QgbG9ja19j
bGFzc19rZXkgKmtleSwgc3RydWN0IHNocmlua2VyICpzaHJpbmtlcik7CiMgNzIgIi4vaW5jbHVk
ZS9saW51eC9saXN0X2xydS5oIgppbnQgbWVtY2dfdXBkYXRlX2FsbF9saXN0X2xydXMoaW50IG51
bV9tZW1jZ3MpOwp2b2lkIG1lbWNnX2RyYWluX2FsbF9saXN0X2xydXMoaW50IHNyY19pZHgsIHN0
cnVjdCBtZW1fY2dyb3VwICpkc3RfbWVtY2cpOwojIDkxICIuL2luY2x1ZGUvbGludXgvbGlzdF9s
cnUuaCIKYm9vbCBsaXN0X2xydV9hZGQoc3RydWN0IGxpc3RfbHJ1ICpscnUsIHN0cnVjdCBsaXN0
X2hlYWQgKml0ZW0pOwojIDEwNCAiLi9pbmNsdWRlL2xpbnV4L2xpc3RfbHJ1LmgiCmJvb2wgbGlz
dF9scnVfZGVsKHN0cnVjdCBsaXN0X2xydSAqbHJ1LCBzdHJ1Y3QgbGlzdF9oZWFkICppdGVtKTsK
IyAxMTYgIi4vaW5jbHVkZS9saW51eC9saXN0X2xydS5oIgp1bnNpZ25lZCBsb25nIGxpc3RfbHJ1
X2NvdW50X29uZShzdHJ1Y3QgbGlzdF9scnUgKmxydSwKICAgICBpbnQgbmlkLCBzdHJ1Y3QgbWVt
X2Nncm91cCAqbWVtY2cpOwp1bnNpZ25lZCBsb25nIGxpc3RfbHJ1X2NvdW50X25vZGUoc3RydWN0
IGxpc3RfbHJ1ICpscnUsIGludCBuaWQpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBsaXN0X2xydV9zaHJpbmtf
Y291bnQoc3RydWN0IGxpc3RfbHJ1ICpscnUsCiAgICAgICAgc3RydWN0IHNocmlua19jb250cm9s
ICpzYykKewogcmV0dXJuIGxpc3RfbHJ1X2NvdW50X29uZShscnUsIHNjLT5uaWQsIHNjLT5tZW1j
Zyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGxvbmcgbGlzdF9scnVfY291bnQoc3RydWN0IGxpc3RfbHJ1ICpscnUp
CnsKIGxvbmcgY291bnQgPSAwOwogaW50IG5pZDsKCiBmb3IgKCAobmlkKSA9IDA7IChuaWQpID09
IDA7IChuaWQpID0gMSkKICBjb3VudCArPSBsaXN0X2xydV9jb3VudF9ub2RlKGxydSwgbmlkKTsK
CiByZXR1cm4gY291bnQ7Cn0KCnZvaWQgbGlzdF9scnVfaXNvbGF0ZShzdHJ1Y3QgbGlzdF9scnVf
b25lICpsaXN0LCBzdHJ1Y3QgbGlzdF9oZWFkICppdGVtKTsKdm9pZCBsaXN0X2xydV9pc29sYXRl
X21vdmUoc3RydWN0IGxpc3RfbHJ1X29uZSAqbGlzdCwgc3RydWN0IGxpc3RfaGVhZCAqaXRlbSwK
ICAgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCk7Cgp0eXBlZGVmIGVudW0gbHJ1X3N0YXR1cyAo
Kmxpc3RfbHJ1X3dhbGtfY2IpKHN0cnVjdCBsaXN0X2hlYWQgKml0ZW0sCiAgc3RydWN0IGxpc3Rf
bHJ1X29uZSAqbGlzdCwgc3BpbmxvY2tfdCAqbG9jaywgdm9pZCAqY2JfYXJnKTsKIyAxNjYgIi4v
aW5jbHVkZS9saW51eC9saXN0X2xydS5oIgp1bnNpZ25lZCBsb25nIGxpc3RfbHJ1X3dhbGtfb25l
KHN0cnVjdCBsaXN0X2xydSAqbHJ1LAogICAgaW50IG5pZCwgc3RydWN0IG1lbV9jZ3JvdXAgKm1l
bWNnLAogICAgbGlzdF9scnVfd2Fsa19jYiBpc29sYXRlLCB2b2lkICpjYl9hcmcsCiAgICB1bnNp
Z25lZCBsb25nICpucl90b193YWxrKTsKIyAxODMgIi4vaW5jbHVkZS9saW51eC9saXN0X2xydS5o
Igp1bnNpZ25lZCBsb25nIGxpc3RfbHJ1X3dhbGtfb25lX2lycShzdHJ1Y3QgbGlzdF9scnUgKmxy
dSwKICAgICAgICBpbnQgbmlkLCBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2csCiAgICAgICAgbGlz
dF9scnVfd2Fsa19jYiBpc29sYXRlLCB2b2lkICpjYl9hcmcsCiAgICAgICAgdW5zaWduZWQgbG9u
ZyAqbnJfdG9fd2Fsayk7CnVuc2lnbmVkIGxvbmcgbGlzdF9scnVfd2Fsa19ub2RlKHN0cnVjdCBs
aXN0X2xydSAqbHJ1LCBpbnQgbmlkLAogICAgIGxpc3RfbHJ1X3dhbGtfY2IgaXNvbGF0ZSwgdm9p
ZCAqY2JfYXJnLAogICAgIHVuc2lnbmVkIGxvbmcgKm5yX3RvX3dhbGspOwoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9u
ZwpsaXN0X2xydV9zaHJpbmtfd2FsayhzdHJ1Y3QgbGlzdF9scnUgKmxydSwgc3RydWN0IHNocmlu
a19jb250cm9sICpzYywKICAgICAgIGxpc3RfbHJ1X3dhbGtfY2IgaXNvbGF0ZSwgdm9pZCAqY2Jf
YXJnKQp7CiByZXR1cm4gbGlzdF9scnVfd2Fsa19vbmUobHJ1LCBzYy0+bmlkLCBzYy0+bWVtY2cs
IGlzb2xhdGUsIGNiX2FyZywKICAgICAmc2MtPm5yX3RvX3NjYW4pOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25n
Cmxpc3RfbHJ1X3Nocmlua193YWxrX2lycShzdHJ1Y3QgbGlzdF9scnUgKmxydSwgc3RydWN0IHNo
cmlua19jb250cm9sICpzYywKICAgIGxpc3RfbHJ1X3dhbGtfY2IgaXNvbGF0ZSwgdm9pZCAqY2Jf
YXJnKQp7CiByZXR1cm4gbGlzdF9scnVfd2Fsa19vbmVfaXJxKGxydSwgc2MtPm5pZCwgc2MtPm1l
bWNnLCBpc29sYXRlLCBjYl9hcmcsCiAgICAgICAgICZzYy0+bnJfdG9fc2Nhbik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcKbGlzdF9scnVfd2FsayhzdHJ1Y3QgbGlzdF9scnUgKmxydSwgbGlzdF9scnVfd2Fs
a19jYiBpc29sYXRlLAogICAgICAgdm9pZCAqY2JfYXJnLCB1bnNpZ25lZCBsb25nIG5yX3RvX3dh
bGspCnsKIGxvbmcgaXNvbGF0ZWQgPSAwOwogaW50IG5pZDsKCiBmb3IgKCAobmlkKSA9IDA7IChu
aWQpID09IDA7IChuaWQpID0gMSkgewogIGlzb2xhdGVkICs9IGxpc3RfbHJ1X3dhbGtfbm9kZShs
cnUsIG5pZCwgaXNvbGF0ZSwKICAgICAgICAgICAgY2JfYXJnLCAmbnJfdG9fd2Fsayk7CiAgaWYg
KG5yX3RvX3dhbGsgPD0gMCkKICAgYnJlYWs7CiB9CiByZXR1cm4gaXNvbGF0ZWQ7Cn0KIyAxNCAi
Li9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUu
aCIgMQojIDE4ICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgojIDEgIi4vaW5jbHVkZS9s
aW51eC94YXJyYXkuaCIgMQojIDE1ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCiMgMSAiLi9p
bmNsdWRlL2xpbnV4L2tjb25maWcuaCIgMQojIDE2ICIuL2luY2x1ZGUvbGludXgveGFycmF5Lmgi
IDIKIyA1MiAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICp4YV9ta192YWx1ZSh1bnNp
Z25lZCBsb25nIHYpCnsKICh7IGludCBfX3JldF93YXJuX29uID0gISEoKGxvbmcpdiA8IDApOyBp
ZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20g
X19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNl
Y3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIg
Ilx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAi
XHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5l
XG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMz
XG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgveGFycmF5LmgiKSwgImki
ICg1NCksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1
Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVz
aHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5w
b3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMjQpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5f
ZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CiByZXR1cm4gKHZvaWQgKikoKHYgPDwg
MSkgfCAxKTsKfQojIDY1ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcg
eGFfdG9fdmFsdWUoY29uc3Qgdm9pZCAqZW50cnkpCnsKIHJldHVybiAodW5zaWduZWQgbG9uZyll
bnRyeSA+PiAxOwp9CiMgNzcgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YV9pc192
YWx1ZShjb25zdCB2b2lkICplbnRyeSkKewogcmV0dXJuICh1bnNpZ25lZCBsb25nKWVudHJ5ICYg
MTsKfQojIDk1ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX3RhZ19wb2ludGVy
KHZvaWQgKnAsIHVuc2lnbmVkIGxvbmcgdGFnKQp7CiByZXR1cm4gKHZvaWQgKikoKHVuc2lnbmVk
IGxvbmcpcCB8IHRhZyk7Cn0KIyAxMTAgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAq
eGFfdW50YWdfcG9pbnRlcih2b2lkICplbnRyeSkKewogcmV0dXJuICh2b2lkICopKCh1bnNpZ25l
ZCBsb25nKWVudHJ5ICYgfjNVTCk7Cn0KIyAxMjUgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dW5zaWduZWQgaW50IHhhX3BvaW50ZXJfdGFnKHZvaWQgKmVudHJ5KQp7CiByZXR1cm4gKHVuc2ln
bmVkIGxvbmcpZW50cnkgJiAzVUw7Cn0KIyAxNDMgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCAqeGFfbWtfaW50ZXJuYWwodW5zaWduZWQgbG9uZyB2KQp7CiByZXR1cm4gKHZvaWQgKiko
KHYgPDwgMikgfCAyKTsKfQojIDE1NSAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25l
ZCBsb25nIHhhX3RvX2ludGVybmFsKGNvbnN0IHZvaWQgKmVudHJ5KQp7CiByZXR1cm4gKHVuc2ln
bmVkIGxvbmcpZW50cnkgPj4gMjsKfQojIDE2NyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIHhhX2lzX2ludGVybmFsKGNvbnN0IHZvaWQgKmVudHJ5KQp7CiByZXR1cm4gKCh1bnNpZ25l
ZCBsb25nKWVudHJ5ICYgMykgPT0gMjsKfQojIDE4MyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIHhhX2lzX3plcm8oY29uc3Qgdm9pZCAqZW50cnkpCnsKIHJldHVybiBfX2J1aWx0aW5f
ZXhwZWN0KCEhKGVudHJ5ID09IHhhX21rX2ludGVybmFsKDI1NykpLCAwKTsKfQojIDE5OSAiLi9p
bmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX2lzX2Vycihjb25zdCB2b2lkICplbnRyeSkK
ewogcmV0dXJuIF9fYnVpbHRpbl9leHBlY3QoISEoeGFfaXNfaW50ZXJuYWwoZW50cnkpICYmIGVu
dHJ5ID49IHhhX21rX2ludGVybmFsKC00MDk1KSksIDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDsKfQojIDIxNyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
eGFfZXJyKHZvaWQgKmVudHJ5KQp7CgogaWYgKHhhX2lzX2VycihlbnRyeSkpCiAgcmV0dXJuIChs
b25nKWVudHJ5ID4+IDI7CiByZXR1cm4gMDsKfQojIDIzNiAiLi9pbmNsdWRlL2xpbnV4L3hhcnJh
eS5oIgpzdHJ1Y3QgeGFfbGltaXQgewogdTMyIG1heDsKIHUzMiBtaW47Cn07CgoKCgoKCnR5cGVk
ZWYgdW5zaWduZWQgeGFfbWFya190OwoKCgoKCgoKZW51bSB4YV9sb2NrX3R5cGUgewogWEFfTE9D
S19JUlEgPSAxLAogWEFfTE9DS19CSCA9IDIsCn07CiMgMjkyICIuL2luY2x1ZGUvbGludXgveGFy
cmF5LmgiCnN0cnVjdCB4YXJyYXkgewogc3BpbmxvY2tfdCB4YV9sb2NrOwoKIGdmcF90IHhhX2Zs
YWdzOwogdm9pZCAqIHhhX2hlYWQ7Cn07CiMgMzQ3ICIuL2luY2x1ZGUvbGludXgveGFycmF5Lmgi
CnZvaWQgKnhhX2xvYWQoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKdm9p
ZCAqeGFfc3RvcmUoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4LCB2b2lkICpl
bnRyeSwgZ2ZwX3QpOwp2b2lkICp4YV9lcmFzZShzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwp2b2lkICp4YV9zdG9yZV9yYW5nZShzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVk
IGxvbmcgZmlyc3QsIHVuc2lnbmVkIGxvbmcgbGFzdCwKICAgdm9pZCAqZW50cnksIGdmcF90KTsK
Ym9vbCB4YV9nZXRfbWFyayhzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHhh
X21hcmtfdCk7CnZvaWQgeGFfc2V0X21hcmsoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25n
IGluZGV4LCB4YV9tYXJrX3QpOwp2b2lkIHhhX2NsZWFyX21hcmsoc3RydWN0IHhhcnJheSAqLCB1
bnNpZ25lZCBsb25nIGluZGV4LCB4YV9tYXJrX3QpOwp2b2lkICp4YV9maW5kKHN0cnVjdCB4YXJy
YXkgKnhhLCB1bnNpZ25lZCBsb25nICppbmRleCwKICB1bnNpZ25lZCBsb25nIG1heCwgeGFfbWFy
a190KSBfX2F0dHJpYnV0ZV9fKChub25udWxsKDIpKSk7CnZvaWQgKnhhX2ZpbmRfYWZ0ZXIoc3Ry
dWN0IHhhcnJheSAqeGEsIHVuc2lnbmVkIGxvbmcgKmluZGV4LAogIHVuc2lnbmVkIGxvbmcgbWF4
LCB4YV9tYXJrX3QpIF9fYXR0cmlidXRlX18oKG5vbm51bGwoMikpKTsKdW5zaWduZWQgaW50IHhh
X2V4dHJhY3Qoc3RydWN0IHhhcnJheSAqLCB2b2lkICoqZHN0LCB1bnNpZ25lZCBsb25nIHN0YXJ0
LAogIHVuc2lnbmVkIGxvbmcgbWF4LCB1bnNpZ25lZCBpbnQgbiwgeGFfbWFya190KTsKdm9pZCB4
YV9kZXN0cm95KHN0cnVjdCB4YXJyYXkgKik7CiMgMzc0ICIuL2luY2x1ZGUvbGludXgveGFycmF5
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgeGFfaW5pdF9mbGFncyhzdHJ1Y3QgeGFycmF5ICp4YSwgZ2ZwX3QgZmxhZ3MpCnsK
IGRvIHsgc3BpbmxvY2tfY2hlY2soJnhhLT54YV9sb2NrKTsgZG8geyAqKCYoJnhhLT54YV9sb2Nr
KS0+cmxvY2spID0gKHJhd19zcGlubG9ja190KSB7IC5yYXdfbG9jayA9IHsgeyAudmFsID0geyAo
MCkgfSB9IH0sIH07IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIHhhLT54YV9mbGFncyA9IGZs
YWdzOwogeGEtPnhhX2hlYWQgPSAoKHZvaWQgKikwKTsKfQojIDM4OSAiLi9pbmNsdWRlL2xpbnV4
L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHhhX2luaXQoc3RydWN0IHhhcnJheSAqeGEpCnsKIHhhX2luaXRfZmxh
Z3MoeGEsIDApOwp9CiMgNDAxICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgeGFfZW1w
dHkoY29uc3Qgc3RydWN0IHhhcnJheSAqeGEpCnsKIHJldHVybiB4YS0+eGFfaGVhZCA9PSAoKHZv
aWQgKikwKTsKfQojIDQxNCAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX21hcmtl
ZChjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwgeGFfbWFya190IG1hcmspCnsKIHJldHVybiB4YS0+
eGFfZmxhZ3MgJiAoKCBnZnBfdCkoKDFVIDw8ICgyMyArIDApKSA8PCAoIHVuc2lnbmVkKShtYXJr
KSkpOwp9CiMgNTU0ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnZvaWQgKl9feGFfZXJhc2Uo
c3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKdm9pZCAqX194YV9zdG9yZShz
dHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCk7
CnZvaWQgKl9feGFfY21weGNoZyhzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgs
IHZvaWQgKm9sZCwKICB2b2lkICplbnRyeSwgZ2ZwX3QpOwppbnQgX19hdHRyaWJ1dGVfXygoX193
YXJuX3VudXNlZF9yZXN1bHRfXykpIF9feGFfaW5zZXJ0KHN0cnVjdCB4YXJyYXkgKiwgdW5zaWdu
ZWQgbG9uZyBpbmRleCwKICB2b2lkICplbnRyeSwgZ2ZwX3QpOwppbnQgX19hdHRyaWJ1dGVfXygo
X193YXJuX3VudXNlZF9yZXN1bHRfXykpIF9feGFfYWxsb2Moc3RydWN0IHhhcnJheSAqLCB1MzIg
KmlkLCB2b2lkICplbnRyeSwKICBzdHJ1Y3QgeGFfbGltaXQsIGdmcF90KTsKaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBfX3hhX2FsbG9jX2N5Y2xpYyhzdHJ1Y3Qg
eGFycmF5ICosIHUzMiAqaWQsIHZvaWQgKmVudHJ5LAogIHN0cnVjdCB4YV9saW1pdCwgdTMyICpu
ZXh0LCBnZnBfdCk7CnZvaWQgX194YV9zZXRfbWFyayhzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVk
IGxvbmcgaW5kZXgsIHhhX21hcmtfdCk7CnZvaWQgX194YV9jbGVhcl9tYXJrKHN0cnVjdCB4YXJy
YXkgKiwgdW5zaWduZWQgbG9uZyBpbmRleCwgeGFfbWFya190KTsKIyA1ODEgIi4vaW5jbHVkZS9s
aW51eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFfc3RvcmVfYmgoc3RydWN0IHhhcnJheSAqeGEsIHVuc2ln
bmVkIGxvbmcgaW5kZXgsCiAgdm9pZCAqZW50cnksIGdmcF90IGdmcCkKewogdm9pZCAqY3VycjsK
CiBzcGluX2xvY2tfYmgoJih4YSktPnhhX2xvY2spOwogY3VyciA9IF9feGFfc3RvcmUoeGEsIGlu
ZGV4LCBlbnRyeSwgZ2ZwKTsKIHNwaW5fdW5sb2NrX2JoKCYoeGEpLT54YV9sb2NrKTsKCiByZXR1
cm4gY3VycjsKfQojIDYwNyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICp4YV9zdG9y
ZV9pcnEoc3RydWN0IHhhcnJheSAqeGEsIHVuc2lnbmVkIGxvbmcgaW5kZXgsCiAgdm9pZCAqZW50
cnksIGdmcF90IGdmcCkKewogdm9pZCAqY3VycjsKCiBzcGluX2xvY2tfaXJxKCYoeGEpLT54YV9s
b2NrKTsKIGN1cnIgPSBfX3hhX3N0b3JlKHhhLCBpbmRleCwgZW50cnksIGdmcCk7CiBzcGluX3Vu
bG9ja19pcnEoJih4YSktPnhhX2xvY2spOwoKIHJldHVybiBjdXJyOwp9CiMgNjMyICIuL2luY2x1
ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX2VyYXNlX2JoKHN0cnVjdCB4YXJyYXkgKnhhLCB1
bnNpZ25lZCBsb25nIGluZGV4KQp7CiB2b2lkICplbnRyeTsKCiBzcGluX2xvY2tfYmgoJih4YSkt
PnhhX2xvY2spOwogZW50cnkgPSBfX3hhX2VyYXNlKHhhLCBpbmRleCk7CiBzcGluX3VubG9ja19i
aCgmKHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVudHJ5Owp9CiMgNjU2ICIuL2luY2x1ZGUvbGlu
dXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgKnhhX2VyYXNlX2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWdu
ZWQgbG9uZyBpbmRleCkKewogdm9pZCAqZW50cnk7Cgogc3Bpbl9sb2NrX2lycSgmKHhhKS0+eGFf
bG9jayk7CiBlbnRyeSA9IF9feGFfZXJhc2UoeGEsIGluZGV4KTsKIHNwaW5fdW5sb2NrX2lycSgm
KHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVudHJ5Owp9CiMgNjgyICIuL2luY2x1ZGUvbGludXgv
eGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgKnhhX2NtcHhjaGcoc3RydWN0IHhhcnJheSAqeGEsIHVuc2lnbmVkIGxv
bmcgaW5kZXgsCiAgIHZvaWQgKm9sZCwgdm9pZCAqZW50cnksIGdmcF90IGdmcCkKewogdm9pZCAq
Y3VycjsKCiBzcGluX2xvY2soJih4YSktPnhhX2xvY2spOwogY3VyciA9IF9feGFfY21weGNoZyh4
YSwgaW5kZXgsIG9sZCwgZW50cnksIGdmcCk7CiBzcGluX3VubG9jaygmKHhhKS0+eGFfbG9jayk7
CgogcmV0dXJuIGN1cnI7Cn0KIyA3MDkgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAq
eGFfY21weGNoZ19iaChzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCwKICAg
dm9pZCAqb2xkLCB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQp7CiB2b2lkICpjdXJyOwoKIHNwaW5f
bG9ja19iaCgmKHhhKS0+eGFfbG9jayk7CiBjdXJyID0gX194YV9jbXB4Y2hnKHhhLCBpbmRleCwg
b2xkLCBlbnRyeSwgZ2ZwKTsKIHNwaW5fdW5sb2NrX2JoKCYoeGEpLT54YV9sb2NrKTsKCiByZXR1
cm4gY3VycjsKfQojIDczNiAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICp4YV9jbXB4
Y2hnX2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCwKICAgdm9pZCAq
b2xkLCB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQp7CiB2b2lkICpjdXJyOwoKIHNwaW5fbG9ja19p
cnEoJih4YSktPnhhX2xvY2spOwogY3VyciA9IF9feGFfY21weGNoZyh4YSwgaW5kZXgsIG9sZCwg
ZW50cnksIGdmcCk7CiBzcGluX3VubG9ja19pcnEoJih4YSktPnhhX2xvY2spOwoKIHJldHVybiBj
dXJyOwp9CiMgNzY1ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9f
KChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgeGFfaW5zZXJ0KHN0cnVjdCB4YXJyYXkgKnhhLAog
IHVuc2lnbmVkIGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCBnZnApCnsKIGludCBlcnI7
Cgogc3Bpbl9sb2NrKCYoeGEpLT54YV9sb2NrKTsKIGVyciA9IF9feGFfaW5zZXJ0KHhhLCBpbmRl
eCwgZW50cnksIGdmcCk7CiBzcGluX3VubG9jaygmKHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVy
cjsKfQojIDc5NCAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygo
X193YXJuX3VudXNlZF9yZXN1bHRfXykpIHhhX2luc2VydF9iaChzdHJ1Y3QgeGFycmF5ICp4YSwK
ICB1bnNpZ25lZCBsb25nIGluZGV4LCB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQp7CiBpbnQgZXJy
OwoKIHNwaW5fbG9ja19iaCgmKHhhKS0+eGFfbG9jayk7CiBlcnIgPSBfX3hhX2luc2VydCh4YSwg
aW5kZXgsIGVudHJ5LCBnZnApOwogc3Bpbl91bmxvY2tfYmgoJih4YSktPnhhX2xvY2spOwoKIHJl
dHVybiBlcnI7Cn0KIyA4MjMgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSB4YV9pbnNlcnRfaXJxKHN0cnVjdCB4YXJy
YXkgKnhhLAogIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCBnZnApCnsK
IGludCBlcnI7Cgogc3Bpbl9sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CiBlcnIgPSBfX3hhX2lu
c2VydCh4YSwgaW5kZXgsIGVudHJ5LCBnZnApOwogc3Bpbl91bmxvY2tfaXJxKCYoeGEpLT54YV9s
b2NrKTsKCiByZXR1cm4gZXJyOwp9CiMgODUyICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBpbnQgeGFfYWxsb2Moc3RydWN0
IHhhcnJheSAqeGEsIHUzMiAqaWQsCiAgdm9pZCAqZW50cnksIHN0cnVjdCB4YV9saW1pdCBsaW1p
dCwgZ2ZwX3QgZ2ZwKQp7CiBpbnQgZXJyOwoKIHNwaW5fbG9jaygmKHhhKS0+eGFfbG9jayk7CiBl
cnIgPSBfX3hhX2FsbG9jKHhhLCBpZCwgZW50cnksIGxpbWl0LCBnZnApOwogc3Bpbl91bmxvY2so
Jih4YSktPnhhX2xvY2spOwoKIHJldHVybiBlcnI7Cn0KIyA4ODEgIi4vaW5jbHVkZS9saW51eC94
YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSB4YV9h
bGxvY19iaChzdHJ1Y3QgeGFycmF5ICp4YSwgdTMyICppZCwKICB2b2lkICplbnRyeSwgc3RydWN0
IHhhX2xpbWl0IGxpbWl0LCBnZnBfdCBnZnApCnsKIGludCBlcnI7Cgogc3Bpbl9sb2NrX2JoKCYo
eGEpLT54YV9sb2NrKTsKIGVyciA9IF9feGFfYWxsb2MoeGEsIGlkLCBlbnRyeSwgbGltaXQsIGdm
cCk7CiBzcGluX3VubG9ja19iaCgmKHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVycjsKfQojIDkx
MCAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIHhhX2FsbG9jX2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdTMyICppZCwK
ICB2b2lkICplbnRyeSwgc3RydWN0IHhhX2xpbWl0IGxpbWl0LCBnZnBfdCBnZnApCnsKIGludCBl
cnI7Cgogc3Bpbl9sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CiBlcnIgPSBfX3hhX2FsbG9jKHhh
LCBpZCwgZW50cnksIGxpbWl0LCBnZnApOwogc3Bpbl91bmxvY2tfaXJxKCYoeGEpLT54YV9sb2Nr
KTsKCiByZXR1cm4gZXJyOwp9CiMgOTQzICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB4
YV9hbGxvY19jeWNsaWMoc3RydWN0IHhhcnJheSAqeGEsIHUzMiAqaWQsIHZvaWQgKmVudHJ5LAog
IHN0cnVjdCB4YV9saW1pdCBsaW1pdCwgdTMyICpuZXh0LCBnZnBfdCBnZnApCnsKIGludCBlcnI7
Cgogc3Bpbl9sb2NrKCYoeGEpLT54YV9sb2NrKTsKIGVyciA9IF9feGFfYWxsb2NfY3ljbGljKHhh
LCBpZCwgZW50cnksIGxpbWl0LCBuZXh0LCBnZnApOwogc3Bpbl91bmxvY2soJih4YSktPnhhX2xv
Y2spOwoKIHJldHVybiBlcnI7Cn0KIyA5NzYgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50
IHhhX2FsbG9jX2N5Y2xpY19iaChzdHJ1Y3QgeGFycmF5ICp4YSwgdTMyICppZCwgdm9pZCAqZW50
cnksCiAgc3RydWN0IHhhX2xpbWl0IGxpbWl0LCB1MzIgKm5leHQsIGdmcF90IGdmcCkKewogaW50
IGVycjsKCiBzcGluX2xvY2tfYmgoJih4YSktPnhhX2xvY2spOwogZXJyID0gX194YV9hbGxvY19j
eWNsaWMoeGEsIGlkLCBlbnRyeSwgbGltaXQsIG5leHQsIGdmcCk7CiBzcGluX3VubG9ja19iaCgm
KHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVycjsKfQojIDEwMDkgIi4vaW5jbHVkZS9saW51eC94
YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IHhhX2FsbG9jX2N5Y2xpY19pcnEoc3RydWN0IHhhcnJheSAqeGEsIHUzMiAq
aWQsIHZvaWQgKmVudHJ5LAogIHN0cnVjdCB4YV9saW1pdCBsaW1pdCwgdTMyICpuZXh0LCBnZnBf
dCBnZnApCnsKIGludCBlcnI7Cgogc3Bpbl9sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CiBlcnIg
PSBfX3hhX2FsbG9jX2N5Y2xpYyh4YSwgaWQsIGVudHJ5LCBsaW1pdCwgbmV4dCwgZ2ZwKTsKIHNw
aW5fdW5sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVycjsKfQojIDEwMzkgIi4v
aW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1
bHRfXykpCmludCB4YV9yZXNlcnZlKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGlu
ZGV4LCBnZnBfdCBnZnApCnsKIHJldHVybiB4YV9lcnIoeGFfY21weGNoZyh4YSwgaW5kZXgsICgo
dm9pZCAqKTApLCB4YV9ta19pbnRlcm5hbCgyNTcpLCBnZnApKTsKfQojIDEwNTcgIi4vaW5jbHVk
ZS9saW51eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
CmludCB4YV9yZXNlcnZlX2JoKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGluZGV4
LCBnZnBfdCBnZnApCnsKIHJldHVybiB4YV9lcnIoeGFfY21weGNoZ19iaCh4YSwgaW5kZXgsICgo
dm9pZCAqKTApLCB4YV9ta19pbnRlcm5hbCgyNTcpLCBnZnApKTsKfQojIDEwNzUgIi4vaW5jbHVk
ZS9saW51eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
CmludCB4YV9yZXNlcnZlX2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRl
eCwgZ2ZwX3QgZ2ZwKQp7CiByZXR1cm4geGFfZXJyKHhhX2NtcHhjaGdfaXJxKHhhLCBpbmRleCwg
KCh2b2lkICopMCksIHhhX21rX2ludGVybmFsKDI1NyksIGdmcCkpOwp9CiMgMTA5MCAiLi9pbmNs
dWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHhhX3JlbGVhc2Uoc3RydWN0IHhhcnJheSAqeGEsIHVu
c2lnbmVkIGxvbmcgaW5kZXgpCnsKIHhhX2NtcHhjaGcoeGEsIGluZGV4LCB4YV9ta19pbnRlcm5h
bCgyNTcpLCAoKHZvaWQgKikwKSwgMCk7Cn0KIyAxMTIyICIuL2luY2x1ZGUvbGludXgveGFycmF5
LmgiCnN0cnVjdCB4YV9ub2RlIHsKIHVuc2lnbmVkIGNoYXIgc2hpZnQ7CiB1bnNpZ25lZCBjaGFy
IG9mZnNldDsKIHVuc2lnbmVkIGNoYXIgY291bnQ7CiB1bnNpZ25lZCBjaGFyIG5yX3ZhbHVlczsK
IHN0cnVjdCB4YV9ub2RlICpwYXJlbnQ7CiBzdHJ1Y3QgeGFycmF5ICphcnJheTsKIHVuaW9uIHsK
ICBzdHJ1Y3QgbGlzdF9oZWFkIHByaXZhdGVfbGlzdDsKICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCBj
YWxsYmFja19oZWFkOwogfTsKIHZvaWQgKnNsb3RzWygxVUwgPDwgKDAgPyA0IDogNikpXTsKIHVu
aW9uIHsKICB1bnNpZ25lZCBsb25nIHRhZ3NbM11bKCgoKDFVTCA8PCAoMCA/IDQgOiA2KSkpICsg
KDY0KSAtIDEpIC8gKDY0KSldOwogIHVuc2lnbmVkIGxvbmcgbWFya3NbM11bKCgoKDFVTCA8PCAo
MCA/IDQgOiA2KSkpICsgKDY0KSAtIDEpIC8gKDY0KSldOwogfTsKfTsKCnZvaWQgeGFfZHVtcChj
b25zdCBzdHJ1Y3QgeGFycmF5ICopOwp2b2lkIHhhX2R1bXBfbm9kZShjb25zdCBzdHJ1Y3QgeGFf
bm9kZSAqKTsKIyAxMTYyICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX2hlYWQo
Y29uc3Qgc3RydWN0IHhhcnJheSAqeGEpCnsKIHJldHVybiAoeyB0eXBlb2YoKih4YS0+eGFfaGVh
ZCkpICpfX19fX19fX3AxID0gKHR5cGVvZigqKHhhLT54YV9oZWFkKSkgKikoeyB1bmlvbiB7IHR5
cGVvZigoeGEtPnhhX2hlYWQpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19y
ZWFkX29uY2Vfc2l6ZSgmKCh4YS0+eGFfaGVhZCkpLCBfX3UuX19jLCBzaXplb2YoKHhhLT54YV9o
ZWFkKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCh4YS0+eGFfaGVhZCkpLCBf
X3UuX19jLCBzaXplb2YoKHhhLT54YV9oZWFkKSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192
YWw7IH0pOyBkbyB7IH0gd2hpbGUgKDApOyA7ICgodHlwZW9mKCooeGEtPnhhX2hlYWQpKSAqKShf
X19fX19fX3AxKSk7IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgKnhhX2hlYWRfbG9ja2VkKGNvbnN0IHN0cnVjdCB4YXJyYXkgKnhhKQp7CiByZXR1cm4g
KHsgZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigqKHhhLT54YV9oZWFkKSkgKikoKHhhLT54
YV9oZWFkKSkpOyB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Cn0KCgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkICp4YV9lbnRyeShjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwKICAgIGNvbnN0IHN0cnVjdCB4
YV9ub2RlICpub2RlLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQp7CiBkbyB7IH0gd2hpbGUgKDApOwog
cmV0dXJuICh7IHR5cGVvZigqKG5vZGUtPnNsb3RzW29mZnNldF0pKSAqX19fX19fX19wMSA9ICh0
eXBlb2YoKihub2RlLT5zbG90c1tvZmZzZXRdKSkgKikoeyB1bmlvbiB7IHR5cGVvZigobm9kZS0+
c2xvdHNbb2Zmc2V0XSkpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRf
b25jZV9zaXplKCYoKG5vZGUtPnNsb3RzW29mZnNldF0pKSwgX191Ll9fYywgc2l6ZW9mKChub2Rl
LT5zbG90c1tvZmZzZXRdKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChub2Rl
LT5zbG90c1tvZmZzZXRdKSksIF9fdS5fX2MsIHNpemVvZigobm9kZS0+c2xvdHNbb2Zmc2V0XSkp
KTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyB9IHdoaWxlICgwKTsgOyAo
KHR5cGVvZigqKG5vZGUtPnNsb3RzW29mZnNldF0pKSAqKShfX19fX19fX3AxKSk7IH0pCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX2VudHJ5X2xvY2tl
ZChjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwKICAgIGNvbnN0IHN0cnVjdCB4YV9ub2RlICpub2Rl
LCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQp7CiBkbyB7IH0gd2hpbGUgKDApOwogcmV0dXJuICh7IGRv
IHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihub2RlLT5zbG90c1tvZmZzZXRdKSkgKikoKG5v
ZGUtPnNsb3RzW29mZnNldF0pKSk7IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHN0cnVjdCB4YV9ub2RlICp4YV9wYXJlbnQoY29uc3Qgc3RydWN0IHhhcnJheSAq
eGEsCiAgICAgY29uc3Qgc3RydWN0IHhhX25vZGUgKm5vZGUpCnsKIHJldHVybiAoeyB0eXBlb2Yo
Kihub2RlLT5wYXJlbnQpKSAqX19fX19fX19wMSA9ICh0eXBlb2YoKihub2RlLT5wYXJlbnQpKSAq
KSh7IHVuaW9uIHsgdHlwZW9mKChub2RlLT5wYXJlbnQpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0g
X191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKChub2RlLT5wYXJlbnQpKSwgX191Ll9fYywg
c2l6ZW9mKChub2RlLT5wYXJlbnQpKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYo
KG5vZGUtPnBhcmVudCkpLCBfX3UuX19jLCBzaXplb2YoKG5vZGUtPnBhcmVudCkpKTsgZG8geyB9
IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigq
KG5vZGUtPnBhcmVudCkpICopKF9fX19fX19fcDEpKTsgfSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHhhX25vZGUgKnhhX3BhcmVudF9sb2NrZWQoY29u
c3Qgc3RydWN0IHhhcnJheSAqeGEsCiAgICAgY29uc3Qgc3RydWN0IHhhX25vZGUgKm5vZGUpCnsK
IHJldHVybiAoeyBkbyB7IH0gd2hpbGUgKDApOyA7ICgodHlwZW9mKCoobm9kZS0+cGFyZW50KSkg
KikoKG5vZGUtPnBhcmVudCkpKTsgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCAqeGFfbWtfbm9kZShjb25zdCBzdHJ1Y3QgeGFfbm9kZSAqbm9kZSkKewog
cmV0dXJuICh2b2lkICopKCh1bnNpZ25lZCBsb25nKW5vZGUgfCAyKTsKfQoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB4YV9u
b2RlICp4YV90b19ub2RlKGNvbnN0IHZvaWQgKmVudHJ5KQp7CiByZXR1cm4gKHN0cnVjdCB4YV9u
b2RlICopKCh1bnNpZ25lZCBsb25nKWVudHJ5IC0gMik7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX2lzX25vZGUoY29u
c3Qgdm9pZCAqZW50cnkpCnsKIHJldHVybiB4YV9pc19pbnRlcm5hbChlbnRyeSkgJiYgKHVuc2ln
bmVkIGxvbmcpZW50cnkgPiA0MDk2Owp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFfbWtfc2libGluZyh1bnNpZ25lZCBp
bnQgb2Zmc2V0KQp7CiByZXR1cm4geGFfbWtfaW50ZXJuYWwob2Zmc2V0KTsKfQoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVk
IGxvbmcgeGFfdG9fc2libGluZyhjb25zdCB2b2lkICplbnRyeSkKewogcmV0dXJuIHhhX3RvX2lu
dGVybmFsKGVudHJ5KTsKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YV9pc19zaWJsaW5nKGNvbnN0IHZvaWQgKmVu
dHJ5KQp7CiByZXR1cm4gMSAmJiB4YV9pc19pbnRlcm5hbChlbnRyeSkgJiYKICAoZW50cnkgPCB4
YV9ta19zaWJsaW5nKCgxVUwgPDwgKDAgPyA0IDogNikpIC0gMSkpOwp9CiMgMTI1OSAiLi9pbmNs
dWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX2lzX3JldHJ5KGNvbnN0IHZvaWQgKmVudHJ5KQp7
CiByZXR1cm4gX19idWlsdGluX2V4cGVjdCghIShlbnRyeSA9PSB4YV9ta19pbnRlcm5hbCgyNTYp
KSwgMCk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgeGFfaXNfYWR2YW5jZWQoY29uc3Qgdm9pZCAqZW50cnkpCnsK
IHJldHVybiB4YV9pc19pbnRlcm5hbChlbnRyeSkgJiYgKGVudHJ5IDw9IHhhX21rX2ludGVybmFs
KDI1NikpOwp9CiMgMTI4NyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgp0eXBlZGVmIHZvaWQg
KCp4YV91cGRhdGVfbm9kZV90KShzdHJ1Y3QgeGFfbm9kZSAqbm9kZSk7CiMgMTMwNiAiLi9pbmNs
dWRlL2xpbnV4L3hhcnJheS5oIgpzdHJ1Y3QgeGFfc3RhdGUgewogc3RydWN0IHhhcnJheSAqeGE7
CiB1bnNpZ25lZCBsb25nIHhhX2luZGV4OwogdW5zaWduZWQgY2hhciB4YV9zaGlmdDsKIHVuc2ln
bmVkIGNoYXIgeGFfc2liczsKIHVuc2lnbmVkIGNoYXIgeGFfb2Zmc2V0OwogdW5zaWduZWQgY2hh
ciB4YV9wYWQ7CiBzdHJ1Y3QgeGFfbm9kZSAqeGFfbm9kZTsKIHN0cnVjdCB4YV9ub2RlICp4YV9h
bGxvYzsKIHhhX3VwZGF0ZV9ub2RlX3QgeGFfdXBkYXRlOwp9OwojIDEzODUgIi4vaW5jbHVkZS9s
aW51eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHhhc19lcnJvcihjb25zdCBzdHJ1Y3QgeGFfc3RhdGUgKnhhcykK
ewogcmV0dXJuIHhhX2Vycih4YXMtPnhhX25vZGUpOwp9CiMgMTM5OSAiLi9pbmNsdWRlL2xpbnV4
L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHhhc19zZXRfZXJyKHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCBsb25nIGVy
cikKewogeGFzLT54YV9ub2RlID0gKChzdHJ1Y3QgeGFfbm9kZSAqKSgoKHVuc2lnbmVkIGxvbmcp
ZXJyIDw8IDIpIHwgMlVMKSk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgeGFzX2ludmFsaWQoY29uc3Qgc3RydWN0
IHhhX3N0YXRlICp4YXMpCnsKIHJldHVybiAodW5zaWduZWQgbG9uZyl4YXMtPnhhX25vZGUgJiAz
Owp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIHhhc192YWxpZChjb25zdCBzdHJ1Y3QgeGFfc3RhdGUgKnhhcykKewog
cmV0dXJuICF4YXNfaW52YWxpZCh4YXMpOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhc19pc19ub2RlKGNvbnN0
IHN0cnVjdCB4YV9zdGF0ZSAqeGFzKQp7CiByZXR1cm4geGFzX3ZhbGlkKHhhcykgJiYgeGFzLT54
YV9ub2RlOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCB4YXNfbm90X25vZGUoc3RydWN0IHhhX25vZGUgKm5vZGUpCnsKIHJl
dHVybiAoKHVuc2lnbmVkIGxvbmcpbm9kZSAmIDMpIHx8ICFub2RlOwp9CgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YXNfZnJv
emVuKHN0cnVjdCB4YV9ub2RlICpub2RlKQp7CiByZXR1cm4gKHVuc2lnbmVkIGxvbmcpbm9kZSAm
IDI7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIHhhc190b3Aoc3RydWN0IHhhX25vZGUgKm5vZGUpCnsKIHJldHVybiBub2Rl
IDw9ICgoc3RydWN0IHhhX25vZGUgKikzVUwpOwp9CiMgMTQ2NSAiLi9pbmNsdWRlL2xpbnV4L3hh
cnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHhhc19yZXNldChzdHJ1Y3QgeGFfc3RhdGUgKnhhcykKewogeGFzLT54YV9u
b2RlID0gKChzdHJ1Y3QgeGFfbm9kZSAqKTNVTCk7Cn0KIyAxNDgyICIuL2luY2x1ZGUvbGludXgv
eGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgeGFzX3JldHJ5KHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCBjb25zdCB2b2lk
ICplbnRyeSkKewogaWYgKHhhX2lzX3plcm8oZW50cnkpKQogIHJldHVybiB0cnVlOwogaWYgKCF4
YV9pc19yZXRyeShlbnRyeSkpCiAgcmV0dXJuIGZhbHNlOwogeGFzX3Jlc2V0KHhhcyk7CiByZXR1
cm4gdHJ1ZTsKfQoKdm9pZCAqeGFzX2xvYWQoc3RydWN0IHhhX3N0YXRlICopOwp2b2lkICp4YXNf
c3RvcmUoc3RydWN0IHhhX3N0YXRlICosIHZvaWQgKmVudHJ5KTsKdm9pZCAqeGFzX2ZpbmQoc3Ry
dWN0IHhhX3N0YXRlICosIHVuc2lnbmVkIGxvbmcgbWF4KTsKdm9pZCAqeGFzX2ZpbmRfY29uZmxp
Y3Qoc3RydWN0IHhhX3N0YXRlICopOwoKYm9vbCB4YXNfZ2V0X21hcmsoY29uc3Qgc3RydWN0IHhh
X3N0YXRlICosIHhhX21hcmtfdCk7CnZvaWQgeGFzX3NldF9tYXJrKGNvbnN0IHN0cnVjdCB4YV9z
dGF0ZSAqLCB4YV9tYXJrX3QpOwp2b2lkIHhhc19jbGVhcl9tYXJrKGNvbnN0IHN0cnVjdCB4YV9z
dGF0ZSAqLCB4YV9tYXJrX3QpOwp2b2lkICp4YXNfZmluZF9tYXJrZWQoc3RydWN0IHhhX3N0YXRl
ICosIHVuc2lnbmVkIGxvbmcgbWF4LCB4YV9tYXJrX3QpOwp2b2lkIHhhc19pbml0X21hcmtzKGNv
bnN0IHN0cnVjdCB4YV9zdGF0ZSAqKTsKCmJvb2wgeGFzX25vbWVtKHN0cnVjdCB4YV9zdGF0ZSAq
LCBnZnBfdCk7CnZvaWQgeGFzX3BhdXNlKHN0cnVjdCB4YV9zdGF0ZSAqKTsKCnZvaWQgeGFzX2Ny
ZWF0ZV9yYW5nZShzdHJ1Y3QgeGFfc3RhdGUgKik7CiMgMTUyMiAiLi9pbmNsdWRlL2xpbnV4L3hh
cnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkICp4YXNfcmVsb2FkKHN0cnVjdCB4YV9zdGF0ZSAqeGFzKQp7CiBzdHJ1Y3Qg
eGFfbm9kZSAqbm9kZSA9IHhhcy0+eGFfbm9kZTsKCiBpZiAobm9kZSkKICByZXR1cm4geGFfZW50
cnkoeGFzLT54YSwgbm9kZSwgeGFzLT54YV9vZmZzZXQpOwogcmV0dXJuIHhhX2hlYWQoeGFzLT54
YSk7Cn0KIyAxNTQwICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgeGFzX3NldChzdHJ1
Y3QgeGFfc3RhdGUgKnhhcywgdW5zaWduZWQgbG9uZyBpbmRleCkKewogeGFzLT54YV9pbmRleCA9
IGluZGV4OwogeGFzLT54YV9ub2RlID0gKChzdHJ1Y3QgeGFfbm9kZSAqKTNVTCk7Cn0KCgoKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgeGFzX3NldF9vcmRlcihzdHJ1Y3QgeGFfc3RhdGUgKnhhcywgdW5zaWduZWQgbG9uZyBp
bmRleCwKICAgICB1bnNpZ25lZCBpbnQgb3JkZXIpCnsKCiB4YXMtPnhhX2luZGV4ID0gb3JkZXIg
PCA2NCA/IChpbmRleCA+PiBvcmRlcikgPDwgb3JkZXIgOiAwOwogeGFzLT54YV9zaGlmdCA9IG9y
ZGVyIC0gKG9yZGVyICUgKDAgPyA0IDogNikpOwogeGFzLT54YV9zaWJzID0gKDEgPDwgKG9yZGVy
ICUgKDAgPyA0IDogNikpKSAtIDE7CiB4YXMtPnhhX25vZGUgPSAoKHN0cnVjdCB4YV9ub2RlICop
M1VMKTsKCgoKCn0KIyAxNTc0ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgeGFzX3Nl
dF91cGRhdGUoc3RydWN0IHhhX3N0YXRlICp4YXMsIHhhX3VwZGF0ZV9ub2RlX3QgdXBkYXRlKQp7
CiB4YXMtPnhhX3VwZGF0ZSA9IHVwZGF0ZTsKfQojIDE1OTAgIi4vaW5jbHVkZS9saW51eC94YXJy
YXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCAqeGFzX25leHRfZW50cnkoc3RydWN0IHhhX3N0YXRlICp4YXMsIHVuc2lnbmVk
IGxvbmcgbWF4KQp7CiBzdHJ1Y3QgeGFfbm9kZSAqbm9kZSA9IHhhcy0+eGFfbm9kZTsKIHZvaWQg
KmVudHJ5OwoKIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHhhc19ub3Rfbm9kZShub2RlKSB8fCBu
b2RlLT5zaGlmdCB8fCB4YXMtPnhhX29mZnNldCAhPSAoeGFzLT54YV9pbmRleCAmICgoMVVMIDw8
ICgwID8gNCA6IDYpKSAtIDEpKSksIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKQogIHJldHVybiB4YXNfZmluZCh4YXMsIG1heCk7CgogZG8g
ewogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHhhcy0+eGFfaW5kZXggPj0gbWF4KSwgMCkpCiAg
IHJldHVybiB4YXNfZmluZCh4YXMsIG1heCk7CiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoeGFz
LT54YV9vZmZzZXQgPT0gKCgxVUwgPDwgKDAgPyA0IDogNikpIC0gMSkpLCAwKSkKICAgcmV0dXJu
IHhhc19maW5kKHhhcywgbWF4KTsKICBlbnRyeSA9IHhhX2VudHJ5KHhhcy0+eGEsIG5vZGUsIHhh
cy0+eGFfb2Zmc2V0ICsgMSk7CiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoeGFfaXNfaW50ZXJu
YWwoZW50cnkpKSwgMCkpCiAgIHJldHVybiB4YXNfZmluZCh4YXMsIG1heCk7CiAgeGFzLT54YV9v
ZmZzZXQrKzsKICB4YXMtPnhhX2luZGV4Kys7CiB9IHdoaWxlICghZW50cnkpOwoKIHJldHVybiBl
bnRyeTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHVuc2lnbmVkIGludCB4YXNfZmluZF9jaHVuayhzdHJ1Y3QgeGFfc3RhdGUgKnhh
cywgYm9vbCBhZHZhbmNlLAogIHhhX21hcmtfdCBtYXJrKQp7CiB1bnNpZ25lZCBsb25nICphZGRy
ID0geGFzLT54YV9ub2RlLT5tYXJrc1soIHVuc2lnbmVkKW1hcmtdOwogdW5zaWduZWQgaW50IG9m
ZnNldCA9IHhhcy0+eGFfb2Zmc2V0OwoKIGlmIChhZHZhbmNlKQogIG9mZnNldCsrOwogaWYgKCgx
VUwgPDwgKDAgPyA0IDogNikpID09IDY0KSB7CiAgaWYgKG9mZnNldCA8ICgxVUwgPDwgKDAgPyA0
IDogNikpKSB7CiAgIHVuc2lnbmVkIGxvbmcgZGF0YSA9ICphZGRyICYgKH4wVUwgPDwgb2Zmc2V0
KTsKICAgaWYgKGRhdGEpCiAgICByZXR1cm4gX19mZnMoZGF0YSk7CiAgfQogIHJldHVybiAoMVVM
IDw8ICgwID8gNCA6IDYpKTsKIH0KCiByZXR1cm4gZmluZF9uZXh0X2JpdChhZGRyLCAoMVVMIDw8
ICgwID8gNCA6IDYpKSwgb2Zmc2V0KTsKfQojIDE2NDcgIi4vaW5jbHVkZS9saW51eC94YXJyYXku
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCAqeGFzX25leHRfbWFya2VkKHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCB1bnNpZ25lZCBs
b25nIG1heCwKICAgICAgICB4YV9tYXJrX3QgbWFyaykKewogc3RydWN0IHhhX25vZGUgKm5vZGUg
PSB4YXMtPnhhX25vZGU7CiB1bnNpZ25lZCBpbnQgb2Zmc2V0OwoKIGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKHhhc19ub3Rfbm9kZShub2RlKSB8fCBub2RlLT5zaGlmdCksIDApKQogIHJldHVybiB4
YXNfZmluZF9tYXJrZWQoeGFzLCBtYXgsIG1hcmspOwogb2Zmc2V0ID0geGFzX2ZpbmRfY2h1bmso
eGFzLCB0cnVlLCBtYXJrKTsKIHhhcy0+eGFfb2Zmc2V0ID0gb2Zmc2V0OwogeGFzLT54YV9pbmRl
eCA9ICh4YXMtPnhhX2luZGV4ICYgfigoMVVMIDw8ICgwID8gNCA6IDYpKSAtIDEpKSArIG9mZnNl
dDsKIGlmICh4YXMtPnhhX2luZGV4ID4gbWF4KQogIHJldHVybiAoKHZvaWQgKikwKTsKIGlmIChv
ZmZzZXQgPT0gKDFVTCA8PCAoMCA/IDQgOiA2KSkpCiAgcmV0dXJuIHhhc19maW5kX21hcmtlZCh4
YXMsIG1heCwgbWFyayk7CiByZXR1cm4geGFfZW50cnkoeGFzLT54YSwgbm9kZSwgb2Zmc2V0KTsK
fQoKCgoKCmVudW0gewogWEFfQ0hFQ0tfU0NIRUQgPSA0MDk2LAp9OwojIDE3MjQgIi4vaW5jbHVk
ZS9saW51eC94YXJyYXkuaCIKdm9pZCAqX194YXNfbmV4dChzdHJ1Y3QgeGFfc3RhdGUgKik7CnZv
aWQgKl9feGFzX3ByZXYoc3RydWN0IHhhX3N0YXRlICopOwojIDE3NDMgIi4vaW5jbHVkZS9saW51
eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCAqeGFzX3ByZXYoc3RydWN0IHhhX3N0YXRlICp4YXMpCnsKIHN0cnVj
dCB4YV9ub2RlICpub2RlID0geGFzLT54YV9ub2RlOwoKIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEh
KHhhc19ub3Rfbm9kZShub2RlKSB8fCBub2RlLT5zaGlmdCB8fCB4YXMtPnhhX29mZnNldCA9PSAw
KSwgMCkKICAgICAgICAgICAgICAgICAgICAgICAgKQogIHJldHVybiBfX3hhc19wcmV2KHhhcyk7
CgogeGFzLT54YV9pbmRleC0tOwogeGFzLT54YV9vZmZzZXQtLTsKIHJldHVybiB4YV9lbnRyeSh4
YXMtPnhhLCBub2RlLCB4YXMtPnhhX29mZnNldCk7Cn0KIyAxNzcyICIuL2luY2x1ZGUvbGludXgv
eGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgKnhhc19uZXh0KHN0cnVjdCB4YV9zdGF0ZSAqeGFzKQp7CiBzdHJ1Y3Qg
eGFfbm9kZSAqbm9kZSA9IHhhcy0+eGFfbm9kZTsKCiBpZiAoX19idWlsdGluX2V4cGVjdCghISh4
YXNfbm90X25vZGUobm9kZSkgfHwgbm9kZS0+c2hpZnQgfHwgeGFzLT54YV9vZmZzZXQgPT0gKCgx
VUwgPDwgKDAgPyA0IDogNikpIC0gMSkpLCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICApCiAgcmV0dXJuIF9feGFzX25leHQoeGFzKTsKCiB4YXMtPnhhX2luZGV4Kys7CiB4
YXMtPnhhX29mZnNldCsrOwogcmV0dXJuIHhhX2VudHJ5KHhhcy0+eGEsIG5vZGUsIHhhcy0+eGFf
b2Zmc2V0KTsKfQojIDE5ICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIiAyCiMgNDMgIi4v
aW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcmFkaXhfdHJlZV9pc19pbnRlcm5hbF9u
b2RlKHZvaWQgKnB0cikKewogcmV0dXJuICgodW5zaWduZWQgbG9uZylwdHIgJiAzVUwpID09CiAg
ICAyVUw7Cn0KIyA3NCAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCByYWRpeF90
cmVlX2VtcHR5KGNvbnN0IHN0cnVjdCB4YXJyYXkgKnJvb3QpCnsKIHJldHVybiByb290LT54YV9o
ZWFkID09ICgodm9pZCAqKTApOwp9CiMgOTQgIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgi
CnN0cnVjdCByYWRpeF90cmVlX2l0ZXIgewogdW5zaWduZWQgbG9uZyBpbmRleDsKIHVuc2lnbmVk
IGxvbmcgbmV4dF9pbmRleDsKIHVuc2lnbmVkIGxvbmcgdGFnczsKIHN0cnVjdCB4YV9ub2RlICpu
b2RlOwp9OwojIDE2NSAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqcmFkaXhf
dHJlZV9kZXJlZl9zbG90KHZvaWQgKipzbG90KQp7CiByZXR1cm4gKHsgdHlwZW9mKCooKnNsb3Qp
KSAqX19fX19fX19wMSA9ICh0eXBlb2YoKigqc2xvdCkpICopKHsgdW5pb24geyB0eXBlb2YoKCpz
bG90KSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUo
JigoKnNsb3QpKSwgX191Ll9fYywgc2l6ZW9mKCgqc2xvdCkpKTsgZWxzZSBfX3JlYWRfb25jZV9z
aXplX25vY2hlY2soJigoKnNsb3QpKSwgX191Ll9fYywgc2l6ZW9mKCgqc2xvdCkpKTsgZG8geyB9
IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigq
KCpzbG90KSkgKikoX19fX19fX19wMSkpOyB9KTsKfQojIDE3OSAiLi9pbmNsdWRlL2xpbnV4L3Jh
ZGl4LXRyZWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCAqcmFkaXhfdHJlZV9kZXJlZl9zbG90X3Byb3RlY3RlZCh2b2lkICoq
c2xvdCwKICAgICAgIHNwaW5sb2NrX3QgKnRyZWVsb2NrKQp7CiByZXR1cm4gKHsgZG8geyB9IHdo
aWxlICgwKTsgOyAoKHR5cGVvZigqKCpzbG90KSkgKikoKCpzbG90KSkpOyB9KTsKfQojIDE5MiAi
Li9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJhZGl4X3RyZWVfZGVyZWZfcmV0cnko
dm9pZCAqYXJnKQp7CiByZXR1cm4gX19idWlsdGluX2V4cGVjdCghIShyYWRpeF90cmVlX2lzX2lu
dGVybmFsX25vZGUoYXJnKSksIDApOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCByYWRpeF90cmVlX2V4Y2VwdGlvbih2
b2lkICphcmcpCnsKIHJldHVybiBfX2J1aWx0aW5fZXhwZWN0KCEhKCh1bnNpZ25lZCBsb25nKWFy
ZyAmIDNVTCksIDApOwp9CgppbnQgcmFkaXhfdHJlZV9pbnNlcnQoc3RydWN0IHhhcnJheSAqLCB1
bnNpZ25lZCBsb25nIGluZGV4LAogICB2b2lkICopOwp2b2lkICpfX3JhZGl4X3RyZWVfbG9va3Vw
KGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwgdW5zaWduZWQgbG9uZyBpbmRleCwKICAgICBzdHJ1Y3Qg
eGFfbm9kZSAqKm5vZGVwLCB2b2lkICoqKnNsb3RwKTsKdm9pZCAqcmFkaXhfdHJlZV9sb29rdXAo
Y29uc3Qgc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nKTsKdm9pZCAqKnJhZGl4X3RyZWVf
bG9va3VwX3Nsb3QoY29uc3Qgc3RydWN0IHhhcnJheSAqLAogICAgIHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOwp2b2lkIF9fcmFkaXhfdHJlZV9yZXBsYWNlKHN0cnVjdCB4YXJyYXkgKiwgc3RydWN0IHhh
X25vZGUgKiwKICAgICB2b2lkICoqc2xvdCwgdm9pZCAqZW50cnkpOwp2b2lkIHJhZGl4X3RyZWVf
aXRlcl9yZXBsYWNlKHN0cnVjdCB4YXJyYXkgKiwKICBjb25zdCBzdHJ1Y3QgcmFkaXhfdHJlZV9p
dGVyICosIHZvaWQgKipzbG90LCB2b2lkICplbnRyeSk7CnZvaWQgcmFkaXhfdHJlZV9yZXBsYWNl
X3Nsb3Qoc3RydWN0IHhhcnJheSAqLAogICAgICAgIHZvaWQgKipzbG90LCB2b2lkICplbnRyeSk7
CnZvaWQgcmFkaXhfdHJlZV9pdGVyX2RlbGV0ZShzdHJ1Y3QgeGFycmF5ICosCiAgIHN0cnVjdCBy
YWRpeF90cmVlX2l0ZXIgKml0ZXIsIHZvaWQgKipzbG90KTsKdm9pZCAqcmFkaXhfdHJlZV9kZWxl
dGVfaXRlbShzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7CnZvaWQgKnJh
ZGl4X3RyZWVfZGVsZXRlKHN0cnVjdCB4YXJyYXkgKiwgdW5zaWduZWQgbG9uZyk7CnVuc2lnbmVk
IGludCByYWRpeF90cmVlX2dhbmdfbG9va3VwKGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwKICAgdm9p
ZCAqKnJlc3VsdHMsIHVuc2lnbmVkIGxvbmcgZmlyc3RfaW5kZXgsCiAgIHVuc2lnbmVkIGludCBt
YXhfaXRlbXMpOwppbnQgcmFkaXhfdHJlZV9wcmVsb2FkKGdmcF90IGdmcF9tYXNrKTsKaW50IHJh
ZGl4X3RyZWVfbWF5YmVfcHJlbG9hZChnZnBfdCBnZnBfbWFzayk7CnZvaWQgcmFkaXhfdHJlZV9p
bml0KHZvaWQpOwp2b2lkICpyYWRpeF90cmVlX3RhZ19zZXQoc3RydWN0IHhhcnJheSAqLAogICB1
bnNpZ25lZCBsb25nIGluZGV4LCB1bnNpZ25lZCBpbnQgdGFnKTsKdm9pZCAqcmFkaXhfdHJlZV90
YWdfY2xlYXIoc3RydWN0IHhhcnJheSAqLAogICB1bnNpZ25lZCBsb25nIGluZGV4LCB1bnNpZ25l
ZCBpbnQgdGFnKTsKaW50IHJhZGl4X3RyZWVfdGFnX2dldChjb25zdCBzdHJ1Y3QgeGFycmF5ICos
CiAgIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHVuc2lnbmVkIGludCB0YWcpOwp2b2lkIHJhZGl4X3Ry
ZWVfaXRlcl90YWdfY2xlYXIoc3RydWN0IHhhcnJheSAqLAogIGNvbnN0IHN0cnVjdCByYWRpeF90
cmVlX2l0ZXIgKml0ZXIsIHVuc2lnbmVkIGludCB0YWcpOwp1bnNpZ25lZCBpbnQgcmFkaXhfdHJl
ZV9nYW5nX2xvb2t1cF90YWcoY29uc3Qgc3RydWN0IHhhcnJheSAqLAogIHZvaWQgKipyZXN1bHRz
LCB1bnNpZ25lZCBsb25nIGZpcnN0X2luZGV4LAogIHVuc2lnbmVkIGludCBtYXhfaXRlbXMsIHVu
c2lnbmVkIGludCB0YWcpOwp1bnNpZ25lZCBpbnQgcmFkaXhfdHJlZV9nYW5nX2xvb2t1cF90YWdf
c2xvdChjb25zdCBzdHJ1Y3QgeGFycmF5ICosCiAgdm9pZCAqKipyZXN1bHRzLCB1bnNpZ25lZCBs
b25nIGZpcnN0X2luZGV4LAogIHVuc2lnbmVkIGludCBtYXhfaXRlbXMsIHVuc2lnbmVkIGludCB0
YWcpOwppbnQgcmFkaXhfdHJlZV90YWdnZWQoY29uc3Qgc3RydWN0IHhhcnJheSAqLCB1bnNpZ25l
ZCBpbnQgdGFnKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgcmFkaXhfdHJlZV9wcmVsb2FkX2VuZCh2b2lkKQp7CiBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9Cgp2b2lkICoqaWRyX2dldF9mcmVlKHN0
cnVjdCB4YXJyYXkgKnJvb3QsCiAgICAgICAgIHN0cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0ZXIs
IGdmcF90IGdmcCwKICAgICAgICAgdW5zaWduZWQgbG9uZyBtYXgpOwoKZW51bSB7CiBSQURJWF9U
UkVFX0lURVJfVEFHX01BU0sgPSAweDBmLAogUkFESVhfVFJFRV9JVEVSX1RBR0dFRCA9IDB4MTAs
CiBSQURJWF9UUkVFX0lURVJfQ09OVElHID0gMHgyMCwKfTsKIyAyNjggIi4vaW5jbHVkZS9saW51
eC9yYWRpeC10cmVlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCAq
KgpyYWRpeF90cmVlX2l0ZXJfaW5pdChzdHJ1Y3QgcmFkaXhfdHJlZV9pdGVyICppdGVyLCB1bnNp
Z25lZCBsb25nIHN0YXJ0KQp7CiMgMjc5ICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgog
aXRlci0+aW5kZXggPSAwOwogaXRlci0+bmV4dF9pbmRleCA9IHN0YXJ0OwogcmV0dXJuICgodm9p
ZCAqKTApOwp9CiMgMjk3ICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgp2b2lkICoqcmFk
aXhfdHJlZV9uZXh0X2NodW5rKGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwKICAgICAgICBzdHJ1Y3Qg
cmFkaXhfdHJlZV9pdGVyICppdGVyLCB1bnNpZ25lZCBmbGFncyk7CiMgMzEwICIuL2luY2x1ZGUv
bGludXgvcmFkaXgtdHJlZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICoqCnJhZGl4X3RyZWVfaXRlcl9sb29rdXAoY29uc3Qg
c3RydWN0IHhhcnJheSAqcm9vdCwKICAgc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlciwgdW5z
aWduZWQgbG9uZyBpbmRleCkKewogcmFkaXhfdHJlZV9pdGVyX2luaXQoaXRlciwgaW5kZXgpOwog
cmV0dXJuIHJhZGl4X3RyZWVfbmV4dF9jaHVuayhyb290LCBpdGVyLCBSQURJWF9UUkVFX0lURVJf
Q09OVElHKTsKfQojIDMyNyAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpCnZvaWQgKipyYWRpeF90cmVlX2l0ZXJfcmV0
cnkoc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlcikKewogaXRlci0+bmV4dF9pbmRleCA9IGl0
ZXItPmluZGV4OwogaXRlci0+dGFncyA9IDA7CiByZXR1cm4gKCh2b2lkICopMCk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcKX19yYWRpeF90cmVlX2l0ZXJfYWRkKHN0cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0
ZXIsIHVuc2lnbmVkIGxvbmcgc2xvdHMpCnsKIHJldHVybiBpdGVyLT5pbmRleCArIHNsb3RzOwp9
CiMgMzUxICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgp2b2lkICoqX19hdHRyaWJ1dGVf
XygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHJhZGl4X3RyZWVfaXRlcl9yZXN1bWUodm9pZCAq
KnNsb3QsCiAgICAgc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlcik7CgoKCgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGxvbmcKcmFkaXhfdHJlZV9jaHVua19zaXplKHN0
cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0ZXIpCnsKIHJldHVybiBpdGVyLT5uZXh0X2luZGV4IC0g
aXRlci0+aW5kZXg7Cn0KIyAzODUgIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCAqKnJhZGl4X3RyZWVfbmV4dF9zbG90
KHZvaWQgKipzbG90LAogICAgc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlciwgdW5zaWduZWQg
ZmxhZ3MpCnsKIGlmIChmbGFncyAmIFJBRElYX1RSRUVfSVRFUl9UQUdHRUQpIHsKICBpdGVyLT50
YWdzID4+PSAxOwogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFpdGVyLT50YWdzKSwgMCkpCiAg
IHJldHVybiAoKHZvaWQgKikwKTsKICBpZiAoX19idWlsdGluX2V4cGVjdCghIShpdGVyLT50YWdz
ICYgMXVsKSwgMSkpIHsKICAgaXRlci0+aW5kZXggPSBfX3JhZGl4X3RyZWVfaXRlcl9hZGQoaXRl
ciwgMSk7CiAgIHNsb3QrKzsKICAgZ290byBmb3VuZDsKICB9CiAgaWYgKCEoZmxhZ3MgJiBSQURJ
WF9UUkVFX0lURVJfQ09OVElHKSkgewogICB1bnNpZ25lZCBvZmZzZXQgPSBfX2ZmcyhpdGVyLT50
YWdzKTsKCiAgIGl0ZXItPnRhZ3MgPj49IG9mZnNldCsrOwogICBpdGVyLT5pbmRleCA9IF9fcmFk
aXhfdHJlZV9pdGVyX2FkZChpdGVyLCBvZmZzZXQpOwogICBzbG90ICs9IG9mZnNldDsKICAgZ290
byBmb3VuZDsKICB9CiB9IGVsc2UgewogIGxvbmcgY291bnQgPSByYWRpeF90cmVlX2NodW5rX3Np
emUoaXRlcik7CgogIHdoaWxlICgtLWNvdW50ID4gMCkgewogICBzbG90Kys7CiAgIGl0ZXItPmlu
ZGV4ID0gX19yYWRpeF90cmVlX2l0ZXJfYWRkKGl0ZXIsIDEpOwoKICAgaWYgKF9fYnVpbHRpbl9l
eHBlY3QoISEoKnNsb3QpLCAxKSkKICAgIGdvdG8gZm91bmQ7CiAgIGlmIChmbGFncyAmIFJBRElY
X1RSRUVfSVRFUl9DT05USUcpIHsKCiAgICBpdGVyLT5uZXh0X2luZGV4ID0gMDsKICAgIGJyZWFr
OwogICB9CiAgfQogfQogcmV0dXJuICgodm9pZCAqKTApOwoKIGZvdW5kOgogcmV0dXJuIHNsb3Q7
Cn0KIyAxNiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKCgoKIyAxICIuL2luY2x1ZGUvbGludXgv
cGlkLmgiIDEKIyA5ICIuL2luY2x1ZGUvbGludXgvcGlkLmgiCmVudW0gcGlkX3R5cGUKewogUElE
VFlQRV9QSUQsCiBQSURUWVBFX1RHSUQsCiBQSURUWVBFX1BHSUQsCiBQSURUWVBFX1NJRCwKIFBJ
RFRZUEVfTUFYLAp9OwojIDU0ICIuL2luY2x1ZGUvbGludXgvcGlkLmgiCnN0cnVjdCB1cGlkIHsK
IGludCBucjsKIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpuczsKfTsKCnN0cnVjdCBwaWQKewogcmVm
Y291bnRfdCBjb3VudDsKIHVuc2lnbmVkIGludCBsZXZlbDsKCiBzdHJ1Y3QgaGxpc3RfaGVhZCB0
YXNrc1tQSURUWVBFX01BWF07Cgogd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdF9waWRmZDsKIHN0cnVj
dCBjYWxsYmFja19oZWFkIHJjdTsKIHN0cnVjdCB1cGlkIG51bWJlcnNbMV07Cn07CgpleHRlcm4g
c3RydWN0IHBpZCBpbml0X3N0cnVjdF9waWQ7CgpleHRlcm4gY29uc3Qgc3RydWN0IGZpbGVfb3Bl
cmF0aW9ucyBwaWRmZF9mb3BzOwoKc3RydWN0IGZpbGU7CgpleHRlcm4gc3RydWN0IHBpZCAqcGlk
ZmRfcGlkKGNvbnN0IHN0cnVjdCBmaWxlICpmaWxlKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBwaWQgKmdldF9waWQoc3Ry
dWN0IHBpZCAqcGlkKQp7CiBpZiAocGlkKQogIHJlZmNvdW50X2luYygmcGlkLT5jb3VudCk7CiBy
ZXR1cm4gcGlkOwp9CgpleHRlcm4gdm9pZCBwdXRfcGlkKHN0cnVjdCBwaWQgKnBpZCk7CmV4dGVy
biBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBpZF90YXNrKHN0cnVjdCBwaWQgKnBpZCwgZW51bSBwaWRf
dHlwZSk7CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgcGlkX2hhc190YXNrKHN0cnVjdCBwaWQgKnBpZCwgZW51bSBwaWRfdHlwZSB0
eXBlKQp7CiByZXR1cm4gIWhsaXN0X2VtcHR5KCZwaWQtPnRhc2tzW3R5cGVdKTsKfQpleHRlcm4g
c3RydWN0IHRhc2tfc3RydWN0ICpnZXRfcGlkX3Rhc2soc3RydWN0IHBpZCAqcGlkLCBlbnVtIHBp
ZF90eXBlKTsKCmV4dGVybiBzdHJ1Y3QgcGlkICpnZXRfdGFza19waWQoc3RydWN0IHRhc2tfc3Ry
dWN0ICp0YXNrLCBlbnVtIHBpZF90eXBlIHR5cGUpOwoKCgoKZXh0ZXJuIHZvaWQgYXR0YWNoX3Bp
ZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGVudW0gcGlkX3R5cGUpOwpleHRlcm4gdm9pZCBk
ZXRhY2hfcGlkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgZW51bSBwaWRfdHlwZSk7CmV4dGVy
biB2b2lkIGNoYW5nZV9waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBlbnVtIHBpZF90eXBl
LAogICBzdHJ1Y3QgcGlkICpwaWQpOwpleHRlcm4gdm9pZCB0cmFuc2Zlcl9waWQoc3RydWN0IHRh
c2tfc3RydWN0ICpvbGQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqbmV3LAogICAgZW51bSBwaWRfdHlw
ZSk7CgpzdHJ1Y3QgcGlkX25hbWVzcGFjZTsKZXh0ZXJuIHN0cnVjdCBwaWRfbmFtZXNwYWNlIGlu
aXRfcGlkX25zOwojIDExOCAiLi9pbmNsdWRlL2xpbnV4L3BpZC5oIgpleHRlcm4gc3RydWN0IHBp
ZCAqZmluZF9waWRfbnMoaW50IG5yLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpOwpleHRlcm4g
c3RydWN0IHBpZCAqZmluZF92cGlkKGludCBucik7CgoKCgpleHRlcm4gc3RydWN0IHBpZCAqZmlu
ZF9nZXRfcGlkKGludCBucik7CmV4dGVybiBzdHJ1Y3QgcGlkICpmaW5kX2dlX3BpZChpbnQgbnIs
IHN0cnVjdCBwaWRfbmFtZXNwYWNlICopOwoKZXh0ZXJuIHN0cnVjdCBwaWQgKmFsbG9jX3BpZChz
dHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMsIHBpZF90ICpzZXRfdGlkLAogICAgICAgIHNpemVfdCBz
ZXRfdGlkX3NpemUpOwpleHRlcm4gdm9pZCBmcmVlX3BpZChzdHJ1Y3QgcGlkICpwaWQpOwpleHRl
cm4gdm9pZCBkaXNhYmxlX3BpZF9hbGxvY2F0aW9uKHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucyk7
CiMgMTQyICIuL2luY2x1ZGUvbGludXgvcGlkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpuc19v
Zl9waWQoc3RydWN0IHBpZCAqcGlkKQp7CiBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMgPSAoKHZv
aWQgKikwKTsKIGlmIChwaWQpCiAgbnMgPSBwaWQtPm51bWJlcnNbcGlkLT5sZXZlbF0ubnM7CiBy
ZXR1cm4gbnM7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaXNfY2hpbGRfcmVhcGVyKHN0cnVjdCBwaWQgKnBpZCkK
ewogcmV0dXJuIHBpZC0+bnVtYmVyc1twaWQtPmxldmVsXS5uciA9PSAxOwp9CiMgMTcyICIuL2lu
Y2x1ZGUvbGludXgvcGlkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHBpZF90IHBpZF9ucihzdHJ1Y3QgcGlkICpwaWQpCnsKIHBpZF90
IG5yID0gMDsKIGlmIChwaWQpCiAgbnIgPSBwaWQtPm51bWJlcnNbMF0ubnI7CiByZXR1cm4gbnI7
Cn0KCnBpZF90IHBpZF9ucl9ucyhzdHJ1Y3QgcGlkICpwaWQsIHN0cnVjdCBwaWRfbmFtZXNwYWNl
ICpucyk7CnBpZF90IHBpZF92bnIoc3RydWN0IHBpZCAqcGlkKTsKIyAyMCAiLi9pbmNsdWRlL2xp
bnV4L2ZzLmgiIDIKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaCIgMQojIDE2
ICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4
L2NhcGFiaWxpdHkuaCIgMQojIDM5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9jYXBhYmlsaXR5Lmgi
CnR5cGVkZWYgc3RydWN0IF9fdXNlcl9jYXBfaGVhZGVyX3N0cnVjdCB7CiBfX3UzMiB2ZXJzaW9u
OwogaW50IHBpZDsKfSAqY2FwX3VzZXJfaGVhZGVyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBfX3VzZXJf
Y2FwX2RhdGFfc3RydWN0IHsKICAgICAgICBfX3UzMiBlZmZlY3RpdmU7CiAgICAgICAgX191MzIg
cGVybWl0dGVkOwogICAgICAgIF9fdTMyIGluaGVyaXRhYmxlOwp9ICpjYXBfdXNlcl9kYXRhX3Q7
CiMgNzIgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2NhcGFiaWxpdHkuaCIKc3RydWN0IHZmc19jYXBf
ZGF0YSB7CiBfX2xlMzIgbWFnaWNfZXRjOwogc3RydWN0IHsKICBfX2xlMzIgcGVybWl0dGVkOwog
IF9fbGUzMiBpbmhlcml0YWJsZTsKIH0gZGF0YVsyXTsKfTsKCgoKCnN0cnVjdCB2ZnNfbnNfY2Fw
X2RhdGEgewogX19sZTMyIG1hZ2ljX2V0YzsKIHN0cnVjdCB7CiAgX19sZTMyIHBlcm1pdHRlZDsK
ICBfX2xlMzIgaW5oZXJpdGFibGU7CiB9IGRhdGFbMl07CiBfX2xlMzIgcm9vdGlkOwp9OwojIDE3
ICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIiAyCgoKCgoKZXh0ZXJuIGludCBmaWxlX2Nh
cHNfZW5hYmxlZDsKCnR5cGVkZWYgc3RydWN0IGtlcm5lbF9jYXBfc3RydWN0IHsKIF9fdTMyIGNh
cFsyXTsKfSBrZXJuZWxfY2FwX3Q7CgoKc3RydWN0IGNwdV92ZnNfY2FwX2RhdGEgewogX191MzIg
bWFnaWNfZXRjOwoga2VybmVsX2NhcF90IHBlcm1pdHRlZDsKIGtlcm5lbF9jYXBfdCBpbmhlcml0
YWJsZTsKIGt1aWRfdCByb290aWQ7Cn07CgoKCgoKc3RydWN0IGZpbGU7CnN0cnVjdCBpbm9kZTsK
c3RydWN0IGRlbnRyeTsKc3RydWN0IHRhc2tfc3RydWN0OwpzdHJ1Y3QgdXNlcl9uYW1lc3BhY2U7
CgpleHRlcm4gY29uc3Qga2VybmVsX2NhcF90IF9fY2FwX2VtcHR5X3NldDsKZXh0ZXJuIGNvbnN0
IGtlcm5lbF9jYXBfdCBfX2NhcF9pbml0X2VmZl9zZXQ7CiMgMTE4ICIuL2luY2x1ZGUvbGludXgv
Y2FwYWJpbGl0eS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBrZXJuZWxfY2FwX3QgY2FwX2NvbWJpbmUoY29uc3Qga2VybmVsX2NhcF90
IGEsCiAgICAgICAgICAgY29uc3Qga2VybmVsX2NhcF90IGIpCnsKIGtlcm5lbF9jYXBfdCBkZXN0
OwogZG8geyB1bnNpZ25lZCBfX2NhcGk7IGZvciAoX19jYXBpID0gMDsgX19jYXBpIDwgMjsgKytf
X2NhcGkpIHsgZGVzdC5jYXBbX19jYXBpXSA9IGEuY2FwW19fY2FwaV0gfCBiLmNhcFtfX2NhcGld
OyB9IH0gd2hpbGUgKDApOwogcmV0dXJuIGRlc3Q7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBfdCBjYXBfaW50ZXJz
ZWN0KGNvbnN0IGtlcm5lbF9jYXBfdCBhLAogICAgICBjb25zdCBrZXJuZWxfY2FwX3QgYikKewog
a2VybmVsX2NhcF90IGRlc3Q7CiBkbyB7IHVuc2lnbmVkIF9fY2FwaTsgZm9yIChfX2NhcGkgPSAw
OyBfX2NhcGkgPCAyOyArK19fY2FwaSkgeyBkZXN0LmNhcFtfX2NhcGldID0gYS5jYXBbX19jYXBp
XSAmIGIuY2FwW19fY2FwaV07IH0gfSB3aGlsZSAoMCk7CiByZXR1cm4gZGVzdDsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga2VybmVs
X2NhcF90IGNhcF9kcm9wKGNvbnN0IGtlcm5lbF9jYXBfdCBhLAogICAgICAgIGNvbnN0IGtlcm5l
bF9jYXBfdCBkcm9wKQp7CiBrZXJuZWxfY2FwX3QgZGVzdDsKIGRvIHsgdW5zaWduZWQgX19jYXBp
OyBmb3IgKF9fY2FwaSA9IDA7IF9fY2FwaSA8IDI7ICsrX19jYXBpKSB7IGRlc3QuY2FwW19fY2Fw
aV0gPSBhLmNhcFtfX2NhcGldICZ+IGRyb3AuY2FwW19fY2FwaV07IH0gfSB3aGlsZSAoMCk7CiBy
ZXR1cm4gZGVzdDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkga2VybmVsX2NhcF90IGNhcF9pbnZlcnQoY29uc3Qga2VybmVsX2NhcF90
IGMpCnsKIGtlcm5lbF9jYXBfdCBkZXN0OwogZG8geyB1bnNpZ25lZCBfX2NhcGk7IGZvciAoX19j
YXBpID0gMDsgX19jYXBpIDwgMjsgKytfX2NhcGkpIHsgZGVzdC5jYXBbX19jYXBpXSA9IH4gYy5j
YXBbX19jYXBpXTsgfSB9IHdoaWxlICgwKTsKIHJldHVybiBkZXN0Owp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGNhcF9pc2Ns
ZWFyKGNvbnN0IGtlcm5lbF9jYXBfdCBhKQp7CiB1bnNpZ25lZCBfX2NhcGk7CiBmb3IgKF9fY2Fw
aSA9IDA7IF9fY2FwaSA8IDI7ICsrX19jYXBpKSB7CiAgaWYgKGEuY2FwW19fY2FwaV0gIT0gMCkK
ICAgcmV0dXJuIGZhbHNlOwogfQogcmV0dXJuIHRydWU7Cn0KIyAxNjYgIi4vaW5jbHVkZS9saW51
eC9jYXBhYmlsaXR5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgY2FwX2lzc3Vic2V0KGNvbnN0IGtlcm5lbF9jYXBfdCBhLCBj
b25zdCBrZXJuZWxfY2FwX3Qgc2V0KQp7CiBrZXJuZWxfY2FwX3QgZGVzdDsKIGRlc3QgPSBjYXBf
ZHJvcChhLCBzZXQpOwogcmV0dXJuIGNhcF9pc2NsZWFyKGRlc3QpOwp9CgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBf
dCBjYXBfZHJvcF9mc19zZXQoY29uc3Qga2VybmVsX2NhcF90IGEpCnsKIGNvbnN0IGtlcm5lbF9j
YXBfdCBfX2NhcF9mc19zZXQgPSAoKGtlcm5lbF9jYXBfdCl7eyAoKDEgPDwgKCgwKSAmIDMxKSkg
fCAoMSA8PCAoKDI3KSAmIDMxKSkgfCAoMSA8PCAoKDEpICYgMzEpKSB8ICgxIDw8ICgoMikgJiAz
MSkpIHwgKDEgPDwgKCgzKSAmIDMxKSkgfCAoMSA8PCAoKDQpICYgMzEpKSkgfCAoMSA8PCAoKDkp
ICYgMzEpKSwgKCgxIDw8ICgoMzIpICYgMzEpKSkgfSB9KTsKIHJldHVybiBjYXBfZHJvcChhLCBf
X2NhcF9mc19zZXQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBrZXJuZWxfY2FwX3QgY2FwX3JhaXNlX2ZzX3NldChjb25zdCBrZXJu
ZWxfY2FwX3QgYSwKICAgICAgICAgY29uc3Qga2VybmVsX2NhcF90IHBlcm1pdHRlZCkKewogY29u
c3Qga2VybmVsX2NhcF90IF9fY2FwX2ZzX3NldCA9ICgoa2VybmVsX2NhcF90KXt7ICgoMSA8PCAo
KDApICYgMzEpKSB8ICgxIDw8ICgoMjcpICYgMzEpKSB8ICgxIDw8ICgoMSkgJiAzMSkpIHwgKDEg
PDwgKCgyKSAmIDMxKSkgfCAoMSA8PCAoKDMpICYgMzEpKSB8ICgxIDw8ICgoNCkgJiAzMSkpKSB8
ICgxIDw8ICgoOSkgJiAzMSkpLCAoKDEgPDwgKCgzMikgJiAzMSkpKSB9IH0pOwogcmV0dXJuIGNh
cF9jb21iaW5lKGEsCiAgICAgIGNhcF9pbnRlcnNlY3QocGVybWl0dGVkLCBfX2NhcF9mc19zZXQp
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkga2VybmVsX2NhcF90IGNhcF9kcm9wX25mc2Rfc2V0KGNvbnN0IGtlcm5lbF9jYXBfdCBh
KQp7CiBjb25zdCBrZXJuZWxfY2FwX3QgX19jYXBfZnNfc2V0ID0gKChrZXJuZWxfY2FwX3Qpe3sg
KCgxIDw8ICgoMCkgJiAzMSkpIHwgKDEgPDwgKCgyNykgJiAzMSkpIHwgKDEgPDwgKCgxKSAmIDMx
KSkgfCAoMSA8PCAoKDIpICYgMzEpKSB8ICgxIDw8ICgoMykgJiAzMSkpIHwgKDEgPDwgKCg0KSAm
IDMxKSkpIHwgKDEgPDwgKCgyNCkgJiAzMSkpLCAoKDEgPDwgKCgzMikgJiAzMSkpKSB9IH0pOwog
cmV0dXJuIGNhcF9kcm9wKGEsIF9fY2FwX2ZzX3NldCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBfdCBjYXBfcmFp
c2VfbmZzZF9zZXQoY29uc3Qga2VybmVsX2NhcF90IGEsCiAgICAgICAgICAgY29uc3Qga2VybmVs
X2NhcF90IHBlcm1pdHRlZCkKewogY29uc3Qga2VybmVsX2NhcF90IF9fY2FwX25mc2Rfc2V0ID0g
KChrZXJuZWxfY2FwX3Qpe3sgKCgxIDw8ICgoMCkgJiAzMSkpIHwgKDEgPDwgKCgyNykgJiAzMSkp
IHwgKDEgPDwgKCgxKSAmIDMxKSkgfCAoMSA8PCAoKDIpICYgMzEpKSB8ICgxIDw8ICgoMykgJiAz
MSkpIHwgKDEgPDwgKCg0KSAmIDMxKSkpIHwgKDEgPDwgKCgyNCkgJiAzMSkpLCAoKDEgPDwgKCgz
MikgJiAzMSkpKSB9IH0pOwogcmV0dXJuIGNhcF9jb21iaW5lKGEsCiAgICAgIGNhcF9pbnRlcnNl
Y3QocGVybWl0dGVkLCBfX2NhcF9uZnNkX3NldCkpOwp9CgoKZXh0ZXJuIGJvb2wgaGFzX2NhcGFi
aWxpdHkoc3RydWN0IHRhc2tfc3RydWN0ICp0LCBpbnQgY2FwKTsKZXh0ZXJuIGJvb2wgaGFzX25z
X2NhcGFiaWxpdHkoc3RydWN0IHRhc2tfc3RydWN0ICp0LAogICAgICAgICBzdHJ1Y3QgdXNlcl9u
YW1lc3BhY2UgKm5zLCBpbnQgY2FwKTsKZXh0ZXJuIGJvb2wgaGFzX2NhcGFiaWxpdHlfbm9hdWRp
dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQsIGludCBjYXApOwpleHRlcm4gYm9vbCBoYXNfbnNfY2Fw
YWJpbGl0eV9ub2F1ZGl0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwKICAgICAgICAgIHN0cnVjdCB1
c2VyX25hbWVzcGFjZSAqbnMsIGludCBjYXApOwpleHRlcm4gYm9vbCBjYXBhYmxlKGludCBjYXAp
OwpleHRlcm4gYm9vbCBuc19jYXBhYmxlKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsIGludCBj
YXApOwpleHRlcm4gYm9vbCBuc19jYXBhYmxlX25vYXVkaXQoc3RydWN0IHVzZXJfbmFtZXNwYWNl
ICpucywgaW50IGNhcCk7CmV4dGVybiBib29sIG5zX2NhcGFibGVfc2V0aWQoc3RydWN0IHVzZXJf
bmFtZXNwYWNlICpucywgaW50IGNhcCk7CiMgMjUwICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0
eS5oIgpleHRlcm4gYm9vbCBwcml2aWxlZ2VkX3dydF9pbm9kZV91aWRnaWQoc3RydWN0IHVzZXJf
bmFtZXNwYWNlICpucywgY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSk7CmV4dGVybiBib29sIGNh
cGFibGVfd3J0X2lub2RlX3VpZGdpZChjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgY2Fw
KTsKZXh0ZXJuIGJvb2wgZmlsZV9uc19jYXBhYmxlKGNvbnN0IHN0cnVjdCBmaWxlICpmaWxlLCBz
dHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5zLCBpbnQgY2FwKTsKZXh0ZXJuIGJvb2wgcHRyYWNlcl9j
YXBhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5z
KTsKCgpleHRlcm4gaW50IGdldF92ZnNfY2Fwc19mcm9tX2Rpc2soY29uc3Qgc3RydWN0IGRlbnRy
eSAqZGVudHJ5LCBzdHJ1Y3QgY3B1X3Zmc19jYXBfZGF0YSAqY3B1X2NhcHMpOwoKZXh0ZXJuIGlu
dCBjYXBfY29udmVydF9uc2NhcChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHZvaWQgKippdmFsdWUs
IHNpemVfdCBzaXplKTsKIyAyNSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIuL2luY2x1
ZGUvbGludXgvc2VtYXBob3JlLmgiIDEKIyAxNSAiLi9pbmNsdWRlL2xpbnV4L3NlbWFwaG9yZS5o
IgpzdHJ1Y3Qgc2VtYXBob3JlIHsKIHJhd19zcGlubG9ja190IGxvY2s7CiB1bnNpZ25lZCBpbnQg
Y291bnQ7CiBzdHJ1Y3QgbGlzdF9oZWFkIHdhaXRfbGlzdDsKfTsKIyAzMSAiLi9pbmNsdWRlL2xp
bnV4L3NlbWFwaG9yZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNlbWFfaW5pdChzdHJ1Y3Qgc2VtYXBob3JlICpzZW0sIGlu
dCB2YWwpCnsKIHN0YXRpYyBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgX19rZXk7CiAqc2VtID0gKHN0
cnVjdCBzZW1hcGhvcmUpIHsgLmxvY2sgPSAocmF3X3NwaW5sb2NrX3QpIHsgLnJhd19sb2NrID0g
eyB7IC52YWwgPSB7ICgwKSB9IH0gfSwgfSwgLmNvdW50ID0gdmFsLCAud2FpdF9saXN0ID0geyAm
KCgqc2VtKS53YWl0X2xpc3QpLCAmKCgqc2VtKS53YWl0X2xpc3QpIH0sIH07CiBkbyB7ICh2b2lk
KSgic2VtYXBob3JlLT5sb2NrIik7ICh2b2lkKSgmX19rZXkpOyB9IHdoaWxlICgwKTsKfQoKZXh0
ZXJuIHZvaWQgZG93bihzdHJ1Y3Qgc2VtYXBob3JlICpzZW0pOwpleHRlcm4gaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkb3duX2ludGVycnVwdGlibGUoc3RydWN0
IHNlbWFwaG9yZSAqc2VtKTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSkgZG93bl9raWxsYWJsZShzdHJ1Y3Qgc2VtYXBob3JlICpzZW0pOwpleHRlcm4g
aW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkb3duX3RyeWxvY2so
c3RydWN0IHNlbWFwaG9yZSAqc2VtKTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkgZG93bl90aW1lb3V0KHN0cnVjdCBzZW1hcGhvcmUgKnNlbSwgbG9u
ZyBqaWZmaWVzKTsKZXh0ZXJuIHZvaWQgdXAoc3RydWN0IHNlbWFwaG9yZSAqc2VtKTsKIyAyNiAi
Li9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvZmNudGwuaCIgMQoK
CgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZmNudGwuaCIgMQoKCgoKIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2ZjbnRsLmgiIDEKIyAxICIuL2luY2x1ZGUv
dWFwaS9hc20tZ2VuZXJpYy9mY250bC5oIiAxCiMgMTU2ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2Vu
ZXJpYy9mY250bC5oIgpzdHJ1Y3QgZl9vd25lcl9leCB7CiBpbnQgdHlwZTsKIF9fa2VybmVsX3Bp
ZF90IHBpZDsKfTsKIyAxOTYgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2ZjbnRsLmgiCnN0
cnVjdCBmbG9jayB7CiBzaG9ydCBsX3R5cGU7CiBzaG9ydCBsX3doZW5jZTsKIF9fa2VybmVsX29m
Zl90IGxfc3RhcnQ7CiBfX2tlcm5lbF9vZmZfdCBsX2xlbjsKIF9fa2VybmVsX3BpZF90IGxfcGlk
OwoKfTsKCgoKCgoKCnN0cnVjdCBmbG9jazY0IHsKIHNob3J0IGxfdHlwZTsKIHNob3J0IGxfd2hl
bmNlOwogX19rZXJuZWxfbG9mZl90IGxfc3RhcnQ7CiBfX2tlcm5lbF9sb2ZmX3QgbF9sZW47CiBf
X2tlcm5lbF9waWRfdCBsX3BpZDsKCn07CiMgMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRl
ZC91YXBpL2FzbS9mY250bC5oIiAyCiMgNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvZmNudGwuaCIg
MgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L29wZW5hdDIuaCIgMQojIDE5ICIuL2luY2x1ZGUv
dWFwaS9saW51eC9vcGVuYXQyLmgiCnN0cnVjdCBvcGVuX2hvdyB7CiBfX3U2NCBmbGFnczsKIF9f
dTY0IG1vZGU7CiBfX3U2NCByZXNvbHZlOwp9OwojIDcgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2Zj
bnRsLmgiIDIKIyA3ICIuL2luY2x1ZGUvbGludXgvZmNudGwuaCIgMgojIDI3ICIuL2luY2x1ZGUv
bGludXgvZnMuaCIgMgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oIiAxCiMgMTcg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oIgpzdHJ1Y3QgZmllbWFwX2V4dGVudCB7CiBf
X3U2NCBmZV9sb2dpY2FsOwoKIF9fdTY0IGZlX3BoeXNpY2FsOwoKIF9fdTY0IGZlX2xlbmd0aDsK
IF9fdTY0IGZlX3Jlc2VydmVkNjRbMl07CiBfX3UzMiBmZV9mbGFnczsKIF9fdTMyIGZlX3Jlc2Vy
dmVkWzNdOwp9OwoKc3RydWN0IGZpZW1hcCB7CiBfX3U2NCBmbV9zdGFydDsKCiBfX3U2NCBmbV9s
ZW5ndGg7CgogX191MzIgZm1fZmxhZ3M7CiBfX3UzMiBmbV9tYXBwZWRfZXh0ZW50czsKIF9fdTMy
IGZtX2V4dGVudF9jb3VudDsKIF9fdTMyIGZtX3Jlc2VydmVkOwogc3RydWN0IGZpZW1hcF9leHRl
bnQgZm1fZXh0ZW50c1swXTsKfTsKIyAyOCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKCgoKIyAx
ICIuL2luY2x1ZGUvbGludXgvbWlncmF0ZV9tb2RlLmgiIDEKIyAxNSAiLi9pbmNsdWRlL2xpbnV4
L21pZ3JhdGVfbW9kZS5oIgplbnVtIG1pZ3JhdGVfbW9kZSB7CiBNSUdSQVRFX0FTWU5DLAogTUlH
UkFURV9TWU5DX0xJR0hULAogTUlHUkFURV9TWU5DLAogTUlHUkFURV9TWU5DX05PX0NPUFksCn07
CiMgMzIgIi4vaW5jbHVkZS9saW51eC9mcy5oIiAyCgoKIyAxICIuL2luY2x1ZGUvbGludXgvcGVy
Y3B1LXJ3c2VtLmgiIDEKCgoKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3JjdXdhaXQuaCIgMQoj
IDE1ICIuL2luY2x1ZGUvbGludXgvcmN1d2FpdC5oIgpzdHJ1Y3QgcmN1d2FpdCB7CiBzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRhc2s7Cn07CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdXdhaXRfaW5pdChzdHJ1Y3QgcmN1d2Fp
dCAqdykKewogdy0+dGFzayA9ICgodm9pZCAqKTApOwp9CgpleHRlcm4gdm9pZCByY3V3YWl0X3dh
a2VfdXAoc3RydWN0IHJjdXdhaXQgKncpOwojIDkgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcndz
ZW0uaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9yY3Vfc3luYy5oIiAxCiMgMTcgIi4vaW5jbHVk
ZS9saW51eC9yY3Vfc3luYy5oIgpzdHJ1Y3QgcmN1X3N5bmMgewogaW50IGdwX3N0YXRlOwogaW50
IGdwX2NvdW50Owogd2FpdF9xdWV1ZV9oZWFkX3QgZ3Bfd2FpdDsKCiBzdHJ1Y3QgY2FsbGJhY2tf
aGVhZCBjYl9oZWFkOwp9OwojIDMyICIuL2luY2x1ZGUvbGludXgvcmN1X3N5bmMuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBy
Y3Vfc3luY19pc19pZGxlKHN0cnVjdCByY3Vfc3luYyAqcnNwKQp7CiBkbyB7IH0gd2hpbGUgKDAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKIHJldHVybiAhKHsg
dW5pb24geyB0eXBlb2YocnNwLT5ncF9zdGF0ZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsg
aWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihyc3AtPmdwX3N0YXRlKSwgX191Ll9fYywgc2l6ZW9m
KHJzcC0+Z3Bfc3RhdGUpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihyc3AtPmdw
X3N0YXRlKSwgX191Ll9fYywgc2l6ZW9mKHJzcC0+Z3Bfc3RhdGUpKTsgZG8geyB9IHdoaWxlICgw
KTsgX191Ll9fdmFsOyB9KTsKfQoKZXh0ZXJuIHZvaWQgcmN1X3N5bmNfaW5pdChzdHJ1Y3QgcmN1
X3N5bmMgKik7CmV4dGVybiB2b2lkIHJjdV9zeW5jX2VudGVyX3N0YXJ0KHN0cnVjdCByY3Vfc3lu
YyAqKTsKZXh0ZXJuIHZvaWQgcmN1X3N5bmNfZW50ZXIoc3RydWN0IHJjdV9zeW5jICopOwpleHRl
cm4gdm9pZCByY3Vfc3luY19leGl0KHN0cnVjdCByY3Vfc3luYyAqKTsKZXh0ZXJuIHZvaWQgcmN1
X3N5bmNfZHRvcihzdHJ1Y3QgcmN1X3N5bmMgKik7CiMgMTAgIi4vaW5jbHVkZS9saW51eC9wZXJj
cHUtcndzZW0uaCIgMgoKCnN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlIHsKIHN0cnVjdCByY3Vf
c3luYyByc3M7CiB1bnNpZ25lZCBpbnQgKnJlYWRfY291bnQ7CiBzdHJ1Y3Qgcndfc2VtYXBob3Jl
IHJ3X3NlbTsKIHN0cnVjdCByY3V3YWl0IHdyaXRlcjsKIGludCByZWFkZXJzX2Jsb2NrOwp9Owoj
IDMzICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LXJ3c2VtLmgiCmV4dGVybiBpbnQgX19wZXJjcHVf
ZG93bl9yZWFkKHN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlICosIGludCk7CmV4dGVybiB2b2lk
IF9fcGVyY3B1X3VwX3JlYWQoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKik7CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBl
cmNwdV9kb3duX3JlYWQoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKnNlbSkKewogZG8geyBk
byB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKCiBkbyB7IH0gd2hpbGUgKDApOwoKIF9fYXNt
X18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiMgNTEgIi4vaW5jbHVkZS9saW51eC9w
ZXJjcHUtcndzZW0uaCIKICh7IF9fdGhpc19jcHVfcHJlZW1wdF9jaGVjaygiYWRkIik7IGRvIHsg
ZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKCpzZW0tPnJlYWRfY291
bnQpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyBz
d2l0Y2goc2l6ZW9mKCpzZW0tPnJlYWRfY291bnQpKSB7IGNhc2UgMTogZG8geyB0eXBlZGVmIHR5
cGVvZigoKnNlbS0+cmVhZF9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChf
X2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoKDEpID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50
KSgxKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2
b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNh
c2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
KTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2Vt
LT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYg
KHBhb19JRF9fID09IDEpIGFzbSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBh
c20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2Nv
dW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9f
ID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRs
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAi
cmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFz
bSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
KTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFv
X1RfXykoMSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGls
ZSAoMCk7YnJlYWs7IGNhc2UgMjogZG8geyB0eXBlZGVmIHR5cGVvZigoKnNlbS0+cmVhZF9jb3Vu
dCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgx
KSAmJiAoKDEpID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50KSgxKSA6IDA7IGlmICgwKSB7IHBh
b19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0
Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09
IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUx
LCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWki
ICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAo
ImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsg
ZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1Rf
XykoMSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAo
cGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsg
YnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18g
PT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgNDog
ZG8geyB0eXBlZGVmIHR5cGVvZigoKnNlbS0+cmVhZF9jb3VudCkpIHBhb19UX187IGNvbnN0IGlu
dCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoKDEpID09IDEgfHwgKDEp
ID09IC0xKSkgPyAoaW50KSgxKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9f
dG1wX18gPSAoMSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVh
ZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFv
X0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNl
bS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoMSkpKTsgYnJl
YWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3cgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0g
LTEpIGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2Ug
NDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAo
ImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsg
ZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5y
ZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBh
b19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNl
bS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20g
KCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50
KSkgOiAicmUiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9z
aXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgODogZG8geyB0eXBlZGVmIHR5cGVvZigo
KnNlbS0+cmVhZF9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0
aW5fY29uc3RhbnRfcCgxKSAmJiAoKDEpID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50KSgxKSA6
IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2b2lkKXBh
b190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTog
aWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRl
Y2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFk
X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19J
RF9fID09IDEpIGFzbSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJh
ZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkg
OiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEp
IGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3Vu
dCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgo
cGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImlu
Y3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXyko
MSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7
YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0ZXIoKTticmVhazsgfSB9IHdo
aWxlICgwKTsgfSk7CiBpZiAoX19idWlsdGluX2V4cGVjdCghISghcmN1X3N5bmNfaXNfaWRsZSgm
c2VtLT5yc3MpKSwgMCkpCiAgX19wZXJjcHVfZG93bl9yZWFkKHNlbSwgZmFsc2UpOwoKCgoKIF9f
YXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwZXJjcHVfZG93bl9y
ZWFkX3RyeWxvY2soc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKnNlbSkKewogaW50IHJldCA9
IDE7CgogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKCgoKICh7IF9fdGhp
c19jcHVfcHJlZW1wdF9jaGVjaygiYWRkIik7IGRvIHsgZG8geyBjb25zdCB2b2lkICpfX3ZwcF92
ZXJpZnkgPSAodHlwZW9mKCgmKCpzZW0tPnJlYWRfY291bnQpKSArIDApKSgodm9pZCAqKTApOyAo
dm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyBzd2l0Y2goc2l6ZW9mKCpzZW0tPnJlYWRf
Y291bnQpKSB7IGNhc2UgMTogZG8geyB0eXBlZGVmIHR5cGVvZigoKnNlbS0+cmVhZF9jb3VudCkp
IHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAm
JiAoKDEpID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50KSgxKSA6IDA7IGlmICgwKSB7IHBhb19U
X18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2gg
KHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEp
IGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3Vu
dCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgo
cGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImlu
Y3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXyko
MSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFv
X0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNl
bS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJl
YWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0g
LTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgMjogZG8g
eyB0eXBlZGVmIHR5cGVvZigoKnNlbS0+cmVhZF9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBw
YW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoKDEpID09IDEgfHwgKDEpID09
IC0xKSkgPyAoaW50KSgxKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1w
X18gPSAoMSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9j
b3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lE
X18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7
IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3Vu
dCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
c2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgNDog
aWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRl
Y2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFk
X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19J
RF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJh
ZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkg
OiAicmUiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXpl
KCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgNDogZG8geyB0eXBlZGVmIHR5cGVvZigoKnNl
bS0+cmVhZF9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5f
Y29uc3RhbnRfcCgxKSAmJiAoKDEpID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50KSgxKSA6IDA7
IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2b2lkKXBhb190
bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYg
KHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2Ig
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBh
c20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2Nv
dW50KSkgOiAicWkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9f
ID09IDEpIGFzbSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGR3
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAi
cmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFz
bSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
KTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFv
X1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3Eg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBp
ZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoMSkp
KTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJl
YWs7IGNhc2UgODogZG8geyB0eXBlZGVmIHR5cGVvZigoKnNlbS0+cmVhZF9jb3VudCkpIHBhb19U
X187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoKDEp
ID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50KSgxKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFv
X3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVv
ZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAo
ImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsg
ZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1Rf
XykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3cgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAo
cGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsg
YnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18g
PT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNh
c2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
KTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2Vt
LT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
YmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3Np
emVfY2FsbF9wYXJhbWV0ZXIoKTticmVhazsgfSB9IHdoaWxlICgwKTsgfSk7CiBpZiAoX19idWls
dGluX2V4cGVjdCghISghcmN1X3N5bmNfaXNfaWRsZSgmc2VtLT5yc3MpKSwgMCkpCiAgcmV0ID0g
X19wZXJjcHVfZG93bl9yZWFkKHNlbSwgdHJ1ZSk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjog
OiA6Im1lbW9yeSIpOwoKCgoKCiBpZiAocmV0KQogIGRvIHsgfSB3aGlsZSAoMCk7CgogcmV0dXJu
IHJldDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBwZXJjcHVfdXBfcmVhZChzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFwaG9yZSAq
c2VtKQp7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoKCgogaWYgKF9f
YnVpbHRpbl9leHBlY3QoISEocmN1X3N5bmNfaXNfaWRsZSgmc2VtLT5yc3MpKSwgMSkpCiAgKHsg
X190aGlzX2NwdV9wcmVlbXB0X2NoZWNrKCJhZGQiKTsgZG8geyBkbyB7IGNvbnN0IHZvaWQgKl9f
dnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoKnNlbS0+cmVhZF9jb3VudCkpICsgMCkpKCh2b2lkICop
MCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoKnNlbS0+
cmVhZF9jb3VudCkpIHsgY2FzZSAxOiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqc2VtLT5yZWFkX2Nv
dW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9w
KC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgJiYgKCgtKHR5cGVvZigqc2VtLT5yZWFk
X2NvdW50KSkoMSkpID09IDEgfHwgKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgPT0g
LTEpKSA/IChpbnQpKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgOiAwOyBpZiAoMCkg
eyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKC0odHlwZW9mKCpzZW0tPnJlYWRfY291
bnQpKSgxKSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9j
b3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lE
X18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0eXBlb2YoKnNl
bS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkg
YXNtICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50
KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjdyAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZHcgJTEsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJyaSIgKChw
YW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBjYXNlIDQ6
IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJk
ZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVs
c2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgx
KSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFv
X0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNl
bS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2Yo
KnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3Np
emUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSAyOiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgq
c2VtLT5yZWFkX2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19JRF9fID0gKF9fYnVpbHRp
bl9jb25zdGFudF9wKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgJiYgKCgtKHR5cGVv
Zigqc2VtLT5yZWFkX2NvdW50KSkoMSkpID09IDEgfHwgKC0odHlwZW9mKCpzZW0tPnJlYWRfY291
bnQpKSgxKSkgPT0gLTEpKSA/IChpbnQpKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkg
OiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKC0odHlwZW9mKCpz
ZW0tPnJlYWRfY291bnQpKSgxKSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigo
KnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImlu
Y2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1RfXyko
LSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFv
X0lEX18gPT0gMSkgYXNtICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2Vt
LT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjdyAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAo
ImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQp
KSA6ICJyaSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJy
ZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09
IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpzZW0tPnJl
YWRfY291bnQpKSgxKSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAo
ImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsg
ZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1Rf
XykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgZGVmYXVsdDogX19i
YWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA0OiBkbyB7IHR5cGVk
ZWYgdHlwZW9mKCgqc2VtLT5yZWFkX2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19JRF9f
ID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkg
JiYgKCgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpID09IDEgfHwgKC0odHlwZW9mKCpz
ZW0tPnJlYWRfY291bnQpKSgxKSkgPT0gLTEpKSA/IChpbnQpKC0odHlwZW9mKCpzZW0tPnJlYWRf
Y291bnQpKSgxKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0g
KC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0
Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09
IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUx
LCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWki
ICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2Fz
ZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNt
ICgiZGVjdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkp
OyBlbHNlIGFzbSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0t
PnJlYWRfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50
KSkoMSkpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlw
ZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9f
ID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRx
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAi
cmUiICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA4
OiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqc2VtLT5yZWFkX2NvdW50KSkgcGFvX1RfXzsgY29uc3Qg
aW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKC0odHlwZW9mKCpzZW0tPnJlYWRf
Y291bnQpKSgxKSkgJiYgKCgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpID09IDEgfHwg
KC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgPT0gLTEpKSA/IChpbnQpKC0odHlwZW9m
KCpzZW0tPnJlYWRfY291bnQpKSgxKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsg
cGFvX3RtcF9fID0gKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSk7ICh2b2lkKXBhb190
bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYg
KHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2Ig
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBh
c20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2Nv
dW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkp
OyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jdyAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURf
XyA9PSAtMSkgYXNtICgiZGVjdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5y
ZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2Vt
LT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBh
c20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQp
KSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBh
b19UX18pKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkpKTsgYnJlYWs7IGNhc2UgODog
aWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRl
Y3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFk
X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEp
KSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTti
cmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3BhcmFtZXRlcigpO2JyZWFrOyB9IH0gd2hp
bGUgKDApOyB9KTsKIGVsc2UKICBfX3BlcmNwdV91cF9yZWFkKHNlbSk7CiBfX2FzbV9fIF9fdm9s
YXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoKIGRvIHsgfSB3aGlsZSAoMCk7Cn0KCmV4dGVybiB2
b2lkIHBlcmNwdV9kb3duX3dyaXRlKHN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlICopOwpleHRl
cm4gdm9pZCBwZXJjcHVfdXBfd3JpdGUoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKik7Cgpl
eHRlcm4gaW50IF9fcGVyY3B1X2luaXRfcndzZW0oc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUg
KiwKICAgIGNvbnN0IGNoYXIgKiwgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICopOwoKZXh0ZXJuIHZv
aWQgcGVyY3B1X2ZyZWVfcndzZW0oc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKik7CiMgMTE4
ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LXJ3c2VtLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3J3c2VtX3JlbGVh
c2Uoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKnNlbSwKICAgICBib29sIHJlYWQsIHVuc2ln
bmVkIGxvbmcgaXApCnsKIGRvIHsgfSB3aGlsZSAoMCk7CgogaWYgKCFyZWFkKQogIGF0b21pY19s
b25nX3NldCgmc2VtLT5yd19zZW0ub3duZXIsICgtMkwpKTsKCn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3J3c2Vt
X2FjcXVpcmUoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKnNlbSwKICAgICBib29sIHJlYWQs
IHVuc2lnbmVkIGxvbmcgaXApCnsKIGRvIHsgfSB3aGlsZSAoMCk7CgogaWYgKCFyZWFkKQogIGF0
b21pY19sb25nX3NldCgmc2VtLT5yd19zZW0ub3duZXIsIChsb25nKWdldF9jdXJyZW50KCkpOwoK
fQojIDM1ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgoKIyAxICIuL2luY2x1ZGUvbGludXgvZGVs
YXllZF9jYWxsLmgiIDEKIyAxMCAiLi9pbmNsdWRlL2xpbnV4L2RlbGF5ZWRfY2FsbC5oIgpzdHJ1
Y3QgZGVsYXllZF9jYWxsIHsKIHZvaWQgKCpmbikodm9pZCAqKTsKIHZvaWQgKmFyZzsKfTsKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgc2V0X2RlbGF5ZWRfY2FsbChzdHJ1Y3QgZGVsYXllZF9jYWxsICpjYWxsLAogIHZvaWQg
KCpmbikodm9pZCAqKSwgdm9pZCAqYXJnKQp7CiBjYWxsLT5mbiA9IGZuOwogY2FsbC0+YXJnID0g
YXJnOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGRvX2RlbGF5ZWRfY2FsbChzdHJ1Y3QgZGVsYXllZF9jYWxsICpjYWxsKQp7
CiBpZiAoY2FsbC0+Zm4pCiAgY2FsbC0+Zm4oY2FsbC0+YXJnKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl9kZWxh
eWVkX2NhbGwoc3RydWN0IGRlbGF5ZWRfY2FsbCAqY2FsbCkKewogY2FsbC0+Zm4gPSAoKHZvaWQg
KikwKTsKfQojIDM3ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51
eC91dWlkLmgiIDEKIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3V1aWQuaCIKIyAxICIuL2luY2x1ZGUv
dWFwaS9saW51eC91dWlkLmgiIDEKIyAyMyAiLi9pbmNsdWRlL3VhcGkvbGludXgvdXVpZC5oIgp0
eXBlZGVmIHN0cnVjdCB7CiBfX3U4IGJbMTZdOwp9IGd1aWRfdDsKIyAzNSAiLi9pbmNsdWRlL3Vh
cGkvbGludXgvdXVpZC5oIgp0eXBlZGVmIGd1aWRfdCB1dWlkX2xlOwojIDEyICIuL2luY2x1ZGUv
bGludXgvdXVpZC5oIiAyCgoKCgp0eXBlZGVmIHN0cnVjdCB7CiBfX3U4IGJbMTZdOwp9IHV1aWRf
dDsKIyAzMyAiLi9pbmNsdWRlL2xpbnV4L3V1aWQuaCIKZXh0ZXJuIGNvbnN0IGd1aWRfdCBndWlk
X251bGw7CmV4dGVybiBjb25zdCB1dWlkX3QgdXVpZF9udWxsOwoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBndWlkX2VxdWFsKGNv
bnN0IGd1aWRfdCAqdTEsIGNvbnN0IGd1aWRfdCAqdTIpCnsKIHJldHVybiBtZW1jbXAodTEsIHUy
LCBzaXplb2YoZ3VpZF90KSkgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBndWlkX2NvcHkoZ3VpZF90ICpkc3QsIGNv
bnN0IGd1aWRfdCAqc3JjKQp7CiBtZW1jcHkoZHN0LCBzcmMsIHNpemVvZihndWlkX3QpKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBndWlkX2lzX251bGwoY29uc3QgZ3VpZF90ICpndWlkKQp7CiByZXR1cm4gZ3VpZF9lcXVh
bChndWlkLCAmZ3VpZF9udWxsKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1dWlkX2VxdWFsKGNvbnN0IHV1aWRfdCAqdTEs
IGNvbnN0IHV1aWRfdCAqdTIpCnsKIHJldHVybiBtZW1jbXAodTEsIHUyLCBzaXplb2YodXVpZF90
KSkgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCB1dWlkX2NvcHkodXVpZF90ICpkc3QsIGNvbnN0IHV1aWRfdCAqc3Jj
KQp7CiBtZW1jcHkoZHN0LCBzcmMsIHNpemVvZih1dWlkX3QpKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1dWlkX2lzX251
bGwoY29uc3QgdXVpZF90ICp1dWlkKQp7CiByZXR1cm4gdXVpZF9lcXVhbCh1dWlkLCAmdXVpZF9u
dWxsKTsKfQoKdm9pZCBnZW5lcmF0ZV9yYW5kb21fdXVpZCh1bnNpZ25lZCBjaGFyIHV1aWRbMTZd
KTsKCmV4dGVybiB2b2lkIGd1aWRfZ2VuKGd1aWRfdCAqdSk7CmV4dGVybiB2b2lkIHV1aWRfZ2Vu
KHV1aWRfdCAqdSk7Cgpib29sIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18p
KSB1dWlkX2lzX3ZhbGlkKGNvbnN0IGNoYXIgKnV1aWQpOwoKZXh0ZXJuIGNvbnN0IHU4IGd1aWRf
aW5kZXhbMTZdOwpleHRlcm4gY29uc3QgdTggdXVpZF9pbmRleFsxNl07CgppbnQgZ3VpZF9wYXJz
ZShjb25zdCBjaGFyICp1dWlkLCBndWlkX3QgKnUpOwppbnQgdXVpZF9wYXJzZShjb25zdCBjaGFy
ICp1dWlkLCB1dWlkX3QgKnUpOwoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB1dWlkX2xlX2NtcChjb25zdCBndWlkX3QgdTEs
IGNvbnN0IGd1aWRfdCB1MikKewogcmV0dXJuIG1lbWNtcCgmdTEsICZ1Miwgc2l6ZW9mKGd1aWRf
dCkpOwp9CiMgMzggIi4vaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L2VycnNlcS5oIiAxCgoKCgoKCgp0eXBlZGVmIHUzMiBlcnJzZXFfdDsKCmVycnNlcV90IGVycnNl
cV9zZXQoZXJyc2VxX3QgKmVzZXEsIGludCBlcnIpOwplcnJzZXFfdCBlcnJzZXFfc2FtcGxlKGVy
cnNlcV90ICplc2VxKTsKaW50IGVycnNlcV9jaGVjayhlcnJzZXFfdCAqZXNlcSwgZXJyc2VxX3Qg
c2luY2UpOwppbnQgZXJyc2VxX2NoZWNrX2FuZF9hZHZhbmNlKGVycnNlcV90ICplc2VxLCBlcnJz
ZXFfdCAqc2luY2UpOwojIDM5ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi4vaW5jbHVk
ZS9saW51eC9pb3ByaW8uaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMQoj
IDEwICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9z
Y2hlZC5oIiAxCiMgODkgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NjaGVkLmgiCnN0cnVjdCBjbG9u
ZV9hcmdzIHsKIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBmbGFnczsKIF9fdTY0
IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBwaWRmZDsKIF9fdTY0IF9fYXR0cmlidXRlX18o
KGFsaWduZWQoOCkpKSBjaGlsZF90aWQ7CiBfX3U2NCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgp
KSkgcGFyZW50X3RpZDsKIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBleGl0X3Np
Z25hbDsKIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBzdGFjazsKIF9fdTY0IF9f
YXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBzdGFja19zaXplOwogX191NjQgX19hdHRyaWJ1dGVf
XygoYWxpZ25lZCg4KSkpIHRsczsKIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBz
ZXRfdGlkOwogX191NjQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpIHNldF90aWRfc2l6ZTsK
fTsKIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCgoKCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L3NlbS5oIiAxCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIiAxCgoKCgoj
IDEgIi4vaW5jbHVkZS9saW51eC9pcGMuaCIgMQoKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9y
aGFzaHRhYmxlLXR5cGVzLmgiIDEKIyAxNyAiLi9pbmNsdWRlL2xpbnV4L3JoYXNodGFibGUtdHlw
ZXMuaCIKc3RydWN0IHJoYXNoX2hlYWQgewogc3RydWN0IHJoYXNoX2hlYWQgKm5leHQ7Cn07Cgpz
dHJ1Y3QgcmhsaXN0X2hlYWQgewogc3RydWN0IHJoYXNoX2hlYWQgcmhlYWQ7CiBzdHJ1Y3Qgcmhs
aXN0X2hlYWQgKm5leHQ7Cn07CgpzdHJ1Y3QgYnVja2V0X3RhYmxlOwoKCgoKCgpzdHJ1Y3Qgcmhh
c2h0YWJsZV9jb21wYXJlX2FyZyB7CiBzdHJ1Y3Qgcmhhc2h0YWJsZSAqaHQ7CiBjb25zdCB2b2lk
ICprZXk7Cn07Cgp0eXBlZGVmIHUzMiAoKnJodF9oYXNoZm5fdCkoY29uc3Qgdm9pZCAqZGF0YSwg
dTMyIGxlbiwgdTMyIHNlZWQpOwp0eXBlZGVmIHUzMiAoKnJodF9vYmpfaGFzaGZuX3QpKGNvbnN0
IHZvaWQgKmRhdGEsIHUzMiBsZW4sIHUzMiBzZWVkKTsKdHlwZWRlZiBpbnQgKCpyaHRfb2JqX2Nt
cGZuX3QpKHN0cnVjdCByaGFzaHRhYmxlX2NvbXBhcmVfYXJnICphcmcsCiAgICAgICAgICBjb25z
dCB2b2lkICpvYmopOwojIDU2ICIuL2luY2x1ZGUvbGludXgvcmhhc2h0YWJsZS10eXBlcy5oIgpz
dHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgewogdTE2IG5lbGVtX2hpbnQ7CiB1MTYga2V5X2xlbjsK
IHUxNiBrZXlfb2Zmc2V0OwogdTE2IGhlYWRfb2Zmc2V0OwogdW5zaWduZWQgaW50IG1heF9zaXpl
OwogdTE2IG1pbl9zaXplOwogYm9vbCBhdXRvbWF0aWNfc2hyaW5raW5nOwogcmh0X2hhc2hmbl90
IGhhc2hmbjsKIHJodF9vYmpfaGFzaGZuX3Qgb2JqX2hhc2hmbjsKIHJodF9vYmpfY21wZm5fdCBv
YmpfY21wZm47Cn07CiMgODEgIi4vaW5jbHVkZS9saW51eC9yaGFzaHRhYmxlLXR5cGVzLmgiCnN0
cnVjdCByaGFzaHRhYmxlIHsKIHN0cnVjdCBidWNrZXRfdGFibGUgKnRibDsKIHVuc2lnbmVkIGlu
dCBrZXlfbGVuOwogdW5zaWduZWQgaW50IG1heF9lbGVtczsKIHN0cnVjdCByaGFzaHRhYmxlX3Bh
cmFtcyBwOwogYm9vbCByaGxpc3Q7CiBzdHJ1Y3Qgd29ya19zdHJ1Y3QgcnVuX3dvcms7CiBzdHJ1
Y3QgbXV0ZXggbXV0ZXg7CiBzcGlubG9ja190IGxvY2s7CiBhdG9taWNfdCBuZWxlbXM7Cn07CgoK
CgoKc3RydWN0IHJobHRhYmxlIHsKIHN0cnVjdCByaGFzaHRhYmxlIGh0Owp9OwoKCgoKCgpzdHJ1
Y3Qgcmhhc2h0YWJsZV93YWxrZXIgewogc3RydWN0IGxpc3RfaGVhZCBsaXN0Owogc3RydWN0IGJ1
Y2tldF90YWJsZSAqdGJsOwp9OwojIDEyMCAiLi9pbmNsdWRlL2xpbnV4L3JoYXNodGFibGUtdHlw
ZXMuaCIKc3RydWN0IHJoYXNodGFibGVfaXRlciB7CiBzdHJ1Y3Qgcmhhc2h0YWJsZSAqaHQ7CiBz
dHJ1Y3Qgcmhhc2hfaGVhZCAqcDsKIHN0cnVjdCByaGxpc3RfaGVhZCAqbGlzdDsKIHN0cnVjdCBy
aGFzaHRhYmxlX3dhbGtlciB3YWxrZXI7CiB1bnNpZ25lZCBpbnQgc2xvdDsKIHVuc2lnbmVkIGlu
dCBza2lwOwogYm9vbCBlbmRfb2ZfdGFibGU7Cn07CgppbnQgcmhhc2h0YWJsZV9pbml0KHN0cnVj
dCByaGFzaHRhYmxlICpodCwKICAgICAgY29uc3Qgc3RydWN0IHJoYXNodGFibGVfcGFyYW1zICpw
YXJhbXMpOwppbnQgcmhsdGFibGVfaW5pdChzdHJ1Y3QgcmhsdGFibGUgKmhsdCwKICAgIGNvbnN0
IHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyAqcGFyYW1zKTsKIyA4ICIuL2luY2x1ZGUvbGludXgv
aXBjLmgiIDIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9pcGMuaCIgMQojIDEwICIuL2luY2x1
ZGUvdWFwaS9saW51eC9pcGMuaCIKc3RydWN0IGlwY19wZXJtCnsKIF9fa2VybmVsX2tleV90IGtl
eTsKIF9fa2VybmVsX3VpZF90IHVpZDsKIF9fa2VybmVsX2dpZF90IGdpZDsKIF9fa2VybmVsX3Vp
ZF90IGN1aWQ7CiBfX2tlcm5lbF9naWRfdCBjZ2lkOwogX19rZXJuZWxfbW9kZV90IG1vZGU7CiB1
bnNpZ25lZCBzaG9ydCBzZXE7Cn07CgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVk
L3VhcGkvYXNtL2lwY2J1Zi5oIiAxCiMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaXBj
YnVmLmgiIDEKIyAyMiAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaXBjYnVmLmgiCnN0cnVj
dCBpcGM2NF9wZXJtIHsKIF9fa2VybmVsX2tleV90IGtleTsKIF9fa2VybmVsX3VpZDMyX3QgdWlk
OwogX19rZXJuZWxfZ2lkMzJfdCBnaWQ7CiBfX2tlcm5lbF91aWQzMl90IGN1aWQ7CiBfX2tlcm5l
bF9naWQzMl90IGNnaWQ7CiBfX2tlcm5lbF9tb2RlX3QgbW9kZTsKCiB1bnNpZ25lZCBjaGFyIF9f
cGFkMVs0IC0gc2l6ZW9mKF9fa2VybmVsX21vZGVfdCldOwogdW5zaWduZWQgc2hvcnQgc2VxOwog
dW5zaWduZWQgc2hvcnQgX19wYWQyOwogX19rZXJuZWxfdWxvbmdfdCBfX3VudXNlZDE7CiBfX2tl
cm5lbF91bG9uZ190IF9fdW51c2VkMjsKfTsKIyAyICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJh
dGVkL3VhcGkvYXNtL2lwY2J1Zi5oIiAyCiMgMjMgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2lwYy5o
IiAyCiMgNTggIi4vaW5jbHVkZS91YXBpL2xpbnV4L2lwYy5oIgpzdHJ1Y3QgaXBjX2tsdWRnZSB7
CiBzdHJ1Y3QgbXNnYnVmICptc2dwOwogbG9uZyBtc2d0eXA7Cn07CiMgOSAiLi9pbmNsdWRlL2xp
bnV4L2lwYy5oIiAyCgoKCnN0cnVjdCBrZXJuX2lwY19wZXJtIHsKIHNwaW5sb2NrX3QgbG9jazsK
IGJvb2wgZGVsZXRlZDsKIGludCBpZDsKIGtleV90IGtleTsKIGt1aWRfdCB1aWQ7CiBrZ2lkX3Qg
Z2lkOwoga3VpZF90IGN1aWQ7CiBrZ2lkX3QgY2dpZDsKIHVtb2RlX3QgbW9kZTsKIHVuc2lnbmVk
IGxvbmcgc2VxOwogdm9pZCAqc2VjdXJpdHk7Cgogc3RydWN0IHJoYXNoX2hlYWQga2h0bm9kZTsK
CiBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCByY3U7CiByZWZjb3VudF90IHJlZmNvdW50Owp9IF9fYXR0
cmlidXRlX18oKF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpKSkgX19hdHRyaWJ1dGVfXygoX19kZXNp
Z25hdGVkX2luaXRfXykpOwojIDYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIiAyCiMgMjUg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIgpzdHJ1Y3Qgc2VtaWRfZHMgewogc3RydWN0IGlw
Y19wZXJtIHNlbV9wZXJtOwogX19rZXJuZWxfb2xkX3RpbWVfdCBzZW1fb3RpbWU7CiBfX2tlcm5l
bF9vbGRfdGltZV90IHNlbV9jdGltZTsKIHN0cnVjdCBzZW0gKnNlbV9iYXNlOwogc3RydWN0IHNl
bV9xdWV1ZSAqc2VtX3BlbmRpbmc7CiBzdHJ1Y3Qgc2VtX3F1ZXVlICoqc2VtX3BlbmRpbmdfbGFz
dDsKIHN0cnVjdCBzZW1fdW5kbyAqdW5kbzsKIHVuc2lnbmVkIHNob3J0IHNlbV9uc2VtczsKfTsK
CgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zZW1idWYuaCIgMQoKCgoKIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2lwY2J1Zi5oIiAxCiMgNiAiLi9h
cmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NlbWJ1Zi5oIiAyCiMgMTggIi4vYXJjaC94ODYvaW5j
bHVkZS91YXBpL2FzbS9zZW1idWYuaCIKc3RydWN0IHNlbWlkNjRfZHMgewogc3RydWN0IGlwYzY0
X3Blcm0gc2VtX3Blcm07CgoKCgoKCiBfX2tlcm5lbF9sb25nX3Qgc2VtX290aW1lOwogX19rZXJu
ZWxfdWxvbmdfdCBfX3VudXNlZDE7CiBfX2tlcm5lbF9sb25nX3Qgc2VtX2N0aW1lOwogX19rZXJu
ZWxfdWxvbmdfdCBfX3VudXNlZDI7CgogX19rZXJuZWxfdWxvbmdfdCBzZW1fbnNlbXM7CiBfX2tl
cm5lbF91bG9uZ190IF9fdW51c2VkMzsKIF9fa2VybmVsX3Vsb25nX3QgX191bnVzZWQ0Owp9Owoj
IDM4ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zZW0uaCIgMgoKCnN0cnVjdCBzZW1idWYgewogdW5z
aWduZWQgc2hvcnQgc2VtX251bTsKIHNob3J0IHNlbV9vcDsKIHNob3J0IHNlbV9mbGc7Cn07CgoK
dW5pb24gc2VtdW4gewogaW50IHZhbDsKIHN0cnVjdCBzZW1pZF9kcyAqYnVmOwogdW5zaWduZWQg
c2hvcnQgKmFycmF5Owogc3RydWN0IHNlbWluZm8gKl9fYnVmOwogdm9pZCAqX19wYWQ7Cn07Cgpz
dHJ1Y3Qgc2VtaW5mbyB7CiBpbnQgc2VtbWFwOwogaW50IHNlbW1uaTsKIGludCBzZW1tbnM7CiBp
bnQgc2VtbW51OwogaW50IHNlbW1zbDsKIGludCBzZW1vcG07CiBpbnQgc2VtdW1lOwogaW50IHNl
bXVzejsKIGludCBzZW12bXg7CiBpbnQgc2VtYWVtOwp9OwojIDYgIi4vaW5jbHVkZS9saW51eC9z
ZW0uaCIgMgoKc3RydWN0IHRhc2tfc3RydWN0OwpzdHJ1Y3Qgc2VtX3VuZG9fbGlzdDsKCgoKc3Ry
dWN0IHN5c3Zfc2VtIHsKIHN0cnVjdCBzZW1fdW5kb19saXN0ICp1bmRvX2xpc3Q7Cn07CgpleHRl
cm4gaW50IGNvcHlfc2VtdW5kbyh1bnNpZ25lZCBsb25nIGNsb25lX2ZsYWdzLCBzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnRzayk7CmV4dGVybiB2b2lkIGV4aXRfc2VtKHN0cnVjdCB0YXNrX3N0cnVjdCAq
dHNrKTsKIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIuL2luY2x1ZGUvbGlu
dXgvc2htLmgiIDEKCgoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zaG0uaCIgMQoKCgoK
CgojIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2h1Z2V0bGJfZW5jb2RlLmgiIDEKIyA4
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zaG0uaCIgMgojIDI4ICIuL2luY2x1ZGUvdWFwaS9saW51
eC9zaG0uaCIKc3RydWN0IHNobWlkX2RzIHsKIHN0cnVjdCBpcGNfcGVybSBzaG1fcGVybTsKIGlu
dCBzaG1fc2Vnc3o7CiBfX2tlcm5lbF9vbGRfdGltZV90IHNobV9hdGltZTsKIF9fa2VybmVsX29s
ZF90aW1lX3Qgc2htX2R0aW1lOwogX19rZXJuZWxfb2xkX3RpbWVfdCBzaG1fY3RpbWU7CiBfX2tl
cm5lbF9pcGNfcGlkX3Qgc2htX2NwaWQ7CiBfX2tlcm5lbF9pcGNfcGlkX3Qgc2htX2xwaWQ7CiB1
bnNpZ25lZCBzaG9ydCBzaG1fbmF0dGNoOwogdW5zaWduZWQgc2hvcnQgc2htX3VudXNlZDsKIHZv
aWQgKnNobV91bnVzZWQyOwogdm9pZCAqc2htX3VudXNlZDM7Cn07CgoKIyAxICIuL2FyY2gveDg2
L2luY2x1ZGUvdWFwaS9hc20vc2htYnVmLmgiIDEKCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2Fz
bS1nZW5lcmljL3NobWJ1Zi5oIiAxCiMgMjUgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3No
bWJ1Zi5oIgpzdHJ1Y3Qgc2htaWQ2NF9kcyB7CiBzdHJ1Y3QgaXBjNjRfcGVybSBzaG1fcGVybTsK
IHNpemVfdCBzaG1fc2Vnc3o7CgogbG9uZyBzaG1fYXRpbWU7CiBsb25nIHNobV9kdGltZTsKIGxv
bmcgc2htX2N0aW1lOwojIDQwICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9zaG1idWYuaCIK
IF9fa2VybmVsX3BpZF90IHNobV9jcGlkOwogX19rZXJuZWxfcGlkX3Qgc2htX2xwaWQ7CiB1bnNp
Z25lZCBsb25nIHNobV9uYXR0Y2g7CiB1bnNpZ25lZCBsb25nIF9fdW51c2VkNDsKIHVuc2lnbmVk
IGxvbmcgX191bnVzZWQ1Owp9OwoKc3RydWN0IHNobWluZm82NCB7CiB1bnNpZ25lZCBsb25nIHNo
bW1heDsKIHVuc2lnbmVkIGxvbmcgc2htbWluOwogdW5zaWduZWQgbG9uZyBzaG1tbmk7CiB1bnNp
Z25lZCBsb25nIHNobXNlZzsKIHVuc2lnbmVkIGxvbmcgc2htYWxsOwogdW5zaWduZWQgbG9uZyBf
X3VudXNlZDE7CiB1bnNpZ25lZCBsb25nIF9fdW51c2VkMjsKIHVuc2lnbmVkIGxvbmcgX191bnVz
ZWQzOwogdW5zaWduZWQgbG9uZyBfX3VudXNlZDQ7Cn07CiMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L3VhcGkvYXNtL3NobWJ1Zi5oIiAyCiMgNDQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NobS5oIiAy
CiMgOTMgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NobS5oIgpzdHJ1Y3Qgc2htaW5mbyB7CiBpbnQg
c2htbWF4OwogaW50IHNobW1pbjsKIGludCBzaG1tbmk7CiBpbnQgc2htc2VnOwogaW50IHNobWFs
bDsKfTsKCnN0cnVjdCBzaG1faW5mbyB7CiBpbnQgdXNlZF9pZHM7CiBfX2tlcm5lbF91bG9uZ190
IHNobV90b3Q7CiBfX2tlcm5lbF91bG9uZ190IHNobV9yc3M7CiBfX2tlcm5lbF91bG9uZ190IHNo
bV9zd3A7CiBfX2tlcm5lbF91bG9uZ190IHN3YXBfYXR0ZW1wdHM7CiBfX2tlcm5lbF91bG9uZ190
IHN3YXBfc3VjY2Vzc2VzOwp9OwojIDggIi4vaW5jbHVkZS9saW51eC9zaG0uaCIgMgojIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vc2htcGFyYW0uaCIgMQojIDkgIi4vaW5jbHVkZS9saW51eC9z
aG0uaCIgMgoKc3RydWN0IGZpbGU7CgoKc3RydWN0IHN5c3Zfc2htIHsKIHN0cnVjdCBsaXN0X2hl
YWQgc2htX2NsaXN0Owp9OwoKbG9uZyBkb19zaG1hdChpbnQgc2htaWQsIGNoYXIgKnNobWFkZHIs
IGludCBzaG1mbGcsIHVuc2lnbmVkIGxvbmcgKmFkZHIsCiAgICAgICB1bnNpZ25lZCBsb25nIHNo
bWxiYSk7CmJvb2wgaXNfZmlsZV9zaG1faHVnZXBhZ2VzKHN0cnVjdCBmaWxlICpmaWxlKTsKdm9p
ZCBleGl0X3NobShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwojIDE3ICIuL2luY2x1ZGUvbGlu
dXgvc2NoZWQuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9rY292LmgiIDEKCgoKCiMgMSAiLi9p
bmNsdWRlL3VhcGkvbGludXgva2Nvdi5oIiAxCiMgMTEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2tj
b3YuaCIKc3RydWN0IGtjb3ZfcmVtb3RlX2FyZyB7CiBfX3UzMiB0cmFjZV9tb2RlOwogX191MzIg
YXJlYV9zaXplOwogX191MzIgbnVtX2hhbmRsZXM7CiBfX3U2NCBfX2F0dHJpYnV0ZV9fKChhbGln
bmVkKDgpKSkgY29tbW9uX2hhbmRsZTsKIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkp
KSBoYW5kbGVzWzBdOwp9OwojIDI2ICIuL2luY2x1ZGUvdWFwaS9saW51eC9rY292LmgiCmVudW0g
ewojIDM1ICIuL2luY2x1ZGUvdWFwaS9saW51eC9rY292LmgiCiBLQ09WX1RSQUNFX1BDID0gMCwK
CiBLQ09WX1RSQUNFX0NNUCA9IDEsCn07CiMgNTYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2tjb3Yu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX191NjQga2Nvdl9yZW1vdGVfaGFuZGxlKF9fdTY0IHN1YnN5cywgX191NjQgaW5zdCkKewog
aWYgKHN1YnN5cyAmIH4oMHhmZnVsbCA8PCA1NikgfHwgaW5zdCAmIH4oMHhmZmZmZmZmZnVsbCkp
CiAgcmV0dXJuIDA7CiByZXR1cm4gc3Vic3lzIHwgaW5zdDsKfQojIDYgIi4vaW5jbHVkZS9saW51
eC9rY292LmgiIDIKCnN0cnVjdCB0YXNrX3N0cnVjdDsKIyA1NyAiLi9pbmNsdWRlL2xpbnV4L2tj
b3YuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBrY292X3Rhc2tfaW5pdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpIHt9CnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
a2Nvdl90YXNrX2V4aXQoc3RydWN0IHRhc2tfc3RydWN0ICp0KSB7fQpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGtjb3ZfcHJlcGFy
ZV9zd2l0Y2goc3RydWN0IHRhc2tfc3RydWN0ICp0KSB7fQpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGtjb3ZfZmluaXNoX3N3aXRj
aChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpIHt9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2Nvdl9yZW1vdGVfc3RhcnQodTY0IGhh
bmRsZSkge30Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBrY292X3JlbW90ZV9zdG9wKHZvaWQpIHt9CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrY292X2NvbW1vbl9o
YW5kbGUodm9pZCkKewogcmV0dXJuIDA7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrY292X3JlbW90ZV9zdGFydF9jb21tb24o
dTY0IGlkKSB7fQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGtjb3ZfcmVtb3RlX3N0YXJ0X3VzYih1NjQgaWQpIHt9CiMgMTggIi4v
aW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCgojIDEgIi4vaW5jbHVkZS9saW51eC9wbGlzdC5oIiAx
CiMgNzkgIi4vaW5jbHVkZS9saW51eC9wbGlzdC5oIgpzdHJ1Y3QgcGxpc3RfaGVhZCB7CiBzdHJ1
Y3QgbGlzdF9oZWFkIG5vZGVfbGlzdDsKfTsKCnN0cnVjdCBwbGlzdF9ub2RlIHsKIGludCBwcmlv
Owogc3RydWN0IGxpc3RfaGVhZCBwcmlvX2xpc3Q7CiBzdHJ1Y3QgbGlzdF9oZWFkIG5vZGVfbGlz
dDsKfTsKIyAxMjEgIi4vaW5jbHVkZS9saW51eC9wbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCnBsaXN0X2hlYWRfaW5p
dChzdHJ1Y3QgcGxpc3RfaGVhZCAqaGVhZCkKewogSU5JVF9MSVNUX0hFQUQoJmhlYWQtPm5vZGVf
bGlzdCk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBwbGlzdF9ub2RlX2luaXQoc3RydWN0IHBsaXN0X25vZGUgKm5v
ZGUsIGludCBwcmlvKQp7CiBub2RlLT5wcmlvID0gcHJpbzsKIElOSVRfTElTVF9IRUFEKCZub2Rl
LT5wcmlvX2xpc3QpOwogSU5JVF9MSVNUX0hFQUQoJm5vZGUtPm5vZGVfbGlzdCk7Cn0KCmV4dGVy
biB2b2lkIHBsaXN0X2FkZChzdHJ1Y3QgcGxpc3Rfbm9kZSAqbm9kZSwgc3RydWN0IHBsaXN0X2hl
YWQgKmhlYWQpOwpleHRlcm4gdm9pZCBwbGlzdF9kZWwoc3RydWN0IHBsaXN0X25vZGUgKm5vZGUs
IHN0cnVjdCBwbGlzdF9oZWFkICpoZWFkKTsKCmV4dGVybiB2b2lkIHBsaXN0X3JlcXVldWUoc3Ry
dWN0IHBsaXN0X25vZGUgKm5vZGUsIHN0cnVjdCBwbGlzdF9oZWFkICpoZWFkKTsKIyAyMTAgIi4v
aW5jbHVkZS9saW51eC9wbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGxpc3RfaGVhZF9lbXB0eShjb25zdCBzdHJ1Y3Qg
cGxpc3RfaGVhZCAqaGVhZCkKewogcmV0dXJuIGxpc3RfZW1wdHkoJmhlYWQtPm5vZGVfbGlzdCk7
Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgcGxpc3Rfbm9kZV9lbXB0eShjb25zdCBzdHJ1Y3QgcGxpc3Rfbm9kZSAqbm9k
ZSkKewogcmV0dXJuIGxpc3RfZW1wdHkoJm5vZGUtPm5vZGVfbGlzdCk7Cn0KIyAyODAgIi4vaW5j
bHVkZS9saW51eC9wbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgcGxpc3Rfbm9kZSAqcGxpc3RfZmlyc3QoY29uc3Qg
c3RydWN0IHBsaXN0X2hlYWQgKmhlYWQpCnsKIHJldHVybiAoeyB2b2lkICpfX21wdHIgPSAodm9p
ZCAqKShoZWFkLT5ub2RlX2xpc3QubmV4dCk7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGlt
ZV9hc3NlcnRfMjgyKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9pbnRlciB0eXBl
IG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWlsdGluX3R5cGVz
X2NvbXBhdGlibGVfcCh0eXBlb2YoKihoZWFkLT5ub2RlX2xpc3QubmV4dCkpLCB0eXBlb2YoKChz
dHJ1Y3QgcGxpc3Rfbm9kZSAqKTApLT5ub2RlX2xpc3QpKSAmJiAhX19idWlsdGluX3R5cGVzX2Nv
bXBhdGlibGVfcCh0eXBlb2YoKihoZWFkLT5ub2RlX2xpc3QubmV4dCkpLCB0eXBlb2Yodm9pZCkp
KSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzI4MigpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgcGxp
c3Rfbm9kZSAqKShfX21wdHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBsaXN0X25vZGUs
IG5vZGVfbGlzdCkpKTsgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoK
CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgc3RydWN0IHBsaXN0X25vZGUgKnBsaXN0X2xhc3QoY29uc3Qgc3RydWN0IHBsaXN0X2hl
YWQgKmhlYWQpCnsKIHJldHVybiAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKShoZWFkLT5ub2Rl
X2xpc3QucHJldik7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMjk0KHZv
aWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNv
bnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0
eXBlb2YoKihoZWFkLT5ub2RlX2xpc3QucHJldikpLCB0eXBlb2YoKChzdHJ1Y3QgcGxpc3Rfbm9k
ZSAqKTApLT5ub2RlX2xpc3QpKSAmJiAhX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBl
b2YoKihoZWFkLT5ub2RlX2xpc3QucHJldikpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29tcGlsZXRp
bWVfYXNzZXJ0XzI5NCgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgcGxpc3Rfbm9kZSAqKShfX21w
dHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBsaXN0X25vZGUsIG5vZGVfbGlzdCkpKTsg
fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQojIDIwICIuL2luY2x1ZGUv
bGludXgvc2NoZWQuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9ocnRpbWVyLmgiIDEKIyAxNSAi
Li9pbmNsdWRlL2xpbnV4L2hydGltZXIuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvaHJ0aW1lcl9k
ZWZzLmgiIDEKIyAxNiAiLi9pbmNsdWRlL2xpbnV4L2hydGltZXIuaCIgMgoKCgoKCiMgMSAiLi9p
bmNsdWRlL2xpbnV4L3RpbWVycXVldWUuaCIgMQojIDkgIi4vaW5jbHVkZS9saW51eC90aW1lcnF1
ZXVlLmgiCnN0cnVjdCB0aW1lcnF1ZXVlX25vZGUgewogc3RydWN0IHJiX25vZGUgbm9kZTsKIGt0
aW1lX3QgZXhwaXJlczsKfTsKCnN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgewogc3RydWN0IHJiX3Jv
b3RfY2FjaGVkIHJiX3Jvb3Q7Cn07CgoKZXh0ZXJuIGJvb2wgdGltZXJxdWV1ZV9hZGQoc3RydWN0
IHRpbWVycXVldWVfaGVhZCAqaGVhZCwKICAgICAgc3RydWN0IHRpbWVycXVldWVfbm9kZSAqbm9k
ZSk7CmV4dGVybiBib29sIHRpbWVycXVldWVfZGVsKHN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgKmhl
YWQsCiAgICAgIHN0cnVjdCB0aW1lcnF1ZXVlX25vZGUgKm5vZGUpOwpleHRlcm4gc3RydWN0IHRp
bWVycXVldWVfbm9kZSAqdGltZXJxdWV1ZV9pdGVyYXRlX25leHQoCiAgICAgIHN0cnVjdCB0aW1l
cnF1ZXVlX25vZGUgKm5vZGUpOwojIDMzICIuL2luY2x1ZGUvbGludXgvdGltZXJxdWV1ZS5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQpz
dHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICp0aW1lcnF1ZXVlX2dldG5leHQoc3RydWN0IHRpbWVycXVl
dWVfaGVhZCAqaGVhZCkKewogc3RydWN0IHJiX25vZGUgKmxlZnRtb3N0ID0gKCZoZWFkLT5yYl9y
b290KS0+cmJfbGVmdG1vc3Q7CgogcmV0dXJuICh7IHZvaWQgKl9fbXB0ciA9ICh2b2lkICopKGxl
ZnRtb3N0KTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8zOCh2b2lkKSBf
X2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWlu
ZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9m
KCoobGVmdG1vc3QpKSwgdHlwZW9mKCgoc3RydWN0IHRpbWVycXVldWVfbm9kZSAqKTApLT5ub2Rl
KSkgJiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCoobGVmdG1vc3QpKSwg
dHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF8zOCgpOyB9IHdoaWxlICgwKTsg
KChzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICopKF9fbXB0ciAtIF9fYnVpbHRpbl9vZmZzZXRvZihz
dHJ1Y3QgdGltZXJxdWV1ZV9ub2RlLCBub2RlKSkpOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0aW1lcnF1ZXVlX2lu
aXQoc3RydWN0IHRpbWVycXVldWVfbm9kZSAqbm9kZSkKewogKCgmbm9kZS0+bm9kZSktPl9fcmJf
cGFyZW50X2NvbG9yID0gKHVuc2lnbmVkIGxvbmcpKCZub2RlLT5ub2RlKSk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGlt
ZXJxdWV1ZV9ub2RlX3F1ZXVlZChzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICpub2RlKQp7CiByZXR1
cm4gISgoJm5vZGUtPm5vZGUpLT5fX3JiX3BhcmVudF9jb2xvciA9PSAodW5zaWduZWQgbG9uZyko
Jm5vZGUtPm5vZGUpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0aW1lcnF1ZXVlX25vZGVfZXhwaXJlcyhzdHJ1Y3QgdGlt
ZXJxdWV1ZV9ub2RlICpub2RlKQp7CiByZXR1cm4gbm9kZS0+ZXhwaXJlczsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0aW1l
cnF1ZXVlX2luaXRfaGVhZChzdHJ1Y3QgdGltZXJxdWV1ZV9oZWFkICpoZWFkKQp7CiBoZWFkLT5y
Yl9yb290ID0gKHN0cnVjdCByYl9yb290X2NhY2hlZCkgeyB7KCh2b2lkICopMCksIH0sICgodm9p
ZCAqKTApIH07Cn0KIyAyMiAiLi9pbmNsdWRlL2xpbnV4L2hydGltZXIuaCIgMgoKc3RydWN0IGhy
dGltZXJfY2xvY2tfYmFzZTsKc3RydWN0IGhydGltZXJfY3B1X2Jhc2U7CiMgMzggIi4vaW5jbHVk
ZS9saW51eC9ocnRpbWVyLmgiCmVudW0gaHJ0aW1lcl9tb2RlIHsKIEhSVElNRVJfTU9ERV9BQlMg
PSAweDAwLAogSFJUSU1FUl9NT0RFX1JFTCA9IDB4MDEsCiBIUlRJTUVSX01PREVfUElOTkVEID0g
MHgwMiwKIEhSVElNRVJfTU9ERV9TT0ZUID0gMHgwNCwKIEhSVElNRVJfTU9ERV9IQVJEID0gMHgw
OCwKCiBIUlRJTUVSX01PREVfQUJTX1BJTk5FRCA9IEhSVElNRVJfTU9ERV9BQlMgfCBIUlRJTUVS
X01PREVfUElOTkVELAogSFJUSU1FUl9NT0RFX1JFTF9QSU5ORUQgPSBIUlRJTUVSX01PREVfUkVM
IHwgSFJUSU1FUl9NT0RFX1BJTk5FRCwKCiBIUlRJTUVSX01PREVfQUJTX1NPRlQgPSBIUlRJTUVS
X01PREVfQUJTIHwgSFJUSU1FUl9NT0RFX1NPRlQsCiBIUlRJTUVSX01PREVfUkVMX1NPRlQgPSBI
UlRJTUVSX01PREVfUkVMIHwgSFJUSU1FUl9NT0RFX1NPRlQsCgogSFJUSU1FUl9NT0RFX0FCU19Q
SU5ORURfU09GVCA9IEhSVElNRVJfTU9ERV9BQlNfUElOTkVEIHwgSFJUSU1FUl9NT0RFX1NPRlQs
CiBIUlRJTUVSX01PREVfUkVMX1BJTk5FRF9TT0ZUID0gSFJUSU1FUl9NT0RFX1JFTF9QSU5ORUQg
fCBIUlRJTUVSX01PREVfU09GVCwKCiBIUlRJTUVSX01PREVfQUJTX0hBUkQgPSBIUlRJTUVSX01P
REVfQUJTIHwgSFJUSU1FUl9NT0RFX0hBUkQsCiBIUlRJTUVSX01PREVfUkVMX0hBUkQgPSBIUlRJ
TUVSX01PREVfUkVMIHwgSFJUSU1FUl9NT0RFX0hBUkQsCgogSFJUSU1FUl9NT0RFX0FCU19QSU5O
RURfSEFSRCA9IEhSVElNRVJfTU9ERV9BQlNfUElOTkVEIHwgSFJUSU1FUl9NT0RFX0hBUkQsCiBI
UlRJTUVSX01PREVfUkVMX1BJTk5FRF9IQVJEID0gSFJUSU1FUl9NT0RFX1JFTF9QSU5ORUQgfCBI
UlRJTUVSX01PREVfSEFSRCwKfTsKCgoKCmVudW0gaHJ0aW1lcl9yZXN0YXJ0IHsKIEhSVElNRVJf
Tk9SRVNUQVJULAogSFJUSU1FUl9SRVNUQVJULAp9OwojIDExNyAiLi9pbmNsdWRlL2xpbnV4L2hy
dGltZXIuaCIKc3RydWN0IGhydGltZXIgewogc3RydWN0IHRpbWVycXVldWVfbm9kZSBub2RlOwog
a3RpbWVfdCBfc29mdGV4cGlyZXM7CiBlbnVtIGhydGltZXJfcmVzdGFydCAoKmZ1bmN0aW9uKShz
dHJ1Y3QgaHJ0aW1lciAqKTsKIHN0cnVjdCBocnRpbWVyX2Nsb2NrX2Jhc2UgKmJhc2U7CiB1OCBz
dGF0ZTsKIHU4IGlzX3JlbDsKIHU4IGlzX3NvZnQ7CiB1OCBpc19oYXJkOwp9OwojIDEzNSAiLi9p
bmNsdWRlL2xpbnV4L2hydGltZXIuaCIKc3RydWN0IGhydGltZXJfc2xlZXBlciB7CiBzdHJ1Y3Qg
aHJ0aW1lciB0aW1lcjsKIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKfTsKIyAxNTggIi4vaW5j
bHVkZS9saW51eC9ocnRpbWVyLmgiCnN0cnVjdCBocnRpbWVyX2Nsb2NrX2Jhc2Ugewogc3RydWN0
IGhydGltZXJfY3B1X2Jhc2UgKmNwdV9iYXNlOwogdW5zaWduZWQgaW50IGluZGV4OwogY2xvY2tp
ZF90IGNsb2NraWQ7CiBzZXFjb3VudF90IHNlcTsKIHN0cnVjdCBocnRpbWVyICpydW5uaW5nOwog
c3RydWN0IHRpbWVycXVldWVfaGVhZCBhY3RpdmU7CiBrdGltZV90ICgqZ2V0X3RpbWUpKHZvaWQp
Owoga3RpbWVfdCBvZmZzZXQ7Cn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYp
KSkpKTsKCmVudW0gaHJ0aW1lcl9iYXNlX3R5cGUgewogSFJUSU1FUl9CQVNFX01PTk9UT05JQywK
IEhSVElNRVJfQkFTRV9SRUFMVElNRSwKIEhSVElNRVJfQkFTRV9CT09UVElNRSwKIEhSVElNRVJf
QkFTRV9UQUksCiBIUlRJTUVSX0JBU0VfTU9OT1RPTklDX1NPRlQsCiBIUlRJTUVSX0JBU0VfUkVB
TFRJTUVfU09GVCwKIEhSVElNRVJfQkFTRV9CT09UVElNRV9TT0ZULAogSFJUSU1FUl9CQVNFX1RB
SV9TT0ZULAogSFJUSU1FUl9NQVhfQ0xPQ0tfQkFTRVMsCn07CiMgMjEzICIuL2luY2x1ZGUvbGlu
dXgvaHJ0aW1lci5oIgpzdHJ1Y3QgaHJ0aW1lcl9jcHVfYmFzZSB7CiByYXdfc3BpbmxvY2tfdCBs
b2NrOwogdW5zaWduZWQgaW50IGNwdTsKIHVuc2lnbmVkIGludCBhY3RpdmVfYmFzZXM7CiB1bnNp
Z25lZCBpbnQgY2xvY2tfd2FzX3NldF9zZXE7CiB1bnNpZ25lZCBpbnQgaHJlc19hY3RpdmUgOiAx
LAogICAgIGluX2hydGlycSA6IDEsCiAgICAgaGFuZ19kZXRlY3RlZCA6IDEsCiAgICAgc29mdGly
cV9hY3RpdmF0ZWQgOiAxOwoKIHVuc2lnbmVkIGludCBucl9ldmVudHM7CiB1bnNpZ25lZCBzaG9y
dCBucl9yZXRyaWVzOwogdW5zaWduZWQgc2hvcnQgbnJfaGFuZ3M7CiB1bnNpZ25lZCBpbnQgbWF4
X2hhbmdfdGltZTsKCgoKCgoga3RpbWVfdCBleHBpcmVzX25leHQ7CiBzdHJ1Y3QgaHJ0aW1lciAq
bmV4dF90aW1lcjsKIGt0aW1lX3Qgc29mdGlycV9leHBpcmVzX25leHQ7CiBzdHJ1Y3QgaHJ0aW1l
ciAqc29mdGlycV9uZXh0X3RpbWVyOwogc3RydWN0IGhydGltZXJfY2xvY2tfYmFzZSBjbG9ja19i
YXNlW0hSVElNRVJfTUFYX0NMT0NLX0JBU0VTXTsKfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRf
XygoMSA8PCAoNikpKSkpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBocnRpbWVyX3NldF9leHBpcmVzKHN0cnVjdCBocnRpbWVy
ICp0aW1lciwga3RpbWVfdCB0aW1lKQp7CiB0aW1lci0+bm9kZS5leHBpcmVzID0gdGltZTsKIHRp
bWVyLT5fc29mdGV4cGlyZXMgPSB0aW1lOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJfc2V0X2V4cGlyZXNfcmFu
Z2Uoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IHRpbWUsIGt0aW1lX3QgZGVsdGEpCnsK
IHRpbWVyLT5fc29mdGV4cGlyZXMgPSB0aW1lOwogdGltZXItPm5vZGUuZXhwaXJlcyA9IGt0aW1l
X2FkZF9zYWZlKHRpbWUsIGRlbHRhKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBocnRpbWVyX3NldF9leHBpcmVzX3Jhbmdl
X25zKHN0cnVjdCBocnRpbWVyICp0aW1lciwga3RpbWVfdCB0aW1lLCB1NjQgZGVsdGEpCnsKIHRp
bWVyLT5fc29mdGV4cGlyZXMgPSB0aW1lOwogdGltZXItPm5vZGUuZXhwaXJlcyA9IGt0aW1lX2Fk
ZF9zYWZlKHRpbWUsIG5zX3RvX2t0aW1lKGRlbHRhKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0aW1lcl9zZXRfZXhw
aXJlc190djY0KHN0cnVjdCBocnRpbWVyICp0aW1lciwgczY0IHR2NjQpCnsKIHRpbWVyLT5ub2Rl
LmV4cGlyZXMgPSB0djY0OwogdGltZXItPl9zb2Z0ZXhwaXJlcyA9IHR2NjQ7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0
aW1lcl9hZGRfZXhwaXJlcyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsIGt0aW1lX3QgdGltZSkKewog
dGltZXItPm5vZGUuZXhwaXJlcyA9IGt0aW1lX2FkZF9zYWZlKHRpbWVyLT5ub2RlLmV4cGlyZXMs
IHRpbWUpOwogdGltZXItPl9zb2Z0ZXhwaXJlcyA9IGt0aW1lX2FkZF9zYWZlKHRpbWVyLT5fc29m
dGV4cGlyZXMsIHRpbWUpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJfYWRkX2V4cGlyZXNfbnMoc3RydWN0IGhy
dGltZXIgKnRpbWVyLCB1NjQgbnMpCnsKIHRpbWVyLT5ub2RlLmV4cGlyZXMgPSAoKHRpbWVyLT5u
b2RlLmV4cGlyZXMpICsgKG5zKSk7CiB0aW1lci0+X3NvZnRleHBpcmVzID0gKCh0aW1lci0+X3Nv
ZnRleHBpcmVzKSArIChucykpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGhydGltZXJfZ2V0X2V4cGlyZXMoY29uc3Qg
c3RydWN0IGhydGltZXIgKnRpbWVyKQp7CiByZXR1cm4gdGltZXItPm5vZGUuZXhwaXJlczsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
a3RpbWVfdCBocnRpbWVyX2dldF9zb2Z0ZXhwaXJlcyhjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGlt
ZXIpCnsKIHJldHVybiB0aW1lci0+X3NvZnRleHBpcmVzOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgaHJ0aW1lcl9nZXRfZXhw
aXJlc190djY0KGNvbnN0IHN0cnVjdCBocnRpbWVyICp0aW1lcikKewogcmV0dXJuIHRpbWVyLT5u
b2RlLmV4cGlyZXM7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgczY0IGhydGltZXJfZ2V0X3NvZnRleHBpcmVzX3R2NjQoY29uc3Qgc3Ry
dWN0IGhydGltZXIgKnRpbWVyKQp7CiByZXR1cm4gdGltZXItPl9zb2Z0ZXhwaXJlczsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0
IGhydGltZXJfZ2V0X2V4cGlyZXNfbnMoY29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyKQp7CiBy
ZXR1cm4ga3RpbWVfdG9fbnModGltZXItPm5vZGUuZXhwaXJlcyk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QgaHJ0aW1l
cl9leHBpcmVzX3JlbWFpbmluZyhjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCnsKIHJldHVy
biAoKHRpbWVyLT5ub2RlLmV4cGlyZXMpIC0gKHRpbWVyLT5iYXNlLT5nZXRfdGltZSgpKSk7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGt0aW1lX3QgaHJ0aW1lcl9jYl9nZXRfdGltZShzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCnsKIHJl
dHVybiB0aW1lci0+YmFzZS0+Z2V0X3RpbWUoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGhydGltZXJfaXNfaHJlc19hY3Rp
dmUoc3RydWN0IGhydGltZXIgKnRpbWVyKQp7CiByZXR1cm4gMSA/CiAgdGltZXItPmJhc2UtPmNw
dV9iYXNlLT5ocmVzX2FjdGl2ZSA6IDA7Cn0KCgpzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlOwoK
ZXh0ZXJuIHZvaWQgaHJ0aW1lcl9pbnRlcnJ1cHQoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAq
ZGV2KTsKCmV4dGVybiB2b2lkIGNsb2NrX3dhc19zZXRfZGVsYXllZCh2b2lkKTsKCmV4dGVybiB1
bnNpZ25lZCBpbnQgaHJ0aW1lcl9yZXNvbHV0aW9uOwojIDMzMiAiLi9pbmNsdWRlL2xpbnV4L2hy
dGltZXIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkga3RpbWVfdApfX2hydGltZXJfZXhwaXJlc19yZW1haW5pbmdfYWRqdXN0ZWQoY29u
c3Qgc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IG5vdykKewoga3RpbWVfdCByZW0gPSAo
KHRpbWVyLT5ub2RlLmV4cGlyZXMpIC0gKG5vdykpOwoKCgoKCiBpZiAoMCAmJiB0aW1lci0+aXNf
cmVsKQogIHJlbSAtPSBocnRpbWVyX3Jlc29sdXRpb247CiByZXR1cm4gcmVtOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90
CmhydGltZXJfZXhwaXJlc19yZW1haW5pbmdfYWRqdXN0ZWQoY29uc3Qgc3RydWN0IGhydGltZXIg
KnRpbWVyKQp7CiByZXR1cm4gX19ocnRpbWVyX2V4cGlyZXNfcmVtYWluaW5nX2FkanVzdGVkKHRp
bWVyLAogICAgICAgICAgdGltZXItPmJhc2UtPmdldF90aW1lKCkpOwp9CgpleHRlcm4gdm9pZCBj
bG9ja193YXNfc2V0KHZvaWQpOwoKZXh0ZXJuIHZvaWQgdGltZXJmZF9jbG9ja193YXNfc2V0KHZv
aWQpOwoKCgpleHRlcm4gdm9pZCBocnRpbWVyc19yZXN1bWUodm9pZCk7CgpleHRlcm4gX19hdHRy
aWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIiIpKSkgX190eXBlb2ZfXyhzdHJ1Y3Qg
dGlja19kZXZpY2UpIHRpY2tfY3B1X2RldmljZTsKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0aW1lcl9jYW5jZWxfd2Fp
dF9ydW5uaW5nKHN0cnVjdCBocnRpbWVyICp0aW1lcikKewogY3B1X3JlbGF4KCk7Cn0KCgoKCgpl
eHRlcm4gdm9pZCBocnRpbWVyX2luaXQoc3RydWN0IGhydGltZXIgKnRpbWVyLCBjbG9ja2lkX3Qg
d2hpY2hfY2xvY2ssCiAgICBlbnVtIGhydGltZXJfbW9kZSBtb2RlKTsKZXh0ZXJuIHZvaWQgaHJ0
aW1lcl9pbml0X3NsZWVwZXIoc3RydWN0IGhydGltZXJfc2xlZXBlciAqc2wsIGNsb2NraWRfdCBj
bG9ja19pZCwKICAgICBlbnVtIGhydGltZXJfbW9kZSBtb2RlKTsKIyAzODkgIi4vaW5jbHVkZS9s
aW51eC9ocnRpbWVyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0aW1lcl9pbml0X29uX3N0YWNrKHN0cnVjdCBocnRpbWVy
ICp0aW1lciwKICAgICAgY2xvY2tpZF90IHdoaWNoX2Nsb2NrLAogICAgICBlbnVtIGhydGltZXJf
bW9kZSBtb2RlKQp7CiBocnRpbWVyX2luaXQodGltZXIsIHdoaWNoX2Nsb2NrLCBtb2RlKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBocnRpbWVyX2luaXRfc2xlZXBlcl9vbl9zdGFjayhzdHJ1Y3QgaHJ0aW1lcl9zbGVlcGVy
ICpzbCwKICAgICAgIGNsb2NraWRfdCBjbG9ja19pZCwKICAgICAgIGVudW0gaHJ0aW1lcl9tb2Rl
IG1vZGUpCnsKIGhydGltZXJfaW5pdF9zbGVlcGVyKHNsLCBjbG9ja19pZCwgbW9kZSk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgZGVzdHJveV9ocnRpbWVyX29uX3N0YWNrKHN0cnVjdCBocnRpbWVyICp0aW1lcikgeyB9CgoK
CmV4dGVybiB2b2lkIGhydGltZXJfc3RhcnRfcmFuZ2VfbnMoc3RydWN0IGhydGltZXIgKnRpbWVy
LCBrdGltZV90IHRpbSwKICAgICAgIHU2NCByYW5nZV9ucywgY29uc3QgZW51bSBocnRpbWVyX21v
ZGUgbW9kZSk7CiMgNDE4ICIuL2luY2x1ZGUvbGludXgvaHJ0aW1lci5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJf
c3RhcnQoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IHRpbSwKICAgICBjb25zdCBlbnVt
IGhydGltZXJfbW9kZSBtb2RlKQp7CiBocnRpbWVyX3N0YXJ0X3JhbmdlX25zKHRpbWVyLCB0aW0s
IDAsIG1vZGUpOwp9CgpleHRlcm4gaW50IGhydGltZXJfY2FuY2VsKHN0cnVjdCBocnRpbWVyICp0
aW1lcik7CmV4dGVybiBpbnQgaHJ0aW1lcl90cnlfdG9fY2FuY2VsKHN0cnVjdCBocnRpbWVyICp0
aW1lcik7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGhydGltZXJfc3RhcnRfZXhwaXJlcyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIs
CiAgICAgIGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpCnsKIHU2NCBkZWx0YTsKIGt0aW1lX3Qgc29m
dCwgaGFyZDsKIHNvZnQgPSBocnRpbWVyX2dldF9zb2Z0ZXhwaXJlcyh0aW1lcik7CiBoYXJkID0g
aHJ0aW1lcl9nZXRfZXhwaXJlcyh0aW1lcik7CiBkZWx0YSA9IGt0aW1lX3RvX25zKCgoaGFyZCkg
LSAoc29mdCkpKTsKIGhydGltZXJfc3RhcnRfcmFuZ2VfbnModGltZXIsIHNvZnQsIGRlbHRhLCBt
b2RlKTsKfQoKdm9pZCBocnRpbWVyX3NsZWVwZXJfc3RhcnRfZXhwaXJlcyhzdHJ1Y3QgaHJ0aW1l
cl9zbGVlcGVyICpzbCwKICAgICAgIGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpOwoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBocnRp
bWVyX3Jlc3RhcnQoc3RydWN0IGhydGltZXIgKnRpbWVyKQp7CiBocnRpbWVyX3N0YXJ0X2V4cGly
ZXModGltZXIsIEhSVElNRVJfTU9ERV9BQlMpOwp9CgoKZXh0ZXJuIGt0aW1lX3QgX19ocnRpbWVy
X2dldF9yZW1haW5pbmcoY29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyLCBib29sIGFkanVzdCk7
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBrdGltZV90IGhydGltZXJfZ2V0X3JlbWFpbmluZyhjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGlt
ZXIpCnsKIHJldHVybiBfX2hydGltZXJfZ2V0X3JlbWFpbmluZyh0aW1lciwgZmFsc2UpOwp9Cgpl
eHRlcm4gdTY0IGhydGltZXJfZ2V0X25leHRfZXZlbnQodm9pZCk7CmV4dGVybiB1NjQgaHJ0aW1l
cl9uZXh0X2V2ZW50X3dpdGhvdXQoY29uc3Qgc3RydWN0IGhydGltZXIgKmV4Y2x1ZGUpOwoKZXh0
ZXJuIGJvb2wgaHJ0aW1lcl9hY3RpdmUoY29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyKTsKIyA0
NjcgIi4vaW5jbHVkZS9saW51eC9ocnRpbWVyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaHJ0aW1lcl9pc19xdWV1ZWQoc3Ry
dWN0IGhydGltZXIgKnRpbWVyKQp7CgogcmV0dXJuICEhKCh7IHVuaW9uIHsgdHlwZW9mKHRpbWVy
LT5zdGF0ZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3Np
emUoJih0aW1lci0+c3RhdGUpLCBfX3UuX19jLCBzaXplb2YodGltZXItPnN0YXRlKSk7IGVsc2Ug
X19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYodGltZXItPnN0YXRlKSwgX191Ll9fYywgc2l6ZW9m
KHRpbWVyLT5zdGF0ZSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pICYgMHgwMSk7
Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgaHJ0aW1lcl9jYWxsYmFja19ydW5uaW5nKHN0cnVjdCBocnRpbWVyICp0aW1l
cikKewogcmV0dXJuIHRpbWVyLT5iYXNlLT5ydW5uaW5nID09IHRpbWVyOwp9CgoKZXh0ZXJuIHU2
NApocnRpbWVyX2ZvcndhcmQoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IG5vdywga3Rp
bWVfdCBpbnRlcnZhbCk7CiMgNTAyICIuL2luY2x1ZGUvbGludXgvaHJ0aW1lci5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgaHJ0
aW1lcl9mb3J3YXJkX25vdyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsCiAgICAgICAgICBrdGltZV90
IGludGVydmFsKQp7CiByZXR1cm4gaHJ0aW1lcl9mb3J3YXJkKHRpbWVyLCB0aW1lci0+YmFzZS0+
Z2V0X3RpbWUoKSwgaW50ZXJ2YWwpOwp9CgoKCmV4dGVybiBpbnQgbmFub3NsZWVwX2NvcHlvdXQo
c3RydWN0IHJlc3RhcnRfYmxvY2sgKiwgc3RydWN0IHRpbWVzcGVjNjQgKik7CmV4dGVybiBsb25n
IGhydGltZXJfbmFub3NsZWVwKGt0aW1lX3QgcnF0cCwgY29uc3QgZW51bSBocnRpbWVyX21vZGUg
bW9kZSwKICAgICAgICAgY29uc3QgY2xvY2tpZF90IGNsb2NraWQpOwoKZXh0ZXJuIGludCBzY2hl
ZHVsZV9ocnRpbWVvdXRfcmFuZ2Uoa3RpbWVfdCAqZXhwaXJlcywgdTY0IGRlbHRhLAogICAgICAg
IGNvbnN0IGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpOwpleHRlcm4gaW50IHNjaGVkdWxlX2hydGlt
ZW91dF9yYW5nZV9jbG9jayhrdGltZV90ICpleHBpcmVzLAogICAgICAgdTY0IGRlbHRhLAogICAg
ICAgY29uc3QgZW51bSBocnRpbWVyX21vZGUgbW9kZSwKICAgICAgIGNsb2NraWRfdCBjbG9ja19p
ZCk7CmV4dGVybiBpbnQgc2NoZWR1bGVfaHJ0aW1lb3V0KGt0aW1lX3QgKmV4cGlyZXMsIGNvbnN0
IGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpOwoKCmV4dGVybiB2b2lkIGhydGltZXJfcnVuX3F1ZXVl
cyh2b2lkKTsKCgpleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQu
dGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBocnRpbWVyc19pbml0KHZvaWQpOwoK
CmV4dGVybiB2b2lkIHN5c3JxX3RpbWVyX2xpc3Rfc2hvdyh2b2lkKTsKCmludCBocnRpbWVyc19w
cmVwYXJlX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKCmludCBocnRpbWVyc19kZWFkX2NwdSh1bnNp
Z25lZCBpbnQgY3B1KTsKIyAyMSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIuL2lu
Y2x1ZGUvbGludXgvc2VjY29tcC5oIiAxCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3Nl
Y2NvbXAuaCIgMQojIDU5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zZWNjb21wLmgiCnN0cnVjdCBz
ZWNjb21wX2RhdGEgewogaW50IG5yOwogX191MzIgYXJjaDsKIF9fdTY0IGluc3RydWN0aW9uX3Bv
aW50ZXI7CiBfX3U2NCBhcmdzWzZdOwp9OwoKc3RydWN0IHNlY2NvbXBfbm90aWZfc2l6ZXMgewog
X191MTYgc2VjY29tcF9ub3RpZjsKIF9fdTE2IHNlY2NvbXBfbm90aWZfcmVzcDsKIF9fdTE2IHNl
Y2NvbXBfZGF0YTsKfTsKCnN0cnVjdCBzZWNjb21wX25vdGlmIHsKIF9fdTY0IGlkOwogX191MzIg
cGlkOwogX191MzIgZmxhZ3M7CiBzdHJ1Y3Qgc2VjY29tcF9kYXRhIGRhdGE7Cn07CiMgMTA4ICIu
L2luY2x1ZGUvdWFwaS9saW51eC9zZWNjb21wLmgiCnN0cnVjdCBzZWNjb21wX25vdGlmX3Jlc3Ag
ewogX191NjQgaWQ7CiBfX3M2NCB2YWw7CiBfX3MzMiBlcnJvcjsKIF9fdTMyIGZsYWdzOwp9Owoj
IDYgIi4vaW5jbHVkZS9saW51eC9zZWNjb21wLmgiIDIKIyAxNSAiLi9pbmNsdWRlL2xpbnV4L3Nl
Y2NvbXAuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NlY2NvbXAuaCIgMQoKCgoKIyAx
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3VuaXN0ZC5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS91bmlzdGQuaCIgMQojIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
dW5pc3RkLmgiIDIKIyAxOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS91bmlzdGQuaCIKIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3VuaXN0ZF82NC5oIiAxCiMgMTkg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vdW5pc3RkLmgiIDIKIyAxICIuL2FyY2gveDg2L2luY2x1
ZGUvZ2VuZXJhdGVkL2FzbS91bmlzdGRfNjRfeDMyLmgiIDEKIyAyMCAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS91bmlzdGQuaCIgMgojIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc2VjY29tcC5o
IiAyCiMgMTkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc2VjY29tcC5oIgojIDEgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9zZWNjb21wLmgiIDEKIyAxMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3Nl
Y2NvbXAuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC91bmlzdGQuaCIgMQojIDEyICIuL2lu
Y2x1ZGUvYXNtLWdlbmVyaWMvc2VjY29tcC5oIiAyCiMgMjAgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vc2VjY29tcC5oIiAyCiMgMTYgIi4vaW5jbHVkZS9saW51eC9zZWNjb21wLmgiIDIKCnN0cnVj
dCBzZWNjb21wX2ZpbHRlcjsKIyAyOSAiLi9pbmNsdWRlL2xpbnV4L3NlY2NvbXAuaCIKc3RydWN0
IHNlY2NvbXAgewogaW50IG1vZGU7CiBzdHJ1Y3Qgc2VjY29tcF9maWx0ZXIgKmZpbHRlcjsKfTsK
CgpleHRlcm4gaW50IF9fc2VjdXJlX2NvbXB1dGluZyhjb25zdCBzdHJ1Y3Qgc2VjY29tcF9kYXRh
ICpzZCk7CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCBzZWN1cmVfY29tcHV0aW5nKHZvaWQpCnsKIGlmIChfX2J1aWx0aW5fZXhwZWN0
KCEhKHRlc3RfdGlfdGhyZWFkX2ZsYWcoKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilnZXRfY3VycmVu
dCgpKSwgOCkpLCAwKSkKICByZXR1cm4gX19zZWN1cmVfY29tcHV0aW5nKCgodm9pZCAqKTApKTsK
IHJldHVybiAwOwp9CgoKCgpleHRlcm4gbG9uZyBwcmN0bF9nZXRfc2VjY29tcCh2b2lkKTsKZXh0
ZXJuIGxvbmcgcHJjdGxfc2V0X3NlY2NvbXAodW5zaWduZWQgbG9uZywgdm9pZCAqKTsKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBz
ZWNjb21wX21vZGUoc3RydWN0IHNlY2NvbXAgKnMpCnsKIHJldHVybiBzLT5tb2RlOwp9CiMgODQg
Ii4vaW5jbHVkZS9saW51eC9zZWNjb21wLmgiCmV4dGVybiB2b2lkIHB1dF9zZWNjb21wX2ZpbHRl
cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7CmV4dGVybiB2b2lkIGdldF9zZWNjb21wX2ZpbHRl
cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7CiMgOTggIi4vaW5jbHVkZS9saW51eC9zZWNjb21w
LmgiCmV4dGVybiBsb25nIHNlY2NvbXBfZ2V0X2ZpbHRlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRh
c2ssCiAgICAgICAgICB1bnNpZ25lZCBsb25nIGZpbHRlcl9vZmYsIHZvaWQgKmRhdGEpOwpleHRl
cm4gbG9uZyBzZWNjb21wX2dldF9tZXRhZGF0YShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssCiAg
ICAgdW5zaWduZWQgbG9uZyBmaWx0ZXJfb2ZmLCB2b2lkICpkYXRhKTsKIyAyMiAiLi9pbmNsdWRl
L2xpbnV4L3NjaGVkLmgiIDIKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvcmVzb3VyY2UuaCIgMQoK
CgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9yZXNvdXJjZS5oIiAxCiMgMjQgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L3Jlc291cmNlLmgiCnN0cnVjdCBydXNhZ2Ugewogc3RydWN0IF9fa2VybmVs
X29sZF90aW1ldmFsIHJ1X3V0aW1lOwogc3RydWN0IF9fa2VybmVsX29sZF90aW1ldmFsIHJ1X3N0
aW1lOwogX19rZXJuZWxfbG9uZ190IHJ1X21heHJzczsKIF9fa2VybmVsX2xvbmdfdCBydV9peHJz
czsKIF9fa2VybmVsX2xvbmdfdCBydV9pZHJzczsKIF9fa2VybmVsX2xvbmdfdCBydV9pc3JzczsK
IF9fa2VybmVsX2xvbmdfdCBydV9taW5mbHQ7CiBfX2tlcm5lbF9sb25nX3QgcnVfbWFqZmx0Owog
X19rZXJuZWxfbG9uZ190IHJ1X25zd2FwOwogX19rZXJuZWxfbG9uZ190IHJ1X2luYmxvY2s7CiBf
X2tlcm5lbF9sb25nX3QgcnVfb3VibG9jazsKIF9fa2VybmVsX2xvbmdfdCBydV9tc2dzbmQ7CiBf
X2tlcm5lbF9sb25nX3QgcnVfbXNncmN2OwogX19rZXJuZWxfbG9uZ190IHJ1X25zaWduYWxzOwog
X19rZXJuZWxfbG9uZ190IHJ1X252Y3N3OwogX19rZXJuZWxfbG9uZ190IHJ1X25pdmNzdzsKfTsK
CnN0cnVjdCBybGltaXQgewogX19rZXJuZWxfdWxvbmdfdCBybGltX2N1cjsKIF9fa2VybmVsX3Vs
b25nX3QgcmxpbV9tYXg7Cn07CgoKCnN0cnVjdCBybGltaXQ2NCB7CiBfX3U2NCBybGltX2N1cjsK
IF9fdTY0IHJsaW1fbWF4Owp9OwojIDc4ICIuL2luY2x1ZGUvdWFwaS9saW51eC9yZXNvdXJjZS5o
IgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vcmVzb3VyY2UuaCIg
MQojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9yZXNvdXJjZS5oIiAxCgoKCgojIDEgIi4vaW5j
bHVkZS91YXBpL2FzbS1nZW5lcmljL3Jlc291cmNlLmgiIDEKIyA2ICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvcmVzb3VyY2UuaCIgMgojIDIgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFw
aS9hc20vcmVzb3VyY2UuaCIgMgojIDc5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9yZXNvdXJjZS5o
IiAyCiMgNiAiLi9pbmNsdWRlL2xpbnV4L3Jlc291cmNlLmgiIDIKCgpzdHJ1Y3QgdGFza19zdHJ1
Y3Q7Cgp2b2lkIGdldHJ1c2FnZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCB3aG8sIHN0cnVj
dCBydXNhZ2UgKnJ1KTsKaW50IGRvX3BybGltaXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHVu
c2lnbmVkIGludCByZXNvdXJjZSwKICBzdHJ1Y3QgcmxpbWl0ICpuZXdfcmxpbSwgc3RydWN0IHJs
aW1pdCAqb2xkX3JsaW0pOwojIDI2ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi4v
aW5jbHVkZS9saW51eC9sYXRlbmN5dG9wLmgiIDEKIyAxNCAiLi9pbmNsdWRlL2xpbnV4L2xhdGVu
Y3l0b3AuaCIKc3RydWN0IHRhc2tfc3RydWN0OwoKCgoKCgpzdHJ1Y3QgbGF0ZW5jeV9yZWNvcmQg
ewogdW5zaWduZWQgbG9uZyBiYWNrdHJhY2VbMTJdOwogdW5zaWduZWQgaW50IGNvdW50OwogdW5z
aWduZWQgbG9uZyB0aW1lOwogdW5zaWduZWQgbG9uZyBtYXg7Cn07CgoKCmV4dGVybiBpbnQgbGF0
ZW5jeXRvcF9lbmFibGVkOwp2b2lkIF9fYWNjb3VudF9zY2hlZHVsZXJfbGF0ZW5jeShzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRhc2ssIGludCB1c2VjcywgaW50IGludGVyKTsKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAphY2NvdW50X3Nj
aGVkdWxlcl9sYXRlbmN5KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgaW50IHVzZWNzLCBpbnQg
aW50ZXIpCnsKIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGxhdGVuY3l0b3BfZW5hYmxlZCksIDAp
KQogIF9fYWNjb3VudF9zY2hlZHVsZXJfbGF0ZW5jeSh0YXNrLCB1c2VjcywgaW50ZXIpOwp9Cgp2
b2lkIGNsZWFyX3Rza19sYXRlbmN5X3RyYWNpbmcoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKCmV4
dGVybiBpbnQgc3lzY3RsX2xhdGVuY3l0b3Aoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3
cml0ZSwKICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CiMgMjcg
Ii4vaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkL3By
aW8uaCIgMQojIDQ4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQvcHJpby5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nIG5pY2VfdG9f
cmxpbWl0KGxvbmcgbmljZSkKewogcmV0dXJuICgxOSAtIG5pY2UgKyAxKTsKfQoKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZyBy
bGltaXRfdG9fbmljZShsb25nIHByaW8pCnsKIHJldHVybiAoMTkgLSBwcmlvICsgMSk7Cn0KIyAy
OCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvc2NoZWQv
dHlwZXMuaCIgMQojIDE3ICIuL2luY2x1ZGUvbGludXgvc2NoZWQvdHlwZXMuaCIKc3RydWN0IHRh
c2tfY3B1dGltZSB7CiB1NjQgc3RpbWU7CiB1NjQgdXRpbWU7CiB1bnNpZ25lZCBsb25nIGxvbmcg
c3VtX2V4ZWNfcnVudGltZTsKfTsKIyAyOSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAx
ICIuL2luY2x1ZGUvbGludXgvc2lnbmFsX3R5cGVzLmgiIDEKIyAxMCAiLi9pbmNsdWRlL2xpbnV4
L3NpZ25hbF90eXBlcy5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NpZ25hbC5oIiAxCgoK
CgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc2lnbmFsLmgiIDEKIyAyMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9zaWduYWwuaCIKdHlwZWRlZiB1bnNpZ25lZCBsb25nIG9sZF9zaWdzZXRf
dDsKCnR5cGVkZWYgc3RydWN0IHsKIHVuc2lnbmVkIGxvbmcgc2lnWyg2NCAvIDY0KV07Cn0gc2ln
c2V0X3Q7CgoKCgoKCnR5cGVkZWYgc2lnc2V0X3QgY29tcGF0X3NpZ3NldF90OwoKCgojIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWduYWwuaCIgMQojIDExICIuL2FyY2gveDg2L2lu
Y2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiCnN0cnVjdCBzaWdpbmZvOwojIDk0ICIuL2FyY2gveDg2
L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiCiMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVy
aWMvc2lnbmFsLWRlZnMuaCIgMQojIDE4ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9zaWdu
YWwtZGVmcy5oIgp0eXBlZGVmIHZvaWQgX19zaWduYWxmbl90KGludCk7CnR5cGVkZWYgX19zaWdu
YWxmbl90ICpfX3NpZ2hhbmRsZXJfdDsKCnR5cGVkZWYgdm9pZCBfX3Jlc3RvcmVmbl90KHZvaWQp
Owp0eXBlZGVmIF9fcmVzdG9yZWZuX3QgKl9fc2lncmVzdG9yZV90OwojIDk1ICIuL2FyY2gveDg2
L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiIDIKIyAxMjggIi4vYXJjaC94ODYvaW5jbHVkZS91
YXBpL2FzbS9zaWduYWwuaCIKdHlwZWRlZiBzdHJ1Y3Qgc2lnYWx0c3RhY2sgewogdm9pZCAqc3Nf
c3A7CiBpbnQgc3NfZmxhZ3M7CiBzaXplX3Qgc3Nfc2l6ZTsKfSBzdGFja190OwojIDM3ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3NpZ25hbC5oIiAyCgpleHRlcm4gdm9pZCBkb19zaWduYWwoc3Ry
dWN0IHB0X3JlZ3MgKnJlZ3MpOwojIDYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NpZ25hbC5oIiAy
CiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NpZ2luZm8uaCIgMQojIDEzICIuL2Fy
Y2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnaW5mby5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2Fz
bS1nZW5lcmljL3NpZ2luZm8uaCIgMQoKCgoKCgoKdHlwZWRlZiB1bmlvbiBzaWd2YWwgewogaW50
IHNpdmFsX2ludDsKIHZvaWQgKnNpdmFsX3B0cjsKfSBzaWd2YWxfdDsKIyAzMiAiLi9pbmNsdWRl
L3VhcGkvYXNtLWdlbmVyaWMvc2lnaW5mby5oIgp1bmlvbiBfX3NpZmllbGRzIHsKCiBzdHJ1Y3Qg
ewogIF9fa2VybmVsX3BpZF90IF9waWQ7CiAgX19rZXJuZWxfdWlkMzJfdCBfdWlkOwogfSBfa2ls
bDsKCgogc3RydWN0IHsKICBfX2tlcm5lbF90aW1lcl90IF90aWQ7CiAgaW50IF9vdmVycnVuOwog
IHNpZ3ZhbF90IF9zaWd2YWw7CiAgaW50IF9zeXNfcHJpdmF0ZTsKIH0gX3RpbWVyOwoKCiBzdHJ1
Y3QgewogIF9fa2VybmVsX3BpZF90IF9waWQ7CiAgX19rZXJuZWxfdWlkMzJfdCBfdWlkOwogIHNp
Z3ZhbF90IF9zaWd2YWw7CiB9IF9ydDsKCgogc3RydWN0IHsKICBfX2tlcm5lbF9waWRfdCBfcGlk
OwogIF9fa2VybmVsX3VpZDMyX3QgX3VpZDsKICBpbnQgX3N0YXR1czsKICBfX2tlcm5lbF9jbG9j
a190IF91dGltZTsKICBfX2tlcm5lbF9jbG9ja190IF9zdGltZTsKIH0gX3NpZ2NobGQ7CgoKIHN0
cnVjdCB7CiAgdm9pZCAqX2FkZHI7CiMgNzcgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3Np
Z2luZm8uaCIKICB1bmlvbiB7CgoKCgogICBzaG9ydCBfYWRkcl9sc2I7CgogICBzdHJ1Y3Qgewog
ICAgY2hhciBfZHVtbXlfYm5kWyhfX2FsaWdub2ZfXyh2b2lkICopIDwgc2l6ZW9mKHNob3J0KSA/
IHNpemVvZihzaG9ydCkgOiBfX2FsaWdub2ZfXyh2b2lkICopKV07CiAgICB2b2lkICpfbG93ZXI7
CiAgICB2b2lkICpfdXBwZXI7CiAgIH0gX2FkZHJfYm5kOwoKICAgc3RydWN0IHsKICAgIGNoYXIg
X2R1bW15X3BrZXlbKF9fYWxpZ25vZl9fKHZvaWQgKikgPCBzaXplb2Yoc2hvcnQpID8gc2l6ZW9m
KHNob3J0KSA6IF9fYWxpZ25vZl9fKHZvaWQgKikpXTsKICAgIF9fdTMyIF9wa2V5OwogICB9IF9h
ZGRyX3BrZXk7CiAgfTsKIH0gX3NpZ2ZhdWx0OwoKCiBzdHJ1Y3QgewogIGxvbmcgX2JhbmQ7CiAg
aW50IF9mZDsKIH0gX3NpZ3BvbGw7CgoKIHN0cnVjdCB7CiAgdm9pZCAqX2NhbGxfYWRkcjsKICBp
bnQgX3N5c2NhbGw7CiAgdW5zaWduZWQgaW50IF9hcmNoOwogfSBfc2lnc3lzOwp9OwojIDEyOSAi
Li9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvc2lnaW5mby5oIgp0eXBlZGVmIHN0cnVjdCBzaWdp
bmZvIHsKIHVuaW9uIHsKICBzdHJ1Y3QgeyBpbnQgc2lfc2lnbm87IGludCBzaV9lcnJubzsgaW50
IHNpX2NvZGU7IHVuaW9uIF9fc2lmaWVsZHMgX3NpZmllbGRzOyB9OwogIGludCBfc2lfcGFkWzEy
OC9zaXplb2YoaW50KV07CiB9Owp9IHNpZ2luZm9fdDsKIyAzMjAgIi4vaW5jbHVkZS91YXBpL2Fz
bS1nZW5lcmljL3NpZ2luZm8uaCIKdHlwZWRlZiBzdHJ1Y3Qgc2lnZXZlbnQgewogc2lndmFsX3Qg
c2lnZXZfdmFsdWU7CiBpbnQgc2lnZXZfc2lnbm87CiBpbnQgc2lnZXZfbm90aWZ5OwogdW5pb24g
ewogIGludCBfcGFkWygoNjQgLSAoc2l6ZW9mKGludCkgKiAyICsgc2l6ZW9mKHNpZ3ZhbF90KSkp
IC8gc2l6ZW9mKGludCkpXTsKICAgaW50IF90aWQ7CgogIHN0cnVjdCB7CiAgIHZvaWQgKCpfZnVu
Y3Rpb24pKHNpZ3ZhbF90KTsKICAgdm9pZCAqX2F0dHJpYnV0ZTsKICB9IF9zaWdldl90aHJlYWQ7
CiB9IF9zaWdldl91bjsKfSBzaWdldmVudF90OwojIDE0ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFw
aS9hc20vc2lnaW5mby5oIiAyCiMgNyAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2lnbmFsLmgiIDIK
IyAxMSAiLi9pbmNsdWRlL2xpbnV4L3NpZ25hbF90eXBlcy5oIiAyCgp0eXBlZGVmIHN0cnVjdCBr
ZXJuZWxfc2lnaW5mbyB7CiBzdHJ1Y3QgeyBpbnQgc2lfc2lnbm87IGludCBzaV9lcnJubzsgaW50
IHNpX2NvZGU7IHVuaW9uIF9fc2lmaWVsZHMgX3NpZmllbGRzOyB9Owp9IGtlcm5lbF9zaWdpbmZv
X3Q7CgoKCgoKc3RydWN0IHNpZ3F1ZXVlIHsKIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIGludCBm
bGFnczsKIGtlcm5lbF9zaWdpbmZvX3QgaW5mbzsKIHN0cnVjdCB1c2VyX3N0cnVjdCAqdXNlcjsK
fTsKCgoKCnN0cnVjdCBzaWdwZW5kaW5nIHsKIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIHNpZ3Nl
dF90IHNpZ25hbDsKfTsKCnN0cnVjdCBzaWdhY3Rpb24gewoKIF9fc2lnaGFuZGxlcl90IHNhX2hh
bmRsZXI7CiB1bnNpZ25lZCBsb25nIHNhX2ZsYWdzOwoKCgoKCiBfX3NpZ3Jlc3RvcmVfdCBzYV9y
ZXN0b3JlcjsKCiBzaWdzZXRfdCBzYV9tYXNrOwp9OwoKc3RydWN0IGtfc2lnYWN0aW9uIHsKIHN0
cnVjdCBzaWdhY3Rpb24gc2E7CgoKCn07CiMgNjUgIi4vaW5jbHVkZS9saW51eC9zaWduYWxfdHlw
ZXMuaCIKc3RydWN0IGtzaWduYWwgewogc3RydWN0IGtfc2lnYWN0aW9uIGthOwoga2VybmVsX3Np
Z2luZm9fdCBpbmZvOwogaW50IHNpZzsKfTsKIyAzMCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgi
IDIKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3Rhc2tfaW9fYWNjb3VudGluZy5oIiAxCiMgMTIgIi4v
aW5jbHVkZS9saW51eC90YXNrX2lvX2FjY291bnRpbmcuaCIKc3RydWN0IHRhc2tfaW9fYWNjb3Vu
dGluZyB7CgoKIHU2NCByY2hhcjsKCiB1NjQgd2NoYXI7CgogdTY0IHN5c2NyOwoKIHU2NCBzeXNj
dzsKCgoKCgoKCiB1NjQgcmVhZF9ieXRlczsKCgoKCgogdTY0IHdyaXRlX2J5dGVzOwojIDQ0ICIu
L2luY2x1ZGUvbGludXgvdGFza19pb19hY2NvdW50aW5nLmgiCiB1NjQgY2FuY2VsbGVkX3dyaXRl
X2J5dGVzOwoKfTsKIyAzMiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIuL2luY2x1
ZGUvbGludXgvcG9zaXgtdGltZXJzLmgiIDEKCgoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvYWxh
cm10aW1lci5oIiAxCiMgOSAiLi9pbmNsdWRlL2xpbnV4L2FsYXJtdGltZXIuaCIKc3RydWN0IHJ0
Y19kZXZpY2U7CgplbnVtIGFsYXJtdGltZXJfdHlwZSB7CiBBTEFSTV9SRUFMVElNRSwKIEFMQVJN
X0JPT1RUSU1FLAoKCiBBTEFSTV9OVU1UWVBFLAoKCiBBTEFSTV9SRUFMVElNRV9GUkVFWkVSLAog
QUxBUk1fQk9PVFRJTUVfRlJFRVpFUiwKfTsKCmVudW0gYWxhcm10aW1lcl9yZXN0YXJ0IHsKIEFM
QVJNVElNRVJfTk9SRVNUQVJULAogQUxBUk1USU1FUl9SRVNUQVJULAp9OwojIDQyICIuL2luY2x1
ZGUvbGludXgvYWxhcm10aW1lci5oIgpzdHJ1Y3QgYWxhcm0gewogc3RydWN0IHRpbWVycXVldWVf
bm9kZSBub2RlOwogc3RydWN0IGhydGltZXIgdGltZXI7CiBlbnVtIGFsYXJtdGltZXJfcmVzdGFy
dCAoKmZ1bmN0aW9uKShzdHJ1Y3QgYWxhcm0gKiwga3RpbWVfdCBub3cpOwogZW51bSBhbGFybXRp
bWVyX3R5cGUgdHlwZTsKIGludCBzdGF0ZTsKIHZvaWQgKmRhdGE7Cn07Cgp2b2lkIGFsYXJtX2lu
aXQoc3RydWN0IGFsYXJtICphbGFybSwgZW51bSBhbGFybXRpbWVyX3R5cGUgdHlwZSwKICBlbnVt
IGFsYXJtdGltZXJfcmVzdGFydCAoKmZ1bmN0aW9uKShzdHJ1Y3QgYWxhcm0gKiwga3RpbWVfdCkp
Owp2b2lkIGFsYXJtX3N0YXJ0KHN0cnVjdCBhbGFybSAqYWxhcm0sIGt0aW1lX3Qgc3RhcnQpOwp2
b2lkIGFsYXJtX3N0YXJ0X3JlbGF0aXZlKHN0cnVjdCBhbGFybSAqYWxhcm0sIGt0aW1lX3Qgc3Rh
cnQpOwp2b2lkIGFsYXJtX3Jlc3RhcnQoc3RydWN0IGFsYXJtICphbGFybSk7CmludCBhbGFybV90
cnlfdG9fY2FuY2VsKHN0cnVjdCBhbGFybSAqYWxhcm0pOwppbnQgYWxhcm1fY2FuY2VsKHN0cnVj
dCBhbGFybSAqYWxhcm0pOwoKdTY0IGFsYXJtX2ZvcndhcmQoc3RydWN0IGFsYXJtICphbGFybSwg
a3RpbWVfdCBub3csIGt0aW1lX3QgaW50ZXJ2YWwpOwp1NjQgYWxhcm1fZm9yd2FyZF9ub3coc3Ry
dWN0IGFsYXJtICphbGFybSwga3RpbWVfdCBpbnRlcnZhbCk7Cmt0aW1lX3QgYWxhcm1fZXhwaXJl
c19yZW1haW5pbmcoY29uc3Qgc3RydWN0IGFsYXJtICphbGFybSk7CgoKCnN0cnVjdCBydGNfZGV2
aWNlICphbGFybXRpbWVyX2dldF9ydGNkZXYodm9pZCk7CiMgOCAiLi9pbmNsdWRlL2xpbnV4L3Bv
c2l4LXRpbWVycy5oIiAyCgoKc3RydWN0IGtlcm5lbF9zaWdpbmZvOwpzdHJ1Y3QgdGFza19zdHJ1
Y3Q7CiMgMzggIi4vaW5jbHVkZS9saW51eC9wb3NpeC10aW1lcnMuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2xvY2tpZF90IG1ha2Vf
cHJvY2Vzc19jcHVjbG9jayhjb25zdCB1bnNpZ25lZCBpbnQgcGlkLAogIGNvbnN0IGNsb2NraWRf
dCBjbG9jaykKewogcmV0dXJuICgofnBpZCkgPDwgMykgfCBjbG9jazsKfQpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjbG9ja2lkX3QgbWFr
ZV90aHJlYWRfY3B1Y2xvY2soY29uc3QgdW5zaWduZWQgaW50IHRpZCwKICBjb25zdCBjbG9ja2lk
X3QgY2xvY2spCnsKIHJldHVybiBtYWtlX3Byb2Nlc3NfY3B1Y2xvY2sodGlkLCBjbG9jayB8IDQp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBjbG9ja2lkX3QgZmRfdG9fY2xvY2tpZChjb25zdCBpbnQgZmQpCnsKIHJldHVybiBtYWtl
X3Byb2Nlc3NfY3B1Y2xvY2soKHVuc2lnbmVkIGludCkgZmQsIDMpOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY2xvY2tpZF90
b19mZChjb25zdCBjbG9ja2lkX3QgY2xrKQp7CiByZXR1cm4gfihjbGsgPj4gMyk7Cn0KIyA2OSAi
Li9pbmNsdWRlL2xpbnV4L3Bvc2l4LXRpbWVycy5oIgpzdHJ1Y3QgY3B1X3RpbWVyIHsKIHN0cnVj
dCB0aW1lcnF1ZXVlX25vZGUgbm9kZTsKIHN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgKmhlYWQ7CiBz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiBzdHJ1Y3QgbGlzdF9oZWFkIGVsaXN0OwogaW50IGZp
cmluZzsKfTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgY3B1X3RpbWVyX2VucXVldWUoc3RydWN0IHRpbWVycXVldWVfaGVhZCAq
aGVhZCwKICAgICAgICAgc3RydWN0IGNwdV90aW1lciAqY3RtcikKewogY3Rtci0+aGVhZCA9IGhl
YWQ7CiByZXR1cm4gdGltZXJxdWV1ZV9hZGQoaGVhZCwgJmN0bXItPm5vZGUpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNw
dV90aW1lcl9kZXF1ZXVlKHN0cnVjdCBjcHVfdGltZXIgKmN0bXIpCnsKIGlmIChjdG1yLT5oZWFk
KSB7CiAgdGltZXJxdWV1ZV9kZWwoY3Rtci0+aGVhZCwgJmN0bXItPm5vZGUpOwogIGN0bXItPmhl
YWQgPSAoKHZvaWQgKikwKTsKIH0KfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0IGNwdV90aW1lcl9nZXRleHBpcmVzKHN0cnVjdCBj
cHVfdGltZXIgKmN0bXIpCnsKIHJldHVybiBjdG1yLT5ub2RlLmV4cGlyZXM7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1
X3RpbWVyX3NldGV4cGlyZXMoc3RydWN0IGNwdV90aW1lciAqY3RtciwgdTY0IGV4cCkKewogY3Rt
ci0+bm9kZS5leHBpcmVzID0gZXhwOwp9CgoKCgoKCnN0cnVjdCBwb3NpeF9jcHV0aW1lcl9iYXNl
IHsKIHU2NCBuZXh0ZXZ0Owogc3RydWN0IHRpbWVycXVldWVfaGVhZCB0cWhlYWQ7Cn07CiMgMTIy
ICIuL2luY2x1ZGUvbGludXgvcG9zaXgtdGltZXJzLmgiCnN0cnVjdCBwb3NpeF9jcHV0aW1lcnMg
ewogc3RydWN0IHBvc2l4X2NwdXRpbWVyX2Jhc2UgYmFzZXNbM107CiB1bnNpZ25lZCBpbnQgdGlt
ZXJzX2FjdGl2ZTsKIHVuc2lnbmVkIGludCBleHBpcnlfYWN0aXZlOwp9OwoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwb3NpeF9j
cHV0aW1lcnNfaW5pdChzdHJ1Y3QgcG9zaXhfY3B1dGltZXJzICpwY3QpCnsKIG1lbXNldChwY3Qs
IDAsIHNpemVvZigqcGN0KSk7CiBwY3QtPmJhc2VzWzBdLm5leHRldnQgPSAoKHU2NCl+MFVMTCk7
CiBwY3QtPmJhc2VzWzFdLm5leHRldnQgPSAoKHU2NCl+MFVMTCk7CiBwY3QtPmJhc2VzWzJdLm5l
eHRldnQgPSAoKHU2NCl+MFVMTCk7Cn0KCnZvaWQgcG9zaXhfY3B1dGltZXJzX2dyb3VwX2luaXQo
c3RydWN0IHBvc2l4X2NwdXRpbWVycyAqcGN0LCB1NjQgY3B1X2xpbWl0KTsKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcG9zaXhf
Y3B1dGltZXJzX3J0X3dhdGNoZG9nKHN0cnVjdCBwb3NpeF9jcHV0aW1lcnMgKnBjdCwKICAgICAg
ICAgICAgdTY0IHJ1bnRpbWUpCnsKIHBjdC0+YmFzZXNbMl0ubmV4dGV2dCA9IHJ1bnRpbWU7Cn0K
IyAxOTMgIi4vaW5jbHVkZS9saW51eC9wb3NpeC10aW1lcnMuaCIKc3RydWN0IGtfaXRpbWVyIHsK
IHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIHN0cnVjdCBobGlzdF9ub2RlIHRfaGFzaDsKIHNwaW5s
b2NrX3QgaXRfbG9jazsKIGNvbnN0IHN0cnVjdCBrX2Nsb2NrICprY2xvY2s7CiBjbG9ja2lkX3Qg
aXRfY2xvY2s7CiB0aW1lcl90IGl0X2lkOwogaW50IGl0X2FjdGl2ZTsKIHM2NCBpdF9vdmVycnVu
OwogczY0IGl0X292ZXJydW5fbGFzdDsKIGludCBpdF9yZXF1ZXVlX3BlbmRpbmc7CiBpbnQgaXRf
c2lnZXZfbm90aWZ5Owoga3RpbWVfdCBpdF9pbnRlcnZhbDsKIHN0cnVjdCBzaWduYWxfc3RydWN0
ICppdF9zaWduYWw7CiB1bmlvbiB7CiAgc3RydWN0IHBpZCAqaXRfcGlkOwogIHN0cnVjdCB0YXNr
X3N0cnVjdCAqaXRfcHJvY2VzczsKIH07CiBzdHJ1Y3Qgc2lncXVldWUgKnNpZ3E7CiB1bmlvbiB7
CiAgc3RydWN0IHsKICAgc3RydWN0IGhydGltZXIgdGltZXI7CiAgfSByZWFsOwogIHN0cnVjdCBj
cHVfdGltZXIgY3B1OwogIHN0cnVjdCB7CiAgIHN0cnVjdCBhbGFybSBhbGFybXRpbWVyOwogIH0g
YWxhcm07CiB9IGl0Owogc3RydWN0IGNhbGxiYWNrX2hlYWQgcmN1Owp9OwoKdm9pZCBydW5fcG9z
aXhfY3B1X3RpbWVycyh2b2lkKTsKdm9pZCBwb3NpeF9jcHVfdGltZXJzX2V4aXQoc3RydWN0IHRh
c2tfc3RydWN0ICp0YXNrKTsKdm9pZCBwb3NpeF9jcHVfdGltZXJzX2V4aXRfZ3JvdXAoc3RydWN0
IHRhc2tfc3RydWN0ICp0YXNrKTsKdm9pZCBzZXRfcHJvY2Vzc19jcHVfdGltZXIoc3RydWN0IHRh
c2tfc3RydWN0ICp0YXNrLCB1bnNpZ25lZCBpbnQgY2xvY2tfaWR4LAogICAgICB1NjQgKm5ld3Zh
bCwgdTY0ICpvbGR2YWwpOwoKdm9pZCB1cGRhdGVfcmxpbWl0X2NwdShzdHJ1Y3QgdGFza19zdHJ1
Y3QgKnRhc2ssIHVuc2lnbmVkIGxvbmcgcmxpbV9uZXcpOwoKdm9pZCBwb3NpeHRpbWVyX3JlYXJt
KHN0cnVjdCBrZXJuZWxfc2lnaW5mbyAqaW5mbyk7CiMgMzMgIi4vaW5jbHVkZS9saW51eC9zY2hl
ZC5oIiAyCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5oIiAxCiMgMTYgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L3JzZXEuaCIKZW51bSByc2VxX2NwdV9pZF9zdGF0ZSB7CiBSU0VRX0NQVV9J
RF9VTklOSVRJQUxJWkVEID0gLTEsCiBSU0VRX0NQVV9JRF9SRUdJU1RSQVRJT05fRkFJTEVEID0g
LTIsCn07CgplbnVtIHJzZXFfZmxhZ3MgewogUlNFUV9GTEFHX1VOUkVHSVNURVIgPSAoMSA8PCAw
KSwKfTsKCmVudW0gcnNlcV9jc19mbGFnc19iaXQgewogUlNFUV9DU19GTEFHX05PX1JFU1RBUlRf
T05fUFJFRU1QVF9CSVQgPSAwLAogUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fU0lHTkFMX0JJ
VCA9IDEsCiBSU0VRX0NTX0ZMQUdfTk9fUkVTVEFSVF9PTl9NSUdSQVRFX0JJVCA9IDIsCn07Cgpl
bnVtIHJzZXFfY3NfZmxhZ3MgewogUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fUFJFRU1QVCA9
CiAgKDFVIDw8IFJTRVFfQ1NfRkxBR19OT19SRVNUQVJUX09OX1BSRUVNUFRfQklUKSwKIFJTRVFf
Q1NfRkxBR19OT19SRVNUQVJUX09OX1NJR05BTCA9CiAgKDFVIDw8IFJTRVFfQ1NfRkxBR19OT19S
RVNUQVJUX09OX1NJR05BTF9CSVQpLAogUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fTUlHUkFU
RSA9CiAgKDFVIDw8IFJTRVFfQ1NfRkxBR19OT19SRVNUQVJUX09OX01JR1JBVEVfQklUKSwKfTsK
CgoKCgoKc3RydWN0IHJzZXFfY3MgewoKIF9fdTMyIHZlcnNpb247CgogX191MzIgZmxhZ3M7CiBf
X3U2NCBzdGFydF9pcDsKCiBfX3U2NCBwb3N0X2NvbW1pdF9vZmZzZXQ7CiBfX3U2NCBhYm9ydF9p
cDsKfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQgKiBzaXplb2YoX191NjQpKSkpOwoKCgoKCgoK
c3RydWN0IHJzZXEgewojIDc1ICIuL2luY2x1ZGUvdWFwaS9saW51eC9yc2VxLmgiCiBfX3UzMiBj
cHVfaWRfc3RhcnQ7CiMgOTAgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3JzZXEuaCIKIF9fdTMyIGNw
dV9pZDsKIyAxMDkgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3JzZXEuaCIKIHVuaW9uIHsKICBfX3U2
NCBwdHI2NDsKCiAgX191NjQgcHRyOwojIDEyNCAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5o
IgogfSByc2VxX2NzOwojIDE0NCAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5oIgogX191MzIg
ZmxhZ3M7Cn0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0ICogc2l6ZW9mKF9fdTY0KSkpKTsKIyAz
NCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCgpzdHJ1Y3QgYXVkaXRfY29udGV4dDsKc3Ry
dWN0IGJhY2tpbmdfZGV2X2luZm87CnN0cnVjdCBiaW9fbGlzdDsKc3RydWN0IGJsa19wbHVnOwpz
dHJ1Y3QgY2FwdHVyZV9jb250cm9sOwpzdHJ1Y3QgY2ZzX3JxOwpzdHJ1Y3QgZnNfc3RydWN0Owpz
dHJ1Y3QgZnV0ZXhfcGlfc3RhdGU7CnN0cnVjdCBpb19jb250ZXh0OwpzdHJ1Y3QgbWVtcG9saWN5
OwpzdHJ1Y3QgbmFtZWlkYXRhOwpzdHJ1Y3QgbnNwcm94eTsKc3RydWN0IHBlcmZfZXZlbnRfY29u
dGV4dDsKc3RydWN0IHBpZF9uYW1lc3BhY2U7CnN0cnVjdCBwaXBlX2lub2RlX2luZm87CnN0cnVj
dCByY3Vfbm9kZTsKc3RydWN0IHJlY2xhaW1fc3RhdGU7CnN0cnVjdCByb2J1c3RfbGlzdF9oZWFk
OwpzdHJ1Y3Qgcm9vdF9kb21haW47CnN0cnVjdCBycTsKc3RydWN0IHNjaGVkX2F0dHI7CnN0cnVj
dCBzY2hlZF9wYXJhbTsKc3RydWN0IHNlcV9maWxlOwpzdHJ1Y3Qgc2lnaGFuZF9zdHJ1Y3Q7CnN0
cnVjdCBzaWduYWxfc3RydWN0OwpzdHJ1Y3QgdGFza19kZWxheV9pbmZvOwpzdHJ1Y3QgdGFza19n
cm91cDsKIyAyMTUgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgpleHRlcm4gdm9pZCBzY2hlZHVs
ZXJfdGljayh2b2lkKTsKCgoKZXh0ZXJuIGxvbmcgc2NoZWR1bGVfdGltZW91dChsb25nIHRpbWVv
dXQpOwpleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUobG9uZyB0aW1l
b3V0KTsKZXh0ZXJuIGxvbmcgc2NoZWR1bGVfdGltZW91dF9raWxsYWJsZShsb25nIHRpbWVvdXQp
OwpleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShsb25nIHRpbWVv
dXQpOwpleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0X2lkbGUobG9uZyB0aW1lb3V0KTsKIHZv
aWQgc2NoZWR1bGUodm9pZCk7CmV4dGVybiB2b2lkIHNjaGVkdWxlX3ByZWVtcHRfZGlzYWJsZWQo
dm9pZCk7CiB2b2lkIHByZWVtcHRfc2NoZWR1bGVfaXJxKHZvaWQpOwoKZXh0ZXJuIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgaW9fc2NoZWR1bGVfcHJlcGFyZSh2
b2lkKTsKZXh0ZXJuIHZvaWQgaW9fc2NoZWR1bGVfZmluaXNoKGludCB0b2tlbik7CmV4dGVybiBs
b25nIGlvX3NjaGVkdWxlX3RpbWVvdXQobG9uZyB0aW1lb3V0KTsKZXh0ZXJuIHZvaWQgaW9fc2No
ZWR1bGUodm9pZCk7CiMgMjQyICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3RydWN0IHByZXZf
Y3B1dGltZSB7CgogdTY0IHV0aW1lOwogdTY0IHN0aW1lOwogcmF3X3NwaW5sb2NrX3QgbG9jazsK
Cn07CgplbnVtIHZ0aW1lX3N0YXRlIHsKCiBWVElNRV9JTkFDVElWRSA9IDAsCgogVlRJTUVfSURM
RSwKCiBWVElNRV9TWVMsCgogVlRJTUVfVVNFUiwKCiBWVElNRV9HVUVTVCwKfTsKCnN0cnVjdCB2
dGltZSB7CiBzZXFjb3VudF90IHNlcWNvdW50OwogdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0dGlt
ZTsKIGVudW0gdnRpbWVfc3RhdGUgc3RhdGU7CiB1bnNpZ25lZCBpbnQgY3B1OwogdTY0IHV0aW1l
OwogdTY0IHN0aW1lOwogdTY0IGd0aW1lOwp9OwoKCgoKCgoKZW51bSB1Y2xhbXBfaWQgewogVUNM
QU1QX01JTiA9IDAsCiBVQ0xBTVBfTUFYLAogVUNMQU1QX0NOVAp9OwoKCmV4dGVybiBzdHJ1Y3Qg
cm9vdF9kb21haW4gZGVmX3Jvb3RfZG9tYWluOwpleHRlcm4gc3RydWN0IG11dGV4IHNjaGVkX2Rv
bWFpbnNfbXV0ZXg7CgoKc3RydWN0IHNjaGVkX2luZm8gewoKCgoKIHVuc2lnbmVkIGxvbmcgcGNv
dW50OwoKCiB1bnNpZ25lZCBsb25nIGxvbmcgcnVuX2RlbGF5OwoKCgoKIHVuc2lnbmVkIGxvbmcg
bG9uZyBsYXN0X2Fycml2YWw7CgoKIHVuc2lnbmVkIGxvbmcgbG9uZyBsYXN0X3F1ZXVlZDsKCgp9
OwojIDMyNSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCnN0cnVjdCBsb2FkX3dlaWdodCB7CiB1
bnNpZ25lZCBsb25nIHdlaWdodDsKIHUzMiBpbnZfd2VpZ2h0Owp9OwojIDM1MiAiLi9pbmNsdWRl
L2xpbnV4L3NjaGVkLmgiCnN0cnVjdCB1dGlsX2VzdCB7CiB1bnNpZ25lZCBpbnQgZW5xdWV1ZWQ7
CiB1bnNpZ25lZCBpbnQgZXdtYTsKCn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oc2l6ZW9m
KHU2NCkpKSk7CiMgNDAxICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3RydWN0IHNjaGVkX2F2
ZyB7CiB1NjQgbGFzdF91cGRhdGVfdGltZTsKIHU2NCBsb2FkX3N1bTsKIHU2NCBydW5uYWJsZV9s
b2FkX3N1bTsKIHUzMiB1dGlsX3N1bTsKIHUzMiBwZXJpb2RfY29udHJpYjsKIHVuc2lnbmVkIGxv
bmcgbG9hZF9hdmc7CiB1bnNpZ25lZCBsb25nIHJ1bm5hYmxlX2xvYWRfYXZnOwogdW5zaWduZWQg
bG9uZyB1dGlsX2F2ZzsKIHN0cnVjdCB1dGlsX2VzdCB1dGlsX2VzdDsKfSBfX2F0dHJpYnV0ZV9f
KChfX2FsaWduZWRfXygoMSA8PCAoNikpKSkpOwoKc3RydWN0IHNjaGVkX3N0YXRpc3RpY3MgewoK
IHU2NCB3YWl0X3N0YXJ0OwogdTY0IHdhaXRfbWF4OwogdTY0IHdhaXRfY291bnQ7CiB1NjQgd2Fp
dF9zdW07CiB1NjQgaW93YWl0X2NvdW50OwogdTY0IGlvd2FpdF9zdW07CgogdTY0IHNsZWVwX3N0
YXJ0OwogdTY0IHNsZWVwX21heDsKIHM2NCBzdW1fc2xlZXBfcnVudGltZTsKCiB1NjQgYmxvY2tf
c3RhcnQ7CiB1NjQgYmxvY2tfbWF4OwogdTY0IGV4ZWNfbWF4OwogdTY0IHNsaWNlX21heDsKCiB1
NjQgbnJfbWlncmF0aW9uc19jb2xkOwogdTY0IG5yX2ZhaWxlZF9taWdyYXRpb25zX2FmZmluZTsK
IHU2NCBucl9mYWlsZWRfbWlncmF0aW9uc19ydW5uaW5nOwogdTY0IG5yX2ZhaWxlZF9taWdyYXRp
b25zX2hvdDsKIHU2NCBucl9mb3JjZWRfbWlncmF0aW9uczsKCiB1NjQgbnJfd2FrZXVwczsKIHU2
NCBucl93YWtldXBzX3N5bmM7CiB1NjQgbnJfd2FrZXVwc19taWdyYXRlOwogdTY0IG5yX3dha2V1
cHNfbG9jYWw7CiB1NjQgbnJfd2FrZXVwc19yZW1vdGU7CiB1NjQgbnJfd2FrZXVwc19hZmZpbmU7
CiB1NjQgbnJfd2FrZXVwc19hZmZpbmVfYXR0ZW1wdHM7CiB1NjQgbnJfd2FrZXVwc19wYXNzaXZl
OwogdTY0IG5yX3dha2V1cHNfaWRsZTsKCn07CgpzdHJ1Y3Qgc2NoZWRfZW50aXR5IHsKCiBzdHJ1
Y3QgbG9hZF93ZWlnaHQgbG9hZDsKIHVuc2lnbmVkIGxvbmcgcnVubmFibGVfd2VpZ2h0Owogc3Ry
dWN0IHJiX25vZGUgcnVuX25vZGU7CiBzdHJ1Y3QgbGlzdF9oZWFkIGdyb3VwX25vZGU7CiB1bnNp
Z25lZCBpbnQgb25fcnE7CgogdTY0IGV4ZWNfc3RhcnQ7CiB1NjQgc3VtX2V4ZWNfcnVudGltZTsK
IHU2NCB2cnVudGltZTsKIHU2NCBwcmV2X3N1bV9leGVjX3J1bnRpbWU7CgogdTY0IG5yX21pZ3Jh
dGlvbnM7Cgogc3RydWN0IHNjaGVkX3N0YXRpc3RpY3Mgc3RhdGlzdGljczsKCgogaW50IGRlcHRo
Owogc3RydWN0IHNjaGVkX2VudGl0eSAqcGFyZW50OwoKIHN0cnVjdCBjZnNfcnEgKmNmc19ycTsK
CiBzdHJ1Y3QgY2ZzX3JxICpteV9xOwojIDQ4MiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiBz
dHJ1Y3Qgc2NoZWRfYXZnIGF2ZzsKCn07CgpzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5IHsKIHN0cnVj
dCBsaXN0X2hlYWQgcnVuX2xpc3Q7CiB1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CiB1bnNpZ25lZCBs
b25nIHdhdGNoZG9nX3N0YW1wOwogdW5zaWduZWQgaW50IHRpbWVfc2xpY2U7CiB1bnNpZ25lZCBz
aG9ydCBvbl9ycTsKIHVuc2lnbmVkIHNob3J0IG9uX2xpc3Q7Cgogc3RydWN0IHNjaGVkX3J0X2Vu
dGl0eSAqYmFjazsKCgoKCgoKCn0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykp
OwoKc3RydWN0IHNjaGVkX2RsX2VudGl0eSB7CiBzdHJ1Y3QgcmJfbm9kZSByYl9ub2RlOwoKCgoK
CgogdTY0IGRsX3J1bnRpbWU7CiB1NjQgZGxfZGVhZGxpbmU7CiB1NjQgZGxfcGVyaW9kOwogdTY0
IGRsX2J3OwogdTY0IGRsX2RlbnNpdHk7CgoKCgoKCiBzNjQgcnVudGltZTsKIHU2NCBkZWFkbGlu
ZTsKIHVuc2lnbmVkIGludCBmbGFnczsKIyA1NTEgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgog
dW5zaWduZWQgaW50IGRsX3Rocm90dGxlZCA6IDE7CiB1bnNpZ25lZCBpbnQgZGxfYm9vc3RlZCA6
IDE7CiB1bnNpZ25lZCBpbnQgZGxfeWllbGRlZCA6IDE7CiB1bnNpZ25lZCBpbnQgZGxfbm9uX2Nv
bnRlbmRpbmcgOiAxOwogdW5zaWduZWQgaW50IGRsX292ZXJydW4gOiAxOwoKCgoKCiBzdHJ1Y3Qg
aHJ0aW1lciBkbF90aW1lcjsKIyA1NzAgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgogc3RydWN0
IGhydGltZXIgaW5hY3RpdmVfdGltZXI7Cn07CiMgNjA4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQu
aCIKdW5pb24gcmN1X3NwZWNpYWwgewogc3RydWN0IHsKICB1OCBibG9ja2VkOwogIHU4IG5lZWRf
cXM7CiAgdTggZXhwX2hpbnQ7CiAgdTggZGVmZXJyZWRfcXM7CiB9IGI7CiB1MzIgczsKfTsKCmVu
dW0gcGVyZl9ldmVudF90YXNrX2NvbnRleHQgewogcGVyZl9pbnZhbGlkX2NvbnRleHQgPSAtMSwK
IHBlcmZfaHdfY29udGV4dCA9IDAsCiBwZXJmX3N3X2NvbnRleHQsCiBwZXJmX25yX3Rhc2tfY29u
dGV4dHMsCn07CgpzdHJ1Y3Qgd2FrZV9xX25vZGUgewogc3RydWN0IHdha2VfcV9ub2RlICpuZXh0
Owp9OwoKc3RydWN0IHRhc2tfc3RydWN0IHsKCgoKCgogc3RydWN0IHRocmVhZF9pbmZvIHRocmVh
ZF9pbmZvOwoKCiB2b2xhdGlsZSBsb25nIHN0YXRlOwoKCgoKCgoKIHZvaWQgKnN0YWNrOwogcmVm
Y291bnRfdCB1c2FnZTsKCiB1bnNpZ25lZCBpbnQgZmxhZ3M7CiB1bnNpZ25lZCBpbnQgcHRyYWNl
OwoKCiBzdHJ1Y3QgbGxpc3Rfbm9kZSB3YWtlX2VudHJ5OwogaW50IG9uX2NwdTsKCgogdW5zaWdu
ZWQgaW50IGNwdTsKCiB1bnNpZ25lZCBpbnQgd2FrZWVfZmxpcHM7CiB1bnNpZ25lZCBsb25nIHdh
a2VlX2ZsaXBfZGVjYXlfdHM7CiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmxhc3Rfd2FrZWU7CiMgNjcw
ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKIGludCByZWNlbnRfdXNlZF9jcHU7CiBpbnQgd2Fr
ZV9jcHU7CgogaW50IG9uX3JxOwoKIGludCBwcmlvOwogaW50IHN0YXRpY19wcmlvOwogaW50IG5v
cm1hbF9wcmlvOwogdW5zaWduZWQgaW50IHJ0X3ByaW9yaXR5OwoKIGNvbnN0IHN0cnVjdCBzY2hl
ZF9jbGFzcyAqc2NoZWRfY2xhc3M7CiBzdHJ1Y3Qgc2NoZWRfZW50aXR5IHNlOwogc3RydWN0IHNj
aGVkX3J0X2VudGl0eSBydDsKCiBzdHJ1Y3QgdGFza19ncm91cCAqc2NoZWRfdGFza19ncm91cDsK
CiBzdHJ1Y3Qgc2NoZWRfZGxfZW50aXR5IGRsOwojIDY5NyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVk
LmgiCiBzdHJ1Y3QgaGxpc3RfaGVhZCBwcmVlbXB0X25vdGlmaWVyczsKCgoKIHVuc2lnbmVkIGlu
dCBidHJhY2Vfc2VxOwoKCiB1bnNpZ25lZCBpbnQgcG9saWN5OwogaW50IG5yX2NwdXNfYWxsb3dl
ZDsKIGNvbnN0IGNwdW1hc2tfdCAqY3B1c19wdHI7CiBjcHVtYXNrX3QgY3B1c19tYXNrOwojIDcy
NCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiBzdHJ1Y3Qgc2NoZWRfaW5mbyBzY2hlZF9pbmZv
OwoKIHN0cnVjdCBsaXN0X2hlYWQgdGFza3M7Cgogc3RydWN0IHBsaXN0X25vZGUgcHVzaGFibGVf
dGFza3M7CiBzdHJ1Y3QgcmJfbm9kZSBwdXNoYWJsZV9kbF90YXNrczsKCgogc3RydWN0IG1tX3N0
cnVjdCAqbW07CiBzdHJ1Y3QgbW1fc3RydWN0ICphY3RpdmVfbW07CgoKIHN0cnVjdCB2bWFjYWNo
ZSB2bWFjYWNoZTsKCgogc3RydWN0IHRhc2tfcnNzX3N0YXQgcnNzX3N0YXQ7CgogaW50IGV4aXRf
c3RhdGU7CiBpbnQgZXhpdF9jb2RlOwogaW50IGV4aXRfc2lnbmFsOwoKIGludCBwZGVhdGhfc2ln
bmFsOwoKIHVuc2lnbmVkIGxvbmcgam9iY3RsOwoKCiB1bnNpZ25lZCBpbnQgcGVyc29uYWxpdHk7
CgoKIHVuc2lnbmVkIHNjaGVkX3Jlc2V0X29uX2Zvcms6MTsKIHVuc2lnbmVkIHNjaGVkX2NvbnRy
aWJ1dGVzX3RvX2xvYWQ6MTsKIHVuc2lnbmVkIHNjaGVkX21pZ3JhdGVkOjE7CiB1bnNpZ25lZCBz
Y2hlZF9yZW1vdGVfd2FrZXVwOjE7CgoKCgoKIHVuc2lnbmVkIDowOwoKCgoKIHVuc2lnbmVkIGlu
X2V4ZWN2ZToxOwogdW5zaWduZWQgaW5faW93YWl0OjE7CgogdW5zaWduZWQgcmVzdG9yZV9zaWdt
YXNrOjE7CgoKIHVuc2lnbmVkIGluX3VzZXJfZmF1bHQ6MTsKCgoKCgoKIHVuc2lnbmVkIG5vX2Nn
cm91cF9taWdyYXRpb246MTsKCiB1bnNpZ25lZCBmcm96ZW46MTsKCgoKIHVuc2lnbmVkIHVzZV9t
ZW1kZWxheToxOwoKCiB1bnNpZ25lZCBsb25nIGF0b21pY19mbGFnczsKCiBzdHJ1Y3QgcmVzdGFy
dF9ibG9jayByZXN0YXJ0X2Jsb2NrOwoKIHBpZF90IHBpZDsKIHBpZF90IHRnaWQ7CgoKCiB1bnNp
Z25lZCBsb25nIHN0YWNrX2NhbmFyeTsKIyA4MDcgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgog
c3RydWN0IHRhc2tfc3RydWN0ICpyZWFsX3BhcmVudDsKCgogc3RydWN0IHRhc2tfc3RydWN0ICpw
YXJlbnQ7CgoKCgogc3RydWN0IGxpc3RfaGVhZCBjaGlsZHJlbjsKIHN0cnVjdCBsaXN0X2hlYWQg
c2libGluZzsKIHN0cnVjdCB0YXNrX3N0cnVjdCAqZ3JvdXBfbGVhZGVyOwoKCgoKCgoKIHN0cnVj
dCBsaXN0X2hlYWQgcHRyYWNlZDsKIHN0cnVjdCBsaXN0X2hlYWQgcHRyYWNlX2VudHJ5OwoKCiBz
dHJ1Y3QgcGlkICp0aHJlYWRfcGlkOwogc3RydWN0IGhsaXN0X25vZGUgcGlkX2xpbmtzW1BJRFRZ
UEVfTUFYXTsKIHN0cnVjdCBsaXN0X2hlYWQgdGhyZWFkX2dyb3VwOwogc3RydWN0IGxpc3RfaGVh
ZCB0aHJlYWRfbm9kZTsKCiBzdHJ1Y3QgY29tcGxldGlvbiAqdmZvcmtfZG9uZTsKCgogaW50ICpz
ZXRfY2hpbGRfdGlkOwoKCiBpbnQgKmNsZWFyX2NoaWxkX3RpZDsKCiB1NjQgdXRpbWU7CiB1NjQg
c3RpbWU7CgoKCgogdTY0IGd0aW1lOwogc3RydWN0IHByZXZfY3B1dGltZSBwcmV2X2NwdXRpbWU7
CiMgODU4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKIHVuc2lnbmVkIGxvbmcgbnZjc3c7CiB1
bnNpZ25lZCBsb25nIG5pdmNzdzsKCgogdTY0IHN0YXJ0X3RpbWU7CgoKIHU2NCBzdGFydF9ib290
dGltZTsKCgogdW5zaWduZWQgbG9uZyBtaW5fZmx0OwogdW5zaWduZWQgbG9uZyBtYWpfZmx0OwoK
CiBzdHJ1Y3QgcG9zaXhfY3B1dGltZXJzIHBvc2l4X2NwdXRpbWVyczsKCgoKCiBjb25zdCBzdHJ1
Y3QgY3JlZCAqcHRyYWNlcl9jcmVkOwoKCiBjb25zdCBzdHJ1Y3QgY3JlZCAqcmVhbF9jcmVkOwoK
CiBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZDsKCgoKIHN0cnVjdCBrZXkgKmNhY2hlZF9yZXF1ZXN0
ZWRfa2V5OwojIDg5NyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiBjaGFyIGNvbW1bMTZdOwoK
IHN0cnVjdCBuYW1laWRhdGEgKm5hbWVpZGF0YTsKCgogc3RydWN0IHN5c3Zfc2VtIHN5c3ZzZW07
CiBzdHJ1Y3Qgc3lzdl9zaG0gc3lzdnNobTsKCgogdW5zaWduZWQgbG9uZyBsYXN0X3N3aXRjaF9j
b3VudDsKIHVuc2lnbmVkIGxvbmcgbGFzdF9zd2l0Y2hfdGltZTsKCgogc3RydWN0IGZzX3N0cnVj
dCAqZnM7CgoKIHN0cnVjdCBmaWxlc19zdHJ1Y3QgKmZpbGVzOwoKCiBzdHJ1Y3QgbnNwcm94eSAq
bnNwcm94eTsKCgogc3RydWN0IHNpZ25hbF9zdHJ1Y3QgKnNpZ25hbDsKIHN0cnVjdCBzaWdoYW5k
X3N0cnVjdCAqc2lnaGFuZDsKIHNpZ3NldF90IGJsb2NrZWQ7CiBzaWdzZXRfdCByZWFsX2Jsb2Nr
ZWQ7Cgogc2lnc2V0X3Qgc2F2ZWRfc2lnbWFzazsKIHN0cnVjdCBzaWdwZW5kaW5nIHBlbmRpbmc7
CiB1bnNpZ25lZCBsb25nIHNhc19zc19zcDsKIHNpemVfdCBzYXNfc3Nfc2l6ZTsKIHVuc2lnbmVk
IGludCBzYXNfc3NfZmxhZ3M7Cgogc3RydWN0IGNhbGxiYWNrX2hlYWQgKnRhc2tfd29ya3M7CgoK
CiBzdHJ1Y3QgYXVkaXRfY29udGV4dCAqYXVkaXRfY29udGV4dDsKCiBrdWlkX3QgbG9naW51aWQ7
CiB1bnNpZ25lZCBpbnQgc2Vzc2lvbmlkOwoKIHN0cnVjdCBzZWNjb21wIHNlY2NvbXA7CgoKIHUz
MiBwYXJlbnRfZXhlY19pZDsKIHUzMiBzZWxmX2V4ZWNfaWQ7CgoKIHNwaW5sb2NrX3QgYWxsb2Nf
bG9jazsKCgogcmF3X3NwaW5sb2NrX3QgcGlfbG9jazsKCiBzdHJ1Y3Qgd2FrZV9xX25vZGUgd2Fr
ZV9xOwoKCgogc3RydWN0IHJiX3Jvb3RfY2FjaGVkIHBpX3dhaXRlcnM7Cgogc3RydWN0IHRhc2tf
c3RydWN0ICpwaV90b3BfdGFzazsKCiBzdHJ1Y3QgcnRfbXV0ZXhfd2FpdGVyICpwaV9ibG9ja2Vk
X29uOwojIDEwMDAgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgogdm9pZCAqam91cm5hbF9pbmZv
OwoKCiBzdHJ1Y3QgYmlvX2xpc3QgKmJpb19saXN0OwoKCgogc3RydWN0IGJsa19wbHVnICpwbHVn
OwoKCgogc3RydWN0IHJlY2xhaW1fc3RhdGUgKnJlY2xhaW1fc3RhdGU7Cgogc3RydWN0IGJhY2tp
bmdfZGV2X2luZm8gKmJhY2tpbmdfZGV2X2luZm87Cgogc3RydWN0IGlvX2NvbnRleHQgKmlvX2Nv
bnRleHQ7CgoKIHN0cnVjdCBjYXB0dXJlX2NvbnRyb2wgKmNhcHR1cmVfY29udHJvbDsKCgogdW5z
aWduZWQgbG9uZyBwdHJhY2VfbWVzc2FnZTsKIGtlcm5lbF9zaWdpbmZvX3QgKmxhc3Rfc2lnaW5m
bzsKCiBzdHJ1Y3QgdGFza19pb19hY2NvdW50aW5nIGlvYWM7CgoKCgoKCiB1NjQgYWNjdF9yc3Nf
bWVtMTsKCiB1NjQgYWNjdF92bV9tZW0xOwoKIHU2NCBhY2N0X3RpbWV4cGQ7CgoKCiBub2RlbWFz
a190IG1lbXNfYWxsb3dlZDsKCiBzZXFjb3VudF90IG1lbXNfYWxsb3dlZF9zZXE7CiBpbnQgY3B1
c2V0X21lbV9zcHJlYWRfcm90b3I7CiBpbnQgY3B1c2V0X3NsYWJfc3ByZWFkX3JvdG9yOwoKCgog
c3RydWN0IGNzc19zZXQgKmNncm91cHM7Cgogc3RydWN0IGxpc3RfaGVhZCBjZ19saXN0OwoKCgoK
Cgogc3RydWN0IHJvYnVzdF9saXN0X2hlYWQgKnJvYnVzdF9saXN0OwoKCgogc3RydWN0IGxpc3Rf
aGVhZCBwaV9zdGF0ZV9saXN0Owogc3RydWN0IGZ1dGV4X3BpX3N0YXRlICpwaV9zdGF0ZV9jYWNo
ZTsKIHN0cnVjdCBtdXRleCBmdXRleF9leGl0X211dGV4OwogdW5zaWduZWQgaW50IGZ1dGV4X3N0
YXRlOwoKCiBzdHJ1Y3QgcGVyZl9ldmVudF9jb250ZXh0ICpwZXJmX2V2ZW50X2N0eHBbcGVyZl9u
cl90YXNrX2NvbnRleHRzXTsKIHN0cnVjdCBtdXRleCBwZXJmX2V2ZW50X211dGV4Owogc3RydWN0
IGxpc3RfaGVhZCBwZXJmX2V2ZW50X2xpc3Q7CiMgMTEzMCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVk
LmgiCiBzdHJ1Y3QgcnNlcSAqcnNlcTsKIHUzMiByc2VxX3NpZzsKCgoKCiB1bnNpZ25lZCBsb25n
IHJzZXFfZXZlbnRfbWFzazsKCgogc3RydWN0IHRsYmZsdXNoX3VubWFwX2JhdGNoIHRsYl91YmM7
CgogdW5pb24gewogIHJlZmNvdW50X3QgcmN1X3VzZXJzOwogIHN0cnVjdCBjYWxsYmFja19oZWFk
IHJjdTsKIH07CgoKIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnNwbGljZV9waXBlOwoKIHN0cnVj
dCBwYWdlX2ZyYWcgdGFza19mcmFnOwoKCiBzdHJ1Y3QgdGFza19kZWxheV9pbmZvICpkZWxheXM7
CiMgMTE2MyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiBpbnQgbnJfZGlydGllZDsKIGludCBu
cl9kaXJ0aWVkX3BhdXNlOwoKIHVuc2lnbmVkIGxvbmcgZGlydHlfcGF1c2VkX3doZW47CgoKIGlu
dCBsYXRlbmN5X3JlY29yZF9jb3VudDsKIHN0cnVjdCBsYXRlbmN5X3JlY29yZCBsYXRlbmN5X3Jl
Y29yZFszMl07CgoKCgoKIHU2NCB0aW1lcl9zbGFja19uczsKIHU2NCBkZWZhdWx0X3RpbWVyX3Ns
YWNrX25zOwoKCgoKCgoKIGludCBjdXJyX3JldF9zdGFjazsKIGludCBjdXJyX3JldF9kZXB0aDsK
Cgogc3RydWN0IGZ0cmFjZV9yZXRfc3RhY2sgKnJldF9zdGFjazsKCgogdW5zaWduZWQgbG9uZyBs
b25nIGZ0cmFjZV90aW1lc3RhbXA7CgoKCgoKIGF0b21pY190IHRyYWNlX292ZXJydW47CgoKIGF0
b21pY190IHRyYWNpbmdfZ3JhcGhfcGF1c2U7CgoKCgogdW5zaWduZWQgbG9uZyB0cmFjZTsKCgog
dW5zaWduZWQgbG9uZyB0cmFjZV9yZWN1cnNpb247CiMgMTIzNSAiLi9pbmNsdWRlL2xpbnV4L3Nj
aGVkLmgiCiBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2dfaW5fb29tOwogZ2ZwX3QgbWVtY2dfb29t
X2dmcF9tYXNrOwogaW50IG1lbWNnX29vbV9vcmRlcjsKCgogdW5zaWduZWQgaW50IG1lbWNnX25y
X3BhZ2VzX292ZXJfaGlnaDsKCgogc3RydWN0IG1lbV9jZ3JvdXAgKmFjdGl2ZV9tZW1jZzsKCgoK
IHN0cnVjdCByZXF1ZXN0X3F1ZXVlICp0aHJvdHRsZV9xdWV1ZTsKCgoKCgoKIHVuc2lnbmVkIGlu
dCBzZXF1ZW50aWFsX2lvOwogdW5zaWduZWQgaW50IHNlcXVlbnRpYWxfaW9fYXZnOwoKCgoKIGlu
dCBwYWdlZmF1bHRfZGlzYWJsZWQ7Cgogc3RydWN0IHRhc2tfc3RydWN0ICpvb21fcmVhcGVyX2xp
c3Q7CgoKIHN0cnVjdCB2bV9zdHJ1Y3QgKnN0YWNrX3ZtX2FyZWE7CgoKCiByZWZjb3VudF90IHN0
YWNrX3JlZmNvdW50OwoKCgoKCgogdm9pZCAqc2VjdXJpdHk7CiMgMTI4OCAiLi9pbmNsdWRlL2xp
bnV4L3NjaGVkLmgiCgoKCiBzdHJ1Y3QgdGhyZWFkX3N0cnVjdCB0aHJlYWQ7CgoKCgoKCgp9OwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IHBpZCAqdGFza19waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQp7CiByZXR1cm4g
dGFzay0+dGhyZWFkX3BpZDsKfQojIDEzMTcgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgpwaWRf
dCBfX3Rhc2tfcGlkX25yX25zKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgZW51bSBwaWRfdHlw
ZSB0eXBlLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpOwoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19waWRfbnIoc3Ry
dWN0IHRhc2tfc3RydWN0ICp0c2spCnsKIHJldHVybiB0c2stPnBpZDsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19w
aWRfbnJfbnMoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpu
cykKewogcmV0dXJuIF9fdGFza19waWRfbnJfbnModHNrLCBQSURUWVBFX1BJRCwgbnMpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBw
aWRfdCB0YXNrX3BpZF92bnIoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCnsKIHJldHVybiBfX3Rh
c2tfcGlkX25yX25zKHRzaywgUElEVFlQRV9QSUQsICgodm9pZCAqKTApKTsKfQoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBpZF90IHRh
c2tfdGdpZF9ucihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKewogcmV0dXJuIHRzay0+dGdpZDsK
fQojIDEzNTAgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGlkX2FsaXZlKGNvbnN0IHN0
cnVjdCB0YXNrX3N0cnVjdCAqcCkKewogcmV0dXJuIHAtPnRocmVhZF9waWQgIT0gKCh2b2lkICop
MCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHBpZF90IHRhc2tfcGdycF9ucl9ucyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3Ry
dWN0IHBpZF9uYW1lc3BhY2UgKm5zKQp7CiByZXR1cm4gX190YXNrX3BpZF9ucl9ucyh0c2ssIFBJ
RFRZUEVfUEdJRCwgbnMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3BncnBfdm5yKHN0cnVjdCB0YXNrX3N0cnVj
dCAqdHNrKQp7CiByZXR1cm4gX190YXNrX3BpZF9ucl9ucyh0c2ssIFBJRFRZUEVfUEdJRCwgKCh2
b2lkICopMCkpOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19zZXNzaW9uX25yX25zKHN0cnVjdCB0YXNrX3N0cnVj
dCAqdHNrLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpCnsKIHJldHVybiBfX3Rhc2tfcGlkX25y
X25zKHRzaywgUElEVFlQRV9TSUQsIG5zKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19zZXNzaW9uX3ZucihzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnRzaykKewogcmV0dXJuIF9fdGFza19waWRfbnJfbnModHNrLCBQSURU
WVBFX1NJRCwgKCh2b2lkICopMCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3RnaWRfbnJfbnMoc3RydWN0IHRh
c2tfc3RydWN0ICp0c2ssIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucykKewogcmV0dXJuIF9fdGFz
a19waWRfbnJfbnModHNrLCBQSURUWVBFX1RHSUQsIG5zKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza190Z2lkX3Zu
cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKewogcmV0dXJuIF9fdGFza19waWRfbnJfbnModHNr
LCBQSURUWVBFX1RHSUQsICgodm9pZCAqKTApKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19wcGlkX25yX25zKGNv
bnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpCnsK
IHBpZF90IHBpZCA9IDA7CgogcmN1X3JlYWRfbG9jaygpOwogaWYgKHBpZF9hbGl2ZSh0c2spKQog
IHBpZCA9IHRhc2tfdGdpZF9ucl9ucygoeyB0eXBlb2YoKih0c2stPnJlYWxfcGFyZW50KSkgKl9f
X19fX19fcDEgPSAodHlwZW9mKCoodHNrLT5yZWFsX3BhcmVudCkpICopKHsgdW5pb24geyB0eXBl
b2YoKHRzay0+cmVhbF9wYXJlbnQpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkg
X19yZWFkX29uY2Vfc2l6ZSgmKCh0c2stPnJlYWxfcGFyZW50KSksIF9fdS5fX2MsIHNpemVvZigo
dHNrLT5yZWFsX3BhcmVudCkpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigodHNr
LT5yZWFsX3BhcmVudCkpLCBfX3UuX19jLCBzaXplb2YoKHRzay0+cmVhbF9wYXJlbnQpKSk7IGRv
IHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBl
b2YoKih0c2stPnJlYWxfcGFyZW50KSkgKikoX19fX19fX19wMSkpOyB9KSwgbnMpOwogcmN1X3Jl
YWRfdW5sb2NrKCk7CgogcmV0dXJuIHBpZDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19wcGlkX25yKGNvbnN0IHN0
cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQp7CiByZXR1cm4gdGFza19wcGlkX25yX25zKHRzaywgJmlu
aXRfcGlkX25zKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHBpZF90IHRhc2tfcGdycF9ucihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRz
aykKewogcmV0dXJuIHRhc2tfcGdycF9ucl9ucyh0c2ssICZpbml0X3BpZF9ucyk7Cn0KCgoKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVu
c2lnbmVkIGludCB0YXNrX3N0YXRlX2luZGV4KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQp7CiB1
bnNpZ25lZCBpbnQgdHNrX3N0YXRlID0gKHsgdW5pb24geyB0eXBlb2YodHNrLT5zdGF0ZSkgX192
YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJih0c2stPnN0
YXRlKSwgX191Ll9fYywgc2l6ZW9mKHRzay0+c3RhdGUpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXpl
X25vY2hlY2soJih0c2stPnN0YXRlKSwgX191Ll9fYywgc2l6ZW9mKHRzay0+c3RhdGUpKTsgZG8g
eyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsKIHVuc2lnbmVkIGludCBzdGF0ZSA9ICh0c2tf
c3RhdGUgfCB0c2stPmV4aXRfc3RhdGUpICYgKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4
MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCk7CgogZG8geyBleHRlcm4g
dm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNDE3KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJy
b3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAiKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAw
MiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAx
KSkgPT0gMCB8fCAoKCgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAw
MDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKCgoKCgweDAwMDAg
fCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAw
eDAwNDApICsgMSkgPDwgMSkpIC0gMSkpICE9IDApIikpKTsgaWYgKCEoISgoKCgoMHgwMDAwIHwg
MHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgw
MDQwKSArIDEpIDw8IDEpKSA9PSAwIHx8ICgoKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8
IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkg
JiAoKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAx
MCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgLSAxKSkgIT0gMCkpKSkgX19jb21waWxl
dGltZV9hc3NlcnRfMTQxNygpOyB9IHdoaWxlICgwKTsKCiBpZiAodHNrX3N0YXRlID09ICgweDAw
MDIgfCAweDA0MDApKQogIHN0YXRlID0gKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAw
MDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSk7CgogcmV0dXJuIGZs
cyhzdGF0ZSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGNoYXIgdGFza19pbmRleF90b19jaGFyKHVuc2lnbmVkIGludCBzdGF0ZSkK
ewogc3RhdGljIGNvbnN0IGNoYXIgc3RhdGVfY2hhcltdID0gIlJTRFR0WFpQSSI7CgogZG8geyBl
eHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNDI5KHZvaWQpIF9fYXR0cmlidXRlX18o
KF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAiMSArIGlsb2cyKFRBU0tfUkVQT1JU
X01BWCkgIT0gc2l6ZW9mKHN0YXRlX2NoYXIpIC0gMSIpKSk7IGlmICghKCEoMSArICggX19idWls
dGluX2NvbnN0YW50X3AoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgw
MDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA/ICggX19idWlsdGlu
X2NvbnN0YW50X3AoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4
IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA/ICggKCgoKDB4MDAwMCB8
IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4
MDA0MCkgKyAxKSA8PCAxKSkgPCAyID8gMCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIg
fCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkp
ICYgKDFVTEwgPDwgNjMpID8gNjMgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgw
MDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgx
VUxMIDw8IDYyKSA/IDYyIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8
IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8
PCA2MSkgPyA2MSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAw
MDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNjAp
ID8gNjAgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwg
MHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDU5KSA/IDU5
IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAx
MCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1OCkgPyA1OCA6ICgo
KCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAw
eDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNTcpID8gNTcgOiAoKCgoMHgw
MDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIw
IHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDU2KSA/IDU2IDogKCgoKDB4MDAwMCB8
IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4
MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1NSkgPyA1NSA6ICgoKCgweDAwMDAgfCAweDAw
MDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDAp
ICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNTQpID8gNTQgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwg
MHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEp
IDw8IDEpKSAmICgxVUxMIDw8IDUzKSA/IDUzIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAw
MiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAx
KSkgJiAoMVVMTCA8PCA1MikgPyA1MiA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAw
eDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYg
KDFVTEwgPDwgNTEpID8gNTEgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0
IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxM
IDw8IDUwKSA/IDUwIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4
MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0
OSkgPyA0OSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDgg
fCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNDgpID8g
NDggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgw
MDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQ3KSA/IDQ3IDog
KCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8
IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0NikgPyA0NiA6ICgoKCgw
eDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAw
MjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNDUpID8gNDUgOiAoKCgoMHgwMDAw
IHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwg
MHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQ0KSA/IDQ0IDogKCgoKDB4MDAwMCB8IDB4
MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0
MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0MykgPyA0MyA6ICgoKCgweDAwMDAgfCAweDAwMDEg
fCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsg
MSkgPDwgMSkpICYgKDFVTEwgPDwgNDIpID8gNDIgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgw
MDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8
IDEpKSAmICgxVUxMIDw8IDQxKSA/IDQxIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8
IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkg
JiAoMVVMTCA8PCA0MCkgPyA0MCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAw
MDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFV
TEwgPDwgMzkpID8gMzkgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwg
MHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8
IDM4KSA/IDM4IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAw
OCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzNykg
PyAzNyA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAw
eDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMzYpID8gMzYg
OiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEw
IHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDM1KSA/IDM1IDogKCgo
KDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4
MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzNCkgPyAzNCA6ICgoKCgweDAw
MDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAg
fCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMzMpID8gMzMgOiAoKCgoMHgwMDAwIHwg
MHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgw
MDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDMyKSA/IDMyIDogKCgoKDB4MDAwMCB8IDB4MDAw
MSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkg
KyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzMSkgPyAzMSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAw
eDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkg
PDwgMSkpICYgKDFVTEwgPDwgMzApID8gMzAgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAy
IHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEp
KSAmICgxVUxMIDw8IDI5KSA/IDI5IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4
MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAo
MVVMTCA8PCAyOCkgPyAyOCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQg
fCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwg
PDwgMjcpID8gMjcgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgw
MDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDI2
KSA/IDI2IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8
IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyNSkgPyAy
NSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAw
MTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMjQpID8gMjQgOiAo
KCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwg
MHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDIzKSA/IDIzIDogKCgoKDB4
MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAy
MCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyMikgPyAyMiA6ICgoKCgweDAwMDAg
fCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAw
eDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMjEpID8gMjEgOiAoKCgoMHgwMDAwIHwgMHgw
MDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQw
KSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8
IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAx
KSA8PCAxKSkgJiAoMVVMTCA8PCAxOSkgPyAxOSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAw
MDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwg
MSkpICYgKDFVTEwgPDwgMTgpID8gMTggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwg
MHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAm
ICgxVUxMIDw8IDE3KSA/IDE3IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAw
NCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVM
TCA8PCAxNikgPyAxNiA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAw
eDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwg
MTUpID8gMTUgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4
IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDE0KSA/
IDE0IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4
MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAxMykgPyAxMyA6
ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAg
fCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMTIpID8gMTIgOiAoKCgo
MHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgw
MDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDExKSA/IDExIDogKCgoKDB4MDAw
MCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8
IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAxMCkgPyAxMCA6ICgoKCgweDAwMDAgfCAw
eDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAw
NDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgOSkgPyA5IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8
IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAx
KSA8PCAxKSkgJiAoMVVMTCA8PCA4KSA/IDggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAy
IHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEp
KSAmICgxVUxMIDw8IDcpID8gNyA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAw
MDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFV
TEwgPDwgNikgPyA2IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4
MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1
KSA/IDUgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwg
MHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQpID8gNCA6
ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAg
fCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMykgPyAzIDogKCgoKDB4
MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAy
MCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0xKSA6IChz
aXplb2YoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgw
MDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA8PSA0KSA/IF9faWxvZzJfdTMyKCgo
KDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4
MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgOiBfX2lsb2cyX3U2NCgoKCgweDAwMDAgfCAweDAw
MDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDAp
ICsgMSkgPDwgMSkpICkgIT0gc2l6ZW9mKHN0YXRlX2NoYXIpIC0gMSkpKSBfX2NvbXBpbGV0aW1l
X2Fzc2VydF8xNDI5KCk7IH0gd2hpbGUgKDApOwoKIHJldHVybiBzdGF0ZV9jaGFyW3N0YXRlXTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgY2hhciB0YXNrX3N0YXRlX3RvX2NoYXIoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCnsKIHJl
dHVybiB0YXNrX2luZGV4X3RvX2NoYXIodGFza19zdGF0ZV9pbmRleCh0c2spKTsKfQojIDE0NDgg
Ii4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaXNfZ2xvYmFsX2luaXQoc3RydWN0IHRhc2tf
c3RydWN0ICp0c2spCnsKIHJldHVybiB0YXNrX3RnaWRfbnIodHNrKSA9PSAxOwp9CgpleHRlcm4g
c3RydWN0IHBpZCAqY2FkX3BpZDsKIyAxNTE3ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCBpc19wZXJjcHVfdGhyZWFkKHZvaWQpCnsKCiByZXR1cm4gKGdldF9jdXJyZW50KCktPmZsYWdz
ICYgMHgwNDAwMDAwMCkgJiYKICAoZ2V0X2N1cnJlbnQoKS0+bnJfY3B1c19hbGxvd2VkID09IDEp
OwoKCgp9CiMgMTU0OSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19ub19uZXdf
cHJpdnMoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0ZXN0X2JpdCgwLCAmcC0+YXRv
bWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0X25vX25ld19wcml2cyhzdHJ1Y3QgdGFza19zdHJ1
Y3QgKnApIHsgc2V0X2JpdCgwLCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwcmVh
ZF9wYWdlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyByZXR1cm4gdGVzdF9iaXQoMSwgJnAtPmF0
b21pY19mbGFncyk7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCB0YXNrX3NldF9zcHJlYWRfcGFnZShzdHJ1Y3QgdGFza19zdHJ1
Y3QgKnApIHsgc2V0X2JpdCgxLCAmcC0+YXRvbWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfY2xlYXJf
c3ByZWFkX3BhZ2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IGNsZWFyX2JpdCgxLCAmcC0+YXRv
bWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwcmVhZF9zbGFiKHN0cnVjdCB0YXNrX3N0cnVjdCAq
cCkgeyByZXR1cm4gdGVzdF9iaXQoMiwgJnAtPmF0b21pY19mbGFncyk7IH0Kc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0YXNrX3Nl
dF9zcHJlYWRfc2xhYihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgc2V0X2JpdCgyLCAmcC0+YXRv
bWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfY2xlYXJfc3ByZWFkX3NsYWIoc3RydWN0IHRhc2tfc3Ry
dWN0ICpwKSB7IGNsZWFyX2JpdCgyLCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3Nw
ZWNfc3NiX2Rpc2FibGUoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0ZXN0X2JpdCgz
LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0X3NwZWNfc3NiX2Rpc2FibGUoc3Ry
dWN0IHRhc2tfc3RydWN0ICpwKSB7IHNldF9iaXQoMywgJnAtPmF0b21pY19mbGFncyk7IH0Kc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCB0YXNrX2NsZWFyX3NwZWNfc3NiX2Rpc2FibGUoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IGNs
ZWFyX2JpdCgzLCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwZWNfc3NiX25vZXhl
YyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgcmV0dXJuIHRlc3RfYml0KDcsICZwLT5hdG9taWNf
ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgdGFza19zZXRfc3BlY19zc2Jfbm9leGVjKHN0cnVjdCB0YXNrX3N0cnVj
dCAqcCkgeyBzZXRfYml0KDcsICZwLT5hdG9taWNfZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdGFza19jbGVhcl9z
cGVjX3NzYl9ub2V4ZWMoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IGNsZWFyX2JpdCg3LCAmcC0+
YXRvbWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwZWNfc3NiX2ZvcmNlX2Rpc2FibGUoc3RydWN0
IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0ZXN0X2JpdCg0LCAmcC0+YXRvbWljX2ZsYWdzKTsg
fQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHRhc2tfc2V0X3NwZWNfc3NiX2ZvcmNlX2Rpc2FibGUoc3RydWN0IHRhc2tfc3RydWN0
ICpwKSB7IHNldF9iaXQoNCwgJnAtPmF0b21pY19mbGFncyk7IH0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19zcGVjX2li
X2Rpc2FibGUoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0ZXN0X2JpdCg1LCAmcC0+
YXRvbWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0X3NwZWNfaWJfZGlzYWJsZShzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnApIHsgc2V0X2JpdCg1LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tf
Y2xlYXJfc3BlY19pYl9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyBjbGVhcl9iaXQo
NSwgJnAtPmF0b21pY19mbGFncyk7IH0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19zcGVjX2liX2ZvcmNlX2Rpc2FibGUo
c3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0ZXN0X2JpdCg2LCAmcC0+YXRvbWljX2Zs
YWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHRhc2tfc2V0X3NwZWNfaWJfZm9yY2VfZGlzYWJsZShzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnApIHsgc2V0X2JpdCg2LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApjdXJyZW50
X3Jlc3RvcmVfZmxhZ3ModW5zaWduZWQgbG9uZyBvcmlnX2ZsYWdzLCB1bnNpZ25lZCBsb25nIGZs
YWdzKQp7CiBnZXRfY3VycmVudCgpLT5mbGFncyAmPSB+ZmxhZ3M7CiBnZXRfY3VycmVudCgpLT5m
bGFncyB8PSBvcmlnX2ZsYWdzICYgZmxhZ3M7Cn0KCmV4dGVybiBpbnQgY3B1c2V0X2NwdW1hc2tf
Y2FuX3Nocmluayhjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3VyLCBjb25zdCBzdHJ1Y3QgY3B1bWFz
ayAqdHJpYWwpOwpleHRlcm4gaW50IHRhc2tfY2FuX2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnAsIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjc19jcHVzX2FsbG93ZWQpOwoKZXh0ZXJuIHZvaWQg
ZG9fc2V0X2NwdXNfYWxsb3dlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGNvbnN0IHN0cnVjdCBj
cHVtYXNrICpuZXdfbWFzayk7CmV4dGVybiBpbnQgc2V0X2NwdXNfYWxsb3dlZF9wdHIoc3RydWN0
IHRhc2tfc3RydWN0ICpwLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbmV3X21hc2spOwojIDE2MDIg
Ii4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgpleHRlcm4gaW50IHlpZWxkX3RvKHN0cnVjdCB0YXNr
X3N0cnVjdCAqcCwgYm9vbCBwcmVlbXB0KTsKZXh0ZXJuIHZvaWQgc2V0X3VzZXJfbmljZShzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnAsIGxvbmcgbmljZSk7CmV4dGVybiBpbnQgdGFza19wcmlvKGNvbnN0
IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGFza19uaWNlKGNvbnN0IHN0cnVj
dCB0YXNrX3N0cnVjdCAqcCkKewogcmV0dXJuICgoKHApLT5zdGF0aWNfcHJpbykgLSAoMTAwICsg
KDE5IC0gLTIwICsgMSkgLyAyKSk7Cn0KCmV4dGVybiBpbnQgY2FuX25pY2UoY29uc3Qgc3RydWN0
IHRhc2tfc3RydWN0ICpwLCBjb25zdCBpbnQgbmljZSk7CmV4dGVybiBpbnQgdGFza19jdXJyKGNv
bnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CmV4dGVybiBpbnQgaWRsZV9jcHUoaW50IGNwdSk7
CmV4dGVybiBpbnQgYXZhaWxhYmxlX2lkbGVfY3B1KGludCBjcHUpOwpleHRlcm4gaW50IHNjaGVk
X3NldHNjaGVkdWxlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgaW50LCBjb25zdCBzdHJ1Y3Qgc2No
ZWRfcGFyYW0gKik7CmV4dGVybiBpbnQgc2NoZWRfc2V0c2NoZWR1bGVyX25vY2hlY2soc3RydWN0
IHRhc2tfc3RydWN0ICosIGludCwgY29uc3Qgc3RydWN0IHNjaGVkX3BhcmFtICopOwpleHRlcm4g
aW50IHNjaGVkX3NldGF0dHIoc3RydWN0IHRhc2tfc3RydWN0ICosIGNvbnN0IHN0cnVjdCBzY2hl
ZF9hdHRyICopOwpleHRlcm4gaW50IHNjaGVkX3NldGF0dHJfbm9jaGVjayhzdHJ1Y3QgdGFza19z
dHJ1Y3QgKiwgY29uc3Qgc3RydWN0IHNjaGVkX2F0dHIgKik7CmV4dGVybiBzdHJ1Y3QgdGFza19z
dHJ1Y3QgKmlkbGVfdGFzayhpbnQgY3B1KTsKCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaXNfaWRsZV90YXNrKGNvbnN0
IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKewogcmV0dXJuICEhKHAtPmZsYWdzICYgMHgwMDAwMDAw
Mik7Cn0KCmV4dGVybiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnJfdGFzayhpbnQgY3B1KTsKZXh0
ZXJuIHZvaWQgaWE2NF9zZXRfY3Vycl90YXNrKGludCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAq
cCk7Cgp2b2lkIHlpZWxkKHZvaWQpOwoKdW5pb24gdGhyZWFkX3VuaW9uIHsKCiBzdHJ1Y3QgdGFz
a19zdHJ1Y3QgdGFzazsKCgoKCiB1bnNpZ25lZCBsb25nIHN0YWNrWygoKDFVTCkgPDwgMTIpIDw8
ICgyICsgMCkpL3NpemVvZihsb25nKV07Cn07CgoKCgoKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5p
dF9zdGFja1soKCgxVUwpIDw8IDEyKSA8PCAoMiArIDApKSAvIHNpemVvZih1bnNpZ25lZCBsb25n
KV07CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgc3RydWN0IHRocmVhZF9pbmZvICp0YXNrX3RocmVhZF9pbmZvKHN0cnVjdCB0YXNrX3N0
cnVjdCAqdGFzaykKewogcmV0dXJuICZ0YXNrLT50aHJlYWRfaW5mbzsKfQojIDE2NzkgIi4vaW5j
bHVkZS9saW51eC9zY2hlZC5oIgpleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpmaW5kX3Rhc2tf
YnlfdnBpZChwaWRfdCBucik7CmV4dGVybiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmZpbmRfdGFza19i
eV9waWRfbnMocGlkX3QgbnIsIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucyk7CgoKCgpleHRlcm4g
c3RydWN0IHRhc2tfc3RydWN0ICpmaW5kX2dldF90YXNrX2J5X3ZwaWQocGlkX3QgbnIpOwoKZXh0
ZXJuIGludCB3YWtlX3VwX3N0YXRlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCB1bnNpZ25lZCBp
bnQgc3RhdGUpOwpleHRlcm4gaW50IHdha2VfdXBfcHJvY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnRzayk7CmV4dGVybiB2b2lkIHdha2VfdXBfbmV3X3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICp0
c2spOwoKCmV4dGVybiB2b2lkIGtpY2tfcHJvY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7
CgoKCgpleHRlcm4gdm9pZCBfX3NldF90YXNrX2NvbW0oc3RydWN0IHRhc2tfc3RydWN0ICp0c2ss
IGNvbnN0IGNoYXIgKmZyb20sIGJvb2wgZXhlYyk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF90YXNrX2NvbW0oc3RydWN0
IHRhc2tfc3RydWN0ICp0c2ssIGNvbnN0IGNoYXIgKmZyb20pCnsKIF9fc2V0X3Rhc2tfY29tbSh0
c2ssIGZyb20sIGZhbHNlKTsKfQoKZXh0ZXJuIGNoYXIgKl9fZ2V0X3Rhc2tfY29tbShjaGFyICp0
bywgc2l6ZV90IGxlbiwgc3RydWN0IHRhc2tfc3RydWN0ICp0c2spOwoKCgoKCgp2b2lkIHNjaGVk
dWxlcl9pcGkodm9pZCk7CmV4dGVybiB1bnNpZ25lZCBsb25nIHdhaXRfdGFza19pbmFjdGl2ZShz
dHJ1Y3QgdGFza19zdHJ1Y3QgKiwgbG9uZyBtYXRjaF9zdGF0ZSk7CiMgMTcyNSAiLi9pbmNsdWRl
L2xpbnV4L3NjaGVkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X3Rza190aHJlYWRfZmxhZyhzdHJ1Y3QgdGFza19zdHJ1
Y3QgKnRzaywgaW50IGZsYWcpCnsKIHNldF90aV90aHJlYWRfZmxhZyh0YXNrX3RocmVhZF9pbmZv
KHRzayksIGZsYWcpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNsZWFyX3Rza190aHJlYWRfZmxhZyhzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnRzaywgaW50IGZsYWcpCnsKIGNsZWFyX3RpX3RocmVhZF9mbGFnKHRhc2tfdGhyZWFk
X2luZm8odHNrKSwgZmxhZyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdXBkYXRlX3Rza190aHJlYWRfZmxhZyhzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRzaywgaW50IGZsYWcsCiAgICAgICBib29sIHZhbHVlKQp7CiB1cGRhdGVf
dGlfdGhyZWFkX2ZsYWcodGFza190aHJlYWRfaW5mbyh0c2spLCBmbGFnLCB2YWx1ZSk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCB0ZXN0X2FuZF9zZXRfdHNrX3RocmVhZF9mbGFnKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBp
bnQgZmxhZykKewogcmV0dXJuIHRlc3RfYW5kX3NldF90aV90aHJlYWRfZmxhZyh0YXNrX3RocmVh
ZF9pbmZvKHRzayksIGZsYWcpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGVzdF9hbmRfY2xlYXJfdHNrX3RocmVhZF9mbGFn
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgZmxhZykKewogcmV0dXJuIHRlc3RfYW5kX2Ns
ZWFyX3RpX3RocmVhZF9mbGFnKHRhc2tfdGhyZWFkX2luZm8odHNrKSwgZmxhZyk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0
ZXN0X3Rza190aHJlYWRfZmxhZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGZsYWcpCnsK
IHJldHVybiB0ZXN0X3RpX3RocmVhZF9mbGFnKHRhc2tfdGhyZWFkX2luZm8odHNrKSwgZmxhZyk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgc2V0X3Rza19uZWVkX3Jlc2NoZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCnsK
IHNldF90c2tfdGhyZWFkX2ZsYWcodHNrLDMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNsZWFyX3Rza19uZWVkX3Jlc2No
ZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCnsKIGNsZWFyX3Rza190aHJlYWRfZmxhZyh0c2ss
Myk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCB0ZXN0X3Rza19uZWVkX3Jlc2NoZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2sp
CnsKIHJldHVybiBfX2J1aWx0aW5fZXhwZWN0KCEhKHRlc3RfdHNrX3RocmVhZF9mbGFnKHRzaywz
KSksIDApOwp9CiMgMTc3OCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCmV4dGVybiBpbnQgX2Nv
bmRfcmVzY2hlZCh2b2lkKTsKIyAxNzg4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKZXh0ZXJu
IGludCBfX2NvbmRfcmVzY2hlZF9sb2NrKHNwaW5sb2NrX3QgKmxvY2spOwoKCgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNv
bmRfcmVzY2hlZF9yY3Uodm9pZCkKewoKIHJjdV9yZWFkX3VubG9jaygpOwogKHsgX19fbWlnaHRf
c2xlZXAoImluY2x1ZGUvbGludXgvc2NoZWQuaCIsIDE3OTksIDApOyBfY29uZF9yZXNjaGVkKCk7
IH0pOwogcmN1X3JlYWRfbG9jaygpOwoKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc3Bpbl9uZWVkYnJlYWsoc3Bpbmxv
Y2tfdCAqbG9jaykKewoKCgogcmV0dXJuIDA7Cgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIGJvb2wgbmVlZF9yZXNjaGVkKHZvaWQpCnsKIHJldHVybiBfX2J1aWx0aW5fZXhw
ZWN0KCEhKHRlc3RfdGlfdGhyZWFkX2ZsYWcoKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilnZXRfY3Vy
cmVudCgpKSwgMykpLCAwKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgdGFza19jcHUoY29uc3Qgc3Ry
dWN0IHRhc2tfc3RydWN0ICpwKQp7CgogcmV0dXJuICh7IHVuaW9uIHsgdHlwZW9mKHAtPmNwdSkg
X192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihwLT5j
cHUpLCBfX3UuX19jLCBzaXplb2YocC0+Y3B1KSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2No
ZWNrKCYocC0+Y3B1KSwgX191Ll9fYywgc2l6ZW9mKHAtPmNwdSkpOyBkbyB7IH0gd2hpbGUgKDAp
OyBfX3UuX192YWw7IH0pOwoKCgp9CgpleHRlcm4gdm9pZCBzZXRfdGFza19jcHUoc3RydWN0IHRh
c2tfc3RydWN0ICpwLCB1bnNpZ25lZCBpbnQgY3B1KTsKIyAxODY3ICIuL2luY2x1ZGUvbGludXgv
c2NoZWQuaCIKZXh0ZXJuIGxvbmcgc2NoZWRfc2V0YWZmaW5pdHkocGlkX3QgcGlkLCBjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqbmV3X21hc2spOwpleHRlcm4gbG9uZyBzY2hlZF9nZXRhZmZpbml0eShw
aWRfdCBwaWQsIHN0cnVjdCBjcHVtYXNrICptYXNrKTsKIyAxODgwICIuL2luY2x1ZGUvbGludXgv
c2NoZWQuaCIKZW51bSByc2VxX2V2ZW50X21hc2tfYml0cyB7CiBSU0VRX0VWRU5UX1BSRUVNUFRf
QklUID0gUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fUFJFRU1QVF9CSVQsCiBSU0VRX0VWRU5U
X1NJR05BTF9CSVQgPSBSU0VRX0NTX0ZMQUdfTk9fUkVTVEFSVF9PTl9TSUdOQUxfQklULAogUlNF
UV9FVkVOVF9NSUdSQVRFX0JJVCA9IFJTRVFfQ1NfRkxBR19OT19SRVNUQVJUX09OX01JR1JBVEVf
QklULAp9OwoKZW51bSByc2VxX2V2ZW50X21hc2sgewogUlNFUV9FVkVOVF9QUkVFTVBUID0gKDFV
IDw8IFJTRVFfRVZFTlRfUFJFRU1QVF9CSVQpLAogUlNFUV9FVkVOVF9TSUdOQUwgPSAoMVUgPDwg
UlNFUV9FVkVOVF9TSUdOQUxfQklUKSwKIFJTRVFfRVZFTlRfTUlHUkFURSA9ICgxVSA8PCBSU0VR
X0VWRU5UX01JR1JBVEVfQklUKSwKfTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9zZXRfbm90aWZ5X3Jlc3VtZShzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnQpCnsKIGlmICh0LT5yc2VxKQogIHNldF90c2tfdGhyZWFkX2ZsYWco
dCwgMSk7Cn0KCnZvaWQgX19yc2VxX2hhbmRsZV9ub3RpZnlfcmVzdW1lKHN0cnVjdCBrc2lnbmFs
ICpzaWcsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9oYW5kbGVfbm90aWZ5X3Jl
c3VtZShzdHJ1Y3Qga3NpZ25hbCAqa3NpZywKICAgICAgICAgIHN0cnVjdCBwdF9yZWdzICpyZWdz
KQp7CiBpZiAoZ2V0X2N1cnJlbnQoKS0+cnNlcSkKICBfX3JzZXFfaGFuZGxlX25vdGlmeV9yZXN1
bWUoa3NpZywgcmVncyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9zaWduYWxfZGVsaXZlcihzdHJ1Y3Qga3NpZ25h
bCAqa3NpZywKICAgICAgICAgICBzdHJ1Y3QgcHRfcmVncyAqcmVncykKewogX19hc21fXyBfX3Zv
bGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIF9fc2V0X2JpdChSU0VRX0VWRU5UX1NJR05BTF9C
SVQsICZnZXRfY3VycmVudCgpLT5yc2VxX2V2ZW50X21hc2spOwogX19hc21fXyBfX3ZvbGF0aWxl
X18oIiI6IDogOiJtZW1vcnkiKTsKIHJzZXFfaGFuZGxlX25vdGlmeV9yZXN1bWUoa3NpZywgcmVn
cyk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHJzZXFfcHJlZW1wdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpCnsKIF9fc2V0
X2JpdChSU0VRX0VWRU5UX1BSRUVNUFRfQklULCAmdC0+cnNlcV9ldmVudF9tYXNrKTsKIHJzZXFf
c2V0X25vdGlmeV9yZXN1bWUodCk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJzZXFfbWlncmF0ZShzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnQpCnsKIF9fc2V0X2JpdChSU0VRX0VWRU5UX01JR1JBVEVfQklULCAmdC0+cnNlcV9l
dmVudF9tYXNrKTsKIHJzZXFfc2V0X25vdGlmeV9yZXN1bWUodCk7Cn0KCgoKCgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJzZXFf
Zm9yayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQsIHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MpCnsK
IGlmIChjbG9uZV9mbGFncyAmIDB4MDAwMDAxMDApIHsKICB0LT5yc2VxID0gKCh2b2lkICopMCk7
CiAgdC0+cnNlcV9zaWcgPSAwOwogIHQtPnJzZXFfZXZlbnRfbWFzayA9IDA7CiB9IGVsc2Ugewog
IHQtPnJzZXEgPSBnZXRfY3VycmVudCgpLT5yc2VxOwogIHQtPnJzZXFfc2lnID0gZ2V0X2N1cnJl
bnQoKS0+cnNlcV9zaWc7CiAgdC0+cnNlcV9ldmVudF9tYXNrID0gZ2V0X2N1cnJlbnQoKS0+cnNl
cV9ldmVudF9tYXNrOwogfQp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJzZXFfZXhlY3ZlKHN0cnVjdCB0YXNrX3N0cnVjdCAq
dCkKewogdC0+cnNlcSA9ICgodm9pZCAqKTApOwogdC0+cnNlcV9zaWcgPSAwOwogdC0+cnNlcV9l
dmVudF9tYXNrID0gMDsKfQojIDE5ODIgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgp2b2lkIF9f
ZXhpdF91bWgoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spOwoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBleGl0X3VtaChzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRzaykKewogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEodHNrLT5mbGFncyAm
IDB4MDIwMDAwMDApLCAwKSkKICBfX2V4aXRfdW1oKHRzayk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9z
eXNjYWxsKHN0cnVjdCBwdF9yZWdzICpyZWdzKQp7Cn0KCgoKY29uc3Qgc3RydWN0IHNjaGVkX2F2
ZyAqc2NoZWRfdHJhY2VfY2ZzX3JxX2F2ZyhzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEpOwpjaGFyICpz
Y2hlZF90cmFjZV9jZnNfcnFfcGF0aChzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIGNoYXIgKnN0ciwg
aW50IGxlbik7CmludCBzY2hlZF90cmFjZV9jZnNfcnFfY3B1KHN0cnVjdCBjZnNfcnEgKmNmc19y
cSk7Cgpjb25zdCBzdHJ1Y3Qgc2NoZWRfYXZnICpzY2hlZF90cmFjZV9ycV9hdmdfcnQoc3RydWN0
IHJxICpycSk7CmNvbnN0IHN0cnVjdCBzY2hlZF9hdmcgKnNjaGVkX3RyYWNlX3JxX2F2Z19kbChz
dHJ1Y3QgcnEgKnJxKTsKY29uc3Qgc3RydWN0IHNjaGVkX2F2ZyAqc2NoZWRfdHJhY2VfcnFfYXZn
X2lycShzdHJ1Y3QgcnEgKnJxKTsKCmludCBzY2hlZF90cmFjZV9ycV9jcHUoc3RydWN0IHJxICpy
cSk7Cgpjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc2NoZWRfdHJhY2VfcmRfc3BhbihzdHJ1Y3Qgcm9v
dF9kb21haW4gKnJkKTsKIyA2ICIuL2luY2x1ZGUvbGludXgvaW9wcmlvLmgiIDIKIyAxICIuL2lu
Y2x1ZGUvbGludXgvc2NoZWQvcnQuaCIgMQoKCgoKCgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
cnRfcHJpbyhpbnQgcHJpbykKewogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEocHJpbyA8IDEwMCks
IDApKQogIHJldHVybiAxOwogcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBydF90YXNrKHN0cnVjdCB0YXNrX3N0
cnVjdCAqcCkKewogcmV0dXJuIHJ0X3ByaW8ocC0+cHJpbyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19pc19yZWFs
dGltZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKewogaW50IHBvbGljeSA9IHRzay0+cG9saWN5
OwoKIGlmIChwb2xpY3kgPT0gMSB8fCBwb2xpY3kgPT0gMikKICByZXR1cm4gdHJ1ZTsKIGlmIChw
b2xpY3kgPT0gNikKICByZXR1cm4gdHJ1ZTsKIHJldHVybiBmYWxzZTsKfQoKCgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB0
YXNrX3N0cnVjdCAqcnRfbXV0ZXhfZ2V0X3RvcF90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkK
ewogcmV0dXJuIHAtPnBpX3RvcF90YXNrOwp9CmV4dGVybiB2b2lkIHJ0X211dGV4X3NldHByaW8o
c3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBpX3Rhc2spOwpleHRl
cm4gdm9pZCBydF9tdXRleF9hZGp1c3RfcGkoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0
c2tfaXNfcGlfYmxvY2tlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKewogcmV0dXJuIHRzay0+
cGlfYmxvY2tlZF9vbiAhPSAoKHZvaWQgKikwKTsKfQojIDU4ICIuL2luY2x1ZGUvbGludXgvc2No
ZWQvcnQuaCIKZXh0ZXJuIHZvaWQgbm9ybWFsaXplX3J0X3Rhc2tzKHZvaWQpOwojIDcgIi4vaW5j
bHVkZS9saW51eC9pb3ByaW8uaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaCIg
MQojIDkgIi4vaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaCIKZW51bSB7CiBJQ1FfRVhJVEVEID0g
MSA8PCAyLAp9OwojIDcyICIuL2luY2x1ZGUvbGludXgvaW9jb250ZXh0LmgiCnN0cnVjdCBpb19j
cSB7CiBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcTsKIHN0cnVjdCBpb19jb250ZXh0ICppb2M7CgoK
CgoKCgogdW5pb24gewogIHN0cnVjdCBsaXN0X2hlYWQgcV9ub2RlOwogIHN0cnVjdCBrbWVtX2Nh
Y2hlICpfX3JjdV9pY3FfY2FjaGU7CiB9OwogdW5pb24gewogIHN0cnVjdCBobGlzdF9ub2RlIGlv
Y19ub2RlOwogIHN0cnVjdCBjYWxsYmFja19oZWFkIF9fcmN1X2hlYWQ7CiB9OwoKIHVuc2lnbmVk
IGludCBmbGFnczsKfTsKCgoKCgpzdHJ1Y3QgaW9fY29udGV4dCB7CiBhdG9taWNfbG9uZ190IHJl
ZmNvdW50OwogYXRvbWljX3QgYWN0aXZlX3JlZjsKIGF0b21pY190IG5yX3Rhc2tzOwoKCiBzcGlu
bG9ja190IGxvY2s7CgogdW5zaWduZWQgc2hvcnQgaW9wcmlvOwoKCgoKIGludCBucl9iYXRjaF9y
ZXF1ZXN0czsKIHVuc2lnbmVkIGxvbmcgbGFzdF93YWl0ZWQ7Cgogc3RydWN0IHhhcnJheSBpY3Ff
dHJlZTsKIHN0cnVjdCBpb19jcSAqaWNxX2hpbnQ7CiBzdHJ1Y3QgaGxpc3RfaGVhZCBpY3FfbGlz
dDsKCiBzdHJ1Y3Qgd29ya19zdHJ1Y3QgcmVsZWFzZV93b3JrOwp9OwojIDEyOSAiLi9pbmNsdWRl
L2xpbnV4L2lvY29udGV4dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGdldF9pb19jb250ZXh0X2FjdGl2ZShzdHJ1Y3QgaW9f
Y29udGV4dCAqaW9jKQp7CiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGF0b21pY19sb25nX3Jl
YWQoJmlvYy0+cmVmY291bnQpIDw9IDApOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93
YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0
ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIy
Olx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJc
dCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29y
ZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50
cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImlu
Y2x1ZGUvbGludXgvaW9jb250ZXh0LmgiKSwgImkiICgxMzEpLCAiaSIgKCgxIDw8IDApfCgoMSA8
PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3
aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2Nh
cmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIg
OiA6ICJpIiAoMjUpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0
X3dhcm5fb24pLCAwKTsgfSk7CiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGF0b21pY19yZWFk
KCZpb2MtPmFjdGl2ZV9yZWYpIDw9IDApOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93
YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0
ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIy
Olx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJc
dCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29y
ZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50
cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImlu
Y2x1ZGUvbGludXgvaW9jb250ZXh0LmgiKSwgImkiICgxMzIpLCAiaSIgKCgxIDw8IDApfCgoMSA8
PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3
aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2Nh
cmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIg
OiA6ICJpIiAoMjYpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0
X3dhcm5fb24pLCAwKTsgfSk7CiBhdG9taWNfbG9uZ19pbmMoJmlvYy0+cmVmY291bnQpOwogYXRv
bWljX2luYygmaW9jLT5hY3RpdmVfcmVmKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpb2NfdGFza19saW5rKHN0cnVjdCBp
b19jb250ZXh0ICppb2MpCnsKIGdldF9pb19jb250ZXh0X2FjdGl2ZShpb2MpOwoKICh7IGludCBf
X3JldF93YXJuX29uID0gISEoYXRvbWljX3JlYWQoJmlvYy0+bnJfdGFza3MpIDw9IDApOyBpZiAo
X19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19p
bmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rp
b24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0
IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQj
IGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4i
ICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4i
ICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvaW9jb250ZXh0LmgiKSwgImki
ICgxNDEpLCAiaSIgKCgxIDw8IDApfCgoMSA8PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXpl
b2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMw
OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIg
LSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMjcpKTsgfSk7IH0gd2hpbGUgKDAp
OyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CiBhdG9taWNfaW5j
KCZpb2MtPm5yX3Rhc2tzKTsKfQoKc3RydWN0IHRhc2tfc3RydWN0OwoKdm9pZCBwdXRfaW9fY29u
dGV4dChzdHJ1Y3QgaW9fY29udGV4dCAqaW9jKTsKdm9pZCBwdXRfaW9fY29udGV4dF9hY3RpdmUo
c3RydWN0IGlvX2NvbnRleHQgKmlvYyk7CnZvaWQgZXhpdF9pb19jb250ZXh0KHN0cnVjdCB0YXNr
X3N0cnVjdCAqdGFzayk7CnN0cnVjdCBpb19jb250ZXh0ICpnZXRfdGFza19pb19jb250ZXh0KHN0
cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywKICAgICAgICAgICBnZnBfdCBnZnBfZmxhZ3MsIGludCBu
b2RlKTsKIyA4ICIuL2luY2x1ZGUvbGludXgvaW9wcmlvLmgiIDIKIyAyNyAiLi9pbmNsdWRlL2xp
bnV4L2lvcHJpby5oIgplbnVtIHsKIElPUFJJT19DTEFTU19OT05FLAogSU9QUklPX0NMQVNTX1JU
LAogSU9QUklPX0NMQVNTX0JFLAogSU9QUklPX0NMQVNTX0lETEUsCn07CgoKCgoKCmVudW0gewog
SU9QUklPX1dIT19QUk9DRVNTID0gMSwKIElPUFJJT19XSE9fUEdSUCwKIElPUFJJT19XSE9fVVNF
UiwKfTsKIyA1NCAiLi9pbmNsdWRlL2xpbnV4L2lvcHJpby5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGFza19uaWNlX2lvcHJp
byhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCnsKIHJldHVybiAodGFza19uaWNlKHRhc2spICsg
MjApIC8gNTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCB0YXNrX25pY2VfaW9jbGFzcyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnRhc2spCnsKIGlmICh0YXNrLT5wb2xpY3kgPT0gNSkKICByZXR1cm4gSU9QUklPX0NMQVNTX0lE
TEU7CiBlbHNlIGlmICh0YXNrX2lzX3JlYWx0aW1lKHRhc2spKQogIHJldHVybiBJT1BSSU9fQ0xB
U1NfUlQ7CiBlbHNlCiAgcmV0dXJuIElPUFJJT19DTEFTU19CRTsKfQoKCgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBnZXRfY3Vy
cmVudF9pb3ByaW8odm9pZCkKewogc3RydWN0IGlvX2NvbnRleHQgKmlvYyA9IGdldF9jdXJyZW50
KCktPmlvX2NvbnRleHQ7CgogaWYgKGlvYykKICByZXR1cm4gaW9jLT5pb3ByaW87CiByZXR1cm4g
KCgoSU9QUklPX0NMQVNTX05PTkUpIDw8ICgxMykpIHwgMCk7Cn0KCgoKCmV4dGVybiBpbnQgaW9w
cmlvX2Jlc3QodW5zaWduZWQgc2hvcnQgYXByaW8sIHVuc2lnbmVkIHNob3J0IGJwcmlvKTsKCmV4
dGVybiBpbnQgc2V0X3Rhc2tfaW9wcmlvKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgaW50IGlv
cHJpbyk7CgoKZXh0ZXJuIGludCBpb3ByaW9fY2hlY2tfY2FwKGludCBpb3ByaW8pOwojIDQwICIu
L2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9mc190eXBlcy5oIiAx
CiMgNzEgIi4vaW5jbHVkZS9saW51eC9mc190eXBlcy5oIgpleHRlcm4gdW5zaWduZWQgY2hhciBm
c19mdHlwZV90b19kdHlwZSh1bnNpZ25lZCBpbnQgZmlsZXR5cGUpOwpleHRlcm4gdW5zaWduZWQg
Y2hhciBmc191bW9kZV90b19mdHlwZSh1bW9kZV90IG1vZGUpOwpleHRlcm4gdW5zaWduZWQgY2hh
ciBmc191bW9kZV90b19kdHlwZSh1bW9kZV90IG1vZGUpOwojIDQxICIuL2luY2x1ZGUvbGludXgv
ZnMuaCIgMgoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9mcy5oIiAxCiMgNTQgIi4vaW5j
bHVkZS91YXBpL2xpbnV4L2ZzLmgiCnN0cnVjdCBmaWxlX2Nsb25lX3JhbmdlIHsKIF9fczY0IHNy
Y19mZDsKIF9fdTY0IHNyY19vZmZzZXQ7CiBfX3U2NCBzcmNfbGVuZ3RoOwogX191NjQgZGVzdF9v
ZmZzZXQ7Cn07CgpzdHJ1Y3QgZnN0cmltX3JhbmdlIHsKIF9fdTY0IHN0YXJ0OwogX191NjQgbGVu
OwogX191NjQgbWlubGVuOwp9OwoKCgoKCgpzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2VfaW5mbyB7
CiBfX3M2NCBkZXN0X2ZkOwogX191NjQgZGVzdF9vZmZzZXQ7CiBfX3U2NCBieXRlc19kZWR1cGVk
OwoKCgoKCgogX19zMzIgc3RhdHVzOwogX191MzIgcmVzZXJ2ZWQ7Cn07CgoKc3RydWN0IGZpbGVf
ZGVkdXBlX3JhbmdlIHsKIF9fdTY0IHNyY19vZmZzZXQ7CiBfX3U2NCBzcmNfbGVuZ3RoOwogX191
MTYgZGVzdF9jb3VudDsKIF9fdTE2IHJlc2VydmVkMTsKIF9fdTMyIHJlc2VydmVkMjsKIHN0cnVj
dCBmaWxlX2RlZHVwZV9yYW5nZV9pbmZvIGluZm9bMF07Cn07CgoKc3RydWN0IGZpbGVzX3N0YXRf
c3RydWN0IHsKIHVuc2lnbmVkIGxvbmcgbnJfZmlsZXM7CiB1bnNpZ25lZCBsb25nIG5yX2ZyZWVf
ZmlsZXM7CiB1bnNpZ25lZCBsb25nIG1heF9maWxlczsKfTsKCnN0cnVjdCBpbm9kZXNfc3RhdF90
IHsKIGxvbmcgbnJfaW5vZGVzOwogbG9uZyBucl91bnVzZWQ7CiBsb25nIGR1bW15WzVdOwp9OwoK
CgoKCgoKc3RydWN0IGZzeGF0dHIgewogX191MzIgZnN4X3hmbGFnczsKIF9fdTMyIGZzeF9leHRz
aXplOwogX191MzIgZnN4X25leHRlbnRzOwogX191MzIgZnN4X3Byb2ppZDsKIF9fdTMyIGZzeF9j
b3dleHRzaXplOwogdW5zaWduZWQgY2hhciBmc3hfcGFkWzhdOwp9OwojIDI4NSAiLi9pbmNsdWRl
L3VhcGkvbGludXgvZnMuaCIKdHlwZWRlZiBpbnQgX19rZXJuZWxfcndmX3Q7CiMgNDYgIi4vaW5j
bHVkZS9saW51eC9mcy5oIiAyCgpzdHJ1Y3QgYmFja2luZ19kZXZfaW5mbzsKc3RydWN0IGJkaV93
cml0ZWJhY2s7CnN0cnVjdCBiaW87CnN0cnVjdCBleHBvcnRfb3BlcmF0aW9uczsKc3RydWN0IGhk
X2dlb21ldHJ5OwpzdHJ1Y3QgaW92ZWM7CnN0cnVjdCBraW9jYjsKc3RydWN0IGtvYmplY3Q7CnN0
cnVjdCBwaXBlX2lub2RlX2luZm87CnN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdDsKc3RydWN0IGtz
dGF0ZnM7CnN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKc3RydWN0IHZmc21vdW50OwpzdHJ1Y3QgY3Jl
ZDsKc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3Q7CnN0cnVjdCBzZXFfZmlsZTsKc3RydWN0IHdvcmtx
dWV1ZV9zdHJ1Y3Q7CnN0cnVjdCBpb3ZfaXRlcjsKc3RydWN0IGZzY3J5cHRfaW5mbzsKc3RydWN0
IGZzY3J5cHRfb3BlcmF0aW9uczsKc3RydWN0IGZzdmVyaXR5X2luZm87CnN0cnVjdCBmc3Zlcml0
eV9vcGVyYXRpb25zOwpzdHJ1Y3QgZnNfY29udGV4dDsKc3RydWN0IGZzX3BhcmFtZXRlcl9zcGVj
OwoKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkp
IF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgaW5vZGVfaW5pdCh2b2lkKTsKZXh0ZXJuIHZvaWQg
X19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18o
KF9fY29sZF9fKSkgaW5vZGVfaW5pdF9lYXJseSh2b2lkKTsKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1
dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9f
KSkgZmlsZXNfaW5pdCh2b2lkKTsKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9u
X18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgZmlsZXNfbWF4Zmls
ZXNfaW5pdCh2b2lkKTsKCmV4dGVybiBzdHJ1Y3QgZmlsZXNfc3RhdF9zdHJ1Y3QgZmlsZXNfc3Rh
dDsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZ2V0X21heF9maWxlcyh2b2lkKTsKZXh0ZXJuIHVuc2ln
bmVkIGludCBzeXNjdGxfbnJfb3BlbjsKZXh0ZXJuIHN0cnVjdCBpbm9kZXNfc3RhdF90IGlub2Rl
c19zdGF0OwpleHRlcm4gaW50IGxlYXNlc19lbmFibGUsIGxlYXNlX2JyZWFrX3RpbWU7CmV4dGVy
biBpbnQgc3lzY3RsX3Byb3RlY3RlZF9zeW1saW5rczsKZXh0ZXJuIGludCBzeXNjdGxfcHJvdGVj
dGVkX2hhcmRsaW5rczsKZXh0ZXJuIGludCBzeXNjdGxfcHJvdGVjdGVkX2ZpZm9zOwpleHRlcm4g
aW50IHN5c2N0bF9wcm90ZWN0ZWRfcmVndWxhcjsKCnR5cGVkZWYgX19rZXJuZWxfcndmX3Qgcndm
X3Q7CgpzdHJ1Y3QgYnVmZmVyX2hlYWQ7CnR5cGVkZWYgaW50IChnZXRfYmxvY2tfdCkoc3RydWN0
IGlub2RlICppbm9kZSwgc2VjdG9yX3QgaWJsb2NrLAogICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJo
X3Jlc3VsdCwgaW50IGNyZWF0ZSk7CnR5cGVkZWYgaW50IChkaW9faW9kb25lX3QpKHN0cnVjdCBr
aW9jYiAqaW9jYiwgbG9mZl90IG9mZnNldCwKICAgc3NpemVfdCBieXRlcywgdm9pZCAqcHJpdmF0
ZSk7CiMgMjI0ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RydWN0IGlhdHRyIHsKIHVuc2lnbmVk
IGludCBpYV92YWxpZDsKIHVtb2RlX3QgaWFfbW9kZTsKIGt1aWRfdCBpYV91aWQ7CiBrZ2lkX3Qg
aWFfZ2lkOwogbG9mZl90IGlhX3NpemU7CiBzdHJ1Y3QgdGltZXNwZWM2NCBpYV9hdGltZTsKIHN0
cnVjdCB0aW1lc3BlYzY0IGlhX210aW1lOwogc3RydWN0IHRpbWVzcGVjNjQgaWFfY3RpbWU7CgoK
CgoKCiBzdHJ1Y3QgZmlsZSAqaWFfZmlsZTsKfTsKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3F1
b3RhLmgiIDEKIyA0MCAiLi9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L3BlcmNwdV9jb3VudGVyLmgiIDEKIyAyMCAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdV9jb3Vu
dGVyLmgiCnN0cnVjdCBwZXJjcHVfY291bnRlciB7CiByYXdfc3BpbmxvY2tfdCBsb2NrOwogczY0
IGNvdW50OwoKIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKCiBzMzIgKmNvdW50ZXJzOwp9OwoKZXh0
ZXJuIGludCBwZXJjcHVfY291bnRlcl9iYXRjaDsKCmludCBfX3BlcmNwdV9jb3VudGVyX2luaXQo
c3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMsIHM2NCBhbW91bnQsIGdmcF90IGdmcCwKICAgICBz
dHJ1Y3QgbG9ja19jbGFzc19rZXkgKmtleSk7CiMgNDEgIi4vaW5jbHVkZS9saW51eC9wZXJjcHVf
Y291bnRlci5oIgp2b2lkIHBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koc3RydWN0IHBlcmNwdV9jb3Vu
dGVyICpmYmMpOwp2b2lkIHBlcmNwdV9jb3VudGVyX3NldChzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIg
KmZiYywgczY0IGFtb3VudCk7CnZvaWQgcGVyY3B1X2NvdW50ZXJfYWRkX2JhdGNoKHN0cnVjdCBw
ZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50LAogICAgICAgICBzMzIgYmF0Y2gpOwpzNjQg
X19wZXJjcHVfY291bnRlcl9zdW0oc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMpOwppbnQgX19w
ZXJjcHVfY291bnRlcl9jb21wYXJlKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgcmhz
LCBzMzIgYmF0Y2gpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHBlcmNwdV9jb3VudGVyX2NvbXBhcmUoc3RydWN0IHBlcmNwdV9j
b3VudGVyICpmYmMsIHM2NCByaHMpCnsKIHJldHVybiBfX3BlcmNwdV9jb3VudGVyX2NvbXBhcmUo
ZmJjLCByaHMsIHBlcmNwdV9jb3VudGVyX2JhdGNoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVfY291bnRlcl9h
ZGQoc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMsIHM2NCBhbW91bnQpCnsKIHBlcmNwdV9jb3Vu
dGVyX2FkZF9iYXRjaChmYmMsIGFtb3VudCwgcGVyY3B1X2NvdW50ZXJfYmF0Y2gpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQg
cGVyY3B1X2NvdW50ZXJfc3VtX3Bvc2l0aXZlKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQp7
CiBzNjQgcmV0ID0gX19wZXJjcHVfY291bnRlcl9zdW0oZmJjKTsKIHJldHVybiByZXQgPCAwID8g
MCA6IHJldDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgczY0IHBlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIg
KmZiYykKewogcmV0dXJuIF9fcGVyY3B1X2NvdW50ZXJfc3VtKGZiYyk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBwZXJjcHVf
Y291bnRlcl9yZWFkKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQp7CiByZXR1cm4gZmJjLT5j
b3VudDsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzNjQgcGVyY3B1X2NvdW50ZXJfcmVhZF9wb3NpdGl2ZShzdHJ1Y3QgcGVy
Y3B1X2NvdW50ZXIgKmZiYykKewogczY0IHJldCA9IGZiYy0+Y291bnQ7CgogX19hc21fXyBfX3Zv
bGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIGlmIChyZXQgPj0gMCkKICByZXR1cm4gcmV0Owog
cmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgcGVyY3B1X2NvdW50ZXJfaW5pdGlhbGl6ZWQoc3RydWN0IHBlcmNw
dV9jb3VudGVyICpmYmMpCnsKIHJldHVybiAoZmJjLT5jb3VudGVycyAhPSAoKHZvaWQgKikwKSk7
Cn0KIyAxNzcgIi4vaW5jbHVkZS9saW51eC9wZXJjcHVfY291bnRlci5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBlcmNwdV9j
b3VudGVyX2luYyhzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKewogcGVyY3B1X2NvdW50ZXJf
YWRkKGZiYywgMSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X2NvdW50ZXJfZGVjKHN0cnVjdCBwZXJjcHVfY291
bnRlciAqZmJjKQp7CiBwZXJjcHVfY291bnRlcl9hZGQoZmJjLCAtMSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1
X2NvdW50ZXJfc3ViKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50KQp7CiBw
ZXJjcHVfY291bnRlcl9hZGQoZmJjLCAtYW1vdW50KTsKfQojIDQxICIuL2luY2x1ZGUvbGludXgv
cXVvdGEuaCIgMgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9kcWJsa194ZnMuaCIgMQojIDUz
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9kcWJsa194ZnMuaCIKdHlwZWRlZiBzdHJ1Y3QgZnNfZGlz
a19xdW90YSB7CiBfX3M4IGRfdmVyc2lvbjsKIF9fczggZF9mbGFnczsKIF9fdTE2IGRfZmllbGRt
YXNrOwogX191MzIgZF9pZDsKIF9fdTY0IGRfYmxrX2hhcmRsaW1pdDsKIF9fdTY0IGRfYmxrX3Nv
ZnRsaW1pdDsKIF9fdTY0IGRfaW5vX2hhcmRsaW1pdDsKIF9fdTY0IGRfaW5vX3NvZnRsaW1pdDsK
IF9fdTY0IGRfYmNvdW50OwogX191NjQgZF9pY291bnQ7CiBfX3MzMiBkX2l0aW1lcjsKCiBfX3Mz
MiBkX2J0aW1lcjsKIF9fdTE2IGRfaXdhcm5zOwogX191MTYgZF9id2FybnM7CiBfX3MzMiBkX3Bh
ZGRpbmcyOwogX191NjQgZF9ydGJfaGFyZGxpbWl0OwogX191NjQgZF9ydGJfc29mdGxpbWl0Owog
X191NjQgZF9ydGJjb3VudDsKIF9fczMyIGRfcnRidGltZXI7CiBfX3UxNiBkX3J0Yndhcm5zOwog
X19zMTYgZF9wYWRkaW5nMzsKIGNoYXIgZF9wYWRkaW5nNFs4XTsKfSBmc19kaXNrX3F1b3RhX3Q7
CiMgMTQ5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9kcWJsa194ZnMuaCIKdHlwZWRlZiBzdHJ1Y3Qg
ZnNfcWZpbGVzdGF0IHsKIF9fdTY0IHFmc19pbm87CiBfX3U2NCBxZnNfbmJsa3M7CiBfX3UzMiBx
ZnNfbmV4dGVudHM7Cn0gZnNfcWZpbGVzdGF0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBmc19xdW90YV9z
dGF0IHsKIF9fczggcXNfdmVyc2lvbjsKIF9fdTE2IHFzX2ZsYWdzOwogX19zOCBxc19wYWQ7CiBm
c19xZmlsZXN0YXRfdCBxc191cXVvdGE7CiBmc19xZmlsZXN0YXRfdCBxc19ncXVvdGE7CiBfX3Uz
MiBxc19pbmNvcmVkcXM7CiBfX3MzMiBxc19idGltZWxpbWl0OwogX19zMzIgcXNfaXRpbWVsaW1p
dDsKIF9fczMyIHFzX3J0YnRpbWVsaW1pdDsKIF9fdTE2IHFzX2J3YXJubGltaXQ7CiBfX3UxNiBx
c19pd2FybmxpbWl0Owp9IGZzX3F1b3RhX3N0YXRfdDsKIyAxOTIgIi4vaW5jbHVkZS91YXBpL2xp
bnV4L2RxYmxrX3hmcy5oIgpzdHJ1Y3QgZnNfcWZpbGVzdGF0diB7CiBfX3U2NCBxZnNfaW5vOwog
X191NjQgcWZzX25ibGtzOwogX191MzIgcWZzX25leHRlbnRzOwogX191MzIgcWZzX3BhZDsKfTsK
CnN0cnVjdCBmc19xdW90YV9zdGF0diB7CiBfX3M4IHFzX3ZlcnNpb247CiBfX3U4IHFzX3BhZDE7
CiBfX3UxNiBxc19mbGFnczsKIF9fdTMyIHFzX2luY29yZWRxczsKIHN0cnVjdCBmc19xZmlsZXN0
YXR2IHFzX3VxdW90YTsKIHN0cnVjdCBmc19xZmlsZXN0YXR2IHFzX2dxdW90YTsKIHN0cnVjdCBm
c19xZmlsZXN0YXR2IHFzX3BxdW90YTsKIF9fczMyIHFzX2J0aW1lbGltaXQ7CiBfX3MzMiBxc19p
dGltZWxpbWl0OwogX19zMzIgcXNfcnRidGltZWxpbWl0OwogX191MTYgcXNfYndhcm5saW1pdDsK
IF9fdTE2IHFzX2l3YXJubGltaXQ7CiBfX3U2NCBxc19wYWQyWzhdOwp9OwojIDQzICIuL2luY2x1
ZGUvbGludXgvcXVvdGEuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9kcWJsa192MS5oIiAxCiMg
NDQgIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2RxYmxr
X3YyLmgiIDEKIyA5ICIuL2luY2x1ZGUvbGludXgvZHFibGtfdjIuaCIKIyAxICIuL2luY2x1ZGUv
bGludXgvZHFibGtfcXRyZWUuaCIgMQojIDE4ICIuL2luY2x1ZGUvbGludXgvZHFibGtfcXRyZWUu
aCIKc3RydWN0IGRxdW90OwpzdHJ1Y3Qga3FpZDsKCgpzdHJ1Y3QgcXRyZWVfZm10X29wZXJhdGlv
bnMgewogdm9pZCAoKm1lbTJkaXNrX2RxYmxrKSh2b2lkICpkaXNrLCBzdHJ1Y3QgZHF1b3QgKmRx
dW90KTsKIHZvaWQgKCpkaXNrMm1lbV9kcWJsaykoc3RydWN0IGRxdW90ICpkcXVvdCwgdm9pZCAq
ZGlzayk7CiBpbnQgKCppc19pZCkodm9pZCAqZGlzaywgc3RydWN0IGRxdW90ICpkcXVvdCk7Cn07
CgoKc3RydWN0IHF0cmVlX21lbV9kcWluZm8gewogc3RydWN0IHN1cGVyX2Jsb2NrICpkcWlfc2I7
CiBpbnQgZHFpX3R5cGU7CiB1bnNpZ25lZCBpbnQgZHFpX2Jsb2NrczsKIHVuc2lnbmVkIGludCBk
cWlfZnJlZV9ibGs7CiB1bnNpZ25lZCBpbnQgZHFpX2ZyZWVfZW50cnk7CiB1bnNpZ25lZCBpbnQg
ZHFpX2Jsb2Nrc2l6ZV9iaXRzOwogdW5zaWduZWQgaW50IGRxaV9lbnRyeV9zaXplOwogdW5zaWdu
ZWQgaW50IGRxaV91c2FibGVfYnM7CiB1bnNpZ25lZCBpbnQgZHFpX3F0cmVlX2RlcHRoOwogY29u
c3Qgc3RydWN0IHF0cmVlX2ZtdF9vcGVyYXRpb25zICpkcWlfb3BzOwp9OwoKaW50IHF0cmVlX3dy
aXRlX2RxdW90KHN0cnVjdCBxdHJlZV9tZW1fZHFpbmZvICppbmZvLCBzdHJ1Y3QgZHF1b3QgKmRx
dW90KTsKaW50IHF0cmVlX3JlYWRfZHF1b3Qoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8s
IHN0cnVjdCBkcXVvdCAqZHF1b3QpOwppbnQgcXRyZWVfZGVsZXRlX2RxdW90KHN0cnVjdCBxdHJl
ZV9tZW1fZHFpbmZvICppbmZvLCBzdHJ1Y3QgZHF1b3QgKmRxdW90KTsKaW50IHF0cmVlX3JlbGVh
c2VfZHF1b3Qoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8sIHN0cnVjdCBkcXVvdCAqZHF1
b3QpOwppbnQgcXRyZWVfZW50cnlfdW51c2VkKHN0cnVjdCBxdHJlZV9tZW1fZHFpbmZvICppbmZv
LCBjaGFyICpkaXNrKTsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHF0cmVlX2RlcHRoKHN0cnVjdCBxdHJlZV9tZW1fZHFpbmZvICpp
bmZvKQp7CiB1bnNpZ25lZCBpbnQgZXBiID0gaW5mby0+ZHFpX3VzYWJsZV9icyA+PiAyOwogdW5z
aWduZWQgbG9uZyBsb25nIGVudHJpZXMgPSBlcGI7CiBpbnQgaTsKCiBmb3IgKGkgPSAxOyBlbnRy
aWVzIDwgKDFVTEwgPDwgMzIpOyBpKyspCiAgZW50cmllcyAqPSBlcGI7CiByZXR1cm4gaTsKfQpp
bnQgcXRyZWVfZ2V0X25leHRfaWQoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8sIHN0cnVj
dCBrcWlkICpxaWQpOwojIDEwICIuL2luY2x1ZGUvbGludXgvZHFibGtfdjIuaCIgMgojIDQ1ICIu
L2luY2x1ZGUvbGludXgvcXVvdGEuaCIgMgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9wcm9qaWQu
aCIgMQojIDE3ICIuL2luY2x1ZGUvbGludXgvcHJvamlkLmgiCnN0cnVjdCB1c2VyX25hbWVzcGFj
ZTsKZXh0ZXJuIHN0cnVjdCB1c2VyX25hbWVzcGFjZSBpbml0X3VzZXJfbnM7Cgp0eXBlZGVmIF9f
a2VybmVsX3VpZDMyX3QgcHJvamlkX3Q7Cgp0eXBlZGVmIHN0cnVjdCB7CiBwcm9qaWRfdCB2YWw7
Cn0ga3Byb2ppZF90OwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgcHJvamlkX3QgX19rcHJvamlkX3ZhbChrcHJvamlkX3QgcHJvamlkKQp7
CiByZXR1cm4gcHJvamlkLnZhbDsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHByb2ppZF9lcShrcHJvamlkX3QgbGVm
dCwga3Byb2ppZF90IHJpZ2h0KQp7CiByZXR1cm4gX19rcHJvamlkX3ZhbChsZWZ0KSA9PSBfX2tw
cm9qaWRfdmFsKHJpZ2h0KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwcm9qaWRfbHQoa3Byb2ppZF90IGxlZnQsIGtwcm9q
aWRfdCByaWdodCkKewogcmV0dXJuIF9fa3Byb2ppZF92YWwobGVmdCkgPCBfX2twcm9qaWRfdmFs
KHJpZ2h0KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBwcm9qaWRfdmFsaWQoa3Byb2ppZF90IHByb2ppZCkKewogcmV0dXJu
ICFwcm9qaWRfZXEocHJvamlkLCAoa3Byb2ppZF90KXsgLTEgfSk7Cn0KCgoKZXh0ZXJuIGtwcm9q
aWRfdCBtYWtlX2twcm9qaWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpmcm9tLCBwcm9qaWRfdCBw
cm9qaWQpOwoKZXh0ZXJuIHByb2ppZF90IGZyb21fa3Byb2ppZChzdHJ1Y3QgdXNlcl9uYW1lc3Bh
Y2UgKnRvLCBrcHJvamlkX3QgcHJvamlkKTsKZXh0ZXJuIHByb2ppZF90IGZyb21fa3Byb2ppZF9t
dW5nZWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICp0bywga3Byb2ppZF90IHByb2ppZCk7CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IGtwcm9qaWRfaGFzX21hcHBpbmcoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpucywga3Byb2ppZF90
IHByb2ppZCkKewogcmV0dXJuIGZyb21fa3Byb2ppZChucywgcHJvamlkKSAhPSAocHJvamlkX3Qp
LTE7Cn0KIyA0OSAiLi9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiIDIKIyAxICIuL2luY2x1ZGUvdWFw
aS9saW51eC9xdW90YS5oIiAxCiMgOTAgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3F1b3RhLmgiCmVu
dW0gewogUUlGX0JMSU1JVFNfQiA9IDAsCiBRSUZfU1BBQ0VfQiwKIFFJRl9JTElNSVRTX0IsCiBR
SUZfSU5PREVTX0IsCiBRSUZfQlRJTUVfQiwKIFFJRl9JVElNRV9CLAp9OwojIDExMCAiLi9pbmNs
dWRlL3VhcGkvbGludXgvcXVvdGEuaCIKc3RydWN0IGlmX2RxYmxrIHsKIF9fdTY0IGRxYl9iaGFy
ZGxpbWl0OwogX191NjQgZHFiX2Jzb2Z0bGltaXQ7CiBfX3U2NCBkcWJfY3Vyc3BhY2U7CiBfX3U2
NCBkcWJfaWhhcmRsaW1pdDsKIF9fdTY0IGRxYl9pc29mdGxpbWl0OwogX191NjQgZHFiX2N1cmlu
b2RlczsKIF9fdTY0IGRxYl9idGltZTsKIF9fdTY0IGRxYl9pdGltZTsKIF9fdTMyIGRxYl92YWxp
ZDsKfTsKCnN0cnVjdCBpZl9uZXh0ZHFibGsgewogX191NjQgZHFiX2JoYXJkbGltaXQ7CiBfX3U2
NCBkcWJfYnNvZnRsaW1pdDsKIF9fdTY0IGRxYl9jdXJzcGFjZTsKIF9fdTY0IGRxYl9paGFyZGxp
bWl0OwogX191NjQgZHFiX2lzb2Z0bGltaXQ7CiBfX3U2NCBkcWJfY3VyaW5vZGVzOwogX191NjQg
ZHFiX2J0aW1lOwogX191NjQgZHFiX2l0aW1lOwogX191MzIgZHFiX3ZhbGlkOwogX191MzIgZHFi
X2lkOwp9OwojIDE0NCAiLi9pbmNsdWRlL3VhcGkvbGludXgvcXVvdGEuaCIKZW51bSB7CiBEUUZf
Uk9PVF9TUVVBU0hfQiA9IDAsCiBEUUZfU1lTX0ZJTEVfQiA9IDE2LAoKIERRRl9QUklWQVRFCn07
CgoKCgoKCnN0cnVjdCBpZl9kcWluZm8gewogX191NjQgZHFpX2JncmFjZTsKIF9fdTY0IGRxaV9p
Z3JhY2U7CiBfX3UzMiBkcWlfZmxhZ3M7CiBfX3UzMiBkcWlfdmFsaWQ7Cn07CiMgMTc4ICIuL2lu
Y2x1ZGUvdWFwaS9saW51eC9xdW90YS5oIgplbnVtIHsKIFFVT1RBX05MX0NfVU5TUEVDLAogUVVP
VEFfTkxfQ19XQVJOSU5HLAogX19RVU9UQV9OTF9DX01BWCwKfTsKCgplbnVtIHsKIFFVT1RBX05M
X0FfVU5TUEVDLAogUVVPVEFfTkxfQV9RVFlQRSwKIFFVT1RBX05MX0FfRVhDRVNTX0lELAogUVVP
VEFfTkxfQV9XQVJOSU5HLAogUVVPVEFfTkxfQV9ERVZfTUFKT1IsCiBRVU9UQV9OTF9BX0RFVl9N
SU5PUiwKIFFVT1RBX05MX0FfQ0FVU0VEX0lELAogUVVPVEFfTkxfQV9QQUQsCiBfX1FVT1RBX05M
X0FfTUFYLAp9OwojIDUwICIuL2luY2x1ZGUvbGludXgvcXVvdGEuaCIgMgoKCgoKZW51bSBxdW90
YV90eXBlIHsKIFVTUlFVT1RBID0gMCwKIEdSUFFVT1RBID0gMSwKIFBSSlFVT1RBID0gMiwKfTsK
CgoKCgoKdHlwZWRlZiBfX2tlcm5lbF91aWQzMl90IHFpZF90Owp0eXBlZGVmIGxvbmcgbG9uZyBx
c2l6ZV90OwoKc3RydWN0IGtxaWQgewogdW5pb24gewogIGt1aWRfdCB1aWQ7CiAga2dpZF90IGdp
ZDsKICBrcHJvamlkX3QgcHJvamlkOwogfTsKIGVudW0gcXVvdGFfdHlwZSB0eXBlOwp9OwoKZXh0
ZXJuIGJvb2wgcWlkX2VxKHN0cnVjdCBrcWlkIGxlZnQsIHN0cnVjdCBrcWlkIHJpZ2h0KTsKZXh0
ZXJuIGJvb2wgcWlkX2x0KHN0cnVjdCBrcWlkIGxlZnQsIHN0cnVjdCBrcWlkIHJpZ2h0KTsKZXh0
ZXJuIHFpZF90IGZyb21fa3FpZChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnRvLCBzdHJ1Y3Qga3Fp
ZCBxaWQpOwpleHRlcm4gcWlkX3QgZnJvbV9rcWlkX211bmdlZChzdHJ1Y3QgdXNlcl9uYW1lc3Bh
Y2UgKnRvLCBzdHJ1Y3Qga3FpZCBxaWQpOwpleHRlcm4gYm9vbCBxaWRfdmFsaWQoc3RydWN0IGtx
aWQgcWlkKTsKIyA5NyAiLi9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrcWlkIG1ha2Vf
a3FpZChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKmZyb20sCiAgICAgICAgZW51bSBxdW90YV90eXBl
IHR5cGUsIHFpZF90IHFpZCkKewogc3RydWN0IGtxaWQga3FpZDsKCiBrcWlkLnR5cGUgPSB0eXBl
Owogc3dpdGNoICh0eXBlKSB7CiBjYXNlIFVTUlFVT1RBOgogIGtxaWQudWlkID0gbWFrZV9rdWlk
KGZyb20sIHFpZCk7CiAgYnJlYWs7CiBjYXNlIEdSUFFVT1RBOgogIGtxaWQuZ2lkID0gbWFrZV9r
Z2lkKGZyb20sIHFpZCk7CiAgYnJlYWs7CiBjYXNlIFBSSlFVT1RBOgogIGtxaWQucHJvamlkID0g
bWFrZV9rcHJvamlkKGZyb20sIHFpZCk7CiAgYnJlYWs7CiBkZWZhdWx0OgogIGRvIHsgZG8geyBh
c20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVz
aHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAy
YiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJi
IiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5Ojps
aW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIr
JWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvcXVvdGEuaCIpLCAi
aSIgKDExNCksICJpIiAoMCksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hp
bGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRp
c2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25c
blx0IiA6IDogImkiICgyOCkpOyB9KTsgYXNtIHZvbGF0aWxlKCIiKTsgX19idWlsdGluX3VucmVh
Y2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIH0KIHJldHVybiBrcWlkOwp9CgoK
CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzdHJ1Y3Qga3FpZCBtYWtlX2txaWRfaW52YWxpZChlbnVtIHF1b3RhX3R5cGUgdHlwZSkK
ewogc3RydWN0IGtxaWQga3FpZDsKCiBrcWlkLnR5cGUgPSB0eXBlOwogc3dpdGNoICh0eXBlKSB7
CiBjYXNlIFVTUlFVT1RBOgogIGtxaWQudWlkID0gKGt1aWRfdCl7IC0xIH07CiAgYnJlYWs7CiBj
YXNlIEdSUFFVT1RBOgogIGtxaWQuZ2lkID0gKGtnaWRfdCl7IC0xIH07CiAgYnJlYWs7CiBjYXNl
IFBSSlFVT1RBOgogIGtxaWQucHJvamlkID0gKGtwcm9qaWRfdCl7IC0xIH07CiAgYnJlYWs7CiBk
ZWZhdWx0OgogIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAw
eDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0
IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIg
Ii5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAl
YzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6
OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1
ZGUvbGludXgvcXVvdGEuaCIpLCAiaSIgKDE0MSksICJpIiAoMCksICJpIiAoc2l6ZW9mKHN0cnVj
dCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxu
XHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAt
IC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgyOSkpOyB9KTsgYXNtIHZvbGF0aWxl
KCIiKTsgX19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsK
IH0KIHJldHVybiBrcWlkOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtxaWQgbWFrZV9rcWlkX3VpZChrdWlkX3Qg
dWlkKQp7CiBzdHJ1Y3Qga3FpZCBrcWlkOwoga3FpZC50eXBlID0gVVNSUVVPVEE7CiBrcWlkLnVp
ZCA9IHVpZDsKIHJldHVybiBrcWlkOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtxaWQgbWFrZV9rcWlkX2dpZChr
Z2lkX3QgZ2lkKQp7CiBzdHJ1Y3Qga3FpZCBrcWlkOwoga3FpZC50eXBlID0gR1JQUVVPVEE7CiBr
cWlkLmdpZCA9IGdpZDsKIHJldHVybiBrcWlkOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtxaWQgbWFrZV9rcWlk
X3Byb2ppZChrcHJvamlkX3QgcHJvamlkKQp7CiBzdHJ1Y3Qga3FpZCBrcWlkOwoga3FpZC50eXBl
ID0gUFJKUVVPVEE7CiBrcWlkLnByb2ppZCA9IHByb2ppZDsKIHJldHVybiBrcWlkOwp9CgoKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgcWlkX2hhc19tYXBwaW5nKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsIHN0cnVjdCBr
cWlkIHFpZCkKewogcmV0dXJuIGZyb21fa3FpZChucywgcWlkKSAhPSAocWlkX3QpIC0xOwp9CgoK
ZXh0ZXJuIHNwaW5sb2NrX3QgZHFfZGF0YV9sb2NrOwojIDIwNSAiLi9pbmNsdWRlL2xpbnV4L3F1
b3RhLmgiCnN0cnVjdCBtZW1fZHFibGsgewogcXNpemVfdCBkcWJfYmhhcmRsaW1pdDsKIHFzaXpl
X3QgZHFiX2Jzb2Z0bGltaXQ7CiBxc2l6ZV90IGRxYl9jdXJzcGFjZTsKIHFzaXplX3QgZHFiX3Jz
dnNwYWNlOwogcXNpemVfdCBkcWJfaWhhcmRsaW1pdDsKIHFzaXplX3QgZHFiX2lzb2Z0bGltaXQ7
CiBxc2l6ZV90IGRxYl9jdXJpbm9kZXM7CiB0aW1lNjRfdCBkcWJfYnRpbWU7CiB0aW1lNjRfdCBk
cWJfaXRpbWU7Cn07CgoKCgpzdHJ1Y3QgcXVvdGFfZm9ybWF0X3R5cGU7CgpzdHJ1Y3QgbWVtX2Rx
aW5mbyB7CiBzdHJ1Y3QgcXVvdGFfZm9ybWF0X3R5cGUgKmRxaV9mb3JtYXQ7CiBpbnQgZHFpX2Zt
dF9pZDsKCiBzdHJ1Y3QgbGlzdF9oZWFkIGRxaV9kaXJ0eV9saXN0OwogdW5zaWduZWQgbG9uZyBk
cWlfZmxhZ3M7CiB1bnNpZ25lZCBpbnQgZHFpX2JncmFjZTsKIHVuc2lnbmVkIGludCBkcWlfaWdy
YWNlOwogcXNpemVfdCBkcWlfbWF4X3NwY19saW1pdDsKIHFzaXplX3QgZHFpX21heF9pbm9fbGlt
aXQ7CiB2b2lkICpkcWlfcHJpdjsKfTsKCnN0cnVjdCBzdXBlcl9ibG9jazsKCgoKCgoKZW51bSB7
CiBEUUZfSU5GT19ESVJUWV9CID0gRFFGX1BSSVZBVEUsCn07CgoKZXh0ZXJuIHZvaWQgbWFya19p
bmZvX2RpcnR5KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0eXBlKTsKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGluZm9fZGly
dHkoc3RydWN0IG1lbV9kcWluZm8gKmluZm8pCnsKIHJldHVybiB0ZXN0X2JpdChEUUZfSU5GT19E
SVJUWV9CLCAmaW5mby0+ZHFpX2ZsYWdzKTsKfQoKZW51bSB7CiBEUVNUX0xPT0tVUFMsCiBEUVNU
X0RST1BTLAogRFFTVF9SRUFEUywKIERRU1RfV1JJVEVTLAogRFFTVF9DQUNIRV9ISVRTLAogRFFT
VF9BTExPQ19EUVVPVFMsCiBEUVNUX0ZSRUVfRFFVT1RTLAogRFFTVF9TWU5DUywKIF9EUVNUX0RR
U1RBVF9MQVNUCn07CgpzdHJ1Y3QgZHFzdGF0cyB7CiB1bnNpZ25lZCBsb25nIHN0YXRbX0RRU1Rf
RFFTVEFUX0xBU1RdOwogc3RydWN0IHBlcmNwdV9jb3VudGVyIGNvdW50ZXJbX0RRU1RfRFFTVEFU
X0xBU1RdOwp9OwoKZXh0ZXJuIHN0cnVjdCBkcXN0YXRzIGRxc3RhdHM7CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRxc3RhdHNf
aW5jKHVuc2lnbmVkIGludCB0eXBlKQp7CiBwZXJjcHVfY291bnRlcl9pbmMoJmRxc3RhdHMuY291
bnRlclt0eXBlXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgZHFzdGF0c19kZWModW5zaWduZWQgaW50IHR5cGUpCnsKIHBl
cmNwdV9jb3VudGVyX2RlYygmZHFzdGF0cy5jb3VudGVyW3R5cGVdKTsKfQojIDI5NCAiLi9pbmNs
dWRlL2xpbnV4L3F1b3RhLmgiCnN0cnVjdCBkcXVvdCB7CiBzdHJ1Y3QgaGxpc3Rfbm9kZSBkcV9o
YXNoOwogc3RydWN0IGxpc3RfaGVhZCBkcV9pbnVzZTsKIHN0cnVjdCBsaXN0X2hlYWQgZHFfZnJl
ZTsKIHN0cnVjdCBsaXN0X2hlYWQgZHFfZGlydHk7CiBzdHJ1Y3QgbXV0ZXggZHFfbG9jazsKIHNw
aW5sb2NrX3QgZHFfZHFiX2xvY2s7CiBhdG9taWNfdCBkcV9jb3VudDsKIHN0cnVjdCBzdXBlcl9i
bG9jayAqZHFfc2I7CiBzdHJ1Y3Qga3FpZCBkcV9pZDsKIGxvZmZfdCBkcV9vZmY7CiB1bnNpZ25l
ZCBsb25nIGRxX2ZsYWdzOwogc3RydWN0IG1lbV9kcWJsayBkcV9kcWI7Cn07CgoKc3RydWN0IHF1
b3RhX2Zvcm1hdF9vcHMgewogaW50ICgqY2hlY2tfcXVvdGFfZmlsZSkoc3RydWN0IHN1cGVyX2Js
b2NrICpzYiwgaW50IHR5cGUpOwogaW50ICgqcmVhZF9maWxlX2luZm8pKHN0cnVjdCBzdXBlcl9i
bG9jayAqc2IsIGludCB0eXBlKTsKIGludCAoKndyaXRlX2ZpbGVfaW5mbykoc3RydWN0IHN1cGVy
X2Jsb2NrICpzYiwgaW50IHR5cGUpOwogaW50ICgqZnJlZV9maWxlX2luZm8pKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IsIGludCB0eXBlKTsKIGludCAoKnJlYWRfZHFibGspKHN0cnVjdCBkcXVvdCAq
ZHF1b3QpOwogaW50ICgqY29tbWl0X2RxYmxrKShzdHJ1Y3QgZHF1b3QgKmRxdW90KTsKIGludCAo
KnJlbGVhc2VfZHFibGspKHN0cnVjdCBkcXVvdCAqZHF1b3QpOwogaW50ICgqZ2V0X25leHRfaWQp
KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrcWlkICpxaWQpOwp9OwoKCnN0cnVjdCBk
cXVvdF9vcGVyYXRpb25zIHsKIGludCAoKndyaXRlX2RxdW90KSAoc3RydWN0IGRxdW90ICopOwog
c3RydWN0IGRxdW90ICooKmFsbG9jX2RxdW90KShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgaW50KTsK
IHZvaWQgKCpkZXN0cm95X2RxdW90KShzdHJ1Y3QgZHF1b3QgKik7CiBpbnQgKCphY3F1aXJlX2Rx
dW90KSAoc3RydWN0IGRxdW90ICopOwogaW50ICgqcmVsZWFzZV9kcXVvdCkgKHN0cnVjdCBkcXVv
dCAqKTsKIGludCAoKm1hcmtfZGlydHkpIChzdHJ1Y3QgZHF1b3QgKik7CiBpbnQgKCp3cml0ZV9p
bmZvKSAoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCk7CgoKIHFzaXplX3QgKigqZ2V0X3Jlc2Vy
dmVkX3NwYWNlKSAoc3RydWN0IGlub2RlICopOwogaW50ICgqZ2V0X3Byb2ppZCkgKHN0cnVjdCBp
bm9kZSAqLCBrcHJvamlkX3QgKik7CgogaW50ICgqZ2V0X2lub2RlX3VzYWdlKSAoc3RydWN0IGlu
b2RlICosIHFzaXplX3QgKik7CgogaW50ICgqZ2V0X25leHRfaWQpIChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKnNiLCBzdHJ1Y3Qga3FpZCAqcWlkKTsKfTsKCnN0cnVjdCBwYXRoOwoKCnN0cnVjdCBxY19k
cWJsayB7CiBpbnQgZF9maWVsZG1hc2s7CiB1NjQgZF9zcGNfaGFyZGxpbWl0OwogdTY0IGRfc3Bj
X3NvZnRsaW1pdDsKIHU2NCBkX2lub19oYXJkbGltaXQ7CiB1NjQgZF9pbm9fc29mdGxpbWl0Owog
dTY0IGRfc3BhY2U7CiB1NjQgZF9pbm9fY291bnQ7CiBzNjQgZF9pbm9fdGltZXI7CgogczY0IGRf
c3BjX3RpbWVyOwogaW50IGRfaW5vX3dhcm5zOwogaW50IGRfc3BjX3dhcm5zOwogdTY0IGRfcnRf
c3BjX2hhcmRsaW1pdDsKIHU2NCBkX3J0X3NwY19zb2Z0bGltaXQ7CiB1NjQgZF9ydF9zcGFjZTsK
IHM2NCBkX3J0X3NwY190aW1lcjsKIGludCBkX3J0X3NwY193YXJuczsKfTsKIyAzOTUgIi4vaW5j
bHVkZS9saW51eC9xdW90YS5oIgpzdHJ1Y3QgcWNfdHlwZV9zdGF0ZSB7CiB1bnNpZ25lZCBpbnQg
ZmxhZ3M7CiB1bnNpZ25lZCBpbnQgc3BjX3RpbWVsaW1pdDsKCiB1bnNpZ25lZCBpbnQgaW5vX3Rp
bWVsaW1pdDsKIHVuc2lnbmVkIGludCBydF9zcGNfdGltZWxpbWl0OwogdW5zaWduZWQgaW50IHNw
Y193YXJubGltaXQ7CiB1bnNpZ25lZCBpbnQgaW5vX3dhcm5saW1pdDsKIHVuc2lnbmVkIGludCBy
dF9zcGNfd2FybmxpbWl0OwogdW5zaWduZWQgbG9uZyBsb25nIGlubzsKIGJsa2NudF90IGJsb2Nr
czsKIGJsa2NudF90IG5leHRlbnRzOwp9OwoKc3RydWN0IHFjX3N0YXRlIHsKIHVuc2lnbmVkIGlu
dCBzX2luY29yZWRxczsKIHN0cnVjdCBxY190eXBlX3N0YXRlIHNfc3RhdGVbM107Cn07CgoKc3Ry
dWN0IHFjX2luZm8gewogaW50IGlfZmllbGRtYXNrOwogdW5zaWduZWQgaW50IGlfZmxhZ3M7CiB1
bnNpZ25lZCBpbnQgaV9zcGNfdGltZWxpbWl0OwoKIHVuc2lnbmVkIGludCBpX2lub190aW1lbGlt
aXQ7CiB1bnNpZ25lZCBpbnQgaV9ydF9zcGNfdGltZWxpbWl0OwogdW5zaWduZWQgaW50IGlfc3Bj
X3dhcm5saW1pdDsKIHVuc2lnbmVkIGludCBpX2lub193YXJubGltaXQ7CiB1bnNpZ25lZCBpbnQg
aV9ydF9zcGNfd2FybmxpbWl0Owp9OwoKCnN0cnVjdCBxdW90YWN0bF9vcHMgewogaW50ICgqcXVv
dGFfb24pKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQsIGludCwgY29uc3Qgc3RydWN0IHBhdGgg
Kik7CiBpbnQgKCpxdW90YV9vZmYpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQpOwogaW50ICgq
cXVvdGFfZW5hYmxlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdW5zaWduZWQgaW50KTsKIGludCAo
KnF1b3RhX2Rpc2FibGUpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCBpbnQpOwogaW50
ICgqcXVvdGFfc3luYykoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCk7CiBpbnQgKCpzZXRfaW5m
bykoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCwgc3RydWN0IHFjX2luZm8gKik7CiBpbnQgKCpn
ZXRfZHFibGspKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBzdHJ1Y3Qga3FpZCwgc3RydWN0IHFjX2Rx
YmxrICopOwogaW50ICgqZ2V0X25leHRkcWJsaykoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVj
dCBrcWlkICosCiAgICAgICAgc3RydWN0IHFjX2RxYmxrICopOwogaW50ICgqc2V0X2RxYmxrKShz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGtxaWQsIHN0cnVjdCBxY19kcWJsayAqKTsKIGlu
dCAoKmdldF9zdGF0ZSkoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBxY19zdGF0ZSAqKTsK
IGludCAoKnJtX3hxdW90YSkoc3RydWN0IHN1cGVyX2Jsb2NrICosIHVuc2lnbmVkIGludCk7Cn07
CgpzdHJ1Y3QgcXVvdGFfZm9ybWF0X3R5cGUgewogaW50IHFmX2ZtdF9pZDsKIGNvbnN0IHN0cnVj
dCBxdW90YV9mb3JtYXRfb3BzICpxZl9vcHM7CiBzdHJ1Y3QgbW9kdWxlICpxZl9vd25lcjsKIHN0
cnVjdCBxdW90YV9mb3JtYXRfdHlwZSAqcWZfbmV4dDsKfTsKIyA0NjMgIi4vaW5jbHVkZS9saW51
eC9xdW90YS5oIgplbnVtIHsKIF9EUVVPVF9VU0FHRV9FTkFCTEVEID0gMCwKIF9EUVVPVF9MSU1J
VFNfRU5BQkxFRCwKIF9EUVVPVF9TVVNQRU5ERUQsCgoKIF9EUVVPVF9TVEFURV9GTEFHUwp9Owoj
IDQ5MCAiLi9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBkcXVvdF9zdGF0ZV9m
bGFnKHVuc2lnbmVkIGludCBmbGFncywgaW50IHR5cGUpCnsKIHJldHVybiBmbGFncyA8PCB0eXBl
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBpbnQgZHF1b3RfZ2VuZXJpY19mbGFnKHVuc2lnbmVkIGludCBmbGFncywg
aW50IHR5cGUpCnsKIHJldHVybiAoZmxhZ3MgPj4gdHlwZSkgJiAoKDEgPDwgX0RRVU9UX1VTQUdF
X0VOQUJMRUQgKiAzKSB8ICgxIDw8IF9EUVVPVF9MSU1JVFNfRU5BQkxFRCAqIDMpIHwgKDEgPDwg
X0RRVU9UX1NVU1BFTkRFRCAqIDMpKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdW5zaWduZWQgZHF1b3Rfc3RhdGVfdHlwZXModW5zaWduZWQgZmxhZ3MsIHVuc2lnbmVk
IGZsYWcpCnsKIGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfNTAzKHZvaWQp
IF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAiKGZsYWcp
ID09IDAgfHwgKCgoZmxhZykgJiAoKGZsYWcpIC0gMSkpICE9IDApIikpKTsgaWYgKCEoISgoZmxh
ZykgPT0gMCB8fCAoKChmbGFnKSAmICgoZmxhZykgLSAxKSkgIT0gMCkpKSkgX19jb21waWxldGlt
ZV9hc3NlcnRfNTAzKCk7IH0gd2hpbGUgKDApOwogcmV0dXJuIChmbGFncyAvIGZsYWcpICYgKCgx
IDw8IDMpIC0gMSk7Cn0KCgpleHRlcm4gdm9pZCBxdW90YV9zZW5kX3dhcm5pbmcoc3RydWN0IGtx
aWQgcWlkLCBkZXZfdCBkZXYsCiAgICAgICAgICBjb25zdCBjaGFyIHdhcm50eXBlKTsKIyA1MTgg
Ii4vaW5jbHVkZS9saW51eC9xdW90YS5oIgpzdHJ1Y3QgcXVvdGFfaW5mbyB7CiB1bnNpZ25lZCBp
bnQgZmxhZ3M7CiBzdHJ1Y3Qgcndfc2VtYXBob3JlIGRxaW9fc2VtOwogc3RydWN0IGlub2RlICpm
aWxlc1szXTsKIHN0cnVjdCBtZW1fZHFpbmZvIGluZm9bM107CiBjb25zdCBzdHJ1Y3QgcXVvdGFf
Zm9ybWF0X29wcyAqb3BzWzNdOwp9OwoKaW50IHJlZ2lzdGVyX3F1b3RhX2Zvcm1hdChzdHJ1Y3Qg
cXVvdGFfZm9ybWF0X3R5cGUgKmZtdCk7CnZvaWQgdW5yZWdpc3Rlcl9xdW90YV9mb3JtYXQoc3Ry
dWN0IHF1b3RhX2Zvcm1hdF90eXBlICpmbXQpOwoKc3RydWN0IHF1b3RhX21vZHVsZV9uYW1lIHsK
IGludCBxbV9mbXRfaWQ7CiBjaGFyICpxbV9tb2RfbmFtZTsKfTsKIyAyNDYgIi4vaW5jbHVkZS9s
aW51eC9mcy5oIiAyCiMgMjc5ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKZW51bSBwb3NpdGl2ZV9h
b3BfcmV0dXJucyB7CiBBT1BfV1JJVEVQQUdFX0FDVElWQVRFID0gMHg4MDAwMCwKIEFPUF9UUlVO
Q0FURURfUEFHRSA9IDB4ODAwMDEsCn07CiMgMjkyICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3Ry
dWN0IHBhZ2U7CnN0cnVjdCBhZGRyZXNzX3NwYWNlOwpzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2w7
CgoKCgoKZW51bSByd19oaW50IHsKIFdSSVRFX0xJRkVfTk9UX1NFVCA9IDAsCiBXUklURV9MSUZF
X05PTkUgPSAxLAogV1JJVEVfTElGRV9TSE9SVCA9IDIsCiBXUklURV9MSUZFX01FRElVTSA9IDMs
CiBXUklURV9MSUZFX0xPTkcgPSA0LAogV1JJVEVfTElGRV9FWFRSRU1FID0gNSwKfTsKIyAzMTgg
Ii4vaW5jbHVkZS9saW51eC9mcy5oIgpzdHJ1Y3Qga2lvY2Igewogc3RydWN0IGZpbGUgKmtpX2Zp
bHA7CgoKCgogbG9mZl90IGtpX3BvczsKIHZvaWQgKCpraV9jb21wbGV0ZSkoc3RydWN0IGtpb2Ni
ICppb2NiLCBsb25nIHJldCwgbG9uZyByZXQyKTsKIHZvaWQgKnByaXZhdGU7CiBpbnQga2lfZmxh
Z3M7CiB1MTYga2lfaGludDsKIHUxNiBraV9pb3ByaW87CiB1bnNpZ25lZCBpbnQga2lfY29va2ll
OwoKCn07CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIGlzX3N5bmNfa2lvY2Ioc3RydWN0IGtpb2NiICpraW9jYikKewogcmV0dXJu
IGtpb2NiLT5raV9jb21wbGV0ZSA9PSAoKHZvaWQgKikwKTsKfQojIDM0OSAiLi9pbmNsdWRlL2xp
bnV4L2ZzLmgiCnR5cGVkZWYgc3RydWN0IHsKIHNpemVfdCB3cml0dGVuOwogc2l6ZV90IGNvdW50
OwogdW5pb24gewogIGNoYXIgKmJ1ZjsKICB2b2lkICpkYXRhOwogfSBhcmc7CiBpbnQgZXJyb3I7
Cn0gcmVhZF9kZXNjcmlwdG9yX3Q7Cgp0eXBlZGVmIGludCAoKnJlYWRfYWN0b3JfdCkocmVhZF9k
ZXNjcmlwdG9yX3QgKiwgc3RydWN0IHBhZ2UgKiwKICB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBs
b25nKTsKCnN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgewogaW50ICgqd3JpdGVwYWdl
KShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpOwogaW50
ICgqcmVhZHBhZ2UpKHN0cnVjdCBmaWxlICosIHN0cnVjdCBwYWdlICopOwoKCiBpbnQgKCp3cml0
ZXBhZ2VzKShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wg
Kik7CgoKIGludCAoKnNldF9wYWdlX2RpcnR5KShzdHJ1Y3QgcGFnZSAqcGFnZSk7CgoKCgoKIGlu
dCAoKnJlYWRwYWdlcykoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt
YXBwaW5nLAogICBzdHJ1Y3QgbGlzdF9oZWFkICpwYWdlcywgdW5zaWduZWQgbnJfcGFnZXMpOwoK
IGludCAoKndyaXRlX2JlZ2luKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq
bWFwcGluZywKICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsCiAg
ICBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNkYXRhKTsKIGludCAoKndyaXRlX2VuZCko
c3RydWN0IGZpbGUgKiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAgICBsb2ZmX3Qg
cG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwKICAgIHN0cnVjdCBwYWdlICpwYWdl
LCB2b2lkICpmc2RhdGEpOwoKCiBzZWN0b3JfdCAoKmJtYXApKHN0cnVjdCBhZGRyZXNzX3NwYWNl
ICosIHNlY3Rvcl90KTsKIHZvaWQgKCppbnZhbGlkYXRlcGFnZSkgKHN0cnVjdCBwYWdlICosIHVu
c2lnbmVkIGludCwgdW5zaWduZWQgaW50KTsKIGludCAoKnJlbGVhc2VwYWdlKSAoc3RydWN0IHBh
Z2UgKiwgZ2ZwX3QpOwogdm9pZCAoKmZyZWVwYWdlKShzdHJ1Y3QgcGFnZSAqKTsKIHNzaXplX3Qg
KCpkaXJlY3RfSU8pKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpOwoKCgoK
IGludCAoKm1pZ3JhdGVwYWdlKSAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwKICAgc3RydWN0IHBh
Z2UgKiwgc3RydWN0IHBhZ2UgKiwgZW51bSBtaWdyYXRlX21vZGUpOwogYm9vbCAoKmlzb2xhdGVf
cGFnZSkoc3RydWN0IHBhZ2UgKiwgaXNvbGF0ZV9tb2RlX3QpOwogdm9pZCAoKnB1dGJhY2tfcGFn
ZSkoc3RydWN0IHBhZ2UgKik7CiBpbnQgKCpsYXVuZGVyX3BhZ2UpIChzdHJ1Y3QgcGFnZSAqKTsK
IGludCAoKmlzX3BhcnRpYWxseV91cHRvZGF0ZSkgKHN0cnVjdCBwYWdlICosIHVuc2lnbmVkIGxv
bmcsCiAgICAgdW5zaWduZWQgbG9uZyk7CiB2b2lkICgqaXNfZGlydHlfd3JpdGViYWNrKSAoc3Ry
dWN0IHBhZ2UgKiwgYm9vbCAqLCBib29sICopOwogaW50ICgqZXJyb3JfcmVtb3ZlX3BhZ2UpKHN0
cnVjdCBhZGRyZXNzX3NwYWNlICosIHN0cnVjdCBwYWdlICopOwoKCiBpbnQgKCpzd2FwX2FjdGl2
YXRlKShzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2lzLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKICAg
IHNlY3Rvcl90ICpzcGFuKTsKIHZvaWQgKCpzd2FwX2RlYWN0aXZhdGUpKHN0cnVjdCBmaWxlICpm
aWxlKTsKfTsKCmV4dGVybiBjb25zdCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIGVt
cHR5X2FvcHM7CgoKCgoKaW50IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqLCBz
dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxl
biwgdW5zaWduZWQgZmxhZ3MsCiAgICBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNkYXRh
KTsKCmludCBwYWdlY2FjaGVfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNz
X3NwYWNlICptYXBwaW5nLAogICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBj
b3BpZWQsCiAgICBzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKTsKIyA0NDUgIi4vaW5j
bHVkZS9saW51eC9mcy5oIgpzdHJ1Y3QgYWRkcmVzc19zcGFjZSB7CiBzdHJ1Y3QgaW5vZGUgKmhv
c3Q7CiBzdHJ1Y3QgeGFycmF5IGlfcGFnZXM7CiBnZnBfdCBnZnBfbWFzazsKIGF0b21pY190IGlf
bW1hcF93cml0YWJsZTsKCgoKCiBzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgaV9tbWFwOwogc3RydWN0
IHJ3X3NlbWFwaG9yZSBpX21tYXBfcndzZW07CiB1bnNpZ25lZCBsb25nIG5ycGFnZXM7CiB1bnNp
Z25lZCBsb25nIG5yZXhjZXB0aW9uYWw7CiB1bnNpZ25lZCBsb25nIHdyaXRlYmFja19pbmRleDsK
IGNvbnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgKmFfb3BzOwogdW5zaWduZWQg
bG9uZyBmbGFnczsKIGVycnNlcV90IHdiX2VycjsKIHNwaW5sb2NrX3QgcHJpdmF0ZV9sb2NrOwog
c3RydWN0IGxpc3RfaGVhZCBwcml2YXRlX2xpc3Q7CiB2b2lkICpwcml2YXRlX2RhdGE7Cn0gX19h
dHRyaWJ1dGVfXygoYWxpZ25lZChzaXplb2YobG9uZykpKSkgX19hdHRyaWJ1dGVfXygoX19kZXNp
Z25hdGVkX2luaXRfXykpOwoKCgoKCnN0cnVjdCByZXF1ZXN0X3F1ZXVlOwoKc3RydWN0IGJsb2Nr
X2RldmljZSB7CiBkZXZfdCBiZF9kZXY7CiBpbnQgYmRfb3BlbmVyczsKIHN0cnVjdCBpbm9kZSAq
IGJkX2lub2RlOwogc3RydWN0IHN1cGVyX2Jsb2NrICogYmRfc3VwZXI7CiBzdHJ1Y3QgbXV0ZXgg
YmRfbXV0ZXg7CiB2b2lkICogYmRfY2xhaW1pbmc7CiB2b2lkICogYmRfaG9sZGVyOwogaW50IGJk
X2hvbGRlcnM7CiBib29sIGJkX3dyaXRlX2hvbGRlcjsKCiBzdHJ1Y3QgbGlzdF9oZWFkIGJkX2hv
bGRlcl9kaXNrczsKCiBzdHJ1Y3QgYmxvY2tfZGV2aWNlICogYmRfY29udGFpbnM7CiB1bnNpZ25l
ZCBiZF9ibG9ja19zaXplOwogdTggYmRfcGFydG5vOwogc3RydWN0IGhkX3N0cnVjdCAqIGJkX3Bh
cnQ7CgogdW5zaWduZWQgYmRfcGFydF9jb3VudDsKIGludCBiZF9pbnZhbGlkYXRlZDsKIHN0cnVj
dCBnZW5kaXNrICogYmRfZGlzazsKIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICogYmRfcXVldWU7CiBz
dHJ1Y3QgYmFja2luZ19kZXZfaW5mbyAqYmRfYmRpOwogc3RydWN0IGxpc3RfaGVhZCBiZF9saXN0
OwoKCgoKCgogdW5zaWduZWQgbG9uZyBiZF9wcml2YXRlOwoKCiBpbnQgYmRfZnNmcmVlemVfY291
bnQ7Cgogc3RydWN0IG11dGV4IGJkX2ZzZnJlZXplX211dGV4Owp9IF9fYXR0cmlidXRlX18oKF9f
ZGVzaWduYXRlZF9pbml0X18pKTsKIyA1MTkgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIG1h
cHBpbmdfdGFnZ2VkKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCB4YV9tYXJrX3QgdGFn
KQp7CiByZXR1cm4geGFfbWFya2VkKCZtYXBwaW5nLT5pX3BhZ2VzLCB0YWcpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlf
bW1hcF9sb2NrX3dyaXRlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQp7CiBkb3duX3dy
aXRlKCZtYXBwaW5nLT5pX21tYXBfcndzZW0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlfbW1hcF91bmxvY2tfd3JpdGUo
c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCnsKIHVwX3dyaXRlKCZtYXBwaW5nLT5pX21t
YXBfcndzZW0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGlfbW1hcF9sb2NrX3JlYWQoc3RydWN0IGFkZHJlc3Nfc3BhY2Ug
Km1hcHBpbmcpCnsKIGRvd25fcmVhZCgmbWFwcGluZy0+aV9tbWFwX3J3c2VtKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBp
X21tYXBfdW5sb2NrX3JlYWQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCnsKIHVwX3Jl
YWQoJm1hcHBpbmctPmlfbW1hcF9yd3NlbSk7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBtYXBwaW5nX21hcHBlZChzdHJ1
Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKewogcmV0dXJuICEoKHsgdW5pb24geyB0eXBlb2Yo
KCZtYXBwaW5nLT5pX21tYXAucmJfcm9vdCktPnJiX25vZGUpIF9fdmFsOyBjaGFyIF9fY1sxXTsg
fSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKCZtYXBwaW5nLT5pX21tYXAucmJfcm9v
dCktPnJiX25vZGUpLCBfX3UuX19jLCBzaXplb2YoKCZtYXBwaW5nLT5pX21tYXAucmJfcm9vdCkt
PnJiX25vZGUpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigoJm1hcHBpbmctPmlf
bW1hcC5yYl9yb290KS0+cmJfbm9kZSksIF9fdS5fX2MsIHNpemVvZigoJm1hcHBpbmctPmlfbW1h
cC5yYl9yb290KS0+cmJfbm9kZSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pID09
ICgodm9pZCAqKTApKTsKfQojIDU2MSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBtYXBwaW5n
X3dyaXRhYmx5X21hcHBlZChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKewogcmV0dXJu
IGF0b21pY19yZWFkKCZtYXBwaW5nLT5pX21tYXBfd3JpdGFibGUpID4gMDsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG1hcHBp
bmdfbWFwX3dyaXRhYmxlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQp7CiByZXR1cm4g
YXRvbWljX2luY191bmxlc3NfbmVnYXRpdmUoJm1hcHBpbmctPmlfbW1hcF93cml0YWJsZSkgPwog
IDAgOiAtMTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBtYXBwaW5nX3VubWFwX3dyaXRhYmxlKHN0cnVjdCBhZGRyZXNzX3Nw
YWNlICptYXBwaW5nKQp7CiBhdG9taWNfZGVjKCZtYXBwaW5nLT5pX21tYXBfd3JpdGFibGUpOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgbWFwcGluZ19kZW55X3dyaXRhYmxlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n
KQp7CiByZXR1cm4gYXRvbWljX2RlY191bmxlc3NfcG9zaXRpdmUoJm1hcHBpbmctPmlfbW1hcF93
cml0YWJsZSkgPwogIDAgOiAtMTY7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbWFwcGluZ19hbGxvd193cml0YWJsZShzdHJ1
Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKewogYXRvbWljX2luYygmbWFwcGluZy0+aV9tbWFw
X3dyaXRhYmxlKTsKfQojIDU5OSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCnN0cnVjdCBwb3NpeF9h
Y2w7CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHN0cnVjdCBwb3NpeF9hY2wgKgp1bmNhY2hlZF9hY2xfc2VudGluZWwoc3RydWN0IHRh
c2tfc3RydWN0ICp0YXNrKQp7CiByZXR1cm4gKHZvaWQgKil0YXNrICsgMTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAppc191
bmNhY2hlZF9hY2woc3RydWN0IHBvc2l4X2FjbCAqYWNsKQp7CiByZXR1cm4gKGxvbmcpYWNsICYg
MTsKfQoKCgoKCgoKc3RydWN0IGZzbm90aWZ5X21hcmtfY29ubmVjdG9yOwoKCgoKCgpzdHJ1Y3Qg
aW5vZGUgewogdW1vZGVfdCBpX21vZGU7CiB1bnNpZ25lZCBzaG9ydCBpX29wZmxhZ3M7CiBrdWlk
X3QgaV91aWQ7CiBrZ2lkX3QgaV9naWQ7CiB1bnNpZ25lZCBpbnQgaV9mbGFnczsKCgogc3RydWN0
IHBvc2l4X2FjbCAqaV9hY2w7CiBzdHJ1Y3QgcG9zaXhfYWNsICppX2RlZmF1bHRfYWNsOwoKCiBj
b25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyAqaV9vcDsKIHN0cnVjdCBzdXBlcl9ibG9jayAq
aV9zYjsKIHN0cnVjdCBhZGRyZXNzX3NwYWNlICppX21hcHBpbmc7CgoKIHZvaWQgKmlfc2VjdXJp
dHk7CgoKCiB1bnNpZ25lZCBsb25nIGlfaW5vOwoKCgoKCgoKIHVuaW9uIHsKICBjb25zdCB1bnNp
Z25lZCBpbnQgaV9ubGluazsKICB1bnNpZ25lZCBpbnQgX19pX25saW5rOwogfTsKIGRldl90IGlf
cmRldjsKIGxvZmZfdCBpX3NpemU7CiBzdHJ1Y3QgdGltZXNwZWM2NCBpX2F0aW1lOwogc3RydWN0
IHRpbWVzcGVjNjQgaV9tdGltZTsKIHN0cnVjdCB0aW1lc3BlYzY0IGlfY3RpbWU7CiBzcGlubG9j
a190IGlfbG9jazsKIHVuc2lnbmVkIHNob3J0IGlfYnl0ZXM7CiB1OCBpX2Jsa2JpdHM7CiB1OCBp
X3dyaXRlX2hpbnQ7CiBibGtjbnRfdCBpX2Jsb2NrczsKCgoKCgoKIHVuc2lnbmVkIGxvbmcgaV9z
dGF0ZTsKIHN0cnVjdCByd19zZW1hcGhvcmUgaV9yd3NlbTsKCiB1bnNpZ25lZCBsb25nIGRpcnRp
ZWRfd2hlbjsKIHVuc2lnbmVkIGxvbmcgZGlydGllZF90aW1lX3doZW47Cgogc3RydWN0IGhsaXN0
X25vZGUgaV9oYXNoOwogc3RydWN0IGxpc3RfaGVhZCBpX2lvX2xpc3Q7Cgogc3RydWN0IGJkaV93
cml0ZWJhY2sgKmlfd2I7CgoKIGludCBpX3diX2Zybl93aW5uZXI7CiB1MTYgaV93Yl9mcm5fYXZn
X3RpbWU7CiB1MTYgaV93Yl9mcm5faGlzdG9yeTsKCiBzdHJ1Y3QgbGlzdF9oZWFkIGlfbHJ1Owog
c3RydWN0IGxpc3RfaGVhZCBpX3NiX2xpc3Q7CiBzdHJ1Y3QgbGlzdF9oZWFkIGlfd2JfbGlzdDsK
IHVuaW9uIHsKICBzdHJ1Y3QgaGxpc3RfaGVhZCBpX2RlbnRyeTsKICBzdHJ1Y3QgY2FsbGJhY2tf
aGVhZCBpX3JjdTsKIH07CiBhdG9taWM2NF90IGlfdmVyc2lvbjsKIGF0b21pYzY0X3QgaV9zZXF1
ZW5jZTsKIGF0b21pY190IGlfY291bnQ7CiBhdG9taWNfdCBpX2Rpb19jb3VudDsKIGF0b21pY190
IGlfd3JpdGVjb3VudDsKCiBhdG9taWNfdCBpX3JlYWRjb3VudDsKCiB1bmlvbiB7CiAgY29uc3Qg
c3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqaV9mb3A7CiAgdm9pZCAoKmZyZWVfaW5vZGUpKHN0cnVj
dCBpbm9kZSAqKTsKIH07CiBzdHJ1Y3QgZmlsZV9sb2NrX2NvbnRleHQgKmlfZmxjdHg7CiBzdHJ1
Y3QgYWRkcmVzc19zcGFjZSBpX2RhdGE7CiBzdHJ1Y3QgbGlzdF9oZWFkIGlfZGV2aWNlczsKIHVu
aW9uIHsKICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICppX3BpcGU7CiAgc3RydWN0IGJsb2NrX2Rl
dmljZSAqaV9iZGV2OwogIHN0cnVjdCBjZGV2ICppX2NkZXY7CiAgY2hhciAqaV9saW5rOwogIHVu
c2lnbmVkIGlfZGlyX3NlcTsKIH07CgogX191MzIgaV9nZW5lcmF0aW9uOwoKCiBfX3UzMiBpX2Zz
bm90aWZ5X21hc2s7CiBzdHJ1Y3QgZnNub3RpZnlfbWFya19jb25uZWN0b3IgKmlfZnNub3RpZnlf
bWFya3M7CiMgNzM4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKIHZvaWQgKmlfcHJpdmF0ZTsKfSBf
X2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CgpzdHJ1Y3QgdGltZXNwZWM2NCB0
aW1lc3RhbXBfdHJ1bmNhdGUoc3RydWN0IHRpbWVzcGVjNjQgdCwgc3RydWN0IGlub2RlICppbm9k
ZSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBpbnQgaV9ibG9ja3NpemUoY29uc3Qgc3RydWN0IGlub2RlICpub2RlKQp7
CiByZXR1cm4gKDEgPDwgbm9kZS0+aV9ibGtiaXRzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlub2RlX3VuaGFzaGVkKHN0
cnVjdCBpbm9kZSAqaW5vZGUpCnsKIHJldHVybiBobGlzdF91bmhhc2hlZCgmaW5vZGUtPmlfaGFz
aCk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgaW5vZGVfZmFrZV9oYXNoKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsK
IGhsaXN0X2FkZF9mYWtlKCZpbm9kZS0+aV9oYXNoKTsKfQojIDc4MCAiLi9pbmNsdWRlL2xpbnV4
L2ZzLmgiCmVudW0gaW5vZGVfaV9tdXRleF9sb2NrX2NsYXNzCnsKIElfTVVURVhfTk9STUFMLAog
SV9NVVRFWF9QQVJFTlQsCiBJX01VVEVYX0NISUxELAogSV9NVVRFWF9YQVRUUiwKIElfTVVURVhf
Tk9ORElSMiwKIElfTVVURVhfUEFSRU5UMiwKfTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5vZGVfbG9jayhzdHJ1Y3QgaW5v
ZGUgKmlub2RlKQp7CiBkb3duX3dyaXRlKCZpbm9kZS0+aV9yd3NlbSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5vZGVf
dW5sb2NrKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIHVwX3dyaXRlKCZpbm9kZS0+aV9yd3NlbSk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgaW5vZGVfbG9ja19zaGFyZWQoc3RydWN0IGlub2RlICppbm9kZSkKewogZG93bl9y
ZWFkKCZpbm9kZS0+aV9yd3NlbSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5vZGVfdW5sb2NrX3NoYXJlZChzdHJ1Y3Qg
aW5vZGUgKmlub2RlKQp7CiB1cF9yZWFkKCZpbm9kZS0+aV9yd3NlbSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBpbm9kZV90
cnlsb2NrKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIHJldHVybiBkb3duX3dyaXRlX3RyeWxvY2so
Jmlub2RlLT5pX3J3c2VtKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlub2RlX3RyeWxvY2tfc2hhcmVkKHN0cnVjdCBpbm9k
ZSAqaW5vZGUpCnsKIHJldHVybiBkb3duX3JlYWRfdHJ5bG9jaygmaW5vZGUtPmlfcndzZW0pOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgaW5vZGVfaXNfbG9ja2VkKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIHJldHVybiByd3Nl
bV9pc19sb2NrZWQoJmlub2RlLT5pX3J3c2VtKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9sb2NrX25lc3RlZChz
dHJ1Y3QgaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBzdWJjbGFzcykKewogZG93bl93cml0ZSgmaW5v
ZGUtPmlfcndzZW0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlub2RlX2xvY2tfc2hhcmVkX25lc3RlZChzdHJ1Y3QgaW5v
ZGUgKmlub2RlLCB1bnNpZ25lZCBzdWJjbGFzcykKewogZG93bl9yZWFkKCZpbm9kZS0+aV9yd3Nl
bSk7Cn0KCnZvaWQgbG9ja190d29fbm9uZGlyZWN0b3JpZXMoc3RydWN0IGlub2RlICosIHN0cnVj
dCBpbm9kZSopOwp2b2lkIHVubG9ja190d29fbm9uZGlyZWN0b3JpZXMoc3RydWN0IGlub2RlICos
IHN0cnVjdCBpbm9kZSopOwojIDg0OCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvZmZfdCBpX3Np
emVfcmVhZChjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiMgODY3ICIuL2luY2x1ZGUvbGlu
dXgvZnMuaCIKIHJldHVybiBpbm9kZS0+aV9zaXplOwoKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlfc2l6ZV93cml0
ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgaV9zaXplKQp7CiMgODg5ICIuL2luY2x1ZGUv
bGludXgvZnMuaCIKIGlub2RlLT5pX3NpemUgPSBpX3NpemU7Cgp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbWlub3Io
Y29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkKewogcmV0dXJuICgodW5zaWduZWQgaW50KSAoKGlu
b2RlLT5pX3JkZXYpICYgKCgxVSA8PCAyMCkgLSAxKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbWFqb3IoY29u
c3Qgc3RydWN0IGlub2RlICppbm9kZSkKewogcmV0dXJuICgodW5zaWduZWQgaW50KSAoKGlub2Rl
LT5pX3JkZXYpID4+IDIwKSk7Cn0KCmV4dGVybiBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpJX0JERVYo
c3RydWN0IGlub2RlICppbm9kZSk7CgpzdHJ1Y3QgZm93bl9zdHJ1Y3Qgewogcndsb2NrX3QgbG9j
azsKIHN0cnVjdCBwaWQgKnBpZDsKIGVudW0gcGlkX3R5cGUgcGlkX3R5cGU7CiBrdWlkX3QgdWlk
LCBldWlkOwogaW50IHNpZ251bTsKfTsKCgoKCnN0cnVjdCBmaWxlX3JhX3N0YXRlIHsKIHVuc2ln
bmVkIGxvbmcgc3RhcnQ7CiB1bnNpZ25lZCBpbnQgc2l6ZTsKIHVuc2lnbmVkIGludCBhc3luY19z
aXplOwoKCiB1bnNpZ25lZCBpbnQgcmFfcGFnZXM7CiB1bnNpZ25lZCBpbnQgbW1hcF9taXNzOwog
bG9mZl90IHByZXZfcG9zOwp9OwoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJhX2hhc19pbmRleChzdHJ1Y3QgZmlsZV9yYV9z
dGF0ZSAqcmEsIHVuc2lnbmVkIGxvbmcgaW5kZXgpCnsKIHJldHVybiAoaW5kZXggPj0gcmEtPnN0
YXJ0ICYmCiAgaW5kZXggPCByYS0+c3RhcnQgKyByYS0+c2l6ZSk7Cn0KCnN0cnVjdCBmaWxlIHsK
IHVuaW9uIHsKICBzdHJ1Y3QgbGxpc3Rfbm9kZSBmdV9sbGlzdDsKICBzdHJ1Y3QgY2FsbGJhY2tf
aGVhZCBmdV9yY3VoZWFkOwogfSBmX3U7CiBzdHJ1Y3QgcGF0aCBmX3BhdGg7CiBzdHJ1Y3QgaW5v
ZGUgKmZfaW5vZGU7CiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmX29wOwoKCgoKCiBz
cGlubG9ja190IGZfbG9jazsKIGVudW0gcndfaGludCBmX3dyaXRlX2hpbnQ7CiBhdG9taWNfbG9u
Z190IGZfY291bnQ7CiB1bnNpZ25lZCBpbnQgZl9mbGFnczsKIGZtb2RlX3QgZl9tb2RlOwogc3Ry
dWN0IG11dGV4IGZfcG9zX2xvY2s7CiBsb2ZmX3QgZl9wb3M7CiBzdHJ1Y3QgZm93bl9zdHJ1Y3Qg
Zl9vd25lcjsKIGNvbnN0IHN0cnVjdCBjcmVkICpmX2NyZWQ7CiBzdHJ1Y3QgZmlsZV9yYV9zdGF0
ZSBmX3JhOwoKIHU2NCBmX3ZlcnNpb247Cgogdm9pZCAqZl9zZWN1cml0eTsKCgogdm9pZCAqcHJp
dmF0ZV9kYXRhOwoKCgogc3RydWN0IGxpc3RfaGVhZCBmX2VwX2xpbmtzOwogc3RydWN0IGxpc3Rf
aGVhZCBmX3RmaWxlX2xsaW5rOwoKIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpmX21hcHBpbmc7CiBl
cnJzZXFfdCBmX3diX2VycjsKfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSkK
ICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQpKSk7CgpzdHJ1Y3QgZmlsZV9oYW5kbGUgewogX191
MzIgaGFuZGxlX2J5dGVzOwogaW50IGhhbmRsZV90eXBlOwoKIHVuc2lnbmVkIGNoYXIgZl9oYW5k
bGVbMF07Cn07CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3QgZmlsZSAqZ2V0X2ZpbGUoc3RydWN0IGZpbGUgKmYpCnsKIGF0b21p
Y19sb25nX2luYygmZi0+Zl9jb3VudCk7CiByZXR1cm4gZjsKfQojIDEwMjYgIi4vaW5jbHVkZS9s
aW51eC9mcy5oIgp0eXBlZGVmIHZvaWQgKmZsX293bmVyX3Q7CgpzdHJ1Y3QgZmlsZV9sb2NrOwoK
c3RydWN0IGZpbGVfbG9ja19vcGVyYXRpb25zIHsKIHZvaWQgKCpmbF9jb3B5X2xvY2spKHN0cnVj
dCBmaWxlX2xvY2sgKiwgc3RydWN0IGZpbGVfbG9jayAqKTsKIHZvaWQgKCpmbF9yZWxlYXNlX3By
aXZhdGUpKHN0cnVjdCBmaWxlX2xvY2sgKik7Cn07CgpzdHJ1Y3QgbG9ja19tYW5hZ2VyX29wZXJh
dGlvbnMgewogZmxfb3duZXJfdCAoKmxtX2dldF9vd25lcikoZmxfb3duZXJfdCk7CiB2b2lkICgq
bG1fcHV0X293bmVyKShmbF9vd25lcl90KTsKIHZvaWQgKCpsbV9ub3RpZnkpKHN0cnVjdCBmaWxl
X2xvY2sgKik7CiBpbnQgKCpsbV9ncmFudCkoc3RydWN0IGZpbGVfbG9jayAqLCBpbnQpOwogYm9v
bCAoKmxtX2JyZWFrKShzdHJ1Y3QgZmlsZV9sb2NrICopOwogaW50ICgqbG1fY2hhbmdlKShzdHJ1
Y3QgZmlsZV9sb2NrICosIGludCwgc3RydWN0IGxpc3RfaGVhZCAqKTsKIHZvaWQgKCpsbV9zZXR1
cCkoc3RydWN0IGZpbGVfbG9jayAqLCB2b2lkICoqKTsKfTsKCnN0cnVjdCBsb2NrX21hbmFnZXIg
ewogc3RydWN0IGxpc3RfaGVhZCBsaXN0OwoKCgoKIGJvb2wgYmxvY2tfb3BlbnM7Cn07CgpzdHJ1
Y3QgbmV0Owp2b2lkIGxvY2tzX3N0YXJ0X2dyYWNlKHN0cnVjdCBuZXQgKiwgc3RydWN0IGxvY2tf
bWFuYWdlciAqKTsKdm9pZCBsb2Nrc19lbmRfZ3JhY2Uoc3RydWN0IGxvY2tfbWFuYWdlciAqKTsK
Ym9vbCBsb2Nrc19pbl9ncmFjZShzdHJ1Y3QgbmV0ICopOwpib29sIG9wZW5zX2luX2dyYWNlKHN0
cnVjdCBuZXQgKik7CgoKIyAxICIuL2luY2x1ZGUvbGludXgvbmZzX2ZzX2kuaCIgMQoKCgoKc3Ry
dWN0IG5sbV9sb2Nrb3duZXI7CgoKCgpzdHJ1Y3QgbmZzX2xvY2tfaW5mbyB7CiB1MzIgc3RhdGU7
CiBzdHJ1Y3QgbmxtX2xvY2tvd25lciAqb3duZXI7CiBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cn07
CgpzdHJ1Y3QgbmZzNF9sb2NrX3N0YXRlOwpzdHJ1Y3QgbmZzNF9sb2NrX2luZm8gewogc3RydWN0
IG5mczRfbG9ja19zdGF0ZSAqb3duZXI7Cn07CiMgMTA2MiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgi
IDIKIyAxMDgwICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RydWN0IGZpbGVfbG9jayB7CiBzdHJ1
Y3QgZmlsZV9sb2NrICpmbF9ibG9ja2VyOwogc3RydWN0IGxpc3RfaGVhZCBmbF9saXN0Owogc3Ry
dWN0IGhsaXN0X25vZGUgZmxfbGluazsKIHN0cnVjdCBsaXN0X2hlYWQgZmxfYmxvY2tlZF9yZXF1
ZXN0czsKCgogc3RydWN0IGxpc3RfaGVhZCBmbF9ibG9ja2VkX21lbWJlcjsKCgogZmxfb3duZXJf
dCBmbF9vd25lcjsKIHVuc2lnbmVkIGludCBmbF9mbGFnczsKIHVuc2lnbmVkIGNoYXIgZmxfdHlw
ZTsKIHVuc2lnbmVkIGludCBmbF9waWQ7CiBpbnQgZmxfbGlua19jcHU7CiB3YWl0X3F1ZXVlX2hl
YWRfdCBmbF93YWl0Owogc3RydWN0IGZpbGUgKmZsX2ZpbGU7CiBsb2ZmX3QgZmxfc3RhcnQ7CiBs
b2ZmX3QgZmxfZW5kOwoKIHN0cnVjdCBmYXN5bmNfc3RydWN0ICogZmxfZmFzeW5jOwoKIHVuc2ln
bmVkIGxvbmcgZmxfYnJlYWtfdGltZTsKIHVuc2lnbmVkIGxvbmcgZmxfZG93bmdyYWRlX3RpbWU7
CgogY29uc3Qgc3RydWN0IGZpbGVfbG9ja19vcGVyYXRpb25zICpmbF9vcHM7CiBjb25zdCBzdHJ1
Y3QgbG9ja19tYW5hZ2VyX29wZXJhdGlvbnMgKmZsX2xtb3BzOwogdW5pb24gewogIHN0cnVjdCBu
ZnNfbG9ja19pbmZvIG5mc19mbDsKICBzdHJ1Y3QgbmZzNF9sb2NrX2luZm8gbmZzNF9mbDsKICBz
dHJ1Y3QgewogICBzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7CiAgIGludCBzdGF0ZTsKICAgdW5zaWdu
ZWQgaW50IGRlYnVnX2lkOwogIH0gYWZzOwogfSBmbF91Owp9IF9fYXR0cmlidXRlX18oKF9fZGVz
aWduYXRlZF9pbml0X18pKTsKCnN0cnVjdCBmaWxlX2xvY2tfY29udGV4dCB7CiBzcGlubG9ja190
IGZsY19sb2NrOwogc3RydWN0IGxpc3RfaGVhZCBmbGNfZmxvY2s7CiBzdHJ1Y3QgbGlzdF9oZWFk
IGZsY19wb3NpeDsKIHN0cnVjdCBsaXN0X2hlYWQgZmxjX2xlYXNlOwp9OwojIDExMzIgIi4vaW5j
bHVkZS9saW51eC9mcy5oIgpleHRlcm4gdm9pZCBzZW5kX3NpZ2lvKHN0cnVjdCBmb3duX3N0cnVj
dCAqZm93biwgaW50IGZkLCBpbnQgYmFuZCk7CgoKCgpleHRlcm4gaW50IGZjbnRsX2dldGxrKHN0
cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgc3RydWN0IGZsb2NrICopOwpleHRlcm4gaW50IGZj
bnRsX3NldGxrKHVuc2lnbmVkIGludCwgc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LAogICBz
dHJ1Y3QgZmxvY2sgKik7CgoKCgoKCgpleHRlcm4gaW50IGZjbnRsX3NldGxlYXNlKHVuc2lnbmVk
IGludCBmZCwgc3RydWN0IGZpbGUgKmZpbHAsIGxvbmcgYXJnKTsKZXh0ZXJuIGludCBmY250bF9n
ZXRsZWFzZShzdHJ1Y3QgZmlsZSAqZmlscCk7CgoKdm9pZCBsb2Nrc19mcmVlX2xvY2tfY29udGV4
dChzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKdm9pZCBsb2Nrc19mcmVlX2xvY2soc3RydWN0IGZpbGVf
bG9jayAqZmwpOwpleHRlcm4gdm9pZCBsb2Nrc19pbml0X2xvY2soc3RydWN0IGZpbGVfbG9jayAq
KTsKZXh0ZXJuIHN0cnVjdCBmaWxlX2xvY2sgKiBsb2Nrc19hbGxvY19sb2NrKHZvaWQpOwpleHRl
cm4gdm9pZCBsb2Nrc19jb3B5X2xvY2soc3RydWN0IGZpbGVfbG9jayAqLCBzdHJ1Y3QgZmlsZV9s
b2NrICopOwpleHRlcm4gdm9pZCBsb2Nrc19jb3B5X2NvbmZsb2NrKHN0cnVjdCBmaWxlX2xvY2sg
Kiwgc3RydWN0IGZpbGVfbG9jayAqKTsKZXh0ZXJuIHZvaWQgbG9ja3NfcmVtb3ZlX3Bvc2l4KHN0
cnVjdCBmaWxlICosIGZsX293bmVyX3QpOwpleHRlcm4gdm9pZCBsb2Nrc19yZW1vdmVfZmlsZShz
dHJ1Y3QgZmlsZSAqKTsKZXh0ZXJuIHZvaWQgbG9ja3NfcmVsZWFzZV9wcml2YXRlKHN0cnVjdCBm
aWxlX2xvY2sgKik7CmV4dGVybiB2b2lkIHBvc2l4X3Rlc3RfbG9jayhzdHJ1Y3QgZmlsZSAqLCBz
dHJ1Y3QgZmlsZV9sb2NrICopOwpleHRlcm4gaW50IHBvc2l4X2xvY2tfZmlsZShzdHJ1Y3QgZmls
ZSAqLCBzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4dGVybiBpbnQg
bG9ja3NfZGVsZXRlX2Jsb2NrKHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4dGVybiBpbnQgdmZzX3Rl
c3RfbG9jayhzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgZmlsZV9sb2NrICopOwpleHRlcm4gaW50IHZm
c19sb2NrX2ZpbGUoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3QgZmlsZV9sb2Nr
ICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4dGVybiBpbnQgdmZzX2NhbmNlbF9sb2NrKHN0cnVj
dCBmaWxlICpmaWxwLCBzdHJ1Y3QgZmlsZV9sb2NrICpmbCk7CmV4dGVybiBpbnQgbG9ja3NfbG9j
a19pbm9kZV93YWl0KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlX2xvY2sgKmZsKTsK
ZXh0ZXJuIGludCBfX2JyZWFrX2xlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGlu
dCBmbGFncywgdW5zaWduZWQgaW50IHR5cGUpOwpleHRlcm4gdm9pZCBsZWFzZV9nZXRfbXRpbWUo
c3RydWN0IGlub2RlICosIHN0cnVjdCB0aW1lc3BlYzY0ICp0aW1lKTsKZXh0ZXJuIGludCBnZW5l
cmljX3NldGxlYXNlKHN0cnVjdCBmaWxlICosIGxvbmcsIHN0cnVjdCBmaWxlX2xvY2sgKiosIHZv
aWQgKipwcml2KTsKZXh0ZXJuIGludCB2ZnNfc2V0bGVhc2Uoc3RydWN0IGZpbGUgKiwgbG9uZywg
c3RydWN0IGZpbGVfbG9jayAqKiwgdm9pZCAqKik7CmV4dGVybiBpbnQgbGVhc2VfbW9kaWZ5KHN0
cnVjdCBmaWxlX2xvY2sgKiwgaW50LCBzdHJ1Y3QgbGlzdF9oZWFkICopOwoKc3RydWN0IG5vdGlm
aWVyX2Jsb2NrOwpleHRlcm4gaW50IGxlYXNlX3JlZ2lzdGVyX25vdGlmaWVyKHN0cnVjdCBub3Rp
Zmllcl9ibG9jayAqKTsKZXh0ZXJuIHZvaWQgbGVhc2VfdW5yZWdpc3Rlcl9ub3RpZmllcihzdHJ1
Y3Qgbm90aWZpZXJfYmxvY2sgKik7CgpzdHJ1Y3QgZmlsZXNfc3RydWN0OwpleHRlcm4gdm9pZCBz
aG93X2ZkX2xvY2tzKHN0cnVjdCBzZXFfZmlsZSAqZiwKICAgIHN0cnVjdCBmaWxlICpmaWxwLCBz
dHJ1Y3QgZmlsZXNfc3RydWN0ICpmaWxlcyk7CiMgMTMxNyAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHN0cnVjdCBpbm9kZSAqZmlsZV9pbm9kZShjb25zdCBzdHJ1Y3QgZmlsZSAqZikKewogcmV0dXJu
IGYtPmZfaW5vZGU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZW50cnkgKmZpbGVfZGVudHJ5KGNvbnN0IHN0cnVjdCBm
aWxlICpmaWxlKQp7CiByZXR1cm4gZF9yZWFsKGZpbGUtPmZfcGF0aC5kZW50cnksIGZpbGVfaW5v
ZGUoZmlsZSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgbG9ja3NfbG9ja19maWxlX3dhaXQoc3RydWN0IGZpbGUgKmZpbHAs
IHN0cnVjdCBmaWxlX2xvY2sgKmZsKQp7CiByZXR1cm4gbG9ja3NfbG9ja19pbm9kZV93YWl0KGZp
bGVfaW5vZGUoZmlscCksIGZsKTsKfQoKc3RydWN0IGZhc3luY19zdHJ1Y3Qgewogcndsb2NrX3Qg
ZmFfbG9jazsKIGludCBtYWdpYzsKIGludCBmYV9mZDsKIHN0cnVjdCBmYXN5bmNfc3RydWN0ICpm
YV9uZXh0Owogc3RydWN0IGZpbGUgKmZhX2ZpbGU7CiBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCBmYV9y
Y3U7Cn07CgoKCgpleHRlcm4gaW50IGZhc3luY19oZWxwZXIoaW50LCBzdHJ1Y3QgZmlsZSAqLCBp
bnQsIHN0cnVjdCBmYXN5bmNfc3RydWN0ICoqKTsKZXh0ZXJuIHN0cnVjdCBmYXN5bmNfc3RydWN0
ICpmYXN5bmNfaW5zZXJ0X2VudHJ5KGludCwgc3RydWN0IGZpbGUgKiwgc3RydWN0IGZhc3luY19z
dHJ1Y3QgKiosIHN0cnVjdCBmYXN5bmNfc3RydWN0ICopOwpleHRlcm4gaW50IGZhc3luY19yZW1v
dmVfZW50cnkoc3RydWN0IGZpbGUgKiwgc3RydWN0IGZhc3luY19zdHJ1Y3QgKiopOwpleHRlcm4g
c3RydWN0IGZhc3luY19zdHJ1Y3QgKmZhc3luY19hbGxvYyh2b2lkKTsKZXh0ZXJuIHZvaWQgZmFz
eW5jX2ZyZWUoc3RydWN0IGZhc3luY19zdHJ1Y3QgKik7CgoKZXh0ZXJuIHZvaWQga2lsbF9mYXN5
bmMoc3RydWN0IGZhc3luY19zdHJ1Y3QgKiosIGludCwgaW50KTsKCmV4dGVybiB2b2lkIF9fZl9z
ZXRvd24oc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwaWQgKiwgZW51bSBwaWRfdHlwZSwgaW50
IGZvcmNlKTsKZXh0ZXJuIGludCBmX3NldG93bihzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQg
bG9uZyBhcmcsIGludCBmb3JjZSk7CmV4dGVybiB2b2lkIGZfZGVsb3duKHN0cnVjdCBmaWxlICpm
aWxwKTsKZXh0ZXJuIHBpZF90IGZfZ2V0b3duKHN0cnVjdCBmaWxlICpmaWxwKTsKZXh0ZXJuIGlu
dCBzZW5kX3NpZ3VyZyhzdHJ1Y3QgZm93bl9zdHJ1Y3QgKmZvd24pOwojIDE0MDggIi4vaW5jbHVk
ZS9saW51eC9mcy5oIgplbnVtIHsKIFNCX1VORlJPWkVOID0gMCwKIFNCX0ZSRUVaRV9XUklURSA9
IDEsCiBTQl9GUkVFWkVfUEFHRUZBVUxUID0gMiwKIFNCX0ZSRUVaRV9GUyA9IDMsCgogU0JfRlJF
RVpFX0NPTVBMRVRFID0gNCwKfTsKCgoKc3RydWN0IHNiX3dyaXRlcnMgewogaW50IGZyb3plbjsK
IHdhaXRfcXVldWVfaGVhZF90IHdhaXRfdW5mcm96ZW47CiBzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFw
aG9yZSByd19zZW1bKFNCX0ZSRUVaRV9DT01QTEVURSAtIDEpXTsKfTsKCnN0cnVjdCBzdXBlcl9i
bG9jayB7CiBzdHJ1Y3QgbGlzdF9oZWFkIHNfbGlzdDsKIGRldl90IHNfZGV2OwogdW5zaWduZWQg
Y2hhciBzX2Jsb2Nrc2l6ZV9iaXRzOwogdW5zaWduZWQgbG9uZyBzX2Jsb2Nrc2l6ZTsKIGxvZmZf
dCBzX21heGJ5dGVzOwogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKnNfdHlwZTsKIGNvbnN0IHN0
cnVjdCBzdXBlcl9vcGVyYXRpb25zICpzX29wOwogY29uc3Qgc3RydWN0IGRxdW90X29wZXJhdGlv
bnMgKmRxX29wOwogY29uc3Qgc3RydWN0IHF1b3RhY3RsX29wcyAqc19xY29wOwogY29uc3Qgc3Ry
dWN0IGV4cG9ydF9vcGVyYXRpb25zICpzX2V4cG9ydF9vcDsKIHVuc2lnbmVkIGxvbmcgc19mbGFn
czsKIHVuc2lnbmVkIGxvbmcgc19pZmxhZ3M7CiB1bnNpZ25lZCBsb25nIHNfbWFnaWM7CiBzdHJ1
Y3QgZGVudHJ5ICpzX3Jvb3Q7CiBzdHJ1Y3Qgcndfc2VtYXBob3JlIHNfdW1vdW50OwogaW50IHNf
Y291bnQ7CiBhdG9taWNfdCBzX2FjdGl2ZTsKCiB2b2lkICpzX3NlY3VyaXR5OwoKIGNvbnN0IHN0
cnVjdCB4YXR0cl9oYW5kbGVyICoqc194YXR0cjsKCgoKCgoKCiBzdHJ1Y3QgaGxpc3RfYmxfaGVh
ZCBzX3Jvb3RzOwogc3RydWN0IGxpc3RfaGVhZCBzX21vdW50czsKIHN0cnVjdCBibG9ja19kZXZp
Y2UgKnNfYmRldjsKIHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvICpzX2JkaTsKIHN0cnVjdCBtdGRf
aW5mbyAqc19tdGQ7CiBzdHJ1Y3QgaGxpc3Rfbm9kZSBzX2luc3RhbmNlczsKIHVuc2lnbmVkIGlu
dCBzX3F1b3RhX3R5cGVzOwogc3RydWN0IHF1b3RhX2luZm8gc19kcXVvdDsKCiBzdHJ1Y3Qgc2Jf
d3JpdGVycyBzX3dyaXRlcnM7CgoKCgoKCiB2b2lkICpzX2ZzX2luZm87CgoKIHUzMiBzX3RpbWVf
Z3JhbjsKCiB0aW1lNjRfdCBzX3RpbWVfbWluOwogdGltZTY0X3Qgc190aW1lX21heDsKCiBfX3Uz
MiBzX2Zzbm90aWZ5X21hc2s7CiBzdHJ1Y3QgZnNub3RpZnlfbWFya19jb25uZWN0b3IgKnNfZnNu
b3RpZnlfbWFya3M7CgoKIGNoYXIgc19pZFszMl07CiB1dWlkX3Qgc191dWlkOwoKIHVuc2lnbmVk
IGludCBzX21heF9saW5rczsKIGZtb2RlX3Qgc19tb2RlOwoKCgoKCiBzdHJ1Y3QgbXV0ZXggc192
ZnNfcmVuYW1lX211dGV4OwoKCgoKCiBjb25zdCBjaGFyICpzX3N1YnR5cGU7CgogY29uc3Qgc3Ry
dWN0IGRlbnRyeV9vcGVyYXRpb25zICpzX2Rfb3A7CgoKCgogaW50IGNsZWFuY2FjaGVfcG9vbGlk
OwoKIHN0cnVjdCBzaHJpbmtlciBzX3NocmluazsKCgogYXRvbWljX2xvbmdfdCBzX3JlbW92ZV9j
b3VudDsKCgogYXRvbWljX2xvbmdfdCBzX2Zzbm90aWZ5X2lub2RlX3JlZnM7CgoKIGludCBzX3Jl
YWRvbmx5X3JlbW91bnQ7CgoKIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpzX2Rpb19kb25lX3dx
Owogc3RydWN0IGhsaXN0X2hlYWQgc19waW5zOwoKCgoKCgogc3RydWN0IHVzZXJfbmFtZXNwYWNl
ICpzX3VzZXJfbnM7CgoKCgoKCiBzdHJ1Y3QgbGlzdF9scnUgc19kZW50cnlfbHJ1Owogc3RydWN0
IGxpc3RfbHJ1IHNfaW5vZGVfbHJ1Owogc3RydWN0IGNhbGxiYWNrX2hlYWQgcmN1Owogc3RydWN0
IHdvcmtfc3RydWN0IGRlc3Ryb3lfd29yazsKCiBzdHJ1Y3QgbXV0ZXggc19zeW5jX2xvY2s7CgoK
CgogaW50IHNfc3RhY2tfZGVwdGg7CgoKIHNwaW5sb2NrX3Qgc19pbm9kZV9saXN0X2xvY2sgX19h
dHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYpKSkpKTsKIHN0cnVjdCBsaXN0X2hlYWQg
c19pbm9kZXM7Cgogc3BpbmxvY2tfdCBzX2lub2RlX3dibGlzdF9sb2NrOwogc3RydWN0IGxpc3Rf
aGVhZCBzX2lub2Rlc193YjsKfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7
CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVpZF90IGlfdWlkX3JlYWQoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkKewogcmV0
dXJuIGZyb21fa3VpZChpbm9kZS0+aV9zYi0+c191c2VyX25zLCBpbm9kZS0+aV91aWQpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBn
aWRfdCBpX2dpZF9yZWFkKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIHJldHVybiBmcm9t
X2tnaWQoaW5vZGUtPmlfc2ItPnNfdXNlcl9ucywgaW5vZGUtPmlfZ2lkKTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpX3Vp
ZF93cml0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1aWRfdCB1aWQpCnsKIGlub2RlLT5pX3VpZCA9
IG1ha2Vfa3VpZChpbm9kZS0+aV9zYi0+c191c2VyX25zLCB1aWQpOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlfZ2lkX3dy
aXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGdpZF90IGdpZCkKewogaW5vZGUtPmlfZ2lkID0gbWFr
ZV9rZ2lkKGlub2RlLT5pX3NiLT5zX3VzZXJfbnMsIGdpZCk7Cn0KCmV4dGVybiBzdHJ1Y3QgdGlt
ZXNwZWM2NCBjdXJyZW50X3RpbWUoc3RydWN0IGlub2RlICppbm9kZSk7CgoKCgoKdm9pZCBfX3Ni
X2VuZF93cml0ZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbGV2ZWwpOwppbnQgX19zYl9z
dGFydF93cml0ZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbGV2ZWwsIGJvb2wgd2FpdCk7
CiMgMTYwMCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2JfZW5kX3dyaXRlKHN0cnVjdCBz
dXBlcl9ibG9jayAqc2IpCnsKIF9fc2JfZW5kX3dyaXRlKHNiLCBTQl9GUkVFWkVfV1JJVEUpOwp9
CiMgMTYxMiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2JfZW5kX3BhZ2VmYXVsdChzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiBfX3NiX2VuZF93cml0ZShzYiwgU0JfRlJFRVpFX1BBR0VG
QVVMVCk7Cn0KIyAxNjI0ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzYl9lbmRfaW50d3Jp
dGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKewogX19zYl9lbmRfd3JpdGUoc2IsIFNCX0ZSRUVa
RV9GUyk7Cn0KIyAxNjQ4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzYl9zdGFydF93cml0
ZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiBfX3NiX3N0YXJ0X3dyaXRlKHNiLCBTQl9GUkVF
WkVfV1JJVEUsIHRydWUpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc2Jfc3RhcnRfd3JpdGVfdHJ5bG9jayhzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKnNiKQp7CiByZXR1cm4gX19zYl9zdGFydF93cml0ZShzYiwgU0JfRlJFRVpFX1dS
SVRFLCBmYWxzZSk7Cn0KIyAxNjc3ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzYl9zdGFy
dF9wYWdlZmF1bHQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKewogX19zYl9zdGFydF93cml0ZShz
YiwgU0JfRlJFRVpFX1BBR0VGQVVMVCwgdHJ1ZSk7Cn0KIyAxNjk1ICIuL2luY2x1ZGUvbGludXgv
ZnMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBzYl9zdGFydF9pbnR3cml0ZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiBf
X3NiX3N0YXJ0X3dyaXRlKHNiLCBTQl9GUkVFWkVfRlMsIHRydWUpOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc2Jfc3RhcnRf
aW50d3JpdGVfdHJ5bG9jayhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiByZXR1cm4gX19zYl9z
dGFydF93cml0ZShzYiwgU0JfRlJFRVpFX0ZTLCBmYWxzZSk7Cn0KCgpleHRlcm4gYm9vbCBpbm9k
ZV9vd25lcl9vcl9jYXBhYmxlKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoKCgoKZXh0ZXJu
IGludCB2ZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHVtb2RlX3Qs
IGJvb2wpOwpleHRlcm4gaW50IHZmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRy
eSAqLCB1bW9kZV90KTsKZXh0ZXJuIGludCB2ZnNfbWtub2Qoc3RydWN0IGlub2RlICosIHN0cnVj
dCBkZW50cnkgKiwgdW1vZGVfdCwgZGV2X3QpOwpleHRlcm4gaW50IHZmc19zeW1saW5rKHN0cnVj
dCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgdmZz
X2xpbmsoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBz
dHJ1Y3QgaW5vZGUgKiopOwpleHRlcm4gaW50IHZmc19ybWRpcihzdHJ1Y3QgaW5vZGUgKiwgc3Ry
dWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCB2ZnNfdW5saW5rKHN0cnVjdCBpbm9kZSAqLCBzdHJ1
Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqKik7CmV4dGVybiBpbnQgdmZzX3JlbmFtZShzdHJ1
Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRy
eSAqLCBzdHJ1Y3QgaW5vZGUgKiosIHVuc2lnbmVkIGludCk7CmV4dGVybiBpbnQgdmZzX3doaXRl
b3V0KHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoKZXh0ZXJuIHN0cnVjdCBkZW50
cnkgKnZmc190bXBmaWxlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlLAogICAg
ICBpbnQgb3Blbl9mbGFnKTsKCmludCB2ZnNfbWtvYmooc3RydWN0IGRlbnRyeSAqLCB1bW9kZV90
LAogIGludCAoKmYpKHN0cnVjdCBkZW50cnkgKiwgdW1vZGVfdCwgdm9pZCAqKSwKICB2b2lkICop
OwoKZXh0ZXJuIGxvbmcgdmZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQg
Y21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CiMgMTc0MCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCmV4
dGVybiB2b2lkIGlub2RlX2luaXRfb3duZXIoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3Ry
dWN0IGlub2RlICpkaXIsCiAgIHVtb2RlX3QgbW9kZSk7CmV4dGVybiBib29sIG1heV9vcGVuX2Rl
dihjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCk7CgoKCnN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8g
ewogdW5zaWduZWQgaW50IGZpX2ZsYWdzOwogdW5zaWduZWQgaW50IGZpX2V4dGVudHNfbWFwcGVk
OwogdW5zaWduZWQgaW50IGZpX2V4dGVudHNfbWF4Owogc3RydWN0IGZpZW1hcF9leHRlbnQgKmZp
X2V4dGVudHNfc3RhcnQ7Cgp9OwppbnQgZmllbWFwX2ZpbGxfbmV4dF9leHRlbnQoc3RydWN0IGZp
ZW1hcF9leHRlbnRfaW5mbyAqaW5mbywgdTY0IGxvZ2ljYWwsCiAgICAgICB1NjQgcGh5cywgdTY0
IGxlbiwgdTMyIGZsYWdzKTsKaW50IGZpZW1hcF9jaGVja19mbGFncyhzdHJ1Y3QgZmllbWFwX2V4
dGVudF9pbmZvICpmaWVpbmZvLCB1MzIgZnNfZmxhZ3MpOwoKCgoKCgoKc3RydWN0IGRpcl9jb250
ZXh0Owp0eXBlZGVmIGludCAoKmZpbGxkaXJfdCkoc3RydWN0IGRpcl9jb250ZXh0ICosIGNvbnN0
IGNoYXIgKiwgaW50LCBsb2ZmX3QsIHU2NCwKICAgIHVuc2lnbmVkKTsKCnN0cnVjdCBkaXJfY29u
dGV4dCB7CiBmaWxsZGlyX3QgYWN0b3I7CiBsb2ZmX3QgcG9zOwp9OwoKc3RydWN0IGJsb2NrX2Rl
dmljZV9vcGVyYXRpb25zOwojIDE4MTkgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpzdHJ1Y3QgaW92
X2l0ZXI7CgpzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHsKIHN0cnVjdCBtb2R1bGUgKm93bmVyOwog
bG9mZl90ICgqbGxzZWVrKSAoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBpbnQpOwogc3NpemVfdCAo
KnJlYWQpIChzdHJ1Y3QgZmlsZSAqLCBjaGFyICosIHNpemVfdCwgbG9mZl90ICopOwogc3NpemVf
dCAoKndyaXRlKSAoc3RydWN0IGZpbGUgKiwgY29uc3QgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAq
KTsKIHNzaXplX3QgKCpyZWFkX2l0ZXIpIChzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGlvdl9pdGVy
ICopOwogc3NpemVfdCAoKndyaXRlX2l0ZXIpIChzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGlvdl9p
dGVyICopOwogaW50ICgqaW9wb2xsKShzdHJ1Y3Qga2lvY2IgKmtpb2NiLCBib29sIHNwaW4pOwog
aW50ICgqaXRlcmF0ZSkgKHN0cnVjdCBmaWxlICosIHN0cnVjdCBkaXJfY29udGV4dCAqKTsKIGlu
dCAoKml0ZXJhdGVfc2hhcmVkKSAoc3RydWN0IGZpbGUgKiwgc3RydWN0IGRpcl9jb250ZXh0ICop
OwogX19wb2xsX3QgKCpwb2xsKSAoc3RydWN0IGZpbGUgKiwgc3RydWN0IHBvbGxfdGFibGVfc3Ry
dWN0ICopOwogbG9uZyAoKnVubG9ja2VkX2lvY3RsKSAoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQg
aW50LCB1bnNpZ25lZCBsb25nKTsKIGxvbmcgKCpjb21wYXRfaW9jdGwpIChzdHJ1Y3QgZmlsZSAq
LCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwogaW50ICgqbW1hcCkgKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKTsKIHVuc2lnbmVkIGxvbmcgbW1hcF9zdXBwb3J0
ZWRfZmxhZ3M7CiBpbnQgKCpvcGVuKSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwog
aW50ICgqZmx1c2gpIChzdHJ1Y3QgZmlsZSAqLCBmbF9vd25lcl90IGlkKTsKIGludCAoKnJlbGVh
c2UpIChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGZpbGUgKik7CiBpbnQgKCpmc3luYykgKHN0cnVj
dCBmaWxlICosIGxvZmZfdCwgbG9mZl90LCBpbnQgZGF0YXN5bmMpOwogaW50ICgqZmFzeW5jKSAo
aW50LCBzdHJ1Y3QgZmlsZSAqLCBpbnQpOwogaW50ICgqbG9jaykgKHN0cnVjdCBmaWxlICosIGlu
dCwgc3RydWN0IGZpbGVfbG9jayAqKTsKIHNzaXplX3QgKCpzZW5kcGFnZSkgKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCBwYWdlICosIGludCwgc2l6ZV90LCBsb2ZmX3QgKiwgaW50KTsKIHVuc2lnbmVk
IGxvbmcgKCpnZXRfdW5tYXBwZWRfYXJlYSkoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgbG9uZywg
dW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7CiBpbnQgKCpjaGVj
a19mbGFncykoaW50KTsKIGludCAoKmZsb2NrKSAoc3RydWN0IGZpbGUgKiwgaW50LCBzdHJ1Y3Qg
ZmlsZV9sb2NrICopOwogc3NpemVfdCAoKnNwbGljZV93cml0ZSkoc3RydWN0IHBpcGVfaW5vZGVf
aW5mbyAqLCBzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgKiwgc2l6ZV90LCB1bnNpZ25lZCBpbnQpOwog
c3NpemVfdCAoKnNwbGljZV9yZWFkKShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgKiwgc3RydWN0IHBp
cGVfaW5vZGVfaW5mbyAqLCBzaXplX3QsIHVuc2lnbmVkIGludCk7CiBpbnQgKCpzZXRsZWFzZSko
c3RydWN0IGZpbGUgKiwgbG9uZywgc3RydWN0IGZpbGVfbG9jayAqKiwgdm9pZCAqKik7CiBsb25n
ICgqZmFsbG9jYXRlKShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQs
CiAgICAgbG9mZl90IGxlbik7CiB2b2lkICgqc2hvd19mZGluZm8pKHN0cnVjdCBzZXFfZmlsZSAq
bSwgc3RydWN0IGZpbGUgKmYpOwoKCgogc3NpemVfdCAoKmNvcHlfZmlsZV9yYW5nZSkoc3RydWN0
IGZpbGUgKiwgbG9mZl90LCBzdHJ1Y3QgZmlsZSAqLAogICBsb2ZmX3QsIHNpemVfdCwgdW5zaWdu
ZWQgaW50KTsKIGxvZmZfdCAoKnJlbWFwX2ZpbGVfcmFuZ2UpKHN0cnVjdCBmaWxlICpmaWxlX2lu
LCBsb2ZmX3QgcG9zX2luLAogICAgICAgc3RydWN0IGZpbGUgKmZpbGVfb3V0LCBsb2ZmX3QgcG9z
X291dCwKICAgICAgIGxvZmZfdCBsZW4sIHVuc2lnbmVkIGludCByZW1hcF9mbGFncyk7CiBpbnQg
KCpmYWR2aXNlKShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGxvZmZfdCwgaW50KTsKfSBfX2F0dHJp
YnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CgpzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyB7
CiBzdHJ1Y3QgZGVudHJ5ICogKCpsb29rdXApIChzdHJ1Y3QgaW5vZGUgKixzdHJ1Y3QgZGVudHJ5
ICosIHVuc2lnbmVkIGludCk7CiBjb25zdCBjaGFyICogKCpnZXRfbGluaykgKHN0cnVjdCBkZW50
cnkgKiwgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZWxheWVkX2NhbGwgKik7CiBpbnQgKCpwZXJt
aXNzaW9uKSAoc3RydWN0IGlub2RlICosIGludCk7CiBzdHJ1Y3QgcG9zaXhfYWNsICogKCpnZXRf
YWNsKShzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKCiBpbnQgKCpyZWFkbGluaykgKHN0cnVjdCBkZW50
cnkgKiwgY2hhciAqLGludCk7CgogaW50ICgqY3JlYXRlKSAoc3RydWN0IGlub2RlICosc3RydWN0
IGRlbnRyeSAqLCB1bW9kZV90LCBib29sKTsKIGludCAoKmxpbmspIChzdHJ1Y3QgZGVudHJ5ICos
c3RydWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqKTsKIGludCAoKnVubGluaykgKHN0cnVjdCBp
bm9kZSAqLHN0cnVjdCBkZW50cnkgKik7CiBpbnQgKCpzeW1saW5rKSAoc3RydWN0IGlub2RlICos
c3RydWN0IGRlbnRyeSAqLGNvbnN0IGNoYXIgKik7CiBpbnQgKCpta2RpcikgKHN0cnVjdCBpbm9k
ZSAqLHN0cnVjdCBkZW50cnkgKix1bW9kZV90KTsKIGludCAoKnJtZGlyKSAoc3RydWN0IGlub2Rl
ICosc3RydWN0IGRlbnRyeSAqKTsKIGludCAoKm1rbm9kKSAoc3RydWN0IGlub2RlICosc3RydWN0
IGRlbnRyeSAqLHVtb2RlX3QsZGV2X3QpOwogaW50ICgqcmVuYW1lKSAoc3RydWN0IGlub2RlICos
IHN0cnVjdCBkZW50cnkgKiwKICAgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwgdW5z
aWduZWQgaW50KTsKIGludCAoKnNldGF0dHIpIChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpYXR0
ciAqKTsKIGludCAoKmdldGF0dHIpIChjb25zdCBzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3Qga3N0YXQg
KiwgdTMyLCB1bnNpZ25lZCBpbnQpOwogc3NpemVfdCAoKmxpc3R4YXR0cikgKHN0cnVjdCBkZW50
cnkgKiwgY2hhciAqLCBzaXplX3QpOwogaW50ICgqZmllbWFwKShzdHJ1Y3QgaW5vZGUgKiwgc3Ry
dWN0IGZpZW1hcF9leHRlbnRfaW5mbyAqLCB1NjQgc3RhcnQsCiAgICAgICAgdTY0IGxlbik7CiBp
bnQgKCp1cGRhdGVfdGltZSkoc3RydWN0IGlub2RlICosIHN0cnVjdCB0aW1lc3BlYzY0ICosIGlu
dCk7CiBpbnQgKCphdG9taWNfb3Blbikoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwK
ICAgICAgc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgb3Blbl9mbGFnLAogICAgICB1bW9kZV90IGNy
ZWF0ZV9tb2RlKTsKIGludCAoKnRtcGZpbGUpIChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRy
eSAqLCB1bW9kZV90KTsKIGludCAoKnNldF9hY2wpKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgcG9z
aXhfYWNsICosIGludCk7Cn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYpKSkp
KTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHNzaXplX3QgY2FsbF9yZWFkX2l0ZXIoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBraW9j
YiAqa2lvLAogICAgICAgICBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpCnsKIHJldHVybiBmaWxlLT5m
X29wLT5yZWFkX2l0ZXIoa2lvLCBpdGVyKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3NpemVfdCBjYWxsX3dyaXRlX2l0ZXIoc3Ry
dWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBraW9jYiAqa2lvLAogICAgICAgICAgc3RydWN0IGlvdl9p
dGVyICppdGVyKQp7CiByZXR1cm4gZmlsZS0+Zl9vcC0+d3JpdGVfaXRlcihraW8sIGl0ZXIpOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgY2FsbF9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg
KnZtYSkKewogcmV0dXJuIGZpbGUtPmZfb3AtPm1tYXAoZmlsZSwgdm1hKTsKfQoKc3NpemVfdCBy
d19jb3B5X2NoZWNrX3V2ZWN0b3IoaW50IHR5cGUsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqIHV2ZWN0
b3IsCiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnJfc2VncywgdW5zaWduZWQgbG9uZyBmYXN0X3Nl
Z3MsCiAgICAgICAgIHN0cnVjdCBpb3ZlYyAqZmFzdF9wb2ludGVyLAogICAgICAgICBzdHJ1Y3Qg
aW92ZWMgKipyZXRfcG9pbnRlcik7CgpleHRlcm4gc3NpemVfdCBfX3Zmc19yZWFkKHN0cnVjdCBm
aWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmV4dGVybiBzc2l6ZV90IHZmc19yZWFk
KHN0cnVjdCBmaWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmV4dGVybiBzc2l6ZV90
IHZmc193cml0ZShzdHJ1Y3QgZmlsZSAqLCBjb25zdCBjaGFyICosIHNpemVfdCwgbG9mZl90ICop
OwpleHRlcm4gc3NpemVfdCB2ZnNfcmVhZHYoc3RydWN0IGZpbGUgKiwgY29uc3Qgc3RydWN0IGlv
dmVjICosCiAgdW5zaWduZWQgbG9uZywgbG9mZl90ICosIHJ3Zl90KTsKZXh0ZXJuIHNzaXplX3Qg
dmZzX2NvcHlfZmlsZV9yYW5nZShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgLCBzdHJ1Y3QgZmlsZSAq
LAogICAgICAgbG9mZl90LCBzaXplX3QsIHVuc2lnbmVkIGludCk7CmV4dGVybiBzc2l6ZV90IGdl
bmVyaWNfY29weV9maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlX2luLCBsb2ZmX3QgcG9zX2lu
LAogICAgICAgICAgIHN0cnVjdCBmaWxlICpmaWxlX291dCwgbG9mZl90IHBvc19vdXQsCiAgICAg
ICAgICAgc2l6ZV90IGxlbiwgdW5zaWduZWQgaW50IGZsYWdzKTsKZXh0ZXJuIGludCBnZW5lcmlj
X3JlbWFwX2ZpbGVfcmFuZ2VfcHJlcChzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19p
biwKICAgICAgc3RydWN0IGZpbGUgKmZpbGVfb3V0LCBsb2ZmX3QgcG9zX291dCwKICAgICAgbG9m
Zl90ICpjb3VudCwKICAgICAgdW5zaWduZWQgaW50IHJlbWFwX2ZsYWdzKTsKZXh0ZXJuIGxvZmZf
dCBkb19jbG9uZV9maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlX2luLCBsb2ZmX3QgcG9zX2lu
LAogICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LAogICAgICBsb2Zm
X3QgbGVuLCB1bnNpZ25lZCBpbnQgcmVtYXBfZmxhZ3MpOwpleHRlcm4gbG9mZl90IHZmc19jbG9u
ZV9maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlX2luLCBsb2ZmX3QgcG9zX2luLAogICAgICAg
c3RydWN0IGZpbGUgKmZpbGVfb3V0LCBsb2ZmX3QgcG9zX291dCwKICAgICAgIGxvZmZfdCBsZW4s
IHVuc2lnbmVkIGludCByZW1hcF9mbGFncyk7CmV4dGVybiBpbnQgdmZzX2RlZHVwZV9maWxlX3Jh
bmdlKHN0cnVjdCBmaWxlICpmaWxlLAogICAgIHN0cnVjdCBmaWxlX2RlZHVwZV9yYW5nZSAqc2Ft
ZSk7CmV4dGVybiBsb2ZmX3QgdmZzX2RlZHVwZV9maWxlX3JhbmdlX29uZShzdHJ1Y3QgZmlsZSAq
c3JjX2ZpbGUsIGxvZmZfdCBzcmNfcG9zLAogICAgIHN0cnVjdCBmaWxlICpkc3RfZmlsZSwgbG9m
Zl90IGRzdF9wb3MsCiAgICAgbG9mZl90IGxlbiwgdW5zaWduZWQgaW50IHJlbWFwX2ZsYWdzKTsK
CgpzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyB7CiAgICBzdHJ1Y3QgaW5vZGUgKigqYWxsb2NfaW5v
ZGUpKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogdm9pZCAoKmRlc3Ryb3lfaW5vZGUpKHN0cnVj
dCBpbm9kZSAqKTsKIHZvaWQgKCpmcmVlX2lub2RlKShzdHJ1Y3QgaW5vZGUgKik7CgogICAgdm9p
ZCAoKmRpcnR5X2lub2RlKSAoc3RydWN0IGlub2RlICosIGludCBmbGFncyk7CiBpbnQgKCp3cml0
ZV9pbm9kZSkgKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYyk7
CiBpbnQgKCpkcm9wX2lub2RlKSAoc3RydWN0IGlub2RlICopOwogdm9pZCAoKmV2aWN0X2lub2Rl
KSAoc3RydWN0IGlub2RlICopOwogdm9pZCAoKnB1dF9zdXBlcikgKHN0cnVjdCBzdXBlcl9ibG9j
ayAqKTsKIGludCAoKnN5bmNfZnMpKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB3YWl0KTsK
IGludCAoKmZyZWV6ZV9zdXBlcikgKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIGludCAoKmZyZWV6
ZV9mcykgKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIGludCAoKnRoYXdfc3VwZXIpIChzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKik7CiBpbnQgKCp1bmZyZWV6ZV9mcykgKHN0cnVjdCBzdXBlcl9ibG9jayAq
KTsKIGludCAoKnN0YXRmcykgKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGtzdGF0ZnMgKik7CiBp
bnQgKCpyZW1vdW50X2ZzKSAoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCAqLCBjaGFyICopOwog
dm9pZCAoKnVtb3VudF9iZWdpbikgKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKCiBpbnQgKCpzaG93
X29wdGlvbnMpKHN0cnVjdCBzZXFfZmlsZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwogaW50ICgqc2hv
d19kZXZuYW1lKShzdHJ1Y3Qgc2VxX2ZpbGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKIGludCAoKnNo
b3dfcGF0aCkoc3RydWN0IHNlcV9maWxlICosIHN0cnVjdCBkZW50cnkgKik7CiBpbnQgKCpzaG93
X3N0YXRzKShzdHJ1Y3Qgc2VxX2ZpbGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKCiBzc2l6ZV90ICgq
cXVvdGFfcmVhZCkoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCwgY2hhciAqLCBzaXplX3QsIGxv
ZmZfdCk7CiBzc2l6ZV90ICgqcXVvdGFfd3JpdGUpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQs
IGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QpOwogc3RydWN0IGRxdW90ICoqKCpnZXRfZHF1
b3RzKShzdHJ1Y3QgaW5vZGUgKik7CgogaW50ICgqYmRldl90cnlfdG9fZnJlZV9wYWdlKShzdHJ1
Y3Qgc3VwZXJfYmxvY2sqLCBzdHJ1Y3QgcGFnZSosIGdmcF90KTsKIGxvbmcgKCpucl9jYWNoZWRf
b2JqZWN0cykoc3RydWN0IHN1cGVyX2Jsb2NrICosCiAgICAgIHN0cnVjdCBzaHJpbmtfY29udHJv
bCAqKTsKIGxvbmcgKCpmcmVlX2NhY2hlZF9vYmplY3RzKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwK
ICAgICAgICBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKik7Cn07CiMgMjAxNyAiLi9pbmNsdWRlL2xp
bnV4L2ZzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgc2JfcmRvbmx5KGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpIHsg
cmV0dXJuIHNiLT5zX2ZsYWdzICYgMTsgfQojIDIwNDcgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIEhBU19VTk1BUFBFRF9JRChzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiByZXR1cm4gIXVpZF92
YWxpZChpbm9kZS0+aV91aWQpIHx8ICFnaWRfdmFsaWQoaW5vZGUtPmlfZ2lkKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBy
d19oaW50IGZpbGVfd3JpdGVfaGludChzdHJ1Y3QgZmlsZSAqZmlsZSkKewogaWYgKGZpbGUtPmZf
d3JpdGVfaGludCAhPSBXUklURV9MSUZFX05PVF9TRVQpCiAgcmV0dXJuIGZpbGUtPmZfd3JpdGVf
aGludDsKCiByZXR1cm4gZmlsZV9pbm9kZShmaWxlKS0+aV93cml0ZV9oaW50Owp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaW9j
Yl9mbGFncyhzdHJ1Y3QgZmlsZSAqZmlsZSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MTYga2lfaGludF92YWxpZGF0ZShlbnVtIHJ3
X2hpbnQgaGludCkKewogdHlwZW9mKCgoc3RydWN0IGtpb2NiICopMCktPmtpX2hpbnQpIG1heF9o
aW50ID0gLTE7CgogaWYgKGhpbnQgPD0gbWF4X2hpbnQpCiAgcmV0dXJuIGhpbnQ7CiByZXR1cm4g
MDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBpbml0X3N5bmNfa2lvY2Ioc3RydWN0IGtpb2NiICpraW9jYiwgc3RydWN0IGZp
bGUgKmZpbHApCnsKICpraW9jYiA9IChzdHJ1Y3Qga2lvY2IpIHsKICAua2lfZmlscCA9IGZpbHAs
CiAgLmtpX2ZsYWdzID0gaW9jYl9mbGFncyhmaWxwKSwKICAua2lfaGludCA9IGtpX2hpbnRfdmFs
aWRhdGUoZmlsZV93cml0ZV9oaW50KGZpbHApKSwKICAua2lfaW9wcmlvID0gZ2V0X2N1cnJlbnRf
aW9wcmlvKCksCiB9Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGtpb2NiX2Nsb25lKHN0cnVjdCBraW9jYiAqa2lvY2IsIHN0
cnVjdCBraW9jYiAqa2lvY2Jfc3JjLAogICAgICAgICAgc3RydWN0IGZpbGUgKmZpbHApCnsKICpr
aW9jYiA9IChzdHJ1Y3Qga2lvY2IpIHsKICAua2lfZmlscCA9IGZpbHAsCiAgLmtpX2ZsYWdzID0g
a2lvY2Jfc3JjLT5raV9mbGFncywKICAua2lfaGludCA9IGtpb2NiX3NyYy0+a2lfaGludCwKICAu
a2lfaW9wcmlvID0ga2lvY2Jfc3JjLT5raV9pb3ByaW8sCiAgLmtpX3BvcyA9IGtpb2NiX3NyYy0+
a2lfcG9zLAogfTsKfQojIDIxODEgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpleHRlcm4gdm9pZCBf
X21hcmtfaW5vZGVfZGlydHkoc3RydWN0IGlub2RlICosIGludCk7CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbWFya19pbm9kZV9k
aXJ0eShzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBfX21hcmtfaW5vZGVfZGlydHkoaW5vZGUsICgo
KDEgPDwgMCkgfCAoMSA8PCAxKSkgfCAoMSA8PCAyKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG1hcmtfaW5vZGVfZGly
dHlfc3luYyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBfX21hcmtfaW5vZGVfZGlydHkoaW5vZGUs
ICgxIDw8IDApKTsKfQoKZXh0ZXJuIHZvaWQgaW5jX25saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUp
OwpleHRlcm4gdm9pZCBkcm9wX25saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwpleHRlcm4gdm9p
ZCBjbGVhcl9ubGluayhzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKZXh0ZXJuIHZvaWQgc2V0X25saW5r
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGludCBubGluayk7CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlub2RlX2lu
Y19saW5rX2NvdW50KHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIGluY19ubGluayhpbm9kZSk7CiBt
YXJrX2lub2RlX2RpcnR5KGlub2RlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9kZWNfbGlua19jb3VudChzdHJ1
Y3QgaW5vZGUgKmlub2RlKQp7CiBkcm9wX25saW5rKGlub2RlKTsKIG1hcmtfaW5vZGVfZGlydHko
aW5vZGUpOwp9CgplbnVtIGZpbGVfdGltZV9mbGFncyB7CiBTX0FUSU1FID0gMSwKIFNfTVRJTUUg
PSAyLAogU19DVElNRSA9IDQsCiBTX1ZFUlNJT04gPSA4LAp9OwoKZXh0ZXJuIGJvb2wgYXRpbWVf
bmVlZHNfdXBkYXRlKGNvbnN0IHN0cnVjdCBwYXRoICosIHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJu
IHZvaWQgdG91Y2hfYXRpbWUoY29uc3Qgc3RydWN0IHBhdGggKik7CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZmlsZV9hY2Nlc3Nl
ZChzdHJ1Y3QgZmlsZSAqZmlsZSkKewogaWYgKCEoZmlsZS0+Zl9mbGFncyAmIDAxMDAwMDAwKSkK
ICB0b3VjaF9hdGltZSgmZmlsZS0+Zl9wYXRoKTsKfQoKZXh0ZXJuIGludCBmaWxlX21vZGlmaWVk
KHN0cnVjdCBmaWxlICpmaWxlKTsKCmludCBzeW5jX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUs
IHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKTsKaW50IHN5bmNfaW5vZGVfbWV0YWRhdGEo
c3RydWN0IGlub2RlICppbm9kZSwgaW50IHdhaXQpOwoKc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUg
ewogY29uc3QgY2hhciAqbmFtZTsKIGludCBmc19mbGFnczsKCgoKCgoKIGludCAoKmluaXRfZnNf
Y29udGV4dCkoc3RydWN0IGZzX2NvbnRleHQgKik7CiBjb25zdCBzdHJ1Y3QgZnNfcGFyYW1ldGVy
X3NwZWMgKnBhcmFtZXRlcnM7CiBzdHJ1Y3QgZGVudHJ5ICooKm1vdW50KSAoc3RydWN0IGZpbGVf
c3lzdGVtX3R5cGUgKiwgaW50LAogICAgICAgICBjb25zdCBjaGFyICosIHZvaWQgKik7CiB2b2lk
ICgqa2lsbF9zYikgKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIHN0cnVjdCBtb2R1bGUgKm93bmVy
Owogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKiBuZXh0Owogc3RydWN0IGhsaXN0X2hlYWQgZnNf
c3VwZXJzOwoKIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBzX2xvY2tfa2V5Owogc3RydWN0IGxvY2tf
Y2xhc3Nfa2V5IHNfdW1vdW50X2tleTsKIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBzX3Zmc19yZW5h
bWVfa2V5Owogc3RydWN0IGxvY2tfY2xhc3Nfa2V5IHNfd3JpdGVyc19rZXlbKFNCX0ZSRUVaRV9D
T01QTEVURSAtIDEpXTsKCiBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgaV9sb2NrX2tleTsKIHN0cnVj
dCBsb2NrX2NsYXNzX2tleSBpX211dGV4X2tleTsKIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBpX211
dGV4X2Rpcl9rZXk7Cn07CgoKCgpleHRlcm4gc3RydWN0IGRlbnRyeSAqbW91bnRfYmRldihzdHJ1
Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2
X25hbWUsIHZvaWQgKmRhdGEsCiBpbnQgKCpmaWxsX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sg
Kiwgdm9pZCAqLCBpbnQpKTsKIyAyMjcxICIuL2luY2x1ZGUvbGludXgvZnMuaCIKZXh0ZXJuIHN0
cnVjdCBkZW50cnkgKm1vdW50X3NpbmdsZShzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlw
ZSwKIGludCBmbGFncywgdm9pZCAqZGF0YSwKIGludCAoKmZpbGxfc3VwZXIpKHN0cnVjdCBzdXBl
cl9ibG9jayAqLCB2b2lkICosIGludCkpOwpleHRlcm4gc3RydWN0IGRlbnRyeSAqbW91bnRfbm9k
ZXYoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsCiBpbnQgZmxhZ3MsIHZvaWQgKmRh
dGEsCiBpbnQgKCpmaWxsX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdm9pZCAqLCBpbnQp
KTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKm1vdW50X3N1YnRyZWUoc3RydWN0IHZmc21vdW50ICpt
bnQsIGNvbnN0IGNoYXIgKnBhdGgpOwp2b2lkIGdlbmVyaWNfc2h1dGRvd25fc3VwZXIoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYik7Cgp2b2lkIGtpbGxfYmxvY2tfc3VwZXIoc3RydWN0IHN1cGVyX2Js
b2NrICpzYik7CgoKCgoKCnZvaWQga2lsbF9hbm9uX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq
c2IpOwp2b2lkIGtpbGxfbGl0dGVyX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwp2b2lk
IGRlYWN0aXZhdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CnZvaWQgZGVhY3RpdmF0
ZV9sb2NrZWRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CmludCBzZXRfYW5vbl9zdXBl
cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKmRhdGEpOwppbnQgc2V0X2Fub25fc3VwZXJf
ZmMoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpOwppbnQgZ2V0
X2Fub25fYmRldihkZXZfdCAqKTsKdm9pZCBmcmVlX2Fub25fYmRldihkZXZfdCk7CnN0cnVjdCBz
dXBlcl9ibG9jayAqc2dldF9mYyhzdHJ1Y3QgZnNfY29udGV4dCAqZmMsCiAgICAgICBpbnQgKCp0
ZXN0KShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGZzX2NvbnRleHQgKiksCiAgICAgICBp
bnQgKCpzZXQpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBzdHJ1Y3QgZnNfY29udGV4dCAqKSk7CnN0
cnVjdCBzdXBlcl9ibG9jayAqc2dldChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqdHlwZSwKICAg
aW50ICgqdGVzdCkoc3RydWN0IHN1cGVyX2Jsb2NrICosdm9pZCAqKSwKICAgaW50ICgqc2V0KShz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKix2b2lkICopLAogICBpbnQgZmxhZ3MsIHZvaWQgKmRhdGEpOwoj
IDIzMjAgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpleHRlcm4gaW50IHJlZ2lzdGVyX2ZpbGVzeXN0
ZW0oc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKik7CmV4dGVybiBpbnQgdW5yZWdpc3Rlcl9maWxl
c3lzdGVtKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICopOwpleHRlcm4gc3RydWN0IHZmc21vdW50
ICprZXJuX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICopOwpleHRlcm4gdm9pZCBrZXJu
X3VubW91bnQoc3RydWN0IHZmc21vdW50ICptbnQpOwpleHRlcm4gaW50IG1heV91bW91bnRfdHJl
ZShzdHJ1Y3QgdmZzbW91bnQgKik7CmV4dGVybiBpbnQgbWF5X3Vtb3VudChzdHJ1Y3QgdmZzbW91
bnQgKik7CmV4dGVybiBsb25nIGRvX21vdW50KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLAog
ICAgICAgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBsb25nLCB2b2lkICopOwpleHRlcm4gc3RydWN0
IHZmc21vdW50ICpjb2xsZWN0X21vdW50cyhjb25zdCBzdHJ1Y3QgcGF0aCAqKTsKZXh0ZXJuIHZv
aWQgZHJvcF9jb2xsZWN0ZWRfbW91bnRzKHN0cnVjdCB2ZnNtb3VudCAqKTsKZXh0ZXJuIGludCBp
dGVyYXRlX21vdW50cyhpbnQgKCopKHN0cnVjdCB2ZnNtb3VudCAqLCB2b2lkICopLCB2b2lkICos
CiAgICAgc3RydWN0IHZmc21vdW50ICopOwpleHRlcm4gaW50IHZmc19zdGF0ZnMoY29uc3Qgc3Ry
dWN0IHBhdGggKiwgc3RydWN0IGtzdGF0ZnMgKik7CmV4dGVybiBpbnQgdXNlcl9zdGF0ZnMoY29u
c3QgY2hhciAqLCBzdHJ1Y3Qga3N0YXRmcyAqKTsKZXh0ZXJuIGludCBmZF9zdGF0ZnMoaW50LCBz
dHJ1Y3Qga3N0YXRmcyAqKTsKZXh0ZXJuIGludCBmcmVlemVfc3VwZXIoc3RydWN0IHN1cGVyX2Js
b2NrICpzdXBlcik7CmV4dGVybiBpbnQgdGhhd19zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnN1
cGVyKTsKZXh0ZXJuIGJvb2wgb3VyX21udChzdHJ1Y3QgdmZzbW91bnQgKm1udCk7CmV4dGVybiBf
X2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKQppbnQgc3VwZXJfc2V0dXBf
YmRpX25hbWUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgY2hhciAqZm10LCAuLi4pOwpleHRlcm4g
aW50IHN1cGVyX3NldHVwX2JkaShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKCmV4dGVybiBpbnQg
Y3VycmVudF91bWFzayh2b2lkKTsKCmV4dGVybiB2b2lkIGlob2xkKHN0cnVjdCBpbm9kZSAqIGlu
b2RlKTsKZXh0ZXJuIHZvaWQgaXB1dChzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbnQgZ2VuZXJp
Y191cGRhdGVfdGltZShzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IHRpbWVzcGVjNjQgKiwgaW50KTsK
CgpleHRlcm4gc3RydWN0IGtvYmplY3QgKmZzX2tvYmo7CgoKCgpleHRlcm4gaW50IGxvY2tzX21h
bmRhdG9yeV9sb2NrZWQoc3RydWN0IGZpbGUgKik7CmV4dGVybiBpbnQgbG9ja3NfbWFuZGF0b3J5
X2FyZWEoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICosIGxvZmZfdCwgbG9mZl90LCB1bnNp
Z25lZCBjaGFyKTsKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbWFuZGF0b3J5X2xvY2soc3RydWN0IGlub2RlICppbm8p
CnsKIHJldHVybiAoaW5vLT5pX21vZGUgJiAoMDAwMjAwMCB8IDAwMDEwKSkgPT0gMDAwMjAwMDsK
fQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgbWFuZGF0b3J5X2xvY2soc3RydWN0IGlub2RlICppbm8pCnsKIHJldHVybiAo
KGlubyktPmlfc2ItPnNfZmxhZ3MgJiAoNjQpKSAmJiBfX21hbmRhdG9yeV9sb2NrKGlubyk7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBsb2Nrc192ZXJpZnlfbG9ja2VkKHN0cnVjdCBmaWxlICpmaWxlKQp7CiBpZiAobWFuZGF0
b3J5X2xvY2soZmlsZV9pbm9kZShmaWxlKSkpCiAgcmV0dXJuIGxvY2tzX21hbmRhdG9yeV9sb2Nr
ZWQoZmlsZSk7CiByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxvY2tzX3ZlcmlmeV90cnVuY2F0ZShzdHJ1Y3Qg
aW5vZGUgKmlub2RlLAogICAgICAgIHN0cnVjdCBmaWxlICpmLAogICAgICAgIGxvZmZfdCBzaXpl
KQp7CiBpZiAoIWlub2RlLT5pX2ZsY3R4IHx8ICFtYW5kYXRvcnlfbG9jayhpbm9kZSkpCiAgcmV0
dXJuIDA7CgogaWYgKHNpemUgPCBpbm9kZS0+aV9zaXplKSB7CiAgcmV0dXJuIGxvY2tzX21hbmRh
dG9yeV9hcmVhKGlub2RlLCBmLCBzaXplLCBpbm9kZS0+aV9zaXplIC0gMSwKICAgIDEpOwogfSBl
bHNlIHsKICByZXR1cm4gbG9ja3NfbWFuZGF0b3J5X2FyZWEoaW5vZGUsIGYsIGlub2RlLT5pX3Np
emUsIHNpemUgLSAxLAogICAgMSk7CiB9Cn0KIyAyNDM4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IGJyZWFrX2xlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGludCBtb2RlKQp7
CgoKCgoKCiBhc20gdm9sYXRpbGUoImxvY2s7IGFkZGwgJDAsLTQoJSVyc3ApIiA6OjogIm1lbW9y
eSIsICJjYyIpOwogaWYgKGlub2RlLT5pX2ZsY3R4ICYmICFsaXN0X2VtcHR5X2NhcmVmdWwoJmlu
b2RlLT5pX2ZsY3R4LT5mbGNfbGVhc2UpKQogIHJldHVybiBfX2JyZWFrX2xlYXNlKGlub2RlLCBt
b2RlLCAzMik7CiByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJyZWFrX2RlbGVnKHN0cnVjdCBpbm9kZSAqaW5v
ZGUsIHVuc2lnbmVkIGludCBtb2RlKQp7CgoKCgoKCiBhc20gdm9sYXRpbGUoImxvY2s7IGFkZGwg
JDAsLTQoJSVyc3ApIiA6OjogIm1lbW9yeSIsICJjYyIpOwogaWYgKGlub2RlLT5pX2ZsY3R4ICYm
ICFsaXN0X2VtcHR5X2NhcmVmdWwoJmlub2RlLT5pX2ZsY3R4LT5mbGNfbGVhc2UpKQogIHJldHVy
biBfX2JyZWFrX2xlYXNlKGlub2RlLCBtb2RlLCA0KTsKIHJldHVybiAwOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdHJ5X2Jy
ZWFrX2RlbGVnKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBpbm9kZSAqKmRlbGVnYXRlZF9p
bm9kZSkKewogaW50IHJldDsKCiByZXQgPSBicmVha19kZWxlZyhpbm9kZSwgMDAwMDAwMDF8MDAw
MDQwMDApOwogaWYgKHJldCA9PSAtMTEgJiYgZGVsZWdhdGVkX2lub2RlKSB7CiAgKmRlbGVnYXRl
ZF9pbm9kZSA9IGlub2RlOwogIGlob2xkKGlub2RlKTsKIH0KIHJldHVybiByZXQ7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBi
cmVha19kZWxlZ193YWl0KHN0cnVjdCBpbm9kZSAqKmRlbGVnYXRlZF9pbm9kZSkKewogaW50IHJl
dDsKCiByZXQgPSBicmVha19kZWxlZygqZGVsZWdhdGVkX2lub2RlLCAwMDAwMDAwMSk7CiBpcHV0
KCpkZWxlZ2F0ZWRfaW5vZGUpOwogKmRlbGVnYXRlZF9pbm9kZSA9ICgodm9pZCAqKTApOwogcmV0
dXJuIHJldDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IGJyZWFrX2xheW91dChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBib29sIHdh
aXQpCnsKIGFzbSB2b2xhdGlsZSgibG9jazsgYWRkbCAkMCwtNCglJXJzcCkiIDo6OiAibWVtb3J5
IiwgImNjIik7CiBpZiAoaW5vZGUtPmlfZmxjdHggJiYgIWxpc3RfZW1wdHlfY2FyZWZ1bCgmaW5v
ZGUtPmlfZmxjdHgtPmZsY19sZWFzZSkpCiAgcmV0dXJuIF9fYnJlYWtfbGVhc2UoaW5vZGUsCiAg
ICB3YWl0ID8gMDAwMDAwMDEgOiAwMDAwMDAwMSB8IDAwMDA0MDAwLAogICAgMjA0OCk7CiByZXR1
cm4gMDsKfQojIDI1MjggIi4vaW5jbHVkZS9saW51eC9mcy5oIgpzdHJ1Y3QgYXVkaXRfbmFtZXM7
CnN0cnVjdCBmaWxlbmFtZSB7CiBjb25zdCBjaGFyICpuYW1lOwogY29uc3QgY2hhciAqdXB0cjsK
IGludCByZWZjbnQ7CiBzdHJ1Y3QgYXVkaXRfbmFtZXMgKmFuYW1lOwogY29uc3QgY2hhciBpbmFt
ZVtdOwp9OwpfU3RhdGljX2Fzc2VydChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGZpbGVuYW1l
LCBpbmFtZSkgJSBzaXplb2YobG9uZykgPT0gMCwgIm9mZnNldG9mKHN0cnVjdCBmaWxlbmFtZSwg
aW5hbWUpICUgc2l6ZW9mKGxvbmcpID09IDAiKTsKCmV4dGVybiBsb25nIHZmc190cnVuY2F0ZShj
b25zdCBzdHJ1Y3QgcGF0aCAqLCBsb2ZmX3QpOwpleHRlcm4gaW50IGRvX3RydW5jYXRlKHN0cnVj
dCBkZW50cnkgKiwgbG9mZl90IHN0YXJ0LCB1bnNpZ25lZCBpbnQgdGltZV9hdHRycywKICAgICAg
ICAgc3RydWN0IGZpbGUgKmZpbHApOwpleHRlcm4gaW50IHZmc19mYWxsb2NhdGUoc3RydWN0IGZp
bGUgKmZpbGUsIGludCBtb2RlLCBsb2ZmX3Qgb2Zmc2V0LAogICBsb2ZmX3QgbGVuKTsKZXh0ZXJu
IGxvbmcgZG9fc3lzX29wZW4oaW50IGRmZCwgY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBmbGFn
cywKICAgdW1vZGVfdCBtb2RlKTsKZXh0ZXJuIHN0cnVjdCBmaWxlICpmaWxlX29wZW5fbmFtZShz
dHJ1Y3QgZmlsZW5hbWUgKiwgaW50LCB1bW9kZV90KTsKZXh0ZXJuIHN0cnVjdCBmaWxlICpmaWxw
X29wZW4oY29uc3QgY2hhciAqLCBpbnQsIHVtb2RlX3QpOwpleHRlcm4gc3RydWN0IGZpbGUgKmZp
bGVfb3Blbl9yb290KHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IHZmc21vdW50ICosCiAgICAgICBj
b25zdCBjaGFyICosIGludCwgdW1vZGVfdCk7CmV4dGVybiBzdHJ1Y3QgZmlsZSAqIGRlbnRyeV9v
cGVuKGNvbnN0IHN0cnVjdCBwYXRoICosIGludCwgY29uc3Qgc3RydWN0IGNyZWQgKik7CmV4dGVy
biBzdHJ1Y3QgZmlsZSAqIG9wZW5fd2l0aF9mYWtlX3BhdGgoY29uc3Qgc3RydWN0IHBhdGggKiwg
aW50LAogICAgICBzdHJ1Y3QgaW5vZGUqLCBjb25zdCBzdHJ1Y3QgY3JlZCAqKTsKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZp
bGUgKmZpbGVfY2xvbmVfb3BlbihzdHJ1Y3QgZmlsZSAqZmlsZSkKewogcmV0dXJuIGRlbnRyeV9v
cGVuKCZmaWxlLT5mX3BhdGgsIGZpbGUtPmZfZmxhZ3MsIGZpbGUtPmZfY3JlZCk7Cn0KZXh0ZXJu
IGludCBmaWxwX2Nsb3NlKHN0cnVjdCBmaWxlICosIGZsX293bmVyX3QgaWQpOwoKZXh0ZXJuIHN0
cnVjdCBmaWxlbmFtZSAqZ2V0bmFtZV9mbGFncyhjb25zdCBjaGFyICosIGludCwgaW50ICopOwpl
eHRlcm4gc3RydWN0IGZpbGVuYW1lICpnZXRuYW1lKGNvbnN0IGNoYXIgKik7CmV4dGVybiBzdHJ1
Y3QgZmlsZW5hbWUgKmdldG5hbWVfa2VybmVsKGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lkIHB1
dG5hbWUoc3RydWN0IGZpbGVuYW1lICpuYW1lKTsKCmV4dGVybiBpbnQgZmluaXNoX29wZW4oc3Ry
dWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKICAgaW50ICgqb3Blbikoc3Ry
dWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopKTsKZXh0ZXJuIGludCBmaW5pc2hfbm9fb3Blbihz
dHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsKCgpleHRlcm4gdm9pZCBf
X2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygo
X19jb2xkX18pKSB2ZnNfY2FjaGVzX2luaXRfZWFybHkodm9pZCk7CmV4dGVybiB2b2lkIF9fYXR0
cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2Nv
bGRfXykpIHZmc19jYWNoZXNfaW5pdCh2b2lkKTsKCmV4dGVybiBzdHJ1Y3Qga21lbV9jYWNoZSAq
bmFtZXNfY2FjaGVwOwoKCgoKCmV4dGVybiBpbnQgcmVnaXN0ZXJfYmxrZGV2KHVuc2lnbmVkIGlu
dCwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIHZvaWQgdW5yZWdpc3Rlcl9ibGtkZXYodW5zaWduZWQg
aW50LCBjb25zdCBjaGFyICopOwpleHRlcm4gdm9pZCBiZGV2X3VuaGFzaF9pbm9kZShkZXZfdCBk
ZXYpOwpleHRlcm4gc3RydWN0IGJsb2NrX2RldmljZSAqYmRnZXQoZGV2X3QpOwpleHRlcm4gc3Ry
dWN0IGJsb2NrX2RldmljZSAqYmRncmFiKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpOwpleHRl
cm4gdm9pZCBiZF9zZXRfc2l6ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICosIGxvZmZfdCBzaXplKTsK
ZXh0ZXJuIHZvaWQgYmRfZm9yZ2V0KHN0cnVjdCBpbm9kZSAqaW5vZGUpOwpleHRlcm4gdm9pZCBi
ZHB1dChzdHJ1Y3QgYmxvY2tfZGV2aWNlICopOwpleHRlcm4gdm9pZCBpbnZhbGlkYXRlX2JkZXYo
c3RydWN0IGJsb2NrX2RldmljZSAqKTsKZXh0ZXJuIHZvaWQgaXRlcmF0ZV9iZGV2cyh2b2lkICgq
KShzdHJ1Y3QgYmxvY2tfZGV2aWNlICosIHZvaWQgKiksIHZvaWQgKik7CmV4dGVybiBpbnQgc3lu
Y19ibG9ja2RldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KTsKZXh0ZXJuIHZvaWQga2lsbF9i
ZGV2KHN0cnVjdCBibG9ja19kZXZpY2UgKik7CmV4dGVybiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmZy
ZWV6ZV9iZGV2KHN0cnVjdCBibG9ja19kZXZpY2UgKik7CmV4dGVybiB2b2lkIGVtZXJnZW5jeV90
aGF3X2FsbCh2b2lkKTsKZXh0ZXJuIHZvaWQgZW1lcmdlbmN5X3RoYXdfYmRldihzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKnNiKTsKZXh0ZXJuIGludCB0aGF3X2JkZXYoc3RydWN0IGJsb2NrX2RldmljZSAq
YmRldiwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CmV4dGVybiBpbnQgZnN5bmNfYmRldihzdHJ1
Y3QgYmxvY2tfZGV2aWNlICopOwoKZXh0ZXJuIHN0cnVjdCBzdXBlcl9ibG9jayAqYmxvY2tkZXZf
c3VwZXJibG9jazsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgc2JfaXNfYmxrZGV2X3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2Ip
CnsKIHJldHVybiBzYiA9PSBibG9ja2Rldl9zdXBlcmJsb2NrOwp9CiMgMjYzMSAiLi9pbmNsdWRl
L2xpbnV4L2ZzLmgiCmV4dGVybiBpbnQgc3luY19maWxlc3lzdGVtKHN0cnVjdCBzdXBlcl9ibG9j
ayAqKTsKZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGVmX2Jsa19mb3BzOwpl
eHRlcm4gY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkZWZfY2hyX2ZvcHM7CgpleHRlcm4g
aW50IGlvY3RsX2J5X2JkZXYoc3RydWN0IGJsb2NrX2RldmljZSAqLCB1bnNpZ25lZCwgdW5zaWdu
ZWQgbG9uZyk7CmV4dGVybiBpbnQgYmxrZGV2X2lvY3RsKHN0cnVjdCBibG9ja19kZXZpY2UgKiwg
Zm1vZGVfdCwgdW5zaWduZWQsIHVuc2lnbmVkIGxvbmcpOwpleHRlcm4gbG9uZyBjb21wYXRfYmxr
ZGV2X2lvY3RsKHN0cnVjdCBmaWxlICosIHVuc2lnbmVkLCB1bnNpZ25lZCBsb25nKTsKZXh0ZXJu
IGludCBibGtkZXZfZ2V0KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGZtb2RlX3QgbW9kZSwg
dm9pZCAqaG9sZGVyKTsKZXh0ZXJuIHN0cnVjdCBibG9ja19kZXZpY2UgKmJsa2Rldl9nZXRfYnlf
cGF0aChjb25zdCBjaGFyICpwYXRoLCBmbW9kZV90IG1vZGUsCiAgICAgICAgICAgIHZvaWQgKmhv
bGRlcik7CmV4dGVybiBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpibGtkZXZfZ2V0X2J5X2RldihkZXZf
dCBkZXYsIGZtb2RlX3QgbW9kZSwKICAgICAgICAgICB2b2lkICpob2xkZXIpOwpleHRlcm4gc3Ry
dWN0IGJsb2NrX2RldmljZSAqYmRfc3RhcnRfY2xhaW1pbmcoc3RydWN0IGJsb2NrX2RldmljZSAq
YmRldiwKICAgICAgICAgICB2b2lkICpob2xkZXIpOwpleHRlcm4gdm9pZCBiZF9maW5pc2hfY2xh
aW1pbmcoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwKICAgICAgICAgIHN0cnVjdCBibG9ja19k
ZXZpY2UgKndob2xlLCB2b2lkICpob2xkZXIpOwpleHRlcm4gdm9pZCBiZF9hYm9ydF9jbGFpbWlu
ZyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LAogICAgICAgICBzdHJ1Y3QgYmxvY2tfZGV2aWNl
ICp3aG9sZSwgdm9pZCAqaG9sZGVyKTsKZXh0ZXJuIHZvaWQgYmxrZGV2X3B1dChzdHJ1Y3QgYmxv
Y2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUpOwoKCmV4dGVybiBpbnQgYmRfbGlua19kaXNr
X2hvbGRlcihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3QgZ2VuZGlzayAqZGlzayk7
CmV4dGVybiB2b2lkIGJkX3VubGlua19kaXNrX2hvbGRlcihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpi
ZGV2LAogICAgICBzdHJ1Y3QgZ2VuZGlzayAqZGlzayk7CiMgMjY3NiAiLi9pbmNsdWRlL2xpbnV4
L2ZzLmgiCmV4dGVybiBpbnQgYWxsb2NfY2hyZGV2X3JlZ2lvbihkZXZfdCAqLCB1bnNpZ25lZCwg
dW5zaWduZWQsIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgcmVnaXN0ZXJfY2hyZGV2X3JlZ2lv
bihkZXZfdCwgdW5zaWduZWQsIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgX19yZWdpc3Rlcl9j
aHJkZXYodW5zaWduZWQgaW50IG1ham9yLCB1bnNpZ25lZCBpbnQgYmFzZW1pbm9yLAogICAgICAg
IHVuc2lnbmVkIGludCBjb3VudCwgY29uc3QgY2hhciAqbmFtZSwKICAgICAgICBjb25zdCBzdHJ1
Y3QgZmlsZV9vcGVyYXRpb25zICpmb3BzKTsKZXh0ZXJuIHZvaWQgX191bnJlZ2lzdGVyX2NocmRl
dih1bnNpZ25lZCBpbnQgbWFqb3IsIHVuc2lnbmVkIGludCBiYXNlbWlub3IsCiAgICB1bnNpZ25l
ZCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUpOwpleHRlcm4gdm9pZCB1bnJlZ2lzdGVyX2No
cmRldl9yZWdpb24oZGV2X3QsIHVuc2lnbmVkKTsKZXh0ZXJuIHZvaWQgY2hyZGV2X3Nob3coc3Ry
dWN0IHNlcV9maWxlICosb2ZmX3QpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX2NocmRldih1bnNpZ25lZCBpbnQg
bWFqb3IsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgKmZvcHMpCnsKIHJldHVybiBfX3JlZ2lzdGVyX2NocmRldihtYWpvciwgMCwgMjU2LCBuYW1l
LCBmb3BzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCB1bnJlZ2lzdGVyX2NocmRldih1bnNpZ25lZCBpbnQgbWFqb3IsIGNv
bnN0IGNoYXIgKm5hbWUpCnsKIF9fdW5yZWdpc3Rlcl9jaHJkZXYobWFqb3IsIDAsIDI1NiwgbmFt
ZSk7Cn0KCgoKCgoKCmV4dGVybiBjb25zdCBjaGFyICpfX2JkZXZuYW1lKGRldl90LCBjaGFyICpi
dWZmZXIpOwpleHRlcm4gY29uc3QgY2hhciAqYmRldm5hbWUoc3RydWN0IGJsb2NrX2RldmljZSAq
YmRldiwgY2hhciAqYnVmZmVyKTsKZXh0ZXJuIHN0cnVjdCBibG9ja19kZXZpY2UgKmxvb2t1cF9i
ZGV2KGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lkIGJsa2Rldl9zaG93KHN0cnVjdCBzZXFfZmls
ZSAqLG9mZl90KTsKCgoKCgpleHRlcm4gdm9pZCBpbml0X3NwZWNpYWxfaW5vZGUoc3RydWN0IGlu
b2RlICosIHVtb2RlX3QsIGRldl90KTsKCgpleHRlcm4gdm9pZCBtYWtlX2JhZF9pbm9kZShzdHJ1
Y3QgaW5vZGUgKik7CmV4dGVybiBib29sIGlzX2JhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKik7CgoK
ZXh0ZXJuIGludCByZXZhbGlkYXRlX2Rpc2soc3RydWN0IGdlbmRpc2sgKik7CmV4dGVybiBpbnQg
Y2hlY2tfZGlza19jaGFuZ2Uoc3RydWN0IGJsb2NrX2RldmljZSAqKTsKZXh0ZXJuIGludCBfX2lu
dmFsaWRhdGVfZGV2aWNlKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgYm9vbCk7CmV4dGVybiBpbnQg
aW52YWxpZGF0ZV9wYXJ0aXRpb24oc3RydWN0IGdlbmRpc2sgKiwgaW50KTsKCnVuc2lnbmVkIGxv
bmcgaW52YWxpZGF0ZV9tYXBwaW5nX3BhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n
LAogICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW52
YWxpZGF0ZV9yZW1vdGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKewogaWYgKCgoKGlub2Rl
LT5pX21vZGUpICYgMDAxNzAwMDApID09IDAxMDAwMDApIHx8ICgoKGlub2RlLT5pX21vZGUpICYg
MDAxNzAwMDApID09IDAwNDAwMDApIHx8CiAgICAgKCgoaW5vZGUtPmlfbW9kZSkgJiAwMDE3MDAw
MCkgPT0gMDEyMDAwMCkpCiAgaW52YWxpZGF0ZV9tYXBwaW5nX3BhZ2VzKGlub2RlLT5pX21hcHBp
bmcsIDAsIC0xKTsKfQpleHRlcm4gaW50IGludmFsaWRhdGVfaW5vZGVfcGFnZXMyKHN0cnVjdCBh
ZGRyZXNzX3NwYWNlICptYXBwaW5nKTsKZXh0ZXJuIGludCBpbnZhbGlkYXRlX2lub2RlX3BhZ2Vz
Ml9yYW5nZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKICAgICAgdW5zaWduZWQgbG9u
ZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwpleHRlcm4gaW50IHdyaXRlX2lub2RlX25vdyhz
dHJ1Y3QgaW5vZGUgKiwgaW50KTsKZXh0ZXJuIGludCBmaWxlbWFwX2ZkYXRhd3JpdGUoc3RydWN0
IGFkZHJlc3Nfc3BhY2UgKik7CmV4dGVybiBpbnQgZmlsZW1hcF9mbHVzaChzdHJ1Y3QgYWRkcmVz
c19zcGFjZSAqKTsKZXh0ZXJuIGludCBmaWxlbWFwX2ZkYXRhd2FpdF9rZWVwX2Vycm9ycyhzdHJ1
Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyk7CmV4dGVybiBpbnQgZmlsZW1hcF9mZGF0YXdhaXRf
cmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgbG9mZl90IGxzdGFydCwKICAgICAgIGxvZmZf
dCBsZW5kKTsKZXh0ZXJuIGludCBmaWxlbWFwX2ZkYXRhd2FpdF9yYW5nZV9rZWVwX2Vycm9ycyhz
dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKICBsb2ZmX3Qgc3RhcnRfYnl0ZSwgbG9mZl90
IGVuZF9ieXRlKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBmaWxlbWFwX2ZkYXRhd2FpdChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq
bWFwcGluZykKewogcmV0dXJuIGZpbGVtYXBfZmRhdGF3YWl0X3JhbmdlKG1hcHBpbmcsIDAsICgo
bG9uZyBsb25nKSh+MFVMTCA+PiAxKSkpOwp9CgpleHRlcm4gYm9vbCBmaWxlbWFwX3JhbmdlX2hh
c19wYWdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIGxvZmZfdCBsc3RhcnQsCiAgICAgIGxvZmZf
dCBsZW5kKTsKZXh0ZXJuIGludCBmaWxlbWFwX3dyaXRlX2FuZF93YWl0X3JhbmdlKHN0cnVjdCBh
ZGRyZXNzX3NwYWNlICptYXBwaW5nLAogICAgICAgICAgICBsb2ZmX3QgbHN0YXJ0LCBsb2ZmX3Qg
bGVuZCk7CmV4dGVybiBpbnQgX19maWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2Uoc3RydWN0IGFkZHJl
c3Nfc3BhY2UgKm1hcHBpbmcsCiAgICBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQsIGludCBzeW5j
X21vZGUpOwpleHRlcm4gaW50IGZpbGVtYXBfZmRhdGF3cml0ZV9yYW5nZShzdHJ1Y3QgYWRkcmVz
c19zcGFjZSAqbWFwcGluZywKICAgIGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCk7CmV4dGVybiBp
bnQgZmlsZW1hcF9jaGVja19lcnJvcnMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpOwpl
eHRlcm4gdm9pZCBfX2ZpbGVtYXBfc2V0X3diX2VycihzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw
cGluZywgaW50IGVycik7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgZmlsZW1hcF93cml0ZV9hbmRfd2FpdChzdHJ1Y3QgYWRkcmVz
c19zcGFjZSAqbWFwcGluZykKewogcmV0dXJuIGZpbGVtYXBfd3JpdGVfYW5kX3dhaXRfcmFuZ2Uo
bWFwcGluZywgMCwgKChsb25nIGxvbmcpKH4wVUxMID4+IDEpKSk7Cn0KCmV4dGVybiBpbnQgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGZpbGVfZmRhdGF3YWl0X3Jhbmdl
KHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QgbHN0YXJ0LAogICAgICBsb2ZmX3QgbGVuZCk7CmV4
dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGZpbGVfY2hl
Y2tfYW5kX2FkdmFuY2Vfd2JfZXJyKHN0cnVjdCBmaWxlICpmaWxlKTsKZXh0ZXJuIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZmlsZV93cml0ZV9hbmRfd2FpdF9y
YW5nZShzdHJ1Y3QgZmlsZSAqZmlsZSwKICAgICAgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kKTsK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBmaWxlX3dyaXRlX2FuZF93YWl0KHN0cnVjdCBmaWxlICpmaWxlKQp7CiByZXR1cm4gZmls
ZV93cml0ZV9hbmRfd2FpdF9yYW5nZShmaWxlLCAwLCAoKGxvbmcgbG9uZykofjBVTEwgPj4gMSkp
KTsKfQojIDI3OTEgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGZpbGVtYXBfc2V0X3diX2Vy
cihzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgaW50IGVycikKewoKIGlmIChfX2J1aWx0
aW5fZXhwZWN0KCEhKGVyciksIDApKQogIF9fZmlsZW1hcF9zZXRfd2JfZXJyKG1hcHBpbmcsIGVy
cik7Cn0KIyAyODA4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGZpbGVtYXBfY2hlY2tfd2Jf
ZXJyKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogICAgIGVycnNlcV90IHNpbmNlKQp7
CiByZXR1cm4gZXJyc2VxX2NoZWNrKCZtYXBwaW5nLT53Yl9lcnIsIHNpbmNlKTsKfQojIDI4MjEg
Ii4vaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBlcnJzZXFfdCBmaWxlbWFwX3NhbXBsZV93Yl9lcnIoc3Ry
dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCnsKIHJldHVybiBlcnJzZXFfc2FtcGxlKCZtYXBw
aW5nLT53Yl9lcnIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgZmlsZW1hcF9ucl90aHBzKHN0cnVjdCBhZGRyZXNzX3NwYWNl
ICptYXBwaW5nKQp7CgoKCiByZXR1cm4gMDsKCn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZmlsZW1hcF9ucl90aHBzX2luYyhz
dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKewoKCgogKHsgaW50IF9fcmV0X3dhcm5fb24g
PSAhISgxKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7
IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxu
IiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFi
IiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAi
ICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19l
bnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQu
b3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L2ZzLmgi
KSwgImkiICgyODQwKSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJp
IiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRp
bGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9u
ZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDMwKSk7IH0pOyB9IHdo
aWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBmaWxlbWFwX25yX3RocHNfZGVjKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQp7
CgoKCiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKDEpOyBpZiAoX19idWlsdGluX2V4cGVjdCgh
IShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6
XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJh
d1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19h
ZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxu
IiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0
IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6
ICJpIiAoImluY2x1ZGUvbGludXgvZnMuaCIpLCAiaSIgKDI4NDkpLCAiaSIgKCgxIDw8IDApfCgo
MSA8PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsg
fSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRp
c2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5c
dCIgOiA6ICJpIiAoMzEpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9f
cmV0X3dhcm5fb24pLCAwKTsgfSk7Cgp9CgpleHRlcm4gaW50IHZmc19mc3luY19yYW5nZShzdHJ1
Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLAogICAgICBpbnQgZGF0YXN5
bmMpOwpleHRlcm4gaW50IHZmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzeW5j
KTsKCmV4dGVybiBpbnQgc3luY19maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qg
b2Zmc2V0LCBsb2ZmX3QgbmJ5dGVzLAogICAgdW5zaWduZWQgaW50IGZsYWdzKTsKCgoKCgoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3Np
emVfdCBnZW5lcmljX3dyaXRlX3N5bmMoc3RydWN0IGtpb2NiICppb2NiLCBzc2l6ZV90IGNvdW50
KQp7CiBpZiAoaW9jYi0+a2lfZmxhZ3MgJiAoMSA8PCA0KSkgewogIGludCByZXQgPSB2ZnNfZnN5
bmNfcmFuZ2UoaW9jYi0+a2lfZmlscCwKICAgIGlvY2ItPmtpX3BvcyAtIGNvdW50LCBpb2NiLT5r
aV9wb3MgLSAxLAogICAgKGlvY2ItPmtpX2ZsYWdzICYgKDEgPDwgNSkpID8gMCA6IDEpOwogIGlm
IChyZXQpCiAgIHJldHVybiByZXQ7CiB9CgogcmV0dXJuIGNvdW50Owp9CgpleHRlcm4gdm9pZCBl
bWVyZ2VuY3lfc3luYyh2b2lkKTsKZXh0ZXJuIHZvaWQgZW1lcmdlbmN5X3JlbW91bnQodm9pZCk7
CgoKZXh0ZXJuIGludCBibWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHNlY3Rvcl90ICpibG9jayk7
CgoKCgoKCgpleHRlcm4gaW50IG5vdGlmeV9jaGFuZ2Uoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qg
aWF0dHIgKiwgc3RydWN0IGlub2RlICoqKTsKZXh0ZXJuIGludCBpbm9kZV9wZXJtaXNzaW9uKHN0
cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gaW50IGdlbmVyaWNfcGVybWlzc2lvbihzdHJ1Y3Qg
aW5vZGUgKiwgaW50KTsKZXh0ZXJuIGludCBfX2NoZWNrX3N0aWNreShzdHJ1Y3QgaW5vZGUgKmRp
ciwgc3RydWN0IGlub2RlICppbm9kZSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGV4ZWN1dGVfb2soc3RydWN0IGlub2RlICpp
bm9kZSkKewogcmV0dXJuIChpbm9kZS0+aV9tb2RlICYgKDAwMTAwfDAwMDEwfDAwMDAxKSkgfHwg
KCgoaW5vZGUtPmlfbW9kZSkgJiAwMDE3MDAwMCkgPT0gMDA0MDAwMCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZmlsZV9z
dGFydF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSkKewogaWYgKCEoKChmaWxlX2lub2RlKGZpbGUp
LT5pX21vZGUpICYgMDAxNzAwMDApID09IDAxMDAwMDApKQogIHJldHVybjsKIF9fc2Jfc3RhcnRf
d3JpdGUoZmlsZV9pbm9kZShmaWxlKS0+aV9zYiwgU0JfRlJFRVpFX1dSSVRFLCB0cnVlKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBmaWxlX3N0YXJ0X3dyaXRlX3RyeWxvY2soc3RydWN0IGZpbGUgKmZpbGUpCnsKIGlmICgh
KCgoZmlsZV9pbm9kZShmaWxlKS0+aV9tb2RlKSAmIDAwMTcwMDAwKSA9PSAwMTAwMDAwKSkKICBy
ZXR1cm4gdHJ1ZTsKIHJldHVybiBfX3NiX3N0YXJ0X3dyaXRlKGZpbGVfaW5vZGUoZmlsZSktPmlf
c2IsIFNCX0ZSRUVaRV9XUklURSwgZmFsc2UpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGZpbGVfZW5kX3dyaXRlKHN0cnVj
dCBmaWxlICpmaWxlKQp7CiBpZiAoISgoKGZpbGVfaW5vZGUoZmlsZSktPmlfbW9kZSkgJiAwMDE3
MDAwMCkgPT0gMDEwMDAwMCkpCiAgcmV0dXJuOwogX19zYl9lbmRfd3JpdGUoZmlsZV9pbm9kZShm
aWxlKS0+aV9zYiwgU0JfRlJFRVpFX1dSSVRFKTsKfQojIDI5MzcgIi4vaW5jbHVkZS9saW51eC9m
cy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgZ2V0X3dyaXRlX2FjY2VzcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiByZXR1cm4g
YXRvbWljX2luY191bmxlc3NfbmVnYXRpdmUoJmlub2RlLT5pX3dyaXRlY291bnQpID8gMCA6IC0y
NjsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgZGVueV93cml0ZV9hY2Nlc3Moc3RydWN0IGZpbGUgKmZpbGUpCnsKIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlX2lub2RlKGZpbGUpOwogcmV0dXJuIGF0b21pY19kZWNfdW5sZXNz
X3Bvc2l0aXZlKCZpbm9kZS0+aV93cml0ZWNvdW50KSA/IDAgOiAtMjY7Cn0Kc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwdXRfd3Jp
dGVfYWNjZXNzKHN0cnVjdCBpbm9kZSAqIGlub2RlKQp7CiBhdG9taWNfZGVjKCZpbm9kZS0+aV93
cml0ZWNvdW50KTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGFsbG93X3dyaXRlX2FjY2VzcyhzdHJ1Y3QgZmlsZSAqZmlsZSkK
ewogaWYgKGZpbGUpCiAgYXRvbWljX2luYygmZmlsZV9pbm9kZShmaWxlKS0+aV93cml0ZWNvdW50
KTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIGlub2RlX2lzX29wZW5fZm9yX3dyaXRlKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5v
ZGUpCnsKIHJldHVybiBhdG9taWNfcmVhZCgmaW5vZGUtPmlfd3JpdGVjb3VudCkgPiAwOwp9CgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBpX3JlYWRjb3VudF9kZWMoc3RydWN0IGlub2RlICppbm9kZSkKewogZG8geyBpZiAoX19i
dWlsdGluX2V4cGVjdCghISghYXRvbWljX3JlYWQoJmlub2RlLT5pX3JlYWRjb3VudCkpLCAwKSkg
ZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIi
ICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAi
ICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAi
JWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBi
dWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIg
Ilx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9m
cy5oIiksICJpIiAoMjk2MyksICJpIiAoMCksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkp
KSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNl
Y3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBv
cHNlY3Rpb25cblx0IiA6IDogImkiICgzMikpOyB9KTsgYXNtIHZvbGF0aWxlKCIiKTsgX19idWls
dGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7
CiBhdG9taWNfZGVjKCZpbm9kZS0+aV9yZWFkY291bnQpOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaV9yZWFkY291bnRfaW5j
KHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIGF0b21pY19pbmMoJmlub2RlLT5pX3JlYWRjb3VudCk7
Cn0KIyAyOTgwICIuL2luY2x1ZGUvbGludXgvZnMuaCIKZXh0ZXJuIGludCBkb19waXBlX2ZsYWdz
KGludCAqLCBpbnQpOwojIDI5OTYgIi4vaW5jbHVkZS9saW51eC9mcy5oIgplbnVtIGtlcm5lbF9y
ZWFkX2ZpbGVfaWQgewogUkVBRElOR19VTktOT1dOLCBSRUFESU5HX0ZJUk1XQVJFLCBSRUFESU5H
X0ZJUk1XQVJFX1BSRUFMTE9DX0JVRkZFUiwgUkVBRElOR19NT0RVTEUsIFJFQURJTkdfS0VYRUNf
SU1BR0UsIFJFQURJTkdfS0VYRUNfSU5JVFJBTUZTLCBSRUFESU5HX1BPTElDWSwgUkVBRElOR19Y
NTA5X0NFUlRJRklDQVRFLCBSRUFESU5HX01BWF9JRCwKfTsKCnN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga2VybmVsX3JlYWRfZmlsZV9zdHJbXSA9IHsKICJ1bmtub3duIiwgImZpcm13YXJlIiwg
ImZpcm13YXJlIiwgImtlcm5lbC1tb2R1bGUiLCAia2V4ZWMtaW1hZ2UiLCAia2V4ZWMtaW5pdHJh
bWZzIiwgInNlY3VyaXR5LXBvbGljeSIsICJ4NTA5LWNlcnRpZmljYXRlIiwgIiIsCn07CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25z
dCBjaGFyICprZXJuZWxfcmVhZF9maWxlX2lkX3N0cihlbnVtIGtlcm5lbF9yZWFkX2ZpbGVfaWQg
aWQpCnsKIGlmICgodW5zaWduZWQpaWQgPj0gUkVBRElOR19NQVhfSUQpCiAgcmV0dXJuIGtlcm5l
bF9yZWFkX2ZpbGVfc3RyW1JFQURJTkdfVU5LTk9XTl07CgogcmV0dXJuIGtlcm5lbF9yZWFkX2Zp
bGVfc3RyW2lkXTsKfQoKZXh0ZXJuIGludCBrZXJuZWxfcmVhZF9maWxlKHN0cnVjdCBmaWxlICos
IHZvaWQgKiosIGxvZmZfdCAqLCBsb2ZmX3QsCiAgICAgICBlbnVtIGtlcm5lbF9yZWFkX2ZpbGVf
aWQpOwpleHRlcm4gaW50IGtlcm5lbF9yZWFkX2ZpbGVfZnJvbV9wYXRoKGNvbnN0IGNoYXIgKiwg
dm9pZCAqKiwgbG9mZl90ICosIGxvZmZfdCwKICAgICAgICAgIGVudW0ga2VybmVsX3JlYWRfZmls
ZV9pZCk7CmV4dGVybiBpbnQga2VybmVsX3JlYWRfZmlsZV9mcm9tX2ZkKGludCwgdm9pZCAqKiwg
bG9mZl90ICosIGxvZmZfdCwKICAgICAgICBlbnVtIGtlcm5lbF9yZWFkX2ZpbGVfaWQpOwpleHRl
cm4gc3NpemVfdCBrZXJuZWxfcmVhZChzdHJ1Y3QgZmlsZSAqLCB2b2lkICosIHNpemVfdCwgbG9m
Zl90ICopOwpleHRlcm4gc3NpemVfdCBrZXJuZWxfd3JpdGUoc3RydWN0IGZpbGUgKiwgY29uc3Qg
dm9pZCAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHNzaXplX3QgX19rZXJuZWxfd3JpdGUo
c3RydWN0IGZpbGUgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHN0
cnVjdCBmaWxlICogb3Blbl9leGVjKGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGJvb2wgaXNfc3Vi
ZGlyKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGJvb2wgcGF0aF9p
c191bmRlcihjb25zdCBzdHJ1Y3QgcGF0aCAqLCBjb25zdCBzdHJ1Y3QgcGF0aCAqKTsKCmV4dGVy
biBjaGFyICpmaWxlX3BhdGgoc3RydWN0IGZpbGUgKiwgY2hhciAqLCBpbnQpOwoKCgoKZXh0ZXJu
IGxvZmZfdCBkZWZhdWx0X2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwg
aW50IHdoZW5jZSk7CgpleHRlcm4gbG9mZl90IHZmc19sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUs
IGxvZmZfdCBvZmZzZXQsIGludCB3aGVuY2UpOwoKZXh0ZXJuIGludCBpbm9kZV9pbml0X2Fsd2F5
cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBpbm9k
ZV9pbml0X29uY2Uoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBhZGRyZXNzX3NwYWNlX2lu
aXRfb25jZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyk7CmV4dGVybiBzdHJ1Y3QgaW5v
ZGUgKiBpZ3JhYihzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbm9fdCBpdW5pcXVlKHN0cnVjdCBz
dXBlcl9ibG9jayAqLCBpbm9fdCk7CmV4dGVybiBpbnQgaW5vZGVfbmVlZHNfc3luYyhzdHJ1Y3Qg
aW5vZGUgKmlub2RlKTsKZXh0ZXJuIGludCBnZW5lcmljX2RlbGV0ZV9pbm9kZShzdHJ1Y3QgaW5v
ZGUgKmlub2RlKTsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IGdlbmVyaWNfZHJvcF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7
CiByZXR1cm4gIWlub2RlLT5pX25saW5rIHx8IGlub2RlX3VuaGFzaGVkKGlub2RlKTsKfQoKZXh0
ZXJuIHN0cnVjdCBpbm9kZSAqaWxvb2t1cDVfbm93YWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2Is
CiAgdW5zaWduZWQgbG9uZyBoYXNodmFsLCBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwgdm9p
ZCAqKSwKICB2b2lkICpkYXRhKTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAqaWxvb2t1cDUoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQgbG9uZyBoYXNodmFsLAogIGludCAoKnRlc3QpKHN0
cnVjdCBpbm9kZSAqLCB2b2lkICopLCB2b2lkICpkYXRhKTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAq
aWxvb2t1cChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1bnNpZ25lZCBsb25nIGlubyk7CgpleHRl
cm4gc3RydWN0IGlub2RlICppbm9kZV9pbnNlcnQ1KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2ln
bmVkIGxvbmcgaGFzaHZhbCwKICBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwgdm9pZCAqKSwK
ICBpbnQgKCpzZXQpKHN0cnVjdCBpbm9kZSAqLCB2b2lkICopLAogIHZvaWQgKmRhdGEpOwpleHRl
cm4gc3RydWN0IGlub2RlICogaWdldDVfbG9ja2VkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNp
Z25lZCBsb25nLCBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwgdm9pZCAqKSwgaW50ICgqc2V0
KShzdHJ1Y3QgaW5vZGUgKiwgdm9pZCAqKSwgdm9pZCAqKTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAq
IGlnZXRfbG9ja2VkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCBsb25nKTsKZXh0ZXJu
IHN0cnVjdCBpbm9kZSAqZmluZF9pbm9kZV9ub3dhaXQoc3RydWN0IHN1cGVyX2Jsb2NrICosCiAg
ICAgICAgICAgdW5zaWduZWQgbG9uZywKICAgICAgICAgICBpbnQgKCptYXRjaCkoc3RydWN0IGlu
b2RlICosCiAgICAgICAgICB1bnNpZ25lZCBsb25nLCB2b2lkICopLAogICAgICAgICAgIHZvaWQg
KmRhdGEpOwpleHRlcm4gaW50IGluc2VydF9pbm9kZV9sb2NrZWQ0KHN0cnVjdCBpbm9kZSAqLCB1
bnNpZ25lZCBsb25nLCBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwgdm9pZCAqKSwgdm9pZCAq
KTsKZXh0ZXJuIGludCBpbnNlcnRfaW5vZGVfbG9ja2VkKHN0cnVjdCBpbm9kZSAqKTsKCgoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBsb2NrZGVwX2Fubm90YXRlX2lub2RlX211dGV4X2tleShzdHJ1Y3QgaW5vZGUgKmlub2RlKSB7
IH07CgpleHRlcm4gdm9pZCB1bmxvY2tfbmV3X2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJu
IHZvaWQgZGlzY2FyZF9uZXdfaW5vZGUoc3RydWN0IGlub2RlICopOwpleHRlcm4gdW5zaWduZWQg
aW50IGdldF9uZXh0X2lubyh2b2lkKTsKZXh0ZXJuIHZvaWQgZXZpY3RfaW5vZGVzKHN0cnVjdCBz
dXBlcl9ibG9jayAqc2IpOwoKZXh0ZXJuIHZvaWQgX19pZ2V0KHN0cnVjdCBpbm9kZSAqIGlub2Rl
KTsKZXh0ZXJuIHZvaWQgaWdldF9mYWlsZWQoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBj
bGVhcl9pbm9kZShzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIF9fZGVzdHJveV9pbm9kZShz
dHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBzdHJ1Y3QgaW5vZGUgKm5ld19pbm9kZV9wc2V1ZG8oc3Ry
dWN0IHN1cGVyX2Jsb2NrICpzYik7CmV4dGVybiBzdHJ1Y3QgaW5vZGUgKm5ld19pbm9kZShzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKZXh0ZXJuIHZvaWQgZnJlZV9pbm9kZV9ub25yY3Uoc3RydWN0
IGlub2RlICppbm9kZSk7CmV4dGVybiBpbnQgc2hvdWxkX3JlbW92ZV9zdWlkKHN0cnVjdCBkZW50
cnkgKik7CmV4dGVybiBpbnQgZmlsZV9yZW1vdmVfcHJpdnMoc3RydWN0IGZpbGUgKik7CgpleHRl
cm4gdm9pZCBfX2luc2VydF9pbm9kZV9oYXNoKHN0cnVjdCBpbm9kZSAqLCB1bnNpZ25lZCBsb25n
IGhhc2h2YWwpOwpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGluc2VydF9pbm9kZV9oYXNoKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsK
IF9faW5zZXJ0X2lub2RlX2hhc2goaW5vZGUsIGlub2RlLT5pX2lubyk7Cn0KCmV4dGVybiB2b2lk
IF9fcmVtb3ZlX2lub2RlX2hhc2goc3RydWN0IGlub2RlICopOwpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlbW92ZV9pbm9kZV9o
YXNoKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIGlmICghaW5vZGVfdW5oYXNoZWQoaW5vZGUpICYm
ICFobGlzdF9mYWtlKCZpbm9kZS0+aV9oYXNoKSkKICBfX3JlbW92ZV9pbm9kZV9oYXNoKGlub2Rl
KTsKfQoKZXh0ZXJuIHZvaWQgaW5vZGVfc2JfbGlzdF9hZGQoc3RydWN0IGlub2RlICppbm9kZSk7
CgoKZXh0ZXJuIGludCBiZGV2X3JlYWRfb25seShzdHJ1Y3QgYmxvY2tfZGV2aWNlICopOwoKZXh0
ZXJuIGludCBzZXRfYmxvY2tzaXplKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgaW50KTsKZXh0ZXJu
IGludCBzYl9zZXRfYmxvY2tzaXplKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQpOwpleHRlcm4g
aW50IHNiX21pbl9ibG9ja3NpemUoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCk7CgpleHRlcm4g
aW50IGdlbmVyaWNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICosIHN0cnVjdCB2bV9hcmVhX3N0cnVj
dCAqKTsKZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVfcmVhZG9ubHlfbW1hcChzdHJ1Y3QgZmlsZSAq
LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKik7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfd3JpdGVf
Y2hlY2tzKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgaW92X2l0ZXIgKik7CmV4dGVybiBpbnQgZ2Vu
ZXJpY19yZW1hcF9jaGVja3Moc3RydWN0IGZpbGUgKmZpbGVfaW4sIGxvZmZfdCBwb3NfaW4sCiAg
ICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LAogICAgbG9mZl90ICpjb3Vu
dCwgdW5zaWduZWQgaW50IHJlbWFwX2ZsYWdzKTsKZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVfcndf
Y2hlY2tzKHN0cnVjdCBmaWxlICpmaWxlX2luLCBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQpOwpleHRl
cm4gaW50IGdlbmVyaWNfY29weV9maWxlX2NoZWNrcyhzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9m
Zl90IHBvc19pbiwKICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0
LAogICAgICAgIHNpemVfdCAqY291bnQsIHVuc2lnbmVkIGludCBmbGFncyk7CmV4dGVybiBzc2l6
ZV90IGdlbmVyaWNfZmlsZV9yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICosIHN0cnVjdCBpb3ZfaXRl
ciAqKTsKZXh0ZXJuIHNzaXplX3QgX19nZW5lcmljX2ZpbGVfd3JpdGVfaXRlcihzdHJ1Y3Qga2lv
Y2IgKiwgc3RydWN0IGlvdl9pdGVyICopOwpleHRlcm4gc3NpemVfdCBnZW5lcmljX2ZpbGVfd3Jp
dGVfaXRlcihzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGlvdl9pdGVyICopOwpleHRlcm4gc3NpemVf
dCBnZW5lcmljX2ZpbGVfZGlyZWN0X3dyaXRlKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgaW92X2l0
ZXIgKik7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfcGVyZm9ybV93cml0ZShzdHJ1Y3QgZmlsZSAq
LCBzdHJ1Y3QgaW92X2l0ZXIgKiwgbG9mZl90KTsKCnNzaXplX3QgdmZzX2l0ZXJfcmVhZChzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGlvdl9pdGVyICppdGVyLCBsb2ZmX3QgKnBwb3MsCiAgcndm
X3QgZmxhZ3MpOwpzc2l6ZV90IHZmc19pdGVyX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1
Y3QgaW92X2l0ZXIgKml0ZXIsIGxvZmZfdCAqcHBvcywKICByd2ZfdCBmbGFncyk7CnNzaXplX3Qg
dmZzX2lvY2JfaXRlcl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qga2lvY2IgKmlvY2Is
CiAgICAgIHN0cnVjdCBpb3ZfaXRlciAqaXRlcik7CnNzaXplX3QgdmZzX2lvY2JfaXRlcl93cml0
ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGtpb2NiICppb2NiLAogICAgICAgc3RydWN0IGlv
dl9pdGVyICppdGVyKTsKCgpleHRlcm4gc3NpemVfdCBibGtkZXZfcmVhZF9pdGVyKHN0cnVjdCBr
aW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0byk7CmV4dGVybiBzc2l6ZV90IGJsa2Rldl93
cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKTsKZXh0
ZXJuIGludCBibGtkZXZfZnN5bmMoc3RydWN0IGZpbGUgKmZpbHAsIGxvZmZfdCBzdGFydCwgbG9m
Zl90IGVuZCwKICAgaW50IGRhdGFzeW5jKTsKZXh0ZXJuIHZvaWQgYmxvY2tfc3luY19wYWdlKHN0
cnVjdCBwYWdlICpwYWdlKTsKCgpleHRlcm4gc3NpemVfdCBnZW5lcmljX2ZpbGVfc3BsaWNlX3Jl
YWQoc3RydWN0IGZpbGUgKiwgbG9mZl90ICosCiAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqLCBz
aXplX3QsIHVuc2lnbmVkIGludCk7CmV4dGVybiBzc2l6ZV90IGl0ZXJfZmlsZV9zcGxpY2Vfd3Jp
dGUoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqLAogIHN0cnVjdCBmaWxlICosIGxvZmZfdCAqLCBz
aXplX3QsIHVuc2lnbmVkIGludCk7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfc3BsaWNlX3NlbmRw
YWdlKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsCiAgc3RydWN0IGZpbGUgKm91dCwgbG9m
Zl90ICosIHNpemVfdCBsZW4sIHVuc2lnbmVkIGludCBmbGFncyk7CmV4dGVybiBsb25nIGRvX3Nw
bGljZV9kaXJlY3Qoc3RydWN0IGZpbGUgKmluLCBsb2ZmX3QgKnBwb3MsIHN0cnVjdCBmaWxlICpv
dXQsCiAgbG9mZl90ICpvcG9zLCBzaXplX3QgbGVuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwoKCmV4
dGVybiB2b2lkCmZpbGVfcmFfc3RhdGVfaW5pdChzdHJ1Y3QgZmlsZV9yYV9zdGF0ZSAqcmEsIHN0
cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKTsKZXh0ZXJuIGxvZmZfdCBub29wX2xsc2Vlayhz
dHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IHdoZW5jZSk7CmV4dGVybiBsb2Zm
X3Qgbm9fbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNl
KTsKZXh0ZXJuIGxvZmZfdCB2ZnNfc2V0cG9zKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zm
c2V0LCBsb2ZmX3QgbWF4c2l6ZSk7CmV4dGVybiBsb2ZmX3QgZ2VuZXJpY19maWxlX2xsc2Vlayhz
dHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IHdoZW5jZSk7CmV4dGVybiBsb2Zm
X3QgZ2VuZXJpY19maWxlX2xsc2Vla19zaXplKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zm
c2V0LAogIGludCB3aGVuY2UsIGxvZmZfdCBtYXhzaXplLCBsb2ZmX3QgZW9mKTsKZXh0ZXJuIGxv
ZmZfdCBmaXhlZF9zaXplX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwK
ICBpbnQgd2hlbmNlLCBsb2ZmX3Qgc2l6ZSk7CmV4dGVybiBsb2ZmX3Qgbm9fc2Vla19lbmRfbGxz
ZWVrX3NpemUoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBpbnQsIGxvZmZfdCk7CmV4dGVybiBsb2Zm
X3Qgbm9fc2Vla19lbmRfbGxzZWVrKHN0cnVjdCBmaWxlICosIGxvZmZfdCwgaW50KTsKZXh0ZXJu
IGludCBnZW5lcmljX2ZpbGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUg
KiBmaWxwKTsKZXh0ZXJuIGludCBub25zZWVrYWJsZV9vcGVuKHN0cnVjdCBpbm9kZSAqIGlub2Rl
LCBzdHJ1Y3QgZmlsZSAqIGZpbHApOwpleHRlcm4gaW50IHN0cmVhbV9vcGVuKHN0cnVjdCBpbm9k
ZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHApOwoKCnR5cGVkZWYgdm9pZCAoZGlvX3N1Ym1p
dF90KShzdHJ1Y3QgYmlvICpiaW8sIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAgICAgICBsb2ZmX3Qg
ZmlsZV9vZmZzZXQpOwoKZW51bSB7CgogRElPX0xPQ0tJTkcgPSAweDAxLAoKCiBESU9fU0tJUF9I
T0xFUyA9IDB4MDIsCn07Cgp2b2lkIGRpb19lbmRfaW8oc3RydWN0IGJpbyAqYmlvKTsKCnNzaXpl
X3QgX19ibG9ja2Rldl9kaXJlY3RfSU8oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW5vZGUg
Kmlub2RlLAogICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHN0cnVjdCBpb3ZfaXRl
ciAqaXRlciwKICAgICAgICBnZXRfYmxvY2tfdCBnZXRfYmxvY2ssCiAgICAgICAgZGlvX2lvZG9u
ZV90IGVuZF9pbywgZGlvX3N1Ym1pdF90IHN1Ym1pdF9pbywKICAgICAgICBpbnQgZmxhZ3MpOwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3NpemVfdCBibG9ja2Rldl9kaXJlY3RfSU8oc3RydWN0IGtpb2NiICppb2NiLAogICAgICBzdHJ1
Y3QgaW5vZGUgKmlub2RlLAogICAgICBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIsCiAgICAgIGdldF9i
bG9ja190IGdldF9ibG9jaykKewogcmV0dXJuIF9fYmxvY2tkZXZfZGlyZWN0X0lPKGlvY2IsIGlu
b2RlLCBpbm9kZS0+aV9zYi0+c19iZGV2LCBpdGVyLAogICBnZXRfYmxvY2ssICgodm9pZCAqKTAp
LCAoKHZvaWQgKikwKSwgRElPX0xPQ0tJTkcgfCBESU9fU0tJUF9IT0xFUyk7Cn0KCgp2b2lkIGlu
b2RlX2Rpb193YWl0KHN0cnVjdCBpbm9kZSAqaW5vZGUpOwojIDMyMDggIi4vaW5jbHVkZS9saW51
eC9mcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGlub2RlX2Rpb19iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBhdG9t
aWNfaW5jKCZpbm9kZS0+aV9kaW9fY291bnQpOwp9CiMgMzIyMCAiLi9pbmNsdWRlL2xpbnV4L2Zz
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgaW5vZGVfZGlvX2VuZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBpZiAoYXRvbWlj
X2RlY19hbmRfdGVzdCgmaW5vZGUtPmlfZGlvX2NvdW50KSkKICB3YWtlX3VwX2JpdCgmaW5vZGUt
Pmlfc3RhdGUsIDkpOwp9CgoKCgp2b2lkIGRpb193YXJuX3N0YWxlX3BhZ2VjYWNoZShzdHJ1Y3Qg
ZmlsZSAqZmlscCk7CgpleHRlcm4gdm9pZCBpbm9kZV9zZXRfZmxhZ3Moc3RydWN0IGlub2RlICpp
bm9kZSwgdW5zaWduZWQgaW50IGZsYWdzLAogICAgICAgdW5zaWduZWQgaW50IG1hc2spOwoKZXh0
ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZ2VuZXJpY19yb19mb3BzOwoKCgpleHRl
cm4gaW50IHJlYWRsaW5rX2NvcHkoY2hhciAqLCBpbnQsIGNvbnN0IGNoYXIgKik7CmV4dGVybiBp
bnQgcGFnZV9yZWFkbGluayhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKZXh0ZXJuIGNv
bnN0IGNoYXIgKnBhZ2VfZ2V0X2xpbmsoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwK
ICAgICBzdHJ1Y3QgZGVsYXllZF9jYWxsICopOwpleHRlcm4gdm9pZCBwYWdlX3B1dF9saW5rKHZv
aWQgKik7CmV4dGVybiBpbnQgX19wYWdlX3N5bWxpbmsoc3RydWN0IGlub2RlICppbm9kZSwgY29u
c3QgY2hhciAqc3ltbmFtZSwgaW50IGxlbiwKICBpbnQgbm9mcyk7CmV4dGVybiBpbnQgcGFnZV9z
eW1saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKnN5bW5hbWUsIGludCBsZW4p
OwpleHRlcm4gY29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcGFnZV9zeW1saW5rX2lub2Rl
X29wZXJhdGlvbnM7CmV4dGVybiB2b2lkIGtmcmVlX2xpbmsodm9pZCAqKTsKZXh0ZXJuIHZvaWQg
Z2VuZXJpY19maWxsYXR0cihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGtzdGF0ICopOwpleHRlcm4g
aW50IHZmc19nZXRhdHRyX25vc2VjKGNvbnN0IHN0cnVjdCBwYXRoICosIHN0cnVjdCBrc3RhdCAq
LCB1MzIsIHVuc2lnbmVkIGludCk7CmV4dGVybiBpbnQgdmZzX2dldGF0dHIoY29uc3Qgc3RydWN0
IHBhdGggKiwgc3RydWN0IGtzdGF0ICosIHUzMiwgdW5zaWduZWQgaW50KTsKdm9pZCBfX2lub2Rl
X2FkZF9ieXRlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgYnl0ZXMpOwp2b2lkIGlub2Rl
X2FkZF9ieXRlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgYnl0ZXMpOwp2b2lkIF9faW5v
ZGVfc3ViX2J5dGVzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBieXRlcyk7CnZvaWQgaW5v
ZGVfc3ViX2J5dGVzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBieXRlcyk7CnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvZmZfdCBf
X2lub2RlX2dldF9ieXRlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiByZXR1cm4gKCgobG9mZl90
KWlub2RlLT5pX2Jsb2NrcykgPDwgOSkgKyBpbm9kZS0+aV9ieXRlczsKfQpsb2ZmX3QgaW5vZGVf
Z2V0X2J5dGVzKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwp2b2lkIGlub2RlX3NldF9ieXRlcyhzdHJ1
Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgYnl0ZXMpOwpjb25zdCBjaGFyICpzaW1wbGVfZ2V0X2xp
bmsoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwKICAgICAgIHN0cnVjdCBkZWxheWVk
X2NhbGwgKik7CmV4dGVybiBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBzaW1wbGVfc3lt
bGlua19pbm9kZV9vcGVyYXRpb25zOwoKZXh0ZXJuIGludCBpdGVyYXRlX2RpcihzdHJ1Y3QgZmls
ZSAqLCBzdHJ1Y3QgZGlyX2NvbnRleHQgKik7CgpleHRlcm4gaW50IHZmc19zdGF0eChpbnQsIGNv
bnN0IGNoYXIgKiwgaW50LCBzdHJ1Y3Qga3N0YXQgKiwgdTMyKTsKZXh0ZXJuIGludCB2ZnNfc3Rh
dHhfZmQodW5zaWduZWQgaW50LCBzdHJ1Y3Qga3N0YXQgKiwgdTMyLCB1bnNpZ25lZCBpbnQpOwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IHZmc19zdGF0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3Qga3N0YXQgKnN0YXQpCnsK
IHJldHVybiB2ZnNfc3RhdHgoLTEwMCwgZmlsZW5hbWUsIDB4ODAwLAogICAgc3RhdCwgMHgwMDAw
MDdmZlUpOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCB2ZnNfbHN0YXQoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGtzdGF0ICpz
dGF0KQp7CiByZXR1cm4gdmZzX3N0YXR4KC0xMDAsIG5hbWUsIDB4MTAwIHwgMHg4MDAsCiAgICBz
dGF0LCAweDAwMDAwN2ZmVSk7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHZmc19mc3RhdGF0KGludCBkZmQsIGNvbnN0IGNoYXIg
KmZpbGVuYW1lLAogICAgICAgICBzdHJ1Y3Qga3N0YXQgKnN0YXQsIGludCBmbGFncykKewogcmV0
dXJuIHZmc19zdGF0eChkZmQsIGZpbGVuYW1lLCBmbGFncyB8IDB4ODAwLAogICAgc3RhdCwgMHgw
MDAwMDdmZlUpOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCB2ZnNfZnN0YXQoaW50IGZkLCBzdHJ1Y3Qga3N0YXQgKnN0YXQpCnsK
IHJldHVybiB2ZnNfc3RhdHhfZmQoZmQsIHN0YXQsIDB4MDAwMDA3ZmZVLCAwKTsKfQoKCmV4dGVy
biBjb25zdCBjaGFyICp2ZnNfZ2V0X2xpbmsoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgZGVsYXll
ZF9jYWxsICopOwpleHRlcm4gaW50IHZmc19yZWFkbGluayhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIg
KiwgaW50KTsKCmV4dGVybiBpbnQgX19nZW5lcmljX2Jsb2NrX2ZpZW1hcChzdHJ1Y3QgaW5vZGUg
Kmlub2RlLAogICAgICBzdHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvICpmaWVpbmZvLAogICAgICBs
b2ZmX3Qgc3RhcnQsIGxvZmZfdCBsZW4sCiAgICAgIGdldF9ibG9ja190ICpnZXRfYmxvY2spOwpl
eHRlcm4gaW50IGdlbmVyaWNfYmxvY2tfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAgICBz
dHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvICpmaWVpbmZvLCB1NjQgc3RhcnQsCiAgICB1NjQgbGVu
LCBnZXRfYmxvY2tfdCAqZ2V0X2Jsb2NrKTsKCmV4dGVybiBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw
ZSAqZ2V0X2ZpbGVzeXN0ZW0oc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzKTsKZXh0ZXJuIHZv
aWQgcHV0X2ZpbGVzeXN0ZW0oc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzKTsKZXh0ZXJuIHN0
cnVjdCBmaWxlX3N5c3RlbV90eXBlICpnZXRfZnNfdHlwZShjb25zdCBjaGFyICpuYW1lKTsKZXh0
ZXJuIHN0cnVjdCBzdXBlcl9ibG9jayAqZ2V0X3N1cGVyKHN0cnVjdCBibG9ja19kZXZpY2UgKik7
CmV4dGVybiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmdldF9zdXBlcl90aGF3ZWQoc3RydWN0IGJsb2Nr
X2RldmljZSAqKTsKZXh0ZXJuIHN0cnVjdCBzdXBlcl9ibG9jayAqZ2V0X3N1cGVyX2V4Y2x1c2l2
ZV90aGF3ZWQoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldik7CmV4dGVybiBzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKmdldF9hY3RpdmVfc3VwZXIoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldik7CmV4dGVy
biB2b2lkIGRyb3Bfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CmV4dGVybiB2b2lkIGRy
b3Bfc3VwZXJfZXhjbHVzaXZlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwpleHRlcm4gdm9pZCBp
dGVyYXRlX3N1cGVycyh2b2lkICgqKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdm9pZCAqKSwgdm9p
ZCAqKTsKZXh0ZXJuIHZvaWQgaXRlcmF0ZV9zdXBlcnNfdHlwZShzdHJ1Y3QgZmlsZV9zeXN0ZW1f
dHlwZSAqLAogICAgICAgICAgIHZvaWQgKCopKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB2b2lkICop
LCB2b2lkICopOwoKZXh0ZXJuIGludCBkY2FjaGVfZGlyX29wZW4oc3RydWN0IGlub2RlICosIHN0
cnVjdCBmaWxlICopOwpleHRlcm4gaW50IGRjYWNoZV9kaXJfY2xvc2Uoc3RydWN0IGlub2RlICos
IHN0cnVjdCBmaWxlICopOwpleHRlcm4gbG9mZl90IGRjYWNoZV9kaXJfbHNlZWsoc3RydWN0IGZp
bGUgKiwgbG9mZl90LCBpbnQpOwpleHRlcm4gaW50IGRjYWNoZV9yZWFkZGlyKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCBkaXJfY29udGV4dCAqKTsKZXh0ZXJuIGludCBzaW1wbGVfc2V0YXR0cihzdHJ1
Y3QgZGVudHJ5ICosIHN0cnVjdCBpYXR0ciAqKTsKZXh0ZXJuIGludCBzaW1wbGVfZ2V0YXR0cihj
b25zdCBzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3Qga3N0YXQgKiwgdTMyLCB1bnNpZ25lZCBpbnQpOwpl
eHRlcm4gaW50IHNpbXBsZV9zdGF0ZnMoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qga3N0YXRmcyAq
KTsKZXh0ZXJuIGludCBzaW1wbGVfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmls
ZSAqZmlsZSk7CmV4dGVybiBpbnQgc2ltcGxlX2xpbmsoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qg
aW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCBzaW1wbGVfdW5saW5rKHN0cnVj
dCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwpleHRlcm4gaW50IHNpbXBsZV9ybWRpcihzdHJ1
Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCBzaW1wbGVfcmVuYW1lKHN0
cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosCiAgICBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0
IGRlbnRyeSAqLCB1bnNpZ25lZCBpbnQpOwpleHRlcm4gdm9pZCBzaW1wbGVfcmVjdXJzaXZlX3Jl
bW92YWwoc3RydWN0IGRlbnRyeSAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lk
ICgqY2FsbGJhY2spKHN0cnVjdCBkZW50cnkgKikpOwpleHRlcm4gaW50IG5vb3BfZnN5bmMoc3Ry
dWN0IGZpbGUgKiwgbG9mZl90LCBsb2ZmX3QsIGludCk7CmV4dGVybiBpbnQgbm9vcF9zZXRfcGFn
ZV9kaXJ0eShzdHJ1Y3QgcGFnZSAqcGFnZSk7CmV4dGVybiB2b2lkIG5vb3BfaW52YWxpZGF0ZXBh
Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgdW5zaWduZWQgaW50
IGxlbmd0aCk7CmV4dGVybiBzc2l6ZV90IG5vb3BfZGlyZWN0X0lPKHN0cnVjdCBraW9jYiAqaW9j
Yiwgc3RydWN0IGlvdl9pdGVyICppdGVyKTsKZXh0ZXJuIGludCBzaW1wbGVfZW1wdHkoc3RydWN0
IGRlbnRyeSAqKTsKZXh0ZXJuIGludCBzaW1wbGVfcmVhZHBhZ2Uoc3RydWN0IGZpbGUgKmZpbGUs
IHN0cnVjdCBwYWdlICpwYWdlKTsKZXh0ZXJuIGludCBzaW1wbGVfd3JpdGVfYmVnaW4oc3RydWN0
IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogICBsb2ZmX3QgcG9z
LCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGZsYWdzLAogICBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2
b2lkICoqZnNkYXRhKTsKZXh0ZXJuIGludCBzaW1wbGVfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpm
aWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKICAgbG9mZl90IHBvcywgdW5zaWdu
ZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsCiAgIHN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2Rh
dGEpOwpleHRlcm4gaW50IGFsd2F5c19kZWxldGVfZGVudHJ5KGNvbnN0IHN0cnVjdCBkZW50cnkg
Kik7CmV4dGVybiBzdHJ1Y3QgaW5vZGUgKmFsbG9jX2Fub25faW5vZGUoc3RydWN0IHN1cGVyX2Js
b2NrICopOwpleHRlcm4gaW50IHNpbXBsZV9ub3NldGxlYXNlKHN0cnVjdCBmaWxlICosIGxvbmcs
IHN0cnVjdCBmaWxlX2xvY2sgKiosIHZvaWQgKiopOwpleHRlcm4gY29uc3Qgc3RydWN0IGRlbnRy
eV9vcGVyYXRpb25zIHNpbXBsZV9kZW50cnlfb3BlcmF0aW9uczsKCmV4dGVybiBzdHJ1Y3QgZGVu
dHJ5ICpzaW1wbGVfbG9va3VwKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHVuc2ln
bmVkIGludCBmbGFncyk7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfcmVhZF9kaXIoc3RydWN0IGZp
bGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxl
X29wZXJhdGlvbnMgc2ltcGxlX2Rpcl9vcGVyYXRpb25zOwpleHRlcm4gY29uc3Qgc3RydWN0IGlu
b2RlX29wZXJhdGlvbnMgc2ltcGxlX2Rpcl9pbm9kZV9vcGVyYXRpb25zOwpleHRlcm4gdm9pZCBt
YWtlX2VtcHR5X2Rpcl9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKZXh0ZXJuIGJvb2wgaXNf
ZW1wdHlfZGlyX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwpzdHJ1Y3QgdHJlZV9kZXNjciB7
IGNvbnN0IGNoYXIgKm5hbWU7IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKm9wczsgaW50
IG1vZGU7IH07CnN0cnVjdCBkZW50cnkgKmRfYWxsb2NfbmFtZShzdHJ1Y3QgZGVudHJ5ICosIGNv
bnN0IGNoYXIgKik7CmV4dGVybiBpbnQgc2ltcGxlX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Js
b2NrICosIHVuc2lnbmVkIGxvbmcsCiAgICAgICAgY29uc3Qgc3RydWN0IHRyZWVfZGVzY3IgKik7
CmV4dGVybiBpbnQgc2ltcGxlX3Bpbl9mcyhzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqLCBzdHJ1
Y3QgdmZzbW91bnQgKiptb3VudCwgaW50ICpjb3VudCk7CmV4dGVybiB2b2lkIHNpbXBsZV9yZWxl
YXNlX2ZzKHN0cnVjdCB2ZnNtb3VudCAqKm1vdW50LCBpbnQgKmNvdW50KTsKCmV4dGVybiBzc2l6
ZV90IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHZvaWQgKnRvLCBzaXplX3QgY291bnQsCiAgIGxv
ZmZfdCAqcHBvcywgY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IGF2YWlsYWJsZSk7CmV4dGVybiBz
c2l6ZV90IHNpbXBsZV93cml0ZV90b19idWZmZXIodm9pZCAqdG8sIHNpemVfdCBhdmFpbGFibGUs
IGxvZmZfdCAqcHBvcywKICBjb25zdCB2b2lkICpmcm9tLCBzaXplX3QgY291bnQpOwoKZXh0ZXJu
IGludCBfX2dlbmVyaWNfZmlsZV9mc3luYyhzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGxvZmZfdCwg
aW50KTsKZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVfZnN5bmMoc3RydWN0IGZpbGUgKiwgbG9mZl90
LCBsb2ZmX3QsIGludCk7CgpleHRlcm4gaW50IGdlbmVyaWNfY2hlY2tfYWRkcmVzc2FibGUodW5z
aWduZWQsIHU2NCk7CgoKZXh0ZXJuIGludCBidWZmZXJfbWlncmF0ZV9wYWdlKHN0cnVjdCBhZGRy
ZXNzX3NwYWNlICosCiAgICBzdHJ1Y3QgcGFnZSAqLCBzdHJ1Y3QgcGFnZSAqLAogICAgZW51bSBt
aWdyYXRlX21vZGUpOwpleHRlcm4gaW50IGJ1ZmZlcl9taWdyYXRlX3BhZ2Vfbm9yZWZzKHN0cnVj
dCBhZGRyZXNzX3NwYWNlICosCiAgICBzdHJ1Y3QgcGFnZSAqLCBzdHJ1Y3QgcGFnZSAqLAogICAg
ZW51bSBtaWdyYXRlX21vZGUpOwoKCgoKCmV4dGVybiBpbnQgc2V0YXR0cl9wcmVwYXJlKHN0cnVj
dCBkZW50cnkgKiwgc3RydWN0IGlhdHRyICopOwpleHRlcm4gaW50IGlub2RlX25ld3NpemVfb2so
Y29uc3Qgc3RydWN0IGlub2RlICosIGxvZmZfdCBvZmZzZXQpOwpleHRlcm4gdm9pZCBzZXRhdHRy
X2NvcHkoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3RydWN0IGlhdHRyICphdHRyKTsKCmV4
dGVybiBpbnQgZmlsZV91cGRhdGVfdGltZShzdHJ1Y3QgZmlsZSAqZmlsZSk7CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGlvX2lz
X2RpcmVjdChzdHJ1Y3QgZmlsZSAqZmlscCkKewogcmV0dXJuIChmaWxwLT5mX2ZsYWdzICYgMDAw
NDAwMDApIHx8ICgoZmlscC0+Zl9tYXBwaW5nLT5ob3N0KS0+aV9mbGFncyAmIDgxOTIpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIHZtYV9pc19kYXgoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCnsKIHJldHVybiB2bWEt
PnZtX2ZpbGUgJiYgKCh2bWEtPnZtX2ZpbGUtPmZfbWFwcGluZy0+aG9zdCktPmlfZmxhZ3MgJiA4
MTkyKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCB2bWFfaXNfZnNkYXgoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCnsK
IHN0cnVjdCBpbm9kZSAqaW5vZGU7CgogaWYgKCF2bWEtPnZtX2ZpbGUpCiAgcmV0dXJuIGZhbHNl
OwogaWYgKCF2bWFfaXNfZGF4KHZtYSkpCiAgcmV0dXJuIGZhbHNlOwogaW5vZGUgPSBmaWxlX2lu
b2RlKHZtYS0+dm1fZmlsZSk7CiBpZiAoKCgoaW5vZGUtPmlfbW9kZSkgJiAwMDE3MDAwMCkgPT0g
MDAyMDAwMCkpCiAgcmV0dXJuIGZhbHNlOwogcmV0dXJuIHRydWU7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBpb2NiX2ZsYWdz
KHN0cnVjdCBmaWxlICpmaWxlKQp7CiBpbnQgcmVzID0gMDsKIGlmIChmaWxlLT5mX2ZsYWdzICYg
MDAwMDIwMDApCiAgcmVzIHw9ICgxIDw8IDEpOwogaWYgKGlvX2lzX2RpcmVjdChmaWxlKSkKICBy
ZXMgfD0gKDEgPDwgMik7CiBpZiAoKGZpbGUtPmZfZmxhZ3MgJiAwMDAxMDAwMCkgfHwgKCgoZmls
ZS0+Zl9tYXBwaW5nLT5ob3N0KS0+aV9zYi0+c19mbGFncyAmICgxNikpIHx8ICgoZmlsZS0+Zl9t
YXBwaW5nLT5ob3N0KS0+aV9mbGFncyAmIDEpKSkKICByZXMgfD0gKDEgPDwgNCk7CiBpZiAoZmls
ZS0+Zl9mbGFncyAmIDA0MDAwMDAwKQogIHJlcyB8PSAoMSA8PCA1KTsKIHJldHVybiByZXM7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBraW9jYl9zZXRfcndfZmxhZ3Moc3RydWN0IGtpb2NiICpraSwgcndmX3QgZmxhZ3MpCnsK
IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGZsYWdzICYgfigoKCBfX2tlcm5lbF9yd2ZfdCkweDAw
MDAwMDAxKSB8ICgoIF9fa2VybmVsX3J3Zl90KTB4MDAwMDAwMDIpIHwgKCggX19rZXJuZWxfcndm
X3QpMHgwMDAwMDAwNCkgfCAoKCBfX2tlcm5lbF9yd2ZfdCkweDAwMDAwMDA4KSB8ICgoIF9fa2Vy
bmVsX3J3Zl90KTB4MDAwMDAwMTApKSksIDApKQogIHJldHVybiAtOTU7CgogaWYgKGZsYWdzICYg
KCggX19rZXJuZWxfcndmX3QpMHgwMDAwMDAwOCkpIHsKICBpZiAoIShraS0+a2lfZmlscC0+Zl9t
b2RlICYgKCggZm1vZGVfdCkweDgwMDAwMDApKSkKICAgcmV0dXJuIC05NTsKICBraS0+a2lfZmxh
Z3MgfD0gKDEgPDwgNyk7CiB9CiBpZiAoZmxhZ3MgJiAoKCBfX2tlcm5lbF9yd2ZfdCkweDAwMDAw
MDAxKSkKICBraS0+a2lfZmxhZ3MgfD0gKDEgPDwgMyk7CiBpZiAoZmxhZ3MgJiAoKCBfX2tlcm5l
bF9yd2ZfdCkweDAwMDAwMDAyKSkKICBraS0+a2lfZmxhZ3MgfD0gKDEgPDwgNCk7CiBpZiAoZmxh
Z3MgJiAoKCBfX2tlcm5lbF9yd2ZfdCkweDAwMDAwMDA0KSkKICBraS0+a2lfZmxhZ3MgfD0gKCgx
IDw8IDQpIHwgKDEgPDwgNSkpOwogaWYgKGZsYWdzICYgKCggX19rZXJuZWxfcndmX3QpMHgwMDAw
MDAxMCkpCiAga2ktPmtpX2ZsYWdzIHw9ICgxIDw8IDEpOwogcmV0dXJuIDA7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlub190IHBh
cmVudF9pbm8oc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiBpbm9fdCByZXM7CgoKCgoKIHNwaW5f
bG9jaygmZGVudHJ5LT5kX2xvY2tyZWYubG9jayk7CiByZXMgPSBkZW50cnktPmRfcGFyZW50LT5k
X2lub2RlLT5pX2lubzsKIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9ja3JlZi5sb2NrKTsKIHJl
dHVybiByZXM7Cn0KCgoKCgoKCnN0cnVjdCBzaW1wbGVfdHJhbnNhY3Rpb25fYXJncmVzcCB7CiBz
c2l6ZV90IHNpemU7CiBjaGFyIGRhdGFbMF07Cn07CgoKCmNoYXIgKnNpbXBsZV90cmFuc2FjdGlv
bl9nZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKmJ1ZiwKICAgIHNpemVfdCBzaXpl
KTsKc3NpemVfdCBzaW1wbGVfdHJhbnNhY3Rpb25fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hh
ciAqYnVmLAogICAgc2l6ZV90IHNpemUsIGxvZmZfdCAqcG9zKTsKaW50IHNpbXBsZV90cmFuc2Fj
dGlvbl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKTsKCnZv
aWQgc2ltcGxlX3RyYW5zYWN0aW9uX3NldChzdHJ1Y3QgZmlsZSAqZmlsZSwgc2l6ZV90IG4pOwoj
IDM1MTUgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHBy
aW50ZiwgMSwgMikpKQp2b2lkIF9fc2ltcGxlX2F0dHJfY2hlY2tfZm9ybWF0KGNvbnN0IGNoYXIg
KmZtdCwgLi4uKQp7Cgp9CgppbnQgc2ltcGxlX2F0dHJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKICAgICAgIGludCAoKmdldCkodm9pZCAqLCB1NjQgKiksIGlu
dCAoKnNldCkodm9pZCAqLCB1NjQpLAogICAgICAgY29uc3QgY2hhciAqZm10KTsKaW50IHNpbXBs
ZV9hdHRyX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpOwpz
c2l6ZV90IHNpbXBsZV9hdHRyX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgKmJ1ZiwKICAg
IHNpemVfdCBsZW4sIGxvZmZfdCAqcHBvcyk7CnNzaXplX3Qgc2ltcGxlX2F0dHJfd3JpdGUoc3Ry
dWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKmJ1ZiwKICAgICBzaXplX3QgbGVuLCBsb2ZmX3Qg
KnBwb3MpOwoKc3RydWN0IGN0bF90YWJsZTsKaW50IHByb2NfbnJfZmlsZXMoc3RydWN0IGN0bF90
YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs
b2ZmX3QgKnBwb3MpOwppbnQgcHJvY19ucl9kZW50cnkoc3RydWN0IGN0bF90YWJsZSAqdGFibGUs
IGludCB3cml0ZSwKICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp
OwppbnQgcHJvY19ucl9pbm9kZXMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK
ICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKaW50IF9fYXR0
cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2Nv
bGRfXykpIGdldF9maWxlc3lzdGVtX2xpc3QoY2hhciAqYnVmKTsKIyAzNTQ2ICIuL2luY2x1ZGUv
bGludXgvZnMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBpc19zeGlkKHVtb2RlX3QgbW9kZSkKewogcmV0dXJuIChtb2RlICYg
MDAwNDAwMCkgfHwgKChtb2RlICYgMDAwMjAwMCkgJiYgKG1vZGUgJiAwMDAxMCkpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
Y2hlY2tfc3RpY2t5KHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBp
ZiAoIShkaXItPmlfbW9kZSAmIDAwMDEwMDApKQogIHJldHVybiAwOwoKIHJldHVybiBfX2NoZWNr
X3N0aWNreShkaXIsIGlub2RlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9oYXNfbm9feGF0dHIoc3RydWN0IGlu
b2RlICppbm9kZSkKewogaWYgKCFpc19zeGlkKGlub2RlLT5pX21vZGUpICYmIChpbm9kZS0+aV9z
Yi0+c19mbGFncyAmICgxPDwyOCkpKQogIGlub2RlLT5pX2ZsYWdzIHw9IDQwOTY7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
aXNfcm9vdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiByZXR1cm4gaW5vZGUgPT0gaW5v
ZGUtPmlfc2ItPnNfcm9vdC0+ZF9pbm9kZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkaXJfZW1pdChzdHJ1Y3QgZGlyX2Nv
bnRleHQgKmN0eCwKICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuLAogICAgICAg
dTY0IGlubywgdW5zaWduZWQgdHlwZSkKewogcmV0dXJuIGN0eC0+YWN0b3IoY3R4LCBuYW1lLCBu
YW1lbGVuLCBjdHgtPnBvcywgaW5vLCB0eXBlKSA9PSAwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGlyX2VtaXRfZG90KHN0
cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGlyX2NvbnRleHQgKmN0eCkKewogcmV0dXJuIGN0eC0+
YWN0b3IoY3R4LCAiLiIsIDEsIGN0eC0+cG9zLAogICAgIGZpbGUtPmZfcGF0aC5kZW50cnktPmRf
aW5vZGUtPmlfaW5vLCA0KSA9PSAwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGlyX2VtaXRfZG90ZG90KHN0cnVjdCBmaWxl
ICpmaWxlLCBzdHJ1Y3QgZGlyX2NvbnRleHQgKmN0eCkKewogcmV0dXJuIGN0eC0+YWN0b3IoY3R4
LCAiLi4iLCAyLCBjdHgtPnBvcywKICAgICBwYXJlbnRfaW5vKGZpbGUtPmZfcGF0aC5kZW50cnkp
LCA0KSA9PSAwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgZGlyX2VtaXRfZG90cyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0
IGRpcl9jb250ZXh0ICpjdHgpCnsKIGlmIChjdHgtPnBvcyA9PSAwKSB7CiAgaWYgKCFkaXJfZW1p
dF9kb3QoZmlsZSwgY3R4KSkKICAgcmV0dXJuIGZhbHNlOwogIGN0eC0+cG9zID0gMTsKIH0KIGlm
IChjdHgtPnBvcyA9PSAxKSB7CiAgaWYgKCFkaXJfZW1pdF9kb3Rkb3QoZmlsZSwgY3R4KSkKICAg
cmV0dXJuIGZhbHNlOwogIGN0eC0+cG9zID0gMjsKIH0KIHJldHVybiB0cnVlOwp9CnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGly
X3JlbGF4KHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIGlub2RlX3VubG9jayhpbm9kZSk7CiBpbm9k
ZV9sb2NrKGlub2RlKTsKIHJldHVybiAhKChpbm9kZSktPmlfZmxhZ3MgJiAxNik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
ZGlyX3JlbGF4X3NoYXJlZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBpbm9kZV91bmxvY2tfc2hh
cmVkKGlub2RlKTsKIGlub2RlX2xvY2tfc2hhcmVkKGlub2RlKTsKIHJldHVybiAhKChpbm9kZSkt
PmlfZmxhZ3MgJiAxNik7Cn0KCmV4dGVybiBib29sIHBhdGhfbm9leGVjKGNvbnN0IHN0cnVjdCBw
YXRoICpwYXRoKTsKZXh0ZXJuIHZvaWQgaW5vZGVfbm9oaWdobWVtKHN0cnVjdCBpbm9kZSAqaW5v
ZGUpOwoKCmV4dGVybiBpbnQgdmZzX2ZhZHZpc2Uoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBv
ZmZzZXQsIGxvZmZfdCBsZW4sCiAgICAgICAgIGludCBhZHZpY2UpOwpleHRlcm4gaW50IGdlbmVy
aWNfZmFkdmlzZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbiwK
ICAgICAgaW50IGFkdmljZSk7CgoKZXh0ZXJuIHN0cnVjdCBzb2NrICppb191cmluZ19nZXRfc29j
a2V0KHN0cnVjdCBmaWxlICpmaWxlKTsKCgoKCgoKCmludCB2ZnNfaW9jX3NldGZsYWdzX3ByZXBh
cmUoc3RydWN0IGlub2RlICppbm9kZSwgdW5zaWduZWQgaW50IG9sZGZsYWdzLAogICAgICAgIHVu
c2lnbmVkIGludCBmbGFncyk7CgppbnQgdmZzX2lvY19mc3NldHhhdHRyX2NoZWNrKHN0cnVjdCBp
bm9kZSAqaW5vZGUsIGNvbnN0IHN0cnVjdCBmc3hhdHRyICpvbGRfZmEsCiAgICAgICAgc3RydWN0
IGZzeGF0dHIgKmZhKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgc2ltcGxlX2ZpbGxfZnN4YXR0cihzdHJ1Y3QgZnN4YXR0ciAq
ZmEsIF9fdTMyIHhmbGFncykKewogbWVtc2V0KGZhLCAwLCBzaXplb2YoKmZhKSk7CiBmYS0+ZnN4
X3hmbGFncyA9IHhmbGFnczsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaW5vZGVfZHJhaW5fd3JpdGVzKHN0cnVjdCBp
bm9kZSAqaW5vZGUpCnsKIGlub2RlX2Rpb193YWl0KGlub2RlKTsKIHJldHVybiBmaWxlbWFwX3dy
aXRlX2FuZF93YWl0KGlub2RlLT5pX21hcHBpbmcpOwp9CiMgMTIgIi4vaW5jbHVkZS9saW51eC9z
ZXFfZmlsZS5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIgMQojIDEzICIuL2luY2x1
ZGUvbGludXgvY3JlZC5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9rZXkuaCIgMQojIDE3ICIuL2lu
Y2x1ZGUvbGludXgva2V5LmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3N5c2N0bC5oIiAxCiMgMzAg
Ii4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zeXNj
dGwuaCIgMQojIDM1ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zeXNjdGwuaCIKc3RydWN0IF9fc3lz
Y3RsX2FyZ3MgewogaW50ICpuYW1lOwogaW50IG5sZW47CiB2b2lkICpvbGR2YWw7CiBzaXplX3Qg
Km9sZGxlbnA7CiB2b2lkICpuZXd2YWw7CiBzaXplX3QgbmV3bGVuOwogdW5zaWduZWQgbG9uZyBf
X3VudXNlZFs0XTsKfTsKCgoKCgplbnVtCnsKIENUTF9LRVJOPTEsCiBDVExfVk09MiwKIENUTF9O
RVQ9MywKIENUTF9QUk9DPTQsCiBDVExfRlM9NSwKIENUTF9ERUJVRz02LAogQ1RMX0RFVj03LAog
Q1RMX0JVUz04LAogQ1RMX0FCST05LAogQ1RMX0NQVT0xMCwKIENUTF9BUkxBTj0yNTQsCiBDVExf
UzM5MERCRj01Njc3LAogQ1RMX1NVTlJQQz03MjQ5LAogQ1RMX1BNPTk4OTksCiBDVExfRlJWPTk4
OTgsCn07CgoKZW51bQp7CiBDVExfQlVTX0lTQT0xCn07CgoKZW51bQp7CiBJTk9USUZZX01BWF9V
U0VSX0lOU1RBTkNFUz0xLAogSU5PVElGWV9NQVhfVVNFUl9XQVRDSEVTPTIsCiBJTk9USUZZX01B
WF9RVUVVRURfRVZFTlRTPTMKfTsKCgplbnVtCnsKIEtFUk5fT1NUWVBFPTEsCiBLRVJOX09TUkVM
RUFTRT0yLAogS0VSTl9PU1JFVj0zLAogS0VSTl9WRVJTSU9OPTQsCiBLRVJOX1NFQ1VSRU1BU0s9
NSwKIEtFUk5fUFJPRj02LAogS0VSTl9OT0RFTkFNRT03LAogS0VSTl9ET01BSU5OQU1FPTgsCgog
S0VSTl9QQU5JQz0xNSwKIEtFUk5fUkVBTFJPT1RERVY9MTYsCgogS0VSTl9TUEFSQ19SRUJPT1Q9
MjEsCiBLRVJOX0NUTEFMVERFTD0yMiwKIEtFUk5fUFJJTlRLPTIzLAogS0VSTl9OQU1FVFJBTlM9
MjQsCiBLRVJOX1BQQ19IVEFCUkVDTEFJTT0yNSwKIEtFUk5fUFBDX1pFUk9QQUdFRD0yNiwKIEtF
Uk5fUFBDX1BPV0VSU0FWRV9OQVA9MjcsCiBLRVJOX01PRFBST0JFPTI4LAogS0VSTl9TR19CSUdf
QlVGRj0yOSwKIEtFUk5fQUNDVD0zMCwKIEtFUk5fUFBDX0wyQ1I9MzEsCgogS0VSTl9SVFNJR05S
PTMyLAogS0VSTl9SVFNJR01BWD0zMywKCiBLRVJOX1NITU1BWD0zNCwKIEtFUk5fTVNHTUFYPTM1
LAogS0VSTl9NU0dNTkI9MzYsCiBLRVJOX01TR1BPT0w9MzcsCiBLRVJOX1NZU1JRPTM4LAogS0VS
Tl9NQVhfVEhSRUFEUz0zOSwKICBLRVJOX1JBTkRPTT00MCwKICBLRVJOX1NITUFMTD00MSwKICBL
RVJOX01TR01OST00MiwKICBLRVJOX1NFTT00MywKICBLRVJOX1NQQVJDX1NUT1BfQT00NCwKICBL
RVJOX1NITU1OST00NSwKIEtFUk5fT1ZFUkZMT1dVSUQ9NDYsCiBLRVJOX09WRVJGTE9XR0lEPTQ3
LAogS0VSTl9TSE1QQVRIPTQ4LAogS0VSTl9IT1RQTFVHPTQ5LAogS0VSTl9JRUVFX0VNVUxBVElP
Tl9XQVJOSU5HUz01MCwKIEtFUk5fUzM5MF9VU0VSX0RFQlVHX0xPR0dJTkc9NTEsCiBLRVJOX0NP
UkVfVVNFU19QSUQ9NTIsCiBLRVJOX1RBSU5URUQ9NTMsCiBLRVJOX0NBRFBJRD01NCwKIEtFUk5f
UElETUFYPTU1LAogICBLRVJOX0NPUkVfUEFUVEVSTj01NiwKIEtFUk5fUEFOSUNfT05fT09QUz01
NywKIEtFUk5fSFBQQV9QV1JTVz01OCwKIEtFUk5fSFBQQV9VTkFMSUdORUQ9NTksCiBLRVJOX1BS
SU5US19SQVRFTElNSVQ9NjAsCiBLRVJOX1BSSU5US19SQVRFTElNSVRfQlVSU1Q9NjEsCiBLRVJO
X1BUWT02MiwKIEtFUk5fTkdST1VQU19NQVg9NjMsCiBLRVJOX1NQQVJDX1NDT05TX1BXUk9GRj02
NCwKIEtFUk5fSFpfVElNRVI9NjUsCiBLRVJOX1VOS05PV05fTk1JX1BBTklDPTY2LAogS0VSTl9C
T09UTE9BREVSX1RZUEU9NjcsCiBLRVJOX1JBTkRPTUlaRT02OCwKIEtFUk5fU0VUVUlEX0RVTVBB
QkxFPTY5LAogS0VSTl9TUElOX1JFVFJZPTcwLAogS0VSTl9BQ1BJX1ZJREVPX0ZMQUdTPTcxLAog
S0VSTl9JQTY0X1VOQUxJR05FRD03MiwKIEtFUk5fQ09NUEFUX0xPRz03MywKIEtFUk5fTUFYX0xP
Q0tfREVQVEg9NzQsCiBLRVJOX05NSV9XQVRDSERPRz03NSwKIEtFUk5fUEFOSUNfT05fTk1JPTc2
LAogS0VSTl9QQU5JQ19PTl9XQVJOPTc3LAogS0VSTl9QQU5JQ19QUklOVD03OCwKfTsKCgoKCmVu
dW0KewogVk1fVU5VU0VEMT0xLAogVk1fVU5VU0VEMj0yLAogVk1fVU5VU0VEMz0zLAogVk1fVU5V
U0VEND00LAogVk1fT1ZFUkNPTU1JVF9NRU1PUlk9NSwKIFZNX1VOVVNFRDU9NiwKIFZNX1VOVVNF
RDc9NywKIFZNX1VOVVNFRDg9OCwKIFZNX1VOVVNFRDk9OSwKIFZNX1BBR0VfQ0xVU1RFUj0xMCwK
IFZNX0RJUlRZX0JBQ0tHUk9VTkQ9MTEsCiBWTV9ESVJUWV9SQVRJTz0xMiwKIFZNX0RJUlRZX1dC
X0NTPTEzLAogVk1fRElSVFlfRVhQSVJFX0NTPTE0LAogVk1fTlJfUERGTFVTSF9USFJFQURTPTE1
LAogVk1fT1ZFUkNPTU1JVF9SQVRJTz0xNiwKIFZNX1BBR0VCVUY9MTcsCiBWTV9IVUdFVExCX1BB
R0VTPTE4LAogVk1fU1dBUFBJTkVTUz0xOSwKIFZNX0xPV01FTV9SRVNFUlZFX1JBVElPPTIwLAog
Vk1fTUlOX0ZSRUVfS0JZVEVTPTIxLAogVk1fTUFYX01BUF9DT1VOVD0yMiwKIFZNX0xBUFRPUF9N
T0RFPTIzLAogVk1fQkxPQ0tfRFVNUD0yNCwKIFZNX0hVR0VUTEJfR1JPVVA9MjUsCiBWTV9WRlNf
Q0FDSEVfUFJFU1NVUkU9MjYsCiBWTV9MRUdBQ1lfVkFfTEFZT1VUPTI3LAogVk1fU1dBUF9UT0tF
Tl9USU1FT1VUPTI4LAogVk1fRFJPUF9QQUdFQ0FDSEU9MjksCiBWTV9QRVJDUFVfUEFHRUxJU1Rf
RlJBQ1RJT049MzAsCiBWTV9aT05FX1JFQ0xBSU1fTU9ERT0zMSwKIFZNX01JTl9VTk1BUFBFRD0z
MiwKIFZNX1BBTklDX09OX09PTT0zMywKIFZNX1ZEU09fRU5BQkxFRD0zNCwKIFZNX01JTl9TTEFC
PTM1LAp9OwoKCgplbnVtCnsKIE5FVF9DT1JFPTEsCiBORVRfRVRIRVI9MiwKIE5FVF84MDI9MywK
IE5FVF9VTklYPTQsCiBORVRfSVBWND01LAogTkVUX0lQWD02LAogTkVUX0FUQUxLPTcsCiBORVRf
TkVUUk9NPTgsCiBORVRfQVgyNT05LAogTkVUX0JSSURHRT0xMCwKIE5FVF9ST1NFPTExLAogTkVU
X0lQVjY9MTIsCiBORVRfWDI1PTEzLAogTkVUX1RSPTE0LAogTkVUX0RFQ05FVD0xNSwKIE5FVF9F
Q09ORVQ9MTYsCiBORVRfU0NUUD0xNywKIE5FVF9MTEM9MTgsCiBORVRfTkVURklMVEVSPTE5LAog
TkVUX0RDQ1A9MjAsCiBORVRfSVJEQT00MTIsCn07CgoKZW51bQp7CiBSQU5ET01fUE9PTFNJWkU9
MSwKIFJBTkRPTV9FTlRST1BZX0NPVU5UPTIsCiBSQU5ET01fUkVBRF9USFJFU0g9MywKIFJBTkRP
TV9XUklURV9USFJFU0g9NCwKIFJBTkRPTV9CT09UX0lEPTUsCiBSQU5ET01fVVVJRD02Cn07CgoK
ZW51bQp7CiBQVFlfTUFYPTEsCiBQVFlfTlI9Mgp9OwoKCmVudW0KewogQlVTX0lTQV9NRU1fQkFT
RT0xLAogQlVTX0lTQV9QT1JUX0JBU0U9MiwKIEJVU19JU0FfUE9SVF9TSElGVD0zCn07CgoKZW51
bQp7CiBORVRfQ09SRV9XTUVNX01BWD0xLAogTkVUX0NPUkVfUk1FTV9NQVg9MiwKIE5FVF9DT1JF
X1dNRU1fREVGQVVMVD0zLAogTkVUX0NPUkVfUk1FTV9ERUZBVUxUPTQsCgogTkVUX0NPUkVfTUFY
X0JBQ0tMT0c9NiwKIE5FVF9DT1JFX0ZBU1RST1VURT03LAogTkVUX0NPUkVfTVNHX0NPU1Q9OCwK
IE5FVF9DT1JFX01TR19CVVJTVD05LAogTkVUX0NPUkVfT1BUTUVNX01BWD0xMCwKIE5FVF9DT1JF
X0hPVF9MSVNUX0xFTkdUSD0xMSwKIE5FVF9DT1JFX0RJVkVSVF9WRVJTSU9OPTEyLAogTkVUX0NP
UkVfTk9fQ09OR19USFJFU0g9MTMsCiBORVRfQ09SRV9OT19DT05HPTE0LAogTkVUX0NPUkVfTE9f
Q09ORz0xNSwKIE5FVF9DT1JFX01PRF9DT05HPTE2LAogTkVUX0NPUkVfREVWX1dFSUdIVD0xNywK
IE5FVF9DT1JFX1NPTUFYQ09OTj0xOCwKIE5FVF9DT1JFX0JVREdFVD0xOSwKIE5FVF9DT1JFX0FF
VkVOVF9FVElNRT0yMCwKIE5FVF9DT1JFX0FFVkVOVF9SU0VRVEg9MjEsCiBORVRfQ09SRV9XQVJO
SU5HUz0yMiwKfTsKCgoKCgoKCmVudW0KewogTkVUX1VOSVhfREVTVFJPWV9ERUxBWT0xLAogTkVU
X1VOSVhfREVMRVRFX0RFTEFZPTIsCiBORVRfVU5JWF9NQVhfREdSQU1fUUxFTj0zLAp9OwoKCmVu
dW0KewogTkVUX05GX0NPTk5UUkFDS19NQVg9MSwKIE5FVF9ORl9DT05OVFJBQ0tfVENQX1RJTUVP
VVRfU1lOX1NFTlQ9MiwKIE5FVF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfU1lOX1JFQ1Y9MywK
IE5FVF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfRVNUQUJMSVNIRUQ9NCwKIE5FVF9ORl9DT05O
VFJBQ0tfVENQX1RJTUVPVVRfRklOX1dBSVQ9NSwKIE5FVF9ORl9DT05OVFJBQ0tfVENQX1RJTUVP
VVRfQ0xPU0VfV0FJVD02LAogTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9MQVNUX0FDSz03
LAogTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9USU1FX1dBSVQ9OCwKIE5FVF9ORl9DT05O
VFJBQ0tfVENQX1RJTUVPVVRfQ0xPU0U9OSwKIE5FVF9ORl9DT05OVFJBQ0tfVURQX1RJTUVPVVQ9
MTAsCiBORVRfTkZfQ09OTlRSQUNLX1VEUF9USU1FT1VUX1NUUkVBTT0xMSwKIE5FVF9ORl9DT05O
VFJBQ0tfSUNNUF9USU1FT1VUPTEyLAogTkVUX05GX0NPTk5UUkFDS19HRU5FUklDX1RJTUVPVVQ9
MTMsCiBORVRfTkZfQ09OTlRSQUNLX0JVQ0tFVFM9MTQsCiBORVRfTkZfQ09OTlRSQUNLX0xPR19J
TlZBTElEPTE1LAogTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9NQVhfUkVUUkFOUz0xNiwK
IE5FVF9ORl9DT05OVFJBQ0tfVENQX0xPT1NFPTE3LAogTkVUX05GX0NPTk5UUkFDS19UQ1BfQkVf
TElCRVJBTD0xOCwKIE5FVF9ORl9DT05OVFJBQ0tfVENQX01BWF9SRVRSQU5TPTE5LAogTkVUX05G
X0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRfQ0xPU0VEPTIwLAogTkVUX05GX0NPTk5UUkFDS19TQ1RQ
X1RJTUVPVVRfQ09PS0lFX1dBSVQ9MjEsCiBORVRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9D
T09LSUVfRUNIT0VEPTIyLAogTkVUX05GX0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRfRVNUQUJMSVNI
RUQ9MjMsCiBORVRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9TSFVURE9XTl9TRU5UPTI0LAog
TkVUX05GX0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRfU0hVVERPV05fUkVDRD0yNSwKIE5FVF9ORl9D
T05OVFJBQ0tfU0NUUF9USU1FT1VUX1NIVVRET1dOX0FDS19TRU5UPTI2LAogTkVUX05GX0NPTk5U
UkFDS19DT1VOVD0yNywKIE5FVF9ORl9DT05OVFJBQ0tfSUNNUFY2X1RJTUVPVVQ9MjgsCiBORVRf
TkZfQ09OTlRSQUNLX0ZSQUc2X1RJTUVPVVQ9MjksCiBORVRfTkZfQ09OTlRSQUNLX0ZSQUc2X0xP
V19USFJFU0g9MzAsCiBORVRfTkZfQ09OTlRSQUNLX0ZSQUc2X0hJR0hfVEhSRVNIPTMxLAogTkVU
X05GX0NPTk5UUkFDS19DSEVDS1NVTT0zMiwKfTsKCgplbnVtCnsKCiBORVRfSVBWNF9GT1JXQVJE
PTgsCiBORVRfSVBWNF9EWU5BRERSPTksCgogTkVUX0lQVjRfQ09ORj0xNiwKIE5FVF9JUFY0X05F
SUdIPTE3LAogTkVUX0lQVjRfUk9VVEU9MTgsCiBORVRfSVBWNF9GSUJfSEFTSD0xOSwKIE5FVF9J
UFY0X05FVEZJTFRFUj0yMCwKCiBORVRfSVBWNF9UQ1BfVElNRVNUQU1QUz0zMywKIE5FVF9JUFY0
X1RDUF9XSU5ET1dfU0NBTElORz0zNCwKIE5FVF9JUFY0X1RDUF9TQUNLPTM1LAogTkVUX0lQVjRf
VENQX1JFVFJBTlNfQ09MTEFQU0U9MzYsCiBORVRfSVBWNF9ERUZBVUxUX1RUTD0zNywKIE5FVF9J
UFY0X0FVVE9DT05GSUc9MzgsCiBORVRfSVBWNF9OT19QTVRVX0RJU0M9MzksCiBORVRfSVBWNF9U
Q1BfU1lOX1JFVFJJRVM9NDAsCiBORVRfSVBWNF9JUEZSQUdfSElHSF9USFJFU0g9NDEsCiBORVRf
SVBWNF9JUEZSQUdfTE9XX1RIUkVTSD00MiwKIE5FVF9JUFY0X0lQRlJBR19USU1FPTQzLAogTkVU
X0lQVjRfVENQX01BWF9LQV9QUk9CRVM9NDQsCiBORVRfSVBWNF9UQ1BfS0VFUEFMSVZFX1RJTUU9
NDUsCiBORVRfSVBWNF9UQ1BfS0VFUEFMSVZFX1BST0JFUz00NiwKIE5FVF9JUFY0X1RDUF9SRVRS
SUVTMT00NywKIE5FVF9JUFY0X1RDUF9SRVRSSUVTMj00OCwKIE5FVF9JUFY0X1RDUF9GSU5fVElN
RU9VVD00OSwKIE5FVF9JUFY0X0lQX01BU1FfREVCVUc9NTAsCiBORVRfVENQX1NZTkNPT0tJRVM9
NTEsCiBORVRfVENQX1NURFVSRz01MiwKIE5FVF9UQ1BfUkZDMTMzNz01MywKIE5FVF9UQ1BfU1lO
X1RBSUxEUk9QPTU0LAogTkVUX1RDUF9NQVhfU1lOX0JBQ0tMT0c9NTUsCiBORVRfSVBWNF9MT0NB
TF9QT1JUX1JBTkdFPTU2LAogTkVUX0lQVjRfSUNNUF9FQ0hPX0lHTk9SRV9BTEw9NTcsCiBORVRf
SVBWNF9JQ01QX0VDSE9fSUdOT1JFX0JST0FEQ0FTVFM9NTgsCiBORVRfSVBWNF9JQ01QX1NPVVJD
RVFVRU5DSF9SQVRFPTU5LAogTkVUX0lQVjRfSUNNUF9ERVNUVU5SRUFDSF9SQVRFPTYwLAogTkVU
X0lQVjRfSUNNUF9USU1FRVhDRUVEX1JBVEU9NjEsCiBORVRfSVBWNF9JQ01QX1BBUkFNUFJPQl9S
QVRFPTYyLAogTkVUX0lQVjRfSUNNUF9FQ0hPUkVQTFlfUkFURT02MywKIE5FVF9JUFY0X0lDTVBf
SUdOT1JFX0JPR1VTX0VSUk9SX1JFU1BPTlNFUz02NCwKIE5FVF9JUFY0X0lHTVBfTUFYX01FTUJF
UlNISVBTPTY1LAogTkVUX1RDUF9UV19SRUNZQ0xFPTY2LAogTkVUX0lQVjRfQUxXQVlTX0RFRlJB
Rz02NywKIE5FVF9JUFY0X1RDUF9LRUVQQUxJVkVfSU5UVkw9NjgsCiBORVRfSVBWNF9JTkVUX1BF
RVJfVEhSRVNIT0xEPTY5LAogTkVUX0lQVjRfSU5FVF9QRUVSX01JTlRUTD03MCwKIE5FVF9JUFY0
X0lORVRfUEVFUl9NQVhUVEw9NzEsCiBORVRfSVBWNF9JTkVUX1BFRVJfR0NfTUlOVElNRT03MiwK
IE5FVF9JUFY0X0lORVRfUEVFUl9HQ19NQVhUSU1FPTczLAogTkVUX1RDUF9PUlBIQU5fUkVUUklF
Uz03NCwKIE5FVF9UQ1BfQUJPUlRfT05fT1ZFUkZMT1c9NzUsCiBORVRfVENQX1NZTkFDS19SRVRS
SUVTPTc2LAogTkVUX1RDUF9NQVhfT1JQSEFOUz03NywKIE5FVF9UQ1BfTUFYX1RXX0JVQ0tFVFM9
NzgsCiBORVRfVENQX0ZBQ0s9NzksCiBORVRfVENQX1JFT1JERVJJTkc9ODAsCiBORVRfVENQX0VD
Tj04MSwKIE5FVF9UQ1BfRFNBQ0s9ODIsCiBORVRfVENQX01FTT04MywKIE5FVF9UQ1BfV01FTT04
NCwKIE5FVF9UQ1BfUk1FTT04NSwKIE5FVF9UQ1BfQVBQX1dJTj04NiwKIE5FVF9UQ1BfQURWX1dJ
Tl9TQ0FMRT04NywKIE5FVF9JUFY0X05PTkxPQ0FMX0JJTkQ9ODgsCiBORVRfSVBWNF9JQ01QX1JB
VEVMSU1JVD04OSwKIE5FVF9JUFY0X0lDTVBfUkFURU1BU0s9OTAsCiBORVRfVENQX1RXX1JFVVNF
PTkxLAogTkVUX1RDUF9GUlRPPTkyLAogTkVUX1RDUF9MT1dfTEFURU5DWT05MywKIE5FVF9JUFY0
X0lQRlJBR19TRUNSRVRfSU5URVJWQUw9OTQsCiBORVRfSVBWNF9JR01QX01BWF9NU0Y9OTYsCiBO
RVRfVENQX05PX01FVFJJQ1NfU0FWRT05NywKIE5FVF9UQ1BfREVGQVVMVF9XSU5fU0NBTEU9MTA1
LAogTkVUX1RDUF9NT0RFUkFURV9SQ1ZCVUY9MTA2LAogTkVUX1RDUF9UU09fV0lOX0RJVklTT1I9
MTA3LAogTkVUX1RDUF9CSUNfQkVUQT0xMDgsCiBORVRfSVBWNF9JQ01QX0VSUk9SU19VU0VfSU5C
T1VORF9JRkFERFI9MTA5LAogTkVUX1RDUF9DT05HX0NPTlRST0w9MTEwLAogTkVUX1RDUF9BQkM9
MTExLAogTkVUX0lQVjRfSVBGUkFHX01BWF9ESVNUPTExMiwKICBORVRfVENQX01UVV9QUk9CSU5H
PTExMywKIE5FVF9UQ1BfQkFTRV9NU1M9MTE0LAogTkVUX0lQVjRfVENQX1dPUktBUk9VTkRfU0lH
TkVEX1dJTkRPV1M9MTE1LAogTkVUX1RDUF9ETUFfQ09QWUJSRUFLPTExNiwKIE5FVF9UQ1BfU0xP
V19TVEFSVF9BRlRFUl9JRExFPTExNywKIE5FVF9DSVBTT1Y0X0NBQ0hFX0VOQUJMRT0xMTgsCiBO
RVRfQ0lQU09WNF9DQUNIRV9CVUNLRVRfU0laRT0xMTksCiBORVRfQ0lQU09WNF9SQk1fT1BURk1U
PTEyMCwKIE5FVF9DSVBTT1Y0X1JCTV9TVFJJQ1RWQUxJRD0xMjEsCiBORVRfVENQX0FWQUlMX0NP
TkdfQ09OVFJPTD0xMjIsCiBORVRfVENQX0FMTE9XRURfQ09OR19DT05UUk9MPTEyMywKIE5FVF9U
Q1BfTUFYX1NTVEhSRVNIPTEyNCwKIE5FVF9UQ1BfRlJUT19SRVNQT05TRT0xMjUsCn07CgplbnVt
IHsKIE5FVF9JUFY0X1JPVVRFX0ZMVVNIPTEsCiBORVRfSVBWNF9ST1VURV9NSU5fREVMQVk9MiwK
IE5FVF9JUFY0X1JPVVRFX01BWF9ERUxBWT0zLAogTkVUX0lQVjRfUk9VVEVfR0NfVEhSRVNIPTQs
CiBORVRfSVBWNF9ST1VURV9NQVhfU0laRT01LAogTkVUX0lQVjRfUk9VVEVfR0NfTUlOX0lOVEVS
VkFMPTYsCiBORVRfSVBWNF9ST1VURV9HQ19USU1FT1VUPTcsCiBORVRfSVBWNF9ST1VURV9HQ19J
TlRFUlZBTD04LAogTkVUX0lQVjRfUk9VVEVfUkVESVJFQ1RfTE9BRD05LAogTkVUX0lQVjRfUk9V
VEVfUkVESVJFQ1RfTlVNQkVSPTEwLAogTkVUX0lQVjRfUk9VVEVfUkVESVJFQ1RfU0lMRU5DRT0x
MSwKIE5FVF9JUFY0X1JPVVRFX0VSUk9SX0NPU1Q9MTIsCiBORVRfSVBWNF9ST1VURV9FUlJPUl9C
VVJTVD0xMywKIE5FVF9JUFY0X1JPVVRFX0dDX0VMQVNUSUNJVFk9MTQsCiBORVRfSVBWNF9ST1VU
RV9NVFVfRVhQSVJFUz0xNSwKIE5FVF9JUFY0X1JPVVRFX01JTl9QTVRVPTE2LAogTkVUX0lQVjRf
Uk9VVEVfTUlOX0FEVk1TUz0xNywKIE5FVF9JUFY0X1JPVVRFX1NFQ1JFVF9JTlRFUlZBTD0xOCwK
IE5FVF9JUFY0X1JPVVRFX0dDX01JTl9JTlRFUlZBTF9NUz0xOSwKfTsKCmVudW0KewogTkVUX1BS
T1RPX0NPTkZfQUxMPS0yLAogTkVUX1BST1RPX0NPTkZfREVGQVVMVD0tMwoKCn07CgplbnVtCnsK
IE5FVF9JUFY0X0NPTkZfRk9SV0FSRElORz0xLAogTkVUX0lQVjRfQ09ORl9NQ19GT1JXQVJESU5H
PTIsCiBORVRfSVBWNF9DT05GX1BST1hZX0FSUD0zLAogTkVUX0lQVjRfQ09ORl9BQ0NFUFRfUkVE
SVJFQ1RTPTQsCiBORVRfSVBWNF9DT05GX1NFQ1VSRV9SRURJUkVDVFM9NSwKIE5FVF9JUFY0X0NP
TkZfU0VORF9SRURJUkVDVFM9NiwKIE5FVF9JUFY0X0NPTkZfU0hBUkVEX01FRElBPTcsCiBORVRf
SVBWNF9DT05GX1JQX0ZJTFRFUj04LAogTkVUX0lQVjRfQ09ORl9BQ0NFUFRfU09VUkNFX1JPVVRF
PTksCiBORVRfSVBWNF9DT05GX0JPT1RQX1JFTEFZPTEwLAogTkVUX0lQVjRfQ09ORl9MT0dfTUFS
VElBTlM9MTEsCiBORVRfSVBWNF9DT05GX1RBRz0xMiwKIE5FVF9JUFY0X0NPTkZfQVJQRklMVEVS
PTEzLAogTkVUX0lQVjRfQ09ORl9NRURJVU1fSUQ9MTQsCiBORVRfSVBWNF9DT05GX05PWEZSTT0x
NSwKIE5FVF9JUFY0X0NPTkZfTk9QT0xJQ1k9MTYsCiBORVRfSVBWNF9DT05GX0ZPUkNFX0lHTVBf
VkVSU0lPTj0xNywKIE5FVF9JUFY0X0NPTkZfQVJQX0FOTk9VTkNFPTE4LAogTkVUX0lQVjRfQ09O
Rl9BUlBfSUdOT1JFPTE5LAogTkVUX0lQVjRfQ09ORl9QUk9NT1RFX1NFQ09OREFSSUVTPTIwLAog
TkVUX0lQVjRfQ09ORl9BUlBfQUNDRVBUPTIxLAogTkVUX0lQVjRfQ09ORl9BUlBfTk9USUZZPTIy
LAp9OwoKCmVudW0KewogTkVUX0lQVjRfTkZfQ09OTlRSQUNLX01BWD0xLAogTkVUX0lQVjRfTkZf
Q09OTlRSQUNLX1RDUF9USU1FT1VUX1NZTl9TRU5UPTIsCiBORVRfSVBWNF9ORl9DT05OVFJBQ0tf
VENQX1RJTUVPVVRfU1lOX1JFQ1Y9MywKIE5FVF9JUFY0X05GX0NPTk5UUkFDS19UQ1BfVElNRU9V
VF9FU1RBQkxJU0hFRD00LAogTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1RDUF9USU1FT1VUX0ZJTl9X
QUlUPTUsCiBORVRfSVBWNF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfQ0xPU0VfV0FJVD02LAog
TkVUX0lQVjRfTkZfQ09OTlRSQUNLX1RDUF9USU1FT1VUX0xBU1RfQUNLPTcsCiBORVRfSVBWNF9O
Rl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfVElNRV9XQUlUPTgsCiBORVRfSVBWNF9ORl9DT05OVFJB
Q0tfVENQX1RJTUVPVVRfQ0xPU0U9OSwKIE5FVF9JUFY0X05GX0NPTk5UUkFDS19VRFBfVElNRU9V
VD0xMCwKIE5FVF9JUFY0X05GX0NPTk5UUkFDS19VRFBfVElNRU9VVF9TVFJFQU09MTEsCiBORVRf
SVBWNF9ORl9DT05OVFJBQ0tfSUNNUF9USU1FT1VUPTEyLAogTkVUX0lQVjRfTkZfQ09OTlRSQUNL
X0dFTkVSSUNfVElNRU9VVD0xMywKIE5FVF9JUFY0X05GX0NPTk5UUkFDS19CVUNLRVRTPTE0LAog
TkVUX0lQVjRfTkZfQ09OTlRSQUNLX0xPR19JTlZBTElEPTE1LAogTkVUX0lQVjRfTkZfQ09OTlRS
QUNLX1RDUF9USU1FT1VUX01BWF9SRVRSQU5TPTE2LAogTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1RD
UF9MT09TRT0xNywKIE5FVF9JUFY0X05GX0NPTk5UUkFDS19UQ1BfQkVfTElCRVJBTD0xOCwKIE5F
VF9JUFY0X05GX0NPTk5UUkFDS19UQ1BfTUFYX1JFVFJBTlM9MTksCiAgTkVUX0lQVjRfTkZfQ09O
TlRSQUNLX1NDVFBfVElNRU9VVF9DTE9TRUQ9MjAsCiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1ND
VFBfVElNRU9VVF9DT09LSUVfV0FJVD0yMSwKICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfU0NUUF9U
SU1FT1VUX0NPT0tJRV9FQ0hPRUQ9MjIsCiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1NDVFBfVElN
RU9VVF9FU1RBQkxJU0hFRD0yMywKICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VU
X1NIVVRET1dOX1NFTlQ9MjQsCiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9T
SFVURE9XTl9SRUNEPTI1LAogIE5FVF9JUFY0X05GX0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRfU0hV
VERPV05fQUNLX1NFTlQ9MjYsCiBORVRfSVBWNF9ORl9DT05OVFJBQ0tfQ09VTlQ9MjcsCiBORVRf
SVBWNF9ORl9DT05OVFJBQ0tfQ0hFQ0tTVU09MjgsCn07CgoKZW51bSB7CiBORVRfSVBWNl9DT05G
PTE2LAogTkVUX0lQVjZfTkVJR0g9MTcsCiBORVRfSVBWNl9ST1VURT0xOCwKIE5FVF9JUFY2X0lD
TVA9MTksCiBORVRfSVBWNl9CSU5EVjZPTkxZPTIwLAogTkVUX0lQVjZfSVA2RlJBR19ISUdIX1RI
UkVTSD0yMSwKIE5FVF9JUFY2X0lQNkZSQUdfTE9XX1RIUkVTSD0yMiwKIE5FVF9JUFY2X0lQNkZS
QUdfVElNRT0yMywKIE5FVF9JUFY2X0lQNkZSQUdfU0VDUkVUX0lOVEVSVkFMPTI0LAogTkVUX0lQ
VjZfTUxEX01BWF9NU0Y9MjUsCn07CgplbnVtIHsKIE5FVF9JUFY2X1JPVVRFX0ZMVVNIPTEsCiBO
RVRfSVBWNl9ST1VURV9HQ19USFJFU0g9MiwKIE5FVF9JUFY2X1JPVVRFX01BWF9TSVpFPTMsCiBO
RVRfSVBWNl9ST1VURV9HQ19NSU5fSU5URVJWQUw9NCwKIE5FVF9JUFY2X1JPVVRFX0dDX1RJTUVP
VVQ9NSwKIE5FVF9JUFY2X1JPVVRFX0dDX0lOVEVSVkFMPTYsCiBORVRfSVBWNl9ST1VURV9HQ19F
TEFTVElDSVRZPTcsCiBORVRfSVBWNl9ST1VURV9NVFVfRVhQSVJFUz04LAogTkVUX0lQVjZfUk9V
VEVfTUlOX0FEVk1TUz05LAogTkVUX0lQVjZfUk9VVEVfR0NfTUlOX0lOVEVSVkFMX01TPTEwCn07
CgplbnVtIHsKIE5FVF9JUFY2X0ZPUldBUkRJTkc9MSwKIE5FVF9JUFY2X0hPUF9MSU1JVD0yLAog
TkVUX0lQVjZfTVRVPTMsCiBORVRfSVBWNl9BQ0NFUFRfUkE9NCwKIE5FVF9JUFY2X0FDQ0VQVF9S
RURJUkVDVFM9NSwKIE5FVF9JUFY2X0FVVE9DT05GPTYsCiBORVRfSVBWNl9EQURfVFJBTlNNSVRT
PTcsCiBORVRfSVBWNl9SVFJfU09MSUNJVFM9OCwKIE5FVF9JUFY2X1JUUl9TT0xJQ0lUX0lOVEVS
VkFMPTksCiBORVRfSVBWNl9SVFJfU09MSUNJVF9ERUxBWT0xMCwKIE5FVF9JUFY2X1VTRV9URU1Q
QUREUj0xMSwKIE5FVF9JUFY2X1RFTVBfVkFMSURfTEZUPTEyLAogTkVUX0lQVjZfVEVNUF9QUkVG
RVJFRF9MRlQ9MTMsCiBORVRfSVBWNl9SRUdFTl9NQVhfUkVUUlk9MTQsCiBORVRfSVBWNl9NQVhf
REVTWU5DX0ZBQ1RPUj0xNSwKIE5FVF9JUFY2X01BWF9BRERSRVNTRVM9MTYsCiBORVRfSVBWNl9G
T1JDRV9NTERfVkVSU0lPTj0xNywKIE5FVF9JUFY2X0FDQ0VQVF9SQV9ERUZSVFI9MTgsCiBORVRf
SVBWNl9BQ0NFUFRfUkFfUElORk89MTksCiBORVRfSVBWNl9BQ0NFUFRfUkFfUlRSX1BSRUY9MjAs
CiBORVRfSVBWNl9SVFJfUFJPQkVfSU5URVJWQUw9MjEsCiBORVRfSVBWNl9BQ0NFUFRfUkFfUlRf
SU5GT19NQVhfUExFTj0yMiwKIE5FVF9JUFY2X1BST1hZX05EUD0yMywKIE5FVF9JUFY2X0FDQ0VQ
VF9TT1VSQ0VfUk9VVEU9MjUsCiBORVRfSVBWNl9BQ0NFUFRfUkFfRlJPTV9MT0NBTD0yNiwKIE5F
VF9JUFY2X0FDQ0VQVF9SQV9SVF9JTkZPX01JTl9QTEVOPTI3LAogX19ORVRfSVBWNl9NQVgKfTsK
CgplbnVtIHsKIE5FVF9JUFY2X0lDTVBfUkFURUxJTUlUID0gMSwKIE5FVF9JUFY2X0lDTVBfRUNI
T19JR05PUkVfQUxMID0gMgp9OwoKCmVudW0gewogTkVUX05FSUdIX01DQVNUX1NPTElDSVQ9MSwK
IE5FVF9ORUlHSF9VQ0FTVF9TT0xJQ0lUPTIsCiBORVRfTkVJR0hfQVBQX1NPTElDSVQ9MywKIE5F
VF9ORUlHSF9SRVRSQU5TX1RJTUU9NCwKIE5FVF9ORUlHSF9SRUFDSEFCTEVfVElNRT01LAogTkVU
X05FSUdIX0RFTEFZX1BST0JFX1RJTUU9NiwKIE5FVF9ORUlHSF9HQ19TVEFMRV9USU1FPTcsCiBO
RVRfTkVJR0hfVU5SRVNfUUxFTj04LAogTkVUX05FSUdIX1BST1hZX1FMRU49OSwKIE5FVF9ORUlH
SF9BTllDQVNUX0RFTEFZPTEwLAogTkVUX05FSUdIX1BST1hZX0RFTEFZPTExLAogTkVUX05FSUdI
X0xPQ0tUSU1FPTEyLAogTkVUX05FSUdIX0dDX0lOVEVSVkFMPTEzLAogTkVUX05FSUdIX0dDX1RI
UkVTSDE9MTQsCiBORVRfTkVJR0hfR0NfVEhSRVNIMj0xNSwKIE5FVF9ORUlHSF9HQ19USFJFU0gz
PTE2LAogTkVUX05FSUdIX1JFVFJBTlNfVElNRV9NUz0xNywKIE5FVF9ORUlHSF9SRUFDSEFCTEVf
VElNRV9NUz0xOCwKfTsKCgplbnVtIHsKIE5FVF9EQ0NQX0RFRkFVTFQ9MSwKfTsKCgplbnVtIHsK
IE5FVF9JUFhfUFBST1BfQlJPQURDQVNUSU5HPTEsCiBORVRfSVBYX0ZPUldBUkRJTkc9Mgp9OwoK
CmVudW0gewogTkVUX0xMQzI9MSwKIE5FVF9MTENfU1RBVElPTj0yLAp9OwoKCmVudW0gewogTkVU
X0xMQzJfVElNRU9VVD0xLAp9OwoKCmVudW0gewogTkVUX0xMQ19TVEFUSU9OX0FDS19USU1FT1VU
PTEsCn07CgoKZW51bSB7CiBORVRfTExDMl9BQ0tfVElNRU9VVD0xLAogTkVUX0xMQzJfUF9USU1F
T1VUPTIsCiBORVRfTExDMl9SRUpfVElNRU9VVD0zLAogTkVUX0xMQzJfQlVTWV9USU1FT1VUPTQs
Cn07CgoKZW51bSB7CiBORVRfQVRBTEtfQUFSUF9FWFBJUllfVElNRT0xLAogTkVUX0FUQUxLX0FB
UlBfVElDS19USU1FPTIsCiBORVRfQVRBTEtfQUFSUF9SRVRSQU5TTUlUX0xJTUlUPTMsCiBORVRf
QVRBTEtfQUFSUF9SRVNPTFZFX1RJTUU9NAp9OwoKCgplbnVtIHsKIE5FVF9ORVRST01fREVGQVVM
VF9QQVRIX1FVQUxJVFk9MSwKIE5FVF9ORVRST01fT0JTT0xFU0NFTkNFX0NPVU5UX0lOSVRJQUxJ
U0VSPTIsCiBORVRfTkVUUk9NX05FVFdPUktfVFRMX0lOSVRJQUxJU0VSPTMsCiBORVRfTkVUUk9N
X1RSQU5TUE9SVF9USU1FT1VUPTQsCiBORVRfTkVUUk9NX1RSQU5TUE9SVF9NQVhJTVVNX1RSSUVT
PTUsCiBORVRfTkVUUk9NX1RSQU5TUE9SVF9BQ0tOT1dMRURHRV9ERUxBWT02LAogTkVUX05FVFJP
TV9UUkFOU1BPUlRfQlVTWV9ERUxBWT03LAogTkVUX05FVFJPTV9UUkFOU1BPUlRfUkVRVUVTVEVE
X1dJTkRPV19TSVpFPTgsCiBORVRfTkVUUk9NX1RSQU5TUE9SVF9OT19BQ1RJVklUWV9USU1FT1VU
PTksCiBORVRfTkVUUk9NX1JPVVRJTkdfQ09OVFJPTD0xMCwKIE5FVF9ORVRST01fTElOS19GQUlM
U19DT1VOVD0xMSwKIE5FVF9ORVRST01fUkVTRVQ9MTIKfTsKCgplbnVtIHsKIE5FVF9BWDI1X0lQ
X0RFRkFVTFRfTU9ERT0xLAogTkVUX0FYMjVfREVGQVVMVF9NT0RFPTIsCiBORVRfQVgyNV9CQUNL
T0ZGX1RZUEU9MywKIE5FVF9BWDI1X0NPTk5FQ1RfTU9ERT00LAogTkVUX0FYMjVfU1RBTkRBUkRf
V0lORE9XPTUsCiBORVRfQVgyNV9FWFRFTkRFRF9XSU5ET1c9NiwKIE5FVF9BWDI1X1QxX1RJTUVP
VVQ9NywKIE5FVF9BWDI1X1QyX1RJTUVPVVQ9OCwKIE5FVF9BWDI1X1QzX1RJTUVPVVQ9OSwKIE5F
VF9BWDI1X0lETEVfVElNRU9VVD0xMCwKIE5FVF9BWDI1X04yPTExLAogTkVUX0FYMjVfUEFDTEVO
PTEyLAogTkVUX0FYMjVfUFJPVE9DT0w9MTMsCiBORVRfQVgyNV9EQU1BX1NMQVZFX1RJTUVPVVQ9
MTQKfTsKCgplbnVtIHsKIE5FVF9ST1NFX1JFU1RBUlRfUkVRVUVTVF9USU1FT1VUPTEsCiBORVRf
Uk9TRV9DQUxMX1JFUVVFU1RfVElNRU9VVD0yLAogTkVUX1JPU0VfUkVTRVRfUkVRVUVTVF9USU1F
T1VUPTMsCiBORVRfUk9TRV9DTEVBUl9SRVFVRVNUX1RJTUVPVVQ9NCwKIE5FVF9ST1NFX0FDS19I
T0xEX0JBQ0tfVElNRU9VVD01LAogTkVUX1JPU0VfUk9VVElOR19DT05UUk9MPTYsCiBORVRfUk9T
RV9MSU5LX0ZBSUxfVElNRU9VVD03LAogTkVUX1JPU0VfTUFYX1ZDUz04LAogTkVUX1JPU0VfV0lO
RE9XX1NJWkU9OSwKIE5FVF9ST1NFX05PX0FDVElWSVRZX1RJTUVPVVQ9MTAKfTsKCgplbnVtIHsK
IE5FVF9YMjVfUkVTVEFSVF9SRVFVRVNUX1RJTUVPVVQ9MSwKIE5FVF9YMjVfQ0FMTF9SRVFVRVNU
X1RJTUVPVVQ9MiwKIE5FVF9YMjVfUkVTRVRfUkVRVUVTVF9USU1FT1VUPTMsCiBORVRfWDI1X0NM
RUFSX1JFUVVFU1RfVElNRU9VVD00LAogTkVUX1gyNV9BQ0tfSE9MRF9CQUNLX1RJTUVPVVQ9NSwK
IE5FVF9YMjVfRk9SV0FSRD02Cn07CgoKZW51bQp7CiBORVRfVFJfUklGX1RJTUVPVVQ9MQp9OwoK
CmVudW0gewogTkVUX0RFQ05FVF9OT0RFX1RZUEUgPSAxLAogTkVUX0RFQ05FVF9OT0RFX0FERFJF
U1MgPSAyLAogTkVUX0RFQ05FVF9OT0RFX05BTUUgPSAzLAogTkVUX0RFQ05FVF9ERUZBVUxUX0RF
VklDRSA9IDQsCiBORVRfREVDTkVUX1RJTUVfV0FJVCA9IDUsCiBORVRfREVDTkVUX0ROX0NPVU5U
ID0gNiwKIE5FVF9ERUNORVRfRElfQ09VTlQgPSA3LAogTkVUX0RFQ05FVF9EUl9DT1VOVCA9IDgs
CiBORVRfREVDTkVUX0RTVF9HQ19JTlRFUlZBTCA9IDksCiBORVRfREVDTkVUX0NPTkYgPSAxMCwK
IE5FVF9ERUNORVRfTk9fRkNfTUFYX0NXTkQgPSAxMSwKIE5FVF9ERUNORVRfTUVNID0gMTIsCiBO
RVRfREVDTkVUX1JNRU0gPSAxMywKIE5FVF9ERUNORVRfV01FTSA9IDE0LAogTkVUX0RFQ05FVF9E
RUJVR19MRVZFTCA9IDI1NQp9OwoKCmVudW0gewogTkVUX0RFQ05FVF9DT05GX0xPT1BCQUNLID0g
LTIsCiBORVRfREVDTkVUX0NPTkZfRERDTVAgPSAtMywKIE5FVF9ERUNORVRfQ09ORl9QUFAgPSAt
NCwKIE5FVF9ERUNORVRfQ09ORl9YMjUgPSAtNSwKIE5FVF9ERUNORVRfQ09ORl9HUkUgPSAtNiwK
IE5FVF9ERUNORVRfQ09ORl9FVEhFUiA9IC03CgoKfTsKCgplbnVtIHsKIE5FVF9ERUNORVRfQ09O
Rl9ERVZfUFJJT1JJVFkgPSAxLAogTkVUX0RFQ05FVF9DT05GX0RFVl9UMSA9IDIsCiBORVRfREVD
TkVUX0NPTkZfREVWX1QyID0gMywKIE5FVF9ERUNORVRfQ09ORl9ERVZfVDMgPSA0LAogTkVUX0RF
Q05FVF9DT05GX0RFVl9GT1JXQVJESU5HID0gNSwKIE5FVF9ERUNORVRfQ09ORl9ERVZfQkxLU0la
RSA9IDYsCiBORVRfREVDTkVUX0NPTkZfREVWX1NUQVRFID0gNwp9OwoKCmVudW0gewogTkVUX1ND
VFBfUlRPX0lOSVRJQUwgPSAxLAogTkVUX1NDVFBfUlRPX01JTiA9IDIsCiBORVRfU0NUUF9SVE9f
TUFYID0gMywKIE5FVF9TQ1RQX1JUT19BTFBIQSA9IDQsCiBORVRfU0NUUF9SVE9fQkVUQSA9IDUs
CiBORVRfU0NUUF9WQUxJRF9DT09LSUVfTElGRSA9IDYsCiBORVRfU0NUUF9BU1NPQ0lBVElPTl9N
QVhfUkVUUkFOUyA9IDcsCiBORVRfU0NUUF9QQVRIX01BWF9SRVRSQU5TID0gOCwKIE5FVF9TQ1RQ
X01BWF9JTklUX1JFVFJBTlNNSVRTID0gOSwKIE5FVF9TQ1RQX0hCX0lOVEVSVkFMID0gMTAsCiBO
RVRfU0NUUF9QUkVTRVJWRV9FTkFCTEUgPSAxMSwKIE5FVF9TQ1RQX01BWF9CVVJTVCA9IDEyLAog
TkVUX1NDVFBfQURESVBfRU5BQkxFID0gMTMsCiBORVRfU0NUUF9QUlNDVFBfRU5BQkxFID0gMTQs
CiBORVRfU0NUUF9TTkRCVUZfUE9MSUNZID0gMTUsCiBORVRfU0NUUF9TQUNLX1RJTUVPVVQgPSAx
NiwKIE5FVF9TQ1RQX1JDVkJVRl9QT0xJQ1kgPSAxNywKfTsKCgplbnVtIHsKIE5FVF9CUklER0Vf
TkZfQ0FMTF9BUlBUQUJMRVMgPSAxLAogTkVUX0JSSURHRV9ORl9DQUxMX0lQVEFCTEVTID0gMiwK
IE5FVF9CUklER0VfTkZfQ0FMTF9JUDZUQUJMRVMgPSAzLAogTkVUX0JSSURHRV9ORl9GSUxURVJf
VkxBTl9UQUdHRUQgPSA0LAogTkVUX0JSSURHRV9ORl9GSUxURVJfUFBQT0VfVEFHR0VEID0gNSwK
fTsKCgoKZW51bQp7CiBGU19OUklOT0RFPTEsCiBGU19TVEFUSU5PREU9MiwKIEZTX01BWElOT0RF
PTMsCiBGU19OUkRRVU9UPTQsCiBGU19NQVhEUVVPVD01LAogRlNfTlJGSUxFPTYsCiBGU19NQVhG
SUxFPTcsCiBGU19ERU5UUlk9OCwKIEZTX05SU1VQRVI9OSwKIEZTX01BWFNVUEVSPTEwLAogRlNf
T1ZFUkZMT1dVSUQ9MTEsCiBGU19PVkVSRkxPV0dJRD0xMiwKIEZTX0xFQVNFUz0xMywKIEZTX0RJ
Ul9OT1RJRlk9MTQsCiBGU19MRUFTRV9USU1FPTE1LAogRlNfRFFTVEFUUz0xNiwKIEZTX1hGUz0x
NywKIEZTX0FJT19OUj0xOCwKIEZTX0FJT19NQVhfTlI9MTksCiBGU19JTk9USUZZPTIwLAogRlNf
T0NGUzI9OTg4LAp9OwoKCmVudW0gewogRlNfRFFfTE9PS1VQUyA9IDEsCiBGU19EUV9EUk9QUyA9
IDIsCiBGU19EUV9SRUFEUyA9IDMsCiBGU19EUV9XUklURVMgPSA0LAogRlNfRFFfQ0FDSEVfSElU
UyA9IDUsCiBGU19EUV9BTExPQ0FURUQgPSA2LAogRlNfRFFfRlJFRSA9IDcsCiBGU19EUV9TWU5D
UyA9IDgsCiBGU19EUV9XQVJOSU5HUyA9IDksCn07CgoKCgplbnVtIHsKIERFVl9DRFJPTT0xLAog
REVWX0hXTU9OPTIsCiBERVZfUEFSUE9SVD0zLAogREVWX1JBSUQ9NCwKIERFVl9NQUNfSElEPTUs
CiBERVZfU0NTST02LAogREVWX0lQTUk9NywKfTsKCgplbnVtIHsKIERFVl9DRFJPTV9JTkZPPTEs
CiBERVZfQ0RST01fQVVUT0NMT1NFPTIsCiBERVZfQ0RST01fQVVUT0VKRUNUPTMsCiBERVZfQ0RS
T01fREVCVUc9NCwKIERFVl9DRFJPTV9MT0NLPTUsCiBERVZfQ0RST01fQ0hFQ0tfTUVESUE9Ngp9
OwoKCmVudW0gewogREVWX1BBUlBPUlRfREVGQVVMVD0tMwp9OwoKCmVudW0gewogREVWX1JBSURf
U1BFRURfTElNSVRfTUlOPTEsCiBERVZfUkFJRF9TUEVFRF9MSU1JVF9NQVg9Mgp9OwoKCmVudW0g
ewogREVWX1BBUlBPUlRfREVGQVVMVF9USU1FU0xJQ0U9MSwKIERFVl9QQVJQT1JUX0RFRkFVTFRf
U1BJTlRJTUU9Mgp9OwoKCmVudW0gewogREVWX1BBUlBPUlRfU1BJTlRJTUU9MSwKIERFVl9QQVJQ
T1JUX0JBU0VfQUREUj0yLAogREVWX1BBUlBPUlRfSVJRPTMsCiBERVZfUEFSUE9SVF9ETUE9NCwK
IERFVl9QQVJQT1JUX01PREVTPTUsCiBERVZfUEFSUE9SVF9ERVZJQ0VTPTYsCiBERVZfUEFSUE9S
VF9BVVRPUFJPQkU9MTYKfTsKCgplbnVtIHsKIERFVl9QQVJQT1JUX0RFVklDRVNfQUNUSVZFPS0z
LAp9OwoKCmVudW0gewogREVWX1BBUlBPUlRfREVWSUNFX1RJTUVTTElDRT0xLAp9OwoKCmVudW0g
ewogREVWX01BQ19ISURfS0VZQk9BUkRfU0VORFNfTElOVVhfS0VZQ09ERVM9MSwKIERFVl9NQUNf
SElEX0tFWUJPQVJEX0xPQ0tfS0VZQ09ERVM9MiwKIERFVl9NQUNfSElEX01PVVNFX0JVVFRPTl9F
TVVMQVRJT049MywKIERFVl9NQUNfSElEX01PVVNFX0JVVFRPTjJfS0VZQ09ERT00LAogREVWX01B
Q19ISURfTU9VU0VfQlVUVE9OM19LRVlDT0RFPTUsCiBERVZfTUFDX0hJRF9BREJfTU9VU0VfU0VO
RFNfS0VZQ09ERVM9Ngp9OwoKCmVudW0gewogREVWX1NDU0lfTE9HR0lOR19MRVZFTD0xLAp9OwoK
CmVudW0gewogREVWX0lQTUlfUE9XRVJPRkZfUE9XRVJDWUNMRT0xLAp9OwoKCmVudW0KewogQUJJ
X0RFRkhBTkRMRVJfQ09GRj0xLAogQUJJX0RFRkhBTkRMRVJfRUxGPTIsCiBBQklfREVGSEFORExF
Ul9MQ0FMTDc9MywKIEFCSV9ERUZIQU5ETEVSX0xJQkNTTz00LAogQUJJX1RSQUNFPTUsCiBBQklf
RkFLRV9VVFNOQU1FPTYsCn07CiMgMzEgIi4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIgMgoKCnN0
cnVjdCBjb21wbGV0aW9uOwpzdHJ1Y3QgY3RsX3RhYmxlOwpzdHJ1Y3QgbnNwcm94eTsKc3RydWN0
IGN0bF90YWJsZV9yb290OwpzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlcjsKc3RydWN0IGN0bF9kaXI7
CgoKCgoKCmV4dGVybiBjb25zdCBpbnQgc3lzY3RsX3ZhbHNbXTsKCnR5cGVkZWYgaW50IHByb2Nf
aGFuZGxlciAoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAgICAgdm9pZCAqYnVm
ZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CgpleHRlcm4gaW50IHByb2NfZG9zdHJp
bmcoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCiAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3Qg
Kik7CmV4dGVybiBpbnQgcHJvY19kb2ludHZlYyhzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKICAg
IHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKZXh0ZXJuIGludCBwcm9jX2RvdWludHZlYyhz
dHJ1Y3QgY3RsX3RhYmxlICosIGludCwKICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsK
ZXh0ZXJuIGludCBwcm9jX2RvaW50dmVjX21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwK
ICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKZXh0ZXJuIGludCBwcm9jX2RvdWludHZl
Y19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAgICB2b2lkICpi
dWZmZXIsIHNpemVfdCAqbGVucCwKICAgICBsb2ZmX3QgKnBwb3MpOwpleHRlcm4gaW50IHByb2Nf
ZG9pbnR2ZWNfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKICAgICB2b2lkICosIHNp
emVfdCAqLCBsb2ZmX3QgKik7CmV4dGVybiBpbnQgcHJvY19kb2ludHZlY191c2VyaHpfamlmZmll
cyhzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKICAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3Qg
Kik7CmV4dGVybiBpbnQgcHJvY19kb2ludHZlY19tc19qaWZmaWVzKHN0cnVjdCBjdGxfdGFibGUg
KiwgaW50LAogICAgICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKZXh0ZXJuIGludCBw
cm9jX2RvdWxvbmd2ZWNfbWlubWF4KHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAogICAgICB2b2lk
ICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmV4dGVybiBpbnQgcHJvY19kb3Vsb25ndmVjX21zX2pp
ZmZpZXNfbWlubWF4KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQsCiAgICAgICAgICB2b2lk
ICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmV4dGVybiBpbnQgcHJvY19kb19sYXJnZV9iaXRtYXAo
c3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCiAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7
CmV4dGVybiBpbnQgcHJvY19kb19zdGF0aWNfa2V5KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp
bnQgd3JpdGUsCiAgICAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAogICAgICAgICBs
b2ZmX3QgKnBwb3MpOwojIDEwNSAiLi9pbmNsdWRlL2xpbnV4L3N5c2N0bC5oIgpzdHJ1Y3QgY3Rs
X3RhYmxlX3BvbGwgewogYXRvbWljX3QgZXZlbnQ7CiB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0Owp9
OwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCAqcHJvY19zeXNfcG9sbF9ldmVudChzdHJ1Y3QgY3RsX3RhYmxlX3BvbGwgKnBvbGwp
CnsKIHJldHVybiAodm9pZCAqKSh1bnNpZ25lZCBsb25nKWF0b21pY19yZWFkKCZwb2xsLT5ldmVu
dCk7Cn0KIyAxMjMgIi4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIKc3RydWN0IGN0bF90YWJsZSB7
CiBjb25zdCBjaGFyICpwcm9jbmFtZTsKIHZvaWQgKmRhdGE7CiBpbnQgbWF4bGVuOwogdW1vZGVf
dCBtb2RlOwogc3RydWN0IGN0bF90YWJsZSAqY2hpbGQ7CiBwcm9jX2hhbmRsZXIgKnByb2NfaGFu
ZGxlcjsKIHN0cnVjdCBjdGxfdGFibGVfcG9sbCAqcG9sbDsKIHZvaWQgKmV4dHJhMTsKIHZvaWQg
KmV4dHJhMjsKfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CgpzdHJ1Y3Qg
Y3RsX25vZGUgewogc3RydWN0IHJiX25vZGUgbm9kZTsKIHN0cnVjdCBjdGxfdGFibGVfaGVhZGVy
ICpoZWFkZXI7Cn07CgoKCnN0cnVjdCBjdGxfdGFibGVfaGVhZGVyIHsKIHVuaW9uIHsKICBzdHJ1
Y3QgewogICBzdHJ1Y3QgY3RsX3RhYmxlICpjdGxfdGFibGU7CiAgIGludCB1c2VkOwogICBpbnQg
Y291bnQ7CiAgIGludCBucmVnOwogIH07CiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgcmN1OwogfTsK
IHN0cnVjdCBjb21wbGV0aW9uICp1bnJlZ2lzdGVyaW5nOwogc3RydWN0IGN0bF90YWJsZSAqY3Rs
X3RhYmxlX2FyZzsKIHN0cnVjdCBjdGxfdGFibGVfcm9vdCAqcm9vdDsKIHN0cnVjdCBjdGxfdGFi
bGVfc2V0ICpzZXQ7CiBzdHJ1Y3QgY3RsX2RpciAqcGFyZW50Owogc3RydWN0IGN0bF9ub2RlICpu
b2RlOwogc3RydWN0IGhsaXN0X2hlYWQgaW5vZGVzOwp9OwoKc3RydWN0IGN0bF9kaXIgewoKIHN0
cnVjdCBjdGxfdGFibGVfaGVhZGVyIGhlYWRlcjsKIHN0cnVjdCByYl9yb290IHJvb3Q7Cn07Cgpz
dHJ1Y3QgY3RsX3RhYmxlX3NldCB7CiBpbnQgKCppc19zZWVuKShzdHJ1Y3QgY3RsX3RhYmxlX3Nl
dCAqKTsKIHN0cnVjdCBjdGxfZGlyIGRpcjsKfTsKCnN0cnVjdCBjdGxfdGFibGVfcm9vdCB7CiBz
dHJ1Y3QgY3RsX3RhYmxlX3NldCBkZWZhdWx0X3NldDsKIHN0cnVjdCBjdGxfdGFibGVfc2V0ICoo
Kmxvb2t1cCkoc3RydWN0IGN0bF90YWJsZV9yb290ICpyb290KTsKIHZvaWQgKCpzZXRfb3duZXJz
aGlwKShzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlciAqaGVhZCwKICAgICAgICAgc3RydWN0IGN0bF90
YWJsZSAqdGFibGUsCiAgICAgICAgIGt1aWRfdCAqdWlkLCBrZ2lkX3QgKmdpZCk7CiBpbnQgKCpw
ZXJtaXNzaW9ucykoc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKmhlYWQsIHN0cnVjdCBjdGxfdGFi
bGUgKnRhYmxlKTsKfTsKCgpzdHJ1Y3QgY3RsX3BhdGggewogY29uc3QgY2hhciAqcHJvY25hbWU7
Cn07CgoKCnZvaWQgcHJvY19zeXNfcG9sbF9ub3RpZnkoc3RydWN0IGN0bF90YWJsZV9wb2xsICpw
b2xsKTsKCmV4dGVybiB2b2lkIHNldHVwX3N5c2N0bF9zZXQoc3RydWN0IGN0bF90YWJsZV9zZXQg
KnAsCiBzdHJ1Y3QgY3RsX3RhYmxlX3Jvb3QgKnJvb3QsCiBpbnQgKCppc19zZWVuKShzdHJ1Y3Qg
Y3RsX3RhYmxlX3NldCAqKSk7CmV4dGVybiB2b2lkIHJldGlyZV9zeXNjdGxfc2V0KHN0cnVjdCBj
dGxfdGFibGVfc2V0ICpzZXQpOwoKc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKl9fcmVnaXN0ZXJf
c3lzY3RsX3RhYmxlKAogc3RydWN0IGN0bF90YWJsZV9zZXQgKnNldCwKIGNvbnN0IGNoYXIgKnBh
dGgsIHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlKTsKc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKl9f
cmVnaXN0ZXJfc3lzY3RsX3BhdGhzKAogc3RydWN0IGN0bF90YWJsZV9zZXQgKnNldCwKIGNvbnN0
IHN0cnVjdCBjdGxfcGF0aCAqcGF0aCwgc3RydWN0IGN0bF90YWJsZSAqdGFibGUpOwpzdHJ1Y3Qg
Y3RsX3RhYmxlX2hlYWRlciAqcmVnaXN0ZXJfc3lzY3RsKGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVj
dCBjdGxfdGFibGUgKnRhYmxlKTsKc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKnJlZ2lzdGVyX3N5
c2N0bF90YWJsZShzdHJ1Y3QgY3RsX3RhYmxlICogdGFibGUpOwpzdHJ1Y3QgY3RsX3RhYmxlX2hl
YWRlciAqcmVnaXN0ZXJfc3lzY3RsX3BhdGhzKGNvbnN0IHN0cnVjdCBjdGxfcGF0aCAqcGF0aCwK
ICAgICAgc3RydWN0IGN0bF90YWJsZSAqdGFibGUpOwoKdm9pZCB1bnJlZ2lzdGVyX3N5c2N0bF90
YWJsZShzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlciAqIHRhYmxlKTsKCmV4dGVybiBpbnQgc3lzY3Rs
X2luaXQodm9pZCk7CgpleHRlcm4gc3RydWN0IGN0bF90YWJsZSBzeXNjdGxfbW91bnRfcG9pbnRb
XTsKIyAyNDEgIi4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIKaW50IHN5c2N0bF9tYXhfdGhyZWFk
cyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogICAgICAgICB2b2lkICpidWZm
ZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKIyAxOCAiLi9pbmNsdWRlL2xpbnV4L2tl
eS5oIiAyCgoKIyAxICIuL2luY2x1ZGUvbGludXgvYXNzb2NfYXJyYXkuaCIgMQojIDIyICIuL2lu
Y2x1ZGUvbGludXgvYXNzb2NfYXJyYXkuaCIKc3RydWN0IGFzc29jX2FycmF5IHsKIHN0cnVjdCBh
c3NvY19hcnJheV9wdHIgKnJvb3Q7CiB1bnNpZ25lZCBsb25nIG5yX2xlYXZlc19vbl90cmVlOwp9
OwoKCgoKc3RydWN0IGFzc29jX2FycmF5X29wcyB7CgogdW5zaWduZWQgbG9uZyAoKmdldF9rZXlf
Y2h1bmspKGNvbnN0IHZvaWQgKmluZGV4X2tleSwgaW50IGxldmVsKTsKCgogdW5zaWduZWQgbG9u
ZyAoKmdldF9vYmplY3Rfa2V5X2NodW5rKShjb25zdCB2b2lkICpvYmplY3QsIGludCBsZXZlbCk7
CgoKIGJvb2wgKCpjb21wYXJlX29iamVjdCkoY29uc3Qgdm9pZCAqb2JqZWN0LCBjb25zdCB2b2lk
ICppbmRleF9rZXkpOwoKCgoKIGludCAoKmRpZmZfb2JqZWN0cykoY29uc3Qgdm9pZCAqb2JqZWN0
LCBjb25zdCB2b2lkICppbmRleF9rZXkpOwoKCiB2b2lkICgqZnJlZV9vYmplY3QpKHZvaWQgKm9i
amVjdCk7Cn07CgoKCgpzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdDsKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXNzb2NfYXJyYXlf
aW5pdChzdHJ1Y3QgYXNzb2NfYXJyYXkgKmFycmF5KQp7CiBhcnJheS0+cm9vdCA9ICgodm9pZCAq
KTApOwogYXJyYXktPm5yX2xlYXZlc19vbl90cmVlID0gMDsKfQoKZXh0ZXJuIGludCBhc3NvY19h
cnJheV9pdGVyYXRlKGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheSAqYXJyYXksCiAgICAgICAgICBp
bnQgKCppdGVyYXRvcikoY29uc3Qgdm9pZCAqb2JqZWN0LAogICAgICAgICAgICB2b2lkICppdGVy
YXRvcl9kYXRhKSwKICAgICAgICAgIHZvaWQgKml0ZXJhdG9yX2RhdGEpOwpleHRlcm4gdm9pZCAq
YXNzb2NfYXJyYXlfZmluZChjb25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXkgKmFycmF5LAogICAgICAg
ICBjb25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXlfb3BzICpvcHMsCiAgICAgICAgIGNvbnN0IHZvaWQg
KmluZGV4X2tleSk7CmV4dGVybiB2b2lkIGFzc29jX2FycmF5X2Rlc3Ryb3koc3RydWN0IGFzc29j
X2FycmF5ICphcnJheSwKICAgIGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheV9vcHMgKm9wcyk7CmV4
dGVybiBzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdCAqYXNzb2NfYXJyYXlfaW5zZXJ0KHN0cnVjdCBh
c3NvY19hcnJheSAqYXJyYXksCiAgICAgICAgIGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheV9vcHMg
Km9wcywKICAgICAgICAgY29uc3Qgdm9pZCAqaW5kZXhfa2V5LAogICAgICAgICB2b2lkICpvYmpl
Y3QpOwpleHRlcm4gdm9pZCBhc3NvY19hcnJheV9pbnNlcnRfc2V0X29iamVjdChzdHJ1Y3QgYXNz
b2NfYXJyYXlfZWRpdCAqZWRpdCwKICAgICAgIHZvaWQgKm9iamVjdCk7CmV4dGVybiBzdHJ1Y3Qg
YXNzb2NfYXJyYXlfZWRpdCAqYXNzb2NfYXJyYXlfZGVsZXRlKHN0cnVjdCBhc3NvY19hcnJheSAq
YXJyYXksCiAgICAgICAgIGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheV9vcHMgKm9wcywKICAgICAg
ICAgY29uc3Qgdm9pZCAqaW5kZXhfa2V5KTsKZXh0ZXJuIHN0cnVjdCBhc3NvY19hcnJheV9lZGl0
ICphc3NvY19hcnJheV9jbGVhcihzdHJ1Y3QgYXNzb2NfYXJyYXkgKmFycmF5LAogICAgICAgIGNv
bnN0IHN0cnVjdCBhc3NvY19hcnJheV9vcHMgKm9wcyk7CmV4dGVybiB2b2lkIGFzc29jX2FycmF5
X2FwcGx5X2VkaXQoc3RydWN0IGFzc29jX2FycmF5X2VkaXQgKmVkaXQpOwpleHRlcm4gdm9pZCBh
c3NvY19hcnJheV9jYW5jZWxfZWRpdChzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdCAqZWRpdCk7CmV4
dGVybiBpbnQgYXNzb2NfYXJyYXlfZ2Moc3RydWN0IGFzc29jX2FycmF5ICphcnJheSwKICAgICBj
b25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXlfb3BzICpvcHMsCiAgICAgYm9vbCAoKml0ZXJhdG9yKSh2
b2lkICpvYmplY3QsIHZvaWQgKml0ZXJhdG9yX2RhdGEpLAogICAgIHZvaWQgKml0ZXJhdG9yX2Rh
dGEpOwojIDIxICIuL2luY2x1ZGUvbGludXgva2V5LmgiIDIKCgoKCgoKCnR5cGVkZWYgaW50MzJf
dCBrZXlfc2VyaWFsX3Q7CgoKdHlwZWRlZiB1aW50MzJfdCBrZXlfcGVybV90OwoKc3RydWN0IGtl
eTsKc3RydWN0IG5ldDsKIyA3NCAiLi9pbmNsdWRlL2xpbnV4L2tleS5oIgpzdHJ1Y3Qgc2VxX2Zp
bGU7CnN0cnVjdCB1c2VyX3N0cnVjdDsKc3RydWN0IHNpZ25hbF9zdHJ1Y3Q7CnN0cnVjdCBjcmVk
OwoKc3RydWN0IGtleV90eXBlOwpzdHJ1Y3Qga2V5X293bmVyOwpzdHJ1Y3Qga2V5X3RhZzsKc3Ry
dWN0IGtleXJpbmdfbGlzdDsKc3RydWN0IGtleXJpbmdfbmFtZTsKCnN0cnVjdCBrZXlfdGFnIHsK
IHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKIHJlZmNvdW50X3QgdXNhZ2U7CiBib29sIHJlbW92
ZWQ7Cn07CgpzdHJ1Y3Qga2V5cmluZ19pbmRleF9rZXkgewoKIHVuc2lnbmVkIGxvbmcgaGFzaDsK
IHVuaW9uIHsKICBzdHJ1Y3QgewoKICAgdTE2IGRlc2NfbGVuOwogICBjaGFyIGRlc2Nbc2l6ZW9m
KGxvbmcpIC0gMl07CgoKCgogIH07CiAgdW5zaWduZWQgbG9uZyB4OwogfTsKIHN0cnVjdCBrZXlf
dHlwZSAqdHlwZTsKIHN0cnVjdCBrZXlfdGFnICpkb21haW5fdGFnOwogY29uc3QgY2hhciAqZGVz
Y3JpcHRpb247Cn07Cgp1bmlvbiBrZXlfcGF5bG9hZCB7CiB2b2lkICpyY3VfZGF0YTA7CiB2b2lk
ICpkYXRhWzRdOwp9OwojIDEzMCAiLi9pbmNsdWRlL2xpbnV4L2tleS5oIgp0eXBlZGVmIHN0cnVj
dCBfX2tleV9yZWZlcmVuY2Vfd2l0aF9hdHRyaWJ1dGVzICprZXlfcmVmX3Q7CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrZXlfcmVmX3Qg
bWFrZV9rZXlfcmVmKGNvbnN0IHN0cnVjdCBrZXkgKmtleSwKICAgICAgICAgYm9vbCBwb3NzZXNz
aW9uKQp7CiByZXR1cm4gKGtleV9yZWZfdCkgKCh1bnNpZ25lZCBsb25nKSBrZXkgfCBwb3NzZXNz
aW9uKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgc3RydWN0IGtleSAqa2V5X3JlZl90b19wdHIoY29uc3Qga2V5X3JlZl90IGtleV9y
ZWYpCnsKIHJldHVybiAoc3RydWN0IGtleSAqKSAoKHVuc2lnbmVkIGxvbmcpIGtleV9yZWYgJiB+
MVVMKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBpc19rZXlfcG9zc2Vzc2VkKGNvbnN0IGtleV9yZWZfdCBrZXlfcmVmKQp7
CiByZXR1cm4gKHVuc2lnbmVkIGxvbmcpIGtleV9yZWYgJiAxVUw7Cn0KCnR5cGVkZWYgaW50ICgq
a2V5X3Jlc3RyaWN0X2xpbmtfZnVuY190KShzdHJ1Y3Qga2V5ICpkZXN0X2tleXJpbmcsCiAgICAg
Y29uc3Qgc3RydWN0IGtleV90eXBlICp0eXBlLAogICAgIGNvbnN0IHVuaW9uIGtleV9wYXlsb2Fk
ICpwYXlsb2FkLAogICAgIHN0cnVjdCBrZXkgKnJlc3RyaWN0aW9uX2tleSk7CgpzdHJ1Y3Qga2V5
X3Jlc3RyaWN0aW9uIHsKIGtleV9yZXN0cmljdF9saW5rX2Z1bmNfdCBjaGVjazsKIHN0cnVjdCBr
ZXkgKmtleTsKIHN0cnVjdCBrZXlfdHlwZSAqa2V5dHlwZTsKfTsKCmVudW0ga2V5X3N0YXRlIHsK
IEtFWV9JU19VTklOU1RBTlRJQVRFRCwKIEtFWV9JU19QT1NJVElWRSwKfTsKIyAxNzIgIi4vaW5j
bHVkZS9saW51eC9rZXkuaCIKc3RydWN0IGtleSB7CiByZWZjb3VudF90IHVzYWdlOwoga2V5X3Nl
cmlhbF90IHNlcmlhbDsKIHVuaW9uIHsKICBzdHJ1Y3QgbGlzdF9oZWFkIGdyYXZleWFyZF9saW5r
OwogIHN0cnVjdCByYl9ub2RlIHNlcmlhbF9ub2RlOwogfTsKIHN0cnVjdCByd19zZW1hcGhvcmUg
c2VtOwogc3RydWN0IGtleV91c2VyICp1c2VyOwogdm9pZCAqc2VjdXJpdHk7CiB1bmlvbiB7CiAg
dGltZTY0X3QgZXhwaXJ5OwogIHRpbWU2NF90IHJldm9rZWRfYXQ7CiB9OwogdGltZTY0X3QgbGFz
dF91c2VkX2F0Owoga3VpZF90IHVpZDsKIGtnaWRfdCBnaWQ7CiBrZXlfcGVybV90IHBlcm07CiB1
bnNpZ25lZCBzaG9ydCBxdW90YWxlbjsKIHVuc2lnbmVkIHNob3J0IGRhdGFsZW47CgoKCiBzaG9y
dCBzdGF0ZTsKCgoKCgoKIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiMgMjE5ICIuL2luY2x1ZGUvbGlu
dXgva2V5LmgiCiB1bmlvbiB7CiAgc3RydWN0IGtleXJpbmdfaW5kZXhfa2V5IGluZGV4X2tleTsK
ICBzdHJ1Y3QgewogICB1bnNpZ25lZCBsb25nIGhhc2g7CiAgIHVuc2lnbmVkIGxvbmcgbGVuX2Rl
c2M7CiAgIHN0cnVjdCBrZXlfdHlwZSAqdHlwZTsKICAgc3RydWN0IGtleV90YWcgKmRvbWFpbl90
YWc7CiAgIGNoYXIgKmRlc2NyaXB0aW9uOwogIH07CiB9OwoKCgoKCiB1bmlvbiB7CiAgdW5pb24g
a2V5X3BheWxvYWQgcGF5bG9hZDsKICBzdHJ1Y3QgewoKICAgc3RydWN0IGxpc3RfaGVhZCBuYW1l
X2xpbms7CiAgIHN0cnVjdCBhc3NvY19hcnJheSBrZXlzOwogIH07CiB9OwojIDI1NCAiLi9pbmNs
dWRlL2xpbnV4L2tleS5oIgogc3RydWN0IGtleV9yZXN0cmljdGlvbiAqcmVzdHJpY3RfbGluazsK
fTsKCmV4dGVybiBzdHJ1Y3Qga2V5ICprZXlfYWxsb2Moc3RydWN0IGtleV90eXBlICp0eXBlLAog
ICAgICAgIGNvbnN0IGNoYXIgKmRlc2MsCiAgICAgICAga3VpZF90IHVpZCwga2dpZF90IGdpZCwK
ICAgICAgICBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwKICAgICAgICBrZXlfcGVybV90IHBlcm0s
CiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncywKICAgICAgICBzdHJ1Y3Qga2V5X3Jlc3RyaWN0
aW9uICpyZXN0cmljdF9saW5rKTsKIyAyNzMgIi4vaW5jbHVkZS9saW51eC9rZXkuaCIKZXh0ZXJu
IHZvaWQga2V5X3Jldm9rZShzdHJ1Y3Qga2V5ICprZXkpOwpleHRlcm4gdm9pZCBrZXlfaW52YWxp
ZGF0ZShzdHJ1Y3Qga2V5ICprZXkpOwpleHRlcm4gdm9pZCBrZXlfcHV0KHN0cnVjdCBrZXkgKmtl
eSk7CmV4dGVybiBib29sIGtleV9wdXRfdGFnKHN0cnVjdCBrZXlfdGFnICp0YWcpOwpleHRlcm4g
dm9pZCBrZXlfcmVtb3ZlX2RvbWFpbihzdHJ1Y3Qga2V5X3RhZyAqZG9tYWluX3RhZyk7CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3Qga2V5ICpfX2tleV9nZXQoc3RydWN0IGtleSAqa2V5KQp7CiByZWZjb3VudF9pbmMoJmtleS0+
dXNhZ2UpOwogcmV0dXJuIGtleTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtleSAqa2V5X2dldChzdHJ1Y3Qga2V5ICpr
ZXkpCnsKIHJldHVybiBrZXkgPyBfX2tleV9nZXQoa2V5KSA6IGtleTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrZXlfcmVm
X3B1dChrZXlfcmVmX3Qga2V5X3JlZikKewoga2V5X3B1dChrZXlfcmVmX3RvX3B0cihrZXlfcmVm
KSk7Cn0KCmV4dGVybiBzdHJ1Y3Qga2V5ICpyZXF1ZXN0X2tleV90YWcoc3RydWN0IGtleV90eXBl
ICp0eXBlLAogICAgICAgY29uc3QgY2hhciAqZGVzY3JpcHRpb24sCiAgICAgICBzdHJ1Y3Qga2V5
X3RhZyAqZG9tYWluX3RhZywKICAgICAgIGNvbnN0IGNoYXIgKmNhbGxvdXRfaW5mbyk7CgpleHRl
cm4gc3RydWN0IGtleSAqcmVxdWVzdF9rZXlfcmN1KHN0cnVjdCBrZXlfdHlwZSAqdHlwZSwKICAg
ICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uLAogICAgICAgc3RydWN0IGtleV90YWcgKmRvbWFp
bl90YWcpOwoKZXh0ZXJuIHN0cnVjdCBrZXkgKnJlcXVlc3Rfa2V5X3dpdGhfYXV4ZGF0YShzdHJ1
Y3Qga2V5X3R5cGUgKnR5cGUsCiAgICAgICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uLAogICAg
ICAgICBzdHJ1Y3Qga2V5X3RhZyAqZG9tYWluX3RhZywKICAgICAgICAgY29uc3Qgdm9pZCAqY2Fs
bG91dF9pbmZvLAogICAgICAgICBzaXplX3QgY2FsbG91dF9sZW4sCiAgICAgICAgIHZvaWQgKmF1
eCk7CiMgMzE5ICIuL2luY2x1ZGUvbGludXgva2V5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrZXkgKnJlcXVlc3Rfa2V5
KHN0cnVjdCBrZXlfdHlwZSAqdHlwZSwKICAgICAgICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9u
LAogICAgICAgICAgY29uc3QgY2hhciAqY2FsbG91dF9pbmZvKQp7CiByZXR1cm4gcmVxdWVzdF9r
ZXlfdGFnKHR5cGUsIGRlc2NyaXB0aW9uLCAoKHZvaWQgKikwKSwgY2FsbG91dF9pbmZvKTsKfQoj
IDM1OCAiLi9pbmNsdWRlL2xpbnV4L2tleS5oIgpleHRlcm4gaW50IHdhaXRfZm9yX2tleV9jb25z
dHJ1Y3Rpb24oc3RydWN0IGtleSAqa2V5LCBib29sIGludHIpOwoKZXh0ZXJuIGludCBrZXlfdmFs
aWRhdGUoY29uc3Qgc3RydWN0IGtleSAqa2V5KTsKCmV4dGVybiBrZXlfcmVmX3Qga2V5X2NyZWF0
ZV9vcl91cGRhdGUoa2V5X3JlZl90IGtleXJpbmcsCiAgICAgICAgICBjb25zdCBjaGFyICp0eXBl
LAogICAgICAgICAgY29uc3QgY2hhciAqZGVzY3JpcHRpb24sCiAgICAgICAgICBjb25zdCB2b2lk
ICpwYXlsb2FkLAogICAgICAgICAgc2l6ZV90IHBsZW4sCiAgICAgICAgICBrZXlfcGVybV90IHBl
cm0sCiAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKTsKCmV4dGVybiBpbnQga2V5X3VwZGF0
ZShrZXlfcmVmX3Qga2V5LAogICAgICAgIGNvbnN0IHZvaWQgKnBheWxvYWQsCiAgICAgICAgc2l6
ZV90IHBsZW4pOwoKZXh0ZXJuIGludCBrZXlfbGluayhzdHJ1Y3Qga2V5ICprZXlyaW5nLAogICAg
ICBzdHJ1Y3Qga2V5ICprZXkpOwoKZXh0ZXJuIGludCBrZXlfbW92ZShzdHJ1Y3Qga2V5ICprZXks
CiAgICAgIHN0cnVjdCBrZXkgKmZyb21fa2V5cmluZywKICAgICAgc3RydWN0IGtleSAqdG9fa2V5
cmluZywKICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKCmV4dGVybiBpbnQga2V5X3VubGluayhz
dHJ1Y3Qga2V5ICprZXlyaW5nLAogICAgICAgIHN0cnVjdCBrZXkgKmtleSk7CgpleHRlcm4gc3Ry
dWN0IGtleSAqa2V5cmluZ19hbGxvYyhjb25zdCBjaGFyICpkZXNjcmlwdGlvbiwga3VpZF90IHVp
ZCwga2dpZF90IGdpZCwKICAgICBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwKICAgICBrZXlfcGVy
bV90IHBlcm0sCiAgICAgdW5zaWduZWQgbG9uZyBmbGFncywKICAgICBzdHJ1Y3Qga2V5X3Jlc3Ry
aWN0aW9uICpyZXN0cmljdF9saW5rLAogICAgIHN0cnVjdCBrZXkgKmRlc3QpOwoKZXh0ZXJuIGlu
dCByZXN0cmljdF9saW5rX3JlamVjdChzdHJ1Y3Qga2V5ICprZXlyaW5nLAogICAgY29uc3Qgc3Ry
dWN0IGtleV90eXBlICp0eXBlLAogICAgY29uc3QgdW5pb24ga2V5X3BheWxvYWQgKnBheWxvYWQs
CiAgICBzdHJ1Y3Qga2V5ICpyZXN0cmljdGlvbl9rZXkpOwoKZXh0ZXJuIGludCBrZXlyaW5nX2Ns
ZWFyKHN0cnVjdCBrZXkgKmtleXJpbmcpOwoKZXh0ZXJuIGtleV9yZWZfdCBrZXlyaW5nX3NlYXJj
aChrZXlfcmVmX3Qga2V5cmluZywKICAgIHN0cnVjdCBrZXlfdHlwZSAqdHlwZSwKICAgIGNvbnN0
IGNoYXIgKmRlc2NyaXB0aW9uLAogICAgYm9vbCByZWN1cnNlKTsKCmV4dGVybiBpbnQga2V5cmlu
Z19hZGRfa2V5KHN0cnVjdCBrZXkgKmtleXJpbmcsCiAgICAgIHN0cnVjdCBrZXkgKmtleSk7Cgpl
eHRlcm4gaW50IGtleXJpbmdfcmVzdHJpY3Qoa2V5X3JlZl90IGtleXJpbmcsIGNvbnN0IGNoYXIg
KnR5cGUsCiAgICAgICBjb25zdCBjaGFyICpyZXN0cmljdGlvbik7CgpleHRlcm4gc3RydWN0IGtl
eSAqa2V5X2xvb2t1cChrZXlfc2VyaWFsX3QgaWQpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga2V5X3NlcmlhbF90IGtleV9zZXJpYWwo
Y29uc3Qgc3RydWN0IGtleSAqa2V5KQp7CiByZXR1cm4ga2V5ID8ga2V5LT5zZXJpYWwgOiAwOwp9
CgpleHRlcm4gdm9pZCBrZXlfc2V0X3RpbWVvdXQoc3RydWN0IGtleSAqLCB1bnNpZ25lZCk7Cgpl
eHRlcm4ga2V5X3JlZl90IGxvb2t1cF91c2VyX2tleShrZXlfc2VyaWFsX3QgaWQsIHVuc2lnbmVk
IGxvbmcgZmxhZ3MsCiAgICAga2V5X3Blcm1fdCBwZXJtKTsKZXh0ZXJuIHZvaWQga2V5X2ZyZWVf
dXNlcl9ucyhzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKik7CiMgNDM0ICIuL2luY2x1ZGUvbGludXgv
a2V5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHNob3J0IGtleV9yZWFkX3N0YXRlKGNvbnN0IHN0cnVjdCBrZXkgKmtleSkKewoKIHJl
dHVybiAoeyB0eXBlb2YoKiZrZXktPnN0YXRlKSBfX19wMSA9ICh7IHVuaW9uIHsgdHlwZW9mKCom
a2V5LT5zdGF0ZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNl
X3NpemUoJigqJmtleS0+c3RhdGUpLCBfX3UuX19jLCBzaXplb2YoKiZrZXktPnN0YXRlKSk7IGVs
c2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoKiZrZXktPnN0YXRlKSwgX191Ll9fYywgc2l6
ZW9mKComa2V5LT5zdGF0ZSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOyBkbyB7
IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzQzNyh2b2lkKSBfX2F0dHJpYnV0ZV9f
KChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9t
aWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJmtleS0+c3RhdGUpID09IHNpemVvZihjaGFyKSB8
fCBzaXplb2YoKiZrZXktPnN0YXRlKSA9PSBzaXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJmtleS0+
c3RhdGUpID09IHNpemVvZihpbnQpIHx8IHNpemVvZigqJmtleS0+c3RhdGUpID09IHNpemVvZihs
b25nKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF80MzcoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18g
X192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7IF9fX3AxOyB9KTsKfQojIDQ0NyAiLi9pbmNs
dWRlL2xpbnV4L2tleS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGtleV9pc19wb3NpdGl2ZShjb25zdCBzdHJ1Y3Qga2V5ICpr
ZXkpCnsKIHJldHVybiBrZXlfcmVhZF9zdGF0ZShrZXkpID09IEtFWV9JU19QT1NJVElWRTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBrZXlfaXNfbmVnYXRpdmUoY29uc3Qgc3RydWN0IGtleSAqa2V5KQp7CiByZXR1cm4ga2V5
X3JlYWRfc3RhdGUoa2V5KSA8IDA7Cn0KIyA0NzAgIi4vaW5jbHVkZS9saW51eC9rZXkuaCIKZXh0
ZXJuIHN0cnVjdCBjdGxfdGFibGUga2V5X3N5c2N0bHNbXTsKCgoKCmV4dGVybiBpbnQgaW5zdGFs
bF90aHJlYWRfa2V5cmluZ190b19jcmVkKHN0cnVjdCBjcmVkICpjcmVkKTsKZXh0ZXJuIHZvaWQg
a2V5X2ZzdWlkX2NoYW5nZWQoc3RydWN0IGNyZWQgKm5ld19jcmVkKTsKZXh0ZXJuIHZvaWQga2V5
X2ZzZ2lkX2NoYW5nZWQoc3RydWN0IGNyZWQgKm5ld19jcmVkKTsKZXh0ZXJuIHZvaWQga2V5X2lu
aXQodm9pZCk7CiMgMTQgIi4vaW5jbHVkZS9saW51eC9jcmVkLmgiIDIKCgoKIyAxICIuL2luY2x1
ZGUvbGludXgvc2NoZWQvdXNlci5oIiAxCgoKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9yYXRl
bGltaXQuaCIgMQojIDE1ICIuL2luY2x1ZGUvbGludXgvcmF0ZWxpbWl0LmgiCnN0cnVjdCByYXRl
bGltaXRfc3RhdGUgewogcmF3X3NwaW5sb2NrX3QgbG9jazsKCiBpbnQgaW50ZXJ2YWw7CiBpbnQg
YnVyc3Q7CiBpbnQgcHJpbnRlZDsKIGludCBtaXNzZWQ7CiB1bnNpZ25lZCBsb25nIGJlZ2luOwog
dW5zaWduZWQgbG9uZyBmbGFnczsKfTsKIyA0MCAiLi9pbmNsdWRlL2xpbnV4L3JhdGVsaW1pdC5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHJhdGVsaW1pdF9zdGF0ZV9pbml0KHN0cnVjdCByYXRlbGltaXRfc3RhdGUgKnJzLAog
ICAgIGludCBpbnRlcnZhbCwgaW50IGJ1cnN0KQp7CiBtZW1zZXQocnMsIDAsIHNpemVvZigqcnMp
KTsKCiBkbyB7ICooJnJzLT5sb2NrKSA9IChyYXdfc3BpbmxvY2tfdCkgeyAucmF3X2xvY2sgPSB7
IHsgLnZhbCA9IHsgKDApIH0gfSB9LCB9OyB9IHdoaWxlICgwKTsKIHJzLT5pbnRlcnZhbCA9IGlu
dGVydmFsOwogcnMtPmJ1cnN0ID0gYnVyc3Q7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmF0ZWxpbWl0X2RlZmF1bHRfaW5p
dChzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlICpycykKewogcmV0dXJuIHJhdGVsaW1pdF9zdGF0ZV9p
bml0KHJzLCAoNSAqIDI1MCksCiAgICAgMTApOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJhdGVsaW1pdF9zdGF0ZV9leGl0
KHN0cnVjdCByYXRlbGltaXRfc3RhdGUgKnJzKQp7CiBpZiAoIShycy0+ZmxhZ3MgJiAoKCgoMVVM
KSkpIDw8ICgwKSkpKQogIHJldHVybjsKCiBpZiAocnMtPm1pc3NlZCkgewogIHByaW50aygiXDAw
MSIgIjQiICIlczogJWQgb3V0cHV0IGxpbmVzIHN1cHByZXNzZWQgZHVlIHRvIHJhdGVsaW1pdGlu
Z1xuIiwgZ2V0X2N1cnJlbnQoKS0+Y29tbSwgcnMtPm1pc3NlZCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA7CiAgcnMtPm1pc3NlZCA9IDA7CiB9Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKcmF0ZWxpbWl0X3NldF9m
bGFncyhzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlICpycywgdW5zaWduZWQgbG9uZyBmbGFncykKewog
cnMtPmZsYWdzID0gZmxhZ3M7Cn0KCmV4dGVybiBzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlIHByaW50
a19yYXRlbGltaXRfc3RhdGU7CgpleHRlcm4gaW50IF9fX3JhdGVsaW1pdChzdHJ1Y3QgcmF0ZWxp
bWl0X3N0YXRlICpycywgY29uc3QgY2hhciAqZnVuYyk7CiMgOSAiLi9pbmNsdWRlL2xpbnV4L3Nj
aGVkL3VzZXIuaCIgMgoKCgoKc3RydWN0IHVzZXJfc3RydWN0IHsKIHJlZmNvdW50X3QgX19jb3Vu
dDsKIGF0b21pY190IHByb2Nlc3NlczsKIGF0b21pY190IHNpZ3BlbmRpbmc7CgogYXRvbWljX3Qg
ZmFub3RpZnlfbGlzdGVuZXJzOwoKCiBhdG9taWNfbG9uZ190IGVwb2xsX3dhdGNoZXM7CgoKCiB1
bnNpZ25lZCBsb25nIG1xX2J5dGVzOwoKIHVuc2lnbmVkIGxvbmcgbG9ja2VkX3NobTsKIHVuc2ln
bmVkIGxvbmcgdW5peF9pbmZsaWdodDsKIGF0b21pY19sb25nX3QgcGlwZV9idWZzOwoKCiBzdHJ1
Y3QgaGxpc3Rfbm9kZSB1aWRoYXNoX25vZGU7CiBrdWlkX3QgdWlkOwoKCgogYXRvbWljX2xvbmdf
dCBsb2NrZWRfdm07CgoKCiBzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlIHJhdGVsaW1pdDsKfTsKCmV4
dGVybiBpbnQgdWlkc19zeXNmc19pbml0KHZvaWQpOwoKZXh0ZXJuIHN0cnVjdCB1c2VyX3N0cnVj
dCAqZmluZF91c2VyKGt1aWRfdCk7CgpleHRlcm4gc3RydWN0IHVzZXJfc3RydWN0IHJvb3RfdXNl
cjsKCgoKCmV4dGVybiBzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKiBhbGxvY191aWQoa3VpZF90KTsKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3Ry
dWN0IHVzZXJfc3RydWN0ICpnZXRfdWlkKHN0cnVjdCB1c2VyX3N0cnVjdCAqdSkKewogcmVmY291
bnRfaW5jKCZ1LT5fX2NvdW50KTsKIHJldHVybiB1Owp9CmV4dGVybiB2b2lkIGZyZWVfdWlkKHN0
cnVjdCB1c2VyX3N0cnVjdCAqKTsKIyAxOCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIgMgoKc3Ry
dWN0IGNyZWQ7CnN0cnVjdCBpbm9kZTsKCgoKCnN0cnVjdCBncm91cF9pbmZvIHsKIGF0b21pY190
IHVzYWdlOwogaW50IG5ncm91cHM7CiBrZ2lkX3QgZ2lkWzBdOwp9IF9fYXR0cmlidXRlX18oKF9f
ZGVzaWduYXRlZF9pbml0X18pKTsKIyA0MCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGdyb3VwX2luZm8gKmdldF9ncm91cF9pbmZvKHN0cnVjdCBncm91cF9pbmZvICpnaSkKewogYXRv
bWljX2luYygmZ2ktPnVzYWdlKTsKIHJldHVybiBnaTsKfQojIDU2ICIuL2luY2x1ZGUvbGludXgv
Y3JlZC5oIgpleHRlcm4gc3RydWN0IGdyb3VwX2luZm8gaW5pdF9ncm91cHM7CgpleHRlcm4gc3Ry
dWN0IGdyb3VwX2luZm8gKmdyb3Vwc19hbGxvYyhpbnQpOwpleHRlcm4gdm9pZCBncm91cHNfZnJl
ZShzdHJ1Y3QgZ3JvdXBfaW5mbyAqKTsKCmV4dGVybiBpbnQgaW5fZ3JvdXBfcChrZ2lkX3QpOwpl
eHRlcm4gaW50IGluX2Vncm91cF9wKGtnaWRfdCk7CmV4dGVybiBpbnQgZ3JvdXBzX3NlYXJjaChj
b25zdCBzdHJ1Y3QgZ3JvdXBfaW5mbyAqLCBrZ2lkX3QpOwoKZXh0ZXJuIGludCBzZXRfY3VycmVu
dF9ncm91cHMoc3RydWN0IGdyb3VwX2luZm8gKik7CmV4dGVybiB2b2lkIHNldF9ncm91cHMoc3Ry
dWN0IGNyZWQgKiwgc3RydWN0IGdyb3VwX2luZm8gKik7CmV4dGVybiBib29sIG1heV9zZXRncm91
cHModm9pZCk7CmV4dGVybiB2b2lkIGdyb3Vwc19zb3J0KHN0cnVjdCBncm91cF9pbmZvICopOwoj
IDExMSAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKc3RydWN0IGNyZWQgewogYXRvbWljX3QgdXNh
Z2U7CgoKCgoKCgoga3VpZF90IHVpZDsKIGtnaWRfdCBnaWQ7CiBrdWlkX3Qgc3VpZDsKIGtnaWRf
dCBzZ2lkOwoga3VpZF90IGV1aWQ7CiBrZ2lkX3QgZWdpZDsKIGt1aWRfdCBmc3VpZDsKIGtnaWRf
dCBmc2dpZDsKIHVuc2lnbmVkIHNlY3VyZWJpdHM7CiBrZXJuZWxfY2FwX3QgY2FwX2luaGVyaXRh
YmxlOwoga2VybmVsX2NhcF90IGNhcF9wZXJtaXR0ZWQ7CiBrZXJuZWxfY2FwX3QgY2FwX2VmZmVj
dGl2ZTsKIGtlcm5lbF9jYXBfdCBjYXBfYnNldDsKIGtlcm5lbF9jYXBfdCBjYXBfYW1iaWVudDsK
CiB1bnNpZ25lZCBjaGFyIGppdF9rZXlyaW5nOwoKIHN0cnVjdCBrZXkgKnNlc3Npb25fa2V5cmlu
ZzsKIHN0cnVjdCBrZXkgKnByb2Nlc3Nfa2V5cmluZzsKIHN0cnVjdCBrZXkgKnRocmVhZF9rZXly
aW5nOwogc3RydWN0IGtleSAqcmVxdWVzdF9rZXlfYXV0aDsKCgogdm9pZCAqc2VjdXJpdHk7Cgog
c3RydWN0IHVzZXJfc3RydWN0ICp1c2VyOwogc3RydWN0IHVzZXJfbmFtZXNwYWNlICp1c2VyX25z
Owogc3RydWN0IGdyb3VwX2luZm8gKmdyb3VwX2luZm87CgogdW5pb24gewogIGludCBub25fcmN1
OwogIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKIH07Cn0gX19hdHRyaWJ1dGVfXygoX19kZXNp
Z25hdGVkX2luaXRfXykpOwoKZXh0ZXJuIHZvaWQgX19wdXRfY3JlZChzdHJ1Y3QgY3JlZCAqKTsK
ZXh0ZXJuIHZvaWQgZXhpdF9jcmVkcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CmV4dGVybiBpbnQg
Y29weV9jcmVkcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgdW5zaWduZWQgbG9uZyk7CmV4dGVybiBj
b25zdCBzdHJ1Y3QgY3JlZCAqZ2V0X3Rhc2tfY3JlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CmV4
dGVybiBzdHJ1Y3QgY3JlZCAqY3JlZF9hbGxvY19ibGFuayh2b2lkKTsKZXh0ZXJuIHN0cnVjdCBj
cmVkICpwcmVwYXJlX2NyZWRzKHZvaWQpOwpleHRlcm4gc3RydWN0IGNyZWQgKnByZXBhcmVfZXhl
Y19jcmVkcyh2b2lkKTsKZXh0ZXJuIGludCBjb21taXRfY3JlZHMoc3RydWN0IGNyZWQgKik7CmV4
dGVybiB2b2lkIGFib3J0X2NyZWRzKHN0cnVjdCBjcmVkICopOwpleHRlcm4gY29uc3Qgc3RydWN0
IGNyZWQgKm92ZXJyaWRlX2NyZWRzKGNvbnN0IHN0cnVjdCBjcmVkICopOwpleHRlcm4gdm9pZCBy
ZXZlcnRfY3JlZHMoY29uc3Qgc3RydWN0IGNyZWQgKik7CmV4dGVybiBzdHJ1Y3QgY3JlZCAqcHJl
cGFyZV9rZXJuZWxfY3JlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CmV4dGVybiBpbnQgY2hhbmdl
X2NyZWF0ZV9maWxlc19hcyhzdHJ1Y3QgY3JlZCAqLCBzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBp
bnQgc2V0X3NlY3VyaXR5X292ZXJyaWRlKHN0cnVjdCBjcmVkICosIHUzMik7CmV4dGVybiBpbnQg
c2V0X3NlY3VyaXR5X292ZXJyaWRlX2Zyb21fY3R4KHN0cnVjdCBjcmVkICosIGNvbnN0IGNoYXIg
Kik7CmV4dGVybiBpbnQgc2V0X2NyZWF0ZV9maWxlc19hcyhzdHJ1Y3QgY3JlZCAqLCBzdHJ1Y3Qg
aW5vZGUgKik7CmV4dGVybiBpbnQgY3JlZF9mc2NtcChjb25zdCBzdHJ1Y3QgY3JlZCAqLCBjb25z
dCBzdHJ1Y3QgY3JlZCAqKTsKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18o
Ii5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgY3JlZF9pbml0KHZvaWQp
OwojIDIwMyAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB2YWxpZGF0ZV9jcmVkcyhjb25z
dCBzdHJ1Y3QgY3JlZCAqY3JlZCkKewp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdmFsaWRhdGVfY3JlZHNfZm9yX2RvX2V4aXQo
c3RydWN0IHRhc2tfc3RydWN0ICp0c2spCnsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHZhbGlkYXRlX3Byb2Nlc3NfY3JlZHMo
dm9pZCkKewp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBjYXBfYW1iaWVudF9pbnZhcmlhbnRfb2soY29uc3Qgc3RydWN0IGNy
ZWQgKmNyZWQpCnsKIHJldHVybiBjYXBfaXNzdWJzZXQoY3JlZC0+Y2FwX2FtYmllbnQsCiAgICAg
ICBjYXBfaW50ZXJzZWN0KGNyZWQtPmNhcF9wZXJtaXR0ZWQsCiAgICAgICBjcmVkLT5jYXBfaW5o
ZXJpdGFibGUpKTsKfQojIDIyOCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGNyZWQg
KmdldF9uZXdfY3JlZChzdHJ1Y3QgY3JlZCAqY3JlZCkKewogYXRvbWljX2luYygmY3JlZC0+dXNh
Z2UpOwogcmV0dXJuIGNyZWQ7Cn0KIyAyNDcgIi4vaW5jbHVkZS9saW51eC9jcmVkLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGNvbnN0
IHN0cnVjdCBjcmVkICpnZXRfY3JlZChjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCkKewogc3RydWN0
IGNyZWQgKm5vbmNvbnN0X2NyZWQgPSAoc3RydWN0IGNyZWQgKikgY3JlZDsKIGlmICghY3JlZCkK
ICByZXR1cm4gY3JlZDsKIHZhbGlkYXRlX2NyZWRzKGNyZWQpOwogbm9uY29uc3RfY3JlZC0+bm9u
X3JjdSA9IDA7CiByZXR1cm4gZ2V0X25ld19jcmVkKG5vbmNvbnN0X2NyZWQpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25zdCBz
dHJ1Y3QgY3JlZCAqZ2V0X2NyZWRfcmN1KGNvbnN0IHN0cnVjdCBjcmVkICpjcmVkKQp7CiBzdHJ1
Y3QgY3JlZCAqbm9uY29uc3RfY3JlZCA9IChzdHJ1Y3QgY3JlZCAqKSBjcmVkOwogaWYgKCFjcmVk
KQogIHJldHVybiAoKHZvaWQgKikwKTsKIGlmICghYXRvbWljX2luY19ub3RfemVybygmbm9uY29u
c3RfY3JlZC0+dXNhZ2UpKQogIHJldHVybiAoKHZvaWQgKikwKTsKIHZhbGlkYXRlX2NyZWRzKGNy
ZWQpOwogbm9uY29uc3RfY3JlZC0+bm9uX3JjdSA9IDA7CiByZXR1cm4gY3JlZDsKfQojIDI4MCAi
Li9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwdXRfY3JlZChjb25zdCBzdHJ1Y3QgY3JlZCAq
X2NyZWQpCnsKIHN0cnVjdCBjcmVkICpjcmVkID0gKHN0cnVjdCBjcmVkICopIF9jcmVkOwoKIGlm
IChjcmVkKSB7CiAgdmFsaWRhdGVfY3JlZHMoY3JlZCk7CiAgaWYgKGF0b21pY19kZWNfYW5kX3Rl
c3QoJihjcmVkKS0+dXNhZ2UpKQogICBfX3B1dF9jcmVkKGNyZWQpOwogfQp9CiMgMzkwICIuL2lu
Y2x1ZGUvbGludXgvY3JlZC5oIgpleHRlcm4gc3RydWN0IHVzZXJfbmFtZXNwYWNlIGluaXRfdXNl
cl9uczsKIyAxMyAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiIDIKCnN0cnVjdCBzZXFfb3Bl
cmF0aW9uczsKCnN0cnVjdCBzZXFfZmlsZSB7CiBjaGFyICpidWY7CiBzaXplX3Qgc2l6ZTsKIHNp
emVfdCBmcm9tOwogc2l6ZV90IGNvdW50Owogc2l6ZV90IHBhZF91bnRpbDsKIGxvZmZfdCBpbmRl
eDsKIGxvZmZfdCByZWFkX3BvczsKIHU2NCB2ZXJzaW9uOwogc3RydWN0IG11dGV4IGxvY2s7CiBj
b25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgKm9wOwogaW50IHBvbGxfZXZlbnQ7CiBjb25zdCBz
dHJ1Y3QgZmlsZSAqZmlsZTsKIHZvaWQgKnByaXZhdGU7Cn07CgpzdHJ1Y3Qgc2VxX29wZXJhdGlv
bnMgewogdm9pZCAqICgqc3RhcnQpIChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKTsK
IHZvaWQgKCpzdG9wKSAoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KTsKIHZvaWQgKiAoKm5l
eHQpIChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYsIGxvZmZfdCAqcG9zKTsKIGludCAoKnNo
b3cpIChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpOwp9OwojIDUxICIuL2luY2x1ZGUvbGlu
dXgvc2VxX2ZpbGUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBzZXFfaGFzX292ZXJmbG93ZWQoc3RydWN0IHNlcV9maWxlICpt
KQp7CiByZXR1cm4gbS0+Y291bnQgPT0gbS0+c2l6ZTsKfQojIDY0ICIuL2luY2x1ZGUvbGludXgv
c2VxX2ZpbGUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgc2l6ZV90IHNlcV9nZXRfYnVmKHN0cnVjdCBzZXFfZmlsZSAqbSwgY2hhciAq
KmJ1ZnApCnsKIGRvIHsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEobS0+Y291bnQgPiBtLT5zaXpl
KSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBm
LCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAi
LmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5s
b25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEi
ICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZs
YWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUv
bGludXgvc2VxX2ZpbGUuaCIpLCAiaSIgKDY2KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0
IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0g
LlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDMzKSk7IH0pOyBhc20gdm9sYXRpbGUo
IiIpOyBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9
IHdoaWxlICgwKTsKIGlmIChtLT5jb3VudCA8IG0tPnNpemUpCiAgKmJ1ZnAgPSBtLT5idWYgKyBt
LT5jb3VudDsKIGVsc2UKICAqYnVmcCA9ICgodm9pZCAqKTApOwoKIHJldHVybiBtLT5zaXplIC0g
bS0+Y291bnQ7Cn0KIyA4NCAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2VxX2Nv
bW1pdChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGludCBudW0pCnsKIGlmIChudW0gPCAwKSB7CiAgbS0+
Y291bnQgPSBtLT5zaXplOwogfSBlbHNlIHsKICBkbyB7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEh
KG0tPmNvdW50ICsgbnVtID4gbS0+c2l6ZSksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZv
bGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVn
X3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2Vu
dHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50
cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29y
ZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNl
Y3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiKSwgImkiICg4OSksICJp
IiAoMCksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyBkbyB7
ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQudW5yZWFj
aGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImki
ICgzNCkpOyB9KTsgYXNtIHZvbGF0aWxlKCIiKTsgX19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0g
d2hpbGUgKDApOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CiAgbS0+Y291bnQgKz0gbnVtOwog
fQp9CiMgMTAyICIuL2luY2x1ZGUvbGludXgvc2VxX2ZpbGUuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXFfc2V0d2lkdGgo
c3RydWN0IHNlcV9maWxlICptLCBzaXplX3Qgc2l6ZSkKewogbS0+cGFkX3VudGlsID0gbS0+Y291
bnQgKyBzaXplOwp9CnZvaWQgc2VxX3BhZChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNoYXIgYyk7Cgpj
aGFyICptYW5nbGVfcGF0aChjaGFyICpzLCBjb25zdCBjaGFyICpwLCBjb25zdCBjaGFyICplc2Mp
OwppbnQgc2VxX29wZW4oc3RydWN0IGZpbGUgKiwgY29uc3Qgc3RydWN0IHNlcV9vcGVyYXRpb25z
ICopOwpzc2l6ZV90IHNlcV9yZWFkKHN0cnVjdCBmaWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2Zm
X3QgKik7CmxvZmZfdCBzZXFfbHNlZWsoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBpbnQpOwppbnQg
c2VxX3JlbGVhc2Uoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwppbnQgc2VxX3dyaXRl
KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKTsKCl9f
YXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAwKSkpCnZvaWQgc2VxX3ZwcmludGYo
c3RydWN0IHNlcV9maWxlICptLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7Cl9fYXR0
cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpCnZvaWQgc2VxX3ByaW50ZihzdHJ1
Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKdm9pZCBzZXFfcHV0YyhzdHJ1
Y3Qgc2VxX2ZpbGUgKm0sIGNoYXIgYyk7CnZvaWQgc2VxX3B1dHMoc3RydWN0IHNlcV9maWxlICpt
LCBjb25zdCBjaGFyICpzKTsKdm9pZCBzZXFfcHV0X2RlY2ltYWxfdWxsX3dpZHRoKHN0cnVjdCBz
ZXFfZmlsZSAqbSwgY29uc3QgY2hhciAqZGVsaW1pdGVyLAogICAgICAgICAgdW5zaWduZWQgbG9u
ZyBsb25nIG51bSwgdW5zaWduZWQgaW50IHdpZHRoKTsKdm9pZCBzZXFfcHV0X2RlY2ltYWxfdWxs
KHN0cnVjdCBzZXFfZmlsZSAqbSwgY29uc3QgY2hhciAqZGVsaW1pdGVyLAogICAgdW5zaWduZWQg
bG9uZyBsb25nIG51bSk7CnZvaWQgc2VxX3B1dF9kZWNpbWFsX2xsKHN0cnVjdCBzZXFfZmlsZSAq
bSwgY29uc3QgY2hhciAqZGVsaW1pdGVyLCBsb25nIGxvbmcgbnVtKTsKdm9pZCBzZXFfcHV0X2hl
eF9sbChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKmRlbGltaXRlciwKICAgICAgdW5z
aWduZWQgbG9uZyBsb25nIHYsIHVuc2lnbmVkIGludCB3aWR0aCk7Cgp2b2lkIHNlcV9lc2NhcGUo
c3RydWN0IHNlcV9maWxlICptLCBjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICplc2MpOwp2b2lk
IHNlcV9lc2NhcGVfbWVtX2FzY2lpKHN0cnVjdCBzZXFfZmlsZSAqbSwgY29uc3QgY2hhciAqc3Jj
LCBzaXplX3QgaXN6KTsKCnZvaWQgc2VxX2hleF9kdW1wKHN0cnVjdCBzZXFfZmlsZSAqbSwgY29u
c3QgY2hhciAqcHJlZml4X3N0ciwgaW50IHByZWZpeF90eXBlLAogICAgaW50IHJvd3NpemUsIGlu
dCBncm91cHNpemUsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbiwKICAgIGJvb2wgYXNjaWkp
OwoKaW50IHNlcV9wYXRoKHN0cnVjdCBzZXFfZmlsZSAqLCBjb25zdCBzdHJ1Y3QgcGF0aCAqLCBj
b25zdCBjaGFyICopOwppbnQgc2VxX2ZpbGVfcGF0aChzdHJ1Y3Qgc2VxX2ZpbGUgKiwgc3RydWN0
IGZpbGUgKiwgY29uc3QgY2hhciAqKTsKaW50IHNlcV9kZW50cnkoc3RydWN0IHNlcV9maWxlICos
IHN0cnVjdCBkZW50cnkgKiwgY29uc3QgY2hhciAqKTsKaW50IHNlcV9wYXRoX3Jvb3Qoc3RydWN0
IHNlcV9maWxlICptLCBjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCwKICAgIGNvbnN0IHN0cnVjdCBw
YXRoICpyb290LCBjb25zdCBjaGFyICplc2MpOwoKaW50IHNpbmdsZV9vcGVuKHN0cnVjdCBmaWxl
ICosIGludCAoKikoc3RydWN0IHNlcV9maWxlICosIHZvaWQgKiksIHZvaWQgKik7CmludCBzaW5n
bGVfb3Blbl9zaXplKHN0cnVjdCBmaWxlICosIGludCAoKikoc3RydWN0IHNlcV9maWxlICosIHZv
aWQgKiksIHZvaWQgKiwgc2l6ZV90KTsKaW50IHNpbmdsZV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAq
LCBzdHJ1Y3QgZmlsZSAqKTsKdm9pZCAqX19zZXFfb3Blbl9wcml2YXRlKHN0cnVjdCBmaWxlICos
IGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyAqLCBpbnQpOwppbnQgc2VxX29wZW5fcHJpdmF0
ZShzdHJ1Y3QgZmlsZSAqLCBjb25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgKiwgaW50KTsKaW50
IHNlcV9yZWxlYXNlX3ByaXZhdGUoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwojIDE3
NiAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqc2Vx
X3VzZXJfbnMoc3RydWN0IHNlcV9maWxlICpzZXEpCnsKCiByZXR1cm4gc2VxLT5maWxlLT5mX2Ny
ZWQtPnVzZXJfbnM7CgoKCgp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNlcV9zaG93X29wdGlvbihzdHJ1Y3Qgc2Vx
X2ZpbGUgKm0sIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICBjb25zdCBjaGFyICp2YWx1ZSkKewog
c2VxX3B1dGMobSwgJywnKTsKIHNlcV9lc2NhcGUobSwgbmFtZSwgIiw9IFx0XG5cXCIpOwogaWYg
KHZhbHVlKSB7CiAgc2VxX3B1dGMobSwgJz0nKTsKICBzZXFfZXNjYXBlKG0sIHZhbHVlLCAiLCBc
dFxuXFwiKTsKIH0KfQojIDIyNiAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiCmV4dGVybiBz
dHJ1Y3QgbGlzdF9oZWFkICpzZXFfbGlzdF9zdGFydChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLAog
IGxvZmZfdCBwb3MpOwpleHRlcm4gc3RydWN0IGxpc3RfaGVhZCAqc2VxX2xpc3Rfc3RhcnRfaGVh
ZChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLAogIGxvZmZfdCBwb3MpOwpleHRlcm4gc3RydWN0IGxp
c3RfaGVhZCAqc2VxX2xpc3RfbmV4dCh2b2lkICp2LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLAog
IGxvZmZfdCAqcHBvcyk7CgoKCgoKZXh0ZXJuIHN0cnVjdCBobGlzdF9ub2RlICpzZXFfaGxpc3Rf
c3RhcnQoc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQsCiAgICAgICBsb2ZmX3QgcG9zKTsKZXh0ZXJu
IHN0cnVjdCBobGlzdF9ub2RlICpzZXFfaGxpc3Rfc3RhcnRfaGVhZChzdHJ1Y3QgaGxpc3RfaGVh
ZCAqaGVhZCwKICAgICAgICAgICAgbG9mZl90IHBvcyk7CmV4dGVybiBzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqc2VxX2hsaXN0X25leHQodm9pZCAqdiwgc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQsCiAgICAg
IGxvZmZfdCAqcHBvcyk7CgpleHRlcm4gc3RydWN0IGhsaXN0X25vZGUgKnNlcV9obGlzdF9zdGFy
dF9yY3Uoc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQsCiAgICAgICAgICAgbG9mZl90IHBvcyk7CmV4
dGVybiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqc2VxX2hsaXN0X3N0YXJ0X2hlYWRfcmN1KHN0cnVjdCBo
bGlzdF9oZWFkICpoZWFkLAogICAgICAgICBsb2ZmX3QgcG9zKTsKZXh0ZXJuIHN0cnVjdCBobGlz
dF9ub2RlICpzZXFfaGxpc3RfbmV4dF9yY3Uodm9pZCAqdiwKICAgICAgICAgc3RydWN0IGhsaXN0
X2hlYWQgKmhlYWQsCiAgICAgICAgIGxvZmZfdCAqcHBvcyk7CgoKZXh0ZXJuIHN0cnVjdCBobGlz
dF9ub2RlICpzZXFfaGxpc3Rfc3RhcnRfcGVyY3B1KHN0cnVjdCBobGlzdF9oZWFkICpoZWFkLCBp
bnQgKmNwdSwgbG9mZl90IHBvcyk7CgpleHRlcm4gc3RydWN0IGhsaXN0X25vZGUgKnNlcV9obGlz
dF9uZXh0X3BlcmNwdSh2b2lkICp2LCBzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwgaW50ICpjcHUs
IGxvZmZfdCAqcG9zKTsKCnZvaWQgc2VxX2ZpbGVfaW5pdCh2b2lkKTsKIyAzMiAiLi9pbmNsdWRl
L2RybS9kcm1fcHJpbnQuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIgMQojIDE1
ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2Rldl9wcmlu
dGsuaCIgMQojIDIyICIuL2luY2x1ZGUvbGludXgvZGV2X3ByaW50ay5oIgpzdHJ1Y3QgZGV2aWNl
OwoKCgpfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgMCkpKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbGRfXykpCmludCBkZXZfdnByaW50a19lbWl0KGludCBsZXZlbCwgY29uc3Qgc3Ry
dWN0IGRldmljZSAqZGV2LAogICAgICAgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpOwpf
X2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKSBfX2F0dHJpYnV0ZV9fKChf
X2NvbGRfXykpCmludCBkZXZfcHJpbnRrX2VtaXQoaW50IGxldmVsLCBjb25zdCBzdHJ1Y3QgZGV2
aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKCl9fYXR0cmlidXRlX18oKF9fZm9ybWF0
X18ocHJpbnRmLCAzLCA0KSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkKdm9pZCBkZXZfcHJp
bnRrKGNvbnN0IGNoYXIgKmxldmVsLCBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgY29uc3Qg
Y2hhciAqZm10LCAuLi4pOwpfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykp
KSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpCnZvaWQgX2Rldl9lbWVyZyhjb25zdCBzdHJ1Y3Qg
ZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKX19hdHRyaWJ1dGVfXygoX19mb3Jt
YXRfXyhwcmludGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQp2b2lkIF9kZXZf
YWxlcnQoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4uLik7Cl9f
YXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpIF9fYXR0cmlidXRlX18oKF9f
Y29sZF9fKSkKdm9pZCBfZGV2X2NyaXQoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBj
aGFyICpmbXQsIC4uLik7Cl9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkp
IF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkKdm9pZCBfZGV2X2Vycihjb25zdCBzdHJ1Y3QgZGV2
aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKX19hdHRyaWJ1dGVfXygoX19mb3JtYXRf
XyhwcmludGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQp2b2lkIF9kZXZfd2Fy
bihjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKX19hdHRy
aWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xk
X18pKQp2b2lkIF9kZXZfbm90aWNlKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hh
ciAqZm10LCAuLi4pOwpfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpCnZvaWQgX2Rldl9pbmZvKGNvbnN0IHN0cnVjdCBkZXZp
Y2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pOwojIDE2ICIuL2luY2x1ZGUvbGludXgvZGV2
aWNlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvaW9wb3J0LmgiIDEKIyAyMCAiLi9pbmNsdWRl
L2xpbnV4L2lvcG9ydC5oIgpzdHJ1Y3QgcmVzb3VyY2UgewogcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0
OwogcmVzb3VyY2Vfc2l6ZV90IGVuZDsKIGNvbnN0IGNoYXIgKm5hbWU7CiB1bnNpZ25lZCBsb25n
IGZsYWdzOwogdW5zaWduZWQgbG9uZyBkZXNjOwogc3RydWN0IHJlc291cmNlICpwYXJlbnQsICpz
aWJsaW5nLCAqY2hpbGQ7Cn07CiMgMTI4ICIuL2luY2x1ZGUvbGludXgvaW9wb3J0LmgiCmVudW0g
ewogSU9SRVNfREVTQ19OT05FID0gMCwKIElPUkVTX0RFU0NfQ1JBU0hfS0VSTkVMID0gMSwKIElP
UkVTX0RFU0NfQUNQSV9UQUJMRVMgPSAyLAogSU9SRVNfREVTQ19BQ1BJX05WX1NUT1JBR0UgPSAz
LAogSU9SRVNfREVTQ19QRVJTSVNURU5UX01FTU9SWSA9IDQsCiBJT1JFU19ERVNDX1BFUlNJU1RF
TlRfTUVNT1JZX0xFR0FDWSA9IDUsCiBJT1JFU19ERVNDX0RFVklDRV9QUklWQVRFX01FTU9SWSA9
IDYsCiBJT1JFU19ERVNDX1JFU0VSVkVEID0gNywKIElPUkVTX0RFU0NfU09GVF9SRVNFUlZFRCA9
IDgsCn07CgoKCgplbnVtIHsKIElPUkVTX01BUF9TWVNURU1fUkFNID0gKCgoKDFVTCkpKSA8PCAo
MCkpLAogSU9SRVNfTUFQX0VOQ1JZUFRFRCA9ICgoKCgxVUwpKSkgPDwgKDEpKSwKfTsKIyAxNzkg
Ii4vaW5jbHVkZS9saW51eC9pb3BvcnQuaCIKZXh0ZXJuIHN0cnVjdCByZXNvdXJjZSBpb3BvcnRf
cmVzb3VyY2U7CmV4dGVybiBzdHJ1Y3QgcmVzb3VyY2UgaW9tZW1fcmVzb3VyY2U7CgpleHRlcm4g
c3RydWN0IHJlc291cmNlICpyZXF1ZXN0X3Jlc291cmNlX2NvbmZsaWN0KHN0cnVjdCByZXNvdXJj
ZSAqcm9vdCwgc3RydWN0IHJlc291cmNlICpuZXcpOwpleHRlcm4gaW50IHJlcXVlc3RfcmVzb3Vy
Y2Uoc3RydWN0IHJlc291cmNlICpyb290LCBzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7CmV4dGVybiBp
bnQgcmVsZWFzZV9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7CnZvaWQgcmVsZWFzZV9j
aGlsZF9yZXNvdXJjZXMoc3RydWN0IHJlc291cmNlICpuZXcpOwpleHRlcm4gdm9pZCByZXNlcnZl
X3JlZ2lvbl93aXRoX3NwbGl0KHN0cnVjdCByZXNvdXJjZSAqcm9vdCwKICAgICAgICByZXNvdXJj
ZV9zaXplX3Qgc3RhcnQsIHJlc291cmNlX3NpemVfdCBlbmQsCiAgICAgICAgY29uc3QgY2hhciAq
bmFtZSk7CmV4dGVybiBzdHJ1Y3QgcmVzb3VyY2UgKmluc2VydF9yZXNvdXJjZV9jb25mbGljdChz
dHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwgc3RydWN0IHJlc291cmNlICpuZXcpOwpleHRlcm4gaW50
IGluc2VydF9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwgc3RydWN0IHJlc291cmNl
ICpuZXcpOwpleHRlcm4gdm9pZCBpbnNlcnRfcmVzb3VyY2VfZXhwYW5kX3RvX2ZpdChzdHJ1Y3Qg
cmVzb3VyY2UgKnJvb3QsIHN0cnVjdCByZXNvdXJjZSAqbmV3KTsKZXh0ZXJuIGludCByZW1vdmVf
cmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpvbGQpOwpleHRlcm4gdm9pZCBhcmNoX3JlbW92ZV9y
ZXNlcnZhdGlvbnMoc3RydWN0IHJlc291cmNlICphdmFpbCk7CmV4dGVybiBpbnQgYWxsb2NhdGVf
cmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpyb290LCBzdHJ1Y3QgcmVzb3VyY2UgKm5ldywKICAg
ICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwgcmVzb3VyY2Vfc2l6ZV90IG1pbiwKICAgICAgICBy
ZXNvdXJjZV9zaXplX3QgbWF4LCByZXNvdXJjZV9zaXplX3QgYWxpZ24sCiAgICAgICAgcmVzb3Vy
Y2Vfc2l6ZV90ICgqYWxpZ25mKSh2b2lkICosCiAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcmVz
b3VyY2UgKiwKICAgICAgICAgICAgIHJlc291cmNlX3NpemVfdCwKICAgICAgICAgICAgIHJlc291
cmNlX3NpemVfdCksCiAgICAgICAgdm9pZCAqYWxpZ25mX2RhdGEpOwpzdHJ1Y3QgcmVzb3VyY2Ug
Kmxvb2t1cF9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnJvb3QsIHJlc291cmNlX3NpemVfdCBz
dGFydCk7CmludCBhZGp1c3RfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpyZXMsIHJlc291cmNl
X3NpemVfdCBzdGFydCwKICAgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUpOwpyZXNvdXJjZV9zaXpl
X3QgcmVzb3VyY2VfYWxpZ25tZW50KHN0cnVjdCByZXNvdXJjZSAqcmVzKTsKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcmVzb3VyY2Vfc2l6
ZV90IHJlc291cmNlX3NpemUoY29uc3Qgc3RydWN0IHJlc291cmNlICpyZXMpCnsKIHJldHVybiBy
ZXMtPmVuZCAtIHJlcy0+c3RhcnQgKyAxOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VfdHlwZShj
b25zdCBzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKewogcmV0dXJuIHJlcy0+ZmxhZ3MgJiAweDAwMDAx
ZjAwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VfZXh0X3R5cGUoY29uc3Qgc3RydWN0IHJlc291
cmNlICpyZXMpCnsKIHJldHVybiByZXMtPmZsYWdzICYgMHgwMTAwMDAwMDsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCByZXNv
dXJjZV9jb250YWlucyhzdHJ1Y3QgcmVzb3VyY2UgKnIxLCBzdHJ1Y3QgcmVzb3VyY2UgKnIyKQp7
CiBpZiAocmVzb3VyY2VfdHlwZShyMSkgIT0gcmVzb3VyY2VfdHlwZShyMikpCiAgcmV0dXJuIGZh
bHNlOwogaWYgKHIxLT5mbGFncyAmIDB4MjAwMDAwMDAgfHwgcjItPmZsYWdzICYgMHgyMDAwMDAw
MCkKICByZXR1cm4gZmFsc2U7CiByZXR1cm4gcjEtPnN0YXJ0IDw9IHIyLT5zdGFydCAmJiByMS0+
ZW5kID49IHIyLT5lbmQ7Cn0KIyAyMzggIi4vaW5jbHVkZS9saW51eC9pb3BvcnQuaCIKZXh0ZXJu
IHN0cnVjdCByZXNvdXJjZSAqIF9fcmVxdWVzdF9yZWdpb24oc3RydWN0IHJlc291cmNlICosCiAg
ICAgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LAogICAgIHJlc291cmNlX3NpemVfdCBuLAogICAgIGNv
bnN0IGNoYXIgKm5hbWUsIGludCBmbGFncyk7CgoKCgoKZXh0ZXJuIHZvaWQgX19yZWxlYXNlX3Jl
Z2lvbihzdHJ1Y3QgcmVzb3VyY2UgKiwgcmVzb3VyY2Vfc2l6ZV90LAogICAgcmVzb3VyY2Vfc2l6
ZV90KTsKCmV4dGVybiBpbnQgcmVsZWFzZV9tZW1fcmVnaW9uX2FkanVzdGFibGUoc3RydWN0IHJl
c291cmNlICosIHJlc291cmNlX3NpemVfdCwKICAgIHJlc291cmNlX3NpemVfdCk7CgoKCnN0cnVj
dCBkZXZpY2U7CgpleHRlcm4gaW50IGRldm1fcmVxdWVzdF9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNl
ICpkZXYsIHN0cnVjdCByZXNvdXJjZSAqcm9vdCwKICAgICBzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7
CmV4dGVybiB2b2lkIGRldm1fcmVsZWFzZV9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0
cnVjdCByZXNvdXJjZSAqbmV3KTsKCgoKCgoKZXh0ZXJuIHN0cnVjdCByZXNvdXJjZSAqIF9fZGV2
bV9yZXF1ZXN0X3JlZ2lvbihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgICBzdHJ1Y3QgcmVzb3VyY2Ug
KnBhcmVudCwgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LAogICAgcmVzb3VyY2Vfc2l6ZV90IG4sIGNv
bnN0IGNoYXIgKm5hbWUpOwoKCgoKCgpleHRlcm4gdm9pZCBfX2Rldm1fcmVsZWFzZV9yZWdpb24o
c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwKICAgICAgcmVzb3Vy
Y2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9zaXplX3Qgbik7CmV4dGVybiBpbnQgaW9tZW1fbWFw
X3Nhbml0eV9jaGVjayhyZXNvdXJjZV9zaXplX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKTsK
ZXh0ZXJuIGJvb2wgaW9tZW1faXNfZXhjbHVzaXZlKHU2NCBhZGRyKTsKCmV4dGVybiBpbnQKd2Fs
a19zeXN0ZW1fcmFtX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25n
IG5yX3BhZ2VzLAogIHZvaWQgKmFyZywgaW50ICgqZnVuYykodW5zaWduZWQgbG9uZywgdW5zaWdu
ZWQgbG9uZywgdm9pZCAqKSk7CmV4dGVybiBpbnQKd2Fsa19tZW1fcmVzKHU2NCBzdGFydCwgdTY0
IGVuZCwgdm9pZCAqYXJnLAogICAgICBpbnQgKCpmdW5jKShzdHJ1Y3QgcmVzb3VyY2UgKiwgdm9p
ZCAqKSk7CmV4dGVybiBpbnQKd2Fsa19zeXN0ZW1fcmFtX3Jlcyh1NjQgc3RhcnQsIHU2NCBlbmQs
IHZvaWQgKmFyZywKICAgICAgaW50ICgqZnVuYykoc3RydWN0IHJlc291cmNlICosIHZvaWQgKikp
OwpleHRlcm4gaW50CndhbGtfaW9tZW1fcmVzX2Rlc2ModW5zaWduZWQgbG9uZyBkZXNjLCB1bnNp
Z25lZCBsb25nIGZsYWdzLCB1NjQgc3RhcnQsIHU2NCBlbmQsCiAgICAgIHZvaWQgKmFyZywgaW50
ICgqZnVuYykoc3RydWN0IHJlc291cmNlICosIHZvaWQgKikpOwoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcmVzb3VyY2Vfb3Zl
cmxhcHMoc3RydWN0IHJlc291cmNlICpyMSwgc3RydWN0IHJlc291cmNlICpyMikKewogICAgICAg
cmV0dXJuIChyMS0+c3RhcnQgPD0gcjItPmVuZCAmJiByMS0+ZW5kID49IHIyLT5zdGFydCk7Cn0K
CnN0cnVjdCByZXNvdXJjZSAqZGV2bV9yZXF1ZXN0X2ZyZWVfbWVtX3JlZ2lvbihzdHJ1Y3QgZGV2
aWNlICpkZXYsCiAgc3RydWN0IHJlc291cmNlICpiYXNlLCB1bnNpZ25lZCBsb25nIHNpemUpOwpz
dHJ1Y3QgcmVzb3VyY2UgKnJlcXVlc3RfZnJlZV9tZW1fcmVnaW9uKHN0cnVjdCByZXNvdXJjZSAq
YmFzZSwKICB1bnNpZ25lZCBsb25nIHNpemUsIGNvbnN0IGNoYXIgKm5hbWUpOwojIDE3ICIuL2lu
Y2x1ZGUvbGludXgvZGV2aWNlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgva29iamVjdC5oIiAx
CiMgMjAgIi4vaW5jbHVkZS9saW51eC9rb2JqZWN0LmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3N5
c2ZzLmgiIDEKIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3N5c2ZzLmgiCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L2tlcm5mcy5oIiAxCiMgMTMgIi4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKIyAxICIuL2lu
Y2x1ZGUvbGludXgvaWRyLmgiIDEKIyAxOSAiLi9pbmNsdWRlL2xpbnV4L2lkci5oIgpzdHJ1Y3Qg
aWRyIHsKIHN0cnVjdCB4YXJyYXkgaWRyX3J0OwogdW5zaWduZWQgaW50IGlkcl9iYXNlOwogdW5z
aWduZWQgaW50IGlkcl9uZXh0Owp9OwojIDY2ICIuL2luY2x1ZGUvbGludXgvaWRyLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGludCBpZHJfZ2V0X2N1cnNvcihjb25zdCBzdHJ1Y3QgaWRyICppZHIpCnsKIHJldHVybiAo
eyB1bmlvbiB7IHR5cGVvZihpZHItPmlkcl9uZXh0KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191
OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKGlkci0+aWRyX25leHQpLCBfX3UuX19jLCBzaXpl
b2YoaWRyLT5pZHJfbmV4dCkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKGlkci0+
aWRyX25leHQpLCBfX3UuX19jLCBzaXplb2YoaWRyLT5pZHJfbmV4dCkpOyBkbyB7IH0gd2hpbGUg
KDApOyBfX3UuX192YWw7IH0pOwp9CiMgNzkgIi4vaW5jbHVkZS9saW51eC9pZHIuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBp
ZHJfc2V0X2N1cnNvcihzdHJ1Y3QgaWRyICppZHIsIHVuc2lnbmVkIGludCB2YWwpCnsKICh7IHVu
aW9uIHsgdHlwZW9mKGlkci0+aWRyX25leHQpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7
IC5fX3ZhbCA9ICggdHlwZW9mKGlkci0+aWRyX25leHQpKSAodmFsKSB9OyBfX3dyaXRlX29uY2Vf
c2l6ZSgmKGlkci0+aWRyX25leHQpLCBfX3UuX19jLCBzaXplb2YoaWRyLT5pZHJfbmV4dCkpOyBf
X3UuX192YWw7IH0pOwp9CiMgMTEyICIuL2luY2x1ZGUvbGludXgvaWRyLmgiCnZvaWQgaWRyX3By
ZWxvYWQoZ2ZwX3QgZ2ZwX21hc2spOwoKaW50IGlkcl9hbGxvYyhzdHJ1Y3QgaWRyICosIHZvaWQg
KnB0ciwgaW50IHN0YXJ0LCBpbnQgZW5kLCBnZnBfdCk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dh
cm5fdW51c2VkX3Jlc3VsdF9fKSkgaWRyX2FsbG9jX3UzMihzdHJ1Y3QgaWRyICosIHZvaWQgKnB0
ciwgdTMyICppZCwKICAgIHVuc2lnbmVkIGxvbmcgbWF4LCBnZnBfdCk7CmludCBpZHJfYWxsb2Nf
Y3ljbGljKHN0cnVjdCBpZHIgKiwgdm9pZCAqcHRyLCBpbnQgc3RhcnQsIGludCBlbmQsIGdmcF90
KTsKdm9pZCAqaWRyX3JlbW92ZShzdHJ1Y3QgaWRyICosIHVuc2lnbmVkIGxvbmcgaWQpOwp2b2lk
ICppZHJfZmluZChjb25zdCBzdHJ1Y3QgaWRyICosIHVuc2lnbmVkIGxvbmcgaWQpOwppbnQgaWRy
X2Zvcl9lYWNoKGNvbnN0IHN0cnVjdCBpZHIgKiwKICAgaW50ICgqZm4pKGludCBpZCwgdm9pZCAq
cCwgdm9pZCAqZGF0YSksIHZvaWQgKmRhdGEpOwp2b2lkICppZHJfZ2V0X25leHQoc3RydWN0IGlk
ciAqLCBpbnQgKm5leHRpZCk7CnZvaWQgKmlkcl9nZXRfbmV4dF91bChzdHJ1Y3QgaWRyICosIHVu
c2lnbmVkIGxvbmcgKm5leHRpZCk7CnZvaWQgKmlkcl9yZXBsYWNlKHN0cnVjdCBpZHIgKiwgdm9p
ZCAqLCB1bnNpZ25lZCBsb25nIGlkKTsKdm9pZCBpZHJfZGVzdHJveShzdHJ1Y3QgaWRyICopOwoj
IDEzNSAiLi9pbmNsdWRlL2xpbnV4L2lkci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlkcl9pbml0X2Jhc2Uoc3RydWN0IGlk
ciAqaWRyLCBpbnQgYmFzZSkKewogeGFfaW5pdF9mbGFncygmaWRyLT5pZHJfcnQsICgoKCBnZnBf
dCk0KSB8ICggZ2ZwX3QpICgxIDw8ICgoKDIzICsgMCkpICsgMCkpKSk7CiBpZHItPmlkcl9iYXNl
ID0gYmFzZTsKIGlkci0+aWRyX25leHQgPSAwOwp9CiMgMTQ5ICIuL2luY2x1ZGUvbGludXgvaWRy
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgaWRyX2luaXQoc3RydWN0IGlkciAqaWRyKQp7CiBpZHJfaW5pdF9iYXNlKGlkciwg
MCk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgaWRyX2lzX2VtcHR5KGNvbnN0IHN0cnVjdCBpZHIgKmlkcikKewog
cmV0dXJuIHJhZGl4X3RyZWVfZW1wdHkoJmlkci0+aWRyX3J0KSAmJgogIHJhZGl4X3RyZWVfdGFn
Z2VkKCZpZHItPmlkcl9ydCwgMCk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaWRyX3ByZWxvYWRfZW5kKHZvaWQp
CnsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KIyAyNDAgIi4vaW5j
bHVkZS9saW51eC9pZHIuaCIKc3RydWN0IGlkYV9iaXRtYXAgewogdW5zaWduZWQgbG9uZyBiaXRt
YXBbKDEyOCAvIHNpemVvZihsb25nKSldOwp9OwoKc3RydWN0IGlkYSB7CiBzdHJ1Y3QgeGFycmF5
IHhhOwp9OwojIDI1NSAiLi9pbmNsdWRlL2xpbnV4L2lkci5oIgppbnQgaWRhX2FsbG9jX3Jhbmdl
KHN0cnVjdCBpZGEgKiwgdW5zaWduZWQgaW50IG1pbiwgdW5zaWduZWQgaW50IG1heCwgZ2ZwX3Qp
Owp2b2lkIGlkYV9mcmVlKHN0cnVjdCBpZGEgKiwgdW5zaWduZWQgaW50IGlkKTsKdm9pZCBpZGFf
ZGVzdHJveShzdHJ1Y3QgaWRhICppZGEpOwojIDI3MCAiLi9pbmNsdWRlL2xpbnV4L2lkci5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgaWRhX2FsbG9jKHN0cnVjdCBpZGEgKmlkYSwgZ2ZwX3QgZ2ZwKQp7CiByZXR1cm4gaWRhX2Fs
bG9jX3JhbmdlKGlkYSwgMCwgfjAsIGdmcCk7Cn0KIyAyODcgIi4vaW5jbHVkZS9saW51eC9pZHIu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IGlkYV9hbGxvY19taW4oc3RydWN0IGlkYSAqaWRhLCB1bnNpZ25lZCBpbnQgbWluLCBn
ZnBfdCBnZnApCnsKIHJldHVybiBpZGFfYWxsb2NfcmFuZ2UoaWRhLCBtaW4sIH4wLCBnZnApOwp9
CiMgMzA0ICIuL2luY2x1ZGUvbGludXgvaWRyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBpZGFfYWxsb2NfbWF4KHN0cnVjdCBp
ZGEgKmlkYSwgdW5zaWduZWQgaW50IG1heCwgZ2ZwX3QgZ2ZwKQp7CiByZXR1cm4gaWRhX2FsbG9j
X3JhbmdlKGlkYSwgMCwgbWF4LCBnZnApOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlkYV9pbml0KHN0cnVjdCBpZGEgKmlk
YSkKewogeGFfaW5pdF9mbGFncygmaWRhLT54YSwgKCgoIGdmcF90KVhBX0xPQ0tfSVJRKSB8ICgo
KCBnZnBfdCk0VSkgfCAoKCBnZnBfdCkoKDFVIDw8ICgyMyArIDApKSA8PCAoIHVuc2lnbmVkKSgo
KCB4YV9tYXJrX3QpMFUpKSkpKSkpOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBpZGFfaXNfZW1wdHkoY29uc3Qgc3Ry
dWN0IGlkYSAqaWRhKQp7CiByZXR1cm4geGFfZW1wdHkoJmlkYS0+eGEpOwp9CiMgMTQgIi4vaW5j
bHVkZS9saW51eC9rZXJuZnMuaCIgMgoKCgoKCgpzdHJ1Y3QgZmlsZTsKc3RydWN0IGRlbnRyeTsK
c3RydWN0IGlhdHRyOwpzdHJ1Y3Qgc2VxX2ZpbGU7CnN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKc3Ry
dWN0IHN1cGVyX2Jsb2NrOwpzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZTsKc3RydWN0IHBvbGxfdGFi
bGVfc3RydWN0OwpzdHJ1Y3QgZnNfY29udGV4dDsKCnN0cnVjdCBrZXJuZnNfZnNfY29udGV4dDsK
c3RydWN0IGtlcm5mc19vcGVuX25vZGU7CnN0cnVjdCBrZXJuZnNfaWF0dHJzOwoKZW51bSBrZXJu
ZnNfbm9kZV90eXBlIHsKIEtFUk5GU19ESVIgPSAweDAwMDEsCiBLRVJORlNfRklMRSA9IDB4MDAw
MiwKIEtFUk5GU19MSU5LID0gMHgwMDA0LAp9OwoKCgoKZW51bSBrZXJuZnNfbm9kZV9mbGFnIHsK
IEtFUk5GU19BQ1RJVkFURUQgPSAweDAwMTAsCiBLRVJORlNfTlMgPSAweDAwMjAsCiBLRVJORlNf
SEFTX1NFUV9TSE9XID0gMHgwMDQwLAogS0VSTkZTX0hBU19NTUFQID0gMHgwMDgwLAogS0VSTkZT
X0xPQ0tERVAgPSAweDAxMDAsCiBLRVJORlNfU1VJQ0lEQUwgPSAweDA0MDAsCiBLRVJORlNfU1VJ
Q0lERUQgPSAweDA4MDAsCiBLRVJORlNfRU1QVFlfRElSID0gMHgxMDAwLAogS0VSTkZTX0hBU19S
RUxFQVNFID0gMHgyMDAwLAp9OwoKCmVudW0ga2VybmZzX3Jvb3RfZmxhZyB7CgoKCgoKCiBLRVJO
RlNfUk9PVF9DUkVBVEVfREVBQ1RJVkFURUQgPSAweDAwMDEsCiMgNzQgIi4vaW5jbHVkZS9saW51
eC9rZXJuZnMuaCIKIEtFUk5GU19ST09UX0VYVFJBX09QRU5fUEVSTV9DSEVDSyA9IDB4MDAwMiwK
CgoKCgogS0VSTkZTX1JPT1RfU1VQUE9SVF9FWFBPUlRPUCA9IDB4MDAwNCwKfTsKCgpzdHJ1Y3Qg
a2VybmZzX2VsZW1fZGlyIHsKIHVuc2lnbmVkIGxvbmcgc3ViZGlyczsKCiBzdHJ1Y3QgcmJfcm9v
dCBjaGlsZHJlbjsKCgoKCgogc3RydWN0IGtlcm5mc19yb290ICpyb290Owp9OwoKc3RydWN0IGtl
cm5mc19lbGVtX3N5bWxpbmsgewogc3RydWN0IGtlcm5mc19ub2RlICp0YXJnZXRfa247Cn07Cgpz
dHJ1Y3Qga2VybmZzX2VsZW1fYXR0ciB7CiBjb25zdCBzdHJ1Y3Qga2VybmZzX29wcyAqb3BzOwog
c3RydWN0IGtlcm5mc19vcGVuX25vZGUgKm9wZW47CiBsb2ZmX3Qgc2l6ZTsKIHN0cnVjdCBrZXJu
ZnNfbm9kZSAqbm90aWZ5X25leHQ7Cn07CiMgMTE2ICIuL2luY2x1ZGUvbGludXgva2VybmZzLmgi
CnN0cnVjdCBrZXJuZnNfbm9kZSB7CiBhdG9taWNfdCBjb3VudDsKIGF0b21pY190IGFjdGl2ZTsK
IyAxMjggIi4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKIHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFy
ZW50OwogY29uc3QgY2hhciAqbmFtZTsKCiBzdHJ1Y3QgcmJfbm9kZSByYjsKCiBjb25zdCB2b2lk
ICpuczsKIHVuc2lnbmVkIGludCBoYXNoOwogdW5pb24gewogIHN0cnVjdCBrZXJuZnNfZWxlbV9k
aXIgZGlyOwogIHN0cnVjdCBrZXJuZnNfZWxlbV9zeW1saW5rIHN5bWxpbms7CiAgc3RydWN0IGtl
cm5mc19lbGVtX2F0dHIgYXR0cjsKIH07Cgogdm9pZCAqcHJpdjsKCgoKCgogdTY0IGlkOwoKIHVu
c2lnbmVkIHNob3J0IGZsYWdzOwogdW1vZGVfdCBtb2RlOwogc3RydWN0IGtlcm5mc19pYXR0cnMg
KmlhdHRyOwp9OwojIDE2MSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5mcy5oIgpzdHJ1Y3Qga2VybmZz
X3N5c2NhbGxfb3BzIHsKIGludCAoKnNob3dfb3B0aW9ucykoc3RydWN0IHNlcV9maWxlICpzZiwg
c3RydWN0IGtlcm5mc19yb290ICpyb290KTsKCiBpbnQgKCpta2Rpcikoc3RydWN0IGtlcm5mc19u
b2RlICpwYXJlbnQsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICB1bW9kZV90IG1vZGUpOwogaW50
ICgqcm1kaXIpKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pOwogaW50ICgqcmVuYW1lKShzdHJ1Y3Qg
a2VybmZzX25vZGUgKmtuLCBzdHJ1Y3Qga2VybmZzX25vZGUgKm5ld19wYXJlbnQsCiAgICAgICAg
Y29uc3QgY2hhciAqbmV3X25hbWUpOwogaW50ICgqc2hvd19wYXRoKShzdHJ1Y3Qgc2VxX2ZpbGUg
KnNmLCBzdHJ1Y3Qga2VybmZzX25vZGUgKmtuLAogICAgc3RydWN0IGtlcm5mc19yb290ICpyb290
KTsKfTsKCnN0cnVjdCBrZXJuZnNfcm9vdCB7Cgogc3RydWN0IGtlcm5mc19ub2RlICprbjsKIHVu
c2lnbmVkIGludCBmbGFnczsKCgogc3RydWN0IGlkciBpbm9faWRyOwogdTMyIGxhc3RfaWRfbG93
Yml0czsKIHUzMiBpZF9oaWdoYml0czsKIHN0cnVjdCBrZXJuZnNfc3lzY2FsbF9vcHMgKnN5c2Nh
bGxfb3BzOwoKCiBzdHJ1Y3QgbGlzdF9oZWFkIHN1cGVyczsKCiB3YWl0X3F1ZXVlX2hlYWRfdCBk
ZWFjdGl2YXRlX3dhaXRxOwp9OwoKc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgewoKIHN0cnVjdCBr
ZXJuZnNfbm9kZSAqa247CiBzdHJ1Y3QgZmlsZSAqZmlsZTsKIHN0cnVjdCBzZXFfZmlsZSAqc2Vx
X2ZpbGU7CiB2b2lkICpwcml2OwoKCiBzdHJ1Y3QgbXV0ZXggbXV0ZXg7CiBzdHJ1Y3QgbXV0ZXgg
cHJlYWxsb2NfbXV0ZXg7CiBpbnQgZXZlbnQ7CiBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiBjaGFy
ICpwcmVhbGxvY19idWY7Cgogc2l6ZV90IGF0b21pY193cml0ZV9sZW47CiBib29sIG1tYXBwZWQ6
MTsKIGJvb2wgcmVsZWFzZWQ6MTsKIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCAq
dm1fb3BzOwp9OwoKc3RydWN0IGtlcm5mc19vcHMgewoKCgoKIGludCAoKm9wZW4pKHN0cnVjdCBr
ZXJuZnNfb3Blbl9maWxlICpvZik7CiB2b2lkICgqcmVsZWFzZSkoc3RydWN0IGtlcm5mc19vcGVu
X2ZpbGUgKm9mKTsKIyAyMjkgIi4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKIGludCAoKnNlcV9z
aG93KShzdHJ1Y3Qgc2VxX2ZpbGUgKnNmLCB2b2lkICp2KTsKCiB2b2lkICooKnNlcV9zdGFydCko
c3RydWN0IHNlcV9maWxlICpzZiwgbG9mZl90ICpwcG9zKTsKIHZvaWQgKigqc2VxX25leHQpKHN0
cnVjdCBzZXFfZmlsZSAqc2YsIHZvaWQgKnYsIGxvZmZfdCAqcHBvcyk7CiB2b2lkICgqc2VxX3N0
b3ApKHN0cnVjdCBzZXFfZmlsZSAqc2YsIHZvaWQgKnYpOwoKIHNzaXplX3QgKCpyZWFkKShzdHJ1
Y3Qga2VybmZzX29wZW5fZmlsZSAqb2YsIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ5dGVzLAogICBsb2Zm
X3Qgb2ZmKTsKIyAyNDUgIi4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKIHNpemVfdCBhdG9taWNf
d3JpdGVfbGVuOwoKCgoKCgogYm9vbCBwcmVhbGxvYzsKIHNzaXplX3QgKCp3cml0ZSkoc3RydWN0
IGtlcm5mc19vcGVuX2ZpbGUgKm9mLCBjaGFyICpidWYsIHNpemVfdCBieXRlcywKICAgIGxvZmZf
dCBvZmYpOwoKIF9fcG9sbF90ICgqcG9sbCkoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLAog
ICAgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0ICpwdCk7CgogaW50ICgqbW1hcCkoc3RydWN0IGtl
cm5mc19vcGVuX2ZpbGUgKm9mLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CgoKCgp9OwoK
CgoKc3RydWN0IGtlcm5mc19mc19jb250ZXh0IHsKIHN0cnVjdCBrZXJuZnNfcm9vdCAqcm9vdDsK
IHZvaWQgKm5zX3RhZzsKIHVuc2lnbmVkIGxvbmcgbWFnaWM7CgoKIGJvb2wgbmV3X3NiX2NyZWF0
ZWQ7Cn07CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGVudW0ga2VybmZzX25vZGVfdHlwZSBrZXJuZnNfdHlwZShzdHJ1Y3Qga2VybmZz
X25vZGUgKmtuKQp7CiByZXR1cm4ga24tPmZsYWdzICYgMHgwMDBmOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbm9fdCBrZXJuZnNf
aWRfaW5vKHU2NCBpZCkKewoKIGlmIChzaXplb2YoaW5vX3QpID49IHNpemVvZih1NjQpKQogIHJl
dHVybiBpZDsKIGVsc2UKICByZXR1cm4gKHUzMilpZDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIGtlcm5mc19pZF9nZW4odTY0
IGlkKQp7CgogaWYgKHNpemVvZihpbm9fdCkgPj0gc2l6ZW9mKHU2NCkpCiAgcmV0dXJuIDE7CiBl
bHNlCiAgcmV0dXJuIGlkID4+IDMyOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbm9fdCBrZXJuZnNfaW5vKHN0cnVjdCBrZXJuZnNf
bm9kZSAqa24pCnsKIHJldHVybiBrZXJuZnNfaWRfaW5vKGtuLT5pZCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlub190IGtlcm5m
c19nZW4oc3RydWN0IGtlcm5mc19ub2RlICprbikKewogcmV0dXJuIGtlcm5mc19pZF9nZW4oa24t
PmlkKTsKfQojIDMyMSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5mcy5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGtlcm5mc19lbmFi
bGVfbnMoc3RydWN0IGtlcm5mc19ub2RlICprbikKewogKHsgaW50IF9fcmV0X3dhcm5fb24gPSAh
IShrZXJuZnNfdHlwZShrbikgIT0gS0VSTkZTX0RJUik7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEh
KF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpc
dCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3
XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2Fk
ZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4i
ICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQj
IGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDog
ImkiICgiaW5jbHVkZS9saW51eC9rZXJuZnMuaCIpLCAiaSIgKDMyMyksICJpIiAoKDEgPDwgMCl8
KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkp
OyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25c
blx0IiA6IDogImkiICgzNSkpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEo
X19yZXRfd2Fybl9vbiksIDApOyB9KTsKICh7IGludCBfX3JldF93YXJuX29uID0gISEoISgoeyB1
bmlvbiB7IHR5cGVvZigoJmtuLT5kaXIuY2hpbGRyZW4pLT5yYl9ub2RlKSBfX3ZhbDsgY2hhciBf
X2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKCgma24tPmRpci5jaGlsZHJl
biktPnJiX25vZGUpLCBfX3UuX19jLCBzaXplb2YoKCZrbi0+ZGlyLmNoaWxkcmVuKS0+cmJfbm9k
ZSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCgma24tPmRpci5jaGlsZHJlbikt
PnJiX25vZGUpLCBfX3UuX19jLCBzaXplb2YoKCZrbi0+ZGlyLmNoaWxkcmVuKS0+cmJfbm9kZSkp
OyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pID09ICgodm9pZCAqKTApKSk7IGlmIChf
X2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lu
bGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlv
biBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQj
IGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMg
YnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIg
Ilx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIg
Ii5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9rZXJuZnMuaCIpLCAiaSIgKDMy
NCksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihz
dHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5c
blx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgzNikpOyB9KTsgfSB3aGlsZSAoMCk7IF9f
YnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKIGtuLT5mbGFncyB8PSBL
RVJORlNfTlM7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wga2VybmZzX25zX2VuYWJsZWQoc3RydWN0IGtlcm5mc19u
b2RlICprbikKewogcmV0dXJuIGtuLT5mbGFncyAmIEtFUk5GU19OUzsKfQoKaW50IGtlcm5mc19u
YW1lKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zmxlbik7Cmlu
dCBrZXJuZnNfcGF0aF9mcm9tX25vZGUoc3RydWN0IGtlcm5mc19ub2RlICpyb290X2tuLCBzdHJ1
Y3Qga2VybmZzX25vZGUgKmtuLAogICAgIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zmxlbik7CnZvaWQg
cHJfY29udF9rZXJuZnNfbmFtZShzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKdm9pZCBwcl9jb250
X2tlcm5mc19wYXRoKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pOwpzdHJ1Y3Qga2VybmZzX25vZGUg
Kmtlcm5mc19nZXRfcGFyZW50KHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pOwpzdHJ1Y3Qga2VybmZz
X25vZGUgKmtlcm5mc19maW5kX2FuZF9nZXRfbnMoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQs
CiAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgdm9pZCAqbnMpOwpzdHJ1Y3Qga2VybmZz
X25vZGUgKmtlcm5mc193YWxrX2FuZF9nZXRfbnMoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQs
CiAgICAgICAgY29uc3QgY2hhciAqcGF0aCwgY29uc3Qgdm9pZCAqbnMpOwp2b2lkIGtlcm5mc19n
ZXQoc3RydWN0IGtlcm5mc19ub2RlICprbik7CnZvaWQga2VybmZzX3B1dChzdHJ1Y3Qga2VybmZz
X25vZGUgKmtuKTsKCnN0cnVjdCBrZXJuZnNfbm9kZSAqa2VybmZzX25vZGVfZnJvbV9kZW50cnko
c3RydWN0IGRlbnRyeSAqZGVudHJ5KTsKc3RydWN0IGtlcm5mc19yb290ICprZXJuZnNfcm9vdF9m
cm9tX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwpzdHJ1Y3QgaW5vZGUgKmtlcm5mc19nZXRf
aW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtlcm5mc19ub2RlICprbik7Cgpz
dHJ1Y3QgZGVudHJ5ICprZXJuZnNfbm9kZV9kZW50cnkoc3RydWN0IGtlcm5mc19ub2RlICprbiwK
ICAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CnN0cnVjdCBrZXJuZnNfcm9vdCAqa2VybmZz
X2NyZWF0ZV9yb290KHN0cnVjdCBrZXJuZnNfc3lzY2FsbF9vcHMgKnNjb3BzLAogICAgICAgICAg
IHVuc2lnbmVkIGludCBmbGFncywgdm9pZCAqcHJpdik7CnZvaWQga2VybmZzX2Rlc3Ryb3lfcm9v
dChzdHJ1Y3Qga2VybmZzX3Jvb3QgKnJvb3QpOwoKc3RydWN0IGtlcm5mc19ub2RlICprZXJuZnNf
Y3JlYXRlX2Rpcl9ucyhzdHJ1Y3Qga2VybmZzX25vZGUgKnBhcmVudCwKICAgICAgY29uc3QgY2hh
ciAqbmFtZSwgdW1vZGVfdCBtb2RlLAogICAgICBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAogICAg
ICB2b2lkICpwcml2LCBjb25zdCB2b2lkICpucyk7CnN0cnVjdCBrZXJuZnNfbm9kZSAqa2VybmZz
X2NyZWF0ZV9lbXB0eV9kaXIoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsCiAgICAgICAgIGNv
bnN0IGNoYXIgKm5hbWUpOwpzdHJ1Y3Qga2VybmZzX25vZGUgKl9fa2VybmZzX2NyZWF0ZV9maWxl
KHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFyZW50LAogICAgICBjb25zdCBjaGFyICpuYW1lLCB1bW9k
ZV90IG1vZGUsCiAgICAgIGt1aWRfdCB1aWQsIGtnaWRfdCBnaWQsCiAgICAgIGxvZmZfdCBzaXpl
LAogICAgICBjb25zdCBzdHJ1Y3Qga2VybmZzX29wcyAqb3BzLAogICAgICB2b2lkICpwcml2LCBj
b25zdCB2b2lkICpucywKICAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpOwpzdHJ1Y3Qg
a2VybmZzX25vZGUgKmtlcm5mc19jcmVhdGVfbGluayhzdHJ1Y3Qga2VybmZzX25vZGUgKnBhcmVu
dCwKICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgIHN0cnVjdCBrZXJuZnNf
bm9kZSAqdGFyZ2V0KTsKdm9pZCBrZXJuZnNfYWN0aXZhdGUoc3RydWN0IGtlcm5mc19ub2RlICpr
bik7CnZvaWQga2VybmZzX3JlbW92ZShzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKdm9pZCBrZXJu
ZnNfYnJlYWtfYWN0aXZlX3Byb3RlY3Rpb24oc3RydWN0IGtlcm5mc19ub2RlICprbik7CnZvaWQg
a2VybmZzX3VuYnJlYWtfYWN0aXZlX3Byb3RlY3Rpb24oc3RydWN0IGtlcm5mc19ub2RlICprbik7
CmJvb2wga2VybmZzX3JlbW92ZV9zZWxmKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pOwppbnQga2Vy
bmZzX3JlbW92ZV9ieV9uYW1lX25zKHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFyZW50LCBjb25zdCBj
aGFyICpuYW1lLAogICAgICAgIGNvbnN0IHZvaWQgKm5zKTsKaW50IGtlcm5mc19yZW5hbWVfbnMo
c3RydWN0IGtlcm5mc19ub2RlICprbiwgc3RydWN0IGtlcm5mc19ub2RlICpuZXdfcGFyZW50LAog
ICAgICAgY29uc3QgY2hhciAqbmV3X25hbWUsIGNvbnN0IHZvaWQgKm5ld19ucyk7CmludCBrZXJu
ZnNfc2V0YXR0cihzdHJ1Y3Qga2VybmZzX25vZGUgKmtuLCBjb25zdCBzdHJ1Y3QgaWF0dHIgKmlh
dHRyKTsKX19wb2xsX3Qga2VybmZzX2dlbmVyaWNfcG9sbChzdHJ1Y3Qga2VybmZzX29wZW5fZmls
ZSAqb2YsCiAgICAgICAgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0ICpwdCk7CnZvaWQga2VybmZz
X25vdGlmeShzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKCmludCBrZXJuZnNfeGF0dHJfZ2V0KHN0
cnVjdCBrZXJuZnNfbm9kZSAqa24sIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICB2b2lkICp2YWx1
ZSwgc2l6ZV90IHNpemUpOwppbnQga2VybmZzX3hhdHRyX3NldChzdHJ1Y3Qga2VybmZzX25vZGUg
KmtuLCBjb25zdCBjaGFyICpuYW1lLAogICAgICAgY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBz
aXplLCBpbnQgZmxhZ3MpOwoKY29uc3Qgdm9pZCAqa2VybmZzX3N1cGVyX25zKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IpOwppbnQga2VybmZzX2dldF90cmVlKHN0cnVjdCBmc19jb250ZXh0ICpmYyk7
CnZvaWQga2VybmZzX2ZyZWVfZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpOwp2b2lk
IGtlcm5mc19raWxsX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoKdm9pZCBrZXJuZnNfaW5p
dCh2b2lkKTsKCnN0cnVjdCBrZXJuZnNfbm9kZSAqa2VybmZzX2ZpbmRfYW5kX2dldF9ub2RlX2J5
X2lkKHN0cnVjdCBrZXJuZnNfcm9vdCAqcm9vdCwKICAgICAgICAgdTY0IGlkKTsKIyA1MzMgIi4v
aW5jbHVkZS9saW51eC9rZXJuZnMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGtlcm5mc19wYXRoKHN0cnVjdCBrZXJuZnNfbm9k
ZSAqa24sIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1ZmxlbikKewogcmV0dXJuIGtlcm5mc19wYXRoX2Zy
b21fbm9kZShrbiwgKCh2b2lkICopMCksIGJ1ZiwgYnVmbGVuKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtlcm5mc19u
b2RlICoKa2VybmZzX2ZpbmRfYW5kX2dldChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuLCBjb25zdCBj
aGFyICpuYW1lKQp7CiByZXR1cm4ga2VybmZzX2ZpbmRfYW5kX2dldF9ucyhrbiwgbmFtZSwgKCh2
b2lkICopMCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2VybmZzX25vZGUgKgprZXJuZnNfd2Fsa19hbmRfZ2V0KHN0
cnVjdCBrZXJuZnNfbm9kZSAqa24sIGNvbnN0IGNoYXIgKnBhdGgpCnsKIHJldHVybiBrZXJuZnNf
d2Fsa19hbmRfZ2V0X25zKGtuLCBwYXRoLCAoKHZvaWQgKikwKSk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrZXJuZnNf
bm9kZSAqCmtlcm5mc19jcmVhdGVfZGlyKHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFyZW50LCBjb25z
dCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCiAgICB2b2lkICpwcml2KQp7CiByZXR1cm4ga2Vy
bmZzX2NyZWF0ZV9kaXJfbnMocGFyZW50LCBuYW1lLCBtb2RlLAogICAgICAgIChrdWlkX3QpeyAw
IH0sIChrZ2lkX3QpeyAwIH0sCiAgICAgICAgcHJpdiwgKCh2b2lkICopMCkpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qg
a2VybmZzX25vZGUgKgprZXJuZnNfY3JlYXRlX2ZpbGVfbnMoc3RydWN0IGtlcm5mc19ub2RlICpw
YXJlbnQsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgdW1vZGVfdCBtb2RlLCBrdWlkX3QgdWlk
LCBrZ2lkX3QgZ2lkLAogICAgICAgIGxvZmZfdCBzaXplLCBjb25zdCBzdHJ1Y3Qga2VybmZzX29w
cyAqb3BzLAogICAgICAgIHZvaWQgKnByaXYsIGNvbnN0IHZvaWQgKm5zKQp7CiBzdHJ1Y3QgbG9j
a19jbGFzc19rZXkgKmtleSA9ICgodm9pZCAqKTApOwoKCgoKIHJldHVybiBfX2tlcm5mc19jcmVh
dGVfZmlsZShwYXJlbnQsIG5hbWUsIG1vZGUsIHVpZCwgZ2lkLAogICAgICAgIHNpemUsIG9wcywg
cHJpdiwgbnMsIGtleSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrZXJuZnNfbm9kZSAqCmtlcm5mc19jcmVhdGVfZmls
ZShzdHJ1Y3Qga2VybmZzX25vZGUgKnBhcmVudCwgY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBt
b2RlLAogICAgIGxvZmZfdCBzaXplLCBjb25zdCBzdHJ1Y3Qga2VybmZzX29wcyAqb3BzLCB2b2lk
ICpwcml2KQp7CiByZXR1cm4ga2VybmZzX2NyZWF0ZV9maWxlX25zKHBhcmVudCwgbmFtZSwgbW9k
ZSwKICAgICAgICAgKGt1aWRfdCl7IDAgfSwgKGtnaWRfdCl7IDAgfSwKICAgICAgICAgc2l6ZSwg
b3BzLCBwcml2LCAoKHZvaWQgKikwKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBrZXJuZnNfcmVtb3ZlX2J5X25hbWUoc3Ry
dWN0IGtlcm5mc19ub2RlICpwYXJlbnQsCiAgICAgY29uc3QgY2hhciAqbmFtZSkKewogcmV0dXJu
IGtlcm5mc19yZW1vdmVfYnlfbmFtZV9ucyhwYXJlbnQsIG5hbWUsICgodm9pZCAqKTApKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IGtlcm5mc19yZW5hbWUoc3RydWN0IGtlcm5mc19ub2RlICprbiwKICAgIHN0cnVjdCBrZXJu
ZnNfbm9kZSAqbmV3X3BhcmVudCwKICAgIGNvbnN0IGNoYXIgKm5ld19uYW1lKQp7CiByZXR1cm4g
a2VybmZzX3JlbmFtZV9ucyhrbiwgbmV3X3BhcmVudCwgbmV3X25hbWUsICgodm9pZCAqKTApKTsK
fQojIDE3ICIuL2luY2x1ZGUvbGludXgvc3lzZnMuaCIgMgoKCgoKIyAxICIuL2luY2x1ZGUvbGlu
dXgva29iamVjdF9ucy5oIiAxCiMgMTkgIi4vaW5jbHVkZS9saW51eC9rb2JqZWN0X25zLmgiCnN0
cnVjdCBzb2NrOwpzdHJ1Y3Qga29iamVjdDsKCgoKCgplbnVtIGtvYmpfbnNfdHlwZSB7CiBLT0JK
X05TX1RZUEVfTk9ORSA9IDAsCiBLT0JKX05TX1RZUEVfTkVULAogS09CSl9OU19UWVBFUwp9Owoj
IDM5ICIuL2luY2x1ZGUvbGludXgva29iamVjdF9ucy5oIgpzdHJ1Y3Qga29ial9uc190eXBlX29w
ZXJhdGlvbnMgewogZW51bSBrb2JqX25zX3R5cGUgdHlwZTsKIGJvb2wgKCpjdXJyZW50X21heV9t
b3VudCkodm9pZCk7CiB2b2lkICooKmdyYWJfY3VycmVudF9ucykodm9pZCk7CiBjb25zdCB2b2lk
ICooKm5ldGxpbmtfbnMpKHN0cnVjdCBzb2NrICpzayk7CiBjb25zdCB2b2lkICooKmluaXRpYWxf
bnMpKHZvaWQpOwogdm9pZCAoKmRyb3BfbnMpKHZvaWQgKik7Cn07CgppbnQga29ial9uc190eXBl
X3JlZ2lzdGVyKGNvbnN0IHN0cnVjdCBrb2JqX25zX3R5cGVfb3BlcmF0aW9ucyAqb3BzKTsKaW50
IGtvYmpfbnNfdHlwZV9yZWdpc3RlcmVkKGVudW0ga29ial9uc190eXBlIHR5cGUpOwpjb25zdCBz
dHJ1Y3Qga29ial9uc190eXBlX29wZXJhdGlvbnMgKmtvYmpfY2hpbGRfbnNfb3BzKHN0cnVjdCBr
b2JqZWN0ICpwYXJlbnQpOwpjb25zdCBzdHJ1Y3Qga29ial9uc190eXBlX29wZXJhdGlvbnMgKmtv
YmpfbnNfb3BzKHN0cnVjdCBrb2JqZWN0ICprb2JqKTsKCmJvb2wga29ial9uc19jdXJyZW50X21h
eV9tb3VudChlbnVtIGtvYmpfbnNfdHlwZSB0eXBlKTsKdm9pZCAqa29ial9uc19ncmFiX2N1cnJl
bnQoZW51bSBrb2JqX25zX3R5cGUgdHlwZSk7CmNvbnN0IHZvaWQgKmtvYmpfbnNfbmV0bGluayhl
bnVtIGtvYmpfbnNfdHlwZSB0eXBlLCBzdHJ1Y3Qgc29jayAqc2spOwpjb25zdCB2b2lkICprb2Jq
X25zX2luaXRpYWwoZW51bSBrb2JqX25zX3R5cGUgdHlwZSk7CnZvaWQga29ial9uc19kcm9wKGVu
dW0ga29ial9uc190eXBlIHR5cGUsIHZvaWQgKm5zKTsKIyAyMiAiLi9pbmNsdWRlL2xpbnV4L3N5
c2ZzLmgiIDIKCgoKc3RydWN0IGtvYmplY3Q7CnN0cnVjdCBtb2R1bGU7CnN0cnVjdCBiaW5fYXR0
cmlidXRlOwplbnVtIGtvYmpfbnNfdHlwZTsKCnN0cnVjdCBhdHRyaWJ1dGUgewogY29uc3QgY2hh
ciAqbmFtZTsKIHVtb2RlX3QgbW9kZTsKCgoKCgp9OwojIDg0ICIuL2luY2x1ZGUvbGludXgvc3lz
ZnMuaCIKc3RydWN0IGF0dHJpYnV0ZV9ncm91cCB7CiBjb25zdCBjaGFyICpuYW1lOwogdW1vZGVf
dCAoKmlzX3Zpc2libGUpKHN0cnVjdCBrb2JqZWN0ICosCiAgICAgICAgICAgc3RydWN0IGF0dHJp
YnV0ZSAqLCBpbnQpOwogdW1vZGVfdCAoKmlzX2Jpbl92aXNpYmxlKShzdHJ1Y3Qga29iamVjdCAq
LAogICAgICAgIHN0cnVjdCBiaW5fYXR0cmlidXRlICosIGludCk7CiBzdHJ1Y3QgYXR0cmlidXRl
ICoqYXR0cnM7CiBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqKmJpbl9hdHRyczsKfTsKIyAxNTggIi4v
aW5jbHVkZS9saW51eC9zeXNmcy5oIgpzdHJ1Y3QgZmlsZTsKc3RydWN0IHZtX2FyZWFfc3RydWN0
OwoKc3RydWN0IGJpbl9hdHRyaWJ1dGUgewogc3RydWN0IGF0dHJpYnV0ZSBhdHRyOwogc2l6ZV90
IHNpemU7CiB2b2lkICpwcml2YXRlOwogc3NpemVfdCAoKnJlYWQpKHN0cnVjdCBmaWxlICosIHN0
cnVjdCBrb2JqZWN0ICosIHN0cnVjdCBiaW5fYXR0cmlidXRlICosCiAgIGNoYXIgKiwgbG9mZl90
LCBzaXplX3QpOwogc3NpemVfdCAoKndyaXRlKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qga29iamVj
dCAqLCBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqLAogICAgY2hhciAqLCBsb2ZmX3QsIHNpemVfdCk7
CiBpbnQgKCptbWFwKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qga29iamVjdCAqLCBzdHJ1Y3QgYmlu
X2F0dHJpYnV0ZSAqYXR0ciwKICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwp9Owoj
IDIyMyAiLi9pbmNsdWRlL2xpbnV4L3N5c2ZzLmgiCnN0cnVjdCBzeXNmc19vcHMgewogc3NpemVf
dCAoKnNob3cpKHN0cnVjdCBrb2JqZWN0ICosIHN0cnVjdCBhdHRyaWJ1dGUgKiwgY2hhciAqKTsK
IHNzaXplX3QgKCpzdG9yZSkoc3RydWN0IGtvYmplY3QgKiwgc3RydWN0IGF0dHJpYnV0ZSAqLCBj
b25zdCBjaGFyICosIHNpemVfdCk7Cn07CgoKCmludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51
c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2Rpcl9ucyhzdHJ1Y3Qga29iamVjdCAqa29iaiwg
Y29uc3Qgdm9pZCAqbnMpOwp2b2lkIHN5c2ZzX3JlbW92ZV9kaXIoc3RydWN0IGtvYmplY3QgKmtv
YmopOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX3Jl
bmFtZV9kaXJfbnMoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKm5ld19uYW1lLAog
ICAgICAgICBjb25zdCB2b2lkICpuZXdfbnMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIHN5c2ZzX21vdmVfZGlyX25zKHN0cnVjdCBrb2JqZWN0ICprb2JqLAog
ICAgICAgc3RydWN0IGtvYmplY3QgKm5ld19wYXJlbnRfa29iaiwKICAgICAgIGNvbnN0IHZvaWQg
Km5ld19ucyk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lz
ZnNfY3JlYXRlX21vdW50X3BvaW50KHN0cnVjdCBrb2JqZWN0ICpwYXJlbnRfa29iaiwKICAgICAg
IGNvbnN0IGNoYXIgKm5hbWUpOwp2b2lkIHN5c2ZzX3JlbW92ZV9tb3VudF9wb2ludChzdHJ1Y3Qg
a29iamVjdCAqcGFyZW50X2tvYmosCiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOwoKaW50IF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc19jcmVhdGVfZmlsZV9u
cyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUg
KmF0dHIsCiAgICAgICAgICBjb25zdCB2b2lkICpucyk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dh
cm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2ZpbGVzKHN0cnVjdCBrb2JqZWN0ICpr
b2JqLAogICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqIGNvbnN0ICphdHRyKTsKaW50IF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc19jaG1vZF9maWxlKHN0
cnVjdCBrb2JqZWN0ICprb2JqLAogICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCB1
bW9kZV90IG1vZGUpOwpzdHJ1Y3Qga2VybmZzX25vZGUgKnN5c2ZzX2JyZWFrX2FjdGl2ZV9wcm90
ZWN0aW9uKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1
dGUgKmF0dHIpOwp2b2lkIHN5c2ZzX3VuYnJlYWtfYWN0aXZlX3Byb3RlY3Rpb24oc3RydWN0IGtl
cm5mc19ub2RlICprbik7CnZvaWQgc3lzZnNfcmVtb3ZlX2ZpbGVfbnMoc3RydWN0IGtvYmplY3Qg
KmtvYmosIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCiAgICAgY29uc3Qgdm9pZCAqbnMp
Owpib29sIHN5c2ZzX3JlbW92ZV9maWxlX3NlbGYoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0
IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpOwp2b2lkIHN5c2ZzX3JlbW92ZV9maWxlcyhzdHJ1Y3Qg
a29iamVjdCAqa29iaiwgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqIGNvbnN0ICphdHRyKTsKCmlu
dCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2Jp
bl9maWxlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogICAgICAgICAgIGNvbnN0IHN0cnVjdCBiaW5f
YXR0cmlidXRlICphdHRyKTsKdm9pZCBzeXNmc19yZW1vdmVfYmluX2ZpbGUoc3RydWN0IGtvYmpl
Y3QgKmtvYmosCiAgICAgIGNvbnN0IHN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyKTsKCmludCBf
X2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2xpbmso
c3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBrb2JqZWN0ICp0YXJnZXQsCiAgICAgICBjb25z
dCBjaGFyICpuYW1lKTsKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18p
KSBzeXNmc19jcmVhdGVfbGlua19ub3dhcm4oc3RydWN0IGtvYmplY3QgKmtvYmosCiAgICAgICBz
dHJ1Y3Qga29iamVjdCAqdGFyZ2V0LAogICAgICAgY29uc3QgY2hhciAqbmFtZSk7CnZvaWQgc3lz
ZnNfcmVtb3ZlX2xpbmsoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKm5hbWUpOwoK
aW50IHN5c2ZzX3JlbmFtZV9saW5rX25zKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29i
amVjdCAqdGFyZ2V0LAogICAgY29uc3QgY2hhciAqb2xkX25hbWUsIGNvbnN0IGNoYXIgKm5ld19u
YW1lLAogICAgY29uc3Qgdm9pZCAqbmV3X25zKTsKCnZvaWQgc3lzZnNfZGVsZXRlX2xpbmsoc3Ry
dWN0IGtvYmplY3QgKmRpciwgc3RydWN0IGtvYmplY3QgKnRhcmcsCiAgIGNvbnN0IGNoYXIgKm5h
bWUpOwoKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc19j
cmVhdGVfZ3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosCiAgICAgICAgY29uc3Qgc3RydWN0IGF0
dHJpYnV0ZV9ncm91cCAqZ3JwKTsKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVz
dWx0X18pKSBzeXNmc19jcmVhdGVfZ3JvdXBzKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogICAgICAg
ICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZ3JvdXBzKTsKaW50IF9fYXR0cmlidXRl
X18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc191cGRhdGVfZ3JvdXBzKHN0cnVjdCBr
b2JqZWN0ICprb2JqLAogICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZ3Jv
dXBzKTsKaW50IHN5c2ZzX3VwZGF0ZV9ncm91cChzdHJ1Y3Qga29iamVjdCAqa29iaiwKICAgICAg
ICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZ3JwKTsKdm9pZCBzeXNmc19yZW1vdmVf
Z3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosCiAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv
dXAgKmdycCk7CnZvaWQgc3lzZnNfcmVtb3ZlX2dyb3VwcyhzdHJ1Y3Qga29iamVjdCAqa29iaiwK
ICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipncm91cHMpOwppbnQgc3lzZnNfYWRk
X2ZpbGVfdG9fZ3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosCiAgIGNvbnN0IHN0cnVjdCBhdHRy
aWJ1dGUgKmF0dHIsIGNvbnN0IGNoYXIgKmdyb3VwKTsKdm9pZCBzeXNmc19yZW1vdmVfZmlsZV9m
cm9tX2dyb3VwKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRl
ICphdHRyLCBjb25zdCBjaGFyICpncm91cCk7CmludCBzeXNmc19tZXJnZV9ncm91cChzdHJ1Y3Qg
a29iamVjdCAqa29iaiwKICAgICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZ3Jw
KTsKdm9pZCBzeXNmc191bm1lcmdlX2dyb3VwKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogICAgICAg
ICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpncnApOwppbnQgc3lzZnNfYWRkX2xpbmtf
dG9fZ3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKmdyb3VwX25hbWUsCiAg
ICAgICBzdHJ1Y3Qga29iamVjdCAqdGFyZ2V0LCBjb25zdCBjaGFyICpsaW5rX25hbWUpOwp2b2lk
IHN5c2ZzX3JlbW92ZV9saW5rX2Zyb21fZ3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0
IGNoYXIgKmdyb3VwX25hbWUsCiAgICAgIGNvbnN0IGNoYXIgKmxpbmtfbmFtZSk7CmludCBfX2Nv
bXBhdF9vbmx5X3N5c2ZzX2xpbmtfZW50cnlfdG9fa29iaihzdHJ1Y3Qga29iamVjdCAqa29iaiwK
ICAgICAgICAgIHN0cnVjdCBrb2JqZWN0ICp0YXJnZXRfa29iaiwKICAgICAgICAgIGNvbnN0IGNo
YXIgKnRhcmdldF9uYW1lKTsKCnZvaWQgc3lzZnNfbm90aWZ5KHN0cnVjdCBrb2JqZWN0ICprb2Jq
LCBjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKmF0dHIpOwoKaW50IF9fYXR0cmlidXRlX18o
KF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc19pbml0KHZvaWQpOwoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzeXNmc19l
bmFibGVfbnMoc3RydWN0IGtlcm5mc19ub2RlICprbikKewogcmV0dXJuIGtlcm5mc19lbmFibGVf
bnMoa24pOwp9CiMgNTI3ICIuL2luY2x1ZGUvbGludXgvc3lzZnMuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRl
X18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc19jcmVhdGVfZmlsZShzdHJ1Y3Qga29i
amVjdCAqa29iaiwKICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCnsKIHJldHVy
biBzeXNmc19jcmVhdGVfZmlsZV9ucyhrb2JqLCBhdHRyLCAoKHZvaWQgKikwKSk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
c3lzZnNfcmVtb3ZlX2ZpbGUoc3RydWN0IGtvYmplY3QgKmtvYmosCiAgICAgICAgIGNvbnN0IHN0
cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCnsKIHN5c2ZzX3JlbW92ZV9maWxlX25zKGtvYmosIGF0dHIs
ICgodm9pZCAqKTApKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHN5c2ZzX3JlbmFtZV9saW5rKHN0cnVjdCBrb2JqZWN0ICpr
b2JqLCBzdHJ1Y3Qga29iamVjdCAqdGFyZ2V0LAogICAgICAgIGNvbnN0IGNoYXIgKm9sZF9uYW1l
LCBjb25zdCBjaGFyICpuZXdfbmFtZSkKewogcmV0dXJuIHN5c2ZzX3JlbmFtZV9saW5rX25zKGtv
YmosIHRhcmdldCwgb2xkX25hbWUsIG5ld19uYW1lLCAoKHZvaWQgKikwKSk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc3lz
ZnNfbm90aWZ5X2RpcmVudChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKQp7CiBrZXJuZnNfbm90aWZ5
KGtuKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgc3RydWN0IGtlcm5mc19ub2RlICpzeXNmc19nZXRfZGlyZW50KHN0cnVjdCBrZXJu
ZnNfbm9kZSAqcGFyZW50LAogICAgICAgICBjb25zdCBjaGFyICpuYW1lKQp7CiByZXR1cm4ga2Vy
bmZzX2ZpbmRfYW5kX2dldChwYXJlbnQsIG5hbWUpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2VybmZzX25vZGUgKnN5
c2ZzX2dldChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKQp7CiBrZXJuZnNfZ2V0KGtuKTsKIHJldHVy
biBrbjsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBzeXNmc19wdXQoc3RydWN0IGtlcm5mc19ub2RlICprbikKewoga2VybmZz
X3B1dChrbik7Cn0KIyAyMSAiLi9pbmNsdWRlL2xpbnV4L2tvYmplY3QuaCIgMgojIDQxICIuL2lu
Y2x1ZGUvbGludXgva29iamVjdC5oIgpleHRlcm4gdTY0IHVldmVudF9zZXFudW07CiMgNTMgIi4v
aW5jbHVkZS9saW51eC9rb2JqZWN0LmgiCmVudW0ga29iamVjdF9hY3Rpb24gewogS09CSl9BREQs
CiBLT0JKX1JFTU9WRSwKIEtPQkpfQ0hBTkdFLAogS09CSl9NT1ZFLAogS09CSl9PTkxJTkUsCiBL
T0JKX09GRkxJTkUsCiBLT0JKX0JJTkQsCiBLT0JKX1VOQklORCwKIEtPQkpfTUFYCn07CgpzdHJ1
Y3Qga29iamVjdCB7CiBjb25zdCBjaGFyICpuYW1lOwogc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsK
IHN0cnVjdCBrb2JqZWN0ICpwYXJlbnQ7CiBzdHJ1Y3Qga3NldCAqa3NldDsKIHN0cnVjdCBrb2Jq
X3R5cGUgKmt0eXBlOwogc3RydWN0IGtlcm5mc19ub2RlICpzZDsKIHN0cnVjdCBrcmVmIGtyZWY7
CgoKCiB1bnNpZ25lZCBpbnQgc3RhdGVfaW5pdGlhbGl6ZWQ6MTsKIHVuc2lnbmVkIGludCBzdGF0
ZV9pbl9zeXNmczoxOwogdW5zaWduZWQgaW50IHN0YXRlX2FkZF91ZXZlbnRfc2VudDoxOwogdW5z
aWduZWQgaW50IHN0YXRlX3JlbW92ZV91ZXZlbnRfc2VudDoxOwogdW5zaWduZWQgaW50IHVldmVu
dF9zdXBwcmVzczoxOwp9OwoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRm
LCAyLCAzKSkpCmludCBrb2JqZWN0X3NldF9uYW1lKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBjb25z
dCBjaGFyICpuYW1lLCAuLi4pOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmlu
dGYsIDIsIDApKSkKaW50IGtvYmplY3Rfc2V0X25hbWVfdmFyZ3Moc3RydWN0IGtvYmplY3QgKmtv
YmosIGNvbnN0IGNoYXIgKmZtdCwKICAgICAgdmFfbGlzdCB2YXJncyk7CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25zdCBjaGFyICpr
b2JqZWN0X25hbWUoY29uc3Qgc3RydWN0IGtvYmplY3QgKmtvYmopCnsKIHJldHVybiBrb2JqLT5u
YW1lOwp9CgpleHRlcm4gdm9pZCBrb2JqZWN0X2luaXQoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0
cnVjdCBrb2JqX3R5cGUgKmt0eXBlKTsKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18o
cHJpbnRmLCAzLCA0KSkpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKQpp
bnQga29iamVjdF9hZGQoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBrb2JqZWN0ICpwYXJl
bnQsCiAgY29uc3QgY2hhciAqZm10LCAuLi4pOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3Jt
YXRfXyhwcmludGYsIDQsIDUpKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRf
XykpCmludCBrb2JqZWN0X2luaXRfYW5kX2FkZChzdHJ1Y3Qga29iamVjdCAqa29iaiwKICAgIHN0
cnVjdCBrb2JqX3R5cGUgKmt0eXBlLCBzdHJ1Y3Qga29iamVjdCAqcGFyZW50LAogICAgY29uc3Qg
Y2hhciAqZm10LCAuLi4pOwoKZXh0ZXJuIHZvaWQga29iamVjdF9kZWwoc3RydWN0IGtvYmplY3Qg
KmtvYmopOwoKZXh0ZXJuIHN0cnVjdCBrb2JqZWN0ICogX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIGtvYmplY3RfY3JlYXRlKHZvaWQpOwpleHRlcm4gc3RydWN0IGtvYmpl
Y3QgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga29iamVjdF9jcmVh
dGVfYW5kX2FkZChjb25zdCBjaGFyICpuYW1lLAogICAgICBzdHJ1Y3Qga29iamVjdCAqcGFyZW50
KTsKCmV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtv
YmplY3RfcmVuYW1lKHN0cnVjdCBrb2JqZWN0ICosIGNvbnN0IGNoYXIgKm5ld19uYW1lKTsKZXh0
ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga29iamVjdF9t
b3ZlKHN0cnVjdCBrb2JqZWN0ICosIHN0cnVjdCBrb2JqZWN0ICopOwoKZXh0ZXJuIHN0cnVjdCBr
b2JqZWN0ICprb2JqZWN0X2dldChzdHJ1Y3Qga29iamVjdCAqa29iaik7CmV4dGVybiBzdHJ1Y3Qg
a29iamVjdCAqIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrb2JqZWN0
X2dldF91bmxlc3NfemVybygKICAgICAgc3RydWN0IGtvYmplY3QgKmtvYmopOwpleHRlcm4gdm9p
ZCBrb2JqZWN0X3B1dChzdHJ1Y3Qga29iamVjdCAqa29iaik7CgpleHRlcm4gY29uc3Qgdm9pZCAq
a29iamVjdF9uYW1lc3BhY2Uoc3RydWN0IGtvYmplY3QgKmtvYmopOwpleHRlcm4gdm9pZCBrb2Jq
ZWN0X2dldF9vd25lcnNoaXAoc3RydWN0IGtvYmplY3QgKmtvYmosCiAgICAgIGt1aWRfdCAqdWlk
LCBrZ2lkX3QgKmdpZCk7CmV4dGVybiBjaGFyICprb2JqZWN0X2dldF9wYXRoKHN0cnVjdCBrb2Jq
ZWN0ICprb2JqLCBnZnBfdCBmbGFnKTsKIyAxMzIgIi4vaW5jbHVkZS9saW51eC9rb2JqZWN0Lmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wga29iamVjdF9oYXNfY2hpbGRyZW4oc3RydWN0IGtvYmplY3QgKmtvYmopCnsKICh7IGlu
dCBfX3JldF93YXJuX29uID0gISEoa3JlZl9yZWFkKCZrb2JqLT5rcmVmKSA9PSAwKTsgaWYgKF9f
YnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5s
aW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9u
IF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMg
YnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBi
dWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAi
XHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAi
LnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L2tvYmplY3QuaCIpLCAiaSIgKDEz
NCksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihz
dHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5c
blx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgzNykpOyB9KTsgfSB3aGlsZSAoMCk7IF9f
YnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKCiByZXR1cm4ga29iai0+
c2QgJiYga29iai0+c2QtPmRpci5zdWJkaXJzOwp9CgpzdHJ1Y3Qga29ial90eXBlIHsKIHZvaWQg
KCpyZWxlYXNlKShzdHJ1Y3Qga29iamVjdCAqa29iaik7CiBjb25zdCBzdHJ1Y3Qgc3lzZnNfb3Bz
ICpzeXNmc19vcHM7CiBzdHJ1Y3QgYXR0cmlidXRlICoqZGVmYXVsdF9hdHRyczsKIGNvbnN0IHN0
cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipkZWZhdWx0X2dyb3VwczsKIGNvbnN0IHN0cnVjdCBrb2Jq
X25zX3R5cGVfb3BlcmF0aW9ucyAqKCpjaGlsZF9uc190eXBlKShzdHJ1Y3Qga29iamVjdCAqa29i
aik7CiBjb25zdCB2b2lkICooKm5hbWVzcGFjZSkoc3RydWN0IGtvYmplY3QgKmtvYmopOwogdm9p
ZCAoKmdldF9vd25lcnNoaXApKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBrdWlkX3QgKnVpZCwga2dp
ZF90ICpnaWQpOwp9OwoKc3RydWN0IGtvYmpfdWV2ZW50X2VudiB7CiBjaGFyICphcmd2WzNdOwog
Y2hhciAqZW52cFszMl07CiBpbnQgZW52cF9pZHg7CiBjaGFyIGJ1ZlsyMDQ4XTsKIGludCBidWZs
ZW47Cn07CgpzdHJ1Y3Qga3NldF91ZXZlbnRfb3BzIHsKIGludCAoKiBjb25zdCBmaWx0ZXIpKHN0
cnVjdCBrc2V0ICprc2V0LCBzdHJ1Y3Qga29iamVjdCAqa29iaik7CiBjb25zdCBjaGFyICooKiBj
b25zdCBuYW1lKShzdHJ1Y3Qga3NldCAqa3NldCwgc3RydWN0IGtvYmplY3QgKmtvYmopOwogaW50
ICgqIGNvbnN0IHVldmVudCkoc3RydWN0IGtzZXQgKmtzZXQsIHN0cnVjdCBrb2JqZWN0ICprb2Jq
LAogICAgICAgIHN0cnVjdCBrb2JqX3VldmVudF9lbnYgKmVudik7Cn07CgpzdHJ1Y3Qga29ial9h
dHRyaWJ1dGUgewogc3RydWN0IGF0dHJpYnV0ZSBhdHRyOwogc3NpemVfdCAoKnNob3cpKHN0cnVj
dCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCiAgIGNoYXIgKmJ1
Zik7CiBzc2l6ZV90ICgqc3RvcmUpKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9h
dHRyaWJ1dGUgKmF0dHIsCiAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCk7Cn07Cgpl
eHRlcm4gY29uc3Qgc3RydWN0IHN5c2ZzX29wcyBrb2JqX3N5c2ZzX29wczsKCnN0cnVjdCBzb2Nr
OwojIDE5MyAiLi9pbmNsdWRlL2xpbnV4L2tvYmplY3QuaCIKc3RydWN0IGtzZXQgewogc3RydWN0
IGxpc3RfaGVhZCBsaXN0Owogc3BpbmxvY2tfdCBsaXN0X2xvY2s7CiBzdHJ1Y3Qga29iamVjdCBr
b2JqOwogY29uc3Qgc3RydWN0IGtzZXRfdWV2ZW50X29wcyAqdWV2ZW50X29wczsKfSBfX2F0dHJp
YnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CgpleHRlcm4gdm9pZCBrc2V0X2luaXQoc3Ry
dWN0IGtzZXQgKmtzZXQpOwpleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBrc2V0X3JlZ2lzdGVyKHN0cnVjdCBrc2V0ICprc2V0KTsKZXh0ZXJuIHZvaWQg
a3NldF91bnJlZ2lzdGVyKHN0cnVjdCBrc2V0ICprc2V0KTsKZXh0ZXJuIHN0cnVjdCBrc2V0ICog
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzZXRfY3JlYXRlX2FuZF9h
ZGQoY29uc3QgY2hhciAqbmFtZSwKICAgICAgY29uc3Qgc3RydWN0IGtzZXRfdWV2ZW50X29wcyAq
dSwKICAgICAgc3RydWN0IGtvYmplY3QgKnBhcmVudF9rb2JqKTsKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrc2V0ICp0b19r
c2V0KHN0cnVjdCBrb2JqZWN0ICprb2JqKQp7CiByZXR1cm4ga29iaiA/ICh7IHZvaWQgKl9fbXB0
ciA9ICh2b2lkICopKGtvYmopOyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0
XzIwOSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNtYXRj
aCBpbiBjb250YWluZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21wYXRp
YmxlX3AodHlwZW9mKCooa29iaikpLCB0eXBlb2YoKChzdHJ1Y3Qga3NldCAqKTApLT5rb2JqKSkg
JiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCooa29iaikpLCB0eXBlb2Yo
dm9pZCkpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzIwOSgpOyB9IHdoaWxlICgwKTsgKChzdHJ1
Y3Qga3NldCAqKShfX21wdHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGtzZXQsIGtvYmop
KSk7IH0pIDogKCh2b2lkICopMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrc2V0ICprc2V0X2dldChzdHJ1Y3Qga3Nl
dCAqaykKewogcmV0dXJuIGsgPyB0b19rc2V0KGtvYmplY3RfZ2V0KCZrLT5rb2JqKSkgOiAoKHZv
aWQgKikwKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBrc2V0X3B1dChzdHJ1Y3Qga3NldCAqaykKewoga29iamVjdF9wdXQo
JmstPmtvYmopOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga29ial90eXBlICpnZXRfa3R5cGUoc3RydWN0IGtvYmplY3Qg
KmtvYmopCnsKIHJldHVybiBrb2JqLT5rdHlwZTsKfQoKZXh0ZXJuIHN0cnVjdCBrb2JqZWN0ICpr
c2V0X2ZpbmRfb2JqKHN0cnVjdCBrc2V0ICosIGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIHN0cnVj
dCBrb2JqZWN0ICprZXJuZWxfa29iajsKCmV4dGVybiBzdHJ1Y3Qga29iamVjdCAqbW1fa29iajsK
CmV4dGVybiBzdHJ1Y3Qga29iamVjdCAqaHlwZXJ2aXNvcl9rb2JqOwoKZXh0ZXJuIHN0cnVjdCBr
b2JqZWN0ICpwb3dlcl9rb2JqOwoKZXh0ZXJuIHN0cnVjdCBrb2JqZWN0ICpmaXJtd2FyZV9rb2Jq
OwoKaW50IGtvYmplY3RfdWV2ZW50KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBlbnVtIGtvYmplY3Rf
YWN0aW9uIGFjdGlvbik7CmludCBrb2JqZWN0X3VldmVudF9lbnYoc3RydWN0IGtvYmplY3QgKmtv
YmosIGVudW0ga29iamVjdF9hY3Rpb24gYWN0aW9uLAogICBjaGFyICplbnZwW10pOwppbnQga29i
amVjdF9zeW50aF91ZXZlbnQoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKmJ1Ziwg
c2l6ZV90IGNvdW50KTsKCl9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkp
CmludCBhZGRfdWV2ZW50X3ZhcihzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYsIGNvbnN0IGNo
YXIgKmZvcm1hdCwgLi4uKTsKIyAxOCAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIiAyCiMgMSAi
Li9pbmNsdWRlL2xpbnV4L2tsaXN0LmgiIDEKIyAxNyAiLi9pbmNsdWRlL2xpbnV4L2tsaXN0Lmgi
CnN0cnVjdCBrbGlzdF9ub2RlOwpzdHJ1Y3Qga2xpc3Qgewogc3BpbmxvY2tfdCBrX2xvY2s7CiBz
dHJ1Y3QgbGlzdF9oZWFkIGtfbGlzdDsKIHZvaWQgKCpnZXQpKHN0cnVjdCBrbGlzdF9ub2RlICop
Owogdm9pZCAoKnB1dCkoc3RydWN0IGtsaXN0X25vZGUgKik7Cn0gX19hdHRyaWJ1dGVfXyAoKGFs
aWduZWQgKHNpemVvZih2b2lkICopKSkpOwojIDM0ICIuL2luY2x1ZGUvbGludXgva2xpc3QuaCIK
ZXh0ZXJuIHZvaWQga2xpc3RfaW5pdChzdHJ1Y3Qga2xpc3QgKmssIHZvaWQgKCpnZXQpKHN0cnVj
dCBrbGlzdF9ub2RlICopLAogICAgICAgICB2b2lkICgqcHV0KShzdHJ1Y3Qga2xpc3Rfbm9kZSAq
KSk7CgpzdHJ1Y3Qga2xpc3Rfbm9kZSB7CiB2b2lkICpuX2tsaXN0Owogc3RydWN0IGxpc3RfaGVh
ZCBuX25vZGU7CiBzdHJ1Y3Qga3JlZiBuX3JlZjsKfTsKCmV4dGVybiB2b2lkIGtsaXN0X2FkZF90
YWlsKHN0cnVjdCBrbGlzdF9ub2RlICpuLCBzdHJ1Y3Qga2xpc3QgKmspOwpleHRlcm4gdm9pZCBr
bGlzdF9hZGRfaGVhZChzdHJ1Y3Qga2xpc3Rfbm9kZSAqbiwgc3RydWN0IGtsaXN0ICprKTsKZXh0
ZXJuIHZvaWQga2xpc3RfYWRkX2JlaGluZChzdHJ1Y3Qga2xpc3Rfbm9kZSAqbiwgc3RydWN0IGts
aXN0X25vZGUgKnBvcyk7CmV4dGVybiB2b2lkIGtsaXN0X2FkZF9iZWZvcmUoc3RydWN0IGtsaXN0
X25vZGUgKm4sIHN0cnVjdCBrbGlzdF9ub2RlICpwb3MpOwoKZXh0ZXJuIHZvaWQga2xpc3RfZGVs
KHN0cnVjdCBrbGlzdF9ub2RlICpuKTsKZXh0ZXJuIHZvaWQga2xpc3RfcmVtb3ZlKHN0cnVjdCBr
bGlzdF9ub2RlICpuKTsKCmV4dGVybiBpbnQga2xpc3Rfbm9kZV9hdHRhY2hlZChzdHJ1Y3Qga2xp
c3Rfbm9kZSAqbik7CgoKc3RydWN0IGtsaXN0X2l0ZXIgewogc3RydWN0IGtsaXN0ICppX2tsaXN0
Owogc3RydWN0IGtsaXN0X25vZGUgKmlfY3VyOwp9OwoKCmV4dGVybiB2b2lkIGtsaXN0X2l0ZXJf
aW5pdChzdHJ1Y3Qga2xpc3QgKmssIHN0cnVjdCBrbGlzdF9pdGVyICppKTsKZXh0ZXJuIHZvaWQg
a2xpc3RfaXRlcl9pbml0X25vZGUoc3RydWN0IGtsaXN0ICprLCBzdHJ1Y3Qga2xpc3RfaXRlciAq
aSwKICAgICBzdHJ1Y3Qga2xpc3Rfbm9kZSAqbik7CmV4dGVybiB2b2lkIGtsaXN0X2l0ZXJfZXhp
dChzdHJ1Y3Qga2xpc3RfaXRlciAqaSk7CmV4dGVybiBzdHJ1Y3Qga2xpc3Rfbm9kZSAqa2xpc3Rf
cHJldihzdHJ1Y3Qga2xpc3RfaXRlciAqaSk7CmV4dGVybiBzdHJ1Y3Qga2xpc3Rfbm9kZSAqa2xp
c3RfbmV4dChzdHJ1Y3Qga2xpc3RfaXRlciAqaSk7CiMgMTkgIi4vaW5jbHVkZS9saW51eC9kZXZp
Y2UuaCIgMgoKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3BtLmgiIDEKIyAyMiAiLi9pbmNsdWRl
L2xpbnV4L3BtLmgiCmV4dGVybiB2b2lkICgqcG1fcG93ZXJfb2ZmKSh2b2lkKTsKZXh0ZXJuIHZv
aWQgKCpwbV9wb3dlcl9vZmZfcHJlcGFyZSkodm9pZCk7CgpzdHJ1Y3QgZGV2aWNlOwoKZXh0ZXJu
IHZvaWQgcG1fdnRfc3dpdGNoX3JlcXVpcmVkKHN0cnVjdCBkZXZpY2UgKmRldiwgYm9vbCByZXF1
aXJlZCk7CmV4dGVybiB2b2lkIHBtX3Z0X3N3aXRjaF91bnJlZ2lzdGVyKHN0cnVjdCBkZXZpY2Ug
KmRldik7CiMgNDIgIi4vaW5jbHVkZS9saW51eC9wbS5oIgpzdHJ1Y3QgZGV2aWNlOwoKCmV4dGVy
biBjb25zdCBjaGFyIHBvd2VyX2dyb3VwX25hbWVbXTsKCgoKCnR5cGVkZWYgc3RydWN0IHBtX21l
c3NhZ2UgewogaW50IGV2ZW50Owp9IHBtX21lc3NhZ2VfdDsKIyAyNzggIi4vaW5jbHVkZS9saW51
eC9wbS5oIgpzdHJ1Y3QgZGV2X3BtX29wcyB7CiBpbnQgKCpwcmVwYXJlKShzdHJ1Y3QgZGV2aWNl
ICpkZXYpOwogdm9pZCAoKmNvbXBsZXRlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogaW50ICgqc3Vz
cGVuZCkoc3RydWN0IGRldmljZSAqZGV2KTsKIGludCAoKnJlc3VtZSkoc3RydWN0IGRldmljZSAq
ZGV2KTsKIGludCAoKmZyZWV6ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKIGludCAoKnRoYXcpKHN0
cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpwb3dlcm9mZikoc3RydWN0IGRldmljZSAqZGV2KTsK
IGludCAoKnJlc3RvcmUpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpzdXNwZW5kX2xhdGUp
KHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpyZXN1bWVfZWFybHkpKHN0cnVjdCBkZXZpY2Ug
KmRldik7CiBpbnQgKCpmcmVlemVfbGF0ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKIGludCAoKnRo
YXdfZWFybHkpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpwb3dlcm9mZl9sYXRlKShzdHJ1
Y3QgZGV2aWNlICpkZXYpOwogaW50ICgqcmVzdG9yZV9lYXJseSkoc3RydWN0IGRldmljZSAqZGV2
KTsKIGludCAoKnN1c3BlbmRfbm9pcnEpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpyZXN1
bWVfbm9pcnEpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpmcmVlemVfbm9pcnEpKHN0cnVj
dCBkZXZpY2UgKmRldik7CiBpbnQgKCp0aGF3X25vaXJxKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwog
aW50ICgqcG93ZXJvZmZfbm9pcnEpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpyZXN0b3Jl
X25vaXJxKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogaW50ICgqcnVudGltZV9zdXNwZW5kKShzdHJ1
Y3QgZGV2aWNlICpkZXYpOwogaW50ICgqcnVudGltZV9yZXN1bWUpKHN0cnVjdCBkZXZpY2UgKmRl
dik7CiBpbnQgKCpydW50aW1lX2lkbGUpKHN0cnVjdCBkZXZpY2UgKmRldik7Cn07CiMgNDk2ICIu
L2luY2x1ZGUvbGludXgvcG0uaCIKZW51bSBycG1fc3RhdHVzIHsKIFJQTV9BQ1RJVkUgPSAwLAog
UlBNX1JFU1VNSU5HLAogUlBNX1NVU1BFTkRFRCwKIFJQTV9TVVNQRU5ESU5HLAp9OwojIDUxOCAi
Li9pbmNsdWRlL2xpbnV4L3BtLmgiCmVudW0gcnBtX3JlcXVlc3QgewogUlBNX1JFUV9OT05FID0g
MCwKIFJQTV9SRVFfSURMRSwKIFJQTV9SRVFfU1VTUEVORCwKIFJQTV9SRVFfQVVUT1NVU1BFTkQs
CiBSUE1fUkVRX1JFU1VNRSwKfTsKCnN0cnVjdCB3YWtldXBfc291cmNlOwpzdHJ1Y3Qgd2FrZV9p
cnE7CnN0cnVjdCBwbV9kb21haW5fZGF0YTsKCnN0cnVjdCBwbV9zdWJzeXNfZGF0YSB7CiBzcGlu
bG9ja190IGxvY2s7CiB1bnNpZ25lZCBpbnQgcmVmY291bnQ7Cgogc3RydWN0IGxpc3RfaGVhZCBj
bG9ja19saXN0OwoKCgoKfTsKIyA1NzMgIi4vaW5jbHVkZS9saW51eC9wbS5oIgpzdHJ1Y3QgZGV2
X3BtX2luZm8gewogcG1fbWVzc2FnZV90IHBvd2VyX3N0YXRlOwogdW5zaWduZWQgaW50IGNhbl93
YWtldXA6MTsKIHVuc2lnbmVkIGludCBhc3luY19zdXNwZW5kOjE7CiBib29sIGluX2RwbV9saXN0
OjE7CiBib29sIGlzX3ByZXBhcmVkOjE7CiBib29sIGlzX3N1c3BlbmRlZDoxOwogYm9vbCBpc19u
b2lycV9zdXNwZW5kZWQ6MTsKIGJvb2wgaXNfbGF0ZV9zdXNwZW5kZWQ6MTsKIGJvb2wgbm9fcG06
MTsKIGJvb2wgZWFybHlfaW5pdDoxOwogYm9vbCBkaXJlY3RfY29tcGxldGU6MTsKIHUzMiBkcml2
ZXJfZmxhZ3M7CiBzcGlubG9ja190IGxvY2s7Cgogc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKIHN0
cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247CiBzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd2FrZXVw
OwogYm9vbCB3YWtldXBfcGF0aDoxOwogYm9vbCBzeXNjb3JlOjE7CiBib29sIG5vX3BtX2NhbGxi
YWNrczoxOwogdW5zaWduZWQgaW50IG11c3RfcmVzdW1lOjE7CiB1bnNpZ25lZCBpbnQgbWF5X3Nr
aXBfcmVzdW1lOjE7CgoKCgogc3RydWN0IGhydGltZXIgc3VzcGVuZF90aW1lcjsKIHVuc2lnbmVk
IGxvbmcgdGltZXJfZXhwaXJlczsKIHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwogd2FpdF9xdWV1
ZV9oZWFkX3Qgd2FpdF9xdWV1ZTsKIHN0cnVjdCB3YWtlX2lycSAqd2FrZWlycTsKIGF0b21pY190
IHVzYWdlX2NvdW50OwogYXRvbWljX3QgY2hpbGRfY291bnQ7CiB1bnNpZ25lZCBpbnQgZGlzYWJs
ZV9kZXB0aDozOwogdW5zaWduZWQgaW50IGlkbGVfbm90aWZpY2F0aW9uOjE7CiB1bnNpZ25lZCBp
bnQgcmVxdWVzdF9wZW5kaW5nOjE7CiB1bnNpZ25lZCBpbnQgZGVmZXJyZWRfcmVzdW1lOjE7CiB1
bnNpZ25lZCBpbnQgcnVudGltZV9hdXRvOjE7CiBib29sIGlnbm9yZV9jaGlsZHJlbjoxOwogdW5z
aWduZWQgaW50IG5vX2NhbGxiYWNrczoxOwogdW5zaWduZWQgaW50IGlycV9zYWZlOjE7CiB1bnNp
Z25lZCBpbnQgdXNlX2F1dG9zdXNwZW5kOjE7CiB1bnNpZ25lZCBpbnQgdGltZXJfYXV0b3N1c3Bl
bmRzOjE7CiB1bnNpZ25lZCBpbnQgbWVtYWxsb2Nfbm9pbzoxOwogdW5zaWduZWQgaW50IGxpbmtz
X2NvdW50OwogZW51bSBycG1fcmVxdWVzdCByZXF1ZXN0OwogZW51bSBycG1fc3RhdHVzIHJ1bnRp
bWVfc3RhdHVzOwogaW50IHJ1bnRpbWVfZXJyb3I7CiBpbnQgYXV0b3N1c3BlbmRfZGVsYXk7CiB1
NjQgbGFzdF9idXN5OwogdTY0IGFjdGl2ZV90aW1lOwogdTY0IHN1c3BlbmRlZF90aW1lOwogdTY0
IGFjY291bnRpbmdfdGltZXN0YW1wOwoKIHN0cnVjdCBwbV9zdWJzeXNfZGF0YSAqc3Vic3lzX2Rh
dGE7CiB2b2lkICgqc2V0X2xhdGVuY3lfdG9sZXJhbmNlKShzdHJ1Y3QgZGV2aWNlICosIHMzMik7
CiBzdHJ1Y3QgZGV2X3BtX3FvcyAqcW9zOwp9OwoKZXh0ZXJuIGludCBkZXZfcG1fZ2V0X3N1YnN5
c19kYXRhKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiB2b2lkIGRldl9wbV9wdXRfc3Vic3lz
X2RhdGEoc3RydWN0IGRldmljZSAqZGV2KTsKIyA2NTAgIi4vaW5jbHVkZS9saW51eC9wbS5oIgpz
dHJ1Y3QgZGV2X3BtX2RvbWFpbiB7CiBzdHJ1Y3QgZGV2X3BtX29wcyBvcHM7CiBpbnQgKCpzdGFy
dCkoc3RydWN0IGRldmljZSAqZGV2KTsKIHZvaWQgKCpkZXRhY2gpKHN0cnVjdCBkZXZpY2UgKmRl
diwgYm9vbCBwb3dlcl9vZmYpOwogaW50ICgqYWN0aXZhdGUpKHN0cnVjdCBkZXZpY2UgKmRldik7
CiB2b2lkICgqc3luYykoc3RydWN0IGRldmljZSAqZGV2KTsKIHZvaWQgKCpkaXNtaXNzKShzdHJ1
Y3QgZGV2aWNlICpkZXYpOwp9OwojIDcxNCAiLi9pbmNsdWRlL2xpbnV4L3BtLmgiCmV4dGVybiB2
b2lkIGRldmljZV9wbV9sb2NrKHZvaWQpOwpleHRlcm4gdm9pZCBkcG1fcmVzdW1lX3N0YXJ0KHBt
X21lc3NhZ2VfdCBzdGF0ZSk7CmV4dGVybiB2b2lkIGRwbV9yZXN1bWVfZW5kKHBtX21lc3NhZ2Vf
dCBzdGF0ZSk7CmV4dGVybiB2b2lkIGRwbV9yZXN1bWVfbm9pcnEocG1fbWVzc2FnZV90IHN0YXRl
KTsKZXh0ZXJuIHZvaWQgZHBtX3Jlc3VtZV9lYXJseShwbV9tZXNzYWdlX3Qgc3RhdGUpOwpleHRl
cm4gdm9pZCBkcG1fcmVzdW1lKHBtX21lc3NhZ2VfdCBzdGF0ZSk7CmV4dGVybiB2b2lkIGRwbV9j
b21wbGV0ZShwbV9tZXNzYWdlX3Qgc3RhdGUpOwoKZXh0ZXJuIHZvaWQgZGV2aWNlX3BtX3VubG9j
ayh2b2lkKTsKZXh0ZXJuIGludCBkcG1fc3VzcGVuZF9lbmQocG1fbWVzc2FnZV90IHN0YXRlKTsK
ZXh0ZXJuIGludCBkcG1fc3VzcGVuZF9zdGFydChwbV9tZXNzYWdlX3Qgc3RhdGUpOwpleHRlcm4g
aW50IGRwbV9zdXNwZW5kX25vaXJxKHBtX21lc3NhZ2VfdCBzdGF0ZSk7CmV4dGVybiBpbnQgZHBt
X3N1c3BlbmRfbGF0ZShwbV9tZXNzYWdlX3Qgc3RhdGUpOwpleHRlcm4gaW50IGRwbV9zdXNwZW5k
KHBtX21lc3NhZ2VfdCBzdGF0ZSk7CmV4dGVybiBpbnQgZHBtX3ByZXBhcmUocG1fbWVzc2FnZV90
IHN0YXRlKTsKCmV4dGVybiB2b2lkIF9fc3VzcGVuZF9yZXBvcnRfcmVzdWx0KGNvbnN0IGNoYXIg
KmZ1bmN0aW9uLCB2b2lkICpmbiwgaW50IHJldCk7CgoKCgoKCmV4dGVybiBpbnQgZGV2aWNlX3Bt
X3dhaXRfZm9yX2RldihzdHJ1Y3QgZGV2aWNlICpzdWIsIHN0cnVjdCBkZXZpY2UgKmRldik7CmV4
dGVybiB2b2lkIGRwbV9mb3JfZWFjaF9kZXYodm9pZCAqZGF0YSwgdm9pZCAoKmZuKShzdHJ1Y3Qg
ZGV2aWNlICosIHZvaWQgKikpOwoKZXh0ZXJuIGludCBwbV9nZW5lcmljX3ByZXBhcmUoc3RydWN0
IGRldmljZSAqZGV2KTsKZXh0ZXJuIGludCBwbV9nZW5lcmljX3N1c3BlbmRfbGF0ZShzdHJ1Y3Qg
ZGV2aWNlICpkZXYpOwpleHRlcm4gaW50IHBtX2dlbmVyaWNfc3VzcGVuZF9ub2lycShzdHJ1Y3Qg
ZGV2aWNlICpkZXYpOwpleHRlcm4gaW50IHBtX2dlbmVyaWNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNl
ICpkZXYpOwpleHRlcm4gaW50IHBtX2dlbmVyaWNfcmVzdW1lX2Vhcmx5KHN0cnVjdCBkZXZpY2Ug
KmRldik7CmV4dGVybiBpbnQgcG1fZ2VuZXJpY19yZXN1bWVfbm9pcnEoc3RydWN0IGRldmljZSAq
ZGV2KTsKZXh0ZXJuIGludCBwbV9nZW5lcmljX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpl
eHRlcm4gaW50IHBtX2dlbmVyaWNfZnJlZXplX25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4
dGVybiBpbnQgcG1fZ2VuZXJpY19mcmVlemVfbGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRl
cm4gaW50IHBtX2dlbmVyaWNfZnJlZXplKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQg
cG1fZ2VuZXJpY190aGF3X25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1f
Z2VuZXJpY190aGF3X2Vhcmx5KHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1fZ2Vu
ZXJpY190aGF3KHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1fZ2VuZXJpY19yZXN0
b3JlX25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1fZ2VuZXJpY19yZXN0
b3JlX2Vhcmx5KHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1fZ2VuZXJpY19yZXN0
b3JlKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1fZ2VuZXJpY19wb3dlcm9mZl9u
b2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4gaW50IHBtX2dlbmVyaWNfcG93ZXJvZmZf
bGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4gaW50IHBtX2dlbmVyaWNfcG93ZXJvZmYo
c3RydWN0IGRldmljZSAqZGV2KTsKZXh0ZXJuIHZvaWQgcG1fZ2VuZXJpY19jb21wbGV0ZShzdHJ1
Y3QgZGV2aWNlICpkZXYpOwoKZXh0ZXJuIGJvb2wgZGV2X3BtX21heV9za2lwX3Jlc3VtZShzdHJ1
Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4gYm9vbCBkZXZfcG1fc21hcnRfc3VzcGVuZF9hbmRfc3Vz
cGVuZGVkKHN0cnVjdCBkZXZpY2UgKmRldik7CiMgODA4ICIuL2luY2x1ZGUvbGludXgvcG0uaCIK
ZW51bSBkcG1fb3JkZXIgewogRFBNX09SREVSX05PTkUsCiBEUE1fT1JERVJfREVWX0FGVEVSX1BB
UkVOVCwKIERQTV9PUkRFUl9QQVJFTlRfQkVGT1JFX0RFViwKIERQTV9PUkRFUl9ERVZfTEFTVCwK
fTsKIyAyNSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIiAyCgoKCgojIDEgIi4vaW5jbHVkZS9s
aW51eC9kZXZpY2UvYnVzLmgiIDEKIyAyMSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9idXMuaCIK
c3RydWN0IGRldmljZV9kcml2ZXI7CnN0cnVjdCBmd25vZGVfaGFuZGxlOwojIDgyICIuL2luY2x1
ZGUvbGludXgvZGV2aWNlL2J1cy5oIgpzdHJ1Y3QgYnVzX3R5cGUgewogY29uc3QgY2hhciAqbmFt
ZTsKIGNvbnN0IGNoYXIgKmRldl9uYW1lOwogc3RydWN0IGRldmljZSAqZGV2X3Jvb3Q7CiBjb25z
dCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqYnVzX2dyb3VwczsKIGNvbnN0IHN0cnVjdCBhdHRy
aWJ1dGVfZ3JvdXAgKipkZXZfZ3JvdXBzOwogY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAq
KmRydl9ncm91cHM7CgogaW50ICgqbWF0Y2gpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl
dmljZV9kcml2ZXIgKmRydik7CiBpbnQgKCp1ZXZlbnQpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry
dWN0IGtvYmpfdWV2ZW50X2VudiAqZW52KTsKIGludCAoKnByb2JlKShzdHJ1Y3QgZGV2aWNlICpk
ZXYpOwogdm9pZCAoKnN5bmNfc3RhdGUpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpyZW1v
dmUpKHN0cnVjdCBkZXZpY2UgKmRldik7CiB2b2lkICgqc2h1dGRvd24pKHN0cnVjdCBkZXZpY2Ug
KmRldik7CgogaW50ICgqb25saW5lKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogaW50ICgqb2ZmbGlu
ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKCiBpbnQgKCpzdXNwZW5kKShzdHJ1Y3QgZGV2aWNlICpk
ZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSk7CiBpbnQgKCpyZXN1bWUpKHN0cnVjdCBkZXZpY2UgKmRl
dik7CgogaW50ICgqbnVtX3ZmKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoKIGludCAoKmRtYV9jb25m
aWd1cmUpKHN0cnVjdCBkZXZpY2UgKmRldik7CgogY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgKnBt
OwoKIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgKmlvbW11X29wczsKCiBzdHJ1Y3Qgc3Vic3lzX3By
aXZhdGUgKnA7CiBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgbG9ja19rZXk7CgogYm9vbCBuZWVkX3Bh
cmVudF9sb2NrOwp9OwoKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jl
c3VsdF9fKSkgYnVzX3JlZ2lzdGVyKHN0cnVjdCBidXNfdHlwZSAqYnVzKTsKCmV4dGVybiB2b2lk
IGJ1c191bnJlZ2lzdGVyKHN0cnVjdCBidXNfdHlwZSAqYnVzKTsKCmV4dGVybiBpbnQgX19hdHRy
aWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGJ1c19yZXNjYW5fZGV2aWNlcyhzdHJ1
Y3QgYnVzX3R5cGUgKmJ1cyk7CgpzdHJ1Y3QgYnVzX2F0dHJpYnV0ZSB7CiBzdHJ1Y3QgYXR0cmli
dXRlIGF0dHI7CiBzc2l6ZV90ICgqc2hvdykoc3RydWN0IGJ1c190eXBlICpidXMsIGNoYXIgKmJ1
Zik7CiBzc2l6ZV90ICgqc3RvcmUpKHN0cnVjdCBidXNfdHlwZSAqYnVzLCBjb25zdCBjaGFyICpi
dWYsIHNpemVfdCBjb3VudCk7Cn07CiMgMTM2ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2J1cy5o
IgpleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBidXNf
Y3JlYXRlX2ZpbGUoc3RydWN0IGJ1c190eXBlICosCiAgICAgc3RydWN0IGJ1c19hdHRyaWJ1dGUg
Kik7CmV4dGVybiB2b2lkIGJ1c19yZW1vdmVfZmlsZShzdHJ1Y3QgYnVzX3R5cGUgKiwgc3RydWN0
IGJ1c19hdHRyaWJ1dGUgKik7CgoKaW50IGRldmljZV9tYXRjaF9uYW1lKHN0cnVjdCBkZXZpY2Ug
KmRldiwgY29uc3Qgdm9pZCAqbmFtZSk7CmludCBkZXZpY2VfbWF0Y2hfb2Zfbm9kZShzdHJ1Y3Qg
ZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKm5wKTsKaW50IGRldmljZV9tYXRjaF9md25vZGUoc3Ry
dWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpmd25vZGUpOwppbnQgZGV2aWNlX21hdGNoX2Rl
dnQoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpwZGV2dCk7CmludCBkZXZpY2VfbWF0
Y2hfYWNwaV9kZXYoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICphZGV2KTsKaW50IGRl
dmljZV9tYXRjaF9hbnkoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICp1bnVzZWQpOwoK
CnN0cnVjdCBzdWJzeXNfZGV2X2l0ZXIgewogc3RydWN0IGtsaXN0X2l0ZXIga2k7CiBjb25zdCBz
dHJ1Y3QgZGV2aWNlX3R5cGUgKnR5cGU7Cn07CnZvaWQgc3Vic3lzX2Rldl9pdGVyX2luaXQoc3Ry
dWN0IHN1YnN5c19kZXZfaXRlciAqaXRlciwKICAgIHN0cnVjdCBidXNfdHlwZSAqc3Vic3lzLAog
ICAgc3RydWN0IGRldmljZSAqc3RhcnQsCiAgICBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgKnR5
cGUpOwpzdHJ1Y3QgZGV2aWNlICpzdWJzeXNfZGV2X2l0ZXJfbmV4dChzdHJ1Y3Qgc3Vic3lzX2Rl
dl9pdGVyICppdGVyKTsKdm9pZCBzdWJzeXNfZGV2X2l0ZXJfZXhpdChzdHJ1Y3Qgc3Vic3lzX2Rl
dl9pdGVyICppdGVyKTsKCmludCBidXNfZm9yX2VhY2hfZGV2KHN0cnVjdCBidXNfdHlwZSAqYnVz
LCBzdHJ1Y3QgZGV2aWNlICpzdGFydCwgdm9pZCAqZGF0YSwKICAgICAgIGludCAoKmZuKShzdHJ1
Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpKTsKc3RydWN0IGRldmljZSAqYnVzX2ZpbmRfZGV2
aWNlKHN0cnVjdCBidXNfdHlwZSAqYnVzLCBzdHJ1Y3QgZGV2aWNlICpzdGFydCwKICAgICAgICAg
IGNvbnN0IHZvaWQgKmRhdGEsCiAgICAgICAgICBpbnQgKCptYXRjaCkoc3RydWN0IGRldmljZSAq
ZGV2LCBjb25zdCB2b2lkICpkYXRhKSk7CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICpidXNfZmluZF9k
ZXZpY2VfYnlfbmFtZShzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywKICAgICAgICAgICBzdHJ1Y3QgZGV2
aWNlICpzdGFydCwKICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKQp7CiByZXR1cm4gYnVzX2Zp
bmRfZGV2aWNlKGJ1cywgc3RhcnQsIG5hbWUsIGRldmljZV9tYXRjaF9uYW1lKTsKfQoKCgoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IGRldmljZSAqCmJ1c19maW5kX2RldmljZV9ieV9vZl9ub2RlKHN0cnVjdCBidXNfdHlw
ZSAqYnVzLCBjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQp7CiByZXR1cm4gYnVzX2ZpbmRf
ZGV2aWNlKGJ1cywgKCh2b2lkICopMCksIG5wLCBkZXZpY2VfbWF0Y2hfb2Zfbm9kZSk7Cn0KCgoK
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBkZXZpY2UgKgpidXNfZmluZF9kZXZpY2VfYnlfZndub2RlKHN0cnVjdCBidXNf
dHlwZSAqYnVzLCBjb25zdCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKQp7CiByZXR1cm4g
YnVzX2ZpbmRfZGV2aWNlKGJ1cywgKCh2b2lkICopMCksIGZ3bm9kZSwgZGV2aWNlX21hdGNoX2Z3
bm9kZSk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKmJ1c19maW5kX2RldmljZV9ieV9kZXZ0KHN0
cnVjdCBidXNfdHlwZSAqYnVzLAogICAgICAgICAgIGRldl90IGRldnQpCnsKIHJldHVybiBidXNf
ZmluZF9kZXZpY2UoYnVzLCAoKHZvaWQgKikwKSwgJmRldnQsIGRldmljZV9tYXRjaF9kZXZ0KTsK
fQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgc3RydWN0IGRldmljZSAqCmJ1c19maW5kX25leHRfZGV2aWNlKHN0cnVjdCBidXNf
dHlwZSAqYnVzLHN0cnVjdCBkZXZpY2UgKmN1cikKewogcmV0dXJuIGJ1c19maW5kX2RldmljZShi
dXMsIGN1ciwgKCh2b2lkICopMCksIGRldmljZV9tYXRjaF9hbnkpOwp9CgoKc3RydWN0IGFjcGlf
ZGV2aWNlOwoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmljZSAqCmJ1c19maW5kX2RldmljZV9ieV9hY3BpX2Rl
dihzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICphZGV2KQp7
CiByZXR1cm4gYnVzX2ZpbmRfZGV2aWNlKGJ1cywgKCh2b2lkICopMCksIGFkZXYsIGRldmljZV9t
YXRjaF9hY3BpX2Rldik7Cn0KIyAyNDkgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvYnVzLmgiCnN0
cnVjdCBkZXZpY2UgKnN1YnN5c19maW5kX2RldmljZV9ieV9pZChzdHJ1Y3QgYnVzX3R5cGUgKmJ1
cywgdW5zaWduZWQgaW50IGlkLAogICAgIHN0cnVjdCBkZXZpY2UgKmhpbnQpOwppbnQgYnVzX2Zv
cl9lYWNoX2RydihzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywgc3RydWN0IGRldmljZV9kcml2ZXIgKnN0
YXJ0LAogICAgICAgdm9pZCAqZGF0YSwgaW50ICgqZm4pKHN0cnVjdCBkZXZpY2VfZHJpdmVyICos
IHZvaWQgKikpOwp2b2lkIGJ1c19zb3J0X2JyZWFkdGhmaXJzdChzdHJ1Y3QgYnVzX3R5cGUgKmJ1
cywKICAgICAgaW50ICgqY29tcGFyZSkoY29uc3Qgc3RydWN0IGRldmljZSAqYSwKICAgICAgIGNv
bnN0IHN0cnVjdCBkZXZpY2UgKmIpKTsKCgoKCgoKc3RydWN0IG5vdGlmaWVyX2Jsb2NrOwoKZXh0
ZXJuIGludCBidXNfcmVnaXN0ZXJfbm90aWZpZXIoc3RydWN0IGJ1c190eXBlICpidXMsCiAgICAg
c3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CmV4dGVybiBpbnQgYnVzX3VucmVnaXN0ZXJfbm90
aWZpZXIoc3RydWN0IGJ1c190eXBlICpidXMsCiAgICAgICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg
Km5iKTsKIyAyODUgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvYnVzLmgiCmV4dGVybiBzdHJ1Y3Qg
a3NldCAqYnVzX2dldF9rc2V0KHN0cnVjdCBidXNfdHlwZSAqYnVzKTsKZXh0ZXJuIHN0cnVjdCBr
bGlzdCAqYnVzX2dldF9kZXZpY2Vfa2xpc3Qoc3RydWN0IGJ1c190eXBlICpidXMpOwojIDMwICIu
L2luY2x1ZGUvbGludXgvZGV2aWNlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2Ns
YXNzLmgiIDEKIyAyMiAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9jbGFzcy5oIgpzdHJ1Y3QgZGV2
aWNlOwpzdHJ1Y3QgZndub2RlX2hhbmRsZTsKIyA1NCAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9j
bGFzcy5oIgpzdHJ1Y3QgY2xhc3MgewogY29uc3QgY2hhciAqbmFtZTsKIHN0cnVjdCBtb2R1bGUg
Km93bmVyOwoKIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipjbGFzc19ncm91cHM7CiBj
b25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZGV2X2dyb3VwczsKIHN0cnVjdCBrb2JqZWN0
ICpkZXZfa29iajsKCiBpbnQgKCpkZXZfdWV2ZW50KShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj
dCBrb2JqX3VldmVudF9lbnYgKmVudik7CiBjaGFyICooKmRldm5vZGUpKHN0cnVjdCBkZXZpY2Ug
KmRldiwgdW1vZGVfdCAqbW9kZSk7Cgogdm9pZCAoKmNsYXNzX3JlbGVhc2UpKHN0cnVjdCBjbGFz
cyAqY2xhc3MpOwogdm9pZCAoKmRldl9yZWxlYXNlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoKIGlu
dCAoKnNodXRkb3duX3ByZSkoc3RydWN0IGRldmljZSAqZGV2KTsKCiBjb25zdCBzdHJ1Y3Qga29i
al9uc190eXBlX29wZXJhdGlvbnMgKm5zX3R5cGU7CiBjb25zdCB2b2lkICooKm5hbWVzcGFjZSko
c3RydWN0IGRldmljZSAqZGV2KTsKCiB2b2lkICgqZ2V0X293bmVyc2hpcCkoc3RydWN0IGRldmlj
ZSAqZGV2LCBrdWlkX3QgKnVpZCwga2dpZF90ICpnaWQpOwoKIGNvbnN0IHN0cnVjdCBkZXZfcG1f
b3BzICpwbTsKCiBzdHJ1Y3Qgc3Vic3lzX3ByaXZhdGUgKnA7Cn07CgpzdHJ1Y3QgY2xhc3NfZGV2
X2l0ZXIgewogc3RydWN0IGtsaXN0X2l0ZXIga2k7CiBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUg
KnR5cGU7Cn07CgpleHRlcm4gc3RydWN0IGtvYmplY3QgKnN5c2ZzX2Rldl9ibG9ja19rb2JqOwpl
eHRlcm4gc3RydWN0IGtvYmplY3QgKnN5c2ZzX2Rldl9jaGFyX2tvYmo7CmV4dGVybiBpbnQgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIF9fY2xhc3NfcmVnaXN0ZXIoc3Ry
dWN0IGNsYXNzICpjbGFzcywKICAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpOwpleHRl
cm4gdm9pZCBjbGFzc191bnJlZ2lzdGVyKHN0cnVjdCBjbGFzcyAqY2xhc3MpOwojIDk5ICIuL2lu
Y2x1ZGUvbGludXgvZGV2aWNlL2NsYXNzLmgiCnN0cnVjdCBjbGFzc19jb21wYXQ7CnN0cnVjdCBj
bGFzc19jb21wYXQgKmNsYXNzX2NvbXBhdF9yZWdpc3Rlcihjb25zdCBjaGFyICpuYW1lKTsKdm9p
ZCBjbGFzc19jb21wYXRfdW5yZWdpc3RlcihzdHJ1Y3QgY2xhc3NfY29tcGF0ICpjbHMpOwppbnQg
Y2xhc3NfY29tcGF0X2NyZWF0ZV9saW5rKHN0cnVjdCBjbGFzc19jb21wYXQgKmNscywgc3RydWN0
IGRldmljZSAqZGV2LAogICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldmljZV9saW5rKTsKdm9pZCBj
bGFzc19jb21wYXRfcmVtb3ZlX2xpbmsoc3RydWN0IGNsYXNzX2NvbXBhdCAqY2xzLCBzdHJ1Y3Qg
ZGV2aWNlICpkZXYsCiAgICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldmljZV9saW5rKTsKCmV4dGVy
biB2b2lkIGNsYXNzX2Rldl9pdGVyX2luaXQoc3RydWN0IGNsYXNzX2Rldl9pdGVyICppdGVyLAog
ICAgc3RydWN0IGNsYXNzICpjbGFzcywKICAgIHN0cnVjdCBkZXZpY2UgKnN0YXJ0LAogICAgY29u
c3Qgc3RydWN0IGRldmljZV90eXBlICp0eXBlKTsKZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKmNsYXNz
X2Rldl9pdGVyX25leHQoc3RydWN0IGNsYXNzX2Rldl9pdGVyICppdGVyKTsKZXh0ZXJuIHZvaWQg
Y2xhc3NfZGV2X2l0ZXJfZXhpdChzdHJ1Y3QgY2xhc3NfZGV2X2l0ZXIgKml0ZXIpOwoKZXh0ZXJu
IGludCBjbGFzc19mb3JfZWFjaF9kZXZpY2Uoc3RydWN0IGNsYXNzICpjbGFzcywgc3RydWN0IGRl
dmljZSAqc3RhcnQsCiAgICAgdm9pZCAqZGF0YSwKICAgICBpbnQgKCpmbikoc3RydWN0IGRldmlj
ZSAqZGV2LCB2b2lkICpkYXRhKSk7CmV4dGVybiBzdHJ1Y3QgZGV2aWNlICpjbGFzc19maW5kX2Rl
dmljZShzdHJ1Y3QgY2xhc3MgKmNsYXNzLAogICAgIHN0cnVjdCBkZXZpY2UgKnN0YXJ0LCBjb25z
dCB2b2lkICpkYXRhLAogICAgIGludCAoKm1hdGNoKShzdHJ1Y3QgZGV2aWNlICosIGNvbnN0IHZv
aWQgKikpOwoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmljZSAqY2xhc3NfZmluZF9kZXZpY2VfYnlfbmFtZShz
dHJ1Y3QgY2xhc3MgKmNsYXNzLAogICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkKewogcmV0
dXJuIGNsYXNzX2ZpbmRfZGV2aWNlKGNsYXNzLCAoKHZvaWQgKikwKSwgbmFtZSwgZGV2aWNlX21h
dGNoX25hbWUpOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKY2xhc3NfZmluZF9kZXZpY2VfYnlf
b2Zfbm9kZShzdHJ1Y3QgY2xhc3MgKmNsYXNzLCBjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5w
KQp7CiByZXR1cm4gY2xhc3NfZmluZF9kZXZpY2UoY2xhc3MsICgodm9pZCAqKTApLCBucCwgZGV2
aWNlX21hdGNoX29mX25vZGUpOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKY2xhc3NfZmluZF9k
ZXZpY2VfYnlfZndub2RlKHN0cnVjdCBjbGFzcyAqY2xhc3MsCiAgICAgICBjb25zdCBzdHJ1Y3Qg
Zndub2RlX2hhbmRsZSAqZndub2RlKQp7CiByZXR1cm4gY2xhc3NfZmluZF9kZXZpY2UoY2xhc3Ms
ICgodm9pZCAqKTApLCBmd25vZGUsIGRldmljZV9tYXRjaF9md25vZGUpOwp9CgoKCgoKCgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3QgZGV2aWNlICpjbGFzc19maW5kX2RldmljZV9ieV9kZXZ0KHN0cnVjdCBjbGFzcyAqY2xhc3Ms
CiAgICAgICAgICAgICBkZXZfdCBkZXZ0KQp7CiByZXR1cm4gY2xhc3NfZmluZF9kZXZpY2UoY2xh
c3MsICgodm9pZCAqKTApLCAmZGV2dCwgZGV2aWNlX21hdGNoX2RldnQpOwp9CgoKc3RydWN0IGFj
cGlfZGV2aWNlOwoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKY2xhc3NfZmluZF9kZXZpY2VfYnlfYWNw
aV9kZXYoc3RydWN0IGNsYXNzICpjbGFzcywgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICphZGV2
KQp7CiByZXR1cm4gY2xhc3NfZmluZF9kZXZpY2UoY2xhc3MsICgodm9pZCAqKTApLCBhZGV2LCBk
ZXZpY2VfbWF0Y2hfYWNwaV9kZXYpOwp9CiMgMTkxICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2Ns
YXNzLmgiCnN0cnVjdCBjbGFzc19hdHRyaWJ1dGUgewogc3RydWN0IGF0dHJpYnV0ZSBhdHRyOwog
c3NpemVfdCAoKnNob3cpKHN0cnVjdCBjbGFzcyAqY2xhc3MsIHN0cnVjdCBjbGFzc19hdHRyaWJ1
dGUgKmF0dHIsCiAgIGNoYXIgKmJ1Zik7CiBzc2l6ZV90ICgqc3RvcmUpKHN0cnVjdCBjbGFzcyAq
Y2xhc3MsIHN0cnVjdCBjbGFzc19hdHRyaWJ1dGUgKmF0dHIsCiAgIGNvbnN0IGNoYXIgKmJ1Ziwg
c2l6ZV90IGNvdW50KTsKfTsKIyAyMDYgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvY2xhc3MuaCIK
ZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgY2xhc3Nf
Y3JlYXRlX2ZpbGVfbnMoc3RydWN0IGNsYXNzICpjbGFzcywKICAgICAgICAgIGNvbnN0IHN0cnVj
dCBjbGFzc19hdHRyaWJ1dGUgKmF0dHIsCiAgICAgICAgICBjb25zdCB2b2lkICpucyk7CmV4dGVy
biB2b2lkIGNsYXNzX3JlbW92ZV9maWxlX25zKHN0cnVjdCBjbGFzcyAqY2xhc3MsCiAgICAgY29u
c3Qgc3RydWN0IGNsYXNzX2F0dHJpYnV0ZSAqYXR0ciwKICAgICBjb25zdCB2b2lkICpucyk7Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGNsYXNzX2NyZWF0ZV9m
aWxlKHN0cnVjdCBjbGFzcyAqY2xhc3MsCiAgICAgY29uc3Qgc3RydWN0IGNsYXNzX2F0dHJpYnV0
ZSAqYXR0cikKewogcmV0dXJuIGNsYXNzX2NyZWF0ZV9maWxlX25zKGNsYXNzLCBhdHRyLCAoKHZv
aWQgKikwKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgY2xhc3NfcmVtb3ZlX2ZpbGUoc3RydWN0IGNsYXNzICpjbGFzcywK
ICAgICAgICAgY29uc3Qgc3RydWN0IGNsYXNzX2F0dHJpYnV0ZSAqYXR0cikKewogcmV0dXJuIGNs
YXNzX3JlbW92ZV9maWxlX25zKGNsYXNzLCBhdHRyLCAoKHZvaWQgKikwKSk7Cn0KCgpzdHJ1Y3Qg
Y2xhc3NfYXR0cmlidXRlX3N0cmluZyB7CiBzdHJ1Y3QgY2xhc3NfYXR0cmlidXRlIGF0dHI7CiBj
aGFyICpzdHI7Cn07CiMgMjM4ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2NsYXNzLmgiCmV4dGVy
biBzc2l6ZV90IHNob3dfY2xhc3NfYXR0cl9zdHJpbmcoc3RydWN0IGNsYXNzICpjbGFzcywgc3Ry
dWN0IGNsYXNzX2F0dHJpYnV0ZSAqYXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAq
YnVmKTsKCnN0cnVjdCBjbGFzc19pbnRlcmZhY2Ugewogc3RydWN0IGxpc3RfaGVhZCBub2RlOwog
c3RydWN0IGNsYXNzICpjbGFzczsKCiBpbnQgKCphZGRfZGV2KSAoc3RydWN0IGRldmljZSAqLCBz
dHJ1Y3QgY2xhc3NfaW50ZXJmYWNlICopOwogdm9pZCAoKnJlbW92ZV9kZXYpIChzdHJ1Y3QgZGV2
aWNlICosIHN0cnVjdCBjbGFzc19pbnRlcmZhY2UgKik7Cn07CgpleHRlcm4gaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBjbGFzc19pbnRlcmZhY2VfcmVnaXN0ZXIo
c3RydWN0IGNsYXNzX2ludGVyZmFjZSAqKTsKZXh0ZXJuIHZvaWQgY2xhc3NfaW50ZXJmYWNlX3Vu
cmVnaXN0ZXIoc3RydWN0IGNsYXNzX2ludGVyZmFjZSAqKTsKCmV4dGVybiBzdHJ1Y3QgY2xhc3Mg
KiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX19jbGFzc19jcmVhdGUo
c3RydWN0IG1vZHVsZSAqb3duZXIsCiAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKICAgICAgICBz
dHJ1Y3QgbG9ja19jbGFzc19rZXkgKmtleSk7CmV4dGVybiB2b2lkIGNsYXNzX2Rlc3Ryb3koc3Ry
dWN0IGNsYXNzICpjbHMpOwojIDMxICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiIDIKIyAxICIu
L2luY2x1ZGUvbGludXgvZGV2aWNlL2RyaXZlci5oIiAxCiMgNDQgIi4vaW5jbHVkZS9saW51eC9k
ZXZpY2UvZHJpdmVyLmgiCmVudW0gcHJvYmVfdHlwZSB7CiBQUk9CRV9ERUZBVUxUX1NUUkFURUdZ
LAogUFJPQkVfUFJFRkVSX0FTWU5DSFJPTk9VUywKIFBST0JFX0ZPUkNFX1NZTkNIUk9OT1VTLAp9
OwojIDk1ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2RyaXZlci5oIgpzdHJ1Y3QgZGV2aWNlX2Ry
aXZlciB7CiBjb25zdCBjaGFyICpuYW1lOwogc3RydWN0IGJ1c190eXBlICpidXM7Cgogc3RydWN0
IG1vZHVsZSAqb3duZXI7CiBjb25zdCBjaGFyICptb2RfbmFtZTsKCiBib29sIHN1cHByZXNzX2Jp
bmRfYXR0cnM7CiBlbnVtIHByb2JlX3R5cGUgcHJvYmVfdHlwZTsKCiBjb25zdCBzdHJ1Y3Qgb2Zf
ZGV2aWNlX2lkICpvZl9tYXRjaF90YWJsZTsKIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCAq
YWNwaV9tYXRjaF90YWJsZTsKCiBpbnQgKCpwcm9iZSkgKHN0cnVjdCBkZXZpY2UgKmRldik7CiB2
b2lkICgqc3luY19zdGF0ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKIGludCAoKnJlbW92ZSkgKHN0
cnVjdCBkZXZpY2UgKmRldik7CiB2b2lkICgqc2h1dGRvd24pIChzdHJ1Y3QgZGV2aWNlICpkZXYp
OwogaW50ICgqc3VzcGVuZCkgKHN0cnVjdCBkZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRl
KTsKIGludCAoKnJlc3VtZSkgKHN0cnVjdCBkZXZpY2UgKmRldik7CiBjb25zdCBzdHJ1Y3QgYXR0
cmlidXRlX2dyb3VwICoqZ3JvdXBzOwogY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmRl
dl9ncm91cHM7CgogY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgKnBtOwogdm9pZCAoKmNvcmVkdW1w
KSAoc3RydWN0IGRldmljZSAqZGV2KTsKCiBzdHJ1Y3QgZHJpdmVyX3ByaXZhdGUgKnA7Cn07CgoK
ZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZHJpdmVy
X3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpOwpleHRlcm4gdm9pZCBkcml2ZXJf
dW5yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2KTsKCmV4dGVybiBzdHJ1Y3QgZGV2
aWNlX2RyaXZlciAqZHJpdmVyX2ZpbmQoY29uc3QgY2hhciAqbmFtZSwKICAgICAgc3RydWN0IGJ1
c190eXBlICpidXMpOwpleHRlcm4gaW50IGRyaXZlcl9wcm9iZV9kb25lKHZvaWQpOwpleHRlcm4g
dm9pZCB3YWl0X2Zvcl9kZXZpY2VfcHJvYmUodm9pZCk7CgoKCnN0cnVjdCBkcml2ZXJfYXR0cmli
dXRlIHsKIHN0cnVjdCBhdHRyaWJ1dGUgYXR0cjsKIHNzaXplX3QgKCpzaG93KShzdHJ1Y3QgZGV2
aWNlX2RyaXZlciAqZHJpdmVyLCBjaGFyICpidWYpOwogc3NpemVfdCAoKnN0b3JlKShzdHJ1Y3Qg
ZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsCiAgICBzaXplX3QgY291bnQp
Owp9OwojIDE0OCAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9kcml2ZXIuaCIKZXh0ZXJuIGludCBf
X2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZHJpdmVyX2NyZWF0ZV9maWxl
KHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsCiAgICAgY29uc3Qgc3RydWN0IGRyaXZlcl9h
dHRyaWJ1dGUgKmF0dHIpOwpleHRlcm4gdm9pZCBkcml2ZXJfcmVtb3ZlX2ZpbGUoc3RydWN0IGRl
dmljZV9kcml2ZXIgKmRyaXZlciwKICAgICAgICAgIGNvbnN0IHN0cnVjdCBkcml2ZXJfYXR0cmli
dXRlICphdHRyKTsKCmV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1
bHRfXykpIGRyaXZlcl9mb3JfZWFjaF9kZXZpY2Uoc3RydWN0IGRldmljZV9kcml2ZXIgKmRydiwK
ICAgICAgICAgICAgc3RydWN0IGRldmljZSAqc3RhcnQsCiAgICAgICAgICAgIHZvaWQgKmRhdGEs
CiAgICAgICAgICAgIGludCAoKmZuKShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgICAgICAgdm9pZCAq
KSk7CnN0cnVjdCBkZXZpY2UgKmRyaXZlcl9maW5kX2RldmljZShzdHJ1Y3QgZGV2aWNlX2RyaXZl
ciAqZHJ2LAogICAgICBzdHJ1Y3QgZGV2aWNlICpzdGFydCwgY29uc3Qgdm9pZCAqZGF0YSwKICAg
ICAgaW50ICgqbWF0Y2gpKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSkpOwoK
CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgc3RydWN0IGRldmljZSAqZHJpdmVyX2ZpbmRfZGV2aWNlX2J5X25hbWUoc3RydWN0IGRl
dmljZV9kcml2ZXIgKmRydiwKICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCnsKIHJldHVybiBkcml2
ZXJfZmluZF9kZXZpY2UoZHJ2LCAoKHZvaWQgKikwKSwgbmFtZSwgZGV2aWNlX21hdGNoX25hbWUp
Owp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKZHJpdmVyX2ZpbmRfZGV2aWNlX2J5X29mX25vZGUo
c3RydWN0IGRldmljZV9kcml2ZXIgKmRydiwKICAgICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9u
b2RlICpucCkKewogcmV0dXJuIGRyaXZlcl9maW5kX2RldmljZShkcnYsICgodm9pZCAqKTApLCBu
cCwgZGV2aWNlX21hdGNoX29mX25vZGUpOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKZHJpdmVy
X2ZpbmRfZGV2aWNlX2J5X2Z3bm9kZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2LAogICAgICAg
IGNvbnN0IHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpCnsKIHJldHVybiBkcml2ZXJfZmlu
ZF9kZXZpY2UoZHJ2LCAoKHZvaWQgKikwKSwgZndub2RlLCBkZXZpY2VfbWF0Y2hfZndub2RlKTsK
fQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgc3RydWN0IGRldmljZSAqZHJpdmVyX2ZpbmRfZGV2aWNlX2J5X2RldnQoc3RydWN0
IGRldmljZV9kcml2ZXIgKmRydiwKICAgICAgIGRldl90IGRldnQpCnsKIHJldHVybiBkcml2ZXJf
ZmluZF9kZXZpY2UoZHJ2LCAoKHZvaWQgKikwKSwgJmRldnQsIGRldmljZV9tYXRjaF9kZXZ0KTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGRldmljZSAqZHJpdmVyX2ZpbmRfbmV4dF9kZXZpY2Uoc3RydWN0IGRldmljZV9k
cml2ZXIgKmRydiwKICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlICpzdGFydCkKewogcmV0dXJuIGRy
aXZlcl9maW5kX2RldmljZShkcnYsIHN0YXJ0LCAoKHZvaWQgKikwKSwgZGV2aWNlX21hdGNoX2Fu
eSk7Cn0KIyAyMjUgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvZHJpdmVyLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZp
Y2UgKgpkcml2ZXJfZmluZF9kZXZpY2VfYnlfYWNwaV9kZXYoc3RydWN0IGRldmljZV9kcml2ZXIg
KmRydiwKICAgICAgICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZSAqYWRldikKewogcmV0dXJu
IGRyaXZlcl9maW5kX2RldmljZShkcnYsICgodm9pZCAqKTApLCBhZGV2LCBkZXZpY2VfbWF0Y2hf
YWNwaV9kZXYpOwp9CiMgMjM5ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2RyaXZlci5oIgp2b2lk
IGRyaXZlcl9kZWZlcnJlZF9wcm9iZV9hZGQoc3RydWN0IGRldmljZSAqZGV2KTsKaW50IGRyaXZl
cl9kZWZlcnJlZF9wcm9iZV9jaGVja19zdGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwppbnQgZHJp
dmVyX2RlZmVycmVkX3Byb2JlX2NoZWNrX3N0YXRlX2NvbnRpbnVlKHN0cnVjdCBkZXZpY2UgKmRl
dik7CnZvaWQgZHJpdmVyX2luaXQodm9pZCk7CiMgMzIgIi4vaW5jbHVkZS9saW51eC9kZXZpY2Uu
aCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGV2aWNlLmgiIDEKCgoKCnN0cnVjdCBk
ZXZfYXJjaGRhdGEgewoKIHZvaWQgKmlvbW11OwoKfTsKCnN0cnVjdCBwZGV2X2FyY2hkYXRhIHsK
fTsKIyAzMyAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIiAyCgpzdHJ1Y3QgZGV2aWNlOwpzdHJ1
Y3QgZGV2aWNlX3ByaXZhdGU7CnN0cnVjdCBkZXZpY2VfZHJpdmVyOwpzdHJ1Y3QgZHJpdmVyX3By
aXZhdGU7CnN0cnVjdCBtb2R1bGU7CnN0cnVjdCBjbGFzczsKc3RydWN0IHN1YnN5c19wcml2YXRl
OwpzdHJ1Y3QgZGV2aWNlX25vZGU7CnN0cnVjdCBmd25vZGVfaGFuZGxlOwpzdHJ1Y3QgaW9tbXVf
b3BzOwpzdHJ1Y3QgaW9tbXVfZ3JvdXA7CnN0cnVjdCBpb21tdV9md3NwZWM7CnN0cnVjdCBkZXZf
cGluX2luZm87CnN0cnVjdCBpb21tdV9wYXJhbTsKIyA2MiAiLi9pbmNsdWRlL2xpbnV4L2Rldmlj
ZS5oIgpzdHJ1Y3Qgc3Vic3lzX2ludGVyZmFjZSB7CiBjb25zdCBjaGFyICpuYW1lOwogc3RydWN0
IGJ1c190eXBlICpzdWJzeXM7CiBzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7CiBpbnQgKCphZGRfZGV2
KShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzdWJzeXNfaW50ZXJmYWNlICpzaWYpOwogdm9p
ZCAoKnJlbW92ZV9kZXYpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHN1YnN5c19pbnRlcmZh
Y2UgKnNpZik7Cn07CgppbnQgc3Vic3lzX2ludGVyZmFjZV9yZWdpc3RlcihzdHJ1Y3Qgc3Vic3lz
X2ludGVyZmFjZSAqc2lmKTsKdm9pZCBzdWJzeXNfaW50ZXJmYWNlX3VucmVnaXN0ZXIoc3RydWN0
IHN1YnN5c19pbnRlcmZhY2UgKnNpZik7CgppbnQgc3Vic3lzX3N5c3RlbV9yZWdpc3RlcihzdHJ1
Y3QgYnVzX3R5cGUgKnN1YnN5cywKICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAq
Kmdyb3Vwcyk7CmludCBzdWJzeXNfdmlydHVhbF9yZWdpc3RlcihzdHJ1Y3QgYnVzX3R5cGUgKnN1
YnN5cywKICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipncm91cHMpOwojIDg3
ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCnN0cnVjdCBkZXZpY2VfdHlwZSB7CiBjb25zdCBj
aGFyICpuYW1lOwogY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3VwczsKIGludCAo
KnVldmVudCkoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYp
OwogY2hhciAqKCpkZXZub2RlKShzdHJ1Y3QgZGV2aWNlICpkZXYsIHVtb2RlX3QgKm1vZGUsCiAg
ICBrdWlkX3QgKnVpZCwga2dpZF90ICpnaWQpOwogdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBkZXZp
Y2UgKmRldik7CgogY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgKnBtOwp9OwoKCnN0cnVjdCBkZXZp
Y2VfYXR0cmlidXRlIHsKIHN0cnVjdCBhdHRyaWJ1dGUgYXR0cjsKIHNzaXplX3QgKCpzaG93KShz
dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogICBjaGFy
ICpidWYpOwogc3NpemVfdCAoKnN0b3JlKShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZp
Y2VfYXR0cmlidXRlICphdHRyLAogICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpOwp9
OwoKc3RydWN0IGRldl9leHRfYXR0cmlidXRlIHsKIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGF0
dHI7CiB2b2lkICp2YXI7Cn07Cgpzc2l6ZV90IGRldmljZV9zaG93X3Vsb25nKHN0cnVjdCBkZXZp
Y2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAgICAgY2hhciAqYnVmKTsK
c3NpemVfdCBkZXZpY2Vfc3RvcmVfdWxvbmcoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2
aWNlX2F0dHJpYnV0ZSAqYXR0ciwKICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQp
Owpzc2l6ZV90IGRldmljZV9zaG93X2ludChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZp
Y2VfYXR0cmlidXRlICphdHRyLAogICBjaGFyICpidWYpOwpzc2l6ZV90IGRldmljZV9zdG9yZV9p
bnQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKICAg
IGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKc3NpemVfdCBkZXZpY2Vfc2hvd19ib29s
KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAgIGNo
YXIgKmJ1Zik7CnNzaXplX3QgZGV2aWNlX3N0b3JlX2Jvb2woc3RydWN0IGRldmljZSAqZGV2LCBz
dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90
IGNvdW50KTsKIyAxNDkgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKZXh0ZXJuIGludCBkZXZp
Y2VfY3JlYXRlX2ZpbGUoc3RydWN0IGRldmljZSAqZGV2aWNlLAogICAgICAgICBjb25zdCBzdHJ1
Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqZW50cnkpOwpleHRlcm4gdm9pZCBkZXZpY2VfcmVtb3ZlX2Zp
bGUoc3RydWN0IGRldmljZSAqZGV2LAogICAgICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9hdHRy
aWJ1dGUgKmF0dHIpOwpleHRlcm4gYm9vbCBkZXZpY2VfcmVtb3ZlX2ZpbGVfc2VsZihzdHJ1Y3Qg
ZGV2aWNlICpkZXYsCiAgICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIp
OwpleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkZXZp
Y2VfY3JlYXRlX2Jpbl9maWxlKHN0cnVjdCBkZXZpY2UgKmRldiwKICAgICBjb25zdCBzdHJ1Y3Qg
YmluX2F0dHJpYnV0ZSAqYXR0cik7CmV4dGVybiB2b2lkIGRldmljZV9yZW1vdmVfYmluX2ZpbGUo
c3RydWN0IGRldmljZSAqZGV2LAogICAgICAgY29uc3Qgc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0
dHIpOwoKCnR5cGVkZWYgdm9pZCAoKmRyX3JlbGVhc2VfdCkoc3RydWN0IGRldmljZSAqZGV2LCB2
b2lkICpyZXMpOwp0eXBlZGVmIGludCAoKmRyX21hdGNoX3QpKHN0cnVjdCBkZXZpY2UgKmRldiwg
dm9pZCAqcmVzLCB2b2lkICptYXRjaF9kYXRhKTsKIyAxNzIgIi4vaW5jbHVkZS9saW51eC9kZXZp
Y2UuaCIKZXh0ZXJuIHZvaWQgKmRldnJlc19hbGxvY19ub2RlKGRyX3JlbGVhc2VfdCByZWxlYXNl
LCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwLAogICAgICAgICAgaW50IG5pZCkgX19hdHRyaWJ1dGVf
XygoX19tYWxsb2NfXykpOwpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkICpkZXZyZXNfYWxsb2MoZHJfcmVsZWFzZV90IHJlbGVhc2Us
IHNpemVfdCBzaXplLCBnZnBfdCBnZnApCnsKIHJldHVybiBkZXZyZXNfYWxsb2Nfbm9kZShyZWxl
YXNlLCBzaXplLCBnZnAsICgtMSkpOwp9CgoKZXh0ZXJuIHZvaWQgZGV2cmVzX2Zvcl9lYWNoX3Jl
cyhzdHJ1Y3QgZGV2aWNlICpkZXYsIGRyX3JlbGVhc2VfdCByZWxlYXNlLAogICAgZHJfbWF0Y2hf
dCBtYXRjaCwgdm9pZCAqbWF0Y2hfZGF0YSwKICAgIHZvaWQgKCpmbikoc3RydWN0IGRldmljZSAq
LCB2b2lkICosIHZvaWQgKiksCiAgICB2b2lkICpkYXRhKTsKZXh0ZXJuIHZvaWQgZGV2cmVzX2Zy
ZWUodm9pZCAqcmVzKTsKZXh0ZXJuIHZvaWQgZGV2cmVzX2FkZChzdHJ1Y3QgZGV2aWNlICpkZXYs
IHZvaWQgKnJlcyk7CmV4dGVybiB2b2lkICpkZXZyZXNfZmluZChzdHJ1Y3QgZGV2aWNlICpkZXYs
IGRyX3JlbGVhc2VfdCByZWxlYXNlLAogICAgZHJfbWF0Y2hfdCBtYXRjaCwgdm9pZCAqbWF0Y2hf
ZGF0YSk7CmV4dGVybiB2b2lkICpkZXZyZXNfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAq
bmV3X3JlcywKICAgZHJfbWF0Y2hfdCBtYXRjaCwgdm9pZCAqbWF0Y2hfZGF0YSk7CmV4dGVybiB2
b2lkICpkZXZyZXNfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldiwgZHJfcmVsZWFzZV90IHJlbGVh
c2UsCiAgICAgIGRyX21hdGNoX3QgbWF0Y2gsIHZvaWQgKm1hdGNoX2RhdGEpOwpleHRlcm4gaW50
IGRldnJlc19kZXN0cm95KHN0cnVjdCBkZXZpY2UgKmRldiwgZHJfcmVsZWFzZV90IHJlbGVhc2Us
CiAgICAgZHJfbWF0Y2hfdCBtYXRjaCwgdm9pZCAqbWF0Y2hfZGF0YSk7CmV4dGVybiBpbnQgZGV2
cmVzX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2LCBkcl9yZWxlYXNlX3QgcmVsZWFzZSwKICAg
ICBkcl9tYXRjaF90IG1hdGNoLCB2b2lkICptYXRjaF9kYXRhKTsKCgpleHRlcm4gdm9pZCAqIF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkZXZyZXNfb3Blbl9ncm91cChz
dHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmlkLAogICAgICAgICAgZ2ZwX3QgZ2ZwKTsKZXh0ZXJu
IHZvaWQgZGV2cmVzX2Nsb3NlX2dyb3VwKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqaWQpOwpl
eHRlcm4gdm9pZCBkZXZyZXNfcmVtb3ZlX2dyb3VwKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAq
aWQpOwpleHRlcm4gaW50IGRldnJlc19yZWxlYXNlX2dyb3VwKHN0cnVjdCBkZXZpY2UgKmRldiwg
dm9pZCAqaWQpOwoKCmV4dGVybiB2b2lkICpkZXZtX2ttYWxsb2Moc3RydWN0IGRldmljZSAqZGV2
LCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwKSBfX2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSk7CmV4
dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgMCkpKQpjaGFyICpkZXZt
X2t2YXNwcmludGYoc3RydWN0IGRldmljZSAqZGV2LCBnZnBfdCBnZnAsIGNvbnN0IGNoYXIgKmZt
dCwKICAgICAgICB2YV9saXN0IGFwKSBfX2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSk7CmV4dGVy
biBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKQpjaGFyICpkZXZtX2th
c3ByaW50ZihzdHJ1Y3QgZGV2aWNlICpkZXYsIGdmcF90IGdmcCwgY29uc3QgY2hhciAqZm10LCAu
Li4pIF9fYXR0cmlidXRlX18oKF9fbWFsbG9jX18pKTsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqZGV2bV9remFsbG9jKHN0cnVj
dCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGdmcF90IGdmcCkKewogcmV0dXJuIGRldm1fa21h
bGxvYyhkZXYsIHNpemUsIGdmcCB8ICgoIGdmcF90KTB4MTAwdSkpOwp9CnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKmRldm1fa21h
bGxvY19hcnJheShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgICAgICAgICAgc2l6ZV90IG4sIHNpemVf
dCBzaXplLCBnZnBfdCBmbGFncykKewogc2l6ZV90IGJ5dGVzOwoKIGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKCh7IHR5cGVvZihuKSBfX2EgPSAobik7IHR5cGVvZihzaXplKSBfX2IgPSAoc2l6ZSk7
IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0gJl9fYik7ICh2
b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwgX19iLCBfX2Qp
OyB9KSksIDApKQogIHJldHVybiAoKHZvaWQgKikwKTsKCiByZXR1cm4gZGV2bV9rbWFsbG9jKGRl
diwgYnl0ZXMsIGZsYWdzKTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICpkZXZtX2tjYWxsb2Moc3RydWN0IGRldmljZSAqZGV2
LAogICAgIHNpemVfdCBuLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCnsKIHJldHVybiBkZXZt
X2ttYWxsb2NfYXJyYXkoZGV2LCBuLCBzaXplLCBmbGFncyB8ICgoIGdmcF90KTB4MTAwdSkpOwp9
CmV4dGVybiB2b2lkIGRldm1fa2ZyZWUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpw
KTsKZXh0ZXJuIGNoYXIgKmRldm1fa3N0cmR1cChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNo
YXIgKnMsIGdmcF90IGdmcCkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpOwpleHRlcm4gY29u
c3QgY2hhciAqZGV2bV9rc3RyZHVwX2NvbnN0KHN0cnVjdCBkZXZpY2UgKmRldiwKICAgICAgICAg
IGNvbnN0IGNoYXIgKnMsIGdmcF90IGdmcCk7CmV4dGVybiB2b2lkICpkZXZtX2ttZW1kdXAoc3Ry
dWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBsZW4sCiAgICAgZ2ZwX3Qg
Z2ZwKTsKCmV4dGVybiB1bnNpZ25lZCBsb25nIGRldm1fZ2V0X2ZyZWVfcGFnZXMoc3RydWN0IGRl
dmljZSAqZGV2LAogICAgICBnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9yZGVyKTsKZXh0
ZXJuIHZvaWQgZGV2bV9mcmVlX3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgbG9u
ZyBhZGRyKTsKCnZvaWQgKmRldm1faW9yZW1hcF9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNlICpkZXYs
CiAgICAgICAgY29uc3Qgc3RydWN0IHJlc291cmNlICpyZXMpOwp2b2lkICpkZXZtX2lvcmVtYXBf
cmVzb3VyY2Vfd2Moc3RydWN0IGRldmljZSAqZGV2LAogICAgICAgICAgIGNvbnN0IHN0cnVjdCBy
ZXNvdXJjZSAqcmVzKTsKCnZvaWQgKmRldm1fb2ZfaW9tYXAoc3RydWN0IGRldmljZSAqZGV2LAog
ICAgICAgc3RydWN0IGRldmljZV9ub2RlICpub2RlLCBpbnQgaW5kZXgsCiAgICAgICByZXNvdXJj
ZV9zaXplX3QgKnNpemUpOwoKCmludCBkZXZtX2FkZF9hY3Rpb24oc3RydWN0IGRldmljZSAqZGV2
LCB2b2lkICgqYWN0aW9uKSh2b2lkICopLCB2b2lkICpkYXRhKTsKdm9pZCBkZXZtX3JlbW92ZV9h
Y3Rpb24oc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICgqYWN0aW9uKSh2b2lkICopLCB2b2lkICpk
YXRhKTsKdm9pZCBkZXZtX3JlbGVhc2VfYWN0aW9uKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAo
KmFjdGlvbikodm9pZCAqKSwgdm9pZCAqZGF0YSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZGV2bV9hZGRfYWN0aW9uX29yX3Jl
c2V0KHN0cnVjdCBkZXZpY2UgKmRldiwKICAgICAgICB2b2lkICgqYWN0aW9uKSh2b2lkICopLCB2
b2lkICpkYXRhKQp7CiBpbnQgcmV0OwoKIHJldCA9IGRldm1fYWRkX2FjdGlvbihkZXYsIGFjdGlv
biwgZGF0YSk7CiBpZiAocmV0KQogIGFjdGlvbihkYXRhKTsKCiByZXR1cm4gcmV0Owp9CiMgMjgy
ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCnZvaWQgKl9fZGV2bV9hbGxvY19wZXJjcHUoc3Ry
dWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKICAgICAgIHNpemVfdCBhbGlnbik7CnZvaWQg
ZGV2bV9mcmVlX3BlcmNwdShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKnBkYXRhKTsKCnN0cnVj
dCBkZXZpY2VfZG1hX3BhcmFtZXRlcnMgewoKCgoKIHVuc2lnbmVkIGludCBtYXhfc2VnbWVudF9z
aXplOwogdW5zaWduZWQgbG9uZyBzZWdtZW50X2JvdW5kYXJ5X21hc2s7Cn07CiMgMzA2ICIuL2lu
Y2x1ZGUvbGludXgvZGV2aWNlLmgiCnN0cnVjdCBkZXZpY2VfY29ubmVjdGlvbiB7CiBzdHJ1Y3Qg
Zndub2RlX2hhbmRsZSAqZndub2RlOwogY29uc3QgY2hhciAqZW5kcG9pbnRbMl07CiBjb25zdCBj
aGFyICppZDsKIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKfTsKCnR5cGVkZWYgdm9pZCAqKCpkZXZj
b25fbWF0Y2hfZm5fdCkoc3RydWN0IGRldmljZV9jb25uZWN0aW9uICpjb24sIGludCBlcCwKICAg
ICAgIHZvaWQgKmRhdGEpOwoKdm9pZCAqZndub2RlX2Nvbm5lY3Rpb25fZmluZF9tYXRjaChzdHJ1
Y3QgZndub2RlX2hhbmRsZSAqZndub2RlLAogICAgICAgY29uc3QgY2hhciAqY29uX2lkLCB2b2lk
ICpkYXRhLAogICAgICAgZGV2Y29uX21hdGNoX2ZuX3QgbWF0Y2gpOwp2b2lkICpkZXZpY2VfY29u
bmVjdGlvbl9maW5kX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqY29uX2lk
LAogICAgICAgdm9pZCAqZGF0YSwgZGV2Y29uX21hdGNoX2ZuX3QgbWF0Y2gpOwoKc3RydWN0IGRl
dmljZSAqZGV2aWNlX2Nvbm5lY3Rpb25fZmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNo
YXIgKmNvbl9pZCk7Cgp2b2lkIGRldmljZV9jb25uZWN0aW9uX2FkZChzdHJ1Y3QgZGV2aWNlX2Nv
bm5lY3Rpb24gKmNvbik7CnZvaWQgZGV2aWNlX2Nvbm5lY3Rpb25fcmVtb3ZlKHN0cnVjdCBkZXZp
Y2VfY29ubmVjdGlvbiAqY29uKTsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV9jb25uZWN0aW9uc19hZGQoc3Ry
dWN0IGRldmljZV9jb25uZWN0aW9uICpjb25zKQp7CiBzdHJ1Y3QgZGV2aWNlX2Nvbm5lY3Rpb24g
KmM7CgogZm9yIChjID0gY29uczsgYy0+ZW5kcG9pbnRbMF07IGMrKykKICBkZXZpY2VfY29ubmVj
dGlvbl9hZGQoYyk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV9jb25uZWN0aW9uc19yZW1vdmUoc3RydWN0
IGRldmljZV9jb25uZWN0aW9uICpjb25zKQp7CiBzdHJ1Y3QgZGV2aWNlX2Nvbm5lY3Rpb24gKmM7
CgogZm9yIChjID0gY29uczsgYy0+ZW5kcG9pbnRbMF07IGMrKykKICBkZXZpY2VfY29ubmVjdGlv
bl9yZW1vdmUoYyk7Cn0KIyAzNjAgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKZW51bSBkZXZp
Y2VfbGlua19zdGF0ZSB7CiBETF9TVEFURV9OT05FID0gLTEsCiBETF9TVEFURV9ET1JNQU5UID0g
MCwKIERMX1NUQVRFX0FWQUlMQUJMRSwKIERMX1NUQVRFX0NPTlNVTUVSX1BST0JFLAogRExfU1RB
VEVfQUNUSVZFLAogRExfU1RBVEVfU1VQUExJRVJfVU5CSU5ELAp9OwojIDQwMyAiLi9pbmNsdWRl
L2xpbnV4L2RldmljZS5oIgpzdHJ1Y3QgZGV2aWNlX2xpbmsgewogc3RydWN0IGRldmljZSAqc3Vw
cGxpZXI7CiBzdHJ1Y3QgbGlzdF9oZWFkIHNfbm9kZTsKIHN0cnVjdCBkZXZpY2UgKmNvbnN1bWVy
Owogc3RydWN0IGxpc3RfaGVhZCBjX25vZGU7CiBlbnVtIGRldmljZV9saW5rX3N0YXRlIHN0YXR1
czsKIHUzMiBmbGFnczsKIHJlZmNvdW50X3QgcnBtX2FjdGl2ZTsKIHN0cnVjdCBrcmVmIGtyZWY7
Cgogc3RydWN0IGNhbGxiYWNrX2hlYWQgY2FsbGJhY2tfaGVhZDsKCiBib29sIHN1cHBsaWVyX3By
ZWFjdGl2YXRlZDsKfTsKIyA0MjUgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKZW51bSBkbF9k
ZXZfc3RhdGUgewogRExfREVWX05PX0RSSVZFUiA9IDAsCiBETF9ERVZfUFJPQklORywKIERMX0RF
Vl9EUklWRVJfQk9VTkQsCiBETF9ERVZfVU5CSU5ESU5HLAp9OwojIDQ0MiAiLi9pbmNsdWRlL2xp
bnV4L2RldmljZS5oIgpzdHJ1Y3QgZGV2X2xpbmtzX2luZm8gewogc3RydWN0IGxpc3RfaGVhZCBz
dXBwbGllcnM7CiBzdHJ1Y3QgbGlzdF9oZWFkIGNvbnN1bWVyczsKIHN0cnVjdCBsaXN0X2hlYWQg
bmVlZHNfc3VwcGxpZXJzOwogc3RydWN0IGxpc3RfaGVhZCBkZWZlcl9zeW5jOwogYm9vbCBuZWVk
X2Zvcl9wcm9iZTsKIGVudW0gZGxfZGV2X3N0YXRlIHN0YXR1czsKfTsKIyA1MzcgIi4vaW5jbHVk
ZS9saW51eC9kZXZpY2UuaCIKc3RydWN0IGRldmljZSB7CiBzdHJ1Y3Qga29iamVjdCBrb2JqOwog
c3RydWN0IGRldmljZSAqcGFyZW50OwoKIHN0cnVjdCBkZXZpY2VfcHJpdmF0ZSAqcDsKCiBjb25z
dCBjaGFyICppbml0X25hbWU7CiBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgKnR5cGU7Cgogc3Ry
dWN0IGJ1c190eXBlICpidXM7CiBzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyOwoKIHZvaWQg
KnBsYXRmb3JtX2RhdGE7Cgogdm9pZCAqZHJpdmVyX2RhdGE7CgoKCgogc3RydWN0IG11dGV4IG11
dGV4OwoKCgogc3RydWN0IGRldl9saW5rc19pbmZvIGxpbmtzOwogc3RydWN0IGRldl9wbV9pbmZv
IHBvd2VyOwogc3RydWN0IGRldl9wbV9kb21haW4gKnBtX2RvbWFpbjsKCgogc3RydWN0IGlycV9k
b21haW4gKm1zaV9kb21haW47CgoKIHN0cnVjdCBkZXZfcGluX2luZm8gKnBpbnM7CgoKIHN0cnVj
dCBsaXN0X2hlYWQgbXNpX2xpc3Q7CgoKIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyAqZG1hX29w
czsKIHU2NCAqZG1hX21hc2s7CiB1NjQgY29oZXJlbnRfZG1hX21hc2s7CgoKCgogdTY0IGJ1c19k
bWFfbGltaXQ7CiB1bnNpZ25lZCBsb25nIGRtYV9wZm5fb2Zmc2V0OwoKIHN0cnVjdCBkZXZpY2Vf
ZG1hX3BhcmFtZXRlcnMgKmRtYV9wYXJtczsKCiBzdHJ1Y3QgbGlzdF9oZWFkIGRtYV9wb29sczsK
IyA1OTcgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKIHN0cnVjdCBkZXZfYXJjaGRhdGEgYXJj
aGRhdGE7Cgogc3RydWN0IGRldmljZV9ub2RlICpvZl9ub2RlOwogc3RydWN0IGZ3bm9kZV9oYW5k
bGUgKmZ3bm9kZTsKCgoKCiBkZXZfdCBkZXZ0OwogdTMyIGlkOwoKIHNwaW5sb2NrX3QgZGV2cmVz
X2xvY2s7CiBzdHJ1Y3QgbGlzdF9oZWFkIGRldnJlc19oZWFkOwoKIHN0cnVjdCBjbGFzcyAqY2xh
c3M7CiBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZ3JvdXBzOwoKIHZvaWQgKCpyZWxl
YXNlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogc3RydWN0IGlvbW11X2dyb3VwICppb21tdV9ncm91
cDsKIHN0cnVjdCBpb21tdV9md3NwZWMgKmlvbW11X2Z3c3BlYzsKIHN0cnVjdCBpb21tdV9wYXJh
bSAqaW9tbXVfcGFyYW07CgogYm9vbCBvZmZsaW5lX2Rpc2FibGVkOjE7CiBib29sIG9mZmxpbmU6
MTsKIGJvb2wgb2Zfbm9kZV9yZXVzZWQ6MTsKIGJvb2wgc3RhdGVfc3luY2VkOjE7CgoKCgoKfTsK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHN0cnVjdCBkZXZpY2UgKmtvYmpfdG9fZGV2KHN0cnVjdCBrb2JqZWN0ICprb2JqKQp7CiByZXR1
cm4gKHsgdm9pZCAqX19tcHRyID0gKHZvaWQgKikoa29iaik7IGRvIHsgZXh0ZXJuIHZvaWQgX19j
b21waWxldGltZV9hc3NlcnRfNjMyKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9p
bnRlciB0eXBlIG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWls
dGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKihrb2JqKSksIHR5cGVvZigoKHN0cnVjdCBk
ZXZpY2UgKikwKS0+a29iaikpICYmICFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVv
ZigqKGtvYmopKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF82MzIoKTsg
fSB3aGlsZSAoMCk7ICgoc3RydWN0IGRldmljZSAqKShfX21wdHIgLSBfX2J1aWx0aW5fb2Zmc2V0
b2Yoc3RydWN0IGRldmljZSwga29iaikpKTsgfSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkZXZpY2VfaW9tbXVf
bWFwcGVkKHN0cnVjdCBkZXZpY2UgKmRldikKewogcmV0dXJuIChkZXYtPmlvbW11X2dyb3VwICE9
ICgodm9pZCAqKTApKTsKfQoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3BtX3dha2V1cC5oIiAxCiMg
MTggIi4vaW5jbHVkZS9saW51eC9wbV93YWtldXAuaCIKc3RydWN0IHdha2VfaXJxOwojIDQzICIu
L2luY2x1ZGUvbGludXgvcG1fd2FrZXVwLmgiCnN0cnVjdCB3YWtldXBfc291cmNlIHsKIGNvbnN0
IGNoYXIgKm5hbWU7CiBpbnQgaWQ7CiBzdHJ1Y3QgbGlzdF9oZWFkIGVudHJ5Owogc3BpbmxvY2tf
dCBsb2NrOwogc3RydWN0IHdha2VfaXJxICp3YWtlaXJxOwogc3RydWN0IHRpbWVyX2xpc3QgdGlt
ZXI7CiB1bnNpZ25lZCBsb25nIHRpbWVyX2V4cGlyZXM7CiBrdGltZV90IHRvdGFsX3RpbWU7CiBr
dGltZV90IG1heF90aW1lOwoga3RpbWVfdCBsYXN0X3RpbWU7CiBrdGltZV90IHN0YXJ0X3ByZXZl
bnRfdGltZTsKIGt0aW1lX3QgcHJldmVudF9zbGVlcF90aW1lOwogdW5zaWduZWQgbG9uZyBldmVu
dF9jb3VudDsKIHVuc2lnbmVkIGxvbmcgYWN0aXZlX2NvdW50OwogdW5zaWduZWQgbG9uZyByZWxh
eF9jb3VudDsKIHVuc2lnbmVkIGxvbmcgZXhwaXJlX2NvdW50OwogdW5zaWduZWQgbG9uZyB3YWtl
dXBfY291bnQ7CiBzdHJ1Y3QgZGV2aWNlICpkZXY7CiBib29sIGFjdGl2ZToxOwogYm9vbCBhdXRv
c2xlZXBfZW5hYmxlZDoxOwp9OwojIDc3ICIuL2luY2x1ZGUvbGludXgvcG1fd2FrZXVwLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgZGV2aWNlX2Nhbl93YWtldXAoc3RydWN0IGRldmljZSAqZGV2KQp7CiByZXR1cm4gZGV2LT5w
b3dlci5jYW5fd2FrZXVwOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRldmljZV9tYXlfd2FrZXVwKHN0cnVjdCBkZXZpY2Ug
KmRldikKewogcmV0dXJuIGRldi0+cG93ZXIuY2FuX3dha2V1cCAmJiAhIWRldi0+cG93ZXIud2Fr
ZXVwOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGRldmljZV9zZXRfd2FrZXVwX3BhdGgoc3RydWN0IGRldmljZSAqZGV2KQp7
CiBkZXYtPnBvd2VyLndha2V1cF9wYXRoID0gdHJ1ZTsKfQoKCmV4dGVybiBzdHJ1Y3Qgd2FrZXVw
X3NvdXJjZSAqd2FrZXVwX3NvdXJjZV9jcmVhdGUoY29uc3QgY2hhciAqbmFtZSk7CmV4dGVybiB2
b2lkIHdha2V1cF9zb3VyY2VfZGVzdHJveShzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MpOwpleHRl
cm4gdm9pZCB3YWtldXBfc291cmNlX2FkZChzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MpOwpleHRl
cm4gdm9pZCB3YWtldXBfc291cmNlX3JlbW92ZShzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MpOwpl
eHRlcm4gc3RydWN0IHdha2V1cF9zb3VyY2UgKndha2V1cF9zb3VyY2VfcmVnaXN0ZXIoc3RydWN0
IGRldmljZSAqZGV2LAogICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7CmV4dGVybiB2b2lkIHdh
a2V1cF9zb3VyY2VfdW5yZWdpc3RlcihzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MpOwpleHRlcm4g
aW50IHdha2V1cF9zb3VyY2VzX3JlYWRfbG9jayh2b2lkKTsKZXh0ZXJuIHZvaWQgd2FrZXVwX3Nv
dXJjZXNfcmVhZF91bmxvY2soaW50IGlkeCk7CmV4dGVybiBzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAq
d2FrZXVwX3NvdXJjZXNfd2Fsa19zdGFydCh2b2lkKTsKZXh0ZXJuIHN0cnVjdCB3YWtldXBfc291
cmNlICp3YWtldXBfc291cmNlc193YWxrX25leHQoc3RydWN0IHdha2V1cF9zb3VyY2UgKndzKTsK
ZXh0ZXJuIGludCBkZXZpY2Vfd2FrZXVwX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRl
cm4gaW50IGRldmljZV93YWtldXBfZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4g
dm9pZCBkZXZpY2Vfc2V0X3dha2V1cF9jYXBhYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgYm9vbCBj
YXBhYmxlKTsKZXh0ZXJuIGludCBkZXZpY2VfaW5pdF93YWtldXAoc3RydWN0IGRldmljZSAqZGV2
LCBib29sIHZhbCk7CmV4dGVybiBpbnQgZGV2aWNlX3NldF93YWtldXBfZW5hYmxlKHN0cnVjdCBk
ZXZpY2UgKmRldiwgYm9vbCBlbmFibGUpOwpleHRlcm4gdm9pZCBfX3BtX3N0YXlfYXdha2Uoc3Ry
dWN0IHdha2V1cF9zb3VyY2UgKndzKTsKZXh0ZXJuIHZvaWQgcG1fc3RheV9hd2FrZShzdHJ1Y3Qg
ZGV2aWNlICpkZXYpOwpleHRlcm4gdm9pZCBfX3BtX3JlbGF4KHN0cnVjdCB3YWtldXBfc291cmNl
ICp3cyk7CmV4dGVybiB2b2lkIHBtX3JlbGF4KHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiB2
b2lkIHBtX3dha2V1cF93c19ldmVudChzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MsIHVuc2lnbmVk
IGludCBtc2VjLCBib29sIGhhcmQpOwpleHRlcm4gdm9pZCBwbV93YWtldXBfZGV2X2V2ZW50KHN0
cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG1zZWMsIGJvb2wgaGFyZCk7CiMgMTk1ICIu
L2luY2x1ZGUvbGludXgvcG1fd2FrZXVwLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19wbV93YWtldXBfZXZlbnQoc3RydWN0
IHdha2V1cF9zb3VyY2UgKndzLCB1bnNpZ25lZCBpbnQgbXNlYykKewogcmV0dXJuIHBtX3dha2V1
cF93c19ldmVudCh3cywgbXNlYywgZmFsc2UpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBtX3dha2V1cF9ldmVudChzdHJ1
Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBtc2VjKQp7CiByZXR1cm4gcG1fd2FrZXVwX2Rl
dl9ldmVudChkZXYsIG1zZWMsIGZhbHNlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwbV93YWtldXBfaGFyZF9ldmVudChz
dHJ1Y3QgZGV2aWNlICpkZXYpCnsKIHJldHVybiBwbV93YWtldXBfZGV2X2V2ZW50KGRldiwgMCwg
dHJ1ZSk7Cn0KIyA2NDcgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIgMgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY29uc3QgY2hhciAq
ZGV2X25hbWUoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KQp7CgogaWYgKGRldi0+aW5pdF9uYW1l
KQogIHJldHVybiBkZXYtPmluaXRfbmFtZTsKCiByZXR1cm4ga29iamVjdF9uYW1lKCZkZXYtPmtv
YmopOwp9CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkK
aW50IGRldl9zZXRfbmFtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUsIC4u
Lik7CiMgNjcwICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkZXZfdG9fbm9kZShzdHJ1
Y3QgZGV2aWNlICpkZXYpCnsKIHJldHVybiAoLTEpOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X2Rldl9ub2RlKHN0cnVj
dCBkZXZpY2UgKmRldiwgaW50IG5vZGUpCnsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBpcnFfZG9tYWluICpkZXZfZ2V0
X21zaV9kb21haW4oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KQp7CgogcmV0dXJuIGRldi0+bXNp
X2RvbWFpbjsKCgoKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZfc2V0X21zaV9kb21haW4oc3RydWN0IGRldmljZSAqZGV2
LCBzdHJ1Y3QgaXJxX2RvbWFpbiAqZCkKewoKIGRldi0+bXNpX2RvbWFpbiA9IGQ7Cgp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
ICpkZXZfZ2V0X2RydmRhdGEoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KQp7CiByZXR1cm4gZGV2
LT5kcml2ZXJfZGF0YTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZfc2V0X2RydmRhdGEoc3RydWN0IGRldmljZSAqZGV2
LCB2b2lkICpkYXRhKQp7CiBkZXYtPmRyaXZlcl9kYXRhID0gZGF0YTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBtX3N1
YnN5c19kYXRhICpkZXZfdG9fcHNkKHN0cnVjdCBkZXZpY2UgKmRldikKewogcmV0dXJuIGRldiA/
IGRldi0+cG93ZXIuc3Vic3lzX2RhdGEgOiAoKHZvaWQgKikwKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGRl
dl9nZXRfdWV2ZW50X3N1cHByZXNzKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldikKewogcmV0dXJu
IGRldi0+a29iai51ZXZlbnRfc3VwcHJlc3M7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGV2X3NldF91ZXZlbnRfc3VwcHJl
c3Moc3RydWN0IGRldmljZSAqZGV2LCBpbnQgdmFsKQp7CiBkZXYtPmtvYmoudWV2ZW50X3N1cHBy
ZXNzID0gdmFsOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgZGV2aWNlX2lzX3JlZ2lzdGVyZWQoc3RydWN0IGRldmljZSAqZGV2
KQp7CiByZXR1cm4gZGV2LT5rb2JqLnN0YXRlX2luX3N5c2ZzOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV9lbmFi
bGVfYXN5bmNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKIGlmICghZGV2LT5wb3dlci5p
c19wcmVwYXJlZCkKICBkZXYtPnBvd2VyLmFzeW5jX3N1c3BlbmQgPSB0cnVlOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRl
dmljZV9kaXNhYmxlX2FzeW5jX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQp7CiBpZiAoIWRl
di0+cG93ZXIuaXNfcHJlcGFyZWQpCiAgZGV2LT5wb3dlci5hc3luY19zdXNwZW5kID0gZmFsc2U7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgZGV2aWNlX2FzeW5jX3N1c3BlbmRfZW5hYmxlZChzdHJ1Y3QgZGV2aWNlICpkZXYp
CnsKIHJldHVybiAhIWRldi0+cG93ZXIuYXN5bmNfc3VzcGVuZDsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkZXZpY2VfcG1f
bm90X3JlcXVpcmVkKHN0cnVjdCBkZXZpY2UgKmRldikKewogcmV0dXJuIGRldi0+cG93ZXIubm9f
cG07Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgZGV2aWNlX3NldF9wbV9ub3RfcmVxdWlyZWQoc3RydWN0IGRldmljZSAqZGV2
KQp7CiBkZXYtPnBvd2VyLm5vX3BtID0gdHJ1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZfcG1fc3lzY29yZV9kZXZp
Y2Uoc3RydWN0IGRldmljZSAqZGV2LCBib29sIHZhbCkKewoKIGRldi0+cG93ZXIuc3lzY29yZSA9
IHZhbDsKCn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgZGV2X3BtX3NldF9kcml2ZXJfZmxhZ3Moc3RydWN0IGRldmljZSAqZGV2
LCB1MzIgZmxhZ3MpCnsKIGRldi0+cG93ZXIuZHJpdmVyX2ZsYWdzID0gZmxhZ3M7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
ZGV2X3BtX3Rlc3RfZHJpdmVyX2ZsYWdzKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIGZsYWdzKQp7
CiByZXR1cm4gISEoZGV2LT5wb3dlci5kcml2ZXJfZmxhZ3MgJiBmbGFncyk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGV2
aWNlX2xvY2soc3RydWN0IGRldmljZSAqZGV2KQp7CiBtdXRleF9sb2NrKCZkZXYtPm11dGV4KTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IGRldmljZV9sb2NrX2ludGVycnVwdGlibGUoc3RydWN0IGRldmljZSAqZGV2KQp7CiBy
ZXR1cm4gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXYtPm11dGV4KTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGRldmlj
ZV90cnlsb2NrKHN0cnVjdCBkZXZpY2UgKmRldikKewogcmV0dXJuIG11dGV4X3RyeWxvY2soJmRl
di0+bXV0ZXgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV91bmxvY2soc3RydWN0IGRldmljZSAqZGV2KQp7CiBt
dXRleF91bmxvY2soJmRldi0+bXV0ZXgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV9sb2NrX2Fzc2VydChzdHJ1
Y3QgZGV2aWNlICpkZXYpCnsKIGRvIHsgKHZvaWQpKCZkZXYtPm11dGV4KTsgfSB3aGlsZSAoMCk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBkZXZpY2Vfbm9kZSAqZGV2X29mX25vZGUoc3RydWN0IGRldmljZSAqZGV2KQp7
CiBpZiAoITAgfHwgIWRldikKICByZXR1cm4gKCh2b2lkICopMCk7CiByZXR1cm4gZGV2LT5vZl9u
b2RlOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIGRldl9oYXNfc3luY19zdGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKIGlm
ICghZGV2KQogIHJldHVybiBmYWxzZTsKIGlmIChkZXYtPmRyaXZlciAmJiBkZXYtPmRyaXZlci0+
c3luY19zdGF0ZSkKICByZXR1cm4gdHJ1ZTsKIGlmIChkZXYtPmJ1cyAmJiBkZXYtPmJ1cy0+c3lu
Y19zdGF0ZSkKICByZXR1cm4gdHJ1ZTsKIHJldHVybiBmYWxzZTsKfQoKCgoKZXh0ZXJuIGludCBf
X2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZGV2aWNlX3JlZ2lzdGVyKHN0
cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiB2b2lkIGRldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBk
ZXZpY2UgKmRldik7CmV4dGVybiB2b2lkIGRldmljZV9pbml0aWFsaXplKHN0cnVjdCBkZXZpY2Ug
KmRldik7CmV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGRldmljZV9hZGQoc3RydWN0IGRldmljZSAqZGV2KTsKZXh0ZXJuIHZvaWQgZGV2aWNlX2RlbChz
dHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4gaW50IGRldmljZV9mb3JfZWFjaF9jaGlsZChzdHJ1
Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAgICAgICBpbnQgKCpmbikoc3RydWN0IGRldmlj
ZSAqZGV2LCB2b2lkICpkYXRhKSk7CmV4dGVybiBpbnQgZGV2aWNlX2Zvcl9lYWNoX2NoaWxkX3Jl
dmVyc2Uoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhLAogICAgICAgaW50ICgqZm4pKHN0
cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkpOwpleHRlcm4gc3RydWN0IGRldmljZSAqZGV2
aWNlX2ZpbmRfY2hpbGQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhLAogICAgaW50ICgq
bWF0Y2gpKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkpOwpleHRlcm4gc3RydWN0IGRl
dmljZSAqZGV2aWNlX2ZpbmRfY2hpbGRfYnlfbmFtZShzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCiAg
ICAgIGNvbnN0IGNoYXIgKm5hbWUpOwpleHRlcm4gaW50IGRldmljZV9yZW5hbWUoc3RydWN0IGRl
dmljZSAqZGV2LCBjb25zdCBjaGFyICpuZXdfbmFtZSk7CmV4dGVybiBpbnQgZGV2aWNlX21vdmUo
c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICpuZXdfcGFyZW50LAogICAgICAgICBl
bnVtIGRwbV9vcmRlciBkcG1fb3JkZXIpOwpleHRlcm4gY29uc3QgY2hhciAqZGV2aWNlX2dldF9k
ZXZub2RlKHN0cnVjdCBkZXZpY2UgKmRldiwKICAgICAgICAgIHVtb2RlX3QgKm1vZGUsIGt1aWRf
dCAqdWlkLCBrZ2lkX3QgKmdpZCwKICAgICAgICAgIGNvbnN0IGNoYXIgKip0bXApOwoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBk
ZXZpY2Vfc3VwcG9ydHNfb2ZmbGluZShzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKIHJldHVybiBkZXYt
PmJ1cyAmJiBkZXYtPmJ1cy0+b2ZmbGluZSAmJiBkZXYtPmJ1cy0+b25saW5lOwp9CgpleHRlcm4g
dm9pZCBsb2NrX2RldmljZV9ob3RwbHVnKHZvaWQpOwpleHRlcm4gdm9pZCB1bmxvY2tfZGV2aWNl
X2hvdHBsdWcodm9pZCk7CmV4dGVybiBpbnQgbG9ja19kZXZpY2VfaG90cGx1Z19zeXNmcyh2b2lk
KTsKZXh0ZXJuIGludCBkZXZpY2Vfb2ZmbGluZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4g
aW50IGRldmljZV9vbmxpbmUoc3RydWN0IGRldmljZSAqZGV2KTsKZXh0ZXJuIHZvaWQgc2V0X3By
aW1hcnlfZndub2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3
bm9kZSk7CmV4dGVybiB2b2lkIHNldF9zZWNvbmRhcnlfZndub2RlKHN0cnVjdCBkZXZpY2UgKmRl
diwgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSk7CnZvaWQgZGV2aWNlX3NldF9vZl9ub2Rl
X2Zyb21fZGV2KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRldmljZSAqZGV2Mik7
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgZGV2X251bV92ZihzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKIGlmIChkZXYtPmJ1cyAmJiBk
ZXYtPmJ1cy0+bnVtX3ZmKQogIHJldHVybiBkZXYtPmJ1cy0+bnVtX3ZmKGRldik7CiByZXR1cm4g
MDsKfQoKCgoKZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKl9fcm9vdF9kZXZpY2VfcmVnaXN0ZXIoY29u
c3QgY2hhciAqbmFtZSwKICAgICAgICAgIHN0cnVjdCBtb2R1bGUgKm93bmVyKTsKCgoKCgpleHRl
cm4gdm9pZCByb290X2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKnJvb3QpOwoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCAqZGV2X2dldF9wbGF0ZGF0YShjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKIHJldHVybiBk
ZXYtPnBsYXRmb3JtX2RhdGE7Cn0KCgoKCgpleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fy
bl91bnVzZWRfcmVzdWx0X18pKSBkZXZpY2VfYmluZF9kcml2ZXIoc3RydWN0IGRldmljZSAqZGV2
KTsKZXh0ZXJuIHZvaWQgZGV2aWNlX3JlbGVhc2VfZHJpdmVyKHN0cnVjdCBkZXZpY2UgKmRldik7
CmV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGRldmlj
ZV9hdHRhY2goc3RydWN0IGRldmljZSAqZGV2KTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChf
X3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZHJpdmVyX2F0dGFjaChzdHJ1Y3QgZGV2aWNlX2RyaXZl
ciAqZHJ2KTsKZXh0ZXJuIHZvaWQgZGV2aWNlX2luaXRpYWxfcHJvYmUoc3RydWN0IGRldmljZSAq
ZGV2KTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
ZGV2aWNlX3JlcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KTsKCmV4dGVybiBib29sIGRldmljZV9p
c19ib3VuZChzdHJ1Y3QgZGV2aWNlICpkZXYpOwoKCgoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9f
Zm9ybWF0X18ocHJpbnRmLCA1LCAwKSkpCnN0cnVjdCBkZXZpY2UgKmRldmljZV9jcmVhdGVfdmFy
Z3Moc3RydWN0IGNsYXNzICpjbHMsIHN0cnVjdCBkZXZpY2UgKnBhcmVudCwKICAgICAgIGRldl90
IGRldnQsIHZvaWQgKmRydmRhdGEsCiAgICAgICBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgdmFy
Z3MpOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDUsIDYpKSkKc3Ry
dWN0IGRldmljZSAqZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgY2xhc3MgKmNscywgc3RydWN0IGRldmlj
ZSAqcGFyZW50LAogICAgICAgIGRldl90IGRldnQsIHZvaWQgKmRydmRhdGEsCiAgICAgICAgY29u
c3QgY2hhciAqZm10LCAuLi4pOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmlu
dGYsIDYsIDcpKSkKc3RydWN0IGRldmljZSAqZGV2aWNlX2NyZWF0ZV93aXRoX2dyb3VwcyhzdHJ1
Y3QgY2xhc3MgKmNscywKICAgICAgICBzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsIGRldl90IGRldnQs
IHZvaWQgKmRydmRhdGEsCiAgICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdy
b3VwcywKICAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CmV4dGVybiB2b2lkIGRldmljZV9k
ZXN0cm95KHN0cnVjdCBjbGFzcyAqY2xzLCBkZXZfdCBkZXZ0KTsKCmV4dGVybiBpbnQgX19hdHRy
aWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGRldmljZV9hZGRfZ3JvdXBzKHN0cnVj
dCBkZXZpY2UgKmRldiwKICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZ3JvdXBz
KTsKZXh0ZXJuIHZvaWQgZGV2aWNlX3JlbW92ZV9ncm91cHMoc3RydWN0IGRldmljZSAqZGV2LAog
ICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipncm91cHMpOwoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkZXZpY2VfYWRkX2dyb3VwKHN0cnVjdCBk
ZXZpY2UgKmRldiwKICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpncnApCnsKIGNv
bnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmdyb3Vwc1tdID0geyBncnAsICgodm9pZCAqKTAp
IH07CgogcmV0dXJuIGRldmljZV9hZGRfZ3JvdXBzKGRldiwgZ3JvdXBzKTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZp
Y2VfcmVtb3ZlX2dyb3VwKHN0cnVjdCBkZXZpY2UgKmRldiwKICAgICAgICAgICBjb25zdCBzdHJ1
Y3QgYXR0cmlidXRlX2dyb3VwICpncnApCnsKIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAg
Kmdyb3Vwc1tdID0geyBncnAsICgodm9pZCAqKTApIH07CgogcmV0dXJuIGRldmljZV9yZW1vdmVf
Z3JvdXBzKGRldiwgZ3JvdXBzKTsKfQoKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkgZGV2bV9kZXZpY2VfYWRkX2dyb3VwcyhzdHJ1Y3QgZGV2aWNlICpk
ZXYsCiAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CmV4dGVybiB2
b2lkIGRldm1fZGV2aWNlX3JlbW92ZV9ncm91cHMoc3RydWN0IGRldmljZSAqZGV2LAogICAgICAg
ICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CmV4dGVybiBpbnQgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGRldm1fZGV2aWNlX2FkZF9ncm91
cChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAq
Z3JwKTsKZXh0ZXJuIHZvaWQgZGV2bV9kZXZpY2VfcmVtb3ZlX2dyb3VwKHN0cnVjdCBkZXZpY2Ug
KmRldiwKICAgICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZ3JwKTsKCgoKCgoK
CmV4dGVybiBpbnQgKCpwbGF0Zm9ybV9ub3RpZnkpKHN0cnVjdCBkZXZpY2UgKmRldik7CgpleHRl
cm4gaW50ICgqcGxhdGZvcm1fbm90aWZ5X3JlbW92ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKCgoK
CgoKZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKmdldF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KTsK
ZXh0ZXJuIHZvaWQgcHV0X2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4gYm9vbCBr
aWxsX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoKCmV4dGVybiBpbnQgZGV2dG1wZnNfbW91
bnQodm9pZCk7CgoKCgoKZXh0ZXJuIHZvaWQgZGV2aWNlX3NodXRkb3duKHZvaWQpOwoKCmV4dGVy
biBjb25zdCBjaGFyICpkZXZfZHJpdmVyX3N0cmluZyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYp
OwoKCnN0cnVjdCBkZXZpY2VfbGluayAqZGV2aWNlX2xpbmtfYWRkKHN0cnVjdCBkZXZpY2UgKmNv
bnN1bWVyLAogICAgICAgIHN0cnVjdCBkZXZpY2UgKnN1cHBsaWVyLCB1MzIgZmxhZ3MpOwp2b2lk
IGRldmljZV9saW5rX2RlbChzdHJ1Y3QgZGV2aWNlX2xpbmsgKmxpbmspOwp2b2lkIGRldmljZV9s
aW5rX3JlbW92ZSh2b2lkICpjb25zdW1lciwgc3RydWN0IGRldmljZSAqc3VwcGxpZXIpOwp2b2lk
IGRldmljZV9saW5rc19zdXBwbGllcl9zeW5jX3N0YXRlX3BhdXNlKHZvaWQpOwp2b2lkIGRldmlj
ZV9saW5rc19zdXBwbGllcl9zeW5jX3N0YXRlX3Jlc3VtZSh2b2lkKTsKIyAzMyAiLi9pbmNsdWRl
L2RybS9kcm1fcHJpbnQuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9kZWJ1Z2ZzLmgiIDEKIyAy
MSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnZnMuaCIKc3RydWN0IGRldmljZTsKc3RydWN0IGZpbGVf
b3BlcmF0aW9uczsKCnN0cnVjdCBkZWJ1Z2ZzX2Jsb2Jfd3JhcHBlciB7CiB2b2lkICpkYXRhOwog
dW5zaWduZWQgbG9uZyBzaXplOwp9OwoKc3RydWN0IGRlYnVnZnNfcmVnMzIgewogY2hhciAqbmFt
ZTsKIHVuc2lnbmVkIGxvbmcgb2Zmc2V0Owp9OwoKc3RydWN0IGRlYnVnZnNfcmVnc2V0MzIgewog
Y29uc3Qgc3RydWN0IGRlYnVnZnNfcmVnMzIgKnJlZ3M7CiBpbnQgbnJlZ3M7CiB2b2lkICpiYXNl
Owp9OwoKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKmFyY2hfZGVidWdmc19kaXI7CiMgNTcgIi4vaW5j
bHVkZS9saW51eC9kZWJ1Z2ZzLmgiCnR5cGVkZWYgc3RydWN0IHZmc21vdW50ICooKmRlYnVnZnNf
YXV0b21vdW50X3QpKHN0cnVjdCBkZW50cnkgKiwgdm9pZCAqKTsKCgoKc3RydWN0IGRlbnRyeSAq
ZGVidWdmc19sb29rdXAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50KTsK
CnN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX2ZpbGUoY29uc3QgY2hhciAqbmFtZSwgdW1v
ZGVfdCBtb2RlLAogICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB2b2lkICpkYXRhLAogICAg
ICAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZm9wcyk7CnN0cnVjdCBkZW50cnkgKmRl
YnVnZnNfY3JlYXRlX2ZpbGVfdW5zYWZlKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwK
ICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdm9pZCAqZGF0YSwKICAgICAgIGNvbnN0IHN0
cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpOwoKc3RydWN0IGRlbnRyeSAqZGVidWdmc19jcmVh
dGVfZmlsZV9zaXplKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKICAgICBzdHJ1Y3Qg
ZGVudHJ5ICpwYXJlbnQsIHZvaWQgKmRhdGEsCiAgICAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0
aW9ucyAqZm9wcywKICAgICBsb2ZmX3QgZmlsZV9zaXplKTsKCnN0cnVjdCBkZW50cnkgKmRlYnVn
ZnNfY3JlYXRlX2Rpcihjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQpOwoK
c3RydWN0IGRlbnRyeSAqZGVidWdmc19jcmVhdGVfc3ltbGluayhjb25zdCBjaGFyICpuYW1lLCBz
dHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCiAgICAgICAgICBjb25zdCBjaGFyICpkZXN0KTsKCnN0cnVj
dCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX2F1dG9tb3VudChjb25zdCBjaGFyICpuYW1lLAogICAg
IHN0cnVjdCBkZW50cnkgKnBhcmVudCwKICAgICBkZWJ1Z2ZzX2F1dG9tb3VudF90IGYsCiAgICAg
dm9pZCAqZGF0YSk7Cgp2b2lkIGRlYnVnZnNfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7
CgoKY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZGVidWdmc19yZWFsX2ZvcHMoY29uc3Qg
c3RydWN0IGZpbGUgKmZpbHApOwoKaW50IGRlYnVnZnNfZmlsZV9nZXQoc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KTsKdm9pZCBkZWJ1Z2ZzX2ZpbGVfcHV0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7Cgpz
c2l6ZV90IGRlYnVnZnNfYXR0cl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyICpidWYsCiAg
IHNpemVfdCBsZW4sIGxvZmZfdCAqcHBvcyk7CnNzaXplX3QgZGVidWdmc19hdHRyX3dyaXRlKHN0
cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyICpidWYsCiAgIHNpemVfdCBsZW4sIGxvZmZfdCAq
cHBvcyk7CgpzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX3JlbmFtZShzdHJ1Y3QgZGVudHJ5ICpvbGRf
ZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LAogICAgICAgICAgICAgICAgc3RydWN0IGRl
bnRyeSAqbmV3X2RpciwgY29uc3QgY2hhciAqbmV3X25hbWUpOwoKdm9pZCBkZWJ1Z2ZzX2NyZWF0
ZV91OChjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsIHN0cnVjdCBkZW50cnkgKnBhcmVu
dCwKICAgICAgICAgdTggKnZhbHVlKTsKdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV91MTYoY29uc3QgY2hh
ciAqbmFtZSwgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCiAgIHUxNiAqdmFs
dWUpOwpzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX2NyZWF0ZV91MzIoY29uc3QgY2hhciAqbmFtZSwg
dW1vZGVfdCBtb2RlLAogICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIHUzMiAqdmFsdWUpOwp2
b2lkIGRlYnVnZnNfY3JlYXRlX3U2NChjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsIHN0
cnVjdCBkZW50cnkgKnBhcmVudCwKICAgdTY0ICp2YWx1ZSk7CnN0cnVjdCBkZW50cnkgKmRlYnVn
ZnNfY3JlYXRlX3Vsb25nKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKICAgICAgICBz
dHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIHVuc2lnbmVkIGxvbmcgKnZhbHVlKTsKdm9pZCBkZWJ1Z2Zz
X2NyZWF0ZV94OChjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsIHN0cnVjdCBkZW50cnkg
KnBhcmVudCwKICAgICAgICAgdTggKnZhbHVlKTsKdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV94MTYoY29u
c3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCiAgIHUx
NiAqdmFsdWUpOwp2b2lkIGRlYnVnZnNfY3JlYXRlX3gzMihjb25zdCBjaGFyICpuYW1lLCB1bW9k
ZV90IG1vZGUsIHN0cnVjdCBkZW50cnkgKnBhcmVudCwKICAgdTMyICp2YWx1ZSk7CnZvaWQgZGVi
dWdmc19jcmVhdGVfeDY0KGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwgc3RydWN0IGRl
bnRyeSAqcGFyZW50LAogICB1NjQgKnZhbHVlKTsKdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV9zaXplX3Qo
Y29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLAogICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJl
bnQsIHNpemVfdCAqdmFsdWUpOwp2b2lkIGRlYnVnZnNfY3JlYXRlX2F0b21pY190KGNvbnN0IGNo
YXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIGF0
b21pY190ICp2YWx1ZSk7CnN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX2Jvb2woY29uc3Qg
Y2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLAogICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIGJv
b2wgKnZhbHVlKTsKCnN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX2Jsb2IoY29uc3QgY2hh
ciAqbmFtZSwgdW1vZGVfdCBtb2RlLAogICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCiAgICAg
IHN0cnVjdCBkZWJ1Z2ZzX2Jsb2Jfd3JhcHBlciAqYmxvYik7Cgp2b2lkIGRlYnVnZnNfY3JlYXRl
X3JlZ3NldDMyKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKICAgICAgICBzdHJ1Y3Qg
ZGVudHJ5ICpwYXJlbnQsCiAgICAgICAgc3RydWN0IGRlYnVnZnNfcmVnc2V0MzIgKnJlZ3NldCk7
Cgp2b2lkIGRlYnVnZnNfcHJpbnRfcmVnczMyKHN0cnVjdCBzZXFfZmlsZSAqcywgY29uc3Qgc3Ry
dWN0IGRlYnVnZnNfcmVnMzIgKnJlZ3MsCiAgICAgaW50IG5yZWdzLCB2b2lkICpiYXNlLCBjaGFy
ICpwcmVmaXgpOwoKdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV91MzJfYXJyYXkoY29uc3QgY2hhciAqbmFt
ZSwgdW1vZGVfdCBtb2RlLAogICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIHUzMiAqYXJy
YXksIHUzMiBlbGVtZW50cyk7CgpzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3Nl
cWZpbGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLAogICAgICAgIHN0cnVj
dCBkZW50cnkgKnBhcmVudCwKICAgICAgICBpbnQgKCpyZWFkX2ZuKShzdHJ1Y3Qgc2VxX2ZpbGUg
KnMsCiAgICAgICAgIHZvaWQgKmRhdGEpKTsKCmJvb2wgZGVidWdmc19pbml0aWFsaXplZCh2b2lk
KTsKCnNzaXplX3QgZGVidWdmc19yZWFkX2ZpbGVfYm9vbChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hh
ciAqdXNlcl9idWYsCiAgICAgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcyk7Cgpzc2l6
ZV90IGRlYnVnZnNfd3JpdGVfZmlsZV9ib29sKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFy
ICp1c2VyX2J1ZiwKICAgIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKTsKIyAzNjUgIi4vaW5j
bHVkZS9saW51eC9kZWJ1Z2ZzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGVidWdmc19jcmVhdGVfeHVsKGNvbnN0IGNoYXIg
Km5hbWUsIHVtb2RlX3QgbW9kZSwKICAgICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwKICAg
ICAgICAgIHVuc2lnbmVkIGxvbmcgKnZhbHVlKQp7CiBpZiAoc2l6ZW9mKCp2YWx1ZSkgPT0gc2l6
ZW9mKHUzMikpCiAgZGVidWdmc19jcmVhdGVfeDMyKG5hbWUsIG1vZGUsIHBhcmVudCwgKHUzMiAq
KXZhbHVlKTsKIGVsc2UKICBkZWJ1Z2ZzX2NyZWF0ZV94NjQobmFtZSwgbW9kZSwgcGFyZW50LCAo
dTY0ICopdmFsdWUpOwp9CiMgMzQgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiIDIKCiMgMSAi
Li9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIiAxCiMgNDIgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0u
aCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2lvY3RsLmgiIDEK
IyA0MyAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIiAyCnR5cGVkZWYgdW5zaWduZWQgaW50IGRy
bV9oYW5kbGVfdDsKIyA4NCAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgp0eXBlZGVmIHVuc2ln
bmVkIGludCBkcm1fY29udGV4dF90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBkcm1fZHJhd2FibGVf
dDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgZHJtX21hZ2ljX3Q7CiMgOTcgIi4vaW5jbHVkZS91YXBp
L2RybS9kcm0uaCIKc3RydWN0IGRybV9jbGlwX3JlY3QgewogdW5zaWduZWQgc2hvcnQgeDE7CiB1
bnNpZ25lZCBzaG9ydCB5MTsKIHVuc2lnbmVkIHNob3J0IHgyOwogdW5zaWduZWQgc2hvcnQgeTI7
Cn07CgoKCgpzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gewogdW5zaWduZWQgaW50IG51bV9yZWN0
czsKIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpyZWN0czsKfTsKCgoKCnN0cnVjdCBkcm1fdGV4X3Jl
Z2lvbiB7CiB1bnNpZ25lZCBjaGFyIG5leHQ7CiB1bnNpZ25lZCBjaGFyIHByZXY7CiB1bnNpZ25l
ZCBjaGFyIGluX3VzZTsKIHVuc2lnbmVkIGNoYXIgcGFkZGluZzsKIHVuc2lnbmVkIGludCBhZ2U7
Cn07CiMgMTMwICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCnN0cnVjdCBkcm1faHdfbG9jayB7
CiBfX3ZvbGF0aWxlX18gdW5zaWduZWQgaW50IGxvY2s7CiBjaGFyIHBhZGRpbmdbNjBdOwp9OwoK
CgoKCgpzdHJ1Y3QgZHJtX3ZlcnNpb24gewogaW50IHZlcnNpb25fbWFqb3I7CiBpbnQgdmVyc2lv
bl9taW5vcjsKIGludCB2ZXJzaW9uX3BhdGNobGV2ZWw7CiBfX2tlcm5lbF9zaXplX3QgbmFtZV9s
ZW47CiBjaGFyICpuYW1lOwogX19rZXJuZWxfc2l6ZV90IGRhdGVfbGVuOwogY2hhciAqZGF0ZTsK
IF9fa2VybmVsX3NpemVfdCBkZXNjX2xlbjsKIGNoYXIgKmRlc2M7Cn07CgoKCgoKCnN0cnVjdCBk
cm1fdW5pcXVlIHsKIF9fa2VybmVsX3NpemVfdCB1bmlxdWVfbGVuOwogY2hhciAqdW5pcXVlOwp9
OwoKc3RydWN0IGRybV9saXN0IHsKIGludCBjb3VudDsKIHN0cnVjdCBkcm1fdmVyc2lvbiAqdmVy
c2lvbjsKfTsKCnN0cnVjdCBkcm1fYmxvY2sgewogaW50IHVudXNlZDsKfTsKCgoKCgoKc3RydWN0
IGRybV9jb250cm9sIHsKIGVudW0gewogIERSTV9BRERfQ09NTUFORCwKICBEUk1fUk1fQ09NTUFO
RCwKICBEUk1fSU5TVF9IQU5ETEVSLAogIERSTV9VTklOU1RfSEFORExFUgogfSBmdW5jOwogaW50
IGlycTsKfTsKCgoKCmVudW0gZHJtX21hcF90eXBlIHsKIF9EUk1fRlJBTUVfQlVGRkVSID0gMCwK
IF9EUk1fUkVHSVNURVJTID0gMSwKIF9EUk1fU0hNID0gMiwKIF9EUk1fQUdQID0gMywKIF9EUk1f
U0NBVFRFUl9HQVRIRVIgPSA0LAogX0RSTV9DT05TSVNURU5UID0gNQp9OwoKCgoKZW51bSBkcm1f
bWFwX2ZsYWdzIHsKIF9EUk1fUkVTVFJJQ1RFRCA9IDB4MDEsCiBfRFJNX1JFQURfT05MWSA9IDB4
MDIsCiBfRFJNX0xPQ0tFRCA9IDB4MDQsCiBfRFJNX0tFUk5FTCA9IDB4MDgsCiBfRFJNX1dSSVRF
X0NPTUJJTklORyA9IDB4MTAsCiBfRFJNX0NPTlRBSU5TX0xPQ0sgPSAweDIwLAogX0RSTV9SRU1P
VkFCTEUgPSAweDQwLAogX0RSTV9EUklWRVIgPSAweDgwCn07CgpzdHJ1Y3QgZHJtX2N0eF9wcml2
X21hcCB7CiB1bnNpZ25lZCBpbnQgY3R4X2lkOwogdm9pZCAqaGFuZGxlOwp9OwoKCgoKCgoKc3Ry
dWN0IGRybV9tYXAgewogdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiB1bnNpZ25lZCBsb25nIHNpemU7
CiBlbnVtIGRybV9tYXBfdHlwZSB0eXBlOwogZW51bSBkcm1fbWFwX2ZsYWdzIGZsYWdzOwogdm9p
ZCAqaGFuZGxlOwoKIGludCBtdHJyOwoKfTsKCgoKCnN0cnVjdCBkcm1fY2xpZW50IHsKIGludCBp
ZHg7CiBpbnQgYXV0aDsKIHVuc2lnbmVkIGxvbmcgcGlkOwogdW5zaWduZWQgbG9uZyB1aWQ7CiB1
bnNpZ25lZCBsb25nIG1hZ2ljOwogdW5zaWduZWQgbG9uZyBpb2NzOwp9OwoKZW51bSBkcm1fc3Rh
dF90eXBlIHsKIF9EUk1fU1RBVF9MT0NLLAogX0RSTV9TVEFUX09QRU5TLAogX0RSTV9TVEFUX0NM
T1NFUywKIF9EUk1fU1RBVF9JT0NUTFMsCiBfRFJNX1NUQVRfTE9DS1MsCiBfRFJNX1NUQVRfVU5M
T0NLUywKIF9EUk1fU1RBVF9WQUxVRSwKIF9EUk1fU1RBVF9CWVRFLAogX0RSTV9TVEFUX0NPVU5U
LAoKIF9EUk1fU1RBVF9JUlEsCiBfRFJNX1NUQVRfUFJJTUFSWSwKIF9EUk1fU1RBVF9TRUNPTkRB
UlksCiBfRFJNX1NUQVRfRE1BLAogX0RSTV9TVEFUX1NQRUNJQUwsCiBfRFJNX1NUQVRfTUlTU0VE
Cgp9OwoKCgoKc3RydWN0IGRybV9zdGF0cyB7CiB1bnNpZ25lZCBsb25nIGNvdW50Owogc3RydWN0
IHsKICB1bnNpZ25lZCBsb25nIHZhbHVlOwogIGVudW0gZHJtX3N0YXRfdHlwZSB0eXBlOwogfSBk
YXRhWzE1XTsKfTsKCgoKCmVudW0gZHJtX2xvY2tfZmxhZ3MgewogX0RSTV9MT0NLX1JFQURZID0g
MHgwMSwKIF9EUk1fTE9DS19RVUlFU0NFTlQgPSAweDAyLAogX0RSTV9MT0NLX0ZMVVNIID0gMHgw
NCwKIF9EUk1fTE9DS19GTFVTSF9BTEwgPSAweDA4LAoKCgogX0RSTV9IQUxUX0FMTF9RVUVVRVMg
PSAweDEwLAogX0RSTV9IQUxUX0NVUl9RVUVVRVMgPSAweDIwCn07CgoKCgoKCnN0cnVjdCBkcm1f
bG9jayB7CiBpbnQgY29udGV4dDsKIGVudW0gZHJtX2xvY2tfZmxhZ3MgZmxhZ3M7Cn07CiMgMzEw
ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCmVudW0gZHJtX2RtYV9mbGFncyB7CgogX0RSTV9E
TUFfQkxPQ0sgPSAweDAxLAojIDMyMiAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgogX0RSTV9E
TUFfV0hJTEVfTE9DS0VEID0gMHgwMiwKIF9EUk1fRE1BX1BSSU9SSVRZID0gMHgwNCwKCgogX0RS
TV9ETUFfV0FJVCA9IDB4MTAsCiBfRFJNX0RNQV9TTUFMTEVSX09LID0gMHgyMCwKIF9EUk1fRE1B
X0xBUkdFUl9PSyA9IDB4NDAKfTsKCgoKCgoKc3RydWN0IGRybV9idWZfZGVzYyB7CiBpbnQgY291
bnQ7CiBpbnQgc2l6ZTsKIGludCBsb3dfbWFyazsKIGludCBoaWdoX21hcms7CiBlbnVtIHsKICBf
RFJNX1BBR0VfQUxJR04gPSAweDAxLAogIF9EUk1fQUdQX0JVRkZFUiA9IDB4MDIsCiAgX0RSTV9T
R19CVUZGRVIgPSAweDA0LAogIF9EUk1fRkJfQlVGRkVSID0gMHgwOCwKICBfRFJNX1BDSV9CVUZG
RVJfUk8gPSAweDEwCiB9IGZsYWdzOwogdW5zaWduZWQgbG9uZyBhZ3Bfc3RhcnQ7CgoKCn07CgoK
CgpzdHJ1Y3QgZHJtX2J1Zl9pbmZvIHsKIGludCBjb3VudDsKIHN0cnVjdCBkcm1fYnVmX2Rlc2Mg
Kmxpc3Q7Cn07CgoKCgpzdHJ1Y3QgZHJtX2J1Zl9mcmVlIHsKIGludCBjb3VudDsKIGludCAqbGlz
dDsKfTsKCgoKCgoKc3RydWN0IGRybV9idWZfcHViIHsKIGludCBpZHg7CiBpbnQgdG90YWw7CiBp
bnQgdXNlZDsKIHZvaWQgKmFkZHJlc3M7Cn07CgoKCgpzdHJ1Y3QgZHJtX2J1Zl9tYXAgewogaW50
IGNvdW50OwoKCgogdm9pZCAqdmlydHVhbDsKCiBzdHJ1Y3QgZHJtX2J1Zl9wdWIgKmxpc3Q7Cn07
CiMgNDAyICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCnN0cnVjdCBkcm1fZG1hIHsKIGludCBj
b250ZXh0OwogaW50IHNlbmRfY291bnQ7CiBpbnQgKnNlbmRfaW5kaWNlczsKIGludCAqc2VuZF9z
aXplczsKIGVudW0gZHJtX2RtYV9mbGFncyBmbGFnczsKIGludCByZXF1ZXN0X2NvdW50OwogaW50
IHJlcXVlc3Rfc2l6ZTsKIGludCAqcmVxdWVzdF9pbmRpY2VzOwogaW50ICpyZXF1ZXN0X3NpemVz
OwogaW50IGdyYW50ZWRfY291bnQ7Cn07CgplbnVtIGRybV9jdHhfZmxhZ3MgewogX0RSTV9DT05U
RVhUX1BSRVNFUlZFRCA9IDB4MDEsCiBfRFJNX0NPTlRFWFRfMkRPTkxZID0gMHgwMgp9OwoKCgoK
CgpzdHJ1Y3QgZHJtX2N0eCB7CiBkcm1fY29udGV4dF90IGhhbmRsZTsKIGVudW0gZHJtX2N0eF9m
bGFncyBmbGFnczsKfTsKCgoKCnN0cnVjdCBkcm1fY3R4X3JlcyB7CiBpbnQgY291bnQ7CiBzdHJ1
Y3QgZHJtX2N0eCAqY29udGV4dHM7Cn07CgoKCgpzdHJ1Y3QgZHJtX2RyYXcgewogZHJtX2RyYXdh
YmxlX3QgaGFuZGxlOwp9OwoKCgoKdHlwZWRlZiBlbnVtIHsKIERSTV9EUkFXQUJMRV9DTElQUkVD
VFMKfSBkcm1fZHJhd2FibGVfaW5mb190eXBlX3Q7CgpzdHJ1Y3QgZHJtX3VwZGF0ZV9kcmF3IHsK
IGRybV9kcmF3YWJsZV90IGhhbmRsZTsKIHVuc2lnbmVkIGludCB0eXBlOwogdW5zaWduZWQgaW50
IG51bTsKIHVuc2lnbmVkIGxvbmcgbG9uZyBkYXRhOwp9OwoKCgoKc3RydWN0IGRybV9hdXRoIHsK
IGRybV9tYWdpY190IG1hZ2ljOwp9OwoKCgoKCgpzdHJ1Y3QgZHJtX2lycV9idXNpZCB7CiBpbnQg
aXJxOwogaW50IGJ1c251bTsKIGludCBkZXZudW07CiBpbnQgZnVuY251bTsKfTsKCmVudW0gZHJt
X3ZibGFua19zZXFfdHlwZSB7CiBfRFJNX1ZCTEFOS19BQlNPTFVURSA9IDB4MCwKIF9EUk1fVkJM
QU5LX1JFTEFUSVZFID0gMHgxLAoKIF9EUk1fVkJMQU5LX0hJR0hfQ1JUQ19NQVNLID0gMHgwMDAw
MDAzZSwKIF9EUk1fVkJMQU5LX0VWRU5UID0gMHg0MDAwMDAwLAogX0RSTV9WQkxBTktfRkxJUCA9
IDB4ODAwMDAwMCwKIF9EUk1fVkJMQU5LX05FWFRPTk1JU1MgPSAweDEwMDAwMDAwLAogX0RSTV9W
QkxBTktfU0VDT05EQVJZID0gMHgyMDAwMDAwMCwKIF9EUk1fVkJMQU5LX1NJR05BTCA9IDB4NDAw
MDAwMDAKfTsKCgoKCgoKc3RydWN0IGRybV93YWl0X3ZibGFua19yZXF1ZXN0IHsKIGVudW0gZHJt
X3ZibGFua19zZXFfdHlwZSB0eXBlOwogdW5zaWduZWQgaW50IHNlcXVlbmNlOwogdW5zaWduZWQg
bG9uZyBzaWduYWw7Cn07CgpzdHJ1Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcGx5IHsKIGVudW0gZHJt
X3ZibGFua19zZXFfdHlwZSB0eXBlOwogdW5zaWduZWQgaW50IHNlcXVlbmNlOwogbG9uZyB0dmFs
X3NlYzsKIGxvbmcgdHZhbF91c2VjOwp9OwoKCgoKCgp1bmlvbiBkcm1fd2FpdF92Ymxhbmsgewog
c3RydWN0IGRybV93YWl0X3ZibGFua19yZXF1ZXN0IHJlcXVlc3Q7CiBzdHJ1Y3QgZHJtX3dhaXRf
dmJsYW5rX3JlcGx5IHJlcGx5Owp9OwojIDUyNiAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgpz
dHJ1Y3QgZHJtX21vZGVzZXRfY3RsIHsKIF9fdTMyIGNydGM7CiBfX3UzMiBjbWQ7Cn07CgoKCgoK
CnN0cnVjdCBkcm1fYWdwX21vZGUgewogdW5zaWduZWQgbG9uZyBtb2RlOwp9OwoKCgoKCgpzdHJ1
Y3QgZHJtX2FncF9idWZmZXIgewogdW5zaWduZWQgbG9uZyBzaXplOwogdW5zaWduZWQgbG9uZyBo
YW5kbGU7CiB1bnNpZ25lZCBsb25nIHR5cGU7CiB1bnNpZ25lZCBsb25nIHBoeXNpY2FsOwp9OwoK
CgoKCgpzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nIHsKIHVuc2lnbmVkIGxvbmcgaGFuZGxlOwogdW5z
aWduZWQgbG9uZyBvZmZzZXQ7Cn07CiMgNTY5ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCnN0
cnVjdCBkcm1fYWdwX2luZm8gewogaW50IGFncF92ZXJzaW9uX21ham9yOwogaW50IGFncF92ZXJz
aW9uX21pbm9yOwogdW5zaWduZWQgbG9uZyBtb2RlOwogdW5zaWduZWQgbG9uZyBhcGVydHVyZV9i
YXNlOwogdW5zaWduZWQgbG9uZyBhcGVydHVyZV9zaXplOwogdW5zaWduZWQgbG9uZyBtZW1vcnlf
YWxsb3dlZDsKIHVuc2lnbmVkIGxvbmcgbWVtb3J5X3VzZWQ7CgoKIHVuc2lnbmVkIHNob3J0IGlk
X3ZlbmRvcjsKIHVuc2lnbmVkIHNob3J0IGlkX2RldmljZTsKfTsKCgoKCnN0cnVjdCBkcm1fc2Nh
dHRlcl9nYXRoZXIgewogdW5zaWduZWQgbG9uZyBzaXplOwogdW5zaWduZWQgbG9uZyBoYW5kbGU7
Cn07CgoKCgpzdHJ1Y3QgZHJtX3NldF92ZXJzaW9uIHsKIGludCBkcm1fZGlfbWFqb3I7CiBpbnQg
ZHJtX2RpX21pbm9yOwogaW50IGRybV9kZF9tYWpvcjsKIGludCBkcm1fZGRfbWlub3I7Cn07CgoK
c3RydWN0IGRybV9nZW1fY2xvc2UgewoKIF9fdTMyIGhhbmRsZTsKIF9fdTMyIHBhZDsKfTsKCgpz
dHJ1Y3QgZHJtX2dlbV9mbGluayB7CgogX191MzIgaGFuZGxlOwoKCiBfX3UzMiBuYW1lOwp9OwoK
CnN0cnVjdCBkcm1fZ2VtX29wZW4gewoKIF9fdTMyIG5hbWU7CgoKIF9fdTMyIGhhbmRsZTsKCgog
X191NjQgc2l6ZTsKfTsKIyA2NTYgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIKc3RydWN0IGRy
bV9nZXRfY2FwIHsKIF9fdTY0IGNhcGFiaWxpdHk7CiBfX3U2NCB2YWx1ZTsKfTsKIyA3MDIgIi4v
aW5jbHVkZS91YXBpL2RybS9kcm0uaCIKc3RydWN0IGRybV9zZXRfY2xpZW50X2NhcCB7CiBfX3U2
NCBjYXBhYmlsaXR5OwogX191NjQgdmFsdWU7Cn07CgoKCnN0cnVjdCBkcm1fcHJpbWVfaGFuZGxl
IHsKIF9fdTMyIGhhbmRsZTsKCgogX191MzIgZmxhZ3M7CgoKIF9fczMyIGZkOwp9OwoKc3RydWN0
IGRybV9zeW5jb2JqX2NyZWF0ZSB7CiBfX3UzMiBoYW5kbGU7CgogX191MzIgZmxhZ3M7Cn07Cgpz
dHJ1Y3QgZHJtX3N5bmNvYmpfZGVzdHJveSB7CiBfX3UzMiBoYW5kbGU7CiBfX3UzMiBwYWQ7Cn07
CgoKCnN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUgewogX191MzIgaGFuZGxlOwogX191MzIgZmxh
Z3M7CgogX19zMzIgZmQ7CiBfX3UzMiBwYWQ7Cn07CgpzdHJ1Y3QgZHJtX3N5bmNvYmpfdHJhbnNm
ZXIgewogX191MzIgc3JjX2hhbmRsZTsKIF9fdTMyIGRzdF9oYW5kbGU7CiBfX3U2NCBzcmNfcG9p
bnQ7CiBfX3U2NCBkc3RfcG9pbnQ7CiBfX3UzMiBmbGFnczsKIF9fdTMyIHBhZDsKfTsKCgoKCnN0
cnVjdCBkcm1fc3luY29ial93YWl0IHsKIF9fdTY0IGhhbmRsZXM7CgogX19zNjQgdGltZW91dF9u
c2VjOwogX191MzIgY291bnRfaGFuZGxlczsKIF9fdTMyIGZsYWdzOwogX191MzIgZmlyc3Rfc2ln
bmFsZWQ7CiBfX3UzMiBwYWQ7Cn07CgpzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCB7
CiBfX3U2NCBoYW5kbGVzOwoKIF9fdTY0IHBvaW50czsKCiBfX3M2NCB0aW1lb3V0X25zZWM7CiBf
X3UzMiBjb3VudF9oYW5kbGVzOwogX191MzIgZmxhZ3M7CiBfX3UzMiBmaXJzdF9zaWduYWxlZDsK
IF9fdTMyIHBhZDsKfTsKCgpzdHJ1Y3QgZHJtX3N5bmNvYmpfYXJyYXkgewogX191NjQgaGFuZGxl
czsKIF9fdTMyIGNvdW50X2hhbmRsZXM7CiBfX3UzMiBwYWQ7Cn07CgoKc3RydWN0IGRybV9zeW5j
b2JqX3RpbWVsaW5lX2FycmF5IHsKIF9fdTY0IGhhbmRsZXM7CiBfX3U2NCBwb2ludHM7CiBfX3Uz
MiBjb3VudF9oYW5kbGVzOwogX191MzIgZmxhZ3M7Cn07CgoKCnN0cnVjdCBkcm1fY3J0Y19nZXRf
c2VxdWVuY2UgewogX191MzIgY3J0Y19pZDsKIF9fdTMyIGFjdGl2ZTsKIF9fdTY0IHNlcXVlbmNl
OwogX19zNjQgc2VxdWVuY2VfbnM7Cn07CiMgODA1ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgi
CnN0cnVjdCBkcm1fY3J0Y19xdWV1ZV9zZXF1ZW5jZSB7CiBfX3UzMiBjcnRjX2lkOwogX191MzIg
ZmxhZ3M7CiBfX3U2NCBzZXF1ZW5jZTsKIF9fdTY0IHVzZXJfZGF0YTsKfTsKCgoKCgojIDEgIi4v
aW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIiAxCiMgMzAgIi4vaW5jbHVkZS91YXBpL2RybS9k
cm1fbW9kZS5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIgMQojIDMxICIuL2luY2x1
ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIgMgojIDIyMSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9t
b2RlLmgiCnN0cnVjdCBkcm1fbW9kZV9tb2RlaW5mbyB7CiBfX3UzMiBjbG9jazsKIF9fdTE2IGhk
aXNwbGF5OwogX191MTYgaHN5bmNfc3RhcnQ7CiBfX3UxNiBoc3luY19lbmQ7CiBfX3UxNiBodG90
YWw7CiBfX3UxNiBoc2tldzsKIF9fdTE2IHZkaXNwbGF5OwogX191MTYgdnN5bmNfc3RhcnQ7CiBf
X3UxNiB2c3luY19lbmQ7CiBfX3UxNiB2dG90YWw7CiBfX3UxNiB2c2NhbjsKCiBfX3UzMiB2cmVm
cmVzaDsKCiBfX3UzMiBmbGFnczsKIF9fdTMyIHR5cGU7CiBjaGFyIG5hbWVbMzJdOwp9OwoKc3Ry
dWN0IGRybV9tb2RlX2NhcmRfcmVzIHsKIF9fdTY0IGZiX2lkX3B0cjsKIF9fdTY0IGNydGNfaWRf
cHRyOwogX191NjQgY29ubmVjdG9yX2lkX3B0cjsKIF9fdTY0IGVuY29kZXJfaWRfcHRyOwogX191
MzIgY291bnRfZmJzOwogX191MzIgY291bnRfY3J0Y3M7CiBfX3UzMiBjb3VudF9jb25uZWN0b3Jz
OwogX191MzIgY291bnRfZW5jb2RlcnM7CiBfX3UzMiBtaW5fd2lkdGg7CiBfX3UzMiBtYXhfd2lk
dGg7CiBfX3UzMiBtaW5faGVpZ2h0OwogX191MzIgbWF4X2hlaWdodDsKfTsKCnN0cnVjdCBkcm1f
bW9kZV9jcnRjIHsKIF9fdTY0IHNldF9jb25uZWN0b3JzX3B0cjsKIF9fdTMyIGNvdW50X2Nvbm5l
Y3RvcnM7CgogX191MzIgY3J0Y19pZDsKIF9fdTMyIGZiX2lkOwoKIF9fdTMyIHg7CiBfX3UzMiB5
OwoKIF9fdTMyIGdhbW1hX3NpemU7CiBfX3UzMiBtb2RlX3ZhbGlkOwogc3RydWN0IGRybV9tb2Rl
X21vZGVpbmZvIG1vZGU7Cn07CgoKCgoKc3RydWN0IGRybV9tb2RlX3NldF9wbGFuZSB7CiBfX3Uz
MiBwbGFuZV9pZDsKIF9fdTMyIGNydGNfaWQ7CiBfX3UzMiBmYl9pZDsKIF9fdTMyIGZsYWdzOwoK
CiBfX3MzMiBjcnRjX3g7CiBfX3MzMiBjcnRjX3k7CiBfX3UzMiBjcnRjX3c7CiBfX3UzMiBjcnRj
X2g7CgoKIF9fdTMyIHNyY194OwogX191MzIgc3JjX3k7CiBfX3UzMiBzcmNfaDsKIF9fdTMyIHNy
Y193Owp9OwoKc3RydWN0IGRybV9tb2RlX2dldF9wbGFuZSB7CiBfX3UzMiBwbGFuZV9pZDsKCiBf
X3UzMiBjcnRjX2lkOwogX191MzIgZmJfaWQ7CgogX191MzIgcG9zc2libGVfY3J0Y3M7CiBfX3Uz
MiBnYW1tYV9zaXplOwoKIF9fdTMyIGNvdW50X2Zvcm1hdF90eXBlczsKIF9fdTY0IGZvcm1hdF90
eXBlX3B0cjsKfTsKCnN0cnVjdCBkcm1fbW9kZV9nZXRfcGxhbmVfcmVzIHsKIF9fdTY0IHBsYW5l
X2lkX3B0cjsKIF9fdTMyIGNvdW50X3BsYW5lczsKfTsKIyAzMjIgIi4vaW5jbHVkZS91YXBpL2Ry
bS9kcm1fbW9kZS5oIgpzdHJ1Y3QgZHJtX21vZGVfZ2V0X2VuY29kZXIgewogX191MzIgZW5jb2Rl
cl9pZDsKIF9fdTMyIGVuY29kZXJfdHlwZTsKCiBfX3UzMiBjcnRjX2lkOwoKIF9fdTMyIHBvc3Np
YmxlX2NydGNzOwogX191MzIgcG9zc2libGVfY2xvbmVzOwp9OwoKCgplbnVtIGRybV9tb2RlX3N1
YmNvbm5lY3RvciB7CiBEUk1fTU9ERV9TVUJDT05ORUNUT1JfQXV0b21hdGljID0gMCwKIERSTV9N
T0RFX1NVQkNPTk5FQ1RPUl9Vbmtub3duID0gMCwKIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9EVklE
ID0gMywKIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9EVklBID0gNCwKIERSTV9NT0RFX1NVQkNPTk5F
Q1RPUl9Db21wb3NpdGUgPSA1LAogRFJNX01PREVfU1VCQ09OTkVDVE9SX1NWSURFTyA9IDYsCiBE
Uk1fTU9ERV9TVUJDT05ORUNUT1JfQ29tcG9uZW50ID0gOCwKIERSTV9NT0RFX1NVQkNPTk5FQ1RP
Ul9TQ0FSVCA9IDksCn07CiMgMzY2ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKc3Ry
dWN0IGRybV9tb2RlX2dldF9jb25uZWN0b3IgewoKIF9fdTY0IGVuY29kZXJzX3B0cjsKIF9fdTY0
IG1vZGVzX3B0cjsKIF9fdTY0IHByb3BzX3B0cjsKIF9fdTY0IHByb3BfdmFsdWVzX3B0cjsKCiBf
X3UzMiBjb3VudF9tb2RlczsKIF9fdTMyIGNvdW50X3Byb3BzOwogX191MzIgY291bnRfZW5jb2Rl
cnM7CgogX191MzIgZW5jb2Rlcl9pZDsKIF9fdTMyIGNvbm5lY3Rvcl9pZDsKIF9fdTMyIGNvbm5l
Y3Rvcl90eXBlOwogX191MzIgY29ubmVjdG9yX3R5cGVfaWQ7CgogX191MzIgY29ubmVjdGlvbjsK
IF9fdTMyIG1tX3dpZHRoOwogX191MzIgbW1faGVpZ2h0OwogX191MzIgc3VicGl4ZWw7CgogX191
MzIgcGFkOwp9OwojIDQxOSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCnN0cnVjdCBk
cm1fbW9kZV9wcm9wZXJ0eV9lbnVtIHsKIF9fdTY0IHZhbHVlOwogY2hhciBuYW1lWzMyXTsKfTsK
CnN0cnVjdCBkcm1fbW9kZV9nZXRfcHJvcGVydHkgewogX191NjQgdmFsdWVzX3B0cjsKIF9fdTY0
IGVudW1fYmxvYl9wdHI7CgogX191MzIgcHJvcF9pZDsKIF9fdTMyIGZsYWdzOwogY2hhciBuYW1l
WzMyXTsKCiBfX3UzMiBjb3VudF92YWx1ZXM7CgoKIF9fdTMyIGNvdW50X2VudW1fYmxvYnM7Cn07
CgpzdHJ1Y3QgZHJtX21vZGVfY29ubmVjdG9yX3NldF9wcm9wZXJ0eSB7CiBfX3U2NCB2YWx1ZTsK
IF9fdTMyIHByb3BfaWQ7CiBfX3UzMiBjb25uZWN0b3JfaWQ7Cn07CiMgNDU0ICIuL2luY2x1ZGUv
dWFwaS9kcm0vZHJtX21vZGUuaCIKc3RydWN0IGRybV9tb2RlX29ial9nZXRfcHJvcGVydGllcyB7
CiBfX3U2NCBwcm9wc19wdHI7CiBfX3U2NCBwcm9wX3ZhbHVlc19wdHI7CiBfX3UzMiBjb3VudF9w
cm9wczsKIF9fdTMyIG9ial9pZDsKIF9fdTMyIG9ial90eXBlOwp9OwoKc3RydWN0IGRybV9tb2Rl
X29ial9zZXRfcHJvcGVydHkgewogX191NjQgdmFsdWU7CiBfX3UzMiBwcm9wX2lkOwogX191MzIg
b2JqX2lkOwogX191MzIgb2JqX3R5cGU7Cn07CgpzdHJ1Y3QgZHJtX21vZGVfZ2V0X2Jsb2Igewog
X191MzIgYmxvYl9pZDsKIF9fdTMyIGxlbmd0aDsKIF9fdTY0IGRhdGE7Cn07CgpzdHJ1Y3QgZHJt
X21vZGVfZmJfY21kIHsKIF9fdTMyIGZiX2lkOwogX191MzIgd2lkdGg7CiBfX3UzMiBoZWlnaHQ7
CiBfX3UzMiBwaXRjaDsKIF9fdTMyIGJwcDsKIF9fdTMyIGRlcHRoOwoKIF9fdTMyIGhhbmRsZTsK
fTsKCgoKCnN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIHsKIF9fdTMyIGZiX2lkOwogX191MzIgd2lk
dGg7CiBfX3UzMiBoZWlnaHQ7CiBfX3UzMiBwaXhlbF9mb3JtYXQ7CiBfX3UzMiBmbGFnczsKIyA1
MjAgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgogX191MzIgaGFuZGxlc1s0XTsKIF9f
dTMyIHBpdGNoZXNbNF07CiBfX3UzMiBvZmZzZXRzWzRdOwogX191NjQgbW9kaWZpZXJbNF07Cn07
CiMgNTU5ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKc3RydWN0IGRybV9tb2RlX2Zi
X2RpcnR5X2NtZCB7CiBfX3UzMiBmYl9pZDsKIF9fdTMyIGZsYWdzOwogX191MzIgY29sb3I7CiBf
X3UzMiBudW1fY2xpcHM7CiBfX3U2NCBjbGlwc19wdHI7Cn07CgpzdHJ1Y3QgZHJtX21vZGVfbW9k
ZV9jbWQgewogX191MzIgY29ubmVjdG9yX2lkOwogc3RydWN0IGRybV9tb2RlX21vZGVpbmZvIG1v
ZGU7Cn07CiMgNTkwICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKc3RydWN0IGRybV9t
b2RlX2N1cnNvciB7CiBfX3UzMiBmbGFnczsKIF9fdTMyIGNydGNfaWQ7CiBfX3MzMiB4OwogX19z
MzIgeTsKIF9fdTMyIHdpZHRoOwogX191MzIgaGVpZ2h0OwoKIF9fdTMyIGhhbmRsZTsKfTsKCnN0
cnVjdCBkcm1fbW9kZV9jdXJzb3IyIHsKIF9fdTMyIGZsYWdzOwogX191MzIgY3J0Y19pZDsKIF9f
czMyIHg7CiBfX3MzMiB5OwogX191MzIgd2lkdGg7CiBfX3UzMiBoZWlnaHQ7CgogX191MzIgaGFu
ZGxlOwogX19zMzIgaG90X3g7CiBfX3MzMiBob3RfeTsKfTsKCnN0cnVjdCBkcm1fbW9kZV9jcnRj
X2x1dCB7CiBfX3UzMiBjcnRjX2lkOwogX191MzIgZ2FtbWFfc2l6ZTsKCgogX191NjQgcmVkOwog
X191NjQgZ3JlZW47CiBfX3U2NCBibHVlOwp9OwoKc3RydWN0IGRybV9jb2xvcl9jdG0gewoKCgoK
IF9fdTY0IG1hdHJpeFs5XTsKfTsKCnN0cnVjdCBkcm1fY29sb3JfbHV0IHsKCgoKCiBfX3UxNiBy
ZWQ7CiBfX3UxNiBncmVlbjsKIF9fdTE2IGJsdWU7CiBfX3UxNiByZXNlcnZlZDsKfTsKIyA2NTIg
Ii4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgpzdHJ1Y3QgaGRyX21ldGFkYXRhX2luZm9m
cmFtZSB7CgoKCgogX191OCBlb3RmOwoKCgogX191OCBtZXRhZGF0YV90eXBlOwojIDY3MCAiLi9p
bmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCiBzdHJ1Y3QgewogIF9fdTE2IHgsIHk7CiAgfSBk
aXNwbGF5X3ByaW1hcmllc1szXTsKIyA2ODEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5o
Igogc3RydWN0IHsKICBfX3UxNiB4LCB5OwogIH0gd2hpdGVfcG9pbnQ7CgoKCgoKIF9fdTE2IG1h
eF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2U7CgoKCgoKCiBfX3UxNiBtaW5fZGlzcGxheV9t
YXN0ZXJpbmdfbHVtaW5hbmNlOwoKCgoKCiBfX3UxNiBtYXhfY2xsOwoKCgoKCiBfX3UxNiBtYXhf
ZmFsbDsKfTsKCgoKCgoKc3RydWN0IGhkcl9vdXRwdXRfbWV0YWRhdGEgewoKCgogX191MzIgbWV0
YWRhdGFfdHlwZTsKCgoKIHVuaW9uIHsKICBzdHJ1Y3QgaGRyX21ldGFkYXRhX2luZm9mcmFtZSBo
ZG1pX21ldGFkYXRhX3R5cGUxOwogfTsKfTsKIyA3NjMgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1f
bW9kZS5oIgpzdHJ1Y3QgZHJtX21vZGVfY3J0Y19wYWdlX2ZsaXAgewogX191MzIgY3J0Y19pZDsK
IF9fdTMyIGZiX2lkOwogX191MzIgZmxhZ3M7CiBfX3UzMiByZXNlcnZlZDsKIF9fdTY0IHVzZXJf
ZGF0YTsKfTsKIyA3OTEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgpzdHJ1Y3QgZHJt
X21vZGVfY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0IHsKIF9fdTMyIGNydGNfaWQ7CiBfX3UzMiBmYl9p
ZDsKIF9fdTMyIGZsYWdzOwogX191MzIgc2VxdWVuY2U7CiBfX3U2NCB1c2VyX2RhdGE7Cn07CgoK
c3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iIHsKIF9fdTMyIGhlaWdodDsKIF9fdTMyIHdpZHRo
OwogX191MzIgYnBwOwogX191MzIgZmxhZ3M7CgogX191MzIgaGFuZGxlOwogX191MzIgcGl0Y2g7
CiBfX3U2NCBzaXplOwp9OwoKCnN0cnVjdCBkcm1fbW9kZV9tYXBfZHVtYiB7CgogX191MzIgaGFu
ZGxlOwogX191MzIgcGFkOwoKCgoKCiBfX3U2NCBvZmZzZXQ7Cn07CgpzdHJ1Y3QgZHJtX21vZGVf
ZGVzdHJveV9kdW1iIHsKIF9fdTMyIGhhbmRsZTsKfTsKIyA4NDAgIi4vaW5jbHVkZS91YXBpL2Ry
bS9kcm1fbW9kZS5oIgpzdHJ1Y3QgZHJtX21vZGVfYXRvbWljIHsKIF9fdTMyIGZsYWdzOwogX191
MzIgY291bnRfb2JqczsKIF9fdTY0IG9ianNfcHRyOwogX191NjQgY291bnRfcHJvcHNfcHRyOwog
X191NjQgcHJvcHNfcHRyOwogX191NjQgcHJvcF92YWx1ZXNfcHRyOwogX191NjQgcmVzZXJ2ZWQ7
CiBfX3U2NCB1c2VyX2RhdGE7Cn07CgpzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2RpZmllcl9ibG9iIHsK
CgogX191MzIgdmVyc2lvbjsKCgogX191MzIgZmxhZ3M7CgoKIF9fdTMyIGNvdW50X2Zvcm1hdHM7
CgoKIF9fdTMyIGZvcm1hdHNfb2Zmc2V0OwoKCiBfX3UzMiBjb3VudF9tb2RpZmllcnM7CgoKIF9f
dTMyIG1vZGlmaWVyc19vZmZzZXQ7CgoKCn07CgpzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2RpZmllciB7
CiMgODkzICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKIF9fdTY0IGZvcm1hdHM7CiBf
X3UzMiBvZmZzZXQ7CiBfX3UzMiBwYWQ7CgoKIF9fdTY0IG1vZGlmaWVyOwp9OwojIDkwOSAiLi9p
bmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCnN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfYmxvYiB7
CgogX191NjQgZGF0YTsKCiBfX3UzMiBsZW5ndGg7CgogX191MzIgYmxvYl9pZDsKfTsKCgoKCgoK
c3RydWN0IGRybV9tb2RlX2Rlc3Ryb3lfYmxvYiB7CiBfX3UzMiBibG9iX2lkOwp9OwojIDkzNiAi
Li9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCnN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfbGVh
c2UgewoKIF9fdTY0IG9iamVjdF9pZHM7CgogX191MzIgb2JqZWN0X2NvdW50OwoKIF9fdTMyIGZs
YWdzOwoKCiBfX3UzMiBsZXNzZWVfaWQ7CgogX191MzIgZmQ7Cn07CiMgOTU3ICIuL2luY2x1ZGUv
dWFwaS9kcm0vZHJtX21vZGUuaCIKc3RydWN0IGRybV9tb2RlX2xpc3RfbGVzc2VlcyB7CgoKCgoK
CgogX191MzIgY291bnRfbGVzc2VlczsKIF9fdTMyIHBhZDsKCgoKCiBfX3U2NCBsZXNzZWVzX3B0
cjsKfTsKIyA5ODEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgpzdHJ1Y3QgZHJtX21v
ZGVfZ2V0X2xlYXNlIHsKCgoKCgoKCiBfX3UzMiBjb3VudF9vYmplY3RzOwogX191MzIgcGFkOwoK
CgoKIF9fdTY0IG9iamVjdHNfcHRyOwp9OwoKCgoKCgpzdHJ1Y3QgZHJtX21vZGVfcmV2b2tlX2xl
YXNlIHsKCgogX191MzIgbGVzc2VlX2lkOwp9OwojIDEwMjEgIi4vaW5jbHVkZS91YXBpL2RybS9k
cm1fbW9kZS5oIgpzdHJ1Y3QgZHJtX21vZGVfcmVjdCB7CiBfX3MzMiB4MTsKIF9fczMyIHkxOwog
X19zMzIgeDI7CiBfX3MzMiB5MjsKfTsKIyA4MTcgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIg
MgojIDk3NCAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgpzdHJ1Y3QgZHJtX2V2ZW50IHsKIF9f
dTMyIHR5cGU7CiBfX3UzMiBsZW5ndGg7Cn07CgoKCgoKc3RydWN0IGRybV9ldmVudF92Ymxhbmsg
ewogc3RydWN0IGRybV9ldmVudCBiYXNlOwogX191NjQgdXNlcl9kYXRhOwogX191MzIgdHZfc2Vj
OwogX191MzIgdHZfdXNlYzsKIF9fdTMyIHNlcXVlbmNlOwogX191MzIgY3J0Y19pZDsKfTsKCgoK
CnN0cnVjdCBkcm1fZXZlbnRfY3J0Y19zZXF1ZW5jZSB7CiBzdHJ1Y3QgZHJtX2V2ZW50IGJhc2U7
CiBfX3U2NCB1c2VyX2RhdGE7CiBfX3M2NCB0aW1lX25zOwogX191NjQgc2VxdWVuY2U7Cn07CiMg
MzYgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiIDIKCgpleHRlcm4gdW5zaWduZWQgaW50IF9f
ZHJtX2RlYnVnOwojIDc1ICIuL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIgpzdHJ1Y3QgZHJtX3By
aW50ZXIgewoKIHZvaWQgKCpwcmludGZuKShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIHN0cnVjdCB2
YV9mb3JtYXQgKnZhZik7CiB2b2lkICgqcHV0cykoc3RydWN0IGRybV9wcmludGVyICpwLCBjb25z
dCBjaGFyICpzdHIpOwogdm9pZCAqYXJnOwogY29uc3QgY2hhciAqcHJlZml4Owp9OwoKdm9pZCBf
X2RybV9wcmludGZuX2NvcmVkdW1wKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0IHZhX2Zv
cm1hdCAqdmFmKTsKdm9pZCBfX2RybV9wdXRzX2NvcmVkdW1wKHN0cnVjdCBkcm1fcHJpbnRlciAq
cCwgY29uc3QgY2hhciAqc3RyKTsKdm9pZCBfX2RybV9wcmludGZuX3NlcV9maWxlKHN0cnVjdCBk
cm1fcHJpbnRlciAqcCwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKTsKdm9pZCBfX2RybV9wdXRzX3Nl
cV9maWxlKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgY29uc3QgY2hhciAqc3RyKTsKdm9pZCBfX2Ry
bV9wcmludGZuX2luZm8oc3RydWN0IGRybV9wcmludGVyICpwLCBzdHJ1Y3QgdmFfZm9ybWF0ICp2
YWYpOwp2b2lkIF9fZHJtX3ByaW50Zm5fZGVidWcoc3RydWN0IGRybV9wcmludGVyICpwLCBzdHJ1
Y3QgdmFfZm9ybWF0ICp2YWYpOwp2b2lkIF9fZHJtX3ByaW50Zm5fZXJyKHN0cnVjdCBkcm1fcHJp
bnRlciAqcCwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKTsKCl9fYXR0cmlidXRlX18oKF9fZm9ybWF0
X18ocHJpbnRmLCAyLCAzKSkpCnZvaWQgZHJtX3ByaW50ZihzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAs
IGNvbnN0IGNoYXIgKmYsIC4uLik7CnZvaWQgZHJtX3B1dHMoc3RydWN0IGRybV9wcmludGVyICpw
LCBjb25zdCBjaGFyICpzdHIpOwp2b2lkIGRybV9wcmludF9yZWdzZXQzMihzdHJ1Y3QgZHJtX3By
aW50ZXIgKnAsIHN0cnVjdCBkZWJ1Z2ZzX3JlZ3NldDMyICpyZWdzZXQpOwp2b2lkIGRybV9wcmlu
dF9iaXRzKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgdW5zaWduZWQgbG9uZyB2YWx1ZSwKICAgICAg
Y29uc3QgY2hhciAqIGNvbnN0IGJpdHNbXSwgdW5zaWduZWQgaW50IG5iaXRzKTsKCl9fYXR0cmli
dXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAwKSkpCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKZHJtX3ZwcmludGYo
c3RydWN0IGRybV9wcmludGVyICpwLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgKnZhKQp7CiBz
dHJ1Y3QgdmFfZm9ybWF0IHZhZiA9IHsgLmZtdCA9IGZtdCwgLnZhID0gdmEgfTsKCiBwLT5wcmlu
dGZuKHAsICZ2YWYpOwp9CiMgMTI4ICIuL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIgpzdHJ1Y3Qg
ZHJtX3ByaW50X2l0ZXJhdG9yIHsKIHZvaWQgKmRhdGE7CiBzc2l6ZV90IHN0YXJ0Owogc3NpemVf
dCByZW1haW47Cgogc3NpemVfdCBvZmZzZXQ7Cn07CiMgMTcyICIuL2luY2x1ZGUvZHJtL2RybV9w
cmludC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBzdHJ1Y3QgZHJtX3ByaW50ZXIKZHJtX2NvcmVkdW1wX3ByaW50ZXIoc3RydWN0IGRy
bV9wcmludF9pdGVyYXRvciAqaXRlcikKewogc3RydWN0IGRybV9wcmludGVyIHAgPSB7CiAgLnBy
aW50Zm4gPSBfX2RybV9wcmludGZuX2NvcmVkdW1wLAogIC5wdXRzID0gX19kcm1fcHV0c19jb3Jl
ZHVtcCwKICAuYXJnID0gaXRlciwKIH07CgoKIGl0ZXItPm9mZnNldCA9IDA7CgogcmV0dXJuIHA7
Cn0KIyAxOTQgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkcm1fcHJpbnRlciBk
cm1fc2VxX2ZpbGVfcHJpbnRlcihzdHJ1Y3Qgc2VxX2ZpbGUgKmYpCnsKIHN0cnVjdCBkcm1fcHJp
bnRlciBwID0gewogIC5wcmludGZuID0gX19kcm1fcHJpbnRmbl9zZXFfZmlsZSwKICAucHV0cyA9
IF9fZHJtX3B1dHNfc2VxX2ZpbGUsCiAgLmFyZyA9IGYsCiB9OwogcmV0dXJuIHA7Cn0KIyAyMTEg
Ii4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkcm1fcHJpbnRlciBkcm1faW5mb19w
cmludGVyKHN0cnVjdCBkZXZpY2UgKmRldikKewogc3RydWN0IGRybV9wcmludGVyIHAgPSB7CiAg
LnByaW50Zm4gPSBfX2RybV9wcmludGZuX2luZm8sCiAgLmFyZyA9IGRldiwKIH07CiByZXR1cm4g
cDsKfQojIDIyNyAiLi9pbmNsdWRlL2RybS9kcm1fcHJpbnQuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRybV9wcmludGVy
IGRybV9kZWJ1Z19wcmludGVyKGNvbnN0IGNoYXIgKnByZWZpeCkKewogc3RydWN0IGRybV9wcmlu
dGVyIHAgPSB7CiAgLnByaW50Zm4gPSBfX2RybV9wcmludGZuX2RlYnVnLAogIC5wcmVmaXggPSBw
cmVmaXgKIH07CiByZXR1cm4gcDsKfQojIDI0MyAiLi9pbmNsdWRlL2RybS9kcm1fcHJpbnQuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IGRybV9wcmludGVyIGRybV9lcnJfcHJpbnRlcihjb25zdCBjaGFyICpwcmVmaXgpCnsK
IHN0cnVjdCBkcm1fcHJpbnRlciBwID0gewogIC5wcmludGZuID0gX19kcm1fcHJpbnRmbl9lcnIs
CiAgLnByZWZpeCA9IHByZWZpeAogfTsKIHJldHVybiBwOwp9CiMgMjc3ICIuL2luY2x1ZGUvZHJt
L2RybV9wcmludC5oIgplbnVtIGRybV9kZWJ1Z19jYXRlZ29yeSB7CgoKCgogRFJNX1VUX0NPUkUg
PSAweDAxLAoKCgoKIERSTV9VVF9EUklWRVIgPSAweDAyLAoKCgogRFJNX1VUX0tNUyA9IDB4MDQs
CgoKCiBEUk1fVVRfUFJJTUUgPSAweDA4LAoKCgogRFJNX1VUX0FUT01JQyA9IDB4MTAsCgoKCiBE
Uk1fVVRfVkJMID0gMHgyMCwKCgoKIERSTV9VVF9TVEFURSA9IDB4NDAsCgoKCiBEUk1fVVRfTEVB
U0UgPSAweDgwLAoKCgogRFJNX1VUX0RQID0gMHgxMDAsCn07CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRybV9kZWJ1Z19lbmFi
bGVkKGVudW0gZHJtX2RlYnVnX2NhdGVnb3J5IGNhdGVnb3J5KQp7CiByZXR1cm4gX19idWlsdGlu
X2V4cGVjdCghIShfX2RybV9kZWJ1ZyAmIGNhdGVnb3J5KSwgMCk7Cn0KCgoKCgoKCl9fYXR0cmli
dXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAzLCA0KSkpCnZvaWQgZHJtX2Rldl9wcmludGsoY29u
c3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpsZXZlbCwKICAgICAgY29uc3QgY2hh
ciAqZm9ybWF0LCAuLi4pOwpfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkp
KQp2b2lkIGRybV9kZXZfZGJnKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgZW51bSBkcm1fZGVi
dWdfY2F0ZWdvcnkgY2F0ZWdvcnksCiAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKIyA0ODkg
Ii4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiCl9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJp
bnRmLCAyLCAzKSkpCnZvaWQgX19kcm1fZGJnKGVudW0gZHJtX2RlYnVnX2NhdGVnb3J5IGNhdGVn
b3J5LCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7Cl9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18o
cHJpbnRmLCAxLCAyKSkpCnZvaWQgX19kcm1fZXJyKGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsK
IyAzOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL29zX3R5cGVz
LmgiIDIKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2Nnc19j
b21tb24uaCIgMQojIDI3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUv
Y2dzX2NvbW1vbi5oIgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVk
ZS9hbWRfc2hhcmVkLmgiIDEKIyAyNiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9p
bmNsdWRlL2FtZF9zaGFyZWQuaCIKIyAxICIuL2luY2x1ZGUvZHJtL2FtZF9hc2ljX3R5cGUuaCIg
MQojIDI4ICIuL2luY2x1ZGUvZHJtL2FtZF9hc2ljX3R5cGUuaCIKZW51bSBhbWRfYXNpY190eXBl
IHsKIENISVBfVEFISVRJID0gMCwKIENISVBfUElUQ0FJUk4sCiBDSElQX1ZFUkRFLAogQ0hJUF9P
TEFORCwKIENISVBfSEFJTkFOLAogQ0hJUF9CT05BSVJFLAogQ0hJUF9LQVZFUkksCiBDSElQX0tB
QklOSSwKIENISVBfSEFXQUlJLAogQ0hJUF9NVUxMSU5TLAogQ0hJUF9UT1BBWiwKIENISVBfVE9O
R0EsCiBDSElQX0ZJSkksCiBDSElQX0NBUlJJWk8sCiBDSElQX1NUT05FWSwKIENISVBfUE9MQVJJ
UzEwLAogQ0hJUF9QT0xBUklTMTEsCiBDSElQX1BPTEFSSVMxMiwKIENISVBfVkVHQU0sCiBDSElQ
X1ZFR0ExMCwKIENISVBfVkVHQTEyLAogQ0hJUF9WRUdBMjAsCiBDSElQX1JBVkVOLAogQ0hJUF9B
UkNUVVJVUywKIENISVBfUkVOT0lSLAogQ0hJUF9OQVZJMTAsCiBDSElQX05BVkkxNCwKIENISVBf
TkFWSTEyLAogQ0hJUF9MQVNULAp9OwoKZXh0ZXJuIGNvbnN0IGNoYXIgKmFtZGdwdV9hc2ljX25h
bWVbXTsKIyAyNyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2FtZF9z
aGFyZWQuaCIgMgoKCgoKCgoKZW51bSBhbWRfY2hpcF9mbGFncyB7CiBBTURfQVNJQ19NQVNLID0g
MHgwMDAwZmZmZlVMLAogQU1EX0ZMQUdTX01BU0sgPSAweGZmZmYwMDAwVUwsCiBBTURfSVNfTU9C
SUxJVFkgPSAweDAwMDEwMDAwVUwsCiBBTURfSVNfQVBVID0gMHgwMDAyMDAwMFVMLAogQU1EX0lT
X1BYID0gMHgwMDA0MDAwMFVMLAogQU1EX0VYUF9IV19TVVBQT1JUID0gMHgwMDA4MDAwMFVMLAp9
OwoKZW51bSBhbWRfaXBfYmxvY2tfdHlwZSB7CiBBTURfSVBfQkxPQ0tfVFlQRV9DT01NT04sCiBB
TURfSVBfQkxPQ0tfVFlQRV9HTUMsCiBBTURfSVBfQkxPQ0tfVFlQRV9JSCwKIEFNRF9JUF9CTE9D
S19UWVBFX1NNQywKIEFNRF9JUF9CTE9DS19UWVBFX1BTUCwKIEFNRF9JUF9CTE9DS19UWVBFX0RD
RSwKIEFNRF9JUF9CTE9DS19UWVBFX0dGWCwKIEFNRF9JUF9CTE9DS19UWVBFX1NETUEsCiBBTURf
SVBfQkxPQ0tfVFlQRV9VVkQsCiBBTURfSVBfQkxPQ0tfVFlQRV9WQ0UsCiBBTURfSVBfQkxPQ0tf
VFlQRV9BQ1AsCiBBTURfSVBfQkxPQ0tfVFlQRV9WQ04sCiBBTURfSVBfQkxPQ0tfVFlQRV9NRVMs
CiBBTURfSVBfQkxPQ0tfVFlQRV9KUEVHCn07CgplbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSB7
CiBBTURfQ0dfU1RBVEVfR0FURSA9IDAsCiBBTURfQ0dfU1RBVEVfVU5HQVRFLAp9OwoKCmVudW0g
YW1kX3Bvd2VyZ2F0aW5nX3N0YXRlIHsKIEFNRF9QR19TVEFURV9HQVRFID0gMCwKIEFNRF9QR19T
VEFURV9VTkdBVEUsCn07CiMgMTI0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2lu
Y2x1ZGUvYW1kX3NoYXJlZC5oIgplbnVtIFBQX0ZFQVRVUkVfTUFTSyB7CiBQUF9TQ0xLX0RQTV9N
QVNLID0gMHgxLAogUFBfTUNMS19EUE1fTUFTSyA9IDB4MiwKIFBQX1BDSUVfRFBNX01BU0sgPSAw
eDQsCiBQUF9TQ0xLX0RFRVBfU0xFRVBfTUFTSyA9IDB4OCwKIFBQX1BPV0VSX0NPTlRBSU5NRU5U
X01BU0sgPSAweDEwLAogUFBfVVZEX0hBTkRTSEFLRV9NQVNLID0gMHgyMCwKIFBQX1NNQ19WT0xU
QUdFX0NPTlRST0xfTUFTSyA9IDB4NDAsCiBQUF9WQklfVElNRV9TVVBQT1JUX01BU0sgPSAweDgw
LAogUFBfVUxWX01BU0sgPSAweDEwMCwKIFBQX0VOQUJMRV9HRlhfQ0dfVEhSVV9TTVUgPSAweDIw
MCwKIFBQX0NMT0NLX1NUUkVUQ0hfTUFTSyA9IDB4NDAwLAogUFBfT0RfRlVaWllfRkFOX0NPTlRS
T0xfTUFTSyA9IDB4ODAwLAogUFBfU09DQ0xLX0RQTV9NQVNLID0gMHgxMDAwLAogUFBfRENFRkNM
S19EUE1fTUFTSyA9IDB4MjAwMCwKIFBQX09WRVJEUklWRV9NQVNLID0gMHg0MDAwLAogUFBfR0ZY
T0ZGX01BU0sgPSAweDgwMDAsCiBQUF9BQ0dfTUFTSyA9IDB4MTAwMDAsCiBQUF9TVFVUVEVSX01P
REUgPSAweDIwMDAwLAogUFBfQVZGU19NQVNLID0gMHg0MDAwMCwKfTsKCmVudW0gRENfRkVBVFVS
RV9NQVNLIHsKIERDX0ZCQ19NQVNLID0gMHgxLAogRENfTVVMVElfTU9OX1BQX01DTEtfU1dJVENI
X01BU0sgPSAweDIsCiBEQ19ESVNBQkxFX0ZSQUNUSU9OQUxfUFdNX01BU0sgPSAweDQsCiBEQ19Q
U1JfTUFTSyA9IDB4OCwKfTsKCmVudW0gYW1kX2RwbV9mb3JjZWRfbGV2ZWw7CgoKCnN0cnVjdCBh
bWRfaXBfZnVuY3MgewoKIGNoYXIgKm5hbWU7CgoKCgoKCiBpbnQgKCplYXJseV9pbml0KSh2b2lk
ICpoYW5kbGUpOwoKIGludCAoKmxhdGVfaW5pdCkodm9pZCAqaGFuZGxlKTsKCiBpbnQgKCpzd19p
bml0KSh2b2lkICpoYW5kbGUpOwoKIGludCAoKnN3X2ZpbmkpKHZvaWQgKmhhbmRsZSk7CgogaW50
ICgqaHdfaW5pdCkodm9pZCAqaGFuZGxlKTsKCiBpbnQgKCpod19maW5pKSh2b2lkICpoYW5kbGUp
OwoKIHZvaWQgKCpsYXRlX2ZpbmkpKHZvaWQgKmhhbmRsZSk7CgogaW50ICgqc3VzcGVuZCkodm9p
ZCAqaGFuZGxlKTsKCiBpbnQgKCpyZXN1bWUpKHZvaWQgKmhhbmRsZSk7CgogYm9vbCAoKmlzX2lk
bGUpKHZvaWQgKmhhbmRsZSk7CgogaW50ICgqd2FpdF9mb3JfaWRsZSkodm9pZCAqaGFuZGxlKTsK
CiBib29sICgqY2hlY2tfc29mdF9yZXNldCkodm9pZCAqaGFuZGxlKTsKCiBpbnQgKCpwcmVfc29m
dF9yZXNldCkodm9pZCAqaGFuZGxlKTsKCiBpbnQgKCpzb2Z0X3Jlc2V0KSh2b2lkICpoYW5kbGUp
OwoKIGludCAoKnBvc3Rfc29mdF9yZXNldCkodm9pZCAqaGFuZGxlKTsKCiBpbnQgKCpzZXRfY2xv
Y2tnYXRpbmdfc3RhdGUpKHZvaWQgKmhhbmRsZSwKICAgICAgICAgZW51bSBhbWRfY2xvY2tnYXRp
bmdfc3RhdGUgc3RhdGUpOwoKIGludCAoKnNldF9wb3dlcmdhdGluZ19zdGF0ZSkodm9pZCAqaGFu
ZGxlLAogICAgICAgICBlbnVtIGFtZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSk7Cgogdm9pZCAo
KmdldF9jbG9ja2dhdGluZ19zdGF0ZSkodm9pZCAqaGFuZGxlLCB1MzIgKmZsYWdzKTsKCiBpbnQg
KCplbmFibGVfdW1kX3BzdGF0ZSkodm9pZCAqaGFuZGxlLCBlbnVtIGFtZF9kcG1fZm9yY2VkX2xl
dmVsICpsZXZlbCk7Cn07CiMgMjggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5j
bHVkZS9jZ3NfY29tbW9uLmgiIDIKCnN0cnVjdCBjZ3NfZGV2aWNlOwoKCgoKZW51bSBjZ3NfaW5k
X3JlZyB7CiBDR1NfSU5EX1JFR19fTU1JTywKIENHU19JTkRfUkVHX19QQ0lFLAogQ0dTX0lORF9S
RUdfX1NNQywKIENHU19JTkRfUkVHX19VVkRfQ1RYLAogQ0dTX0lORF9SRUdfX0RJRFQsCiBDR1Nf
SU5EX1JFR19HQ19DQUMsCiBDR1NfSU5EX1JFR19TRV9DQUMsCiBDR1NfSU5EX1JFR19fQVVESU9f
RU5EUFQKfTsKCgoKCmVudW0gY2dzX3Vjb2RlX2lkIHsKIENHU19VQ09ERV9JRF9TTVUgPSAwLAog
Q0dTX1VDT0RFX0lEX1NNVV9TSywKIENHU19VQ09ERV9JRF9TRE1BMCwKIENHU19VQ09ERV9JRF9T
RE1BMSwKIENHU19VQ09ERV9JRF9DUF9DRSwKIENHU19VQ09ERV9JRF9DUF9QRlAsCiBDR1NfVUNP
REVfSURfQ1BfTUUsCiBDR1NfVUNPREVfSURfQ1BfTUVDLAogQ0dTX1VDT0RFX0lEX0NQX01FQ19K
VDEsCiBDR1NfVUNPREVfSURfQ1BfTUVDX0pUMiwKIENHU19VQ09ERV9JRF9HTUNPTl9SRU5HLAog
Q0dTX1VDT0RFX0lEX1JMQ19HLAogQ0dTX1VDT0RFX0lEX1NUT1JBR0UsCiBDR1NfVUNPREVfSURf
TUFYSU1VTSwKfTsKCgoKCnN0cnVjdCBjZ3NfZmlybXdhcmVfaW5mbyB7CiB1aW50MTZfdCB2ZXJz
aW9uOwogdWludDE2X3QgZndfdmVyc2lvbjsKIHVpbnQxNl90IGZlYXR1cmVfdmVyc2lvbjsKIHVp
bnQzMl90IGltYWdlX3NpemU7CiB1aW50NjRfdCBtY19hZGRyOwoKCiB1aW50MzJfdCB1Y29kZV9z
dGFydF9hZGRyZXNzOwoKIHZvaWQgKmtwdHI7CiBib29sIGlzX2tpY2tlcjsKfTsKCnR5cGVkZWYg
dW5zaWduZWQgbG9uZyBjZ3NfaGFuZGxlX3Q7CiMgOTEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vaW5jbHVkZS9jZ3NfY29tbW9uLmgiCnR5cGVkZWYgdWludDMyX3QgKCpjZ3NfcmVh
ZF9yZWdpc3Rlcl90KShzdHJ1Y3QgY2dzX2RldmljZSAqY2dzX2RldmljZSwgdW5zaWduZWQgb2Zm
c2V0KTsKCgoKCgoKCnR5cGVkZWYgdm9pZCAoKmNnc193cml0ZV9yZWdpc3Rlcl90KShzdHJ1Y3Qg
Y2dzX2RldmljZSAqY2dzX2RldmljZSwgdW5zaWduZWQgb2Zmc2V0LAogICAgICAgICB1aW50MzJf
dCB2YWx1ZSk7CiMgMTA5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUv
Y2dzX2NvbW1vbi5oIgp0eXBlZGVmIHVpbnQzMl90ICgqY2dzX3JlYWRfaW5kX3JlZ2lzdGVyX3Qp
KHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNlLCBlbnVtIGNnc19pbmRfcmVnIHNwYWNlLAog
ICAgICAgICB1bnNpZ25lZCBpbmRleCk7CgoKCgoKCgp0eXBlZGVmIHZvaWQgKCpjZ3Nfd3JpdGVf
aW5kX3JlZ2lzdGVyX3QpKHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNlLCBlbnVtIGNnc19p
bmRfcmVnIHNwYWNlLAogICAgICB1bnNpZ25lZCBpbmRleCwgdWludDMyX3QgdmFsdWUpOwojIDEz
NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2Nnc19jb21tb24uaCIK
dHlwZWRlZiBpbnQgKCpjZ3NfZ2V0X2Zpcm13YXJlX2luZm8pKHN0cnVjdCBjZ3NfZGV2aWNlICpj
Z3NfZGV2aWNlLAogICAgICAgICBlbnVtIGNnc191Y29kZV9pZCB0eXBlLAogICAgICAgICBzdHJ1
Y3QgY2dzX2Zpcm13YXJlX2luZm8gKmluZm8pOwoKc3RydWN0IGNnc19vcHMgewoKIGNnc19yZWFk
X3JlZ2lzdGVyX3QgcmVhZF9yZWdpc3RlcjsKIGNnc193cml0ZV9yZWdpc3Rlcl90IHdyaXRlX3Jl
Z2lzdGVyOwogY2dzX3JlYWRfaW5kX3JlZ2lzdGVyX3QgcmVhZF9pbmRfcmVnaXN0ZXI7CiBjZ3Nf
d3JpdGVfaW5kX3JlZ2lzdGVyX3Qgd3JpdGVfaW5kX3JlZ2lzdGVyOwoKIGNnc19nZXRfZmlybXdh
cmVfaW5mbyBnZXRfZmlybXdhcmVfaW5mbzsKfTsKCnN0cnVjdCBjZ3Nfb3Nfb3BzOwoKc3RydWN0
IGNnc19kZXZpY2UKewogY29uc3Qgc3RydWN0IGNnc19vcHMgKm9wczsKCn07CiMgNDAgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9vc190eXBlcy5oIiAyCiMgNTUg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9vc190eXBlcy5oIgoj
IDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L2FwaS5oIiAxCiMgMjIgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vZnB1L2FwaS5oIgpleHRlcm4gdm9pZCBrZXJuZWxfZnB1X2JlZ2luKHZvaWQp
OwpleHRlcm4gdm9pZCBrZXJuZWxfZnB1X2VuZCh2b2lkKTsKZXh0ZXJuIGJvb2wgaXJxX2ZwdV91
c2FibGUodm9pZCk7CmV4dGVybiB2b2lkIGZwcmVnc19tYXJrX2FjdGl2YXRlKHZvaWQpOwoKCgoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBmcHJlZ3NfbG9jayh2b2lkKQp7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6
Im1lbW9yeSIpOwogbG9jYWxfYmhfZGlzYWJsZSgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGZwcmVnc191bmxvY2sodm9p
ZCkKewogbG9jYWxfYmhfZW5hYmxlKCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1l
bW9yeSIpOwp9CgoKZXh0ZXJuIHZvaWQgZnByZWdzX2Fzc2VydF9zdGF0ZV9jb25zaXN0ZW50KHZv
aWQpOwoKCgoKCgoKZXh0ZXJuIHZvaWQgc3dpdGNoX2ZwdV9yZXR1cm4odm9pZCk7CiMgNjMgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L2FwaS5oIgpleHRlcm4gaW50IGNwdV9oYXNfeGZlYXR1
cmVzKHU2NCB4ZmVhdHVyZXNfbWFzaywgY29uc3QgY2hhciAqKmZlYXR1cmVfbmFtZSk7CiMgNTYg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9vc190eXBlcy5oIiAy
CiMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBl
cy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1
ZGUvZml4ZWQzMV8zMi5oIiAxCiMgNTcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKc3RydWN0IGZpeGVkMzFfMzIgewogbG9uZyBs
b25nIHZhbHVlOwp9OwoKCgoKCgoKc3RhdGljIGNvbnN0IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2Zp
eHB0X3plcm8gPSB7IDAgfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0
X2Vwc2lsb24gPSB7IDFMTCB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4
cHRfaGFsZiA9IHsgMHg4MDAwMDAwMExMIH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8z
MiBkY19maXhwdF9vbmUgPSB7IDB4MTAwMDAwMDAwTEwgfTsKCnN0YXRpYyBjb25zdCBzdHJ1Y3Qg
Zml4ZWQzMV8zMiBkY19maXhwdF9waSA9IHsgMTM0OTMwMzc3MDVMTCB9OwpzdGF0aWMgY29uc3Qg
c3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfdHdvX3BpID0geyAyNjk4NjA3NTQwOUxMIH07CnN0
YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9lID0geyAxMTY3NDkzMTU1NUxM
IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9sbjIgPSB7IDI5Nzcw
NDQ0NzFMTCB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfbG4yX2Rp
dl8yID0geyAxNDg4NTIyMjM2TEwgfTsKIyA4NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgpzdHJ1Y3QgZml4ZWQzMV8zMiBkY19m
aXhwdF9mcm9tX2ZyYWN0aW9uKGxvbmcgbG9uZyBudW1lcmF0b3IsIGxvbmcgbG9uZyBkZW5vbWlu
YXRvcik7CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfZnJvbV9pbnQoaW50IGFyZykK
ewogc3RydWN0IGZpeGVkMzFfMzIgcmVzOwoKIHJlcy52YWx1ZSA9IChsb25nIGxvbmcpIGFyZyA8
PCAzMjsKCiByZXR1cm4gcmVzOwp9CiMgMTExICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2Zp
eHB0X25lZyhzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpCnsKIHN0cnVjdCBmaXhlZDMxXzMyIHJlczsK
CiByZXMudmFsdWUgPSAtYXJnLnZhbHVlOwoKIHJldHVybiByZXM7Cn0KCgoKCgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZml4
ZWQzMV8zMiBkY19maXhwdF9hYnMoc3RydWN0IGZpeGVkMzFfMzIgYXJnKQp7CiBpZiAoYXJnLnZh
bHVlIDwgMCkKICByZXR1cm4gZGNfZml4cHRfbmVnKGFyZyk7CiBlbHNlCiAgcmV0dXJuIGFyZzsK
fQojIDE0MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUv
Zml4ZWQzMV8zMi5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIGRjX2ZpeHB0X2x0KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0
cnVjdCBmaXhlZDMxXzMyIGFyZzIpCnsKIHJldHVybiBhcmcxLnZhbHVlIDwgYXJnMi52YWx1ZTsK
fQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgZGNfZml4cHRfbGUoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgc3RydWN0IGZp
eGVkMzFfMzIgYXJnMikKewogcmV0dXJuIGFyZzEudmFsdWUgPD0gYXJnMi52YWx1ZTsKfQoKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgZGNfZml4cHRfZXEoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgc3RydWN0IGZpeGVkMzFf
MzIgYXJnMikKewogcmV0dXJuIGFyZzEudmFsdWUgPT0gYXJnMi52YWx1ZTsKfQoKCgoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVj
dCBmaXhlZDMxXzMyIGRjX2ZpeHB0X21pbihzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLCBzdHJ1Y3Qg
Zml4ZWQzMV8zMiBhcmcyKQp7CiBpZiAoYXJnMS52YWx1ZSA8PSBhcmcyLnZhbHVlKQogIHJldHVy
biBhcmcxOwogZWxzZQogIHJldHVybiBhcmcyOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNf
Zml4cHRfbWF4KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIp
CnsKIGlmIChhcmcxLnZhbHVlIDw9IGFyZzIudmFsdWUpCiAgcmV0dXJuIGFyZzI7CiBlbHNlCiAg
cmV0dXJuIGFyZzE7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X2NsYW1wKAog
c3RydWN0IGZpeGVkMzFfMzIgYXJnLAogc3RydWN0IGZpeGVkMzFfMzIgbWluX3ZhbHVlLAogc3Ry
dWN0IGZpeGVkMzFfMzIgbWF4X3ZhbHVlKQp7CiBpZiAoZGNfZml4cHRfbGUoYXJnLCBtaW5fdmFs
dWUpKQogIHJldHVybiBtaW5fdmFsdWU7CiBlbHNlIGlmIChkY19maXhwdF9sZShtYXhfdmFsdWUs
IGFyZykpCiAgcmV0dXJuIG1heF92YWx1ZTsKIGVsc2UKICByZXR1cm4gYXJnOwp9CiMgMjE2ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMy
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X3NobChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcs
IHVuc2lnbmVkIGNoYXIgc2hpZnQpCnsKICh7IGludCBfX3JldF93YXJuX29uID0gISEoISgoKGFy
Zy52YWx1ZSA+PSAwKSAmJiAoYXJnLnZhbHVlIDw9ICgobG9uZyBsb25nKSh+MFVMTCA+PiAxKSkg
Pj4gc2hpZnQpKSB8fCAoKGFyZy52YWx1ZSA8IDApICYmIChhcmcudmFsdWUgPj0gfigoKGxvbmcg
bG9uZykofjBVTEwgPj4gMSkpID4+IHNoaWZ0KSkpKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEh
KF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpc
dCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3
XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2Fk
ZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4i
ICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQj
IGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDog
ImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVk
MzFfMzIuaCIpLCAiaSIgKDIxOCksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChz
aXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgi
JWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVj
MGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMzgpKTsgfSk7IH0gd2hpbGUg
KDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoKIGFy
Zy52YWx1ZSA9IGFyZy52YWx1ZSA8PCBzaGlmdDsKCiByZXR1cm4gYXJnOwp9CgoKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGZpeGVkMzFfMzIgZGNfZml4cHRfc2hyKHN0cnVjdCBmaXhlZDMxXzMyIGFyZywgdW5zaWduZWQg
Y2hhciBzaGlmdCkKewogYm9vbCBuZWdhdGl2ZSA9IGFyZy52YWx1ZSA8IDA7CgogaWYgKG5lZ2F0
aXZlKQogIGFyZy52YWx1ZSA9IC1hcmcudmFsdWU7CiBhcmcudmFsdWUgPSBhcmcudmFsdWUgPj4g
c2hpZnQ7CiBpZiAobmVnYXRpdmUpCiAgYXJnLnZhbHVlID0gLWFyZy52YWx1ZTsKIHJldHVybiBh
cmc7Cn0KIyAyNTEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNs
dWRlL2ZpeGVkMzFfMzIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfYWRkKHN0cnVjdCBm
aXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpCnsKIHN0cnVjdCBmaXhlZDMx
XzMyIHJlczsKCiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKCEoKChhcmcxLnZhbHVlID49IDAp
ICYmICgoKGxvbmcgbG9uZykofjBVTEwgPj4gMSkpIC0gYXJnMS52YWx1ZSA+PSBhcmcyLnZhbHVl
KSkgfHwgKChhcmcxLnZhbHVlIDwgMCkgJiYgKCgtKChsb25nIGxvbmcpKH4wVUxMID4+IDEpKSAt
IDEpIC0gYXJnMS52YWx1ZSA8PSBhcmcyLnZhbHVlKSkpKTsgaWYgKF9fYnVpbHRpbl9leHBlY3Qo
ISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIx
Olx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwi
YXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdf
YWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVc
biIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJc
dCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDog
OiAiaSIgKCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4
ZWQzMV8zMi5oIiksICJpIiAoMjU1KSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIg
KHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxl
KCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcg
JWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgzOSkpOyB9KTsgfSB3aGls
ZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7
CgogcmVzLnZhbHVlID0gYXJnMS52YWx1ZSArIGFyZzIudmFsdWU7CgogcmV0dXJuIHJlczsKfQoK
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X2FkZF9pbnQoc3RydWN0IGZpeGVkMzFfMzIg
YXJnMSwgaW50IGFyZzIpCnsKIHJldHVybiBkY19maXhwdF9hZGQoYXJnMSwgZGNfZml4cHRfZnJv
bV9pbnQoYXJnMikpOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfc3ViKHN0cnVj
dCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpCnsKIHN0cnVjdCBmaXhl
ZDMxXzMyIHJlczsKCiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKCEoKChhcmcyLnZhbHVlID49
IDApICYmICgoLSgobG9uZyBsb25nKSh+MFVMTCA+PiAxKSkgLSAxKSArIGFyZzIudmFsdWUgPD0g
YXJnMS52YWx1ZSkpIHx8ICgoYXJnMi52YWx1ZSA8IDApICYmICgoKGxvbmcgbG9uZykofjBVTEwg
Pj4gMSkpICsgYXJnMi52YWx1ZSA+PSBhcmcxLnZhbHVlKSkpKTsgaWYgKF9fYnVpbHRpbl9leHBl
Y3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxl
KCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxl
LFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5Ojpi
dWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZp
bGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIi
ICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24i
IDogOiAiaSIgKCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUv
Zml4ZWQzMV8zMi5oIiksICJpIiAoMjgwKSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAi
aSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0
aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxv
bmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICg0MCkpOyB9KTsgfSB3
aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA7CgogcmVzLnZhbHVlID0gYXJnMS52YWx1ZSAtIGFyZzIudmFsdWU7CgogcmV0dXJuIHJlczsK
fQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X3N1Yl9pbnQoc3RydWN0IGZpeGVkMzFf
MzIgYXJnMSwgaW50IGFyZzIpCnsKIHJldHVybiBkY19maXhwdF9zdWIoYXJnMSwgZGNfZml4cHRf
ZnJvbV9pbnQoYXJnMikpOwp9CiMgMzA3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiCnN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0
X211bChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLCBzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcyKTsKCgoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfbXVsX2ludChzdHJ1Y3QgZml4ZWQzMV8zMiBh
cmcxLCBpbnQgYXJnMikKewogcmV0dXJuIGRjX2ZpeHB0X211bChhcmcxLCBkY19maXhwdF9mcm9t
X2ludChhcmcyKSk7Cn0KCgoKCgpzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9zcXIoc3RydWN0
IGZpeGVkMzFfMzIgYXJnKTsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9kaXZfaW50
KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIGxvbmcgbG9uZyBhcmcyKQp7CiByZXR1cm4gZGNfZml4
cHRfZnJvbV9mcmFjdGlvbihhcmcxLnZhbHVlLCBkY19maXhwdF9mcm9tX2ludChhcmcyKS52YWx1
ZSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9kaXYoc3RydWN0IGZpeGVkMzFf
MzIgYXJnMSwgc3RydWN0IGZpeGVkMzFfMzIgYXJnMikKewogcmV0dXJuIGRjX2ZpeHB0X2Zyb21f
ZnJhY3Rpb24oYXJnMS52YWx1ZSwgYXJnMi52YWx1ZSk7Cn0KIyAzNTUgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKc3RydWN0IGZp
eGVkMzFfMzIgZGNfZml4cHRfcmVjaXAoc3RydWN0IGZpeGVkMzFfMzIgYXJnKTsKIyAzNzAgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIu
aCIKc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfc2luYyhzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcp
OwojIDM4MCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUv
Zml4ZWQzMV8zMi5oIgpzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9zaW4oc3RydWN0IGZpeGVk
MzFfMzIgYXJnKTsKIyAzOTIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfY29zKHN0
cnVjdCBmaXhlZDMxXzMyIGFyZyk7CiMgNDA2ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiCnN0cnVjdCBmaXhlZDMxXzMyIGRjX2Zp
eHB0X2V4cChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwojIDQxOCAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgpzdHJ1Y3QgZml4ZWQz
MV8zMiBkY19maXhwdF9sb2coc3RydWN0IGZpeGVkMzFfMzIgYXJnKTsKIyA0MzIgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3Ry
dWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfcG93KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVj
dCBmaXhlZDMxXzMyIGFyZzIpCnsKIHJldHVybiBkY19maXhwdF9leHAoCiAgZGNfZml4cHRfbXVs
KAogICBkY19maXhwdF9sb2coYXJnMSksCiAgIGFyZzIpKTsKfQojIDQ0OSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZGNf
Zml4cHRfZmxvb3Ioc3RydWN0IGZpeGVkMzFfMzIgYXJnKQp7CiB1bnNpZ25lZCBsb25nIGxvbmcg
YXJnX3ZhbHVlID0gYXJnLnZhbHVlID4gMCA/IGFyZy52YWx1ZSA6IC1hcmcudmFsdWU7CgogaWYg
KGFyZy52YWx1ZSA+PSAwKQogIHJldHVybiAoaW50KShhcmdfdmFsdWUgPj4gMzIpOwogZWxzZQog
IHJldHVybiAtKGludCkoYXJnX3ZhbHVlID4+IDMyKTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkY19maXhwdF9yb3Vu
ZChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpCnsKIHVuc2lnbmVkIGxvbmcgbG9uZyBhcmdfdmFsdWUg
PSBhcmcudmFsdWUgPiAwID8gYXJnLnZhbHVlIDogLWFyZy52YWx1ZTsKCiBjb25zdCBsb25nIGxv
bmcgc3VtbWFuZCA9IGRjX2ZpeHB0X2hhbGYudmFsdWU7CgogKHsgaW50IF9fcmV0X3dhcm5fb24g
PSAhISghKCgobG9uZyBsb25nKSh+MFVMTCA+PiAxKSkgLSAobG9uZyBsb25nKWFyZ192YWx1ZSA+
PSBzdW1tYW5kKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkg
ZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIi
ICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAi
ICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAi
JWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBi
dWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIg
Ilx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIpLCAiaSIgKDQ2OSks
ICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRy
eSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rp
b24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIgOiA6ICJpIiAoNDEpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0
KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CgogYXJnX3ZhbHVlICs9IHN1bW1hbmQ7CgogaWYg
KGFyZy52YWx1ZSA+PSAwKQogIHJldHVybiAoaW50KShhcmdfdmFsdWUgPj4gMzIpOwogZWxzZQog
IHJldHVybiAtKGludCkoYXJnX3ZhbHVlID4+IDMyKTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkY19maXhwdF9jZWls
KHN0cnVjdCBmaXhlZDMxXzMyIGFyZykKewogdW5zaWduZWQgbG9uZyBsb25nIGFyZ192YWx1ZSA9
IGFyZy52YWx1ZSA+IDAgPyBhcmcudmFsdWUgOiAtYXJnLnZhbHVlOwoKIGNvbnN0IGxvbmcgbG9u
ZyBzdW1tYW5kID0gZGNfZml4cHRfb25lLnZhbHVlIC0KICBkY19maXhwdF9lcHNpbG9uLnZhbHVl
OwoKICh7IGludCBfX3JldF93YXJuX29uID0gISEoISgoKGxvbmcgbG9uZykofjBVTEwgPj4gMSkp
IC0gKGxvbmcgbG9uZylhcmdfdmFsdWUgPj0gc3VtbWFuZCkpOyBpZiAoX19idWlsdGluX2V4cGVj
dCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUo
IjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUs
XCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1
Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6Zmls
ZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIg
Ilx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIg
OiA6ICJpIiAoImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9m
aXhlZDMxXzMyLmgiKSwgImkiICg0OTApLCAiaSIgKCgxIDw8IDApfCgoKDkpIDw8IDgpKSksICJp
IiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRp
bGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9u
ZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDQyKSk7IH0pOyB9IHdo
aWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoKIGFy
Z192YWx1ZSArPSBzdW1tYW5kOwoKIGlmIChhcmcudmFsdWUgPj0gMCkKICByZXR1cm4gKGludCko
YXJnX3ZhbHVlID4+IDMyKTsKIGVsc2UKICByZXR1cm4gLShpbnQpKGFyZ192YWx1ZSA+PiAzMik7
Cn0KCgoKCgoKCnVuc2lnbmVkIGludCBkY19maXhwdF91NGQxOShzdHJ1Y3QgZml4ZWQzMV8zMiBh
cmcpOwoKdW5zaWduZWQgaW50IGRjX2ZpeHB0X3UzZDE5KHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7
Cgp1bnNpZ25lZCBpbnQgZGNfZml4cHRfdTJkMTkoc3RydWN0IGZpeGVkMzFfMzIgYXJnKTsKCnVu
c2lnbmVkIGludCBkY19maXhwdF91MGQxOShzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwoKdW5zaWdu
ZWQgaW50IGRjX2ZpeHB0X2NsYW1wX3UwZDE0KHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7Cgp1bnNp
Z25lZCBpbnQgZGNfZml4cHRfY2xhbXBfdTBkMTAoc3RydWN0IGZpeGVkMzFfMzIgYXJnKTsKCmlu
dCBkY19maXhwdF9zNGQxOShzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFf
MzIgZGNfZml4cHRfdHJ1bmNhdGUoc3RydWN0IGZpeGVkMzFfMzIgYXJnLCB1bnNpZ25lZCBpbnQg
ZnJhY19iaXRzKQp7CiBib29sIG5lZ2F0aXZlID0gYXJnLnZhbHVlIDwgMDsKCiBpZiAoZnJhY19i
aXRzID49IDMyKSB7CiAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAhISghKGZyYWNfYml0cyA9PSAz
MikpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8g
eyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIu
cHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIg
LSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAt
IDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5
OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcg
MmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiKSwgImkiICg1MjUpLCAiaSIgKCgx
IDw8IDApfCgoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0g
d2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNj
YXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQi
IDogOiAiaSIgKDQzKSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3Jl
dF93YXJuX29uKSwgMCk7IH0pOwogIHJldHVybiBhcmc7CiB9CgogaWYgKG5lZ2F0aXZlKQogIGFy
Zy52YWx1ZSA9IC1hcmcudmFsdWU7CiBhcmcudmFsdWUgJj0gKH4wTEwpIDw8ICgzMiAtIGZyYWNf
Yml0cyk7CiBpZiAobmVnYXRpdmUpCiAgYXJnLnZhbHVlID0gLWFyZy52YWx1ZTsKIHJldHVybiBh
cmc7Cn0KIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Rj
X3R5cGVzLmgiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvaXJxX3R5cGVzLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2lycV90eXBlcy5oIgpzdHJ1Y3QgZGNfY29udGV4dDsKCnR5cGVkZWYgdm9pZCAo
KmludGVycnVwdF9oYW5kbGVyKSh2b2lkICopOwoKdHlwZWRlZiB2b2lkICppcnFfaGFuZGxlcl9p
ZHg7CgoKCgplbnVtIGRjX2lycV9zb3VyY2UgewoKIERDX0lSUV9TT1VSQ0VfSU5WQUxJRCA9IDAs
CgogRENfSVJRX1NPVVJDRV9IUEQxLAogRENfSVJRX1NPVVJDRV9IUEQyLAogRENfSVJRX1NPVVJD
RV9IUEQzLAogRENfSVJRX1NPVVJDRV9IUEQ0LAogRENfSVJRX1NPVVJDRV9IUEQ1LAogRENfSVJR
X1NPVVJDRV9IUEQ2LAoKIERDX0lSUV9TT1VSQ0VfSFBEMVJYLAogRENfSVJRX1NPVVJDRV9IUEQy
UlgsCiBEQ19JUlFfU09VUkNFX0hQRDNSWCwKIERDX0lSUV9TT1VSQ0VfSFBENFJYLAogRENfSVJR
X1NPVVJDRV9IUEQ1UlgsCiBEQ19JUlFfU09VUkNFX0hQRDZSWCwKCiBEQ19JUlFfU09VUkNFX0ky
Q19EREMxLAogRENfSVJRX1NPVVJDRV9JMkNfRERDMiwKIERDX0lSUV9TT1VSQ0VfSTJDX0REQzMs
CiBEQ19JUlFfU09VUkNFX0kyQ19EREM0LAogRENfSVJRX1NPVVJDRV9JMkNfRERDNSwKIERDX0lS
UV9TT1VSQ0VfSTJDX0REQzYsCgogRENfSVJRX1NPVVJDRV9EUFNJTksxLAogRENfSVJRX1NPVVJD
RV9EUFNJTksyLAogRENfSVJRX1NPVVJDRV9EUFNJTkszLAogRENfSVJRX1NPVVJDRV9EUFNJTks0
LAogRENfSVJRX1NPVVJDRV9EUFNJTks1LAogRENfSVJRX1NPVVJDRV9EUFNJTks2LAoKIERDX0lS
UV9TT1VSQ0VfVElNRVIsCgogRENfSVJRX1NPVVJDRV9QRkxJUF9GSVJTVCwKIERDX0lSUV9TT1VS
Q0VfUEZMSVAxID0gRENfSVJRX1NPVVJDRV9QRkxJUF9GSVJTVCwKIERDX0lSUV9TT1VSQ0VfUEZM
SVAyLAogRENfSVJRX1NPVVJDRV9QRkxJUDMsCiBEQ19JUlFfU09VUkNFX1BGTElQNCwKIERDX0lS
UV9TT1VSQ0VfUEZMSVA1LAogRENfSVJRX1NPVVJDRV9QRkxJUDYsCiBEQ19JUlFfU09VUkNFX1BG
TElQX1VOREVSTEFZMCwKIERDX0lSUV9TT1VSQ0VfUEZMSVBfTEFTVCA9IERDX0lSUV9TT1VSQ0Vf
UEZMSVBfVU5ERVJMQVkwLAoKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDAsCiBEQ19JUlFfU09VUkNF
X0dQSU9QQUQxLAogRENfSVJRX1NPVVJDRV9HUElPUEFEMiwKIERDX0lSUV9TT1VSQ0VfR1BJT1BB
RDMsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQ0LAogRENfSVJRX1NPVVJDRV9HUElPUEFENSwKIERD
X0lSUV9TT1VSQ0VfR1BJT1BBRDYsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQ3LAogRENfSVJRX1NP
VVJDRV9HUElPUEFEOCwKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDksCiBEQ19JUlFfU09VUkNFX0dQ
SU9QQUQxMCwKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDExLAogRENfSVJRX1NPVVJDRV9HUElPUEFE
MTIsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQxMywKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDE0LAog
RENfSVJRX1NPVVJDRV9HUElPUEFEMTUsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQxNiwKIERDX0lS
UV9TT1VSQ0VfR1BJT1BBRDE3LAogRENfSVJRX1NPVVJDRV9HUElPUEFEMTgsCiBEQ19JUlFfU09V
UkNFX0dQSU9QQUQxOSwKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDIwLAogRENfSVJRX1NPVVJDRV9H
UElPUEFEMjEsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQyMiwKIERDX0lSUV9TT1VSQ0VfR1BJT1BB
RDIzLAogRENfSVJRX1NPVVJDRV9HUElPUEFEMjQsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQyNSwK
IERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI2LAogRENfSVJRX1NPVVJDRV9HUElPUEFEMjcsCiBEQ19J
UlFfU09VUkNFX0dQSU9QQUQyOCwKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI5LAogRENfSVJRX1NP
VVJDRV9HUElPUEFEMzAsCgogRENfSVJRX1NPVVJDRV9EQzFVTkRFUkZMT1csCiBEQ19JUlFfU09V
UkNFX0RDMlVOREVSRkxPVywKIERDX0lSUV9TT1VSQ0VfREMzVU5ERVJGTE9XLAogRENfSVJRX1NP
VVJDRV9EQzRVTkRFUkZMT1csCiBEQ19JUlFfU09VUkNFX0RDNVVOREVSRkxPVywKIERDX0lSUV9T
T1VSQ0VfREM2VU5ERVJGTE9XLAoKIERDX0lSUV9TT1VSQ0VfRE1DVV9TQ1AsCiBEQ19JUlFfU09V
UkNFX1ZCSU9TX1NXLAoKIERDX0lSUV9TT1VSQ0VfVlVQREFURTEsCiBEQ19JUlFfU09VUkNFX1ZV
UERBVEUyLAogRENfSVJRX1NPVVJDRV9WVVBEQVRFMywKIERDX0lSUV9TT1VSQ0VfVlVQREFURTQs
CiBEQ19JUlFfU09VUkNFX1ZVUERBVEU1LAogRENfSVJRX1NPVVJDRV9WVVBEQVRFNiwKCiBEQ19J
UlFfU09VUkNFX1ZCTEFOSzEsCiBEQ19JUlFfU09VUkNFX1ZCTEFOSzIsCiBEQ19JUlFfU09VUkNF
X1ZCTEFOSzMsCiBEQ19JUlFfU09VUkNFX1ZCTEFOSzQsCiBEQ19JUlFfU09VUkNFX1ZCTEFOSzUs
CiBEQ19JUlFfU09VUkNFX1ZCTEFOSzYsCgogRENfSVJRX1NPVVJDRV9EQzFfVkxJTkUwLAogRENf
SVJRX1NPVVJDRV9EQzJfVkxJTkUwLAogRENfSVJRX1NPVVJDRV9EQzNfVkxJTkUwLAogRENfSVJR
X1NPVVJDRV9EQzRfVkxJTkUwLAogRENfSVJRX1NPVVJDRV9EQzVfVkxJTkUwLAogRENfSVJRX1NP
VVJDRV9EQzZfVkxJTkUwLAoKIERDX0lSUV9TT1VSQ0VfREMxX1ZMSU5FMSwKIERDX0lSUV9TT1VS
Q0VfREMyX1ZMSU5FMSwKIERDX0lSUV9TT1VSQ0VfREMzX1ZMSU5FMSwKIERDX0lSUV9TT1VSQ0Vf
REM0X1ZMSU5FMSwKIERDX0lSUV9TT1VSQ0VfREM1X1ZMSU5FMSwKIERDX0lSUV9TT1VSQ0VfREM2
X1ZMSU5FMSwKCgogREFMX0lSUV9TT1VSQ0VTX05VTUJFUgp9OwoKZW51bSBpcnFfdHlwZQp7CiBJ
UlFfVFlQRV9QRkxJUCA9IERDX0lSUV9TT1VSQ0VfUEZMSVAxLAogSVJRX1RZUEVfVlVQREFURSA9
IERDX0lSUV9TT1VSQ0VfVlVQREFURTEsCiBJUlFfVFlQRV9WQkxBTksgPSBEQ19JUlFfU09VUkNF
X1ZCTEFOSzEsCn07CiMgMTczICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaXJxX3R5cGVzLmgiCmVudW0gZGNfaW50ZXJydXB0X2NvbnRleHQgewogSU5URVJSVVBU
X0xPV19JUlFfQ09OVEVYVCA9IDAsCiBJTlRFUlJVUFRfSElHSF9JUlFfQ09OVEVYVCwKIElOVEVS
UlVQVF9DT05URVhUX05VTUJFUgp9OwoKZW51bSBkY19pbnRlcnJ1cHRfcG9ybGFyaXR5IHsKIElO
VEVSUlVQVF9QT0xBUklUWV9ERUZBVUxUID0gMCwKIElOVEVSUlVQVF9QT0xBUklUWV9MT1cgPSBJ
TlRFUlJVUFRfUE9MQVJJVFlfREVGQVVMVCwKIElOVEVSUlVQVF9QT0xBUklUWV9ISUdILAogSU5U
RVJSVVBUX1BPTEFSSVRZX0JPVEgKfTsKCgoKCgoKc3RydWN0IGRjX3RpbWVyX2ludGVycnVwdF9w
YXJhbXMgewogdWludDMyX3QgbWljcm9fc2VjX2ludGVydmFsOwogZW51bSBkY19pbnRlcnJ1cHRf
Y29udGV4dCBpbnRfY29udGV4dDsKfTsKCnN0cnVjdCBkY19pbnRlcnJ1cHRfcGFyYW1zIHsKCgoK
IGVudW0gZGNfaW50ZXJydXB0X3Bvcmxhcml0eSByZXF1ZXN0ZWRfcG9sYXJpdHk7CgoKCgogZW51
bSBkY19pbnRlcnJ1cHRfcG9ybGFyaXR5IGN1cnJlbnRfcG9sYXJpdHk7CiBlbnVtIGRjX2lycV9z
b3VyY2UgaXJxX3NvdXJjZTsKIGVudW0gZGNfaW50ZXJydXB0X2NvbnRleHQgaW50X2NvbnRleHQ7
Cn07CiMgMzUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190
eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RjX2RwX3R5cGVzLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RjX2RwX3R5cGVzLmgiCmVudW0gZGNfbGFuZV9jb3VudCB7CiBMQU5FX0NPVU5U
X1VOS05PV04gPSAwLAogTEFORV9DT1VOVF9PTkUgPSAxLAogTEFORV9DT1VOVF9UV08gPSAyLAog
TEFORV9DT1VOVF9GT1VSID0gNCwKIExBTkVfQ09VTlRfRUlHSFQgPSA4LAogTEFORV9DT1VOVF9E
UF9NQVggPSBMQU5FX0NPVU5UX0ZPVVIKfTsKIyA0NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2RwX3R5cGVzLmgiCmVudW0gZGNfbGlua19yYXRlIHsKIExJ
TktfUkFURV9VTktOT1dOID0gMCwKIExJTktfUkFURV9MT1cgPSAweDA2LAogTElOS19SQVRFX1JB
VEVfMiA9IDB4MDgsCiBMSU5LX1JBVEVfUkFURV8zID0gMHgwOSwKIExJTktfUkFURV9ISUdIID0g
MHgwQSwKIExJTktfUkFURV9SQlIyID0gMHgwQywKIExJTktfUkFURV9SQVRFXzYgPSAweDEwLAog
TElOS19SQVRFX0hJR0gyID0gMHgxNCwKIExJTktfUkFURV9ISUdIMyA9IDB4MUUKfTsKCmVudW0g
ZGNfbGlua19zcHJlYWQgewogTElOS19TUFJFQURfRElTQUJMRUQgPSAweDAwLAoKIExJTktfU1BS
RUFEXzA1X0RPV05TUFJFQURfMzBLSFogPSAweDEwLAoKIExJTktfU1BSRUFEXzA1X0RPV05TUFJF
QURfMzNLSFogPSAweDExCn07CgplbnVtIGRjX3ZvbHRhZ2Vfc3dpbmcgewogVk9MVEFHRV9TV0lO
R19MRVZFTDAgPSAwLAogVk9MVEFHRV9TV0lOR19MRVZFTDEsCiBWT0xUQUdFX1NXSU5HX0xFVkVM
MiwKIFZPTFRBR0VfU1dJTkdfTEVWRUwzLAogVk9MVEFHRV9TV0lOR19NQVhfTEVWRUwgPSBWT0xU
QUdFX1NXSU5HX0xFVkVMMwp9OwoKZW51bSBkY19wcmVfZW1waGFzaXMgewogUFJFX0VNUEhBU0lT
X0RJU0FCTEVEID0gMCwKIFBSRV9FTVBIQVNJU19MRVZFTDEsCiBQUkVfRU1QSEFTSVNfTEVWRUwy
LAogUFJFX0VNUEhBU0lTX0xFVkVMMywKIFBSRV9FTVBIQVNJU19NQVhfTEVWRUwgPSBQUkVfRU1Q
SEFTSVNfTEVWRUwzCn07CgoKCmVudW0gZGNfcG9zdF9jdXJzb3IyIHsKIFBPU1RfQ1VSU09SMl9E
SVNBQkxFRCA9IDAsCiBQT1NUX0NVUlNPUjJfTEVWRUwxLAogUE9TVF9DVVJTT1IyX0xFVkVMMiwK
IFBPU1RfQ1VSU09SMl9MRVZFTDMsCiBQT1NUX0NVUlNPUjJfTUFYX0xFVkVMID0gUE9TVF9DVVJT
T1IyX0xFVkVMMywKfTsKCmVudW0gZGNfZHBfdHJhaW5pbmdfcGF0dGVybiB7CiBEUF9UUkFJTklO
R19QQVRURVJOX1NFUVVFTkNFXzEgPSAwLAogRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVFVRU5DRV8y
LAogRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVFVRU5DRV8zLAogRFBfVFJBSU5JTkdfUEFUVEVSTl9T
RVFVRU5DRV80LAp9OwoKc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgewogZW51bSBkY19sYW5lX2Nv
dW50IGxhbmVfY291bnQ7CiBlbnVtIGRjX2xpbmtfcmF0ZSBsaW5rX3JhdGU7CiBlbnVtIGRjX2xp
bmtfc3ByZWFkIGxpbmtfc3ByZWFkOwogYm9vbCB1c2VfbGlua19yYXRlX3NldDsKIHVpbnQ4X3Qg
bGlua19yYXRlX3NldDsKfTsKCnN0cnVjdCBkY19sYW5lX3NldHRpbmdzIHsKIGVudW0gZGNfdm9s
dGFnZV9zd2luZyBWT0xUQUdFX1NXSU5HOwogZW51bSBkY19wcmVfZW1waGFzaXMgUFJFX0VNUEhB
U0lTOwogZW51bSBkY19wb3N0X2N1cnNvcjIgUE9TVF9DVVJTT1IyOwp9OwoKc3RydWN0IGRjX2xp
bmtfdHJhaW5pbmdfc2V0dGluZ3Mgewogc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgbGluazsKIHN0
cnVjdCBkY19sYW5lX3NldHRpbmdzIGxhbmVfc2V0dGluZ3NbTEFORV9DT1VOVF9EUF9NQVhdOwp9
OwoKc3RydWN0IGRjX2xpbmtfdHJhaW5pbmdfb3ZlcnJpZGVzIHsKIGVudW0gZGNfdm9sdGFnZV9z
d2luZyAqdm9sdGFnZV9zd2luZzsKIGVudW0gZGNfcHJlX2VtcGhhc2lzICpwcmVfZW1waGFzaXM7
CiBlbnVtIGRjX3Bvc3RfY3Vyc29yMiAqcG9zdF9jdXJzb3IyOwoKIHVpbnQxNl90ICpjcl9wYXR0
ZXJuX3RpbWU7CiB1aW50MTZfdCAqZXFfcGF0dGVybl90aW1lOwogZW51bSBkY19kcF90cmFpbmlu
Z19wYXR0ZXJuICpwYXR0ZXJuX2Zvcl9lcTsKCiBlbnVtIGRjX2xpbmtfc3ByZWFkICpkb3duc3By
ZWFkOwogYm9vbCAqYWx0ZXJuYXRlX3NjcmFtYmxlcl9yZXNldDsKIGJvb2wgKmVuaGFuY2VkX2Zy
YW1pbmc7CiBib29sICptc3RfZW5hYmxlOwogYm9vbCAqZmVjX2VuYWJsZTsKfTsKCnVuaW9uIGRw
Y2RfcmV2IHsKIHN0cnVjdCB7CiAgdWludDhfdCBNSU5PUjo0OwogIHVpbnQ4X3QgTUFKT1I6NDsK
IH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKdW5pb24gbWF4X2xhbmVfY291bnQgewogc3RydWN0
IHsKICB1aW50OF90IE1BWF9MQU5FX0NPVU5UOjU7CiAgdWludDhfdCBQT1NUX0xUX0FESl9SRVFf
U1VQUE9SVEVEOjE7CiAgdWludDhfdCBUUFMzX1NVUFBPUlRFRDoxOwogIHVpbnQ4X3QgRU5IQU5D
RURfRlJBTUVfQ0FQOjE7CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9uIG1heF9kb3du
X3NwcmVhZCB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgTUFYX0RPV05fU1BSRUFEOjE7CiAgdWludDhf
dCBSRVNFUlZFRDo1OwogIHVpbnQ4X3QgTk9fQVVYX0hBTkRTSEFLRV9MSU5LX1RSQUlOSU5HOjE7
CiAgdWludDhfdCBUUFM0X1NVUFBPUlRFRDoxOwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07Cgp1
bmlvbiBtc3RtX2NhcCB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgTVNUX0NBUDoxOwogIHVpbnQ4X3Qg
UkVTRVJWRUQ6NzsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKdW5pb24gbGFuZV9jb3VudF9z
ZXQgewogc3RydWN0IHsKICB1aW50OF90IExBTkVfQ09VTlRfU0VUOjU7CiAgdWludDhfdCBQT1NU
X0xUX0FESl9SRVFfR1JBTlRFRDoxOwogIHVpbnQ4X3QgUkVTRVJWRUQ6MTsKICB1aW50OF90IEVO
SEFOQ0VEX0ZSQU1JTkc6MTsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKdW5pb24gbGFuZV9z
dGF0dXMgewogc3RydWN0IHsKICB1aW50OF90IENSX0RPTkVfMDoxOwogIHVpbnQ4X3QgQ0hBTk5F
TF9FUV9ET05FXzA6MTsKICB1aW50OF90IFNZTUJPTF9MT0NLRURfMDoxOwogIHVpbnQ4X3QgUkVT
RVJWRUQwOjE7CiAgdWludDhfdCBDUl9ET05FXzE6MTsKICB1aW50OF90IENIQU5ORUxfRVFfRE9O
RV8xOjE7CiAgdWludDhfdCBTWU1CT0xfTE9DS0VEXzE6MTsKICB1aW50OF90IFJFU0VSVkVEXzE6
MTsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKdW5pb24gZGV2aWNlX3NlcnZpY2VfaXJxIHsK
IHN0cnVjdCB7CiAgdWludDhfdCBSRU1PVEVfQ09OVFJPTF9DTURfUEVORElORzoxOwogIHVpbnQ4
X3QgQVVUT01BVEVEX1RFU1Q6MTsKICB1aW50OF90IENQX0lSUToxOwogIHVpbnQ4X3QgTUNDU19J
UlE6MTsKICB1aW50OF90IERPV05fUkVQX01TR19SRFk6MTsKICB1aW50OF90IFVQX1JFUV9NU0df
UkRZOjE7CiAgdWludDhfdCBTSU5LX1NQRUNJRklDOjE7CiAgdWludDhfdCByZXNlcnZlZDoxOwog
fSBiaXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBzaW5rX2NvdW50IHsKIHN0cnVjdCB7CiAg
dWludDhfdCBTSU5LX0NPVU5UOjY7CiAgdWludDhfdCBDUFJFQURZOjE7CiAgdWludDhfdCBSRVNF
UlZFRDoxOwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBsYW5lX2FsaWduX3N0YXR1
c191cGRhdGVkIHsKIHN0cnVjdCB7CiAgdWludDhfdCBJTlRFUkxBTkVfQUxJR05fRE9ORToxOwog
IHVpbnQ4X3QgUE9TVF9MVF9BREpfUkVRX0lOX1BST0dSRVNTOjE7CiAgdWludDhfdCBSRVNFUlZF
RDo0OwogIHVpbnQ4X3QgRE9XTlNUUkVBTV9QT1JUX1NUQVRVU19DSEFOR0VEOjE7CiAgdWludDhf
dCBMSU5LX1NUQVRVU19VUERBVEVEOjE7CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9u
IGxhbmVfYWRqdXN0IHsKIHN0cnVjdCB7CiAgdWludDhfdCBWT0xUQUdFX1NXSU5HX0xBTkU6MjsK
ICB1aW50OF90IFBSRV9FTVBIQVNJU19MQU5FOjI7CiAgdWludDhfdCBSRVNFUlZFRDo0OwogfSBi
aXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBkcGNkX3RyYWluaW5nX3BhdHRlcm4gewogc3Ry
dWN0IHsKICB1aW50OF90IFRSQUlOSU5HX1BBVFRFUk5fU0VUOjQ7CiAgdWludDhfdCBSRUNPVkVS
RURfQ0xPQ0tfT1VUX0VOOjE7CiAgdWludDhfdCBTQ1JBTUJMSU5HX0RJU0FCTEU6MTsKICB1aW50
OF90IFNZTUJPTF9FUlJPUl9DT1VOVF9TRUw6MjsKIH0gdjFfNDsKIHN0cnVjdCB7CiAgdWludDhf
dCBUUkFJTklOR19QQVRURVJOX1NFVDoyOwogIHVpbnQ4X3QgTElOS19RVUFMX1BBVFRFUk5fU0VU
OjI7CiAgdWludDhfdCBSRVNFUlZFRDo0OwogfSB2MV8zOwogdWludDhfdCByYXc7Cn07CgoKCgp1
bmlvbiBkcGNkX3RyYWluaW5nX2xhbmUgewogc3RydWN0IHsKICB1aW50OF90IFZPTFRBR0VfU1dJ
TkdfU0VUOjI7CiAgdWludDhfdCBNQVhfU1dJTkdfUkVBQ0hFRDoxOwogIHVpbnQ4X3QgUFJFX0VN
UEhBU0lTX1NFVDoyOwogIHVpbnQ4X3QgTUFYX1BSRV9FTVBIQVNJU19SRUFDSEVEOjE7CiAgdWlu
dDhfdCBSRVNFUlZFRDoyOwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07CgoKdW5pb24gZHduc3Ry
ZWFtX3BvcnRfY2Fwc19ieXRlMCB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgRFdOX1NUUk1fUE9SVFhf
VFlQRTozOwogIHVpbnQ4X3QgRFdOX1NUUk1fUE9SVFhfSFBEOjE7CiAgdWludDhfdCBSRVNFUlZF
UkQ6NDsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKCmVudW0gZHBjZF9kb3duc3RyZWFtX3Bv
cnRfZGV0YWlsZWRfdHlwZSB7CiBET1dOX1NUUkVBTV9ERVRBSUxFRF9EUCA9IDAsCiBET1dOX1NU
UkVBTV9ERVRBSUxFRF9WR0EsCiBET1dOX1NUUkVBTV9ERVRBSUxFRF9EVkksCiBET1dOX1NUUkVB
TV9ERVRBSUxFRF9IRE1JLAogRE9XTl9TVFJFQU1fREVUQUlMRURfTk9ORERDLAogRE9XTl9TVFJF
QU1fREVUQUlMRURfRFBfUExVU19QTFVTCn07Cgp1bmlvbiBkd25zdHJlYW1fcG9ydF9jYXBzX2J5
dGUyIHsKIHN0cnVjdCB7CiAgdWludDhfdCBNQVhfQklUU19QRVJfQ09MT1JfQ09NUE9ORU5UOjI7
CiAgdWludDhfdCBSRVNFUlZFRDo2OwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBk
cF9kb3duc3RyZWFtX3BvcnRfcHJlc2VudCB7CiB1aW50OF90IGJ5dGU7CiBzdHJ1Y3QgewogIHVp
bnQ4X3QgUE9SVF9QUkVTRU5UOjE7CiAgdWludDhfdCBQT1JUX1RZUEU6MjsKICB1aW50OF90IEZN
VF9DT05WRVJTSU9OOjE7CiAgdWludDhfdCBERVRBSUxFRF9DQVBTOjE7CiAgdWludDhfdCBSRVNF
UlZFRDozOwogfSBmaWVsZHM7Cn07Cgp1bmlvbiBkd25zdHJlYW1fcG9ydF9jYXBzX2J5dGUzX2R2
aSB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgUkVTRVJWRUQxOjE7CiAgdWludDhfdCBEVUFMX0xJTks6
MTsKICB1aW50OF90IEhJR0hfQ09MT1JfREVQVEg6MTsKICB1aW50OF90IFJFU0VSVkVEMjo1Owog
fSBiaXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBkd25zdHJlYW1fcG9ydF9jYXBzX2J5dGUz
X2hkbWkgewogc3RydWN0IHsKICB1aW50OF90IEZSQU1FX1NFUV9UT19GUkFNRV9QQUNLOjE7CiAg
dWludDhfdCBZQ3JDcjQyMl9QQVNTX1RIUk9VR0g6MTsKICB1aW50OF90IFlDckNyNDIwX1BBU1Nf
VEhST1VHSDoxOwogIHVpbnQ4X3QgWUNyQ3I0MjJfQ09OVkVSU0lPTjoxOwogIHVpbnQ4X3QgWUNy
Q3I0MjBfQ09OVkVSU0lPTjoxOwogIHVpbnQ4X3QgUkVTRVJWRUQ6MzsKIH0gYml0czsKIHVpbnQ4
X3QgcmF3Owp9OwoKCgp1bmlvbiBkd25zdHJlYW1fcG9ydHhjYXBzIHsKIHN0cnVjdCB7CiAgdW5p
b24gZHduc3RyZWFtX3BvcnRfY2Fwc19ieXRlMCBieXRlMDsKICB1bnNpZ25lZCBjaGFyIG1heF9U
TURTX2Nsb2NrOwogIHVuaW9uIGR3bnN0cmVhbV9wb3J0X2NhcHNfYnl0ZTIgYnl0ZTI7CgogIHVu
aW9uIHsKICAgdW5pb24gZHduc3RyZWFtX3BvcnRfY2Fwc19ieXRlM19kdmkgYnl0ZURWSTsKICAg
dW5pb24gZHduc3RyZWFtX3BvcnRfY2Fwc19ieXRlM19oZG1pIGJ5dGVIRE1JOwogIH0gYnl0ZTM7
CiB9IGJ5dGVzOwoKIHVuc2lnbmVkIGNoYXIgcmF3WzRdOwp9OwoKdW5pb24gZG93bnN0cmVhbV9w
b3J0IHsKIHN0cnVjdCB7CiAgdW5zaWduZWQgY2hhciBwcmVzZW50OjE7CiAgdW5zaWduZWQgY2hh
ciB0eXBlOjI7CiAgdW5zaWduZWQgY2hhciBmb3JtYXRfY29udjoxOwogIHVuc2lnbmVkIGNoYXIg
ZGV0YWlsZWRfY2FwczoxOwogIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQ6MzsKIH0gYml0czsKIHVu
c2lnbmVkIGNoYXIgcmF3Owp9OwoKCnVuaW9uIHNpbmtfc3RhdHVzIHsKIHN0cnVjdCB7CiAgdWlu
dDhfdCBSWF9QT1JUMF9TVEFUVVM6MTsKICB1aW50OF90IFJYX1BPUlQxX1NUQVRVUzoxOwogIHVp
bnQ4X3QgUkVTRVJWRUQ6NjsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKCgp1bmlvbiBocGRf
aXJxX2RhdGEgewogc3RydWN0IHsKICB1bmlvbiBzaW5rX2NvdW50IHNpbmtfY250OwogIHVuaW9u
IGRldmljZV9zZXJ2aWNlX2lycSBkZXZpY2Vfc2VydmljZV9pcnE7CiAgdW5pb24gbGFuZV9zdGF0
dXMgbGFuZTAxX3N0YXR1czsKICB1bmlvbiBsYW5lX3N0YXR1cyBsYW5lMjNfc3RhdHVzOwogIHVu
aW9uIGxhbmVfYWxpZ25fc3RhdHVzX3VwZGF0ZWQgbGFuZV9zdGF0dXNfdXBkYXRlZDsKICB1bmlv
biBzaW5rX3N0YXR1cyBzaW5rX3N0YXR1czsKIH0gYnl0ZXM7CiB1aW50OF90IHJhd1s2XTsKfTsK
CnVuaW9uIGRvd25fc3RyZWFtX3BvcnRfY291bnQgewogc3RydWN0IHsKICB1aW50OF90IERPV05f
U1RSX1BPUlRfQ09VTlQ6NDsKICB1aW50OF90IFJFU0VSVkVEOjI7CgoKCgogIHVpbnQ4X3QgSUdO
T1JFX01TQV9USU1JTkdfUEFSQU06MTsKCgoKCiAgdWludDhfdCBPVUlfU1VQUE9SVDoxOwogfSBi
aXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBkb3duX3NwcmVhZF9jdHJsIHsKIHN0cnVjdCB7
CiAgdWludDhfdCBSRVNFUlZFRDE6NDsKCgoKCiAgdWludDhfdCBTUFJFQURfQU1QOjE7CiAgdWlu
dDhfdCBSRVNFUlZFRDI6MjsKCgoKICB1aW50OF90IElHTk9SRV9NU0FfVElNSU5HX1BBUkFNOjE7
CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9uIGRwY2RfZWRwX2NvbmZpZyB7CiBzdHJ1
Y3QgewogIHVpbnQ4X3QgUEFORUxfTU9ERV9FRFA6MTsKICB1aW50OF90IEZSQU1JTkdfQ0hBTkdF
X0VOQUJMRToxOwogIHVpbnQ4X3QgUkVTRVJWRUQ6NTsKICB1aW50OF90IFBBTkVMX1NFTEZfVEVT
VF9FTkFCTEU6MTsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKc3RydWN0IGRwX2RldmljZV92
ZW5kb3JfaWQgewogdWludDhfdCBpZWVlX291aVszXTsKIHVpbnQ4X3QgaWVlZV9kZXZpY2VfaWRb
Nl07Cn07CgpzdHJ1Y3QgZHBfc2lua19od19md19yZXZpc2lvbiB7CiB1aW50OF90IGllZWVfaHdf
cmV2OwogdWludDhfdCBpZWVlX2Z3X3JldlsyXTsKfTsKCgp1bmlvbiBlZHBfY29uZmlndXJhdGlv
bl9jYXAgewogc3RydWN0IHsKICB1aW50OF90IEFMVF9TQ1JBTUJMRVJfUkVTRVQ6MTsKICB1aW50
OF90IEZSQU1JTkdfQ0hBTkdFOjE7CiAgdWludDhfdCBSRVNFUlZFRDoxOwogIHVpbnQ4X3QgRFBD
RF9ESVNQTEFZX0NPTlRST0xfQ0FQQUJMRToxOwogIHVpbnQ4X3QgUkVTRVJWRUQyOjQ7CiB9IGJp
dHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9uIGRwcnhfZmVhdHVyZSB7CiBzdHJ1Y3QgewogIHVp
bnQ4X3QgR1RDX0NBUDoxOwogIHVpbnQ4X3QgU1NUX1NQTElUX1NEUF9DQVA6MTsKICB1aW50OF90
IEFWX1NZTkNfQ0FQOjE7CiAgdWludDhfdCBWU0NfU0RQX0NPTE9SSU1FVFJZX1NVUFBPUlRFRDox
OwogIHVpbnQ4X3QgVlNDX0VYVF9WRVNBX1NEUF9TVVBQT1JURUQ6MTsKICB1aW50OF90IFZTQ19F
WFRfVkVTQV9TRFBfQ0hBSU5JTkdfU1VQUE9SVEVEOjE7CiAgdWludDhfdCBWU0NfRVhUX0NFQV9T
RFBfU1VQUE9SVEVEOjE7CiAgdWludDhfdCBWU0NfRVhUX0NFQV9TRFBfQ0hBSU5JTkdfU1VQUE9S
VEVEOjE7CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9uIHRyYWluaW5nX2F1eF9yZF9p
bnRlcnZhbCB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgVFJBSU5JR19BVVhfUkRfSU5URVJWQUw6NzsK
ICB1aW50OF90IEVYVF9SRUNFSVZFUl9DQVBfRklFTERfUFJFU0VOVDoxOwogfSBiaXRzOwogdWlu
dDhfdCByYXc7Cn07CgoKdW5pb24gdGVzdF9yZXF1ZXN0IHsKIHN0cnVjdCB7CiB1aW50OF90IExJ
TktfVFJBSU5JTkcgOjE7CiB1aW50OF90IExJTktfVEVTVF9QQVRUUk4gOjE7CiB1aW50OF90IEVE
SURfUkVBRCA6MTsKIHVpbnQ4X3QgUEhZX1RFU1RfUEFUVEVSTiA6MTsKIHVpbnQ4X3QgUkVTRVJW
RUQgOjE7CiB1aW50OF90IEFVRElPX1RFU1RfUEFUVEVSTiA6MTsKIHVpbnQ4X3QgVEVTVF9BVURJ
T19ESVNBQkxFRF9WSURFTyA6MTsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKdW5pb24gdGVz
dF9yZXNwb25zZSB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgQUNLIDoxOwogIHVpbnQ4X3QgTk9fQUNL
IDoxOwogIHVpbnQ4X3QgRURJRF9DSEVDS1NVTV9XUklURToxOwogIHVpbnQ4X3QgUkVTRVJWRUQg
OjU7CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9uIHBoeV90ZXN0X3BhdHRlcm4gewog
c3RydWN0IHsKCgoKICB1aW50OF90IFBBVFRFUk4gOjM7CgogIHVpbnQ4X3QgUkVTRVJWRUQgOjU7
CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCgp1bmlvbiBjb21wbGlhbmNlX3Rlc3Rfc3RhdGUg
ewogc3RydWN0IHsKICB1bnNpZ25lZCBjaGFyIFNURVJFT18zRF9SVU5OSU5HIDogMTsKICB1bnNp
Z25lZCBjaGFyIFJFU0VSVkVEIDogNzsKIH0gYml0czsKIHVuc2lnbmVkIGNoYXIgcmF3Owp9OwoK
dW5pb24gbGlua190ZXN0X3BhdHRlcm4gewogc3RydWN0IHsKCiAgdW5zaWduZWQgY2hhciBQQVRU
RVJOIDoyOwogIHVuc2lnbmVkIGNoYXIgUkVTRVJWRUQ6NjsKIH0gYml0czsKIHVuc2lnbmVkIGNo
YXIgcmF3Owp9OwoKdW5pb24gdGVzdF9taXNjIHsKIHN0cnVjdCBkcGNkX3Rlc3RfbWlzY19iaXRz
IHsKICB1bnNpZ25lZCBjaGFyIFNZTkNfQ0xPQ0sgOjE7CgogIHVuc2lnbmVkIGNoYXIgQ0xSX0ZP
Uk1BVCA6MjsKCiAgdW5zaWduZWQgY2hhciBEWU5fUkFOR0UgOjE7CiAgdW5zaWduZWQgY2hhciBZ
Q0JDUl9DT0VGUyA6MTsKCiAgdW5zaWduZWQgY2hhciBCUEMgOjM7CiB9IGJpdHM7CiB1bnNpZ25l
ZCBjaGFyIHJhdzsKfTsKCnVuaW9uIGF1ZGlvX3Rlc3RfbW9kZSB7CiBzdHJ1Y3QgewogIHVuc2ln
bmVkIGNoYXIgc2FtcGxpbmdfcmF0ZSA6NDsKICB1bnNpZ25lZCBjaGFyIGNoYW5uZWxfY291bnQg
OjQ7CiB9IGJpdHM7CiB1bnNpZ25lZCBjaGFyIHJhdzsKfTsKCnVuaW9uIGF1ZGlvX3Rlc3RfcGF0
dGVybl9wZXJpb2Qgewogc3RydWN0IHsKICB1bnNpZ25lZCBjaGFyIHBhdHRlcm5fcGVyaW9kIDo0
OwogIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQgOjQ7CiB9IGJpdHM7CiB1bnNpZ25lZCBjaGFyIHJh
dzsKfTsKCnN0cnVjdCBhdWRpb190ZXN0X3BhdHRlcm5fdHlwZSB7CiB1bnNpZ25lZCBjaGFyIHZh
bHVlOwp9OwoKc3RydWN0IGRwX2F1ZGlvX3Rlc3RfZGF0YV9mbGFncyB7CiB1aW50OF90IHRlc3Rf
cmVxdWVzdGVkIDoxOwogdWludDhfdCBkaXNhYmxlX3ZpZGVvIDoxOwp9OwoKc3RydWN0IGRwX2F1
ZGlvX3Rlc3RfZGF0YSB7Cgogc3RydWN0IGRwX2F1ZGlvX3Rlc3RfZGF0YV9mbGFncyBmbGFnczsK
IHVpbnQ4X3Qgc2FtcGxpbmdfcmF0ZTsKIHVpbnQ4X3QgY2hhbm5lbF9jb3VudDsKIHVpbnQ4X3Qg
cGF0dGVybl90eXBlOwogdWludDhfdCBwYXR0ZXJuX3BlcmlvZFs4XTsKfTsKCgp1bmlvbiBkcGNk
X2ZlY19jYXBhYmlsaXR5IHsKIHN0cnVjdCB7CiAgdWludDhfdCBGRUNfQ0FQQUJMRToxOwogIHVp
bnQ4X3QgVU5DT1JSRUNURURfQkxPQ0tfRVJST1JfQ09VTlRfQ0FQQUJMRToxOwogIHVpbnQ4X3Qg
Q09SUkVDVEVEX0JMT0NLX0VSUk9SX0NPVU5UX0NBUEFCTEU6MTsKICB1aW50OF90IEJJVF9FUlJP
Ul9DT1VOVF9DQVBBQkxFOjE7CiAgdWludDhfdCBSRVNFUlZFRDo0OwogfSBiaXRzOwogdWludDhf
dCByYXc7Cn07CgoKc3RydWN0IGRwY2RfZHNjX3N1cHBvcnQgewogdWludDhfdCBEU0NfU1VQUE9S
VCA6MTsKIHVpbnQ4X3QgRFNDX1BBU1NUSFJPVUdIX1NVUFBPUlQgOjE7CiB1aW50OF90IFJFU0VS
VkVEIDo2Owp9OwoKc3RydWN0IGRwY2RfZHNjX2FsZ29yaXRobV9yZXZpc2lvbiB7CiB1aW50OF90
IERTQ19WRVJTSU9OX01BSk9SIDo0OwogdWludDhfdCBEU0NfVkVSU0lPTl9NSU5PUiA6NDsKfTsK
CnN0cnVjdCBkcGNkX2RzY19yY19idWZmZXJfYmxvY2tfc2l6ZSB7CiB1aW50OF90IFJDX0JMT0NL
X0JVRkZFUl9TSVpFIDoyOwogdWludDhfdCBSRVNFUlZFRCA6NjsKfTsKCnN0cnVjdCBkcGNkX2Rz
Y19zbGljZV9jYXBhYmlsaXR5MSB7CiB1aW50OF90IE9ORV9TTElDRV9QRVJfRFBfRFNDX1NJTktf
REVWSUNFIDoxOwogdWludDhfdCBUV09fU0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0UgOjE7
CiB1aW50OF90IFJFU0VSVkVEIDoxOwogdWludDhfdCBGT1VSX1NMSUNFU19QRVJfRFBfRFNDX1NJ
TktfREVWSUNFIDoxOwogdWludDhfdCBTSVhfU0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0Ug
OjE7CiB1aW50OF90IEVJR0hUX1NMSUNFU19QRVJfRFBfRFNDX1NJTktfREVWSUNFIDoxOwogdWlu
dDhfdCBURU5fU0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0UgOjE7CiB1aW50OF90IFRXRUxW
RV9TTElDRVNfUEVSX0RQX0RTQ19TSU5LX0RFVklDRSA6MTsKfTsKCnN0cnVjdCBkcGNkX2RzY19s
aW5lX2J1ZmZlcl9iaXRfZGVwdGggewogdWludDhfdCBMSU5FX0JVRkZFUl9CSVRfREVQVEggOjQ7
CiB1aW50OF90IFJFU0VSVkVEIDo0Owp9OwoKc3RydWN0IGRwY2RfZHNjX2Jsb2NrX3ByZWRpY3Rp
b25fc3VwcG9ydCB7CiB1aW50OF90IEJMT0NLX1BSRURJQ1RJT05fU1VQUE9SVDoxOwogdWludDhf
dCBSRVNFUlZFRCA6NzsKfTsKCnN0cnVjdCBkcGNkX21heGltdW1fYml0c19wZXJfcGl4ZWxfc3Vw
cG9ydGVkX2J5X3RoZV9kZWNvbXByZXNzb3IgewogdWludDhfdCBNQVhJTVVNX0JJVFNfUEVSX1BJ
WEVMX1NVUFBPUlRFRF9CWV9USEVfREVDT01QUkVTU09SX0xPVyA6NzsKIHVpbnQ4X3QgTUFYSU1V
TV9CSVRTX1BFUl9QSVhFTF9TVVBQT1JURURfQllfVEhFX0RFQ09NUFJFU1NPUl9ISUdIIDo3Owog
dWludDhfdCBSRVNFUlZFRCA6MjsKfTsKCnN0cnVjdCBkcGNkX2RzY19kZWNvZGVyX2NvbG9yX2Zv
cm1hdF9jYXBhYmlsaXRpZXMgewogdWludDhfdCBSR0JfU1VQUE9SVCA6MTsKIHVpbnQ4X3QgWV9D
Ql9DUl80NDRfU1VQUE9SVCA6MTsKIHVpbnQ4X3QgWV9DQl9DUl9TSU1QTEVfNDIyX1NVUFBPUlQg
OjE7CiB1aW50OF90IFlfQ0JfQ1JfTkFUSVZFXzQyMl9TVVBQT1JUIDoxOwogdWludDhfdCBZX0NC
X0NSX05BVElWRV80MjBfU1VQUE9SVCA6MTsKIHVpbnQ4X3QgUkVTRVJWRUQgOjM7Cn07CgpzdHJ1
Y3QgZHBjZF9kc2NfZGVjb2Rlcl9jb2xvcl9kZXB0aF9jYXBhYmlsaXRpZXMgewogdWludDhfdCBS
RVNFUlZFRDAgOjE7CiB1aW50OF90IEVJR0hUX0JJVFNfUEVSX0NPTE9SX1NVUFBPUlQgOjE7CiB1
aW50OF90IFRFTl9CSVRTX1BFUl9DT0xPUl9TVVBQT1JUIDoxOwogdWludDhfdCBUV0VMVkVfQklU
U19QRVJfQ09MT1JfU1VQUE9SVCA6MTsKIHVpbnQ4X3QgUkVTRVJWRUQxIDo0Owp9OwoKc3RydWN0
IGRwY2RfcGVha19kc2NfdGhyb3VnaHB1dF9kc2Nfc2luayB7CiB1aW50OF90IFRIUk9VR0hQVVRf
TU9ERV8wOjQ7CiB1aW50OF90IFRIUk9VR0hQVVRfTU9ERV8xOjQ7Cn07CgpzdHJ1Y3QgZHBjZF9k
c2Nfc2xpY2VfY2FwYWJpbGl0aWVzXzIgewogdWludDhfdCBTSVhURUVOX1NMSUNFU19QRVJfRFND
X1NJTktfREVWSUNFIDoxOwogdWludDhfdCBUV0VOVFlfU0xJQ0VTX1BFUl9EU0NfU0lOS19ERVZJ
Q0UgOjE7CiB1aW50OF90IFRXRU5UWUZPVVJfU0xJQ0VTX1BFUl9EU0NfU0lOS19ERVZJQ0UgOjE7
CiB1aW50OF90IFJFU0VSVkVEIDo1Owp9OwoKc3RydWN0IGRwY2RfYml0c19wZXJfcGl4ZWxfaW5j
cmVtZW50ewogdWludDhfdCBJTkNSRU1FTlRfT0ZfQklUU19QRVJfUElYRUxfU1VQUE9SVEVEIDoz
OwogdWludDhfdCBSRVNFUlZFRCA6NTsKfTsKdW5pb24gZHBjZF9kc2NfYmFzaWNfY2FwYWJpbGl0
aWVzIHsKIHN0cnVjdCB7CiAgc3RydWN0IGRwY2RfZHNjX3N1cHBvcnQgZHNjX3N1cHBvcnQ7CiAg
c3RydWN0IGRwY2RfZHNjX2FsZ29yaXRobV9yZXZpc2lvbiBkc2NfYWxnb3JpdGhtX3JldmlzaW9u
OwogIHN0cnVjdCBkcGNkX2RzY19yY19idWZmZXJfYmxvY2tfc2l6ZSBkc2NfcmNfYnVmZmVyX2Js
b2NrX3NpemU7CiAgdWludDhfdCBkc2NfcmNfYnVmZmVyX3NpemU7CiAgc3RydWN0IGRwY2RfZHNj
X3NsaWNlX2NhcGFiaWxpdHkxIGRzY19zbGljZV9jYXBhYmlsaXRpZXNfMTsKICBzdHJ1Y3QgZHBj
ZF9kc2NfbGluZV9idWZmZXJfYml0X2RlcHRoIGRzY19saW5lX2J1ZmZlcl9iaXRfZGVwdGg7CiAg
c3RydWN0IGRwY2RfZHNjX2Jsb2NrX3ByZWRpY3Rpb25fc3VwcG9ydCBkc2NfYmxvY2tfcHJlZGlj
dGlvbl9zdXBwb3J0OwogIHN0cnVjdCBkcGNkX21heGltdW1fYml0c19wZXJfcGl4ZWxfc3VwcG9y
dGVkX2J5X3RoZV9kZWNvbXByZXNzb3IgbWF4aW11bV9iaXRzX3Blcl9waXhlbF9zdXBwb3J0ZWRf
YnlfdGhlX2RlY29tcHJlc3NvcjsKICBzdHJ1Y3QgZHBjZF9kc2NfZGVjb2Rlcl9jb2xvcl9mb3Jt
YXRfY2FwYWJpbGl0aWVzIGRzY19kZWNvZGVyX2NvbG9yX2Zvcm1hdF9jYXBhYmlsaXRpZXM7CiAg
c3RydWN0IGRwY2RfZHNjX2RlY29kZXJfY29sb3JfZGVwdGhfY2FwYWJpbGl0aWVzIGRzY19kZWNv
ZGVyX2NvbG9yX2RlcHRoX2NhcGFiaWxpdGllczsKICBzdHJ1Y3QgZHBjZF9wZWFrX2RzY190aHJv
dWdocHV0X2RzY19zaW5rIHBlYWtfZHNjX3Rocm91Z2hwdXRfZHNjX3Npbms7CiAgdWludDhfdCBk
c2NfbWF4aW11bV9zbGljZV93aWR0aDsKICBzdHJ1Y3QgZHBjZF9kc2Nfc2xpY2VfY2FwYWJpbGl0
aWVzXzIgZHNjX3NsaWNlX2NhcGFiaWxpdGllc18yOwogIHVpbnQ4X3QgcmVzZXJ2ZWQ7CiAgc3Ry
dWN0IGRwY2RfYml0c19wZXJfcGl4ZWxfaW5jcmVtZW50IGJpdHNfcGVyX3BpeGVsX2luY3JlbWVu
dDsKIH0gZmllbGRzOwogdWludDhfdCByYXdbMTZdOwp9OwoKdW5pb24gZHBjZF9kc2NfZXh0X2Nh
cGFiaWxpdGllcyB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgQlJBTkNIX09WRVJBTExfVEhST1VHSFBV
VF8wOwogIHVpbnQ4X3QgQlJBTkNIX09WRVJBTExfVEhST1VHSFBVVF8xOwogIHVpbnQ4X3QgQlJB
TkNIX01BWF9MSU5FX1dJRFRIOwogfSBmaWVsZHM7CiB1aW50OF90IHJhd1szXTsKfTsKCnN0cnVj
dCBkcGNkX2RzY19jYXBhYmlsaXRpZXMgewogdW5pb24gZHBjZF9kc2NfYmFzaWNfY2FwYWJpbGl0
aWVzIGRzY19iYXNpY19jYXBzOwogdW5pb24gZHBjZF9kc2NfZXh0X2NhcGFiaWxpdGllcyBkc2Nf
ZXh0X2NhcHM7Cn07CiMgMzYgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kY190eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvc2lnbmFsX3R5cGVzLmgiIDEKIyAzNCAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvc2lnbmFsX3R5cGVz
LmgiCmVudW0gc2lnbmFsX3R5cGUgewogU0lHTkFMX1RZUEVfTk9ORSA9IDBMLAogU0lHTkFMX1RZ
UEVfRFZJX1NJTkdMRV9MSU5LID0gKDEgPDwgMCksCiBTSUdOQUxfVFlQRV9EVklfRFVBTF9MSU5L
ID0gKDEgPDwgMSksCiBTSUdOQUxfVFlQRV9IRE1JX1RZUEVfQSA9ICgxIDw8IDIpLAogU0lHTkFM
X1RZUEVfTFZEUyA9ICgxIDw8IDMpLAogU0lHTkFMX1RZUEVfUkdCID0gKDEgPDwgNCksCiBTSUdO
QUxfVFlQRV9ESVNQTEFZX1BPUlQgPSAoMSA8PCA1KSwKIFNJR05BTF9UWVBFX0RJU1BMQVlfUE9S
VF9NU1QgPSAoMSA8PCA2KSwKIFNJR05BTF9UWVBFX0VEUCA9ICgxIDw8IDcpLAogU0lHTkFMX1RZ
UEVfVklSVFVBTCA9ICgxIDw8IDkpLAp9OwoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGNfaXNfaGRtaV90bWRzX3NpZ25hbChl
bnVtIHNpZ25hbF90eXBlIHNpZ25hbCkKewogcmV0dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVf
SERNSV9UWVBFX0EpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2hkbWlfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUg
c2lnbmFsKQp7CiByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9IRE1JX1RZUEVfQSk7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgZGNfaXNfZHBfc3N0X3NpZ25hbChlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCkKewogcmV0
dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUIHx8CiAgc2lnbmFsID09IFNJ
R05BTF9UWVBFX0VEUCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGNfaXNfZHBfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUg
c2lnbmFsKQp7CiByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9ESVNQTEFZX1BPUlQgfHwK
ICBzaWduYWwgPT0gU0lHTkFMX1RZUEVfRURQIHx8CiAgc2lnbmFsID09IFNJR05BTF9UWVBFX0RJ
U1BMQVlfUE9SVF9NU1QpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2VtYmVkZGVkX3NpZ25hbChlbnVtIHNpZ25h
bF90eXBlIHNpZ25hbCkKewogcmV0dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVfRURQIHx8IHNp
Z25hbCA9PSBTSUdOQUxfVFlQRV9MVkRTKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkY19pc19sdmRzX3NpZ25hbChlbnVt
IHNpZ25hbF90eXBlIHNpZ25hbCkKewogcmV0dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVfTFZE
Uyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgZGNfaXNfZHZpX3NpZ25hbChlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCkKewog
c3dpdGNoIChzaWduYWwpIHsKIGNhc2UgU0lHTkFMX1RZUEVfRFZJX1NJTkdMRV9MSU5LOgogY2Fz
ZSBTSUdOQUxfVFlQRV9EVklfRFVBTF9MSU5LOgogIHJldHVybiB0cnVlOwogYnJlYWs7CiBkZWZh
dWx0OgogIHJldHVybiBmYWxzZTsKIH0KfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkY19pc19kdmlfc2luZ2xlX2xpbmtfc2ln
bmFsKGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKQp7CiByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxf
VFlQRV9EVklfU0lOR0xFX0xJTkspOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2R1YWxfbGlua19zaWduYWwoZW51
bSBzaWduYWxfdHlwZSBzaWduYWwpCnsKIHJldHVybiAoc2lnbmFsID09IFNJR05BTF9UWVBFX0RW
SV9EVUFMX0xJTkspOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2F1ZGlvX2NhcGFibGVfc2lnbmFsKGVudW0gc2ln
bmFsX3R5cGUgc2lnbmFsKQp7CiByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9ESVNQTEFZ
X1BPUlQgfHwKICBzaWduYWwgPT0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUX01TVCB8fAogIGRj
X2lzX2hkbWlfc2lnbmFsKHNpZ25hbCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX3ZpcnR1YWxfc2lnbmFsKGVu
dW0gc2lnbmFsX3R5cGUgc2lnbmFsKQp7CiByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9W
SVJUVUFMKTsKfQojIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZGNfaHdfdHlwZXMuaCIgMgojIDQ1ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZGNfaHdfdHlwZXMuaCIKdW5pb24gbGFyZ2VfaW50ZWdlciB7CiBzdHJ1Y3Qg
ewogIHVpbnQzMl90IGxvd19wYXJ0OwogIGludDMyX3QgaGlnaF9wYXJ0OwogfTsKCiBzdHJ1Y3Qg
ewogIHVpbnQzMl90IGxvd19wYXJ0OwogIGludDMyX3QgaGlnaF9wYXJ0OwogfSB1OwoKIGludDY0
X3QgcXVhZF9wYXJ0Owp9OwoKCgplbnVtIGRjX3BsYW5lX2FkZHJfdHlwZSB7CiBQTE5fQUREUl9U
WVBFX0dSQVBISUNTID0gMCwKIFBMTl9BRERSX1RZUEVfR1JQSF9TVEVSRU8sCiBQTE5fQUREUl9U
WVBFX1ZJREVPX1BST0dSRVNTSVZFLAp9OwoKc3RydWN0IGRjX3BsYW5lX2FkZHJlc3MgewogZW51
bSBkY19wbGFuZV9hZGRyX3R5cGUgdHlwZTsKIGJvb2wgdG16X3N1cmZhY2U7CiB1bmlvbiB7CiAg
c3RydWN0ewogICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGFkZHI7CiAgIHVuaW9uIGxhcmdlX2ludGVn
ZXIgbWV0YV9hZGRyOwogICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGRjY19jb25zdF9jb2xvcjsKICB9
IGdycGg7CgoKICBzdHJ1Y3QgewogICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGxlZnRfYWRkcjsKICAg
dW5pb24gbGFyZ2VfaW50ZWdlciBsZWZ0X21ldGFfYWRkcjsKICAgdW5pb24gbGFyZ2VfaW50ZWdl
ciBsZWZ0X2RjY19jb25zdF9jb2xvcjsKCiAgIHVuaW9uIGxhcmdlX2ludGVnZXIgcmlnaHRfYWRk
cjsKICAgdW5pb24gbGFyZ2VfaW50ZWdlciByaWdodF9tZXRhX2FkZHI7CiAgIHVuaW9uIGxhcmdl
X2ludGVnZXIgcmlnaHRfZGNjX2NvbnN0X2NvbG9yOwoKICB9IGdycGhfc3RlcmVvOwoKCiAgc3Ry
dWN0IHsKICAgdW5pb24gbGFyZ2VfaW50ZWdlciBsdW1hX2FkZHI7CiAgIHVuaW9uIGxhcmdlX2lu
dGVnZXIgbHVtYV9tZXRhX2FkZHI7CiAgIHVuaW9uIGxhcmdlX2ludGVnZXIgbHVtYV9kY2NfY29u
c3RfY29sb3I7CgogICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGNocm9tYV9hZGRyOwogICB1bmlvbiBs
YXJnZV9pbnRlZ2VyIGNocm9tYV9tZXRhX2FkZHI7CiAgIHVuaW9uIGxhcmdlX2ludGVnZXIgY2hy
b21hX2RjY19jb25zdF9jb2xvcjsKICB9IHZpZGVvX3Byb2dyZXNzaXZlOwogfTsKCiB1bmlvbiBs
YXJnZV9pbnRlZ2VyIHBhZ2VfdGFibGVfYmFzZTsKCiB1aW50OF90IHZtaWQ7Cn07CgpzdHJ1Y3Qg
ZGNfc2l6ZSB7CiBpbnQgd2lkdGg7CiBpbnQgaGVpZ2h0Owp9OwoKc3RydWN0IHJlY3QgewogaW50
IHg7CiBpbnQgeTsKIGludCB3aWR0aDsKIGludCBoZWlnaHQ7Cn07CgpzdHJ1Y3QgcGxhbmVfc2l6
ZSB7CgoKCgogaW50IHN1cmZhY2VfcGl0Y2g7CiBpbnQgY2hyb21hX3BpdGNoOwogc3RydWN0IHJl
Y3Qgc3VyZmFjZV9zaXplOwogc3RydWN0IHJlY3QgY2hyb21hX3NpemU7Cn07CgpzdHJ1Y3QgZGNf
cGxhbmVfZGNjX3BhcmFtIHsKIGJvb2wgZW5hYmxlOwoKIGludCBtZXRhX3BpdGNoOwogYm9vbCBp
bmRlcGVuZGVudF82NGJfYmxrczsKCiBpbnQgbWV0YV9waXRjaF9jOwogYm9vbCBpbmRlcGVuZGVu
dF82NGJfYmxrc19jOwp9OwoKCmVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgewogU1VSRkFDRV9Q
SVhFTF9GT1JNQVRfR1JQSF9CRUdJTiA9IDAsCgogU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9Q
QUxFVEFfMjU2X0NPTE9SUyA9CiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9CRUdJTiwKCiBT
VVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FSR0IxNTU1LAoKIFNVUkZBQ0VfUElYRUxfRk9STUFU
X0dSUEhfUkdCNTY1LAoKIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQVJHQjg4ODgsCgogU1VS
RkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BQkdSODg4OCwKCiBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9H
UlBIX0FSR0IyMTAxMDEwLAoKIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQUJHUjIxMDEwMTAs
CgoKCiBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FCR1IyMTAxMDEwX1hSX0JJQVMsCgogU1VS
RkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BUkdCMTYxNjE2MTYsCgogU1VSRkFDRV9QSVhFTF9GT1JN
QVRfR1JQSF9BUkdCMTYxNjE2MTZGLAoKIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQUJHUjE2
MTYxNjE2RiwKCiBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX1JHQjExMTExMF9GSVgsCiBTVVJG
QUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0JHUjEwMTExMV9GSVgsCiBTVVJGQUNFX1BJWEVMX0ZPUk1B
VF9HUlBIX1JHQjExMTExMF9GTE9BVCwKIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQkdSMTAx
MTExX0ZMT0FULAogU1VSRkFDRV9QSVhFTF9GT1JNQVRfVklERU9fQkVHSU4sCiBTVVJGQUNFX1BJ
WEVMX0ZPUk1BVF9WSURFT180MjBfWUNiQ3IgPQogIFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJREVP
X0JFR0lOLAogU1VSRkFDRV9QSVhFTF9GT1JNQVRfVklERU9fNDIwX1lDckNiLAogU1VSRkFDRV9Q
SVhFTF9GT1JNQVRfVklERU9fNDIwXzEwYnBjX1lDYkNyLAogU1VSRkFDRV9QSVhFTF9GT1JNQVRf
VklERU9fNDIwXzEwYnBjX1lDckNiLAogIFNVUkZBQ0VfUElYRUxfRk9STUFUX1NVQlNBTVBMRV9F
TkQsCiBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT19BQ3JZQ2IyMTAxMDEwLAogU1VSRkFDRV9Q
SVhFTF9GT1JNQVRfVklERU9fQ3JZQ2JBMTAxMDEwMiwKIFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJ
REVPX0FZQ3JDYjg4ODgsCiBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9JTlZBTElECgoKfTsKCgoKCmVu
dW0gcGl4ZWxfZm9ybWF0IHsKCiBQSVhFTF9GT1JNQVRfVU5JTklUSUFMSVpFRCwKIFBJWEVMX0ZP
Uk1BVF9JTkRFWDgsCiBQSVhFTF9GT1JNQVRfUkdCNTY1LAogUElYRUxfRk9STUFUX0FSR0I4ODg4
LAogUElYRUxfRk9STUFUX0FSR0IyMTAxMDEwLAogUElYRUxfRk9STUFUX0FSR0IyMTAxMDEwX1hS
QklBUywKIFBJWEVMX0ZPUk1BVF9GUDE2LAoKIFBJWEVMX0ZPUk1BVF80MjBCUFA4LAogUElYRUxf
Rk9STUFUXzQyMEJQUDEwLAoKIFBJWEVMX0ZPUk1BVF9JTlZBTElELAoKIFBJWEVMX0ZPUk1BVF9H
UlBIX0JFR0lOID0gUElYRUxfRk9STUFUX0lOREVYOCwKIFBJWEVMX0ZPUk1BVF9HUlBIX0VORCA9
IFBJWEVMX0ZPUk1BVF9GUDE2LAogUElYRUxfRk9STUFUX1ZJREVPX0JFR0lOID0gUElYRUxfRk9S
TUFUXzQyMEJQUDgsCiBQSVhFTF9GT1JNQVRfVklERU9fRU5EID0gUElYRUxfRk9STUFUXzQyMEJQ
UDEwLAogUElYRUxfRk9STUFUX1VOS05PV04KfTsKCmVudW0gdGlsZV9zcGxpdF92YWx1ZXMgewog
RENfRElTUExBWV9NSUNST19USUxJTkcgPSAweDAsCiBEQ19USElOX01JQ1JPX1RJTElORyA9IDB4
MSwKIERDX0RFUFRIX01JQ1JPX1RJTElORyA9IDB4MiwKIERDX1JPVEFURURfTUlDUk9fVElMSU5H
ID0gMHgzLAp9OwoKZW51bSB0cmlwbGVCdWZmZXJfZW5hYmxlIHsKIERDX1RSSVBMRUJVRkZFUl9E
SVNBQkxFID0gMHgwLAogRENfVFJJUExFQlVGRkVSX0VOQUJMRSA9IDB4MSwKfTsKCgoKCmVudW0g
YXJyYXlfbW9kZV92YWx1ZXMgewogRENfQVJSQVlfTElORUFSX0dFTkVSQUwgPSAwLAogRENfQVJS
QVlfTElORUFSX0FMTElHTkVELAogRENfQVJSQVlfMURfVElMRURfVEhJTjEsCiBEQ19BUlJBWV8x
RF9USUxFRF9USElDSywKIERDX0FSUkFZXzJEX1RJTEVEX1RISU4xLAogRENfQVJSQVlfUFJUX1RJ
TEVEX1RISU4xLAogRENfQVJSQVlfUFJUXzJEX1RJTEVEX1RISU4xLAogRENfQVJSQVlfMkRfVElM
RURfVEhJQ0ssCiBEQ19BUlJBWV8yRF9USUxFRF9YX1RISUNLLAogRENfQVJSQVlfUFJUX1RJTEVE
X1RISUNLLAogRENfQVJSQVlfUFJUXzJEX1RJTEVEX1RISUNLLAogRENfQVJSQVlfUFJUXzNEX1RJ
TEVEX1RISU4xLAogRENfQVJSQVlfM0RfVElMRURfVEhJTjEsCiBEQ19BUlJBWV8zRF9USUxFRF9U
SElDSywKIERDX0FSUkFZXzNEX1RJTEVEX1hfVEhJQ0ssCiBEQ19BUlJBWV9QUlRfM0RfVElMRURf
VEhJQ0ssCn07CgplbnVtIHRpbGVfbW9kZV92YWx1ZXMgewogRENfQUREUl9TVVJGX01JQ1JPX1RJ
TElOR19ESVNQTEFZID0gMHgwLAogRENfQUREUl9TVVJGX01JQ1JPX1RJTElOR19OT05fRElTUExB
WSA9IDB4MSwKfTsKCmVudW0gc3dpenpsZV9tb2RlX3ZhbHVlcyB7CiBEQ19TV19MSU5FQVIgPSAw
LAogRENfU1dfMjU2Ql9TID0gMSwKIERDX1NXXzI1Nl9EID0gMiwKIERDX1NXXzI1Nl9SID0gMywK
IERDX1NXXzRLQl9TID0gNSwKIERDX1NXXzRLQl9EID0gNiwKIERDX1NXXzRLQl9SID0gNywKIERD
X1NXXzY0S0JfUyA9IDksCiBEQ19TV182NEtCX0QgPSAxMCwKIERDX1NXXzY0S0JfUiA9IDExLAog
RENfU1dfVkFSX1MgPSAxMywKIERDX1NXX1ZBUl9EID0gMTQsCiBEQ19TV19WQVJfUiA9IDE1LAog
RENfU1dfNjRLQl9TX1QgPSAxNywKIERDX1NXXzY0S0JfRF9UID0gMTgsCiBEQ19TV180S0JfU19Y
ID0gMjEsCiBEQ19TV180S0JfRF9YID0gMjIsCiBEQ19TV180S0JfUl9YID0gMjMsCiBEQ19TV182
NEtCX1NfWCA9IDI1LAogRENfU1dfNjRLQl9EX1ggPSAyNiwKIERDX1NXXzY0S0JfUl9YID0gMjcs
CiBEQ19TV19WQVJfU19YID0gMjksCiBEQ19TV19WQVJfRF9YID0gMzAsCiBEQ19TV19WQVJfUl9Y
ID0gMzEsCiBEQ19TV19NQVggPSAzMiwKIERDX1NXX1VOS05PV04gPSBEQ19TV19NQVgKfTsKCnVu
aW9uIGRjX3RpbGluZ19pbmZvIHsKCiBzdHJ1Y3QgewoKCgoKCiAgdW5zaWduZWQgaW50IG51bV9i
YW5rczsKCgoKCgogIHVuc2lnbmVkIGludCBiYW5rX3dpZHRoOwogIHVuc2lnbmVkIGludCBiYW5r
X3dpZHRoX2M7CgoKCgoKICB1bnNpZ25lZCBpbnQgYmFua19oZWlnaHQ7CiAgdW5zaWduZWQgaW50
IGJhbmtfaGVpZ2h0X2M7CgoKCiAgdW5zaWduZWQgaW50IHRpbGVfYXNwZWN0OwogIHVuc2lnbmVk
IGludCB0aWxlX2FzcGVjdF9jOwojIDMxNyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiCiAgZW51bSB0aWxlX3NwbGl0X3ZhbHVlcyB0aWxl
X3NwbGl0OwogIGVudW0gdGlsZV9zcGxpdF92YWx1ZXMgdGlsZV9zcGxpdF9jOwoKCgoKCgogIGVu
dW0gdGlsZV9tb2RlX3ZhbHVlcyB0aWxlX21vZGU7CiAgZW51bSB0aWxlX21vZGVfdmFsdWVzIHRp
bGVfbW9kZV9jOwoKCgoKCiAgdW5zaWduZWQgaW50IHBpcGVfY29uZmlnOwojIDM0MSAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiCiAgZW51
bSBhcnJheV9tb2RlX3ZhbHVlcyBhcnJheV9tb2RlOwogfSBnZng4OwoKIHN0cnVjdCB7CiAgZW51
bSBzd2l6emxlX21vZGVfdmFsdWVzIHN3aXp6bGU7CiAgdW5zaWduZWQgaW50IG51bV9waXBlczsK
ICB1bnNpZ25lZCBpbnQgbWF4X2NvbXByZXNzZWRfZnJhZ3M7CiAgdW5zaWduZWQgaW50IHBpcGVf
aW50ZXJsZWF2ZTsKCiAgdW5zaWduZWQgaW50IG51bV9iYW5rczsKICB1bnNpZ25lZCBpbnQgbnVt
X3NoYWRlcl9lbmdpbmVzOwogIHVuc2lnbmVkIGludCBudW1fcmJfcGVyX3NlOwogIGJvb2wgc2hh
ZGVyRW5hYmxlOwoKICBib29sIG1ldGFfbGluZWFyOwogIGJvb2wgcmJfYWxpZ25lZDsKICBib29s
IHBpcGVfYWxpZ25lZDsKIH0gZ2Z4OTsKfTsKCgplbnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHsKIFJP
VEFUSU9OX0FOR0xFXzAgPSAwLAogUk9UQVRJT05fQU5HTEVfOTAsCiBST1RBVElPTl9BTkdMRV8x
ODAsCiBST1RBVElPTl9BTkdMRV8yNzAsCiBST1RBVElPTl9BTkdMRV9DT1VOVAp9OwoKZW51bSBk
Y19zY2FuX2RpcmVjdGlvbiB7CiBTQ0FOX0RJUkVDVElPTl9VTktOT1dOID0gMCwKIFNDQU5fRElS
RUNUSU9OX0hPUklaT05UQUwgPSAxLAogU0NBTl9ESVJFQ1RJT05fVkVSVElDQUwgPSAyLAp9OwoK
c3RydWN0IGRjX2N1cnNvcl9wb3NpdGlvbiB7CiB1aW50MzJfdCB4OwogdWludDMyX3QgeTsKCiB1
aW50MzJfdCB4X2hvdHNwb3Q7CiB1aW50MzJfdCB5X2hvdHNwb3Q7CgoKCgogYm9vbCBlbmFibGU7
Cgp9OwoKc3RydWN0IGRjX2N1cnNvcl9taV9wYXJhbSB7CiB1bnNpZ25lZCBpbnQgcGl4ZWxfY2xr
X2toejsKIHVuc2lnbmVkIGludCByZWZfY2xrX2toejsKIHN0cnVjdCByZWN0IHZpZXdwb3J0Owog
c3RydWN0IGZpeGVkMzFfMzIgaF9zY2FsZV9yYXRpbzsKIHN0cnVjdCBmaXhlZDMxXzMyIHZfc2Nh
bGVfcmF0aW87CiBlbnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uOwogYm9vbCBtaXJyb3I7
Cn07CgoKCmVudW0gewogR0FNTUFfUkdCXzI1Nl9FTlRSSUVTID0gMjU2LAogR0FNTUFfUkdCX0ZM
T0FUXzEwMjRfRU5UUklFUyA9IDEwMjQsCiBHQU1NQV9DU19URk1fMURfRU5UUklFUyA9IDQwOTYs
CiBHQU1NQV9DVVNUT01fRU5UUklFUyA9IDQwOTYsCiBHQU1NQV9NQVhfRU5UUklFUyA9IDQwOTYK
fTsKCmVudW0gZGNfZ2FtbWFfdHlwZSB7CiBHQU1NQV9SR0JfMjU2ID0gMSwKIEdBTU1BX1JHQl9G
TE9BVF8xMDI0ID0gMiwKIEdBTU1BX0NTX1RGTV8xRCA9IDMsCiBHQU1NQV9DVVNUT00gPSA0LAp9
OwoKc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gewogdWludDE2X3QgbWF0cml4WzEyXTsKIGJvb2wg
ZW5hYmxlX2FkanVzdG1lbnQ7Cn07CgpzdHJ1Y3QgZGNfcmdiX2ZpeGVkIHsKIHN0cnVjdCBmaXhl
ZDMxXzMyIHJlZDsKIHN0cnVjdCBmaXhlZDMxXzMyIGdyZWVuOwogc3RydWN0IGZpeGVkMzFfMzIg
Ymx1ZTsKfTsKCnN0cnVjdCBkY19nYW1tYSB7CiBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKIGVudW0g
ZGNfZ2FtbWFfdHlwZSB0eXBlOwogdW5zaWduZWQgaW50IG51bV9lbnRyaWVzOwoKIHN0cnVjdCBk
Y19nYW1tYV9lbnRyaWVzIHsKICBzdHJ1Y3QgZml4ZWQzMV8zMiByZWRbR0FNTUFfTUFYX0VOVFJJ
RVNdOwogIHN0cnVjdCBmaXhlZDMxXzMyIGdyZWVuW0dBTU1BX01BWF9FTlRSSUVTXTsKICBzdHJ1
Y3QgZml4ZWQzMV8zMiBibHVlW0dBTU1BX01BWF9FTlRSSUVTXTsKIH0gZW50cmllczsKCgogc3Ry
dWN0IGRjX2NvbnRleHQgKmN0eDsKCgoKCiBib29sIGlzX2lkZW50aXR5Owp9OwojIDQ1NiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiCmVu
dW0gZGNfY3Vyc29yX2NvbG9yX2Zvcm1hdCB7CiBDVVJTT1JfTU9ERV9NT05PLAogQ1VSU09SX01P
REVfQ09MT1JfMUJJVF9BTkQsCiBDVVJTT1JfTU9ERV9DT0xPUl9QUkVfTVVMVElQTElFRF9BTFBI
QSwKIENVUlNPUl9NT0RFX0NPTE9SX1VOX1BSRV9NVUxUSVBMSUVEX0FMUEhBLAogQ1VSU09SX01P
REVfQ09MT1JfNjRCSVRfRlBfUFJFX01VTFRJUExJRUQsCiBDVVJTT1JfTU9ERV9DT0xPUl82NEJJ
VF9GUF9VTl9QUkVfTVVMVElQTElFRAp9OwoKCgoKCgoKdW5pb24gZGNfY3Vyc29yX2F0dHJpYnV0
ZV9mbGFncyB7CiBzdHJ1Y3QgewogIHVpbnQzMl90IEVOQUJMRV9NQUdOSUZJQ0FUSU9OOjE7CiAg
dWludDMyX3QgSU5WRVJTRV9UUkFOU1BBUkVOVF9DTEFNUElORzoxOwogIHVpbnQzMl90IEhPUkla
T05UQUxfTUlSUk9SOjE7CiAgdWludDMyX3QgVkVSVElDQUxfTUlSUk9SOjE7CiAgdWludDMyX3Qg
SU5WRVJUX1BJWEVMX0RBVEE6MTsKICB1aW50MzJfdCBaRVJPX0VYUEFOU0lPTjoxOwogIHVpbnQz
Ml90IE1JTl9NQVhfSU5WRVJUOjE7CiAgdWludDMyX3QgRU5BQkxFX0NVUlNPUl9ERUdBTU1BOjE7
CiAgdWludDMyX3QgUkVTRVJWRUQ6MjQ7CiB9IGJpdHM7CiB1aW50MzJfdCB2YWx1ZTsKfTsKCnN0
cnVjdCBkY19jdXJzb3JfYXR0cmlidXRlcyB7CiB1bmlvbiBsYXJnZV9pbnRlZ2VyIGFkZHJlc3M7
CiB1aW50MzJfdCBwaXRjaDsKCgogdWludDMyX3Qgd2lkdGg7CiB1aW50MzJfdCBoZWlnaHQ7Cgog
ZW51bSBkY19jdXJzb3JfY29sb3JfZm9ybWF0IGNvbG9yX2Zvcm1hdDsKIHVpbnQzMl90IHNkcl93
aGl0ZV9sZXZlbDsKCgogZW51bSBkY19yb3RhdGlvbl9hbmdsZSByb3RhdGlvbl9hbmdsZTsKCiB1
bmlvbiBkY19jdXJzb3JfYXR0cmlidXRlX2ZsYWdzIGF0dHJpYnV0ZV9mbGFnczsKfTsKCnN0cnVj
dCBkcHBfY3Vyc29yX2F0dHJpYnV0ZXMgewogaW50IGJpYXM7CiBpbnQgc2NhbGU7Cn07CgoKCmVu
dW0gZGNfY29sb3Jfc3BhY2UgewogQ09MT1JfU1BBQ0VfVU5LTk9XTiwKIENPTE9SX1NQQUNFX1NS
R0IsCiBDT0xPUl9TUEFDRV9YUl9SR0IsCiBDT0xPUl9TUEFDRV9TUkdCX0xJTUlURUQsCiBDT0xP
Ul9TUEFDRV9NU1JFRl9TQ1JHQiwKIENPTE9SX1NQQUNFX1lDQkNSNjAxLAogQ09MT1JfU1BBQ0Vf
WUNCQ1I3MDksCiBDT0xPUl9TUEFDRV9YVl9ZQ0NfNzA5LAogQ09MT1JfU1BBQ0VfWFZfWUNDXzYw
MSwKIENPTE9SX1NQQUNFX1lDQkNSNjAxX0xJTUlURUQsCiBDT0xPUl9TUEFDRV9ZQ0JDUjcwOV9M
SU1JVEVELAogQ09MT1JfU1BBQ0VfMjAyMF9SR0JfRlVMTFJBTkdFLAogQ09MT1JfU1BBQ0VfMjAy
MF9SR0JfTElNSVRFRFJBTkdFLAogQ09MT1JfU1BBQ0VfMjAyMF9ZQ0JDUiwKIENPTE9SX1NQQUNF
X0FET0JFUkdCLAogQ09MT1JfU1BBQ0VfRENJUDMsCiBDT0xPUl9TUEFDRV9ESVNQTEFZTkFUSVZF
LAogQ09MT1JfU1BBQ0VfRE9MQllWSVNJT04sCiBDT0xPUl9TUEFDRV9BUFBDVFJMLAogQ09MT1Jf
U1BBQ0VfQ1VTVE9NUE9JTlRTLAogQ09MT1JfU1BBQ0VfWUNCQ1I3MDlfQkxBQ0ssCn07CgplbnVt
IGRjX2RpdGhlcl9vcHRpb24gewogRElUSEVSX09QVElPTl9ERUZBVUxULAogRElUSEVSX09QVElP
Tl9ESVNBQkxFLAogRElUSEVSX09QVElPTl9GTTYsCiBESVRIRVJfT1BUSU9OX0ZNOCwKIERJVEhF
Ul9PUFRJT05fRk0xMCwKIERJVEhFUl9PUFRJT05fU1BBVElBTDZfRlJBTUVfUkFORE9NLAogRElU
SEVSX09QVElPTl9TUEFUSUFMOF9GUkFNRV9SQU5ET00sCiBESVRIRVJfT1BUSU9OX1NQQVRJQUwx
MF9GUkFNRV9SQU5ET00sCiBESVRIRVJfT1BUSU9OX1NQQVRJQUw2LAogRElUSEVSX09QVElPTl9T
UEFUSUFMOCwKIERJVEhFUl9PUFRJT05fU1BBVElBTDEwLAogRElUSEVSX09QVElPTl9UUlVONiwK
IERJVEhFUl9PUFRJT05fVFJVTjgsCiBESVRIRVJfT1BUSU9OX1RSVU4xMCwKIERJVEhFUl9PUFRJ
T05fVFJVTjEwX1NQQVRJQUw4LAogRElUSEVSX09QVElPTl9UUlVOMTBfU1BBVElBTDYsCiBESVRI
RVJfT1BUSU9OX1RSVU4xMF9GTTgsCiBESVRIRVJfT1BUSU9OX1RSVU4xMF9GTTYsCiBESVRIRVJf
T1BUSU9OX1RSVU4xMF9TUEFUSUFMOF9GTTYsCiBESVRIRVJfT1BUSU9OX1NQQVRJQUwxMF9GTTgs
CiBESVRIRVJfT1BUSU9OX1NQQVRJQUwxMF9GTTYsCiBESVRIRVJfT1BUSU9OX1RSVU44X1NQQVRJ
QUw2LAogRElUSEVSX09QVElPTl9UUlVOOF9GTTYsCiBESVRIRVJfT1BUSU9OX1NQQVRJQUw4X0ZN
NiwKIERJVEhFUl9PUFRJT05fTUFYID0gRElUSEVSX09QVElPTl9TUEFUSUFMOF9GTTYsCiBESVRI
RVJfT1BUSU9OX0lOVkFMSUQKfTsKCmVudW0gZGNfcXVhbnRpemF0aW9uX3JhbmdlIHsKIFFVQU5U
SVpBVElPTl9SQU5HRV9VTktOT1dOLAogUVVBTlRJWkFUSU9OX1JBTkdFX0ZVTEwsCiBRVUFOVEla
QVRJT05fUkFOR0VfTElNSVRFRAp9OwoKZW51bSBkY19keW5hbWljX2V4cGFuc2lvbiB7CiBEWU5f
RVhQQU5TSU9OX0FVVE8sCiBEWU5fRVhQQU5TSU9OX0RJU0FCTEUKfTsKCgoKCnN0cnVjdCBzY2Fs
aW5nX3RhcHMgewogdWludDMyX3Qgdl90YXBzOwogdWludDMyX3QgaF90YXBzOwogdWludDMyX3Qg
dl90YXBzX2M7CiB1aW50MzJfdCBoX3RhcHNfYzsKIGJvb2wgaW50ZWdlcl9zY2FsaW5nOwp9OwoK
ZW51bSBkY190aW1pbmdfc3RhbmRhcmQgewogRENfVElNSU5HX1NUQU5EQVJEX1VOREVGSU5FRCwK
IERDX1RJTUlOR19TVEFOREFSRF9ETVQsCiBEQ19USU1JTkdfU1RBTkRBUkRfR1RGLAogRENfVElN
SU5HX1NUQU5EQVJEX0NWVCwKIERDX1RJTUlOR19TVEFOREFSRF9DVlRfUkIsCiBEQ19USU1JTkdf
U1RBTkRBUkRfQ0VBNzcwLAogRENfVElNSU5HX1NUQU5EQVJEX0NFQTg2MSwKIERDX1RJTUlOR19T
VEFOREFSRF9IRE1JLAogRENfVElNSU5HX1NUQU5EQVJEX1RWX05UU0MsCiBEQ19USU1JTkdfU1RB
TkRBUkRfVFZfTlRTQ19KLAogRENfVElNSU5HX1NUQU5EQVJEX1RWX1BBTCwKIERDX1RJTUlOR19T
VEFOREFSRF9UVl9QQUxfTSwKIERDX1RJTUlOR19TVEFOREFSRF9UVl9QQUxfQ04sCiBEQ19USU1J
TkdfU1RBTkRBUkRfVFZfU0VDQU0sCiBEQ19USU1JTkdfU1RBTkRBUkRfRVhQTElDSVQsCgogRENf
VElNSU5HX1NUQU5EQVJEX1VTRVJfT1ZFUlJJREUsCgogRENfVElNSU5HX1NUQU5EQVJEX01BWAp9
OwoKZW51bSBkY19jb2xvcl9kZXB0aCB7CiBDT0xPUl9ERVBUSF9VTkRFRklORUQsCiBDT0xPUl9E
RVBUSF82NjYsCiBDT0xPUl9ERVBUSF84ODgsCiBDT0xPUl9ERVBUSF8xMDEwMTAsCiBDT0xPUl9E
RVBUSF8xMjEyMTIsCiBDT0xPUl9ERVBUSF8xNDE0MTQsCiBDT0xPUl9ERVBUSF8xNjE2MTYsCiBD
T0xPUl9ERVBUSF85OTksCiBDT0xPUl9ERVBUSF8xMTExMTEsCiBDT0xPUl9ERVBUSF9DT1VOVAp9
OwoKZW51bSBkY19waXhlbF9lbmNvZGluZyB7CiBQSVhFTF9FTkNPRElOR19VTkRFRklORUQsCiBQ
SVhFTF9FTkNPRElOR19SR0IsCiBQSVhFTF9FTkNPRElOR19ZQ0JDUjQyMiwKIFBJWEVMX0VOQ09E
SU5HX1lDQkNSNDQ0LAogUElYRUxfRU5DT0RJTkdfWUNCQ1I0MjAsCiBQSVhFTF9FTkNPRElOR19D
T1VOVAp9OwoKZW51bSBkY19hc3BlY3RfcmF0aW8gewogQVNQRUNUX1JBVElPX05PX0RBVEEsCiBB
U1BFQ1RfUkFUSU9fNF8zLAogQVNQRUNUX1JBVElPXzE2XzksCiBBU1BFQ1RfUkFUSU9fNjRfMjcs
CiBBU1BFQ1RfUkFUSU9fMjU2XzEzNSwKIEFTUEVDVF9SQVRJT19GVVRVUkUKfTsKCmVudW0gc2Nh
bm5pbmdfdHlwZSB7CiBTQ0FOTklOR19UWVBFX05PREFUQSA9IDAsCiBTQ0FOTklOR19UWVBFX09W
RVJTQ0FOLAogU0NBTk5JTkdfVFlQRV9VTkRFUlNDQU4sCiBTQ0FOTklOR19UWVBFX0ZVVFVSRSwK
IFNDQU5OSU5HX1RZUEVfVU5ERUZJTkVECn07CgpzdHJ1Y3QgZGNfY3J0Y190aW1pbmdfZmxhZ3Mg
ewogdWludDMyX3QgSU5URVJMQUNFIDoxOwogdWludDMyX3QgSFNZTkNfUE9TSVRJVkVfUE9MQVJJ
VFkgOjE7CgogdWludDMyX3QgVlNZTkNfUE9TSVRJVkVfUE9MQVJJVFkgOjE7CgoKIHVpbnQzMl90
IEhPUlpfQ09VTlRfQllfVFdPOjE7CgogdWludDMyX3QgRVhDTFVTSVZFXzNEIDoxOwoKCiB1aW50
MzJfdCBSSUdIVF9FWUVfM0RfUE9MQVJJVFkgOjE7CgogdWludDMyX3QgU1VCX1NBTVBMRV8zRCA6
MTsKCiB1aW50MzJfdCBVU0VfSU5fM0RfVklFV19PTkxZIDoxOwoKIHVpbnQzMl90IFNURVJFT18z
RF9QUkVGRVJFTkNFIDoxOwoKIHVpbnQzMl90IFlfT05MWSA6MTsKCiB1aW50MzJfdCBZQ0JDUjQy
MCA6MTsKIHVpbnQzMl90IERURF9DT1VOVEVSIDo1OwoKIHVpbnQzMl90IEZPUkNFX0hEUiA6MTsK
CgoKIHVpbnQzMl90IExURV8zNDBNQ1NDX1NDUkFNQkxFOjE7CgogdWludDMyX3QgRFNDIDogMTsK
fTsKCmVudW0gZGNfdGltaW5nXzNkX2Zvcm1hdCB7CiBUSU1JTkdfM0RfRk9STUFUX05PTkUsCiBU
SU1JTkdfM0RfRk9STUFUX0ZSQU1FX0FMVEVSTkFURSwKIFRJTUlOR18zRF9GT1JNQVRfSU5CQU5E
X0ZBLAogVElNSU5HXzNEX0ZPUk1BVF9EUF9IRE1JX0lOQkFORF9GQSwKCiBUSU1JTkdfM0RfRk9S
TUFUX1NJREVCQU5EX0ZBLAogVElNSU5HXzNEX0ZPUk1BVF9IV19GUkFNRV9QQUNLSU5HLAogVElN
SU5HXzNEX0ZPUk1BVF9TV19GUkFNRV9QQUNLSU5HLAogVElNSU5HXzNEX0ZPUk1BVF9ST1dfSU5U
RVJMRUFWRSwKIFRJTUlOR18zRF9GT1JNQVRfQ09MVU1OX0lOVEVSTEVBVkUsCiBUSU1JTkdfM0Rf
Rk9STUFUX1BJWEVMX0lOVEVSTEVBVkUsCiBUSU1JTkdfM0RfRk9STUFUX1NJREVfQllfU0lERSwK
IFRJTUlOR18zRF9GT1JNQVRfVE9QX0FORF9CT1RUT00sCiBUSU1JTkdfM0RfRk9STUFUX1NCU19T
V19QQUNLRUQsCgogVElNSU5HXzNEX0ZPUk1BVF9UQl9TV19QQUNLRUQsCgoKIFRJTUlOR18zRF9G
T1JNQVRfTUFYLAp9OwoKc3RydWN0IGRjX2RzY19jb25maWcgewogdWludDMyX3QgbnVtX3NsaWNl
c19oOwogdWludDMyX3QgbnVtX3NsaWNlc192OwogdWludDMyX3QgYml0c19wZXJfcGl4ZWw7CiBi
b29sIGJsb2NrX3ByZWRfZW5hYmxlOwogdWludDMyX3QgbGluZWJ1Zl9kZXB0aDsKIHVpbnQzMl90
IHZlcnNpb25fbWlub3I7CiBib29sIHljYmNyNDIyX3NpbXBsZTsKIGludDMyX3QgcmNfYnVmZmVy
X3NpemU7Cn07CnN0cnVjdCBkY19jcnRjX3RpbWluZyB7CiB1aW50MzJfdCBoX3RvdGFsOwogdWlu
dDMyX3QgaF9ib3JkZXJfbGVmdDsKIHVpbnQzMl90IGhfYWRkcmVzc2FibGU7CiB1aW50MzJfdCBo
X2JvcmRlcl9yaWdodDsKIHVpbnQzMl90IGhfZnJvbnRfcG9yY2g7CiB1aW50MzJfdCBoX3N5bmNf
d2lkdGg7CgogdWludDMyX3Qgdl90b3RhbDsKIHVpbnQzMl90IHZfYm9yZGVyX3RvcDsKIHVpbnQz
Ml90IHZfYWRkcmVzc2FibGU7CiB1aW50MzJfdCB2X2JvcmRlcl9ib3R0b207CiB1aW50MzJfdCB2
X2Zyb250X3BvcmNoOwogdWludDMyX3Qgdl9zeW5jX3dpZHRoOwoKIHVpbnQzMl90IHBpeF9jbGtf
MTAwaHo7CgogdWludDMyX3QgdmljOwogdWludDMyX3QgaGRtaV92aWM7CiBlbnVtIGRjX3RpbWlu
Z18zZF9mb3JtYXQgdGltaW5nXzNkX2Zvcm1hdDsKIGVudW0gZGNfY29sb3JfZGVwdGggZGlzcGxh
eV9jb2xvcl9kZXB0aDsKIGVudW0gZGNfcGl4ZWxfZW5jb2RpbmcgcGl4ZWxfZW5jb2Rpbmc7CiBl
bnVtIGRjX2FzcGVjdF9yYXRpbyBhc3BlY3RfcmF0aW87CiBlbnVtIHNjYW5uaW5nX3R5cGUgc2Nh
bl90eXBlOwoKIHN0cnVjdCBkY19jcnRjX3RpbWluZ19mbGFncyBmbGFnczsKIHN0cnVjdCBkY19k
c2NfY29uZmlnIGRzY19jZmc7Cn07CgplbnVtIHRyaWdnZXJfZGVsYXkgewogVFJJR0dFUl9ERUxB
WV9ORVhUX1BJWEVMID0gMCwKIFRSSUdHRVJfREVMQVlfTkVYVF9MSU5FLAp9OwoKZW51bSBjcnRj
X2V2ZW50IHsKIENSVENfRVZFTlRfVlNZTkNfUklTSU5HID0gMCwKIENSVENfRVZFTlRfVlNZTkNf
RkFMTElORwp9OwoKc3RydWN0IGNydGNfdHJpZ2dlcl9pbmZvIHsKIGJvb2wgZW5hYmxlZDsKIHN0
cnVjdCBkY19zdHJlYW1fc3RhdGUgKmV2ZW50X3NvdXJjZTsKIGVudW0gY3J0Y19ldmVudCBldmVu
dDsKIGVudW0gdHJpZ2dlcl9kZWxheSBkZWxheTsKfTsKCnN0cnVjdCBkY19jcnRjX3RpbWluZ19h
ZGp1c3QgewogdWludDMyX3Qgdl90b3RhbF9taW47CiB1aW50MzJfdCB2X3RvdGFsX21heDsKIHVp
bnQzMl90IHZfdG90YWxfbWlkOwogdWludDMyX3Qgdl90b3RhbF9taWRfZnJhbWVfbnVtOwp9OwoK
CgplbnVtIHZyYW1fdHlwZSB7CiBWSURFT19NRU1PUllfVFlQRV9HRERSNSA9IDIsCiBWSURFT19N
RU1PUllfVFlQRV9ERFIzID0gMywKIFZJREVPX01FTU9SWV9UWVBFX0REUjQgPSA0LAogVklERU9f
TUVNT1JZX1RZUEVfSEJNID0gNSwKIFZJREVPX01FTU9SWV9UWVBFX0dERFI2ID0gNiwKfTsKCmVu
dW0gZHdiX2Nudl9vdXRfYnBjIHsKIERXQl9DTlZfT1VUX0JQQ184QlBDID0gMCwKIERXQl9DTlZf
T1VUX0JQQ18xMEJQQyA9IDEsCn07CgplbnVtIGR3Yl9vdXRwdXRfZGVwdGggewogRFdCX09VVFBV
VF9QSVhFTF9ERVBUSF84QlBDID0gMCwKIERXQl9PVVRQVVRfUElYRUxfREVQVEhfMTBCUEMgPSAx
LAp9OwoKZW51bSBkd2JfY2FwdHVyZV9yYXRlIHsKIGR3Yl9jYXB0dXJlX3JhdGVfMCA9IDAsCiBk
d2JfY2FwdHVyZV9yYXRlXzEgPSAxLAogZHdiX2NhcHR1cmVfcmF0ZV8yID0gMiwKIGR3Yl9jYXB0
dXJlX3JhdGVfMyA9IDMsCn07CgplbnVtIGR3Yl9zY2FsZXJfbW9kZSB7CiBkd2Jfc2NhbGVyX21v
ZGVfYnlwYXNzNDQ0ID0gMCwKIGR3Yl9zY2FsZXJfbW9kZV9yZ2I0NDQgPSAxLAogZHdiX3NjYWxl
cl9tb2RlX3l1djQ0NCA9IDIsCiBkd2Jfc2NhbGVyX21vZGVfeXV2NDIwID0gMwp9OwoKZW51bSBk
d2Jfc3Vic2FtcGxlX3Bvc2l0aW9uIHsKIERXQl9JTlRFUlNUSVRJQUxfU1VCU0FNUExJTkcgPSAw
LAogRFdCX0NPU0lURURfU1VCU0FNUExJTkcgPSAxCn07CgplbnVtIGR3Yl9zdGVyZW9fZXllX3Nl
bGVjdCB7CiBEV0JfU1RFUkVPX0VZRV9MRUZUID0gMSwKIERXQl9TVEVSRU9fRVlFX1JJR0hUID0g
MiwKfTsKCmVudW0gZHdiX3N0ZXJlb190eXBlIHsKIERXQl9TVEVSRU9fVFlQRV9GUkFNRV9QQUNL
SU5HID0gMCwKIERXQl9TVEVSRU9fVFlQRV9GUkFNRV9TRVFVRU5USUFMID0gMywKfTsKCgoKc3Ry
dWN0IG1jaWZfYnVmX3BhcmFtcyB7CiB1bnNpZ25lZCBsb25nIGxvbmcgbHVtYV9hZGRyZXNzWzRd
OwogdW5zaWduZWQgbG9uZyBsb25nIGNocm9tYV9hZGRyZXNzWzRdOwogdW5zaWduZWQgaW50IGx1
bWFfcGl0Y2g7CiB1bnNpZ25lZCBpbnQgY2hyb21hX3BpdGNoOwogdW5zaWduZWQgaW50IHdhcm11
cF9waXRjaDsKIHVuc2lnbmVkIGludCBzd2xvY2s7Cn07CgoKCnN0cnVjdCB0Z19jb2xvciB7Cgog
dWludDE2X3QgY29sb3Jfcl9jcjsKIHVpbnQxNl90IGNvbG9yX2dfeTsKIHVpbnQxNl90IGNvbG9y
X2JfY2I7Cn07CiMgMzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9kY190eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgiIDEKIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvc2lnbmFsX3R5cGVzLmgiIDEKIyAzMCAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVz
LmgiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNf
dHlwZXMuaCIgMQojIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
aW5jbHVkZS9kYWxfdHlwZXMuaCIgMgoKc3RydWN0IGRhbF9sb2dnZXI7CnN0cnVjdCBkY19iaW9z
OwoKZW51bSBkY2VfdmVyc2lvbiB7CiBEQ0VfVkVSU0lPTl9VTktOT1dOID0gKC0xKSwKIERDRV9W
RVJTSU9OXzhfMCwKIERDRV9WRVJTSU9OXzhfMSwKIERDRV9WRVJTSU9OXzhfMywKIERDRV9WRVJT
SU9OXzEwXzAsCiBEQ0VfVkVSU0lPTl8xMV8wLAogRENFX1ZFUlNJT05fMTFfMiwKIERDRV9WRVJT
SU9OXzExXzIyLAogRENFX1ZFUlNJT05fMTJfMCwKIERDRV9WRVJTSU9OXzEyXzEsCiBEQ0VfVkVS
U0lPTl9NQVgsCiBEQ05fVkVSU0lPTl8xXzAsCiBEQ05fVkVSU0lPTl8xXzAxLAogRENOX1ZFUlNJ
T05fMl8wLAogRENOX1ZFUlNJT05fMl8xLAogRENOX1ZFUlNJT05fTUFYCn07CiMgMzggIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5oIiAyCiMgMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZ3JwaF9vYmpl
Y3RfZGVmcy5oIiAxCiMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9pbmNsdWRlL2dycGhfb2JqZWN0X2RlZnMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9pZC5oIiAxCiMgMzAgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2lk
LmgiCmVudW0gb2JqZWN0X3R5cGUgewogT0JKRUNUX1RZUEVfVU5LTk9XTiA9IDAsCgoKIE9CSkVD
VF9UWVBFX0dQVSwKIE9CSkVDVF9UWVBFX0VOQ09ERVIsCiBPQkpFQ1RfVFlQRV9DT05ORUNUT1Is
CiBPQkpFQ1RfVFlQRV9ST1VURVIsCiBPQkpFQ1RfVFlQRV9HRU5FUklDLAoKCiBPQkpFQ1RfVFlQ
RV9BVURJTywKIE9CSkVDVF9UWVBFX0NPTlRST0xMRVIsCiBPQkpFQ1RfVFlQRV9DTE9DS19TT1VS
Q0UsCiBPQkpFQ1RfVFlQRV9FTkdJTkUsCgogT0JKRUNUX1RZUEVfQ09VTlQKfTsKCgplbnVtIG9i
amVjdF9lbnVtX2lkIHsKIEVOVU1fSURfVU5LTk9XTiA9IDAsCiBFTlVNX0lEXzEsCiBFTlVNX0lE
XzIsCiBFTlVNX0lEXzMsCiBFTlVNX0lEXzQsCiBFTlVNX0lEXzUsCiBFTlVNX0lEXzYsCiBFTlVN
X0lEXzcsCgogRU5VTV9JRF9DT1VOVAp9OwoKCmVudW0gZ2VuZXJpY19pZCB7CiBHRU5FUklDX0lE
X1VOS05PV04gPSAwLAogR0VORVJJQ19JRF9NWE1fT1BNLAogR0VORVJJQ19JRF9HTFNZTkMsCiBH
RU5FUklDX0lEX1NURVJFTywKCiBHRU5FUklDX0lEX0NPVU5UCn07CgoKZW51bSBjb250cm9sbGVy
X2lkIHsKIENPTlRST0xMRVJfSURfVU5ERUZJTkVEID0gMCwKIENPTlRST0xMRVJfSURfRDAsCiBD
T05UUk9MTEVSX0lEX0QxLAogQ09OVFJPTExFUl9JRF9EMiwKIENPTlRST0xMRVJfSURfRDMsCiBD
T05UUk9MTEVSX0lEX0Q0LAogQ09OVFJPTExFUl9JRF9ENSwKIENPTlRST0xMRVJfSURfVU5ERVJM
QVkwLAogQ09OVFJPTExFUl9JRF9NQVggPSBDT05UUk9MTEVSX0lEX1VOREVSTEFZMAp9OwojIDkz
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29i
amVjdF9pZC5oIgplbnVtIGNsb2NrX3NvdXJjZV9pZCB7CiBDTE9DS19TT1VSQ0VfSURfVU5ERUZJ
TkVEID0gMCwKIENMT0NLX1NPVVJDRV9JRF9QTEwwLAogQ0xPQ0tfU09VUkNFX0lEX1BMTDEsCiBD
TE9DS19TT1VSQ0VfSURfUExMMiwKIENMT0NLX1NPVVJDRV9JRF9FWFRFUk5BTCwKIENMT0NLX1NP
VVJDRV9JRF9EQ1BMTCwKIENMT0NLX1NPVVJDRV9JRF9ERlMsCiBDTE9DS19TT1VSQ0VfSURfVkNF
LAoKIENMT0NLX1NPVVJDRV9JRF9EUF9EVE8sCgogQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEww
LAogQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEwxLAogQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9Q
TEwyLAogQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEwzLAogQ0xPQ0tfU09VUkNFX0NPTUJPX1BI
WV9QTEw0LAogQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEw1LAogQ0xPQ0tfU09VUkNFX0NPTUJP
X0RJU1BMQVlfUExMMAp9OwoKCmVudW0gZW5jb2Rlcl9pZCB7CiBFTkNPREVSX0lEX1VOS05PV04g
PSAwLAoKCiBFTkNPREVSX0lEX0lOVEVSTkFMX0xWRFMsCiBFTkNPREVSX0lEX0lOVEVSTkFMX1RN
RFMxLAogRU5DT0RFUl9JRF9JTlRFUk5BTF9UTURTMiwKIEVOQ09ERVJfSURfSU5URVJOQUxfREFD
MSwKIEVOQ09ERVJfSURfSU5URVJOQUxfREFDMiwKCgogRU5DT0RFUl9JRF9JTlRFUk5BTF9MVlRN
MSwKIEVOQ09ERVJfSURfSU5URVJOQUxfSERNSSwKCgogRU5DT0RFUl9JRF9JTlRFUk5BTF9LTERT
Q1BfVE1EUzEsCiBFTkNPREVSX0lEX0lOVEVSTkFMX0tMRFNDUF9EQUMxLAogRU5DT0RFUl9JRF9J
TlRFUk5BTF9LTERTQ1BfREFDMiwKCiBFTkNPREVSX0lEX0VYVEVSTkFMX01WUFVfRlBHQSwKIEVO
Q09ERVJfSURfSU5URVJOQUxfRERJLAogRU5DT0RFUl9JRF9JTlRFUk5BTF9VTklQSFksCiBFTkNP
REVSX0lEX0lOVEVSTkFMX0tMRFNDUF9MVlRNQSwKIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZ
MSwKIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZMiwKIEVOQ09ERVJfSURfRVhURVJOQUxfTlVU
TUVHLAogRU5DT0RFUl9JRF9FWFRFUk5BTF9UUkFWSVMsCgogRU5DT0RFUl9JRF9JTlRFUk5BTF9X
SVJFTEVTUywKIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZMywKIEVOQ09ERVJfSURfSU5URVJO
QUxfVklSVFVBTCwKfTsKCgplbnVtIGNvbm5lY3Rvcl9pZCB7CiBDT05ORUNUT1JfSURfVU5LTk9X
TiA9IDAsCiBDT05ORUNUT1JfSURfU0lOR0xFX0xJTktfRFZJSSA9IDEsCiBDT05ORUNUT1JfSURf
RFVBTF9MSU5LX0RWSUkgPSAyLAogQ09OTkVDVE9SX0lEX1NJTkdMRV9MSU5LX0RWSUQgPSAzLAog
Q09OTkVDVE9SX0lEX0RVQUxfTElOS19EVklEID0gNCwKIENPTk5FQ1RPUl9JRF9WR0EgPSA1LAog
Q09OTkVDVE9SX0lEX0hETUlfVFlQRV9BID0gMTIsCiBDT05ORUNUT1JfSURfTFZEUyA9IDE0LAog
Q09OTkVDVE9SX0lEX1BDSUUgPSAxNiwKIENPTk5FQ1RPUl9JRF9IQVJEQ09ERV9EVkkgPSAxOCwK
IENPTk5FQ1RPUl9JRF9ESVNQTEFZX1BPUlQgPSAxOSwKIENPTk5FQ1RPUl9JRF9FRFAgPSAyMCwK
IENPTk5FQ1RPUl9JRF9NWE0gPSAyMSwKIENPTk5FQ1RPUl9JRF9XSVJFTEVTUyA9IDIyLAogQ09O
TkVDVE9SX0lEX01JUkFDQVNUID0gMjMsCgogQ09OTkVDVE9SX0lEX1ZJUlRVQUwgPSAxMDAKfTsK
CgplbnVtIGF1ZGlvX2lkIHsKIEFVRElPX0lEX1VOS05PV04gPSAwLAogQVVESU9fSURfSU5URVJO
QUxfQVpBTElBCn07CgoKZW51bSBlbmdpbmVfaWQgewogRU5HSU5FX0lEX0RJR0EsCiBFTkdJTkVf
SURfRElHQiwKIEVOR0lORV9JRF9ESUdDLAogRU5HSU5FX0lEX0RJR0QsCiBFTkdJTkVfSURfRElH
RSwKIEVOR0lORV9JRF9ESUdGLAogRU5HSU5FX0lEX0RJR0csCiBFTkdJTkVfSURfREFDQSwKIEVO
R0lORV9JRF9EQUNCLAogRU5HSU5FX0lEX1ZDRSwKIEVOR0lORV9JRF9WSVJUVUFMLAoKIEVOR0lO
RV9JRF9DT1VOVCwKIEVOR0lORV9JRF9VTktOT1dOID0gKC0xTCkKfTsKCmVudW0gdHJhbnNtaXR0
ZXJfY29sb3JfZGVwdGggewogVFJBTlNNSVRURVJfQ09MT1JfREVQVEhfMjQgPSAwLAogVFJBTlNN
SVRURVJfQ09MT1JfREVQVEhfMzAsCiBUUkFOU01JVFRFUl9DT0xPUl9ERVBUSF8zNiwKIFRSQU5T
TUlUVEVSX0NPTE9SX0RFUFRIXzQ4Cn07CgplbnVtIGRwX2FsdF9tb2RlIHsKIERQX0FsdF9tb2Rl
X19Vbmtub3duID0gMCwKIERQX0FsdF9tb2RlX19Db25uZWN0LAogRFBfQWx0X21vZGVfX05vQ29u
bmVjdCwKfTsKIyAyMjAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL2dycGhfb2JqZWN0X2lkLmgiCnN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgewogdWlu
dDMyX3QgaWQ6ODsKIHVpbnQzMl90IGVudW1faWQ6NDsKIHVpbnQzMl90IHR5cGU6NDsKIHVpbnQz
Ml90IHJlc2VydmVkOjE2Owp9OwoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGRhbF9ncmFw
aGljc19vYmplY3RfaWRfaW5pdCgKIHVpbnQzMl90IGlkLAogZW51bSBvYmplY3RfZW51bV9pZCBl
bnVtX2lkLAogZW51bSBvYmplY3RfdHlwZSB0eXBlKQp7CiBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0
X2lkIHJlc3VsdCA9IHsKICBpZCwgZW51bV9pZCwgdHlwZSwgMAogfTsKCiByZXR1cm4gcmVzdWx0
Owp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdWludDMyX3QgZGFsX2dyYXBoaWNzX29iamVjdF9pZF90b191aW50KAogc3RydWN0IGdy
YXBoaWNzX29iamVjdF9pZCBpZCkKewogcmV0dXJuIGlkLmlkICsgKGlkLmVudW1faWQgPDwgMHg4
KSArIChpZC50eXBlIDw8IDB4Yyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGVudW0gY29udHJvbGxlcl9pZCBkYWxfZ3JhcGhpY3Nf
b2JqZWN0X2lkX2dldF9jb250cm9sbGVyX2lkKAogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBp
ZCkKewogaWYgKGlkLnR5cGUgPT0gT0JKRUNUX1RZUEVfQ09OVFJPTExFUikKICByZXR1cm4gKGVu
dW0gY29udHJvbGxlcl9pZCkgaWQuaWQ7CiByZXR1cm4gQ09OVFJPTExFUl9JRF9VTkRFRklORUQ7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGVudW0gY2xvY2tfc291cmNlX2lkIGRhbF9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2Nsb2Nr
X3NvdXJjZV9pZCgKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgaWQpCnsKIGlmIChpZC50eXBl
ID09IE9CSkVDVF9UWVBFX0NMT0NLX1NPVVJDRSkKICByZXR1cm4gKGVudW0gY2xvY2tfc291cmNl
X2lkKSBpZC5pZDsKIHJldHVybiBDTE9DS19TT1VSQ0VfSURfVU5ERUZJTkVEOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBlbnVtIGVu
Y29kZXJfaWQgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9nZXRfZW5jb2Rlcl9pZCgKIHN0cnVjdCBn
cmFwaGljc19vYmplY3RfaWQgaWQpCnsKIGlmIChpZC50eXBlID09IE9CSkVDVF9UWVBFX0VOQ09E
RVIpCiAgcmV0dXJuIChlbnVtIGVuY29kZXJfaWQpIGlkLmlkOwogcmV0dXJuIEVOQ09ERVJfSURf
VU5LTk9XTjsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgZW51bSBjb25uZWN0b3JfaWQgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9nZXRf
Y29ubmVjdG9yX2lkKAogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBpZCkKewogaWYgKGlkLnR5
cGUgPT0gT0JKRUNUX1RZUEVfQ09OTkVDVE9SKQogIHJldHVybiAoZW51bSBjb25uZWN0b3JfaWQp
IGlkLmlkOwogcmV0dXJuIENPTk5FQ1RPUl9JRF9VTktOT1dOOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBlbnVtIGF1ZGlvX2lkIGRh
bF9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2F1ZGlvX2lkKAogc3RydWN0IGdyYXBoaWNzX29iamVj
dF9pZCBpZCkKewogaWYgKGlkLnR5cGUgPT0gT0JKRUNUX1RZUEVfQVVESU8pCiAgcmV0dXJuIChl
bnVtIGF1ZGlvX2lkKSBpZC5pZDsKIHJldHVybiBBVURJT19JRF9VTktOT1dOOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBlbnVtIGVu
Z2luZV9pZCBkYWxfZ3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9lbmdpbmVfaWQoCiBzdHJ1Y3QgZ3Jh
cGhpY3Nfb2JqZWN0X2lkIGlkKQp7CiBpZiAoaWQudHlwZSA9PSBPQkpFQ1RfVFlQRV9FTkdJTkUp
CiAgcmV0dXJuIChlbnVtIGVuZ2luZV9pZCkgaWQuaWQ7CiByZXR1cm4gRU5HSU5FX0lEX1VOS05P
V047Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9lcXVhbCgKIHN0cnVjdCBncmFwaGlj
c19vYmplY3RfaWQgaWRfMSwKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgaWRfMikKewogaWYg
KChpZF8xLmlkID09IGlkXzIuaWQpICYmIChpZF8xLmVudW1faWQgPT0gaWRfMi5lbnVtX2lkKSAm
JgogIChpZF8xLnR5cGUgPT0gaWRfMi50eXBlKSkgewogIHJldHVybiB0cnVlOwogfQogcmV0dXJu
IGZhbHNlOwp9CiMgMzAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL2dycGhfb2JqZWN0X2RlZnMuaCIgMgojIDQ1ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9kZWZzLmgiCmVudW0gaHBkX3Nv
dXJjZV9pZCB7CiBIUERfU09VUkNFSUQxID0gMCwKIEhQRF9TT1VSQ0VJRDIsCiBIUERfU09VUkNF
SUQzLAogSFBEX1NPVVJDRUlENCwKIEhQRF9TT1VSQ0VJRDUsCiBIUERfU09VUkNFSUQ2LAoKIEhQ
RF9TT1VSQ0VJRF9DT1VOVCwKIEhQRF9TT1VSQ0VJRF9VTktOT1dOCn07CgoKZW51bSBjaGFubmVs
X2lkIHsKIENIQU5ORUxfSURfVU5LTk9XTiA9IDAsCiBDSEFOTkVMX0lEX0REQzEsCiBDSEFOTkVM
X0lEX0REQzIsCiBDSEFOTkVMX0lEX0REQzMsCiBDSEFOTkVMX0lEX0REQzQsCiBDSEFOTkVMX0lE
X0REQzUsCiBDSEFOTkVMX0lEX0REQzYsCiBDSEFOTkVMX0lEX0REQ19WR0EsCiBDSEFOTkVMX0lE
X0kyQ19QQUQsCiBDSEFOTkVMX0lEX0NPVU5UCn07CiMgODEgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2RlZnMuaCIKZW51bSB0cmFu
c21pdHRlciB7CiBUUkFOU01JVFRFUl9VTktOT1dOID0gKC0xTCksCiBUUkFOU01JVFRFUl9VTklQ
SFlfQSwKIFRSQU5TTUlUVEVSX1VOSVBIWV9CLAogVFJBTlNNSVRURVJfVU5JUEhZX0MsCiBUUkFO
U01JVFRFUl9VTklQSFlfRCwKIFRSQU5TTUlUVEVSX1VOSVBIWV9FLAogVFJBTlNNSVRURVJfVU5J
UEhZX0YsCiBUUkFOU01JVFRFUl9OVVRNRUdfQ1JULAogVFJBTlNNSVRURVJfVFJBVklTX0NSVCwK
IFRSQU5TTUlUVEVSX1RSQVZJU19MQ0QsCiBUUkFOU01JVFRFUl9VTklQSFlfRywKIFRSQU5TTUlU
VEVSX0NPVU5UCn07CgoKCmVudW0gc3luY19zb3VyY2UgewogU1lOQ19TT1VSQ0VfTk9ORSA9IDAs
CgoKIFNZTkNfU09VUkNFX0NPTlRST0xMRVIwLAogU1lOQ19TT1VSQ0VfQ09OVFJPTExFUjEsCiBT
WU5DX1NPVVJDRV9DT05UUk9MTEVSMiwKIFNZTkNfU09VUkNFX0NPTlRST0xMRVIzLAogU1lOQ19T
T1VSQ0VfQ09OVFJPTExFUjQsCiBTWU5DX1NPVVJDRV9DT05UUk9MTEVSNSwKCgogU1lOQ19TT1VS
Q0VfR1NMX0dST1VQMCwKIFNZTkNfU09VUkNFX0dTTF9HUk9VUDEsCiBTWU5DX1NPVVJDRV9HU0xf
R1JPVVAyLAoKCgogU1lOQ19TT1VSQ0VfR1NMX0lPX0ZJUlNULAogU1lOQ19TT1VSQ0VfR1NMX0lP
X0dFTkxPQ0tfQ0xPQ0sgPSBTWU5DX1NPVVJDRV9HU0xfSU9fRklSU1QsCiBTWU5DX1NPVVJDRV9H
U0xfSU9fR0VOTE9DS19WU1lOQywKIFNZTkNfU09VUkNFX0dTTF9JT19TV0FQTE9DS19BLAogU1lO
Q19TT1VSQ0VfR1NMX0lPX1NXQVBMT0NLX0IsCiBTWU5DX1NPVVJDRV9HU0xfSU9fTEFTVCA9IFNZ
TkNfU09VUkNFX0dTTF9JT19TV0FQTE9DS19CLAoKCiBTWU5DX1NPVVJDRV9JT19GSVJTVCwKIFNZ
TkNfU09VUkNFX0lPX0dFTkVSSUNfQSA9IFNZTkNfU09VUkNFX0lPX0ZJUlNULAogU1lOQ19TT1VS
Q0VfSU9fR0VORVJJQ19CLAogU1lOQ19TT1VSQ0VfSU9fR0VORVJJQ19DLAogU1lOQ19TT1VSQ0Vf
SU9fR0VORVJJQ19ELAogU1lOQ19TT1VSQ0VfSU9fR0VORVJJQ19FLAogU1lOQ19TT1VSQ0VfSU9f
R0VORVJJQ19GLAogU1lOQ19TT1VSQ0VfSU9fSFBEMSwKIFNZTkNfU09VUkNFX0lPX0hQRDIsCiBT
WU5DX1NPVVJDRV9JT19IU1lOQ19BLAogU1lOQ19TT1VSQ0VfSU9fVlNZTkNfQSwKIFNZTkNfU09V
UkNFX0lPX0hTWU5DX0IsCiBTWU5DX1NPVVJDRV9JT19WU1lOQ19CLAogU1lOQ19TT1VSQ0VfSU9f
TEFTVCA9IFNZTkNfU09VUkNFX0lPX1ZTWU5DX0IsCgoKIFNZTkNfU09VUkNFX0RVQUxfR1BVX1BJ
Tgp9OwojIDE1MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1
ZGUvZ3JwaF9vYmplY3RfZGVmcy5oIgplbnVtIGNvbm5lY3Rvcl9sYXlvdXRfdHlwZSB7CiBDT05O
RUNUT1JfTEFZT1VUX1RZUEVfVU5LTk9XTiwKIENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9EVklfRCwK
IENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9EVklfSSwKIENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9WR0Es
CiBDT05ORUNUT1JfTEFZT1VUX1RZUEVfSERNSSwKIENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9EUCwK
IENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9NSU5JX0RQLAp9OwpzdHJ1Y3QgY29ubmVjdG9yX2xheW91
dF9pbmZvIHsKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgY29ubmVjdG9yX2lkOwogZW51bSBj
b25uZWN0b3JfbGF5b3V0X3R5cGUgY29ubmVjdG9yX3R5cGU7CiB1bnNpZ25lZCBpbnQgbGVuZ3Ro
OwogdW5zaWduZWQgaW50IHBvc2l0aW9uOwp9OwoKCnN0cnVjdCBzbG90X2xheW91dF9pbmZvIHsK
IHVuc2lnbmVkIGludCBsZW5ndGg7CiB1bnNpZ25lZCBpbnQgd2lkdGg7CiB1bnNpZ25lZCBpbnQg
bnVtX29mX2Nvbm5lY3RvcnM7CiBzdHJ1Y3QgY29ubmVjdG9yX2xheW91dF9pbmZvIGNvbm5lY3Rv
cnNbKDE2KV07Cn07CgpzdHJ1Y3QgYm9hcmRfbGF5b3V0X2luZm8gewogdW5zaWduZWQgaW50IG51
bV9vZl9zbG90czsKCgogdW5zaWduZWQgaW50IGlzX251bWJlcl9vZl9zbG90c192YWxpZCA6IDE7
CiB1bnNpZ25lZCBpbnQgaXNfc2xvdHNfc2l6ZV92YWxpZCA6IDE7CiB1bnNpZ25lZCBpbnQgaXNf
Y29ubmVjdG9yX29mZnNldHNfdmFsaWQgOiAxOwogdW5zaWduZWQgaW50IGlzX2Nvbm5lY3Rvcl9s
ZW5ndGhzX3ZhbGlkIDogMTsKCiBzdHJ1Y3Qgc2xvdF9sYXlvdXRfaW5mbyBzbG90c1soNCldOwp9
OwojIDM5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlw
ZXMuaCIgMgoKCgoKCgpzdHJ1Y3QgZGNfcGxhbmVfc3RhdGU7CnN0cnVjdCBkY19zdHJlYW1fc3Rh
dGU7CnN0cnVjdCBkY19saW5rOwpzdHJ1Y3QgZGNfc2luazsKc3RydWN0IGRhbDsKc3RydWN0IGRj
X2RtdWJfc3J2OwoKCgoKZW51bSBkY2VfZW52aXJvbm1lbnQgewogRENFX0VOVl9QUk9EVUNUSU9O
X0RSViA9IDAsCgoKCiBEQ0VfRU5WX0ZQR0FfTUFYSU1VUywKCgogRENFX0VOVl9ESUFHLAoKCgoK
IERDRV9FTlZfVklSVFVBTF9IVwp9OwojIDc4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaCIKc3RydWN0IGh3X2FzaWNfaWQgewogdWludDMyX3Qg
Y2hpcF9pZDsKIHVpbnQzMl90IGNoaXBfZmFtaWx5OwogdWludDMyX3QgcGNpX3JldmlzaW9uX2lk
OwogdWludDMyX3QgaHdfaW50ZXJuYWxfcmV2OwogdWludDMyX3QgdnJhbV90eXBlOwogdWludDMy
X3QgdnJhbV93aWR0aDsKIHVpbnQzMl90IGZlYXR1cmVfZmxhZ3M7CiB1aW50MzJfdCBmYWtlX3Bh
dGhzX251bTsKIHZvaWQgKmF0b21iaW9zX2Jhc2VfYWRkcmVzczsKfTsKCnN0cnVjdCBkY19wZXJm
X3RyYWNlIHsKIHVuc2lnbmVkIGxvbmcgcmVhZF9jb3VudDsKIHVuc2lnbmVkIGxvbmcgd3JpdGVf
Y291bnQ7CiB1bnNpZ25lZCBsb25nIGxhc3RfZW50cnlfcmVhZDsKIHVuc2lnbmVkIGxvbmcgbGFz
dF9lbnRyeV93cml0ZTsKfTsKCnN0cnVjdCBkY19jb250ZXh0IHsKIHN0cnVjdCBkYyAqZGM7Cgog
dm9pZCAqZHJpdmVyX2NvbnRleHQ7CiBzdHJ1Y3QgZGNfcGVyZl90cmFjZSAqcGVyZl90cmFjZTsK
IHZvaWQgKmNnc19kZXZpY2U7CgogZW51bSBkY2VfZW52aXJvbm1lbnQgZGNlX2Vudmlyb25tZW50
Owogc3RydWN0IGh3X2FzaWNfaWQgYXNpY19pZDsKCgoKCiBlbnVtIGRjZV92ZXJzaW9uIGRjZV92
ZXJzaW9uOwogc3RydWN0IGRjX2Jpb3MgKmRjX2Jpb3M7CiBib29sIGNyZWF0ZWRfYmlvczsKIHN0
cnVjdCBncGlvX3NlcnZpY2UgKmdwaW9fc2VydmljZTsKIHVpbnQzMl90IGRjX3NpbmtfaWRfY291
bnQ7CiB1aW50MzJfdCBkY19zdHJlYW1faWRfY291bnQ7CiB1aW50NjRfdCBmYmNfZ3B1X2FkZHI7
CiBzdHJ1Y3QgZGNfZG11Yl9zcnYgKmRtdWJfc3J2OwoKCgoKfTsKIyAxMzEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5oIgojIDEgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY19kZGNfdHlwZXMuaCIgMQojIDI4
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfZGRjX3R5cGVz
LmgiCmVudW0gYXV4X3RyYW5zYWN0aW9uX3R5cGUgewogQVVYX1RSQU5TQUNUSU9OX1RZUEVfRFAs
CiBBVVhfVFJBTlNBQ1RJT05fVFlQRV9JMkMKfTsKCgplbnVtIGkyY2F1eF90cmFuc2FjdGlvbl9h
Y3Rpb24gewogSTJDQVVYX1RSQU5TQUNUSU9OX0FDVElPTl9JMkNfV1JJVEUgPSAweDAwLAogSTJD
QVVYX1RSQU5TQUNUSU9OX0FDVElPTl9JMkNfUkVBRCA9IDB4MTAsCiBJMkNBVVhfVFJBTlNBQ1RJ
T05fQUNUSU9OX0kyQ19TVEFUVVNfUkVRVUVTVCA9IDB4MjAsCgogSTJDQVVYX1RSQU5TQUNUSU9O
X0FDVElPTl9JMkNfV1JJVEVfTU9UID0gMHg0MCwKIEkyQ0FVWF9UUkFOU0FDVElPTl9BQ1RJT05f
STJDX1JFQURfTU9UID0gMHg1MCwKIEkyQ0FVWF9UUkFOU0FDVElPTl9BQ1RJT05fSTJDX1NUQVRV
U19SRVFVRVNUX01PVCA9IDB4NjAsCgogSTJDQVVYX1RSQU5TQUNUSU9OX0FDVElPTl9EUF9XUklU
RSA9IDB4ODAsCiBJMkNBVVhfVFJBTlNBQ1RJT05fQUNUSU9OX0RQX1JFQUQgPSAweDkwCn07Cgpl
bnVtIGF1eF9jaGFubmVsX29wZXJhdGlvbl9yZXN1bHQgewogQVVYX0NIQU5ORUxfT1BFUkFUSU9O
X1NVQ0NFRURFRCwKIEFVWF9DSEFOTkVMX09QRVJBVElPTl9GQUlMRURfUkVBU09OX1VOS05PV04s
CiBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fRkFJTEVEX0lOVkFMSURfUkVQTFksCiBBVVhfQ0hBTk5F
TF9PUEVSQVRJT05fRkFJTEVEX1RJTUVPVVQsCiBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fRkFJTEVE
X0hQRF9ESVNDT04sCiBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fRkFJTEVEX0VOR0lORV9BQ1FVSVJF
Cn07CgoKc3RydWN0IGF1eF9yZXF1ZXN0X3RyYW5zYWN0aW9uX2RhdGEgewogZW51bSBhdXhfdHJh
bnNhY3Rpb25fdHlwZSB0eXBlOwogZW51bSBpMmNhdXhfdHJhbnNhY3Rpb25fYWN0aW9uIGFjdGlv
bjsKCiB1aW50MzJfdCBhZGRyZXNzOwoKIHVpbnQ4X3QgZGVsYXk7CiB1aW50MzJfdCBsZW5ndGg7
CiB1aW50OF90ICpkYXRhOwp9OwoKZW51bSBhdXhfdHJhbnNhY3Rpb25fcmVwbHkgewogQVVYX1RS
QU5TQUNUSU9OX1JFUExZX0FVWF9BQ0sgPSAweDAwLAogQVVYX1RSQU5TQUNUSU9OX1JFUExZX0FV
WF9OQUNLID0gMHgwMSwKIEFVWF9UUkFOU0FDVElPTl9SRVBMWV9BVVhfREVGRVIgPSAweDAyLAog
QVVYX1RSQU5TQUNUSU9OX1JFUExZX0kyQ19PVkVSX0FVWF9OQUNLID0gMHgwNCwKIEFVWF9UUkFO
U0FDVElPTl9SRVBMWV9JMkNfT1ZFUl9BVVhfREVGRVIgPSAweDA4LAoKIEFVWF9UUkFOU0FDVElP
Tl9SRVBMWV9JMkNfQUNLID0gMHgwMCwKIEFVWF9UUkFOU0FDVElPTl9SRVBMWV9JMkNfTkFDSyA9
IDB4MTAsCiBBVVhfVFJBTlNBQ1RJT05fUkVQTFlfSTJDX0RFRkVSID0gMHgyMCwKCiBBVVhfVFJB
TlNBQ1RJT05fUkVQTFlfSFBEX0RJU0NPTiA9IDB4NDAsCgogQVVYX1RSQU5TQUNUSU9OX1JFUExZ
X0lOVkFMSUQgPSAweEZGCn07CgpzdHJ1Y3QgYXV4X3JlcGx5X3RyYW5zYWN0aW9uX2RhdGEgewog
ZW51bSBhdXhfdHJhbnNhY3Rpb25fcmVwbHkgc3RhdHVzOwogdWludDMyX3QgbGVuZ3RoOwogdWlu
dDhfdCAqZGF0YTsKfTsKCnN0cnVjdCBpMmNfcGF5bG9hZCB7CiBib29sIHdyaXRlOwogdWludDhf
dCBhZGRyZXNzOwogdWludDMyX3QgbGVuZ3RoOwogdWludDhfdCAqZGF0YTsKfTsKCmVudW0gaTJj
X2NvbW1hbmRfZW5naW5lIHsKIEkyQ19DT01NQU5EX0VOR0lORV9ERUZBVUxULAogSTJDX0NPTU1B
TkRfRU5HSU5FX1NXLAogSTJDX0NPTU1BTkRfRU5HSU5FX0hXCn07CgpzdHJ1Y3QgaTJjX2NvbW1h
bmQgewogc3RydWN0IGkyY19wYXlsb2FkICpwYXlsb2FkczsKIHVpbnQ4X3QgbnVtYmVyX29mX3Bh
eWxvYWRzOwoKIGVudW0gaTJjX2NvbW1hbmRfZW5naW5lIGVuZ2luZTsKCgoKIHVpbnQzMl90IHNw
ZWVkOwp9OwoKc3RydWN0IGdwaW9fZGRjX2h3X2luZm8gewogYm9vbCBod19zdXBwb3J0ZWQ7CiB1
aW50MzJfdCBkZGNfY2hhbm5lbDsKfTsKCnN0cnVjdCBkZGMgewogc3RydWN0IGdwaW8gKnBpbl9k
YXRhOwogc3RydWN0IGdwaW8gKnBpbl9jbG9jazsKIHN0cnVjdCBncGlvX2RkY19od19pbmZvIGh3
X2luZm87CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4Owp9OwoKdW5pb24gZGRjX3dhIHsKIHN0cnVj
dCB7CiAgdWludDMyX3QgRFBfU0tJUF9QT1dFUl9PRkY6MTsKICB1aW50MzJfdCBEUF9BVVhfUE9X
RVJfVVBfV0FfREVMQVk6MTsKIH0gYml0czsKIHVpbnQzMl90IHJhdzsKfTsKCnN0cnVjdCBkZGNf
ZmxhZ3MgewogdWludDhfdCBFRElEX1FVRVJZX0RPTkVfT05DRToxOwogdWludDhfdCBJU19JTlRF
Uk5BTF9ESVNQTEFZOjE7CiB1aW50OF90IEZPUkNFX1JFQURfUkVQRUFURURfU1RBUlQ6MTsKIHVp
bnQ4X3QgRURJRF9TVFJFU1NfUkVBRDoxOwoKfTsKCmVudW0gZGRjX3RyYW5zYWN0aW9uX3R5cGUg
ewogRERDX1RSQU5TQUNUSU9OX1RZUEVfTk9ORSA9IDAsCiBERENfVFJBTlNBQ1RJT05fVFlQRV9J
MkMsCiBERENfVFJBTlNBQ1RJT05fVFlQRV9JMkNfT1ZFUl9BVVgsCiBERENfVFJBTlNBQ1RJT05f
VFlQRV9JMkNfT1ZFUl9BVVhfV0lUSF9ERUZFUiwKIEREQ19UUkFOU0FDVElPTl9UWVBFX0kyQ19P
VkVSX0FVWF9SRVRSWV9ERUZFUgp9OwoKZW51bSBkaXNwbGF5X2RvbmdsZV90eXBlIHsKIERJU1BM
QVlfRE9OR0xFX05PTkUgPSAwLAoKIERJU1BMQVlfRE9OR0xFX0RQX1ZHQV9DT05WRVJURVIsCiBE
SVNQTEFZX0RPTkdMRV9EUF9EVklfQ09OVkVSVEVSLAogRElTUExBWV9ET05HTEVfRFBfSERNSV9D
T05WRVJURVIsCgogRElTUExBWV9ET05HTEVfRFBfRFZJX0RPTkdMRSwKIERJU1BMQVlfRE9OR0xF
X0RQX0hETUlfRE9OR0xFLAoKIERJU1BMQVlfRE9OR0xFX0RQX0hETUlfTUlTTUFUQ0hFRF9ET05H
TEUsCn07CgpzdHJ1Y3QgZGRjX3NlcnZpY2Ugewogc3RydWN0IGRkYyAqZGRjX3BpbjsKIHN0cnVj
dCBkZGNfZmxhZ3MgZmxhZ3M7CiB1bmlvbiBkZGNfd2Egd2E7CiBlbnVtIGRkY190cmFuc2FjdGlv
bl90eXBlIHRyYW5zYWN0aW9uX3R5cGU7CiBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5cGUgZG9uZ2xl
X3R5cGU7CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4Owogc3RydWN0IGRjX2xpbmsgKmxpbms7Cgog
dWludDMyX3QgYWRkcmVzczsKIHVpbnQzMl90IGVkaWRfYnVmX2xlbjsKIHVpbnQ4X3QgZWRpZF9i
dWZbMTAyNF07Cn07CiMgMTMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvZGNfdHlwZXMuaCIgMgoKZW51bSB0aWxpbmdfbW9kZSB7CiBUSUxJTkdfTU9ERV9JTlZB
TElELAogVElMSU5HX01PREVfTElORUFSLAogVElMSU5HX01PREVfVElMRUQsCiBUSUxJTkdfTU9E
RV9DT1VOVAp9OwoKZW51bSB2aWV3XzNkX2Zvcm1hdCB7CiBWSUVXXzNEX0ZPUk1BVF9OT05FID0g
MCwKIFZJRVdfM0RfRk9STUFUX0ZSQU1FX1NFUVVFTlRJQUwsCiBWSUVXXzNEX0ZPUk1BVF9TSURF
X0JZX1NJREUsCiBWSUVXXzNEX0ZPUk1BVF9UT1BfQU5EX0JPVFRPTSwKIFZJRVdfM0RfRk9STUFU
X0NPVU5ULAogVklFV18zRF9GT1JNQVRfRklSU1QgPSBWSUVXXzNEX0ZPUk1BVF9GUkFNRV9TRVFV
RU5USUFMCn07CgplbnVtIHBsYW5lX3N0ZXJlb19mb3JtYXQgewogUExBTkVfU1RFUkVPX0ZPUk1B
VF9OT05FID0gMCwKIFBMQU5FX1NURVJFT19GT1JNQVRfU0lERV9CWV9TSURFID0gMSwKIFBMQU5F
X1NURVJFT19GT1JNQVRfVE9QX0FORF9CT1RUT00gPSAyLAogUExBTkVfU1RFUkVPX0ZPUk1BVF9G
UkFNRV9BTFRFUk5BVEUgPSAzLAogUExBTkVfU1RFUkVPX0ZPUk1BVF9ST1dfSU5URVJMRUFWRUQg
PSA1LAogUExBTkVfU1RFUkVPX0ZPUk1BVF9DT0xVTU5fSU5URVJMRUFWRUQgPSA2LAogUExBTkVf
U1RFUkVPX0ZPUk1BVF9DSEVDS0VSX0JPQVJEID0gNwp9OwoKCgoKCgplbnVtIGRjX2VkaWRfY29u
bmVjdG9yX3R5cGUgewogRENfRURJRF9DT05ORUNUT1JfVU5LTk9XTiA9IDAsCiBEQ19FRElEX0NP
Tk5FQ1RPUl9BTkFMT0cgPSAxLAogRENfRURJRF9DT05ORUNUT1JfRElHSVRBTCA9IDEwLAogRENf
RURJRF9DT05ORUNUT1JfRFZJID0gMTEsCiBEQ19FRElEX0NPTk5FQ1RPUl9IRE1JQSA9IDEyLAog
RENfRURJRF9DT05ORUNUT1JfTURESSA9IDE0LAogRENfRURJRF9DT05ORUNUT1JfRElTUExBWVBP
UlQgPSAxNQp9OwoKZW51bSBkY19lZGlkX3N0YXR1cyB7CiBFRElEX09LLAogRURJRF9CQURfSU5Q
VVQsCiBFRElEX05PX1JFU1BPTlNFLAogRURJRF9CQURfQ0hFQ0tTVU0sCiBFRElEX1RIRV9TQU1F
LAp9OwoKZW51bSBhY3RfcmV0dXJuX3N0YXR1cyB7CiBBQ1RfU1VDQ0VTUywKIEFDVF9MSU5LX0xP
U1QsCiBBQ1RfRkFJTEVECn07CgoKc3RydWN0IGRjX2NlYV9hdWRpb19tb2RlIHsKIHVpbnQ4X3Qg
Zm9ybWF0X2NvZGU7CiB1aW50OF90IGNoYW5uZWxfY291bnQ7CiB1aW50OF90IHNhbXBsZV9yYXRl
OwogdW5pb24gewogIHVpbnQ4X3Qgc2FtcGxlX3NpemU7CgogIHVpbnQ4X3QgbWF4X2JpdF9yYXRl
OwogIHVpbnQ4X3QgYXVkaW9fY29kZWNfdmVuZG9yX3NwZWNpZmljOwogfTsKfTsKCnN0cnVjdCBk
Y19lZGlkIHsKIHVpbnQzMl90IGxlbmd0aDsKIHVpbnQ4X3QgcmF3X2VkaWRbMTAyNF07Cn07CiMg
MjE1ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlwZXMu
aCIKdW5pb24gZGlzcGxheV9jb250ZW50X3N1cHBvcnQgewogdW5zaWduZWQgaW50IHJhdzsKIHN0
cnVjdCB7CiAgdW5zaWduZWQgaW50IHZhbGlkX2NvbnRlbnRfdHlwZSA6MTsKICB1bnNpZ25lZCBp
bnQgZ2FtZV9jb250ZW50IDoxOwogIHVuc2lnbmVkIGludCBjaW5lbWFfY29udGVudCA6MTsKICB1
bnNpZ25lZCBpbnQgcGhvdG9fY29udGVudCA6MTsKICB1bnNpZ25lZCBpbnQgZ3JhcGhpY3NfY29u
dGVudCA6MTsKICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQgOjI3OwogfSBiaXRzOwp9OwoKc3RydWN0
IGRjX3BhbmVsX3BhdGNoIHsKIHVuc2lnbmVkIGludCBkcHBvd2VydXBfZGVsYXk7CiB1bnNpZ25l
ZCBpbnQgZXh0cmFfdDEyX21zOwogdW5zaWduZWQgaW50IGV4dHJhX2RlbGF5X2JhY2tsaWdodF9v
ZmY7CiB1bnNpZ25lZCBpbnQgZXh0cmFfdDdfbXM7CiB1bnNpZ25lZCBpbnQgbWFuYWdlX3NlY29u
ZGFyeV9saW5rOwp9OwoKc3RydWN0IGRjX2VkaWRfY2FwcyB7CgogdWludDE2X3QgbWFudWZhY3R1
cmVyX2lkOwogdWludDE2X3QgcHJvZHVjdF9pZDsKIHVpbnQzMl90IHNlcmlhbF9udW1iZXI7CiB1
aW50OF90IG1hbnVmYWN0dXJlX3dlZWs7CiB1aW50OF90IG1hbnVmYWN0dXJlX3llYXI7CiB1aW50
OF90IGRpc3BsYXlfbmFtZVsyMF07CgoKIHVpbnQ4X3Qgc3BlYWtlcl9mbGFnczsKIHVpbnQzMl90
IGF1ZGlvX21vZGVfY291bnQ7CiBzdHJ1Y3QgZGNfY2VhX2F1ZGlvX21vZGUgYXVkaW9fbW9kZXNb
MTZdOwogdWludDMyX3QgYXVkaW9fbGF0ZW5jeTsKIHVpbnQzMl90IHZpZGVvX2xhdGVuY3k7Cgog
dW5pb24gZGlzcGxheV9jb250ZW50X3N1cHBvcnQgY29udGVudF9zdXBwb3J0OwoKIHVpbnQ4X3Qg
cXNfYml0OwogdWludDhfdCBxeV9iaXQ7CgoKIGJvb2wgbHRlXzM0MG1jc2Nfc2NyYW1ibGU7Cgog
Ym9vbCBlZGlkX2hkbWk7CiBib29sIGhkcl9zdXBwb3J0ZWQ7Cgogc3RydWN0IGRjX3BhbmVsX3Bh
dGNoIHBhbmVsX3BhdGNoOwp9OwoKc3RydWN0IHZpZXcgewogdWludDMyX3Qgd2lkdGg7CiB1aW50
MzJfdCBoZWlnaHQ7Cn07CgpzdHJ1Y3QgZGNfbW9kZV9mbGFncyB7CgogdWludDMyX3QgSU5URVJM
QUNFIDoxOwoKIHVpbnQzMl90IE5BVElWRSA6MTsKCiB1aW50MzJfdCBQUkVGRVJSRUQgOjE7CgoK
IHVpbnQzMl90IFJFRFVDRURfQkxBTktJTkcgOjE7CgogdWludDMyX3QgVklERU9fT1BUSU1JWkVE
X1JBVEUgOjE7CgogdWludDMyX3QgUEFDS0VEX1BJWEVMX0ZPUk1BVCA6MTsKCiB1aW50MzJfdCBQ
UkVGRVJSRURfVklFVyA6MTsKCiB1aW50MzJfdCBUSUxFRF9NT0RFIDoxOwogdWludDMyX3QgRFNF
X01PREUgOjE7CgoKCgogdWludDMyX3QgTUlSQUNBU1RfUkVGUkVTSF9ESVZJREVSOwp9OwoKCmVu
dW0gZGNfdGltaW5nX3NvdXJjZSB7CiBUSU1JTkdfU09VUkNFX1VOREVGSU5FRCwKCgogVElNSU5H
X1NPVVJDRV9VU0VSX0ZPUkNFRCwKIFRJTUlOR19TT1VSQ0VfVVNFUl9PVkVSUklERSwKIFRJTUlO
R19TT1VSQ0VfQ1VTVE9NLAogVElNSU5HX1NPVVJDRV9FWFBMSUNJVCwKCgogVElNSU5HX1NPVVJD
RV9FRElEX0NFQV9TVkRfM0QsCiBUSU1JTkdfU09VUkNFX0VESURfQ0VBX1NWRF9QUkVGRVJSRUQs
CiBUSU1JTkdfU09VUkNFX0VESURfQ0VBX1NWRF80MjAsCiBUSU1JTkdfU09VUkNFX0VESURfREVU
QUlMRUQsCiBUSU1JTkdfU09VUkNFX0VESURfRVNUQUJMSVNIRUQsCiBUSU1JTkdfU09VUkNFX0VE
SURfU1RBTkRBUkQsCiBUSU1JTkdfU09VUkNFX0VESURfQ0VBX1NWRCwKIFRJTUlOR19TT1VSQ0Vf
RURJRF9DVlRfM0JZVEUsCiBUSU1JTkdfU09VUkNFX0VESURfNEJZVEUsCiBUSU1JTkdfU09VUkNF
X1ZCSU9TLAogVElNSU5HX1NPVVJDRV9DViwKIFRJTUlOR19TT1VSQ0VfVFYsCiBUSU1JTkdfU09V
UkNFX0hETUlfVklDLAoKCiBUSU1JTkdfU09VUkNFX0RFRkFVTFQsCgoKIFRJTUlOR19TT1VSQ0Vf
Q1VTVE9NX0JBU0UsCgoKIFRJTUlOR19TT1VSQ0VfUkFOR0VMSU1JVCwKIFRJTUlOR19TT1VSQ0Vf
T1NfRk9SQ0VELAogVElNSU5HX1NPVVJDRV9JTVBMSUNJVCwKCgogVElNSU5HX1NPVVJDRV9CQVNJ
Q01PREUsCgogVElNSU5HX1NPVVJDRV9DT1VOVAp9OwoKCnN0cnVjdCBzdGVyZW9fM2RfZmVhdHVy
ZXMgewogYm9vbCBzdXBwb3J0ZWQgOwogYm9vbCBhbGxUaW1pbmdzIDsKIGJvb2wgY2xvbmVNb2Rl
IDsKIGJvb2wgc2NhbGluZyA7CiBib29sIHNpbmdsZUZyYW1lU1dQYWNrZWQ7Cn07CgplbnVtIGRj
X3RpbWluZ19zdXBwb3J0X21ldGhvZCB7CiBUSU1JTkdfU1VQUE9SVF9NRVRIT0RfVU5ERUZJTkVE
LAogVElNSU5HX1NVUFBPUlRfTUVUSE9EX0VYUExJQ0lULAogVElNSU5HX1NVUFBPUlRfTUVUSE9E
X0lNUExJQ0lULAogVElNSU5HX1NVUFBPUlRfTUVUSE9EX05BVElWRQp9OwoKc3RydWN0IGRjX21v
ZGVfaW5mbyB7CiB1aW50MzJfdCBwaXhlbF93aWR0aDsKIHVpbnQzMl90IHBpeGVsX2hlaWdodDsK
IHVpbnQzMl90IGZpZWxkX3JhdGU7CgoKCiBlbnVtIGRjX3RpbWluZ19zdGFuZGFyZCB0aW1pbmdf
c3RhbmRhcmQ7CiBlbnVtIGRjX3RpbWluZ19zb3VyY2UgdGltaW5nX3NvdXJjZTsKIHN0cnVjdCBk
Y19tb2RlX2ZsYWdzIGZsYWdzOwp9OwoKZW51bSBkY19wb3dlcl9zdGF0ZSB7CiBEQ19QT1dFUl9T
VEFURV9PTiA9IDEsCiBEQ19QT1dFUl9TVEFURV9TVEFOREJZLAogRENfUE9XRVJfU1RBVEVfU1VT
UEVORCwKIERDX1BPV0VSX1NUQVRFX09GRgp9OwoKCmVudW0gZGNfdmlkZW9fcG93ZXJfc3RhdGUg
ewogRENfVklERU9fUE9XRVJfVU5TUEVDSUZJRUQgPSAwLAogRENfVklERU9fUE9XRVJfT04gPSAx
LAogRENfVklERU9fUE9XRVJfU1RBTkRCWSwKIERDX1ZJREVPX1BPV0VSX1NVU1BFTkQsCiBEQ19W
SURFT19QT1dFUl9PRkYsCiBEQ19WSURFT19QT1dFUl9ISUJFUk5BVEUsCiBEQ19WSURFT19QT1dF
Ul9TSFVURE9XTiwKIERDX1ZJREVPX1BPV0VSX1VMUFMsCiBEQ19WSURFT19QT1dFUl9BRlRFUl9S
RVNFVCwKIERDX1ZJREVPX1BPV0VSX01BWElNVU0KfTsKCmVudW0gZGNfYWNwaV9jbV9wb3dlcl9z
dGF0ZSB7CiBEQ19BQ1BJX0NNX1BPV0VSX1NUQVRFX0QwID0gMSwKIERDX0FDUElfQ01fUE9XRVJf
U1RBVEVfRDEgPSAyLAogRENfQUNQSV9DTV9QT1dFUl9TVEFURV9EMiA9IDQsCiBEQ19BQ1BJX0NN
X1BPV0VSX1NUQVRFX0QzID0gOAp9OwoKZW51bSBkY19jb25uZWN0aW9uX3R5cGUgewogZGNfY29u
bmVjdGlvbl9ub25lLAogZGNfY29ubmVjdGlvbl9zaW5nbGUsCiBkY19jb25uZWN0aW9uX21zdF9i
cmFuY2gsCiBkY19jb25uZWN0aW9uX2FjdGl2ZV9kb25nbGUKfTsKCnN0cnVjdCBkY19jc2NfYWRq
dXN0bWVudHMgewogc3RydWN0IGZpeGVkMzFfMzIgY29udHJhc3Q7CiBzdHJ1Y3QgZml4ZWQzMV8z
MiBzYXR1cmF0aW9uOwogc3RydWN0IGZpeGVkMzFfMzIgYnJpZ2h0bmVzczsKIHN0cnVjdCBmaXhl
ZDMxXzMyIGh1ZTsKfTsKCmVudW0gZHBjZF9kb3duc3RyZWFtX3BvcnRfbWF4X2JwYyB7CiBET1dO
X1NUUkVBTV9NQVhfOEJQQyA9IDAsCiBET1dOX1NUUkVBTV9NQVhfMTBCUEMsCiBET1dOX1NUUkVB
TV9NQVhfMTJCUEMsCiBET1dOX1NUUkVBTV9NQVhfMTZCUEMKfTsKCgplbnVtIGxpbmtfdHJhaW5p
bmdfb2Zmc2V0IHsKIERQUlggPSAwLAogTFRUUFJfUEhZX1JFUEVBVEVSMSA9IDEsCiBMVFRQUl9Q
SFlfUkVQRUFURVIyID0gMiwKIExUVFBSX1BIWV9SRVBFQVRFUjMgPSAzLAogTFRUUFJfUEhZX1JF
UEVBVEVSNCA9IDQsCiBMVFRQUl9QSFlfUkVQRUFURVI1ID0gNSwKIExUVFBSX1BIWV9SRVBFQVRF
UjYgPSA2LAogTFRUUFJfUEhZX1JFUEVBVEVSNyA9IDcsCiBMVFRQUl9QSFlfUkVQRUFURVI4ID0g
OAp9OwoKc3RydWN0IGRjX2x0dHByX2NhcHMgewogdW5pb24gZHBjZF9yZXYgcmV2aXNpb247CiB1
aW50OF90IG1vZGU7CiB1aW50OF90IG1heF9sYW5lX2NvdW50OwogdWludDhfdCBtYXhfbGlua19y
YXRlOwogdWludDhfdCBwaHlfcmVwZWF0ZXJfY250OwogdWludDhfdCBtYXhfZXh0X3RpbWVvdXQ7
CiB1aW50OF90IGF1eF9yZF9pbnRlcnZhbFs4IC0gMV07Cn07CgpzdHJ1Y3QgZGNfZG9uZ2xlX2Nh
cHMgewoKIGVudW0gZGlzcGxheV9kb25nbGVfdHlwZSBkb25nbGVfdHlwZTsKIGJvb2wgZXh0ZW5k
ZWRDYXBWYWxpZDsKCgogYm9vbCBpc19kcF9oZG1pX3MzZF9jb252ZXJ0ZXI7CiBib29sIGlzX2Rw
X2hkbWlfeWNiY3I0MjJfcGFzc190aHJvdWdoOwogYm9vbCBpc19kcF9oZG1pX3ljYmNyNDIwX3Bh
c3NfdGhyb3VnaDsKIGJvb2wgaXNfZHBfaGRtaV95Y2JjcjQyMl9jb252ZXJ0ZXI7CiBib29sIGlz
X2RwX2hkbWlfeWNiY3I0MjBfY29udmVydGVyOwogdWludDMyX3QgZHBfaGRtaV9tYXhfYnBjOwog
dWludDMyX3QgZHBfaGRtaV9tYXhfcGl4ZWxfY2xrX2luX2toejsKfTsKCmVudW0gc2NhbGluZ190
cmFuc2Zvcm1hdGlvbiB7CiBTQ0FMSU5HX1RSQU5TRk9STUFUSU9OX1VOSU5JVElBTElaRUQsCiBT
Q0FMSU5HX1RSQU5TRk9STUFUSU9OX0lERU5USVRZID0gMHgwMDAxLAogU0NBTElOR19UUkFOU0ZP
Uk1BVElPTl9DRU5URVJfVElNSU5HID0gMHgwMDAyLAogU0NBTElOR19UUkFOU0ZPUk1BVElPTl9G
VUxMX1NDUkVFTl9TQ0FMRSA9IDB4MDAwNCwKIFNDQUxJTkdfVFJBTlNGT1JNQVRJT05fUFJFU0VS
VkVfQVNQRUNUX1JBVElPX1NDQUxFID0gMHgwMDA4LAogU0NBTElOR19UUkFOU0ZPUk1BVElPTl9E
QUxfREVDSURFID0gMHgwMDEwLAogU0NBTElOR19UUkFOU0ZPUk1BVElPTl9JTlZBTElEID0gMHg4
MDAwMDAwMCwKCgogU0NBTElOR19UUkFOU0ZPUk1BVElPTl9CRUdJTkcgPSBTQ0FMSU5HX1RSQU5T
Rk9STUFUSU9OX0lERU5USVRZLAogU0NBTElOR19UUkFOU0ZPUk1BVElPTl9FTkQgPQogIFNDQUxJ
TkdfVFJBTlNGT1JNQVRJT05fUFJFU0VSVkVfQVNQRUNUX1JBVElPX1NDQUxFCn07CgplbnVtIGRp
c3BsYXlfY29udGVudF90eXBlIHsKIERJU1BMQVlfQ09OVEVOVF9UWVBFX05PX0RBVEEgPSAwLAog
RElTUExBWV9DT05URU5UX1RZUEVfR1JBUEhJQ1MgPSAxLAogRElTUExBWV9DT05URU5UX1RZUEVf
UEhPVE8gPSAyLAogRElTUExBWV9DT05URU5UX1RZUEVfQ0lORU1BID0gNCwKIERJU1BMQVlfQ09O
VEVOVF9UWVBFX0dBTUUgPSA4Cn07CgoKc3RydWN0IGR3Yl9zdGVyZW9fcGFyYW1zIHsKIGJvb2wg
c3RlcmVvX2VuYWJsZWQ7CiBlbnVtIGR3Yl9zdGVyZW9fdHlwZSBzdGVyZW9fdHlwZTsKIGJvb2wg
c3RlcmVvX3BvbGFyaXR5OwogZW51bSBkd2Jfc3RlcmVvX2V5ZV9zZWxlY3Qgc3RlcmVvX2V5ZV9z
ZWxlY3Q7Cn07CgpzdHJ1Y3QgZGNfZHdiX2Nudl9wYXJhbXMgewogdW5zaWduZWQgaW50IHNyY193
aWR0aDsKIHVuc2lnbmVkIGludCBzcmNfaGVpZ2h0OwogdW5zaWduZWQgaW50IGNyb3Bfd2lkdGg7
CiBib29sIGNyb3BfZW47CiB1bnNpZ25lZCBpbnQgY3JvcF9oZWlnaHQ7CiB1bnNpZ25lZCBpbnQg
Y3JvcF94OwogdW5zaWduZWQgaW50IGNyb3BfeTsKIGVudW0gZHdiX2Nudl9vdXRfYnBjIGNudl9v
dXRfYnBjOwp9OwoKc3RydWN0IGRjX2R3Yl9wYXJhbXMgewogc3RydWN0IGRjX2R3Yl9jbnZfcGFy
YW1zIGNudl9wYXJhbXM7CiB1bnNpZ25lZCBpbnQgZGVzdF93aWR0aDsKIHVuc2lnbmVkIGludCBk
ZXN0X2hlaWdodDsKIGVudW0gZHdiX3NjYWxlcl9tb2RlIG91dF9mb3JtYXQ7CiBlbnVtIGR3Yl9v
dXRwdXRfZGVwdGggb3V0cHV0X2RlcHRoOwogZW51bSBkd2JfY2FwdHVyZV9yYXRlIGNhcHR1cmVf
cmF0ZTsKIHN0cnVjdCBzY2FsaW5nX3RhcHMgc2NhbGVyX3RhcHM7CiBlbnVtIGR3Yl9zdWJzYW1w
bGVfcG9zaXRpb24gc3Vic2FtcGxlX3Bvc2l0aW9uOwogc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMg
Km91dF90cmFuc2Zlcl9mdW5jOwp9OwoKCgp1bmlvbiBhdWRpb19zYW1wbGVfcmF0ZXMgewogc3Ry
dWN0IHNhbXBsZV9yYXRlcyB7CiAgdWludDhfdCBSQVRFXzMyOjE7CiAgdWludDhfdCBSQVRFXzQ0
XzE6MTsKICB1aW50OF90IFJBVEVfNDg6MTsKICB1aW50OF90IFJBVEVfODhfMjoxOwogIHVpbnQ4
X3QgUkFURV85NjoxOwogIHVpbnQ4X3QgUkFURV8xNzZfNDoxOwogIHVpbnQ4X3QgUkFURV8xOTI6
MTsKIH0gcmF0ZTsKCiB1aW50OF90IGFsbDsKfTsKCnN0cnVjdCBhdWRpb19zcGVha2VyX2ZsYWdz
IHsKIHVpbnQzMl90IEZMX0ZSOjE7CiB1aW50MzJfdCBMRkU6MTsKIHVpbnQzMl90IEZDOjE7CiB1
aW50MzJfdCBSTF9SUjoxOwogdWludDMyX3QgUkM6MTsKIHVpbnQzMl90IEZMQ19GUkM6MTsKIHVp
bnQzMl90IFJMQ19SUkM6MTsKIHVpbnQzMl90IFNVUFBPUlRfQUk6MTsKfTsKCnN0cnVjdCBhdWRp
b19zcGVha2VyX2luZm8gewogdWludDMyX3QgQUxMU1BFQUtFUlM6NzsKIHVpbnQzMl90IFNVUFBP
UlRfQUk6MTsKfTsKCgpzdHJ1Y3QgYXVkaW9faW5mb19mbGFncyB7CgogdW5pb24gewoKICBzdHJ1
Y3QgYXVkaW9fc3BlYWtlcl9mbGFncyBzcGVha2VyX2ZsYWdzOwogIHN0cnVjdCBhdWRpb19zcGVh
a2VyX2luZm8gaW5mbzsKCiAgdWludDhfdCBhbGw7CiB9Owp9OwoKZW51bSBhdWRpb19mb3JtYXRf
Y29kZSB7CiBBVURJT19GT1JNQVRfQ09ERV9GSVJTVCA9IDEsCiBBVURJT19GT1JNQVRfQ09ERV9M
SU5FQVJQQ00gPSBBVURJT19GT1JNQVRfQ09ERV9GSVJTVCwKCiBBVURJT19GT1JNQVRfQ09ERV9B
QzMsCgogQVVESU9fRk9STUFUX0NPREVfTVBFRzEsCgogQVVESU9fRk9STUFUX0NPREVfTVAzLAoK
IEFVRElPX0ZPUk1BVF9DT0RFX01QRUcyLAogQVVESU9fRk9STUFUX0NPREVfQUFDLAogQVVESU9f
Rk9STUFUX0NPREVfRFRTLAogQVVESU9fRk9STUFUX0NPREVfQVRSQUMsCiBBVURJT19GT1JNQVRf
Q09ERV8xQklUQVVESU8sCiBBVURJT19GT1JNQVRfQ09ERV9ET0xCWURJR0lUQUxQTFVTLAogQVVE
SU9fRk9STUFUX0NPREVfRFRTX0hELAogQVVESU9fRk9STUFUX0NPREVfTUFUX01MUCwKIEFVRElP
X0ZPUk1BVF9DT0RFX0RTVCwKIEFVRElPX0ZPUk1BVF9DT0RFX1dNQVBSTywKIEFVRElPX0ZPUk1B
VF9DT0RFX0xBU1QsCiBBVURJT19GT1JNQVRfQ09ERV9DT1VOVCA9CiAgQVVESU9fRk9STUFUX0NP
REVfTEFTVCAtIEFVRElPX0ZPUk1BVF9DT0RFX0ZJUlNUCn07CgpzdHJ1Y3QgYXVkaW9fbW9kZSB7
CgogZW51bSBhdWRpb19mb3JtYXRfY29kZSBmb3JtYXRfY29kZTsKCiB1aW50OF90IGNoYW5uZWxf
Y291bnQ7CgogdW5pb24gYXVkaW9fc2FtcGxlX3JhdGVzIHNhbXBsZV9yYXRlczsKIHVuaW9uIHsK
CiAgdWludDhfdCBzYW1wbGVfc2l6ZTsKCiAgdWludDhfdCBtYXhfYml0X3JhdGU7CgogIHVpbnQ4
X3QgdmVuZG9yX3NwZWNpZmljOwogfTsKfTsKCnN0cnVjdCBhdWRpb19pbmZvIHsKIHN0cnVjdCBh
dWRpb19pbmZvX2ZsYWdzIGZsYWdzOwogdWludDMyX3QgdmlkZW9fbGF0ZW5jeTsKIHVpbnQzMl90
IGF1ZGlvX2xhdGVuY3k7CiB1aW50MzJfdCBkaXNwbGF5X2luZGV4OwogdWludDhfdCBkaXNwbGF5
X25hbWVbMjBdOwogdWludDMyX3QgbWFudWZhY3R1cmVfaWQ7CiB1aW50MzJfdCBwcm9kdWN0X2lk
OwoKIHVpbnQzMl90IHBvcnRfaWRbMl07CiB1aW50MzJfdCBtb2RlX2NvdW50OwoKIHN0cnVjdCBh
dWRpb19tb2RlIG1vZGVzWzE2XTsKfTsKc3RydWN0IGF1ZGlvX2NoZWNrIHsKIHVuc2lnbmVkIGlu
dCBhdWRpb19wYWNrZXRfdHlwZTsKIHVuc2lnbmVkIGludCBtYXhfYXVkaW9zYW1wbGVfcmF0ZTsK
IHVuc2lnbmVkIGludCBhY2F0Owp9OwplbnVtIGRjX2luZm9mcmFtZV90eXBlIHsKIERDX0hETUlf
SU5GT0ZSQU1FX1RZUEVfVkVORE9SID0gMHg4MSwKIERDX0hETUlfSU5GT0ZSQU1FX1RZUEVfQVZJ
ID0gMHg4MiwKIERDX0hETUlfSU5GT0ZSQU1FX1RZUEVfU1BEID0gMHg4MywKIERDX0hETUlfSU5G
T0ZSQU1FX1RZUEVfQVVESU8gPSAweDg0LAogRENfRFBfSU5GT0ZSQU1FX1RZUEVfUFBTID0gMHgx
MCwKfTsKCnN0cnVjdCBkY19pbmZvX3BhY2tldCB7CiBib29sIHZhbGlkOwogdWludDhfdCBoYjA7
CiB1aW50OF90IGhiMTsKIHVpbnQ4X3QgaGIyOwogdWludDhfdCBoYjM7CiB1aW50OF90IHNiWzMy
XTsKfTsKCnN0cnVjdCBkY19pbmZvX3BhY2tldF8xMjggewogYm9vbCB2YWxpZDsKIHVpbnQ4X3Qg
aGIwOwogdWludDhfdCBoYjE7CiB1aW50OF90IGhiMjsKIHVpbnQ4X3QgaGIzOwogdWludDhfdCBz
YlsxMjhdOwp9OwoKCgpzdHJ1Y3QgZGNfcGxhbmVfZmxpcF90aW1lIHsKIHVuc2lnbmVkIGludCB0
aW1lX2VsYXBzZWRfaW5fdXNbMTBdOwogdW5zaWduZWQgaW50IGluZGV4OwogdW5zaWduZWQgaW50
IHByZXZfdXBkYXRlX3RpbWVfaW5fdXM7Cn07CgpzdHJ1Y3QgcHNyX2NvbmZpZyB7CiB1bnNpZ25l
ZCBjaGFyIHBzcl92ZXJzaW9uOwogdW5zaWduZWQgaW50IHBzcl9yZmJfc2V0dXBfdGltZTsKIGJv
b2wgcHNyX2V4aXRfbGlua190cmFpbmluZ19yZXF1aXJlZDsKIGJvb2wgcHNyX2ZyYW1lX2NhcHR1
cmVfaW5kaWNhdGlvbl9yZXE7CiB1bnNpZ25lZCBpbnQgcHNyX3NkcF90cmFuc21pdF9saW5lX251
bV9kZWFkbGluZTsKIGJvb2wgYWxsb3dfc211X29wdGltaXphdGlvbnM7Cn07Cgp1bmlvbiBkbWN1
X3Bzcl9sZXZlbCB7CiBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCBTS0lQX0NSQzoxOwogIHVuc2ln
bmVkIGludCBTS0lQX0RQX1ZJRF9TVFJFQU1fRElTQUJMRToxOwogIHVuc2lnbmVkIGludCBTS0lQ
X1BIWV9QT1dFUl9ET1dOOjE7CiAgdW5zaWduZWQgaW50IFNLSVBfQVVYX0FDS19DSEVDSzoxOwog
IHVuc2lnbmVkIGludCBTS0lQX0NSVENfRElTQUJMRToxOwogIHVuc2lnbmVkIGludCBTS0lQX0FV
WF9SRkJfQ0FQVFVSRV9DSEVDSzoxOwogIHVuc2lnbmVkIGludCBTS0lQX1NNVV9OT1RJRklDQVRJ
T046MTsKICB1bnNpZ25lZCBpbnQgU0tJUF9BVVRPX1NUQVRFX0FEVkFOQ0U6MTsKICB1bnNpZ25l
ZCBpbnQgRElTQUJMRV9QU1JfRU5UUllfQUJPUlQ6MTsKICB1bnNpZ25lZCBpbnQgU0tJUF9TSU5H
TEVfT1RHX0RJU0FCTEU6MTsKICB1bnNpZ25lZCBpbnQgUkVTRVJWRUQ6MjI7CiB9IGJpdHM7CiB1
bnNpZ25lZCBpbnQgdTMyYWxsOwp9OwoKZW51bSBwaHlzaWNhbF9waHlfaWQgewogUEhZTERfMCwK
IFBIWUxEXzEsCiBQSFlMRF8yLAogUEhZTERfMywKIFBIWUxEXzQsCiBQSFlMRF81LAogUEhZTERf
NiwKIFBIWUxEXzcsCiBQSFlMRF84LAogUEhZTERfOSwKIFBIWUxEX0NPVU5ULAogUEhZTERfVU5L
Tk9XTiA9ICgtMUwpCn07CgplbnVtIHBoeV90eXBlIHsKIFBIWV9UWVBFX1VOS05PV04gPSAxLAog
UEhZX1RZUEVfUENJRV9QSFkgPSAyLAogUEhZX1RZUEVfVU5JUEhZID0gMywKfTsKCnN0cnVjdCBw
c3JfY29udGV4dCB7CgogZW51bSBjaGFubmVsX2lkIGNoYW5uZWw7CgogZW51bSB0cmFuc21pdHRl
ciB0cmFuc21pdHRlcklkOwoKIGVudW0gZW5naW5lX2lkIGVuZ2luZUlkOwoKIGVudW0gY29udHJv
bGxlcl9pZCBjb250cm9sbGVySWQ7CgogZW51bSBwaHlfdHlwZSBwaHlUeXBlOwoKIGVudW0gcGh5
c2ljYWxfcGh5X2lkIHNtdVBoeUlkOwoKCgoKCiB1bnNpZ25lZCBpbnQgY3J0Y1RpbWluZ1ZlcnRp
Y2FsVG90YWw7CgoKCiBib29sIHBzclN1cHBvcnRlZERpc3BsYXlDb25maWc7CgogYm9vbCBwc3JF
eGl0TGlua1RyYWluaW5nUmVxdWlyZWQ7CgoKCgoKCiBib29sIHBzckZyYW1lQ2FwdHVyZUluZGlj
YXRpb25SZXE7CgoKCiB1bnNpZ25lZCBpbnQgc2RwVHJhbnNtaXRMaW5lTnVtRGVhZGxpbmU7CgoK
CiB1bnNpZ25lZCBpbnQgdnN5bmNfcmF0ZV9oejsKIHVuc2lnbmVkIGludCBza2lwUHNyV2FpdEZv
clBsbExvY2s7CiB1bnNpZ25lZCBpbnQgbnVtYmVyT2ZDb250cm9sbGVyczsKCgoKCiBib29sIHJm
Yl91cGRhdGVfYXV0b19lbjsKCiB1bnNpZ25lZCBpbnQgdGltZWh5c3RfZnJhbWVzOwoKIHVuc2ln
bmVkIGludCBoeXN0X2xpbmVzOwoKCgogdW5zaWduZWQgaW50IGF1eF9yZXBlYXRzOwoKIHVuaW9u
IGRtY3VfcHNyX2xldmVsIHBzcl9sZXZlbDsKCgoKIHVuc2lnbmVkIGludCBmcmFtZV9kZWxheTsK
IGJvb2wgYWxsb3dfc211X29wdGltaXphdGlvbnM7Cn07CgpzdHJ1Y3QgY29sb3JzcGFjZV90cmFu
c2Zvcm0gewogc3RydWN0IGZpeGVkMzFfMzIgbWF0cml4WzEyXTsKIGJvb2wgZW5hYmxlX3JlbWFw
Owp9OwoKZW51bSBpMmNfbW90X21vZGUgewogSTJDX01PVF9VTkRFRiwKIEkyQ19NT1RfVFJVRSwK
IEkyQ19NT1RfRkFMU0UKfTsKCnN0cnVjdCBBc2ljU3RhdGVFeCB7CiB1bnNpZ25lZCBpbnQgbWVt
b3J5Q2xvY2s7CiB1bnNpZ25lZCBpbnQgZGlzcGxheUNsb2NrOwogdW5zaWduZWQgaW50IGVuZ2lu
ZUNsb2NrOwogdW5zaWduZWQgaW50IG1heFN1cHBvcnRlZERwcENsb2NrOwogdW5zaWduZWQgaW50
IGRwcENsb2NrOwogdW5zaWduZWQgaW50IHNvY0Nsb2NrOwogdW5zaWduZWQgaW50IGRjZkNsb2Nr
RGVlcFNsZWVwOwogdW5zaWduZWQgaW50IGZDbG9jazsKIHVuc2lnbmVkIGludCBwaHlDbG9jazsK
fTsKCgplbnVtIGRjX2Nsb2NrX3R5cGUgewogRENfQ0xPQ0tfVFlQRV9ESVNQQ0xLID0gMCwKIERD
X0NMT0NLX1RZUEVfRFBQQ0xLID0gMSwKfTsKCnN0cnVjdCBkY19jbG9ja19jb25maWcgewogdWlu
dDMyX3QgbWF4X2Nsb2NrX2toejsKIHVpbnQzMl90IG1pbl9jbG9ja19raHo7CiB1aW50MzJfdCBi
d19yZXF1aXJlcXVpcmVkX2Nsb2NrX2toejsKIHVpbnQzMl90IGN1cnJlbnRfY2xvY2tfa2h6Owp9
OwoKCnVuaW9uIGRzY19zbGljZV9jYXBzMSB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgTlVNX1NMSUNF
U18xIDogMTsKICB1aW50OF90IE5VTV9TTElDRVNfMiA6IDE7CiAgdWludDhfdCBSRVNFUlZFRCA6
IDE7CiAgdWludDhfdCBOVU1fU0xJQ0VTXzQgOiAxOwogIHVpbnQ4X3QgTlVNX1NMSUNFU182IDog
MTsKICB1aW50OF90IE5VTV9TTElDRVNfOCA6IDE7CiAgdWludDhfdCBOVU1fU0xJQ0VTXzEwIDog
MTsKICB1aW50OF90IE5VTV9TTElDRVNfMTIgOiAxOwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07
Cgp1bmlvbiBkc2Nfc2xpY2VfY2FwczIgewogc3RydWN0IHsKICB1aW50OF90IE5VTV9TTElDRVNf
MTYgOiAxOwogIHVpbnQ4X3QgTlVNX1NMSUNFU18yMCA6IDE7CiAgdWludDhfdCBOVU1fU0xJQ0VT
XzI0IDogMTsKICB1aW50OF90IFJFU0VSVkVEIDogNTsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9
OwoKdW5pb24gZHNjX2NvbG9yX2Zvcm1hdHMgewogc3RydWN0IHsKICB1aW50OF90IFJHQiA6IDE7
CiAgdWludDhfdCBZQ0JDUl80NDQgOiAxOwogIHVpbnQ4X3QgWUNCQ1JfU0lNUExFXzQyMiA6IDE7
CiAgdWludDhfdCBZQ0JDUl9OQVRJVkVfNDIyIDogMTsKICB1aW50OF90IFlDQkNSX05BVElWRV80
MjAgOiAxOwogIHVpbnQ4X3QgUkVTRVJWRUQgOiAzOwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07
Cgp1bmlvbiBkc2NfY29sb3JfZGVwdGggewogc3RydWN0IHsKICB1aW50OF90IFJFU0VSVkVEMSA6
IDE7CiAgdWludDhfdCBDT0xPUl9ERVBUSF84X0JQQyA6IDE7CiAgdWludDhfdCBDT0xPUl9ERVBU
SF8xMF9CUEMgOiAxOwogIHVpbnQ4X3QgQ09MT1JfREVQVEhfMTJfQlBDIDogMTsKICB1aW50OF90
IFJFU0VSVkVEMiA6IDM7CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnN0cnVjdCBkc2NfZGVj
X2RwY2RfY2FwcyB7CiBib29sIGlzX2RzY19zdXBwb3J0ZWQ7CiB1aW50OF90IGRzY192ZXJzaW9u
OwogaW50MzJfdCByY19idWZmZXJfc2l6ZTsKIHVuaW9uIGRzY19zbGljZV9jYXBzMSBzbGljZV9j
YXBzMTsKIHVuaW9uIGRzY19zbGljZV9jYXBzMiBzbGljZV9jYXBzMjsKIGludDMyX3QgbGJfYml0
X2RlcHRoOwogYm9vbCBpc19ibG9ja19wcmVkX3N1cHBvcnRlZDsKIGludDMyX3QgZWRwX21heF9i
aXRzX3Blcl9waXhlbDsKIHVuaW9uIGRzY19jb2xvcl9mb3JtYXRzIGNvbG9yX2Zvcm1hdHM7CiB1
bmlvbiBkc2NfY29sb3JfZGVwdGggY29sb3JfZGVwdGg7CiBpbnQzMl90IHRocm91Z2hwdXRfbW9k
ZV8wX21wczsKIGludDMyX3QgdGhyb3VnaHB1dF9tb2RlXzFfbXBzOwogaW50MzJfdCBtYXhfc2xp
Y2Vfd2lkdGg7CiB1aW50MzJfdCBicHBfaW5jcmVtZW50X2RpdjsKCgogdWludDMyX3QgYnJhbmNo
X292ZXJhbGxfdGhyb3VnaHB1dF8wX21wczsKIHVpbnQzMl90IGJyYW5jaF9vdmVyYWxsX3Rocm91
Z2hwdXRfMV9tcHM7CiB1aW50MzJfdCBicmFuY2hfbWF4X2xpbmVfd2lkdGg7Cn07CiMgMzAgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvZGNjZy5oIiAy
CgpzdHJ1Y3QgZGNjZyB7CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwogY29uc3Qgc3RydWN0IGRj
Y2dfZnVuY3MgKmZ1bmNzOwoKIGludCByZWZfZHBwY2xrOwp9OwoKc3RydWN0IGRjY2dfZnVuY3Mg
ewogdm9pZCAoKnVwZGF0ZV9kcHBfZHRvKShzdHJ1Y3QgZGNjZyAqZGNjZywKICAgaW50IGRwcF9p
bnN0LAogICBpbnQgcmVxX2RwcGNsayk7CiB2b2lkICgqZ2V0X2RjY2dfcmVmX2ZyZXEpKHN0cnVj
dCBkY2NnICpkY2NnLAogICB1bnNpZ25lZCBpbnQgeHRhbGluX2ZyZXFfaW5LaHosCiAgIHVuc2ln
bmVkIGludCAqZGNjZ19yZWZfZnJlcV9pbktoeik7CiB2b2lkICgqZGNjZ19pbml0KShzdHJ1Y3Qg
ZGNjZyAqZGNjZyk7Cn07CiMgMjcgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3JfaW50ZXJuYWwuaCIgMQoj
IDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Ns
a19tZ3JfaW50ZXJuYWwuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaCIgMQojIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaCIKIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMQojIDI5ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaCIgMQojIDMwICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgoKIyAxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9sb2dnZXJfdHlwZXMuaCIgMQoj
IDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9sb2dn
ZXJfdHlwZXMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvb3NfdHlwZXMuaCIgMQojIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvaW5jbHVkZS9sb2dnZXJfdHlwZXMuaCIgMgojIDcyICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9sb2dnZXJfdHlwZXMuaCIKc3RydWN0IGRhbF9s
b2dnZXI7CgpzdHJ1Y3QgZGNfbG9nX2J1ZmZlcl9jdHggewogY2hhciAqYnVmOwogc2l6ZV90IHBv
czsKIHNpemVfdCBzaXplOwp9OwoKZW51bSBkY19sb2dfdHlwZSB7CiBMT0dfRVJST1IgPSAwLAog
TE9HX1dBUk5JTkcsCiBMT0dfREVCVUcsCiBMT0dfREMsCiBMT0dfRFROLAogTE9HX1NVUkZBQ0Us
CiBMT0dfSFdfSE9UUExVRywKIExPR19IV19MSU5LX1RSQUlOSU5HLAogTE9HX0hXX1NFVF9NT0RF
LAogTE9HX0hXX1JFU1VNRV9TMywKIExPR19IV19BVURJTywKIExPR19IV19IUERfSVJRLAogTE9H
X01TVCwKIExPR19TQ0FMRVIsCiBMT0dfQklPUywKIExPR19CQU5EV0lEVEhfQ0FMQ1MsCiBMT0df
QkFORFdJRFRIX1ZBTElEQVRJT04sCiBMT0dfSTJDX0FVWCwKIExPR19TWU5DLAogTE9HX0JBQ0tM
SUdIVCwKIExPR19GRUFUVVJFX09WRVJSSURFLAogTE9HX0RFVEVDVElPTl9FRElEX1BBUlNFUiwK
IExPR19ERVRFQ1RJT05fRFBfQ0FQUywKIExPR19SRVNPVVJDRSwKIExPR19ETUwsCiBMT0dfRVZF
TlRfTU9ERV9TRVQsCiBMT0dfRVZFTlRfREVURUNUSU9OLAogTE9HX0VWRU5UX0xJTktfVFJBSU5J
TkcsCiBMT0dfRVZFTlRfTElOS19MT1NTLAogTE9HX0VWRU5UX1VOREVSRkxPVywKIExPR19JRl9U
UkFDRSwKIExPR19QRVJGX1RSQUNFLAogTE9HX0RJU1BMQVlTVEFUUywKIExPR19IRE1JX1JFVElN
RVJfUkVEUklWRVIsCiBMT0dfRFNDLAogTE9HX0RXQiwKIExPR19HQU1NQV9ERUJVRywKIExPR19N
QVhfSFdfUE9JTlRTLAogTE9HX0FMTF9URl9DSEFOTkVMUywKIExPR19TQU1QTEVfMURMVVQsCiBM
T0dfU0VDVElPTl9UT1RBTF9DT1VOVAp9OwojIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9pbmNsdWRlL2dwaW9fdHlwZXMuaCIgMQojIDQwICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX3R5cGVzLmgiCmVudW0gZ3Bp
b19yZXN1bHQgewogR1BJT19SRVNVTFRfT0ssCiBHUElPX1JFU1VMVF9OVUxMX0hBTkRMRSwKIEdQ
SU9fUkVTVUxUX0lOVkFMSURfREFUQSwKIEdQSU9fUkVTVUxUX0RFVklDRV9CVVNZLAogR1BJT19S
RVNVTFRfT1BFTl9GQUlMRUQsCiBHUElPX1JFU1VMVF9BTFJFQURZX09QRU5FRCwKIEdQSU9fUkVT
VUxUX05PTl9TUEVDSUZJQ19FUlJPUgp9OwojIDU4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX3R5cGVzLmgiCmVudW0gZ3Bpb19pZCB7CiBHUElP
X0lEX1VOS05PV04gPSAoLTEpLAogR1BJT19JRF9ERENfREFUQSwKIEdQSU9fSURfRERDX0NMT0NL
LAogR1BJT19JRF9HRU5FUklDLAogR1BJT19JRF9IUEQsCiBHUElPX0lEX0dQSU9fUEFELAogR1BJ
T19JRF9WSVBfUEFELAogR1BJT19JRF9TWU5DLAogR1BJT19JRF9HU0wsCiBHUElPX0lEX0NPVU5U
LAogR1BJT19JRF9NSU4gPSBHUElPX0lEX0REQ19EQVRBLAogR1BJT19JRF9NQVggPSBHUElPX0lE
X0dTTAp9OwoKCgoKc3RydWN0IGdwaW9fcGluX2luZm8gewogdWludDMyX3Qgb2Zmc2V0OwogdWlu
dDMyX3Qgb2Zmc2V0X3k7CiB1aW50MzJfdCBvZmZzZXRfZW47CiB1aW50MzJfdCBvZmZzZXRfbWFz
azsKCiB1aW50MzJfdCBtYXNrOwogdWludDMyX3QgbWFza195OwogdWludDMyX3QgbWFza19lbjsK
IHVpbnQzMl90IG1hc2tfbWFzazsKfTsKCmVudW0gZ3Bpb19waW5fb3V0cHV0X3N0YXRlIHsKIEdQ
SU9fUElOX09VVFBVVF9TVEFURV9BQ1RJVkVfTE9XLAogR1BJT19QSU5fT1VUUFVUX1NUQVRFX0FD
VElWRV9ISUdILAogR1BJT19QSU5fT1VUUFVUX1NUQVRFX0RFRkFVTFQgPSBHUElPX1BJTl9PVVRQ
VVRfU1RBVEVfQUNUSVZFX0xPVwp9OwoKZW51bSBncGlvX2dlbmVyaWMgewogR1BJT19HRU5FUklD
X1VOS05PV04gPSAoLTEpLAogR1BJT19HRU5FUklDX0EsCiBHUElPX0dFTkVSSUNfQiwKIEdQSU9f
R0VORVJJQ19DLAogR1BJT19HRU5FUklDX0QsCiBHUElPX0dFTkVSSUNfRSwKIEdQSU9fR0VORVJJ
Q19GLAogR1BJT19HRU5FUklDX0csCiBHUElPX0dFTkVSSUNfQ09VTlQsCiBHUElPX0dFTkVSSUNf
TUlOID0gR1BJT19HRU5FUklDX0EsCiBHUElPX0dFTkVSSUNfTUFYID0gR1BJT19HRU5FUklDX0IK
fTsKCmVudW0gZ3Bpb19ocGQgewogR1BJT19IUERfVU5LTk9XTiA9ICgtMSksCiBHUElPX0hQRF8x
LAogR1BJT19IUERfMiwKIEdQSU9fSFBEXzMsCiBHUElPX0hQRF80LAogR1BJT19IUERfNSwKIEdQ
SU9fSFBEXzYsCiBHUElPX0hQRF9DT1VOVCwKIEdQSU9fSFBEX01JTiA9IEdQSU9fSFBEXzEsCiBH
UElPX0hQRF9NQVggPSBHUElPX0hQRF82Cn07CgplbnVtIGdwaW9fZ3Bpb19wYWQgewogR1BJT19H
UElPX1BBRF9VTktOT1dOID0gKC0xKSwKIEdQSU9fR1BJT19QQURfMCwKIEdQSU9fR1BJT19QQURf
MSwKIEdQSU9fR1BJT19QQURfMiwKIEdQSU9fR1BJT19QQURfMywKIEdQSU9fR1BJT19QQURfNCwK
IEdQSU9fR1BJT19QQURfNSwKIEdQSU9fR1BJT19QQURfNiwKIEdQSU9fR1BJT19QQURfNywKIEdQ
SU9fR1BJT19QQURfOCwKIEdQSU9fR1BJT19QQURfOSwKIEdQSU9fR1BJT19QQURfMTAsCiBHUElP
X0dQSU9fUEFEXzExLAogR1BJT19HUElPX1BBRF8xMiwKIEdQSU9fR1BJT19QQURfMTMsCiBHUElP
X0dQSU9fUEFEXzE0LAogR1BJT19HUElPX1BBRF8xNSwKIEdQSU9fR1BJT19QQURfMTYsCiBHUElP
X0dQSU9fUEFEXzE3LAogR1BJT19HUElPX1BBRF8xOCwKIEdQSU9fR1BJT19QQURfMTksCiBHUElP
X0dQSU9fUEFEXzIwLAogR1BJT19HUElPX1BBRF8yMSwKIEdQSU9fR1BJT19QQURfMjIsCiBHUElP
X0dQSU9fUEFEXzIzLAogR1BJT19HUElPX1BBRF8yNCwKIEdQSU9fR1BJT19QQURfMjUsCiBHUElP
X0dQSU9fUEFEXzI2LAogR1BJT19HUElPX1BBRF8yNywKIEdQSU9fR1BJT19QQURfMjgsCiBHUElP
X0dQSU9fUEFEXzI5LAogR1BJT19HUElPX1BBRF8zMCwKIEdQSU9fR1BJT19QQURfQ09VTlQsCiBH
UElPX0dQSU9fUEFEX01JTiA9IEdQSU9fR1BJT19QQURfMCwKIEdQSU9fR1BJT19QQURfTUFYID0g
R1BJT19HUElPX1BBRF8zMAp9OwoKZW51bSBncGlvX3ZpcF9wYWQgewogR1BJT19WSVBfUEFEX1VO
S05PV04gPSAoLTEpLAoKCiBHUElPX1ZJUF9QQURfU0NMLAoKCiBHUElPX1ZJUF9QQURfU0RBLAog
R1BJT19WSVBfUEFEX1ZIQUQsCiBHUElPX1ZJUF9QQURfVlBIQ1RMLAogR1BJT19WSVBfUEFEX1ZJ
UENMSywKIEdQSU9fVklQX1BBRF9WSUQsCiBHUElPX1ZJUF9QQURfVlBDTEswLAogR1BJT19WSVBf
UEFEX0RWQUxJRCwKIEdQSU9fVklQX1BBRF9QU1lOQywKIEdQSU9fVklQX1BBRF9DT1VOVCwKIEdQ
SU9fVklQX1BBRF9NSU4gPSBHUElPX1ZJUF9QQURfU0NMLAogR1BJT19WSVBfUEFEX01BWCA9IEdQ
SU9fVklQX1BBRF9QU1lOQwp9OwoKZW51bSBncGlvX3N5bmMgewogR1BJT19TWU5DX1VOS05PV04g
PSAoLTEpLAogR1BJT19TWU5DX0hTWU5DX0EsCiBHUElPX1NZTkNfVlNZTkNfQSwKIEdQSU9fU1lO
Q19IU1lOQ19CLAogR1BJT19TWU5DX1ZTWU5DX0IsCiBHUElPX1NZTkNfQ09VTlQsCiBHUElPX1NZ
TkNfTUlOID0gR1BJT19TWU5DX0hTWU5DX0EsCiBHUElPX1NZTkNfTUFYID0gR1BJT19TWU5DX1ZT
WU5DX0IKfTsKCmVudW0gZ3Bpb19nc2wgewogR1BJT19HU0xfVU5LTk9XTiA9ICgtMSksCiBHUElP
X0dTTF9HRU5MT0NLX0NMT0NLLAogR1BJT19HU0xfR0VOTE9DS19WU1lOQywKIEdQSU9fR1NMX1NX
QVBMT0NLX0EsCiBHUElPX0dTTF9TV0FQTE9DS19CLAogR1BJT19HU0xfQ09VTlQsCiBHUElPX0dT
TF9NSU4gPSBHUElPX0dTTF9HRU5MT0NLX0NMT0NLLAogR1BJT19HU0xfTUFYID0gR1BJT19HU0xf
U1dBUExPQ0tfQgp9OwoKCgoKCgplbnVtIGdwaW9fZGRjX2xpbmUgewogR1BJT19ERENfTElORV9V
TktOT1dOID0gKC0xKSwKIEdQSU9fRERDX0xJTkVfRERDMSwKIEdQSU9fRERDX0xJTkVfRERDMiwK
IEdQSU9fRERDX0xJTkVfRERDMywKIEdQSU9fRERDX0xJTkVfRERDNCwKIEdQSU9fRERDX0xJTkVf
RERDNSwKIEdQSU9fRERDX0xJTkVfRERDNiwKIEdQSU9fRERDX0xJTkVfRERDX1ZHQSwKIEdQSU9f
RERDX0xJTkVfVklQX1BBRCwKIEdQSU9fRERDX0xJTkVfSTJDX1BBRCA9IEdQSU9fRERDX0xJTkVf
VklQX1BBRCwKIEdQSU9fRERDX0xJTkVfQ09VTlQsCiBHUElPX0REQ19MSU5FX01JTiA9IEdQSU9f
RERDX0xJTkVfRERDMSwKIEdQSU9fRERDX0xJTkVfTUFYID0gR1BJT19ERENfTElORV9JMkNfUEFE
Cn07CgoKCgoKCmVudW0gZ3Bpb19tb2RlIHsKIEdQSU9fTU9ERV9VTktOT1dOID0gKC0xKSwKIEdQ
SU9fTU9ERV9JTlBVVCwKIEdQSU9fTU9ERV9PVVRQVVQsCiBHUElPX01PREVfRkFTVF9PVVRQVVQs
CiBHUElPX01PREVfSEFSRFdBUkUsCiBHUElPX01PREVfSU5URVJSVVBUCn07CiMgMjQ2ICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX3R5cGVzLmgi
CmVudW0gZ3Bpb19zaWduYWxfc291cmNlIHsKIEdQSU9fU0lHTkFMX1NPVVJDRV9VTktOT1dOID0g
KC0xKSwKIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNBX1NURVJFT19TWU5DLAogR1BJT19TSUdOQUxf
U09VUkNFX1BBU1NfVEhST1VHSF9TVEVSRU9fU1lOQywKIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNC
X1NURVJFT19TWU5DLAogR1BJT19TSUdOQUxfU09VUkNFX0RBQ0FfSFNZTkMsCiBHUElPX1NJR05B
TF9TT1VSQ0VfREFDQl9IU1lOQywKIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNBX1ZTWU5DLAogR1BJ
T19TSUdOQUxfU09VUkNFX0RBQ0JfVlNZTkMsCn07CgplbnVtIGdwaW9fc3RlcmVvX3NvdXJjZSB7
CiBHUElPX1NURVJFT19TT1VSQ0VfVU5LTk9XTiA9ICgtMSksCiBHUElPX1NURVJFT19TT1VSQ0Vf
RDEsCiBHUElPX1NURVJFT19TT1VSQ0VfRDIsCiBHUElPX1NURVJFT19TT1VSQ0VfRDMsCiBHUElP
X1NURVJFT19TT1VSQ0VfRDQsCiBHUElPX1NURVJFT19TT1VSQ0VfRDUsCiBHUElPX1NURVJFT19T
T1VSQ0VfRDYKfTsKCgoKCgplbnVtIGdwaW9fY29uZmlnX3R5cGUgewogR1BJT19DT05GSUdfVFlQ
RV9OT05FLAogR1BJT19DT05GSUdfVFlQRV9EREMsCiBHUElPX0NPTkZJR19UWVBFX0hQRCwKIEdQ
SU9fQ09ORklHX1RZUEVfR0VORVJJQ19NVVgsCiBHUElPX0NPTkZJR19UWVBFX0dTTF9NVVgsCiBH
UElPX0NPTkZJR19UWVBFX0kyQ19BVVhfRFVBTF9NT0RFCn07CgoKCmVudW0gZ3Bpb19kZGNfY29u
ZmlnX3R5cGUgewogR1BJT19ERENfQ09ORklHX1RZUEVfTU9ERV9BVVgsCiBHUElPX0REQ19DT05G
SUdfVFlQRV9NT0RFX0kyQywKIEdQSU9fRERDX0NPTkZJR19UWVBFX1BPTExfRk9SX0NPTk5FQ1Qs
CiBHUElPX0REQ19DT05GSUdfVFlQRV9QT0xMX0ZPUl9ESVNDT05ORUNULAogR1BJT19ERENfQ09O
RklHX1RZUEVfRElTQUJMRV9QT0xMSU5HCn07CgpzdHJ1Y3QgZ3Bpb19kZGNfY29uZmlnIHsKIGVu
dW0gZ3Bpb19kZGNfY29uZmlnX3R5cGUgdHlwZTsKIGJvb2wgZGF0YV9lbl9iaXRfcHJlc2VudDsK
IGJvb2wgY2xvY2tfZW5fYml0X3ByZXNlbnQ7Cn07CgoKCnN0cnVjdCBncGlvX2hwZF9jb25maWcg
ewogdWludDMyX3QgZGVsYXlfb25fY29ubmVjdDsKIHVpbnQzMl90IGRlbGF5X29uX2Rpc2Nvbm5l
Y3Q7Cn07CgpzdHJ1Y3QgZ3Bpb19nZW5lcmljX211eF9jb25maWcgewogYm9vbCBlbmFibGVfb3V0
cHV0X2Zyb21fbXV4OwogZW51bSBncGlvX3NpZ25hbF9zb3VyY2UgbXV4X3NlbGVjdDsKIGVudW0g
Z3Bpb19zdGVyZW9fc291cmNlIHN0ZXJlb19zZWxlY3Q7Cn07CgplbnVtIGdwaW9fZ3NsX211eF9j
b25maWdfdHlwZSB7CiBHUElPX0dTTF9NVVhfQ09ORklHX1RZUEVfRElTQUJMRSwKIEdQSU9fR1NM
X01VWF9DT05GSUdfVFlQRV9USU1JTkdfU1lOQywKIEdQSU9fR1NMX01VWF9DT05GSUdfVFlQRV9G
TElQX1NZTkMKfTsKCnN0cnVjdCBncGlvX2dzbF9tdXhfY29uZmlnIHsKIGVudW0gZ3Bpb19nc2xf
bXV4X2NvbmZpZ190eXBlIHR5cGU7CgoKIHVpbnQzMl90IGdzbF9ncm91cDsKfTsKCnN0cnVjdCBn
cGlvX2NvbmZpZ19kYXRhIHsKIGVudW0gZ3Bpb19jb25maWdfdHlwZSB0eXBlOwogdW5pb24gewog
IHN0cnVjdCBncGlvX2RkY19jb25maWcgZGRjOwogIHN0cnVjdCBncGlvX2hwZF9jb25maWcgaHBk
OwogIHN0cnVjdCBncGlvX2dlbmVyaWNfbXV4X2NvbmZpZyBnZW5lcmljX211eDsKICBzdHJ1Y3Qg
Z3Bpb19nc2xfbXV4X2NvbmZpZyBnc2xfbXV4OwogfSBjb25maWc7Cn07CiMgMzMgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCiMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbGlua19zZXJ2aWNlX3R5cGVz
LmgiIDEKIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1
ZGUvbGlua19zZXJ2aWNlX3R5cGVzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbGlua19zZXJ2aWNlX3R5cGVzLmgiIDIK
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaXJxX3R5cGVz
LmgiIDEKIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1
ZGUvbGlua19zZXJ2aWNlX3R5cGVzLmgiIDIKCgpzdHJ1Y3QgZGRjOwpzdHJ1Y3QgaXJxX21hbmFn
ZXI7CgplbnVtIHsKIE1BWF9DT05UUk9MTEVSX05VTSA9IDYKfTsKCmVudW0gZHBfcG93ZXJfc3Rh
dGUgewogRFBfUE9XRVJfU1RBVEVfRDAgPSAxLAogRFBfUE9XRVJfU1RBVEVfRDMKfTsKCmVudW0g
ZWRwX3JldmlzaW9uIHsKCiBFRFBfUkVWSVNJT05fMTEgPSAweDAwLAoKIEVEUF9SRVZJU0lPTl8x
MiA9IDB4MDEsCgogRURQX1JFVklTSU9OXzEzID0gMHgwMgp9OwoKZW51bSB7CiBMSU5LX1JBVEVf
UkVGX0ZSRVFfSU5fS0haID0gMjcwMDAKfTsKCmVudW0gbGlua190cmFpbmluZ19yZXN1bHQgewog
TElOS19UUkFJTklOR19TVUNDRVNTLAogTElOS19UUkFJTklOR19DUl9GQUlMX0xBTkUwLAogTElO
S19UUkFJTklOR19DUl9GQUlMX0xBTkUxLAogTElOS19UUkFJTklOR19DUl9GQUlMX0xBTkUyMywK
CiBMSU5LX1RSQUlOSU5HX0VRX0ZBSUxfQ1IsCgogTElOS19UUkFJTklOR19FUV9GQUlMX0VRLAog
TElOS19UUkFJTklOR19MUUFfRkFJTCwKfTsKCnN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdz
IHsKIHN0cnVjdCBkY19saW5rX3NldHRpbmdzIGxpbmtfc2V0dGluZ3M7CiBzdHJ1Y3QgZGNfbGFu
ZV9zZXR0aW5ncyBsYW5lX3NldHRpbmdzW0xBTkVfQ09VTlRfRFBfTUFYXTsKCiBlbnVtIGRjX3Zv
bHRhZ2Vfc3dpbmcgKnZvbHRhZ2Vfc3dpbmc7CiBlbnVtIGRjX3ByZV9lbXBoYXNpcyAqcHJlX2Vt
cGhhc2lzOwogZW51bSBkY19wb3N0X2N1cnNvcjIgKnBvc3RfY3Vyc29yMjsKCiB1aW50MTZfdCBj
cl9wYXR0ZXJuX3RpbWU7CiB1aW50MTZfdCBlcV9wYXR0ZXJuX3RpbWU7CiBlbnVtIGRjX2RwX3Ry
YWluaW5nX3BhdHRlcm4gcGF0dGVybl9mb3JfZXE7CgogYm9vbCBlbmhhbmNlZF9mcmFtaW5nOwog
Ym9vbCBhbGxvd19pbnZhbGlkX21zYV90aW1pbmdfcGFyYW07Cn07CgoKCmVudW0gZHBfdGVzdF9w
YXR0ZXJuIHsKCgogRFBfVEVTVF9QQVRURVJOX1ZJREVPX01PREUgPSAwLAoKCiBEUF9URVNUX1BB
VFRFUk5fUEhZX1BBVFRFUk5fQkVHSU4sCiBEUF9URVNUX1BBVFRFUk5fRDEwMiA9IERQX1RFU1Rf
UEFUVEVSTl9QSFlfUEFUVEVSTl9CRUdJTiwKIERQX1RFU1RfUEFUVEVSTl9TWU1CT0xfRVJST1Is
CiBEUF9URVNUX1BBVFRFUk5fUFJCUzcsCiBEUF9URVNUX1BBVFRFUk5fODBCSVRfQ1VTVE9NLAog
RFBfVEVTVF9QQVRURVJOX0NQMjUyMF8xLAogRFBfVEVTVF9QQVRURVJOX0NQMjUyMF8yLAogRFBf
VEVTVF9QQVRURVJOX0hCUjJfQ09NUExJQU5DRV9FWUUgPSBEUF9URVNUX1BBVFRFUk5fQ1AyNTIw
XzIsCiBEUF9URVNUX1BBVFRFUk5fQ1AyNTIwXzMsCgoKIERQX1RFU1RfUEFUVEVSTl9UUkFJTklO
R19QQVRURVJOMSwKIERQX1RFU1RfUEFUVEVSTl9UUkFJTklOR19QQVRURVJOMiwKIERQX1RFU1Rf
UEFUVEVSTl9UUkFJTklOR19QQVRURVJOMywKIERQX1RFU1RfUEFUVEVSTl9UUkFJTklOR19QQVRU
RVJONCwKIERQX1RFU1RfUEFUVEVSTl9QSFlfUEFUVEVSTl9FTkQgPSBEUF9URVNUX1BBVFRFUk5f
VFJBSU5JTkdfUEFUVEVSTjQsCgoKIERQX1RFU1RfUEFUVEVSTl9DT0xPUl9TUVVBUkVTLAogRFBf
VEVTVF9QQVRURVJOX0NPTE9SX1NRVUFSRVNfQ0VBLAogRFBfVEVTVF9QQVRURVJOX1ZFUlRJQ0FM
X0JBUlMsCiBEUF9URVNUX1BBVFRFUk5fSE9SSVpPTlRBTF9CQVJTLAogRFBfVEVTVF9QQVRURVJO
X0NPTE9SX1JBTVAsCgoKIERQX1RFU1RfUEFUVEVSTl9BVURJT19PUEVSQVRPUl9ERUZJTkVELAog
RFBfVEVTVF9QQVRURVJOX0FVRElPX1NBV1RPT1RILAoKIERQX1RFU1RfUEFUVEVSTl9VTlNVUFBP
UlRFRAp9OwoKZW51bSBkcF90ZXN0X3BhdHRlcm5fY29sb3Jfc3BhY2UgewogRFBfVEVTVF9QQVRU
RVJOX0NPTE9SX1NQQUNFX1JHQiwKIERQX1RFU1RfUEFUVEVSTl9DT0xPUl9TUEFDRV9ZQ0JDUjYw
MSwKIERQX1RFU1RfUEFUVEVSTl9DT0xPUl9TUEFDRV9ZQ0JDUjcwOSwKIERQX1RFU1RfUEFUVEVS
Tl9DT0xPUl9TUEFDRV9VTkRFRklORUQKfTsKCmVudW0gZHBfcGFuZWxfbW9kZSB7CgogRFBfUEFO
RUxfTU9ERV9ERUZBVUxULAoKIERQX1BBTkVMX01PREVfRURQLAoKIERQX1BBTkVMX01PREVfU1BF
Q0lBTAp9OwoKCnVuaW9uIGRwY2RfdHJhaW5pbmdfbGFuZV9zZXQgewogc3RydWN0IHsKCiAgdWlu
dDhfdCBWT0xUQUdFX1NXSU5HX1NFVDoyOwogIHVpbnQ4X3QgTUFYX1NXSU5HX1JFQUNIRUQ6MTsK
ICB1aW50OF90IFBSRV9FTVBIQVNJU19TRVQ6MjsKICB1aW50OF90IE1BWF9QUkVfRU1QSEFTSVNf
UkVBQ0hFRDoxOwoKICB1aW50OF90IFBPU1RfQ1VSU09SMl9TRVQ6MjsKIyAxNjEgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xpbmtfc2VydmljZV90eXBl
cy5oIgogfSBiaXRzOwoKIHVpbnQ4X3QgcmF3Owp9OwoKCgpzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9h
bGxvY2F0aW9uIHsKIHVpbnQ4X3QgdmNwX2lkOwoKCiB1aW50OF90IHNsb3RfY291bnQ7Cn07CgoK
c3RydWN0IGRwX21zdF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZSB7CgogaW50IHN0cmVhbV9jb3Vu
dDsKCiBzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9hbGxvY2F0aW9uIHN0cmVhbV9hbGxvY2F0aW9uc1tN
QVhfQ09OVFJPTExFUl9OVU1dOwp9OwojIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2N0cmxfZGVmcy5oIiAxCiMgMjkgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2N0
cmxfZGVmcy5oIgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL2dycGhfb2JqZWN0X2RlZnMuaCIgMQojIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9jdHJsX2RlZnMuaCIgMgojIDQy
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29i
amVjdF9jdHJsX2RlZnMuaCIKZW51bSBkaXNwbGF5X291dHB1dF9iaXRfZGVwdGggewogUEFORUxf
VU5ERUZJTkUgPSAwLAogUEFORUxfNkJJVF9DT0xPUiA9IDEsCiBQQU5FTF84QklUX0NPTE9SID0g
MiwKIFBBTkVMXzEwQklUX0NPTE9SID0gMywKIFBBTkVMXzEyQklUX0NPTE9SID0gNCwKIFBBTkVM
XzE2QklUX0NPTE9SID0gNSwKfTsKCgoKZW51bSBkYWxfZGV2aWNlX3R5cGUgewogREVWSUNFX1RZ
UEVfVU5LTk9XTiA9IDAsCiBERVZJQ0VfVFlQRV9MQ0QsCiBERVZJQ0VfVFlQRV9DUlQsCiBERVZJ
Q0VfVFlQRV9ERlAsCiBERVZJQ0VfVFlQRV9DViwKIERFVklDRV9UWVBFX1RWLAogREVWSUNFX1RZ
UEVfQ0YsCiBERVZJQ0VfVFlQRV9XSVJFTEVTUwp9OwoKCnN0cnVjdCBkZXZpY2VfaWQgewogZW51
bSBkYWxfZGV2aWNlX3R5cGUgZGV2aWNlX3R5cGU6MTY7CiB1aW50MzJfdCBlbnVtX2lkOjE2Owog
dWludDE2X3QgcmF3X2RldmljZV90YWc7Cn07CgpzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2kyY19p
bmZvIHsKIHN0cnVjdCBncGlvX2luZm8gewogIHVpbnQzMl90IGNsa19tYXNrX3JlZ2lzdGVyX2lu
ZGV4OwogIHVpbnQzMl90IGNsa19lbl9yZWdpc3Rlcl9pbmRleDsKICB1aW50MzJfdCBjbGtfeV9y
ZWdpc3Rlcl9pbmRleDsKICB1aW50MzJfdCBjbGtfYV9yZWdpc3Rlcl9pbmRleDsKICB1aW50MzJf
dCBkYXRhX21hc2tfcmVnaXN0ZXJfaW5kZXg7CiAgdWludDMyX3QgZGF0YV9lbl9yZWdpc3Rlcl9p
bmRleDsKICB1aW50MzJfdCBkYXRhX3lfcmVnaXN0ZXJfaW5kZXg7CiAgdWludDMyX3QgZGF0YV9h
X3JlZ2lzdGVyX2luZGV4OwoKICB1aW50MzJfdCBjbGtfbWFza19zaGlmdDsKICB1aW50MzJfdCBj
bGtfZW5fc2hpZnQ7CiAgdWludDMyX3QgY2xrX3lfc2hpZnQ7CiAgdWludDMyX3QgY2xrX2Ffc2hp
ZnQ7CiAgdWludDMyX3QgZGF0YV9tYXNrX3NoaWZ0OwogIHVpbnQzMl90IGRhdGFfZW5fc2hpZnQ7
CiAgdWludDMyX3QgZGF0YV95X3NoaWZ0OwogIHVpbnQzMl90IGRhdGFfYV9zaGlmdDsKIH0gZ3Bp
b19pbmZvOwoKIGJvb2wgaTJjX2h3X2Fzc2lzdDsKIHVpbnQzMl90IGkyY19saW5lOwogdWludDMy
X3QgaTJjX2VuZ2luZV9pZDsKIHVpbnQzMl90IGkyY19zbGF2ZV9hZGRyZXNzOwp9OwoKc3RydWN0
IGdyYXBoaWNzX29iamVjdF9ocGRfaW5mbyB7CiB1aW50OF90IGhwZF9pbnRfZ3Bpb191aWQ7CiB1
aW50OF90IGhwZF9hY3RpdmU7Cn07CgpzdHJ1Y3QgY29ubmVjdG9yX2RldmljZV90YWdfaW5mbyB7
CiB1aW50MzJfdCBhY3BpX2RldmljZTsKIHN0cnVjdCBkZXZpY2VfaWQgZGV2X2lkOwp9OwoKc3Ry
dWN0IGRldmljZV90aW1pbmcgewogc3RydWN0IG1pc2NfaW5mbyB7CiAgdWludDMyX3QgSE9SSVpP
TlRBTF9DVVRfT0ZGOjE7CgogIHVpbnQzMl90IEhfU1lOQ19QT0xBUklUWToxOwoKICB1aW50MzJf
dCBWX1NZTkNfUE9MQVJJVFk6MTsKICB1aW50MzJfdCBWRVJUSUNBTF9DVVRfT0ZGOjE7CiAgdWlu
dDMyX3QgSF9SRVBMSUNBVElPTl9CWTI6MTsKICB1aW50MzJfdCBWX1JFUExJQ0FUSU9OX0JZMjox
OwogIHVpbnQzMl90IENPTVBPU0lURV9TWU5DOjE7CiAgdWludDMyX3QgSU5URVJMQUNFOjE7CiAg
dWludDMyX3QgRE9VQkxFX0NMT0NLOjE7CiAgdWludDMyX3QgUkdCODg4OjE7CiAgdWludDMyX3Qg
R1JFWV9MRVZFTDoyOwogIHVpbnQzMl90IFNQQVRJQUw6MTsKICB1aW50MzJfdCBURU1QT1JBTDox
OwogIHVpbnQzMl90IEFQSV9FTkFCTEVEOjE7CiB9IG1pc2NfaW5mbzsKCiB1aW50MzJfdCBwaXhl
bF9jbGs7CiB1aW50MzJfdCBob3Jpem9udGFsX2FkZHJlc3NhYmxlOwogdWludDMyX3QgaG9yaXpv
bnRhbF9ibGFua2luZ190aW1lOwogdWludDMyX3QgdmVydGljYWxfYWRkcmVzc2FibGU7CiB1aW50
MzJfdCB2ZXJ0aWNhbF9ibGFua2luZ190aW1lOwogdWludDMyX3QgaG9yaXpvbnRhbF9zeW5jX29m
ZnNldDsKIHVpbnQzMl90IGhvcml6b250YWxfc3luY193aWR0aDsKIHVpbnQzMl90IHZlcnRpY2Fs
X3N5bmNfb2Zmc2V0OwogdWludDMyX3QgdmVydGljYWxfc3luY193aWR0aDsKIHVpbnQzMl90IGhv
cml6b250YWxfYm9yZGVyOwogdWludDMyX3QgdmVydGljYWxfYm9yZGVyOwp9OwoKc3RydWN0IHN1
cHBvcnRlZF9yZWZyZXNoX3JhdGUgewogdWludDMyX3QgUkVGUkVTSF9SQVRFXzMwSFo6MTsKIHVp
bnQzMl90IFJFRlJFU0hfUkFURV80MEhaOjE7CiB1aW50MzJfdCBSRUZSRVNIX1JBVEVfNDhIWjox
OwogdWludDMyX3QgUkVGUkVTSF9SQVRFXzUwSFo6MTsKIHVpbnQzMl90IFJFRlJFU0hfUkFURV82
MEhaOjE7Cn07CgpzdHJ1Y3QgZW1iZWRkZWRfcGFuZWxfaW5mbyB7CiBzdHJ1Y3QgZGV2aWNlX3Rp
bWluZyBsY2RfdGltaW5nOwogdWludDMyX3Qgc3NfaWQ7CiBzdHJ1Y3Qgc3VwcG9ydGVkX3JlZnJl
c2hfcmF0ZSBzdXBwb3J0ZWRfcnI7CiB1aW50MzJfdCBkcnJfZW5hYmxlZDsKIHVpbnQzMl90IG1p
bl9kcnJfcmVmcmVzaF9yYXRlOwogYm9vbCByZWFsdGVrX2VEUFRvTFZEUzsKfTsKCnN0cnVjdCBk
Y19maXJtd2FyZV9pbmZvIHsKIHN0cnVjdCBwbGxfaW5mbyB7CiAgdWludDMyX3QgY3J5c3RhbF9m
cmVxdWVuY3k7CiAgdWludDMyX3QgbWluX2lucHV0X3B4bF9jbGtfcGxsX2ZyZXF1ZW5jeTsKICB1
aW50MzJfdCBtYXhfaW5wdXRfcHhsX2Nsa19wbGxfZnJlcXVlbmN5OwogIHVpbnQzMl90IG1pbl9v
dXRwdXRfcHhsX2Nsa19wbGxfZnJlcXVlbmN5OwogIHVpbnQzMl90IG1heF9vdXRwdXRfcHhsX2Ns
a19wbGxfZnJlcXVlbmN5OwogfSBwbGxfaW5mbzsKCiBzdHJ1Y3QgZmlybXdhcmVfZmVhdHVyZSB7
CiAgdWludDMyX3QgbWVtb3J5X2Nsa19zc19wZXJjZW50YWdlOwogIHVpbnQzMl90IGVuZ2luZV9j
bGtfc3NfcGVyY2VudGFnZTsKIH0gZmVhdHVyZTsKCiB1aW50MzJfdCBkZWZhdWx0X2Rpc3BsYXlf
ZW5naW5lX3BsbF9mcmVxdWVuY3k7CiB1aW50MzJfdCBleHRlcm5hbF9jbG9ja19zb3VyY2VfZnJl
cXVlbmN5X2Zvcl9kcDsKIHVpbnQzMl90IHNtdV9ncHVfcGxsX291dHB1dF9mcmVxOwogdWludDhf
dCBtaW5fYWxsb3dlZF9ibF9sZXZlbDsKIHVpbnQ4X3QgcmVtb3RlX2Rpc3BsYXlfY29uZmlnOwog
dWludDMyX3QgZGVmYXVsdF9tZW1vcnlfY2xrOwogdWludDMyX3QgZGVmYXVsdF9lbmdpbmVfY2xr
OwogdWludDMyX3QgZHBfcGh5X3JlZl9jbGs7CiB1aW50MzJfdCBpMmNfZW5naW5lX3JlZl9jbGs7
CiBib29sIG9lbV9pMmNfcHJlc2VudDsKIHVpbnQ4X3Qgb2VtX2kyY19vYmpfaWQ7Cgp9OwoKc3Ry
dWN0IHN0ZXBfYW5kX2RlbGF5X2luZm8gewogdWludDMyX3Qgc3RlcDsKIHVpbnQzMl90IGRlbGF5
OwogdWludDMyX3QgcmVjb21tZW5kZWRfcmVmX2RpdjsKfTsKCnN0cnVjdCBzcHJlYWRfc3BlY3Ry
dW1faW5mbyB7CiBzdHJ1Y3Qgc3ByZWFkX3NwZWN0cnVtX3R5cGUgewogIGJvb2wgQ0VOVEVSX01P
REU6MTsKICBib29sIEVYVEVSTkFMOjE7CiAgYm9vbCBTVEVQX0FORF9ERUxBWV9JTkZPOjE7CiB9
IHR5cGU7CgoKCiB1aW50MzJfdCBzcHJlYWRfc3BlY3RydW1fcGVyY2VudGFnZTsKIHVpbnQzMl90
IHNwcmVhZF9wZXJjZW50YWdlX2RpdmlkZXI7CiB1aW50MzJfdCBzcHJlYWRfc3BlY3RydW1fcmFu
Z2U7CgogdW5pb24gewogIHN0cnVjdCBzdGVwX2FuZF9kZWxheV9pbmZvIHN0ZXBfYW5kX2RlbGF5
X2luZm87CgoKCiAgdWludDMyX3QgdGFyZ2V0X2Nsb2NrX3JhbmdlOwogfTsKCn07CgpzdHJ1Y3Qg
Z3JhcGhpY3Nfb2JqZWN0X2VuY29kZXJfY2FwX2luZm8gewogdWludDMyX3QgZHBfaGJyMl9jYXA6
MTsKIHVpbnQzMl90IGRwX2hicjJfdmFsaWRhdGVkOjE7CgoKCiB1aW50MzJfdCByZXNlcnZlZDox
NTsKfTsKCnN0cnVjdCBkaW5fY29ubmVjdG9yX2luZm8gewogdWludDMyX3QgZ3Bpb19pZDsKIGJv
b2wgZ3Bpb190dl9hY3RpdmVfc3RhdGU7Cn07CgoKZW51bSB7IElOVkFMSURfRERJX0NIQU5ORUxf
TUFQUElORyA9IDB4MCB9OwoKCgoKdW5pb24gZGRpX2NoYW5uZWxfbWFwcGluZyB7CiBzdHJ1Y3Qg
bWFwcGluZyB7CiAgdWludDhfdCBsYW5lMDoyOwogIHVpbnQ4X3QgbGFuZTE6MjsKICB1aW50OF90
IGxhbmUyOjI7CiAgdWludDhfdCBsYW5lMzoyOwogfSBtYXBwaW5nOwogdWludDhfdCByYXc7Cn07
CgoKCgpzdHJ1Y3QgdHJhbnNtaXR0ZXJfY29uZmlndXJhdGlvbl9pbmZvIHsKCiBlbnVtIHRyYW5z
bWl0dGVyIHRyYW5zbWl0dGVyX3BoeV9pZDsKCiB1bmlvbiBkZGlfY2hhbm5lbF9tYXBwaW5nIG91
dHB1dF9jaGFubmVsX21hcHBpbmc7Cn07CgpzdHJ1Y3QgdHJhbnNtaXR0ZXJfY29uZmlndXJhdGlv
biB7Cgogc3RydWN0IHRyYW5zbWl0dGVyX2NvbmZpZ3VyYXRpb25faW5mbyBwcmltYXJ5X3RyYW5z
bWl0dGVyX2NvbmZpZzsKCiBzdHJ1Y3QgdHJhbnNtaXR0ZXJfY29uZmlndXJhdGlvbl9pbmZvIHNl
Y29uZGFyeV90cmFuc21pdHRlcl9jb25maWc7Cn07CiMgMjY5ICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9jdHJsX2RlZnMuaCIKc3Ry
dWN0IGkyY19yZWdfaW5mbyB7CiB1bnNpZ25lZCBjaGFyIGkyY19yZWdfaW5kZXg7CiB1bnNpZ25l
ZCBjaGFyIGkyY19yZWdfdmFsOwp9OwoKc3RydWN0IGV4dF9oZG1pX3NldHRpbmdzIHsKIHVuc2ln
bmVkIGNoYXIgc2x2X2FkZHI7CiB1bnNpZ25lZCBjaGFyIHJlZ19udW07CiBzdHJ1Y3QgaTJjX3Jl
Z19pbmZvIHJlZ19zZXR0aW5nc1s5XTsKIHVuc2lnbmVkIGNoYXIgcmVnX251bV82ZzsKIHN0cnVj
dCBpMmNfcmVnX2luZm8gcmVnX3NldHRpbmdzXzZnWzNdOwp9OwoKCgpzdHJ1Y3QgaW50ZWdyYXRl
ZF9pbmZvIHsKIHN0cnVjdCBjbG9ja192b2x0YWdlX2NhcHMgewoKCiAgdWludDMyX3Qgdm9sdGFn
ZV9pbmRleDsKCiAgdWludDMyX3QgbWF4X3N1cHBvcnRlZF9jbGs7CiB9IGRpc3BfY2xrX3ZvbHRh
Z2VbNF07Cgogc3RydWN0IGRpc3BsYXlfY29ubmVjdGlvbl9pbmZvIHsKICBzdHJ1Y3QgZXh0ZXJu
YWxfZGlzcGxheV9wYXRoIHsKCiAgIHVpbnQzMl90IGRldmljZV90YWc7CgogICB1aW50MzJfdCBk
ZXZpY2VfYWNwaV9lbnVtOwoKCiAgIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgZGV2aWNlX2Nv
bm5lY3Rvcl9pZDsKCiAgIHVpbnQ4X3QgZXh0X2F1eF9kZGNfbHV0X2luZGV4OwoKICAgdWludDhf
dCBleHRfaHBkX3Bpbl9sdXRfaW5kZXg7CgogICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGV4
dF9lbmNvZGVyX29ial9pZDsKCiAgIHVuaW9uIGRkaV9jaGFubmVsX21hcHBpbmcgY2hhbm5lbF9t
YXBwaW5nOwoKICAgdW5zaWduZWQgc2hvcnQgY2FwczsKICB9IHBhdGhbN107CgogIHVpbnQ4X3Qg
Z3VfaWRbMTZdOwogIHVpbnQ4X3QgY2hlY2tzdW07CiB9IGV4dF9kaXNwX2Nvbm5faW5mbzsKCiBz
dHJ1Y3QgYXZhaWxhYmxlX3NfY2xrX2xpc3QgewoKICB1aW50MzJfdCBzdXBwb3J0ZWRfc19jbGs7
CgogIHVpbnQzMl90IHZvbHRhZ2VfaW5kZXg7CgogIHVpbnQzMl90IHZvbHRhZ2VfaWQ7CiB9IGF2
YWlsX3NfY2xrWzVdOwoKIHVpbnQ4X3QgbWVtb3J5X3R5cGU7CiB1aW50OF90IG1hX2NoYW5uZWxf
bnVtYmVyOwogdWludDMyX3QgYm9vdF91cF9lbmdpbmVfY2xvY2s7CiB1aW50MzJfdCBkZW50aXN0
X3Zjb19mcmVxOwogdWludDMyX3QgYm9vdF91cF91bWFfY2xvY2s7CiB1aW50MzJfdCBib290X3Vw
X3JlcV9kaXNwbGF5X3ZlY3RvcjsKIHVpbnQzMl90IG90aGVyX2Rpc3BsYXlfbWlzYzsKIHVpbnQz
Ml90IGdwdV9jYXBfaW5mbzsKIHVpbnQzMl90IHNiX21taW9fYmFzZV9hZGRyOwogdWludDMyX3Qg
c3lzdGVtX2NvbmZpZzsKIHVpbnQzMl90IGNwdV9jYXBfaW5mbzsKIHVpbnQzMl90IG1heF9uYl92
b2x0YWdlOwogdWludDMyX3QgbWluX25iX3ZvbHRhZ2U7CiB1aW50MzJfdCBib290X3VwX25iX3Zv
bHRhZ2U7CiB1aW50MzJfdCBleHRfZGlzcF9jb25uX2luZm9fb2Zmc2V0OwogdWludDMyX3QgY3Ny
X20zX2FyYl9jbnRsX2RlZmF1bHRbMTBdOwogdWludDMyX3QgY3NyX20zX2FyYl9jbnRsX3V2ZFsx
MF07CiB1aW50MzJfdCBjc3JfbTNfYXJiX2NudGxfZnMzZFsxMF07CiB1aW50MzJfdCBnbWNfcmVz
dG9yZV9yZXNldF90aW1lOwogdWludDMyX3QgbWluaW11bV9uX2NsazsKIHVpbnQzMl90IGlkbGVf
bl9jbGs7CiB1aW50MzJfdCBkZHJfZGxsX3Bvd2VyX3VwX3RpbWU7CiB1aW50MzJfdCBkZHJfcGxs
X3Bvd2VyX3VwX3RpbWU7CgogdWludDMyX3QgcGNpZV9jbGtfc3NfdHlwZTsKIHVpbnQzMl90IGx2
ZHNfc3NfcGVyY2VudGFnZTsKIHVpbnQzMl90IGx2ZHNfc3NwcmVhZF9yYXRlX2luXzEwaHo7CiB1
aW50MzJfdCBoZG1pX3NzX3BlcmNlbnRhZ2U7CiB1aW50MzJfdCBoZG1pX3NzcHJlYWRfcmF0ZV9p
bl8xMGh6OwogdWludDMyX3QgZHZpX3NzX3BlcmNlbnRhZ2U7CiB1aW50MzJfdCBkdmlfc3NwcmVh
ZF9yYXRlX2luXzEwX2h6OwogdWludDMyX3Qgc2Nsa19kcG1fYm9vc3RfbWFyZ2luOwogdWludDMy
X3Qgc2Nsa19kcG1fdGhyb3R0bGVfbWFyZ2luOwogdWludDMyX3Qgc2Nsa19kcG1fdGRwX2xpbWl0
X3BnOwogdWludDMyX3Qgc2Nsa19kcG1fdGRwX2xpbWl0X2Jvb3N0OwogdWludDMyX3QgYm9vc3Rf
ZW5naW5lX2Nsb2NrOwogdWludDMyX3QgYm9vc3RfdmlkXzJiaXQ7CiB1aW50MzJfdCBlbmFibGVf
Ym9vc3Q7CiB1aW50MzJfdCBnbmJfdGRwX2xpbWl0OwoKIHVpbnQzMl90IG1heF9sdmRzX3BjbGtf
ZnJlcV9pbl9zaW5nbGVfbGluazsKIHVpbnQzMl90IGx2ZHNfbWlzYzsKIHVpbnQzMl90IGx2ZHNf
cHdyX29uX3NlcV9kaWdfb25fdG9fZGVfaW5fNG1zOwogdWludDMyX3QgbHZkc19wd3Jfb25fc2Vx
X2RlX3RvX3ZhcnlfYmxfaW5fNG1zOwogdWludDMyX3QgbHZkc19wd3Jfb2ZmX3NlcV92YXJ5X2Js
X3RvX2RlX2luNG1zOwogdWludDMyX3QgbHZkc19wd3Jfb2ZmX3NlcV9kZV90b19kaWdfb25faW40
bXM7CiB1aW50MzJfdCBsdmRzX29mZl90b19vbl9kZWxheV9pbl80bXM7CiB1aW50MzJfdCBsdmRz
X3B3cl9vbl9zZXFfdmFyeV9ibF90b19ibG9uX2luXzRtczsKIHVpbnQzMl90IGx2ZHNfcHdyX29m
Zl9zZXFfYmxvbl90b192YXJ5X2JsX2luXzRtczsKIHVpbnQzMl90IGx2ZHNfcmVzZXJ2ZWQxOwog
dWludDMyX3QgbHZkc19iaXRfZGVwdGhfY29udHJvbF92YWw7CgogdW5zaWduZWQgY2hhciBkcDBf
ZXh0X2hkbWlfc2x2X2FkZHI7CiB1bnNpZ25lZCBjaGFyIGRwMF9leHRfaGRtaV9yZWdfbnVtOwog
c3RydWN0IGkyY19yZWdfaW5mbyBkcDBfZXh0X2hkbWlfcmVnX3NldHRpbmdzWzldOwogdW5zaWdu
ZWQgY2hhciBkcDBfZXh0X2hkbWlfNmdfcmVnX251bTsKIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAw
X2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5nc1szXTsKIHVuc2lnbmVkIGNoYXIgZHAxX2V4dF9oZG1p
X3Nsdl9hZGRyOwogdW5zaWduZWQgY2hhciBkcDFfZXh0X2hkbWlfcmVnX251bTsKIHN0cnVjdCBp
MmNfcmVnX2luZm8gZHAxX2V4dF9oZG1pX3JlZ19zZXR0aW5nc1s5XTsKIHVuc2lnbmVkIGNoYXIg
ZHAxX2V4dF9oZG1pXzZnX3JlZ19udW07CiBzdHJ1Y3QgaTJjX3JlZ19pbmZvIGRwMV9leHRfaGRt
aV82Z19yZWdfc2V0dGluZ3NbM107CiB1bnNpZ25lZCBjaGFyIGRwMl9leHRfaGRtaV9zbHZfYWRk
cjsKIHVuc2lnbmVkIGNoYXIgZHAyX2V4dF9oZG1pX3JlZ19udW07CiBzdHJ1Y3QgaTJjX3JlZ19p
bmZvIGRwMl9leHRfaGRtaV9yZWdfc2V0dGluZ3NbOV07CiB1bnNpZ25lZCBjaGFyIGRwMl9leHRf
aGRtaV82Z19yZWdfbnVtOwogc3RydWN0IGkyY19yZWdfaW5mbyBkcDJfZXh0X2hkbWlfNmdfcmVn
X3NldHRpbmdzWzNdOwogdW5zaWduZWQgY2hhciBkcDNfZXh0X2hkbWlfc2x2X2FkZHI7CiB1bnNp
Z25lZCBjaGFyIGRwM19leHRfaGRtaV9yZWdfbnVtOwogc3RydWN0IGkyY19yZWdfaW5mbyBkcDNf
ZXh0X2hkbWlfcmVnX3NldHRpbmdzWzldOwogdW5zaWduZWQgY2hhciBkcDNfZXh0X2hkbWlfNmdf
cmVnX251bTsKIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAzX2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5n
c1szXTsKCiB1aW50MzJfdCBkcF9zc19jb250cm9sOwp9OwoKCgoKZW51bSBwb3dlcl9zb3VyY2Ug
ewogUE9XRVJfU09VUkNFX0FDID0gMCwKIFBPV0VSX1NPVVJDRV9EQywKIFBPV0VSX1NPVVJDRV9M
SU1JVEVEX1BPV0VSLAogUE9XRVJfU09VUkNFX0xJTUlURURfUE9XRVJfMiwKIFBPV0VSX1NPVVJD
RV9NQVgKfTsKCnN0cnVjdCBiaW9zX2V2ZW50X2luZm8gewogdWludDMyX3QgdGhlcm1hbF9zdGF0
ZTsKIHVpbnQzMl90IGJhY2tsaWdodF9sZXZlbDsKIGVudW0gcG93ZXJfc291cmNlIHBvd2VyU291
cmNlOwogYm9vbCBoYXNfdGhlcm1hbF9zdGF0ZV9jaGFuZ2VkOwogYm9vbCBoYXNfcG93ZXJfc291
cmNlX2NoYW5nZWQ7CiBib29sIGhhc19mb3JjZWRfbW9kZV9jaGFuZ2VkOwogYm9vbCBmb3JjZWRf
bW9kZTsKIGJvb2wgYmFja2xpZ2h0X2NoYW5nZWQ7Cn07CgoKCgoKZW51bSB7CiBERlNfQllQQVNT
X0VOQUJMRSA9IDB4MTAKfTsKCmVudW0gewogSU5WQUxJRF9CQUNLTElHSFQgPSAtMQp9OwoKc3Ry
dWN0IHBhbmVsX2JhY2tsaWdodF9ib3VuZGFyaWVzIHsKIHVpbnQzMl90IG1pbl9zaWduYWxfbGV2
ZWw7CiB1aW50MzJfdCBtYXhfc2lnbmFsX2xldmVsOwp9OwojIDM1ICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvb3BwLmgiIDEKIyAyOSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9vcHAuaCIKIyAxICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2h3X3NoYXJlZC5o
IiAxCiMgMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMv
aHcvaHdfc2hhcmVkLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2RjX2h3X3R5cGVzLmgiIDEKIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2luYy9ody9od19zaGFyZWQuaCIgMgojIDQxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2h3X3NoYXJlZC5oIgpzdHJ1Y3Qg
Z2FtbWFfY3VydmUgewogdWludDMyX3Qgb2Zmc2V0OwogdWludDMyX3Qgc2VnbWVudHNfbnVtOwp9
OwoKc3RydWN0IGN1cnZlX3BvaW50cyB7CiBzdHJ1Y3QgZml4ZWQzMV8zMiB4Owogc3RydWN0IGZp
eGVkMzFfMzIgeTsKIHN0cnVjdCBmaXhlZDMxXzMyIG9mZnNldDsKIHN0cnVjdCBmaXhlZDMxXzMy
IHNsb3BlOwoKIHVpbnQzMl90IGN1c3RvbV9mbG9hdF94OwogdWludDMyX3QgY3VzdG9tX2Zsb2F0
X3k7CiB1aW50MzJfdCBjdXN0b21fZmxvYXRfb2Zmc2V0OwogdWludDMyX3QgY3VzdG9tX2Zsb2F0
X3Nsb3BlOwp9OwoKc3RydWN0IGN1cnZlX3BvaW50czMgewogc3RydWN0IGN1cnZlX3BvaW50cyBy
ZWQ7CiBzdHJ1Y3QgY3VydmVfcG9pbnRzIGdyZWVuOwogc3RydWN0IGN1cnZlX3BvaW50cyBibHVl
Owp9OwoKc3RydWN0IHB3bF9yZXN1bHRfZGF0YSB7CiBzdHJ1Y3QgZml4ZWQzMV8zMiByZWQ7CiBz
dHJ1Y3QgZml4ZWQzMV8zMiBncmVlbjsKIHN0cnVjdCBmaXhlZDMxXzMyIGJsdWU7Cgogc3RydWN0
IGZpeGVkMzFfMzIgZGVsdGFfcmVkOwogc3RydWN0IGZpeGVkMzFfMzIgZGVsdGFfZ3JlZW47CiBz
dHJ1Y3QgZml4ZWQzMV8zMiBkZWx0YV9ibHVlOwoKIHVpbnQzMl90IHJlZF9yZWc7CiB1aW50MzJf
dCBncmVlbl9yZWc7CiB1aW50MzJfdCBibHVlX3JlZzsKCiB1aW50MzJfdCBkZWx0YV9yZWRfcmVn
OwogdWludDMyX3QgZGVsdGFfZ3JlZW5fcmVnOwogdWludDMyX3QgZGVsdGFfYmx1ZV9yZWc7Cn07
CgpzdHJ1Y3QgZGNfcmdiIHsKIHVpbnQzMl90IHJlZDsKIHVpbnQzMl90IGdyZWVuOwogdWludDMy
X3QgYmx1ZTsKfTsKCnN0cnVjdCB0ZXRyYWhlZHJhbF8xN3gxN3gxNyB7CiBzdHJ1Y3QgZGNfcmdi
IGx1dDBbMTIyOV07CiBzdHJ1Y3QgZGNfcmdiIGx1dDFbMTIyOF07CiBzdHJ1Y3QgZGNfcmdiIGx1
dDJbMTIyOF07CiBzdHJ1Y3QgZGNfcmdiIGx1dDNbMTIyOF07Cn07CnN0cnVjdCB0ZXRyYWhlZHJh
bF85eDl4OSB7CiBzdHJ1Y3QgZGNfcmdiIGx1dDBbMTgzXTsKIHN0cnVjdCBkY19yZ2IgbHV0MVsx
ODJdOwogc3RydWN0IGRjX3JnYiBsdXQyWzE4Ml07CiBzdHJ1Y3QgZGNfcmdiIGx1dDNbMTgyXTsK
fTsKCnN0cnVjdCB0ZXRyYWhlZHJhbF9wYXJhbXMgewogdW5pb24gewogIHN0cnVjdCB0ZXRyYWhl
ZHJhbF8xN3gxN3gxNyB0ZXRyYWhlZHJhbF8xNzsKICBzdHJ1Y3QgdGV0cmFoZWRyYWxfOXg5eDkg
dGV0cmFoZWRyYWxfOTsKIH07CiBib29sIHVzZV90ZXRyYWhlZHJhbF85OwogYm9vbCB1c2VfMTJi
aXRzOwoKfTsKCgoKCgoKc3RydWN0IHB3bF9wYXJhbXMgewogc3RydWN0IGdhbW1hX2N1cnZlIGFy
cl9jdXJ2ZV9wb2ludHNbMzRdOwogdW5pb24gewogIHN0cnVjdCBjdXJ2ZV9wb2ludHMgYXJyX3Bv
aW50c1syXTsKICBzdHJ1Y3QgY3VydmVfcG9pbnRzMyBjb3JuZXJfcG9pbnRzWzJdOwogfTsKIHN0
cnVjdCBwd2xfcmVzdWx0X2RhdGEgcmdiX3Jlc3VsdGVkWzI1NiArIDNdOwogdWludDMyX3QgaHdf
cG9pbnRzX251bTsKfTsKCgoKCgoKCmVudW0gbGJfcGl4ZWxfZGVwdGggewoKIExCX1BJWEVMX0RF
UFRIXzE4QlBQID0gMSwKIExCX1BJWEVMX0RFUFRIXzI0QlBQID0gMiwKIExCX1BJWEVMX0RFUFRI
XzMwQlBQID0gNCwKIExCX1BJWEVMX0RFUFRIXzM2QlBQID0gOAp9OwoKZW51bSBncmFwaGljc19j
c2NfYWRqdXN0X3R5cGUgewogR1JBUEhJQ1NfQ1NDX0FESlVTVF9UWVBFX0JZUEFTUyA9IDAsCiBH
UkFQSElDU19DU0NfQURKVVNUX1RZUEVfSFcsCiBHUkFQSElDU19DU0NfQURKVVNUX1RZUEVfU1cK
fTsKCmVudW0gaXBwX2RlZ2FtbWFfbW9kZSB7CiBJUFBfREVHQU1NQV9NT0RFX0JZUEFTUywKIElQ
UF9ERUdBTU1BX01PREVfSFdfc1JHQiwKIElQUF9ERUdBTU1BX01PREVfSFdfeHZZQ0MsCiBJUFBf
REVHQU1NQV9NT0RFX1VTRVJfUFdMCn07CgplbnVtIGlwcF9vdXRwdXRfZm9ybWF0IHsKIElQUF9P
VVRQVVRfRk9STUFUXzEyX0JJVF9GSVgsCiBJUFBfT1VUUFVUX0ZPUk1BVF8xNl9CSVRfQllQQVNT
LAogSVBQX09VVFBVVF9GT1JNQVRfRkxPQVQKfTsKCmVudW0gZXhwYW5zaW9uX21vZGUgewogRVhQ
QU5TSU9OX01PREVfRFlOQU1JQywKIEVYUEFOU0lPTl9NT0RFX1pFUk8KfTsKCnN0cnVjdCBkZWZh
dWx0X2FkanVzdG1lbnQgewogZW51bSBsYl9waXhlbF9kZXB0aCBsYl9jb2xvcl9kZXB0aDsKIGVu
dW0gZGNfY29sb3Jfc3BhY2Ugb3V0X2NvbG9yX3NwYWNlOwogZW51bSBkY19jb2xvcl9zcGFjZSBp
bl9jb2xvcl9zcGFjZTsKIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGg7CiBlbnVtIHBp
eGVsX2Zvcm1hdCBzdXJmYWNlX3BpeGVsX2Zvcm1hdDsKIGVudW0gZ3JhcGhpY3NfY3NjX2FkanVz
dF90eXBlIGNzY19hZGp1c3RfdHlwZTsKIGJvb2wgZm9yY2VfaHdfZGVmYXVsdDsKfTsKCgpzdHJ1
Y3Qgb3V0X2NzY19jb2xvcl9tYXRyaXggewogZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcl9zcGFj
ZTsKIHVpbnQxNl90IHJlZ3ZhbFsxMl07Cn07CgplbnVtIGdhbXV0X3JlbWFwX3NlbGVjdCB7CiBH
QU1VVF9SRU1BUF9CWVBBU1MgPSAwLAogR0FNVVRfUkVNQVBfQ09FRkYsCiBHQU1VVF9SRU1BUF9D
T01BX0NPRUZGLAogR0FNVVRfUkVNQVBfQ09NQl9DT0VGRgp9OwoKZW51bSBvcHBfcmVnYW1tYSB7
CiBPUFBfUkVHQU1NQV9CWVBBU1MgPSAwLAogT1BQX1JFR0FNTUFfU1JHQiwKIE9QUF9SRUdBTU1B
X1hWWUNDLAogT1BQX1JFR0FNTUFfVVNFUgp9OwoKZW51bSBvcHRjX2RzY19tb2RlIHsKIE9QVENf
RFNDX0RJU0FCTEVEID0gMCwKIE9QVENfRFNDX0VOQUJMRURfNDQ0ID0gMSwKIE9QVENfRFNDX0VO
QUJMRURfTkFUSVZFX1NVQlNBTVBMRUQgPSAyCn07CgpzdHJ1Y3QgZGNfYmlhc19hbmRfc2NhbGUg
ewogdWludDE2X3Qgc2NhbGVfcmVkOwogdWludDE2X3QgYmlhc19yZWQ7CiB1aW50MTZfdCBzY2Fs
ZV9ncmVlbjsKIHVpbnQxNl90IGJpYXNfZ3JlZW47CiB1aW50MTZfdCBzY2FsZV9ibHVlOwogdWlu
dDE2X3QgYmlhc19ibHVlOwp9OwoKZW51bSB0ZXN0X3BhdHRlcm5fZHluX3JhbmdlIHsKIFRFU1Rf
UEFUVEVSTl9EWU5fUkFOR0VfVkVTQSA9IDAsCiBURVNUX1BBVFRFUk5fRFlOX1JBTkdFX0NFQQp9
OwoKZW51bSB0ZXN0X3BhdHRlcm5fbW9kZSB7CiBURVNUX1BBVFRFUk5fTU9ERV9DT0xPUlNRVUFS
RVNfUkdCID0gMCwKIFRFU1RfUEFUVEVSTl9NT0RFX0NPTE9SU1FVQVJFU19ZQ0JDUjYwMSwKIFRF
U1RfUEFUVEVSTl9NT0RFX0NPTE9SU1FVQVJFU19ZQ0JDUjcwOSwKIFRFU1RfUEFUVEVSTl9NT0RF
X1ZFUlRJQ0FMQkFSUywKIFRFU1RfUEFUVEVSTl9NT0RFX0hPUklaT05UQUxCQVJTLAogVEVTVF9Q
QVRURVJOX01PREVfU0lOR0xFUkFNUF9SR0IsCiBURVNUX1BBVFRFUk5fTU9ERV9EVUFMUkFNUF9S
R0IsCiBURVNUX1BBVFRFUk5fTU9ERV9YUl9CSUFTX1JHQgp9OwoKZW51bSB0ZXN0X3BhdHRlcm5f
Y29sb3JfZm9ybWF0IHsKIFRFU1RfUEFUVEVSTl9DT0xPUl9GT1JNQVRfQlBDXzYgPSAwLAogVEVT
VF9QQVRURVJOX0NPTE9SX0ZPUk1BVF9CUENfOCwKIFRFU1RfUEFUVEVSTl9DT0xPUl9GT1JNQVRf
QlBDXzEwLAogVEVTVF9QQVRURVJOX0NPTE9SX0ZPUk1BVF9CUENfMTIKfTsKCmVudW0gY29udHJv
bGxlcl9kcF90ZXN0X3BhdHRlcm4gewogQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fRDEwMiA9
IDAsCiBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9TWU1CT0xFUlJPUiwKIENPTlRST0xMRVJf
RFBfVEVTVF9QQVRURVJOX1BSQlM3LAogQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fQ09MT1JT
UVVBUkVTLAogQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fVkVSVElDQUxCQVJTLAogQ09OVFJP
TExFUl9EUF9URVNUX1BBVFRFUk5fSE9SSVpPTlRBTEJBUlMsCiBDT05UUk9MTEVSX0RQX1RFU1Rf
UEFUVEVSTl9DT0xPUlJBTVAsCiBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9WSURFT01PREUs
CiBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9SRVNFUlZFRF84LAogQ09OVFJPTExFUl9EUF9U
RVNUX1BBVFRFUk5fUkVTRVJWRURfOSwKIENPTlRST0xMRVJfRFBfVEVTVF9QQVRURVJOX1JFU0VS
VkVEX0EsCiBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9DT0xPUlNRVUFSRVNfQ0VBLAogQ09O
VFJPTExFUl9EUF9URVNUX1BBVFRFUk5fU09MSURfQ09MT1IKfTsKCmVudW0gY29udHJvbGxlcl9k
cF9jb2xvcl9zcGFjZSB7CiBDT05UUk9MTEVSX0RQX0NPTE9SX1NQQUNFX1JHQiwKIENPTlRST0xM
RVJfRFBfQ09MT1JfU1BBQ0VfWUNCQ1I2MDEsCiBDT05UUk9MTEVSX0RQX0NPTE9SX1NQQUNFX1lD
QkNSNzA5LAogQ09OVFJPTExFUl9EUF9DT0xPUl9TUEFDRV9VREVGSU5FRAp9OwoKZW51bSBkY19s
dXRfbW9kZSB7CiBMVVRfQllQQVNTLAogTFVUX1JBTV9BLAogTFVUX1JBTV9CCn07CiMgMzAgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvb3BwLmgiIDIK
CiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody90
cmFuc2Zvcm0uaCIgMQojIDM1ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2h3L3RyYW5zZm9ybS5oIgpzdHJ1Y3QgYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJh
bXM7CgpzdHJ1Y3QgdHJhbnNmb3JtIHsKIGNvbnN0IHN0cnVjdCB0cmFuc2Zvcm1fZnVuY3MgKmZ1
bmNzOwogc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKIGludCBpbnN0Owogc3RydWN0IGRwcF9jYXBz
ICpjYXBzOwogc3RydWN0IHB3bF9wYXJhbXMgcmVnYW1tYV9wYXJhbXM7Cn07CgoKZW51bSBjb2xv
cmltZXRyeSB7CiBDT0xPUklNRVRSWV9OT19EQVRBID0gMCwKIENPTE9SSU1FVFJZX0lUVTYwMSA9
IDEsCiBDT0xPUklNRVRSWV9JVFU3MDkgPSAyLAogQ09MT1JJTUVUUllfRVhURU5ERUQgPSAzCn07
CgplbnVtIGNvbG9yaW1ldHJ5X2V4dCB7CiBDT0xPUklNRVRSWUVYX1hWWUNDNjAxID0gMCwKIENP
TE9SSU1FVFJZRVhfWFZZQ0M3MDkgPSAxLAogQ09MT1JJTUVUUllFWF9TWUNDNjAxID0gMiwKIENP
TE9SSU1FVFJZRVhfQURPQkVZQ0M2MDEgPSAzLAogQ09MT1JJTUVUUllFWF9BRE9CRVJHQiA9IDQs
CiBDT0xPUklNRVRSWUVYX0JUMjAyMFlDQyA9IDUsCiBDT0xPUklNRVRSWUVYX0JUMjAyMFJHQllD
QkNSID0gNiwKIENPTE9SSU1FVFJZRVhfUkVTRVJWRUQgPSA3Cn07CgplbnVtIGFjdGl2ZV9mb3Jt
YXRfaW5mbyB7CiBBQ1RJVkVfRk9STUFUX05PX0RBVEEgPSAwLAogQUNUSVZFX0ZPUk1BVF9WQUxJ
RCA9IDEKfTsKCgplbnVtIGFjdGl2ZV9mb3JtYXRfYXNwZWN0X3JhdGlvIHsKIEFDVElWRV9GT1JN
QVRfQVNQRUNUX1JBVElPX1NBTUVfQVNfUElDVFVSRSA9IDgsCiBBQ1RJVkVfRk9STUFUX0FTUEVD
VF9SQVRJT180XzMgPSA5LAogQUNUSVZFX0ZPUk1BVF9BU1BFQ1RfUkFUSU9fMTZfOSA9IDBYQSwK
IEFDVElWRV9GT1JNQVRfQVNQRUNUX1JBVElPXzE0XzkgPSAwWEIKfTsKCmVudW0gYmFyX2luZm8g
ewogQkFSX0lORk9fTk9UX1ZBTElEID0gMCwKIEJBUl9JTkZPX1ZFUlRJQ0FMX1ZBTElEID0gMSwK
IEJBUl9JTkZPX0hPUklaT05UQUxfVkFMSUQgPSAyLAogQkFSX0lORk9fQk9USF9WQUxJRCA9IDMK
fTsKCmVudW0gcGljdHVyZV9zY2FsaW5nIHsKIFBJQ1RVUkVfU0NBTElOR19VTklGT1JNID0gMCwK
IFBJQ1RVUkVfU0NBTElOR19IT1JJWk9OVEFMID0gMSwKIFBJQ1RVUkVfU0NBTElOR19WRVJUSUNB
TCA9IDIsCiBQSUNUVVJFX1NDQUxJTkdfQk9USCA9IDMKfTsKCgplbnVtIHJnYl9xdWFudGl6YXRp
b25fcmFuZ2UgewogUkdCX1FVQU5USVpBVElPTl9ERUZBVUxUX1JBTkdFID0gMCwKIFJHQl9RVUFO
VElaQVRJT05fTElNSVRFRF9SQU5HRSA9IDEsCiBSR0JfUVVBTlRJWkFUSU9OX0ZVTExfUkFOR0Ug
PSAyLAogUkdCX1FVQU5USVpBVElPTl9SRVNFUlZFRCA9IDMKfTsKCgplbnVtIHl5Y19xdWFudGl6
YXRpb25fcmFuZ2UgewogWVlDX1FVQU5USVpBVElPTl9MSU1JVEVEX1JBTkdFID0gMCwKIFlZQ19R
VUFOVElaQVRJT05fRlVMTF9SQU5HRSA9IDEsCiBZWUNfUVVBTlRJWkFUSU9OX1JFU0VSVkVEMiA9
IDIsCiBZWUNfUVVBTlRJWkFUSU9OX1JFU0VSVkVEMyA9IDMKfTsKCmVudW0gZ3JhcGhpY3NfZ2Ft
dXRfYWRqdXN0X3R5cGUgewogR1JBUEhJQ1NfR0FNVVRfQURKVVNUX1RZUEVfQllQQVNTID0gMCwK
IEdSQVBISUNTX0dBTVVUX0FESlVTVF9UWVBFX0hXLAogR1JBUEhJQ1NfR0FNVVRfQURKVVNUX1RZ
UEVfU1cKfTsKCmVudW0gbGJfbWVtb3J5X2NvbmZpZyB7CgogTEJfTUVNT1JZX0NPTkZJR18wID0g
MCwKCgogTEJfTUVNT1JZX0NPTkZJR18xID0gMSwKCgogTEJfTUVNT1JZX0NPTkZJR18yID0gMiwK
CgoKCiBMQl9NRU1PUllfQ09ORklHXzMgPSAzCn07CgpzdHJ1Y3QgeGZtX2dycGhfY3NjX2FkanVz
dG1lbnQgewogc3RydWN0IGZpeGVkMzFfMzIgdGVtcGVyYXR1cmVfbWF0cml4WzEyXTsKIGVudW0g
Z3JhcGhpY3NfZ2FtdXRfYWRqdXN0X3R5cGUgZ2FtdXRfYWRqdXN0X3R5cGU7Cn07CgpzdHJ1Y3Qg
b3ZlcnNjYW5faW5mbyB7CiBpbnQgbGVmdDsKIGludCByaWdodDsKIGludCB0b3A7CiBpbnQgYm90
dG9tOwp9OwoKc3RydWN0IHNjYWxpbmdfcmF0aW9zIHsKIHN0cnVjdCBmaXhlZDMxXzMyIGhvcno7
CiBzdHJ1Y3QgZml4ZWQzMV8zMiB2ZXJ0Owogc3RydWN0IGZpeGVkMzFfMzIgaG9yel9jOwogc3Ry
dWN0IGZpeGVkMzFfMzIgdmVydF9jOwp9OwoKc3RydWN0IHNoYXJwbmVzc19hZGogewogaW50IGhv
cno7CiBpbnQgdmVydDsKfTsKCnN0cnVjdCBsaW5lX2J1ZmZlcl9wYXJhbXMgewogYm9vbCBhbHBo
YV9lbjsKIGJvb2wgcGl4ZWxfZXhwYW5fbW9kZTsKIGJvb2wgaW50ZXJsZWF2ZV9lbjsKIGludCBk
eW5hbWljX3BpeGVsX2RlcHRoOwogZW51bSBsYl9waXhlbF9kZXB0aCBkZXB0aDsKfTsKCnN0cnVj
dCBzY2xfaW5pdHMgewogc3RydWN0IGZpeGVkMzFfMzIgaDsKIHN0cnVjdCBmaXhlZDMxXzMyIGhf
YzsKIHN0cnVjdCBmaXhlZDMxXzMyIHY7CiBzdHJ1Y3QgZml4ZWQzMV8zMiB2X2JvdDsKIHN0cnVj
dCBmaXhlZDMxXzMyIHZfYzsKIHN0cnVjdCBmaXhlZDMxXzMyIHZfY19ib3Q7Cn07CgpzdHJ1Y3Qg
c2NhbGVyX2RhdGEgewogaW50IGhfYWN0aXZlOwogaW50IHZfYWN0aXZlOwogc3RydWN0IHNjYWxp
bmdfdGFwcyB0YXBzOwogc3RydWN0IHJlY3Qgdmlld3BvcnQ7CiBzdHJ1Y3QgcmVjdCB2aWV3cG9y
dF9jOwogc3RydWN0IHJlY3QgcmVjb3V0Owogc3RydWN0IHNjYWxpbmdfcmF0aW9zIHJhdGlvczsK
IHN0cnVjdCBzY2xfaW5pdHMgaW5pdHM7CiBzdHJ1Y3Qgc2hhcnBuZXNzX2FkaiBzaGFycG5lc3M7
CiBlbnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQ7CiBzdHJ1Y3QgbGluZV9idWZmZXJfcGFyYW1zIGxi
X3BhcmFtczsKfTsKCnN0cnVjdCB0cmFuc2Zvcm1fZnVuY3Mgewogdm9pZCAoKnRyYW5zZm9ybV9y
ZXNldCkoc3RydWN0IHRyYW5zZm9ybSAqeGZtKTsKCiB2b2lkICgqdHJhbnNmb3JtX3NldF9zY2Fs
ZXIpKHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAgY29uc3Qgc3RydWN0IHNjYWxlcl9kYXRhICpz
Y2xfZGF0YSk7Cgogdm9pZCAoKnRyYW5zZm9ybV9zZXRfcGl4ZWxfc3RvcmFnZV9kZXB0aCkoCiAg
IHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAgZW51bSBsYl9waXhlbF9kZXB0aCBkZXB0aCwKICAg
Y29uc3Qgc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zICpiaXRfZGVwdGhfcGFyYW1z
KTsKCiBib29sICgqdHJhbnNmb3JtX2dldF9vcHRpbWFsX251bWJlcl9vZl90YXBzKSgKICAgc3Ry
dWN0IHRyYW5zZm9ybSAqeGZtLAogICBzdHJ1Y3Qgc2NhbGVyX2RhdGEgKnNjbF9kYXRhLAogICBj
b25zdCBzdHJ1Y3Qgc2NhbGluZ190YXBzICppbl90YXBzKTsKCiB2b2lkICgqdHJhbnNmb3JtX3Nl
dF9nYW11dF9yZW1hcCkoCiAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAgY29uc3Qgc3RydWN0
IHhmbV9ncnBoX2NzY19hZGp1c3RtZW50ICphZGp1c3QpOwoKIHZvaWQgKCpvcHBfc2V0X2NzY19k
ZWZhdWx0KSgKICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0sCiAgY29uc3Qgc3RydWN0IGRlZmF1bHRf
YWRqdXN0bWVudCAqZGVmYXVsdF9hZGp1c3QpOwoKIHZvaWQgKCpvcHBfc2V0X2NzY19hZGp1c3Rt
ZW50KSgKICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0sCiAgY29uc3Qgc3RydWN0IG91dF9jc2NfY29s
b3JfbWF0cml4ICp0YmxfZW50cnkpOwoKIHZvaWQgKCpvcHBfcG93ZXJfb25fcmVnYW1tYV9sdXQp
KAogIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICBib29sIHBvd2VyX29uKTsKCiB2b2lkICgqb3Bw
X3Byb2dyYW1fcmVnYW1tYV9sdXQpKAogICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0sCiAgIGNvbnN0
IHN0cnVjdCBwd2xfcmVzdWx0X2RhdGEgKnJnYiwKICAgdWludDMyX3QgbnVtKTsKCiB2b2lkICgq
b3BwX2NvbmZpZ3VyZV9yZWdhbW1hX2x1dCkoCiAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAg
Ym9vbCBpc19yYW1fYSk7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX3JlZ2FtbWFfbHV0Yl9zZXR0aW5n
cykoCiAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMg
KnBhcmFtcyk7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX3JlZ2FtbWFfbHV0YV9zZXR0aW5ncykoCiAg
IHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFt
cyk7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX3JlZ2FtbWFfcHdsKSgKICBzdHJ1Y3QgdHJhbnNmb3Jt
ICp4Zm0sIGNvbnN0IHN0cnVjdCBwd2xfcGFyYW1zICpwYXJhbXMpOwoKIHZvaWQgKCpvcHBfc2V0
X3JlZ2FtbWFfbW9kZSkoCiAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbV9iYXNlLAogICBlbnVtIG9w
cF9yZWdhbW1hIG1vZGUpOwoKIHZvaWQgKCppcHBfc2V0X2RlZ2FtbWEpKAogICBzdHJ1Y3QgdHJh
bnNmb3JtICp4Zm1fYmFzZSwKICAgZW51bSBpcHBfZGVnYW1tYV9tb2RlIG1vZGUpOwoKIHZvaWQg
KCppcHBfcHJvZ3JhbV9pbnB1dF9sdXQpKAogICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm1fYmFzZSwK
ICAgY29uc3Qgc3RydWN0IGRjX2dhbW1hICpnYW1tYSk7Cgogdm9pZCAoKmlwcF9wcm9ncmFtX2Rl
Z2FtbWFfcHdsKShzdHJ1Y3QgdHJhbnNmb3JtICp4Zm1fYmFzZSwKICAgICAgICAgIGNvbnN0IHN0
cnVjdCBwd2xfcGFyYW1zICpwYXJhbXMpOwoKIHZvaWQgKCppcHBfc2V0dXApKAogICBzdHJ1Y3Qg
dHJhbnNmb3JtICp4Zm1fYmFzZSwKICAgZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQs
CiAgIGVudW0gZXhwYW5zaW9uX21vZGUgbW9kZSwKICAgc3RydWN0IGRjX2NzY190cmFuc2Zvcm0g
aW5wdXRfY3NjX2NvbG9yX21hdHJpeCwKICAgZW51bSBkY19jb2xvcl9zcGFjZSBpbnB1dF9jb2xv
cl9zcGFjZSk7Cgogdm9pZCAoKmlwcF9mdWxsX2J5cGFzcykoc3RydWN0IHRyYW5zZm9ybSAqeGZt
X2Jhc2UpOwoKIHZvaWQgKCpzZXRfY3Vyc29yX2F0dHJpYnV0ZXMpKAogICBzdHJ1Y3QgdHJhbnNm
b3JtICp4Zm1fYmFzZSwKICAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzICphdHRy
KTsKCn07Cgpjb25zdCB1aW50MTZfdCAqZ2V0X2ZpbHRlcl8ydGFwXzE2cCh2b2lkKTsKY29uc3Qg
dWludDE2X3QgKmdldF9maWx0ZXJfMnRhcF82NHAodm9pZCk7CmNvbnN0IHVpbnQxNl90ICpnZXRf
ZmlsdGVyXzN0YXBfMTZwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsKY29uc3QgdWludDE2X3Qg
KmdldF9maWx0ZXJfM3RhcF82NHAoc3RydWN0IGZpeGVkMzFfMzIgcmF0aW8pOwpjb25zdCB1aW50
MTZfdCAqZ2V0X2ZpbHRlcl80dGFwXzE2cChzdHJ1Y3QgZml4ZWQzMV8zMiByYXRpbyk7CmNvbnN0
IHVpbnQxNl90ICpnZXRfZmlsdGVyXzR0YXBfNjRwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsK
Y29uc3QgdWludDE2X3QgKmdldF9maWx0ZXJfNXRhcF82NHAoc3RydWN0IGZpeGVkMzFfMzIgcmF0
aW8pOwpjb25zdCB1aW50MTZfdCAqZ2V0X2ZpbHRlcl82dGFwXzY0cChzdHJ1Y3QgZml4ZWQzMV8z
MiByYXRpbyk7CmNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzd0YXBfNjRwKHN0cnVjdCBmaXhl
ZDMxXzMyIHJhdGlvKTsKY29uc3QgdWludDE2X3QgKmdldF9maWx0ZXJfOHRhcF82NHAoc3RydWN0
IGZpeGVkMzFfMzIgcmF0aW8pOwoKCgplbnVtIGRzY2xfZGF0YV9wcm9jZXNzaW5nX2Zvcm1hdCB7
CiBEU0NMX0RBVEFfUFJDRVNTSU5HX0ZJWEVEX0ZPUk1BVCwKIERTQ0xfREFUQV9QUkNFU1NJTkdf
RkxPQVRfRk9STUFULAp9OwoKCgoKCgoKc3RydWN0IGRwcF9jYXBzIHsKCiBlbnVtIGRzY2xfZGF0
YV9wcm9jZXNzaW5nX2Zvcm1hdCBkc2NsX2RhdGFfcHJvY19mb3JtYXQ7CgoKCgoKIHZvaWQgKCpk
c2NsX2NhbGNfbGJfbnVtX3BhcnRpdGlvbnMpKAogICBjb25zdCBzdHJ1Y3Qgc2NhbGVyX2RhdGEg
KnNjbF9kYXRhLAogICBlbnVtIGxiX21lbW9yeV9jb25maWcgbGJfY29uZmlnLAogICBpbnQgKm51
bV9wYXJ0X3ksCiAgIGludCAqbnVtX3BhcnRfYyk7Cn07CiMgMzIgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvb3BwLmgiIDIKIyAxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oIiAxCiMgMzYgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgiCmVu
dW0gbXBjX291dHB1dF9jc2NfbW9kZSB7CiBNUENfT1VUUFVUX0NTQ19ESVNBQkxFID0gMCwKIE1Q
Q19PVVRQVVRfQ1NDX0NPRUZfQSwKIE1QQ19PVVRQVVRfQ1NDX0NPRUZfQgp9OwoKCmVudW0gbXBj
Y19ibGVuZF9tb2RlIHsKIE1QQ0NfQkxFTkRfTU9ERV9CWVBBU1MsCiBNUENDX0JMRU5EX01PREVf
VE9QX0xBWUVSX1BBU1NUSFJPVUdILAogTVBDQ19CTEVORF9NT0RFX1RPUF9MQVlFUl9PTkxZLAog
TVBDQ19CTEVORF9NT0RFX1RPUF9CT1RfQkxFTkRJTkcKfTsKCmVudW0gbXBjY19hbHBoYV9ibGVu
ZF9tb2RlIHsKIE1QQ0NfQUxQSEFfQkxFTkRfTU9ERV9QRVJfUElYRUxfQUxQSEEsCiBNUENDX0FM
UEhBX0JMRU5EX01PREVfUEVSX1BJWEVMX0FMUEhBX0NPTUJJTkVEX0dMT0JBTF9HQUlOLAogTVBD
Q19BTFBIQV9CTEVORF9NT0RFX0dMT0JBTF9BTFBIQQp9OwoKCgoKc3RydWN0IG1wY2NfYmxuZF9j
Zmcgewogc3RydWN0IHRnX2NvbG9yIGJsYWNrX2NvbG9yOwogZW51bSBtcGNjX2FscGhhX2JsZW5k
X21vZGUgYWxwaGFfbW9kZTsKIGJvb2wgcHJlX211bHRpcGxpZWRfYWxwaGE7CiBpbnQgZ2xvYmFs
X2dhaW47CiBpbnQgZ2xvYmFsX2FscGhhOwogYm9vbCBvdmVybGFwX29ubHk7CgoKIGludCBib3R0
b21fZ2Fpbl9tb2RlOwogaW50IGJhY2tncm91bmRfY29sb3JfYnBjOwogaW50IHRvcF9nYWluOwog
aW50IGJvdHRvbV9pbnNpZGVfZ2FpbjsKIGludCBib3R0b21fb3V0c2lkZV9nYWluOwp9OwoKc3Ry
dWN0IG1wY2Nfc21fY2ZnIHsKIGJvb2wgZW5hYmxlOwoKIGludCBzbV9tb2RlOwoKIGJvb2wgZnJh
bWVfYWx0OwoKIGJvb2wgZmllbGRfYWx0OwoKIGludCBmb3JjZV9uZXh0X2ZyYW1lX3Bvcmxhcml0
eTsKCiBpbnQgZm9yY2VfbmV4dF9maWVsZF9wb2xhcml0eTsKfTsKCnN0cnVjdCBtcGNfZGVub3Jt
X2NsYW1wIHsKIGludCBjbGFtcF9tYXhfcl9jcjsKIGludCBjbGFtcF9taW5fcl9jcjsKIGludCBj
bGFtcF9tYXhfZ195OwogaW50IGNsYW1wX21pbl9nX3k7CiBpbnQgY2xhbXBfbWF4X2JfY2I7CiBp
bnQgY2xhbXBfbWluX2JfY2I7Cn07CgoKCgoKc3RydWN0IG1wY2MgewogaW50IG1wY2NfaWQ7CiBp
bnQgZHBwX2lkOwogc3RydWN0IG1wY2MgKm1wY2NfYm90Owogc3RydWN0IG1wY2NfYmxuZF9jZmcg
YmxuZF9jZmc7CiBzdHJ1Y3QgbXBjY19zbV9jZmcgc21fY2ZnOwp9OwoKCgoKc3RydWN0IG1wY190
cmVlIHsKIGludCBvcHBfaWQ7CiBzdHJ1Y3QgbXBjYyAqb3BwX2xpc3Q7Cn07CgpzdHJ1Y3QgbXBj
IHsKIGNvbnN0IHN0cnVjdCBtcGNfZnVuY3MgKmZ1bmNzOwogc3RydWN0IGRjX2NvbnRleHQgKmN0
eDsKCiBzdHJ1Y3QgbXBjYyBtcGNjX2FycmF5WzZdOwogc3RydWN0IHB3bF9wYXJhbXMgYmxlbmRl
cl9wYXJhbXM7CiBib29sIGNtX2J5cGFzc19tb2RlOwp9OwoKc3RydWN0IG1wY2Nfc3RhdGUgewog
dWludDMyX3Qgb3BwX2lkOwogdWludDMyX3QgZHBwX2lkOwogdWludDMyX3QgYm90X21wY2NfaWQ7
CiB1aW50MzJfdCBtb2RlOwogdWludDMyX3QgYWxwaGFfbW9kZTsKIHVpbnQzMl90IHByZV9tdWx0
aXBsaWVkX2FscGhhOwogdWludDMyX3Qgb3ZlcmxhcF9vbmx5OwogdWludDMyX3QgaWRsZTsKIHVp
bnQzMl90IGJ1c3k7Cn07CgpzdHJ1Y3QgbXBjX2Z1bmNzIHsKIHZvaWQgKCpyZWFkX21wY2Nfc3Rh
dGUpKAogICBzdHJ1Y3QgbXBjICptcGMsCiAgIGludCBtcGNjX2luc3QsCiAgIHN0cnVjdCBtcGNj
X3N0YXRlICpzKTsKIyAxNjEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9pbmMvaHcvbXBjLmgiCiBzdHJ1Y3QgbXBjYyogKCppbnNlcnRfcGxhbmUpKAogICBzdHJ1
Y3QgbXBjICptcGMsCiAgIHN0cnVjdCBtcGNfdHJlZSAqdHJlZSwKICAgc3RydWN0IG1wY2NfYmxu
ZF9jZmcgKmJsbmRfY2ZnLAogICBzdHJ1Y3QgbXBjY19zbV9jZmcgKnNtX2NmZywKICAgc3RydWN0
IG1wY2MgKmluc2VydF9hYm92ZV9tcGNjLAogICBpbnQgZHBwX2lkLAogICBpbnQgbXBjY19pZCk7
CiMgMTgwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3
L21wYy5oIgogdm9pZCAoKnJlbW92ZV9tcGNjKSgKICAgc3RydWN0IG1wYyAqbXBjLAogICBzdHJ1
Y3QgbXBjX3RyZWUgKnRyZWUsCiAgIHN0cnVjdCBtcGNjICptcGNjKTsKIyAxOTMgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgiCiB2b2lkICgq
bXBjX2luaXQpKHN0cnVjdCBtcGMgKm1wYyk7CiB2b2lkICgqbXBjX2luaXRfc2luZ2xlX2luc3Qp
KAogICBzdHJ1Y3QgbXBjICptcGMsCiAgIHVuc2lnbmVkIGludCBtcGNjX2lkKTsKIyAyMDggIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgiCiB2
b2lkICgqdXBkYXRlX2JsZW5kaW5nKSgKICBzdHJ1Y3QgbXBjICptcGMsCiAgc3RydWN0IG1wY2Nf
YmxuZF9jZmcgKmJsbmRfY2ZnLAogIGludCBtcGNjX2lkKTsKCiBzdHJ1Y3QgbXBjYyogKCpnZXRf
bXBjY19mb3JfZHBwKSgKICAgc3RydWN0IG1wY190cmVlICp0cmVlLAogICBpbnQgZHBwX2lkKTsK
CiB2b2lkICgqd2FpdF9mb3JfaWRsZSkoc3RydWN0IG1wYyAqbXBjLCBpbnQgaWQpOwoKIHZvaWQg
KCphc3NlcnRfbXBjY19pZGxlX2JlZm9yZV9jb25uZWN0KShzdHJ1Y3QgbXBjICptcGMsIGludCBt
cGNjX2lkKTsKCiB2b2lkICgqaW5pdF9tcGNjX2xpc3RfZnJvbV9odykoCiAgc3RydWN0IG1wYyAq
bXBjLAogIHN0cnVjdCBtcGNfdHJlZSAqdHJlZSk7Cgogdm9pZCAoKnNldF9kZW5vcm0pKHN0cnVj
dCBtcGMgKm1wYywKICAgaW50IG9wcF9pZCwKICAgZW51bSBkY19jb2xvcl9kZXB0aCBvdXRwdXRf
ZGVwdGgpOwoKIHZvaWQgKCpzZXRfZGVub3JtX2NsYW1wKSgKICAgc3RydWN0IG1wYyAqbXBjLAog
ICBpbnQgb3BwX2lkLAogICBzdHJ1Y3QgbXBjX2Rlbm9ybV9jbGFtcCBkZW5vcm1fY2xhbXApOwoK
IHZvaWQgKCpzZXRfb3V0cHV0X2NzYykoc3RydWN0IG1wYyAqbXBjLAogICBpbnQgb3BwX2lkLAog
ICBjb25zdCB1aW50MTZfdCAqcmVndmFsLAogICBlbnVtIG1wY19vdXRwdXRfY3NjX21vZGUgb2Nz
Y19tb2RlKTsKCiB2b2lkICgqc2V0X29jc2NfZGVmYXVsdCkoc3RydWN0IG1wYyAqbXBjLAogICBp
bnQgb3BwX2lkLAogICBlbnVtIGRjX2NvbG9yX3NwYWNlIGNvbG9yX3NwYWNlLAogICBlbnVtIG1w
Y19vdXRwdXRfY3NjX21vZGUgb2NzY19tb2RlKTsKCiB2b2lkICgqc2V0X291dHB1dF9nYW1tYSko
CiAgIHN0cnVjdCBtcGMgKm1wYywKICAgaW50IG1wY2NfaWQsCiAgIGNvbnN0IHN0cnVjdCBwd2xf
cGFyYW1zICpwYXJhbXMpOwogdm9pZCAoKnBvd2VyX29uX21wY19tZW1fcHdyKSgKICAgc3RydWN0
IG1wYyAqbXBjLAogICBpbnQgbXBjY19pZCwKICAgYm9vbCBwb3dlcl9vbik7Cgp9OwojIDMzICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L29wcC5oIiAy
CgpzdHJ1Y3QgZml4ZWQzMV8zMjsKCgplbnVtIGNsYW1waW5nX3JhbmdlIHsKIENMQU1QSU5HX0ZV
TExfUkFOR0UgPSAwLAogQ0xBTVBJTkdfTElNSVRFRF9SQU5HRV84QlBDLAogQ0xBTVBJTkdfTElN
SVRFRF9SQU5HRV8xMEJQQywKIENMQU1QSU5HX0xJTUlURURfUkFOR0VfMTJCUEMsCgogQ0xBTVBJ
TkdfTElNSVRFRF9SQU5HRV9QUk9HUkFNTUFCTEUKfTsKCnN0cnVjdCBjbGFtcGluZ19hbmRfcGl4
ZWxfZW5jb2RpbmdfcGFyYW1zIHsKIGVudW0gZGNfcGl4ZWxfZW5jb2RpbmcgcGl4ZWxfZW5jb2Rp
bmc7CiBlbnVtIGNsYW1waW5nX3JhbmdlIGNsYW1waW5nX2xldmVsOwogZW51bSBkY19jb2xvcl9k
ZXB0aCBjX2RlcHRoOwp9OwoKc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zIHsKIHN0
cnVjdCB7CgoKICB1aW50MzJfdCBUUlVOQ0FURV9FTkFCTEVEOjE7CgogIHVpbnQzMl90IFRSVU5D
QVRFX0RFUFRIOjI7CgogIHVpbnQzMl90IFRSVU5DQVRFX01PREU6MTsKCgoKICB1aW50MzJfdCBT
UEFUSUFMX0RJVEhFUl9FTkFCTEVEOjE7CgogIHVpbnQzMl90IFNQQVRJQUxfRElUSEVSX0RFUFRI
OjI7CgogIHVpbnQzMl90IFNQQVRJQUxfRElUSEVSX01PREU6MjsKCiAgdWludDMyX3QgUkdCX1JB
TkRPTToxOwoKICB1aW50MzJfdCBGUkFNRV9SQU5ET006MTsKCiAgdWludDMyX3QgSElHSFBBU1Nf
UkFORE9NOjE7CgoKCiAgdWludDMyX3QgRlJBTUVfTU9EVUxBVElPTl9FTkFCTEVEOjE7CgogIHVp
bnQzMl90IEZSQU1FX01PRFVMQVRJT05fREVQVEg6MjsKCiAgdWludDMyX3QgVEVNUE9SQUxfTEVW
RUw6MTsKICB1aW50MzJfdCBGUkMyNToyOwogIHVpbnQzMl90IEZSQzUwOjI7CiAgdWludDMyX3Qg
RlJDNzU6MjsKIH0gZmxhZ3M7CgogdWludDMyX3Qgcl9zZWVkX3ZhbHVlOwogdWludDMyX3QgYl9z
ZWVkX3ZhbHVlOwogdWludDMyX3QgZ19zZWVkX3ZhbHVlOwogZW51bSBkY19waXhlbF9lbmNvZGlu
ZyBwaXhlbF9lbmNvZGluZzsKfTsKCmVudW0gd2lkZV9nYW11dF9yZWdhbW1hX21vZGUgewoKIFdJ
REVfR0FNVVRfUkVHQU1NQV9NT0RFX0dSQVBISUNTX0JZUEFTUywKCiBXSURFX0dBTVVUX1JFR0FN
TUFfTU9ERV9HUkFQSElDU19TUkdCMjQsCgogV0lERV9HQU1VVF9SRUdBTU1BX01PREVfR1JBUEhJ
Q1NfWFlZQ0MyMiwKCiBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19NQVRSSVhfQSwK
CiBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19NQVRSSVhfQiwKCiBXSURFX0dBTVVU
X1JFR0FNTUFfTU9ERV9PVkxfQllQQVNTLAoKIFdJREVfR0FNVVRfUkVHQU1NQV9NT0RFX09WTF9T
UkdCMjQsCgogV0lERV9HQU1VVF9SRUdBTU1BX01PREVfT1ZMX1hZWUNDMjIsCgogV0lERV9HQU1V
VF9SRUdBTU1BX01PREVfT1ZMX01BVFJJWF9BLAoKIFdJREVfR0FNVVRfUkVHQU1NQV9NT0RFX09W
TF9NQVRSSVhfQgp9OwoKc3RydWN0IGdhbW1hX3BpeGVsIHsKIHN0cnVjdCBmaXhlZDMxXzMyIHI7
CiBzdHJ1Y3QgZml4ZWQzMV8zMiBnOwogc3RydWN0IGZpeGVkMzFfMzIgYjsKfTsKCmVudW0gY2hh
bm5lbF9uYW1lIHsKIENIQU5ORUxfTkFNRV9SRUQsCiBDSEFOTkVMX05BTUVfR1JFRU4sCiBDSEFO
TkVMX05BTUVfQkxVRQp9OwoKc3RydWN0IGN1c3RvbV9mbG9hdF9mb3JtYXQgewogdWludDMyX3Qg
bWFudGlzc2FfYml0czsKIHVpbnQzMl90IGV4cG9uZW50YV9iaXRzOwogYm9vbCBzaWduOwp9OwoK
c3RydWN0IGN1c3RvbV9mbG9hdF92YWx1ZSB7CiB1aW50MzJfdCBtYW50aXNzYTsKIHVpbnQzMl90
IGV4cG9uZW50YTsKIHVpbnQzMl90IHZhbHVlOwogYm9vbCBuZWdhdGl2ZTsKfTsKCnN0cnVjdCBo
d194X3BvaW50IHsKIHVpbnQzMl90IGN1c3RvbV9mbG9hdF94Owogc3RydWN0IGZpeGVkMzFfMzIg
eDsKIHN0cnVjdCBmaXhlZDMxXzMyIHJlZ2FtbWFfeV9yZWQ7CiBzdHJ1Y3QgZml4ZWQzMV8zMiBy
ZWdhbW1hX3lfZ3JlZW47CiBzdHJ1Y3QgZml4ZWQzMV8zMiByZWdhbW1hX3lfYmx1ZTsKCn07Cgpz
dHJ1Y3QgcHdsX2Zsb2F0X2RhdGFfZXggewogc3RydWN0IGZpeGVkMzFfMzIgcjsKIHN0cnVjdCBm
aXhlZDMxXzMyIGc7CiBzdHJ1Y3QgZml4ZWQzMV8zMiBiOwogc3RydWN0IGZpeGVkMzFfMzIgZGVs
dGFfcjsKIHN0cnVjdCBmaXhlZDMxXzMyIGRlbHRhX2c7CiBzdHJ1Y3QgZml4ZWQzMV8zMiBkZWx0
YV9iOwp9OwoKZW51bSBod19wb2ludF9wb3NpdGlvbiB7CgogSFdfUE9JTlRfUE9TSVRJT05fTUlE
RExFLAoKIEhXX1BPSU5UX1BPU0lUSU9OX0xFRlQsCgogSFdfUE9JTlRfUE9TSVRJT05fUklHSFQK
fTsKCnN0cnVjdCBnYW1tYV9wb2ludCB7CiBpbnQzMl90IGxlZnRfaW5kZXg7CiBpbnQzMl90IHJp
Z2h0X2luZGV4OwogZW51bSBod19wb2ludF9wb3NpdGlvbiBwb3M7CiBzdHJ1Y3QgZml4ZWQzMV8z
MiBjb2VmZjsKfTsKCnN0cnVjdCBwaXhlbF9nYW1tYV9wb2ludCB7CiBzdHJ1Y3QgZ2FtbWFfcG9p
bnQgcjsKIHN0cnVjdCBnYW1tYV9wb2ludCBnOwogc3RydWN0IGdhbW1hX3BvaW50IGI7Cn07Cgpz
dHJ1Y3QgZ2FtbWFfY29lZmZpY2llbnRzIHsKIHN0cnVjdCBmaXhlZDMxXzMyIGEwWzNdOwogc3Ry
dWN0IGZpeGVkMzFfMzIgYTFbM107CiBzdHJ1Y3QgZml4ZWQzMV8zMiBhMlszXTsKIHN0cnVjdCBm
aXhlZDMxXzMyIGEzWzNdOwogc3RydWN0IGZpeGVkMzFfMzIgdXNlcl9nYW1tYVszXTsKIHN0cnVj
dCBmaXhlZDMxXzMyIHVzZXJfY29udHJhc3Q7CiBzdHJ1Y3QgZml4ZWQzMV8zMiB1c2VyX2JyaWdo
dG5lc3M7Cn07CgpzdHJ1Y3QgcHdsX2Zsb2F0X2RhdGEgewogc3RydWN0IGZpeGVkMzFfMzIgcjsK
IHN0cnVjdCBmaXhlZDMxXzMyIGc7CiBzdHJ1Y3QgZml4ZWQzMV8zMiBiOwp9OwoKc3RydWN0IG1w
Y190cmVlX2NmZyB7CiBpbnQgbnVtX3BpcGVzOwogaW50IGRwcFs2XTsKIGludCBtcGNjWzZdOwp9
OwoKc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3Igewogc3RydWN0IGRjX2NvbnRleHQgKmN0
eDsKIHVpbnQzMl90IGluc3Q7CiBzdHJ1Y3QgcHdsX3BhcmFtcyByZWdhbW1hX3BhcmFtczsKIHN0
cnVjdCBtcGNfdHJlZSBtcGNfdHJlZV9wYXJhbXM7CiBib29sIG1wY2NfZGlzY29ubmVjdF9wZW5k
aW5nWzZdOwogY29uc3Qgc3RydWN0IG9wcF9mdW5jcyAqZnVuY3M7CiB1aW50MzJfdCBkeW5fZXhw
YW5zaW9uOwp9OwoKZW51bSBmbXRfc3RlcmVvX2FjdGlvbiB7CiBGTVRfU1RFUkVPX0FDVElPTl9F
TkFCTEUgPSAwLAogRk1UX1NURVJFT19BQ1RJT05fRElTQUJMRSwKIEZNVF9TVEVSRU9fQUNUSU9O
X1VQREFURV9QT0xBUklUWQp9OwoKc3RydWN0IG9wcF9ncnBoX2NzY19hZGp1c3RtZW50IHsKCiBl
bnVtIGRjX2NvbG9yX3NwYWNlIGNfc3BhY2U7CiBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2Rl
cHRoOwogZW51bSBncmFwaGljc19jc2NfYWRqdXN0X3R5cGUgY3NjX2FkanVzdF90eXBlOwogaW50
MzJfdCBhZGp1c3RfZGl2aWRlcjsKIGludDMyX3QgZ3JwaF9jb250OwogaW50MzJfdCBncnBoX3Nh
dDsKIGludDMyX3QgZ3JwaF9icmlnaHQ7CiBpbnQzMl90IGdycGhfaHVlOwp9OwoKCgpzdHJ1Y3Qg
aHdfYWRqdXN0bWVudF9yYW5nZSB7CiBpbnQzMl90IGh3X2RlZmF1bHQ7CiBpbnQzMl90IG1pbjsK
IGludDMyX3QgbWF4OwogaW50MzJfdCBzdGVwOwogdWludDMyX3QgZGl2aWRlcjsKfTsKCmVudW0g
b3ZsX2NzY19hZGp1c3RfaXRlbSB7CiBPVkVSTEFZX0JSSUdIVE5FU1MgPSAwLAogT1ZFUkxBWV9H
QU1NQSwKIE9WRVJMQVlfQ09OVFJBU1QsCiBPVkVSTEFZX1NBVFVSQVRJT04sCiBPVkVSTEFZX0hV
RSwKIE9WRVJMQVlfQUxQSEEsCiBPVkVSTEFZX0FMUEhBX1BFUl9QSVgsCiBPVkVSTEFZX0NPTE9S
X1RFTVBFUkFUVVJFCn07CgplbnVtIG9wcGJ1Zl9kaXNwbGF5X3NlZ21lbnRhdGlvbiB7CiBPUFBC
VUZfRElTUExBWV9TRUdNRU5UQVRJT05fMV9TRUdNRU5UID0gMCwKIE9QUEJVRl9ESVNQTEFZX1NF
R01FTlRBVElPTl8yX1NFR01FTlQgPSAxLAogT1BQQlVGX0RJU1BMQVlfU0VHTUVOVEFUSU9OXzRf
U0VHTUVOVCA9IDIsCiBPUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fNF9TRUdNRU5UX1NQTElU
X0xFRlQgPSAzLAogT1BQQlVGX0RJU1BMQVlfU0VHTUVOVEFUSU9OXzRfU0VHTUVOVF9TUExJVF9S
SUdIVCA9IDQKfTsKCnN0cnVjdCBvcHBidWZfcGFyYW1zIHsKIHVpbnQzMl90IGFjdGl2ZV93aWR0
aDsKIGVudW0gb3BwYnVmX2Rpc3BsYXlfc2VnbWVudGF0aW9uIG1zb19zZWdtZW50YXRpb247CiB1
aW50MzJfdCBtc29fb3ZlcmxhcF9waXhlbF9udW07CiB1aW50MzJfdCBwaXhlbF9yZXBldGl0aW9u
OwogdWludDMyX3QgbnVtX3NlZ21lbnRfcGFkZGVkX3BpeGVsczsKfTsKCnN0cnVjdCBvcHBfZnVu
Y3MgewoKCgoKIHZvaWQgKCpvcHBfcHJvZ3JhbV9mbXQpKAogICBzdHJ1Y3Qgb3V0cHV0X3BpeGVs
X3Byb2Nlc3NvciAqb3BwLAogICBzdHJ1Y3QgYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJhbXMgKmZt
dF9iaXRfZGVwdGgsCiAgIHN0cnVjdCBjbGFtcGluZ19hbmRfcGl4ZWxfZW5jb2RpbmdfcGFyYW1z
ICpjbGFtcGluZyk7Cgogdm9pZCAoKm9wcF9zZXRfZHluX2V4cGFuc2lvbikoCiAgc3RydWN0IG91
dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKICBlbnVtIGRjX2NvbG9yX3NwYWNlIGNvbG9yX3Nw
LAogIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZHB0aCwKICBlbnVtIHNpZ25hbF90eXBlIHNp
Z25hbCk7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX2JpdF9kZXB0aF9yZWR1Y3Rpb24pKAogIHN0cnVj
dCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHAsCiAgY29uc3Qgc3RydWN0IGJpdF9kZXB0aF9y
ZWR1Y3Rpb25fcGFyYW1zICpwYXJhbXMpOwoKCiB2b2lkICgqb3BwX2dldF91bmRlcmxheV9hZGp1
c3RtZW50X3JhbmdlKSgKICAgc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKICAg
ZW51bSBvdmxfY3NjX2FkanVzdF9pdGVtIG92ZXJsYXlfYWRqdXN0X2l0ZW0sCiAgIHN0cnVjdCBo
d19hZGp1c3RtZW50X3JhbmdlICpyYW5nZSk7Cgogdm9pZCAoKm9wcF9kZXN0cm95KShzdHJ1Y3Qg
b3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqKm9wcCk7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX3N0ZXJl
bykoCiAgc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKICBib29sIGVuYWJsZSwK
ICBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZyk7Cgogdm9pZCAoKm9wcF9waXBl
X2Nsb2NrX2NvbnRyb2wpKAogICBzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwLAog
ICBib29sIGVuYWJsZSk7Cgogdm9pZCAoKm9wcF9zZXRfZGlzcF9wYXR0ZXJuX2dlbmVyYXRvciko
CiAgIHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHAsCiAgIGVudW0gY29udHJvbGxl
cl9kcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuLAogICBlbnVtIGNvbnRyb2xsZXJfZHBfY29s
b3Jfc3BhY2UgY29sb3Jfc3BhY2UsCiAgIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGgs
CiAgIGNvbnN0IHN0cnVjdCB0Z19jb2xvciAqc29saWRfY29sb3IsCiAgIGludCB3aWR0aCwKICAg
aW50IGhlaWdodCk7CgogYm9vbCAoKmRwZ19pc19ibGFua2VkKSgKICAgc3RydWN0IG91dHB1dF9w
aXhlbF9wcm9jZXNzb3IgKm9wcCk7Cgogdm9pZCAoKm9wcF9kcGdfc2V0X2JsYW5rX2NvbG9yKSgK
ICAgc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKICAgY29uc3Qgc3RydWN0IHRn
X2NvbG9yICpjb2xvcik7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX2xlZnRfZWRnZV9leHRyYV9waXhl
bCkoCiAgIHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHAsCiAgIGJvb2wgY291bnQp
OwoKfTsKIyAzNiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Rj
LmgiIDIKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2lu
Yy9od19zZXF1ZW5jZXIuaCIgMQojIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvaW5jL2h3X3NlcXVlbmNlci5oIgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY2xvY2tfc291cmNlLmgiIDEKIyAzMCAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jbG9ja19zb3VyY2UuaCIK
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBo
X29iamVjdF9pZC5oIiAxCiMgMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvY2xvY2tfc291cmNlLmgiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oIiAxCiMgMzAgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2Jpb3NfcGFyc2Vy
X3R5cGVzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RtX3NlcnZpY2VzLmgiIDEKIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fdHJhY2UuaCIgMQojIDMyICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90cmFj
ZS5oIgojIDEgIi4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgiIDEKIyAyMyAiLi9pbmNsdWRl
L2xpbnV4L3RyYWNlcG9pbnQuaCIKc3RydWN0IG1vZHVsZTsKc3RydWN0IHRyYWNlcG9pbnQ7CnN0
cnVjdCBub3RpZmllcl9ibG9jazsKCnN0cnVjdCB0cmFjZV9ldmFsX21hcCB7CiBjb25zdCBjaGFy
ICpzeXN0ZW07CiBjb25zdCBjaGFyICpldmFsX3N0cmluZzsKIHVuc2lnbmVkIGxvbmcgZXZhbF92
YWx1ZTsKfTsKCgoKZXh0ZXJuIHN0cnVjdCBzcmN1X3N0cnVjdCB0cmFjZXBvaW50X3NyY3U7Cgpl
eHRlcm4gaW50CnRyYWNlcG9pbnRfcHJvYmVfcmVnaXN0ZXIoc3RydWN0IHRyYWNlcG9pbnQgKnRw
LCB2b2lkICpwcm9iZSwgdm9pZCAqZGF0YSk7CmV4dGVybiBpbnQKdHJhY2Vwb2ludF9wcm9iZV9y
ZWdpc3Rlcl9wcmlvKHN0cnVjdCB0cmFjZXBvaW50ICp0cCwgdm9pZCAqcHJvYmUsIHZvaWQgKmRh
dGEsCiAgICAgICAgICBpbnQgcHJpbyk7CmV4dGVybiBpbnQKdHJhY2Vwb2ludF9wcm9iZV91bnJl
Z2lzdGVyKHN0cnVjdCB0cmFjZXBvaW50ICp0cCwgdm9pZCAqcHJvYmUsIHZvaWQgKmRhdGEpOwpl
eHRlcm4gdm9pZApmb3JfZWFjaF9rZXJuZWxfdHJhY2Vwb2ludCh2b2lkICgqZmN0KShzdHJ1Y3Qg
dHJhY2Vwb2ludCAqdHAsIHZvaWQgKnByaXYpLAogIHZvaWQgKnByaXYpOwoKCnN0cnVjdCB0cF9t
b2R1bGUgewogc3RydWN0IGxpc3RfaGVhZCBsaXN0Owogc3RydWN0IG1vZHVsZSAqbW9kOwp9OwoK
Ym9vbCB0cmFjZV9tb2R1bGVfaGFzX2JhZF90YWludChzdHJ1Y3QgbW9kdWxlICptb2QpOwpleHRl
cm4gaW50IHJlZ2lzdGVyX3RyYWNlcG9pbnRfbW9kdWxlX25vdGlmaWVyKHN0cnVjdCBub3RpZmll
cl9ibG9jayAqbmIpOwpleHRlcm4gaW50IHVucmVnaXN0ZXJfdHJhY2Vwb2ludF9tb2R1bGVfbm90
aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CiMgODAgIi4vaW5jbHVkZS9saW51eC90
cmFjZXBvaW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgdHJhY2Vwb2ludF9zeW5jaHJvbml6ZV91bnJlZ2lzdGVyKHZvaWQp
CnsKIHN5bmNocm9uaXplX3NyY3UoJnRyYWNlcG9pbnRfc3JjdSk7CiBzeW5jaHJvbml6ZV9yY3Uo
KTsKfQoKCgoKCgpleHRlcm4gaW50IHN5c2NhbGxfcmVnZnVuYyh2b2lkKTsKZXh0ZXJuIHZvaWQg
c3lzY2FsbF91bnJlZ2Z1bmModm9pZCk7CiMgMTAxICIuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2lu
dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzdHJ1Y3QgdHJhY2Vwb2ludCAqdHJhY2Vwb2ludF9wdHJfZGVyZWYodHJhY2Vwb2ludF9w
dHJfdCAqcCkKewogcmV0dXJuIG9mZnNldF90b19wdHIocCk7Cn0KIyAzMyAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fdHJhY2UuaCIg
MgoKZXh0ZXJuIHN0cnVjdCB0cmFjZXBvaW50IF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJlZzsg
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCB0cmFjZV9hbWRncHVfZGNfcnJlZyh1bnNpZ25lZCBsb25nICpyZWFkX2NvdW50LCB1aW50
MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSB7IGlmIChzdGF0aWNfa2V5X2ZhbHNlKCZfX3RyYWNl
cG9pbnRfYW1kZ3B1X2RjX3JyZWcua2V5KSkgZG8geyBzdHJ1Y3QgdHJhY2Vwb2ludF9mdW5jICpp
dF9mdW5jX3B0cjsgdm9pZCAqaXRfZnVuYzsgdm9pZCAqX19kYXRhOyBpbnQgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9faWR4ID0gMDsgaWYgKCEoY3B1bWFza190ZXN0X2NwdSgoKHsgdHlw
ZW9mKGNwdV9udW1iZXIpIHBzY3JfcmV0X187IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5
ID0gKHR5cGVvZigoJihjcHVfbnVtYmVyKSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBf
dmVyaWZ5OyB9IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6
IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNp
emVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIi
Z3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIp
KTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsg
Y2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIg
OiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFz
bSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBm
b19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNw
dV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgMjogcHNjcl9yZXRfXyA9ICh7
IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIp
KSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIs
JTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAy
OiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xh
dGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRf
XykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92
IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAo
Y3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9f
cmV0X187IH0pOyBicmVhazsgY2FzZSA0OiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1i
ZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20g
dm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9f
cmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAo
Im1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAi
bSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAi
IiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251
bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6
IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFr
OyBjYXNlIDg6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBz
d2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
ImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNw
dV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikp
OyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIg
IjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBj
YXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6
ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
YmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3NpemVfY2FsbF9wYXJhbWV0ZXIoKTsgYnJlYWs7IH0gcHNjcl9yZXRfXzsgfSkpLCAoKGNvbnN0
IHN0cnVjdCBjcHVtYXNrICopJl9fY3B1X29ubGluZV9tYXNrKSkpKSByZXR1cm47ICh7IGludCBf
X3JldF93YXJuX29uID0gISEoMCAmJiAocHJlZW1wdF9jb3VudCgpICYgKCgoMVVMIDw8ICgxKSkt
MSkgPDwgKCgoMCArIDgpICsgOCkgKyA0KSkpKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19y
ZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAi
LmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxu
IiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxu
IiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0
LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVn
X2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIg
KCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVf
ZG1fdHJhY2UuaCIpLCAiaSIgKDM0KSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8
IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBh
c20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxu
XHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDQ0KSk7
IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7
IH0pOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyBpZiAoMCkgeyBfX2lk
eCA9IHNyY3VfcmVhZF9sb2NrX25vdHJhY2UoJnRyYWNlcG9pbnRfc3JjdSk7IHJjdV9pcnFfZW50
ZXJfaXJxc29uKCk7IH0gaXRfZnVuY19wdHIgPSAoeyB0eXBlb2YoKCZfX3RyYWNlcG9pbnRfYW1k
Z3B1X2RjX3JyZWcpLT5mdW5jcykgX19fX19fX19wMSA9ICh7IHVuaW9uIHsgdHlwZW9mKCgmX190
cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnKS0+ZnVuY3MpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBf
X3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3Jy
ZWcpLT5mdW5jcyksIF9fdS5fX2MsIHNpemVvZigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJl
ZyktPmZ1bmNzKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoKCZfX3RyYWNlcG9p
bnRfYW1kZ3B1X2RjX3JyZWcpLT5mdW5jcyksIF9fdS5fX2MsIHNpemVvZigoJl9fdHJhY2Vwb2lu
dF9hbWRncHVfZGNfcnJlZyktPmZ1bmNzKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsg
fSk7ICgodHlwZW9mKCooJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJlZyktPmZ1bmNzKSAqKShf
X19fX19fX3AxKSk7IH0pOyBpZiAoaXRfZnVuY19wdHIpIHsgZG8geyBpdF9mdW5jID0gKGl0X2Z1
bmNfcHRyKS0+ZnVuYzsgX19kYXRhID0gKGl0X2Z1bmNfcHRyKS0+ZGF0YTsgKCh2b2lkKCopKHZv
aWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqcmVhZF9jb3VudCwgdWludDMyX3QgcmVnLCB1aW50
MzJfdCB2YWx1ZSkpKGl0X2Z1bmMpKShfX2RhdGEsIHJlYWRfY291bnQsIHJlZywgdmFsdWUpOyB9
IHdoaWxlICgoKytpdF9mdW5jX3B0ciktPmZ1bmMpOyB9IGlmICgwKSB7IHJjdV9pcnFfZXhpdF9p
cnFzb24oKTsgc3JjdV9yZWFkX3VubG9ja19ub3RyYWNlKCZ0cmFjZXBvaW50X3NyY3UsIF9faWR4
KTsgfSBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyB9IHdoaWxlICgwKTsg
aWYgKDAgJiYgKGNwdW1hc2tfdGVzdF9jcHUoKCh7IHR5cGVvZihjcHVfbnVtYmVyKSBwc2NyX3Jl
dF9fOyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X251bWJl
cikpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3
aXRjaChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBwc2NyX3JldF9fID0gKHsgdHlwZW9m
KGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2Fz
ZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2
b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19y
ZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgi
bW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJt
IiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsg
fSk7IGJyZWFrOyBjYXNlIDI6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZv
X3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGls
ZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykg
OiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAi
dyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1
X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdz
IiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7
IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAi
MSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2Ug
NDogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAo
c2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUl
IiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJl
cikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAi
JSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFr
OyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUw
IiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODog
YXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVy
Y3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2FzZSA4OiBwc2NyX3JldF9fID0g
KHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJl
cikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEi
IiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNl
IDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9
ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZv
bGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3Jl
dF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJt
b3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0i
IChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBm
b19yZXRfXzsgfSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7
IGJyZWFrOyB9IHBzY3JfcmV0X187IH0pKSwgKChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqKSZfX2Nw
dV9vbmxpbmVfbWFzaykpKSkgeyByY3VfcmVhZF9sb2NrX3NjaGVkX25vdHJhY2UoKTsgKHsgdHlw
ZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSkgKl9fX19fX19fcDEgPSAo
dHlwZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSkgKikoeyB1bmlvbiB7
IHR5cGVvZigoX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSkgX192YWw7IGNoYXIg
X19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJigoX190cmFjZXBvaW50X2Ft
ZGdwdV9kY19ycmVnLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190cmFjZXBvaW50X2FtZGdw
dV9kY19ycmVnLmZ1bmNzKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChfX3Ry
YWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcuZnVuY3MpKSwgX191Ll9fYywgc2l6ZW9mKChfX3RyYWNl
cG9pbnRfYW1kZ3B1X2RjX3JyZWcuZnVuY3MpKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3Zh
bDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihfX3RyYWNlcG9pbnRfYW1kZ3B1
X2RjX3JyZWcuZnVuY3MpKSAqKShfX19fX19fX3AxKSk7IH0pOyByY3VfcmVhZF91bmxvY2tfc2No
ZWRfbm90cmFjZSgpOyB9IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX2FtZGdwdV9kY19ycmVnKHZvaWQg
KCpwcm9iZSkodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nICpyZWFkX2NvdW50LCB1aW50MzJf
dCByZWcsIHVpbnQzMl90IHZhbHVlKSwgdm9pZCAqZGF0YSkgeyByZXR1cm4gdHJhY2Vwb2ludF9w
cm9iZV9yZWdpc3RlcigmX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLCAodm9pZCAqKXByb2Jl
LCBkYXRhKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgcmVnaXN0ZXJfdHJhY2VfcHJpb19hbWRncHVfZGNfcnJlZyh2b2lkICgq
cHJvYmUpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqcmVhZF9jb3VudCwgdWludDMyX3Qg
cmVnLCB1aW50MzJfdCB2YWx1ZSksIHZvaWQgKmRhdGEsIGludCBwcmlvKSB7IHJldHVybiB0cmFj
ZXBvaW50X3Byb2JlX3JlZ2lzdGVyX3ByaW8oJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJlZywg
KHZvaWQgKilwcm9iZSwgZGF0YSwgcHJpbyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVucmVnaXN0ZXJfdHJhY2VfYW1kZ3B1
X2RjX3JyZWcodm9pZCAoKnByb2JlKSh2b2lkICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgKnJlYWRf
Y291bnQsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsdWUpLCB2b2lkICpkYXRhKSB7IHJldHVy
biB0cmFjZXBvaW50X3Byb2JlX3VucmVnaXN0ZXIoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJl
ZywgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja190cmFjZV9jYWxsYmFja190eXBl
X2FtZGdwdV9kY19ycmVnKHZvaWQgKCpjYikodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nICpy
ZWFkX2NvdW50LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSkgeyB9IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdHJhY2Vf
YW1kZ3B1X2RjX3JyZWdfZW5hYmxlZCh2b2lkKSB7IHJldHVybiBzdGF0aWNfa2V5X2ZhbHNlKCZf
X3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcua2V5KTsgfQojIDQ5ICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90cmFjZS5oIgogOwoK
ZXh0ZXJuIHN0cnVjdCB0cmFjZXBvaW50IF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZzsgc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCB0cmFjZV9hbWRncHVfZGNfd3JlZyh1bnNpZ25lZCBsb25nICp3cml0ZV9jb3VudCwgdWludDMy
X3QgcmVnLCB1aW50MzJfdCB2YWx1ZSkgeyBpZiAoc3RhdGljX2tleV9mYWxzZSgmX190cmFjZXBv
aW50X2FtZGdwdV9kY193cmVnLmtleSkpIGRvIHsgc3RydWN0IHRyYWNlcG9pbnRfZnVuYyAqaXRf
ZnVuY19wdHI7IHZvaWQgKml0X2Z1bmM7IHZvaWQgKl9fZGF0YTsgaW50IF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2lkeCA9IDA7IGlmICghKGNwdW1hc2tfdGVzdF9jcHUoKCh7IHR5cGVv
ZihjcHVfbnVtYmVyKSBwc2NyX3JldF9fOyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9
ICh0eXBlb2YoKCYoY3B1X251bWJlcikpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3Zl
cmlmeTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBw
c2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXpl
b2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdz
IiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7
IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAi
MSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNh
c2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDog
Ij1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20g
dm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9f
cmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVf
c2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDI6IHBzY3JfcmV0X18gPSAoeyB0
eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkg
eyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUw
IiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjog
YXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRp
bGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
InEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNw
dV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3Jl
dF9fOyB9KTsgYnJlYWs7IGNhc2UgNDogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVy
KSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZv
bGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3Jl
dF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJt
b3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0i
IChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIl
JSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1i
ZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIg
IiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsg
Y2FzZSA4OiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dp
dGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJi
ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVf
bnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3Mi
IjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsg
YnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIx
IiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2Fz
ZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2Jh
ZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2NhbGxfcGFyYW1ldGVyKCk7IGJyZWFrOyB9IHBzY3JfcmV0X187IH0pKSwgKChjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqKSZfX2NwdV9vbmxpbmVfbWFzaykpKSkgcmV0dXJuOyAoeyBpbnQgX19y
ZXRfd2Fybl9vbiA9ICEhKDAgJiYgKHByZWVtcHRfY291bnQoKSAmICgoKDFVTCA8PCAoMSkpLTEp
IDw8ICgoKDAgKyA4KSArIDgpICsgNCkpKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0
X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5i
eXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIg
IjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIg
Ilx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53
b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19l
bnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgi
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2Rt
X3RyYWNlLmgiKSwgImkiICg1MSksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4
KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNt
IHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0
IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICg0NSkpOyB9
KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9
KTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgaWYgKDApIHsgX19pZHgg
PSBzcmN1X3JlYWRfbG9ja19ub3RyYWNlKCZ0cmFjZXBvaW50X3NyY3UpOyByY3VfaXJxX2VudGVy
X2lycXNvbigpOyB9IGl0X2Z1bmNfcHRyID0gKHsgdHlwZW9mKCgmX190cmFjZXBvaW50X2FtZGdw
dV9kY193cmVnKS0+ZnVuY3MpIF9fX19fX19fcDEgPSAoeyB1bmlvbiB7IHR5cGVvZigoJl9fdHJh
Y2Vwb2ludF9hbWRncHVfZGNfd3JlZyktPmZ1bmNzKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191
OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKCgmX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVn
KS0+ZnVuY3MpLCBfX3UuX19jLCBzaXplb2YoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWcp
LT5mdW5jcykpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCgmX190cmFjZXBvaW50
X2FtZGdwdV9kY193cmVnKS0+ZnVuY3MpLCBfX3UuX19jLCBzaXplb2YoKCZfX3RyYWNlcG9pbnRf
YW1kZ3B1X2RjX3dyZWcpLT5mdW5jcykpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0p
OyAoKHR5cGVvZigqKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWcpLT5mdW5jcykgKikoX19f
X19fX19wMSkpOyB9KTsgaWYgKGl0X2Z1bmNfcHRyKSB7IGRvIHsgaXRfZnVuYyA9IChpdF9mdW5j
X3B0ciktPmZ1bmM7IF9fZGF0YSA9IChpdF9mdW5jX3B0ciktPmRhdGE7ICgodm9pZCgqKSh2b2lk
ICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgKndyaXRlX2NvdW50LCB1aW50MzJfdCByZWcsIHVpbnQz
Ml90IHZhbHVlKSkoaXRfZnVuYykpKF9fZGF0YSwgd3JpdGVfY291bnQsIHJlZywgdmFsdWUpOyB9
IHdoaWxlICgoKytpdF9mdW5jX3B0ciktPmZ1bmMpOyB9IGlmICgwKSB7IHJjdV9pcnFfZXhpdF9p
cnFzb24oKTsgc3JjdV9yZWFkX3VubG9ja19ub3RyYWNlKCZ0cmFjZXBvaW50X3NyY3UsIF9faWR4
KTsgfSBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyB9IHdoaWxlICgwKTsg
aWYgKDAgJiYgKGNwdW1hc2tfdGVzdF9jcHUoKCh7IHR5cGVvZihjcHVfbnVtYmVyKSBwc2NyX3Jl
dF9fOyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X251bWJl
cikpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3
aXRjaChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBwc2NyX3JldF9fID0gKHsgdHlwZW9m
KGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2Fz
ZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2
b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19y
ZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgi
bW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJt
IiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsg
fSk7IGJyZWFrOyBjYXNlIDI6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZv
X3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGls
ZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykg
OiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAi
dyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1
X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdz
IiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7
IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAi
MSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2Ug
NDogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAo
c2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUl
IiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJl
cikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAi
JSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFr
OyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUw
IiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODog
YXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVy
Y3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2FzZSA4OiBwc2NyX3JldF9fID0g
KHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJl
cikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEi
IiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNl
IDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9
ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZv
bGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3Jl
dF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJt
b3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0i
IChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBm
b19yZXRfXzsgfSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7
IGJyZWFrOyB9IHBzY3JfcmV0X187IH0pKSwgKChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqKSZfX2Nw
dV9vbmxpbmVfbWFzaykpKSkgeyByY3VfcmVhZF9sb2NrX3NjaGVkX25vdHJhY2UoKTsgKHsgdHlw
ZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnLmZ1bmNzKSkgKl9fX19fX19fcDEgPSAo
dHlwZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnLmZ1bmNzKSkgKikoeyB1bmlvbiB7
IHR5cGVvZigoX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnLmZ1bmNzKSkgX192YWw7IGNoYXIg
X19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJigoX190cmFjZXBvaW50X2Ft
ZGdwdV9kY193cmVnLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190cmFjZXBvaW50X2FtZGdw
dV9kY193cmVnLmZ1bmNzKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChfX3Ry
YWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWcuZnVuY3MpKSwgX191Ll9fYywgc2l6ZW9mKChfX3RyYWNl
cG9pbnRfYW1kZ3B1X2RjX3dyZWcuZnVuY3MpKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3Zh
bDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihfX3RyYWNlcG9pbnRfYW1kZ3B1
X2RjX3dyZWcuZnVuY3MpKSAqKShfX19fX19fX3AxKSk7IH0pOyByY3VfcmVhZF91bmxvY2tfc2No
ZWRfbm90cmFjZSgpOyB9IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX2FtZGdwdV9kY193cmVnKHZvaWQg
KCpwcm9iZSkodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nICp3cml0ZV9jb3VudCwgdWludDMy
X3QgcmVnLCB1aW50MzJfdCB2YWx1ZSksIHZvaWQgKmRhdGEpIHsgcmV0dXJuIHRyYWNlcG9pbnRf
cHJvYmVfcmVnaXN0ZXIoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZywgKHZvaWQgKilwcm9i
ZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX3ByaW9fYW1kZ3B1X2RjX3dyZWcodm9pZCAo
KnByb2JlKSh2b2lkICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgKndyaXRlX2NvdW50LCB1aW50MzJf
dCByZWcsIHVpbnQzMl90IHZhbHVlKSwgdm9pZCAqZGF0YSwgaW50IHByaW8pIHsgcmV0dXJuIHRy
YWNlcG9pbnRfcHJvYmVfcmVnaXN0ZXJfcHJpbygmX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVn
LCAodm9pZCAqKXByb2JlLCBkYXRhLCBwcmlvKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdW5yZWdpc3Rlcl90cmFjZV9hbWRn
cHVfZGNfd3JlZyh2b2lkICgqcHJvYmUpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqd3Jp
dGVfY291bnQsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsdWUpLCB2b2lkICpkYXRhKSB7IHJl
dHVybiB0cmFjZXBvaW50X3Byb2JlX3VucmVnaXN0ZXIoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNf
d3JlZywgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja190cmFjZV9jYWxsYmFja190
eXBlX2FtZGdwdV9kY193cmVnKHZvaWQgKCpjYikodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25n
ICp3cml0ZV9jb3VudCwgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWx1ZSkpIHsgfSBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRy
YWNlX2FtZGdwdV9kY193cmVnX2VuYWJsZWQodm9pZCkgeyByZXR1cm4gc3RhdGljX2tleV9mYWxz
ZSgmX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnLmtleSk7IH0KIyA2NiAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fdHJhY2UuaCIK
IDsKCgpleHRlcm4gc3RydWN0IHRyYWNlcG9pbnQgX190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJm
b3JtYW5jZTsgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCB0cmFjZV9hbWRncHVfZGNfcGVyZm9ybWFuY2UodW5zaWduZWQgbG9uZyBy
ZWFkX2NvdW50LCB1bnNpZ25lZCBsb25nIHdyaXRlX2NvdW50LCB1bnNpZ25lZCBsb25nICpsYXN0
X3JlYWQsIHVuc2lnbmVkIGxvbmcgKmxhc3Rfd3JpdGUsIGNvbnN0IGNoYXIgKmZ1bmMsIHVuc2ln
bmVkIGludCBsaW5lKSB7IGlmIChzdGF0aWNfa2V5X2ZhbHNlKCZfX3RyYWNlcG9pbnRfYW1kZ3B1
X2RjX3BlcmZvcm1hbmNlLmtleSkpIGRvIHsgc3RydWN0IHRyYWNlcG9pbnRfZnVuYyAqaXRfZnVu
Y19wdHI7IHZvaWQgKml0X2Z1bmM7IHZvaWQgKl9fZGF0YTsgaW50IF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2lkeCA9IDA7IGlmICghKGNwdW1hc2tfdGVzdF9jcHUoKCh7IHR5cGVvZihj
cHVfbnVtYmVyKSBwc2NyX3JldF9fOyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0
eXBlb2YoKCYoY3B1X251bWJlcikpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3Zlcmlm
eTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBwc2Ny
X3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2Yo
Y3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6
IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJy
ZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIi
LCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2Ug
NDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1y
IiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9s
YXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0
X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6
ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDI6IHBzY3JfcmV0X18gPSAoeyB0eXBl
b2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBj
YXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6
ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNt
IHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZv
X3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUg
KCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDog
Im0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEg
IiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9u
dW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9f
OyB9KTsgYnJlYWs7IGNhc2UgNDogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBw
Zm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0
aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9f
KSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3Yi
ICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChj
cHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIi
Z3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIp
KTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2Fz
ZSA4OiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNo
IChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoi
ICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJl
YWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIs
JTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4
OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXpl
X2NhbGxfcGFyYW1ldGVyKCk7IGJyZWFrOyB9IHBzY3JfcmV0X187IH0pKSwgKChjb25zdCBzdHJ1
Y3QgY3B1bWFzayAqKSZfX2NwdV9vbmxpbmVfbWFzaykpKSkgcmV0dXJuOyAoeyBpbnQgX19yZXRf
d2Fybl9vbiA9ICEhKDAgJiYgKHByZWVtcHRfY291bnQoKSAmICgoKDFVTCA8PCAoMSkpLTEpIDw8
ICgoKDAgKyA4KSArIDgpICsgNCkpKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dh
cm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRl
IDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6
XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0
IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3Jk
ICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRy
eTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3Ry
YWNlLmgiKSwgImkiICg2OSksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkp
LCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZv
bGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAi
LmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICg0NikpOyB9KTsg
fSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgaWYgKDApIHsgX19pZHggPSBz
cmN1X3JlYWRfbG9ja19ub3RyYWNlKCZ0cmFjZXBvaW50X3NyY3UpOyByY3VfaXJxX2VudGVyX2ly
cXNvbigpOyB9IGl0X2Z1bmNfcHRyID0gKHsgdHlwZW9mKCgmX190cmFjZXBvaW50X2FtZGdwdV9k
Y19wZXJmb3JtYW5jZSktPmZ1bmNzKSBfX19fX19fX3AxID0gKHsgdW5pb24geyB0eXBlb2YoKCZf
X3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKCZfX3RyYWNlcG9pbnRfYW1k
Z3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpLCBfX3UuX19jLCBzaXplb2YoKCZfX3RyYWNlcG9p
bnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXpl
X25vY2hlY2soJigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2UpLT5mdW5jcyks
IF9fdS5fX2MsIHNpemVvZigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2UpLT5m
dW5jcykpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOyAoKHR5cGVvZigqKCZfX3Ry
YWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpICopKF9fX19fX19fcDEpKTsg
fSk7IGlmIChpdF9mdW5jX3B0cikgeyBkbyB7IGl0X2Z1bmMgPSAoaXRfZnVuY19wdHIpLT5mdW5j
OyBfX2RhdGEgPSAoaXRfZnVuY19wdHIpLT5kYXRhOyAoKHZvaWQoKikodm9pZCAqX19kYXRhLCB1
bnNpZ25lZCBsb25nIHJlYWRfY291bnQsIHVuc2lnbmVkIGxvbmcgd3JpdGVfY291bnQsIHVuc2ln
bmVkIGxvbmcgKmxhc3RfcmVhZCwgdW5zaWduZWQgbG9uZyAqbGFzdF93cml0ZSwgY29uc3QgY2hh
ciAqZnVuYywgdW5zaWduZWQgaW50IGxpbmUpKShpdF9mdW5jKSkoX19kYXRhLCByZWFkX2NvdW50
LCB3cml0ZV9jb3VudCwgbGFzdF9yZWFkLCBsYXN0X3dyaXRlLCBmdW5jLCBsaW5lKTsgfSB3aGls
ZSAoKCsraXRfZnVuY19wdHIpLT5mdW5jKTsgfSBpZiAoMCkgeyByY3VfaXJxX2V4aXRfaXJxc29u
KCk7IHNyY3VfcmVhZF91bmxvY2tfbm90cmFjZSgmdHJhY2Vwb2ludF9zcmN1LCBfX2lkeCk7IH0g
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgfSB3aGlsZSAoMCk7IGlmICgw
ICYmIChjcHVtYXNrX3Rlc3RfY3B1KCgoeyB0eXBlb2YoY3B1X251bWJlcikgcHNjcl9yZXRfXzsg
ZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKGNwdV9udW1iZXIpKSAr
IDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyBzd2l0Y2go
c2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVf
bnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTog
YXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRp
bGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
ImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNw
dV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikp
OyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBi
cmVhazsgY2FzZSAyOiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRf
Xzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJt
b3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0i
IChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIl
JSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1i
ZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIg
IiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVh
azsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwl
MCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDQ6IHBz
Y3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVv
ZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3Mi
IjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsg
YnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIx
IiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2Fz
ZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2
b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19y
ZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9z
aXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgODogcHNjcl9yZXRfXyA9ICh7IHR5
cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7
IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAi
IDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBh
c20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChw
Zm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGls
ZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykg
OiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAi
cSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1
X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0
X187IH0pOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3BhcmFtZXRlcigpOyBicmVh
azsgfSBwc2NyX3JldF9fOyB9KSksICgoY29uc3Qgc3RydWN0IGNwdW1hc2sgKikmX19jcHVfb25s
aW5lX21hc2spKSkpIHsgcmN1X3JlYWRfbG9ja19zY2hlZF9ub3RyYWNlKCk7ICh7IHR5cGVvZigq
KF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2UuZnVuY3MpKSAqX19fX19fX19wMSA9
ICh0eXBlb2YoKihfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlLmZ1bmNzKSkgKiko
eyB1bmlvbiB7IHR5cGVvZigoX190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZS5mdW5j
cykpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYo
KF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2UuZnVuY3MpKSwgX191Ll9fYywgc2l6
ZW9mKChfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlLmZ1bmNzKSkpOyBlbHNlIF9f
cmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1h
bmNlLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJm
b3JtYW5jZS5mdW5jcykpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyB9
IHdoaWxlICgwKTsgOyAoKHR5cGVvZigqKF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFu
Y2UuZnVuY3MpKSAqKShfX19fX19fX3AxKSk7IH0pOyByY3VfcmVhZF91bmxvY2tfc2NoZWRfbm90
cmFjZSgpOyB9IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX2FtZGdwdV9kY19wZXJmb3JtYW5jZSh2b2lk
ICgqcHJvYmUpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyByZWFkX2NvdW50LCB1bnNpZ25l
ZCBsb25nIHdyaXRlX2NvdW50LCB1bnNpZ25lZCBsb25nICpsYXN0X3JlYWQsIHVuc2lnbmVkIGxv
bmcgKmxhc3Rfd3JpdGUsIGNvbnN0IGNoYXIgKmZ1bmMsIHVuc2lnbmVkIGludCBsaW5lKSwgdm9p
ZCAqZGF0YSkgeyByZXR1cm4gdHJhY2Vwb2ludF9wcm9iZV9yZWdpc3RlcigmX190cmFjZXBvaW50
X2FtZGdwdV9kY19wZXJmb3JtYW5jZSwgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0gc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lz
dGVyX3RyYWNlX3ByaW9fYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKHZvaWQgKCpwcm9iZSkodm9pZCAq
X19kYXRhLCB1bnNpZ25lZCBsb25nIHJlYWRfY291bnQsIHVuc2lnbmVkIGxvbmcgd3JpdGVfY291
bnQsIHVuc2lnbmVkIGxvbmcgKmxhc3RfcmVhZCwgdW5zaWduZWQgbG9uZyAqbGFzdF93cml0ZSwg
Y29uc3QgY2hhciAqZnVuYywgdW5zaWduZWQgaW50IGxpbmUpLCB2b2lkICpkYXRhLCBpbnQgcHJp
bykgeyByZXR1cm4gdHJhY2Vwb2ludF9wcm9iZV9yZWdpc3Rlcl9wcmlvKCZfX3RyYWNlcG9pbnRf
YW1kZ3B1X2RjX3BlcmZvcm1hbmNlLCAodm9pZCAqKXByb2JlLCBkYXRhLCBwcmlvKTsgfSBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
dW5yZWdpc3Rlcl90cmFjZV9hbWRncHVfZGNfcGVyZm9ybWFuY2Uodm9pZCAoKnByb2JlKSh2b2lk
ICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgcmVhZF9jb3VudCwgdW5zaWduZWQgbG9uZyB3cml0ZV9j
b3VudCwgdW5zaWduZWQgbG9uZyAqbGFzdF9yZWFkLCB1bnNpZ25lZCBsb25nICpsYXN0X3dyaXRl
LCBjb25zdCBjaGFyICpmdW5jLCB1bnNpZ25lZCBpbnQgbGluZSksIHZvaWQgKmRhdGEpIHsgcmV0
dXJuIHRyYWNlcG9pbnRfcHJvYmVfdW5yZWdpc3RlcigmX190cmFjZXBvaW50X2FtZGdwdV9kY19w
ZXJmb3JtYW5jZSwgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja190cmFjZV9jYWxs
YmFja190eXBlX2FtZGdwdV9kY19wZXJmb3JtYW5jZSh2b2lkICgqY2IpKHZvaWQgKl9fZGF0YSwg
dW5zaWduZWQgbG9uZyByZWFkX2NvdW50LCB1bnNpZ25lZCBsb25nIHdyaXRlX2NvdW50LCB1bnNp
Z25lZCBsb25nICpsYXN0X3JlYWQsIHVuc2lnbmVkIGxvbmcgKmxhc3Rfd3JpdGUsIGNvbnN0IGNo
YXIgKmZ1bmMsIHVuc2lnbmVkIGludCBsaW5lKSkgeyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdHJhY2VfYW1kZ3B1X2RjX3Bl
cmZvcm1hbmNlX2VuYWJsZWQodm9pZCkgeyByZXR1cm4gc3RhdGljX2tleV9mYWxzZSgmX190cmFj
ZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZS5rZXkpOyB9CiMgOTggIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3RyYWNlLmgiCiA7
CgoKCgoKIyAxICIuL2luY2x1ZGUvdHJhY2UvZGVmaW5lX3RyYWNlLmgiIDEKIyAxMDUgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3Ry
YWNlLmgiIDIKIyAzNSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RtX3NlcnZpY2VzLmgiIDIKCgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kbV9zZXJ2aWNlc190eXBlcy5oIiAxCiMgMzIgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlc190eXBlcy5oIgpzdHJ1Y3QgcHBf
c211X2Z1bmNzOwoKc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlIHsKIGludCBtaW5fa2h6OwogaW50
IG1heF9raHo7Cn07CgplbnVtIGRtX3BwX2Nsb2Nrc19zdGF0ZSB7CiBETV9QUF9DTE9DS1NfU1RB
VEVfSU5WQUxJRCwKIERNX1BQX0NMT0NLU19TVEFURV9VTFRSQV9MT1csCiBETV9QUF9DTE9DS1Nf
U1RBVEVfTE9XLAogRE1fUFBfQ0xPQ0tTX1NUQVRFX05PTUlOQUwsCiBETV9QUF9DTE9DS1NfU1RB
VEVfUEVSRk9STUFOQ0UsCgoKIERNX1BQX0NMT0NLU19EUE1fU1RBVEVfTEVWRUxfSU5WQUxJRCA9
IERNX1BQX0NMT0NLU19TVEFURV9JTlZBTElELAogRE1fUFBfQ0xPQ0tTX0RQTV9TVEFURV9MRVZF
TF8wLAogRE1fUFBfQ0xPQ0tTX0RQTV9TVEFURV9MRVZFTF8xLAogRE1fUFBfQ0xPQ0tTX0RQTV9T
VEFURV9MRVZFTF8yLAoKIERNX1BQX0NMT0NLU19EUE1fU1RBVEVfTEVWRUxfMywKIERNX1BQX0NM
T0NLU19EUE1fU1RBVEVfTEVWRUxfNCwKIERNX1BQX0NMT0NLU19EUE1fU1RBVEVfTEVWRUxfNSwK
IERNX1BQX0NMT0NLU19EUE1fU1RBVEVfTEVWRUxfNiwKIERNX1BQX0NMT0NLU19EUE1fU1RBVEVf
TEVWRUxfNywKCiBETV9QUF9DTE9DS1NfTUFYX1NUQVRFUwp9OwoKc3RydWN0IGRtX3BwX2dwdV9j
bG9ja19yYW5nZSB7CiBlbnVtIGRtX3BwX2Nsb2Nrc19zdGF0ZSBjbG9ja19zdGF0ZTsKIHN0cnVj
dCBkbV9wcF9jbG9ja19yYW5nZSBzY2xrOwogc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlIG1jbGs7
CiBzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2UgZWNsazsKIHN0cnVjdCBkbV9wcF9jbG9ja19yYW5n
ZSBkY2xrOwp9OwoKZW51bSBkbV9wcF9jbG9ja190eXBlIHsKIERNX1BQX0NMT0NLX1RZUEVfRElT
UExBWV9DTEsgPSAxLAogRE1fUFBfQ0xPQ0tfVFlQRV9FTkdJTkVfQ0xLLAogRE1fUFBfQ0xPQ0tf
VFlQRV9NRU1PUllfQ0xLLAogRE1fUFBfQ0xPQ0tfVFlQRV9EQ0ZDTEssCiBETV9QUF9DTE9DS19U
WVBFX0RDRUZDTEssCiBETV9QUF9DTE9DS19UWVBFX1NPQ0NMSywKIERNX1BQX0NMT0NLX1RZUEVf
UElYRUxDTEssCiBETV9QUF9DTE9DS19UWVBFX0RJU1BMQVlQSFlDTEssCiBETV9QUF9DTE9DS19U
WVBFX0RQUENMSywKIERNX1BQX0NMT0NLX1RZUEVfRkNMSywKfTsKIyA5NyAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzX3R5cGVzLmgiCnN0cnVj
dCBkbV9wcF9jbG9ja19sZXZlbHMgewogdWludDMyX3QgbnVtX2xldmVsczsKIHVpbnQzMl90IGNs
b2Nrc19pbl9raHpbMTZdOwp9OwoKc3RydWN0IGRtX3BwX2Nsb2NrX3dpdGhfbGF0ZW5jeSB7CiB1
aW50MzJfdCBjbG9ja3NfaW5fa2h6OwogdWludDMyX3QgbGF0ZW5jeV9pbl91czsKfTsKCnN0cnVj
dCBkbV9wcF9jbG9ja19sZXZlbHNfd2l0aF9sYXRlbmN5IHsKIHVpbnQzMl90IG51bV9sZXZlbHM7
CiBzdHJ1Y3QgZG1fcHBfY2xvY2tfd2l0aF9sYXRlbmN5IGRhdGFbMTZdOwp9OwoKc3RydWN0IGRt
X3BwX2Nsb2NrX3dpdGhfdm9sdGFnZSB7CiB1aW50MzJfdCBjbG9ja3NfaW5fa2h6OwogdWludDMy
X3Qgdm9sdGFnZV9pbl9tdjsKfTsKCnN0cnVjdCBkbV9wcF9jbG9ja19sZXZlbHNfd2l0aF92b2x0
YWdlIHsKIHVpbnQzMl90IG51bV9sZXZlbHM7CiBzdHJ1Y3QgZG1fcHBfY2xvY2tfd2l0aF92b2x0
YWdlIGRhdGFbMTZdOwp9OwoKc3RydWN0IGRtX3BwX3NpbmdsZV9kaXNwX2NvbmZpZyB7CiBlbnVt
IHNpZ25hbF90eXBlIHNpZ25hbDsKIHVpbnQ4X3QgdHJhbnNtaXR0ZXI7CiB1aW50OF90IGRkaV9j
aGFubmVsX21hcHBpbmc7CiB1aW50OF90IHBpcGVfaWR4OwogdWludDMyX3Qgc3JjX2hlaWdodDsK
IHVpbnQzMl90IHNyY193aWR0aDsKIHVpbnQzMl90IHZfcmVmcmVzaDsKIHVpbnQzMl90IHN5bV9j
bG9jazsKIHN0cnVjdCBkY19saW5rX3NldHRpbmdzIGxpbmtfc2V0dGluZ3M7Cn07CgoKCmVudW0g
ZG1fcHBfd21fc2V0X2lkIHsKIFdNX1NFVF9BID0gMCwKIFdNX1NFVF9CLAogV01fU0VUX0MsCiBX
TV9TRVRfRCwKIFdNX1NFVF9JTlZBTElEID0gMHhmZmZmLAp9OwoKc3RydWN0IGRtX3BwX2Nsb2Nr
X3JhbmdlX2Zvcl93bV9zZXQgewogZW51bSBkbV9wcF93bV9zZXRfaWQgd21fc2V0X2lkOwogdWlu
dDMyX3Qgd21fbWluX2VuZ19jbGtfaW5fa2h6OwogdWludDMyX3Qgd21fbWF4X2VuZ19jbGtfaW5f
a2h6OwogdWludDMyX3Qgd21fbWluX21lbV9jbGtfaW5fa2h6OwogdWludDMyX3Qgd21fbWF4X21l
bV9jbGtfaW5fa2h6Owp9OwoKc3RydWN0IGRtX3BwX3dtX3NldHNfd2l0aF9jbG9ja19yYW5nZXMg
ewogdWludDMyX3QgbnVtX3dtX3NldHM7CiBzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2VfZm9yX3dt
X3NldCB3bV9jbGtfcmFuZ2VzWzRdOwp9OwoKc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlX2Zvcl9k
bWlmX3dtX3NldF9zb2MxNSB7CiBlbnVtIGRtX3BwX3dtX3NldF9pZCB3bV9zZXRfaWQ7CiB1aW50
MzJfdCB3bV9taW5fZGNmY2xrX2Nsa19pbl9raHo7CiB1aW50MzJfdCB3bV9tYXhfZGNmY2xrX2Ns
a19pbl9raHo7CiB1aW50MzJfdCB3bV9taW5fbWVtX2Nsa19pbl9raHo7CiB1aW50MzJfdCB3bV9t
YXhfbWVtX2Nsa19pbl9raHo7Cn07CgpzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2VfZm9yX21jaWZf
d21fc2V0X3NvYzE1IHsKIGVudW0gZG1fcHBfd21fc2V0X2lkIHdtX3NldF9pZDsKIHVpbnQzMl90
IHdtX21pbl9zb2NjbGtfY2xrX2luX2toejsKIHVpbnQzMl90IHdtX21heF9zb2NjbGtfY2xrX2lu
X2toejsKIHVpbnQzMl90IHdtX21pbl9tZW1fY2xrX2luX2toejsKIHVpbnQzMl90IHdtX21heF9t
ZW1fY2xrX2luX2toejsKfTsKCnN0cnVjdCBkbV9wcF93bV9zZXRzX3dpdGhfY2xvY2tfcmFuZ2Vz
X3NvYzE1IHsKIHVpbnQzMl90IG51bV93bV9kbWlmX3NldHM7CiB1aW50MzJfdCBudW1fd21fbWNp
Zl9zZXRzOwogc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlX2Zvcl9kbWlmX3dtX3NldF9zb2MxNQog
IHdtX2RtaWZfY2xvY2tzX3Jhbmdlc1s0XTsKIHN0cnVjdCBkbV9wcF9jbG9ja19yYW5nZV9mb3Jf
bWNpZl93bV9zZXRfc29jMTUKICB3bV9tY2lmX2Nsb2Nrc19yYW5nZXNbNF07Cn07CgoKCnN0cnVj
dCBkbV9wcF9kaXNwbGF5X2NvbmZpZ3VyYXRpb24gewogYm9vbCBuYl9wc3RhdGVfc3dpdGNoX2Rp
c2FibGU7CiBib29sIGNwdV9jYzZfZGlzYWJsZTsKIGJvb2wgY3B1X3BzdGF0ZV9kaXNhYmxlOwog
dWludDMyX3QgY3B1X3BzdGF0ZV9zZXBhcmF0aW9uX3RpbWU7CgogdWludDMyX3QgbWluX21lbW9y
eV9jbG9ja19raHo7CiB1aW50MzJfdCBtaW5fZW5naW5lX2Nsb2NrX2toejsKIHVpbnQzMl90IG1p
bl9lbmdpbmVfY2xvY2tfZGVlcF9zbGVlcF9raHo7CgogdWludDMyX3QgYXZhaWxfbWNsa19zd2l0
Y2hfdGltZV91czsKIHVpbnQzMl90IGF2YWlsX21jbGtfc3dpdGNoX3RpbWVfaW5fZGlzcF9hY3Rp
dmVfdXM7CiB1aW50MzJfdCBtaW5fZGNmY2xvY2tfa2h6OwogdWludDMyX3QgbWluX2RjZmNfZGVl
cF9zbGVlcF9jbG9ja19raHo7CgogdWludDMyX3QgZGlzcF9jbGtfa2h6OwoKIGJvb2wgYWxsX2Rp
c3BsYXlzX2luX3N5bmM7CgogdWludDhfdCBkaXNwbGF5X2NvdW50Owogc3RydWN0IGRtX3BwX3Np
bmdsZV9kaXNwX2NvbmZpZyBkaXNwX2NvbmZpZ3NbNl07CgoKCiB1aW50OF90IGNydGNfaW5kZXg7
CgogdWludDMyX3QgbGluZV90aW1lX2luX3VzOwp9OwoKc3RydWN0IGRtX2JsX2RhdGFfcG9pbnQg
ewoKICB1aW50OF90IGx1bWluYW5jZTsKCgoKICB1aW50OF90IHNpZ25hbF9sZXZlbDsKfTsKCgoK
c3RydWN0IGRtX2FjcGlfYXRpZl9iYWNrbGlnaHRfY2FwcyB7CiB1aW50MTZfdCBzaXplOwogdWlu
dDE2X3QgZmxhZ3M7CiB1aW50OF90IGVycm9yX2NvZGU7CiB1aW50OF90IGFjX2xldmVsX3BlcmNl
bnRhZ2U7CiB1aW50OF90IGRjX2xldmVsX3BlcmNlbnRhZ2U7CiB1aW50OF90IG1pbl9pbnB1dF9z
aWduYWw7CiB1aW50OF90IG1heF9pbnB1dF9zaWduYWw7CiB1aW50OF90IG51bV9kYXRhX3BvaW50
czsKIHN0cnVjdCBkbV9ibF9kYXRhX3BvaW50IGRhdGFfcG9pbnRzWzk5XTsKfTsKCmVudW0gZG1f
YWNwaV9kaXNwbGF5X3R5cGUgewogQWNwaURpc3BsYXlUeXBlX0xDRDEgPSAwLAogQWNwaURpc3Bs
YXlUeXBlX0NSVDEgPSAxLAogQWNwaURpc3BsYXlUeXBlX0RGUDEgPSAzLAogQWNwaURpc3BsYXlU
eXBlX0NSVDIgPSA0LAogQWNwaURpc3BsYXlUeXBlX0xDRDIgPSA1LAogQWNwaURpc3BsYXlUeXBl
X0RGUDIgPSA3LAogQWNwaURpc3BsYXlUeXBlX0RGUDMgPSA5LAogQWNwaURpc3BsYXlUeXBlX0RG
UDQgPSAxMCwKIEFjcGlEaXNwbGF5VHlwZV9ERlA1ID0gMTEsCiBBY3BpRGlzcGxheVR5cGVfREZQ
NiA9IDEyCn07CgpzdHJ1Y3QgZG1fcHBfcG93ZXJfbGV2ZWxfY2hhbmdlX3JlcXVlc3QgewogZW51
bSBkbV9wcF9jbG9ja3Nfc3RhdGUgcG93ZXJfbGV2ZWw7Cn07CgpzdHJ1Y3QgZG1fcHBfY2xvY2tf
Zm9yX3ZvbHRhZ2VfcmVxIHsKIGVudW0gZG1fcHBfY2xvY2tfdHlwZSBjbGtfdHlwZTsKIHVpbnQz
Ml90IGNsb2Nrc19pbl9raHo7Cn07CgpzdHJ1Y3QgZG1fcHBfc3RhdGljX2Nsb2NrX2luZm8gewog
dWludDMyX3QgbWF4X3NjbGtfa2h6OwogdWludDMyX3QgbWF4X21jbGtfa2h6OwoKCiBlbnVtIGRt
X3BwX2Nsb2Nrc19zdGF0ZSBtYXhfY2xvY2tzX3N0YXRlOwp9OwoKc3RydWN0IGR0bl9taW5fY2xr
X2luZm8gewogdWludDMyX3QgZGlzcF9jbGtfa2h6OwogdWludDMyX3QgbWluX2VuZ2luZV9jbG9j
a19raHo7CiB1aW50MzJfdCBtaW5fbWVtb3J5X2Nsb2NrX2toejsKfTsKIyAzOCAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgiIDIKIyAxICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9sb2dnZXJfaW50
ZXJmYWNlLmgiIDEKIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2luY2x1ZGUvbG9nZ2VyX2ludGVyZmFjZS5oIgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xvZ2dlcl90eXBlcy5oIiAxCiMgMzAgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xvZ2dlcl9pbnRlcmZhY2Uu
aCIgMgoKc3RydWN0IGRjX2NvbnRleHQ7CnN0cnVjdCBkY19saW5rOwpzdHJ1Y3QgZGNfc3VyZmFj
ZV91cGRhdGU7CnN0cnVjdCByZXNvdXJjZV9jb250ZXh0OwpzdHJ1Y3QgZGNfc3RhdGU7CgoKCgoK
Cgp2b2lkIGRjX2Nvbm5fbG9nX2hleF9saW51eChjb25zdCB1aW50OF90ICpoZXhfZGF0YSwgaW50
IGhleF9kYXRhX2NvdW50KTsKCnZvaWQgcHJlX3N1cmZhY2VfdHJhY2UoCiAgc3RydWN0IGRjICpk
YywKICBjb25zdCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKmNvbnN0ICpwbGFuZV9zdGF0ZXMsCiAg
aW50IHN1cmZhY2VfY291bnQpOwoKdm9pZCB1cGRhdGVfc3VyZmFjZV90cmFjZSgKICBzdHJ1Y3Qg
ZGMgKmRjLAogIGNvbnN0IHN0cnVjdCBkY19zdXJmYWNlX3VwZGF0ZSAqdXBkYXRlcywKICBpbnQg
c3VyZmFjZV9jb3VudCk7Cgp2b2lkIHBvc3Rfc3VyZmFjZV90cmFjZShzdHJ1Y3QgZGMgKmRjKTsK
CnZvaWQgY29udGV4dF90aW1pbmdfdHJhY2UoCiAgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgcmVz
b3VyY2VfY29udGV4dCAqcmVzX2N0eCk7Cgp2b2lkIGNvbnRleHRfY2xvY2tfdHJhY2UoCiAgc3Ry
dWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwojIDM5ICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIgMgoKCgoKc3Ry
dWN0IGRtdWJfc3J2OwpzdHJ1Y3QgZGNfZG11Yl9zcnY7CgppcnFfaGFuZGxlcl9pZHggZG1fcmVn
aXN0ZXJfaW50ZXJydXB0KAogc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIHN0cnVjdCBkY19pbnRl
cnJ1cHRfcGFyYW1zICppbnRfcGFyYW1zLAogaW50ZXJydXB0X2hhbmRsZXIgaWgsCiB2b2lkICpo
YW5kbGVyX2FyZ3MpOwoKCgoKCgoKdWludDMyX3QgZG1fcmVhZF9yZWdfZnVuYygKIGNvbnN0IHN0
cnVjdCBkY19jb250ZXh0ICpjdHgsCiB1aW50MzJfdCBhZGRyZXNzLAogY29uc3QgY2hhciAqZnVu
Y19uYW1lKTsKIyA3MyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RtX3NlcnZpY2VzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgZG1fd3JpdGVfcmVnX2Z1bmMoCiBjb25zdCBzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4LAogdWludDMyX3QgYWRkcmVzcywKIHVpbnQzMl90IHZhbHVlLAogY29uc3Qg
Y2hhciAqZnVuY19uYW1lKQp7CgoKCgoKCiAoKChzdHJ1Y3QgY2dzX2RldmljZSAqKWN0eC0+Y2dz
X2RldmljZSktPm9wcy0+d3JpdGVfcmVnaXN0ZXIoY3R4LT5jZ3NfZGV2aWNlLCBhZGRyZXNzLHZh
bHVlKSk7CiB0cmFjZV9hbWRncHVfZGNfd3JlZygmY3R4LT5wZXJmX3RyYWNlLT53cml0ZV9jb3Vu
dCwgYWRkcmVzcywgdmFsdWUpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1aW50MzJfdCBkbV9yZWFkX2luZGV4X3JlZygKIGNvbnN0
IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiBlbnVtIGNnc19pbmRfcmVnIGFkZHJfc3BhY2UsCiB1
aW50MzJfdCBpbmRleCkKewogcmV0dXJuICgoKHN0cnVjdCBjZ3NfZGV2aWNlICopY3R4LT5jZ3Nf
ZGV2aWNlKS0+b3BzLT5yZWFkX2luZF9yZWdpc3RlcihjdHgtPmNnc19kZXZpY2UsIGFkZHJfc3Bh
Y2UsaW5kZXgpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBkbV93cml0ZV9pbmRleF9yZWcoCiBjb25zdCBzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4LAogZW51bSBjZ3NfaW5kX3JlZyBhZGRyX3NwYWNlLAogdWludDMyX3QgaW5k
ZXgsCiB1aW50MzJfdCB2YWx1ZSkKewogKCgoc3RydWN0IGNnc19kZXZpY2UgKiljdHgtPmNnc19k
ZXZpY2UpLT5vcHMtPndyaXRlX2luZF9yZWdpc3RlcihjdHgtPmNnc19kZXZpY2UsIGFkZHJfc3Bh
Y2UsaW5kZXgsdmFsdWUpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdWludDMyX3QgZ2V0X3JlZ19maWVsZF92YWx1ZV9leCgKIHVp
bnQzMl90IHJlZ192YWx1ZSwKIHVpbnQzMl90IG1hc2ssCiB1aW50OF90IHNoaWZ0KQp7CiByZXR1
cm4gKG1hc2sgJiByZWdfdmFsdWUpID4+IHNoaWZ0Owp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1aW50MzJfdCBzZXRfcmVn
X2ZpZWxkX3ZhbHVlX2V4KAogdWludDMyX3QgcmVnX3ZhbHVlLAogdWludDMyX3QgdmFsdWUsCiB1
aW50MzJfdCBtYXNrLAogdWludDhfdCBzaGlmdCkKewogKHsgaW50IF9fcmV0X3dhcm5fb24gPSAh
ISghKG1hc2sgIT0gMCkpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwg
MCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAw
eDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxv
bmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25n
ICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJc
dCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdz
XG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIpLCAiaSIgKDEyNiks
ICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRy
eSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rp
b24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIgOiA6ICJpIiAoNDcpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0
KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CiByZXR1cm4gKHJlZ192YWx1ZSAmIH5tYXNrKSB8
IChtYXNrICYgKHZhbHVlIDw8IHNoaWZ0KSk7Cn0KIyAxMzcgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oIgp1aW50MzJfdCBnZW5lcmljX3Jl
Z19zZXRfZXgoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKICB1aW50MzJfdCBhZGRyLCB1
aW50MzJfdCByZWdfdmFsLCBpbnQgbiwKICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEs
IHVpbnQzMl90IGZpZWxkX3ZhbHVlMSwgLi4uKTsKCnVpbnQzMl90IGdlbmVyaWNfcmVnX3VwZGF0
ZV9leChjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIHVpbnQzMl90IGFkZHIsIGludCBu
LAogIHVpbnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3QgZmllbGRfdmFsdWUx
LCAuLi4pOwoKc3RydWN0IGRjX2RtdWJfc3J2ICpkY19kbXViX3Nydl9jcmVhdGUoc3RydWN0IGRj
ICpkYywgc3RydWN0IGRtdWJfc3J2ICpkbXViKTsKdm9pZCBkY19kbXViX3Nydl9kZXN0cm95KHN0
cnVjdCBkY19kbXViX3NydiAqKmRtdWJfc3J2KTsKCnZvaWQgcmVnX3NlcXVlbmNlX3N0YXJ0X2dh
dGhlcihjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsKdm9pZCByZWdfc2VxdWVuY2Vfc3Rh
cnRfZXhlY3V0ZShjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsKdm9pZCByZWdfc2VxdWVu
Y2Vfd2FpdF9kb25lKGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgpOwojIDE1OSAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgiCnZvaWQg
Z2VuZXJpY19yZWdfd2FpdChjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogdWludDMyX3Qg
YWRkciwgdWludDMyX3QgbWFzaywgdWludDMyX3Qgc2hpZnQsIHVpbnQzMl90IGNvbmRpdGlvbl92
YWx1ZSwKIHVuc2lnbmVkIGludCBkZWxheV9iZXR3ZWVuX3BvbGxfdXMsIHVuc2lnbmVkIGludCB0
aW1lX291dF9udW1fdHJpZXMsCiBjb25zdCBjaGFyICpmdW5jX25hbWUsIGludCBsaW5lKTsKCnVu
c2lnbmVkIGludCBzbnByaW50Zl9jb3VudChjaGFyICpwQnVmLCB1bnNpZ25lZCBpbnQgYnVmU2l6
ZSwgY2hhciAqZm10LCAuLi4pOwojIDIwOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgiCmJvb2wgZG1fcHBfZ2V0X2Nsb2NrX2xldmVsc19i
eV90eXBlKAogY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIGVudW0gZG1fcHBfY2xvY2tf
dHlwZSBjbGtfdHlwZSwKIHN0cnVjdCBkbV9wcF9jbG9ja19sZXZlbHMgKmNsa19sZXZlbF9pbmZv
KTsKCmJvb2wgZG1fcHBfZ2V0X2Nsb2NrX2xldmVsc19ieV90eXBlX3dpdGhfbGF0ZW5jeSgKIGNv
bnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiBlbnVtIGRtX3BwX2Nsb2NrX3R5cGUgY2xrX3R5
cGUsCiBzdHJ1Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzX3dpdGhfbGF0ZW5jeSAqY2xrX2xldmVsX2lu
Zm8pOwoKYm9vbCBkbV9wcF9nZXRfY2xvY2tfbGV2ZWxzX2J5X3R5cGVfd2l0aF92b2x0YWdlKAog
Y29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIGVudW0gZG1fcHBfY2xvY2tfdHlwZSBjbGtf
dHlwZSwKIHN0cnVjdCBkbV9wcF9jbG9ja19sZXZlbHNfd2l0aF92b2x0YWdlICpjbGtfbGV2ZWxf
aW5mbyk7Cgpib29sIGRtX3BwX25vdGlmeV93bV9jbG9ja19jaGFuZ2VzKAogY29uc3Qgc3RydWN0
IGRjX2NvbnRleHQgKmN0eCwKIHN0cnVjdCBkbV9wcF93bV9zZXRzX3dpdGhfY2xvY2tfcmFuZ2Vz
ICp3bV93aXRoX2Nsb2NrX3Jhbmdlcyk7Cgp2b2lkIGRtX3BwX2dldF9mdW5jcyhzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4LAogIHN0cnVjdCBwcF9zbXVfZnVuY3MgKmZ1bmNzKTsKIyAyNDEgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oIgpib29s
IGRtX3BwX2FwcGx5X2Rpc3BsYXlfcmVxdWlyZW1lbnRzKAogY29uc3Qgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eCwKIGNvbnN0IHN0cnVjdCBkbV9wcF9kaXNwbGF5X2NvbmZpZ3VyYXRpb24gKnBwX2Rp
c3BsYXlfY2ZnKTsKCmJvb2wgZG1fcHBfYXBwbHlfcG93ZXJfbGV2ZWxfY2hhbmdlX3JlcXVlc3Qo
CiBjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogc3RydWN0IGRtX3BwX3Bvd2VyX2xldmVs
X2NoYW5nZV9yZXF1ZXN0ICpsZXZlbF9jaGFuZ2VfcmVxKTsKCmJvb2wgZG1fcHBfYXBwbHlfY2xv
Y2tfZm9yX3ZvbHRhZ2VfcmVxdWVzdCgKIGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiBz
dHJ1Y3QgZG1fcHBfY2xvY2tfZm9yX3ZvbHRhZ2VfcmVxICpjbG9ja19mb3Jfdm9sdGFnZV9yZXEp
OwoKYm9vbCBkbV9wcF9nZXRfc3RhdGljX2Nsb2NrcygKIGNvbnN0IHN0cnVjdCBkY19jb250ZXh0
ICpjdHgsCiBzdHJ1Y3QgZG1fcHBfc3RhdGljX2Nsb2NrX2luZm8gKnN0YXRpY19jbGtfaW5mbyk7
CgoKCnN0cnVjdCBwZXJzaXN0ZW50X2RhdGFfZmxhZyB7CiBib29sIHNhdmVfcGVyX2xpbms7CiBi
b29sIHNhdmVfcGVyX2VkaWQ7Cn07CiMgMjkxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIKYm9vbCBkbV93cml0ZV9wZXJzaXN0ZW50X2Rh
dGEoc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKICBjb25zdCBzdHJ1Y3QgZGNfc2luayAqc2luaywK
ICBjb25zdCBjaGFyICptb2R1bGVfbmFtZSwKICBjb25zdCBjaGFyICprZXlfbmFtZSwKICB2b2lk
ICpwYXJhbXMsCiAgdW5zaWduZWQgaW50IHNpemUsCiAgc3RydWN0IHBlcnNpc3RlbnRfZGF0YV9m
bGFnICpmbGFnKTsKIyAzMjUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kbV9zZXJ2aWNlcy5oIgpib29sIGRtX3JlYWRfcGVyc2lzdGVudF9kYXRhKHN0cnVjdCBk
Y19jb250ZXh0ICpjdHgsCiAgY29uc3Qgc3RydWN0IGRjX3NpbmsgKnNpbmssCiAgY29uc3QgY2hh
ciAqbW9kdWxlX25hbWUsCiAgY29uc3QgY2hhciAqa2V5X25hbWUsCiAgdm9pZCAqcGFyYW1zLAog
IHVuc2lnbmVkIGludCBzaXplLAogIHN0cnVjdCBwZXJzaXN0ZW50X2RhdGFfZmxhZyAqZmxhZyk7
Cgpib29sIGRtX3F1ZXJ5X2V4dGVuZGVkX2JyaWdodG5lc3NfY2FwcwogKHN0cnVjdCBkY19jb250
ZXh0ICpjdHgsIGVudW0gZG1fYWNwaV9kaXNwbGF5X3R5cGUgZGlzcGxheSwKICAgc3RydWN0IGRt
X2FjcGlfYXRpZl9iYWNrbGlnaHRfY2FwcyAqcENhcHMpOwoKYm9vbCBkbV9kbWN1X3NldF9waXBl
KHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVuc2lnbmVkIGludCBjb250cm9sbGVyX2lkKTsKIyAz
NDcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNl
cy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIGxvbmcgZG1fZ2V0X3RpbWVzdGFtcChzdHJ1Y3QgZGNfY29udGV4
dCAqY3R4KQp7CiByZXR1cm4ga3RpbWVfZ2V0X3Jhd19ucygpOwp9Cgp1bnNpZ25lZCBsb25nIGxv
bmcgZG1fZ2V0X2VsYXBzZV90aW1lX2luX25zKHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAgdW5z
aWduZWQgbG9uZyBsb25nIGN1cnJlbnRfdGltZV9zdGFtcCwKICB1bnNpZ25lZCBsb25nIGxvbmcg
bGFzdF90aW1lX3N0YW1wKTsKIyAzNzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oIgp2b2lkIGRtX2R0bl9sb2dfYmVnaW4oc3RydWN0IGRj
X2NvbnRleHQgKmN0eCwKIHN0cnVjdCBkY19sb2dfYnVmZmVyX2N0eCAqbG9nX2N0eCk7CnZvaWQg
ZG1fZHRuX2xvZ19hcHBlbmRfdihzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogc3RydWN0IGRjX2xv
Z19idWZmZXJfY3R4ICpsb2dfY3R4LAogY29uc3QgY2hhciAqbXNnLCAuLi4pOwp2b2lkIGRtX2R0
bl9sb2dfZW5kKHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiBzdHJ1Y3QgZGNfbG9nX2J1ZmZlcl9j
dHggKmxvZ19jdHgpOwojIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvc2lnbmFsX3R5cGVzLmgiIDEKIyAzMiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJf
dHlwZXMuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL2dycGhfb2JqZWN0X2N0cmxfZGVmcy5oIiAxCiMgMzMgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2Jpb3NfcGFyc2VyX3R5cGVzLmgiIDIKIyAx
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX3R5
cGVzLmgiIDEKIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2lu
Y2x1ZGUvYmlvc19wYXJzZXJfdHlwZXMuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xpbmtfc2VydmljZV90eXBlcy5oIiAxCiMgMzUgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2Jpb3NfcGFyc2Vy
X3R5cGVzLmgiIDIKCgplbnVtIGFzX3NpZ25hbF90eXBlIHsKIEFTX1NJR05BTF9UWVBFX05PTkUg
PSAwTCwKIEFTX1NJR05BTF9UWVBFX0RWSSwKIEFTX1NJR05BTF9UWVBFX0hETUksCiBBU19TSUdO
QUxfVFlQRV9MVkRTLAogQVNfU0lHTkFMX1RZUEVfRElTUExBWV9QT1JULAogQVNfU0lHTkFMX1RZ
UEVfR1BVX1BMTCwKIEFTX1NJR05BTF9UWVBFX1hHTUksCiBBU19TSUdOQUxfVFlQRV9VTktOT1dO
Cn07CgplbnVtIGJwX3Jlc3VsdCB7CiBCUF9SRVNVTFRfT0sgPSAwLAogQlBfUkVTVUxUX0JBRElO
UFVULAogQlBfUkVTVUxUX0JBREJJT1NUQUJMRSwKIEJQX1JFU1VMVF9VTlNVUFBPUlRFRCwKIEJQ
X1JFU1VMVF9OT1JFQ09SRCwKIEJQX1JFU1VMVF9GQUlMVVJFCn07CgplbnVtIGJwX2VuY29kZXJf
Y29udHJvbF9hY3Rpb24gewoKIEVOQ09ERVJfQ09OVFJPTF9ESVNBQkxFID0gMCwKIEVOQ09ERVJf
Q09OVFJPTF9FTkFCTEUsCiBFTkNPREVSX0NPTlRST0xfU0VUVVAsCiBFTkNPREVSX0NPTlRST0xf
SU5JVAp9OwoKZW51bSBicF90cmFuc21pdHRlcl9jb250cm9sX2FjdGlvbiB7CgogVFJBTlNNSVRU
RVJfQ09OVFJPTF9ESVNBQkxFID0gMCwKIFRSQU5TTUlUVEVSX0NPTlRST0xfRU5BQkxFLAogVFJB
TlNNSVRURVJfQ09OVFJPTF9CQUNLTElHSFRfT0ZGLAogVFJBTlNNSVRURVJfQ09OVFJPTF9CQUNL
TElHSFRfT04sCiBUUkFOU01JVFRFUl9DT05UUk9MX0JBQ0tMSUdIVF9CUklHSFRORVNTLAogVFJB
TlNNSVRURVJfQ09OVFJPTF9MQ0RfU0VURl9URVNUX1NUQVJULAogVFJBTlNNSVRURVJfQ09OVFJP
TF9MQ0RfU0VMRl9URVNUX1NUT1AsCiBUUkFOU01JVFRFUl9DT05UUk9MX0lOSVQsCiBUUkFOU01J
VFRFUl9DT05UUk9MX0RFQUNUSVZBVEUsCiBUUkFOU01JVFRFUl9DT05UUk9MX0FDVElBVkFURSwK
IFRSQU5TTUlUVEVSX0NPTlRST0xfU0VUVVAsCiBUUkFOU01JVFRFUl9DT05UUk9MX1NFVF9WT0xU
QUdFX0FORF9QUkVFTVBBU0lTLAoKCgogVFJBTlNNSVRURVJfQ09OVFJPTF9QT1dFUl9PTiwKCgoK
IFRSQU5TTUlUVEVSX0NPTlRST0xfUE9XRVJfT0ZGCn07CgplbnVtIGJwX2V4dGVybmFsX2VuY29k
ZXJfY29udHJvbF9hY3Rpb24gewogRVhURVJOQUxfRU5DT0RFUl9DT05UUk9MX0RJU0FCTEUgPSAw
LAogRVhURVJOQUxfRU5DT0RFUl9DT05UUk9MX0VOQUJMRSA9IDEsCiBFWFRFUk5BTF9FTkNPREVS
X0NPTlRST0xfSU5JVCA9IDB4NywKIEVYVEVSTkFMX0VOQ09ERVJfQ09OVFJPTF9TRVRVUCA9IDB4
ZiwKIEVYVEVSTkFMX0VOQ09ERVJfQ09OVFJPTF9VTkJMQU5LID0gMHgxMCwKIEVYVEVSTkFMX0VO
Q09ERVJfQ09OVFJPTF9CTEFOSyA9IDB4MTEsCn07CgplbnVtIGJwX3BpcGVfY29udHJvbF9hY3Rp
b24gewogQVNJQ19QSVBFX0RJU0FCTEUgPSAwLAogQVNJQ19QSVBFX0VOQUJMRSwKIEFTSUNfUElQ
RV9JTklUCn07CgpzdHJ1Y3QgYnBfZW5jb2Rlcl9jb250cm9sIHsKIGVudW0gYnBfZW5jb2Rlcl9j
b250cm9sX2FjdGlvbiBhY3Rpb247CiBlbnVtIGVuZ2luZV9pZCBlbmdpbmVfaWQ7CiBlbnVtIHRy
YW5zbWl0dGVyIHRyYW5zbWl0dGVyOwogZW51bSBzaWduYWxfdHlwZSBzaWduYWw7CiBlbnVtIGRj
X2xhbmVfY291bnQgbGFuZXNfbnVtYmVyOwogZW51bSBkY19jb2xvcl9kZXB0aCBjb2xvcl9kZXB0
aDsKIGJvb2wgZW5hYmxlX2RwX2F1ZGlvOwogdWludDMyX3QgcGl4ZWxfY2xvY2s7Cn07CgpzdHJ1
Y3QgYnBfZXh0ZXJuYWxfZW5jb2Rlcl9jb250cm9sIHsKIGVudW0gYnBfZXh0ZXJuYWxfZW5jb2Rl
cl9jb250cm9sX2FjdGlvbiBhY3Rpb247CiBlbnVtIGVuZ2luZV9pZCBlbmdpbmVfaWQ7CiBlbnVt
IGRjX2xpbmtfcmF0ZSBsaW5rX3JhdGU7CiBlbnVtIGRjX2xhbmVfY291bnQgbGFuZXNfbnVtYmVy
OwogZW51bSBzaWduYWxfdHlwZSBzaWduYWw7CiBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2Rl
cHRoOwogYm9vbCBjb2hlcmVudDsKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgZW5jb2Rlcl9p
ZDsKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgY29ubmVjdG9yX29ial9pZDsKIHVpbnQzMl90
IHBpeGVsX2Nsb2NrOwp9OwoKc3RydWN0IGJwX2NydGNfc291cmNlX3NlbGVjdCB7CiBlbnVtIGVu
Z2luZV9pZCBlbmdpbmVfaWQ7CiBlbnVtIGNvbnRyb2xsZXJfaWQgY29udHJvbGxlcl9pZDsKCiBl
bnVtIHNpZ25hbF90eXBlIHNpZ25hbDsKCiBlbnVtIHNpZ25hbF90eXBlIHNpbmtfc2lnbmFsOwog
ZW51bSBkaXNwbGF5X291dHB1dF9iaXRfZGVwdGggZGlzcGxheV9vdXRwdXRfYml0X2RlcHRoOwog
Ym9vbCBlbmFibGVfZHBfYXVkaW87Cn07CgpzdHJ1Y3QgYnBfdHJhbnNtaXR0ZXJfY29udHJvbCB7
CiBlbnVtIGJwX3RyYW5zbWl0dGVyX2NvbnRyb2xfYWN0aW9uIGFjdGlvbjsKIGVudW0gZW5naW5l
X2lkIGVuZ2luZV9pZDsKIGVudW0gdHJhbnNtaXR0ZXIgdHJhbnNtaXR0ZXI7CiBlbnVtIGRjX2xh
bmVfY291bnQgbGFuZXNfbnVtYmVyOwogZW51bSBjbG9ja19zb3VyY2VfaWQgcGxsX2lkOwogZW51
bSBzaWduYWxfdHlwZSBzaWduYWw7CiBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRoOwog
ZW51bSBocGRfc291cmNlX2lkIGhwZF9zZWw7CiBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGNv
bm5lY3Rvcl9vYmpfaWQ7CgoKCiB1aW50MzJfdCBwaXhlbF9jbG9jazsKIHVpbnQzMl90IGxhbmVf
c2VsZWN0OwogdWludDMyX3QgbGFuZV9zZXR0aW5nczsKIGJvb2wgY29oZXJlbnQ7CiBib29sIG11
bHRpX3BhdGg7CiBib29sIHNpbmdsZV9wbGxfbW9kZTsKfTsKCnN0cnVjdCBicF9od19jcnRjX3Rp
bWluZ19wYXJhbWV0ZXJzIHsKIGVudW0gY29udHJvbGxlcl9pZCBjb250cm9sbGVyX2lkOwoKIHVp
bnQzMl90IGhfdG90YWw7CiB1aW50MzJfdCBoX2FkZHJlc3NhYmxlOwogdWludDMyX3QgaF9vdmVy
c2Nhbl9sZWZ0OwogdWludDMyX3QgaF9vdmVyc2Nhbl9yaWdodDsKIHVpbnQzMl90IGhfc3luY19z
dGFydDsKIHVpbnQzMl90IGhfc3luY193aWR0aDsKCgogdWludDMyX3Qgdl90b3RhbDsKIHVpbnQz
Ml90IHZfYWRkcmVzc2FibGU7CiB1aW50MzJfdCB2X292ZXJzY2FuX3RvcDsKIHVpbnQzMl90IHZf
b3ZlcnNjYW5fYm90dG9tOwogdWludDMyX3Qgdl9zeW5jX3N0YXJ0OwogdWludDMyX3Qgdl9zeW5j
X3dpZHRoOwoKIHN0cnVjdCB0aW1pbmdfZmxhZ3MgewogIHVpbnQzMl90IElOVEVSTEFDRToxOwog
IHVpbnQzMl90IFBJWEVMX1JFUEVUSVRJT046NDsKICB1aW50MzJfdCBIU1lOQ19QT1NJVElWRV9Q
T0xBUklUWToxOwogIHVpbnQzMl90IFZTWU5DX1BPU0lUSVZFX1BPTEFSSVRZOjE7CiAgdWludDMy
X3QgSE9SWl9DT1VOVF9CWV9UV086MTsKIH0gZmxhZ3M7Cn07CgpzdHJ1Y3QgYnBfYWRqdXN0X3Bp
eGVsX2Nsb2NrX3BhcmFtZXRlcnMgewoKIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsX3R5cGU7Cgog
c3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBlbmNvZGVyX29iamVjdF9pZDsKCgoKIHVpbnQzMl90
IHBpeGVsX2Nsb2NrOwoKIHVpbnQzMl90IGFkanVzdGVkX3BpeGVsX2Nsb2NrOwoKCiB1aW50MzJf
dCByZWZlcmVuY2VfZGl2aWRlcjsKCgogdWludDMyX3QgcGl4ZWxfY2xvY2tfcG9zdF9kaXZpZGVy
OwoKIGJvb2wgc3NfZW5hYmxlOwp9OwoKc3RydWN0IGJwX3BpeGVsX2Nsb2NrX3BhcmFtZXRlcnMg
ewogZW51bSBjb250cm9sbGVyX2lkIGNvbnRyb2xsZXJfaWQ7CiBlbnVtIGNsb2NrX3NvdXJjZV9p
ZCBwbGxfaWQ7CgogZW51bSBzaWduYWxfdHlwZSBzaWduYWxfdHlwZTsKCgogdWludDMyX3QgdGFy
Z2V0X3BpeGVsX2Nsb2NrXzEwMGh6OwoKIHVpbnQzMl90IHJlZmVyZW5jZV9kaXZpZGVyOwoKIHVp
bnQzMl90IGZlZWRiYWNrX2RpdmlkZXI7CgogdWludDMyX3QgZnJhY3Rpb25hbF9mZWVkYmFja19k
aXZpZGVyOwoKIHVpbnQzMl90IHBpeGVsX2Nsb2NrX3Bvc3RfZGl2aWRlcjsKIHN0cnVjdCBncmFw
aGljc19vYmplY3RfaWQgZW5jb2Rlcl9vYmplY3RfaWQ7CgoKIHVpbnQzMl90IGRmc19ieXBhc3Nf
ZGlzcGxheV9jbG9jazsKCiBlbnVtIHRyYW5zbWl0dGVyX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRo
OwoKIHN0cnVjdCBwcm9ncmFtX3BpeGVsX2Nsb2NrX2ZsYWdzIHsKICB1aW50MzJfdCBGT1JDRV9Q
Uk9HUkFNTUlOR19PRl9QTEw6MTsKCgogIHVpbnQzMl90IFVTRV9FX0NMT0NLX0FTX1NPVVJDRV9G
T1JfRF9DTE9DSzoxOwoKICB1aW50MzJfdCBTRVRfRVhURVJOQUxfUkVGX0RJVl9TUkM6MTsKCiAg
dWludDMyX3QgU0VUX0RJU1BDTEtfREZTX0JZUEFTUzoxOwoKICB1aW50MzJfdCBQUk9HUkFNX1BI
WV9QTExfT05MWToxOwoKICB1aW50MzJfdCBTVVBQT1JUX1lVVl80MjA6MTsKCiAgdWludDMyX3Qg
U0VUX1hUQUxJTl9SRUZfU1JDOjE7CgogIHVpbnQzMl90IFNFVF9HRU5MT0NLX1JFRl9ESVZfU1JD
OjE7CiB9IGZsYWdzOwp9OwoKZW51bSBicF9kY2VfY2xvY2tfdHlwZSB7CiBEQ0VDTE9DS19UWVBF
X0RJU1BMQVlfQ0xPQ0sgPSAwLAogRENFQ0xPQ0tfVFlQRV9EUFJFRkNMSyA9IDEKfTsKCgpzdHJ1
Y3QgYnBfc2V0X2RjZV9jbG9ja19wYXJhbWV0ZXJzIHsKIGVudW0gY2xvY2tfc291cmNlX2lkIHBs
bF9pZDsKCiB1aW50MzJfdCB0YXJnZXRfY2xvY2tfZnJlcXVlbmN5OwoKIGVudW0gYnBfZGNlX2Ns
b2NrX3R5cGUgY2xvY2tfdHlwZTsKCiBzdHJ1Y3Qgc2V0X2RjZV9jbG9ja19mbGFncyB7CiAgdWlu
dDMyX3QgVVNFX0dFTkVSSUNBX0FTX1NPVVJDRV9GT1JfRFBSRUZDTEs6MTsKCiAgdWludDMyX3Qg
VVNFX1hUQUxJTl9BU19TT1VSQ0VfRk9SX0RQUkVGQ0xLOjE7CgogIHVpbnQzMl90IFVTRV9QQ0lF
X0FTX1NPVVJDRV9GT1JfRFBSRUZDTEs6MTsKCiAgdWludDMyX3QgVVNFX0dFTkxPQ0tfQVNfU09V
UkNFX0ZPUl9EUFJFRkNMSzoxOwogfSBmbGFnczsKfTsKCnN0cnVjdCBzcHJlYWRfc3BlY3RydW1f
ZmxhZ3MgewoKIHVpbnQzMl90IENFTlRFUl9TUFJFQUQ6MTsKCiB1aW50MzJfdCBFWFRFUk5BTF9T
UzoxOwoKIHVpbnQzMl90IERTX1RZUEU6MTsKfTsKCnN0cnVjdCBicF9zcHJlYWRfc3BlY3RydW1f
cGFyYW1ldGVycyB7CiBlbnVtIGNsb2NrX3NvdXJjZV9pZCBwbGxfaWQ7CiB1aW50MzJfdCBwZXJj
ZW50YWdlOwogdWludDMyX3QgZHNfZnJhY19hbW91bnQ7CgogdW5pb24gewogIHN0cnVjdCB7CiAg
IHVpbnQzMl90IHN0ZXA7CiAgIHVpbnQzMl90IGRlbGF5OwogICB1aW50MzJfdCByYW5nZTsKICB9
IHZlcjE7CiAgc3RydWN0IHsKICAgdWludDMyX3QgZmVlZGJhY2tfYW1vdW50OwogICB1aW50MzJf
dCBuZnJhY19hbW91bnQ7CiAgIHVpbnQzMl90IGRzX2ZyYWNfc2l6ZTsKICB9IGRzOwogfTsKCiBz
dHJ1Y3Qgc3ByZWFkX3NwZWN0cnVtX2ZsYWdzIGZsYWdzOwp9OwoKc3RydWN0IGJwX2VuY29kZXJf
Y2FwX2luZm8gewogdWludDMyX3QgRFBfSEJSMl9DQVA6MTsKIHVpbnQzMl90IERQX0hCUjJfRU46
MTsKIHVpbnQzMl90IERQX0hCUjNfRU46MTsKIHVpbnQzMl90IEhETUlfNkdCX0VOOjE7CiB1aW50
MzJfdCBEUF9JU19VU0JfQzoxOwogdWludDMyX3QgUkVTRVJWRUQ6Mjc7Cn07CiMgMzIgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY2xvY2tfc291cmNlLmgi
IDIKCnN0cnVjdCBjbG9ja19zb3VyY2U7CgpzdHJ1Y3Qgc3ByZWFkX3NwZWN0cnVtX2RhdGEgewog
dWludDMyX3QgcGVyY2VudGFnZTsKIHVpbnQzMl90IHBlcmNlbnRhZ2VfZGl2aWRlcjsKIHVpbnQz
Ml90IGZyZXFfcmFuZ2Vfa2h6OwogdWludDMyX3QgbW9kdWxhdGlvbl9mcmVxX2h6OwoKIHN0cnVj
dCBzcHJlYWRfc3BlY3RydW1fZmxhZ3MgZmxhZ3M7Cn07CgpzdHJ1Y3QgZGVsdGFfc2lnbWFfZGF0
YSB7CiB1aW50MzJfdCBmZWVkYmFja19hbW91bnQ7CiB1aW50MzJfdCBuZnJhY19hbW91bnQ7CiB1
aW50MzJfdCBkc19mcmFjX3NpemU7CiB1aW50MzJfdCBkc19mcmFjX2Ftb3VudDsKfTsKCgoKCgoK
c3RydWN0IHBpeGVsX2Nsa19mbGFncyB7CiB1aW50MzJfdCBFTkFCTEVfU1M6MTsKIHVpbnQzMl90
IERJU1BMQVlfQkxBTktFRDoxOwogdWludDMyX3QgUFJPR1JBTV9QSVhFTF9DTE9DSzoxOwogdWlu
dDMyX3QgUFJPR1JBTV9JRF9DTE9DSzoxOwogdWludDMyX3QgU1VQUE9SVF9ZQ0JDUjQyMDoxOwp9
OwoKCgoKCnN0cnVjdCBjc2RwX3JlZl9jbGtfZHNfcGFyYW1zIHsKIGJvb2wgaHdfZHNvX25fZHBf
cmVmX2NsazsKCiB1aW50MzJfdCBhdmdfZHBfcmVmX2Nsa19raHo7CgogdWludDMyX3Qgc3NfcGVy
Y2VudGFnZV9vbl9kcF9yZWZfY2xrOwoKCiB1aW50MzJfdCBzc19wZXJjZW50YWdlX2RpdmlkZXI7
Cgp9OwoKc3RydWN0IHBpeGVsX2Nsa19wYXJhbXMgewogdWludDMyX3QgcmVxdWVzdGVkX3BpeF9j
bGtfMTAwaHo7CgoKIHVpbnQzMl90IHJlcXVlc3RlZF9zeW1fY2xrOwoKIHVpbnQzMl90IGRwX3Jl
Zl9jbGs7Cgogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBlbmNvZGVyX29iamVjdF9pZDsKCiBl
bnVtIHNpZ25hbF90eXBlIHNpZ25hbF90eXBlOwoKIGVudW0gY29udHJvbGxlcl9pZCBjb250cm9s
bGVyX2lkOwoKIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGg7CiBzdHJ1Y3QgY3NkcF9y
ZWZfY2xrX2RzX3BhcmFtcyBkZV9zcHJlYWRfcGFyYW1zOwoKIGVudW0gZGNfcGl4ZWxfZW5jb2Rp
bmcgcGl4ZWxfZW5jb2Rpbmc7CiBzdHJ1Y3QgcGl4ZWxfY2xrX2ZsYWdzIGZsYWdzOwp9OwoKCgoK
CgpzdHJ1Y3QgcGxsX3NldHRpbmdzIHsKIHVpbnQzMl90IGFjdHVhbF9waXhfY2xrXzEwMGh6Owog
dWludDMyX3QgYWRqdXN0ZWRfcGl4X2Nsa18xMDBoejsKIHVpbnQzMl90IGNhbGN1bGF0ZWRfcGl4
X2Nsa18xMDBoejsKIHVpbnQzMl90IHZjb19mcmVxOwogdWludDMyX3QgcmVmZXJlbmNlX2ZyZXE7
CiB1aW50MzJfdCByZWZlcmVuY2VfZGl2aWRlcjsKIHVpbnQzMl90IGZlZWRiYWNrX2RpdmlkZXI7
CiB1aW50MzJfdCBmcmFjdF9mZWVkYmFja19kaXZpZGVyOwogdWludDMyX3QgcGl4X2Nsa19wb3N0
X2RpdmlkZXI7CiB1aW50MzJfdCBzc19wZXJjZW50YWdlOwogYm9vbCB1c2VfZXh0ZXJuYWxfY2xr
Owp9OwoKc3RydWN0IGNhbGNfcGxsX2Nsb2NrX3NvdXJjZV9pbml0X2RhdGEgewogc3RydWN0IGRj
X2Jpb3MgKmJwOwogdWludDMyX3QgbWluX3BpeF9jbGtfcGxsX3Bvc3RfZGl2aWRlcjsKIHVpbnQz
Ml90IG1heF9waXhfY2xrX3BsbF9wb3N0X2RpdmlkZXI7CiB1aW50MzJfdCBtaW5fcGxsX3JlZl9k
aXZpZGVyOwogdWludDMyX3QgbWF4X3BsbF9yZWZfZGl2aWRlcjsKIHVpbnQzMl90IG1pbl9vdmVy
cmlkZV9pbnB1dF9weGxfY2xrX3BsbF9mcmVxX2toejsKCgogdWludDMyX3QgbWF4X292ZXJyaWRl
X2lucHV0X3B4bF9jbGtfcGxsX2ZyZXFfa2h6OwoKCiB1aW50MzJfdCBudW1fZnJhY3RfZmJfZGl2
aWRlcl9kZWNpbWFsX3BvaW50OwoKCiB1aW50MzJfdCBudW1fZnJhY3RfZmJfZGl2aWRlcl9kZWNp
bWFsX3BvaW50X3ByZWNpc2lvbjsKCiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoKfTsKCnN0cnVj
dCBjYWxjX3BsbF9jbG9ja19zb3VyY2UgewogdWludDMyX3QgcmVmX2ZyZXFfa2h6OwogdWludDMy
X3QgbWluX3BpeF9jbG9ja19wbGxfcG9zdF9kaXZpZGVyOwogdWludDMyX3QgbWF4X3BpeF9jbG9j
a19wbGxfcG9zdF9kaXZpZGVyOwogdWludDMyX3QgbWluX3BsbF9yZWZfZGl2aWRlcjsKIHVpbnQz
Ml90IG1heF9wbGxfcmVmX2RpdmlkZXI7CgogdWludDMyX3QgbWF4X3Zjb19raHo7CiB1aW50MzJf
dCBtaW5fdmNvX2toejsKIHVpbnQzMl90IG1pbl9wbGxfaW5wdXRfZnJlcV9raHo7CiB1aW50MzJf
dCBtYXhfcGxsX2lucHV0X2ZyZXFfa2h6OwoKIHVpbnQzMl90IGZyYWN0X2ZiX2RpdmlkZXJfZGVj
aW1hbF9wb2ludHNfbnVtOwogdWludDMyX3QgZnJhY3RfZmJfZGl2aWRlcl9mYWN0b3I7CiB1aW50
MzJfdCBmcmFjdF9mYl9kaXZpZGVyX3ByZWNpc2lvbjsKIHVpbnQzMl90IGZyYWN0X2ZiX2Rpdmlk
ZXJfcHJlY2lzaW9uX2ZhY3RvcjsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7Cn07CgpzdHJ1Y3Qg
Y2xvY2tfc291cmNlX2Z1bmNzIHsKIGJvb2wgKCpjc19wb3dlcl9kb3duKSgKICAgc3RydWN0IGNs
b2NrX3NvdXJjZSAqKTsKIGJvb2wgKCpwcm9ncmFtX3BpeF9jbGspKHN0cnVjdCBjbG9ja19zb3Vy
Y2UgKiwKICAgc3RydWN0IHBpeGVsX2Nsa19wYXJhbXMgKiwgc3RydWN0IHBsbF9zZXR0aW5ncyAq
KTsKIHVpbnQzMl90ICgqZ2V0X3BpeF9jbGtfZGl2aWRlcnMpKAogICBzdHJ1Y3QgY2xvY2tfc291
cmNlICosCiAgIHN0cnVjdCBwaXhlbF9jbGtfcGFyYW1zICosCiAgIHN0cnVjdCBwbGxfc2V0dGlu
Z3MgKik7CiBib29sICgqZ2V0X3BpeGVsX2Nsa19mcmVxdWVuY3lfMTAwaHopKAogICBjb25zdCBz
dHJ1Y3QgY2xvY2tfc291cmNlICpjbG9ja19zb3VyY2UsCiAgIHVuc2lnbmVkIGludCBpbnN0LAog
ICB1bnNpZ25lZCBpbnQgKnBpeGVsX2Nsa19raHopOwp9OwoKc3RydWN0IGNsb2NrX3NvdXJjZSB7
CiBjb25zdCBzdHJ1Y3QgY2xvY2tfc291cmNlX2Z1bmNzICpmdW5jczsKIHN0cnVjdCBkY19jb250
ZXh0ICpjdHg7CiBlbnVtIGNsb2NrX3NvdXJjZV9pZCBpZDsKIGJvb2wgZHBfY2xrX3NyYzsKfTsK
IyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9od19z
ZXF1ZW5jZXIuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9pbmMvaHcvdGltaW5nX2dlbmVyYXRvci5oIiAxCiMgMzEgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvdGltaW5nX2dlbmVyYXRvci5oIgpzdHJ1
Y3QgZGNfYmlvczsKCgpzdHJ1Y3QgY3J0Y19wb3NpdGlvbiB7CiBpbnQzMl90IHZlcnRpY2FsX2Nv
dW50OwogaW50MzJfdCBob3Jpem9udGFsX2NvdW50OwogaW50MzJfdCBub21pbmFsX3Zjb3VudDsK
fTsKCnN0cnVjdCBkY3BfZ3NsX3BhcmFtcyB7CiBpbnQgZ3NsX2dyb3VwOwogaW50IGdzbF9tYXN0
ZXI7Cn07CgpzdHJ1Y3QgZ3NsX3BhcmFtcyB7CiBpbnQgZ3NsMF9lbjsKIGludCBnc2wxX2VuOwog
aW50IGdzbDJfZW47CiBpbnQgZ3NsX21hc3Rlcl9lbjsKIGludCBnc2xfbWFzdGVyX21vZGU7CiBp
bnQgbWFzdGVyX3VwZGF0ZV9sb2NrX2dzbF9lbjsKIGludCBnc2xfd2luZG93X3N0YXJ0X3g7CiBp
bnQgZ3NsX3dpbmRvd19lbmRfeDsKIGludCBnc2xfd2luZG93X3N0YXJ0X3k7CiBpbnQgZ3NsX3dp
bmRvd19lbmRfeTsKfTsKCgpzdHJ1Y3QgZHJyX3BhcmFtcyB7CiB1aW50MzJfdCB2ZXJ0aWNhbF90
b3RhbF9taW47CiB1aW50MzJfdCB2ZXJ0aWNhbF90b3RhbF9tYXg7CiB1aW50MzJfdCB2ZXJ0aWNh
bF90b3RhbF9taWQ7CiB1aW50MzJfdCB2ZXJ0aWNhbF90b3RhbF9taWRfZnJhbWVfbnVtOwogYm9v
bCBpbW1lZGlhdGVfZmxpcDsKfTsKCgoKCmVudW0gY3J0Y19zdGF0ZSB7CiBDUlRDX1NUQVRFX1ZC
TEFOSyA9IDAsCiBDUlRDX1NUQVRFX1ZBQ1RJVkUKfTsKCnN0cnVjdCB2dXBkYXRlX2tlZXBvdXRf
cGFyYW1zIHsKIGludCBzdGFydF9vZmZzZXQ7CiBpbnQgZW5kX29mZnNldDsKIGludCBlbmFibGU7
Cn07CgpzdHJ1Y3QgY3J0Y19zdGVyZW9fZmxhZ3MgewogdWludDhfdCBQUk9HUkFNX1NURVJFTyA6
IDE7CiB1aW50OF90IFBST0dSQU1fUE9MQVJJVFkgOiAxOwogdWludDhfdCBSSUdIVF9FWUVfUE9M
QVJJVFkgOiAxOwogdWludDhfdCBGUkFNRV9QQUNLRUQgOiAxOwogdWludDhfdCBESVNBQkxFX1NU
RVJFT19EUF9TWU5DIDogMTsKfTsKCmVudW0gY3JjX3NlbGVjdGlvbiB7CgogVU5JT05fV0lORE9X
X0FfQiA9IDAsCiBVTklPTl9XSU5ET1dfQV9OT1RfQiwKIFVOSU9OX1dJTkRPV19OT1RfQV9CLAog
VU5JT05fV0lORE9XX05PVF9BX05PVF9CLAogSU5URVJTRUNUX1dJTkRPV19BX0IsCiBJTlRFUlNF
Q1RfV0lORE9XX0FfTk9UX0IsCiBJTlRFUlNFQ1RfV0lORE9XX05PVF9BX0IsCiBJTlRFUlNFQ1Rf
V0lORE9XX05PVF9BX05PVF9CLAp9OwoKZW51bSBoX3RpbWluZ19kaXZfbW9kZSB7CiBIX1RJTUlO
R19OT19ESVYsCiBIX1RJTUlOR19ESVZfQlkyLAp9OwoKc3RydWN0IGNyY19wYXJhbXMgewoKIHVp
bnQxNl90IHdpbmRvd2FfeF9zdGFydDsKIHVpbnQxNl90IHdpbmRvd2FfeF9lbmQ7CiB1aW50MTZf
dCB3aW5kb3dhX3lfc3RhcnQ7CiB1aW50MTZfdCB3aW5kb3dhX3lfZW5kOwoKIHVpbnQxNl90IHdp
bmRvd2JfeF9zdGFydDsKIHVpbnQxNl90IHdpbmRvd2JfeF9lbmQ7CiB1aW50MTZfdCB3aW5kb3di
X3lfc3RhcnQ7CiB1aW50MTZfdCB3aW5kb3diX3lfZW5kOwoKIGVudW0gY3JjX3NlbGVjdGlvbiBz
ZWxlY3Rpb247CgogYm9vbCBjb250aW51b3VzX21vZGU7CiBib29sIGVuYWJsZTsKfTsKCnN0cnVj
dCB0aW1pbmdfZ2VuZXJhdG9yIHsKIGNvbnN0IHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yX2Z1bmNz
ICpmdW5jczsKIHN0cnVjdCBkY19iaW9zICpicDsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CiBp
bnQgaW5zdDsKfTsKCnN0cnVjdCBkY19jcnRjX3RpbWluZzsKCnN0cnVjdCBkcnJfcGFyYW1zOwoK
CnN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yX2Z1bmNzIHsKIGJvb2wgKCp2YWxpZGF0ZV90aW1pbmcp
KHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKICAgICAgIGNvbnN0IHN0cnVjdCBkY19jcnRj
X3RpbWluZyAqdGltaW5nKTsKIHZvaWQgKCpwcm9ncmFtX3RpbWluZykoc3RydWN0IHRpbWluZ19n
ZW5lcmF0b3IgKnRnLAogICAgICAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcs
CiAgICAgICBpbnQgdnJlYWR5X29mZnNldCwKICAgICAgIGludCB2c3RhcnR1cF9zdGFydCwKICAg
ICAgIGludCB2dXBkYXRlX29mZnNldCwKICAgICAgIGludCB2dXBkYXRlX3dpZHRoLAogICAgICAg
Y29uc3QgZW51bSBzaWduYWxfdHlwZSBzaWduYWwsCiAgICAgICBib29sIHVzZV92YmlvcwogKTsK
IHZvaWQgKCpzZXR1cF92ZXJ0aWNhbF9pbnRlcnJ1cHQwKSgKICAgc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKm9wdGMsCiAgIHVpbnQzMl90IHN0YXJ0X2xpbmUsCiAgIHVpbnQzMl90IGVuZF9saW5l
KTsKIHZvaWQgKCpzZXR1cF92ZXJ0aWNhbF9pbnRlcnJ1cHQxKSgKICAgc3RydWN0IHRpbWluZ19n
ZW5lcmF0b3IgKm9wdGMsCiAgIHVpbnQzMl90IHN0YXJ0X2xpbmUpOwogdm9pZCAoKnNldHVwX3Zl
cnRpY2FsX2ludGVycnVwdDIpKAogICBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKICAg
dWludDMyX3Qgc3RhcnRfbGluZSk7CgogYm9vbCAoKmVuYWJsZV9jcnRjKShzdHJ1Y3QgdGltaW5n
X2dlbmVyYXRvciAqdGcpOwogYm9vbCAoKmRpc2FibGVfY3J0Yykoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnKTsKIGJvb2wgKCppc19jb3VudGVyX21vdmluZykoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnKTsKIHZvaWQgKCpnZXRfcG9zaXRpb24pKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9y
ICp0ZywKICAgIHN0cnVjdCBjcnRjX3Bvc2l0aW9uICpwb3NpdGlvbik7CgogdWludDMyX3QgKCpn
ZXRfZnJhbWVfY291bnQpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CiB2b2lkICgqZ2V0
X3NjYW5vdXRwb3MpKAogIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKICB1aW50MzJfdCAq
dl9ibGFua19zdGFydCwKICB1aW50MzJfdCAqdl9ibGFua19lbmQsCiAgdWludDMyX3QgKmhfcG9z
aXRpb24sCiAgdWludDMyX3QgKnZfcG9zaXRpb24pOwogYm9vbCAoKmdldF9vdGdfYWN0aXZlX3Np
emUpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAogICB1aW50MzJfdCAqb3RnX2FjdGl2
ZV93aWR0aCwKICAgdWludDMyX3QgKm90Z19hY3RpdmVfaGVpZ2h0KTsKIGJvb2wgKCppc19tYXRj
aGluZ190aW1pbmcpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKICAgY29uc3Qgc3RydWN0
IGRjX2NydGNfdGltaW5nICpvdGdfdGltaW5nKTsKIHZvaWQgKCpzZXRfZWFybHlfY29udHJvbCko
c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAogICAgICAgICAgdWludDMyX3QgZWFybHlfY250
bCk7CiB2b2lkICgqd2FpdF9mb3Jfc3RhdGUpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywK
ICAgICAgIGVudW0gY3J0Y19zdGF0ZSBzdGF0ZSk7CiB2b2lkICgqc2V0X2JsYW5rKShzdHJ1Y3Qg
dGltaW5nX2dlbmVyYXRvciAqdGcsCiAgICAgYm9vbCBlbmFibGVfYmxhbmtpbmcpOwogYm9vbCAo
KmlzX2JsYW5rZWQpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CiB2b2lkICgqc2V0X292
ZXJzY2FuX2JsYW5rX2NvbG9yKSAoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLCBjb25zdCBz
dHJ1Y3QgdGdfY29sb3IgKmNvbG9yKTsKIHZvaWQgKCpzZXRfYmxhbmtfY29sb3IpKHN0cnVjdCB0
aW1pbmdfZ2VuZXJhdG9yICp0ZywgY29uc3Qgc3RydWN0IHRnX2NvbG9yICpjb2xvcik7CiB2b2lk
ICgqc2V0X2NvbG9ycykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAogICAgICBjb25zdCBz
dHJ1Y3QgdGdfY29sb3IgKmJsYW5rX2NvbG9yLAogICAgICBjb25zdCBzdHJ1Y3QgdGdfY29sb3Ig
Km92ZXJzY2FuX2NvbG9yKTsKCiB2b2lkICgqZGlzYWJsZV92Z2EpKHN0cnVjdCB0aW1pbmdfZ2Vu
ZXJhdG9yICp0Zyk7CiBib29sICgqZGlkX3RyaWdnZXJlZF9yZXNldF9vY2N1cikoc3RydWN0IHRp
bWluZ19nZW5lcmF0b3IgKnRnKTsKIHZvaWQgKCpzZXR1cF9nbG9iYWxfc3dhcF9sb2NrKShzdHJ1
Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCiAgICAgICBjb25zdCBzdHJ1Y3QgZGNwX2dzbF9wYXJh
bXMgKmdzbF9wYXJhbXMpOwogdm9pZCAoKnVubG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3Ig
KnRnKTsKIHZvaWQgKCpsb2NrKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwogdm9pZCAo
KmxvY2tfZG91YmxlYnVmZmVyX2Rpc2FibGUpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7
CiB2b2lkICgqbG9ja19kb3VibGVidWZmZXJfZW5hYmxlKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRv
ciAqdGcpOwogdm9pZCgqdHJpcGxlYnVmZmVyX3VubG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0
b3IgKnRnKTsKIHZvaWQoKnRyaXBsZWJ1ZmZlcl9sb2NrKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRv
ciAqdGcpOwogdm9pZCAoKmVuYWJsZV9yZXNldF90cmlnZ2VyKShzdHJ1Y3QgdGltaW5nX2dlbmVy
YXRvciAqdGcsCiAgICAgICAgIGludCBzb3VyY2VfdGdfaW5zdCk7CiB2b2lkICgqZW5hYmxlX2Ny
dGNfcmVzZXQpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKICAgICAgaW50IHNvdXJjZV90
Z19pbnN0LAogICAgICBzdHJ1Y3QgY3J0Y190cmlnZ2VyX2luZm8gKmNydGNfdHApOwogdm9pZCAo
KmRpc2FibGVfcmVzZXRfdHJpZ2dlcikoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKIHZv
aWQgKCp0ZWFyX2Rvd25fZ2xvYmFsX3N3YXBfbG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3Ig
KnRnKTsKIHZvaWQgKCplbmFibGVfYWR2YW5jZWRfcmVxdWVzdCkoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnLAogICAgIGJvb2wgZW5hYmxlLCBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcg
KnRpbWluZyk7CiB2b2lkICgqc2V0X2Rycikoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLCBj
b25zdCBzdHJ1Y3QgZHJyX3BhcmFtcyAqcGFyYW1zKTsKIHZvaWQgKCpzZXRfc3RhdGljX3NjcmVl
bl9jb250cm9sKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCiAgICAgIHVpbnQzMl90IGV2
ZW50X3RyaWdnZXJzLAogICAgICB1aW50MzJfdCBudW1fZnJhbWVzKTsKIHZvaWQgKCpzZXRfdGVz
dF9wYXR0ZXJuKSgKICBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCiAgZW51bSBjb250cm9s
bGVyX2RwX3Rlc3RfcGF0dGVybiB0ZXN0X3BhdHRlcm4sCiAgZW51bSBkY19jb2xvcl9kZXB0aCBj
b2xvcl9kZXB0aCk7CgogYm9vbCAoKmFybV92ZXJ0X2ludHIpKHN0cnVjdCB0aW1pbmdfZ2VuZXJh
dG9yICp0ZywgdWludDhfdCB3aWR0aCk7Cgogdm9pZCAoKnByb2dyYW1fZ2xvYmFsX3N5bmMpKHN0
cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKICAgaW50IHZyZWFkeV9vZmZzZXQsCiAgIGludCB2
c3RhcnR1cF9zdGFydCwKICAgaW50IHZ1cGRhdGVfb2Zmc2V0LAogICBpbnQgdnVwZGF0ZV93aWR0
aCk7CiB2b2lkICgqZW5hYmxlX29wdGNfY2xvY2spKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0
ZywgYm9vbCBlbmFibGUpOwogdm9pZCAoKnByb2dyYW1fc3RlcmVvKShzdHJ1Y3QgdGltaW5nX2dl
bmVyYXRvciAqdGcsCiAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcsIHN0cnVj
dCBjcnRjX3N0ZXJlb19mbGFncyAqZmxhZ3MpOwogYm9vbCAoKmlzX3N0ZXJlb19sZWZ0X2V5ZSko
c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKCiB2b2lkICgqc2V0X2JsYW5rX2RhdGFfZG91
YmxlX2J1ZmZlcikoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLCBib29sIGVuYWJsZSk7Cgog
dm9pZCAoKnRnX2luaXQpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CiBib29sICgqaXNf
dGdfZW5hYmxlZCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKIGJvb2wgKCppc19vcHRj
X3VuZGVyZmxvd19vY2N1cnJlZCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKIHZvaWQg
KCpjbGVhcl9vcHRjX3VuZGVyZmxvdykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKCiB2
b2lkICgqc2V0X2R3Yl9zb3VyY2UpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAogIHVp
bnQzMl90IGR3Yl9waXBlX2luc3QpOwoKIHZvaWQgKCpnZXRfb3B0Y19zb3VyY2UpKHN0cnVjdCB0
aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAogICB1aW50MzJfdCAqbnVtX29mX2lucHV0X3NlZ21lbnRz
LAogICB1aW50MzJfdCAqc2VnMF9zcmNfc2VsLAogICB1aW50MzJfdCAqc2VnMV9zcmNfc2VsKTsK
CgoKCgogYm9vbCAoKmNvbmZpZ3VyZV9jcmMpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywK
ICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcmNfcGFyYW1zICpwYXJhbXMpOwoKCgoKCiBib29sICgq
Z2V0X2NyYykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAogICB1aW50MzJfdCAqcl9jciwg
dWludDMyX3QgKmdfeSwgdWludDMyX3QgKmJfY2IpOwoKIHZvaWQgKCpwcm9ncmFtX21hbnVhbF90
cmlnZ2VyKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0Yyk7CiB2b2lkICgqc2V0dXBfbWFu
dWFsX3RyaWdnZXIpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjKTsKIGJvb2wgKCpnZXRf
aHdfdGltaW5nKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKICAgc3RydWN0IGRjX2Ny
dGNfdGltaW5nICpod19jcnRjX3RpbWluZyk7Cgogdm9pZCAoKnNldF92dGdfcGFyYW1zKShzdHJ1
Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKICAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5n
ICpkY19jcnRjX3RpbWluZyk7Cgogdm9pZCAoKnNldF9kc2NfY29uZmlnKShzdHJ1Y3QgdGltaW5n
X2dlbmVyYXRvciAqb3B0YywKICAgICAgICAgIGVudW0gb3B0Y19kc2NfbW9kZSBkc2NfbW9kZSwK
ICAgICAgICAgIHVpbnQzMl90IGRzY19ieXRlc19wZXJfcGl4ZWwsCiAgICAgICAgICB1aW50MzJf
dCBkc2Nfc2xpY2Vfd2lkdGgpOwogdm9pZCAoKnNldF9vZG1fYnlwYXNzKShzdHJ1Y3QgdGltaW5n
X2dlbmVyYXRvciAqb3B0YywgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICpkY19jcnRjX3Rp
bWluZyk7CiB2b2lkICgqc2V0X29kbV9jb21iaW5lKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAq
b3B0YywgaW50ICpvcHBfaWQsIGludCBvcHBfY250LAogICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcg
KnRpbWluZyk7CiB2b2lkICgqc2V0X2dzbCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMs
IGNvbnN0IHN0cnVjdCBnc2xfcGFyYW1zICpwYXJhbXMpOwogdm9pZCAoKnNldF9nc2xfc291cmNl
X3NlbGVjdCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCiAgIGludCBncm91cF9pZHgs
CiAgIHVpbnQzMl90IGdzbF9yZWFkeV9zaWduYWwpOwp9OwojIDMxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3X3NlcXVlbmNlci5oIiAyCgojIDEgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbGlua19lbmNv
ZGVyLmgiIDEKIyAzNyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2luYy9ody9saW5rX2VuY29kZXIuaCIKc3RydWN0IGRjX2NvbnRleHQ7CnN0cnVjdCBlbmNvZGVy
X3NldF9kcF9waHlfcGF0dGVybl9wYXJhbTsKc3RydWN0IGxpbmtfbXN0X3N0cmVhbV9hbGxvY2F0
aW9uX3RhYmxlOwpzdHJ1Y3QgZGNfbGlua19zZXR0aW5nczsKc3RydWN0IGxpbmtfdHJhaW5pbmdf
c2V0dGluZ3M7CnN0cnVjdCBwaXBlX2N0eDsKCnN0cnVjdCBlbmNvZGVyX2luaXRfZGF0YSB7CiBl
bnVtIGNoYW5uZWxfaWQgY2hhbm5lbDsKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgY29ubmVj
dG9yOwogZW51bSBocGRfc291cmNlX2lkIGhwZF9zb3VyY2U7Cgogc3RydWN0IGdyYXBoaWNzX29i
amVjdF9pZCBlbmNvZGVyOwogc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKIGVudW0gdHJhbnNtaXR0
ZXIgdHJhbnNtaXR0ZXI7Cn07CgpzdHJ1Y3QgZW5jb2Rlcl9mZWF0dXJlX3N1cHBvcnQgewogdW5p
b24gewogIHN0cnVjdCB7CiAgIHVpbnQzMl90IElTX0hCUjJfQ0FQQUJMRToxOwogICB1aW50MzJf
dCBJU19IQlIzX0NBUEFCTEU6MTsKICAgdWludDMyX3QgSVNfVFBTM19DQVBBQkxFOjE7CiAgIHVp
bnQzMl90IElTX1RQUzRfQ0FQQUJMRToxOwogICB1aW50MzJfdCBIRE1JXzZHQl9FTjoxOwogICB1
aW50MzJfdCBEUF9JU19VU0JfQzoxOwogIH0gYml0czsKICB1aW50MzJfdCByYXc7CiB9IGZsYWdz
OwoKIGVudW0gZGNfY29sb3JfZGVwdGggbWF4X2hkbWlfZGVlcF9jb2xvcjsKIHVuc2lnbmVkIGlu
dCBtYXhfaGRtaV9waXhlbF9jbG9jazsKIGJvb2wgaGRtaV95Y2JjcjQyMF9zdXBwb3J0ZWQ7CiBi
b29sIGRwX3ljYmNyNDIwX3N1cHBvcnRlZDsKfTsKCnVuaW9uIGRwY2RfcHNyX2NvbmZpZ3VyYXRp
b24gewogc3RydWN0IHsKICB1bnNpZ25lZCBjaGFyIEVOQUJMRSA6IDE7CiAgdW5zaWduZWQgY2hh
ciBUUkFOU01JVFRFUl9BQ1RJVkVfSU5fUFNSIDogMTsKICB1bnNpZ25lZCBjaGFyIENSQ19WRVJJ
RklDQVRJT04gOiAxOwogIHVuc2lnbmVkIGNoYXIgRlJBTUVfQ0FQVFVSRV9JTkRJQ0FUSU9OIDog
MTsKCiAgdW5zaWduZWQgY2hhciBMSU5FX0NBUFRVUkVfSU5ESUNBVElPTiA6IDE7CgogIHVuc2ln
bmVkIGNoYXIgSVJRX0hQRF9XSVRIX0NSQ19FUlJPUiA6IDE7CiAgdW5zaWduZWQgY2hhciBSRVNF
UlZFRCA6IDI7CiB9IGJpdHM7CiB1bnNpZ25lZCBjaGFyIHJhdzsKfTsKCnVuaW9uIHBzcl9lcnJv
cl9zdGF0dXMgewogc3RydWN0IHsKICB1bnNpZ25lZCBjaGFyIExJTktfQ1JDX0VSUk9SIDoxOwog
IHVuc2lnbmVkIGNoYXIgUkZCX1NUT1JBR0VfRVJST1IgOjE7CiAgdW5zaWduZWQgY2hhciBSRVNF
UlZFRCA6NjsKIH0gYml0czsKIHVuc2lnbmVkIGNoYXIgcmF3Owp9OwoKdW5pb24gcHNyX3Npbmtf
cHNyX3N0YXR1cyB7CiBzdHJ1Y3QgewogdW5zaWduZWQgY2hhciBTSU5LX1NFTEZfUkVGUkVTSF9T
VEFUVVMgOjM7CiB1bnNpZ25lZCBjaGFyIFJFU0VSVkVEIDo1OwogfSBiaXRzOwogdW5zaWduZWQg
Y2hhciByYXc7Cn07CgpzdHJ1Y3QgbGlua19lbmNvZGVyIHsKIGNvbnN0IHN0cnVjdCBsaW5rX2Vu
Y29kZXJfZnVuY3MgKmZ1bmNzOwogaW50MzJfdCBhdXhfY2hhbm5lbF9vZmZzZXQ7CiBzdHJ1Y3Qg
ZGNfY29udGV4dCAqY3R4Owogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBpZDsKIHN0cnVjdCBn
cmFwaGljc19vYmplY3RfaWQgY29ubmVjdG9yOwogdWludDMyX3Qgb3V0cHV0X3NpZ25hbHM7CiBl
bnVtIGVuZ2luZV9pZCBwcmVmZXJyZWRfZW5naW5lOwogc3RydWN0IGVuY29kZXJfZmVhdHVyZV9z
dXBwb3J0IGZlYXR1cmVzOwogZW51bSB0cmFuc21pdHRlciB0cmFuc21pdHRlcjsKIGVudW0gaHBk
X3NvdXJjZV9pZCBocGRfc291cmNlOwogYm9vbCB1c2JjX2NvbWJvX3BoeTsKfTsKCnN0cnVjdCBs
aW5rX2VuY19zdGF0ZSB7CgogIHVpbnQzMl90IGRwaHlfZmVjX2VuOwogIHVpbnQzMl90IGRwaHlf
ZmVjX3JlYWR5X3NoYWRvdzsKICB1aW50MzJfdCBkcGh5X2ZlY19hY3RpdmVfc3RhdHVzOwogIHVp
bnQzMl90IGRwX2xpbmtfdHJhaW5pbmdfY29tcGxldGU7Cgp9OwoKc3RydWN0IGxpbmtfZW5jb2Rl
cl9mdW5jcyB7CiB2b2lkICgqcmVhZF9zdGF0ZSkoCiAgIHN0cnVjdCBsaW5rX2VuY29kZXIgKmVu
Yywgc3RydWN0IGxpbmtfZW5jX3N0YXRlICpzKTsKIGJvb2wgKCp2YWxpZGF0ZV9vdXRwdXRfd2l0
aF9zdHJlYW0pKAogIHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYywgY29uc3Qgc3RydWN0IGRjX3N0
cmVhbV9zdGF0ZSAqc3RyZWFtKTsKIHZvaWQgKCpod19pbml0KShzdHJ1Y3QgbGlua19lbmNvZGVy
ICplbmMpOwogdm9pZCAoKnNldHVwKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMsCiAgZW51bSBz
aWduYWxfdHlwZSBzaWduYWwpOwogdm9pZCAoKmVuYWJsZV90bWRzX291dHB1dCkoc3RydWN0IGxp
bmtfZW5jb2RlciAqZW5jLAogIGVudW0gY2xvY2tfc291cmNlX2lkIGNsb2NrX3NvdXJjZSwKICBl
bnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRoLAogIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFs
LAogIHVpbnQzMl90IHBpeGVsX2Nsb2NrKTsKIHZvaWQgKCplbmFibGVfZHBfb3V0cHV0KShzdHJ1
Y3QgbGlua19lbmNvZGVyICplbmMsCiAgY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxp
bmtfc2V0dGluZ3MsCiAgZW51bSBjbG9ja19zb3VyY2VfaWQgY2xvY2tfc291cmNlKTsKIHZvaWQg
KCplbmFibGVfZHBfbXN0X291dHB1dCkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAogIGNvbnN0
IHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmdzLAogIGVudW0gY2xvY2tfc291
cmNlX2lkIGNsb2NrX3NvdXJjZSk7CiB2b2lkICgqZW5hYmxlX2x2ZHNfb3V0cHV0KShzdHJ1Y3Qg
bGlua19lbmNvZGVyICplbmMsCiAgZW51bSBjbG9ja19zb3VyY2VfaWQgY2xvY2tfc291cmNlLAog
IHVpbnQzMl90IHBpeGVsX2Nsb2NrKTsKIHZvaWQgKCpkaXNhYmxlX291dHB1dCkoc3RydWN0IGxp
bmtfZW5jb2RlciAqbGlua19lbmMsCiAgZW51bSBzaWduYWxfdHlwZSBzaWduYWwpOwogdm9pZCAo
KmRwX3NldF9sYW5lX3NldHRpbmdzKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMsCiAgY29uc3Qg
c3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3MgKmxpbmtfc2V0dGluZ3MpOwogdm9pZCAoKmRw
X3NldF9waHlfcGF0dGVybikoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAogIGNvbnN0IHN0cnVj
dCBlbmNvZGVyX3NldF9kcF9waHlfcGF0dGVybl9wYXJhbSAqcGFyYSk7CiB2b2lkICgqdXBkYXRl
X21zdF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZSkoCiAgc3RydWN0IGxpbmtfZW5jb2RlciAqZW5j
LAogIGNvbnN0IHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZSAqdGFibGUp
Owogdm9pZCAoKnBzcl9wcm9ncmFtX2RwX2RwaHlfZmFzdF90cmFpbmluZykoc3RydWN0IGxpbmtf
ZW5jb2RlciAqZW5jLAogICBib29sIGV4aXRfbGlua190cmFpbmluZ19yZXF1aXJlZCk7CiB2b2lk
ICgqcHNyX3Byb2dyYW1fc2Vjb25kYXJ5X3BhY2tldCkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5j
LAogICAgdW5zaWduZWQgaW50IHNkcF90cmFuc21pdF9saW5lX251bV9kZWFkbGluZSk7CiB2b2lk
ICgqY29ubmVjdF9kaWdfYmVfdG9fZmUpKHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYywKICBlbnVt
IGVuZ2luZV9pZCBlbmdpbmUsCiAgYm9vbCBjb25uZWN0KTsKIHZvaWQgKCplbmFibGVfaHBkKShz
dHJ1Y3QgbGlua19lbmNvZGVyICplbmMpOwogdm9pZCAoKmRpc2FibGVfaHBkKShzdHJ1Y3QgbGlu
a19lbmNvZGVyICplbmMpOwogYm9vbCAoKmlzX2RpZ19lbmFibGVkKShzdHJ1Y3QgbGlua19lbmNv
ZGVyICplbmMpOwogdW5zaWduZWQgaW50ICgqZ2V0X2RpZ19mcm9udGVuZCkoc3RydWN0IGxpbmtf
ZW5jb2RlciAqZW5jKTsKIHZvaWQgKCpkZXN0cm95KShzdHJ1Y3QgbGlua19lbmNvZGVyICoqZW5j
KTsKCiB2b2lkICgqZmVjX3NldF9lbmFibGUpKHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYywKICBi
b29sIGVuYWJsZSk7Cgogdm9pZCAoKmZlY19zZXRfcmVhZHkpKHN0cnVjdCBsaW5rX2VuY29kZXIg
KmVuYywKICBib29sIHJlYWR5KTsKCiBib29sICgqZmVjX2lzX2FjdGl2ZSkoc3RydWN0IGxpbmtf
ZW5jb2RlciAqZW5jKTsKIGJvb2wgKCppc19pbl9hbHRfbW9kZSkgKHN0cnVjdCBsaW5rX2VuY29k
ZXIgKmVuYyk7Cgogdm9pZCAoKmdldF9tYXhfbGlua19jYXApKHN0cnVjdCBsaW5rX2VuY29kZXIg
KmVuYywKICBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5ncyk7CgogZW51bSBz
aWduYWxfdHlwZSAoKmdldF9kaWdfbW9kZSkoCiAgc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKTsK
fTsKIyAzMyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9o
d19zZXF1ZW5jZXIuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvY29yZV9zdGF0dXMuaCIgMQojIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfc3RhdHVzLmgiCmVudW0gZGNfc3RhdHVzIHsK
IERDX09LID0gMSwKCiBEQ19OT19DT05UUk9MTEVSX1JFU09VUkNFID0gMiwKIERDX05PX1NUUkVB
TV9FTkNfUkVTT1VSQ0UgPSAzLAogRENfTk9fQ0xPQ0tfU09VUkNFX1JFU09VUkNFID0gNCwKIERD
X0ZBSUxfQ09OVFJPTExFUl9WQUxJREFURSA9IDUsCiBEQ19GQUlMX0VOQ19WQUxJREFURSA9IDYs
CiBEQ19GQUlMX0FUVEFDSF9TVVJGQUNFUyA9IDcsCiBEQ19GQUlMX0RFVEFDSF9TVVJGQUNFUyA9
IDgsCiBEQ19GQUlMX1NVUkZBQ0VfVkFMSURBVEUgPSA5LAogRENfTk9fRFBfTElOS19CQU5EV0lE
VEggPSAxMCwKIERDX0VYQ0VFRF9ET05HTEVfQ0FQID0gMTEsCiBEQ19TVVJGQUNFX1BJWEVMX0ZP
Uk1BVF9VTlNVUFBPUlRFRCA9IDEyLAogRENfRkFJTF9CQU5EV0lEVEhfVkFMSURBVEUgPSAxMywK
IERDX0ZBSUxfU0NBTElORyA9IDE0LAogRENfRkFJTF9EUF9MSU5LX1RSQUlOSU5HID0gMTUsCiBE
Q19GQUlMX0RTQ19WQUxJREFURSA9IDE2LAogRENfTk9fRFNDX1JFU09VUkNFID0gMTcsCiBEQ19G
QUlMX1VOU1VQUE9SVEVEXzEgPSAxOCwKIERDX0ZBSUxfQ0xLX0VYQ0VFRF9NQVggPSAyMSwKIERD
X0ZBSUxfQ0xLX0JFTE9XX01JTiA9IDIyLAogRENfRkFJTF9DTEtfQkVMT1dfQ0ZHX1JFUVVJUkVE
ID0gMjMsCgogRENfRVJST1JfVU5FWFBFQ1RFRCA9IC0xCn07CiMgMzQgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHdfc2VxdWVuY2VyLmgiIDIKCmVudW0g
dmxpbmVfc2VsZWN0IHsKIFZMSU5FMCwKIFZMSU5FMQp9OwoKc3RydWN0IHBpcGVfY3R4OwpzdHJ1
Y3QgZGNfc3RhdGU7CnN0cnVjdCBkY19zdHJlYW1fc3RhdHVzOwpzdHJ1Y3QgZGNfd3JpdGViYWNr
X2luZm87CnN0cnVjdCBkY2h1Yl9pbml0X2RhdGE7CnN0cnVjdCBkY19zdGF0aWNfc2NyZWVuX3Bh
cmFtczsKc3RydWN0IHJlc291cmNlX3Bvb2w7CnN0cnVjdCBkY19waHlfYWRkcl9zcGFjZV9jb25m
aWc7CnN0cnVjdCBkY192aXJ0dWFsX2FkZHJfc3BhY2VfY29uZmlnOwpzdHJ1Y3QgZHBwOwpzdHJ1
Y3QgZGNlX2h3c2VxOwoKc3RydWN0IGh3X3NlcXVlbmNlcl9mdW5jcyB7Cgogdm9pZCAoKmVkcF9w
b3dlcl9jb250cm9sKShzdHJ1Y3QgZGNfbGluayAqbGluaywgYm9vbCBlbmFibGUpOwogdm9pZCAo
KmVkcF93YWl0X2Zvcl9ocGRfcmVhZHkpKHN0cnVjdCBkY19saW5rICpsaW5rLCBib29sIHBvd2Vy
X3VwKTsKCgogdm9pZCAoKmluaXRfaHcpKHN0cnVjdCBkYyAqZGMpOwogdm9pZCAoKmVuYWJsZV9h
Y2NlbGVyYXRlZF9tb2RlKShzdHJ1Y3QgZGMgKmRjLAogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRl
eHQpOwogZW51bSBkY19zdGF0dXMgKCphcHBseV9jdHhfdG9faHcpKHN0cnVjdCBkYyAqZGMsCiAg
IHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CiB2b2lkICgqZGlzYWJsZV9wbGFuZSkoc3RydWN0
IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiB2b2lkICgqYXBwbHlfY3R4X2Zv
cl9zdXJmYWNlKShzdHJ1Y3QgZGMgKmRjLAogICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRl
ICpzdHJlYW0sCiAgIGludCBudW1fcGxhbmVzLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwog
dm9pZCAoKnByb2dyYW1fZnJvbnRfZW5kX2Zvcl9jdHgpKHN0cnVjdCBkYyAqZGMsCiAgIHN0cnVj
dCBkY19zdGF0ZSAqY29udGV4dCk7CiB2b2lkICgqdXBkYXRlX3BsYW5lX2FkZHIpKGNvbnN0IHN0
cnVjdCBkYyAqZGMsCiAgIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogdm9pZCAoKnVwZGF0
ZV9kY2h1Yikoc3RydWN0IGRjZV9od3NlcSAqaHdzLAogICBzdHJ1Y3QgZGNodWJfaW5pdF9kYXRh
ICpkaF9kYXRhKTsKIHZvaWQgKCp3YWl0X2Zvcl9tcGNjX2Rpc2Nvbm5lY3QpKHN0cnVjdCBkYyAq
ZGMsCiAgIHN0cnVjdCByZXNvdXJjZV9wb29sICpyZXNfcG9vbCwKICAgc3RydWN0IHBpcGVfY3R4
ICpwaXBlX2N0eCk7CiB2b2lkICgqcHJvZ3JhbV90cmlwbGVidWZmZXIpKGNvbnN0IHN0cnVjdCBk
YyAqZGMsCiAgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgYm9vbCBlbmFibGVUcmlwbGVCdWZm
ZXIpOwogdm9pZCAoKnVwZGF0ZV9wZW5kaW5nX3N0YXR1cykoc3RydWN0IHBpcGVfY3R4ICpwaXBl
X2N0eCk7CgoKIHZvaWQgKCpwaXBlX2NvbnRyb2xfbG9ja19nbG9iYWwpKHN0cnVjdCBkYyAqZGMs
CiAgIHN0cnVjdCBwaXBlX2N0eCAqcGlwZSwgYm9vbCBsb2NrKTsKIHZvaWQgKCpwaXBlX2NvbnRy
b2xfbG9jaykoc3RydWN0IGRjICpkYywKICAgc3RydWN0IHBpcGVfY3R4ICpwaXBlLCBib29sIGxv
Y2spOwogdm9pZCAoKnNldF9mbGlwX2NvbnRyb2xfZ3NsKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVf
Y3R4LAogICBib29sIGZsaXBfaW1tZWRpYXRlKTsKCgogdm9pZCAoKmdldF9wb3NpdGlvbikoc3Ry
dWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsIGludCBudW1fcGlwZXMsCiAgIHN0cnVjdCBjcnRjX3Bv
c2l0aW9uICpwb3NpdGlvbik7CiBpbnQgKCpnZXRfdnVwZGF0ZV9vZmZzZXRfZnJvbV92c3luYyko
c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiB2b2lkICgqZW5hYmxlX3Blcl9mcmFtZV9jcnRj
X3Bvc2l0aW9uX3Jlc2V0KShzdHJ1Y3QgZGMgKmRjLAogICBpbnQgZ3JvdXBfc2l6ZSwgc3RydWN0
IHBpcGVfY3R4ICpncm91cGVkX3BpcGVzW10pOwogdm9pZCAoKmVuYWJsZV90aW1pbmdfc3luY2hy
b25pemF0aW9uKShzdHJ1Y3QgZGMgKmRjLAogICBpbnQgZ3JvdXBfaW5kZXgsIGludCBncm91cF9z
aXplLAogICBzdHJ1Y3QgcGlwZV9jdHggKmdyb3VwZWRfcGlwZXNbXSk7CiB2b2lkICgqc2V0dXBf
cGVyaW9kaWNfaW50ZXJydXB0KShzdHJ1Y3QgZGMgKmRjLAogICBzdHJ1Y3QgcGlwZV9jdHggKnBp
cGVfY3R4LAogICBlbnVtIHZsaW5lX3NlbGVjdCB2bGluZSk7CiB2b2lkICgqc2V0X2Rycikoc3Ry
dWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsIGludCBudW1fcGlwZXMsCiAgIHVuc2lnbmVkIGludCB2
bWluLCB1bnNpZ25lZCBpbnQgdm1heCwKICAgdW5zaWduZWQgaW50IHZtaWQsIHVuc2lnbmVkIGlu
dCB2bWlkX2ZyYW1lX251bWJlcik7CiB2b2lkICgqc2V0X3N0YXRpY19zY3JlZW5fY29udHJvbCko
c3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCiAgIGludCBudW1fcGlwZXMsCiAgIGNvbnN0IHN0
cnVjdCBkY19zdGF0aWNfc2NyZWVuX3BhcmFtcyAqZXZlbnRzKTsKCgogdm9pZCAoKmVuYWJsZV9z
dHJlYW0pKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogdm9pZCAoKmRpc2FibGVfc3RyZWFt
KShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIHZvaWQgKCpibGFua19zdHJlYW0pKHN0cnVj
dCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogdm9pZCAoKnVuYmxhbmtfc3RyZWFtKShzdHJ1Y3QgcGlw
ZV9jdHggKnBpcGVfY3R4LAogICBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5n
cyk7CgoKIHZvaWQgKCpwcmVwYXJlX2JhbmR3aWR0aCkoc3RydWN0IGRjICpkYywgc3RydWN0IGRj
X3N0YXRlICpjb250ZXh0KTsKIGJvb2wgKCp1cGRhdGVfYmFuZHdpZHRoKShzdHJ1Y3QgZGMgKmRj
LCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwogdm9pZCAoKm9wdGltaXplX2JhbmR3aWR0aCko
c3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKCgogdm9pZCAoKnNldF9h
dm11dGUpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGJvb2wgZW5hYmxlKTsKIHZvaWQgKCpz
ZW5kX2ltbWVkaWF0ZV9zZHBfbWVzc2FnZSkoCiAgIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgs
CiAgIGNvbnN0IHVpbnQ4X3QgKmN1c3RvbV9zZHBfbWVzc2FnZSwKICAgdW5zaWduZWQgaW50IHNk
cF9tZXNzYWdlX3NpemUpOwogdm9pZCAoKnVwZGF0ZV9pbmZvX2ZyYW1lKShzdHJ1Y3QgcGlwZV9j
dHggKnBpcGVfY3R4KTsKIHZvaWQgKCpzZXRfZG1kYXRhX2F0dHJpYnV0ZXMpKHN0cnVjdCBwaXBl
X2N0eCAqcGlwZSk7CiB2b2lkICgqcHJvZ3JhbV9kbWRhdGFfZW5naW5lKShzdHJ1Y3QgcGlwZV9j
dHggKnBpcGVfY3R4KTsKIGJvb2wgKCpkbWRhdGFfc3RhdHVzX2RvbmUpKHN0cnVjdCBwaXBlX2N0
eCAqcGlwZV9jdHgpOwoKCiB2b2lkICgqc2V0X2N1cnNvcl9wb3NpdGlvbikoc3RydWN0IHBpcGVf
Y3R4ICpwaXBlKTsKIHZvaWQgKCpzZXRfY3Vyc29yX2F0dHJpYnV0ZSkoc3RydWN0IHBpcGVfY3R4
ICpwaXBlKTsKIHZvaWQgKCpzZXRfY3Vyc29yX3Nkcl93aGl0ZV9sZXZlbCkoc3RydWN0IHBpcGVf
Y3R4ICpwaXBlKTsKCgogdm9pZCAoKnByb2dyYW1fZ2FtdXRfcmVtYXApKHN0cnVjdCBwaXBlX2N0
eCAqcGlwZV9jdHgpOwogdm9pZCAoKnByb2dyYW1fb3V0cHV0X2NzYykoc3RydWN0IGRjICpkYywg
c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKICAgZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcnNw
YWNlLAogICB1aW50MTZfdCAqbWF0cml4LCBpbnQgb3BwX2lkKTsKCgogaW50ICgqaW5pdF9zeXNf
Y3R4KShzdHJ1Y3QgZGNlX2h3c2VxICpod3MsCiAgIHN0cnVjdCBkYyAqZGMsCiAgIHN0cnVjdCBk
Y19waHlfYWRkcl9zcGFjZV9jb25maWcgKnBhX2NvbmZpZyk7CiB2b2lkICgqaW5pdF92bV9jdHgp
KHN0cnVjdCBkY2VfaHdzZXEgKmh3cywKICAgc3RydWN0IGRjICpkYywKICAgc3RydWN0IGRjX3Zp
cnR1YWxfYWRkcl9zcGFjZV9jb25maWcgKnZhX2NvbmZpZywKICAgaW50IHZtaWQpOwoKCiB2b2lk
ICgqdXBkYXRlX3dyaXRlYmFjaykoc3RydWN0IGRjICpkYywKICAgc3RydWN0IGRjX3dyaXRlYmFj
a19pbmZvICp3Yl9pbmZvLAogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwogdm9pZCAoKmVu
YWJsZV93cml0ZWJhY2spKHN0cnVjdCBkYyAqZGMsCiAgIHN0cnVjdCBkY193cml0ZWJhY2tfaW5m
byAqd2JfaW5mbywKICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKIHZvaWQgKCpkaXNhYmxl
X3dyaXRlYmFjaykoc3RydWN0IGRjICpkYywKICAgdW5zaWduZWQgaW50IGR3Yl9waXBlX2luc3Qp
OwoKIGJvb2wgKCptbWh1YmJ1Yl93YXJtdXApKHN0cnVjdCBkYyAqZGMsCiAgIHVuc2lnbmVkIGlu
dCBudW1fZHdiLAogICBzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8gKndiX2luZm8pOwoKCiBlbnVt
IGRjX3N0YXR1cyAoKnNldF9jbG9jaykoc3RydWN0IGRjICpkYywKICAgZW51bSBkY19jbG9ja190
eXBlIGNsb2NrX3R5cGUsCiAgIHVpbnQzMl90IGNsa19raHosIHVpbnQzMl90IHN0ZXBwaW5nKTsK
IHZvaWQgKCpnZXRfY2xvY2spKHN0cnVjdCBkYyAqZGMsIGVudW0gZGNfY2xvY2tfdHlwZSBjbG9j
a190eXBlLAogICBzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpOwogdm9pZCAoKm9w
dGltaXplX3B3cl9zdGF0ZSkoY29uc3Qgc3RydWN0IGRjICpkYywKICAgc3RydWN0IGRjX3N0YXRl
ICpjb250ZXh0KTsKIHZvaWQgKCpleGl0X29wdGltaXplZF9wd3Jfc3RhdGUpKGNvbnN0IHN0cnVj
dCBkYyAqZGMsCiAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CgoKIHZvaWQgKCplbmFibGVf
YXVkaW9fc3RyZWFtKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIHZvaWQgKCpkaXNhYmxl
X2F1ZGlvX3N0cmVhbSkoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CgoKIHZvaWQgKCpzZXR1
cF9zdGVyZW8pKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIHN0cnVjdCBkYyAqZGMpOwoKCiB2
b2lkICgqbG9nX2h3X3N0YXRlKShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfbG9nX2J1ZmZlcl9j
dHggKmxvZ19jdHgpOwogdm9pZCAoKmdldF9od19zdGF0ZSkoc3RydWN0IGRjICpkYywgY2hhciAq
cEJ1ZiwKICAgdW5zaWduZWQgaW50IGJ1ZlNpemUsIHVuc2lnbmVkIGludCBtYXNrKTsKIHZvaWQg
KCpjbGVhcl9zdGF0dXNfYml0cykoc3RydWN0IGRjICpkYywgdW5zaWduZWQgaW50IG1hc2spOwoK
Cn07Cgp2b2lkIGNvbG9yX3NwYWNlX3RvX2JsYWNrX2NvbG9yKAogY29uc3Qgc3RydWN0IGRjICpk
YywKIGVudW0gZGNfY29sb3Jfc3BhY2UgY29sb3JzcGFjZSwKIHN0cnVjdCB0Z19jb2xvciAqYmxh
Y2tfY29sb3IpOwoKYm9vbCBod3NzX3dhaXRfZm9yX2JsYW5rX2NvbXBsZXRlKAogIHN0cnVjdCB0
aW1pbmdfZ2VuZXJhdG9yICp0Zyk7Cgpjb25zdCB1aW50MTZfdCAqZmluZF9jb2xvcl9tYXRyaXgo
CiAgZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcl9zcGFjZSwKICB1aW50MzJfdCAqYXJyYXlfc2l6
ZSk7CiMgMzggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5o
IiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9j
b21wcmVzc29yLmgiIDEKIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2luYy9jb21wcmVzc29yLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfaW50ZXJmYWNlLmgiIDEKIyAyOSAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJf
aW50ZXJmYWNlLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2RjX2Jpb3NfdHlwZXMuaCIgMQojIDQxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZGNfYmlvc190eXBlcy5oIgpzdHJ1Y3QgZGNfdmJpb3NfZnVuY3Mgewog
dWludDhfdCAoKmdldF9jb25uZWN0b3JzX251bWJlcikoc3RydWN0IGRjX2Jpb3MgKmJpb3MpOwoK
IHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgKCpnZXRfY29ubmVjdG9yX2lkKSgKICBzdHJ1Y3Qg
ZGNfYmlvcyAqYmlvcywKICB1aW50OF90IGNvbm5lY3Rvcl9pbmRleCk7CiBlbnVtIGJwX3Jlc3Vs
dCAoKmdldF9zcmNfb2JqKSgKICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKICBzdHJ1Y3QgZ3JhcGhp
Y3Nfb2JqZWN0X2lkIG9iamVjdF9pZCwgdWludDMyX3QgaW5kZXgsCiAgc3RydWN0IGdyYXBoaWNz
X29iamVjdF9pZCAqc3JjX29iamVjdF9pZCk7CiBlbnVtIGJwX3Jlc3VsdCAoKmdldF9pMmNfaW5m
bykoCiAgc3RydWN0IGRjX2Jpb3MgKmRjYiwKICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlk
LAogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaTJjX2luZm8gKmluZm8pOwogZW51bSBicF9yZXN1
bHQgKCpnZXRfaHBkX2luZm8pKAogIHN0cnVjdCBkY19iaW9zICpiaW9zLAogIHN0cnVjdCBncmFw
aGljc19vYmplY3RfaWQgaWQsCiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9ocGRfaW5mbyAqaW5m
byk7CiBlbnVtIGJwX3Jlc3VsdCAoKmdldF9kZXZpY2VfdGFnKSgKICBzdHJ1Y3QgZGNfYmlvcyAq
YmlvcywKICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGNvbm5lY3Rvcl9vYmplY3RfaWQsCiAg
dWludDMyX3QgZGV2aWNlX3RhZ19pbmRleCwKICBzdHJ1Y3QgY29ubmVjdG9yX2RldmljZV90YWdf
aW5mbyAqaW5mbyk7CiBlbnVtIGJwX3Jlc3VsdCAoKmdldF9zcHJlYWRfc3BlY3RydW1faW5mbyko
CiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAgZW51bSBhc19zaWduYWxfdHlwZSBzaWduYWwsCiAg
dWludDMyX3QgaW5kZXgsCiAgc3RydWN0IHNwcmVhZF9zcGVjdHJ1bV9pbmZvICpzc19pbmZvKTsK
IHVpbnQzMl90ICgqZ2V0X3NzX2VudHJ5X251bWJlcikoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3Ms
CiAgZW51bSBhc19zaWduYWxfdHlwZSBzaWduYWwpOwogZW51bSBicF9yZXN1bHQgKCpnZXRfZW1i
ZWRkZWRfcGFuZWxfaW5mbykoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAgc3RydWN0IGVtYmVk
ZGVkX3BhbmVsX2luZm8gKmluZm8pOwogZW51bSBicF9yZXN1bHQgKCpnZXRfZ3Bpb19waW5faW5m
bykoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAgdWludDMyX3QgZ3Bpb19pZCwKICBzdHJ1Y3Qg
Z3Bpb19waW5faW5mbyAqaW5mbyk7CiBlbnVtIGJwX3Jlc3VsdCAoKmdldF9lbmNvZGVyX2NhcF9p
bmZvKSgKICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lk
IG9iamVjdF9pZCwKICBzdHJ1Y3QgYnBfZW5jb2Rlcl9jYXBfaW5mbyAqaW5mbyk7CgogYm9vbCAo
KmlzX2FjY2VsZXJhdGVkX21vZGUpKAogIHN0cnVjdCBkY19iaW9zICpiaW9zKTsKIHZvaWQgKCpz
ZXRfc2NyYXRjaF9jcml0aWNhbF9zdGF0ZSkoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAgYm9v
bCBzdGF0ZSk7CiBib29sICgqaXNfZGV2aWNlX2lkX3N1cHBvcnRlZCkoCiAgc3RydWN0IGRjX2Jp
b3MgKmJpb3MsCiAgc3RydWN0IGRldmljZV9pZCBpZCk7CgoKCiBlbnVtIGJwX3Jlc3VsdCAoKmVu
Y29kZXJfY29udHJvbCkoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAgc3RydWN0IGJwX2VuY29k
ZXJfY29udHJvbCAqY250bCk7CiBlbnVtIGJwX3Jlc3VsdCAoKnRyYW5zbWl0dGVyX2NvbnRyb2wp
KAogIHN0cnVjdCBkY19iaW9zICpiaW9zLAogIHN0cnVjdCBicF90cmFuc21pdHRlcl9jb250cm9s
ICpjbnRsKTsKIGVudW0gYnBfcmVzdWx0ICgqZW5hYmxlX2NydGMpKAogIHN0cnVjdCBkY19iaW9z
ICpiaW9zLAogIGVudW0gY29udHJvbGxlcl9pZCBpZCwKICBib29sIGVuYWJsZSk7CiBlbnVtIGJw
X3Jlc3VsdCAoKmFkanVzdF9waXhlbF9jbG9jaykoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAg
c3RydWN0IGJwX2FkanVzdF9waXhlbF9jbG9ja19wYXJhbWV0ZXJzICpicF9wYXJhbXMpOwogZW51
bSBicF9yZXN1bHQgKCpzZXRfcGl4ZWxfY2xvY2spKAogIHN0cnVjdCBkY19iaW9zICpiaW9zLAog
IHN0cnVjdCBicF9waXhlbF9jbG9ja19wYXJhbWV0ZXJzICpicF9wYXJhbXMpOwogZW51bSBicF9y
ZXN1bHQgKCpzZXRfZGNlX2Nsb2NrKSgKICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKICBzdHJ1Y3Qg
YnBfc2V0X2RjZV9jbG9ja19wYXJhbWV0ZXJzICpicF9wYXJhbXMpOwogZW51bSBicF9yZXN1bHQg
KCplbmFibGVfc3ByZWFkX3NwZWN0cnVtX29uX3BwbGwpKAogIHN0cnVjdCBkY19iaW9zICpiaW9z
LAogIHN0cnVjdCBicF9zcHJlYWRfc3BlY3RydW1fcGFyYW1ldGVycyAqYnBfcGFyYW1zLAogIGJv
b2wgZW5hYmxlKTsKIGVudW0gYnBfcmVzdWx0ICgqcHJvZ3JhbV9jcnRjX3RpbWluZykoCiAgc3Ry
dWN0IGRjX2Jpb3MgKmJpb3MsCiAgc3RydWN0IGJwX2h3X2NydGNfdGltaW5nX3BhcmFtZXRlcnMg
KmJwX3BhcmFtcyk7CiBlbnVtIGJwX3Jlc3VsdCAoKnByb2dyYW1fZGlzcGxheV9lbmdpbmVfcGxs
KSgKICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKICBzdHJ1Y3QgYnBfcGl4ZWxfY2xvY2tfcGFyYW1l
dGVycyAqYnBfcGFyYW1zKTsKIGVudW0gYnBfcmVzdWx0ICgqZW5hYmxlX2Rpc3BfcG93ZXJfZ2F0
aW5nKSgKICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKICBlbnVtIGNvbnRyb2xsZXJfaWQgY29udHJv
bGxlcl9pZCwKICBlbnVtIGJwX3BpcGVfY29udHJvbF9hY3Rpb24gYWN0aW9uKTsKCiB2b2lkICgq
Ymlvc19wYXJzZXJfZGVzdHJveSkoc3RydWN0IGRjX2Jpb3MgKipkY2IpOwoKIGVudW0gYnBfcmVz
dWx0ICgqZ2V0X2JvYXJkX2xheW91dF9pbmZvKSgKICBzdHJ1Y3QgZGNfYmlvcyAqZGNiLAogIHN0
cnVjdCBib2FyZF9sYXlvdXRfaW5mbyAqYm9hcmRfbGF5b3V0X2luZm8pOwp9OwoKc3RydWN0IGJp
b3NfcmVnaXN0ZXJzIHsKIHVpbnQzMl90IEJJT1NfU0NSQVRDSF8zOwogdWludDMyX3QgQklPU19T
Q1JBVENIXzY7Cn07CgpzdHJ1Y3QgZGNfYmlvcyB7CiBjb25zdCBzdHJ1Y3QgZGNfdmJpb3NfZnVu
Y3MgKmZ1bmNzOwoKIHVpbnQ4X3QgKmJpb3M7CiB1aW50MzJfdCBiaW9zX3NpemU7CgogdWludDhf
dCAqYmlvc19sb2NhbF9pbWFnZTsKCiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwogY29uc3Qgc3Ry
dWN0IGJpb3NfcmVnaXN0ZXJzICpyZWdzOwogc3RydWN0IGludGVncmF0ZWRfaW5mbyAqaW50ZWdy
YXRlZF9pbmZvOwogc3RydWN0IGRjX2Zpcm13YXJlX2luZm8gZndfaW5mbzsKIGJvb2wgZndfaW5m
b192YWxpZDsKfTsKIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2luY2x1ZGUvYmlvc19wYXJzZXJfaW50ZXJmYWNlLmgiIDIKCnN0cnVjdCBiaW9zX3BhcnNlcjsK
CnN0cnVjdCBicF9pbml0X2RhdGEgewogc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKIHVpbnQ4X3Qg
KmJpb3M7Cn07CgpzdHJ1Y3QgZGNfYmlvcyAqZGFsX2Jpb3NfcGFyc2VyX2NyZWF0ZSgKIHN0cnVj
dCBicF9pbml0X2RhdGEgKmluaXQsCiBlbnVtIGRjZV92ZXJzaW9uIGRjZV92ZXJzaW9uKTsKCnZv
aWQgZGFsX2Jpb3NfcGFyc2VyX2Rlc3Ryb3koc3RydWN0IGRjX2Jpb3MgKipkY2IpOwojIDMxICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvbXByZXNzb3Iu
aCIgMgoKZW51bSBmYmNfY29tcHJlc3NfcmF0aW8gewogRkJDX0NPTVBSRVNTX1JBVElPX0lOVkFM
SUQgPSAwLAogRkJDX0NPTVBSRVNTX1JBVElPXzFUTzEgPSAxLAogRkJDX0NPTVBSRVNTX1JBVElP
XzJUTzEgPSAyLAogRkJDX0NPTVBSRVNTX1JBVElPXzRUTzEgPSA0LAogRkJDX0NPTVBSRVNTX1JB
VElPXzhUTzEgPSA4LAp9OwoKdW5pb24gZmJjX3BoeXNpY2FsX2FkZHJlc3Mgewogc3RydWN0IHsK
ICB1aW50MzJfdCBsb3dfcGFydDsKICBpbnQzMl90IGhpZ2hfcGFydDsKIH0gYWRkcjsKIHVpbnQ2
NF90IHF1YWRfcGFydDsKfTsKCnN0cnVjdCBjb21wcl9hZGRyX2FuZF9waXRjaF9wYXJhbXMgewoK
IHVpbnQzMl90IGluc3Q7CiB1aW50MzJfdCBzb3VyY2Vfdmlld193aWR0aDsKIHVpbnQzMl90IHNv
dXJjZV92aWV3X2hlaWdodDsKfTsKCmVudW0gZmJjX2h3X21heF9yZXNvbHV0aW9uX3N1cHBvcnRl
ZCB7CiBGQkNfTUFYX1ggPSAzODQwLAogRkJDX01BWF9ZID0gMjQwMCwKIEZCQ19NQVhfWF9TRyA9
IDE5MjAsCiBGQkNfTUFYX1lfU0cgPSAxMDgwLAp9OwoKc3RydWN0IGNvbXByZXNzb3I7CgpzdHJ1
Y3QgY29tcHJlc3Nvcl9mdW5jcyB7Cgogdm9pZCAoKnBvd2VyX3VwX2ZiYykoc3RydWN0IGNvbXBy
ZXNzb3IgKmNwKTsKIHZvaWQgKCplbmFibGVfZmJjKShzdHJ1Y3QgY29tcHJlc3NvciAqY3AsCiAg
c3RydWN0IGNvbXByX2FkZHJfYW5kX3BpdGNoX3BhcmFtcyAqcGFyYW1zKTsKIHZvaWQgKCpkaXNh
YmxlX2ZiYykoc3RydWN0IGNvbXByZXNzb3IgKmNwKTsKIHZvaWQgKCpzZXRfZmJjX2ludmFsaWRh
dGlvbl90cmlnZ2Vycykoc3RydWN0IGNvbXByZXNzb3IgKmNwLAogIHVpbnQzMl90IGZiY190cmln
Z2VyKTsKIHZvaWQgKCpzdXJmYWNlX2FkZHJlc3NfYW5kX3BpdGNoKSgKICBzdHJ1Y3QgY29tcHJl
c3NvciAqY3AsCiAgc3RydWN0IGNvbXByX2FkZHJfYW5kX3BpdGNoX3BhcmFtcyAqcGFyYW1zKTsK
IGJvb2wgKCppc19mYmNfZW5hYmxlZF9pbl9odykoc3RydWN0IGNvbXByZXNzb3IgKmNwLAogIHVp
bnQzMl90ICpmYmNfbWFwcGVkX2NydGNfaWQpOwp9OwpzdHJ1Y3QgY29tcHJlc3NvciB7CiBzdHJ1
Y3QgZGNfY29udGV4dCAqY3R4OwoKIHVpbnQzMl90IGF0dGFjaGVkX2luc3Q7CiBib29sIGlzX2Vu
YWJsZWQ7CiBjb25zdCBzdHJ1Y3QgY29tcHJlc3Nvcl9mdW5jcyAqZnVuY3M7CiB1bmlvbiB7CiAg
dWludDMyX3QgcmF3OwogIHN0cnVjdCB7CiAgIHVpbnQzMl90IEZCQ19TVVBQT1JUOjE7CiAgIHVp
bnQzMl90IEZCX1BPT0w6MTsKICAgdWludDMyX3QgRFlOQU1JQ19BTExPQzoxOwogICB1aW50MzJf
dCBMUFRfU1VQUE9SVDoxOwogICB1aW50MzJfdCBMUFRfTUNfQ09ORklHOjE7CiAgIHVpbnQzMl90
IERVTU1ZX0JBQ0tFTkQ6MTsKICAgdWludDMyX3QgQ0xLX0dBVElOR19ESVNBQkxFRDoxOwoKICB9
IGJpdHM7CiB9IG9wdGlvbnM7CgogdW5pb24gZmJjX3BoeXNpY2FsX2FkZHJlc3MgY29tcHJfc3Vy
ZmFjZV9hZGRyZXNzOwoKIHVpbnQzMl90IGVtYmVkZGVkX3BhbmVsX2hfc2l6ZTsKIHVpbnQzMl90
IGVtYmVkZGVkX3BhbmVsX3Zfc2l6ZTsKIHVpbnQzMl90IG1lbW9yeV9idXNfd2lkdGg7CiB1aW50
MzJfdCBiYW5rc19udW07CiB1aW50MzJfdCByYXdfc2l6ZTsKIHVpbnQzMl90IGNoYW5uZWxfaW50
ZXJsZWF2ZV9zaXplOwogdWludDMyX3QgZHJhbV9jaGFubmVsc19udW07CgogdWludDMyX3QgYWxs
b2NhdGVkX3NpemU7CiB1aW50MzJfdCBwcmVmZXJyZWRfcmVxdWVzdGVkX3NpemU7CiB1aW50MzJf
dCBscHRfY2hhbm5lbHNfbnVtOwogZW51bSBmYmNfY29tcHJlc3NfcmF0aW8gbWluX2NvbXByZXNz
X3JhdGlvOwp9OwoKc3RydWN0IGZiY19pbnB1dF9pbmZvIHsKIGJvb2wgZHluYW1pY19mYmNfYnVm
ZmVyX2FsbG9jOwogdW5zaWduZWQgaW50IHNvdXJjZV92aWV3X3dpZHRoOwogdW5zaWduZWQgaW50
IHNvdXJjZV92aWV3X2hlaWdodDsKIHVuc2lnbmVkIGludCBudW1fb2ZfYWN0aXZlX3RhcmdldHM7
Cn07CgoKc3RydWN0IGZiY19yZXF1ZXN0ZWRfY29tcHJlc3NlZF9zaXplIHsKIHVuc2lnbmVkIGlu
dCBwcmVmZXJyZWRfc2l6ZTsKIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfc2l6ZV9hbGlnbm1lbnQ7
CiB1bnNpZ25lZCBpbnQgbWluX3NpemU7CiB1bnNpZ25lZCBpbnQgbWluX3NpemVfYWxpZ25tZW50
OwogdW5pb24gewogIHN0cnVjdCB7CgogICB1bnNpZ25lZCBpbnQgcHJlZmVycmVkX211c3RfYmVf
ZnJhbWVidWZmZXJfcG9vbCA6IDE7CgogICB1bnNpZ25lZCBpbnQgbWluX211c3RfYmVfZnJhbWVi
dWZmZXJfcG9vbCA6IDE7CiAgfSBiaXRzOwogIHVuc2lnbmVkIGludCBmbGFnczsKIH07Cn07CiMg
MzkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCiMg
MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9kbWN1
LmgiIDEKIyAyOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2lu
Yy9ody9kbWN1LmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2RtX3NlcnZpY2VzX3R5cGVzLmgiIDEKIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9kbWN1LmgiIDIKCgoKCgoKZW51bSBkbWN1X3N0YXRl
IHsKIERNQ1VfVU5MT0FERUQgPSAwLAogRE1DVV9MT0FERURfVU5JTklUSUFMSVpFRCA9IDEsCiBE
TUNVX1JVTk5JTkcgPSAyLAp9OwoKc3RydWN0IGRtY3VfdmVyc2lvbiB7CiB1bnNpZ25lZCBpbnQg
aW50ZXJmYWNlX3ZlcnNpb247CiB1bnNpZ25lZCBpbnQgYWJtX3ZlcnNpb247CiB1bnNpZ25lZCBp
bnQgcHNyX3ZlcnNpb247CiB1bnNpZ25lZCBpbnQgYnVpbGRfdmVyc2lvbjsKfTsKCnN0cnVjdCBk
bWN1IHsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CiBjb25zdCBzdHJ1Y3QgZG1jdV9mdW5jcyAq
ZnVuY3M7CgogZW51bSBkbWN1X3N0YXRlIGRtY3Vfc3RhdGU7CiBzdHJ1Y3QgZG1jdV92ZXJzaW9u
IGRtY3VfdmVyc2lvbjsKIHVuc2lnbmVkIGludCBjYWNoZWRfd2FpdF9sb29wX251bWJlcjsKIHVp
bnQzMl90IHBzcF92ZXJzaW9uOwogYm9vbCBhdXRvX2xvYWRfZG1jdTsKfTsKCnN0cnVjdCBkbWN1
X2Z1bmNzIHsKIGJvb2wgKCpkbWN1X2luaXQpKHN0cnVjdCBkbWN1ICpkbWN1KTsKIGJvb2wgKCps
b2FkX2lyYW0pKHN0cnVjdCBkbWN1ICpkbWN1LAogICB1bnNpZ25lZCBpbnQgc3RhcnRfb2Zmc2V0
LAogICBjb25zdCBjaGFyICpzcmMsCiAgIHVuc2lnbmVkIGludCBieXRlcyk7CiB2b2lkICgqc2V0
X3Bzcl9lbmFibGUpKHN0cnVjdCBkbWN1ICpkbWN1LCBib29sIGVuYWJsZSwgYm9vbCB3YWl0KTsK
IGJvb2wgKCpzZXR1cF9wc3IpKHN0cnVjdCBkbWN1ICpkbWN1LAogICBzdHJ1Y3QgZGNfbGluayAq
bGluaywKICAgc3RydWN0IHBzcl9jb250ZXh0ICpwc3JfY29udGV4dCk7CiB2b2lkICgqZ2V0X3Bz
cl9zdGF0ZSkoc3RydWN0IGRtY3UgKmRtY3UsIHVpbnQzMl90ICpwc3Jfc3RhdGUpOwogdm9pZCAo
KnNldF9wc3Jfd2FpdF9sb29wKShzdHJ1Y3QgZG1jdSAqZG1jdSwKICAgdW5zaWduZWQgaW50IHdh
aXRfbG9vcF9udW1iZXIpOwogdm9pZCAoKmdldF9wc3Jfd2FpdF9sb29wKShzdHJ1Y3QgZG1jdSAq
ZG1jdSwKICAgdW5zaWduZWQgaW50ICpwc3Jfd2FpdF9sb29wX251bWJlcik7CiBib29sICgqaXNf
ZG1jdV9pbml0aWFsaXplZCkoc3RydWN0IGRtY3UgKmRtY3UpOwogYm9vbCAoKmxvY2tfcGh5KShz
dHJ1Y3QgZG1jdSAqZG1jdSk7CiBib29sICgqdW5sb2NrX3BoeSkoc3RydWN0IGRtY3UgKmRtY3Up
Owp9OwojIDQwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMu
aCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwv
ZGlzcGxheV9tb2RlX2xpYi5oIiAxCiMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX2xpYi5oIgojIDEgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZG1sX2NvbW1vbl9kZWZzLmgiIDEKIyAz
MCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kbWxfY29t
bW9uX2RlZnMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZG1sL2RjX2ZlYXR1cmVzLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2RtbC9kbWxfY29tbW9uX2RlZnMuaCIgMgojIDEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3N0cnVjdHMu
aCIgMQojIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1s
L2Rpc3BsYXlfbW9kZV9zdHJ1Y3RzLmgiCnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX3ZvbHRhZ2Vf
c2NhbGluZ19zdCB2b2x0YWdlX3NjYWxpbmdfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX3Nv
Y19ib3VuZGluZ19ib3hfc3Qgc29jX2JvdW5kaW5nX2JveF9zdDsKdHlwZWRlZiBzdHJ1Y3QgX3Zj
c19kcGlfaXBfcGFyYW1zX3N0IGlwX3BhcmFtc19zdDsKdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlf
ZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNfc3QgZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNf
c3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfb3V0cHV0X3BhcmFtc19zdCBkaXNw
bGF5X291dHB1dF9wYXJhbXNfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX3NjYWxlcl9yYXRp
b19kZXB0aF9zdCBzY2FsZXJfcmF0aW9fZGVwdGhfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBp
X3NjYWxlcl90YXBzX3N0IHNjYWxlcl90YXBzX3N0Owp0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9k
aXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgZGlzcGxheV9waXBlX2Rlc3RfcGFyYW1zX3N0Owp0
eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3BpcGVfcGFyYW1zX3N0IGRpc3BsYXlfcGlw
ZV9wYXJhbXNfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfY2xvY2tzX2FuZF9j
Zmdfc3QgZGlzcGxheV9jbG9ja3NfYW5kX2NmZ19zdDsKdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlf
ZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3Q7CnR5
cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9ycV9taXNjX3BhcmFtc19zdCBkaXNw
bGF5X2RhdGFfcnFfbWlzY19wYXJhbXNfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3Bs
YXlfZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0IGRpc3BsYXlfZGF0YV9ycV9zaXppbmdfcGFyYW1z
X3N0Owp0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RhdGFfcnFfZGxnX3BhcmFtc19z
dCBkaXNwbGF5X2RhdGFfcnFfZGxnX3BhcmFtc19zdDsKdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlf
ZGlzcGxheV9ycV9kbGdfcGFyYW1zX3N0IGRpc3BsYXlfcnFfZGxnX3BhcmFtc19zdDsKdHlwZWRl
ZiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9zaXppbmdfcGFyYW1zX3N0IGRpc3BsYXlfcnFf
c2l6aW5nX3BhcmFtc19zdDsKdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9taXNj
X3BhcmFtc19zdCBkaXNwbGF5X3JxX21pc2NfcGFyYW1zX3N0Owp0eXBlZGVmIHN0cnVjdCBfdmNz
X2RwaV9kaXNwbGF5X3JxX3BhcmFtc19zdCBkaXNwbGF5X3JxX3BhcmFtc19zdDsKdHlwZWRlZiBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfcmVnc19zdCBkaXNwbGF5X2RsZ19yZWdzX3N0Owp0
eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0IGRpc3BsYXlfdHR1X3Jl
Z3Nfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9ycV9yZWdzX3N0IGRp
c3BsYXlfZGF0YV9ycV9yZWdzX3N0Owp0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3Jx
X3JlZ3Nfc3QgZGlzcGxheV9ycV9yZWdzX3N0Owp0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNw
bGF5X2RsZ19zeXNfcGFyYW1zX3N0IGRpc3BsYXlfZGxnX3N5c19wYXJhbXNfc3Q7CnR5cGVkZWYg
c3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfYXJiX3BhcmFtc19zdCBkaXNwbGF5X2FyYl9wYXJhbXNf
c3Q7CgpzdHJ1Y3QgX3Zjc19kcGlfdm9sdGFnZV9zY2FsaW5nX3N0IHsKIGludCBzdGF0ZTsKIGRv
dWJsZSBkc2NjbGtfbWh6OwogZG91YmxlIGRjZmNsa19taHo7CiBkb3VibGUgc29jY2xrX21oejsK
IGRvdWJsZSBwaHljbGtfZDE4X21oejsKIGRvdWJsZSBkcmFtX3NwZWVkX210czsKIGRvdWJsZSBm
YWJyaWNjbGtfbWh6OwogZG91YmxlIGRpc3BjbGtfbWh6OwogZG91YmxlIHBoeWNsa19taHo7CiBk
b3VibGUgZHBwY2xrX21oejsKIGRvdWJsZSBkdGJjbGtfbWh6Owp9OwoKc3RydWN0IF92Y3NfZHBp
X3NvY19ib3VuZGluZ19ib3hfc3QgewogZG91YmxlIHNyX2V4aXRfdGltZV91czsKIGRvdWJsZSBz
cl9lbnRlcl9wbHVzX2V4aXRfdGltZV91czsKIGRvdWJsZSB1cmdlbnRfbGF0ZW5jeV91czsKIGRv
dWJsZSB1cmdlbnRfbGF0ZW5jeV9waXhlbF9kYXRhX29ubHlfdXM7CiBkb3VibGUgdXJnZW50X2xh
dGVuY3lfcGl4ZWxfbWl4ZWRfd2l0aF92bV9kYXRhX3VzOwogZG91YmxlIHVyZ2VudF9sYXRlbmN5
X3ZtX2RhdGFfb25seV91czsKIGRvdWJsZSB3cml0ZWJhY2tfbGF0ZW5jeV91czsKIGRvdWJsZSBp
ZGVhbF9kcmFtX2J3X2FmdGVyX3VyZ2VudF9wZXJjZW50OwogZG91YmxlIHBjdF9pZGVhbF9kcmFt
X3NkcF9id19hZnRlcl91cmdlbnRfcGl4ZWxfb25seTsKIGRvdWJsZSBwY3RfaWRlYWxfZHJhbV9z
ZHBfYndfYWZ0ZXJfdXJnZW50X3BpeGVsX2FuZF92bTsKIGRvdWJsZSBwY3RfaWRlYWxfZHJhbV9z
ZHBfYndfYWZ0ZXJfdXJnZW50X3ZtX29ubHk7CiBkb3VibGUgbWF4X2F2Z19zZHBfYndfdXNlX25v
cm1hbF9wZXJjZW50OwogZG91YmxlIG1heF9hdmdfZHJhbV9id191c2Vfbm9ybWFsX3BlcmNlbnQ7
CiB1bnNpZ25lZCBpbnQgbWF4X3JlcXVlc3Rfc2l6ZV9ieXRlczsKIGRvdWJsZSBkb3duc3ByZWFk
X3BlcmNlbnQ7CiBkb3VibGUgZHJhbV9wYWdlX29wZW5fdGltZV9uczsKIGRvdWJsZSBkcmFtX3J3
X3R1cm5hcm91bmRfdGltZV9uczsKIGRvdWJsZSBkcmFtX3JldHVybl9idWZmZXJfcGVyX2NoYW5u
ZWxfYnl0ZXM7CiBkb3VibGUgZHJhbV9jaGFubmVsX3dpZHRoX2J5dGVzOwogZG91YmxlIGZhYnJp
Y19kYXRhcGF0aF90b19kY25fZGF0YV9yZXR1cm5fYnl0ZXM7CiBkb3VibGUgZGNuX2Rvd25zcHJl
YWRfcGVyY2VudDsKIGRvdWJsZSBkaXNwY2xrX2RwcGNsa192Y29fc3BlZWRfbWh6OwogZG91Ymxl
IGRmc192Y29fcGVyaW9kX3BzOwogdW5zaWduZWQgaW50IHVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0
dXJuX3Blcl9jaGFubmVsX3BpeGVsX29ubHlfYnl0ZXM7CiB1bnNpZ25lZCBpbnQgdXJnZW50X291
dF9vZl9vcmRlcl9yZXR1cm5fcGVyX2NoYW5uZWxfcGl4ZWxfYW5kX3ZtX2J5dGVzOwogdW5zaWdu
ZWQgaW50IHVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3ZtX29ubHlfYnl0
ZXM7CiB1bnNpZ25lZCBpbnQgcm91bmRfdHJpcF9waW5nX2xhdGVuY3lfZGNmY2xrX2N5Y2xlczsK
IHVuc2lnbmVkIGludCB1cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbF9ieXRl
czsKIHVuc2lnbmVkIGludCBjaGFubmVsX2ludGVybGVhdmVfYnl0ZXM7CiB1bnNpZ25lZCBpbnQg
bnVtX2JhbmtzOwogdW5zaWduZWQgaW50IG51bV9jaGFuczsKIHVuc2lnbmVkIGludCB2bW1fcGFn
ZV9zaXplX2J5dGVzOwogdW5zaWduZWQgaW50IGhvc3R2bV9taW5fcGFnZV9zaXplX2J5dGVzOwog
dW5zaWduZWQgaW50IGdwdXZtX21pbl9wYWdlX3NpemVfYnl0ZXM7CiBkb3VibGUgZHJhbV9jbG9j
a19jaGFuZ2VfbGF0ZW5jeV91czsKIGRvdWJsZSBkdW1teV9wc3RhdGVfbGF0ZW5jeV91czsKIGRv
dWJsZSB3cml0ZWJhY2tfZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV91czsKIHVuc2lnbmVkIGlu
dCByZXR1cm5fYnVzX3dpZHRoX2J5dGVzOwogdW5zaWduZWQgaW50IHZvbHRhZ2Vfb3ZlcnJpZGU7
CiBkb3VibGUgeGZjX2J1c190cmFuc3BvcnRfdGltZV91czsKIGRvdWJsZSB4ZmNfeGJ1Zl9sYXRl
bmN5X3RvbGVyYW5jZV91czsKIGludCB1c2VfdXJnZW50X2J1cnN0X2J3OwogdW5zaWduZWQgaW50
IG51bV9zdGF0ZXM7CiBzdHJ1Y3QgX3Zjc19kcGlfdm9sdGFnZV9zY2FsaW5nX3N0IGNsb2NrX2xp
bWl0c1s4XTsKIGJvb2wgZG9fdXJnZW50X2xhdGVuY3lfYWRqdXN0bWVudDsKIGRvdWJsZSB1cmdl
bnRfbGF0ZW5jeV9hZGp1c3RtZW50X2ZhYnJpY19jbG9ja19jb21wb25lbnRfdXM7CiBkb3VibGUg
dXJnZW50X2xhdGVuY3lfYWRqdXN0bWVudF9mYWJyaWNfY2xvY2tfcmVmZXJlbmNlX21oejsKIGJv
b2wgZGlzYWJsZV9kcmFtX2Nsb2NrX2NoYW5nZV92YWN0aXZlX3N1cHBvcnQ7Cn07CgpzdHJ1Y3Qg
X3Zjc19kcGlfaXBfcGFyYW1zX3N0IHsKIGJvb2wgZ3B1dm1fZW5hYmxlOwogYm9vbCBob3N0dm1f
ZW5hYmxlOwogdW5zaWduZWQgaW50IGdwdXZtX21heF9wYWdlX3RhYmxlX2xldmVsczsKIHVuc2ln
bmVkIGludCBob3N0dm1fbWF4X3BhZ2VfdGFibGVfbGV2ZWxzOwogdW5zaWduZWQgaW50IGhvc3R2
bV9jYWNoZWRfcGFnZV90YWJsZV9sZXZlbHM7CiB1bnNpZ25lZCBpbnQgcHRlX2dyb3VwX3NpemVf
Ynl0ZXM7CiB1bnNpZ25lZCBpbnQgbWF4X2ludGVyX2Rjbl90aWxlX3JlcGVhdGVyczsKIHVuc2ln
bmVkIGludCBudW1fZHNjOwogdW5zaWduZWQgaW50IG9kbV9jYXBhYmxlOwogdW5zaWduZWQgaW50
IHJvYl9idWZmZXJfc2l6ZV9rYnl0ZXM7CiB1bnNpZ25lZCBpbnQgZGV0X2J1ZmZlcl9zaXplX2ti
eXRlczsKIHVuc2lnbmVkIGludCBkcHRlX2J1ZmZlcl9zaXplX2luX3B0ZV9yZXFzX2x1bWE7CiB1
bnNpZ25lZCBpbnQgZHB0ZV9idWZmZXJfc2l6ZV9pbl9wdGVfcmVxc19jaHJvbWE7CiB1bnNpZ25l
ZCBpbnQgcGRlX3Byb2NfYnVmZmVyX3NpemVfNjRrX3JlcXM7CiB1bnNpZ25lZCBpbnQgZHBwX291
dHB1dF9idWZmZXJfcGl4ZWxzOwogdW5zaWduZWQgaW50IG9wcF9vdXRwdXRfYnVmZmVyX2xpbmVz
OwogdW5zaWduZWQgaW50IHBpeGVsX2NodW5rX3NpemVfa2J5dGVzOwogdW5zaWduZWQgY2hhciBw
dGVfZW5hYmxlOwogdW5zaWduZWQgaW50IHB0ZV9jaHVua19zaXplX2tieXRlczsKIHVuc2lnbmVk
IGludCBtZXRhX2NodW5rX3NpemVfa2J5dGVzOwogdW5zaWduZWQgaW50IHdyaXRlYmFja19jaHVu
a19zaXplX2tieXRlczsKIHVuc2lnbmVkIGludCBsaW5lX2J1ZmZlcl9zaXplX2JpdHM7CiB1bnNp
Z25lZCBpbnQgbWF4X2xpbmVfYnVmZmVyX2xpbmVzOwogdW5zaWduZWQgaW50IHdyaXRlYmFja19s
dW1hX2J1ZmZlcl9zaXplX2tieXRlczsKIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfY2hyb21hX2J1
ZmZlcl9zaXplX2tieXRlczsKIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfY2hyb21hX2xpbmVfYnVm
ZmVyX3dpZHRoX3BpeGVsczsKCiB1bnNpZ25lZCBpbnQgd3JpdGViYWNrX2ludGVyZmFjZV9idWZm
ZXJfc2l6ZV9rYnl0ZXM7CiB1bnNpZ25lZCBpbnQgd3JpdGViYWNrX2xpbmVfYnVmZmVyX2J1ZmZl
cl9zaXplOwoKIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfMTBicGM0MjBfc3VwcG9ydGVkOwogZG91
YmxlIHdyaXRlYmFja19tYXhfaHNjbF9yYXRpbzsKIGRvdWJsZSB3cml0ZWJhY2tfbWF4X3ZzY2xf
cmF0aW87CiBkb3VibGUgd3JpdGViYWNrX21pbl9oc2NsX3JhdGlvOwogZG91YmxlIHdyaXRlYmFj
a19taW5fdnNjbF9yYXRpbzsKIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfbWF4X2hzY2xfdGFwczsK
IHVuc2lnbmVkIGludCB3cml0ZWJhY2tfbWF4X3ZzY2xfdGFwczsKIHVuc2lnbmVkIGludCB3cml0
ZWJhY2tfbGluZV9idWZmZXJfbHVtYV9idWZmZXJfc2l6ZTsKIHVuc2lnbmVkIGludCB3cml0ZWJh
Y2tfbGluZV9idWZmZXJfY2hyb21hX2J1ZmZlcl9zaXplOwoKIHVuc2lnbmVkIGludCBtYXhfcGFn
ZV90YWJsZV9sZXZlbHM7CiB1bnNpZ25lZCBpbnQgbWF4X251bV9kcHA7CiB1bnNpZ25lZCBpbnQg
bWF4X251bV9vdGc7CiB1bnNpZ25lZCBpbnQgY3Vyc29yX2NodW5rX3NpemU7CiB1bnNpZ25lZCBp
bnQgY3Vyc29yX2J1ZmZlcl9zaXplOwogdW5zaWduZWQgaW50IG1heF9udW1fd2I7CiB1bnNpZ25l
ZCBpbnQgbWF4X2RjaHViX3BzY2xfYndfcGl4X3Blcl9jbGs7CiB1bnNpZ25lZCBpbnQgbWF4X3Bz
Y2xfbGJfYndfcGl4X3Blcl9jbGs7CiB1bnNpZ25lZCBpbnQgbWF4X2xiX3ZzY2xfYndfcGl4X3Bl
cl9jbGs7CiB1bnNpZ25lZCBpbnQgbWF4X3ZzY2xfaHNjbF9id19waXhfcGVyX2NsazsKIGRvdWJs
ZSBtYXhfaHNjbF9yYXRpbzsKIGRvdWJsZSBtYXhfdnNjbF9yYXRpbzsKIHVuc2lnbmVkIGludCBo
c2NsX211bHRzOwogdW5zaWduZWQgaW50IHZzY2xfbXVsdHM7CiB1bnNpZ25lZCBpbnQgbWF4X2hz
Y2xfdGFwczsKIHVuc2lnbmVkIGludCBtYXhfdnNjbF90YXBzOwogdW5zaWduZWQgaW50IHhmY19z
dXBwb3J0ZWQ7CiB1bnNpZ25lZCBpbnQgcHRvaV9zdXBwb3J0ZWQ7CiB1bnNpZ25lZCBpbnQgZ2Z4
N19jb21wYXRfdGlsaW5nX3N1cHBvcnRlZDsKCiBib29sIG9kbV9jb21iaW5lXzR0bzFfc3VwcG9y
dGVkOwogYm9vbCBkeW5hbWljX21ldGFkYXRhX3ZtX2VuYWJsZWQ7CiB1bnNpZ25lZCBpbnQgbWF4
X251bV9oZG1pX2ZybF9vdXRwdXRzOwoKIHVuc2lnbmVkIGludCB4ZmNfZmlsbF9jb25zdGFudF9i
eXRlczsKIGRvdWJsZSBkaXNwY2xrX3JhbXBfbWFyZ2luX3BlcmNlbnQ7CiBkb3VibGUgeGZjX2Zp
bGxfYndfb3ZlcmhlYWRfcGVyY2VudDsKIGRvdWJsZSB1bmRlcnNjYW5fZmFjdG9yOwogdW5zaWdu
ZWQgaW50IG1pbl92YmxhbmtfbGluZXM7CiB1bnNpZ25lZCBpbnQgZHBwY2xrX2RlbGF5X3N1YnRv
dGFsOwogdW5zaWduZWQgaW50IGRpc3BjbGtfZGVsYXlfc3VidG90YWw7CiB1bnNpZ25lZCBpbnQg
ZGNmY2xrX2NzdGF0ZV9sYXRlbmN5OwogdW5zaWduZWQgaW50IGRwcGNsa19kZWxheV9zY2w7CiB1
bnNpZ25lZCBpbnQgZHBwY2xrX2RlbGF5X3NjbF9sYl9vbmx5OwogdW5zaWduZWQgaW50IGRwcGNs
a19kZWxheV9jbnZjX2Zvcm1hdHRlcjsKIHVuc2lnbmVkIGludCBkcHBjbGtfZGVsYXlfY252Y19j
dXJzb3I7CiB1bnNpZ25lZCBpbnQgaXNfbGluZV9idWZmZXJfYnBwX2ZpeGVkOwogdW5zaWduZWQg
aW50IGxpbmVfYnVmZmVyX2ZpeGVkX2JwcDsKIHVuc2lnbmVkIGludCBkY2Nfc3VwcG9ydGVkOwoK
IHVuc2lnbmVkIGludCBJc0xpbmVCdWZmZXJCcHBGaXhlZDsKIHVuc2lnbmVkIGludCBMaW5lQnVm
ZmVyRml4ZWRCcHA7CiB1bnNpZ25lZCBpbnQgY2FuX3ZzdGFydHVwX2xpbmVzX2V4Y2VlZF92c3lu
Y19wbHVzX2JhY2tfcG9yY2hfbGluZXNfbWludXNfb25lOwogdW5zaWduZWQgaW50IGJ1Z19mb3Jj
aW5nX0xDX3JlcV9zYW1lX3NpemVfZml4ZWQ7Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV94
ZmNfcGFyYW1zX3N0IHsKIGRvdWJsZSB4ZmNfdHNsdl92cmVhZHlfb2Zmc2V0X3VzOwogZG91Ymxl
IHhmY190c2x2X3Z1cGRhdGVfd2lkdGhfdXM7CiBkb3VibGUgeGZjX3RzbHZfdnVwZGF0ZV9vZmZz
ZXRfdXM7CiBpbnQgeGZjX3Nsdl9jaHVua19zaXplX2J5dGVzOwp9OwoKc3RydWN0IF92Y3NfZHBp
X2Rpc3BsYXlfcGlwZV9zb3VyY2VfcGFyYW1zX3N0IHsKIGludCBzb3VyY2VfZm9ybWF0OwogdW5z
aWduZWQgY2hhciBkY2M7CiB1bnNpZ25lZCBpbnQgZGNjX3JhdGU7CiB1bnNpZ25lZCBpbnQgZGNj
X3JhdGVfY2hyb21hOwogdW5zaWduZWQgY2hhciBkY2NfdXNlX2dsb2JhbDsKIHVuc2lnbmVkIGNo
YXIgdm07CiBib29sIGdwdXZtOwogYm9vbCBob3N0dm07CiBib29sIGdwdXZtX2xldmVsc19mb3Jj
ZV9lbjsKIHVuc2lnbmVkIGludCBncHV2bV9sZXZlbHNfZm9yY2U7CiBib29sIGhvc3R2bV9sZXZl
bHNfZm9yY2VfZW47CiB1bnNpZ25lZCBpbnQgaG9zdHZtX2xldmVsc19mb3JjZTsKIGludCBzb3Vy
Y2Vfc2NhbjsKIGludCBzd19tb2RlOwogaW50IG1hY3JvX3RpbGVfc2l6ZTsKIHVuc2lnbmVkIGlu
dCBzdXJmYWNlX3dpZHRoX3k7CiB1bnNpZ25lZCBpbnQgc3VyZmFjZV9oZWlnaHRfeTsKIHVuc2ln
bmVkIGludCBzdXJmYWNlX3dpZHRoX2M7CiB1bnNpZ25lZCBpbnQgc3VyZmFjZV9oZWlnaHRfYzsK
IHVuc2lnbmVkIGludCB2aWV3cG9ydF93aWR0aDsKIHVuc2lnbmVkIGludCB2aWV3cG9ydF9oZWln
aHQ7CiB1bnNpZ25lZCBpbnQgdmlld3BvcnRfeV95OwogdW5zaWduZWQgaW50IHZpZXdwb3J0X3lf
YzsKIHVuc2lnbmVkIGludCB2aWV3cG9ydF93aWR0aF9jOwogdW5zaWduZWQgaW50IHZpZXdwb3J0
X2hlaWdodF9jOwogdW5zaWduZWQgaW50IGRhdGFfcGl0Y2g7CiB1bnNpZ25lZCBpbnQgZGF0YV9w
aXRjaF9jOwogdW5zaWduZWQgaW50IG1ldGFfcGl0Y2g7CiB1bnNpZ25lZCBpbnQgbWV0YV9waXRj
aF9jOwogdW5zaWduZWQgaW50IGN1cjBfc3JjX3dpZHRoOwogaW50IGN1cjBfYnBwOwogdW5zaWdu
ZWQgaW50IGN1cjFfc3JjX3dpZHRoOwogaW50IGN1cjFfYnBwOwogaW50IG51bV9jdXJzb3JzOwog
dW5zaWduZWQgY2hhciBpc19oc3BsaXQ7CiB1bnNpZ25lZCBjaGFyIGR5bmFtaWNfbWV0YWRhdGFf
ZW5hYmxlOwogdW5zaWduZWQgaW50IGR5bmFtaWNfbWV0YWRhdGFfbGluZXNfYmVmb3JlX2FjdGl2
ZTsKIHVuc2lnbmVkIGludCBkeW5hbWljX21ldGFkYXRhX3htaXRfYnl0ZXM7CiB1bnNpZ25lZCBp
bnQgaHNwbGl0X2dycDsKIHVuc2lnbmVkIGNoYXIgeGZjX2VuYWJsZTsKIHVuc2lnbmVkIGNoYXIg
eGZjX3NsYXZlOwogdW5zaWduZWQgY2hhciBpbW1lZGlhdGVfZmxpcDsKIHN0cnVjdCBfdmNzX2Rw
aV9kaXNwbGF5X3hmY19wYXJhbXNfc3QgeGZjX3BhcmFtczsKCiB1bnNpZ25lZCBjaGFyIHZfdG90
YWxfbWluOwogdW5zaWduZWQgY2hhciB2X3RvdGFsX21heDsKfTsKc3RydWN0IHdyaXRlYmFja19z
dCB7CiBpbnQgd2Jfc3JjX2hlaWdodDsKIGludCB3Yl9zcmNfd2lkdGg7CiBpbnQgd2JfZHN0X3dp
ZHRoOwogaW50IHdiX2RzdF9oZWlnaHQ7CiBpbnQgd2JfcGl4ZWxfZm9ybWF0OwogaW50IHdiX2h0
YXBzX2x1bWE7CiBpbnQgd2JfdnRhcHNfbHVtYTsKIGludCB3Yl9odGFwc19jaHJvbWE7CiBpbnQg
d2JfdnRhcHNfY2hyb21hOwogZG91YmxlIHdiX2hyYXRpbzsKIGRvdWJsZSB3Yl92cmF0aW87Cn07
CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9vdXRwdXRfcGFyYW1zX3N0IHsKIGludCBkcF9sYW5l
czsKIGRvdWJsZSBvdXRwdXRfYnBwOwogaW50IGRzY19lbmFibGU7CiBpbnQgd2JfZW5hYmxlOwog
aW50IG51bV9hY3RpdmVfd2I7CiBpbnQgb3V0cHV0X2JwYzsKIGludCBvdXRwdXRfdHlwZTsKIGlu
dCBvdXRwdXRfZm9ybWF0OwogaW50IGRzY19zbGljZXM7CiBpbnQgbWF4X2F1ZGlvX3NhbXBsZV9y
YXRlOwogc3RydWN0IHdyaXRlYmFja19zdCB3YjsKfTsKCnN0cnVjdCBfdmNzX2RwaV9zY2FsZXJf
cmF0aW9fZGVwdGhfc3QgewogZG91YmxlIGhzY2xfcmF0aW87CiBkb3VibGUgdnNjbF9yYXRpbzsK
IGRvdWJsZSBoc2NsX3JhdGlvX2M7CiBkb3VibGUgdnNjbF9yYXRpb19jOwogZG91YmxlIHZpbml0
OwogZG91YmxlIHZpbml0X2M7CiBkb3VibGUgdmluaXRfYm90OwogZG91YmxlIHZpbml0X2JvdF9j
OwogaW50IGxiX2RlcHRoOwogaW50IHNjbF9lbmFibGU7Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfc2Nh
bGVyX3RhcHNfc3QgewogdW5zaWduZWQgaW50IGh0YXBzOwogdW5zaWduZWQgaW50IHZ0YXBzOwog
dW5zaWduZWQgaW50IGh0YXBzX2M7CiB1bnNpZ25lZCBpbnQgdnRhcHNfYzsKfTsKCnN0cnVjdCBf
dmNzX2RwaV9kaXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgewogdW5zaWduZWQgaW50IHJlY291
dF93aWR0aDsKIHVuc2lnbmVkIGludCByZWNvdXRfaGVpZ2h0OwogdW5zaWduZWQgaW50IGZ1bGxf
cmVjb3V0X3dpZHRoOwogdW5zaWduZWQgaW50IGZ1bGxfcmVjb3V0X2hlaWdodDsKIHVuc2lnbmVk
IGludCBoYmxhbmtfc3RhcnQ7CiB1bnNpZ25lZCBpbnQgaGJsYW5rX2VuZDsKIHVuc2lnbmVkIGlu
dCB2Ymxhbmtfc3RhcnQ7CiB1bnNpZ25lZCBpbnQgdmJsYW5rX2VuZDsKIHVuc2lnbmVkIGludCBo
dG90YWw7CiB1bnNpZ25lZCBpbnQgdnRvdGFsOwogdW5zaWduZWQgaW50IHZhY3RpdmU7CiB1bnNp
Z25lZCBpbnQgaGFjdGl2ZTsKIHVuc2lnbmVkIGludCB2c3RhcnR1cF9zdGFydDsKIHVuc2lnbmVk
IGludCB2dXBkYXRlX29mZnNldDsKIHVuc2lnbmVkIGludCB2dXBkYXRlX3dpZHRoOwogdW5zaWdu
ZWQgaW50IHZyZWFkeV9vZmZzZXQ7CiB1bnNpZ25lZCBjaGFyIGludGVybGFjZWQ7CiB1bnNpZ25l
ZCBjaGFyIGVtYmVkZGVkOwogZG91YmxlIHBpeGVsX3JhdGVfbWh6OwogdW5zaWduZWQgY2hhciBz
eW5jaHJvbml6ZWRfdmJsYW5rX2FsbF9wbGFuZXM7CiB1bnNpZ25lZCBjaGFyIG90Z19pbnN0Owog
dW5zaWduZWQgaW50IG9kbV9jb21iaW5lOwogdW5zaWduZWQgY2hhciB1c2VfbWF4aW11bV92c3Rh
cnR1cDsKIHVuc2lnbmVkIGludCB2dG90YWxfbWF4OwogdW5zaWduZWQgaW50IHZ0b3RhbF9taW47
Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX3BhcmFtc19zdCB7CiBkaXNwbGF5X3Bp
cGVfc291cmNlX3BhcmFtc19zdCBzcmM7CiBkaXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgZGVz
dDsKIHNjYWxlcl9yYXRpb19kZXB0aF9zdCBzY2FsZV9yYXRpb19kZXB0aDsKIHNjYWxlcl90YXBz
X3N0IHNjYWxlX3RhcHM7Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9jbG9ja3NfYW5kX2Nm
Z19zdCB7CiBpbnQgdm9sdGFnZTsKIGRvdWJsZSBkcHBjbGtfbWh6OwogZG91YmxlIHJlZmNsa19t
aHo7CiBkb3VibGUgZGlzcGNsa19taHo7CiBkb3VibGUgZGNmY2xrX21oejsKIGRvdWJsZSBzb2Nj
bGtfbWh6Owp9OwoKc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0IHsK
IGRpc3BsYXlfcGlwZV9wYXJhbXNfc3QgcGlwZTsKIGRpc3BsYXlfb3V0cHV0X3BhcmFtc19zdCBk
b3V0OwogZGlzcGxheV9jbG9ja3NfYW5kX2NmZ19zdCBjbGtzX2NmZzsKfTsKCnN0cnVjdCBfdmNz
X2RwaV9kaXNwbGF5X2RhdGFfcnFfbWlzY19wYXJhbXNfc3QgewogdW5zaWduZWQgaW50IGZ1bGxf
c3dhdGhfYnl0ZXM7CiB1bnNpZ25lZCBpbnQgc3RvcmVkX3N3YXRoX2J5dGVzOwogdW5zaWduZWQg
aW50IGJsazI1Nl9oZWlnaHQ7CiB1bnNpZ25lZCBpbnQgYmxrMjU2X3dpZHRoOwogdW5zaWduZWQg
aW50IHJlcV9oZWlnaHQ7CiB1bnNpZ25lZCBpbnQgcmVxX3dpZHRoOwp9OwoKc3RydWN0IF92Y3Nf
ZHBpX2Rpc3BsYXlfZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0IHsKIHVuc2lnbmVkIGludCBjaHVu
a19ieXRlczsKIHVuc2lnbmVkIGludCBtaW5fY2h1bmtfYnl0ZXM7CiB1bnNpZ25lZCBpbnQgbWV0
YV9jaHVua19ieXRlczsKIHVuc2lnbmVkIGludCBtaW5fbWV0YV9jaHVua19ieXRlczsKIHVuc2ln
bmVkIGludCBtcHRlX2dyb3VwX2J5dGVzOwogdW5zaWduZWQgaW50IGRwdGVfZ3JvdXBfYnl0ZXM7
Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kYXRhX3JxX2RsZ19wYXJhbXNfc3QgewogdW5z
aWduZWQgaW50IHN3YXRoX3dpZHRoX3ViOwogdW5zaWduZWQgaW50IHN3YXRoX2hlaWdodDsKIHVu
c2lnbmVkIGludCByZXFfcGVyX3N3YXRoX3ViOwogdW5zaWduZWQgaW50IG1ldGFfcHRlX2J5dGVz
X3Blcl9mcmFtZV91YjsKIHVuc2lnbmVkIGludCBkcHRlX3JlcV9wZXJfcm93X3ViOwogdW5zaWdu
ZWQgaW50IGRwdGVfZ3JvdXBzX3Blcl9yb3dfdWI7CiB1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfaGVp
Z2h0OwogdW5zaWduZWQgaW50IGRwdGVfYnl0ZXNfcGVyX3Jvd191YjsKIHVuc2lnbmVkIGludCBt
ZXRhX2NodW5rc19wZXJfcm93X3ViOwogdW5zaWduZWQgaW50IG1ldGFfcmVxX3Blcl9yb3dfdWI7
CiB1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVpZ2h0OwogdW5zaWduZWQgaW50IG1ldGFfYnl0ZXNf
cGVyX3Jvd191YjsKfTsKCnN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX2RsZ19wYXJhbXNfc3Qg
ewogZGlzcGxheV9kYXRhX3JxX2RsZ19wYXJhbXNfc3QgcnFfbDsKIGRpc3BsYXlfZGF0YV9ycV9k
bGdfcGFyYW1zX3N0IHJxX2M7Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9zaXppbmdf
cGFyYW1zX3N0IHsKIGRpc3BsYXlfZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0IHJxX2w7CiBkaXNw
bGF5X2RhdGFfcnFfc2l6aW5nX3BhcmFtc19zdCBycV9jOwp9OwoKc3RydWN0IF92Y3NfZHBpX2Rp
c3BsYXlfcnFfbWlzY19wYXJhbXNfc3QgewogZGlzcGxheV9kYXRhX3JxX21pc2NfcGFyYW1zX3N0
IHJxX2w7CiBkaXNwbGF5X2RhdGFfcnFfbWlzY19wYXJhbXNfc3QgcnFfYzsKfTsKCnN0cnVjdCBf
dmNzX2RwaV9kaXNwbGF5X3JxX3BhcmFtc19zdCB7CiB1bnNpZ25lZCBjaGFyIHl1djQyMDsKIHVu
c2lnbmVkIGNoYXIgeXV2NDIwXzEwYnBjOwogdW5zaWduZWQgY2hhciByZ2JlX2FscGhhOwogZGlz
cGxheV9ycV9taXNjX3BhcmFtc19zdCBtaXNjOwogZGlzcGxheV9ycV9zaXppbmdfcGFyYW1zX3N0
IHNpemluZzsKIGRpc3BsYXlfcnFfZGxnX3BhcmFtc19zdCBkbGc7Cn07CgpzdHJ1Y3QgX3Zjc19k
cGlfZGlzcGxheV9kbGdfcmVnc19zdCB7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX2hfYmxhbmtfZW5k
OwogdW5zaWduZWQgaW50IGRsZ192YmxhbmtfZW5kOwogdW5zaWduZWQgaW50IG1pbl9kc3RfeV9u
ZXh0X3N0YXJ0OwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfaHRvdGFsOwogdW5zaWduZWQgaW50
IHJlZmN5Y194X2FmdGVyX3NjYWxlcjsKIHVuc2lnbmVkIGludCBkc3RfeV9hZnRlcl9zY2FsZXI7
CiB1bnNpZ25lZCBpbnQgZHN0X3lfcHJlZmV0Y2g7CiB1bnNpZ25lZCBpbnQgZHN0X3lfcGVyX3Zt
X3ZibGFuazsKIHVuc2lnbmVkIGludCBkc3RfeV9wZXJfcm93X3ZibGFuazsKIHVuc2lnbmVkIGlu
dCBkc3RfeV9wZXJfdm1fZmxpcDsKIHVuc2lnbmVkIGludCBkc3RfeV9wZXJfcm93X2ZsaXA7CiB1
bnNpZ25lZCBpbnQgcmVmX2ZyZXFfdG9fcGl4X2ZyZXE7CiB1bnNpZ25lZCBpbnQgdnJhdGlvX3By
ZWZldGNoOwogdW5zaWduZWQgaW50IHZyYXRpb19wcmVmZXRjaF9jOwogdW5zaWduZWQgaW50IHJl
ZmN5Y19wZXJfcHRlX2dyb3VwX3ZibGFua19sOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfcHRl
X2dyb3VwX3ZibGFua19jOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfbWV0YV9jaHVua192Ymxh
bmtfbDsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX21ldGFfY2h1bmtfdmJsYW5rX2M7CiB1bnNp
Z25lZCBpbnQgcmVmY3ljX3Blcl9wdGVfZ3JvdXBfZmxpcF9sOwogdW5zaWduZWQgaW50IHJlZmN5
Y19wZXJfcHRlX2dyb3VwX2ZsaXBfYzsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX21ldGFfY2h1
bmtfZmxpcF9sOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfbWV0YV9jaHVua19mbGlwX2M7CiB1
bnNpZ25lZCBpbnQgZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2w7CiB1bnNpZ25lZCBpbnQgZHN0X3lf
cGVyX3B0ZV9yb3dfbm9tX2M7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9t
X2w7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2M7CiB1bnNpZ25lZCBp
bnQgZHN0X3lfcGVyX21ldGFfcm93X25vbV9sOwogdW5zaWduZWQgaW50IGRzdF95X3Blcl9tZXRh
X3Jvd19ub21fYzsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2w7CiB1
bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9jOwogdW5zaWduZWQgaW50IHJl
ZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfbDsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX2xp
bmVfZGVsaXZlcnlfcHJlX2M7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5
X2w7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2M7CiB1bnNpZ25lZCBp
bnQgY2h1bmtfaGRsX2FkanVzdF9jdXIwOwogdW5zaWduZWQgaW50IGNodW5rX2hkbF9hZGp1c3Rf
Y3VyMTsKIHVuc2lnbmVkIGludCB2cmVhZHlfYWZ0ZXJfdmNvdW50MDsKIHVuc2lnbmVkIGludCBk
c3RfeV9vZmZzZXRfY3VyMDsKIHVuc2lnbmVkIGludCBkc3RfeV9vZmZzZXRfY3VyMTsKIHVuc2ln
bmVkIGludCB4ZmNfcmVnX3RyYW5zZmVyX2RlbGF5OwogdW5zaWduZWQgaW50IHhmY19yZWdfcHJl
Y2hhcmdlX2RlbGF5OwogdW5zaWduZWQgaW50IHhmY19yZWdfcmVtb3RlX3N1cmZhY2VfZmxpcF9s
YXRlbmN5OwogdW5zaWduZWQgaW50IHhmY19yZWdfcHJlZmV0Y2hfbWFyZ2luOwogdW5zaWduZWQg
aW50IGRzdF95X2RlbHRhX2RycV9saW1pdDsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3ZtX2dy
b3VwX3ZibGFuazsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3ZtX2dyb3VwX2ZsaXA7CiB1bnNp
Z25lZCBpbnQgcmVmY3ljX3Blcl92bV9yZXFfdmJsYW5rOwogdW5zaWduZWQgaW50IHJlZmN5Y19w
ZXJfdm1fcmVxX2ZsaXA7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl92bV9kbWRhdGE7Cn07Cgpz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV90dHVfcmVnc19zdCB7CiB1bnNpZ25lZCBpbnQgcW9zX2xl
dmVsX2xvd193bTsKIHVuc2lnbmVkIGludCBxb3NfbGV2ZWxfaGlnaF93bTsKIHVuc2lnbmVkIGlu
dCBtaW5fdHR1X3ZibGFuazsKIHVuc2lnbmVkIGludCBxb3NfbGV2ZWxfZmxpcDsKIHVuc2lnbmVk
IGludCByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJf
cmVxX2RlbGl2ZXJ5X2M7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3Vy
MDsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIxOwogdW5zaWduZWQg
aW50IHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9sOwogdW5zaWduZWQgaW50IHJlZmN5Y19w
ZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfcmVxX2RlbGl2
ZXJ5X3ByZV9jdXIwOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9j
dXIxOwogdW5zaWduZWQgaW50IHFvc19sZXZlbF9maXhlZF9sOwogdW5zaWduZWQgaW50IHFvc19s
ZXZlbF9maXhlZF9jOwogdW5zaWduZWQgaW50IHFvc19sZXZlbF9maXhlZF9jdXIwOwogdW5zaWdu
ZWQgaW50IHFvc19sZXZlbF9maXhlZF9jdXIxOwogdW5zaWduZWQgaW50IHFvc19yYW1wX2Rpc2Fi
bGVfbDsKIHVuc2lnbmVkIGludCBxb3NfcmFtcF9kaXNhYmxlX2M7CiB1bnNpZ25lZCBpbnQgcW9z
X3JhbXBfZGlzYWJsZV9jdXIwOwogdW5zaWduZWQgaW50IHFvc19yYW1wX2Rpc2FibGVfY3VyMTsK
fTsKCnN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RhdGFfcnFfcmVnc19zdCB7CiB1bnNpZ25lZCBp
bnQgY2h1bmtfc2l6ZTsKIHVuc2lnbmVkIGludCBtaW5fY2h1bmtfc2l6ZTsKIHVuc2lnbmVkIGlu
dCBtZXRhX2NodW5rX3NpemU7CiB1bnNpZ25lZCBpbnQgbWluX21ldGFfY2h1bmtfc2l6ZTsKIHVu
c2lnbmVkIGludCBkcHRlX2dyb3VwX3NpemU7CiB1bnNpZ25lZCBpbnQgbXB0ZV9ncm91cF9zaXpl
OwogdW5zaWduZWQgaW50IHN3YXRoX2hlaWdodDsKIHVuc2lnbmVkIGludCBwdGVfcm93X2hlaWdo
dF9saW5lYXI7Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9yZWdzX3N0IHsKIGRpc3Bs
YXlfZGF0YV9ycV9yZWdzX3N0IHJxX3JlZ3NfbDsKIGRpc3BsYXlfZGF0YV9ycV9yZWdzX3N0IHJx
X3JlZ3NfYzsKIHVuc2lnbmVkIGludCBkcnFfZXhwYW5zaW9uX21vZGU7CiB1bnNpZ25lZCBpbnQg
cHJxX2V4cGFuc2lvbl9tb2RlOwogdW5zaWduZWQgaW50IG1ycV9leHBhbnNpb25fbW9kZTsKIHVu
c2lnbmVkIGludCBjcnFfZXhwYW5zaW9uX21vZGU7CiB1bnNpZ25lZCBpbnQgcGxhbmUxX2Jhc2Vf
YWRkcmVzczsKfTsKCnN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19zeXNfcGFyYW1zX3N0IHsK
IGRvdWJsZSB0X21jbGtfd21fdXM7CiBkb3VibGUgdF91cmdfd21fdXM7CiBkb3VibGUgdF9zcl93
bV91czsKIGRvdWJsZSB0X2V4dHJhX3VzOwogZG91YmxlIG1lbV90cmlwX3VzOwogZG91YmxlIHRf
c3J4X2RlbGF5X3VzOwogZG91YmxlIGRlZXBzbGVlcF9kY2ZjbGtfbWh6OwogZG91YmxlIHRvdGFs
X2ZsaXBfYnc7CiB1bnNpZ25lZCBpbnQgdG90YWxfZmxpcF9ieXRlczsKfTsKCnN0cnVjdCBfdmNz
X2RwaV9kaXNwbGF5X2FyYl9wYXJhbXNfc3QgewogaW50IG1heF9yZXFfb3V0c3RhbmRpbmc7CiBp
bnQgbWluX3JlcV9vdXRzdGFuZGluZzsKIGludCBzYXRfbGV2ZWxfdXM7Cn07CiMgMzIgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZG1sX2NvbW1vbl9kZWZz
LmgiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1s
L2Rpc3BsYXlfbW9kZV9lbnVtcy5oIiAxCiMgMjggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX2VudW1zLmgiCmVudW0gb3V0cHV0X2Vu
Y29kZXJfY2xhc3MgewogZG1fZHAgPSAwLCBkbV9oZG1pID0gMSwgZG1fd2IgPSAyLCBkbV9lZHAK
fTsKZW51bSBvdXRwdXRfZm9ybWF0X2NsYXNzIHsKIGRtXzQ0NCA9IDAsIGRtXzQyMCA9IDEsIGRt
X240MjIsIGRtX3M0MjIKfTsKZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIHsKIGRtXzQ0NF8xNiA9
IDAsCiBkbV80NDRfMzIgPSAxLAogZG1fNDQ0XzY0ID0gMiwKIGRtXzQyMF84ID0gMywKIGRtXzQy
MF8xMCA9IDQsCiBkbV80MjBfMTIgPSA1LAogZG1fNDIyXzggPSA2LAogZG1fNDIyXzEwID0gNywK
IGRtXzQ0NF84ID0gOCwKIGRtX21vbm9fOCA9IGRtXzQ0NF84LAogZG1fbW9ub18xNiA9IGRtXzQ0
NF8xNiwKIGRtX3JnYmUgPSA5LAogZG1fcmdiZV9hbHBoYSA9IDEwLAp9OwplbnVtIG91dHB1dF9i
cGNfY2xhc3MgewogZG1fb3V0XzYgPSAwLCBkbV9vdXRfOCA9IDEsIGRtX291dF8xMCA9IDIsIGRt
X291dF8xMiA9IDMsIGRtX291dF8xNiA9IDQKfTsKZW51bSBzY2FuX2RpcmVjdGlvbl9jbGFzcyB7
CiBkbV9ob3J6ID0gMCwgZG1fdmVydCA9IDEKfTsKZW51bSBkbV9zd2l6emxlX21vZGUgewogZG1f
c3dfbGluZWFyID0gMCwKIGRtX3N3XzI1NmJfcyA9IDEsCiBkbV9zd18yNTZiX2QgPSAyLAogZG1f
c3dfU1BBUkVfMCA9IDMsCiBkbV9zd19TUEFSRV8xID0gNCwKIGRtX3N3XzRrYl9zID0gNSwKIGRt
X3N3XzRrYl9kID0gNiwKIGRtX3N3X1NQQVJFXzIgPSA3LAogZG1fc3dfU1BBUkVfMyA9IDgsCiBk
bV9zd182NGtiX3MgPSA5LAogZG1fc3dfNjRrYl9kID0gMTAsCiBkbV9zd19TUEFSRV80ID0gMTEs
CiBkbV9zd19TUEFSRV81ID0gMTIsCiBkbV9zd192YXJfcyA9IDEzLAogZG1fc3dfdmFyX2QgPSAx
NCwKIGRtX3N3X1NQQVJFXzYgPSAxNSwKIGRtX3N3X1NQQVJFXzcgPSAxNiwKIGRtX3N3XzY0a2Jf
c190ID0gMTcsCiBkbV9zd182NGtiX2RfdCA9IDE4LAogZG1fc3dfU1BBUkVfMTAgPSAxOSwKIGRt
X3N3X1NQQVJFXzExID0gMjAsCiBkbV9zd180a2Jfc194ID0gMjEsCiBkbV9zd180a2JfZF94ID0g
MjIsCiBkbV9zd19TUEFSRV8xMiA9IDIzLAogZG1fc3dfU1BBUkVfMTMgPSAyNCwKIGRtX3N3XzY0
a2Jfc194ID0gMjUsCiBkbV9zd182NGtiX2RfeCA9IDI2LAogZG1fc3dfU1BBUkVfMTQgPSAyNywK
IGRtX3N3X1NQQVJFXzE1ID0gMjgsCiBkbV9zd192YXJfc194ID0gMjksCiBkbV9zd192YXJfZF94
ID0gMzAsCiBkbV9zd182NGtiX3JfeCwKIGRtX3N3X2dmeDdfMmRfdGhpbl9sX3ZwLAogZG1fc3df
Z2Z4N18yZF90aGluX2dsLAp9OwplbnVtIGxiX2RlcHRoIHsKIGRtX2xiXzEwID0gMCwgZG1fbGJf
OCA9IDEsIGRtX2xiXzYgPSAyLCBkbV9sYl8xMiA9IDMsIGRtX2xiXzE2ID0gNCwKIGRtX2xiXzE5
ID0gNQp9OwplbnVtIHZvbHRhZ2Vfc3RhdGUgewogZG1fdm1pbiA9IDAsIGRtX3ZtaWQgPSAxLCBk
bV92bm9tID0gMiwgZG1fdm1heCA9IDMKfTsKZW51bSBzb3VyY2VfbWFjcm9fdGlsZV9zaXplIHsK
IGRtXzRrX3RpbGUgPSAwLCBkbV82NGtfdGlsZSA9IDEsIGRtXzI1NmtfdGlsZSA9IDIKfTsKZW51
bSBjdXJzb3JfYnBwIHsKIGRtX2N1cl8yYml0ID0gMCwgZG1fY3VyXzMyYml0ID0gMSwgZG1fY3Vy
XzY0Yml0ID0gMgp9OwplbnVtIGNsb2NrX2NoYW5nZV9zdXBwb3J0IHsKIGRtX2RyYW1fY2xvY2tf
Y2hhbmdlX3VuaW5pdGlhbGl6ZWQgPSAwLAogZG1fZHJhbV9jbG9ja19jaGFuZ2VfdmFjdGl2ZSwK
IGRtX2RyYW1fY2xvY2tfY2hhbmdlX3ZibGFuaywKIGRtX2RyYW1fY2xvY2tfY2hhbmdlX3Vuc3Vw
cG9ydGVkCn07CgplbnVtIG91dHB1dF9zdGFuZGFyZCB7CiBkbV9zdGRfdW5pbml0aWFsaXplZCA9
IDAsIGRtX3N0ZF9jdnRyMiwgZG1fc3RkX2N2dAp9OwoKZW51bSBtcGNfY29tYmluZV9hZmZpbml0
eSB7CiBkbV9tcGNfYWx3YXlzX3doZW5fcG9zc2libGUsCiBkbV9tcGNfcmVkdWNlX3ZvbHRhZ2Us
CiBkbV9tcGNfcmVkdWNlX3ZvbHRhZ2VfYW5kX2Nsb2NrcywKIGRtX21wY19uZXZlcgp9OwoKZW51
bSBSZXF1ZXN0VHlwZSB7CiBSRVFfMjU2Qnl0ZXMsIFJFUV8xMjhCeXRlc05vbkNvbnRpZ3VvdXMs
IFJFUV8xMjhCeXRlc0NvbnRpZ3VvdXMsIFJFUV9OQQp9OwoKZW51bSBzZWxmX3JlZnJlc2hfYWZm
aW5pdHkgewogZG1fdHJ5X3RvX2FsbG93X3NlbGZfcmVmcmVzaF9hbmRfbWNsa19zd2l0Y2gsCiBk
bV9hbGxvd19zZWxmX3JlZnJlc2hfYW5kX21jbGtfc3dpdGNoLAogZG1fYWxsb3dfc2VsZl9yZWZy
ZXNoLAogZG1fbmVpdGhlcl9zZWxmX3JlZnJlc2hfbm9yX21jbGtfc3dpdGNoCn07CgplbnVtIGRt
X3ZhbGlkYXRpb25fc3RhdHVzIHsKIERNTF9WQUxJREFUSU9OX09LLAogRE1MX0ZBSUxfU0NBTEVf
UkFUSU9fVEFQLAogRE1MX0ZBSUxfU09VUkNFX1BJWEVMX0ZPUk1BVCwKIERNTF9GQUlMX1ZJRVdQ
T1JUX1NJWkUsCiBETUxfRkFJTF9UT1RBTF9WX0FDVElWRV9CVywKIERNTF9GQUlMX0RJT19TVVBQ
T1JULAogRE1MX0ZBSUxfTk9UX0VOT1VHSF9EU0MsCiBETUxfRkFJTF9EU0NfQ0xLX1JFUVVJUkVE
LAogRE1MX0ZBSUxfRFNDX1ZBTElEQVRJT05fRkFJTFVSRSwKIERNTF9GQUlMX1VSR0VOVF9MQVRF
TkNZLAogRE1MX0ZBSUxfUkVPUkRFUklOR19CVUZGRVIsCiBETUxfRkFJTF9ESVNQQ0xLX0RQUENM
SywKIERNTF9GQUlMX1RPVEFMX0FWQUlMQUJMRV9QSVBFUywKIERNTF9GQUlMX05VTV9PVEcsCiBE
TUxfRkFJTF9XUklURUJBQ0tfTU9ERSwKIERNTF9GQUlMX1dSSVRFQkFDS19MQVRFTkNZLAogRE1M
X0ZBSUxfV1JJVEVCQUNLX1NDQUxFX1JBVElPX1RBUCwKIERNTF9GQUlMX0NVUlNPUl9TVVBQT1JU
LAogRE1MX0ZBSUxfUElUQ0hfU1VQUE9SVCwKIERNTF9GQUlMX1BURV9CVUZGRVJfU0laRSwKIERN
TF9GQUlMX0hPU1RfVk1fSU1NRURJQVRFX0ZMSVAsCiBETUxfRkFJTF9EU0NfSU5QVVRfQlBDLAog
RE1MX0ZBSUxfUFJFRkVUQ0hfU1VQUE9SVCwKIERNTF9GQUlMX1ZfUkFUSU9fUFJFRkVUQ0gsCn07
CgplbnVtIHdyaXRlYmFja19jb25maWcgewogZG1fbm9ybWFsLAogZG1fd2hvbGVfYnVmZmVyX2Zv
cl9zaW5nbGVfc3RyZWFtX25vX2ludGVybGVhdmUsCiBkbV93aG9sZV9idWZmZXJfZm9yX3Npbmds
ZV9zdHJlYW1faW50ZXJsZWF2ZSwKfTsKCmVudW0gb2RtX2NvbWJpbmVfbW9kZSB7CiBkbV9vZG1f
Y29tYmluZV9tb2RlX2Rpc2FibGVkLAogZG1fb2RtX2NvbWJpbmVfbW9kZV8ydG8xLAogZG1fb2Rt
X2NvbWJpbmVfbW9kZV80dG8xLAp9OwoKZW51bSBvZG1fY29tYmluZV9wb2xpY3kgewogZG1fb2Rt
X2NvbWJpbmVfcG9saWN5X2RhbCwKIGRtX29kbV9jb21iaW5lX3BvbGljeV9ub25lLAogZG1fb2Rt
X2NvbWJpbmVfcG9saWN5XzJ0bzEsCiBkbV9vZG1fY29tYmluZV9wb2xpY3lfNHRvMSwKfTsKCmVu
dW0gaW1tZWRpYXRlX2ZsaXBfcmVxdWlyZW1lbnQgewogZG1faW1tZWRpYXRlX2ZsaXBfbm90X3Jl
cXVpcmVkLAogZG1faW1tZWRpYXRlX2ZsaXBfcmVxdWlyZWQsCn07CiMgMzMgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZG1sX2NvbW1vbl9kZWZzLmgiIDIK
Cgpkb3VibGUgZG1sX3JvdW5kKGRvdWJsZSBhKTsKIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmgiIDIKIyAxICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2Rpc3BsYXlfbW9kZV92
YmEuaCIgMQojIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
ZG1sL2Rpc3BsYXlfbW9kZV92YmEuaCIKc3RydWN0IGRpc3BsYXlfbW9kZV9saWI7Cgp2b2lkIE1v
ZGVTdXBwb3J0QW5kU3lzdGVtQ29uZmlndXJhdGlvbihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAq
bW9kZV9saWIpOwoKCgpkb3VibGUgZ2V0X2Nsa19kY2ZfZGVlcHNsZWVwKHN0cnVjdCBkaXNwbGF5
X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBp
cGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91YmxlIGdldF93bV91cmdlbnQoc3RydWN0
IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFt
c19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwpkb3VibGUgZ2V0X3dtX21lbW9y
eV90cmlwKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91Ymxl
IGdldF93bV93cml0ZWJhY2tfdXJnZW50KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xp
YiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQg
bnVtX3BpcGVzKTsKZG91YmxlIGdldF93bV9zdHV0dGVyX2V4aXQoc3RydWN0IGRpc3BsYXlfbW9k
ZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMs
IHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwpkb3VibGUgZ2V0X3dtX3N0dXR0ZXJfZW50ZXJfZXhp
dChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3Bp
cGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBnZXRf
d21fZHJhbV9jbG9ja19jaGFuZ2Uoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBj
b25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1f
cGlwZXMpOwpkb3VibGUgZ2V0X3dtX3dyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5nZShzdHJ1Y3Qg
ZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1z
X3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBnZXRfd21feGZjX3Vu
ZGVyZmxvdyhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlf
ZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJs
ZSBnZXRfc3R1dHRlcl9lZmZpY2llbmN5X25vX3ZibGFuayhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xp
YiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5z
aWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBnZXRfc3R1dHRlcl9lZmZpY2llbmN5KHN0cnVj
dCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJh
bXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91YmxlIGdldF91cmdlbnRf
bGF0ZW5jeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlf
ZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJs
ZSBnZXRfdXJnZW50X2V4dHJhX2xhdGVuY3koc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVf
bGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGlu
dCBudW1fcGlwZXMpOwpkb3VibGUgZ2V0X25vbnVyZ2VudF9sYXRlbmN5KHN0cnVjdCBkaXNwbGF5
X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBp
cGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91YmxlIGdldF9kcmFtX2Nsb2NrX2NoYW5n
ZV9sYXRlbmN5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxh
eV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91
YmxlIGdldF9kaXNwY2xrX2NhbGN1bGF0ZWQoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVf
bGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGlu
dCBudW1fcGlwZXMpOwpkb3VibGUgZ2V0X3RvdGFsX2RhdGFfcmVhZF9idyhzdHJ1Y3QgZGlzcGxh
eV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpw
aXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBnZXRfcmV0dXJuX2J3KHN0cnVj
dCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJh
bXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91YmxlIGdldF90Y2FsYyhz
dHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVf
cGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBnZXRfZnJh
Y3Rpb25fb2ZfdXJnZW50X2JhbmR3aWR0aChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9s
aWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50
IG51bV9waXBlcyk7CmRvdWJsZSBnZXRfZnJhY3Rpb25fb2ZfdXJnZW50X2JhbmR3aWR0aF9pbW1f
ZmxpcChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJl
X3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CgoKCmRvdWJs
ZSBnZXRfZHNjX2RlbGF5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3Qg
ZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVz
LCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CmRvdWJsZSBnZXRfZHBwY2xrX2NhbGN1bGF0ZWQo
c3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBl
X3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGludCB3
aGljaF9waXBlKTsKZG91YmxlIGdldF9kc2NjbGtfY2FsY3VsYXRlZChzdHJ1Y3QgZGlzcGxheV9t
b2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBl
cywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwpkb3Vi
bGUgZ2V0X21pbl90dHVfdmJsYW5rKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwg
Y29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVt
X3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CmRvdWJsZSBnZXRfdnJhdGlvX3ByZWZl
dGNoX2woc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2Uy
ZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVk
IGludCB3aGljaF9waXBlKTsKZG91YmxlIGdldF92cmF0aW9fcHJlZmV0Y2hfYyhzdHJ1Y3QgZGlz
cGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0
ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUp
Owpkb3VibGUgZ2V0X2RzdF94X2FmdGVyX3NjYWxlcihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAq
bW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWdu
ZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwpkb3VibGUgZ2V0X2Rz
dF95X2FmdGVyX3NjYWxlcihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0
IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBl
cywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwpkb3VibGUgZ2V0X2RzdF95X3Blcl92bV92Ymxh
bmsoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9w
aXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGlu
dCB3aGljaF9waXBlKTsKZG91YmxlIGdldF9kc3RfeV9wZXJfcm93X3ZibGFuayhzdHJ1Y3QgZGlz
cGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0
ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUp
Owpkb3VibGUgZ2V0X2RzdF95X3ByZWZldGNoKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2Rl
X2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBp
bnQgbnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CmRvdWJsZSBnZXRfZHN0X3lf
cGVyX3ZtX2ZsaXAoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNw
bGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVu
c2lnbmVkIGludCB3aGljaF9waXBlKTsKZG91YmxlIGdldF9kc3RfeV9wZXJfcm93X2ZsaXAoc3Ry
dWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3Bh
cmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGludCB3aGlj
aF9waXBlKTsKZG91YmxlIGdldF94ZmNfdHJhbnNmZXJfZGVsYXkoc3RydWN0IGRpc3BsYXlfbW9k
ZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMs
IHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGludCB3aGljaF9waXBlKTsKZG91Ymxl
IGdldF94ZmNfcHJlY2hhcmdlX2RlbGF5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xp
YiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQg
bnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CmRvdWJsZSBnZXRfeGZjX3JlbW90
ZV9zdXJmYWNlX2ZsaXBfbGF0ZW5jeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIs
IGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51
bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwpkb3VibGUgZ2V0X3hmY19wcmVmZXRj
aF9tYXJnaW4oc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2ln
bmVkIGludCB3aGljaF9waXBlKTsKZG91YmxlIGdldF9yZWZjeWNfcGVyX3ZtX2dyb3VwX3ZibGFu
ayhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3Bp
cGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50
IHdoaWNoX3BpcGUpOwpkb3VibGUgZ2V0X3JlZmN5Y19wZXJfdm1fZ3JvdXBfZmxpcChzdHJ1Y3Qg
ZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1z
X3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3Bp
cGUpOwpkb3VibGUgZ2V0X3JlZmN5Y19wZXJfdm1fcmVxX3ZibGFuayhzdHJ1Y3QgZGlzcGxheV9t
b2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBl
cywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwpkb3Vi
bGUgZ2V0X3JlZmN5Y19wZXJfdm1fcmVxX2ZsaXAoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1v
ZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVk
IGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGludCB3aGljaF9waXBlKTsKCnVuc2lnbmVkIGludCBn
ZXRfdnN0YXJ0dXBfY2FsY3VsYXRlZCgKICBzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9s
aWIsCiAgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAogIHVuc2lnbmVk
IGludCBudW1fcGlwZXMsCiAgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwoKZG91YmxlIGdldF90
b3RhbF9pbW1lZGlhdGVfZmxpcF9ieXRlcygKICBzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9k
ZV9saWIsCiAgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAogIHVuc2ln
bmVkIGludCBudW1fcGlwZXMpOwpkb3VibGUgZ2V0X3RvdGFsX2ltbWVkaWF0ZV9mbGlwX2J3KAog
IHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKICBjb25zdCBkaXNwbGF5X2UyZV9w
aXBlX3BhcmFtc19zdCAqcGlwZXMsCiAgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBn
ZXRfdG90YWxfcHJlZmV0Y2hfYncoCiAgc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGli
LAogIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywKICB1bnNpZ25lZCBp
bnQgbnVtX3BpcGVzKTsKdW5zaWduZWQgaW50IGRtbF9nZXRfdm9sdGFnZV9sZXZlbCgKICBzdHJ1
Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCiAgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9w
YXJhbXNfc3QgKnBpcGVzLAogIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoKdm9pZCBQaXhlbENs
b2NrQWRqdXN0bWVudEZvclByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0KHN0cnVjdCBkaXNwbGF5
X21vZGVfbGliICptb2RlX2xpYik7Cgpib29sIENhbGN1bGF0ZTI1NkJCbG9ja1NpemVzKAogIGVu
dW0gc291cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKICBlbnVtIGRtX3N3aXp6
bGVfbW9kZSBTdXJmYWNlVGlsaW5nLAogIHVuc2lnbmVkIGludCBCeXRlUGVyUGl4ZWxZLAogIHVu
c2lnbmVkIGludCBCeXRlUGVyUGl4ZWxDLAogIHVuc2lnbmVkIGludCAqQmxvY2tIZWlnaHQyNTZC
eXRlc1ksCiAgdW5zaWduZWQgaW50ICpCbG9ja0hlaWdodDI1NkJ5dGVzQywKICB1bnNpZ25lZCBp
bnQgKkJsb2NrV2lkdGgyNTZCeXRlc1ksCiAgdW5zaWduZWQgaW50ICpCbG9ja1dpZHRoMjU2Qnl0
ZXNDKTsKCnN0cnVjdCB2YmFfdmFyc19zdCB7CiBpcF9wYXJhbXNfc3QgaXA7CiBzb2NfYm91bmRp
bmdfYm94X3N0IHNvYzsKCiBpbnQgbWF4TXBjQ29tYjsKIGJvb2wgVXNlTWF4aW11bVZTdGFydHVw
OwoKIGRvdWJsZSBXcml0ZWJhY2tESVNQQ0xLOwogZG91YmxlIERQUENMS1VzaW5nU2luZ2xlRFBQ
THVtYTsKIGRvdWJsZSBEUFBDTEtVc2luZ1NpbmdsZURQUENocm9tYTsKIGRvdWJsZSBESVNQQ0xL
V2l0aFJhbXBpbmc7CiBkb3VibGUgRElTUENMS1dpdGhvdXRSYW1waW5nOwogZG91YmxlIEdsb2Jh
bERQUENMSzsKIGRvdWJsZSBESVNQQ0xLV2l0aFJhbXBpbmdSb3VuZGVkVG9ERlNHcmFudWxhcml0
eTsKIGRvdWJsZSBESVNQQ0xLV2l0aG91dFJhbXBpbmdSb3VuZGVkVG9ERlNHcmFudWxhcml0eTsK
IGRvdWJsZSBNYXhEaXNwY2xrUm91bmRlZFRvREZTR3JhbnVsYXJpdHk7CiBib29sIERDQ0VuYWJs
ZWRBbnlQbGFuZTsKIGRvdWJsZSBSZXR1cm5CYW5kd2lkdGhUb0RDTjsKIHVuc2lnbmVkIGludCBU
b3RhbEFjdGl2ZURQUDsKIHVuc2lnbmVkIGludCBUb3RhbERDQ0FjdGl2ZURQUDsKIGRvdWJsZSBV
cmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeTsKIGRvdWJsZSBTdHV0dGVyUGVyaW9k
OwogZG91YmxlIEZyYW1lVGltZUZvck1pbkZ1bGxERVRCdWZmZXJpbmdUaW1lOwogZG91YmxlIEF2
ZXJhZ2VSZWFkQmFuZHdpZHRoOwogZG91YmxlIFRvdGFsUm93UmVhZEJhbmR3aWR0aDsKIGRvdWJs
ZSBQYXJ0T2ZCdXJzdFRoYXRGaXRzSW5ST0I7CiBkb3VibGUgU3R1dHRlckJ1cnN0VGltZTsKIHVu
c2lnbmVkIGludCBOZXh0UHJlZmV0Y2hNb2RlOwogZG91YmxlIE5leHRNYXhWU3RhcnR1cDsKIGRv
dWJsZSBWQmxhbmtUaW1lOwogZG91YmxlIFNtYWxsZXN0VkJsYW5rOwogZG91YmxlIERDRkNMS0Rl
ZXBTbGVlcFBlclBsYW5lWzhdOwogZG91YmxlIEVmZmVjdGl2ZURFVFBsdXNMQkxpbmVzTHVtYTsK
IGRvdWJsZSBFZmZlY3RpdmVERVRQbHVzTEJMaW5lc0Nocm9tYTsKIGRvdWJsZSBVcmdlbnRMYXRl
bmN5U3VwcG9ydFVzTHVtYTsKIGRvdWJsZSBVcmdlbnRMYXRlbmN5U3VwcG9ydFVzQ2hyb21hOwog
dW5zaWduZWQgaW50IERTQ0Zvcm1hdEZhY3RvcjsKCiBib29sIER1bW15UFN0YXRlQ2hlY2s7CiBi
b29sIERSQU1DbG9ja0NoYW5nZVN1cHBvcnRzVkFjdGl2ZTsKIGJvb2wgUHJlZmV0Y2hNb2RlU3Vw
cG9ydGVkOwogYm9vbCBQcmVmZXRjaEFuZEltbWVkaWF0ZUZsaXBTdXBwb3J0ZWQ7CiBlbnVtIHNl
bGZfcmVmcmVzaF9hZmZpbml0eSBBbGxvd0RSQU1TZWxmUmVmcmVzaE9yRFJBTUNsb2NrQ2hhbmdl
SW5WYmxhbms7CiBkb3VibGUgWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheTsKIGRvdWJsZSBUSW5p
dFhGaWxsOwogZG91YmxlIFRzbHZDaGs7CiBkb3VibGUgU3JjQWN0aXZlRHJhaW5SYXRlOwogYm9v
bCBJbW1lZGlhdGVGbGlwU3VwcG9ydGVkOwogZW51bSBtcGNfY29tYmluZV9hZmZpbml0eSBXaGVu
VG9Eb01QQ0NvbWJpbmU7CgogYm9vbCBQcmVmZXRjaEVSUk9SOwoKIHVuc2lnbmVkIGludCBWU3Rh
cnR1cExpbmVzOwogdW5zaWduZWQgaW50IEFjdGl2ZURQUHM7CiB1bnNpZ25lZCBpbnQgTEJMYXRl
bmN5SGlkaW5nU291cmNlTGluZXNZOwogdW5zaWduZWQgaW50IExCTGF0ZW5jeUhpZGluZ1NvdXJj
ZUxpbmVzQzsKIGRvdWJsZSBBY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luWzhdOwog
ZG91YmxlIE1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbjsKIGRvdWJsZSBJbml0RmlsbExl
dmVsOwogZG91YmxlIEZpbmFsRmlsbE1hcmdpbjsKIGRvdWJsZSBGaW5hbEZpbGxMZXZlbDsKIGRv
dWJsZSBSZW1haW5pbmdGaWxsTGV2ZWw7CiBkb3VibGUgVEZpbmFseEZpbGw7CgoKCgogZG91Ymxl
IFNSRXhpdFRpbWU7CiBkb3VibGUgU1JFbnRlclBsdXNFeGl0VGltZTsKIGRvdWJsZSBVcmdlbnRM
YXRlbmN5UGl4ZWxEYXRhT25seTsKIGRvdWJsZSBVcmdlbnRMYXRlbmN5UGl4ZWxNaXhlZFdpdGhW
TURhdGE7CiBkb3VibGUgVXJnZW50TGF0ZW5jeVZNRGF0YU9ubHk7CiBkb3VibGUgVXJnZW50TGF0
ZW5jeTsKIGRvdWJsZSBXcml0ZWJhY2tMYXRlbmN5OwogZG91YmxlIFBlcmNlbnRPZklkZWFsRFJB
TUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5UGl4ZWxEYXRhT25seTsK
IGRvdWJsZSBQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVy
VXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhOwogZG91YmxlIFBlcmNlbnRPZklkZWFsRFJB
TUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5Vk1EYXRhT25seTsKIGRv
dWJsZSBNYXhBdmVyYWdlUGVyY2VudE9mSWRlYWxTRFBQb3J0QldEaXNwbGF5Q2FuVXNlSW5Ob3Jt
YWxTeXN0ZW1PcGVyYXRpb247CiBkb3VibGUgTWF4QXZlcmFnZVBlcmNlbnRPZklkZWFsRFJBTUJX
RGlzcGxheUNhblVzZUluTm9ybWFsU3lzdGVtT3BlcmF0aW9uOwogZG91YmxlIE51bWJlck9mQ2hh
bm5lbHM7CiBkb3VibGUgRFJBTUNoYW5uZWxXaWR0aDsKIGRvdWJsZSBGYWJyaWNEYXRhcGF0aFRv
RENORGF0YVJldHVybjsKIGRvdWJsZSBSZXR1cm5CdXNXaWR0aDsKIGRvdWJsZSBEb3duc3ByZWFk
aW5nOwogZG91YmxlIERJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nOwogZG91YmxlIERJ
U1BDTEtEUFBDTEtWQ09TcGVlZDsKIGRvdWJsZSBSb3VuZFRyaXBQaW5nTGF0ZW5jeUN5Y2xlczsK
IGRvdWJsZSBVcmdlbnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbDsKIGRvdWJsZSBVcmdlbnRP
dXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbFBpeGVsRGF0YU9ubHk7CiBkb3VibGUgVXJnZW50T3V0
T2ZPcmRlclJldHVyblBlckNoYW5uZWxQaXhlbE1peGVkV2l0aFZNRGF0YTsKIGRvdWJsZSBVcmdl
bnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbFZNRGF0YU9ubHk7CiB1bnNpZ25lZCBpbnQgVk1N
UGFnZVNpemU7CiBkb3VibGUgRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeTsKIGRvdWJsZSBYRkNCdXNU
cmFuc3BvcnRUaW1lOwogYm9vbCBVc2VVcmdlbnRCdXJzdEJhbmR3aWR0aDsKIGRvdWJsZSBYRkNY
QlVGTGF0ZW5jeVRvbGVyYW5jZTsKCgoKCiB1bnNpZ25lZCBpbnQgUk9CQnVmZmVyU2l6ZUluS0J5
dGU7CiBkb3VibGUgREVUQnVmZmVyU2l6ZUluS0J5dGU7CiBkb3VibGUgREVUQnVmZmVyU2l6ZUlu
VGltZTsKIHVuc2lnbmVkIGludCBEUFBPdXRwdXRCdWZmZXJQaXhlbHM7CiB1bnNpZ25lZCBpbnQg
T1BQT3V0cHV0QnVmZmVyTGluZXM7CiB1bnNpZ25lZCBpbnQgUGl4ZWxDaHVua1NpemVJbktCeXRl
OwogZG91YmxlIFJldHVybkJXOwogYm9vbCBHUFVWTUVuYWJsZTsKIGJvb2wgSG9zdFZNRW5hYmxl
OwogdW5zaWduZWQgaW50IEdQVVZNTWF4UGFnZVRhYmxlTGV2ZWxzOwogdW5zaWduZWQgaW50IEhv
c3RWTU1heFBhZ2VUYWJsZUxldmVsczsKIHVuc2lnbmVkIGludCBIb3N0Vk1DYWNoZWRQYWdlVGFi
bGVMZXZlbHM7CiB1bnNpZ25lZCBpbnQgT3ZlcnJpZGVHUFVWTVBhZ2VUYWJsZUxldmVsczsKIHVu
c2lnbmVkIGludCBPdmVycmlkZUhvc3RWTVBhZ2VUYWJsZUxldmVsczsKIHVuc2lnbmVkIGludCBN
ZXRhQ2h1bmtTaXplOwogZG91YmxlIE1pblBpeGVsQ2h1bmtTaXplQnl0ZXM7CiBkb3VibGUgTWlu
TWV0YUNodW5rU2l6ZUJ5dGVzOwogdW5zaWduZWQgaW50IFdyaXRlYmFja0NodW5rU2l6ZTsKIGJv
b2wgT0RNQ2FwYWJpbGl0eTsKIHVuc2lnbmVkIGludCBOdW1iZXJPZkRTQzsKIHVuc2lnbmVkIGlu
dCBMaW5lQnVmZmVyU2l6ZTsKIHVuc2lnbmVkIGludCBNYXhMaW5lQnVmZmVyTGluZXM7CiB1bnNp
Z25lZCBpbnQgV3JpdGViYWNrSW50ZXJmYWNlTHVtYUJ1ZmZlclNpemU7CiB1bnNpZ25lZCBpbnQg
V3JpdGViYWNrSW50ZXJmYWNlQ2hyb21hQnVmZmVyU2l6ZTsKIHVuc2lnbmVkIGludCBXcml0ZWJh
Y2tDaHJvbWFMaW5lQnVmZmVyV2lkdGg7CiBlbnVtIHdyaXRlYmFja19jb25maWcgV3JpdGViYWNr
Q29uZmlndXJhdGlvbjsKIGRvdWJsZSBNYXhEQ0hVQlRvUFNDTFRocm91Z2hwdXQ7CiBkb3VibGUg
TWF4UFNDTFRvTEJUaHJvdWdocHV0OwogdW5zaWduZWQgaW50IFBURUJ1ZmZlclNpemVJblJlcXVl
c3RzTHVtYTsKIHVuc2lnbmVkIGludCBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0Nocm9tYTsKIGRv
dWJsZSBESVNQQ0xLUmFtcGluZ01hcmdpbjsKIHVuc2lnbmVkIGludCBNYXhJbnRlckRDTlRpbGVS
ZXBlYXRlcnM7CiBib29sIFhGQ1N1cHBvcnRlZDsKIGRvdWJsZSBYRkNTbHZDaHVua1NpemU7CiBk
b3VibGUgWEZDRmlsbEJXT3ZlcmhlYWQ7CiBkb3VibGUgWEZDRmlsbENvbnN0YW50OwogZG91Ymxl
IFhGQ1RTbHZWdXBkYXRlT2Zmc2V0OwogZG91YmxlIFhGQ1RTbHZWdXBkYXRlV2lkdGg7CiBkb3Vi
bGUgWEZDVFNsdlZyZWFkeU9mZnNldDsKIGRvdWJsZSBEUFBDTEtEZWxheVN1YnRvdGFsOwogZG91
YmxlIERQUENMS0RlbGF5U0NMOwogZG91YmxlIERQUENMS0RlbGF5U0NMTEJPbmx5OwogZG91Ymxl
IERQUENMS0RlbGF5Q05WQ0Zvcm1hdGVyOwogZG91YmxlIERQUENMS0RlbGF5Q05WQ0N1cnNvcjsK
IGRvdWJsZSBESVNQQ0xLRGVsYXlTdWJ0b3RhbDsKIGJvb2wgUHJvZ3Jlc3NpdmVUb0ludGVybGFj
ZVVuaXRJbk9QUDsKCiBpbnQgVm9sdGFnZUxldmVsOwogZG91YmxlIEZhYnJpY0Nsb2NrOwogZG91
YmxlIERSQU1TcGVlZDsKIGRvdWJsZSBESVNQQ0xLOwogZG91YmxlIFNPQ0NMSzsKIGRvdWJsZSBE
Q0ZDTEs7CgogdW5zaWduZWQgaW50IE51bWJlck9mQWN0aXZlUGxhbmVzOwogdW5zaWduZWQgaW50
IE51bWJlck9mRFNDU2xpY2VzWzhdOwogdW5zaWduZWQgaW50IFZpZXdwb3J0V2lkdGhbOF07CiB1
bnNpZ25lZCBpbnQgVmlld3BvcnRIZWlnaHRbOF07CiB1bnNpZ25lZCBpbnQgVmlld3BvcnRZU3Rh
cnRZWzhdOwogdW5zaWduZWQgaW50IFZpZXdwb3J0WVN0YXJ0Q1s4XTsKIHVuc2lnbmVkIGludCBQ
aXRjaFlbOF07CiB1bnNpZ25lZCBpbnQgUGl0Y2hDWzhdOwogZG91YmxlIEhSYXRpb1s4XTsKIGRv
dWJsZSBWUmF0aW9bOF07CiB1bnNpZ25lZCBpbnQgaHRhcHNbOF07CiB1bnNpZ25lZCBpbnQgdnRh
cHNbOF07CiB1bnNpZ25lZCBpbnQgSFRBUHNDaHJvbWFbOF07CiB1bnNpZ25lZCBpbnQgVlRBUHND
aHJvbWFbOF07CiB1bnNpZ25lZCBpbnQgSFRvdGFsWzhdOwogdW5zaWduZWQgaW50IFZUb3RhbFs4
XTsKIHVuc2lnbmVkIGludCBWVG90YWxfTWF4WzhdOwogdW5zaWduZWQgaW50IFZUb3RhbF9NaW5b
OF07CiBpbnQgRFBQUGVyUGxhbmVbOF07CiBkb3VibGUgUGl4ZWxDbG9ja1s4XTsKIGRvdWJsZSBQ
aXhlbENsb2NrQmFja0VuZFs4XTsKIGJvb2wgRENDRW5hYmxlWzhdOwogYm9vbCBGRUNFbmFibGVb
OF07CiB1bnNpZ25lZCBpbnQgRENDTWV0YVBpdGNoWVs4XTsKIHVuc2lnbmVkIGludCBEQ0NNZXRh
UGl0Y2hDWzhdOwogZW51bSBzY2FuX2RpcmVjdGlvbl9jbGFzcyBTb3VyY2VTY2FuWzhdOwogZW51
bSBzb3VyY2VfZm9ybWF0X2NsYXNzIFNvdXJjZVBpeGVsRm9ybWF0WzhdOwogYm9vbCBXcml0ZWJh
Y2tFbmFibGVbOF07CiB1bnNpZ25lZCBpbnQgQWN0aXZlV3JpdGViYWNrc1BlclBsYW5lWzhdOwog
ZG91YmxlIFdyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhbOF07CiBkb3VibGUgV3JpdGViYWNrRGVz
dGluYXRpb25IZWlnaHRbOF07CiBkb3VibGUgV3JpdGViYWNrU291cmNlSGVpZ2h0WzhdOwogZW51
bSBzb3VyY2VfZm9ybWF0X2NsYXNzIFdyaXRlYmFja1BpeGVsRm9ybWF0WzhdOwogdW5zaWduZWQg
aW50IFdyaXRlYmFja0x1bWFIVGFwc1s4XTsKIHVuc2lnbmVkIGludCBXcml0ZWJhY2tMdW1hVlRh
cHNbOF07CiB1bnNpZ25lZCBpbnQgV3JpdGViYWNrQ2hyb21hSFRhcHNbOF07CiB1bnNpZ25lZCBp
bnQgV3JpdGViYWNrQ2hyb21hVlRhcHNbOF07CiBkb3VibGUgV3JpdGViYWNrSFJhdGlvWzhdOwog
ZG91YmxlIFdyaXRlYmFja1ZSYXRpb1s4XTsKIHVuc2lnbmVkIGludCBIQWN0aXZlWzhdOwogdW5z
aWduZWQgaW50IFZBY3RpdmVbOF07CiBib29sIEludGVybGFjZVs4XTsKIGVudW0gZG1fc3dpenps
ZV9tb2RlIFN1cmZhY2VUaWxpbmdbOF07CiB1bnNpZ25lZCBpbnQgU2NhbGVyUmVjb3V0V2lkdGhb
OF07CiBib29sIER5bmFtaWNNZXRhZGF0YUVuYWJsZVs4XTsKIGludCBEeW5hbWljTWV0YWRhdGFM
aW5lc0JlZm9yZUFjdGl2ZVJlcXVpcmVkWzhdOwogdW5zaWduZWQgaW50IER5bmFtaWNNZXRhZGF0
YVRyYW5zbWl0dGVkQnl0ZXNbOF07CiBkb3VibGUgRENDUmF0ZVs4XTsKIGRvdWJsZSBBdmVyYWdl
RENDQ29tcHJlc3Npb25SYXRlOwogZW51bSBvZG1fY29tYmluZV9tb2RlIE9ETUNvbWJpbmVFbmFi
bGVkWzhdOwogZG91YmxlIE91dHB1dEJwcFs4XTsKIGJvb2wgRFNDRW5hYmxlZFs4XTsKIHVuc2ln
bmVkIGludCBEU0NJbnB1dEJpdFBlckNvbXBvbmVudFs4XTsKIGVudW0gb3V0cHV0X2Zvcm1hdF9j
bGFzcyBPdXRwdXRGb3JtYXRbOF07CiBlbnVtIG91dHB1dF9lbmNvZGVyX2NsYXNzIE91dHB1dFs4
XTsKIHVuc2lnbmVkIGludCBCbGVuZGluZ0FuZFRpbWluZ1s4XTsKIGJvb2wgU3luY2hyb25pemVk
VkJsYW5rOwogdW5zaWduZWQgaW50IE51bWJlck9mQ3Vyc29yc1s4XTsKIHVuc2lnbmVkIGludCBD
dXJzb3JXaWR0aFs4XVsyXTsKIHVuc2lnbmVkIGludCBDdXJzb3JCUFBbOF1bMl07CiBib29sIFhG
Q0VuYWJsZWRbOF07CiBib29sIFNjYWxlckVuYWJsZWRbOF07CgoKIGJvb2wgSW1tZWRpYXRlRmxp
cFN1cHBvcnQ7CiBkb3VibGUgREVUQnVmZmVyU2l6ZVlbOF07CiBkb3VibGUgREVUQnVmZmVyU2l6
ZUNbOF07CiB1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRZWzhdOwogdW5zaWduZWQgaW50IFN3YXRo
SGVpZ2h0Q1s4XTsKIHVuc2lnbmVkIGludCBMQkJpdFBlclBpeGVsWzhdOwogZG91YmxlIExhc3RQ
aXhlbE9mTGluZUV4dHJhV2F0ZXJtYXJrOwogZG91YmxlIFRvdGFsRGF0YVJlYWRCYW5kd2lkdGg7
CiB1bnNpZ25lZCBpbnQgVG90YWxBY3RpdmVXcml0ZWJhY2s7CiB1bnNpZ25lZCBpbnQgRWZmZWN0
aXZlTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNMdW1hOwogdW5zaWduZWQgaW50IEVmZmVjdGl2
ZUxCTGF0ZW5jeUhpZGluZ1NvdXJjZUxpbmVzQ2hyb21hOwogZG91YmxlIEJhbmR3aWR0aEF2YWls
YWJsZUZvckltbWVkaWF0ZUZsaXA7CiB1bnNpZ25lZCBpbnQgUHJlZmV0Y2hNb2RlWzcgKyAxXVsy
XTsKIHVuc2lnbmVkIGludCBQcmVmZXRjaE1vZGVQZXJTdGF0ZVs3ICsgMV1bMl07CiB1bnNpZ25l
ZCBpbnQgTWluUHJlZmV0Y2hNb2RlOwogdW5zaWduZWQgaW50IE1heFByZWZldGNoTW9kZTsKIGJv
b2wgQW55TGluZXNGb3JWTU9yUm93VG9vTGFyZ2U7CiBkb3VibGUgTWF4VlN0YXJ0dXA7CiBib29s
IElnbm9yZVZpZXdwb3J0UG9zaXRpb25pbmc7CiBib29sIEVycm9yUmVzdWx0WzhdOwoKCgogZG91
YmxlIERDRkNMS0RlZXBTbGVlcDsKIGRvdWJsZSBVcmdlbnRXYXRlcm1hcms7CiBkb3VibGUgVXJn
ZW50RXh0cmFMYXRlbmN5OwogZG91YmxlIFdyaXRlYmFja1VyZ2VudFdhdGVybWFyazsKIGRvdWJs
ZSBTdHV0dGVyRXhpdFdhdGVybWFyazsKIGRvdWJsZSBTdHV0dGVyRW50ZXJQbHVzRXhpdFdhdGVy
bWFyazsKIGRvdWJsZSBEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcms7CiBkb3VibGUgV3JpdGViYWNr
RFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJrOwogZG91YmxlIFN0dXR0ZXJFZmZpY2llbmN5OwogZG91
YmxlIFN0dXR0ZXJFZmZpY2llbmN5Tm90SW5jbHVkaW5nVkJsYW5rOwogZG91YmxlIE5vblVyZ2Vu
dExhdGVuY3lUb2xlcmFuY2U7CiBkb3VibGUgTWluQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5j
eVN1cHBvcnRlZDsKCgoKCiBkb3VibGUgRElTUENMS19jYWxjdWxhdGVkOwogZG91YmxlIERQUENM
S19jYWxjdWxhdGVkWzhdOwoKIHVuc2lnbmVkIGludCBWVXBkYXRlT2Zmc2V0UGl4WzhdOwogZG91
YmxlIFZVcGRhdGVXaWR0aFBpeFs4XTsKIGRvdWJsZSBWUmVhZHlPZmZzZXRQaXhbOF07CgogdW5z
aWduZWQgaW50IFRvdEltbWVkaWF0ZUZsaXBCeXRlczsKIGRvdWJsZSBUQ2FsYzsKCiBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCBjYWNoZV9waXBlc1s4XTsKIHVuc2lnbmVkIGludCBjYWNoZV9u
dW1fcGlwZXM7CiB1bnNpZ25lZCBpbnQgcGlwZV9wbGFuZVs4XTsKCgoKIGJvb2wgRW1iZWRkZWRQ
YW5lbFs4XTsKIGJvb2wgU3VwcG9ydEdGWDdDb21wYXRpYmxlVGlsaW5nSW4zMmJwcEFuZDY0YnBw
OwogZG91YmxlIE1heEhTQ0xSYXRpbzsKIGRvdWJsZSBNYXhWU0NMUmF0aW87CiB1bnNpZ25lZCBp
bnQgTWF4TnVtV3JpdGViYWNrOwogYm9vbCBXcml0ZWJhY2tMdW1hQW5kQ2hyb21hU2NhbGluZ1N1
cHBvcnRlZDsKIGJvb2wgQ3Vyc29yNjRCcHBTdXBwb3J0OwogZG91YmxlIERDRkNMS1BlclN0YXRl
WzcgKyAxXTsKIGRvdWJsZSBEQ0ZDTEtTdGF0ZVs3ICsgMV1bMl07CiBkb3VibGUgRmFicmljQ2xv
Y2tQZXJTdGF0ZVs3ICsgMV07CiBkb3VibGUgU09DQ0xLUGVyU3RhdGVbNyArIDFdOwogZG91Ymxl
IFBIWUNMS1BlclN0YXRlWzcgKyAxXTsKIGRvdWJsZSBEVEJDTEtQZXJTdGF0ZVs3ICsgMV07CiBk
b3VibGUgTWF4RHBwY2xrWzcgKyAxXTsKIGRvdWJsZSBNYXhEU0NDTEtbNyArIDFdOwogZG91Ymxl
IERSQU1TcGVlZFBlclN0YXRlWzcgKyAxXTsKIGRvdWJsZSBNYXhEaXNwY2xrWzcgKyAxXTsKIGlu
dCBWb2x0YWdlT3ZlcnJpZGVMZXZlbDsKCgogYm9vbCBTY2FsZVJhdGlvQW5kVGFwc1N1cHBvcnQ7
CiBib29sIFNvdXJjZUZvcm1hdFBpeGVsQW5kU2NhblN1cHBvcnQ7CiBkb3VibGUgVG90YWxCYW5k
d2lkdGhDb25zdW1lZEdCeXRlUGVyU2Vjb25kOwogYm9vbCBEQ0NFbmFibGVkSW5BbnlQbGFuZTsK
IGJvb2wgV3JpdGViYWNrTGF0ZW5jeVN1cHBvcnQ7CiBib29sIFdyaXRlYmFja01vZGVTdXBwb3J0
OwogYm9vbCBXcml0ZWJhY2sxMGJwYzQyMFN1cHBvcnRlZDsKIGJvb2wgQmFuZHdpZHRoU3VwcG9y
dFs3ICsgMV07CiB1bnNpZ25lZCBpbnQgVG90YWxOdW1iZXJPZkFjdGl2ZVdyaXRlYmFjazsKIGRv
dWJsZSBDcml0aWNhbFBvaW50OwogZG91YmxlIFJldHVybkJXVG9EQ05QZXJTdGF0ZTsKIGJvb2wg
SXNFcnJvclJlc3VsdFs3ICsgMV1bMl1bOF07CiBib29sIHByZWZldGNoX3ZtX2J3X3ZhbGlkOwog
Ym9vbCBwcmVmZXRjaF9yb3dfYndfdmFsaWQ7CiBib29sIE51bWJlck9mT1RHU3VwcG9ydDsKIGJv
b2wgTm9uc3VwcG9ydGVkRFNDSW5wdXRCUEM7CiBib29sIFdyaXRlYmFja1NjYWxlUmF0aW9BbmRU
YXBzU3VwcG9ydDsKIGJvb2wgQ3Vyc29yU3VwcG9ydDsKIGJvb2wgUGl0Y2hTdXBwb3J0OwogZW51
bSBkbV92YWxpZGF0aW9uX3N0YXR1cyBWYWxpZGF0aW9uU3RhdHVzWzcgKyAxXTsKCiBkb3VibGUg
V3JpdGViYWNrTGluZUJ1ZmZlckx1bWFCdWZmZXJTaXplOwogZG91YmxlIFdyaXRlYmFja0xpbmVC
dWZmZXJDaHJvbWFCdWZmZXJTaXplOwogZG91YmxlIFdyaXRlYmFja01pbkhTQ0xSYXRpbzsKIGRv
dWJsZSBXcml0ZWJhY2tNaW5WU0NMUmF0aW87CiBkb3VibGUgV3JpdGViYWNrTWF4SFNDTFJhdGlv
OwogZG91YmxlIFdyaXRlYmFja01heFZTQ0xSYXRpbzsKIGRvdWJsZSBXcml0ZWJhY2tNYXhIU0NM
VGFwczsKIGRvdWJsZSBXcml0ZWJhY2tNYXhWU0NMVGFwczsKIHVuc2lnbmVkIGludCBNYXhOdW1E
UFA7CiB1bnNpZ25lZCBpbnQgTWF4TnVtT1RHOwogZG91YmxlIEN1cnNvckJ1ZmZlclNpemU7CiBk
b3VibGUgQ3Vyc29yQ2h1bmtTaXplOwogdW5zaWduZWQgaW50IE1vZGU7CiBkb3VibGUgT3V0cHV0
TGlua0RQTGFuZXNbOF07CiBkb3VibGUgRm9yY2VkT3V0cHV0TGlua0JQUFs4XTsKIGRvdWJsZSBJ
bW1lZGlhdGVGbGlwQldbOF07CiBkb3VibGUgTWF4TWF4VlN0YXJ0dXBbNyArIDFdWzJdOwoKIGRv
dWJsZSBXcml0ZWJhY2tMdW1hVkV4dHJhOwogZG91YmxlIFdyaXRlYmFja0Nocm9tYVZFeHRyYTsK
IGRvdWJsZSBXcml0ZWJhY2tSZXF1aXJlZERJU1BDTEs7CiBkb3VibGUgTWF4aW11bVN3YXRoV2lk
dGhTdXBwb3J0OwogZG91YmxlIE1heGltdW1Td2F0aFdpZHRoSW5ERVRCdWZmZXI7CiBkb3VibGUg
TWF4aW11bVN3YXRoV2lkdGhJbkxpbmVCdWZmZXI7CiBkb3VibGUgTWF4RGlzcGNsa1JvdW5kZWRE
b3duVG9ERlNHcmFudWxhcml0eTsKIGRvdWJsZSBNYXhEcHBjbGtSb3VuZGVkRG93blRvREZTR3Jh
bnVsYXJpdHk7CiBkb3VibGUgUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRob3V0T0RNQ29tYmluZTsK
IGRvdWJsZSBQbGFuZVJlcXVpcmVkRElTUENMS1dpdGhPRE1Db21iaW5lOwogZG91YmxlIFBsYW5l
UmVxdWlyZWRESVNQQ0xLOwogZG91YmxlIFRvdGFsTnVtYmVyT2ZBY3RpdmVPVEc7CiBkb3VibGUg
RkVDT3ZlcmhlYWQ7CiBkb3VibGUgRWZmZWN0aXZlRkVDT3ZlcmhlYWQ7CiBkb3VibGUgT3V0YnBw
OwogdW5zaWduZWQgaW50IE91dGJwcERTQzsKIGRvdWJsZSBUb3RhbERTQ1VuaXRzUmVxdWlyZWQ7
CiBkb3VibGUgYnBwOwogdW5zaWduZWQgaW50IHNsaWNlczsKIGRvdWJsZSBTd2F0aFdpZHRoR3Jh
bnVsYXJpdHlZOwogZG91YmxlIFJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzWTsKIGRvdWJsZSBT
d2F0aFdpZHRoR3JhbnVsYXJpdHlDOwogZG91YmxlIFJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVz
QzsKIGRvdWJsZSBFZmZlY3RpdmVERVRMQkxpbmVzTHVtYTsKIGRvdWJsZSBFZmZlY3RpdmVERVRM
QkxpbmVzQ2hyb21hOwogZG91YmxlIFByb2plY3RlZERDRkNMS0RlZXBTbGVlcFs3ICsgMV1bMl07
CiBkb3VibGUgUERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVZOwogZG91YmxlIFBERUFuZE1ldGFQ
VEVCeXRlc1BlckZyYW1lQzsKIHVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZXNZOwogdW5zaWduZWQg
aW50IE1ldGFSb3dCeXRlc0M7CiB1bnNpZ25lZCBpbnQgRFBURUJ5dGVzUGVyUm93QzsKIHVuc2ln
bmVkIGludCBEUFRFQnl0ZXNQZXJSb3dZOwogZG91YmxlIEV4dHJhTGF0ZW5jeTsKIGRvdWJsZSBU
aW1lQ2FsYzsKIGRvdWJsZSBUV2FpdDsKIGRvdWJsZSBNYXhpbXVtUmVhZEJhbmR3aWR0aFdpdGhQ
cmVmZXRjaDsKIGRvdWJsZSBNYXhpbXVtUmVhZEJhbmR3aWR0aFdpdGhvdXRQcmVmZXRjaDsKIGRv
dWJsZSB0b3RhbF9kY25fcmVhZF9id193aXRoX2ZsaXA7CiBkb3VibGUgdG90YWxfZGNuX3JlYWRf
Yndfd2l0aF9mbGlwX25vX3VyZ2VudF9idXJzdDsKIGRvdWJsZSBGcmFjdGlvbk9mVXJnZW50QmFu
ZHdpZHRoOwogZG91YmxlIEZyYWN0aW9uT2ZVcmdlbnRCYW5kd2lkdGhJbW1lZGlhdGVGbGlwOwoK
CiBkb3VibGUgSWRlYWxTRFBQb3J0QmFuZHdpZHRoUGVyU3RhdGVbNyArIDFdWzJdOwogdW5zaWdu
ZWQgaW50IE5vT2ZEUFBbNyArIDFdWzJdWzhdOwogaW50IE5vT2ZEUFBUaGlzU3RhdGVbOF07CiBl
bnVtIG9kbV9jb21iaW5lX21vZGUgT0RNQ29tYmluZUVuYWJsZVBlclN0YXRlWzcgKyAxXVs4XTsK
IGRvdWJsZSBTd2F0aFdpZHRoWVRoaXNTdGF0ZVs4XTsKIHVuc2lnbmVkIGludCBTd2F0aEhlaWdo
dENQZXJTdGF0ZVs3ICsgMV1bMl1bOF07CiB1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRZVGhpc1N0
YXRlWzhdOwogdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0Q1RoaXNTdGF0ZVs4XTsKIGRvdWJsZSBW
UmF0aW9QcmVZWzcgKyAxXVsyXVs4XTsKIGRvdWJsZSBWUmF0aW9QcmVDWzcgKyAxXVsyXVs4XTsK
IGRvdWJsZSBSZXF1aXJlZFByZWZldGNoUGl4ZWxEYXRhQldMdW1hWzcgKyAxXVsyXVs4XTsKIGRv
dWJsZSBSZXF1aXJlZFByZWZldGNoUGl4ZWxEYXRhQldDaHJvbWFbNyArIDFdWzJdWzhdOwogZG91
YmxlIFJlcXVpcmVkRFBQQ0xLWzcgKyAxXVsyXVs4XTsKIGRvdWJsZSBSZXF1aXJlZERQUENMS1Ro
aXNTdGF0ZVs4XTsKIGJvb2wgUFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkWVs3ICsgMV1bMl1bOF07
CiBib29sIFBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZENbNyArIDFdWzJdWzhdOwogYm9vbCBCYW5k
d2lkdGhXaXRob3V0UHJlZmV0Y2hTdXBwb3J0ZWRbNyArIDFdWzJdOwogYm9vbCBQcmVmZXRjaFN1
cHBvcnRlZFs3ICsgMV1bMl07CiBib29sIFZSYXRpb0luUHJlZmV0Y2hTdXBwb3J0ZWRbNyArIDFd
WzJdOwogZG91YmxlIFJlcXVpcmVkRElTUENMS1s3ICsgMV1bMl07CiBib29sIERJU1BDTEtfRFBQ
Q0xLX1N1cHBvcnRbNyArIDFdWzJdOwogYm9vbCBUb3RhbEF2YWlsYWJsZVBpcGVzU3VwcG9ydFs3
ICsgMV1bMl07CiB1bnNpZ25lZCBpbnQgVG90YWxOdW1iZXJPZkFjdGl2ZURQUFs3ICsgMV1bMl07
CiB1bnNpZ25lZCBpbnQgVG90YWxOdW1iZXJPZkRDQ0FjdGl2ZURQUFs3ICsgMV1bMl07CiBib29s
IE1vZGVTdXBwb3J0WzcgKyAxXVsyXTsKIGRvdWJsZSBSZXR1cm5CV1BlclN0YXRlWzcgKyAxXVsy
XTsKIGJvb2wgRElPU3VwcG9ydFs3ICsgMV07CiBib29sIE5vdEVub3VnaERTQ1VuaXRzWzcgKyAx
XTsKIGJvb2wgRFNDQ0xLUmVxdWlyZWRNb3JlVGhhblN1cHBvcnRlZFs3ICsgMV07CiBib29sIERU
QkNMS1JlcXVpcmVkTW9yZVRoYW5TdXBwb3J0ZWRbNyArIDFdOwogZG91YmxlIFVyZ2VudFJvdW5k
VHJpcEFuZE91dE9mT3JkZXJMYXRlbmN5UGVyU3RhdGVbNyArIDFdOwogYm9vbCBST0JTdXBwb3J0
WzcgKyAxXVsyXTsKIGJvb2wgUFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkWzcgKyAxXVsyXTsKIGJv
b2wgVG90YWxWZXJ0aWNhbEFjdGl2ZUJhbmR3aWR0aFN1cHBvcnRbNyArIDFdWzJdOwogZG91Ymxl
IE1heFRvdGFsVmVydGljYWxBY3RpdmVBdmFpbGFibGVCYW5kd2lkdGhbNyArIDFdWzJdOwogZG91
YmxlIFByZWZldGNoQldbOF07CiBkb3VibGUgUERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVbNyAr
IDFdWzJdWzhdOwogZG91YmxlIE1ldGFSb3dCeXRlc1s3ICsgMV1bMl1bOF07CiBkb3VibGUgRFBU
RUJ5dGVzUGVyUm93WzcgKyAxXVsyXVs4XTsKIGRvdWJsZSBQcmVmZXRjaExpbmVzWVs3ICsgMV1b
Ml1bOF07CiBkb3VibGUgUHJlZmV0Y2hMaW5lc0NbNyArIDFdWzJdWzhdOwogdW5zaWduZWQgaW50
IE1heE51bVN3WVs4XTsKIHVuc2lnbmVkIGludCBNYXhOdW1Td0NbOF07CiBkb3VibGUgUHJlZmls
bFlbOF07CiBkb3VibGUgUHJlZmlsbENbOF07CiBkb3VibGUgTGluZVRpbWVzRm9yUHJlZmV0Y2hb
OF07CiBkb3VibGUgTGluZXNGb3JNZXRhUFRFWzhdOwogZG91YmxlIExpbmVzRm9yTWV0YUFuZERQ
VEVSb3dbOF07CiBkb3VibGUgTWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBbOF07CiBkb3VibGUgU3dh
dGhXaWR0aFlTaW5nbGVEUFBbOF07CiBkb3VibGUgQnl0ZVBlclBpeGVsSW5ERVRZWzhdOwogZG91
YmxlIEJ5dGVQZXJQaXhlbEluREVUQ1s4XTsKIGJvb2wgUmVxdWlyZXNEU0NbNyArIDFdWzhdOwog
dW5zaWduZWQgaW50IE51bWJlck9mRFNDU2xpY2VbNyArIDFdWzhdOwogZG91YmxlIFJlcXVpcmVz
RkVDWzcgKyAxXVs4XTsKIGRvdWJsZSBPdXRwdXRCcHBQZXJTdGF0ZVs3ICsgMV1bOF07CiBkb3Vi
bGUgRFNDRGVsYXlQZXJTdGF0ZVs3ICsgMV1bOF07CiBib29sIFZpZXdwb3J0U2l6ZVN1cHBvcnRb
NyArIDFdWzJdOwogdW5zaWduZWQgaW50IFJlYWQyNTZCbG9ja0hlaWdodFlbOF07CiB1bnNpZ25l
ZCBpbnQgUmVhZDI1NkJsb2NrV2lkdGhZWzhdOwogdW5zaWduZWQgaW50IFJlYWQyNTZCbG9ja0hl
aWdodENbOF07CiB1bnNpZ25lZCBpbnQgUmVhZDI1NkJsb2NrV2lkdGhDWzhdOwogZG91YmxlIE1h
eFN3YXRoSGVpZ2h0WVs4XTsKIGRvdWJsZSBNYXhTd2F0aEhlaWdodENbOF07CiBkb3VibGUgTWlu
U3dhdGhIZWlnaHRZWzhdOwogZG91YmxlIE1pblN3YXRoSGVpZ2h0Q1s4XTsKIGRvdWJsZSBSZWFk
QmFuZHdpZHRoTHVtYVs4XTsKIGRvdWJsZSBSZWFkQmFuZHdpZHRoQ2hyb21hWzhdOwogZG91Ymxl
IFJlYWRCYW5kd2lkdGhbOF07CiBkb3VibGUgV3JpdGVCYW5kd2lkdGhbOF07CiBkb3VibGUgUFND
TF9GQUNUT1JbOF07CiBkb3VibGUgUFNDTF9GQUNUT1JfQ0hST01BWzhdOwogZG91YmxlIE1heGlt
dW1WU3RhcnR1cFs3ICsgMV1bMl1bOF07CiB1bnNpZ25lZCBpbnQgTWFjcm9UaWxlV2lkdGhZWzhd
OwogdW5zaWduZWQgaW50IE1hY3JvVGlsZVdpZHRoQ1s4XTsKIGRvdWJsZSBBbGlnbmVkRENDTWV0
YVBpdGNoWzhdOwogZG91YmxlIEFsaWduZWRZUGl0Y2hbOF07CiBkb3VibGUgQWxpZ25lZENQaXRj
aFs4XTsKIGRvdWJsZSBNYXhpbXVtU3dhdGhXaWR0aFs4XTsKIGRvdWJsZSBjdXJzb3JfYndbOF07
CiBkb3VibGUgY3Vyc29yX2J3X3ByZVs4XTsKIGRvdWJsZSBUbm9fYndbOF07CiBkb3VibGUgcHJl
ZmV0Y2hfdm1yb3dfYndbOF07CiBkb3VibGUgRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5J
bW1lZGlhdGVGbGlwWzhdOwogZG91YmxlIERlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJbklt
bWVkaWF0ZUZsaXBbOF07CiBkb3VibGUgZmluYWxfZmxpcF9id1s4XTsKIGJvb2wgSW1tZWRpYXRl
RmxpcFN1cHBvcnRlZEZvclN0YXRlWzcgKyAxXVsyXTsKIGRvdWJsZSBXcml0ZWJhY2tEZWxheVs3
ICsgMV1bOF07CiB1bnNpZ25lZCBpbnQgdm1fZ3JvdXBfYnl0ZXNbOF07CiB1bnNpZ25lZCBpbnQg
ZHB0ZV9ncm91cF9ieXRlc1s4XTsKIHVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRbOF07CiB1
bnNpZ25lZCBpbnQgbWV0YV9yZXFfaGVpZ2h0WzhdOwogdW5zaWduZWQgaW50IG1ldGFfcmVxX3dp
ZHRoWzhdOwogdW5zaWduZWQgaW50IG1ldGFfcm93X2hlaWdodFs4XTsKIHVuc2lnbmVkIGludCBt
ZXRhX3Jvd193aWR0aFs4XTsKIHVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRfY2hyb21hWzhd
OwogdW5zaWduZWQgaW50IG1ldGFfcmVxX2hlaWdodF9jaHJvbWFbOF07CiB1bnNpZ25lZCBpbnQg
bWV0YV9yZXFfd2lkdGhfY2hyb21hWzhdOwogdW5zaWduZWQgaW50IG1ldGFfcm93X2hlaWdodF9j
aHJvbWFbOF07CiB1bnNpZ25lZCBpbnQgbWV0YV9yb3dfd2lkdGhfY2hyb21hWzhdOwogYm9vbCBJ
bW1lZGlhdGVGbGlwU3VwcG9ydGVkRm9yUGlwZVs4XTsKIGRvdWJsZSBtZXRhX3Jvd19id1s4XTsK
IGRvdWJsZSBkcHRlX3Jvd19id1s4XTsKIGRvdWJsZSBEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRp
bWVMdW1hWzhdOwogZG91YmxlIERpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUNocm9tYVs4XTsK
IGRvdWJsZSBEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVMdW1hWzhdOwogZG91YmxlIERp
c3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUNocm9tYVs4XTsKIGVudW0gY2xvY2tfY2hhbmdl
X3N1cHBvcnQgRFJBTUNsb2NrQ2hhbmdlU3VwcG9ydFs3ICsgMV1bMl07CiBkb3VibGUgVXJnZW50
QnVyc3RGYWN0b3JDdXJzb3JbOF07CiBkb3VibGUgVXJnZW50QnVyc3RGYWN0b3JDdXJzb3JQcmVb
OF07CiBkb3VibGUgVXJnZW50QnVyc3RGYWN0b3JMdW1hWzhdOwogZG91YmxlIFVyZ2VudEJ1cnN0
RmFjdG9yTHVtYVByZVs4XTsKIGRvdWJsZSBVcmdlbnRCdXJzdEZhY3RvckNocm9tYVs4XTsKIGRv
dWJsZSBVcmdlbnRCdXJzdEZhY3RvckNocm9tYVByZVs4XTsKCgogYm9vbCBNUENDb21iaW5lWzcg
KyAxXVsyXVs4XTsKIGRvdWJsZSBTd2F0aFdpZHRoQ1NpbmdsZURQUFs4XTsKIGRvdWJsZSBNYXhp
bXVtU3dhdGhXaWR0aEluTGluZUJ1ZmZlckx1bWE7CiBkb3VibGUgTWF4aW11bVN3YXRoV2lkdGhJ
bkxpbmVCdWZmZXJDaHJvbWE7CiBkb3VibGUgTWF4aW11bVN3YXRoV2lkdGhMdW1hWzhdOwogZG91
YmxlIE1heGltdW1Td2F0aFdpZHRoQ2hyb21hWzhdOwogZW51bSBvZG1fY29tYmluZV9tb2RlIG9k
bV9jb21iaW5lX2R1bW15WzhdOwogZG91YmxlIGR1bW15MVs4XTsKIGRvdWJsZSBkdW1teTJbOF07
CiBkb3VibGUgZHVtbXkzWzhdOwogZG91YmxlIGR1bW15NFs4XTsKIGRvdWJsZSBkdW1teTU7CiBk
b3VibGUgZHVtbXk2OwogZG91YmxlIGR1bW15N1s4XTsKIGRvdWJsZSBkdW1teThbOF07CiB1bnNp
Z25lZCBpbnQgZHVtbXlpbnRlZ2VyMW1zWzhdOwogZG91YmxlIGR1bW15aW50ZWdlcjJtc1s4XTsK
IHVuc2lnbmVkIGludCBkdW1teWludGVnZXIzWzhdOwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdl
cjRbOF07CiB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyNTsKIHVuc2lnbmVkIGludCBkdW1teWlu
dGVnZXI2OwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcjc7CiB1bnNpZ25lZCBpbnQgZHVtbXlp
bnRlZ2VyODsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXI5OwogdW5zaWduZWQgaW50IGR1bW15
aW50ZWdlcjEwOwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcjExOwogdW5zaWduZWQgaW50IGR1
bW15aW50ZWdlcjEyOwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcmFycjFbOF07CiB1bnNpZ25l
ZCBpbnQgZHVtbXlpbnRlZ2VyYXJyMls4XTsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXJhcnIz
WzhdOwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcmFycjRbOF07CiBib29sIGR1bW15c2luZ2xl
c3RyaW5nOwogYm9vbCBTaW5nbGVEUFBWaWV3cG9ydFNpemVTdXBwb3J0UGVyUGxhbmVbOF07CiBk
b3VibGUgUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRoT0RNQ29tYmluZTJUbzE7CiBkb3VibGUgUGxh
bmVSZXF1aXJlZERJU1BDTEtXaXRoT0RNQ29tYmluZTRUbzE7CiB1bnNpZ25lZCBpbnQgVG90YWxO
dW1iZXJPZlNpbmdsZURQUFBsYW5lc1s3ICsgMV1bMl07CiBib29sIExpbmtEU0NFbmFibGU7CiBi
b29sIE9ETUNvbWJpbmU0VG8xU3VwcG9ydENoZWNrT0tbNyArIDFdOwogZW51bSBvZG1fY29tYmlu
ZV9tb2RlIE9ETUNvbWJpbmVFbmFibGVUaGlzU3RhdGVbOF07CiBkb3VibGUgU3dhdGhXaWR0aENU
aGlzU3RhdGVbOF07CiBib29sIFZpZXdwb3J0U2l6ZVN1cHBvcnRQZXJQbGFuZVs4XTsKIGRvdWJs
ZSBBbGlnbmVkRENDTWV0YVBpdGNoWVs4XTsKIGRvdWJsZSBBbGlnbmVkRENDTWV0YVBpdGNoQ1s4
XTsKCiB1bnNpZ25lZCBpbnQgTm90RW5vdWdoVXJnZW50TGF0ZW5jeUhpZGluZzsKIHVuc2lnbmVk
IGludCBOb3RFbm91Z2hVcmdlbnRMYXRlbmN5SGlkaW5nUHJlOwogaW50IFBURUJ1ZmZlclNpemVJ
blJlcXVlc3RzRm9yTHVtYTsKIGludCBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0ZvckNocm9tYTsK
CgogaW50IGRwdGVfZ3JvdXBfYnl0ZXNfY2hyb21hOwogdW5zaWduZWQgaW50IHZtX2dyb3VwX2J5
dGVzX2Nocm9tYTsKIGRvdWJsZSBkc3RfeF9hZnRlcl9zY2FsZXI7CiBkb3VibGUgZHN0X3lfYWZ0
ZXJfc2NhbGVyOwogdW5zaWduZWQgaW50IFZTdGFydHVwUmVxdWlyZWRXaGVuTm90RW5vdWdoVGlt
ZUZvckR5bmFtaWNNZXRhZGF0YTsKCgogZG91YmxlIFByZWZldGNoQmFuZHdpZHRoWzhdOwogZG91
YmxlIFZJbml0UHJlRmlsbFlbOF07CiBkb3VibGUgVkluaXRQcmVGaWxsQ1s4XTsKIHVuc2lnbmVk
IGludCBNYXhOdW1Td2F0aFlbOF07CiB1bnNpZ25lZCBpbnQgTWF4TnVtU3dhdGhDWzhdOwogdW5z
aWduZWQgaW50IFZTdGFydHVwWzhdOwogZG91YmxlIERTVFlBZnRlclNjYWxlcls4XTsKIGRvdWJs
ZSBEU1RYQWZ0ZXJTY2FsZXJbOF07CiBib29sIEFsbG93RFJBTUNsb2NrQ2hhbmdlRHVyaW5nVkJs
YW5rWzhdOwogYm9vbCBBbGxvd0RSQU1TZWxmUmVmcmVzaER1cmluZ1ZCbGFua1s4XTsKIGRvdWJs
ZSBWUmF0aW9QcmVmZXRjaFlbOF07CiBkb3VibGUgVlJhdGlvUHJlZmV0Y2hDWzhdOwogZG91Ymxl
IERlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaFs4XTsKIGRvdWJsZSBEZXN0aW5hdGlvbkxpbmVz
VG9SZXF1ZXN0Vk1JblZCbGFua1s4XTsKIGRvdWJsZSBEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0
Um93SW5WQmxhbmtbOF07CiBkb3VibGUgTWluVFRVVkJsYW5rWzhdOwogZG91YmxlIEJ5dGVQZXJQ
aXhlbERFVFlbOF07CiBkb3VibGUgQnl0ZVBlclBpeGVsREVUQ1s4XTsKIGRvdWJsZSBTd2F0aFdp
ZHRoWVs4XTsKIGRvdWJsZSBTd2F0aFdpZHRoU2luZ2xlRFBQWVs4XTsKIGRvdWJsZSBDdXJzb3JS
ZXF1ZXN0RGVsaXZlcnlUaW1lWzhdOwogZG91YmxlIEN1cnNvclJlcXVlc3REZWxpdmVyeVRpbWVQ
cmVmZXRjaFs4XTsKIGRvdWJsZSBSZWFkQmFuZHdpZHRoUGxhbmVMdW1hWzhdOwogZG91YmxlIFJl
YWRCYW5kd2lkdGhQbGFuZUNocm9tYVs4XTsKIGRvdWJsZSBEaXNwbGF5UGlwZUxpbmVEZWxpdmVy
eVRpbWVMdW1hUHJlZmV0Y2hbOF07CiBkb3VibGUgRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1l
Q2hyb21hUHJlZmV0Y2hbOF07CiBkb3VibGUgRGlzcGxheVBpcGVSZXF1ZXN0RGVsaXZlcnlUaW1l
THVtYVByZWZldGNoWzhdOwogZG91YmxlIERpc3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUNo
cm9tYVByZWZldGNoWzhdOwogZG91YmxlIFBpeGVsUFRFQnl0ZXNQZXJSb3dbOF07CiBkb3VibGUg
UERFQW5kTWV0YVBURUJ5dGVzRnJhbWVbOF07CiBkb3VibGUgTWV0YVJvd0J5dGVbOF07CiBkb3Vi
bGUgUHJlZmV0Y2hTb3VyY2VMaW5lc1lbOF07CiBkb3VibGUgUmVxdWlyZWRQcmVmZXRjaFBpeERh
dGFCV0x1bWFbOF07CiBkb3VibGUgUmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCV0Nocm9tYVs4XTsK
IGRvdWJsZSBQcmVmZXRjaFNvdXJjZUxpbmVzQ1s4XTsKIGRvdWJsZSBQU0NMX1RIUk9VR0hQVVRf
TFVNQVs4XTsKIGRvdWJsZSBQU0NMX1RIUk9VR0hQVVRfQ0hST01BWzhdOwogZG91YmxlIERTQ0NM
S19jYWxjdWxhdGVkWzhdOwogdW5zaWduZWQgaW50IERTQ0RlbGF5WzhdOwogdW5zaWduZWQgaW50
IE1heFZTdGFydHVwTGluZXNbOF07CiBkb3VibGUgRFBQQ0xLVXNpbmdTaW5nbGVEUFBbOF07CiBk
b3VibGUgRFBQQ0xLWzhdOwogdW5zaWduZWQgaW50IERDQ1lNYXhVbmNvbXByZXNzZWRCbG9ja1s4
XTsKIHVuc2lnbmVkIGludCBEQ0NZTWF4Q29tcHJlc3NlZEJsb2NrWzhdOwogdW5zaWduZWQgaW50
IERDQ1lJbmRlcGVuZGVudDY0Qnl0ZUJsb2NrWzhdOwogZG91YmxlIE1heGltdW1EQ0NDb21wcmVz
c2lvbllTdXJmYWNlWzhdOwogdW5zaWduZWQgaW50IEJsb2NrSGVpZ2h0MjU2Qnl0ZXNZWzhdOwog
dW5zaWduZWQgaW50IEJsb2NrSGVpZ2h0MjU2Qnl0ZXNDWzhdOwogdW5zaWduZWQgaW50IEJsb2Nr
V2lkdGgyNTZCeXRlc1lbOF07CiB1bnNpZ25lZCBpbnQgQmxvY2tXaWR0aDI1NkJ5dGVzQ1s4XTsK
IGRvdWJsZSBYRkNTbGF2ZVZVcGRhdGVPZmZzZXRbOF07CiBkb3VibGUgWEZDU2xhdmVWdXBkYXRl
V2lkdGhbOF07CiBkb3VibGUgWEZDU2xhdmVWUmVhZHlPZmZzZXRbOF07CiBkb3VibGUgWEZDVHJh
bnNmZXJEZWxheVs4XTsKIGRvdWJsZSBYRkNQcmVjaGFyZ2VEZWxheVs4XTsKIGRvdWJsZSBYRkNS
ZW1vdGVTdXJmYWNlRmxpcExhdGVuY3lbOF07CiBkb3VibGUgWEZDUHJlZmV0Y2hNYXJnaW5bOF07
CiB1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfd2lkdGhfbHVtYV91Yls4XTsKIHVuc2lnbmVkIGludCBk
cHRlX3Jvd193aWR0aF9jaHJvbWFfdWJbOF07CiBkb3VibGUgRnVsbERFVEJ1ZmZlcmluZ1RpbWVZ
WzhdOwogZG91YmxlIEZ1bGxERVRCdWZmZXJpbmdUaW1lQ1s4XTsKIGRvdWJsZSBEU1RfWV9QRVJf
UFRFX1JPV19OT01fTFs4XTsKIGRvdWJsZSBEU1RfWV9QRVJfUFRFX1JPV19OT01fQ1s4XTsKIGRv
dWJsZSBEU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0xbOF07CiBkb3VibGUgVGltZVBlck1ldGFDaHVu
a05vbWluYWxbOF07CiBkb3VibGUgVGltZVBlck1ldGFDaHVua1ZCbGFua1s4XTsKIGRvdWJsZSBU
aW1lUGVyTWV0YUNodW5rRmxpcFs4XTsKIHVuc2lnbmVkIGludCBzd2F0aF93aWR0aF9sdW1hX3Vi
WzhdOwogdW5zaWduZWQgaW50IHN3YXRoX3dpZHRoX2Nocm9tYV91Yls4XTsKIHVuc2lnbmVkIGlu
dCBQaXhlbFBURVJlcVdpZHRoWVs4XTsKIHVuc2lnbmVkIGludCBQaXhlbFBURVJlcUhlaWdodFlb
OF07CiB1bnNpZ25lZCBpbnQgUFRFUmVxdWVzdFNpemVZWzhdOwogdW5zaWduZWQgaW50IFBpeGVs
UFRFUmVxV2lkdGhDWzhdOwogdW5zaWduZWQgaW50IFBpeGVsUFRFUmVxSGVpZ2h0Q1s4XTsKIHVu
c2lnbmVkIGludCBQVEVSZXF1ZXN0U2l6ZUNbOF07CiBkb3VibGUgdGltZV9wZXJfcHRlX2dyb3Vw
X25vbV9sdW1hWzhdOwogZG91YmxlIHRpbWVfcGVyX3B0ZV9ncm91cF9ub21fY2hyb21hWzhdOwog
ZG91YmxlIHRpbWVfcGVyX3B0ZV9ncm91cF92YmxhbmtfbHVtYVs4XTsKIGRvdWJsZSB0aW1lX3Bl
cl9wdGVfZ3JvdXBfdmJsYW5rX2Nocm9tYVs4XTsKIGRvdWJsZSB0aW1lX3Blcl9wdGVfZ3JvdXBf
ZmxpcF9sdW1hWzhdOwogZG91YmxlIHRpbWVfcGVyX3B0ZV9ncm91cF9mbGlwX2Nocm9tYVs4XTsK
IGRvdWJsZSBUaW1lUGVyVk1Hcm91cFZCbGFua1s4XTsKIGRvdWJsZSBUaW1lUGVyVk1Hcm91cEZs
aXBbOF07CiBkb3VibGUgVGltZVBlclZNUmVxdWVzdFZCbGFua1s4XTsKIGRvdWJsZSBUaW1lUGVy
Vk1SZXF1ZXN0RmxpcFs4XTsKIHVuc2lnbmVkIGludCBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJf
bFs4XTsKIHVuc2lnbmVkIGludCBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfbFs4XTsKIHVu
c2lnbmVkIGludCBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfY1s4XTsKIHVuc2lnbmVkIGludCBt
ZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfY1s4XTsKIGRvdWJsZSBMaW5lc1RvRmluaXNoU3dh
dGhUcmFuc2ZlclN0dXR0ZXJDcml0aWNhbFBsYW5lOwogdW5zaWduZWQgaW50IEJ5dGVQZXJQaXhl
bFlDcml0aWNhbFBsYW5lOwogZG91YmxlIFN3YXRoV2lkdGhZQ3JpdGljYWxQbGFuZTsKIGRvdWJs
ZSBMaW5lc0luREVUWVs4XTsKIGRvdWJsZSBMaW5lc0luREVUWVJvdW5kZWREb3duVG9Td2F0aFs4
XTsKCiBkb3VibGUgU3dhdGhXaWR0aFNpbmdsZURQUENbOF07CiBkb3VibGUgU3dhdGhXaWR0aENb
OF07CiB1bnNpZ25lZCBpbnQgQnl0ZVBlclBpeGVsWVs4XTsKIHVuc2lnbmVkIGludCBCeXRlUGVy
UGl4ZWxDWzhdOwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcjE7CiB1bnNpZ25lZCBpbnQgZHVt
bXlpbnRlZ2VyMjsKIGRvdWJsZSBGaW5hbERSQU1DbG9ja0NoYW5nZUxhdGVuY3k7CiBkb3VibGUg
VGRtZGxfdm1bOF07CiBkb3VibGUgVGRtZGxbOF07CiB1bnNpZ25lZCBpbnQgVGhpc1ZTdGFydHVw
OwogYm9vbCBXcml0ZWJhY2tBbGxvd0RSQU1DbG9ja0NoYW5nZUVuZFBvc2l0aW9uWzhdOwogZG91
YmxlIERTVF9ZX1BFUl9NRVRBX1JPV19OT01fQ1s4XTsKIGRvdWJsZSBUaW1lUGVyQ2hyb21hTWV0
YUNodW5rTm9taW5hbFs4XTsKIGRvdWJsZSBUaW1lUGVyQ2hyb21hTWV0YUNodW5rVkJsYW5rWzhd
OwogZG91YmxlIFRpbWVQZXJDaHJvbWFNZXRhQ2h1bmtGbGlwWzhdOwogdW5zaWduZWQgaW50IERD
Q0NNYXhVbmNvbXByZXNzZWRCbG9ja1s4XTsKIHVuc2lnbmVkIGludCBEQ0NDTWF4Q29tcHJlc3Nl
ZEJsb2NrWzhdOwogdW5zaWduZWQgaW50IERDQ0NJbmRlcGVuZGVudDY0Qnl0ZUJsb2NrWzhdOwog
ZG91YmxlIFZTdGFydHVwTWFyZ2luOwogYm9vbCBOb3RFbm91Z2hUaW1lRm9yRHluYW1pY01ldGFk
YXRhOwoKCiB1bnNpZ25lZCBpbnQgTWF4aW11bU1heFZTdGFydHVwTGluZXM7CiBkb3VibGUgRmFi
cmljQW5kRFJBTUJhbmR3aWR0aDsKIGRvdWJsZSBMaW5lc0luREVUTHVtYTsKIGRvdWJsZSBMaW5l
c0luREVUQ2hyb21hOwogdW5zaWduZWQgaW50IEltbWVkaWF0ZUZsaXBCeXRlc1s4XTsKIHVuc2ln
bmVkIGludCBMaW5lc0luREVUQ1s4XTsKIHVuc2lnbmVkIGludCBMaW5lc0luREVUQ1JvdW5kZWRE
b3duVG9Td2F0aFs4XTsKIGRvdWJsZSBVcmdlbnRMYXRlbmN5U3VwcG9ydFVzUGVyU3RhdGVbNyAr
IDFdWzJdWzhdOwogZG91YmxlIFVyZ2VudExhdGVuY3lTdXBwb3J0VXNbOF07CiBkb3VibGUgRmFi
cmljQW5kRFJBTUJhbmR3aWR0aFBlclN0YXRlWzcgKyAxXTsKIGJvb2wgVXJnZW50TGF0ZW5jeVN1
cHBvcnRbNyArIDFdWzJdOwogdW5zaWduZWQgaW50IFN3YXRoV2lkdGhZUGVyU3RhdGVbNyArIDFd
WzJdWzhdOwogdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WVBlclN0YXRlWzcgKyAxXVsyXVs4XTsK
IGRvdWJsZSBxdWFsX3Jvd19id1s4XTsKIGRvdWJsZSBwcmVmZXRjaF9yb3dfYndbOF07CiBkb3Vi
bGUgcHJlZmV0Y2hfdm1fYndbOF07CgogZG91YmxlIFBURUdyb3VwU2l6ZTsKIHVuc2lnbmVkIGlu
dCBQREVQcm9jZXNzaW5nQnVmSW42NEtCUmVxczsKCiBkb3VibGUgTWF4VG90YWxWQWN0aXZlUkRC
YW5kd2lkdGg7CiBib29sIERvVXJnZW50TGF0ZW5jeUFkanVzdG1lbnQ7CiBkb3VibGUgVXJnZW50
TGF0ZW5jeUFkanVzdG1lbnRGYWJyaWNDbG9ja0NvbXBvbmVudDsKIGRvdWJsZSBVcmdlbnRMYXRl
bmN5QWRqdXN0bWVudEZhYnJpY0Nsb2NrUmVmZXJlbmNlOwogZG91YmxlIE1pblVyZ2VudExhdGVu
Y3lTdXBwb3J0VXM7CiBkb3VibGUgTWluRnVsbERFVEJ1ZmZlcmluZ1RpbWU7CiBkb3VibGUgQXZl
cmFnZVJlYWRCYW5kd2lkdGhHQnl0ZVBlclNlY29uZDsKIGJvb2wgRmlyc3RNYWluUGxhbmU7Cgog
dW5zaWduZWQgaW50IFZpZXdwb3J0V2lkdGhDaHJvbWFbOF07CiB1bnNpZ25lZCBpbnQgVmlld3Bv
cnRIZWlnaHRDaHJvbWFbOF07CiBkb3VibGUgSFJhdGlvQ2hyb21hWzhdOwogZG91YmxlIFZSYXRp
b0Nocm9tYVs4XTsKIGludCBXcml0ZWJhY2tTb3VyY2VXaWR0aFs4XTsKCiBib29sIE1vZGVJc1N1
cHBvcnRlZDsKIGJvb2wgT0RNQ29tYmluZTRUbzFTdXBwb3J0ZWQ7CgogdW5zaWduZWQgaW50IFN1
cmZhY2VXaWR0aFlbOF07CiB1bnNpZ25lZCBpbnQgU3VyZmFjZVdpZHRoQ1s4XTsKIHVuc2lnbmVk
IGludCBTdXJmYWNlSGVpZ2h0WVs4XTsKIHVuc2lnbmVkIGludCBTdXJmYWNlSGVpZ2h0Q1s4XTsK
IHVuc2lnbmVkIGludCBXcml0ZWJhY2tIVGFwc1s4XTsKIHVuc2lnbmVkIGludCBXcml0ZWJhY2tW
VGFwc1s4XTsKIGJvb2wgRFNDRW5hYmxlWzhdOwoKIGRvdWJsZSBEUkFNQ2xvY2tDaGFuZ2VMYXRl
bmN5T3ZlcnJpZGU7CgogZG91YmxlIEdQVVZNTWluUGFnZVNpemU7CiBkb3VibGUgSG9zdFZNTWlu
UGFnZVNpemU7CgogYm9vbCBNUENDb21iaW5lRW5hYmxlWzhdOwogdW5zaWduZWQgaW50IEhvc3RW
TU1heE5vbkNhY2hlZFBhZ2VUYWJsZUxldmVsczsKIGJvb2wgRHluYW1pY01ldGFkYXRhVk1FbmFi
bGVkOwogZG91YmxlIFdyaXRlYmFja0ludGVyZmFjZUJ1ZmZlclNpemU7CiBkb3VibGUgV3JpdGVi
YWNrTGluZUJ1ZmZlclNpemU7CgogZG91YmxlIERDQ1JhdGVMdW1hWzhdOwogZG91YmxlIERDQ1Jh
dGVDaHJvbWFbOF07CgogZG91YmxlIFBIWUNMS0QxOFBlclN0YXRlWzcgKyAxXTsKIGludCBNaW5W
b2x0YWdlTGV2ZWw7CiBpbnQgTWF4Vm9sdGFnZUxldmVsOwoKIGJvb2wgV3JpdGViYWNrU3VwcG9y
dEludGVybGVhdmVBbmRVc2luZ1dob2xlQnVmZmVyRm9yQVNpbmdsZVN0cmVhbTsKIGJvb2wgTnVt
YmVyT2ZIRE1JRlJMU3VwcG9ydDsKIHVuc2lnbmVkIGludCBNYXhOdW1IRE1JRlJMT3V0cHV0czsK
IGludCBBdWRpb1NhbXBsZVJhdGVbOF07CiBpbnQgQXVkaW9TYW1wbGVMYXlvdXRbOF07CgogaW50
IFBlcmNlbnRNYXJnaW5PdmVyTWluaW11bVJlcXVpcmVkRENGQ0xLOwogYm9vbCBEeW5hbWljTWV0
YWRhdGFTdXBwb3J0ZWRbNyArIDFdWzJdOwogZW51bSBpbW1lZGlhdGVfZmxpcF9yZXF1aXJlbWVu
dCBJbW1lZGlhdGVGbGlwUmVxdWlyZW1lbnQ7CiBkb3VibGUgREVUQnVmZmVyU2l6ZVlUaGlzU3Rh
dGVbOF07CiBkb3VibGUgREVUQnVmZmVyU2l6ZUNUaGlzU3RhdGVbOF07CiBib29sIE5vVXJnZW50
TGF0ZW5jeUhpZGluZ1s4XTsKIGJvb2wgTm9VcmdlbnRMYXRlbmN5SGlkaW5nUHJlWzhdOwogaW50
IHN3YXRoX3dpZHRoX2x1bWFfdWJfdGhpc19zdGF0ZVs4XTsKIGludCBzd2F0aF93aWR0aF9jaHJv
bWFfdWJfdGhpc19zdGF0ZVs4XTsKIGRvdWJsZSBVcmdMYXRlbmN5WzcgKyAxXTsKIGRvdWJsZSBW
QWN0aXZlQ3Vyc29yQmFuZHdpZHRoWzcgKyAxXVsyXVs4XTsKIGRvdWJsZSBWQWN0aXZlUGl4ZWxC
YW5kd2lkdGhbNyArIDFdWzJdWzhdOwogYm9vbCBOb1RpbWVGb3JQcmVmZXRjaFs3ICsgMV1bMl1b
OF07CiBib29sIE5vVGltZUZvckR5bmFtaWNNZXRhZGF0YVs3ICsgMV1bMl1bOF07CiBkb3VibGUg
ZHB0ZV9yb3dfYmFuZHdpZHRoWzcgKyAxXVsyXVs4XTsKIGRvdWJsZSBtZXRhX3Jvd19iYW5kd2lk
dGhbNyArIDFdWzJdWzhdOwogZG91YmxlIERFVEJ1ZmZlclNpemVZQWxsU3RhdGVzWzcgKyAxXVsy
XVs4XTsKIGRvdWJsZSBERVRCdWZmZXJTaXplQ0FsbFN0YXRlc1s3ICsgMV1bMl1bOF07CiBpbnQg
c3dhdGhfd2lkdGhfbHVtYV91Yl9hbGxfc3RhdGVzWzcgKyAxXVsyXVs4XTsKIGludCBzd2F0aF93
aWR0aF9jaHJvbWFfdWJfYWxsX3N0YXRlc1s3ICsgMV1bMl1bOF07CiBib29sIE5vdFVyZ2VudExh
dGVuY3lIaWRpbmdbNyArIDFdWzJdOwogdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WUFsbFN0YXRl
c1s3ICsgMV1bMl1bOF07CiB1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRDQWxsU3RhdGVzWzcgKyAx
XVsyXVs4XTsKIHVuc2lnbmVkIGludCBTd2F0aFdpZHRoWUFsbFN0YXRlc1s3ICsgMV1bMl1bOF07
CiB1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aENBbGxTdGF0ZXNbNyArIDFdWzJdWzhdOwogZG91Ymxl
IFRvdGFsRFBURVJvd0JhbmR3aWR0aFs3ICsgMV1bMl07CiBkb3VibGUgVG90YWxNZXRhUm93QmFu
ZHdpZHRoWzcgKyAxXVsyXTsKIGRvdWJsZSBUb3RhbFZBY3RpdmVDdXJzb3JCYW5kd2lkdGhbNyAr
IDFdWzJdOwogZG91YmxlIFRvdGFsVkFjdGl2ZVBpeGVsQmFuZHdpZHRoWzcgKyAxXVsyXTsKIGJv
b2wgVXNlTWluaW11bVJlcXVpcmVkRENGQ0xLOwogZG91YmxlIFdyaXRlYmFja0RlbGF5VGltZVs4
XTsKIHVuc2lnbmVkIGludCBEQ0NZSW5kZXBlbmRlbnRCbG9ja1s4XTsKIHVuc2lnbmVkIGludCBE
Q0NDSW5kZXBlbmRlbnRCbG9ja1s4XTsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIxNTsKIHVu
c2lnbmVkIGludCBkdW1teWludGVnZXIxNjsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIxNzsK
IHVuc2lnbmVkIGludCBkdW1teWludGVnZXIxODsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIx
OTsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIyMDsKIHVuc2lnbmVkIGludCBkdW1teWludGVn
ZXIyMTsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIyMjsKIHVuc2lnbmVkIGludCBkdW1teWlu
dGVnZXIyMzsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIyNDsKIHVuc2lnbmVkIGludCBkdW1t
eWludGVnZXIyNTsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIyNjsKIHVuc2lnbmVkIGludCBk
dW1teWludGVnZXIyNzsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIyODsKIHVuc2lnbmVkIGlu
dCBkdW1teWludGVnZXIyOTsKIGJvb2wgZHVtbXlzdHJpbmdbOF07CiBkb3VibGUgQlBQOwogZW51
bSBvZG1fY29tYmluZV9wb2xpY3kgT0RNQ29tYmluZVBvbGljeTsKfTsKCmJvb2wgQ2FsY3VsYXRl
TWluQW5kTWF4UHJlZmV0Y2hNb2RlKAogIGVudW0gc2VsZl9yZWZyZXNoX2FmZmluaXR5IEFsbG93
RFJBTVNlbGZSZWZyZXNoT3JEUkFNQ2xvY2tDaGFuZ2VJblZibGFuaywKICB1bnNpZ25lZCBpbnQg
Kk1pblByZWZldGNoTW9kZSwKICB1bnNpZ25lZCBpbnQgKk1heFByZWZldGNoTW9kZSk7Cgpkb3Vi
bGUgQ2FsY3VsYXRlV3JpdGVCYWNrRElTUENMSygKICBlbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3Mg
V3JpdGViYWNrUGl4ZWxGb3JtYXQsCiAgZG91YmxlIFBpeGVsQ2xvY2ssCiAgZG91YmxlIFdyaXRl
YmFja0hSYXRpbywKICBkb3VibGUgV3JpdGViYWNrVlJhdGlvLAogIHVuc2lnbmVkIGludCBXcml0
ZWJhY2tMdW1hSFRhcHMsCiAgdW5zaWduZWQgaW50IFdyaXRlYmFja0x1bWFWVGFwcywKICB1bnNp
Z25lZCBpbnQgV3JpdGViYWNrQ2hyb21hSFRhcHMsCiAgdW5zaWduZWQgaW50IFdyaXRlYmFja0No
cm9tYVZUYXBzLAogIGRvdWJsZSBXcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoLAogIHVuc2lnbmVk
IGludCBIVG90YWwsCiAgdW5zaWduZWQgaW50IFdyaXRlYmFja0Nocm9tYUxpbmVCdWZmZXJXaWR0
aCk7CiMgMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwv
ZGlzcGxheV9tb2RlX2xpYi5oIiAyCgplbnVtIGRtbF9wcm9qZWN0IHsKIERNTF9QUk9KRUNUX1VO
REVGSU5FRCwKIERNTF9QUk9KRUNUX1JBVkVOMSwKIERNTF9QUk9KRUNUX05BVkkxMCwKIERNTF9Q
Uk9KRUNUX05BVkkxMHYyLAogRE1MX1BST0pFQ1RfRENOMjEsCn07CgpzdHJ1Y3QgZGlzcGxheV9t
b2RlX2xpYjsKCnN0cnVjdCBkbWxfZnVuY3Mgewogdm9pZCAoKnJxX2RsZ19nZXRfZGxnX3JlZyko
CiAgIHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKICAgZGlzcGxheV9kbGdfcmVn
c19zdCAqZGxnX3JlZ3MsCiAgIGRpc3BsYXlfdHR1X3JlZ3Nfc3QgKnR0dV9yZWdzLAogICBkaXNw
bGF5X2UyZV9waXBlX3BhcmFtc19zdCAqZTJlX3BpcGVfcGFyYW0sCiAgIGNvbnN0IHVuc2lnbmVk
IGludCBudW1fcGlwZXMsCiAgIGNvbnN0IHVuc2lnbmVkIGludCBwaXBlX2lkeCwKICAgY29uc3Qg
Ym9vbCBjc3RhdGVfZW4sCiAgIGNvbnN0IGJvb2wgcHN0YXRlX2VuLAogICBjb25zdCBib29sIHZt
X2VuLAogICBjb25zdCBib29sIGlnbm9yZV92aWV3cG9ydF9wb3MsCiAgIGNvbnN0IGJvb2wgaW1t
ZWRpYXRlX2ZsaXBfc3VwcG9ydCk7CiB2b2lkICgqcnFfZGxnX2dldF9ycV9yZWcpKAogIHN0cnVj
dCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKICBkaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3Jl
Z3MsCiAgY29uc3QgZGlzcGxheV9waXBlX3BhcmFtc19zdCBwaXBlX3BhcmFtKTsKIHZvaWQgKCpy
ZWNhbGN1bGF0ZSkoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliKTsKIHZvaWQgKCp2
YWxpZGF0ZSkoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliKTsKfTsKCnN0cnVjdCBk
aXNwbGF5X21vZGVfbGliIHsKIHN0cnVjdCBfdmNzX2RwaV9pcF9wYXJhbXNfc3QgaXA7CiBzdHJ1
Y3QgX3Zjc19kcGlfc29jX2JvdW5kaW5nX2JveF9zdCBzb2M7CiBlbnVtIGRtbF9wcm9qZWN0IHBy
b2plY3Q7CiBzdHJ1Y3QgdmJhX3ZhcnNfc3QgdmJhOwogc3RydWN0IGRhbF9sb2dnZXIgKmxvZ2dl
cjsKIHN0cnVjdCBkbWxfZnVuY3MgZnVuY3M7Cn07Cgp2b2lkIGRtbF9pbml0X2luc3RhbmNlKHN0
cnVjdCBkaXNwbGF5X21vZGVfbGliICpsaWIsCiAgY29uc3Qgc3RydWN0IF92Y3NfZHBpX3NvY19i
b3VuZGluZ19ib3hfc3QgKnNvY19iYiwKICBjb25zdCBzdHJ1Y3QgX3Zjc19kcGlfaXBfcGFyYW1z
X3N0ICppcF9wYXJhbXMsCiAgZW51bSBkbWxfcHJvamVjdCBwcm9qZWN0KTsKCmNvbnN0IGNoYXIg
KmRtbF9nZXRfc3RhdHVzX21lc3NhZ2UoZW51bSBkbV92YWxpZGF0aW9uX3N0YXR1cyBzdGF0dXMp
OwojIDQxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIg
MgojIDUyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIK
c3RydWN0IGRjX3ZlcnNpb25zIHsKIGNvbnN0IGNoYXIgKmRjX3ZlcjsKIHN0cnVjdCBkbWN1X3Zl
cnNpb24gZG1jdV92ZXJzaW9uOwp9OwoKZW51bSBkcF9wcm90b2NvbF92ZXJzaW9uIHsKIERQX1ZF
UlNJT05fMV80LAp9OwoKZW51bSBkY19wbGFuZV90eXBlIHsKIERDX1BMQU5FX1RZUEVfSU5WQUxJ
RCwKIERDX1BMQU5FX1RZUEVfRENFX1JHQiwKIERDX1BMQU5FX1RZUEVfRENFX1VOREVSTEFZLAog
RENfUExBTkVfVFlQRV9EQ05fVU5JVkVSU0FMLAp9OwoKc3RydWN0IGRjX3BsYW5lX2NhcCB7CiBl
bnVtIGRjX3BsYW5lX3R5cGUgdHlwZTsKIHVpbnQzMl90IGJsZW5kc193aXRoX2Fib3ZlIDogMTsK
IHVpbnQzMl90IGJsZW5kc193aXRoX2JlbG93IDogMTsKIHVpbnQzMl90IHBlcl9waXhlbF9hbHBo
YSA6IDE7CiBzdHJ1Y3QgewogIHVpbnQzMl90IGFyZ2I4ODg4IDogMTsKICB1aW50MzJfdCBudjEy
IDogMTsKICB1aW50MzJfdCBmcDE2IDogMTsKICB1aW50MzJfdCBwMDEwIDogMTsKICB1aW50MzJf
dCBheXV2IDogMTsKIH0gcGl4ZWxfZm9ybWF0X3N1cHBvcnQ7CgoKCiBzdHJ1Y3QgewogIHVpbnQz
Ml90IGFyZ2I4ODg4OwogIHVpbnQzMl90IG52MTI7CiAgdWludDMyX3QgZnAxNjsKIH0gbWF4X3Vw
c2NhbGVfZmFjdG9yOwoKCgogc3RydWN0IHsKICB1aW50MzJfdCBhcmdiODg4ODsKICB1aW50MzJf
dCBudjEyOwogIHVpbnQzMl90IGZwMTY7CiB9IG1heF9kb3duc2NhbGVfZmFjdG9yOwp9OwoKc3Ry
dWN0IGRjX2NhcHMgewogdWludDMyX3QgbWF4X3N0cmVhbXM7CiB1aW50MzJfdCBtYXhfbGlua3M7
CiB1aW50MzJfdCBtYXhfYXVkaW9zOwogdWludDMyX3QgbWF4X3NsYXZlX3BsYW5lczsKIHVpbnQz
Ml90IG1heF9wbGFuZXM7CiB1aW50MzJfdCBtYXhfZG93bnNjYWxlX3JhdGlvOwogdWludDMyX3Qg
aTJjX3NwZWVkX2luX2toejsKIHVpbnQzMl90IGRtZGF0YV9hbGxvY19zaXplOwogdW5zaWduZWQg
aW50IG1heF9jdXJzb3Jfc2l6ZTsKIHVuc2lnbmVkIGludCBtYXhfdmlkZW9fd2lkdGg7CiBpbnQg
bGluZWFyX3BpdGNoX2FsaWdubWVudDsKIGJvb2wgZGNjX2NvbnN0X2NvbG9yOwogYm9vbCBkeW5h
bWljX2F1ZGlvOwogYm9vbCBpc19hcHU7CiBib29sIGR1YWxfbGlua19kdmk7CiBib29sIHBvc3Rf
YmxlbmRfY29sb3JfcHJvY2Vzc2luZzsKIGJvb2wgZm9yY2VfZHBfdHBzNF9mb3JfY3AyNTIwOwog
Ym9vbCBkaXNhYmxlX2RwX2Nsa19zaGFyZTsKIGJvb2wgcHNwX3NldHVwX3BhbmVsX21vZGU7CiBi
b29sIGV4dGVuZGVkX2F1eF90aW1lb3V0X3N1cHBvcnQ7CiBib29sIGRtY3ViX3N1cHBvcnQ7CiBi
b29sIGh3XzNkX2x1dDsKIGVudW0gZHBfcHJvdG9jb2xfdmVyc2lvbiBtYXhfZHBfcHJvdG9jb2xf
dmVyc2lvbjsKIHN0cnVjdCBkY19wbGFuZV9jYXAgcGxhbmVzWzZdOwp9OwoKc3RydWN0IGRjX2J1
Z193YSB7CiBib29sIG5vX2Nvbm5lY3RfcGh5X2NvbmZpZzsKIGJvb2wgZGVkY24yMF8zMDVfd2E7
CiBib29sIHNraXBfY2xvY2tfdXBkYXRlOwp9OwoKc3RydWN0IGRjX2RjY19zdXJmYWNlX3BhcmFt
IHsKIHN0cnVjdCBkY19zaXplIHN1cmZhY2Vfc2l6ZTsKIGVudW0gc3VyZmFjZV9waXhlbF9mb3Jt
YXQgZm9ybWF0OwogZW51bSBzd2l6emxlX21vZGVfdmFsdWVzIHN3aXp6bGVfbW9kZTsKIGVudW0g
ZGNfc2Nhbl9kaXJlY3Rpb24gc2NhbjsKfTsKCnN0cnVjdCBkY19kY2Nfc2V0dGluZyB7CiB1bnNp
Z25lZCBpbnQgbWF4X2NvbXByZXNzZWRfYmxrX3NpemU7CiB1bnNpZ25lZCBpbnQgbWF4X3VuY29t
cHJlc3NlZF9ibGtfc2l6ZTsKIGJvb2wgaW5kZXBlbmRlbnRfNjRiX2Jsa3M7Cn07CgpzdHJ1Y3Qg
ZGNfc3VyZmFjZV9kY2NfY2FwIHsKIHVuaW9uIHsKICBzdHJ1Y3QgewogICBzdHJ1Y3QgZGNfZGNj
X3NldHRpbmcgcmdiOwogIH0gZ3JwaDsKCiAgc3RydWN0IHsKICAgc3RydWN0IGRjX2RjY19zZXR0
aW5nIGx1bWE7CiAgIHN0cnVjdCBkY19kY2Nfc2V0dGluZyBjaHJvbWE7CiAgfSB2aWRlbzsKIH07
CgogYm9vbCBjYXBhYmxlOwogYm9vbCBjb25zdF9jb2xvcl9zdXBwb3J0Owp9OwoKc3RydWN0IGRj
X3N0YXRpY19zY3JlZW5fcGFyYW1zIHsKIHN0cnVjdCB7CiAgYm9vbCBmb3JjZV90cmlnZ2VyOwog
IGJvb2wgY3Vyc29yX3VwZGF0ZTsKICBib29sIHN1cmZhY2VfdXBkYXRlOwogIGJvb2wgb3Zlcmxh
eV91cGRhdGU7CiB9IHRyaWdnZXJzOwogdW5zaWduZWQgaW50IG51bV9mcmFtZXM7Cn07CiMgMTk3
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIKZW51bSBz
dXJmYWNlX3VwZGF0ZV90eXBlIHsKIFVQREFURV9UWVBFX0ZBU1QsCiBVUERBVEVfVFlQRV9NRUQs
CiBVUERBVEVfVFlQRV9GVUxMLAp9OwoKCnN0cnVjdCBkYzsKc3RydWN0IGRjX3BsYW5lX3N0YXRl
OwpzdHJ1Y3QgZGNfc3RhdGU7CgoKc3RydWN0IGRjX2NhcF9mdW5jcyB7CiBib29sICgqZ2V0X2Rj
Y19jb21wcmVzc2lvbl9jYXApKGNvbnN0IHN0cnVjdCBkYyAqZGMsCiAgIGNvbnN0IHN0cnVjdCBk
Y19kY2Nfc3VyZmFjZV9wYXJhbSAqaW5wdXQsCiAgIHN0cnVjdCBkY19zdXJmYWNlX2RjY19jYXAg
Km91dHB1dCk7Cn07CgpzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5nczsKCgoKc3RydWN0IGRj
X2NvbmZpZyB7CiBib29sIGdwdV92bV9zdXBwb3J0OwogYm9vbCBkaXNhYmxlX2Rpc3BfcGxsX3No
YXJpbmc7CiBib29sIGZiY19zdXBwb3J0OwogYm9vbCBvcHRpbWl6ZV9lZHBfbGlua19yYXRlOwog
Ym9vbCBkaXNhYmxlX2ZyYWN0aW9uYWxfcHdtOwogYm9vbCBhbGxvd19zZWFtbGVzc19ib290X29w
dGltaXphdGlvbjsKIGJvb2wgcG93ZXJfZG93bl9kaXNwbGF5X29uX2Jvb3Q7CiBib29sIGVkcF9u
b3RfY29ubmVjdGVkOwogYm9vbCBmb3JjZV9lbnVtX2VkcDsKIGJvb2wgZm9yY2VkX2Nsb2NrczsK
IGJvb2wgZGlzYWJsZV9leHRlbmRlZF90aW1lb3V0X3N1cHBvcnQ7CiBib29sIG11bHRpX21vbl9w
cF9tY2xrX3N3aXRjaDsKfTsKCmVudW0gdmlzdWFsX2NvbmZpcm0gewogVklTVUFMX0NPTkZJUk1f
RElTQUJMRSA9IDAsCiBWSVNVQUxfQ09ORklSTV9TVVJGQUNFID0gMSwKIFZJU1VBTF9DT05GSVJN
X0hEUiA9IDIsCiBWSVNVQUxfQ09ORklSTV9NUENUUkVFID0gNCwKfTsKCmVudW0gZGNjX29wdGlv
biB7CiBEQ0NfRU5BQkxFID0gMCwKIERDQ19ESVNBQkxFID0gMSwKIERDQ19IQUxGX1JFUV9ESVNB
TEJFID0gMiwKfTsKCmVudW0gcGlwZV9zcGxpdF9wb2xpY3kgewogTVBDX1NQTElUX0RZTkFNSUMg
PSAwLAogTVBDX1NQTElUX0FWT0lEID0gMSwKIE1QQ19TUExJVF9BVk9JRF9NVUxUX0RJU1AgPSAy
LAp9OwoKZW51bSB3bV9yZXBvcnRfbW9kZSB7CiBXTV9SRVBPUlRfREVGQVVMVCA9IDAsCiBXTV9S
RVBPUlRfT1ZFUlJJREUgPSAxLAp9OwplbnVtIGR0bV9wc3RhdGV7CiBkdG1fbGV2ZWxfcDAgPSAw
LAogZHRtX2xldmVsX3AxLAogZHRtX2xldmVsX3AyLAogZHRtX2xldmVsX3AzLAogZHRtX2xldmVs
X3A0LAp9OwoKZW51bSBkY25fcHdyX3N0YXRlIHsKIERDTl9QV1JfU1RBVEVfVU5LTk9XTiA9IC0x
LAogRENOX1BXUl9TVEFURV9NSVNTSU9OX01PREUgPSAwLAogRENOX1BXUl9TVEFURV9MT1dfUE9X
RVIgPSAzLAp9OwoKCgoKCnN0cnVjdCBkY19jbG9ja3MgewogaW50IGRpc3BjbGtfa2h6OwogaW50
IGRwcGNsa19raHo7CiBpbnQgZGNmY2xrX2toejsKIGludCBzb2NjbGtfa2h6OwogaW50IGRjZmNs
a19kZWVwX3NsZWVwX2toejsKIGludCBmY2xrX2toejsKIGludCBwaHljbGtfa2h6OwogaW50IGRy
YW1jbGtfa2h6OwogYm9vbCBwX3N0YXRlX2NoYW5nZV9zdXBwb3J0OwogZW51bSBkY25fcHdyX3N0
YXRlIHB3cl9zdGF0ZTsKCgoKCiBib29sIHByZXZfcF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydDsKIGVu
dW0gZHRtX3BzdGF0ZSBkdG1fbGV2ZWw7CiBpbnQgbWF4X3N1cHBvcnRlZF9kcHBjbGtfa2h6Owog
aW50IG1heF9zdXBwb3J0ZWRfZGlzcGNsa19raHo7CiBpbnQgYndfZHBwY2xrX2toejsKIGludCBi
d19kaXNwY2xrX2toejsKfTsKCnN0cnVjdCBkY19id192YWxpZGF0aW9uX3Byb2ZpbGUgewogYm9v
bCBlbmFibGU7CgogdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsX3RpY2tzOwogdW5zaWduZWQgbG9u
ZyBsb25nIHZvbHRhZ2VfbGV2ZWxfdGlja3M7CiB1bnNpZ25lZCBsb25nIGxvbmcgd2F0ZXJtYXJr
X3RpY2tzOwogdW5zaWduZWQgbG9uZyBsb25nIHJxX2RsZ190aWNrczsKCiB1bnNpZ25lZCBsb25n
IGxvbmcgdG90YWxfY291bnQ7CiB1bnNpZ25lZCBsb25nIGxvbmcgc2tpcF9mYXN0X2NvdW50Owog
dW5zaWduZWQgbG9uZyBsb25nIHNraXBfcGFzc19jb3VudDsKIHVuc2lnbmVkIGxvbmcgbG9uZyBz
a2lwX2ZhaWxfY291bnQ7Cn07CiMgMzQ5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZGMuaCIKc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgewogZW51bSB2aXN1YWxf
Y29uZmlybSB2aXN1YWxfY29uZmlybTsKIGJvb2wgc2FuaXR5X2NoZWNrczsKIGJvb2wgbWF4X2Rp
c3BfY2xrOwogYm9vbCBzdXJmYWNlX3RyYWNlOwogYm9vbCB0aW1pbmdfdHJhY2U7CiBib29sIGNs
b2NrX3RyYWNlOwogYm9vbCB2YWxpZGF0aW9uX3RyYWNlOwogYm9vbCBiYW5kd2lkdGhfY2FsY3Nf
dHJhY2U7CiBpbnQgbWF4X2Rvd25zY2FsZV9zcmNfd2lkdGg7CgoKIGJvb2wgZGlzYWJsZV9zdHV0
dGVyOwogYm9vbCB1c2VfbWF4X2xiOwogZW51bSBkY2Nfb3B0aW9uIGRpc2FibGVfZGNjOwogZW51
bSBwaXBlX3NwbGl0X3BvbGljeSBwaXBlX3NwbGl0X3BvbGljeTsKIGJvb2wgZm9yY2Vfc2luZ2xl
X2Rpc3BfcGlwZV9zcGxpdDsKIGJvb2wgdm9sdGFnZV9hbGlnbl9mY2xrOwoKIGJvb2wgZGlzYWJs
ZV9kZnNfYnlwYXNzOwogYm9vbCBkaXNhYmxlX2RwcF9wb3dlcl9nYXRlOwogYm9vbCBkaXNhYmxl
X2h1YnBfcG93ZXJfZ2F0ZTsKIGJvb2wgZGlzYWJsZV9kc2NfcG93ZXJfZ2F0ZTsKIGludCBkc2Nf
bWluX3NsaWNlX2hlaWdodF9vdmVycmlkZTsKIGludCBkc2NfYnBwX2luY3JlbWVudF9kaXY7CiBi
b29sIG5hdGl2ZTQyMl9zdXBwb3J0OwogYm9vbCBkaXNhYmxlX3BwbGliX3dtX3JhbmdlOwogZW51
bSB3bV9yZXBvcnRfbW9kZSBwcGxpYl93bV9yZXBvcnRfbW9kZTsKIHVuc2lnbmVkIGludCBtaW5f
ZGlzcF9jbGtfa2h6OwogdW5zaWduZWQgaW50IG1pbl9kcHBfY2xrX2toejsKIGludCBzcl9leGl0
X3RpbWVfZHBtMF9uczsKIGludCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZV9kcG0wX25zOwogaW50
IHNyX2V4aXRfdGltZV9uczsKIGludCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZV9uczsKIGludCB1
cmdlbnRfbGF0ZW5jeV9uczsKIHVpbnQzMl90IHVuZGVyZmxvd19hc3NlcnRfZGVsYXlfdXM7CiBp
bnQgcGVyY2VudF9vZl9pZGVhbF9kcmFtYnc7CiBpbnQgZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5j
eV9uczsKIGJvb2wgb3B0aW1pemVkX3dhdGVybWFyazsKIGludCBhbHdheXNfc2NhbGU7CiBib29s
IGRpc2FibGVfcHBsaWJfY2xvY2tfcmVxdWVzdDsKIGJvb2wgZGlzYWJsZV9jbG9ja19nYXRlOwog
Ym9vbCBkaXNhYmxlX2RtY3U7CiBib29sIGRpc2FibGVfcHNyOwogYm9vbCBmb3JjZV9hYm1fZW5h
YmxlOwogYm9vbCBkaXNhYmxlX3N0ZXJlb19zdXBwb3J0OwogYm9vbCB2c3Jfc3VwcG9ydDsKIGJv
b2wgcGVyZm9ybWFuY2VfdHJhY2U7CiBib29sIGF6X2VuZHBvaW50X211dGVfb25seTsKIGJvb2wg
YWx3YXlzX3VzZV9yZWdhbW1hOwogYm9vbCBwMDEwX21wb19zdXBwb3J0OwogYm9vbCByZWNvdmVy
eV9lbmFibGVkOwogYm9vbCBhdm9pZF92Ymlvc19leGVjX3RhYmxlOwogYm9vbCBzY2xfcmVzZXRf
bGVuZ3RoMTA7CiBib29sIGhkbWkyMF9kaXNhYmxlOwogYm9vbCBza2lwX2RldGVjdGlvbl9saW5r
X3RyYWluaW5nOwogYm9vbCByZW1vdmVfZGlzY29ubmVjdF9lZHA7CiB1bnNpZ25lZCBpbnQgZm9y
Y2Vfb2RtX2NvbWJpbmU7CiB1bnNpZ25lZCBpbnQgZm9yY2VfZmNsa19raHo7CiBib29sIGRpc2Fi
bGVfdHJpX2J1ZjsKIGJvb2wgZG11Yl9vZmZsb2FkX2VuYWJsZWQ7CiBib29sIGRtY3ViX2VtdWxh
dGlvbjsKIGJvb2wgZG11Yl9jb21tYW5kX3RhYmxlOwogc3RydWN0IGRjX2J3X3ZhbGlkYXRpb25f
cHJvZmlsZSBid192YWxfcHJvZmlsZTsKIGJvb2wgZGlzYWJsZV9mZWM7CiBib29sIGRpc2FibGVf
NDhtaHpfcHdyZHduOwoKCgogdW5zaWduZWQgaW50IGZvcmNlX21pbl9kY2ZjbGtfbWh6OwogYm9v
bCBkaXNhYmxlX3RpbWluZ19zeW5jOwogYm9vbCBjbV9pbl9ieXBhc3M7CiBpbnQgZm9yY2VfY2xv
Y2tfbW9kZTsKCiBib29sIG52MTJfaWZsaXBfdm1fd2E7CiBib29sIGRpc2FibGVfZHJhbV9jbG9j
a19jaGFuZ2VfdmFjdGl2ZV9zdXBwb3J0OwogYm9vbCB2YWxpZGF0ZV9kbWxfb3V0cHV0OwogYm9v
bCBlbmFibGVfZG1jdWJfc3VyZmFjZV9mbGlwOwogYm9vbCB1c2JjX2NvbWJvX3BoeV9yZXNldF93
YTsKIGJvb2wgZGlzYWJsZV9kc2M7Cn07CgpzdHJ1Y3QgZGNfZGVidWdfZGF0YSB7CiB1aW50MzJf
dCBsdEZhaWxDb3VudDsKIHVpbnQzMl90IGkyY0Vycm9yQ291bnQ7CiB1aW50MzJfdCBhdXhFcnJv
ckNvdW50Owp9OwoKc3RydWN0IGRjX3BoeV9hZGRyX3NwYWNlX2NvbmZpZyB7CiBzdHJ1Y3Qgewog
IHVpbnQ2NF90IHN0YXJ0X2FkZHI7CiAgdWludDY0X3QgZW5kX2FkZHI7CiAgdWludDY0X3QgZmJf
dG9wOwogIHVpbnQ2NF90IGZiX29mZnNldDsKICB1aW50NjRfdCBmYl9iYXNlOwogIHVpbnQ2NF90
IGFncF90b3A7CiAgdWludDY0X3QgYWdwX2JvdDsKICB1aW50NjRfdCBhZ3BfYmFzZTsKIH0gc3lz
dGVtX2FwZXJ0dXJlOwoKIHN0cnVjdCB7CiAgdWludDY0X3QgcGFnZV90YWJsZV9zdGFydF9hZGRy
OwogIHVpbnQ2NF90IHBhZ2VfdGFibGVfZW5kX2FkZHI7CiAgdWludDY0X3QgcGFnZV90YWJsZV9i
YXNlX2FkZHI7CiB9IGdhcnRfY29uZmlnOwoKIGJvb2wgdmFsaWQ7CiB1aW50NjRfdCBwYWdlX3Rh
YmxlX2RlZmF1bHRfcGFnZV9hZGRyOwp9OwoKc3RydWN0IGRjX3ZpcnR1YWxfYWRkcl9zcGFjZV9j
b25maWcgewogdWludDY0X3QgcGFnZV90YWJsZV9iYXNlX2FkZHI7CiB1aW50NjRfdCBwYWdlX3Rh
YmxlX3N0YXJ0X2FkZHI7CiB1aW50NjRfdCBwYWdlX3RhYmxlX2VuZF9hZGRyOwogdWludDMyX3Qg
cGFnZV90YWJsZV9ibG9ja19zaXplX2luX2J5dGVzOwogdWludDhfdCBwYWdlX3RhYmxlX2RlcHRo
Owp9OwoKc3RydWN0IGRjX2JvdW5kaW5nX2JveF9vdmVycmlkZXMgewogaW50IHNyX2V4aXRfdGlt
ZV9uczsKIGludCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZV9uczsKIGludCB1cmdlbnRfbGF0ZW5j
eV9uczsKIGludCBwZXJjZW50X29mX2lkZWFsX2RyYW1idzsKIGludCBkcmFtX2Nsb2NrX2NoYW5n
ZV9sYXRlbmN5X25zOwoKCgoKIGludCBtaW5fZGNmY2xrX21oejsKfTsKCnN0cnVjdCBkY19zdGF0
ZTsKc3RydWN0IHJlc291cmNlX3Bvb2w7CnN0cnVjdCBkY2VfaHdzZXE7CnN0cnVjdCBncHVfaW5m
b19zb2NfYm91bmRpbmdfYm94X3YxXzA7CnN0cnVjdCBkYyB7CiBzdHJ1Y3QgZGNfdmVyc2lvbnMg
dmVyc2lvbnM7CiBzdHJ1Y3QgZGNfY2FwcyBjYXBzOwogc3RydWN0IGRjX2NhcF9mdW5jcyBjYXBf
ZnVuY3M7CiBzdHJ1Y3QgZGNfY29uZmlnIGNvbmZpZzsKIHN0cnVjdCBkY19kZWJ1Z19vcHRpb25z
IGRlYnVnOwogc3RydWN0IGRjX2JvdW5kaW5nX2JveF9vdmVycmlkZXMgYmJfb3ZlcnJpZGVzOwog
c3RydWN0IGRjX2J1Z193YSB3b3JrX2Fyb3VuZHM7CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4Owog
c3RydWN0IGRjX3BoeV9hZGRyX3NwYWNlX2NvbmZpZyB2bV9wYV9jb25maWc7CgogdWludDhfdCBs
aW5rX2NvdW50Owogc3RydWN0IGRjX2xpbmsgKmxpbmtzWzYgKiAyXTsKCiBzdHJ1Y3QgZGNfc3Rh
dGUgKmN1cnJlbnRfc3RhdGU7CiBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcmVzX3Bvb2w7Cgogc3Ry
dWN0IGNsa19tZ3IgKmNsa19tZ3I7CgoKIHN0cnVjdCBkbV9wcF9jbG9ja19sZXZlbHMgc2Nsa19s
dmxzOwoKCiBzdHJ1Y3QgYndfY2FsY3NfZGNlaXAgKmJ3X2RjZWlwOwogc3RydWN0IGJ3X2NhbGNz
X3ZiaW9zICpid192YmlvczsKCiBzdHJ1Y3QgZGNuX3NvY19ib3VuZGluZ19ib3ggKmRjbl9zb2M7
CiBzdHJ1Y3QgZGNuX2lwX3BhcmFtcyAqZGNuX2lwOwogc3RydWN0IGRpc3BsYXlfbW9kZV9saWIg
ZG1sOwoKCgogc3RydWN0IGh3X3NlcXVlbmNlcl9mdW5jcyBod3NzOwogc3RydWN0IGRjZV9od3Nl
cSAqaHdzZXE7CgoKIGJvb2wgb3B0aW1pemVkX3JlcXVpcmVkOwoKCiBpbnQgb3B0aW1pemVfc2Vh
bWxlc3NfYm9vdF9zdHJlYW1zOwoKCiBzdHJ1Y3QgY29tcHJlc3NvciAqZmJjX2NvbXByZXNzb3I7
Cgogc3RydWN0IGRjX2RlYnVnX2RhdGEgZGVidWdfZGF0YTsKCiBjb25zdCBjaGFyICpidWlsZF9p
ZDsKIHN0cnVjdCB2bV9oZWxwZXIgKnZtX2hlbHBlcjsKIGNvbnN0IHN0cnVjdCBncHVfaW5mb19z
b2NfYm91bmRpbmdfYm94X3YxXzAgKnNvY19ib3VuZGluZ19ib3g7Cn07CgplbnVtIGZyYW1lX2J1
ZmZlcl9tb2RlIHsKIEZSQU1FX0JVRkZFUl9NT0RFX0xPQ0FMX09OTFkgPSAwLAogRlJBTUVfQlVG
RkVSX01PREVfWkZCX09OTFksCiBGUkFNRV9CVUZGRVJfTU9ERV9NSVhFRF9aRkJfQU5EX0xPQ0FM
LAp9IDsKCnN0cnVjdCBkY2h1Yl9pbml0X2RhdGEgewogaW50NjRfdCB6ZmJfcGh5c19hZGRyX2Jh
c2U7CiBpbnQ2NF90IHpmYl9tY19iYXNlX2FkZHI7CiB1aW50NjRfdCB6ZmJfc2l6ZV9pbl9ieXRl
OwogZW51bSBmcmFtZV9idWZmZXJfbW9kZSBmYl9tb2RlOwogYm9vbCBkY2h1Yl9pbml0aWFsemll
ZDsKIGJvb2wgZGNodWJfaW5mb192YWxpZDsKfTsKCnN0cnVjdCBkY19pbml0X2RhdGEgewogc3Ry
dWN0IGh3X2FzaWNfaWQgYXNpY19pZDsKIHZvaWQgKmRyaXZlcjsKIHN0cnVjdCBjZ3NfZGV2aWNl
ICpjZ3NfZGV2aWNlOwogc3RydWN0IGRjX2JvdW5kaW5nX2JveF9vdmVycmlkZXMgYmJfb3ZlcnJp
ZGVzOwoKIGludCBudW1fdmlydHVhbF9saW5rczsKCgoKCiBzdHJ1Y3QgZGNfYmlvcyAqdmJpb3Nf
b3ZlcnJpZGU7CiBlbnVtIGRjZV9lbnZpcm9ubWVudCBkY2VfZW52aXJvbm1lbnQ7Cgogc3RydWN0
IGRtdWJfb2ZmbG9hZF9mdW5jcyAqZG11Yl9pZjsKIHN0cnVjdCBkY19yZWdfaGVscGVyX3N0YXRl
ICpkbXViX29mZmxvYWQ7Cgogc3RydWN0IGRjX2NvbmZpZyBmbGFnczsKIHVpbnQzMl90IGxvZ19t
YXNrOwoKCgoKIGNvbnN0IHN0cnVjdCBncHVfaW5mb19zb2NfYm91bmRpbmdfYm94X3YxXzAgKnNv
Y19ib3VuZGluZ19ib3g7Cn07CgpzdHJ1Y3QgZGNfY2FsbGJhY2tfaW5pdCB7CgoKCiB1aW50OF90
IHJlc2VydmVkOwoKfTsKCnN0cnVjdCBkYyAqZGNfY3JlYXRlKGNvbnN0IHN0cnVjdCBkY19pbml0
X2RhdGEgKmluaXRfcGFyYW1zKTsKdm9pZCBkY19oYXJkd2FyZV9pbml0KHN0cnVjdCBkYyAqZGMp
OwoKaW50IGRjX2dldF92bWlkX3VzZV92ZWN0b3Ioc3RydWN0IGRjICpkYyk7CnZvaWQgZGNfc2V0
dXBfdm1fY29udGV4dChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfdmlydHVhbF9hZGRyX3NwYWNl
X2NvbmZpZyAqdmFfY29uZmlnLCBpbnQgdm1pZCk7CgppbnQgZGNfc2V0dXBfc3lzdGVtX2NvbnRl
eHQoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3BoeV9hZGRyX3NwYWNlX2NvbmZpZyAqcGFfY29u
ZmlnKTsKdm9pZCBkY19pbml0X2NhbGxiYWNrcyhzdHJ1Y3QgZGMgKmRjLAogIGNvbnN0IHN0cnVj
dCBkY19jYWxsYmFja19pbml0ICppbml0X3BhcmFtcyk7CnZvaWQgZGNfZGVpbml0X2NhbGxiYWNr
cyhzdHJ1Y3QgZGMgKmRjKTsKdm9pZCBkY19kZXN0cm95KHN0cnVjdCBkYyAqKmRjKTsKCgoKCgpl
bnVtIHsKIFRSQU5TRkVSX0ZVTkNfUE9JTlRTID0gMTAyNQp9OwoKc3RydWN0IGRjX2hkcl9zdGF0
aWNfbWV0YWRhdGEgewoKIHVuc2lnbmVkIGludCBjaHJvbWF0aWNpdHlfZ3JlZW5feDsKIHVuc2ln
bmVkIGludCBjaHJvbWF0aWNpdHlfZ3JlZW5feTsKIHVuc2lnbmVkIGludCBjaHJvbWF0aWNpdHlf
Ymx1ZV94OwogdW5zaWduZWQgaW50IGNocm9tYXRpY2l0eV9ibHVlX3k7CiB1bnNpZ25lZCBpbnQg
Y2hyb21hdGljaXR5X3JlZF94OwogdW5zaWduZWQgaW50IGNocm9tYXRpY2l0eV9yZWRfeTsKIHVu
c2lnbmVkIGludCBjaHJvbWF0aWNpdHlfd2hpdGVfcG9pbnRfeDsKIHVuc2lnbmVkIGludCBjaHJv
bWF0aWNpdHlfd2hpdGVfcG9pbnRfeTsKCiB1aW50MzJfdCBtaW5fbHVtaW5hbmNlOwogdWludDMy
X3QgbWF4X2x1bWluYW5jZTsKIHVpbnQzMl90IG1heGltdW1fY29udGVudF9saWdodF9sZXZlbDsK
IHVpbnQzMl90IG1heGltdW1fZnJhbWVfYXZlcmFnZV9saWdodF9sZXZlbDsKfTsKCmVudW0gZGNf
dHJhbnNmZXJfZnVuY190eXBlIHsKIFRGX1RZUEVfUFJFREVGSU5FRCwKIFRGX1RZUEVfRElTVFJJ
QlVURURfUE9JTlRTLAogVEZfVFlQRV9CWVBBU1MsCiBURl9UWVBFX0hXUFdMCn07CgpzdHJ1Y3Qg
ZGNfdHJhbnNmZXJfZnVuY19kaXN0cmlidXRlZF9wb2ludHMgewogc3RydWN0IGZpeGVkMzFfMzIg
cmVkW1RSQU5TRkVSX0ZVTkNfUE9JTlRTXTsKIHN0cnVjdCBmaXhlZDMxXzMyIGdyZWVuW1RSQU5T
RkVSX0ZVTkNfUE9JTlRTXTsKIHN0cnVjdCBmaXhlZDMxXzMyIGJsdWVbVFJBTlNGRVJfRlVOQ19Q
T0lOVFNdOwoKIHVpbnQxNl90IGVuZF9leHBvbmVudDsKIHVpbnQxNl90IHhfcG9pbnRfYXRfeTFf
cmVkOwogdWludDE2X3QgeF9wb2ludF9hdF95MV9ncmVlbjsKIHVpbnQxNl90IHhfcG9pbnRfYXRf
eTFfYmx1ZTsKfTsKCmVudW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHsKIFRSQU5TRkVS
X0ZVTkNUSU9OX1NSR0IsCiBUUkFOU0ZFUl9GVU5DVElPTl9CVDcwOSwKIFRSQU5TRkVSX0ZVTkNU
SU9OX1BRLAogVFJBTlNGRVJfRlVOQ1RJT05fTElORUFSLAogVFJBTlNGRVJfRlVOQ1RJT05fVU5J
VFksCiBUUkFOU0ZFUl9GVU5DVElPTl9ITEcsCiBUUkFOU0ZFUl9GVU5DVElPTl9ITEcxMiwKIFRS
QU5TRkVSX0ZVTkNUSU9OX0dBTU1BMjIsCiBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTI0LAogVFJB
TlNGRVJfRlVOQ1RJT05fR0FNTUEyNgp9OwoKCnN0cnVjdCBkY190cmFuc2Zlcl9mdW5jIHsKIHN0
cnVjdCBrcmVmIHJlZmNvdW50OwogZW51bSBkY190cmFuc2Zlcl9mdW5jX3R5cGUgdHlwZTsKIGVu
dW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHRmOwoKIHVpbnQzMl90IHNkcl9yZWZfd2hp
dGVfbGV2ZWw7CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwogdW5pb24gewogIHN0cnVjdCBwd2xf
cGFyYW1zIHB3bDsKICBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuY19kaXN0cmlidXRlZF9wb2ludHMg
dGZfcHRzOwogfTsKfTsKCgp1bmlvbiBkY18zZGx1dF9zdGF0ZSB7CiBzdHJ1Y3QgewogIHVpbnQz
Ml90IGluaXRpYWxpemVkOjE7CiAgdWludDMyX3Qgcm11X2lkeF92YWxpZDoxOwogIHVpbnQzMl90
IHJtdV9tdXhfbnVtOjM7CiAgdWludDMyX3QgbXBjX3JtdTBfbXV4OjQ7CiAgdWludDMyX3QgbXBj
X3JtdTFfbXV4OjQ7CiAgdWludDMyX3QgbXBjX3JtdTJfbXV4OjQ7CiAgdWludDMyX3QgcmVzZXJ2
ZWQ6MTU7CiB9IGJpdHM7CiB1aW50MzJfdCByYXc7Cn07CgoKc3RydWN0IGRjXzNkbHV0IHsKIHN0
cnVjdCBrcmVmIHJlZmNvdW50Owogc3RydWN0IHRldHJhaGVkcmFsX3BhcmFtcyBsdXRfM2Q7CiBz
dHJ1Y3QgZml4ZWQzMV8zMiBoZHJfbXVsdGlwbGllcjsKIGJvb2wgaW5pdGlhbGl6ZWQ7CiB1bmlv
biBkY18zZGx1dF9zdGF0ZSBzdGF0ZTsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7Cn07CgoKCgoK
c3RydWN0IGRjX3BsYW5lX3N0YXR1cyB7CiBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyByZXF1ZXN0
ZWRfYWRkcmVzczsKIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzIGN1cnJlbnRfYWRkcmVzczsKIGJv
b2wgaXNfZmxpcF9wZW5kaW5nOwogYm9vbCBpc19yaWdodF9leWU7Cn07Cgp1bmlvbiBzdXJmYWNl
X3VwZGF0ZV9mbGFncyB7Cgogc3RydWN0IHsKICB1aW50MzJfdCBhZGRyX3VwZGF0ZToxOwoKICB1
aW50MzJfdCBkY2NfY2hhbmdlOjE7CiAgdWludDMyX3QgY29sb3Jfc3BhY2VfY2hhbmdlOjE7CiAg
dWludDMyX3QgaG9yaXpvbnRhbF9taXJyb3JfY2hhbmdlOjE7CiAgdWludDMyX3QgcGVyX3BpeGVs
X2FscGhhX2NoYW5nZToxOwogIHVpbnQzMl90IGdsb2JhbF9hbHBoYV9jaGFuZ2U6MTsKICB1aW50
MzJfdCBoZHJfbXVsdDoxOwogIHVpbnQzMl90IHJvdGF0aW9uX2NoYW5nZToxOwogIHVpbnQzMl90
IHN3aXp6bGVfY2hhbmdlOjE7CiAgdWludDMyX3Qgc2NhbGluZ19jaGFuZ2U6MTsKICB1aW50MzJf
dCBwb3NpdGlvbl9jaGFuZ2U6MTsKICB1aW50MzJfdCBpbl90cmFuc2Zlcl9mdW5jX2NoYW5nZTox
OwogIHVpbnQzMl90IGlucHV0X2NzY19jaGFuZ2U6MTsKICB1aW50MzJfdCBjb2VmZl9yZWR1Y3Rp
b25fY2hhbmdlOjE7CiAgdWludDMyX3Qgb3V0cHV0X3RmX2NoYW5nZToxOwogIHVpbnQzMl90IHBp
eGVsX2Zvcm1hdF9jaGFuZ2U6MTsKICB1aW50MzJfdCBwbGFuZV9zaXplX2NoYW5nZToxOwoKCiAg
dWludDMyX3QgbmV3X3BsYW5lOjE7CiAgdWludDMyX3QgYnBwX2NoYW5nZToxOwogIHVpbnQzMl90
IGdhbW1hX2NoYW5nZToxOwogIHVpbnQzMl90IGJhbmR3aWR0aF9jaGFuZ2U6MTsKICB1aW50MzJf
dCBjbG9ja19jaGFuZ2U6MTsKICB1aW50MzJfdCBzdGVyZW9fZm9ybWF0X2NoYW5nZToxOwogIHVp
bnQzMl90IGZ1bGxfdXBkYXRlOjE7CiB9IGJpdHM7CgogdWludDMyX3QgcmF3Owp9OwoKc3RydWN0
IGRjX3BsYW5lX3N0YXRlIHsKIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzIGFkZHJlc3M7CiBzdHJ1
Y3QgZGNfcGxhbmVfZmxpcF90aW1lIHRpbWU7CiBib29sIHRyaXBsZWJ1ZmZlcl9mbGlwczsKIHN0
cnVjdCBzY2FsaW5nX3RhcHMgc2NhbGluZ19xdWFsaXR5Owogc3RydWN0IHJlY3Qgc3JjX3JlY3Q7
CiBzdHJ1Y3QgcmVjdCBkc3RfcmVjdDsKIHN0cnVjdCByZWN0IGNsaXBfcmVjdDsKCiBzdHJ1Y3Qg
cGxhbmVfc2l6ZSBwbGFuZV9zaXplOwogdW5pb24gZGNfdGlsaW5nX2luZm8gdGlsaW5nX2luZm87
Cgogc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSBkY2M7Cgogc3RydWN0IGRjX2dhbW1hICpnYW1t
YV9jb3JyZWN0aW9uOwogc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgKmluX3RyYW5zZmVyX2Z1bmM7
CiBzdHJ1Y3QgZGNfYmlhc19hbmRfc2NhbGUgKmJpYXNfYW5kX3NjYWxlOwogc3RydWN0IGRjX2Nz
Y190cmFuc2Zvcm0gaW5wdXRfY3NjX2NvbG9yX21hdHJpeDsKIHN0cnVjdCBmaXhlZDMxXzMyIGNv
ZWZmX3JlZHVjdGlvbl9mYWN0b3I7CiBzdHJ1Y3QgZml4ZWQzMV8zMiBoZHJfbXVsdDsKCgogc3Ry
dWN0IGRjX2hkcl9zdGF0aWNfbWV0YWRhdGEgaGRyX3N0YXRpY19jdHg7CgogZW51bSBkY19jb2xv
cl9zcGFjZSBjb2xvcl9zcGFjZTsKCiBzdHJ1Y3QgZGNfM2RsdXQgKmx1dDNkX2Z1bmM7CiBzdHJ1
Y3QgZGNfdHJhbnNmZXJfZnVuYyAqaW5fc2hhcGVyX2Z1bmM7CiBzdHJ1Y3QgZGNfdHJhbnNmZXJf
ZnVuYyAqYmxlbmRfdGY7CgogZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQ7CiBlbnVt
IGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uOwogZW51bSBwbGFuZV9zdGVyZW9fZm9ybWF0IHN0
ZXJlb19mb3JtYXQ7CgogYm9vbCBpc190aWxpbmdfcm90YXRlZDsKIGJvb2wgcGVyX3BpeGVsX2Fs
cGhhOwogYm9vbCBnbG9iYWxfYWxwaGE7CiBpbnQgZ2xvYmFsX2FscGhhX3ZhbHVlOwogYm9vbCB2
aXNpYmxlOwogYm9vbCBmbGlwX2ltbWVkaWF0ZTsKIGJvb2wgaG9yaXpvbnRhbF9taXJyb3I7CiBp
bnQgbGF5ZXJfaW5kZXg7CgogdW5pb24gc3VyZmFjZV91cGRhdGVfZmxhZ3MgdXBkYXRlX2ZsYWdz
OwoKIHN0cnVjdCBkY19wbGFuZV9zdGF0dXMgc3RhdHVzOwogc3RydWN0IGRjX2NvbnRleHQgKmN0
eDsKCgogYm9vbCBmb3JjZV9mdWxsX3VwZGF0ZTsKCgogZW51bSBkY19pcnFfc291cmNlIGlycV9z
b3VyY2U7CiBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKfTsKCnN0cnVjdCBkY19wbGFuZV9pbmZvIHsK
IHN0cnVjdCBwbGFuZV9zaXplIHBsYW5lX3NpemU7CiB1bmlvbiBkY190aWxpbmdfaW5mbyB0aWxp
bmdfaW5mbzsKIHN0cnVjdCBkY19wbGFuZV9kY2NfcGFyYW0gZGNjOwogZW51bSBzdXJmYWNlX3Bp
eGVsX2Zvcm1hdCBmb3JtYXQ7CiBlbnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uOwogZW51
bSBwbGFuZV9zdGVyZW9fZm9ybWF0IHN0ZXJlb19mb3JtYXQ7CiBlbnVtIGRjX2NvbG9yX3NwYWNl
IGNvbG9yX3NwYWNlOwogYm9vbCBob3Jpem9udGFsX21pcnJvcjsKIGJvb2wgdmlzaWJsZTsKIGJv
b2wgcGVyX3BpeGVsX2FscGhhOwogYm9vbCBnbG9iYWxfYWxwaGE7CiBpbnQgZ2xvYmFsX2FscGhh
X3ZhbHVlOwogYm9vbCBpbnB1dF9jc2NfZW5hYmxlZDsKIGludCBsYXllcl9pbmRleDsKfTsKCnN0
cnVjdCBkY19zY2FsaW5nX2luZm8gewogc3RydWN0IHJlY3Qgc3JjX3JlY3Q7CiBzdHJ1Y3QgcmVj
dCBkc3RfcmVjdDsKIHN0cnVjdCByZWN0IGNsaXBfcmVjdDsKIHN0cnVjdCBzY2FsaW5nX3RhcHMg
c2NhbGluZ19xdWFsaXR5Owp9OwoKc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlIHsKIHN0cnVjdCBk
Y19wbGFuZV9zdGF0ZSAqc3VyZmFjZTsKCgogY29uc3Qgc3RydWN0IGRjX2ZsaXBfYWRkcnMgKmZs
aXBfYWRkcjsKIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9pbmZvICpwbGFuZV9pbmZvOwogY29uc3Qg
c3RydWN0IGRjX3NjYWxpbmdfaW5mbyAqc2NhbGluZ19pbmZvOwogc3RydWN0IGZpeGVkMzFfMzIg
aGRyX211bHQ7CgoKCiBjb25zdCBzdHJ1Y3QgZGNfZ2FtbWEgKmdhbW1hOwogY29uc3Qgc3RydWN0
IGRjX3RyYW5zZmVyX2Z1bmMgKmluX3RyYW5zZmVyX2Z1bmM7CgogY29uc3Qgc3RydWN0IGRjX2Nz
Y190cmFuc2Zvcm0gKmlucHV0X2NzY19jb2xvcl9tYXRyaXg7CiBjb25zdCBzdHJ1Y3QgZml4ZWQz
MV8zMiAqY29lZmZfcmVkdWN0aW9uX2ZhY3RvcjsKIGNvbnN0IHN0cnVjdCBkY190cmFuc2Zlcl9m
dW5jICpmdW5jX3NoYXBlcjsKIGNvbnN0IHN0cnVjdCBkY18zZGx1dCAqbHV0M2RfZnVuYzsKIGNv
bnN0IHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICpibGVuZF90ZjsKfTsKCgoKCnN0cnVjdCBkY19w
bGFuZV9zdGF0ZSAqZGNfY3JlYXRlX3BsYW5lX3N0YXRlKHN0cnVjdCBkYyAqZGMpOwpjb25zdCBz
dHJ1Y3QgZGNfcGxhbmVfc3RhdHVzICpkY19wbGFuZV9nZXRfc3RhdHVzKAogIGNvbnN0IHN0cnVj
dCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwoKdm9pZCBkY19wbGFuZV9zdGF0ZV9yZXRh
aW4oc3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CnZvaWQgZGNfcGxhbmVfc3Rh
dGVfcmVsZWFzZShzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKCnZvaWQgZGNf
Z2FtbWFfcmV0YWluKHN0cnVjdCBkY19nYW1tYSAqZGNfZ2FtbWEpOwp2b2lkIGRjX2dhbW1hX3Jl
bGVhc2Uoc3RydWN0IGRjX2dhbW1hICoqZGNfZ2FtbWEpOwpzdHJ1Y3QgZGNfZ2FtbWEgKmRjX2Ny
ZWF0ZV9nYW1tYSh2b2lkKTsKCnZvaWQgZGNfdHJhbnNmZXJfZnVuY19yZXRhaW4oc3RydWN0IGRj
X3RyYW5zZmVyX2Z1bmMgKmRjX3RmKTsKdm9pZCBkY190cmFuc2Zlcl9mdW5jX3JlbGVhc2Uoc3Ry
dWN0IGRjX3RyYW5zZmVyX2Z1bmMgKmRjX3RmKTsKc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgKmRj
X2NyZWF0ZV90cmFuc2Zlcl9mdW5jKHZvaWQpOwoKc3RydWN0IGRjXzNkbHV0ICpkY19jcmVhdGVf
M2RsdXRfZnVuYyh2b2lkKTsKdm9pZCBkY18zZGx1dF9mdW5jX3JlbGVhc2Uoc3RydWN0IGRjXzNk
bHV0ICpsdXQpOwp2b2lkIGRjXzNkbHV0X2Z1bmNfcmV0YWluKHN0cnVjdCBkY18zZGx1dCAqbHV0
KTsKCgoKCgpzdHJ1Y3QgZGNfZmxpcF9hZGRycyB7CiBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyBh
ZGRyZXNzOwogdW5zaWduZWQgaW50IGZsaXBfdGltZXN0YW1wX2luX3VzOwogYm9vbCBmbGlwX2lt
bWVkaWF0ZTsKCn07Cgpib29sIGRjX3Bvc3RfdXBkYXRlX3N1cmZhY2VzX3RvX3N0cmVhbSgKICBz
dHJ1Y3QgZGMgKmRjKTsKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2RjX3N0cmVhbS5oIiAxCiMgMzUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9kY19zdHJlYW0uaCIKc3RydWN0IHRpbWluZ19zeW5jX2luZm8gewogaW50
IGdyb3VwX2lkOwogaW50IGdyb3VwX3NpemU7CiBib29sIG1hc3RlcjsKfTsKCnN0cnVjdCBkY19z
dHJlYW1fc3RhdHVzIHsKIGludCBwcmltYXJ5X290Z19pbnN0OwogaW50IHN0cmVhbV9lbmNfaW5z
dDsKIGludCBwbGFuZV9jb3VudDsKIGludCBhdWRpb19pbnN0Owogc3RydWN0IHRpbWluZ19zeW5j
X2luZm8gdGltaW5nX3N5bmNfaW5mbzsKIHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh
dGVzWzRdOwp9OwoKCnN0cnVjdCBmcmVlc3luY19jb250ZXh0IHsKIGJvb2wgZHVtbXk7Cn07Cgpl
bnVtIGh1YnBfZG1kYXRhX21vZGUgewogRE1EQVRBX1NXX01PREUsCiBETURBVEFfSFdfTU9ERQp9
OwoKc3RydWN0IGRjX2RtZGF0YV9hdHRyaWJ1dGVzIHsKCgoKIGVudW0gaHVicF9kbWRhdGFfbW9k
ZSBkbWRhdGFfbW9kZTsKCiBib29sIGRtZGF0YV9yZXBlYXQ7CgogdWludDMyX3QgZG1kYXRhX3Np
emU7CgogYm9vbCBkbWRhdGFfdXBkYXRlZDsKCiB1bmlvbiBsYXJnZV9pbnRlZ2VyIGFkZHJlc3M7
CgogYm9vbCBkbWRhdGFfcW9zX21vZGU7CgogdWludDMyX3QgZG1kYXRhX3Fvc19sZXZlbDsKCgoK
IHVpbnQzMl90IGRtZGF0YV9kbF9kZWx0YTsKCiB1aW50MzJfdCAqZG1kYXRhX3N3X2RhdGE7Cn07
CgpzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8gewogYm9vbCB3Yl9lbmFibGVkOwogaW50IGR3Yl9w
aXBlX2luc3Q7CiBzdHJ1Y3QgZGNfZHdiX3BhcmFtcyBkd2JfcGFyYW1zOwogc3RydWN0IG1jaWZf
YnVmX3BhcmFtcyBtY2lmX2J1Zl9wYXJhbXM7Cn07CgpzdHJ1Y3QgZGNfd3JpdGViYWNrX3VwZGF0
ZSB7CiB1bnNpZ25lZCBpbnQgbnVtX3diX2luZm87CiBzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8g
d3JpdGViYWNrX2luZm9bMV07Cn07CgplbnVtIHZlcnRpY2FsX2ludGVycnVwdF9yZWZfcG9pbnQg
ewogU1RBUlRfVl9VUERBVEUgPSAwLAogU1RBUlRfVl9TWU5DLAogSU5WQUxJRF9QT0lOVAoKCgoK
fTsKCnN0cnVjdCBwZXJpb2RpY19pbnRlcnJ1cHRfY29uZmlnIHsKIGVudW0gdmVydGljYWxfaW50
ZXJydXB0X3JlZl9wb2ludCByZWZfcG9pbnQ7CiBpbnQgbGluZXNfb2Zmc2V0Owp9OwoKdW5pb24g
c3RyZWFtX3VwZGF0ZV9mbGFncyB7CiBzdHJ1Y3QgewogIHVpbnQzMl90IHNjYWxpbmc6MTsKICB1
aW50MzJfdCBvdXRfdGY6MTsKICB1aW50MzJfdCBvdXRfY3NjOjE7CiAgdWludDMyX3QgYWJtX2xl
dmVsOjE7CiAgdWludDMyX3QgZHBtc19vZmY6MTsKICB1aW50MzJfdCBnYW11dF9yZW1hcDoxOwog
IHVpbnQzMl90IHdiX3VwZGF0ZToxOwogfSBiaXRzOwoKIHVpbnQzMl90IHJhdzsKfTsKCnN0cnVj
dCBkY19zdHJlYW1fc3RhdGUgewoKCiBzdHJ1Y3QgZGNfc2luayAqc2luazsKCiBzdHJ1Y3QgZGNf
bGluayAqbGluazsKIHN0cnVjdCBkY19wYW5lbF9wYXRjaCBzaW5rX3BhdGNoZXM7CiB1bmlvbiBk
aXNwbGF5X2NvbnRlbnRfc3VwcG9ydCBjb250ZW50X3N1cHBvcnQ7CiBzdHJ1Y3QgZGNfY3J0Y190
aW1pbmcgdGltaW5nOwogc3RydWN0IGRjX2NydGNfdGltaW5nX2FkanVzdCBhZGp1c3Q7CiBzdHJ1
Y3QgZGNfaW5mb19wYWNrZXQgdnJyX2luZm9wYWNrZXQ7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQg
dnNjX2luZm9wYWNrZXQ7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgdnNwX2luZm9wYWNrZXQ7Cgog
c3RydWN0IHJlY3Qgc3JjOwogc3RydWN0IHJlY3QgZHN0OwoKCiBzdHJ1Y3QgZnJlZXN5bmNfY29u
dGV4dCBmcmVlc3luY19jdHg7Cgogc3RydWN0IGF1ZGlvX2luZm8gYXVkaW9faW5mbzsKCiBzdHJ1
Y3QgZGNfaW5mb19wYWNrZXQgaGRyX3N0YXRpY19tZXRhZGF0YTsKIHVuaW9uIGxhcmdlX2ludGVn
ZXIgZG1kYXRhX2FkZHJlc3M7CiBib29sIHVzZV9keW5hbWljX21ldGE7Cgogc3RydWN0IGRjX3Ry
YW5zZmVyX2Z1bmMgKm91dF90cmFuc2Zlcl9mdW5jOwogc3RydWN0IGNvbG9yc3BhY2VfdHJhbnNm
b3JtIGdhbXV0X3JlbWFwX21hdHJpeDsKIHN0cnVjdCBkY19jc2NfdHJhbnNmb3JtIGNzY19jb2xv
cl9tYXRyaXg7CgogZW51bSBkY19jb2xvcl9zcGFjZSBvdXRwdXRfY29sb3Jfc3BhY2U7CiBlbnVt
IGRjX2RpdGhlcl9vcHRpb24gZGl0aGVyX29wdGlvbjsKCiBlbnVtIHZpZXdfM2RfZm9ybWF0IHZp
ZXdfZm9ybWF0OwoKIGJvb2wgdXNlX3ZzY19zZHBfZm9yX2NvbG9yaW1ldHJ5OwogYm9vbCBpZ25v
cmVfbXNhX3RpbWluZ19wYXJhbTsKIGJvb2wgY29udmVydGVyX2Rpc2FibGVfYXVkaW87CiB1aW50
OF90IHFzX2JpdDsKIHVpbnQ4X3QgcXlfYml0OwoKCgoKIHVuc2lnbmVkIGNoYXIgcHNyX3ZlcnNp
b247CgoKCiB1bnNpZ25lZCBpbnQgYWJtX2xldmVsOwoKIHN0cnVjdCBwZXJpb2RpY19pbnRlcnJ1
cHRfY29uZmlnIHBlcmlvZGljX2ludGVycnVwdDA7CiBzdHJ1Y3QgcGVyaW9kaWNfaW50ZXJydXB0
X2NvbmZpZyBwZXJpb2RpY19pbnRlcnJ1cHQxOwoKCiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoK
CiBzdHJ1Y3QgYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJhbXMgYml0X2RlcHRoX3BhcmFtczsKIHN0
cnVjdCBjbGFtcGluZ19hbmRfcGl4ZWxfZW5jb2RpbmdfcGFyYW1zIGNsYW1waW5nOwoKIGludCBw
aHlfcGl4X2NsazsKIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsOwogYm9vbCBkcG1zX29mZjsKCiB2
b2lkICpkbV9zdHJlYW1fY29udGV4dDsKCiBzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgY3Vy
c29yX2F0dHJpYnV0ZXM7CiBzdHJ1Y3QgZGNfY3Vyc29yX3Bvc2l0aW9uIGN1cnNvcl9wb3NpdGlv
bjsKIHVpbnQzMl90IHNkcl93aGl0ZV9sZXZlbDsKCgogc3RydWN0IGtyZWYgcmVmY291bnQ7Cgog
c3RydWN0IGNydGNfdHJpZ2dlcl9pbmZvIHRyaWdnZXJlZF9jcnRjX3Jlc2V0OwoKCiB1bnNpZ25l
ZCBpbnQgbnVtX3diX2luZm87CiBzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8gd3JpdGViYWNrX2lu
Zm9bMV07CgogYm9vbCBtb2RlX2NoYW5nZWQgOiAxOwoKCgoKCgogc3RydWN0IHsKCgogIHVpbnQ4
X3Qgb3RnX29mZnNldDsKIH0gb3V0OwoKIGJvb2wgYXBwbHlfZWRwX2Zhc3RfYm9vdF9vcHRpbWl6
YXRpb247CiBib29sIGFwcGx5X3NlYW1sZXNzX2Jvb3Rfb3B0aW1pemF0aW9uOwoKIHVpbnQzMl90
IHN0cmVhbV9pZDsKIGJvb2wgaXNfZHNjX2VuYWJsZWQ7CiB1bmlvbiBzdHJlYW1fdXBkYXRlX2Zs
YWdzIHVwZGF0ZV9mbGFnczsKfTsKCgoKc3RydWN0IGRjX3N0cmVhbV91cGRhdGUgewogc3RydWN0
IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtOwoKIHN0cnVjdCByZWN0IHNyYzsKIHN0cnVjdCByZWN0
IGRzdDsKIHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICpvdXRfdHJhbnNmZXJfZnVuYzsKIHN0cnVj
dCBkY19pbmZvX3BhY2tldCAqaGRyX3N0YXRpY19tZXRhZGF0YTsKIHVuc2lnbmVkIGludCAqYWJt
X2xldmVsOwoKIHN0cnVjdCBwZXJpb2RpY19pbnRlcnJ1cHRfY29uZmlnICpwZXJpb2RpY19pbnRl
cnJ1cHQwOwogc3RydWN0IHBlcmlvZGljX2ludGVycnVwdF9jb25maWcgKnBlcmlvZGljX2ludGVy
cnVwdDE7Cgogc3RydWN0IGRjX2luZm9fcGFja2V0ICp2cnJfaW5mb3BhY2tldDsKIHN0cnVjdCBk
Y19pbmZvX3BhY2tldCAqdnNjX2luZm9wYWNrZXQ7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgKnZz
cF9pbmZvcGFja2V0OwoKIGJvb2wgKmRwbXNfb2ZmOwogYm9vbCBpbnRlZ2VyX3NjYWxpbmdfdXBk
YXRlOwoKIHN0cnVjdCBjb2xvcnNwYWNlX3RyYW5zZm9ybSAqZ2FtdXRfcmVtYXA7CiBlbnVtIGRj
X2NvbG9yX3NwYWNlICpvdXRwdXRfY29sb3Jfc3BhY2U7CiBlbnVtIGRjX2RpdGhlcl9vcHRpb24g
KmRpdGhlcl9vcHRpb247Cgogc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gKm91dHB1dF9jc2NfdHJh
bnNmb3JtOwoKIHN0cnVjdCBkY193cml0ZWJhY2tfdXBkYXRlICp3Yl91cGRhdGU7CiBzdHJ1Y3Qg
ZGNfZHNjX2NvbmZpZyAqZHNjX2NvbmZpZzsKfTsKCmJvb2wgZGNfaXNfc3RyZWFtX3VuY2hhbmdl
ZCgKIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKm9sZF9zdHJlYW0sIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKnN0cmVhbSk7CmJvb2wgZGNfaXNfc3RyZWFtX3NjYWxpbmdfdW5jaGFuZ2VkKAogc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqb2xkX3N0cmVhbSwgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAq
c3RyZWFtKTsKIyAyNzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9kY19zdHJlYW0uaCIKdm9pZCBkY19jb21taXRfdXBkYXRlc19mb3Jfc3RyZWFtKHN0cnVjdCBk
YyAqZGMsCiAgc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlICpzcmZfdXBkYXRlcywKICBpbnQgc3Vy
ZmFjZV9jb3VudCwKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgc3RydWN0IGRj
X3N0cmVhbV91cGRhdGUgKnN0cmVhbV91cGRhdGUsCiAgc3RydWN0IGRjX3N0YXRlICpzdGF0ZSk7
CgoKCnZvaWQgZGNfc3RyZWFtX2xvZyhjb25zdCBzdHJ1Y3QgZGMgKmRjLCBjb25zdCBzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoKdWludDhfdCBkY19nZXRfY3VycmVudF9zdHJlYW1f
Y291bnQoc3RydWN0IGRjICpkYyk7CnN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKmRjX2dldF9zdHJl
YW1fYXRfaW5kZXgoc3RydWN0IGRjICpkYywgdWludDhfdCBpKTsKCgoKCnVpbnQzMl90IGRjX3N0
cmVhbV9nZXRfdmJsYW5rX2NvdW50ZXIoY29uc3Qgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3Ry
ZWFtKTsKCgoKCmJvb2wgZGNfc3RyZWFtX3NlbmRfZHBfc2RwKGNvbnN0IHN0cnVjdCBkY19zdHJl
YW1fc3RhdGUgKnN0cmVhbSwKICBjb25zdCB1aW50OF90ICpjdXN0b21fc2RwX21lc3NhZ2UsCiAg
dW5zaWduZWQgaW50IHNkcF9tZXNzYWdlX3NpemUpOwoKCgoKCmJvb2wgZGNfc3RyZWFtX2dldF9z
Y2Fub3V0cG9zKGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKICAgICAgdWlu
dDMyX3QgKnZfYmxhbmtfc3RhcnQsCiAgICAgIHVpbnQzMl90ICp2X2JsYW5rX2VuZCwKICAgICAg
dWludDMyX3QgKmhfcG9zaXRpb24sCiAgICAgIHVpbnQzMl90ICp2X3Bvc2l0aW9uKTsKCmVudW0g
ZGNfc3RhdHVzIGRjX2FkZF9zdHJlYW1fdG9fY3R4KAogICBzdHJ1Y3QgZGMgKmRjLAogIHN0cnVj
dCBkY19zdGF0ZSAqbmV3X2N0eCwKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoK
ZW51bSBkY19zdGF0dXMgZGNfcmVtb3ZlX3N0cmVhbV9mcm9tX2N0eCgKICBzdHJ1Y3QgZGMgKmRj
LAogICBzdHJ1Y3QgZGNfc3RhdGUgKm5ld19jdHgsCiAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUg
KnN0cmVhbSk7CgoKYm9vbCBkY19hZGRfcGxhbmVfdG9fY29udGV4dCgKICBjb25zdCBzdHJ1Y3Qg
ZGMgKmRjLAogIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKICBzdHJ1Y3QgZGNfcGxh
bmVfc3RhdGUgKnBsYW5lX3N0YXRlLAogIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7Cgpib29s
IGRjX3JlbW92ZV9wbGFuZV9mcm9tX2NvbnRleHQoCiAgY29uc3Qgc3RydWN0IGRjICpkYywKICBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgc3RydWN0IGRjX3BsYW5lX3N0YXRlICpw
bGFuZV9zdGF0ZSwKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoKYm9vbCBkY19yZW1fYWxs
X3BsYW5lc19mb3Jfc3RyZWFtKAogIGNvbnN0IHN0cnVjdCBkYyAqZGMsCiAgc3RydWN0IGRjX3N0
cmVhbV9zdGF0ZSAqc3RyZWFtLAogIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7Cgpib29sIGRj
X2FkZF9hbGxfcGxhbmVzX2Zvcl9zdHJlYW0oCiAgY29uc3Qgc3RydWN0IGRjICpkYywKICBzdHJ1
Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgc3RydWN0IGRjX3BsYW5lX3N0YXRlICogY29u
c3QgKnBsYW5lX3N0YXRlcywKICBpbnQgcGxhbmVfY291bnQsCiAgc3RydWN0IGRjX3N0YXRlICpj
b250ZXh0KTsKCmJvb2wgZGNfc3RyZWFtX2FkZF93cml0ZWJhY2soc3RydWN0IGRjICpkYywKICBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgc3RydWN0IGRjX3dyaXRlYmFja19pbmZv
ICp3Yl9pbmZvKTsKCmJvb2wgZGNfc3RyZWFtX3JlbW92ZV93cml0ZWJhY2soc3RydWN0IGRjICpk
YywKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgdWludDMyX3QgZHdiX3BpcGVf
aW5zdCk7Cgpib29sIGRjX3N0cmVhbV93YXJtdXBfd3JpdGViYWNrKHN0cnVjdCBkYyAqZGMsCiAg
aW50IG51bV9kd2IsCiAgc3RydWN0IGRjX3dyaXRlYmFja19pbmZvICp3Yl9pbmZvKTsKCmJvb2wg
ZGNfc3RyZWFtX2RtZGF0YV9zdGF0dXNfZG9uZShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3Ry
ZWFtX3N0YXRlICpzdHJlYW0pOwoKYm9vbCBkY19zdHJlYW1fc2V0X2R5bmFtaWNfbWV0YWRhdGEo
c3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgc3RydWN0
IGRjX2RtZGF0YV9hdHRyaWJ1dGVzICpkbWRhdGFfYXR0cik7CgplbnVtIGRjX3N0YXR1cyBkY192
YWxpZGF0ZV9zdHJlYW0oc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3Ry
ZWFtKTsKIyAzNzYgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9k
Y19zdHJlYW0uaCIKYm9vbCBkY19lbmFibGVfc3RlcmVvKAogc3RydWN0IGRjICpkYywKIHN0cnVj
dCBkY19zdGF0ZSAqY29udGV4dCwKIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbXNbXSwK
IHVpbnQ4X3Qgc3RyZWFtX2NvdW50KTsKCgplbnVtIHN1cmZhY2VfdXBkYXRlX3R5cGUgZGNfY2hl
Y2tfdXBkYXRlX3N1cmZhY2VzX2Zvcl9zdHJlYW0oCiAgc3RydWN0IGRjICpkYywKICBzdHJ1Y3Qg
ZGNfc3VyZmFjZV91cGRhdGUgKnVwZGF0ZXMsCiAgaW50IHN1cmZhY2VfY291bnQsCiAgc3RydWN0
IGRjX3N0cmVhbV91cGRhdGUgKnN0cmVhbV91cGRhdGUsCiAgY29uc3Qgc3RydWN0IGRjX3N0cmVh
bV9zdGF0dXMgKnN0cmVhbV9zdGF0dXMpOwoKCgoKc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqZGNf
Y3JlYXRlX3N0cmVhbV9mb3Jfc2luayhzdHJ1Y3QgZGNfc2luayAqZGNfc2luayk7CgpzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpkY19jb3B5X3N0cmVhbShjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0
YXRlICpzdHJlYW0pOwoKdm9pZCB1cGRhdGVfc3RyZWFtX3NpZ25hbChzdHJ1Y3QgZGNfc3RyZWFt
X3N0YXRlICpzdHJlYW0sIHN0cnVjdCBkY19zaW5rICpzaW5rKTsKCnZvaWQgZGNfc3RyZWFtX3Jl
dGFpbihzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpkY19zdHJlYW0pOwp2b2lkIGRjX3N0cmVhbV9y
ZWxlYXNlKHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKmRjX3N0cmVhbSk7CgpzdHJ1Y3QgZGNfc3Ry
ZWFtX3N0YXR1cyAqZGNfc3RyZWFtX2dldF9zdGF0dXNfZnJvbV9zdGF0ZSgKIHN0cnVjdCBkY19z
dGF0ZSAqc3RhdGUsCiBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwpzdHJ1Y3QgZGNf
c3RyZWFtX3N0YXR1cyAqZGNfc3RyZWFtX2dldF9zdGF0dXMoCiBzdHJ1Y3QgZGNfc3RyZWFtX3N0
YXRlICpkY19zdHJlYW0pOwoKCgoKCmJvb2wgZGNfc3RyZWFtX3NldF9jdXJzb3JfYXR0cmlidXRl
cygKIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKIGNvbnN0IHN0cnVjdCBkY19jdXJz
b3JfYXR0cmlidXRlcyAqYXR0cmlidXRlcyk7Cgpib29sIGRjX3N0cmVhbV9zZXRfY3Vyc29yX3Bv
c2l0aW9uKAogc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAogY29uc3Qgc3RydWN0IGRj
X2N1cnNvcl9wb3NpdGlvbiAqcG9zaXRpb24pOwoKCmJvb2wgZGNfc3RyZWFtX2FkanVzdF92bWlu
X3ZtYXgoc3RydWN0IGRjICpkYywKICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwK
ICAgIHN0cnVjdCBkY19jcnRjX3RpbWluZ19hZGp1c3QgKmFkanVzdCk7Cgpib29sIGRjX3N0cmVh
bV9nZXRfY3J0Y19wb3NpdGlvbihzdHJ1Y3QgZGMgKmRjLAogICAgIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKipzdHJlYW0sCiAgICAgaW50IG51bV9zdHJlYW1zLAogICAgIHVuc2lnbmVkIGludCAq
dl9wb3MsCiAgICAgdW5zaWduZWQgaW50ICpub21fdl9wb3MpOwoKYm9vbCBkY19zdHJlYW1fY29u
ZmlndXJlX2NyYyhzdHJ1Y3QgZGMgKmRjLAogICAgICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUg
KnN0cmVhbSwKICAgICAgICBib29sIGVuYWJsZSwKICAgICAgICBib29sIGNvbnRpbnVvdXMpOwoK
Ym9vbCBkY19zdHJlYW1fZ2V0X2NyYyhzdHJ1Y3QgZGMgKmRjLAogICAgICAgICBzdHJ1Y3QgZGNf
c3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgICAgICAgIHVpbnQzMl90ICpyX2NyLAogICAgICAgICB1
aW50MzJfdCAqZ195LAogICAgICAgICB1aW50MzJfdCAqYl9jYik7Cgp2b2lkIGRjX3N0cmVhbV9z
ZXRfc3RhdGljX3NjcmVlbl9wYXJhbXMoc3RydWN0IGRjICpkYywKICAgICBzdHJ1Y3QgZGNfc3Ry
ZWFtX3N0YXRlICoqc3RyZWFtLAogICAgIGludCBudW1fc3RyZWFtcywKICAgICBjb25zdCBzdHJ1
Y3QgZGNfc3RhdGljX3NjcmVlbl9wYXJhbXMgKnBhcmFtcyk7Cgp2b2lkIGRjX3N0cmVhbV9zZXRf
ZHluX2V4cGFuc2lvbihzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJl
YW0sCiAgZW51bSBkY19keW5hbWljX2V4cGFuc2lvbiBvcHRpb24pOwoKdm9pZCBkY19zdHJlYW1f
c2V0X2RpdGhlcl9vcHRpb24oc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAogICAgIGVu
dW0gZGNfZGl0aGVyX29wdGlvbiBvcHRpb24pOwoKYm9vbCBkY19zdHJlYW1fc2V0X2dhbXV0X3Jl
bWFwKHN0cnVjdCBkYyAqZGMsCiAgICAgICAgICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRl
ICpzdHJlYW0pOwoKYm9vbCBkY19zdHJlYW1fcHJvZ3JhbV9jc2NfbWF0cml4KHN0cnVjdCBkYyAq
ZGMsCiAgICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7Cgpib29sIGRjX3N0cmVh
bV9nZXRfY3J0Y19wb3NpdGlvbihzdHJ1Y3QgZGMgKmRjLAogICAgIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKipzdHJlYW0sCiAgICAgaW50IG51bV9zdHJlYW1zLAogICAgIHVuc2lnbmVkIGludCAq
dl9wb3MsCiAgICAgdW5zaWduZWQgaW50ICpub21fdl9wb3MpOwojIDg3NCAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiIDIKCgoKCnN0cnVjdCBkY192YWxp
ZGF0aW9uX3NldCB7CiBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW07CiBzdHJ1Y3QgZGNf
cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlc1szXTsKIHVpbnQ4X3QgcGxhbmVfY291bnQ7Cn07Cgpi
b29sIGRjX3ZhbGlkYXRlX3NlYW1sZXNzX2Jvb3RfdGltaW5nKGNvbnN0IHN0cnVjdCBkYyAqZGMs
CiAgICBjb25zdCBzdHJ1Y3QgZGNfc2luayAqc2luaywKICAgIHN0cnVjdCBkY19jcnRjX3RpbWlu
ZyAqY3J0Y190aW1pbmcpOwoKZW51bSBkY19zdGF0dXMgZGNfdmFsaWRhdGVfcGxhbmUoc3RydWN0
IGRjICpkYywgY29uc3Qgc3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cgp2b2lk
IGdldF9jbG9ja19yZXF1aXJlbWVudHNfZm9yX3N0YXRlKHN0cnVjdCBkY19zdGF0ZSAqc3RhdGUs
IHN0cnVjdCBBc2ljU3RhdGVFeCAqaW5mbyk7Cgpib29sIGRjX3NldF9nZW5lcmljX2dwaW9fZm9y
X3N0ZXJlbyhib29sIGVuYWJsZSwKICBzdHJ1Y3QgZ3Bpb19zZXJ2aWNlICpncGlvX3NlcnZpY2Up
OwoKCgoKCmVudW0gZGNfc3RhdHVzIGRjX3ZhbGlkYXRlX2dsb2JhbF9zdGF0ZSgKICBzdHJ1Y3Qg
ZGMgKmRjLAogIHN0cnVjdCBkY19zdGF0ZSAqbmV3X2N0eCwKICBib29sIGZhc3RfdmFsaWRhdGUp
OwoKCnZvaWQgZGNfcmVzb3VyY2Vfc3RhdGVfY29uc3RydWN0KAogIGNvbnN0IHN0cnVjdCBkYyAq
ZGMsCiAgc3RydWN0IGRjX3N0YXRlICpkc3RfY3R4KTsKCnZvaWQgZGNfcmVzb3VyY2Vfc3RhdGVf
Y29weV9jb25zdHJ1Y3QoCiAgY29uc3Qgc3RydWN0IGRjX3N0YXRlICpzcmNfY3R4LAogIHN0cnVj
dCBkY19zdGF0ZSAqZHN0X2N0eCk7Cgp2b2lkIGRjX3Jlc291cmNlX3N0YXRlX2NvcHlfY29uc3Ry
dWN0X2N1cnJlbnQoCiAgY29uc3Qgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmRz
dF9jdHgpOwoKdm9pZCBkY19yZXNvdXJjZV9zdGF0ZV9kZXN0cnVjdChzdHJ1Y3QgZGNfc3RhdGUg
KmNvbnRleHQpOwoKYm9vbCBkY19yZXNvdXJjZV9pc19kc2NfZW5jb2Rpbmdfc3VwcG9ydGVkKGNv
bnN0IHN0cnVjdCBkYyAqZGMpOwojIDkzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2RjLmgiCmJvb2wgZGNfY29tbWl0X3N0YXRlKHN0cnVjdCBkYyAqZGMsIHN0
cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CgoKc3RydWN0IGRjX3N0YXRlICpkY19jcmVhdGVfc3Rh
dGUoc3RydWN0IGRjICpkYyk7CnN0cnVjdCBkY19zdGF0ZSAqZGNfY29weV9zdGF0ZShzdHJ1Y3Qg
ZGNfc3RhdGUgKnNyY19jdHgpOwp2b2lkIGRjX3JldGFpbl9zdGF0ZShzdHJ1Y3QgZGNfc3RhdGUg
KmNvbnRleHQpOwp2b2lkIGRjX3JlbGVhc2Vfc3RhdGUoc3RydWN0IGRjX3N0YXRlICpjb250ZXh0
KTsKCgoKCgpzdHJ1Y3QgZHBjZF9jYXBzIHsKIHVuaW9uIGRwY2RfcmV2IGRwY2RfcmV2OwogdW5p
b24gbWF4X2xhbmVfY291bnQgbWF4X2xuX2NvdW50OwogdW5pb24gbWF4X2Rvd25fc3ByZWFkIG1h
eF9kb3duX3NwcmVhZDsKIHVuaW9uIGRwcnhfZmVhdHVyZSBkcHJ4X2ZlYXR1cmU7CgoKIHVpbnQ4
X3QgZWRwX3N1cHBvcnRlZF9saW5rX3JhdGVzX2NvdW50OwogZW51bSBkY19saW5rX3JhdGUgZWRw
X3N1cHBvcnRlZF9saW5rX3JhdGVzWzhdOwoKCiBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5cGUgZG9u
Z2xlX3R5cGU7CgogYm9vbCBpc19icmFuY2hfZGV2OwoKIHVuaW9uIHNpbmtfY291bnQgc2lua19j
b3VudDsKCgogc3RydWN0IGRjX2RvbmdsZV9jYXBzIGRvbmdsZV9jYXBzOwoKIHVpbnQzMl90IHNp
bmtfZGV2X2lkOwogaW50OF90IHNpbmtfZGV2X2lkX3N0cls2XTsKIGludDhfdCBzaW5rX2h3X3Jl
dmlzaW9uOwogaW50OF90IHNpbmtfZndfcmV2aXNpb25bMl07CgogdWludDMyX3QgYnJhbmNoX2Rl
dl9pZDsKIGludDhfdCBicmFuY2hfZGV2X25hbWVbNl07CiBpbnQ4X3QgYnJhbmNoX2h3X3Jldmlz
aW9uOwogaW50OF90IGJyYW5jaF9md19yZXZpc2lvblsyXTsKCiBib29sIGFsbG93X2ludmFsaWRf
TVNBX3RpbWluZ19wYXJhbTsKIGJvb2wgcGFuZWxfbW9kZV9lZHA7CiBib29sIGRwY2RfZGlzcGxh
eV9jb250cm9sX2NhcGFibGU7CiBib29sIGV4dF9yZWNlaXZlcl9jYXBfZmllbGRfcHJlc2VudDsK
IHVuaW9uIGRwY2RfZmVjX2NhcGFiaWxpdHkgZmVjX2NhcDsKIHN0cnVjdCBkcGNkX2RzY19jYXBh
YmlsaXRpZXMgZHNjX2NhcHM7CiBzdHJ1Y3QgZGNfbHR0cHJfY2FwcyBsdHRwcl9jYXBzOwoKfTsK
CiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2xpbmsu
aCIgMQojIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNf
bGluay5oIgplbnVtIGRjX2xpbmtfZmVjX3N0YXRlIHsKIGRjX2xpbmtfZmVjX25vdF9yZWFkeSwK
IGRjX2xpbmtfZmVjX3JlYWR5LAogZGNfbGlua19mZWNfZW5hYmxlZAp9OwpzdHJ1Y3QgZGNfbGlu
a19zdGF0dXMgewogYm9vbCBsaW5rX2FjdGl2ZTsKIHN0cnVjdCBkcGNkX2NhcHMgKmRwY2RfY2Fw
czsKfTsKCgpzdHJ1Y3QgbGlua19tc3Rfc3RyZWFtX2FsbG9jYXRpb24gewoKIGNvbnN0IHN0cnVj
dCBzdHJlYW1fZW5jb2RlciAqc3RyZWFtX2VuYzsKCiB1aW50OF90IHZjcF9pZDsKCiB1aW50OF90
IHNsb3RfY291bnQ7Cn07CgoKc3RydWN0IGxpbmtfbXN0X3N0cmVhbV9hbGxvY2F0aW9uX3RhYmxl
IHsKCiBpbnQgc3RyZWFtX2NvdW50OwoKIHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2NhdGlv
biBzdHJlYW1fYWxsb2NhdGlvbnNbTUFYX0NPTlRST0xMRVJfTlVNXTsKfTsKCnN0cnVjdCB0aW1l
X3N0YW1wIHsKIHVpbnQ2NF90IGVkcF9wb3dlcm9mZjsKIHVpbnQ2NF90IGVkcF9wb3dlcm9uOwp9
OwoKc3RydWN0IGxpbmtfdHJhY2Ugewogc3RydWN0IHRpbWVfc3RhbXAgdGltZV9zdGFtcDsKfTsK
CgoKCnN0cnVjdCBkY19saW5rIHsKIHN0cnVjdCBkY19zaW5rICpyZW1vdGVfc2lua3NbNF07CiB1
bnNpZ25lZCBpbnQgc2lua19jb3VudDsKIHN0cnVjdCBkY19zaW5rICpsb2NhbF9zaW5rOwogdW5z
aWduZWQgaW50IGxpbmtfaW5kZXg7CiBlbnVtIGRjX2Nvbm5lY3Rpb25fdHlwZSB0eXBlOwogZW51
bSBzaWduYWxfdHlwZSBjb25uZWN0b3Jfc2lnbmFsOwogZW51bSBkY19pcnFfc291cmNlIGlycV9z
b3VyY2VfaHBkOwogZW51bSBkY19pcnFfc291cmNlIGlycV9zb3VyY2VfaHBkX3J4OwogYm9vbCBp
c19ocGRfZmlsdGVyX2Rpc2FibGVkOwogYm9vbCBkcF9zc19vZmY7CiBib29sIGxpbmtfc3RhdGVf
dmFsaWQ7CiBib29sIGF1eF9hY2Nlc3NfZGlzYWJsZWQ7CiBib29sIHN5bmNfbHRfaW5fcHJvZ3Jl
c3M7CiBib29sIGlzX2x0dHByX21vZGVfdHJhbnNwYXJlbnQ7CgoKCgogc3RydWN0IGRjX2xpbmtf
c2V0dGluZ3MgcmVwb3J0ZWRfbGlua19jYXA7CiBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyB2ZXJp
ZmllZF9saW5rX2NhcDsKIHN0cnVjdCBkY19saW5rX3NldHRpbmdzIGN1cl9saW5rX3NldHRpbmdz
Owogc3RydWN0IGRjX2xhbmVfc2V0dGluZ3MgY3VyX2xhbmVfc2V0dGluZzsKIHN0cnVjdCBkY19s
aW5rX3NldHRpbmdzIHByZWZlcnJlZF9saW5rX3NldHRpbmc7CiBzdHJ1Y3QgZGNfbGlua190cmFp
bmluZ19vdmVycmlkZXMgcHJlZmVycmVkX3RyYWluaW5nX3NldHRpbmdzOwogc3RydWN0IGRwX2F1
ZGlvX3Rlc3RfZGF0YSBhdWRpb190ZXN0X2RhdGE7CgogdWludDhfdCBkZGNfaHdfaW5zdDsKCiB1
aW50OF90IGhwZF9zcmM7CgogdWludDhfdCBsaW5rX2VuY19od19pbnN0OwoKIGJvb2wgdGVzdF9w
YXR0ZXJuX2VuYWJsZWQ7CiB1bmlvbiBjb21wbGlhbmNlX3Rlc3Rfc3RhdGUgY29tcGxpYW5jZV90
ZXN0X3N0YXRlOwoKIHZvaWQgKnByaXY7Cgogc3RydWN0IGRkY19zZXJ2aWNlICpkZGM7CgogYm9v
bCBhdXhfbW9kZTsKCgoKIGNvbnN0IHN0cnVjdCBkYyAqZGM7Cgogc3RydWN0IGRjX2NvbnRleHQg
KmN0eDsKCiBzdHJ1Y3QgbGlua19lbmNvZGVyICpsaW5rX2VuYzsKIHN0cnVjdCBncmFwaGljc19v
YmplY3RfaWQgbGlua19pZDsKIHVuaW9uIGRkaV9jaGFubmVsX21hcHBpbmcgZGRpX2NoYW5uZWxf
bWFwcGluZzsKIHN0cnVjdCBjb25uZWN0b3JfZGV2aWNlX3RhZ19pbmZvIGRldmljZV90YWc7CiBz
dHJ1Y3QgZHBjZF9jYXBzIGRwY2RfY2FwczsKIHVpbnQzMl90IGRvbmdsZV9tYXhfcGl4X2NsazsK
IHVuc2lnbmVkIHNob3J0IGNoaXBfY2FwczsKIHVuc2lnbmVkIGludCBkcGNkX3NpbmtfY291bnQ7
CiBlbnVtIGVkcF9yZXZpc2lvbiBlZHBfcmV2aXNpb247CiBib29sIHBzcl9mZWF0dXJlX2VuYWJs
ZWQ7CiBib29sIHBzcl9hbGxvd19hY3RpdmU7CgoKIHN0cnVjdCBsaW5rX2ZsYWdzIHsKICBib29s
IGRwX2tlZXBfcmVjZWl2ZXJfcG93ZXJlZDsKICBib29sIGRwX3NraXBfRElEMjsKICBib29sIGRw
X3NraXBfcmVzZXRfc2VnbWVudDsKIH0gd2FfZmxhZ3M7CiBzdHJ1Y3QgbGlua19tc3Rfc3RyZWFt
X2FsbG9jYXRpb25fdGFibGUgbXN0X3N0cmVhbV9hbGxvY190YWJsZTsKCiBzdHJ1Y3QgZGNfbGlu
a19zdGF0dXMgbGlua19zdGF0dXM7Cgogc3RydWN0IGxpbmtfdHJhY2UgbGlua190cmFjZTsKIHN0
cnVjdCBncGlvICpocGRfZ3BpbzsKIGVudW0gZGNfbGlua19mZWNfc3RhdGUgZmVjX3N0YXRlOwp9
OwoKY29uc3Qgc3RydWN0IGRjX2xpbmtfc3RhdHVzICpkY19saW5rX2dldF9zdGF0dXMoY29uc3Qg
c3RydWN0IGRjX2xpbmsgKmRjX2xpbmspOwojIDE1NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2xpbmsuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRjX2xpbmsgKmRjX2dldF9saW5r
X2F0X2luZGV4KHN0cnVjdCBkYyAqZGMsIHVpbnQzMl90IGxpbmtfaW5kZXgpCnsKIHJldHVybiBk
Yy0+bGlua3NbbGlua19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkY19saW5rICpnZXRfZWRwX2xpbmsoY29u
c3Qgc3RydWN0IGRjICpkYykKewogaW50IGk7CgoKIGZvciAoaSA9IDA7IGkgPCBkYy0+bGlua19j
b3VudDsgaSsrKSB7CiAgaWYgKGRjLT5saW5rc1tpXS0+Y29ubmVjdG9yX3NpZ25hbCA9PSBTSUdO
QUxfVFlQRV9FRFApCiAgIHJldHVybiBkYy0+bGlua3NbaV07CiB9CiByZXR1cm4gKCh2b2lkICop
MCk7Cn0KCgoKCgpib29sIGRjX2xpbmtfc2V0X2JhY2tsaWdodF9sZXZlbChjb25zdCBzdHJ1Y3Qg
ZGNfbGluayAqZGNfbGluaywKICB1aW50MzJfdCBiYWNrbGlnaHRfcHdtX3UxNl8xNiwKICB1aW50
MzJfdCBmcmFtZV9yYW1wKTsKCmludCBkY19saW5rX2dldF9iYWNrbGlnaHRfbGV2ZWwoY29uc3Qg
c3RydWN0IGRjX2xpbmsgKmRjX2xpbmspOwoKYm9vbCBkY19saW5rX3NldF9hYm1fZGlzYWJsZShj
b25zdCBzdHJ1Y3QgZGNfbGluayAqZGNfbGluayk7Cgpib29sIGRjX2xpbmtfc2V0X3Bzcl9hbGxv
d19hY3RpdmUoc3RydWN0IGRjX2xpbmsgKmRjX2xpbmssIGJvb2wgZW5hYmxlLCBib29sIHdhaXQp
OwoKYm9vbCBkY19saW5rX2dldF9wc3Jfc3RhdGUoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmRjX2xp
bmssIHVpbnQzMl90ICpwc3Jfc3RhdGUpOwoKYm9vbCBkY19saW5rX3NldHVwX3BzcihzdHJ1Y3Qg
ZGNfbGluayAqZGNfbGluaywKICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0s
IHN0cnVjdCBwc3JfY29uZmlnICpwc3JfY29uZmlnLAogIHN0cnVjdCBwc3JfY29udGV4dCAqcHNy
X2NvbnRleHQpOwoKCgoKCgoKZW51bSBkY19kZXRlY3RfcmVhc29uIHsKIERFVEVDVF9SRUFTT05f
Qk9PVCwKIERFVEVDVF9SRUFTT05fSFBELAogREVURUNUX1JFQVNPTl9IUERSWCwKfTsKCmJvb2wg
ZGNfbGlua19kZXRlY3Qoc3RydWN0IGRjX2xpbmsgKmRjX2xpbmssIGVudW0gZGNfZGV0ZWN0X3Jl
YXNvbiByZWFzb24pOwpib29sIGRjX2xpbmtfZ2V0X2hwZF9zdGF0ZShzdHJ1Y3QgZGNfbGluayAq
ZGNfbGluayk7CmVudW0gZGNfc3RhdHVzIGRjX2xpbmtfYWxsb2NhdGVfbXN0X3BheWxvYWQoc3Ry
dWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CmVudW0gZGNfc3RhdHVzIGRjX2xpbmtfcmVhbGxvY2F0
ZV9tc3RfcGF5bG9hZChzdHJ1Y3QgZGNfbGluayAqbGluayk7CgoKCgoKCgpib29sIGRjX2xpbmtf
aGFuZGxlX2hwZF9yeF9pcnEoc3RydWN0IGRjX2xpbmsgKmRjX2xpbmssCiAgdW5pb24gaHBkX2ly
cV9kYXRhICpocGRfaXJxX2RwY2RfZGF0YSwgYm9vbCAqb3V0X2xpbmtfbG9zcyk7CgpzdHJ1Y3Qg
ZGNfc2lua19pbml0X2RhdGE7CgpzdHJ1Y3QgZGNfc2luayAqZGNfbGlua19hZGRfcmVtb3RlX3Np
bmsoCiAgc3RydWN0IGRjX2xpbmsgKmRjX2xpbmssCiAgY29uc3QgdWludDhfdCAqZWRpZCwKICBp
bnQgbGVuLAogIHN0cnVjdCBkY19zaW5rX2luaXRfZGF0YSAqaW5pdF9kYXRhKTsKCnZvaWQgZGNf
bGlua19yZW1vdmVfcmVtb3RlX3NpbmsoCiBzdHJ1Y3QgZGNfbGluayAqbGluaywKIHN0cnVjdCBk
Y19zaW5rICpzaW5rKTsKCgoKdm9pZCBkY19saW5rX2RwX3NldF9kcml2ZV9zZXR0aW5ncygKIHN0
cnVjdCBkY19saW5rICpsaW5rLAogc3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3MgKmx0X3Nl
dHRpbmdzKTsKCmJvb2wgZGNfbGlua19kcF9wZXJmb3JtX2xpbmtfdHJhaW5pbmdfc2tpcF9hdXgo
CiBzdHJ1Y3QgZGNfbGluayAqbGluaywKIGNvbnN0IHN0cnVjdCBkY19saW5rX3NldHRpbmdzICps
aW5rX3NldHRpbmcpOwoKZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCBkY19saW5rX2RwX3BlcmZv
cm1fbGlua190cmFpbmluZygKIHN0cnVjdCBkY19saW5rICpsaW5rLAogY29uc3Qgc3RydWN0IGRj
X2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywKIGJvb2wgc2tpcF92aWRlb19wYXR0ZXJuKTsK
CmJvb2wgZGNfbGlua19kcF9zeW5jX2x0X2JlZ2luKHN0cnVjdCBkY19saW5rICpsaW5rKTsKCmVu
dW0gbGlua190cmFpbmluZ19yZXN1bHQgZGNfbGlua19kcF9zeW5jX2x0X2F0dGVtcHQoCiBzdHJ1
Y3QgZGNfbGluayAqbGluaywKIHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmcs
CiBzdHJ1Y3QgZGNfbGlua190cmFpbmluZ19vdmVycmlkZXMgKmx0X3NldHRpbmdzKTsKCmJvb2wg
ZGNfbGlua19kcF9zeW5jX2x0X2VuZChzdHJ1Y3QgZGNfbGluayAqbGluaywgYm9vbCBsaW5rX2Rv
d24pOwoKdm9pZCBkY19saW5rX2RwX2VuYWJsZV9ocGQoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxp
bmspOwoKdm9pZCBkY19saW5rX2RwX2Rpc2FibGVfaHBkKGNvbnN0IHN0cnVjdCBkY19saW5rICps
aW5rKTsKCmJvb2wgZGNfbGlua19kcF9zZXRfdGVzdF9wYXR0ZXJuKAogc3RydWN0IGRjX2xpbmsg
KmxpbmssCiBlbnVtIGRwX3Rlc3RfcGF0dGVybiB0ZXN0X3BhdHRlcm4sCiBlbnVtIGRwX3Rlc3Rf
cGF0dGVybl9jb2xvcl9zcGFjZSB0ZXN0X3BhdHRlcm5fY29sb3Jfc3BhY2UsCiBjb25zdCBzdHJ1
Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqcF9saW5rX3NldHRpbmdzLAogY29uc3QgdW5zaWdu
ZWQgY2hhciAqcF9jdXN0b21fcGF0dGVybiwKIHVuc2lnbmVkIGludCBjdXN0X3BhdHRlcm5fc2l6
ZSk7Cgp2b2lkIGRjX2xpbmtfZW5hYmxlX2hwZF9maWx0ZXIoc3RydWN0IGRjX2xpbmsgKmxpbmss
IGJvb2wgZW5hYmxlKTsKCmJvb2wgZGNfbGlua19pc19kcF9zaW5rX3ByZXNlbnQoc3RydWN0IGRj
X2xpbmsgKmxpbmspOwoKYm9vbCBkY19saW5rX2RldGVjdF9zaW5rKHN0cnVjdCBkY19saW5rICps
aW5rLCBlbnVtIGRjX2Nvbm5lY3Rpb25fdHlwZSAqdHlwZSk7CgoKCgp2b2lkIGRjX2xpbmtfc2V0
X2RyaXZlX3NldHRpbmdzKHN0cnVjdCBkYyAqZGMsCiAgICBzdHJ1Y3QgbGlua190cmFpbmluZ19z
ZXR0aW5ncyAqbHRfc2V0dGluZ3MsCiAgICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CnZv
aWQgZGNfbGlua19wZXJmb3JtX2xpbmtfdHJhaW5pbmcoc3RydWN0IGRjICpkYywKICAgICAgIHN0
cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmcsCiAgICAgICBib29sIHNraXBfdmlk
ZW9fcGF0dGVybik7CnZvaWQgZGNfbGlua19zZXRfcHJlZmVycmVkX2xpbmtfc2V0dGluZ3Moc3Ry
dWN0IGRjICpkYywKICAgICAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywK
ICAgICAgc3RydWN0IGRjX2xpbmsgKmxpbmspOwp2b2lkIGRjX2xpbmtfc2V0X3ByZWZlcnJlZF90
cmFpbmluZ19zZXR0aW5ncyhzdHJ1Y3QgZGMgKmRjLAogICAgIHN0cnVjdCBkY19saW5rX3NldHRp
bmdzICpsaW5rX3NldHRpbmcsCiAgICAgc3RydWN0IGRjX2xpbmtfdHJhaW5pbmdfb3ZlcnJpZGVz
ICpsdF9vdmVycmlkZXMsCiAgICAgc3RydWN0IGRjX2xpbmsgKmxpbmssCiAgICAgYm9vbCBza2lw
X2ltbWVkaWF0ZV9yZXRyYWluKTsKdm9pZCBkY19saW5rX2VuYWJsZV9ocGQoY29uc3Qgc3RydWN0
IGRjX2xpbmsgKmxpbmspOwp2b2lkIGRjX2xpbmtfZGlzYWJsZV9ocGQoY29uc3Qgc3RydWN0IGRj
X2xpbmsgKmxpbmspOwp2b2lkIGRjX2xpbmtfc2V0X3Rlc3RfcGF0dGVybihzdHJ1Y3QgZGNfbGlu
ayAqbGluaywKICAgZW51bSBkcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuLAogICBlbnVtIGRw
X3Rlc3RfcGF0dGVybl9jb2xvcl9zcGFjZSB0ZXN0X3BhdHRlcm5fY29sb3Jfc3BhY2UsCiAgIGNv
bnN0IHN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdzICpwX2xpbmtfc2V0dGluZ3MsCiAgIGNv
bnN0IHVuc2lnbmVkIGNoYXIgKnBfY3VzdG9tX3BhdHRlcm4sCiAgIHVuc2lnbmVkIGludCBjdXN0
X3BhdHRlcm5fc2l6ZSk7CnVpbnQzMl90IGRjX2xpbmtfYmFuZHdpZHRoX2ticHMoCiBjb25zdCBz
dHJ1Y3QgZGNfbGluayAqbGluaywKIGNvbnN0IHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5r
X3NldHRpbmcpOwoKY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmRjX2xpbmtfZ2V0X2xp
bmtfY2FwKAogIGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsKCnZvaWQgZGNfbGlua19vdmVy
d3JpdGVfZXh0ZW5kZWRfcmVjZWl2ZXJfY2FwKAogIHN0cnVjdCBkY19saW5rICpsaW5rKTsKCmJv
b2wgZGNfc3VibWl0X2kyYygKICBzdHJ1Y3QgZGMgKmRjLAogIHVpbnQzMl90IGxpbmtfaW5kZXgs
CiAgc3RydWN0IGkyY19jb21tYW5kICpjbWQpOwoKYm9vbCBkY19zdWJtaXRfaTJjX29lbSgKICBz
dHJ1Y3QgZGMgKmRjLAogIHN0cnVjdCBpMmNfY29tbWFuZCAqY21kKTsKCnVpbnQzMl90IGRjX2Jh
bmR3aWR0aF9pbl9rYnBzX2Zyb21fdGltaW5nKAogY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5n
ICp0aW1pbmcpOwojIDk4MyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2RjLmgiIDIKCgoKCgpzdHJ1Y3QgZGNfY29udGFpbmVyX2lkIHsKCiB1bnNpZ25lZCBjaGFy
IGd1aWRbMTZdOwoKIHVuc2lnbmVkIGludCBwb3J0SWRbMl07CgogdW5zaWduZWQgc2hvcnQgbWFu
dWZhY3R1cmVyTmFtZTsKCiB1bnNpZ25lZCBzaG9ydCBwcm9kdWN0Q29kZTsKfTsKCgpzdHJ1Y3Qg
ZGNfc2lua19kc2NfY2FwcyB7CgoKIGJvb2wgaXNfdmlydHVhbF9kcGNkX2RzYzsKIHN0cnVjdCBk
c2NfZGVjX2RwY2RfY2FwcyBkc2NfZGVjX2NhcHM7Cn07CgoKCgpzdHJ1Y3QgZGNfc2luayB7CiBl
bnVtIHNpZ25hbF90eXBlIHNpbmtfc2lnbmFsOwogc3RydWN0IGRjX2VkaWQgZGNfZWRpZDsKIHN0
cnVjdCBkY19lZGlkX2NhcHMgZWRpZF9jYXBzOwogc3RydWN0IGRjX2NvbnRhaW5lcl9pZCAqZGNf
Y29udGFpbmVyX2lkOwogdWludDMyX3QgZG9uZ2xlX21heF9waXhfY2xrOwogdm9pZCAqcHJpdjsK
IHN0cnVjdCBzdGVyZW9fM2RfZmVhdHVyZXMgZmVhdHVyZXNfM2RbVElNSU5HXzNEX0ZPUk1BVF9N
QVhdOwogYm9vbCBjb252ZXJ0ZXJfZGlzYWJsZV9hdWRpbzsKCiBzdHJ1Y3QgZGNfc2lua19kc2Nf
Y2FwcyBzaW5rX2RzY19jYXBzOwoKCiBzdHJ1Y3QgZGNfbGluayAqbGluazsKIHN0cnVjdCBkY19j
b250ZXh0ICpjdHg7CgogdWludDMyX3Qgc2lua19pZDsKCgoKCgogc3RydWN0IGtyZWYgcmVmY291
bnQ7Cn07Cgp2b2lkIGRjX3NpbmtfcmV0YWluKHN0cnVjdCBkY19zaW5rICpzaW5rKTsKdm9pZCBk
Y19zaW5rX3JlbGVhc2Uoc3RydWN0IGRjX3NpbmsgKnNpbmspOwoKc3RydWN0IGRjX3NpbmtfaW5p
dF9kYXRhIHsKIGVudW0gc2lnbmFsX3R5cGUgc2lua19zaWduYWw7CiBzdHJ1Y3QgZGNfbGluayAq
bGluazsKIHVpbnQzMl90IGRvbmdsZV9tYXhfcGl4X2NsazsKIGJvb2wgY29udmVydGVyX2Rpc2Fi
bGVfYXVkaW87Cn07CgpzdHJ1Y3QgZGNfc2luayAqZGNfc2lua19jcmVhdGUoY29uc3Qgc3RydWN0
IGRjX3NpbmtfaW5pdF9kYXRhICppbml0X3BhcmFtcyk7CgoKc3RydWN0IGRjX2N1cnNvciB7CiBz
dHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyBhZGRyZXNzOwogc3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1
dGVzIGF0dHJpYnV0ZXM7Cn07CgoKCgoKZW51bSBkY19pcnFfc291cmNlIGRjX2ludGVycnVwdF90
b19pcnFfc291cmNlKAogIHN0cnVjdCBkYyAqZGMsCiAgdWludDMyX3Qgc3JjX2lkLAogIHVpbnQz
Ml90IGV4dF9pZCk7CmJvb2wgZGNfaW50ZXJydXB0X3NldChzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRj
X2lycV9zb3VyY2Ugc3JjLCBib29sIGVuYWJsZSk7CnZvaWQgZGNfaW50ZXJydXB0X2FjayhzdHJ1
Y3QgZGMgKmRjLCBlbnVtIGRjX2lycV9zb3VyY2Ugc3JjKTsKZW51bSBkY19pcnFfc291cmNlIGRj
X2dldF9ocGRfaXJxX3NvdXJjZV9hdF9pbmRleCgKICBzdHJ1Y3QgZGMgKmRjLCB1aW50MzJfdCBs
aW5rX2luZGV4KTsKCgoKCgp2b2lkIGRjX3NldF9wb3dlcl9zdGF0ZSgKICBzdHJ1Y3QgZGMgKmRj
LAogIGVudW0gZGNfYWNwaV9jbV9wb3dlcl9zdGF0ZSBwb3dlcl9zdGF0ZSk7CnZvaWQgZGNfcmVz
dW1lKHN0cnVjdCBkYyAqZGMpOwp1bnNpZ25lZCBpbnQgZGNfZ2V0X2N1cnJlbnRfYmFja2xpZ2h0
X3B3bShzdHJ1Y3QgZGMgKmRjKTsKdW5zaWduZWQgaW50IGRjX2dldF90YXJnZXRfYmFja2xpZ2h0
X3B3bShzdHJ1Y3QgZGMgKmRjKTsKCmJvb2wgZGNfaXNfZG1jdV9pbml0aWFsaXplZChzdHJ1Y3Qg
ZGMgKmRjKTsKYm9vbCBkY19pc19od19pbml0aWFsaXplZChzdHJ1Y3QgZGMgKmRjKTsKCmVudW0g
ZGNfc3RhdHVzIGRjX3NldF9jbG9jayhzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRjX2Nsb2NrX3R5cGUg
Y2xvY2tfdHlwZSwgdWludDMyX3QgY2xrX2toeiwgdWludDMyX3Qgc3RlcHBpbmcpOwp2b2lkIGRj
X2dldF9jbG9jayhzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRjX2Nsb2NrX3R5cGUgY2xvY2tfdHlwZSwg
c3RydWN0IGRjX2Nsb2NrX2NvbmZpZyAqY2xvY2tfY2ZnKTsKCgoKIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfZHNjLmgiIDEKIyAzNCAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2RzYy5oIgpzdHJ1Y3QgZGNfZHNj
X2J3X3JhbmdlIHsKIHVpbnQzMl90IG1pbl9rYnBzOwogdWludDMyX3QgbWluX3RhcmdldF9icHBf
eDE2OwogdWludDMyX3QgbWF4X2ticHM7CiB1aW50MzJfdCBtYXhfdGFyZ2V0X2JwcF94MTY7CiB1
aW50MzJfdCBzdHJlYW1fa2JwczsKfTsKCnN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29y
IHsKIGNvbnN0IHN0cnVjdCBkc2NfZnVuY3MgKmZ1bmNzOwogc3RydWN0IGRjX2NvbnRleHQgKmN0
eDsKIGludCBpbnN0Owp9OwoKc3RydWN0IGRjX2RzY19wb2xpY3kgewogYm9vbCB1c2VfbWluX3Ns
aWNlc19oOwogaW50IG1heF9zbGljZXNfaDsKIGludCBtaW5fc2xpY2VfaGVpZ2h0OwogdWludDMy
X3QgbWF4X3RhcmdldF9icHA7CiB1aW50MzJfdCBtaW5fdGFyZ2V0X2JwcDsKfTsKCmJvb2wgZGNf
ZHNjX3BhcnNlX2RzY19kcGNkKGNvbnN0IHN0cnVjdCBkYyAqZGMsCiAgY29uc3QgdWludDhfdCAq
ZHBjZF9kc2NfYmFzaWNfZGF0YSwKICBjb25zdCB1aW50OF90ICpkcGNkX2RzY19leHRfZGF0YSwK
ICBzdHJ1Y3QgZHNjX2RlY19kcGNkX2NhcHMgKmRzY19zaW5rX2NhcHMpOwoKYm9vbCBkY19kc2Nf
Y29tcHV0ZV9iYW5kd2lkdGhfcmFuZ2UoCiAgY29uc3Qgc3RydWN0IGRpc3BsYXlfc3RyZWFtX2Nv
bXByZXNzb3IgKmRzYywKICBjb25zdCB1aW50MzJfdCBkc2NfbWluX3NsaWNlX2hlaWdodF9vdmVy
cmlkZSwKICBjb25zdCB1aW50MzJfdCBtaW5fYnBwLAogIGNvbnN0IHVpbnQzMl90IG1heF9icHAs
CiAgY29uc3Qgc3RydWN0IGRzY19kZWNfZHBjZF9jYXBzICpkc2Nfc2lua19jYXBzLAogIGNvbnN0
IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqdGltaW5nLAogIHN0cnVjdCBkY19kc2NfYndfcmFuZ2Ug
KnJhbmdlKTsKCmJvb2wgZGNfZHNjX2NvbXB1dGVfY29uZmlnKAogIGNvbnN0IHN0cnVjdCBkaXNw
bGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsCiAgY29uc3Qgc3RydWN0IGRzY19kZWNfZHBjZF9j
YXBzICpkc2Nfc2lua19jYXBzLAogIGNvbnN0IHVpbnQzMl90IGRzY19taW5fc2xpY2VfaGVpZ2h0
X292ZXJyaWRlLAogIHVpbnQzMl90IHRhcmdldF9iYW5kd2lkdGhfa2JwcywKICBjb25zdCBzdHJ1
Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZywKICBzdHJ1Y3QgZGNfZHNjX2NvbmZpZyAqZHNjX2Nm
Zyk7Cgp2b2lkIGRjX2RzY19nZXRfcG9saWN5X2Zvcl90aW1pbmcoY29uc3Qgc3RydWN0IGRjX2Ny
dGNfdGltaW5nICp0aW1pbmcsCiAgc3RydWN0IGRjX2RzY19wb2xpY3kgKnBvbGljeSk7Cgp2b2lk
IGRjX2RzY19wb2xpY3lfc2V0X21heF90YXJnZXRfYnBwX2xpbWl0KHVpbnQzMl90IGxpbWl0KTsK
IyAxMDg2ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIg
MgojIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3
L2Nsa19tZ3IuaCIgMgojIDUxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2h3L2Nsa19tZ3IuaCIKc3RydWN0IGNsa19saW1pdF90YWJsZV9lbnRyeSB7CiB1
bnNpZ25lZCBpbnQgdm9sdGFnZTsKIHVuc2lnbmVkIGludCBkY2ZjbGtfbWh6OwogdW5zaWduZWQg
aW50IGZjbGtfbWh6OwogdW5zaWduZWQgaW50IG1lbWNsa19taHo7CiB1bnNpZ25lZCBpbnQgc29j
Y2xrX21oejsKfTsKCgpzdHJ1Y3QgY2xrX2xpbWl0X3RhYmxlIHsKIHN0cnVjdCBjbGtfbGltaXRf
dGFibGVfZW50cnkgZW50cmllc1s4XTsKIHVuc2lnbmVkIGludCBudW1fZW50cmllczsKfTsKCnN0
cnVjdCB3bV9yYW5nZV90YWJsZV9lbnRyeSB7CiB1bnNpZ25lZCBpbnQgd21faW5zdDsKIHVuc2ln
bmVkIGludCB3bV90eXBlOwogZG91YmxlIHBzdGF0ZV9sYXRlbmN5X3VzOwogZG91YmxlIHNyX2V4
aXRfdGltZV91czsKIGRvdWJsZSBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91czsKIGJvb2wgdmFs
aWQ7Cn07CgoKc3RydWN0IGNsa19sb2dfaW5mbyB7CiBib29sIGVuYWJsZWQ7CiBjaGFyICpwQnVm
OwogdW5zaWduZWQgaW50IGJ1ZlNpemU7CiB1bnNpZ25lZCBpbnQgKnN1bV9jaGFyc19wcmludGVk
Owp9OwoKc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnNfYW5kX2J5cGFzcyB7CiB1aW50MzJfdCBk
Y2ZjbGs7CiB1aW50MzJfdCBkY2ZfZGVlcF9zbGVlcF9kaXZpZGVyOwogdWludDMyX3QgZGNmX2Rl
ZXBfc2xlZXBfYWxsb3c7CiB1aW50MzJfdCBkcHJlZmNsazsKIHVpbnQzMl90IGRpc3BjbGs7CiB1
aW50MzJfdCBkcHBjbGs7CgogdWludDMyX3QgZHBwY2xrX2J5cGFzczsKIHVpbnQzMl90IGRjZmNs
a19ieXBhc3M7CiB1aW50MzJfdCBkcHJlZmNsa19ieXBhc3M7CiB1aW50MzJfdCBkaXNwY2xrX2J5
cGFzczsKfTsKCnN0cnVjdCBydjFfY2xrX2ludGVybmFsIHsKIHVpbnQzMl90IENMSzBfQ0xLOF9D
VVJSRU5UX0NOVDsKIHVpbnQzMl90IENMSzBfQ0xLOF9EU19DTlRMOwogdWludDMyX3QgQ0xLMF9D
TEs4X0FMTE9XX0RTOwogdWludDMyX3QgQ0xLMF9DTEsxMF9DVVJSRU5UX0NOVDsKIHVpbnQzMl90
IENMSzBfQ0xLMTFfQ1VSUkVOVF9DTlQ7CgogdWludDMyX3QgQ0xLMF9DTEs4X0JZUEFTU19DTlRM
OwogdWludDMyX3QgQ0xLMF9DTEsxMF9CWVBBU1NfQ05UTDsKIHVpbnQzMl90IENMSzBfQ0xLMTFf
QllQQVNTX0NOVEw7Cn07CgpzdHJ1Y3Qgcm5fY2xrX2ludGVybmFsIHsKIHVpbnQzMl90IENMSzFf
Q0xLMF9DVVJSRU5UX0NOVDsKIHVpbnQzMl90IENMSzFfQ0xLMV9DVVJSRU5UX0NOVDsKIHVpbnQz
Ml90IENMSzFfQ0xLMl9DVVJSRU5UX0NOVDsKIHVpbnQzMl90IENMSzFfQ0xLM19DVVJSRU5UX0NO
VDsKIHVpbnQzMl90IENMSzFfQ0xLM19EU19DTlRMOwogdWludDMyX3QgQ0xLMV9DTEszX0FMTE9X
X0RTOwoKIHVpbnQzMl90IENMSzFfQ0xLMF9CWVBBU1NfQ05UTDsKIHVpbnQzMl90IENMSzFfQ0xL
MV9CWVBBU1NfQ05UTDsKIHVpbnQzMl90IENMSzFfQ0xLMl9CWVBBU1NfQ05UTDsKIHVpbnQzMl90
IENMSzFfQ0xLM19CWVBBU1NfQ05UTDsKCn07CgoKc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnMg
ewogIHVpbnQzMl90IENMSzBfQ0xLOF9DVVJSRU5UX0NOVDsKICB1aW50MzJfdCBDTEswX0NMSzhf
RFNfQ05UTDsKICB1aW50MzJfdCBDTEswX0NMSzhfQUxMT1dfRFM7CiAgdWludDMyX3QgQ0xLMF9D
TEsxMF9DVVJSRU5UX0NOVDsKICB1aW50MzJfdCBDTEswX0NMSzExX0NVUlJFTlRfQ05UOwp9OwoK
CnN0cnVjdCBjbGtfYnlwYXNzIHsKIHVpbnQzMl90IGRjZmNsa19ieXBhc3M7CiB1aW50MzJfdCBk
aXNwY2xrX3B5cGFzczsKIHVpbnQzMl90IGRwcmVmY2xrX2J5cGFzczsKfTsKCgoKCgoKc3RydWN0
IHdtX3RhYmxlIHsKIHN0cnVjdCB3bV9yYW5nZV90YWJsZV9lbnRyeSBlbnRyaWVzWzRdOwp9OwoK
c3RydWN0IGNsa19id19wYXJhbXMgewogdW5zaWduZWQgaW50IHZyYW1fdHlwZTsKIHVuc2lnbmVk
IGludCBudW1fY2hhbm5lbHM7CiBzdHJ1Y3QgY2xrX2xpbWl0X3RhYmxlIGNsa190YWJsZTsKIHN0
cnVjdCB3bV90YWJsZSB3bV90YWJsZTsKfTsKCgpzdHJ1Y3QgY2xrX3N0YXRlcyB7CiB1aW50MzJf
dCBkcHJlZmNsa19raHo7Cn07CgpzdHJ1Y3QgY2xrX21ncl9mdW5jcyB7CgoKCgoKCgogdm9pZCAo
KnVwZGF0ZV9jbG9ja3MpKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyLAogICBzdHJ1Y3QgZGNfc3Rh
dGUgKmNvbnRleHQsCiAgIGJvb2wgc2FmZV90b19sb3dlcik7CgogaW50ICgqZ2V0X2RwX3JlZl9j
bGtfZnJlcXVlbmN5KShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncik7Cgogdm9pZCAoKmluaXRfY2xv
Y2tzKShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncik7Cgogdm9pZCAoKmVuYWJsZV9wbWVfd2EpIChz
dHJ1Y3QgY2xrX21nciAqY2xrX21ncik7CiB2b2lkICgqZ2V0X2Nsb2NrKShzdHJ1Y3QgY2xrX21n
ciAqY2xrX21nciwKICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAogICBlbnVtIGRjX2Nsb2Nr
X3R5cGUgY2xvY2tfdHlwZSwKICAgc3RydWN0IGRjX2Nsb2NrX2NvbmZpZyAqY2xvY2tfY2ZnKTsK
CiBib29sICgqYXJlX2Nsb2NrX3N0YXRlc19lcXVhbCkgKHN0cnVjdCBkY19jbG9ja3MgKmEsCiAg
IHN0cnVjdCBkY19jbG9ja3MgKmIpOwogdm9pZCAoKm5vdGlmeV93bV9yYW5nZXMpKHN0cnVjdCBj
bGtfbWdyICpjbGtfbWdyKTsKfTsKCnN0cnVjdCBjbGtfbWdyIHsKIHN0cnVjdCBkY19jb250ZXh0
ICpjdHg7CiBzdHJ1Y3QgY2xrX21ncl9mdW5jcyAqZnVuY3M7CiBzdHJ1Y3QgZGNfY2xvY2tzIGNs
a3M7CiBib29sIHBzcl9hbGxvd19hY3RpdmVfY2FjaGU7CiBpbnQgZHByZWZjbGtfa2h6OwogaW50
IGRlbnRpc3RfdmNvX2ZyZXFfa2h6Owogc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnNfYW5kX2J5
cGFzcyBib290X3NuYXBzaG90Owogc3RydWN0IGNsa19id19wYXJhbXMgKmJ3X3BhcmFtczsKfTsK
CgpzdHJ1Y3QgZGNjZzsKCnN0cnVjdCBjbGtfbWdyICpkY19jbGtfbWdyX2NyZWF0ZShzdHJ1Y3Qg
ZGNfY29udGV4dCAqY3R4LCBzdHJ1Y3QgcHBfc211X2Z1bmNzICpwcF9zbXUsIHN0cnVjdCBkY2Nn
ICpkY2NnKTsKCnZvaWQgZGNfZGVzdHJveV9jbGtfbWdyKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdy
KTsKCnZvaWQgY2xrX21ncl9leGl0X29wdGltaXplZF9wd3Jfc3RhdGUoY29uc3Qgc3RydWN0IGRj
ICpkYywgc3RydWN0IGNsa19tZ3IgKmNsa19tZ3IpOwoKdm9pZCBjbGtfbWdyX29wdGltaXplX3B3
cl9zdGF0ZShjb25zdCBzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgY2xrX21nciAqY2xrX21ncik7CiMg
MzAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvY2xr
X21ncl9pbnRlcm5hbC5oIiAyCgoKCgoKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2luYy9yZXNvdXJjZS5oIiAxCiMgMjggIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvcmVzb3VyY2UuaCIKIyAxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMQojIDMw
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlw
ZXMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L2RjZV9jYWxjcy5oIiAxCiMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvZGNlX2NhbGNzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2luYy9id19maXhlZC5oIiAxCiMgMzIgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvYndfZml4ZWQuaCIKc3RydWN0IGJ3X2ZpeGVk
IHsKIGludDY0X3QgdmFsdWU7Cn07CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgYndfZml4ZWQgYndfbWluMihjb25z
dCBzdHJ1Y3QgYndfZml4ZWQgYXJnMSwKICAgICAgICAgIGNvbnN0IHN0cnVjdCBid19maXhlZCBh
cmcyKQp7CiByZXR1cm4gKGFyZzEudmFsdWUgPD0gYXJnMi52YWx1ZSkgPyBhcmcxIDogYXJnMjsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGJ3X2ZpeGVkIGJ3X21heDIoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsCiAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKewogcmV0dXJuIChhcmcyLnZhbHVl
IDw9IGFyZzEudmFsdWUpID8gYXJnMSA6IGFyZzI7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBid19maXhlZCBid19taW4z
KHN0cnVjdCBid19maXhlZCB2MSwKICAgICAgICAgIHN0cnVjdCBid19maXhlZCB2MiwKICAgICAg
ICAgIHN0cnVjdCBid19maXhlZCB2MykKewogcmV0dXJuIGJ3X21pbjIoYndfbWluMih2MSwgdjIp
LCB2Myk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHN0cnVjdCBid19maXhlZCBid19tYXgzKHN0cnVjdCBid19maXhlZCB2MSwKICAg
ICAgICAgIHN0cnVjdCBid19maXhlZCB2MiwKICAgICAgICAgIHN0cnVjdCBid19maXhlZCB2MykK
ewogcmV0dXJuIGJ3X21heDIoYndfbWF4Mih2MSwgdjIpLCB2Myk7Cn0KCnN0cnVjdCBid19maXhl
ZCBid19pbnRfdG9fZml4ZWRfbm9uY29uc3QoaW50NjRfdCB2YWx1ZSk7CnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBid19maXhl
ZCBid19pbnRfdG9fZml4ZWQoaW50NjRfdCB2YWx1ZSkKewogaWYgKF9fYnVpbHRpbl9jb25zdGFu
dF9wKHZhbHVlKSkgewogIHN0cnVjdCBid19maXhlZCByZXM7CiAgZG8geyBleHRlcm4gdm9pZCBf
X2NvbXBpbGV0aW1lX2Fzc2VydF83Myh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIkJV
SUxEX0JVR19PTiBmYWlsZWQ6ICIgInZhbHVlID4gQldfRklYRURfTUFYX0kzMiB8fCB2YWx1ZSA8
IEJXX0ZJWEVEX01JTl9JMzIiKSkpOyBpZiAoISghKHZhbHVlID4gKGludDY0X3QpKCgxVUxMIDw8
ICg2MyAtIDI0KSkgLSAxKSB8fCB2YWx1ZSA8IChpbnQ2NF90KSgtKDFMTCA8PCAoNjMgLSAyNCkp
KSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF83MygpOyB9IHdoaWxlICgwKTsKICByZXMudmFsdWUg
PSB2YWx1ZSA8PCAyNDsKICByZXR1cm4gcmVzOwogfSBlbHNlCiAgcmV0dXJuIGJ3X2ludF90b19m
aXhlZF9ub25jb25zdCh2YWx1ZSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludDMyX3QgYndfZml4ZWRfdG9faW50KHN0cnVjdCBi
d19maXhlZCB2YWx1ZSkKewogcmV0dXJuICgodmFsdWUudmFsdWUpID4+IDI0KTsKfQoKc3RydWN0
IGJ3X2ZpeGVkIGJ3X2ZyY190b19maXhlZChpbnQ2NF90IG51bSwgaW50NjRfdCBkZW51bSk7Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBz
dHJ1Y3QgYndfZml4ZWQgZml4ZWQzMV8zMl90b19id19maXhlZChpbnQ2NF90IHJhdykKewogc3Ry
dWN0IGJ3X2ZpeGVkIHJlc3VsdCA9IHsgMCB9OwoKIGlmIChyYXcgPCAwKSB7CiAgcmF3ID0gLXJh
dzsKICByZXN1bHQudmFsdWUgPSAtKHJhdyA+PiAoMzIgLSAyNCkpOwogfSBlbHNlIHsKICByZXN1
bHQudmFsdWUgPSByYXcgPj4gKDMyIC0gMjQpOwogfQoKIHJldHVybiByZXN1bHQ7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVj
dCBid19maXhlZCBid19hZGQoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsCiAgICAgICAgIGNv
bnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQp7CiBzdHJ1Y3QgYndfZml4ZWQgcmVzOwoKIHJlcy52
YWx1ZSA9IGFyZzEudmFsdWUgKyBhcmcyLnZhbHVlOwoKIHJldHVybiByZXM7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBi
d19maXhlZCBid19zdWIoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsIGNvbnN0IHN0cnVjdCBi
d19maXhlZCBhcmcyKQp7CiBzdHJ1Y3QgYndfZml4ZWQgcmVzOwoKIHJlcy52YWx1ZSA9IGFyZzEu
dmFsdWUgLSBhcmcyLnZhbHVlOwoKIHJldHVybiByZXM7Cn0KCnN0cnVjdCBid19maXhlZCBid19t
dWwoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsIGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcy
KTsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGJ3X2ZpeGVkIGJ3X2Rpdihjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMSwgY29u
c3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzIpCnsKIHJldHVybiBid19mcmNfdG9fZml4ZWQoYXJnMS52
YWx1ZSwgYXJnMi52YWx1ZSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBid19maXhlZCBid19tb2QoY29uc3Qgc3RydWN0
IGJ3X2ZpeGVkIGFyZzEsIGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQp7CiBzdHJ1Y3QgYndf
Zml4ZWQgcmVzOwogZGl2NjRfdTY0X3JlbShhcmcxLnZhbHVlLCBhcmcyLnZhbHVlLCAodWludDY0
X3QgKikmcmVzLnZhbHVlKTsKIHJldHVybiByZXM7Cn0KCnN0cnVjdCBid19maXhlZCBid19mbG9v
cjIoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZywgY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIHNpZ25p
ZmljYW5jZSk7CnN0cnVjdCBid19maXhlZCBid19jZWlsMihjb25zdCBzdHJ1Y3QgYndfZml4ZWQg
YXJnLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgc2lnbmlmaWNhbmNlKTsKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYndfZXF1KGNv
bnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKewog
cmV0dXJuIGFyZzEudmFsdWUgPT0gYXJnMi52YWx1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBid19uZXEoY29uc3Qgc3Ry
dWN0IGJ3X2ZpeGVkIGFyZzEsIGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQp7CiByZXR1cm4g
YXJnMS52YWx1ZSAhPSBhcmcyLnZhbHVlOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGJ3X2xlcShjb25zdCBzdHJ1Y3QgYndf
Zml4ZWQgYXJnMSwgY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzIpCnsKIHJldHVybiBhcmcxLnZh
bHVlIDw9IGFyZzIudmFsdWU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYndfbWVxKGNvbnN0IHN0cnVjdCBid19maXhlZCBh
cmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKewogcmV0dXJuIGFyZzEudmFsdWUgPj0g
YXJnMi52YWx1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBid19sdG4oY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsIGNv
bnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQp7CiByZXR1cm4gYXJnMS52YWx1ZSA8IGFyZzIudmFs
dWU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgYndfbXRuKGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25zdCBzdHJ1
Y3QgYndfZml4ZWQgYXJnMikKewogcmV0dXJuIGFyZzEudmFsdWUgPiBhcmcyLnZhbHVlOwp9CiMg
MzQgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvZGNlX2Nh
bGNzLmgiIDIKCnN0cnVjdCBwaXBlX2N0eDsKc3RydWN0IGRjOwpzdHJ1Y3QgZGNfc3RhdGU7CnN0
cnVjdCBkY2VfYndfb3V0cHV0OwoKZW51bSBid19jYWxjc192ZXJzaW9uIHsKIEJXX0NBTENTX1ZF
UlNJT05fSU5WQUxJRCwKIEJXX0NBTENTX1ZFUlNJT05fQ0FSUklaTywKIEJXX0NBTENTX1ZFUlNJ
T05fUE9MQVJJUzEwLAogQldfQ0FMQ1NfVkVSU0lPTl9QT0xBUklTMTEsCiBCV19DQUxDU19WRVJT
SU9OX1BPTEFSSVMxMiwKIEJXX0NBTENTX1ZFUlNJT05fVkVHQU0sCiBCV19DQUxDU19WRVJTSU9O
X1NUT05FWSwKIEJXX0NBTENTX1ZFUlNJT05fVkVHQTEwCn07CiMgNTggIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvZGNlX2NhbGNzLmgiCmVudW0gYndfZGVm
aW5lcyB7CgogYndfZGVmX25vID0gMCwKIGJ3X2RlZl9ub25lID0gMCwKIGJ3X2RlZl95ZXMgPSAx
LAogYndfZGVmX29rID0gMSwKIGJ3X2RlZl9oaWdoID0gMiwKIGJ3X2RlZl9taWQgPSAxLAogYndf
ZGVmX2xvdyA9IDAsCgoKIGJ3X2RlZnNfc3RhcnQgPSAyNTUsCiBid19kZWZfdW5kZXJsYXk0MjIs
CiBid19kZWZfdW5kZXJsYXk0MjBfbHVtYSwKIGJ3X2RlZl91bmRlcmxheTQyMF9jaHJvbWEsCiBi
d19kZWZfdW5kZXJsYXk0NDQsCiBid19kZWZfZ3JhcGhpY3MsCiBid19kZWZfZGlzcGxheV93cml0
ZV9iYWNrNDIwX2x1bWEsCiBid19kZWZfZGlzcGxheV93cml0ZV9iYWNrNDIwX2Nocm9tYSwKIGJ3
X2RlZl9wb3J0cmFpdCwKIGJ3X2RlZl9oc3JfbXRuXzQsCiBid19kZWZfaHNyX210bl9oX3RhcHMs
CiBid19kZWZfY2VpbGluZ19faF90YXBzX2Rpdl80X19fbWVxX2hzciwKIGJ3X2RlZl9pbnZhbGlk
X2xpbmVhcl9vcl9zdGVyZW9fbW9kZSwKIGJ3X2RlZl9pbnZhbGlkX3JvdGF0aW9uX29yX2JwcF9v
cl9zdGVyZW8sCiBid19kZWZfdnNyX210bl92X3RhcHMsCiBid19kZWZfdnNyX210bl80LAogYndf
ZGVmX2F1dG8sCiBid19kZWZfbWFudWFsLAogYndfZGVmX2V4Y2VlZGVkX2FsbG93ZWRfbWF4aW11
bV9zY2xrLAogYndfZGVmX2V4Y2VlZGVkX2FsbG93ZWRfcGFnZV9jbG9zZV9vcGVuLAogYndfZGVm
X2V4Y2VlZGVkX2FsbG93ZWRfb3V0c3RhbmRpbmdfcHRlX3JlcV9xdWV1ZV9zaXplLAogYndfZGVm
X2V4Y2VlZGVkX2FsbG93ZWRfbWF4aW11bV9idywKIGJ3X2RlZl9sYW5kc2NhcGUsCgoKIGJ3X2Rl
Zl9hbnlfbGluZXMsCgoKIGJ3X2RlZl91bmRlcmxheV9vbmx5LAogYndfZGVmX2JsZW5kZWQsCiBi
d19kZWZfYmxlbmQsCgoKIGJ3X2RlZl9tb25vLAogYndfZGVmX3NpZGVfYnlfc2lkZSwKIGJ3X2Rl
Zl90b3BfYm90dG9tLAoKCiBid19kZWZfNDIwLAogYndfZGVmXzQyMiwKIGJ3X2RlZl80NDQsCgoK
IGJ3X2RlZl9saW5lYXIsCiBid19kZWZfdGlsZWQsCiBid19kZWZfYXJyYXlfbGluZWFyX2dlbmVy
YWwsCiBid19kZWZfYXJyYXlfbGluZWFyX2FsaWduZWQsCiBid19kZWZfcm90YXRlZF9taWNyb190
aWxpbmcsCiBid19kZWZfZGlzcGxheV9taWNyb190aWxpbmcsCgoKIGJ3X2RlZl9nZGRyNSwKIGJ3
X2RlZl9oYm0sCgoKIGJ3X2RlZl9oaWdoX25vX25icF9zdGF0ZV9jaGFuZ2UsCiBid19kZWZfMF83
MiwKIGJ3X2RlZl8wXzgsCiBid19kZWZfMF85LAoKIGJ3X2RlZl9ub3RvayA9IC0xLAogYndfZGVm
X25hID0gLTEKfTsKCnN0cnVjdCBid19jYWxjc19kY2VpcCB7CiBlbnVtIGJ3X2NhbGNzX3ZlcnNp
b24gdmVyc2lvbjsKIHVpbnQzMl90IHBlcmNlbnRfb2ZfaWRlYWxfcG9ydF9id19yZWNlaXZlZF9h
ZnRlcl91cmdlbnRfbGF0ZW5jeTsKIHVpbnQzMl90IG1heF9hdmVyYWdlX3BlcmNlbnRfb2ZfaWRl
YWxfcG9ydF9id19kaXNwbGF5X2Nhbl91c2VfaW5fbm9ybWFsX3N5c3RlbV9vcGVyYXRpb247CiB1
aW50MzJfdCBtYXhfYXZlcmFnZV9wZXJjZW50X29mX2lkZWFsX2RyYW1id19kaXNwbGF5X2Nhbl91
c2VfaW5fbm9ybWFsX3N5c3RlbV9vcGVyYXRpb247CiBib29sIGxhcmdlX2N1cnNvcjsKIHVpbnQz
Ml90IGN1cnNvcl9tYXhfb3V0c3RhbmRpbmdfZ3JvdXBfbnVtOwogYm9vbCBkbWlmX3BpcGVfZW5f
ZmJjX2NodW5rX3RyYWNrZXI7CiBzdHJ1Y3QgYndfZml4ZWQgZG1pZl9yZXF1ZXN0X2J1ZmZlcl9z
aXplOwogdWludDMyX3QgbGluZXNfaW50ZXJsZWF2ZWRfaW50b19sYjsKIHVpbnQzMl90IGxvd19w
b3dlcl90aWxpbmdfbW9kZTsKIHVpbnQzMl90IGNodW5rX3dpZHRoOwogdWludDMyX3QgbnVtYmVy
X29mX2dyYXBoaWNzX3BpcGVzOwogdWludDMyX3QgbnVtYmVyX29mX3VuZGVybGF5X3BpcGVzOwog
Ym9vbCBkaXNwbGF5X3dyaXRlX2JhY2tfc3VwcG9ydGVkOwogYm9vbCBhcmdiX2NvbXByZXNzaW9u
X3N1cHBvcnQ7CiBzdHJ1Y3QgYndfZml4ZWQgdW5kZXJsYXlfdnNjYWxlcl9lZmZpY2llbmN5Nl9i
aXRfcGVyX2NvbXBvbmVudDsKIHN0cnVjdCBid19maXhlZCB1bmRlcmxheV92c2NhbGVyX2VmZmlj
aWVuY3k4X2JpdF9wZXJfY29tcG9uZW50Owogc3RydWN0IGJ3X2ZpeGVkIHVuZGVybGF5X3ZzY2Fs
ZXJfZWZmaWNpZW5jeTEwX2JpdF9wZXJfY29tcG9uZW50Owogc3RydWN0IGJ3X2ZpeGVkIHVuZGVy
bGF5X3ZzY2FsZXJfZWZmaWNpZW5jeTEyX2JpdF9wZXJfY29tcG9uZW50Owogc3RydWN0IGJ3X2Zp
eGVkIGdyYXBoaWNzX3ZzY2FsZXJfZWZmaWNpZW5jeTZfYml0X3Blcl9jb21wb25lbnQ7CiBzdHJ1
Y3QgYndfZml4ZWQgZ3JhcGhpY3NfdnNjYWxlcl9lZmZpY2llbmN5OF9iaXRfcGVyX2NvbXBvbmVu
dDsKIHN0cnVjdCBid19maXhlZCBncmFwaGljc192c2NhbGVyX2VmZmljaWVuY3kxMF9iaXRfcGVy
X2NvbXBvbmVudDsKIHN0cnVjdCBid19maXhlZCBncmFwaGljc192c2NhbGVyX2VmZmljaWVuY3kx
Ml9iaXRfcGVyX2NvbXBvbmVudDsKIHN0cnVjdCBid19maXhlZCBhbHBoYV92c2NhbGVyX2VmZmlj
aWVuY3k7CiB1aW50MzJfdCBtYXhfZG1pZl9idWZmZXJfYWxsb2NhdGVkOwogdWludDMyX3QgZ3Jh
cGhpY3NfZG1pZl9zaXplOwogdWludDMyX3QgdW5kZXJsYXlfbHVtYV9kbWlmX3NpemU7CiB1aW50
MzJfdCB1bmRlcmxheV9jaHJvbWFfZG1pZl9zaXplOwogYm9vbCBwcmVfZG93bnNjYWxlcl9lbmFi
bGVkOwogYm9vbCB1bmRlcmxheV9kb3duc2NhbGVfcHJlZmV0Y2hfZW5hYmxlZDsKIHN0cnVjdCBi
d19maXhlZCBsYl93cml0ZV9waXhlbHNfcGVyX2Rpc3BjbGs7CiBzdHJ1Y3QgYndfZml4ZWQgbGJf
c2l6ZV9wZXJfY29tcG9uZW50NDQ0OwogYm9vbCBncmFwaGljc19sYl9ub2Rvd25zY2FsaW5nX211
bHRpX2xpbmVfcHJlZmV0Y2hpbmc7CiBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9hbmRfZHJhbV9j
bG9ja19zdGF0ZV9jaGFuZ2VfZ2F0ZWRfYmVmb3JlX2N1cnNvcjsKIHN0cnVjdCBid19maXhlZCB1
bmRlcmxheTQyMF9sdW1hX2xiX3NpemVfcGVyX2NvbXBvbmVudDsKIHN0cnVjdCBid19maXhlZCB1
bmRlcmxheTQyMF9jaHJvbWFfbGJfc2l6ZV9wZXJfY29tcG9uZW50Owogc3RydWN0IGJ3X2ZpeGVk
IHVuZGVybGF5NDIyX2xiX3NpemVfcGVyX2NvbXBvbmVudDsKIHN0cnVjdCBid19maXhlZCBjdXJz
b3JfY2h1bmtfd2lkdGg7CiBzdHJ1Y3QgYndfZml4ZWQgY3Vyc29yX2RjcF9idWZmZXJfbGluZXM7
CiBzdHJ1Y3QgYndfZml4ZWQgdW5kZXJsYXlfbWF4aW11bV93aWR0aF9lZmZpY2llbnRfZm9yX3Rp
bGluZzsKIHN0cnVjdCBid19maXhlZCB1bmRlcmxheV9tYXhpbXVtX2hlaWdodF9lZmZpY2llbnRf
Zm9yX3RpbGluZzsKIHN0cnVjdCBid19maXhlZCBwZWFrX3B0ZV9yZXF1ZXN0X3RvX2V2aWN0aW9u
X3JhdGlvX2xpbWl0aW5nX211bHRpcGxlX2Rpc3BsYXlzX29yX3NpbmdsZV9yb3RhdGVkX2Rpc3Bs
YXk7CiBzdHJ1Y3QgYndfZml4ZWQgcGVha19wdGVfcmVxdWVzdF90b19ldmljdGlvbl9yYXRpb19s
aW1pdGluZ19zaW5nbGVfZGlzcGxheV9ub19yb3RhdGlvbjsKIHN0cnVjdCBid19maXhlZCBtaW5p
bXVtX291dHN0YW5kaW5nX3B0ZV9yZXF1ZXN0X2xpbWl0Owogc3RydWN0IGJ3X2ZpeGVkIG1heGlt
dW1fdG90YWxfb3V0c3RhbmRpbmdfcHRlX3JlcXVlc3RzX2FsbG93ZWRfYnlfc2F3OwogYm9vbCBs
aW1pdF9leGNlc3NpdmVfb3V0c3RhbmRpbmdfZG1pZl9yZXF1ZXN0czsKIHN0cnVjdCBid19maXhl
ZCBsaW5lYXJfbW9kZV9saW5lX3JlcXVlc3RfYWx0ZXJuYXRpb25fc2xpY2U7CiB1aW50MzJfdCBz
Y2F0dGVyX2dhdGhlcl9saW5lc19vZl9wdGVfcHJlZmV0Y2hpbmdfaW5fbGluZWFyX21vZGU7CiB1
aW50MzJfdCBkaXNwbGF5X3dyaXRlX2JhY2s0MjBfbHVtYV9tY2lmd3JfYnVmZmVyX3NpemU7CiB1
aW50MzJfdCBkaXNwbGF5X3dyaXRlX2JhY2s0MjBfY2hyb21hX21jaWZ3cl9idWZmZXJfc2l6ZTsK
IHN0cnVjdCBid19maXhlZCByZXF1ZXN0X2VmZmljaWVuY3k7CiBzdHJ1Y3QgYndfZml4ZWQgZGlz
cGNsa19wZXJfcmVxdWVzdDsKIHN0cnVjdCBid19maXhlZCBkaXNwY2xrX3JhbXBpbmdfZmFjdG9y
Owogc3RydWN0IGJ3X2ZpeGVkIGRpc3BsYXlfcGlwZV90aHJvdWdocHV0X2ZhY3RvcjsKIHVpbnQz
Ml90IHNjYXR0ZXJfZ2F0aGVyX3B0ZV9yZXF1ZXN0X3Jvd3NfaW5fdGlsaW5nX21vZGU7CiBzdHJ1
Y3QgYndfZml4ZWQgbWNpZndyX2FsbF9zdXJmYWNlc19idXJzdF90aW1lOwp9OwoKc3RydWN0IGJ3
X2NhbGNzX3ZiaW9zIHsKIGVudW0gYndfZGVmaW5lcyBtZW1vcnlfdHlwZTsKIHVpbnQzMl90IGRy
YW1fY2hhbm5lbF93aWR0aF9pbl9iaXRzOwogdWludDMyX3QgbnVtYmVyX29mX2RyYW1fY2hhbm5l
bHM7CiB1aW50MzJfdCBudW1iZXJfb2ZfZHJhbV9iYW5rczsKIHN0cnVjdCBid19maXhlZCBsb3df
eWNsazsKIHN0cnVjdCBid19maXhlZCBtaWRfeWNsazsKIHN0cnVjdCBid19maXhlZCBoaWdoX3lj
bGs7CiBzdHJ1Y3QgYndfZml4ZWQgbG93X3NjbGs7CiBzdHJ1Y3QgYndfZml4ZWQgbWlkMV9zY2xr
Owogc3RydWN0IGJ3X2ZpeGVkIG1pZDJfc2NsazsKIHN0cnVjdCBid19maXhlZCBtaWQzX3NjbGs7
CiBzdHJ1Y3QgYndfZml4ZWQgbWlkNF9zY2xrOwogc3RydWN0IGJ3X2ZpeGVkIG1pZDVfc2NsazsK
IHN0cnVjdCBid19maXhlZCBtaWQ2X3NjbGs7CiBzdHJ1Y3QgYndfZml4ZWQgaGlnaF9zY2xrOwog
c3RydWN0IGJ3X2ZpeGVkIGxvd192b2x0YWdlX21heF9kaXNwY2xrOwogc3RydWN0IGJ3X2ZpeGVk
IG1pZF92b2x0YWdlX21heF9kaXNwY2xrOwogc3RydWN0IGJ3X2ZpeGVkIGhpZ2hfdm9sdGFnZV9t
YXhfZGlzcGNsazsKIHN0cnVjdCBid19maXhlZCBsb3dfdm9sdGFnZV9tYXhfcGh5Y2xrOwogc3Ry
dWN0IGJ3X2ZpeGVkIG1pZF92b2x0YWdlX21heF9waHljbGs7CiBzdHJ1Y3QgYndfZml4ZWQgaGln
aF92b2x0YWdlX21heF9waHljbGs7CiBzdHJ1Y3QgYndfZml4ZWQgZGF0YV9yZXR1cm5fYnVzX3dp
ZHRoOwogc3RydWN0IGJ3X2ZpeGVkIHRyYzsKIHN0cnVjdCBid19maXhlZCBkbWlmbWNfdXJnZW50
X2xhdGVuY3k7CiBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9zZWxmX3JlZnJlc2hfZXhpdF9sYXRl
bmN5Owogc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfc2VsZl9yZWZyZXNoX2VudHJ5X2xhdGVuY3k7
CiBzdHJ1Y3QgYndfZml4ZWQgbmJwX3N0YXRlX2NoYW5nZV9sYXRlbmN5Owogc3RydWN0IGJ3X2Zp
eGVkIG1jaWZ3cm1jX3VyZ2VudF9sYXRlbmN5OwogYm9vbCBzY2F0dGVyX2dhdGhlcl9lbmFibGU7
CiBzdHJ1Y3QgYndfZml4ZWQgZG93bl9zcHJlYWRfcGVyY2VudGFnZTsKIHVpbnQzMl90IGN1cnNv
cl93aWR0aDsKIHVpbnQzMl90IGF2ZXJhZ2VfY29tcHJlc3Npb25fcmF0ZTsKIHVpbnQzMl90IG51
bWJlcl9vZl9yZXF1ZXN0X3Nsb3RzX2dtY19yZXNlcnZlc19mb3JfZG1pZl9wZXJfY2hhbm5lbDsK
IHN0cnVjdCBid19maXhlZCBibGFja291dF9kdXJhdGlvbjsKIHN0cnVjdCBid19maXhlZCBtYXhp
bXVtX2JsYWNrb3V0X3JlY292ZXJ5X3RpbWU7Cn07CgoKCgoKCgpzdHJ1Y3QgYndfY2FsY3NfZGF0
YSB7CgogYm9vbCBkaXNwbGF5X3N5bmNocm9uaXphdGlvbl9lbmFibGVkOwogdWludDMyX3QgbnVt
YmVyX29mX2Rpc3BsYXlzOwogZW51bSBid19kZWZpbmVzIHVuZGVybGF5X3N1cmZhY2VfdHlwZTsK
IGVudW0gYndfZGVmaW5lcyBwYW5uaW5nX2FuZF9iZXplbF9hZGp1c3RtZW50OwogZW51bSBid19k
ZWZpbmVzIGdyYXBoaWNzX3RpbGluZ19tb2RlOwogdWludDMyX3QgZ3JhcGhpY3NfbGJfYnBjOwog
dWludDMyX3QgdW5kZXJsYXlfbGJfYnBjOwogZW51bSBid19kZWZpbmVzIHVuZGVybGF5X3RpbGlu
Z19tb2RlOwogZW51bSBid19kZWZpbmVzIGQwX3VuZGVybGF5X21vZGU7CiBib29sIGQxX2Rpc3Bs
YXlfd3JpdGVfYmFja19kd2JfZW5hYmxlOwogZW51bSBid19kZWZpbmVzIGQxX3VuZGVybGF5X21v
ZGU7CgogYm9vbCBpbmNyZWFzZV92b2x0YWdlX3RvX3N1cHBvcnRfbWNsa19zd2l0Y2g7CiBib29s
IGNwdXBfc3RhdGVfY2hhbmdlX2VuYWJsZTsKIGJvb2wgY3B1Y19zdGF0ZV9jaGFuZ2VfZW5hYmxl
OwogYm9vbCBuYnBfc3RhdGVfY2hhbmdlX2VuYWJsZTsKIGJvb2wgc3R1dHRlcl9tb2RlX2VuYWJs
ZTsKIHVpbnQzMl90IHlfY2xrX2xldmVsOwogdWludDMyX3Qgc2Nsa19sZXZlbDsKIHVpbnQzMl90
IG51bWJlcl9vZl91bmRlcmxheV9zdXJmYWNlczsKIHVpbnQzMl90IG51bWJlcl9vZl9kcmFtX3dy
Y2hhbm5lbHM7CiB1aW50MzJfdCBjaHVua19yZXF1ZXN0X2RlbGF5OwogdWludDMyX3QgbnVtYmVy
X29mX2RyYW1fY2hhbm5lbHM7CiBlbnVtIGJ3X2RlZmluZXMgdW5kZXJsYXlfbWljcm9fdGlsZV9t
b2RlOwogZW51bSBid19kZWZpbmVzIGdyYXBoaWNzX21pY3JvX3RpbGVfbW9kZTsKIHN0cnVjdCBi
d19maXhlZCBtYXhfcGh5Y2xrOwogc3RydWN0IGJ3X2ZpeGVkIGRyYW1fZWZmaWNpZW5jeTsKIHN0
cnVjdCBid19maXhlZCBzcmNfd2lkdGhfYWZ0ZXJfc3VyZmFjZV90eXBlOwogc3RydWN0IGJ3X2Zp
eGVkIHNyY19oZWlnaHRfYWZ0ZXJfc3VyZmFjZV90eXBlOwogc3RydWN0IGJ3X2ZpeGVkIGhzcl9h
ZnRlcl9zdXJmYWNlX3R5cGU7CiBzdHJ1Y3QgYndfZml4ZWQgdnNyX2FmdGVyX3N1cmZhY2VfdHlw
ZTsKIHN0cnVjdCBid19maXhlZCBzcmNfd2lkdGhfYWZ0ZXJfcm90YXRpb247CiBzdHJ1Y3QgYndf
Zml4ZWQgc3JjX2hlaWdodF9hZnRlcl9yb3RhdGlvbjsKIHN0cnVjdCBid19maXhlZCBoc3JfYWZ0
ZXJfcm90YXRpb247CiBzdHJ1Y3QgYndfZml4ZWQgdnNyX2FmdGVyX3JvdGF0aW9uOwogc3RydWN0
IGJ3X2ZpeGVkIHNvdXJjZV9oZWlnaHRfcGl4ZWxzOwogc3RydWN0IGJ3X2ZpeGVkIGhzcl9hZnRl
cl9zdGVyZW87CiBzdHJ1Y3QgYndfZml4ZWQgdnNyX2FmdGVyX3N0ZXJlbzsKIHN0cnVjdCBid19m
aXhlZCBzb3VyY2Vfd2lkdGhfaW5fbGI7CiBzdHJ1Y3QgYndfZml4ZWQgbGJfbGluZV9waXRjaDsK
IHN0cnVjdCBid19maXhlZCB1bmRlcmxheV9tYXhpbXVtX3NvdXJjZV9lZmZpY2llbnRfZm9yX3Rp
bGluZzsKIHN0cnVjdCBid19maXhlZCBudW1fbGluZXNfYXRfZnJhbWVfc3RhcnQ7CiBzdHJ1Y3Qg
YndfZml4ZWQgbWluX2RtaWZfc2l6ZV9pbl90aW1lOwogc3RydWN0IGJ3X2ZpeGVkIG1pbl9tY2lm
d3Jfc2l6ZV9pbl90aW1lOwogc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX3JlcXVlc3RzX2Zvcl9kbWlm
X3NpemU7CiBzdHJ1Y3QgYndfZml4ZWQgcGVha19wdGVfcmVxdWVzdF90b19ldmljdGlvbl9yYXRp
b19saW1pdGluZzsKIHN0cnVjdCBid19maXhlZCB1c2VmdWxfcHRlX3Blcl9wdGVfcmVxdWVzdDsK
IHN0cnVjdCBid19maXhlZCBzY2F0dGVyX2dhdGhlcl9wdGVfcmVxdWVzdF9yb3dzOwogc3RydWN0
IGJ3X2ZpeGVkIHNjYXR0ZXJfZ2F0aGVyX3Jvd19oZWlnaHQ7CiBzdHJ1Y3QgYndfZml4ZWQgc2Nh
dHRlcl9nYXRoZXJfcHRlX3JlcXVlc3RzX2luX3ZibGFuazsKIHN0cnVjdCBid19maXhlZCBpbmVm
ZmljaWVudF9saW5lYXJfcGl0Y2hfaW5fYnl0ZXM7CiBzdHJ1Y3QgYndfZml4ZWQgY3Vyc29yX3Rv
dGFsX2RhdGE7CiBzdHJ1Y3QgYndfZml4ZWQgY3Vyc29yX3RvdGFsX3JlcXVlc3RfZ3JvdXBzOwog
c3RydWN0IGJ3X2ZpeGVkIHNjYXR0ZXJfZ2F0aGVyX3RvdGFsX3B0ZV9yZXF1ZXN0czsKIHN0cnVj
dCBid19maXhlZCBzY2F0dGVyX2dhdGhlcl90b3RhbF9wdGVfcmVxdWVzdF9ncm91cHM7CiBzdHJ1
Y3QgYndfZml4ZWQgdGlsZV93aWR0aF9pbl9waXhlbHM7CiBzdHJ1Y3QgYndfZml4ZWQgZG1pZl90
b3RhbF9udW1iZXJfb2ZfZGF0YV9yZXF1ZXN0X3BhZ2VfY2xvc2Vfb3BlbjsKIHN0cnVjdCBid19m
aXhlZCBtY2lmd3JfdG90YWxfbnVtYmVyX29mX2RhdGFfcmVxdWVzdF9wYWdlX2Nsb3NlX29wZW47
CiBzdHJ1Y3QgYndfZml4ZWQgYnl0ZXNfcGVyX3BhZ2VfY2xvc2Vfb3BlbjsKIHN0cnVjdCBid19m
aXhlZCBtY2lmd3JfdG90YWxfcGFnZV9jbG9zZV9vcGVuX3RpbWU7CiBzdHJ1Y3QgYndfZml4ZWQg
dG90YWxfcmVxdWVzdHNfZm9yX2FkanVzdGVkX2RtaWZfc2l6ZTsKIHN0cnVjdCBid19maXhlZCB0
b3RhbF9kbWlmbWNfdXJnZW50X3RyaXBzOwogc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2RtaWZtY191
cmdlbnRfbGF0ZW5jeTsKIHN0cnVjdCBid19maXhlZCB0b3RhbF9kaXNwbGF5X3JlYWRzX3JlcXVp
cmVkX2RhdGE7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfZGlzcGxheV9yZWFkc19yZXF1aXJlZF9k
cmFtX2FjY2Vzc19kYXRhOwogc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2Rpc3BsYXlfd3JpdGVzX3Jl
cXVpcmVkX2RhdGE7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfZGlzcGxheV93cml0ZXNfcmVxdWly
ZWRfZHJhbV9hY2Nlc3NfZGF0YTsKIHN0cnVjdCBid19maXhlZCBkaXNwbGF5X3JlYWRzX3JlcXVp
cmVkX2RhdGE7CiBzdHJ1Y3QgYndfZml4ZWQgZGlzcGxheV9yZWFkc19yZXF1aXJlZF9kcmFtX2Fj
Y2Vzc19kYXRhOwogc3RydWN0IGJ3X2ZpeGVkIGRtaWZfdG90YWxfcGFnZV9jbG9zZV9vcGVuX3Rp
bWU7CiBzdHJ1Y3QgYndfZml4ZWQgbWluX2N1cnNvcl9tZW1vcnlfaW50ZXJmYWNlX2J1ZmZlcl9z
aXplX2luX3RpbWU7CiBzdHJ1Y3QgYndfZml4ZWQgbWluX3JlYWRfYnVmZmVyX3NpemVfaW5fdGlt
ZTsKIHN0cnVjdCBid19maXhlZCBkaXNwbGF5X3JlYWRzX3RpbWVfZm9yX2RhdGFfdHJhbnNmZXI7
CiBzdHJ1Y3QgYndfZml4ZWQgZGlzcGxheV93cml0ZXNfdGltZV9mb3JfZGF0YV90cmFuc2ZlcjsK
IHN0cnVjdCBid19maXhlZCBkbWlmX3JlcXVpcmVkX2RyYW1fYmFuZHdpZHRoOwogc3RydWN0IGJ3
X2ZpeGVkIG1jaWZ3cl9yZXF1aXJlZF9kcmFtX2JhbmR3aWR0aDsKIHN0cnVjdCBid19maXhlZCBy
ZXF1aXJlZF9kbWlmbWNfdXJnZW50X2xhdGVuY3lfZm9yX3BhZ2VfY2xvc2Vfb3BlbjsKIHN0cnVj
dCBid19maXhlZCByZXF1aXJlZF9tY2lmbWN3cl91cmdlbnRfbGF0ZW5jeTsKIHN0cnVjdCBid19m
aXhlZCByZXF1aXJlZF9kcmFtX2JhbmR3aWR0aF9nYnl0ZV9wZXJfc2Vjb25kOwogc3RydWN0IGJ3
X2ZpeGVkIGRyYW1fYmFuZHdpZHRoOwogc3RydWN0IGJ3X2ZpeGVkIGRtaWZfcmVxdWlyZWRfc2Ns
azsKIHN0cnVjdCBid19maXhlZCBtY2lmd3JfcmVxdWlyZWRfc2NsazsKIHN0cnVjdCBid19maXhl
ZCByZXF1aXJlZF9zY2xrOwogc3RydWN0IGJ3X2ZpeGVkIGRvd25zcHJlYWRfZmFjdG9yOwogc3Ry
dWN0IGJ3X2ZpeGVkIHZfc2NhbGVyX2VmZmljaWVuY3k7CiBzdHJ1Y3QgYndfZml4ZWQgc2NhbGVy
X2xpbWl0c19mYWN0b3I7CiBzdHJ1Y3QgYndfZml4ZWQgZGlzcGxheV9waXBlX3BpeGVsX3Rocm91
Z2hwdXQ7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfZGlzcGNsa19yZXF1aXJlZF93aXRoX3JhbXBp
bmc7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfZGlzcGNsa19yZXF1aXJlZF93aXRob3V0X3JhbXBp
bmc7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfcmVhZF9yZXF1ZXN0X2JhbmR3aWR0aDsKIHN0cnVj
dCBid19maXhlZCB0b3RhbF93cml0ZV9yZXF1ZXN0X2JhbmR3aWR0aDsKIHN0cnVjdCBid19maXhl
ZCBkaXNwY2xrX3JlcXVpcmVkX2Zvcl90b3RhbF9yZWFkX3JlcXVlc3RfYmFuZHdpZHRoOwogc3Ry
dWN0IGJ3X2ZpeGVkIHRvdGFsX2Rpc3BjbGtfcmVxdWlyZWRfd2l0aF9yYW1waW5nX3dpdGhfcmVx
dWVzdF9iYW5kd2lkdGg7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfZGlzcGNsa19yZXF1aXJlZF93
aXRob3V0X3JhbXBpbmdfd2l0aF9yZXF1ZXN0X2JhbmR3aWR0aDsKIHN0cnVjdCBid19maXhlZCBk
aXNwY2xrOwogc3RydWN0IGJ3X2ZpeGVkIGJsYWNrb3V0X3JlY292ZXJ5X3RpbWU7CiBzdHJ1Y3Qg
YndfZml4ZWQgbWluX3BpeGVsc19wZXJfZGF0YV9maWZvX2VudHJ5Owogc3RydWN0IGJ3X2ZpeGVk
IHNjbGtfZGVlcF9zbGVlcDsKIHN0cnVjdCBid19maXhlZCBjaHVua19yZXF1ZXN0X3RpbWU7CiBz
dHJ1Y3QgYndfZml4ZWQgY3Vyc29yX3JlcXVlc3RfdGltZTsKIHN0cnVjdCBid19maXhlZCBsaW5l
X3NvdXJjZV9waXhlbHNfdHJhbnNmZXJfdGltZTsKIHN0cnVjdCBid19maXhlZCBkbWlmZHJhbV9h
Y2Nlc3NfZWZmaWNpZW5jeTsKIHN0cnVjdCBid19maXhlZCBtY2lmd3JkcmFtX2FjY2Vzc19lZmZp
Y2llbmN5Owogc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2F2ZXJhZ2VfYmFuZHdpZHRoX25vX2NvbXBy
ZXNzaW9uOwogc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2F2ZXJhZ2VfYmFuZHdpZHRoOwogc3RydWN0
IGJ3X2ZpeGVkIHRvdGFsX3N0dXR0ZXJfY3ljbGVfZHVyYXRpb247CiBzdHJ1Y3QgYndfZml4ZWQg
c3R1dHRlcl9idXJzdF90aW1lOwogc3RydWN0IGJ3X2ZpeGVkIHRpbWVfaW5fc2VsZl9yZWZyZXNo
Owogc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfZWZmaWNpZW5jeTsKIHN0cnVjdCBid19maXhlZCB3
b3JzdF9udW1iZXJfb2ZfdHJpcHNfdG9fbWVtb3J5Owogc3RydWN0IGJ3X2ZpeGVkIGltbWVkaWF0
ZV9mbGlwX3RpbWU7CiBzdHJ1Y3QgYndfZml4ZWQgbGF0ZW5jeV9mb3Jfbm9uX2RtaWZfY2xpZW50
czsKIHN0cnVjdCBid19maXhlZCBsYXRlbmN5X2Zvcl9ub25fbWNpZndyX2NsaWVudHM7CiBzdHJ1
Y3QgYndfZml4ZWQgZG1pZm1jX3VyZ2VudF9sYXRlbmN5X3N1cHBvcnRlZF9pbl9oaWdoX3NjbGtf
YW5kX3ljbGs7CiBzdHJ1Y3QgYndfZml4ZWQgbmJwX3N0YXRlX2RyYW1fc3BlZWRfY2hhbmdlX21h
cmdpbjsKIHN0cnVjdCBid19maXhlZCBkaXNwbGF5X3JlYWRzX3RpbWVfZm9yX2RhdGFfdHJhbnNm
ZXJfYW5kX3VyZ2VudF9sYXRlbmN5Owogc3RydWN0IGJ3X2ZpeGVkIGRyYW1fc3BlZWRfY2hhbmdl
X21hcmdpbjsKIHN0cnVjdCBid19maXhlZCBtaW5fdmJsYW5rX2RyYW1fc3BlZWRfY2hhbmdlX21h
cmdpbjsKIHN0cnVjdCBid19maXhlZCBtaW5fc3R1dHRlcl9yZWZyZXNoX2R1cmF0aW9uOwogdWlu
dDMyX3QgdG90YWxfc3R1dHRlcl9kbWlmX2J1ZmZlcl9zaXplOwogdWludDMyX3QgdG90YWxfYnl0
ZXNfcmVxdWVzdGVkOwogdWludDMyX3QgbWluX3N0dXR0ZXJfZG1pZl9idWZmZXJfc2l6ZTsKIHVp
bnQzMl90IG51bV9zdHV0dGVyX2J1cnN0czsKIHN0cnVjdCBid19maXhlZCB2X2JsYW5rX25icF9z
dGF0ZV9kcmFtX3NwZWVkX2NoYW5nZV9sYXRlbmN5X3N1cHBvcnRlZDsKIHN0cnVjdCBid19maXhl
ZCBuYnBfc3RhdGVfZHJhbV9zcGVlZF9jaGFuZ2VfbGF0ZW5jeV9zdXBwb3J0ZWQ7CiBib29sIGZi
Y19lblsxMl07CiBib29sIGxwdF9lblsxMl07CiBib29sIGRpc3BsYXlzX21hdGNoX2ZsYWdbMTJd
OwogYm9vbCB1c2VfYWxwaGFbMTJdOwogYm9vbCBvcnRob2dvbmFsX3JvdGF0aW9uWzEyXTsKIGJv
b2wgZW5hYmxlWzEyXTsKIGJvb2wgYWNjZXNzX29uZV9jaGFubmVsX29ubHlbMTJdOwogYm9vbCBz
Y2F0dGVyX2dhdGhlcl9lbmFibGVfZm9yX3BpcGVbMTJdOwogYm9vbCBpbnRlcmxhY2VfbW9kZVsx
Ml07CiBib29sIGRpc3BsYXlfcHN0YXRlX2NoYW5nZV9lbmFibGVbMTJdOwogYm9vbCBsaW5lX2J1
ZmZlcl9wcmVmZXRjaFsxMl07CiB1aW50MzJfdCBieXRlc19wZXJfcGl4ZWxbMTJdOwogdWludDMy
X3QgbWF4X2NodW5rc19ub25fZmJjX21vZGVbMTJdOwogdWludDMyX3QgbGJfYnBjWzEyXTsKIHVp
bnQzMl90IG91dHB1dF9icHBoZG1pWzEyXTsKIHVpbnQzMl90IG91dHB1dF9icHBkcDRfbGFuZV9o
YnJbMTJdOwogdWludDMyX3Qgb3V0cHV0X2JwcGRwNF9sYW5lX2hicjJbMTJdOwogdWludDMyX3Qg
b3V0cHV0X2JwcGRwNF9sYW5lX2hicjNbMTJdOwogZW51bSBid19kZWZpbmVzIHN0ZXJlb19tb2Rl
WzEyXTsKIHN0cnVjdCBid19maXhlZCBkbWlmX2J1ZmZlcl90cmFuc2Zlcl90aW1lWzEyXTsKIHN0
cnVjdCBid19maXhlZCBkaXNwbGF5c193aXRoX3NhbWVfbW9kZVsxMl07CiBzdHJ1Y3QgYndfZml4
ZWQgc3R1dHRlcl9kbWlmX2J1ZmZlcl9zaXplWzEyXTsKIHN0cnVjdCBid19maXhlZCBzdHV0dGVy
X3JlZnJlc2hfZHVyYXRpb25bMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfZXhpdF93YXRl
cm1hcmtbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfZW50cnlfd2F0ZXJtYXJrWzEyXTsK
IHN0cnVjdCBid19maXhlZCBoX3RvdGFsWzEyXTsKIHN0cnVjdCBid19maXhlZCB2X3RvdGFsWzEy
XTsKIHN0cnVjdCBid19maXhlZCBwaXhlbF9yYXRlWzEyXTsKIHN0cnVjdCBid19maXhlZCBzcmNf
d2lkdGhbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHBpdGNoX2luX3BpeGVsc1sxMl07CiBzdHJ1Y3Qg
YndfZml4ZWQgcGl0Y2hfaW5fcGl4ZWxzX2FmdGVyX3N1cmZhY2VfdHlwZVsxMl07CiBzdHJ1Y3Qg
YndfZml4ZWQgc3JjX2hlaWdodFsxMl07CiBzdHJ1Y3QgYndfZml4ZWQgc2NhbGVfcmF0aW9bMTJd
Owogc3RydWN0IGJ3X2ZpeGVkIGhfdGFwc1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgdl90YXBzWzEy
XTsKIHN0cnVjdCBid19maXhlZCBoX3NjYWxlX3JhdGlvWzEyXTsKIHN0cnVjdCBid19maXhlZCB2
X3NjYWxlX3JhdGlvWzEyXTsKIHN0cnVjdCBid19maXhlZCByb3RhdGlvbl9hbmdsZVsxMl07CiBz
dHJ1Y3QgYndfZml4ZWQgY29tcHJlc3Npb25fcmF0ZVsxMl07CiBzdHJ1Y3QgYndfZml4ZWQgaHNy
WzEyXTsKIHN0cnVjdCBid19maXhlZCB2c3JbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHNvdXJjZV93
aWR0aF9yb3VuZGVkX3VwX3RvX2NodW5rc1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgc291cmNlX3dp
ZHRoX3BpeGVsc1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgc291cmNlX2hlaWdodF9yb3VuZGVkX3Vw
X3RvX2NodW5rc1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgZGlzcGxheV9iYW5kd2lkdGhbMTJdOwog
c3RydWN0IGJ3X2ZpeGVkIHJlcXVlc3RfYmFuZHdpZHRoWzEyXTsKIHN0cnVjdCBid19maXhlZCBi
eXRlc19wZXJfcmVxdWVzdFsxMl07CiBzdHJ1Y3QgYndfZml4ZWQgdXNlZnVsX2J5dGVzX3Blcl9y
ZXF1ZXN0WzEyXTsKIHN0cnVjdCBid19maXhlZCBsaW5lc19pbnRlcmxlYXZlZF9pbl9tZW1fYWNj
ZXNzWzEyXTsKIHN0cnVjdCBid19maXhlZCBsYXRlbmN5X2hpZGluZ19saW5lc1sxMl07CiBzdHJ1
Y3QgYndfZml4ZWQgbGJfcGFydGl0aW9uc1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgbGJfcGFydGl0
aW9uc19tYXhbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIGRpc3BjbGtfcmVxdWlyZWRfd2l0aF9yYW1w
aW5nWzEyXTsKIHN0cnVjdCBid19maXhlZCBkaXNwY2xrX3JlcXVpcmVkX3dpdGhvdXRfcmFtcGlu
Z1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgZGF0YV9idWZmZXJfc2l6ZVsxMl07CiBzdHJ1Y3QgYndf
Zml4ZWQgb3V0c3RhbmRpbmdfY2h1bmtfcmVxdWVzdF9saW1pdFsxMl07CiBzdHJ1Y3QgYndfZml4
ZWQgdXJnZW50X3dhdGVybWFya1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgbmJwX3N0YXRlX2NoYW5n
ZV93YXRlcm1hcmtbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHZfZmlsdGVyX2luaXRbMTJdOwogc3Ry
dWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfY3ljbGVfZHVyYXRpb25bMTJdOwogc3RydWN0IGJ3X2ZpeGVk
IGF2ZXJhZ2VfYmFuZHdpZHRoWzEyXTsKIHN0cnVjdCBid19maXhlZCBhdmVyYWdlX2JhbmR3aWR0
aF9ub19jb21wcmVzc2lvblsxMl07CiBzdHJ1Y3QgYndfZml4ZWQgc2NhdHRlcl9nYXRoZXJfcHRl
X3JlcXVlc3RfbGltaXRbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIGxiX3NpemVfcGVyX2NvbXBvbmVu
dFsxMl07CiBzdHJ1Y3QgYndfZml4ZWQgbWVtb3J5X2NodW5rX3NpemVfaW5fYnl0ZXNbMTJdOwog
c3RydWN0IGJ3X2ZpeGVkIHBpcGVfY2h1bmtfc2l6ZV9pbl9ieXRlc1sxMl07CiBzdHJ1Y3QgYndf
Zml4ZWQgbnVtYmVyX29mX3RyaXBzX3RvX21lbW9yeV9mb3JfZ2V0dGluZ19hcHRlX3Jvd1sxMl07
CiBzdHJ1Y3QgYndfZml4ZWQgYWRqdXN0ZWRfZGF0YV9idWZmZXJfc2l6ZVsxMl07CiBzdHJ1Y3Qg
YndfZml4ZWQgYWRqdXN0ZWRfZGF0YV9idWZmZXJfc2l6ZV9pbl9tZW1vcnlbMTJdOwogc3RydWN0
IGJ3X2ZpeGVkIHBpeGVsc19wZXJfZGF0YV9maWZvX2VudHJ5WzEyXTsKIHN0cnVjdCBid19maXhl
ZCBzY2F0dGVyX2dhdGhlcl9wdGVfcmVxdWVzdHNfaW5fcm93WzEyXTsKIHN0cnVjdCBid19maXhl
ZCBwdGVfcmVxdWVzdF9wZXJfY2h1bmtbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHNjYXR0ZXJfZ2F0
aGVyX3BhZ2Vfd2lkdGhbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHNjYXR0ZXJfZ2F0aGVyX3BhZ2Vf
aGVpZ2h0WzEyXTsKIHN0cnVjdCBid19maXhlZCBsYl9saW5lc19pbl9wZXJfbGluZV9vdXRfaW5f
YmVnaW5uaW5nX29mX2ZyYW1lWzEyXTsKIHN0cnVjdCBid19maXhlZCBsYl9saW5lc19pbl9wZXJf
bGluZV9vdXRfaW5fbWlkZGxlX29mX2ZyYW1lWzEyXTsKIHN0cnVjdCBid19maXhlZCBjdXJzb3Jf
d2lkdGhfcGl4ZWxzWzEyXTsKIHN0cnVjdCBid19maXhlZCBtaW5pbXVtX2xhdGVuY3lfaGlkaW5n
WzEyXTsKIHN0cnVjdCBid19maXhlZCBtYXhpbXVtX2xhdGVuY3lfaGlkaW5nWzEyXTsKIHN0cnVj
dCBid19maXhlZCBtaW5pbXVtX2xhdGVuY3lfaGlkaW5nX3dpdGhfY3Vyc29yWzEyXTsKIHN0cnVj
dCBid19maXhlZCBtYXhpbXVtX2xhdGVuY3lfaGlkaW5nX3dpdGhfY3Vyc29yWzEyXTsKIHN0cnVj
dCBid19maXhlZCBzcmNfcGl4ZWxzX2Zvcl9maXJzdF9vdXRwdXRfcGl4ZWxbMTJdOwogc3RydWN0
IGJ3X2ZpeGVkIHNyY19waXhlbHNfZm9yX2xhc3Rfb3V0cHV0X3BpeGVsWzEyXTsKIHN0cnVjdCBi
d19maXhlZCBzcmNfZGF0YV9mb3JfZmlyc3Rfb3V0cHV0X3BpeGVsWzEyXTsKIHN0cnVjdCBid19m
aXhlZCBzcmNfZGF0YV9mb3JfbGFzdF9vdXRwdXRfcGl4ZWxbMTJdOwogc3RydWN0IGJ3X2ZpeGVk
IGFjdGl2ZV90aW1lWzEyXTsKIHN0cnVjdCBid19maXhlZCBob3Jpem9udGFsX2JsYW5rX2FuZF9j
aHVua19ncmFudWxhcml0eV9mYWN0b3JbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIGN1cnNvcl9sYXRl
bmN5X2hpZGluZ1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgdl9ibGFua19kcmFtX3NwZWVkX2NoYW5n
ZV9tYXJnaW5bMTJdOwogdWludDMyX3QgbnVtX2Rpc3BsYXlzX3dpdGhfbWFyZ2luWzNdWzhdOwog
c3RydWN0IGJ3X2ZpeGVkIGRtaWZfYnVyc3RfdGltZVszXVs4XTsKIHN0cnVjdCBid19maXhlZCBt
Y2lmd3JfYnVyc3RfdGltZVszXVs4XTsKIHN0cnVjdCBid19maXhlZCBsaW5lX3NvdXJjZV90cmFu
c2Zlcl90aW1lWzEyXVszXVs4XTsKIHN0cnVjdCBid19maXhlZCBkcmFtX3NwZWVkX2NoYW5nZV9s
aW5lX3NvdXJjZV90cmFuc2Zlcl90aW1lWzEyXVszXVs4XTsKIHN0cnVjdCBid19maXhlZCBtaW5f
ZHJhbV9zcGVlZF9jaGFuZ2VfbWFyZ2luWzNdWzhdOwogc3RydWN0IGJ3X2ZpeGVkIGRpc3BjbGtf
cmVxdWlyZWRfZm9yX2RyYW1fc3BlZWRfY2hhbmdlWzNdWzhdOwogc3RydWN0IGJ3X2ZpeGVkIGRp
c3BjbGtfcmVxdWlyZWRfZm9yX2RyYW1fc3BlZWRfY2hhbmdlX3BpcGVbM11bOF07CiBzdHJ1Y3Qg
YndfZml4ZWQgYmxhY2tvdXRfZHVyYXRpb25fbWFyZ2luWzNdWzhdOwogc3RydWN0IGJ3X2ZpeGVk
IGRpc3BjbGtfcmVxdWlyZWRfZm9yX2JsYWNrb3V0X2R1cmF0aW9uWzNdWzhdOwogc3RydWN0IGJ3
X2ZpeGVkIGRpc3BjbGtfcmVxdWlyZWRfZm9yX2JsYWNrb3V0X3JlY292ZXJ5WzNdWzhdOwogc3Ry
dWN0IGJ3X2ZpeGVkIGRtaWZfcmVxdWlyZWRfc2Nsa19mb3JfdXJnZW50X2xhdGVuY3lbNl07Cn07
CgoKCgp2b2lkIGJ3X2NhbGNzX2luaXQoCiBzdHJ1Y3QgYndfY2FsY3NfZGNlaXAgKmJ3X2RjZWlw
LAogc3RydWN0IGJ3X2NhbGNzX3ZiaW9zICpid192YmlvcywKIHN0cnVjdCBod19hc2ljX2lkIGFz
aWNfaWQpOwoKCgoKCgoKYm9vbCBid19jYWxjcygKIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiBj
b25zdCBzdHJ1Y3QgYndfY2FsY3NfZGNlaXAgKmRjZWlwLAogY29uc3Qgc3RydWN0IGJ3X2NhbGNz
X3ZiaW9zICp2YmlvcywKIGNvbnN0IHN0cnVjdCBwaXBlX2N0eCAqcGlwZSwKIGludCBwaXBlX2Nv
dW50LAogc3RydWN0IGRjZV9id19vdXRwdXQgKmNhbGNzX291dHB1dCk7CiMgMzEgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCiMg
MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9kY25fY2Fs
Y3MuaCIgMQojIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
aW5jL2Rjbl9jYWxjcy5oIgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvLi4vZG1sL2Rpc3BsYXlfbW9kZV9saWIuaCIgMQojIDM1ICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2Rjbl9jYWxjcy5oIiAyCgoKc3Ry
dWN0IGRjOwpzdHJ1Y3QgZGNfc3RhdGU7CiMgNTEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9pbmMvZGNuX2NhbGNzLmgiCmVudW0gZGNuX2J3X2RlZnMgewogZGNu
X2J3X3ZfbWluMHA2NSwKIGRjbl9id192X21pZDBwNzIsCiBkY25fYndfdl9ub20wcDgsCiBkY25f
Yndfdl9tYXgwcDksCiBkY25fYndfdl9tYXgwcDkxLAogZGNuX2J3X25vX3N1cHBvcnQgPSA1LAog
ZGNuX2J3X3llcywKIGRjbl9id19ob3IsCiBkY25fYndfdmVydCwKIGRjbl9id19vdmVycmlkZSwK
IGRjbl9id19yZ2Jfc3ViXzY0LAogZGNuX2J3X3JnYl9zdWJfMzIsCiBkY25fYndfcmdiX3N1Yl8x
NiwKIGRjbl9id19ubywKIGRjbl9id19zd19saW5lYXIsCiBkY25fYndfc3dfNF9rYl9kLAogZGNu
X2J3X3N3XzRfa2JfZF94LAogZGNuX2J3X3N3XzY0X2tiX2QsCiBkY25fYndfc3dfNjRfa2JfZF90
LAogZGNuX2J3X3N3XzY0X2tiX2RfeCwKIGRjbl9id19zd192YXJfZCwKIGRjbl9id19zd192YXJf
ZF94LAogZGNuX2J3X3l1djQyMF9zdWJfOCwKIGRjbl9id19zd180X2tiX3MsCiBkY25fYndfc3df
NF9rYl9zX3gsCiBkY25fYndfc3dfNjRfa2JfcywKIGRjbl9id19zd182NF9rYl9zX3QsCiBkY25f
Yndfc3dfNjRfa2Jfc194LAogZGNuX2J3X3dyaXRlYmFjaywKIGRjbl9id180NDQsCiBkY25fYndf
ZHAsCiBkY25fYndfNDIwLAogZGNuX2J3X2hkbWksCiBkY25fYndfc3dfdmFyX3MsCiBkY25fYndf
c3dfdmFyX3NfeCwKIGRjbl9id195dXY0MjBfc3ViXzEwLAogZGNuX2J3X3N1cHBvcnRlZF9pbl92
X2FjdGl2ZSwKIGRjbl9id19zdXBwb3J0ZWRfaW5fdl9ibGFuaywKIGRjbl9id19ub3Rfc3VwcG9y
dGVkLAogZGNuX2J3X25hLAogZGNuX2J3X2VuY29kZXJfOGJwYywKIGRjbl9id19lbmNvZGVyXzEw
YnBjLAogZGNuX2J3X2VuY29kZXJfMTJicGMsCiBkY25fYndfZW5jb2Rlcl8xNmJwYywKfTsKCgoK
CgpzdHJ1Y3QgZGNuX2J3X2ludGVybmFsX3ZhcnMgewogZmxvYXQgdm9sdGFnZVs1ICsgMV07CiBm
bG9hdCBtYXhfZGlzcGNsa1s1ICsgMV07CiBmbG9hdCBtYXhfZHBwY2xrWzUgKyAxXTsKIGZsb2F0
IGRjZmNsa19wZXJfc3RhdGVbNSArIDFdOwogZmxvYXQgcGh5Y2xrX3Blcl9zdGF0ZVs1ICsgMV07
CiBmbG9hdCBmYWJyaWNfYW5kX2RyYW1fYmFuZHdpZHRoX3Blcl9zdGF0ZVs1ICsgMV07CiBmbG9h
dCBzcl9leGl0X3RpbWU7CiBmbG9hdCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZTsKIGZsb2F0IGRy
YW1fY2xvY2tfY2hhbmdlX2xhdGVuY3k7CiBmbG9hdCB1cmdlbnRfbGF0ZW5jeTsKIGZsb2F0IHdy
aXRlX2JhY2tfbGF0ZW5jeTsKIGZsb2F0IHBlcmNlbnRfb2ZfaWRlYWxfZHJhbWJ3X3JlY2VpdmVk
X2FmdGVyX3VyZ19sYXRlbmN5OwogZmxvYXQgZGNmY2xrdl9tYXgwcDk7CiBmbG9hdCBkY2ZjbGt2
X25vbTBwODsKIGZsb2F0IGRjZmNsa3ZfbWlkMHA3MjsKIGZsb2F0IGRjZmNsa3ZfbWluMHA2NTsK
IGZsb2F0IG1heF9kaXNwY2xrX3ZtYXgwcDk7CiBmbG9hdCBtYXhfZHBwY2xrX3ZtYXgwcDk7CiBm
bG9hdCBtYXhfZGlzcGNsa192bm9tMHA4OwogZmxvYXQgbWF4X2RwcGNsa192bm9tMHA4OwogZmxv
YXQgbWF4X2Rpc3BjbGtfdm1pZDBwNzI7CiBmbG9hdCBtYXhfZHBwY2xrX3ZtaWQwcDcyOwogZmxv
YXQgbWF4X2Rpc3BjbGtfdm1pbjBwNjU7CiBmbG9hdCBtYXhfZHBwY2xrX3ZtaW4wcDY1OwogZmxv
YXQgc29jY2xrOwogZmxvYXQgZmFicmljX2FuZF9kcmFtX2JhbmR3aWR0aF92bWF4MHA5OwogZmxv
YXQgZmFicmljX2FuZF9kcmFtX2JhbmR3aWR0aF92bm9tMHA4OwogZmxvYXQgZmFicmljX2FuZF9k
cmFtX2JhbmR3aWR0aF92bWlkMHA3MjsKIGZsb2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGhf
dm1pbjBwNjU7CiBmbG9hdCByb3VuZF90cmlwX3BpbmdfbGF0ZW5jeV9jeWNsZXM7CiBmbG9hdCB1
cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbDsKIGZsb2F0IG51bWJlcl9vZl9j
aGFubmVsczsKIGZsb2F0IHZtbV9wYWdlX3NpemU7CiBmbG9hdCByZXR1cm5fYnVzX3dpZHRoOwog
ZmxvYXQgcm9iX2J1ZmZlcl9zaXplX2luX2tieXRlOwogZmxvYXQgZGV0X2J1ZmZlcl9zaXplX2lu
X2tieXRlOwogZmxvYXQgZHBwX291dHB1dF9idWZmZXJfcGl4ZWxzOwogZmxvYXQgb3BwX291dHB1
dF9idWZmZXJfbGluZXM7CiBmbG9hdCBwaXhlbF9jaHVua19zaXplX2luX2tieXRlOwogZmxvYXQg
cHRlX2NodW5rX3NpemU7CiBmbG9hdCBtZXRhX2NodW5rX3NpemU7CiBmbG9hdCB3cml0ZWJhY2tf
Y2h1bmtfc2l6ZTsKIGVudW0gZGNuX2J3X2RlZnMgb2RtX2NhcGFiaWxpdHk7CiBlbnVtIGRjbl9i
d19kZWZzIGRzY19jYXBhYmlsaXR5OwogZmxvYXQgbGluZV9idWZmZXJfc2l6ZTsKIGVudW0gZGNu
X2J3X2RlZnMgaXNfbGluZV9idWZmZXJfYnBwX2ZpeGVkOwogZmxvYXQgbGluZV9idWZmZXJfZml4
ZWRfYnBwOwogZmxvYXQgbWF4X2xpbmVfYnVmZmVyX2xpbmVzOwogZmxvYXQgd3JpdGViYWNrX2x1
bWFfYnVmZmVyX3NpemU7CiBmbG9hdCB3cml0ZWJhY2tfY2hyb21hX2J1ZmZlcl9zaXplOwogZmxv
YXQgbWF4X251bV9kcHA7CiBmbG9hdCBtYXhfbnVtX3dyaXRlYmFjazsKIGZsb2F0IG1heF9kY2h1
Yl90b3BzY2xfdGhyb3VnaHB1dDsKIGZsb2F0IG1heF9wc2NsX3RvbGJfdGhyb3VnaHB1dDsKIGZs
b2F0IG1heF9sYl90b3ZzY2xfdGhyb3VnaHB1dDsKIGZsb2F0IG1heF92c2NsX3RvaHNjbF90aHJv
dWdocHV0OwogZmxvYXQgbWF4X2hzY2xfcmF0aW87CiBmbG9hdCBtYXhfdnNjbF9yYXRpbzsKIGZs
b2F0IG1heF9oc2NsX3RhcHM7CiBmbG9hdCBtYXhfdnNjbF90YXBzOwogZmxvYXQgdW5kZXJfc2Nh
bl9mYWN0b3I7CiBmbG9hdCBwaHljbGt2X21heDBwOTsKIGZsb2F0IHBoeWNsa3Zfbm9tMHA4Owog
ZmxvYXQgcGh5Y2xrdl9taWQwcDcyOwogZmxvYXQgcGh5Y2xrdl9taW4wcDY1OwogZmxvYXQgcHRl
X2J1ZmZlcl9zaXplX2luX3JlcXVlc3RzOwogZmxvYXQgZGlzcGNsa19yYW1waW5nX21hcmdpbjsK
IGZsb2F0IGRvd25zcHJlYWRpbmc7CiBmbG9hdCBtYXhfaW50ZXJfZGNuX3RpbGVfcmVwZWF0ZXJz
OwogZW51bSBkY25fYndfZGVmcyBjYW5fdnN0YXJ0dXBfbGluZXNfZXhjZWVkX3ZzeW5jX3BsdXNf
YmFja19wb3JjaF9saW5lc19taW51c19vbmU7CiBlbnVtIGRjbl9id19kZWZzIGJ1Z19mb3JjaW5n
X2x1bWFfYW5kX2Nocm9tYV9yZXF1ZXN0X3RvX3NhbWVfc2l6ZV9maXhlZDsKIGludCBtb2RlOwog
ZmxvYXQgdmlld3BvcnRfd2lkdGhbNSArIDFdOwogZmxvYXQgaHRvdGFsWzUgKyAxXTsKIGZsb2F0
IHZ0b3RhbFs1ICsgMV07CiBmbG9hdCB2X3N5bmNfcGx1c19iYWNrX3BvcmNoWzUgKyAxXTsKIGZs
b2F0IHZhY3RpdmVbNSArIDFdOwogZmxvYXQgcGl4ZWxfY2xvY2tbNSArIDFdOwogZmxvYXQgdmll
d3BvcnRfaGVpZ2h0WzUgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgZGNjX2VuYWJsZVs1ICsgMV07
CiBmbG9hdCBkY2NfcmF0ZVs1ICsgMV07CiBlbnVtIGRjbl9id19kZWZzIHNvdXJjZV9zY2FuWzUg
KyAxXTsKIGZsb2F0IGxiX2JpdF9wZXJfcGl4ZWxbNSArIDFdOwogZW51bSBkY25fYndfZGVmcyBz
b3VyY2VfcGl4ZWxfZm9ybWF0WzUgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgc291cmNlX3N1cmZh
Y2VfbW9kZVs1ICsgMV07CiBlbnVtIGRjbl9id19kZWZzIG91dHB1dF9mb3JtYXRbNSArIDFdOwog
ZW51bSBkY25fYndfZGVmcyBvdXRwdXRfZGVlcF9jb2xvcls1ICsgMV07CiBlbnVtIGRjbl9id19k
ZWZzIG91dHB1dFs1ICsgMV07CiBmbG9hdCBzY2FsZXJfcmVjX291dF93aWR0aFs1ICsgMV07CiBm
bG9hdCBzY2FsZXJfcmVjb3V0X2hlaWdodFs1ICsgMV07CiBmbG9hdCB1bmRlcnNjYW5fb3V0cHV0
WzUgKyAxXTsKIGZsb2F0IGludGVybGFjZV9vdXRwdXRbNSArIDFdOwogZmxvYXQgb3ZlcnJpZGVf
aHRhX3BzWzUgKyAxXTsKIGZsb2F0IG92ZXJyaWRlX3Z0YV9wc1s1ICsgMV07CiBmbG9hdCBvdmVy
cmlkZV9odGFfcHNjaHJvbWFbNSArIDFdOwogZmxvYXQgb3ZlcnJpZGVfdnRhX3BzY2hyb21hWzUg
KyAxXTsKIGZsb2F0IHVyZ2VudF9sYXRlbmN5X3N1cHBvcnRfdXNbNSArIDFdOwogZmxvYXQgaF9y
YXRpb1s1ICsgMV07CiBmbG9hdCB2X3JhdGlvWzUgKyAxXTsKIGZsb2F0IGh0YXBzWzUgKyAxXTsK
IGZsb2F0IHZ0YXBzWzUgKyAxXTsKIGZsb2F0IGh0YV9wc2Nocm9tYVs1ICsgMV07CiBmbG9hdCB2
dGFfcHNjaHJvbWFbNSArIDFdOwogZW51bSBkY25fYndfZGVmcyBwdGVfZW5hYmxlOwogZW51bSBk
Y25fYndfZGVmcyBzeW5jaHJvbml6ZWRfdmJsYW5rOwogZW51bSBkY25fYndfZGVmcyB0YV9wc2Nh
bGN1bGF0aW9uOwogaW50IHZvbHRhZ2Vfb3ZlcnJpZGVfbGV2ZWw7CiBpbnQgbnVtYmVyX29mX2Fj
dGl2ZV9wbGFuZXM7CiBpbnQgdm9sdGFnZV9sZXZlbDsKIGVudW0gZGNuX2J3X2RlZnMgaW1tZWRp
YXRlX2ZsaXBfc3VwcG9ydGVkOwogZmxvYXQgZGNmY2xrOwogZmxvYXQgbWF4X3BoeWNsazsKIGZs
b2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGg7CiBmbG9hdCBkcHBfcGVyX3BsYW5lX3Blcl9y
YXRpb1sxICsgMV1bNSArIDFdOwogZW51bSBkY25fYndfZGVmcyBkaXNwY2xrX2RwcGNsa19zdXBw
b3J0X3Blcl9yYXRpb1sxICsgMV07CiBmbG9hdCByZXF1aXJlZF9kaXNwY2xrX3Blcl9yYXRpb1sx
ICsgMV07CiBlbnVtIGRjbl9id19kZWZzIGVycm9yX21lc3NhZ2VbMSArIDFdOwogaW50IGRpc3Bj
bGtfZHBwY2xrX3JhdGlvOwogZmxvYXQgZHBwX3Blcl9wbGFuZVs1ICsgMV07CiBmbG9hdCBkZXRf
YnVmZmVyX3NpemVfeVs1ICsgMV07CiBmbG9hdCBkZXRfYnVmZmVyX3NpemVfY1s1ICsgMV07CiBm
bG9hdCBzd2F0aF9oZWlnaHRfeVs1ICsgMV07CiBmbG9hdCBzd2F0aF9oZWlnaHRfY1s1ICsgMV07
CiBlbnVtIGRjbl9id19kZWZzIGZpbmFsX2Vycm9yX21lc3NhZ2U7CiBmbG9hdCBmcmVxdWVuY3k7
CiBmbG9hdCBoZWFkZXJfbGluZTsKIGZsb2F0IGhlYWRlcjsKIGVudW0gZGNuX2J3X2RlZnMgdm9s
dGFnZV9vdmVycmlkZTsKIGVudW0gZGNuX2J3X2RlZnMgYWxsb3dfZGlmZmVyZW50X2hyYXRpb192
cmF0aW87CiBmbG9hdCBhY2NlcHRhYmxlX3F1YWxpdHlfaHRhX3BzOwogZmxvYXQgYWNjZXB0YWJs
ZV9xdWFsaXR5X3Z0YV9wczsKIGZsb2F0IG5vX29mX2RwcFs1ICsgMV1bMSArIDFdWzUgKyAxXTsK
IGZsb2F0IHN3YXRoX3dpZHRoX3lwZXJfc3RhdGVbNSArIDFdWzEgKyAxXVs1ICsgMV07CiBmbG9h
dCBzd2F0aF9oZWlnaHRfeXBlcl9zdGF0ZVs1ICsgMV1bMSArIDFdWzUgKyAxXTsKIGZsb2F0IHN3
YXRoX2hlaWdodF9jcGVyX3N0YXRlWzUgKyAxXVsxICsgMV1bNSArIDFdOwogZmxvYXQgdXJnZW50
X2xhdGVuY3lfc3VwcG9ydF91c19wZXJfc3RhdGVbNSArIDFdWzEgKyAxXVs1ICsgMV07CiBmbG9h
dCB2X3JhdGlvX3ByZV95d2l0aF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdWzUgKyAxXTsK
IGZsb2F0IHZfcmF0aW9fcHJlX2N3aXRoX2ltbWVkaWF0ZV9mbGlwWzUgKyAxXVsxICsgMV1bNSAr
IDFdOwogZmxvYXQgcmVxdWlyZWRfcHJlZmV0Y2hfcGl4ZWxfZGF0YV9id193aXRoX2ltbWVkaWF0
ZV9mbGlwWzUgKyAxXVsxICsgMV1bNSArIDFdOwogZmxvYXQgdl9yYXRpb19wcmVfeXdpdGhvdXRf
aW1tZWRpYXRlX2ZsaXBbNSArIDFdWzEgKyAxXVs1ICsgMV07CiBmbG9hdCB2X3JhdGlvX3ByZV9j
d2l0aG91dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdWzUgKyAxXTsKIGZsb2F0IHJlcXVp
cmVkX3ByZWZldGNoX3BpeGVsX2RhdGFfYndfd2l0aG91dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1b
MSArIDFdWzUgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgcHJlZmV0Y2hfc3VwcG9ydGVkX3dpdGhf
aW1tZWRpYXRlX2ZsaXBbNSArIDFdWzEgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgcHJlZmV0Y2hf
c3VwcG9ydGVkX3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXBbNSArIDFdWzEgKyAxXTsKIGVudW0gZGNu
X2J3X2RlZnMgdl9yYXRpb19pbl9wcmVmZXRjaF9zdXBwb3J0ZWRfd2l0aF9pbW1lZGlhdGVfZmxp
cFs1ICsgMV1bMSArIDFdOwogZW51bSBkY25fYndfZGVmcyB2X3JhdGlvX2luX3ByZWZldGNoX3N1
cHBvcnRlZF93aXRob3V0X2ltbWVkaWF0ZV9mbGlwWzUgKyAxXVsxICsgMV07CiBmbG9hdCByZXF1
aXJlZF9kaXNwY2xrWzUgKyAxXVsxICsgMV07CiBlbnVtIGRjbl9id19kZWZzIGRpc3BjbGtfZHBw
Y2xrX3N1cHBvcnRbNSArIDFdWzEgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgdG90YWxfYXZhaWxh
YmxlX3BpcGVzX3N1cHBvcnRbNSArIDFdWzEgKyAxXTsKIGZsb2F0IHRvdGFsX251bWJlcl9vZl9h
Y3RpdmVfZHBwWzUgKyAxXVsxICsgMV07CiBmbG9hdCB0b3RhbF9udW1iZXJfb2ZfZGNjX2FjdGl2
ZV9kcHBbNSArIDFdWzEgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgdXJnZW50X2xhdGVuY3lfc3Vw
cG9ydFs1ICsgMV1bMSArIDFdOwogZW51bSBkY25fYndfZGVmcyBtb2RlX3N1cHBvcnRfd2l0aF9p
bW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdOwogZW51bSBkY25fYndfZGVmcyBtb2RlX3N1cHBv
cnRfd2l0aG91dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdOwogZmxvYXQgcmV0dXJuX2J3
X3Blcl9zdGF0ZVs1ICsgMV07CiBlbnVtIGRjbl9id19kZWZzIGRpb19zdXBwb3J0WzUgKyAxXTsK
IGZsb2F0IHVyZ2VudF9yb3VuZF90cmlwX2FuZF9vdXRfb2Zfb3JkZXJfbGF0ZW5jeV9wZXJfc3Rh
dGVbNSArIDFdOwogZW51bSBkY25fYndfZGVmcyByb2Jfc3VwcG9ydFs1ICsgMV07CiBlbnVtIGRj
bl9id19kZWZzIGJhbmR3aWR0aF9zdXBwb3J0WzUgKyAxXTsKIGZsb2F0IHByZWZldGNoX2J3WzUg
KyAxXTsKIGZsb2F0IG1ldGFfcHRlX2J5dGVzX3Blcl9mcmFtZVs1ICsgMV07CiBmbG9hdCBtZXRh
X3Jvd19ieXRlc1s1ICsgMV07CiBmbG9hdCBkcHRlX2J5dGVzX3Blcl9yb3dbNSArIDFdOwogZmxv
YXQgcHJlZmV0Y2hfbGluZXNfeVs1ICsgMV07CiBmbG9hdCBwcmVmZXRjaF9saW5lc19jWzUgKyAx
XTsKIGZsb2F0IG1heF9udW1fc3dfeVs1ICsgMV07CiBmbG9hdCBtYXhfbnVtX3N3X2NbNSArIDFd
OwogZmxvYXQgbGluZV90aW1lc19mb3JfcHJlZmV0Y2hbNSArIDFdOwogZmxvYXQgbGluZXNfZm9y
X21ldGFfcHRlX3dpdGhfaW1tZWRpYXRlX2ZsaXBbNSArIDFdOwogZmxvYXQgbGluZXNfZm9yX21l
dGFfcHRlX3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXBbNSArIDFdOwogZmxvYXQgbGluZXNfZm9yX21l
dGFfYW5kX2RwdGVfcm93X3dpdGhfaW1tZWRpYXRlX2ZsaXBbNSArIDFdOwogZmxvYXQgbGluZXNf
Zm9yX21ldGFfYW5kX2RwdGVfcm93X3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXBbNSArIDFdOwogZmxv
YXQgbWluX2RwcGNsa191c2luZ19zaW5nbGVfZHBwWzUgKyAxXTsKIGZsb2F0IHN3YXRoX3dpZHRo
X3lzaW5nbGVfZHBwWzUgKyAxXTsKIGZsb2F0IGJ5dGVfcGVyX3BpeGVsX2luX2RldHlbNSArIDFd
OwogZmxvYXQgYnl0ZV9wZXJfcGl4ZWxfaW5fZGV0Y1s1ICsgMV07CiBmbG9hdCBudW1iZXJfb2Zf
ZHBwX3JlcXVpcmVkX2Zvcl9kZXRfYW5kX2xiX3NpemVbNSArIDFdOwogZmxvYXQgcmVxdWlyZWRf
cGh5Y2xrWzUgKyAxXTsKIGZsb2F0IHJlYWQyNTZfYmxvY2tfaGVpZ2h0X3lbNSArIDFdOwogZmxv
YXQgcmVhZDI1Nl9ibG9ja193aWR0aF95WzUgKyAxXTsKIGZsb2F0IHJlYWQyNTZfYmxvY2tfaGVp
Z2h0X2NbNSArIDFdOwogZmxvYXQgcmVhZDI1Nl9ibG9ja193aWR0aF9jWzUgKyAxXTsKIGZsb2F0
IG1heF9zd2F0aF9oZWlnaHRfeVs1ICsgMV07CiBmbG9hdCBtYXhfc3dhdGhfaGVpZ2h0X2NbNSAr
IDFdOwogZmxvYXQgbWluX3N3YXRoX2hlaWdodF95WzUgKyAxXTsKIGZsb2F0IG1pbl9zd2F0aF9o
ZWlnaHRfY1s1ICsgMV07CiBmbG9hdCByZWFkX2JhbmR3aWR0aFs1ICsgMV07CiBmbG9hdCB3cml0
ZV9iYW5kd2lkdGhbNSArIDFdOwogZmxvYXQgcHNjbF9mYWN0b3JbNSArIDFdOwogZmxvYXQgcHNj
bF9mYWN0b3JfY2hyb21hWzUgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgc2NhbGVfcmF0aW9fc3Vw
cG9ydDsKIGVudW0gZGNuX2J3X2RlZnMgc291cmNlX2Zvcm1hdF9waXhlbF9hbmRfc2Nhbl9zdXBw
b3J0OwogZmxvYXQgdG90YWxfcmVhZF9iYW5kd2lkdGhfY29uc3VtZWRfZ2J5dGVfcGVyX3NlY29u
ZDsKIGZsb2F0IHRvdGFsX3dyaXRlX2JhbmR3aWR0aF9jb25zdW1lZF9nYnl0ZV9wZXJfc2Vjb25k
OwogZmxvYXQgdG90YWxfYmFuZHdpZHRoX2NvbnN1bWVkX2dieXRlX3Blcl9zZWNvbmQ7CiBlbnVt
IGRjbl9id19kZWZzIGRjY19lbmFibGVkX2luX2FueV9wbGFuZTsKIGZsb2F0IHJldHVybl9id190
b2Rjbl9wZXJfc3RhdGU7CiBmbG9hdCBjcml0aWNhbF9wb2ludDsKIGVudW0gZGNuX2J3X2RlZnMg
d3JpdGViYWNrX2xhdGVuY3lfc3VwcG9ydDsKIGZsb2F0IHJlcXVpcmVkX291dHB1dF9idzsKIGZs
b2F0IHRvdGFsX251bWJlcl9vZl9hY3RpdmVfd3JpdGViYWNrOwogZW51bSBkY25fYndfZGVmcyB0
b3RhbF9hdmFpbGFibGVfd3JpdGViYWNrX3N1cHBvcnQ7CiBmbG9hdCBtYXhpbXVtX3N3YXRoX3dp
ZHRoOwogZmxvYXQgbnVtYmVyX29mX2RwcF9yZXF1aXJlZF9mb3JfZGV0X3NpemU7CiBmbG9hdCBu
dW1iZXJfb2ZfZHBwX3JlcXVpcmVkX2Zvcl9sYl9zaXplOwogZmxvYXQgbWluX2Rpc3BjbGtfdXNp
bmdfc2luZ2xlX2RwcDsKIGZsb2F0IG1pbl9kaXNwY2xrX3VzaW5nX2R1YWxfZHBwOwogZW51bSBk
Y25fYndfZGVmcyB2aWV3cG9ydF9zaXplX3N1cHBvcnQ7CiBmbG9hdCBzd2F0aF93aWR0aF9ncmFu
dWxhcml0eV95OwogZmxvYXQgcm91bmRlZF91cF9tYXhfc3dhdGhfc2l6ZV9ieXRlc195OwogZmxv
YXQgc3dhdGhfd2lkdGhfZ3JhbnVsYXJpdHlfYzsKIGZsb2F0IHJvdW5kZWRfdXBfbWF4X3N3YXRo
X3NpemVfYnl0ZXNfYzsKIGZsb2F0IGxpbmVzX2luX2RldF9sdW1hOwogZmxvYXQgbGluZXNfaW5f
ZGV0X2Nocm9tYTsKIGZsb2F0IGVmZmVjdGl2ZV9sYl9sYXRlbmN5X2hpZGluZ19zb3VyY2VfbGlu
ZXNfbHVtYTsKIGZsb2F0IGVmZmVjdGl2ZV9sYl9sYXRlbmN5X2hpZGluZ19zb3VyY2VfbGluZXNf
Y2hyb21hOwogZmxvYXQgZWZmZWN0aXZlX2RldGxiX2xpbmVzX2x1bWE7CiBmbG9hdCBlZmZlY3Rp
dmVfZGV0bGJfbGluZXNfY2hyb21hOwogZmxvYXQgcHJvamVjdGVkX2RjZmNsa19kZWVwX3NsZWVw
OwogZmxvYXQgbWV0YV9yZXFfaGVpZ2h0X3k7CiBmbG9hdCBtZXRhX3JlcV93aWR0aF95OwogZmxv
YXQgbWV0YV9zdXJmYWNlX3dpZHRoX3k7CiBmbG9hdCBtZXRhX3N1cmZhY2VfaGVpZ2h0X3k7CiBm
bG9hdCBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfeTsKIGZsb2F0IG1ldGFfcm93X2J5dGVzX3k7
CiBmbG9hdCBtYWNyb190aWxlX2Jsb2NrX3NpemVfYnl0ZXNfeTsKIGZsb2F0IG1hY3JvX3RpbGVf
YmxvY2tfaGVpZ2h0X3k7CiBmbG9hdCBkYXRhX3B0ZV9yZXFfaGVpZ2h0X3k7CiBmbG9hdCBkYXRh
X3B0ZV9yZXFfd2lkdGhfeTsKIGZsb2F0IGRwdGVfYnl0ZXNfcGVyX3Jvd195OwogZmxvYXQgbWV0
YV9yZXFfaGVpZ2h0X2M7CiBmbG9hdCBtZXRhX3JlcV93aWR0aF9jOwogZmxvYXQgbWV0YV9zdXJm
YWNlX3dpZHRoX2M7CiBmbG9hdCBtZXRhX3N1cmZhY2VfaGVpZ2h0X2M7CiBmbG9hdCBtZXRhX3B0
ZV9ieXRlc19wZXJfZnJhbWVfYzsKIGZsb2F0IG1ldGFfcm93X2J5dGVzX2M7CiBmbG9hdCBtYWNy
b190aWxlX2Jsb2NrX3NpemVfYnl0ZXNfYzsKIGZsb2F0IG1hY3JvX3RpbGVfYmxvY2tfaGVpZ2h0
X2M7CiBmbG9hdCBtYWNyb190aWxlX2Jsb2NrX3dpZHRoX2M7CiBmbG9hdCBkYXRhX3B0ZV9yZXFf
aGVpZ2h0X2M7CiBmbG9hdCBkYXRhX3B0ZV9yZXFfd2lkdGhfYzsKIGZsb2F0IGRwdGVfYnl0ZXNf
cGVyX3Jvd19jOwogZmxvYXQgdl9pbml0X3k7CiBmbG9hdCBtYXhfcGFydGlhbF9zd195OwogZmxv
YXQgdl9pbml0X2M7CiBmbG9hdCBtYXhfcGFydGlhbF9zd19jOwogZmxvYXQgZHN0X3hfYWZ0ZXJf
c2NhbGVyOwogZmxvYXQgZHN0X3lfYWZ0ZXJfc2NhbGVyOwogZmxvYXQgdGltZV9jYWxjOwogZmxv
YXQgdl91cGRhdGVfb2Zmc2V0WzUgKyAxXVsyXTsKIGZsb2F0IHRvdGFsX3JlcGVhdGVyX2RlbGF5
OwogZmxvYXQgdl91cGRhdGVfd2lkdGhbNSArIDFdWzJdOwogZmxvYXQgdl9yZWFkeV9vZmZzZXRb
NSArIDFdWzJdOwogZmxvYXQgdGltZV9zZXR1cDsKIGZsb2F0IGV4dHJhX2xhdGVuY3k7CiBmbG9h
dCBtYXhpbXVtX3ZzdGFydHVwOwogZmxvYXQgYndfYXZhaWxhYmxlX2Zvcl9pbW1lZGlhdGVfZmxp
cDsKIGZsb2F0IHRvdGFsX2ltbWVkaWF0ZV9mbGlwX2J5dGVzWzUgKyAxXTsKIGZsb2F0IHRpbWVf
Zm9yX21ldGFfcHRlX3dpdGhfaW1tZWRpYXRlX2ZsaXA7CiBmbG9hdCB0aW1lX2Zvcl9tZXRhX3B0
ZV93aXRob3V0X2ltbWVkaWF0ZV9mbGlwOwogZmxvYXQgdGltZV9mb3JfbWV0YV9hbmRfZHB0ZV9y
b3dfd2l0aF9pbW1lZGlhdGVfZmxpcDsKIGZsb2F0IHRpbWVfZm9yX21ldGFfYW5kX2RwdGVfcm93
X3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXA7CiBmbG9hdCBsaW5lX3RpbWVzX3RvX3JlcXVlc3RfcHJl
ZmV0Y2hfcGl4ZWxfZGF0YV93aXRoX2ltbWVkaWF0ZV9mbGlwOwogZmxvYXQgbGluZV90aW1lc190
b19yZXF1ZXN0X3ByZWZldGNoX3BpeGVsX2RhdGFfd2l0aG91dF9pbW1lZGlhdGVfZmxpcDsKIGZs
b2F0IG1heGltdW1fcmVhZF9iYW5kd2lkdGhfd2l0aF9wcmVmZXRjaF93aXRoX2ltbWVkaWF0ZV9m
bGlwOwogZmxvYXQgbWF4aW11bV9yZWFkX2JhbmR3aWR0aF93aXRoX3ByZWZldGNoX3dpdGhvdXRf
aW1tZWRpYXRlX2ZsaXA7CiBmbG9hdCB2b2x0YWdlX2xldmVsX3dpdGhfaW1tZWRpYXRlX2ZsaXA7
CiBmbG9hdCB2b2x0YWdlX2xldmVsX3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXA7CiBmbG9hdCB0b3Rh
bF9udW1iZXJfb2ZfYWN0aXZlX2RwcF9wZXJfcmF0aW9bMSArIDFdOwogZmxvYXQgYnl0ZV9wZXJf
cGl4X2RldHk7CiBmbG9hdCBieXRlX3Blcl9waXhfZGV0YzsKIGZsb2F0IHJlYWQyNTZfYnl0ZXNf
YmxvY2tfaGVpZ2h0X3k7CiBmbG9hdCByZWFkMjU2X2J5dGVzX2Jsb2NrX3dpZHRoX3k7CiBmbG9h
dCByZWFkMjU2X2J5dGVzX2Jsb2NrX2hlaWdodF9jOwogZmxvYXQgcmVhZDI1Nl9ieXRlc19ibG9j
a193aWR0aF9jOwogZmxvYXQgbWF4aW11bV9zd2F0aF9oZWlnaHRfeTsKIGZsb2F0IG1heGltdW1f
c3dhdGhfaGVpZ2h0X2M7CiBmbG9hdCBtaW5pbXVtX3N3YXRoX2hlaWdodF95OwogZmxvYXQgbWlu
aW11bV9zd2F0aF9oZWlnaHRfYzsKIGZsb2F0IHN3YXRoX3dpZHRoOwogZmxvYXQgcHJlZmV0Y2hf
YmFuZHdpZHRoWzUgKyAxXTsKIGZsb2F0IHZfaW5pdF9wcmVfZmlsbF95WzUgKyAxXTsKIGZsb2F0
IHZfaW5pdF9wcmVfZmlsbF9jWzUgKyAxXTsKIGZsb2F0IG1heF9udW1fc3dhdGhfeVs1ICsgMV07
CiBmbG9hdCBtYXhfbnVtX3N3YXRoX2NbNSArIDFdOwogZmxvYXQgcHJlZmlsbF95WzUgKyAxXTsK
IGZsb2F0IHByZWZpbGxfY1s1ICsgMV07CiBmbG9hdCB2X3N0YXJ0dXBbNSArIDFdOwogZW51bSBk
Y25fYndfZGVmcyBhbGxvd19kcmFtX2Nsb2NrX2NoYW5nZV9kdXJpbmdfdmJsYW5rWzUgKyAxXTsK
IGZsb2F0IGFsbG93X2RyYW1fc2VsZl9yZWZyZXNoX2R1cmluZ192YmxhbmtbNSArIDFdOwogZmxv
YXQgdl9yYXRpb19wcmVmZXRjaF95WzUgKyAxXTsKIGZsb2F0IHZfcmF0aW9fcHJlZmV0Y2hfY1s1
ICsgMV07CiBmbG9hdCBkZXN0aW5hdGlvbl9saW5lc19mb3JfcHJlZmV0Y2hbNSArIDFdOwogZmxv
YXQgZGVzdGluYXRpb25fbGluZXNfdG9fcmVxdWVzdF92bV9pbnZfYmxhbmtbNSArIDFdOwogZmxv
YXQgZGVzdGluYXRpb25fbGluZXNfdG9fcmVxdWVzdF9yb3dfaW5fdmJsYW5rWzUgKyAxXTsKIGZs
b2F0IG1pbl90dHV2X2JsYW5rWzUgKyAxXTsKIGZsb2F0IGJ5dGVfcGVyX3BpeGVsX2RldHlbNSAr
IDFdOwogZmxvYXQgYnl0ZV9wZXJfcGl4ZWxfZGV0Y1s1ICsgMV07CiBmbG9hdCBzd2F0aF93aWR0
aF95WzUgKyAxXTsKIGZsb2F0IGxpbmVzX2luX2RldHlbNSArIDFdOwogZmxvYXQgbGluZXNfaW5f
ZGV0eV9yb3VuZGVkX2Rvd25fdG9fc3dhdGhbNSArIDFdOwogZmxvYXQgbGluZXNfaW5fZGV0Y1s1
ICsgMV07CiBmbG9hdCBsaW5lc19pbl9kZXRjX3JvdW5kZWRfZG93bl90b19zd2F0aFs1ICsgMV07
CiBmbG9hdCBmdWxsX2RldF9idWZmZXJpbmdfdGltZV95WzUgKyAxXTsKIGZsb2F0IGZ1bGxfZGV0
X2J1ZmZlcmluZ190aW1lX2NbNSArIDFdOwogZmxvYXQgYWN0aXZlX2RyYW1fY2xvY2tfY2hhbmdl
X2xhdGVuY3lfbWFyZ2luWzUgKyAxXTsKIGZsb2F0IHZfYmxhbmtfZHJhbV9jbG9ja19jaGFuZ2Vf
bGF0ZW5jeV9tYXJnaW5bNSArIDFdOwogZmxvYXQgZGNmY2xrX2RlZXBfc2xlZXBfcGVyX3BsYW5l
WzUgKyAxXTsKIGZsb2F0IHJlYWRfYmFuZHdpZHRoX3BsYW5lX2x1bWFbNSArIDFdOwogZmxvYXQg
cmVhZF9iYW5kd2lkdGhfcGxhbmVfY2hyb21hWzUgKyAxXTsKIGZsb2F0IGRpc3BsYXlfcGlwZV9s
aW5lX2RlbGl2ZXJ5X3RpbWVfbHVtYVs1ICsgMV07CiBmbG9hdCBkaXNwbGF5X3BpcGVfbGluZV9k
ZWxpdmVyeV90aW1lX2Nocm9tYVs1ICsgMV07CiBmbG9hdCBkaXNwbGF5X3BpcGVfbGluZV9kZWxp
dmVyeV90aW1lX2x1bWFfcHJlZmV0Y2hbNSArIDFdOwogZmxvYXQgZGlzcGxheV9waXBlX2xpbmVf
ZGVsaXZlcnlfdGltZV9jaHJvbWFfcHJlZmV0Y2hbNSArIDFdOwogZmxvYXQgcGl4ZWxfcHRlX2J5
dGVzX3Blcl9yb3dbNSArIDFdOwogZmxvYXQgbWV0YV9wdGVfYnl0ZXNfZnJhbWVbNSArIDFdOwog
ZmxvYXQgbWV0YV9yb3dfYnl0ZVs1ICsgMV07CiBmbG9hdCBwcmVmZXRjaF9zb3VyY2VfbGluZXNf
eVs1ICsgMV07CiBmbG9hdCBwcmVmZXRjaF9zb3VyY2VfbGluZXNfY1s1ICsgMV07CiBmbG9hdCBw
c2NsX3Rocm91Z2hwdXRbNSArIDFdOwogZmxvYXQgcHNjbF90aHJvdWdocHV0X2Nocm9tYVs1ICsg
MV07CiBmbG9hdCBvdXRwdXRfYnBwaGRtaVs1ICsgMV07CiBmbG9hdCBvdXRwdXRfYnBwZHA0X2xh
bmVfaGJyWzUgKyAxXTsKIGZsb2F0IG91dHB1dF9icHBkcDRfbGFuZV9oYnIyWzUgKyAxXTsKIGZs
b2F0IG91dHB1dF9icHBkcDRfbGFuZV9oYnIzWzUgKyAxXTsKIGZsb2F0IG1heF92c3RhcnR1cF9s
aW5lc1s1ICsgMV07CiBmbG9hdCBkaXNwY2xrX3dpdGhfcmFtcGluZzsKIGZsb2F0IGRpc3BjbGtf
d2l0aG91dF9yYW1waW5nOwogZmxvYXQgZHBwY2xrX3VzaW5nX3NpbmdsZV9kcHBfbHVtYTsKIGZs
b2F0IGRwcGNsa191c2luZ19zaW5nbGVfZHBwOwogZmxvYXQgZHBwY2xrX3VzaW5nX3NpbmdsZV9k
cHBfY2hyb21hOwogZW51bSBkY25fYndfZGVmcyBvZG1fY2FwYWJsZTsKIGZsb2F0IGRpc3BjbGs7
CiBmbG9hdCBkcHBjbGs7CiBmbG9hdCByZXR1cm5fYmFuZHdpZHRoX3RvX2RjbjsKIGVudW0gZGNu
X2J3X2RlZnMgZGNjX2VuYWJsZWRfYW55X3BsYW5lOwogZmxvYXQgcmV0dXJuX2J3OwogZmxvYXQg
Y3JpdGljYWxfY29tcHJlc3Npb247CiBmbG9hdCB0b3RhbF9kYXRhX3JlYWRfYmFuZHdpZHRoOwog
ZmxvYXQgdG90YWxfYWN0aXZlX2RwcDsKIGZsb2F0IHRvdGFsX2RjY19hY3RpdmVfZHBwOwogZmxv
YXQgdXJnZW50X3JvdW5kX3RyaXBfYW5kX291dF9vZl9vcmRlcl9sYXRlbmN5OwogZmxvYXQgbGFz
dF9waXhlbF9vZl9saW5lX2V4dHJhX3dhdGVybWFyazsKIGZsb2F0IGRhdGFfZmFicmljX2xpbmVf
ZGVsaXZlcnlfdGltZV9sdW1hOwogZmxvYXQgZGF0YV9mYWJyaWNfbGluZV9kZWxpdmVyeV90aW1l
X2Nocm9tYTsKIGZsb2F0IHVyZ2VudF9leHRyYV9sYXRlbmN5OwogZmxvYXQgdXJnZW50X3dhdGVy
bWFyazsKIGZsb2F0IHB0ZW1ldGFfdXJnZW50X3dhdGVybWFyazsKIGZsb2F0IGRyYW1fY2xvY2tf
Y2hhbmdlX3dhdGVybWFyazsKIGZsb2F0IHRvdGFsX2FjdGl2ZV93cml0ZWJhY2s7CiBmbG9hdCB3
cml0ZWJhY2tfZHJhbV9jbG9ja19jaGFuZ2Vfd2F0ZXJtYXJrOwogZmxvYXQgbWluX2Z1bGxfZGV0
X2J1ZmZlcmluZ190aW1lOwogZmxvYXQgZnJhbWVfdGltZV9mb3JfbWluX2Z1bGxfZGV0X2J1ZmZl
cmluZ190aW1lOwogZmxvYXQgYXZlcmFnZV9yZWFkX2JhbmR3aWR0aF9nYnl0ZV9wZXJfc2Vjb25k
OwogZmxvYXQgcGFydF9vZl9idXJzdF90aGF0X2ZpdHNfaW5fcm9iOwogZmxvYXQgc3R1dHRlcl9i
dXJzdF90aW1lOwogZmxvYXQgc3R1dHRlcl9lZmZpY2llbmN5X25vdF9pbmNsdWRpbmdfdmJsYW5r
OwogZmxvYXQgc21hbGxlc3RfdmJsYW5rOwogZmxvYXQgdl9ibGFua190aW1lOwogZmxvYXQgc3R1
dHRlcl9lZmZpY2llbmN5OwogZmxvYXQgZGNmX2Nsa19kZWVwX3NsZWVwOwogZmxvYXQgc3R1dHRl
cl9leGl0X3dhdGVybWFyazsKIGZsb2F0IHN0dXR0ZXJfZW50ZXJfcGx1c19leGl0X3dhdGVybWFy
azsKIGZsb2F0IGVmZmVjdGl2ZV9kZXRfcGx1c19sYl9saW5lc19sdW1hOwogZmxvYXQgdXJnZW50
X2xhdGVuY3lfc3VwcG9ydF91c19sdW1hOwogZmxvYXQgZWZmZWN0aXZlX2RldF9wbHVzX2xiX2xp
bmVzX2Nocm9tYTsKIGZsb2F0IHVyZ2VudF9sYXRlbmN5X3N1cHBvcnRfdXNfY2hyb21hOwogZmxv
YXQgbWluX3VyZ2VudF9sYXRlbmN5X3N1cHBvcnRfdXM7CiBmbG9hdCBub25fdXJnZW50X2xhdGVu
Y3lfdG9sZXJhbmNlOwogZmxvYXQgYmxvY2tfaGVpZ2h0MjU2X2J5dGVzX3k7CiBmbG9hdCBibG9j
a19oZWlnaHQyNTZfYnl0ZXNfYzsKIGZsb2F0IG1ldGFfcmVxdWVzdF93aWR0aF95OwogZmxvYXQg
bWV0YV9zdXJmX3dpZHRoX3k7CiBmbG9hdCBtZXRhX3N1cmZfaGVpZ2h0X3k7CiBmbG9hdCBtZXRh
X3B0ZV9ieXRlc19mcmFtZV95OwogZmxvYXQgbWV0YV9yb3dfYnl0ZV95OwogZmxvYXQgbWFjcm9f
dGlsZV9zaXplX2J5dGVfeTsKIGZsb2F0IG1hY3JvX3RpbGVfaGVpZ2h0X3k7CiBmbG9hdCBwaXhl
bF9wdGVfcmVxX2hlaWdodF95OwogZmxvYXQgcGl4ZWxfcHRlX3JlcV93aWR0aF95OwogZmxvYXQg
cGl4ZWxfcHRlX2J5dGVzX3Blcl9yb3dfeTsKIGZsb2F0IG1ldGFfcmVxdWVzdF93aWR0aF9jOwog
ZmxvYXQgbWV0YV9zdXJmX3dpZHRoX2M7CiBmbG9hdCBtZXRhX3N1cmZfaGVpZ2h0X2M7CiBmbG9h
dCBtZXRhX3B0ZV9ieXRlc19mcmFtZV9jOwogZmxvYXQgbWV0YV9yb3dfYnl0ZV9jOwogZmxvYXQg
bWFjcm9fdGlsZV9zaXplX2J5dGVzX2M7CiBmbG9hdCBtYWNyb190aWxlX2hlaWdodF9jOwogZmxv
YXQgcGl4ZWxfcHRlX3JlcV9oZWlnaHRfYzsKIGZsb2F0IHBpeGVsX3B0ZV9yZXFfd2lkdGhfYzsK
IGZsb2F0IHBpeGVsX3B0ZV9ieXRlc19wZXJfcm93X2M7CiBmbG9hdCBtYXhfcGFydGlhbF9zd2F0
aF95OwogZmxvYXQgbWF4X3BhcnRpYWxfc3dhdGhfYzsKIGZsb2F0IHRfY2FsYzsKIGZsb2F0IG5l
eHRfcHJlZmV0Y2hfbW9kZTsKIGZsb2F0IHZfc3RhcnR1cF9saW5lczsKIGVudW0gZGNuX2J3X2Rl
ZnMgcGxhbmVzX3dpdGhfcm9vbV90b19pbmNyZWFzZV92c3RhcnR1cF9wcmVmZXRjaF9id19sZXNz
X3RoYW5fYWN0aXZlX2J3OwogZW51bSBkY25fYndfZGVmcyBwbGFuZXNfd2l0aF9yb29tX3RvX2lu
Y3JlYXNlX3ZzdGFydHVwX3ZyYXRpb19wcmVmZXRjaF9tb3JlX3RoYW40OwogZW51bSBkY25fYndf
ZGVmcyBwbGFuZXNfd2l0aF9yb29tX3RvX2luY3JlYXNlX3ZzdGFydHVwX2Rlc3RpbmF0aW9uX2xp
bmVfdGltZXNfZm9yX3ByZWZldGNoX2xlc3NfdGhhbjI7CiBlbnVtIGRjbl9id19kZWZzIHZfcmF0
aW9fcHJlZmV0Y2hfbW9yZV90aGFuNDsKIGVudW0gZGNuX2J3X2RlZnMgZGVzdGluYXRpb25fbGlu
ZV90aW1lc19mb3JfcHJlZmV0Y2hfbGVzc190aGFuMjsKIGZsb2F0IHByZWZldGNoX21vZGU7CiBm
bG9hdCBkc3R4X2FmdGVyX3NjYWxlcjsKIGZsb2F0IGRzdHlfYWZ0ZXJfc2NhbGVyOwogZmxvYXQg
dl91cGRhdGVfb2Zmc2V0X3BpeFs1ICsgMV07CiBmbG9hdCB0b3RhbF9yZXBlYXRlcl9kZWxheV90
aW1lOwogZmxvYXQgdl91cGRhdGVfd2lkdGhfcGl4WzUgKyAxXTsKIGZsb2F0IHZfcmVhZHlfb2Zm
c2V0X3BpeFs1ICsgMV07CiBmbG9hdCB0X3NldHVwOwogZmxvYXQgdF93YWl0OwogZmxvYXQgYmFu
ZHdpZHRoX2F2YWlsYWJsZV9mb3JfaW1tZWRpYXRlX2ZsaXA7CiBmbG9hdCB0b3RfaW1tZWRpYXRl
X2ZsaXBfYnl0ZXM7CiBmbG9hdCBtYXhfcmRfYmFuZHdpZHRoOwogZmxvYXQgdGltZV9mb3JfZmV0
Y2hpbmdfbWV0YV9wdGU7CiBmbG9hdCB0aW1lX2Zvcl9mZXRjaGluZ19yb3dfaW5fdmJsYW5rOwog
ZmxvYXQgbGluZXNfdG9fcmVxdWVzdF9wcmVmZXRjaF9waXhlbF9kYXRhOwogZmxvYXQgcmVxdWly
ZWRfcHJlZmV0Y2hfcGl4X2RhdGFfYnc7CiBlbnVtIGRjbl9id19kZWZzIHByZWZldGNoX21vZGVf
c3VwcG9ydGVkOwogZmxvYXQgYWN0aXZlX2RwX3BzOwogZmxvYXQgbGJfbGF0ZW5jeV9oaWRpbmdf
c291cmNlX2xpbmVzX3k7CiBmbG9hdCBsYl9sYXRlbmN5X2hpZGluZ19zb3VyY2VfbGluZXNfYzsK
IGZsb2F0IGVmZmVjdGl2ZV9sYl9sYXRlbmN5X2hpZGluZ195OwogZmxvYXQgZWZmZWN0aXZlX2xi
X2xhdGVuY3lfaGlkaW5nX2M7CiBmbG9hdCBkcHBfb3V0cHV0X2J1ZmZlcl9saW5lc195OwogZmxv
YXQgZHBwX291dHB1dF9idWZmZXJfbGluZXNfYzsKIGZsb2F0IGRwcG9wcF9idWZmZXJpbmdfeTsK
IGZsb2F0IG1heF9kZXRfYnVmZmVyaW5nX3RpbWVfeTsKIGZsb2F0IGFjdGl2ZV9kcmFtX2Nsb2Nr
X2NoYW5nZV9sYXRlbmN5X21hcmdpbl95OwogZmxvYXQgZHBwb3BwX2J1ZmZlcmluZ19jOwogZmxv
YXQgbWF4X2RldF9idWZmZXJpbmdfdGltZV9jOwogZmxvYXQgYWN0aXZlX2RyYW1fY2xvY2tfY2hh
bmdlX2xhdGVuY3lfbWFyZ2luX2M7CiBmbG9hdCB3cml0ZWJhY2tfZHJhbV9jbG9ja19jaGFuZ2Vf
bGF0ZW5jeV9tYXJnaW47CiBmbG9hdCBtaW5fYWN0aXZlX2RyYW1fY2xvY2tfY2hhbmdlX21hcmdp
bjsKIGZsb2F0IHZfYmxhbmtfb2ZfbWluX2FjdGl2ZV9kcmFtX2Nsb2NrX2NoYW5nZV9tYXJnaW47
CiBmbG9hdCBzZWNvbmRfbWluX2FjdGl2ZV9kcmFtX2Nsb2NrX2NoYW5nZV9tYXJnaW47CiBmbG9h
dCBtaW5fdmJsYW5rX2RyYW1fY2xvY2tfY2hhbmdlX21hcmdpbjsKIGZsb2F0IGRyYW1fY2xvY2tf
Y2hhbmdlX21hcmdpbjsKIGZsb2F0IGRyYW1fY2xvY2tfY2hhbmdlX3N1cHBvcnQ7CiBmbG9hdCB3
cl9iYW5kd2lkdGg7CiBmbG9hdCBtYXhfdXNlZF9idzsKfTsKCnN0cnVjdCBkY25fc29jX2JvdW5k
aW5nX2JveCB7CiBmbG9hdCBzcl9leGl0X3RpbWU7CiBmbG9hdCBzcl9lbnRlcl9wbHVzX2V4aXRf
dGltZTsKIGZsb2F0IHVyZ2VudF9sYXRlbmN5OwogZmxvYXQgd3JpdGVfYmFja19sYXRlbmN5Owog
ZmxvYXQgcGVyY2VudF9vZl9pZGVhbF9kcmFtYndfcmVjZWl2ZWRfYWZ0ZXJfdXJnX2xhdGVuY3k7
CiBpbnQgbWF4X3JlcXVlc3Rfc2l6ZTsKIGZsb2F0IGRjZmNsa3ZfbWF4MHA5OwogZmxvYXQgZGNm
Y2xrdl9ub20wcDg7CiBmbG9hdCBkY2ZjbGt2X21pZDBwNzI7CiBmbG9hdCBkY2ZjbGt2X21pbjBw
NjU7CiBmbG9hdCBtYXhfZGlzcGNsa192bWF4MHA5OwogZmxvYXQgbWF4X2Rpc3BjbGtfdm1pZDBw
NzI7CiBmbG9hdCBtYXhfZGlzcGNsa192bm9tMHA4OwogZmxvYXQgbWF4X2Rpc3BjbGtfdm1pbjBw
NjU7CiBmbG9hdCBtYXhfZHBwY2xrX3ZtYXgwcDk7CiBmbG9hdCBtYXhfZHBwY2xrX3Zub20wcDg7
CiBmbG9hdCBtYXhfZHBwY2xrX3ZtaWQwcDcyOwogZmxvYXQgbWF4X2RwcGNsa192bWluMHA2NTsK
IGZsb2F0IHNvY2NsazsKIGZsb2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGhfdm1heDBwOTsK
IGZsb2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGhfdm5vbTBwODsKIGZsb2F0IGZhYnJpY19h
bmRfZHJhbV9iYW5kd2lkdGhfdm1pZDBwNzI7CiBmbG9hdCBmYWJyaWNfYW5kX2RyYW1fYmFuZHdp
ZHRoX3ZtaW4wcDY1OwogZmxvYXQgcGh5Y2xrdl9tYXgwcDk7CiBmbG9hdCBwaHljbGt2X25vbTBw
ODsKIGZsb2F0IHBoeWNsa3ZfbWlkMHA3MjsKIGZsb2F0IHBoeWNsa3ZfbWluMHA2NTsKIGZsb2F0
IGRvd25zcHJlYWRpbmc7CiBpbnQgcm91bmRfdHJpcF9waW5nX2xhdGVuY3lfY3ljbGVzOwogaW50
IHVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsOwogaW50IG51bWJlcl9vZl9j
aGFubmVsczsKIGludCB2bW1fcGFnZV9zaXplOwogZmxvYXQgZHJhbV9jbG9ja19jaGFuZ2VfbGF0
ZW5jeTsKIGludCByZXR1cm5fYnVzX3dpZHRoOwogZmxvYXQgcGVyY2VudF9kaXNwX2J3X2xpbWl0
Owp9OwpleHRlcm4gY29uc3Qgc3RydWN0IGRjbl9zb2NfYm91bmRpbmdfYm94IGRjbjEwX3NvY19k
ZWZhdWx0czsKCnN0cnVjdCBkY25faXBfcGFyYW1zIHsKIGZsb2F0IHJvYl9idWZmZXJfc2l6ZV9p
bl9rYnl0ZTsKIGZsb2F0IGRldF9idWZmZXJfc2l6ZV9pbl9rYnl0ZTsKIGZsb2F0IGRwcF9vdXRw
dXRfYnVmZmVyX3BpeGVsczsKIGZsb2F0IG9wcF9vdXRwdXRfYnVmZmVyX2xpbmVzOwogZmxvYXQg
cGl4ZWxfY2h1bmtfc2l6ZV9pbl9rYnl0ZTsKIGVudW0gZGNuX2J3X2RlZnMgcHRlX2VuYWJsZTsK
IGludCBwdGVfY2h1bmtfc2l6ZTsKIGludCBtZXRhX2NodW5rX3NpemU7CiBpbnQgd3JpdGViYWNr
X2NodW5rX3NpemU7CiBlbnVtIGRjbl9id19kZWZzIG9kbV9jYXBhYmlsaXR5OwogZW51bSBkY25f
YndfZGVmcyBkc2NfY2FwYWJpbGl0eTsKIGludCBsaW5lX2J1ZmZlcl9zaXplOwogaW50IG1heF9s
aW5lX2J1ZmZlcl9saW5lczsKIGVudW0gZGNuX2J3X2RlZnMgaXNfbGluZV9idWZmZXJfYnBwX2Zp
eGVkOwogaW50IGxpbmVfYnVmZmVyX2ZpeGVkX2JwcDsKIGludCB3cml0ZWJhY2tfbHVtYV9idWZm
ZXJfc2l6ZTsKIGludCB3cml0ZWJhY2tfY2hyb21hX2J1ZmZlcl9zaXplOwogaW50IG1heF9udW1f
ZHBwOwogaW50IG1heF9udW1fd3JpdGViYWNrOwogaW50IG1heF9kY2h1Yl90b3BzY2xfdGhyb3Vn
aHB1dDsKIGludCBtYXhfcHNjbF90b2xiX3Rocm91Z2hwdXQ7CiBpbnQgbWF4X2xiX3RvdnNjbF90
aHJvdWdocHV0OwogaW50IG1heF92c2NsX3RvaHNjbF90aHJvdWdocHV0OwogZmxvYXQgbWF4X2hz
Y2xfcmF0aW87CiBmbG9hdCBtYXhfdnNjbF9yYXRpbzsKIGludCBtYXhfaHNjbF90YXBzOwogaW50
IG1heF92c2NsX3RhcHM7CiBpbnQgcHRlX2J1ZmZlcl9zaXplX2luX3JlcXVlc3RzOwogZmxvYXQg
ZGlzcGNsa19yYW1waW5nX21hcmdpbjsKIGZsb2F0IHVuZGVyX3NjYW5fZmFjdG9yOwogaW50IG1h
eF9pbnRlcl9kY25fdGlsZV9yZXBlYXRlcnM7CiBlbnVtIGRjbl9id19kZWZzIGNhbl92c3RhcnR1
cF9saW5lc19leGNlZWRfdnN5bmNfcGx1c19iYWNrX3BvcmNoX2xpbmVzX21pbnVzX29uZTsKIGVu
dW0gZGNuX2J3X2RlZnMgYnVnX2ZvcmNpbmdfbHVtYV9hbmRfY2hyb21hX3JlcXVlc3RfdG9fc2Ft
ZV9zaXplX2ZpeGVkOwogaW50IGRjZmNsa19jc3RhdGVfbGF0ZW5jeTsKfTsKZXh0ZXJuIGNvbnN0
IHN0cnVjdCBkY25faXBfcGFyYW1zIGRjbjEwX2lwX2RlZmF1bHRzOwoKYm9vbCBkY25fdmFsaWRh
dGVfYmFuZHdpZHRoKAogIHN0cnVjdCBkYyAqZGMsCiAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0
LAogIGJvb2wgZmFzdF92YWxpZGF0ZSk7Cgp1bnNpZ25lZCBpbnQgZGNuX2ZpbmRfZGNmY2xrX3N1
aXRzX2FsbCgKIGNvbnN0IHN0cnVjdCBkYyAqZGMsCiBzdHJ1Y3QgZGNfY2xvY2tzICpjbG9ja3Mp
OwoKdm9pZCBkY25fYndfdXBkYXRlX2Zyb21fcHBsaWIoc3RydWN0IGRjICpkYyk7CnZvaWQgZGNu
X2J3X25vdGlmeV9wcGxpYl9vZl93bV9yYW5nZXMoc3RydWN0IGRjICpkYyk7CnZvaWQgZGNuX2J3
X3N5bmNfY2FsY3NfYW5kX2RtbChzdHJ1Y3QgZGMgKmRjKTsKCmVudW0gc291cmNlX21hY3JvX3Rp
bGVfc2l6ZSBzd2l6emxlX21vZGVfdG9fbWFjcm9fdGlsZV9zaXplKGVudW0gc3dpenpsZV9tb2Rl
X3ZhbHVlcyBzd19tb2RlKTsKIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9kZGNfc2VydmljZV90eXBlcy5oIiAxCiMgMzcgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2RkY19zZXJ2aWNl
X3R5cGVzLmgiCmVudW0gZGRjX3Jlc3VsdCB7CiBERENfUkVTVUxUX1VOS05PV04gPSAwLAogRERD
X1JFU1VMVF9TVUNFU1NGVUxMLAogRERDX1JFU1VMVF9GQUlMRURfQ0hBTk5FTF9CVVNZLAogRERD
X1JFU1VMVF9GQUlMRURfVElNRU9VVCwKIEREQ19SRVNVTFRfRkFJTEVEX1BST1RPQ09MX0VSUk9S
LAogRERDX1JFU1VMVF9GQUlMRURfTkFDSywKIEREQ19SRVNVTFRfRkFJTEVEX0lOQ09NUExFVEUs
CiBERENfUkVTVUxUX0ZBSUxFRF9PUEVSQVRJT04sCiBERENfUkVTVUxUX0ZBSUxFRF9JTlZBTElE
X09QRVJBVElPTiwKIEREQ19SRVNVTFRfRkFJTEVEX0JVRkZFUl9PVkVSRkxPVywKIEREQ19SRVNV
TFRfRkFJTEVEX0hQRF9ESVNDT04KfTsKCmVudW0gZGRjX3NlcnZpY2VfdHlwZSB7CiBERENfU0VS
VklDRV9UWVBFX0NPTk5FQ1RPUiwKIEREQ19TRVJWSUNFX1RZUEVfRElTUExBWV9QT1JUX01TVCwK
fTsKCgoKCnN0cnVjdCBkaXNwbGF5X3NpbmtfY2FwYWJpbGl0eSB7CgogZW51bSBkaXNwbGF5X2Rv
bmdsZV90eXBlIGRvbmdsZV90eXBlOwoKCgoKCiB1aW50MzJfdCBkb3duc3RybV9zaW5rX2NvdW50
OwoKCiBib29sIGRvd25zdHJtX3NpbmtfY291bnRfdmFsaWQ7CgoKIHVpbnQzMl90IGFkZGl0aW9u
YWxfYXVkaW9fZGVsYXk7CgogdWludDMyX3QgYXVkaW9fbGF0ZW5jeTsKCiB1aW50MzJfdCB2aWRl
b19sYXRlbmN5X2ludGVybGFjZTsKCiB1aW50MzJfdCB2aWRlb19sYXRlbmN5X3Byb2dyZXNzaXZl
OwoKIHVpbnQzMl90IG1heF9oZG1pX3BpeGVsX2Nsb2NrOwoKIGVudW0gZGNfY29sb3JfZGVwdGgg
bWF4X2hkbWlfZGVlcF9jb2xvcjsKCgoKCgogYm9vbCBzc19zdXBwb3J0ZWQ7CgogdWludDMyX3Qg
ZHBfbGlua19sYW5lX2NvdW50OwogdWludDMyX3QgZHBfbGlua19yYXRlOwogdWludDMyX3QgZHBf
bGlua19zcGVhZDsKCgoKIGJvb2wgaXNfZHBfaGRtaV9zM2RfY29udmVydGVyOwoKCiBib29sIGlz
X2VkcF9zaW5rX2NhcF92YWxpZDsKCiBlbnVtIGRkY190cmFuc2FjdGlvbl90eXBlIHRyYW5zYWN0
aW9uX3R5cGU7CiBlbnVtIHNpZ25hbF90eXBlIHNpZ25hbDsKfTsKCnN0cnVjdCBhdl9zeW5jX2Rh
dGEgewogdWludDhfdCBhdl9ncmFudWxhcml0eTsKIHVpbnQ4X3QgYXVkX2RlY19sYXQxOwogdWlu
dDhfdCBhdWRfZGVjX2xhdDI7CiB1aW50OF90IGF1ZF9wcF9sYXQxOwogdWludDhfdCBhdWRfcHBf
bGF0MjsKIHVpbnQ4X3QgdmlkX2ludGVyX2xhdDsKIHVpbnQ4X3QgdmlkX3Byb2dfbGF0OwogdWlu
dDhfdCBhdWRfZGVsX2luczE7CiB1aW50OF90IGF1ZF9kZWxfaW5zMjsKIHVpbnQ4X3QgYXVkX2Rl
bF9pbnMzOwp9OwoKCnN0YXRpYyBjb25zdCB1aW50OF90IERQX1ZHQV9MVkRTX0NPTlZFUlRFUl9J
RF8yW10gPSAic2l2YXJUIjsKCnN0YXRpYyBjb25zdCB1aW50OF90IERQX1ZHQV9MVkRTX0NPTlZF
UlRFUl9JRF8zW10gPSAiZG5vbWxBIjsKCnN0YXRpYyBjb25zdCB1aW50OF90IERQX0RWSV9DT05W
RVJURVJfSURfNFtdID0gIm0yRFZJYSI7CiMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCgojIDEgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbWVtX2lucHV0LmgiIDEKIyAzMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tZW1faW5w
dXQuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1s
L2Rpc3BsYXlfbW9kZV9zdHJ1Y3RzLmgiIDEKIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tZW1faW5wdXQuaCIgMgoKc3RydWN0IGRjaHViX2lu
aXRfZGF0YTsKc3RydWN0IGNzdGF0ZV9wc3RhdGVfd2F0ZXJtYXJrc19zdCB7CiB1aW50MzJfdCBj
c3RhdGVfZXhpdF9uczsKIHVpbnQzMl90IGNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnM7CiB1aW50
MzJfdCBwc3RhdGVfY2hhbmdlX25zOwp9OwoKc3RydWN0IGRjbl93YXRlcm1hcmtzIHsKIHVpbnQz
Ml90IHB0ZV9tZXRhX3VyZ2VudF9uczsKIHVpbnQzMl90IHVyZ2VudF9uczsKIHVpbnQzMl90IGZy
YWNfdXJnX2J3X25vbTsKIHVpbnQzMl90IGZyYWNfdXJnX2J3X2ZsaXA7CiBpbnQzMl90IHVyZ2Vu
dF9sYXRlbmN5X25zOwogc3RydWN0IGNzdGF0ZV9wc3RhdGVfd2F0ZXJtYXJrc19zdCBjc3RhdGVf
cHN0YXRlOwp9OwoKc3RydWN0IGRjbl93YXRlcm1hcmtfc2V0IHsKIHN0cnVjdCBkY25fd2F0ZXJt
YXJrcyBhOwogc3RydWN0IGRjbl93YXRlcm1hcmtzIGI7CiBzdHJ1Y3QgZGNuX3dhdGVybWFya3Mg
YzsKIHN0cnVjdCBkY25fd2F0ZXJtYXJrcyBkOwp9OwoKc3RydWN0IGRjZV93YXRlcm1hcmtzIHsK
IGludCBhX21hcms7CiBpbnQgYl9tYXJrOwogaW50IGNfbWFyazsKIGludCBkX21hcms7Cn07Cgpz
dHJ1Y3Qgc3R1dHRlcl9tb2RlcyB7CiBib29sIGVuaGFuY2VkOwogYm9vbCBxdWFkX2RtaWZfYnVm
ZmVyOwogYm9vbCB3YXRlcm1hcmtfbmJfcHN0YXRlOwp9OwoKc3RydWN0IG1lbV9pbnB1dCB7CiBj
b25zdCBzdHJ1Y3QgbWVtX2lucHV0X2Z1bmNzICpmdW5jczsKIHN0cnVjdCBkY19jb250ZXh0ICpj
dHg7CiBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyByZXF1ZXN0X2FkZHJlc3M7CiBzdHJ1Y3QgZGNf
cGxhbmVfYWRkcmVzcyBjdXJyZW50X2FkZHJlc3M7CiBpbnQgaW5zdDsKIHN0cnVjdCBzdHV0dGVy
X21vZGVzIHN0dXR0ZXJfbW9kZTsKfTsKCnN0cnVjdCB2bV9zeXN0ZW1fYXBlcnR1cmVfcGFyYW0g
ewogdW5pb24gbGFyZ2VfaW50ZWdlciBzeXNfZGVmYXVsdDsKIHVuaW9uIGxhcmdlX2ludGVnZXIg
c3lzX2xvdzsKIHVuaW9uIGxhcmdlX2ludGVnZXIgc3lzX2hpZ2g7Cn07CgpzdHJ1Y3Qgdm1fY29u
dGV4dDBfcGFyYW0gewogdW5pb24gbGFyZ2VfaW50ZWdlciBwdGVfYmFzZTsKIHVuaW9uIGxhcmdl
X2ludGVnZXIgcHRlX3N0YXJ0OwogdW5pb24gbGFyZ2VfaW50ZWdlciBwdGVfZW5kOwogdW5pb24g
bGFyZ2VfaW50ZWdlciBmYXVsdF9kZWZhdWx0Owp9OwoKc3RydWN0IG1lbV9pbnB1dF9mdW5jcyB7
CiB2b2lkICgqbWVtX2lucHV0X3NldHVwKSgKICAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0
LAogICBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfcmVnc19zdCAqZGxnX3JlZ3MsCiAgIHN0
cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0ICp0dHVfcmVncywKICAgc3RydWN0IF92
Y3NfZHBpX2Rpc3BsYXlfcnFfcmVnc19zdCAqcnFfcmVncywKICAgc3RydWN0IF92Y3NfZHBpX2Rp
c3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCAqcGlwZV9kZXN0KTsKCiB2b2lkICgqZGNjX2NvbnRy
b2wpKHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwgYm9vbCBlbmFibGUsCiAgIGJvb2wgaW5k
ZXBlbmRlbnRfNjRiX2Jsa3MpOwogdm9pZCAoKm1lbV9wcm9ncmFtX3ZpZXdwb3J0KSgKICAgc3Ry
dWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogICBjb25zdCBzdHJ1Y3QgcmVjdCAqdmlld3BvcnQs
CiAgIGNvbnN0IHN0cnVjdCByZWN0ICp2aWV3cG9ydF9jKTsKCiB2b2lkICgqbWVtX2lucHV0X3By
b2dyYW1fZGlzcGxheV9tYXJrcykoCiAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogIHN0
cnVjdCBkY2Vfd2F0ZXJtYXJrcyBuYnAsCiAgc3RydWN0IGRjZV93YXRlcm1hcmtzIHN0dXR0ZXIs
CiAgc3RydWN0IGRjZV93YXRlcm1hcmtzIHN0dXR0ZXJfZW50ZXIsCiAgc3RydWN0IGRjZV93YXRl
cm1hcmtzIHVyZ2VudCwKICB1aW50MzJfdCB0b3RhbF9kZXN0X2xpbmVfdGltZV9ucyk7Cgogdm9p
ZCAoKm1lbV9pbnB1dF9wcm9ncmFtX2Nocm9tYV9kaXNwbGF5X21hcmtzKSgKICAgc3RydWN0IG1l
bV9pbnB1dCAqbWVtX2lucHV0LAogICBzdHJ1Y3QgZGNlX3dhdGVybWFya3MgbmJwLAogICBzdHJ1
Y3QgZGNlX3dhdGVybWFya3Mgc3R1dHRlciwKICAgc3RydWN0IGRjZV93YXRlcm1hcmtzIHVyZ2Vu
dCwKICAgdWludDMyX3QgdG90YWxfZGVzdF9saW5lX3RpbWVfbnMpOwoKIHZvaWQgKCphbGxvY2F0
ZV9tZW1faW5wdXQpKAogIHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwKICB1aW50MzJfdCBo
X3RvdGFsLAogIHVpbnQzMl90IHZfdG90YWwsCiAgdWludDMyX3QgcGl4X2Nsa19raHosCiAgdWlu
dDMyX3QgdG90YWxfc3RyZWFtc19udW0pOwoKIHZvaWQgKCpmcmVlX21lbV9pbnB1dCkoCiAgc3Ry
dWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogIHVpbnQzMl90IHBhdGhzX251bSk7CgogYm9vbCAo
Km1lbV9pbnB1dF9wcm9ncmFtX3N1cmZhY2VfZmxpcF9hbmRfYWRkcikoCiAgc3RydWN0IG1lbV9p
bnB1dCAqbWVtX2lucHV0LAogIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzICphZGRyZXNz
LAogIGJvb2wgZmxpcF9pbW1lZGlhdGUpOwoKIHZvaWQgKCptZW1faW5wdXRfcHJvZ3JhbV9wdGVf
dm0pKAogIHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwKICBlbnVtIHN1cmZhY2VfcGl4ZWxf
Zm9ybWF0IGZvcm1hdCwKICB1bmlvbiBkY190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCiAgZW51
bSBkY19yb3RhdGlvbl9hbmdsZSByb3RhdGlvbik7Cgogdm9pZCAoKm1lbV9pbnB1dF9zZXRfdm1f
c3lzdGVtX2FwZXJ0dXJlX3NldHRpbmdzKSgKICAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0
LAogICBzdHJ1Y3Qgdm1fc3lzdGVtX2FwZXJ0dXJlX3BhcmFtICphcHQpOwoKIHZvaWQgKCptZW1f
aW5wdXRfc2V0X3ZtX2NvbnRleHQwX3NldHRpbmdzKSgKICAgc3RydWN0IG1lbV9pbnB1dCAqbWVt
X2lucHV0LAogICBjb25zdCBzdHJ1Y3Qgdm1fY29udGV4dDBfcGFyYW0gKnZtMCk7Cgogdm9pZCAo
Km1lbV9pbnB1dF9wcm9ncmFtX3N1cmZhY2VfY29uZmlnKSgKICBzdHJ1Y3QgbWVtX2lucHV0ICpt
ZW1faW5wdXQsCiAgZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQsCiAgdW5pb24gZGNf
dGlsaW5nX2luZm8gKnRpbGluZ19pbmZvLAogIHN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXpl
LAogIGVudW0gZGNfcm90YXRpb25fYW5nbGUgcm90YXRpb24sCiAgc3RydWN0IGRjX3BsYW5lX2Rj
Y19wYXJhbSAqZGNjLAogIGJvb2wgaG9yaXpvbnRhbF9taXJyb3IpOwoKIGJvb2wgKCptZW1faW5w
dXRfaXNfZmxpcF9wZW5kaW5nKShzdHJ1Y3QgbWVtX2lucHV0ICptZW1faW5wdXQpOwoKIHZvaWQg
KCptZW1faW5wdXRfdXBkYXRlX2RjaHViKShzdHJ1Y3QgbWVtX2lucHV0ICptZW1faW5wdXQsCiAg
ICBzdHJ1Y3QgZGNodWJfaW5pdF9kYXRhICpkaF9kYXRhKTsKCiB2b2lkICgqc2V0X2JsYW5rKShz
dHJ1Y3QgbWVtX2lucHV0ICptaSwgYm9vbCBibGFuayk7CiB2b2lkICgqc2V0X2h1YnBfYmxhbmtf
ZW4pKHN0cnVjdCBtZW1faW5wdXQgKm1pLCBib29sIGJsYW5rKTsKCiB2b2lkICgqc2V0X2N1cnNv
cl9hdHRyaWJ1dGVzKSgKICAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogICBjb25zdCBz
dHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgKmF0dHIpOwoKIHZvaWQgKCpzZXRfY3Vyc29yX3Bv
c2l0aW9uKSgKICAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogICBjb25zdCBzdHJ1Y3Qg
ZGNfY3Vyc29yX3Bvc2l0aW9uICpwb3MsCiAgIGNvbnN0IHN0cnVjdCBkY19jdXJzb3JfbWlfcGFy
YW0gKnBhcmFtKTsKCn07CiMgMzUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9odWJwLmgiIDEKIyAyOSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9odWJwLmgiCiMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tZW1faW5wdXQuaCIgMQoj
IDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2h1
YnAuaCIgMgoKCgoKZW51bSBjdXJzb3JfcGl0Y2ggewogQ1VSU09SX1BJVENIXzY0X1BJWEVMUyA9
IDAsCiBDVVJTT1JfUElUQ0hfMTI4X1BJWEVMUywKIENVUlNPUl9QSVRDSF8yNTZfUElYRUxTCn07
CgplbnVtIGN1cnNvcl9saW5lc19wZXJfY2h1bmsgewogQ1VSU09SX0xJTkVfUEVSX0NIVU5LXzEg
PSAwLAogQ1VSU09SX0xJTkVfUEVSX0NIVU5LXzIgPSAxLAogQ1VSU09SX0xJTkVfUEVSX0NIVU5L
XzQsCiBDVVJTT1JfTElORV9QRVJfQ0hVTktfOCwKIENVUlNPUl9MSU5FX1BFUl9DSFVOS18xNgp9
OwoKZW51bSBodWJwX2luZF9ibG9ja19zaXplIHsKIGh1YnBfaW5kX2Jsb2NrX3VuY29uc3RyYWlu
ZWQgPSAwLAogaHVicF9pbmRfYmxvY2tfNjRiLAp9OwoKc3RydWN0IGh1YnAgewogY29uc3Qgc3Ry
dWN0IGh1YnBfZnVuY3MgKmZ1bmNzOwogc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKIHN0cnVjdCBk
Y19wbGFuZV9hZGRyZXNzIHJlcXVlc3RfYWRkcmVzczsKIGludCBpbnN0OwoKCiBpbnQgb3BwX2lk
OwogaW50IG1wY2NfaWQ7CiBzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgY3Vyc19hdHRyOwog
Ym9vbCBwb3dlcl9nYXRlZDsKfTsKCnN0cnVjdCBzdXJmYWNlX2ZsaXBfcmVnaXN0ZXJzIHsKIHVp
bnQzMl90IERDU1VSRl9TVVJGQUNFX0NPTlRST0w7CiB1aW50MzJfdCBEQ1NVUkZfUFJJTUFSWV9N
RVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIOwogdWludDMyX3QgRENTVVJGX1BSSU1BUllfTUVUQV9T
VVJGQUNFX0FERFJFU1M7CiB1aW50MzJfdCBEQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1Nf
SElHSDsKIHVpbnQzMl90IERDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTUzsKIHVpbnQzMl90
IERDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQzsKIHVpbnQzMl90IERD
U1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0M7CiB1aW50MzJfdCBEQ1NVUkZfUFJJ
TUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DOwogdWludDMyX3QgRENTVVJGX1BSSU1BUllfU1VS
RkFDRV9BRERSRVNTX0M7CiB1aW50MzJfdCBEQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9B
RERSRVNTX0hJR0g7CiB1aW50MzJfdCBEQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERS
RVNTOwogdWludDMyX3QgRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSDsKIHVp
bnQzMl90IERDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTOwogYm9vbCB0bXpfc3VyZmFj
ZTsKIGJvb2wgaW1tZWRpYXRlOwogdWludDhfdCB2bWlkOwogYm9vbCBncnBoX3N0ZXJlbzsKfTsK
CnN0cnVjdCBodWJwX2Z1bmNzIHsKIHZvaWQgKCpodWJwX3NldHVwKSgKICAgc3RydWN0IGh1YnAg
Kmh1YnAsCiAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbGdfcmVncywK
ICAgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfdHR1X3JlZ3Nfc3QgKnR0dV9yZWdzLAogICBzdHJ1
Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9yZWdzX3N0ICpycV9yZWdzLAogICBzdHJ1Y3QgX3Zjc19k
cGlfZGlzcGxheV9waXBlX2Rlc3RfcGFyYW1zX3N0ICpwaXBlX2Rlc3QpOwoKIHZvaWQgKCpodWJw
X3NldHVwX2ludGVyZGVwZW5kZW50KSgKICAgc3RydWN0IGh1YnAgKmh1YnAsCiAgIHN0cnVjdCBf
dmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbGdfcmVncywKICAgc3RydWN0IF92Y3NfZHBp
X2Rpc3BsYXlfdHR1X3JlZ3Nfc3QgKnR0dV9yZWdzKTsKCiB2b2lkICgqZGNjX2NvbnRyb2wpKHN0
cnVjdCBodWJwICpodWJwLCBib29sIGVuYWJsZSwKICAgZW51bSBodWJwX2luZF9ibG9ja19zaXpl
IGJsa19zaXplKTsKCiB2b2lkICgqbWVtX3Byb2dyYW1fdmlld3BvcnQpKAogICBzdHJ1Y3QgaHVi
cCAqaHVicCwKICAgY29uc3Qgc3RydWN0IHJlY3QgKnZpZXdwb3J0LAogICBjb25zdCBzdHJ1Y3Qg
cmVjdCAqdmlld3BvcnRfYyk7Cgogdm9pZCAoKmFwcGx5X1BMQVRfNTQxODZfd2EpKHN0cnVjdCBo
dWJwICpodWJwLAogICBjb25zdCBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyAqYWRkcmVzcyk7Cgog
Ym9vbCAoKmh1YnBfcHJvZ3JhbV9zdXJmYWNlX2ZsaXBfYW5kX2FkZHIpKAogIHN0cnVjdCBodWJw
ICpodWJwLAogIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzICphZGRyZXNzLAogIGJvb2wg
ZmxpcF9pbW1lZGlhdGUpOwoKIHZvaWQgKCpodWJwX3Byb2dyYW1fcHRlX3ZtKSgKICBzdHJ1Y3Qg
aHVicCAqaHVicCwKICBlbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdCwKICB1bmlvbiBk
Y190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCiAgZW51bSBkY19yb3RhdGlvbl9hbmdsZSByb3Rh
dGlvbik7Cgogdm9pZCAoKmh1YnBfc2V0X3ZtX3N5c3RlbV9hcGVydHVyZV9zZXR0aW5ncykoCiAg
IHN0cnVjdCBodWJwICpodWJwLAogICBzdHJ1Y3Qgdm1fc3lzdGVtX2FwZXJ0dXJlX3BhcmFtICph
cHQpOwoKIHZvaWQgKCpodWJwX3NldF92bV9jb250ZXh0MF9zZXR0aW5ncykoCiAgIHN0cnVjdCBo
dWJwICpodWJwLAogICBjb25zdCBzdHJ1Y3Qgdm1fY29udGV4dDBfcGFyYW0gKnZtMCk7Cgogdm9p
ZCAoKmh1YnBfcHJvZ3JhbV9zdXJmYWNlX2NvbmZpZykoCiAgc3RydWN0IGh1YnAgKmh1YnAsCiAg
ZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQsCiAgdW5pb24gZGNfdGlsaW5nX2luZm8g
KnRpbGluZ19pbmZvLAogIHN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXplLAogIGVudW0gZGNf
cm90YXRpb25fYW5nbGUgcm90YXRpb24sCiAgc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSAqZGNj
LAogIGJvb2wgaG9yaXpvbnRhbF9taXJyb3IsCiAgdW5zaWduZWQgaW50IGNvbXBhX2xldmVsKTsK
CiBib29sICgqaHVicF9pc19mbGlwX3BlbmRpbmcpKHN0cnVjdCBodWJwICpodWJwKTsKCiB2b2lk
ICgqc2V0X2JsYW5rKShzdHJ1Y3QgaHVicCAqaHVicCwgYm9vbCBibGFuayk7CiB2b2lkICgqc2V0
X2h1YnBfYmxhbmtfZW4pKHN0cnVjdCBodWJwICpodWJwLCBib29sIGJsYW5rKTsKCiB2b2lkICgq
c2V0X2N1cnNvcl9hdHRyaWJ1dGVzKSgKICAgc3RydWN0IGh1YnAgKmh1YnAsCiAgIGNvbnN0IHN0
cnVjdCBkY19jdXJzb3JfYXR0cmlidXRlcyAqYXR0cik7Cgogdm9pZCAoKnNldF9jdXJzb3JfcG9z
aXRpb24pKAogICBzdHJ1Y3QgaHVicCAqaHVicCwKICAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9w
b3NpdGlvbiAqcG9zLAogICBjb25zdCBzdHJ1Y3QgZGNfY3Vyc29yX21pX3BhcmFtICpwYXJhbSk7
Cgogdm9pZCAoKmh1YnBfZGlzY29ubmVjdCkoc3RydWN0IGh1YnAgKmh1YnApOwoKIHZvaWQgKCpo
dWJwX2Nsa19jbnRsKShzdHJ1Y3QgaHVicCAqaHVicCwgYm9vbCBlbmFibGUpOwogdm9pZCAoKmh1
YnBfdnRnX3NlbCkoc3RydWN0IGh1YnAgKmh1YnAsIHVpbnQzMl90IG90Z19pbnN0KTsKIHZvaWQg
KCpodWJwX3JlYWRfc3RhdGUpKHN0cnVjdCBodWJwICpodWJwKTsKIHZvaWQgKCpodWJwX2NsZWFy
X3VuZGVyZmxvdykoc3RydWN0IGh1YnAgKmh1YnApOwogdm9pZCAoKmh1YnBfZGlzYWJsZV9jb250
cm9sKShzdHJ1Y3QgaHVicCAqaHVicCwgYm9vbCBkaXNhYmxlX2h1YnApOwogdW5zaWduZWQgaW50
ICgqaHVicF9nZXRfdW5kZXJmbG93X3N0YXR1cykoc3RydWN0IGh1YnAgKmh1YnApOwogdm9pZCAo
Kmh1YnBfaW5pdCkoc3RydWN0IGh1YnAgKmh1YnApOwoKIHZvaWQgKCpkbWRhdGFfc2V0X2F0dHJp
YnV0ZXMpKAogICBzdHJ1Y3QgaHVicCAqaHVicCwKICAgY29uc3Qgc3RydWN0IGRjX2RtZGF0YV9h
dHRyaWJ1dGVzICphdHRyKTsKCiB2b2lkICgqZG1kYXRhX2xvYWQpKAogICBzdHJ1Y3QgaHVicCAq
aHVicCwKICAgdWludDMyX3QgZG1kYXRhX3N3X3NpemUsCiAgIGNvbnN0IHVpbnQzMl90ICpkbWRh
dGFfc3dfZGF0YSk7CiBib29sICgqZG1kYXRhX3N0YXR1c19kb25lKShzdHJ1Y3QgaHVicCAqaHVi
cCk7CiB2b2lkICgqaHVicF9lbmFibGVfdHJpcGxlQnVmZmVyKSgKICBzdHJ1Y3QgaHVicCAqaHVi
cCwKICBib29sIGVuYWJsZSk7CgogYm9vbCAoKmh1YnBfaXNfdHJpcGxlYnVmZmVyX2VuYWJsZWQp
KAogIHN0cnVjdCBodWJwICpodWJwKTsKCiB2b2lkICgqaHVicF9zZXRfZmxpcF9jb250cm9sX3N1
cmZhY2VfZ3NsKSgKICBzdHJ1Y3QgaHVicCAqaHVicCwKICBib29sIGVuYWJsZSk7Cgogdm9pZCAo
KnZhbGlkYXRlX2RtbF9vdXRwdXQpKAogICBzdHJ1Y3QgaHVicCAqaHVicCwKICAgc3RydWN0IGRj
X2NvbnRleHQgKmN0eCwKICAgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcnFfcmVnc19zdCAqZG1s
X3JxX3JlZ3MsCiAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbWxfZGxn
X2F0dHIsCiAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0ICpkbWxfdHR1X2F0
dHIpOwoKfTsKIyAzNiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2luYy9jb3JlX3R5cGVzLmgiIDIKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2luYy9ody9tcGMuaCIgMQojIDM4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoKIyAxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2R3Yi5oIiAxCiMgMzUgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvZHdiLmgiCnN0
cnVjdCBtY2lmX3diOwoKZW51bSBkY2VfdmVyc2lvbjsKCmVudW0gZHdiX3N3X3ZlcnNpb24gewog
ZHdiX3Zlcl8xXzAgPSAxLAogZHdiX3Zlcl8yXzAgPSAyLAp9OwoKZW51bSBkd2Jfc291cmNlIHsK
IGR3Yl9zcmNfc2NsID0gMCwKIGR3Yl9zcmNfYmxuZCwKIGR3Yl9zcmNfZm10LAogZHdiX3NyY19v
dGcwID0gMHgxMDAsCiBkd2Jfc3JjX290ZzEsCiBkd2Jfc3JjX290ZzIsCiBkd2Jfc3JjX290ZzMs
Cn07CgoKZW51bSBkd2JfcGlwZSB7CiBkd2JfcGlwZTAgPSAwLAoKIGR3Yl9waXBlMSwKCiBkd2Jf
cGlwZV9tYXhfbnVtLAp9OwoKZW51bSBkd2JfZnJhbWVfY2FwdHVyZV9lbmFibGUgewogRFdCX0ZS
QU1FX0NBUFRVUkVfRElTQUJMRSA9IDAsCiBEV0JfRlJBTUVfQ0FQVFVSRV9FTkFCTEUgPSAxLAp9
OwoKZW51bSB3YnNjbF9jb2VmX2ZpbHRlcl90eXBlX3NlbCB7CiBXQlNDTF9DT0VGX0xVTUFfVkVS
VF9GSUxURVIgPSAwLAogV0JTQ0xfQ09FRl9DSFJPTUFfVkVSVF9GSUxURVIgPSAxLAogV0JTQ0xf
Q09FRl9MVU1BX0hPUlpfRklMVEVSID0gMiwKIFdCU0NMX0NPRUZfQ0hST01BX0hPUlpfRklMVEVS
ID0gMwp9OwoKCnN0cnVjdCBkd2Jfd2FybXVwX3BhcmFtcyB7CiBib29sIHdhcm11cF9lbjsKIGJv
b2wgd2FybXVwX21vZGU7CiBib29sIHdhcm11cF9kZXB0aDsKIGludCB3YXJtdXBfZGF0YTsKIGlu
dCB3YXJtdXBfd2lkdGg7CiBpbnQgd2FybXVwX2hlaWdodDsKfTsKCnN0cnVjdCBkd2JfY2FwcyB7
CiBlbnVtIGRjZV92ZXJzaW9uIGh3X3ZlcnNpb247CiBlbnVtIGR3Yl9zd192ZXJzaW9uIHN3X3Zl
cnNpb247CiB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWRbNl07CiB1bnNpZ25lZCBpbnQgYWRhcHRlcl9p
ZDsKIHVuc2lnbmVkIGludCBudW1fcGlwZXM7CiBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCBzdXBw
b3J0X2R3YiA6MTsKICB1bnNpZ25lZCBpbnQgc3VwcG9ydF9vZ2FtIDoxOwogIHVuc2lnbmVkIGlu
dCBzdXBwb3J0X3dic2NsIDoxOwogIHVuc2lnbmVkIGludCBzdXBwb3J0X29jc2MgOjE7CiAgdW5z
aWduZWQgaW50IHN1cHBvcnRfc3RlcmVvIDoxOwogfSBjYXBzOwogdW5zaWduZWQgaW50IHJlc2Vy
dmVkMls5XTsKfTsKCnN0cnVjdCBkd2JjIHsKIGNvbnN0IHN0cnVjdCBkd2JjX2Z1bmNzICpmdW5j
czsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CiBpbnQgaW5zdDsKIHN0cnVjdCBtY2lmX3diICpt
Y2lmOwogYm9vbCBzdGF0dXM7CiBpbnQgaW5wdXRTcmNTZWxlY3Q7CiBib29sIGR3Yl9vdXRwdXRf
YmxhY2s7CiBlbnVtIGRjX3RyYW5zZmVyX2Z1bmNfcHJlZGVmaW5lZCB0ZjsKIGVudW0gZGNfY29s
b3Jfc3BhY2Ugb3V0cHV0X2NvbG9yX3NwYWNlOwogYm9vbCBkd2JfaXNfZWZjX3RyYW5zaXRpb247
CiBib29sIGR3Yl9pc19kcmM7CiBpbnQgd2Jfc3JjX3BsYW5lX2luc3Q7CiBib29sIHVwZGF0ZV9w
cml2YWN5bWFzazsKIHVpbnQzMl90IG1hc2tfaWQ7CiAgICAgICAgaW50IG90Z19pbnN0OwogICAg
ICAgIGJvb2wgbXZjX2NmZzsKfTsKCnN0cnVjdCBkd2JjX2Z1bmNzIHsKIGJvb2wgKCpnZXRfY2Fw
cykoCiAgc3RydWN0IGR3YmMgKmR3YmMsCiAgc3RydWN0IGR3Yl9jYXBzICpjYXBzKTsKCiBib29s
ICgqZW5hYmxlKSgKICBzdHJ1Y3QgZHdiYyAqZHdiYywKICBzdHJ1Y3QgZGNfZHdiX3BhcmFtcyAq
cGFyYW1zKTsKCiBib29sICgqZGlzYWJsZSkoc3RydWN0IGR3YmMgKmR3YmMpOwoKIGJvb2wgKCp1
cGRhdGUpKAogIHN0cnVjdCBkd2JjICpkd2JjLAogIHN0cnVjdCBkY19kd2JfcGFyYW1zICpwYXJh
bXMpOwoKIGJvb2wgKCppc19lbmFibGVkKSgKICBzdHJ1Y3QgZHdiYyAqZHdiYyk7Cgogdm9pZCAo
KnNldF9zdGVyZW8pKAogIHN0cnVjdCBkd2JjICpkd2JjLAogIHN0cnVjdCBkd2Jfc3RlcmVvX3Bh
cmFtcyAqc3RlcmVvX3BhcmFtcyk7Cgogdm9pZCAoKnNldF9uZXdfY29udGVudCkoCiAgc3RydWN0
IGR3YmMgKmR3YmMsCiAgYm9vbCBpc19uZXdfY29udGVudCk7CgoKIHZvaWQgKCpzZXRfd2FybXVw
KSgKICBzdHJ1Y3QgZHdiYyAqZHdiYywKICBzdHJ1Y3QgZHdiX3dhcm11cF9wYXJhbXMgKndhcm11
cF9wYXJhbXMpOwoKCiBib29sICgqZ2V0X2R3Yl9zdGF0dXMpKAogIHN0cnVjdCBkd2JjICpkd2Jj
KTsKIHZvaWQgKCpkd2Jfc2V0X3NjYWxlcikoCiAgc3RydWN0IGR3YmMgKmR3YmMsCiAgc3RydWN0
IGRjX2R3Yl9wYXJhbXMgKnBhcmFtcyk7Cn07CiMgNDAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tY2lmX3diLmgiIDEKIyAzMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tY2lmX3di
LmgiCmVudW0gbW1odWJidWJfd2JpZl9tb2RlIHsKIFBBQ0tFRF80NDQgPSAwLAogUEFDS0VEXzQ0
NF9GUDE2ID0gMSwKIFBMQU5BUl80MjBfOEJQQyA9IDIsCiBQTEFOQVJfNDIwXzEwQlBDID0gMwp9
OwoKc3RydWN0IG1jaWZfYXJiX3BhcmFtcyB7CgogdW5zaWduZWQgaW50IHRpbWVfcGVyX3BpeGVs
OwogdW5zaWduZWQgaW50IGNsaV93YXRlcm1hcmtbNF07CiB1bnNpZ25lZCBpbnQgcHN0YXRlX3dh
dGVybWFya1s0XTsKIHVuc2lnbmVkIGludCBhcmJpdHJhdGlvbl9zbGljZTsKIHVuc2lnbmVkIGlu
dCBzbGljZV9saW5lczsKIHVuc2lnbmVkIGludCBtYXhfc2NhbGVkX3RpbWU7Cn07CgpzdHJ1Y3Qg
bWNpZl9pcnFfcGFyYW1zIHsKIHVuc2lnbmVkIGludCBzd19pbnRfZW47CiB1bnNpZ25lZCBpbnQg
c3dfc2xpY2VfaW50X2VuOwogdW5zaWduZWQgaW50IHN3X292ZXJydW5faW50X2VuOwogdW5zaWdu
ZWQgaW50IHZjZV9pbnRfZW47CiB1bnNpZ25lZCBpbnQgdmNlX3NsaWNlX2ludF9lbjsKfTsKCgoK
c3RydWN0IG1jaWZfd2JfZnJhbWVfZHVtcF9pbmZvIHsKIHVuc2lnbmVkIGludCBzaXplOwogdW5z
aWduZWQgaW50IHdpZHRoOwogdW5zaWduZWQgaW50IGhlaWdodDsKIHVuc2lnbmVkIGludCBsdW1h
X3BpdGNoOwogdW5zaWduZWQgaW50IGNocm9tYV9waXRjaDsKIGVudW0gZHdiX3NjYWxlcl9tb2Rl
IGZvcm1hdDsKfTsKCnN0cnVjdCBtY2lmX3diIHsKIGNvbnN0IHN0cnVjdCBtY2lmX3diX2Z1bmNz
ICpmdW5jczsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CiBpbnQgaW5zdDsKfTsKCnN0cnVjdCBt
Y2lmX3diX2Z1bmNzIHsKCiB2b2lkICgqZW5hYmxlX21jaWYpKHN0cnVjdCBtY2lmX3diICptY2lm
X3diKTsKCiB2b2lkICgqZGlzYWJsZV9tY2lmKShzdHJ1Y3QgbWNpZl93YiAqbWNpZl93Yik7Cgog
dm9pZCAoKmNvbmZpZ19tY2lmX2J1ZikoCiAgc3RydWN0IG1jaWZfd2IgKm1jaWZfd2IsCiAgc3Ry
dWN0IG1jaWZfYnVmX3BhcmFtcyAqcGFyYW1zLAogIHVuc2lnbmVkIGludCBkZXN0X2hlaWdodCk7
CgogIHZvaWQgKCpjb25maWdfbWNpZl9hcmIpKAogIHN0cnVjdCBtY2lmX3diICptY2lmX3diLAog
IHN0cnVjdCBtY2lmX2FyYl9wYXJhbXMgKnBhcmFtcyk7CgogIHZvaWQgKCpjb25maWdfbWNpZl9p
cnEpKAogIHN0cnVjdCBtY2lmX3diICptY2lmX3diLAogIHN0cnVjdCBtY2lmX2lycV9wYXJhbXMg
KnBhcmFtcyk7Cgogdm9pZCAoKmR1bXBfZnJhbWUpKAogIHN0cnVjdCBtY2lmX3diICptY2lmX3di
LAogIHN0cnVjdCBtY2lmX2J1Zl9wYXJhbXMgKm1jaWZfcGFyYW1zLAogIGVudW0gZHdiX3NjYWxl
cl9tb2RlIG91dF9mb3JtYXQsCiAgdW5zaWduZWQgaW50IGRlc3Rfd2lkdGgsCiAgdW5zaWduZWQg
aW50IGRlc3RfaGVpZ2h0LAogIHN0cnVjdCBtY2lmX3diX2ZyYW1lX2R1bXBfaW5mbyAqZHVtcF9p
bmZvLAogIHVuc2lnbmVkIGNoYXIgKmx1bWFfYnVmZmVyLAogIHVuc2lnbmVkIGNoYXIgKmNocm9t
YV9idWZmZXIsCiAgdW5zaWduZWQgY2hhciAqZGVzdF9sdW1hX2J1ZmZlciwKICB1bnNpZ25lZCBj
aGFyICpkZXN0X2Nocm9tYV9idWZmZXIpOwp9OwojIDQxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoKCgp2b2lkIGVuYWJsZV9z
dXJmYWNlX2ZsaXBfcmVwb3J0aW5nKHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUs
CiAgdWludDMyX3QgY29udHJvbGxlcl9pZCk7CgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2lkLmgiIDEKIyA0OCAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgiIDIK
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2xp
bmtfZW5jb2Rlci5oIiAxCiMgNDkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9zdHJlYW1fZW5jb2Rlci5oIiAxCiMgMzEgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvc3RyZWFtX2VuY29k
ZXIuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVk
ZS9hdWRpb190eXBlcy5oIiAxCiMgMzYgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9pbmNsdWRlL2F1ZGlvX3R5cGVzLmgiCnN0cnVjdCBhdWRpb19jcnRjX2luZm8gewog
dWludDMyX3QgaF90b3RhbDsKIHVpbnQzMl90IGhfYWN0aXZlOwogdWludDMyX3Qgdl9hY3RpdmU7
CiB1aW50MzJfdCBwaXhlbF9yZXBldGl0aW9uOwogdWludDMyX3QgcmVxdWVzdGVkX3BpeGVsX2Ns
b2NrXzEwMEh6OwogdWludDMyX3QgY2FsY3VsYXRlZF9waXhlbF9jbG9ja18xMDBIejsKIHVpbnQz
Ml90IHJlZnJlc2hfcmF0ZTsKIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGg7CiBib29s
IGludGVybGFjZWQ7Cn07CnN0cnVjdCBhemFsaWFfY2xvY2tfaW5mbyB7CiB1aW50MzJfdCBwaXhl
bF9jbG9ja19pbl8xMGtoejsKIHVpbnQzMl90IGF1ZGlvX2R0b19waGFzZTsKIHVpbnQzMl90IGF1
ZGlvX2R0b19tb2R1bGU7CiB1aW50MzJfdCBhdWRpb19kdG9fd2FsbF9jbG9ja19yYXRpbzsKfTsK
CmVudW0gYXVkaW9fZHRvX3NvdXJjZSB7CiBEVE9fU09VUkNFX1VOS05PV04gPSAwLAogRFRPX1NP
VVJDRV9JRDAsCiBEVE9fU09VUkNFX0lEMSwKIERUT19TT1VSQ0VfSUQyLAogRFRPX1NPVVJDRV9J
RDMsCiBEVE9fU09VUkNFX0lENCwKIERUT19TT1VSQ0VfSUQ1Cn07CgoKCnN0cnVjdCBhdWRpb19w
bGxfaW5mbyB7CiB1aW50MzJfdCBkcF9kdG9fc291cmNlX2Nsb2NrX2luX2toejsKIHVpbnQzMl90
IGZlZWRfYmFja19kaXZpZGVyOwogZW51bSBhdWRpb19kdG9fc291cmNlIGR0b19zb3VyY2U7CiBi
b29sIHNzX2VuYWJsZWQ7CiB1aW50MzJfdCBzc19wZXJjZW50YWdlOwogdWludDMyX3Qgc3NfcGVy
Y2VudGFnZV9kaXZpZGVyOwp9OwoKc3RydWN0IGF1ZGlvX2NoYW5uZWxfYXNzb2NpYXRlX2luZm8g
ewogdW5pb24gewogIHN0cnVjdCB7CiAgIHVpbnQzMl90IEFMTF9DSEFOTkVMX0ZMOjQ7CiAgIHVp
bnQzMl90IEFMTF9DSEFOTkVMX0ZSOjQ7CiAgIHVpbnQzMl90IEFMTF9DSEFOTkVMX0ZDOjQ7CiAg
IHVpbnQzMl90IEFMTF9DSEFOTkVMX1N1Yjo0OwogICB1aW50MzJfdCBBTExfQ0hBTk5FTF9TTDo0
OwogICB1aW50MzJfdCBBTExfQ0hBTk5FTF9TUjo0OwogICB1aW50MzJfdCBBTExfQ0hBTk5FTF9C
TDo0OwogICB1aW50MzJfdCBBTExfQ0hBTk5FTF9CUjo0OwogIH0gYml0czsKICB1aW50MzJfdCB1
MzJhbGw7CiB9Owp9OwoKc3RydWN0IGF1ZGlvX291dHB1dCB7CgogZW51bSBlbmdpbmVfaWQgZW5n
aW5lX2lkOwoKIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsOwoKIHN0cnVjdCBhdWRpb19jcnRjX2lu
Zm8gY3J0Y19pbmZvOwoKIHN0cnVjdCBhdWRpb19wbGxfaW5mbyBwbGxfaW5mbzsKfTsKCmVudW0g
YXVkaW9fcGF5bG9hZCB7CiBDSEFOTkVMX1NQTElUX01BUFBJTkdDSEFORyA9IDB4OSwKfTsKIyAz
MiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9zdHJl
YW1fZW5jb2Rlci5oIiAyCgoKc3RydWN0IGRjX2Jpb3M7CnN0cnVjdCBkY19jb250ZXh0OwpzdHJ1
Y3QgZGNfY3J0Y190aW1pbmc7CgplbnVtIGRwX3BpeGVsX2VuY29kaW5nX3R5cGUgewogRFBfUElY
RUxfRU5DT0RJTkdfVFlQRV9SR0I0NDQgPSAweDAwMDAwMDAwLAogRFBfUElYRUxfRU5DT0RJTkdf
VFlQRV9ZQ0JDUjQyMiA9IDB4MDAwMDAwMDEsCiBEUF9QSVhFTF9FTkNPRElOR19UWVBFX1lDQkNS
NDQ0ID0gMHgwMDAwMDAwMiwKIERQX1BJWEVMX0VOQ09ESU5HX1RZUEVfUkdCX1dJREVfR0FNVVQg
PSAweDAwMDAwMDAzLAogRFBfUElYRUxfRU5DT0RJTkdfVFlQRV9ZX09OTFkgPSAweDAwMDAwMDA0
LAogRFBfUElYRUxfRU5DT0RJTkdfVFlQRV9ZQ0JDUjQyMCA9IDB4MDAwMDAwMDUKfTsKCmVudW0g
ZHBfY29tcG9uZW50X2RlcHRoIHsKIERQX0NPTVBPTkVOVF9QSVhFTF9ERVBUSF82QlBDID0gMHgw
MDAwMDAwMCwKIERQX0NPTVBPTkVOVF9QSVhFTF9ERVBUSF84QlBDID0gMHgwMDAwMDAwMSwKIERQ
X0NPTVBPTkVOVF9QSVhFTF9ERVBUSF8xMEJQQyA9IDB4MDAwMDAwMDIsCiBEUF9DT01QT05FTlRf
UElYRUxfREVQVEhfMTJCUEMgPSAweDAwMDAwMDAzLAogRFBfQ09NUE9ORU5UX1BJWEVMX0RFUFRI
XzE2QlBDID0gMHgwMDAwMDAwNAp9OwoKc3RydWN0IGF1ZGlvX2Nsb2NrX2luZm8gewoKIHVpbnQz
Ml90IHBpeGVsX2Nsb2NrX2luXzEwa2h6OwoKIHVpbnQzMl90IG5fMzJraHo7CgogdWludDMyX3Qg
Y3RzXzMya2h6OwogdWludDMyX3Qgbl80NGtoejsKIHVpbnQzMl90IGN0c180NGtoejsKIHVpbnQz
Ml90IG5fNDhraHo7CiB1aW50MzJfdCBjdHNfNDhraHo7Cn07CgplbnVtIGR5bmFtaWNfbWV0YWRh
dGFfbW9kZSB7CiBkbWRhdGFfZHAsCiBkbWRhdGFfaGRtaSwKIGRtZGF0YV9kb2xieV92aXNpb24K
fTsKCnN0cnVjdCBlbmNvZGVyX2luZm9fZnJhbWUgewoKIHN0cnVjdCBkY19pbmZvX3BhY2tldCBh
dmk7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgZ2FtdXQ7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQg
dmVuZG9yOwogc3RydWN0IGRjX2luZm9fcGFja2V0IGhmdnNpZjsKCiBzdHJ1Y3QgZGNfaW5mb19w
YWNrZXQgc3BkOwoKIHN0cnVjdCBkY19pbmZvX3BhY2tldCB2c2M7Cgogc3RydWN0IGRjX2luZm9f
cGFja2V0IGhkcnNtZDsKfTsKCnN0cnVjdCBlbmNvZGVyX3VuYmxhbmtfcGFyYW0gewogc3RydWN0
IGRjX2xpbmtfc2V0dGluZ3MgbGlua19zZXR0aW5nczsKIHN0cnVjdCBkY19jcnRjX3RpbWluZyB0
aW1pbmc7CiBpbnQgb3BwX2NudDsKfTsKCnN0cnVjdCBlbmNvZGVyX3NldF9kcF9waHlfcGF0dGVy
bl9wYXJhbSB7CiBlbnVtIGRwX3Rlc3RfcGF0dGVybiBkcF9waHlfcGF0dGVybjsKIGNvbnN0IHVp
bnQ4X3QgKmN1c3RvbV9wYXR0ZXJuOwogdWludDMyX3QgY3VzdG9tX3BhdHRlcm5fc2l6ZTsKIGVu
dW0gZHBfcGFuZWxfbW9kZSBkcF9wYW5lbF9tb2RlOwp9OwoKc3RydWN0IHN0cmVhbV9lbmNvZGVy
IHsKIGNvbnN0IHN0cnVjdCBzdHJlYW1fZW5jb2Rlcl9mdW5jcyAqZnVuY3M7CiBzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4Owogc3RydWN0IGRjX2Jpb3MgKmJwOwogZW51bSBlbmdpbmVfaWQgaWQ7Cn07
CgpzdHJ1Y3QgZW5jX3N0YXRlIHsKIHVpbnQzMl90IGRzY19tb2RlOwogdWludDMyX3QgZHNjX3Ns
aWNlX3dpZHRoOwogdWludDMyX3Qgc2VjX2dzcF9wcHNfbGluZV9udW07CiB1aW50MzJfdCB2Ymlk
Nl9saW5lX3JlZmVyZW5jZTsKIHVpbnQzMl90IHZiaWQ2X2xpbmVfbnVtOwogdWludDMyX3Qgc2Vj
X2dzcF9wcHNfZW5hYmxlOwogdWludDMyX3Qgc2VjX3N0cmVhbV9lbmFibGU7Cn07CgpzdHJ1Y3Qg
c3RyZWFtX2VuY29kZXJfZnVuY3Mgewogdm9pZCAoKmRwX3NldF9zdHJlYW1fYXR0cmlidXRlKSgK
ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmNy
dGNfdGltaW5nLAogIGVudW0gZGNfY29sb3Jfc3BhY2Ugb3V0cHV0X2NvbG9yX3NwYWNlLAogIGJv
b2wgdXNlX3ZzY19zZHBfZm9yX2NvbG9yaW1ldHJ5LAogIHVpbnQzMl90IGVuYWJsZV9zZHBfc3Bs
aXR0aW5nKTsKCiB2b2lkICgqaGRtaV9zZXRfc3RyZWFtX2F0dHJpYnV0ZSkoCiAgc3RydWN0IHN0
cmVhbV9lbmNvZGVyICplbmMsCiAgc3RydWN0IGRjX2NydGNfdGltaW5nICpjcnRjX3RpbWluZywK
ICBpbnQgYWN0dWFsX3BpeF9jbGtfa2h6LAogIGJvb2wgZW5hYmxlX2F1ZGlvKTsKCiB2b2lkICgq
ZHZpX3NldF9zdHJlYW1fYXR0cmlidXRlKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywK
ICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmNydGNfdGltaW5nLAogIGJvb2wgaXNfZHVhbF9saW5r
KTsKCiB2b2lkICgqbHZkc19zZXRfc3RyZWFtX2F0dHJpYnV0ZSkoCiAgc3RydWN0IHN0cmVhbV9l
bmNvZGVyICplbmMsCiAgc3RydWN0IGRjX2NydGNfdGltaW5nICpjcnRjX3RpbWluZyk7Cgogdm9p
ZCAoKnNldF9tc3RfYmFuZHdpZHRoKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKICBz
dHJ1Y3QgZml4ZWQzMV8zMiBhdmdfdGltZV9zbG90c19wZXJfbXRwKTsKCiB2b2lkICgqdXBkYXRl
X2hkbWlfaW5mb19wYWNrZXRzKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKICBjb25z
dCBzdHJ1Y3QgZW5jb2Rlcl9pbmZvX2ZyYW1lICppbmZvX2ZyYW1lKTsKCiB2b2lkICgqc3RvcF9o
ZG1pX2luZm9fcGFja2V0cykoCiAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMpOwoKIHZvaWQg
KCp1cGRhdGVfZHBfaW5mb19wYWNrZXRzKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywK
ICBjb25zdCBzdHJ1Y3QgZW5jb2Rlcl9pbmZvX2ZyYW1lICppbmZvX2ZyYW1lKTsKCiB2b2lkICgq
c2VuZF9pbW1lZGlhdGVfc2RwX21lc3NhZ2UpKAogICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICpl
bmMsCiAgICBjb25zdCB1aW50OF90ICpjdXN0b21fc2RwX21lc3NhZ2UsCiAgICB1bnNpZ25lZCBp
bnQgc2RwX21lc3NhZ2Vfc2l6ZSk7Cgogdm9pZCAoKnN0b3BfZHBfaW5mb19wYWNrZXRzKSgKICBz
dHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYyk7Cgogdm9pZCAoKmRwX2JsYW5rKSgKICBzdHJ1Y3Qg
c3RyZWFtX2VuY29kZXIgKmVuYyk7Cgogdm9pZCAoKmRwX3VuYmxhbmspKAogIHN0cnVjdCBzdHJl
YW1fZW5jb2RlciAqZW5jLAogIGNvbnN0IHN0cnVjdCBlbmNvZGVyX3VuYmxhbmtfcGFyYW0gKnBh
cmFtKTsKCiB2b2lkICgqYXVkaW9fbXV0ZV9jb250cm9sKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29k
ZXIgKmVuYywgYm9vbCBtdXRlKTsKCiB2b2lkICgqZHBfYXVkaW9fc2V0dXApKAogIHN0cnVjdCBz
dHJlYW1fZW5jb2RlciAqZW5jLAogIHVuc2lnbmVkIGludCBhel9pbnN0LAogIHN0cnVjdCBhdWRp
b19pbmZvICppbmZvKTsKCiB2b2lkICgqZHBfYXVkaW9fZW5hYmxlKSAoCiAgIHN0cnVjdCBzdHJl
YW1fZW5jb2RlciAqZW5jKTsKCiB2b2lkICgqZHBfYXVkaW9fZGlzYWJsZSkgKAogICBzdHJ1Y3Qg
c3RyZWFtX2VuY29kZXIgKmVuYyk7Cgogdm9pZCAoKmhkbWlfYXVkaW9fc2V0dXApKAogIHN0cnVj
dCBzdHJlYW1fZW5jb2RlciAqZW5jLAogIHVuc2lnbmVkIGludCBhel9pbnN0LAogIHN0cnVjdCBh
dWRpb19pbmZvICppbmZvLAogIHN0cnVjdCBhdWRpb19jcnRjX2luZm8gKmF1ZGlvX2NydGNfaW5m
byk7Cgogdm9pZCAoKmhkbWlfYXVkaW9fZGlzYWJsZSkgKAogICBzdHJ1Y3Qgc3RyZWFtX2VuY29k
ZXIgKmVuYyk7Cgogdm9pZCAoKnNldHVwX3N0ZXJlb19zeW5jKSAoCiAgIHN0cnVjdCBzdHJlYW1f
ZW5jb2RlciAqZW5jLAogICBpbnQgdGdfaW5zdCwKICAgYm9vbCBlbmFibGUpOwoKIHZvaWQgKCpz
ZXRfYXZtdXRlKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywgYm9vbCBlbmFibGUpOwoK
IHZvaWQgKCpkaWdfY29ubmVjdF90b19vdGcpKAogIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5j
LAogIGludCB0Z19pbnN0KTsKCiB2b2lkICgqaGRtaV9yZXNldF9zdHJlYW1fYXR0cmlidXRlKSgK
ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYyk7CgogdW5zaWduZWQgaW50ICgqZGlnX3NvdXJj
ZV9vdGcpKAogIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jKTsKCiBib29sICgqZHBfZ2V0X3Bp
eGVsX2Zvcm1hdCkoCiAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCiAgZW51bSBkY19waXhl
bF9lbmNvZGluZyAqZW5jb2RpbmcsCiAgZW51bSBkY19jb2xvcl9kZXB0aCAqZGVwdGgpOwoKIHZv
aWQgKCplbmNfcmVhZF9zdGF0ZSkoc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsIHN0cnVjdCBl
bmNfc3RhdGUgKnMpOwoKIHZvaWQgKCpkcF9zZXRfZHNjX2NvbmZpZykoCiAgIHN0cnVjdCBzdHJl
YW1fZW5jb2RlciAqZW5jLAogICBlbnVtIG9wdGNfZHNjX21vZGUgZHNjX21vZGUsCiAgIHVpbnQz
Ml90IGRzY19ieXRlc19wZXJfcGl4ZWwsCiAgIHVpbnQzMl90IGRzY19zbGljZV93aWR0aCk7Cgog
dm9pZCAoKmRwX3NldF9kc2NfcHBzX2luZm9fcGFja2V0KShzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIg
KmVuYywKICAgIGJvb2wgZW5hYmxlLAogICAgdWludDhfdCAqZHNjX3BhY2tlZF9wcHMpOwoKIHZv
aWQgKCpzZXRfZHluYW1pY19tZXRhZGF0YSkoc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCiAg
IGJvb2wgZW5hYmxlLAogICB1aW50MzJfdCBodWJwX3JlcXVlc3Rvcl9pZCwKICAgZW51bSBkeW5h
bWljX21ldGFkYXRhX21vZGUgZG1kYXRhX21vZGUpOwoKIHZvaWQgKCpkcF9zZXRfb2RtX2NvbWJp
bmUpKAogIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAogIGJvb2wgb2RtX2NvbWJpbmUpOwp9
OwojIDUwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2Nv
cmVfdHlwZXMuaCIgMgoKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2h3L2F1ZGlvLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2luYy9ody9hdWRpby5oIgpzdHJ1Y3QgYXVkaW87CgpzdHJ1Y3QgYXVk
aW9fZnVuY3MgewoKIGJvb2wgKCplbmRwb2ludF92YWxpZCkoc3RydWN0IGF1ZGlvICphdWRpbyk7
Cgogdm9pZCAoKmh3X2luaXQpKHN0cnVjdCBhdWRpbyAqYXVkaW8pOwoKIHZvaWQgKCphel9lbmFi
bGUpKHN0cnVjdCBhdWRpbyAqYXVkaW8pOwoKIHZvaWQgKCphel9kaXNhYmxlKShzdHJ1Y3QgYXVk
aW8gKmF1ZGlvKTsKCiB2b2lkICgqYXpfY29uZmlndXJlKShzdHJ1Y3QgYXVkaW8gKmF1ZGlvLAog
IGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsLAogIGNvbnN0IHN0cnVjdCBhdWRpb19jcnRjX2luZm8g
KmNydGNfaW5mbywKICBjb25zdCBzdHJ1Y3QgYXVkaW9faW5mbyAqYXVkaW9faW5mbyk7Cgogdm9p
ZCAoKndhbGxfZHRvX3NldHVwKShzdHJ1Y3QgYXVkaW8gKmF1ZGlvLAogIGVudW0gc2lnbmFsX3R5
cGUgc2lnbmFsLAogIGNvbnN0IHN0cnVjdCBhdWRpb19jcnRjX2luZm8gKmNydGNfaW5mbywKICBj
b25zdCBzdHJ1Y3QgYXVkaW9fcGxsX2luZm8gKnBsbF9pbmZvKTsKCiB2b2lkICgqZGVzdHJveSko
c3RydWN0IGF1ZGlvICoqYXVkaW8pOwp9OwoKc3RydWN0IGF1ZGlvIHsKIGNvbnN0IHN0cnVjdCBh
dWRpb19mdW5jcyAqZnVuY3M7CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwogdW5zaWduZWQgaW50
IGluc3Q7CiBib29sIGVuYWJsZWQ7Cn07CiMgNTIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3BwX3NtdS5oIiAxCiMgMzMgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9wcF9zbXUuaCIKdHlwZWRlZiBi
b29sIEJPT0xFQU47CgplbnVtIHBwX3NtdV92ZXIgewoKCgoKCgogUFBfU01VX1VOU1VQUE9SVEVE
LAogUFBfU01VX1ZFUl9SViwKIFBQX1NNVV9WRVJfTlYsCiBQUF9TTVVfVkVSX1JOLAoKIFBQX1NN
VV9WRVJfTUFYCn07CgpzdHJ1Y3QgcHBfc211IHsKIGVudW0gcHBfc211X3ZlciB2ZXI7CiBjb25z
dCB2b2lkICpwcDsKCgoKCgoKIGNvbnN0IHZvaWQgKmRtOwp9OwoKZW51bSBwcF9zbXVfc3RhdHVz
IHsKIFBQX1NNVV9SRVNVTFRfVU5ERUZJTkVEID0gMCwKIFBQX1NNVV9SRVNVTFRfT0sgPSAxLAog
UFBfU01VX1JFU1VMVF9GQUlMLAogUFBfU01VX1JFU1VMVF9VTlNVUFBPUlRFRAp9OwoKCgoKZW51
bSB3bV90eXBlIHsKIFdNX1RZUEVfUFNUQVRFX0NIRyA9IDAsCiBXTV9UWVBFX1JFVFJBSU5JTkcg
PSAxLAp9OwoKCnN0cnVjdCBwcF9zbXVfd21fc2V0X3JhbmdlIHsKIHVpbnQxNl90IG1pbl9maWxs
X2Nsa19taHo7CiB1aW50MTZfdCBtYXhfZmlsbF9jbGtfbWh6OwogdWludDE2X3QgbWluX2RyYWlu
X2Nsa19taHo7CiB1aW50MTZfdCBtYXhfZHJhaW5fY2xrX21oejsKCiB1aW50OF90IHdtX2luc3Q7
CiB1aW50OF90IHdtX3R5cGU7Cn07CgoKCnN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vfc2V0cyB7CiB1
bnNpZ25lZCBpbnQgbnVtX3JlYWRlcl93bV9zZXRzOwogc3RydWN0IHBwX3NtdV93bV9zZXRfcmFu
Z2UgcmVhZGVyX3dtX3NldHNbNF07CgogdW5zaWduZWQgaW50IG51bV93cml0ZXJfd21fc2V0czsK
IHN0cnVjdCBwcF9zbXVfd21fc2V0X3JhbmdlIHdyaXRlcl93bV9zZXRzWzRdOwp9OwoKc3RydWN0
IHBwX3NtdV9mdW5jc19ydiB7CiBzdHJ1Y3QgcHBfc211IHBwX3NtdTsKCgoKCgogdm9pZCAoKnNl
dF9kaXNwbGF5X2NvdW50KShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IGNvdW50KTsKIyAxMTQgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9wcF9zbXUuaCIKIHZv
aWQgKCpzZXRfd21fcmFuZ2VzKShzdHJ1Y3QgcHBfc211ICpwcCwKICAgc3RydWN0IHBwX3NtdV93
bV9yYW5nZV9zZXRzICpyYW5nZXMpOwoKCgoKIHZvaWQgKCpzZXRfaGFyZF9taW5fZGNmY2xrX2J5
X2ZyZXEpKHN0cnVjdCBwcF9zbXUgKnBwLCBpbnQgbWh6KTsKCgoKCgogdm9pZCAoKnNldF9taW5f
ZGVlcF9zbGVlcF9kY2ZjbGspKHN0cnVjdCBwcF9zbXUgKnBwLCBpbnQgbWh6KTsKCgoKCiB2b2lk
ICgqc2V0X2hhcmRfbWluX2ZjbGtfYnlfZnJlcSkoc3RydWN0IHBwX3NtdSAqcHAsIGludCBtaHop
OwoKCgoKIHZvaWQgKCpzZXRfaGFyZF9taW5fc29jY2xrX2J5X2ZyZXEpKHN0cnVjdCBwcF9zbXUg
KnBwLCBpbnQgbWh6KTsKCgogdm9pZCAoKnNldF9wbWVfd2FfZW5hYmxlKShzdHJ1Y3QgcHBfc211
ICpwcCk7Cn07CgoKCgplbnVtIHBwX3NtdV9udl9jbG9ja19pZCB7CiBQUF9TTVVfTlZfRElTUENM
SywKIFBQX1NNVV9OVl9QSFlDTEssCiBQUF9TTVVfTlZfUElYRUxDTEsKfTsKCgoKCnN0cnVjdCBw
cF9zbXVfbnZfY2xvY2tfdGFibGUgewoKIHVuc2lnbmVkIGludCBkaXNwbGF5Q2xvY2tJbktoejsK
IHVuc2lnbmVkIGludCBkcHBDbG9ja0luS2h6OwogdW5zaWduZWQgaW50IHBoeUNsb2NrSW5LaHo7
CiB1bnNpZ25lZCBpbnQgcGl4ZWxDbG9ja0luS2h6OwogdW5zaWduZWQgaW50IGRzY0Nsb2NrSW5L
aHo7CgoKIHVuc2lnbmVkIGludCBmYWJyaWNDbG9ja0luS2h6OwogdW5zaWduZWQgaW50IHNvY0Ns
b2NrSW5LaHo7CiB1bnNpZ25lZCBpbnQgZGNmQ2xvY2tJbktoejsKIHVuc2lnbmVkIGludCB1Q2xv
Y2tJbktoejsKfTsKCnN0cnVjdCBwcF9zbXVfZnVuY3NfbnYgewogc3RydWN0IHBwX3NtdSBwcF9z
bXU7CgoKCgogZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X2Rpc3BsYXlfY291bnQpKHN0cnVjdCBw
cF9zbXUgKnBwLCBpbnQgY291bnQpOwoKCgoKIGVudW0gcHBfc211X3N0YXR1cyAoKnNldF9oYXJk
X21pbl9kY2ZjbGtfYnlfZnJlcSkoc3RydWN0IHBwX3NtdSAqcHAsIGludCBNaHopOwoKCgoKCiBl
bnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfbWluX2RlZXBfc2xlZXBfZGNmY2xrKShzdHJ1Y3QgcHBf
c211ICpwcCwgaW50IE1oeik7CgoKCgogZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X2hhcmRfbWlu
X3VjbGtfYnlfZnJlcSkoc3RydWN0IHBwX3NtdSAqcHAsIGludCBNaHopOwoKCgoKIGVudW0gcHBf
c211X3N0YXR1cyAoKnNldF9oYXJkX21pbl9zb2NjbGtfYnlfZnJlcSkoc3RydWN0IHBwX3NtdSAq
cHAsIGludCBNaHopOwoKCiBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfcG1lX3dhX2VuYWJsZSko
c3RydWN0IHBwX3NtdSAqcHApOwoKCgoKIGVudW0gcHBfc211X3N0YXR1cyAoKnNldF92b2x0YWdl
X2J5X2ZyZXEpKHN0cnVjdCBwcF9zbXUgKnBwLAogICBlbnVtIHBwX3NtdV9udl9jbG9ja19pZCBj
bG9ja19pZCwgaW50IE1oeik7CiMgMjE5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZG1fcHBfc211LmgiCiBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfd21fcmFu
Z2VzKShzdHJ1Y3QgcHBfc211ICpwcCwKICAgc3RydWN0IHBwX3NtdV93bV9yYW5nZV9zZXRzICpy
YW5nZXMpOwoKCgoKIGVudW0gcHBfc211X3N0YXR1cyAoKmdldF9tYXhpbXVtX3N1c3RhaW5hYmxl
X2Nsb2Nrcykoc3RydWN0IHBwX3NtdSAqcHAsCiAgIHN0cnVjdCBwcF9zbXVfbnZfY2xvY2tfdGFi
bGUgKm1heF9jbG9ja3MpOwoKCgogZW51bSBwcF9zbXVfc3RhdHVzICgqZ2V0X3VjbGtfZHBtX3N0
YXRlcykoc3RydWN0IHBwX3NtdSAqcHAsCiAgIHVuc2lnbmVkIGludCAqY2xvY2tfdmFsdWVzX2lu
X2toeiwgdW5zaWduZWQgaW50ICpudW1fc3RhdGVzKTsKIyAyNDIgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9wcF9zbXUuaCIKIGVudW0gcHBfc211X3N0YXR1
cyAoKnNldF9wc3RhdGVfaGFuZHNoYWtlX3N1cHBvcnQpKHN0cnVjdCBwcF9zbXUgKnBwLAogICBC
T09MRUFOIHBzdGF0ZV9oYW5kc2hha2Vfc3VwcG9ydGVkKTsKfTsKCgoKCgoKc3RydWN0IGRwbV9j
bG9jayB7CiAgdWludDMyX3QgRnJlcTsKICB1aW50MzJfdCBWb2w7Cn07CgoKCnN0cnVjdCBkcG1f
Y2xvY2tzIHsKIHN0cnVjdCBkcG1fY2xvY2sgRGNmQ2xvY2tzWzhdOwogc3RydWN0IGRwbV9jbG9j
ayBTb2NDbG9ja3NbOF07CiBzdHJ1Y3QgZHBtX2Nsb2NrIEZDbG9ja3NbNF07CiBzdHJ1Y3QgZHBt
X2Nsb2NrIE1lbUNsb2Nrc1s0XTsKfTsKCgpzdHJ1Y3QgcHBfc211X2Z1bmNzX3JuIHsKIHN0cnVj
dCBwcF9zbXUgcHBfc211OwojIDI3NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RtX3BwX3NtdS5oIgogZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X3dtX3Jhbmdl
cykoc3RydWN0IHBwX3NtdSAqcHAsCiAgIHN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vfc2V0cyAqcmFu
Z2VzKTsKCiBlbnVtIHBwX3NtdV9zdGF0dXMgKCpnZXRfZHBtX2Nsb2NrX3RhYmxlKSAoc3RydWN0
IHBwX3NtdSAqcHAsCiAgIHN0cnVjdCBkcG1fY2xvY2tzICpjbG9ja190YWJsZSk7Cn07CgpzdHJ1
Y3QgcHBfc211X2Z1bmNzIHsKIHN0cnVjdCBwcF9zbXUgY3R4OwogdW5pb24gewogIHN0cnVjdCBw
cF9zbXVfZnVuY3NfcnYgcnZfZnVuY3M7CiAgc3RydWN0IHBwX3NtdV9mdW5jc19udiBudl9mdW5j
czsKICBzdHJ1Y3QgcHBfc211X2Z1bmNzX3JuIHJuX2Z1bmNzOwoKIH07Cn07CiMgNTMgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAy
CgoKCgoKc3RydWN0IGxpbmtfaW5pdF9kYXRhIHsKIGNvbnN0IHN0cnVjdCBkYyAqZGM7CiBzdHJ1
Y3QgZGNfY29udGV4dCAqY3R4OwogdWludDMyX3QgY29ubmVjdG9yX2luZGV4OwogdWludDMyX3Qg
bGlua19pbmRleDsKCn07CgpzdHJ1Y3QgZGNfbGluayAqbGlua19jcmVhdGUoY29uc3Qgc3RydWN0
IGxpbmtfaW5pdF9kYXRhICppbml0X3BhcmFtcyk7CnZvaWQgbGlua19kZXN0cm95KHN0cnVjdCBk
Y19saW5rICoqbGluayk7CgplbnVtIGRjX3N0YXR1cyBkY19saW5rX3ZhbGlkYXRlX21vZGVfdGlt
aW5nKAogIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKICBzdHJ1Y3QgZGNf
bGluayAqbGluaywKICBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZyk7Cgp2b2lk
IGNvcmVfbGlua19yZXN1bWUoc3RydWN0IGRjX2xpbmsgKmxpbmspOwoKdm9pZCBjb3JlX2xpbmtf
ZW5hYmxlX3N0cmVhbSgKICBzdHJ1Y3QgZGNfc3RhdGUgKnN0YXRlLAogIHN0cnVjdCBwaXBlX2N0
eCAqcGlwZV9jdHgpOwoKdm9pZCBjb3JlX2xpbmtfZGlzYWJsZV9zdHJlYW0oc3RydWN0IHBpcGVf
Y3R4ICpwaXBlX2N0eCk7Cgp2b2lkIGNvcmVfbGlua19zZXRfYXZtdXRlKHN0cnVjdCBwaXBlX2N0
eCAqcGlwZV9jdHgsIGJvb2wgZW5hYmxlKTsKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody90cmFuc2Zvcm0uaCIgMQojIDg1ICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgojIDEg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvZHBwLmgi
IDEKIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9o
dy9kcHAuaCIKc3RydWN0IGRwcCB7CiBjb25zdCBzdHJ1Y3QgZHBwX2Z1bmNzICpmdW5jczsKIHN0
cnVjdCBkY19jb250ZXh0ICpjdHg7CiBpbnQgaW5zdDsKIHN0cnVjdCBkcHBfY2FwcyAqY2FwczsK
IHN0cnVjdCBwd2xfcGFyYW1zIHJlZ2FtbWFfcGFyYW1zOwogc3RydWN0IHB3bF9wYXJhbXMgZGVn
YW1tYV9wYXJhbXM7CiBzdHJ1Y3QgZHBwX2N1cnNvcl9hdHRyaWJ1dGVzIGN1cl9hdHRyOwoKIHN0
cnVjdCBwd2xfcGFyYW1zIHNoYXBlcl9wYXJhbXM7CiBib29sIGNtX2J5cGFzc19tb2RlOwp9OwoK
c3RydWN0IGRwcF9pbnB1dF9jc2NfbWF0cml4IHsKIGVudW0gZGNfY29sb3Jfc3BhY2UgY29sb3Jf
c3BhY2U7CiB1aW50MTZfdCByZWd2YWxbMTJdOwp9OwoKc3RhdGljIGNvbnN0IHN0cnVjdCBkcHBf
aW5wdXRfY3NjX21hdHJpeCBkcHBfaW5wdXRfY3NjX21hdHJpeFtdID0gewoge0NPTE9SX1NQQUNF
X1NSR0IsCiAgezB4MjAwMCwgMCwgMCwgMCwgMCwgMHgyMDAwLCAwLCAwLCAwLCAwLCAweDIwMDAs
IDB9IH0sCiB7Q09MT1JfU1BBQ0VfU1JHQl9MSU1JVEVELAogIHsweDIwMDAsIDAsIDAsIDAsIDAs
IDB4MjAwMCwgMCwgMCwgMCwgMCwgMHgyMDAwLCAwfSB9LAoge0NPTE9SX1NQQUNFX1lDQkNSNjAx
LAogIHsweDJjZGQsIDB4MjAwMCwgMCwgMHhlOTkxLCAweGU5MjYsIDB4MjAwMCwgMHhmNGZkLCAw
eDEwZWYsCiAgICAgIDAsIDB4MjAwMCwgMHgzOGI0LCAweGUzYTZ9IH0sCiB7Q09MT1JfU1BBQ0Vf
WUNCQ1I2MDFfTElNSVRFRCwKICB7MHgzMzUzLCAweDI1NjgsIDAsIDB4ZTQwMCwgMHhlNWRjLCAw
eDI1NjgsIDB4ZjM2NywgMHgxMTA4LAogICAgICAwLCAweDI1NjgsIDB4NDBkZSwgMHhkZDNhfSB9
LAoge0NPTE9SX1NQQUNFX1lDQkNSNzA5LAogIHsweDMyNjUsIDB4MjAwMCwgMCwgMHhlNmNlLCAw
eGYxMDUsIDB4MjAwMCwgMHhmYTAxLCAweGE3ZCwgMCwKICAgICAgMHgyMDAwLCAweDNiNjEsIDB4
ZTI0Zn0gfSwKCiB7Q09MT1JfU1BBQ0VfWUNCQ1I3MDlfTElNSVRFRCwKICB7MHgzOWE2LCAweDI1
NjgsIDAsIDB4ZTBkNiwgMHhlZWRkLCAweDI1NjgsIDB4ZjkyNSwgMHg5YTgsIDAsCiAgICAgIDB4
MjU2OCwgMHg0M2VlLCAweGRiYjJ9IH0KfTsKCnN0cnVjdCBkcHBfZ3JwaF9jc2NfYWRqdXN0bWVu
dCB7CiBzdHJ1Y3QgZml4ZWQzMV8zMiB0ZW1wZXJhdHVyZV9tYXRyaXhbMTJdOwogZW51bSBncmFw
aGljc19nYW11dF9hZGp1c3RfdHlwZSBnYW11dF9hZGp1c3RfdHlwZTsKfTsKCnN0cnVjdCBjbnZf
Y29sb3Jfa2V5ZXJfcGFyYW1zIHsKIGludCBjb2xvcl9rZXllcl9lbjsKIGludCBjb2xvcl9rZXll
cl9tb2RlOwogaW50IGNvbG9yX2tleWVyX2FscGhhX2xvdzsKIGludCBjb2xvcl9rZXllcl9hbHBo
YV9oaWdoOwogaW50IGNvbG9yX2tleWVyX3JlZF9sb3c7CiBpbnQgY29sb3Jfa2V5ZXJfcmVkX2hp
Z2g7CiBpbnQgY29sb3Jfa2V5ZXJfZ3JlZW5fbG93OwogaW50IGNvbG9yX2tleWVyX2dyZWVuX2hp
Z2g7CiBpbnQgY29sb3Jfa2V5ZXJfYmx1ZV9sb3c7CiBpbnQgY29sb3Jfa2V5ZXJfYmx1ZV9oaWdo
Owp9OwoKCgoKCgoKc3RydWN0IGNudl9hbHBoYV8yYml0X2x1dCB7CiBpbnQgbHV0MDsKIGludCBs
dXQxOwogaW50IGx1dDI7CiBpbnQgbHV0MzsKfTsKCnN0cnVjdCBkY25fZHBwX3N0YXRlIHsKIHVp
bnQzMl90IGlzX2VuYWJsZWQ7CiB1aW50MzJfdCBpZ2FtX2x1dF9tb2RlOwogdWludDMyX3QgaWdh
bV9pbnB1dF9mb3JtYXQ7CiB1aW50MzJfdCBkZ2FtX2x1dF9tb2RlOwogdWludDMyX3QgcmdhbV9s
dXRfbW9kZTsKIHVpbnQzMl90IGdhbXV0X3JlbWFwX21vZGU7CiB1aW50MzJfdCBnYW11dF9yZW1h
cF9jMTFfYzEyOwogdWludDMyX3QgZ2FtdXRfcmVtYXBfYzEzX2MxNDsKIHVpbnQzMl90IGdhbXV0
X3JlbWFwX2MyMV9jMjI7CiB1aW50MzJfdCBnYW11dF9yZW1hcF9jMjNfYzI0OwogdWludDMyX3Qg
Z2FtdXRfcmVtYXBfYzMxX2MzMjsKIHVpbnQzMl90IGdhbXV0X3JlbWFwX2MzM19jMzQ7Cn07Cgpz
dHJ1Y3QgQ01fYmlhc19wYXJhbXMgewogdWludDMyX3QgY21fYmlhc19jcl9yOwogdWludDMyX3Qg
Y21fYmlhc195X2c7CiB1aW50MzJfdCBjbV9iaWFzX2NiX2I7CiB1aW50MzJfdCBjbV9iaWFzX2Zv
cm1hdDsKfTsKCnN0cnVjdCBkcHBfZnVuY3MgewoKIHZvaWQgKCpkcHBfcHJvZ3JhbV9jbV9kZWFs
cGhhKShzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKICB1aW50MzJfdCBlbmFibGUsIHVpbnQzMl90IGFk
ZGl0aXZlX2JsZW5kaW5nKTsKCiB2b2lkICgqZHBwX3Byb2dyYW1fY21fYmlhcykoCiAgc3RydWN0
IGRwcCAqZHBwX2Jhc2UsCiAgc3RydWN0IENNX2JpYXNfcGFyYW1zICpiaWFzX3BhcmFtcyk7Cgog
dm9pZCAoKmRwcF9yZWFkX3N0YXRlKShzdHJ1Y3QgZHBwICpkcHAsIHN0cnVjdCBkY25fZHBwX3N0
YXRlICpzKTsKCiB2b2lkICgqZHBwX3Jlc2V0KShzdHJ1Y3QgZHBwICpkcHApOwoKIHZvaWQgKCpk
cHBfc2V0X3NjYWxlcikoc3RydWN0IGRwcCAqZHBwLAogICBjb25zdCBzdHJ1Y3Qgc2NhbGVyX2Rh
dGEgKnNjbF9kYXRhKTsKCiB2b2lkICgqZHBwX3NldF9waXhlbF9zdG9yYWdlX2RlcHRoKSgKICAg
c3RydWN0IGRwcCAqZHBwLAogICBlbnVtIGxiX3BpeGVsX2RlcHRoIGRlcHRoLAogICBjb25zdCBz
dHJ1Y3QgYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJhbXMgKmJpdF9kZXB0aF9wYXJhbXMpOwoKIGJv
b2wgKCpkcHBfZ2V0X29wdGltYWxfbnVtYmVyX29mX3RhcHMpKAogICBzdHJ1Y3QgZHBwICpkcHAs
CiAgIHN0cnVjdCBzY2FsZXJfZGF0YSAqc2NsX2RhdGEsCiAgIGNvbnN0IHN0cnVjdCBzY2FsaW5n
X3RhcHMgKmluX3RhcHMpOwoKIHZvaWQgKCpkcHBfc2V0X2dhbXV0X3JlbWFwKSgKICAgc3RydWN0
IGRwcCAqZHBwLAogICBjb25zdCBzdHJ1Y3QgZHBwX2dycGhfY3NjX2FkanVzdG1lbnQgKmFkanVz
dCk7Cgogdm9pZCAoKmRwcF9zZXRfY3NjX2RlZmF1bHQpKAogIHN0cnVjdCBkcHAgKmRwcCwKICBl
bnVtIGRjX2NvbG9yX3NwYWNlIGNvbG9yc3BhY2UpOwoKIHZvaWQgKCpkcHBfc2V0X2NzY19hZGp1
c3RtZW50KSgKICBzdHJ1Y3QgZHBwICpkcHAsCiAgY29uc3QgdWludDE2X3QgKnJlZ3ZhbCk7Cgog
dm9pZCAoKmRwcF9wb3dlcl9vbl9yZWdhbW1hX2x1dCkoCiAgc3RydWN0IGRwcCAqZHBwLAogIGJv
b2wgcG93ZXJfb24pOwoKIHZvaWQgKCpkcHBfcHJvZ3JhbV9yZWdhbW1hX2x1dCkoCiAgIHN0cnVj
dCBkcHAgKmRwcCwKICAgY29uc3Qgc3RydWN0IHB3bF9yZXN1bHRfZGF0YSAqcmdiLAogICB1aW50
MzJfdCBudW0pOwoKIHZvaWQgKCpkcHBfY29uZmlndXJlX3JlZ2FtbWFfbHV0KSgKICAgc3RydWN0
IGRwcCAqZHBwLAogICBib29sIGlzX3JhbV9hKTsKCiB2b2lkICgqZHBwX3Byb2dyYW1fcmVnYW1t
YV9sdXRiX3NldHRpbmdzKSgKICAgc3RydWN0IGRwcCAqZHBwLAogICBjb25zdCBzdHJ1Y3QgcHds
X3BhcmFtcyAqcGFyYW1zKTsKCiB2b2lkICgqZHBwX3Byb2dyYW1fcmVnYW1tYV9sdXRhX3NldHRp
bmdzKSgKICAgc3RydWN0IGRwcCAqZHBwLAogICBjb25zdCBzdHJ1Y3QgcHdsX3BhcmFtcyAqcGFy
YW1zKTsKCiB2b2lkICgqZHBwX3Byb2dyYW1fcmVnYW1tYV9wd2wpKAogIHN0cnVjdCBkcHAgKmRw
cCwKICBjb25zdCBzdHJ1Y3QgcHdsX3BhcmFtcyAqcGFyYW1zLAogIGVudW0gb3BwX3JlZ2FtbWEg
bW9kZSk7Cgogdm9pZCAoKmRwcF9wcm9ncmFtX2JpYXNfYW5kX3NjYWxlKSgKICAgc3RydWN0IGRw
cCAqZHBwLAogICBzdHJ1Y3QgZGNfYmlhc19hbmRfc2NhbGUgKnBhcmFtcyk7Cgogdm9pZCAoKmRw
cF9zZXRfZGVnYW1tYSkoCiAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAogICBlbnVtIGlwcF9kZWdh
bW1hX21vZGUgbW9kZSk7Cgogdm9pZCAoKmRwcF9wcm9ncmFtX2lucHV0X2x1dCkoCiAgIHN0cnVj
dCBkcHAgKmRwcF9iYXNlLAogICBjb25zdCBzdHJ1Y3QgZGNfZ2FtbWEgKmdhbW1hKTsKCiB2b2lk
ICgqZHBwX3Byb2dyYW1fZGVnYW1tYV9wd2wpKHN0cnVjdCBkcHAgKmRwcF9iYXNlLAogICAgICAg
ICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFtcyk7Cgogdm9pZCAoKmRwcF9zZXR1cCko
CiAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAogICBlbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZv
cm1hdCwKICAgZW51bSBleHBhbnNpb25fbW9kZSBtb2RlLAogICBzdHJ1Y3QgZGNfY3NjX3RyYW5z
Zm9ybSBpbnB1dF9jc2NfY29sb3JfbWF0cml4LAogICBlbnVtIGRjX2NvbG9yX3NwYWNlIGlucHV0
X2NvbG9yX3NwYWNlLAogICBzdHJ1Y3QgY252X2FscGhhXzJiaXRfbHV0ICphbHBoYV8yYml0X2x1
dCk7Cgogdm9pZCAoKmRwcF9mdWxsX2J5cGFzcykoc3RydWN0IGRwcCAqZHBwX2Jhc2UpOwoKIHZv
aWQgKCpzZXRfY3Vyc29yX2F0dHJpYnV0ZXMpKAogICBzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKICAg
c3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzICpjdXJzb3JfYXR0cmlidXRlcyk7Cgogdm9pZCAo
KnNldF9jdXJzb3JfcG9zaXRpb24pKAogICBzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKICAgY29uc3Qg
c3RydWN0IGRjX2N1cnNvcl9wb3NpdGlvbiAqcG9zLAogICBjb25zdCBzdHJ1Y3QgZGNfY3Vyc29y
X21pX3BhcmFtICpwYXJhbSwKICAgdWludDMyX3Qgd2lkdGgsCiAgIHVpbnQzMl90IGhlaWdodAog
ICApOwoKIHZvaWQgKCpkcHBfc2V0X2hkcl9tdWx0aXBsaWVyKSgKICAgc3RydWN0IGRwcCAqZHBw
X2Jhc2UsCiAgIHVpbnQzMl90IG11bHRpcGxpZXIpOwoKIHZvaWQgKCpzZXRfb3B0aW9uYWxfY3Vy
c29yX2F0dHJpYnV0ZXMpKAogICBzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKICAgc3RydWN0IGRwcF9j
dXJzb3JfYXR0cmlidXRlcyAqYXR0cik7Cgogdm9pZCAoKmRwcF9kcHBjbGtfY29udHJvbCkoCiAg
IHN0cnVjdCBkcHAgKmRwcF9iYXNlLAogICBib29sIGRwcGNsa19kaXYsCiAgIGJvb2wgZW5hYmxl
KTsKCiBib29sICgqZHBwX3Byb2dyYW1fYmxuZF9sdXQpKAogICBzdHJ1Y3QgZHBwICpkcHAsCiAg
IGNvbnN0IHN0cnVjdCBwd2xfcGFyYW1zICpwYXJhbXMpOwogYm9vbCAoKmRwcF9wcm9ncmFtX3No
YXBlcl9sdXQpKAogICBzdHJ1Y3QgZHBwICpkcHAsCiAgIGNvbnN0IHN0cnVjdCBwd2xfcGFyYW1z
ICpwYXJhbXMpOwogYm9vbCAoKmRwcF9wcm9ncmFtXzNkbHV0KSgKICAgc3RydWN0IGRwcCAqZHBw
LAogICBzdHJ1Y3QgdGV0cmFoZWRyYWxfcGFyYW1zICpwYXJhbXMpOwogdm9pZCAoKmRwcF9jbnZf
c2V0X2FscGhhX2tleWVyKSgKICAgc3RydWN0IGRwcCAqZHBwX2Jhc2UsCiAgIHN0cnVjdCBjbnZf
Y29sb3Jfa2V5ZXJfcGFyYW1zICpjb2xvcl9rZXllcik7Cn07CiMgODYgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCgpzdHJ1Y3Qg
cmVzb3VyY2VfcG9vbDsKc3RydWN0IGRjX3N0YXRlOwpzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dDsK
c3RydWN0IGNsa19id19wYXJhbXM7CgpzdHJ1Y3QgcmVzb3VyY2VfZnVuY3Mgewogdm9pZCAoKmRl
c3Ryb3kpKHN0cnVjdCByZXNvdXJjZV9wb29sICoqcG9vbCk7CiB2b2lkICgqbGlua19pbml0KShz
dHJ1Y3QgZGNfbGluayAqbGluayk7CiBzdHJ1Y3QgbGlua19lbmNvZGVyICooKmxpbmtfZW5jX2Ny
ZWF0ZSkoCiAgIGNvbnN0IHN0cnVjdCBlbmNvZGVyX2luaXRfZGF0YSAqaW5pdCk7CiBib29sICgq
dmFsaWRhdGVfYmFuZHdpZHRoKSgKICAgICBzdHJ1Y3QgZGMgKmRjLAogICAgIHN0cnVjdCBkY19z
dGF0ZSAqY29udGV4dCwKICAgICBib29sIGZhc3RfdmFsaWRhdGUpOwoKIGludCAoKnBvcHVsYXRl
X2RtbF9waXBlcykoCiAgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQs
CiAgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzKTsKCiBlbnVtIGRjX3N0YXR1cyAo
KnZhbGlkYXRlX2dsb2JhbCkoCiAgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNv
bnRleHQpOwoKIHN0cnVjdCBwaXBlX2N0eCAqKCphY3F1aXJlX2lkbGVfcGlwZV9mb3JfbGF5ZXIp
KAogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9w
b29sICpwb29sLAogICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoKIGVudW0gZGNf
c3RhdHVzICgqdmFsaWRhdGVfcGxhbmUpKGNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxh
bmVfc3RhdGUsIHN0cnVjdCBkY19jYXBzICpjYXBzKTsKCiBlbnVtIGRjX3N0YXR1cyAoKmFkZF9z
dHJlYW1fdG9fY3R4KSgKICAgc3RydWN0IGRjICpkYywKICAgc3RydWN0IGRjX3N0YXRlICpuZXdf
Y3R4LAogICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpkY19zdHJlYW0pOwoKIGVudW0gZGNfc3Rh
dHVzICgqcmVtb3ZlX3N0cmVhbV9mcm9tX2N0eCkoCiAgICBzdHJ1Y3QgZGMgKmRjLAogICAgc3Ry
dWN0IGRjX3N0YXRlICpuZXdfY3R4LAogICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFt
KTsKIGVudW0gZGNfc3RhdHVzICgqZ2V0X2RlZmF1bHRfc3dpenpsZV9tb2RlKSgKICAgc3RydWN0
IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cgogc3RydWN0IHN0cmVhbV9lbmNvZGVyICoo
KmZpbmRfZmlyc3RfZnJlZV9tYXRjaF9zdHJlYW1fZW5jX2Zvcl9saW5rKSgKICAgc3RydWN0IHJl
c291cmNlX2NvbnRleHQgKnJlc19jdHgsCiAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpw
b29sLAogICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwogdm9pZCAoKnBvcHVsYXRl
X2RtbF93cml0ZWJhY2tfZnJvbV9jb250ZXh0KSgKICAgc3RydWN0IGRjICpkYywKICAgc3RydWN0
IHJlc291cmNlX2NvbnRleHQgKnJlc19jdHgsCiAgIGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0
ICpwaXBlcyk7Cgogdm9pZCAoKnNldF9tY2lmX2FyYl9wYXJhbXMpKAogICBzdHJ1Y3QgZGMgKmRj
LAogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAgIGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1z
X3N0ICpwaXBlcywKICAgaW50IHBpcGVfY250KTsKIHZvaWQgKCp1cGRhdGVfYndfYm91bmRpbmdf
Ym94KSgKICAgc3RydWN0IGRjICpkYywKICAgc3RydWN0IGNsa19id19wYXJhbXMgKmJ3X3BhcmFt
cyk7Cgp9OwoKc3RydWN0IGF1ZGlvX3N1cHBvcnR7CiBib29sIGRwX2F1ZGlvOwogYm9vbCBoZG1p
X2F1ZGlvX29uX2RvbmdsZTsKIGJvb2wgaGRtaV9hdWRpb19uYXRpdmU7Cn07CgoKCnN0cnVjdCBy
ZXNvdXJjZV9wb29sIHsKIHN0cnVjdCBtZW1faW5wdXQgKm1pc1s2XTsKIHN0cnVjdCBodWJwICpo
dWJwc1s2XTsKIHN0cnVjdCBpbnB1dF9waXhlbF9wcm9jZXNzb3IgKmlwcHNbNl07CiBzdHJ1Y3Qg
dHJhbnNmb3JtICp0cmFuc2Zvcm1zWzZdOwogc3RydWN0IGRwcCAqZHBwc1s2XTsKIHN0cnVjdCBv
dXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHBzWzZdOwogc3RydWN0IHRpbWluZ19nZW5lcmF0b3Ig
KnRpbWluZ19nZW5lcmF0b3JzWzZdOwogc3RydWN0IHN0cmVhbV9lbmNvZGVyICpzdHJlYW1fZW5j
WzYgKiAyXTsKIHN0cnVjdCBodWJidWIgKmh1YmJ1YjsKIHN0cnVjdCBtcGMgKm1wYzsKIHN0cnVj
dCBwcF9zbXVfZnVuY3MgKnBwX3NtdTsKIHN0cnVjdCBkY2VfYXV4ICplbmdpbmVzWzZdOwogc3Ry
dWN0IGRjZV9pMmNfaHcgKmh3X2kyY3NbNl07CiBzdHJ1Y3QgZGNlX2kyY19zdyAqc3dfaTJjc1s2
XTsKIGJvb2wgaTJjX2h3X2J1ZmZlcl9pbl91c2U7Cgogc3RydWN0IGR3YmMgKmR3YmNbMV07CiBz
dHJ1Y3QgbWNpZl93YiAqbWNpZl93YlsxXTsKIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IGdzbF8w
OjE7CiAgdW5zaWduZWQgaW50IGdzbF8xOjE7CiAgdW5zaWduZWQgaW50IGdzbF8yOjE7CiB9IGdz
bF9ncm91cHM7Cgogc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzY3NbNl07Cgog
dW5zaWduZWQgaW50IHBpcGVfY291bnQ7CiB1bnNpZ25lZCBpbnQgdW5kZXJsYXlfcGlwZV9pbmRl
eDsKIHVuc2lnbmVkIGludCBzdHJlYW1fZW5jX2NvdW50OwoKIHN0cnVjdCB7CiAgdW5zaWduZWQg
aW50IHh0YWxpbl9jbG9ja19pbktoejsKICB1bnNpZ25lZCBpbnQgZGNjZ19yZWZfY2xvY2tfaW5L
aHo7CiAgdW5zaWduZWQgaW50IGRjaHViX3JlZl9jbG9ja19pbktoejsKIH0gcmVmX2Nsb2NrczsK
IHVuc2lnbmVkIGludCB0aW1pbmdfZ2VuZXJhdG9yX2NvdW50OwogdW5zaWduZWQgaW50IG1wY2Nf
Y291bnQ7CgogdW5zaWduZWQgaW50IHdyaXRlYmFja19waXBlX2NvdW50OwoKCgogc3RydWN0IGNs
b2NrX3NvdXJjZSAqZHBfY2xvY2tfc291cmNlOwoKIHN0cnVjdCBjbG9ja19zb3VyY2UgKmNsb2Nr
X3NvdXJjZXNbN107CiB1bnNpZ25lZCBpbnQgY2xrX3NyY19jb3VudDsKCiBzdHJ1Y3QgYXVkaW8g
KmF1ZGlvc1s3XTsKIHVuc2lnbmVkIGludCBhdWRpb19jb3VudDsKIHN0cnVjdCBhdWRpb19zdXBw
b3J0IGF1ZGlvX3N1cHBvcnQ7Cgogc3RydWN0IGRjY2cgKmRjY2c7CiBzdHJ1Y3QgaXJxX3NlcnZp
Y2UgKmlycXM7Cgogc3RydWN0IGFibSAqYWJtOwogc3RydWN0IGRtY3UgKmRtY3U7CiBzdHJ1Y3Qg
ZG11Yl9wc3IgKnBzcjsKCiBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfZnVuY3MgKmZ1bmNzOwogY29u
c3Qgc3RydWN0IHJlc291cmNlX2NhcHMgKnJlc19jYXA7Cgogc3RydWN0IGRkY19zZXJ2aWNlICpv
ZW1fZGV2aWNlOwp9OwoKc3RydWN0IGRjbl9mZV9iYW5kd2lkdGggewogaW50IGRwcGNsa19raHo7
Cgp9OwoKc3RydWN0IHN0cmVhbV9yZXNvdXJjZSB7CiBzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nl
c3NvciAqb3BwOwogc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYzsKIHN0cnVj
dCB0aW1pbmdfZ2VuZXJhdG9yICp0ZzsKIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqc3RyZWFtX2Vu
YzsKIHN0cnVjdCBhdWRpbyAqYXVkaW87Cgogc3RydWN0IHBpeGVsX2Nsa19wYXJhbXMgcGl4X2Ns
a19wYXJhbXM7CiBzdHJ1Y3QgZW5jb2Rlcl9pbmZvX2ZyYW1lIGVuY29kZXJfaW5mb19mcmFtZTsK
CiBzdHJ1Y3QgYWJtICphYm07CgoKCiB1aW50OF90IGdzbF9ncm91cDsKfTsKCnN0cnVjdCBwbGFu
ZV9yZXNvdXJjZSB7CiBzdHJ1Y3Qgc2NhbGVyX2RhdGEgc2NsX2RhdGE7CiBzdHJ1Y3QgaHVicCAq
aHVicDsKIHN0cnVjdCBtZW1faW5wdXQgKm1pOwogc3RydWN0IGlucHV0X3BpeGVsX3Byb2Nlc3Nv
ciAqaXBwOwogc3RydWN0IHRyYW5zZm9ybSAqeGZtOwogc3RydWN0IGRwcCAqZHBwOwogdWludDhf
dCBtcGNjX2luc3Q7Cgogc3RydWN0IGRjbl9mZV9iYW5kd2lkdGggYnc7Cn07Cgp1bmlvbiBwaXBl
X3VwZGF0ZV9mbGFncyB7CiBzdHJ1Y3QgewogIHVpbnQzMl90IGVuYWJsZSA6IDE7CiAgdWludDMy
X3QgZGlzYWJsZSA6IDE7CiAgdWludDMyX3Qgb2RtIDogMTsKICB1aW50MzJfdCBnbG9iYWxfc3lu
YyA6IDE7CiAgdWludDMyX3Qgb3BwX2NoYW5nZWQgOiAxOwogIHVpbnQzMl90IHRnX2NoYW5nZWQg
OiAxOwogIHVpbnQzMl90IG1wY2MgOiAxOwogIHVpbnQzMl90IGRwcGNsayA6IDE7CiAgdWludDMy
X3QgaHVicF9pbnRlcmRlcGVuZGVudCA6IDE7CiAgdWludDMyX3QgaHVicF9ycV9kbGdfdHR1IDog
MTsKICB1aW50MzJfdCBnYW11dF9yZW1hcCA6IDE7CiAgdWludDMyX3Qgc2NhbGVyIDogMTsKICB1
aW50MzJfdCB2aWV3cG9ydCA6IDE7CiB9IGJpdHM7CiB1aW50MzJfdCByYXc7Cn07CgpzdHJ1Y3Qg
cGlwZV9jdHggewogc3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKIHN0cnVjdCBk
Y19zdHJlYW1fc3RhdGUgKnN0cmVhbTsKCiBzdHJ1Y3QgcGxhbmVfcmVzb3VyY2UgcGxhbmVfcmVz
Owogc3RydWN0IHN0cmVhbV9yZXNvdXJjZSBzdHJlYW1fcmVzOwoKIHN0cnVjdCBjbG9ja19zb3Vy
Y2UgKmNsb2NrX3NvdXJjZTsKCiBzdHJ1Y3QgcGxsX3NldHRpbmdzIHBsbF9zZXR0aW5nczsKCiB1
aW50OF90IHBpcGVfaWR4OwoKIHN0cnVjdCBwaXBlX2N0eCAqdG9wX3BpcGU7CiBzdHJ1Y3QgcGlw
ZV9jdHggKmJvdHRvbV9waXBlOwogc3RydWN0IHBpcGVfY3R4ICpuZXh0X29kbV9waXBlOwogc3Ry
dWN0IHBpcGVfY3R4ICpwcmV2X29kbV9waXBlOwoKCiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9k
bGdfcmVnc19zdCBkbGdfcmVnczsKIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0
IHR0dV9yZWdzOwogc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcnFfcmVnc19zdCBycV9yZWdzOwog
c3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCBwaXBlX2RsZ19wYXJh
bTsKCiB1bmlvbiBwaXBlX3VwZGF0ZV9mbGFncyB1cGRhdGVfZmxhZ3M7CiBzdHJ1Y3QgZHdiYyAq
ZHdiYzsKIHN0cnVjdCBtY2lmX3diICptY2lmX3diOwp9OwoKc3RydWN0IHJlc291cmNlX2NvbnRl
eHQgewogc3RydWN0IHBpcGVfY3R4IHBpcGVfY3R4WzZdOwogYm9vbCBpc19zdHJlYW1fZW5jX2Fj
cXVpcmVkWzYgKiAyXTsKIGJvb2wgaXNfYXVkaW9fYWNxdWlyZWRbNl07CiB1aW50OF90IGNsb2Nr
X3NvdXJjZV9yZWZfY291bnRbN107CiB1aW50OF90IGRwX2Nsb2NrX3NvdXJjZV9yZWZfY291bnQ7
CiBib29sIGlzX2RzY19hY3F1aXJlZFs2XTsKfTsKCnN0cnVjdCBkY2VfYndfb3V0cHV0IHsKIGJv
b2wgY3B1Y19zdGF0ZV9jaGFuZ2VfZW5hYmxlOwogYm9vbCBjcHVwX3N0YXRlX2NoYW5nZV9lbmFi
bGU7CiBib29sIHN0dXR0ZXJfbW9kZV9lbmFibGU7CiBib29sIG5icF9zdGF0ZV9jaGFuZ2VfZW5h
YmxlOwogYm9vbCBhbGxfZGlzcGxheXNfaW5fc3luYzsKIHN0cnVjdCBkY2Vfd2F0ZXJtYXJrcyB1
cmdlbnRfd21fbnNbNl07CiBzdHJ1Y3QgZGNlX3dhdGVybWFya3Mgc3R1dHRlcl9leGl0X3dtX25z
WzZdOwogc3RydWN0IGRjZV93YXRlcm1hcmtzIHN0dXR0ZXJfZW50cnlfd21fbnNbNl07CiBzdHJ1
Y3QgZGNlX3dhdGVybWFya3MgbmJwX3N0YXRlX2NoYW5nZV93bV9uc1s2XTsKIGludCBzY2xrX2to
ejsKIGludCBzY2xrX2RlZXBfc2xlZXBfa2h6OwogaW50IHljbGtfa2h6OwogaW50IGRpc3BjbGtf
a2h6OwogaW50IGJsYWNrb3V0X3JlY292ZXJ5X3RpbWVfdXM7Cn07CgpzdHJ1Y3QgZGNuX2J3X3dy
aXRlYmFjayB7CiBzdHJ1Y3QgbWNpZl9hcmJfcGFyYW1zIG1jaWZfd2JfYXJiWzFdOwp9OwoKc3Ry
dWN0IGRjbl9id19vdXRwdXQgewogc3RydWN0IGRjX2Nsb2NrcyBjbGs7CiBzdHJ1Y3QgZGNuX3dh
dGVybWFya19zZXQgd2F0ZXJtYXJrczsKIHN0cnVjdCBkY25fYndfd3JpdGViYWNrIGJ3X3dyaXRl
YmFjazsKfTsKCnVuaW9uIGJ3X291dHB1dCB7CiBzdHJ1Y3QgZGNuX2J3X291dHB1dCBkY247CiBz
dHJ1Y3QgZGNlX2J3X291dHB1dCBkY2U7Cn07CgpzdHJ1Y3QgYndfY29udGV4dCB7CiB1bmlvbiBi
d19vdXRwdXQgYnc7CiBzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiBkbWw7Cn07CiMgMzYxICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIK
c3RydWN0IGRjX3N0YXRlIHsKIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbXNbNl07CiBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXR1cyBzdHJlYW1fc3RhdHVzWzZdOwogdWludDhfdCBzdHJlYW1f
Y291bnQ7Cgogc3RydWN0IHJlc291cmNlX2NvbnRleHQgcmVzX2N0eDsKCiBzdHJ1Y3QgYndfY29u
dGV4dCBid19jdHg7CgoKIHN0cnVjdCBkbV9wcF9kaXNwbGF5X2NvbmZpZ3VyYXRpb24gcHBfZGlz
cGxheV9jZmc7Cgogc3RydWN0IGRjbl9id19pbnRlcm5hbF92YXJzIGRjbl9id192YXJzOwoKCiBz
dHJ1Y3QgY2xrX21nciAqY2xrX21ncjsKCiBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKfTsKIyAyOSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9yZXNvdXJjZS5o
IiAyCgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRl
L2RhbF9hc2ljX2lkLmgiIDEKIyAxNjggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9pbmNsdWRlL2RhbF9hc2ljX2lkLmgiCmVudW0gewogTlZfTkFWSTEwX1BfQTAgPSAx
LAogTlZfTkFWSTEyX1BfQTAgPSAxMCwKIE5WX05BVkkxNF9NX0EwID0gMjAsCiBOVl9VTktOT1dO
ID0gMHhGRgp9OwojIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvaW5jL3Jlc291cmNlLmgiIDIKCgoKCgoKZW51bSBkY2VfdmVyc2lvbiByZXNvdXJjZV9wYXJz
ZV9hc2ljX2lkKAogIHN0cnVjdCBod19hc2ljX2lkIGFzaWNfaWQpOwoKc3RydWN0IHJlc291cmNl
X2NhcHMgewogaW50IG51bV90aW1pbmdfZ2VuZXJhdG9yOwogaW50IG51bV9vcHA7CiBpbnQgbnVt
X3ZpZGVvX3BsYW5lOwogaW50IG51bV9hdWRpbzsKIGludCBudW1fc3RyZWFtX2VuY29kZXI7CiBp
bnQgbnVtX3BsbDsKIGludCBudW1fZHdiOwogaW50IG51bV9kZGM7CiBpbnQgbnVtX3ZtaWQ7CiBp
bnQgbnVtX2RzYzsKfTsKCnN0cnVjdCByZXNvdXJjZV9zdHJhcHMgewogdWludDMyX3QgaGRtaV9k
aXNhYmxlOwogdWludDMyX3QgZGNfcGluc3RyYXBzX2F1ZGlvOwogdWludDMyX3QgYXVkaW9fc3Ry
ZWFtX251bWJlcjsKfTsKCnN0cnVjdCByZXNvdXJjZV9jcmVhdGVfZnVuY3Mgewogdm9pZCAoKnJl
YWRfZGNlX3N0cmFwcykoCiAgIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHN0cnVjdCByZXNvdXJj
ZV9zdHJhcHMgKnN0cmFwcyk7Cgogc3RydWN0IGF1ZGlvICooKmNyZWF0ZV9hdWRpbykoCiAgIHN0
cnVjdCBkY19jb250ZXh0ICpjdHgsIHVuc2lnbmVkIGludCBpbnN0KTsKCiBzdHJ1Y3Qgc3RyZWFt
X2VuY29kZXIgKigqY3JlYXRlX3N0cmVhbV9lbmNvZGVyKSgKICAgZW51bSBlbmdpbmVfaWQgZW5n
X2lkLCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsKCiBzdHJ1Y3QgZGNlX2h3c2VxICooKmNyZWF0
ZV9od3NlcSkoCiAgIHN0cnVjdCBkY19jb250ZXh0ICpjdHgpOwp9OwoKYm9vbCByZXNvdXJjZV9j
b25zdHJ1Y3QoCiB1bnNpZ25lZCBpbnQgbnVtX3ZpcnR1YWxfbGlua3MsCiBzdHJ1Y3QgZGMgKmRj
LAogc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wsCiBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfY3Jl
YXRlX2Z1bmNzICpjcmVhdGVfZnVuY3MpOwoKc3RydWN0IHJlc291cmNlX3Bvb2wgKmRjX2NyZWF0
ZV9yZXNvdXJjZV9wb29sKHN0cnVjdCBkYyAqZGMsCiAgICAgICAgICAgY29uc3Qgc3RydWN0IGRj
X2luaXRfZGF0YSAqaW5pdF9kYXRhLAogICAgICAgICAgIGVudW0gZGNlX3ZlcnNpb24gZGNfdmVy
c2lvbik7Cgp2b2lkIGRjX2Rlc3Ryb3lfcmVzb3VyY2VfcG9vbChzdHJ1Y3QgZGMgKmRjKTsKCmVu
dW0gZGNfc3RhdHVzIHJlc291cmNlX21hcF9wb29sX3Jlc291cmNlcygKICBjb25zdCBzdHJ1Y3Qg
ZGMgKmRjLAogIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0
YXRlICpzdHJlYW0pOwoKYm9vbCByZXNvdXJjZV9idWlsZF9zY2FsaW5nX3BhcmFtcyhzdHJ1Y3Qg
cGlwZV9jdHggKnBpcGVfY3R4KTsKCmVudW0gZGNfc3RhdHVzIHJlc291cmNlX2J1aWxkX3NjYWxp
bmdfcGFyYW1zX2Zvcl9jb250ZXh0KAogIGNvbnN0IHN0cnVjdCBkYyAqZGMsCiAgc3RydWN0IGRj
X3N0YXRlICpjb250ZXh0KTsKCnZvaWQgcmVzb3VyY2VfYnVpbGRfaW5mb19mcmFtZShzdHJ1Y3Qg
cGlwZV9jdHggKnBpcGVfY3R4KTsKCnZvaWQgcmVzb3VyY2VfdW5yZWZlcmVuY2VfY2xvY2tfc291
cmNlKAogIHN0cnVjdCByZXNvdXJjZV9jb250ZXh0ICpyZXNfY3R4LAogIGNvbnN0IHN0cnVjdCBy
ZXNvdXJjZV9wb29sICpwb29sLAogIHN0cnVjdCBjbG9ja19zb3VyY2UgKmNsb2NrX3NvdXJjZSk7
Cgp2b2lkIHJlc291cmNlX3JlZmVyZW5jZV9jbG9ja19zb3VyY2UoCiAgc3RydWN0IHJlc291cmNl
X2NvbnRleHQgKnJlc19jdHgsCiAgY29uc3Qgc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wsCiAg
c3RydWN0IGNsb2NrX3NvdXJjZSAqY2xvY2tfc291cmNlKTsKCmludCByZXNvdXJjZV9nZXRfY2xv
Y2tfc291cmNlX3JlZmVyZW5jZSgKICBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwK
ICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcG9vbCwKICBzdHJ1Y3QgY2xvY2tfc291cmNl
ICpjbG9ja19zb3VyY2UpOwoKYm9vbCByZXNvdXJjZV9hcmVfc3RyZWFtc190aW1pbmdfc3luY2hy
b25pemFibGUoCiAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtMSwKICBzdHJ1Y3QgZGNf
c3RyZWFtX3N0YXRlICpzdHJlYW0yKTsKCnN0cnVjdCBjbG9ja19zb3VyY2UgKnJlc291cmNlX2Zp
bmRfdXNlZF9jbGtfc3JjX2Zvcl9zaGFyaW5nKAogIHN0cnVjdCByZXNvdXJjZV9jb250ZXh0ICpy
ZXNfY3R4LAogIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoKc3RydWN0IGNsb2NrX3NvdXJj
ZSAqZGNfcmVzb3VyY2VfZmluZF9maXJzdF9mcmVlX3BsbCgKICBzdHJ1Y3QgcmVzb3VyY2VfY29u
dGV4dCAqcmVzX2N0eCwKICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcG9vbCk7CgpzdHJ1
Y3QgcGlwZV9jdHggKnJlc291cmNlX2dldF9oZWFkX3BpcGVfZm9yX3N0cmVhbSgKICBzdHJ1Y3Qg
cmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJl
YW0pOwoKYm9vbCByZXNvdXJjZV9hdHRhY2hfc3VyZmFjZXNfdG9fY29udGV4dCgKICBzdHJ1Y3Qg
ZGNfcGxhbmVfc3RhdGUgKmNvbnN0ICpwbGFuZV9zdGF0ZSwKICBpbnQgc3VyZmFjZV9jb3VudCwK
ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpkY19zdHJlYW0sCiAgc3RydWN0IGRjX3N0YXRlICpj
b250ZXh0LAogIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sKTsKCnN0cnVjdCBwaXBl
X2N0eCAqZmluZF9pZGxlX3NlY29uZGFyeV9waXBlKAogIHN0cnVjdCByZXNvdXJjZV9jb250ZXh0
ICpyZXNfY3R4LAogIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAogIGNvbnN0IHN0
cnVjdCBwaXBlX2N0eCAqcHJpbWFyeV9waXBlKTsKCmJvb2wgcmVzb3VyY2VfaXNfc3RyZWFtX3Vu
Y2hhbmdlZCgKIHN0cnVjdCBkY19zdGF0ZSAqb2xkX2NvbnRleHQsIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKnN0cmVhbSk7Cgpib29sIHJlc291cmNlX3ZhbGlkYXRlX2F0dGFjaF9zdXJmYWNlcygK
ICBjb25zdCBzdHJ1Y3QgZGNfdmFsaWRhdGlvbl9zZXQgc2V0W10sCiAgaW50IHNldF9jb3VudCwK
ICBjb25zdCBzdHJ1Y3QgZGNfc3RhdGUgKm9sZF9jb250ZXh0LAogIHN0cnVjdCBkY19zdGF0ZSAq
Y29udGV4dCwKICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcG9vbCk7Cgp2b2lkIHJlc291
cmNlX3ZhbGlkYXRlX2N0eF91cGRhdGVfcG9pbnRlcl9hZnRlcl9jb3B5KAogIGNvbnN0IHN0cnVj
dCBkY19zdGF0ZSAqc3JjX2N0eCwKICBzdHJ1Y3QgZGNfc3RhdGUgKmRzdF9jdHgpOwoKZW51bSBk
Y19zdGF0dXMgcmVzb3VyY2VfbWFwX2Nsb2NrX3Jlc291cmNlcygKICBjb25zdCBzdHJ1Y3QgZGMg
KmRjLAogIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRl
ICpzdHJlYW0pOwoKZW51bSBkY19zdGF0dXMgcmVzb3VyY2VfbWFwX3BoeV9jbG9ja19yZXNvdXJj
ZXMoCiAgY29uc3Qgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAg
c3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKCmJvb2wgcGlwZV9uZWVkX3JlcHJvZ3Jh
bSgKICBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4X29sZCwKICBzdHJ1Y3QgcGlwZV9jdHggKnBp
cGVfY3R4KTsKCnZvaWQgcmVzb3VyY2VfYnVpbGRfYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJhbXMo
c3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAogIHN0cnVjdCBiaXRfZGVwdGhfcmVkdWN0
aW9uX3BhcmFtcyAqZm10X2JpdF9kZXB0aCk7Cgp2b2lkIHVwZGF0ZV9hdWRpb191c2FnZSgKICBz
dHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2Vf
cG9vbCAqcG9vbCwKICBzdHJ1Y3QgYXVkaW8gKmF1ZGlvLAogIGJvb2wgYWNxdWlyZWQpOwoKdW5z
aWduZWQgaW50IHJlc291cmNlX3BpeGVsX2Zvcm1hdF90b19icHAoZW51bSBzdXJmYWNlX3BpeGVs
X2Zvcm1hdCBmb3JtYXQpOwoKdm9pZCBnZXRfYXVkaW9fY2hlY2soc3RydWN0IGF1ZGlvX2luZm8g
KmF1ZF9tb2RlcywKIHN0cnVjdCBhdWRpb19jaGVjayAqYXVkX2Noayk7CiMgMzcgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5h
bC5oIiAyCgoKCmVudW0gZGVudGlzdF9iYXNlX2RpdmlkZXJfaWQgewogREVOVElTVF9CQVNFX0RJ
RF8xID0gMHgwOCwKIERFTlRJU1RfQkFTRV9ESURfMiA9IDB4NDAsCiBERU5USVNUX0JBU0VfRElE
XzMgPSAweDYwLAogREVOVElTVF9CQVNFX0RJRF80ID0gMHg3ZSwKIERFTlRJU1RfTUFYX0RJRCA9
IDB4N2YKfTsKCgplbnVtIGRlbnRpc3RfZGl2aWRlcl9yYW5nZSB7CiBERU5USVNUX0RJVklERVJf
UkFOR0VfMV9TVEFSVCA9IDgsCiBERU5USVNUX0RJVklERVJfUkFOR0VfMV9TVEVQID0gMSwKIERF
TlRJU1RfRElWSURFUl9SQU5HRV8yX1NUQVJUID0gNjQsCiBERU5USVNUX0RJVklERVJfUkFOR0Vf
Ml9TVEVQID0gMiwKIERFTlRJU1RfRElWSURFUl9SQU5HRV8zX1NUQVJUID0gMTI4LAogREVOVElT
VF9ESVZJREVSX1JBTkdFXzNfU1RFUCA9IDQsCiBERU5USVNUX0RJVklERVJfUkFOR0VfNF9TVEFS
VCA9IDI0OCwKIERFTlRJU1RfRElWSURFUl9SQU5HRV80X1NURVAgPSAyNjQsCiBERU5USVNUX0RJ
VklERVJfUkFOR0VfU0NBTEVfRkFDVE9SID0gNAp9OwojIDE1MSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9jbGtfbWdyX2ludGVybmFsLmgiCnN0cnVj
dCBjbGtfbWdyX3NoaWZ0IHsKIHVpbnQ4X3QgRFBSRUZDTEtfU1JDX1NFTDsgdWludDhfdCBERU5U
SVNUX0RQUkVGQ0xLX1dESVZJREVSOyB1aW50OF90IERFTlRJU1RfRElTUENMS19XRElWSURFUjsg
dWludDhfdCBERU5USVNUX0RJU1BDTEtfQ0hHX0RPTkU7CiB1aW50OF90IERFTlRJU1RfRFBQQ0xL
X1dESVZJREVSOyB1aW50OF90IERFTlRJU1RfRFBQQ0xLX0NIR19ET05FOyB1aW50OF90IEZiTXVs
dF9pbnQ7IHVpbnQ4X3QgRmJNdWx0X2ZyYWM7CiB1aW50MzJfdCBDT05URU5UOwp9OwoKc3RydWN0
IGNsa19tZ3JfbWFzayB7CiB1aW50MzJfdCBEUFJFRkNMS19TUkNfU0VMOyB1aW50MzJfdCBERU5U
SVNUX0RQUkVGQ0xLX1dESVZJREVSOyB1aW50MzJfdCBERU5USVNUX0RJU1BDTEtfV0RJVklERVI7
IHVpbnQzMl90IERFTlRJU1RfRElTUENMS19DSEdfRE9ORTsKIHVpbnQzMl90IERFTlRJU1RfRFBQ
Q0xLX1dESVZJREVSOyB1aW50MzJfdCBERU5USVNUX0RQUENMS19DSEdfRE9ORTsgdWludDMyX3Qg
RmJNdWx0X2ludDsgdWludDMyX3QgRmJNdWx0X2ZyYWM7CiB1aW50MzJfdCBDT05URU5UOwp9OwoK
c3RydWN0IGNsa19tZ3JfcmVnaXN0ZXJzIHsKIHVpbnQzMl90IERQUkVGQ0xLX0NOVEw7CiB1aW50
MzJfdCBERU5USVNUX0RJU1BDTEtfQ05UTDsKCiB1aW50MzJfdCBDTEszX0NMSzJfREZTX0NOVEw7
CiB1aW50MzJfdCBDTEszX0NMS19QTExfUkVROwoKIHVpbnQzMl90IE1QMV9TTU5fQzJQTVNHXzY3
OwogdWludDMyX3QgTVAxX1NNTl9DMlBNU0dfODM7CiB1aW50MzJfdCBNUDFfU01OX0MyUE1TR185
MTsKfTsKCmVudW0gY2xvY2tfdHlwZSB7CiBjbG9ja190eXBlX2Rpc3BjbGsgPSAxLAogY2xvY2tf
dHlwZV9kY2ZjbGssCiBjbG9ja190eXBlX3NvY2NsaywKIGNsb2NrX3R5cGVfcGl4ZWxjbGssCiBj
bG9ja190eXBlX3BoeWNsaywKIGNsb2NrX3R5cGVfZHBwY2xrLAogY2xvY2tfdHlwZV9mY2xrLAog
Y2xvY2tfdHlwZV9kY2Zkc2NsaywKIGNsb2NrX3R5cGVfZHNjY2xrLAogY2xvY2tfdHlwZV91Y2xr
LAogY2xvY2tfdHlwZV9kcmFtY2xrLAp9OwoKCnN0cnVjdCBzdGF0ZV9kZXBlbmRlbnRfY2xvY2tz
IHsKIGludCBkaXNwbGF5X2Nsa19raHo7CiBpbnQgcGl4ZWxfY2xrX2toejsKfTsKCnN0cnVjdCBj
bGtfbWdyX2ludGVybmFsIHsKIHN0cnVjdCBjbGtfbWdyIGJhc2U7CiBpbnQgc211X3ZlcjsKIHN0
cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdTsKIHN0cnVjdCBjbGtfbWdyX2ludGVybmFsX2Z1bmNz
ICpmdW5jczsKCiBzdHJ1Y3QgZGNjZyAqZGNjZzsKCgoKCgoKCiBjb25zdCBzdHJ1Y3QgY2xrX21n
cl9yZWdpc3RlcnMgKnJlZ3M7CiBjb25zdCBzdHJ1Y3QgY2xrX21ncl9zaGlmdCAqY2xrX21ncl9z
aGlmdDsKIGNvbnN0IHN0cnVjdCBjbGtfbWdyX21hc2sgKmNsa19tZ3JfbWFzazsKCiBzdHJ1Y3Qg
c3RhdGVfZGVwZW5kZW50X2Nsb2NrcyBtYXhfY2xrc19ieV9zdGF0ZVtETV9QUF9DTE9DS1NfTUFY
X1NUQVRFU107CgoKCiBib29sIGRmc19ieXBhc3NfZW5hYmxlZDsKCiBib29sIGRmc19ieXBhc3Nf
YWN0aXZlOwoKIHVpbnQzMl90IGRmc19yZWZfZnJlcV9raHo7CgoKCgogaW50IGRmc19ieXBhc3Nf
ZGlzcF9jbGs7CgoKCgoKCiBib29sIHNzX29uX2RwcmVmY2xrOwoKCgoKCgoKIGJvb2wgeGdtaV9l
bmFibGVkOwojIDI1MiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2luYy9ody9jbGtfbWdyX2ludGVybmFsLmgiCiBpbnQgZHByZWZjbGtfc3NfcGVyY2VudGFnZTsK
CgoKCgoKIGludCBkcHJlZmNsa19zc19kaXZpZGVyOwoKIGVudW0gZG1fcHBfY2xvY2tzX3N0YXRl
IG1heF9jbGtzX3N0YXRlOwogZW51bSBkbV9wcF9jbG9ja3Nfc3RhdGUgY3VyX21pbl9jbGtzX3N0
YXRlOwp9OwoKc3RydWN0IGNsa19tZ3JfaW50ZXJuYWxfZnVuY3MgewogaW50ICgqc2V0X2Rpc3Bj
bGspKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCBpbnQgcmVxdWVzdGVkX2Rpc3Bj
bGtfa2h6KTsKIGludCAoKnNldF9kcHJlZmNsaykoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNs
a19tZ3IpOwp9OwojIDI3OCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2luYy9ody9jbGtfbWdyX2ludGVybmFsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2hvdWxkX3NldF9jbG9jayhib29s
IHNhZmVfdG9fbG93ZXIsIGludCBjYWxjX2NsaywgaW50IGN1cl9jbGspCnsKIHJldHVybiAoKHNh
ZmVfdG9fbG93ZXIgJiYgY2FsY19jbGsgPCBjdXJfY2xrKSB8fCBjYWxjX2NsayA+IGN1cl9jbGsp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIHNob3VsZF91cGRhdGVfcHN0YXRlX3N1cHBvcnQoYm9vbCBzYWZlX3RvX2xvd2Vy
LCBib29sIGNhbGNfc3VwcG9ydCwgYm9vbCBjdXJfc3VwcG9ydCkKewogaWYgKGN1cl9zdXBwb3J0
ICE9IGNhbGNfc3VwcG9ydCkgewogIGlmIChjYWxjX3N1cHBvcnQgPT0gdHJ1ZSAmJiBzYWZlX3Rv
X2xvd2VyKQogICByZXR1cm4gdHJ1ZTsKICBlbHNlIGlmIChjYWxjX3N1cHBvcnQgPT0gZmFsc2Ug
JiYgIXNhZmVfdG9fbG93ZXIpCiAgIHJldHVybiB0cnVlOwogfQoKIHJldHVybiBmYWxzZTsKfQoK
aW50IGNsa19tZ3JfaGVscGVyX2dldF9hY3RpdmVfZGlzcGxheV9jbnQoCiAgc3RydWN0IGRjICpk
YywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwojIDI4ICJkcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5jIiAyCgoKIyAx
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24y
MC9kY24yMF9jbGtfbWdyLmgiIDEKIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjAvZGNuMjBfY2xrX21nci5oIgp2b2lkIGRjbjJfdXBk
YXRlX2Nsb2NrcyhzdHJ1Y3QgY2xrX21nciAqZGNjZywKICAgc3RydWN0IGRjX3N0YXRlICpjb250
ZXh0LAogICBib29sIHNhZmVfdG9fbG93ZXIpOwoKdm9pZCBkY24yX3VwZGF0ZV9jbG9ja3NfZnBn
YShzdHJ1Y3QgY2xrX21nciAqY2xrX21nciwKICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAog
ICBib29sIHNhZmVfdG9fbG93ZXIpOwp2b2lkIGRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRlX2Rw
cF9kdG8oc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsCiAgc3RydWN0IGRjX3N0YXRl
ICpjb250ZXh0LCBib29sIHNhZmVfdG9fbG93ZXIpOwoKdm9pZCBkY24yX2luaXRfY2xvY2tzKHN0
cnVjdCBjbGtfbWdyICpjbGtfbWdyKTsKCnZvaWQgZGNuMjBfY2xrX21ncl9jb25zdHJ1Y3Qoc3Ry
dWN0IGRjX2NvbnRleHQgKmN0eCwKICBzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwK
ICBzdHJ1Y3QgcHBfc211X2Z1bmNzICpwcF9zbXUsCiAgc3RydWN0IGRjY2cgKmRjY2cpOwoKdWlu
dDMyX3QgZGVudGlzdF9nZXRfZGlkX2Zyb21fZGl2aWRlcihpbnQgZGl2aWRlcik7Cgp2b2lkIGRj
bjJfZ2V0X2Nsb2NrKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyLAogIHN0cnVjdCBkY19zdGF0ZSAq
Y29udGV4dCwKICAgZW51bSBkY19jbG9ja190eXBlIGNsb2NrX3R5cGUsCiAgIHN0cnVjdCBkY19j
bG9ja19jb25maWcgKmNsb2NrX2NmZyk7Cgp2b2lkIGRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRl
X2RlbnRpc3Qoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpOwoKdm9pZCBkY24yX3Jl
YWRfY2xvY2tzX2Zyb21faHdfZGVudGlzdChzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlKTsK
IyAzMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2Rj
bjIxL3JuX2Nsa19tZ3IuYyIgMgojIDEgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmgiIDEKIyAyOSAiZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuaCIK
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Ns
a19tZ3IuaCIgMQojIDMwICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5oIiAyCgoKc3RydWN0IHJuX2Nsa19yZWdpc3RlcnMg
ewogdWludDMyX3QgQ0xLMV9DTEswX0NVUlJFTlRfQ05UOwp9OwoKdm9pZCBybl9jbGtfbWdyX2Nv
bnN0cnVjdChzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIHN0cnVjdCBjbGtfbWdyX2ludGVybmFs
ICpjbGtfbWdyLAogIHN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSwKICBzdHJ1Y3QgZGNjZyAq
ZGNjZyk7CiMgMzIgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xr
X21nci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKCgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjZTEwMC9kY2VfY2xrX21nci5oIiAxCiMgMzMg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjZTEw
MC9kY2VfY2xrX21nci5oIgppbnQgZGNlX2FkanVzdF9kcF9yZWZfZnJlcV9mb3Jfc3Moc3RydWN0
IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3JfZGNlLCBpbnQgZHBfcmVmX2Nsa19raHopOwppbnQg
ZGNlX2dldF9kcF9yZWZfZnJlcV9raHooc3RydWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSk7CmVu
dW0gZG1fcHBfY2xvY2tzX3N0YXRlIGRjZV9nZXRfcmVxdWlyZWRfY2xvY2tzX3N0YXRlKAogc3Ry
dWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSwKIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7Cgp1
aW50MzJfdCBkY2VfZ2V0X21heF9waXhlbF9jbG9ja19mb3JfYWxsX3BhdGhzKHN0cnVjdCBkY19z
dGF0ZSAqY29udGV4dCk7CgoKdm9pZCBkY2VfY2xrX21ncl9jb25zdHJ1Y3QoCiAgc3RydWN0IGRj
X2NvbnRleHQgKmN0eCwKICBzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21ncl9kY2UpOwoK
dm9pZCBkY2VfY2xvY2tfcmVhZF9zc19pbmZvKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpkY2Nn
X2RjZSk7CgppbnQgZGNlMTJfZ2V0X2RwX3JlZl9mcmVxX2toeihzdHJ1Y3QgY2xrX21nciAqZGNj
Zyk7CgppbnQgZGNlX3NldF9jbG9jaygKIHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UsCiBp
bnQgcmVxdWVzdGVkX2Nsa19raHopOwoKCnZvaWQgZGNlX2Nsa19tZ3JfZGVzdHJveShzdHJ1Y3Qg
Y2xrX21nciAqKmNsa19tZ3IpOwoKaW50IGRlbnRpc3RfZ2V0X2RpdmlkZXJfZnJvbV9kaWQoaW50
IGRpZCk7CiMgMzUgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xr
X21nci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKIyAxICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21ncl92Ymlvc19zbXUuaCIgMQoj
IDI5ICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNu
MjEvcm5fY2xrX21ncl92Ymlvc19zbXUuaCIKaW50IHJuX3ZiaW9zX3NtdV9nZXRfc211X3ZlcnNp
b24oc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpOwppbnQgcm5fdmJpb3Nfc211X3Nl
dF9kaXNwY2xrKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCBpbnQgcmVxdWVzdGVk
X2Rpc3BjbGtfa2h6KTsKaW50IHJuX3ZiaW9zX3NtdV9zZXRfZHByZWZjbGsoc3RydWN0IGNsa19t
Z3JfaW50ZXJuYWwgKmNsa19tZ3IpOwppbnQgcm5fdmJpb3Nfc211X3NldF9oYXJkX21pbl9kY2Zj
bGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCByZXF1ZXN0ZWRfZGNmY2xr
X2toeik7CmludCBybl92Ymlvc19zbXVfc2V0X21pbl9kZWVwX3NsZWVwX2RjZmNsayhzdHJ1Y3Qg
Y2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVlc3RlZF9taW5fZHNfZGNmY2xrX2to
eik7CnZvaWQgcm5fdmJpb3Nfc211X3NldF9waHljbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwg
KmNsa19tZ3IsIGludCByZXF1ZXN0ZWRfcGh5Y2xrX2toeik7CmludCBybl92Ymlvc19zbXVfc2V0
X2RwcGNsayhzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVlc3RlZF9k
cHBfa2h6KTsKdm9pZCBybl92Ymlvc19zbXVfc2V0X2Rjbl9sb3dfcG93ZXJfc3RhdGUoc3RydWN0
IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCBkaXNwbGF5X2NvdW50KTsKdm9pZCBybl92
Ymlvc19zbXVfZW5hYmxlXzQ4bWh6X3RtZHBfcmVmY2xrX3B3cmR3bihzdHJ1Y3QgY2xrX21ncl9p
bnRlcm5hbCAqY2xrX21nciwgYm9vbCBlbmFibGUpOwp2b2lkIHJuX3ZiaW9zX3NtdV9lbmFibGVf
cG1lX3dhKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyKTsKIyAzNiAiZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3Iu
YyIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMv
cmVnX2hlbHBlci5oIiAxCiMgMzkxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvaW5jL3JlZ19oZWxwZXIuaCIKdWludDMyX3QgZ2VuZXJpY19yZWdfZ2V0KGNvbnN0
IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCiAgdWludDhfdCBzaGlmdCwg
dWludDMyX3QgbWFzaywgdWludDMyX3QgKmZpZWxkX3ZhbHVlKTsKCnVpbnQzMl90IGdlbmVyaWNf
cmVnX2dldDIoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwgdWludDMyX3QgYWRkciwKICB1
aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCiAg
dWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRfdmFsdWUyKTsK
CnVpbnQzMl90IGdlbmVyaWNfcmVnX2dldDMoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwg
dWludDMyX3QgYWRkciwKICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90
ICpmaWVsZF92YWx1ZTEsCiAgdWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJf
dCAqZmllbGRfdmFsdWUyLAogIHVpbnQ4X3Qgc2hpZnQzLCB1aW50MzJfdCBtYXNrMywgdWludDMy
X3QgKmZpZWxkX3ZhbHVlMyk7Cgp1aW50MzJfdCBnZW5lcmljX3JlZ19nZXQ0KGNvbnN0IHN0cnVj
dCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCiAgdWludDhfdCBzaGlmdDEsIHVpbnQz
Ml90IG1hc2sxLCB1aW50MzJfdCAqZmllbGRfdmFsdWUxLAogIHVpbnQ4X3Qgc2hpZnQyLCB1aW50
MzJfdCBtYXNrMiwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMiwKICB1aW50OF90IHNoaWZ0MywgdWlu
dDMyX3QgbWFzazMsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTMsCiAgdWludDhfdCBzaGlmdDQsIHVp
bnQzMl90IG1hc2s0LCB1aW50MzJfdCAqZmllbGRfdmFsdWU0KTsKCnVpbnQzMl90IGdlbmVyaWNf
cmVnX2dldDUoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwgdWludDMyX3QgYWRkciwKICB1
aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCiAg
dWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRfdmFsdWUyLAog
IHVpbnQ4X3Qgc2hpZnQzLCB1aW50MzJfdCBtYXNrMywgdWludDMyX3QgKmZpZWxkX3ZhbHVlMywK
ICB1aW50OF90IHNoaWZ0NCwgdWludDMyX3QgbWFzazQsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTQs
CiAgdWludDhfdCBzaGlmdDUsIHVpbnQzMl90IG1hc2s1LCB1aW50MzJfdCAqZmllbGRfdmFsdWU1
KTsKCnVpbnQzMl90IGdlbmVyaWNfcmVnX2dldDYoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0
eCwgdWludDMyX3QgYWRkciwKICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQz
Ml90ICpmaWVsZF92YWx1ZTEsCiAgdWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50
MzJfdCAqZmllbGRfdmFsdWUyLAogIHVpbnQ4X3Qgc2hpZnQzLCB1aW50MzJfdCBtYXNrMywgdWlu
dDMyX3QgKmZpZWxkX3ZhbHVlMywKICB1aW50OF90IHNoaWZ0NCwgdWludDMyX3QgbWFzazQsIHVp
bnQzMl90ICpmaWVsZF92YWx1ZTQsCiAgdWludDhfdCBzaGlmdDUsIHVpbnQzMl90IG1hc2s1LCB1
aW50MzJfdCAqZmllbGRfdmFsdWU1LAogIHVpbnQ4X3Qgc2hpZnQ2LCB1aW50MzJfdCBtYXNrNiwg
dWludDMyX3QgKmZpZWxkX3ZhbHVlNik7Cgp1aW50MzJfdCBnZW5lcmljX3JlZ19nZXQ3KGNvbnN0
IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCiAgdWludDhfdCBzaGlmdDEs
IHVpbnQzMl90IG1hc2sxLCB1aW50MzJfdCAqZmllbGRfdmFsdWUxLAogIHVpbnQ4X3Qgc2hpZnQy
LCB1aW50MzJfdCBtYXNrMiwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMiwKICB1aW50OF90IHNoaWZ0
MywgdWludDMyX3QgbWFzazMsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTMsCiAgdWludDhfdCBzaGlm
dDQsIHVpbnQzMl90IG1hc2s0LCB1aW50MzJfdCAqZmllbGRfdmFsdWU0LAogIHVpbnQ4X3Qgc2hp
ZnQ1LCB1aW50MzJfdCBtYXNrNSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlNSwKICB1aW50OF90IHNo
aWZ0NiwgdWludDMyX3QgbWFzazYsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTYsCiAgdWludDhfdCBz
aGlmdDcsIHVpbnQzMl90IG1hc2s3LCB1aW50MzJfdCAqZmllbGRfdmFsdWU3KTsKCnVpbnQzMl90
IGdlbmVyaWNfcmVnX2dldDgoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwgdWludDMyX3Qg
YWRkciwKICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92
YWx1ZTEsCiAgdWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRf
dmFsdWUyLAogIHVpbnQ4X3Qgc2hpZnQzLCB1aW50MzJfdCBtYXNrMywgdWludDMyX3QgKmZpZWxk
X3ZhbHVlMywKICB1aW50OF90IHNoaWZ0NCwgdWludDMyX3QgbWFzazQsIHVpbnQzMl90ICpmaWVs
ZF92YWx1ZTQsCiAgdWludDhfdCBzaGlmdDUsIHVpbnQzMl90IG1hc2s1LCB1aW50MzJfdCAqZmll
bGRfdmFsdWU1LAogIHVpbnQ4X3Qgc2hpZnQ2LCB1aW50MzJfdCBtYXNrNiwgdWludDMyX3QgKmZp
ZWxkX3ZhbHVlNiwKICB1aW50OF90IHNoaWZ0NywgdWludDMyX3QgbWFzazcsIHVpbnQzMl90ICpm
aWVsZF92YWx1ZTcsCiAgdWludDhfdCBzaGlmdDgsIHVpbnQzMl90IG1hc2s4LCB1aW50MzJfdCAq
ZmllbGRfdmFsdWU4KTsKIyA0ODEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvcmVnX2hlbHBlci5oIgp2b2lkIGdlbmVyaWNfd3JpdGVfaW5kaXJlY3RfcmVn
KGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAgdWludDMyX3QgYWRkcl9pbmRleCwgdWlu
dDMyX3QgYWRkcl9kYXRhLAogIHVpbnQzMl90IGluZGV4LCB1aW50MzJfdCBkYXRhKTsKCnVpbnQz
Ml90IGdlbmVyaWNfcmVhZF9pbmRpcmVjdF9yZWcoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0
eCwKICB1aW50MzJfdCBhZGRyX2luZGV4LCB1aW50MzJfdCBhZGRyX2RhdGEsCiAgdWludDMyX3Qg
aW5kZXgpOwoKdWludDMyX3QgZ2VuZXJpY19pbmRpcmVjdF9yZWdfZ2V0KGNvbnN0IHN0cnVjdCBk
Y19jb250ZXh0ICpjdHgsCiAgdWludDMyX3QgYWRkcl9pbmRleCwgdWludDMyX3QgYWRkcl9kYXRh
LAogIHVpbnQzMl90IGluZGV4LCBpbnQgbiwKICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFz
azEsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCiAgLi4uKTsKCnVpbnQzMl90IGdlbmVyaWNfaW5k
aXJlY3RfcmVnX3VwZGF0ZV9leChjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIHVpbnQz
Ml90IGFkZHJfaW5kZXgsIHVpbnQzMl90IGFkZHJfZGF0YSwKICB1aW50MzJfdCBpbmRleCwgdWlu
dDMyX3QgcmVnX3ZhbCwgaW50IG4sCiAgdWludDhfdCBzaGlmdDEsIHVpbnQzMl90IG1hc2sxLCB1
aW50MzJfdCBmaWVsZF92YWx1ZTEsCiAgLi4uKTsKIyAzNyAiZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIgMgojIDEgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5o
IiAxCiMgMzggImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21n
ci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZG1faGVscGVycy5oIiAxCiMgMzQgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9oZWxwZXJzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiIDEKIyAzNSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX2hlbHBlcnMuaCIgMgoKc3RydWN0IGRwX21z
dF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZTsKCmVudW0gZGNfZWRpZF9zdGF0dXMgZG1faGVscGVy
c19wYXJzZV9lZGlkX2NhcHMoCiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogY29uc3Qgc3RydWN0
IGRjX2VkaWQgKmVkaWQsCiBzdHJ1Y3QgZGNfZWRpZF9jYXBzICplZGlkX2NhcHMpOwoKCgoKCnZv
aWQgZG1faGVscGVyc19kcF91cGRhdGVfYnJhbmNoX2luZm8oCiAgc3RydWN0IGRjX2NvbnRleHQg
KmN0eCwKICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CgoKCgpib29sIGRtX2hlbHBlcnNf
ZHBfbXN0X3dyaXRlX3BheWxvYWRfYWxsb2NhdGlvbl90YWJsZSgKICBzdHJ1Y3QgZGNfY29udGV4
dCAqY3R4LAogIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKICBzdHJ1Y3Qg
ZHBfbXN0X3N0cmVhbV9hbGxvY2F0aW9uX3RhYmxlICpwcm9wb3NlZF90YWJsZSwKICBib29sIGVu
YWJsZSk7CgoKCgp2b2lkIGRtX2hlbHBlcnNfZHBfbXN0X3BvbGxfcGVuZGluZ19kb3duX3JlcGx5
KAogc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsK
CgoKCnZvaWQgZG1faGVscGVyc19kcF9tc3RfY2xlYXJfcGF5bG9hZF9hbGxvY2F0aW9uX3RhYmxl
KAogc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsK
CgoKCmVudW0gYWN0X3JldHVybl9zdGF0dXMgZG1faGVscGVyc19kcF9tc3RfcG9sbF9mb3JfYWxs
b2NhdGlvbl9jaGFuZ2VfdHJpZ2dlcigKICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIGNvbnN0
IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CgoKCmJvb2wgZG1faGVscGVyc19kcF9t
c3Rfc2VuZF9wYXlsb2FkX2FsbG9jYXRpb24oCiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKICBj
b25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgYm9vbCBlbmFibGUpOwoKYm9v
bCBkbV9oZWxwZXJzX2RwX21zdF9zdGFydF90b3BfbWdyKAogIHN0cnVjdCBkY19jb250ZXh0ICpj
dHgsCiAgY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmssCiAgYm9vbCBib290KTsKCnZvaWQgZG1f
aGVscGVyc19kcF9tc3Rfc3RvcF90b3BfbWdyKAogIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAg
Y29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspOwoKCgpib29sIGRtX2hlbHBlcnNfZHBfcmVhZF9k
cGNkKAogIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAgY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxp
bmssCiAgdWludDMyX3QgYWRkcmVzcywKICB1aW50OF90ICpkYXRhLAogIHVpbnQzMl90IHNpemUp
OwoKCgoKYm9vbCBkbV9oZWxwZXJzX2RwX3dyaXRlX2RwY2QoCiAgc3RydWN0IGRjX2NvbnRleHQg
KmN0eCwKICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluaywKICB1aW50MzJfdCBhZGRyZXNzLAog
IGNvbnN0IHVpbnQ4X3QgKmRhdGEsCiAgdWludDMyX3Qgc2l6ZSk7Cgpib29sIGRtX2hlbHBlcnNf
c3VibWl0X2kyYygKICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIGNvbnN0IHN0cnVjdCBkY19s
aW5rICpsaW5rLAogIHN0cnVjdCBpMmNfY29tbWFuZCAqY21kKTsKCmJvb2wgZG1faGVscGVyc19k
cF93cml0ZV9kc2NfZW5hYmxlKAogIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAgY29uc3Qgc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAogIGJvb2wgZW5hYmxlCik7CmJvb2wgZG1faGVs
cGVyc19pc19kcF9zaW5rX3ByZXNlbnQoCiAgc3RydWN0IGRjX2xpbmsgKmxpbmspOwoKZW51bSBk
Y19lZGlkX3N0YXR1cyBkbV9oZWxwZXJzX3JlYWRfbG9jYWxfZWRpZCgKICBzdHJ1Y3QgZGNfY29u
dGV4dCAqY3R4LAogIHN0cnVjdCBkY19saW5rICpsaW5rLAogIHN0cnVjdCBkY19zaW5rICpzaW5r
KTsKCnZvaWQgZG1fc2V0X2Rjbl9jbG9ja3MoCiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKICBz
dHJ1Y3QgZGNfY2xvY2tzICpjbGtzKTsKIyAzOSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIgMgoKIyAxICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiIDEKIyAzOCAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgpl
bnVtIGF0b21fYmlvc19oZWFkZXJfdmVyc2lvbl9kZWZ7CiAgQVRPTV9NQUpPUl9WRVJTSU9OID0w
eDAwMDMsCiAgQVRPTV9NSU5PUl9WRVJTSU9OID0weDAwMDMsCn07CiMgNTcgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKZW51bSBhdG9tX2Ny
dGNfZGVmewogIEFUT01fQ1JUQzEgPTAsCiAgQVRPTV9DUlRDMiA9MSwKICBBVE9NX0NSVEMzID0y
LAogIEFUT01fQ1JUQzQgPTMsCiAgQVRPTV9DUlRDNSA9NCwKICBBVE9NX0NSVEM2ID01LAogIEFU
T01fQ1JUQ19JTlZBTElEID0weGZmLAp9OwoKZW51bSBhdG9tX3BwbGxfZGVmewogIEFUT01fUFBM
TDAgPTIsCiAgQVRPTV9HQ0tfREZTID04LAogIEFUT01fRkNIX0NMSyA9OSwKICBBVE9NX0RQX0RU
TyA9MTEsCiAgQVRPTV9DT01CT1BIWV9QTEwwID0yMCwKICBBVE9NX0NPTUJPUEhZX1BMTDEgPTIx
LAogIEFUT01fQ09NQk9QSFlfUExMMiA9MjIsCiAgQVRPTV9DT01CT1BIWV9QTEwzID0yMywKICBB
VE9NX0NPTUJPUEhZX1BMTDQgPTI0LAogIEFUT01fQ09NQk9QSFlfUExMNSA9MjUsCiAgQVRPTV9Q
UExMX0lOVkFMSUQgPTB4ZmYsCn07CgoKZW51bSBhdG9tX2RpZ19kZWZ7CiAgQVNJQ19JTlRfRElH
MV9FTkNPREVSX0lEID0weDAzLAogIEFTSUNfSU5UX0RJRzJfRU5DT0RFUl9JRCA9MHgwOSwKICBB
U0lDX0lOVF9ESUczX0VOQ09ERVJfSUQgPTB4MGEsCiAgQVNJQ19JTlRfRElHNF9FTkNPREVSX0lE
ID0weDBiLAogIEFTSUNfSU5UX0RJRzVfRU5DT0RFUl9JRCA9MHgwYywKICBBU0lDX0lOVF9ESUc2
X0VOQ09ERVJfSUQgPTB4MGQsCiAgQVNJQ19JTlRfRElHN19FTkNPREVSX0lEID0weDBlLAp9OwoK
CmVudW0gYXRvbV9lbmNvZGVfbW9kZV9kZWYKewogIEFUT01fRU5DT0RFUl9NT0RFX0RQID0wLAog
IEFUT01fRU5DT0RFUl9NT0RFX0RQX1NTVCA9MCwKICBBVE9NX0VOQ09ERVJfTU9ERV9MVkRTID0x
LAogIEFUT01fRU5DT0RFUl9NT0RFX0RWSSA9MiwKICBBVE9NX0VOQ09ERVJfTU9ERV9IRE1JID0z
LAogIEFUT01fRU5DT0RFUl9NT0RFX0RQX0FVRElPID01LAogIEFUT01fRU5DT0RFUl9NT0RFX0RQ
X01TVCA9NSwKICBBVE9NX0VOQ09ERVJfTU9ERV9DUlQgPTE1LAogIEFUT01fRU5DT0RFUl9NT0RF
X0RWTyA9MTYsCn07CgplbnVtIGF0b21fZW5jb2Rlcl9yZWZjbGtfc3JjX2RlZnsKICBFTkNPREVS
X1JFRkNMS19TUkNfUDFQTEwgPTAsCiAgRU5DT0RFUl9SRUZDTEtfU1JDX1AyUExMID0xLAogIEVO
Q09ERVJfUkVGQ0xLX1NSQ19QM1BMTCA9MiwKICBFTkNPREVSX1JFRkNMS19TUkNfRVhUQ0xLID0z
LAogIEVOQ09ERVJfUkVGQ0xLX1NSQ19JTlZBTElEID0weGZmLAp9OwoKZW51bSBhdG9tX3NjYWxl
cl9kZWZ7CiAgQVRPTV9TQ0FMRVJfRElTQUJMRSA9MCwKICBBVE9NX1NDQUxFUl9DRU5URVIgPTEs
CiAgQVRPTV9TQ0FMRVJfRVhQQU5TSU9OID0yLAp9OwoKZW51bSBhdG9tX29wZXJhdGlvbl9kZWZ7
CiAgQVRPTV9ESVNBQkxFID0gMCwKICBBVE9NX0VOQUJMRSA9IDEsCiAgQVRPTV9JTklUID0gNywK
ICBBVE9NX0dFVF9TVEFUVVMgPSA4LAp9OwoKZW51bSBhdG9tX2VtYmVkZGVkX2Rpc3BsYXlfb3Bf
ZGVmewogIEFUT01fTENEX0JMX09GRiA9IDIsCiAgQVRPTV9MQ0RfQkxfT00gPSAzLAogIEFUT01f
TENEX0JMX0JSSUdIVE5FU1NfQ09OVFJPTCA9IDQsCiAgQVRPTV9MQ0RfU0VMRlRFU1RfU1RBUlQg
PSA1LAogIEFUT01fTENEX1NFTEZURVNUX1NUT1AgPSA2LAp9OwoKZW51bSBhdG9tX3NwcmVhZF9z
cGVjdHJ1bV9tb2RlewogIEFUT01fU1NfQ0VOVEVSX09SX0RPV05fTU9ERV9NQVNLID0gMHgwMSwK
ICBBVE9NX1NTX0RPV05fU1BSRUFEX01PREUgPSAweDAwLAogIEFUT01fU1NfQ0VOVFJFX1NQUkVB
RF9NT0RFID0gMHgwMSwKICBBVE9NX0lOVF9PUl9FWFRfU1NfTUFTSyA9IDB4MDIsCiAgQVRPTV9J
TlRFUk5BTF9TU19NQVNLID0gMHgwMCwKICBBVE9NX0VYVEVSTkFMX1NTX01BU0sgPSAweDAyLAp9
OwoKCmVudW0gYXRvbV9wYW5lbF9iaXRfcGVyX2NvbG9yewogIFBBTkVMX0JQQ19VTkRFRklORSA9
MHgwMCwKICBQQU5FTF82QklUX1BFUl9DT0xPUiA9MHgwMSwKICBQQU5FTF84QklUX1BFUl9DT0xP
UiA9MHgwMiwKICBQQU5FTF8xMEJJVF9QRVJfQ09MT1IgPTB4MDMsCiAgUEFORUxfMTJCSVRfUEVS
X0NPTE9SID0weDA0LAogIFBBTkVMXzE2QklUX1BFUl9DT0xPUiA9MHgwNSwKfTsKCgplbnVtIGF0
b21fdm9sdGFnZV90eXBlCnsKICBWT0xUQUdFX1RZUEVfVkREQyA9IDEsCiAgVk9MVEFHRV9UWVBF
X01WRERDID0gMiwKICBWT0xUQUdFX1RZUEVfTVZERFEgPSAzLAogIFZPTFRBR0VfVFlQRV9WRERD
SSA9IDQsCiAgVk9MVEFHRV9UWVBFX1ZEREdGWCA9IDUsCiAgVk9MVEFHRV9UWVBFX1BDQyA9IDYs
CiAgVk9MVEFHRV9UWVBFX01WUFAgPSA3LAogIFZPTFRBR0VfVFlQRV9MRUREUE0gPSA4LAogIFZP
TFRBR0VfVFlQRV9QQ0NfTVZERCA9IDksCiAgVk9MVEFHRV9UWVBFX1BDSUVfVkREQyA9IDEwLAog
IFZPTFRBR0VfVFlQRV9QQ0lFX1ZERFIgPSAxMSwKICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNf
MSA9IDB4MTEsCiAgVk9MVEFHRV9UWVBFX0dFTkVSSUNfSTJDXzIgPSAweDEyLAogIFZPTFRBR0Vf
VFlQRV9HRU5FUklDX0kyQ18zID0gMHgxMywKICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNfNCA9
IDB4MTQsCiAgVk9MVEFHRV9UWVBFX0dFTkVSSUNfSTJDXzUgPSAweDE1LAogIFZPTFRBR0VfVFlQ
RV9HRU5FUklDX0kyQ182ID0gMHgxNiwKICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNfNyA9IDB4
MTcsCiAgVk9MVEFHRV9UWVBFX0dFTkVSSUNfSTJDXzggPSAweDE4LAogIFZPTFRBR0VfVFlQRV9H
RU5FUklDX0kyQ185ID0gMHgxOSwKICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNfMTAgPSAweDFB
LAp9OwoKZW51bSBhdG9tX2RncHVfdnJhbV90eXBlIHsKICBBVE9NX0RHUFVfVlJBTV9UWVBFX0dE
RFI1ID0gMHg1MCwKICBBVE9NX0RHUFVfVlJBTV9UWVBFX0hCTTIgPSAweDYwLAogIEFUT01fREdQ
VV9WUkFNX1RZUEVfR0REUjYgPSAweDcwLAp9OwoKZW51bSBhdG9tX2RwX3ZzX3ByZWVtcGhfZGVm
ewogIERQX1ZTX0xFVkVMMF9QUkVFTVBIX0xFVkVMMCA9IDB4MDAsCiAgRFBfVlNfTEVWRUwxX1BS
RUVNUEhfTEVWRUwwID0gMHgwMSwKICBEUF9WU19MRVZFTDJfUFJFRU1QSF9MRVZFTDAgPSAweDAy
LAogIERQX1ZTX0xFVkVMM19QUkVFTVBIX0xFVkVMMCA9IDB4MDMsCiAgRFBfVlNfTEVWRUwwX1BS
RUVNUEhfTEVWRUwxID0gMHgwOCwKICBEUF9WU19MRVZFTDFfUFJFRU1QSF9MRVZFTDEgPSAweDA5
LAogIERQX1ZTX0xFVkVMMl9QUkVFTVBIX0xFVkVMMSA9IDB4MGEsCiAgRFBfVlNfTEVWRUwwX1BS
RUVNUEhfTEVWRUwyID0gMHgxMCwKICBEUF9WU19MRVZFTDFfUFJFRU1QSF9MRVZFTDIgPSAweDEx
LAogIERQX1ZTX0xFVkVMMF9QUkVFTVBIX0xFVkVMMyA9IDB4MTgsCn07CiMgMjA4ICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiCiNwcmFnbWEg
cGFjaygxKQoKZW51bSBhdG9tYmlvc19pbWFnZV9vZmZzZXR7Ck9GRlNFVF9UT19BVE9NX1JPTV9I
RUFERVJfUE9JTlRFUiA9MHgwMDAwMDA0OCwKT0ZGU0VUX1RPX0FUT01fUk9NX0lNQUdFX1NJWkUg
PTB4MDAwMDAwMDIsCk9GRlNFVF9UT19BVE9NQklPU19BU0lDX0JVU19NRU1fVFlQRSA9MHg5NCwK
TUFYU0laRV9PRl9BVE9NQklPU19BU0lDX0JVU19NRU1fVFlQRSA9MjAsCk9GRlNFVF9UT19HRVRf
QVRPTUJJT1NfTlVNQkVSX09GX1NUUklOR1MgPTB4MmYsCk9GRlNFVF9UT19HRVRfQVRPTUJJT1Nf
U1RSSU5HX1NUQVJUID0weDZlLAp9OwoKCgoKCgoKc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hl
YWRlcgp7CiAgdWludDE2X3Qgc3RydWN0dXJlc2l6ZTsKICB1aW50OF90IGZvcm1hdF9yZXZpc2lv
bjsKICB1aW50OF90IGNvbnRlbnRfcmV2aXNpb247Cn07CgoKCgpzdHJ1Y3QgYXRvbV9yb21faGVh
ZGVyX3YyXzIKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVy
OwogIHVpbnQ4X3QgYXRvbV9iaW9zX3N0cmluZ1s0XTsKICB1aW50MTZfdCBiaW9zX3NlZ21lbnRf
YWRkcmVzczsKICB1aW50MTZfdCBwcm90ZWN0ZWRtb2Rlb2Zmc2V0OwogIHVpbnQxNl90IGNvbmZp
Z2ZpbGVuYW1lb2Zmc2V0OwogIHVpbnQxNl90IGNyY19ibG9ja19vZmZzZXQ7CiAgdWludDE2X3Qg
dmJpb3NfYm9vdHVwbWVzc2FnZW9mZnNldDsKICB1aW50MTZfdCBpbnQxMF9vZmZzZXQ7CiAgdWlu
dDE2X3QgcGNpYnVzZGV2aW5pdGNvZGU7CiAgdWludDE2X3QgaW9iYXNlYWRkcmVzczsKICB1aW50
MTZfdCBzdWJzeXN0ZW1fdmVuZG9yX2lkOwogIHVpbnQxNl90IHN1YnN5c3RlbV9pZDsKICB1aW50
MTZfdCBwY2lfaW5mb19vZmZzZXQ7CiAgdWludDE2X3QgbWFzdGVyaHdmdW5jdGlvbl9vZmZzZXQ7
CiAgdWludDE2X3QgbWFzdGVyZGF0YXRhYmxlX29mZnNldDsKICB1aW50MTZfdCByZXNlcnZlZDsK
ICB1aW50MzJfdCBwc3BkaXJ0YWJsZW9mZnNldDsKfTsKIyAyNjQgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKc3RydWN0IGF0b21fbWFzdGVy
X2xpc3Rfb2ZfY29tbWFuZF9mdW5jdGlvbnNfdjJfMXsKICB1aW50MTZfdCBhc2ljX2luaXQ7CiAg
dWludDE2X3QgY21kX2Z1bmN0aW9uMTsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yOwogIHVpbnQx
Nl90IGNtZF9mdW5jdGlvbjM7CiAgdWludDE2X3QgZGlneGVuY29kZXJjb250cm9sOwogIHVpbnQx
Nl90IGNtZF9mdW5jdGlvbjU7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNjsKICB1aW50MTZfdCBj
bWRfZnVuY3Rpb243OwogIHVpbnQxNl90IGNtZF9mdW5jdGlvbjg7CiAgdWludDE2X3QgY21kX2Z1
bmN0aW9uOTsKICB1aW50MTZfdCBzZXRlbmdpbmVjbG9jazsKICB1aW50MTZfdCBzZXRtZW1vcnlj
bG9jazsKICB1aW50MTZfdCBzZXRwaXhlbGNsb2NrOwogIHVpbnQxNl90IGVuYWJsZWRpc3Bwb3dl
cmdhdGluZzsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24xNDsKICB1aW50MTZfdCBjbWRfZnVuY3Rp
b24xNTsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24xNjsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24x
NzsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24xODsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24xOTsK
ICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yMDsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yMTsKICB1
aW50MTZfdCBjbWRfZnVuY3Rpb24yMjsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yMzsKICB1aW50
MTZfdCBjbWRfZnVuY3Rpb24yNDsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yNTsKICB1aW50MTZf
dCBjbWRfZnVuY3Rpb24yNjsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yNzsKICB1aW50MTZfdCBj
bWRfZnVuY3Rpb24yODsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yOTsKICB1aW50MTZfdCBjbWRf
ZnVuY3Rpb24zMDsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zMTsKICB1aW50MTZfdCBjbWRfZnVu
Y3Rpb24zMjsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zMzsKICB1aW50MTZfdCBibGFua2NydGM7
CiAgdWludDE2X3QgZW5hYmxlY3J0YzsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zNjsKICB1aW50
MTZfdCBjbWRfZnVuY3Rpb24zNzsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zODsKICB1aW50MTZf
dCBjbWRfZnVuY3Rpb24zOTsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb240MDsKICB1aW50MTZfdCBn
ZXRzbXVjbG9ja2luZm87CiAgdWludDE2X3Qgc2VsZWN0Y3J0Y19zb3VyY2U7CiAgdWludDE2X3Qg
Y21kX2Z1bmN0aW9uNDM7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNDQ7CiAgdWludDE2X3QgY21k
X2Z1bmN0aW9uNDU7CiAgdWludDE2X3Qgc2V0ZGNlY2xvY2s7CiAgdWludDE2X3QgZ2V0bWVtb3J5
Y2xvY2s7CiAgdWludDE2X3QgZ2V0ZW5naW5lY2xvY2s7CiAgdWludDE2X3Qgc2V0Y3J0Y191c2lu
Z2R0ZHRpbWluZzsKICB1aW50MTZfdCBleHRlcm5hbGVuY29kZXJjb250cm9sOwogIHVpbnQxNl90
IGNtZF9mdW5jdGlvbjUxOwogIHVpbnQxNl90IGNtZF9mdW5jdGlvbjUyOwogIHVpbnQxNl90IGNt
ZF9mdW5jdGlvbjUzOwogIHVpbnQxNl90IHByb2Nlc3NpMmNjaGFubmVsdHJhbnNhY3Rpb247CiAg
dWludDE2X3QgY21kX2Z1bmN0aW9uNTU7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNTY7CiAgdWlu
dDE2X3QgY21kX2Z1bmN0aW9uNTc7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNTg7CiAgdWludDE2
X3QgY21kX2Z1bmN0aW9uNTk7CiAgdWludDE2X3QgY29tcHV0ZWdwdWNsb2NrcGFyYW07CiAgdWlu
dDE2X3QgY21kX2Z1bmN0aW9uNjE7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNjI7CiAgdWludDE2
X3QgZHluYW1pY21lbW9yeXNldHRpbmdzOwogIHVpbnQxNl90IG1lbW9yeXRyYWluaW5nOwogIHVp
bnQxNl90IGNtZF9mdW5jdGlvbjY1OwogIHVpbnQxNl90IGNtZF9mdW5jdGlvbjY2OwogIHVpbnQx
Nl90IHNldHZvbHRhZ2U7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNjg7CiAgdWludDE2X3QgcmVh
ZGVmdXNldmFsdWU7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNzA7CiAgdWludDE2X3QgY21kX2Z1
bmN0aW9uNzE7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNzI7CiAgdWludDE2X3QgY21kX2Z1bmN0
aW9uNzM7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNzQ7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9u
NzU7CiAgdWludDE2X3QgZGlnMXRyYW5zbWl0dGVyY29udHJvbDsKICB1aW50MTZfdCBjbWRfZnVu
Y3Rpb243NzsKICB1aW50MTZfdCBwcm9jZXNzYXV4Y2hhbm5lbHRyYW5zYWN0aW9uOwogIHVpbnQx
Nl90IGNtZF9mdW5jdGlvbjc5OwogIHVpbnQxNl90IGdldHZvbHRhZ2VpbmZvOwp9OwoKc3RydWN0
IGF0b21fbWFzdGVyX2NvbW1hbmRfZnVuY3Rpb25fdjJfMQp7CiAgc3RydWN0IGF0b21fY29tbW9u
X3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiAgc3RydWN0IGF0b21fbWFzdGVyX2xpc3Rfb2Zf
Y29tbWFuZF9mdW5jdGlvbnNfdjJfMSBsaXN0b2ZjbWRmdW5jdGlvbnM7Cn07CgoKCgpzdHJ1Y3Qg
YXRvbV9mdW5jdGlvbl9hdHRyaWJ1dGUKewogIHVpbnQxNl90IHdzX2luX2J5dGVzOjg7CiAgdWlu
dDE2X3QgcHNfaW5fYnl0ZXM6NzsKICB1aW50MTZfdCB1cGRhdGVkX2J5X3V0aWw6MTsKfTsKCgoK
CgoKCnN0cnVjdCBhdG9tX3JvbV9od19mdW5jdGlvbl9oZWFkZXIKewogIHN0cnVjdCBhdG9tX2Nv
bW1vbl90YWJsZV9oZWFkZXIgZnVuY19oZWFkZXI7CiAgc3RydWN0IGF0b21fZnVuY3Rpb25fYXR0
cmlidXRlIGZ1bmNfYXR0cmliOwp9OwoKCgoKCgoKc3RydWN0IGF0b21fbWFzdGVyX2xpc3Rfb2Zf
ZGF0YV90YWJsZXNfdjJfMXsKICB1aW50MTZfdCB1dGlsaXR5cGlwZWxpbmU7CiAgdWludDE2X3Qg
bXVsdGltZWRpYV9pbmZvOwogIHVpbnQxNl90IHNtY19kcG1faW5mbzsKICB1aW50MTZfdCBzd19k
YXRhdGFibGUzOwogIHVpbnQxNl90IGZpcm13YXJlaW5mbzsKICB1aW50MTZfdCBzd19kYXRhdGFi
bGU1OwogIHVpbnQxNl90IGxjZF9pbmZvOwogIHVpbnQxNl90IHN3X2RhdGF0YWJsZTc7CiAgdWlu
dDE2X3Qgc211X2luZm87CiAgdWludDE2X3Qgc3dfZGF0YXRhYmxlOTsKICB1aW50MTZfdCBzd19k
YXRhdGFibGUxMDsKICB1aW50MTZfdCB2cmFtX3VzYWdlYnlmaXJtd2FyZTsKICB1aW50MTZfdCBn
cGlvX3Bpbl9sdXQ7CiAgdWludDE2X3Qgc3dfZGF0YXRhYmxlMTM7CiAgdWludDE2X3QgZ2Z4X2lu
Zm87CiAgdWludDE2X3QgcG93ZXJwbGF5aW5mbzsKICB1aW50MTZfdCBzd19kYXRhdGFibGUxNjsK
ICB1aW50MTZfdCBzd19kYXRhdGFibGUxNzsKICB1aW50MTZfdCBzd19kYXRhdGFibGUxODsKICB1
aW50MTZfdCBzd19kYXRhdGFibGUxOTsKICB1aW50MTZfdCBzd19kYXRhdGFibGUyMDsKICB1aW50
MTZfdCBzd19kYXRhdGFibGUyMTsKICB1aW50MTZfdCBkaXNwbGF5b2JqZWN0aW5mbzsKICB1aW50
MTZfdCBpbmRpcmVjdGlvYWNjZXNzOwogIHVpbnQxNl90IHVtY19pbmZvOwogIHVpbnQxNl90IHN3
X2RhdGF0YWJsZTI1OwogIHVpbnQxNl90IHN3X2RhdGF0YWJsZTI2OwogIHVpbnQxNl90IGRjZV9p
bmZvOwogIHVpbnQxNl90IHZyYW1faW5mbzsKICB1aW50MTZfdCBzd19kYXRhdGFibGUyOTsKICB1
aW50MTZfdCBpbnRlZ3JhdGVkc3lzdGVtaW5mbzsKICB1aW50MTZfdCBhc2ljX3Byb2ZpbGluZ19p
bmZvOwogIHVpbnQxNl90IHZvbHRhZ2VvYmplY3RfaW5mbzsKICB1aW50MTZfdCBzd19kYXRhdGFi
bGUzMzsKICB1aW50MTZfdCBzd19kYXRhdGFibGUzNDsKfTsKCgpzdHJ1Y3QgYXRvbV9tYXN0ZXJf
ZGF0YV90YWJsZV92Ml8xCnsKICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxl
X2hlYWRlcjsKICBzdHJ1Y3QgYXRvbV9tYXN0ZXJfbGlzdF9vZl9kYXRhX3RhYmxlc192Ml8xIGxp
c3RPZmRhdGF0YWJsZXM7Cn07CgoKc3RydWN0IGF0b21fZHRkX2Zvcm1hdAp7CiAgdWludDE2X3Qg
cGl4Y2xrOwogIHVpbnQxNl90IGhfYWN0aXZlOwogIHVpbnQxNl90IGhfYmxhbmtpbmdfdGltZTsK
ICB1aW50MTZfdCB2X2FjdGl2ZTsKICB1aW50MTZfdCB2X2JsYW5raW5nX3RpbWU7CiAgdWludDE2
X3QgaF9zeW5jX29mZnNldDsKICB1aW50MTZfdCBoX3N5bmNfd2lkdGg7CiAgdWludDE2X3Qgdl9z
eW5jX29mZnNldDsKICB1aW50MTZfdCB2X3N5bmN3aWR0aDsKICB1aW50MTZfdCByZXNlcnZlZDsK
ICB1aW50MTZfdCByZXNlcnZlZDA7CiAgdWludDhfdCBoX2JvcmRlcjsKICB1aW50OF90IHZfYm9y
ZGVyOwogIHVpbnQxNl90IG1pc2NpbmZvOwogIHVpbnQ4X3QgYXRvbV9tb2RlX2lkOwogIHVpbnQ4
X3QgcmVmcmVzaHJhdGU7Cn07CgoKZW51bSBhdG9tX2R0ZF9mb3JtYXRfbW9kZW1pc2NpbmZvewog
IEFUT01fSFNZTkNfUE9MQVJJVFkgPSAweDAwMDIsCiAgQVRPTV9WU1lOQ19QT0xBUklUWSA9IDB4
MDAwNCwKICBBVE9NX0hfUkVQTElDQVRJT05CWTIgPSAweDAwMTAsCiAgQVRPTV9WX1JFUExJQ0FU
SU9OQlkyID0gMHgwMDIwLAogIEFUT01fSU5URVJMQUNFID0gMHgwMDgwLAogIEFUT01fQ09NUE9T
SVRFU1lOQyA9IDB4MDA0MCwKfTsKIyA0NzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKc3RydWN0IGF0b21fZmlybXdhcmVfaW5mb192M18x
CnsKICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50
MzJfdCBmaXJtd2FyZV9yZXZpc2lvbjsKICB1aW50MzJfdCBib290dXBfc2Nsa19pbjEwa2h6Owog
IHVpbnQzMl90IGJvb3R1cF9tY2xrX2luMTBraHo7CiAgdWludDMyX3QgZmlybXdhcmVfY2FwYWJp
bGl0eTsKICB1aW50MzJfdCBtYWluX2NhbGxfcGFyc2VyX2VudHJ5OwogIHVpbnQzMl90IGJpb3Nf
c2NyYXRjaF9yZWdfc3RhcnRhZGRyOwogIHVpbnQxNl90IGJvb3R1cF92ZGRjX212OwogIHVpbnQx
Nl90IGJvb3R1cF92ZGRjaV9tdjsKICB1aW50MTZfdCBib290dXBfbXZkZGNfbXY7CiAgdWludDE2
X3QgYm9vdHVwX3ZkZGdmeF9tdjsKICB1aW50OF90IG1lbV9tb2R1bGVfaWQ7CiAgdWludDhfdCBj
b29saW5nc29sdXRpb25faWQ7CiAgdWludDhfdCByZXNlcnZlZDFbMl07CiAgdWludDMyX3QgbWNf
YmFzZWFkZHJfaGlnaDsKICB1aW50MzJfdCBtY19iYXNlYWRkcl9sb3c7CiAgdWludDMyX3QgcmVz
ZXJ2ZWQyWzZdOwp9OwoKCmVudW0gYXRvbWJpb3NfZmlybXdhcmVfY2FwYWJpbGl0eQp7CiBBVE9N
X0ZJUk1XQVJFX0NBUF9GSVJNV0FSRV9QT1NURUQgPSAweDAwMDAwMDAxLAogQVRPTV9GSVJNV0FS
RV9DQVBfR1BVX1ZJUlRVQUxJWkFUSU9OID0gMHgwMDAwMDAwMiwKIEFUT01fRklSTVdBUkVfQ0FQ
X1dNSV9TVVBQT1JUID0gMHgwMDAwMDA0MCwKIEFUT01fRklSTVdBUkVfQ0FQX0hXRU1VX0VOQUJM
RSA9IDB4MDAwMDAwODAsCiBBVE9NX0ZJUk1XQVJFX0NBUF9IV0VNVV9VTUNfQ0ZHID0gMHgwMDAw
MDEwMCwKIEFUT01fRklSTVdBUkVfQ0FQX1NSQU1fRUNDID0gMHgwMDAwMDIwMCwKIEFUT01fRklS
TVdBUkVfQ0FQX0VOQUJMRV8yU1RBR0VfQklTVF9UUkFJTklORyA9IDB4MDAwMDA0MDAsCn07Cgpl
bnVtIGF0b21fY29vbGluZ19zb2x1dGlvbl9pZHsKICBBSVJfQ09PTElORyA9IDB4MDAsCiAgTElR
VUlEX0NPT0xJTkcgPSAweDAxCn07CgpzdHJ1Y3QgYXRvbV9maXJtd2FyZV9pbmZvX3YzXzIgewog
IHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQzMl90
IGZpcm13YXJlX3JldmlzaW9uOwogIHVpbnQzMl90IGJvb3R1cF9zY2xrX2luMTBraHo7CiAgdWlu
dDMyX3QgYm9vdHVwX21jbGtfaW4xMGtoejsKICB1aW50MzJfdCBmaXJtd2FyZV9jYXBhYmlsaXR5
OwogIHVpbnQzMl90IG1haW5fY2FsbF9wYXJzZXJfZW50cnk7CiAgdWludDMyX3QgYmlvc19zY3Jh
dGNoX3JlZ19zdGFydGFkZHI7CiAgdWludDE2X3QgYm9vdHVwX3ZkZGNfbXY7CiAgdWludDE2X3Qg
Ym9vdHVwX3ZkZGNpX212OwogIHVpbnQxNl90IGJvb3R1cF9tdmRkY19tdjsKICB1aW50MTZfdCBi
b290dXBfdmRkZ2Z4X212OwogIHVpbnQ4X3QgbWVtX21vZHVsZV9pZDsKICB1aW50OF90IGNvb2xp
bmdzb2x1dGlvbl9pZDsKICB1aW50OF90IHJlc2VydmVkMVsyXTsKICB1aW50MzJfdCBtY19iYXNl
YWRkcl9oaWdoOwogIHVpbnQzMl90IG1jX2Jhc2VhZGRyX2xvdzsKICB1aW50OF90IGJvYXJkX2ky
Y19mZWF0dXJlX2lkOwogIHVpbnQ4X3QgYm9hcmRfaTJjX2ZlYXR1cmVfZ3Bpb19pZDsKICB1aW50
OF90IGJvYXJkX2kyY19mZWF0dXJlX3NsYXZlX2FkZHI7CiAgdWludDhfdCByZXNlcnZlZDM7CiAg
dWludDE2X3QgYm9vdHVwX212ZGRxX212OwogIHVpbnQxNl90IGJvb3R1cF9tdnBwX212OwogIHVp
bnQzMl90IHpmYnN0YXJ0YWRkcmluMTZtYjsKICB1aW50MzJfdCByZXNlcnZlZDJbM107Cn07Cgpz
dHJ1Y3QgYXRvbV9maXJtd2FyZV9pbmZvX3YzXzMKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJs
ZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQzMl90IGZpcm13YXJlX3JldmlzaW9uOwogIHVp
bnQzMl90IGJvb3R1cF9zY2xrX2luMTBraHo7CiAgdWludDMyX3QgYm9vdHVwX21jbGtfaW4xMGto
ejsKICB1aW50MzJfdCBmaXJtd2FyZV9jYXBhYmlsaXR5OwogIHVpbnQzMl90IG1haW5fY2FsbF9w
YXJzZXJfZW50cnk7CiAgdWludDMyX3QgYmlvc19zY3JhdGNoX3JlZ19zdGFydGFkZHI7CiAgdWlu
dDE2X3QgYm9vdHVwX3ZkZGNfbXY7CiAgdWludDE2X3QgYm9vdHVwX3ZkZGNpX212OwogIHVpbnQx
Nl90IGJvb3R1cF9tdmRkY19tdjsKICB1aW50MTZfdCBib290dXBfdmRkZ2Z4X212OwogIHVpbnQ4
X3QgbWVtX21vZHVsZV9pZDsKICB1aW50OF90IGNvb2xpbmdzb2x1dGlvbl9pZDsKICB1aW50OF90
IHJlc2VydmVkMVsyXTsKICB1aW50MzJfdCBtY19iYXNlYWRkcl9oaWdoOwogIHVpbnQzMl90IG1j
X2Jhc2VhZGRyX2xvdzsKICB1aW50OF90IGJvYXJkX2kyY19mZWF0dXJlX2lkOwogIHVpbnQ4X3Qg
Ym9hcmRfaTJjX2ZlYXR1cmVfZ3Bpb19pZDsKICB1aW50OF90IGJvYXJkX2kyY19mZWF0dXJlX3Ns
YXZlX2FkZHI7CiAgdWludDhfdCByZXNlcnZlZDM7CiAgdWludDE2X3QgYm9vdHVwX212ZGRxX212
OwogIHVpbnQxNl90IGJvb3R1cF9tdnBwX212OwogIHVpbnQzMl90IHpmYnN0YXJ0YWRkcmluMTZt
YjsKICB1aW50MzJfdCBwcGxpYl9wcHRhYmxlX2lkOwogIHVpbnQzMl90IHJlc2VydmVkMlsyXTsK
fTsKCgoKCgoKCnN0cnVjdCBsY2RfaW5mb192Ml8xCnsKICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFi
bGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICBzdHJ1Y3QgYXRvbV9kdGRfZm9ybWF0IGxjZF90aW1p
bmc7CiAgdWludDE2X3QgYmFja2xpZ2h0X3B3bTsKICB1aW50MTZfdCBzcGVjaWFsX2hhbmRsZV9j
YXA7CiAgdWludDE2X3QgcGFuZWxfbWlzYzsKICB1aW50MTZfdCBsdmRzX21heF9zbGlua19wY2xr
OwogIHVpbnQxNl90IGx2ZHNfc3NfcGVyY2VudGFnZTsKICB1aW50MTZfdCBsdmRzX3NzX3JhdGVf
MTBoejsKICB1aW50OF90IHB3cl9vbl9kaWdvbl90b19kZTsKICB1aW50OF90IHB3cl9vbl9kZV90
b192YXJ5X2JsOwogIHVpbnQ4X3QgcHdyX2Rvd25fdmFyeV9ibG9mZl90b19kZTsKICB1aW50OF90
IHB3cl9kb3duX2RlX3RvX2RpZ29mZjsKICB1aW50OF90IHB3cl9vZmZfZGVsYXk7CiAgdWludDhf
dCBwd3Jfb25fdmFyeV9ibF90b19ibG9uOwogIHVpbnQ4X3QgcHdyX2Rvd25fYmxvZmZfdG9fdmFy
eV9ibG9mZjsKICB1aW50OF90IHBhbmVsX2JwYzsKICB1aW50OF90IGRwY2RfZWRwX2NvbmZpZ19j
YXA7CiAgdWludDhfdCBkcGNkX21heF9saW5rX3JhdGU7CiAgdWludDhfdCBkcGNkX21heF9sYW5l
X2NvdW50OwogIHVpbnQ4X3QgZHBjZF9tYXhfZG93bnNwcmVhZDsKICB1aW50OF90IG1pbl9hbGxv
d2VkX2JsX2xldmVsOwogIHVpbnQ4X3QgbWF4X2FsbG93ZWRfYmxfbGV2ZWw7CiAgdWludDhfdCBi
b290dXBfYmxfbGV2ZWw7CiAgdWludDhfdCBkcGx2ZHNyeGlkOwogIHVpbnQzMl90IHJlc2VydmVk
MVs4XTsKfTsKCgplbnVtIGF0b21fbGNkX2luZm9fcGFuZWxfbWlzY3sKICBBVE9NX1BBTkVMX01J
U0NfRlBESSA9MHgwMDAyLAp9OwoKCmVudW0gYXRvbV9sY2RfaW5mb19kcHRvbHZkc19yeF9pZAp7
CiAgZURQX1RPX0xWRFNfUlhfRElTQUJMRSA9IDB4MDAsCiAgZURQX1RPX0xWRFNfQ09NTU9OX0lE
ID0gMHgwMSwKICBlRFBfVE9fTFZEU19SRUFMVEVLX0lEID0gMHgwMiwKfTsKIyA2MjAgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKc3RydWN0
IGF0b21fZ3Bpb19waW5fYXNzaWdubWVudAp7CiAgdWludDMyX3QgZGF0YV9hX3JlZ19pbmRleDsK
ICB1aW50OF90IGdwaW9fYml0c2hpZnQ7CiAgdWludDhfdCBncGlvX21hc2tfYml0c2hpZnQ7CiAg
dWludDhfdCBncGlvX2lkOwogIHVpbnQ4X3QgcmVzZXJ2ZWQ7Cn07CgoKZW51bSBhdG9tX2dwaW9f
cGluX2Fzc2lnbm1lbnRfZ3Bpb19pZCB7CiAgSTJDX0hXX0xBTkVfTVVYID0weDBmLAogIEkyQ19I
V19FTkdJTkVfSURfTUFTSyA9MHg3MCwKICBJMkNfSFdfQ0FQID0weDgwLAoKCgogIFBDSUVfVkRE
Q19DT05UUk9MX0dQSU9fUElOSUQgPSA1NiwKCiAgUFBfQUNfRENfU1dJVENIX0dQSU9fUElOSUQg
PSA2MCwKCiAgVkREQ19WUkhPVF9HUElPX1BJTklEID0gNjEsCgogIFZERENfUENDX0dQSU9fUElO
SUQgPSA2MiwKCiAgRUZVU0VfQ1VUX0VOQUJMRV9HUElPX1BJTklEID0gNjMsCgogIERSQU1fU0VM
Rl9SRUZSRVNIX0dQSU9fUElOSUQgPSA2NCwKCiAgVEhFUk1BTF9JTlRfT1VUUFVUX0dQSU9fUElO
SUQgPTY1LAp9OwoKCnN0cnVjdCBhdG9tX2dwaW9fcGluX2x1dF92Ml8xCnsKICBzdHJ1Y3QgYXRv
bV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKCiAgc3RydWN0IGF0b21fZ3Bpb19w
aW5fYXNzaWdubWVudCBncGlvX3Bpbls4XTsKfTsKIyA2NjcgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKc3RydWN0IHZyYW1fdXNhZ2VieWZp
cm13YXJlX3YyXzEKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVh
ZGVyOwogIHVpbnQzMl90IHN0YXJ0X2FkZHJlc3NfaW5fa2I7CiAgdWludDE2X3QgdXNlZF9ieV9m
aXJtd2FyZV9pbl9rYjsKICB1aW50MTZfdCB1c2VkX2J5X2RyaXZlcl9pbl9rYjsKfTsKIyA2ODIg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIK
ZW51bSBhdG9tX29iamVjdF9yZWNvcmRfdHlwZV9pZAp7CiAgQVRPTV9JMkNfUkVDT1JEX1RZUEUg
PTEsCiAgQVRPTV9IUERfSU5UX1JFQ09SRF9UWVBFID0yLAogIEFUT01fT0JKRUNUX0dQSU9fQ05U
TF9SRUNPUkRfVFlQRSA9OSwKICBBVE9NX0NPTk5FQ1RPUl9IUERQSU5fTFVUX1JFQ09SRF9UWVBF
ID0xNiwKICBBVE9NX0NPTk5FQ1RPUl9BVVhERENfTFVUX1JFQ09SRF9UWVBFID0xNywKICBBVE9N
X0VOQ09ERVJfQ0FQX1JFQ09SRF9UWVBFPTIwLAogIEFUT01fQlJBQ0tFVF9MQVlPVVRfUkVDT1JE
X1RZUEU9MjEsCiAgQVRPTV9DT05ORUNUT1JfRk9SQ0VEX1RNRFNfQ0FQX1JFQ09SRF9UWVBFPTIy
LAogIEFUT01fUkVDT1JEX0VORF9UWVBFID0weEZGLAp9OwoKc3RydWN0IGF0b21fY29tbW9uX3Jl
Y29yZF9oZWFkZXIKewogIHVpbnQ4X3QgcmVjb3JkX3R5cGU7CiAgdWludDhfdCByZWNvcmRfc2l6
ZTsKfTsKCnN0cnVjdCBhdG9tX2kyY19yZWNvcmQKewogIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNv
cmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7CiAgdWludDhfdCBpMmNfaWQ7CiAgdWludDhfdCBpMmNf
c2xhdmVfYWRkcjsKfTsKCnN0cnVjdCBhdG9tX2hwZF9pbnRfcmVjb3JkCnsKICBzdHJ1Y3QgYXRv
bV9jb21tb25fcmVjb3JkX2hlYWRlciByZWNvcmRfaGVhZGVyOwogIHVpbnQ4X3QgcGluX2lkOwog
IHVpbnQ4X3QgcGx1Z2luX3Bpbl9zdGF0ZTsKfTsKCgplbnVtIGF0b21fZW5jb2Rlcl9jYXBzX2Rl
Zgp7CiAgQVRPTV9FTkNPREVSX0NBUF9SRUNPUkRfSEJSMiA9MHgwMSwKICBBVE9NX0VOQ09ERVJf
Q0FQX1JFQ09SRF9NU1RfRU4gPTB4MDEsCiAgQVRPTV9FTkNPREVSX0NBUF9SRUNPUkRfSEJSMl9F
TiA9MHgwMiwKICBBVE9NX0VOQ09ERVJfQ0FQX1JFQ09SRF9IRE1JNkdicHNfRU4gPTB4MDQsCiAg
QVRPTV9FTkNPREVSX0NBUF9SRUNPUkRfSEJSM19FTiA9MHgwOCwKICBBVE9NX0VOQ09ERVJfQ0FQ
X1JFQ09SRF9VU0JfQ19UWVBFID0weDEwMCwKfTsKCnN0cnVjdCBhdG9tX2VuY29kZXJfY2Fwc19y
ZWNvcmQKewogIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7
CiAgdWludDMyX3QgZW5jb2RlcmNhcHM7Cn07CgplbnVtIGF0b21fY29ubmVjdG9yX2NhcHNfZGVm
CnsKICBBVE9NX0NPTk5FQ1RPUl9DQVBfSU5URVJOQUxfRElTUExBWSA9IDB4MDEsCiAgQVRPTV9D
T05ORUNUT1JfQ0FQX0lOVEVSTkFMX0RJU1BMQVlfQkwgPSAweDAyLAp9OwoKc3RydWN0IGF0b21f
ZGlzcF9jb25uZWN0b3JfY2Fwc19yZWNvcmQKewogIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRf
aGVhZGVyIHJlY29yZF9oZWFkZXI7CiAgdWludDMyX3QgY29ubmVjdGNhcHM7Cn07CgoKc3RydWN0
IGF0b21fZ3Bpb19waW5fY29udHJvbF9wYWlyCnsKICB1aW50OF90IGdwaW9faWQ7CiAgdWludDhf
dCBncGlvX3BpbnN0YXRlOwp9OwoKc3RydWN0IGF0b21fb2JqZWN0X2dwaW9fY250bF9yZWNvcmQK
ewogIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7CiAgdWlu
dDhfdCBmbGFnOwogIHVpbnQ4X3QgbnVtYmVyX29mX3BpbnM7CiAgc3RydWN0IGF0b21fZ3Bpb19w
aW5fY29udHJvbF9wYWlyIGdwaW9bMV07Cn07CgoKZW51bSBhdG9tX2dwaW9fcGluX2NvbnRyb2xf
cGluc3RhdGVfZGVmCnsKICBHUElPX1BJTl9UWVBFX0lOUFVUID0gMHgwMCwKICBHUElPX1BJTl9U
WVBFX09VVFBVVCA9IDB4MTAsCiAgR1BJT19QSU5fVFlQRV9IV19DT05UUk9MID0gMHgyMCwKCgog
IEdQSU9fUElOX09VVFBVVF9TVEFURV9NQVNLID0gMHgwMSwKICBHUElPX1BJTl9PVVRQVVRfU1RB
VEVfU0hJRlQgPSAwLAogIEdQSU9fUElOX1NUQVRFX0FDVElWRV9MT1cgPSAweDAsCiAgR1BJT19Q
SU5fU1RBVEVfQUNUSVZFX0hJR0ggPSAweDEsCn07CgoKCmVudW0gYXRvbV9nbHN5bmNfcmVjb3Jk
X2dwaW9faW5kZXhfZGVmCnsKICBBVE9NX0dQSU9fSU5ERVhfR0xTWU5DX1JFRkNMSyA9IDAsCiAg
QVRPTV9HUElPX0lOREVYX0dMU1lOQ19IU1lOQyA9IDEsCiAgQVRPTV9HUElPX0lOREVYX0dMU1lO
Q19WU1lOQyA9IDIsCiAgQVRPTV9HUElPX0lOREVYX0dMU1lOQ19TV0FQX1JFUSA9IDMsCiAgQVRP
TV9HUElPX0lOREVYX0dMU1lOQ19TV0FQX0dOVCA9IDQsCiAgQVRPTV9HUElPX0lOREVYX0dMU1lO
Q19JTlRFUlJVUFQgPSA1LAogIEFUT01fR1BJT19JTkRFWF9HTFNZTkNfVl9SRVNFVCA9IDYsCiAg
QVRPTV9HUElPX0lOREVYX0dMU1lOQ19TV0FQX0NOVEwgPSA3LAogIEFUT01fR1BJT19JTkRFWF9H
TFNZTkNfU1dBUF9TRUwgPSA4LAogIEFUT01fR1BJT19JTkRFWF9HTFNZTkNfTUFYID0gOSwKfTsK
CgpzdHJ1Y3QgYXRvbV9jb25uZWN0b3JfaHBkcGluX2x1dF9yZWNvcmQKewogIHN0cnVjdCBhdG9t
X2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7CiAgdWludDhfdCBocGRfcGluX21h
cFs4XTsKfTsKCnN0cnVjdCBhdG9tX2Nvbm5lY3Rvcl9hdXhkZGNfbHV0X3JlY29yZAp7CiAgc3Ry
dWN0IGF0b21fY29tbW9uX3JlY29yZF9oZWFkZXIgcmVjb3JkX2hlYWRlcjsKICB1aW50OF90IGF1
eF9kZGNfbWFwWzhdOwp9OwoKc3RydWN0IGF0b21fY29ubmVjdG9yX2ZvcmNlZF90bWRzX2NhcF9y
ZWNvcmQKewogIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7
CgogIHVpbnQ4X3QgbWF4dG1kc2Nsa3JhdGVfaW4yXzVtaHo7CiAgdWludDhfdCByZXNlcnZlZDsK
fTsKCnN0cnVjdCBhdG9tX2Nvbm5lY3Rvcl9sYXlvdXRfaW5mbwp7CiAgdWludDE2X3QgY29ubmVj
dG9yb2JqaWQ7CiAgdWludDhfdCBjb25uZWN0b3JfdHlwZTsKICB1aW50OF90IHBvc2l0aW9uOwp9
OwoKCmVudW0gYXRvbV9jb25uZWN0b3JfbGF5b3V0X2luZm9fY29ubmVjdG9yX3R5cGVfZGVmCnsK
ICBDT05ORUNUT1JfVFlQRV9EVklfRCA9IDEsCgogIENPTk5FQ1RPUl9UWVBFX0hETUkgPSA0LAog
IENPTk5FQ1RPUl9UWVBFX0RJU1BMQVlfUE9SVCA9IDUsCiAgQ09OTkVDVE9SX1RZUEVfTUlOSV9E
SVNQTEFZX1BPUlQgPSA2LAp9OwoKc3RydWN0IGF0b21fYnJhY2tldF9sYXlvdXRfcmVjb3JkCnsK
ICBzdHJ1Y3QgYXRvbV9jb21tb25fcmVjb3JkX2hlYWRlciByZWNvcmRfaGVhZGVyOwogIHVpbnQ4
X3QgYnJhY2tldGxlbjsKICB1aW50OF90IGJyYWNrZXR3aWR0aDsKICB1aW50OF90IGNvbm5fbnVt
OwogIHVpbnQ4X3QgcmVzZXJ2ZWQ7CiAgc3RydWN0IGF0b21fY29ubmVjdG9yX2xheW91dF9pbmZv
IGNvbm5faW5mb1sxXTsKfTsKCmVudW0gYXRvbV9kaXNwbGF5X2RldmljZV90YWdfZGVmewogIEFU
T01fRElTUExBWV9MQ0QxX1NVUFBPUlQgPSAweDAwMDIsCiAgQVRPTV9ESVNQTEFZX0RGUDFfU1VQ
UE9SVCA9IDB4MDAwOCwKICBBVE9NX0RJU1BMQVlfREZQMl9TVVBQT1JUID0gMHgwMDgwLAogIEFU
T01fRElTUExBWV9ERlAzX1NVUFBPUlQgPSAweDAyMDAsCiAgQVRPTV9ESVNQTEFZX0RGUDRfU1VQ
UE9SVCA9IDB4MDQwMCwKICBBVE9NX0RJU1BMQVlfREZQNV9TVVBQT1JUID0gMHgwODAwLAogIEFU
T01fRElTUExBWV9ERlA2X1NVUFBPUlQgPSAweDAwNDAsCiAgQVRPTV9ESVNQTEFZX0RGUHhfU1VQ
UE9SVCA9IDB4MGVjOCwKfTsKCnN0cnVjdCBhdG9tX2Rpc3BsYXlfb2JqZWN0X3BhdGhfdjIKewog
IHVpbnQxNl90IGRpc3BsYXlfb2JqaWQ7CiAgdWludDE2X3QgZGlzcF9yZWNvcmRvZmZzZXQ7CiAg
dWludDE2X3QgZW5jb2Rlcm9iamlkOwogIHVpbnQxNl90IGV4dGVuY29kZXJvYmppZDsKICB1aW50
MTZfdCBlbmNvZGVyX3JlY29yZG9mZnNldDsKICB1aW50MTZfdCBleHRlbmNvZGVyX3JlY29yZG9m
ZnNldDsKICB1aW50MTZfdCBkZXZpY2VfdGFnOwogIHVpbnQ4X3QgcHJpb3JpdHlfaWQ7CiAgdWlu
dDhfdCByZXNlcnZlZDsKfTsKCnN0cnVjdCBkaXNwbGF5X29iamVjdF9pbmZvX3RhYmxlX3YxXzQK
ewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQx
Nl90IHN1cHBvcnRlZGRldmljZXM7CiAgdWludDhfdCBudW1iZXJfb2ZfcGF0aDsKICB1aW50OF90
IHJlc2VydmVkOwogIHN0cnVjdCBhdG9tX2Rpc3BsYXlfb2JqZWN0X3BhdGhfdjIgZGlzcGxheV9w
YXRoWzhdOwp9OwoKCgoKCgoKc3RydWN0IGF0b21fZGlzcGxheV9jb250cm9sbGVyX2luZm9fdjRf
MQp7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiAgdWlu
dDMyX3QgZGlzcGxheV9jYXBzOwogIHVpbnQzMl90IGJvb3R1cF9kaXNwY2xrXzEwa2h6OwogIHVp
bnQxNl90IGRjZV9yZWZjbGtfMTBraHo7CiAgdWludDE2X3QgaTJjX2VuZ2luZV9yZWZjbGtfMTBr
aHo7CiAgdWludDE2X3QgZHZpX3NzX3BlcmNlbnRhZ2U7CiAgdWludDE2X3QgZHZpX3NzX3JhdGVf
MTBoejsKICB1aW50MTZfdCBoZG1pX3NzX3BlcmNlbnRhZ2U7CiAgdWludDE2X3QgaGRtaV9zc19y
YXRlXzEwaHo7CiAgdWludDE2X3QgZHBfc3NfcGVyY2VudGFnZTsKICB1aW50MTZfdCBkcF9zc19y
YXRlXzEwaHo7CiAgdWludDhfdCBkdmlfc3NfbW9kZTsKICB1aW50OF90IGhkbWlfc3NfbW9kZTsK
ICB1aW50OF90IGRwX3NzX21vZGU7CiAgdWludDhfdCBzc19yZXNlcnZlZDsKICB1aW50OF90IGhh
cmRjb2RlX21vZGVfbnVtOwogIHVpbnQ4X3QgcmVzZXJ2ZWQxWzNdOwogIHVpbnQxNl90IGRwcGh5
X3JlZmNsa18xMGtoejsKICB1aW50MTZfdCByZXNlcnZlZDI7CiAgdWludDhfdCBkY2VpcF9taW5f
dmVyOwogIHVpbnQ4X3QgZGNlaXBfbWF4X3ZlcjsKICB1aW50OF90IG1heF9kaXNwX3BpcGVfbnVt
OwogIHVpbnQ4X3QgbWF4X3ZiaW9zX2FjdGl2ZV9kaXNwX3BpcGVfbnVtOwogIHVpbnQ4X3QgbWF4
X3BwbGxfbnVtOwogIHVpbnQ4X3QgbWF4X2Rpc3BfcGh5X251bTsKICB1aW50OF90IG1heF9hdXhf
cGFpcnM7CiAgdWludDhfdCByZW1vdGVkaXNwbGF5Y29uZmlnOwogIHVpbnQ4X3QgcmVzZXJ2ZWQz
WzhdOwp9OwoKCnN0cnVjdCBhdG9tX2Rpc3BsYXlfY29udHJvbGxlcl9pbmZvX3Y0XzIKewogIHN0
cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQzMl90IGRp
c3BsYXlfY2FwczsKICB1aW50MzJfdCBib290dXBfZGlzcGNsa18xMGtoejsKICB1aW50MTZfdCBk
Y2VfcmVmY2xrXzEwa2h6OwogIHVpbnQxNl90IGkyY19lbmdpbmVfcmVmY2xrXzEwa2h6OwogIHVp
bnQxNl90IGR2aV9zc19wZXJjZW50YWdlOwogIHVpbnQxNl90IGR2aV9zc19yYXRlXzEwaHo7CiAg
dWludDE2X3QgaGRtaV9zc19wZXJjZW50YWdlOwogIHVpbnQxNl90IGhkbWlfc3NfcmF0ZV8xMGh6
OwogIHVpbnQxNl90IGRwX3NzX3BlcmNlbnRhZ2U7CiAgdWludDE2X3QgZHBfc3NfcmF0ZV8xMGh6
OwogIHVpbnQ4X3QgZHZpX3NzX21vZGU7CiAgdWludDhfdCBoZG1pX3NzX21vZGU7CiAgdWludDhf
dCBkcF9zc19tb2RlOwogIHVpbnQ4X3Qgc3NfcmVzZXJ2ZWQ7CiAgdWludDhfdCBkZnBfaGFyZGNv
ZGVfbW9kZV9udW07CiAgdWludDhfdCBkZnBfaGFyZGNvZGVfcmVmcmVzaHJhdGU7CiAgdWludDhf
dCB2Z2FfaGFyZGNvZGVfbW9kZV9udW07CiAgdWludDhfdCB2Z2FfaGFyZGNvZGVfcmVmcmVzaHJh
dGU7CiAgdWludDE2X3QgZHBwaHlfcmVmY2xrXzEwa2h6OwogIHVpbnQxNl90IHJlc2VydmVkMjsK
ICB1aW50OF90IGRjbmlwX21pbl92ZXI7CiAgdWludDhfdCBkY25pcF9tYXhfdmVyOwogIHVpbnQ4
X3QgbWF4X2Rpc3BfcGlwZV9udW07CiAgdWludDhfdCBtYXhfdmJpb3NfYWN0aXZlX2Rpc3BfcGlw
ZV9udW07CiAgdWludDhfdCBtYXhfcHBsbF9udW07CiAgdWludDhfdCBtYXhfZGlzcF9waHlfbnVt
OwogIHVpbnQ4X3QgbWF4X2F1eF9wYWlyczsKICB1aW50OF90IHJlbW90ZWRpc3BsYXljb25maWc7
CiAgdWludDhfdCByZXNlcnZlZDNbOF07Cn07CgoKZW51bSBkY2VfaW5mb19jYXBzX2RlZgp7Cgog
IERDRV9JTkZPX0NBUFNfRk9SQ0VfRElTUERFVl9DT05ORUNURUQgPTB4MDIsCgogIERDRV9JTkZP
X0NBUFNfRElTQUJMRV9ERlBfRFBfSEJSMiA9MHgwNCwKCiAgRENFX0lORk9fQ0FQU19FTkFCTEVf
SU5URVJMQUNfVElNSU5HID0weDA4LAoKfTsKCgoKCgoKc3RydWN0IGF0b21fZXh0X2Rpc3BsYXlf
cGF0aAp7CiAgdWludDE2X3QgZGV2aWNlX3RhZzsKICB1aW50MTZfdCBkZXZpY2VfYWNwaV9lbnVt
OwogIHVpbnQxNl90IGNvbm5lY3Rvcm9iamlkOwogIHVpbnQ4X3QgYXV4ZGRjbHV0X2luZGV4Owog
IHVpbnQ4X3QgaHBkbHV0X2luZGV4OwogIHVpbnQxNl90IGV4dF9lbmNvZGVyX29iamlkOwogIHVp
bnQ4X3QgY2hhbm5lbG1hcHBpbmc7CiAgdWludDhfdCBjaHBuaW52ZXJ0OwogIHVpbnQxNl90IGNh
cHM7CiAgdWludDE2X3QgcmVzZXJ2ZWQ7Cn07CgoKZW51bSBleHRfZGlzcGxheV9wYXRoX2NhcF9k
ZWYKewogIEVYVF9ESVNQTEFZX1BBVEhfQ0FQU19fSEJSMl9ESVNBQkxFID0weDAwMDEsCiAgRVhU
X0RJU1BMQVlfUEFUSF9DQVBTX19EUF9GSVhFRF9WU19FTiA9MHgwMDAyLAogIEVYVF9ESVNQTEFZ
X1BBVEhfQ0FQU19fRVhUX0NISVBfTUFTSyA9MHgwMDdDLAp9OwoKc3RydWN0IGF0b21fZXh0ZXJu
YWxfZGlzcGxheV9jb25uZWN0aW9uX2luZm8KewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9o
ZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQ4X3QgZ3VpZFsxNl07CiAgc3RydWN0IGF0b21fZXh0
X2Rpc3BsYXlfcGF0aCBwYXRoWzddOwogIHVpbnQ4X3QgY2hlY2tzdW07CiAgdWludDhfdCBzdGVy
ZW9waW5pZDsKICB1aW50OF90IHJlbW90ZWRpc3BsYXljb25maWc7CiAgdWludDhfdCBlZHB0b2x2
ZHNyeGlkOwogIHVpbnQ4X3QgZml4ZHB2b2x0YWdlc3dpbmc7CiAgdWludDhfdCByZXNlcnZlZFsz
XTsKfTsKCgoKCgoKCnN0cnVjdCBhdG9tX2NhbWVyYV9kcGh5X3RpbWluZ19wYXJhbQp7CiAgdWlu
dDhfdCBwcm9maWxlX2lkOwogIHVpbnQzMl90IHBhcmFtOwp9OwoKc3RydWN0IGF0b21fY2FtZXJh
X2RwaHlfZWxlY19wYXJhbQp7CiAgdWludDE2X3QgcGFyYW1bM107Cn07CgpzdHJ1Y3QgYXRvbV9j
YW1lcmFfbW9kdWxlX2luZm8KewogIHVpbnQ4X3QgbW9kdWxlX2lkOwogIHVpbnQ4X3QgbW9kdWxl
X25hbWVbOF07CiAgc3RydWN0IGF0b21fY2FtZXJhX2RwaHlfdGltaW5nX3BhcmFtIHRpbWluZ3Bh
cmFtWzZdOwp9OwoKc3RydWN0IGF0b21fY2FtZXJhX2ZsYXNobGlnaHRfaW5mbwp7CiAgdWludDhf
dCBmbGFzaGxpZ2h0X2lkOwogIHVpbnQ4X3QgbmFtZVs4XTsKfTsKCnN0cnVjdCBhdG9tX2NhbWVy
YV9kYXRhCnsKICB1aW50MzJfdCB2ZXJzaW9uQ29kZTsKICBzdHJ1Y3QgYXRvbV9jYW1lcmFfbW9k
dWxlX2luZm8gY2FtZXJhSW5mb1szXTsKICBzdHJ1Y3QgYXRvbV9jYW1lcmFfZmxhc2hsaWdodF9p
bmZvIGZsYXNoSW5mbzsKICBzdHJ1Y3QgYXRvbV9jYW1lcmFfZHBoeV9lbGVjX3BhcmFtIGRwaHlf
cGFyYW07CiAgdWludDMyX3QgY3JjX3ZhbDsKfTsKCgpzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2R2
aWhkbWlfdHVuaW5nc2V0CnsKICB1aW50MzJfdCBtYXhfc3ltY2xrX2luMTBraHo7CiAgdWludDhf
dCBlbmNvZGVyX21vZGU7CiAgdWludDhfdCBwaHlfc2VsOwogIHVpbnQxNl90IG1hcmdpbmRlZW1w
aDsKICB1aW50OF90IGRlZW1waF82ZGJfNDsKICB1aW50OF90IGJvb3N0YWRqOwogIHVpbnQ4X3Qg
dHhfZHJpdmVyX2ZpZnR5X29obXM7CiAgdWludDhfdCBkZWVtcGhfc2VsOwp9OwoKc3RydWN0IGF0
b21fMTRubV9kcHBoeV9kcF9zZXR0aW5newogIHVpbnQ4X3QgZHBfdnNfcGVtcGhfbGV2ZWw7CiAg
dWludDE2X3QgbWFyZ2luZGVlbXBoOwogIHVpbnQ4X3QgZGVlbXBoXzZkYl80OwogIHVpbnQ4X3Qg
Ym9vc3RhZGo7Cn07CgpzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2RwX3R1bmluZ3NldHsKICB1aW50
OF90IHBoeV9zZWw7CiAgdWludDhfdCB2ZXJzaW9uOwogIHVpbnQxNl90IHRhYmxlX3NpemU7CiAg
dWludDE2X3QgcmVzZXJ2ZWQ7CiAgc3RydWN0IGF0b21fMTRubV9kcHBoeV9kcF9zZXR0aW5nIGRw
dHVuaW5nWzEwXTsKfTsKCnN0cnVjdCBhdG9tXzE0bm1fZGlnX3RyYW5zbWl0dGVyX2luZm9faGVh
ZGVyX3Y0XzB7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7
CiAgdWludDE2X3QgcGNpZV9waHlfdG1kc19oZG1pX21hY3JvX3NldHRpbmdzX29mZnNldDsKICB1
aW50MTZfdCB1bmlwaHlfdnNfZW1waF9sb29rdXBfdGFibGVfb2Zmc2V0OwogIHVpbnQxNl90IHVu
aXBoeV94YmFyX3NldHRpbmdzX3RhYmxlX29mZnNldDsKfTsKCnN0cnVjdCBhdG9tXzE0bm1fY29t
YnBoeV90bWRzX3ZzX3NldAp7CiAgdWludDhfdCBzeW1fY2xrOwogIHVpbnQ4X3QgZGlnX21vZGU7
CiAgdWludDhfdCBwaHlfc2VsOwogIHVpbnQxNl90IGNvbW1vbl9tYXJfZGVlbXBoX25vbV9fbWFy
Z2luX2RlZW1waF92YWw7CiAgdWludDhfdCBjb21tb25fc2VsZGVlbXBoNjBfX2RlZW1waF82ZGJf
NF92YWw7CiAgdWludDhfdCBjbWRfYnVzX2dsb2JhbF9mb3JfdHhfbGFuZTBfX2Jvb3N0YWRqX3Zh
bCA7CiAgdWludDhfdCBjb21tb25femNhbGNvZGVfY3RybF9fdHhfZHJpdmVyX2ZpZnR5X29obXNf
dmFsOwogIHVpbnQ4X3QgbWFyZ2luX2RlZW1waF9sYW5lMF9fZGVlbXBoX3NlbF92YWw7Cn07Cgpz
dHJ1Y3QgYXRvbV9pMmNfcmVnX2luZm8gewogIHVpbnQ4X3QgdWNJMmNSZWdJbmRleDsKICB1aW50
OF90IHVjSTJjUmVnVmFsOwp9OwoKc3RydWN0IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3Nl
dCB7CiAgdWludDhfdCBIZG1pU2x2QWRkcjsKICB1aW50OF90IEhkbWlSZWdOdW07CiAgdWludDhf
dCBIZG1pNkdSZWdOdW07CiAgc3RydWN0IGF0b21faTJjX3JlZ19pbmZvIEhkbWlSZWdTZXR0aW5n
WzldOwogIHN0cnVjdCBhdG9tX2kyY19yZWdfaW5mbyBIZG1pNkdoelJlZ1NldHRpbmdbM107Cn07
CgpzdHJ1Y3QgYXRvbV9pbnRlZ3JhdGVkX3N5c3RlbV9pbmZvX3YxXzExCnsKICBzdHJ1Y3QgYXRv
bV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50MzJfdCB2Ymlvc19taXNj
OwogIHVpbnQzMl90IGdwdWNhcGluZm87CiAgdWludDMyX3Qgc3lzdGVtX2NvbmZpZzsKICB1aW50
MzJfdCBjcHVjYXBpbmZvOwogIHVpbnQxNl90IGdwdWNsa19zc19wZXJjZW50YWdlOwogIHVpbnQx
Nl90IGdwdWNsa19zc190eXBlOwogIHVpbnQxNl90IGx2ZHNfc3NfcGVyY2VudGFnZTsKICB1aW50
MTZfdCBsdmRzX3NzX3JhdGVfMTBoejsKICB1aW50MTZfdCBoZG1pX3NzX3BlcmNlbnRhZ2U7CiAg
dWludDE2X3QgaGRtaV9zc19yYXRlXzEwaHo7CiAgdWludDE2X3QgZHZpX3NzX3BlcmNlbnRhZ2U7
CiAgdWludDE2X3QgZHZpX3NzX3JhdGVfMTBoejsKICB1aW50MTZfdCBkcHBoeV9vdmVycmlkZTsK
ICB1aW50MTZfdCBsdmRzX21pc2M7CiAgdWludDE2X3QgYmFja2xpZ2h0X3B3bV9oejsKICB1aW50
OF90IG1lbW9yeXR5cGU7CiAgdWludDhfdCB1bWFjaGFubmVsbnVtYmVyOwogIHVpbnQ4X3QgcHdy
X29uX2RpZ29uX3RvX2RlOwogIHVpbnQ4X3QgcHdyX29uX2RlX3RvX3ZhcnlfYmw7CiAgdWludDhf
dCBwd3JfZG93bl92YXJ5X2Jsb2ZmX3RvX2RlOwogIHVpbnQ4X3QgcHdyX2Rvd25fZGVfdG9fZGln
b2ZmOwogIHVpbnQ4X3QgcHdyX29mZl9kZWxheTsKICB1aW50OF90IHB3cl9vbl92YXJ5X2JsX3Rv
X2Jsb247CiAgdWludDhfdCBwd3JfZG93bl9ibG9mZl90b192YXJ5X2Jsb2ZmOwogIHVpbnQ4X3Qg
bWluX2FsbG93ZWRfYmxfbGV2ZWw7CiAgdWludDhfdCBodGNfaHlzdF9saW1pdDsKICB1aW50OF90
IGh0Y190bXBfbGltaXQ7CiAgdWludDhfdCByZXNlcnZlZDE7CiAgdWludDhfdCByZXNlcnZlZDI7
CiAgc3RydWN0IGF0b21fZXh0ZXJuYWxfZGlzcGxheV9jb25uZWN0aW9uX2luZm8gZXh0ZGlzcGNv
bm5pbmZvOwogIHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHZpaGRtaV90dW5pbmdzZXQgZHZpX3R1
bmluZ3NldDsKICBzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2R2aWhkbWlfdHVuaW5nc2V0IGhkbWlf
dHVuaW5nc2V0OwogIHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHZpaGRtaV90dW5pbmdzZXQgaGRt
aTZnX3R1bmluZ3NldDsKICBzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2RwX3R1bmluZ3NldCBkcF90
dW5pbmdzZXQ7CiAgc3RydWN0IGF0b21fMTRubV9kcHBoeV9kcF90dW5pbmdzZXQgZHBfaGJyM190
dW5pbmdzZXQ7CiAgc3RydWN0IGF0b21fY2FtZXJhX2RhdGEgY2FtZXJhX2luZm87CiAgc3RydWN0
IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3NldCBkcDBfcmV0aW1lcl9zZXQ7CiAgc3RydWN0
IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3NldCBkcDFfcmV0aW1lcl9zZXQ7CiAgc3RydWN0
IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3NldCBkcDJfcmV0aW1lcl9zZXQ7CiAgc3RydWN0
IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3NldCBkcDNfcmV0aW1lcl9zZXQ7CiAgc3RydWN0
IGF0b21fMTRubV9kcHBoeV9kcF90dW5pbmdzZXQgZHBfaGJyX3R1bmluZ3NldDsKICBzdHJ1Y3Qg
YXRvbV8xNG5tX2RwcGh5X2RwX3R1bmluZ3NldCBkcF9oYnIyX3R1bmluZ3NldDsKICBzdHJ1Y3Qg
YXRvbV8xNG5tX2RwcGh5X2RwX3R1bmluZ3NldCBlZHBfdHVuaW5nc2V0OwogIHVpbnQzMl90IHJl
c2VydmVkWzY2XTsKfTsKCgoKZW51bSBhdG9tX3N5c3RlbV92Ymlvc21pc2NfZGVmewogIElOVEVH
UkFURURfU1lTVEVNX0lORk9fX0dFVF9FRElEX0NBTExCQUNLX0ZVTkNfU1VQUE9SVCA9IDB4MDEs
Cn07CgoKCmVudW0gYXRvbV9zeXN0ZW1fZ3B1Y2FwaW5mX2RlZnsKICBTWVNfSU5GT19HUFVDQVBT
X19FTkFCRUxfREZTX0JZUEFTUyA9IDB4MTAsCn07CgoKZW51bSBhdG9tX3N5c2luZm9fZHBwaHlf
b3ZlcnJpZGVfZGVmewogIEFUT01fRU5BQkxFX0RWSV9UVU5JTkdTRVQgPSAweDAxLAogIEFUT01f
RU5BQkxFX0hETUlfVFVOSU5HU0VUID0gMHgwMiwKICBBVE9NX0VOQUJMRV9IRE1JNkdfVFVOSU5H
U0VUID0gMHgwNCwKICBBVE9NX0VOQUJMRV9EUF9UVU5JTkdTRVQgPSAweDA4LAogIEFUT01fRU5B
QkxFX0RQX0hCUjNfVFVOSU5HU0VUID0gMHgxMCwKfTsKCgplbnVtIGF0b21fc3lzX2luZm9fbHZk
c19taXNjX2RlZgp7CiAgU1lTX0lORk9fTFZEU19NSVNDXzg4OF9GUERJX01PREUgPTB4MDEsCiAg
U1lTX0lORk9fTFZEU19NSVNDXzg4OF9CUENfTU9ERSA9MHgwNCwKICBTWVNfSU5GT19MVkRTX01J
U0NfT1ZFUlJJREVfRU4gPTB4MDgsCn07CgoKCmVudW0gYXRvbV9kbWlfdDE3X21lbV90eXBlX2Rl
ZnsKICBPdGhlck1lbVR5cGUgPSAweDAxLAogIFVua25vd25NZW1UeXBlLAogIERyYW1NZW1UeXBl
LAogIEVkcmFtTWVtVHlwZSwKICBWcmFtTWVtVHlwZSwKICBTcmFtTWVtVHlwZSwKICBSYW1NZW1U
eXBlLAogIFJvbU1lbVR5cGUsCiAgRmxhc2hNZW1UeXBlLAogIEVlcHJvbU1lbVR5cGUsCiAgRmVw
cm9tTWVtVHlwZSwKICBFcHJvbU1lbVR5cGUsCiAgQ2RyYW1NZW1UeXBlLAogIFRocmVlRHJhbU1l
bVR5cGUsCiAgU2RyYW1NZW1UeXBlLAogIFNncmFtTWVtVHlwZSwKICBSZHJhbU1lbVR5cGUsCiAg
RGRyTWVtVHlwZSwKICBEZHIyTWVtVHlwZSwKICBEZHIyRmJkaW1tTWVtVHlwZSwKICBEZHIzTWVt
VHlwZSA9IDB4MTgsCiAgRmJkMk1lbVR5cGUsCiAgRGRyNE1lbVR5cGUsCiAgTHBEZHJNZW1UeXBl
LAogIExwRGRyMk1lbVR5cGUsCiAgTHBEZHIzTWVtVHlwZSwKICBMcERkcjRNZW1UeXBlLAp9OwoK
CgpzdHJ1Y3QgYXRvbV9mdXNpb25fc3lzdGVtX2luZm9fdjQKewogIHN0cnVjdCBhdG9tX2ludGVn
cmF0ZWRfc3lzdGVtX2luZm9fdjFfMTEgc3lzaW5mbzsKICB1aW50MzJfdCBwb3dlcnBsYXlpbmZv
WzI1Nl07Cn07CiMgMTIxOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRl
L2F0b21maXJtd2FyZS5oIgpzdHJ1Y3QgYXRvbV9nZnhfaW5mb192Ml8yCnsKICBzdHJ1Y3QgYXRv
bV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50OF90IGdmeGlwX21pbl92
ZXI7CiAgdWludDhfdCBnZnhpcF9tYXhfdmVyOwogIHVpbnQ4X3QgbWF4X3NoYWRlcl9lbmdpbmVz
OwogIHVpbnQ4X3QgbWF4X3RpbGVfcGlwZXM7CiAgdWludDhfdCBtYXhfY3VfcGVyX3NoOwogIHVp
bnQ4X3QgbWF4X3NoX3Blcl9zZTsKICB1aW50OF90IG1heF9iYWNrZW5kc19wZXJfc2U7CiAgdWlu
dDhfdCBtYXhfdGV4dHVyZV9jaGFubmVsX2NhY2hlczsKICB1aW50MzJfdCByZWdhZGRyX2NwX2Rt
YV9zcmNfYWRkcjsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9zcmNfYWRkcl9oaTsKICB1aW50
MzJfdCByZWdhZGRyX2NwX2RtYV9kc3RfYWRkcjsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9k
c3RfYWRkcl9oaTsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9jb21tYW5kOwogIHVpbnQzMl90
IHJlZ2FkZHJfY3Bfc3RhdHVzOwogIHVpbnQzMl90IHJlZ2FkZHJfcmxjX2dwdV9jbG9ja18zMjsK
ICB1aW50MzJfdCBybGNfZ3B1X3RpbWVyX3JlZmNsazsKfTsKCnN0cnVjdCBhdG9tX2dmeF9pbmZv
X3YyXzMgewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwog
IHVpbnQ4X3QgZ2Z4aXBfbWluX3ZlcjsKICB1aW50OF90IGdmeGlwX21heF92ZXI7CiAgdWludDhf
dCBtYXhfc2hhZGVyX2VuZ2luZXM7CiAgdWludDhfdCBtYXhfdGlsZV9waXBlczsKICB1aW50OF90
IG1heF9jdV9wZXJfc2g7CiAgdWludDhfdCBtYXhfc2hfcGVyX3NlOwogIHVpbnQ4X3QgbWF4X2Jh
Y2tlbmRzX3Blcl9zZTsKICB1aW50OF90IG1heF90ZXh0dXJlX2NoYW5uZWxfY2FjaGVzOwogIHVp
bnQzMl90IHJlZ2FkZHJfY3BfZG1hX3NyY19hZGRyOwogIHVpbnQzMl90IHJlZ2FkZHJfY3BfZG1h
X3NyY19hZGRyX2hpOwogIHVpbnQzMl90IHJlZ2FkZHJfY3BfZG1hX2RzdF9hZGRyOwogIHVpbnQz
Ml90IHJlZ2FkZHJfY3BfZG1hX2RzdF9hZGRyX2hpOwogIHVpbnQzMl90IHJlZ2FkZHJfY3BfZG1h
X2NvbW1hbmQ7CiAgdWludDMyX3QgcmVnYWRkcl9jcF9zdGF0dXM7CiAgdWludDMyX3QgcmVnYWRk
cl9ybGNfZ3B1X2Nsb2NrXzMyOwogIHVpbnQzMl90IHJsY19ncHVfdGltZXJfcmVmY2xrOwogIHVp
bnQ4X3QgYWN0aXZlX2N1X3Blcl9zaDsKICB1aW50OF90IGFjdGl2ZV9yYl9wZXJfc2U7CiAgdWlu
dDE2X3QgZ2Nnb2xkZW5vZmZzZXQ7CiAgdWludDMyX3Qgcm0yMV9zcmFtX3ZtaW5fdmFsdWU7Cn07
CgpzdHJ1Y3QgYXRvbV9nZnhfaW5mb192Ml80CnsKICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVf
aGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50OF90IGdmeGlwX21pbl92ZXI7CiAgdWludDhfdCBn
ZnhpcF9tYXhfdmVyOwogIHVpbnQ4X3QgbWF4X3NoYWRlcl9lbmdpbmVzOwogIHVpbnQ4X3QgcmVz
ZXJ2ZWQ7CiAgdWludDhfdCBtYXhfY3VfcGVyX3NoOwogIHVpbnQ4X3QgbWF4X3NoX3Blcl9zZTsK
ICB1aW50OF90IG1heF9iYWNrZW5kc19wZXJfc2U7CiAgdWludDhfdCBtYXhfdGV4dHVyZV9jaGFu
bmVsX2NhY2hlczsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9zcmNfYWRkcjsKICB1aW50MzJf
dCByZWdhZGRyX2NwX2RtYV9zcmNfYWRkcl9oaTsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9k
c3RfYWRkcjsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9kc3RfYWRkcl9oaTsKICB1aW50MzJf
dCByZWdhZGRyX2NwX2RtYV9jb21tYW5kOwogIHVpbnQzMl90IHJlZ2FkZHJfY3Bfc3RhdHVzOwog
IHVpbnQzMl90IHJlZ2FkZHJfcmxjX2dwdV9jbG9ja18zMjsKICB1aW50MzJfdCBybGNfZ3B1X3Rp
bWVyX3JlZmNsazsKICB1aW50OF90IGFjdGl2ZV9jdV9wZXJfc2g7CiAgdWludDhfdCBhY3RpdmVf
cmJfcGVyX3NlOwogIHVpbnQxNl90IGdjZ29sZGVub2Zmc2V0OwogIHVpbnQxNl90IGdjX251bV9n
cHJzOwogIHVpbnQxNl90IGdjX2dzcHJpbV9idWZmX2RlcHRoOwogIHVpbnQxNl90IGdjX3BhcmFt
ZXRlcl9jYWNoZV9kZXB0aDsKICB1aW50MTZfdCBnY193YXZlX3NpemU7CiAgdWludDE2X3QgZ2Nf
bWF4X3dhdmVzX3Blcl9zaW1kOwogIHVpbnQxNl90IGdjX2xkc19zaXplOwogIHVpbnQ4X3QgZ2Nf
bnVtX21heF9nc190aGRzOwogIHVpbnQ4X3QgZ2NfZ3NfdGFibGVfZGVwdGg7CiAgdWludDhfdCBn
Y19kb3VibGVfb2ZmY2hpcF9sZHNfYnVmZmVyOwogIHVpbnQ4X3QgZ2NfbWF4X3NjcmF0Y2hfc2xv
dHNfcGVyX2N1OwogIHVpbnQzMl90IHNyYW1fcm1fZnVzZXNfdmFsOwogIHVpbnQzMl90IHNyYW1f
Y3VzdG9tX3JtX2Z1c2VzX3ZhbDsKfTsKCgoKCgoKc3RydWN0IGF0b21fc211X2luZm9fdjNfMQp7
CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiAgdWludDhf
dCBzbXVpcF9taW5fdmVyOwogIHVpbnQ4X3Qgc211aXBfbWF4X3ZlcjsKICB1aW50OF90IHNtdV9y
c2QxOwogIHVpbnQ4X3QgZ3B1Y2xrX3NzX21vZGU7CiAgdWludDE2X3Qgc2Nsa19zc19wZXJjZW50
YWdlOwogIHVpbnQxNl90IHNjbGtfc3NfcmF0ZV8xMGh6OwogIHVpbnQxNl90IGdwdWNsa19zc19w
ZXJjZW50YWdlOwogIHVpbnQxNl90IGdwdWNsa19zc19yYXRlXzEwaHo7CiAgdWludDMyX3QgY29y
ZV9yZWZjbGtfMTBraHo7CiAgdWludDhfdCBhY19kY19ncGlvX2JpdDsKICB1aW50OF90IGFjX2Rj
X3BvbGFyaXR5OwogIHVpbnQ4X3QgdnIwaG90X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIwaG90X3Bv
bGFyaXR5OwogIHVpbnQ4X3QgdnIxaG90X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIxaG90X3BvbGFy
aXR5OwogIHVpbnQ4X3QgZndfY3RmX2dwaW9fYml0OwogIHVpbnQ4X3QgZndfY3RmX3BvbGFyaXR5
Owp9OwoKc3RydWN0IGF0b21fc211X2luZm9fdjNfMiB7CiAgc3RydWN0IGF0b21fY29tbW9uX3Rh
YmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiAgdWludDhfdCBzbXVpcF9taW5fdmVyOwogIHVpbnQ4
X3Qgc211aXBfbWF4X3ZlcjsKICB1aW50OF90IHNtdV9yc2QxOwogIHVpbnQ4X3QgZ3B1Y2xrX3Nz
X21vZGU7CiAgdWludDE2X3Qgc2Nsa19zc19wZXJjZW50YWdlOwogIHVpbnQxNl90IHNjbGtfc3Nf
cmF0ZV8xMGh6OwogIHVpbnQxNl90IGdwdWNsa19zc19wZXJjZW50YWdlOwogIHVpbnQxNl90IGdw
dWNsa19zc19yYXRlXzEwaHo7CiAgdWludDMyX3QgY29yZV9yZWZjbGtfMTBraHo7CiAgdWludDhf
dCBhY19kY19ncGlvX2JpdDsKICB1aW50OF90IGFjX2RjX3BvbGFyaXR5OwogIHVpbnQ4X3QgdnIw
aG90X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIwaG90X3BvbGFyaXR5OwogIHVpbnQ4X3QgdnIxaG90
X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIxaG90X3BvbGFyaXR5OwogIHVpbnQ4X3QgZndfY3RmX2dw
aW9fYml0OwogIHVpbnQ4X3QgZndfY3RmX3BvbGFyaXR5OwogIHVpbnQ4X3QgcGNjX2dwaW9fYml0
OwogIHVpbnQ4X3QgcGNjX2dwaW9fcG9sYXJpdHk7CiAgdWludDE2X3Qgc211Z29sZGVub2Zmc2V0
OwogIHVpbnQzMl90IGdwdXBsbF92Y29fZnJlcV8xMGtoejsKICB1aW50MzJfdCBib290dXBfc21u
Y2xrXzEwa2h6OwogIHVpbnQzMl90IGJvb3R1cF9zb2NjbGtfMTBraHo7CiAgdWludDMyX3QgYm9v
dHVwX21wMGNsa18xMGtoejsKICB1aW50MzJfdCBib290dXBfbXAxY2xrXzEwa2h6OwogIHVpbnQz
Ml90IGJvb3R1cF9sY2xrXzEwa2h6OwogIHVpbnQzMl90IGJvb3R1cF9kY2VmY2xrXzEwa2h6Owog
IHVpbnQzMl90IGN0Zl90aHJlc2hvbGRfb3ZlcnJpZGVfdmFsdWU7CiAgdWludDMyX3QgcmVzZXJ2
ZWRbNV07Cn07CgpzdHJ1Y3QgYXRvbV9zbXVfaW5mb192M18zIHsKICBzdHJ1Y3QgYXRvbV9jb21t
b25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50OF90IHNtdWlwX21pbl92ZXI7CiAg
dWludDhfdCBzbXVpcF9tYXhfdmVyOwogIHVpbnQ4X3Qgd2FmbGNsa19zc19tb2RlOwogIHVpbnQ4
X3QgZ3B1Y2xrX3NzX21vZGU7CiAgdWludDE2X3Qgc2Nsa19zc19wZXJjZW50YWdlOwogIHVpbnQx
Nl90IHNjbGtfc3NfcmF0ZV8xMGh6OwogIHVpbnQxNl90IGdwdWNsa19zc19wZXJjZW50YWdlOwog
IHVpbnQxNl90IGdwdWNsa19zc19yYXRlXzEwaHo7CiAgdWludDMyX3QgY29yZV9yZWZjbGtfMTBr
aHo7CiAgdWludDhfdCBhY19kY19ncGlvX2JpdDsKICB1aW50OF90IGFjX2RjX3BvbGFyaXR5Owog
IHVpbnQ4X3QgdnIwaG90X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIwaG90X3BvbGFyaXR5OwogIHVp
bnQ4X3QgdnIxaG90X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIxaG90X3BvbGFyaXR5OwogIHVpbnQ4
X3QgZndfY3RmX2dwaW9fYml0OwogIHVpbnQ4X3QgZndfY3RmX3BvbGFyaXR5OwogIHVpbnQ4X3Qg
cGNjX2dwaW9fYml0OwogIHVpbnQ4X3QgcGNjX2dwaW9fcG9sYXJpdHk7CiAgdWludDE2X3Qgc211
Z29sZGVub2Zmc2V0OwogIHVpbnQzMl90IGdwdXBsbF92Y29fZnJlcV8xMGtoejsKICB1aW50MzJf
dCBib290dXBfc21uY2xrXzEwa2h6OwogIHVpbnQzMl90IGJvb3R1cF9zb2NjbGtfMTBraHo7CiAg
dWludDMyX3QgYm9vdHVwX21wMGNsa18xMGtoejsKICB1aW50MzJfdCBib290dXBfbXAxY2xrXzEw
a2h6OwogIHVpbnQzMl90IGJvb3R1cF9sY2xrXzEwa2h6OwogIHVpbnQzMl90IGJvb3R1cF9kY2Vm
Y2xrXzEwa2h6OwogIHVpbnQzMl90IGN0Zl90aHJlc2hvbGRfb3ZlcnJpZGVfdmFsdWU7CiAgdWlu
dDMyX3Qgc3lzcGxsM18wX3Zjb19mcmVxXzEwa2h6OwogIHVpbnQzMl90IHN5c3BsbDNfMV92Y29f
ZnJlcV8xMGtoejsKICB1aW50MzJfdCBib290dXBfZmNsa18xMGtoejsKICB1aW50MzJfdCBib290
dXBfd2FmbGNsa18xMGtoejsKICB1aW50MzJfdCBzbXVfaW5mb19jYXBzOwogIHVpbnQxNl90IHdh
ZmxjbGtfc3NfcGVyY2VudGFnZTsKICB1aW50MTZfdCBzbXVpbml0b2Zmc2V0OwogIHVpbnQzMl90
IHJlc2VydmVkOwp9OwoKCgoKCgpzdHJ1Y3QgYXRvbV9zbWNfZHBtX2luZm9fdjRfMQp7CiAgc3Ry
dWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiAgdWludDhfdCBsaXF1
aWQxX2kyY19hZGRyZXNzOwogIHVpbnQ4X3QgbGlxdWlkMl9pMmNfYWRkcmVzczsKICB1aW50OF90
IHZyX2kyY19hZGRyZXNzOwogIHVpbnQ4X3QgcGx4X2kyY19hZGRyZXNzOwoKICB1aW50OF90IGxp
cXVpZF9pMmNfbGluZXNjbDsKICB1aW50OF90IGxpcXVpZF9pMmNfbGluZXNkYTsKICB1aW50OF90
IHZyX2kyY19saW5lc2NsOwogIHVpbnQ4X3QgdnJfaTJjX2xpbmVzZGE7CgogIHVpbnQ4X3QgcGx4
X2kyY19saW5lc2NsOwogIHVpbnQ4X3QgcGx4X2kyY19saW5lc2RhOwogIHVpbnQ4X3QgdnJzZW5z
b3JwcmVzZW50OwogIHVpbnQ4X3QgbGlxdWlkc2Vuc29ycHJlc2VudDsKCiAgdWludDE2X3QgbWF4
dm9sdGFnZXN0ZXBnZng7CiAgdWludDE2X3QgbWF4dm9sdGFnZXN0ZXBzb2M7CgogIHVpbnQ4X3Qg
dmRkZ2Z4dnJtYXBwaW5nOwogIHVpbnQ4X3QgdmRkc29jdnJtYXBwaW5nOwogIHVpbnQ4X3QgdmRk
bWVtMHZybWFwcGluZzsKICB1aW50OF90IHZkZG1lbTF2cm1hcHBpbmc7CgogIHVpbnQ4X3QgZ2Z4
dWx2cGhhc2VzaGVkZGluZ21hc2s7CiAgdWludDhfdCBzb2N1bHZwaGFzZXNoZWRkaW5nbWFzazsK
ICB1aW50OF90IHBhZGRpbmc4X3ZbMl07CgogIHVpbnQxNl90IGdmeG1heGN1cnJlbnQ7CiAgdWlu
dDhfdCBnZnhvZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeWdmeDsKCiAgdWludDE2
X3Qgc29jbWF4Y3VycmVudDsKICB1aW50OF90IHNvY29mZnNldDsKICB1aW50OF90IHBhZGRpbmdf
dGVsZW1ldHJ5c29jOwoKICB1aW50MTZfdCBtZW0wbWF4Y3VycmVudDsKICB1aW50OF90IG1lbTBv
ZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeW1lbTA7CgogIHVpbnQxNl90IG1lbTFt
YXhjdXJyZW50OwogIHVpbnQ4X3QgbWVtMW9mZnNldDsKICB1aW50OF90IHBhZGRpbmdfdGVsZW1l
dHJ5bWVtMTsKCiAgdWludDhfdCBhY2RjZ3BpbzsKICB1aW50OF90IGFjZGNwb2xhcml0eTsKICB1
aW50OF90IHZyMGhvdGdwaW87CiAgdWludDhfdCB2cjBob3Rwb2xhcml0eTsKCiAgdWludDhfdCB2
cjFob3RncGlvOwogIHVpbnQ4X3QgdnIxaG90cG9sYXJpdHk7CiAgdWludDhfdCBwYWRkaW5nMTsK
ICB1aW50OF90IHBhZGRpbmcyOwoKICB1aW50OF90IGxlZHBpbjA7CiAgdWludDhfdCBsZWRwaW4x
OwogIHVpbnQ4X3QgbGVkcGluMjsKICB1aW50OF90IHBhZGRpbmc4XzQ7CgogdWludDhfdCBwbGxn
ZnhjbGtzcHJlYWRlbmFibGVkOwogdWludDhfdCBwbGxnZnhjbGtzcHJlYWRwZXJjZW50OwogdWlu
dDE2X3QgcGxsZ2Z4Y2xrc3ByZWFkZnJlcTsKCiAgdWludDhfdCB1Y2xrc3ByZWFkZW5hYmxlZDsK
ICB1aW50OF90IHVjbGtzcHJlYWRwZXJjZW50OwogIHVpbnQxNl90IHVjbGtzcHJlYWRmcmVxOwoK
ICB1aW50OF90IHNvY2Nsa3NwcmVhZGVuYWJsZWQ7CiAgdWludDhfdCBzb2NjbGtzcHJlYWRwZXJj
ZW50OwogIHVpbnQxNl90IHNvY2Nsa3NwcmVhZGZyZXE7CgogdWludDhfdCBhY2dnZnhjbGtzcHJl
YWRlbmFibGVkOwogdWludDhfdCBhY2dnZnhjbGtzcHJlYWRwZXJjZW50OwogdWludDE2X3QgYWNn
Z2Z4Y2xrc3ByZWFkZnJlcTsKCiB1aW50OF90IFZyMl9JMkNfYWRkcmVzczsKIHVpbnQ4X3QgcGFk
ZGluZ192cjJbM107CgogdWludDMyX3QgYm9hcmRyZXNlcnZlZFs5XTsKfTsKCgoKCgoKc3RydWN0
IGF0b21fc21jX2RwbV9pbmZvX3Y0XzMKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFk
ZXIgdGFibGVfaGVhZGVyOwogIHVpbnQ4X3QgbGlxdWlkMV9pMmNfYWRkcmVzczsKICB1aW50OF90
IGxpcXVpZDJfaTJjX2FkZHJlc3M7CiAgdWludDhfdCB2cl9pMmNfYWRkcmVzczsKICB1aW50OF90
IHBseF9pMmNfYWRkcmVzczsKCiAgdWludDhfdCBsaXF1aWRfaTJjX2xpbmVzY2w7CiAgdWludDhf
dCBsaXF1aWRfaTJjX2xpbmVzZGE7CiAgdWludDhfdCB2cl9pMmNfbGluZXNjbDsKICB1aW50OF90
IHZyX2kyY19saW5lc2RhOwoKICB1aW50OF90IHBseF9pMmNfbGluZXNjbDsKICB1aW50OF90IHBs
eF9pMmNfbGluZXNkYTsKICB1aW50OF90IHZyc2Vuc29ycHJlc2VudDsKICB1aW50OF90IGxpcXVp
ZHNlbnNvcnByZXNlbnQ7CgogIHVpbnQxNl90IG1heHZvbHRhZ2VzdGVwZ2Z4OwogIHVpbnQxNl90
IG1heHZvbHRhZ2VzdGVwc29jOwoKICB1aW50OF90IHZkZGdmeHZybWFwcGluZzsKICB1aW50OF90
IHZkZHNvY3ZybWFwcGluZzsKICB1aW50OF90IHZkZG1lbTB2cm1hcHBpbmc7CiAgdWludDhfdCB2
ZGRtZW0xdnJtYXBwaW5nOwoKICB1aW50OF90IGdmeHVsdnBoYXNlc2hlZGRpbmdtYXNrOwogIHVp
bnQ4X3Qgc29jdWx2cGhhc2VzaGVkZGluZ21hc2s7CiAgdWludDhfdCBleHRlcm5hbHNlbnNvcnBy
ZXNlbnQ7CiAgdWludDhfdCBwYWRkaW5nOF92OwoKICB1aW50MTZfdCBnZnhtYXhjdXJyZW50Owog
IHVpbnQ4X3QgZ2Z4b2Zmc2V0OwogIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnlnZng7CgogIHVp
bnQxNl90IHNvY21heGN1cnJlbnQ7CiAgdWludDhfdCBzb2NvZmZzZXQ7CiAgdWludDhfdCBwYWRk
aW5nX3RlbGVtZXRyeXNvYzsKCiAgdWludDE2X3QgbWVtMG1heGN1cnJlbnQ7CiAgdWludDhfdCBt
ZW0wb2Zmc2V0OwogIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnltZW0wOwoKICB1aW50MTZfdCBt
ZW0xbWF4Y3VycmVudDsKICB1aW50OF90IG1lbTFvZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5nX3Rl
bGVtZXRyeW1lbTE7CgogIHVpbnQ4X3QgYWNkY2dwaW87CiAgdWludDhfdCBhY2RjcG9sYXJpdHk7
CiAgdWludDhfdCB2cjBob3RncGlvOwogIHVpbnQ4X3QgdnIwaG90cG9sYXJpdHk7CgogIHVpbnQ4
X3QgdnIxaG90Z3BpbzsKICB1aW50OF90IHZyMWhvdHBvbGFyaXR5OwogIHVpbnQ4X3QgcGFkZGlu
ZzE7CiAgdWludDhfdCBwYWRkaW5nMjsKCiAgdWludDhfdCBsZWRwaW4wOwogIHVpbnQ4X3QgbGVk
cGluMTsKICB1aW50OF90IGxlZHBpbjI7CiAgdWludDhfdCBwYWRkaW5nOF80OwoKICB1aW50OF90
IHBsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7CiAgdWludDhfdCBwbGxnZnhjbGtzcHJlYWRwZXJjZW50
OwogIHVpbnQxNl90IHBsbGdmeGNsa3NwcmVhZGZyZXE7CgogIHVpbnQ4X3QgdWNsa3NwcmVhZGVu
YWJsZWQ7CiAgdWludDhfdCB1Y2xrc3ByZWFkcGVyY2VudDsKICB1aW50MTZfdCB1Y2xrc3ByZWFk
ZnJlcTsKCiAgdWludDhfdCBmY2xrc3ByZWFkZW5hYmxlZDsKICB1aW50OF90IGZjbGtzcHJlYWRw
ZXJjZW50OwogIHVpbnQxNl90IGZjbGtzcHJlYWRmcmVxOwoKICB1aW50OF90IGZsbGdmeGNsa3Nw
cmVhZGVuYWJsZWQ7CiAgdWludDhfdCBmbGxnZnhjbGtzcHJlYWRwZXJjZW50OwogIHVpbnQxNl90
IGZsbGdmeGNsa3NwcmVhZGZyZXE7CgogIHVpbnQzMl90IGJvYXJkcmVzZXJ2ZWRbMTBdOwp9OwoK
c3RydWN0IHNtdWRwbV9pMmNjb250cm9sbGVyY29uZmlnX3QgewogIHVpbnQzMl90IGVuYWJsZWQ7
CiAgdWludDMyX3Qgc2xhdmVhZGRyZXNzOwogIHVpbnQzMl90IGNvbnRyb2xsZXJwb3J0OwogIHVp
bnQzMl90IGNvbnRyb2xsZXJuYW1lOwogIHVpbnQzMl90IHRoZXJtYWx0aHJvdHRsZXI7CiAgdWlu
dDMyX3QgaTJjcHJvdG9jb2w7CiAgdWludDMyX3QgaTJjc3BlZWQ7Cn07CgpzdHJ1Y3QgYXRvbV9z
bWNfZHBtX2luZm9fdjRfNAp7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJs
ZV9oZWFkZXI7CiAgdWludDMyX3QgaTJjX3BhZGRpbmdbM107CgogIHVpbnQxNl90IG1heHZvbHRh
Z2VzdGVwZ2Z4OwogIHVpbnQxNl90IG1heHZvbHRhZ2VzdGVwc29jOwoKICB1aW50OF90IHZkZGdm
eHZybWFwcGluZzsKICB1aW50OF90IHZkZHNvY3ZybWFwcGluZzsKICB1aW50OF90IHZkZG1lbTB2
cm1hcHBpbmc7CiAgdWludDhfdCB2ZGRtZW0xdnJtYXBwaW5nOwoKICB1aW50OF90IGdmeHVsdnBo
YXNlc2hlZGRpbmdtYXNrOwogIHVpbnQ4X3Qgc29jdWx2cGhhc2VzaGVkZGluZ21hc2s7CiAgdWlu
dDhfdCBleHRlcm5hbHNlbnNvcnByZXNlbnQ7CiAgdWludDhfdCBwYWRkaW5nOF92OwoKICB1aW50
MTZfdCBnZnhtYXhjdXJyZW50OwogIHVpbnQ4X3QgZ2Z4b2Zmc2V0OwogIHVpbnQ4X3QgcGFkZGlu
Z190ZWxlbWV0cnlnZng7CgogIHVpbnQxNl90IHNvY21heGN1cnJlbnQ7CiAgdWludDhfdCBzb2Nv
ZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeXNvYzsKCiAgdWludDE2X3QgbWVtMG1h
eGN1cnJlbnQ7CiAgdWludDhfdCBtZW0wb2Zmc2V0OwogIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0
cnltZW0wOwoKICB1aW50MTZfdCBtZW0xbWF4Y3VycmVudDsKICB1aW50OF90IG1lbTFvZmZzZXQ7
CiAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeW1lbTE7CgoKICB1aW50OF90IGFjZGNncGlvOwog
IHVpbnQ4X3QgYWNkY3BvbGFyaXR5OwogIHVpbnQ4X3QgdnIwaG90Z3BpbzsKICB1aW50OF90IHZy
MGhvdHBvbGFyaXR5OwoKICB1aW50OF90IHZyMWhvdGdwaW87CiAgdWludDhfdCB2cjFob3Rwb2xh
cml0eTsKICB1aW50OF90IHBhZGRpbmcxOwogIHVpbnQ4X3QgcGFkZGluZzI7CgoKICB1aW50OF90
IGxlZHBpbjA7CiAgdWludDhfdCBsZWRwaW4xOwogIHVpbnQ4X3QgbGVkcGluMjsKICB1aW50OF90
IHBhZGRpbmc4XzQ7CgoKICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7CiAgdWludDhf
dCBwbGxnZnhjbGtzcHJlYWRwZXJjZW50OwogIHVpbnQxNl90IHBsbGdmeGNsa3NwcmVhZGZyZXE7
CgoKICB1aW50OF90IHVjbGtzcHJlYWRlbmFibGVkOwogIHVpbnQ4X3QgdWNsa3NwcmVhZHBlcmNl
bnQ7CiAgdWludDE2X3QgdWNsa3NwcmVhZGZyZXE7CgoKICB1aW50OF90IGZjbGtzcHJlYWRlbmFi
bGVkOwogIHVpbnQ4X3QgZmNsa3NwcmVhZHBlcmNlbnQ7CiAgdWludDE2X3QgZmNsa3NwcmVhZGZy
ZXE7CgoKICB1aW50OF90IGZsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7CiAgdWludDhfdCBmbGxnZnhj
bGtzcHJlYWRwZXJjZW50OwogIHVpbnQxNl90IGZsbGdmeGNsa3NwcmVhZGZyZXE7CgoKICBzdHJ1
Y3Qgc211ZHBtX2kyY2NvbnRyb2xsZXJjb25maWdfdCBpMmNjb250cm9sbGVyc1s3XTsKCgogIHVp
bnQzMl90IGJvYXJkcmVzZXJ2ZWRbMTBdOwp9OwoKZW51bSBzbXVkcG1fdjRfNV9pMmNjb250cm9s
bGVybmFtZV9lewogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9WUl9HRlggPSAwLAog
ICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9WUl9TT0MsCiAgICBTTUNfVjRfNV9JMkNf
Q09OVFJPTExFUl9OQU1FX1ZSX1ZERENJLAogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFN
RV9WUl9NVkRELAogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9MSVFVSUQwLAogICAg
U01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9MSVFVSUQxLAogICAgU01DX1Y0XzVfSTJDX0NP
TlRST0xMRVJfTkFNRV9QTFgsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9OQU1FX1NQQVJF
LAogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9DT1VOVCwKfTsKCmVudW0gc211ZHBt
X3Y0XzVfaTJjY29udHJvbGxlcnRocm90dGxlcl9lewogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xM
RVJfVEhST1RUTEVSX1RZUEVfTk9ORSA9IDAsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9U
SFJPVFRMRVJfVlJfR0ZYLAogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfVEhST1RUTEVSX1ZS
X1NPQywKICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9WUl9WRERDSSwKICAg
IFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9WUl9NVkRELAogICAgU01DX1Y0XzVf
STJDX0NPTlRST0xMRVJfVEhST1RUTEVSX0xJUVVJRDAsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJP
TExFUl9USFJPVFRMRVJfTElRVUlEMSwKICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1RIUk9U
VExFUl9QTFgsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9USFJPVFRMRVJfQ09VTlQsCn07
CgplbnVtIHNtdWRwbV92NF81X2kyY2NvbnRyb2xsZXJwcm90b2NvbF9lewogICAgU01DX1Y0XzVf
STJDX0NPTlRST0xMRVJfUFJPVE9DT0xfVlJfMCwKICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVS
X1BST1RPQ09MX1ZSXzEsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9UTVBf
MCwKICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1BST1RPQ09MX1RNUF8xLAogICAgU01DX1Y0
XzVfSTJDX0NPTlRST0xMRVJfUFJPVE9DT0xfU1BBUkVfMCwKICAgIFNNQ19WNF81X0kyQ19DT05U
Uk9MTEVSX1BST1RPQ09MX1NQQVJFXzEsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9QUk9U
T0NPTF9DT1VOVCwKfTsKCnN0cnVjdCBzbXVkcG1faTJjX2NvbnRyb2xsZXJfY29uZmlnX3YyCnsK
ICAgIHVpbnQ4X3QgRW5hYmxlZDsKICAgIHVpbnQ4X3QgU3BlZWQ7CiAgICB1aW50OF90IFBhZGRp
bmdbMl07CiAgICB1aW50MzJfdCBTbGF2ZUFkZHJlc3M7CiAgICB1aW50OF90IENvbnRyb2xsZXJQ
b3J0OwogICAgdWludDhfdCBDb250cm9sbGVyTmFtZTsKICAgIHVpbnQ4X3QgVGhlcm1hbFRocm90
dGVyOwogICAgdWludDhfdCBJMmNQcm90b2NvbDsKfTsKCnN0cnVjdCBhdG9tX3NtY19kcG1faW5m
b192NF81CnsKICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsK
CgogIHN0cnVjdCBzbXVkcG1faTJjX2NvbnRyb2xsZXJfY29uZmlnX3YyIEkyY0NvbnRyb2xsZXJz
WzhdOwoKCiAgdWludDE2X3QgTWF4Vm9sdGFnZVN0ZXBHZng7CiAgdWludDE2X3QgTWF4Vm9sdGFn
ZVN0ZXBTb2M7CgogIHVpbnQ4X3QgVmRkR2Z4VnJNYXBwaW5nOwogIHVpbnQ4X3QgVmRkU29jVnJN
YXBwaW5nOwogIHVpbnQ4X3QgVmRkTWVtMFZyTWFwcGluZzsKICB1aW50OF90IFZkZE1lbTFWck1h
cHBpbmc7CgogIHVpbnQ4X3QgR2Z4VWx2UGhhc2VTaGVkZGluZ01hc2s7CiAgdWludDhfdCBTb2NV
bHZQaGFzZVNoZWRkaW5nTWFzazsKICB1aW50OF90IEV4dGVybmFsU2Vuc29yUHJlc2VudDsKICB1
aW50OF90IFBhZGRpbmc4X1Y7CgoKICB1aW50MTZfdCBHZnhNYXhDdXJyZW50OwogIHVpbnQ4X3Qg
R2Z4T2Zmc2V0OwogIHVpbnQ4X3QgUGFkZGluZ19UZWxlbWV0cnlHZng7CiAgdWludDE2X3QgU29j
TWF4Q3VycmVudDsKICB1aW50OF90IFNvY09mZnNldDsKICB1aW50OF90IFBhZGRpbmdfVGVsZW1l
dHJ5U29jOwoKICB1aW50MTZfdCBNZW0wTWF4Q3VycmVudDsKICB1aW50OF90IE1lbTBPZmZzZXQ7
CiAgdWludDhfdCBQYWRkaW5nX1RlbGVtZXRyeU1lbTA7CgogIHVpbnQxNl90IE1lbTFNYXhDdXJy
ZW50OwogIHVpbnQ4X3QgTWVtMU9mZnNldDsKICB1aW50OF90IFBhZGRpbmdfVGVsZW1ldHJ5TWVt
MTsKCgogIHVpbnQ4X3QgQWNEY0dwaW87CiAgdWludDhfdCBBY0RjUG9sYXJpdHk7CiAgdWludDhf
dCBWUjBIb3RHcGlvOwogIHVpbnQ4X3QgVlIwSG90UG9sYXJpdHk7CgogIHVpbnQ4X3QgVlIxSG90
R3BpbzsKICB1aW50OF90IFZSMUhvdFBvbGFyaXR5OwogIHVpbnQ4X3QgR3RockdwaW87CiAgdWlu
dDhfdCBHdGhyUG9sYXJpdHk7CgoKICB1aW50OF90IExlZFBpbjA7CiAgdWludDhfdCBMZWRQaW4x
OwogIHVpbnQ4X3QgTGVkUGluMjsKICB1aW50OF90IHBhZGRpbmc4XzQ7CgoKICB1aW50OF90IFBs
bEdmeGNsa1NwcmVhZEVuYWJsZWQ7CiAgdWludDhfdCBQbGxHZnhjbGtTcHJlYWRQZXJjZW50Owog
IHVpbnQxNl90IFBsbEdmeGNsa1NwcmVhZEZyZXE7CgoKICB1aW50OF90IERmbGxHZnhjbGtTcHJl
YWRFbmFibGVkOwogIHVpbnQ4X3QgRGZsbEdmeGNsa1NwcmVhZFBlcmNlbnQ7CiAgdWludDE2X3Qg
RGZsbEdmeGNsa1NwcmVhZEZyZXE7CgoKICB1aW50OF90IFVjbGtTcHJlYWRFbmFibGVkOwogIHVp
bnQ4X3QgVWNsa1NwcmVhZFBlcmNlbnQ7CiAgdWludDE2X3QgVWNsa1NwcmVhZEZyZXE7CgoKICB1
aW50OF90IFNvY2xrU3ByZWFkRW5hYmxlZDsKICB1aW50OF90IFNvY2Nsa1NwcmVhZFBlcmNlbnQ7
CiAgdWludDE2X3QgU29jY2xrU3ByZWFkRnJlcTsKCgogIHVpbnQxNl90IFRvdGFsQm9hcmRQb3dl
cjsKICB1aW50MTZfdCBCb2FyZFBhZGRpbmc7CgoKICB1aW50MzJfdCBNdmRkUmF0aW87CgogIHVp
bnQzMl90IEJvYXJkUmVzZXJ2ZWRbOV07Cgp9OwoKc3RydWN0IGF0b21fc21jX2RwbV9pbmZvX3Y0
XzYKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwoKICB1
aW50MzJfdCBpMmNfcGFkZGluZ1szXTsKCiAgdWludDE2X3QgbWF4dm9sdGFnZXN0ZXBnZng7CiAg
dWludDE2X3QgbWF4dm9sdGFnZXN0ZXBzb2M7CgogIHVpbnQ4X3QgdmRkZ2Z4dnJtYXBwaW5nOwog
IHVpbnQ4X3QgdmRkc29jdnJtYXBwaW5nOwogIHVpbnQ4X3QgdmRkbWVtdnJtYXBwaW5nOwogIHVp
bnQ4X3QgYm9hcmR2cm1hcHBpbmc7CgogIHVpbnQ4X3QgZ2Z4dWx2cGhhc2VzaGVkZGluZ21hc2s7
CiAgdWludDhfdCBleHRlcm5hbHNlbnNvcnByZXNlbnQ7CiAgdWludDhfdCBwYWRkaW5nOF92WzJd
OwoKCiAgdWludDE2X3QgZ2Z4bWF4Y3VycmVudDsKICB1aW50OF90IGdmeG9mZnNldDsKICB1aW50
OF90IHBhZGRpbmdfdGVsZW1ldHJ5Z2Z4OwoKICB1aW50MTZfdCBzb2NtYXhjdXJyZW50OwogIHVp
bnQ4X3Qgc29jb2Zmc2V0OwogIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnlzb2M7CgogIHVpbnQx
Nl90IG1lbW1heGN1cnJlbnQ7CiAgdWludDhfdCBtZW1vZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5n
X3RlbGVtZXRyeW1lbTsKCiAgdWludDE2X3QgYm9hcmRtYXhjdXJyZW50OwogIHVpbnQ4X3QgYm9h
cmRvZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeWJvYXJkaW5wdXQ7CgoKICB1aW50
OF90IHZyMGhvdGdwaW87CiAgdWludDhfdCB2cjBob3Rwb2xhcml0eTsKICB1aW50OF90IHZyMWhv
dGdwaW87CiAgdWludDhfdCB2cjFob3Rwb2xhcml0eTsKCgogIHVpbnQ4X3QgcGxsZ2Z4Y2xrc3By
ZWFkZW5hYmxlZDsKICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7CiAgdWludDE2X3Qg
cGxsZ2Z4Y2xrc3ByZWFkZnJlcTsKCgogIHVpbnQ4X3QgdWNsa3NwcmVhZGVuYWJsZWQ7CiAgdWlu
dDhfdCB1Y2xrc3ByZWFkcGVyY2VudDsKICB1aW50MTZfdCB1Y2xrc3ByZWFkZnJlcTsKCgogIHVp
bnQ4X3QgZmNsa3NwcmVhZGVuYWJsZWQ7CiAgdWludDhfdCBmY2xrc3ByZWFkcGVyY2VudDsKICB1
aW50MTZfdCBmY2xrc3ByZWFkZnJlcTsKCgoKICB1aW50OF90IGZsbGdmeGNsa3NwcmVhZGVuYWJs
ZWQ7CiAgdWludDhfdCBmbGxnZnhjbGtzcHJlYWRwZXJjZW50OwogIHVpbnQxNl90IGZsbGdmeGNs
a3NwcmVhZGZyZXE7CgoKICBzdHJ1Y3Qgc211ZHBtX2kyY19jb250cm9sbGVyX2NvbmZpZ192MiBp
MmNjb250cm9sbGVyc1s4XTsKCgogIHVpbnQzMl90IG1lbW9yeWNoYW5uZWxlbmFibGVkOwoKICB1
aW50OF90IGRyYW1iaXR3aWR0aDsKICB1aW50OF90IHBhZGRpbmdtZW1bM107CgoKICB1aW50MTZf
dCB0b3RhbGJvYXJkcG93ZXI7CiAgdWludDE2X3QgYm9hcmRwYWRkaW5nOwoKCiAgdWludDhfdCB4
Z21pbGlua3NwZWVkWzRdOwogIHVpbnQ4X3QgeGdtaWxpbmt3aWR0aFs0XTsKCiAgdWludDE2X3Qg
eGdtaWZjbGtmcmVxWzRdOwogIHVpbnQxNl90IHhnbWlzb2N2b2x0YWdlWzRdOwoKCiAgdWludDMy
X3QgYm9hcmRyZXNlcnZlZFsxMF07Cn07CgoKCgoKCnN0cnVjdCBhdG9tX2FzaWNfcHJvZmlsaW5n
X2luZm9fdjRfMQp7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFk
ZXI7CiAgdWludDMyX3QgbWF4dmRkYzsKICB1aW50MzJfdCBtaW52ZGRjOwogIHVpbnQzMl90IGF2
ZnNfbWVhbm5zaWdtYV9hY29udGFudDA7CiAgdWludDMyX3QgYXZmc19tZWFubnNpZ21hX2Fjb250
YW50MTsKICB1aW50MzJfdCBhdmZzX21lYW5uc2lnbWFfYWNvbnRhbnQyOwogIHVpbnQxNl90IGF2
ZnNfbWVhbm5zaWdtYV9kY190b2xfc2lnbWE7CiAgdWludDE2X3QgYXZmc19tZWFubnNpZ21hX3Bs
YXRmb3JtX21lYW47CiAgdWludDE2X3QgYXZmc19tZWFubnNpZ21hX3BsYXRmb3JtX3NpZ21hOwog
IHVpbnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3NvZmZfYTA7CiAgdWludDMyX3QgZ2JfdmRyb29w
X3RhYmxlX2Nrc29mZl9hMTsKICB1aW50MzJfdCBnYl92ZHJvb3BfdGFibGVfY2tzb2ZmX2EyOwog
IHVpbnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3Nvbl9hMDsKICB1aW50MzJfdCBnYl92ZHJvb3Bf
dGFibGVfY2tzb25fYTE7CiAgdWludDMyX3QgZ2JfdmRyb29wX3RhYmxlX2Nrc29uX2EyOwogIHVp
bnQzMl90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29mZl9tMTsKICB1aW50MzJfdCBhdmZzZ2JfZnVz
ZV90YWJsZV9ja3NvZmZfbTI7CiAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb2ZmX2I7
CiAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb25fbTE7CiAgdWludDMyX3QgYXZmc2di
X2Z1c2VfdGFibGVfY2tzb25fbTI7CiAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb25f
YjsKICB1aW50MTZfdCBtYXhfdm9sdGFnZV8wXzI1bXY7CiAgdWludDhfdCBlbmFibGVfZ2JfdmRy
b29wX3RhYmxlX2Nrc29mZjsKICB1aW50OF90IGVuYWJsZV9nYl92ZHJvb3BfdGFibGVfY2tzb247
CiAgdWludDhfdCBlbmFibGVfZ2JfZnVzZV90YWJsZV9ja3NvZmY7CiAgdWludDhfdCBlbmFibGVf
Z2JfZnVzZV90YWJsZV9ja3NvbjsKICB1aW50MTZfdCBwc21fYWdlX2NvbWZhY3RvcjsKICB1aW50
OF90IGVuYWJsZV9hcHBseV9hdmZzX2Nrc29mZl92b2x0YWdlOwogIHVpbnQ4X3QgcmVzZXJ2ZWQ7
CiAgdWludDMyX3QgZGlzcGNsazJnZnhjbGtfYTsKICB1aW50MzJfdCBkaXNwY2xrMmdmeGNsa19i
OwogIHVpbnQzMl90IGRpc3BjbGsyZ2Z4Y2xrX2M7CiAgdWludDMyX3QgcGl4Y2xrMmdmeGNsa19h
OwogIHVpbnQzMl90IHBpeGNsazJnZnhjbGtfYjsKICB1aW50MzJfdCBwaXhjbGsyZ2Z4Y2xrX2M7
CiAgdWludDMyX3QgZGNlZmNsazJnZnhjbGtfYTsKICB1aW50MzJfdCBkY2VmY2xrMmdmeGNsa19i
OwogIHVpbnQzMl90IGRjZWZjbGsyZ2Z4Y2xrX2M7CiAgdWludDMyX3QgcGh5Y2xrMmdmeGNsa19h
OwogIHVpbnQzMl90IHBoeWNsazJnZnhjbGtfYjsKICB1aW50MzJfdCBwaHljbGsyZ2Z4Y2xrX2M7
Cn07CgpzdHJ1Y3QgYXRvbV9hc2ljX3Byb2ZpbGluZ19pbmZvX3Y0XzIgewogc3RydWN0IGF0b21f
Y29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiB1aW50MzJfdCBtYXh2ZGRjOwogdWlu
dDMyX3QgbWludmRkYzsKIHVpbnQzMl90IGF2ZnNfbWVhbm5zaWdtYV9hY29udGFudDA7CiB1aW50
MzJfdCBhdmZzX21lYW5uc2lnbWFfYWNvbnRhbnQxOwogdWludDMyX3QgYXZmc19tZWFubnNpZ21h
X2Fjb250YW50MjsKIHVpbnQxNl90IGF2ZnNfbWVhbm5zaWdtYV9kY190b2xfc2lnbWE7CiB1aW50
MTZfdCBhdmZzX21lYW5uc2lnbWFfcGxhdGZvcm1fbWVhbjsKIHVpbnQxNl90IGF2ZnNfbWVhbm5z
aWdtYV9wbGF0Zm9ybV9zaWdtYTsKIHVpbnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3NvZmZfYTA7
CiB1aW50MzJfdCBnYl92ZHJvb3BfdGFibGVfY2tzb2ZmX2ExOwogdWludDMyX3QgZ2JfdmRyb29w
X3RhYmxlX2Nrc29mZl9hMjsKIHVpbnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3Nvbl9hMDsKIHVp
bnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3Nvbl9hMTsKIHVpbnQzMl90IGdiX3Zkcm9vcF90YWJs
ZV9ja3Nvbl9hMjsKIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29mZl9tMTsKIHVpbnQz
Ml90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29mZl9tMjsKIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3Rh
YmxlX2Nrc29mZl9iOwogdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb25fbTE7CiB1aW50
MzJfdCBhdmZzZ2JfZnVzZV90YWJsZV9ja3Nvbl9tMjsKIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3Rh
YmxlX2Nrc29uX2I7CiB1aW50MTZfdCBtYXhfdm9sdGFnZV8wXzI1bXY7CiB1aW50OF90IGVuYWJs
ZV9nYl92ZHJvb3BfdGFibGVfY2tzb2ZmOwogdWludDhfdCBlbmFibGVfZ2JfdmRyb29wX3RhYmxl
X2Nrc29uOwogdWludDhfdCBlbmFibGVfZ2JfZnVzZV90YWJsZV9ja3NvZmY7CiB1aW50OF90IGVu
YWJsZV9nYl9mdXNlX3RhYmxlX2Nrc29uOwogdWludDE2X3QgcHNtX2FnZV9jb21mYWN0b3I7CiB1
aW50OF90IGVuYWJsZV9hcHBseV9hdmZzX2Nrc29mZl92b2x0YWdlOwogdWludDhfdCByZXNlcnZl
ZDsKIHVpbnQzMl90IGRpc3BjbGsyZ2Z4Y2xrX2E7CiB1aW50MzJfdCBkaXNwY2xrMmdmeGNsa19i
OwogdWludDMyX3QgZGlzcGNsazJnZnhjbGtfYzsKIHVpbnQzMl90IHBpeGNsazJnZnhjbGtfYTsK
IHVpbnQzMl90IHBpeGNsazJnZnhjbGtfYjsKIHVpbnQzMl90IHBpeGNsazJnZnhjbGtfYzsKIHVp
bnQzMl90IGRjZWZjbGsyZ2Z4Y2xrX2E7CiB1aW50MzJfdCBkY2VmY2xrMmdmeGNsa19iOwogdWlu
dDMyX3QgZGNlZmNsazJnZnhjbGtfYzsKIHVpbnQzMl90IHBoeWNsazJnZnhjbGtfYTsKIHVpbnQz
Ml90IHBoeWNsazJnZnhjbGtfYjsKIHVpbnQzMl90IHBoeWNsazJnZnhjbGtfYzsKIHVpbnQzMl90
IGFjZ19nYl92ZHJvb3BfdGFibGVfYTA7CiB1aW50MzJfdCBhY2dfZ2JfdmRyb29wX3RhYmxlX2Ex
OwogdWludDMyX3QgYWNnX2diX3Zkcm9vcF90YWJsZV9hMjsKIHVpbnQzMl90IGFjZ19hdmZzZ2Jf
ZnVzZV90YWJsZV9tMTsKIHVpbnQzMl90IGFjZ19hdmZzZ2JfZnVzZV90YWJsZV9tMjsKIHVpbnQz
Ml90IGFjZ19hdmZzZ2JfZnVzZV90YWJsZV9iOwogdWludDhfdCBlbmFibGVfYWNnX2diX3Zkcm9v
cF90YWJsZTsKIHVpbnQ4X3QgZW5hYmxlX2FjZ19nYl9mdXNlX3RhYmxlOwogdWludDMyX3QgYWNn
X2Rpc3BjbGsyZ2Z4Y2xrX2E7CiB1aW50MzJfdCBhY2dfZGlzcGNsazJnZnhjbGtfYjsKIHVpbnQz
Ml90IGFjZ19kaXNwY2xrMmdmeGNsa19jOwogdWludDMyX3QgYWNnX3BpeGNsazJnZnhjbGtfYTsK
IHVpbnQzMl90IGFjZ19waXhjbGsyZ2Z4Y2xrX2I7CiB1aW50MzJfdCBhY2dfcGl4Y2xrMmdmeGNs
a19jOwogdWludDMyX3QgYWNnX2RjZWZjbGsyZ2Z4Y2xrX2E7CiB1aW50MzJfdCBhY2dfZGNlZmNs
azJnZnhjbGtfYjsKIHVpbnQzMl90IGFjZ19kY2VmY2xrMmdmeGNsa19jOwogdWludDMyX3QgYWNn
X3BoeWNsazJnZnhjbGtfYTsKIHVpbnQzMl90IGFjZ19waHljbGsyZ2Z4Y2xrX2I7CiB1aW50MzJf
dCBhY2dfcGh5Y2xrMmdmeGNsa19jOwp9OwoKCgoKCgpzdHJ1Y3QgYXRvbV9tdWx0aW1lZGlhX2lu
Zm9fdjJfMQp7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7
CiAgdWludDhfdCB1dmRpcF9taW5fdmVyOwogIHVpbnQ4X3QgdXZkaXBfbWF4X3ZlcjsKICB1aW50
OF90IHZjZWlwX21pbl92ZXI7CiAgdWludDhfdCB2Y2VpcF9tYXhfdmVyOwogIHVpbnQxNl90IHV2
ZF9lbmNfbWF4X2lucHV0X3dpZHRoX3BpeGVsczsKICB1aW50MTZfdCB1dmRfZW5jX21heF9pbnB1
dF9oZWlnaHRfcGl4ZWxzOwogIHVpbnQxNl90IHZjZV9lbmNfbWF4X2lucHV0X3dpZHRoX3BpeGVs
czsKICB1aW50MTZfdCB2Y2VfZW5jX21heF9pbnB1dF9oZWlnaHRfcGl4ZWxzOwogIHVpbnQzMl90
IHV2ZF9lbmNfbWF4X2JhbmR3aWR0aDsKICB1aW50MzJfdCB2Y2VfZW5jX21heF9iYW5kd2lkdGg7
Cn07CgoKCgoKCgpzdHJ1Y3QgYXRvbV91bWNfaW5mb192M18xCnsKICBzdHJ1Y3QgYXRvbV9jb21t
b25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50MzJfdCB1Y29kZV92ZXJzaW9uOwog
IHVpbnQzMl90IHVjb2RlX3JvbV9zdGFydGFkZHI7CiAgdWludDMyX3QgdWNvZGVfbGVuZ3RoOwog
IHVpbnQxNl90IHVtY19yZWdfaW5pdF9vZmZzZXQ7CiAgdWludDE2X3QgY3VzdG9tZXJfdWNvZGVf
bmFtZV9vZmZzZXQ7CiAgdWludDE2X3QgbWNsa19zc19wZXJjZW50YWdlOwogIHVpbnQxNl90IG1j
bGtfc3NfcmF0ZV8xMGh6OwogIHVpbnQ4X3QgdW1jaXBfbWluX3ZlcjsKICB1aW50OF90IHVtY2lw
X21heF92ZXI7CiAgdWludDhfdCB2cmFtX3R5cGU7CiAgdWludDhfdCB1bWNfY29uZmlnOwogIHVp
bnQzMl90IG1lbV9yZWZjbGtfMTBraHo7Cn07CgoKZW51bSBhdG9tX3VtY19jb25maWdfZGVmIHsK
ICBVTUNfQ09ORklHX19FTkFCTEVfMUtCX0lOVEVSTEVBVkVfTU9ERSA9IDB4MDAwMDAwMDEsCiAg
VU1DX0NPTkZJR19fREVGQVVMVF9NRU1fRUNDX0VOQUJMRSA9IDB4MDAwMDAwMDIsCiAgVU1DX0NP
TkZJR19fRU5BQkxFX0hCTV9MQU5FX1JFUEFJUiA9IDB4MDAwMDAwMDQsCiAgVU1DX0NPTkZJR19f
RU5BQkxFX0JBTktfSEFSVkVTVElORyA9IDB4MDAwMDAwMDgsCiAgVU1DX0NPTkZJR19fRU5BQkxF
X1BIWV9SRUlOSVQgPSAweDAwMDAwMDEwLAogIFVNQ19DT05GSUdfX0RJU0FCTEVfVUNPREVfQ0hL
U1RBVFVTID0gMHgwMDAwMDAyMCwKfTsKCnN0cnVjdCBhdG9tX3VtY19pbmZvX3YzXzIKewogIHN0
cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQzMl90IHVj
b2RlX3ZlcnNpb247CiAgdWludDMyX3QgdWNvZGVfcm9tX3N0YXJ0YWRkcjsKICB1aW50MzJfdCB1
Y29kZV9sZW5ndGg7CiAgdWludDE2X3QgdW1jX3JlZ19pbml0X29mZnNldDsKICB1aW50MTZfdCBj
dXN0b21lcl91Y29kZV9uYW1lX29mZnNldDsKICB1aW50MTZfdCBtY2xrX3NzX3BlcmNlbnRhZ2U7
CiAgdWludDE2X3QgbWNsa19zc19yYXRlXzEwaHo7CiAgdWludDhfdCB1bWNpcF9taW5fdmVyOwog
IHVpbnQ4X3QgdW1jaXBfbWF4X3ZlcjsKICB1aW50OF90IHZyYW1fdHlwZTsKICB1aW50OF90IHVt
Y19jb25maWc7CiAgdWludDMyX3QgbWVtX3JlZmNsa18xMGtoejsKICB1aW50MzJfdCBwc3RhdGVf
dWNsa18xMGtoels0XTsKICB1aW50MTZfdCB1bWNnb2xkZW5vZmZzZXQ7CiAgdWludDE2X3QgZGVu
c2l0eWdvbGRlbm9mZnNldDsKfTsKCnN0cnVjdCBhdG9tX3VtY19pbmZvX3YzXzMKewogIHN0cnVj
dCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQzMl90IHVjb2Rl
X3Jlc2VydmVkOwogIHVpbnQzMl90IHVjb2RlX3JvbV9zdGFydGFkZHI7CiAgdWludDMyX3QgdWNv
ZGVfbGVuZ3RoOwogIHVpbnQxNl90IHVtY19yZWdfaW5pdF9vZmZzZXQ7CiAgdWludDE2X3QgY3Vz
dG9tZXJfdWNvZGVfbmFtZV9vZmZzZXQ7CiAgdWludDE2X3QgbWNsa19zc19wZXJjZW50YWdlOwog
IHVpbnQxNl90IG1jbGtfc3NfcmF0ZV8xMGh6OwogIHVpbnQ4X3QgdW1jaXBfbWluX3ZlcjsKICB1
aW50OF90IHVtY2lwX21heF92ZXI7CiAgdWludDhfdCB2cmFtX3R5cGU7CiAgdWludDhfdCB1bWNf
Y29uZmlnOwogIHVpbnQzMl90IG1lbV9yZWZjbGtfMTBraHo7CiAgdWludDMyX3QgcHN0YXRlX3Vj
bGtfMTBraHpbNF07CiAgdWludDE2X3QgdW1jZ29sZGVub2Zmc2V0OwogIHVpbnQxNl90IGRlbnNp
dHlnb2xkZW5vZmZzZXQ7CiAgdWludDMyX3QgcmVzZXJ2ZWRbNF07Cn07CgoKCgoKCnN0cnVjdCBh
dG9tX3ZyYW1fbW9kdWxlX3Y5IHsKCiAgdWludDMyX3QgbWVtb3J5X3NpemU7CiAgdWludDMyX3Qg
Y2hhbm5lbF9lbmFibGU7CiAgdWludDMyX3QgbWF4X21lbV9jbGs7CiAgdWludDE2X3QgcmVzZXJ2
ZWRbM107CiAgdWludDE2X3QgbWVtX3ZvbHRhZ2U7CiAgdWludDE2X3QgdnJhbV9tb2R1bGVfc2l6
ZTsKICB1aW50OF90IGV4dF9tZW1vcnlfaWQ7CiAgdWludDhfdCBtZW1vcnlfdHlwZTsKICB1aW50
OF90IGNoYW5uZWxfbnVtOwogIHVpbnQ4X3QgY2hhbm5lbF93aWR0aDsKICB1aW50OF90IGRlbnNp
dHk7CiAgdWludDhfdCB0dW5uaW5nc2V0X2lkOwogIHVpbnQ4X3QgdmVuZGVyX3Jldl9pZDsKICB1
aW50OF90IHJlZnJlc2hyYXRlOwogIHVpbnQ4X3QgaGJtX3Zlbl9yZXZfaWQ7CiAgdWludDhfdCB2
cmFtX3JzZDI7CiAgY2hhciBkcmFtX3Buc3RyaW5nWzIwXTsKfTsKCnN0cnVjdCBhdG9tX3ZyYW1f
aW5mb19oZWFkZXJfdjJfMyB7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJs
ZV9oZWFkZXI7CiAgdWludDE2X3QgbWVtX2FkanVzdF90YmxvZmZzZXQ7CiAgdWludDE2X3QgbWVt
X2Nsa19wYXRjaF90YmxvZmZzZXQ7CiAgdWludDE2X3QgbWNfYWRqdXN0X3BlcnRpbGVfdGJsb2Zm
c2V0OwogIHVpbnQxNl90IG1jX3BoeWluaXRfdGJsb2Zmc2V0OwogIHVpbnQxNl90IGRyYW1fZGF0
YV9yZW1hcF90YmxvZmZzZXQ7CiAgdWludDE2X3QgdG1yc19zZXFfb2Zmc2V0OwogIHVpbnQxNl90
IHBvc3RfdWNvZGVfaW5pdF9vZmZzZXQ7CiAgdWludDE2X3QgdnJhbV9yc2QyOwogIHVpbnQ4X3Qg
dnJhbV9tb2R1bGVfbnVtOwogIHVpbnQ4X3QgdW1jaXBfbWluX3ZlcjsKICB1aW50OF90IHVtY2lw
X21heF92ZXI7CiAgdWludDhfdCBtY19waHlfdGlsZV9udW07CiAgc3RydWN0IGF0b21fdnJhbV9t
b2R1bGVfdjkgdnJhbV9tb2R1bGVbMTZdOwp9OwoKc3RydWN0IGF0b21fdW1jX3JlZ2lzdGVyX2Fk
ZHJfaW5mb3sKICB1aW50MzJfdCB1bWNfcmVnaXN0ZXJfYWRkcjoyNDsKICB1aW50MzJfdCB1bWNf
cmVnX3R5cGVfaW5kOjE7CiAgdWludDMyX3QgdW1jX3JlZ19yc3ZkOjc7Cn07CgoKZW51bSBhdG9t
X3VtY19yZWdpc3Rlcl9hZGRyX2luZm9fZmxhZ3sKICBiM0FUT01fVU1DX1JFR19BRERfSU5GT19J
TkRJUkVDVF9BQ0NFU1MgPTB4MDEsCn07Cgp1bmlvbiBhdG9tX3VtY19yZWdpc3Rlcl9hZGRyX2lu
Zm9fYWNjZXNzCnsKICBzdHJ1Y3QgYXRvbV91bWNfcmVnaXN0ZXJfYWRkcl9pbmZvIHVtY19yZWdf
YWRkcjsKICB1aW50MzJfdCB1MzJ1bWNfcmVnX2FkZHI7Cn07CgpzdHJ1Y3QgYXRvbV91bWNfcmVn
X3NldHRpbmdfaWRfY29uZmlnewogIHVpbnQzMl90IG1lbWNsb2NrcmFuZ2U6MjQ7CiAgdWludDMy
X3QgbWVtX2Jsa19pZDo4Owp9OwoKdW5pb24gYXRvbV91bWNfcmVnX3NldHRpbmdfaWRfY29uZmln
X2FjY2Vzcwp7CiAgc3RydWN0IGF0b21fdW1jX3JlZ19zZXR0aW5nX2lkX2NvbmZpZyB1bWNfaWRf
YWNjZXNzOwogIHVpbnQzMl90IHUzMnVtY19pZF9hY2Nlc3M7Cn07CgpzdHJ1Y3QgYXRvbV91bWNf
cmVnX3NldHRpbmdfZGF0YV9ibG9ja3sKICB1bmlvbiBhdG9tX3VtY19yZWdfc2V0dGluZ19pZF9j
b25maWdfYWNjZXNzIGJsb2NrX2lkOwogIHVpbnQzMl90IHUzMnVtY19yZWdfZGF0YVsxXTsKfTsK
CnN0cnVjdCBhdG9tX3VtY19pbml0X3JlZ19ibG9ja3sKICB1aW50MTZfdCB1bWNfcmVnX251bTsK
ICB1aW50MTZfdCByZXNlcnZlZDsKICB1bmlvbiBhdG9tX3VtY19yZWdpc3Rlcl9hZGRyX2luZm9f
YWNjZXNzIHVtY19yZWdfbGlzdFsxXTsKICBzdHJ1Y3QgYXRvbV91bWNfcmVnX3NldHRpbmdfZGF0
YV9ibG9jayB1bWNfcmVnX3NldHRpbmdfbGlzdFsxXTsKfTsKCnN0cnVjdCBhdG9tX3ZyYW1fbW9k
dWxlX3YxMCB7CgogIHVpbnQzMl90IG1lbW9yeV9zaXplOwogIHVpbnQzMl90IGNoYW5uZWxfZW5h
YmxlOwogIHVpbnQzMl90IG1heF9tZW1fY2xrOwogIHVpbnQxNl90IHJlc2VydmVkWzNdOwogIHVp
bnQxNl90IG1lbV92b2x0YWdlOwogIHVpbnQxNl90IHZyYW1fbW9kdWxlX3NpemU7CiAgdWludDhf
dCBleHRfbWVtb3J5X2lkOwogIHVpbnQ4X3QgbWVtb3J5X3R5cGU7CiAgdWludDhfdCBjaGFubmVs
X251bTsKICB1aW50OF90IGNoYW5uZWxfd2lkdGg7CiAgdWludDhfdCBkZW5zaXR5OwogIHVpbnQ4
X3QgdHVubmluZ3NldF9pZDsKICB1aW50OF90IHZlbmRlcl9yZXZfaWQ7CiAgdWludDhfdCByZWZy
ZXNocmF0ZTsKICB1aW50OF90IHZyYW1fZmxhZ3M7CiAgdWludDhfdCB2cmFtX3JzZDI7CiAgdWlu
dDE2X3QgZ2RkcjZfbXIxMDsKICB1aW50MTZfdCBnZGRyNl9tcjE7CiAgdWludDE2X3QgZ2RkcjZf
bXIyOwogIHVpbnQxNl90IGdkZHI2X21yNzsKICBjaGFyIGRyYW1fcG5zdHJpbmdbMjBdOwp9OwoK
c3RydWN0IGF0b21fdnJhbV9pbmZvX2hlYWRlcl92Ml80IHsKICBzdHJ1Y3QgYXRvbV9jb21tb25f
dGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50MTZfdCBtZW1fYWRqdXN0X3RibG9mZnNl
dDsKICB1aW50MTZfdCBtZW1fY2xrX3BhdGNoX3RibG9mZnNldDsKICB1aW50MTZfdCBtY19hZGp1
c3RfcGVydGlsZV90YmxvZmZzZXQ7CiAgdWludDE2X3QgbWNfcGh5aW5pdF90YmxvZmZzZXQ7CiAg
dWludDE2X3QgZHJhbV9kYXRhX3JlbWFwX3RibG9mZnNldDsKICB1aW50MTZfdCByZXNlcnZlZDsK
ICB1aW50MTZfdCBwb3N0X3Vjb2RlX2luaXRfb2Zmc2V0OwogIHVpbnQxNl90IHZyYW1fcnNkMjsK
ICB1aW50OF90IHZyYW1fbW9kdWxlX251bTsKICB1aW50OF90IHVtY2lwX21pbl92ZXI7CiAgdWlu
dDhfdCB1bWNpcF9tYXhfdmVyOwogIHVpbnQ4X3QgbWNfcGh5X3RpbGVfbnVtOwogIHN0cnVjdCBh
dG9tX3ZyYW1fbW9kdWxlX3YxMCB2cmFtX21vZHVsZVsxNl07Cn07CgoKCgoKCnN0cnVjdCBhdG9t
X2kyY19kYXRhX2VudHJ5CnsKICB1aW50MTZfdCBpMmNfcmVnX2luZGV4OwogIHVpbnQxNl90IGky
Y19yZWdfZGF0YTsKfTsKCnN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NHsKICB1
aW50OF90IHZvbHRhZ2VfdHlwZTsKICB1aW50OF90IHZvbHRhZ2VfbW9kZTsKICB1aW50MTZfdCBv
YmplY3Rfc2l6ZTsKfTsKCgplbnVtIGF0b21fdm9sdGFnZV9vYmplY3RfbW9kZQp7CiAgIFZPTFRB
R0VfT0JKX0dQSU9fTFVUID0gMCwKICAgVk9MVEFHRV9PQkpfVlJfSTJDX0lOSVRfU0VRID0gMywK
ICAgVk9MVEFHRV9PQkpfUEhBU0VfTFVUID0gNCwKICAgVk9MVEFHRV9PQkpfU1ZJRDIgPSA3LAog
ICBWT0xUQUdFX09CSl9FVlYgPSA4LAogICBWT0xUQUdFX09CSl9NRVJHRURfUE9XRVIgPSA5LAp9
OwoKc3RydWN0IGF0b21faTJjX3ZvbHRhZ2Vfb2JqZWN0X3Y0CnsKICAgc3RydWN0IGF0b21fdm9s
dGFnZV9vYmplY3RfaGVhZGVyX3Y0IGhlYWRlcjsKICAgdWludDhfdCByZWd1bGF0b3JfaWQ7CiAg
IHVpbnQ4X3QgaTJjX2lkOwogICB1aW50OF90IGkyY19zbGF2ZV9hZGRyOwogICB1aW50OF90IGky
Y19jb250cm9sX29mZnNldDsKICAgdWludDhfdCBpMmNfZmxhZzsKICAgdWludDhfdCBpMmNfc3Bl
ZWQ7CiAgIHVpbnQ4X3QgcmVzZXJ2ZWRbMl07CiAgIHN0cnVjdCBhdG9tX2kyY19kYXRhX2VudHJ5
IGkyY2RhdGFsdXRbMV07Cn07CgoKZW51bSBhdG9tX2kyY192b2x0YWdlX2NvbnRyb2xfZmxhZwp7
CiAgIFZPTFRBR0VfREFUQV9PTkVfQllURSA9IDAsCiAgIFZPTFRBR0VfREFUQV9UV09fQllURSA9
IDEsCn07CgoKc3RydWN0IGF0b21fdm9sdGFnZV9ncGlvX21hcF9sdXQKewogIHVpbnQzMl90IHZv
bHRhZ2VfZ3Bpb19yZWdfdmFsOwogIHVpbnQxNl90IHZvbHRhZ2VfbGV2ZWxfbXY7Cn07CgpzdHJ1
Y3QgYXRvbV9ncGlvX3ZvbHRhZ2Vfb2JqZWN0X3Y0CnsKICAgc3RydWN0IGF0b21fdm9sdGFnZV9v
YmplY3RfaGVhZGVyX3Y0IGhlYWRlcjsKICAgdWludDhfdCBncGlvX2NvbnRyb2xfaWQ7CiAgIHVp
bnQ4X3QgZ3Bpb19lbnRyeV9udW07CiAgIHVpbnQ4X3QgcGhhc2VfZGVsYXlfdXM7CiAgIHVpbnQ4
X3QgcmVzZXJ2ZWQ7CiAgIHVpbnQzMl90IGdwaW9fbWFza192YWw7CiAgIHN0cnVjdCBhdG9tX3Zv
bHRhZ2VfZ3Bpb19tYXBfbHV0IHZvbHRhZ2VfZ3Bpb19sdXRbMV07Cn07CgpzdHJ1Y3QgYXRvbV9z
dmlkMl92b2x0YWdlX29iamVjdF92NAp7CiAgIHN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hl
YWRlcl92NCBoZWFkZXI7CiAgIHVpbnQ4X3QgbG9hZGxpbmVfcHNpMTsKICAgdWludDhfdCBwc2kw
X2xfdmlkX3RocmVzZDsKICAgdWludDhfdCBwc2kwX2VuYWJsZTsKICAgdWludDhfdCBtYXh2c3Rl
cDsKICAgdWludDhfdCB0ZWxlbWV0cnlfb2Zmc2V0OwogICB1aW50OF90IHRlbGVtZXRyeV9nYWlu
OwogICB1aW50MTZfdCByZXNlcnZlZDE7Cn07CgpzdHJ1Y3QgYXRvbV9tZXJnZWRfdm9sdGFnZV9v
YmplY3RfdjQKewogIHN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NCBoZWFkZXI7
CiAgdWludDhfdCBtZXJnZWRfcG93ZXJyYWlsX3R5cGU7CiAgdWludDhfdCByZXNlcnZlZFszXTsK
fTsKCnVuaW9uIGF0b21fdm9sdGFnZV9vYmplY3RfdjR7CiAgc3RydWN0IGF0b21fZ3Bpb192b2x0
YWdlX29iamVjdF92NCBncGlvX3ZvbHRhZ2Vfb2JqOwogIHN0cnVjdCBhdG9tX2kyY192b2x0YWdl
X29iamVjdF92NCBpMmNfdm9sdGFnZV9vYmo7CiAgc3RydWN0IGF0b21fc3ZpZDJfdm9sdGFnZV9v
YmplY3RfdjQgc3ZpZDJfdm9sdGFnZV9vYmo7CiAgc3RydWN0IGF0b21fbWVyZ2VkX3ZvbHRhZ2Vf
b2JqZWN0X3Y0IG1lcmdlZF92b2x0YWdlX29iajsKfTsKCnN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2Jq
ZWN0c19pbmZvX3Y0XzEKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVf
aGVhZGVyOwogIHVuaW9uIGF0b21fdm9sdGFnZV9vYmplY3RfdjQgdm9sdGFnZV9vYmplY3RbMV07
Cn07CiMgMjMyMyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21m
aXJtd2FyZS5oIgpzdHJ1Y3QgYXNpY19pbml0X2VuZ2luZV9wYXJhbWV0ZXJzCnsKICB1aW50MzJf
dCBzY2xrZnJlcWluMTBraHo6MjQ7CiAgdWludDMyX3QgZW5naW5lZmxhZzo4Owp9OwoKc3RydWN0
IGFzaWNfaW5pdF9tZW1fcGFyYW1ldGVycwp7CiAgdWludDMyX3QgbWNsa2ZyZXFpbjEwa2h6OjI0
OwogIHVpbnQzMl90IG1lbWZsYWc6ODsKfTsKCnN0cnVjdCBhc2ljX2luaXRfcGFyYW1ldGVyc192
Ml8xCnsKICBzdHJ1Y3QgYXNpY19pbml0X2VuZ2luZV9wYXJhbWV0ZXJzIGVuZ2luZXBhcmFtOwog
IHN0cnVjdCBhc2ljX2luaXRfbWVtX3BhcmFtZXRlcnMgbWVtcGFyYW07Cn07CgpzdHJ1Y3QgYXNp
Y19pbml0X3BzX2FsbG9jYXRpb25fdjJfMQp7CiAgc3RydWN0IGFzaWNfaW5pdF9wYXJhbWV0ZXJz
X3YyXzEgcGFyYW07CiAgdWludDMyX3QgcmVzZXJ2ZWRbMTZdOwp9OwoKCmVudW0gYXRvbV9hc2lj
X2luaXRfZW5naW5lX2ZsYWcKewogIGIzTk9STUFMX0VOR0lORV9JTklUID0gMCwKICBiM1NSSU9W
X1NLSVBfQVNJQ19JTklUID0gMHgwMiwKICBiM1NSSU9WX0xPQURfVUNPREUgPSAweDQwLAp9OwoK
ZW51bSBhdG9tX2FzaWNfaW5pdF9tZW1fZmxhZwp7CiAgYjNOT1JNQUxfTUVNX0lOSVQgPSAwLAog
IGIzRFJBTV9TRUxGX1JFRlJFU0hfRVhJVCA9MHgyMCwKfTsKCgoKCgoKCnN0cnVjdCBzZXRfZW5n
aW5lX2Nsb2NrX3BhcmFtZXRlcnNfdjJfMQp7CiAgdWludDMyX3Qgc2Nsa2ZyZXFpbjEwa2h6OjI0
OwogIHVpbnQzMl90IHNjbGtmbGFnOjg7CiAgdWludDMyX3QgcmVzZXJ2ZWRbMTBdOwp9OwoKc3Ry
dWN0IHNldF9lbmdpbmVfY2xvY2tfcHNfYWxsb2NhdGlvbl92Ml8xCnsKICBzdHJ1Y3Qgc2V0X2Vu
Z2luZV9jbG9ja19wYXJhbWV0ZXJzX3YyXzEgY2xvY2tpbmZvOwogIHVpbnQzMl90IHJlc2VydmVk
WzEwXTsKfTsKCgplbnVtIGF0b21fc2V0X2VuZ2luZV9tZW1fY2xvY2tfZmxhZwp7CiAgYjNOT1JN
QUxfQ0hBTkdFX0NMT0NLID0gMCwKICBiM0ZJUlNUX1RJTUVfQ0hBTkdFX0NMT0NLID0gMHgwOCwK
ICBiM1NUT1JFX0RQTV9UUkFJTkdJTkcgPSAweDQwLAp9OwoKCgoKCgpzdHJ1Y3QgZ2V0X2VuZ2lu
ZV9jbG9ja19wYXJhbWV0ZXIKewogIHVpbnQzMl90IHNjbGtfMTBraHo7CiAgdWludDMyX3QgcmVz
ZXJ2ZWQ7Cn07CgoKCgoKCnN0cnVjdCBzZXRfbWVtb3J5X2Nsb2NrX3BhcmFtZXRlcnNfdjJfMQp7
CiAgdWludDMyX3QgbWNsa2ZyZXFpbjEwa2h6OjI0OwogIHVpbnQzMl90IG1jbGtmbGFnOjg7CiAg
dWludDMyX3QgcmVzZXJ2ZWRbMTBdOwp9OwoKc3RydWN0IHNldF9tZW1vcnlfY2xvY2tfcHNfYWxs
b2NhdGlvbl92Ml8xCnsKICBzdHJ1Y3Qgc2V0X21lbW9yeV9jbG9ja19wYXJhbWV0ZXJzX3YyXzEg
Y2xvY2tpbmZvOwogIHVpbnQzMl90IHJlc2VydmVkWzEwXTsKfTsKCgoKCgoKCnN0cnVjdCBnZXRf
bWVtb3J5X2Nsb2NrX3BhcmFtZXRlcgp7CiAgdWludDMyX3QgbWNsa18xMGtoejsKICB1aW50MzJf
dCByZXNlcnZlZDsKfTsKIyAyNDM3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2lu
Y2x1ZGUvYXRvbWZpcm13YXJlLmgiCnN0cnVjdCBzZXRfdm9sdGFnZV9wYXJhbWV0ZXJzX3YxXzQK
ewogIHVpbnQ4X3Qgdm9sdGFnZXR5cGU7CiAgdWludDhfdCBjb21tYW5kOwogIHVpbnQxNl90IHZs
ZXZlbF9tdjsKfTsKCgplbnVtIGF0b21fc2V0X3ZvbHRhZ2VfY29tbWFuZHsKICBBVE9NX1NFVF9W
T0xUQUdFID0gMCwKICBBVE9NX0lOSVRfVk9MVEFHRV9SRUdVTEFUT1IgPSAzLAogIEFUT01fU0VU
X1ZPTFRBR0VfUEhBU0UgPSA0LAogIEFUT01fR0VUX0xFQUtBR0VfSUQgPSA4LAp9OwoKc3RydWN0
IHNldF92b2x0YWdlX3BzX2FsbG9jYXRpb25fdjFfNAp7CiAgc3RydWN0IHNldF92b2x0YWdlX3Bh
cmFtZXRlcnNfdjFfNCBzZXR2b2x0YWdlcGFyYW07CiAgdWludDMyX3QgcmVzZXJ2ZWRbMTBdOwp9
OwojIDI0NjYgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmly
bXdhcmUuaCIKZW51bSBhdG9tX2dwdV9jbG9ja190eXBlCnsKICBDT01QVVRFX0dQVUNMS19JTlBV
VF9GTEFHX0RFRkFVTFRfR1BVQ0xLID0weDAwLAogIENPTVBVVEVfR1BVQ0xLX0lOUFVUX0ZMQUdf
R0ZYQ0xLID0weDAxLAogIENPTVBVVEVfR1BVQ0xLX0lOUFVUX0ZMQUdfVUNMSyA9MHgwMiwKfTsK
CnN0cnVjdCBjb21wdXRlX2dwdV9jbG9ja19pbnB1dF9wYXJhbWV0ZXJfdjFfOAp7CiAgdWludDMy
X3QgZ3B1Y2xvY2tfMTBraHo6MjQ7CiAgdWludDMyX3QgZ3B1X2Nsb2NrX3R5cGU6ODsKICB1aW50
MzJfdCByZXNlcnZlZFs1XTsKfTsKCgpzdHJ1Y3QgY29tcHV0ZV9ncHVfY2xvY2tfb3V0cHV0X3Bh
cmFtZXRlcl92MV84CnsKICB1aW50MzJfdCBncHVjbG9ja18xMGtoejoyNDsKICB1aW50MzJfdCBk
ZnNfZGlkOjg7CiAgdWludDMyX3QgcGxsX2ZiX211bHQ7CiAgdWludDMyX3QgcGxsX3NzX2Zic211
bHQ7CiAgdWludDE2X3QgcGxsX3NzX3NsZXdfZnJhYzsKICB1aW50OF90IHBsbF9zc19lbmFibGU7
CiAgdWludDhfdCByZXNlcnZlZDsKICB1aW50MzJfdCByZXNlcnZlZDFbMl07Cn07CiMgMjUwMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgpz
dHJ1Y3QgcmVhZF9lZnVzZV9pbnB1dF9wYXJhbWV0ZXJzX3YzXzEKewogIHVpbnQxNl90IGVmdXNl
X3N0YXJ0X2luZGV4OwogIHVpbnQ4X3QgcmVzZXJ2ZWQ7CiAgdWludDhfdCBiaXRzbGVuOwp9OwoK
CnVuaW9uIHJlYWRfZWZ1c2VfdmFsdWVfcGFyYW1ldGVyc192M18xCnsKICBzdHJ1Y3QgcmVhZF9l
ZnVzZV9pbnB1dF9wYXJhbWV0ZXJzX3YzXzEgZWZ1c2VfaW5mbzsKICB1aW50MzJfdCBlZnVzZXZh
bHVlOwp9OwoKCgoKCgoKc3RydWN0IGF0b21fZ2V0X3NtdV9jbG9ja19pbmZvX3BhcmFtZXRlcnNf
djNfMQp7CiAgdWludDhfdCBzeXNwbGxfaWQ7CiAgdWludDhfdCBjbGtfaWQ7CiAgdWludDhfdCBj
b21tYW5kOwogIHVpbnQ4X3QgZGZzZGlkOwp9OwoKZW51bSBhdG9tX2dldF9zbXVfY2xvY2tfaW5m
b19jb21tYW5kCnsKICBHRVRfU01VX0NMT0NLX0lORk9fVjNfMV9HRVRfQ0xPQ0tfRlJFUSA9IDAs
CiAgR0VUX1NNVV9DTE9DS19JTkZPX1YzXzFfR0VUX1BMTFZDT19GUkVRID0gMSwKICBHRVRfU01V
X0NMT0NLX0lORk9fVjNfMV9HRVRfUExMUkVGQ0xLX0ZSRVEgPSAyLAp9OwoKZW51bSBhdG9tX3Nt
dTlfc3lzcGxsMF9jbG9ja19pZAp7CiAgU01VOV9TWVNQTEwwX1NNTkNMS19JRCA9IDAsCiAgU01V
OV9TWVNQTEwwX1NPQ0NMS19JRCA9IDEsCiAgU01VOV9TWVNQTEwwX01QMENMS19JRCA9IDIsCiAg
U01VOV9TWVNQTEwwX01QMUNMS19JRCA9IDMsCiAgU01VOV9TWVNQTEwwX0xDTEtfSUQgPSA0LAog
IFNNVTlfU1lTUExMMF9EQ0xLX0lEID0gNSwKICBTTVU5X1NZU1BMTDBfVkNMS19JRCA9IDYsCiAg
U01VOV9TWVNQTEwwX0VDTEtfSUQgPSA3LAogIFNNVTlfU1lTUExMMF9EQ0VGQ0xLX0lEID0gOCwK
ICBTTVU5X1NZU1BMTDBfRFBSRUZDTEtfSUQgPSAxMCwKICBTTVU5X1NZU1BMTDBfRElTUENMS19J
RCA9IDExLAp9OwoKZW51bSBhdG9tX3NtdTExX3N5c3BsbF9pZCB7CiAgU01VMTFfU1lTUExMMF9J
RCA9IDAsCiAgU01VMTFfU1lTUExMMV8wX0lEID0gMSwKICBTTVUxMV9TWVNQTEwxXzFfSUQgPSAy
LAogIFNNVTExX1NZU1BMTDFfMl9JRCA9IDMsCiAgU01VMTFfU1lTUExMMl9JRCA9IDQsCiAgU01V
MTFfU1lTUExMM18wX0lEID0gNSwKICBTTVUxMV9TWVNQTEwzXzFfSUQgPSA2LAp9OwoKZW51bSBh
dG9tX3NtdTExX3N5c3BsbDBfY2xvY2tfaWQgewogIFNNVTExX1NZU1BMTDBfRUNMS19JRCA9IDAs
CiAgU01VMTFfU1lTUExMMF9TT0NDTEtfSUQgPSAxLAogIFNNVTExX1NZU1BMTDBfTVAwQ0xLX0lE
ID0gMiwKICBTTVUxMV9TWVNQTEwwX0RDTEtfSUQgPSAzLAogIFNNVTExX1NZU1BMTDBfVkNMS19J
RCA9IDQsCiAgU01VMTFfU1lTUExMMF9EQ0VGQ0xLX0lEID0gNSwKfTsKCmVudW0gYXRvbV9zbXUx
MV9zeXNwbGwxXzBfY2xvY2tfaWQgewogIFNNVTExX1NZU1BMTDFfMF9VQ0xLQV9JRCA9IDAsCn07
CgplbnVtIGF0b21fc211MTFfc3lzcGxsMV8xX2Nsb2NrX2lkIHsKICBTTVUxMV9TWVNQTEwxXzBf
VUNMS0JfSUQgPSAwLAp9OwoKZW51bSBhdG9tX3NtdTExX3N5c3BsbDFfMl9jbG9ja19pZCB7CiAg
U01VMTFfU1lTUExMMV8wX0ZDTEtfSUQgPSAwLAp9OwoKZW51bSBhdG9tX3NtdTExX3N5c3BsbDJf
Y2xvY2tfaWQgewogIFNNVTExX1NZU1BMTDJfR0ZYQ0xLX0lEID0gMCwKfTsKCmVudW0gYXRvbV9z
bXUxMV9zeXNwbGwzXzBfY2xvY2tfaWQgewogIFNNVTExX1NZU1BMTDNfMF9XQUZDTEtfSUQgPSAw
LAogIFNNVTExX1NZU1BMTDNfMF9ESVNQQ0xLX0lEID0gMSwKICBTTVUxMV9TWVNQTEwzXzBfRFBS
RUZDTEtfSUQgPSAyLAp9OwoKZW51bSBhdG9tX3NtdTExX3N5c3BsbDNfMV9jbG9ja19pZCB7CiAg
U01VMTFfU1lTUExMM18xX01QMUNMS19JRCA9IDAsCiAgU01VMTFfU1lTUExMM18xX1NNTkNMS19J
RCA9IDEsCiAgU01VMTFfU1lTUExMM18xX0xDTEtfSUQgPSAyLAp9OwoKc3RydWN0IGF0b21fZ2V0
X3NtdV9jbG9ja19pbmZvX291dHB1dF9wYXJhbWV0ZXJzX3YzXzEKewogIHVuaW9uIHsKICAgIHVp
bnQzMl90IHNtdV9jbG9ja19mcmVxX2h6OwogICAgdWludDMyX3Qgc3lzcGxsdmNvZnJlcV8xMGto
ejsKICAgIHVpbnQzMl90IHN5c3NwbGxyZWZjbGtfMTBraHo7CiAgfWF0b21fc211X291dHB1dGNs
a2ZyZXE7Cn07CiMgMjYxNSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRl
L2F0b21maXJtd2FyZS5oIgplbnVtIGF0b21fZHluYW1pY19tZW1vcnlfc2V0dGluZ19jb21tYW5k
CnsKICBDT01QVVRFX01FTU9SWV9QTExfUEFSQU0gPSAxLAogIENPTVBVVEVfRU5HSU5FX1BMTF9Q
QVJBTSA9IDIsCiAgQURKVVNUX01DX1NFVFRJTkdfUEFSQU0gPSAzLAp9OwoKCnN0cnVjdCBkeW5h
bWljX21jbGtfc2V0dGluZ3NfcGFyYW1ldGVyc192Ml8xCnsKICB1aW50MzJfdCBtY2xrXzEwa2h6
OjI0OwogIHVpbnQzMl90IGNvbW1hbmQ6ODsKICB1aW50MzJfdCByZXNlcnZlZDsKfTsKCgpzdHJ1
Y3QgZHluYW1pY19zY2xrX3NldHRpbmdzX3BhcmFtZXRlcnNfdjJfMQp7CiAgdWludDMyX3Qgc2Ns
a18xMGtoejoyNDsKICB1aW50MzJfdCBjb21tYW5kOjg7CiAgdWludDMyX3QgbWNsa18xMGtoejsK
ICB1aW50MzJfdCByZXNlcnZlZDsKfTsKCnVuaW9uIGR5bmFtaWNfbWVtb3J5X3NldHRpbmdzX3Bh
cmFtZXRlcnNfdjJfMQp7CiAgc3RydWN0IGR5bmFtaWNfbWNsa19zZXR0aW5nc19wYXJhbWV0ZXJz
X3YyXzEgbWNsa19zZXR0aW5nOwogIHN0cnVjdCBkeW5hbWljX3NjbGtfc2V0dGluZ3NfcGFyYW1l
dGVyc192Ml8xIHNjbGtfc2V0dGluZzsKfTsKIyAyNjUzICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiCmVudW0gYXRvbV91bWM2XzBfdWNvZGVf
ZnVuY3Rpb25fY2FsbF9lbnVtX2lkCnsKICBVTUM2MF9VQ09ERV9GVU5DX0lEX1JFSU5JVCA9IDAs
CiAgVU1DNjBfVUNPREVfRlVOQ19JRF9FTlRFUl9TRUxGUkVGUkVTSCA9IDEsCiAgVU1DNjBfVUNP
REVfRlVOQ19JRF9FWElUX1NFTEZSRUZSRVNIID0gMiwKfTsKCgpzdHJ1Y3QgbWVtb3J5X3RyYWlu
aW5nX3BhcmFtZXRlcnNfdjJfMQp7CiAgdWludDhfdCB1Y29kZV9mdW5jX2lkOwogIHVpbnQ4X3Qg
dWNvZGVfcmVzZXJ2ZWRbM107CiAgdWludDMyX3QgcmVzZXJ2ZWRbNV07Cn07CiMgMjY3NSAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgpzdHJ1
Y3Qgc2V0X3BpeGVsX2Nsb2NrX3BhcmFtZXRlcl92MV83CnsKICAgIHVpbnQzMl90IHBpeGNsa18x
MDBoejsKCiAgICB1aW50OF90IHBsbF9pZDsKICAgIHVpbnQ4X3QgZW5jb2Rlcm9iamlkOwoKICAg
IHVpbnQ4X3QgZW5jb2Rlcl9tb2RlOwogICAgdWludDhfdCBtaXNjaW5mbzsKICAgIHVpbnQ4X3Qg
Y3J0Y19pZDsKICAgIHVpbnQ4X3QgZGVlcF9jb2xvcl9yYXRpbzsKICAgIHVpbnQ4X3QgcmVzZXJ2
ZWQxWzJdOwogICAgdWludDMyX3QgcmVzZXJ2ZWQyOwp9OwoKCmVudW0gYXRvbV9zZXRfcGl4ZWxf
Y2xvY2tfdjFfN19taXNjX2luZm8KewogIFBJWEVMX0NMT0NLX1Y3X01JU0NfRk9SQ0VfUFJPR19Q
UExMID0gMHgwMSwKICBQSVhFTF9DTE9DS19WN19NSVNDX1BST0dfUEhZUExMID0gMHgwMiwKICBQ
SVhFTF9DTE9DS19WN19NSVNDX1lVVjQyMF9NT0RFID0gMHgwNCwKICBQSVhFTF9DTE9DS19WN19N
SVNDX0RWSV9EVUFMTElOS19FTiA9IDB4MDgsCiAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19SRUZfRElW
X1NSQyA9IDB4MzAsCiAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19SRUZfRElWX1NSQ19YVEFMSU4gPSAw
eDAwLAogIFBJWEVMX0NMT0NLX1Y3X01JU0NfUkVGX0RJVl9TUkNfUENJRSA9IDB4MTAsCiAgUElY
RUxfQ0xPQ0tfVjdfTUlTQ19SRUZfRElWX1NSQ19HRU5MSyA9IDB4MjAsCiAgUElYRUxfQ0xPQ0tf
VjdfTUlTQ19SRUZfRElWX1NSQ19SRUZQQUQgPSAweDMwLAogIFBJWEVMX0NMT0NLX1Y3X01JU0Nf
QVRPTUlDX1VQREFURSA9IDB4NDAsCiAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19GT1JDRV9TU19ESVMg
PSAweDgwLAp9OwoKCmVudW0gYXRvbV9zZXRfcGl4ZWxfY2xvY2tfdjFfN19kZWVwY29sb3JfcmF0
aW8KewogIFBJWEVMX0NMT0NLX1Y3X0RFRVBDT0xPUl9SQVRJT19ESVMgPSAweDAwLAogIFBJWEVM
X0NMT0NLX1Y3X0RFRVBDT0xPUl9SQVRJT181XzQgPSAweDAxLAogIFBJWEVMX0NMT0NLX1Y3X0RF
RVBDT0xPUl9SQVRJT18zXzIgPSAweDAyLAogIFBJWEVMX0NMT0NLX1Y3X0RFRVBDT0xPUl9SQVRJ
T18yXzEgPSAweDAzLAp9OwojIDI3MjIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
aW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKc3RydWN0IHNldF9kY2VfY2xvY2tfcGFyYW1ldGVyc192
Ml8xCnsKICB1aW50MzJfdCBkY2VjbGtfMTBraHo7CiAgdWludDhfdCBkY2VjbGt0eXBlOwogIHVp
bnQ4X3QgZGNlY2xrc3JjOwogIHVpbnQ4X3QgZGNlY2xrZmxhZzsKICB1aW50OF90IGNydGNfaWQ7
Cn07CgoKZW51bSBhdG9tX3NldF9kY2VfY2xvY2tfY2xvY2tfdHlwZQp7CiAgRENFX0NMT0NLX1RZ
UEVfRElTUENMSyA9IDAsCiAgRENFX0NMT0NLX1RZUEVfRFBSRUZDTEsgPSAxLAogIERDRV9DTE9D
S19UWVBFX1BJWEVMQ0xLID0gMiwKfTsKCgplbnVtIGF0b21fc2V0X2RjZV9jbG9ja19kcHJlZmNs
a19mbGFnCnsKICBEQ0VfQ0xPQ0tfRkxBR19QTExfUkVGQ0xLX1NSQ19NQVNLID0gMHgwMywKICBE
Q0VfQ0xPQ0tfRkxBR19QTExfUkVGQ0xLX1NSQ19HRU5FUklDQSA9IDB4MDAsCiAgRENFX0NMT0NL
X0ZMQUdfUExMX1JFRkNMS19TUkNfR0VOTEsgPSAweDAxLAogIERDRV9DTE9DS19GTEFHX1BMTF9S
RUZDTEtfU1JDX1BDSUUgPSAweDAyLAogIERDRV9DTE9DS19GTEFHX1BMTF9SRUZDTEtfU1JDX1hU
QUxJTiA9IDB4MDMsCn07CgoKZW51bSBhdG9tX3NldF9kY2VfY2xvY2tfcGl4Y2xrX2ZsYWcKewog
IERDRV9DTE9DS19GTEFHX1BDTEtfREVFUENPTE9SX1JBVElPX01BU0sgPSAweDAzLAogIERDRV9D
TE9DS19GTEFHX1BDTEtfREVFUENPTE9SX1JBVElPX0RJUyA9IDB4MDAsCiAgRENFX0NMT0NLX0ZM
QUdfUENMS19ERUVQQ09MT1JfUkFUSU9fNV80ID0gMHgwMSwKICBEQ0VfQ0xPQ0tfRkxBR19QQ0xL
X0RFRVBDT0xPUl9SQVRJT18zXzIgPSAweDAyLAogIERDRV9DTE9DS19GTEFHX1BDTEtfREVFUENP
TE9SX1JBVElPXzJfMSA9IDB4MDMsCiAgRENFX0NMT0NLX0ZMQUdfUElYQ0xLX1lVVjQyMF9NT0RF
ID0gMHgwNCwKfTsKCnN0cnVjdCBzZXRfZGNlX2Nsb2NrX3BzX2FsbG9jYXRpb25fdjJfMQp7CiAg
c3RydWN0IHNldF9kY2VfY2xvY2tfcGFyYW1ldGVyc192Ml8xIHBhcmFtOwogIHVpbnQzMl90IHVs
UmVzZXJ2ZWRbMl07Cn07CgoKCgoKc3RydWN0IGJsYW5rX2NydGNfcGFyYW1ldGVycwp7CiAgdWlu
dDhfdCBjcnRjX2lkOwogIHVpbnQ4X3QgYmxhbmtpbmc7CiAgdWludDE2X3QgcmVzZXJ2ZWQ7CiAg
dWludDMyX3QgcmVzZXJ2ZWQxOwp9OwoKZW51bSBhdG9tX2JsYW5rX2NydGNfY29tbWFuZAp7CiAg
QVRPTV9CTEFOS0lORyA9IDEsCiAgQVRPTV9CTEFOS0lOR19PRkYgPSAwLAp9OwoKCgoKc3RydWN0
IGVuYWJsZV9jcnRjX3BhcmFtZXRlcnMKewogIHVpbnQ4X3QgY3J0Y19pZDsKICB1aW50OF90IGVu
YWJsZTsKICB1aW50OF90IHBhZGRpbmdbMl07Cn07CgoKCgoKc3RydWN0IGVuYWJsZV9kaXNwX3Bv
d2VyX2dhdGluZ19wYXJhbWV0ZXJzX3YyXzEKewogIHVpbnQ4X3QgZGlzcF9waXBlX2lkOwogIHVp
bnQ4X3QgZW5hYmxlOwogIHVpbnQ4X3QgcGFkZGluZ1syXTsKfTsKCnN0cnVjdCBlbmFibGVfZGlz
cF9wb3dlcl9nYXRpbmdfcHNfYWxsb2NhdGlvbgp7CiAgc3RydWN0IGVuYWJsZV9kaXNwX3Bvd2Vy
X2dhdGluZ19wYXJhbWV0ZXJzX3YyXzEgcGFyYW07CiAgdWludDMyX3QgdWxSZXNlcnZlZFs0XTsK
fTsKCgoKCnN0cnVjdCBzZXRfY3J0Y191c2luZ19kdGRfdGltaW5nX3BhcmFtZXRlcnMKewogIHVp
bnQxNl90IGhfc2l6ZTsKICB1aW50MTZfdCBoX2JsYW5raW5nX3RpbWU7CiAgdWludDE2X3Qgdl9z
aXplOwogIHVpbnQxNl90IHZfYmxhbmtpbmdfdGltZTsKICB1aW50MTZfdCBoX3N5bmNvZmZzZXQ7
CiAgdWludDE2X3QgaF9zeW5jd2lkdGg7CiAgdWludDE2X3Qgdl9zeW5jb2Zmc2V0OwogIHVpbnQx
Nl90IHZfc3luY3dpZHRoOwogIHVpbnQxNl90IG1vZGVtaXNjaW5mbzsKICB1aW50OF90IGhfYm9y
ZGVyOwogIHVpbnQ4X3Qgdl9ib3JkZXI7CiAgdWludDhfdCBjcnRjX2lkOwogIHVpbnQ4X3QgZW5j
b2Rlcl9tb2RlOwogIHVpbnQ4X3QgcGFkZGluZ1syXTsKfTsKCgoKCgpzdHJ1Y3QgcHJvY2Vzc19p
MmNfY2hhbm5lbF90cmFuc2FjdGlvbl9wYXJhbWV0ZXJzCnsKICB1aW50OF90IGkyY3NwZWVkX2to
ejsKICB1bmlvbiB7CiAgICB1aW50OF90IHJlZ2luZGV4OwogICAgdWludDhfdCBzdGF0dXM7CiAg
fSByZWdpbmRfc3RhdHVzOwogIHVpbnQxNl90IGkyY19kYXRhX291dDsKICB1aW50OF90IGZsYWc7
CiAgdWludDhfdCB0cmFuc19ieXRlczsKICB1aW50OF90IHNsYXZlX2FkZHI7CiAgdWludDhfdCBp
MmNfaWQ7Cn07CgoKZW51bSBhdG9tX3Byb2Nlc3NfaTJjX2ZsYWcKewogIEhXX0kyQ19XUklURSA9
IDEsCiAgSFdfSTJDX1JFQUQgPSAwLAogIEkyQ18yQllURV9BRERSID0gMHgwMiwKICBIV19JMkNf
U01CVVNfQllURV9XUiA9IDB4MDQsCn07CgoKZW51bSBhdG9tX3Byb2Nlc3NfaTJjX3N0YXR1cwp7
CiAgSFdfQVNTSVNURURfSTJDX1NUQVRVU19GQUlMVVJFID0yLAogIEhXX0FTU0lTVEVEX0kyQ19T
VEFUVVNfU1VDQ0VTUyA9MSwKfTsKCgoKCgoKc3RydWN0IHByb2Nlc3NfYXV4X2NoYW5uZWxfdHJh
bnNhY3Rpb25fcGFyYW1ldGVyc192MV8yCnsKICB1aW50MTZfdCBhdXhfcmVxdWVzdDsKICB1aW50
MTZfdCBkYXRhb3V0OwogIHVpbnQ4X3QgY2hhbm5lbGlkOwogIHVuaW9uIHsKICAgIHVpbnQ4X3Qg
cmVwbHlfc3RhdHVzOwogICAgdWludDhfdCBhdXhfZGVsYXk7CiAgfSBhdXhfc3RhdHVzX2RlbGF5
OwogIHVpbnQ4X3QgZGF0YW91dF9sZW47CiAgdWludDhfdCBocGRfaWQ7Cn07CgoKCgoKCnN0cnVj
dCBzZWxlY3RfY3J0Y19zb3VyY2VfcGFyYW1ldGVyc192Ml8zCnsKICB1aW50OF90IGNydGNfaWQ7
CiAgdWludDhfdCBlbmNvZGVyX2lkOwogIHVpbnQ4X3QgZW5jb2RlX21vZGU7CiAgdWludDhfdCBk
c3RfYnBjOwp9OwoKCgoKCgoKZW51bSBhdG9tX2RpZ19lbmNvZGVyX2NvbnRyb2xfYWN0aW9uCnsK
ICBBVE9NX0VOQ09ERVJfQ01EX0RJU0FCTEVfRElHID0gMCwKICBBVE9NX0VOQ09ERVJfQ01EX0VO
QUJMRV9ESUcgPSAxLAogIEFUT01fRU5DT0RFUl9DTURfRFBfTElOS19UUkFJTklOR19TVEFSVCA9
IDB4MDgsCiAgQVRPTV9FTkNPREVSX0NNRF9EUF9MSU5LX1RSQUlOSU5HX1BBVFRFUk4xID0gMHgw
OSwKICBBVE9NX0VOQ09ERVJfQ01EX0RQX0xJTktfVFJBSU5JTkdfUEFUVEVSTjIgPSAweDBhLAog
IEFUT01fRU5DT0RFUl9DTURfRFBfTElOS19UUkFJTklOR19QQVRURVJOMyA9IDB4MTMsCiAgQVRP
TV9FTkNPREVSX0NNRF9EUF9MSU5LX1RSQUlOSU5HX0NPTVBMRVRFID0gMHgwYiwKICBBVE9NX0VO
Q09ERVJfQ01EX0RQX1ZJREVPX09GRiA9IDB4MGMsCiAgQVRPTV9FTkNPREVSX0NNRF9EUF9WSURF
T19PTiA9IDB4MGQsCiAgQVRPTV9FTkNPREVSX0NNRF9TRVRVUF9QQU5FTF9NT0RFID0gMHgxMCwK
ICBBVE9NX0VOQ09ERVJfQ01EX0RQX0xJTktfVFJBSU5JTkdfUEFUVEVSTjQgPSAweDE0LAogIEFU
T01fRU5DT0RFUl9DTURfU1RSRUFNX1NFVFVQID0gMHgwRiwKICBBVE9NX0VOQ09ERVJfQ01EX0xJ
TktfU0VUVVAgPSAweDExLAogIEFUT01fRU5DT0RFUl9DTURfRU5DT0RFUl9CTEFOSyA9IDB4MTIs
Cn07CgoKZW51bSBhdG9tX2RpZ19lbmNvZGVyX2NvbnRyb2xfcGFuZWxtb2RlCnsKICBEUF9QQU5F
TF9NT0RFX0RJU0FCTEUgPSAweDAwLAogIERQX1BBTkVMX01PREVfRU5BQkxFX2VEUF9NT0RFID0g
MHgwMSwKICBEUF9QQU5FTF9NT0RFX0VOQUJMRV9MVkxJTktfTU9ERSA9IDB4MTEsCn07CgoKZW51
bSBhdG9tX2RpZ19lbmNvZGVyX2NvbnRyb2xfdjVfZGlnaWQKewogIEFUT01fRU5DT0RFUl9DT05G
SUdfVjVfRElHMF9FTkNPREVSID0gMHgwMCwKICBBVE9NX0VOQ09ERVJfQ09ORklHX1Y1X0RJRzFf
RU5DT0RFUiA9IDB4MDEsCiAgQVRPTV9FTkNPREVSX0NPTkZJR19WNV9ESUcyX0VOQ09ERVIgPSAw
eDAyLAogIEFUT01fRU5DT0RFUl9DT05GSUdfVjVfRElHM19FTkNPREVSID0gMHgwMywKICBBVE9N
X0VOQ09ERVJfQ09ORklHX1Y1X0RJRzRfRU5DT0RFUiA9IDB4MDQsCiAgQVRPTV9FTkNPREVSX0NP
TkZJR19WNV9ESUc1X0VOQ09ERVIgPSAweDA1LAogIEFUT01fRU5DT0RFUl9DT05GSUdfVjVfRElH
Nl9FTkNPREVSID0gMHgwNiwKICBBVE9NX0VOQ09ERVJfQ09ORklHX1Y1X0RJRzdfRU5DT0RFUiA9
IDB4MDcsCn07CgpzdHJ1Y3QgZGlnX2VuY29kZXJfc3RyZWFtX3NldHVwX3BhcmFtZXRlcnNfdjFf
NQp7CiAgdWludDhfdCBkaWdpZDsKICB1aW50OF90IGFjdGlvbjsKICB1aW50OF90IGRpZ21vZGU7
CiAgdWludDhfdCBsYW5lbnVtOwogIHVpbnQzMl90IHBjbGtfMTBraHo7CiAgdWludDhfdCBiaXRw
ZXJjb2xvcjsKICB1aW50OF90IGRwbGlua3JhdGVfMjcwbWh6OwogIHVpbnQ4X3QgcmVzZXJ2ZWRb
Ml07Cn07CgpzdHJ1Y3QgZGlnX2VuY29kZXJfbGlua19zZXR1cF9wYXJhbWV0ZXJzX3YxXzUKewog
IHVpbnQ4X3QgZGlnaWQ7CiAgdWludDhfdCBhY3Rpb247CiAgdWludDhfdCBkaWdtb2RlOwogIHVp
bnQ4X3QgbGFuZW51bTsKICB1aW50OF90IHN5bWNsa18xMGtoejsKICB1aW50OF90IGhwZF9zZWw7
CiAgdWludDhfdCBkaWdmZV9zZWw7CiAgdWludDhfdCByZXNlcnZlZFsyXTsKfTsKCnN0cnVjdCBk
cF9wYW5lbF9tb2RlX3NldF9wYXJhbWV0ZXJzX3YxXzUKewogIHVpbnQ4X3QgZGlnaWQ7CiAgdWlu
dDhfdCBhY3Rpb247CiAgdWludDhfdCBwYW5lbG1vZGU7CiAgdWludDhfdCByZXNlcnZlZDE7CiAg
dWludDMyX3QgcmVzZXJ2ZWQyWzJdOwp9OwoKc3RydWN0IGRpZ19lbmNvZGVyX2dlbmVyaWNfY21k
X3BhcmFtZXRlcnNfdjFfNQp7CiAgdWludDhfdCBkaWdpZDsKICB1aW50OF90IGFjdGlvbjsKICB1
aW50OF90IHJlc2VydmVkMVsyXTsKICB1aW50MzJfdCByZXNlcnZlZDJbMl07Cn07Cgp1bmlvbiBk
aWdfZW5jb2Rlcl9jb250cm9sX3BhcmFtZXRlcnNfdjFfNQp7CiAgc3RydWN0IGRpZ19lbmNvZGVy
X2dlbmVyaWNfY21kX3BhcmFtZXRlcnNfdjFfNSBjbWRfcGFyYW07CiAgc3RydWN0IGRpZ19lbmNv
ZGVyX3N0cmVhbV9zZXR1cF9wYXJhbWV0ZXJzX3YxXzUgc3RyZWFtX3BhcmFtOwogIHN0cnVjdCBk
aWdfZW5jb2Rlcl9saW5rX3NldHVwX3BhcmFtZXRlcnNfdjFfNSBsaW5rX3BhcmFtOwogIHN0cnVj
dCBkcF9wYW5lbF9tb2RlX3NldF9wYXJhbWV0ZXJzX3YxXzUgZHBwYW5lbF9wYXJhbTsKfTsKCgoK
CgoKc3RydWN0IGRpZ190cmFuc21pdHRlcl9jb250cm9sX3BhcmFtZXRlcnNfdjFfNgp7CiAgdWlu
dDhfdCBwaHlpZDsKICB1aW50OF90IGFjdGlvbjsKICB1bmlvbiB7CiAgICB1aW50OF90IGRpZ21v
ZGU7CiAgICB1aW50OF90IGRwbGFuZXNldDsKICB9IG1vZGVfbGFuZXNldDsKICB1aW50OF90IGxh
bmVudW07CiAgdWludDMyX3Qgc3ltY2xrXzEwa2h6OwogIHVpbnQ4X3QgaHBkc2VsOwogIHVpbnQ4
X3QgZGlnZmVfc2VsOwogIHVpbnQ4X3QgY29ubm9ial9pZDsKICB1aW50OF90IHJlc2VydmVkOwog
IHVpbnQzMl90IHJlc2VydmVkMTsKfTsKCnN0cnVjdCBkaWdfdHJhbnNtaXR0ZXJfY29udHJvbF9w
c19hbGxvY2F0aW9uX3YxXzYKewogIHN0cnVjdCBkaWdfdHJhbnNtaXR0ZXJfY29udHJvbF9wYXJh
bWV0ZXJzX3YxXzYgcGFyYW07CiAgdWludDMyX3QgcmVzZXJ2ZWRbNF07Cn07CgoKZW51bSBhdG9t
X2RpZ190cmFuc21pdHRlcl9jb250cm9sX2FjdGlvbgp7CiAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJ
T05fRElTQUJMRSA9IDAsCiAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fRU5BQkxFID0gMSwKICBB
VE9NX1RSQU5TTUlUVEVSX0FDVElPTl9MQ0RfQkxPRkYgPSAyLAogIEFUT01fVFJBTlNNSVRURVJf
QUNUSU9OX0xDRF9CTE9OID0gMywKICBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9CTF9CUklHSFRO
RVNTX0NPTlRST0wgPSA0LAogIEFUT01fVFJBTlNNSVRURVJfQUNUSU9OX0xDRF9TRUxGVEVTVF9T
VEFSVCA9IDUsCiAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fTENEX1NFTEZURVNUX1NUT1AgPSA2
LAogIEFUT01fVFJBTlNNSVRURVJfQUNUSU9OX0lOSVQgPSA3LAogIEFUT01fVFJBTlNNSVRURVJf
QUNUSU9OX0RJU0FCTEVfT1VUUFVUID0gOCwKICBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9FTkFC
TEVfT1VUUFVUID0gOSwKICBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9TRVRVUCA9IDEwLAogIEFU
T01fVFJBTlNNSVRURVJfQUNUSU9OX1NFVFVQX1ZTRU1QSCA9IDExLAogIEFUT01fVFJBTlNNSVRU
RVJfQUNUSU9OX1BPV0VSX09OID0gMTIsCiAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fUE9XRVJf
T0ZGID0gMTMsCn07CgoKZW51bSBhdG9tX2RpZ190cmFuc21pdHRlcl9jb250cm9sX2RpZ2ZlX3Nl
bAp7CiAgQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHQV9TRUwgPSAweDAxLAogIEFUT01fVFJBTk1T
SVRURVJfVjZfX0RJR0JfU0VMID0gMHgwMiwKICBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdDX1NF
TCA9IDB4MDQsCiAgQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHRF9TRUwgPSAweDA4LAogIEFUT01f
VFJBTk1TSVRURVJfVjZfX0RJR0VfU0VMID0gMHgxMCwKICBBVE9NX1RSQU5NU0lUVEVSX1Y2X19E
SUdGX1NFTCA9IDB4MjAsCiAgQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHR19TRUwgPSAweDQwLAp9
OwoKCgplbnVtIGF0b21fZGlnX3RyYW5zbWl0dGVyX2NvbnRyb2xfaHBkX3NlbAp7CiAgQVRPTV9U
UkFOU01JVFRFUl9WNl9OT19IUERfU0VMID0gMHgwMCwKICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQ
RDFfU0VMID0gMHgwMSwKICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQRDJfU0VMID0gMHgwMiwKICBB
VE9NX1RSQU5TTUlUVEVSX1Y2X0hQRDNfU0VMID0gMHgwMywKICBBVE9NX1RSQU5TTUlUVEVSX1Y2
X0hQRDRfU0VMID0gMHgwNCwKICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQRDVfU0VMID0gMHgwNSwK
ICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQRDZfU0VMID0gMHgwNiwKfTsKCgplbnVtIGF0b21fZGln
X3RyYW5zbWl0dGVyX2NvbnRyb2xfZHBsYW5lc2V0CnsKICBEUF9MQU5FX1NFVF9fMERCXzBfNFYg
PSAweDAwLAogIERQX0xBTkVfU0VUX18wREJfMF82ViA9IDB4MDEsCiAgRFBfTEFORV9TRVRfXzBE
Ql8wXzhWID0gMHgwMiwKICBEUF9MQU5FX1NFVF9fMERCXzFfMlYgPSAweDAzLAogIERQX0xBTkVf
U0VUX18zXzVEQl8wXzRWID0gMHgwOCwKICBEUF9MQU5FX1NFVF9fM181REJfMF82ViA9IDB4MDks
CiAgRFBfTEFORV9TRVRfXzNfNURCXzBfOFYgPSAweDBhLAogIERQX0xBTkVfU0VUX182REJfMF80
ViA9IDB4MTAsCiAgRFBfTEFORV9TRVRfXzZEQl8wXzZWID0gMHgxMSwKICBEUF9MQU5FX1NFVF9f
OV81REJfMF80ViA9IDB4MTgsCn07CgoKCgoKCgpzdHJ1Y3QgZXh0ZXJuYWxfZW5jb2Rlcl9jb250
cm9sX3BhcmFtZXRlcnNfdjJfNAp7CiAgdWludDE2X3QgcGl4ZWxjbG9ja18xMGtoejsKICB1aW50
OF90IGNvbmZpZzsKICB1aW50OF90IGFjdGlvbjsKICB1aW50OF90IGVuY29kZXJtb2RlOwogIHVp
bnQ4X3QgbGFuZW51bTsKICB1aW50OF90IGJpdHBlcmNvbG9yOwogIHVpbnQ4X3QgaHBkX2lkOwp9
OwoKCgplbnVtIGV4dGVybmFsX2VuY29kZXJfY29udHJvbF9hY3Rpb25fZGVmCnsKICBFWFRFUk5B
TF9FTkNPREVSX0FDVElPTl9WM19ESVNBQkxFX09VVFBVVCA9IDB4MDAsCiAgRVhURVJOQUxfRU5D
T0RFUl9BQ1RJT05fVjNfRU5BQkxFX09VVFBVVCA9IDB4MDEsCiAgRVhURVJOQUxfRU5DT0RFUl9B
Q1RJT05fVjNfRU5DT0RFUl9JTklUID0gMHgwNywKICBFWFRFUk5BTF9FTkNPREVSX0FDVElPTl9W
M19FTkNPREVSX1NFVFVQID0gMHgwZiwKICBFWFRFUk5BTF9FTkNPREVSX0FDVElPTl9WM19FTkNP
REVSX0JMQU5LSU5HX09GRiA9IDB4MTAsCiAgRVhURVJOQUxfRU5DT0RFUl9BQ1RJT05fVjNfRU5D
T0RFUl9CTEFOS0lORyA9IDB4MTEsCiAgRVhURVJOQUxfRU5DT0RFUl9BQ1RJT05fVjNfREFDTE9B
RF9ERVRFQ1RJT04gPSAweDEyLAogIEVYVEVSTkFMX0VOQ09ERVJfQUNUSU9OX1YzX0REQ19TRVRV
UCA9IDB4MTQsCn07CgoKZW51bSBleHRlcm5hbF9lbmNvZGVyX2NvbnRyb2xfdjJfNF9jb25maWdf
ZGVmCnsKICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFX01BU0sgPSAweDAz
LAogIEVYVEVSTkFMX0VOQ09ERVJfQ09ORklHX1YzX0RQTElOS1JBVEVfMV82MkdIWiA9IDB4MDAs
CiAgRVhURVJOQUxfRU5DT0RFUl9DT05GSUdfVjNfRFBMSU5LUkFURV8yXzcwR0haID0gMHgwMSwK
ICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFXzVfNDBHSFogPSAweDAyLAog
IEVYVEVSTkFMX0VOQ09ERVJfQ09ORklHX1YzX0RQTElOS1JBVEVfM18yNEdIWiA9IDB4MDMsCiAg
RVhURVJOQUxfRU5DT0RFUl9DT05GSUdfVjNfRU5DT0RFUl9TRUxfTUFLUyA9IDB4NzAsCiAgRVhU
RVJOQUxfRU5DT0RFUl9DT05GSUdfVjNfRU5DT0RFUjEgPSAweDAwLAogIEVYVEVSTkFMX0VOQ09E
RVJfQ09ORklHX1YzX0VOQ09ERVIyID0gMHgxMCwKICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19W
M19FTkNPREVSMyA9IDB4MjAsCn07CgpzdHJ1Y3QgZXh0ZXJuYWxfZW5jb2Rlcl9jb250cm9sX3Bz
X2FsbG9jYXRpb25fdjJfNAp7CiAgc3RydWN0IGV4dGVybmFsX2VuY29kZXJfY29udHJvbF9wYXJh
bWV0ZXJzX3YyXzQgc0V4dEVuY29kZXI7CiAgdWludDMyX3QgcmVzZXJ2ZWRbMl07Cn07CiMgMzEz
NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5o
IgpzdHJ1Y3QgYW1kX2FjcGlfZGVzY3JpcHRpb25faGVhZGVyewogIHVpbnQzMl90IHNpZ25hdHVy
ZTsKICB1aW50MzJfdCB0YWJsZUxlbmd0aDsKICB1aW50OF90IHJldmlzaW9uOwogIHVpbnQ4X3Qg
Y2hlY2tzdW07CiAgdWludDhfdCBvZW1JZFs2XTsKICB1aW50OF90IG9lbVRhYmxlSWRbOF07CiAg
dWludDMyX3Qgb2VtUmV2aXNpb247CiAgdWludDMyX3QgY3JlYXRvcklkOwogIHVpbnQzMl90IGNy
ZWF0b3JSZXZpc2lvbjsKfTsKCnN0cnVjdCB1ZWZpX2FjcGlfdmZjdHsKICBzdHJ1Y3QgYW1kX2Fj
cGlfZGVzY3JpcHRpb25faGVhZGVyIHNoZWFkZXI7CiAgdWludDhfdCB0YWJsZVVVSURbMTZdOwog
IHVpbnQzMl90IHZiaW9zaW1hZ2VvZmZzZXQ7CiAgdWludDMyX3QgbGliMUltYWdlb2Zmc2V0Owog
IHVpbnQzMl90IHJlc2VydmVkWzRdOwp9OwoKc3RydWN0IHZmY3RfaW1hZ2VfaGVhZGVyewogIHVp
bnQzMl90IHBjaWJ1czsKICB1aW50MzJfdCBwY2lkZXZpY2U7CiAgdWludDMyX3QgcGNpZnVuY3Rp
b247CiAgdWludDE2X3QgdmVuZG9yaWQ7CiAgdWludDE2X3QgZGV2aWNlaWQ7CiAgdWludDE2X3Qg
c3N2aWQ7CiAgdWludDE2X3Qgc3NpZDsKICB1aW50MzJfdCByZXZpc2lvbjsKICB1aW50MzJfdCBp
bWFnZWxlbmd0aDsKfTsKCgpzdHJ1Y3QgZ29wX3ZiaW9zX2NvbnRlbnQgewogIHN0cnVjdCB2ZmN0
X2ltYWdlX2hlYWRlciB2Ymlvc2hlYWRlcjsKICB1aW50OF90IHZiaW9zY29udGVudFsxXTsKfTsK
CnN0cnVjdCBnb3BfbGliMV9jb250ZW50IHsKICBzdHJ1Y3QgdmZjdF9pbWFnZV9oZWFkZXIgbGli
MWhlYWRlcjsKICB1aW50OF90IGxpYjFjb250ZW50WzFdOwp9OwojIDMxOTAgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKZW51bSBzY3JhdGNo
X3JlZ2lzdGVyX2RlZnsKICBBVE9NX0RFVklDRV9DT05ORUNUX0lORk9fREVGID0gMCwKICBBVE9N
X0JMX0JSSV9MRVZFTF9JTkZPX0RFRiA9IDIsCiAgQVRPTV9BQ1RJVkVfSU5GT19ERUYgPSAzLAog
IEFUT01fTENEX0lORk9fREVGID0gNCwKICBBVE9NX0RFVklDRV9SRVFfSU5GT19ERUYgPSA1LAog
IEFUT01fQUNDX0NIQU5HRV9JTkZPX0RFRiA9IDYsCiAgQVRPTV9QUkVfT1NfTU9ERV9JTkZPX0RF
RiA9IDcsCiAgQVRPTV9QUkVfT1NfQVNTRVJUSU9OX0RFRiA9IDgsCiAgQVRPTV9JTlRFUk5BTF9U
SU1FUl9JTkZPX0RFRiA9IDEwLAp9OwoKZW51bSBzY3JhdGNoX2RldmljZV9jb25uZWN0X2luZm9f
Yml0X2RlZnsKICBBVE9NX0RJU1BMQVlfTENEMV9DT05ORUNUID0weDAwMDIsCiAgQVRPTV9ESVNQ
TEFZX0RGUDFfQ09OTkVDVCA9MHgwMDA4LAogIEFUT01fRElTUExBWV9ERlAyX0NPTk5FQ1QgPTB4
MDA4MCwKICBBVE9NX0RJU1BMQVlfREZQM19DT05ORUNUID0weDAyMDAsCiAgQVRPTV9ESVNQTEFZ
X0RGUDRfQ09OTkVDVCA9MHgwNDAwLAogIEFUT01fRElTUExBWV9ERlA1X0NPTk5FQ1QgPTB4MDgw
MCwKICBBVE9NX0RJU1BMQVlfREZQNl9DT05ORUNUID0weDAwNDAsCiAgQVRPTV9ESVNQTEFZX0RG
UHhfQ09OTkVDVCA9MHgwZWM4LAogIEFUT01fQ09OTkVDVF9JTkZPX0RFVklDRV9NQVNLID0weDBm
ZmYsCn07CgplbnVtIHNjcmF0Y2hfYmxfYnJpX2xldmVsX2luZm9fYml0X2RlZnsKICBBVE9NX0NV
UlJFTlRfQkxfTEVWRUxfU0hJRlQgPTB4OCwKCiAgQVRPTV9DVVJSRU5UX0JMX0xFVkVMX01BU0sg
PTB4MDAwMGZmMDAsCiAgQVRPTV9ERVZJQ0VfRFBNU19TVEFURSA9MHgwMDAxMDAwMCwKCn07Cgpl
bnVtIHNjcmF0Y2hfYWN0aXZlX2luZm9fYml0c19kZWZ7CiAgQVRPTV9ESVNQTEFZX0xDRDFfQUNU
SVZFID0weDAwMDIsCiAgQVRPTV9ESVNQTEFZX0RGUDFfQUNUSVZFID0weDAwMDgsCiAgQVRPTV9E
SVNQTEFZX0RGUDJfQUNUSVZFID0weDAwODAsCiAgQVRPTV9ESVNQTEFZX0RGUDNfQUNUSVZFID0w
eDAyMDAsCiAgQVRPTV9ESVNQTEFZX0RGUDRfQUNUSVZFID0weDA0MDAsCiAgQVRPTV9ESVNQTEFZ
X0RGUDVfQUNUSVZFID0weDA4MDAsCiAgQVRPTV9ESVNQTEFZX0RGUDZfQUNUSVZFID0weDAwNDAs
CiAgQVRPTV9BQ1RJVkVfSU5GT19ERVZJQ0VfTUFTSyA9MHgwZmZmLAp9OwoKZW51bSBzY3JhdGNo
X2RldmljZV9yZXFfaW5mb19iaXRzX2RlZnsKICBBVE9NX0RJU1BMQVlfTENEMV9SRVEgPTB4MDAw
MiwKICBBVE9NX0RJU1BMQVlfREZQMV9SRVEgPTB4MDAwOCwKICBBVE9NX0RJU1BMQVlfREZQMl9S
RVEgPTB4MDA4MCwKICBBVE9NX0RJU1BMQVlfREZQM19SRVEgPTB4MDIwMCwKICBBVE9NX0RJU1BM
QVlfREZQNF9SRVEgPTB4MDQwMCwKICBBVE9NX0RJU1BMQVlfREZQNV9SRVEgPTB4MDgwMCwKICBB
VE9NX0RJU1BMQVlfREZQNl9SRVEgPTB4MDA0MCwKICBBVE9NX1JFUV9JTkZPX0RFVklDRV9NQVNL
ID0weDBmZmYsCn07CgplbnVtIHNjcmF0Y2hfYWNjX2NoYW5nZV9pbmZvX2JpdHNoaWZ0X2RlZnsK
ICBBVE9NX0FDQ19DSEFOR0VfQUNDX01PREVfU0hJRlQgPTQsCiAgQVRPTV9BQ0NfQ0hBTkdFX0xJ
RF9TVEFUVVNfU0hJRlQgPTYsCn07CgplbnVtIHNjcmF0Y2hfYWNjX2NoYW5nZV9pbmZvX2JpdHNf
ZGVmewogIEFUT01fQUNDX0NIQU5HRV9BQ0NfTU9ERSA9MHgwMDAwMDAxMCwKICBBVE9NX0FDQ19D
SEFOR0VfTElEX1NUQVRVUyA9MHgwMDAwMDA0MCwKfTsKCmVudW0gc2NyYXRjaF9wcmVfb3NfbW9k
ZV9pbmZvX2JpdHNfZGVmewogIEFUT01fUFJFX09TX01PREVfTUFTSyA9MHgwMDAwMDAwMywKICBB
VE9NX1BSRV9PU19NT0RFX1ZHQSA9MHgwMDAwMDAwMCwKICBBVE9NX1BSRV9PU19NT0RFX1ZFU0Eg
PTB4MDAwMDAwMDEsCiAgQVRPTV9QUkVfT1NfTU9ERV9HT1AgPTB4MDAwMDAwMDIsCiAgQVRPTV9Q
UkVfT1NfTU9ERV9QSVhFTF9ERVBUSCA9MHgwMDAwMDAwQywKICBBVE9NX1BSRV9PU19NT0RFX1BJ
WEVMX0ZPUk1BVF9NQVNLPTB4MDAwMDAwRjAsCiAgQVRPTV9QUkVfT1NfTU9ERV84QklUX1BBTF9F
TiA9MHgwMDAwMDEwMCwKICBBVE9NX0FTSUNfSU5JVF9DT01QTEVURSA9MHgwMDAwMDIwMCwKCiAg
QVRPTV9QUkVfT1NfTU9ERV9OVU1CRVJfTUFTSyA9MHhGRkZGMDAwMCwKCn07CiMgMzI3NiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgojIDEg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmVpZC5o
IiAxCiMgMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmly
bXdhcmVpZC5oIgplbnVtIGF0b21fbWFzdGVyX2RhdGFfdGFibGVfaWQKewogICAgVkJJT1NfREFU
QV9UQkxfSURfX1VUSUxJVFlfUElQRUxJTkUsCiAgICBWQklPU19EQVRBX1RCTF9JRF9fTVVMVElN
RURJQV9JTkYsCiAgICBWQklPU19EQVRBX1RCTF9JRF9fRklSTVdBUkVfSU5GLAogICAgVkJJT1Nf
REFUQV9UQkxfSURfX0xDRF9JTkYsCiAgICBWQklPU19EQVRBX1RCTF9JRF9fU01VX0lORiwKICAg
IFZCSU9TX0RBVEFfVEJMX0lEX19WUkFNX1VTQUdFX0JZX0ZJUk1XQVJFLAogICAgVkJJT1NfREFU
QV9UQkxfSURfX0dQSU9fUElOX0xVVCwKICAgIFZCSU9TX0RBVEFfVEJMX0lEX19HRlhfSU5GLAog
ICAgVkJJT1NfREFUQV9UQkxfSURfX1BPV0VSX1BMQVlfSU5GLAogICAgVkJJT1NfREFUQV9UQkxf
SURfX0RJU1BMQVlfT0JKRUNUX0lORiwKICAgIFZCSU9TX0RBVEFfVEJMX0lEX19JTkRJUkVDVF9J
T19BQ0NFU1MsCiAgICBWQklPU19EQVRBX1RCTF9JRF9fVU1DX0lORiwKICAgIFZCSU9TX0RBVEFf
VEJMX0lEX19EQ0VfSU5GLAogICAgVkJJT1NfREFUQV9UQkxfSURfX1ZSQU1fSU5GLAogICAgVkJJ
T1NfREFUQV9UQkxfSURfX0lOVEVHUkFURURfU1lTX0lORiwKICAgIFZCSU9TX0RBVEFfVEJMX0lE
X19BU0lDX1BST0ZJTElOR19JTkYsCiAgICBWQklPU19EQVRBX1RCTF9JRF9fVk9MVEFHRV9PQkpf
SU5GLAoKICAgIFZCSU9TX0RBVEFfVEJMX0lEX19VTkRFRklORUQsCn07CgplbnVtIGF0b21fbWFz
dGVyX2NvbW1hbmRfdGFibGVfaWQKewogICAgVkJJT1NfQ01EX1RCTF9JRF9fQVNJQ19JTklULAog
ICAgVkJJT1NfQ01EX1RCTF9JRF9fRElHWF9FTkNPREVSX0NPTlRST0wsCiAgICBWQklPU19DTURf
VEJMX0lEX19TRVRfRU5HSU5FX0NMT0NLLAogICAgVkJJT1NfQ01EX1RCTF9JRF9fU0VUX01FTU9S
WV9DTE9DSywKICAgIFZCSU9TX0NNRF9UQkxfSURfX1NFVF9QSVhFTF9DTE9DSywKICAgIFZCSU9T
X0NNRF9UQkxfSURfX0VOQUJMRV9ESVNQX1BPV0VSX0dBVElORywKICAgIFZCSU9TX0NNRF9UQkxf
SURfX0JMQU5LX0NSVEMsCiAgICBWQklPU19DTURfVEJMX0lEX19FTkFCTEVfQ1JUQywKICAgIFZC
SU9TX0NNRF9UQkxfSURfX0dFVF9TTVVfQ0xPQ0tfSU5GTywKICAgIFZCSU9TX0NNRF9UQkxfSURf
X1NFTEVDVF9DUlRDX1NPVVJDRSwKICAgIFZCSU9TX0NNRF9UQkxfSURfX1NFVF9EQ0VfQ0xPQ0ss
CiAgICBWQklPU19DTURfVEJMX0lEX19HRVRfTUVNT1JZX0NMT0NLLAogICAgVkJJT1NfQ01EX1RC
TF9JRF9fR0VUX0VOR0lORV9DTE9DSywKICAgIFZCSU9TX0NNRF9UQkxfSURfX1NFVF9DUlRDX1VT
SU5HX0RURF9USU1JTkcsCiAgICBWQklPU19DTURfVEJMX0lEX19FWFRFTkFMX0VOQ09ERVJfQ09O
VFJPTCwKICAgIFZCSU9TX0NNRF9UQkxfSURfX1BST0NFU1NfSTJDX0NIQU5ORUxfVFJBTlNBQ1RJ
T04sCiAgICBWQklPU19DTURfVEJMX0lEX19DT01QVVRFX0dQVV9DTE9DS19QQVJBTSwKICAgIFZC
SU9TX0NNRF9UQkxfSURfX0RZTkFNSUNfTUVNT1JZX1NFVFRJTkdTLAogICAgVkJJT1NfQ01EX1RC
TF9JRF9fTUVNT1JZX1RSQUlOSU5HLAogICAgVkJJT1NfQ01EX1RCTF9JRF9fU0VUX1ZPTFRBR0Us
CiAgICBWQklPU19DTURfVEJMX0lEX19ESUcxX1RSQU5TTUlUVEVSX0NPTlRST0wsCiAgICBWQklP
U19DTURfVEJMX0lEX19QUk9DRVNTX0FVWF9DSEFOTkVMX1RSQU5TQUNUSU9OLAogICAgVkJJT1Nf
Q01EX1RCTF9JRF9fR0VUX1ZPTFRBR0VfSU5GLAoKICAgIFZCSU9TX0NNRF9UQkxfSURfX1VOREVG
SU5FRCwKfTsKIyAzMjc3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUv
YXRvbWZpcm13YXJlLmgiIDIKI3ByYWdtYSBwYWNrKCkKIyA0MSAiZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIgMgojIDEg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hc2ljX3JlZy9jbGsvY2xr
XzEwXzBfMl9vZmZzZXQuaCIgMQojIDQyICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5jIiAyCiMgMSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2FzaWNfcmVnL2Nsay9jbGtfMTBfMF8yX3NoX21h
c2suaCIgMQojIDQzICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Ns
a19tZ3IvZGNuMjEvcm5fY2xrX21nci5jIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9pbmNsdWRlL3Jlbm9pcl9pcF9vZmZzZXQuaCIgMQojIDI4ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvcmVub2lyX2lwX29mZnNldC5oIgpzdHJ1Y3QgSVBf
QkFTRV9JTlNUQU5DRQp7CiAgICB1bnNpZ25lZCBpbnQgc2VnbWVudFs1XTsKfTsKCnN0cnVjdCBJ
UF9CQVNFCnsKICAgIHN0cnVjdCBJUF9CQVNFX0lOU1RBTkNFIGluc3RhbmNlWzddOwp9OwoKCnN0
YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBBQ1BfQkFTRSA9eyB7IHsgeyAweDAyNDAzODAwLCAw
eDAwNDgwMDAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0g
fSB9IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBBVEhVQl9CQVNFID17IHsgeyB7IDB4
MDAwMDBDMjAsIDB4MDI0MDhDMDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAs
IDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAs
IDAsIDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIENMS19CQVNFID17
IHsgeyB7IDB4MDAwMTZDMDAsIDB4MDAwMTZFMDAsIDB4MDAwMTcwMDAsIDB4MDAwMTdFMDAsIDAg
fSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAs
IDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0
IHN0cnVjdCBJUF9CQVNFIERCR1VfSU8wX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDFFMCwgMHgwMjQw
QjQwMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9
OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgREZfQkFTRSA9eyB7IHsgeyAweDAwMDA3MDAw
LCAweDAyNDBCODAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAw
IH0gfSB9IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBESU9fQkFTRSA9eyB7IHsgeyAw
eDAyNDA0MDAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAw
IH0gfSB9IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBETVVfQkFTRSA9eyB7IHsgeyAw
eDAwMDAwMDEyLCAweDAwMDAwMEMwLCAweDAwMDAzNEMwLCAweDAwMDA5MDAwLCAweDAyNDAzQzAw
IH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CnN0YXRpYyBjb25z
dCBzdHJ1Y3QgSVBfQkFTRSBEUENTX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAxMiwgMHgwMDAwMDBD
MCwgMHgwMDAwMzRDMCwgMHgwMDAwOTAwMCwgMHgwMjQwM0MwMCB9IH0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9
IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgRlVT
RV9CQVNFID17IHsgeyB7IDB4MDAwMTc0MDAsIDB4MDI0MDE0MDAsIDAsIDAsIDAgfSB9LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAs
IDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAs
IDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJ
UF9CQVNFIEdDX0JBU0UgPXsgeyB7IHsgMHgwMDAwMjAwMCwgMHgwMDAwQTAwMCwgMHgwMjQwMkMw
MCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsg
MCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0
aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSERBX0JBU0UgPXsgeyB7IHsgMHgwMjQwNDgwMCwgMHgw
MDRDMDAwMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0g
fSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSERQX0JBU0UgPXsgeyB7IHsgMHgwMDAw
MEYyMCwgMHgwMjQwQTQwMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9
IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSU9IQzBfQkFTRSA9eyB7
IHsgeyAweDAwMDEwMDAwLCAweDAyNDA2MDAwLCAweDA0RUMwMDAwLCAwLCAwIH0gfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAw
IH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBf
QkFTRSBJU1BfQkFTRSA9eyB7IHsgeyAweDAwMDE4MDAwLCAweDAyNDBCMDAwLCAwLCAwLCAwIH0g
fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAw
LCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAw
LCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
eyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CnN0YXRpYyBjb25zdCBz
dHJ1Y3QgSVBfQkFTRSBMMklNVTBfQkFTRSA9eyB7IHsgeyAweDAwMDA3REMwLCAweDAyNDA3MDAw
LCAweDAwOTAwMDAwLCAweDA0RkMwMDAwLCAweDA1NUMwMDAwIH0gfSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0g
fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAw
LCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAw
LCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
eyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBNTUhV
Ql9CQVNFID17IHsgeyB7IDB4MDAwMUEwMDAsIDB4MDI0MDg4MDAsIDAsIDAsIDAgfSB9LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAs
IDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAs
IDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJ
UF9CQVNFIE1QMF9CQVNFID17IHsgeyB7IDB4MDAwMTYwMDAsIDB4MDI0M0ZDMDAsIDB4MDBEQzAw
MDAsIDB4MDBFMDAwMDAsIDB4MDBFNDAwMDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE1QMV9CQVNFID17IHsg
eyB7IDB4MDAwMTYwMDAsIDB4MDI0MDA0MDAsIDB4MDBFODAwMDAsIDB4MDBFQzAwMDAsIDB4MDBG
MDAwMDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAs
IDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKc3RhdGlj
IGNvbnN0IHN0cnVjdCBJUF9CQVNFIE5CSUYwX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAwMCwgMHgw
MDAwMDAxNCwgMHgwMDAwMEQyMCwgMHgwMDAxMDQwMCwgMHgwMjQxQjAwMCB9IH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9
IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JB
U0UgRENOX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAxMiwgMHgwMDAwMDBDMCwgMHgwMDAwMzRDMCwg
MCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0
IElQX0JBU0UgT1NTU1lTX0JBU0UgPXsgeyB7IHsgMHgwMDAwMTBBMCwgMHgwMjQwQTAwMCwgMCwg
MCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMg
Y29uc3Qgc3RydWN0IElQX0JBU0UgUENJRTBfQkFTRSA9eyB7IHsgeyAweDAyNDExODAwLCAweDA0
NDQwMDAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9
IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BMF9CQVNFID17IHsgeyB7IDB4MDAw
MDEyNjAsIDB4MDI0MEE4MDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFNNVUlPX0JBU0UgPXsg
eyB7IHsgMHgwMDAxNjgwMCwgMHgwMDAxNkEwMCwgMHgwMjQwMTAwMCwgMHgwMDQ0MDAwMCwgMCB9
IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qg
c3RydWN0IElQX0JBU0UgVEhNX0JBU0UgPXsgeyB7IHsgMHgwMDAxNjYwMCwgMHgwMjQwMEMwMCwg
MCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsg
MCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0
aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgVU1DX0JBU0UgPXsgeyB7IHsgMHgwMDAxNDAwMCwgMHgw
MjQyNTgwMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMHgwMDA1NDAwMCwgMHgwMjQyNUMwMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwg
MCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwg
MCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsg
MCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgVVNCMF9C
QVNFID17IHsgeyB7IDB4MDI0MkE4MDAsIDB4MDVCMDAwMDAsIDAsIDAsIDAgfSB9LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAs
IDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9C
QVNFIFVWRDBfQkFTRSA9eyB7IHsgeyAweDAwMDA3ODAwLCAweDAwMDA3RTAwLCAweDAyNDAzMDAw
LCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CiMgNDQg
ImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9y
bl9jbGtfbWdyLmMiIDIKIyA1NyAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIKaW50IHJuX2dldF9hY3RpdmVfZGlzcGxh
eV9jbnRfd2EoCiAgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpCnsK
IGludCBpLCBkaXNwbGF5X2NvdW50OwogYm9vbCB0bWRzX3ByZXNlbnQgPSBmYWxzZTsKCiBkaXNw
bGF5X2NvdW50ID0gMDsKIGZvciAoaSA9IDA7IGkgPCBjb250ZXh0LT5zdHJlYW1fY291bnQ7IGkr
KykgewogIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSA9IGNvbnRleHQtPnN0
cmVhbXNbaV07CgogIGlmIChzdHJlYW0tPnNpZ25hbCA9PSBTSUdOQUxfVFlQRV9IRE1JX1RZUEVf
QSB8fAogICAgc3RyZWFtLT5zaWduYWwgPT0gU0lHTkFMX1RZUEVfRFZJX1NJTkdMRV9MSU5LIHx8
CiAgICBzdHJlYW0tPnNpZ25hbCA9PSBTSUdOQUxfVFlQRV9EVklfRFVBTF9MSU5LKQogICB0bWRz
X3ByZXNlbnQgPSB0cnVlOwogfQoKIGZvciAoaSA9IDA7IGkgPCBkYy0+bGlua19jb3VudDsgaSsr
KSB7CiAgY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmsgPSBkYy0+bGlua3NbaV07CiMgODQgImRy
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9j
bGtfbWdyLmMiCiAgaWYgKGxpbmstPmNvbm5lY3Rvcl9zaWduYWwgPT0gU0lHTkFMX1RZUEVfVklS
VFVBTCB8fAogICAgbGluay0+bGlua19lbmMtPmZ1bmNzLT5pc19kaWdfZW5hYmxlZChsaW5rLT5s
aW5rX2VuYykpCiAgIGRpc3BsYXlfY291bnQrKzsKIH0KCgogaWYgKGRpc3BsYXlfY291bnQgPT0g
MCAmJiB0bWRzX3ByZXNlbnQpCiAgZGlzcGxheV9jb3VudCA9IDE7CgogcmV0dXJuIGRpc3BsYXlf
Y291bnQ7Cn0KCnZvaWQgcm5fdXBkYXRlX2Nsb2NrcyhzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9i
YXNlLAogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAgIGJvb2wgc2FmZV90b19sb3dlcikK
ewogc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IgPSAoeyB2b2lkICpfX21wdHIgPSAo
dm9pZCAqKShjbGtfbWdyX2Jhc2UpOyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNz
ZXJ0XzEwMCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNt
YXRjaCBpbiBjb250YWluZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21w
YXRpYmxlX3AodHlwZW9mKCooY2xrX21ncl9iYXNlKSksIHR5cGVvZigoKHN0cnVjdCBjbGtfbWdy
X2ludGVybmFsICopMCktPmJhc2UpKSAmJiAhX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0
eXBlb2YoKihjbGtfbWdyX2Jhc2UpKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fz
c2VydF8xMDAoKTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKikoX19t
cHRyIC0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsLCBiYXNlKSkp
OyB9KTsKIHN0cnVjdCBkY19jbG9ja3MgKm5ld19jbG9ja3MgPSAmY29udGV4dC0+YndfY3R4LmJ3
LmRjbi5jbGs7CiBzdHJ1Y3QgZGMgKmRjID0gY2xrX21ncl9iYXNlLT5jdHgtPmRjOwogaW50IGRp
c3BsYXlfY291bnQ7CiBib29sIHVwZGF0ZV9kcHBjbGsgPSBmYWxzZTsKIGJvb2wgdXBkYXRlX2Rp
c3BjbGsgPSBmYWxzZTsKIGJvb2wgZHBwX2Nsb2NrX2xvd2VyZWQgPSBmYWxzZTsKCiBzdHJ1Y3Qg
ZG1jdSAqZG1jdSA9IGNsa19tZ3JfYmFzZS0+Y3R4LT5kYy0+cmVzX3Bvb2wtPmRtY3U7CgogaWYg
KGRjLT53b3JrX2Fyb3VuZHMuc2tpcF9jbG9ja191cGRhdGUpCiAgcmV0dXJuOwoKCgoKCiBpZiAo
c2FmZV90b19sb3dlcikgewoKICBpZiAoY2xrX21ncl9iYXNlLT5jbGtzLnB3cl9zdGF0ZSAhPSBE
Q05fUFdSX1NUQVRFX0xPV19QT1dFUikgewoKICAgZGlzcGxheV9jb3VudCA9IHJuX2dldF9hY3Rp
dmVfZGlzcGxheV9jbnRfd2EoZGMsIGNvbnRleHQpOwoKICAgaWYgKGRpc3BsYXlfY291bnQgPT0g
MCkgewogICAgcm5fdmJpb3Nfc211X3NldF9kY25fbG93X3Bvd2VyX3N0YXRlKGNsa19tZ3IsIERD
Tl9QV1JfU1RBVEVfTE9XX1BPV0VSKTsKCiAgICBjbGtfbWdyX2Jhc2UtPmNsa3MucHdyX3N0YXRl
ID0gRENOX1BXUl9TVEFURV9MT1dfUE9XRVI7CiAgIH0KICB9CiB9IGVsc2UgewoKICBpZiAoY2xr
X21ncl9iYXNlLT5jbGtzLnB3cl9zdGF0ZSAhPSBEQ05fUFdSX1NUQVRFX01JU1NJT05fTU9ERSkg
ewogICBybl92Ymlvc19zbXVfc2V0X2Rjbl9sb3dfcG93ZXJfc3RhdGUoY2xrX21nciwgRENOX1BX
Ul9TVEFURV9NSVNTSU9OX01PREUpOwoKICAgY2xrX21ncl9iYXNlLT5jbGtzLnB3cl9zdGF0ZSA9
IERDTl9QV1JfU1RBVEVfTUlTU0lPTl9NT0RFOwogIH0KIH0KCiBpZiAoc2hvdWxkX3NldF9jbG9j
ayhzYWZlX3RvX2xvd2VyLCBuZXdfY2xvY2tzLT5waHljbGtfa2h6LCBjbGtfbWdyX2Jhc2UtPmNs
a3MucGh5Y2xrX2toeikpIHsKICBjbGtfbWdyX2Jhc2UtPmNsa3MucGh5Y2xrX2toeiA9IG5ld19j
bG9ja3MtPnBoeWNsa19raHo7CiAgcm5fdmJpb3Nfc211X3NldF9waHljbGsoY2xrX21nciwgY2xr
X21ncl9iYXNlLT5jbGtzLnBoeWNsa19raHopOwogfQoKIGlmIChzaG91bGRfc2V0X2Nsb2NrKHNh
ZmVfdG9fbG93ZXIsIG5ld19jbG9ja3MtPmRjZmNsa19raHosIGNsa19tZ3JfYmFzZS0+Y2xrcy5k
Y2ZjbGtfa2h6KSkgewogIGNsa19tZ3JfYmFzZS0+Y2xrcy5kY2ZjbGtfa2h6ID0gbmV3X2Nsb2Nr
cy0+ZGNmY2xrX2toejsKICBybl92Ymlvc19zbXVfc2V0X2hhcmRfbWluX2RjZmNsayhjbGtfbWdy
LCBjbGtfbWdyX2Jhc2UtPmNsa3MuZGNmY2xrX2toeik7CiB9CgogaWYgKHNob3VsZF9zZXRfY2xv
Y2soc2FmZV90b19sb3dlciwKICAgbmV3X2Nsb2Nrcy0+ZGNmY2xrX2RlZXBfc2xlZXBfa2h6LCBj
bGtfbWdyX2Jhc2UtPmNsa3MuZGNmY2xrX2RlZXBfc2xlZXBfa2h6KSkgewogIGNsa19tZ3JfYmFz
ZS0+Y2xrcy5kY2ZjbGtfZGVlcF9zbGVlcF9raHogPSBuZXdfY2xvY2tzLT5kY2ZjbGtfZGVlcF9z
bGVlcF9raHo7CiAgcm5fdmJpb3Nfc211X3NldF9taW5fZGVlcF9zbGVlcF9kY2ZjbGsoY2xrX21n
ciwgY2xrX21ncl9iYXNlLT5jbGtzLmRjZmNsa19kZWVwX3NsZWVwX2toeik7CiB9CgoKIGlmICgh
KChkYy0+Y3R4LT5kY2VfZW52aXJvbm1lbnQgPT0gRENFX0VOVl9GUEdBX01BWElNVVMpIHx8IChk
Yy0+Y3R4LT5kY2VfZW52aXJvbm1lbnQgPT0gRENFX0VOVl9ESUFHKSkpIHsKICBpZiAobmV3X2Ns
b2Nrcy0+ZHBwY2xrX2toeiA8IDEwMDAwMCkKICAgbmV3X2Nsb2Nrcy0+ZHBwY2xrX2toeiA9IDEw
MDAwMDsKIH0KCiBpZiAoc2hvdWxkX3NldF9jbG9jayhzYWZlX3RvX2xvd2VyLCBuZXdfY2xvY2tz
LT5kcHBjbGtfa2h6LCBjbGtfbWdyLT5iYXNlLmNsa3MuZHBwY2xrX2toeikpIHsKICBpZiAoY2xr
X21nci0+YmFzZS5jbGtzLmRwcGNsa19raHogPiBuZXdfY2xvY2tzLT5kcHBjbGtfa2h6KQogICBk
cHBfY2xvY2tfbG93ZXJlZCA9IHRydWU7CiAgY2xrX21ncl9iYXNlLT5jbGtzLmRwcGNsa19raHog
PSBuZXdfY2xvY2tzLT5kcHBjbGtfa2h6OwogIHVwZGF0ZV9kcHBjbGsgPSB0cnVlOwogfQoKIGlm
IChzaG91bGRfc2V0X2Nsb2NrKHNhZmVfdG9fbG93ZXIsIG5ld19jbG9ja3MtPmRpc3BjbGtfa2h6
LCBjbGtfbWdyX2Jhc2UtPmNsa3MuZGlzcGNsa19raHopKSB7CiAgY2xrX21ncl9iYXNlLT5jbGtz
LmRpc3BjbGtfa2h6ID0gbmV3X2Nsb2Nrcy0+ZGlzcGNsa19raHo7CiAgcm5fdmJpb3Nfc211X3Nl
dF9kaXNwY2xrKGNsa19tZ3IsIGNsa19tZ3JfYmFzZS0+Y2xrcy5kaXNwY2xrX2toeik7CgogIHVw
ZGF0ZV9kaXNwY2xrID0gdHJ1ZTsKIH0KCiBpZiAoZHBwX2Nsb2NrX2xvd2VyZWQpIHsKCiAgZGNu
MjBfdXBkYXRlX2Nsb2Nrc191cGRhdGVfZHBwX2R0byhjbGtfbWdyLCBjb250ZXh0LCBzYWZlX3Rv
X2xvd2VyKTsKICBybl92Ymlvc19zbXVfc2V0X2RwcGNsayhjbGtfbWdyLCBjbGtfbWdyX2Jhc2Ut
PmNsa3MuZHBwY2xrX2toeik7CiB9IGVsc2UgewoKICBpZiAodXBkYXRlX2RwcGNsayB8fCB1cGRh
dGVfZGlzcGNsaykKICAgcm5fdmJpb3Nfc211X3NldF9kcHBjbGsoY2xrX21nciwgY2xrX21ncl9i
YXNlLT5jbGtzLmRwcGNsa19raHopOwoKICBpZiAobmV3X2Nsb2Nrcy0+ZHBwY2xrX2toeiA+PSBk
Yy0+Y3VycmVudF9zdGF0ZS0+YndfY3R4LmJ3LmRjbi5jbGsuZHBwY2xrX2toeikKICAgZGNuMjBf
dXBkYXRlX2Nsb2Nrc191cGRhdGVfZHBwX2R0byhjbGtfbWdyLCBjb250ZXh0LCBzYWZlX3RvX2xv
d2VyKTsKIH0KCiBpZiAodXBkYXRlX2Rpc3BjbGsgJiYKICAgZG1jdSAmJiBkbWN1LT5mdW5jcy0+
aXNfZG1jdV9pbml0aWFsaXplZChkbWN1KSkgewoKICBkbWN1LT5mdW5jcy0+c2V0X3Bzcl93YWl0
X2xvb3AoZG1jdSwKICAgY2xrX21ncl9iYXNlLT5jbGtzLmRpc3BjbGtfa2h6IC8gMTAwMCAvIDcp
OwogfQp9CgoKc3RhdGljIGludCBnZXRfdmNvX2ZyZXF1ZW5jeV9mcm9tX3JlZyhzdHJ1Y3QgY2xr
X21ncl9pbnRlcm5hbCAqY2xrX21ncikKewoKIHN0cnVjdCBmaXhlZDMxXzMyIHBsbF9yZXE7CiB1
bnNpZ25lZCBpbnQgZmJtdWx0X2ZyYWNfdmFsID0gMDsKIHVuc2lnbmVkIGludCBmYm11bHRfaW50
X3ZhbCA9IDA7CgoKCgoKCgogZ2VuZXJpY19yZWdfZ2V0KGNsa19tZ3ItPmJhc2UuY3R4LCAoQ0xL
X0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDAwZiksIDB4MTAsIDB4RkZGRjAwMDBM
LCAmZmJtdWx0X2ZyYWNfdmFsKTsKIGdlbmVyaWNfcmVnX2dldChjbGtfbWdyLT5iYXNlLmN0eCwg
KENMS19CQVNFLmluc3RhbmNlWzBdLnNlZ21lbnRbMV0gKyAweDAwMGYpLCAweDAsIDB4MDAwMDAx
RkZMLCAmZmJtdWx0X2ludF92YWwpOwoKIHBsbF9yZXEgPSBkY19maXhwdF9mcm9tX2ludChmYm11
bHRfaW50X3ZhbCk7CgoKCgoKIHBsbF9yZXEudmFsdWUgfD0gZmJtdWx0X2ZyYWNfdmFsIDw8IDE2
OwoKCiBwbGxfcmVxID0gZGNfZml4cHRfbXVsX2ludChwbGxfcmVxLCBjbGtfbWdyLT5kZnNfcmVm
X2ZyZXFfa2h6KTsKCgogcmV0dXJuIGRjX2ZpeHB0X2Zsb29yKHBsbF9yZXEpOwp9CgpzdGF0aWMg
dm9pZCBybl9kdW1wX2Nsa19yZWdpc3RlcnNfaW50ZXJuYWwoc3RydWN0IHJuX2Nsa19pbnRlcm5h
bCAqaW50ZXJuYWwsIHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UpCnsKIHN0cnVjdCBjbGtf
bWdyX2ludGVybmFsICpjbGtfbWdyID0gKHsgdm9pZCAqX19tcHRyID0gKHZvaWQgKikoY2xrX21n
cl9iYXNlKTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8yMjkodm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFp
bmVyX29mKCkiKSkpOyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVv
ZigqKGNsa19tZ3JfYmFzZSkpLCB0eXBlb2YoKChzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqKTAp
LT5iYXNlKSkgJiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCooY2xrX21n
cl9iYXNlKSksIHR5cGVvZih2b2lkKSkpKSkgX19jb21waWxldGltZV9hc3NlcnRfMjI5KCk7IH0g
d2hpbGUgKDApOyAoKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICopKF9fbXB0ciAtIF9fYnVpbHRp
bl9vZmZzZXRvZihzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCwgYmFzZSkpKTsgfSk7CgogaW50ZXJu
YWwtPkNMSzFfQ0xLM19DVVJSRU5UX0NOVCA9IGRtX3JlYWRfcmVnX2Z1bmMoY2xrX21nci0+YmFz
ZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50WzFdICsgMHgwMDhkKSwgX19mdW5j
X18pOwogaW50ZXJuYWwtPkNMSzFfQ0xLM19CWVBBU1NfQ05UTCA9IGRtX3JlYWRfcmVnX2Z1bmMo
Y2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50WzFdICsgMHgw
MDY3KSwgX19mdW5jX18pOwoKIGludGVybmFsLT5DTEsxX0NMSzNfRFNfQ05UTCA9IGRtX3JlYWRf
cmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50
WzFdICsgMHgwMDYwKSwgX19mdW5jX18pOwogaW50ZXJuYWwtPkNMSzFfQ0xLM19BTExPV19EUyA9
IGRtX3JlYWRfcmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVsw
XS5zZWdtZW50WzFdICsgMHgwMDYxKSwgX19mdW5jX18pOwoKIGludGVybmFsLT5DTEsxX0NMSzFf
Q1VSUkVOVF9DTlQgPSBkbV9yZWFkX3JlZ19mdW5jKGNsa19tZ3ItPmJhc2UuY3R4LCAoQ0xLX0JB
U0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA4YiksIF9fZnVuY19fKTsKIGludGVybmFs
LT5DTEsxX0NMSzFfQllQQVNTX0NOVEwgPSBkbV9yZWFkX3JlZ19mdW5jKGNsa19tZ3ItPmJhc2Uu
Y3R4LCAoQ0xLX0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA1MyksIF9fZnVuY19f
KTsKCiBpbnRlcm5hbC0+Q0xLMV9DTEsyX0NVUlJFTlRfQ05UID0gZG1fcmVhZF9yZWdfZnVuYyhj
bGtfbWdyLT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNlWzBdLnNlZ21lbnRbMV0gKyAweDAw
OGMpLCBfX2Z1bmNfXyk7CiBpbnRlcm5hbC0+Q0xLMV9DTEsyX0JZUEFTU19DTlRMID0gZG1fcmVh
ZF9yZWdfZnVuYyhjbGtfbWdyLT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNlWzBdLnNlZ21l
bnRbMV0gKyAweDAwNWQpLCBfX2Z1bmNfXyk7CgogaW50ZXJuYWwtPkNMSzFfQ0xLMF9DVVJSRU5U
X0NOVCA9IGRtX3JlYWRfcmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0
YW5jZVswXS5zZWdtZW50WzFdICsgMHgwMDhhKSwgX19mdW5jX18pOwogaW50ZXJuYWwtPkNMSzFf
Q0xLMF9CWVBBU1NfQ05UTCA9IGRtX3JlYWRfcmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgsIChD
TEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50WzFdICsgMHgwMDQ5KSwgX19mdW5jX18pOwp9CgoK
c3RhdGljIHZvaWQgcm5fZHVtcF9jbGtfcmVnaXN0ZXJzKHN0cnVjdCBjbGtfc3RhdGVfcmVnaXN0
ZXJzX2FuZF9ieXBhc3MgKnJlZ3NfYW5kX2J5cGFzcywKICBzdHJ1Y3QgY2xrX21nciAqY2xrX21n
cl9iYXNlLCBzdHJ1Y3QgY2xrX2xvZ19pbmZvICpsb2dfaW5mbykKewogc3RydWN0IHJuX2Nsa19p
bnRlcm5hbCBpbnRlcm5hbCA9IHswfTsKIGNoYXIgKmJ5cGFzc19jbGtzWzVdID0geyIweDAgREZT
IiwgIjB4MSBSRUZDTEsiLCAiMHgyIEVSUk9SIiwgIjB4MyA0MDAgRkNIIiwgIjB4NCA2MDAgRkNI
In07CiB1bnNpZ25lZCBpbnQgY2hhcnNfcHJpbnRlZCA9IDA7CiB1bnNpZ25lZCBpbnQgcmVtYWlu
aW5nX2J1ZmZlciA9IGxvZ19pbmZvLT5idWZTaXplOwoKIHJuX2R1bXBfY2xrX3JlZ2lzdGVyc19p
bnRlcm5hbCgmaW50ZXJuYWwsIGNsa19tZ3JfYmFzZSk7CgogcmVnc19hbmRfYnlwYXNzLT5kY2Zj
bGsgPSBpbnRlcm5hbC5DTEsxX0NMSzNfQ1VSUkVOVF9DTlQgLyAxMDsKIHJlZ3NfYW5kX2J5cGFz
cy0+ZGNmX2RlZXBfc2xlZXBfZGl2aWRlciA9IGludGVybmFsLkNMSzFfQ0xLM19EU19DTlRMIC8g
MTA7CiByZWdzX2FuZF9ieXBhc3MtPmRjZl9kZWVwX3NsZWVwX2FsbG93ID0gaW50ZXJuYWwuQ0xL
MV9DTEszX0FMTE9XX0RTOwogcmVnc19hbmRfYnlwYXNzLT5kcHJlZmNsayA9IGludGVybmFsLkNM
SzFfQ0xLMl9DVVJSRU5UX0NOVCAvIDEwOwogcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrID0gaW50
ZXJuYWwuQ0xLMV9DTEswX0NVUlJFTlRfQ05UIC8gMTA7CiByZWdzX2FuZF9ieXBhc3MtPmRwcGNs
ayA9IGludGVybmFsLkNMSzFfQ0xLMV9DVVJSRU5UX0NOVCAvIDEwOwoKIHJlZ3NfYW5kX2J5cGFz
cy0+ZHBwY2xrX2J5cGFzcyA9IGludGVybmFsLkNMSzFfQ0xLMV9CWVBBU1NfQ05UTCAmIDB4MDAw
NzsKIGlmIChyZWdzX2FuZF9ieXBhc3MtPmRwcGNsa19ieXBhc3MgPCAwIHx8IHJlZ3NfYW5kX2J5
cGFzcy0+ZHBwY2xrX2J5cGFzcyA+IDQpCiAgcmVnc19hbmRfYnlwYXNzLT5kcHBjbGtfYnlwYXNz
ID0gMDsKIHJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrX2J5cGFzcyA9IGludGVybmFsLkNMSzFfQ0xL
M19CWVBBU1NfQ05UTCAmIDB4MDAwNzsKIGlmIChyZWdzX2FuZF9ieXBhc3MtPmRjZmNsa19ieXBh
c3MgPCAwIHx8IHJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrX2J5cGFzcyA+IDQpCiAgcmVnc19hbmRf
YnlwYXNzLT5kY2ZjbGtfYnlwYXNzID0gMDsKIHJlZ3NfYW5kX2J5cGFzcy0+ZGlzcGNsa19ieXBh
c3MgPSBpbnRlcm5hbC5DTEsxX0NMSzBfQllQQVNTX0NOVEwgJiAweDAwMDc7CiBpZiAocmVnc19h
bmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFzcyA8IDAgfHwgcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xr
X2J5cGFzcyA+IDQpCiAgcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFzcyA9IDA7CiByZWdz
X2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5cGFzcyA9IGludGVybmFsLkNMSzFfQ0xLMl9CWVBBU1Nf
Q05UTCAmIDB4MDAwNzsKIGlmIChyZWdzX2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5cGFzcyA8IDAg
fHwgcmVnc19hbmRfYnlwYXNzLT5kcHJlZmNsa19ieXBhc3MgPiA0KQogIHJlZ3NfYW5kX2J5cGFz
cy0+ZHByZWZjbGtfYnlwYXNzID0gMDsKCiBpZiAobG9nX2luZm8tPmVuYWJsZWQpIHsKICBjaGFy
c19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZm
ZXIsICJjbGtfdHlwZSxjbGtfdmFsdWUsZGVlcHNsZWVwX2NudGwsZGVlcHNsZWVwX2FsbG93LGJ5
cGFzc1xuIik7CiAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwogICpsb2dfaW5m
by0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKICBsb2dfaW5mby0+cEJ1ZiAr
PSBjaGFyc19wcmludGVkOwoKICBjaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2lu
Zm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJkY2ZjbGssJWQsJWQsJWQsJXNcbiIsCiAgIHJl
Z3NfYW5kX2J5cGFzcy0+ZGNmY2xrLAogICByZWdzX2FuZF9ieXBhc3MtPmRjZl9kZWVwX3NsZWVw
X2RpdmlkZXIsCiAgIHJlZ3NfYW5kX2J5cGFzcy0+ZGNmX2RlZXBfc2xlZXBfYWxsb3csCiAgIGJ5
cGFzc19jbGtzWyhpbnQpIHJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrX2J5cGFzc10pOwogIHJlbWFp
bmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmlu
dGVkICs9IGNoYXJzX3ByaW50ZWQ7CiAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsK
CiAgY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5p
bmdfYnVmZmVyLCAiZHByZWZjbGssJWQsTi9BLE4vQSwlc1xuIiwKICAgcmVnc19hbmRfYnlwYXNz
LT5kcHJlZmNsaywKICAgYnlwYXNzX2Nsa3NbKGludCkgcmVnc19hbmRfYnlwYXNzLT5kcHJlZmNs
a19ieXBhc3NdKTsKICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CiAgKmxvZ19p
bmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19pbmZvLT5wQnVm
ICs9IGNoYXJzX3ByaW50ZWQ7CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2df
aW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgImRpc3BjbGssJWQsTi9BLE4vQSwlc1xuIiwK
ICAgcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrLAogICBieXBhc3NfY2xrc1soaW50KSByZWdzX2Fu
ZF9ieXBhc3MtPmRpc3BjbGtfYnlwYXNzXSk7CiAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19w
cmludGVkOwogICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsK
ICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoKCiAgY2hhcnNfcHJpbnRlZCA9IHNu
cHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiU1BMSVRcbiIp
OwogIHJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKICAqbG9nX2luZm8tPnN1bV9j
aGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CiAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNf
cHJpbnRlZDsKCgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1
ZiwgcmVtYWluaW5nX2J1ZmZlciwgInJlZ19uYW1lLHZhbHVlLGNsa190eXBlXG4iKTsKICByZW1h
aW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CiAgKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJp
bnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7
CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1ZiwgcmVtYWlu
aW5nX2J1ZmZlciwgIkNMSzFfQ0xLM19DVVJSRU5UX0NOVCwlZCxkY2ZjbGtcbiIsCiAgICBpbnRl
cm5hbC5DTEsxX0NMSzNfQ1VSUkVOVF9DTlQpOwogIHJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNf
cHJpbnRlZDsKICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7
CiAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKCiAgY2hhcnNfcHJpbnRlZCA9IHNu
cHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEsz
X0RTX0NOVEwsJWQsZGNmX2RlZXBfc2xlZXBfZGl2aWRlclxuIiwKICAgICBpbnRlcm5hbC5DTEsx
X0NMSzNfRFNfQ05UTCk7CiAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwogICps
b2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKICBsb2dfaW5mby0+
cEJ1ZiArPSBjaGFyc19wcmludGVkOwoKICBjaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQo
bG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NMSzNfQUxMT1dfRFMsJWQs
ZGNmX2RlZXBfc2xlZXBfYWxsb3dcbiIsCiAgICAgaW50ZXJuYWwuQ0xLMV9DTEszX0FMTE9XX0RT
KTsKICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CiAgKmxvZ19pbmZvLT5zdW1f
Y2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJz
X3ByaW50ZWQ7CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1
ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLMl9DVVJSRU5UX0NOVCwlZCxkcHJlZmNsa1xu
IiwKICAgICBpbnRlcm5hbC5DTEsxX0NMSzJfQ1VSUkVOVF9DTlQpOwogIHJlbWFpbmluZ19idWZm
ZXIgLT0gY2hhcnNfcHJpbnRlZDsKICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNo
YXJzX3ByaW50ZWQ7CiAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKCiAgY2hhcnNf
cHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVy
LCAiQ0xLMV9DTEswX0NVUlJFTlRfQ05ULCVkLGRpc3BjbGtcbiIsCiAgICAgaW50ZXJuYWwuQ0xL
MV9DTEswX0NVUlJFTlRfQ05UKTsKICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7
CiAgKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19p
bmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9j
b3VudChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLMV9DVVJSRU5U
X0NOVCwlZCxkcHBjbGtcbiIsCiAgICAgaW50ZXJuYWwuQ0xLMV9DTEsxX0NVUlJFTlRfQ05UKTsK
ICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CiAgKmxvZ19pbmZvLT5zdW1fY2hh
cnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3By
aW50ZWQ7CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1Ziwg
cmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLM19CWVBBU1NfQ05UTCwlZCxkY2ZjbGtfYnlwYXNz
XG4iLAogICAgIGludGVybmFsLkNMSzFfQ0xLM19CWVBBU1NfQ05UTCk7CiAgcmVtYWluaW5nX2J1
ZmZlciAtPSBjaGFyc19wcmludGVkOwogICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0g
Y2hhcnNfcHJpbnRlZDsKICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoKICBjaGFy
c19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZm
ZXIsICJDTEsxX0NMSzJfQllQQVNTX0NOVEwsJWQsZHByZWZjbGtfYnlwYXNzXG4iLAogICAgIGlu
dGVybmFsLkNMSzFfQ0xLMl9CWVBBU1NfQ05UTCk7CiAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFy
c19wcmludGVkOwogICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRl
ZDsKICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoKICBjaGFyc19wcmludGVkID0g
c25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NM
SzBfQllQQVNTX0NOVEwsJWQsZGlzcGNsa19ieXBhc3NcbiIsCiAgICAgaW50ZXJuYWwuQ0xLMV9D
TEswX0JZUEFTU19DTlRMKTsKICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CiAg
KmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19pbmZv
LT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3Vu
dChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLMV9CWVBBU1NfQ05U
TCwlZCxkcHBjbGtfYnlwYXNzXG4iLAogICAgIGludGVybmFsLkNMSzFfQ0xLMV9CWVBBU1NfQ05U
TCk7CiAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwogICpsb2dfaW5mby0+c3Vt
X2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFy
c19wcmludGVkOwogfQp9CgoKdm9pZCBybl9nZXRfY2xrX3N0YXRlcyhzdHJ1Y3QgY2xrX21nciAq
Y2xrX21ncl9iYXNlLCBzdHJ1Y3QgY2xrX3N0YXRlcyAqcykKewogc3RydWN0IGNsa19zdGF0ZV9y
ZWdpc3RlcnNfYW5kX2J5cGFzcyBzYiA9IHsgMCB9Owogc3RydWN0IGNsa19sb2dfaW5mbyBsb2df
aW5mbyA9IHsgMCB9OwoKIHJuX2R1bXBfY2xrX3JlZ2lzdGVycygmc2IsIGNsa19tZ3JfYmFzZSwg
JmxvZ19pbmZvKTsKCiBzLT5kcHJlZmNsa19raHogPSBzYi5kcHJlZmNsayAqIDEwMDA7Cn0KCnZv
aWQgcm5fZW5hYmxlX3BtZV93YShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlKQp7CiBzdHJ1
Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciA9ICh7IHZvaWQgKl9fbXB0ciA9ICh2b2lkICop
KGNsa19tZ3JfYmFzZSk7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMzk0
KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21hdGNoIGlu
IGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVf
cCh0eXBlb2YoKihjbGtfbWdyX2Jhc2UpKSwgdHlwZW9mKCgoc3RydWN0IGNsa19tZ3JfaW50ZXJu
YWwgKikwKS0+YmFzZSkpICYmICFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigq
KGNsa19tZ3JfYmFzZSkpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzM5
NCgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqKShfX21wdHIgLSBf
X2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwsIGJhc2UpKSk7IH0pOwoK
IHJuX3ZiaW9zX3NtdV9lbmFibGVfcG1lX3dhKGNsa19tZ3IpOwp9Cgp2b2lkIHJuX2luaXRfY2xv
Y2tzKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyKQp7CiBtZW1zZXQoJihjbGtfbWdyLT5jbGtzKSwg
MCwgc2l6ZW9mKHN0cnVjdCBkY19jbG9ja3MpKTsKCiBjbGtfbWdyLT5jbGtzLnBfc3RhdGVfY2hh
bmdlX3N1cHBvcnQgPSB0cnVlOwogY2xrX21nci0+Y2xrcy5wcmV2X3Bfc3RhdGVfY2hhbmdlX3N1
cHBvcnQgPSB0cnVlOwogY2xrX21nci0+Y2xrcy5wd3Jfc3RhdGUgPSBEQ05fUFdSX1NUQVRFX1VO
S05PV047Cn0KCnZvaWQgYnVpbGRfd2F0ZXJtYXJrX3JhbmdlcyhzdHJ1Y3QgY2xrX2J3X3BhcmFt
cyAqYndfcGFyYW1zLCBzdHJ1Y3QgcHBfc211X3dtX3JhbmdlX3NldHMgKnJhbmdlcykKewogaW50
IGksIG51bV92YWxpZF9zZXRzOwoKIG51bV92YWxpZF9zZXRzID0gMDsKCiBmb3IgKGkgPSAwOyBp
IDwgNDsgaSsrKSB7CgogIGlmICghYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLnZhbGlk
KQogICBjb250aW51ZTsKCiAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFsaWRfc2V0c10u
d21faW5zdCA9IGJ3X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS53bV9pbnN0OwogIHJhbmdl
cy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLndtX3R5cGUgPSBid19wYXJhbXMtPndt
X3RhYmxlLmVudHJpZXNbaV0ud21fdHlwZTsKCiAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1f
dmFsaWRfc2V0c10ubWluX2ZpbGxfY2xrX21oeiA9IDB4MDsKICByYW5nZXMtPnJlYWRlcl93bV9z
ZXRzW251bV92YWxpZF9zZXRzXS5tYXhfZmlsbF9jbGtfbWh6ID0gMHhGRkZGOwoKCiAgaWYgKHJh
bmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLndtX3R5cGUgPT0gV01fVFlQRV9Q
U1RBVEVfQ0hHKSB7CiAgIGlmIChpID09IDApCiAgICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251
bV92YWxpZF9zZXRzXS5taW5fZHJhaW5fY2xrX21oeiA9IDA7CiAgIGVsc2UgewoKICAgIHJhbmdl
cy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLm1pbl9kcmFpbl9jbGtfbWh6ID0gYndf
cGFyYW1zLT5jbGtfdGFibGUuZW50cmllc1tpIC0gMV0uZGNmY2xrX21oeiArIDE7CiAgIH0KICAg
cmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFsaWRfc2V0c10ubWF4X2RyYWluX2Nsa19taHog
PSBid19wYXJhbXMtPmNsa190YWJsZS5lbnRyaWVzW2ldLmRjZmNsa19taHo7CgogIH0gZWxzZSB7
CgogICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5taW5fZmlsbF9jbGtf
bWh6ID0gMHgwOwogICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5tYXhf
ZmlsbF9jbGtfbWh6ID0gMHhGRkZGOwoKCiAgIHJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3Zh
bGlkX3NldHMgLSAxXS5tYXhfZmlsbF9jbGtfbWh6ID0gMHhGRkZGOwogIH0KICBudW1fdmFsaWRf
c2V0cysrOwogfQoKICh7IGludCBfX3JldF93YXJuX29uID0gISEoIShudW1fdmFsaWRfc2V0cyAh
PSAwKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBk
byB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIg
Ii5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIg
IiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAi
IC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50
cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9y
ZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIpLCAiaSIgKDQ0
NiksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19l
bnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNl
Y3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3Bz
ZWN0aW9uXG5cdCIgOiA6ICJpIiAoNDgpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhw
ZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CiByYW5nZXMtPm51bV9yZWFkZXJfd21fc2V0
cyA9IG51bV92YWxpZF9zZXRzOwoKCiByYW5nZXMtPnJlYWRlcl93bV9zZXRzWzBdLm1pbl9kcmFp
bl9jbGtfbWh6ID0gMHgwOwogcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1swXS5taW5fZmlsbF9jbGtf
bWh6ID0gMHgwOwogcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tyYW5nZXMtPm51bV9yZWFkZXJfd21f
c2V0cyAtIDFdLm1heF9kcmFpbl9jbGtfbWh6ID0gMHhGRkZGOwogcmFuZ2VzLT5yZWFkZXJfd21f
c2V0c1tyYW5nZXMtPm51bV9yZWFkZXJfd21fc2V0cyAtIDFdLm1heF9maWxsX2Nsa19taHogPSAw
eEZGRkY7CgoKIHJhbmdlcy0+bnVtX3dyaXRlcl93bV9zZXRzID0gMTsKIHJhbmdlcy0+d3JpdGVy
X3dtX3NldHNbMF0ud21faW5zdCA9IDA7CiByYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1pbl9m
aWxsX2Nsa19taHogPSAweDA7CiByYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1heF9maWxsX2Ns
a19taHogPSAweEZGRkY7CiByYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1pbl9kcmFpbl9jbGtf
bWh6ID0gMHgwOwogcmFuZ2VzLT53cml0ZXJfd21fc2V0c1swXS5tYXhfZHJhaW5fY2xrX21oeiA9
IDB4RkZGRjsKCn0KCnN0YXRpYyB2b2lkIHJuX25vdGlmeV93bV9yYW5nZXMoc3RydWN0IGNsa19t
Z3IgKmNsa19tZ3JfYmFzZSkKewogc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgKmRlYnVnID0gJmNs
a19tZ3JfYmFzZS0+Y3R4LT5kYy0+ZGVidWc7CiBzdHJ1Y3QgcHBfc211X3dtX3JhbmdlX3NldHMg
cmFuZ2VzID0gezB9Owogc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IgPSAoeyB2b2lk
ICpfX21wdHIgPSAodm9pZCAqKShjbGtfbWdyX2Jhc2UpOyBkbyB7IGV4dGVybiB2b2lkIF9fY29t
cGlsZXRpbWVfYXNzZXJ0XzQ2OSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50
ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWluZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRp
bl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCooY2xrX21ncl9iYXNlKSksIHR5cGVvZigoKHN0
cnVjdCBjbGtfbWdyX2ludGVybmFsICopMCktPmJhc2UpKSAmJiAhX19idWlsdGluX3R5cGVzX2Nv
bXBhdGlibGVfcCh0eXBlb2YoKihjbGtfbWdyX2Jhc2UpKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2Nv
bXBpbGV0aW1lX2Fzc2VydF80NjkoKTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IGNsa19tZ3JfaW50
ZXJuYWwgKikoX19tcHRyIC0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBjbGtfbWdyX2ludGVy
bmFsLCBiYXNlKSkpOyB9KTsKIHN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSA9IGNsa19tZ3It
PnBwX3NtdTsKCiBpZiAoIWRlYnVnLT5kaXNhYmxlX3BwbGliX3dtX3JhbmdlKSB7CiAgYnVpbGRf
d2F0ZXJtYXJrX3JhbmdlcyhjbGtfbWdyX2Jhc2UtPmJ3X3BhcmFtcywgJnJhbmdlcyk7CgoKICBp
ZiAocHBfc211ICYmIHBwX3NtdS0+cm5fZnVuY3Muc2V0X3dtX3JhbmdlcykKICAgcHBfc211LT5y
bl9mdW5jcy5zZXRfd21fcmFuZ2VzKCZwcF9zbXUtPnJuX2Z1bmNzLnBwX3NtdSwgJnJhbmdlcyk7
CiB9Cgp9CgpzdGF0aWMgYm9vbCBybl9hcmVfY2xvY2tfc3RhdGVzX2VxdWFsKHN0cnVjdCBkY19j
bG9ja3MgKmEsCiAgc3RydWN0IGRjX2Nsb2NrcyAqYikKewogaWYgKGEtPmRpc3BjbGtfa2h6ICE9
IGItPmRpc3BjbGtfa2h6KQogIHJldHVybiBmYWxzZTsKIGVsc2UgaWYgKGEtPmRwcGNsa19raHog
IT0gYi0+ZHBwY2xrX2toeikKICByZXR1cm4gZmFsc2U7CiBlbHNlIGlmIChhLT5kY2ZjbGtfa2h6
ICE9IGItPmRjZmNsa19raHopCiAgcmV0dXJuIGZhbHNlOwogZWxzZSBpZiAoYS0+ZGNmY2xrX2Rl
ZXBfc2xlZXBfa2h6ICE9IGItPmRjZmNsa19kZWVwX3NsZWVwX2toeikKICByZXR1cm4gZmFsc2U7
CgogcmV0dXJuIHRydWU7Cn0KCgpzdGF0aWMgc3RydWN0IGNsa19tZ3JfZnVuY3MgZGNuMjFfZnVu
Y3MgPSB7CiAuZ2V0X2RwX3JlZl9jbGtfZnJlcXVlbmN5ID0gZGNlMTJfZ2V0X2RwX3JlZl9mcmVx
X2toeiwKIC51cGRhdGVfY2xvY2tzID0gcm5fdXBkYXRlX2Nsb2NrcywKIC5pbml0X2Nsb2NrcyA9
IHJuX2luaXRfY2xvY2tzLAogLmVuYWJsZV9wbWVfd2EgPSBybl9lbmFibGVfcG1lX3dhLAogLmFy
ZV9jbG9ja19zdGF0ZXNfZXF1YWwgPSBybl9hcmVfY2xvY2tfc3RhdGVzX2VxdWFsLAogLm5vdGlm
eV93bV9yYW5nZXMgPSBybl9ub3RpZnlfd21fcmFuZ2VzCn07CgpzdHJ1Y3QgY2xrX2J3X3BhcmFt
cyBybl9id19wYXJhbXMgPSB7CiAudnJhbV90eXBlID0gRGRyNE1lbVR5cGUsCiAubnVtX2NoYW5u
ZWxzID0gMSwKIC5jbGtfdGFibGUgPSB7CiAgLmVudHJpZXMgPSB7CiAgIHsKICAgIC52b2x0YWdl
ID0gMCwKICAgIC5kY2ZjbGtfbWh6ID0gNDAwLAogICAgLmZjbGtfbWh6ID0gNDAwLAogICAgLm1l
bWNsa19taHogPSA4MDAsCiAgICAuc29jY2xrX21oeiA9IDAsCiAgIH0sCiAgIHsKICAgIC52b2x0
YWdlID0gMCwKICAgIC5kY2ZjbGtfbWh6ID0gNDgzLAogICAgLmZjbGtfbWh6ID0gODAwLAogICAg
Lm1lbWNsa19taHogPSAxNjAwLAogICAgLnNvY2Nsa19taHogPSAwLAogICB9LAogICB7CiAgICAu
dm9sdGFnZSA9IDAsCiAgICAuZGNmY2xrX21oeiA9IDYwMiwKICAgIC5mY2xrX21oeiA9IDEwNjcs
CiAgICAubWVtY2xrX21oeiA9IDEwNjcsCiAgICAuc29jY2xrX21oeiA9IDAsCiAgIH0sCiAgIHsK
ICAgIC52b2x0YWdlID0gMCwKICAgIC5kY2ZjbGtfbWh6ID0gNzM4LAogICAgLmZjbGtfbWh6ID0g
MTMzMywKICAgIC5tZW1jbGtfbWh6ID0gMTYwMCwKICAgIC5zb2NjbGtfbWh6ID0gMCwKICAgfSwK
ICB9LAoKICAubnVtX2VudHJpZXMgPSA0LAogfSwKCn07CgpzdHJ1Y3Qgd21fdGFibGUgZGRyNF93
bV90YWJsZSA9IHsKIC5lbnRyaWVzID0gewogIHsKICAgLndtX2luc3QgPSAwLAogICAud21fdHlw
ZSA9IFdNX1RZUEVfUFNUQVRFX0NIRywKICAgLnBzdGF0ZV9sYXRlbmN5X3VzID0gMTEuNzIsCiAg
IC5zcl9leGl0X3RpbWVfdXMgPSA2LjA5LAogICAuc3JfZW50ZXJfcGx1c19leGl0X3RpbWVfdXMg
PSA3LjE0LAogICAudmFsaWQgPSB0cnVlLAogIH0sCiAgewogICAud21faW5zdCA9IDEsCiAgIC53
bV90eXBlID0gV01fVFlQRV9QU1RBVEVfQ0hHLAogICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS43
MiwKICAgLnNyX2V4aXRfdGltZV91cyA9IDEwLjEyLAogICAuc3JfZW50ZXJfcGx1c19leGl0X3Rp
bWVfdXMgPSAxMS40OCwKICAgLnZhbGlkID0gdHJ1ZSwKICB9LAogIHsKICAgLndtX2luc3QgPSAy
LAogICAud21fdHlwZSA9IFdNX1RZUEVfUFNUQVRFX0NIRywKICAgLnBzdGF0ZV9sYXRlbmN5X3Vz
ID0gMTEuNzIsCiAgIC5zcl9leGl0X3RpbWVfdXMgPSAxMC4xMiwKICAgLnNyX2VudGVyX3BsdXNf
ZXhpdF90aW1lX3VzID0gMTEuNDgsCiAgIC52YWxpZCA9IHRydWUsCiAgfSwKICB7CiAgIC53bV9p
bnN0ID0gMywKICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcsCiAgIC5wc3RhdGVfbGF0
ZW5jeV91cyA9IDExLjcyLAogICAuc3JfZXhpdF90aW1lX3VzID0gMTAuMTIsCiAgIC5zcl9lbnRl
cl9wbHVzX2V4aXRfdGltZV91cyA9IDExLjQ4LAogICAudmFsaWQgPSB0cnVlLAogIH0sCiB9Cn07
CgpzdHJ1Y3Qgd21fdGFibGUgbHBkZHI0X3dtX3RhYmxlID0gewogLmVudHJpZXMgPSB7CiAgewog
ICAud21faW5zdCA9IDAsCiAgIC53bV90eXBlID0gV01fVFlQRV9QU1RBVEVfQ0hHLAogICAucHN0
YXRlX2xhdGVuY3lfdXMgPSAxMS42NTMzMywKICAgLnNyX2V4aXRfdGltZV91cyA9IDUuMzIsCiAg
IC5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9IDYuMzgsCiAgIC52YWxpZCA9IHRydWUsCiAg
fSwKICB7CiAgIC53bV9pbnN0ID0gMSwKICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcs
CiAgIC5wc3RhdGVfbGF0ZW5jeV91cyA9IDExLjY1MzMzLAogICAuc3JfZXhpdF90aW1lX3VzID0g
OS44MiwKICAgLnNyX2VudGVyX3BsdXNfZXhpdF90aW1lX3VzID0gMTEuMTk2LAogICAudmFsaWQg
PSB0cnVlLAogIH0sCiAgewogICAud21faW5zdCA9IDIsCiAgIC53bV90eXBlID0gV01fVFlQRV9Q
U1RBVEVfQ0hHLAogICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS42NTMzMywKICAgLnNyX2V4aXRf
dGltZV91cyA9IDkuODksCiAgIC5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9IDExLjI0LAog
ICAudmFsaWQgPSB0cnVlLAogIH0sCiAgewogICAud21faW5zdCA9IDMsCiAgIC53bV90eXBlID0g
V01fVFlQRV9QU1RBVEVfQ0hHLAogICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS42NTMzMywKICAg
LnNyX2V4aXRfdGltZV91cyA9IDkuNzQ4LAogICAuc3JfZW50ZXJfcGx1c19leGl0X3RpbWVfdXMg
PSAxMS4xMDIsCiAgIC52YWxpZCA9IHRydWUsCiAgfSwKIH0KfTsKCgpzdGF0aWMgdW5zaWduZWQg
aW50IGZpbmRfZGNmY2xrX2Zvcl92b2x0YWdlKHN0cnVjdCBkcG1fY2xvY2tzICpjbG9ja190YWJs
ZSwgdW5zaWduZWQgaW50IHZvbHRhZ2UpCnsKIGludCBpOwoKIGZvciAoaSA9IDA7IGkgPCA4OyBp
KyspIHsKICBpZiAoY2xvY2tfdGFibGUtPkRjZkNsb2Nrc1tpXS5Wb2wgPT0gdm9sdGFnZSkKICAg
cmV0dXJuIGNsb2NrX3RhYmxlLT5EY2ZDbG9ja3NbaV0uRnJlcTsKIH0KCiAoeyBpbnQgX19yZXRf
d2Fybl9vbiA9ICEhKCEoMCkpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29u
KSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBm
LCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAi
LmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5s
b25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEi
ICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZs
YWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdy
LmMiKSwgImkiICg2MzEpLCAiaSIgKCgxIDw8IDApfCgoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9m
KHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpc
blx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0g
LlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDQ5KSk7IH0pOyB9IHdoaWxlICgwKTsg
X19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwogcmV0dXJuIDA7Cn0K
CnN0YXRpYyB2b2lkIHJuX2Nsa19tZ3JfaGVscGVyX3BvcHVsYXRlX2J3X3BhcmFtcyhzdHJ1Y3Qg
Y2xrX2J3X3BhcmFtcyAqYndfcGFyYW1zLCBzdHJ1Y3QgZHBtX2Nsb2NrcyAqY2xvY2tfdGFibGUs
IHN0cnVjdCBpbnRlZ3JhdGVkX2luZm8gKmJpb3NfaW5mbykKewogaW50IGksIGogPSAwOwoKIGog
PSAtMTsKCiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKCEoNCA8PSA4KSk7IGlmIChfX2J1aWx0
aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2
b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1
Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19l
bnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2Vu
dHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0Lndv
cmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3Bz
ZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIpLCAiaSIgKDY0MSksICJpIiAoKDEgPDwgMCl8
KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAo
MCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVh
Y2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJp
IiAoNTApKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5f
b24pLCAwKTsgfSk7CgoKCiBmb3IgKGkgPSA0IC0gMTsgaSA+PSAwOyBpLS0pIHsKICBpZiAoY2xv
Y2tfdGFibGUtPkZDbG9ja3NbaV0uRnJlcSAhPSAwKSB7CiAgIGogPSBpOwogICBicmVhazsKICB9
CiB9CgogaWYgKGogPT0gLTEpIHsKCiAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAhISghKDApKTsg
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNt
IF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hz
ZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIi
ICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIg
Ilx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGlu
ZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVj
M1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5jIiksICJpIiAoNjU0KSwgImki
ICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkp
OyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25c
blx0IiA6IDogImkiICg1MSkpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEo
X19yZXRfd2Fybl9vbiksIDApOyB9KTsKICByZXR1cm47CiB9CgogYndfcGFyYW1zLT5jbGtfdGFi
bGUubnVtX2VudHJpZXMgPSBqICsgMTsKCiBmb3IgKGkgPSAwOyBpIDwgYndfcGFyYW1zLT5jbGtf
dGFibGUubnVtX2VudHJpZXM7IGkrKywgai0tKSB7CiAgYndfcGFyYW1zLT5jbGtfdGFibGUuZW50
cmllc1tpXS5mY2xrX21oeiA9IGNsb2NrX3RhYmxlLT5GQ2xvY2tzW2pdLkZyZXE7CiAgYndfcGFy
YW1zLT5jbGtfdGFibGUuZW50cmllc1tpXS5tZW1jbGtfbWh6ID0gY2xvY2tfdGFibGUtPk1lbUNs
b2Nrc1tqXS5GcmVxOwogIGJ3X3BhcmFtcy0+Y2xrX3RhYmxlLmVudHJpZXNbaV0udm9sdGFnZSA9
IGNsb2NrX3RhYmxlLT5GQ2xvY2tzW2pdLlZvbDsKICBid19wYXJhbXMtPmNsa190YWJsZS5lbnRy
aWVzW2ldLmRjZmNsa19taHogPSBmaW5kX2RjZmNsa19mb3Jfdm9sdGFnZShjbG9ja190YWJsZSwg
Y2xvY2tfdGFibGUtPkZDbG9ja3Nbal0uVm9sKTsKIH0KCiBid19wYXJhbXMtPnZyYW1fdHlwZSA9
IGJpb3NfaW5mby0+bWVtb3J5X3R5cGU7CiBid19wYXJhbXMtPm51bV9jaGFubmVscyA9IGJpb3Nf
aW5mby0+bWFfY2hhbm5lbF9udW1iZXI7CgogZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewogIGJ3
X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS53bV9pbnN0ID0gaTsKCiAgaWYgKGkgPj0gYndf
cGFyYW1zLT5jbGtfdGFibGUubnVtX2VudHJpZXMpIHsKICAgYndfcGFyYW1zLT53bV90YWJsZS5l
bnRyaWVzW2ldLnZhbGlkID0gZmFsc2U7CiAgIGNvbnRpbnVlOwogIH0KCiAgYndfcGFyYW1zLT53
bV90YWJsZS5lbnRyaWVzW2ldLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEc7CiAgYndfcGFy
YW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLnZhbGlkID0gdHJ1ZTsKIH0KCiBpZiAoYndfcGFyYW1z
LT52cmFtX3R5cGUgPT0gTHBEZHI0TWVtVHlwZSkgewoKCgogIGJ3X3BhcmFtcy0+d21fdGFibGUu
ZW50cmllc1szXS5wc3RhdGVfbGF0ZW5jeV91cyA9IDQuOTc3OwogIGJ3X3BhcmFtcy0+d21fdGFi
bGUuZW50cmllc1szXS53bV9pbnN0ID0gMzsKICBid19wYXJhbXMtPndtX3RhYmxlLmVudHJpZXNb
M10ud21fdHlwZSA9IFdNX1RZUEVfUkVUUkFJTklORzsKICBid19wYXJhbXMtPndtX3RhYmxlLmVu
dHJpZXNbM10udmFsaWQgPSB0cnVlOwogfQoKfQoKdm9pZCBybl9jbGtfbWdyX2NvbnN0cnVjdCgK
ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtf
bWdyLAogIHN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSwKICBzdHJ1Y3QgZGNjZyAqZGNjZykK
ewogc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgKmRlYnVnID0gJmN0eC0+ZGMtPmRlYnVnOwogc3Ry
dWN0IGRwbV9jbG9ja3MgY2xvY2tfdGFibGUgPSB7IDAgfTsKCiBjbGtfbWdyLT5iYXNlLmN0eCA9
IGN0eDsKIGNsa19tZ3ItPmJhc2UuZnVuY3MgPSAmZGNuMjFfZnVuY3M7CgogY2xrX21nci0+cHBf
c211ID0gcHBfc211OwoKIGNsa19tZ3ItPmRjY2cgPSBkY2NnOwogY2xrX21nci0+ZGZzX2J5cGFz
c19kaXNwX2NsayA9IDA7CgogY2xrX21nci0+ZHByZWZjbGtfc3NfcGVyY2VudGFnZSA9IDA7CiBj
bGtfbWdyLT5kcHJlZmNsa19zc19kaXZpZGVyID0gMTAwMDsKIGNsa19tZ3ItPnNzX29uX2RwcmVm
Y2xrID0gZmFsc2U7CiBjbGtfbWdyLT5kZnNfcmVmX2ZyZXFfa2h6ID0gNDgwMDA7CgogY2xrX21n
ci0+c211X3ZlciA9IHJuX3ZiaW9zX3NtdV9nZXRfc211X3ZlcnNpb24oY2xrX21ncik7CgogaWYg
KChjdHgtPmRjZV9lbnZpcm9ubWVudCA9PSBEQ0VfRU5WX0ZQR0FfTUFYSU1VUykpIHsKICBkY24y
MV9mdW5jcy51cGRhdGVfY2xvY2tzID0gZGNuMl91cGRhdGVfY2xvY2tzX2ZwZ2E7CiAgY2xrX21n
ci0+YmFzZS5kZW50aXN0X3Zjb19mcmVxX2toeiA9IDM2MDAwMDA7CiB9IGVsc2UgewogIHN0cnVj
dCBjbGtfbG9nX2luZm8gbG9nX2luZm8gPSB7MH07CgoKICBjbGtfbWdyLT5iYXNlLmRlbnRpc3Rf
dmNvX2ZyZXFfa2h6ID0gZ2V0X3Zjb19mcmVxdWVuY3lfZnJvbV9yZWcoY2xrX21ncik7CgoKICBp
ZiAoY2xrX21nci0+YmFzZS5kZW50aXN0X3Zjb19mcmVxX2toeiA9PSAwKQogICBjbGtfbWdyLT5i
YXNlLmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID0gMzYwMDAwMDsKCiAgaWYgKGN0eC0+ZGNfYmlvcy0+
aW50ZWdyYXRlZF9pbmZvLT5tZW1vcnlfdHlwZSA9PSBMcERkcjRNZW1UeXBlKSB7CiAgIHJuX2J3
X3BhcmFtcy53bV90YWJsZSA9IGxwZGRyNF93bV90YWJsZTsKICB9IGVsc2UgewogICBybl9id19w
YXJhbXMud21fdGFibGUgPSBkZHI0X3dtX3RhYmxlOwogIH0KCiAgcm5fZHVtcF9jbGtfcmVnaXN0
ZXJzKCZjbGtfbWdyLT5iYXNlLmJvb3Rfc25hcHNob3QsICZjbGtfbWdyLT5iYXNlLCAmbG9nX2lu
Zm8pOwogfQoKIGNsa19tZ3ItPmJhc2UuZHByZWZjbGtfa2h6ID0gNjAwMDAwOwogZGNlX2Nsb2Nr
X3JlYWRfc3NfaW5mbyhjbGtfbWdyKTsKCgogY2xrX21nci0+YmFzZS5id19wYXJhbXMgPSAmcm5f
YndfcGFyYW1zOwoKIGlmIChwcF9zbXUgJiYgcHBfc211LT5ybl9mdW5jcy5nZXRfZHBtX2Nsb2Nr
X3RhYmxlKSB7CiAgcHBfc211LT5ybl9mdW5jcy5nZXRfZHBtX2Nsb2NrX3RhYmxlKCZwcF9zbXUt
PnJuX2Z1bmNzLnBwX3NtdSwgJmNsb2NrX3RhYmxlKTsKICBpZiAoY3R4LT5kY19iaW9zICYmIGN0
eC0+ZGNfYmlvcy0+aW50ZWdyYXRlZF9pbmZvKSB7CiAgIHJuX2Nsa19tZ3JfaGVscGVyX3BvcHVs
YXRlX2J3X3BhcmFtcyAoY2xrX21nci0+YmFzZS5id19wYXJhbXMsICZjbG9ja190YWJsZSwgY3R4
LT5kY19iaW9zLT5pbnRlZ3JhdGVkX2luZm8pOwogIH0KIH0KCiBpZiAoIShjdHgtPmRjZV9lbnZp
cm9ubWVudCA9PSBEQ0VfRU5WX0ZQR0FfTUFYSU1VUykgJiYgY2xrX21nci0+c211X3ZlciA+PSAw
eDAwMzcxNTAwKSB7CgogIHJuX3ZiaW9zX3NtdV9lbmFibGVfNDhtaHpfdG1kcF9yZWZjbGtfcHdy
ZHduKGNsa19tZ3IsICFkZWJ1Zy0+ZGlzYWJsZV80OG1oel9wd3Jkd24pOwogfQp9Cg==

--===============2530410277144048522==--

Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
Content-Type: text/plain; charset=utf-8
X-Loop: [email protected]
From: "Devuan bug Tracking System" <[email protected]>
To: Arthur Marsh <[email protected]>
Subject: bug#417: Acknowledgement (gcc-10: internal compiler error
 building kernel 5.6.0-rc7 with amdgpu)
Message-ID: <[email protected]>
References: <158497486864.17367.14059265919888444783.reportbug@localhost>
X-Devuan-PR-Message: ack 417
X-Devuan-PR-Package: gcc-10
Reply-To: [email protected]
Date: Mon, 23 Mar 2020 15:03:04 +0000

Thank you for filing a new bug report with Devuan.

You can follow progress on this bug here: 417: https://bugs.devuan.org/cgi/=
bugreport.cgi?bug=3D417.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 [email protected]

If you wish to submit further information on this problem, please
send it to [email protected].

Please do not send mail to [email protected] unless you wish
to report a problem with the Bug-tracking system.

--=20
417: https://bugs.devuan.org/cgi/bugreport.cgi?bug=3D417
Devuan Bug Tracking System
Contact [email protected] with problems

Message sent to [email protected], [email protected]:


X-Loop: [email protected]
Subject: bug#417: gcc-10: internal compiler error building kernel 5.6.0-rc7 with amdgpu
Reply-To: Mark Hindley <[email protected]>, [email protected]
Resent-From: Mark Hindley <[email protected]>
Resent-To: [email protected]
Resent-CC: [email protected]
X-Loop: [email protected]
Resent-Date: Mon, 23 Mar 2020 17:03:02 +0000
Resent-Message-ID: <[email protected]>
Resent-Sender: [email protected]
X-Devuan-PR-Message: followup 417
X-Devuan-PR-Package: gcc-10
X-Devuan-PR-Keywords: 
References: <158497486864.17367.14059265919888444783.reportbug@localhost>
Received: via spool by [email protected] id=B417.158498220510647
          (code B ref 417); Mon, 23 Mar 2020 17:03:02 +0000
Received: (at 417) by bugs.devuan.org; 23 Mar 2020 16:50:05 +0000
Delivered-To: [email protected]
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 <[email protected]>; 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 <[email protected]>)
	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 <[email protected]>)
	id 1jGQ5w-00040M-2L; Mon, 23 Mar 2020 16:38:32 +0000
Date: Mon, 23 Mar 2020 16:38:31 +0000
From: Mark Hindley <[email protected]>
To: [email protected]
Cc: Arthur Marsh <[email protected]>
Message-ID: <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <158497486864.17367.14059265919888444783.reportbug@localhost>
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 <[email protected]> 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

Message received at [email protected]:


Received: (at 417) by bugs.devuan.org; 23 Mar 2020 16:50:05 +0000
Return-Path: <[email protected]>
Delivered-To: [email protected]
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 <[email protected]>; 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 <[email protected]>)
	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 <[email protected]>)
	id 1jGQ5w-00040M-2L; Mon, 23 Mar 2020 16:38:32 +0000
Date: Mon, 23 Mar 2020 16:38:31 +0000
From: Mark Hindley <[email protected]>
To: [email protected]
Cc: Arthur Marsh <[email protected]>
Subject: Re: gcc-10: internal compiler error building kernel 5.6.0-rc7 with
 amdgpu
Message-ID: <[email protected]>
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 <[email protected]> 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

Message sent to [email protected], [email protected]:


X-Loop: [email protected]
Subject: bug#417: gcc-10: internal compiler error building kernel 5.6.0-rc7 with amdgpu
Reply-To: Mark Hindley <[email protected]>, [email protected]
Resent-From: Mark Hindley <[email protected]>
Resent-To: [email protected]
Resent-CC: [email protected]
X-Loop: [email protected]
Resent-Date: Fri, 03 Feb 2023 11:42:02 +0000
Resent-Message-ID: <[email protected]>
Resent-Sender: [email protected]
X-Devuan-PR-Message: followup 417
X-Devuan-PR-Package: gcc-10
X-Devuan-PR-Keywords: debian
References: <158497486864.17367.14059265919888444783.reportbug@localhost> <[email protected]> <158497486864.17367.14059265919888444783.reportbug@localhost>
Received: via spool by [email protected] id=B417.167542449723899
          (code B ref 417); Fri, 03 Feb 2023 11:42:02 +0000
Received: (at 417) by bugs.devuan.org; 3 Feb 2023 11:41:37 +0000
Delivered-To: [email protected]
Received: from email.devuan.org [2001:41d0:2:d06e::5c4:2612]
	by doc.devuan.org with IMAP (fetchmail-6.4.16)
	for <debbugs@localhost> (single-drop); Fri, 03 Feb 2023 11:41:37 +0000 (UTC)
Received: from email.devuan.org
	by email.devuan.org with LMTP
	id GwmuIsDy3GOAEwAAmSBk0A
	(envelope-from <[email protected]>)
	for <[email protected]>; Fri, 03 Feb 2023 11:40:48 +0000
Received: by email.devuan.org (Postfix, from userid 109)
	id 7D58AA04; Fri,  3 Feb 2023 11:40:48 +0000 (UTC)
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on email.devuan.org
X-Spam-Level: 
X-Spam-Status: No, score=0.4 required=5.0 tests=RDNS_DYNAMIC,SPF_PASS
	autolearn=no autolearn_force=no version=3.4.6
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=193.36.131.86; helo=mx.hindley.org.uk; [email protected]; receiver=<UNKNOWN> 
Received: from mx.hindley.org.uk (193-36-131-86.cfwn.uk [193.36.131.86])
	by email.devuan.org (Postfix) with ESMTPS id 3153D393
	for <[email protected]>; Fri,  3 Feb 2023 11:40:47 +0000 (UTC)
Received: from apollo.hindleynet ([192.168.1.3] helo=hindley.org.uk)
	by mx.hindley.org.uk with smtp (Exim 4.84_2)
	(envelope-from <[email protected]>)
	id 1pNuQv-0002mz-IW; Fri, 03 Feb 2023 11:40:45 +0000
Received: (nullmailer pid 1665 invoked by uid 1000);
	Fri, 03 Feb 2023 11:40:45 -0000
Date: Fri, 3 Feb 2023 11:40:45 +0000
From: Mark Hindley <[email protected]>
To: [email protected]
Cc: Arthur Marsh <[email protected]>
Message-ID: <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <[email protected]>

Control: tags -1 moreinfo

Arthur,

Is this still an issue?

Mark

Message received at [email protected]:


Received: (at 417) by bugs.devuan.org; 3 Feb 2023 11:41:37 +0000
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from email.devuan.org [2001:41d0:2:d06e::5c4:2612]
	by doc.devuan.org with IMAP (fetchmail-6.4.16)
	for <debbugs@localhost> (single-drop); Fri, 03 Feb 2023 11:41:37 +0000 (UTC)
Received: from email.devuan.org
	by email.devuan.org with LMTP
	id GwmuIsDy3GOAEwAAmSBk0A
	(envelope-from <[email protected]>)
	for <[email protected]>; Fri, 03 Feb 2023 11:40:48 +0000
Received: by email.devuan.org (Postfix, from userid 109)
	id 7D58AA04; Fri,  3 Feb 2023 11:40:48 +0000 (UTC)
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on email.devuan.org
X-Spam-Level: 
X-Spam-Status: No, score=0.4 required=5.0 tests=RDNS_DYNAMIC,SPF_PASS
	autolearn=no autolearn_force=no version=3.4.6
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=193.36.131.86; helo=mx.hindley.org.uk; [email protected]; receiver=<UNKNOWN> 
Received: from mx.hindley.org.uk (193-36-131-86.cfwn.uk [193.36.131.86])
	by email.devuan.org (Postfix) with ESMTPS id 3153D393
	for <[email protected]>; Fri,  3 Feb 2023 11:40:47 +0000 (UTC)
Received: from apollo.hindleynet ([192.168.1.3] helo=hindley.org.uk)
	by mx.hindley.org.uk with smtp (Exim 4.84_2)
	(envelope-from <[email protected]>)
	id 1pNuQv-0002mz-IW; Fri, 03 Feb 2023 11:40:45 +0000
Received: (nullmailer pid 1665 invoked by uid 1000);
	Fri, 03 Feb 2023 11:40:45 -0000
Date: Fri, 3 Feb 2023 11:40:45 +0000
From: Mark Hindley <[email protected]>
To: [email protected]
Cc: Arthur Marsh <[email protected]>
Subject: Re: bug#417: gcc-10: internal compiler error building kernel
 5.6.0-rc7 with amdgpu
Message-ID: <[email protected]>
References: <158497486864.17367.14059265919888444783.reportbug@localhost>
 <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <[email protected]>
X-Debbugs-No-Ack: No Thanks

Control: tags -1 moreinfo

Arthur,

Is this still an issue?

Mark

Message sent to [email protected], [email protected]:


X-Loop: [email protected]
Subject: bug#417: gcc-10: internal compiler error building kernel 5.6.0-rc7 with amdgpu
Reply-To: Arthur Marsh <[email protected]>, [email protected]
Resent-From: Arthur Marsh <[email protected]>
Resent-To: [email protected]
Resent-CC: [email protected]
X-Loop: [email protected]
Resent-Date: Fri, 03 Feb 2023 12:20:01 +0000
Resent-Message-ID: <[email protected]>
Resent-Sender: [email protected]
X-Devuan-PR-Message: followup 417
X-Devuan-PR-Package: gcc-10
X-Devuan-PR-Keywords: moreinfo debian
References: <158497486864.17367.14059265919888444783.reportbug@localhost> <[email protected]> <[email protected]> <158497486864.17367.14059265919888444783.reportbug@localhost>
Received: via spool by [email protected] id=B417.167542668530516
          (code B ref 417); Fri, 03 Feb 2023 12:20:01 +0000
Received: (at 417) by bugs.devuan.org; 3 Feb 2023 12:18:05 +0000
Delivered-To: [email protected]
Received: from email.devuan.org [2001:41d0:2:d06e::5c4:2612]
	by doc.devuan.org with IMAP (fetchmail-6.4.16)
	for <debbugs@localhost> (single-drop); Fri, 03 Feb 2023 12:18:05 +0000 (UTC)
Received: from email.devuan.org
	by email.devuan.org with LMTP
	id GiKdEmH73GM2FAAAmSBk0A
	(envelope-from <[email protected]>)
	for <[email protected]>; Fri, 03 Feb 2023 12:17:37 +0000
Received: by email.devuan.org (Postfix, from userid 109)
	id 3BB6EA05; Fri,  3 Feb 2023 12:17:37 +0000 (UTC)
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on email.devuan.org
X-Spam-Level: 
X-Spam-Status: No, score=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,
	RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS autolearn=ham
	autolearn_force=no version=3.4.6
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=150.101.137.141; helo=ipmail03.adl2.internode.on.net; [email protected]; receiver=<UNKNOWN> 
Received: from ipmail03.adl2.internode.on.net (ipmail03.adl2.internode.on.net [150.101.137.141])
	by email.devuan.org (Postfix) with ESMTP id 48E42597
	for <[email protected]>; Fri,  3 Feb 2023 12:17:29 +0000 (UTC)
IronPort-SDR: qOdi5pG++A+/aMOYMIFzn9I2TeeKGHaFk0uaRoH5IsYpUY2aDq/pW939ai7wx2v4sJOQcHefTB
 ArcLVAodLiLvHEcpFBDJjNqAD6CQM8hV5S0hzzPnkfW1ynrdyuLuu9J23io+Nfm0r0XaCzA2ZO
 dSWTtnVjEZERBJxQqgZZSJe31oowPtbNtFaZP33/LY7u5UYuOpSb5ntf5QEy2wziFu9UqDCl34
 WOibyVr/2wm2c4OwJP7evSprOEduXyecqcEQmUvPqBBGSYwtRnlr4XtD+VLou3OYChnkLQ9/vf
 NHmhZOfnlCxULppPiYxClHZi
X-SMTP-MATCH: 1
X-IPAS-Result: A2AiBQBG+txjAPg3kwENTR4BAQsSDEAJgUiFC4ROgmKOQJ89DwFVBAEBhQcChScmOQUNAQIEAQEBAQMCAwEBAQEBAQMBAQYBAQEBAQEGBBABOlINEhw2Eh2ECQkFhxQBAQEDI2YLDQsCAiYCAlcGARKCfqpheoEyGmefWYFngRQtgWWLEYQwN4FVRIEVJwwDDYJnPoQiAQEgg1g5gi4EkT2LH4E3doEkDoFGgQsCCQIRc4EZCFM3AxkrHUADC20KPzULC0orGhsHgQYqKBUDBAQDAgYTAyACDSgxFAQpEw0nJmkJAgMiYgMDBCgtCT8HFREmPAdWNQEFAg8fNwYDCQMCH1FyLhETBQMLFSpHBAg2BQYcCSsSAggPEg8GJkMOQjc0EwaBBgsOEQNPgU4EL4FgBlChLl84xGg0B4N3gUwGDJ8VLoNmARKMYoZOA4wJhXqHWo91IKlwgX0zGi5vAYI8TwECAQEBDQECAQGOapYcYjsCBwsBAQMJjCMBAQ
IronPort-Data: A9a23:lsvAAKxg6ODFygNQZZR6t+dmwSrEfRIJ4+MujC+fZmUNrF6WrkVTm
 DFNWGCObKyCNzCncttzaNzj9hkAuMWAyNBmTlNu/iA0RCkV8JDLCdmXf0n9MXjCc5SSRhs5t
 Z0UZNTMcJFtZ3KN/R3F3prJ9Ckkj/vULlbf5E8oHggrGGeInQ940UoLd9YR29Iu2Z7ja++0k
 YuaT/f3YTdJ5hYtWo4qw/LbwP9QlKyaVAMw5jTSstgW1LN2vyB94KM3fcldHVOhKmVnNrLSq
 9L48V2M1jixEyHBqz+Suu2TnkUiGtY+NOUV45Zcc/DKbhNq/kTe3kunXRYRQR8/ttmHozx+4
 NdqqYOpRhkMB7zzvNk4bClmEXBBMZQTrdcrIVDn2SCS536fKSSqm7M2ShgDVWEa0r8xWD0Rs
 6FFbmpRPnhvhMrvqF6/YuB2msQ+No/uNZkEullhyy3UF/AhTZ2FRKOM49JEtNs1rpoeQKiOO
 5JIMVKDajzOQjAXH2dMAagXkcCJ1ib+SRYChFms8P9fD2/7llcviNABKuH9f9WQRu1Vn0CUo
 m/XuWPjDVcHN7S3lWPa2nixifSJkS7lRYsUUrqi+ZZXbEa7nypKVEJQCAb9+6Xp4qKjZz5BA
 04z5jU3orYXzV2UauTYYC2Goi+7sidJDrK8DNYGBBGxJrv8uljGWzRdH24cNrTKp+dzHmB7j
 A/Q9z/9LWU04ODEGCP1GqK88GvaBMQDEYMVTQY5Jefvy/DvrYU6jx7CJjqIOPPt1oWd9d3Y+
 DeXsCh2rqgIkdQC06SylW0rYg5ARbCQEWbZHi2NAgqYAvpRPeZJnbCA51nB9upnJ42EVFSHt
 3Vss5HAs71SV8jRyXLcEbtl8FSVCxCtbmK0bblHQclJythR0yP6FWytyGgleRk2a5dZEdMXS
 BaP4V8NtPe/w0dGnYctONzpYyjb5bTtEc/5TPmcb9xSb4J3eRPvwc2dTRH44owZq2BxzPFXB
 HtuWYP1VS5y5VJPnWXtHI/wENYDn0gD+I8kbcmqnk33jubPPCH9pHVsGALmU93VJZis+G39m
 +uz/ePRo/mGeOGhMCTR76AJKlUGcSoyCZzs8pIFd+ifLxBgH20sTfjXh7UsZ9U9zahSk+7J+
 FC7W1NZkQSg3y2cdVvRO30zOqnyWZtfrG4gOXJ+MFut3U8lPdSl4pAAJsk+crQQ/eB+yeJ5E
 qsecMKaD/UUFTnKomxPbZT0oIF4Wg6sgAaCY3isbDQlJsAyRgrV98XieQfisi4ISCy6qZJm8
 bGn0wraR7sFRhhjVZiJMqL0kw3q7HVEwbB8RUrFJNVXaX7AyokyJnyjlOIzLuENNQ7HmGmX2
 gOQNhFE9+PDlJBkotDGiJeNo5qtD+YjTFFRGHPW7O3pOCTX8wJPG2ObvDpkoNwFaF7JxQ==
IronPort-HdrOrdr: A9a23:Onuodq7YXC0j6My27QPXwN3XdLJyesId70hD6qkXc20xTiX4rb
 HNoB1173TJYVoqMk3I3OrvBEDiewK+yXcW2+ks1N6ZNWHbUSmTTb2KhrGP/9SPIUDDH6Jmup
 tdTw==
X-IronPort-Anti-Spam-Filtered: true
Received: from unknown (HELO [127.0.0.1]) ([1.147.55.248])
  by ipmail03.adl2.internode.on.net with ESMTP; 03 Feb 2023 22:47:19 +1030
Date: Fri, 03 Feb 2023 22:47:15 +1030
From: Arthur Marsh <[email protected]>
To: Mark Hindley <[email protected]>, [email protected]
User-Agent: K-9 Mail for Android
In-Reply-To: <[email protected]>
Message-ID: <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

No=2E

I am currently building kernels with gcc-12=2E

Regards,

Arthur=2E=20

On 3 February 2023 10:10:45 pm ACDT, Mark Hindley <mark@hindley=2Eorg=2Euk=
> wrote:
>Control: tags -1 moreinfo
>
>Arthur,
>
>Is this still an issue?
>
>Mark

--=20
Sent from my Android device with K-9 Mail=2E Please excuse my brevity=2E

Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.509 (Entity 5.509)
Content-Type: text/plain; charset=utf-8
X-Loop: [email protected]
From: "Devuan bug Tracking System" <[email protected]>
To: Arthur Marsh <[email protected]>
Subject: bug#417: Info received (bug#417: gcc-10: internal compiler error
 building kernel 5.6.0-rc7 with amdgpu)
Message-ID: <[email protected]>
References: <[email protected]>
X-Devuan-PR-Message: ack-info 417
X-Devuan-PR-Package: gcc-10
X-Devuan-PR-Keywords: moreinfo debian
Reply-To: [email protected]
Date: Fri, 03 Feb 2023 12:20:06 +0000

Thank you for the additional information you have supplied regarding
this bug report.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 [email protected]

If you wish to submit further information on this problem, please
send it to [email protected].

Please do not send mail to [email protected] unless you wish
to report a problem with the Bug-tracking system.

--=20
417: https://bugs.devuan.org/cgi/bugreport.cgi?bug=3D417
Devuan Bug Tracking System
Contact [email protected] with problems

Devuan BTS -- Powered by Debian bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.

Devuan Bugs Owner <[email protected]>.
Last modified: Sat, 18 Jan 2025 08:39:01 UTC