%global debug_package %{nil}
Name: xsidplay
Version: 2.1.9
Release: 42%{?dist}
Vendor: xsidplay2.sf.net
License: GPL
Summary: XSidPlay SID Music Player
Group: sound
Source0: https://downloads.sourceforge.net/xsidplay2/%{name}-%{version}.tar.bz2
BuildRequires: autoconf cmake gcc-c++ libstdc++-devel qt5-qtbase-devel
BuildRequires: SDL-devel alsa-lib-devel pulseaudio-libs-devel
BuildRequires: libsidplayfp-devel
BuildRequires: devscripts
%description
XSIDPLAY2 is a QT based music player for SID music. It's based onto
Michael Schwendt's XSIDPLAY, the historical SID player for Linux,
actually no more developed by the author.
%prep
%setup -q -n %{name}-%{version}
cat | base64 -d > xsidplay_diff_r288-r294_RAW.patch << EOF1
ZGlmZiAtTmF1cncgL3hzaWRwbGF5Mi1jb2RlLXIyODgtdHJ1bmsveHNpZHBsYXkvQ2hhbmdlTG9n
IC94c2lkcGxheTItY29kZS1yMjk0LXRydW5rL3hzaWRwbGF5L0NoYW5nZUxvZwotLS0gL3hzaWRw
bGF5Mi1jb2RlLXIyODgtdHJ1bmsveHNpZHBsYXkvQ2hhbmdlTG9nCTIwMjAtMDYtMjAgMTc6MzA6
MjEuMDAwMDAwMDAwICswMjAwCisrKyAveHNpZHBsYXkyLWNvZGUtcjI5NC10cnVuay94c2lkcGxh
eS9DaGFuZ2VMb2cJMjAyMy0wMi0yNSAxNDowMTo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTEsMyAr
MSw4IEBACitWZXJzaW9uIDIuMi4wCistIFFUIGNobmFnZXMgZm9yIGNvbXBpbGluZworLSBTd2l0
Y2ggdG8gbmV3IFNJRGxlbmd0aCBNRDUgZmlsZSBmb3JtYXQKKy0gU2lkRnJlcSBpcyBpbnRlZ3Jh
dGVkIHdpdGggSkM2NGRpcyBtdWx0aS1jYXRjaCBpZiBtb3JlIGVuZ2luZSBhcmUgcHJlc2VudAor
CiBWZXJzaW9uIDIuMS45CiAtIFJlbW92ZSBzb21lIG1lbW9yeSBsZWFrcwogLSBBZGQgYWdhaW4g
bGlic2lkcGxheTEgKHdpdGggbWl4ZXIgYW5kIGZpbHRlcikKZGlmZiAtTmF1cncgL3hzaWRwbGF5
Mi1jb2RlLXIyODgtdHJ1bmsveHNpZHBsYXkvc2lkaWQuY2ZnIC94c2lkcGxheTItY29kZS1yMjk0
LXRydW5rL3hzaWRwbGF5L3NpZGlkLmNmZwotLS0gL3hzaWRwbGF5Mi1jb2RlLXIyODgtdHJ1bmsv
eHNpZHBsYXkvc2lkaWQuY2ZnCTIwMjAtMDYtMjAgMTI6MDM6MjcuMDAwMDAwMDAwICswMjAwCisr
KyAveHNpZHBsYXkyLWNvZGUtcjI5NC10cnVuay94c2lkcGxheS9zaWRpZC5jZmcJMjAyMy0wMi0x
OSAxNDoxMjozMy4wMDAwMDAwMDAgKzAxMDAKQEAgLTE1LDYgKzE1LDggQEAKIEE5IEZGIDhEIDE4
IEQ0IENCIDA3IDEwIENFIDYwIEVORA0KIDI1NmJ5dGVzL0xheGl0eQ0KIDRBIDRBIEE4IDg4IDg4
IDMwIDA3IDQ2IEZDIDY2IEZCIEVORA0KKzI1NmJ5dGVzL0xGVA0KKzRCIDBFIEFBIENCIEY4IEVO
RA0KIDI1NmJ5dGVzL1RhcGUNCiA2MCBBOSA2NCBDRCAxMiBEMCBEMCBGQiA2MCBGMCAxMiBFTkQN
CiAyNTZieXRlcy9XeW5kZXgNCkBAIC00MiwxMiArNDQsMTIgQEAKIDQtTWF0L1BhdGNod29yaw0K
IDI5IEYwIDRBIDRBIDRBIDRBIDhEID8/ID8/IEFEID8/ID8/IEM5IDAwIEYwIDIwIEVORA0KIA0K
KzQtTWF0L1RFRHBsYXkNCis0QSA0QSA0QSA0QSA0OCAyOSAwMSBBQSBCRCBFTkQNCisNCiA0Yml0
RGlnaS9USENNDQogNjAgPz8gPz8gPz8gPz8gPz8gPz8gMTggRDQgRTYgPz8gPz8gPz8gNEMgMEMg
REQgQkUgRU5EDQogDQotOGJpdERpZ2kvVEhDTQ0KLTEyIEQ0ID8/ID8/ID8/IDEyIEQ0ID8/ID8/
ID8/ID8/IDBGIEQ0ID8/ID8/ID8/ID8/ID8/ID8/ID8/ID8/ID8/IDRDIDBDIEREIEVORA0KLQ0K
IDhiaXREaWdpL01haG9uZXkNCiBBQyA/PyA/PyBDOCBDMCAwOSBEMCAwMiBBMCAwMSA4QyA/PyA/
PyA4QSAyOSAwRiBBQSBCRCA/PyA/PyA4RCA/PyA/PyBCRCA/PyA/PyBBQSBCRCA/PyA/PyA4RCAx
OCBENCBFTkQNCiANCkBAIC03OSw4ICs4MSw4IEBACiBBbGdvcml0aG0vOGJpdERpZ2kNCiBEMCBF
NyAyOCA2MCA4NSA/PyA0QyAxMCAwMCA4RCBFTkQNCiANCi1BbGdvcml0aG0vQWxnb1ZRVHJhY2tl
cl9WMQ0KLUEwIDAwIEI5ID8/ID8/IEYwIDU3IDM4IEU5IDAxIEFBIEJEID8/ID8/IDhEIEVORA0K
K0FsZ29WUVRyYWNrZXJfVjENCis4NSA/PyBBRCA/PyA/PyA4RCAxOCBENCBDNiA/PyBBOSA/PyA0
QyAwQyBERCBFTkQNCiANCiBBbGdvcml0aG0vRnJvZGlnaQ0KIEVDIDEyIEQwIEQwIEZCIEU4IEU4
IEVDIDEyIEQwIEQwIEZCIDg4IEQwIEVGIEE5IEVORA0KQEAgLTEyOCw3ICsxMzAsNiBAQAogKFN0
ZXZlX1Jvd2xhbmRzKQ0KIDQ4IDk4IEE0IEZFIDk5IEVORA0KIA0KLQ0KIEFudmlsDQogMjkgM0Yg
MTggNjkgMDEgMEEgOUQgPz8gPz8gQzggRU5EDQogDQpAQCAtMTYzLDYgKzE2NCwxMCBAQAogRUUg
Pz8gPz8gOUQgPz8gPz8gQzggQjkgPz8gPz8gODUgPz8gODQgPz8gMjkgN0YgQTggQjkgPz8gPz8g
OUQgPz8gPz8gOUQgPz8gPz8gQjkgPz8gPz8gOUQgPz8gPz8gOUQgRU5EDQogQkMgPz8gPz8gRDAg
Pz8gNEMgPz8gPz8gODggOTggRDAgPz8gOUQgPz8gPz8gOUQgPz8gPz8gQkQgPz8gPz8gQkMgPz8g
Pz8gOTkgPz8gPz8gQkQgPz8gPz8gOTkgRU5EDQogDQorQXNobGV5X0hvZ2dfRGlnaQ0KKzhEIDE4
IEQ0IDRDID8/ID8/IEE5ID8/IEYwID8/IDhEID8/ID8/IDRDID8/ID8/IEE5ID8/IDhEIDE4IEQ0
IEVORA0KK0M5IDYzIEYwID8/IEM5IDY0IEYwID8/IDRDID8/ID8/IEE5ID8/IDhEID8/ID8/IDhE
IDBFIEREIDYwIEM4IEI5ID8/ID8/IDlEIEVORA0KKw0KIEFzc2Fzc2luX1NhbXBsZV9NaXhlcg0K
IEEwIDAwIEIxIEE0IDI5IEYwIDRBIDRBIDRBIDRBIDhEID8/ID8/IEIxIEE4IDI5IEYwIDRBIDRB
IDRBIDRBIDhEID8/ID8/IEU2IDAxIEFEID8/ID8/IDE4IDZEIEVORA0KIA0KQEAgLTIyMywxMCAr
MjI4LDEwIEBACiBCZW5fRGFnbGlzaC9HcmVtbGluDQogQTggQjkgPz8gPz8gNDggMjkgRjAgNEEg
NEEgNEEgNEEgRU5EDQogDQotQmVuX0RhZ2xpc2gvR3JlbWxpbl9TRlgNCitEYWdsaXNoL0dyZW1s
aW5fU0ZYDQogOEQgMDMgRDQgQUMgPz8gPz8gQUQgPz8gPz8gMTkgPz8gPz8gOEQgMDQgRDQgQUQg
Pz8gPz8gMTggNkQgPz8gPz8gQTggRU5EDQogDQotQmVuX0RhZ2xpc2gvP0plZmZfQ2FsZGVyDQor
RGFnbGlzaC8/SmVmZl9DYWxkZXINCiA0OCBCRCA/PyA/PyBBOCBBOSA/PyA5OSAwNCBENCBBOSA/
PyA5OSAwNCBENCA2OCA5OSAwNSBENCBFTkQNCiANCiBCZXJrZWxleQ0KQEAgLTI1MCw4ICsyNTUs
OCBAQAogQnVnL05DSQ0KIENFIDQxIDAzIEQwIDYxIEFEIDQyIDAzIDhEIDQxIDAzIEFEIDEyIEMw
IDhEIDA0IEQ0IEFEIDEzIEMwIDhEIDBCIEQ0IEFEIDE0IEMwIDhEIDEyIEQ0IEVFIDQwIDAzIEVO
RA0KIA0KLUQuQS5JLlMuWS4NCi04RCAxOCBENCBBMiAxNyBBOSAwMCA5RCAwMCBENCBDQSAxMCBG
QSBBNSAzQyA0OCBBQSBBMCAwMCA4NCAzQyBCRCAwMCAwRCAyOSAxRiBGMCAwMyA0QyAyQSAwQiBC
RCAwMCAwRSA4NSAyQyBCRCAwMCAxMyA4NSAyQiBGMCAwOSBBMCBCNiA4OCBEMCBGRCBFTkQNCitC
dXNpYy9GcmFua19JbmtsYWFyDQorOEQgMTIgRDQgQTIgMDIgQTAgRkYgRDAgMDAgRU5EDQogDQog
QnVyZ3N0YWxsZXJfQg0KIDBBIDlEID8/ID8/IEE5IEZGIEIwID8/IDM4IEE5ID8/IDlEID8/ID8/
IEM4IEJEID8/ID8/IDlEID8/ID8/IEE1ID8/IDY5IDAxIDlEID8/ID8/IDkwIEVORA0KQEAgLTMz
NSw5ICszNDAsNiBAQAogQTggMjkgMDQgRDAgMEMgOTggMjkgMDMgRjAgMDcgMjkgMDEgRDAgMzQg
NEMgRU5EDQogOTkgMDQgRDQgQTUgPz8gMTggNjkgMDEgRU5EDQogDQotQ2hyaXNfTXVycmF5DQot
QzggOTggOUQgMDQgRDQgNjAgQzAgODAgRDAgMDcgQkQgPz8gPz8gOUQgMDQgRDQgNjAgRU5EDQot
DQogQ2hyaXNfV2Fsc2gNCiBFOSAwMCA4RCA/PyA/PyBBRCA/PyA/PyA4RCAwRSBENCBBRCA/PyA/
PyA4RCAwRiBENCBDRSA/PyA/PyBBRCA/PyA/PyBDOSAwMCBGMCAxQSBBRCA/PyA/PyAxOCA2RCA/
PyA/PyA4RCA/PyA/PyA4RCAxMCBENCBBRCA/PyA/PyA2RCA/PyA/PyA4RCA/PyA/PyA4RCAxMSBE
NCA2MCBBMCAwMCBBOSAxMCA4RCAxMiBENCBCMSA/PyBDOSBGRiBFTkQNCiANCkBAIC0zNzQsNiAr
Mzc2LDE4IEBACiBDb21tb2RvcmUvQW5keV9GaW5rZWwNCiBDOSBGRCBEMCAwOCBDOCBCMSA/PyA/
PyA/PyA0QyA/PyA/PyBDOSBGRSBEMCAwQyBDOCBCMSBFTkQNCiANCitDb21wYW5pb24NCitCQyA/
PyA/PyBDOCA5OCA5RCAwNCBENCA2MCBFTkQNCisoU2lkX1NlcXVlbmNlcikNCisxRSAxOCA4QiA3
RSBGQSAwNiBBQyBGMyBFNiA4RiBGOCAyRSAwMCAwMCAwMCBGMCBFTkQNCisoQWxlYXRvcnlfQ29t
cG9zZXIpDQorMUUgMTggOEIgN0UgRkEgMDYgQUMgRjMgRTYgOEYgRjggMkUgMDAgMDAgMDAgMEUg
RU5EDQorKENvbXBhbmlvbi9NdXJyYXkpDQorOUQgMDQgRDQgNjAgQzAgODAgRDAgMDcgQkQgPz8g
Pz8gOUQgPz8gPz8gNjAgQzAgRkYgRDAgRjAgNEMgRU5EDQorDQorQ29tcGFuaW9uL0pheV9EZXJy
ZXR0DQorMjkgMEYgMEEgQTggQjkgPz8gPz8gODUgPz8gQjkgPz8gPz8gODUgPz8gRUUgPz8gPz8g
QUQgPz8gPz8gQzkgPz8gRDAgRU5EDQorDQogQ1JEX1RyYWNrZXINCiBDMCA4MCBEMCAwNCA4NSA1
NyBBOSAwMCA4NSAyNiBFOCA4NiA1RSA4OCA4NCA2NSAxOCBBNSA1NyA2NSAyNiA4RCAxNiBENCA4
NSA1NyBBMiAwMCAyMCBFTkQNCiANCkBAIC0zODMsOSArMzk3LDYgQEAKIENvcGUvT21pY3Jvbg0K
IDhEIDE4IEQ0IEFEID8/ID8/IEYwIEY1IEFEID8/ID8/IEYwID8/IEE5ID8/IDhEIDE3IEQ0IEVF
IEVORA0KIA0KLUNSTC9KYXlfRGVycmV0dA0KLTI5IDBGIDBBIEE4IEI5ID8/ID8/IDg1ID8/IEI5
ID8/ID8/IDg1ID8/IEVFID8/ID8/IEFEID8/ID8/IEM5ID8/IEQwIEVORA0KLQ0KIENyZWF0aXZl
X1NwYXJrcw0KIDYwIEU4IEQwID8/IDIwID8/ID8/IEIxID8/IDI5IDBGIEFBIEIxID8/IDI5IEYw
IEVORA0KIA0KQEAgLTQwNiw2ICs0MTcsOSBAQAogQ3lyaW9uX0RpZ2kNCiAwRiA4RCAxOCBENCA2
OCBBOCA2OCA0MCBFRSA/PyA/PyBDNiAwMSBCMSAwMiBFNiAwMSA0QSA0QSA0QSA0QSA4RCAxOCBE
NCBBNCBBNiBFNiAwMiBEMCBFNiBFNiAwMyBFTkQNCiANCitELkEuSS5TLlkuDQorOEQgMTggRDQg
QTIgMTcgQTkgMDAgOUQgMDAgRDQgQ0EgMTAgRkEgQTUgM0MgNDggQUEgQTAgMDAgODQgM0MgQkQg
MDAgMEQgMjkgMUYgRjAgMDMgNEMgMkEgMEIgQkQgMDAgMEUgODUgMkMgQkQgMDAgMTMgODUgMkIg
RjAgMDkgQTAgQjYgODggRDAgRkQgRU5EDQorDQogRGFuX0xpdmVyYW5pDQogMzAgMDUgQ0EgRTAg
MDAgRDAgRjYgNjAgOEEgNDggOTggNDggQTkgRU5EDQogDQpAQCAtNDgxLDYgKzQ5NSw5IEBACiBE
aWdpbWl4ZXIvRnVuRmFjdG9yeQ0KIDI5IDBGIDEwIDA0IDRBIDRBIDRBIDRBIDhEIDE4IEQ0IEFE
ID8/ID8/IDQ5IDAxIEVORA0KIA0KK0RpZ2l0aXplX0Rlc2lnbl9Hcm91cA0KKzFCIEQ0IEQwIEZC
IEU4IEU4IEFEID8/ID8/IDRBIDRBIDRBIDRBIDhEIDE4IEQ0IEVORA0KKw0KIERNQw0KIDE4IDdE
ID8/ID8/IDk5ID8/ID8/IEJEID8/ID8/IDdEID8/ID8/ID8/ID8/ID8/IEJEID8/ID8/IDk5ID8/
ID8/IEJEID8/ID8/IDk5ID8/ID8/IEJEID8/ID8/IDNEID8/ID8/IDk5ID8/ID8/IDYwIEVORA0K
IChETUNfVjQueCkNCkBAIC01MjQsMTEgKzU0MSwxMiBAQAogRWQvV3JhdGhfRGlnaV8yDQogOTgg
NDggQTAgMDAgQjEgPz8gNEEgNEEgNEEgNEEgOEQgMTggRDQgRU5EDQogDQotRWRfQm9nYXNfVjEN
Ci1CNSA/PyA5RCA/PyA/PyBCNSA/PyA5RCA/PyA/PyA0QyA/PyA/PyAwQSAwQSAwQSAwQSA2OSAw
MSBFTkQNCi1FZF9Cb2dhc19WMg0KK0VkX0JvZ2FzL0FjY29sYWRlDQogQTkgMDAgOEQgPz8gPz8g
OEQgMDQgRDQgOEQgMEIgRDQgQUQgPz8gPz8gRDAgMDMgOEQgMTIgRDQgNjAgQTIgMDAgOEUgPz8g
Pz8gOEUgPz8gPz8gQTIgMDAgOEUgPz8gPz8gOEQgPz8gPz8gOEMgPz8gPz8gOTggMjkgRjAgOEQg
Pz8gPz8gQTkgMDggOEQgMDQgRDQgOEQgMEIgRDQgOEQgMTIgRDQgQUQgPz8gPz8gOEQgMTggRDQg
RU5EDQogDQorRWRfQm9nYXMvSGFrYW5zc29uDQorOTUgPz8gQTkgMDIgMTggNzUgPz8gOTUgPz8g
OTAgMDIgPz8gPz8gQTkgMDAgRU5EDQorDQogRWxlY3Ryb19Tb3VuZA0KIEYwIDAxIDYwIEE5IDY0
IDlEID8/ID8/IEJEID8/ID8/IEM5IDAxIEVORA0KIA0KQEAgLTU1OCwxMCArNTc2LDExIEBACiBF
TVNfVjkueA0KIEEyIDAyIEEwIDBFIDIwID8/ID8/IEFORCBBMCAwNyAyMCA/PyA/PyBBTkQgQTAg
Pz8gODYgPz8gODQgPz8gQkQgRU5EDQogDQorRU1TX1YxMC54DQorNjAgQU5EIDAwIEFORCAwMCBE
NCBFOCBFMCAxOSBEMCBGOCBBOSAwOCA4RCAwNCBENCBFTkQNCisNCiBPZGllL0Nvc2luZQ0KIDYw
IEJEID8/ID8/IDM4IEZEID8/ID8/IDlEIEFORCAzOCBERSBBTkQgMTggN0QgPz8gPz8gOUQgQU5E
IEZFID8/ID8/IEJEID8/ID8/IEM5ID8/IEYwIEVORA0KLU9kaWUvQ29zaW5lXzINCi02MCBBTkQg
MDAgQU5EIDAwIEQ0IEU4IEUwIDE5IEQwIEY4IEE5IDA4IDhEIDA0IEQ0IEVORA0KIA0KIE9kaWUv
UHVsc2UNCiA5RCAwMCBENCBFOCBFMCAyMCBEMCBGNSBBOSA/PyA4RCAxOCBENCBBOSBFTkQNCkBA
IC02MzAsNyArNjQ5LDEwIEBACiA2OSAwMCA4NSAwMyBDNiAwMiBEMCAwMiBDNiAwMyA0QyBFTkQN
CiANCiBHZWlyX1RqZWx0YS9Db21wdGVjaC1YDQotMjkgMEYgQzkgMDggOTAgMDcgMEEgMEEgMEEg
MEEgOEQgNjggRU5EDQorMjkgMEYgQzkgMDggOTAgMDcgMEEgMEEgMEEgMEEgOEQgRU5EDQorDQor
R2Vpcl9UamVsdGEvRWNobw0KK0FEID8/ID8/IDA5ID8/IDhEIDE4IEQ0IEE5IDcwIEVORA0KIA0K
IEdlaXJfVGplbHRhL1NJRFN5c18xLjANCiAzOCBFOSAwMSAwQSBBOCBCOSA/PyA/PyA4NSA/PyBC
OSA/PyA/PyA4NSA/PyBCNCA/PyBCMSBFTkQNCkBAIC02NTUsOSArNjc3LDEyIEBACiBHZWlyX1Rq
ZWx0YV9EaWdpXzINCiA5RCAwMCBENCBDQSAxMCBGQSBBOSA4MSA4RCAwRCBERCBBRCAwRCBERCA2
MCBBRCA/PyA/PyBDRSA/PyA/PyAxMCAwQiA4RCA/PyA/PyBEMCBFTkQNCiANCi1HZWlyX1RqZWx0
YS9NYWNyb1BsYXkNCitHZWlyX1RqZWx0YS9NYWNyb1BsYXkxDQogQTIgMDAgQkQgPz8gPz8gOEQg
Pz8gPz8gQ0EgMzAgQ0IgQTAgMDAgQjkgRU5EDQogDQorR2Vpcl9UamVsdGEvTWFjcm9QbGF5Mg0K
KzkwIDQwIEE1ID8/IEM5IEZFIEQwIDM4IEE5ID8/IDhEIDA2IEQ0IDEwIDMwIEFDIEVORA0KKw0K
IEdlbml1c0NvbXBvc2VyDQogQUQgPz8gPz8gOEQgPz8gPz8gQTkgMDAgOEQgPz8gPz8gOEQgPz8g
Pz8gOEQgPz8gPz8gQTIgMTggOUQgPz8gPz8gOUQgMDAgRDQgQ0EgMTAgRkEgNjAgMjAgPz8gPz8g
Q0UgPz8gPz8gMTAgMUIgQUQgPz8gPz8gOEQgPz8gPz8gMjAgPz8gPz8gQUQgPz8gPz8gMjkgMDEg
RjAgMDUgQTIgMDAgMjAgPz8gPz8gRUUgPz8gPz8gNEMgRU5EDQogDQpAQCAtNzI3LDcgKzc1Miw3
IEBACiBHUkdfdGlueV8zDQogOUQgMDYgRDQgQTkgRkYgQ0IgMDcgMTAgPz8gQTkgMEYgOEQgMTgg
RDQgRU5EDQogR1JHX3RpbnlfNA0KLUEwIDAwIEE5IDAxIDEwIDU1IEE1IEZGIDMwIDA1IEYwIDM2
IDRDIEVORA0KK0E1ID8/IDMwID8/IEYwID8/IEM5IDAxIEYwID8/IDRDIEVORA0KIA0KIEdyaWZm
L0Nocm9tYW5jZQ0KIEFFID8/ID8/IEFDID8/ID8/IEJEID8/ID8/IDI5IDBGIDBBIDBBIDBBIDBB
IDk5IDAyIEQ0IEJEID8/ID8/IDI5IEYwIDRBIDRBIDRBIDRBIDk5IDAzIEQ0IERFID8/ID8/IEQw
IDEzIEJEID8/ID8/IDQ5IDAzIDlEID8/ID8/IDE4IDZEID8/ID8/IEE4IEI5IEVORA0KQEAgLTc0
NSw3ICs3NzAsNyBAQAogDQogR3Jvb3Z5X0JpdHMNCiA2MCBBOSAwMCA4NSA/PyBCRCA/PyA/PyAw
QSAyNiA/PyAwQSAyNiA/PyAwQSAyNiA/PyAwQSAyNiBFTkQNCi1CRCA/PyAwMyBBNCA/PyA5OSA/
PyAwMyA2MCBCRCA/PyAwMyAwQSAwQSAwQSAwQSBFTkQNCitBNSA/PyBDOSA/PyBGMCA/PyA0QyA/
PyA/PyBBMCAwMCA4NCA/PyBFNiA/PyBBNiA/PyBFMCA/PyBEMCBFTkQNCiANCiBHdXlfU2hhdml0
dA0KIEJEID8/ID8/IDQ5IDgwIDlEID8/ID8/IEJEID8/ID8/IDlEID8/ID8/IEJEID8/ID8/IEYw
ID8/IERFID8/ID8/IEJEID8/ID8/IDE4IDdEID8/ID8/IDlEID8/ID8/IEJEID8/ID8/IDY5IDAw
IDlEID8/ID8/IDRDIEVORA0KQEAgLTg0NSw2ICs4NzAsOSBAQAogSmFzb25fUGFnZS9KYXkNCiA5
RCA2MiBDMCBCRCA2OCBDMCAwQSAwQSAwQSAwQSA4RCA3MyBDMiBBOSAwMCA2OSAwMCBFTkQNCiAN
CitKYXNvbl9QYWdlL1JvYlRyYWNrZXINCis4NSA/PyBCQyA/PyA/PyBCMSA/PyBDOSBGRiBGMCAx
MyBDOSBGRCBEMCAxRCBDOCBCMSA/PyA5RCA/PyA/PyBGRSA/PyA/PyBGRSA/PyA/PyA0QyA/PyA/
PyBBOSAwMCBFTkQNCisNCiBKQ0hfRGlnaVBsYXllcg0KIEQwID8/IEFEID8/ID8/IEYwID8/IEEw
IDAwIDhDID8/ID8/IEIxID8/IDRBIDRBIDRBIDRBIDE4IEVORA0KIA0KQEAgLTEwMTIsNiArMTA0
MCw5IEBACiAoS29zYV9Qcm90cmFja2VyX1YyKQ0KIEM5IEEwIDkwIDBDIDBBIDBBIDBBIDlEIEVO
RA0KIA0KK0tyaWxsX3RpbnkNCis3NSA/PyA5RCAwMCBENCBBNSA/PyA2OSAwMCBBTkQgOUQgMDEg
RDQgQjUgPz8gQU5EIDc1ID8/IDk1ID8/IDlEIDAyIEQ0IEI1IEVORA0KKw0KIEtyaXNfSGF0bGVs
aWQNCiBCRCA/PyA/PyBBQSBCMSA/PyA5RCAwMiBENCBDOCBCMSA/PyA5RCAwMyBENCBBMCAwRiBC
MSA/PyA5RCAwNSBENCBDOCBCMSA/PyA5RCAwNiBENCBFTkQNCiAoS3Jpc19IYXRsZWxpZF9EaWdp
KQ0KQEAgLTEwMzYsOSArMTA2Nyw2IEBACiBMYXhpdHlfTmV3UGxheWVyX1YyMQ0KIDk5IDA0IEQ0
IEJEID8/ID8/IEM5IEZGIEYwID8/IDRDID8/ID8/IERFID8/ID8/IEJEID8/ID8/IEQwID8/IDRD
IEVORA0KIA0KLUxheGl0eV8yMDE5DQotQjEgRkMgQzkgRkYgRDAgMDQgQzggQjEgRkMgQTggRU5E
DQotDQogTGV0aGFsX0RpZ2kNCiBBOSAwOCA4RCAxOCBENCBBOSAxMSA4RCAwRSBERCBBRCAwRCBE
RCBBOSA4MCAzMCAwQSA4RCA/PyA/PyBBOSA4MCA4RCA/PyA/PyAzMCA/PyBBRCA/PyA/PyA0OCA0
QSA0QSA0QSA0QSA4RCA/PyA/PyA2OCAyOSAwRiA4RCA/PyA/PyBFRSA/PyA/PyBEMCBFTkQNCiAN
CkBAIC0xMTA2LDcgKzExMzQsNyBAQAogOTAgMDYgQjEgPz8gQzggOEQgMDAgRDQgNDYgPz8gOTAg
MDYgQjEgRU5EDQogDQogTWFnbmFyL1RpbnkNCi1GMCAxQiAxMCAxMCAyOSBGMCAxOCBFOSA3MSA4
RCAxOCBFTkQNCitGMCAxQiAxMCAxMCAyOSBGMCA/PyBFOSA3MSA4RCAxOCBFTkQNCiANCiBNYXJj
aW5fR3J6ZWdvcnpld3NraQ0KIDRBIDM4IDJBIDE4IDZEID8/ID8/IEE4IEFEID8/ID8/IDhEIDA0
IEQ0IEI5ID8/ID8/IDhEIDAxIEQ0IEM4IEI5ID8/ID8/IDhEIDAwIEQ0IEVORA0KQEAgLTEyNDQs
NyArMTI3Miw3IEBACiBGRSA/PyA/PyAyOSAxRiA5RCA/PyA/PyBBNSA/PyAyOSBFMCBDOSBDMCBE
MCA/PyBDOCA5OCA5RCA/PyA/PyBCMSA/PyBDOSBGRiBFTkQNCiAzMCA/PyBDOCBCMSA/PyAwQSAw
QSAwQSA5RCA/PyA/PyBDOCA5OCA5RCA/PyA/PyBCRCA/PyA/PyBEMCA/PyBCRCA/PyA/PyBEMCA/
PyBBOSBGRSA5RCBFTkQNCiBBRCA/PyA/PyA4RCAxNyBENCBBRCA/PyA/PyA4RCAxNiBENCBBRCA/
PyA/PyBGMCAxMyBDRSA/PyA/PyAxMCAwRSBBRCA/PyA/PyBGMCAwOSBBRCA/PyA/PyA4RCA/PyA/
PyBDRSA/PyA/PyBBRCA/PyA/PyAwRCA/PyA/PyA4RCAxOCBENCBBRCBFTkQNCi02OCAyOSAyMCBG
MCAxMiAyMCA/PyA/PyBGRSA/PyA/PyBCQyA/PyA/PyBBNSA/PyAyOSA0MCBEMCAxOSA0QyA/PyA/
PyBBNSA/PyAyOSA4MCBGMCAwRiBCQyA/PyA/PyBDOCBCMSA/PyAwQSAwQSA5RCA/PyA/PyAwQSA5
RCBFTkQNCitCQyA/PyA/PyA5OSAwMSBENCBCRCA/PyA/PyA5OSAwMCBENCBERSA/PyA/PyBEMCA/
PyBCQyA/PyA/PyBCOSA/PyA/PyAyOSAwRiAwQSBFTkQNCiBERSA/PyA/PyA0QyA/PyA/PyA4RSA/
PyA/PyBCRCA/PyA/PyBCQyA/PyA/PyBBQSBBOSAwMCA5RCAwNCBENCA5RCAwNSBENCA5RCAwNiBE
NCBCOSA/PyA/PyA5RCAwNSBENCBCOSA/PyA/PyA5RCAwNiBENCBBRSA/PyA/PyBBOSAwMSA5RCA/
PyA/PyA5RCBFTkQNCiAoQXVkaW9tYXN0ZXJfVjEpDQogMEEgMTggNzUgPz8gOTUgPz8gQjUgPz8g
NjkgPz8gOTUgPz8gQjQgPz8gQUQgPz8gPz8gQjQgPz8gQjkgPz8gPz8gMjkgMEYgQTggQjkgPz8g
Pz8gODUgPz8gQjkgRU5EDQpAQCAtMTI4OCw2ICsxMzE2LDkgQEAKIE1SRw0KIDM4IEQwIDAzIDRD
ID8/ID8/IDBBIDkwIDAxIEU4IDRBIEVORA0KIA0KK01yTW91c2UvRWFzeVBsYXllcg0KK0IwIDBG
IDBBIDBBIDBBIDBBIDI5IEYwIDE4IDY5IDBGIDlEIDA2IEQ0IDRDIEVORA0KKw0KIE1yV2FycF9E
aWdpDQogQTAgMDQgQTUgPz8gMEEgNjkgMDAgMEEgNjkgMDAgODUgPz8gMjkgMDMgQUEgQkQgPz8g
Pz8gOEQgMTggRDQgPz8gPz8gPz8gPz8gPz8gPz8gQTIgRU5EDQogDQpAQCAtMTI5NywxNiArMTMy
OCwyMSBAQAogTXVzaWNfQXNzZW1ibGVyDQogQkMgPz8gPz8gQzAgRkUgRDAgMDkgQkQgPz8gPz8g
MjkgRkUgOUQgPz8gPz8gNjAgQjkgPz8gPz8gODUgRU5EDQogKE11c2ljX0Fzc2VtYmxlci9NQykN
Ci1CRCA/PyA/PyA4NSA/PyBCQyA/PyA/PyBDOCBDOCBCMSBGQSBDOSBGRiBEMCAwMiBBMCAwMCA5
OCA5RCBFTkQNCitFRSAxOSBEMCAyMCA/PyA/PyA0QyBBTkQgQkQgPz8gPz8gODUgPz8gQkMgPz8g
Pz8gQzggQzggQjEgRkEgQzkgRkYgRDAgMDIgQTAgMDAgOTggOUQgRU5EDQogKFZvaWNlVHJhY2tl
cikNCiBCQyA/PyA/PyBDOCAyMCA/PyA/PyBDOSBGRiBEMCAwMiBBMCAwMCA5OCA5RCBBTkQgQzgg
QjEgRkEgQzkgRkQgRjAgMDEgNjAgQzggQjEgRkEgRU5EDQorQTkgRkYgQ0QgMTIgRDAgRDAgPz8g
MjAgPz8gPz8gQUQgMDEgREMgMjkgMTAgQU5EIEJEID8/ID8/IDg1ID8/IEJDID8/ID8/IEM4IEM4
IEIxIEZBIEM5IEZGIEQwIDAyIEEwIDAwIDk4IDlEIEVORA0KKyhUZW5fVHJhY2tlcikNCitDRSA/
PyA/PyBBMiAwMCBEMCA/PyBBMiAwQSBFTkQNCisoRG91YmxlVHJhY2tlcikNCitBRCA/PyA/PyBG
MCAwNSBBMiAwMCAyMCA/PyA/PyBBRCA/PyA/PyBGMCAwNSBBMiAwMSAyMCA/PyA/PyBBRCA/PyA/
PyBGMCAwNSBBMiAwMiBFTkQNCiAoTXVzaWNfTWl4ZXIpDQogQTkgRjAgOEQgMTcgRDQgMjkgMEYg
OEQgQTYgRU5EDQogDQogTXVzaWNfUHJvZHVjZXJfSUkNCiBBOSBGRiA5RCA/PyA/PyBBOSAwOCA5
OSAwNCBENCBBOSAwMCA5OSAwNiBENCA5RCA/PyA/PyA5RCA/PyA/PyBDQSAxMCBFNSA4RCA/PyA/
PyA2OCAwOSA4MCA4RCA/PyA/PyA2MCAyOSA3RiBGMCBGQiAxOCBBOSA/PyBFOSA/PyA4RCA/PyA/
PyA2RSBFTkQNCiANCi1NdXNpY0NvbXBvc2VyL0ZsYXNoX0luYw0KK011c2ljQ29tcG9zZXIvRmxh
c2hJbmMNCiBCRCA/PyA/PyAxOCA3RCA/PyA/PyA3RCA/PyA/PyBDOSA2MCAzMCA/PyAzOCBFOSA2
MCBFTkQNCiAoTXVzaWNDb21wb3Nlcl9WMi4wKQ0KIDI5ID8/IDlEID8/ID8/IEI5ID8/ID8/IDE4
IDRBIDRBIDRBIDRBIDlEID8/ID8/IEI5IEVORA0KQEAgLTEzNDAsNyArMTM3Niw3IEBACiAwOSA4
MCA5MSA/PyBDOCAxOCBCMSA/PyA2RCA/PyA/PyA0OCBDOCBCMSA/PyA2RCA/PyA/PyA4NSA/PyA2
OCA4NSBFTkQNCiANCiBNdXNpY1NsYXZlDQotMjAgPz8gPz8gPz8gPz8gPz8gQTkgMDAgOTkgMDUg
RDQgOTkgMDYgRDQgOTkgMDQgRDQgPz8gPz8gPz8gOUQgPz8gPz8gQjkgPz8gPz8gOUQgRU5EDQor
MjAgPz8gPz8gPz8gPz8gQTAgMEUgMjAgPz8gPz8gQUQgPz8gPz8gQUUgPz8gPz8gQUMgPz8gPz8g
NjAgPz8gPz8gPz8gQkQgRU5EDQogDQogTXVzbw0KIDhEIDA0IEQ0IEFEID8/ID8/IDhEID8/ID8/
IEI5ID8/ID8/IDhEID8/ID8/IDE4IDZEID8/ID8/IEFBIEJEID8/ID8/IDhEIDAxIEQ0IEJEID8/
ID8/IDhEIDAwIEQ0IEVFIEVORA0KQEAgLTEzODEsNiArMTQxNyw5IEBACiBOb3JkaWNCZWF0X0Vk
aXRvcg0KIDE4IDdEID8/ID8/IEE4IEI5ID8/ID8/IDlEID8/ID8/IEI5ID8/ID8/IDlEID8/ID8/
IEE5IDAwIDlEID8/ID8/IDlEID8/ID8/IEE0IEZDIEIxIEZBIDEwID8/IDhFID8/ID8/IDI5IDFG
IDlEID8/ID8/IEJEID8/ID8/IDhEIDE3IEQ0IEM4IEIxIEZBIEVORA0KIA0KK05vdmFsb2FkDQor
OEQgMDAgRDQgQkQgPz8gPz8gOEQgMDEgRDQgQUQgPz8gPz8gOEQgPz8gPz8gQ0UgPz8gPz8gRDAg
MzEgMjAgPz8gPz8gQUQgPz8gPz8gQUEgMzAgMEIgQUQgPz8gPz8gOEQgPz8gPz8gMjkgRjAgOEQg
MEIgRDQgOEEgRDAgMDUgOEQgPz8gPz8gRjAgMEYgMEEgQUEgQkQgPz8gPz8gRTggOEQgMDcgRDQg
QkQgPz8gPz8gOEQgMDggRDQgQUQgRU5EDQorDQogTnV0dDY3X0RpZ2kNCiA2OCA0MCA0OCBFNiAw
MiBBNSAwMiAyOSAwMSBGMCAwQSA2OCA0QSA0QSA0QSA0QSA4RCAxOCBENCA2OCA0MCA2OCAyOSAw
RiA4RCAxOCBENCBFRSBFTkQNCiANCkBAIC0xNDEyLDYgKzE0NTEsOSBAQAogRDAgMDUgQTkgMDEg
OEQgPz8gPz8gQ0UgPz8gPz8gRDAgPz8gQUQgPz8gPz8gOEQgPz8gPz8gQTAgMTUgOEMgPz8gPz8g
QTIgMDYgOEUgPz8gPz8gQTIgMDMgOEUgPz8gPz8gMzggQUQgPz8gPz8gRTkgMDcgOEQgPz8gPz8g
Q0UgPz8gPz8gQ0UgPz8gPz8gQ0UgPz8gPz8gMzAgPz8gQUUgPz8gPz8gREUgPz8gPz8gRDAgRTQg
QUQgRU5EDQogQUEgMTggQjUgQUEgNjkgMDIgOTUgQUEgODUgNzEgQjUgQUIgNjkgMDAgOTUgQUIg
ODUgNzIgQTAgMDAgQjEgNzEgOTUgQjcgQzggQjEgNzEgOTUgQjggQjUgQjcgODUgRU5EDQogDQor
T3h5TW9kL1RIQ00NCisxMiBENCA/PyA/PyA/PyAxMiBENCA/PyA/PyA/PyA/PyAwRiBENCA/PyA/
PyA/PyA/PyA/PyA/PyA/PyA/PyA/PyA0QyAwQyBERCBFTkQNCisNCiBPenp5X09sZHNjaG9vbF9W
MQ0KIDRDID8/ID8/IEJEID8/ID8/IEREID8/ID8/IEQwIDA1IEE5IEZFIDlEID8/ID8/IEJEID8/
ID8/IEYwIDBBIEJEID8/ID8/IEM5IDAxIEYwIDI4IDRDID8/ID8/IEJEID8/ID8/IEREID8/ID8/
IEYwIDA4IDkwIDAzIDRDID8/ID8/IDRDID8/ID8/IEE5IDAwIDlEIDA1IEQ0IDlEIDA2IEQ0IEJE
ID8/ID8/IDI5IEZFIDlEIDA0IEQ0IEE5IEVORA0KIE96enlfT2xkc2Nob29sX1YyDQpAQCAtMTQ1
MCw5ICsxNDkyLDYgQEAKIFBhdWxfTm9ybWFuL0NvbVB1Yg0KIEE1IDY5IEM1IDZCIEQwIDAzIDIw
IDlBIEM4IEM2IDY5IEQwIDVCIEE1IDZBIDg1IEVORA0KIA0KLVBldGVyX0xpZXBhDQotNDkgMDcg
NjkgMDQgMEEgMEEgMEEgMEEgOEQgMDYgRDQgQTkgMTEgOEQgMDQgRDQgOEQgMEIgRDQgQUQgPz8g
Pz8gMTggNjkgMDEgMjkgQTcgOEQgRU5EDQotDQogUGV0ZXJfVGhpZXJvbGYNCiBDOCA4QyA/PyA/
PyBDQyA/PyA/PyA5MCAwMyA0QyA/PyA/PyBBRSA/PyA/PyBCMSBBNCBEMCAwRCBBRCA/PyA/PyAy
OSBGRSA4RCAwNCBENCBGMCAwMyA0QyA/PyA/PyBDOSBGRiBEMCAwMyA0QyA/PyA/PyAyOSA4MCBG
MCAwMyA0QyA/PyA/PyBBRCBFTkQNCiANCkBAIC0xNTAwLDggKzE1MzksOCBAQAogDQogUmFkYXJz
b2Z0DQogOEQgMDUgRDQgOEQgMEMgRDQgOEQgMTMgRDQgQTkgMDAgOEQgMDQgRDQgOEQgMEIgRDQg
OEQgMTIgRDQgQzggQjEgRkIgOEQgMEQgRDQgOEQgMTQgRDQgOEQgMDYgRDQgRU5EDQotQUQgPz8g
Pz8gMjkgMDEgRjAgNDggQ0UgPz8gPz8gRDAgNDMgRUUgPz8gPz8gQUMgPz8gPz8gQjkgPz8gPz8g
OEQgPz8gPz8gRDAgMUIgQUQgPz8gPz8gMjkgMDEgRDAgMDggQUQgPz8gPz8gMjkgMDIgOEQgPz8g
Pz8gQTkgRkYgOEQgPz8gPz8gQTkgMDEgOEQgPz8gPz8gRDAgQ0IgQUQgPz8gPz8gMDkgMDEgOEQg
MDQgRDQgQjkgRU5EDQotREUgPz8gPz8gRDAgPz8gQkQgPz8gPz8gRjAgPz8gQkQgPz8gPz8gOUQg
MDQgRDQgREUgPz8gPz8gRjAgPz8gNjAgRU5EDQorMjkgMDEgRDAgMDggQUQgPz8gPz8gMjkgMDIg
OEQgPz8gPz8gQTkgRkYgOEQgPz8gPz8gQTkgMDEgOEQgPz8gPz8gRDAgQ0IgQUQgPz8gPz8gMDkg
MDEgOEQgMDQgRDQgQjkgRU5EDQorNjggMzAgPz8gQTkgMDEgOTkgPz8gPz8gNEMgPz8gPz8gQTkg
Pz8gOTkgPz8gPz8gQjkgPz8gPz8gRTAgPz8gRjAgPz8gOTkgPz8gPz8gRTYgPz8gRTYgPz8gRjAg
RU5EDQogDQogUmFuZHlfR2xvdmVyDQogNEMgPz8gPz8gQzggQjEgPz8gOUQgMDIgRDQgQzggQjEg
Pz8gOUQgMDMgRDQgNEMgRU5EDQpAQCAtMTU0MSw3ICsxNTgwLDYgQEAKIDJDID8/ID8/IDcwID8/
IEZFID8/ID8/IEFEID8/ID8/IDEwID8/IEM4IEIxID8/IDEwID8/IDlEID8/ID8/IDRDIEVORA0K
IDBBIDBBIDBBIEFBIEJEID8/ID8/IDhEID8/ID8/IEJEID8/ID8/IDJEID8/ID8/IDk5IDA0IEQ0
IEVORA0KIDk5IDA0IEQ0IEE5ID8/IDlEID8/ID8/IDRDID8/ID8/IEJEID8/ID8/IDRBIEREIEVO
RA0KLUI5ID8/ID8/IDlEIDAxIEQ0IEI5ID8/ID8/IDlEIDAwIEQ0IDIwID8/ID8/IEJDID8/ID8/
IEM4IDk4IDlEIDA0IEQ0IEVORA0KIChSb2JfSHViYmFyZF9EaWdpKQ0KIDRBIDRBIDRBIDRBIDRD
ID8/ID8/IDI5IDBGIEVFID8/ID8/IEQwIDAzIEVFID8/ID8/IDhEIDE4IEQ0IEFEIDBEIEREIEVO
RA0KIChHaXVsaW9fWmljY2hpKQ0KQEAgLTE1NjksNiArMTYwNyw5IEBACiBSb011emFrX1Y3LngN
CiBDOSBGRiBGMCA/PyA0OCAyOSAwNyAwQSA4RCA/PyA/PyAwQSA2RCA/PyA/PyBBQSBBMCBFTkQN
CiANCitSb3R0ZXJveV90aW55DQorRDAgMEEgQzkgRkQgRDAgMDYgOTggOUQgRU5EDQorDQogUm95
X0dsb3Zlcg0KIEU2ID8/IDJDID8/ID8/IDUwID8/IEE5ID8/IDhEIDA0IEQ0IEYwID8/IEE5ID8/
IDhEIDA0IEQ0IEFEID8/ID8/IDhEID8/ID8/IEFEID8/ID8/IDhEID8/ID8/IEE5ID8/IDhEID8/
ID8/IEFEID8/ID8/IEYwIEVORA0KIA0KQEAgLTE1NzksOCArMTYyMCwxNCBAQAogNEMgPz8gPz8g
MTggNjkgMDMgQTggMjAgPz8gPz8gOTEgPz8gQzggMjAgPz8gPz8gOTEgPz8gQzggQUQgPz8gPz8g
MjkgMEYgOTEgPz8gQzggOTggOUQgPz8gPz8gMzggRTkgMDYgQTggQkQgPz8gPz8gOTEgPz8gQzgg
QkQgPz8gPz8gOTEgPz8gQzggQkQgPz8gPz8gOTEgPz8gNEMgPz8gPz8gQUQgPz8gPz8gMjkgMEYg
OUQgPz8gPz8gRkUgPz8gPz8gNEMgPz8gPz8gQUQgPz8gPz8gMEEgMEEgMEEgMEEgQkMgRU5EDQog
OTkgMDQgRDQgMTggNjAgQzkgMDYgRjAgMTQgQjAgMjYgMjAgPz8gPz8gODUgPz8gMjAgPz8gPz8g
ODUgPz8gMjAgPz8gPz8gMjAgPz8gPz8gMzggNjAgMjAgPz8gPz8gMjAgPz8gPz8gMTggNjUgPz8g
ODUgPz8gQTUgPz8gNjkgMDAgODUgPz8gNEMgRU5EDQogDQotUnlvX0thd2FzYWtpDQorS2F3YXNh
a2lfU3ludGhlc2l6ZXINCiA5RCAwMCBENCBFOCBFMCAxQSBEMCBGOCA4RCA/PyA/PyBBOSAwMCA4
RCA/PyA/PyBBOSAwRiA4RCAxOCBENCBBOSAwQSA4RCAwNSBENCAyMCA/PyA/PyBBRCBFTkQNCitL
YXdhc2FraV9SaHl0aG1fUm9ja2VyDQorQTkgMDAgOEQgMTQgRDQgOEQgMDYgRDQgOEQgMEQgRDQg
OEQgMTAgRDQgOEQgMTUgRDQgRU5EDQorUnlvX0thd2FzYWtpDQorOEQgMDMgRDQgOEQgMEQgRDQg
OEQgMTEgRDQgQTkgPz8gOEQgMDUgRDQgOEQgMEMgRDQgOEQgMTMgRDQgQTkgPz8gODUgPz8gQTkg
MEYgOEQgMTggRDQgRU5EDQorQTkgMEYgOEQgMTggRDQgQTkgPz8gOEQgMDUgRDQgOEQgMEMgRDQg
OEQgMTMgRDQgQTkgMEMgOEQgMDMgRDQgOEQgMEEgRDQgOEQgMTEgRDQgNEMgRU5EDQorOEQgMTgg
RDQgNjAgQTkgMDAgOEQgMDQgRDQgOEQgMEIgRDQgOEQgMTIgRDQgQTkgPz8gOEQgMDQgRDQgQTkg
Pz8gOEQgMEIgRDQgQTkgPz8gOEQgMTIgRDQgNjAgRU5EDQogDQogU2Fkb1RyYWNrZXINCiBCQyA/
PyA/PyBCMSA/PyAzMCA/PyBDOCBDOSA2MCBCMCA/PyBDOSA1MCBCMCA/PyA0QyA/PyA/PyBFOSA1
MCBFTkQNCkBAIC0xNTk3LDkgKzE2NDQsMTIgQEAKIFNjb3V0X0RpZ2kNCiA0OCA0QSA0QSA0QSA0
QSA4RCAxOCBENCBBMiA/PyBDQSBEMCBGRCA2OCAyOSAwRiA4RCAxOCBENCBFTkQNCiANCi1TZW50
aW5lbA0KK1NlbnRpbmVsX1YwLjQNCiAxMCAxOCBDOSBGRSBEMCAwOSA5RCBFTkQNCiANCitTZW50
aW5lbF9WMC43DQorOUQgMDAgRDQgRTggRTAgMUMgRDAgRjggQTIgMDAgOEUgPz8gPz8gOEUgPz8g
Pz8gOEUgPz8gPz8gOEUgPz8gPz8gMjAgPz8gPz8gQTIgMDcgMjAgRU5EDQorDQogU2VudGluZWxf
Q29tcG9zZXJfVjEuMA0KIERFID8/ID8/IEJDID8/ID8/IEJEID8/ID8/IDk5IDAwIEQ0IEJEID8/
ID8/IDk5IDAxIEQ0IEJEID8/ID8/IEQwID8/IEJEID8/ID8/IDk5IDA0IEQ0IEVORA0KIA0KQEAg
LTE2MTIsOSArMTY2MiwxNSBAQAogU2lkRmFjdG9yeS9MYXhpdHkNCiBBOSA/PyA0QyA/PyA/PyBB
OSA/PyA5RCA/PyA/PyBBOSA/PyA5RCA/PyA/PyBCRCA/PyA/PyBBOCAyOSAwMiBEMCA/PyA0QyA/
PyA/PyA5OCAyOSBGRCA5RCBFTkQNCiANCitTaWRGYWN0b3J5X0lJL0xheGl0eQ0KK0IxIEZDIEM5
IEZGIEQwIDA0IEM4IEIxIEZDIEE4IEVORA0KKw0KIFNpZHBsYXllcjY0DQogMDUgMTggNjkgMEMg
RTYgPz8gQzkgMEMgOTAgMDQgRTkgMEMgQzYgPz8gODUgRU5EDQogDQorU2lkU3RlcDINCitCMSBG
QiAzMCAxMiBBQSBDOCBEMCAwMiBFNiBGQyBCMSBGQiA5RCAwMCBENCBDOCBFTkQNCisNCiBTaWRU
cmFja2VyNjQNCiBCRCA/PyA/PyAyOSBGRSA5RCAwNCBENCBCOSA/PyA/PyA5RCA/PyA/PyBCOSA/
PyA/PyA5RCA/PyA/PyBGMCA/PyBBOCBCRCA/PyA/PyAxOCA2OSBFTkQNCiANCkBAIC0xNzg3LDcg
KzE4NDMsNyBAQAogMEEgMEEgMEEgQTggQTIgMDAgOEEgOUQgPz8gPz8gRTggRTAgQkQgRDAgRjgg
QTIgMDAgOUQgPz8gPz8gRTggRTAgRU5EDQogDQogU3ludGhlc2l6ZXI2NA0KLTRBIDRBIDRBIDQ5
IDgwIDRDID8/ID8/IDRBIDRBIDRBIDQ5IDdGIDE4IDY5IDAxIDlEID8/ID8/IEI5ID8/ID8/IDI5
IDA3IDk5ID8/ID8/IDYwIEJEID8/ID8/IEE4IEIxIEM5IDE4IDZEID8/ID8/IDlEIDAwIEQ0IEJE
ID8/ID8/IEE4IEM4IEIxIEM5IDY5IDAwIEU4IDlEIDAwIEQ0IDYwIEJEID8/ID8/IEE4IEIxIEM5
IDE4IDZEID8/ID8/IDlEIDAwIEQ0IEJEIEVORA0KKzBBIDlEID8/ID8/IEE5IDAwIDlEIDA0IEQ0
IDhBIEE4IEYwID8/IDg4IDg4IEM5IDA3IEYwIDAyIDg4IDg4IEI5ID8/ID8/IDlEIDA0IEQ0IEVO
RA0KIA0KIFN5bnRoaWNhdA0KIDEwIDFDIEE5IDAyIDhEID8/ID8/IEE5IDAwIEYwIDEzIDRBIDRB
IDRBIDRBIEQwIEVORA0KQEAgLTE4ODIsMTAgKzE5MzgsNyBAQAogOEQgMDUgRDQgQTkgMEYgOEQg
MEMgRDQgQTkgMEYgOEQgMTMgRDQgQTkgPz8gOEQgRU5EDQogDQogVXJzX0hlY2ttYW5uDQotQUQg
Pz8gPz8gMDggRUUgPz8gPz8gRDAgPz8gRUUgPz8gPz8gMjggNjAgQUQgPz8gPz8gOEQgMDQgRDQg
QUQgPz8gPz8gOEQgMEIgRDQgQUQgPz8gPz8gOEQgMTIgRDQgNjAgRU5EDQotDQotVVNfR29sZC9O
b3ZhbG9hZA0KLThEIDAwIEQ0IEJEID8/ID8/IDhEIDAxIEQ0IEFEID8/ID8/IDhEID8/ID8/IENF
ID8/ID8/IEQwIDMxIDIwID8/ID8/IEFEID8/ID8/IEFBIDMwIDBCIEFEID8/ID8/IDhEID8/ID8/
IDI5IEYwIDhEIDBCIEQ0IDhBIEQwIDA1IDhEID8/ID8/IEYwIDBGIDBBIEFBIEJEID8/ID8/IEU4
IDhEIDA3IEQ0IEJEID8/ID8/IDhEIDA4IEQ0IEFEIEVORA0KK0QwIDAzIEVFID8/ID8/IDI4IDYw
IEFEID8/ID8/IDA4IEVFIEVORA0KIA0KIFZhbl9TdHllcl9EaWdpDQogMDYgRDQgOEQgMEQgRDQg
OEQgMTQgRDQgNjAgQjkgMDAgRU5EDQpAQCAtMTkxMiw2ICsxOTY1LDkgQEAKIFZpcnR1b3NvDQog
QkMgPz8gPz8gRjAgPz8gQjkgPz8gPz8gMTAgPz8gNDkgRkYgMEEgNjkgPz8gOEQgPz8gPz8gQjkg
Pz8gPz8gNkMgRU5EDQogDQorSGVpbl9Ib2x0X0RpZ2kNCitBOSA/PyA4NSA/PyBFRSA/PyA/PyBC
RCA/PyA/PyA4RCAwNCBERCBBOSA/PyA4RCAwRSBERCBFTkQNCisNCiBWaXNhY190aW55DQogQjkg
Pz8gPz8gNEEgOTAgQU5EIDQ4IEI5ID8/ID8/IEJDID8/ID8/IDk5IDAxIEQ0IDY4IDk5IDAwIEQ0
IEVORA0KIA0KQEAgLTE5MzAsNiArMTk4Niw5IEBACiBXYWx0X0RpZ2kNCiA0OCA4QSA0OCA5OCA0
OCBBRCAwRCBERCBBOSA/PyA4RCAxOCBENCBBRCA/PyA/PyBBMiAwMCBGMCAwNSAyOSAwRiA0QyBF
TkQNCiANCitTaWRiYW5nNjQvV2FycDgNCitBNSA/PyA4NSA/PyBBNSA/PyA4NSA/PyBBMCAwMCBC
MSA/PyBDOSAwMCBGMCA/PyAyOSAxRiBFTkQNCisNCiBXYXJwOF9EaWdpDQogNDggQUQgPz8gPz8g
MDkgPz8gOEQgMTggRDQgRUUgPz8gPz8gQUQgMEQgREQgNjggNDAgRU5EDQogDQpAQCAtMTk1Myw3
ICsyMDEyLDcgQEAKIFlpcF9EaWdpDQogQjEgNzIgNEEgNEEgNEEgNEEgMTggNjkgMDkgNEEgOEQg
MTggRDQgRUUgRU5EDQogDQotWWlwX01lZ2Fzb3VuZA0KK1lpcF9NZWdhU291bmQNCiBBOSAwMSA4
RCA/PyA/PyBBMiAwMiBBOSAwMSA5RCA/PyA/PyBBOSAwMCA5RCA/PyA/PyA5RCA/PyA/PyBDQSAx
MCBGMCBBOSAwMCA4RCAwNCBENCA4RCAwQiBENCA4RCAxMiBENCBBOSAwRiA4RCAxOCBENCA2MCBB
OSAwMCA4RCA/PyA/PyA2MCBBRCBFTkQNCiANCiBaYXJkYXgvU291bmRLaWxsZXINCkBAIC0yMDE4
LDcgKzIwNzcsNyBAQAogP0NhZXNhcl9TdHVkaW8NCiBDOSBEMCBGMCA/PyBDOSBFMCBGMCA/PyBD
OSBGMCBGMCA/PyA0QyBFTkQNCiANCi0/Q2hhcmxpZV9CYXJyL0RhdGFfRWFzdA0KKz9DaGFybGll
X0JhcnIvRGF0YUVhc3QNCiBBOCBCOSA/PyA/PyBEMCA/PyBBOSA/PyA5RCA/PyA/PyBCRCA/PyA/
PyBEMCA/PyBBOSA/PyA5RCAwNCBENCA2MCBCRCA/PyA/PyBEMCA/PyBCOSA/PyA/PyA5RCAwMCBE
NCBCOSA/PyA/PyA5RCAwMSBENCBBOSA/PyA5RCAwNSBENCBFTkQNCiANCiA/Q29tbW9kb3JlDQpA
QCAtMjAzOSw2ICsyMDk4LDkgQEAKID9HYW1lc3Rhcg0KIDg1ID8/IEM4IEIxID8/IDQ4IEM4IEIx
ID8/IDg1ID8/IDY4IEVORA0KIA0KKz9IZWlrb19TY2hyb2VkZXINCis5RCAwMCBENCBDQSBDQSBD
QSBDQSBDOCBCOSBFTkQNCisNCiA/SG9lcm5lbGwvUGxheWVycw0KIEU2IEZCIEQwIDAyIEU2IEZD
ID8/IEEwIDAwIEIxIEZCIEM5IEZGIEYwIDI4IEVORA0KIA0KQEAgLTIwNDgsNiArMjExMCwxMiBA
QAogP0ljZV9Tb2Z0d2FyZQ0KIDMwIDE4IDcwIDM4IEE5IDAwIDhEIDA0IEQ0IDhEIDBCIEQ0IEVO
RA0KIA0KKz9KZWZmX1NjaG5laWRlcg0KKzQ5IDA3IDY5IDA0IDBBIDBBIDBBIDBBIDhEIDA2IEQ0
IEE5IDExIDhEIDA0IEQ0IDhEIDBCIEQ0IEFEID8/ID8/IDE4IDY5IDAxIDI5IEE3IDhEIEVORA0K
Kw0KKz9KZXRzb2Z0DQorRkUgRDAgMDUgQTkgNDAgOEQgMEIgRDQgQTUgRU5EDQorDQogP0ppbV9B
bmRyb24NCiBBQSAyOSAxRiAzOCBFOSAwMSA5OSA/PyA/PyA4QSAyOSBFMCAxOCAyQSAyQSAyQSAy
QSA5OSA/PyA/PyBBOSAwMCA5OSA/PyA/PyBCOSA/PyA/PyAwQSBBQSBCRCBFTkQNCiANCkBAIC0y
MDcyLDYgKzIxNDAsOSBAQAogP01TQg0KIDlEIDA0IEQ0IEQwIDQ4IDhBIDBBIEFBIEJEIEVORA0K
IA0KKz9QYWxfQmFsb2cNCis0OCA4QSA0OCA5OCA0OCBBMCAwRSBBOSAwNCA4RCBFTkQNCisNCiA/
UGF1bF9IaWdnaW5ib3R0b20NCiAyMCA/PyA/PyAyMCA/PyA/PyA0QyA/PyA/PyAwMCBENCAwMCBE
NCAwMCBENCBFTkQNCiANCkBAIC0yMTAzLDI0ICsyMTc0LDE1IEBACiA/VW5rbm93bl8xDQogRDAg
MTkgNjAgOEQgMDEgRDQgQUQgPz8gPz8gOEQgMDAgRDQgNEMgPz8gPz8gOEQgMDggRDQgRU5EDQog
DQotP1Vua25vd25fNA0KLUZFIEQwIDA1IEE5IDQwIDhEIDBCIEQ0IEE1IEVORA0KLQ0KID9Vbmtu
b3duXzUNCiBBMiAwMiBBMCAwOCBCMSA/PyA5RCAwMCBENCBDOCBFOCBCMSA/PyA5RCAwMCBENCBD
OCBFOCBFOCBCMSA/PyA5RCAwMCBENCBDOCBFOCBCMSA/PyA5RCAwMCBENCBDMCA/PyBGMCBFTkQN
CiANCi0/VW5rbm93bl82DQotNDggOEEgNDggOTggNDggQTAgMEUgQTkgMDQgOEQgRU5EDQotDQog
P1Vua25vd25fNw0KIDYwIEQwIDAzIEEyIDAwIDYwIEM5IDAxIEQwIDAzIEEyIEVORA0KIA0KID9V
bmtub3duXzgNCiA0OCAyOSAwRiBBOCBCOSBBTkQgNjggNEEgNEEgNEEgNEEgNDkgMDcgRU5EDQog
DQotP1Vua25vd25fOQ0KLTRDID8/ID8/IEVFID8/ID8/IEFFID8/ID8/IEJEID8/ID8/IEYwIDEy
IDBBIEFBIEVORA0KLQ0KID9Vbmtub3duXzEwDQogODggRDAgMTUgQkQgPz8gPz8gRDAgRTUgQTUg
Pz8gODUgRU5EDQogDQpAQCAtMjE0NCwzICsyMjA2LDQgQEAKIA0KIENydW5jaGVkOlBVQ3J1bmNo
DQogRTggODggRDAgRjQgQTkgODAgODUgRkIgNEMgRU5EDQorDQpkaWZmIC1OYXVydyAveHNpZHBs
YXkyLWNvZGUtcjI4OC10cnVuay94c2lkcGxheS9zaWRpZC5uZm8gL3hzaWRwbGF5Mi1jb2RlLXIy
OTQtdHJ1bmsveHNpZHBsYXkvc2lkaWQubmZvCi0tLSAveHNpZHBsYXkyLWNvZGUtcjI4OC10cnVu
ay94c2lkcGxheS9zaWRpZC5uZm8JMjAyMC0wNi0yMCAxMjowMzoyNy4wMDAwMDAwMDAgKzAyMDAK
KysrIC94c2lkcGxheTItY29kZS1yMjk0LXRydW5rL3hzaWRwbGF5L3NpZGlkLm5mbwkyMDIzLTAy
LTE5IDE0OjEyOjMzLjAwMDAwMDAwMCArMDEwMApAQCAtNSwxNCArNSwxNiBAQAogNGJpdERpZ2kv
VEhDTQ0KICAgIEFVVEhPUjogVXdlIEFuZmFuZyAoVGhlIEh1bWFuIENvZGUgTWFjaGluZSkNCiAN
Ci04Yml0RGlnaS9USENNDQorT3h5TW9kL1RIQ00NCiAgICBBVVRIT1I6IFV3ZSBBbmZhbmcgKFRo
ZSBIdW1hbiBDb2RlIE1hY2hpbmUpDQotICBDT01NRU5UOiBUaGUgdGVjaG5pcXVlIHVzZWQgaW4g
dGhpcyBwbGF5ZXIgd2FzIGRpc2NvdmVyZWQgYnkgT3R0byBKw6RydmluZW4NCi0gICAgICAgICAg
IChTb3VuRGVtb04pIGluIDIwMDYuIEl0IG1ha2VzIHVzZSBvZiB0aGUgbm9pc2Ugd2F2ZWZvcm0g
YW5kIHRoZQ0KLSAgICAgICAgICAgdGVzdCBiaXQgYW5kIHVzZXMgdGhlIGZyZXF1ZW5jeSByZWdp
c3RlciB0byB3cml0ZSB0aGUgOC1iaXQgc2FtcGxlDQotICAgICAgICAgICBkYXRhIHRvIHRoZSBT
SUQgY2hpcC4NCisgIENPTU1FTlQ6IFRoZSB0ZWNobmlxdWUgdXNlZCBpbiB0aGlzIHBsYXllciB3
YXMgZGlzY292ZXJlZCBieSBPdHRvIErkcnZpbmVuDQorICAgICAgICAgICAoU291bkRlbW9OKSBp
biAyMDA2LiBJdCBtYWtlcyB1c2Ugb2Ygd2F2ZWZvcm0gJDAwIGluIGNvbWJpbmF0aW9uDQorICAg
ICAgICAgICB3aXRoIHRoZSB0ZXN0IGJpdCBhbmQgdXNlcyB0aGUgZnJlcXVlbmN5IHJlZ2lzdGVy
IHRvIHdyaXRlIHRoZSA4LWJpdA0KKyAgICAgICAgICAgc2FtcGxlIGRhdGEgdG8gdGhlIFNJRCBj
aGlwLg0KICAgICAgICAgICAgTW9yZSBpbmZvIGFib3V0IHRoaXMgdGVjaG5pcXVlOg0KLSAgICAg
ICAgICAgaHR0cHM6Ly9jc2RiLmRrL2ZvcnVtcy8/cm9vbWlkPTE0JnRvcGljaWQ9MjQ2MjYNCisg
ICAgICAgICAgIGh0dHBzOi8vY29kZWJhc2U2NC5vcmcvZG9rdS5waHA/aWQ9YmFzZTp2aWNpb3Vz
X3NpZF9kZW1vX3JvdXRpbmVfZXhwbGFpbmVkDQorICAgICAgICAgICBUaGUgc2FtZSB0ZWNobmlx
dWUgd2FzIGFscmVhZHkgZGlzY292ZXJlZCBpbiAxOTkzIGFuZCB1c2VkIGluIHRoZQ0KKyAgICAg
ICAgICAgRGlnaU1hc3RlciB1dGlsaXR5IGJ5IENocmlzIEJyZW5uZXIuDQogDQogOGJpdERpZ2kv
TWFob25leQ0KICAgIEFVVEhPUjogUGV4IFR1ZnZlc3NvbiAoTWFob25leSkNCkBAIC0zMiw2ICsz
NCwxOSBAQAogQWNpZF9QbGF5ZXINCiAgICBBVVRIT1I6IFN0dWFydCBNY0Rvd2VsbCAoQWNpZCkN
CiANCitBbGdvcml0aG0vOGJpdERpZ2kNCisgICBBVVRIT1I6IE5hdmVlZCBLaHVnaWFuaSAoQWxn
b3JpdGhtKQ0KKyAgQ09NTUVOVDogVXNlcyB0aGUgc2FtZSB0ZWNobmlxdWUgdG8gcGxheSA4LWJp
dCBzYW1wbGVzIGFzIGluIE94eU1vZC9USENNLg0KKw0KK0FsZ29yaXRobS9BbGdvVlFUcmFja2Vy
X1YxDQorICAgQVVUSE9SOiBOYXZlZWQgS2h1Z2lhbmkgKEFsZ29yaXRobSkNCisNCitBbGdvcml0
aG0vRnJvZGlnaQ0KKyAgICAgTkFNRTogRnJlZSBSdW5uaW5nIE9zY2lsbGF0b3IgRGlnaQ0KKyAg
IEFVVEhPUjogTmF2ZWVkIEtodWdpYW5pIChBbGdvcml0aG0pDQorICBDT01NRU5UOiBVc2VzIHRo
ZSBmcmVlIHJ1bm5pbmcgc2lkIG9zY2lsbGF0b3JzIG9uIHRoZSBzaWQgY2hpcCBpbiAzIGNoYW5u
ZWxzDQorICAgICAgICAgICBhbmQgYSBtYXN0ZXIgdm9sdW1lIHRvIHJlY3JlYXRlIHRoZSBhdWRp
by4NCisNCiBBTGlIDQogICAgQVVUSE9SOiBKYXlteiBKdWxpYW4gKEEgTGlmZSBpbiBIZWxsKQ0K
IA0KQEAgLTc3LDcgKzkyLDcgQEAKIA0KIEFydGxhY2UNCiAgICAgIE5BTUU6IEFydGxhY2UgRWRp
dG9yIChBUkwtRWRpdG9yKQ0KLSAgIEFVVEhPUjogQXJ0w7pyIEJ1amRvc8OzIChBcnRsYWNlKQ0K
KyAgIEFVVEhPUjogQXJ0+nIgQnVqZG9z8yAoQXJ0bGFjZSkNCiAgUkVMRUFTRUQ6IDE5OTMgUmVi
ZWxzDQogUkVGRVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/aWQ9MTUyNzIzDQogDQpA
QCAtOTksMjEgKzExNCwyMSBAQAogDQogQVRNRFNfMS54DQogICAgICBOQU1FOiBBY2lkIFRyYWNr
IE11c2ljIERldmVsb3BtZW50IFN5c3RlbSAoQVRNRFMpDQotICAgQVVUSE9SOiBTdGVmYW4gSMO8
Ym5lciAoU3QwZmYpDQorICAgQVVUSE9SOiBTdGVmYW4gSPxibmVyIChTdDBmZikNCiAgUkVMRUFT
RUQ6IDE5OTcgTmVvcGxhc2lhDQogUkVGRVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/
aWQ9MTI5ODQ0DQogICBDT01NRU5UOiBBbHNvIGtub3duIGFzIEFjaWQgVHJhY2sgQ3JlYXRvcg0K
IA0KIEFUTURTXzMueA0KICAgICAgTkFNRTogQWNpZCBUcmFjayBNdXNpYyBEZXZlbG9wbWVudCBT
eXN0ZW0gKEFUTURTKQ0KLSAgIEFVVEhPUjogU3RlZmFuIEjDvGJuZXIgKFN0MGZmKQ0KKyAgIEFV
VEhPUjogU3RlZmFuIEj8Ym5lciAoU3QwZmYpDQogIFJFTEVBU0VEOiAyMDAxIE5lb3BsYXNpYQ0K
IFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTcxNTkNCiAgIENPTU1FTlQ6
IEFsc28ga25vd24gYXMgQWNpZCBUcmFjayBDcmVhdG9yDQogDQogQXVkaWFsX0FydHMNCiAgICAg
IE5BTUU6IFpvbmcgUGxheWVyDQotICAgQVVUSE9SOiBGcmFuw6dvaXMgUHJpanQNCisgICBBVVRI
T1I6IEZyYW7nb2lzIFByaWp0DQogIFJFTEVBU0VEOiBBdWRpYWwgQXJ0cw0KICAgQ09NTUVOVDog
UGxheWVyIHVzZWQgYnkgdGhlIGdyb3VwIEF1ZGlhbCBBcnRzDQogDQpAQCAtMTQxLDEzICsxNTYs
MTMgQEAKIA0KIEJsYWNrYmlyZC9MRlQNCiAgICAgIE5BTUU6IEJsYWNrYmlyZCAxLjANCi0gICBB
VVRIT1I6IExpbnVzIMOFa2Vzc29uIChsZnQpDQorICAgQVVUSE9SOiBMaW51cyDFa2Vzc29uIChs
ZnQpDQogIFJFTEVBU0VEOiAyMDE3IGxmdA0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3Jl
bGVhc2UvP2lkPTE1MzU1NQ0KIA0KIEM2NF9TcGVlY2hfU3lzdGVtDQogICAgICBOQU1FOiBDNjQg
U3BlZWNoIFN5c3RlbQ0KLSAgIEFVVEhPUjogS3Jpc3RpYW4gS8O2aG50b3BwDQorICAgQVVUSE9S
OiBLcmlzdGlhbiBL9mhudG9wcA0KICBSRUxFQVNFRDogMTk4NiA2NCdlci9NYXJrdCAmIFRlY2hu
aWsNCiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0xMjk5NjUNCiAgIENP
TU1FTlQ6IEFsc28ga25vd24gYXMgIlNwZWVjaCBCYXNpYyINCkBAIC0xNjAsNiArMTc1LDcgQEAK
IA0KIENlbnNvcl84Yml0X0RpZ2lfMQ0KICAgIEFVVEhPUjogRnJlZHJpayBUZXJuZWxsIChTd2Fs
bG93KQ0KKyAgQ09NTUVOVDogVXNlcyB0aGUgc2FtZSB0ZWNobmlxdWUgdG8gcGxheSA4LWJpdCBz
YW1wbGVzIGFzIGluIE94eU1vZC9USENNLg0KIA0KIENlbnNvcl84Yml0X0RpZ2lfMg0KICAgIEFV
VEhPUjogRnJlZHJpayBUZXJuZWxsIChTd2FsbG93KQ0KQEAgLTE4OCwxNiArMjA0LDggQEAKICAg
ICAgTkFNRTogU291bmQgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgKFNQTCkNCiAgICBBVVRIT1I6IENo
cmlzIEdyaWdnDQogDQotQ2hyaXNfTXVycmF5DQotICAgQVVUSE9SOiBDaHJpcyBNdXJyYXkNCi0g
IENPTU1FTlQ6IFRoZSBwbGF5ZXIgaXMgdXNlZCBpbiBzZXZlcmFsIGdhbWVzLCBhbGwgc2VlbXMg
ZGVyaXZlZCBmcm9tDQotICAgICAgICAgICBDaHJpcyBNdXJyYXkncyBIZW5yeXNfSG91c2Uuc2lk
DQotICAgICAgICAgICBTSUQgU2VxdWVuY2VyIChodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/aWQ9
MTIyMzMyKSBhbmQNCi0gICAgICAgICAgIEFsZWF0b3J5IENvbXBvc2VyIChodHRwczovL2NzZGIu
ZGsvcmVsZWFzZS8/aWQ9MTIyMzMxKSBhcmUNCi0gICAgICAgICAgIG11c2ljIGVkaXRvcnMgdGhh
dCBhcmUgYmFzZWQgb24gdGhpcyBwbGF5ZXIuDQotDQogQ2h1YnJvY2tlcl9WMy54DQotICAgQVVU
SE9SOiBMw6FzemzDsyBCZW5rZSAoRGVjKQ0KKyAgIEFVVEhPUjogTOFzemzzIEJlbmtlIChEZWMp
DQogIFJFTEVBU0VEOiAxOTk1IENhZGdlcnMNCiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9y
ZWxlYXNlLz9pZD0xMTQxODUNCiANCkBAIC0yMTIsNiArMjIwLDIxIEBACiAgICBBVVRIT1I6IFBh
d2VsIEt1bGlrb3dza2kgKENvbWVyKQ0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVh
c2UvP2lkPTEwMTcwNA0KIA0KK0NvbXBhbmlvbg0KKyAgICAgTkFNRTogVGhlIENvbXBhbmlvbiB0
byB0aGUgQ29tbW9kb3JlIDY0DQorICAgQVVUSE9SOiBLZWl0aCBCb3dkZW4NCisgUkVMRUFTRUQ6
IDE5ODQgUGFuIEJvb2tzDQorICBDT01NRU5UOiBUeXBlLWluIHdpdGhvdXQgZWRpdG9yLiBUaGUg
Ym9vayBzdWdnZXN0cyB0byBhZGQgZmVhdHVyZXMsIHdoaWNoDQorICAgICAgICAgICBoYXMgYmVl
biBkb25lIG9uIFJvYiBIdWJiYXJkJ3MgdHdvIGVhcmxpZXN0IFNJRHMgYW5kIENsZXZlcg0KKyAg
ICAgICAgICAgTXVzaWMncy4gSW4gMTk4OCBhbmQgaW4gMTk4OSwgVmljIEguIEJlcnJ5IGJhc2Vk
IHR3byBlZGl0b3JzIG9uIHRoaXMNCisgICAgICAgICAgIGRyaXZlcjoNCisgICAgICAgICAgIFNJ
RCBTZXF1ZW5jZXIgKGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0xMjIzMzIpIGFuZA0KKyAg
ICAgICAgICAgQWxlYXRvcnkgQ29tcG9zZXIgKGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0x
MjIzMzEpDQorDQorQ29tcGFuaW9uL0pheV9EZXJyZXR0DQorICAgQVVUSE9SOiBKYXkgRGVycmV0
dA0KKyAgQ09NTUVOVDogUmV3cml0ZSBvZiBDbGV2ZXIgTXVzaWMncyBleHRlbnNpb24gb2YgQ29t
cGFuaW9uLg0KKw0KIENSRF9UcmFja2VyDQogICAgICBOQU1FOiBDUkQtVHJhY2tlcjY0DQogICAg
QVVUSE9SOiBPd2VuIENyb3dsZXkgKENSRCkNCkBAIC0yMjYsNyArMjQ5LDcgQEAKICAgQ09NTUVO
VDogUGxheWVyIGlzIHVzZWQgaW4gQ1JMIChDb21wdXRlciBSZW50YWxzIExpbWl0ZWQpIHJlbGVh
c2VzDQogDQogQ3liZXJicmFpbl9EaWdpDQotICAgQVVUSE9SOiBCamFya2UgTsO4cmdhYXJkIExh
dXN0c2VuIChDeWJlckJyYWluKQ0KKyAgIEFVVEhPUjogQmphcmtlIE74cmdhYXJkIExhdXN0c2Vu
IChDeWJlckJyYWluKQ0KIA0KIEN5YmVybG9naWNfU291bmRTdHVkaW8NCiAgICAgIE5BTUU6IEN5
YmVybG9naWMgU291bmQgU3R1ZGlvDQpAQCAtMjM1LDcgKzI1OCw3IEBACiBSRUZFUkVOQ0U6IGh0
dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0xNzA2MzINCiANCiBDeWJlclRyYWNrZXINCi0gICBB
VVRIT1I6IEJqYXJrZSBOw7hyZ2FhcmQgTGF1c3RzZW4gKEN5YmVyQnJhaW4pDQorICAgQVVUSE9S
OiBCamFya2UgTvhyZ2FhcmQgTGF1c3RzZW4gKEN5YmVyQnJhaW4pDQogIFJFTEVBU0VEOiAyMDAx
DQogUkVGRVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/aWQ9MjYwMQ0KIA0KQEAgLTI4
MCwxMiArMzAzLDEyIEBACiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD04
NzENCiANCiBEaWdpdGFsaXplcl9WMy4wDQotICAgQVVUSE9SOiBPbGF2IE3DuHJrcmlkDQorICAg
QVVUSE9SOiBPbGF2IE34cmtyaWQNCiAgUkVMRUFTRUQ6IDE5OTINCiBSRUZFUkVOQ0U6IGh0dHBz
Oi8vY3NkYi5kay9yZWxlYXNlLz9pZD0zMzY0OQ0KIA0KIERpZ2l0YWxpemVyX1YyLngNCi0gICBB
VVRIT1I6IE9sYXYgTcO4cmtyaWQNCisgICBBVVRIT1I6IE9sYXYgTfhya3JpZA0KICBSRUxFQVNF
RDogMTk4OQ0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTMzNjQ2DQog
DQpAQCAtMzE5LDcgKzM0Miw3IEBACiANCiBEcnVtRWRpdG9yDQogICAgICBOQU1FOiBEcnVtZWRp
dG9yIFYzLjANCi0gICBBVVRIT1I6IEZyYW5rIEh1Z2Vucm90aCAmIEFuZHLDqSBIdWdlbnJvdGgN
CisgICBBVVRIT1I6IEZyYW5rIEh1Z2Vucm90aCAmIEFuZHLpIEh1Z2Vucm90aA0KICBSRUxFQVNF
RDogMTk5MCA2NCdlci1EaXNjL01hcmt0ICYgVGVjaG5paw0KIFJFRkVSRU5DRTogaHR0cHM6Ly9j
c2RiLmRrL3JlbGVhc2UvP2lkPTEzNjE3OQ0KIA0KQEAgLTMzOCwxNSArMzYxLDE1IEBACiBSRUZF
UkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0yMDY3Mg0KIA0KIEVkL1dyYXRoDQot
ICAgQVVUSE9SOiBFZGRpZSBTdsOkcmQgKEVkKQ0KKyAgIEFVVEhPUjogRWRkaWUgU3bkcmQgKEVk
KQ0KIA0KIEVkL1dyYXRoX0RpZ2kNCi0gICBBVVRIT1I6IEVkZGllIFN2w6RyZCAoRWQpDQorICAg
QVVUSE9SOiBFZGRpZSBTduRyZCAoRWQpDQogDQotRWRfQm9nYXNfVjENCitFZF9Cb2dhcy9BY2Nv
bGFkZQ0KICAgIEFVVEhPUjogRWQgQm9nYXMNCiANCi1FZF9Cb2dhc19WMg0KK0VkX0JvZ2FzL0hh
a2Fuc3Nvbg0KICAgIEFVVEhPUjogRWQgQm9nYXMNCiANCiBFbGVjdHJvX1NvdW5kDQpAQCAtMzg0
LDYgKzQwNyw5IEBACiBFTVNfVjkueA0KICAgIEFVVEhPUjogU2VhbiBDb25ub2xseSAoT2RpZSkN
CiANCitFTVNfVjEwLngNCisgICBBVVRIT1I6IFNlYW4gQ29ubm9sbHkgKE9kaWUpDQorDQogRW50
cm9weV9FZGl0b3INCiAgICAgIE5BTUU6IEVudHJvcHkgTXVzaWMgRWRpdG9yDQogICAgQVVUSE9S
OiBTaW1vbiBDb2xsaXMgKFV6enkpDQpAQCAtMzkxLDcgKzQxNyw3IEBACiBSRUZFUkVOQ0U6IGh0
dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0xMDAwMzINCiANCiBFd2VndW8NCi0gICBBVVRIT1I6
IEthcmwgSMO2cm5lbGwNCisgICBBVVRIT1I6IEthcmwgSPZybmVsbA0KIA0KIEV4dHJhX1NvdW5k
DQogICAgQVVUSE9SOiBUb2JpYXMgSGVycmUNCkBAIC00MTYsNyArNDQyLDcgQEAKIA0KIEdhbEJh
cmQvQVRPTw0KICAgICAgTkFNRTogR2FsQmFyZA0KLSAgIEFVVEhPUjogQW5kZXJzIEFuZHLDqWVu
IChBVE9PKQ0KKyAgIEFVVEhPUjogQW5kZXJzIEFuZHLpZW4gKEFUT08pDQogICBDT01NRU5UOiBH
YWxCYXJkIGlzIGEgc2NyaXB0LWJhc2VkIG11c2ljIGVkaXRvci4gSXQgaXMgY2FsbGVkIEdhbEJh
cmQNCiAgICAgICAgICAgIGJlY2F1c2UgQW5kZXJzJyBnb2FsIHdhcyB0byBiZSBhYmxlIHRvIGNy
ZWF0ZSB0dW5lcyBpbiB0aGUgc3R5bGUgb2YNCiAgICAgICAgICAgIE1hcnRpbiBHYWx3YXkgYW5k
IFJvYiBIdWJiYXJkLg0KQEAgLTQ2NiwxMiArNDkyLDE3IEBACiAgUkVMRUFTRUQ6IDE5OTIgTW96
KEljKUFydA0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTMzNjQ1DQog
DQotR2Vpcl9UamVsdGEvTWFjcm9QbGF5DQorR2Vpcl9UamVsdGEvTWFjcm9QbGF5XzENCiAgICAg
IE5BTUU6IE1hY3JvIFBsYXllcg0KICAgIEFVVEhPUjogR2VpciBUamVsdGENCiAgUkVMRUFTRUQ6
IDIwMDkNCiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD03NjQ5Mw0KIA0K
K0dlaXJfVGplbHRhL01hY3JvUGxheV8yDQorICAgICBOQU1FOiBNYWNybyBQbGF5ZXINCisgICBB
VVRIT1I6IEdlaXIgVGplbHRhDQorIFJFTEVBU0VEOiAyMDA5DQorDQogR2Vpcl9UamVsdGFfRGln
aV8xDQogICAgICBOQU1FOiBOTUkgUGxheWVyIHYxLjANCiAgICBBVVRIT1I6IEdlaXIgVGplbHRh
ICYgR2xlbm4gUnVuZSBHYWxsZWZvc3MgKEdSRykNCkBAIC01MTcsMTcgKzU0OCwxNyBAQAogICAg
QVVUSE9SOiBCYWxhenMgRmFya2FzIChCcmlhbikNCiANCiBHb2F0VHJhY2tlcl9WMS54DQotICAg
QVVUSE9SOiBMYXNzZSDDlsO2cm5pIChDYWRhdmVyKQ0KKyAgIEFVVEhPUjogTGFzc2Ug1vZybmkg
KENhZGF2ZXIpDQogIFJFTEVBU0VEOiAyMDAxIENvdmVydCBCaXRvcHMNCiBSRUZFUkVOQ0U6IGh0
dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0xNTI2OTcNCiANCiBHb2F0VHJhY2tlcl9WMi54DQot
ICAgQVVUSE9SOiBMYXNzZSDDlsO2cm5pIChDYWRhdmVyKQ0KKyAgIEFVVEhPUjogTGFzc2Ug1vZy
bmkgKENhZGF2ZXIpDQogIFJFTEVBU0VEOiAyMDA1IENvdmVydCBCaXRvcHMNCiBSRUZFUkVOQ0U6
IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0xODMwOA0KIA0KIEdvYXRUcmFja2VyX1YyL01p
bmkNCi0gICBBVVRIT1I6IExhc3NlIMOWw7ZybmkgKENhZGF2ZXIpDQorICAgQVVUSE9SOiBMYXNz
ZSDW9nJuaSAoQ2FkYXZlcikNCiAgUkVMRUFTRUQ6IDIwMTggQ292ZXJ0IEJpdG9wcw0KIA0KIEdS
Rw0KQEAgLTU0NiwxMCArNTc3LDEwIEBACiAgICBBVVRIT1I6IEdyZWdvciBMYXJzb24NCiANCiBH
cmlmZi9DaHJvbWFuY2UNCi0gICBBVVRIT1I6IFDDqXRlciBWYXJnYSAoR3JpZmYpDQorICAgQVVU
SE9SOiBQ6XRlciBWYXJnYSAoR3JpZmYpDQogDQogKExpZ2h0Vm9pY2VzKQ0KLSAgIEFVVEhPUjog
UMOpdGVyIFZhcmdhIChHcmlmZikNCisgICBBVVRIT1I6IFDpdGVyIFZhcmdhIChHcmlmZikNCiAg
UkVMRUFTRUQ6IDE5OTAgRkJJIENyZXcNCiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxl
YXNlLz9pZD03MjkxNQ0KIA0KQEAgLTU1Nyw3ICs1ODgsNyBAQAogICAgQVVUSE9SOiBDbGF1cyBM
ZXRoIEdyZWdlcnNlbiAoR3JvbykNCiANCiBHcm9vdnlfQml0cw0KLSAgIEFVVEhPUjogTGFycyBQ
YXRyaWsgV2FsbHN0csO2bSAoS2FybCBYSUkpDQorICAgQVVUSE9SOiBMYXJzIFBhdHJpayBXYWxs
c3Ry9m0gKEthcmwgWElJKQ0KICBSRUxFQVNFRDogMTk4OSBHcm9vdnkgQml0cw0KIFJFRkVSRU5D
RTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTEyMTM3MA0KIA0KQEAgLTU4MCwzNSArNjEx
LDM1IEBACiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0xMTI3OTQNCiAN
CiBIZXJtaXQvU2lkV2l6YXJkX1YxLngNCi0gICBBVVRIT1I6IE1paMOhbHkgSG9ydsOhdGggKEhl
cm1pdCkNCisgICBBVVRIT1I6IE1paOFseSBIb3J24XRoIChIZXJtaXQpDQogDQogKFNpZFdpemFy
ZF9WMS4wKQ0KLSAgIEFVVEhPUjogTWlow6FseSBIb3J2w6F0aCAoSGVybWl0KQ0KKyAgIEFVVEhP
UjogTWlo4Wx5IEhvcnbhdGggKEhlcm1pdCkNCiAgUkVMRUFTRUQ6IDIwMTINCiBSRUZFUkVOQ0U6
IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0xMTA5NDINCiANCiAoU2lkV2l6YXJkX1YxLjIp
DQotICAgQVVUSE9SOiBNaWjDoWx5IEhvcnbDoXRoIChIZXJtaXQpDQorICAgQVVUSE9SOiBNaWjh
bHkgSG9yduF0aCAoSGVybWl0KQ0KICBSRUxFQVNFRDogMjAxMg0KIFJFRkVSRU5DRTogaHR0cHM6
Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTExMjcxNg0KIA0KIChTaWRXaXphcmRfVjEuNCkNCi0gICBB
VVRIT1I6IE1paMOhbHkgSG9ydsOhdGggKEhlcm1pdCkNCisgICBBVVRIT1I6IE1paOFseSBIb3J2
4XRoIChIZXJtaXQpDQogIFJFTEVBU0VEOiAyMDEzDQogUkVGRVJFTkNFOiBodHRwczovL2NzZGIu
ZGsvcmVsZWFzZS8/aWQ9MTE1NTk5DQogDQogKFNpZFdpemFyZF9WMS41KQ0KLSAgIEFVVEhPUjog
TWlow6FseSBIb3J2w6F0aCAoSGVybWl0KQ0KKyAgIEFVVEhPUjogTWlo4Wx5IEhvcnbhdGggKEhl
cm1pdCkNCiAgUkVMRUFTRUQ6IDIwMTMNCiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxl
YXNlLz9pZD0xMjY3OTcNCiANCiAoSGVybWl0LzNTSUQpDQotICAgQVVUSE9SOiBNaWjDoWx5IEhv
cnbDoXRoIChIZXJtaXQpDQorICAgQVVUSE9SOiBNaWjhbHkgSG9yduF0aCAoSGVybWl0KQ0KICBS
RUxFQVNFRDogMjAwOA0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTY2
MDY1DQogDQogSGVybWl0LzFSYXN0ZXJUcmFja2VyDQotICAgQVVUSE9SOiBNaWjDoWx5IEhvcnbD
oXRoIChIZXJtaXQpDQorICAgQVVUSE9SOiBNaWjhbHkgSG9yduF0aCAoSGVybWl0KQ0KICBSRUxF
QVNFRDogMjAxMw0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTExNzkz
NQ0KIA0KQEAgLTY4MiwzNyArNzEzLDQxIEBACiAgUkVMRUFTRUQ6IDE5ODgNCiBSRUZFUkVOQ0U6
IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD00Mzk1Ng0KIA0KK0phc29uX1BhZ2UvUm9iVHJh
Y2tlcg0KKyAgQVVUSE9SOiBKYXNvbiBQYWdlDQorIENPTU1FTlQ6IEJhc2VkIG9uIFJvYiBIdWJi
YXJkJ3MgRGlnaSByb3V0aW5lLg0KKw0KIEplZmYNCiAgICAgIE5BTUU6IE11c2ljIEVkaXRvcg0K
LSAgIEFVVEhPUjogU8O4cmVuIEx1bmQgKEplZmYpDQorICAgQVVUSE9SOiBT+HJlbiBMdW5kIChK
ZWZmKQ0KICBSRUxFQVNFRDogMTk5NiBDeWJlcnpvdW5kIFByb2R1Y3Rpb25zDQogUkVGRVJFTkNF
OiBodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/aWQ9MTIyMzM0DQogDQogKFgtU0lEKQ0KLSAgIEFV
VEhPUjogU8O4cmVuIEx1bmQgKEplZmYpDQorICAgQVVUSE9SOiBT+HJlbiBMdW5kIChKZWZmKQ0K
ICBSRUxFQVNFRDogMjAwNyBWaXJ1eg0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVh
c2UvP2lkPTQ3OTg1DQogDQogSmVmZi9BaXJ3YWxrDQotICAgQVVUSE9SOiBTw7hyZW4gTHVuZCAo
SmVmZikNCisgICBBVVRIT1I6IFP4cmVuIEx1bmQgKEplZmYpDQogDQogSmVmZi9CdWxsU0lEDQot
ICAgQVVUSE9SOiBTw7hyZW4gTHVuZCAoSmVmZikNCisgICBBVVRIT1I6IFP4cmVuIEx1bmQgKEpl
ZmYpDQogDQogSmVmZi9GTFQNCi0gICBBVVRIT1I6IFPDuHJlbiBMdW5kIChKZWZmKQ0KKyAgIEFV
VEhPUjogU/hyZW4gTHVuZCAoSmVmZikNCiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxl
YXNlLz9pZD0xNzI5Mg0KICAgQ09NTUVOVDogQ3VzdG9tIHBsYXllciBtYWRlIGZvciBPbmUgTWls
bGlvbiBMaWdodHllYXJzIGZyb20gRWFydGgvRmFpckxpZ2h0DQogDQogSmVmZi9YTGFyZ2UNCi0g
ICBBVVRIT1I6IFPDuHJlbiBMdW5kIChKZWZmKQ0KKyAgIEFVVEhPUjogU/hyZW4gTHVuZCAoSmVm
ZikNCiANCiBKSVRUXzEueA0KICAgIEFVVEhPUjogU3RlZmFubyBUb2dub24gKEljZTAwKQ0KIFJF
RkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTc0MTM2DQogDQogSm9oYW5uZXNf
R29ldHRrZXINCi0gICBBVVRIT1I6IEpvaGFubmVzIEfDtnR0a2VyDQorICAgQVVUSE9SOiBKb2hh
bm5lcyBH9nR0a2VyDQogDQogSm9obl9QbGF5ZXINCiAgICBBVVRIT1I6IEFsZWtzaSBFZWJlbg0K
QEAgLTczNCw3ICs3NjksMTMgQEAKIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2Uv
P2lkPTE4NzY3DQogDQogSm9uYXNfSHVsdGVuDQotICAgQVVUSE9SOiBKb25hcyBIdWx0w6luDQor
ICAgQVVUSE9SOiBKb25hcyBIdWx06W4NCisNCitLYXdhc2FraV9TeW50aGVzaXplcg0KKyAgICAg
TkFNRTogS2F3YXNha2kgU3ludGhlc2l6ZXINCisgICBBVVRIT1I6IFJ5byBLYXdhc2FraQ0KKyBS
RUxFQVNFRDogMTk4MyBTaWdodCAmIFNvdW5kIE11c2ljIFNvZnR3YXJlDQorICBDT01NRU5UOiBN
b3JlIGluZm86IGh0dHA6Ly93d3cucnlva2F3YXNha2kuY29tL2M2NC8NCiANCiBLQi9TRFMNCiAg
ICBBVVRIT1I6IFRhbW1vIEhpbnJpY2hzIChrYikgb2YgU21hc2ggRGVzaWducyAoU0RTKQ0KQEAg
LTc2NCw3ICs4MDUsNyBAQAogUkVGRVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/aWQ9
MjY1NjMNCiANCiBMRlQNCi0gICBBVVRIT1I6IExpbnVzIMOFa2Vzc29uIChMRlQpDQorICAgQVVU
SE9SOiBMaW51cyDFa2Vzc29uIChMRlQpDQogDQogTG9hZHN0YXJfU29uZ1NtaXRoDQogICAgICBO
QU1FOiBTb25nc21pdGgNCkBAIC05MjIsNyArOTYzLDcgQEAKIA0KIE1vZHVsYXRvcg0KICAgICAg
TkFNRTogTW9kdWxhdG9yDQotICAgQVVUSE9SOiBUaG9tYXMgS3LDpHR6aWcNCisgICBBVVRIT1I6
IFRob21hcyBLcuR0emlnDQogIFJFTEVBU0VEOiAxOTg1IDY0J2VyL01hcmt0ICYgVGVjaG5paw0K
IFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTEyOTgwMg0KIA0KQEAgLTk1
NSw2ICs5OTYsMTAgQEAKIE1vbnRlY2NoaW8vQ29vbHNvdW5kDQogICAgQVVUSE9SOiBBbmRyZWFz
IE1vbnRlY2NoaW8NCiANCitNck1vdXNlL0Vhc3lQbGF5ZXINCisgICBBVVRIT1I6IE1pY2hhZWwg
WnV1cm1hbiAoTXIuIE1vdXNlKQ0KKyAgQ09NTUVOVDogRm9yayBvZiA0LU1hdCdzIEFZIFBsYXll
cg0KKw0KIE1yV2FycF9EaWdpDQogICAgQVVUSE9SOiBNYXJrdXMgUGV0ZXIgKE1yLiBXYXJwKQ0K
ICAgQ09NTUVOVDogUHJvYmFibHkgZGVyaXZlZCBmcm9tIEM2NF9TcGVlY2hfU3lzdGVtDQpAQCAt
OTc4LDE5ICsxMDIzLDM1IEBACiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9p
ZD04MjYxOA0KICAgQ09NTUVOVDogRWRpdG9yIGJhc2VkIG9uIHRoZSBNdXNpYyBBc3NlbWJsZXIg
cGxheWVyDQogDQorKERvdWJsZVRyYWNrZXIpDQorICAgICBOQU1FOiBEb3VibGVUcmFja2VyDQor
ICAgQVVUSE9SOiBQYXdlbCBTb2x0eXNpbnNraSAoUG9sb251cykNCisgUkVMRUFTRUQ6IDE5OTMg
UGFkdWENCitSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD04NDMwDQorICBD
T01NRU5UOiBNdWx0aXNwZWVkIHZlcnNpb24gb2YgVm9pY2VUcmFja2VyLiBFZGl0b3IgYmFzZWQg
b24gdGhlIE11c2ljDQorICAgICAgICAgICBBc3NlbWJsZXIgcGxheWVyDQorDQorKFRlbl9UcmFj
a2VyKQ0KKyAgICAgTkFNRTogVGVuIFRyYWNrZXINCisgICBBVVRIT1I6IE1vb2cNCisgUkVMRUFT
RUQ6IDE5OTEgS2VlbiBBY2lkDQorUkVGRVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/
aWQ9NjMxMzUNCisgIENPTU1FTlQ6IDEweCBzcGVlZCB2ZXJzaW9uIG9mIFZvaWNlVHJhY2tlci4g
RWRpdG9yIGJhc2VkIG9uIHRoZSBNdXNpYw0KKyAgICAgICAgICAgQXNzZW1ibGVyIHBsYXllcg0K
Kw0KIE11c2ljX1Byb2R1Y2VyX0lJDQogICAgICBOQU1FOiBNdXNpYyBQcm9kdWNlciBJSQ0KICAg
IEFVVEhPUjogSi5OLlcuIENoZWVzbWFuDQogDQogTXVzaWNDb21wb3Nlci9GbGFzaF9JbmMNCiAg
ICAgIE5BTUU6IE11c2ljLUNvbXBvc2VyDQotICAgQVVUSE9SOiBGcmVkcmlrIEthcmxzc29uICha
b2RpYWMpICYgQW5kZXJzIEVsbcOpbiAoTW9vbikNCisgICBBVVRIT1I6IEZyZWRyaWsgS2FybHNz
b24gKFpvZGlhYykgJiBBbmRlcnMgRWxt6W4gKE1vb24pDQogIFJFTEVBU0VEOiAxOTkxIEZsYXNo
IEluYy4NCiAgIENPTU1FTlQ6IEFsbCBwcm9ncmFtbWluZyBieSBab2RpYWMgd2l0aCBhc3Npc3Rh
bmNlIGJ5IE1vb24NCiANCiAoTXVzaWNDb21wb3Nlcl9WMy4wKQ0KICAgICAgTkFNRTogTXVzaWMt
Q29tcG9zZXIgVjMuMA0KLSAgIEFVVEhPUjogRnJlZHJpayBLYXJsc3NvbiAoWm9kaWFjKSAmIEFu
ZGVycyBFbG3DqW4gKE1vb24pDQorICAgQVVUSE9SOiBGcmVkcmlrIEthcmxzc29uIChab2RpYWMp
ICYgQW5kZXJzIEVsbeluIChNb29uKQ0KICBSRUxFQVNFRDogMTk5MiBGbGFzaCBJbmMuDQogUkVG
RVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/aWQ9MTA3NTUNCiAgIENPTU1FTlQ6IEFs
bCBwcm9ncmFtbWluZyBieSBab2RpYWMgd2l0aCBhc3Npc3RhbmNlIGJ5IE1vb24NCkBAIC0xMDMz
LDcgKzEwOTQsNyBAQAogTXVzaWNTaG9wDQogICAgICBOQU1FOiBUaGUgTXVzaWMgU2hvcA0KICAg
IEFVVEhPUjogRG9uIFdpbGxpYW1zDQotIFJFTEVBU0VEOiAxOTg0IEJyw7hkZXJidW5kIFNvZnR3
YXJlDQorIFJFTEVBU0VEOiAxOTg0IEJy+GRlcmJ1bmQgU29mdHdhcmUNCiBSRUZFUkVOQ0U6IGh0
dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD04MjQ1Mw0KIA0KIE11c28NCkBAIC0xMDQ0LDEzICsx
MTA1LDE3IEBACiBOZWlsX0JhdGUNCiAgICBBVVRIT1I6IE5laWwgQmF0ZQ0KIA0KK05ldHdvcmsN
CisgICAgIE5BTUU6IE5ldHdvcmsgTXVzaWMgRWRpdG9yIFYxLjQNCitSRUZFUkVOQ0U6IGh0dHBz
Oi8vY3NkYi5kay9yZWxlYXNlLz9pZD0yMDczMDUNCisNCiBOaW5qYVRyYWNrZXJfVjEueA0KLSAg
IEFVVEhPUjogTGFzc2Ugw5bDtnJuaSAoQ2FkYXZlcikNCisgICBBVVRIT1I6IExhc3NlINb2cm5p
IChDYWRhdmVyKQ0KICBSRUxFQVNFRDogMjAwMiBDb3ZlcnQgQml0b3BzDQogUkVGRVJFTkNFOiBo
dHRwczovL2NzZGIuZGsvcmVsZWFzZS8/aWQ9NzIwNg0KIA0KIE5pbmphVHJhY2tlcl9WMi54DQot
ICAgQVVUSE9SOiBMYXNzZSDDlsO2cm5pIChDYWRhdmVyKQ0KKyAgIEFVVEhPUjogTGFzc2Ug1vZy
bmkgKENhZGF2ZXIpDQogIFJFTEVBU0VEOiAyMDA2IENvdmVydCBCaXRvcHMNCiBSRUZFUkVOQ0U6
IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0zOTM3NA0KIA0KQEAgLTEwNzYsMTggKzExNDEs
MTggQEAKICAgIEFVVEhPUjogU2VhbiBDb25ub2xseSAoT2RpZSkNCiANCiBPZGluVHJhY2tlcg0K
LSAgIEFVVEhPUjogWm9sdMOhbiBLb255aGEgKFplZCkNCisgICBBVVRIT1I6IFpvbHThbiBLb255
aGEgKFplZCkNCiAgUkVMRUFTRUQ6IDIwMDANCiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9y
ZWxlYXNlLz9pZD0xMjU3Nw0KIA0KIE9leXZpbmRfSmVyZ2FuDQotICAgQVVUSE9SOiDDmHl2aW5k
IEplcmdhbg0KKyAgIEFVVEhPUjog2Hl2aW5kIEplcmdhbg0KIA0KIE9leXZpbmRfSmVyZ2FuXzIN
Ci0gICBBVVRIT1I6IMOYeXZpbmQgSmVyZ2FuDQorICAgQVVUSE9SOiDYeXZpbmQgSmVyZ2FuDQog
DQogT21lZ2FTdXByZW1lX0RpZ2kNCi0gICBBVVRIT1I6IE9sYXYgTcO4cmtyaWQgKE9tZWdhIFN1
cHJlbWUpDQorICAgQVVUSE9SOiBPbGF2IE34cmtyaWQgKE9tZWdhIFN1cHJlbWUpDQogDQogT3p6
eV9PbGRzY2hvb2xfVjENCiAgICBBVVRIT1I6IE9zc2kgQWFybmlvIChPenp5IE9sZHNrb29sKQ0K
QEAgLTEyMTgsMTUgKzEyODMsOCBAQAogUnVzc2VsbF9MaWVibGljaA0KICAgIEFVVEhPUjogUnVz
c2VsbCBMaWVibGljaA0KIA0KLVJ5b19LYXdhc2FraQ0KLSAgICAgTkFNRTogS2F3YXNha2kgU3lu
dGhlc2l6ZXINCi0gICBBVVRIT1I6IFJ5byBLYXdhc2FraQ0KLSBSRUxFQVNFRDogMTk4MyBTaWdo
dCAmIFNvdW5kIE11c2ljIFNvZnR3YXJlDQotUkVGRVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVs
ZWFzZS8/aWQ9MTI5OTIyDQotICBDT01NRU5UOiBNb3JlIGluZm86IGh0dHA6Ly93d3cucnlva2F3
YXNha2kuY29tL2M2NC8NCi0NCiBTYWRvVHJhY2tlcg0KLSAgIEFVVEhPUjogTGFzc2Ugw5bDtnJu
aSAoQ2FkYXZlcikNCisgICBBVVRIT1I6IExhc3NlINb2cm5pIChDYWRhdmVyKQ0KICBSRUxFQVNF
RDogMTk5OSBDb3ZlcnQgQml0b3BzDQogUkVGRVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVsZWFz
ZS8/aWQ9NzI3NzMNCiANCkBAIC0xMjQ0LDEyICsxMzAyLDIzIEBACiAgUkVMRUFTRUQ6IDE5OTQg
Q2hlcnVicw0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTE1NjkyNA0K
IA0KK1NlbnRpbmVsX1YwLjcNCisgICAgIE5BTUU6IFNlbnRpbmVsIE11c2ljIFBsYXllciBWMDcu
RzANCisgICBBVVRIT1I6IFNlbnRpbmVsDQorIFJFTEVBU0VEOiAyMDIwIFNlbnRpbmVsDQorUkVG
RVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/aWQ9MjAyNjg0DQorDQogU2VxdWVuY2Vy
DQogICAgICBOQU1FOiBTZXF1ZW5jZXINCi0gICBBVVRIT1I6IFRob21hcyBLcsOkdHppZw0KKyAg
IEFVVEhPUjogVGhvbWFzIEty5HR6aWcNCiAgUkVMRUFTRUQ6IDE5ODUgNjQnZXIvTWFya3QgJiBU
ZWNobmlrDQogUkVGRVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/aWQ9MTI5ODAyDQog
DQorU2lkYmFuZzY0L1dhcnA4DQorICAgQVVUSE9SOiBTZWJhc3RpYW4gQWJlbCAoV2FycDgpDQor
IFJFTEVBU0VEOiAyMDIxDQorUkVGRVJFTkNFOiBodHRwczovL2NzZGIuZGsvcmVsZWFzZS8/aWQ9
MTk5MjAzDQorDQogU2lkRmFjdG9yeS9MYXhpdHkNCiAgICBBVVRIT1I6IFRob21hcyBFZ2Vza292
IFBldGVyc2VuIChMYXhpdHkpDQogIFJFTEVBU0VEOiAyMDA2DQpAQCAtMTI2OSw3ICsxMzM4LDcg
QEAKIFJFRkVSRU5DRTogaHR0cDovL3d3dy5zaWR0cmFja2VyNjQuY29tDQogDQogU2lkV2luZGVy
DQotICAgQVVUSE9SOiBCYWzDoXpzIFRha8OhY3MgKFRha2kpDQorICAgQVVUSE9SOiBCYWzhenMg
VGFr4WNzIChUYWtpKQ0KICBSRUxFQVNFRDogMTk5OSBOYXR1cmFsIEJlYXQNCiBSRUZFUkVOQ0U6
IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD02NjQ5NA0KIA0KQEAgLTEzMzksNyArMTQwOCw3
IEBACiAgIENPTU1FTlQ6IE1vcmUgaW5mbzogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
U29mdHdhcmVfQXV0b21hdGljX01vdXRoDQogDQogU29mdF9UdW5lX0NvbXBvc2VyDQotICAgQVVU
SE9SOiBNZWxpaCBLw7zDp8O8a8OnYWxpaw0KKyAgIEFVVEhPUjogTWVsaWggS/zn/GvnYWxpaw0K
ICBSRUxFQVNFRDogMTk4OQ0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lk
PTEwMTc2OQ0KIA0KQEAgLTEzNjYsMTcgKzE0MzUsMTcgQEAKIFJFRkVSRU5DRTogaHR0cHM6Ly9j
c2RiLmRrL3JlbGVhc2UvP2lkPTc1MzYNCiANCiBTb3VuRGVtb24NCi0gICBBVVRIT1I6IE90dG8g
SsOkcnZpbmVuIChTb3VuRGVtb04pDQorICAgQVVUSE9SOiBPdHRvIErkcnZpbmVuIChTb3VuRGVt
b04pDQogDQogU291bmRNb25pdG9yDQotICAgQVVUSE9SOiBDaHJpcyBIw7xsc2JlY2sNCisgICBB
VVRIT1I6IENocmlzIEj8bHNiZWNrDQogIFJFTEVBU0VEOiAxOTg2IDY0J2VyL01hcmt0ICYgVGVj
aG5paw0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTU5OTI5DQogICBD
T01NRU5UOiBSZWxlYXNlZCBhcyBhIHR5cGUtaW4gbGlzdGluZyBpbiB0aGUgT2N0b2JlciAxOTg2
IGlzc3VlIG9mIHRoZQ0KICAgICAgICAgICAgR2VybWFuIEMtNjQgbWFnYXppbmUgNjQnZXIuDQog
DQogKEJlYXRCb3gvS2FybFhJSSkNCi0gICBBVVRIT1I6IExhcnMgUGF0cmlrIFdhbGxzdHLDtm0g
KEthcmwgWElJKQ0KKyAgIEFVVEhPUjogTGFycyBQYXRyaWsgV2FsbHN0cvZtIChLYXJsIFhJSSkN
CiAgUkVMRUFTRUQ6IDE5ODcgU2NpZW5jZSA0NTENCiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5k
ay9yZWxlYXNlLz9pZD0xNjMwOQ0KICAgQ09NTUVOVDogVGhpcyBlZGl0b3Igd2FzIGFsc28gcmVs
ZWFzZWQgYnkgVGhlIFNoYXJrcyB1bmRlciB0aGUgbmFtZQ0KQEAgLTE0MzMsMTMgKzE1MDIsMTMg
QEAKIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRrL3JlbGVhc2UvP2lkPTIxODIzDQogDQogKEh1
ZWxzYmVja19EaWdpX1YxKQ0KLSAgIEFVVEhPUjogQ2hyaXMgSMO8bHNiZWNrDQorICAgQVVUSE9S
OiBDaHJpcyBI/GxzYmVjaw0KIA0KIChIdWVsc2JlY2tfRGlnaV9WMikNCi0gICBBVVRIT1I6IENo
cmlzIEjDvGxzYmVjaw0KKyAgIEFVVEhPUjogQ2hyaXMgSPxsc2JlY2sNCiANCiAoSmFtTWFzdGVy
VjEpDQotICAgQVVUSE9SOiBDaHJpc3RvZiBNw7xobGFuIChCYW5hbmEpICYgVEFNDQorICAgQVVU
SE9SOiBDaHJpc3RvZiBN/GhsYW4gKEJhbmFuYSkgJiBUQU0NCiAgUkVMRUFTRUQ6IDE5ODcNCiBS
RUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5kay9yZWxlYXNlLz9pZD0xMDYwODUNCiAgIENPTU1FTlQ6
IEFsc28ga25vd24gYXMgU291bmRraW5nIHYxIGJ5IERTQSBhbmQgSmFtTW9uaXRvciBieSBURFQN
CkBAIC0xNTAzLDEyICsxNTcyLDEyIEBACiAgICBBVVRIT1I6IFRlcm8gSGlscGluZW4gKFRCQikN
CiANCiBUR1NfRGlnaQ0KLSAgIEFVVEhPUjogR8OhYm9yIEfDoXNww6FyIChUaGUgR2FsYWN0aWMg
U3RyYW5nZXIpDQorICAgQVVUSE9SOiBH4WJvciBH4XNw4XIgKFRoZSBHYWxhY3RpYyBTdHJhbmdl
cikNCiAgIENPTU1FTlQ6IFByb2JhYmx5IGRlcml2ZWQgZnJvbSBDNjRfU3BlZWNoX1N5c3RlbQ0K
IA0KIFRGTVgNCiAgICAgIE5BTUU6IFRoZSBGaW5hbCBNdXNpY3N5c3RlbSBlWHRlbmRlZCAoVEZN
WCkNCi0gICBBVVRIT1I6IENocmlzIEjDvGxzYmVjaw0KKyAgIEFVVEhPUjogQ2hyaXMgSPxsc2Jl
Y2sNCiAgUkVMRUFTRUQ6IDE5ODgNCiANCiBURk1YL01hc3RlckNvbXBvc2VyDQpAQCAtMTYzOCw5
ICsxNzA3LDEzIEBACiAgUkVMRUFTRUQ6IDIwMDgNCiBSRUZFUkVOQ0U6IGh0dHBzOi8vY3NkYi5k
ay9yZWxlYXNlLz9pZD0xMzU2MjQNCiANCi1ZaXBfTWVnYXNvdW5kDQorWWlwX01lZ2FTb3VuZA0K
KyAgICAgTkFNRTogTWVnYVNvdW5kIE11c2ljIEVkaXRvcg0KICAgIEFVVEhPUjogSm9yaSBPbGtr
b25lbiAoWWlwKQ0KKyBSRUxFQVNFRDogMTk4OA0KIFJFRkVSRU5DRTogaHR0cHM6Ly9jc2RiLmRr
L3JlbGVhc2UvP2lkPTcyOTE3DQorICBDT01NRU5UOiBNZWdhU291bmQgd2FzIHB1Ymxpc2hlZCBp
biB0aGUgRmlubmlzaCBDb21tb2RvcmUgbWFnYXppbmUgQz1MZWh0aSBpbg0KKyAgICAgICAgICAg
aXNzdWUgNS8xOTg4DQogDQogWmFyZGF4L1NvdW5kS2lsbGVyDQogICAgQVVUSE9SOiBBcmktUGVr
a2EgUGFsamFra2EgKFphcmRheCkgJiBTYW1pIElsbW9uZW4gKFNjYXBlZ29hdCkNCmRpZmYgLU5h
dXJ3IC94c2lkcGxheTItY29kZS1yMjg4LXRydW5rL3hzaWRwbGF5L3NyYy9maWxlbmFtZXMuaCAv
eHNpZHBsYXkyLWNvZGUtcjI5NC10cnVuay94c2lkcGxheS9zcmMvZmlsZW5hbWVzLmgKLS0tIC94
c2lkcGxheTItY29kZS1yMjg4LXRydW5rL3hzaWRwbGF5L3NyYy9maWxlbmFtZXMuaAkyMDExLTA4
LTIyIDIwOjM2OjQ4LjAwMDAwMDAwMCArMDIwMAorKysgL3hzaWRwbGF5Mi1jb2RlLXIyOTQtdHJ1
bmsveHNpZHBsYXkvc3JjL2ZpbGVuYW1lcy5oCTIwMjMtMDItMTkgMjE6MDI6MDcuMDAwMDAwMDAw
ICswMTAwCkBAIC0yNCw3ICsyNCw3IEBACiBjb25zdCBjaGFyIEhJU1RPUllfRklMRV9OQU1FW10g
PSAieHNpZHBsYXktaGlzdG9yeS50eHQiOwogCiBjb25zdCBjaGFyIEhWU0NfRE9DX0RJUl9OQU1F
W10gPSAiL0RPQ1VNRU5UUyI7Ci1jb25zdCBjaGFyIFNPTkdMRU5HVEhTX0RCX0ZJTEVfTkFNRVtd
ID0gIlNvbmdsZW5ndGhzLnR4dCI7Citjb25zdCBjaGFyIFNPTkdMRU5HVEhTX0RCX0ZJTEVfTkFN
RVtdID0gIlNvbmdsZW5ndGhzLm1kNSI7CiAKIAogI2VuZGlmICAvKiBGSUxFTkFNRVNfSCAqLwpk
aWZmIC1OYXVydyAveHNpZHBsYXkyLWNvZGUtcjI4OC10cnVuay94c2lkcGxheS9zcmMvTWFpbkRp
YWxvZy5jcHAgL3hzaWRwbGF5Mi1jb2RlLXIyOTQtdHJ1bmsveHNpZHBsYXkvc3JjL01haW5EaWFs
b2cuY3BwCi0tLSAveHNpZHBsYXkyLWNvZGUtcjI4OC10cnVuay94c2lkcGxheS9zcmMvTWFpbkRp
YWxvZy5jcHAJMjAyMC0wNi0wMiAxNjoxMzo1OC4wMDAwMDAwMDAgKzAyMDAKKysrIC94c2lkcGxh
eTItY29kZS1yMjk0LXRydW5rL3hzaWRwbGF5L3NyYy9NYWluRGlhbG9nLmNwcAkyMDIzLTAyLTI1
IDE0OjAxOjU2LjAwMDAwMDAwMCArMDEwMApAQCAtMTA1NiwxMyArMTA1NiwxNiBAQAogICAgICAg
ICBpbnQgc2lkPW15U2lkRnJlcS0+aWRlbnRpZnlGcmVxKHBsYXllci0+Z2V0U2lkVHVuZSgpLT5n
ZXREYXRhQnVmZmVyKCksIHBsYXllci0+Z2V0U2lkVHVuZSgpLT5nZXREYXRhTGVuZ3RoKCkpOwog
ICAgICAgICAKICAgICAgICAgLy8gdGVzdCBmb3IgQTQgZnJlcS4KLSAgICAgICAgaWYgKHNpZD09
LTEpIHsKKyAgICAgICAgaWYgKHNpZDw9MCkgewogICAgICAgICAgIHRtcCs9UVN0cmluZygiXG5B
NCBmcmVxLiAgOiAtLSBIeiIpOyAgIAogICAgICAgICB9IGVsc2UgeyAgIAogICAgICAgICAgICAg
aW50IGZyZXE7Ci0gICAgICAgICAgICBpZiAobnRzYy5jb21wYXJlKHBsYXllci0+Z2V0RW11RW5n
aW5lKCktPmdldENsb2NrRnJlcVN0cmluZygpKT09MCkgZnJlcT0oaW50KXJvdW5kKHNpZCowLjA2
MDk1OTI3OTUzNzIpOyAvLzEwMjI3MjcvMjU2LzI1Ni8yNTY7Ci0gICAgICAgICAgICBlbHNlIGZy
ZXE9KGludClyb3VuZChzaWQqMC4wNTg3MjUzNTcwNTU3KTsgLy85ODUyNDgvMjU2LzI1Ni8yNTY7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIHRtcCs9UVN0cmlu
ZygiXG5BNCBmcmVxLiAgOiAlMSBIeiIpLmFyZyhmcmVxKTsKKyAgICAgICAgICAgIHRtcCs9UVN0
cmluZygiXG5BNCBmcmVxLiAgOiAiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazxzaWQ7
IGsrKykgeworICAgICAgICAgICAgICAgaWYgKG50c2MuY29tcGFyZShwbGF5ZXItPmdldEVtdUVu
Z2luZSgpLT5nZXRDbG9ja0ZyZXFTdHJpbmcoKSk9PTApIGZyZXE9KGludClyb3VuZChteVNpZEZy
ZXEtPmdldFNpZEZyZXEoaykqMC4wNjA5NTkyNzk1MzcyKTsgLy8xMDIyNzI3LzI1Ni8yNTYvMjU2
OworICAgICAgICAgICAgICAgZWxzZSBmcmVxPShpbnQpcm91bmQobXlTaWRGcmVxLT5nZXRTaWRG
cmVxKGspKjAuMDU4NzI1MzU3MDU1Nyk7IC8vOTg1MjQ4LzI1Ni8yNTYvMjU2OyAKKyAgICAgICAg
ICAgICAgIHRtcCs9UVN0cmluZygiJTEgSHogICAiKS5hcmcoZnJlcSk7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0gCiAgICAgICAgIGJyZWFrOyAKICNlbmRpZgpAQCAtMTUzOCw3ICsxNTQxLDcg
QEAKICAgICBpbnQgbWludXRlcyA9IG1pbGVhZ2UvNjA7CiAgICAgbWlsZWFnZSAtPSBtaW51dGVz
KjYwOwogICAgIFFTdHJpbmcgdGltZUNhdDsKLSAgICB0aW1lQ2F0LnNwcmludGYoIiVkIGRheXMs
ICVkIGhvdXJzLCAlZCBtaW51dGVzIixkYXlzLGhvdXJzLG1pbnV0ZXMpOworICAgIHRpbWVDYXQu
YXNwcmludGYoIiVkIGRheXMsICVkIGhvdXJzLCAlZCBtaW51dGVzIixkYXlzLGhvdXJzLG1pbnV0
ZXMpOwogICAgIHZlckNhdCArPSB0aW1lQ2F0OwogICAgIFFNZXNzYWdlQm94OjphYm91dCh0aGlz
LCJBYm91dCBTSURQTEFZIix2ZXJDYXQpOwogfQpAQCAtMTk1Myw3ICsxOTU2LDcgQEAKICAgICB7
CiAgICAgICAgIC8vIEZpcnN0IGdldCB0aGUgZmlsZS1nbG9iYWwgY29tbWVudC4KICAgICAgICAg
c3RpbEVudHJ5ID0gUVN0cmluZzo6ZnJvbUxhdGluMShteVNUSUwuZ2V0RW50cnkoIHNpZEZpbGVO
YW1lSFZTQy50b0xhdGluMSgpLmRhdGEoKSwgMCwgU1RJTDo6Y29tbWVudCApKTsKLSAgICAgICAg
aWYgKCBzdGlsSXNPa2F5ID0gIW15U1RJTC5oYXNDcml0aWNhbEVycm9yKCkgICkKKyAgICAgICAg
aWYgKCAoc3RpbElzT2theSA9ICFteVNUSUwuaGFzQ3JpdGljYWxFcnJvcigpKSAgKQogICAgICAg
ICB7CiAgICAgICAgICAgICAvLyBBcHBlbmQgU1RJTCBlbnRyeSBmb3IgY3VycmVudCBzdWItdHVu
ZSAnc29uZycuCiAgICAgICAgICAgICBzdGlsRW50cnkgKz0gUVN0cmluZzo6ZnJvbUxhdGluMSht
eVNUSUwuZ2V0RW50cnkoIHNpZEZpbGVOYW1lSFZTQy50b0xhdGluMSgpLmRhdGEoKSwgc29uZyAp
KTsKZGlmZiAtTmF1cncgL3hzaWRwbGF5Mi1jb2RlLXIyODgtdHJ1bmsveHNpZHBsYXkvc3JjL1Bs
YXllci5jcHAgL3hzaWRwbGF5Mi1jb2RlLXIyOTQtdHJ1bmsveHNpZHBsYXkvc3JjL1BsYXllci5j
cHAKLS0tIC94c2lkcGxheTItY29kZS1yMjg4LXRydW5rL3hzaWRwbGF5L3NyYy9QbGF5ZXIuY3Bw
CTIwMjAtMDYtMDIgMTY6MTM6NTguMDAwMDAwMDAwICswMjAwCisrKyAveHNpZHBsYXkyLWNvZGUt
cjI5NC10cnVuay94c2lkcGxheS9zcmMvUGxheWVyLmNwcAkyMDIzLTAyLTE5IDIxOjAyOjA3LjAw
MDAwMDAwMCArMDEwMApAQCAtNzM3LDggKzczNyw5IEBACiAgCiAgIGRvdWJsZSBzTWluID0gbWlu
KGZUdW5lU3BlZWRNaW4sIGN1cnJlbnQpOwogICBkb3VibGUgc01heCA9IG1heChmVHVuZVNwZWVk
TWF4LCBjdXJyZW50KTsKKwogICAvLyBza2lwIHVwZGF0ZSBpZiBubyBjaGFuZ2VzIGhhcHBlbgot
ICBpZiAoc01pbj09IGZUdW5lU3BlZWRNaW4gJiYgc01heD09ZlR1bmVTcGVlZE1heCkgcmV0dXJu
OyAKKy8vICBpZiAoKHNNaW49PWZUdW5lU3BlZWRNaW4pICYmIChzTWF4PT1mVHVuZVNwZWVkTWF4
KSkgcmV0dXJuOyAKIAogICBmVHVuZVNwZWVkTWluID0gc01pbjsKICAgZlR1bmVTcGVlZE1heCA9
IHNNYXg7CkBAIC03NDYsMTggKzc0NywyMSBAQAogICBpZiAoZlR1bmVTcGVlZE1pbiAhPSBmVHVu
ZVNwZWVkTWF4KSB7CiAgICAgICBRU3RyaW5nIHN0cj1teUluZm9TdHJpbmc7CiAgICAgICBRU3Ry
aW5nIHN0cjI7Ci0gICAgICBpZiAoZlR1bmVTcGVlZE1pbjwxKSBzdHIyLnNwcmludGYoIiUuMGYt
JS4xZlgiLCBmVHVuZVNwZWVkTWluLCBmVHVuZVNwZWVkTWF4KTsKLSAgICAgIGVsc2Ugc3RyMi5z
cHJpbnRmKCIlLjBmLSUuMGZYIiwgZlR1bmVTcGVlZE1pbiwgZlR1bmVTcGVlZE1heCk7CisgICAg
ICBpZiAoZlR1bmVTcGVlZE1pbjwxKSBzdHIyPVFTdHJpbmcoIiUxZi0lMlgiKS5hcmcoZlR1bmVT
cGVlZE1pbiwgMCwgJ2YnLCAxKS5hcmcoZlR1bmVTcGVlZE1heCwgMCwgJ2YnLCAxKTsKKyAgICAg
IGVsc2Ugc3RyMj1RU3RyaW5nKCIlMWYtJTJYIikuYXJnKGZUdW5lU3BlZWRNaW4sIDAsICdmJywg
MCkuYXJnKGZUdW5lU3BlZWRNYXgsIDAsICdmJywgMCk7CiAgICAgICBzdHIrPXN0cjI7CiAgICAg
ICBteUluZm9GaWVsZC0+c2V0VGV4dChzdHIpOwogICB9IGVsc2UgewogICAgICAgUVN0cmluZyBz
dHI9bXlJbmZvU3RyaW5nOwogICAgICAgUVN0cmluZyBzdHIyOwotICAgICAgaWYgKGZUdW5lU3Bl
ZWRNYXg8MSkgc3RyMi5zcHJpbnRmKCIlLjFmWCIsIGZUdW5lU3BlZWRNYXgpOwotICAgICAgZWxz
ZSBzdHIyLnNwcmludGYoIiUuMGZYIiwgZlR1bmVTcGVlZE1heCk7CisgICAgICBpZiAoZlR1bmVT
cGVlZE1heDwxKSBzdHIyPVFTdHJpbmcoIiUxWCIpLmFyZyhmVHVuZVNwZWVkTWF4LCAwLCAnZics
IDEpOworICAgICAgZWxzZSBzdHIyPVFTdHJpbmcoIiUxWCIpLmFyZyhmVHVuZVNwZWVkTWF4LCAw
LCAnZicsIDApOwogICAgICAgc3RyKz1zdHIyOwogICAgICAgbXlJbmZvRmllbGQtPnNldFRleHQo
c3RyKTsKKyAgICAgIHN0ZDo6Y2VyciA8PCBzdHIudG9TdGRTdHJpbmcoKSA8PCAiXG4iOwogICAg
IH0KKyAgICAKKyAgICAgIHN0ZDo6Y2VyciA8PCBzTWluIDw8ICIgIiA8PCBzTWF4IDw8ICIgIiA8
PCBjdXJyZW50ICA8PCAiXG4iOwogfQogCiB2b2lkIFBsYXllcjo6c2V0RGlzcGxheVN0cmluZyhR
U3RyaW5nJiBpbmZvU3RyaW5nKQpkaWZmIC1OYXVydyAveHNpZHBsYXkyLWNvZGUtcjI4OC10cnVu
ay94c2lkcGxheS9zcmMvUGxheWxpc3RFZGl0RGlhbG9nLmNwcCAveHNpZHBsYXkyLWNvZGUtcjI5
NC10cnVuay94c2lkcGxheS9zcmMvUGxheWxpc3RFZGl0RGlhbG9nLmNwcAotLS0gL3hzaWRwbGF5
Mi1jb2RlLXIyODgtdHJ1bmsveHNpZHBsYXkvc3JjL1BsYXlsaXN0RWRpdERpYWxvZy5jcHAJMjAy
MC0wNS0wOSAxODoxMzozMS4wMDAwMDAwMDAgKzAyMDAKKysrIC94c2lkcGxheTItY29kZS1yMjk0
LXRydW5rL3hzaWRwbGF5L3NyYy9QbGF5bGlzdEVkaXREaWFsb2cuY3BwCTIwMjMtMDItMTkgMTQ6
MTE6NDguMDAwMDAwMDAwICswMTAwCkBAIC0xODQsNyArMTg0LDcgQEAKIHsKICAgICBpZiAoIHBs
YXlsaXN0PT0wICkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICggcGxheUxpc3RCb3gtPmNvdW50
KCkgJiYgcGxheUxpc3RCb3gtPmN1cnJlbnRJdGVtKCk+PTAgKQorICAgIGlmICggcGxheUxpc3RC
b3gtPmNvdW50KCkgJiYgcGxheUxpc3RCb3gtPmN1cnJlbnRJdGVtKCkgIT0gTlVMTCApCiAgICAg
ewogICAgICAgICBpbnQgaSA9IHBsYXlMaXN0Qm94LT5jdXJyZW50Um93KCk7CiAgICAgICAgIApA
QCAtMjQ3LDcgKzI0Nyw3IEBACiB7CiAgICAgaWYgKCBwbGF5bGlzdD09MCApCiAgICAgICAgIHJl
dHVybjsKLSAgICBpZiAoIHBsYXlMaXN0Qm94LT5jdXJyZW50SXRlbSgpID49IDAgKQorICAgIGlm
ICggcGxheUxpc3RCb3gtPmN1cnJlbnRJdGVtKCkgIT0gTlVMTCApCiAgICAgewogICAgICAgICBQ
bGF5bGlzdEl0ZW0qIHBsaSA9IChQbGF5bGlzdEl0ZW0qKSAmcGxheWxpc3QtPmxpc3QuYXQoIHBs
YXlMaXN0Qm94LT5jdXJyZW50Um93KCkgKTsKICAgICAgICAgaW50IG9sZFZhbCA9IHBsaS0+c3Vi
dHVuZTsKQEAgLTI2NCw3ICsyNjQsNyBAQAogewogICAgIGlmICggcGxheWxpc3Q9PTAgKQogICAg
ICAgICByZXR1cm47Ci0gICAgaWYgKCBwbGF5TGlzdEJveC0+Y3VycmVudEl0ZW0oKSA+PSAwICkK
KyAgICBpZiAoIHBsYXlMaXN0Qm94LT5jdXJyZW50SXRlbSgpICE9IE5VTEwgKQogICAgIHsKICAg
ICAgICAgUGxheWxpc3RJdGVtKiBwbGkgPSAoUGxheWxpc3RJdGVtKikgJnBsYXlsaXN0LT5saXN0
LmF0KCBwbGF5TGlzdEJveC0+Y3VycmVudFJvdygpICk7CiAgICAgICAgIGludCBvbGRWYWwgPSBw
bGktPnRpbWU7CkBAIC0yNzksNyArMjc5LDcgQEAKIC8vIHNsb3QKIHZvaWQgUGxheWxpc3RFZGl0
RGlhbG9nOjp1cGRhdGVFbnRyeUZldGNoVGltZSgpCiB7Ci0gICAgaWYgKCBwbGF5bGlzdD09MCB8
fCBwbGF5TGlzdEJveC0+Y3VycmVudEl0ZW0oKTwwICkKKyAgICBpZiAoIHBsYXlsaXN0PT0wIHx8
IHBsYXlMaXN0Qm94LT5jdXJyZW50SXRlbSgpID09IE5VTEwgKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKCAhU29uZ0xlbmd0aDo6Z2V0U3RhdHVzKCkgKQogICAgIHsKQEAgLTMxMSw3ICszMTEs
NyBAQAogewogICAgIGlmICggcGxheWxpc3Q9PTAgKQogICAgICAgICByZXR1cm47Ci0gICAgaWYg
KCBwbGF5TGlzdEJveC0+Y3VycmVudEl0ZW0oKSA+PSAwICkKKyAgICBpZiAoIHBsYXlMaXN0Qm94
LT5jdXJyZW50SXRlbSgpICE9IE5VTEwgKQogICAgIHsKICAgICAgICAgUGxheWxpc3RJdGVtKiBw
bGkgPSAoUGxheWxpc3RJdGVtKikgJnBsYXlsaXN0LT5saXN0LmF0KCBwbGF5TGlzdEJveC0+Y3Vy
cmVudFJvdygpICk7CiAgICAgICAgIGludCBvbGRWYWwgPSBwbGktPmZhZGVvdXQ7CmRpZmYgLU5h
dXJ3IC94c2lkcGxheTItY29kZS1yMjg4LXRydW5rL3hzaWRwbGF5L3NyYy9zaWRmcmVxL3NpZGZy
ZXEuY3BwIC94c2lkcGxheTItY29kZS1yMjk0LXRydW5rL3hzaWRwbGF5L3NyYy9zaWRmcmVxL3Np
ZGZyZXEuY3BwCi0tLSAveHNpZHBsYXkyLWNvZGUtcjI4OC10cnVuay94c2lkcGxheS9zcmMvc2lk
ZnJlcS9zaWRmcmVxLmNwcAkyMDIwLTA2LTIwIDEyOjAzOjI3LjAwMDAwMDAwMCArMDIwMAorKysg
L3hzaWRwbGF5Mi1jb2RlLXIyOTQtdHJ1bmsveHNpZHBsYXkvc3JjL3NpZGZyZXEvc2lkZnJlcS5j
cHAJMjAyMy0wMy0wMSAxODo1OToyNy4wMDAwMDAwMDAgKzAxMDAKQEAgLTIsNyArMiw3IEBACiAg
KiBAKCMpc2lkZnJlcS5jcHAgMjAxNy8wNC8xNwogICoKICAqIEBhdXRob3IgU3RlZmFubyBUb2du
b24gKGljZTAwKQotICogQHZlcnNpb24gMS4wMQorICogQHZlcnNpb24gMS4wMgogICoKICAqIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIFhTaWRwbGF5Mi4KICAqIFNlZSBSRUFETUUgZm9yIGNvcHlyaWdo
dCBub3RpY2UuCkBAIC0zMSwxNyArMzEsMjMgQEAKICNpbmNsdWRlIDxpb3N0cmVhbT4KICNpbmNs
dWRlIDxjc3RyaW5nPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPG1hdGguaD4KIAog
I2RlZmluZSBUQUJMRSAoOTYtNikKICNkZWZpbmUgU0hPUlQgNzIKICNkZWZpbmUgU0hPUlQyIDY1
IAorI2RlZmluZSBTQ0FMRV9UQUJMRSA1NgogI2RlZmluZSBBNCA1NworI2RlZmluZSBPQ1RfTk9U
RV9BNCAoQTQrMTYpCisjZGVmaW5lIFNDQUxFX05PVEVfQTQgMzMKKyNkZWZpbmUgT0NUX05PVEVf
VEFCTEUgKDEyOC02KQorI2RlZmluZSBBTEwgOTYKIAogI2RlZmluZSBFUlJPUiA2CiAKIAogCi1j
b25zdCBjaGFyICogY29uc3QgU2lkRnJlcTo6bV92ZXJzaW9uU3RyaW5nID0gIlNJREZyZXEgVjEu
MDEgYnkgU3RlZmFubyBUb2dub24gKEMpIDIwMTctMjAyMCI7Citjb25zdCBjaGFyICogY29uc3Qg
U2lkRnJlcTo6bV92ZXJzaW9uU3RyaW5nID0gIlNJREZyZXEgVjEuMDIgYnkgU3RlZmFubyBUb2du
b24gKEMpIDIwMTctMjAyMyI7CiAKIC8qKgogICogQ29uc3RydWN0b3IKQEAgLTY5LDcgKzc1LDEw
IEBACiAgIGludCBhY3R1YWw9MTsgICAKICAgIAogICAvLyBpdCBtdXN0IHN0YXJ0IHdpdGggdGhy
ZWUgMQotICBpZiAoICgoaW50KWJ1ZmZlcltpbmRleCswXSE9MSkgfHwgKChpbnQpYnVmZmVyW2lu
ZGV4KzFdIT0xKSB8fCAoKGludClidWZmZXJbaW5kZXgrMl0hPTEpKSByZXR1cm4gZmFsc2U7Cisg
IGlmICggCisgICAgICAoICgoaW50KWJ1ZmZlcltpbmRleCswXSE9MSkgfHwgKChpbnQpYnVmZmVy
W2luZGV4KzFdIT0xKSB8fCAoKGludClidWZmZXJbaW5kZXgrMl0hPTEpICkgJiYKKyAgICAgICgg
KChpbnQpYnVmZmVyW2luZGV4KzBdIT0wKSB8fCAoKGludClidWZmZXJbaW5kZXgrMV0hPTEpIHx8
ICgoaW50KWJ1ZmZlcltpbmRleCsyXSE9MSkgfHwgKChpbnQpYnVmZmVyW2luZGV4KzNdIT0xKSAp
CisgICAgICkgcmV0dXJuIGZhbHNlOwogICAgCiAgIC8vIHNlYXJjaCBmb3IgaW5jcmVhc2luZyBu
dW1iZXJzCiAgIGZvciAoaT1pbmRleCszOyBpPGluZGV4K1RBQkxFOyBpKyspIHsKQEAgLTE1Nyw2
ICsxNjYsMjkgQEAKIH0KIAogIC8qKgorICogU2VhcmNoIGZvciB0aGUgc2NhbGUgaGlnaCBmcmVx
dWVuY3kgdGFibGUgaW4gbGluZWFyIHdheQorICoKKyAqIEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZl
ciB3aXRoIHRoZSB0dW5lCisgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IHdoZXJlIHRvIHN0YXJ0
IHRoZSB0ZXN0CisgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBoaWdoIGZyZXF1ZW5jeSB0
YWJsZSBpbiB0aGF0IHBvc2l0aW9uIAorICovIAorYm9vbCBTaWRGcmVxOjpzZWFyY2hTY2FsZUhp
Z2goY29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgaW5kZXgpIHsKKyAgaW50IGk7Cisg
IGludCBhY3R1YWw9MTsgICAKKyAgIAorICAvLyBpdCBtdXN0IHN0YXJ0IHdpdGggdGhyZWUgMQor
ICBpZiAoICgoaW50KWJ1ZmZlcltpbmRleCswXSE9MSkgfHwgKChpbnQpYnVmZmVyW2luZGV4KzFd
IT0xKSB8fCAoKGludClidWZmZXJbaW5kZXgrMl0hPTEpKSByZXR1cm4gZmFsc2U7CisgICAKKyAg
Ly8gc2VhcmNoIGZvciBpbmNyZWFzaW5nIG51bWJlcnMKKyAgZm9yIChpPWluZGV4KzM7IGk8aW5k
ZXgrU0NBTEVfVEFCTEU7IGkrKykgeworICAgIGlmICgoaW50KShidWZmZXJbaV0mIDB4RkYpPGFj
dHVhbCkgcmV0dXJuIGZhbHNlOworICAgIGVsc2UgYWN0dWFsPShpbnQpKGJ1ZmZlcltpXSYgMHhG
Rik7CisgIH0KKyAgCisgIHJldHVybiB0cnVlOyAgIAorfSAKKworIC8qKgogICAqIFNlYXJjaCBm
b3IgYSBsb3cgZnJlcXVlbmN5IHRhYmxlIGluIGxpbmVhciB3YXkKICAgKiAKICAgKiBAcGFyYW0g
YnVmZmVyIHRoZSBidWZmZXIgd2l0aCB0aGUgdHVuZQpAQCAtMTczLDYgKzIwNSw5IEBACiAgIGJv
b2wgZXJyR3Jvb1BzeWdvbj1mYWxzZTsKICAgYm9vbCBlcnJWaWJyYW50c0pPPWZhbHNlOwogICAg
CisgIC8vIG9ubHkgYWNjZXB0IE1hc3RlcmNvbXBvc2VyIDAtZmYgaW5pdGlhbCB2YWx1ZQorICBp
ZiAoKGludClidWZmZXJbaGlnaF09PTAgJiYgKGludClidWZmZXJbaW5kZXhdIT0gMHhGRikgcmV0
dXJuIGZhbHNlOworICAgCiAgIC8vIHNjYW4gYWxsIG5vdGVzCiAgIGZvciAoaT0wOyBpPDEyOyBp
KyspIHsKICAgICBub3RlMT0oaW50KWJ1ZmZlcltoaWdoK2ldKjI1NisoaW50KWJ1ZmZlcltpbmRl
eCtpXTsKQEAgLTE5Niw2ICsyMzEsMjUgQEAKICAgICAvLyBjYXRjaCBlcnJvciBpbnRvIFZpYnJh
bnRzL0pPIG5vdGUgdGFibGUgYXQgNDE2SHogIAogICAgIGlmIChpPT0wICYmIGRpZmY9PTIxMikg
Y29udGludWU7ICAgCiAgICAgCisgICAgLy8gY2F0Y2ggZXJyb3IgaW50byBNYXN0ZXIgQ29tcG9z
ZXIgYXQ6CisgICAgaWYgKGk9PTApIHsKKyAgICAgICAgc3dpdGNoIChkaWZmKSB7CisgICAgICAg
ICAgICBjYXNlIDE5OiAvLyA0MTVIegorICAgICAgICAgICAgY2FzZSAyNjogLy8gNDIzSHoKKyAg
ICAgICAgICAgIGNhc2UgMjk6IC8vIDQyNEh6IAorICAgICAgICAgICAgY2FzZSAzMDogLy8gNDI0
SHoKKyAgICAgICAgICAgIGNhc2UgMzQ6IC8vIDQyN0h6ICAgIAorICAgICAgICAgICAgY2FzZSAz
OTogLy8gNDE1SHogICAgCisgICAgICAgICAgICBjYXNlIDM1OiAvLyA0MzdIegorICAgICAgICAg
ICAgY2FzZSA0NDogLy8gNDM0SHogICAgCisgICAgICAgICAgICBjYXNlIDQ4OiAvLyA0MzlIegor
ICAgICAgICAgICAgY2FzZSA1MTogLy8gNDQxSHogICAKKyAgICAgICAgICAgIGNhc2UgNjQ6IC8v
IDQ1MEh6ICAKKyAgICAgICAgICAgIGNhc2UgNjU6IC8vIDQ1Mkh6ICAgIAorICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0gICAgICAgIAorICAgfQorICAgIAogICAgIC8vIGNhdGNoIGFu
IGVycm9yIG9uIE1VU0lDSUFOUy9QL1BzZXVkb0dyYWZ4L0ZvbnR0aW1lLnNpZCAoc2hvcnQgdGFi
bGUgc2VlbXMgNDc2SHopCiAgICAgaWYgKGk9PTIgJiYgZGlmZj09MjUpIGNvbnRpbnVlOyAgICAK
ICAgICAKQEAgLTM0NCw2ICszOTgsOSBAQAogICAgICAgaWYgKGk9PTEwICYmIGRpZmY9PTMwMikg
Y29udGludWU7IAogICAgIH0gICAgICAKICAgICAKKyAgICAvLyBjYXRjaCBhbmQgYXJyb3IgaW4g
TWVnYXNvdW5kCisgICAgaWYgKGk9PTMgJiYgZGlmZj09MTYpIGNvbnRpbnVlOworICAgIAogICAg
IGlmIChkaWZmPkVSUk9SKSByZXR1cm4gZmFsc2U7CiAgIH0KICAgIApAQCAtMzk0LDM2ICs0NTEs
MjI0IEBACiB9CiAKIC8qKgorICogU2VhcmNoIGZvciB0aGUgaGlnaCBmcmVxdWVuY3kgdGFibGUg
aW4gbGluZWFyIHdheSBmb3Igb2N0YXZlL25vdGUgZm9ybWF0CisgKgorICogQHBhcmFtIGJ1ZmZl
ciB0aGUgYnVmZmVyIHdpdGggdGhlIHR1bmUKKyAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggd2hl
cmUgdG8gc3RhcnQgdGhlIHRlc3QKKyAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGhpZ2gg
ZnJlcXVlbmN5IHRhYmxlIGluIHRoYXQgcG9zaXRpb24gCisgKi8gCitib29sIFNpZEZyZXE6OnNl
YXJjaE9jdE5vdGVIaWdoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IGluZGV4KSB7
CisgIGludCBvY3Q7CisgIGludCBhY3R1YWw9MTsgICAKKyAgIAorICAvLyBpdCBtdXN0IHN0YXJ0
IHdpdGggdGhyZWUgMQorICBpZiAoICgoaW50KWJ1ZmZlcltpbmRleCswXSE9MSkgfHwgKChpbnQp
YnVmZmVyW2luZGV4KzFdIT0xKSB8fCAoKGludClidWZmZXJbaW5kZXgrMl0hPTEpKSByZXR1cm4g
ZmFsc2U7CisgICAgCisgIGZvciAob2N0PTA7IG9jdDw4OyBvY3QrKykgeworICAgICAgaWYgKChp
bnQpYnVmZmVyW2luZGV4K29jdCoxNisxMl0hPTAgfHwgCisgICAgICAgICAgKGludClidWZmZXJb
aW5kZXgrb2N0KjE2KzEzXSE9MCB8fAorICAgICAgICAgIChpbnQpYnVmZmVyW2luZGV4K29jdCox
NisxNF0hPTAgfHwKKyAgICAgICAgICAoaW50KWJ1ZmZlcltpbmRleCtvY3QqMTYrMTVdIT0wKSAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICBpZiAoKGludCkoYnVmZmVyW2luZGV4K29j
dCoxNl0pPGFjdHVhbCB8fAorICAgICAgICAgIChpbnQpKGJ1ZmZlcltpbmRleCtvY3QqMTYrMV0p
PChpbnQpKGJ1ZmZlcltpbmRleCtvY3QqMTZdKSB8fCAgICAKKyAgICAgICAgICAoaW50KShidWZm
ZXJbaW5kZXgrb2N0KjE2KzJdKTwoaW50KShidWZmZXJbaW5kZXgrb2N0KjE2KzFdKSB8fCAgICAg
ICAgCisgICAgICAgICAgKGludCkoYnVmZmVyW2luZGV4K29jdCoxNiszXSk8KGludCkoYnVmZmVy
W2luZGV4K29jdCoxNisyXSkgfHwgICAgCisgICAgICAgICAgKGludCkoYnVmZmVyW2luZGV4K29j
dCoxNis0XSk8KGludCkoYnVmZmVyW2luZGV4K29jdCoxNiszXSkgfHwgICAgCisgICAgICAgICAg
KGludCkoYnVmZmVyW2luZGV4K29jdCoxNis1XSk8KGludCkoYnVmZmVyW2luZGV4K29jdCoxNis0
XSkgfHwgICAgICAgIAorICAgICAgICAgIChpbnQpKGJ1ZmZlcltpbmRleCtvY3QqMTYrNl0pPChp
bnQpKGJ1ZmZlcltpbmRleCtvY3QqMTYrNV0pIHx8ICAgICAgICAKKyAgICAgICAgICAoaW50KShi
dWZmZXJbaW5kZXgrb2N0KjE2KzddKTwoaW50KShidWZmZXJbaW5kZXgrb2N0KjE2KzZdKSB8fCAg
ICAgICAgCisgICAgICAgICAgKGludCkoYnVmZmVyW2luZGV4K29jdCoxNis4XSk8KGludCkoYnVm
ZmVyW2luZGV4K29jdCoxNis3XSkgfHwgICAgICAgIAorICAgICAgICAgIChpbnQpKGJ1ZmZlcltp
bmRleCtvY3QqMTYrOV0pPChpbnQpKGJ1ZmZlcltpbmRleCtvY3QqMTYrOF0pIHx8ICAgICAgICAK
KyAgICAgICAgICAoaW50KShidWZmZXJbaW5kZXgrb2N0KjE2KzEwXSk8KGludCkoYnVmZmVyW2lu
ZGV4K29jdCoxNis5XSkgfHwgICAgICAgIAorICAgICAgICAgIChpbnQpKGJ1ZmZlcltpbmRleCtv
Y3QqMTYrMTFdKTwoaW50KShidWZmZXJbaW5kZXgrb2N0KjE2KzEwXSkpIHJldHVybiBmYWxzZTsg
CisgICAgICBhY3R1YWw9KGludCkoYnVmZmVyW2luZGV4K29jdCoxNisxMV0pOworICB9CisKKyAg
cmV0dXJuIHRydWU7ICAgCit9CisgIAorLyoqCisgKiBTZWFyY2ggZm9yIGEgbG93IGZyZXF1ZW5j
eSB0YWJsZSBpbiBsaW5lYXIgd2F5IGZvciBvY3RhdmUvbm90ZQorICogCisgKiBAcGFyYW0gYnVm
ZmVyIHRoZSBidWZmZXIgd2l0aCB0aGUgdHVuZQorICogQHBhcmFtIGhpZ2ggdGhlIHBvc2l0aW9u
IG9mIGhpZ2ggdGFibGUKKyAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggd2hlcmUgdG8gc2VhcmNo
IGZvciBsb3cgdGFibGUKKyAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGxvdyBmcmVxdWVu
Y3kgdGFibGUgaW4gdGhhdCBwb3NpdGlvbiAKKyAqLyAKK2Jvb2wgU2lkRnJlcTo6c2VhcmNoT2N0
Tm90ZUxvdyhjb25zdCB1bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCBoaWdoLCBpbnQgaW5kZXgp
IHsKKyAgaW50IGk7CisgIGludCBub3RlMSwgbm90ZTIsIG5vdGUzLCBub3RlNCwgbm90ZTUsIG5v
dGU2LCBub3RlNzsKKyAgaW50IGRpZmY7CisgICAKKyAgLy8gc2NhbiBhbGwgbm90ZXMKKyAgZm9y
IChpPTA7IGk8MTI7IGkrKykgeworICAgIG5vdGUxPShpbnQpKGJ1ZmZlcltoaWdoK2ldKSoyNTYr
KGludCkoYnVmZmVyW2luZGV4K2ldKTsKKyAgICBub3RlMj0oaW50KShidWZmZXJbaGlnaCtpKzE2
XSkqMjU2KyhpbnQpKGJ1ZmZlcltpbmRleCtpKzE2XSk7CisgICAgbm90ZTM9KGludCkoYnVmZmVy
W2hpZ2graSsxNioyXSkqMjU2KyhpbnQpKGJ1ZmZlcltpbmRleCtpKzE2KjJdKTsKKyAgICBub3Rl
ND0oaW50KShidWZmZXJbaGlnaCtpKzE2KjNdKSoyNTYrKGludCkoYnVmZmVyW2luZGV4K2krMTYq
M10pOworICAgIG5vdGU1PShpbnQpKGJ1ZmZlcltoaWdoK2krMTYqNF0pKjI1NisoaW50KShidWZm
ZXJbaW5kZXgraSsxNio0XSk7CisgICAgbm90ZTY9KGludCkoYnVmZmVyW2hpZ2graSsxNio1XSkq
MjU2KyhpbnQpKGJ1ZmZlcltpbmRleCtpKzE2KjVdKTsKKyAgICBub3RlNz0oaW50KShidWZmZXJb
aGlnaCtpKzE2KjZdKSoyNTYrKGludCkoYnVmZmVyW2luZGV4K2krMTYqNl0pOworICAKKyAgICBk
aWZmPTA7CisgICAgZGlmZis9c3RkOjphYnMobm90ZTEqMiAtIG5vdGUyKTsKKyAgICBpZiAoaTwx
MSkgZGlmZis9c3RkOjphYnMobm90ZTIqMiAtIG5vdGUzKTsKKyAgICBpZiAoaTwxMSkgZGlmZis9
c3RkOjphYnMobm90ZTMqMiAtIG5vdGU0KTsKKyAgICBpZiAoaTwxMSkgZGlmZis9c3RkOjphYnMo
bm90ZTQqMiAtIG5vdGU1KTsKKyAgICBpZiAoaTwxMSkgZGlmZis9c3RkOjphYnMobm90ZTUqMiAt
IG5vdGU2KTsKKyAgICBpZiAoaTwxMSkgZGlmZis9c3RkOjphYnMobm90ZTYqMiAtIG5vdGU3KTsK
KyAgICAgIAorICAgIGlmIChkaWZmPkVSUk9SKzMpIHJldHVybiBmYWxzZTsKKyAgfQorICAgCisg
IHJldHVybiB0cnVlOworfSAgCisKKy8qKgorICogU2VhcmNoIGZvciBhIGxvdyBmcmVxdWVuY3kg
c2NhbGUgdGFibGUgaW4gbGluZWFyIHdheQorICogCisgKiBAcGFyYW0gYnVmZmVyIHRoZSBidWZm
ZXIgd2l0aCB0aGUgdHVuZQorICogQHBhcmFtIGhpZ2ggdGhlIHBvc2l0aW9uIG9mIGhpZ2ggdGFi
bGUKKyAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggd2hlcmUgdG8gc2VhcmNoIGZvciBsb3cgdGFi
bGUKKyAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGxvdyBmcmVxdWVuY3kgdGFibGUgaW4g
dGhhdCBwb3NpdGlvbiAKKyAqLyAKK2Jvb2wgU2lkRnJlcTo6c2VhcmNoU2NhbGVMb3coY29uc3Qg
dW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgaGlnaCwgaW50IGluZGV4KSB7CisgIGludCBpOwor
ICBpbnQgbm90ZTEsIG5vdGUyLCBub3RlMywgbm90ZTQsIG5vdGU1LCBub3RlNiwgbm90ZTc7Cisg
IGludCBkaWZmOworICAgCisgIC8vIHNjYW4gYWxsIG5vdGVzCisgIGZvciAoaT0wOyBpPDg7IGkr
KykgeworICAgIG5vdGUxPShpbnQpKGJ1ZmZlcltoaWdoK2ldKSoyNTYrKGludCkoYnVmZmVyW2lu
ZGV4K2ldKTsKKyAgICBub3RlMj0oaW50KShidWZmZXJbaGlnaCtpKzddKSoyNTYrKGludCkoYnVm
ZmVyW2luZGV4K2krN10pOworICAgIG5vdGUzPShpbnQpKGJ1ZmZlcltoaWdoK2krNyoyXSkqMjU2
KyhpbnQpKGJ1ZmZlcltpbmRleCtpKzcqMl0pOworICAgIG5vdGU0PShpbnQpKGJ1ZmZlcltoaWdo
K2krNyozXSkqMjU2KyhpbnQpKGJ1ZmZlcltpbmRleCtpKzcqM10pOworICAgIG5vdGU1PShpbnQp
KGJ1ZmZlcltoaWdoK2krNyo0XSkqMjU2KyhpbnQpKGJ1ZmZlcltpbmRleCtpKzcqNF0pOworICAK
KyAgICBkaWZmPTA7CisgICAgZGlmZis9YWJzKG5vdGUxKjIgLSBub3RlMik7CisgICAgZGlmZis9
YWJzKG5vdGUyKjIgLSBub3RlMyk7CisgICAgZGlmZis9YWJzKG5vdGUzKjIgLSBub3RlNCk7Cisg
ICAgZGlmZis9YWJzKG5vdGU0KjIgLSBub3RlNSk7CisgICAgCisgICAgaWYgKGRpZmY+RVJST1Ip
IHJldHVybiBmYWxzZTsKKyAgfQorICAgCisgIHJldHVybiB0cnVlOworfSAgCisKKy8qKgorICog
U2VhcmNoIGZvciB0aGUgaGlnaCBmcmVxdWVuY3kgaW52ZXJzZSB0YWJsZSBpbiBsaW5lYXIgd2F5
CisgKgorICogQHBhcmFtIGJ1ZmZlciB0aGUgYnVmZmVyIHdpdGggdGhlIHR1bmUKKyAqIEBwYXJh
bSBpbmRleCB0aGUgaW5kZXggd2hlcmUgdG8gc3RhcnQgdGhlIHRlc3QKKyAqIEByZXR1cm4gdHJ1
ZSBpZiB0aGVyZSBpcyBhIGhpZ2ggZnJlcXVlbmN5IHRhYmxlIGluIHRoYXQgcG9zaXRpb24gCisg
Ki8gCitib29sIFNpZEZyZXE6OnNlYXJjaEludmVyc2VIaWdoKGNvbnN0IHVuc2lnbmVkIGNoYXIg
KmJ1ZmZlcixpbnQgaW5kZXgpIHsKKyAgaW50IGk7CisgIGludCBhY3R1YWw9MTsgICAKKyAgIAor
ICAvLyBpdCBtdXN0IHN0YXJ0IHdpdGggdGhyZWUgMQorICBpZiAoICgoaW50KWJ1ZmZlcltpbmRl
eC0wXSE9MSkgfHwgKChpbnQpYnVmZmVyW2luZGV4LTFdIT0xKSB8fCAoKGludClidWZmZXJbaW5k
ZXgtMl0hPTEpKSByZXR1cm4gZmFsc2U7CisgICAKKyAgLy8gc2VhcmNoIGZvciBpbmNyZWFzaW5n
IG51bWJlcnMKKyAgZm9yIChpPWluZGV4LTM7IGk+aW5kZXgtQUxMOyBpLS0pIHsKKyAgICBpZiAo
KGludCkoYnVmZmVyW2ldKTxhY3R1YWwpIHJldHVybiBmYWxzZTsKKyAgICBlbHNlIGFjdHVhbD0o
KGludClidWZmZXJbaV0pOworICB9CisKKyAgcmV0dXJuIHRydWU7ICAgCit9ICAgIAorICAKKy8q
KgorICogU2VhcmNoIGZvciBhIGxvdyBmcmVxdWVuY3kgaW52ZXJzZSB0YWJsZSBpbiBsaW5lYXIg
d2F5CisgKiAKKyAqIEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZlciB3aXRoIHRoZSB0dW5lCisgKiBA
cGFyYW0gaGlnaCB0aGUgcG9zaXRpb24gb2YgaGlnaCB0YWJsZQorICogQHBhcmFtIGluZGV4IHRo
ZSBpbmRleCB3aGVyZSB0byBzZWFyY2ggZm9yIGxvdyB0YWJsZQorICogQHJldHVybiB0cnVlIGlm
IHRoZXJlIGlzIGEgbG93IGZyZXF1ZW5jeSB0YWJsZSBpbiB0aGF0IHBvc2l0aW9uIAorICovIAor
Ym9vbCBTaWRGcmVxOjpzZWFyY2hJbnZlcnNlTG93KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZl
cixpbnQgaGlnaCwgaW50IGluZGV4KSB7CisgIGludCBpOworICBpbnQgbm90ZTEsIG5vdGUyLCBu
b3RlMywgbm90ZTQsIG5vdGU1LCBub3RlNiwgbm90ZTc7CisgIGludCBkaWZmOworICAgICAgIAor
ICAvLyBzY2FuIGFsbCBub3RlcworICBmb3IgKGk9MDsgaTwxMjsgaSsrKSB7CisgICAgbm90ZTE9
KGludCkoYnVmZmVyW2hpZ2gtaV0pKjI1NisoaW50KShidWZmZXJbaW5kZXgtaV0pOworICAgIG5v
dGUyPShpbnQpKGJ1ZmZlcltoaWdoLWktMTJdKSoyNTYrKGludCkoYnVmZmVyW2luZGV4LWktMTJd
KTsKKyAgICBub3RlMz0oaW50KShidWZmZXJbaGlnaC1pLTEyKjJdKSoyNTYrKGludCkoYnVmZmVy
W2luZGV4LWktMTIqMl0pOworICAgIG5vdGU0PShpbnQpKGJ1ZmZlcltoaWdoLWktMTIqM10pKjI1
NisoaW50KShidWZmZXJbaW5kZXgtaS0xMiozXSk7CisgICAgbm90ZTU9KGludCkoYnVmZmVyW2hp
Z2gtaS0xMio0XSkqMjU2KyhpbnQpKGJ1ZmZlcltpbmRleC1pLTEyKjRdKTsKKyAgICBub3RlNj0o
aW50KShidWZmZXJbaGlnaC1pLTEyKjVdKSoyNTYrKGludCkoYnVmZmVyW2luZGV4LWktMTIqNV0p
OworICAgIG5vdGU3PShpbnQpKGJ1ZmZlcltoaWdoLWktMTIqNl0pKjI1NisoaW50KShidWZmZXJb
aW5kZXgtaS0xMio2XSk7CisgIAorICAgIGRpZmY9MDsKKyAgICBkaWZmKz1zdGQ6OmFicyhub3Rl
MSoyIC0gbm90ZTIpOworICAgIGlmIChpPDExKSBkaWZmKz1zdGQ6OmFicyhub3RlMioyIC0gbm90
ZTMpOworICAgIGlmIChpPDExKSBkaWZmKz1zdGQ6OmFicyhub3RlMyoyIC0gbm90ZTQpOworICAg
IGlmIChpPDExKSBkaWZmKz1zdGQ6OmFicyhub3RlNCoyIC0gbm90ZTUpOworICAgIGlmIChpPDEx
KSBkaWZmKz1zdGQ6OmFicyhub3RlNSoyIC0gbm90ZTYpOworICAgIGlmIChpPDExKSBkaWZmKz1z
dGQ6OmFicyhub3RlNioyIC0gbm90ZTcpOworICAgICAgICAgICAgCisgICAgaWYgKGRpZmY+RVJS
T1IpIHJldHVybiBmYWxzZTsKKyAgfQorICAgCisgIHJldHVybiB0cnVlOworfSAgCisKKy8qKgog
ICogU2VhcmNoIGZvciB0YWJsZXMgaW4gbGluZWFyIHdheSAobG93IC8gaGlnaCBvciBoaWdoIC8g
bG93KQogICogCi0gKiBAcGFyYW0gYnVmZmVyIHRoZSBidWZmZWQgd2l0aCB0aGUgZGF0YSB0byBp
ZGVudGlmeQotICogQHBhcmFtIGxlbmd0aCBsZW5ndGggb2YgdGhlIGJ1ZmZlcgotICogQHJldHVy
biB0aGUgc2lkIHZhbHVlIG9mIEE0IGZyZXF1ZW5jeSAob3IgLTEgaWYgbm90IGZvdW50KSAKKyAq
IEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZlciB3aXRoIHRoZSB0dW5lCisgKiBAcGFyYW0gaGlnaCB0
aGUgcG9zaXRpb24gb2YgaGlnaCB0YWJsZQorICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCB3aGVy
ZSB0byBzZWFyY2ggZm9yIGxvdyB0YWJsZQorICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEg
bG93IGZyZXF1ZW5jeSB0YWJsZSBpbiB0aGF0IHBvc2l0aW9uIAogICovCi1pbnQgU2lkRnJlcTo6
bGluZWFyVGFibGUoY29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgbGVuZ3RoKSB7Ci0g
IGludCBzaWQ7Citib29sIFNpZEZyZXE6OmxpbmVhclRhYmxlKGNvbnN0IHVuc2lnbmVkIGNoYXIg
KmJ1ZmZlciwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CiAgIGludCBpOworICAgIGludCBzaWQ7CiAg
IGludCBoaWdoPS0xOwogICBpbnQgbG93PS0xOwogICAgICAKICAgLy8gY2hlY2sgZm9yIGhpZ2gg
ZnJlcXVlbmN5IHRhYmxlCi0gIGZvciAoaT0wOyBpPGxlbmd0aC1UQUJMRTsgaSsrKSB7Ci0gICAg
aWYgKHNlYXJjaEhpZ2goYnVmZmVyLCBpKSkgewotICAgICAgaGlnaD1pOworICAgIGZvciAoaW50
IGlpPXN0YXJ0OyBpaTxlbmQtVEFCTEU7IGlpKyspIHsKKyAgICAgIGlmIChzZWFyY2hIaWdoKGJ1
ZmZlciwgaWkpKSB7CisgICAgICAgIGhpZ2g9aWk7CisgICAgICAgIAorICAgICAgICAvLyBjaGVj
ayBmb3IgbG93IGZyZXF1ZW5jeSB0YWJsZSAoZmlyc3QgcGFydCkKKyAgICAgICAgaWYgKGhpZ2g+
VEFCTEUpIHsKKyAgICAgICAgICBmb3IgKGk9c3RhcnQ7IGk8PWhpZ2gtVEFCTEU7IGkrKykgewor
ICAgICAgICAgICAgaWYgKHNlYXJjaExvdyhidWZmZXIsIGhpZ2gsIGkpKSB7CisgICAgICAgICAg
ICAgIGxvdz1pOwogICAgICAgYnJlYWs7ICAgICAgICAgCiAgICAgfQogICB9CisgICAgICAgIH0g
IAogCi0jaWZkZWYgREVCVUdfU0lERlJFUSAgCi0gIHN0ZDo6Y2VyciA8PCAiSD0iIDw8IGhpZ2gg
PDwgIlxuIjsKLSNlbmRpZiAgCisgICAgICAgIC8vIGNoZWNrIGZvciBoaWdoIGZyZXF1ZW5jeSB0
YWJsZSAoc2Vjb25kIHBhcnQpCisgICAgICAgIGlmICgobG93PT0tMSkgJiYgKGhpZ2g8ZW5kLVRB
QkxFKjIpKSB7CisgICAgICAgICAgZm9yIChpPWhpZ2grVEFCTEU7IGk8ZW5kLVRBQkxFOyBpKysp
IHsKKyAgICAgICAgICAgIGlmIChzZWFyY2hMb3coYnVmZmVyLCBoaWdoLCBpKSkgeworICAgICAg
ICAgICAgICBsb3c9aTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9ICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgCi0gIC8vIGxvb2sgaWYg
aGlnaCB0YWJsZSB3YXMgZm91bnQKLSAgaWYgKGhpZ2g9PS0xKSByZXR1cm4gLTE7CisgICAgICAg
IGlmIChsb3chPS0xKSBicmVhazsgIC8vIGV4aXQgbG9vcCBhcyBmcmVxdWVuY3kgaXMgZm91bnQK
KyAgICAgICAgCisgICAgICAgIC8vIGxvb2sgaWYgbG93IHRhYmxlIHdhcyBmb3VudCAgICAgCisg
ICAgICAgIGlmIChidWZmZXJbaGlnaF09PTApIHsKKworICAgICAgICAgIC8vIFRoaXMgbG9va2Vk
IGxpa2UgYSBtYXN0ZXJjb21wb3NlciwgdGhlbiBjaGVjayBpZiBuZXh0IGlzIGdvb2QgaW5zdGVh
ZAorICAgICAgICAgIGlmICgrK2hpZ2g+ZW5kLVRBQkxFKSByZXR1cm4gZmFsc2U7ICAgICAgCisg
ICAgICAgICAgaWYgKCFzZWFyY2hIaWdoKGJ1ZmZlciwgaGlnaCkpIHJldHVybiBmYWxzZTsKICAg
ICAgCiAgIC8vIGNoZWNrIGZvciBsb3cgZnJlcXVlbmN5IHRhYmxlIChmaXJzdCBwYXJ0KQogICBp
ZiAoaGlnaD5UQUJMRSkgewotICAgIGZvciAoaT0wOyBpPD1oaWdoLVRBQkxFOyBpKyspIHsKKyAg
ICAgICAgICAgIGZvciAoaT1zdGFydDsgaTw9aGlnaC1UQUJMRTsgaSsrKSB7CiAgICAgICBpZiAo
c2VhcmNoTG93KGJ1ZmZlciwgaGlnaCwgaSkpIHsKICAgICAgICAgbG93PWk7CiAgICAgICAgIGJy
ZWFrOwpAQCAtNDMyLDMwICs2NzcsMzQgQEAKICAgfQogICAgICAKICAvLyBjaGVjayBmb3IgaGln
aCBmcmVxdWVuY3kgdGFibGUgKHNlY29uZCBwYXJ0KQotIGlmICgobG93PT0tMSkgJiYgKGhpZ2g8
bGVuZ3RoLVRBQkxFKjIpKSB7Ci0gICBmb3IgKGk9aGlnaCtUQUJMRTsgaTxsZW5ndGgtVEFCTEU7
IGkrKykgeworICAgICAgICAgIGlmICgobG93PT0tMSkgJiYgKGhpZ2g8ZW5kLVRBQkxFKjIpKSB7
CisgICAgICAgICAgICBmb3IgKGk9aGlnaCtUQUJMRTsgaTxlbmQtVEFCTEU7IGkrKykgewogICAg
ICBpZiAoc2VhcmNoTG93KGJ1ZmZlciwgaGlnaCwgaSkpIHsKICAgICAgICBsb3c9aTsKICAgICAg
ICBicmVhazsKICAgICAgfSAgICAgICAgICAgICAgICAgCiAgICB9CiAgfQorICAgICAgICB9ICAg
ICAgICAgCisgICAgICAgIGlmIChsb3chPS0xKSBicmVhazsgICAgICAgICAgIAorICAgICAgfQor
ICAgIH0gIAogIAotI2lmZGVmIERFQlVHX1NJREZSRVEgICAKLSBzdGQ6OmNlcnIgPDwgIkw9IiA8
PCBsb3cgPDwgIlxuIjsKLSNlbmRpZiAKLSAgICAgIAotIC8vIGxvb2sgaWYgbG93IHRhYmxlIHdh
cyBmb3VudAotIGlmIChsb3c9PS0xKSByZXR1cm4gLTE7CisgICAgLy8gbG9vayBpZiBoaWdoIGFu
ZCBsb3cgdGFibGUgd2FzIGZvdW50CisgICAgaWYgKGhpZ2g9PS0xIHx8IGxvdz09LTEpIHJldHVy
biBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgCiAgLy8gZ2V0IHRoZSBB
NCBub3RlCi0gc2lkPShpbnQpYnVmZmVyW2hpZ2grQTRdKjI1NisoaW50KWJ1ZmZlcltsb3crQTRd
OyAKKyAgICBzaWQ9KGJ1ZmZlcltoaWdoK0E0XSkqMjU2KyhidWZmZXJbbG93K0E0XSk7ICAKKwor
ICAgIC8vIG1vZGlmeSBzdGFydCBmb3IgYW5vdGhlciBhbmFsaXN5cworICAgIGN1clN0YXJ0PXN0
ZDo6bWluKHN0ZDo6bWF4KGhpZ2gsIGxvdykrVEFCTEUsIGVuZC1UQUJMRSk7CisgICAgbGlzdC5w
dXNoX2JhY2soc2lkKTsgCiAKICNpZmRlZiBERUJVR19TSURGUkVRICAgCiAgc3RkOjpjZXJyIDw8
ICJTPSIgPDwgc2lkIDw8ICJcbiI7CiAjZW5kaWYgCiAgCi0gcmV0dXJuIHNpZDsgICAgCisgICAg
cmV0dXJuIHRydWU7ICAgICAgCiB9ICAgCiAKIApAQCAtNDYzLDE3ICs3MTIsMTggQEAKICAqIFNl
YXJjaCBmb3Igc2hvcnQgdGFibGVzIGluIGxpbmVhciB3YXkgKGxvdyAvIGhpZ2ggb3IgaGlnaCAv
IGxvdykKICAqIAogICogQHBhcmFtIGJ1ZmZlciB0aGUgYnVmZmVkIHdpdGggdGhlIGRhdGEgdG8g
aWRlbnRpZnkKLSAqIEBwYXJhbSBsZW5ndGggbGVuZ3RoIG9mIHRoZSBidWZmZXIKLSAqIEByZXR1
cm4gdGhlIHNpZCB2YWx1ZSBvZiBBNCBmcmVxdWVuY3kgKG9yIC0xIGlmIG5vdCBmb3VudCkgCisg
KiBAcGFyYW0gc3RhcnQgc3RhcnQgcG9zaXRpb24gaW4gYnVmZmVyCisgKiBAcGFyYW0gZW5kIGVu
ZCBwb3NpdGlvbiBpbiBidWZmZXIKKyAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGFibGUgaXMgZm91
bnQKICAqLwotaW50IFNpZEZyZXE6OnNob3J0TGluZWFyVGFibGUoY29uc3QgdW5zaWduZWQgY2hh
ciAqYnVmZmVyLCBpbnQgbGVuZ3RoKSB7Citib29sIFNpZEZyZXE6OnNob3J0TGluZWFyVGFibGUo
Y29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgc3RhcnQsIGludCBlbmQpIHsKICAgaW50
IHNpZDsKICAgaW50IGk7CiAgIGludCBoaWdoPS0xOwogICBpbnQgbG93PS0xOwogICAgICAKICAg
Ly8gY2hlY2sgZm9yIGhpZ2ggZnJlcXVlbmN5IHRhYmxlCi0gIGZvciAoaT0wOyBpPGxlbmd0aC1T
SE9SVDsgaSsrKSB7CisgIGZvciAoaT1zdGFydDsgaTxlbmQtU0hPUlQ7IGkrKykgewogICAgIGlm
IChzZWFyY2hTaG9ydEhpZ2goYnVmZmVyLCBpKSkgewogICAgICAgaGlnaD1pOwogICAgICAgYnJl
YWs7ICAgICAgICAgCkBAIC00ODUsMTEgKzczNSwxMSBAQAogI2VuZGlmICAKICAgICAgCiAgIC8v
IGxvb2sgaWYgaGlnaCB0YWJsZSB3YXMgZm91bnQKLSAgaWYgKGhpZ2g9PS0xKSByZXR1cm4gLTE7
CisgIGlmIChoaWdoPT0tMSkgcmV0dXJuIGZhbHNlOwogICAgICAKICAgLy8gY2hlY2sgZm9yIGxv
dyBmcmVxdWVuY3kgdGFibGUgKGZpcnN0IHBhcnQpCiAgIGlmIChoaWdoPlNIT1JUKSB7Ci0gICAg
Zm9yIChpPTA7IGk8PWhpZ2gtU0hPUlQ7IGkrKykgeworICAgIGZvciAoaT1zdGFydDsgaTw9aGln
aC1TSE9SVDsgaSsrKSB7CiAgICAgICBpZiAoc2VhcmNoU2hvcnRMb3coYnVmZmVyLCBoaWdoLCBp
KSkgewogICAgICAgICBsb3c9aTsKICAgICAgICAgYnJlYWs7CkBAIC00OTgsOCArNzQ4LDggQEAK
ICAgfQogICAgICAKICAvLyBjaGVjayBmb3IgaGlnaCBmcmVxdWVuY3kgdGFibGUgKHNlY29uZCBw
YXJ0KQotIGlmICgobG93PT0tMSkgJiYgKGhpZ2g8bGVuZ3RoLVNIT1JUKjIpKSB7Ci0gICBmb3Ig
KGk9aGlnaCtTSE9SVDsgaTxsZW5ndGgtU0hPUlQ7IGkrKykgeworICBpZiAoKGxvdz09LTEpICYm
IChoaWdoPGVuZC1TSE9SVCoyKSkgeworICAgIGZvciAoaT1oaWdoK1NIT1JUOyBpPGVuZC1TSE9S
VDsgaSsrKSB7CiAgICAgIGlmIChzZWFyY2hTaG9ydExvdyhidWZmZXIsIGhpZ2gsIGkpKSB7CiAg
ICAgICAgbG93PWk7CiAgICAgICAgYnJlYWs7CkBAIC01MTIsMTEgKzc2MiwxNSBAQAogI2VuZGlm
IAogICAgICAgCiAgLy8gbG9vayBpZiBsb3cgdGFibGUgd2FzIGZvdW50Ci0gaWYgKGxvdz09LTEp
IHJldHVybiAtMTsKKyAgaWYgKGxvdz09LTEpIHJldHVybiBmYWxzZTsKICAgICAgCiAgLy8gZ2V0
IHRoZSBBNCBub3RlCiAgc2lkPShpbnQpYnVmZmVyW2hpZ2grQTRdKjI1NisoaW50KWJ1ZmZlclts
b3crQTRdOyAKICAKKyAgLy8gbW9kaWZ5IHN0YXJ0IGZvciBhbm90aGVyIGFuYWxpc3lzCisgIGN1
clN0YXJ0PXN0ZDo6bWluKHN0ZDo6bWF4KGhpZ2gsIGxvdykrVEFCTEUsIGVuZC1UQUJMRSk7Cisg
IGxpc3QucHVzaF9iYWNrKHNpZCk7IAorIAogI2lmZGVmIERFQlVHX1NJREZSRVEgICAKICBzdGQ6
OmNlcnIgPDwgIlM9IiA8PCBzaWQgPDwgIlxuIjsKICNlbmRpZiAKQEAgLTUyOSwxNyArNzgzLDE4
IEBACiAgKiBTZWFyY2ggZm9yIHRhYmxlcyBpbiBjb21iaW5lZCB3YXkgKGxvdyArIGhpZ2ggb3Ig
aGlnaCArIGxvdykKICAqIAogICogQHBhcmFtIGJ1ZmZlciB0aGUgYnVmZmVkIHdpdGggdGhlIGRh
dGEgdG8gaWRlbnRpZnkKKyAqIAogICogQHBhcmFtIGxlbmd0aCBsZW5ndGggb2YgdGhlIGJ1ZmZl
cgogICogQHJldHVybiB0aGUgc2lkIHZhbHVlIG9mIEE0IGZyZXF1ZW5jeSAob3IgLTEgaWYgbm90
IGZvdW50KSAKICAqLwotaW50IFNpZEZyZXE6OmNvbWJpbmVkVGFibGUoY29uc3QgdW5zaWduZWQg
Y2hhciAqYnVmZmVyLCBpbnQgbGVuZ3RoKSB7Citib29sIFNpZEZyZXE6OmNvbWJpbmVkVGFibGUo
Y29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgc3RhcnQsIGludCBlbmQpIHsKICAgaW50
IHNpZDsKICAgaW50IGk7CiAgIGludCBoaWdoPS0xOwogICBpbnQgbG93PS0xOwogICAgICAKICAg
Ly8gY2hlY2sgZm9yIGhpZ2ggZnJlcXVlbmN5IHRhYmxlCi0gIGZvciAoaT0wOyBpPGxlbmd0aC1U
QUJMRSoyOyBpKyspIHsKKyAgZm9yIChpPXN0YXJ0OyBpPGVuZC1UQUJMRSoyOyBpKyspIHsKICAg
ICBpZiAoc2VhcmNoSGlnaDIoYnVmZmVyLCBpKSkgewogICAgICAgaGlnaD1pOwogICAgICAgYnJl
YWs7ICAgICAgICAgCkBAIC01NTEsMTAgKzgwNiwxMCBAQAogI2VuZGlmICAKICAgICAgCiAgIC8v
IGxvb2sgaWYgaGlnaCB0YWJsZSB3YXMgZm91bnQKLSAgaWYgKGhpZ2g9PS0xKSByZXR1cm4gLTE7
ICAKKyAgaWYgKGhpZ2g9PS0xKSByZXR1cm4gZmFsc2U7ICAKICAgCiAgIC8vIGNoZWNrIGZvciBs
b3cgZnJlcXVlbmN5IHRhYmxlCi0gIGZvciAoaT0wOyBpPGxlbmd0aC1UQUJMRSoyOyBpKyspIHsK
KyAgZm9yIChpPXN0YXJ0OyBpPGVuZC1UQUJMRSoyOyBpKyspIHsKICAgICBpZiAoaSE9aGlnaCkg
ewogICAgICAgaWYgKHNlYXJjaExvdzIoYnVmZmVyLCBoaWdoLCBpKSkgewogICAgICAgICBsb3c9
aTsKQEAgLTU2OCwzMyArODIzLDM4IEBACiAjZW5kaWYgIAogICAKICAgLy8gbG9vayBpZiBsb3cg
dGFibGUgd2FzIGZvdW50Ci0gIGlmIChsb3c9PS0xKSByZXR1cm4gLTE7ICAKKyAgaWYgKGxvdz09
LTEpIHJldHVybiBmYWxzZTsgIAogICAKICAgLy8gZ2V0IHRoZSBBNCBub3RlCiAgIHNpZD0oaW50
KWJ1ZmZlcltoaWdoK0E0KjJdKjI1NisoaW50KWJ1ZmZlcltsb3crQTQqMl07IAogICAKKyAgLy8g
bW9kaWZ5IHN0YXJ0IGZvciBhbm90aGVyIGFuYWxpc3lzCisgIGN1clN0YXJ0PXN0ZDo6bWluKHN0
ZDo6bWF4KGhpZ2gsIGxvdykrVEFCTEUsIGVuZC1UQUJMRSk7CisgIGxpc3QucHVzaF9iYWNrKHNp
ZCk7IAorICAKICNpZmRlZiBERUJVR19TSURGUkVRICAgIAogICBzdGQ6OmNlcnIgPDwgIlM9IiA8
PCBzaWQgPDwgIlxuIjsKICNlbmRpZiAgCiAKLSAgcmV0dXJuIHNpZDsgIAorICByZXR1cm4gdHJ1
ZTsgIAogfQogCiAvKioKICAqIFNlYXJjaCBmb3Igc2hvcnQgdGFibGVzIGluIGNvbWJpbmVkIHdh
eSAobG93ICsgaGlnaCBvciBoaWdoICsgbG93KQogICogCiAgKiBAcGFyYW0gYnVmZmVyIHRoZSBi
dWZmZWQgd2l0aCB0aGUgZGF0YSB0byBpZGVudGlmeQotICogQHBhcmFtIGxlbmd0aCBsZW5ndGgg
b2YgdGhlIGJ1ZmZlcgotICogQHJldHVybiB0aGUgc2lkIHZhbHVlIG9mIEE0IGZyZXF1ZW5jeSAo
b3IgLTEgaWYgbm90IGZvdW50KSAKKyAqIEBwYXJhbSBzdGFydCBzdGFydCBwb3NpdGlvbiBpbiBi
dWZmZXIKKyAqIEBwYXJhbSBlbmQgZW5kIHBvc2l0aW9uIGluIGJ1ZmZlcgorICogQHJldHVybiB0
cnVlIGlmIHRoZSB0YWJsZSBpcyBmb3VudAogICovCi1pbnQgU2lkRnJlcTo6c2hvcnRDb21iaW5l
ZFRhYmxlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IGxlbmd0aCkgeworYm9vbCBT
aWRGcmVxOjpzaG9ydENvbWJpbmVkVGFibGUoY29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCAg
aW50IHN0YXJ0LCBpbnQgZW5kKSB7CiAgIGludCBzaWQ7CiAgIGludCBpOwogICBpbnQgaGlnaD0t
MTsKICAgaW50IGxvdz0tMTsKICAgICAgCiAgIC8vIGNoZWNrIGZvciBoaWdoIGZyZXF1ZW5jeSB0
YWJsZQotICBmb3IgKGk9MDsgaTxsZW5ndGgtU0hPUlQyKjI7IGkrKykgeworICBmb3IgKGk9c3Rh
cnQ7IGk8ZW5kLVNIT1JUMioyOyBpKyspIHsKICAgICBpZiAoc2VhcmNoU2hvcnRIaWdoMihidWZm
ZXIsIGkpKSB7CiAgICAgICBoaWdoPWk7CiAgICAgICBicmVhazsgICAgICAgICAKQEAgLTYwNiwx
MCArODY2LDEwIEBACiAjZW5kaWYgIAogICAgICAKICAgLy8gbG9vayBpZiBoaWdoIHRhYmxlIHdh
cyBmb3VudAotICBpZiAoaGlnaD09LTEpIHJldHVybiAtMTsgIAorICBpZiAoaGlnaD09LTEpIHJl
dHVybiBmYWxzZTsgIAogICAKICAgLy8gY2hlY2sgZm9yIGxvdyBmcmVxdWVuY3kgdGFibGUKLSAg
Zm9yIChpPTA7IGk8bGVuZ3RoLVNIT1JUMioyOyBpKyspIHsKKyAgZm9yIChpPXN0YXJ0OyBpPGVu
ZC1TSE9SVDIqMjsgaSsrKSB7CiAgICAgaWYgKGkhPWhpZ2gpIHsKICAgICAgIGlmIChzZWFyY2hT
aG9ydExvdzIoYnVmZmVyLCBoaWdoLCBpKSkgewogICAgICAgICBsb3c9aTsKQEAgLTYyMywxNiAr
ODgzLDQxMyBAQAogI2VuZGlmICAKICAgCiAgIC8vIGxvb2sgaWYgbG93IHRhYmxlIHdhcyBmb3Vu
dAotICBpZiAobG93PT0tMSkgcmV0dXJuIC0xOyAgCisgIGlmIChsb3c9PS0xKSByZXR1cm4gZmFs
c2U7ICAKICAgCiAgIC8vIGdldCB0aGUgQTQgbm90ZQogICBzaWQ9KGludClidWZmZXJbaGlnaCtB
NCoyXSoyNTYrKGludClidWZmZXJbbG93K0E0KjJdOyAKICAgCisgIC8vIG1vZGlmeSBzdGFydCBm
b3IgYW5vdGhlciBhbmFsaXN5cworICBjdXJTdGFydD1zdGQ6Om1pbihzdGQ6Om1heChoaWdoLCBs
b3cpK1RBQkxFLCBlbmQtVEFCTEUpOworICBsaXN0LnB1c2hfYmFjayhzaWQpOyAKKyAgCiAjaWZk
ZWYgREVCVUdfU0lERlJFUSAgICAKICAgc3RkOjpjZXJyIDw8ICJTPSIgPDwgc2lkIDw8ICJcbiI7
CiAjZW5kaWYgIAogCi0gIHJldHVybiBzaWQ7ICAKKyAgcmV0dXJuIHRydWU7ICAKK30KKworLyoq
CisgKiBTZWFyY2ggZm9yIHRhYmxlcyBpbiBsaW5lYXIgd2F5IChsb3cgLyBoaWdoIG9yIGhpZ2gg
LyBsb3cpIHRoYXQgaGFzCisgKiBzY2FsZSBmb3JtYXQgKG9ubHkgQ0RFRkdBQikKKyAqICAKKyAq
IEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZlZCB3aXRoIHRoZSBkYXRhIHRvIGlkZW50aWZ5CisgKiBA
cGFyYW0gc3RhcnQgc3RhcnQgcG9zaXRpb24gaW4gYnVmZmVyCisgKiBAcGFyYW0gZW5kIGVuZCBw
b3NpdGlvbiBpbiBidWZmZXIKKyAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGFibGUgaXMgZm91bnQK
KyAqLworYm9vbCBTaWRGcmVxOjpsaW5lYXJTY2FsZVRhYmxlKGNvbnN0IHVuc2lnbmVkIGNoYXIg
KmJ1ZmZlciwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgIGludCBpOyAgCisgIGludCBzaWQ7Cisg
IGludCBoaWdoPS0xOworICBpbnQgbG93PS0xOyAgIAorICAgIAorICAvLyBjaGVjayBmb3IgaGln
aCBmcmVxdWVuY3kgdGFibGUKKyAgZm9yIChpPXN0YXJ0OyBpPGVuZC1TQ0FMRV9UQUJMRTsgaSsr
KSB7CisgICAgaWYgKHNlYXJjaFNjYWxlSGlnaChidWZmZXIsIGkpKSB7CisgICAgICBoaWdoPWk7
CisgICAgICBicmVhazsgICAgICAgICAKKyAgICB9CisgIH0gIAorICAgIAorICAvLyBsb29rIGlm
IGhpZ2ggdGFibGUgd2FzIGZvdW50CisgIGlmIChoaWdoPT0tMSkgcmV0dXJuIGZhbHNlOyAgICAg
IAorICAgIAorICAvLyBjaGVjayBmb3IgbG93IGZyZXF1ZW5jeSB0YWJsZSAoZmlyc3QgcGFydCkK
KyAgaWYgKGhpZ2g+U0NBTEVfVEFCTEUpIHsKKyAgICBmb3IgKGk9c3RhcnQ7IGk8PWhpZ2gtU0NB
TEVfVEFCTEU7IGkrKykgeworICAgICAgaWYgKHNlYXJjaFNjYWxlTG93KGJ1ZmZlciwgaGlnaCwg
aSkpIHsKKyAgICAgICAgbG93PWk7CisgICAgICAgIGJyZWFrOworICAgICAgfSAgICAgICAgICAg
CisgICAgfQorICB9CisgICAgCisgIC8vIGNoZWNrIGZvciBoaWdoIGZyZXF1ZW5jeSB0YWJsZSAo
c2Vjb25kIHBhcnQpCisgIGlmICgobG93PT0tMSkgJiYgKGhpZ2g8ZW5kLVNDQUxFX1RBQkxFKjIp
KSB7CisgICAgZm9yIChpPWhpZ2grU0NBTEVfVEFCTEU7IGk8ZW5kLVNDQUxFX1RBQkxFOyBpKysp
IHsKKyAgICAgIGlmIChzZWFyY2hTY2FsZUxvdyhidWZmZXIsIGhpZ2gsIGkpKSB7CisgICAgICAg
IGxvdz1pOworICAgICAgICBicmVhazsKKyAgICAgIH0gICAgICAgICAgICAgICAgIAorICAgIH0K
KyAgfQorICAgIAorICAvLyBsb29rIGlmIGxvdyB0YWJsZSB3YXMgZm91bnQKKyAgaWYgKGxvdz09
LTEpIHJldHVybiBmYWxzZTsKKyAgCisgIC8vIGdldCB0aGUgQTQgbm90ZQorICBzaWQ9KGJ1ZmZl
cltoaWdoK1NDQUxFX05PVEVfQTRdKSoyNTYrKGJ1ZmZlcltsb3crU0NBTEVfTk9URV9BNF0pOyAg
CisKKyAgLy8gbW9kaWZ5IHN0YXJ0IGZvciBhbm90aGVyIGFuYWxpc3lzCisgIGN1clN0YXJ0PXN0
ZDo6bWluKHN0ZDo6bWF4KGhpZ2gsIGxvdykrVEFCTEUsIGVuZC1UQUJMRSk7CisgIGxpc3QucHVz
aF9iYWNrKHNpZCk7IAorICAKKyAgcmV0dXJuIHRydWU7ICAgIAorfQorCisvKioKKyAqIExvb2tz
IGZvciBhbiBoaWdoIG9jdGF2ZSB0YWJsZQorICogCisgKiBAcGFyYW0gYnVmZmVyIHRoZSBidWZm
ZWQgd2l0aCB0aGUgZGF0YSB0byBpZGVudGlmeQorICogQHBhcmFtIHN0YXJ0IHN0YXJ0IHBvc2l0
aW9uIGluIGJ1ZmZlcgorICogQHBhcmFtIGVuZCBlbmQgcG9zaXRpb24gaW4gYnVmZmVyCisgKiBA
cmV0dXJuIHRydWUgaWYgaXQgaXMgZmluZAorICovCitib29sIFNpZEZyZXE6OmhpZ2hPY3RhdmUx
Mihjb25zdCB1bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCBzdGFydCwgaW50IGVuZCkgeworICBp
bnQgc2lkOworICBkb3VibGUgU1RFUD1zdGQ6OnBvdygyLCAxLzEyKTsKKyAgaW50IGZyZXFbXT17
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH07CisgICAgICAKKyAgZm9yIChpbnQg
aT1zdGFydDsgaTxlbmQtMTIqMjsgaSsrKSB7CisgICAgZnJlcVswXT0oaW50KShidWZmZXJbaV0p
KyhpbnQpKGJ1ZmZlcltpKzEyXSkqMjU2OyAKKyAgICBpZiAoZnJlcVswXT09MCkgY29udGludWU7
CisgICAgZnJlcVsxXT0oaW50KShidWZmZXJbaSsxXSkrKGludCkoYnVmZmVyW2krMTNdKSoyNTY7
CisgICAgaWYgKGZyZXFbMV09PTAgfHwgZnJlcVsxXTw9ZnJlcVswXSB8fCBzdGQ6OmFicyhmcmVx
WzFdL2ZyZXFbMF0tU1RFUCk+MC4wMDAwMSkgY29udGludWU7ICAgICAgICAKKyAgICBmcmVxWzJd
PShpbnQpKGJ1ZmZlcltpKzJdKSsoaW50KShidWZmZXJbaSsxNF0pKjI1NjsKKyAgICBpZiAoZnJl
cVsyXT09MCB8fCBmcmVxWzJdPD1mcmVxWzFdIHx8IHN0ZDo6YWJzKGZyZXFbMl0vZnJlcVsxXS1T
VEVQKT4wLjAwMDAxKSBjb250aW51ZTsKKyAgICBmcmVxWzNdPShpbnQpKGJ1ZmZlcltpKzNdKSso
aW50KShidWZmZXJbaSsxNV0pKjI1NjsKKyAgICBpZiAoZnJlcVszXT09MCB8fCBmcmVxWzNdPD1m
cmVxWzJdIHx8IHN0ZDo6YWJzKGZyZXFbM10vZnJlcVsyXS1TVEVQKT4wLjAwMDAxKSBjb250aW51
ZTsKKyAgICBmcmVxWzRdPShpbnQpKGJ1ZmZlcltpKzRdKSsoaW50KShidWZmZXJbaSsxNl0pKjI1
NjsKKyAgICBpZiAoZnJlcVs0XT09MCB8fCBmcmVxWzRdPD1mcmVxWzNdIHx8IHN0ZDo6YWJzKGZy
ZXFbNF0vZnJlcVszXS1TVEVQKT4wLjAwMDAxKSBjb250aW51ZTsKKyAgICBmcmVxWzVdPShpbnQp
KGJ1ZmZlcltpKzVdKSsoaW50KShidWZmZXJbaSsxN10pKjI1NjsgICAgICAgIAorICAgIGlmIChm
cmVxWzVdPT0wIHx8IGZyZXFbNV08PWZyZXFbNF0gfHwgc3RkOjphYnMoZnJlcVs1XS9mcmVxWzRd
LVNURVApPjAuMDAwMDEpIGNvbnRpbnVlOworICAgIGZyZXFbNl09KGludCkoYnVmZmVyW2krNl0p
KyhpbnQpKGJ1ZmZlcltpKzE4XSkqMjU2OworICAgIGlmIChmcmVxWzZdPT0wIHx8IGZyZXFbNl08
PWZyZXFbNV0gfHwgc3RkOjphYnMoZnJlcVs2XS9mcmVxWzVdLVNURVApPjAuMDAwMDEpIGNvbnRp
bnVlOworICAgIGZyZXFbN109KGludCkoYnVmZmVyW2krN10pKyhpbnQpKGJ1ZmZlcltpKzE5XSkq
MjU2OworICAgIGlmIChmcmVxWzddPT0wIHx8IGZyZXFbN108PWZyZXFbNl0gfHwgc3RkOjphYnMo
ZnJlcVs3XS9mcmVxWzZdLVNURVApPjAuMDAwMDEpIGNvbnRpbnVlOworICAgIGZyZXFbOF09KGlu
dCkoYnVmZmVyW2krOF0pKyhpbnQpKGJ1ZmZlcltpKzIwXSkqMjU2OworICAgIGlmIChmcmVxWzhd
PT0wIHx8IGZyZXFbOF08PWZyZXFbN10gfHwgc3RkOjphYnMoZnJlcVs4XS9mcmVxWzddLVNURVAp
PjAuMDAwMDEpIGNvbnRpbnVlOworICAgIGZyZXFbOV09KGludCkoYnVmZmVyW2krOV0pKyhpbnQp
KGJ1ZmZlcltpKzIxXSkqMjU2OworICAgIGlmIChmcmVxWzldPT0wIHx8IGZyZXFbOV08PWZyZXFb
OF0gfHwgc3RkOjphYnMoZnJlcVs5XS9mcmVxWzhdLVNURVApPjAuMDAwMDEpIGNvbnRpbnVlOwor
ICAgIGZyZXFbMTBdPShpbnQpKGJ1ZmZlcltpKzEwXSkrKGludCkoYnVmZmVyW2krMjJdKSoyNTY7
CisgICAgaWYgKGZyZXFbMTBdPT0wIHx8IGZyZXFbMTBdPD1mcmVxWzldIHx8IHN0ZDo6YWJzKGZy
ZXFbMTBdL2ZyZXFbOV0tU1RFUCk+MC4wMDAwMSkgY29udGludWU7CisgICAgZnJlcVsxMV09KGlu
dCkoYnVmZmVyW2krMTFdKSsoaW50KShidWZmZXJbaSsyM10pKjI1NjsKKyAgICBpZiAoZnJlcVsx
MV09PTAgfHwgZnJlcVsxMV08PWZyZXFbMTBdIHx8IHN0ZDo6YWJzKGZyZXFbMTFdL2ZyZXFbMTBd
LVNURVApPjAuMDAwMDEpIGNvbnRpbnVlOworICAgICAgICAKKyAgICBpZiAoZnJlcVsxMV08NjIw
MDApIGNvbnRpbnVlOworICAgIAorICAgIC8vIGdldCB0aGUgQTQgbm90ZQorICAgIHNpZD0oZnJl
cVs5XS84KTsgIAorCisgICAgLy8gbW9kaWZ5IHN0YXJ0IGZvciBhbm90aGVyIGFuYWxpc3lzCisg
ICAgY3VyU3RhcnQ9c3RkOjptaW4oaSsxMioyLCBlbmQtMTIqMik7CisgICAgbGlzdC5wdXNoX2Jh
Y2soc2lkKTsgCisKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfSAgICAKKyAgICAKKyAgcmV0dXJuIGZh
bHNlOyAgICAgIAorfSAgICAKKworLyoqCisgKiBMb29rcyBmb3IgYW4gaGlnaCBvY3RhdmUgdGFi
bGUKKyAqIAorICogQHBhcmFtIGJ1ZmZlciB0aGUgYnVmZmVkIHdpdGggdGhlIGRhdGEgdG8gaWRl
bnRpZnkKKyAqIEBwYXJhbSBzdGFydCBzdGFydCBwb3NpdGlvbiBpbiBidWZmZXIKKyAqIEBwYXJh
bSBlbmQgZW5kIHBvc2l0aW9uIGluIGJ1ZmZlcgorICogQHJldHVybiB0cnVlIGlmIGl0IGlzIGZp
bmQKKyAqLworYm9vbCBTaWRGcmVxOjpoaWdoT2N0YXZlQ29tYmluZWQoY29uc3QgdW5zaWduZWQg
Y2hhciAqYnVmZmVyLCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgaW50IHNpZDsKKyAgZG91Ymxl
IFNURVA9c3RkOjpwb3coMiwgMS8xMik7CisgIGludCBmcmVxW109ezAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDB9OworICAgICAKKyAgZm9yIChpbnQgaT1zdGFydDsgaTxlbmQtMTMq
MjsgaSsrKSB7CisgICAgZnJlcVswXT0oaW50KShidWZmZXJbaV0pKyhpbnQpKGJ1ZmZlcltpKzFd
KSoyNTY7IAorICAgIGlmIChmcmVxWzBdPT0wKSBjb250aW51ZTsKKyAgICBmcmVxWzFdPShpbnQp
KGJ1ZmZlcltpKzJdKSsoaW50KShidWZmZXJbaSszXSkqMjU2OworICAgIGlmIChmcmVxWzFdPT0w
IHx8IGZyZXFbMV08PWZyZXFbMF0gfHwgc3RkOjphYnMoZnJlcVsxXS9mcmVxWzBdLVNURVApPjAu
MDAwMDEpIGNvbnRpbnVlOyAgICAgICAgCisgICAgZnJlcVsyXT0oaW50KShidWZmZXJbaSs0XSkr
KGludCkoYnVmZmVyW2krNV0pKjI1NjsKKyAgICBpZiAoZnJlcVsyXT09MCB8fCBmcmVxWzJdPD1m
cmVxWzFdIHx8IHN0ZDo6YWJzKGZyZXFbMl0vZnJlcVsxXS1TVEVQKT4wLjAwMDAxKSBjb250aW51
ZTsKKyAgICBmcmVxWzNdPShpbnQpKGJ1ZmZlcltpKzZdKSsoaW50KShidWZmZXJbaSs3XSkqMjU2
OworICAgIGlmIChmcmVxWzNdPT0wIHx8IGZyZXFbM108PWZyZXFbMl0gfHwgc3RkOjphYnMoZnJl
cVszXS9mcmVxWzJdLVNURVApPjAuMDAwMDEpIGNvbnRpbnVlOworICAgIGZyZXFbNF09KGludCko
YnVmZmVyW2krOF0pKyhpbnQpKGJ1ZmZlcltpKzldKSoyNTY7CisgICAgaWYgKGZyZXFbNF09PTAg
fHwgZnJlcVs0XTw9ZnJlcVszXSB8fCBzdGQ6OmFicyhmcmVxWzRdL2ZyZXFbM10tU1RFUCk+MC4w
MDAwMSkgY29udGludWU7CisgICAgZnJlcVs1XT0oaW50KShidWZmZXJbaSsxMF0pKyhpbnQpKGJ1
ZmZlcltpKzExXSkqMjU2OyAgICAgICAgCisgICAgaWYgKGZyZXFbNV09PTAgfHwgZnJlcVs1XTw9
ZnJlcVs0XSB8fCBzdGQ6OmFicyhmcmVxWzVdL2ZyZXFbNF0tU1RFUCk+MC4wMDAwMSkgY29udGlu
dWU7CisgICAgZnJlcVs2XT0oaW50KShidWZmZXJbaSsxMl0pKyhpbnQpKGJ1ZmZlcltpKzEzXSkq
MjU2OworICAgIGlmIChmcmVxWzZdPT0wIHx8IGZyZXFbNl08PWZyZXFbNV0gfHwgc3RkOjphYnMo
ZnJlcVs2XS9mcmVxWzVdLVNURVApPjAuMDAwMDEpIGNvbnRpbnVlOworICAgIGZyZXFbN109KGlu
dCkoYnVmZmVyW2krMTRdKSsoaW50KShidWZmZXJbaSsxNV0pKjI1NjsKKyAgICBpZiAoZnJlcVs3
XT09MCB8fCBmcmVxWzddPD1mcmVxWzZdIHx8IHN0ZDo6YWJzKGZyZXFbN10vZnJlcVs2XS1TVEVQ
KT4wLjAwMDAxKSBjb250aW51ZTsKKyAgICBmcmVxWzhdPShpbnQpKGJ1ZmZlcltpKzE2XSkrKGlu
dCkoYnVmZmVyW2krMTddKSoyNTY7CisgICAgaWYgKGZyZXFbOF09PTAgfHwgZnJlcVs4XTw9ZnJl
cVs3XSB8fCBzdGQ6OmFicyhmcmVxWzhdL2ZyZXFbN10tU1RFUCk+MC4wMDAwMSkgY29udGludWU7
CisgICAgZnJlcVs5XT0oaW50KShidWZmZXJbaSsxOF0pKyhpbnQpKGJ1ZmZlcltpKzE5XSkqMjU2
OworICAgIGlmIChmcmVxWzldPT0wIHx8IGZyZXFbOV08PWZyZXFbOF0gfHwgc3RkOjphYnMoZnJl
cVs5XS9mcmVxWzhdLVNURVApPjAuMDAwMDEpIGNvbnRpbnVlOworICAgIGZyZXFbMTBdPShpbnQp
KGJ1ZmZlcltpKzIwXSkrKGludCkoYnVmZmVyW2krMjFdKSoyNTY7CisgICAgaWYgKGZyZXFbMTBd
PT0wIHx8IGZyZXFbMTBdPD1mcmVxWzldIHx8IHN0ZDo6YWJzKGZyZXFbMTBdL2ZyZXFbOV0tU1RF
UCk+MC4wMDAwMSkgY29udGludWU7CisgICAgZnJlcVsxMV09KGludCkoYnVmZmVyW2krMjJdKSso
aW50KShidWZmZXJbaSsyM10pKjI1NjsKKyAgICBpZiAoZnJlcVsxMV09PTAgfHwgZnJlcVsxMV08
PWZyZXFbMTBdIHx8IHN0ZDo6YWJzKGZyZXFbMTFdL2ZyZXFbMTBdLVNURVApPjAuMDAwMDEpIGNv
bnRpbnVlOworICAgICAgICAKKyAgICBpZiAoZnJlcVsxMV08NjIwMDApIGNvbnRpbnVlOworCisg
ICAgLy8gZ2V0IHRoZSBBNCBub3RlCisgICAgc2lkPShmcmVxWzldLzgpOyAgCisKKyAgICAvLyBt
b2RpZnkgc3RhcnQgZm9yIGFub3RoZXIgYW5hbGlzeXMKKyAgICBjdXJTdGFydD1zdGQ6Om1pbihp
KzEyKjIsIGVuZC0xMioyKTsKKyAgICBsaXN0LnB1c2hfYmFjayhzaWQpOyAKKworICAgIHJldHVy
biB0cnVlOworICB9ICAgICAgCisgICAgCisgIHJldHVybiBmYWxzZTsgICAgICAKK30gIAorCisv
KioKKyAqIExvb2tzIGZvciBhbiBoaWdoIG9jdGF2ZSB0YWJsZQorICogCisgKiBAcGFyYW0gYnVm
ZmVyIHRoZSBidWZmZWQgd2l0aCB0aGUgZGF0YSB0byBpZGVudGlmeQorICogQHBhcmFtIHN0YXJ0
IHN0YXJ0IHBvc2l0aW9uIGluIGJ1ZmZlcgorICogQHBhcmFtIGVuZCBlbmQgcG9zaXRpb24gaW4g
YnVmZmVyCisgKiBAcmV0dXJuIHRydWUgaWYgaXQgaXMgZmluZAorICovCitib29sIFNpZEZyZXE6
Omxvd09jdGF2ZUNvbWJpbmVkKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IHN0YXJ0
LCBpbnQgZW5kKSB7CisgIGludCBzaWQ7CisgIGRvdWJsZSBTVEVQPXN0ZDo6cG93KDIsIDEvMTIp
OworICBpbnQgZnJlcVtdPXswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAg
ICAgIAorICBmb3IgKGludCBpPXN0YXJ0OyBpPGVuZC0xMyoyOyBpKyspIHsKKyAgICBmcmVxWzBd
PShpbnQpKGJ1ZmZlcltpXSYgMHhGRikrKGludCkoYnVmZmVyW2krMV0mIDB4RkYpKjI1NjsgCisg
ICAgaWYgKGZyZXFbMF09PTApIGNvbnRpbnVlOworICAgIGZyZXFbMV09KGludCkoYnVmZmVyW2kr
Ml0mIDB4RkYpKyhpbnQpKGJ1ZmZlcltpKzNdJiAweEZGKSoyNTY7CisgICAgaWYgKGZyZXFbMV09
PTAgfHwgZnJlcVsxXTw9ZnJlcVswXSB8fCBzdGQ6OmFicyhmcmVxWzFdL2ZyZXFbMF0tU1RFUCk+
MC4wMDAwMSkgY29udGludWU7ICAgICAgICAKKyAgICBmcmVxWzJdPShpbnQpKGJ1ZmZlcltpKzRd
JiAweEZGKSsoaW50KShidWZmZXJbaSs1XSYgMHhGRikqMjU2OworICAgIGlmIChmcmVxWzJdPT0w
IHx8IGZyZXFbMl08PWZyZXFbMV0gfHwgc3RkOjphYnMoZnJlcVsyXS9mcmVxWzFdLVNURVApPjAu
MDAwMDEpIGNvbnRpbnVlOworICAgIGZyZXFbM109KGludCkoYnVmZmVyW2krNl0mIDB4RkYpKyhp
bnQpKGJ1ZmZlcltpKzddJiAweEZGKSoyNTY7CisgICAgaWYgKGZyZXFbM109PTAgfHwgZnJlcVsz
XTw9ZnJlcVsyXSB8fCBzdGQ6OmFicyhmcmVxWzNdL2ZyZXFbMl0tU1RFUCk+MC4wMDAwMSkgY29u
dGludWU7CisgICAgZnJlcVs0XT0oaW50KShidWZmZXJbaSs4XSYgMHhGRikrKGludCkoYnVmZmVy
W2krOV0mIDB4RkYpKjI1NjsKKyAgICBpZiAoZnJlcVs0XT09MCB8fCBmcmVxWzRdPD1mcmVxWzNd
IHx8IHN0ZDo6YWJzKGZyZXFbNF0vZnJlcVszXS1TVEVQKT4wLjAwMDAxKSBjb250aW51ZTsKKyAg
ICBmcmVxWzVdPShpbnQpKGJ1ZmZlcltpKzEwXSYgMHhGRikrKGludCkoYnVmZmVyW2krMTFdJiAw
eEZGKSoyNTY7ICAgICAgICAKKyAgICBpZiAoZnJlcVs1XT09MCB8fCBmcmVxWzVdPD1mcmVxWzRd
IHx8IHN0ZDo6YWJzKGZyZXFbNV0vZnJlcVs0XS1TVEVQKT4wLjAwMDAxKSBjb250aW51ZTsKKyAg
ICBmcmVxWzZdPShpbnQpKGJ1ZmZlcltpKzEyXSYgMHhGRikrKGludCkoYnVmZmVyW2krMTNdJiAw
eEZGKSoyNTY7CisgICAgaWYgKGZyZXFbNl09PTAgfHwgZnJlcVs2XTw9ZnJlcVs1XSB8fCBzdGQ6
OmFicyhmcmVxWzZdL2ZyZXFbNV0tU1RFUCk+MC4wMDAwMSkgY29udGludWU7CisgICAgZnJlcVs3
XT0oaW50KShidWZmZXJbaSsxNF0mIDB4RkYpKyhpbnQpKGJ1ZmZlcltpKzE1XSYgMHhGRikqMjU2
OworICAgIGlmIChmcmVxWzddPT0wIHx8IGZyZXFbN108PWZyZXFbNl0gfHwgc3RkOjphYnMoZnJl
cVs3XS9mcmVxWzZdLVNURVApPjAuMDAwMDEpIGNvbnRpbnVlOworICAgIGZyZXFbOF09KGludCko
YnVmZmVyW2krMTZdJiAweEZGKSsoaW50KShidWZmZXJbaSsxN10mIDB4RkYpKjI1NjsKKyAgICBp
ZiAoZnJlcVs4XT09MCB8fCBmcmVxWzhdPD1mcmVxWzddIHx8IHN0ZDo6YWJzKGZyZXFbOF0vZnJl
cVs3XS1TVEVQKT4wLjAwMDAxKSBjb250aW51ZTsKKyAgICBmcmVxWzldPShpbnQpKGJ1ZmZlcltp
KzE4XSYgMHhGRikrKGludCkoYnVmZmVyW2krMTldJiAweEZGKSoyNTY7CisgICAgaWYgKGZyZXFb
OV09PTAgfHwgZnJlcVs5XTw9ZnJlcVs4XSB8fCBzdGQ6OmFicyhmcmVxWzldL2ZyZXFbOF0tU1RF
UCk+MC4wMDAwMSkgY29udGludWU7CisgICAgZnJlcVsxMF09KGludCkoYnVmZmVyW2krMjBdJiAw
eEZGKSsoaW50KShidWZmZXJbaSsyMV0mIDB4RkYpKjI1NjsKKyAgICBpZiAoZnJlcVsxMF09PTAg
fHwgZnJlcVsxMF08PWZyZXFbOV0gfHwgc3RkOjphYnMoZnJlcVsxMF0vZnJlcVs5XS1TVEVQKT4w
LjAwMDAxKSBjb250aW51ZTsKKyAgICBmcmVxWzExXT0oaW50KShidWZmZXJbaSsyMl0mIDB4RkYp
KyhpbnQpKGJ1ZmZlcltpKzIzXSYgMHhGRikqMjU2OworICAgIGlmIChmcmVxWzExXT09MCB8fCBm
cmVxWzExXTw9ZnJlcVsxMF0gfHwgc3RkOjphYnMoZnJlcVsxMV0vZnJlcVsxMF0tU1RFUCk+MC4w
MDAwMSkgY29udGludWU7CisgICAgICAgIAorICAgIGlmIChmcmVxWzExXT42MDApIGNvbnRpbnVl
OworCisgICAgLy8gZ2V0IHRoZSBBNCBub3RlCisgICAgc2lkPShmcmVxWzldKjE2KTsgIAorCisg
ICAgLy8gbW9kaWZ5IHN0YXJ0IGZvciBhbm90aGVyIGFuYWxpc3lzCisgICAgY3VyU3RhcnQ9c3Rk
OjptaW4oaSsxMioyLCBlbmQtMTIqMik7CisgICAgbGlzdC5wdXNoX2JhY2soc2lkKTsgCisKKyAg
ICByZXR1cm4gdHJ1ZTsKKyAgfSAgICAgIAorICAgIAorICByZXR1cm4gZmFsc2U7ICAgICAgCit9
ICAKKworLyoqCisgKiBMb29rcyBmb3IgYW4gaGlnaCBvY3RhdmUgdGFibGUKKyAqIAorICogQHBh
cmFtIGJ1ZmZlciB0aGUgYnVmZmVkIHdpdGggdGhlIGRhdGEgdG8gaWRlbnRpZnkKKyAqIEBwYXJh
bSBzdGFydCBzdGFydCBwb3NpdGlvbiBpbiBidWZmZXIKKyAqIEBwYXJhbSBlbmQgZW5kIHBvc2l0
aW9uIGluIGJ1ZmZlcgorICogQHJldHVybiB0cnVlIGlmIGl0IGlzIGZpbmQKKyAqLworYm9vbCBT
aWRGcmVxOjpoaWdoT2N0YXZlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IHN0YXJ0
LCBpbnQgZW5kKSB7CisgIGludCBzaWQ7CisgIGRvdWJsZSBTVEVQPXN0ZDo6cG93KDIsIDEvMTIp
OworICBpbnQgZnJlcVtdPXswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAg
ICAgIAorICBmb3IgKGludCBpPXN0YXJ0OyBpPGVuZC0xMyoyOyBpKyspIHsKKyAgICBpZiAoKGlu
dClidWZmZXJbaV09PTAgJiYgKGludClidWZmZXJbaSsxM109PTApIHsKKyAgICAgIGZyZXFbMF09
KGludCkoYnVmZmVyW2krMV0mIDB4RkYpKyhpbnQpKGJ1ZmZlcltpKzE0XSYgMHhGRikqMjU2OyAK
KyAgICAgIGlmIChmcmVxWzBdPT0wKSBjb250aW51ZTsKKyAgICAgIGZyZXFbMV09KGludCkoYnVm
ZmVyW2krMl0mIDB4RkYpKyhpbnQpKGJ1ZmZlcltpKzE1XSYgMHhGRikqMjU2OworICAgICAgaWYg
KGZyZXFbMV09PTAgfHwgZnJlcVsxXTw9ZnJlcVswXSB8fCBzdGQ6OmFicyhmcmVxWzFdL2ZyZXFb
MF0tU1RFUCk+MC4wMDAwMSkgY29udGludWU7ICAgICAgICAKKyAgICAgIGZyZXFbMl09KGludCko
YnVmZmVyW2krM10mIDB4RkYpKyhpbnQpKGJ1ZmZlcltpKzE2XSYgMHhGRikqMjU2OworICAgICAg
aWYgKGZyZXFbMl09PTAgfHwgZnJlcVsyXTw9ZnJlcVsxXSB8fCBzdGQ6OmFicyhmcmVxWzJdL2Zy
ZXFbMV0tU1RFUCk+MC4wMDAwMSkgY29udGludWU7CisgICAgICBmcmVxWzNdPShpbnQpKGJ1ZmZl
cltpKzRdJiAweEZGKSsoaW50KShidWZmZXJbaSsxN10mIDB4RkYpKjI1NjsKKyAgICAgIGlmIChm
cmVxWzNdPT0wIHx8IGZyZXFbM108PWZyZXFbMl0gfHwgc3RkOjphYnMoZnJlcVszXS9mcmVxWzJd
LVNURVApPjAuMDAwMDEpIGNvbnRpbnVlOworICAgICAgZnJlcVs0XT0oaW50KShidWZmZXJbaSs1
XSYgMHhGRikrKGludCkoYnVmZmVyW2krMThdJiAweEZGKSoyNTY7CisgICAgICBpZiAoZnJlcVs0
XT09MCB8fCBmcmVxWzRdPD1mcmVxWzNdIHx8IHN0ZDo6YWJzKGZyZXFbNF0vZnJlcVszXS1TVEVQ
KT4wLjAwMDAxKSBjb250aW51ZTsKKyAgICAgIGZyZXFbNV09KGludCkoYnVmZmVyW2krNl0mIDB4
RkYpKyhpbnQpKGJ1ZmZlcltpKzE5XSYgMHhGRikqMjU2OyAgICAgICAgCisgICAgICBpZiAoZnJl
cVs1XT09MCB8fCBmcmVxWzVdPD1mcmVxWzRdIHx8IHN0ZDo6YWJzKGZyZXFbNV0vZnJlcVs0XS1T
VEVQKT4wLjAwMDAxKSBjb250aW51ZTsKKyAgICAgIGZyZXFbNl09KGludCkoYnVmZmVyW2krN10m
IDB4RkYpKyhpbnQpKGJ1ZmZlcltpKzIwXSYgMHhGRikqMjU2OworICAgICAgaWYgKGZyZXFbNl09
PTAgfHwgZnJlcVs2XTw9ZnJlcVs1XSB8fCBzdGQ6OmFicyhmcmVxWzZdL2ZyZXFbNV0tU1RFUCk+
MC4wMDAwMSkgY29udGludWU7CisgICAgICBmcmVxWzddPShpbnQpKGJ1ZmZlcltpKzhdJiAweEZG
KSsoaW50KShidWZmZXJbaSsyMV0mIDB4RkYpKjI1NjsKKyAgICAgIGlmIChmcmVxWzddPT0wIHx8
IGZyZXFbN108PWZyZXFbNl0gfHwgc3RkOjphYnMoZnJlcVs3XS9mcmVxWzZdLVNURVApPjAuMDAw
MDEpIGNvbnRpbnVlOworICAgICAgZnJlcVs4XT0oaW50KShidWZmZXJbaSs5XSYgMHhGRikrKGlu
dCkoYnVmZmVyW2krMjJdJiAweEZGKSoyNTY7CisgICAgICBpZiAoZnJlcVs4XT09MCB8fCBmcmVx
WzhdPD1mcmVxWzddIHx8IHN0ZDo6YWJzKGZyZXFbOF0vZnJlcVs3XS1TVEVQKT4wLjAwMDAxKSBj
b250aW51ZTsKKyAgICAgIGZyZXFbOV09KGludCkoYnVmZmVyW2krMTBdJiAweEZGKSsoaW50KShi
dWZmZXJbaSsyM10mIDB4RkYpKjI1NjsKKyAgICAgIGlmIChmcmVxWzldPT0wIHx8IGZyZXFbOV08
PWZyZXFbOF0gfHwgc3RkOjphYnMoZnJlcVs5XS9mcmVxWzhdLVNURVApPjAuMDAwMDEpIGNvbnRp
bnVlOworICAgICAgZnJlcVsxMF09KGludCkoYnVmZmVyW2krMTFdJiAweEZGKSsoaW50KShidWZm
ZXJbaSsyNF0mIDB4RkYpKjI1NjsKKyAgICAgIGlmIChmcmVxWzEwXT09MCB8fCBmcmVxWzEwXTw9
ZnJlcVs5XSB8fCBzdGQ6OmFicyhmcmVxWzEwXS9mcmVxWzldLVNURVApPjAuMDAwMDEpIGNvbnRp
bnVlOworICAgICAgZnJlcVsxMV09KGludCkoYnVmZmVyW2krMTJdJiAweEZGKSsoaW50KShidWZm
ZXJbaSsyNV0mIDB4RkYpKjI1NjsKKyAgICAgIGlmIChmcmVxWzExXT09MCB8fCBmcmVxWzExXTw9
ZnJlcVsxMF0gfHwgc3RkOjphYnMoZnJlcVsxMV0vZnJlcVsxMF0tU1RFUCk+MC4wMDAwMSkgY29u
dGludWU7CisgICAgICAgIAorICAgICAgaWYgKGZyZXFbMTFdPDYyMDAwKSBjb250aW51ZTsKKyAg
ICAgIAorICAgICAgLy8gZ2V0IHRoZSBBNCBub3RlCisgICAgICBzaWQ9KGZyZXFbOV0vOCk7ICAK
KworICAgICAgLy8gbW9kaWZ5IHN0YXJ0IGZvciBhbm90aGVyIGFuYWxpc3lzCisgICAgICBjdXJT
dGFydD1zdGQ6Om1pbihpKzEyKjIsIGVuZC0xMioyKTsKKyAgICAgIGxpc3QucHVzaF9iYWNrKHNp
ZCk7IAorCisgICAgICByZXR1cm4gdHJ1ZTsgICAKKyAgICB9ICAKKyAgfSAgIAorICAgICAgICAK
KyAgcmV0dXJuIGZhbHNlOyAgICAgIAorfSAgCisKKy8qKgorICogU2VhcmNoIGZvciB0YWJsZXMg
aW4gbGluZWFyIHdheSAobG93IC8gaGlnaCBvciBoaWdoIC8gbG93KSBpbiBvY3RhdmUvbm90ZSAK
KyAqIGZvcm1hdAorICogIAorICogQHBhcmFtIGJ1ZmZlciB0aGUgYnVmZmVkIHdpdGggdGhlIGRh
dGEgdG8gaWRlbnRpZnkKKyAqIEBwYXJhbSBzdGFydCBzdGFydCBwb3NpdGlvbiBpbiBidWZmZXIK
KyAqIEBwYXJhbSBlbmQgZW5kIHBvc2l0aW9uIGluIGJ1ZmZlcgorICogQHJldHVybiB0cnVlIGlm
IGl0IGlzIGZpbmQKKyAqLworYm9vbCBTaWRGcmVxOjpsaW5lYXJPY3ROb3RlVGFibGUoY29uc3Qg
dW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgaW50IGk7ICAK
KyAgaW50IHNpZDsKKyAgaW50IGhpZ2g9LTE7CisgIGludCBsb3c9LTE7ICAgCisgICAgCisgIC8v
IGNoZWNrIGZvciBoaWdoIGZyZXF1ZW5jeSB0YWJsZQorICBmb3IgKGk9c3RhcnQ7IGk8ZW5kLU9D
VF9OT1RFX1RBQkxFOyBpKyspIHsKKyAgICBpZiAoc2VhcmNoT2N0Tm90ZUhpZ2goYnVmZmVyLCBp
KSkgeworICAgICAgaGlnaD1pOworICAgICAgYnJlYWs7ICAgICAgICAgCisgICAgfQorICB9ICAK
KyAgICAKKyAgLy8gbG9vayBpZiBoaWdoIHRhYmxlIHdhcyBmb3VudAorICBpZiAoaGlnaD09LTEp
IHJldHVybiBmYWxzZTsgICAgICAKKyAgICAKKyAgLy8gY2hlY2sgZm9yIGxvdyBmcmVxdWVuY3kg
dGFibGUgKGZpcnN0IHBhcnQpCisgIGlmIChoaWdoPk9DVF9OT1RFX1RBQkxFKSB7CisgICAgZm9y
IChpPXN0YXJ0OyBpPD1oaWdoLU9DVF9OT1RFX1RBQkxFLTY7IGkrKykgeworICAgICAgaWYgKHNl
YXJjaE9jdE5vdGVMb3coYnVmZmVyLCBoaWdoLCBpKSkgeworICAgICAgICBsb3c9aTsKKyAgICAg
ICAgYnJlYWs7CisgICAgICB9ICAgICAgICAgICAKKyAgICB9CisgIH0KKyAgICAKKyAgLy8gY2hl
Y2sgZm9yIGhpZ2ggZnJlcXVlbmN5IHRhYmxlIChzZWNvbmQgcGFydCkKKyAgaWYgKChsb3c9PS0x
KSAmJiAoaGlnaDxlbmQtT0NUX05PVEVfVEFCTEUqMikpIHsKKyAgICBmb3IgKGk9aGlnaCtPQ1Rf
Tk9URV9UQUJMRSs2OyBpPGVuZC1PQ1RfTk9URV9UQUJMRS02OyBpKyspIHsKKyAgICAgIGlmIChz
ZWFyY2hPY3ROb3RlTG93KGJ1ZmZlciwgaGlnaCwgaSkpIHsKKyAgICAgICBsb3c9aTsKKyAgICAg
ICAgYnJlYWs7CisgICAgICB9ICAgICAgICAgICAgICAgICAKKyAgICAgfQorICB9CisgICAgCisg
IC8vIGxvb2sgaWYgbG93IHRhYmxlIHdhcyBmb3VudAorICBpZiAobG93PT0tMSkgcmV0dXJuIGZh
bHNlOworICAgICAgIAorICAvLyBnZXQgdGhlIEE0IG5vdGUKKyAgc2lkPShidWZmZXJbaGlnaCtP
Q1RfTk9URV9BNF0pKjI1NisoYnVmZmVyW2xvdytPQ1RfTk9URV9BNF0pOyAgCisgIAorICAvLyBt
b2RpZnkgc3RhcnQgZm9yIGFub3RoZXIgYW5hbGlzeXMKKyAgY3VyU3RhcnQ9c3RkOjptaW4oc3Rk
OjptYXgoaGlnaCwgbG93KStUQUJMRSwgZW5kLVRBQkxFKTsKKyAgbGlzdC5wdXNoX2JhY2soc2lk
KTsgCisgIAorICByZXR1cm4gdHJ1ZTsgICAgCit9CisKKy8qKgorICogU2VhcmNoIGZvciB0YWJs
ZXMgaW4gbGluZWFyIHdheSAobG93IC8gaGlnaCBvciBoaWdoIC8gbG93KSB3aXRoIGludmVyc2Ug
ZGlyZWN0aW9uCisgKiAgCisgKiBAcGFyYW0gYnVmZmVyIHRoZSBidWZmZWQgd2l0aCB0aGUgZGF0
YSB0byBpZGVudGlmeQorICogQHBhcmFtIHN0YXJ0IHN0YXJ0IHBvc2l0aW9uIGluIGJ1ZmZlcgor
ICogQHBhcmFtIGVuZCBlbmQgcG9zaXRpb24gaW4gYnVmZmVyCisgKi8KK2Jvb2wgU2lkRnJlcTo6
bGluZWFySW52ZXJzZVRhYmxlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IHN0YXJ0
LCBpbnQgZW5kKSB7CisgIGludCBpOyAgCisgIGludCBzaWQ7CisgIGludCBoaWdoPS0xOworICBp
bnQgbG93PS0xOyAgIAorICAgIAorICAvLyBjaGVjayBmb3IgaGlnaCBmcmVxdWVuY3kgdGFibGUK
KyAgZm9yIChpPWVuZC0xOyBpPj1zdGFydCtBTEw7IGktLSkgeworICAgIGlmIChzZWFyY2hJbnZl
cnNlSGlnaChidWZmZXIsIGkpKSB7CisgICAgICBoaWdoPWk7CisgICAgICBicmVhazsgICAgICAg
ICAKKyAgICB9CisgIH0gIAorICAgIAorICAvLyBsb29rIGlmIGhpZ2ggdGFibGUgd2FzIGZvdW50
CisgIGlmIChoaWdoPT0tMSkgcmV0dXJuIGZhbHNlOyAgICAgIAorCisgIC8vIGNoZWNrIGZvciBs
b3cgZnJlcXVlbmN5IHRhYmxlIChmaXJzdCBwYXJ0KQorICBpZiAoaGlnaD5BTEwpIHsKKyAgICBm
b3IgKGk9c3RhcnQrQUxMOyBpPGhpZ2g7IGkrKykgeworICAgICAgaWYgKHNlYXJjaEludmVyc2VM
b3coYnVmZmVyLCBoaWdoLCBpKSkgeworICAgICAgICBsb3c9aTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgICB9ICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLy8gY2hlY2sgZm9yIGhpZ2ggZnJl
cXVlbmN5IHRhYmxlIChzZWNvbmQgcGFydCkKKyAgICBpZiAoKGxvdz09LTEpICYmIChoaWdoPGVu
ZC1BTEwpKSB7CisgICAgICBmb3IgKGk9aGlnaCtBTEw7IGk8ZW5kOyBpKyspIHsKKyAgICAgICAg
aWYgKHNlYXJjaEludmVyc2VMb3coYnVmZmVyLCBoaWdoLCBpKSkgeworICAgICAgICAgIGxvdz1p
OworICAgICAgICAgIGJyZWFrOworICAgICAgICB9ICAgICAgICAgICAgICAgICAKKyAgICAgIH0K
KyAgICB9CisgICAgCisgICAgLy8gbG9vayBpZiBsb3cgdGFibGUgd2FzIGZvdW50CisgICAgaWYg
KGxvdz09LTEpIHJldHVybiBmYWxzZTsKKyAgfQorICAgIAorICAvLyBnZXQgdGhlIEE0IG5vdGUK
KyAgc2lkPShidWZmZXJbaGlnaC1BNF0pKjI1NisoYnVmZmVyW2xvdy1BNF0pOyAgCisKKyAgLy8g
bW9kaWZ5IHN0YXJ0IGZvciBhbm90aGVyIGFuYWxpc3lzCisgIGN1clN0YXJ0PXN0ZDo6bWluKHN0
ZDo6bWF4KGhpZ2gtQUxMKzEsIGxvdy1BTEwrMSkrVEFCTEUsIGVuZC1UQUJMRSk7CisgIGxpc3Qu
cHVzaF9iYWNrKHNpZCk7IAorIAorICByZXR1cm4gdHJ1ZTsgICAgCiB9CiAKIC8qKgpAQCAtNjQw
LDI2ICsxMjk3LDU4IEBACiAgKgogICogQHBhcmFtIGJ1ZmZlciB0aGUgYnVmZmVkIHdpdGggdGhl
IGRhdGEgdG8gaWRlbnRpZnkKICAqIEBwYXJhbSBsZW5ndGggbGVuZ3RoIG9mIHRoZSBidWZmZXIK
LSAqIEByZXR1cm4gdGhlIHNpZCB2YWx1ZSBvZiBBNCBmcmVxdWVuY3kgKG9yIC0xIGlmIG5vdCBm
b3VudCkKKyAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBmb3VudCBmcmVxdWVuY2llcwogICovCiBp
bnQgU2lkRnJlcTo6aWRlbnRpZnlGcmVxKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50
IGxlbmd0aCkgewogICBpbnQgc2lkOworICBpbnQgZW5kOworICAKKyAgbGlzdC5jbGVhcigpOwor
ICBjdXJTdGFydD0wOwogICAKLSAgc2lkPWxpbmVhclRhYmxlKGJ1ZmZlciwgbGVuZ3RoKTsKKyAg
Y3VyU3RhcnQ9MDsgICAgCisgIHdoaWxlIChsaW5lYXJUYWJsZShidWZmZXIsIGN1clN0YXJ0LCBs
ZW5ndGgpKSB7fSAgCiAgIAotICBpZiAoc2lkICE9IC0xKSByZXR1cm4gc2lkOyAgLy8gd2UgZm91
bnQgaXQKKyAgY3VyU3RhcnQ9MDsgICAgCisgIHdoaWxlIChjb21iaW5lZFRhYmxlKGJ1ZmZlciwg
Y3VyU3RhcnQsIGxlbmd0aCkpIHt9ICAKICAgCi0gIHNpZD1jb21iaW5lZFRhYmxlKGJ1ZmZlciwg
bGVuZ3RoKTsKKyAgY3VyU3RhcnQ9MDsKKyAgZW5kPWxlbmd0aDsKKyAgd2hpbGUgKGxpbmVhcklu
dmVyc2VUYWJsZShidWZmZXIsIGN1clN0YXJ0LCBlbmQpKSB7CisgICAgZW5kPWN1clN0YXJ0Owor
ICAgIGN1clN0YXJ0PXN0ZDo6bWluKDAsIGN1clN0YXJ0LVRBQkxFKTsgIAorICB9CiAgIAotICBp
ZiAoc2lkICE9IC0xKSByZXR1cm4gc2lkOyAgLy8gd2UgZm91bnQgaXQKKyAgY3VyU3RhcnQ9MDsg
ICAgCisgIHdoaWxlIChsaW5lYXJPY3ROb3RlVGFibGUoYnVmZmVyLCBjdXJTdGFydCwgbGVuZ3Ro
KSkge30gCiAgIAotICBzaWQ9c2hvcnRMaW5lYXJUYWJsZShidWZmZXIsIGxlbmd0aCk7CisgIGN1
clN0YXJ0PTA7ICAgIAorICB3aGlsZSAoaGlnaE9jdGF2ZShidWZmZXIsIGN1clN0YXJ0LCBsZW5n
dGgpKSB7fSAKICAgCi0gIGlmIChzaWQgIT0gLTEpIHJldHVybiBzaWQ7ICAvLyB3ZSBmb3VudCBp
dAorICBjdXJTdGFydD0wOyAgICAKKyAgd2hpbGUgKGxpbmVhclNjYWxlVGFibGUoYnVmZmVyLCBj
dXJTdGFydCwgbGVuZ3RoKSkge30KICAgIAotICBzaWQ9c2hvcnRDb21iaW5lZFRhYmxlKGJ1ZmZl
ciwgbGVuZ3RoKTsKKyAgY3VyU3RhcnQ9MDsKKyAgLy8gZm9yIHNob3J0IHRhYmxlIGxvb2tzIG9u
bHkgaWYgdGhlcmUgYXJlIG5vIHNvbHV0aW9uIGJlZm9yZQorICBpZiAobGlzdC5lbXB0eSgpKSBz
aG9ydExpbmVhclRhYmxlKGJ1ZmZlciwgY3VyU3RhcnQsIGxlbmd0aCk7CisgIGlmIChsaXN0LmVt
cHR5KCkpIHNob3J0Q29tYmluZWRUYWJsZShidWZmZXIsIGN1clN0YXJ0LCBsZW5ndGgpOworICBp
ZiAobGlzdC5lbXB0eSgpKSBoaWdoT2N0YXZlMTIoYnVmZmVyLCBjdXJTdGFydCwgbGVuZ3RoKTsK
KyAgaWYgKGxpc3QuZW1wdHkoKSkgaGlnaE9jdGF2ZUNvbWJpbmVkKGJ1ZmZlciwgY3VyU3RhcnQs
IGxlbmd0aCk7CisgIGlmIChsaXN0LmVtcHR5KCkpIGxvd09jdGF2ZUNvbWJpbmVkKGJ1ZmZlciwg
Y3VyU3RhcnQsIGxlbmd0aCk7CiAgIAotICByZXR1cm4gc2lkOworICByZXR1cm4gbGlzdC5zaXpl
KCk7IAorfQorCisvKioKKyAqIEdldCB0aGUgc2lkIGZyZXF1ZW5jaWVzYXQgdGhlIGdpdmVuIGlu
ZGV4IG9yIC0xIGlmIG91dCBvZiBpbmRleAorICogCisgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4
IHRvIGdldCB0aGUgdmFsdWUKKyAqIEByZXR1cm4gdGhlIHNpZCBmcmVxdWVuY2llcyBTSUQgdmFs
dWUKKyAqLworaW50IFNpZEZyZXE6OmdldFNpZEZyZXEoaW50IGluZGV4KSB7CisgIGlmIChpbmRl
eDwwIHx8IGluZGV4Pj1saXN0LnNpemUoKSkgcmV0dXJuIC0xOworICAKKyAgcmV0dXJuIGxpc3Qu
YXQoaW5kZXgpOwogfQogCiAjZW5kaWYgIC8qIFNJREZSRVEgKi8KZGlmZiAtTmF1cncgL3hzaWRw
bGF5Mi1jb2RlLXIyODgtdHJ1bmsveHNpZHBsYXkvc3JjL3NpZGZyZXEvc2lkZnJlcS5oIC94c2lk
cGxheTItY29kZS1yMjk0LXRydW5rL3hzaWRwbGF5L3NyYy9zaWRmcmVxL3NpZGZyZXEuaAotLS0g
L3hzaWRwbGF5Mi1jb2RlLXIyODgtdHJ1bmsveHNpZHBsYXkvc3JjL3NpZGZyZXEvc2lkZnJlcS5o
CTIwMjAtMDYtMjAgMTI6MDM6MjcuMDAwMDAwMDAwICswMjAwCisrKyAveHNpZHBsYXkyLWNvZGUt
cjI5NC10cnVuay94c2lkcGxheS9zcmMvc2lkZnJlcS9zaWRmcmVxLmgJMjAyMy0wMi0yNiAxNjoy
NDo1MC4wMDAwMDAwMDAgKzAxMDAKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNvbmZp
Zy5oIgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2ZWN0b3I+CiAKIC8qKgogICogU2lk
RnJlcSBjbGFzcwpAQCAtMzQsNyArMzUsNyBAQAogICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRo
ZSBzZWFyY2ggb2YgYmFzZSBBNCBub3RlIGZyZXF1ZW5jeSB1c2VkIGJ5IGEgdHVuZQogICoKICAq
IEBhdXRob3IgU3RlZmFubyBUb2dub24gKGljZTAwKQotICogQHZlcnNpb24gMS4wMCAxNy8wNC8y
MDE3CisgKiBAdmVyc2lvbiAxLjAyIDI1LzAyLzIwMjMKICAqLwogY2xhc3MgU2lkRnJlcSB7CiAg
IHB1YmxpYzoKQEAgLTY3LDggKzY4LDIyIEBACiAgICAgaW50IGlkZW50aWZ5RnJlcShjb25zdCB1
bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCBsZW5ndGgpOwogCiAKKyAgICAvKioKKyAgICAgKiBH
ZXQgdGhlIHNpZCBmcmVxdWVuY2llc2F0IHRoZSBnaXZlbiBpbmRleCBvciAtMSBpZiBvdXQgb2Yg
aW5kZXgKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IHRvIGdldCB0aGUg
dmFsdWUKKyAgICAgKiBAcmV0dXJuIHRoZSBzaWQgZnJlcXVlbmNpZXMgU0lEIHZhbHVlCisgICAg
ICovCisgICAgaW50IGdldFNpZEZyZXEoaW50IGluZGV4KTsKKwogICBwcml2YXRlOgogICAgICAg
CisgICAgLyoqIExpc3Qgb2YgdGhlIGZvdW50IGZyZXF1ZW5jaWVzICovCisgICAgc3RkOjp2ZWN0
b3I8aW50PiBsaXN0OworICAgIAorICAgIC8qKiBDdXJyZW50IHN0YXJ0aW5nIHBvc2l0aW9uIGZv
ciBtdWx0aXBsZSBjYXRjaCAqLworICAgIGludCBjdXJTdGFydDsKKyAgICAgIAogICAgIC8qKgog
ICAgICAqIFNlYXJjaCBmb3IgdGhlIGhpZ2ggZnJlcXVlbmN5IHRhYmxlIGluIGxpbmVhciB3YXkK
ICAgICAgKgpAQCAtMTA2LDYgKzEyMSwxNSBAQAogICAgIGJvb2wgc2VhcmNoU2hvcnRIaWdoMihj
b25zdCB1bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCBpbmRleCk7ICAgIAogICAgIAogICAgIC8q
KgorICAgICAqIFNlYXJjaCBmb3IgdGhlIHNjYWxlIGhpZ2ggZnJlcXVlbmN5IHRhYmxlIGluIGxp
bmVhciB3YXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZlciB3aXRoIHRo
ZSB0dW5lCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCB3aGVyZSB0byBzdGFydCB0aGUg
dGVzdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGhpZ2ggZnJlcXVlbmN5IHRh
YmxlIGluIHRoYXQgcG9zaXRpb24gCisgICAgICovIAorICAgIGJvb2wgc2VhcmNoU2NhbGVIaWdo
KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IGluZGV4KTsgICAgCisgICAgCisgICAg
LyoqCiAgICAgICogU2VhcmNoIGZvciBhIGxvdyBmcmVxdWVuY3kgdGFibGUgaW4gbGluZWFyIHdh
eQogICAgICAqIAogICAgICAqIEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZlciB3aXRoIHRoZSB0dW5l
CkBAIC0xNDYsNDAgKzE3MCwxNjMgQEAKICAgICBib29sIHNlYXJjaFNob3J0TG93Mihjb25zdCB1
bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCBoaWdoLCBpbnQgaW5kZXgpOyAgICAgCiAgICAgCiAg
ICAgLyoqCisgICAgICogU2VhcmNoIGZvciBhIGxvdyBmcmVxdWVuY3kgc2NhbGUgdGFibGUgaW4g
bGluZWFyIHdheQorICAgICAqIAorICAgICAqIEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZlciB3aXRo
IHRoZSB0dW5lCisgICAgICogQHBhcmFtIGhpZ2ggdGhlIHBvc2l0aW9uIG9mIGhpZ2ggdGFibGUK
KyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IHdoZXJlIHRvIHNlYXJjaCBmb3IgbG93IHRh
YmxlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgbG93IGZyZXF1ZW5jeSB0YWJs
ZSBpbiB0aGF0IHBvc2l0aW9uIAorICAgICAqLyAKKyAgICBib29sIHNlYXJjaFNjYWxlTG93KGNv
bnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IGhpZ2gsIGludCBpbmRleCk7ICAgCisgICAg
CisgICAgLyoqCisgICAgICogU2VhcmNoIGZvciB0aGUgaGlnaCBmcmVxdWVuY3kgdGFibGUgaW4g
bGluZWFyIHdheSBmb3Igb2N0YXZlL25vdGUgZm9ybWF0CisgICAgICoKKyAgICAgKiBAcGFyYW0g
YnVmZmVyIHRoZSBidWZmZXIgd2l0aCB0aGUgdHVuZQorICAgICAqIEBwYXJhbSBpbmRleCB0aGUg
aW5kZXggd2hlcmUgdG8gc3RhcnQgdGhlIHRlc3QKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhl
cmUgaXMgYSBoaWdoIGZyZXF1ZW5jeSB0YWJsZSBpbiB0aGF0IHBvc2l0aW9uIAorICAgICAqLyAK
KyAgICBib29sIHNlYXJjaE9jdE5vdGVIaWdoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwg
aW50IGluZGV4KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZWFyY2ggZm9yIGEgbG93IGZyZXF1
ZW5jeSB0YWJsZSBpbiBsaW5lYXIgd2F5IGZvciBvY3RhdmUvbm90ZQorICAgICAqIAorICAgICAq
IEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZlciB3aXRoIHRoZSB0dW5lCisgICAgICogQHBhcmFtIGhp
Z2ggdGhlIHBvc2l0aW9uIG9mIGhpZ2ggdGFibGUKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGlu
ZGV4IHdoZXJlIHRvIHNlYXJjaCBmb3IgbG93IHRhYmxlCisgICAgICogQHJldHVybiB0cnVlIGlm
IHRoZXJlIGlzIGEgbG93IGZyZXF1ZW5jeSB0YWJsZSBpbiB0aGF0IHBvc2l0aW9uIAorICAgICAq
LyAKKyAgICBib29sIHNlYXJjaE9jdE5vdGVMb3coY29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVy
LCBpbnQgaGlnaCwgaW50IGluZGV4KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZWFyY2ggZm9y
IHRoZSBoaWdoIGZyZXF1ZW5jeSBpbnZlcnNlIHRhYmxlIGluIGxpbmVhciB3YXkKKyAgICAgKgor
ICAgICAqIEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZlciB3aXRoIHRoZSB0dW5lCisgICAgICogQHBh
cmFtIGluZGV4IHRoZSBpbmRleCB3aGVyZSB0byBzdGFydCB0aGUgdGVzdAorICAgICAqIEByZXR1
cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGhpZ2ggZnJlcXVlbmN5IHRhYmxlIGluIHRoYXQgcG9zaXRp
b24gCisgICAgICovIAorICAgIGJvb2wgc2VhcmNoSW52ZXJzZUhpZ2goY29uc3QgdW5zaWduZWQg
Y2hhciAqYnVmZmVyLGludCBpbmRleCk7CisKKyAgICAvKioKKyAgICAgKiBTZWFyY2ggZm9yIGEg
bG93IGZyZXF1ZW5jeSBpbnZlcnNlIHRhYmxlIGluIGxpbmVhciB3YXkKKyAgICAgKiAKKyAgICAg
KiBAcGFyYW0gYnVmZmVyIHRoZSBidWZmZXIgd2l0aCB0aGUgdHVuZQorICAgICAqIEBwYXJhbSBo
aWdoIHRoZSBwb3NpdGlvbiBvZiBoaWdoIHRhYmxlCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBp
bmRleCB3aGVyZSB0byBzZWFyY2ggZm9yIGxvdyB0YWJsZQorICAgICAqIEByZXR1cm4gdHJ1ZSBp
ZiB0aGVyZSBpcyBhIGxvdyBmcmVxdWVuY3kgdGFibGUgaW4gdGhhdCBwb3NpdGlvbiAKKyAgICAg
Ki8gCisgICAgYm9vbCBzZWFyY2hJbnZlcnNlTG93KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZl
cixpbnQgaGlnaCwgaW50IGluZGV4KTsKKyAgICAKKyAgICAvKioKICAgICAgKiBTZWFyY2ggZm9y
IHRhYmxlcyBpbiBsaW5lYXIgd2F5IChsb3cgLyBoaWdoIG9yIGhpZ2ggLyBsb3cpCiAgICAgICog
Ci0gICAgICogQHBhcmFtIGJ1ZmZlciB0aGUgYnVmZmVkIHdpdGggdGhlIGRhdGEgdG8gaWRlbnRp
ZnkKLSAgICAgKiBAcGFyYW0gbGVuZ3RoIGxlbmd0aCBvZiB0aGUgYnVmZmVyCi0gICAgICogQHJl
dHVybiB0aGUgc2lkIHZhbHVlIG9mIEE0IGZyZXF1ZW5jeSAob3IgLTEgaWYgbm90IGZvdW50KSAK
KyAgICAgKiBAcGFyYW0gYnVmZmVyIHRoZSBidWZmZXIgd2l0aCB0aGUgdHVuZQorICAgICAqIEBw
YXJhbSBoaWdoIHRoZSBwb3NpdGlvbiBvZiBoaWdoIHRhYmxlCisgICAgICogQHBhcmFtIGluZGV4
IHRoZSBpbmRleCB3aGVyZSB0byBzZWFyY2ggZm9yIGxvdyB0YWJsZQorICAgICAqIEByZXR1cm4g
dHJ1ZSBpZiB0aGVyZSBpcyBhIGxvdyBmcmVxdWVuY3kgdGFibGUgaW4gdGhhdCBwb3NpdGlvbiAK
ICAgICAqLwotICAgIGludCBsaW5lYXJUYWJsZShjb25zdCB1bnNpZ25lZCBjaGFyICpidWZmZXIs
IGludCBsZW5ndGgpOworICAgIGJvb2wgbGluZWFyVGFibGUoY29uc3QgdW5zaWduZWQgY2hhciAq
YnVmZmVyLCBpbnQgc3RhcnQsIGludCBlbmQpOwogICAgIAogICAgIC8qKgogICAgICAqIFNlYXJj
aCBmb3Igc2hvcnQgdGFibGVzIGluIGxpbmVhciB3YXkgKGxvdyAvIGhpZ2ggb3IgaGlnaCAvIGxv
dykKICAgICAgKiAKICAgICAgKiBAcGFyYW0gYnVmZmVyIHRoZSBidWZmZWQgd2l0aCB0aGUgZGF0
YSB0byBpZGVudGlmeQotICAgICAqIEBwYXJhbSBsZW5ndGggbGVuZ3RoIG9mIHRoZSBidWZmZXIK
LSAgICAgKiBAcmV0dXJuIHRoZSBzaWQgdmFsdWUgb2YgQTQgZnJlcXVlbmN5IChvciAtMSBpZiBu
b3QgZm91bnQpIAorICAgICAqIEBwYXJhbSBzdGFydCBzdGFydCBwb3NpdGlvbiBpbiBidWZmZXIK
KyAgICAgKiBAcGFyYW0gZW5kIGVuZCBwb3NpdGlvbiBpbiBidWZmZXIKKyAgICAgKiBAcmV0dXJu
IHRydWUgaWYgdGhlIHRhYmxlIGlzIGZvdW50CiAgICAgKi8KLSAgICBpbnQgc2hvcnRMaW5lYXJU
YWJsZShjb25zdCB1bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCBsZW5ndGgpOyAgICAKKyAgICBi
b29sIHNob3J0TGluZWFyVGFibGUoY29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgc3Rh
cnQsIGludCBlbmQpOyAgICAKICAgICAKICAgICAvKioKICAgICAgKiBTZWFyY2ggZm9yIHRhYmxl
cyBpbiBjb21iaW5lZCB3YXkgKGxvdyArIGhpZ2ggb3IgaGlnaCArIGxvdykKICAgICAgKiAKICAg
ICAgKiBAcGFyYW0gYnVmZmVyIHRoZSBidWZmZWQgd2l0aCB0aGUgZGF0YSB0byBpZGVudGlmeQot
ICAgICAqIEBwYXJhbSBsZW5ndGggbGVuZ3RoIG9mIHRoZSBidWZmZXIKLSAgICAgKiBAcmV0dXJu
IHRoZSBzaWQgdmFsdWUgb2YgQTQgZnJlcXVlbmN5IChvciAtMSBpZiBub3QgZm91bnQpIAorICAg
ICAqIEBwYXJhbSBzdGFydCBzdGFydCBwb3NpdGlvbiBpbiBidWZmZXIKKyAgICAgKiBAcGFyYW0g
ZW5kIGVuZCBwb3NpdGlvbiBpbiBidWZmZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRh
YmxlIGlzIGZvdW50CiAgICAgKi8KLSAgICBpbnQgY29tYmluZWRUYWJsZShjb25zdCB1bnNpZ25l
ZCBjaGFyICpidWZmZXIsIGludCBsZW5ndGgpOyAgICAKKyAgICBib29sIGNvbWJpbmVkVGFibGUo
Y29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgc3RhcnQsIGludCBlbmQpOyAgICAKICAg
ICAKICAgICAvKioKICAgICAgKiBTZWFyY2ggZm9yIHNob3J0IHRhYmxlcyBpbiBjb21iaW5lZCB3
YXkgKGxvdyArIGhpZ2ggb3IgaGlnaCArIGxvdykKICAgICAgKiAKICAgICAgKiBAcGFyYW0gYnVm
ZmVyIHRoZSBidWZmZWQgd2l0aCB0aGUgZGF0YSB0byBpZGVudGlmeQotICAgICAqIEBwYXJhbSBs
ZW5ndGggbGVuZ3RoIG9mIHRoZSBidWZmZXIKLSAgICAgKiBAcmV0dXJuIHRoZSBzaWQgdmFsdWUg
b2YgQTQgZnJlcXVlbmN5IChvciAtMSBpZiBub3QgZm91bnQpIAorICAgICAqIEBwYXJhbSBzdGFy
dCBzdGFydCBwb3NpdGlvbiBpbiBidWZmZXIKKyAgICAgKiBAcGFyYW0gZW5kIGVuZCBwb3NpdGlv
biBpbiBidWZmZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRhYmxlIGlzIGZvdW50Cisg
ICAgICovCisgICAgYm9vbCBzaG9ydENvbWJpbmVkVGFibGUoY29uc3QgdW5zaWduZWQgY2hhciAq
YnVmZmVyLCBpbnQgc3RhcnQsIGludCBlbmQpOyAgCisgICAgCisgICAgLyoqCisgICAgICogU2Vh
cmNoIGZvciB0YWJsZXMgaW4gbGluZWFyIHdheSAobG93IC8gaGlnaCBvciBoaWdoIC8gbG93KSB0
aGF0IGhhcworICAgICAqIHNjYWxlIGZvcm1hdCAob25seSBDREVGR0FCKQorICAgICAqICAKKyAg
ICAgKiBAcGFyYW0gYnVmZmVyIHRoZSBidWZmZWQgd2l0aCB0aGUgZGF0YSB0byBpZGVudGlmeQor
ICAgICAqIEBwYXJhbSBzdGFydCBzdGFydCBwb3NpdGlvbiBpbiBidWZmZXIKKyAgICAgKiBAcGFy
YW0gZW5kIGVuZCBwb3NpdGlvbiBpbiBidWZmZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhl
IHRhYmxlIGlzIGZvdW50CisgICAgICovCisgICAgYm9vbCBsaW5lYXJTY2FsZVRhYmxlKGNvbnN0
IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IHN0YXJ0LCBpbnQgZW5kKTsKKyAgICAKKyAgICAv
KioKKyAgICAgKiBTZWFyY2ggZm9yIHRhYmxlcyBpbiBsaW5lYXIgd2F5IChsb3cgLyBoaWdoIG9y
IGhpZ2ggLyBsb3cpIHdpdGggaW52ZXJzZSBkaXJlY3Rpb24KKyAgICAgKiAgCisgICAgICogQHBh
cmFtIGJ1ZmZlciB0aGUgYnVmZmVkIHdpdGggdGhlIGRhdGEgdG8gaWRlbnRpZnkKKyAgICAgKiBA
cGFyYW0gc3RhcnQgc3RhcnQgcG9zaXRpb24gaW4gYnVmZmVyCisgICAgICogQHBhcmFtIGVuZCBl
bmQgcG9zaXRpb24gaW4gYnVmZmVyCisgICAgICovCisgICAgYm9vbCBsaW5lYXJJbnZlcnNlVGFi
bGUoY29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgc3RhcnQsIGludCBlbmQpOworICAg
IAorICAgIC8qKgorICAgICAqIExvb2tzIGZvciBhbiBoaWdoIG9jdGF2ZSB0YWJsZQorICAgICAq
IAorICAgICAqIEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZlZCB3aXRoIHRoZSBkYXRhIHRvIGlkZW50
aWZ5CisgICAgICogQHBhcmFtIHN0YXJ0IHN0YXJ0IHBvc2l0aW9uIGluIGJ1ZmZlcgorICAgICAq
IEBwYXJhbSBlbmQgZW5kIHBvc2l0aW9uIGluIGJ1ZmZlcgorICAgICAqIEByZXR1cm4gdHJ1ZSBp
ZiBpdCBpcyBmaW5kCisgICAgICovCisgICAgIGJvb2wgaGlnaE9jdGF2ZTEyKGNvbnN0IHVuc2ln
bmVkIGNoYXIgKmJ1ZmZlciwgaW50IHN0YXJ0LCBpbnQgZW5kKTsKKyAgICAgCisgICAgIC8qKgor
ICAgICAgKiBMb29rcyBmb3IgYW4gaGlnaCBvY3RhdmUgdGFibGUKKyAgICAgICogCisgICAgICAq
IEBwYXJhbSBidWZmZXIgdGhlIGJ1ZmZlZCB3aXRoIHRoZSBkYXRhIHRvIGlkZW50aWZ5CisgICAg
ICAqIEBwYXJhbSBzdGFydCBzdGFydCBwb3NpdGlvbiBpbiBidWZmZXIKKyAgICAgICogQHBhcmFt
IGVuZCBlbmQgcG9zaXRpb24gaW4gYnVmZmVyCisgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdCBp
cyBmaW5kCisgICAgICAqLworICAgIGJvb2wgaGlnaE9jdGF2ZUNvbWJpbmVkKGNvbnN0IHVuc2ln
bmVkIGNoYXIgKmJ1ZmZlciwgaW50IHN0YXJ0LCBpbnQgZW5kKTsgCisgICAgCisgICAgLyoqCisg
ICAgICogTG9va3MgZm9yIGFuIGhpZ2ggb2N0YXZlIHRhYmxlCisgICAgICogCisgICAgICogQHBh
cmFtIGJ1ZmZlciB0aGUgYnVmZmVkIHdpdGggdGhlIGRhdGEgdG8gaWRlbnRpZnkKKyAgICAgKiBA
cGFyYW0gc3RhcnQgc3RhcnQgcG9zaXRpb24gaW4gYnVmZmVyCisgICAgICogQHBhcmFtIGVuZCBl
bmQgcG9zaXRpb24gaW4gYnVmZmVyCisgICAgICogQHJldHVybiB0cnVlIGlmIGl0IGlzIGZpbmQK
KyAgICAgKi8KKyAgICBib29sIGxvd09jdGF2ZUNvbWJpbmVkKGNvbnN0IHVuc2lnbmVkIGNoYXIg
KmJ1ZmZlciwgaW50IHN0YXJ0LCBpbnQgZW5kKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBMb29r
cyBmb3IgYW4gaGlnaCBvY3RhdmUgdGFibGUKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYnVmZmVy
IHRoZSBidWZmZWQgd2l0aCB0aGUgZGF0YSB0byBpZGVudGlmeQorICAgICAqIEBwYXJhbSBzdGFy
dCBzdGFydCBwb3NpdGlvbiBpbiBidWZmZXIKKyAgICAgKiBAcGFyYW0gZW5kIGVuZCBwb3NpdGlv
biBpbiBidWZmZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgaXQgaXMgZmluZAorICAgICAqLwor
ICAgIGJvb2wgaGlnaE9jdGF2ZShjb25zdCB1bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCBzdGFy
dCwgaW50IGVuZCk7CisgICAgCisgICAgLyoqCisgICAgICogU2VhcmNoIGZvciB0YWJsZXMgaW4g
bGluZWFyIHdheSAobG93IC8gaGlnaCBvciBoaWdoIC8gbG93KSBpbiBvY3RhdmUvbm90ZSAKKyAg
ICAgKiBmb3JtYXQKKyAgICAgKiAgCisgICAgICogQHBhcmFtIGJ1ZmZlciB0aGUgYnVmZmVkIHdp
dGggdGhlIGRhdGEgdG8gaWRlbnRpZnkKKyAgICAgKiBAcGFyYW0gc3RhcnQgc3RhcnQgcG9zaXRp
b24gaW4gYnVmZmVyCisgICAgICogQHBhcmFtIGVuZCBlbmQgcG9zaXRpb24gaW4gYnVmZmVyCisg
ICAgICogQHJldHVybiB0cnVlIGlmIGl0IGlzIGZpbmQKICAgICAqLwotICAgIGludCBzaG9ydENv
bWJpbmVkVGFibGUoY29uc3QgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgbGVuZ3RoKTsgIAor
ICAgIGJvb2wgbGluZWFyT2N0Tm90ZVRhYmxlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwg
aW50IHN0YXJ0LCBpbnQgZW5kKTsKICAgICAKICAgICAvLyBWZXJzaW9uIG51bWJlci9jb3B5cmln
aHQgc3RyaW5nCiAgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtX3ZlcnNpb25TdHJpbmc7
ICAgICAgCmRpZmYgLU5hdXJ3IC94c2lkcGxheTItY29kZS1yMjg4LXRydW5rL3hzaWRwbGF5L3Ny
Yy9zb25nbGVuZGIvRmlsZS5jcHAgL3hzaWRwbGF5Mi1jb2RlLXIyOTQtdHJ1bmsveHNpZHBsYXkv
c3JjL3NvbmdsZW5kYi9GaWxlLmNwcAotLS0gL3hzaWRwbGF5Mi1jb2RlLXIyODgtdHJ1bmsveHNp
ZHBsYXkvc3JjL3NvbmdsZW5kYi9GaWxlLmNwcAkyMDExLTA2LTE2IDIzOjA4OjAwLjAwMDAwMDAw
MCArMDIwMAorKysgL3hzaWRwbGF5Mi1jb2RlLXIyOTQtdHJ1bmsveHNpZHBsYXkvc3JjL3Nvbmds
ZW5kYi9GaWxlLmNwcAkyMDIzLTAyLTE5IDIxOjAyOjA3LjAwMDAwMDAwMCArMDEwMApAQCAtNDEs
OCArNDEsOCBAQAogICAgIH0KIH07CiAKLWNvbnN0IGNoYXIgX1NvbmdMZW5ndGhGaWxlX3RleHRf
Y2FudE9wZW5GaWxlW10gPSAiRmFpbGVkIHRvIG9wZW4gU29uZ2xlbmd0aHMudHh0ISI7Ci1jb25z
dCBjaGFyIF9Tb25nTGVuZ3RoRmlsZV90ZXh0X2NhbnRMb2FkRmlsZVtdID0gIkZhaWxlZCB0byBy
ZWFkIFNvbmdsZW5ndGhzLnR4dCEiOworY29uc3QgY2hhciBfU29uZ0xlbmd0aEZpbGVfdGV4dF9j
YW50T3BlbkZpbGVbXSA9ICJGYWlsZWQgdG8gb3BlbiBTb25nbGVuZ3Rocy5tZDUhIjsKK2NvbnN0
IGNoYXIgX1NvbmdMZW5ndGhGaWxlX3RleHRfY2FudExvYWRGaWxlW10gPSAiRmFpbGVkIHRvIHJl
YWQgU29uZ2xlbmd0aHMubWQ1ISI7CiBjb25zdCBjaGFyIF9Tb25nTGVuZ3RoRmlsZV90ZXh0X25v
dEVub3VnaE1lbW9yeVtdID0gIk5vdCBlbm91Z2ggbWVtb3J5ISI7CiBjb25zdCBjaGFyIF9Tb25n
TGVuZ3RoRmlsZV90ZXh0X25vRW50cnlbXSA9ICJObyBkYXRhYmFzZSBlbnRyeSBmb3IgdGhpcyBm
aWxlISI7CiBjb25zdCBjaGFyIF9Tb25nTGVuZ3RoRmlsZV90ZXh0X2JhZFNvbmdbXSA9ICJSZXF1
ZXN0ZWQgc29uZyBudW1iZXIgdG9vIGhpZ2ghIFdyb25nIHNvbmdsZW5ndGhzIGZpbGUgdmVyc2lv
bj8iOwpkaWZmIC1OYXVydyAveHNpZHBsYXkyLWNvZGUtcjI4OC10cnVuay94c2lkcGxheS9zcmMv
c29uZ2xlbmRiL0l0ZW0uaCAveHNpZHBsYXkyLWNvZGUtcjI5NC10cnVuay94c2lkcGxheS9zcmMv
c29uZ2xlbmRiL0l0ZW0uaAotLS0gL3hzaWRwbGF5Mi1jb2RlLXIyODgtdHJ1bmsveHNpZHBsYXkv
c3JjL3NvbmdsZW5kYi9JdGVtLmgJMjAwNy0wOC0yMyAyMToyNTozOS4wMDAwMDAwMDAgKzAyMDAK
KysrIC94c2lkcGxheTItY29kZS1yMjk0LXRydW5rL3hzaWRwbGF5L3NyYy9zb25nbGVuZGIvSXRl
bS5oCTIwMjMtMDItMTkgMjE6MDI6MDcuMDAwMDAwMDAwICswMTAwCkBAIC0yMSwxMiArMjEsMTQg
QEAKIHsKICBwdWJsaWM6CiAJaW50IHBsYXl0aW1lOyAgLy8gaW4gc2Vjb25kcworCWludCBtaWxs
aTsgICAgIC8vIG1pbGxpc2Vjb25kcwogCQogCVNvbmdMZW5ndGhEQml0ZW0oKSAgeyBjbGVhcigp
OyB9CiAKIAl2b2lkIGNsZWFyKCkKIAl7CiAJCXBsYXl0aW1lID0gMDsKKwkJbWlsbGkgPSAwOwog
CX0KIH07CiAKZGlmZiAtTmF1cncgL3hzaWRwbGF5Mi1jb2RlLXIyODgtdHJ1bmsveHNpZHBsYXkv
c3JjL3dyYXBwZXIvTUQ1LmNwcCAveHNpZHBsYXkyLWNvZGUtcjI5NC10cnVuay94c2lkcGxheS9z
cmMvd3JhcHBlci9NRDUuY3BwCi0tLSAveHNpZHBsYXkyLWNvZGUtcjI4OC10cnVuay94c2lkcGxh
eS9zcmMvd3JhcHBlci9NRDUuY3BwCTIwMDctMDgtMjMgMjE6MjU6MzkuMDAwMDAwMDAwICswMjAw
CisrKyAveHNpZHBsYXkyLWNvZGUtcjI5NC10cnVuay94c2lkcGxheS9zcmMvd3JhcHBlci9NRDUu
Y3BwCTIwMjMtMDItMTkgMjE6MDI6MDcuMDAwMDAwMDAwICswMTAwCkBAIC0xNDcsNyArMTQ3LDcg
QEAKIHZvaWQKIE1ENTo6cmVzZXQoKQogewotICAgIGNvdW50WzBdID0gY291bnRbMV0gPSBjb3Vu
dFsyXSA9IDA7CisgICAgY291bnRbMF0gPSBjb3VudFsxXSA9IDA7CiAgICAgYWJjZFswXSA9IDB4
Njc0NTIzMDE7CiAgICAgYWJjZFsxXSA9IDB4ZWZjZGFiODk7CiAgICAgYWJjZFsyXSA9IDB4OThi
YWRjZmU7CmRpZmYgLU5hdXJ3IC94c2lkcGxheTItY29kZS1yMjg4LXRydW5rL3hzaWRwbGF5L3Ny
Yy93cmFwcGVyL3NpZC9MaWJTaWRwbGF5MS5jcHAgL3hzaWRwbGF5Mi1jb2RlLXIyOTQtdHJ1bmsv
eHNpZHBsYXkvc3JjL3dyYXBwZXIvc2lkL0xpYlNpZHBsYXkxLmNwcAotLS0gL3hzaWRwbGF5Mi1j
b2RlLXIyODgtdHJ1bmsveHNpZHBsYXkvc3JjL3dyYXBwZXIvc2lkL0xpYlNpZHBsYXkxLmNwcAky
MDIwLTA2LTIwIDE3OjMwOjIxLjAwMDAwMDAwMCArMDIwMAorKysgL3hzaWRwbGF5Mi1jb2RlLXIy
OTQtdHJ1bmsveHNpZHBsYXkvc3JjL3dyYXBwZXIvc2lkL0xpYlNpZHBsYXkxLmNwcAkyMDIzLTAy
LTE5IDIxOjAyOjA3LjAwMDAwMDAwMCArMDEwMApAQCAtNzY3LDcgKzc2Nyw3IEBACiAgIFFTdHJp
bmcgdG1wOwogICBwRGlnZXN0LT50cnVuY2F0ZSgwKTsKICAgZm9yIChpbnQgZGkgPSAwOyBkaSA8
IDE2OyArK2RpKQotICAgICpwRGlnZXN0ICs9IHRtcC5zcHJpbnRmKCIlMDJ4IiwoaW50KW15TUQ1
LmdldERpZ2VzdCgpW2RpXSk7CisgICAgKnBEaWdlc3QgKz0gdG1wLmFzcHJpbnRmKCIlMDJ4Iiwo
aW50KW15TUQ1LmdldERpZ2VzdCgpW2RpXSk7CiAgIHJldHVybiAqcERpZ2VzdDsgIAogfQogCkBA
IC03NzgsNiArNzc4LDExIEBACiAgKi8KIHZvaWQgTGliU2lkcGxheTFfaW1wbDo6Y3JlYXRlTUQ1
KE1ENSYgbXlNRDUpIHsKICAgaWYgKGlzQ2FjaGVkICYmIHN0YXR1cykgeworICAgIAorICAgIC8v
IEluY2x1ZGUgQzY0IGRhdGEuCisgICAgbXlNRDUuYXBwZW5kKGNhY2hlUHRyLCBmaWxlT2Zmc2V0
K2luZm8uYzY0ZGF0YUxlbik7IC8vaW5mby5kYXRhRmlsZUxlbik7CisgICAgCisgICAgLyoqCiAg
ICAgLy8gSW5jbHVkZSBDNjQgZGF0YS4KICAgICBteU1ENS5hcHBlbmQoY2FjaGVQdHIrZmlsZU9m
ZnNldCxpbmZvLmM2NGRhdGFMZW4pOwogICAgIHVieXRlIHRtcFsyXTsKQEAgLTgxMiw2ICs4MTcs
OCBAQAogICAgIC8vIGVpdGhlciBjcmVhdGUgdHdvIGRpZmZlcmVudCBmaW5nZXJwcmludHMgZGVw
ZW5kaW5nIG9uCiAgICAgLy8gdGhlIGNsb2NrIHNwZWVkIGNob3NlbiBieSB0aGUgcGxheWVyLCBv
ciB0aGVyZSBjb3VsZCBiZQogICAgIC8vIHR3byBkaWZmZXJlbnQgdmFsdWVzIHN0b3JlZCBpbiB0
aGUgZGF0YWJhc2UvY2FjaGUuCisgICAgCisgICAgKi8KICAgfSAgCiB9IAogCmRpZmYgLU5hdXJ3
IC94c2lkcGxheTItY29kZS1yMjg4LXRydW5rL3hzaWRwbGF5L3NyYy93cmFwcGVyL3NpZC9MaWJT
aWRwbGF5RnAuY3BwIC94c2lkcGxheTItY29kZS1yMjk0LXRydW5rL3hzaWRwbGF5L3NyYy93cmFw
cGVyL3NpZC9MaWJTaWRwbGF5RnAuY3BwCi0tLSAveHNpZHBsYXkyLWNvZGUtcjI4OC10cnVuay94
c2lkcGxheS9zcmMvd3JhcHBlci9zaWQvTGliU2lkcGxheUZwLmNwcAkyMDIwLTA2LTIwIDE3OjMw
OjIxLjAwMDAwMDAwMCArMDIwMAorKysgL3hzaWRwbGF5Mi1jb2RlLXIyOTQtdHJ1bmsveHNpZHBs
YXkvc3JjL3dyYXBwZXIvc2lkL0xpYlNpZHBsYXlGcC5jcHAJMjAyMy0wMi0xOSAyMTowMjowNy4w
MDAwMDAwMDAgKzAxMDAKQEAgLTEwNzIsNyArMTA3Miw3IEBACiAgICAgcmV0dXJuICpwRGlnZXN0
OyAgCiAgICAqLwogICAgcERpZ2VzdC0+Y2xlYXIoKTsKLSAgIHBEaWdlc3QtPmFwcGVuZChTaWRU
dW5lOjpjcmVhdGVNRDUoKSk7CisgICBwRGlnZXN0LT5hcHBlbmQoU2lkVHVuZTo6Y3JlYXRlTUQ1
TmV3KCkpOwogICAgcmV0dXJuICpwRGlnZXN0OwogfQogCg==
EOF1
patch -p3 < xsidplay_diff_r288-r294_RAW.patch
cat | base64 -d > xsidplay_diff_r295-r298_RAW.patch << EOF2
ZGlmZiAtTmF1cncgL3hzaWRwbGF5Mi1jb2RlLXIyOTUtdHJ1bmsveHNpZHBsYXkvc3JjL3NpZGZy
ZXEvc2lkZnJlcS5jcHAgL3hzaWRwbGF5Mi1jb2RlLXIyOTgtdHJ1bmsveHNpZHBsYXkvc3JjL3Np
ZGZyZXEvc2lkZnJlcS5jcHAKLS0tIC94c2lkcGxheTItY29kZS1yMjk1LXRydW5rL3hzaWRwbGF5
L3NyYy9zaWRmcmVxL3NpZGZyZXEuY3BwCTIwMjMtMDMtMDEgMTg6NTk6MjcuMDAwMDAwMDAwICsw
MTAwCisrKyAveHNpZHBsYXkyLWNvZGUtcjI5OC10cnVuay94c2lkcGxheS9zcmMvc2lkZnJlcS9z
aWRmcmVxLmNwcAkyMDIzLTA1LTIxIDIxOjAwOjI2LjAwMDAwMDAwMCArMDIwMApAQCAtMjkyLDYg
KzI5Miw5IEBACiAgICAgLy8gY2F0Y2ggYSB2ZXJ5IGJpZyBlcnJvciAob3JpZ2luYXRlZCBpbiBo
aWdoIHRhYmxlKSBvbiBWaWJyYW50cy9KTyBub3RlIHRhYmxlIGF0IDQyNEh6IAogICAgIGlmIChp
PT04ICYmIGRpZmY9PTMwNzQpIGNvbnRpbnVlOwogICAgIAorICAgIC8vIGNhdGNoIGFuIGVycm8g
aW4gQnl0ZW1hcmUgTXVzaWMgRWRpdG9yICh0YWJsZSA0NDBIeikKKyAgICBpZiAoaT09OCAmJiBk
aWZmPT0yNSkgY29udGludWU7CisgICAgCiAgICAgLy8gY2F0Y2ggaGEgZXJyb3Igb24gREVNT1Mv
TS1SL01heF9NaXguc2lkICh0YWJsZSA0NDBIejsgQTIgLSB2YWx1ZXMgMDc0NCBpbnN0ZWFkIG9m
IDA3NTEpCiAgICAgaWYgKGk9PTkgJiYgZGlmZj09NDIpIGNvbnRpbnVlOwogICAgIApAQCAtMzk4
LDkgKzQwMSwxMiBAQAogICAgICAgaWYgKGk9PTEwICYmIGRpZmY9PTMwMikgY29udGludWU7IAog
ICAgIH0gICAgICAKICAgICAKLSAgICAvLyBjYXRjaCBhbmQgYXJyb3IgaW4gTWVnYXNvdW5kCisg
ICAgLy8gY2F0Y2ggYW5kIGVycm9yIGluIE1lZ2Fzb3VuZAogICAgIGlmIChpPT0zICYmIGRpZmY9
PTE2KSBjb250aW51ZTsKICAgICAKKyAgICAvLyBjYXRjaCBhbmQgZXJyb3IgaW4gTWVnYXNvdW5k
CisgICAgaWYgKGk9PTMgJiYgZGlmZj09MTkpIGNvbnRpbnVlOworICAgIAogICAgIGlmIChkaWZm
PkVSUk9SKSByZXR1cm4gZmFsc2U7CiAgIH0KICAgIApAQCAtNzg5LDcgKzc5NSw3IEBACiAgKi8K
IGJvb2wgU2lkRnJlcTo6Y29tYmluZWRUYWJsZShjb25zdCB1bnNpZ25lZCBjaGFyICpidWZmZXIs
IGludCBzdGFydCwgaW50IGVuZCkgewogICBpbnQgc2lkOwotICBpbnQgaTsKKyAgaW50IGksajsK
ICAgaW50IGhpZ2g9LTE7CiAgIGludCBsb3c9LTE7CiAgICAgIApAQCAtNzk3LDM0ICs4MDMsMzIg
QEAKICAgZm9yIChpPXN0YXJ0OyBpPGVuZC1UQUJMRSoyOyBpKyspIHsKICAgICBpZiAoc2VhcmNo
SGlnaDIoYnVmZmVyLCBpKSkgewogICAgICAgaGlnaD1pOworICAgICAgbG93PS0xOworICAgICAg
CisgICAgICAvLyBjaGVjayBmb3IgbG93IGZyZXF1ZW5jeSB0YWJsZQorICAgICAgZm9yIChqPXN0
YXJ0OyBqPGVuZC1UQUJMRSoyOyBqKyspIHsKKyAgICAgICAgaWYgKGohPWhpZ2gpIHsKKyAgICAg
ICAgICBpZiAoc2VhcmNoTG93MihidWZmZXIsIGhpZ2gsIGopKSB7CisgICAgICAgICAgICBsb3c9
ajsKICAgICAgIGJyZWFrOyAgICAgICAgIAogICAgIH0KICAgfSAgCisgICAgICB9ICAKKyAgICAg
IGlmIChsb3chPS0xKSBicmVhazsgICAgIAorICAgIH0KKyAgfSAgCiAKICNpZmRlZiBERUJVR19T
SURGUkVRICAgIAogICBzdGQ6OmNlcnIgPDwgIkg9IiA8PCBoaWdoIDw8ICJcbiI7CiAjZW5kaWYg
IAogICAgICAKLSAgLy8gbG9vayBpZiBoaWdoIHRhYmxlIHdhcyBmb3VudAotICBpZiAoaGlnaD09
LTEpIHJldHVybiBmYWxzZTsgIAotICAKLSAgLy8gY2hlY2sgZm9yIGxvdyBmcmVxdWVuY3kgdGFi
bGUKLSAgZm9yIChpPXN0YXJ0OyBpPGVuZC1UQUJMRSoyOyBpKyspIHsKLSAgICBpZiAoaSE9aGln
aCkgewotICAgICAgaWYgKHNlYXJjaExvdzIoYnVmZmVyLCBoaWdoLCBpKSkgewotICAgICAgICBs
b3c9aTsKLSAgICAgICAgYnJlYWs7ICAgICAgICAgCi0gICAgICB9Ci0gICAgfQotICB9CisgIC8v
IGxvb2sgaWYgdGFibGUgd2FzIGZvdW50CisgIGlmIChoaWdoPT0tMSB8fCBsb3c9PS0xKSByZXR1
cm4gZmFsc2U7ICAKICAgCiAjaWZkZWYgREVCVUdfU0lERlJFUSAgICAKICAgc3RkOjpjZXJyIDw8
ICJMPSIgPDwgbG93IDw8ICJcbiI7CiAjZW5kaWYgIAogICAKLSAgLy8gbG9vayBpZiBsb3cgdGFi
bGUgd2FzIGZvdW50Ci0gIGlmIChsb3c9PS0xKSByZXR1cm4gZmFsc2U7ICAKLSAgCiAgIC8vIGdl
dCB0aGUgQTQgbm90ZQogICBzaWQ9KGludClidWZmZXJbaGlnaCtBNCoyXSoyNTYrKGludClidWZm
ZXJbbG93K0E0KjJdOyAKICAgCg==
EOF2
patch -p3 < xsidplay_diff_r295-r298_RAW.patch
%build
%set_build_flags
sed -i 's|#SET(CMAKE_CXX_FLAGS " -O2|SET(CMAKE_CXX_FLAGS " -O2|' CMakeLists.txt
sed -i 's|SET(CMAKE_CXX_FLAGS " -O2 -H -fPIC")|SET(CMAKE_CXX_FLAGS " -H -fPIC -std=c++11 %{build_cxxflags} -fdata-sections -ffunction-sections %{build_ldflags} -Wl,-s,--gc-sections")|' CMakeLists.txt
sed -i 's|SET(CMAKE_CXX_FLAGS " -g -O0 -H|#SET(CMAKE_CXX_FLAGS " -g -O0 -H|' CMakeLists.txt
sed -i 's| -g -| -g0 -|' CMakeLists.txt
sed -i 's|option (WITH_TSID "Use TSID library" ON)|#option (WITH_TSID "Use TSID library" ON)|' CMakeLists.txt
sed -i 's|option (SID_WITH_SIDPLAY1 "UseSidplay1 library" ON)|#option (SID_WITH_SIDPLAY1 "UseSidplay1 library" ON)|' CMakeLists.txt
# fix redeclaration error
sed -i 's|#ifndef SID_WITH_SIDPLAY1|#ifdef SID_WITH_SIDPLAY1|' src/MainDialog.cpp
# set cmake (min) 3.5
sed -i 's|required(VERSION 2.8)|required(VERSION 3.10)|' CMakeLists.txt
./compile.sh
%install
mkdir -p %buildroot{%_bindir,%_datadir/%name,%_datadir/applications,%_datadir/fonts,%_datadir/pixmaps}
cp -a build/src/%name AUTHORS COPYING ChangeLog README sidid.cfg sidid.nfo %buildroot%_datadir/%name
cp -a %name.desktop %buildroot%_datadir/applications/%name.desktop
cp -a %name.xpm %buildroot%_datadir/pixmaps/%name.xpm
cp -a src/fonts/C64_Pro_Mono-STYLE.ttf %buildroot%_datadir/fonts/C64_Pro_Mono-STYLE.ttf
hardening-check -v --nobranchprotection build/src/%name
cat > %buildroot%_bindir/%name << EOF
#!/bin/bash
cd %_datadir/%name
./%name "\$@"
EOF
%files
%defattr(644, root, root, 755)
%_datadir/%name/*
%attr(755,root,root) %_bindir/%name
%attr(755,root,root) %_datadir/%name/%name
%_datadir/applications/%name.desktop
%_datadir/pixmaps/%name.xpm
%_datadir/fonts/*
%changelog
* Fri Mar 29 2024 samoht0 2.1.9
- history cleanup
* Sat May 27 2023 samoht0 2.1.9
- backport svn changes (r296-r298) using a patch