<?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>201036</bug_id>
          
          <creation_ts>2019-08-22 08:02:41 -0700</creation_ts>
          <short_desc>Remove MaximalFlushInsertionPhase</short_desc>
          <delta_ts>2019-08-26 13:42:52 -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>JavaScriptCore</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1564044</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-08-22 08:02:41 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564319</commentid>
    <comment_count>1</comment_count>
      <attachid>377078</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-08-22 17:02:55 -0700</bug_when>
    <thetext>Created attachment 377078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564396</commentid>
    <comment_count>2</comment_count>
      <attachid>377078</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-23 00:59:58 -0700</bug_when>
    <thetext>Comment on attachment 377078
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=377078&amp;action=review

r=me

Please also add the new test from Radar

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        to remove it instead of hacking it to fix the most recent false positive.

It would be good to describe the latest issue to motivate why it’s not worth keeping

&gt; JSTests/stress/set-argument-maybe-maximal-flush-should-not-extend-liveness-2.js:-1
&gt; -//@ runDefault(&quot;--useMaximalFlushInsertionPhase=1&quot;, &quot;--jitPolicyScale=0&quot;, &quot;--useConcurrentJIT=0&quot;)

Let’s keep these tests and just remove the option</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564637</commentid>
    <comment_count>3</comment_count>
      <attachid>377163</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-08-23 15:25:20 -0700</bug_when>
    <thetext>Created attachment 377163
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564667</commentid>
    <comment_count>4</comment_count>
      <attachid>377163</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-23 16:08:13 -0700</bug_when>
    <thetext>Comment on attachment 377163
Patch for landing

Clearing flags on attachment: 377163

Committed r249075: &lt;https://trac.webkit.org/changeset/249075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564668</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-23 16:08:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564669</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-23 16:09:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/54658790&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565074</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-08-26 13:42:52 -0700</bug_when>
    <thetext>Committed r249116: &lt;https://trac.webkit.org/changeset/249116&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377078</attachid>
            <date>2019-08-22 17:02:55 -0700</date>
            <delta_ts>2019-08-23 15:25:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201036-20190822170255.patch</filename>
            <type>text/plain</type>
            <size>33689</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4OTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
N2QyNjZhNDFkOTg0NDcyNTBhYWVjMTEwZjZiM2I4YzYxN2U2Yzg3Li40MDYzMzI2YzJmOTRlYjY0
OTI2YTdhZDY2OTVhNmU4MmE4MWMxNmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxOS0wOC0yMiAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW1vdmUgTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTAzNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1heGltYWwgZmx1c2ggaGFz
IGZvdW5kIHRvbyBtYW55IGZhbHNlIHBvc2l0aXZlcyByZWNlbnRseSwgc28gd2UgZGVjaWRlZCBp
dCdzIGZpbmFsbHkgdGltZQorICAgICAgICB0byByZW1vdmUgaXQgaW5zdGVhZCBvZiBoYWNraW5n
IGl0IHRvIGZpeCB0aGUgbW9zdCByZWNlbnQgZmFsc2UgcG9zaXRpdmUuCisKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVZhcmFyZ3NJbmxpbmluZyk6CisgICAgICAg
ICogZGZnL0RGR01heGltYWxGbHVzaEluc2VydGlvblBoYXNlLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBkZmcvREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6Y29tcGlsZUlu
VGhyZWFkSW1wbCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpT
Qzo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9PcHRpb25z
Lmg6CisKIDIwMTktMDgtMjEgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gaW5jb3JyZW50IEpJVCBsZWFkIHRvIFN0YWNrT3ZlcmZsb3cKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGFlYTQ2NmYxNTNlNGQxMmZhNjQ1NmQ1ZjI5ZDU1
Yzk0MTUyOTZlZC4uOGNhZGM1OGNlNjMzZjcwZDdkMmViNmNmMDQyNTQ0N2QyZmVkMmE3MiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMTUsNyArMTIxNSw2IEBACiAJCTc5REZD
QkRCMUQ4OEM1OTYwMDUyN0QwMyAvKiBIYXNPd25Qcm9wZXJ0eUNhY2hlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OURGQ0JEQTFEODhDNTk2MDA1MjdE
MDMgLyogSGFzT3duUHJvcGVydHlDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTc5RUUwQzAwMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJs
ZUVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5RUZENDg0
MUVCQzA0NUMwMEYzREZFQSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVGRDQ4MjFF
QkMwNDVDMDBGM0RGRUEgLyogSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTc5RjhGQzFG
MUI5RkVEMEYwMENBNjZBQiAvKiBERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlGOEZDMUQxQjlGRUQw
RjAwQ0E2NkFCIC8qIERGR01heGltYWxGbHVzaEluc2VydGlvblBoYXNlLmggKi87IH07CiAJCTc5
RkM4QTA4MUUzMkU5RjAwMEQ4OEYwRSAvKiBERkdSZWdpc3RlcmVkU3RydWN0dXJlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUZDOEEwNzFFMzJFOUYw
MDBEODhGMEUgLyogREZHUmVnaXN0ZXJlZFN0cnVjdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdBOTc3NEE4MjA2QjgyRTQwMDhEMDNEMCAv
KiBKU1dlYWtWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0E5Nzc0QTcyMDZCODJDOTAwOEQwM0QwIC8qIEpTV2Vha1ZhbHVlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JDNTQ3RDMxQjY5NTlB
MTAwOTU5QjU4IC8qIFdhc21Gb3JtYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdCQzU0N0QyMUI2OTU5OUIwMDk1OUI1OCAvKiBXYXNtRm9ybWF0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM5OTAs
OCArMzk4OSw2IEBACiAJCTc5RUUwQkZFMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmly
b25tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhcmlhYmxlRW52aXJv
bm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlFRkQ0ODExRUJDMDQ1QzAw
RjNERkVBIC8qIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBD
ZWxsVHlwZS5jcHA7IHBhdGggPSBqcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlFRkQ0ODIxRUJDMDQ1QzAwRjNE
RkVBIC8qIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5o
OyBwYXRoID0ganMvSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk3OUY4RkMxQzFCOUZFRDBGMDBDQTY2QUIgLyogREZHTWF4
aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RG
R01heGltYWxGbHVzaEluc2VydGlvblBoYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNzlGOEZDMUQxQjlGRUQwRjAwQ0E2NkFCIC8qIERGR01heGltYWxGbHVzaEluc2VydGlv
blBoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR01heGltYWxGbHVz
aEluc2VydGlvblBoYXNlLmg7IHBhdGggPSBkZmcvREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhh
c2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlGQzhBMDcxRTMyRTlGMDAwRDg4
RjBFIC8qIERGR1JlZ2lzdGVyZWRTdHJ1Y3R1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gREZHUmVnaXN0ZXJlZFN0cnVjdHVyZS5oOyBwYXRoID0gZGZnL0RGR1JlZ2lzdGVy
ZWRTdHJ1Y3R1cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E5Nzc0QTYyMDZC
ODI4QzAwOEQwM0QwIC8qIEpTV2Vha1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTV2Vha1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0E5Nzc0QTcyMDZCODJDOTAwOEQwM0QwIC8qIEpTV2Vha1ZhbHVlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2Vha1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC03NzgxLDggKzc3NzgsNiBAQAogCQkJCUE3RDg5Q0VEMTdBMEI4Q0MwMDc3M0FE
OCAvKiBERkdMaXZlbmVzc0FuYWx5c2lzUGhhc2UuaCAqLywKIAkJCQlBNzY3QjVCMzE3QTBCOTY1
MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwICovLAogCQkJCUE3
NjdCNUI0MTdBMEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5o
ICovLAotCQkJCTc5RjhGQzFDMUI5RkVEMEYwMENBNjZBQiAvKiBERkdNYXhpbWFsRmx1c2hJbnNl
cnRpb25QaGFzZS5jcHAgKi8sCi0JCQkJNzlGOEZDMUQxQjlGRUQwRjAwQ0E2NkFCIC8qIERGR01h
eGltYWxGbHVzaEluc2VydGlvblBoYXNlLmggKi8sCiAJCQkJMEY1ODc0RUIxOTRGRUIxMjAwQUFC
MkMxIC8qIERGR01heUV4aXQuY3BwICovLAogCQkJCTBGNTg3NEVDMTk0RkVCMTIwMEFBQjJDMSAv
KiBERkdNYXlFeGl0LmggKi8sCiAJCQkJMEYxNzI1RkUxQjQ4NzE5QTAwQUMzQTU1IC8qIERGR01p
bmlmaWVkR3JhcGguY3BwICovLApAQCAtOTE2Nyw3ICs5MTYyLDYgQEAKIAkJCQk3OUM0QjE1RTFC
QTIxNThGMDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRkMxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0xpdmVu
ZXNzQW5hbHlzaXNQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc2N0I1QjYxN0EwQjk2NTAw
NjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywK
LQkJCQk3OUY4RkMxRjFCOUZFRDBGMDBDQTY2QUIgLyogREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9u
UGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTg3NEVFMTk0RkVCMTIwMEFBQjJDMSAvKiBE
RkdNYXlFeGl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCREM0NTE1MjI4MDFCMDBDRDg5MTAg
LyogREZHTWluaWZpZWRHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyRTg5MkQxNkQwMkJB
RjAwOUU0RkQyIC8qIERGR01pbmlmaWVkSUQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IDBjMzZkZTAzY2RmYzNlYjM0YzBjMTE4ODU0ODY5MWIwYTE4YzBh
YTkuLjI2MjE5M2IyMzg1MTJmOGU5NWRlZDE0YWIyODkwYzUxZGJjNWU5YzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU291cmNlcy50eHQKQEAgLTM2NCw3ICszNjQsNiBAQCBkZmcvREZHTGF6eUpTVmFsdWUu
Y3BwCiBkZmcvREZHTGF6eU5vZGUuY3BwCiBkZmcvREZHTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmNw
cAogZGZnL0RGR0xvb3BQcmVIZWFkZXJDcmVhdGlvblBoYXNlLmNwcAotZGZnL0RGR01heGltYWxG
bHVzaEluc2VydGlvblBoYXNlLmNwcAogZGZnL0RGR01heUV4aXQuY3BwCiBkZmcvREZHTWluaWZp
ZWRHcmFwaC5jcHAKIGRmZy9ERkdNaW5pZmllZE5vZGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDEzNzQ5MTliZTllMjEzNDU2
ZjkyN2Y3YzM2MDJkNTdiYzI2Y2ZkMGYuLjMyZWVmNmE5ZGZjZjk5MDIzYTVhMzgyMjBmOWMxYmUx
Y2UwYWQzZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCkBAIC0xODYyLDggKzE4NjIsNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVWYXJhcmdzSW5saW5pbmcoTm9kZSogY2FsbFRhcmdldE5vZGUsIFZpcnR1YWxSZWdpc3Rlcgog
ICAgIHJlZ2lzdGVyT2Zmc2V0IC09IENhbGxGcmFtZTo6aGVhZGVyU2l6ZUluUmVnaXN0ZXJzOwog
ICAgIHJlZ2lzdGVyT2Zmc2V0ID0gLVdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdu
bWVudFJlZ2lzdGVycygpLCAtcmVnaXN0ZXJPZmZzZXQpOwogCi0gICAgVmVjdG9yPFZpcnR1YWxS
ZWdpc3Rlcj4gc2V0QXJndW1lbnRNYXliZXM7Ci0gICAgCiAgICAgYXV0byBpbnNlcnRDaGVja3Mg
PSBbJl0gKENvZGVCbG9jayogY29kZUJsb2NrKSB7CiAgICAgICAgIGVtaXRGdW5jdGlvbkNoZWNr
cyhjYWxsVmFyaWFudCwgY2FsbFRhcmdldE5vZGUsIHRoaXNBcmd1bWVudCk7CiAgICAgICAgIApA
QCAtMTkyOCw4ICsxOTI2LDYgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlVmFyYXJnc0lu
bGluaW5nKE5vZGUqIGNhbGxUYXJnZXROb2RlLCBWaXJ0dWFsUmVnaXN0ZXIKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgTm9kZSogc2V0QXJndW1lbnQgPSBhZGRUb0dy
YXBoKG51bVNldEFyZ3VtZW50cyA+PSBtYW5kYXRvcnlNaW5pbXVtID8gU2V0QXJndW1lbnRNYXli
ZSA6IFNldEFyZ3VtZW50RGVmaW5pdGVseSwgT3BJbmZvKHZhcmlhYmxlKSk7Ci0gICAgICAgICAg
ICBpZiAobnVtU2V0QXJndW1lbnRzID49IG1hbmRhdG9yeU1pbmltdW0gJiYgT3B0aW9uczo6dXNl
TWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UoKSkKLSAgICAgICAgICAgICAgICBzZXRBcmd1bWVu
dE1heWJlcy5hcHBlbmQodmFyaWFibGUtPmxvY2FsKCkpOwogICAgICAgICAgICAgbV9jdXJyZW50
QmxvY2stPnZhcmlhYmxlc0F0VGFpbC5zZXRPcGVyYW5kKHZhcmlhYmxlLT5sb2NhbCgpLCBzZXRB
cmd1bWVudCk7CiAgICAgICAgICAgICArK251bVNldEFyZ3VtZW50czsKICAgICAgICAgfQpAQCAt
MTk0NCw4ICsxOTQwLDYgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlVmFyYXJnc0lubGlu
aW5nKE5vZGUqIGNhbGxUYXJnZXROb2RlLCBWaXJ0dWFsUmVnaXN0ZXIKICAgICAvLyBjYWxsaW5n
IExvYWRWYXJhcmdzIHR3aWNlLgogICAgIGlubGluZUNhbGwoY2FsbFRhcmdldE5vZGUsIHJlc3Vs
dCwgY2FsbFZhcmlhbnQsIHJlZ2lzdGVyT2Zmc2V0LCBtYXhOdW1Bcmd1bWVudHMsIGtpbmQsIG51
bGxwdHIsIGluc2VydENoZWNrcyk7CiAKLSAgICBmb3IgKFZpcnR1YWxSZWdpc3RlciByZWcgOiBz
ZXRBcmd1bWVudE1heWJlcykKLSAgICAgICAgc2V0RGlyZWN0KHJlZywganNDb25zdGFudChqc1Vu
ZGVmaW5lZCgpKSwgSW1tZWRpYXRlTmFrZWRTZXQpOwogCiAgICAgVkVSQk9TRV9MT0coIlN1Y2Nl
c3NmdWwgaW5saW5pbmcgKHZhcmFyZ3MsIG1vbm9tb3JwaGljKS5cblN0YWNrOiAiLCBjdXJyZW50
Q29kZU9yaWdpbigpLCAiXG4iKTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZS5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwNGU4ZmY4YTY2ZDQyZDhkMzEzZGRi
MTNhZTIzYzU0ZTgyMzkyZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXhpbWFsRmx1c2hJbnNlcnRp
b25QaGFzZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNjUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuaCIKLQotI2lmIEVOQUJMRShE
RkdfSklUKQotCi0jaW5jbHVkZSAiREZHQmFzaWNCbG9ja0lubGluZXMuaCIKLSNpbmNsdWRlICJE
RkdHcmFwaC5oIgotI2luY2x1ZGUgIkRGR0luc2VydGlvblNldC5oIgotI2luY2x1ZGUgIkRGR1Bo
YXNlLmgiCi0jaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7Ci0KLWNsYXNzIE1heGltYWxGbHVzaEluc2VydGlvblBoYXNlIDogcHVibGljIFBo
YXNlIHsKLXB1YmxpYzoKLSAgICBNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZShHcmFwaCYgZ3Jh
cGgpCi0gICAgICAgIDogUGhhc2UoZ3JhcGgsICJtYXhpbWFsIGZsdXNoIGluc2VydGlvbiBwaGFz
ZSIpCi0gICAgewotICAgIH0KLSAgICAKLSAgICBib29sIHJ1bigpCi0gICAgewotICAgICAgICBE
RkdfQVNTRVJUKG1fZ3JhcGgsIG51bGxwdHIsIG1fZ3JhcGgubV9mb3JtID09IExvYWRTdG9yZSk7
Ci0KLSAgICAgICAgSW5zZXJ0aW9uU2V0IGluc2VydGlvblNldChtX2dyYXBoKTsKLSAgICAgICAg
Zm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fZ3JhcGguYmxvY2tzSW5OYXR1cmFsT3JkZXIoKSkg
ewotICAgICAgICAgICAgdHJlYXRSZWd1bGFyQmxvY2soYmxvY2ssIGluc2VydGlvblNldCk7Ci0g
ICAgICAgICAgICBpbnNlcnRpb25TZXQuZXhlY3V0ZShibG9jayk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBmb3IgKEJhc2ljQmxvY2sqIGVudHJ5cG9pbnQgOiBtX2dyYXBoLm1fcm9vdHMpIHsKLSAg
ICAgICAgICAgIHRyZWF0Um9vdEJsb2NrKGVudHJ5cG9pbnQsIGluc2VydGlvblNldCk7Ci0gICAg
ICAgICAgICBpbnNlcnRpb25TZXQuZXhlY3V0ZShlbnRyeXBvaW50KTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHZvaWQgdHJlYXRSZWd1bGFyQmxvY2so
QmFzaWNCbG9jayogYmxvY2ssIEluc2VydGlvblNldCYgaW5zZXJ0aW9uU2V0KQotICAgIHsKLSAg
ICAgICAgT3BlcmFuZHM8VmFyaWFibGVBY2Nlc3NEYXRhKj4gY3VycmVudEJsb2NrQWNjZXNzRGF0
YShibG9jay0+dmFyaWFibGVzQXRUYWlsLm51bWJlck9mQXJndW1lbnRzKCksIGJsb2NrLT52YXJp
YWJsZXNBdFRhaWwubnVtYmVyT2ZMb2NhbHMoKSwgbnVsbHB0cik7Ci0gICAgICAgIC8vIEluc2Vy
dCBhIEZsdXNoIGJlZm9yZSBldmVyeSBTZXRMb2NhbCB0byBwcm9wZXJseSBwYXR0ZXJuIHRoZSBn
cmFwaCBzdWNoIHRoYXQgCi0gICAgICAgIC8vIGFueSByYW5nZSBiZXR3ZWVuIFNldExvY2FsIGFu
ZCBGbHVzaCBoYXMgYWNjZXNzIHRvIHRoZSBsb2NhbCBvbiB0aGUgc3RhY2suCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpOyBpKysp
IHsKLSAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KGkpOwotICAgICAgICAg
ICAgICAgIGJvb2wgaXNQcmltb3JkaWFsU2V0QXJndW1lbnQgPSBmYWxzZTsKLSAgICAgICAgICAg
ICAgICBpZiAobm9kZS0+b3AoKSA9PSBTZXRBcmd1bWVudERlZmluaXRlbHkgJiYgbm9kZS0+bG9j
YWwoKS5pc0FyZ3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBpdGVyID0gbV9n
cmFwaC5tX3Jvb3RUb0FyZ3VtZW50cy5maW5kKGJsb2NrKTsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKGl0ZXIgIT0gbV9ncmFwaC5tX3Jvb3RUb0FyZ3VtZW50cy5lbmQoKSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlzUHJpbW9yZGlhbFNldEFyZ3VtZW50ID0gbm9kZSA9PSBpdGVyLT52YWx1
ZVtub2RlLT5sb2NhbCgpLnRvQXJndW1lbnQoKV07Ci0gICAgICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gU2V0TG9jYWwgfHwgKG5vZGUtPm9wKCkgPT0g
U2V0QXJndW1lbnREZWZpbml0ZWx5ICYmICFpc1ByaW1vcmRpYWxTZXRBcmd1bWVudCkgfHwgbm9k
ZS0+b3AoKSA9PSBTZXRBcmd1bWVudE1heWJlKSB7Ci0gICAgICAgICAgICAgICAgICAgIFZpcnR1
YWxSZWdpc3RlciBvcGVyYW5kID0gbm9kZS0+bG9jYWwoKTsKLSAgICAgICAgICAgICAgICAgICAg
VmFyaWFibGVBY2Nlc3NEYXRhKiBmbHVzaEFjY2Vzc0RhdGEgPSBjdXJyZW50QmxvY2tBY2Nlc3NE
YXRhLm9wZXJhbmQob3BlcmFuZCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghZmx1c2hBY2Nl
c3NEYXRhKQotICAgICAgICAgICAgICAgICAgICAgICAgZmx1c2hBY2Nlc3NEYXRhID0gbmV3VmFy
aWFibGVBY2Nlc3NEYXRhKG9wZXJhbmQpOwotCi0gICAgICAgICAgICAgICAgICAgIGluc2VydGlv
blNldC5pbnNlcnROb2RlKGksIFNwZWNOb25lLCAKLSAgICAgICAgICAgICAgICAgICAgICAgIEZs
dXNoLCBub2RlLT5vcmlnaW4sIE9wSW5mbyhmbHVzaEFjY2Vzc0RhdGEpKTsKLSAgICAgICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAobm9kZS0+YWNjZXNzZXNTdGFjayhtX2dyYXBo
KSkKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudEJsb2NrQWNjZXNzRGF0YS5vcGVyYW5kKG5v
ZGUtPmxvY2FsKCkpID0gbm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBGbHVzaCBldmVyeXRoaW5nIGF0IHRoZSBlbmQgb2Yg
dGhlIGJsb2NrLgotICAgICAgICB7Ci0gICAgICAgICAgICBOb2RlT3JpZ2luIG9yaWdpbiA9IGJs
b2NrLT5hdChibG9jay0+c2l6ZSgpIC0gMSktPm9yaWdpbjsKLSAgICAgICAgICAgIGF1dG8gaW5z
ZXJ0Rmx1c2hBdEVuZCA9IFsmXSAoVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQpIHsKLSAgICAgICAg
ICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIGFjY2Vzc0RhdGEgPSBjdXJyZW50QmxvY2tBY2Nl
c3NEYXRhLm9wZXJhbmQob3BlcmFuZCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFhY2Nlc3NEYXRh
KQotICAgICAgICAgICAgICAgICAgICBhY2Nlc3NEYXRhID0gbmV3VmFyaWFibGVBY2Nlc3NEYXRh
KG9wZXJhbmQpOwotCi0gICAgICAgICAgICAgICAgY3VycmVudEJsb2NrQWNjZXNzRGF0YS5vcGVy
YW5kKG9wZXJhbmQpID0gYWNjZXNzRGF0YTsKLQotICAgICAgICAgICAgICAgIGluc2VydGlvblNl
dC5pbnNlcnROb2RlKGJsb2NrLT5zaXplKCksIFNwZWNOb25lLCAKLSAgICAgICAgICAgICAgICAg
ICAgRmx1c2gsIG9yaWdpbiwgT3BJbmZvKGFjY2Vzc0RhdGEpKTsKLSAgICAgICAgICAgIH07Ci0K
LSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+dmFyaWFibGVzQXRU
YWlsLm51bWJlck9mTG9jYWxzKCk7IGkrKykKLSAgICAgICAgICAgICAgICBpbnNlcnRGbHVzaEF0
RW5kKHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGkpKTsKLSAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBibG9jay0+dmFyaWFibGVzQXRUYWlsLm51bWJlck9mQXJndW1lbnRzKCk7
IGkrKykKLSAgICAgICAgICAgICAgICBpbnNlcnRGbHVzaEF0RW5kKHZpcnR1YWxSZWdpc3RlckZv
ckFyZ3VtZW50KGkpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZvaWQgdHJlYXRSb290Qmxv
Y2soQmFzaWNCbG9jayogYmxvY2ssIEluc2VydGlvblNldCYgaW5zZXJ0aW9uU2V0KQotICAgIHsK
LSAgICAgICAgT3BlcmFuZHM8VmFyaWFibGVBY2Nlc3NEYXRhKj4gaW5pdGlhbEFjY2Vzc0RhdGEo
YmxvY2stPnZhcmlhYmxlc0F0VGFpbC5udW1iZXJPZkFyZ3VtZW50cygpLCBibG9jay0+dmFyaWFi
bGVzQXRUYWlsLm51bWJlck9mTG9jYWxzKCksIG51bGxwdHIpOwotICAgICAgICBPcGVyYW5kczxO
b2RlKj4gaW5pdGlhbEFjY2Vzc05vZGVzKGJsb2NrLT52YXJpYWJsZXNBdFRhaWwubnVtYmVyT2ZB
cmd1bWVudHMoKSwgYmxvY2stPnZhcmlhYmxlc0F0VGFpbC5udW1iZXJPZkxvY2FscygpLCBudWxs
cHRyKTsKLSAgICAgICAgZm9yIChhdXRvKiBub2RlIDogKmJsb2NrKSB7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUtPmFjY2Vzc2VzU3RhY2sobV9ncmFwaCkpCi0gICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0KLSAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kID0gbm9kZS0+bG9jYWwo
KTsKLSAgICAgICAgICAgIGlmIChpbml0aWFsQWNjZXNzRGF0YS5vcGVyYW5kKG9wZXJhbmQpKQot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICBERkdfQVNTRVJUKG1fZ3Jh
cGgsIG5vZGUsIG5vZGUtPm9wKCkgIT0gU2V0TG9jYWwpOyAvLyBXZSBzaG91bGQgaGF2ZSBpbnNl
cnRlZCBhIEZsdXNoIGJlZm9yZSB0aGlzIQotICAgICAgICAgICAgaW5pdGlhbEFjY2Vzc0RhdGEu
b3BlcmFuZChvcGVyYW5kKSA9IG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpOwotICAgICAgICAg
ICAgaW5pdGlhbEFjY2Vzc05vZGVzLm9wZXJhbmQob3BlcmFuZCkgPSBub2RlOwotICAgICAgICB9
Ci0KLSAgICAgICAgLy8gV2Ugd2FudCBldmVyeSBGbHVzaCB0byBiZSBhYmxlIHRvIHJlYWNoIGJh
Y2t3YXJkcyB0bwotICAgICAgICAvLyBhIFNldExvY2FsLiBEb2luZyB0aGlzIGluIHRoZSByb290
IGJsb2NrIGFjaGlldmVzIHRoaXMgZ29hbC4KLSAgICAgICAgTm9kZU9yaWdpbiBvcmlnaW4gPSBi
bG9jay0+YXQoMCktPm9yaWdpbjsKLSAgICAgICAgTm9kZSogdW5kZWZpbmVkID0gaW5zZXJ0aW9u
U2V0Lmluc2VydENvbnN0YW50KDAsIG9yaWdpbiwganNVbmRlZmluZWQoKSk7Ci0KLSAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT52YXJpYWJsZXNBdFRhaWwubnVtYmVyT2ZM
b2NhbHMoKTsgaSsrKSB7Ci0gICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCA9IHZp
cnR1YWxSZWdpc3RlckZvckxvY2FsKGkpOwotICAgICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBo
LCBudWxscHRyLCBpbml0aWFsQWNjZXNzTm9kZXMub3BlcmFuZChvcGVyYW5kKS0+b3AoKSA9PSBG
bHVzaCk7IC8vIFdlIHNob3VsZCBoYXZlIGluc2VydGVkIGEgRmx1c2ggYmVmb3JlIGFueSBTZXRM
b2NhbC9TZXRBcmd1bWVudERlZmluaXRlbHkvU2V0QXJndW1lbnRNYXliZSBmb3IgdGhlIGxvY2Fs
IHRoYXQgd2UgYXJlIGFuYWx5emluZyBub3cuCi0gICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0Rh
dGEqIGFjY2Vzc0RhdGEgPSBpbml0aWFsQWNjZXNzRGF0YS5vcGVyYW5kKG9wZXJhbmQpOwotICAg
ICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBudWxscHRyLCBhY2Nlc3NEYXRhKTsKLSAgICAg
ICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKDAsIFNwZWNOb25lLCAKLSAgICAgICAgICAg
ICAgICBTZXRMb2NhbCwgb3JpZ2luLCBPcEluZm8oYWNjZXNzRGF0YSksIEVkZ2UodW5kZWZpbmVk
KSk7Ci0gICAgICAgICAgICBhY2Nlc3NEYXRhLT5tZXJnZVNob3VsZE5ldmVyVW5ib3godHJ1ZSk7
IC8vIFdlIGRvbid0IGtub3cgaWYgd2UgY2FuIGV4aXQgaGVyZS4KLSAgICAgICAgfQotICAgIH0K
LQotCi0gICAgVmFyaWFibGVBY2Nlc3NEYXRhKiBuZXdWYXJpYWJsZUFjY2Vzc0RhdGEoVmlydHVh
bFJlZ2lzdGVyIG9wZXJhbmQpCi0gICAgewotICAgICAgICBBU1NFUlQoIW9wZXJhbmQuaXNDb25z
dGFudCgpKTsKLSAgICAgICAgCi0gICAgICAgIG1fZ3JhcGgubV92YXJpYWJsZUFjY2Vzc0RhdGEu
YXBwZW5kKG9wZXJhbmQpOwotICAgICAgICByZXR1cm4gJm1fZ3JhcGgubV92YXJpYWJsZUFjY2Vz
c0RhdGEubGFzdCgpOwotICAgIH0KLX07Ci0KLWJvb2wgcGVyZm9ybU1heGltYWxGbHVzaEluc2Vy
dGlvbihHcmFwaCYgZ3JhcGgpCi17Ci0gICAgcmV0dXJuIHJ1blBoYXNlPE1heGltYWxGbHVzaElu
c2VydGlvblBoYXNlPihncmFwaCk7Ci19Ci0KLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKLQot
I2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZS5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZjMxMGU5ZjNiMmQ4NGY1YTBiZDI5MjJjYzY5MGQ0MDI3NTUyYmU0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuaAorKysgL2Rl
di9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoREZHX0pJVCkKLQotbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewotCi1jbGFzcyBHcmFwaDsKLQotLy8gVGhpcyBw
aGFzZSBlbnN1cmVzIHdlIGtlZXAgYWxsIGxvY2Fscy9hcmd1bWVudHMgZmx1c2hlZC4KLS8vIFdo
YXQgdGhpcyBtZWFucyBpczogYW55IG5vZGUgaW5iZXR3ZWVuIGEgU2V0TG9jYWwgYW5kIGEgRmx1
c2ggc2hvdWxkCi0vLyBiZSBhYmxlIHRvIG9ic2VydmUgdGhhdCBwYXJ0aWN1bGFyIGxvY2FsIG9u
IHRoZSBzdGFjay4gVGhpcyBwaGFzZSBwYXR0ZXJucwotLy8gdGhlIGdyYXBoIGJ5IGluc2VydGlu
ZyBhIEZsdXNoIGJlZm9yZSBlYWNoIFNldExvY2FsIHN1Y2ggdGhhdCB0aGUgRmx1c2ggCi0vLyB3
ZSBpbnNlcnRlZCBjYW4gZG8gYSBiYWNrd2FyZHMgc2VhcmNoIHRocm91Z2ggYWxsIHBhdGhzIGlu
IHRoZSBDRkcgYW5kIAotLy8gcmVhY2ggYSBTZXRMb2NhbC4KLS8vIC4uLi4KLS8vIFNldExvY2Fs
KGxvY1gpCi0vLyA8Ci0vLyB8Ci0vLyAuLi4gV2UgZW5zdXJlIHRoYXQgbG9jWCBpcyBhdmFpbGFi
bGUgb24gdGhlIHN0YWNrIHRvIGFueSBub2RlcyBpbiB0aGlzIHJlZ2lvbiB0aGF0IG1heSBhc2sg
Zm9yIGxvY1guCi0vLyB8Ci0vLyA+Ci0vLyBGbHVzaChsb2NYKQotLy8gU2V0TG9jYWwobG9jWCkK
LQotYm9vbCBwZXJmb3JtTWF4aW1hbEZsdXNoSW5zZXJ0aW9uKEdyYXBoJik7Ci0KLX0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKLQotI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKaW5kZXggYjY5NDlhYTAzNWMxMmZhNzQ5ZDU4MGNjN2My
YWVjY2E4ZDkyYzE2OC4uNTU5MmI1YTY3M2NmOTU4OTQxYjM0Njk3NTQ5YjE4NTU1MjMyODAxMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCkBAIC01MSw3ICs1MSw2IEBACiAj
aW5jbHVkZSAiREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5oIgogI2luY2x1
ZGUgIkRGR0xpdmVuZXNzQW5hbHlzaXNQaGFzZS5oIgogI2luY2x1ZGUgIkRGR0xvb3BQcmVIZWFk
ZXJDcmVhdGlvblBoYXNlLmgiCi0jaW5jbHVkZSAiREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhh
c2UuaCIKICNpbmNsdWRlICJERkdNb3ZIaW50UmVtb3ZhbFBoYXNlLmgiCiAjaW5jbHVkZSAiREZH
T1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5oIgogI2luY2x1ZGUgIkRGR09TUkVudHJ5cG9p
bnRDcmVhdGlvblBoYXNlLmgiCkBAIC0yODUsOSArMjg0LDYgQEAgUGxhbjo6Q29tcGlsYXRpb25Q
YXRoIFBsYW46OmNvbXBpbGVJblRocmVhZEltcGwoKQogCiAgICAgUlVOX1BIQVNFKHBlcmZvcm1M
aXZlQ2F0Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNlKTsKIAotICAgIGlmIChPcHRpb25zOjp1
c2VNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZSgpKQotICAgICAgICBSVU5fUEhBU0UocGVyZm9y
bU1heGltYWxGbHVzaEluc2VydGlvbik7Ci0gICAgCiAgICAgUlVOX1BIQVNFKHBlcmZvcm1DUFNS
ZXRocmVhZGluZyk7CiAgICAgUlVOX1BIQVNFKHBlcmZvcm1VbmlmaWNhdGlvbik7CiAgICAgUlVO
X1BIQVNFKHBlcmZvcm1QcmVkaWN0aW9uSW5qZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggMWE2ZjliNzg4MjhmYjJhZTNlYjVlYWZkMWM0ZjUw
YjM3MGYyZGRjMy4uMWUwZTQwYTdiYWYwZDc0YTI5YTc2YWEwZTk1MGYwZjFhYWY3ZmYzMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTQ3MSwxMSArNDcx
LDYgQEAgc3RhdGljIHZvaWQgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpCiAgICAgICAgIE9w
dGlvbnM6Om1heGltdW1FdmFsQ2FjaGVhYmxlU291cmNlTGVuZ3RoKCkgPSAxNTAwMDA7CiAgICAg
ICAgIE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRKSVQoKSA9IGZhbHNlOwogICAgIH0KLSAgICBpZiAo
T3B0aW9uczo6dXNlTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UoKSkgewotICAgICAgICBPcHRp
b25zOjp1c2VPU1JFbnRyeVRvREZHKCkgPSBmYWxzZTsKLSAgICAgICAgT3B0aW9uczo6dXNlT1NS
RW50cnlUb0ZUTCgpID0gZmFsc2U7Ci0gICAgfQotICAgIAogI2lmIEVOQUJMRShTRVBBUkFURURf
V1hfSEVBUCkKICAgICAvLyBPdmVycmlkZSBnbG9iYWxseSBmb3Igbm93LiBMb25nZXIgdGVybSB3
ZSdsbCBqdXN0IG1ha2UgdGhlIGRlZmF1bHQKICAgICAvLyBiZSB0byBoYXZlIHRoaXMgb3B0aW9u
IGVuYWJsZWQsIGFuZCBoYXZlIHBsYXRmb3JtcyB0aGF0IGRvbid0IHN1cHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCAxMjg4YmEzZjcyNmU0YzRhOWU5OWNm
OGYxZDQ1MjFiZmVkMGRmZGViLi40NGZiYzMwYzBkMTlhZmIxODQ3YzIwNzk1MTk4ZDU3MDFjOTEw
ZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCkBAIC0zMTAsOCAr
MzEwLDYgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGkgPSBm
YWxzZTsKICAgICBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bVZhcmFyZ3NGb3JJbmxpbmluZywg
MTAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBcCi0gICAgdihib29sLCB1c2VNYXhpbWFsRmx1
c2hJbnNlcnRpb25QaGFzZSwgZmFsc2UsIE5vcm1hbCwgIlNldHRpbmcgdG8gdHJ1ZSBhbGxvd3Mg
dGhlIERGRydzIE1heGltYWxGbHVzaEluc2VydGlvblBoYXNlIHRvIHJ1bi4iKSBcCi0gICAgXAog
ICAgIHYodW5zaWduZWQsIG1heGltdW1CaW5hcnlTdHJpbmdTd2l0Y2hDYXNlTGVuZ3RoLCA1MCwg
Tm9ybWFsLCBudWxscHRyKSBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUJpbmFyeVN0cmluZ1N3
aXRjaFRvdGFsTGVuZ3RoLCAyMDAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBcCkBAIC01NDUs
NyArNTQzLDYgQEAgZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7CiAgICAgdihlbmFibGVBcmNoaXRl
Y3R1cmVTcGVjaWZpY09wdGltaXphdGlvbnMsIHVzZUFyY2hpdGVjdHVyZVNwZWNpZmljT3B0aW1p
emF0aW9ucywgU2FtZU9wdGlvbikgXAogICAgIHYoZW5hYmxlUG9seXZhcmlhbnRDYWxsSW5saW5p
bmcsIHVzZVBvbHl2YXJpYW50Q2FsbElubGluaW5nLCBTYW1lT3B0aW9uKSBcCiAgICAgdihlbmFi
bGVQb2x5dmFyaWFudEJ5SWRJbmxpbmluZywgdXNlUG9seXZhcmlhbnRCeUlkSW5saW5pbmcsIFNh
bWVPcHRpb24pIFwKLSAgICB2KGVuYWJsZU1heGltYWxGbHVzaEluc2VydGlvblBoYXNlLCB1c2VN
YXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZSwgU2FtZU9wdGlvbikgXAogICAgIHYob2JqZWN0c0Fy
ZUltbW9ydGFsLCB1c2VJbW1vcnRhbE9iamVjdHMsIFNhbWVPcHRpb24pIFwKICAgICB2KHNob3dP
YmplY3RTdGF0aXN0aWNzLCBkdW1wT2JqZWN0U3RhdGlzdGljcywgU2FtZU9wdGlvbikgXAogICAg
IHYoZGlzYWJsZUdDLCB1c2VHQywgSW52ZXJ0ZWRPcHRpb24pIFwKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWE3ZDk1YmExOTdhMjM3NzRm
NzNjZWNkZDA2NmEzMWU1NjBiZjU5ZS4uYjgzZTY4MGNmMjQ1NDk1M2ZlYTQxNWVkY2E5ZDNlZmJk
YWYyN2ZiOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOS0wOC0yMiAgVGFkZXUgWmFnYWxsbyAgPHR6YWdh
bGxvQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhh
c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTAz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSBhbGwgdGhlIHJlZmVyZW5jZXMgdG8gbWF4aW1hbCBmbHVzaCBhbmQgZGVsZXRlIHRoZSBtYXhp
bWFsIGZsdXNoLXNwZWNpZmljIHRlc3RzLgorCisgICAgICAgICogc3RyZXNzL2FyaXRoLWNlaWwt
b24tdmFyaW91cy10eXBlcy5qczoKKyAgICAgICAgKGNoZWNrQ29tcGlsZUNvdW50Rm9yVXNlbGVz
c05lZ2F0aXZlWmVybyk6CisgICAgICAgICogc3RyZXNzL2FyaXRoLWZsb29yLW9uLXZhcmlvdXMt
dHlwZXMuanM6CisgICAgICAgIChjaGVja0NvbXBpbGVDb3VudEZvclVzZWxlc3NOZWdhdGl2ZVpl
cm8pOgorICAgICAgICAqIHN0cmVzcy9hcml0aC1uZWdhdGUtb24tdmFyaW91cy10eXBlcy5qczoK
KyAgICAgICAgKGNoZWNrQ29tcGlsZUNvdW50Rm9yVXNlbGVzc05lZ2F0aXZlWmVybyk6CisgICAg
ICAgICogc3RyZXNzL2FyaXRoLXJvdW5kLW9uLXZhcmlvdXMtdHlwZXMuanM6CisgICAgICAgIChj
aGVja0NvbXBpbGVDb3VudEZvclVzZWxlc3NOZWdhdGl2ZVplcm8pOgorICAgICAgICAqIHN0cmVz
cy9hcml0aC10cnVuYy1vbi12YXJpb3VzLXR5cGVzLmpzOgorICAgICAgICAoY2hlY2tDb21waWxl
Q291bnRGb3JVc2VsZXNzTmVnYXRpdmVaZXJvKToKKyAgICAgICAgKiBzdHJlc3MvZGZnLWNvbXBh
cmUtZXEtdmlhLW5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlTnVsbE9yVW5kZWZpbmVk
LmpzOgorICAgICAgICAqIHN0cmVzcy9oYXMtaW5kZXhlZC1wcm9wZXJ0eS1zaG91bGQtYWNjZXB0
LW5vbi1pbnQzMi5qczoKKyAgICAgICAgKiBzdHJlc3MvaGFzLWluZGV4ZWQtcHJvcGVydHktd2l0
aC13b3JzZW5pbmctYXJyYXktbW9kZS5qczoKKyAgICAgICAgKiBzdHJlc3Mva25vd24taW50MzIt
Y2FudC1iZS11c2VkLWFjcm9zcy1ieXRlY29kZS1ib3VuZGFyeS5qczoKKyAgICAgICAgKiBzdHJl
c3MvcmVhZC1kZWFkLWJ5dGVjb2RlLWxvY2Fscy1pbi1tdXN0LWhhbmRsZS12YWx1ZXMxLmpzOgor
ICAgICAgICAqIHN0cmVzcy9yZWFkLWRlYWQtYnl0ZWNvZGUtbG9jYWxzLWluLW11c3QtaGFuZGxl
LXZhbHVlczIuanM6CisgICAgICAgICogc3RyZXNzL3Jlc3QtcGFyYW1ldGVyLW1hbnktYXJndW1l
bnRzLmpzOgorICAgICAgICAqIHN0cmVzcy9zZXQtYXJndW1lbnQtbWF5YmUtbWF4aW1hbC1mbHVz
aC1zaG91bGQtbm90LWV4dGVuZC1saXZlbmVzcy0yLmpzOiBSZW1vdmVkLgorICAgICAgICAqIHN0
cmVzcy9zZXQtYXJndW1lbnQtbWF5YmUtbWF4aW1hbC1mbHVzaC1zaG91bGQtbm90LWV4dGVuZC1s
aXZlbmVzcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBzdHJlc3MvdG8taW5kZXgtc3RyaW5nLXNo
b3VsZC1ub3QtYXNzdW1lLWluY29taW5nLXZhbHVlLWlzLXVpbnQzMi5qczoKKwogMjAxOS0wOC0y
MSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgSlNU
ZXN0cy9zdHJlc3Mvb3B0aW9uYWwtY2hhaW5pbmcgc2hvdWxkIG5vdCBjYWxsIHNob3VsZFRocm93
VHlwZUVycm9yIGluIGEgbG9vcApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJpdGgtY2Vp
bC1vbi12YXJpb3VzLXR5cGVzLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJpdGgtY2VpbC1vbi12YXJp
b3VzLXR5cGVzLmpzCmluZGV4IDI5YzJlNGE2ODI2NTNhZWIyYzEyOGUyMGE5YzBmNWNjZWEzYjc4
MTEuLjZlMWZmMTdjN2IyN2Y0OWJmNmE0YjZmODA5MTE5MGJmNzRjMjkxN2EgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL2FyaXRoLWNlaWwtb24tdmFyaW91cy10eXBlcy5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9hcml0aC1jZWlsLW9uLXZhcmlvdXMtdHlwZXMuanMKQEAgLTE0MCwxMSArMTQw
LDYgQEAgdGVzdFNpbmdsZVR5cGVDYWxsKCk7CiAKIGZ1bmN0aW9uIGNoZWNrQ29tcGlsZUNvdW50
Rm9yVXNlbGVzc05lZ2F0aXZlWmVybyh0ZXN0RnVuY3Rpb24pCiB7Ci0gICAgaWYgKGpzY09wdGlv
bnMoKS51c2VNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZSkgewotICAgICAgICAvLyBJZiB3ZSBm
b3JjZWQgYSBmbHVzaCBhZnRlciB0aGUgb3BlcmF0aW9uLCB0aGUgbmVnYXRpdmUgemVybyBiZWNv
bWVzCi0gICAgICAgIC8vIG9ic2VydmFibGUgYW5kIHdlIG1heSBiZSBvdmVybHkgb3B0aW1pc3Rp
Yy4KLSAgICAgICAgcmV0dXJuIG51bWJlck9mREZHQ29tcGlsZXModGVzdEZ1bmN0aW9uKSA8PSAy
OwotICAgIH0KICAgICByZXR1cm4gbnVtYmVyT2ZERkdDb21waWxlcyh0ZXN0RnVuY3Rpb24pIDw9
IDE7CiB9CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FyaXRoLWZsb29yLW9uLXZhcmlv
dXMtdHlwZXMuanMgYi9KU1Rlc3RzL3N0cmVzcy9hcml0aC1mbG9vci1vbi12YXJpb3VzLXR5cGVz
LmpzCmluZGV4IGZmNzQwY2MzNzc5NWVmNTQ5N2NkZDRmMzljZDcxZDk1MzRmZDIyOTAuLjBmZDM0
ZjA1MDJhNzdmZjI5NGYxYzI4MjhkZWVmYTVkZmJkNzM1ZjAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
c3RyZXNzL2FyaXRoLWZsb29yLW9uLXZhcmlvdXMtdHlwZXMuanMKKysrIGIvSlNUZXN0cy9zdHJl
c3MvYXJpdGgtZmxvb3Itb24tdmFyaW91cy10eXBlcy5qcwpAQCAtMTQwLDExICsxNDAsNiBAQCB0
ZXN0U2luZ2xlVHlwZUNhbGwoKTsKIAogZnVuY3Rpb24gY2hlY2tDb21waWxlQ291bnRGb3JVc2Vs
ZXNzTmVnYXRpdmVaZXJvKHRlc3RGdW5jdGlvbikKIHsKLSAgICBpZiAoanNjT3B0aW9ucygpLnVz
ZU1heGltYWxGbHVzaEluc2VydGlvblBoYXNlKSB7Ci0gICAgICAgIC8vIElmIHdlIGZvcmNlZCBh
IGZsdXNoIGFmdGVyIHRoZSBvcGVyYXRpb24sIHRoZSBuZWdhdGl2ZSB6ZXJvIGJlY29tZXMKLSAg
ICAgICAgLy8gb2JzZXJ2YWJsZSBhbmQgd2UgbWF5IGJlIG92ZXJseSBvcHRpbWlzdGljLgotICAg
ICAgICByZXR1cm4gbnVtYmVyT2ZERkdDb21waWxlcyh0ZXN0RnVuY3Rpb24pIDw9IDI7Ci0gICAg
fQogICAgIHJldHVybiBudW1iZXJPZkRGR0NvbXBpbGVzKHRlc3RGdW5jdGlvbikgPD0gMTsKIH0K
IApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJpdGgtbmVnYXRlLW9uLXZhcmlvdXMtdHlw
ZXMuanMgYi9KU1Rlc3RzL3N0cmVzcy9hcml0aC1uZWdhdGUtb24tdmFyaW91cy10eXBlcy5qcwpp
bmRleCA3ZDNmMTkyMDlmZmVkNGRhNzAxYmJmOWM2MGIxNzk5NzkyOWZhMWQzLi42MzkwNTg3OTU1
OWRhOTIzNmEwODhmYjMyYWEyNTk3YzIzZmExODY0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9hcml0aC1uZWdhdGUtb24tdmFyaW91cy10eXBlcy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9h
cml0aC1uZWdhdGUtb24tdmFyaW91cy10eXBlcy5qcwpAQCAtMTIwLDExICsxMjAsNiBAQCB0ZXN0
U2luZ2xlVHlwZUNhbGwoKTsKIAogZnVuY3Rpb24gY2hlY2tDb21waWxlQ291bnRGb3JVc2VsZXNz
TmVnYXRpdmVaZXJvKHRlc3RGdW5jdGlvbikKIHsKLSAgICBpZiAoanNjT3B0aW9ucygpLnVzZU1h
eGltYWxGbHVzaEluc2VydGlvblBoYXNlKSB7Ci0gICAgICAgIC8vIElmIHdlIGZvcmNlZCBhIGZs
dXNoIGFmdGVyIHRoZSBvcGVyYXRpb24sIHRoZSBuZWdhdGl2ZSB6ZXJvIGJlY29tZXMKLSAgICAg
ICAgLy8gb2JzZXJ2YWJsZSBhbmQgd2UgbWF5IGJlIG92ZXJseSBvcHRpbWlzdGljLgotICAgICAg
ICByZXR1cm4gbnVtYmVyT2ZERkdDb21waWxlcyh0ZXN0RnVuY3Rpb24pIDw9IDI7Ci0gICAgfQog
ICAgIHJldHVybiBudW1iZXJPZkRGR0NvbXBpbGVzKHRlc3RGdW5jdGlvbikgPD0gMTsKIH0KIApk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJpdGgtcm91bmQtb24tdmFyaW91cy10eXBlcy5q
cyBiL0pTVGVzdHMvc3RyZXNzL2FyaXRoLXJvdW5kLW9uLXZhcmlvdXMtdHlwZXMuanMKaW5kZXgg
ZWI4OTMzOTNlMWFjM2Y1YTUwMDVmNGQ4MmVjNGYxMDYyNGNhOTkxZC4uN2U0OTNhM2NiZDRjNGMy
ODc1ZTdjZGM2NTFhMWY2MjgyM2MxMjhhOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXJp
dGgtcm91bmQtb24tdmFyaW91cy10eXBlcy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9hcml0aC1y
b3VuZC1vbi12YXJpb3VzLXR5cGVzLmpzCkBAIC0xNDAsMTEgKzE0MCw2IEBAIHRlc3RTaW5nbGVU
eXBlQ2FsbCgpOwogCiBmdW5jdGlvbiBjaGVja0NvbXBpbGVDb3VudEZvclVzZWxlc3NOZWdhdGl2
ZVplcm8odGVzdEZ1bmN0aW9uKQogewotICAgIGlmIChqc2NPcHRpb25zKCkudXNlTWF4aW1hbEZs
dXNoSW5zZXJ0aW9uUGhhc2UpIHsKLSAgICAgICAgLy8gSWYgd2UgZm9yY2VkIGEgZmx1c2ggYWZ0
ZXIgdGhlIG9wZXJhdGlvbiwgdGhlIG5lZ2F0aXZlIHplcm8gYmVjb21lcwotICAgICAgICAvLyBv
YnNlcnZhYmxlIGFuZCB3ZSBtYXkgYmUgb3Zlcmx5IG9wdGltaXN0aWMuCi0gICAgICAgIHJldHVy
biBudW1iZXJPZkRGR0NvbXBpbGVzKHRlc3RGdW5jdGlvbikgPD0gMjsKLSAgICB9CiAgICAgcmV0
dXJuIG51bWJlck9mREZHQ29tcGlsZXModGVzdEZ1bmN0aW9uKSA8PSAxOwogfQogCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9hcml0aC10cnVuYy1vbi12YXJpb3VzLXR5cGVzLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvYXJpdGgtdHJ1bmMtb24tdmFyaW91cy10eXBlcy5qcwppbmRleCA4NDY5ODQ2
ZmY5MjZlYmU4ZmY1NWI0Njg2NWFjMjY5ODA4NTE4NDFmLi4wNzUxNTVjZWZmODM0OTQ5ODg1MTYy
NGIyODllM2VlOWJjYTdlOWRmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9hcml0aC10cnVu
Yy1vbi12YXJpb3VzLXR5cGVzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2FyaXRoLXRydW5jLW9u
LXZhcmlvdXMtdHlwZXMuanMKQEAgLTE0MCwxMSArMTQwLDYgQEAgdGVzdFNpbmdsZVR5cGVDYWxs
KCk7CiAKIGZ1bmN0aW9uIGNoZWNrQ29tcGlsZUNvdW50Rm9yVXNlbGVzc05lZ2F0aXZlWmVybyh0
ZXN0RnVuY3Rpb24pCiB7Ci0gICAgaWYgKGpzY09wdGlvbnMoKS51c2VNYXhpbWFsRmx1c2hJbnNl
cnRpb25QaGFzZSkgewotICAgICAgICAvLyBJZiB3ZSBmb3JjZWQgYSBmbHVzaCBhZnRlciB0aGUg
b3BlcmF0aW9uLCB0aGUgbmVnYXRpdmUgemVybyBiZWNvbWVzCi0gICAgICAgIC8vIG9ic2VydmFi
bGUgYW5kIHdlIG1heSBiZSBvdmVybHkgb3B0aW1pc3RpYy4KLSAgICAgICAgcmV0dXJuIG51bWJl
ck9mREZHQ29tcGlsZXModGVzdEZ1bmN0aW9uKSA8PSAyOwotICAgIH0KICAgICByZXR1cm4gbnVt
YmVyT2ZERkdDb21waWxlcyh0ZXN0RnVuY3Rpb24pIDw9IDE7CiB9CiAKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2RmZy1jb21wYXJlLWVxLXZpYS1ub25TcGVjdWxhdGl2ZU5vblBlZXBob2xl
Q29tcGFyZU51bGxPclVuZGVmaW5lZC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RmZy1jb21wYXJlLWVx
LXZpYS1ub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZU51bGxPclVuZGVmaW5lZC5qcwpp
bmRleCA2MWZmYTU1ZmMyOTliNmEyMWViYjFiMjE1NDY5MDhjNDVlNDY0Y2VmLi5kMjFiMzdlNDll
MTdjNDlmMmYxNWEzYzgyZGQ0MzJmZGE3ZjdmNjBiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9kZmctY29tcGFyZS1lcS12aWEtbm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmVOdWxs
T3JVbmRlZmluZWQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGZnLWNvbXBhcmUtZXEtdmlhLW5v
blNwZWN1bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlTnVsbE9yVW5kZWZpbmVkLmpzCkBAIC0xLDQg
KzEsNCBAQAotLy9AIHJ1bkRlZmF1bHQoIi0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIiwgIi0t
Y29sbGVjdENvbnRpbnVvdXNseVBlcmlvZE1TPTAuMTUiLCAiLS11c2VNYXhpbWFsRmx1c2hJbnNl
cnRpb25QaGFzZT10cnVlIiwgIi0tdXNlTExJbnQ9ZmFsc2UiLCAiLS11c2VGVExKSVQ9ZmFsc2Ui
LCAiLS1qaXRQb2xpY3lTY2FsZT0wIikKKy8vQCBydW5EZWZhdWx0KCItLWNvbGxlY3RDb250aW51
b3VzbHk9dHJ1ZSIsICItLWNvbGxlY3RDb250aW51b3VzbHlQZXJpb2RNUz0wLjE1IiwgIi0tdXNl
TExJbnQ9ZmFsc2UiLCAiLS11c2VGVExKSVQ9ZmFsc2UiLCAiLS1qaXRQb2xpY3lTY2FsZT0wIikK
IAogLy8gVGhpcyB0ZXN0IGV4ZXJjaXNlcyBERkc6OlNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxh
dGl2ZU5vblBlZXBob2xlQ29tcGFyZU51bGxPclVuZGVmaW5lZCgpLgogCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9oYXMtaW5kZXhlZC1wcm9wZXJ0eS1zaG91bGQtYWNjZXB0LW5vbi1pbnQz
Mi5qcyBiL0pTVGVzdHMvc3RyZXNzL2hhcy1pbmRleGVkLXByb3BlcnR5LXNob3VsZC1hY2NlcHQt
bm9uLWludDMyLmpzCmluZGV4IDVlNTQ4NmIyZDEwZTQyZWZlZTRjYmQzNGY5MjUzNDNlNDM3MWY2
YTYuLjE4MWNhOWM3NGVhMDFkYmI4MjM0YWNmYjcyZTg4NjE1NjY2M2YyZDggMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL2hhcy1pbmRleGVkLXByb3BlcnR5LXNob3VsZC1hY2NlcHQtbm9uLWlu
dDMyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2hhcy1pbmRleGVkLXByb3BlcnR5LXNob3VsZC1h
Y2NlcHQtbm9uLWludDMyLmpzCkBAIC0xLDQgKzEsNCBAQAotLy9AIHJ1bkRlZmF1bHQoIi0tdXNl
UmFuZG9taXppbmdGdXp6ZXJBZ2VudD0xIiwgIi0taml0UG9saWN5U2NhbGU9MCIsICItLXVzZU1h
eGltYWxGbHVzaEluc2VydGlvblBoYXNlPTEiLCAiLS11c2VDb25jdXJyZW50SklUPTAiKQorLy9A
IHJ1bkRlZmF1bHQoIi0tdXNlUmFuZG9taXppbmdGdXp6ZXJBZ2VudD0xIiwgIi0taml0UG9saWN5
U2NhbGU9MCIsICItLXVzZUNvbmN1cnJlbnRKSVQ9MCIpCiBmdW5jdGlvbiBmb28ob2JqKSB7CiAg
IGZvciAodmFyIHggaW4gb2JqKSB7CiAgICAgaWYgKDAgPiAwKSB7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9oYXMtaW5kZXhlZC1wcm9wZXJ0eS13aXRoLXdvcnNlbmluZy1hcnJheS1tb2Rl
LmpzIGIvSlNUZXN0cy9zdHJlc3MvaGFzLWluZGV4ZWQtcHJvcGVydHktd2l0aC13b3JzZW5pbmct
YXJyYXktbW9kZS5qcwppbmRleCBmOTQyNDEwYTM1NDg4Yzg2ZWMzMjM4ZmRmODE2YzNkMTRmODFk
YzcyLi5jZmYzNTg1ODk0ZTEyZmYyOGVkYWViZWE4YmM5OTVmMmE1NTZjYzJlIDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3N0cmVzcy9oYXMtaW5kZXhlZC1wcm9wZXJ0eS13aXRoLXdvcnNlbmluZy1hcnJh
eS1tb2RlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2hhcy1pbmRleGVkLXByb3BlcnR5LXdpdGgt
d29yc2VuaW5nLWFycmF5LW1vZGUuanMKQEAgLTEsNCArMSw0IEBACi0vL0AgcmVxdWlyZU9wdGlv
bnMoIi0td2F0Y2hkb2c9MTAwMCIsICItLXdhdGNoZG9nLWV4Y2VwdGlvbi1vayIsICItLXVzZU1h
eGltYWxGbHVzaEluc2VydGlvblBoYXNlPTEiKQorLy9AIHJlcXVpcmVPcHRpb25zKCItLXdhdGNo
ZG9nPTEwMDAiLCAiLS13YXRjaGRvZy1leGNlcHRpb24tb2siKQogLy8gVGhpcyB0ZXN0IG9ubHkg
c2VlbXMgdG8gcmVwcm9kdWNlIHRoZSBpc3N1ZSB3aGVuIGl0IHJ1bnMgaW4gYW4gaW5maW5pdGUg
bG9vcC4gU28gd2UgdXNlIHRoZSB3YXRjaGRvZyB0byB0aW1lIGl0IG91dC4KIGZvciAobGV0IHgg
aW4gWzBdKSB7CiAgIGJyZWFrCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9rbm93bi1pbnQz
Mi1jYW50LWJlLXVzZWQtYWNyb3NzLWJ5dGVjb2RlLWJvdW5kYXJ5LmpzIGIvSlNUZXN0cy9zdHJl
c3Mva25vd24taW50MzItY2FudC1iZS11c2VkLWFjcm9zcy1ieXRlY29kZS1ib3VuZGFyeS5qcwpp
bmRleCBmYzBjNGFiNzdjN2M2NDNhNDNhZjI4OGZjNzgzNmFhNmNjYWY3NWQ1Li5kZDg2MGVmMmNk
NzAwZTA3MGJlYjI3NDI4YWFhNDYzMjBiYmFmYjU4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9rbm93bi1pbnQzMi1jYW50LWJlLXVzZWQtYWNyb3NzLWJ5dGVjb2RlLWJvdW5kYXJ5LmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2tub3duLWludDMyLWNhbnQtYmUtdXNlZC1hY3Jvc3MtYnl0ZWNv
ZGUtYm91bmRhcnkuanMKQEAgLTEsNCArMSw0IEBACi0vL0AgcnVuRGVmYXVsdCgiLS11c2VDb25j
dXJyZW50SklUPTAiLCAiLS11c2VNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZT0xIikKKy8vQCBy
dW5EZWZhdWx0KCItLXVzZUNvbmN1cnJlbnRKSVQ9MCIpCiAKIGZ1bmN0aW9uIGZvbygpIHsKICAg
ICB2YXIgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4
MTIsIHgxMzsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlYWQtZGVhZC1ieXRlY29kZS1s
b2NhbHMtaW4tbXVzdC1oYW5kbGUtdmFsdWVzMS5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlYWQtZGVh
ZC1ieXRlY29kZS1sb2NhbHMtaW4tbXVzdC1oYW5kbGUtdmFsdWVzMS5qcwppbmRleCA5ZTJhZTM4
NmRhNWRkMWU2NmVjMDFlOTFkNTQ4MzgzNGZjNzNmZWU3Li40MzliZmFjZDQ3NTI2YmNmOTVmNTZi
ODAxMjA3NjM1OGNlN2ZiYWU5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZWFkLWRlYWQt
Ynl0ZWNvZGUtbG9jYWxzLWluLW11c3QtaGFuZGxlLXZhbHVlczEuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3MvcmVhZC1kZWFkLWJ5dGVjb2RlLWxvY2Fscy1pbi1tdXN0LWhhbmRsZS12YWx1ZXMxLmpz
CkBAIC0xLDQgKzEsNCBAQAotLy9AIHJ1bkRlZmF1bHQoIi0tdXNlTWF4aW1hbEZsdXNoSW5zZXJ0
aW9uUGhhc2U9MSIsICItLXVzZUNvbmN1cnJlbnRKSVQ9MCIpCisvL0AgcnVuRGVmYXVsdCgiLS11
c2VDb25jdXJyZW50SklUPTAiKQogZnVuY3Rpb24gYmFyKHgpIHsKICAgaWYgKHgpIHsKICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWFkLWRlYWQtYnl0ZWNvZGUtbG9j
YWxzLWluLW11c3QtaGFuZGxlLXZhbHVlczIuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWFkLWRlYWQt
Ynl0ZWNvZGUtbG9jYWxzLWluLW11c3QtaGFuZGxlLXZhbHVlczIuanMKaW5kZXggZmViM2NmYTE1
N2RhZWI1NzBjOGExNjYzOGU2NTI4ZDI3NzYzOGVjMS4uMGVhMWJkNGU1MjRjOTQwMWYyZGRlOWQw
NmIyMGI2NGZjYzA0Y2RiNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVhZC1kZWFkLWJ5
dGVjb2RlLWxvY2Fscy1pbi1tdXN0LWhhbmRsZS12YWx1ZXMyLmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3JlYWQtZGVhZC1ieXRlY29kZS1sb2NhbHMtaW4tbXVzdC1oYW5kbGUtdmFsdWVzMi5qcwpA
QCAtMSw0ICsxLDQgQEAKLS8vQCBydW5EZWZhdWx0KCItLXVzZU1heGltYWxGbHVzaEluc2VydGlv
blBoYXNlPTEiLCAiLS11c2VDb25jdXJyZW50SklUPTAiKQorLy9AIHJ1bkRlZmF1bHQoIi0tdXNl
Q29uY3VycmVudEpJVD0wIikKIGZ1bmN0aW9uIGJhcihjKSB7CiAgICAgaWYgKGMgPiAxKSB7CiAg
ICAgICAgIGJhcihwYXJzZUludChjICogMikpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9y
ZXN0LXBhcmFtZXRlci1tYW55LWFyZ3VtZW50cy5qcyBiL0pTVGVzdHMvc3RyZXNzL3Jlc3QtcGFy
YW1ldGVyLW1hbnktYXJndW1lbnRzLmpzCmluZGV4IDE2YTFmMjg4MzE0ZTU1N2ZhNDA2OTk3N2Uy
NDk2NDI2NWQzYzZiMmMuLjc2YTAxNzMxNGQ5NjA4ODFhNTIzNTZjMTFlM2Y4MzA5ZGNjMzBmN2Yg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3Jlc3QtcGFyYW1ldGVyLW1hbnktYXJndW1lbnRz
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3Jlc3QtcGFyYW1ldGVyLW1hbnktYXJndW1lbnRzLmpz
CkBAIC0xLDUgKzEsNCBAQAogLy9AIHNraXAgaWYgJGFyY2hpdGVjdHVyZSA9PSAieDg2IgotLy9A
IGlmICRhcmNoaXRlY3R1cmUgPT0gIng4NiIgdGhlbiBkZWZhdWx0U3BvdENoZWNrTm9NYXhpbWFs
Rmx1c2ggZWxzZSBkZWZhdWx0UnVuIGVuZAogCiBmdW5jdGlvbiBhc3NlcnQoYikgewogICAgIGlm
ICghYikKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NldC1hcmd1bWVudC1tYXliZS1tYXhp
bWFsLWZsdXNoLXNob3VsZC1ub3QtZXh0ZW5kLWxpdmVuZXNzLTIuanMgYi9KU1Rlc3RzL3N0cmVz
cy9zZXQtYXJndW1lbnQtbWF5YmUtbWF4aW1hbC1mbHVzaC1zaG91bGQtbm90LWV4dGVuZC1saXZl
bmVzcy0yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjhhOWI4NTEzNzYyOWZk
NjBkM2E4NGVjYzY5MzI2ODk3MTEyNzMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL3NldC1hcmd1bWVudC1tYXliZS1tYXhpbWFs
LWZsdXNoLXNob3VsZC1ub3QtZXh0ZW5kLWxpdmVuZXNzLTIuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwyMCArMCwwIEBACi0vL0AgcnVuRGVmYXVsdCgiLS11c2VNYXhpbWFsRmx1c2hJbnNlcnRpb25Q
aGFzZT0xIiwgIi0taml0UG9saWN5U2NhbGU9MCIsICItLXVzZUNvbmN1cnJlbnRKSVQ9MCIpCi0K
LWZ1bmN0aW9uIGYwKCkgewotfQotCi1mdW5jdGlvbiBiYXIoKSB7Ci0gICAgZjAoLi4uYXJndW1l
bnRzKTsKLX0KLQotY29uc3QgYSA9IG5ldyBVaW50OEFycmF5KDEpOwotCi1mdW5jdGlvbiBmb28o
KSB7Ci0gICAgYmFyKDAsIDApOwotICAgIGEuZmluZCgoKT0+e30pOwotfQotCi0KLWZvciAobGV0
IGk9MDsgaTwzOyBpKyspIHsKLSAgICBmb28oKTsKLX0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3NldC1hcmd1bWVudC1tYXliZS1tYXhpbWFsLWZsdXNoLXNob3VsZC1ub3QtZXh0ZW5kLWxp
dmVuZXNzLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2V0LWFyZ3VtZW50LW1heWJlLW1heGltYWwtZmx1
c2gtc2hvdWxkLW5vdC1leHRlbmQtbGl2ZW5lc3MuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQ4OTdiMjc4MmZhYzE3NzEzNzI4ZGI0OWUxMzUyMWU1NTJjMGEyMDMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2V0
LWFyZ3VtZW50LW1heWJlLW1heGltYWwtZmx1c2gtc2hvdWxkLW5vdC1leHRlbmQtbGl2ZW5lc3Mu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0vL0AgcnVuRGVmYXVsdCgiLS11c2VN
YXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZT0xIiwgIi0tdmFsaWRhdGVHcmFwaEF0RWFjaFBoYXNl
PTEiKQotCi1mdW5jdGlvbiBmMSgpIHsKLX0KLQotZnVuY3Rpb24gZjIoKSB7Ci19Ci0KLWNvbnN0
IGEgPSBbMF07Ci0KLWZ1bmN0aW9uIGZvbygpIHsKLSAgICBmMSguLi5hKTsKLSAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IDI7IGkrKykgewotICAgICAgICBmMihbXSA+IDApOwotICAgIH0KLX0KLQot
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKLSAgICBmb28oKTsKLX0KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL3RvLWluZGV4LXN0cmluZy1zaG91bGQtbm90LWFzc3VtZS1p
bmNvbWluZy12YWx1ZS1pcy11aW50MzIuanMgYi9KU1Rlc3RzL3N0cmVzcy90by1pbmRleC1zdHJp
bmctc2hvdWxkLW5vdC1hc3N1bWUtaW5jb21pbmctdmFsdWUtaXMtdWludDMyLmpzCmluZGV4IDVj
OGIyNWEwZTJmY2JmYjljNWU2NjYyMGYzZWVmYmE2ODgwNTNlMGUuLjIwNzNlMjhjODc3YTNlZDJh
OGVhNmMyNmM4NzJmM2VkZDRjNzVhYzMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3RvLWlu
ZGV4LXN0cmluZy1zaG91bGQtbm90LWFzc3VtZS1pbmNvbWluZy12YWx1ZS1pcy11aW50MzIuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3MvdG8taW5kZXgtc3RyaW5nLXNob3VsZC1ub3QtYXNzdW1lLWlu
Y29taW5nLXZhbHVlLWlzLXVpbnQzMi5qcwpAQCAtMSw0ICsxLDQgQEAKLS8vQCBydW5EZWZhdWx0
KCItLXVzZU1heGltYWxGbHVzaEluc2VydGlvblBoYXNlPTEiLCAiLS11c2VSYW5kb21pemluZ0Z1
enplckFnZW50PTEiKQorLy9AIHJ1bkRlZmF1bHQoIi0tdXNlUmFuZG9taXppbmdGdXp6ZXJBZ2Vu
dD0xIikKIAogZnVuY3Rpb24gZm9vKCkgewogICAgIGZvciAodmFyIHggaW4gWydhJywgJ2InXSkg
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377163</attachid>
            <date>2019-08-23 15:25:20 -0700</date>
            <delta_ts>2019-08-23 16:08:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201036-20190823152517.patch</filename>
            <type>text/plain</type>
            <size>34039</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4OTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
N2QyNjZhNDFkOTg0NDcyNTBhYWVjMTEwZjZiM2I4YzYxN2U2Yzg3Li5mMWEwNjJiMDQ4Mjg5OTFj
NDI2MzNlZWU4ZDUwNjRhZjZlNWM0Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxOS0wOC0yMyAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW1vdmUgTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTAzNgorCisgICAgICAg
IFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgIE1heGltYWwgZmx1c2ggaGFzIGZv
dW5kIHRvbyBtYW55IGZhbHNlIHBvc2l0aXZlcyByZWNlbnRseSwgc28gd2UgZGVjaWRlZCBpdCdz
IGZpbmFsbHkgdGltZQorICAgICAgICB0byByZW1vdmUgaXQgaW5zdGVhZCBvZiBoYWNraW5nIGl0
IHRvIGZpeCB0aGUgbW9zdCByZWNlbnQgZmFsc2UgcG9zaXRpdmUuCisKKyAgICAgICAgVGhlIG1v
c3QgcmVjZW50IGZhbHNlIHBvc2l0aXZlIHdhcyBjYXVzZWQgYnkgYSBMb2FkVmFyYXJncyBmb2xs
b3dlZCBieSBhIFNldEFyZ3VtZW50RGVmaW5pdGVseQorICAgICAgICBmb3IgdGhlIGFyZ3VtZW50
IGNvdW50IHRoYXQgd2FzIGJlaW5nIGZsdXNoZWQgaW4gYSBtdWNoIGxhdGVyIGJsb2NrLiBOb3cs
IHNpbmNlIHRoYXQgYmxvY2sgd2FzCisgICAgICAgIHRoZSBoZWFkIG9mIGEgbG9vcCwgYW5kIHRo
ZXJlIHdhcyBhIFNldExvY2FsIGluIHRoZSBzYW1lIGJsb2NrIHRvIHRoZSBzYW1lIHZhcmlhYmxl
LCB0aGlzCisgICAgICAgIGdlbmVyYXRlZCBhIFBoaSBvZiBib3RoIHZhbHVlcywgd2hpY2ggdGhl
biBsZWQgdG8gdGhlIHVuaWZpY2F0aW9uIG9mIHRoZWlyIFZhcmlhYmxlQWNjZXNzRGF0YQorICAg
ICAgICBpbiB0aGUgdW5pZmljYXRpb24gcGhhc2UuIFRoaXMgY2F1c2VkIEFJIHRvIGFzc2lnbiB0
aGUgSW50NTIgdHlwZSB0byBhcmd1bWVudCBjb3VudCwgd2hpY2gKKyAgICAgICAgYnJva2UgdGhl
IEFJ4oCZcyBhc3N1bXB0aW9uIHRoYXQgaXQgc2hvdWxkIGFsd2F5cyBiZSBhbiBJbnQzMi4KKwor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlVmFyYXJnc0lubGluaW5n
KToKKyAgICAgICAgKiBkZmcvREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGRmZy9ERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIGRmZy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFu
Ojpjb21waWxlSW5UaHJlYWRJbXBsKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgor
ICAgICAgICAoSlNDOjpyZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKToKKyAgICAgICAgKiBydW50
aW1lL09wdGlvbnMuaDoKKwogMjAxOS0wOC0yMSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFw
cGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBpbmNvcnJlbnQgSklUIGxlYWQgdG8gU3RhY2tPdmVy
ZmxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkYWVhNDY2ZjE1M2U0ZDEyZmE2
NDU2ZDVmMjlkNTVjOTQxNTI5NmVkLi44Y2FkYzU4Y2U2MzNmNzBkN2QyZWI2Y2YwNDI1NDQ3ZDJm
ZWQyYTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIxNSw3ICsxMjE1LDYg
QEAKIAkJNzlERkNCREIxRDg4QzU5NjAwNTI3RDAzIC8qIEhhc093blByb3BlcnR5Q2FjaGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5REZDQkRBMUQ4
OEM1OTYwMDUyN0QwMyAvKiBIYXNPd25Qcm9wZXJ0eUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzlFRTBDMDAxQjRBRkI4NTAwMDM4NUM5
IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc5RUUwQkZFMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmly
b25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzlFRkQ0ODQxRUJDMDQ1QzAwRjNERkVBIC8qIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFw
Q2VsbFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc5RUZENDgyMUVCQzA0NUMwMEYzREZFQSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENl
bGxUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJNzlGOEZDMUYxQjlGRUQwRjAwQ0E2NkFCIC8qIERGR01heGltYWxGbHVzaEluc2VydGlvblBo
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUY4
RkMxRDFCOUZFRDBGMDBDQTY2QUIgLyogREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuaCAq
LzsgfTsKIAkJNzlGQzhBMDgxRTMyRTlGMDAwRDg4RjBFIC8qIERGR1JlZ2lzdGVyZWRTdHJ1Y3R1
cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5RkM4
QTA3MUUzMkU5RjAwMEQ4OEYwRSAvKiBERkdSZWdpc3RlcmVkU3RydWN0dXJlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0E5Nzc0QTgyMDZCODJF
NDAwOEQwM0QwIC8qIEpTV2Vha1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QTk3NzRBNzIwNkI4MkM5MDA4RDAzRDAgLyogSlNXZWFrVmFsdWUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkM1
NDdEMzFCNjk1OUExMDA5NTlCNTggLyogV2FzbUZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JDNTQ3RDIxQjY5NTk5QjAwOTU5QjU4IC8qIFdh
c21Gb3JtYXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMzk5MCw4ICszOTg5LDYgQEAKIAkJNzlFRTBCRkUxQjRBRkI4NTAwMDM4NUM5IC8qIFZh
cmlhYmxlRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFy
aWFibGVFbnZpcm9ubWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUVGRDQ4
MTFFQkMwNDVDMDBGM0RGRUEgLyogSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkFzc2VtYmx5Q29k
ZUJsb2NrSGVhcENlbGxUeXBlLmNwcDsgcGF0aCA9IGpzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2tI
ZWFwQ2VsbFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUVGRDQ4MjFF
QkMwNDVDMDBGM0RGRUEgLyogSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVh
cENlbGxUeXBlLmg7IHBhdGggPSBqcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc5RjhGQzFDMUI5RkVEMEYwMENBNjZB
QiAvKiBERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZS5jcHA7IHBh
dGggPSBkZmcvREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk3OUY4RkMxRDFCOUZFRDBGMDBDQTY2QUIgLyogREZHTWF4aW1hbEZs
dXNoSW5zZXJ0aW9uUGhhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZH
TWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuaDsgcGF0aCA9IGRmZy9ERkdNYXhpbWFsRmx1c2hJ
bnNlcnRpb25QaGFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUZDOEEwNzFF
MzJFOUYwMDBEODhGMEUgLyogREZHUmVnaXN0ZXJlZFN0cnVjdHVyZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdSZWdpc3RlcmVkU3RydWN0dXJlLmg7IHBhdGggPSBkZmcv
REZHUmVnaXN0ZXJlZFN0cnVjdHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QTk3NzRBNjIwNkI4MjhDMDA4RDAzRDAgLyogSlNXZWFrVmFsdWUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWFrVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QTk3NzRBNzIwNkI4MkM5MDA4RDAzRDAgLyogSlNXZWFrVmFsdWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWFrVmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc3ODEsOCArNzc3OCw2IEBACiAJCQkJQTdEODlDRUQxN0Ew
QjhDQzAwNzczQUQ4IC8qIERGR0xpdmVuZXNzQW5hbHlzaXNQaGFzZS5oICovLAogCQkJCUE3NjdC
NUIzMTdBMEI5NjUwMDYzRDk0MCAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5jcHAg
Ki8sCiAJCQkJQTc2N0I1QjQxN0EwQjk2NTAwNjNEOTQwIC8qIERGR0xvb3BQcmVIZWFkZXJDcmVh
dGlvblBoYXNlLmggKi8sCi0JCQkJNzlGOEZDMUMxQjlGRUQwRjAwQ0E2NkFCIC8qIERGR01heGlt
YWxGbHVzaEluc2VydGlvblBoYXNlLmNwcCAqLywKLQkJCQk3OUY4RkMxRDFCOUZFRDBGMDBDQTY2
QUIgLyogREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuaCAqLywKIAkJCQkwRjU4NzRFQjE5
NEZFQjEyMDBBQUIyQzEgLyogREZHTWF5RXhpdC5jcHAgKi8sCiAJCQkJMEY1ODc0RUMxOTRGRUIx
MjAwQUFCMkMxIC8qIERGR01heUV4aXQuaCAqLywKIAkJCQkwRjE3MjVGRTFCNDg3MTlBMDBBQzNB
NTUgLyogREZHTWluaWZpZWRHcmFwaC5jcHAgKi8sCkBAIC05MTY3LDcgKzkxNjIsNiBAQAogCQkJ
CTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0Y2hWYXJpYWJsZVByZXNlcnZh
dGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4OUNGQzE3QTBCOENDMDA3NzNBRDgg
LyogREZHTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzY3QjVC
NjE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTc5RjhGQzFGMUI5RkVEMEYwMENBNjZBQiAvKiBERkdNYXhpbWFsRmx1
c2hJbnNlcnRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODc0RUUxOTRGRUIxMjAw
QUFCMkMxIC8qIERGR01heUV4aXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzQ1MTUyMjgw
MUIwMENEODkxMCAvKiBERkdNaW5pZmllZEdyYXBoLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJF
ODkyRDE2RDAyQkFGMDA5RTRGRDIgLyogREZHTWluaWZpZWRJRC5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggMGMzNmRlMDNjZGZjM2ViMzRjMGMxMTg4NTQ4
NjkxYjBhMThjMGFhOS4uMjYyMTkzYjIzODUxMmY4ZTk1ZGVkMTRhYjI4OTBjNTFkYmM1ZTljMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApAQCAtMzY0LDcgKzM2NCw2IEBAIGRmZy9ERkdM
YXp5SlNWYWx1ZS5jcHAKIGRmZy9ERkdMYXp5Tm9kZS5jcHAKIGRmZy9ERkdMaXZlbmVzc0FuYWx5
c2lzUGhhc2UuY3BwCiBkZmcvREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuY3BwCi1kZmcv
REZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuY3BwCiBkZmcvREZHTWF5RXhpdC5jcHAKIGRm
Zy9ERkdNaW5pZmllZEdyYXBoLmNwcAogZGZnL0RGR01pbmlmaWVkTm9kZS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMTM3NDkx
OWJlOWUyMTM0NTZmOTI3ZjdjMzYwMmQ1N2JjMjZjZmQwZi4uMzJlZWY2YTlkZmNmOTkwMjNhNWEz
ODIyMGY5YzFiZTFjZTBhZDNmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTE4NjIsOCArMTg2Miw2IEBAIGJvb2wgQnl0ZUNvZGVQ
YXJzZXI6OmhhbmRsZVZhcmFyZ3NJbmxpbmluZyhOb2RlKiBjYWxsVGFyZ2V0Tm9kZSwgVmlydHVh
bFJlZ2lzdGVyCiAgICAgcmVnaXN0ZXJPZmZzZXQgLT0gQ2FsbEZyYW1lOjpoZWFkZXJTaXplSW5S
ZWdpc3RlcnM7CiAgICAgcmVnaXN0ZXJPZmZzZXQgPSAtV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9m
KHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIC1yZWdpc3Rlck9mZnNldCk7CiAKLSAgICBWZWN0
b3I8VmlydHVhbFJlZ2lzdGVyPiBzZXRBcmd1bWVudE1heWJlczsKLSAgICAKICAgICBhdXRvIGlu
c2VydENoZWNrcyA9IFsmXSAoQ29kZUJsb2NrKiBjb2RlQmxvY2spIHsKICAgICAgICAgZW1pdEZ1
bmN0aW9uQ2hlY2tzKGNhbGxWYXJpYW50LCBjYWxsVGFyZ2V0Tm9kZSwgdGhpc0FyZ3VtZW50KTsK
ICAgICAgICAgCkBAIC0xOTI4LDggKzE5MjYsNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVWYXJhcmdzSW5saW5pbmcoTm9kZSogY2FsbFRhcmdldE5vZGUsIFZpcnR1YWxSZWdpc3Rlcgog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBOb2RlKiBzZXRBcmd1bWVu
dCA9IGFkZFRvR3JhcGgobnVtU2V0QXJndW1lbnRzID49IG1hbmRhdG9yeU1pbmltdW0gPyBTZXRB
cmd1bWVudE1heWJlIDogU2V0QXJndW1lbnREZWZpbml0ZWx5LCBPcEluZm8odmFyaWFibGUpKTsK
LSAgICAgICAgICAgIGlmIChudW1TZXRBcmd1bWVudHMgPj0gbWFuZGF0b3J5TWluaW11bSAmJiBP
cHRpb25zOjp1c2VNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZSgpKQotICAgICAgICAgICAgICAg
IHNldEFyZ3VtZW50TWF5YmVzLmFwcGVuZCh2YXJpYWJsZS0+bG9jYWwoKSk7CiAgICAgICAgICAg
ICBtX2N1cnJlbnRCbG9jay0+dmFyaWFibGVzQXRUYWlsLnNldE9wZXJhbmQodmFyaWFibGUtPmxv
Y2FsKCksIHNldEFyZ3VtZW50KTsKICAgICAgICAgICAgICsrbnVtU2V0QXJndW1lbnRzOwogICAg
ICAgICB9CkBAIC0xOTQ0LDggKzE5NDAsNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVW
YXJhcmdzSW5saW5pbmcoTm9kZSogY2FsbFRhcmdldE5vZGUsIFZpcnR1YWxSZWdpc3RlcgogICAg
IC8vIGNhbGxpbmcgTG9hZFZhcmFyZ3MgdHdpY2UuCiAgICAgaW5saW5lQ2FsbChjYWxsVGFyZ2V0
Tm9kZSwgcmVzdWx0LCBjYWxsVmFyaWFudCwgcmVnaXN0ZXJPZmZzZXQsIG1heE51bUFyZ3VtZW50
cywga2luZCwgbnVsbHB0ciwgaW5zZXJ0Q2hlY2tzKTsKIAotICAgIGZvciAoVmlydHVhbFJlZ2lz
dGVyIHJlZyA6IHNldEFyZ3VtZW50TWF5YmVzKQotICAgICAgICBzZXREaXJlY3QocmVnLCBqc0Nv
bnN0YW50KGpzVW5kZWZpbmVkKCkpLCBJbW1lZGlhdGVOYWtlZFNldCk7CiAKICAgICBWRVJCT1NF
X0xPRygiU3VjY2Vzc2Z1bCBpbmxpbmluZyAodmFyYXJncywgbW9ub21vcnBoaWMpLlxuU3RhY2s6
ICIsIGN1cnJlbnRDb2RlT3JpZ2luKCksICJcbiIpOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25Q
aGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01heGltYWxGbHVzaEluc2Vy
dGlvblBoYXNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDA0ZThmZjhhNjZk
NDJkOGQzMTNkZGIxM2FlMjNjNTRlODIzOTJkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01heGltYWxG
bHVzaEluc2VydGlvblBoYXNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE2NSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZS5oIgotCi0j
aWYgRU5BQkxFKERGR19KSVQpCi0KLSNpbmNsdWRlICJERkdCYXNpY0Jsb2NrSW5saW5lcy5oIgot
I2luY2x1ZGUgIkRGR0dyYXBoLmgiCi0jaW5jbHVkZSAiREZHSW5zZXJ0aW9uU2V0LmgiCi0jaW5j
bHVkZSAiREZHUGhhc2UuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKLQotY2xhc3MgTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2Ug
OiBwdWJsaWMgUGhhc2UgewotcHVibGljOgotICAgIE1heGltYWxGbHVzaEluc2VydGlvblBoYXNl
KEdyYXBoJiBncmFwaCkKLSAgICAgICAgOiBQaGFzZShncmFwaCwgIm1heGltYWwgZmx1c2ggaW5z
ZXJ0aW9uIHBoYXNlIikKLSAgICB7Ci0gICAgfQotICAgIAotICAgIGJvb2wgcnVuKCkKLSAgICB7
Ci0gICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbnVsbHB0ciwgbV9ncmFwaC5tX2Zvcm0gPT0g
TG9hZFN0b3JlKTsKLQotICAgICAgICBJbnNlcnRpb25TZXQgaW5zZXJ0aW9uU2V0KG1fZ3JhcGgp
OwotICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9ncmFwaC5ibG9ja3NJbk5hdHVy
YWxPcmRlcigpKSB7Ci0gICAgICAgICAgICB0cmVhdFJlZ3VsYXJCbG9jayhibG9jaywgaW5zZXJ0
aW9uU2V0KTsKLSAgICAgICAgICAgIGluc2VydGlvblNldC5leGVjdXRlKGJsb2NrKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGZvciAoQmFzaWNCbG9jayogZW50cnlwb2ludCA6IG1fZ3JhcGgubV9y
b290cykgewotICAgICAgICAgICAgdHJlYXRSb290QmxvY2soZW50cnlwb2ludCwgaW5zZXJ0aW9u
U2V0KTsKLSAgICAgICAgICAgIGluc2VydGlvblNldC5leGVjdXRlKGVudHJ5cG9pbnQpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgdm9pZCB0cmVhdFJl
Z3VsYXJCbG9jayhCYXNpY0Jsb2NrKiBibG9jaywgSW5zZXJ0aW9uU2V0JiBpbnNlcnRpb25TZXQp
Ci0gICAgewotICAgICAgICBPcGVyYW5kczxWYXJpYWJsZUFjY2Vzc0RhdGEqPiBjdXJyZW50Qmxv
Y2tBY2Nlc3NEYXRhKGJsb2NrLT52YXJpYWJsZXNBdFRhaWwubnVtYmVyT2ZBcmd1bWVudHMoKSwg
YmxvY2stPnZhcmlhYmxlc0F0VGFpbC5udW1iZXJPZkxvY2FscygpLCBudWxscHRyKTsKLSAgICAg
ICAgLy8gSW5zZXJ0IGEgRmx1c2ggYmVmb3JlIGV2ZXJ5IFNldExvY2FsIHRvIHByb3Blcmx5IHBh
dHRlcm4gdGhlIGdyYXBoIHN1Y2ggdGhhdCAKLSAgICAgICAgLy8gYW55IHJhbmdlIGJldHdlZW4g
U2V0TG9jYWwgYW5kIEZsdXNoIGhhcyBhY2Nlc3MgdG8gdGhlIGxvY2FsIG9uIHRoZSBzdGFjay4K
LSAgICAgICAgewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5z
aXplKCk7IGkrKykgewotICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQoaSk7
Ci0gICAgICAgICAgICAgICAgYm9vbCBpc1ByaW1vcmRpYWxTZXRBcmd1bWVudCA9IGZhbHNlOwot
ICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFNldEFyZ3VtZW50RGVmaW5pdGVseSAm
JiBub2RlLT5sb2NhbCgpLmlzQXJndW1lbnQoKSkgewotICAgICAgICAgICAgICAgICAgICBhdXRv
IGl0ZXIgPSBtX2dyYXBoLm1fcm9vdFRvQXJndW1lbnRzLmZpbmQoYmxvY2spOwotICAgICAgICAg
ICAgICAgICAgICBpZiAoaXRlciAhPSBtX2dyYXBoLm1fcm9vdFRvQXJndW1lbnRzLmVuZCgpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgaXNQcmltb3JkaWFsU2V0QXJndW1lbnQgPSBub2RlID09
IGl0ZXItPnZhbHVlW25vZGUtPmxvY2FsKCkudG9Bcmd1bWVudCgpXTsKLSAgICAgICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBTZXRMb2NhbCB8fCAobm9k
ZS0+b3AoKSA9PSBTZXRBcmd1bWVudERlZmluaXRlbHkgJiYgIWlzUHJpbW9yZGlhbFNldEFyZ3Vt
ZW50KSB8fCBub2RlLT5vcCgpID09IFNldEFyZ3VtZW50TWF5YmUpIHsKLSAgICAgICAgICAgICAg
ICAgICAgVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQgPSBub2RlLT5sb2NhbCgpOwotICAgICAgICAg
ICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIGZsdXNoQWNjZXNzRGF0YSA9IGN1cnJlbnRC
bG9ja0FjY2Vzc0RhdGEub3BlcmFuZChvcGVyYW5kKTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KCFmbHVzaEFjY2Vzc0RhdGEpCi0gICAgICAgICAgICAgICAgICAgICAgICBmbHVzaEFjY2Vzc0Rh
dGEgPSBuZXdWYXJpYWJsZUFjY2Vzc0RhdGEob3BlcmFuZCk7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoaSwgU3BlY05vbmUsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgRmx1c2gsIG5vZGUtPm9yaWdpbiwgT3BJbmZvKGZsdXNoQWNjZXNzRGF0YSkpOwot
ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChub2RlLT5hY2Nlc3Nlc1N0
YWNrKG1fZ3JhcGgpKQotICAgICAgICAgICAgICAgICAgICBjdXJyZW50QmxvY2tBY2Nlc3NEYXRh
Lm9wZXJhbmQobm9kZS0+bG9jYWwoKSkgPSBub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIEZsdXNoIGV2ZXJ5dGhpbmcgYXQg
dGhlIGVuZCBvZiB0aGUgYmxvY2suCi0gICAgICAgIHsKLSAgICAgICAgICAgIE5vZGVPcmlnaW4g
b3JpZ2luID0gYmxvY2stPmF0KGJsb2NrLT5zaXplKCkgLSAxKS0+b3JpZ2luOwotICAgICAgICAg
ICAgYXV0byBpbnNlcnRGbHVzaEF0RW5kID0gWyZdIChWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCkg
ewotICAgICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogYWNjZXNzRGF0YSA9IGN1cnJl
bnRCbG9ja0FjY2Vzc0RhdGEub3BlcmFuZChvcGVyYW5kKTsKLSAgICAgICAgICAgICAgICBpZiAo
IWFjY2Vzc0RhdGEpCi0gICAgICAgICAgICAgICAgICAgIGFjY2Vzc0RhdGEgPSBuZXdWYXJpYWJs
ZUFjY2Vzc0RhdGEob3BlcmFuZCk7Ci0KLSAgICAgICAgICAgICAgICBjdXJyZW50QmxvY2tBY2Nl
c3NEYXRhLm9wZXJhbmQob3BlcmFuZCkgPSBhY2Nlc3NEYXRhOwotCi0gICAgICAgICAgICAgICAg
aW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoYmxvY2stPnNpemUoKSwgU3BlY05vbmUsIAotICAgICAg
ICAgICAgICAgICAgICBGbHVzaCwgb3JpZ2luLCBPcEluZm8oYWNjZXNzRGF0YSkpOwotICAgICAg
ICAgICAgfTsKLQotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT52
YXJpYWJsZXNBdFRhaWwubnVtYmVyT2ZMb2NhbHMoKTsgaSsrKQotICAgICAgICAgICAgICAgIGlu
c2VydEZsdXNoQXRFbmQodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkpOwotICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT52YXJpYWJsZXNBdFRhaWwubnVtYmVyT2ZB
cmd1bWVudHMoKTsgaSsrKQotICAgICAgICAgICAgICAgIGluc2VydEZsdXNoQXRFbmQodmlydHVh
bFJlZ2lzdGVyRm9yQXJndW1lbnQoaSkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdm9pZCB0
cmVhdFJvb3RCbG9jayhCYXNpY0Jsb2NrKiBibG9jaywgSW5zZXJ0aW9uU2V0JiBpbnNlcnRpb25T
ZXQpCi0gICAgewotICAgICAgICBPcGVyYW5kczxWYXJpYWJsZUFjY2Vzc0RhdGEqPiBpbml0aWFs
QWNjZXNzRGF0YShibG9jay0+dmFyaWFibGVzQXRUYWlsLm51bWJlck9mQXJndW1lbnRzKCksIGJs
b2NrLT52YXJpYWJsZXNBdFRhaWwubnVtYmVyT2ZMb2NhbHMoKSwgbnVsbHB0cik7Ci0gICAgICAg
IE9wZXJhbmRzPE5vZGUqPiBpbml0aWFsQWNjZXNzTm9kZXMoYmxvY2stPnZhcmlhYmxlc0F0VGFp
bC5udW1iZXJPZkFyZ3VtZW50cygpLCBibG9jay0+dmFyaWFibGVzQXRUYWlsLm51bWJlck9mTG9j
YWxzKCksIG51bGxwdHIpOwotICAgICAgICBmb3IgKGF1dG8qIG5vZGUgOiAqYmxvY2spIHsKLSAg
ICAgICAgICAgIGlmICghbm9kZS0+YWNjZXNzZXNTdGFjayhtX2dyYXBoKSkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyIG9wZXJhbmQgPSBu
b2RlLT5sb2NhbCgpOwotICAgICAgICAgICAgaWYgKGluaXRpYWxBY2Nlc3NEYXRhLm9wZXJhbmQo
b3BlcmFuZCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIERGR19B
U1NFUlQobV9ncmFwaCwgbm9kZSwgbm9kZS0+b3AoKSAhPSBTZXRMb2NhbCk7IC8vIFdlIHNob3Vs
ZCBoYXZlIGluc2VydGVkIGEgRmx1c2ggYmVmb3JlIHRoaXMhCi0gICAgICAgICAgICBpbml0aWFs
QWNjZXNzRGF0YS5vcGVyYW5kKG9wZXJhbmQpID0gbm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCk7
Ci0gICAgICAgICAgICBpbml0aWFsQWNjZXNzTm9kZXMub3BlcmFuZChvcGVyYW5kKSA9IG5vZGU7
Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBXZSB3YW50IGV2ZXJ5IEZsdXNoIHRvIGJlIGFibGUg
dG8gcmVhY2ggYmFja3dhcmRzIHRvCi0gICAgICAgIC8vIGEgU2V0TG9jYWwuIERvaW5nIHRoaXMg
aW4gdGhlIHJvb3QgYmxvY2sgYWNoaWV2ZXMgdGhpcyBnb2FsLgotICAgICAgICBOb2RlT3JpZ2lu
IG9yaWdpbiA9IGJsb2NrLT5hdCgwKS0+b3JpZ2luOwotICAgICAgICBOb2RlKiB1bmRlZmluZWQg
PSBpbnNlcnRpb25TZXQuaW5zZXJ0Q29uc3RhbnQoMCwgb3JpZ2luLCBqc1VuZGVmaW5lZCgpKTsK
LQotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnZhcmlhYmxlc0F0VGFp
bC5udW1iZXJPZkxvY2FscygpOyBpKyspIHsKLSAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciBv
cGVyYW5kID0gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSk7Ci0gICAgICAgICAgICBERkdfQVNT
RVJUKG1fZ3JhcGgsIG51bGxwdHIsIGluaXRpYWxBY2Nlc3NOb2Rlcy5vcGVyYW5kKG9wZXJhbmQp
LT5vcCgpID09IEZsdXNoKTsgLy8gV2Ugc2hvdWxkIGhhdmUgaW5zZXJ0ZWQgYSBGbHVzaCBiZWZv
cmUgYW55IFNldExvY2FsL1NldEFyZ3VtZW50RGVmaW5pdGVseS9TZXRBcmd1bWVudE1heWJlIGZv
ciB0aGUgbG9jYWwgdGhhdCB3ZSBhcmUgYW5hbHl6aW5nIG5vdy4KLSAgICAgICAgICAgIFZhcmlh
YmxlQWNjZXNzRGF0YSogYWNjZXNzRGF0YSA9IGluaXRpYWxBY2Nlc3NEYXRhLm9wZXJhbmQob3Bl
cmFuZCk7Ci0gICAgICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG51bGxwdHIsIGFjY2Vzc0Rh
dGEpOwotICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoMCwgU3BlY05vbmUsIAot
ICAgICAgICAgICAgICAgIFNldExvY2FsLCBvcmlnaW4sIE9wSW5mbyhhY2Nlc3NEYXRhKSwgRWRn
ZSh1bmRlZmluZWQpKTsKLSAgICAgICAgICAgIGFjY2Vzc0RhdGEtPm1lcmdlU2hvdWxkTmV2ZXJV
bmJveCh0cnVlKTsgLy8gV2UgZG9uJ3Qga25vdyBpZiB3ZSBjYW4gZXhpdCBoZXJlLgotICAgICAg
ICB9Ci0gICAgfQotCi0KLSAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIG5ld1ZhcmlhYmxlQWNjZXNz
RGF0YShWaXJ0dWFsUmVnaXN0ZXIgb3BlcmFuZCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghb3Bl
cmFuZC5pc0NvbnN0YW50KCkpOwotICAgICAgICAKLSAgICAgICAgbV9ncmFwaC5tX3ZhcmlhYmxl
QWNjZXNzRGF0YS5hcHBlbmQob3BlcmFuZCk7Ci0gICAgICAgIHJldHVybiAmbV9ncmFwaC5tX3Zh
cmlhYmxlQWNjZXNzRGF0YS5sYXN0KCk7Ci0gICAgfQotfTsKLQotYm9vbCBwZXJmb3JtTWF4aW1h
bEZsdXNoSW5zZXJ0aW9uKEdyYXBoJiBncmFwaCkKLXsKLSAgICByZXR1cm4gcnVuUGhhc2U8TWF4
aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2U+KGdyYXBoKTsKLX0KLQotfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkRGRwotCi0jZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR01heGltYWxGbHVzaEluc2VydGlvblBoYXNlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01heGltYWxGbHVzaEluc2VydGlvblBoYXNlLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmMzEwZTlmM2IyZDg0ZjVhMGJkMjkyMmNjNjkw
ZDQwMjc1NTJiZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFz
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShERkdf
SklUKQotCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7Ci0KLWNsYXNzIEdyYXBoOwot
Ci0vLyBUaGlzIHBoYXNlIGVuc3VyZXMgd2Uga2VlcCBhbGwgbG9jYWxzL2FyZ3VtZW50cyBmbHVz
aGVkLgotLy8gV2hhdCB0aGlzIG1lYW5zIGlzOiBhbnkgbm9kZSBpbmJldHdlZW4gYSBTZXRMb2Nh
bCBhbmQgYSBGbHVzaCBzaG91bGQKLS8vIGJlIGFibGUgdG8gb2JzZXJ2ZSB0aGF0IHBhcnRpY3Vs
YXIgbG9jYWwgb24gdGhlIHN0YWNrLiBUaGlzIHBoYXNlIHBhdHRlcm5zCi0vLyB0aGUgZ3JhcGgg
YnkgaW5zZXJ0aW5nIGEgRmx1c2ggYmVmb3JlIGVhY2ggU2V0TG9jYWwgc3VjaCB0aGF0IHRoZSBG
bHVzaCAKLS8vIHdlIGluc2VydGVkIGNhbiBkbyBhIGJhY2t3YXJkcyBzZWFyY2ggdGhyb3VnaCBh
bGwgcGF0aHMgaW4gdGhlIENGRyBhbmQgCi0vLyByZWFjaCBhIFNldExvY2FsLgotLy8gLi4uLgot
Ly8gU2V0TG9jYWwobG9jWCkKLS8vIDwKLS8vIHwKLS8vIC4uLiBXZSBlbnN1cmUgdGhhdCBsb2NY
IGlzIGF2YWlsYWJsZSBvbiB0aGUgc3RhY2sgdG8gYW55IG5vZGVzIGluIHRoaXMgcmVnaW9uIHRo
YXQgbWF5IGFzayBmb3IgbG9jWC4KLS8vIHwKLS8vID4KLS8vIEZsdXNoKGxvY1gpCi0vLyBTZXRM
b2NhbChsb2NYKQotCi1ib29sIHBlcmZvcm1NYXhpbWFsRmx1c2hJbnNlcnRpb24oR3JhcGgmKTsK
LQotfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwotCi0jZW5kaWYgLy8gRU5BQkxFKERGR19KSVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAppbmRleCBiNjk0OWFhMDM1YzEyZmE3
NDlkNTgwY2M3YzJhZWNjYThkOTJjMTY4Li41NTkyYjVhNjczY2Y5NTg5NDFiMzQ2OTc1NDliMTg1
NTUyMzI4MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKQEAgLTUxLDcg
KzUxLDYgQEAKICNpbmNsdWRlICJERkdMaXZlQ2F0Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNl
LmgiCiAjaW5jbHVkZSAiREZHTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmgiCiAjaW5jbHVkZSAiREZH
TG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCIKLSNpbmNsdWRlICJERkdNYXhpbWFsRmx1c2hJ
bnNlcnRpb25QaGFzZS5oIgogI2luY2x1ZGUgIkRGR01vdkhpbnRSZW1vdmFsUGhhc2UuaCIKICNp
bmNsdWRlICJERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmgiCiAjaW5jbHVkZSAiREZH
T1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuaCIKQEAgLTI4NSw5ICsyODQsNiBAQCBQbGFuOjpD
b21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyZWFkSW1wbCgpCiAKICAgICBSVU5fUEhB
U0UocGVyZm9ybUxpdmVDYXRjaFZhcmlhYmxlUHJlc2VydmF0aW9uUGhhc2UpOwogCi0gICAgaWYg
KE9wdGlvbnM6OnVzZU1heGltYWxGbHVzaEluc2VydGlvblBoYXNlKCkpCi0gICAgICAgIFJVTl9Q
SEFTRShwZXJmb3JtTWF4aW1hbEZsdXNoSW5zZXJ0aW9uKTsKLSAgICAKICAgICBSVU5fUEhBU0Uo
cGVyZm9ybUNQU1JldGhyZWFkaW5nKTsKICAgICBSVU5fUEhBU0UocGVyZm9ybVVuaWZpY2F0aW9u
KTsKICAgICBSVU5fUEhBU0UocGVyZm9ybVByZWRpY3Rpb25JbmplY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCAxYTZmOWI3ODgyOGZiMmFlM2Vi
NWVhZmQxYzRmNTBiMzcwZjJkZGMzLi4xZTBlNDBhN2JhZjBkNzRhMjlhNzZhYTBlOTUwZjBmMWFh
ZjdmZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcApAQCAt
NDcxLDExICs0NzEsNiBAQCBzdGF0aWMgdm9pZCByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKCkK
ICAgICAgICAgT3B0aW9uczo6bWF4aW11bUV2YWxDYWNoZWFibGVTb3VyY2VMZW5ndGgoKSA9IDE1
MDAwMDsKICAgICAgICAgT3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpID0gZmFsc2U7CiAgICAg
fQotICAgIGlmIChPcHRpb25zOjp1c2VNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZSgpKSB7Ci0g
ICAgICAgIE9wdGlvbnM6OnVzZU9TUkVudHJ5VG9ERkcoKSA9IGZhbHNlOwotICAgICAgICBPcHRp
b25zOjp1c2VPU1JFbnRyeVRvRlRMKCkgPSBmYWxzZTsKLSAgICB9Ci0gICAgCiAjaWYgRU5BQkxF
KFNFUEFSQVRFRF9XWF9IRUFQKQogICAgIC8vIE92ZXJyaWRlIGdsb2JhbGx5IGZvciBub3cuIExv
bmdlciB0ZXJtIHdlJ2xsIGp1c3QgbWFrZSB0aGUgZGVmYXVsdAogICAgIC8vIGJlIHRvIGhhdmUg
dGhpcyBvcHRpb24gZW5hYmxlZCwgYW5kIGhhdmUgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qgc3VwcG9y
dApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IDEyODhiYTNmNzI2
ZTRjNGE5ZTk5Y2Y4ZjFkNDUyMWJmZWQwZGZkZWIuLjQ0ZmJjMzBjMGQxOWFmYjE4NDdjMjA3OTUx
OThkNTcwMWM5MTBkZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgK
QEAgLTMxMCw4ICszMTAsNiBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVh
bWluZ0FwaSA9IGZhbHNlOwogICAgIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtVmFyYXJnc0Zv
cklubGluaW5nLCAxMDAsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIFwKLSAgICB2KGJvb2wsIHVz
ZU1heGltYWxGbHVzaEluc2VydGlvblBoYXNlLCBmYWxzZSwgTm9ybWFsLCAiU2V0dGluZyB0byB0
cnVlIGFsbG93cyB0aGUgREZHJ3MgTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UgdG8gcnVuLiIp
IFwKLSAgICBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUJpbmFyeVN0cmluZ1N3aXRjaENhc2VM
ZW5ndGgsIDUwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtQmlu
YXJ5U3RyaW5nU3dpdGNoVG90YWxMZW5ndGgsIDIwMDAsIE5vcm1hbCwgbnVsbHB0cikgXAogICAg
IFwKQEAgLTU0NSw3ICs1NDMsNiBAQCBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKICAgICB2KGVu
YWJsZUFyY2hpdGVjdHVyZVNwZWNpZmljT3B0aW1pemF0aW9ucywgdXNlQXJjaGl0ZWN0dXJlU3Bl
Y2lmaWNPcHRpbWl6YXRpb25zLCBTYW1lT3B0aW9uKSBcCiAgICAgdihlbmFibGVQb2x5dmFyaWFu
dENhbGxJbmxpbmluZywgdXNlUG9seXZhcmlhbnRDYWxsSW5saW5pbmcsIFNhbWVPcHRpb24pIFwK
ICAgICB2KGVuYWJsZVBvbHl2YXJpYW50QnlJZElubGluaW5nLCB1c2VQb2x5dmFyaWFudEJ5SWRJ
bmxpbmluZywgU2FtZU9wdGlvbikgXAotICAgIHYoZW5hYmxlTWF4aW1hbEZsdXNoSW5zZXJ0aW9u
UGhhc2UsIHVzZU1heGltYWxGbHVzaEluc2VydGlvblBoYXNlLCBTYW1lT3B0aW9uKSBcCiAgICAg
dihvYmplY3RzQXJlSW1tb3J0YWwsIHVzZUltbW9ydGFsT2JqZWN0cywgU2FtZU9wdGlvbikgXAog
ICAgIHYoc2hvd09iamVjdFN0YXRpc3RpY3MsIGR1bXBPYmplY3RTdGF0aXN0aWNzLCBTYW1lT3B0
aW9uKSBcCiAgICAgdihkaXNhYmxlR0MsIHVzZUdDLCBJbnZlcnRlZE9wdGlvbikgXApkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAxYTdkOTVi
YTE5N2EyMzc3NGY3M2NlY2RkMDY2YTMxZTU2MGJmNTllLi44YzA5MjFmYjcxNTI3ODJiY2FjYTNl
NzFmMjIxOTJlNDM4MTYyMzhiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9K
U1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTA4LTIzICBUYWRldSBaYWdh
bGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBNYXhpbWFsRmx1c2hJ
bnNlcnRpb25QaGFzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAxMDM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAg
ICAgUmVtb3ZlIGFsbCB0aGUgcmVmZXJlbmNlcyB0byBtYXhpbWFsIGZsdXNoCisKKyAgICAgICAg
KiBzdHJlc3MvYXJpdGgtY2VpbC1vbi12YXJpb3VzLXR5cGVzLmpzOgorICAgICAgICAoY2hlY2tD
b21waWxlQ291bnRGb3JVc2VsZXNzTmVnYXRpdmVaZXJvKToKKyAgICAgICAgKiBzdHJlc3MvYXJp
dGgtZmxvb3Itb24tdmFyaW91cy10eXBlcy5qczoKKyAgICAgICAgKGNoZWNrQ29tcGlsZUNvdW50
Rm9yVXNlbGVzc05lZ2F0aXZlWmVybyk6CisgICAgICAgICogc3RyZXNzL2FyaXRoLW5lZ2F0ZS1v
bi12YXJpb3VzLXR5cGVzLmpzOgorICAgICAgICAoY2hlY2tDb21waWxlQ291bnRGb3JVc2VsZXNz
TmVnYXRpdmVaZXJvKToKKyAgICAgICAgKiBzdHJlc3MvYXJpdGgtcm91bmQtb24tdmFyaW91cy10
eXBlcy5qczoKKyAgICAgICAgKGNoZWNrQ29tcGlsZUNvdW50Rm9yVXNlbGVzc05lZ2F0aXZlWmVy
byk6CisgICAgICAgICogc3RyZXNzL2FyaXRoLXRydW5jLW9uLXZhcmlvdXMtdHlwZXMuanM6Cisg
ICAgICAgIChjaGVja0NvbXBpbGVDb3VudEZvclVzZWxlc3NOZWdhdGl2ZVplcm8pOgorICAgICAg
ICAqIHN0cmVzcy9kZmctY29tcGFyZS1lcS12aWEtbm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNv
bXBhcmVOdWxsT3JVbmRlZmluZWQuanM6CisgICAgICAgICogc3RyZXNzL2hhcy1pbmRleGVkLXBy
b3BlcnR5LXNob3VsZC1hY2NlcHQtbm9uLWludDMyLmpzOgorICAgICAgICAqIHN0cmVzcy9oYXMt
aW5kZXhlZC1wcm9wZXJ0eS13aXRoLXdvcnNlbmluZy1hcnJheS1tb2RlLmpzOgorICAgICAgICAq
IHN0cmVzcy9rbm93bi1pbnQzMi1jYW50LWJlLXVzZWQtYWNyb3NzLWJ5dGVjb2RlLWJvdW5kYXJ5
LmpzOgorICAgICAgICAqIHN0cmVzcy9yZWFkLWRlYWQtYnl0ZWNvZGUtbG9jYWxzLWluLW11c3Qt
aGFuZGxlLXZhbHVlczEuanM6CisgICAgICAgICogc3RyZXNzL3JlYWQtZGVhZC1ieXRlY29kZS1s
b2NhbHMtaW4tbXVzdC1oYW5kbGUtdmFsdWVzMi5qczoKKyAgICAgICAgKiBzdHJlc3MvcmVzdC1w
YXJhbWV0ZXItbWFueS1hcmd1bWVudHMuanM6CisgICAgICAgICogc3RyZXNzL3NldC1hcmd1bWVu
dC1tYXliZS1tYXhpbWFsLWZsdXNoLXNob3VsZC1ub3QtZXh0ZW5kLWxpdmVuZXNzLTIuanM6Cisg
ICAgICAgICogc3RyZXNzL3NldC1hcmd1bWVudC1tYXliZS1tYXhpbWFsLWZsdXNoLXNob3VsZC1u
b3QtZXh0ZW5kLWxpdmVuZXNzLmpzOgorICAgICAgICAqIHN0cmVzcy90by1pbmRleC1zdHJpbmct
c2hvdWxkLW5vdC1hc3N1bWUtaW5jb21pbmctdmFsdWUtaXMtdWludDMyLmpzOgorCiAyMDE5LTA4
LTIxICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBK
U1Rlc3RzL3N0cmVzcy9vcHRpb25hbC1jaGFpbmluZyBzaG91bGQgbm90IGNhbGwgc2hvdWxkVGhy
b3dUeXBlRXJyb3IgaW4gYSBsb29wCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hcml0aC1j
ZWlsLW9uLXZhcmlvdXMtdHlwZXMuanMgYi9KU1Rlc3RzL3N0cmVzcy9hcml0aC1jZWlsLW9uLXZh
cmlvdXMtdHlwZXMuanMKaW5kZXggMjljMmU0YTY4MjY1M2FlYjJjMTI4ZTIwYTljMGY1Y2NlYTNi
NzgxMS4uNmUxZmYxN2M3YjI3ZjQ5YmY2YTRiNmY4MDkxMTkwYmY3NGMyOTE3YSAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvYXJpdGgtY2VpbC1vbi12YXJpb3VzLXR5cGVzLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2FyaXRoLWNlaWwtb24tdmFyaW91cy10eXBlcy5qcwpAQCAtMTQwLDExICsx
NDAsNiBAQCB0ZXN0U2luZ2xlVHlwZUNhbGwoKTsKIAogZnVuY3Rpb24gY2hlY2tDb21waWxlQ291
bnRGb3JVc2VsZXNzTmVnYXRpdmVaZXJvKHRlc3RGdW5jdGlvbikKIHsKLSAgICBpZiAoanNjT3B0
aW9ucygpLnVzZU1heGltYWxGbHVzaEluc2VydGlvblBoYXNlKSB7Ci0gICAgICAgIC8vIElmIHdl
IGZvcmNlZCBhIGZsdXNoIGFmdGVyIHRoZSBvcGVyYXRpb24sIHRoZSBuZWdhdGl2ZSB6ZXJvIGJl
Y29tZXMKLSAgICAgICAgLy8gb2JzZXJ2YWJsZSBhbmQgd2UgbWF5IGJlIG92ZXJseSBvcHRpbWlz
dGljLgotICAgICAgICByZXR1cm4gbnVtYmVyT2ZERkdDb21waWxlcyh0ZXN0RnVuY3Rpb24pIDw9
IDI7Ci0gICAgfQogICAgIHJldHVybiBudW1iZXJPZkRGR0NvbXBpbGVzKHRlc3RGdW5jdGlvbikg
PD0gMTsKIH0KIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJpdGgtZmxvb3Itb24tdmFy
aW91cy10eXBlcy5qcyBiL0pTVGVzdHMvc3RyZXNzL2FyaXRoLWZsb29yLW9uLXZhcmlvdXMtdHlw
ZXMuanMKaW5kZXggZmY3NDBjYzM3Nzk1ZWY1NDk3Y2RkNGYzOWNkNzFkOTUzNGZkMjI5MC4uMGZk
MzRmMDUwMmE3N2ZmMjk0ZjFjMjgyOGRlZWZhNWRmYmQ3MzVmMCAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3MvYXJpdGgtZmxvb3Itb24tdmFyaW91cy10eXBlcy5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9hcml0aC1mbG9vci1vbi12YXJpb3VzLXR5cGVzLmpzCkBAIC0xNDAsMTEgKzE0MCw2IEBA
IHRlc3RTaW5nbGVUeXBlQ2FsbCgpOwogCiBmdW5jdGlvbiBjaGVja0NvbXBpbGVDb3VudEZvclVz
ZWxlc3NOZWdhdGl2ZVplcm8odGVzdEZ1bmN0aW9uKQogewotICAgIGlmIChqc2NPcHRpb25zKCku
dXNlTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UpIHsKLSAgICAgICAgLy8gSWYgd2UgZm9yY2Vk
IGEgZmx1c2ggYWZ0ZXIgdGhlIG9wZXJhdGlvbiwgdGhlIG5lZ2F0aXZlIHplcm8gYmVjb21lcwot
ICAgICAgICAvLyBvYnNlcnZhYmxlIGFuZCB3ZSBtYXkgYmUgb3Zlcmx5IG9wdGltaXN0aWMuCi0g
ICAgICAgIHJldHVybiBudW1iZXJPZkRGR0NvbXBpbGVzKHRlc3RGdW5jdGlvbikgPD0gMjsKLSAg
ICB9CiAgICAgcmV0dXJuIG51bWJlck9mREZHQ29tcGlsZXModGVzdEZ1bmN0aW9uKSA8PSAxOwog
fQogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hcml0aC1uZWdhdGUtb24tdmFyaW91cy10
eXBlcy5qcyBiL0pTVGVzdHMvc3RyZXNzL2FyaXRoLW5lZ2F0ZS1vbi12YXJpb3VzLXR5cGVzLmpz
CmluZGV4IDdkM2YxOTIwOWZmZWQ0ZGE3MDFiYmY5YzYwYjE3OTk3OTI5ZmExZDMuLjYzOTA1ODc5
NTU5ZGE5MjM2YTA4OGZiMzJhYTI1OTdjMjNmYTE4NjQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL2FyaXRoLW5lZ2F0ZS1vbi12YXJpb3VzLXR5cGVzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2FyaXRoLW5lZ2F0ZS1vbi12YXJpb3VzLXR5cGVzLmpzCkBAIC0xMjAsMTEgKzEyMCw2IEBAIHRl
c3RTaW5nbGVUeXBlQ2FsbCgpOwogCiBmdW5jdGlvbiBjaGVja0NvbXBpbGVDb3VudEZvclVzZWxl
c3NOZWdhdGl2ZVplcm8odGVzdEZ1bmN0aW9uKQogewotICAgIGlmIChqc2NPcHRpb25zKCkudXNl
TWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UpIHsKLSAgICAgICAgLy8gSWYgd2UgZm9yY2VkIGEg
Zmx1c2ggYWZ0ZXIgdGhlIG9wZXJhdGlvbiwgdGhlIG5lZ2F0aXZlIHplcm8gYmVjb21lcwotICAg
ICAgICAvLyBvYnNlcnZhYmxlIGFuZCB3ZSBtYXkgYmUgb3Zlcmx5IG9wdGltaXN0aWMuCi0gICAg
ICAgIHJldHVybiBudW1iZXJPZkRGR0NvbXBpbGVzKHRlc3RGdW5jdGlvbikgPD0gMjsKLSAgICB9
CiAgICAgcmV0dXJuIG51bWJlck9mREZHQ29tcGlsZXModGVzdEZ1bmN0aW9uKSA8PSAxOwogfQog
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hcml0aC1yb3VuZC1vbi12YXJpb3VzLXR5cGVz
LmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJpdGgtcm91bmQtb24tdmFyaW91cy10eXBlcy5qcwppbmRl
eCBlYjg5MzM5M2UxYWMzZjVhNTAwNWY0ZDgyZWM0ZjEwNjI0Y2E5OTFkLi43ZTQ5M2EzY2JkNGM0
YzI4NzVlN2NkYzY1MWExZjYyODIzYzEyOGE5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9h
cml0aC1yb3VuZC1vbi12YXJpb3VzLXR5cGVzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2FyaXRo
LXJvdW5kLW9uLXZhcmlvdXMtdHlwZXMuanMKQEAgLTE0MCwxMSArMTQwLDYgQEAgdGVzdFNpbmds
ZVR5cGVDYWxsKCk7CiAKIGZ1bmN0aW9uIGNoZWNrQ29tcGlsZUNvdW50Rm9yVXNlbGVzc05lZ2F0
aXZlWmVybyh0ZXN0RnVuY3Rpb24pCiB7Ci0gICAgaWYgKGpzY09wdGlvbnMoKS51c2VNYXhpbWFs
Rmx1c2hJbnNlcnRpb25QaGFzZSkgewotICAgICAgICAvLyBJZiB3ZSBmb3JjZWQgYSBmbHVzaCBh
ZnRlciB0aGUgb3BlcmF0aW9uLCB0aGUgbmVnYXRpdmUgemVybyBiZWNvbWVzCi0gICAgICAgIC8v
IG9ic2VydmFibGUgYW5kIHdlIG1heSBiZSBvdmVybHkgb3B0aW1pc3RpYy4KLSAgICAgICAgcmV0
dXJuIG51bWJlck9mREZHQ29tcGlsZXModGVzdEZ1bmN0aW9uKSA8PSAyOwotICAgIH0KICAgICBy
ZXR1cm4gbnVtYmVyT2ZERkdDb21waWxlcyh0ZXN0RnVuY3Rpb24pIDw9IDE7CiB9CiAKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FyaXRoLXRydW5jLW9uLXZhcmlvdXMtdHlwZXMuanMgYi9K
U1Rlc3RzL3N0cmVzcy9hcml0aC10cnVuYy1vbi12YXJpb3VzLXR5cGVzLmpzCmluZGV4IDg0Njk4
NDZmZjkyNmViZThmZjU1YjQ2ODY1YWMyNjk4MDg1MTg0MWYuLjA3NTE1NWNlZmY4MzQ5NDk4ODUx
NjI0YjI4OWUzZWU5YmNhN2U5ZGYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2FyaXRoLXRy
dW5jLW9uLXZhcmlvdXMtdHlwZXMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXJpdGgtdHJ1bmMt
b24tdmFyaW91cy10eXBlcy5qcwpAQCAtMTQwLDExICsxNDAsNiBAQCB0ZXN0U2luZ2xlVHlwZUNh
bGwoKTsKIAogZnVuY3Rpb24gY2hlY2tDb21waWxlQ291bnRGb3JVc2VsZXNzTmVnYXRpdmVaZXJv
KHRlc3RGdW5jdGlvbikKIHsKLSAgICBpZiAoanNjT3B0aW9ucygpLnVzZU1heGltYWxGbHVzaElu
c2VydGlvblBoYXNlKSB7Ci0gICAgICAgIC8vIElmIHdlIGZvcmNlZCBhIGZsdXNoIGFmdGVyIHRo
ZSBvcGVyYXRpb24sIHRoZSBuZWdhdGl2ZSB6ZXJvIGJlY29tZXMKLSAgICAgICAgLy8gb2JzZXJ2
YWJsZSBhbmQgd2UgbWF5IGJlIG92ZXJseSBvcHRpbWlzdGljLgotICAgICAgICByZXR1cm4gbnVt
YmVyT2ZERkdDb21waWxlcyh0ZXN0RnVuY3Rpb24pIDw9IDI7Ci0gICAgfQogICAgIHJldHVybiBu
dW1iZXJPZkRGR0NvbXBpbGVzKHRlc3RGdW5jdGlvbikgPD0gMTsKIH0KIApkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvZGZnLWNvbXBhcmUtZXEtdmlhLW5vblNwZWN1bGF0aXZlTm9uUGVlcGhv
bGVDb21wYXJlTnVsbE9yVW5kZWZpbmVkLmpzIGIvSlNUZXN0cy9zdHJlc3MvZGZnLWNvbXBhcmUt
ZXEtdmlhLW5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlTnVsbE9yVW5kZWZpbmVkLmpz
CmluZGV4IDYxZmZhNTVmYzI5OWI2YTIxZWJiMWIyMTU0NjkwOGM0NWU0NjRjZWYuLmQyMWIzN2U0
OWUxN2M0OWYyZjE1YTNjODJkZDQzMmZkYTdmN2Y2MGIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL2RmZy1jb21wYXJlLWVxLXZpYS1ub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZU51
bGxPclVuZGVmaW5lZC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9kZmctY29tcGFyZS1lcS12aWEt
bm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmVOdWxsT3JVbmRlZmluZWQuanMKQEAgLTEs
NCArMSw0IEBACi0vL0AgcnVuRGVmYXVsdCgiLS1jb2xsZWN0Q29udGludW91c2x5PXRydWUiLCAi
LS1jb2xsZWN0Q29udGludW91c2x5UGVyaW9kTVM9MC4xNSIsICItLXVzZU1heGltYWxGbHVzaElu
c2VydGlvblBoYXNlPXRydWUiLCAiLS11c2VMTEludD1mYWxzZSIsICItLXVzZUZUTEpJVD1mYWxz
ZSIsICItLWppdFBvbGljeVNjYWxlPTAiKQorLy9AIHJ1bkRlZmF1bHQoIi0tY29sbGVjdENvbnRp
bnVvdXNseT10cnVlIiwgIi0tY29sbGVjdENvbnRpbnVvdXNseVBlcmlvZE1TPTAuMTUiLCAiLS11
c2VMTEludD1mYWxzZSIsICItLXVzZUZUTEpJVD1mYWxzZSIsICItLWppdFBvbGljeVNjYWxlPTAi
KQogCiAvLyBUaGlzIHRlc3QgZXhlcmNpc2VzIERGRzo6U3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1
bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlTnVsbE9yVW5kZWZpbmVkKCkuCiAKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2hhcy1pbmRleGVkLXByb3BlcnR5LXNob3VsZC1hY2NlcHQtbm9uLWlu
dDMyLmpzIGIvSlNUZXN0cy9zdHJlc3MvaGFzLWluZGV4ZWQtcHJvcGVydHktc2hvdWxkLWFjY2Vw
dC1ub24taW50MzIuanMKaW5kZXggNWU1NDg2YjJkMTBlNDJlZmVlNGNiZDM0ZjkyNTM0M2U0Mzcx
ZjZhNi4uMTgxY2E5Yzc0ZWEwMWRiYjgyMzRhY2ZiNzJlODg2MTU2NjYzZjJkOCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvaGFzLWluZGV4ZWQtcHJvcGVydHktc2hvdWxkLWFjY2VwdC1ub24t
aW50MzIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaGFzLWluZGV4ZWQtcHJvcGVydHktc2hvdWxk
LWFjY2VwdC1ub24taW50MzIuanMKQEAgLTEsNCArMSw0IEBACi0vL0AgcnVuRGVmYXVsdCgiLS11
c2VSYW5kb21pemluZ0Z1enplckFnZW50PTEiLCAiLS1qaXRQb2xpY3lTY2FsZT0wIiwgIi0tdXNl
TWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2U9MSIsICItLXVzZUNvbmN1cnJlbnRKSVQ9MCIpCisv
L0AgcnVuRGVmYXVsdCgiLS11c2VSYW5kb21pemluZ0Z1enplckFnZW50PTEiLCAiLS1qaXRQb2xp
Y3lTY2FsZT0wIiwgIi0tdXNlQ29uY3VycmVudEpJVD0wIikKIGZ1bmN0aW9uIGZvbyhvYmopIHsK
ICAgZm9yICh2YXIgeCBpbiBvYmopIHsKICAgICBpZiAoMCA+IDApIHsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2hhcy1pbmRleGVkLXByb3BlcnR5LXdpdGgtd29yc2VuaW5nLWFycmF5LW1v
ZGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9oYXMtaW5kZXhlZC1wcm9wZXJ0eS13aXRoLXdvcnNlbmlu
Zy1hcnJheS1tb2RlLmpzCmluZGV4IGY5NDI0MTBhMzU0ODhjODZlYzMyMzhmZGY4MTZjM2QxNGY4
MWRjNzIuLmNmZjM1ODU4OTRlMTJmZjI4ZWRhZWJlYThiYzk5NWYyYTU1NmNjMmUgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL2hhcy1pbmRleGVkLXByb3BlcnR5LXdpdGgtd29yc2VuaW5nLWFy
cmF5LW1vZGUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaGFzLWluZGV4ZWQtcHJvcGVydHktd2l0
aC13b3JzZW5pbmctYXJyYXktbW9kZS5qcwpAQCAtMSw0ICsxLDQgQEAKLS8vQCByZXF1aXJlT3B0
aW9ucygiLS13YXRjaGRvZz0xMDAwIiwgIi0td2F0Y2hkb2ctZXhjZXB0aW9uLW9rIiwgIi0tdXNl
TWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2U9MSIpCisvL0AgcmVxdWlyZU9wdGlvbnMoIi0td2F0
Y2hkb2c9MTAwMCIsICItLXdhdGNoZG9nLWV4Y2VwdGlvbi1vayIpCiAvLyBUaGlzIHRlc3Qgb25s
eSBzZWVtcyB0byByZXByb2R1Y2UgdGhlIGlzc3VlIHdoZW4gaXQgcnVucyBpbiBhbiBpbmZpbml0
ZSBsb29wLiBTbyB3ZSB1c2UgdGhlIHdhdGNoZG9nIHRvIHRpbWUgaXQgb3V0LgogZm9yIChsZXQg
eCBpbiBbMF0pIHsKICAgYnJlYWsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2tub3duLWlu
dDMyLWNhbnQtYmUtdXNlZC1hY3Jvc3MtYnl0ZWNvZGUtYm91bmRhcnkuanMgYi9KU1Rlc3RzL3N0
cmVzcy9rbm93bi1pbnQzMi1jYW50LWJlLXVzZWQtYWNyb3NzLWJ5dGVjb2RlLWJvdW5kYXJ5Lmpz
CmluZGV4IGZjMGM0YWI3N2M3YzY0M2E0M2FmMjg4ZmM3ODM2YWE2Y2NhZjc1ZDUuLmRkODYwZWYy
Y2Q3MDBlMDcwYmViMjc0MjhhYWE0NjMyMGJiYWZiNTggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL2tub3duLWludDMyLWNhbnQtYmUtdXNlZC1hY3Jvc3MtYnl0ZWNvZGUtYm91bmRhcnkuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3Mva25vd24taW50MzItY2FudC1iZS11c2VkLWFjcm9zcy1ieXRl
Y29kZS1ib3VuZGFyeS5qcwpAQCAtMSw0ICsxLDQgQEAKLS8vQCBydW5EZWZhdWx0KCItLXVzZUNv
bmN1cnJlbnRKSVQ9MCIsICItLXVzZU1heGltYWxGbHVzaEluc2VydGlvblBoYXNlPTEiKQorLy9A
IHJ1bkRlZmF1bHQoIi0tdXNlQ29uY3VycmVudEpJVD0wIikKIAogZnVuY3Rpb24gZm9vKCkgewog
ICAgIHZhciB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEs
IHgxMiwgeDEzOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVhZC1kZWFkLWJ5dGVjb2Rl
LWxvY2Fscy1pbi1tdXN0LWhhbmRsZS12YWx1ZXMxLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVhZC1k
ZWFkLWJ5dGVjb2RlLWxvY2Fscy1pbi1tdXN0LWhhbmRsZS12YWx1ZXMxLmpzCmluZGV4IDllMmFl
Mzg2ZGE1ZGQxZTY2ZWMwMWU5MWQ1NDgzODM0ZmM3M2ZlZTcuLjQzOWJmYWNkNDc1MjZiY2Y5NWY1
NmI4MDEyMDc2MzU4Y2U3ZmJhZTkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3JlYWQtZGVh
ZC1ieXRlY29kZS1sb2NhbHMtaW4tbXVzdC1oYW5kbGUtdmFsdWVzMS5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9yZWFkLWRlYWQtYnl0ZWNvZGUtbG9jYWxzLWluLW11c3QtaGFuZGxlLXZhbHVlczEu
anMKQEAgLTEsNCArMSw0IEBACi0vL0AgcnVuRGVmYXVsdCgiLS11c2VNYXhpbWFsRmx1c2hJbnNl
cnRpb25QaGFzZT0xIiwgIi0tdXNlQ29uY3VycmVudEpJVD0wIikKKy8vQCBydW5EZWZhdWx0KCIt
LXVzZUNvbmN1cnJlbnRKSVQ9MCIpCiBmdW5jdGlvbiBiYXIoeCkgewogICBpZiAoeCkgewogICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlYWQtZGVhZC1ieXRlY29kZS1s
b2NhbHMtaW4tbXVzdC1oYW5kbGUtdmFsdWVzMi5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlYWQtZGVh
ZC1ieXRlY29kZS1sb2NhbHMtaW4tbXVzdC1oYW5kbGUtdmFsdWVzMi5qcwppbmRleCBmZWIzY2Zh
MTU3ZGFlYjU3MGM4YTE2NjM4ZTY1MjhkMjc3NjM4ZWMxLi4wZWExYmQ0ZTUyNGM5NDAxZjJkZGU5
ZDA2YjIwYjY0ZmNjMDRjZGI1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZWFkLWRlYWQt
Ynl0ZWNvZGUtbG9jYWxzLWluLW11c3QtaGFuZGxlLXZhbHVlczIuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3MvcmVhZC1kZWFkLWJ5dGVjb2RlLWxvY2Fscy1pbi1tdXN0LWhhbmRsZS12YWx1ZXMyLmpz
CkBAIC0xLDQgKzEsNCBAQAotLy9AIHJ1bkRlZmF1bHQoIi0tdXNlTWF4aW1hbEZsdXNoSW5zZXJ0
aW9uUGhhc2U9MSIsICItLXVzZUNvbmN1cnJlbnRKSVQ9MCIpCisvL0AgcnVuRGVmYXVsdCgiLS11
c2VDb25jdXJyZW50SklUPTAiKQogZnVuY3Rpb24gYmFyKGMpIHsKICAgICBpZiAoYyA+IDEpIHsK
ICAgICAgICAgYmFyKHBhcnNlSW50KGMgKiAyKSkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3Jlc3QtcGFyYW1ldGVyLW1hbnktYXJndW1lbnRzLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVzdC1w
YXJhbWV0ZXItbWFueS1hcmd1bWVudHMuanMKaW5kZXggMTZhMWYyODgzMTRlNTU3ZmE0MDY5OTc3
ZTI0OTY0MjY1ZDNjNmIyYy4uNzZhMDE3MzE0ZDk2MDg4MWE1MjM1NmMxMWUzZjgzMDlkY2MzMGY3
ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVzdC1wYXJhbWV0ZXItbWFueS1hcmd1bWVu
dHMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVzdC1wYXJhbWV0ZXItbWFueS1hcmd1bWVudHMu
anMKQEAgLTEsNSArMSw0IEBACiAvL0Agc2tpcCBpZiAkYXJjaGl0ZWN0dXJlID09ICJ4ODYiCi0v
L0AgaWYgJGFyY2hpdGVjdHVyZSA9PSAieDg2IiB0aGVuIGRlZmF1bHRTcG90Q2hlY2tOb01heGlt
YWxGbHVzaCBlbHNlIGRlZmF1bHRSdW4gZW5kCiAKIGZ1bmN0aW9uIGFzc2VydChiKSB7CiAgICAg
aWYgKCFiKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2V0LWFyZ3VtZW50LW1heWJlLW1h
eGltYWwtZmx1c2gtc2hvdWxkLW5vdC1leHRlbmQtbGl2ZW5lc3MtMi5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL3NldC1hcmd1bWVudC1tYXliZS1tYXhpbWFsLWZsdXNoLXNob3VsZC1ub3QtZXh0ZW5kLWxp
dmVuZXNzLTIuanMKaW5kZXggOWY4YTliODUxMzc2MjlmZDYwZDNhODRlY2M2OTMyNjg5NzExMjcz
MS4uNDJmMDNlM2EzNWUzZGMxZDI2YmYwODkxMGY4OTA0YjUzZmMzZjQzYSAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3Mvc2V0LWFyZ3VtZW50LW1heWJlLW1heGltYWwtZmx1c2gtc2hvdWxkLW5v
dC1leHRlbmQtbGl2ZW5lc3MtMi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zZXQtYXJndW1lbnQt
bWF5YmUtbWF4aW1hbC1mbHVzaC1zaG91bGQtbm90LWV4dGVuZC1saXZlbmVzcy0yLmpzCkBAIC0x
LDQgKzEsNCBAQAotLy9AIHJ1bkRlZmF1bHQoIi0tdXNlTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhh
c2U9MSIsICItLWppdFBvbGljeVNjYWxlPTAiLCAiLS11c2VDb25jdXJyZW50SklUPTAiKQorLy9A
IHJ1bkRlZmF1bHQoIi0taml0UG9saWN5U2NhbGU9MCIsICItLXVzZUNvbmN1cnJlbnRKSVQ9MCIp
CiAKIGZ1bmN0aW9uIGYwKCkgewogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2V0LWFy
Z3VtZW50LW1heWJlLW1heGltYWwtZmx1c2gtc2hvdWxkLW5vdC1leHRlbmQtbGl2ZW5lc3MuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9zZXQtYXJndW1lbnQtbWF5YmUtbWF4aW1hbC1mbHVzaC1zaG91bGQt
bm90LWV4dGVuZC1saXZlbmVzcy5qcwppbmRleCBkODk3YjI3ODJmYWMxNzcxMzcyOGRiNDllMTM1
MjFlNTUyYzBhMjAzLi5iMGE3NTFjZjY2ZGI4OTNkYWRkYmFiMmQ5Zjk2NDZlYWEzZGM4NWRmIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zZXQtYXJndW1lbnQtbWF5YmUtbWF4aW1hbC1mbHVz
aC1zaG91bGQtbm90LWV4dGVuZC1saXZlbmVzcy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zZXQt
YXJndW1lbnQtbWF5YmUtbWF4aW1hbC1mbHVzaC1zaG91bGQtbm90LWV4dGVuZC1saXZlbmVzcy5q
cwpAQCAtMSw0ICsxLDQgQEAKLS8vQCBydW5EZWZhdWx0KCItLXVzZU1heGltYWxGbHVzaEluc2Vy
dGlvblBoYXNlPTEiLCAiLS12YWxpZGF0ZUdyYXBoQXRFYWNoUGhhc2U9MSIpCisvL0AgcnVuRGVm
YXVsdCgiLS12YWxpZGF0ZUdyYXBoQXRFYWNoUGhhc2U9MSIpCiAKIGZ1bmN0aW9uIGYxKCkgewog
fQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdG8taW5kZXgtc3RyaW5nLXNob3VsZC1ub3Qt
YXNzdW1lLWluY29taW5nLXZhbHVlLWlzLXVpbnQzMi5qcyBiL0pTVGVzdHMvc3RyZXNzL3RvLWlu
ZGV4LXN0cmluZy1zaG91bGQtbm90LWFzc3VtZS1pbmNvbWluZy12YWx1ZS1pcy11aW50MzIuanMK
aW5kZXggNWM4YjI1YTBlMmZjYmZiOWM1ZTY2NjIwZjNlZWZiYTY4ODA1M2UwZS4uMjA3M2UyOGM4
NzdhM2VkMmE4ZWE2YzI2Yzg3MmYzZWRkNGM3NWFjMyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3MvdG8taW5kZXgtc3RyaW5nLXNob3VsZC1ub3QtYXNzdW1lLWluY29taW5nLXZhbHVlLWlzLXVp
bnQzMi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90by1pbmRleC1zdHJpbmctc2hvdWxkLW5vdC1h
c3N1bWUtaW5jb21pbmctdmFsdWUtaXMtdWludDMyLmpzCkBAIC0xLDQgKzEsNCBAQAotLy9AIHJ1
bkRlZmF1bHQoIi0tdXNlTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2U9MSIsICItLXVzZVJhbmRv
bWl6aW5nRnV6emVyQWdlbnQ9MSIpCisvL0AgcnVuRGVmYXVsdCgiLS11c2VSYW5kb21pemluZ0Z1
enplckFnZW50PTEiKQogCiBmdW5jdGlvbiBmb28oKSB7CiAgICAgZm9yICh2YXIgeCBpbiBbJ2En
LCAnYiddKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>