Re: $Conf{RsyncBackupPCPath} misconfiguration
Matthias--- via BackupPC-users <[email protected]> Wed, 10 Jun 2026 10:37:33 +0200
| Newsgroups | gmane.comp.sysutils.backup.backuppc.general |
|---|---|
| Message-ID | <[email protected]> |
--=-onGIWRVJLTR9WjnJ6UqP
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Hello :)
My config files are all in /etc/backuppc/
Attached you will find my config.pl, the failing devel-w8.pl as well as th=
e correct working
honeypc.pl
Yes, I modified BackupPC_dump and BackupPC_restore. I'asked for providing =
it as a patch on May 4,
last year
(https://sourceforge.net/p/backuppc/mailman/backuppc-users/thread/7af6b2b9=
68207411dcc25fd8aebdf4fc722ee7bd.camel%40gmx.at/#msg59179821
).
BackupPC_dump:
In BackupPC V4, if a new backup is started, we begin with BackupPC_back=
upDuplicate of the last
recent backup number into the new backup number and DumpPreUserCmd will=
be called afterwards. This
can have a duration from some seconds till some hours. If the client go=
to sleep during this time,
the backup will fail.
To omit this, this patch move the call of DumpPreUserCmd before executi=
on of
BackupPC_backupDuplicate and a users DumpPreUserCmd can disable hiberna=
tion on client side.
BackupPC_restore:
I have two special Use Cases where creation of restore log information =
fails:
I'm calling BackupPC_restore during RestorePostUserCmd for restoring ju=
nction point destinations
as well as I run several BackupPC_restore in parallel for my bare metal=
restore process.
=20
In this cases it could happen that a requested restore for a client is =
done during another
RestorePostUserCmd for this client is still running.
In this case both BackupPC_restore will use the same restore number $la=
stNum and the RestoreInfo and
RestoreLOG will be overwritten by the last finishing BackupPC_restore.
=20
To omit this, this patch move the call of calculation of $lastNum behin=
d the call of the
RestorePostUserCmd. The timeframe where such interruptions can occur wi=
ll be much smaller. Just this
dozen code lines from calculating the number till adding the new restor=
e information to the restore
file.
Thanks in advance
Matthias
Am Donnerstag, dem 04.06.2026 um 17:34 +0100 schrieb G.W. Haywood:
> Hi there,
>=20
> On Wed, 3 Jun 2026, Matthias@... wrote:
>=20
> > It looks like I have an issue with my config files in /etc/backuppc.
> > For two hosts I get an error (xfer start failed:
> > $Conf{RsyncBackupPCPath} is set to , which isn't a valid executable)
> >=20
> > But it is only configured in /etc/backuppc/config.pl. Not in any other=
of my 30 host:
> > =C2=A0 grep -i RsyncBackupPCPath /etc/backuppc/*.pl
> > =C2=A0 /etc/backuppc/config.pl:$Conf{RsyncBackupPCPath} =3D '/usr/libe=
xec/backuppc-rsync/rsync_bpc';
> > =C2=A0 /etc/backuppc/config.pl:=C2=A0 'RsyncBackupPCPath' =3D> '0',
> >=20
> > I'd be happy for any hint :)
>=20
> Have you used the Web interface to edit the configuration?=C2=A0 Using t=
he
> Web GUI, more than once by accident I have managed to create an array
> with an empty element.=C2=A0 Occasionally that would break things.=C2=A0=
I have
> considered adding a check for empty array elements in the GUI code but
> it isn't a high priority.=C2=A0 I recommend you look at the configuratio=
n
> very carefully using a text editor or a pager.
>=20
> Where are all your per-PC configurations stored?=C2=A0 Are they all in t=
he
> /etc/backuppc/ directory?=C2=A0 We may need to see the full configuratio=
n,
> at least config.pl plus the two failing hosts and maybe one that's OK.
> Most systems have a separate directory for the per-PC configuration
> files, it seems a lot tidier to me, that's how BackupPC sets it up if
> you install from upstream and that's how I do it.=C2=A0 I guess Debian h=
as
> its own ideas.=C2=A0 I don't understand the logic of deliberately changi=
ng
> what seems to me a perfectly serviceable arrangement for everyone, but
> if there's a rational explanation I'm willing to listen.=C2=A0 Anyway if=
a
> per-PC configuration isn't in the BackupPC configuration directory you
> obviously won't find it with the grep command that you gave.
>=20
> Have you edited any of the BackupPC Perl scripts?
>=20
--=-onGIWRVJLTR9WjnJ6UqP
Content-Type: application/x-perl; name="config.pl"
Content-Disposition: attachment; filename="config.pl"
Content-Transfer-Encoding: base64
Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gLSotcGVybC0qLQojCiMgQ29uZmlndXJhdGlvbiBmaWxlIGZvciBCYWNrdXBQQy4KIwoj
IERFU0NSSVBUSU9OCiMKIyAgIFRoaXMgaXMgdGhlIG1haW4gY29uZmlndXJhdGlvbiBmaWxlIGZv
ciBCYWNrdXBQQy4KIwojICAgVGhpcyBmaWxlIG11c3QgYmUgdmFsaWQgcGVybCBzb3VyY2UsIHNv
IG1ha2Ugc3VyZSB0aGUgcHVuY3R1YXRpb24sCiMgICBxdW90ZXMsIGFuZCBvdGhlciBzeW50YXgg
YXJlIHZhbGlkLgojCiMgICBUaGlzIGZpbGUgaXMgcmVhZCBieSBCYWNrdXBQQyBhdCBzdGFydHVw
LCB3aGVuIGEgSFVQICgtMSkgc2lnbmFsCiMgICBpcyBzZW50IHRvIEJhY2t1cFBDIGFuZCBhbHNv
IGF0IGVhY2ggd2FrZXVwIHRpbWUgd2hlbmV2ZXIgdGhlCiMgICBtb2RpZmljYXRpb24gdGltZSBv
ZiB0aGlzIGZpbGUgY2hhbmdlcy4KIwojICAgVGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBh
cmUgZGl2aWRlZCBpbnRvIGZvdXIgZ2VuZXJhbCBncm91cHMuCiMgICBUaGUgZmlyc3QgZ3JvdXAg
KGdlbmVyYWwgc2VydmVyIGNvbmZpZ3VyYXRpb24pIHByb3ZpZGVzIGdlbmVyYWwKIyAgIGNvbmZp
Z3VyYXRpb24gZm9yIEJhY2t1cFBDLiAgVGhlIG5leHQgdHdvIGdyb3VwcyBkZXNjcmliZSB3aGF0
CiMgICB0byBiYWNrdXAsIHdoZW4gdG8gZG8gaXQsIGFuZCBob3cgbG9uZyB0byBrZWVwIGl0LiAg
VGhlIGZvdXJ0aAojICAgZ3JvdXAgYXJlIHNldHRpbmdzIGZvciB0aGUgQ0dJIGh0dHAgaW50ZXJm
YWNlLgojCiMgICBDb25maWd1cmF0aW9uIHNldHRpbmdzIGNhbiBhbHNvIGJlIHNwZWNpZmllZCBv
biBhIHBlci1QQyBiYXNpcy4KIyAgIFNpbXBseSBwdXQgdGhlIHJlbGV2YW50IHNldHRpbmdzIGlu
IGEgY29uZmlnLnBsIGZpbGUgaW4gdGhlCiMgICBQQydzIGJhY2t1cCBkaXJlY3RvcnkgKGllOiBp
biBfX1RPUERJUl9fL3BjL2hvc3ROYW1lKS4KIyAgIEFsbCBjb25maWd1cmF0aW9uIHNldHRpbmdz
IGluIHRoZSBzZWNvbmQsIHRoaXJkIGFuZCBmb3VydGgKIyAgIGdyb3VwcyBjYW4gYmUgb3ZlcnJp
ZGRlbiBieSB0aGUgcGVyLVBDIGNvbmZpZy5wbCBmaWxlLgojCiMgQVVUSE9SCiMgICBDcmFpZyBC
YXJyYXR0ICA8Y2JhcnJhdHRAdXNlcnMuc291cmNlZm9yZ2UubmV0PgojCiMgQ09QWVJJR0hUCiMg
ICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMyAgQ3JhaWcgQmFycmF0dAojCiMgICBTZWUgaHR0cDov
L2JhY2t1cHBjLnNvdXJjZWZvcmdlLm5ldC4KIwojPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgojIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMKIyBHZW5lcmFsIHNlcnZlciBjb25maWd1cmF0aW9uCiMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IwojCiMgSG9zdCBuYW1lIG9uIHdoaWNoIHRoZSBCYWNrdXBQQyBzZXJ2ZXIgaXMgcnVubmluZy4K
IwokRU5WeydQQVRIJ30gPSAnL2JpbjovdXNyL2Jpbic7CmRlbGV0ZSBARU5WeydJRlMnLCAnQ0RQ
QVRIJywgJ0VOVicsICdCQVNIX0VOVid9OwokQ29uZntTZXJ2ZXJIb3N0fSA9ICdGaWxlU2VydmVy
LlByaXZhdGVMQU4uYXQnOwpjaG9tcCgkQ29uZntTZXJ2ZXJIb3N0fSk7CgojCiMgVENQIHBvcnQg
bnVtYmVyIG9uIHdoaWNoIHRoZSBCYWNrdXBQQyBzZXJ2ZXIgbGlzdGVucyBmb3IgYW5kIGFjY2Vw
dHMKIyBjb25uZWN0aW9ucy4gIE5vcm1hbGx5IHRoaXMgc2hvdWxkIGJlIGRpc2FibGVkIChzZXQg
dG8gLTEpLiAgVGhlIFRDUAojIHBvcnQgaXMgb25seSBuZWVkZWQgaWYgYXBhY2hlIHJ1bnMgb24g
YSBkaWZmZXJlbnQgbWFjaGluZSBmcm9tIEJhY2t1cFBDLgojIEluIHRoYXQgY2FzZSwgc2V0IHRo
aXMgdG8gYW55IHNwYXJlIHBvcnQgbnVtYmVyIG92ZXIgMTAyNCAoZWc6IDIzNTkpLgojIElmIHlv
dSBlbmFibGUgdGhlIFRDUCBwb3J0LCBtYWtlIHN1cmUgeW91IHNldCAkQ29uZntTZXJ2ZXJNZXNn
U2VjcmV0fQojIHRvbyEKIwokQ29uZntTZXJ2ZXJQb3J0fSA9IC0xOwoKIwojIFNoYXJlZCBzZWNy
ZXQgdG8gbWFrZSB0aGUgVENQIHBvcnQgc2VjdXJlLiAgU2V0IHRoaXMgdG8gYSBoYXJkIHRvIGd1
ZXNzCiMgc3RyaW5nIGlmIHlvdSBlbmFibGUgdGhlIFRDUCBwb3J0IChpZTogJENvbmZ7U2VydmVy
UG9ydH0gPiAwKS4KIwojIFRvIGF2b2lkIHBvc3NpYmxlIGF0dGFja3MgdmlhIHRoZSBUQ1Agc29j
a2V0IGludGVyZmFjZSwgZXZlcnkgY2xpZW50CiMgbWVzc2FnZSBpcyBwcm90ZWN0ZWQgYnkgYW4g
TUQ1IGRpZ2VzdC4gVGhlIE1ENSBkaWdlc3QgaW5jbHVkZXMgZm91cgojIGl0ZW1zOgojICAgLSBh
IHNlZWQgdGhhdCBpcyBzZW50IHRvIHRoZSBjbGllbnQgd2hlbiB0aGUgY29ubmVjdGlvbiBvcGVu
cwojICAgLSBhIHNlcXVlbmNlIG51bWJlciB0aGF0IGluY3JlbWVudHMgZm9yIGVhY2ggbWVzc2Fn
ZQojICAgLSBhIHNoYXJlZCBzZWNyZXQgdGhhdCBpcyBzdG9yZWQgaW4gJENvbmZ7U2VydmVyTWVz
Z1NlY3JldH0KIyAgIC0gdGhlIG1lc3NhZ2UgaXRzZWxmLgojCiMgVGhlIG1lc3NhZ2UgaXMgc2Vu
dCBpbiBwbGFpbiB0ZXh0IHByZWNlZGVkIGJ5IHRoZSBNRDUgZGlnZXN0LiAgQQojIHNub29wZXIg
Y2FuIHNlZSB0aGUgcGxhaW4tdGV4dCBzZWVkIHNlbnQgYnkgQmFja3VwUEMgYW5kIHBsYWluLXRl
eHQKIyBtZXNzYWdlIGZyb20gdGhlIGNsaWVudCwgYnV0IGNhbm5vdCBjb25zdHJ1Y3QgYSB2YWxp
ZCBNRDUgZGlnZXN0IHNpbmNlCiMgdGhlIHNlY3JldCAkQ29uZntTZXJ2ZXJNZXNnU2VjcmV0fSBp
cyB1bmtub3duLiAgQSByZXBsYXkgYXR0YWNrIGlzCiMgbm90IHBvc3NpYmxlIHNpbmNlIHRoZSBz
ZWVkIGNoYW5nZXMgb24gYSBwZXItY29ubmVjdGlvbiBhbmQKIyBwZXItbWVzc2FnZSBiYXNpcy4K
IwokQ29uZntTZXJ2ZXJNZXNnU2VjcmV0fSA9ICcnOwoKIwojIFBBVEggc2V0dGluZyBmb3IgQmFj
a3VwUEMuICBBbiBleHBsaWNpdCB2YWx1ZSBpcyBuZWNlc3NhcnkKIyBmb3IgdGFpbnQgbW9kZS4g
IFZhbHVlIHNob3VsZG4ndCBtYXR0ZXIgdG9vIG11Y2ggc2luY2UKIyBhbGwgZXhlY3MgdXNlIGV4
cGxpY2l0IHBhdGhzLiAgSG93ZXZlciwgdGFpbnQgbW9kZSBpbiBwZXJsCiMgd2lsbCBjb21wbGFp
biBpZiB0aGlzIGRpcmVjdG9yeSBpcyB3b3JsZCB3cml0YWJsZS4KIwokQ29uZntNeVBhdGh9ID0g
Jy9iaW4nOwoKIwojIFBlcm1pc3Npb24gbWFzayBmb3IgZGlyZWN0b3JpZXMgYW5kIGZpbGVzIGNy
ZWF0ZWQgYnkgQmFja3VwUEMuCiMgRGVmYXVsdCB2YWx1ZSBwcmV2ZW50cyBhbnkgYWNjZXNzIGZy
b20gZ3JvdXAgb3RoZXIsIGFuZCBwcmV2ZW50cwojIGdyb3VwIHdyaXRlLgojCiRDb25me1VtYXNr
TW9kZX0gPSAyMzsKCiMKIyBUaW1lcyBhdCB3aGljaCB3ZSB3YWtlIHVwLCBjaGVjayBhbGwgdGhl
IFBDcywgYW5kIHNjaGVkdWxlIG5lY2Vzc2FyeQojIGJhY2t1cHMuICBUaW1lcyBhcmUgbWVhc3Vy
ZWQgaW4gaG91cnMgc2luY2UgbWlkbmlnaHQuICBDYW4gYmUKIyBmcmFjdGlvbmFsIGlmIG5lY2Vz
c2FyeSAoZWc6IDQuMjUgbWVhbnMgNDoxNWFtKS4KIwojIElmIHRoZSBob3N0cyB5b3UgYXJlIGJh
Y2tpbmcgdXAgYXJlIGFsd2F5cyBjb25uZWN0ZWQgdG8gdGhlIG5ldHdvcmsKIyB5b3UgbWlnaHQg
aGF2ZSBvbmx5IG9uZSBvciB0d28gd2FrZXVwcyBlYWNoIG5pZ2h0LiAgVGhpcyB3aWxsIGtlZXAK
IyB0aGUgYmFja3VwIGFjdGl2aXR5IGFmdGVyIGhvdXJzLiAgT24gdGhlIG90aGVyIGhhbmQsIGlm
IHlvdSBhcmUgYmFja2luZwojIHVwIGxhcHRvcHMgdGhhdCBhcmUgb25seSBpbnRlcm1pdHRlbnRs
eSBjb25uZWN0ZWQgdG8gdGhlIG5ldHdvcmsgeW91CiMgd2lsbCB3YW50IHRvIGhhdmUgZnJlcXVl
bnQgd2FrZXVwcyAoZWc6IGhvdXJseSkgdG8gbWF4aW1pemUgdGhlIGNoYW5jZQojIHRoYXQgZWFj
aCBsYXB0b3AgaXMgYmFja2VkIHVwLgojCiMgRXhhbXBsZXM6CiMgICAgICRDb25me1dha2V1cFNj
aGVkdWxlfSA9IFsyMi41XTsgICAgICAgICAjIG9uY2UgcGVyIGRheSBhdCAxMDozMCBwbS4KIyAg
ICAgJENvbmZ7V2FrZXVwU2NoZWR1bGV9ID0gWzEuLjIzXTsgICAgICAgICMgZXZlcnkgaG91ciBl
eGNlcHQgbWlkbmlnaHQKIyAgICAgJENvbmZ7V2FrZXVwU2NoZWR1bGV9ID0gWzIsNCw2LDgsMTAs
MTIsMTQsMTYsMTgsMjAsMjJdOyAgIyBldmVyeSAyIGhvdXJzCiMKIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpcyBldmVyeSBob3VyIGV4Y2VwdCBtaWRuaWdodC4KIwojIFRoZSBmaXJzdCBlbnRyeSBvZiAk
Q29uZntXYWtldXBTY2hlZHVsZX0gaXMgd2hlbiBCYWNrdXBQQ19uaWdodGx5CiMgaXMgcnVuLiAg
Tm8gb3RoZXIgYmFja3VwcyBjYW4gcnVuIHdoaWxlIEJhY2t1cFBDX25pZ2h0bHkgaXMKIyBydW5u
aW5nLiAgWW91IG1pZ2h0IHdhbnQgdG8gcmUtYXJyYW5nZSB0aGUgZW50cmllcyBpbgojICRDb25m
e1dha2V1cFNjaGVkdWxlfSAodGhleSBkb24ndCBoYXZlIHRvIGJlIGFzY2VuZGluZykgc28gdGhh
dAojIHRoZSBmaXJzdCBlbnRyeSBpcyB3aGVuIHlvdSB3YW50IEJhY2t1cFBDX25pZ2h0bHkgdG8g
cnVuCiMgKGVnOiB3aGVuIHlvdSBkb24ndCBleHBlY3QgYSBsb3Qgb2YgcmVndWxhciBiYWNrdXBz
IHRvIHJ1bikuCiMKJENvbmZ7V2FrZXVwU2NoZWR1bGV9ID0gWwogIDIsCiAgNCwKICA2LAogIDgs
CiAgMTAsCiAgMTIsCiAgMTQsCiAgMTYsCiAgMTgsCiAgMjAsCiAgMjIKXTsKCiMKIyBJZiBhIFYz
IHBvb2wgZXhpc3RzIChpZTogYW4gdXBncmFkZSkgc2V0IHRoaXMgdG8gMS4gIFRoaXMgY2F1c2Vz
IHRoZQojIFYzIHBvb2wgdG8gYmUgY2hlY2tlZCBmb3IgbWF0Y2hlcyBpZiB0aGVyZSBhcmUgbm8g
bWF0Y2hlcyBpbiB0aGUgVjQKIyBwb29sLgojCiMgRm9yIG5ldyBpbnN0YWxsYXRpb25zLCB0aGlz
IHNob3VsZCBiZSBzZXQgdG8gMC4KIwokQ29uZntQb29sVjNFbmFibGVkfSA9ICcxJzsKIwojIE1h
eGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91cyBiYWNrdXBzIHRvIHJ1bi4gIElmIHRoZXJlCiMg
YXJlIG5vIHVzZXIgYmFja3VwIHJlcXVlc3RzIHRoZW4gdGhpcyBpcyB0aGUgbWF4aW11bSBudW1i
ZXIKIyBvZiBzaW11bHRhbmVvdXMgYmFja3Vwcy4KIwokQ29uZntNYXhCYWNrdXBzfSA9IDQ7Cgoj
CiMgQWRkaXRpb25hbCBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGJhY2t1cHMgdGhhdCB1c2VycyBj
YW4gcnVuLgojIEFzIG1hbnkgYXMgJENvbmZ7TWF4QmFja3Vwc30gKyAkQ29uZntNYXhVc2VyQmFj
a3Vwc30gcmVxdWVzdHMgY2FuCiMgcnVuIGF0IHRoZSBzYW1lIHRpbWUuCiMKJENvbmZ7TWF4VXNl
ckJhY2t1cHN9ID0gNDsKCiMKIyBNYXhpbXVtIG51bWJlciBvZiBwZW5kaW5nIGxpbmsgY29tbWFu
ZHMuIE5ldyBiYWNrdXBzIHdpbGwgb25seSBiZQojIHN0YXJ0ZWQgaWYgdGhlcmUgYXJlIG5vIG1v
cmUgdGhhbiAkQ29uZntNYXhQZW5kaW5nQ21kc30gcGx1cwojICRDb25me01heEJhY2t1cHN9IG51
bWJlciBvZiBwZW5kaW5nIGxpbmsgY29tbWFuZHMsIHBsdXMgcnVubmluZyBqb2JzLgojIFRoaXMg
bGltaXQgaXMgdG8gbWFrZSBzdXJlIEJhY2t1cFBDIGRvZXNuJ3QgZmFsbCB0b28gZmFyIGJlaGlu
ZCBpbgojIHJ1bm5pbmcgQmFja3VwUENfbGluayBjb21tYW5kcy4KIwokQ29uZntNYXhQZW5kaW5n
Q21kc30gPSAxMDsKCiMKIyBIb3cgbWFueSBCYWNrdXBQQ19uaWdodGx5IHByb2Nlc3NlcyB0byBy
dW4gaW4gcGFyYWxsZWwuCiMKIyBFYWNoIG5pZ2h0LCBhdCB0aGUgZmlyc3Qgd2FrZXVwIGxpc3Rl
ZCBpbiAkQ29uZntXYWtldXBTY2hlZHVsZX0sCiMgQmFja3VwUENfbmlnaHRseSBpcyBydW4uICBJ
dHMgam9iIGlzIHRvIHJlbW92ZSB1bm5lZWRlZCBmaWxlcwojIGluIHRoZSBwb29sLCBpZTogZmls
ZXMgdGhhdCBvbmx5IGhhdmUgb25lIGxpbmsuICBUbyBhdm9pZCByYWNlCiMgY29uZGl0aW9ucywg
QmFja3VwUENfbmlnaHRseSBydW5zIG9ubHkgd2hlbiB0aGVyZSBhcmUgbm8gYmFja3VwcwojIHJ1
bm5pbmcsIGFuZCBubyBiYWNrdXBzIHdpbGwgc3RhcnQgd2hpbGUgaXQgcnVucy4KIwojIFNvIHRv
IHJlZHVjZSB0aGUgZWxhcHNlZCB0aW1lLCB5b3UgbWlnaHQgd2FudCB0byBpbmNyZWFzZSB0aGlz
CiMgc2V0dGluZyB0byBydW4gc2V2ZXJhbCBCYWNrdXBQQ19uaWdodGx5IHByb2Nlc3NlcyBpbiBw
YXJhbGxlbAojIChlZzogNCwgb3IgZXZlbiA4KS4KIwokQ29uZntNYXhCYWNrdXBQQ05pZ2h0bHlK
b2JzfSA9IDE7CgojCiMgSG93IG1hbnkgZGF5cyAocnVucykgaXQgdGFrZXMgQmFja3VwUENfbmln
aHRseSB0byB0cmF2ZXJzZSB0aGUKIyBlbnRpcmUgcG9vbC4gIE5vcm1hbGx5IHRoaXMgaXMgMSwg
d2hpY2ggbWVhbnMgZXZlcnkgbmlnaHQgaXQgcnVucywKIyBpdCBkb2VzIHRyYXZlcnNlIHRoZSBl
bnRpcmUgcG9vbCByZW1vdmluZyB1bnVzZWQgcG9vbCBmaWxlcy4KIwojIE90aGVyIHZhbGlkIHZh
bHVlcyBhcmUgMiwgNCwgOCwgMTYuICBUaGlzIGNhdXNlcyBCYWNrdXBQQ19uaWdodGx5IHRvCiMg
dHJhdmVyc2UgMS8yLCAxLzQsIDEvOCBvciAxLzE2dGggb2YgdGhlIHBvb2wgZWFjaCBuaWdodCwg
bWVhbmluZyBpdAojIHRha2VzIDIsIDQsIDggb3IgMTYgZGF5cyB0byBjb21wbGV0ZWx5IHRyYXZl
cnNlIHRoZSBwb29sLiAgVGhlCiMgYWR2YW50YWdlIGlzIHRoYXQgZWFjaCBuaWdodCB0aGUgcnVu
bmluZyB0aW1lIG9mIEJhY2t1cFBDX25pZ2h0bHkKIyBpcyByZWR1Y2VkIHJvdWdobHkgaW4gcHJv
cG9ydGlvbiwgc2luY2UgdGhlIHRvdGFsIGpvYiBpcyBzcGxpdAojIG92ZXIgbXVsdGlwbGUgZGF5
cy4gIFRoZSBkaXNhZHZhbnRhZ2UgaXMgdGhhdCB1bnVzZWQgcG9vbCBmaWxlcwojIHRha2UgbG9u
Z2VyIHRvIGdldCBkZWxldGVkLCB3aGljaCB3aWxsIHNsaWdodGx5IGluY3JlYXNlIGRpc2sKIyB1
c2FnZS4KIwojIE5vdGUgdGhhdCBldmVuIHdoZW4gJENvbmZ7QmFja3VwUENOaWdodGx5UGVyaW9k
fSA+IDEsIEJhY2t1cFBDX25pZ2h0bHkKIyBzdGlsbCBydW5zIGV2ZXJ5IG5pZ2h0LiAgSXQganVz
dCBkb2VzIGxlc3Mgd29yayBlYWNoIHRpbWUgaXQgcnVucy4KIwojIEV4YW1wbGVzOgojCiMgICAg
JENvbmZ7QmFja3VwUENOaWdodGx5UGVyaW9kfSA9IDE7ICAgIyBlbnRpcmUgcG9vbCBpcyBjaGVj
a2VkIGV2ZXJ5IG5pZ2h0CiMKIyAgICAkQ29uZntCYWNrdXBQQ05pZ2h0bHlQZXJpb2R9ID0gMjsg
ICAjIHR3byBkYXlzIHRvIGNvbXBsZXRlIHBvb2wgY2hlY2sKIyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIChkaWZmZXJlbnQgaGFsZiBlYWNoIG5pZ2h0KQojCiMgICAg
JENvbmZ7QmFja3VwUENOaWdodGx5UGVyaW9kfSA9IDQ7ICAgIyBmb3VyIGRheXMgdG8gY29tcGxl
dGUgcG9vbCBjaGVjawojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg
KGRpZmZlcmVudCBxdWFydGVyIGVhY2ggbmlnaHQpCiMKJENvbmZ7QmFja3VwUENOaWdodGx5UGVy
aW9kfSA9IDE2OwoKIwojIFRoZSB0b3RhbCBzaXplIG9mIHRoZSBmaWxlcyBpbiB0aGUgbmV3IFY0
IHBvb2wgaXMgdXBkYXRlZCBldmVyeQojIG5pZ2h0IHdoZW4gQmFja3VwUENfbmlnaHRseSBydW5z
IEJhY2t1cFBDX3JlZkNvdW50VXBkYXRlLiAgSW5zdGVhZAojIG9mIGFkZGluZyB1cCB0aGUgc2l6
ZSBvZiBldmVyeSBwb29sIGZpbGUsIGl0IGp1c3QgdXBkYXRlcyB0aGUgcG9vbAojIHNpemUgdG90
YWwgd2hlbiBmaWxlcyBhcmUgYWRkZWQgdG8gb3IgcmVtb3ZlZCBmcm9tIHRoZSBwb29sLgojCiMg
VG8gbWFrZSBzdXJlIHRoZXNlIGN1bXVsYXRpdmUgcG9vbCBmaWxlIHNpemVzIHN0YXkgYWNjdXJh
dGUsIHdlCiMgcmVjb21wdXRlIHRoZSBWNCBwb29sIHNpemUgZm9yIGEgcG9ydGlvbiBvZiB0aGUg
cG9vbCBlYWNoIG5pZ2h0CiMgZnJvbSBzY3JhdGNoLCBpZTogYnkgY2hlY2tpbmcgZXZlcnkgZmls
ZSBpbiB0aGF0IHBvcnRpb24gb2YgdGhlCiMgcG9vbC4KIwojICRDb25me1Bvb2xTaXplTmlnaHRs
eVVwZGF0ZVBlcmlvZH0gc2V0cyBob3cgbWFueSBuaWdodHMgaXQgdGFrZXMKIyB0byBjb21wbGV0
ZWx5IHVwZGF0ZSB0aGUgVjQgcG9vbCBzaXplLiAgSXQgY2FuIGJlIHNldCB0bzoKIyAgIDA6ICBu
ZXZlciBkbyBhIGZ1bGwgcmVmcmVzaDsgc2ltcGx5IG1haW50YWluIHRoZSBjdW11bGF0aXZlIHNp
emVzCiMgICAgICAgd2hlbiBmaWxlcyBhcmUgYWRkZWQgb3IgZGVsZXRlZCAoZmFzdGVzdCBvcHRp
b24pCiMgICAxOiAgcmVjb21wdXRlIGFsbCAgdGhlIFY0IHBvb2wgc2l6ZSBldmVyeSBuaWdodCAo
c2xvd2VzdCBvcHRpb24pCiMgICAyOiAgcmVjb21wdXRlIDEvMiAgdGhlIFY0IHBvb2wgc2l6ZSBl
dmVyeSBuaWdodAojICAgNDogIHJlY29tcHV0ZSAxLzQgIHRoZSBWNCBwb29sIHNpemUgZXZlcnkg
bmlnaHQKIyAgIDg6ICByZWNvbXB1dGUgMS84ICB0aGUgVjQgcG9vbCBzaXplIGV2ZXJ5IG5pZ2h0
CiMgICAxNjogcmVjb21wdXRlIDEvMTYgdGhlIFY0IHBvb2wgc2l6ZSBldmVyeSBuaWdodAojICAg
ICAgICgybmQgZmFzdGVzdCBvcHRpb247IGVuc3VyZXMgdGhlIHBvb2wgZmlsZXMgc2l6ZXMKIyAg
ICAgICAgc3RheSBhY2N1cmF0ZSBhZnRlciBhIGZldyBkYXksIGluIGNhc2UgdGhlIHJlbGF0aXZl
CiMgICAgICAgIHVwZ3JhZGVzIG1pc3MgYSBmaWxlKQojCiRDb25me1Bvb2xTaXplTmlnaHRseVVw
ZGF0ZVBlcmlvZH0gPSAxNjsKCiMKIyBJbnRlZ3JpdHkgY2hlY2sgdGhlIHBvb2wgZmlsZXMgYnkg
Y29uZmlybWluZyB0aGUgbWQ1IGRpZ2VzdCBvZiB0aGUKIyBjb250ZW50cyBtYXRjaGVzIHRoZWly
IGZpbGUgbmFtZS4gIEJlY2F1c2UgdGhlIHBvb2wgaXMgdmVyeSBsYXJnZSwKIyBvbmx5IGNoZWNr
IGEgc21hbGwgcmFuZG9tIHBlcmNlbnRhZ2Ugb2YgdGhlIHBvb2wgZmlsZXMgZWFjaCBuaWdodC4K
IwojIFRoaXMgaXMgY2hlY2sgaWYgdGhlcmUgaGFzIGJlZW4gYW55IHNlcnZlciBmaWxlIHN5c3Rl
bSBjb3JydXB0aW9uLgojCiMgVGhlIGRlZmF1bHQgdmFsdWUgb2YgMSUgbWVhbnMgYXBwcm94aW1h
dGVseSAzMCUgb2YgdGhlIHBvb2wgZmlsZXMKIyB3aWxsIGJlIGNoZWNrZWQgZWFjaCBtb250aCwg
YWx0aG91Z2ggdGhlIGFjdHVhbCBudW1iZXIgd2lsbCBiZSBhCiMgYml0IGxlc3Mgc2luY2Ugc29t
ZSBmaWxlcyBtaWdodCBiZSBjaGVja2VkIG1vcmUgdGhhbiBvbmNlIGluIHRoYXQKIyB0aW1lLiBJ
ZiBCYWNrdXBQQ19uaWdodGx5IHRha2VzIHRvbyBsb25nLCB5b3UgY291bGQgcmVkdWNlIHRoaXMK
IyB2YWx1ZS4KIwokQ29uZntQb29sTmlnaHRseURpZ2VzdENoZWNrUGVyY2VudH0gPSAxOwoKIwoj
IFJlZmVyZW5jZSBjb3VudHMgb2YgcG9vbCBmaWxlcyBhcmUgY29tcHV0ZWQgcGVyIGJhY2t1cCBi
eSBhY2N1bXVsYXRpbmcKIyB0aGUgcmVsYXRpdmUgY2hhbmdlcy4gIFRoYXQgbWVhbnMsIGhvd2V2
ZXIsIHRoYXQgYW55IGVycm9yIHdpbGwgbmV2ZXIgYmUKIyBjb3JyZWN0ZWQuICBUbyBiZSBtb3Jl
IGNvbnNlcnZhdGl2ZSwgd2UgZG8gYSBwZXJpb2RpYyBmdWxsLXJlZG8gb2YgdGhlCiMgYmFja3Vw
IHJlZmVyZW5jZSBjb3VudHMgKGNhbGxlZCBhbiAiZnNjayIpLiAgJENvbmZ7UmVmQ250RnNja30g
Y29udHJvbHMKIyBob3cgb2Z0ZW4gdGhpcyBpcyBkb25lOgojCiMgICAwOiBubyBhZGRpdGlvbmFs
IGZzY2sKIyAgIDE6IGRvIGFuIGZzY2sgb24gdGhlIGxhc3QgYmFja3VwIGlmIGl0IGlzIGZyb20g
YSBmdWxsIGJhY2t1cAojICAgMjogZG8gYW4gZnNjayBvbiB0aGUgbGFzdCB0d28gYmFja3VwcyBh
bHdheXMKIyAgIDM6IGRvIGEgZnVsbCBmc2NrIG9uIGFsbCB0aGUgYmFja3VwcwojCiMgJENvbmZ7
UmVmQ250RnNja30gPSAxIGlzIHRoZSByZWNvbW1lbmRlZCBzZXR0aW5nLgojCiRDb25me1JlZkNu
dEZzY2t9ID0gMTsKCiMKIyBNYXhpbXVtIG51bWJlciBvZiBsb2cgZmlsZXMgd2Uga2VlcCBhcm91
bmQgaW4gbG9nIGRpcmVjdG9yeS4KIyBUaGVzZSBmaWxlcyBhcmUgYWdlZCBuaWdodGx5LiAgQSBz
ZXR0aW5nIG9mIDE0IG1lYW5zIHRoZSBsb2cKIyBkaXJlY3Rvcnkgd2lsbCBjb250YWluIGFib3V0
IDIgd2Vla3Mgb2Ygb2xkIGxvZyBmaWxlcywgaW4KIyBwYXJ0aWN1bGFyIGF0IG1vc3QgdGhlIGZp
bGVzIExPRywgTE9HLjAsIExPRy4xLCAuLi4gTE9HLjEzCiMgKGV4Y2VwdCB0b2RheSdzIExPRywg
dGhlc2UgZmlsZXMgd2lsbCBoYXZlIGEgLnogZXh0ZW5zaW9uIGlmCiMgY29tcHJlc3Npb24gaXMg
b24pLgojCiMgSWYgeW91IGRlY3JlYXNlIHRoaXMgbnVtYmVyIGFmdGVyIEJhY2t1cFBDIGhhcyBi
ZWVuIHJ1bm5pbmcgZm9yIGEKIyB3aGlsZSB5b3Ugd2lsbCBoYXZlIHRvIG1hbnVhbGx5IHJlbW92
ZSB0aGUgb2xkZXIgbG9nIGZpbGVzLgojCiRDb25me01heE9sZExvZ0ZpbGVzfSA9IDE0OwoKIwoj
IEZ1bGwgcGF0aCB0byB0aGUgZGYgY29tbWFuZC4gIFNlY3VyaXR5IGNhdXRpb246IG5vcm1hbCB1
c2VycwojIHNob3VsZCBub3QgYWxsb3dlZCB0byB3cml0ZSB0byB0aGlzIGZpbGUgb3IgZGlyZWN0
b3J5LgojCiRDb25me0RmUGF0aH0gPSAnL2Jpbi9kZic7CgojCiMgQ29tbWFuZCB0byBydW4gZGYu
ICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3Vic3RpdHV0ZWQgYXQgcnVuLXRpbWU6CiMK
IyAgICRkZlBhdGggICAgICBwYXRoIHRvIGRmICgkQ29uZntEZlBhdGh9KQojICAgJHRvcERpciAg
ICAgIHRvcC1sZXZlbCBCYWNrdXBQQyBkYXRhIGRpcmVjdG9yeQojCiRDb25me0RmQ21kfSA9ICck
ZGZQYXRoICR0b3BEaXInOwoKIwojIENvbW1hbmQgdG8gcnVuIGRmIHRvIGdldCBpbm9kZSAlIHVz
YWdlLiAgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHN1YnN0aXR1dGVkCiMgYXQgcnVuLXRp
bWU6CiMKIyAgICRkZlBhdGggICAgICBwYXRoIHRvIGRmICgkQ29uZntEZlBhdGh9KQojICAgJHRv
cERpciAgICAgIHRvcC1sZXZlbCBCYWNrdXBQQyBkYXRhIGRpcmVjdG9yeQojCiMgTm90ZTogYWxs
IENtZHMgYXJlIGV4ZWN1dGVkIGRpcmVjdGx5IHdpdGhvdXQgYSBzaGVsbCwgc28gdGhlIHByb2cg
bmFtZQojIG5lZWRzIHRvIGJlIGEgZnVsbCBwYXRoIGFuZCB5b3UgY2FuJ3QgaW5jbHVkZSBzaGVs
bCBzeW50YXggbGlrZQojIHJlZGlyZWN0aW9uIGFuZCBwaXBlczsgcHV0IHRoYXQgaW4gYSBzY3Jp
cHQgaWYgeW91IG5lZWQgaXQuCiMKJENvbmZ7RGZJbm9kZVVzYWdlQ21kfSA9ICckZGZQYXRoIC1p
ICR0b3BEaXInOwoKIwojIEZ1bGwgcGF0aCB0byB2YXJpb3VzIGNvbW1hbmRzIGZvciBhcmNoaXZp
bmcKIwokQ29uZntTcGxpdFBhdGh9ID0gJy91c3IvYmluL3NwbGl0JzsKJENvbmZ7UGFyUGF0aH0g
PSB1bmRlZjsKJENvbmZ7Q2F0UGF0aH0gPSAnL2Jpbi9jYXQnOwokQ29uZntHemlwUGF0aH0gPSAn
L2Jpbi9nemlwJzsKJENvbmZ7QnppcDJQYXRofSA9ICcvYmluL2J6aXAyJzsKCiMKIyBNYXhpbXVt
IHRocmVzaG9sZCBmb3IgZGlzayB1dGlsaXphdGlvbiBvbiB0aGUgX19UT1BESVJfXyBmaWxlc3lz
dGVtLgojIElmIHRoZSBvdXRwdXQgZnJvbSAkQ29uZntEZlBhdGh9IHJlcG9ydHMgYSBwZXJjZW50
YWdlIGxhcmdlciB0aGFuCiMgdGhpcyBudW1iZXIgdGhlbiBubyBuZXcgcmVndWxhcmx5IHNjaGVk
dWxlZCBiYWNrdXBzIHdpbGwgYmUgcnVuLgojIEhvd2V2ZXIsIHVzZXIgcmVxdWVzdGVkIGJhY2t1
cHMgKHdoaWNoIGFyZSB1c3VhbGx5IGluY3JlbWVudGFsIGFuZAojIHRlbmQgdG8gYmUgc21hbGwp
IGFyZSBzdGlsbCBwZXJmb3JtZWQsIGluZGVwZW5kZW50IG9mIGRpc2sgdXNhZ2UuCiMgQWxzbywg
Y3VycmVudGx5IHJ1bm5pbmcgYmFja3VwcyB3aWxsIG5vdCBiZSB0ZXJtaW5hdGVkIHdoZW4gdGhl
IGRpc2sKIyB1c2FnZSBleGNlZWRzIHRoaXMgbnVtYmVyLgojCiRDb25me0RmTWF4VXNhZ2VQY3R9
ID0gOTk7CgojCiMgTWF4aW11bSB0aHJlc2hvbGQgZm9yIGlub2RlIHV0aWxpemF0aW9uIG9uIHRo
ZSAvdmFyL2xpYi9iYWNrdXBwYyBmaWxlc3lzdGVtLgojIElmIHRoZSBvdXRwdXQgZnJvbSAkQ29u
ZntEZklub2RlVXNhZ2VDbWR9IHJlcG9ydHMgYSBwZXJjZW50YWdlIGxhcmdlcgojIHRoYW4gdGhp
cyBudW1iZXIgdGhlbiBubyBuZXcgcmVndWxhcmx5IHNjaGVkdWxlZCBiYWNrdXBzIHdpbGwgYmUg
cnVuLgojIEhvd2V2ZXIsIHVzZXIgcmVxdWVzdGVkIGJhY2t1cHMgKHdoaWNoIGFyZSB1c3VhbGx5
IGluY3JlbWVudGFsIGFuZAojIHRlbmQgdG8gYmUgc21hbGwpIGFyZSBzdGlsbCBwZXJmb3JtZWQs
IGluZGVwZW5kZW50IG9mIGRpc2sgdXNhZ2UuCiMgQWxzbywgY3VycmVudGx5IHJ1bm5pbmcgYmFj
a3VwcyB3aWxsIG5vdCBiZSB0ZXJtaW5hdGVkIHdoZW4gdGhlIGRpc2sKIyBpbm9kZSB1c2FnZSBl
eGNlZWRzIHRoaXMgbnVtYmVyLgojCiRDb25me0RmTWF4SW5vZGVVc2FnZVBjdH0gPSA5NTsKCgoj
CiMgTGlzdCBvZiBESENQIGFkZHJlc3MgcmFuZ2VzIHdlIHNlYXJjaCBsb29raW5nIGZvciBQQ3Mg
dG8gYmFja3VwLgojIFRoaXMgaXMgYW4gYXJyYXkgb2YgaGFzaGVzIGZvciBlYWNoIGNsYXNzIEMg
YWRkcmVzcyByYW5nZS4KIyBUaGlzIGlzIG9ubHkgbmVlZGVkIGlmIGhvc3RzIGluIHRoZSBjb25m
L2hvc3RzIGZpbGUgaGF2ZSB0aGUKIyBkaGNwIGZsYWcgc2V0LgojCiMgRXhhbXBsZXM6CiMgICAg
IyB0byBzcGVjaWZ5IDE5Mi4xMC4xMC4yMCB0byAxOTIuMTAuMTAuMjUwIGFzIHRoZSBESENQIGFk
ZHJlc3MgcG9vbAojICAgICRDb25me0RIQ1BBZGRyZXNzUmFuZ2VzfSA9IFsKIyAgICAgICAgewoj
ICAgICAgICAgICAgaXBBZGRyQmFzZSA9PiAnMTkyLjEwLjEwJywKIyAgICAgICAgICAgIGZpcnN0
ID0+IDIwLAojICAgICAgICAgICAgbGFzdCAgPT4gMjUwLAojICAgICAgICB9LAojICAgIF07CiMg
ICAgIyB0byBzcGVjaWZ5IHR3byBwb29scyAoMTkyLjEwLjEwLjIwLTI1MCBhbmQgMTkyLjEwLjEx
LjEwLTUwKQojICAgICRDb25me0RIQ1BBZGRyZXNzUmFuZ2VzfSA9IFsKIyAgICAgICAgewojICAg
ICAgICAgICAgaXBBZGRyQmFzZSA9PiAnMTkyLjEwLjEwJywKIyAgICAgICAgICAgIGZpcnN0ID0+
IDIwLAojICAgICAgICAgICAgbGFzdCAgPT4gMjUwLAojICAgICAgICB9LAojICAgICAgICB7CiMg
ICAgICAgICAgICBpcEFkZHJCYXNlID0+ICcxOTIuMTAuMTEnLAojICAgICAgICAgICAgZmlyc3Qg
PT4gMTAsCiMgICAgICAgICAgICBsYXN0ICA9PiA1MCwKIyAgICAgICAgfSwKIyAgICBdOwojCiRD
b25me0RIQ1BBZGRyZXNzUmFuZ2VzfSA9IFtdOwoKIwojIFRoZSBCYWNrdXBQQyB1c2VyLgojCiRD
b25me0JhY2t1cFBDVXNlcn0gPSAnYmFja3VwcGMnOwoKIwojIEltcG9ydGFudCBpbnN0YWxsYXRp
b24gZGlyZWN0b3JpZXM6CiMKIyAgIFRvcERpciAgICAgLSB3aGVyZSBhbGwgdGhlIGJhY2t1cCBk
YXRhIGlzIHN0b3JlZAojICAgQ29uZkRpciAgICAtIHdoZXJlIHRoZSBtYWluIGNvbmZpZyBhbmQg
aG9zdHMgZmlsZXMgcmVzaWRlcwojICAgTG9nRGlyICAgICAtIHdoZXJlIGxvZyBmaWxlcyBhbmQg
b3RoZXIgdHJhbnNpZW50IGluZm9ybWF0aW9uCiMgICBSdW5EaXIgICAgIC0gd2hlcmUgcGlkIGFu
ZCBzb2NrIGZpbGVzIHJlc2lkZQojICAgSW5zdGFsbERpciAtIHdoZXJlIHRoZSBiaW4sIGxpYiBh
bmQgZG9jIGluc3RhbGxhdGlvbiBkaXJzIHJlc2lkZS4KIyAgICAgICAgICAgICAgICBOb3RlOiB5
b3UgY2Fubm90IGNoYW5nZSB0aGlzIHZhbHVlIHNpbmNlIGFsbCB0aGUKIyAgICAgICAgICAgICAg
ICBwZXJsIHNjcmlwdHMgaW5jbHVkZSB0aGlzIHBhdGguICBZb3UgbXVzdCByZWluc3RhbGwKIyAg
ICAgICAgICAgICAgICB3aXRoIGNvbmZpZ3VyZS5wbCB0byBjaGFuZ2UgSW5zdGFsbERpci4KIyAg
IENnaURpciAgICAgLSBBcGFjaGUgQ0dJIGRpcmVjdG9yeSBmb3IgQmFja3VwUENfQWRtaW4KIwok
Q29uZntUb3BEaXJ9ID0gJy92YXIvbGliL2JhY2t1cHBjJzsKJENvbmZ7Q29uZkRpcn0gPSAnL2V0
Yy9iYWNrdXBwYyc7CiRDb25me0xvZ0Rpcn0gPSAnL3Zhci9sb2cvYmFja3VwcGMnOwokQ29uZntS
dW5EaXJ9ID0gJy9ydW4vYmFja3VwcGMnOwokQ29uZntJbnN0YWxsRGlyfSA9ICcvdXNyL3NoYXJl
L2JhY2t1cHBjJzsKJENvbmZ7Q2dpRGlyfSA9ICcvdXNyL3NoYXJlL2JhY2t1cHBjL2NnaS1iaW4n
OwoKIwojIFdoZXRoZXIgQmFja3VwUEMgYW5kIHRoZSBDR0kgc2NyaXB0IEJhY2t1cFBDX0FkbWlu
IHZlcmlmeSB0aGF0IHRoZXkKIyBhcmUgcmVhbGx5IHJ1bm5pbmcgYXMgdXNlciAkQ29uZntCYWNr
dXBQQ1VzZXJ9LiAgSWYgdGhpcyBmbGFnIGlzIHNldAojIGFuZCB0aGUgZWZmZWN0aXZlIHVzZXIg
aWQgKGV1aWQpIGRpZmZlcnMgZnJvbSAkQ29uZntCYWNrdXBQQ1VzZXJ9CiMgdGhlbiBib3RoIHNj
cmlwdHMgZXhpdCB3aXRoIGFuIGVycm9yLiAgVGhpcyBjYXRjaGVzIGNhc2VzIHdoZXJlCiMgQmFj
a3VwUEMgbWlnaHQgYmUgYWNjaWRlbnRseSBzdGFydGVkIGFzIHJvb3Qgb3IgdGhlIHdyb25nIHVz
ZXIsCiMgb3IgaWYgdGhlIENHSSBzY3JpcHQgaXMgbm90IGluc3RhbGxlZCBjb3JyZWN0bHkuCiMK
JENvbmZ7QmFja3VwUENVc2VyVmVyaWZ5fSA9ICcxJzsKCiMKIyBNYXhpbXVtIG51bWJlciBvZiBo
YXJkbGlua3Mgc3VwcG9ydGVkIGJ5IHRoZSAkVG9wRGlyIGZpbGUgc3lzdGVtCiMgdGhhdCBCYWNr
dXBQQyB1c2VzLiAgTW9zdCBsaW51eCBvciB1bml4IGZpbGUgc3lzdGVtcyBzaG91bGQgc3VwcG9y
dAojIGF0IGxlYXN0IDMyMDAwIGhhcmRsaW5rcyBwZXIgZmlsZSwgb3IgNjQwMDAgaW4gb3RoZXIg
Y2FzZXMuICBJZiBhIHBvb2wKIyBmaWxlIGFscmVhZHkgaGFzIHRoaXMgbnVtYmVyIG9mIGhhcmRs
aW5rcywgYSBuZXcgcG9vbCBmaWxlIGlzIGNyZWF0ZWQKIyBzbyB0aGF0IG5ldyBoYXJkbGlua3Mg
Y2FuIGJlIGFjY29tbW9kYXRlZC4gIFRoaXMgbGltaXQgd2lsbCBvbmx5CiMgYmUgaGl0IGlmIGFu
IGlkZW50aWNhbCBmaWxlIGFwcGVhcnMgYXQgbGVhc3QgdGhpcyBudW1iZXIgb2YgdGltZXMKIyBh
Y3Jvc3MgYWxsIHRoZSBiYWNrdXBzLgojCiRDb25me0hhcmRMaW5rTWF4fSA9IDMxOTk5OwoKIwoj
IEFkdmFuY2VkIG9wdGlvbiBmb3IgYXNraW5nIEJhY2t1cFBDIHRvIGxvYWQgYWRkaXRpb25hbCBw
ZXJsIG1vZHVsZXMuCiMgQ2FuIGJlIGEgbGlzdCAoYXJyYXkgcmVmKSBvZiBtb2R1bGUgbmFtZXMg
dG8gbG9hZCBhdCBzdGFydHVwLgojCiRDb25me1BlcmxNb2R1bGVMb2FkfSA9IHVuZGVmOwoKIwoj
IFBhdGggdG8gaW5pdC5kIHNjcmlwdCBhbmQgY29tbWFuZCB0byB1c2UgdGhhdCBzY3JpcHQgdG8g
c3RhcnQgdGhlCiMgc2VydmVyIGZyb20gdGhlIENHSSBpbnRlcmZhY2UuICBUaGUgZm9sbG93aW5n
IHZhcmlhYmxlcyBhcmUgc3Vic3RpdHV0ZWQKIyBhdCBydW4tdGltZToKIwojICAgJHNzaFBhdGgg
ICAgICAgICAgIHBhdGggdG8gc3NoICgkQ29uZntTc2hQYXRofSkKIyAgICRzZXJ2ZXJIb3N0ICAg
ICAgICBzYW1lIGFzICRDb25me1NlcnZlckhvc3R9CiMgICAkc2VydmVySW5pdGRQYXRoICAgcGF0
aCB0byBpbml0LmQgc2NyaXB0ICgkQ29uZntTZXJ2ZXJJbml0ZFBhdGh9KQojCiMgRXhhbXBsZToK
IwojICRDb25me1NlcnZlckluaXRkUGF0aH0gICAgID0gJy9ldGMvaW5pdC5kL2JhY2t1cHBjJzsK
IyAkQ29uZntTZXJ2ZXJJbml0ZFN0YXJ0Q21kfSA9ICckc3NoUGF0aCAtcSAteCAtbCByb290ICRz
ZXJ2ZXJIb3N0JwojICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAkc2VydmVySW5pdGRQ
YXRoIHN0YXJ0JwojICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyA8IC9kZXYvbnVsbCA+
JiAvZGV2L251bGwnOwojCiRDb25me1NlcnZlckluaXRkUGF0aH0gPSAnL2V0Yy9pbml0LmQnOwok
Q29uZntTZXJ2ZXJJbml0ZFN0YXJ0Q21kfSA9ICdiYWNrdXBwYyc7CgoKIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjCiMgV2hhdCB0byBiYWNrdXAgYW5kIHdoZW4gdG8gZG8gaXQKIyAoY2FuIGJlIG92ZXJyaWRk
ZW4gaW4gdGhlIHBlci1QQyBjb25maWcucGwpCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojCiMgTWluaW11
bSBwZXJpb2QgaW4gZGF5cyBiZXR3ZWVuIGZ1bGwgYmFja3Vwcy4gQSBmdWxsIGR1bXAgd2lsbCBv
bmx5IGJlCiMgZG9uZSBpZiBhdCBsZWFzdCB0aGlzIG11Y2ggdGltZSBoYXMgZWxhcHNlZCBzaW5j
ZSB0aGUgbGFzdCBmdWxsIGR1bXAsCiMgYW5kIGF0IGxlYXN0ICRDb25me0luY3JQZXJpb2R9IGRh
eXMgaGFzIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QKIyBzdWNjZXNzZnVsIGR1bXAuCiMKIyBUeXBp
Y2FsbHkgdGhpcyBpcyBzZXQgc2xpZ2h0bHkgbGVzcyB0aGFuIGFuIGludGVnZXIgbnVtYmVyIG9m
IGRheXMuIFRoZQojIHRpbWUgdGFrZW4gZm9yIHRoZSBiYWNrdXAsIHBsdXMgdGhlIGdyYW51bGFy
aXR5IG9mICRDb25me1dha2V1cFNjaGVkdWxlfQojIHdpbGwgbWFrZSB0aGUgYWN0dWFsIGJhY2t1
cCBpbnRlcnZhbCBhIGJpdCBsb25nZXIuCiMKJENvbmZ7RnVsbFBlcmlvZH0gPSAnNi45Nyc7Cgoj
CiMgTWluaW11bSBwZXJpb2QgaW4gZGF5cyBiZXR3ZWVuIGluY3JlbWVudGFsIGJhY2t1cHMgKGEg
dXNlciByZXF1ZXN0ZWQKIyBpbmNyZW1lbnRhbCBiYWNrdXAgd2lsbCBiZSBkb25lIGFueXRpbWUg
b24gZGVtYW5kKS4KIwojIFR5cGljYWxseSB0aGlzIGlzIHNldCBzbGlnaHRseSBsZXNzIHRoYW4g
YW4gaW50ZWdlciBudW1iZXIgb2YgZGF5cy4gVGhlCiMgdGltZSB0YWtlbiBmb3IgdGhlIGJhY2t1
cCwgcGx1cyB0aGUgZ3JhbnVsYXJpdHkgb2YgJENvbmZ7V2FrZXVwU2NoZWR1bGV9CiMgd2lsbCBt
YWtlIHRoZSBhY3R1YWwgYmFja3VwIGludGVydmFsIGEgYml0IGxvbmdlci4KIwokQ29uZntJbmNy
UGVyaW9kfSA9ICcwLjk3JzsKCiMKIyBOdW1iZXIgb2YgZnVsbCBiYWNrdXBzIHRvIGtlZXAuICBN
dXN0IGJlID49IDEuCiMKIyBJbiB0aGUgc3RlYWR5IHN0YXRlLCBlYWNoIHRpbWUgYSBmdWxsIGJh
Y2t1cCBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5CiMgdGhlIG9sZGVzdCBvbmUgaXMgcmVtb3ZlZC4g
IElmIHRoaXMgbnVtYmVyIGlzIGRlY3JlYXNlZCwgdGhlCiMgZXh0cmEgb2xkIGJhY2t1cHMgd2ls
bCBiZSByZW1vdmVkLgojCiMgSWYgZmlsbGluZyBvZiBpbmNyZW1lbnRhbCBkdW1wcyBpcyBvZmYg
dGhlIG9sZGVzdCBiYWNrdXAgYWx3YXlzCiMgaGFzIHRvIGJlIGEgZnVsbCAoaWU6IGZpbGxlZCkg
ZHVtcC4gIFRoaXMgbWlnaHQgbWVhbiBvbmUgb3IgdHdvCiMgZXh0cmEgZnVsbCBkdW1wcyBhcmUg
a2VwdCB1bnRpbCB0aGUgb2xkZXN0IGluY3JlbWVudGFsIGJhY2t1cHMgZXhwaXJlLgojCiMgRXhw
b25lbnRpYWwgYmFja3VwIGV4cGlyeSBpcyBhbHNvIHN1cHBvcnRlZC4gIFRoaXMgYWxsb3dzIHlv
dSB0byBzcGVjaWZ5OgojCiMgICAtIG51bSBmdWxscyB0byBrZWVwIGF0IGludGVydmFscyBvZiAx
ICogJENvbmZ7RnVsbFBlcmlvZH0sIGZvbGxvd2VkIGJ5CiMgICAtIG51bSBmdWxscyB0byBrZWVw
IGF0IGludGVydmFscyBvZiAyICogJENvbmZ7RnVsbFBlcmlvZH0sCiMgICAtIG51bSBmdWxscyB0
byBrZWVwIGF0IGludGVydmFscyBvZiA0ICogJENvbmZ7RnVsbFBlcmlvZH0sCiMgICAtIG51bSBm
dWxscyB0byBrZWVwIGF0IGludGVydmFscyBvZiA4ICogJENvbmZ7RnVsbFBlcmlvZH0sCiMgICAt
IG51bSBmdWxscyB0byBrZWVwIGF0IGludGVydmFscyBvZiAxNiAqICRDb25me0Z1bGxQZXJpb2R9
LAojCiMgYW5kIHNvIG9uLiAgVGhpcyB3b3JrcyBieSBkZWxldGluZyBldmVyeSBvdGhlciBmdWxs
IGFzIGVhY2ggZXhwaXJ5CiMgYm91bmRhcnkgaXMgY3Jvc3NlZC4KIwojIEV4cG9uZW50aWFsIGV4
cGlyeSBpcyBzcGVjaWZpZWQgdXNpbmcgYW4gYXJyYXkgZm9yICRDb25me0Z1bGxLZWVwQ250fToK
IwojICAgJENvbmZ7RnVsbEtlZXBDbnR9ID0gWzQsIDIsIDNdOwojCiMgRW50cnkgI24gc3BlY2lm
aWVzIGhvdyBtYW55IGZ1bGxzIHRvIGtlZXAgYXQgYW4gaW50ZXJ2YWwgb2YKIyAyXm4gKiAkQ29u
ZntGdWxsUGVyaW9kfSAoaWU6IDEsIDIsIDQsIDgsIDE2LCAzMiwgLi4uKS4KIwojIFRoZSBleGFt
cGxlIGFib3ZlIHNwZWNpZmllcyBrZWVwaW5nIDQgb2YgdGhlIG1vc3QgcmVjZW50IGZ1bGwgYmFj
a3VwcwojICgxIHdlZWsgaW50ZXJ2YWwpIHR3byBmdWxsIGJhY2t1cHMgYXQgMiB3ZWVrIGludGVy
dmFscywgYW5kIDMgZnVsbAojIGJhY2t1cHMgYXQgNCB3ZWVrIGludGVydmFscywgZWc6CiMKIyAg
ICBmdWxsIDAgMTkgd2Vla3Mgb2xkICAgXAojICAgIGZ1bGwgMSAxNSB3ZWVrcyBvbGQgICAgPi0t
LSAgMyBiYWNrdXBzIGF0IDQgKiAkQ29uZntGdWxsUGVyaW9kfQojICAgIGZ1bGwgMiAxMSB3ZWVr
cyBvbGQgICAvIAojICAgIGZ1bGwgMyAgNyB3ZWVrcyBvbGQgICBcX19fXyAgMiBiYWNrdXBzIGF0
IDIgKiAkQ29uZntGdWxsUGVyaW9kfQojICAgIGZ1bGwgNCAgNSB3ZWVrcyBvbGQgICAvCiMgICAg
ZnVsbCA1ICAzIHdlZWtzIG9sZCAgIFwKIyAgICBmdWxsIDYgIDIgd2Vla3Mgb2xkICAgIFxfX18g
IDQgYmFja3VwcyBhdCAxICogJENvbmZ7RnVsbFBlcmlvZH0KIyAgICBmdWxsIDcgIDEgd2VlayBv
bGQgICAgIC8KIyAgICBmdWxsIDggIGN1cnJlbnQgICAgICAgLwojCiMgT24gYSBnaXZlbiB3ZWVr
IHRoZSBzcGFjaW5nIG1pZ2h0IGJlIGxlc3MgdGhhbiBzaG93biBhcyBlYWNoIGJhY2t1cAojIGFn
ZXMgdGhyb3VnaCBlYWNoIGV4cGlyeSBwZXJpb2QuICBGb3IgZXhhbXBsZSwgb25lIHdlZWsgbGF0
ZXIsIGEKIyBuZXcgZnVsbCBpcyBjb21wbGV0ZWQgYW5kIHRoZSBvbGRlc3QgaXMgZGVsZXRlZCwg
Z2l2aW5nOgojCiMgICAgZnVsbCAwIDE2IHdlZWtzIG9sZCAgIFwKIyAgICBmdWxsIDEgMTIgd2Vl
a3Mgb2xkICAgID4tLS0gIDMgYmFja3VwcyBhdCA0ICogJENvbmZ7RnVsbFBlcmlvZH0KIyAgICBm
dWxsIDIgIDggd2Vla3Mgb2xkICAgLyAKIyAgICBmdWxsIDMgIDYgd2Vla3Mgb2xkICAgXF9fX18g
IDIgYmFja3VwcyBhdCAyICogJENvbmZ7RnVsbFBlcmlvZH0KIyAgICBmdWxsIDQgIDQgd2Vla3Mg
b2xkICAgLwojICAgIGZ1bGwgNSAgMyB3ZWVrcyBvbGQgICBcCiMgICAgZnVsbCA2ICAyIHdlZWtz
IG9sZCAgICBcX19fICA0IGJhY2t1cHMgYXQgMSAqICRDb25me0Z1bGxQZXJpb2R9CiMgICAgZnVs
bCA3ICAxIHdlZWsgb2xkICAgICAvCiMgICAgZnVsbCA4ICBjdXJyZW50ICAgICAgIC8KIwojIFlv
dSBjYW4gc3BlY2lmeSAwIGFzIGEgY291bnQgKGV4Y2VwdCBpbiB0aGUgZmlyc3QgZW50cnkpLCBh
bmQgdGhlCiMgYXJyYXkgY2FuIGJlIGFzIGxvbmcgYXMgeW91IHdpc2guICBGb3IgZXhhbXBsZToK
IwojICAgJENvbmZ7RnVsbEtlZXBDbnR9ID0gWzQsIDAsIDQsIDAsIDAsIDJdOwojCiMgVGhpcyB3
aWxsIGtlZXAgMTAgZnVsbCBkdW1wcywgNCBtb3N0IHJlY2VudCBhdCAxICogJENvbmZ7RnVsbFBl
cmlvZH0sCiMgZm9sbG93ZWQgYnkgNCBhdCBhbiBpbnRlcnZhbCBvZiA0ICogJENvbmZ7RnVsbFBl
cmlvZH0gKGFwcHJveCAxIG1vbnRoCiMgYXBhcnQpLCBhbmQgdGhlbiAyIGF0IGFuIGludGVydmFs
IG9mIDMyICogJENvbmZ7RnVsbFBlcmlvZH0gKGFwcHJveAojIDctOCBtb250aHMgYXBhcnQpLgoj
CiMgRXhhbXBsZTogdGhlc2UgdHdvIHNldHRpbmdzIGFyZSBlcXVpdmFsZW50IGFuZCBib3RoIGtl
ZXAganVzdAojIHRoZSBmb3VyIG1vc3QgcmVjZW50IGZ1bGwgZHVtcHM6CiMKIyAgICAkQ29uZntG
dWxsS2VlcENudH0gPSA0OwojICAgICRDb25me0Z1bGxLZWVwQ250fSA9IFs0XTsKIwokQ29uZntG
dWxsS2VlcENudH0gPSBbCiAgNCwKICAwLAogIDEzCl07CgojCiMgVmVyeSBvbGQgZnVsbCBiYWNr
dXBzIGFyZSByZW1vdmVkIGFmdGVyICRDb25me0Z1bGxBZ2VNYXh9IGRheXMuICBIb3dldmVyLAoj
IHdlIGtlZXAgYXQgbGVhc3QgJENvbmZ7RnVsbEtlZXBDbnRNaW59IGZ1bGwgYmFja3VwcyBubyBt
YXR0ZXIgaG93IG9sZAojIHRoZXkgYXJlLgojCiMgTm90ZSB0aGF0ICRDb25me0Z1bGxBZ2VNYXh9
IHdpbGwgYmUgaW5jcmVhc2VkIHRvICRDb25me0Z1bGxLZWVwQ250fQojIHRpbWVzICRDb25me0Z1
bGxQZXJpb2R9IGlmICRDb25me0Z1bGxLZWVwQ250fSBzcGVjaWZpZXMgZW5vdWdoCiMgZnVsbCBi
YWNrdXBzIHRvIGV4Y2VlZCAkQ29uZntGdWxsQWdlTWF4fS4KIwokQ29uZntGdWxsS2VlcENudE1p
bn0gPSAxNzsKJENvbmZ7RnVsbEFnZU1heH0gPSAzOTA7CgojCiMgTnVtYmVyIG9mIGluY3JlbWVu
dGFsIGJhY2t1cHMgdG8ga2VlcC4gIE11c3QgYmUgPj0gMS4KIwojIEluIHRoZSBzdGVhZHkgc3Rh
dGUsIGVhY2ggdGltZSBhbiBpbmNyIGJhY2t1cCBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5CiMgdGhl
IG9sZGVzdCBvbmUgaXMgcmVtb3ZlZC4gIElmIHRoaXMgbnVtYmVyIGlzIGRlY3JlYXNlZCwgdGhl
CiMgZXh0cmEgb2xkIGJhY2t1cHMgd2lsbCBiZSByZW1vdmVkLgojCiRDb25me0luY3JLZWVwQ250
fSA9IDEyOwoKIwojIFZlcnkgb2xkIGluY3JlbWVudGFsIGJhY2t1cHMgYXJlIHJlbW92ZWQgYWZ0
ZXIgJENvbmZ7SW5jckFnZU1heH0gZGF5cy4KIyBIb3dldmVyLCB3ZSBrZWVwIGF0IGxlYXN0ICRD
b25me0luY3JLZWVwQ250TWlufSBpbmNyZW1lbnRhbCBiYWNrdXBzIG5vCiMgbWF0dGVyIGhvdyBv
bGQgdGhleSBhcmUuCiMKJENvbmZ7SW5jcktlZXBDbnRNaW59ID0gMTsKJENvbmZ7SW5jckFnZU1h
eH0gPSAzMDsKCiMKIyBEaXNhYmxlIGFsbCBmdWxsIGFuZCBpbmNyZW1lbnRhbCBiYWNrdXBzLiAg
VGhlc2Ugc2V0dGluZ3MgYXJlCiMgdXNlZnVsIGZvciBhIGNsaWVudCB0aGF0IGlzIG5vIGxvbmdl
ciBiZWluZyBiYWNrZWQgdXAKIyAoZWc6IGEgcmV0aXJlZCBtYWNoaW5lKSwgYnV0IHlvdSB3aXNo
IHRvIGtlZXAgdGhlIGxhc3QKIyBiYWNrdXBzIGF2YWlsYWJsZSBmb3IgYnJvd3Npbmcgb3IgcmVz
dG9yaW5nIHRvIG90aGVyIG1hY2hpbmVzLgojCiMgVGhlcmUgYXJlIHRocmVlIHZhbHVlcyBmb3Ig
JENvbmZ7QmFja3Vwc0Rpc2FibGV9OgojCiMgICAwICAgIEJhY2t1cHMgYXJlIGVuYWJsZWQuCiMK
IyAgIDEgICAgRG9uJ3QgZG8gYW55IHJlZ3VsYXIgYmFja3VwcyBvbiB0aGlzIGNsaWVudC4gIE1h
bnVhbGx5CiMgICAgICAgIHJlcXVlc3RlZCBiYWNrdXBzICh2aWEgdGhlIENHSSBpbnRlcmZhY2Up
IHdpbGwgc3RpbGwgb2NjdXIuCiMKIyAgIDIgICAgRG9uJ3QgZG8gYW55IGJhY2t1cHMgb24gdGhp
cyBjbGllbnQuICBNYW51YWxseSByZXF1ZXN0ZWQKIyAgICAgICAgYmFja3VwcyAodmlhIHRoZSBD
R0kgaW50ZXJmYWNlKSB3aWxsIGJlIGlnbm9yZWQuCiMKIyBJbiB2ZXJzaW9ucyBwcmlvciB0byAz
LjAgQmFja3VwcyB3ZXJlIGRpc2FibGVkIGJ5IHNldHRpbmcKIyAkQ29uZntGdWxsUGVyaW9kfSB0
byAtMSBvciAtMi4KIwokQ29uZntCYWNrdXBzRGlzYWJsZX0gPSAwOwoKIwojIE51bWJlciBvZiBy
ZXN0b3JlIGxvZ3MgdG8ga2VlcC4gIEJhY2t1cFBDIHJlbWVtYmVycyBpbmZvcm1hdGlvbiBhYm91
dAojIGVhY2ggcmVzdG9yZSByZXF1ZXN0LiAgVGhpcyBudW1iZXIgcGVyIGNsaWVudCB3aWxsIGJl
IGtlcHQgYXJvdW5kIGJlZm9yZQojIHRoZSBvbGRlc3Qgb25lcyBhcmUgcHJ1bmVkLgojCiMgTm90
ZTogZmlsZXMvZGlycyBkZWxpdmVyZWQgdmlhIFppcCBvciBUYXIgZG93bmxvYWRzIGRvbid0IGNv
dW50IGFzCiMgcmVzdG9yZXMuICBPbmx5IHRoZSBmaXJzdCByZXN0b3JlIG9wdGlvbiAod2hlcmUg
dGhlIGZpbGVzIGFuZCBkaXJzCiMgYXJlIHdyaXR0ZW4gdG8gdGhlIGhvc3QpIGNvdW50IGFzIHJl
c3RvcmVzIHRoYXQgYXJlIGxvZ2dlZC4KIwokQ29uZntSZXN0b3JlSW5mb0tlZXBDbnR9ID0gMzA7
CgojCiMgTnVtYmVyIG9mIGFyY2hpdmUgbG9ncyB0byBrZWVwLiAgQmFja3VwUEMgcmVtZW1iZXJz
IGluZm9ybWF0aW9uCiMgYWJvdXQgZWFjaCBhcmNoaXZlIHJlcXVlc3QuICBUaGlzIG51bWJlciBw
ZXIgYXJjaGl2ZSBjbGllbnQgd2lsbAojIGJlIGtlcHQgYXJvdW5kIGJlZm9yZSB0aGUgb2xkZXN0
IG9uZXMgYXJlIHBydW5lZC4KIwokQ29uZntBcmNoaXZlSW5mb0tlZXBDbnR9ID0gMTA7CgojCiMg
TGlzdCBvZiBkaXJlY3RvcmllcyBvciBmaWxlcyB0byBiYWNrdXAuICBJZiB0aGlzIGlzIGRlZmlu
ZWQsIG9ubHkgdGhlc2UKIyBkaXJlY3RvcmllcyBvciBmaWxlcyB3aWxsIGJlIGJhY2tlZCB1cC4K
IwojIEZvciBTbWIsIG9ubHkgb25lIG9mICRDb25me0JhY2t1cEZpbGVzRXhjbHVkZX0gYW5kICRD
b25me0JhY2t1cEZpbGVzT25seX0KIyBjYW4gYmUgc3BlY2lmaWVkIHBlciBzaGFyZS4gSWYgYm90
aCBhcmUgc2V0IGZvciBhIHBhcnRpY3VsYXIgc2hhcmUsIHRoZW4KIyAkQ29uZntCYWNrdXBGaWxl
c09ubHl9IHRha2VzIHByZWNlZGVuY2UgYW5kICRDb25me0JhY2t1cEZpbGVzRXhjbHVkZX0KIyBp
cyBpZ25vcmVkLgojCiMgVGhpcyBjYW4gYmUgc2V0IHRvIGEgc3RyaW5nLCBhbiBhcnJheSBvZiBz
dHJpbmdzLCBvciwgaW4gdGhlIGNhc2UKIyBvZiBtdWx0aXBsZSBzaGFyZXMsIGEgaGFzaCBvZiBz
dHJpbmdzIG9yIGFycmF5cy4gIEEgaGFzaCBpcyB1c2VkCiMgdG8gZ2l2ZSBhIGxpc3Qgb2YgZGly
ZWN0b3JpZXMgb3IgZmlsZXMgdG8gYmFja3VwIGZvciBlYWNoIHNoYXJlCiMgKHRoZSBzaGFyZSBu
YW1lIGlzIHRoZSBrZXkpLiAgSWYgdGhpcyBpcyBzZXQgdG8ganVzdCBhIHN0cmluZyBvcgojIGFy
cmF5LCBhbmQgJENvbmZ7U21iU2hhcmVOYW1lfSBjb250YWlucyBtdWx0aXBsZSBzaGFyZSBuYW1l
cywgdGhlbgojIHRoZSBzZXR0aW5nIGlzIGFzc3VtZWQgdG8gYXBwbHkgYWxsIHNoYXJlcy4KIwoj
IElmIGEgaGFzaCBpcyB1c2VkLCBhIHNwZWNpYWwga2V5ICIqIiBtZWFucyBpdCBhcHBsaWVzIHRv
IGFsbAojIHNoYXJlcyB0aGF0IGRvbid0IGhhdmUgYSBzcGVjaWZpYyBlbnRyeS4KIwojIEV4YW1w
bGVzOgojICAgICRDb25me0JhY2t1cEZpbGVzT25seX0gPSAnL215RmlsZXMnOwojICAgICRDb25m
e0JhY2t1cEZpbGVzT25seX0gPSBbJy9teUZpbGVzJ107ICAgICAjIHNhbWUgYXMgZmlyc3QgZXhh
bXBsZQojICAgICRDb25me0JhY2t1cEZpbGVzT25seX0gPSBbJy9teUZpbGVzJywgJy9pbXBvcnRh
bnQnXTsKIyAgICAkQ29uZntCYWNrdXBGaWxlc09ubHl9ID0gewojICAgICAgICdjJyA9PiBbJy9t
eUZpbGVzJywgJy9pbXBvcnRhbnQnXSwgICAgICAjIHRoZXNlIGFyZSBmb3IgJ2MnIHNoYXJlCiMg
ICAgICAgJ2QnID0+IFsnL21vcmVGaWxlcycsICcvYXJjaGl2ZSddLCAgICAgICMgdGhlc2UgYXJl
IGZvciAnZCcgc2hhcmUKIyAgICB9OwojICAgICRDb25me0JhY2t1cEZpbGVzT25seX0gPSB7CiMg
ICAgICAgJ2MnID0+IFsnL215RmlsZXMnLCAnL2ltcG9ydGFudCddLCAgICAgICMgdGhlc2UgYXJl
IGZvciAnYycgc2hhcmUKIyAgICAgICAnKicgPT4gWycvbXlGaWxlcycsICcvaW1wb3J0YW50J10s
ICAgICAgIyB0aGVzZSBhcmUgb3RoZXIgc2hhcmVzCiMgICAgfTsKIwokQ29uZntCYWNrdXBGaWxl
c09ubHl9ID0ge307CgojCiMgTGlzdCBvZiBkaXJlY3RvcmllcyBvciBmaWxlcyB0byBleGNsdWRl
IGZyb20gdGhlIGJhY2t1cC4gIEZvciBTbWIsCiMgb25seSBvbmUgb2YgJENvbmZ7QmFja3VwRmls
ZXNFeGNsdWRlfSBhbmQgJENvbmZ7QmFja3VwRmlsZXNPbmx5fQojIGNhbiBiZSBzcGVjaWZpZWQg
cGVyIHNoYXJlLiAgSWYgYm90aCBhcmUgc2V0IGZvciBhIHBhcnRpY3VsYXIgc2hhcmUsCiMgdGhl
biAkQ29uZntCYWNrdXBGaWxlc09ubHl9IHRha2VzIHByZWNlZGVuY2UgYW5kCiMgJENvbmZ7QmFj
a3VwRmlsZXNFeGNsdWRlfSBpcyBpZ25vcmVkLgojCiMgVGhpcyBjYW4gYmUgc2V0IHRvIGEgc3Ry
aW5nLCBhbiBhcnJheSBvZiBzdHJpbmdzLCBvciwgaW4gdGhlIGNhc2UKIyBvZiBtdWx0aXBsZSBz
aGFyZXMsIGEgaGFzaCBvZiBzdHJpbmdzIG9yIGFycmF5cy4gIEEgaGFzaCBpcyB1c2VkCiMgdG8g
Z2l2ZSBhIGxpc3Qgb2YgZGlyZWN0b3JpZXMgb3IgZmlsZXMgdG8gZXhjbHVkZSBmb3IgZWFjaCBz
aGFyZQojICh0aGUgc2hhcmUgbmFtZSBpcyB0aGUga2V5KS4gIElmIHRoaXMgaXMgc2V0IHRvIGp1
c3QgYSBzdHJpbmcgb3IKIyBhcnJheSwgYW5kICRDb25me1NtYlNoYXJlTmFtZX0gY29udGFpbnMg
bXVsdGlwbGUgc2hhcmUgbmFtZXMsIHRoZW4KIyB0aGUgc2V0dGluZyBpcyBhc3N1bWVkIHRvIGFw
cGx5IHRvIGFsbCBzaGFyZXMuCiMKIyBUaGUgZXhhY3QgYmVoYXZpb3IgaXMgZGV0ZXJtaW5lZCBi
eSB0aGUgdW5kZXJseWluZyB0cmFuc3BvcnQgcHJvZ3JhbSwKIyBzbWJjbGllbnQgb3IgdGFyLiAg
Rm9yIHNtYmNsaWVudCB0aGUgZXhsY2x1ZGUgZmlsZSBsaXN0IGlzIHBhc3NlZCBpbnRvCiMgdGhl
IFggb3B0aW9uLiAgU2ltcGxlIHNoZWxsIHdpbGQtY2FyZHMgdXNpbmcgIioiIG9yICI/IiBhcmUg
YWxsb3dlZC4KIwojIEZvciB0YXIsIGlmIHRoZSBleGNsdWRlIGZpbGUgY29udGFpbnMgYSAiLyIg
aXQgaXMgYXNzdW1lZCB0byBiZSBhbmNob3JlZAojIGF0IHRoZSBzdGFydCBvZiB0aGUgc3RyaW5n
LiAgU2luY2UgYWxsIHRoZSB0YXIgcGF0aHMgc3RhcnQgd2l0aCAiLi8iLAojIEJhY2t1cFBDIHBy
ZXBlbmRzIGEgIi4iIGlmIHRoZSBleGNsdWRlIGZpbGUgc3RhcnRzIHdpdGggYSAiLyIuICBOb3Rl
CiMgdGhhdCBHTlUgdGFyIHZlcnNpb24gPj0gMS4xMy43IGlzIHJlcXVpcmVkIGZvciB0aGUgZXhj
bHVkZSBvcHRpb24gdG8KIyB3b3JrIGNvcnJlY3RseS4gIEZvciBsaW51eCBvciB1bml4IG1hY2hp
bmVzIHlvdSBzaG91bGQgYWRkCiMgIi9wcm9jIiB0byAkQ29uZntCYWNrdXBGaWxlc0V4Y2x1ZGV9
IHVubGVzcyB5b3UgaGF2ZSBzcGVjaWZpZWQKIyAtLW9uZS1maWxlLXN5c3RlbSBpbiAkQ29uZntU
YXJDbGllbnRDbWR9IG9yIC0tb25lLWZpbGUtc3lzdGVtIGluCiMgJENvbmZ7UnN5bmNBcmdzfS4g
IEFsc28sIGZvciB0YXIsIGRvIG5vdCB1c2UgYSB0cmFpbGluZyAiLyIgaW4KIyB0aGUgZGlyZWN0
b3J5IG5hbWU6IGEgdHJhaWxpbmcgIi8iIGNhdXNlcyB0aGUgbmFtZSB0byBub3QgbWF0Y2gKIyBh
bmQgdGhlIGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBleGNsdWRlZC4KIwojIFVzZXJzIHJlcG9ydCB0
aGF0IGZvciBzbWJjbGllbnQgeW91IHNob3VsZCBzcGVjaWZ5IGEgZGlyZWN0b3J5CiMgZm9sbG93
ZWQgYnkgIi8qIiwgZWc6ICIvcHJvYy8qIiwgaW5zdGVhZCBvZiBqdXN0ICIvcHJvYyIuCiMKIyBJ
ZiBhIGhhc2ggaXMgdXNlZCwgYSBzcGVjaWFsIGtleSAiKiIgbWVhbnMgaXQgYXBwbGllcyB0byBh
bGwKIyBzaGFyZXMgdGhhdCBkb24ndCBoYXZlIGEgc3BlY2lmaWMgZW50cnkuCiMKIyBFeGFtcGxl
czoKIyAgICAkQ29uZntCYWNrdXBGaWxlc0V4Y2x1ZGV9ID0gJy90ZW1wJzsKIyAgICAkQ29uZntC
YWNrdXBGaWxlc0V4Y2x1ZGV9ID0gWycvdGVtcCddOyAgICAgIyBzYW1lIGFzIGZpcnN0IGV4YW1w
bGUKIyAgICAkQ29uZntCYWNrdXBGaWxlc0V4Y2x1ZGV9ID0gWycvdGVtcCcsICcvd2lubnQvdG1w
J107CiMgICAgJENvbmZ7QmFja3VwRmlsZXNFeGNsdWRlfSA9IHsKIyAgICAgICAnYycgPT4gWycv
dGVtcCcsICcvd2lubnQvdG1wJ10sICAgICAgICAgIyB0aGVzZSBhcmUgZm9yICdjJyBzaGFyZQoj
ICAgICAgICdkJyA9PiBbJy9qdW5rJywgJy9kb250X2JhY2tfdGhpc191cCddLCAjIHRoZXNlIGFy
ZSBmb3IgJ2QnIHNoYXJlCiMgICAgfTsKIyAgICAkQ29uZntCYWNrdXBGaWxlc0V4Y2x1ZGV9ID0g
ewojICAgICAgICdjJyA9PiBbJy90ZW1wJywgJy93aW5udC90bXAnXSwgICAgICAgICAjIHRoZXNl
IGFyZSBmb3IgJ2MnIHNoYXJlCiMgICAgICAgJyonID0+IFsnL2p1bmsnLCAnL2RvbnRfYmFja190
aGlzX3VwJ10sICMgdGhlc2UgYXJlIGZvciBvdGhlciBzaGFyZXMKIyAgICB9OwojCiRDb25me0Jh
Y2t1cEZpbGVzRXhjbHVkZX0gPSB7CiAgJyonID0+IFsKICAgICdwYWdlZmlsZS5zeXMnLAogICAg
J2hpYmVyZmlsLnN5cycsCiAgICAnc3dhcGZpbGUuc3lzJywKICAgICcvU3lzdGVtIFZvbHVtZSBJ
bmZvcm1hdGlvbicsCiAgICAnL1JFQ1lDTEVSJywKICAgICcvJFJlY3ljbGUuQmluJywKICAgICcv
JFJFQ1lDTEUuQklOJywKICAgICcvJFdpbmRvd3MufkJUJywKICAgICcvJFdJTkRPV1MufkJUJywK
ICAgICdUZW1wb3JhcnkqJywKICAgICcvTVNPQ2FjaGUnLAogICAgJ1RodW1icy5kYicsCiAgICAn
SWNvbkNhY2hlLmRiJywKICAgICcqLUJNUi5pc28nLAogICAgJy9wcm9jJwogIF0sCiAgJ0JBQ0tV
UDRVJyA9PiBbCiAgICAnL2N5Z2RyaXZlJywKICAgICcvdmFyL2xvZy9iYWNrdXAtc2VydmljZS5s
b2cuKicsCiAgICAnL3Vzci9iaW4nLAogICAgJy91c3IvbGliJywKICAgICcvcHJvYycKICBdLAog
ICdXSU5ET1dTJyA9PiBbCiAgICAnL0Rvd25sb2FkZWQgUHJvZ3JhbSBGaWxlcycsCiAgICAnL09m
ZmxpbmUgV2ViIFBhZ2VzJywKICAgICcvVGVtcCcKICBdCn07CgojCiMgUENzIHRoYXQgYXJlIGFs
d2F5cyBvciBvZnRlbiBvbiB0aGUgbmV0d29yayBjYW4gYmUgYmFja2VkIHVwIGFmdGVyCiMgaG91
cnMsIHRvIHJlZHVjZSBQQywgbmV0d29yayBhbmQgc2VydmVyIGxvYWQgZHVyaW5nIHdvcmtpbmcg
aG91cnMuIEZvcgojIGVhY2ggUEMgYSBjb3VudCBvZiBjb25zZWN1dGl2ZSBnb29kIHBpbmdzIGlz
IG1haW50YWluZWQuIE9uY2UgYSBQQyBoYXMKIyBhdCBsZWFzdCAkQ29uZntCbGFja291dEdvb2RD
bnR9IGNvbnNlY3V0aXZlIGdvb2QgcGluZ3MgaXQgaXMgc3ViamVjdAojIHRvICJibGFja291dCIg
YW5kIG5vdCBiYWNrZWQgdXAgZHVyaW5nIGhvdXJzIGFuZCBkYXlzIHNwZWNpZmllZCBieQojICRD
b25me0JsYWNrb3V0UGVyaW9kc30uCiMKIyBUbyBhbGxvdyBmb3IgcGVyaW9kaWMgcmVib290aW5n
IG9mIGEgUEMgb3Igb3RoZXIgYnJpZWYgcGVyaW9kcyB3aGVuIGEKIyBQQyBpcyBub3Qgb24gdGhl
IG5ldHdvcmssIGEgbnVtYmVyIG9mIGNvbnNlY3V0aXZlIGJhZCBwaW5ncyBpcyBhbGxvd2VkCiMg
YmVmb3JlIHRoZSBnb29kIHBpbmcgY291bnQgaXMgcmVzZXQuIFRoaXMgcGFyYW1ldGVyIGlzCiMg
JENvbmZ7QmxhY2tvdXRCYWRQaW5nTGltaXR9LgojCiMgTm90ZSB0aGF0IGJhZCBhbmQgZ29vZCBw
aW5ncyBkb24ndCBvY2N1ciB3aXRoIHRoZSBzYW1lIGludGVydmFsLiBJZiBhCiMgbWFjaGluZSBp
cyBhbHdheXMgb24gdGhlIG5ldHdvcmssIGl0IHdpbGwgb25seSBiZSBwaW5nZWQgcm91Z2hseSBv
bmNlCiMgZXZlcnkgJENvbmZ7SW5jclBlcmlvZH0gKGVnOiBvbmNlIHBlciBkYXkpLiBTbyBhIHNl
dHRpbmcgZm9yCiMgJENvbmZ7QmxhY2tvdXRHb29kQ250fSBvZiA3IG1lYW5zIGl0IHdpbGwgdGFr
ZSBhcm91bmQgNyBkYXlzIGZvciBhCiMgbWFjaGluZSB0byBiZSBzdWJqZWN0IHRvIGJsYWNrb3V0
LiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgYSBwaW5nIGlzCiMgZmFpbGVkLCBpdCB3aWxsIGJlIHJl
dHJpZWQgcm91Z2hseSBldmVyeSB0aW1lIEJhY2t1cFBDIHdha2VzIHVwLCBlZywKIyBldmVyeSBv
bmUgb3IgdHdvIGhvdXJzLiBTbyBhIHNldHRpbmcgZm9yICRDb25me0JsYWNrb3V0QmFkUGluZ0xp
bWl0fSBvZgojIDMgbWVhbnMgdGhhdCB0aGUgUEMgd2lsbCBsb3NlIGl0cyBibGFja291dCBzdGF0
dXMgYWZ0ZXIgMy02IGhvdXJzIG9mCiMgdW5hdmFpbGFiaWxpdHkuCiMKIyBUbyBkaXNhYmxlIHRo
ZSBibGFja291dCBmZWF0dXJlIHNldCAkQ29uZntCbGFja291dEdvb2RDbnR9IHRvIGEgbmVnYXRp
dmUKIyB2YWx1ZS4gIEEgdmFsdWUgb2YgMCB3aWxsIG1ha2UgYWxsIG1hY2hpbmVzIHN1YmplY3Qg
dG8gYmxhY2tvdXQuICBCdXQKIyBpZiB5b3UgZG9uJ3Qgd2FudCB0byBkbyBhbnkgYmFja3VwcyBk
dXJpbmcgdGhlIGRheSBpdCB3b3VsZCBiZSBlYXNpZXIKIyB0byBqdXN0IHNldCAkQ29uZntXYWtl
dXBTY2hlZHVsZX0gdG8gYSByZXN0cmljdGVkIHNjaGVkdWxlLgojCiRDb25me0JsYWNrb3V0QmFk
UGluZ0xpbWl0fSA9IDM7CiRDb25me0JsYWNrb3V0R29vZENudH0gPSA3OwoKIwojIE9uZSBvciBt
b3JlIGJsYWNrb3V0IHBlcmlvZHMgY2FuIGJlIHNwZWNpZmllZC4gIElmIGEgY2xpZW50IGlzCiMg
c3ViamVjdCB0byBibGFja291dCB0aGVuIG5vIHJlZ3VsYXIgKG5vbi1tYW51YWwpIGJhY2t1cHMg
d2lsbAojIGJlIHN0YXJ0ZWQgZHVyaW5nIGFueSBvZiB0aGVzZSBwZXJpb2RzLiAgaG91ckJlZ2lu
IGFuZCBob3VyRW5kCiMgc3BlY2lmeSBob3VycyBmcm8gbWlkbmlnaHQgYW5kIHdlZWtEYXlzIGlz
IGEgbGlzdCBvZiBkYXlzIG9mCiMgdGhlIHdlZWsgd2hlcmUgMCBpcyBTdW5kYXksIDEgaXMgTW9u
ZGF5IGV0Yy4KIwojIEZvciBleGFtcGxlOgojCiMgICAgJENvbmZ7QmxhY2tvdXRQZXJpb2RzfSA9
IFsKIwl7CiMJICAgIGhvdXJCZWdpbiA9PiAgNy4wLAojCSAgICBob3VyRW5kICAgPT4gMTkuNSwK
IwkgICAgd2Vla0RheXMgID0+IFsxLCAyLCAzLCA0LCA1XSwKIwl9LAojICAgIF07CiMKIyBzcGVj
aWZpZXMgb25lIGJsYWNrb3V0IHBlcmlvZCBmcm9tIDc6MDBhbSB0byA3OjMwcG0gbG9jYWwgdGlt
ZQojIG9uIE1vbi1GcmkuCiMKIyBUaGUgYmxhY2tvdXQgcGVyaW9kIGNhbiBhbHNvIHNwYW4gbWlk
bmlnaHQgYnkgc2V0dGluZwojIGhvdXJCZWdpbiA+IGhvdXJFbmQsIGVnOgojCiMgICAgJENvbmZ7
QmxhY2tvdXRQZXJpb2RzfSA9IFsKIwl7CiMJICAgIGhvdXJCZWdpbiA9PiAgNy4wLAojCSAgICBo
b3VyRW5kICAgPT4gMTkuNSwKIwkgICAgd2Vla0RheXMgID0+IFsxLCAyLCAzLCA0LCA1XSwKIwl9
LAojCXsKIwkgICAgaG91ckJlZ2luID0+IDIzLAojCSAgICBob3VyRW5kICAgPT4gIDUsCiMJICAg
IHdlZWtEYXlzICA9PiBbNSwgNl0sCiMJfSwKIyAgICBdOwojCiMgVGhpcyBzcGVjaWZpZXMgb25l
IGJsYWNrb3V0IHBlcmlvZCBmcm9tIDc6MDBhbSB0byA3OjMwcG0gbG9jYWwgdGltZQojIG9uIE1v
bi1GcmksIGFuZCBhIHNlY29uZCBwZXJpb2QgZnJvbSAxMXBtIHRvIDVhbSBvbiBGcmlkYXkgYW5k
CiMgU2F0dXJkYXkgbmlnaHQuCiMKJENvbmZ7QmxhY2tvdXRQZXJpb2RzfSA9IFsKICB7CiAgICAn
aG91ckJlZ2luJyA9PiA2LAogICAgJ2hvdXJFbmQnID0+IDE4LAogICAgJ3dlZWtEYXlzJyA9PiBb
CiAgICAgIDEsCiAgICAgIDIsCiAgICAgIDMsCiAgICAgIDQsCiAgICAgIDUKICAgIF0KICB9Cl07
CgojCiMgQSBiYWNrdXAgb2YgYSBzaGFyZSB0aGF0IGhhcyB6ZXJvIGZpbGVzIGlzIGNvbnNpZGVy
ZWQgZmF0YWwuIFRoaXMgaXMKIyB1c2VkIHRvIGNhdGNoIG1pc2NlbGxhbmVvdXMgWGZlciBlcnJv
cnMgdGhhdCByZXN1bHQgaW4gbm8gZmlsZXMgYmVpbmcKIyBiYWNrZWQgdXAuICBJZiB5b3UgaGF2
ZSBzaGFyZXMgdGhhdCBtaWdodCBiZSBlbXB0eSAoYW5kIHRoZXJlZm9yZSBhbgojIGVtcHR5IGJh
Y2t1cCBpcyB2YWxpZCkgeW91IHNob3VsZCBzZXQgdGhpcyBmbGFnIHRvIDAuCiMKJENvbmZ7QmFj
a3VwWmVyb0ZpbGVzSXNGYXRhbH0gPSAnMSc7CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBIb3cgdG8g
YmFja3VwIGEgY2xpZW50CiMgKGNhbiBiZSBvdmVycmlkZGVuIGluIHRoZSBwZXItUEMgY29uZmln
LnBsKQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIwojIFdoYXQgdHJhbnNwb3J0IG1ldGhvZCB0byB1c2Ug
dG8gYmFja3VwIGVhY2ggaG9zdC4gIElmIHlvdSBoYXZlCiMgYSBtaXhlZCBzZXQgb2YgV2luWFgg
YW5kIGxpbnV4L3VuaXggaG9zdHMgeW91IHdpbGwgbmVlZCB0byBvdmVycmlkZQojIHRoaXMgaW4g
dGhlIHBlci1QQyBjb25maWcucGwuCiMKIyBUaGUgdmFsaWQgdmFsdWVzIGFyZToKIwojICAgLSAn
c21iJzogICAgIGJhY2t1cCBhbmQgcmVzdG9yZSB2aWEgc21iY2xpZW50IGFuZCB0aGUgU01CIHBy
b3RvY29sLgojICAgICAgICAgICAgICAgIEVhc2llc3QgY2hvaWNlIGZvciBXaW5YWC4KIwojICAg
LSAncnN5bmMnOiAgIGJhY2t1cCBhbmQgcmVzdG9yZSB2aWEgcnN5bmMgKHZpYSByc2ggb3Igc3No
KS4KIyAgICAgICAgICAgICAgICBCZXN0IGNob2ljZSBmb3IgbGludXgvdW5peC4gIEdvb2QgY2hv
aWNlIGFsc28gZm9yIFdpblhYLgojCiMgICAtICdyc3luY2QnOiAgYmFja3VwIGFuZCByZXN0b3Jl
IHZpYSByc3luYyBkYWVtb24gb24gdGhlIGNsaWVudC4KIyAgICAgICAgICAgICAgICBCZXN0IGNo
b2ljZSBmb3IgbGludXgvdW5peCBpZiB5b3UgaGF2ZSByc3luY2QgcnVubmluZyBvbgojICAgICAg
ICAgICAgICAgIHRoZSBjbGllbnQuICBHb29kIGNob2ljZSBhbHNvIGZvciBXaW5YWC4KIwojICAg
LSAndGFyJzogICAgYmFja3VwIGFuZCByZXN0b3JlIHZpYSB0YXIsIHRhciBvdmVyIHNzaCwgcnNo
IG9yIG5mcy4KIyAgICAgICAgICAgICAgIEdvb2QgY2hvaWNlIGZvciBsaW51eC91bml4LgojCiMg
ICAtICdhcmNoaXZlJzogaG9zdCBpcyBhIHNwZWNpYWwgYXJjaGl2ZSBob3N0LiAgQmFja3VwcyBh
cmUgbm90IGRvbmUuCiMgICAgICAgICAgICAgICAgQW4gYXJjaGl2ZSBob3N0IGlzIHVzZWQgdG8g
YXJjaGl2ZSBvdGhlciBob3N0J3MgYmFja3VwcwojICAgICAgICAgICAgICAgIHRvIHBlcm1hbmVu
dCBtZWRpYSwgc3VjaCBhcyB0YXBlLCBDRFIgb3IgRFZELgojICAgICAgICAgICAgICAgCiMKJENv
bmZ7WGZlck1ldGhvZH0gPSAncnN5bmNkJzsKCiMKIyBMZXZlbCBvZiB2ZXJib3NpdHkgaW4gWGZl
ciBsb2cgZmlsZXMuICAwIG1lYW5zIGJlIHF1aWV0LCAxIHdpbGwgZ2l2ZQojIHdpbGwgZ2l2ZSBv
bmUgbGluZSBwZXIgZmlsZSwgMiB3aWxsIGFsc28gc2hvdyBza2lwcGVkIGZpbGVzIG9uCiMgaW5j
cmVtZW50YWxzLCBoaWdoZXIgdmFsdWVzIGdpdmUgbW9yZSBvdXRwdXQuCiMKJENvbmZ7WGZlckxv
Z0xldmVsfSA9IDA7CgojCiMgRmlsZW5hbWUgY2hhcnNldCBlbmNvZGluZyBvbiB0aGUgY2xpZW50
LiAgQmFja3VwUEMgdXNlcyB1dGY4CiMgb24gdGhlIHNlcnZlciBmb3IgZmlsZW5hbWUgZW5jb2Rp
bmcuICBJZiB0aGlzIGlzIGVtcHR5LCB0aGVuCiMgdXRmOCBpcyBhc3N1bWVkIGFuZCBjbGllbnQg
ZmlsZW5hbWVzIHdpbGwgbm90IGJlIG1vZGlmaWVkLgojIElmIHNldCB0byBhIGRpZmZlcmVudCBl
bmNvZGluZyB0aGVuIGZpbGVuYW1lcyB3aWxsIGNvbnZlcnRlZAojIHRvL2Zyb20gdXRmOCBhdXRv
bWF0aWNhbGx5IGR1cmluZyBiYWNrdXAgYW5kIHJlc3RvcmUuCiMKIyBJZiB0aGUgZmlsZSBuYW1l
cyBkaXNwbGF5ZWQgaW4gdGhlIGJyb3dzZXIgKGVnOiBhY2NlbnRzIG9yIHNwZWNpYWwKIyBjaGFy
YWN0ZXJzKSBkb24ndCBsb29rIHJpZ2h0IHRoZW4gaXQgaXMgbGlrZWx5IHlvdSBoYXZlbid0IHNl
dAojICRDb25me0NsaWVudENoYXJzZXR9IGNvcnJlY3RseS4KIwojIElmIHlvdSBhcmUgdXNpbmcg
c21iY2xpZW50IG9uIGEgV2luWFggbWFjaGluZSwgc21iY2xpZW50IHdpbGwgY29udmVydAojIHRv
IHRoZSAidW5peCBjaGFyc2V0IiBzZXR0aW5nIGluIHNtYi5jb25mLiAgVGhlIGRlZmF1bHQgaXMg
dXRmOCwKIyBpbiB3aGljaCBjYXNlIGxlYXZlICRDb25me0NsaWVudENoYXJzZXR9IGVtcHR5IHNp
bmNlIHNtYmNsaWVudCBkb2VzCiMgdGhlIHJpZ2h0IGNvbnZlcnNpb24uCiMKIyBJZiB5b3UgYXJl
IHVzaW5nIHJzeW5jIG9uIGEgV2luWFggbWFjaGluZSB0aGVuIGl0IGRvZXMgbm8gY29udmVyc2lv
bi4KIyBBIHR5cGljYWwgV2luWFggZW5jb2RpbmcgZm9yIGxhdGluMS93ZXN0ZXJuIGV1cm9wZSBp
cyAnY3AxMjUyJywKIyBzbyBpbiB0aGlzIGNhc2Ugc2V0ICRDb25me0NsaWVudENoYXJzZXR9IHRv
ICdjcDEyNTInLgojCiMgT24gYSBsaW51eCBvciB1bml4IGNsaWVudCwgcnVuICJsb2NhbGUgY2hh
cm1hcCIgdG8gc2VlIHRoZSBjbGllbnQncwojIGNoYXJzZXQuICBTZXQgJENvbmZ7Q2xpZW50Q2hh
cnNldH0gdG8gdGhpcyB2YWx1ZS4gIEEgdHlwaWNhbCB2YWx1ZQojIGZvciBlbmdsaXNoL1VTIGlz
ICdJU08tODg1OS0xJy4KIwojIERvICJwZXJsZG9jIEVuY29kZTo6U3VwcG9ydGVkIiB0byBzZWUg
dGhlIGxpc3Qgb2YgcG9zc2libGUgY2hhcnNldAojIHZhbHVlcy4gIFRoZSBGQVEgYXQgaHR0cDov
L3d3dy5jbC5jYW0uYWMudWsvfm1nazI1L3VuaWNvZGUuaHRtbAojIGlzIGV4Y2VsbGVudCwgYW5k
IGh0dHA6Ly9jenlib3JyYS5jb20vY2hhcnNldHMvaXNvODg1OS5odG1sCiMgcHJvdmlkZXMgbW9y
ZSBpbmZvcm1hdGlvbiBvbiB0aGUgaXNvLTg4NTkgY2hhcnNldHMuCiMKJENvbmZ7Q2xpZW50Q2hh
cnNldH0gPSAnJzsKCiMKIyBQcmlvciB0byAzLnggbm8gY2hhcnNldCBjb252ZXJzaW9uIHdhcyBk
b25lIGJ5IEJhY2t1cFBDLiAgQmFja3VwcyB3ZXJlCiMgc3RvcmVkIGluIHdoYXRldmVyIGNoYXJz
ZXQgdGhlIFhmZXJNZXRob2QgcHJvdmlkZWQgLSB0eXBpY2FsbHkgdXRmOAojIGZvciBzbWJjbGll
bnQgYW5kIHRoZSBjbGllbnQncyBsb2NhbGUgc2V0dGluZ3MgZm9yIHJzeW5jIGFuZCB0YXIgKGVn
OgojIGNwMTI1MiBmb3IgcnN5bmMgb24gV2luWFggYW5kIHBlcmhhcHMgaXNvLTg4NTktMSB3aXRo
IHJzeW5jIG9uIGxpbnV4KS4KIyBUaGlzIHNldHRpbmcgdGVsbHMgQmFja3VwUEMgdGhlIGNoYXJz
ZXQgdGhhdCB3YXMgdXNlZCB0byBzdG9yZSBmaWxlbmFtZXMKIyBpbiBvbGQgYmFja3VwcyB0YWtl
biB3aXRoIEJhY2t1cFBDIDIueCwgc28gdGhhdCBub24tYXNjaWkgZmlsZW5hbWVzIGluCiMgb2xk
IGJhY2t1cHMgY2FuIGJlIHZpZXdlZCBhbmQgcmVzdG9yZWQuCiMKJENvbmZ7Q2xpZW50Q2hhcnNl
dExlZ2FjeX0gPSAnJzsKCiMKIyBOYW1lIG9mIHRoZSBob3N0IHNoYXJlIHRoYXQgaXMgYmFja2Vk
IHVwIHdoZW4gdXNpbmcgU01CLiAgVGhpcyBjYW4gYmUgYQojIHN0cmluZyBvciBhbiBhcnJheSBv
ZiBzdHJpbmdzIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBzaGFyZXMgcGVyIGhvc3QuCiMgRXhhbXBs
ZXM6CiMKIyAgICRDb25me1NtYlNoYXJlTmFtZX0gPSAnYyc7ICAgICAgICAgICMgYmFja3VwICdj
JyBzaGFyZQojICAgJENvbmZ7U21iU2hhcmVOYW1lfSA9IFsnYycsICdkJ107ICAgIyBiYWNrdXAg
J2MnIGFuZCAnZCcgc2hhcmVzCiMKIyBUaGlzIHNldHRpbmcgb25seSBtYXR0ZXJzIGlmICRDb25m
e1hmZXJNZXRob2R9ID0gJ3NtYicuCiMKJENvbmZ7U21iU2hhcmVOYW1lfSA9IFsKICAnQyQnCl07
CgojCiMgU21iY2xpZW50IHNoYXJlIHVzZXIgbmFtZS4gIFRoaXMgaXMgcGFzc2VkIHRvIHNtYmNs
aWVudCdzIC1VIGFyZ3VtZW50LgojCiMgVGhpcyBzZXR0aW5nIG9ubHkgbWF0dGVycyBpZiAkQ29u
ZntYZmVyTWV0aG9kfSA9ICdzbWInLgojCiRDb25me1NtYlNoYXJlVXNlck5hbWV9ID0gJyc7Cgoj
CiMgU21iY2xpZW50IHNoYXJlIHBhc3N3b3JkLiAgVGhpcyBpcyBwYXNzZWQgdG8gc21iY2xpZW50
IHZpYSBpdHMgUEFTU1dECiMgZW52aXJvbm1lbnQgdmFyaWFibGUuICBUaGVyZSBhcmUgc2V2ZXJh
bCB3YXlzIHlvdSBjYW4gdGVsbCBCYWNrdXBQQwojIHRoZSBzbWIgc2hhcmUgcGFzc3dvcmQuICBJ
biBlYWNoIGNhc2UgeW91IHNob3VsZCBiZSB2ZXJ5IGNhcmVmdWwgYWJvdXQKIyBzZWN1cml0eS4g
IElmIHlvdSBwdXQgdGhlIHBhc3N3b3JkIGhlcmUsIG1ha2Ugc3VyZSB0aGF0IHRoaXMgZmlsZSBp
cwojIG5vdCByZWFkYWJsZSBieSByZWd1bGFyIHVzZXJzISAgU2VlIHRoZSAiU2V0dGluZyB1cCBj
b25maWcucGwiIHNlY3Rpb24KIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1h
dGlvbi4KIwojIFRoaXMgc2V0dGluZyBvbmx5IG1hdHRlcnMgaWYgJENvbmZ7WGZlck1ldGhvZH0g
PSAnc21iJy4KIwokQ29uZntTbWJTaGFyZVBhc3N3ZH0gPSAnJzsKCiMKIyBGdWxsIHBhdGggZm9y
IHNtYmNsaWVudC4gU2VjdXJpdHkgY2F1dGlvbjogbm9ybWFsIHVzZXJzIHNob3VsZCBub3QKIyBh
bGxvd2VkIHRvIHdyaXRlIHRvIHRoaXMgZmlsZSBvciBkaXJlY3RvcnkuCiMKIyBzbWJjbGllbnQg
aXMgZnJvbSB0aGUgU2FtYmEgZGlzdHJpYnV0aW9uLiBzbWJjbGllbnQgaXMgdXNlZCB0bwojIGFj
dHVhbGx5IGV4dHJhY3QgdGhlIGluY3JlbWVudGFsIG9yIGZ1bGwgZHVtcCBvZiB0aGUgc2hhcmUg
ZmlsZXN5c3RlbQojIGZyb20gdGhlIFBDLgojCiMgVGhpcyBzZXR0aW5nIG9ubHkgbWF0dGVycyBp
ZiAkQ29uZntYZmVyTWV0aG9kfSA9ICdzbWInLgojCiRDb25me1NtYkNsaWVudFBhdGh9ID0gJy91
c3IvYmluL3NtYmNsaWVudCc7CgojCiMgQ29tbWFuZCB0byBydW4gc21iY2xpZW50IGZvciBhIGZ1
bGwgZHVtcC4KIyBUaGlzIHNldHRpbmcgb25seSBtYXR0ZXJzIGlmICRDb25me1hmZXJNZXRob2R9
ID0gJ3NtYicuCiMKIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3Vic3RpdHV0ZWQgYXQg
cnVuLXRpbWU6CiMKIyAgICAkc21iQ2xpZW50UGF0aCAgIHNhbWUgYXMgJENvbmZ7U21iQ2xpZW50
UGF0aH0KIyAgICAkaG9zdCAgICAgICAgICAgIGhvc3QgdG8gYmFja3VwL3Jlc3RvcmUKIyAgICAk
aG9zdElQICAgICAgICAgIGhvc3QgSVAgYWRkcmVzcwojICAgICRzaGFyZU5hbWUgICAgICAgc2hh
cmUgbmFtZQojICAgICR1c2VyTmFtZSAgICAgICAgdXNlciBuYW1lCiMgICAgJGZpbGVMaXN0ICAg
ICAgICBsaXN0IG9mIGZpbGVzIHRvIGJhY2t1cCAoYmFzZWQgb24gZXhjbHVkZS9pbmNsdWRlKQoj
ICAgICRJX29wdGlvbiAgICAgICAgb3B0aW9uYWwgLUkgb3B0aW9uIHRvIHNtYmNsaWVudAojICAg
ICRYX29wdGlvbiAgICAgICAgZXhjbHVkZSBvcHRpb24gKGlmICRmaWxlTGlzdCBpcyBhbiBleGNs
dWRlIGxpc3QpCiMgICAgJHRpbWVTdGFtcEZpbGUgICBzdGFydCB0aW1lIGZvciBpbmNyZW1lbnRh
bCBkdW1wCiMKJENvbmZ7U21iQ2xpZW50RnVsbENtZH0gPSAnJHNtYkNsaWVudFBhdGggXFxcXCRo
b3N0XFwkc2hhcmVOYW1lICRJX29wdGlvbiAtVSAkdXNlck5hbWUgLUUgLU4gLWQgMSAtYyB0YXJt
b2RlXFwgZnVsbCAtVGMkWF9vcHRpb24gLSAkZmlsZUxpc3QnOwoKIwojIENvbW1hbmQgdG8gcnVu
IHNtYmNsaWVudCBmb3IgYW4gaW5jcmVtZW50YWwgZHVtcC4KIyBUaGlzIHNldHRpbmcgb25seSBt
YXR0ZXJzIGlmICRDb25me1hmZXJNZXRob2R9ID0gJ3NtYicuCiMKIyBTYW1lIHZhcmlhYmxlIHN1
YnN0aXR1dGlvbnMgYXJlIGFwcGxpZWQgYXMgJENvbmZ7U21iQ2xpZW50RnVsbENtZH0uCiMKJENv
bmZ7U21iQ2xpZW50SW5jckNtZH0gPSAnJHNtYkNsaWVudFBhdGggXFxcXCRob3N0XFwkc2hhcmVO
YW1lICRJX29wdGlvbiAtVSAkdXNlck5hbWUgLUUgLU4gLWQgMSAtYyB0YXJtb2RlXFwgZnVsbCAt
VGNOJFhfb3B0aW9uICR0aW1lU3RhbXBGaWxlIC0gJGZpbGVMaXN0JzsKCiMKIyBDb21tYW5kIHRv
IHJ1biBzbWJjbGllbnQgZm9yIGEgcmVzdG9yZS4KIyBUaGlzIHNldHRpbmcgb25seSBtYXR0ZXJz
IGlmICRDb25me1hmZXJNZXRob2R9ID0gJ3NtYicuCiMKIyBTYW1lIHZhcmlhYmxlIHN1YnN0aXR1
dGlvbnMgYXJlIGFwcGxpZWQgYXMgJENvbmZ7U21iQ2xpZW50RnVsbENtZH0uCiMKIyBJZiB5b3Vy
IHNtYiBzaGFyZSBpcyByZWFkLW9ubHkgdGhlbiBkaXJlY3QgcmVzdG9yZXMgd2lsbCBmYWlsLgoj
IFlvdSBzaG91bGQgc2V0ICRDb25me1NtYkNsaWVudFJlc3RvcmVDbWR9IHRvIHVuZGVmIGFuZCB0
aGUKIyBjb3JyZXNwb25kaW5nIENHSSByZXN0b3JlIG9wdGlvbiB3aWxsIGJlIHJlbW92ZWQuCiMK
JENvbmZ7U21iQ2xpZW50UmVzdG9yZUNtZH0gPSAnJHNtYkNsaWVudFBhdGggXFxcXCRob3N0XFwk
c2hhcmVOYW1lICRJX29wdGlvbiAtVSAkdXNlck5hbWUgLUUgLU4gLWQgMSAtYyB0YXJtb2RlXFwg
ZnVsbCAtVHggLSc7CgojCiMgV2hpY2ggaG9zdCBkaXJlY3RvcmllcyB0byBiYWNrdXAgd2hlbiB1
c2luZyB0YXIgdHJhbnNwb3J0LiAgVGhpcyBjYW4gYmUgYQojIHN0cmluZyBvciBhbiBhcnJheSBv
ZiBzdHJpbmdzIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBkaXJlY3RvcmllcyB0bwojIGJhY2t1cCBw
ZXIgaG9zdC4gIEV4YW1wbGVzOgojCiMgICAkQ29uZntUYXJTaGFyZU5hbWV9ID0gJy8nOwkJCSMg
YmFja3VwIGV2ZXJ5dGhpbmcKIyAgICRDb25me1RhclNoYXJlTmFtZX0gPSAnL2hvbWUnOwkJIyBv
bmx5IGJhY2t1cCAvaG9tZQojICAgJENvbmZ7VGFyU2hhcmVOYW1lfSA9IFsnL2hvbWUnLCAnL3Ny
YyddOwkjIGJhY2t1cCAvaG9tZSBhbmQgL3NyYwojCiMgVGhlIGZhY3QgdGhpcyBwYXJhbWV0ZXIg
aXMgY2FsbGVkICdUYXJTaGFyZU5hbWUnIGlzIGZvciBoaXN0b3JpY2FsCiMgY29uc2lzdGVuY3kg
d2l0aCB0aGUgU21iIHRyYW5zcG9ydCBvcHRpb25zLiAgWW91IGNhbiB1c2UgYW55IHZhbGlkCiMg
ZGlyZWN0b3J5IG9uIHRoZSBjbGllbnQ6IHRoZXJlIGlzIG5vIG5lZWQgZm9yIGl0IHRvIGNvcnJl
c3BvbmQgdG8KIyBhbnkgU21iIHNoYXJlIG9yIGRldmljZSBtb3VudCBwb2ludC4KIwojIE5vdGUg
YWxzbyB0aGF0IHlvdSBjYW4gYWxzbyB1c2UgJENvbmZ7QmFja3VwRmlsZXNPbmx5fSB0byBzcGVj
aWZ5CiMgYSBzcGVjaWZpYyBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIGJhY2t1cC4gIEl0J3MgbW9y
ZSBlZmZpY2llbnQgdG8KIyB1c2UgdGhpcyBvcHRpb24gaW5zdGVhZCBvZiAkQ29uZntUYXJTaGFy
ZU5hbWV9IHNpbmNlIGEgbmV3IHRhciBpcwojIHJ1biBmb3IgZWFjaCBlbnRyeSBpbiAkQ29uZntU
YXJTaGFyZU5hbWV9LgojCiMgT24gdGhlIG90aGVyIGhhbmQsIGlmIHlvdSBhZGQgLS1vbmUtZmls
ZS1zeXN0ZW0gdG8gJENvbmZ7VGFyQ2xpZW50Q21kfQojIHlvdSBjYW4gYmFja3VwIGVhY2ggZmls
ZSBzeXN0ZW0gc2VwYXJhdGVseSwgd2hpY2ggbWFrZXMgcmVzdG9yaW5nIG9uZQojIGJhZCBmaWxl
IHN5c3RlbSBlYXNpZXIuICBJbiB0aGlzIGNhc2UgeW91IHdvdWxkIGxpc3QgYWxsIG9mIHRoZSBt
b3VudAojIHBvaW50cyBoZXJlLCBzaW5jZSB5b3UgY2FuJ3QgZ2V0IHRoZSBzYW1lIHJlc3VsdCB3
aXRoCiMgJENvbmZ7QmFja3VwRmlsZXNPbmx5fToKIwojICAgICAkQ29uZntUYXJTaGFyZU5hbWV9
ID0gWycvJywgJy92YXInLCAnL2RhdGEnLCAnL2Jvb3QnXTsKIwojIFRoaXMgc2V0dGluZyBvbmx5
IG1hdHRlcnMgaWYgJENvbmZ7WGZlck1ldGhvZH0gPSAndGFyJy4KIwokQ29uZntUYXJTaGFyZU5h
bWV9ID0gWwogICcnCl07CgojCiMgRnVsbCBjb21tYW5kIHRvIHJ1biB0YXIgb24gdGhlIGNsaWVu
dC4gIEdOVSB0YXIgaXMgcmVxdWlyZWQuICBZb3Ugd2lsbAojIG5lZWQgdG8gZmlsbCBpbiB0aGUg
Y29ycmVjdCBwYXRocyBmb3Igc3NoMiBvbiB0aGUgbG9jYWwgaG9zdCAoc2VydmVyKQojIGFuZCBH
TlUgdGFyIG9uIHRoZSBjbGllbnQuICBTZWN1cml0eSBjYXV0aW9uOiBub3JtYWwgdXNlcnMgc2hv
dWxkIG5vdAojIGFsbG93ZWQgdG8gd3JpdGUgdG8gdGhlc2UgZXhlY3V0YWJsZSBmaWxlcyBvciBk
aXJlY3Rvcmllcy4KIwojIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlv
biBhYm91dCBzZXR0aW5nIHVwIHNzaDIga2V5cy4KIwojIElmIHlvdSBwbGFuIHRvIHVzZSBORlMg
dGhlbiB0YXIganVzdCBydW5zIGxvY2FsbHkgYW5kIHNzaDIgaXMgbm90IG5lZWRlZC4KIyBGb3Ig
ZXhhbXBsZSwgYXNzdW1pbmcgdGhlIGNsaWVudCBmaWxlc3lzdGVtIGlzIG1vdW50ZWQgYmVsb3cg
L21udC9ob3N0TmFtZSwKIyB5b3UgY291bGQgdXNlIHNvbWV0aGluZyBsaWtlOgojCiMgICAgJENv
bmZ7VGFyQ2xpZW50Q21kfSA9ICckdGFyUGF0aCAtYyAtdiAtZiAtIC1DIC9tbnQvJGhvc3QvJHNo
YXJlTmFtZScKIyAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAtLXRvdGFscyc7CiMKIyBJbiB0
aGUgY2FzZSBvZiBORlMgb3IgcnNoIHlvdSBuZWVkIHRvIG1ha2Ugc3VyZSBCYWNrdXBQQydzIHBy
aXZpbGVnZXMKIyBhcmUgc3VmZmljaWVudCB0byByZWFkIGFsbCB0aGUgZmlsZXMgeW91IHdhbnQg
dG8gYmFja3VwLiAgQWxzbywgeW91CiMgd2lsbCBwcm9iYWJseSB3YW50IHRvIGFkZCAiL3Byb2Mi
IHRvICRDb25me0JhY2t1cEZpbGVzRXhjbHVkZX0uCiMKIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxl
cyBhcmUgc3Vic3RpdHV0ZWQgYXQgcnVuLXRpbWU6CiMKIyAgICRob3N0ICAgICAgICBob3N0IG5h
bWUKIyAgICRob3N0SVAgICAgICBob3N0J3MgSVAgYWRkcmVzcwojICAgJGluY3JEYXRlICAgIG5l
d2VyLXRoYW4gZGF0ZSBmb3IgaW5jcmVtZW50YWwgYmFja3VwcwojICAgJHNoYXJlTmFtZSAgIHNo
YXJlIG5hbWUgdG8gYmFja3VwIChpZTogdG9wLWxldmVsIGRpcmVjdG9yeSBwYXRoKQojICAgJGZp
bGVMaXN0ICAgIHNwZWNpZmljIGZpbGVzIHRvIGJhY2t1cCBvciBleGNsdWRlCiMgICAkdGFyUGF0
aCAgICAgc2FtZSBhcyAkQ29uZntUYXJDbGllbnRQYXRofQojICAgJHNzaFBhdGggICAgIHNhbWUg
YXMgJENvbmZ7U3NoUGF0aH0KIwojIElmIGEgdmFyaWFibGUgaXMgZm9sbG93ZWQgYnkgYSAiKyIg
aXQgaXMgc2hlbGwgZXNjYXBlZC4gIFRoaXMgaXMKIyBuZWNlc3NhcnkgZm9yIHRoZSBjb21tYW5k
IHBhcnQgb2Ygc3NoIG9yIHJzaCwgc2luY2UgaXQgZW5kcyB1cAojIGdldHRpbmcgcGFzc2VkIHRo
cm91Z2ggdGhlIHNoZWxsLgojCiMgVGhpcyBzZXR0aW5nIG9ubHkgbWF0dGVycyBpZiAkQ29uZntY
ZmVyTWV0aG9kfSA9ICd0YXInLgojCiRDb25me1RhckNsaWVudENtZH0gPSAnJHNzaFBhdGggLXEg
LXggLW4gLWwgcm9vdCAkaG9zdCBlbnYgTENfQUxMPUMgJHRhclBhdGggLWMgLXYgLWYgLSAtQyAk
c2hhcmVOYW1lKyAtLXRvdGFscyc7CgojCiMgRXh0cmEgdGFyIGFyZ3VtZW50cyBmb3IgZnVsbCBi
YWNrdXBzLiAgU2V2ZXJhbCB2YXJpYWJsZXMgYXJlIHN1YnN0aXR1dGVkIGF0CiMgcnVuLXRpbWUu
ICBTZWUgJENvbmZ7VGFyQ2xpZW50Q21kfSBmb3IgdGhlIGxpc3Qgb2YgdmFyaWFibGUgc3Vic3Rp
dHV0aW9ucy4KIwojIElmIHlvdSBhcmUgcnVubmluZyB0YXIgbG9jYWxseSAoaWU6IHdpdGhvdXQg
cnNoIG9yIHNzaCkgdGhlbiByZW1vdmUgdGhlCiMgIisiIHNvIHRoYXQgdGhlIGFyZ3VtZW50IGlz
IG5vIGxvbmdlciBzaGVsbCBlc2NhcGVkLgojCiMgVGhpcyBzZXR0aW5nIG9ubHkgbWF0dGVycyBp
ZiAkQ29uZntYZmVyTWV0aG9kfSA9ICd0YXInLgojCiRDb25me1RhckZ1bGxBcmdzfSA9ICckZmls
ZUxpc3QrJzsKCiMKIyBFeHRyYSB0YXIgYXJndW1lbnRzIGZvciBpbmNyIGJhY2t1cHMuICBTZXZl
cmFsIHZhcmlhYmxlcyBhcmUgc3Vic3RpdHV0ZWQgYXQKIyBydW4tdGltZS4gIFNlZSAkQ29uZntU
YXJDbGllbnRDbWR9IGZvciB0aGUgbGlzdCBvZiB2YXJpYWJsZSBzdWJzdGl0dXRpb25zLgojCiMg
Tm90ZSB0aGF0IEdOVSB0YXIgaGFzIHNldmVyYWwgbWV0aG9kcyBmb3Igc3BlY2lmeWluZyBpbmNy
ZW1lbnRhbCBiYWNrdXBzLAojIGluY2x1ZGluZzoKIwojICAgLS1uZXdlci1tdGltZSAkaW5jckRh
dGUrCiMgICAgICAgICAgVGhpcyBjYXVzZXMgYSBmaWxlIHRvIGJlIGluY2x1ZGVkIGlmIHRoZSBt
b2RpZmljYXRpb24gdGltZSBpcwojICAgICAgICAgIGxhdGVyIHRoYW4gJGluY3JEYXRlIChtZWFu
aW5nIGl0cyBjb250ZW50cyBtaWdodCBoYXZlIGNoYW5nZWQpLgojICAgICAgICAgIEJ1dCBjaGFu
Z2VzIGluIHRoZSBvd25lcnNoaXAgb3IgbW9kZXMgd2lsbCBub3QgcXVhbGlmeSB0aGUKIyAgICAg
ICAgICBmaWxlIHRvIGJlIGluY2x1ZGVkIGluIGFuIGluY3JlbWVudGFsLgojCiMgICAtLW5ld2Vy
PSRpbmNyRGF0ZSsKIyAgICAgICAgICBUaGlzIGNhdXNlcyB0aGUgZmlsZSB0byBiZSBpbmNsdWRl
ZCBpZiBhbnkgYXR0cmlidXRlIG9mIHRoZQojICAgICAgICAgIGZpbGUgaXMgbGF0ZXIgdGhhbiAk
aW5jckRhdGUsIG1lYW5pbmcgZWl0aGVyIGF0dHJpYnV0ZXMgb3IKIyAgICAgICAgICB0aGUgbW9k
aWZpY2F0aW9uIHRpbWUuICBUaGlzIGlzIHRoZSBkZWZhdWx0IG1ldGhvZC4gIERvCiMgICAgICAg
ICAgbm90IHVzZSAtLWF0aW1lLXByZXNlcnZlIGluICRDb25me1RhckNsaWVudENtZH0gYWJvdmUs
CiMgICAgICAgICAgb3RoZXJ3aXNlIHJlc2V0dGluZyB0aGUgYXRpbWUgKGFjY2VzcyB0aW1lKSBj
b3VudHMgYXMgYW4KIyAgICAgICAgICBhdHRyaWJ1dGUgY2hhbmdlLCBtZWFuaW5nIHRoZSBmaWxl
IHdpbGwgYWx3YXlzIGJlIGluY2x1ZGVkCiMgICAgICAgICAgaW4gZWFjaCBuZXcgaW5jcmVtZW50
YWwgZHVtcC4KIwojIElmIHlvdSBhcmUgcnVubmluZyB0YXIgbG9jYWxseSAoaWU6IHdpdGhvdXQg
cnNoIG9yIHNzaCkgdGhlbiByZW1vdmUgdGhlCiMgIisiIHNvIHRoYXQgdGhlIGFyZ3VtZW50IGlz
IG5vIGxvbmdlciBzaGVsbCBlc2NhcGVkLgojCiMgVGhpcyBzZXR0aW5nIG9ubHkgbWF0dGVycyBp
ZiAkQ29uZntYZmVyTWV0aG9kfSA9ICd0YXInLgojCiRDb25me1RhckluY3JBcmdzfSA9ICctLW5l
d2VyPSRpbmNyRGF0ZSsgJGZpbGVMaXN0Kyc7CgojCiMgRnVsbCBjb21tYW5kIHRvIHJ1biB0YXIg
Zm9yIHJlc3RvcmUgb24gdGhlIGNsaWVudC4gIEdOVSB0YXIgaXMgcmVxdWlyZWQuCiMgVGhpcyBj
YW4gYmUgdGhlIHNhbWUgYXMgJENvbmZ7VGFyQ2xpZW50Q21kfSwgd2l0aCB0YXIncyAtYyByZXBs
YWNlZCBieSAteAojIGFuZCBzc2gncyAtbiByZW1vdmVkLgojCiMgU2VlICRDb25me1RhckNsaWVu
dENtZH0gZm9yIGZ1bGwgZGV0YWlscy4KIwojIFRoaXMgc2V0dGluZyBvbmx5IG1hdHRlcnMgaWYg
JENvbmZ7WGZlck1ldGhvZH0gPSAidGFyIi4KIwojIElmIHlvdSB3YW50IHRvIGRpc2FibGUgZGly
ZWN0IHJlc3RvcmVzIHVzaW5nIHRhciwgeW91IHNob3VsZCBzZXQKIyAkQ29uZntUYXJDbGllbnRS
ZXN0b3JlQ21kfSB0byB1bmRlZiBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgQ0dJCiMgcmVzdG9yZSBv
cHRpb24gd2lsbCBiZSByZW1vdmVkLgojCiRDb25me1RhckNsaWVudFJlc3RvcmVDbWR9ID0gJyRz
c2hQYXRoIC1xIC14IC1sIHJvb3QgJGhvc3QgZW52IExDX0FMTD1DICR0YXJQYXRoIC14IC1wIC0t
bnVtZXJpYy1vd25lciAtLXNhbWUtb3duZXIgLXYgLWYgLSAtQyAkc2hhcmVOYW1lKyc7CgojCiMg
RnVsbCBwYXRoIGZvciB0YXIgb24gdGhlIGNsaWVudC4gU2VjdXJpdHkgY2F1dGlvbjogbm9ybWFs
IHVzZXJzIHNob3VsZCBub3QKIyBhbGxvd2VkIHRvIHdyaXRlIHRvIHRoaXMgZmlsZSBvciBkaXJl
Y3RvcnkuCiMKIyBUaGlzIHNldHRpbmcgb25seSBtYXR0ZXJzIGlmICRDb25me1hmZXJNZXRob2R9
ID0gJ3RhcicuCiMKJENvbmZ7VGFyQ2xpZW50UGF0aH0gPSAnL2Jpbi90YXInOwoKIwojIFBhdGgg
dG8gcnN5bmMgZXhlY3V0YWJsZSBvbiB0aGUgY2xpZW50CiMKJENvbmZ7UnN5bmNDbGllbnRQYXRo
fSA9ICcvdXNyL2Jpbi9yc3luYyc7CgojCiMgRnVsbCBwYXRoIHRvIHJzeW5jX2JwYyBvbiB0aGUg
c2VydmVyLiAgUnN5bmNfYnBjIGlzIHRoZSBjdXN0b21pemVkCiMgdmVyc2lvbiBvZiByc3luYyB0
aGF0IGlzIHVzZWQgb24gdGhlIHNlcnZlciBmb3IgcnN5bmMgYW5kIHJzeW5jZAojIHRyYW5zZmVy
cy4KIwokQ29uZntSc3luY0JhY2t1cFBDUGF0aH0gPSAnL3Vzci9saWJleGVjL2JhY2t1cHBjLXJz
eW5jL3JzeW5jX2JwYyc7CgojCiMgU2hhcmUgbmFtZSB0byBiYWNrdXAuICBGb3IgJENvbmZ7WGZl
ck1ldGhvZH0gPSAicnN5bmMiIHRoaXMgc2hvdWxkCiMgYmUgYSBmaWxlIHN5c3RlbSBwYXRoLCBl
ZyAnLycgb3IgJy9ob21lJy4KIwojIEZvciAkQ29uZntYZmVyTWV0aG9kfSA9ICJyc3luY2QiIHRo
aXMgc2hvdWxkIGJlIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUKIyB0byBiYWNrdXAgKGllOiB0aGUg
bmFtZSBmcm9tIC9ldGMvcnN5bmQuY29uZikuCiMKIyBUaGlzIGNhbiBhbHNvIGJlIGEgbGlzdCBv
ZiBtdWx0aXBsZSBmaWxlIHN5c3RlbSBwYXRocyBvciBtb2R1bGVzLgojIEZvciBleGFtcGxlLCBi
eSBhZGRpbmcgLS1vbmUtZmlsZS1zeXN0ZW0gdG8gJENvbmZ7UnN5bmNBcmdzfSB5b3UKIyBjYW4g
YmFja3VwIGVhY2ggZmlsZSBzeXN0ZW0gc2VwYXJhdGVseSwgd2hpY2ggbWFrZXMgcmVzdG9yaW5n
IG9uZQojIGJhZCBmaWxlIHN5c3RlbSBlYXNpZXIuICBJbiB0aGlzIGNhc2UgeW91IHdvdWxkIGxp
c3QgYWxsIG9mIHRoZSBtb3VudAojIHBvaW50czoKIwojICAgICAkQ29uZntSc3luY1NoYXJlTmFt
ZX0gPSBbJy8nLCAnL3ZhcicsICcvZGF0YScsICcvYm9vdCddOwojCiRDb25me1JzeW5jU2hhcmVO
YW1lfSA9IFsKICAnQkFDS1VQNFUnLAogICdDJywKICAnV0lORE9XUycKXTsKCiMKIyBSc3luYyBk
YWVtb24gcG9ydCBvbiB0aGUgY2xpZW50LCBmb3IgJENvbmZ7WGZlck1ldGhvZH0gPSAicnN5bmNk
Ii4KIwokQ29uZntSc3luY2RDbGllbnRQb3J0fSA9IDg3MzsKCiMKIyBSc3luYyBkYWVtb24gdXNl
ciBuYW1lIG9uIGNsaWVudCwgZm9yICRDb25me1hmZXJNZXRob2R9ID0gInJzeW5jZCIuCiMgVGhl
IHVzZXIgbmFtZSBhbmQgcGFzc3dvcmQgYXJlIHN0b3JlZCBvbiB0aGUgY2xpZW50IGluIHdoYXRl
dmVyIGZpbGUKIyB0aGUgInNlY3JldHMgZmlsZSIgcGFyYW1ldGVyIGluIHJzeW5jZC5jb25mIHBv
aW50cyB0bwojIChlZzogL2V0Yy9yc3luY2Quc2VjcmV0cykuCiMKJENvbmZ7UnN5bmNkVXNlck5h
bWV9ID0gJ2JhY2t1cHBjJzsKCiMKIyBSc3luYyBkYWVtb24gdXNlciBuYW1lIG9uIGNsaWVudCwg
Zm9yICRDb25me1hmZXJNZXRob2R9ID0gInJzeW5jZCIuCiMgVGhlIHVzZXIgbmFtZSBhbmQgcGFz
c3dvcmQgYXJlIHN0b3JlZCBvbiB0aGUgY2xpZW50IGluIHdoYXRldmVyIGZpbGUKIyB0aGUgInNl
Y3JldHMgZmlsZSIgcGFyYW1ldGVyIGluIHJzeW5jZC5jb25mIHBvaW50cyB0bwojIChlZzogL2V0
Yy9yc3luY2Quc2VjcmV0cykuCiMKJENvbmZ7UnN5bmNkUGFzc3dkfSA9ICc4V2FzQmluSWNoR3V0
Lic7CgojCiMgQXJndW1lbnRzIHRvIHJzeW5jIGZvciBiYWNrdXAuICBEbyBub3QgZWRpdCB0aGUg
Zmlyc3Qgc2V0IHVubGVzcyB5b3UKIyBoYXZlIGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHJzeW5j
IG9wdGlvbnMuCiMKJENvbmZ7UnN5bmNBcmdzfSA9IFsKICAnLS1udW1lcmljLWlkcycsCiAgJy0t
cHJvdGVjdC1hcmdzJywKICAnLS1wZXJtcycsCiAgJy0tYWNscycsCiAgJy0teGF0dHJzJywKICAn
LS1vd25lcicsCiAgJy0tZ3JvdXAnLAogICctLXRpbWVzJywKICAnLUQnLAogICctLWxpbmtzJywK
ICAnLS1oYXJkLWxpbmtzJywKICAnLS1yZWN1cnNpdmUnLAogICctLXBhcnRpYWwnLAogICctLW9u
ZS1maWxlLXN5c3RlbScsCiAgJy0tdGltZW91dD0yMTYwMCcsCiAgJy0tY29udGltZW91dD0zMDAn
LAogICctLXN0YXRzJwpdOwoKIwojIEFyZ3VtZW50cyB0byByc3luYyBmb3IgcmVzdG9yZS4gIERv
IG5vdCBlZGl0IHRoZSBmaXJzdCBzZXQgdW5sZXNzIHlvdQojIGhhdmUgYSB0aG9yb3VnaCB1bmRl
cnN0YW5kaW5nIG9mIGhvdyBGaWxlOjpSc3luY1Agd29ya3MuCiMKIyBJZiB5b3Ugd2FudCB0byBk
aXNhYmxlIGRpcmVjdCByZXN0b3JlcyB1c2luZyByc3luYyAoZWc6IGlzIHRoZSBtb2R1bGUKIyBp
cyByZWFkLW9ubHkpLCB5b3Ugc2hvdWxkIHNldCAkQ29uZntSc3luY1Jlc3RvcmVBcmdzfSB0byB1
bmRlZiBhbmQKIyB0aGUgY29ycmVzcG9uZGluZyBDR0kgcmVzdG9yZSBvcHRpb24gd2lsbCBiZSBy
ZW1vdmVkLgojCiRDb25me1JzeW5jUmVzdG9yZUFyZ3N9ID0gWwogICctLW51bWVyaWMtaWRzJywK
ICAnLS1wcm90ZWN0LWFyZ3MnLAogICctLXBlcm1zJywKICAnLS1hY2xzJywKICAnLS14YXR0cnMn
LAogICctLW93bmVyJywKICAnLS1ncm91cCcsCiAgJy0tdGltZXMnLAogICctRCcsCiAgJy0tbGlu
a3MnLAogICctLWhhcmQtbGlua3MnLAogICctLXJlY3Vyc2l2ZScsCiAgJy0tcGFydGlhbCcsCiAg
Jy0tb25lLWZpbGUtc3lzdGVtJywKICAnLS10aW1lb3V0PTIxNjAwJywKICAnLS1jb250aW1lb3V0
PTMwMCcsCiAgJy0tc3RhdHMnCl07CgojCiMgQXJjaGl2ZSBEZXN0aW5hdGlvbgojCiMgVGhlIERl
c3RpbmF0aW9uIG9mIHRoZSBhcmNoaXZlCiMgZS5nLiAvdG1wIGZvciBmaWxlIGFyY2hpdmUgb3Ig
L2Rldi9uc3QwIGZvciBkZXZpY2UgYXJjaGl2ZQojCiRDb25me0FyY2hpdmVEZXN0fSA9ICcvdG1w
JzsKCiMKIyBBcmNoaXZlIENvbXByZXNzaW9uIHR5cGUKIwojIFRoZSB2YWxpZCB2YWx1ZXMgYXJl
OgojCiMgICAtICdub25lJzogIE5vIENvbXByZXNzaW9uCiMKIyAgIC0gJ2d6aXAnOiAgTWVkaXVt
IENvbXByZXNzaW9uLiBSZWNvbW1lbmRlZC4KIwojICAgLSAnYnppcDInOiBIaWdoIENvbXByZXNz
aW9uIGJ1dCB0YWtlcyBsb25nZXIuCiMKJENvbmZ7QXJjaGl2ZUNvbXB9ID0gJ2d6aXAnOwoKIwoj
IEFyY2hpdmUgUGFyaXR5IEZpbGVzCiMKIyBUaGUgYW1vdW50IG9mIFBhcml0eSBkYXRhIHRvIGdl
bmVyYXRlLCBhcyBhIHBlcmNlbnRhZ2UKIyBvZiB0aGUgYXJjaGl2ZSBzaXplLgojIFVzZXMgdGhl
IGNvbW1hbmRsaW5lIHBhcjIgKHBhcjJjbWRsaW5lKSBhdmFpbGFibGUgZnJvbQojIGh0dHA6Ly9w
YXJjaGl2ZS5zb3VyY2Vmb3JnZS5uZXQKIwojIE9ubHkgdXNlZnVsIGZvciBmaWxlIGR1bXBzLgoj
CiMgU2V0IHRvIDAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuCiMKJENvbmZ7QXJjaGl2ZVBhcn0g
PSAnMCc7CgojCiMgQXJjaGl2ZSBTaXplIFNwbGl0CiMKIyBPbmx5IGZvciBmaWxlIGFyY2hpdmVz
LiBTcGxpdHMgdGhlIG91dHB1dCBpbnRvIAojIHRoZSBzcGVjaWZpZWQgc2l6ZSAqIDEsMDAwLDAw
MC4KIyBlLmcuIHRvIHNwbGl0IGludG8gNjUwLDAwMCwwMDAgYnl0ZXMsIHNwZWNpZnkgNjUwIGJl
bG93LgojIAojIElmIHRoZSB2YWx1ZSBpcyAwLCBvciBpZiAkQ29uZntBcmNoaXZlRGVzdH0gaXMg
YW4gZXhpc3RpbmcgZmlsZSBvcgojIGRldmljZSAoZS5nLiBhIHN0cmVhbWluZyB0YXBlIGRyaXZl
KSwgdGhpcyBmZWF0dXJlIGlzIGRpc2FibGVkLgojCiRDb25me0FyY2hpdmVTcGxpdH0gPSAwOwoK
IwojIEFyY2hpdmUgQ29tbWFuZAojCiMgVGhpcyBpcyB0aGUgY29tbWFuZCB0aGF0IGlzIGNhbGxl
ZCB0byBhY3R1YWxseSBydW4gdGhlIGFyY2hpdmUgcHJvY2VzcwojIGZvciBlYWNoIGhvc3QuICBU
aGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3Vic3RpdHV0ZWQgYXQgcnVuLXRpbWU6CiMKIyAg
ICRJbnN0YWxsZGlyICAgIFRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IG9mIEJhY2t1cFBDCiMg
ICAkdGFyQ3JlYXRlUGF0aCBUaGUgcGF0aCB0byBCYWNrdXBQQ190YXJDcmVhdGUKIyAgICRzcGxp
dHBhdGggICAgIFRoZSBwYXRoIHRvIHRoZSBzcGxpdCBwcm9ncmFtCiMgICAkcGFycGF0aCAgICAg
ICBUaGUgcGF0aCB0byB0aGUgcGFyMiBwcm9ncmFtCiMgICAkaG9zdCAgICAgICAgICBUaGUgaG9z
dCB0byBhcmNoaXZlCiMgICAkYmFja3VwbnVtYmVyICBUaGUgYmFja3VwIG51bWJlciBvZiB0aGUg
aG9zdCB0byBhcmNoaXZlCiMgICAkY29tcHJlc3Npb24gICBUaGUgcGF0aCB0byB0aGUgY29tcHJl
c3Npb24gcHJvZ3JhbQojICAgJGNvbXBleHQgICAgICAgVGhlIGV4dGVuc2lvbiBhc3NpZ25lZCB0
byB0aGUgY29tcHJlc3Npb24gdHlwZQojICAgJHNwbGl0c2l6ZSAgICAgVGhlIG51bWJlciBvZiBi
eXRlcyB0byBzcGxpdCBhcmNoaXZlcyBpbnRvCiMgICAkYXJjaGl2ZWxvYyAgICBUaGUgbG9jYXRp
b24gdG8gcHV0IHRoZSBhcmNoaXZlCiMgICAkcGFyZmlsZSAgICAgICBUaGUgYW1vdW50IG9mIHBh
cml0eSBkYXRhIHRvIGNyZWF0ZSAocGVyY2VudGFnZSkKIwokQ29uZntBcmNoaXZlQ2xpZW50Q21k
fSA9ICckSW5zdGFsbGRpci9iaW4vQmFja3VwUENfYXJjaGl2ZUhvc3QgJHRhckNyZWF0ZVBhdGgg
JHNwbGl0cGF0aCAkcGFycGF0aCAkaG9zdCAkYmFja3VwbnVtYmVyICRjb21wcmVzc2lvbiAkY29t
cGV4dCAkc3BsaXRzaXplICRhcmNoaXZlbG9jICRwYXJmaWxlIConOwoKIwojIEZ1bGwgcGF0aCBm
b3Igc3NoLiBTZWN1cml0eSBjYXV0aW9uOiBub3JtYWwgdXNlcnMgc2hvdWxkIG5vdAojIGFsbG93
ZWQgdG8gd3JpdGUgdG8gdGhpcyBmaWxlIG9yIGRpcmVjdG9yeS4KIwokQ29uZntTc2hQYXRofSA9
ICcvdXNyL2Jpbi9zc2gnOwoKIwojIEZ1bGwgcGF0aCBmb3Igbm1ibG9va3VwLiBTZWN1cml0eSBj
YXV0aW9uOiBub3JtYWwgdXNlcnMgc2hvdWxkIG5vdAojIGFsbG93ZWQgdG8gd3JpdGUgdG8gdGhp
cyBmaWxlIG9yIGRpcmVjdG9yeS4KIwojIG5tYmxvb2t1cCBpcyBmcm9tIHRoZSBTYW1iYSBkaXN0
cmlidXRpb24uIG5tYmxvb2t1cCBpcyB1c2VkIHRvIGdldCB0aGUKIyBuZXRiaW9zIG5hbWUsIG5l
Y2Vzc2FyeSBmb3IgREhDUCBob3N0cy4KIwokQ29uZntObWJMb29rdXBQYXRofSA9ICcvdXNyL2Jp
bi9ubWJsb29rdXAnOwoKIwojIE5tYkxvb2t1cCBjb21tYW5kLiAgR2l2ZW4gYW4gSVAgYWRkcmVz
cywgZG9lcyBhbiBubWJsb29rdXAgb24gdGhhdAojIElQIGFkZHJlc3MuICBUaGUgZm9sbG93aW5n
IHZhcmlhYmxlcyBhcmUgc3Vic3RpdHV0ZWQgYXQgcnVuLXRpbWU6CiMKIyAgICRubWJMb29rdXBQ
YXRoICAgICAgcGF0aCB0byBubWJsb29rdXAgKCRDb25me05tYkxvb2t1cFBhdGh9KQojICAgJGhv
c3QgICAgICAgICAgICAgICBJUCBhZGRyZXNzCiMKIyBUaGlzIGNvbW1hbmQgaXMgb25seSB1c2Vk
IGZvciBESENQIGhvc3RzOiBnaXZlbiBhbiBJUCBhZGRyZXNzLCB0aGlzCiMgY29tbWFuZCBzaG91
bGQgdHJ5IHRvIGZpbmQgaXRzIE5ldEJpb3MgbmFtZS4KIwokQ29uZntObWJMb29rdXBDbWR9ID0g
JyRubWJMb29rdXBQYXRoIC1BICRob3N0JzsKCiMKIyBObWJMb29rdXAgY29tbWFuZC4gIEdpdmVu
IGEgbmV0YmlvcyBuYW1lLCBmaW5kcyB0aGF0IGhvc3QgYnkgZG9pbmcKIyBhIE5ldEJpb3MgbG9v
a3VwLiAgU2V2ZXJhbCB2YXJpYWJsZXMgYXJlIHN1YnN0aXR1dGVkIGF0IHJ1bi10aW1lOgojCiMg
ICAkbm1iTG9va3VwUGF0aCAgICAgIHBhdGggdG8gbm1ibG9va3VwICgkQ29uZntObWJMb29rdXBQ
YXRofSkKIyAgICRob3N0ICAgICAgICAgICAgICAgTmV0QmlvcyBuYW1lCiMKIyBJbiBzb21lIGNh
c2VzIHlvdSBtaWdodCBuZWVkIHRvIGNoYW5nZSB0aGUgYnJvYWRjYXN0IGFkZHJlc3MsIGZvcgoj
IGV4YW1wbGUgaWYgbm1ibG9va3VwIHVzZXMgMTkyLjE2OC4yNTUuMjU1IGJ5IGRlZmF1bHQgYW5k
IHlvdSBmaW5kCiMgdGhhdCBkb2Vzbid0IHdvcmssIHRyeSAxOTIuMTY4LjEuMjU1IChvciB5b3Vy
IGVxdWl2YWxlbnQgY2xhc3MgQwojIGFkZHJlc3MpIHVzaW5nIHRoZSAtQiBvcHRpb246CiMKIyAg
ICAkQ29uZntObWJMb29rdXBGaW5kSG9zdENtZH0gPSAnJG5tYkxvb2t1cFBhdGggLUIgMTkyLjE2
OC4xLjI1NSAkaG9zdCc7CiMKIyBJZiB5b3UgdXNlIGEgV0lOUyBzZXJ2ZXIgYW5kIHlvdXIgbWFj
aGluZXMgZG9uJ3QgcmVzcG9uZCB0bwojIG11bHRpY2FzdCBOZXRCaW9zIHJlcXVlc3RzIHlvdSBj
YW4gdXNlIHRoaXMgKHJlcGxhY2UgMS4yLjMuNAojIHdpdGggdGhlIElQIGFkZHJlc3Mgb2YgeW91
ciBXSU5TIHNlcnZlcik6CiMKIyAgICAkQ29uZntObWJMb29rdXBGaW5kSG9zdENtZH0gPSAnJG5t
Ykxvb2t1cFBhdGggLVIgLVUgMS4yLjMuNCAkaG9zdCc7CiMKIyBUaGlzIGlzIHByZWZlcnJlZCBv
dmVyIG11bHRpY2FzdCBzaW5jZSBpdCBtaW5pbWl6ZXMgbmV0d29yayB0cmFmZmljLgojCiMgRXhw
ZXJpbWVudCBtYW51YWxseSBmb3IgeW91ciBzaXRlIHRvIHNlZSB3aGF0IGZvcm0gb2Ygbm1ibG9v
a3VwIGNvbW1hbmQKIyB3b3Jrcy4KIwokQ29uZntObWJMb29rdXBGaW5kSG9zdENtZH0gPSAnJG5t
Ykxvb2t1cFBhdGggJGhvc3QnOwoKIwojIEZvciBmaXhlZCBJUCBhZGRyZXNzIGhvc3RzLCBCYWNr
dXBQQ19kdW1wIGNhbiBhbHNvIHZlcmlmeSB0aGUgbmV0YmlvcwojIG5hbWUgdG8gZW5zdXJlIGl0
IG1hdGNoZXMgdGhlIGhvc3QgbmFtZS4gIEFuIGVycm9yIGlzIGdlbmVyYXRlZCBpZgojIHRoZXkg
ZG8gbm90IG1hdGNoLiAgVHlwaWNhbGx5IHRoaXMgZmxhZyBpcyBvZmYuICBCdXQgaWYgeW91IGFy
ZSBnb2luZwojIHRvIHRyYW5zaXRpb24gYSBidW5jaCBvZiBtYWNoaW5lcyBmcm9tIGZpeGVkIGhv
c3QgYWRkcmVzc2VzIHRvIERIQ1AsCiMgc2V0dGluZyB0aGlzIGZsYWcgaXMgYSBncmVhdCB3YXkg
dG8gdmVyaWZ5IHRoYXQgdGhlIG1hY2hpbmVzIGhhdmUKIyB0aGVpciBuZXRiaW9zIG5hbWUgc2V0
IGNvcnJlY3RseSBiZWZvcmUgdHVybmluZyBvbiBEQ0hQLgojCiRDb25me0ZpeGVkSVBOZXRCaW9z
TmFtZUNoZWNrfSA9ICcwJzsKCiMKIyBGdWxsIHBhdGggdG8gdGhlIHBpbmcgY29tbWFuZC4gIFNl
Y3VyaXR5IGNhdXRpb246IG5vcm1hbCB1c2VycwojIHNob3VsZCBub3QgYmUgYWxsb3dlZCB0byB3
cml0ZSB0byB0aGlzIGZpbGUgb3IgZGlyZWN0b3J5LgojCiMgSWYgeW91IHdhbnQgdG8gZGlzYWJs
ZSBwaW5nIGNoZWNraW5nLCBzZXQgdGhpcyB0byBzb21lIHByb2dyYW0KIyB0aGF0IGV4aXRzIHdp
dGggMCBzdGF0dXMsIGVnOgojCiMgICAgICRDb25me1BpbmdQYXRofSA9ICcvYmluL2VjaG8nOwoj
CiRDb25me1BpbmdQYXRofSA9ICcvYmluL3BpbmcnOwoKIwojIFBpbmcgY29tbWFuZC4gIFRoZSBm
b2xsb3dpbmcgdmFyaWFibGVzIGFyZSBzdWJzdGl0dXRlZCBhdCBydW4tdGltZToKIwojICAgJHBp
bmdQYXRoICAgICAgcGF0aCB0byBwaW5nICgkQ29uZntQaW5nUGF0aH0pCiMgICAkaG9zdCAgICAg
ICAgICBob3N0IG5hbWUKIwojIFdhZGUgQnJvd24gcmVwb3J0cyB0aGF0IG9uIHNvbGFyaXMgMi42
IGFuZCAyLjcgcGluZyAtcyByZXR1cm5zIHRoZSB3cm9uZwojIGV4aXQgc3RhdHVzICgwIGV2ZW4g
b24gZmFpbHVyZSkuICBSZXBsYWNlIHdpdGggInBpbmcgJGhvc3QgMSIsIHdoaWNoCiMgZ2V0cyB0
aGUgY29ycmVjdCBleGl0IHN0YXR1cyBidXQgd2UgZG9uJ3QgZ2V0IHRoZSByb3VuZC10cmlwIHRp
bWUuCiMKJENvbmZ7UGluZ0NtZH0gPSAnL3Vzci9zaGFyZS9vbmxpbmVCYWNrdXAvYmluL29icy1w
aW5nICRob3N0JzsKCiMKIyBNYXhpbXVtIHJvdW5kLXRyaXAgcGluZyB0aW1lIGluIG1pbGxpc2Vj
b25kcy4gIFRoaXMgdGhyZXNob2xkIGlzIHNldAojIHRvIGF2b2lkIGJhY2tpbmcgdXAgUENzIHRo
YXQgYXJlIHJlbW90ZWx5IGNvbm5lY3RlZCB0aHJvdWdoIFdBTiBvcgojIGRpYWx1cCBjb25uZWN0
aW9ucy4gIFRoZSBvdXRwdXQgZnJvbSBwaW5nIC1zIChhc3N1bWluZyBpdCBpcyBzdXBwb3J0ZWQK
IyBvbiB5b3VyIHN5c3RlbSkgaXMgdXNlZCB0byBjaGVjayB0aGUgcm91bmQtdHJpcCBwYWNrZXQg
dGltZS4gIE9uIHlvdXIKIyBsb2NhbCBMQU4gcm91bmQtdHJpcCB0aW1lcyBzaG91bGQgYmUgbXVj
aCBsZXNzIHRoYW4gMjBtc2VjLiAgT24gbW9zdAojIFdBTiBvciBkaWFsdXAgY29ubmVjdGlvbnMg
dGhlIHJvdW5kLXRyaXAgdGltZSB3aWxsIGJlIHR5cGljYWxseSBtb3JlCiMgdGhhbiAyMG1zZWMu
ICBUdW5lIGlmIG5lY2Vzc2FyeS4KIwokQ29uZntQaW5nTWF4TXNlY30gPSAyMDsKCiMKIyBDb21w
cmVzc2lvbiBsZXZlbCB0byB1c2Ugb24gZmlsZXMuICAwIG1lYW5zIG5vIGNvbXByZXNzaW9uLiAg
Q29tcHJlc3Npb24KIyBsZXZlbHMgY2FuIGJlIGZyb20gMSAobGVhc3QgY3B1IHRpbWUsIHNsaWdo
dGx5IHdvcnNlIGNvbXByZXNzaW9uKSB0bwojIDkgKG1vc3QgY3B1IHRpbWUsIHNsaWdodGx5IGJl
dHRlciBjb21wcmVzc2lvbikuICBUaGUgcmVjb21tZW5kZWQgdmFsdWUKIyBpcyAzLiAgQ2hhbmdp
bmcgdG8gNSwgZm9yIGV4YW1wbGUsIHdpbGwgdGFrZSBtYXliZSAyMCUgbW9yZSBjcHUgdGltZQoj
IGFuZCB3aWxsIGdldCBhbm90aGVyIDItMyUgYWRkaXRpb25hbCBjb21wcmVzc2lvbi4gU2VlIHRo
ZSB6bGliCiMgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjb21wcmVz
c2lvbiBsZXZlbHMuCiMKIyBDaGFuZ2luZyBjb21wcmVzc2lvbiBvbiBvciBvZmYgYWZ0ZXIgYmFj
a3VwcyBoYXZlIGFscmVhZHkgYmVlbiBkb25lCiMgd2lsbCByZXF1aXJlIGJvdGggY29tcHJlc3Nl
ZCBhbmQgdW5jb21wcmVzc2VkIHBvb2wgZmlsZXMgdG8gYmUgc3RvcmVkLgojIFRoaXMgd2lsbCBp
bmNyZWFzZSB0aGUgcG9vbCBzdG9yYWdlIHJlcXVpcmVtZW50cywgYXQgbGVhc3QgdW50aWwgYWxs
CiMgdGhlIG9sZCBiYWNrdXBzIGV4cGlyZSBhbmQgYXJlIGRlbGV0ZWQuCiMKIyBJdCBpcyBvayB0
byBjaGFuZ2UgdGhlIGNvbXByZXNzaW9uIHZhbHVlIChmcm9tIG9uZSBub24temVybyB2YWx1ZSB0
bwojIGFub3RoZXIgbm9uLXplcm8gdmFsdWUpIGFmdGVyIGR1bXBzIGFyZSBhbHJlYWR5IGRvbmUu
ICBTaW5jZSBCYWNrdXBQQwojIG1hdGNoZXMgcG9vbCBmaWxlcyBieSBjb21wYXJpbmcgdGhlIHVu
Y29tcHJlc3NlZCB2ZXJzaW9ucywgaXQgd2lsbCBzdGlsbAojIGNvcnJlY3RseSBtYXRjaCBuZXcg
aW5jb21pbmcgZmlsZXMgYWdhaW5zdCBleGlzdGluZyBwb29sIGZpbGVzLiAgVGhlCiMgbmV3IGNv
bXByZXNzaW9uIGxldmVsIHdpbGwgdGFrZSBlZmZlY3Qgb25seSBmb3IgbmV3IGZpbGVzIHRoYXQg
YXJlCiMgbmV3bHkgY29tcHJlc3NlZCBhbmQgYWRkZWQgdG8gdGhlIHBvb2wuCiMKIyBJZiBjb21w
cmVzc2lvbiB3YXMgb2ZmIGFuZCB5b3UgYXJlIGVuYWJsaW5nIGNvbXByZXNzaW9uIGZvciB0aGUg
Zmlyc3QKIyB0aW1lIHlvdSBjYW4gdXNlIHRoZSBCYWNrdXBQQ19jb21wcmVzc1Bvb2wgdXRpbGl0
eSB0byBjb21wcmVzcyB0aGUKIyBwb29sLiAgVGhpcyBhdm9pZHMgaGF2aW5nIHRoZSBwb29sIGdy
b3cgdG8gYWNjb21tb2RhdGUgYm90aCBjb21wcmVzc2VkCiMgYW5kIHVuY29tcHJlc3NlZCBiYWNr
dXBzLiAgU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLgojCiMgTm90
ZTogY29tcHJlc3Npb24gbmVlZHMgdGhlIENvbXByZXNzOjpabGliIHBlcmwgbGlicmFyeS4gIElm
IHRoZQojIENvbXByZXNzOjpabGliIGxpYnJhcnkgY2FuJ3QgYmUgZm91bmQgdGhlbiAkQ29uZntD
b21wcmVzc0xldmVsfSBpcwojIGZvcmNlZCB0byAwIChjb21wcmVzc2lvbiBvZmYpLgojCiRDb25m
e0NvbXByZXNzTGV2ZWx9ID0gMDsKCiMKIyBUaW1lb3V0IGluIHNlY29uZHMgd2hlbiBsaXN0ZW5p
bmcgZm9yIHRoZSB0cmFuc3BvcnQgcHJvZ3JhbSdzCiMgKHNtYmNsaWVudCwgdGFyIGV0Yykgc3Rk
b3V0LiBJZiBubyBvdXRwdXQgaXMgcmVjZWl2ZWQgZHVyaW5nIHRoaXMKIyB0aW1lLCB0aGVuIGl0
IGlzIGFzc3VtZWQgdGhhdCBzb21ldGhpbmcgaGFzIHdlZGdlZCBkdXJpbmcgYSBiYWNrdXAsCiMg
YW5kIHRoZSBiYWNrdXAgaXMgdGVybWluYXRlZC4KIwojIE5vdGUgdGhhdCBzdGRvdXQgYnVmZmVy
aW5nIGNvbWJpbmVkIHdpdGggaHVnZSBmaWxlcyBiZWluZyBiYWNrZWQgdXAKIyBjb3VsZCBjYXVz
ZSBsb25naXNoIGRlbGF5cyBpbiB0aGUgb3V0cHV0IGZyb20gc21iY2xpZW50IHRoYXQKIyBCYWNr
dXBQQ19kdW1wIHNlZXMsIHNvIGluIHJhcmUgY2FzZXMgeW91IG1pZ2h0IHdhbnQgdG8gaW5jcmVh
c2UKIyB0aGlzIHZhbHVlLgojCiMgRGVzcGl0ZSB0aGUgbmFtZSwgdGhpcyBwYXJhbWV0ZXIgc2V0
cyB0aGUgdGltZW91dCBmb3IgYWxsIHRyYW5zcG9ydAojIG1ldGhvZHMgKHRhciwgc21iIGV0Yyku
CiMKJENvbmZ7Q2xpZW50VGltZW91dH0gPSAwOwoKIwojIE1heGltdW0gbnVtYmVyIG9mIGxvZyBm
aWxlcyB3ZSBrZWVwIGFyb3VuZCBpbiBlYWNoIFBDJ3MgZGlyZWN0b3J5CiMgKGllOiBwYy8kaG9z
dCkuICBUaGVzZSBmaWxlcyBhcmUgYWdlZCBtb250aGx5LiAgQSBzZXR0aW5nIG9mIDEyCiMgbWVh
bnMgdGhlcmUgd2lsbCBiZSBhdCBtb3N0IHRoZSBmaWxlcyBMT0csIExPRy4wLCBMT0cuMSwgLi4u
IExPRy4xMQojIGluIHRoZSBwYy8kaG9zdCBkaXJlY3RvcnkgKGllOiBhYm91dCBhIHllYXJzIHdv
cnRoKS4gIChFeGNlcHQgdGhpcwojIG1vbnRoJ3MgTE9HLCB0aGVzZSBmaWxlcyB3aWxsIGhhdmUg
YSAueiBleHRlbnNpb24gaWYgY29tcHJlc3Npb24KIyBpcyBvbikuCiMKIyBJZiB5b3UgZGVjcmVh
c2UgdGhpcyBudW1iZXIgYWZ0ZXIgQmFja3VwUEMgaGFzIGJlZW4gcnVubmluZyBmb3IgYQojIHdo
aWxlIHlvdSB3aWxsIGhhdmUgdG8gbWFudWFsbHkgcmVtb3ZlIHRoZSBvbGRlciBsb2cgZmlsZXMu
CiMKJENvbmZ7TWF4T2xkUGVyUENMb2dGaWxlc30gPSAxMjsKCiMKIyBPcHRpb25hbCBjb21tYW5k
cyB0byBydW4gYmVmb3JlIGFuZCBhZnRlciBkdW1wcyBhbmQgcmVzdG9yZXMsCiMgYW5kIGFsc28g
YmVmb3JlIGFuZCBhZnRlciBlYWNoIHNoYXJlIG9mIGEgZHVtcC4KIwojIFN0ZG91dCBmcm9tIHRo
ZXNlIGNvbW1hbmRzIHdpbGwgYmUgd3JpdHRlbiB0byB0aGUgWGZlciAob3IgUmVzdG9yZSkKIyBs
b2cgZmlsZS4gIE9uZSBleGFtcGxlIG9mIHVzaW5nIHRoZXNlIGNvbW1hbmRzIHdvdWxkIGJlIHRv
CiMgc2h1dCBkb3duIGFuZCByZXN0YXJ0IGEgZGF0YWJhc2Ugc2VydmVyLCBkdW1wIGEgZGF0YWJh
c2UKIyB0byBmaWxlcyBmb3IgYmFja3VwLCBvciBkb2luZyBhIHNuYXBzaG90IG9mIGEgc2hhcmUg
cHJpb3IKIyB0byBhIGJhY2t1cC4gIEV4YW1wbGU6CiMKIyAgICAkQ29uZntEdW1wUHJlVXNlckNt
ZH0gPSAnJHNzaFBhdGggLXEgLXggLWwgcm9vdCAkaG9zdCAvdXNyL2Jpbi9kdW1wTXlzcWwnOwoj
CiMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBzdWJzdGl0dXRpb25zIGFyZSBtYWRlIGF0IHJ1biB0
aW1lIGZvcgojICRDb25me0R1bXBQcmVVc2VyQ21kfSwgJENvbmZ7RHVtcFBvc3RVc2VyQ21kfSwg
JENvbmZ7RHVtcFByZVNoYXJlQ21kfQojIGFuZCAkQ29uZntEdW1wUG9zdFNoYXJlQ21kfToKIwoj
ICAgICAgICAkdHlwZSAgICAgICAgIHR5cGUgb2YgZHVtcCAoaW5jciBvciBmdWxsKQojICAgICAg
ICAkeGZlck9LICAgICAgIDEgaWYgdGhlIGR1bXAgc3VjY2VlZGVkLCAwIGlmIGl0IGRpZG4ndAoj
ICAgICAgICAkY2xpZW50ICAgICAgIGNsaWVudCBuYW1lIGJlaW5nIGJhY2tlZCB1cAojICAgICAg
ICAkaG9zdCAgICAgICAgIGhvc3QgbmFtZSAoY291bGQgYmUgZGlmZmVyZW50IGZyb20gY2xpZW50
IG5hbWUgaWYKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDb25me0NsaWVudE5h
bWVBbGlhc30gaXMgc2V0KQojICAgICAgICAkaG9zdElQICAgICAgIElQIGFkZHJlc3Mgb2YgaG9z
dAojICAgICAgICAkdXNlciAgICAgICAgIHVzZXIgbmFtZSBmcm9tIHRoZSBob3N0cyBmaWxlCiMg
ICAgICAgICRtb3JlVXNlcnMgICAgbGlzdCBvZiBhZGRpdGlvbmFsIHVzZXJzIGZyb20gdGhlIGhv
c3RzIGZpbGUKIyAgICAgICAgJHNoYXJlICAgICAgICB0aGUgZmlyc3Qgc2hhcmUgbmFtZSAob3Ig
Y3VycmVudCBzaGFyZSBmb3IKIyAgICAgICAgICAgICAgICAgICAgICAgICRDb25me0R1bXBQcmVT
aGFyZUNtZH0gYW5kICRDb25me0R1bXBQb3N0U2hhcmVDbWR9KQojICAgICAgICAkc2hhcmVzICAg
ICAgIGxpc3Qgb2YgYWxsIHRoZSBzaGFyZSBuYW1lcwojICAgICAgICAkWGZlck1ldGhvZCAgIHZh
bHVlIG9mICRDb25me1hmZXJNZXRob2R9IChlZzogdGFyLCByc3luYywgc21iKQojICAgICAgICAk
c3NoUGF0aCAgICAgIHZhbHVlIG9mICRDb25me1NzaFBhdGh9LAojICAgICAgICAkY21kVHlwZSAg
ICAgIHNldCB0byBEdW1wUHJlVXNlckNtZCBvciBEdW1wUG9zdFVzZXJDbWQKIwojIFRoZSBmb2xs
b3dpbmcgdmFyaWFibGUgc3Vic3RpdHV0aW9ucyBhcmUgbWFkZSBhdCBydW4gdGltZSBmb3IKIyAk
Q29uZntSZXN0b3JlUHJlVXNlckNtZH0gYW5kICRDb25me1Jlc3RvcmVQb3N0VXNlckNtZH06CiMK
IyAgICAgICAgJGNsaWVudCAgICAgICBjbGllbnQgbmFtZSBiZWluZyBiYWNrZWQgdXAKIyAgICAg
ICAgJHhmZXJPSyAgICAgICAxIGlmIHRoZSByZXN0b3JlIHN1Y2NlZWRlZCwgMCBpZiBpdCBkaWRu
J3QKIyAgICAgICAgJGhvc3QgICAgICAgICBob3N0IG5hbWUgKGNvdWxkIGJlIGRpZmZlcmVudCBm
cm9tIGNsaWVudCBuYW1lIGlmCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ29u
ZntDbGllbnROYW1lQWxpYXN9IGlzIHNldCkKIyAgICAgICAgJGhvc3RJUCAgICAgICBJUCBhZGRy
ZXNzIG9mIGhvc3QKIyAgICAgICAgJHVzZXIgICAgICAgICB1c2VyIG5hbWUgZnJvbSB0aGUgaG9z
dHMgZmlsZQojICAgICAgICAkbW9yZVVzZXJzICAgIGxpc3Qgb2YgYWRkaXRpb25hbCB1c2VycyBm
cm9tIHRoZSBob3N0cyBmaWxlCiMgICAgICAgICRzaGFyZSAgICAgICAgdGhlIGZpcnN0IHNoYXJl
IG5hbWUKIyAgICAgICAgJFhmZXJNZXRob2QgICB2YWx1ZSBvZiAkQ29uZntYZmVyTWV0aG9kfSAo
ZWc6IHRhciwgcnN5bmMsIHNtYikKIyAgICAgICAgJHNzaFBhdGggICAgICB2YWx1ZSBvZiAkQ29u
ZntTc2hQYXRofSwKIyAgICAgICAgJHR5cGUgICAgICAgICBzZXQgdG8gInJlc3RvcmUiCiMgICAg
ICAgICRia3VwU3JjSG9zdCAgaG9zdCBuYW1lIG9mIHRoZSByZXN0b3JlIHNvdXJjZQojICAgICAg
ICAkYmt1cFNyY1NoYXJlIHNoYXJlIG5hbWUgb2YgdGhlIHJlc3RvcmUgc291cmNlCiMgICAgICAg
ICRia3VwU3JjTnVtICAgYmFja3VwIG51bWJlciBvZiB0aGUgcmVzdG9yZSBzb3VyY2UKIyAgICAg
ICAgJHBhdGhIZHJTcmMgICBjb21tb24gc3RhcnRpbmcgcGF0aCBvZiByZXN0b3JlIHNvdXJjZQoj
ICAgICAgICAkcGF0aEhkckRlc3QgIGNvbW1vbiBzdGFydGluZyBwYXRoIG9mIGRlc3RpbmF0aW9u
CiMgICAgICAgICRmaWxlTGlzdCAgICAgbGlzdCBvZiBmaWxlcyBiZWluZyByZXN0b3JlZAojICAg
ICAgICAkY21kVHlwZSAgICAgIHNldCB0byBSZXN0b3JlUHJlVXNlckNtZCBvciBSZXN0b3JlUG9z
dFVzZXJDbWQKIwojIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgc3Vic3RpdHV0aW9ucyBhcmUgbWFk
ZSBhdCBydW4gdGltZSBmb3IKIyAkQ29uZntBcmNoaXZlUHJlVXNlckNtZH0gYW5kICRDb25me0Fy
Y2hpdmVQb3N0VXNlckNtZH06CiMKIyAgICAgICAgJGNsaWVudCAgICAgICBjbGllbnQgbmFtZSBi
ZWluZyBiYWNrZWQgdXAKIyAgICAgICAgJHhmZXJPSyAgICAgICAxIGlmIHRoZSBhcmNoaXZlIHN1
Y2NlZWRlZCwgMCBpZiBpdCBkaWRuJ3QKIyAgICAgICAgJGhvc3QgICAgICAgICBOYW1lIG9mIHRo
ZSBhcmNoaXZlIGhvc3QKIyAgICAgICAgJHVzZXIgICAgICAgICB1c2VyIG5hbWUgZnJvbSB0aGUg
aG9zdHMgZmlsZQojICAgICAgICAkc2hhcmUgICAgICAgIHRoZSBmaXJzdCBzaGFyZSBuYW1lCiMg
ICAgICAgICRYZmVyTWV0aG9kICAgdmFsdWUgb2YgJENvbmZ7WGZlck1ldGhvZH0gKGVnOiB0YXIs
IHJzeW5jLCBzbWIpCiMgICAgICAgICRIb3N0TGlzdCAgICAgbGlzdCBvZiBob3N0cyBiZWluZyBh
cmNoaXZlZAojICAgICAgICAkQmFja3VwTGlzdCAgIGxpc3Qgb2YgYmFja3VwIG51bWJlcnMgZm9y
IHRoZSBob3N0cyBiZWluZyBhcmNoaXZlZAojICAgICAgICAkYXJjaGl2ZWxvYyAgIGxvY2F0aW9u
IHdoZXJlIHRoZSBhcmNoaXZlIGlzIHNlbnQgdG8KIyAgICAgICAgJHBhcmZpbGUgICAgICBhbW91
bnQgb2YgcGFyaXR5IGRhdGEgYmVpbmcgZ2VuZXJhdGVkIChwZXJjZW50YWdlKQojICAgICAgICAk
Y29tcHJlc3Npb24gIGNvbXByZXNzaW9uIHByb2dyYW0gYmVpbmcgdXNlZCAoZWc6IGNhdCwgZ3pp
cCwgYnppcDIpCiMgICAgICAgICRjb21wZXh0ICAgICAgZXh0ZW5zaW9uIHVzZWQgZm9yIGNvbXBy
ZXNzaW9uIHR5cGUgKGVnOiByYXcsIGd6LCBiejIpCiMgICAgICAgICRzcGxpdHNpemUgICAgc2l6
ZSBvZiB0aGUgZmlsZXMgdGhhdCB0aGUgYXJjaGl2ZSBjcmVhdGVzCiMgICAgICAgICRzc2hQYXRo
ICAgICAgdmFsdWUgb2YgJENvbmZ7U3NoUGF0aH0sCiMgICAgICAgICR0eXBlICAgICAgICAgc2V0
IHRvICJhcmNoaXZlIgojICAgICAgICAkY21kVHlwZSAgICAgIHNldCB0byBBcmNoaXZlUHJlVXNl
ckNtZCBvciBBcmNoaXZlUG9zdFVzZXJDbWQKIwokQ29uZntEdW1wUHJlVXNlckNtZH0gPSAnL3Vz
ci9zaGFyZS9vbmxpbmVCYWNrdXAvYmluL29icy1wcmVCYWNrdXAgJGhvc3QgJHR5cGUgLXMgJHNo
YXJlcyAtYiAxJzsKJENvbmZ7RHVtcFBvc3RVc2VyQ21kfSA9ICcvdXNyL3NoYXJlL29ubGluZUJh
Y2t1cC9iaW4vb2JzLXBvc3RCYWNrdXAgJGhvc3QgJHR5cGUgJHhmZXJPSyAtcyAkc2hhcmVzJzsK
JENvbmZ7RHVtcFByZVNoYXJlQ21kfSA9ICcvdXNyL3NoYXJlL29ubGluZUJhY2t1cC9iaW4vb2Jz
LXByZVNoYXJlICRob3N0IC1zICRzaGFyZSAtdCAkY21kVHlwZSAtZCAkdHlwZSAtYSAiJHNoYXJl
cyInOwokQ29uZntEdW1wUG9zdFNoYXJlQ21kfSA9ICcvdXNyL3NoYXJlL29ubGluZUJhY2t1cC9i
aW4vb2JzLXBvc3RTaGFyZSAkaG9zdCAtcyAkc2hhcmUgLXQgJGNtZFR5cGUgLVMgJHhmZXJPSyc7
CiRDb25me1Jlc3RvcmVQcmVVc2VyQ21kfSA9ICcvdXNyL3NoYXJlL29ubGluZUJhY2t1cC9iaW4v
b2JzLXByZVNoYXJlICRob3N0IC1zICRia3VwU3JjU2hhcmUgLXQgJGNtZFR5cGUgLXIgIiRmaWxl
TGlzdCInOwokQ29uZntSZXN0b3JlUG9zdFVzZXJDbWR9ID0gJy91c3Ivc2hhcmUvb25saW5lQmFj
a3VwL2Jpbi9vYnMtcG9zdFNoYXJlICRob3N0IC1zICRia3VwU3JjU2hhcmUgLXQgJGNtZFR5cGUg
LVMgJHhmZXJPSyAtciAiJGZpbGVMaXN0Iic7CiRDb25me0FyY2hpdmVQcmVVc2VyQ21kfSA9IHVu
ZGVmOwokQ29uZntBcmNoaXZlUG9zdFVzZXJDbWR9ID0gdW5kZWY7CgojCiMgV2hldGhlciB0aGUg
ZXhpdCBzdGF0dXMgb2YgZWFjaCBQcmVVc2VyQ21kIGFuZAojIFBvc3RVc2VyQ21kIGlzIGNoZWNr
ZWQuCiMKIyBJZiBzZXQgYW5kIHRoZSBEdW1wL1Jlc3RvcmUvQXJjaGl2ZSBQcmUvUG9zdCBVc2Vy
Q21kCiMgcmV0dXJucyBhIG5vbi16ZXJvIGV4aXQgc3RhdHVzIHRoZW4gdGhlIGR1bXAvcmVzdG9y
ZS9hcmNoaXZlCiMgaXMgYWJvcnRlZC4gIFRvIG1haW50YWluIGJhY2t3YXJkIGNvbXBhdGliaWxp
dHkgKHdoZXJlCiMgdGhlIGV4aXQgc3RhdHVzIGluIGVhcmx5IHZlcnNpb25zIHdhcyBhbHdheXMg
aWdub3JlZCksCiMgdGhpcyBmbGFnIGRlZmF1bHRzIHRvIDAuCiMKIyBJZiB0aGlzIGZsYWcgaXMg
c2V0IGFuZCB0aGUgRHVtcC9SZXN0b3JlL0FyY2hpdmUgUHJlVXNlckNtZAojIGZhaWxzIHRoZW4g
dGhlIG1hdGNoaW5nIER1bXAvUmVzdG9yZS9BcmNoaXZlIFBvc3RVc2VyQ21kIGlzCiMgbm90IGV4
ZWN1dGVkLiAgSWYgRHVtcFByZVNoYXJlQ21kIHJldHVybnMgYSBub24tZXhpdCBzdGF0dXMsCiMg
dGhlbiBEdW1wUG9zdFNoYXJlQ21kIGlzIG5vdCBleGVjdXRlZCwgYnV0IHRoZSBEdW1wUG9zdFVz
ZXJDbWQKIyBpcyBzdGlsbCBydW4gKHNpbmNlIER1bXBQcmVVc2VyQ21kIG11c3QgaGF2ZSBwcmV2
aW91c2x5CiMgc3VjY2VlZGVkKS4KIwojIEFuIGV4YW1wbGUgb2YgYSBEdW1wUHJlVXNlckNtZCB0
aGF0IG1pZ2h0IGZhaWwgaXMgYSBzY3JpcHQKIyB0aGF0IHNuYXBzaG90cyBvciBkdW1wcyBhIGRh
dGFiYXNlIHdoaWNoIGZhaWxzIGJlY2F1c2UKIyBvZiBzb21lIGRhdGFiYXNlIGVycm9yLgojCiRD
b25me1VzZXJDbWRDaGVja1N0YXR1c30gPSAnMSc7CgojCiMgT3ZlcnJpZGUgdGhlIGNsaWVudCdz
IGhvc3QgbmFtZS4gIFRoaXMgYWxsb3dzIG11bHRpcGxlIGNsaWVudHMKIyB0byBhbGwgcmVmZXIg
dG8gdGhlIHNhbWUgcGh5c2ljYWwgaG9zdC4gIFRoaXMgc2hvdWxkIG9ubHkgYmUKIyBzZXQgaW4g
dGhlIHBlci1QQyBjb25maWcgZmlsZSBhbmQgaXMgb25seSB1c2VkIGJ5IEJhY2t1cFBDIGF0CiMg
dGhlIGxhc3QgbW9tZW50IHByaW9yIHRvIGdlbmVyYXRpbmcgdGhlIGNvbW1hbmQgdXNlZCB0byBi
YWNrdXAKIyB0aGF0IG1hY2hpbmUgKGllOiB0aGUgdmFsdWUgb2YgJENvbmZ7Q2xpZW50TmFtZUFs
aWFzfSBpcyBpbnZpc2libGUKIyBldmVyeXdoZXJlIGVsc2UgaW4gQmFja3VwUEMpLiAgVGhlIHNl
dHRpbmcgY2FuIGJlIGEgaG9zdCBuYW1lIG9yCiMgSVAgYWRkcmVzcywgZWc6CiMKIyAgICAgICAg
ICRDb25me0NsaWVudE5hbWVBbGlhc30gPSAncmVhbEhvc3ROYW1lJzsKIyAgICAgICAgICRDb25m
e0NsaWVudE5hbWVBbGlhc30gPSAnMTkyLjEuMS4xNSc7CiMKIyB3aWxsIGNhdXNlIHRoZSByZWxl
dmFudCBzbWIvdGFyL3JzeW5jIGJhY2t1cC9yZXN0b3JlIGNvbW1hbmRzIHRvIGJlCiMgZGlyZWN0
ZWQgdG8gcmVhbEhvc3ROYW1lLCBub3QgdGhlIGNsaWVudCBuYW1lLgojCiMgTm90ZTogdGhpcyBz
ZXR0aW5nIGRvZXNuJ3Qgd29yayBmb3IgaG9zdHMgd2l0aCBESENQIHNldCB0byAxLgojCiRDb25m
e0NsaWVudE5hbWVBbGlhc30gPSB1bmRlZjsKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEVtYWlsIHJl
bWluZGVycywgc3RhdHVzIGFuZCBtZXNzYWdlcwojIChjYW4gYmUgb3ZlcnJpZGRlbiBpbiB0aGUg
cGVyLVBDIGNvbmZpZy5wbCkKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMKIyBGdWxsIHBhdGggdG8gdGhl
IHNlbmRtYWlsIGNvbW1hbmQuICBTZWN1cml0eSBjYXV0aW9uOiBub3JtYWwgdXNlcnMKIyBzaG91
bGQgbm90IGFsbG93ZWQgdG8gd3JpdGUgdG8gdGhpcyBmaWxlIG9yIGRpcmVjdG9yeS4KIwokQ29u
ZntTZW5kbWFpbFBhdGh9ID0gJy91c3Ivc2Jpbi9zZW5kbWFpbCc7CgojCiMgTWluaW11bSBwZXJp
b2QgYmV0d2VlbiBjb25zZWN1dGl2ZSBlbWFpbHMgdG8gYSBzaW5nbGUgdXNlci4KIyBUaGlzIHRy
aWVzIHRvIGtlZXAgYW5ub3lpbmcgZW1haWwgdG8gdXNlcnMgdG8gYSByZWFzb25hYmxlCiMgbGV2
ZWwuICBFbWFpbCBjaGVja3MgYXJlIGRvbmUgbmlnaHRseSwgc28gdGhpcyBudW1iZXIgaXMgZWZm
ZWN0aXZlbHkKIyByb3VuZGVkIHVwIChpZTogMi41IG1lYW5zIGEgdXNlciB3aWxsIG5ldmVyIHJl
Y2VpdmUgZW1haWwgbW9yZQojIHRoYW4gb25jZSBldmVyeSAzIGRheXMpLgojCiRDb25me0VNYWls
Tm90aWZ5TWluRGF5c30gPSAnNi41JzsKCiMKIyBOYW1lIHRvIHVzZSBhcyB0aGUgImZyb20iIG5h
bWUgZm9yIGVtYWlsLiAgRGVwZW5kaW5nIHVwb24geW91ciBtYWlsCiMgaGFuZGxlciB0aGlzIGlz
IGVpdGhlciBhIHBsYWluIG5hbWUgKGVnOiAiYWRtaW4iKSBvciBhIGZ1bGx5LXF1YWxpZmllZAoj
IG5hbWUgKGVnOiAiYWRtaW5AbXlkb21haW4uY29tIikuCiMKJENvbmZ7RU1haWxGcm9tVXNlck5h
bWV9ID0gJ29mZmljZUBiYWNrdXA0dS5hdCc7CgojCiMgRGVzdGluYXRpb24gYWRkcmVzcyB0byBh
biBhZG1pbmlzdHJhdGl2ZSB1c2VyIHdobyB3aWxsIHJlY2VpdmUgYQojIG5pZ2h0bHkgZW1haWwg
d2l0aCB3YXJuaW5ncyBhbmQgZXJyb3JzLiAgSWYgdGhlcmUgYXJlIG5vIHdhcm5pbmdzCiMgb3Ig
ZXJyb3JzIHRoZW4gbm8gZW1haWwgd2lsbCBiZSBzZW50LiAgRGVwZW5kaW5nIHVwb24geW91ciBt
YWlsCiMgaGFuZGxlciB0aGlzIGlzIGVpdGhlciBhIHBsYWluIG5hbWUgKGVnOiAiYWRtaW4iKSBv
ciBhIGZ1bGx5LXF1YWxpZmllZAojIG5hbWUgKGVnOiAiYWRtaW5AbXlkb21haW4uY29tIikuCiMK
JENvbmZ7RU1haWxBZG1pblVzZXJOYW1lfSA9ICdvZmZpY2VAYmFja3VwNHUuYXQnOwoKIwojIERl
c3RpbmF0aW9uIGRvbWFpbiBuYW1lIGZvciBlbWFpbCBzZW50IHRvIHVzZXJzLiAgQnkgZGVmYXVs
dAojIHRoaXMgaXMgZW1wdHksIG1lYW5pbmcgZW1haWwgaXMgc2VudCB0byBwbGFpbiwgdW5xdWFs
aWZpZWQKIyBhZGRyZXNzZXMuICBPdGhlcndpc2UsIHNldCBpdCB0byB0aGUgZGVzdGludGF0aW9u
IGRvbWFpbiwgZWc6CiMKIyAgICAkQ29uZ3tFTWFpbFVzZXJEZXN0RG9tYWlufSA9ICdAbXlkb21h
aW4uY29tJzsKIwojIFdpdGggdGhpcyBzZXR0aW5nIHVzZXIgZW1haWwgd2lsbCBiZSBzZXQgdG8g
J3VzZXJAbXlkb21haW4uY29tJy4KIwokQ29uZntFTWFpbFVzZXJEZXN0RG9tYWlufSA9ICcnOwoK
IwojIFRoaXMgc3ViamVjdCBhbmQgbWVzc2FnZSBpcyBzZW50IHRvIGEgdXNlciBpZiB0aGVpciBQ
QyBoYXMgbmV2ZXIgYmVlbgojIGJhY2tlZCB1cC4KIwojIFRoZXNlIHZhbHVlcyBhcmUgbGFuZ3Vh
Z2UtZGVwZW5kZW50LiAgVGhlIGRlZmF1bHQgdmVyc2lvbnMgY2FuIGJlCiMgZm91bmQgaW4gdGhl
IGxhbmd1YWdlIGZpbGUgKGVnOiBsaWIvQmFja3VwUEMvTGFuZy9lbi5wbSkuICBJZiB5b3UKIyBu
ZWVkIHRvIGNoYW5nZSB0aGUgbWVzc2FnZSwgY29weSBpdCBoZXJlIGFuZCBlZGl0IGl0LCBlZzoK
IwojICAgJENvbmZ7RU1haWxOb0JhY2t1cEV2ZXJNZXNnfSA9IDw8J0VPRic7CiMgICBUbzogJHVz
ZXIkZG9tYWluCiMgICBjYzoKIyAgIFN1YmplY3Q6ICRzdWJqCiMgICAKIyAgIERlYXIgJHVzZXJO
YW1lLAojICAgCiMgICBUaGlzIGlzIGEgc2l0ZS1zcGVjaWZpYyBlbWFpbCBtZXNzYWdlLgojICAg
RU9GCiMKJENvbmZ7RU1haWxOb0JhY2t1cEV2ZXJTdWJqfSA9IHVuZGVmOwokQ29uZntFTWFpbE5v
QmFja3VwRXZlck1lc2d9ID0gdW5kZWY7CgojCiMgSG93IG9sZCB0aGUgbW9zdCByZWNlbnQgYmFj
a3VwIGhhcyB0byBiZSBiZWZvcmUgbm90aWZ5aW5nIHVzZXIuCiMgV2hlbiB0aGVyZSBoYXZlIGJl
ZW4gbm8gYmFja3VwcyBpbiB0aGlzIG51bWJlciBvZiBkYXlzIHRoZSB1c2VyCiMgaXMgc2VudCBh
biBlbWFpbC4KIwokQ29uZntFTWFpbE5vdGlmeU9sZEJhY2t1cERheXN9ID0gMTA7CgojCiMgVGhp
cyBzdWJqZWN0IGFuZCBtZXNzYWdlIGlzIHNlbnQgdG8gYSB1c2VyIGlmIHRoZWlyIFBDIGhhcyBu
b3QgcmVjZW50bHkKIyBiZWVuIGJhY2tlZCB1cCAoaWU6IG1vcmUgdGhhbiAkQ29uZntFTWFpbE5v
dGlmeU9sZEJhY2t1cERheXN9IGRheXMgYWdvKS4KIwojIFRoZXNlIHZhbHVlcyBhcmUgbGFuZ3Vh
Z2UtZGVwZW5kZW50LiAgVGhlIGRlZmF1bHQgdmVyc2lvbnMgY2FuIGJlCiMgZm91bmQgaW4gdGhl
IGxhbmd1YWdlIGZpbGUgKGVnOiBsaWIvQmFja3VwUEMvTGFuZy9lbi5wbSkuICBJZiB5b3UKIyBu
ZWVkIHRvIGNoYW5nZSB0aGUgbWVzc2FnZSwgY29weSBpdCBoZXJlIGFuZCBlZGl0IGl0LCBlZzoK
IwojICAgJENvbmZ7RU1haWxOb0JhY2t1cFJlY2VudE1lc2d9ID0gPDwnRU9GJzsKIyAgIFRvOiAk
dXNlciRkb21haW4KIyAgIGNjOgojICAgU3ViamVjdDogJHN1YmoKIyAgIAojICAgRGVhciAkdXNl
ck5hbWUsCiMgICAKIyAgIFRoaXMgaXMgYSBzaXRlLXNwZWNpZmljIGVtYWlsIG1lc3NhZ2UuCiMg
ICBFT0YKIwokQ29uZntFTWFpbE5vQmFja3VwUmVjZW50U3Vian0gPSAiQmFja3VwNFUgLSBrZWlu
ZSBuZXVlbiBCYWNrdXBzIGZceHtjM31ceHtiY31yIENvbXB1dGVyIFwkaG9zdCI7CiRDb25me0VN
YWlsTm9CYWNrdXBSZWNlbnRNZXNnfSA9ICJUbzogXCR1c2VyXCRkb21haW4KY2M6IG9mZmljZVxA
YmFja3VwNHUuYXQKU3ViamVjdDogXCRzdWJqClwkaGVhZGVycwoKU2VociBnZWVocnRlKHIpIFwk
dXNlck5hbWUsCgpJaHIgQ29tcHV0ZXIgKFwkaG9zdCkga29ubnRlIHNlaXQgXCRkYXlzIFRhZ2Vu
IG5pY2h0IG1laHIgZXJmb2xncmVpY2ggZ2VzaWNoZXJ0IHdlcmRlbi4KCklociBDb21wdXRlciB3
dXJkZSB2b24gdm9yIFwkZmlyc3RUaW1lIFRhZ2VuIGJpcyB2b3IgXCRkYXlzIFRhZ2VuIFwkbnVt
QmFja3VwcyBtYWwKZXJmb2xncmVpY2ggZ2VzaWNoZXJ0LgpCYWNrdXBzIHNvbGx0ZW4gYXV0b21h
dGlzY2ggZXJmb2xnZW4sIHdlbm4gSWhyIENvbXB1dGVyIGFtIE5ldHp3ZXJrIGFuZ2VzY2hsb3Nz
ZW4gaXN0LgoKV2VubiBJaHIgQ29tcHV0ZXIgaW4gZGVuIGxldHp0ZW4gXCRkYXlzIFRhZ2VuIG1l
aHIgYWxzIGVpbiBwYWFyIFN0dW5kZW4gYW0KTmV0endlcmsgYW5nZXNjaGxvc3NlbiB3YXIsIHNv
bGx0ZW4gU2llIElocmVuIElULURpZW5zdGxlaXN0ZXIgb2RlciBpaHJlbiBCYWNrdXAtQmV0cmV1
ZXIga29udGFrdGllcmVuIHVtIGRpZSBVcnNhY2hlIHp1IGVybWl0dGVsbiB1bmQgenUgYmVoZWJl
bi4KCkJpdHRlIGRlbmtlbiBTaWUgZGFyYW4sIGRhc3MgYWxsZSBpbiBkZW4gbGV0enRlbiBcJGRh
eXMgVGFnZW4gZ2VceHtjM31ceHthNH1uZGVydGVuIERhdGVpZW4gKHouQi4KYXVjaCBFbWFpbHMg
dW5kIEFuaFx4e2MzfVx4e2E0fW5nZSBvZGVyIERhdGVuYmFua2VpbnRyXHh7YzN9XHh7YTR9Z2Up
IHZlcmxvcmVuIGdlaGVuIGZhbGxzIElocmUKRmVzdHBsYXR0ZSBhdXNmXHh7YzN9XHh7YTR9bGx0
IG9kZXIgRGF0ZWllbiBkdXJjaCB2ZXJzZWhlbnRsaWNoZXMgTFx4e2MzfVx4e2I2fXNjaGVuIG9k
ZXIKVmlyZW5iZWZhbGwgdW5icmF1Y2hiYXIgd2VyZGVuLgoKTWl0IGZyZXVuZGxpY2hlbiBHclx4
e2MzfVx4e2JjfVx4e2MzfVx4ezlmfWVuLApJaHIgQmFja3VwNFUgVGVhbQogTWFpbDoJb2ZmaWNl
XEBiYWNrdXA0dS5hdAogV2ViOglodHRwOi8vd3d3LkJhY2t1cDRVLmF0CgpEZW5rZW4gU2llIGFu
IGRpZSBVbXdlbHQgYmV2b3Igc2llIGRpZXNlcyBNYWlsIGF1c2RydWNrZW4gOi0pIjsKCiMKIyBI
b3cgb2xkIHRoZSBtb3N0IHJlY2VudCBiYWNrdXAgb2YgT3V0bG9vayBmaWxlcyBoYXMgdG8gYmUg
YmVmb3JlCiMgbm90aWZ5aW5nIHVzZXIuCiMKJENvbmZ7RU1haWxOb3RpZnlPbGRPdXRsb29rRGF5
c30gPSA1OwoKIwojIFRoaXMgc3ViamVjdCBhbmQgbWVzc2FnZSBpcyBzZW50IHRvIGEgdXNlciBp
ZiB0aGVpciBPdXRsb29rIGZpbGVzIGhhdmUKIyBub3QgcmVjZW50bHkgYmVlbiBiYWNrZWQgdXAg
KGllOiBtb3JlIHRoYW4gJENvbmZ7RU1haWxOb3RpZnlPbGRPdXRsb29rRGF5c30KIyBkYXlzIGFn
bykuCiMKIyBUaGVzZSB2YWx1ZXMgYXJlIGxhbmd1YWdlLWRlcGVuZGVudC4gIFRoZSBkZWZhdWx0
IHZlcnNpb25zIGNhbiBiZQojIGZvdW5kIGluIHRoZSBsYW5ndWFnZSBmaWxlIChlZzogbGliL0Jh
Y2t1cFBDL0xhbmcvZW4ucG0pLiAgSWYgeW91CiMgbmVlZCB0byBjaGFuZ2UgdGhlIG1lc3NhZ2Us
IGNvcHkgaXQgaGVyZSBhbmQgZWRpdCBpdCwgZWc6CiMKIyAgICRDb25me0VNYWlsT3V0bG9va0Jh
Y2t1cE1lc2d9ID0gPDwnRU9GJzsKIyAgIFRvOiAkdXNlciRkb21haW4KIyAgIGNjOgojICAgU3Vi
amVjdDogJHN1YmoKIyAgIAojICAgRGVhciAkdXNlck5hbWUsCiMgICAKIyAgIFRoaXMgaXMgYSBz
aXRlLXNwZWNpZmljIGVtYWlsIG1lc3NhZ2UuCiMgICBFT0YKIwokQ29uZntFTWFpbE91dGxvb2tC
YWNrdXBTdWJqfSA9IHVuZGVmOwokQ29uZntFTWFpbE91dGxvb2tCYWNrdXBNZXNnfSA9IHVuZGVm
OwoKIwojIEFkZGl0aW9uYWwgZW1haWwgaGVhZGVycy4gIElmIHlvdSBjaGFuZ2UgdGhlIGNoYXJz
ZXQKIyB0byB1dGY4IHRoZW4gQmFja3VwUENfc2VuZEVtYWlsIHdpbGwgdXNlIHV0ZjggZm9yCiMg
dGhlIGVtYWlsIGJvZHkuCiMKJENvbmZ7RU1haWxIZWFkZXJzfSA9ICdNSU1FLVZlcnNpb246IDEu
MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiJzsKCiMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIwojIENHSSB1c2VyIGludGVyZmFjZSBjb25maWd1cmF0aW9uIHNldHRpbmdz
CiMgKGNhbiBiZSBvdmVycmlkZGVuIGluIHRoZSBwZXItUEMgY29uZmlnLnBsKQojIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMKIwojIE5vcm1hbCB1c2VycyBjYW4gb25seSBhY2Nlc3MgaW5mb3JtYXRpb24gc3Bl
Y2lmaWMgdG8gdGhlaXIgaG9zdC4KIyBUaGV5IGNhbiBzdGFydC9zdG9wL2Jyb3dzZS9yZXN0b3Jl
IGJhY2t1cHMuCiMKIyBBZG1pbmlzdHJhdGl2ZSB1c2VycyBoYXZlIGZ1bGwgYWNjZXNzIHRvIGFs
bCBob3N0cywgcGx1cyBvdmVyYWxsCiMgc3RhdHVzIGFuZCBsb2cgaW5mb3JtYXRpb24uCiMKIyBU
aGUgYWRtaW5pc3RyYXRpdmUgdXNlcnMgYXJlIHRoZSB1bmlvbiBvZiB0aGUgdW5peC9saW51eCBn
cm91cAojICRDb25me0NnaUFkbWluVXNlckdyb3VwfSBhbmQgdGhlIG1hbnVhbCBsaXN0IG9mIHVz
ZXJzLCBzZXBhcmF0ZWQKIyBieSBzcGFjZXMsIGluICRDb25me0NnaUFkbWluVXNlcnN9LiBJZiB5
b3UgZG9uJ3Qgd2FudCBhIGdyb3VwIG9yCiMgbWFudWFsIGxpc3Qgb2YgdXNlcnMgc2V0IHRoZSBj
b3JyZXNwb25kaW5nIGNvbmZpZ3VyYXRpb24gc2V0dGluZwojIHRvIHVuZGVmIG9yIGFuIGVtcHR5
IHN0cmluZy4KIwojIElmIHlvdSB3YW50IGV2ZXJ5IHVzZXIgdG8gaGF2ZSBhZG1pbiBwcml2aWxl
Z2VzIChjYXJlZnVsISksIHNldAojICRDb25me0NnaUFkbWluVXNlcnN9ID0gJyonLgojCiMgRXhh
bXBsZXM6CiMgICAgJENvbmZ7Q2dpQWRtaW5Vc2VyR3JvdXB9ID0gJ2FkbWluJzsKIyAgICAkQ29u
ZntDZ2lBZG1pblVzZXJzfSAgICAgPSAnY3JhaWcgY2VsaWEnOwojICAgIC0tPiBhZG1pbmlzdHJh
dGl2ZSB1c2VycyBhcmUgdGhlIHVuaW9uIG9mIGdyb3VwIGFkbWluLCBwbHVzCiMgICAgICBjcmFp
ZyBhbmQgY2VsaWEuCiMKIyAgICAkQ29uZntDZ2lBZG1pblVzZXJHcm91cH0gPSAnJzsKIyAgICAk
Q29uZntDZ2lBZG1pblVzZXJzfSAgICAgPSAnY3JhaWcgY2VsaWEnOwojICAgIC0tPiBhZG1pbmlz
dHJhdGl2ZSB1c2VycyBhcmUgb25seSBjcmFpZyBhbmQgY2VsaWEnLgojCiRDb25me0NnaUFkbWlu
VXNlckdyb3VwfSA9ICdiYWNrdXBwYyc7CiRDb25me0NnaUFkbWluVXNlcnN9ID0gJ2JhY2t1cHBj
IG1leWVyJzsKCiMKIyBUQ1AgcG9ydCBudW1iZXIgb2YgdGhlIFNDR0kgc2VydmVyLiAgQSBuZWdh
dGl2ZSB2YWx1ZSBkaXNhYmxlcyB0aGUKIyBTQ0dJIHNlcnZlci4gIFNldCB0byBhbnkgYXZhaWxh
YmxlIHVucHJpdmlsZWdlZCBUQ1AgcG9ydCBudW1iZXIsCiMgZWc6IDEwMjY4LiAgQXBhY2hlIG5l
ZWRzIHRoZSBtb2Rfc2NnaSBtb2R1bGUgaW5zdGFsbGVkLCBhbmQgeW91IHdpbGwKIyBuZWVkIHRv
IHNldCB0aGUgc2FtZSBwb3J0IG51bWJlciBpbiB0aGUgQXBhY2hlIGNvbmZpZ3VyYXRpb24uIEhl
cmUKIyBhcmUgc29tZSB0eXBpY2FsIHNldHRpbmdzIHlvdSdsbCBuZWVkIGluIEFwYWNoZSdzIGh0
dHBkLmNvbmY6CiMKIyAgICBMb2FkTW9kdWxlIHNjZ2lfbW9kdWxlIG1vZHVsZXMvbW9kX3NjZ2ku
c28KIyAgICBTQ0dJTW91bnQgL0JhY2t1cFBDX0FkbWluIDEyNy4wLjAuMToxMDI2OAojICAgIDxM
b2NhdGlvbiAvQmFja3VwUENfQWRtaW4+CiMgICAgICAgIEF1dGhVc2VyRmlsZSAvZXRjL2h0dHBk
L2NvbmYvcGFzc3dkCiMgICAgICAgIEF1dGhUeXBlIGJhc2ljCiMgICAgICAgIEF1dGhOYW1lICJh
Y2Nlc3MiCiMgICAgICAgIHJlcXVpcmUgdmFsaWQtdXNlcgojICAgIDwvTG9jYXRpb24+CiMKIyBJ
bXBvcnRhbnQgc2VjdXJpdHkgd2FybmluZyEhICBUaGUgU0NHSVNlcnZlclBvcnQgbXVzdCBub3Qg
YmUKIyBhY2Nlc3NpYmxlIGJ5IGFueW9uZSB1bnRydXN0ZWQuICBUaGF0IG1lYW5zIHlvdSBjYW4n
dCBhbGxvdwojIHVudHJ1c3RlZCB1c2VycyBhY2Nlc3MgdG8gdGhlIEJhY2t1cFBDIHNlcnZlciwg
YW5kIHlvdSBzaG91bGQKIyBibG9jayB0aGUgU0NHSVNlcnZlclBvcnQgVENQIHBvcnQgb24gdGhl
IEJhY2t1cFBDIHNlcnZlci4gIElmIHlvdQojIGRvbid0IHVuZGVyc3RhbmQgd2hhdCB0aGF0IG1l
YW5zLCBvciBjYW4ndCBjb25maXJtIHlvdSBoYXZlCiMgY29uZmlndXJlZCBTQ0dJIHNlY3VyZWx5
LCB0aGVuIGRvbid0IGVuYWJsZSBpdCEhCiMKJENvbmZ7U0NHSVNlcnZlclBvcnR9ID0gLTE7Cgoj
CiMgVVJMIG9mIHRoZSBCYWNrdXBQQ19BZG1pbiBDR0kgc2NyaXB0LiAgVXNlZCBmb3IgZW1haWwg
bWVzc2FnZXMuCiMKJENvbmZ7Q2dpVVJMfSA9ICdodHRwOi8vZmlsZXNlcnZlci5Qcml2YXRlTEFO
LmF0L2JhY2t1cHBjL2luZGV4LmNnaSc7CgojCiMgRnVsbCBwYXRoIHRvIHRoZSBycmR0b29sIGNv
bW1hbmQuICBJZiBhdmFpbGFibGUsIGdyYXBocyBvZiBwb29sIHVzYWdlCiMgd2lsbCBiZSBnZW5l
cmF0ZWQuICBJZiBlbXB0eSwgdGhlbiB0aGUgZ3JhcGhzIHdpbGwgYmUgc2tpcHBlZC4KIwojIFNl
Y3VyaXR5IGNhdXRpb246IG5vcm1hbCB1c2VycyBzaG91bGQgbm90IGFsbG93ZWQgdG8gd3JpdGUg
dG8gdGhpcyBmaWxlCiMgb3IgZGlyZWN0b3J5LgojCiRDb25me1JyZFRvb2xQYXRofSA9ICcvdXNy
L2Jpbi9ycmR0b29sJzsKCiMKIyBGdWxsIHBhdGggdG8gdGhlIHJyZHRvb2wgY29tbWFuZC4gIElm
IGF2YWlsYWJsZSwgZ3JhcGhzIG9mIHBvb2wgdXNhZ2UKIyB3aWxsIGJlIGdlbmVyYXRlZC4gIElm
IGVtcHR5LCB0aGVuIHRoZSBncmFwaHMgd2lsbCBiZSBza2lwcGVkLgojCiMgU2VjdXJpdHkgY2F1
dGlvbjogbm9ybWFsIHVzZXJzIHNob3VsZCBub3QgYWxsb3dlZCB0byB3cml0ZSB0byB0aGlzIGZp
bGUKIyBvciBkaXJlY3RvcnkuCiMKJENvbmZ7UnJkVG9vbFBhdGh9ID0gJy91c3IvYmluL3JyZHRv
b2wnOwoKIyAgIAojIExhbmd1YWdlIHRvIHVzZS4gIFNlZSBsaWIvQmFja3VwUEMvTGFuZyBmb3Ig
dGhlIGxpc3Qgb2Ygc3VwcG9ydGVkCiMgbGFuZ3VhZ2VzLCB3aGljaCBpbmNsdWRlIEVuZ2xpc2gg
KGVuKSwgRnJlbmNoIChmciksIFNwYW5pc2ggKGVzKSwKIyBHZXJtYW4gKGRlKSwgSXRhbGlhbiAo
aXQpLCBEdXRjaCAobmwpIGFuZCBQb3J0dWd1ZXNlIEJyYXppbGxpYW4KIyAocHRfYnIpLgojCiMg
Q3VycmVudGx5IHRoZSBMYW5ndWFnZSBzZXR0aW5nIGFwcGxpZXMgdG8gdGhlIENHSSBpbnRlcmZh
Y2UgYW5kIGVtYWlsCiMgbWVzc2FnZXMgc2VudCB0byB1c2Vycy4gIExvZyBmaWxlcyBhbmQgb3Ro
ZXIgdGV4dCBhcmUgc3RpbGwgaW4gRW5nbGlzaC4KIwokQ29uZntMYW5ndWFnZX0gPSAnZGUnOwoK
IwojIFVzZXIgbmFtZXMgdGhhdCBhcmUgcmVuZGVyZWQgYnkgdGhlIENHSSBpbnRlcmZhY2UgY2Fu
IGJlIHR1cm5lZAojIGludG8gbGlua3MgaW50byB0aGVpciBob21lIHBhZ2Ugb3Igb3RoZXIgaW5m
b3JtYXRpb24gYWJvdXQgdGhlCiMgdXNlci4gIFRvIHNldCB0aGlzIHVwIHlvdSBuZWVkIHRvIGNy
ZWF0ZSB0d28gc3ByaW50ZigpIHN0cmluZ3MsCiMgdGhhdCBlYWNoIGNvbnRhaW4gYSBzaW5nbGUg
JyVzJyB0aGF0IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIHVzZXIKIyBuYW1lLiAgVGhlIGRlZmF1
bHQgaXMgYSBtYWlsdG86IGxpbmsuCiMKIyAkQ29uZntDZ2lVc2VySG9tZVBhZ2VDaGVja30gc2hv
dWxkIGJlIGFuIGFic29sdXRlIGZpbGUgcGF0aCB0aGF0CiMgaXMgdXNlZCB0byBjaGVjayAodmlh
ICItZiIpIHRoYXQgdGhlIHVzZXIgaGFzIGEgdmFsaWQgaG9tZSBwYWdlLgojIFNldCB0aGlzIHRv
IHVuZGVmIG9yIGFuIGVtcHR5IHN0cmluZyB0byB0dXJuIG9mZiB0aGlzIGNoZWNrLgojCiMgJENv
bmZ7Q2dpVXNlclVybENyZWF0ZX0gc2hvdWxkIGJlIGEgZnVsbCBVUkwgdGhhdCBwb2ludHMgdG8g
dGhlCiMgdXNlcidzIGhvbWUgcGFnZS4gIFNldCB0aGlzIHRvIHVuZGVmIG9yIGFuIGVtcHR5IHN0
cmluZyB0byB0dXJuCiMgb2ZmIGdlbmVyYXRpb24gb2YgVVJMcyBmb3IgdXNlciBuYW1lcy4KIwoj
IEV4YW1wbGU6CiMgICAgJENvbmZ7Q2dpVXNlckhvbWVQYWdlQ2hlY2t9ID0gJy92YXIvd3d3L2h0
bWwvdXNlcnMvJXMuaHRtbCc7CiMgICAgJENvbmZ7Q2dpVXNlclVybENyZWF0ZX0gICAgID0gJ2h0
dHA6Ly9teWhvc3QvdXNlcnMvJXMuaHRtbCc7CiMgICAgLS0+IGlmIC92YXIvd3d3L2h0bWwvdXNl
cnMvY3JhaWcuaHRtbCBleGlzdHMsIHRoZW4gJ2NyYWlnJyB3aWxsCiMgICAgICBiZSByZW5kZXJl
ZCBhcyBhIGxpbmsgdG8gaHR0cDovL215aG9zdC91c2Vycy9jcmFpZy5odG1sLgojCiRDb25me0Nn
aVVzZXJIb21lUGFnZUNoZWNrfSA9ICcnOwokQ29uZntDZ2lVc2VyVXJsQ3JlYXRlfSA9ICdtYWls
dG86JXMnOwoKIwojIERhdGUgZGlzcGxheSBmb3JtYXQgZm9yIENHSSBpbnRlcmZhY2UuICBUcnVl
IGZvciBVUy1zdHlsZSBkYXRlcyAoTU0vREQpCiMgYW5kIHplcm8gZm9yIGludGVybmF0aW9uYWwg
ZGF0ZXMgKEREL01NKS4KIwokQ29uZntDZ2lEYXRlRm9ybWF0TU1ERH0gPSAyOwoKIwojIElmIHNl
dCwgdGhlIGNvbXBsZXRlIGxpc3Qgb2YgaG9zdHMgYXBwZWFycyBpbiB0aGUgbGVmdCBuYXZpZ2F0
aW9uCiMgYmFyIHB1bGwtZG93biBmb3IgYWRtaW5pc3RyYXRvcnMuICBPdGhlcndpc2UsIGp1c3Qg
dGhlIGhvc3RzIGZvciB3aGljaAojIHRoZSB1c2VyIGlzIGxpc3RlZCBpbiB0aGUgaG9zdCBmaWxl
IChhcyBlaXRoZXIgdGhlIHVzZXIgb3IgaW4gbW9yZVVzZXJzKQojIGFyZSBkaXNwbGF5ZWQuCiMK
JENvbmZ7Q2dpTmF2QmFyQWRtaW5BbGxIb3N0c30gPSAnMSc7CgojCiMgRW5hYmxlL2Rpc2FibGUg
dGhlIHNlYXJjaCBib3ggaW4gdGhlIG5hdmlnYXRpb24gYmFyLgojCiRDb25me0NnaVNlYXJjaEJv
eEVuYWJsZX0gPSAnMSc7CgojCiMgQWRkaXRpb25hbCBuYXZpZ2F0aW9uIGJhciBsaW5rcy4gIFRo
ZXNlIGFwcGVhciBmb3IgYm90aCByZWd1bGFyIHVzZXJzCiMgYW5kIGFkbWluaXN0cmF0b3JzLiAg
VGhpcyBpcyBhIGxpc3Qgb2YgaGFzaGVzIGdpdmluZyB0aGUgbGluayAoVVJMKQojIGFuZCB0aGUg
dGV4dCAobmFtZSkgZm9yIHRoZSBsaW5rLiAgU3BlY2lmeWluZyBsbmFtZSBpbnN0ZWFkIG9mIG5h
bWUKIyB1c2VzIHRoZSBsYW5ndWFnZSBzcGVjaWZpYyBzdHJpbmcgKGllOiAkTGFuZy0+e2xuYW1l
fSkgaW5zdGVhZCBvZgojIGp1c3QgbGl0ZXJhbGx5IGRpc3BsYXlpbmcgbmFtZS4KIwokQ29uZntD
Z2lOYXZCYXJMaW5rc30gPSBbCiAgewogICAgJ2xpbmsnID0+ICc/YWN0aW9uPXZpZXcmdHlwZT1k
b2NzJywKICAgICdsbmFtZScgPT4gJ0RvY3VtZW50YXRpb24nLAogICAgJ25hbWUnID0+IHVuZGVm
CiAgfSwKICB7CiAgICAnbGluaycgPT4gJ2h0dHA6Ly9iYWNrdXBwYy5zb3VyY2Vmb3JnZS5uZXQv
ZmFxJywKICAgICdsbmFtZScgPT4gdW5kZWYsCiAgICAnbmFtZScgPT4gJ0ZBUScKICB9LAogIHsK
ICAgICdsaW5rJyA9PiAnaHR0cDovL2JhY2t1cHBjLnNvdXJjZWZvcmdlLm5ldCcsCiAgICAnbG5h
bWUnID0+IHVuZGVmLAogICAgJ25hbWUnID0+ICdTb3VyY2VGb3JnZScKICB9Cl07CgojCiMgSGls
aWdodCBjb2xvcnMgYmFzZWQgb24gc3RhdHVzIHRoYXQgYXJlIHVzZWQgaW4gdGhlIFBDIHN1bW1h
cnkgcGFnZS4KIwokQ29uZntDZ2lTdGF0dXNIaWxpZ2h0Q29sb3J9ID0gewogICdEaXNhYmxlZF9B
bGxCYWNrdXBzRGlzYWJsZWQnID0+ICcjZDFkMWQxJywKICAnRGlzYWJsZWRfT25seU1hbnVhbEJh
Y2t1cHMnID0+ICcjZDFkMWQxJywKICAnUmVhc29uX2JhY2t1cF9jYW5jZWxlZF9ieV91c2VyJyA9
PiAnI2ZmOTkwMCcsCiAgJ1JlYXNvbl9iYWNrdXBfZG9uZScgPT4gJyNjY2ZmY2MnLAogICdSZWFz
b25fYmFja3VwX2ZhaWxlZCcgPT4gJyNmZmNjY2MnLAogICdSZWFzb25fbm9fcGluZycgPT4gJyNm
ZmZmOTknLAogICdTdGF0dXNfYmFja3VwX2luX3Byb2dyZXNzJyA9PiAnIzY2Y2M5OScKfTsKCiMK
IyBBZGRpdGlvbmFsIENHSSBoZWFkZXIgdGV4dC4KIwokQ29uZntDZ2lIZWFkZXJzfSA9ICc8bWV0
YSBodHRwLWVxdWl2PSJwcmFnbWEiIGNvbnRlbnQ9Im5vLWNhY2hlIj4nOwoKIwojIERpcmVjdG9y
eSB3aGVyZSBpbWFnZXMgYXJlIHN0b3JlZC4gIFRoaXMgZGlyZWN0b3J5IHNob3VsZCBiZSBiZWxv
dwojIEFwYWNoZSdzIERvY3VtZW50Um9vdC4gIFRoaXMgdmFsdWUgaXNuJ3QgdXNlZCBieSBCYWNr
dXBQQyBidXQgaXMKIyB1c2VkIGJ5IGNvbmZpZ3VyZS5wbCB3aGVuIHlvdSB1cGdyYWRlIEJhY2t1
cFBDLgojCiMgRXhhbXBsZToKIyAgICAgJENvbmZ7Q2dpSW1hZ2VEaXJ9ID0gJy91c3IvbG9jYWwv
YXBhY2hlL2h0ZG9jcy9CYWNrdXBQQyc7CiMKJENvbmZ7Q2dpSW1hZ2VEaXJ9ID0gJy91c3Ivc2hh
cmUvYmFja3VwcGMvaW1hZ2UnOwoKIwojIEFkZGl0aW9uYWwgbWFwcGluZ3Mgb2YgZmlsZSBuYW1l
IGV4dGVuaW9ucyB0byBDb250ZW50LVR5cGUgZm9yCiMgaW5kaXZpZHVhbCBmaWxlIHJlc3RvcmUu
ICBTZWUgJEV4dDJDb250ZW50VHlwZSBpbiBCYWNrdXBQQ19BZG1pbgojIGZvciB0aGUgZGVmYXVs
dCBzZXR0aW5nLiAgWW91IGNhbiBhZGQgYWRkaXRpb25hbCBzZXR0aW5ncyBoZXJlLAojIG9yIG92
ZXJyaWRlIGFueSBkZWZhdWx0IHNldHRpbmdzLiAgRXhhbXBsZToKIwojICAgICAkQ29uZntDZ2lF
eHQyQ29udGVudFR5cGV9ID0gewojICAgICAgICAgICAgICAgICAncGwnICA9PiAndGV4dC9wbGFp
bicsCiMgICAgICAgICAgfTsKIwokQ29uZntDZ2lFeHQyQ29udGVudFR5cGV9ID0ge307CgojCiMg
VVJMICh3aXRob3V0IHRoZSBsZWFkaW5nIGh0dHA6Ly9ob3N0KSBmb3IgQmFja3VwUEMncyBpbWFn
ZSBkaXJlY3RvcnkuCiMgVGhlIENHSSBzY3JpcHQgdXNlcyB0aGlzIHZhbHVlIHRvIHNlcnZlIHVw
IGltYWdlIGZpbGVzLgojCiMgRXhhbXBsZToKIyAgICAgJENvbmZ7Q2dpSW1hZ2VEaXJVUkx9ID0g
Jy9CYWNrdXBQQyc7CiMKJENvbmZ7Q2dpSW1hZ2VEaXJVUkx9ID0gJy9iYWNrdXBwYy9pbWFnZSc7
CgojCiMgQ1NTIHN0eWxlc2hlZXQgInNraW4iIGZvciB0aGUgQ0dJIGludGVyZmFjZS4gIEl0IGlz
IHN0b3JlZAojIGluIHRoZSAkQ29uZntDZ2lJbWFnZURpcn0gZGlyZWN0b3J5IGFuZCBhY2Nlc3Nl
ZCB2aWEgdGhlCiMgJENvbmZ7Q2dpSW1hZ2VEaXJVUkx9IFVSTC4KIwojIEZvciBCYWNrdXBQQyB2
My54IHNldmVyYWwgY29sb3IsIGxheW91dCBhbmQgZm9udCBjaGFuZ2VzIHdlcmUgbWFkZS4KIyBU
aGUgcHJldmlvdXMgdjIueCB2ZXJzaW9uIGlzIGF2YWlsYWJsZSBhcyBCYWNrdXBQQ19zdG5kX29y
aWcuY3NzLCBzbwojIGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBza2luLCBjaGFuZ2UgdGhpcyB0byBC
YWNrdXBQQ19zdG5kX29yaWcuY3NzLgojCiRDb25me0NnaUNTU0ZpbGV9ID0gJ0JhY2t1cFBDX3N0
bmQuY3NzJzsKCiMKIyBXaGV0aGVyIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZWRpdCB0aGVpciBw
ZXItUEMgY29uZmlnLgojCiRDb25me0NnaVVzZXJDb25maWdFZGl0RW5hYmxlfSA9ICcxJzsKCiMK
IyBXaGljaCBwZXItaG9zdCBjb25maWcgdmFyaWFibGVzIGEgbm9uLWFkbWluIHVzZXIgaXMgYWxs
b3dlZAojIHRvIGVkaXQuICBBZG1pbiB1c2VycyBjYW4gZWRpdCBhbGwgcGVyLWhvc3QgY29uZmln
IHZhcmlhYmxlcywKIyBldmVuIGlmIGRpc2FibGVkIGluIHRoaXMgbGlzdC4KIwojIFNFQ1VSSVRZ
IFdBUk5JTkc6IERvIG5vdCBsZXQgdXNlcnMgZWRpdCBhbnkgb2YgdGhlIENtZAojIGNvbmZpZyB2
YXJpYWJsZXMhICBUaGF0J3MgYmVjYXVzZSBhIHVzZXIgY291bGQgc2V0IGEKIyBDbWQgdG8gYSBz
aGVsbCBzY3JpcHQgb2YgdGhlaXIgY2hvaWNlIGFuZCBpdCB3aWxsIGJlCiMgcnVuIGFzIHRoZSBC
YWNrdXBQQyB1c2VyLiAgVGhhdCBzY3JpcHQgY291bGQgZG8gYWxsCiMgc29ydHMgb2YgYmFkIHRo
aW5ncy4KIwokQ29uZntDZ2lVc2VyQ29uZmlnRWRpdH0gPSB7CiAgJ0FyY2hpdmVDbGllbnRDbWQn
ID0+ICcwJywKICAnQXJjaGl2ZUNvbXAnID0+ICcwJywKICAnQXJjaGl2ZURlc3QnID0+ICcwJywK
ICAnQXJjaGl2ZUluZm9LZWVwQ250JyA9PiAnMCcsCiAgJ0FyY2hpdmVQYXInID0+ICcwJywKICAn
QXJjaGl2ZVBvc3RVc2VyQ21kJyA9PiAnMCcsCiAgJ0FyY2hpdmVQcmVVc2VyQ21kJyA9PiAnMCcs
CiAgJ0FyY2hpdmVTcGxpdCcgPT4gJzAnLAogICdCYWNrdXBGaWxlc0V4Y2x1ZGUnID0+ICcwJywK
ICAnQmFja3VwRmlsZXNPbmx5JyA9PiAnMScsCiAgJ0JhY2t1cFplcm9GaWxlc0lzRmF0YWwnID0+
ICcwJywKICAnQmFja3Vwc0Rpc2FibGUnID0+ICcwJywKICAnQmxhY2tvdXRCYWRQaW5nTGltaXQn
ID0+ICcwJywKICAnQmxhY2tvdXRHb29kQ250JyA9PiAnMCcsCiAgJ0JsYWNrb3V0UGVyaW9kcycg
PT4gJzAnLAogICdDbGllbnRDaGFyc2V0JyA9PiAnMCcsCiAgJ0NsaWVudENoYXJzZXRMZWdhY3kn
ID0+ICcwJywKICAnQ2xpZW50Q29tbWVudCcgPT4gJzAnLAogICdDbGllbnROYW1lQWxpYXMnID0+
ICcwJywKICAnQ2xpZW50U2hhcmVOYW1lMlBhdGgnID0+ICcwJywKICAnQ2xpZW50VGltZW91dCcg
PT4gJzAnLAogICdDb21wcmVzc0xldmVsJyA9PiAnMCcsCiAgJ0R1bXBQb3N0U2hhcmVDbWQnID0+
ICcwJywKICAnRHVtcFBvc3RVc2VyQ21kJyA9PiAnMCcsCiAgJ0R1bXBQcmVTaGFyZUNtZCcgPT4g
JzAnLAogICdEdW1wUHJlVXNlckNtZCcgPT4gJzAnLAogICdFTWFpbEFkbWluU3ViamVjdCcgPT4g
JzAnLAogICdFTWFpbEFkbWluVXNlck5hbWUnID0+ICcwJywKICAnRU1haWxGcm9tVXNlck5hbWUn
ID0+ICcwJywKICAnRU1haWxIZWFkZXJzJyA9PiAnMCcsCiAgJ0VNYWlsTm9CYWNrdXBFdmVyTWVz
ZycgPT4gJzAnLAogICdFTWFpbE5vQmFja3VwRXZlclN1YmonID0+ICcwJywKICAnRU1haWxOb0Jh
Y2t1cFJlY2VudE1lc2cnID0+ICcwJywKICAnRU1haWxOb0JhY2t1cFJlY2VudFN1YmonID0+ICcw
JywKICAnRU1haWxOb3RpZnlNaW5EYXlzJyA9PiAnMCcsCiAgJ0VNYWlsTm90aWZ5T2xkQmFja3Vw
RGF5cycgPT4gJzAnLAogICdFTWFpbE5vdGlmeU9sZE91dGxvb2tEYXlzJyA9PiAnMCcsCiAgJ0VN
YWlsT3V0bG9va0JhY2t1cE1lc2cnID0+ICcwJywKICAnRU1haWxPdXRsb29rQmFja3VwU3Viaicg
PT4gJzAnLAogICdFTWFpbFVzZXJEZXN0RG9tYWluJyA9PiAnMCcsCiAgJ0ZpbGxDeWNsZScgPT4g
JzAnLAogICdGaXhlZElQTmV0Qmlvc05hbWVDaGVjaycgPT4gJzAnLAogICdGdHBCbG9ja1NpemUn
ID0+ICcwJywKICAnRnRwRm9sbG93U3ltbGlua3MnID0+ICcwJywKICAnRnRwUGFzc3dkJyA9PiAn
MCcsCiAgJ0Z0cFBvcnQnID0+ICcwJywKICAnRnRwUmVzdG9yZUVuYWJsZWQnID0+ICcwJywKICAn
RnRwU2hhcmVOYW1lJyA9PiAnMCcsCiAgJ0Z0cFRpbWVvdXQnID0+ICcwJywKICAnRnRwVXNlck5h
bWUnID0+ICcwJywKICAnRnVsbEFnZU1heCcgPT4gJzAnLAogICdGdWxsS2VlcENudCcgPT4gJzAn
LAogICdGdWxsS2VlcENudE1pbicgPT4gJzAnLAogICdGdWxsUGVyaW9kJyA9PiAnMCcsCiAgJ0lu
Y3JBZ2VNYXgnID0+ICcwJywKICAnSW5jcktlZXBDbnQnID0+ICcwJywKICAnSW5jcktlZXBDbnRN
aW4nID0+ICcwJywKICAnSW5jclBlcmlvZCcgPT4gJzAnLAogICdNYXhPbGRQZXJQQ0xvZ0ZpbGVz
JyA9PiAnMCcsCiAgJ05tYkxvb2t1cENtZCcgPT4gJzAnLAogICdObWJMb29rdXBGaW5kSG9zdENt
ZCcgPT4gJzAnLAogICdQaW5nQ21kJyA9PiAnMCcsCiAgJ1BpbmdNYXhNc2VjJyA9PiAnMCcsCiAg
J1JlZkNudEZzY2snID0+ICcxJywKICAnUmVzdG9yZUluZm9LZWVwQ250JyA9PiAnMCcsCiAgJ1Jl
c3RvcmVQb3N0VXNlckNtZCcgPT4gJzAnLAogICdSZXN0b3JlUHJlVXNlckNtZCcgPT4gJzAnLAog
ICdSc3luY0FyZ3MnID0+ICcwJywKICAnUnN5bmNBcmdzRXh0cmEnID0+ICcwJywKICAnUnN5bmNC
YWNrdXBQQ1BhdGgnID0+ICcwJywKICAnUnN5bmNDbGllbnRQYXRoJyA9PiAnMCcsCiAgJ1JzeW5j
RnVsbEFyZ3NFeHRyYScgPT4gJzAnLAogICdSc3luY0luY3JBcmdzRXh0cmEnID0+ICcwJywKICAn
UnN5bmNSZXN0b3JlQXJncycgPT4gJzAnLAogICdSc3luY1Jlc3RvcmVBcmdzRXh0cmEnID0+ICcw
JywKICAnUnN5bmNTaGFyZU5hbWUnID0+ICcxJywKICAnUnN5bmNTc2hBcmdzJyA9PiAnMCcsCiAg
J1JzeW5jZENsaWVudFBvcnQnID0+ICcwJywKICAnUnN5bmNkUGFzc3dkJyA9PiAnMCcsCiAgJ1Jz
eW5jZFVzZXJOYW1lJyA9PiAnMCcsCiAgJ1NtYkNsaWVudEZ1bGxDbWQnID0+ICcwJywKICAnU21i
Q2xpZW50SW5jckNtZCcgPT4gJzAnLAogICdTbWJDbGllbnRQYXRoJyA9PiAnMCcsCiAgJ1NtYkNs
aWVudFJlc3RvcmVDbWQnID0+ICcwJywKICAnU21iU2hhcmVOYW1lJyA9PiAnMCcsCiAgJ1NtYlNo
YXJlUGFzc3dkJyA9PiAnMCcsCiAgJ1NtYlNoYXJlVXNlck5hbWUnID0+ICcwJywKICAnVGFyQ2xp
ZW50Q21kJyA9PiAnMCcsCiAgJ1RhckNsaWVudFBhdGgnID0+ICcwJywKICAnVGFyQ2xpZW50UmVz
dG9yZUNtZCcgPT4gJzAnLAogICdUYXJGdWxsQXJncycgPT4gJzAnLAogICdUYXJJbmNyQXJncycg
PT4gJzAnLAogICdUYXJTaGFyZU5hbWUnID0+ICcwJywKICAnVXNlckNtZENoZWNrU3RhdHVzJyA9
PiAnMCcsCiAgJ1hmZXJMb2dMZXZlbCcgPT4gJzAnLAogICdYZmVyTWV0aG9kJyA9PiAnMCcKfTsK
JENvbmZ7Q2xpZW50Q2hhcnNldExlZ2FjeX0gPSAnJzsKJENvbmZ7Q21kUXVldWVOaWNlfSA9IDA7
CiRDb25me0Z0cEJsb2NrU2l6ZX0gPSAwOwokQ29uZntGdHBGb2xsb3dTeW1saW5rc30gPSAnMCc7
CiRDb25me0Z0cFBhc3NpdmV9ID0gJzAnOwokQ29uZntGdHBQYXNzd2R9ID0gJyc7CiRDb25me0Z0
cFBvcnR9ID0gMDsKJENvbmZ7RnRwU2hhcmVOYW1lfSA9IFtdOwokQ29uZntGdHBUaW1lb3V0fSA9
IDA7CiRDb25me0Z0cFVzZXJOYW1lfSA9ICcnOwokQ29uZntSc3luY0FyZ3NFeHRyYX0gPSBbXTsK
JENvbmZ7UGluZzZQYXRofSA9IHVuZGVmOwokQ29uZntDZ2lVc2VyRGVsZXRlQmFja3VwRW5hYmxl
fSA9IDA7CiRDb25me0NsaWVudENvbW1lbnR9ID0gJyc7CiRDb25me0NsaWVudFNoYXJlTmFtZTJQ
YXRofSA9IHt9OwokQ29uZntFTWFpbEFkbWluU3ViamVjdH0gPSAnJzsKJENvbmZ7RmlsbEN5Y2xl
fSA9IDA7CiRDb25me1JzeW5jRnVsbEFyZ3NFeHRyYX0gPSBbXTsKJENvbmZ7UnN5bmNJbmNyQXJn
c0V4dHJhfSA9IFtdOwokQ29uZntSc3luY1Jlc3RvcmVBcmdzRXh0cmF9ID0gdW5kZWY7CiRDb25m
e1JzeW5jU3NoQXJnc30gPSBbXTsK
--=-onGIWRVJLTR9WjnJ6UqP
Content-Type: application/x-perl; name="devel-w8.pl"
Content-Disposition: attachment; filename="devel-w8.pl"
Content-Transfer-Encoding: base64
JENvbmZ7Q2xpZW50TmFtZUFsaWFzfSA9IFsKICAnZGV2ZWwtdzgubXliYWNrdXAnCl07CiRDb25m
e1JzeW5jZENsaWVudFBvcnR9ID0gMTAwMzA7CiMgcHJpdmF0ZSBjb25maWd1cmF0aW9uCiMgPSBz
dGFuZGFyZCBjb25maWd1cmF0aW9uIGxpa2UgY29uZmlnLnBsCiMgYnV0OgokQ29uZntGdWxsUGVy
aW9kfSA9ICcyOS45Nyc7CiRDb25me0Z1bGxDbnRZZWFybHl9ID0gJzEnOwokQ29uZntJbmNyUGVy
aW9kfSA9ICc2Ljk3JzsKJENvbmZ7QmFja3VwUENOaWdodGx5UGVyaW9kfSA9IDE7CiRDb25me1Jz
eW5jU2hhcmVOYW1lfSA9IFsKICAnQkFDS1VQNFUnLAogICdDJywKICAnV0lORE9XUycKXTsK
--=-onGIWRVJLTR9WjnJ6UqP
Content-Type: application/x-perl; name="honeypc.pl"
Content-Disposition: attachment; filename="honeypc.pl"
Content-Transfer-Encoding: base64
JENvbmZ7Q2xpZW50TmFtZUFsaWFzfSA9ICdob25leXBjLm15YmFja3VwJzsKJENvbmZ7UnN5bmNk
Q2xpZW50UG9ydH0gPSAnMTAwNjUnOwo=
--=-onGIWRVJLTR9WjnJ6UqP
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--=-onGIWRVJLTR9WjnJ6UqP
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
BackupPC-users mailing list
[email protected]
List: https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki: https://github.com/backuppc/backuppc/wiki
Project: https://backuppc.github.io/backuppc/
--=-onGIWRVJLTR9WjnJ6UqP--