<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>276085</bug_id>
          
          <creation_ts>2024-07-01 11:57:41 -0700</creation_ts>
          <short_desc>REGRESSION(280485@main): Broke iOS wasm</short_desc>
          <delta_ts>2024-07-01 12:03:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>275397</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>jmichaud</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2044024</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2024-07-01 11:57:41 -0700</bug_when>
    <thetext>https://commits.webkit.org/280485@main introduced a regression:
Broke iOS wasm

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2044026</commentid>
    <comment_count>1</comment_count>
      <attachid>471784</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2024-07-01 11:57:47 -0700</bug_when>
    <thetext>Created attachment 471784
REVERT of 280485@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2044027</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-07-01 12:01:53 -0700</bug_when>
    <thetext>Committed 280546@main (8ba958925667): &lt;https://commits.webkit.org/280546@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 471784.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2044028</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-07-01 12:03:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/130911866&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>471784</attachid>
            <date>2024-07-01 11:57:47 -0700</date>
            <delta_ts>2024-07-01 12:01:53 -0700</delta_ts>
            <desc>REVERT of 280485@main</desc>
            <filename>bug-276085-20240701185746.patch</filename>
            <type>text/plain</type>
            <size>103796</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSAwYTY3NzQ0NDFhODZjOTdkMWY1OGRhYjlmYTQ0MDEwOTZmZDNiMGZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBNb24sIDEgSnVsIDIwMjQgMTg6NTc6NDQgKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgMjgwNDg1QG1haW4uCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mjc2MDg1CgpCcm9rZSBpT1Mgd2FzbQoKUmV2ZXJ0ZWQgY2hhbmdl
c2V0OgoKIkFkZCBvcGVyYXRpb24tYmFzZWQgaml0bGVzcyB3YXNtIGVudHJ5IHRodW5rIgpodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1Mzk3Cmh0dHBzOi8vY29tbWl0
cy53ZWJraXQub3JnLzI4MDQ4NUBtYWluCi0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZS5oIHwgICAxIC0KIC4uLi9pbnRlcnByZXRlci9DYWxsRnJhbWVJbmxp
bmVzLmggICAgICAgICAgICB8ICAgNSAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ZQUklu
Zm8uaCAgICAgICAgICAgfCAgMTYgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5m
by5oICAgICAgICAgICB8ICAyMiArLQogLi4uL2xsaW50L0luUGxhY2VJbnRlcnByZXRlci5jcHAg
ICAgICAgICAgICAgIHwgIDIxICsKIC4uLi9KYXZhU2NyaXB0Q29yZS9sbGludC9JblBsYWNlSW50
ZXJwcmV0ZXIuaCB8ICAgOCArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1i
bHkuYXNtICAgfCA0OTEgKysrKysrKysrKystLS0tLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmNwcCAgICAgfCAgIDUgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUJCUVBsYW4uY3BwICAgIHwgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ2FsbGVlLmNwcCAgICAgfCAgNDAgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21DYWxsZWUuaCAgICAgICB8IDI4MSArKysrKysrKy0tCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcCAgfCAxMTYgKysrKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcCAgICB8ICAzOSAtLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9NR1BsYW4uaCAgICAgIHwgICAxIC0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCB8IDEzMiArLS0tLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaCAgIHwgICAzIC0KIC4uLi93YXNtL2pzL1dlYkFzc2Vt
Ymx5RnVuY3Rpb24uY3BwICAgICAgICAgICB8ICAgMSArCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJs
eUZ1bmN0aW9uLmggICAgICAgICAgICAgfCAgIDEgKwogSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
d2FzbS1jYy1pbnQtdG8taW50LmpzIHwgICA5ICstCiAuLi4vZXhlY3V0YWJsZS1tZW1vcnktb29t
LmpzICAgICAgICAgICAgICAgICAgfCAgIDIgLQogSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1kb3Vi
bGUtdG8tZG91YmxlLmpzICAgIHwgIDU4IC0tLQogSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1mMzIt
a2l0Y2hlbi1zaW5rLmpzICAgIHwgIDc3IC0tLQogSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1mbG9h
dC10by1mbG9hdC5qcyAgICAgIHwgIDYzIC0tLQogLi4uL3dhc20vc3RyZXNzL2NjLWkzMi1raXRj
aGVuLXNpbmstbmVnLmpzICAgIHwgIDc3IC0tLQogSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pMzIt
a2l0Y2hlbi1zaW5rLmpzICAgIHwgICA0ICstCiAuLi4vd2FzbS9zdHJlc3MvY2MtaTY0LWtpdGNo
ZW4tc2luay1uZWcuanMgICAgfCAgNzcgLS0tCiBKU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWk2NC1r
aXRjaGVuLXNpbmsuanMgICAgfCAgNzcgLS0tCiAuLi4taW50LXRvLWludC1jcm9zcy1tb2R1bGUt
d2l0aC1leGNlcHRpb24uanMgfCAgIDggKy0KIC4uLi93YXNtL3N0cmVzcy9jYy1pbnQtdG8taW50
LWNyb3NzLW1vZHVsZS5qcyB8ICAgNCArLQogLi4uL3dhc20vc3RyZXNzL2NjLWludC10by1pbnQt
aml0LXRvLWxsaW50LmpzIHwgICAzICstCiBKU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWludC10by1p
bnQtbWVtb3J5LmpzICAgfCAgIDQgKy0KIEpTVGVzdHMvd2FzbS9zdHJlc3MvY2MtaW50LXRvLWlu
dC1uby1qaXQuanMgICB8ICAgMyArLQogLi4uL3dhc20vc3RyZXNzL2NjLWludC10by1pbnQtdGFp
bC1jYWxsLmpzICAgIHwgICAyICstCiBKU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWludC10by1pbnQu
anMgICAgICAgICAgfCAgIDQgKy0KIDM0IGZpbGVzIGNoYW5nZWQsIDc0MiBpbnNlcnRpb25zKCsp
LCA5MTUgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgSlNUZXN0cy93YXNtL3N0cmVz
cy9jYy1kb3VibGUtdG8tZG91YmxlLmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgSlNUZXN0cy93YXNt
L3N0cmVzcy9jYy1mMzIta2l0Y2hlbi1zaW5rLmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgSlNUZXN0
cy93YXNtL3N0cmVzcy9jYy1mbG9hdC10by1mbG9hdC5qcwogZGVsZXRlIG1vZGUgMTAwNjQ0IEpT
VGVzdHMvd2FzbS9zdHJlc3MvY2MtaTMyLWtpdGNoZW4tc2luay1uZWcuanMKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBKU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWk2NC1raXRjaGVuLXNpbmstbmVnLmpzCiBk
ZWxldGUgbW9kZSAxMDA2NDQgSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pNjQta2l0Y2hlbi1zaW5r
LmpzCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxG
cmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCmlu
ZGV4IDViMTkzMDBjNzE2MS4uMzIwZDMzMWQyYTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCkBAIC0zMjIsNyArMzIyLDYgQEAgdXNpbmcgSlNJ
bnN0cnVjdGlvbiA9IEJhc2VJbnN0cnVjdGlvbjxKU09wY29kZVRyYWl0cz47CiAKICAgICAgICAg
dm9pZCBzZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyhpbnQgY291bnQpIHsgc3RhdGljX2Nh
c3Q8UmVnaXN0ZXIqPih0aGlzKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzKV0ucGF5bG9hZCgpID0gY291bnQ7IH0KICAgICAgICAgaW5s
aW5lIHZvaWQgc2V0Q2FsbGVlKEpTT2JqZWN0Kik7Ci0gICAgICAgIGlubGluZSB2b2lkIHNldENh
bGxlZShOYXRpdmVDYWxsZWUqKTsKICAgICAgICAgaW5saW5lIHZvaWQgc2V0Q29kZUJsb2NrKENv
ZGVCbG9jayopOwogICAgICAgICB2b2lkIHNldFJldHVyblBDKHZvaWQqIHZhbHVlKSB7IGNhbGxl
ckZyYW1lQW5kUEMoKS5yZXR1cm5QQyA9IHZhbHVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lSW5saW5lcy5oCmluZGV4IGMwZjU5M2Fk
MDNmYy4uYjNkYjkwMTIyMGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvQ2FsbEZyYW1lSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWVJbmxpbmVzLmgKQEAgLTEwNiwxMSArMTA2LDYgQEAgaW5saW5l
IHZvaWQgQ2FsbEZyYW1lOjpzZXRDYWxsZWUoSlNPYmplY3QqIGNhbGxlZSkKICAgICBzdGF0aWNf
Y2FzdDxSZWdpc3Rlcio+KHRoaXMpW3N0YXRpY19jYXN0PGludD4oQ2FsbEZyYW1lU2xvdDo6Y2Fs
bGVlKV0gPSBjYWxsZWU7CiB9CiAKLWlubGluZSB2b2lkIENhbGxGcmFtZTo6c2V0Q2FsbGVlKE5h
dGl2ZUNhbGxlZSogY2FsbGVlKQotewotICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPih0
aGlzKVtzdGF0aWNfY2FzdDxpbnQ+KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSldID0gQ2FsbGVlQml0
czo6ZW5jb2RlTmF0aXZlQ2FsbGVlKGNhbGxlZSk7Ci19Ci0KIGlubGluZSB2b2lkIENhbGxGcmFt
ZTo6c2V0Q29kZUJsb2NrKENvZGVCbG9jayogY29kZUJsb2NrKQogewogICAgIHN0YXRpY19jYXN0
PFJlZ2lzdGVyKj4odGhpcylbc3RhdGljX2Nhc3Q8aW50PihDYWxsRnJhbWVTbG90Ojpjb2RlQmxv
Y2spXSA9IGNvZGVCbG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RlBSSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9GUFJJbmZvLmgKaW5kZXggODA4
MTkxMzE5OGQ4Li5iOGY1YWFmOGRjMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvRlBSSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRlBSSW5mby5o
CkBAIC0xMDIsNyArMTAyLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
IH0KICAgICAKLSAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyB0b0FyZ3VtZW50UmVnaXN0ZXIo
dW5zaWduZWQgaW5kZXgpCisgICAgc3RhdGljIEZQUlJlZyB0b0FyZ3VtZW50UmVnaXN0ZXIodW5z
aWduZWQgaW5kZXgpCiAgICAgewogICAgICAgICByZXR1cm4gKEZQUlJlZylpbmRleDsKICAgICB9
CkBAIC0xNzMsOSArMTczLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gKHVuc2lnbmVkKXJl
ZzsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3RleHByIEZQUlJlZyB0b0FyZ3VtZW50UmVnaXN0
ZXIodW5zaWduZWQgaW5kZXgpCisgICAgc3RhdGljIEZQUlJlZyB0b0FyZ3VtZW50UmVnaXN0ZXIo
dW5zaWduZWQgaW5kZXgpCiAgICAgewotICAgICAgICBBU1NFUlRfVU5ERVJfQ09OU1RFWFBSX0NP
TlRFWFQoaW5kZXggPCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKKyAgICAgICAgQVNTRVJU
KGluZGV4IDwgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CiAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxGUFJSZWc+KGluZGV4KTsKICAgICB9CiAKQEAgLTI2OSw5ICsyNjksOSBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0ZXhw
ciBGUFJSZWcgdG9Bcmd1bWVudFJlZ2lzdGVyKHVuc2lnbmVkIGluZGV4KQorICAgIHN0YXRpYyBG
UFJSZWcgdG9Bcmd1bWVudFJlZ2lzdGVyKHVuc2lnbmVkIGluZGV4KQogICAgIHsKLSAgICAgICAg
QVNTRVJUX1VOREVSX0NPTlNURVhQUl9DT05URVhUKGluZGV4IDwgOCk7CisgICAgICAgIEFTU0VS
VChpbmRleCA8IDgpOwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RlBSUmVnPihpbmRleCk7
CiAgICAgfQogCkBAIC0zNDksMTAgKzM0OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBy
ZWdpc3RlckZvckluZGV4W2luZGV4XTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3RleHByIEZQ
UlJlZyB0b0FyZ3VtZW50UmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCisgICAgc3RhdGljIEZQUlJl
ZyB0b0FyZ3VtZW50UmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCiAgICAgewotICAgICAgICBBU1NF
UlRfVU5ERVJfQ09OU1RFWFBSX0NPTlRFWFQoaW5kZXggPCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0
ZXJzKTsKLSAgICAgICAgY29uc3RleHByIEZQUlJlZyByZWdpc3RlckZvckluZGV4W251bWJlck9m
QXJndW1lbnRSZWdpc3RlcnNdID0geworICAgICAgICBBU1NFUlQoaW5kZXggPCBudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKKyAgICAgICAgc3RhdGljIGNvbnN0IEZQUlJlZyByZWdpc3RlckZv
ckluZGV4W251bWJlck9mQXJndW1lbnRSZWdpc3RlcnNdID0gewogICAgICAgICAgICAgYXJndW1l
bnRGUFIwLCBhcmd1bWVudEZQUjEsIGFyZ3VtZW50RlBSMiwgYXJndW1lbnRGUFIzLAogICAgICAg
ICAgICAgYXJndW1lbnRGUFI0LCBhcmd1bWVudEZQUjUsIGFyZ3VtZW50RlBSNiwgYXJndW1lbnRG
UFI3LAogICAgICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9H
UFJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAppbmRleCBmMWVk
YzhiOTQ4YmMuLjczMjFiMDJjNWRmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9HUFJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgK
QEAgLTQwNSwxMCArNDA1LDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlZ2lzdGVyRm9y
SW5kZXhbaW5kZXhdOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyB0
b0FyZ3VtZW50UmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCisgICAgc3RhdGljIEdQUlJlZyB0b0Fy
Z3VtZW50UmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCiAgICAgewotICAgICAgICBBU1NFUlRfVU5E
RVJfQ09OU1RFWFBSX0NPTlRFWFQoaW5kZXggPCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsK
LSAgICAgICAgY29uc3RleHByIEdQUlJlZyByZWdpc3RlckZvckluZGV4W251bWJlck9mQXJndW1l
bnRSZWdpc3RlcnNdID0geyBhcmd1bWVudEdQUjAsIGFyZ3VtZW50R1BSMSwgYXJndW1lbnRHUFIy
LCBhcmd1bWVudEdQUjMsIGFyZ3VtZW50R1BSNCwgYXJndW1lbnRHUFI1IH07CisgICAgICAgIEFT
U0VSVChpbmRleCA8IG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOworICAgICAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHJlZ2lzdGVyRm9ySW5kZXhbbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVyc10g
PSB7IGFyZ3VtZW50R1BSMCwgYXJndW1lbnRHUFIxLCBhcmd1bWVudEdQUjIsIGFyZ3VtZW50R1BS
MywgYXJndW1lbnRHUFI0LCBhcmd1bWVudEdQUjUgfTsKICAgICAgICAgcmV0dXJuIHJlZ2lzdGVy
Rm9ySW5kZXhbaW5kZXhdOwogICAgIH0KICAgICAKQEAgLTUwMCwxMCArNTAwLDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIHJlZ2lzdGVyRm9ySW5kZXhbaW5kZXhdOwogICAgIH0KIAotICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHRvQXJndW1lbnRSZWdpc3Rlcih1bnNpZ25lZCBpbmRl
eCkKKyAgICBzdGF0aWMgR1BSUmVnIHRvQXJndW1lbnRSZWdpc3Rlcih1bnNpZ25lZCBpbmRleCkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVF9VTkRFUl9DT05TVEVYUFJfQ09OVEVYVChpbmRleCA8IG51
bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOwotICAgICAgICBjb25zdGV4cHIgR1BSUmVnIHJlZ2lz
dGVyRm9ySW5kZXhbbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVyc10gPSB7IGFyZ3VtZW50R1BSMCwg
YXJndW1lbnRHUFIxLCBhcmd1bWVudEdQUjIsIGFyZ3VtZW50R1BSMyB9OworICAgICAgICBBU1NF
UlQoaW5kZXggPCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKKyAgICAgICAgc3RhdGljIGNv
bnN0IEdQUlJlZyByZWdpc3RlckZvckluZGV4W251bWJlck9mQXJndW1lbnRSZWdpc3RlcnNdID0g
eyBhcmd1bWVudEdQUjAsIGFyZ3VtZW50R1BSMSwgYXJndW1lbnRHUFIyLCBhcmd1bWVudEdQUjMg
fTsKICAgICAgICAgcmV0dXJuIHJlZ2lzdGVyRm9ySW5kZXhbaW5kZXhdOwogICAgIH0KIApAQCAt
NjMxLDkgKzYzMSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICh1bnNpZ25lZClyZWc7CiAg
ICAgfQogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgdG9Bcmd1bWVudFJlZ2lzdGVyKHVu
c2lnbmVkIGluZGV4KQorICAgIHN0YXRpYyBHUFJSZWcgdG9Bcmd1bWVudFJlZ2lzdGVyKHVuc2ln
bmVkIGluZGV4KQogICAgIHsKLSAgICAgICAgQVNTRVJUX1VOREVSX0NPTlNURVhQUl9DT05URVhU
KGluZGV4IDwgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7CisgICAgICAgIEFTU0VSVChpbmRl
eCA8IG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOwogICAgICAgICByZXR1cm4gdG9SZWdpc3Rl
cihpbmRleCk7CiAgICAgfQogCkBAIC03NDEsMTAgKzc0MSwxMCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiByZWdpc3RlckZvckluZGV4W2luZGV4XTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyB0b0FyZ3VtZW50UmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCisgICAgc3Rh
dGljIEdQUlJlZyB0b0FyZ3VtZW50UmVnaXN0ZXIodW5zaWduZWQgaW5kZXgpCiAgICAgewotICAg
ICAgICBBU1NFUlRfVU5ERVJfQ09OU1RFWFBSX0NPTlRFWFQoaW5kZXggPCBudW1iZXJPZkFyZ3Vt
ZW50UmVnaXN0ZXJzKTsKLSAgICAgICAgY29uc3RleHByIEdQUlJlZyByZWdpc3RlckZvckluZGV4
W251bWJlck9mQXJndW1lbnRSZWdpc3RlcnNdID0geworICAgICAgICBBU1NFUlQoaW5kZXggPCBu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKKyAgICAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBy
ZWdpc3RlckZvckluZGV4W251bWJlck9mQXJndW1lbnRSZWdpc3RlcnNdID0gewogICAgICAgICAg
ICAgYXJndW1lbnRHUFIwLCBhcmd1bWVudEdQUjEsIGFyZ3VtZW50R1BSMiwgYXJndW1lbnRHUFIz
LAogICAgICAgICAgICAgYXJndW1lbnRHUFI0LCBhcmd1bWVudEdQUjUsIGFyZ3VtZW50R1BSNiwg
YXJndW1lbnRHUFI3LAogICAgICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0luUGxhY2VJbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvSW5QbGFjZUludGVycHJldGVyLmNwcAppbmRleCA1OGU2OWUzY2IyZTAuLjI0OWY1OWIw
MGY4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0luUGxhY2VJbnRl
cnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0luUGxhY2VJbnRl
cnByZXRlci5jcHAKQEAgLTEyMCw2ICsxMjAsMTkgQEAgZG8geyBcCiAgICAgUkVMRUFTRV9BU1NF
UlRfV0lUSF9NRVNTQUdFKChjaGFyKikodW50YWdnZWRQdHIpIC0gKGNoYXIqKSh1bnRhZ2dlZEJh
c2UpID09IG9wY29kZSAqIDY0LCAjbmFtZSk7IFwKIH0gd2hpbGUgKGZhbHNlKTsKIAorI2lmIENQ
VShBRERSRVNTNjQpCisjZGVmaW5lIFZBTElEQVRFX0pTX1RPX1dBU01fV1JBUFBFUl9FTlRSWShv
cGNvZGUsIG5hbWUpIFwKK2RvIHsgXAorICAgIHZvaWQqIGJhc2UgPSByZWludGVycHJldF9jYXN0
PHZvaWQqPihqc190b193YXNtX3dyYXBwZXJfZW50cnlfaW50ZXJwX0xvYWRJMzJfdmFsaWRhdGUp
OyBcCisgICAgdm9pZCogcHRyID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oanNfdG9fd2FzbV93
cmFwcGVyX2VudHJ5X2ludGVycF8gIyMgbmFtZSAjIyBfdmFsaWRhdGUpOyBcCisgICAgdm9pZCog
dW50YWdnZWRCYXNlID0gQ29kZVB0cjxDRnVuY3Rpb25QdHJUYWc+Ojpmcm9tVGFnZ2VkUHRyKGJh
c2UpLnRlbXBsYXRlIHVudGFnZ2VkUHRyKCk7IFwKKyAgICB2b2lkKiB1bnRhZ2dlZFB0ciA9IENv
ZGVQdHI8Q0Z1bmN0aW9uUHRyVGFnPjo6ZnJvbVRhZ2dlZFB0cihwdHIpLnRlbXBsYXRlIHVudGFn
Z2VkUHRyKCk7IFwKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UoKGNoYXIqKSh1bnRh
Z2dlZFB0cikgLSAoY2hhciopKHVudGFnZ2VkQmFzZSkgPT0gKChvcGNvZGUpICogOCAqIDQpLCAo
I25hbWUpKTsgXAorfSB3aGlsZSAoZmFsc2UpOworI2Vsc2UKKyNkZWZpbmUgVkFMSURBVEVfSlNf
VE9fV0FTTV9XUkFQUEVSX0VOVFJZKG9wY29kZSwgbmFtZSkKKyNlbmRpZgorCiB2b2lkIGluaXRp
YWxpemUoKQogewogI2lmICFFTkFCTEUoQ19MT09QKSAmJiAoKENQVShBRERSRVNTNjQpICYmIChD
UFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykpKSkgfHwgKENQVShBRERS
RVNTMzIpICYmIENQVShBUk1fVEhVTUIyKSkpCkBAIC0xMjgsNiArMTQxLDE0IEBAIHZvaWQgaW5p
dGlhbGl6ZSgpCiAgICAgRk9SX0VBQ0hfSVBJTlRfU0lNRF9PUENPREUoVkFMSURBVEVfSVBJTlRf
U0lNRF9PUENPREUpOwogICAgIEZPUl9FQUNIX0lQSU5UX0FUT01JQ19PUENPREUoVkFMSURBVEVf
SVBJTlRfQVRPTUlDX09QQ09ERSk7CiAKKyAgICBpZiAoT3B0aW9uczo6dXNlSW50ZXJwcmV0ZWRK
U0VudHJ5V3JhcHBlcnMoKSkgeworICAgICAgICBGT1JfRUFDSF9KU19UT19XQVNNX1dSQVBQRVJf
TUVUQURBVEFfT1BDT0RFKFZBTElEQVRFX0pTX1RPX1dBU01fV1JBUFBFUl9FTlRSWSk7CisgICAg
ICAgIC8vIExhYmVsIGFmdGVyIGxhc3QgZGVmaW5lZCBvcGNvZGUKKyAgICAgICAgVkFMSURBVEVf
SlNfVE9fV0FTTV9XUkFQUEVSX0VOVFJZKHN0YXRpY19jYXN0PGludD4oV2FzbTo6SlNFbnRyeXBv
aW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YTo6SW52YWxpZFJlZ2lzdGVyKSwgaW52YWxpZG9w
KTsKKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgbGFiZWwgcmVwcmVzZW50aW5nIHRoZSBmYXJ0aGVz
dCBwb3NzaWJsZSBkaXNwYXRjaCBqdW1wCisgICAgICAgIFZBTElEQVRFX0pTX1RPX1dBU01fV1JB
UFBFUl9FTlRSWShzdGF0aWNfY2FzdDxpbnQ+KFdhc206OkpTRW50cnlwb2ludEludGVycHJldGVy
Q2FsbGVlTWV0YWRhdGE6Ok9wY29kZU1hc2spICsgMSwgYWZ0ZXJvcHMpOworICAgIH0KKwogICAg
IEZPUl9FQUNIX0lQSU5UX0FSR1VNSU5UX09QQ09ERShWQUxJREFURV9JUElOVF9BUkdVTUlOVF9P
UENPREUpOwogICAgIEZPUl9FQUNIX0lQSU5UX1NMT1dfUEFUSChWQUxJREFURV9JUElOVF9TTE9X
X1BBVEgpOwogICAgIEZPUl9FQUNIX0lQSU5UX01JTlRfQ0FMTF9PUENPREUoVkFMSURBVEVfSVBJ
TlRfTUlOVF9DQUxMX09QQ09ERSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvSW5QbGFjZUludGVycHJldGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
SW5QbGFjZUludGVycHJldGVyLmgKaW5kZXggY2Q1ZTE2MzgwNGVhLi43YmViMTZhZDk4MDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9JblBsYWNlSW50ZXJwcmV0ZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvSW5QbGFjZUludGVycHJldGVyLmgK
QEAgLTM3LDYgKzM3LDkgQEAgZXh0ZXJuICJDIiB2b2lkIGlwaW50X2NhdGNoX2FsbF9lbnRyeSgp
OwogI2RlZmluZSBJUElOVF9WQUxJREFURV9ERUZJTkVfRlVOQ1RJT04ob3Bjb2RlLCBuYW1lKSBc
CiAgICAgZXh0ZXJuICJDIiB2b2lkIGlwaW50XyAjIyBuYW1lICMjIF92YWxpZGF0ZSgpIFJFRkVS
RU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMIE5PX1JFT1JERVI7CiAKKyNkZWZpbmUgSlNfVE9f
V0FTTV9XUkFQUEVSX0VOVFJZX1ZBTElEQVRFX0RFRklORV9GVU5DVElPTihvcGNvZGUsIG5hbWUp
IFwKKyAgICBleHRlcm4gIkMiIHZvaWQganNfdG9fd2FzbV93cmFwcGVyX2VudHJ5X2ludGVycF8g
IyMgbmFtZSAjIyBfdmFsaWRhdGUoKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTCBO
T19SRU9SREVSOworCiAjZGVmaW5lIEZPUl9FQUNIX0lQSU5UX09QQ09ERShtKSBcCiAgICAgbSgw
eDAwLCB1bnJlYWNoYWJsZSkgXAogICAgIG0oMHgwMSwgbm9wKSBcCkBAIC03MjEsNiArNzI0LDEx
IEBAIEZPUl9FQUNIX0lQSU5UX09QQ09ERShJUElOVF9WQUxJREFURV9ERUZJTkVfRlVOQ1RJT04p
OwogRk9SX0VBQ0hfSVBJTlRfMHhGQ19UUlVOQ19PUENPREUoSVBJTlRfVkFMSURBVEVfREVGSU5F
X0ZVTkNUSU9OKTsKIEZPUl9FQUNIX0lQSU5UX1NJTURfT1BDT0RFKElQSU5UX1ZBTElEQVRFX0RF
RklORV9GVU5DVElPTik7CiBGT1JfRUFDSF9JUElOVF9BVE9NSUNfT1BDT0RFKElQSU5UX1ZBTElE
QVRFX0RFRklORV9GVU5DVElPTik7CitGT1JfRUFDSF9KU19UT19XQVNNX1dSQVBQRVJfTUVUQURB
VEFfT1BDT0RFKEpTX1RPX1dBU01fV1JBUFBFUl9FTlRSWV9WQUxJREFURV9ERUZJTkVfRlVOQ1RJ
T04pOworLy8gTGFiZWwgYWZ0ZXIgbGFzdCBkZWZpbmVkIG9wY29kZQorSlNfVE9fV0FTTV9XUkFQ
UEVSX0VOVFJZX1ZBTElEQVRFX0RFRklORV9GVU5DVElPTihfLCBpbnZhbGlkb3ApOworLy8gVGhp
cyBpcyB0aGUgbGFiZWwgcmVwcmVzZW50aW5nIHRoZSBmdXJ0aGVzdCBwb3NzaWJsZSBkaXNwYXRj
aCBqdW1wCitKU19UT19XQVNNX1dSQVBQRVJfRU5UUllfVkFMSURBVEVfREVGSU5FX0ZVTkNUSU9O
KF8sIGFmdGVyb3BzKTsKIEZPUl9FQUNIX0lQSU5UX0FSR1VNSU5UX09QQ09ERShJUElOVF9WQUxJ
REFURV9ERUZJTkVfRlVOQ1RJT04pOwogRk9SX0VBQ0hfSVBJTlRfU0xPV19QQVRIKElQSU5UX1ZB
TElEQVRFX0RFRklORV9GVU5DVElPTik7CiBGT1JfRUFDSF9JUElOVF9NSU5UX0NBTExfT1BDT0RF
KElQSU5UX1ZBTElEQVRFX0RFRklORV9GVU5DVElPTik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L1dlYkFzc2VtYmx5LmFzbQppbmRleCA5YTNiZDk2ZWY5NjguLjkyZDAyOWQ0ZjYwYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCkBAIC0zMSw3
ICszMSw2IEBAIGlmIEhBVkVfRkFTVF9UTFMKICAgICBjb25zdCBXVEZfV0FTTV9DT05URVhUX0tF
WSA9IGNvbnN0ZXhwciBXVEZfV0FTTV9DT05URVhUX0tFWQogZW5kCiAKLSMgTXVzdCBtYXRjaCBH
UFJJbmZvLmgKIGlmIFg4Nl82NCBvciBYODZfNjRfV0lOCiAgICAgY29uc3QgTnVtYmVyT2ZXYXNt
QXJndW1lbnRKU1JzID0gNgogZWxzaWYgQVJNNjQgb3IgQVJNNjRFIG9yIFJJU0NWNjQKQEAgLTU3
NCwxMSArNTczLDQzIEBAIG1hY3JvIGJveEludDMyKHIsIHJUYWcpCiBlbmQKIAogLy8gVGhpcyBp
cyB0aGUgaW50ZXJwcmV0ZWQgYW5hbG9ndWUgdG8gY3JlYXRlSlNUb1dhc21XcmFwcGVyCitpZiBK
U1ZBTFVFNjQgYW5kIChBUk02NCBvciBBUk02NEUgb3IgWDg2XzY0KQogb3AoanNfdG9fd2FzbV93
cmFwcGVyX2VudHJ5LCBtYWNybyAoKQogICAgIGlmIG5vdCBXRUJBU1NFTUJMWSBvciBDX0xPT1Ag
b3IgQ19MT09QX1dJTgogICAgICAgICBlcnJvcgogICAgIGVuZAogCisgICAgY29uc3QgQWNjdW11
bGF0b3JUYWcgPSBpbnZhbGlkR1BSICMgT25seSB1c2VkIGZvciBKU1ZBTFVFMzJfNjQKKworaWYg
QVJNNjQgb3IgQVJNNjRFIG9yIEFSTXY3CisgICAgY29uc3QgTVBDID0gdDgKKyAgICBjb25zdCBD
YWxsZWVFeGVjdXRhYmxlQWRkcmVzcyA9IHdzMyAjIENhbGxlZSBwcm9sb2d1ZSAoanVtcCB0YXJn
ZXQpIHBvaW50ZXIKKyAgICBjb25zdCBBY2N1bXVsYXRvciA9IHdzMAorICAgIGNvbnN0IFNjcmF0
Y2ggPSB3czEKKyAgICBjb25zdCBTY3JhdGNoMiA9IHdzMgorCisgICAgY29uc3QgTVBDU3BpbGwg
PSAtNCAqIFNsb3RTaXplCitlbHNlCisgICAgY29uc3QgTVBDID0gbWV0YWRhdGFUYWJsZQorICAg
IGNvbnN0IEFjY3VtdWxhdG9yID0gY3NyMgorICAgIGNvbnN0IFNjcmF0Y2ggPSB3czEKKworICAg
ICMgQW55IGNhbGxlZSBzYXZlcyBjbG9iYmVyZWQgaGVyZSB3b3VsZCBhbHNvIGhhdmUgdG8gYmUg
c2F2ZWQgYnkgdGhlIEpTLT5XQVNNIHRodW5rLAorICAgICMgc2luY2UgdGhlIGV4Y2VwdGlvbiB1
bndpbmRlciBjYW5ub3QgdGVsbCBpZiBhbiBpbnRlcnByZXRlZCBjYWxsZWUgaGFkIGEgcmVwbGFj
ZW1lbnRDYWxsZWUgaW5zdGFsbGVkCisgICAgIyB3aGVuIHRoZSBzdGFjayBmcmFtZSB3YXMgY3Jl
YXRlZC4KKyAgICAjIEluc3RlYWQgb2YgbWFraW5nIGV2ZXJ5IHRodW5rIHNhdmUgbW9yZSBjYWxs
ZWUtc2F2ZXMsIHdlIHNob3VsZCBqdXN0IHJlc3RvcmUgdGhlc2UgZXh0cmEKKyAgICAjIGNsb2Ji
ZXJlZCBjYWxsZWUtc2F2ZXMgaGVyZSBiZWZvcmUgY2FsbGluZyBKUy4KKyAgICAjIFRPRE86IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ3NjggKFtXQVNNICsgR2xv
YmFsIEdDXSBJbnRlcnByZXRlZCBXYXNtLT5KUyBJQ3Mgc2hvdWxkIGJlIGFibGUgdG8gYmUgcmVw
bGFjZWQgZGlyZWN0bHkpLgorICAgICMgSWYgd2UgY291bGQgcmVwbGFjZSB0aGUgaW50ZXJwcmV0
ZWQgY2FsbGVlIGRpcmVjdGx5LCB3ZSBjb3VsZCBqdXN0IGFkZCB0aGVzZSBjbG9iYmVyZWQgY2Fs
bGVlLXNhdmVzCisgICAgIyBkaXJlY3RseSB0byB0aGUgY2FsbGVlIHNhdmUgbGlzdCBpbiBKU0Vu
dHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZS4KKyAgICBjb25zdCBNUENDU1JTbG90ID0gLTQgKiBT
bG90U2l6ZQorICAgIGNvbnN0IEFjY3VtdWxhdG9yQ1NSU2xvdCA9IC01ICogU2xvdFNpemUKKwor
ICAgIGNvbnN0IE1QQ1NwaWxsID0gLTYgKiBTbG90U2l6ZQorICAgIGNvbnN0IEFjY3VtdWxhdG9y
U3BpbGwgPSAtNyAqIFNsb3RTaXplCisgICAgY29uc3QgQ2FsbGVlRXhlY3V0YWJsZUFkZHJlc3Mg
PSAtOCAqIFNsb3RTaXplCitlbmQKKwogICAgIG1hY3JvIGNsb2JiZXJWb2xhdGlsZVJlZ2lzdGVy
cygpCiAgICAgICAgIGlmIEFSTTY0IG9yIEFSTTY0RQogICAgICAgICAgICAgZW1pdCAibW92eiAg
eDksICMweEJBRCIKQEAgLTYwNSw1NiArNjM2LDM3IEBAIG9wKGpzX3RvX3dhc21fd3JhcHBlcl9l
bnRyeSwgbWFjcm8gKCkKICAgICAgICAgZW5kCiAgICAgZW5kCiAKLSAgICBtYWNybyByZXBlYXQo
ZikKLSAgICAgICAgbW92ZSAweEJFRUYsIHdzMAotICAgICAgICBmKDApCi0gICAgICAgIGYoMSkK
LSAgICAgICAgZigyKQotICAgICAgICBmKDMpCi0gICAgICAgIGYoNCkKLSAgICAgICAgZig1KQot
ICAgICAgICBmKDYpCi0gICAgICAgIGYoNykKLSAgICAgICAgZig4KQotICAgICAgICBmKDkpCi0g
ICAgICAgIGYoMTApCi0gICAgICAgIGYoMTEpCi0gICAgICAgIGYoMTIpCi0gICAgICAgIGYoMTMp
Ci0gICAgICAgIGYoMTQpCi0gICAgICAgIGYoMTUpCi0gICAgICAgIGYoMTYpCi0gICAgICAgIGYo
MTcpCi0gICAgICAgIGYoMTgpCi0gICAgICAgIGYoMTkpCi0gICAgICAgIGYoMjApCi0gICAgICAg
IGYoMjEpCi0gICAgICAgIGYoMjIpCi0gICAgICAgIGYoMjMpCi0gICAgICAgIGYoMjQpCi0gICAg
ICAgIGYoMjUpCi0gICAgICAgIGYoMjYpCi0gICAgICAgIGYoMjcpCi0gICAgICAgIGYoMjgpCi0g
ICAgICAgIGYoMjkpCi0gICAgZW5kCi0KLWlmIEFTU0VSVF9FTkFCTEVECiAgICAgY2xvYmJlclZv
bGF0aWxlUmVnaXN0ZXJzKCkKKworCitpZiBBUk02NCBvciBBUk02NEUgb3IgQVJNdjcKKyAgICBj
b25zdCBKU0VudHJ5cG9pbnRJbnRlcnByZXRlclNwaWxsU3BhY2VTdGFja0FsaWduZWQgPSAoNCAq
IFNsb3RTaXplICsgU3RhY2tBbGlnbm1lbnQgLSAxKSAmIH5TdGFja0FsaWdubWVudE1hc2sKK2Vs
c2UKKyAgICBjb25zdCBKU0VudHJ5cG9pbnRJbnRlcnByZXRlclNwaWxsU3BhY2VTdGFja0FsaWdu
ZWQgPSAoOCAqIFNsb3RTaXplICsgU3RhY2tBbGlnbm1lbnQgLSAxKSAmIH5TdGFja0FsaWdubWVu
dE1hc2sKIGVuZAogCiAgICAgbWFjcm8gc2F2ZUpTRW50cnlwb2ludEludGVycHJldGVyUmVnaXN0
ZXJzKCkKLSAgICAgICAgc3VicCBjb25zdGV4cHIgV2FzbTo6SlNFbnRyeXBvaW50SW50ZXJwcmV0
ZXJDYWxsZWU6OlNwaWxsU3RhY2tTcGFjZUFsaWduZWQsIHNwCisgICAgICAgIHN1YnAgSlNFbnRy
eXBvaW50SW50ZXJwcmV0ZXJTcGlsbFNwYWNlU3RhY2tBbGlnbmVkLCBzcAogICAgICAgICBpZiBB
Uk02NCBvciBBUk02NEUKICAgICAgICAgICAgIHN0b3JlcGFpcnEgbWVtb3J5QmFzZSwgYm91bmRz
Q2hlY2tpbmdTaXplLCAtMiAqIFNsb3RTaXplW2Nmcl0KICAgICAgICAgICAgIHN0b3JlcCB3YXNt
SW5zdGFuY2UsIC0zICogU2xvdFNpemVbY2ZyXQorICAgICAgICAgICAgIyBUaGVzZSBhcmUganVz
dCBmb3IgdXMgdG8gc3BpbGwgdGhpbmdzCisgICAgICAgICAgICAjIE1QQ1NwaWxsCiAgICAgICAg
IGVsc2lmIFg4Nl82NAotICAgICAgICAgICAgIyBUaGVzZSBtdXN0IG1hdGNoIHRoZSB3YXNtVG9K
UyB0aHVuaywgc2luY2UgdGhlIHVud2luZGVyIHdvbid0IGJlIGFibGUgdG8gdGVsbCB3aG8gbWFk
ZSB0aGlzIGZyYW1lLgorICAgICAgICAgICAgIyBUaGVzZSBtdXN0IG1hdGNoIHRoZSB3YXNtVG9K
UyB0aHVuaywgc2luY2UgdGhlIHVud2luZGVyIHdvbid0IGJlIGFibGUgdG8gdGVsbCB0aGUgZGlm
ZmVyZW5jZSBiZXR3ZWVuIHVzIGFuZCB0aGVtLgorICAgICAgICAgICAgIyBTZWUgY2FsbGVlU2F2
ZVJlZ2lzdGVyc0ltcGwKICAgICAgICAgICAgIHN0b3JlcCBib3VuZHNDaGVja2luZ1NpemUsIC0x
ICogU2xvdFNpemVbY2ZyXQogICAgICAgICAgICAgc3RvcmVwIG1lbW9yeUJhc2UsIC0yICogU2xv
dFNpemVbY2ZyXQogICAgICAgICAgICAgc3RvcmVwIHdhc21JbnN0YW5jZSwgLTMgKiBTbG90U2l6
ZVtjZnJdCisgICAgICAgICAgICAjIFRoaXMgZ2V0cyByZXN0b3JlZCBiZWZvcmUgY2FsbCB0b28s
IHNpbmNlIGl0IGRvZXNuJ3QgZ2V0IHNhdmVkL3Jlc3RvcmVkIGJ5IHRoZSB3YXNtVG9KUyB0aHVu
aworICAgICAgICAgICAgc3RvcmVwIE1QQywgTVBDQ1NSU2xvdFtjZnJdCisgICAgICAgICAgICBz
dG9yZXAgQWNjdW11bGF0b3IsIEFjY3VtdWxhdG9yQ1NSU2xvdFtjZnJdCisgICAgICAgICAgICAj
IFRoZXNlIGFyZSBqdXN0IGZvciB1cyB0byBzcGlsbCB0aGluZ3MKKyAgICAgICAgICAgICMgQWNj
dW11bGF0b3JTcGlsbAorICAgICAgICAgICAgIyBNUENTcGlsbAorICAgICAgICAgICAgIyBDYWxs
ZWVFeGVjdXRhYmxlQWRkcmVzcwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzdG9yZWkgd2Fz
bUluc3RhbmNlLCAtMSAqIFNsb3RTaXplW2Nmcl0KKyAgICAgICAgICAgIGVycm9yCiAgICAgICAg
IGVuZAogICAgIGVuZAogCkBAIC02NjYsMjE3ICs2NzgsMzAyIEBAIGVuZAogICAgICAgICAgICAg
bG9hZHAgLTEgKiBTbG90U2l6ZVtjZnJdLCBib3VuZHNDaGVja2luZ1NpemUKICAgICAgICAgICAg
IGxvYWRwIC0yICogU2xvdFNpemVbY2ZyXSwgbWVtb3J5QmFzZQogICAgICAgICAgICAgbG9hZHAg
LTMgKiBTbG90U2l6ZVtjZnJdLCB3YXNtSW5zdGFuY2UKKyAgICAgICAgICAgIGxvYWRwIE1QQ0NT
UlNsb3RbY2ZyXSwgTVBDCisgICAgICAgICAgICBsb2FkcCBBY2N1bXVsYXRvckNTUlNsb3RbY2Zy
XSwgQWNjdW11bGF0b3IKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9hZGkgLTEgKiBTbG90
U2l6ZVtjZnJdLCB3YXNtSW5zdGFuY2UKKyAgICAgICAgICAgIGVycm9yCiAgICAgICAgIGVuZAot
ICAgICAgICBhZGRwIGNvbnN0ZXhwciBXYXNtOjpKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxl
ZTo6U3BpbGxTdGFja1NwYWNlQWxpZ25lZCwgc3AKKyAgICAgICAgYWRkcCBKU0VudHJ5cG9pbnRJ
bnRlcnByZXRlclNwaWxsU3BhY2VTdGFja0FsaWduZWQsIHNwCiAgICAgZW5kCiAKICAgICB0YWdS
ZXR1cm5BZGRyZXNzIHNwCiAgICAgcHJlc2VydmVDYWxsZXJQQ0FuZENGUigpCiAgICAgc2F2ZUpT
RW50cnlwb2ludEludGVycHJldGVyUmVnaXN0ZXJzKCkKIAotICAgICMgTG9hZCBkYXRhIGZyb20g
dGhlIGVudHJ5IGNhbGxlZQorICAgICMgTG9hZCBtZXRhZGF0YSBmcm9tIHRoZSBlbnRyeSBjYWxs
ZWUKICAgICAjIFRoaXMgd2FzIHdyaXR0ZW4gYnkgZG9WTUVudHJ5CiAgICAgbG9hZHAgQ2FsbGVl
W2Nmcl0sIHdzMCAjIFdlYkFzc2VtYmx5RnVuY3Rpb24qCisgICAgbG9hZHAgV2ViQXNzZW1ibHlG
dW5jdGlvbjo6bV9qc1RvV2FzbUJveGVkSW50ZXJwcmV0ZXJDYWxsZWVbd3MwXSwgd3MxICMgSlNF
bnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWUqCisgICAgIyBTdG9yZSB0aGUgYm94ZWQgZW50cnkg
Y2FsbGVlCisgICAgc3RvcmVwIHdzMSwgQ2FsbGVlW2Nmcl0KICAgICBsb2FkcCBXZWJBc3NlbWJs
eUZ1bmN0aW9uOjptX2pzVG9XYXNtSW50ZXJwcmV0ZXJDYWxsZWVbd3MwXSwgd3MwICMgSlNFbnRy
eXBvaW50SW50ZXJwcmV0ZXJDYWxsZWUqCiAKLWlmIEFTU0VSVF9FTkFCTEVECi0gICAgIyBDaGVj
ayB0byBjb25maXJtIHdlIGhhdmUgdGhlIHJpZ2h0IGtpbmQgb2YgY2FsbGVlCi0gICAgbG9hZGkg
V2FzbTo6SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWU6OmlkZW50W3dzMF0sIHdzMQorICAg
ICMgRGVidWdnaW5nIHNhbml0eSBjaGVjayB0byBjb25maXJtIHdlIGhhdmUgdGhlIHJpZ2h0IGtp
bmQgb2YgY2FsbGVlCisgICAgbG9hZHAgV2FzbTo6SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxs
ZWU6OmlkZW50W3dzMF0sIHdzMQogICAgIG1vdmUgMHhCRiwgd2EwCiAgICAgYnBlcSB3YTAsIHdz
MSwgLmlkZW50X29rCiAgICAgYnJlYWsKIC5pZGVudF9vazoKLWVuZAorICAgIGxlYXAgKGNvbnN0
ZXhwciAoV2FzbTo6SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWU6Om9mZnNldE9mTWV0YWRh
dGFTdG9yYWdlKCkpKVt3czBdLCB0MQorICAgIGxvYWRwIFdhc206OkpTRW50cnlwb2ludEludGVy
cHJldGVyQ2FsbGVlOjp3YXNtRnVuY3Rpb25Qcm9sb2d1ZVt3czBdLCB0MgorICAgIGxvYWRwIFdh
c206OkpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlOjp3YXNtQ2FsbGVlW3dzMF0sIHQzCiAK
LSAgICAjIEFsbG9jYXRlIHN0YWNrIHNwYWNlIChubyBzdGFjayBjaGVjaykKLSAgICBsb2FkaSBX
YXNtOjpKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZTo6ZnJhbWVTaXplW3dzMF0sIHdzMQot
ICAgIHN1YnAgd3MxLCBzcAorICAgICMgTG9hZCB0aGUgRnJhbWVTaXplIG9wCisgICAgbG9hZGIg
W3QxXSwgd3MwCisgICAgYWRkcCAxLCB0MQogCi1pZiBBU1NFUlRfRU5BQkxFRAotICAgIHJlcGVh
dChtYWNybyAoaSkKLSAgICAgICAgc3RvcmVwIHdzMCwgLWkgKiBTbG90U2l6ZSArIGNvbnN0ZXhw
ciBXYXNtOjpKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZTo6UmVnaXN0ZXJTdGFja1NwYWNl
QWxpZ25lZFtzcF0KLSAgICBlbmQpCi1lbmQKKyAgICAjIFRPRE8gYXR0YWNrZXIgY29udHJvbGxl
ZCBzcD8KKyAgICBtb3ZlIGNvbnN0ZXhwciBXYXNtOjpKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNh
bGxlZU1ldGFkYXRhOjpGcmFtZVNpemUsIHdzMQorICAgIGJwZXEgd3MwLCB3czEsIC5zdGFjawor
ICAgIGJyZWFrCisuc3RhY2s6CisgICAgIyBMb2FkIHRoZSBzdGFjayBzaXplCisgICAgbG9hZGIg
W3QxXSwgd3MwCisgICAgYWRkcCAxLCB0MQorICAgIGxzaGlmdHEgMywgd3MwCisgICAgc3VicCB3
czAsIHNwCiAKLSAgICAjIFByZXBhcmUgZnJhbWUKLSAgICBtb3ZlIHNwLCBhMAotICAgIG1vdmUg
Y2ZyLCBhMQotICAgIGNDYWxsMihfb3BlcmF0aW9uSlNUb1dhc21FbnRyeVdyYXBwZXJCdWlsZEZy
YW1lKQorICAgICMgU3RvcmUgQ2FsbGVlJ3Mgd2FzbSBjYWxsZWUKKyAgICBzdG9yZXAgdDMsIGNv
bnN0ZXhwciAoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlIC0gQ2FsbGVyRnJhbWVBbmRQQzo6c2l6ZUlu
UmVnaXN0ZXJzKSAqIDhbc3BdCiAKLSAgICAjIEluc3RhbmNlCiAgICAgbG9hZHAgY29uc3RleHBy
IENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9jayAqIDhbY2ZyXSwgd2FzbUluc3RhbmNlCiAKLSAgICAj
IE1lbW9yeQotICAgIGlmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICBsb2FkcGFpcnEgV2FzbTo6
SW5zdGFuY2U6Om1fY2FjaGVkTWVtb3J5W3dhc21JbnN0YW5jZV0sIG1lbW9yeUJhc2UsIGJvdW5k
c0NoZWNraW5nU2l6ZQotICAgIGVsc2lmIFg4Nl82NAotICAgICAgICBsb2FkcCBXYXNtOjpJbnN0
YW5jZTo6bV9jYWNoZWRNZW1vcnlbd2FzbUluc3RhbmNlXSwgbWVtb3J5QmFzZQotICAgICAgICBs
b2FkcCBXYXNtOjpJbnN0YW5jZTo6bV9jYWNoZWRCb3VuZHNDaGVja2luZ1NpemVbd2FzbUluc3Rh
bmNlXSwgYm91bmRzQ2hlY2tpbmdTaXplCisgICAgIyBDYWxsZWUgc2F2ZXMgYXJlIHNhdmVkLCBz
byBub3cgd2UgY2FuIHVzZSBvdXIgcHJlZmVyZWQgcmVnaXN0ZXJzCisgICAgIyBhbmQgZnJlZSB1
cCB0aGUgYXJndW1lbnQgcmVnaXN0ZXJzICh0KiBhbmQgd2EqIG92ZXJsYXAgb24gc29tZSBwbGF0
Zm9ybXMpCisgICAgbW92ZSB0MSwgTVBDCitpZiBBUk02NCBvciBBUk02NEUgb3IgQVJNdjcKKyAg
ICBtb3ZlIHQyLCBDYWxsZWVFeGVjdXRhYmxlQWRkcmVzcworZWxzZQorICAgIHN0b3JlcSB0Miwg
Q2FsbGVlRXhlY3V0YWJsZUFkZHJlc3NbY2ZyXQorZW5kCisKK2lmIEpTVkFMVUU2NAorICAgIG1v
dmUgMHhCQURCRUVGQkFEQkVFRiwgbWVtb3J5QmFzZQorICAgIG1vdmUgMHhCQURCRUVGQkFEQkVF
RiwgYm91bmRzQ2hlY2tpbmdTaXplCitlbmQKKworICAgICMgRWFjaCBvcCBjYW4gaGF2ZSBhdCBt
b3N0IHRoaXMgbnVtYmVyIG9mIGluc3RydWN0aW9ucy4KKyAgICAjIFRoZXJlIGFyZSBhdCBtb3N0
IE9wY29kZU1hc2sgb3Bjb2RlcworICAgICMgV2UgZG8gYW4gdW5hdXRoZW50aWNhdGVkIGp1bXAs
IGJ1dCBkdWUgdG8gdGhlIG1hc2tpbmcsIGl0IGlzIG9ubHkgcG9zc2libGUgdG8gcmVhY2gKKyAg
ICAjIG9uZSBvZiB0aGUgb3Bjb2RlIGhhbmRsZXJzIGJlbG93LgorICAgIGNvbnN0IE9wY29kZVNp
emUgPSA4CisgICAgY29uc3QgT3Bjb2RlU2l6ZVNoaWZ0ID0gNSAjIDggaW5zdHJ1Y3Rpb25zICog
NCBieXRlcyBwZXIgaW5zdHJ1Y3Rpb24KKworICAgIG1hY3JvIGFkdmFuY2UoKQorICAgICAgICBs
b2FkYiBbTVBDXSwgU2NyYXRjaAorICAgICAgICBhZGRwIDEsIE1QQwogICAgIGVuZAotICAgIGlm
IG5vdCBBUk12NwotICAgICAgICBjYWdlZFByaW1pdGl2ZU1heUJlTnVsbChtZW1vcnlCYXNlLCB3
czApCisKKyAgICBtYWNybyBhZHZhbmNlU2lnbmVkKCkKKyAgICAgICAgbG9hZGJzcSBbTVBDXSwg
U2NyYXRjaAorICAgICAgICBhZGRwIDEsIE1QQwogICAgIGVuZAogCi0gICAgIyBBcmd1bWVudHMK
KyAgICBtYWNybyBpZGlzcGF0Y2goKQorICAgICAgICBqbXAgLmlkaXNwYXRjaAorICAgIGVuZAog
Ci1pZiBBUk02NCBvciBBUk02NEUKLSAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8gKG9mZnNl
dCwgZ3ByMSwgZ3ByMikKLSAgICAgICAgbG9hZHBhaXJxIG9mZnNldFtzcF0sIGdwcjEsIGdwcjIK
LSAgICBlbmQpCi1lbHNpZiBKU1ZBTFVFNjQKLSAgICBmb3JFYWNoQXJndW1lbnRKU1IobWFjcm8g
KG9mZnNldCwgZ3ByKQotICAgICAgICBsb2FkcSBvZmZzZXRbc3BdLCBncHIKLSAgICBlbmQpCi1l
bHNlCi0gICAgZm9yRWFjaEFyZ3VtZW50SlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cp
Ci0gICAgICAgIGxvYWQyaWEgb2Zmc2V0W3NwXSwgZ3BMc3csIGdwck1zdwotICAgIGVuZCkKLWVu
ZAorICAgICMgRklYTUU6IHN3aXRjaCBvZmZsaW5lYXNtIHVuYWxpZ25lZGdsb2JhbCB0byB0YWtl
IGFsaWdubWVudCBhbmQgb3B0aW9uYWxseSBwYWQgd2l0aCBicmVha3BvaW50IGluc3RydWN0aW9u
cyAocmRhcjovLzExMzU5NDc4MykKKyAgICBtYWNybyBvcGNvZGUobGFiZWwpCisgICAgICAgIGlk
aXNwYXRjaCgpCisgICAgICAgIGVtaXQgIi5iYWxpZ24gMzIiCisgICAgICAgIHVuYWxpZ25lZGds
b2JhbCBfanNfdG9fd2FzbV93cmFwcGVyX2VudHJ5X2ludGVycF8lbGFiZWwlX3ZhbGlkYXRlCisg
ICAgICAgIF9qc190b193YXNtX3dyYXBwZXJfZW50cnlfaW50ZXJwXyVsYWJlbCU6CisgICAgICAg
IF9qc190b193YXNtX3dyYXBwZXJfZW50cnlfaW50ZXJwXyVsYWJlbCVfdmFsaWRhdGU6CisgICAg
ZW5kCiAKLWlmIEFSTTY0IG9yIEFSTTY0RQotICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAo
b2Zmc2V0LCBmcHIxLCBmcHIyKQotICAgICAgICBsb2FkcGFpcmQgb2Zmc2V0W3NwXSwgZnByMSwg
ZnByMgotICAgIGVuZCkKLWVsc2UKLSAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNl
dCwgZnByKQotICAgICAgICBsb2FkZCBvZmZzZXRbc3BdLCBmcHIKLSAgICBlbmQpCi1lbmQKKyAg
ICAjIFRoaXMgbXVzdCBiZSB1cGRhdGVkIGFmdGVyIGFkZGluZy9yZW1vdmluZyBvcGNvZGVzLgor
ICAgICMgSXQgcGFkcyB1bnVzZWQgb3Bjb2RlIHZhbHVlcy4KKyAgICBtYWNybyBvcGNvZGVzRW5k
KCkKKyAgICAgICAgaWRpc3BhdGNoKCkKKyAgICAgICAgYnJlYWsKKyAgICAgICAgZW1pdCAiLmJh
bGlnbiAzMiIKKyAgICAgICAgdW5hbGlnbmVkZ2xvYmFsIF9qc190b193YXNtX3dyYXBwZXJfZW50
cnlfaW50ZXJwX2ludmFsaWRvcF92YWxpZGF0ZQorICAgICAgICBfanNfdG9fd2FzbV93cmFwcGVy
X2VudHJ5X2ludGVycF9pbnZhbGlkb3A6CisgICAgICAgIF9qc190b193YXNtX3dyYXBwZXJfZW50
cnlfaW50ZXJwX2ludmFsaWRvcF92YWxpZGF0ZToKKyAgICAgICAgIyBQYWRkaW5nLCBzZXQgYmFz
ZWQgb24gcmVsZWFzZSBhc3NlcnQgaW4gSW5QbGFjZUludGVycHJldGVyLmNwcAorICAgICAgICBl
bWl0ICIuZmlsbCAyNDAsIDQsIDB4QkYiCisgICAgICAgIHVuYWxpZ25lZGdsb2JhbCBfanNfdG9f
d2FzbV93cmFwcGVyX2VudHJ5X2ludGVycF9hZnRlcm9wc192YWxpZGF0ZQorICAgICAgICBfanNf
dG9fd2FzbV93cmFwcGVyX2VudHJ5X2ludGVycF9hZnRlcm9wc192YWxpZGF0ZToKKyAgICAgICAg
YnJlYWsKKyAgICBlbmQKIAotICAgICMgUG9wIGFyZ3VtZW50IHNwYWNlIHZhbHVlcwotICAgIGFk
ZHAgY29uc3RleHByIFdhc206OkpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlOjpSZWdpc3Rl
clN0YWNrU3BhY2VBbGlnbmVkLCBzcAorb3Bjb2RlKExvYWRJMzIpCitfanNfdG9fd2FzbV93cmFw
cGVyX2VudHJ5X2ludGVycF9iZWdpbjoKKyAgICBhZHZhbmNlU2lnbmVkKCkKKyAgICBsc2hpZnRx
IDMsIFNjcmF0Y2gKKyAgICBhZGRwIGNmciwgU2NyYXRjaAorICAgIGxvYWRpIFtTY3JhdGNoXSwg
QWNjdW11bGF0b3IKIAotaWYgQVNTRVJUX0VOQUJMRUQKLSAgICByZXBlYXQobWFjcm8gKGkpCi0g
ICAgICAgIHN0b3JlcCB3czAsIC1pICogU2xvdFNpemVbc3BdCi0gICAgZW5kKQotZW5kCitvcGNv
ZGUoTG9hZEk2NCkKKyAgICBicmVhawogCi0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHdzMCAjIENh
bGxlZUJpdHMoSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWUqKQotaWYgSlNWQUxVRTY0Ci0g
ICAgYW5kcCB+KGNvbnN0ZXhwciBKU1ZhbHVlOjpOYXRpdmVDYWxsZWVUYWcpLCB3czAKLWVuZAot
ICAgIGxlYXAgV1RGQ29uZmlnICsgY29uc3RleHByIFdURjo6b2Zmc2V0T2ZXVEZDb25maWdMb3dl
c3RBY2Nlc3NpYmxlQWRkcmVzcywgd3MxCi0gICAgbG9hZHAgW3dzMV0sIHdzMQotICAgIGFkZHAg
d3MxLCB3czAKK29wY29kZShMb2FkRjMyKQorICAgIGJyZWFrCiAKLSAgICAjIFN0b3JlIENhbGxl
ZSdzIHdhc20gY2FsbGVlCi1pZiBKU1ZBTFVFNjQKLSAgICBsb2FkcCBXYXNtOjpKU0VudHJ5cG9p
bnRJbnRlcnByZXRlckNhbGxlZTo6d2FzbUNhbGxlZVt3czBdLCB3czEKLSAgICBzdG9yZXAgd3Mx
LCBjb25zdGV4cHIgKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAtIENhbGxlckZyYW1lQW5kUEM6OnNp
emVJblJlZ2lzdGVycykgKiA4W3NwXQorb3Bjb2RlKExvYWRGNjQpCisgICAgYnJlYWsKKworb3Bj
b2RlKFN0b3JlSTMyKQorICAgIGFkdmFuY2VTaWduZWQoKQorICAgIGxzaGlmdHEgMywgU2NyYXRj
aAoraWYgWDg2XzY0CisgICAgYWRkcCBzcCwgU2NyYXRjaAogZWxzZQotICAgIGxvYWRwIFdhc206
OkpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlOjp3YXNtQ2FsbGVlICsgUGF5bG9hZE9mZnNl
dFt3czBdLCB3czEKLSAgICBzdG9yZXAgd3MxLCBjb25zdGV4cHIgKENhbGxGcmFtZVNsb3Q6OmNh
bGxlZSAtIENhbGxlckZyYW1lQW5kUEM6OnNpemVJblJlZ2lzdGVycykgKiA4ICsgUGF5bG9hZE9m
ZnNldFtzcF0KLSAgICBsb2FkcCBXYXNtOjpKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZTo6
d2FzbUNhbGxlZSArIFRhZ09mZnNldFt3czBdLCB3czEKLSAgICBzdG9yZXAgd3MxLCBjb25zdGV4
cHIgKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSAtIENhbGxlckZyYW1lQW5kUEM6OnNpemVJblJlZ2lz
dGVycykgKiA4ICsgVGFnT2Zmc2V0W3NwXQorICAgIG1vdmUgc3AsIFNjcmF0Y2gyCisgICAgYWRk
cCBTY3JhdGNoMiwgU2NyYXRjaAogZW5kCisgICAgc3RvcmVpIEFjY3VtdWxhdG9yLCBbU2NyYXRj
aF0KIAotICAgIGxvYWRwIFdhc206OkpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlOjp3YXNt
RnVuY3Rpb25Qcm9sb2d1ZVt3czBdLCB3czAKLSAgICBjYWxsIHdzMCwgTExJbnRUb1dhc21FbnRy
eVB0clRhZworb3Bjb2RlKFN0b3JlSTY0KQorICAgIGJyZWFrCiAKLSAgICBjbG9iYmVyVm9sYXRp
bGVSZWdpc3RlcnMoKQotICAgIGNsb2JiZXJBcmd1bWVudE9ubHlSZWdpc3RlcnMoKQorb3Bjb2Rl
KFN0b3JlRjMyKQorICAgIGJyZWFrCiAKLSAgICAjIFJlc3RvcmUgU1AKLSAgICBsb2FkcCBDYWxs
ZWVbY2ZyXSwgd3MwICMgQ2FsbGVlQml0cyhKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZSop
Ci1pZiBKU1ZBTFVFNjQKLSAgICBhbmRwIH4oY29uc3RleHByIEpTVmFsdWU6Ok5hdGl2ZUNhbGxl
ZVRhZyksIHdzMAotZW5kCi0gICAgbGVhcCBXVEZDb25maWcgKyBjb25zdGV4cHIgV1RGOjpvZmZz
ZXRPZldURkNvbmZpZ0xvd2VzdEFjY2Vzc2libGVBZGRyZXNzLCB3czEKLSAgICBsb2FkcCBbd3Mx
XSwgd3MxCi0gICAgYWRkcCB3czEsIHdzMAotICAgIGxvYWRpIFdhc206OkpTRW50cnlwb2ludElu
dGVycHJldGVyQ2FsbGVlOjpmcmFtZVNpemVbd3MwXSwgd3MxCi0gICAgc3VicCBjZnIsIHdzMSwg
d3MxCi0gICAgbW92ZSB3czEsIHNwCi0gICAgc3VicCBjb25zdGV4cHIgV2FzbTo6SlNFbnRyeXBv
aW50SW50ZXJwcmV0ZXJDYWxsZWU6OlNwaWxsU3RhY2tTcGFjZUFsaWduZWQsIHNwCitvcGNvZGUo
U3RvcmVGNjQpCisgICAgYnJlYWsKIAotaWYgQVNTRVJUX0VOQUJMRUQKLSAgICByZXBlYXQobWFj
cm8gKGkpCi0gICAgICAgIHN0b3JlcCB3czAsIC1pICogU2xvdFNpemUgKyBjb25zdGV4cHIgV2Fz
bTo6SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWU6OlJlZ2lzdGVyU3RhY2tTcGFjZUFsaWdu
ZWRbc3BdCi0gICAgZW5kKQotZW5kCitvcGNvZGUoQm94SW50MzIpCisgICAgemVyb0V4dGVuZDMy
VG9Xb3JkKEFjY3VtdWxhdG9yKQorICAgIGJveEludDMyKEFjY3VtdWxhdG9yLCBBY2N1bXVsYXRv
clRhZykKIAotICAgICMgU2F2ZSByZXR1cm4gcmVnaXN0ZXJzCi0gICAgbWFjcm8gZm9yRWFjaFJl
dHVybldhc21KU1IoZm4pCi0gICAgICAgIGlmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICAgICAg
Zm4oMCAqIDgsIHdhMCwgd2ExKQotICAgICAgICBlbHNpZiBYODZfNjRfV0lOCi0gICAgICAgICAg
ICBmbigwICogOCwgd2EwKQotICAgICAgICAgICAgZm4oMSAqIDgsIHdhMSkKLSAgICAgICAgZWxz
aWYgSlNWQUxVRTY0Ci0gICAgICAgICAgICBmbigwICogOCwgd2EwKQotICAgICAgICAgICAgZm4o
MSAqIDgsIHdhMSkKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZm4oMCAqIDgsIHdhMSwgd2Ew
KQotICAgICAgICBlbmQKK29wY29kZShCb3hJbnQ2NCkKKyAgICBicmVhaworCitvcGNvZGUoQm94
RmxvYXQzMikKKyAgICBicmVhaworCitvcGNvZGUoQm94RmxvYXQ2NCkKKyAgICBicmVhaworCitv
cGNvZGUoVW5Cb3hJbnQzMikKKyAgICBicmVhaworCitvcGNvZGUoVW5Cb3hJbnQ2NCkKKyAgICBi
cmVhaworCitvcGNvZGUoVW5Cb3hGbG9hdDMyKQorICAgIGJyZWFrCisKK29wY29kZShVbkJveEZs
b2F0NjQpCisgICAgYnJlYWsKKworb3Bjb2RlKFplcm8pCisgICAgYnJlYWsKKworb3Bjb2RlKFVu
ZGVmaW5lZCkKKyAgICBtb3ZlIFZhbHVlVW5kZWZpbmVkLCBBY2N1bXVsYXRvcgorCitvcGNvZGUo
U2hpZnRUYWcpCisgICAgYnJlYWsKKworb3Bjb2RlKE1lbW9yeSkKKyAgICBqbXAgLm1lbW9yeQor
CitvcGNvZGUoQ2FsbCkKKyAgICBqbXAgLmNhbGwKKworb3Bjb2RlKERvbmUpCisgICAgam1wIC5k
b25lCisKK29wY29kZShXQTApCisgICAgbW92ZSBBY2N1bXVsYXRvciwgd2EwCisKK29wY29kZShX
QTEpCisgICAgbW92ZSBBY2N1bXVsYXRvciwgd2ExCisKK29wY29kZShXQTIpCisgICAgbW92ZSBB
Y2N1bXVsYXRvciwgd2EyCisKK29wY29kZShXQTMpCisgICAgbW92ZSBBY2N1bXVsYXRvciwgd2Ez
CisKK29wY29kZShXQTQpCisgICAgbW92ZSBBY2N1bXVsYXRvciwgd2E0CisKK29wY29kZShXQTUp
CisgICAgbW92ZSBBY2N1bXVsYXRvciwgd2E1CisKK29wY29kZShXQTYpCisgICAgaWYgQVJNNjQg
b3IgQVJNNjRFCisgICAgICAgIG1vdmUgQWNjdW11bGF0b3IsIHdhNgorICAgIGVsc2UKKyAgICAg
ICAgYnJlYWsKICAgICBlbmQKLSAgICBtYWNybyBmb3JFYWNoUmV0dXJuSlNKU1IoZm4pCi0gICAg
ICAgIGlmIEFSTTY0IG9yIEFSTTY0RQotICAgICAgICAgICAgZm4oMCAqIDgsIHIwLCByMSkKLSAg
ICAgICAgZWxzaWYgWDg2XzY0X1dJTgotICAgICAgICAgICAgZm4oMCAqIDgsIHIwKQotICAgICAg
ICAgICAgZm4oMSAqIDgsIHIxKQotICAgICAgICBlbHNpZiBKU1ZBTFVFNjQKLSAgICAgICAgICAg
IGZuKDAgKiA4LCByMCkKLSAgICAgICAgICAgIGZuKDEgKiA4LCByMSkKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgZm4oMCAqIDgsIHIxLCByMCkKLSAgICAgICAgZW5kCisKK29wY29kZShXQTcp
CisgICAgaWYgQVJNNjQgb3IgQVJNNjRFCisgICAgICAgIG1vdmUgQWNjdW11bGF0b3IsIHdhNwor
ICAgIGVsc2UKKyAgICAgICAgYnJlYWsKICAgICBlbmQKIAotaWYgQVJNNjQgb3IgQVJNNjRFCi0g
ICAgZm9yRWFjaFJldHVybldhc21KU1IobWFjcm8gKG9mZnNldCwgZ3ByMSwgZ3ByMikKLSAgICAg
ICAgc3RvcmVwYWlycSBncHIxLCBncHIyLCBvZmZzZXRbc3BdCi0gICAgZW5kKQotZWxzaWYgSlNW
QUxVRTY0Ci0gICAgZm9yRWFjaFJldHVybldhc21KU1IobWFjcm8gKG9mZnNldCwgZ3ByKQotICAg
ICAgICBzdG9yZXEgZ3ByLCBvZmZzZXRbc3BdCi0gICAgZW5kKQotZWxzZQotICAgIGZvckVhY2hS
ZXR1cm5XYXNtSlNSKG1hY3JvIChvZmZzZXQsIGdwck1zdywgZ3BMc3cpCi0gICAgICAgIHN0b3Jl
MmlhIGdwTHN3LCBncHJNc3csIG9mZnNldFtzcF0KLSAgICBlbmQpCi1lbmQKK29wY29kZShXUjAp
CisgICAgbW92ZSBBY2N1bXVsYXRvciwgcjAKIAotaWYgQVJNNjQgb3IgQVJNNjRFCi0gICAgZm9y
RWFjaEFyZ3VtZW50RlBSKG1hY3JvIChvZmZzZXQsIGZwcjEsIGZwcjIpCi0gICAgICAgIHN0b3Jl
cGFpcmQgZnByMSwgZnByMiwgb2Zmc2V0W3NwXQotICAgIGVuZCkKLWVsc2UKLSAgICBmb3JFYWNo
QXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnByKQotICAgICAgICBzdG9yZWQgZnByLCBvZmZz
ZXRbc3BdCi0gICAgZW5kKQotZW5kCitvcGNvZGUoV0EwX1JFQUQpCisgICAgbW92ZSB3YTAsIEFj
Y3VtdWxhdG9yCiAKLSAgICAjIFByZXBhcmUgZnJhbWUKLSAgICBtb3ZlIHNwLCBhMAotICAgIG1v
dmUgY2ZyLCBhMQotICAgIGNDYWxsMihfb3BlcmF0aW9uSlNUb1dhc21FbnRyeVdyYXBwZXJCdWls
ZFJldHVybkZyYW1lKQorb3Bjb2RlKFdSMSkKKyAgICBtb3ZlIEFjY3VtdWxhdG9yLCByMQogCi0g
ICAgIyBMb2FkIHJldHVybiByZWdpc3RlcnMKLWlmIEFSTTY0IG9yIEFSTTY0RQotICAgIGZvckVh
Y2hSZXR1cm5KU0pTUihtYWNybyAob2Zmc2V0LCBncHIxLCBncHIyKQotICAgICAgICBsb2FkcGFp
cnEgb2Zmc2V0W3NwXSwgZ3ByMSwgZ3ByMgotICAgIGVuZCkKLWVsc2lmIEpTVkFMVUU2NAotICAg
IGZvckVhY2hSZXR1cm5KU0pTUihtYWNybyAob2Zmc2V0LCBncHIpCi0gICAgICAgIGxvYWRxIG9m
ZnNldFtzcF0sIGdwcgotICAgIGVuZCkKK29wY29kZShXQUYwKQorICAgIGJyZWFrCisKK29wY29k
ZXNFbmQoKQorLmlkaXNwYXRjaDoKKworICAgIGFkdmFuY2UoKQorICAgIGFuZHAgY29uc3RleHBy
IFdhc206OkpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6Ok9wY29kZU1hc2ss
IFNjcmF0Y2gKKyAgICBsc2hpZnRxIE9wY29kZVNpemVTaGlmdCwgU2NyYXRjaAorCisgICAgaWYg
QVJNNjQgb3IgQVJNNjRFCisgICAgICAgIHBjcnRvYWRkciBfanNfdG9fd2FzbV93cmFwcGVyX2Vu
dHJ5X2ludGVycF9iZWdpbiwgU2NyYXRjaDIKKyAgICAgICAgYWRkcCBTY3JhdGNoMiwgU2NyYXRj
aAorICAgIGVsc2lmIFg4Nl82NAorICAgICAgICBzdG9yZXEgQWNjdW11bGF0b3IsIEFjY3VtdWxh
dG9yU3BpbGxbY2ZyXQorICAgICAgICBsZWFwIChfanNfdG9fd2FzbV93cmFwcGVyX2VudHJ5X2lu
dGVycF9iZWdpbiksIEFjY3VtdWxhdG9yCisgICAgICAgIGFkZHAgQWNjdW11bGF0b3IsIFNjcmF0
Y2gKKyAgICAgICAgbG9hZHEgQWNjdW11bGF0b3JTcGlsbFtjZnJdLCBBY2N1bXVsYXRvcgorICAg
IGVsc2UKKyAgICAgICAgYnJlYWsKKyAgICBlbmQKKyAgICBpZiBBUk02NEUKKyAgICAgICAgZW1p
dCAiYnIgeDEwIiAjIFNjcmF0Y2gKKyAgICBlbHNlCisgICAgICAgIGptcCBTY3JhdGNoCisgICAg
ZW5kCisgICAgYnJlYWsKKworLm1lbW9yeToKKyAgICBpZiBBUk02NCBvciBBUk02NEUKKyAgICAg
ICAgbG9hZHBhaXJxIFdhc206Okluc3RhbmNlOjptX2NhY2hlZE1lbW9yeVt3YXNtSW5zdGFuY2Vd
LCBtZW1vcnlCYXNlLCBib3VuZHNDaGVja2luZ1NpemUKKyAgICBlbHNpZiBYODZfNjQKKyAgICAg
ICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkTWVtb3J5W3dhc21JbnN0YW5jZV0sIG1l
bW9yeUJhc2UKKyAgICAgICAgbG9hZHAgV2FzbTo6SW5zdGFuY2U6Om1fY2FjaGVkQm91bmRzQ2hl
Y2tpbmdTaXplW3dhc21JbnN0YW5jZV0sIGJvdW5kc0NoZWNraW5nU2l6ZQorICAgIGVuZAorICAg
IGlmIG5vdCBBUk12NworICAgICAgICBjYWdlZFByaW1pdGl2ZU1heUJlTnVsbChtZW1vcnlCYXNl
LCBTY3JhdGNoKQorICAgIGVuZAorICAgIGlkaXNwYXRjaCgpCisKKy5jYWxsOgorICAgIHN0b3Jl
cSBNUEMsIE1QQ1NwaWxsW2Nmcl0KK2lmIEFSTTY0IG9yIEFSTTY0RSBvciBBUk12NworICAgIGNh
bGwgQ2FsbGVlRXhlY3V0YWJsZUFkZHJlc3MsIExMSW50VG9XYXNtRW50cnlQdHJUYWcKIGVsc2UK
LSAgICBmb3JFYWNoUmV0dXJuSlNKU1IobWFjcm8gKG9mZnNldCwgZ3ByTXN3LCBncExzdykKLSAg
ICAgICAgbG9hZDJpYSBvZmZzZXRbc3BdLCBncExzdywgZ3ByTXN3Ci0gICAgZW5kKQorICAgIGxv
YWRxIE1QQ0NTUlNsb3RbY2ZyXSwgTVBDCisgICAgbG9hZHEgQWNjdW11bGF0b3JDU1JTbG90W2Nm
cl0sIEFjY3VtdWxhdG9yCisgICAgY2FsbCBDYWxsZWVFeGVjdXRhYmxlQWRkcmVzc1tjZnJdCiBl
bmQKKyAgICBsb2FkcSBNUENTcGlsbFtjZnJdLCBNUEMKKyAgICBjbG9iYmVyVm9sYXRpbGVSZWdp
c3RlcnMoKQorICAgIGNsb2JiZXJBcmd1bWVudE9ubHlSZWdpc3RlcnMoKQorICAgIGlkaXNwYXRj
aCgpCiAKLSAgICAjIENsZWFuIHVwIGFuZCByZXR1cm4KKy5kb25lOgogICAgIHJlc3RvcmVKU0Vu
dHJ5cG9pbnRJbnRlcnByZXRlclJlZ2lzdGVycygpCiAgICAgY2xvYmJlclZvbGF0aWxlUmVnaXN0
ZXJzKCkKICAgICByZXN0b3JlQ2FsbGVyUENBbmRDRlIoKQogICAgIHJldAogICAgIGJyZWFrCiBl
bmQpCitlbHNlCisgICAgb3AoanNfdG9fd2FzbV93cmFwcGVyX2VudHJ5LCBtYWNybyAoKQorICAg
ICAgICBicmVhaworICAgIGVuZCkKK2VuZAogCiBtYWNybyB0cmFjZUV4ZWN1dGlvbigpCiAgICAg
aWYgVFJBQ0lORwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRl
eCA5N2I3YzI2NDM1NDUuLmU1ZmVmMGMxNWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTcxMiw2ICs3MTIsNyBAQCB2b2lkIE9wdGlvbnM6Om5vdGlm
eU9wdGlvbnNDaGFuZ2VkKCkKICAgICBPcHRpb25zOjp1c2VDb25jdXJyZW50R0MoKSA9IGZhbHNl
OwogICAgIE9wdGlvbnM6OmZvcmNlVW5saW5rZWRERkcoKSA9IGZhbHNlOwogICAgIE9wdGlvbnM6
OnVzZVdlYkFzc2VtYmx5U0lNRCgpID0gZmFsc2U7CisgICAgT3B0aW9uczo6dXNlSW50ZXJwcmV0
ZWRKU0VudHJ5V3JhcHBlcnMoKSA9IGZhbHNlOwogI2lmICFDUFUoQVJNX1RIVU1CMikKICAgICBP
cHRpb25zOjp1c2VCQlFKSVQoKSA9IGZhbHNlOwogI2VuZGlmCkBAIC03MjAsNiArNzIxLDEwIEBA
IHZvaWQgT3B0aW9uczo6bm90aWZ5T3B0aW9uc0NoYW5nZWQoKQogI2VuZGlmCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShDX0xPT1ApIHx8ICFDUFUoQUREUkVTUzY0KSB8fCAhKENQVShBUk02NCkgfHwg
KENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkpCisgICAgT3B0aW9uczo6dXNlSW50ZXJwcmV0
ZWRKU0VudHJ5V3JhcHBlcnMoKSA9IGZhbHNlOworI2VuZGlmCisKICNpZiAhQ1BVKEFSTTY0KQog
ICAgIE9wdGlvbnM6OnVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb24oKSA9
IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQkJRUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5j
cHAKaW5kZXggMTY2ZTZlOTM1MjljLi4wN2NlM2FjNTZlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKQEAgLTIxNyw3ICsyMTcsNyBAQCB2b2lkIEJCUVBs
YW46OndvcmsoQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogICAgIC8vIFJlcGxhY2UgdGhlIExM
SW50IGludGVycHJldGVkIGVudHJ5IGNhbGxlZS4gTm90ZSB0aGF0IHdlIGNhbiBkbyB0aGlzIGFm
dGVyIHdlIHB1Ymxpc2ggb3VyCiAgICAgLy8gY2FsbGVlIGJlY2F1c2UgY2FsbGluZyBpbnRvIHRo
ZSBMTEludCBzaG91bGQgc3RpbGwgd29yay4KICAgICBhdXRvKiBqc0VudHJ5cG9pbnRDYWxsZWUg
PSBtX2NhbGxlZUdyb3VwLT5tX2pzRW50cnlwb2ludENhbGxlZXMuZ2V0KG1fZnVuY3Rpb25JbmRl
eCk7Ci0gICAgaWYgKGpzRW50cnlwb2ludENhbGxlZSAmJiBqc0VudHJ5cG9pbnRDYWxsZWUtPmNv
bXBpbGF0aW9uTW9kZSgpID09IENvbXBpbGF0aW9uTW9kZTo6SlNFbnRyeXBvaW50SW50ZXJwcmV0
ZXJNb2RlICYmICFzdGF0aWNfY2FzdDxKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZSo+KGpz
RW50cnlwb2ludENhbGxlZSktPmhhc1JlcGxhY2VtZW50KCkpIHsKKyAgICBpZiAoanNFbnRyeXBv
aW50Q2FsbGVlICYmIGpzRW50cnlwb2ludENhbGxlZS0+Y29tcGlsYXRpb25Nb2RlKCkgPT0gQ29t
cGlsYXRpb25Nb2RlOjpKU0VudHJ5cG9pbnRJbnRlcnByZXRlck1vZGUpIHsKICAgICAgICAgTG9j
a2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBUeXBlSW5kZXggdHlwZUluZGV4ID0gbV9t
b2R1bGVJbmZvcm1hdGlvbi0+aW50ZXJuYWxGdW5jdGlvblR5cGVJbmRpY2VzW21fZnVuY3Rpb25J
bmRleF07CiAgICAgICAgIGNvbnN0IFR5cGVEZWZpbml0aW9uJiBzaWduYXR1cmUgPSBUeXBlSW5m
b3JtYXRpb246OmdldCh0eXBlSW5kZXgpLmV4cGFuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQ2FsbGVlLmNwcAppbmRleCBiZDEzYjgyYjE4YjguLjJiMmM0OGE4OWI1MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAKQEAgLTM5LDE4ICszOSwx
OSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCi1XVEZfTUFLRV9UWk9O
RV9BTExPQ0FURURfSU1QTChDYWxsZWUpOwotV1RGX01BS0VfVFpPTkVfQUxMT0NBVEVEX0lNUEwo
SklUQ2FsbGVlKTsKLVdURl9NQUtFX1RaT05FX0FMTE9DQVRFRF9JTVBMKEpTRW50cnlwb2ludENh
bGxlZSk7Ci1XVEZfTUFLRV9UWk9ORV9BTExPQ0FURURfSU1QTChKU0VudHJ5cG9pbnRJbnRlcnBy
ZXRlckNhbGxlZSk7Ci1XVEZfTUFLRV9UWk9ORV9BTExPQ0FURURfSU1QTChXYXNtVG9KU0NhbGxl
ZSk7Ci1XVEZfTUFLRV9UWk9ORV9BTExPQ0FURURfSU1QTChKU1RvV2FzbUlDQ2FsbGVlKTsKLVdU
Rl9NQUtFX1RaT05FX0FMTE9DQVRFRF9JTVBMKE9wdGltaXppbmdKSVRDYWxsZWUpOwotV1RGX01B
S0VfVFpPTkVfQUxMT0NBVEVEX0lNUEwoT01HQ2FsbGVlKTsKLVdURl9NQUtFX1RaT05FX0FMTE9D
QVRFRF9JTVBMKE9TUkVudHJ5Q2FsbGVlKTsKLVdURl9NQUtFX1RaT05FX0FMTE9DQVRFRF9JTVBM
KEJCUUNhbGxlZSk7Ci1XVEZfTUFLRV9UWk9ORV9BTExPQ0FURURfSU1QTChJUEludENhbGxlZSk7
Ci1XVEZfTUFLRV9UWk9ORV9BTExPQ0FURURfSU1QTChMTEludENhbGxlZSk7CitERUZJTkVfQUxM
T0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKENhbGxlZSk7CitERUZJTkVfQUxMT0NBVE9SX1dJ
VEhfSEVBUF9JREVOVElGSUVSKEpJVENhbGxlZSk7CitERUZJTkVfQUxMT0NBVE9SX1dJVEhfSEVB
UF9JREVOVElGSUVSKEpTRW50cnlwb2ludENhbGxlZSk7CitERUZJTkVfQUxMT0NBVE9SX1dJVEhf
SEVBUF9JREVOVElGSUVSKEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlKTsKK0RFRklORV9B
TExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSlNFbnRyeXBvaW50SklUQ2FsbGVlKTsKK0RF
RklORV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoV2FzbVRvSlNDYWxsZWUpOworREVG
SU5FX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihKU1RvV2FzbUlDQ2FsbGVlKTsKK0RF
RklORV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoT3B0aW1pemluZ0pJVENhbGxlZSk7
CitERUZJTkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKE9TUkVudHJ5Q2FsbGVlKTsK
K0RFRklORV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoT01HQ2FsbGVlKTsKK0RFRklO
RV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoQkJRQ2FsbGVlKTsKK0RFRklORV9BTExP
Q0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSVBJbnRDYWxsZWUpOworREVGSU5FX0FMTE9DQVRP
Ul9XSVRIX0hFQVBfSURFTlRJRklFUihMTEludENhbGxlZSk7CiAKIENhbGxlZTo6Q2FsbGVlKFdh
c206OkNvbXBpbGF0aW9uTW9kZSBjb21waWxhdGlvbk1vZGUpCiAgICAgOiBOYXRpdmVDYWxsZWUo
TmF0aXZlQ2FsbGVlOjpDYXRlZ29yeTo6V2FzbSwgSW1wbGVtZW50YXRpb25WaXNpYmlsaXR5OjpQ
cml2YXRlKQpAQCAtNDExLDE0ICs0MTIsMTYgQEAgY29uc3QgU3RhY2tNYXAmIE9wdGltaXppbmdK
SVRDYWxsZWU6OnN0YWNrbWFwKENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCkgY29uc3QKIH0K
ICNlbmRpZgogCi1KU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZTo6SlNFbnRyeXBvaW50SW50
ZXJwcmV0ZXJDYWxsZWUodW5zaWduZWQgZnJhbWVTaXplLCBUeXBlSW5kZXggdHlwZUluZGV4KQor
SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWU6OkpTRW50cnlwb2ludEludGVycHJldGVyQ2Fs
bGVlKFZlY3RvcjxKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhPiYmIG1ldGFk
YXRhLCBMTEludENhbGxlZSogY2FsbGVlKQogICAgIDogSlNFbnRyeXBvaW50Q2FsbGVlKFdhc206
OkNvbXBpbGF0aW9uTW9kZTo6SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJNb2RlKQotICAgICwgZnJh
bWVTaXplKGZyYW1lU2l6ZSkKLSAgICAsIHR5cGVJbmRleCh0eXBlSW5kZXgpCi0gICAgLCB3YXNt
RnVuY3Rpb25Qcm9sb2d1ZShPcHRpb25zOjp1c2VKSVQoKQotICAgICAgICA/IExMSW50Ojp3YXNt
RnVuY3Rpb25FbnRyeVRodW5rKCkuY29kZSgpLnJldGFnZ2VkPExMSW50VG9XYXNtRW50cnlQdHJU
YWc+KCkKLSAgICAgICAgOiBDb2RlUHRyPENGdW5jdGlvblB0clRhZz4oTExJbnQ6OmdldENvZGVG
dW5jdGlvblB0cjxDRnVuY3Rpb25QdHJUYWc+KHdhc21fZnVuY3Rpb25fcHJvbG9ndWVfdHJhbXBv
bGluZSkpLnJldGFnZ2VkPExMSW50VG9XYXNtRW50cnlQdHJUYWc+KCkpCisgICAgLCBUcmFpbGlu
Z0FycmF5PEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlLCBKU0VudHJ5cG9pbnRJbnRlcnBy
ZXRlckNhbGxlZU1ldGFkYXRhPihtZXRhZGF0YS5zaXplKCksIG1ldGFkYXRhLmJlZ2luKCksIG1l
dGFkYXRhLmVuZCgpKQorICAgICwgd2FzbUNhbGxlZShyZWludGVycHJldF9jYXN0PGludHB0cl90
PihDYWxsZWVCaXRzOjpib3hOYXRpdmVDYWxsZWVJZkV4aXN0cyhjYWxsZWUpKSkKIHsKKyAgICBp
ZiAoT3B0aW9uczo6dXNlSklUKCkpCisgICAgICAgIHdhc21GdW5jdGlvblByb2xvZ3VlID0gTExJ
bnQ6Ondhc21GdW5jdGlvbkVudHJ5VGh1bmsoKS5jb2RlKCkucmV0YWdnZWQ8TExJbnRUb1dhc21F
bnRyeVB0clRhZz4oKTsKKyAgICBlbHNlCisgICAgICAgIHdhc21GdW5jdGlvblByb2xvZ3VlID0g
TExJbnQ6OmdldENvZGVGdW5jdGlvblB0cjxDRnVuY3Rpb25QdHJUYWc+KHdhc21fZnVuY3Rpb25f
cHJvbG9ndWVfdHJhbXBvbGluZSk7CisKIH0KIAogQ29kZVB0cjxXYXNtRW50cnlQdHJUYWc+IEpT
RW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlOjplbnRyeXBvaW50SW1wbCgpIGNvbnN0CkBAIC00
NDYsNyArNDQ5LDYgQEAgUmVnaXN0ZXJBdE9mZnNldExpc3QqIEpTRW50cnlwb2ludEludGVycHJl
dGVyQ2FsbGVlOjpjYWxsZWVTYXZlUmVnaXN0ZXJzSW1wbCgpCiAjZW5kaWYKICAgICAgICAgY2Fs
bGVlU2F2ZVJlZ2lzdGVycy5jb25zdHJ1Y3QoV1RGTW92ZShyZWdpc3RlcnMpKTsKICAgICB9KTsK
LSAgICBBU1NFUlQoV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHN0YWNrQWxpZ25tZW50Qnl0ZXMo
KT4oY2FsbGVlU2F2ZVJlZ2lzdGVycy0+c2l6ZU9mQXJlYUluQnl0ZXMoKSkgPT0gU3BpbGxTdGFj
a1NwYWNlQWxpZ25lZCk7CiAgICAgcmV0dXJuICZjYWxsZWVTYXZlUmVnaXN0ZXJzLmdldCgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmgKaW5kZXggOGIyYzVkYTIx
ZGU4Li40OGY3MDJhYjAwZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21DYWxsZWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVl
LmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5oIgogI2luY2x1
ZGUgIk5hdGl2ZUNhbGxlZS5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCi0j
aW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRlICJXYXNtQ29tcGlsYXRpb25Nb2Rl
LmgiCiAjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgogI2luY2x1ZGUgIldhc21GdW5jdGlvbkNvZGVC
bG9ja0dlbmVyYXRvci5oIgpAQCAtNTMsOCArNTIsMTIgQEAgY2xhc3MgTExJbnRPZmZzZXRzRXh0
cmFjdG9yOwogCiBuYW1lc3BhY2UgV2FzbSB7CiAKKy8vIFRoaXMgY2xhc3MgaXMgZmFzdCBhbGxv
Y2F0ZWQgKGluc3RlYWQgb2YgdXNpbmcgVFpvbmUpIGJlY2F1c2UKKy8vIHRoZSBzdWJjbGFzcyBK
U0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhIGlzIHZhcmlhYmxlLXNpemVkCitE
RUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihDYWxsZWUpOworCiBjbGFzcyBD
YWxsZWUgOiBwdWJsaWMgTmF0aXZlQ2FsbGVlIHsKLSAgICBXVEZfTUFLRV9UWk9ORV9BTExPQ0FU
RUQoQ2FsbGVlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJ
RklFUihDYWxsZWUpOwogcHVibGljOgogICAgIEluZGV4T3JOYW1lIGluZGV4T3JOYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9pbmRleE9yTmFtZTsgfQogICAgIENvbXBpbGF0aW9uTW9kZSBjb21waWxh
dGlvbk1vZGUoKSBjb25zdCB7IHJldHVybiBtX2NvbXBpbGF0aW9uTW9kZTsgfQpAQCAtODgsOCAr
OTEsMTAgQEAgcHJvdGVjdGVkOgogICAgIEZpeGVkVmVjdG9yPEhhbmRsZXJJbmZvPiBtX2V4Y2Vw
dGlvbkhhbmRsZXJzOwogfTsKIAorREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJ
RVIoSklUQ2FsbGVlKTsKKwogY2xhc3MgSklUQ2FsbGVlIDogcHVibGljIENhbGxlZSB7Ci0gICAg
V1RGX01BS0VfVFpPTkVfQUxMT0NBVEVEKEpJVENhbGxlZSk7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoSklUQ2FsbGVlKTsKIHB1YmxpYzoKICAgICBm
cmllbmQgY2xhc3MgQ2FsbGVlOwogICAgIEZpeGVkVmVjdG9yPFVubGlua2VkV2FzbVRvV2FzbUNh
bGw+JiB3YXNtVG9XYXNtQ2FsbHNpdGVzKCkgeyByZXR1cm4gbV93YXNtVG9XYXNtQ2FsbHNpdGVz
OyB9CkBAIC0xMjUsMTQgKzEzMCwxOCBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIH07CiAKK0RFQ0xB
UkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEpTRW50cnlwb2ludENhbGxlZSk7CisK
IGNsYXNzIEpTRW50cnlwb2ludENhbGxlZSA6IHB1YmxpYyBDYWxsZWUgewotICAgIFdURl9NQUtF
X1RaT05FX0FMTE9DQVRFRChKU0VudHJ5cG9pbnRDYWxsZWUpOworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKEpTRW50cnlwb2ludENhbGxlZSk7CiBwcm90
ZWN0ZWQ6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNFbnRyeXBvaW50Q2FsbGVlKFdhc206OkNv
bXBpbGF0aW9uTW9kZSBtb2RlKSA6IENhbGxlZShtb2RlKSB7IH0KIH07CiAKK0RFQ0xBUkVfQUxM
T0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEpTRW50cnlwb2ludEpJVENhbGxlZSk7CisKIGNs
YXNzIEpTRW50cnlwb2ludEpJVENhbGxlZSBmaW5hbCA6IHB1YmxpYyBKU0VudHJ5cG9pbnRDYWxs
ZWUgewotICAgIFdURl9NQUtFX1RaT05FX0FMTE9DQVRFRChKU0VudHJ5cG9pbnRKSVRDYWxsZWUp
OworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKEpTRW50
cnlwb2ludEpJVENhbGxlZSk7CiBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIENhbGxlZTsKIApA
QCAtMTczLDE3ICsxODIsMjA3IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLWNsYXNzIEpTRW50
cnlwb2ludEludGVycHJldGVyQ2FsbGVlIGZpbmFsIDogcHVibGljIEpTRW50cnlwb2ludENhbGxl
ZSB7Ci0gICAgV1RGX01BS0VfVFpPTkVfQUxMT0NBVEVEKEpTRW50cnlwb2ludEludGVycHJldGVy
Q2FsbGVlKTsKKyNkZWZpbmUgRk9SX0VBQ0hfSlNfVE9fV0FTTV9XUkFQUEVSX01FVEFEQVRBX09Q
Q09ERShtYWNybykgXAorLyogTG9hZC9TdG9yZSBhY2N1bXVsYXRvcjsgZm9sbG93ZWQgYnkgKG9m
ZnNldCBmcm9tIHNwIChsb2FkKSBvciBjZnIgKHN0b3JlKTogaW50OF90KSAqLyBcCittYWNybygw
LCBMb2FkSTMyKSBcCittYWNybygxLCBMb2FkSTY0KSBcCittYWNybygyLCBMb2FkRjMyKSBcCitt
YWNybygzLCBMb2FkRjY0KSBcCittYWNybyg0LCBTdG9yZUkzMikgXAorbWFjcm8oNSwgU3RvcmVJ
NjQpIFwKK21hY3JvKDYsIFN0b3JlRjMyKSBcCittYWNybyg3LCBTdG9yZUY2NCkgXAorLyogQm94
L3VuYm94IGFjY3VtdWxhdG9yICovIFwKK21hY3JvKDgsIEJveEludDMyKSBcCittYWNybyg5LCBC
b3hJbnQ2NCkgXAorbWFjcm8oMTAsIEJveEZsb2F0MzIpIFwKK21hY3JvKDExLCBCb3hGbG9hdDY0
KSBcCittYWNybygxMiwgVW5Cb3hJbnQzMikgXAorbWFjcm8oMTMsIFVuQm94SW50NjQpIFwKK21h
Y3JvKDE0LCBVbkJveEZsb2F0MzIpIFwKK21hY3JvKDE1LCBVbkJveEZsb2F0NjQpIFwKKy8qIE1v
dmUgY29uc3RhbnQgdG8gYWNjdW11bGF0b3IgKi8gXAorbWFjcm8oMTYsIFplcm8pIFwKK21hY3Jv
KDE3LCBVbmRlZmluZWQpIFwKKy8qIEpTVmFsdWUzMl82NCBvbmx5OiBjb3B5IHRhZyBhY2N1bXVs
YXRvciB0byBwYXlsb2FkIGFjY3VtdWxhdG9yLiAqLyBcCittYWNybygxOCwgU2hpZnRUYWcpIFwK
Ky8qIE5vIGFyZ3M7IG1hcmsgYSBwaGFzZSBpbiBzdGFjayBjcmVhdGlvbiAqLyBcCittYWNybygx
OSwgTWVtb3J5KSBcCittYWNybygyMCwgQ2FsbCkgXAorbWFjcm8oMjEsIERvbmUpIFwKKy8qIFdy
aXRlIGFjY3VtdWxhdG9yIHRvIHJlZ2lzdGVyICovIFwKK21hY3JvKDIyLCBXQTApIFwKK21hY3Jv
KDIzLCBXQTEpIFwKK21hY3JvKDI0LCBXQTIpIFwKK21hY3JvKDI1LCBXQTMpIFwKK21hY3JvKDI2
LCBXQTQpIFwKK21hY3JvKDI3LCBXQTUpIFwKK21hY3JvKDI4LCBXQTYpIFwKK21hY3JvKDI5LCBX
QTcpIFwKKy8qIFJlc3VsdCByZWdpc3RlcnMgKi8gXAorbWFjcm8oMzAsIFdSMCkgXAorbWFjcm8o
MzEsIFdBMF9SRUFEKSBcCittYWNybygzMiwgV1IxKSBcCisvKiBGUCByZWdpc3RlcnMgKi8gXAor
bWFjcm8oMzMsIFdBRjApIFwKKworCisjZGVmaW5lIERFRklORV9PUChpLCBuKSBcCisgICAgbiA9
IGksCisKKworLy8gU2VlIFdhc21MTEludFBsYW4gdG8gc2VlIGhvdyB0aGlzIGJ5dGVjb2RlIGlz
IGNvbnN0cnVjdGVkLgorLy8gVGhpcyBpcyBhIHNpbXBsZSBhY2N1bXVsYXRvci1iYXNlZCBieXRl
Y29kZSBmb3Igc2V0dGluZyB1cCBhIGZyYW1lIGFuZCBtYXJzaGFsbGluZyBhcmdzCisvLyBFYWNo
IGFyZ3VtZW50IHJlYWRzIG9yIHdyaXRlcyB0byB0aGUgYWNjdW11bGF0b3IKKy8vIE9uIEpTVmFs
dWUzMl82NCBwbGF0Zm9ybXMsIHJlZyBpcyBhY3R1YWxseSB0d28gcmVnaXN0ZXJzIGZvciA2NC1i
aXQgb3BlcmF0aW9ucworZW51bSBjbGFzcyBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1l
dGFkYXRhIDogaW50OF90IHsKKyAgICBGT1JfRUFDSF9KU19UT19XQVNNX1dSQVBQRVJfTUVUQURB
VEFfT1BDT0RFKERFRklORV9PUCkKKworICAgIEludmFsaWRSZWdpc3RlciwKKworICAgIC8vIFdl
IG1hc2sgb3Bjb2RlcyBpbiB0aGUgbGxpbnQgdG8gcHJldmVudCBhcmJpdHJhcnkganVtcHMuCisg
ICAgT3Bjb2RlTWFzayA9IDYzLAorCisgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgYnl0ZSBvZiBl
dmVyeSBwcm9ncmFtCisgICAgRnJhbWVTaXplLCAvLyBzaXplIDogaW50OF90CisKKyAgICBJbnZh
bGlkT3AsCit9OworCisjdW5kZWYgREVGSU5FX09QCisKK2VudW0gY2xhc3MgTWV0YWRhdGFSZWFk
TW9kZSB7CisgICAgUmVhZCwKKyAgICBXcml0ZQorfTsKKworI2lmIFVTRShKU1ZBTFVFNjQpCisK
K2NvbnN0ZXhwciBpbmxpbmUgSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YSBq
c0VudHJ5cG9pbnRNZXRhZGF0YUZvckdQUihHUFJSZWcgZywgTWV0YWRhdGFSZWFkTW9kZSBtb2Rl
KQoreworICAgIGlmIChtb2RlID09IE1ldGFkYXRhUmVhZE1vZGU6OldyaXRlKSB7CisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0
ZXJzOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChnID09IEdQUkluZm86OnRvQXJndW1lbnRSZWdp
c3RlcihpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0VudHJ5cG9p
bnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhPigKKyAgICAgICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8aW50OF90PihKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpXQTAp
ICsgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZyA9PSBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUikKKyAgICAgICAgICAgIHJldHVybiBKU0VudHJ5cG9pbnRJbnRl
cnByZXRlckNhbGxlZU1ldGFkYXRhOjpXUjA7CisgICAgICAgIGlmIChnID09IEdQUkluZm86OnJl
dHVyblZhbHVlR1BSMikKKyAgICAgICAgICAgIHJldHVybiBKU0VudHJ5cG9pbnRJbnRlcnByZXRl
ckNhbGxlZU1ldGFkYXRhOjpXUjE7CisKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfVU5ERVJfQ09O
U1RFWFBSX0NPTlRFWFQoZmFsc2UpOworICAgICAgICByZXR1cm4gSlNFbnRyeXBvaW50SW50ZXJw
cmV0ZXJDYWxsZWVNZXRhZGF0YTo6SW52YWxpZFJlZ2lzdGVyOworICAgIH0KKworICAgIGlmIChn
ID09IEdQUkluZm86OmFyZ3VtZW50R1BSMCkKKyAgICAgICAgcmV0dXJuIEpTRW50cnlwb2ludElu
dGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6OldBMF9SRUFEOworCisgICAgUkVMRUFTRV9BU1NFUlRf
VU5ERVJfQ09OU1RFWFBSX0NPTlRFWFQoZmFsc2UpOworICAgIHJldHVybiBKU0VudHJ5cG9pbnRJ
bnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpJbnZhbGlkUmVnaXN0ZXI7Cit9CisKK2NvbnN0ZXhw
ciBpbmxpbmUgSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YSBqc0VudHJ5cG9p
bnRNZXRhZGF0YUZvckZQUihGUFJSZWcgZiwgTWV0YWRhdGFSZWFkTW9kZSBtb2RlKQoreworICAg
IFJFTEVBU0VfQVNTRVJUX1VOREVSX0NPTlNURVhQUl9DT05URVhUKG1vZGUgPT0gTWV0YWRhdGFS
ZWFkTW9kZTo6V3JpdGUpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdQUkluZm86
Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7ICsraSkgeworICAgICAgICBpZiAoZiA9PSBGUFJJ
bmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoaSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhPigKKyAgICAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxpbnQ4X3Q+KEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0
YWRhdGE6OldBRjApICsgaSk7CisgICAgICAgIH0KKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRf
VU5ERVJfQ09OU1RFWFBSX0NPTlRFWFQoZmFsc2UpOworICAgIHJldHVybiBKU0VudHJ5cG9pbnRJ
bnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpJbnZhbGlkUmVnaXN0ZXI7Cit9CisKK2lubGluZSB2
b2lkIGR1bXBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhKGNvbnN0IFZlY3Rv
cjxKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhPiYgZGF0YSkKK3sKKyAgICBj
b25zdGV4cHIgYXV0byBwcmludE9wID0gW10oSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVN
ZXRhZGF0YSBvKSB7CisgICAgICAgIHN3aXRjaCAobykgeworICAgICAgICBjYXNlIEpTRW50cnlw
b2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6Ok1lbW9yeTogZGF0YUxvZygiTWVtb3J5Iik7
IGJyZWFrOworICAgICAgICBjYXNlIEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRh
dGE6OkRvbmU6IGRhdGFMb2coIkRvbmUiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgSlNFbnRyeXBv
aW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YTo6RnJhbWVTaXplOiBkYXRhTG9nKCJGcmFtZVNp
emUiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVN
ZXRhZGF0YTo6TG9hZEkzMjogZGF0YUxvZygiTG9hZEkzMiIpOyBicmVhazsKKyAgICAgICAgY2Fz
ZSBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpMb2FkRjMyOiBkYXRhTG9n
KCJMb2FkRjMyIik7IGJyZWFrOworICAgICAgICBjYXNlIEpTRW50cnlwb2ludEludGVycHJldGVy
Q2FsbGVlTWV0YWRhdGE6OkxvYWRGNjQ6IGRhdGFMb2coIkxvYWRGNjQiKTsgYnJlYWs7CisgICAg
ICAgIGNhc2UgSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YTo6U3RvcmVJMzI6
IGRhdGFMb2coIlN0b3JlSTMyIik7IGJyZWFrOworICAgICAgICBjYXNlIEpTRW50cnlwb2ludElu
dGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6OlN0b3JlRjMyOiBkYXRhTG9nKCJTdG9yZUYzMiIpOyBi
cmVhazsKKyAgICAgICAgY2FzZSBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRh
OjpTdG9yZUY2NDogZGF0YUxvZygiU3RvcmVGNjQiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgSlNF
bnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YTo6TG9hZEk2NDogZGF0YUxvZygiTG9h
ZEk2NCIpOyBicmVhazsKKyAgICAgICAgY2FzZSBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxl
ZU1ldGFkYXRhOjpTdG9yZUk2NDogZGF0YUxvZygiU3RvcmVJNjQiKTsgYnJlYWs7CisgICAgICAg
IGNhc2UgSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YTo6Qm94SW50MzI6IGRh
dGFMb2coIkJveEludDMyIik7IGJyZWFrOworICAgICAgICBjYXNlIEpTRW50cnlwb2ludEludGVy
cHJldGVyQ2FsbGVlTWV0YWRhdGE6OkJveEZsb2F0MzI6IGRhdGFMb2coIkJveEZsb2F0MzIiKTsg
YnJlYWs7CisgICAgICAgIGNhc2UgSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0
YTo6Qm94RmxvYXQ2NDogZGF0YUxvZygiQm94RmxvYXQ2NCIpOyBicmVhazsKKyAgICAgICAgY2Fz
ZSBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpVbkJveEludDMyOiBkYXRh
TG9nKCJVbkJveEludDMyIik7IGJyZWFrOworICAgICAgICBjYXNlIEpTRW50cnlwb2ludEludGVy
cHJldGVyQ2FsbGVlTWV0YWRhdGE6OlVuQm94RmxvYXQzMjogZGF0YUxvZygiVW5Cb3hGbG9hdDMy
Iik7IGJyZWFrOworICAgICAgICBjYXNlIEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0
YWRhdGE6OlVuQm94RmxvYXQ2NDogZGF0YUxvZygiVW5Cb3hGbG9hdDY0Iik7IGJyZWFrOworICAg
ICAgICBjYXNlIEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6Olplcm86IGRh
dGFMb2coIlplcm8iKTsgYnJlYWs7CisgICAgICAgIGNhc2UgSlNFbnRyeXBvaW50SW50ZXJwcmV0
ZXJDYWxsZWVNZXRhZGF0YTo6VW5kZWZpbmVkOiBkYXRhTG9nKCJVbmRlZmluZWQiKTsgYnJlYWs7
CisgICAgICAgIGNhc2UgSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YTo6Qm94
SW50NjQ6IGRhdGFMb2coIkJveEludDY0Iik7IGJyZWFrOworICAgICAgICBjYXNlIEpTRW50cnlw
b2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6OlVuQm94SW50NjQ6IGRhdGFMb2coIlVuQm94
SW50NjQiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxs
ZWVNZXRhZGF0YTo6Q2FsbDogZGF0YUxvZygiQ2FsbCIpOyBicmVhazsKKyAgICAgICAgY2FzZSBK
U0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpXQTBfUkVBRDogZGF0YUxvZygi
V0EwX1JFQUQiKTsgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKG8gPj0gSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YTo6V0Ew
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG8gPCBKU0VudHJ5cG9pbnRJbnRlcnByZXRl
ckNhbGxlZU1ldGFkYXRhOjpJbnZhbGlkUmVnaXN0ZXIpOworICAgICAgICAgICAgaWYgKG8gPCBK
U0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpXUjApIHsKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJXQSIpOworICAgICAgICAgICAgICAgIGRhdGFMb2coc3RhdGljX2Nhc3Q8
aW50OF90PihvKSAtIHN0YXRpY19jYXN0PGludDhfdD4oSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJD
YWxsZWVNZXRhZGF0YTo6V0EwKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG8gPCBKU0VudHJ5
cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpXQUYwKSB7CisgICAgICAgICAgICAgICAg
ZGF0YUxvZygiUiIpOworICAgICAgICAgICAgICAgIGRhdGFMb2coc3RhdGljX2Nhc3Q8aW50OF90
PihvKSAtIHN0YXRpY19jYXN0PGludDhfdD4oSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVN
ZXRhZGF0YTo6V1IwKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRh
dGFMb2coIkZBIik7CisgICAgICAgICAgICAgICAgZGF0YUxvZyhzdGF0aWNfY2FzdDxpbnQ4X3Q+
KG8pIC0gc3RhdGljX2Nhc3Q8aW50OF90PihKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1l
dGFkYXRhOjpXQUYwKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBkYXRhTG9nKCIgIik7CisgICAgfTsKKyAgICBjb25zdGV4cHIgYXV0byBwcmludE9mZnNl
dCA9IFtdKEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGEgbykgeworICAgICAg
ICBkYXRhTG9nKCJjZnJbIiwgc3RhdGljX2Nhc3Q8aW50OF90PihvKSwgIl0iKTsKKyAgICAgICAg
ZGF0YUxvZygiICIpOworICAgIH07CisgICAgZm9yICh1bnNpZ25lZCBwYyA9IDA7IHBjIDwgZGF0
YS5zaXplKCk7KSB7CisgICAgICAgIHN3aXRjaCAoZGF0YVtwY10pIHsKKyAgICAgICAgY2FzZSBK
U0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpGcmFtZVNpemU6CisgICAgICAg
ICAgICBwcmludE9wKGRhdGFbcGMrK10pOworICAgICAgICAgICAgZGF0YUxvZyhzdGF0aWNfY2Fz
dDxpbnQ+KGRhdGFbcGMrK10pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEpT
RW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6OkxvYWRJMzI6CisgICAgICAgIGNh
c2UgSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YTo6TG9hZEYzMjoKKyAgICAg
ICAgY2FzZSBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpMb2FkRjY0Ogor
ICAgICAgICBjYXNlIEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6OlN0b3Jl
STMyOgorICAgICAgICBjYXNlIEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6
OlN0b3JlRjMyOgorICAgICAgICBjYXNlIEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0
YWRhdGE6OlN0b3JlRjY0OgorICAgICAgICBjYXNlIEpTRW50cnlwb2ludEludGVycHJldGVyQ2Fs
bGVlTWV0YWRhdGE6OkxvYWRJNjQ6CisgICAgICAgIGNhc2UgSlNFbnRyeXBvaW50SW50ZXJwcmV0
ZXJDYWxsZWVNZXRhZGF0YTo6U3RvcmVJNjQ6CisgICAgICAgICAgICBwcmludE9wKGRhdGFbcGMr
K10pOworICAgICAgICAgICAgcHJpbnRPZmZzZXQoZGF0YVtwYysrXSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDogcHJpbnRPcChkYXRhW3BjKytdKTsKKyAgICAgICAgfQor
ICAgICAgICBkYXRhTG9nTG4oKTsKKyAgICB9Cit9CisKKyNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0
KQorCitERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihKU0VudHJ5cG9pbnRJ
bnRlcnByZXRlckNhbGxlZSk7CitjbGFzcyBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZSBm
aW5hbCA6IHB1YmxpYyBKU0VudHJ5cG9pbnRDYWxsZWUsCisgICAgcHVibGljIFRyYWlsaW5nQXJy
YXk8SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWUsIEpTRW50cnlwb2ludEludGVycHJldGVy
Q2FsbGVlTWV0YWRhdGE+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBf
SURFTlRJRklFUihKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZSk7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIGlubGluZSBSZWY8SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWU+IGNyZWF0ZSh1
bnNpZ25lZCBmcmFtZVNpemUsIFR5cGVJbmRleCB0eXBlSW5kZXgpCisgICAgc3RhdGljIFJlZjxK
U0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZT4gY3JlYXRlKFZlY3RvcjxKU0VudHJ5cG9pbnRJ
bnRlcnByZXRlckNhbGxlZU1ldGFkYXRhPiYmIG1ldGFkYXRhLCBMTEludENhbGxlZSogY2FsbGVl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNFbnRyeXBvaW50SW50ZXJw
cmV0ZXJDYWxsZWUoZnJhbWVTaXplLCB0eXBlSW5kZXgpKTsKKyAgICAgICAgYXV0byBtZXRhZGF0
YVNpemUgPSBtZXRhZGF0YS5zaXplKCk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IChO
b3ROdWxsLCBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1hbGxvYzo6bWFsbG9jKEpTRW50
cnlwb2ludEludGVycHJldGVyQ2FsbGVlOjphbGxvY2F0aW9uU2l6ZShtZXRhZGF0YVNpemUpKSkg
SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWUoV1RGTW92ZShtZXRhZGF0YSksIGNhbGxlZSkp
OwogICAgIH0KIAotICAgIGlubGluZSBib29sIGhhc1JlcGxhY2VtZW50KCkgY29uc3QgeyByZXR1
cm4gISFtX3JlcGxhY2VtZW50Q2FsbGVlOyB9Ci0KLSAgICBpbmxpbmUgdm9pZCBzZXRSZXBsYWNl
bWVudChSZWZQdHI8V2FzbTo6Q2FsbGVlPiBjYWxsZWUpCisgICAgdm9pZCBzZXRSZXBsYWNlbWVu
dChSZWZQdHI8V2FzbTo6Q2FsbGVlPiBjYWxsZWUpCiAgICAgewogICAgICAgICAvLyBOb3RlIHRo
YXQgd2UgY2FuIGNvbXBpbGUgdGhlIHNhbWUgZnVuY3Rpb24gd2l0aCBtdWx0aXBsZSBtZW1vcnkg
bW9kZXMsIHdoaWNoIGNhbiBjYXVzZSB0aGUgSlMtPldhc20gc3R1YiBnZW5lcmF0b3IgdG8KICAg
ICAgICAgLy8gcmFjZS4gVGhhdCdzIGZpbmUsIGJvdGggc3R1YnMgc2hvdWxkIGRvIHRoZSBzYW1l
IHRoaW5nLgpAQCAtMTk5LDMxICszOTgsMjQgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0
ZXhwciBwdHJkaWZmX3Qgb2Zmc2V0T2ZXYXNtQ2FsbGVlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlLCB3YXNtQ2FsbGVlKTsgfQogICAgIHN0
YXRpYyBjb25zdGV4cHIgcHRyZGlmZl90IG9mZnNldE9mV2FzbUZ1bmN0aW9uUHJvbG9ndWUoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWUsIHdh
c21GdW5jdGlvblByb2xvZ3VlKTsgfQotICAgIHN0YXRpYyBjb25zdGV4cHIgcHRyZGlmZl90IG9m
ZnNldE9mRnJhbWVTaXplKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTRW50cnlwb2ludElu
dGVycHJldGVyQ2FsbGVlLCBmcmFtZVNpemUpOyB9Ci0KLSAgICAvLyBTcGFjZSBmb3IgY2FsbGVl
LXNhdmVzOyBOb3QgaW5jbHVkZWQgaW4gZnJhbWVTaXplCi0gICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTcGlsbFN0YWNrU3BhY2VBbGlnbmVkID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9m
PHN0YWNrQWxpZ25tZW50Qnl0ZXMoKT4oMyAqIHNpemVvZihVQ1BVUmVnaXN0ZXIpKTsKLSAgICAv
LyBFeHRyYSBzcGFjZSB1c2VkIHRvIHJldHVybiBhcmd1bWVudCByZWdpc3RlciB2YWx1ZXMgZnJv
bSBjcHAgYmVmb3JlIHRoZXkgZ2V0IGZpbGxlZC4gSW5jbHVkZWQgaW4gZnJhbWVTaXplCi0gICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBSZWdpc3RlclN0YWNrU3BhY2VBbGlnbmVkID0gV1RG
Ojpyb3VuZFVwVG9NdWx0aXBsZU9mPHN0YWNrQWxpZ25tZW50Qnl0ZXMoKT4oCi0gICAgICAgIEZQ
UkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgKiBieXRlc0ZvcldpZHRoKFdpZHRoOjpX
aWR0aDY0KSArIEdQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgKiBzaXplb2YoVUNQ
VVJlZ2lzdGVyKSk7Ci0KLSAgICBjb25zdCB1bnNpZ25lZCBpZGVudCB7IDB4QkYgfTsKLSAgICBj
b25zdCB1bnNpZ25lZCBmcmFtZVNpemU7Ci0gICAgLy8gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVk
IGFmdGVyIHRoZSBjYWxsZWUgaXMgY3JlYXRlZCB1bmZvcnR1bmF0ZWx5LgotICAgIEVuY29kZWRK
U1ZhbHVlIHdhc21DYWxsZWU7Ci0gICAgY29uc3QgVHlwZUluZGV4IHR5cGVJbmRleDsKLSAgICAv
LyBJbiB0aGUgSklUIGNhc2UsIHdlIHdhbnQgdG8gYWx3YXlzIGNhbGwgdGhlIGxsaW50IHByb2xv
Z3VlIGZyb20gYSBqaXQgZnVuY3Rpb24uCi0gICAgLy8gSW4gdGhlIG5vLWppdCBjYXNlLCB3ZSBk
b250JyBjYXJlLgotICAgIGNvbnN0IENvZGVQdHI8TExJbnRUb1dhc21FbnRyeVB0clRhZz4gd2Fz
bUZ1bmN0aW9uUHJvbG9ndWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3Qgb2Zmc2V0
T2ZNZXRhZGF0YVN0b3JhZ2UoKSB7IHJldHVybiBvZmZzZXRPZkRhdGEoKTsgfQogCiBwcml2YXRl
OgotICAgIEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlKHVuc2lnbmVkIGZyYW1lU2l6ZSwg
VHlwZUluZGV4KTsKKyAgICBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZShWZWN0b3I8SlNF
bnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YT4mJiwgTExJbnRDYWxsZWUqKTsKIAor
cHVibGljOgorICAgIGNvbnN0IGludHB0cl90IGlkZW50IHsgMHhCRiB9OworICAgIGNvbnN0IGlu
dHB0cl90IHdhc21DYWxsZWU7CisgICAgLy8gSW4gdGhlIEpJVCBjYXNlLCB3ZSB3YW50IHRvIGFs
d2F5cyBjYWxsIHRoZSBsbGludCBwcm9sb2d1ZSBmcm9tIGEgaml0IGZ1bmN0aW9uLgorICAgIC8v
IEluIHRoZSBuby1qaXQgY2FzZSwgd2UgZG9udCcgY2FyZS4KKyAgICBDb2RlUHRyPExMSW50VG9X
YXNtRW50cnlQdHJUYWc+IHdhc21GdW5jdGlvblByb2xvZ3VlOwogICAgIFJlZlB0cjxXYXNtOjpD
YWxsZWU+IG1fcmVwbGFjZW1lbnRDYWxsZWUgeyBudWxscHRyIH07CiB9OwogCitERUNMQVJFX0FM
TE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihXYXNtVG9KU0NhbGxlZSk7CisKIGNsYXNzIFdh
c21Ub0pTQ2FsbGVlIGZpbmFsIDogcHVibGljIENhbGxlZSB7Ci0gICAgV1RGX01BS0VfVFpPTkVf
QUxMT0NBVEVEKFdhc21Ub0pTQ2FsbGVlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9X
SVRIX0hFQVBfSURFTlRJRklFUihXYXNtVG9KU0NhbGxlZSk7CiBwdWJsaWM6CiAgICAgZnJpZW5k
IGNsYXNzIENhbGxlZTsKIApAQCAtMjQ0LDggKzQzNiwxMCBAQCBwcml2YXRlOgogCiAjaWYgRU5B
QkxFKEpJVCkKIAorREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSlNUb1dh
c21JQ0NhbGxlZSk7CisKIGNsYXNzIEpTVG9XYXNtSUNDYWxsZWUgZmluYWwgOiBwdWJsaWMgSklU
Q2FsbGVlIHsKLSAgICBXVEZfTUFLRV9UWk9ORV9BTExPQ0FURUQoSlNUb1dhc21JQ0NhbGxlZSk7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoSlNUb1dh
c21JQ0NhbGxlZSk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxKU1RvV2FzbUlDQ2FsbGVlPiBj
cmVhdGUoKQogICAgIHsKQEAgLTI3MSw4ICs0NjUsMTAgQEAgc3RydWN0IFdhc21Db2RlT3JpZ2lu
IHsKICAgICB1bnNpZ25lZCBtb2R1bGVJbmRleDsKIH07CiAKK0RFQ0xBUkVfQUxMT0NBVE9SX1dJ
VEhfSEVBUF9JREVOVElGSUVSKE9wdGltaXppbmdKSVRDYWxsZWUpOworCiBjbGFzcyBPcHRpbWl6
aW5nSklUQ2FsbGVlIDogcHVibGljIEpJVENhbGxlZSB7Ci0gICAgV1RGX01BS0VfVFpPTkVfQUxM
T0NBVEVEKE9wdGltaXppbmdKSVRDYWxsZWUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
X1dJVEhfSEVBUF9JREVOVElGSUVSKE9wdGltaXppbmdKSVRDYWxsZWUpOwogcHVibGljOgogICAg
IGNvbnN0IFN0YWNrTWFwJiBzdGFja21hcChDYWxsU2l0ZUluZGV4KSBjb25zdDsKIApAQCAtMzA1
LDggKzUwMSwxMCBAQCBwcml2YXRlOgogY29uc3RleHByIGludDMyX3Qgc3RhY2tDaGVja1Vuc2V0
ID0gMDsKIGNvbnN0ZXhwciBpbnQzMl90IHN0YWNrQ2hlY2tOb3ROZWVkZWQgPSAtMTsKIAorREVD
TEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoT1NSRW50cnlDYWxsZWUpOworCiBj
bGFzcyBPU1JFbnRyeUNhbGxlZSBmaW5hbCA6IHB1YmxpYyBPcHRpbWl6aW5nSklUQ2FsbGVlIHsK
LSAgICBXVEZfTUFLRV9UWk9ORV9BTExPQ0FURUQoT1NSRW50cnlDYWxsZWUpOworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKE9TUkVudHJ5Q2FsbGVlKTsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE9TUkVudHJ5Q2FsbGVlPiBjcmVhdGUoQ29tcGlsYXRp
b25Nb2RlIGNvbXBpbGF0aW9uTW9kZSwgc2l6ZV90IGluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFt
ZSosIFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYgbmFtZSwgdWludDMyX3QgbG9vcEluZGV4KQogICAg
IHsKQEAgLTM1Miw4ICs1NTAsMTAgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJM
WV9PTUdKSVQpCiAKK0RFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKE9NR0Nh
bGxlZSk7CisKIGNsYXNzIE9NR0NhbGxlZSBmaW5hbCA6IHB1YmxpYyBPcHRpbWl6aW5nSklUQ2Fs
bGVlIHsKLSAgICBXVEZfTUFLRV9UWk9ORV9BTExPQ0FURUQoT01HQ2FsbGVlKTsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihPTUdDYWxsZWUpOwogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8T01HQ2FsbGVlPiBjcmVhdGUoc2l6ZV90IGluZGV4LCBzdGQ6
OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlvbj4+JiYgbmFtZSkKICAgICB7CkBA
IC0zNzMsOCArNTczLDExIEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQkJR
SklUKQogCisKK0RFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEJCUUNhbGxl
ZSk7CisKIGNsYXNzIEJCUUNhbGxlZSBmaW5hbCA6IHB1YmxpYyBPcHRpbWl6aW5nSklUQ2FsbGVl
IHsKLSAgICBXVEZfTUFLRV9UWk9ORV9BTExPQ0FURUQoQkJRQ2FsbGVlKTsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihCQlFDYWxsZWUpOwogcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZXh0cmFPU1JWYWx1ZXNGb3JMb29wSW5k
ZXggPSAxOwogCkBAIC00NjIsOCArNjY1LDEwIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogCitERUNM
QVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihJUEludENhbGxlZSk7CisKIGNsYXNz
IElQSW50Q2FsbGVlIGZpbmFsIDogcHVibGljIENhbGxlZSB7Ci0gICAgV1RGX01BS0VfVFpPTkVf
QUxMT0NBVEVEKElQSW50Q2FsbGVlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRI
X0hFQVBfSURFTlRJRklFUihJUEludENhbGxlZSk7CiAgICAgZnJpZW5kIGNsYXNzIEpTQzo6TExJ
bnRPZmZzZXRzRXh0cmFjdG9yOwogICAgIGZyaWVuZCBjbGFzcyBDYWxsZWU7CiBwdWJsaWM6CkBA
IC01MzQsOCArNzM5LDEwIEBAIHB1YmxpYzoKICAgICBJUEludFRpZXJVcENvdW50ZXIgbV90aWVy
VXBDb3VudGVyOwogfTsKIAorREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIo
TExJbnRDYWxsZWUpOworCiBjbGFzcyBMTEludENhbGxlZSBmaW5hbCA6IHB1YmxpYyBDYWxsZWUg
ewotICAgIFdURl9NQUtFX1RaT05FX0FMTE9DQVRFRChMTEludENhbGxlZSk7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoTExJbnRDYWxsZWUpOwogICAg
IGZyaWVuZCBKU0M6OkxMSW50T2Zmc2V0c0V4dHJhY3RvcjsKICAgICBmcmllbmQgY2xhc3MgQ2Fs
bGVlOwogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUxMSW50UGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFu
LmNwcAppbmRleCBiM2Y0M2Y2MTVjNDAuLmQ3NThiN2JmOWJjMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAKQEAgLTE5Niw2ICsxOTYsNyBAQCBib29s
IExMSW50UGxhbjo6ZW5zdXJlRW50cnlwb2ludChMTEludENhbGxlZSYgbGxpbnRDYWxsZWUsIHVu
c2lnbmVkIGZ1bmN0aW9uSW5kZQogI2VuZGlmCiB9CiAKKyNpZiBVU0UoSlNWQUxVRTY0KQogUmVm
UHRyPEpTRW50cnlwb2ludENhbGxlZT4gTExJbnRQbGFuOjp0cnlDcmVhdGVJbnRlcnByZXRlZEpT
VG9XYXNtQ2FsbGVlKHVuc2lnbmVkIGZ1bmN0aW9uSW5kZXgpCiB7CiAgICAgVHlwZUluZGV4IHR5
cGVJbmRleCA9IG1fbW9kdWxlSW5mb3JtYXRpb24tPmludGVybmFsRnVuY3Rpb25UeXBlSW5kaWNl
c1tmdW5jdGlvbkluZGV4XTsKQEAgLTIwNywzNiArMjA4LDExMiBAQCBSZWZQdHI8SlNFbnRyeXBv
aW50Q2FsbGVlPiBMTEludFBsYW46OnRyeUNyZWF0ZUludGVycHJldGVkSlNUb1dhc21DYWxsZWUo
dW5zaWduZQogICAgICAgICB8fCBmdW5jdGlvblNpZ25hdHVyZS5hcmd1bWVudENvdW50KCkgPiAx
NgogICAgICAgICB8fCBmdW5jdGlvblNpZ25hdHVyZS5yZXR1cm5Db3VudCgpID4gMTYpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIFZlY3RvcjxKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNh
bGxlZU1ldGFkYXRhPiBtZXRhZGF0YTsKKwogICAgIENhbGxJbmZvcm1hdGlvbiB3YXNtRnJhbWVD
b252ZW50aW9uID0gd2FzbUNhbGxpbmdDb252ZW50aW9uKCkuY2FsbEluZm9ybWF0aW9uRm9yKHNp
Z25hdHVyZSwgQ2FsbFJvbGU6OkNhbGxlcik7CiAKLSAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBz
YXZlZFJlc3VsdFJlZ2lzdGVycyA9IHdhc21GcmFtZUNvbnZlbnRpb24uY29tcHV0ZVJlc3VsdHNP
ZmZzZXRMaXN0KCk7Ci0gICAgc2l6ZV90IHRvdGFsRnJhbWVTaXplID0gd2FzbUZyYW1lQ29udmVu
dGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNrU2l6ZUluQnl0ZXM7Ci0gICAgdG90YWxGcmFtZVNp
emUgKz0gc2F2ZWRSZXN1bHRSZWdpc3RlcnMuc2l6ZU9mQXJlYUluQnl0ZXMoKTsKLSAgICB0b3Rh
bEZyYW1lU2l6ZSArPSBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZTo6UmVnaXN0ZXJTdGFj
a1NwYWNlQWxpZ25lZDsKLSAgICB0b3RhbEZyYW1lU2l6ZSA9IFdURjo6cm91bmRVcFRvTXVsdGlw
bGVPZjxzdGFja0FsaWdubWVudEJ5dGVzKCk+KHRvdGFsRnJhbWVTaXplKTsKKyAgICB7CisgICAg
ICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IHNhdmVkUmVzdWx0UmVnaXN0ZXJzID0gd2FzbUZyYW1l
Q29udmVudGlvbi5jb21wdXRlUmVzdWx0c09mZnNldExpc3QoKTsKKyAgICAgICAgc2l6ZV90IHRv
dGFsRnJhbWVTaXplID0gd2FzbUZyYW1lQ29udmVudGlvbi5oZWFkZXJBbmRBcmd1bWVudFN0YWNr
U2l6ZUluQnl0ZXM7CisgICAgICAgIHRvdGFsRnJhbWVTaXplICs9IHNhdmVkUmVzdWx0UmVnaXN0
ZXJzLnNpemVPZkFyZWFJbkJ5dGVzKCk7CisgICAgICAgIHRvdGFsRnJhbWVTaXplID0gV1RGOjpy
b3VuZFVwVG9NdWx0aXBsZU9mPHN0YWNrQWxpZ25tZW50Qnl0ZXMoKT4odG90YWxGcmFtZVNpemUp
OworCisgICAgICAgIG1ldGFkYXRhLmFwcGVuZChKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxl
ZU1ldGFkYXRhOjpGcmFtZVNpemUpOworICAgICAgICBtZXRhZGF0YS5hcHBlbmQoc3RhdGljX2Nh
c3Q8SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YT4oc2FmZUNhc3Q8aW50OF90
Pih0b3RhbEZyYW1lU2l6ZSAvIDgpKSk7CisgICAgfQorCisgICAgaWYgKG1fbW9kdWxlSW5mb3Jt
YXRpb24tPm1lbW9yeUNvdW50KCkpCisgICAgICAgIG1ldGFkYXRhLmFwcGVuZChKU0VudHJ5cG9p
bnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpNZW1vcnkpOwogCiAgICAgQ2FsbEluZm9ybWF0
aW9uIGpzRnJhbWVDb252ZW50aW9uID0ganNDYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1h
dGlvbkZvcihzaWduYXR1cmUsIENhbGxSb2xlOjpDYWxsZWUpOwogCi0gICAgLy8gRm9yIG5vdywg
d2Ugb25seSBzdXBwb3J0IGEgZmV3IHNpZ25hdHVyZXMuCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGZ1bmN0aW9uU2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKGpzRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5sb2NhdGlvbi5pc1N0
YWNrKCkpOwotICAgICAgICBUeXBlIHR5cGUgPSBmdW5jdGlvblNpZ25hdHVyZS5hcmd1bWVudFR5
cGUoaSk7CiAKLSAgICAgICAgaWYgKCF3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5sb2Nh
dGlvbi5pc1N0YWNrQXJndW1lbnQoKQotICAgICAgICAgICAgJiYgIXR5cGUuaXNGMzIoKSAmJiAh
dHlwZS5pc0Y2NCgpICYmICF0eXBlLmlzSTMyKCkgJiYgIXR5cGUuaXNJNjQoKSkKLSAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICBUeXBlIHR5cGUgPSBmdW5jdGlvblNpZ25hdHVy
ZS5hcmd1bWVudFR5cGUoaSk7CisgICAgICAgIC8vIE5vdGU6IExvYWRzIGFyZSBGUCByZWxhdGl2
ZSwgU3RvcmVzIGFyZSBTUCByZWxhdGl2ZS4KKyAgICAgICAgYXV0byBqc1BhcmFtID0gc3RhdGlj
X2Nhc3Q8SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YT4oc2FmZUNhc3Q8aW50
OF90ID4oCisgICAgICAgICAgICAoanNGcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmxvY2F0aW9u
Lm9mZnNldEZyb21GUCgpICsgc3RhdGljX2Nhc3Q8aW50PihQYXlsb2FkT2Zmc2V0KSkgLyA4KSk7
CisKKyAgICAgICAgaWYgKCF0eXBlLmlzSTMyKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsgLy8gRklYTUU6IGV2ZW50dWFsbHkgd2Ugc2hvdWxkIHN1cHBvcnQgdGhpcworCisgICAgICAg
IGlmICh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5sb2NhdGlvbi5pc1N0YWNrQXJndW1l
bnQoKSkgeworICAgICAgICAgICAgYXV0byB3YXNtUGFyYW0gPSBzdGF0aWNfY2FzdDxKU0VudHJ5
cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhPihzYWZlQ2FzdDxpbnQ4X3Q+KAorICAgICAg
ICAgICAgICAgICh3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5sb2NhdGlvbi5vZmZzZXRG
cm9tU1AoKSArIHN0YXRpY19jYXN0PGludD4oUGF5bG9hZE9mZnNldCkpIC8gOCkpOworICAgICAg
ICAgICAgYXV0byB3YXNtUGFyYW1UYWcgPSBzdGF0aWNfY2FzdDxKU0VudHJ5cG9pbnRJbnRlcnBy
ZXRlckNhbGxlZU1ldGFkYXRhPihzYWZlQ2FzdDxpbnQ4X3Q+KAorICAgICAgICAgICAgICAgICh3
YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5sb2NhdGlvbi5vZmZzZXRGcm9tU1AoKSArIHN0
YXRpY19jYXN0PGludD4oVGFnT2Zmc2V0KSkgLyA4KSk7CisgICAgICAgICAgICBhdXRvIGxvYWRU
eXBlID0gKHR5cGUud2lkdGgoKSA9PSBXaWR0aDMyKSA/IEpTRW50cnlwb2ludEludGVycHJldGVy
Q2FsbGVlTWV0YWRhdGE6OkxvYWRJMzIgOiBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1l
dGFkYXRhOjpMb2FkSTY0OworICAgICAgICAgICAgYXV0byBzdG9yZVR5cGUgPSAodHlwZS53aWR0
aCgpID09IFdpZHRoMzIpID8gSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YTo6
U3RvcmVJMzIgOiBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpTdG9yZUk2
NDsKKyAgICAgICAgICAgIG1ldGFkYXRhLmFwcGVuZChsb2FkVHlwZSk7CisgICAgICAgICAgICBt
ZXRhZGF0YS5hcHBlbmQoanNQYXJhbSk7CisgICAgICAgICAgICBtZXRhZGF0YS5hcHBlbmQoc3Rv
cmVUeXBlKTsKKyAgICAgICAgICAgIG1ldGFkYXRhLmFwcGVuZCh3YXNtUGFyYW0pOworCisgICAg
ICAgICAgICBpZiAoIWlzNjRCaXQoKSAmJiBsb2FkVHlwZSA9PSBKU0VudHJ5cG9pbnRJbnRlcnBy
ZXRlckNhbGxlZU1ldGFkYXRhOjpMb2FkSTMyKSB7CisgICAgICAgICAgICAgICAgbWV0YWRhdGEu
YXBwZW5kKEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6Olplcm8pOworICAg
ICAgICAgICAgICAgIG1ldGFkYXRhLmFwcGVuZChKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxl
ZU1ldGFkYXRhOjpTdG9yZUkzMik7CisgICAgICAgICAgICAgICAgbWV0YWRhdGEuYXBwZW5kKHdh
c21QYXJhbVRhZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBpZiAodHlwZS5pc0YzMigpIHx8IHR5cGUuaXNGNjQoKSkgeworICAgICAgICAgICAgICAgIG1l
dGFkYXRhLmFwcGVuZCh0eXBlLmlzRjY0KCkgPyBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxl
ZU1ldGFkYXRhOjpMb2FkRjY0IDogSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0
YTo6TG9hZEYzMik7CisgICAgICAgICAgICAgICAgbWV0YWRhdGEuYXBwZW5kKGpzUGFyYW0pOwor
ICAgICAgICAgICAgICAgIG1ldGFkYXRhLmFwcGVuZChqc0VudHJ5cG9pbnRNZXRhZGF0YUZvckZQ
Uih3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5sb2NhdGlvbi5mcHIoKSwgTWV0YWRhdGFS
ZWFkTW9kZTo6V3JpdGUpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZS5pc0kzMigpIHx8
IHR5cGUuaXNJNjQoKSkgeworICAgICAgICAgICAgICAgIG1ldGFkYXRhLmFwcGVuZCh0eXBlLmlz
STY0KCkgPyBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1ldGFkYXRhOjpMb2FkSTY0IDog
SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWVNZXRhZGF0YTo6TG9hZEkzMik7CisgICAgICAg
ICAgICAgICAgbWV0YWRhdGEuYXBwZW5kKGpzUGFyYW0pOworICAgICAgICAgICAgICAgIG1ldGFk
YXRhLmFwcGVuZChqc0VudHJ5cG9pbnRNZXRhZGF0YUZvckdQUih3YXNtRnJhbWVDb252ZW50aW9u
LnBhcmFtc1tpXS5sb2NhdGlvbi5qc3IoKS5wYXlsb2FkR1BSKCksIE1ldGFkYXRhUmVhZE1vZGU6
OldyaXRlKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoIWlzNjRCaXQoKSAmJiB0eXBlLmlzSTMy
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuYXBwZW5kKEpTRW50cnlwb2ludElu
dGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6Olplcm8pOworICAgICAgICAgICAgICAgICAgICBtZXRh
ZGF0YS5hcHBlbmQoanNFbnRyeXBvaW50TWV0YWRhdGFGb3JHUFIod2FzbUZyYW1lQ29udmVudGlv
bi5wYXJhbXNbaV0ubG9jYXRpb24uanNyKCkudGFnR1BSKCksIE1ldGFkYXRhUmVhZE1vZGU6Oldy
aXRlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKGZ1bmN0aW9u
U2lnbmF0dXJlLnJldHVybkNvdW50KCkgPiAxKQorCisgICAgbWV0YWRhdGEuYXBwZW5kKEpTRW50
cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6OkNhbGwpOworCisgICAgaWYgKGZ1bmN0
aW9uU2lnbmF0dXJlLnJldHVybnNWb2lkKCkpIHsKKyAgICAgICAgbWV0YWRhdGEuYXBwZW5kKEpT
RW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6OlVuZGVmaW5lZCk7CisgICAgICAg
IG1ldGFkYXRhLmFwcGVuZChqc0VudHJ5cG9pbnRNZXRhZGF0YUZvckdQUihKU1JJbmZvOjpyZXR1
cm5WYWx1ZUpTUi5wYXlsb2FkR1BSKCksIE1ldGFkYXRhUmVhZE1vZGU6OldyaXRlKSk7CisgICAg
ICAgIGlmIGNvbnN0ZXhwciAoIWlzNjRCaXQoKSkgeworICAgICAgICAgICAgbWV0YWRhdGEuYXBw
ZW5kKEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6OlNoaWZ0VGFnKTsKKyAg
ICAgICAgICAgIG1ldGFkYXRhLmFwcGVuZChqc0VudHJ5cG9pbnRNZXRhZGF0YUZvckdQUihKU1JJ
bmZvOjpyZXR1cm5WYWx1ZUpTUi50YWdHUFIoKSwgTWV0YWRhdGFSZWFkTW9kZTo6V3JpdGUpKTsK
KyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoZnVuY3Rpb25TaWduYXR1cmUucmV0dXJuQ291bnQo
KSA9PSAxKSB7CisgICAgICAgIGlmICghZnVuY3Rpb25TaWduYXR1cmUucmV0dXJuVHlwZSgwKS5p
c0kzMigpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7IC8vIEZJWE1FOiBldmVudHVhbGx5
IHdlIHNob3VsZCBzdXBwb3J0IHRoaXMKKworICAgICAgICBKU1ZhbHVlUmVncyBpbnB1dEpTUiA9
IHdhc21GcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5sb2NhdGlvbi5qc3IoKTsKKyAgICAgICAg
SlNWYWx1ZVJlZ3Mgb3V0cHV0SlNSID0ganNGcmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5sb2Nh
dGlvbi5qc3IoKTsKKyAgICAgICAgbWV0YWRhdGEuYXBwZW5kKGpzRW50cnlwb2ludE1ldGFkYXRh
Rm9yR1BSKGlucHV0SlNSLnBheWxvYWRHUFIoKSwgTWV0YWRhdGFSZWFkTW9kZTo6UmVhZCkpOwor
ICAgICAgICBpZiAoZnVuY3Rpb25TaWduYXR1cmUucmV0dXJuVHlwZSgwKS5pc0k2NCgpKQorICAg
ICAgICAgICAgbWV0YWRhdGEuYXBwZW5kKEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0
YWRhdGE6OkJveEludDY0KTsKKyAgICAgICAgZWxzZSBpZiAoZnVuY3Rpb25TaWduYXR1cmUucmV0
dXJuVHlwZSgwKS5pc0kzMigpKQorICAgICAgICAgICAgbWV0YWRhdGEuYXBwZW5kKEpTRW50cnlw
b2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6OkJveEludDMyKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7IC8vIEZJWE1FCisgICAgICAgIG1ldGFkYXRhLmFw
cGVuZChqc0VudHJ5cG9pbnRNZXRhZGF0YUZvckdQUihvdXRwdXRKU1IucGF5bG9hZEdQUigpLCBN
ZXRhZGF0YVJlYWRNb2RlOjpXcml0ZSkpOworICAgICAgICBpZiAoIWlzNjRCaXQoKSkgeworICAg
ICAgICAgICAgbWV0YWRhdGEuYXBwZW5kKEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0
YWRhdGE6OlNoaWZ0VGFnKTsKKyAgICAgICAgICAgIG1ldGFkYXRhLmFwcGVuZChqc0VudHJ5cG9p
bnRNZXRhZGF0YUZvckdQUihvdXRwdXRKU1IudGFnR1BSKCksIE1ldGFkYXRhUmVhZE1vZGU6Oldy
aXRlKSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgbWV0YWRhdGEuYXBwZW5kKEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlTWV0YWRhdGE6
OkRvbmUpOwogCi0gICAgaWYgKGZ1bmN0aW9uU2lnbmF0dXJlLnJldHVybkNvdW50KCkpIHsKLSAg
ICAgICAgYXV0byB0eXBlID0gZnVuY3Rpb25TaWduYXR1cmUucmV0dXJuVHlwZSgwKTsKLSAgICAg
ICAgaWYgKCF0eXBlLmlzRjMyKCkgJiYgIXR5cGUuaXNGNjQoKSAmJiAhdHlwZS5pc0kzMigpICYm
ICF0eXBlLmlzSTY0KCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9CisgICAg
aWYgKChmYWxzZSkpCisgICAgICAgIGR1bXBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZU1l
dGFkYXRhKG1ldGFkYXRhKTsKIAotICAgIHJldHVybiBKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNh
bGxlZTo6Y3JlYXRlKHRvdGFsRnJhbWVTaXplLCB0eXBlSW5kZXgpOworICAgIGF1dG8gY2FsbGVl
ID0gSlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJDYWxsZWU6OmNyZWF0ZShXVEZNb3ZlKG1ldGFkYXRh
KSwgJm1fY2FsbGVlc1tmdW5jdGlvbkluZGV4XS5nZXQoKSk7CisgICAgcmV0dXJuIGNhbGxlZTsK
IH0KKyNlbHNlCitSZWZQdHI8SlNFbnRyeXBvaW50Q2FsbGVlPiBMTEludFBsYW46OnRyeUNyZWF0
ZUludGVycHJldGVkSlNUb1dhc21DYWxsZWUodW5zaWduZWQpIHsgcmV0dXJuIG51bGxwdHI7IH0K
KyNlbmRpZgogCiB2b2lkIExMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbigpCiB7CkBA
IC0yNjYsMTEgKzM0Myw4IEBAIHZvaWQgTExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9u
KCkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAg
aWYgKGF1dG8mIGNhbGxlZSA9IG1fZW50cnlwb2ludHNbZnVuY3Rpb25JbmRleF0pIHsKLSAgICAg
ICAgICAgIGlmIChjYWxsZWUtPmNvbXBpbGF0aW9uTW9kZSgpID09IENvbXBpbGF0aW9uTW9kZTo6
SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJNb2RlKQotICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0
PEpTRW50cnlwb2ludEludGVycHJldGVyQ2FsbGVlKj4oY2FsbGVlLmdldCgpKS0+d2FzbUNhbGxl
ZSA9IENhbGxlZUJpdHM6OmVuY29kZU5hdGl2ZUNhbGxlZSgmbV9jYWxsZWVzW2Z1bmN0aW9uSW5k
ZXhdLmdldCgpKTsKKyAgICAgICAgaWYgKGF1dG8mIGNhbGxlZSA9IG1fZW50cnlwb2ludHNbZnVu
Y3Rpb25JbmRleF0pCiAgICAgICAgICAgICBtX2pzRW50cnlwb2ludENhbGxlZXMuYWRkKGZ1bmN0
aW9uSW5kZXgsIGNhbGxlZSk7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBmb3IgKGF1dG8mIHVu
bGlua2VkIDogbV91bmxpbmtlZFdhc21Ub1dhc21DYWxscykgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCmluZGV4IDFmZjhmZmRhOWJkNi4uYWVhZmQyNTMzN2Jj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCkBAIC0yNSw3
ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXYXNtT01HUGxhbi5o
IgotI2luY2x1ZGUgIkpTVG9XYXNtLmgiCiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfT01HSklU
KQogCkBAIC0xOTksNDQgKzE5OCw2IEBAIHZvaWQgT01HUGxhbjo6d29yayhDb21waWxhdGlvbkVm
Zm9ydCkKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIFJlcGxhY2UgdGhlIExMSW50IGludGVy
cHJldGVkIGVudHJ5IGNhbGxlZS4gTm90ZSB0aGF0IHdlIGNhbiBkbyB0aGlzIGFmdGVyIHdlIHB1
Ymxpc2ggb3VyCi0gICAgLy8gY2FsbGVlIGJlY2F1c2UgY2FsbGluZyBpbnRvIHRoZSBMTEludCBz
aG91bGQgc3RpbGwgd29yay4KLSAgICBhdXRvKiBqc0VudHJ5cG9pbnRDYWxsZWUgPSBtX2NhbGxl
ZUdyb3VwLT5tX2pzRW50cnlwb2ludENhbGxlZXMuZ2V0KG1fZnVuY3Rpb25JbmRleCk7Ci0gICAg
aWYgKGpzRW50cnlwb2ludENhbGxlZSAmJiBqc0VudHJ5cG9pbnRDYWxsZWUtPmNvbXBpbGF0aW9u
TW9kZSgpID09IENvbXBpbGF0aW9uTW9kZTo6SlNFbnRyeXBvaW50SW50ZXJwcmV0ZXJNb2RlICYm
ICFzdGF0aWNfY2FzdDxKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZSo+KGpzRW50cnlwb2lu
dENhbGxlZSktPmhhc1JlcGxhY2VtZW50KCkpIHsKLSAgICAgICAgQVNTRVJUKCFtX2VudHJ5cG9p
bnQpOwotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07Ci0gICAgICAgIFR5cGVJbmRl
eCB0eXBlSW5kZXggPSBtX21vZHVsZUluZm9ybWF0aW9uLT5pbnRlcm5hbEZ1bmN0aW9uVHlwZUlu
ZGljZXNbbV9mdW5jdGlvbkluZGV4XTsKLSAgICAgICAgY29uc3QgVHlwZURlZmluaXRpb24mIHNp
Z25hdHVyZSA9IFR5cGVJbmZvcm1hdGlvbjo6Z2V0KHR5cGVJbmRleCkuZXhwYW5kKCk7Ci0KLSAg
ICAgICAgYXV0byBjYWxsZWUgPSBKU0VudHJ5cG9pbnRKSVRDYWxsZWU6OmNyZWF0ZSgpOwotICAg
ICAgICBjb250ZXh0LmpzRW50cnlwb2ludEpJVCA9IG1ha2VVbmlxdWU8Q0NhbGxIZWxwZXJzPigp
OwotICAgICAgICBWZWN0b3I8VW5saW5rZWRXYXNtVG9XYXNtQ2FsbD4gbmV3Q2FsbDsKLSAgICAg
ICAgYXV0byBqc1RvV2FzbUludGVybmFsRnVuY3Rpb24gPSBjcmVhdGVKU1RvV2FzbVdyYXBwZXIo
KmNvbnRleHQuanNFbnRyeXBvaW50SklULCBjYWxsZWUuZ2V0KCksIG51bGxwdHIsIHNpZ25hdHVy
ZSwgJm5ld0NhbGwsIG1fbW9kdWxlSW5mb3JtYXRpb24uZ2V0KCksIG1fbW9kZSwgbV9mdW5jdGlv
bkluZGV4KTsKLSAgICAgICAgYXV0byBsaW5rQnVmZmVyID0gbWFrZVVuaXF1ZTxMaW5rQnVmZmVy
PigqY29udGV4dC5qc0VudHJ5cG9pbnRKSVQsICZjYWxsZWUuZ2V0KCksIExpbmtCdWZmZXI6OlBy
b2ZpbGU6Oldhc21CQlEsIEpJVENvbXBpbGF0aW9uQ2FuRmFpbCk7Ci0KLSAgICAgICAgaWYgKGxp
bmtCdWZmZXItPmlzVmFsaWQoKSkgewotICAgICAgICAgICAganNUb1dhc21JbnRlcm5hbEZ1bmN0
aW9uLT5lbnRyeXBvaW50LmNvbXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxDb21waWxhdGlvbj4oCi0g
ICAgICAgICAgICAgICAgRklOQUxJWkVfV0FTTV9DT0RFKCpsaW5rQnVmZmVyLCBKSVRDb21waWxh
dGlvblB0clRhZywgbnVsbHB0ciwgIihpcGludCB1cGdyYWRlIGVkaXRpb24pIEpTLT5XZWJBc3Nl
bWJseSBlbnRyeXBvaW50WyVpXSAlcyIsIG1fZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRvU3Ry
aW5nKCkuYXNjaWkoKS5kYXRhKCkpLAotICAgICAgICAgICAgICAgIG51bGxwdHIpOwotCi0gICAg
ICAgICAgICBmb3IgKGF1dG8mIGNhbGwgOiBuZXdDYWxsKSB7Ci0gICAgICAgICAgICAgICAgQ29k
ZVB0cjxXYXNtRW50cnlQdHJUYWc+IGVudHJ5cG9pbnQ7Ci0gICAgICAgICAgICAgICAgaWYgKGNh
bGwuZnVuY3Rpb25JbmRleFNwYWNlIDwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+aW1wb3J0RnVuY3Rp
b25Db3VudCgpKQotICAgICAgICAgICAgICAgICAgICBlbnRyeXBvaW50ID0gbV9jYWxsZWVHcm91
cC0+bV93YXNtVG9XYXNtRXhpdFN0dWJzW2NhbGwuZnVuY3Rpb25JbmRleFNwYWNlXS5jb2RlKCk7
Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBlbnRyeXBvaW50ID0g
bV9jYWxsZWVHcm91cC0+d2FzbUVudHJ5cG9pbnRDYWxsZWVGcm9tRnVuY3Rpb25JbmRleFNwYWNl
KGxvY2tlciwgY2FsbC5mdW5jdGlvbkluZGV4U3BhY2UpLmVudHJ5cG9pbnQoKS5yZXRhZ2dlZDxX
YXNtRW50cnlQdHJUYWc+KCk7Ci0KLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVw
YXRjaE5lYXJDYWxsKGNhbGwuY2FsbExvY2F0aW9uLCBDb2RlTG9jYXRpb25MYWJlbDxXYXNtRW50
cnlQdHJUYWc+KGVudHJ5cG9pbnQpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY2Fs
bGVlLT5zZXRFbnRyeXBvaW50KFdURk1vdmUoanNUb1dhc21JbnRlcm5hbEZ1bmN0aW9uLT5lbnRy
eXBvaW50KSk7Ci0gICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuIGNvbXBpbGUgdGhlIHNh
bWUgZnVuY3Rpb24gd2l0aCBtdWx0aXBsZSBtZW1vcnkgbW9kZXMsIHdoaWNoIGNhbiBjYXVzZSB0
aGlzCi0gICAgICAgICAgICAvLyByYWNlLiBUaGF0J3MgZmluZSwgYm90aCBzdHVicyBzaG91bGQg
ZG8gdGhlIHNhbWUgdGhpbmcuCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxKU0VudHJ5cG9pbnRJ
bnRlcnByZXRlckNhbGxlZSo+KGpzRW50cnlwb2ludENhbGxlZSktPnNldFJlcGxhY2VtZW50KGNh
bGxlZS5wdHIoKSk7Ci0gICAgICAgICAgICBtX2VudHJ5cG9pbnQgPSBXVEZNb3ZlKGNhbGxlZSk7
Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBkYXRhTG9nTG5JZihXYXNtT01HUGxhbkludGVybmFs
Ojp2ZXJib3NlLCAiRmluaXNoZWQgT01HICIsIG1fZnVuY3Rpb25JbmRleCk7CiAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fbG9jayB9OwogICAgIGNvbXBsZXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9NR1BsYW4uaAppbmRleCBiNTFmZTgyMTIzMzYuLmQ5ZTlmMjYxYmY3MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5oCkBAIC02Nyw3ICs2Nyw2IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2NvbXBsZXRlZCB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRp
b25hbDxib29sPiBtX2hhc0V4Y2VwdGlvbkhhbmRsZXJzOwogICAgIHVpbnQzMl90IG1fZnVuY3Rp
b25JbmRleDsKLSAgICBSZWZQdHI8SlNFbnRyeXBvaW50Q2FsbGVlPiBtX2VudHJ5cG9pbnQ7CiB9
OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCmluZGV4IDg0YmZmMmE1NmY1ZS4uNTljZmM5NzQ0Y2Vi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCkBA
IC02NSwxMzcgKzY1LDExIEBAIElHTk9SRV9XQVJOSU5HU19CRUdJTigiZnJhbWUtYWRkcmVzcyIp
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKKyNpZiBFTkFCTEUoV0VCQVNT
RU1CTFlfT01HSklUKQogbmFtZXNwYWNlIFdhc21PcGVyYXRpb25zSW50ZXJuYWwgewogICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiB9Ci0KLXN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgZ3ByVG9JbmRleChHUFJSZWcgcikKLXsKLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVyczsgKytpKSB7Ci0gICAg
ICAgIGlmIChHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoaSkgPT0gcikKLSAgICAgICAgICAg
IHJldHVybiBpOwotICAgIH0KLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRF9VTkRFUl9D
T05TVEVYUFJfQ09OVEVYVCgpOwotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGZwclRvSW5kZXgoRlBSUmVnIHIpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IEZQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnM7ICsraSkgewotICAgICAg
ICBpZiAoRlBSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKGkpID09IHIpCi0gICAgICAgICAgICBy
ZXR1cm4gaTsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRURfVU5ERVJfQ09O
U1RFWFBSX0NPTlRFWFQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotSlNDX0RFRklORV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTVG9XYXNtRW50cnlXcmFwcGVyQnVpbGRGcmFtZSwg
dm9pZCwgKHZvaWQqIHNwLCBDYWxsRnJhbWUqIGNmcikpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQo
T3B0aW9uczo6dXNlSW50ZXJwcmV0ZWRKU0VudHJ5V3JhcHBlcnMoKSk7Ci0gICAgZGF0YUxvZ0xu
SWYoV2FzbU9wZXJhdGlvbnNJbnRlcm5hbDo6dmVyYm9zZSwgIm9wZXJhdGlvbkpTVG9XYXNtRW50
cnlXcmFwcGVyQnVpbGRGcmFtZSBzcDogIiwgUmF3UG9pbnRlcihzcCksICIgZnA6ICIsIFJhd1Bv
aW50ZXIoY2ZyKSk7Ci0KLSAgICB1aW50NjRfdCogcmVnaXN0ZXJTcGFjZSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8dWludDY0X3QqPihzcCk7Ci0KLSAgICBhdXRvKiBmdW5jdGlvbiA9IGpzQ2FzdDxXZWJB
c3NlbWJseUZ1bmN0aW9uKj4oY2ZyLT5jYWxsZWUoKS5hc0NlbGwoKSk7Ci0gICAgQVNTRVJUKGZ1
bmN0aW9uKTsKLSAgICBBU1NFUlQoZnVuY3Rpb24tPm1fanNUb1dhc21JbnRlcnByZXRlckNhbGxl
ZS0+aWRlbnQgPT0gMHhCRik7Ci0gICAgQVNTRVJUKGZ1bmN0aW9uLT5tX2pzVG9XYXNtSW50ZXJw
cmV0ZXJDYWxsZWUtPnR5cGVJbmRleCA9PSBmdW5jdGlvbi0+dHlwZUluZGV4KCkpOwotICAgIEFT
U0VSVChmdW5jdGlvbi0+bV9qc1RvV2FzbUludGVycHJldGVyQ2FsbGVlLT5mcmFtZVNpemUgKyBK
U0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZTo6U3BpbGxTdGFja1NwYWNlQWxpZ25lZCA9PSAo
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNmcikgLSByZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oc3ApKSk7Ci0gICAgZGF0YUxvZ0xuSWYoV2FzbU9wZXJhdGlvbnNJbnRlcm5hbDo6dmVy
Ym9zZSwgIm9wZXJhdGlvbkpTVG9XYXNtRW50cnlXcmFwcGVyQnVpbGRGcmFtZSBzZXR0aW5nIGNh
bGxlZTogIiwgUmF3SGV4KENhbGxlZUJpdHM6OmVuY29kZU5hdGl2ZUNhbGxlZShmdW5jdGlvbi0+
bV9qc1RvV2FzbUludGVycHJldGVyQ2FsbGVlLmdldCgpKSkpOwotICAgIGRhdGFMb2dMbklmKFdh
c21PcGVyYXRpb25zSW50ZXJuYWw6OnZlcmJvc2UsICJvcGVyYXRpb25KU1RvV2FzbUVudHJ5V3Jh
cHBlckJ1aWxkRnJhbWUgd2FzbSBjYWxsZWU6ICIsIFJhd0hleChmdW5jdGlvbi0+bV9qc1RvV2Fz
bUludGVycHJldGVyQ2FsbGVlLT53YXNtQ2FsbGVlKSk7Ci0gICAgY2ZyLT5zZXRDYWxsZWUoZnVu
Y3Rpb24tPm1fanNUb1dhc21JbnRlcnByZXRlckNhbGxlZS5nZXQoKSk7Ci0KLSAgICBhdXRvIGNh
bGxlZVNQT2Zmc2V0RnJvbUZQID0gLShzdGF0aWNfY2FzdDxpbnRwdHJfdD4oZnVuY3Rpb24tPm1f
anNUb1dhc21JbnRlcnByZXRlckNhbGxlZS0+ZnJhbWVTaXplKSArIEpTRW50cnlwb2ludEludGVy
cHJldGVyQ2FsbGVlOjpTcGlsbFN0YWNrU3BhY2VBbGlnbmVkIC0gSlNFbnRyeXBvaW50SW50ZXJw
cmV0ZXJDYWxsZWU6OlJlZ2lzdGVyU3RhY2tTcGFjZUFsaWduZWQpOwotCi0gICAgY29uc3QgVHlw
ZURlZmluaXRpb24mIHNpZ25hdHVyZSA9IFR5cGVJbmZvcm1hdGlvbjo6Z2V0KGZ1bmN0aW9uLT50
eXBlSW5kZXgoKSk7Ci0gICAgY29uc3QgRnVuY3Rpb25TaWduYXR1cmUmIGZ1bmN0aW9uU2lnbmF0
dXJlID0gKnNpZ25hdHVyZS5hczxGdW5jdGlvblNpZ25hdHVyZT4oKTsKLSAgICBDYWxsSW5mb3Jt
YXRpb24gd2FzbUZyYW1lQ29udmVudGlvbiA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmNhbGxJ
bmZvcm1hdGlvbkZvcihzaWduYXR1cmUsIENhbGxSb2xlOjpDYWxsZXIpOwotICAgIENhbGxJbmZv
cm1hdGlvbiBqc0ZyYW1lQ29udmVudGlvbiA9IGpzQ2FsbGluZ0NvbnZlbnRpb24oKS5jYWxsSW5m
b3JtYXRpb25Gb3Ioc2lnbmF0dXJlLCBDYWxsUm9sZTo6Q2FsbGVlKTsKLQotICAgIGF1dG8gYWNj
ZXNzID0gW3NwLCBjZnJdIDx0eXBlbmFtZSBWPiAoYXV0byogYXJyLCBpbnQgaSkgLT4gViogewot
ICAgICAgICBkYXRhTG9nTG5JZihXYXNtT3BlcmF0aW9uc0ludGVybmFsOjp2ZXJib3NlLCAiZnBb
IiwgKCZyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihhcnIpW2kgLyBzaXplb2YodWludDhfdCld
IC0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oY2ZyKSksICJdIHNwWyIsICgmcmVpbnRlcnBy
ZXRfY2FzdDx1aW50OF90Kj4oYXJyKVtpIC8gc2l6ZW9mKHVpbnQ4X3QpXSAtIHJlaW50ZXJwcmV0
X2Nhc3Q8dWludDhfdCo+KHNwKSksICJdKCIsIFJhd0hleChyZWludGVycHJldF9jYXN0PFYqPihh
cnIpW2kgLyBzaXplb2YoVildKSwgIikiKTsKLSAgICAgICAgcmV0dXJuICZyZWludGVycHJldF9j
YXN0PFYqPihhcnIpW2kgLyBzaXplb2YoVildOwotICAgIH07Ci0KLSAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZnVuY3Rpb25TaWduYXR1cmUuYXJndW1lbnRDb3VudCgpOyArK2kpIHsKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoanNGcmFtZUNvbnZlbnRpb24ucGFyYW1zW2ldLmxvY2F0aW9u
LmlzU3RhY2soKSk7Ci0gICAgICAgIGF1dG8gc3JjID0ganNGcmFtZUNvbnZlbnRpb24ucGFyYW1z
W2ldLmxvY2F0aW9uLm9mZnNldEZyb21GUCgpOwotICAgICAgICBUeXBlIHR5cGUgPSBmdW5jdGlv
blNpZ25hdHVyZS5hcmd1bWVudFR5cGUoaSk7Ci0KLSAgICAgICAgZGF0YUxvZ0xuSWYoV2FzbU9w
ZXJhdGlvbnNJbnRlcm5hbDo6dmVyYm9zZSwgIkFyZyAiLCBpLCAiICIsIGpzRnJhbWVDb252ZW50
aW9uLnBhcmFtc1tpXS5sb2NhdGlvbiwgIiAiLCBzcmMsICIgLT4gIiwgd2FzbUZyYW1lQ29udmVu
dGlvbi5wYXJhbXNbaV0ubG9jYXRpb24pOwotCi0gICAgICAgIGlmICh3YXNtRnJhbWVDb252ZW50
aW9uLnBhcmFtc1tpXS5sb2NhdGlvbi5pc1N0YWNrQXJndW1lbnQoKSkgewotICAgICAgICAgICAg
YXV0byBkc3QgPSB3YXNtRnJhbWVDb252ZW50aW9uLnBhcmFtc1tpXS5sb2NhdGlvbi5vZmZzZXRG
cm9tU1AoKSArIGNhbGxlZVNQT2Zmc2V0RnJvbUZQOwotICAgICAgICAgICAgaWYgKHR5cGUuaXNJ
MzIoKSB8fCB0eXBlLmlzRjMyKCkpCi0gICAgICAgICAgICAgICAgKmFjY2Vzcy5vcGVyYXRvcigp
PHVpbnQzMl90PihjZnIsIGRzdCkgPSAqYWNjZXNzLm9wZXJhdG9yKCk8dWludDMyX3Q+KGNmciwg
c3JjKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAqYWNjZXNzLm9wZXJhdG9y
KCk8dWludDY0X3Q+KGNmciwgZHN0KSA9ICphY2Nlc3Mub3BlcmF0b3IoKTx1aW50NjRfdD4oY2Zy
LCBzcmMpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW50IGRzdCA9IDA7Ci0gICAg
ICAgICAgICBpZiAod2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ubG9jYXRpb24uaXNGUFIo
KSkKLSAgICAgICAgICAgICAgICBkc3QgPSBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0
ZXJzICogc2l6ZW9mKFVDUFVSZWdpc3RlcikgKyBmcHJUb0luZGV4KHdhc21GcmFtZUNvbnZlbnRp
b24ucGFyYW1zW2ldLmxvY2F0aW9uLmZwcigpKSAqIGJ5dGVzRm9yV2lkdGgoV2lkdGg6OldpZHRo
NjQpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGRzdCA9IGdwclRvSW5kZXgo
d2FzbUZyYW1lQ29udmVudGlvbi5wYXJhbXNbaV0ubG9jYXRpb24uanNyKCkucGF5bG9hZEdQUigp
KSAqIHNpemVvZihVQ1BVUmVnaXN0ZXIpOwotICAgICAgICAgICAgQVNTRVJUKGRzdCA+PSAwKTsK
LQotICAgICAgICAgICAgZGF0YUxvZ0xuSWYoV2FzbU9wZXJhdGlvbnNJbnRlcm5hbDo6dmVyYm9z
ZSwgIiogUmVnaXN0ZXIgQXJnICIsIGksICIgIiwgc3JjLCAiIC0+ICIsIGRzdCk7Ci0KLSAgICAg
ICAgICAgIGlmICh0eXBlLmlzSTMyKCkpCi0gICAgICAgICAgICAgICAgKmFjY2Vzcy5vcGVyYXRv
cigpPHVpbnRwdHJfdD4ocmVnaXN0ZXJTcGFjZSwgZHN0KSA9ICphY2Nlc3Mub3BlcmF0b3IoKTx1
aW50MzJfdD4oY2ZyLCBzcmMpOwotICAgICAgICAgICAgZWxzZSBpZiAodHlwZS5pc0YzMigpKQot
ICAgICAgICAgICAgICAgICphY2Nlc3Mub3BlcmF0b3IoKTx1aW50NjRfdD4ocmVnaXN0ZXJTcGFj
ZSwgZHN0KSA9ICphY2Nlc3Mub3BlcmF0b3IoKTx1aW50MzJfdD4oY2ZyLCBzcmMpOwotICAgICAg
ICAgICAgZWxzZSBpZiAodHlwZS5pc0k2NCgpIHx8IHR5cGUuaXNGNjQoKSkKLSAgICAgICAgICAg
ICAgICAqYWNjZXNzLm9wZXJhdG9yKCk8dWludDY0X3Q+KHJlZ2lzdGVyU3BhY2UsIGRzdCkgPSAq
YWNjZXNzLm9wZXJhdG9yKCk8dWludDY0X3Q+KGNmciwgc3JjKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICB9
Ci0gICAgfQotfQotCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SlNUb1dhc21FbnRyeVdyYXBwZXJCdWlsZFJldHVybkZyYW1lLCB2b2lkLCAodm9pZCogc3AsIENh
bGxGcmFtZSogY2ZyKSkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChPcHRpb25zOjp1c2VJbnRlcnBy
ZXRlZEpTRW50cnlXcmFwcGVycygpKTsKLSAgICBkYXRhTG9nTG5JZihXYXNtT3BlcmF0aW9uc0lu
dGVybmFsOjp2ZXJib3NlLCAib3BlcmF0aW9uSlNUb1dhc21FbnRyeVdyYXBwZXJCdWlsZFJldHVy
bkZyYW1lIHNwOiAiLCBSYXdQb2ludGVyKHNwKSwgIiBmcDogIiwgUmF3UG9pbnRlcihjZnIpKTsK
LQotICAgIHVpbnQ2NF90KiByZWdpc3RlclNwYWNlID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRf
dCo+KHNwKTsKLQotICAgIGF1dG8qIGNhbGxlZSA9IHN0YXRpY19jYXN0PEpTRW50cnlwb2ludElu
dGVycHJldGVyQ2FsbGVlKj4oY2ZyLT5jYWxsZWUoKS5hc05hdGl2ZUNhbGxlZSgpKTsKLSAgICBB
U1NFUlQoY2FsbGVlLT5pZGVudCA9PSAweEJGKTsKLSAgICBhdXRvKiBpbnN0YW5jZSA9IGNmci0+
d2FzbUluc3RhbmNlKCk7Ci0gICAgQVNTRVJUKGluc3RhbmNlKTsKLSAgICBBU1NFUlQoaW5zdGFu
Y2UtPmdsb2JhbE9iamVjdCgpKTsKLQotICAgIGNvbnN0IFR5cGVEZWZpbml0aW9uJiBzaWduYXR1
cmUgPSBUeXBlSW5mb3JtYXRpb246OmdldChjYWxsZWUtPnR5cGVJbmRleCk7Ci0gICAgY29uc3Qg
RnVuY3Rpb25TaWduYXR1cmUmIGZ1bmN0aW9uU2lnbmF0dXJlID0gKnNpZ25hdHVyZS5hczxGdW5j
dGlvblNpZ25hdHVyZT4oKTsKLSAgICBDYWxsSW5mb3JtYXRpb24gd2FzbUZyYW1lQ29udmVudGlv
biA9IHdhc21DYWxsaW5nQ29udmVudGlvbigpLmNhbGxJbmZvcm1hdGlvbkZvcihzaWduYXR1cmUs
IENhbGxSb2xlOjpDYWxsZXIpOwotICAgIENhbGxJbmZvcm1hdGlvbiBqc0ZyYW1lQ29udmVudGlv
biA9IGpzQ2FsbGluZ0NvbnZlbnRpb24oKS5jYWxsSW5mb3JtYXRpb25Gb3Ioc2lnbmF0dXJlLCBD
YWxsUm9sZTo6Q2FsbGVlKTsKLQotICAgIGF1dG8gYWNjZXNzID0gW3NwLCBjZnJdIDx0eXBlbmFt
ZSBWPiAoYXV0byogYXJyLCBpbnQgaSkgLT4gViogewotICAgICAgICBkYXRhTG9nTG5JZihXYXNt
T3BlcmF0aW9uc0ludGVybmFsOjp2ZXJib3NlLCAiZnBbIiwgKCZyZWludGVycHJldF9jYXN0PHVp
bnQ4X3QqPihhcnIpW2kgLyBzaXplb2YodWludDhfdCldIC0gcmVpbnRlcnByZXRfY2FzdDx1aW50
OF90Kj4oY2ZyKSksICJdIHNwWyIsICgmcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYXJyKVtp
IC8gc2l6ZW9mKHVpbnQ4X3QpXSAtIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KHNwKSksICJd
KCIsIHJlaW50ZXJwcmV0X2Nhc3Q8Vio+KGFycilbaSAvIHNpemVvZihWKV0sICIpIik7Ci0gICAg
ICAgIHJldHVybiAmcmVpbnRlcnByZXRfY2FzdDxWKj4oYXJyKVtpIC8gc2l6ZW9mKFYpXTsKLSAg
ICB9OwotCi0gICAgaWYgKGZ1bmN0aW9uU2lnbmF0dXJlLnJldHVybnNWb2lkKCkpIHsKLSAgICAg
ICAgKmFjY2Vzcy5vcGVyYXRvcigpPHVpbnQ2NF90PihyZWdpc3RlclNwYWNlLCAwKSA9IEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9IGVsc2UgaWYgKGZ1bmN0aW9uU2lnbmF0
dXJlLnJldHVybkNvdW50KCkgPT0gMSkgewotICAgICAgICBBU1NFUlQoanNGcmFtZUNvbnZlbnRp
b24ucmVzdWx0c1swXS5sb2NhdGlvbi5pc0dQUigpKTsKLSAgICAgICAgZGF0YUxvZ0xuSWYoV2Fz
bU9wZXJhdGlvbnNJbnRlcm5hbDo6dmVyYm9zZSwgIiogUmVnaXN0ZXIgUmV0dXJuICIsIHdhc21G
cmFtZUNvbnZlbnRpb24ucmVzdWx0c1swXS5sb2NhdGlvbiwgIiAtPiAiLCBqc0ZyYW1lQ29udmVu
dGlvbi5yZXN1bHRzWzBdLmxvY2F0aW9uKTsKLSAgICAgICAgRW5jb2RlZEpTVmFsdWUgcmVzdWx0
OwotICAgICAgICBpZiAoZnVuY3Rpb25TaWduYXR1cmUucmV0dXJuVHlwZSgwKS5pc0kzMigpKQot
ICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKCphY2Nlc3Mub3Bl
cmF0b3IoKTxpbnQzMl90PihyZWdpc3RlclNwYWNlLCAwKSkpOwotICAgICAgICBlbHNlIGlmIChm
dW5jdGlvblNpZ25hdHVyZS5yZXR1cm5UeXBlKDApLmlzSTY0KCkpCi0gICAgICAgICAgICByZXN1
bHQgPSBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6Om1ha2VIZWFwQmlnSW50T3JCaWdJbnQzMihp
bnN0YW5jZS0+Z2xvYmFsT2JqZWN0KCksICphY2Nlc3Mub3BlcmF0b3IoKTxpbnQ2NF90PihyZWdp
c3RlclNwYWNlLCAwKSkpOwotICAgICAgICBlbHNlIGlmIChmdW5jdGlvblNpZ25hdHVyZS5yZXR1
cm5UeXBlKDApLmlzRjMyKCkpCi0gICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIocHVyaWZ5TmFOKCphY2Nlc3Mub3BlcmF0b3IoKTxmbG9hdD4ocmVnaXN0ZXJTcGFj
ZSwgR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyAqIHNpemVvZihVQ1BVUmVnaXN0
ZXIpICsgMCkpKSk7Ci0gICAgICAgIGVsc2UgaWYgKGZ1bmN0aW9uU2lnbmF0dXJlLnJldHVyblR5
cGUoMCkuaXNGNjQoKSkKLSAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihwdXJpZnlOYU4oKmFjY2Vzcy5vcGVyYXRvcigpPGRvdWJsZT4ocmVnaXN0ZXJTcGFjZSwg
R1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyAqIHNpemVvZihVQ1BVUmVnaXN0ZXIp
ICsgMCkpKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0KLSAgICAgICAgKmFjY2Vzcy5vcGVyYXRvcigpPHVpbnQ2NF90PihyZWdpc3Rl
clNwYWNlLCAwKSA9IHJlc3VsdDsKLSAgICB9IGVsc2UKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLX0KKyNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX09NR0pJ
VCkKIHN0YXRpYyBib29sIHNob3VsZFRyaWdnZXJPTUdDb21waWxlKFRpZXJVcENvdW50JiB0aWVy
VXAsIE9NR0NhbGxlZSogcmVwbGFjZW1lbnQsIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpCkBAIC02
NjYsNyArNTQwLDcgQEAgSlNDX0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21Mb29wT1NSRW50ZXJCQlFKSVQsIHZvaWQsIChQcm9iZToKIAogICAgIE9TUkVudHJ5RGF0
YSYgZW50cnlEYXRhID0gdGllclVwLm9zckVudHJ5RGF0YShsb29wSW5kZXgpOwogICAgIFJFTEVB
U0VfQVNTRVJUKGVudHJ5RGF0YS5sb29wSW5kZXgoKSA9PSBsb29wSW5kZXgpOwotCisgICAgCiAg
ICAgY29uc3QgU3RhY2tNYXAmIHN0YWNrTWFwID0gZW50cnlEYXRhLnZhbHVlcygpOwogICAgIGF1
dG8gd3JpdGVWYWx1ZVRvUmVwID0gWyZdKHVpbnQ2NF90IGVuY29kZWRWYWx1ZSwgY29uc3QgT1NS
RW50cnlWYWx1ZSYgdmFsdWUpIHsKICAgICAgICAgQjM6OlR5cGUgdHlwZSA9IHZhbHVlLnR5cGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25z
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCmluZGV4IDIx
NTY0M2ZiODU3OS4uZGFlNTMwNGUwMGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21PcGVyYXRpb25zLmgKQEAgLTUwLDkgKzUwLDYgQEAgY2xhc3MgVHlwZURlZmluaXRpb247
CiAKIHR5cGVkZWYgaW50NjRfdCBFbmNvZGVkV2FzbVZhbHVlOwogCi1KU0NfREVDTEFSRV9OT0VY
Q0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTVG9XYXNtRW50cnlXcmFwcGVyQnVpbGRGcmFt
ZSwgdm9pZCwgKHZvaWQqLCBDYWxsRnJhbWUqKSk7Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkpTVG9XYXNtRW50cnlXcmFwcGVyQnVpbGRSZXR1cm5GcmFtZSwg
dm9pZCwgKHZvaWQqLCBDYWxsRnJhbWUqKSk7Ci0KICNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfT01H
SklUKQogdm9pZCBsb2FkVmFsdWVzSW50b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0
YWNrTWFwJiwgdWludDY0X3QqIGJ1ZmZlciwgU2F2ZWRGUFdpZHRoKTsKIEpTQ19ERUNMQVJFX05P
RVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQs
IChJbnN0YW5jZSosIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKaW5kZXggODc3
NmNjOWQxN2Q0Li43MmQ3ZjA5MjgxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCkBAIC00NzMsNiArNDczLDcgQEAg
V2ViQXNzZW1ibHlGdW5jdGlvbjo6V2ViQXNzZW1ibHlGdW5jdGlvbihWTSYgdm0sIE5hdGl2ZUV4
ZWN1dGFibGUqIGV4ZWN1dGFibGUsIEoKICAgICAsIG1fanNFbnRyeXBvaW50IHsganNFbnRyeXBv
aW50IH0KICAgICAsIG1fYm94ZWRXYXNtQ2FsbGVlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+
KENhbGxlZUJpdHM6OmJveE5hdGl2ZUNhbGxlZUlmRXhpc3RzKHdhc21DYWxsZWUpKSkKICAgICAs
IG1fanNUb1dhc21JbnRlcnByZXRlckNhbGxlZShqc0VudHJ5cG9pbnQuY29tcGlsYXRpb25Nb2Rl
KCkgPT0gV2FzbTo6Q29tcGlsYXRpb25Nb2RlOjpKU0VudHJ5cG9pbnRJbnRlcnByZXRlck1vZGUg
PyBzdGF0aWNfY2FzdDxXYXNtOjpKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZSo+KCZqc0Vu
dHJ5cG9pbnQpIDogbnVsbHB0cikKKyAgICAsIG1fanNUb1dhc21Cb3hlZEludGVycHJldGVyQ2Fs
bGVlKENhbGxlZUJpdHM6OmJveE5hdGl2ZUNhbGxlZUlmRXhpc3RzKG1fanNUb1dhc21JbnRlcnBy
ZXRlckNhbGxlZS5nZXQoKSkpCiB7IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24u
aAppbmRleCA5ZGZmZWU5MDhhMzguLjU0MmZjZDU1Nzc0OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uaApAQCAtOTYsNiArOTYs
NyBAQCBwcml2YXRlOgogICAgIHVpbnRwdHJfdCBtX2JveGVkV2FzbUNhbGxlZTsKICAgICAvLyBU
aGlzIGxldCdzIHRoZSBKUy0+V2FzbSBpbnRlcnByZXRlciBmaW5kIGl0cyBtZXRhZGF0YQogICAg
IFJlZlB0cjxXYXNtOjpKU0VudHJ5cG9pbnRJbnRlcnByZXRlckNhbGxlZT4gbV9qc1RvV2FzbUlu
dGVycHJldGVyQ2FsbGVlOworICAgIHZvaWQqIG1fanNUb1dhc21Cb3hlZEludGVycHJldGVyQ2Fs
bGVlOwogI2lmIEVOQUJMRShKSVQpCiAgICAgUmVmUHRyPFdhc206OkpTVG9XYXNtSUNDYWxsZWU+
IG1fanNUb1dhc21JQ0NhbGxlZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2Jl
bmNobWFya3Mvd2FzbS1jYy1pbnQtdG8taW50LmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
d2FzbS1jYy1pbnQtdG8taW50LmpzCmluZGV4IGUwMDc0ZWZlNjhlMS4uMjlkNzAxN2FiODA0IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy93YXNtLWNjLWludC10by1pbnQuanMK
KysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvd2FzbS1jYy1pbnQtdG8taW50LmpzCkBAIC0x
LDEyICsxLDEzIEBACiAvL0Agc2tpcCB1bmxlc3MgJGlzV2FzbVBsYXRmb3JtCi0vL0AgcnVuRGVm
YXVsdFdhc20oIi0tdXNlV2ViQXNzZW1ibHk9MSIsICItLXVzZUludGVycHJldGVkSlNFbnRyeVdy
YXBwZXJzPTEiKQorLy9AICRza2lwTW9kZXMgPDwgOmxvY2tkb3duCisvL0AgcnVuRGVmYXVsdFdh
c20oIi0tdXNlV2ViQXNzZW1ibHk9MSIpCiAKIHZhciB3YXNtX2NvZGU7CiB0cnkgewotICAgIHdh
c21fY29kZSA9IHJlYWQoJ3dhc20tY2MtaW50LXRvLWludC53YXNtJywgJ2JpbmFyeScpCisgICAg
d2FzbV9jb2RlID0gcmVhZCgnLi4vLi4vSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvd2FzbS1jYy1p
bnQtdG8taW50Lndhc20nLCAnYmluYXJ5JykKIH0gY2F0Y2ggewogICAgIHRyeSB7Ci0gICAgICAg
IHdhc21fY29kZSA9IHJlYWQoJy4uLy4uL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3dhc20tY2Mt
aW50LXRvLWludC53YXNtJywgJ2JpbmFyeScpCisgICAgICAgIHdhc21fY29kZSA9IHJlYWQoJ3dh
c20tY2MtaW50LXRvLWludC53YXNtJywgJ2JpbmFyeScpCiAgICAgfSBjYXRjaCB7CiAgICAgICAg
IHdhc21fY29kZSA9IHJlYWQoJ0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3dhc20tY2MtaW50LXRv
LWludC53YXNtJywgJ2JpbmFyeScpCiAgICAgfQpAQCAtMTUsNyArMTYsNyBAQCB2YXIgd2FzbV9t
b2R1bGUgPSBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKHdhc21fY29kZSk7CiB2YXIgd2FzbV9pbnN0
YW5jZSA9IG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZSh3YXNtX21vZHVsZSk7CiBjb25zdCB7IHRl
c3QsIHRlc3Rfd2l0aF9jYWxsLCB0ZXN0X3dpdGhfY2FsbF9pbmRpcmVjdCB9ID0gd2FzbV9pbnN0
YW5jZS5leHBvcnRzCiAKLWZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKK2ZvciAobGV0
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKICAgICB0ZXN0KDUpCiAgICAgdGVzdCgpCiAgICAg
dGVzdChudWxsKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2xvd0V4ZWN1dGFibGVNZW1vcnkv
ZXhlY3V0YWJsZS1tZW1vcnktb29tLmpzIGIvSlNUZXN0cy93YXNtL2xvd0V4ZWN1dGFibGVNZW1v
cnkvZXhlY3V0YWJsZS1tZW1vcnktb29tLmpzCmluZGV4IDIyODczNTU3ODQwNy4uZmE2MTI0MTk3
Zjc5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vbG93RXhlY3V0YWJsZU1lbW9yeS9leGVjdXRh
YmxlLW1lbW9yeS1vb20uanMKKysrIGIvSlNUZXN0cy93YXNtL2xvd0V4ZWN1dGFibGVNZW1vcnkv
ZXhlY3V0YWJsZS1tZW1vcnktb29tLmpzCkBAIC0xLDggKzEsNiBAQAogLy8gRklYTUU6IENvbnNp
ZGVyIG1ha2luZyBqdW1wIGlzbGFuZHMgd29yayB3aXRoIE9wdGlvbnM6OmppdE1lbW9yeVJlc2Vy
dmF0aW9uU2l6ZQogLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
OTAzNwogLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAiYXJtNjQiCi0vLyBUaGlzIHRlc3Qg
d2lsbCBuZXZlciBmYWlsIHRvIGNvbXBpbGUgYSBtb2R1bGUgd2l0aCB0aGlzIG9wdGlvbiBlbmFi
bGVkLgotLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZUludGVycHJldGVkSlNFbnRyeVdyYXBwZXJz
PTAiKQogCiBpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJwogaW1wb3J0IEJ1
aWxkZXIgZnJvbSAnLi4vQnVpbGRlci5qcycKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9zdHJl
c3MvY2MtZG91YmxlLXRvLWRvdWJsZS5qcyBiL0pTVGVzdHMvd2FzbS9zdHJlc3MvY2MtZG91Ymxl
LXRvLWRvdWJsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmZiYzU3YmViZjdk
Li4wMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1kb3VibGUtdG8tZG91
YmxlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLy9AIHJlcXVpcmVPcHRpb25z
KCItLXVzZUludGVycHJldGVkSlNFbnRyeVdyYXBwZXJzPTEiKQotLy8gIERlYnVnZ2luZzoganNj
IC1tIGNjLWludC10by1pbnQuanMgLS11c2VDb25jdXJyZW50SklUPTAgLS11c2VCQlFKSVQ9MCAt
LXVzZU9NR0pJVD0wIC0taml0QWxsb3dMaXN0PW5vdGhpbmcgLS11c2VERkdKSVQ9MCAtLWR1bXBE
aXNhc3NlbWJseT0wIC0tZm9yY2VJQ0ZhaWx1cmU9MSAtLXVzZUludGVycHJldGVkSlNFbnRyeVdy
YXBwZXJzPTEgLS1kdW1wRGlzYXNzZW1ibHk9MAotaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9t
ICIuLi93YWJ0LXdyYXBwZXIuanMiCi1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAiLi4vYXNzZXJ0
LmpzIgotCi1sZXQgd2F0ID0gYAotKG1vZHVsZQotICAgICh0eXBlICRzaWdfdGVzdCAoZnVuYyAo
cGFyYW0gZjY0KSAocmVzdWx0IGY2NCkpKQotICAgICh0YWJsZSAkdCAxIGZ1bmNyZWYpCi0gICAg
KGVsZW0gKGkzMi5jb25zdCAwKSAkdGVzdCkKLQotICAgIChmdW5jICR0ZXN0IChleHBvcnQgInRl
c3QiKSAocGFyYW0gJHggZjY0KSAocmVzdWx0IGY2NCkKLSAgICAgICAgKGY2NC5hZGQgKGxvY2Fs
LmdldCAkeCkgKGY2NC5jb25zdCA0MikpCi0gICAgKQotCi0gICAgKGZ1bmMgKGV4cG9ydCAidGVz
dF93aXRoX2NhbGwiKSAocGFyYW0gJHggZjY0KSAocmVzdWx0IGY2NCkKLSAgICAgICAgKGY2NC5h
ZGQgKGxvY2FsLmdldCAkeCkgKGNhbGwgJHRlc3QgKGY2NC5jb25zdCAxMzM3KSkpCi0gICAgKQot
Ci0gICAgKGZ1bmMgKGV4cG9ydCAidGVzdF93aXRoX2NhbGxfaW5kaXJlY3QiKSAocGFyYW0gJHgg
ZjY0KSAocmVzdWx0IGY2NCkKLSAgICAgICAgKGxvY2FsLmdldCAkeCkKLSAgICAgICAgKGY2NC5j
b25zdCA5OCkKLSAgICAgICAgKGNhbGxfaW5kaXJlY3QgJHQgKHR5cGUgJHNpZ190ZXN0KSAoaTMy
LmNvbnN0IDApKQotICAgICAgICBmNjQuYWRkCi0gICAgKQotKQotYAotCi1hc3luYyBmdW5jdGlv
biB0ZXN0KCkgewotICAgIGNvbnN0IGluc3RhbmNlID0gYXdhaXQgaW5zdGFudGlhdGUod2F0LCB7
fSwgeyBzaW1kOiB0cnVlIH0pCi0gICAgY29uc3QgeyB0ZXN0LCB0ZXN0X3dpdGhfY2FsbCwgdGVz
dF93aXRoX2NhbGxfaW5kaXJlY3QgfSA9IGluc3RhbmNlLmV4cG9ydHMKLQotICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7Ci0gICAgICAgIGFzc2VydC5lcSh0ZXN0KDUpLCA0MiAr
IDUpCi0gICAgICAgIGFzc2VydC5lcSh0ZXN0KCksIE5hTikKLSAgICAgICAgYXNzZXJ0LmVxKHRl
c3QobnVsbCksIDQyICsgMCkKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3QoeyB9KSwgTmFOKQotICAg
ICAgICBhc3NlcnQuZXEodGVzdCh7IH0sIDEwKSwgTmFOKQotICAgICAgICBhc3NlcnQuZXEodGVz
dCgyMC4xLCAxMCksICg0MiArIDIwLjEpKQotICAgICAgICBhc3NlcnQuZXEodGVzdCgxMCwgMjAu
MSksIDQyICsgMTApCi0gICAgICAgIGFzc2VydC5lcSh0ZXN0X3dpdGhfY2FsbCg1KSwgNDIgKyA1
ICsgMTMzNykKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsKCksIE5hTikKLSAgICAg
ICAgYXNzZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsKG51bGwpLCA0MiArIDAgKyAxMzM3KQotICAgICAg
ICBhc3NlcnQuZXEodGVzdF93aXRoX2NhbGwoeyB9KSwgTmFOKQotICAgICAgICBhc3NlcnQuZXEo
dGVzdF93aXRoX2NhbGwoeyB9LCAxMCksIE5hTikKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3Rfd2l0
aF9jYWxsKDIwLjEsIDEwKSwgKDQyICsgMjAuMSArIDEzMzcpKQotICAgICAgICBhc3NlcnQuZXEo
dGVzdF93aXRoX2NhbGwoMTAsIDIwLjEpLCA0MiArIDEwICsgMTMzNykKLSAgICAgICAgYXNzZXJ0
LmVxKHRlc3Rfd2l0aF9jYWxsX2luZGlyZWN0KDUpLCA0MiArIDUgKyA5OCkKLSAgICAgICAgYXNz
ZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsX2luZGlyZWN0KCksIE5hTikKLSAgICAgICAgYXNzZXJ0LmVx
KHRlc3Rfd2l0aF9jYWxsX2luZGlyZWN0KG51bGwpLCA0MiArIDAgKyA5OCkKLSAgICAgICAgYXNz
ZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsX2luZGlyZWN0KHsgfSksIE5hTikKLSAgICAgICAgYXNzZXJ0
LmVxKHRlc3Rfd2l0aF9jYWxsX2luZGlyZWN0KHsgfSwgMTApLCBOYU4pCi0gICAgICAgIGFzc2Vy
dC5lcSh0ZXN0X3dpdGhfY2FsbF9pbmRpcmVjdCgyMC4xLCAxMCksICg0MiArIDIwLjEgKyA5OCkp
Ci0gICAgICAgIGFzc2VydC5lcSh0ZXN0X3dpdGhfY2FsbF9pbmRpcmVjdCgxMCwgMjAuMSksIDQy
ICsgMTAgKyA5OCkKLSAgICB9Ci19Ci0KLWF3YWl0IGFzc2VydC5hc3luY1Rlc3QodGVzdCgpKQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1mMzIta2l0Y2hlbi1zaW5rLmpzIGIv
SlNUZXN0cy93YXNtL3N0cmVzcy9jYy1mMzIta2l0Y2hlbi1zaW5rLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4MTQ1MTkzYTkyNWMuLjAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3Rz
L3dhc20vc3RyZXNzL2NjLWYzMi1raXRjaGVuLXNpbmsuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3
NyArMCwwIEBACi0vL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlSW50ZXJwcmV0ZWRKU0VudHJ5V3Jh
cHBlcnM9MSIpCi1pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gIi4uL3dhYnQtd3JhcHBlci5q
cyIKLWltcG9ydCAqIGFzIGFzc2VydCBmcm9tICIuLi9hc3NlcnQuanMiCi0KLWxldCB3YXQgPSBg
Ci0obW9kdWxlCi0gICAgKGZ1bmMgJGYwIChleHBvcnQgImYwIikKLSAgICAgICAgKHBhcmFtICR4
MCBmMzIpIChwYXJhbSAkeDEgZjMyKSAocGFyYW0gJHgyIGYzMikgKHBhcmFtICR4MyBmMzIpCi0g
ICAgICAgIChwYXJhbSAkeDQgZjMyKSAocGFyYW0gJHg1IGYzMikgKHBhcmFtICR4NiBmMzIpIChw
YXJhbSAkeDcgZjMyKQotICAgICAgICAocmVzdWx0IGYzMikKLSAgICAgICAgKGYzMi5hZGQgKGxv
Y2FsLmdldCAkeDApCi0gICAgICAgICAgICAoZjMyLmFkZCAobG9jYWwuZ2V0ICR4MSkKLSAgICAg
ICAgICAgICAgICAoZjMyLmFkZCAobG9jYWwuZ2V0ICR4MikKLSAgICAgICAgICAgICAgICAgICAg
KGYzMi5hZGQgKGxvY2FsLmdldCAkeDMpCi0gICAgICAgICAgICAgICAgICAgICAgICAoZjMyLmFk
ZCAobG9jYWwuZ2V0ICR4NCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZjMyLmFkZCAo
bG9jYWwuZ2V0ICR4NSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGYzMi5hZGQg
KGxvY2FsLmdldCAkeDYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9j
YWwuZ2V0ICR4NykpKSkpKSkpCi0gICAgKQotCi0gICAgKGZ1bmMgJGYxIChleHBvcnQgImYxIikK
LSAgICAgICAgKHBhcmFtICR4MCBmMzIpIChwYXJhbSAkeDEgZjMyKSAocGFyYW0gJHgyIGYzMikg
KHBhcmFtICR4MyBmMzIpCi0gICAgICAgIChwYXJhbSAkeDQgZjMyKSAocGFyYW0gJHg1IGYzMikg
KHBhcmFtICR4NiBmMzIpIChwYXJhbSAkeDcgZjMyKQotICAgICAgICAocGFyYW0gJHg4IGYzMikg
KHBhcmFtICR4OSBmMzIpIChwYXJhbSAkeDEwIGYzMikgKHBhcmFtICR4MTEgZjMyKQotICAgICAg
ICAocmVzdWx0IGYzMikKLSAgICAgICAgKGYzMi5hZGQgKGxvY2FsLmdldCAkeDApCi0gICAgICAg
ICAgICAoZjMyLmFkZCAobG9jYWwuZ2V0ICR4MSkKLSAgICAgICAgICAgICAgICAoZjMyLmFkZCAo
bG9jYWwuZ2V0ICR4MikKLSAgICAgICAgICAgICAgICAgICAgKGYzMi5hZGQgKGxvY2FsLmdldCAk
eDMpCi0gICAgICAgICAgICAgICAgICAgICAgICAoZjMyLmFkZCAobG9jYWwuZ2V0ICR4NCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoZjMyLmFkZCAobG9jYWwuZ2V0ICR4NSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGYzMi5hZGQgKGxvY2FsLmdldCAkeDYpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZjMyLmFkZCAobG9jYWwuZ2V0ICR4NykK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZjMyLmFkZCAobG9jYWwu
Z2V0ICR4OCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGYz
Mi5hZGQgKGxvY2FsLmdldCAkeDkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZjMyLmFkZCAobG9jYWwuZ2V0ICR4MTApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYWwuZ2V0ICR4MTEpKSkpKSkpKSkp
KSkKLSAgICApCi0KLSAgICAoZnVuYyAkZjIgKGV4cG9ydCAiZjIiKQotICAgICAgICAocGFyYW0g
JHgwIGYzMikgKHBhcmFtICR4MSBmMzIpIChwYXJhbSAkeDIgZjMyKSAocGFyYW0gJHgzIGYzMikK
LSAgICAgICAgKHBhcmFtICR4NCBmMzIpIChwYXJhbSAkeDUgZjMyKSAocGFyYW0gJHg2IGYzMikg
KHBhcmFtICR4NyBmMzIpCi0gICAgICAgIChwYXJhbSAkeDggZjMyKSAocGFyYW0gJHg5IGYzMikg
KHBhcmFtICR4MTAgZjMyKSAocGFyYW0gJHgxMSBmMzIpCi0gICAgICAgIChyZXN1bHQgZjMyKQot
ICAgICAgICAoZjMyLmFkZCAobG9jYWwuZ2V0ICR4MCkKLSAgICAgICAgICAgIChsb2NhbC5nZXQg
JHgxMSkpCi0gICAgKQotCi0gICAgKGZ1bmMgJGYzIChleHBvcnQgImYzIikKLSAgICAgICAgKHBh
cmFtICR4MCBmMzIpIChwYXJhbSAkeDEgZjMyKSAocGFyYW0gJHgyIGYzMikgKHBhcmFtICR4MyBm
MzIpCi0gICAgICAgIChwYXJhbSAkeDQgZjMyKSAocGFyYW0gJHg1IGYzMikgKHBhcmFtICR4NiBm
MzIpIChwYXJhbSAkeDcgZjMyKQotICAgICAgICAocGFyYW0gJHg4IGYzMikgKHBhcmFtICR4OSBm
MzIpIChwYXJhbSAkeDEwIGYzMikgKHBhcmFtICR4MTEgZjMyKQotICAgICAgICAoZjMyLmFkZCAo
bG9jYWwuZ2V0ICR4MCkKLSAgICAgICAgICAgIChsb2NhbC5nZXQgJHgxMSkpCi0gICAgICAgIGRy
b3AKLSAgICApCi0pCi1gCi0KLWFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgY29uc3QgaW5z
dGFuY2UgPSBhd2FpdCBpbnN0YW50aWF0ZSh3YXQsIHt9LCB7IHNpbWQ6IHRydWUgfSkKLSAgICBj
b25zdCB7IGYwLCBmMSwgZjIsIGYzIH0gPSBpbnN0YW5jZS5leHBvcnRzCi0KLSAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IDEwMDA7ICsraSkgewotICAgICAgICBhc3NlcnQuZXEoZjAoMSwgMiwgMywg
NCwgNSwgNiwgNywgOCksIDEgKyAyICsgMyArIDQgKyA1ICsgNiArIDcgKyA4KQotICAgICAgICBh
c3NlcnQuZXEoZjAoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTApLCAxICsgMiArIDMgKyA0
ICsgNSArIDYgKyA3ICsgOCkKLSAgICAgICAgYXNzZXJ0LmVxKGYwKDEsIDIsIDMsIDQsIDUpLCBO
YU4pCi0gICAgICAgIGFzc2VydC5lcShmMSgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4KSwgTmFOKQot
ICAgICAgICBhc3NlcnQuZXEoZjEoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAx
MiksIDEgKyAyICsgMyArIDQgKyA1ICsgNiArIDcgKyA4ICsgOSArIDEwICsgMTEgKyAxMikKLSAg
ICAgICAgYXNzZXJ0LmVxKGYxKDEsIDIsIDMsIDQsIDUpLCBOYU4pCi0gICAgICAgIGFzc2VydC5l
cShmMSgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KSwg
MSArIDIgKyAzICsgNCArIDUgKyA2ICsgNyArIDggKyA5ICsgMTAgKyAxMSArIDEyKQotICAgICAg
ICBhc3NlcnQuZXEoZjIoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMs
IDE0LCAxNSksIDEgKyAxMikKLSAgICAgICAgYXNzZXJ0LmVxKGYzKDEsIDIsIDMsIDQsIDUsIDYs
IDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpLCB1bmRlZmluZWQpCi0gICAgfQotfQot
Ci1hd2FpdCBhc3NlcnQuYXN5bmNUZXN0KHRlc3QoKSkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2Fz
bS9zdHJlc3MvY2MtZmxvYXQtdG8tZmxvYXQuanMgYi9KU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWZs
b2F0LXRvLWZsb2F0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMGI0NzM1ZTg4
OGMuLjAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWZsb2F0LXRvLWZs
b2F0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLy9AIHJlcXVpcmVPcHRpb25z
KCItLXVzZUludGVycHJldGVkSlNFbnRyeVdyYXBwZXJzPTEiKQotLy8gIERlYnVnZ2luZzoganNj
IC1tIGNjLWludC10by1pbnQuanMgLS11c2VDb25jdXJyZW50SklUPTAgLS11c2VCQlFKSVQ9MCAt
LXVzZU9NR0pJVD0wIC0taml0QWxsb3dMaXN0PW5vdGhpbmcgLS11c2VERkdKSVQ9MCAtLWR1bXBE
aXNhc3NlbWJseT0wIC0tZm9yY2VJQ0ZhaWx1cmU9MSAtLXVzZUludGVycHJldGVkSlNFbnRyeVdy
YXBwZXJzPTEgLS1kdW1wRGlzYXNzZW1ibHk9MAotaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9t
ICIuLi93YWJ0LXdyYXBwZXIuanMiCi1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAiLi4vYXNzZXJ0
LmpzIgotCi1sZXQgd2F0ID0gYAotKG1vZHVsZQotICAgICh0eXBlICRzaWdfdGVzdCAoZnVuYyAo
cGFyYW0gZjMyKSAocmVzdWx0IGYzMikpKQotICAgICh0YWJsZSAkdCAxIGZ1bmNyZWYpCi0gICAg
KGVsZW0gKGkzMi5jb25zdCAwKSAkdGVzdCkKLQotICAgIChmdW5jICR0ZXN0IChleHBvcnQgInRl
c3QiKSAocGFyYW0gJHggZjMyKSAocmVzdWx0IGYzMikKLSAgICAgICAgKGYzMi5hZGQgKGxvY2Fs
LmdldCAkeCkgKGYzMi5jb25zdCA0MikpCi0gICAgKQotCi0gICAgKGZ1bmMgKGV4cG9ydCAidGVz
dF93aXRoX2NhbGwiKSAocGFyYW0gJHggZjMyKSAocmVzdWx0IGYzMikKLSAgICAgICAgKGYzMi5h
ZGQgKGxvY2FsLmdldCAkeCkgKGNhbGwgJHRlc3QgKGYzMi5jb25zdCAxMzM3KSkpCi0gICAgKQot
Ci0gICAgKGZ1bmMgKGV4cG9ydCAidGVzdF93aXRoX2NhbGxfaW5kaXJlY3QiKSAocGFyYW0gJHgg
ZjMyKSAocmVzdWx0IGYzMikKLSAgICAgICAgKGxvY2FsLmdldCAkeCkKLSAgICAgICAgKGYzMi5j
b25zdCA5OCkKLSAgICAgICAgKGNhbGxfaW5kaXJlY3QgJHQgKHR5cGUgJHNpZ190ZXN0KSAoaTMy
LmNvbnN0IDApKQotICAgICAgICBmMzIuYWRkCi0gICAgKQotKQotYAotCi1hc3luYyBmdW5jdGlv
biB0ZXN0KCkgewotICAgIGNvbnN0IGluc3RhbmNlID0gYXdhaXQgaW5zdGFudGlhdGUod2F0LCB7
fSwgeyBzaW1kOiB0cnVlIH0pCi0gICAgY29uc3QgeyB0ZXN0LCB0ZXN0X3dpdGhfY2FsbCwgdGVz
dF93aXRoX2NhbGxfaW5kaXJlY3QgfSA9IGluc3RhbmNlLmV4cG9ydHMKLQotICAgIGZ1bmN0aW9u
IGZsb2F0KGQpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoW2RdKVswXQotICAg
IH0KLQotCi0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKLSAgICAgICAgYXNz
ZXJ0LmVxKHRlc3QoNSksIDQyICsgNSkKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3QoKSwgTmFOKQot
ICAgICAgICBhc3NlcnQuZXEodGVzdChudWxsKSwgNDIgKyAwKQotICAgICAgICBhc3NlcnQuZXEo
dGVzdCh7IH0pLCBOYU4pCi0gICAgICAgIGFzc2VydC5lcSh0ZXN0KHsgfSwgMTApLCBOYU4pCi0g
ICAgICAgIGFzc2VydC5lcSh0ZXN0KDIwLjEsIDEwKSwgZmxvYXQoNDIgKyAyMC4xKSkKLSAgICAg
ICAgYXNzZXJ0LmVxKHRlc3QoMTAsIDIwLjEpLCA0MiArIDEwKQotICAgICAgICBhc3NlcnQuZXEo
dGVzdF93aXRoX2NhbGwoNSksIDQyICsgNSArIDEzMzcpCi0gICAgICAgIGFzc2VydC5lcSh0ZXN0
X3dpdGhfY2FsbCgpLCBOYU4pCi0gICAgICAgIGFzc2VydC5lcSh0ZXN0X3dpdGhfY2FsbChudWxs
KSwgNDIgKyAwICsgMTMzNykKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsKHsgfSks
IE5hTikKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsKHsgfSwgMTApLCBOYU4pCi0g
ICAgICAgIGFzc2VydC5lcSh0ZXN0X3dpdGhfY2FsbCgyMC4xLCAxMCksIGZsb2F0KDQyICsgMjAu
MSArIDEzMzcpKQotICAgICAgICBhc3NlcnQuZXEodGVzdF93aXRoX2NhbGwoMTAsIDIwLjEpLCA0
MiArIDEwICsgMTMzNykKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsX2luZGlyZWN0
KDUpLCA0MiArIDUgKyA5OCkKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsX2luZGly
ZWN0KCksIE5hTikKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsX2luZGlyZWN0KG51
bGwpLCA0MiArIDAgKyA5OCkKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsX2luZGly
ZWN0KHsgfSksIE5hTikKLSAgICAgICAgYXNzZXJ0LmVxKHRlc3Rfd2l0aF9jYWxsX2luZGlyZWN0
KHsgfSwgMTApLCBOYU4pCi0gICAgICAgIGFzc2VydC5lcSh0ZXN0X3dpdGhfY2FsbF9pbmRpcmVj
dCgyMC4xLCAxMCksIGZsb2F0KDQyICsgMjAuMSArIDk4KSkKLSAgICAgICAgYXNzZXJ0LmVxKHRl
c3Rfd2l0aF9jYWxsX2luZGlyZWN0KDEwLCAyMC4xKSwgNDIgKyAxMCArIDk4KQotICAgIH0KLX0K
LQotYXdhaXQgYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0KCkpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dh
c20vc3RyZXNzL2NjLWkzMi1raXRjaGVuLXNpbmstbmVnLmpzIGIvSlNUZXN0cy93YXNtL3N0cmVz
cy9jYy1pMzIta2l0Y2hlbi1zaW5rLW5lZy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDYyYjFjMTk5YTRhLi4wMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL3N0cmVzcy9j
Yy1pMzIta2l0Y2hlbi1zaW5rLW5lZy5qcworKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAK
LS8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VJbnRlcnByZXRlZEpTRW50cnlXcmFwcGVycz0xIikK
LWltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSAiLi4vd2FidC13cmFwcGVyLmpzIgotaW1wb3J0
ICogYXMgYXNzZXJ0IGZyb20gIi4uL2Fzc2VydC5qcyIKLQotbGV0IHdhdCA9IGAKLShtb2R1bGUK
LSAgICAoZnVuYyAkZjAgKGV4cG9ydCAiZjAiKQotICAgICAgICAocGFyYW0gJHgwIGkzMikgKHBh
cmFtICR4MSBpMzIpIChwYXJhbSAkeDIgaTMyKSAocGFyYW0gJHgzIGkzMikKLSAgICAgICAgKHBh
cmFtICR4NCBpMzIpIChwYXJhbSAkeDUgaTMyKSAocGFyYW0gJHg2IGkzMikgKHBhcmFtICR4NyBp
MzIpCi0gICAgICAgIChyZXN1bHQgaTMyKQotICAgICAgICAoaTMyLmFkZCAobG9jYWwuZ2V0ICR4
MCkKLSAgICAgICAgICAgIChpMzIuYWRkIChsb2NhbC5nZXQgJHgxKQotICAgICAgICAgICAgICAg
IChpMzIuYWRkIChsb2NhbC5nZXQgJHgyKQotICAgICAgICAgICAgICAgICAgICAoaTMyLmFkZCAo
bG9jYWwuZ2V0ICR4MykKLSAgICAgICAgICAgICAgICAgICAgICAgIChpMzIuYWRkIChsb2NhbC5n
ZXQgJHg0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpMzIuYWRkIChsb2NhbC5nZXQg
JHg1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaTMyLmFkZCAobG9jYWwuZ2V0
ICR4NikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2NhbC5nZXQgJHg3
KSkpKSkpKSkKLSAgICApCi0KLSAgICAoZnVuYyAkZjEgKGV4cG9ydCAiZjEiKQotICAgICAgICAo
cGFyYW0gJHgwIGkzMikgKHBhcmFtICR4MSBpMzIpIChwYXJhbSAkeDIgaTMyKSAocGFyYW0gJHgz
IGkzMikKLSAgICAgICAgKHBhcmFtICR4NCBpMzIpIChwYXJhbSAkeDUgaTMyKSAocGFyYW0gJHg2
IGkzMikgKHBhcmFtICR4NyBpMzIpCi0gICAgICAgIChwYXJhbSAkeDggaTMyKSAocGFyYW0gJHg5
IGkzMikgKHBhcmFtICR4MTAgaTMyKSAocGFyYW0gJHgxMSBpMzIpCi0gICAgICAgIChyZXN1bHQg
aTMyKQotICAgICAgICAoaTMyLmFkZCAobG9jYWwuZ2V0ICR4MCkKLSAgICAgICAgICAgIChpMzIu
YWRkIChsb2NhbC5nZXQgJHgxKQotICAgICAgICAgICAgICAgIChpMzIuYWRkIChsb2NhbC5nZXQg
JHgyKQotICAgICAgICAgICAgICAgICAgICAoaTMyLmFkZCAobG9jYWwuZ2V0ICR4MykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIChpMzIuYWRkIChsb2NhbC5nZXQgJHg0KQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChpMzIuYWRkIChsb2NhbC5nZXQgJHg1KQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoaTMyLmFkZCAobG9jYWwuZ2V0ICR4NikKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChpMzIuYWRkIChsb2NhbC5nZXQgJHg3KQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpMzIuYWRkIChsb2NhbC5nZXQgJHg4KQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaTMyLmFkZCAobG9j
YWwuZ2V0ICR4OSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChpMzIuYWRkIChsb2NhbC5nZXQgJHgxMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsb2NhbC5nZXQgJHgxMSkpKSkpKSkpKSkpKQotICAgICkK
LQotICAgIChmdW5jICRmMiAoZXhwb3J0ICJmMiIpCi0gICAgICAgIChwYXJhbSAkeDAgaTMyKSAo
cGFyYW0gJHgxIGkzMikgKHBhcmFtICR4MiBpMzIpIChwYXJhbSAkeDMgaTMyKQotICAgICAgICAo
cGFyYW0gJHg0IGkzMikgKHBhcmFtICR4NSBpMzIpIChwYXJhbSAkeDYgaTMyKSAocGFyYW0gJHg3
IGkzMikKLSAgICAgICAgKHBhcmFtICR4OCBpMzIpIChwYXJhbSAkeDkgaTMyKSAocGFyYW0gJHgx
MCBpMzIpIChwYXJhbSAkeDExIGkzMikKLSAgICAgICAgKHJlc3VsdCBpMzIpCi0gICAgICAgIChp
MzIuYWRkIChsb2NhbC5nZXQgJHgwKQotICAgICAgICAgICAgKGxvY2FsLmdldCAkeDExKSkKLSAg
ICApCi0KLSAgICAoZnVuYyAkZjMgKGV4cG9ydCAiZjMiKQotICAgICAgICAocGFyYW0gJHgwIGkz
MikgKHBhcmFtICR4MSBpMzIpIChwYXJhbSAkeDIgaTMyKSAocGFyYW0gJHgzIGkzMikKLSAgICAg
ICAgKHBhcmFtICR4NCBpMzIpIChwYXJhbSAkeDUgaTMyKSAocGFyYW0gJHg2IGkzMikgKHBhcmFt
ICR4NyBpMzIpCi0gICAgICAgIChwYXJhbSAkeDggaTMyKSAocGFyYW0gJHg5IGkzMikgKHBhcmFt
ICR4MTAgaTMyKSAocGFyYW0gJHgxMSBpMzIpCi0gICAgICAgIChpMzIuYWRkIChsb2NhbC5nZXQg
JHgwKQotICAgICAgICAgICAgKGxvY2FsLmdldCAkeDExKSkKLSAgICAgICAgZHJvcAotICAgICkK
LSkKLWAKLQotYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBjb25zdCBpbnN0YW5jZSA9IGF3
YWl0IGluc3RhbnRpYXRlKHdhdCwge30sIHsgc2ltZDogdHJ1ZSB9KQotICAgIGNvbnN0IHsgZjAs
IGYxLCBmMiwgZjMgfSA9IGluc3RhbmNlLmV4cG9ydHMKLQotICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgMTAwMDsgKytpKSB7Ci0gICAgICAgIGFzc2VydC5lcShmMCgtMSwgLTIsIC0zLCAtNCwgLTUs
IC02LCAtNywgLTgpLCAtMSArIC0yICsgLTMgKyAtNCArIC01ICsgLTYgKyAtNyArIC04KQotICAg
ICAgICBhc3NlcnQuZXEoZjAoLTEsIC0yLCAtMywgLTQsIC01LCAtNiwgLTcsIC04LCAtOSwgLTEw
KSwgLTEgKyAtMiArIC0zICsgLTQgKyAtNSArIC02ICsgLTcgKyAtOCkKLSAgICAgICAgYXNzZXJ0
LmVxKGYwKC0xLCAtMiwgLTMsIC00LCAtNSksIC0xICsgLTIgKyAtMyArIC00ICsgLTUpCi0gICAg
ICAgIGFzc2VydC5lcShmMSgtMSwgLTIsIC0zLCAtNCwgLTUsIC02LCAtNywgLTgpLCAtMSArIC0y
ICsgLTMgKyAtNCArIC01ICsgLTYgKyAtNyArIC04KQotICAgICAgICBhc3NlcnQuZXEoZjEoLTEs
IC0yLCAtMywgLTQsIC01LCAtNiwgLTcsIC04LCAtOSwgLTEwLCAtMTEsIC0xMiksIC0xICsgLTIg
KyAtMyArIC00ICsgLTUgKyAtNiArIC03ICsgLTggKyAtOSArIC0xMCArIC0xMSArIC0xMikKLSAg
ICAgICAgYXNzZXJ0LmVxKGYxKC0xLCAtMiwgLTMsIC00LCAtNSksIC0xICsgLTIgKyAtMyArIC00
ICsgLTUpCi0gICAgICAgIGFzc2VydC5lcShmMSgtMSwgLTIsIC0zLCAtNCwgLTUsIC02LCAtNywg
LTgsIC05LCAtMTAsIC0xMSwgLTEyLCAtMTMsIC0xNCwgLTE1KSwgLTEgKyAtMiArIC0zICsgLTQg
KyAtNSArIC02ICsgLTcgKyAtOCArIC05ICsgLTEwICsgLTExICsgLTEyKQotICAgICAgICBhc3Nl
cnQuZXEoZjIoLTEsIC0yLCAtMywgLTQsIC01LCAtNiwgLTcsIC04LCAtOSwgLTEwLCAtMTEsIC0x
MiwgLTEzLCAtMTQsIC0xNSksIC0xICsgLTEyKQotICAgICAgICBhc3NlcnQuZXEoZjMoLTEsIC0y
LCAtMywgLTQsIC01LCAtNiwgLTcsIC04LCAtOSwgLTEwLCAtMTEsIC0xMiwgLTEzLCAtMTQsIC0x
NSksIHVuZGVmaW5lZCkKLSAgICB9Ci19Ci0KLWF3YWl0IGFzc2VydC5hc3luY1Rlc3QodGVzdCgp
KQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pMzIta2l0Y2hlbi1zaW5rLmpz
IGIvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pMzIta2l0Y2hlbi1zaW5rLmpzCmluZGV4IGEyNDZl
ZDlmYWIxZi4uZjQwZmFlZDc1N2JhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vc3RyZXNzL2Nj
LWkzMi1raXRjaGVuLXNpbmsuanMKKysrIGIvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pMzIta2l0
Y2hlbi1zaW5rLmpzCkBAIC0xLDMgKzEsNSBAQAorLy9AIHNraXAKKy8vQCByZXF1aXJlT3B0aW9u
cygiLS11c2VKSVRDYWdlPTAiKSAjIHRlbXBvcmFyeSB3b3JrYXJvdW5kIGZvciByZGFyOi8vMTI3
MzA4MzUwCiAvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlSW50ZXJwcmV0ZWRKU0VudHJ5V3JhcHBl
cnM9MSIpCiBpbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gIi4uL3dhYnQtd3JhcHBlci5qcyIK
IGltcG9ydCAqIGFzIGFzc2VydCBmcm9tICIuLi9hc3NlcnQuanMiCkBAIC02MSw3ICs2Myw3IEBA
IGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBpbnN0
YW50aWF0ZSh3YXQsIHt9LCB7IHNpbWQ6IHRydWUgfSkKICAgICBjb25zdCB7IGYwLCBmMSwgZjIs
IGYzIH0gPSBpbnN0YW5jZS5leHBvcnRzCiAKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7
ICsraSkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDAwMDA7ICsraSkgewogICAgICAg
ICBhc3NlcnQuZXEoZjAoMSwgMiwgMywgNCwgNSwgNiwgNywgOCksIDEgKyAyICsgMyArIDQgKyA1
ICsgNiArIDcgKyA4KQogICAgICAgICBhc3NlcnQuZXEoZjAoMSwgMiwgMywgNCwgNSwgNiwgNywg
OCwgOSwgMTApLCAxICsgMiArIDMgKyA0ICsgNSArIDYgKyA3ICsgOCkKICAgICAgICAgYXNzZXJ0
LmVxKGYwKDEsIDIsIDMsIDQsIDUpLCAxICsgMiArIDMgKyA0ICsgNSkKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvd2FzbS9zdHJlc3MvY2MtaTY0LWtpdGNoZW4tc2luay1uZWcuanMgYi9KU1Rlc3RzL3dh
c20vc3RyZXNzL2NjLWk2NC1raXRjaGVuLXNpbmstbmVnLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiMmUwYjY5Y2RhYjMuLjAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dhc20v
c3RyZXNzL2NjLWk2NC1raXRjaGVuLXNpbmstbmVnLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNzcg
KzAsMCBAQAotLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZUludGVycHJldGVkSlNFbnRyeVdyYXBw
ZXJzPTEiKQotaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tICIuLi93YWJ0LXdyYXBwZXIuanMi
Ci1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAiLi4vYXNzZXJ0LmpzIgotCi1sZXQgd2F0ID0gYAot
KG1vZHVsZQotICAgIChmdW5jICRmMCAoZXhwb3J0ICJmMCIpCi0gICAgICAgIChwYXJhbSAkeDAg
aTY0KSAocGFyYW0gJHgxIGk2NCkgKHBhcmFtICR4MiBpNjQpIChwYXJhbSAkeDMgaTY0KQotICAg
ICAgICAocGFyYW0gJHg0IGk2NCkgKHBhcmFtICR4NSBpNjQpIChwYXJhbSAkeDYgaTY0KSAocGFy
YW0gJHg3IGk2NCkKLSAgICAgICAgKHJlc3VsdCBpNjQpCi0gICAgICAgIChpNjQuYWRkIChsb2Nh
bC5nZXQgJHgwKQotICAgICAgICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDEpCi0gICAgICAg
ICAgICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDIpCi0gICAgICAgICAgICAgICAgICAgIChp
NjQuYWRkIChsb2NhbC5nZXQgJHgzKQotICAgICAgICAgICAgICAgICAgICAgICAgKGk2NC5hZGQg
KGxvY2FsLmdldCAkeDQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGk2NC5hZGQgKGxv
Y2FsLmdldCAkeDUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpNjQuYWRkIChs
b2NhbC5nZXQgJHg2KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2Fs
LmdldCAkeDcpKSkpKSkpKQotICAgICkKLQotICAgIChmdW5jICRmMSAoZXhwb3J0ICJmMSIpCi0g
ICAgICAgIChwYXJhbSAkeDAgaTY0KSAocGFyYW0gJHgxIGk2NCkgKHBhcmFtICR4MiBpNjQpIChw
YXJhbSAkeDMgaTY0KQotICAgICAgICAocGFyYW0gJHg0IGk2NCkgKHBhcmFtICR4NSBpNjQpIChw
YXJhbSAkeDYgaTY0KSAocGFyYW0gJHg3IGk2NCkKLSAgICAgICAgKHBhcmFtICR4OCBpNjQpIChw
YXJhbSAkeDkgaTY0KSAocGFyYW0gJHgxMCBpNjQpIChwYXJhbSAkeDExIGk2NCkKLSAgICAgICAg
KHJlc3VsdCBpNjQpCi0gICAgICAgIChpNjQuYWRkIChsb2NhbC5nZXQgJHgwKQotICAgICAgICAg
ICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDEpCi0gICAgICAgICAgICAgICAgKGk2NC5hZGQgKGxv
Y2FsLmdldCAkeDIpCi0gICAgICAgICAgICAgICAgICAgIChpNjQuYWRkIChsb2NhbC5nZXQgJHgz
KQotICAgICAgICAgICAgICAgICAgICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDQpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDUpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChpNjQuYWRkIChsb2NhbC5nZXQgJHg2KQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDcpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGk2NC5hZGQgKGxvY2FsLmdl
dCAkeDgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpNjQu
YWRkIChsb2NhbC5nZXQgJHg5KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDEwKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2FsLmdldCAkeDExKSkpKSkpKSkpKSkp
Ci0gICAgKQotCi0gICAgKGZ1bmMgJGYyIChleHBvcnQgImYyIikKLSAgICAgICAgKHBhcmFtICR4
MCBpNjQpIChwYXJhbSAkeDEgaTY0KSAocGFyYW0gJHgyIGk2NCkgKHBhcmFtICR4MyBpNjQpCi0g
ICAgICAgIChwYXJhbSAkeDQgaTY0KSAocGFyYW0gJHg1IGk2NCkgKHBhcmFtICR4NiBpNjQpIChw
YXJhbSAkeDcgaTY0KQotICAgICAgICAocGFyYW0gJHg4IGk2NCkgKHBhcmFtICR4OSBpNjQpIChw
YXJhbSAkeDEwIGk2NCkgKHBhcmFtICR4MTEgaTY0KQotICAgICAgICAocmVzdWx0IGk2NCkKLSAg
ICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDApCi0gICAgICAgICAgICAobG9jYWwuZ2V0ICR4
MTEpKQotICAgICkKLQotICAgIChmdW5jICRmMyAoZXhwb3J0ICJmMyIpCi0gICAgICAgIChwYXJh
bSAkeDAgaTY0KSAocGFyYW0gJHgxIGk2NCkgKHBhcmFtICR4MiBpNjQpIChwYXJhbSAkeDMgaTY0
KQotICAgICAgICAocGFyYW0gJHg0IGk2NCkgKHBhcmFtICR4NSBpNjQpIChwYXJhbSAkeDYgaTY0
KSAocGFyYW0gJHg3IGk2NCkKLSAgICAgICAgKHBhcmFtICR4OCBpNjQpIChwYXJhbSAkeDkgaTY0
KSAocGFyYW0gJHgxMCBpNjQpIChwYXJhbSAkeDExIGk2NCkKLSAgICAgICAgKGk2NC5hZGQgKGxv
Y2FsLmdldCAkeDApCi0gICAgICAgICAgICAobG9jYWwuZ2V0ICR4MTEpKQotICAgICAgICBkcm9w
Ci0gICAgKQotKQotYAotCi1hc3luYyBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGNvbnN0IGluc3Rh
bmNlID0gYXdhaXQgaW5zdGFudGlhdGUod2F0LCB7fSwgeyBzaW1kOiB0cnVlIH0pCi0gICAgY29u
c3QgeyBmMCwgZjEsIGYyLCBmMyB9ID0gaW5zdGFuY2UuZXhwb3J0cwotCi0gICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKLSAgICAgICAgYXNzZXJ0LmVxKGYwKC0xbiwgLTJuLCAt
M24sIC00biwgLTVuLCAtNm4sIC03biwgLThuKSwgQmlnSW50KC0xICsgLTIgKyAtMyArIC00ICsg
LTUgKyAtNiArIC03ICsgLTgpKQotICAgICAgICBhc3NlcnQuZXEoZjAoLTFuLCAtMm4sIC0zbiwg
LTRuLCAtNW4sIC02biwgLTduLCAtOG4sIC05biwgLTEwbiksIEJpZ0ludCgtMSArIC0yICsgLTMg
KyAtNCArIC01ICsgLTYgKyAtNyArIC04KSkKLSAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBm
MCgtMW4sIC0ybiwgLTNuLCAtNG4sIC01biksIFR5cGVFcnJvciwgIiIpCi0gICAgICAgIGFzc2Vy
dC50aHJvd3MoKCkgPT4gZjEoLTFuLCAtMm4sIC0zbiwgLTRuLCAtNW4sIC02biwgLTduLCAtOG4p
LCBUeXBlRXJyb3IsICIiKQotICAgICAgICBhc3NlcnQuZXEoZjEoLTFuLCAtMm4sIC0zbiwgLTRu
LCAtNW4sIC02biwgLTduLCAtOG4sIC05biwgLTEwbiwgLTExbiwgLTEybiksIEJpZ0ludCgtMSAr
IC0yICsgLTMgKyAtNCArIC01ICsgLTYgKyAtNyArIC04ICsgLTkgKyAtMTAgKyAtMTEgKyAtMTIp
KQotICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGYxKC0xbiwgLTJuLCAtM24sIC00biwgLTVu
KSwgVHlwZUVycm9yLCAiIikKLSAgICAgICAgYXNzZXJ0LmVxKGYxKC0xbiwgLTJuLCAtM24sIC00
biwgLTVuLCAtNm4sIC03biwgLThuLCAtOW4sIC0xMG4sIC0xMW4sIC0xMm4sIC0xM24sIC0xNG4s
IC0xNW4pLCBCaWdJbnQoLTEgKyAtMiArIC0zICsgLTQgKyAtNSArIC02ICsgLTcgKyAtOCArIC05
ICsgLTEwICsgLTExICsgLTEyKSkKLSAgICAgICAgYXNzZXJ0LmVxKGYyKC0xbiwgLTJuLCAtM24s
IC00biwgLTVuLCAtNm4sIC03biwgLThuLCAtOW4sIC0xMG4sIC0xMW4sIC0xMm4sIC0xM24sIC0x
NG4sIC0xNW4pLCBCaWdJbnQoLTEgKyAtMTIpKQotICAgICAgICBhc3NlcnQuZXEoZjMoLTFuLCAt
Mm4sIC0zbiwgLTRuLCAtNW4sIC02biwgLTduLCAtOG4sIC05biwgLTEwbiwgLTExbiwgLTEybiwg
LTEzbiwgLTE0biwgLTE1biksIHVuZGVmaW5lZCkKLSAgICB9Ci19Ci0KLWF3YWl0IGFzc2VydC5h
c3luY1Rlc3QodGVzdCgpKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pNjQt
a2l0Y2hlbi1zaW5rLmpzIGIvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pNjQta2l0Y2hlbi1zaW5r
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNWEyZjZhZjBjYWQuLjAwMDAwMDAw
MDAwMAotLS0gYS9KU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWk2NC1raXRjaGVuLXNpbmsuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0vL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlSW50
ZXJwcmV0ZWRKU0VudHJ5V3JhcHBlcnM9MSIpCi1pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20g
Ii4uL3dhYnQtd3JhcHBlci5qcyIKLWltcG9ydCAqIGFzIGFzc2VydCBmcm9tICIuLi9hc3NlcnQu
anMiCi0KLWxldCB3YXQgPSBgCi0obW9kdWxlCi0gICAgKGZ1bmMgJGYwIChleHBvcnQgImYwIikK
LSAgICAgICAgKHBhcmFtICR4MCBpNjQpIChwYXJhbSAkeDEgaTY0KSAocGFyYW0gJHgyIGk2NCkg
KHBhcmFtICR4MyBpNjQpCi0gICAgICAgIChwYXJhbSAkeDQgaTY0KSAocGFyYW0gJHg1IGk2NCkg
KHBhcmFtICR4NiBpNjQpIChwYXJhbSAkeDcgaTY0KQotICAgICAgICAocmVzdWx0IGk2NCkKLSAg
ICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDApCi0gICAgICAgICAgICAoaTY0LmFkZCAobG9j
YWwuZ2V0ICR4MSkKLSAgICAgICAgICAgICAgICAoaTY0LmFkZCAobG9jYWwuZ2V0ICR4MikKLSAg
ICAgICAgICAgICAgICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDMpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAoaTY0LmFkZCAobG9jYWwuZ2V0ICR4NCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoaTY0LmFkZCAobG9jYWwuZ2V0ICR4NSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDYpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobG9jYWwuZ2V0ICR4NykpKSkpKSkpCi0gICAgKQotCi0gICAgKGZ1bmMg
JGYxIChleHBvcnQgImYxIikKLSAgICAgICAgKHBhcmFtICR4MCBpNjQpIChwYXJhbSAkeDEgaTY0
KSAocGFyYW0gJHgyIGk2NCkgKHBhcmFtICR4MyBpNjQpCi0gICAgICAgIChwYXJhbSAkeDQgaTY0
KSAocGFyYW0gJHg1IGk2NCkgKHBhcmFtICR4NiBpNjQpIChwYXJhbSAkeDcgaTY0KQotICAgICAg
ICAocGFyYW0gJHg4IGk2NCkgKHBhcmFtICR4OSBpNjQpIChwYXJhbSAkeDEwIGk2NCkgKHBhcmFt
ICR4MTEgaTY0KQotICAgICAgICAocmVzdWx0IGk2NCkKLSAgICAgICAgKGk2NC5hZGQgKGxvY2Fs
LmdldCAkeDApCi0gICAgICAgICAgICAoaTY0LmFkZCAobG9jYWwuZ2V0ICR4MSkKLSAgICAgICAg
ICAgICAgICAoaTY0LmFkZCAobG9jYWwuZ2V0ICR4MikKLSAgICAgICAgICAgICAgICAgICAgKGk2
NC5hZGQgKGxvY2FsLmdldCAkeDMpCi0gICAgICAgICAgICAgICAgICAgICAgICAoaTY0LmFkZCAo
bG9jYWwuZ2V0ICR4NCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaTY0LmFkZCAobG9j
YWwuZ2V0ICR4NSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGk2NC5hZGQgKGxv
Y2FsLmdldCAkeDYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaTY0LmFk
ZCAobG9jYWwuZ2V0ICR4NykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoaTY0LmFkZCAobG9jYWwuZ2V0ICR4OCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGk2NC5hZGQgKGxvY2FsLmdldCAkeDkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaTY0LmFkZCAobG9jYWwuZ2V0ICR4MTAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYWwu
Z2V0ICR4MTEpKSkpKSkpKSkpKSkKLSAgICApCi0KLSAgICAoZnVuYyAkZjIgKGV4cG9ydCAiZjIi
KQotICAgICAgICAocGFyYW0gJHgwIGk2NCkgKHBhcmFtICR4MSBpNjQpIChwYXJhbSAkeDIgaTY0
KSAocGFyYW0gJHgzIGk2NCkKLSAgICAgICAgKHBhcmFtICR4NCBpNjQpIChwYXJhbSAkeDUgaTY0
KSAocGFyYW0gJHg2IGk2NCkgKHBhcmFtICR4NyBpNjQpCi0gICAgICAgIChwYXJhbSAkeDggaTY0
KSAocGFyYW0gJHg5IGk2NCkgKHBhcmFtICR4MTAgaTY0KSAocGFyYW0gJHgxMSBpNjQpCi0gICAg
ICAgIChyZXN1bHQgaTY0KQotICAgICAgICAoaTY0LmFkZCAobG9jYWwuZ2V0ICR4MCkKLSAgICAg
ICAgICAgIChsb2NhbC5nZXQgJHgxMSkpCi0gICAgKQotCi0gICAgKGZ1bmMgJGYzIChleHBvcnQg
ImYzIikKLSAgICAgICAgKHBhcmFtICR4MCBpNjQpIChwYXJhbSAkeDEgaTY0KSAocGFyYW0gJHgy
IGk2NCkgKHBhcmFtICR4MyBpNjQpCi0gICAgICAgIChwYXJhbSAkeDQgaTY0KSAocGFyYW0gJHg1
IGk2NCkgKHBhcmFtICR4NiBpNjQpIChwYXJhbSAkeDcgaTY0KQotICAgICAgICAocGFyYW0gJHg4
IGk2NCkgKHBhcmFtICR4OSBpNjQpIChwYXJhbSAkeDEwIGk2NCkgKHBhcmFtICR4MTEgaTY0KQot
ICAgICAgICAoaTY0LmFkZCAobG9jYWwuZ2V0ICR4MCkKLSAgICAgICAgICAgIChsb2NhbC5nZXQg
JHgxMSkpCi0gICAgICAgIGRyb3AKLSAgICApCi0pCi1gCi0KLWFzeW5jIGZ1bmN0aW9uIHRlc3Qo
KSB7Ci0gICAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBpbnN0YW50aWF0ZSh3YXQsIHt9LCB7IHNp
bWQ6IHRydWUgfSkKLSAgICBjb25zdCB7IGYwLCBmMSwgZjIsIGYzIH0gPSBpbnN0YW5jZS5leHBv
cnRzCi0KLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkgewotICAgICAgICBhc3Nl
cnQuZXEoZjAoMW4sIDJuLCAzbiwgNG4sIDVuLCA2biwgN24sIDhuKSwgQmlnSW50KDEgKyAyICsg
MyArIDQgKyA1ICsgNiArIDcgKyA4KSkKLSAgICAgICAgYXNzZXJ0LmVxKGYwKDFuLCAybiwgM24s
IDRuLCA1biwgNm4sIDduLCA4biwgOW4sIDEwbiksIEJpZ0ludCgxICsgMiArIDMgKyA0ICsgNSAr
IDYgKyA3ICsgOCkpCi0gICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gZjAoMW4sIDJuLCAzbiwg
NG4sIDVuKSwgVHlwZUVycm9yLCAiIikKLSAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBmMSgx
biwgMm4sIDNuLCA0biwgNW4sIDZuLCA3biwgOG4pLCBUeXBlRXJyb3IsICIiKQotICAgICAgICBh
c3NlcnQuZXEoZjEoMW4sIDJuLCAzbiwgNG4sIDVuLCA2biwgN24sIDhuLCA5biwgMTBuLCAxMW4s
IDEybiksIEJpZ0ludCgxICsgMiArIDMgKyA0ICsgNSArIDYgKyA3ICsgOCArIDkgKyAxMCArIDEx
ICsgMTIpKQotICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGYxKDFuLCAybiwgM24sIDRuLCA1
biksIFR5cGVFcnJvciwgIiIpCi0gICAgICAgIGFzc2VydC5lcShmMSgxbiwgMm4sIDNuLCA0biwg
NW4sIDZuLCA3biwgOG4sIDluLCAxMG4sIDExbiwgMTJuLCAxM24sIDE0biwgMTVuKSwgQmlnSW50
KDEgKyAyICsgMyArIDQgKyA1ICsgNiArIDcgKyA4ICsgOSArIDEwICsgMTEgKyAxMikpCi0gICAg
ICAgIGFzc2VydC5lcShmMigxbiwgMm4sIDNuLCA0biwgNW4sIDZuLCA3biwgOG4sIDluLCAxMG4s
IDExbiwgMTJuLCAxM24sIDE0biwgMTVuKSwgQmlnSW50KDEgKyAxMikpCi0gICAgICAgIGFzc2Vy
dC5lcShmMygxbiwgMm4sIDNuLCA0biwgNW4sIDZuLCA3biwgOG4sIDluLCAxMG4sIDExbiwgMTJu
LCAxM24sIDE0biwgMTVuKSwgdW5kZWZpbmVkKQotICAgIH0KLX0KLQotYXdhaXQgYXNzZXJ0LmFz
eW5jVGVzdCh0ZXN0KCkpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWludC10
by1pbnQtY3Jvc3MtbW9kdWxlLXdpdGgtZXhjZXB0aW9uLmpzIGIvSlNUZXN0cy93YXNtL3N0cmVz
cy9jYy1pbnQtdG8taW50LWNyb3NzLW1vZHVsZS13aXRoLWV4Y2VwdGlvbi5qcwppbmRleCBjNTAx
Nzg5MGZhNDkuLjU2YjQyNGMzYjIyMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3N0cmVzcy9j
Yy1pbnQtdG8taW50LWNyb3NzLW1vZHVsZS13aXRoLWV4Y2VwdGlvbi5qcworKysgYi9KU1Rlc3Rz
L3dhc20vc3RyZXNzL2NjLWludC10by1pbnQtY3Jvc3MtbW9kdWxlLXdpdGgtZXhjZXB0aW9uLmpz
CkBAIC0xLDYgKzEsMTIgQEAKKy8vQCBza2lwCiAvL0Agc2tpcCB1bmxlc3MgJGlzV2FzbVBsYXRm
b3JtCisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlSklUQ2FnZT0wIikgIyB0ZW1wb3Jhcnkgd29y
a2Fyb3VuZCBmb3IgcmRhcjovLzEyNzMwODM1MAogLy9AIHJ1bkRlZmF1bHRXYXNtKCItbSIsICIt
LXdlYkFzc2VtYmx5RnVuY3Rpb25JbmRleFJhbmdlVG9Db21waWxlPTA6NSIsICItLXVzZU9NR0pJ
VD0wIiwgIi0tdXNlSW50ZXJwcmV0ZWRKU0VudHJ5V3JhcHBlcnM9MSIpCiAKKy8vIFRoaXMgdGVz
dHMgd2lsbCB1c2UgbW9yZSB0aGFuIHRoZSA2MDBNIHRoYXQgJG1lbW9yeUxpbWl0ZWQgZGV2aWNl
cyBhcmUgY2FwcGVkCisvLyBhdCBkdWUgSlNDVEVTVF9tZW1vcnlMaW1pdC4gU2tpcCBpdCB0byBh
dm9pZCB0aGUgY3Jhc2ggYXMgYSByZXN1bHQgb2YgZXhjZWVkaW5nCisvLyB0aGF0IGxpbWl0Lgor
CiBpbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gIi4uL3dhYnQtd3JhcHBlci5qcyIKIGltcG9y
dCAqIGFzIGFzc2VydCBmcm9tICIuLi9hc3NlcnQuanMiCiAKQEAgLTIyOSw3ICsyMzUsNyBAQCBh
c3luYyBmdW5jdGlvbiB0ZXN0KCkgewogCiAgICAgdGJsLnNldCgwLCBmdW5jdGlvbkEpCiAKLSAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDU7ICsraSkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
NTA7ICsraSkgewogICAgICAgICBkb1Rlc3Qoc2V0dXBBLCBzZXR1cEIsIGZ1bmN0aW9uQikKICAg
ICB9CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWludC10by1pbnQtY3Jv
c3MtbW9kdWxlLmpzIGIvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pbnQtdG8taW50LWNyb3NzLW1v
ZHVsZS5qcwppbmRleCBkZjA5ODA5NzNmNjQuLjg4MjRjNjU5MDM0NyAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy93YXNtL3N0cmVzcy9jYy1pbnQtdG8taW50LWNyb3NzLW1vZHVsZS5qcworKysgYi9KU1Rl
c3RzL3dhc20vc3RyZXNzL2NjLWludC10by1pbnQtY3Jvc3MtbW9kdWxlLmpzCkBAIC0xLDMgKzEs
NSBAQAorLy9AIHNraXAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VKSVRDYWdlPTAiKSAjIHRl
bXBvcmFyeSB3b3JrYXJvdW5kIGZvciByZGFyOi8vMTI3MzA4MzUwCiAvL0AgcmVxdWlyZU9wdGlv
bnMoIi0tdXNlSW50ZXJwcmV0ZWRKU0VudHJ5V3JhcHBlcnM9MSIpCiBpbXBvcnQgeyBpbnN0YW50
aWF0ZSB9IGZyb20gIi4uL3dhYnQtd3JhcHBlci5qcyIKIGltcG9ydCAqIGFzIGFzc2VydCBmcm9t
ICIuLi9hc3NlcnQuanMiCkBAIC0zNyw3ICszOSw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgY29uc3QgaW5zdGFuY2UyID0gYXdhaXQgaW5zdGFudGlhdGUod2F0MiwgeyBvOiB7IHRl
c3QsIHRibCB9IH0sIHsgc2ltZDogdHJ1ZSB9KQogICAgIGNvbnN0IHsgdGVzdF93aXRoX2NhbGws
IHRlc3Rfd2l0aF9jYWxsX2luZGlyZWN0IH0gPSBpbnN0YW5jZTIuZXhwb3J0cwogCi0gICAgZm9y
IChsZXQgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEw
MDAwMDAwOyArK2kpIHsKICAgICAgICAgYXNzZXJ0LmVxKHRlc3QoNSksIDQyICsgNSkKICAgICAg
ICAgYXNzZXJ0LmVxKHRlc3QoKSwgNDIgKyAwKQogICAgICAgICBhc3NlcnQuZXEodGVzdChudWxs
KSwgNDIgKyAwKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pbnQtdG8taW50
LWppdC10by1sbGludC5qcyBiL0pTVGVzdHMvd2FzbS9zdHJlc3MvY2MtaW50LXRvLWludC1qaXQt
dG8tbGxpbnQuanMKaW5kZXggNWQzNDRjYjAwNzI4Li5lNWYzN2JmYzY3YTMgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvd2FzbS9zdHJlc3MvY2MtaW50LXRvLWludC1qaXQtdG8tbGxpbnQuanMKKysrIGIv
SlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pbnQtdG8taW50LWppdC10by1sbGludC5qcwpAQCAtMSwz
ICsxLDQgQEAKKy8vQCBza2lwCiAvL0AgcnVuRGVmYXVsdFdhc20oIi1tIiwgIi0td2ViQXNzZW1i
bHlGdW5jdGlvbkluZGV4UmFuZ2VUb0NvbXBpbGU9MToyIikKIGltcG9ydCB7IGluc3RhbnRpYXRl
IH0gZnJvbSAiLi4vd2FidC13cmFwcGVyLmpzIgogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gIi4u
L2Fzc2VydC5qcyIKQEAgLTU1LDcgKzU2LDcgQEAgbm9JbmxpbmUoaXRlcikKIGFzeW5jIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBpbnN0YW50aWF0ZSh3YXQs
IHt9LCB7IHJlZmVyZW5jZV90eXBlczogdHJ1ZSwgZnVuY3Rpb25fcmVmZXJlbmNlczogdHJ1ZSwg
Z2M6IHRydWUgfSkKIAotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDAwMDsgKytpKSB7CiAgICAgICAgIGl0ZXIoaW5zdGFu
Y2UpCiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pbnQtdG8t
aW50LW1lbW9yeS5qcyBiL0pTVGVzdHMvd2FzbS9zdHJlc3MvY2MtaW50LXRvLWludC1tZW1vcnku
anMKaW5kZXggY2MxZDA4YmNhNWFkLi5hNmRmNzk1ZWYzZjUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
d2FzbS9zdHJlc3MvY2MtaW50LXRvLWludC1tZW1vcnkuanMKKysrIGIvSlNUZXN0cy93YXNtL3N0
cmVzcy9jYy1pbnQtdG8taW50LW1lbW9yeS5qcwpAQCAtMSwzICsxLDUgQEAKKy8vQCBza2lwCisv
L0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlSklUQ2FnZT0wIikgIyB0ZW1wb3Jhcnkgd29ya2Fyb3Vu
ZCBmb3IgcmRhcjovLzEyNzMwODM1MAogLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZUludGVycHJl
dGVkSlNFbnRyeVdyYXBwZXJzPTEiKQogLy8gIERlYnVnZ2luZzoganNjIC1tIGNjLWludC10by1p
bnQuanMgLS11c2VDb25jdXJyZW50SklUPTAgLS11c2VCQlFKSVQ9MCAtLXVzZU9NR0pJVD0wIC0t
aml0QWxsb3dMaXN0PW5vdGhpbmcgLS11c2VERkdKSVQ9MCAtLWR1bXBEaXNhc3NlbWJseT0wIC0t
Zm9yY2VJQ0ZhaWx1cmU9MSAtLXVzZUludGVycHJldGVkSlNFbnRyeVdyYXBwZXJzPTEgLS1kdW1w
RGlzYXNzZW1ibHk9MAogaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tICIuLi93YWJ0LXdyYXBw
ZXIuanMiCkBAIC0xOSw3ICsyMSw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgY29u
c3QgaW5zdGFuY2UgPSBhd2FpdCBpbnN0YW50aWF0ZSh3YXQsIHt9LCB7IHNpbWQ6IHRydWUgfSkK
ICAgICBjb25zdCB7IHRlc3QgfSA9IGluc3RhbmNlLmV4cG9ydHMKIAotICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDAwMDsg
KytpKSB7CiAgICAgICAgIGFzc2VydC5lcSh0ZXN0KDUpLCA0MiArIDUpCiAgICAgICAgIGFzc2Vy
dC5lcSh0ZXN0KCksIDQyICsgMCkKICAgICAgICAgYXNzZXJ0LmVxKHRlc3QobnVsbCksIDQyICsg
MCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9zdHJlc3MvY2MtaW50LXRvLWludC1uby1qaXQu
anMgYi9KU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWludC10by1pbnQtbm8taml0LmpzCmluZGV4IGU2
ZGE1NTU3Y2MzMy4uY2NiNTE3NmMyMzg1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vc3RyZXNz
L2NjLWludC10by1pbnQtbm8taml0LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9zdHJlc3MvY2MtaW50
LXRvLWludC1uby1qaXQuanMKQEAgLTEsMyArMSw0IEBACisvL0Agc2tpcAogLy9AIHJ1bkRlZmF1
bHRXYXNtKCItbSIsICItLXVzZUpJVD0wIiwgIi0tdXNlV2ViQXNzZW1ibHk9MSIsICItLXVzZUlu
dGVycHJldGVkSlNFbnRyeVdyYXBwZXJzPTEiKQogaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9t
ICIuLi93YWJ0LXdyYXBwZXIuanMiCiBpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAiLi4vYXNzZXJ0
LmpzIgpAQCAtMjksNyArMzAsNyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGNvbnN0
IGluc3RhbmNlID0gYXdhaXQgaW5zdGFudGlhdGUod2F0LCB7fSwgeyBzaW1kOiB0cnVlIH0pCiAg
ICAgY29uc3QgeyB0ZXN0LCB0ZXN0X3dpdGhfY2FsbCwgdGVzdF93aXRoX2NhbGxfaW5kaXJlY3Qg
fSA9IGluc3RhbmNlLmV4cG9ydHMKIAotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytp
KSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDAwMDsgKytpKSB7CiAgICAgICAgIGFz
c2VydC5lcSh0ZXN0KDUpLCA0MiArIDUpCiAgICAgICAgIGFzc2VydC5lcSh0ZXN0KCksIDQyICsg
MCkKICAgICAgICAgYXNzZXJ0LmVxKHRlc3QobnVsbCksIDQyICsgMCkKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvd2FzbS9zdHJlc3MvY2MtaW50LXRvLWludC10YWlsLWNhbGwuanMgYi9KU1Rlc3RzL3dh
c20vc3RyZXNzL2NjLWludC10by1pbnQtdGFpbC1jYWxsLmpzCmluZGV4IDFiOWMwNzU1NmE4Ny4u
YzhmZTYzZTBhZTQ0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vc3RyZXNzL2NjLWludC10by1p
bnQtdGFpbC1jYWxsLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9zdHJlc3MvY2MtaW50LXRvLWludC10
YWlsLWNhbGwuanMKQEAgLTEsNCArMSw0IEBACi0vL0Bza2lwCisvL0Agc2tpcAogLy9AIHJlcXVp
cmVPcHRpb25zKCItLXVzZUludGVycHJldGVkSlNFbnRyeVdyYXBwZXJzPTEiLCAiLS11c2VXZWJB
c3NlbWJseVRhaWxDYWxscz0xIikKIGltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSAiLi4vd2Fi
dC13cmFwcGVyLmpzIgogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gIi4uL2Fzc2VydC5qcyIKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9zdHJlc3MvY2MtaW50LXRvLWludC5qcyBiL0pTVGVzdHMv
d2FzbS9zdHJlc3MvY2MtaW50LXRvLWludC5qcwppbmRleCA4Njk1YmYxNjE4OTUuLjNmODM1ODli
M2ZkYiAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3N0cmVzcy9jYy1pbnQtdG8taW50LmpzCisr
KyBiL0pTVGVzdHMvd2FzbS9zdHJlc3MvY2MtaW50LXRvLWludC5qcwpAQCAtMSwzICsxLDUgQEAK
Ky8vQCBza2lwCisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlSklUQ2FnZT0wIikgIyB0ZW1wb3Jh
cnkgd29ya2Fyb3VuZCBmb3IgcmRhcjovLzEyNzMwODM1MAogLy9AIHJlcXVpcmVPcHRpb25zKCIt
LXVzZUludGVycHJldGVkSlNFbnRyeVdyYXBwZXJzPTEiKQogLy8gIERlYnVnZ2luZzoganNjIC1t
IGNjLWludC10by1pbnQuanMgLS11c2VDb25jdXJyZW50SklUPTAgLS11c2VCQlFKSVQ9MCAtLXVz
ZU9NR0pJVD0wIC0taml0QWxsb3dMaXN0PW5vdGhpbmcgLS11c2VERkdKSVQ9MCAtLWR1bXBEaXNh
c3NlbWJseT0wIC0tZm9yY2VJQ0ZhaWx1cmU9MSAtLXVzZUludGVycHJldGVkSlNFbnRyeVdyYXBw
ZXJzPTEgLS1kdW1wRGlzYXNzZW1ibHk9MAogaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tICIu
Li93YWJ0LXdyYXBwZXIuanMiCkBAIC0zMCw3ICszMiw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBpbnN0YW50aWF0ZSh3YXQsIHt9LCB7IHNp
bWQ6IHRydWUgfSkKICAgICBjb25zdCB7IHRlc3QsIHRlc3Rfd2l0aF9jYWxsLCB0ZXN0X3dpdGhf
Y2FsbF9pbmRpcmVjdCB9ID0gaW5zdGFuY2UuZXhwb3J0cwogCi0gICAgZm9yIChsZXQgaSA9IDA7
IGkgPCAxMDAwOyArK2kpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwMDAwOyArK2kp
IHsKICAgICAgICAgYXNzZXJ0LmVxKHRlc3QoNSksIDQyICsgNSkKICAgICAgICAgYXNzZXJ0LmVx
KHRlc3QoKSwgNDIgKyAwKQogICAgICAgICBhc3NlcnQuZXEodGVzdChudWxsKSwgNDIgKyAwKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>