[education/kstars] kstars/ekos/guide: AI Guide: tolerate transient star loss in calibration, weight progress by duration

Jasem Mutlaq <[email protected]> Tue, 4 Aug 2026 18:55:51 +0000 (UTC)
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
R2l0IGNvbW1pdCBkNDE5MTNlMzkyYWVlNjRhNzVkZjEwMzEyNWNlYzBmZDk4YTA2ZGUwIGJ5IEph
c2VtIE11dGxhcS4KQ29tbWl0dGVkIG9uIDA0LzA4LzIwMjYgYXQgMTg6NTUuClB1c2hlZCBieSBt
dXRsYXFqYSBpbnRvIGJyYW5jaCAnbWFzdGVyJy4KCkFJIEd1aWRlOiB0b2xlcmF0ZSB0cmFuc2ll
bnQgc3RhciBsb3NzIGluIGNhbGlicmF0aW9uLCB3ZWlnaHQgcHJvZ3Jlc3MgYnkgZHVyYXRpb24K
ClR3byBpbmRlcGVuZGVudCBmaXhlcyBmb3VuZCB3aGlsZSBydW5uaW5nIHRoZSBBSSBHdWlkZSBB
c3Npc3RhbnQgb24gYSByZWFsCnJpZyB3aXRoIHBvb3Igc2VlaW5nOgoKMS4gaW50ZXJuYWxndWlk
ZXIuY3BwLy5oOiBjYWxpYnJhdGlvbiBwcmV2aW91c2x5IGFib3J0ZWQgdW5jb25kaXRpb25hbGx5
IG9uCiAgIHRoZSB2ZXJ5IGZpcnN0IGxvc3Qtc3RhciBmcmFtZSAoaW50ZXJuYWxndWlkZXIuY3Bw
J3MgaXRlcmF0ZUNhbGlicmF0aW9uKCkpLAogICBkaXNjYXJkaW5nIGV2ZXJ5IHN0ZXAgYWxyZWFk
eSBjb21wbGV0ZWQgLS0gV2VzdC9FYXN0L05vcnRoIGNvdWxkIGFsbCBiZQogICBkb25lIGFuZCBT
b3V0aCB3b3VsZCBzdGlsbCB0aHJvdyBhbGwgb2YgaXQgYXdheSBvbiBvbmUgdHJhbnNpZW50IGJs
aXAuCiAgIFRoaXMgaXMgdW5saWtlIGd1aWRpbmcvZGl0aGVyaW5nLCB3aGljaCBhbHJlYWR5IHRv
bGVyYXRlCiAgIE1BWF9MT1NUX1NUQVJfVEhSRVNIT0xEIGNvbnNlY3V0aXZlIGxvc3QgZnJhbWVz
IGJlZm9yZSBnaXZpbmcgdXAuIEFkZHMgYQogICBkZWRpY2F0ZWQgbV9jYWxpYnJhdGlvblN0YXJM
b3N0Q291bnRlciAocmVzZXQgYXQgdGhlIHN0YXJ0IG9mIGVhY2ggZnJlc2gKICAgY2FsaWJyYXRp
b24gYXR0ZW1wdCkgc28gYSBsb3N0LXN0YXIgZnJhbWUgbm93IGp1c3Qgd2FpdHMgZm9yIHRoZSBu
ZXh0CiAgIGZyYW1lLCBvbmx5IGFib3J0aW5nIG9uY2UgdGhlIHNhbWUgdGhyZXNob2xkIGlzIGV4
Y2VlZGVkLiBNZWFuaW5nZnVsbHkKICAgcmVkdWNlcyBmdWxsIGNhbGlicmF0aW9uIHJlc3RhcnRz
IChlYWNoIGFuIGV4cGVuc2l2ZSBzZXZlcmFsLW1pbnV0ZQogICBXZXN0L0Vhc3QvTm9ydGgvU291
dGggc2VxdWVuY2UpIG9uIG5pZ2h0cyB3aXRoIHJvdWdoIHNlZWluZy4KCjIuIGFpZ3VpZGVwcm90
b2NvbC5jcHAvLmg6IHRoZSBBSSBHdWlkZSBBc3Npc3RhbnQncyBwcm9ncmVzcyBiYXIgd2FzIGEg
cmF3CiAgIHBoYXNlIGNvdW50IChtX1RvdGFsUGhhc2VzIC0gbV9QaGFzZXMuc2l6ZSgpKSwgd2hp
Y2ggYmFkbHkgdW5kZXJzdGF0ZXMKICAgaG93IG11Y2ggaXMgYWN0dWFsbHkgbGVmdCBmb3IgSGFy
bW9uaWMgRHJpdmU6IHRoZSAyNCBzaG9ydCBQSUQgQXV0by1UdW5lCiAgIHB1bHNlLXJlc3BvbnNl
IHBoYXNlcyBhcmUgODYlIG9mIHRoZSBwaGFzZSBjb3VudCBidXQgb25seSBhIGZyYWN0aW9uIG9m
CiAgIHRoZSByZWFsIGR1cmF0aW9uLCBzaW5jZSB0aGUgcmVtYWluaW5nIDQgcGhhc2VzIGluY2x1
ZGUgYSBzdGFuZGFsb25lCiAgIDE4MDBzIHN0YW5kYXJkLWd1aWRpbmcgcGhhc2UuIEEgcnVuIGNv
dWxkIHNob3cgIjc4JSIgd2l0aCB0aGUgbG9uZ2VzdAogICBwaGFzZSBzdGlsbCBlbnRpcmVseSBh
aGVhZC4gQWRkcyBlc3RpbWF0ZVBoYXNlU2Vjb25kcygpIChzZXR0bGUgKwogICByZXNwb25zZS1m
cmFtZXMqZ3VpZGUtZXhwb3N1cmUgKyBvdmVyaGVhZCBmb3IgcHVsc2UtcmVzcG9uc2UgcGhhc2Vz
LAogICBkdXJhdGlvbitzZXR0bGUgZm9yIGZyZWUtZHJpZnQvc3RhbmRhcmQtZ3VpZGluZyBwaGFz
ZXMsIHBsdXMgYSBzbGV3CiAgIGVzdGltYXRlIHdoZW4gbW92aW5nIHRvIGEgbmV3IHNreSBwb3Np
dGlvbikgYW5kIGVzdGltYXRlZEVsYXBzZWRTZWNvbmRzKCkKICAgKHN1bSBvZiBjb21wbGV0ZWQg
cGhhc2VzJyBlc3RpbWF0ZXMpLCBhbmQgcmVwb3J0cyBwcm9ncmVzcyBhcyBlc3RpbWF0ZWQKICAg
ZWxhcHNlZC90b3RhbCBzZWNvbmRzIGluc3RlYWQgb2YgcmF3IHBoYXNlIGNvdW50LgoKQ28tQXV0
aG9yZWQtQnk6IENsYXVkZSBTb25uZXQgNSA8bm9yZXBseUBhbnRocm9waWMuY29tPgoKTSAgKzcz
ICAgLTYgICAga3N0YXJzL2Vrb3MvZ3VpZGUvYWlndWlkZXByb3RvY29sLmNwcApNICArMTMgICAt
MCAgICBrc3RhcnMvZWtvcy9ndWlkZS9haWd1aWRlcHJvdG9jb2wuaApNICArMjIgICAtNiAgICBr
c3RhcnMvZWtvcy9ndWlkZS9pbnRlcm5hbGd1aWRlL2ludGVybmFsZ3VpZGVyLmNwcApNICArNiAg
ICAtMCAgICBrc3RhcnMvZWtvcy9ndWlkZS9pbnRlcm5hbGd1aWRlL2ludGVybmFsZ3VpZGVyLmgK
Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvZWR1Y2F0aW9uL2tzdGFycy8tL2NvbW1pdC9kNDE5MTNl
MzkyYWVlNjRhNzVkZjEwMzEyNWNlYzBmZDk4YTA2ZGUwCgpkaWZmIC0tZ2l0IGEva3N0YXJzL2Vr
b3MvZ3VpZGUvYWlndWlkZXByb3RvY29sLmNwcCBiL2tzdGFycy9la29zL2d1aWRlL2FpZ3VpZGVw
cm90b2NvbC5jcHAKaW5kZXggNGExYTIyNWE2My4uNTBjODllMzQyMiAxMDA2NDQKLS0tIGEva3N0
YXJzL2Vrb3MvZ3VpZGUvYWlndWlkZXByb3RvY29sLmNwcAorKysgYi9rc3RhcnMvZWtvcy9ndWlk
ZS9haWd1aWRlcHJvdG9jb2wuY3BwCkBAIC0zMjYsMTAgKzMyNiw2MiBAQCB2b2lkIEFJR3VpZGVQ
cm90b2NvbDo6c3RhcnQoY29uc3QgUVN0cmluZyAmbW91bnRUeXBlKQogICAgIGVtaXQgcHJvdG9j
b2xMb2coUVN0cmluZygiTG9hZGVkICUxIHBoYXNlcyBmb3IgJTIiKS5hcmcobV9QaGFzZXMuc2l6
ZSgpKS5hcmcobW91bnRTdHIpKTsKIAogICAgIG1fVG90YWxQaGFzZXMgPSBtX1BoYXNlcy5zaXpl
KCk7CisKKyAgICAvLyBQcm9ncmVzcyB1c2VkIHRvIGJlIHJlcG9ydGVkIGFzIGEgcmF3IHBoYXNl
IGNvdW50IChtX1RvdGFsUGhhc2VzIC0gbV9QaGFzZXMuc2l6ZSgpKSwKKyAgICAvLyB3aGljaCBp
cyBiYWRseSBtaXNsZWFkaW5nIGZvciBIYXJtb25pYyBEcml2ZTogdGhlIDI0IHNob3J0IFBJRCBB
dXRvLVR1bmUgcHVsc2UtcmVzcG9uc2UKKyAgICAvLyBwaGFzZXMgKGVhY2ggfjEgbWludXRlKSBh
cmUgODYlIG9mIHRoZSBwaGFzZSBDT1VOVCBidXQgb25seSBhIGZyYWN0aW9uIG9mIHRoZSBhY3R1
YWwKKyAgICAvLyBwcm90b2NvbCBkdXJhdGlvbiwgc2luY2UgdGhlIHJlbWFpbmluZyA0IHBoYXNl
cyBpbmNsdWRlIGEgc3RhbmRhbG9uZSAxODAwcworICAgIC8vIHN0YW5kYXJkLWd1aWRpbmcgcGhh
c2UuIFRoYXQgbWFkZSB0aGUgcHJvZ3Jlc3MgYmFyIHJlYWQgIjc4JSIgd2l0aCB0aGUgbG9uZ2Vz
dCBwaGFzZQorICAgIC8vIHN0aWxsIGVudGlyZWx5IGFoZWFkLiBXZWlnaHQgYnkgZXN0aW1hdGVk
IGR1cmF0aW9uIGluc3RlYWQgc28gdGhlIHBlcmNlbnRhZ2UgaXMKKyAgICAvLyBhY3R1YWxseSBy
ZXByZXNlbnRhdGl2ZSBvZiB0aW1lIHJlbWFpbmluZywgbm90IHBoYXNlIGNvdW50LgorICAgIG1f
UGhhc2VFc3RpbWF0ZWRTZWNvbmRzLmNsZWFyKCk7CisgICAgbV9QaGFzZUVzdGltYXRlZFNlY29u
ZHMucmVzZXJ2ZShtX1BoYXNlcy5zaXplKCkpOworICAgIG1fVG90YWxFc3RpbWF0ZWRTZWNvbmRz
ID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fUGhhc2VzLnNpemUoKTsgKytpKQorICAg
IHsKKyAgICAgICAgY29uc3QgYm9vbCBuZXdQb3NpdGlvbiA9IChpID09IDApCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8fCBtX1BoYXNlc1tpXS50YXJnZXRBbHQgIT0gbV9QaGFz
ZXNbaSAtIDFdLnRhcmdldEFsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwg
bV9QaGFzZXNbaV0uYXpPZmZzZXQgIT0gbV9QaGFzZXNbaSAtIDFdLmF6T2Zmc2V0OworICAgICAg
ICBjb25zdCBpbnQgZXN0ID0gZXN0aW1hdGVQaGFzZVNlY29uZHMobV9QaGFzZXNbaV0sIG5ld1Bv
c2l0aW9uKTsKKyAgICAgICAgbV9QaGFzZUVzdGltYXRlZFNlY29uZHMuYXBwZW5kKGVzdCk7Cisg
ICAgICAgIG1fVG90YWxFc3RpbWF0ZWRTZWNvbmRzICs9IGVzdDsKKyAgICB9CisKICAgICBtX1N0
YXRlID0gU1RBVEVfUFJFQ0hFQ0s7CiAgICAgbV9Qcm90b2NvbFRpbWVyLnN0YXJ0KDEwMDApOwog
fQogCisvLyBSb3VnaCBwZXItcGhhc2UgZHVyYXRpb24gZXN0aW1hdGUgdXNlZCBvbmx5IHRvIHdl
aWdodCB0aGUgcHJvZ3Jlc3MgYmFyIChzZWUgc3RhcnQoKSk7CisvLyBub3QgYSBzY2hlZHVsaW5n
IG9yIHRpbWVvdXQgdmFsdWUsIHNvIGl0IGRvZXNuJ3QgbmVlZCB0byBiZSBleGFjdCwganVzdCBw
cm9wb3J0aW9uYXRlLgoraW50IEFJR3VpZGVQcm90b2NvbDo6ZXN0aW1hdGVQaGFzZVNlY29uZHMo
Y29uc3QgUHJvdG9jb2xQaGFzZSAmcGhhc2UsIGJvb2wgbmV3UG9zaXRpb24pIGNvbnN0Cit7Cisg
ICAgY29uc3RleHByIGludCBTTEVXX0VTVElNQVRFX1NFQ09ORFMgPSAzMDsKKyAgICAvLyBTZXR0
bGUvZnJhbWUtYm91bmRhcnktd2FpdC9wdWxzZS1zZXR0bGUgb3ZlcmhlYWQgYXJvdW5kIHRoZSBh
Y3R1YWwgcmVzcG9uc2UtZnJhbWUKKyAgICAvLyByZWNvcmRpbmc7IG5vdCBpdHNlbGYgdGltZWQg
YW55d2hlcmUsIGVzdGltYXRlZCBmcm9tIG9ic2VydmVkIHJlYWwtcnVuIHB1bHNlLXJlc3BvbnNl
CisgICAgLy8gZHVyYXRpb25zICh+NTUtNjBzIGF0IDEyIHJlc3BvbnNlIGZyYW1lcywgMTBzIHNl
dHRsZSwgfjEtMnMgZ3VpZGUgZXhwb3N1cmUpLgorICAgIGNvbnN0ZXhwciBpbnQgUFVMU0VfRklY
RURfT1ZFUkhFQURfU0VDT05EUyA9IDE1OworICAgIGNvbnN0IGRvdWJsZSBndWlkZUV4cG9zdXJl
ID0gKG1fR3VpZGUgJiYgbV9HdWlkZS0+ZXhwb3N1cmUoKSA+IDAuMCkgPyBtX0d1aWRlLT5leHBv
c3VyZSgpIDogMi4wOworCisgICAgaW50IHNlY29uZHMgPSBuZXdQb3NpdGlvbiA/IFNMRVdfRVNU
SU1BVEVfU0VDT05EUyA6IDA7CisgICAgaWYgKHBoYXNlLnB1bHNlUmVzcG9uc2UpCisgICAgICAg
IHNlY29uZHMgKz0gcGhhc2Uuc2V0dGxlU2Vjb25kcyArIHN0YXRpY19jYXN0PGludD4oc3RkOjps
cm91bmQocGhhc2UucmVzcG9uc2VGcmFtZXMgKiBndWlkZUV4cG9zdXJlKSkKKyAgICAgICAgICAg
ICAgICAgICArIFBVTFNFX0ZJWEVEX09WRVJIRUFEX1NFQ09ORFM7CisgICAgZWxzZQorICAgICAg
ICBzZWNvbmRzICs9IHBoYXNlLmR1cmF0aW9uU2Vjb25kcyArIHBoYXNlLnNldHRsZVNlY29uZHM7
CisgICAgcmV0dXJuIHN0ZDo6bWF4KHNlY29uZHMsIDEpOworfQorCisvLyBTdW0gb2YgZXN0aW1h
dGVQaGFzZVNlY29uZHMoKSBmb3IgZXZlcnkgcGhhc2UgYWxyZWFkeSBjb21wbGV0ZWQgKHJlbW92
ZWQgZnJvbSBtX1BoYXNlcykuCisvLyBVc2VkIGFzIHRoZSBwcm9ncmVzcy1iYXIgbnVtZXJhdG9y
IGluc3RlYWQgb2YgYSByYXcgcGhhc2UgY291bnQ7IHNlZSBzdGFydCgpLgoraW50IEFJR3VpZGVQ
cm90b2NvbDo6ZXN0aW1hdGVkRWxhcHNlZFNlY29uZHMoKSBjb25zdAoreworICAgIGNvbnN0IGlu
dCBjb21wbGV0ZWQgPSBtX1RvdGFsUGhhc2VzIC0gbV9QaGFzZXMuc2l6ZSgpOworICAgIGludCBz
dW0gPSAwOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29tcGxldGVkICYmIGkgPCBtX1BoYXNl
RXN0aW1hdGVkU2Vjb25kcy5zaXplKCk7ICsraSkKKyAgICAgICAgc3VtICs9IG1fUGhhc2VFc3Rp
bWF0ZWRTZWNvbmRzW2ldOworICAgIHJldHVybiBzdW07Cit9CisKIHZvaWQgQUlHdWlkZVByb3Rv
Y29sOjpyZXF1ZXN0VHJhaW5pbmcoKQogewogICAgIGlmIChtX1N5c0lkRGF0YVsic2Vzc2lvbnMi
XS50b0FycmF5KCkuaXNFbXB0eSgpKQpAQCAtNjQ0LDcgKzY5Niw3IEBAIHZvaWQgQUlHdWlkZVBy
b3RvY29sOjpwcm9jZXNzUHJvdG9jb2woKQogICAgICAgICBjYXNlIFNUQVRFX1NFVFRMSU5HOgog
ICAgICAgICAgICAgaWYgKG1fU2V0dGxpbmdUaW1lciA+IDApCiAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgZW1pdCBwcm90b2NvbFByb2dyZXNzKG1fVG90YWxQaGFzZXMgLSBtX1BoYXNl
cy5zaXplKCksIG1fVG90YWxQaGFzZXMsCisgICAgICAgICAgICAgICAgZW1pdCBwcm90b2NvbFBy
b2dyZXNzKGVzdGltYXRlZEVsYXBzZWRTZWNvbmRzKCksIG1fVG90YWxFc3RpbWF0ZWRTZWNvbmRz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRU3RyaW5nKCJTZXR0bGlu
Zy4uLiAlMXMiKS5hcmcobV9TZXR0bGluZ1RpbWVyKSk7CiAgICAgICAgICAgICAgICAgbV9TZXR0
bGluZ1RpbWVyLS07CiAgICAgICAgICAgICB9CkBAIC03MTYsNyArNzY4LDcgQEAgdm9pZCBBSUd1
aWRlUHJvdG9jb2w6OnByb2Nlc3NQcm90b2NvbCgpCiAKICAgICAgICAgICAgIGlmIChtX0d1aWRl
ICYmIG1fR3VpZGUtPnN0YXR1cygpICE9IEdVSURFX0dVSURJTkcgJiYgbV9HdWlkZS0+c3RhdHVz
KCkgIT0gR1VJREVfQUJPUlRFRCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBlbWl0
IHByb3RvY29sUHJvZ3Jlc3MobV9Ub3RhbFBoYXNlcyAtIG1fUGhhc2VzLnNpemUoKSwgbV9Ub3Rh
bFBoYXNlcywKKyAgICAgICAgICAgICAgICBlbWl0IHByb3RvY29sUHJvZ3Jlc3MoZXN0aW1hdGVk
RWxhcHNlZFNlY29uZHMoKSwgbV9Ub3RhbEVzdGltYXRlZFNlY29uZHMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJXYWl0aW5nIGZvciBHdWlkZXIgdG8gY2FsaWJyYXRl
L3N0YXJ0Li4uIik7CiAgICAgICAgICAgICAgICAgbV9GcmFtZVRpbWVyLnN0YXJ0KCk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CkBAIC03NzMsNyArODI1LDcgQEAgdm9pZCBBSUd1aWRlUHJvdG9j
b2w6OnByb2Nlc3NQcm90b2NvbCgpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZW1pdCBwcm90b2NvbFByb2dyZXNzKG1fVG90
YWxQaGFzZXMgLSBtX1BoYXNlcy5zaXplKCksIG1fVG90YWxQaGFzZXMsCisgICAgICAgICAgICAg
ICAgZW1pdCBwcm90b2NvbFByb2dyZXNzKGVzdGltYXRlZEVsYXBzZWRTZWNvbmRzKCksIG1fVG90
YWxFc3RpbWF0ZWRTZWNvbmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBRU3RyaW5nKCJDYXB0dXJpbmcgRGF0YS4uLiAlMXMgcmVtYWluaW5nIikuYXJnKG1fQ2FwdHVy
ZVRpbWVyKSk7CiAgICAgICAgICAgICAgICAgbV9DYXB0dXJlVGltZXItLTsKICAgICAgICAgICAg
ICAgICBtX1NlZ21lbnRTZWNvbmRzKys7CkBAIC04NDEsNyArODkzLDcgQEAgdm9pZCBBSUd1aWRl
UHJvdG9jb2w6OnByb2Nlc3NQcm90b2NvbCgpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgIGVtaXQgcHJvdG9jb2xQcm9ncmVzcyhtX1RvdGFsUGhh
c2VzIC0gbV9QaGFzZXMuc2l6ZSgpLCBtX1RvdGFsUGhhc2VzLAorICAgICAgICAgICAgZW1pdCBw
cm90b2NvbFByb2dyZXNzKGVzdGltYXRlZEVsYXBzZWRTZWNvbmRzKCksIG1fVG90YWxFc3RpbWF0
ZWRTZWNvbmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFTdHJpbmcoIlJl
LWNlbnRlcmluZyBzdGFyLi4uIChSQSAlMVwiIERFQyAlMlwiKSIpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLmFyZyhtX0xhc3RSQUVyckFyY3NlYywgMCwgJ2YnLCAxKS5hcmco
bV9MYXN0REVDRXJyQXJjc2VjLCAwLCAnZicsIDEpKTsKICAgICAgICAgICAgIG1fUmVjZW50ZXJU
aW1lci0tOwpAQCAtODY3LDYgKzkxOSwxOSBAQCB2b2lkIEFJR3VpZGVQcm90b2NvbDo6cHJvY2Vz
c1Byb3RvY29sKCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAobV9HdWlkZS0+
c3RhdHVzKCkgPT0gR1VJREVfSURMRSB8fCBtX0d1aWRlLT5zdGF0dXMoKSA9PSBHVUlERV9BQk9S
VEVEKQogICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZ3VpZGUoKSBp
dHNlbGYgdGFrZXMgYSBmZXcgc2Vjb25kcyB0byB2aXNpYmx5IGxlYXZlIElETEUvQUJPUlRFRCAo
c3RhcgorICAgICAgICAgICAgICAgICAgICAvLyBkZXRlY3Rpb24sIGZpcnN0IGNhcHR1cmUsIGV0
Yy4gYmVmb3JlIHRoZSBzdGF0ZSBtYWNoaW5lIHJlYWNoZXMKKyAgICAgICAgICAgICAgICAgICAg
Ly8gQ0FMSUJSQVRJTkcpOyBjaGVja2luZyBldmVyeSB0aWNrIHdpdGggbm8gZ3JhY2UgcGVyaW9k
IG1lYW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgLy8gYnJhbmNoIHJlLWNhbGxlZCBndWlk
ZSgpIG9uIG5lYXJseSBldmVyeSB0aWNrIHJpZ2h0IGFmdGVyIHRoZSBjYWxsIHRoYXQKKyAgICAg
ICAgICAgICAgICAgICAgLy8gd2FzIGFjdHVhbGx5IHdvcmtpbmcsIGJ1cm5pbmcgYWxsIDMgcmV0
cmllcyBhbmQgc2tpcHBpbmcgdGhlIHB1bHNlCisgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9y
ZSBjYWxpYnJhdGlvbiBoYWQgYSBjaGFuY2UgdG8gc2hvdyB1cCBhcyBhIHN0YXR1cyBjaGFuZ2Uu
IENvbmZpcm1lZAorICAgICAgICAgICAgICAgICAgICAvLyBpbiBhIHJlYWwgcnVuOiBjYWxpYnJh
dGlvbiBnZW51aW5lbHkgc3RhcnRlZCBhbmQgY29tcGxldGVkIGEgZmV3IHNlY29uZHMKKyAgICAg
ICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIHJldHJpZXMgaGFkIGFscmVhZHkgZ2l2ZW4gdXAg
YW5kIG1vdmVkIG9uLgorICAgICAgICAgICAgICAgICAgICBpZiAobV9HdWlkZUNhbGxHcmFjZVRp
Y2tzID4gMCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg
bV9HdWlkZUNhbGxHcmFjZVRpY2tzLS07CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAobV9BYm9ydFJl
dHJpZXMgPj0gMykKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgZW1pdCBwcm90b2NvbExvZygiUHVsc2UgUmVzcG9uc2U6IGd1aWRlIGNhbGlicmF0aW9uIGZh
aWxlZCByZXBlYXRlZGx5IC0tIHNraXBwaW5nIHRoaXMgcHVsc2UuIik7CkBAIC04NzgsNiArOTQz
LDcgQEAgdm9pZCBBSUd1aWRlUHJvdG9jb2w6OnByb2Nlc3NQcm90b2NvbCgpCiAgICAgICAgICAg
ICAgICAgICAgIG1fQWJvcnRSZXRyaWVzKys7CiAgICAgICAgICAgICAgICAgICAgIGVtaXQgcHJv
dG9jb2xMb2coIlB1bHNlIFJlc3BvbnNlOiBzdGFydGluZyBndWlkZSBjYWxpYnJhdGlvbi9sb2Nr
IGJlZm9yZSBmaXJpbmcgdGVzdCBwdWxzZXMuLi4iKTsKICAgICAgICAgICAgICAgICAgICAgbV9H
dWlkZS0+Z3VpZGUoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9HdWlkZUNhbGxHcmFjZVRpY2tz
ID0gMTU7IC8vIGxldCBjYWxpYnJhdGlvbiBhY3R1YWxseSBzdGFydCBiZWZvcmUgcmUtY2hlY2tp
bmcKICAgICAgICAgICAgICAgICAgICAgbV9QdWxzZVdhdGNoZG9nID0gMzAwOyAvLyB+NSBtaW51
dGVzIGF0IDFIeiBmb3IgY2FsaWJyYXRpb24gdG8gY29tcGxldGUKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9QdWxzZVdhdGNoZG9nID4gMCkKQEAgLTg5Nyw2
ICs5NjMsNyBAQCB2b2lkIEFJR3VpZGVQcm90b2NvbDo6cHJvY2Vzc1Byb3RvY29sKCkKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgbV9BYm9ydFJldHJpZXMgPSAwOworICAgICAgICAgICAg
bV9HdWlkZUNhbGxHcmFjZVRpY2tzID0gMDsKICAgICAgICAgICAgIFByb3RvY29sUGhhc2UgcGhh
c2UgPSBtX1BoYXNlcy5maXJzdCgpOwogICAgICAgICAgICAgZW1pdCBwcm90b2NvbExvZyhRU3Ry
aW5nKCJQdWxzZSBSZXNwb25zZTogJTEgJTIgJTNtcyDigJQgcHJlcGFyaW5nLi4uIikKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLmFyZyhwaGFzZS5wdWxzZUF4aXMsIHBoYXNlLnB1bHNl
RGlyZWN0aW9uKS5hcmcocGhhc2UucHVsc2VNYWduaXR1ZGVNcykpOwpAQCAtOTQ5LDcgKzEwMTYs
NyBAQCB2b2lkIEFJR3VpZGVQcm90b2NvbDo6cHJvY2Vzc1Byb3RvY29sKCkKICAgICAgICAgICAg
IGNvbnN0IGJvb2wgY29tcGxldGVkICAgPSAobV9QdWxzZUZyYW1lQ291bnQgPj0gcGhhc2UucmVz
cG9uc2VGcmFtZXMpOwogICAgICAgICAgICAgY29uc3QgYm9vbCBpbnRlcnJ1cHRlZCA9ICghY29t
cGxldGVkICYmIChndWlkZXJBYm9ydGVkIHx8IG1fUHVsc2VXYXRjaGRvZyA8PSAwKSk7CiAKLSAg
ICAgICAgICAgIGVtaXQgcHJvdG9jb2xQcm9ncmVzcyhtX1RvdGFsUGhhc2VzIC0gbV9QaGFzZXMu
c2l6ZSgpLCBtX1RvdGFsUGhhc2VzLAorICAgICAgICAgICAgZW1pdCBwcm90b2NvbFByb2dyZXNz
KGVzdGltYXRlZEVsYXBzZWRTZWNvbmRzKCksIG1fVG90YWxFc3RpbWF0ZWRTZWNvbmRzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFTdHJpbmcoIlJlY29yZGluZyBwdWxzZSBy
ZXNwb25zZTogJTEvJTIgZnJhbWVzIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAuYXJnKG1fUHVsc2VGcmFtZUNvdW50KS5hcmcocGhhc2UucmVzcG9uc2VGcmFtZXMpKTsKIApA
QCAtMTAyNCw3ICsxMDkxLDcgQEAgdm9pZCBBSUd1aWRlUHJvdG9jb2w6OnByb2Nlc3NQcm90b2Nv
bCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChtX1B1bHNlU2V0dGxlVGltZXIgPiAwKQog
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGVtaXQgcHJvdG9jb2xQcm9ncmVzcyhtX1Rv
dGFsUGhhc2VzIC0gbV9QaGFzZXMuc2l6ZSgpLCBtX1RvdGFsUGhhc2VzLAorICAgICAgICAgICAg
ICAgIGVtaXQgcHJvdG9jb2xQcm9ncmVzcyhlc3RpbWF0ZWRFbGFwc2VkU2Vjb25kcygpLCBtX1Rv
dGFsRXN0aW1hdGVkU2Vjb25kcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUVN0cmluZygiUHVsc2Ugc2V0dGxpbmcuLi4gJTFzIikuYXJnKG1fUHVsc2VTZXR0bGVUaW1l
cikpOwogICAgICAgICAgICAgICAgIG1fUHVsc2VTZXR0bGVUaW1lci0tOwogICAgICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEva3N0YXJzL2Vrb3MvZ3VpZGUvYWlndWlkZXByb3RvY29sLmggYi9rc3Rh
cnMvZWtvcy9ndWlkZS9haWd1aWRlcHJvdG9jb2wuaAppbmRleCAxZmQ5ZjkxNmQxLi4wMWI2NDI3
OTFjIDEwMDY0NAotLS0gYS9rc3RhcnMvZWtvcy9ndWlkZS9haWd1aWRlcHJvdG9jb2wuaAorKysg
Yi9rc3RhcnMvZWtvcy9ndWlkZS9haWd1aWRlcHJvdG9jb2wuaApAQCAtMTcsNiArMTcsNyBAQAog
I2luY2x1ZGUgPFFFbGFwc2VkVGltZXI+CiAjaW5jbHVkZSA8UUxpc3Q+CiAjaW5jbHVkZSA8UVN0
cmluZz4KKyNpbmNsdWRlIDxRVmVjdG9yPgogCiBuYW1lc3BhY2UgRWtvcwogewpAQCAtMTYwLDYg
KzE2MSwxNSBAQCBjbGFzcyBBSUd1aWRlUHJvdG9jb2wgOiBwdWJsaWMgUU9iamVjdAogICAgICAg
ICAvLyBzaG9ydGVyIHRoYW4gaXQuCiAgICAgICAgIHZvaWQgZmx1c2hQaGFzZVNlZ21lbnQoY29u
c3QgUHJvdG9jb2xQaGFzZSAmcGhhc2UsIGludCByZWNvcmRlZER1cmF0aW9uKTsKIAorICAgICAg
ICAvLyBSb3VnaCBwZXItcGhhc2UgZHVyYXRpb24gZXN0aW1hdGUgKHNlY29uZHMpLCB1c2VkIG9u
bHkgdG8gd2VpZ2h0IHRoZSBwcm9ncmVzcyBiYXIKKyAgICAgICAgLy8gYnkgZXhwZWN0ZWQgdGlt
ZSByYXRoZXIgdGhhbiByYXcgcGhhc2UgY291bnQ7IHNlZSBzdGFydCgpJ3MgY29tbWVudCBmb3Ig
d2h5IGEKKyAgICAgICAgLy8gY291bnQtYmFzZWQgcHJvZ3Jlc3MgYmFyIGlzIGJhZGx5IG1pc2xl
YWRpbmcgZm9yIEhhcm1vbmljIERyaXZlIHNwZWNpZmljYWxseS4KKyAgICAgICAgaW50IGVzdGlt
YXRlUGhhc2VTZWNvbmRzKGNvbnN0IFByb3RvY29sUGhhc2UgJnBoYXNlLCBib29sIG5ld1Bvc2l0
aW9uKSBjb25zdDsKKyAgICAgICAgLy8gU3VtIG9mIGVzdGltYXRlUGhhc2VTZWNvbmRzKCkgZm9y
IGV2ZXJ5IHBoYXNlIGNvbXBsZXRlZCBzbyBmYXIuCisgICAgICAgIGludCBlc3RpbWF0ZWRFbGFw
c2VkU2Vjb25kcygpIGNvbnN0OworICAgICAgICBRVmVjdG9yPGludD4gbV9QaGFzZUVzdGltYXRl
ZFNlY29uZHM7CisgICAgICAgIGludCBtX1RvdGFsRXN0aW1hdGVkU2Vjb25kcyB7IDAgfTsKKwog
ICAgICAgICBQcm90b2NvbFN0YXRlIG1fU3RhdGUgeyBTVEFURV9JRExFIH07CiAgICAgICAgIFFU
aW1lciBtX1Byb3RvY29sVGltZXI7CiAgICAgICAgIGRvdWJsZSBtX1RhcmdldEF6IHsgMCB9OwpA
QCAtMTY3LDYgKzE3Nyw5IEBAIGNsYXNzIEFJR3VpZGVQcm90b2NvbCA6IHB1YmxpYyBRT2JqZWN0
CiAgICAgICAgIGludCBtX1NldHRsaW5nVGltZXIgeyAwIH07CiAgICAgICAgIGludCBtX0NhcHR1
cmVUaW1lciB7IDAgfTsKICAgICAgICAgaW50IG1fQWJvcnRSZXRyaWVzIHsgMCB9OworICAgICAg
ICAvLyBUaWNrcyB0byB3YWl0IGFmdGVyIGNhbGxpbmcgbV9HdWlkZS0+Z3VpZGUoKSBiZWZvcmUg
dHJ1c3RpbmcgYSBzdGlsbC1JRExFL0FCT1JURUQKKyAgICAgICAgLy8gc3RhdHVzIGFzIGEgcmVh
bCBmYWlsdXJlIHdvcnRoIHJldHJ5aW5nIC0tIHNlZSBTVEFURV9QVUxTRV9SRVNQT05TRV9JTklU
LgorICAgICAgICBpbnQgbV9HdWlkZUNhbGxHcmFjZVRpY2tzIHsgMCB9OwogICAgICAgICBib29s
IG1fRnJlZURyaWZ0T3ZlcmZsb3cgeyBmYWxzZSB9OwogICAgICAgICBib29sIG1fUGhhc2VBYm9y
dGVkIHsgZmFsc2UgfTsKICAgICAgICAgaW50IG1fU2VnbWVudFNlY29uZHMgeyAwIH07ICAgICAg
Ly8vPCBzZWNvbmRzIGNhcHR1cmVkIGluIHRoZSBjdXJyZW50IGRyaWZ0IHNlZ21lbnQKZGlmZiAt
LWdpdCBhL2tzdGFycy9la29zL2d1aWRlL2ludGVybmFsZ3VpZGUvaW50ZXJuYWxndWlkZXIuY3Bw
IGIva3N0YXJzL2Vrb3MvZ3VpZGUvaW50ZXJuYWxndWlkZS9pbnRlcm5hbGd1aWRlci5jcHAKaW5k
ZXggOTZjZDQzZThiMy4uYmZjYTUwZWRiNCAxMDA2NDQKLS0tIGEva3N0YXJzL2Vrb3MvZ3VpZGUv
aW50ZXJuYWxndWlkZS9pbnRlcm5hbGd1aWRlci5jcHAKKysrIGIva3N0YXJzL2Vrb3MvZ3VpZGUv
aW50ZXJuYWxndWlkZS9pbnRlcm5hbGd1aWRlci5jcHAKQEAgLTcxMCw2ICs3MTAsNyBAQCBib29s
IEludGVybmFsR3VpZGVyOjpjYWxpYnJhdGUoKQogICAgICAgICAgICAgbmV3IENhbGlicmF0aW9u
UHJvY2VzcyhjYWxpYnJhdGlvblN0YXJ0WCwgY2FsaWJyYXRpb25TdGFydFksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICFPcHRpb25zOjp0d29BeGlzRW5hYmxlZCgpKSk7CiAg
ICAgICAgIHN0YXRlID0gR1VJREVfQ0FMSUJSQVRJTkc7CisgICAgICAgIG1fY2FsaWJyYXRpb25T
dGFyTG9zdENvdW50ZXIgPSAwOwogICAgICAgICBRX0VNSVQgbmV3U3RhdHVzKEdVSURFX0NBTElC
UkFUSU5HKTsKICAgICB9CiAKQEAgLTc3NiwxNCArNzc3LDI5IEBAIHZvaWQgSW50ZXJuYWxHdWlk
ZXI6Oml0ZXJhdGVDYWxpYnJhdGlvbigpCiAKICAgICAgICAgaWYgKHBtYXRoLT5pc1N0YXJMb3N0
KCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIFFfRU1JVCBuZXdMb2coaTE4bigiTG9zdCB0cmFj
ayBvZiB0aGUgZ3VpZGUgc3Rhci4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJU
cnkgaW5jcmVhc2luZyBiaW5uaW5nLCBzcXVhcmUgc2l6ZSBvciByZWR1Y2luZyBwdWxzZSBkdXJh
dGlvbi4iKSk7Ci0gICAgICAgICAgICBRX0VNSVQgbmV3U3RhdHVzKEVrb3M6OkdVSURFX0NBTElC
UkFUSU9OX0VSUk9SKTsKLSAgICAgICAgICAgIFFfRU1JVCBjYWxpYnJhdGlvblVwZGF0ZShHdWlk
ZUludGVyZmFjZTo6Q0FMSUJSQVRJT05fTUVTU0FHRV9PTkxZLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGkxOG4oIkd1aWRlIFN0YXIgbG9zdC4iKSk7Ci0gICAgICAgICAg
ICByZXNldCgpOworICAgICAgICAgICAgLy8gQSBzaW5nbGUgbG9zdC1zdGFyIGZyYW1lIHVzZWQg
dG8gYWJvcnQgY2FsaWJyYXRpb24gdW5jb25kaXRpb25hbGx5LCBkaXNjYXJkaW5nCisgICAgICAg
ICAgICAvLyBldmVyeSBzdGVwIGFscmVhZHkgY29tcGxldGVkIChXZXN0L0Vhc3QvTm9ydGggY291
bGQgYWxsIGJlIGRvbmUgYW5kIFNvdXRoCisgICAgICAgICAgICAvLyB3b3VsZCBzdGlsbCB0aHJv
dyBhbGwgb2YgaXQgYXdheSBvbiBvbmUgYmFkIGZyYW1lKS4gVG9sZXJhdGUgdGhlIHNhbWUgbnVt
YmVyCisgICAgICAgICAgICAvLyBvZiBjb25zZWN1dGl2ZSBtaXNzZXMgZ3VpZGluZy9kaXRoZXJp
bmcgYWxyZWFkeSBkbyBiZWZvcmUgZ2l2aW5nIHVwLCBzaW5jZSBhCisgICAgICAgICAgICAvLyB0
cmFuc2llbnQgYmxpcCAoc2VlaW5nLCBhIHBhc3NpbmcgY2xvdWQpIGlzIGNvbW1vbiBhbmQgY2Fs
aWJyYXRpb24gaXRzZWxmCisgICAgICAgICAgICAvLyB0YWtlcyBsb25nIGVub3VnaCB0aGF0IHJl
c3RhcnRpbmcgaXQgZnJvbSBzY3JhdGNoIGVhY2ggdGltZSBpcyBleHBlbnNpdmUuCisgICAgICAg
ICAgICBpZiAoKyttX2NhbGlicmF0aW9uU3Rhckxvc3RDb3VudGVyID4gTUFYX0xPU1RfU1RBUl9U
SFJFU0hPTEQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcUNEZWJ1ZyhLU1RBUlNf
RUtPU19HVUlERSkgPDwgIlRvbyBtYW55IGNvbnNlY3V0aXZlIGxvc3Qgc3RhcnMgZHVyaW5nIGNh
bGlicmF0aW9uLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCBtX2NhbGlicmF0aW9uU3Rhckxvc3RDb3VudGVyIDw8ICJBYm9ydGluZy4iOworICAgICAgICAg
ICAgICAgIFFfRU1JVCBuZXdMb2coaTE4bigiTG9zdCB0cmFjayBvZiB0aGUgZ3VpZGUgc3Rhci4g
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVHJ5IGluY3JlYXNpbmcgYmlu
bmluZywgc3F1YXJlIHNpemUgb3IgcmVkdWNpbmcgcHVsc2UgZHVyYXRpb24uIikpOworICAgICAg
ICAgICAgICAgIFFfRU1JVCBuZXdTdGF0dXMoRWtvczo6R1VJREVfQ0FMSUJSQVRJT05fRVJST1Ip
OworICAgICAgICAgICAgICAgIFFfRU1JVCBjYWxpYnJhdGlvblVwZGF0ZShHdWlkZUludGVyZmFj
ZTo6Q0FMSUJSQVRJT05fTUVTU0FHRV9PTkxZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpMThuKCJHdWlkZSBTdGFyIGxvc3QuIikpOworICAgICAgICAgICAgICAg
IHJlc2V0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcUNEZWJ1ZyhLU1RBUlNfRUtPU19HVUlERSkgPDwgIkNhbGlicmF0aW9uIGxvc3Qgc3Rh
ciwgdHJ5IiA8PCBtX2NhbGlicmF0aW9uU3Rhckxvc3RDb3VudGVyCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8PCAib2YiIDw8IHN0YXRpY19jYXN0PGludD4oTUFYX0xP
U1RfU1RBUl9USFJFU0hPTEQpIDw8ICI7IHdhaXRpbmcgZm9yIG5leHQgZnJhbWUuIjsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBtX2NhbGlicmF0aW9uU3Rhckxvc3RD
b3VudGVyID0gMDsKICAgICB9CiAgICAgZG91YmxlIHN0YXJYLCBzdGFyWTsKICAgICBwbWF0aC0+
Z2V0U3RhclNjcmVlblBvc2l0aW9uKCZzdGFyWCwgJnN0YXJZKTsKZGlmZiAtLWdpdCBhL2tzdGFy
cy9la29zL2d1aWRlL2ludGVybmFsZ3VpZGUvaW50ZXJuYWxndWlkZXIuaCBiL2tzdGFycy9la29z
L2d1aWRlL2ludGVybmFsZ3VpZGUvaW50ZXJuYWxndWlkZXIuaAppbmRleCBkNTEyNDIyYTdiLi5l
YWRkOTVkOTM2IDEwMDY0NAotLS0gYS9rc3RhcnMvZWtvcy9ndWlkZS9pbnRlcm5hbGd1aWRlL2lu
dGVybmFsZ3VpZGVyLmgKKysrIGIva3N0YXJzL2Vrb3MvZ3VpZGUvaW50ZXJuYWxndWlkZS9pbnRl
cm5hbGd1aWRlci5oCkBAIC0xOTYsNiArMTk2LDEyIEBAIGNsYXNzIEludGVybmFsR3VpZGVyIDog
cHVibGljIEd1aWRlSW50ZXJmYWNlCiAgICAgICAgIGJvb2wgbV9pc1N1YkZyYW1lZCB7IGZhbHNl
IH07CiAgICAgICAgIGJvb2wgbV9pc0ZpcnN0RnJhbWUgeyBmYWxzZSB9OwogICAgICAgICBpbnQg
bV9zdGFyTG9zdENvdW50ZXIgeyAwIH07CisgICAgICAgIC8vIFNlcGFyYXRlIGZyb20gbV9zdGFy
TG9zdENvdW50ZXIgKGd1aWRpbmcvZGl0aGVyaW5nJ3Mgb3duIGNvdW50ZXIsIHdpdGggaXRzIG93
bgorICAgICAgICAvLyByZXNldCBwb2ludHMpOiBjYWxpYnJhdGlvbiBwcmV2aW91c2x5IGFib3J0
ZWQgdW5jb25kaXRpb25hbGx5IG9uIHRoZSB2ZXJ5IGZpcnN0CisgICAgICAgIC8vIGxvc3Qtc3Rh
ciBmcmFtZSwgZGlzY2FyZGluZyBhbGwgcHJvZ3Jlc3MgKFdlc3QvRWFzdC9Ob3J0aC9Tb3V0aCBz
dGVwcyBhbHJlYWR5CisgICAgICAgIC8vIGNvbXBsZXRlZCkgZXZlbiBmb3IgYSBzaW5nbGUgdHJh
bnNpZW50IGJsaXAuIFJlc2V0IGF0IHRoZSBzdGFydCBvZiBlYWNoIGZyZXNoCisgICAgICAgIC8v
IGNhbGlicmF0aW9uIGF0dGVtcHQ7IHNlZSBpdGVyYXRlQ2FsaWJyYXRpb24oKS4KKyAgICAgICAg
aW50IG1fY2FsaWJyYXRpb25TdGFyTG9zdENvdW50ZXIgeyAwIH07CiAKICAgICAgICAgLy8gV2hl
biB0cnVlLCB0aGUgZ3VpZGUgY2FtZXJhIGlzIHN0cmVhbWluZyBjb250aW51b3VzbHkuCiAgICAg
ICAgIC8vIEluIHRoaXMgbW9kZSBwcm9jZXNzR3VpZGluZygpIG11c3QgTk9UIGVtaXQgZnJhbWVD
YXB0dXJlUmVxdWVzdGVkIGFmdGVyIHNlbmRpbmcgcHVsc2VzLAo=