GyRCJF4kOiEiGyhCQ1J1YnkbJEIkSCQ3JEYkTxsoQlN0cmluZ1ZhbHVlUHRyGyRCJCwbKEJOVUwb
JEI9KkM8JDkka0pdPlokTyQ3JEYkJCReJDskcyQrJGkhIjI+JEsbKEJudWxsLXRlcm1pbmF0ZRsk
QiQ3JEYkSiQkJDMkSCRLJGgkakxkQmokLDUvJC0kayRKJGkkUCEiGyhCDQobJEIkPSRsJE8bKEJy
dWJ5LXBnGyRCJE4lUCUwJEckOSEjGyhCDQobJEIkSCRPJCQkKCEiGyhCUmFpbHMbJEIlIiVXJWok
LCRKJCQkSDpGOD09UE1oJEokJCRoJCYkRyRPJUYlOSVIJDkkayRLJGIkRCRpJCQkRyQ3JGckJiRN
JCchIxsoQg0KDQobJEIkNSRGISIbKEJudWwtdGVybWluYXRlGyRCJDUkbCRGJCQkSiQkGyhCU3Ry
aW5nGyRCJHI6biRrSn1LISRHJDkkLCEiGyhCUnVieRskQiVsJVklayRHJE8kIiRqJF4kOyRzIUok
SiQkJGgkJiRLJDckRiQkJGskTyQ6JEckOSFLISMbKEINChskQjNIRCUlaSUkJVYlaSVqJEckTzpu
JGskMyRIJCwwbDF+JEckLSEiTmMkKCRQMEoyPCROJGgkJiRKNDYkOCRHJDckZyQmJCshIxsoQg0K
DQpkaWZmIC0tZ2l0IGEvZXh0Ly10ZXN0LS9zdHJpbmcvbnVsdGVybS5jIGIvZXh0Ly10ZXN0LS9z
dHJpbmcvbnVsdGVybS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uNzhm
NWFmMw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZXh0Ly10ZXN0LS9zdHJpbmcvbnVsdGVybS5jDQpA
QCAtMCwwICsxLDQ0IEBADQorI2luY2x1ZGUgInJ1YnkvcnVieS5oIg0KKw0KKyNkZWZpbmUgU1RS
X05PRU1CRUQgICAgICBGTF9VU0VSMQ0KKyNkZWZpbmUgU1RSX0VNQkVEX1Aoc3RyKSAoIUZMX1RF
U1QoKHN0ciksIFNUUl9OT0VNQkVEKSkNCisNCisjZGVmaW5lIFNUUl9TRVRfRU1CRURfTEVOKHN0
ciwgbikgZG8geyBcDQorICAgIGxvbmcgdG1wX24gPSAobik7XA0KKyAgICBSQkFTSUMoc3RyKS0+
ZmxhZ3MgJj0gflJTVFJJTkdfRU1CRURfTEVOX01BU0s7XA0KKyAgICBSQkFTSUMoc3RyKS0+Zmxh
Z3MgfD0gKHRtcF9uKSA8PCBSU1RSSU5HX0VNQkVEX0xFTl9TSElGVDtcDQorfSB3aGlsZSAoMCkN
CisNCisjZGVmaW5lIFNUUl9TRVRfTEVOKHN0ciwgbikgZG8geyBcDQorICAgIGlmIChTVFJfRU1C
RURfUChzdHIpKSB7XA0KKyBTVFJfU0VUX0VNQkVEX0xFTigoc3RyKSwgKG4pKTtcDQorICAgIH1c
DQorICAgIGVsc2Uge1wNCisgUlNUUklORyhzdHIpLT5hcy5oZWFwLmxlbiA9IChuKTtcDQorICAg
IH1cDQorfSB3aGlsZSAoMCkNCisNCisvKiByZXR1cm4gY29kZXJhbmdlIHdpdGhvdXQgc2NhbiAq
Lw0KK3N0YXRpYyBWQUxVRQ0KK3N0cl9jaG9wX3dpdGhvdXRfdGVybWluYXRlKFZBTFVFIHN0cikN
Cit7DQorICAgIFNUUl9TRVRfTEVOKHN0ciwgUlNUUklOR19MRU4oc3RyKS0xKTsNCisgICAgcmV0
dXJuIFFuaWw7DQorfQ0KKw0KKy8qIHNjYW4gY29kZXJhbmdlIGFuZCByZXR1cm4gdGhlIHJlc3Vs
dCAqLw0KK3N0YXRpYyBWQUxVRQ0KK3N0cl9udWxsX3Rlcm1pbmF0ZWRfcChWQUxVRSBzdHIpDQor
ew0KKyAgICBpZiAoKHNpemVfdClSU1RSSU5HX0xFTihzdHIpID09IHJiX3N0cl9jYXBhY2l0eShz
dHIpKSByZXR1cm4gUWZhbHNlOw0KKyAgICBpZiAoKlJTVFJJTkdfRU5EKHN0cikgIT0gMCkgcmV0
dXJuIFFmYWxzZTsNCisNCisgICAgcmV0dXJuIFF0cnVlOw0KK30NCisNCit2b2lkDQorSW5pdF9u
dWx0ZXJtKFZBTFVFIGtsYXNzKQ0KK3sNCisgICAgcmJfZGVmaW5lX21ldGhvZChrbGFzcywgImNo
b3Bfd2l0aG91dF90ZXJtaW5hdGUiLA0Kc3RyX2Nob3Bfd2l0aG91dF90ZXJtaW5hdGUsIDApOw0K
KyAgICByYl9kZWZpbmVfbWV0aG9kKGtsYXNzLCAibnVsbF90ZXJtaW5hdGVkPyIsIHN0cl9udWxs
X3Rlcm1pbmF0ZWRfcCwgMCk7DQorfQ0KZGlmZiAtLWdpdCBhL3Rlc3QvLWV4dC0vc3RyaW5nL3Rl
c3RfbnVsdGVybS5yYg0KYi90ZXN0Ly1leHQtL3N0cmluZy90ZXN0X251bHRlcm0ucmINCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi5kZTVmMmJhDQotLS0gL2Rldi9udWxsDQor
KysgYi90ZXN0Ly1leHQtL3N0cmluZy90ZXN0X251bHRlcm0ucmINCkBAIC0wLDAgKzEsMTMgQEAN
CisjIGNvZGluZzogYXNjaWktOGJpdA0KK3JlcXVpcmUgJ3Rlc3QvdW5pdCcNCityZXF1aXJlICIt
dGVzdC0vc3RyaW5nL3N0cmluZyINCisNCitjbGFzcyBUZXN0X1N0cmluZ051bHRlcm0gPCBUZXN0
OjpVbml0OjpUZXN0Q2FzZQ0KKyAgZGVmIHRlc3RfdXNhc2NpaQ0KKyAgICBzdHIgPSBCdWc6OlN0
cmluZy5uZXcoImZvbyIpDQorICAgIGFzc2VydF9lcXVhbCB0cnVlLCBzdHIubnVsbF90ZXJtaW5h
dGVkPw0KKyAgICBzdHIuY2hvcF93aXRob3V0X3Rlcm1pbmF0ZQ0KKyAgICBhc3NlcnRfZXF1YWwg
ImZvIiwgc3RyDQorICAgIGFzc2VydF9lcXVhbCBmYWxzZSwgc3RyLm51bGxfdGVybWluYXRlZD8N
CisgIGVuZA0KK2VuZA0KDQoyMDE0GyRCRy8bKEIxMBskQjduGyhCNRskQkZ8GyhCIDIyOjIyIG1h
ZG9rYSB5YW1hbW90byA8eWFtYW1vdG9tYWRva2FAZ21haWwuY29tPjoNCj4gGyRCOzNLXCRIJGIk
JiQ3JF4kOSEjGyhCDQo+DQo+IHRydW5rGyRCJE4bKEJSdWJ5GyRCJEcbKEJQb3N0Z3JlU1FMGyRC
M0hEJSVpJSQlViVpJWokcjtIJEMkRiQkJEYhIhsoQm51bGwbJEI9KjtfJDUkbCRKJCRKODt6TnMk
LBsoQlBvc3RncmVTUUwbJEIzSEQlJWklJCVWJWklaiRLRU8kQyRGJCQkayQzJEgkSzUvMHgkOSRr
JSglaSE8JEtBeDZ4JDckXiQ3JD8hIxsoQg0KPiAbJEI7MjlNIScbKEIgaHR0cHM6Ly9naXRodWIu
Y29tL2dlZC9ydWJ5LXBnL3B1bGwvNQ0KPg0KPiBQb3N0Z3Jlc1NRTBskQjNIRCUlaSUkJVYlaSVq
JE4lPSE8JTkkcjgrJEYkJCRrJEghIhsoQlJ1YnkbJEIkKyRpSjg7ek5zJHI8aCRqPVAkOSROJEsb
KEJTdHJpbmdWYWx1ZVB0chskQiQsO0gkbyRsJEYkKiRqISIkMyRsJCw4NjB4JEAkSDtXJG8kbCRr
JE4kRyQ5JCwhIiRJJE4kaCQmJEo3UDBeJHI3UCQ/JDMkSCQsODYweCRHGyhCbnVsbBskQj0qO18k
NSRsJEokJEo4O3pOcyQsQDhALiQ1JGwkayQrJCwyciRpJDohIiQzJE4lKCVpITwkTjpGOD0kSzZs
TyskNyRGJCQkXiQ5ISMbKEINCj4NCj4gGyRCJDMkTiRoJCYkSiEiGyhCU3RyaW5nVmFsdWVDU3Ry
GyRCJEgbKEJTdHJpbmdWYWx1ZVB0chskQiROOjkwWyQsPVAkayRoJCYkSko4O3pOcyRyOm4ka0p9
SyEkLBsoQlJ1YnkbJEIlbCVZJWshIiRiJDckLyRPM0hEJSVpJSQlViVpJWolbCVZJWsbKEINCj4g
GyRCJEckIiRqJF4kOSRHJDckZyQmJCshKRsoQg0KPg0KDQoNCg0KLS0gDQpOQVJVU0UsIFl1aSAg
PG5hcnVzZUBhaXJlbWl4LmpwPg0K