<?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>233394</bug_id>
          
          <creation_ts>2021-11-19 22:38:03 -0800</creation_ts>
          <short_desc>REGRESSION(r286058): Speedometer2 is crashing</short_desc>
          <delta_ts>2021-11-19 22:41:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>233311</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1817077</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-11-19 22:38:03 -0800</bug_when>
    <thetext>https://commits.webkit.org/r286058 introduced a regression:
Speedometer2 is crashing

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817079</commentid>
    <comment_count>1</comment_count>
      <attachid>444882</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-11-19 22:38:15 -0800</bug_when>
    <thetext>Created attachment 444882
REVERT of r286058

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817080</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-19 22:40:36 -0800</bug_when>
    <thetext>Committed r286091 (244478@main): &lt;https://commits.webkit.org/244478@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444882.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817081</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-19 22:41:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/85629906&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444882</attachid>
            <date>2021-11-19 22:38:15 -0800</date>
            <delta_ts>2021-11-19 22:40:37 -0800</delta_ts>
            <desc>REVERT of r286058</desc>
            <filename>bug-233394-20211119223815.patch</filename>
            <type>text/plain</type>
            <size>42227</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlYTRmNmZmZDU1Yzk1
NjFlZWQ3YTJiMTdhOThmMjRlMTA4MDA4YS4uYWM5NDM3MjA3OWUwZjQ0MTc2ZmFlODc4YjdhOTky
YWVhZDVlODdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTExLTE5ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI4NjA1OC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMzM5NAorCisgICAgICAgIFNwZWVkb21ldGVyMiBpcyBjcmFzaGluZwor
CisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiRmFjdG9yIGNoaWxkIGNo
YW5nZSBpbnZhbGlkYXRpb24gaW50byBjbGFzcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzMxMQorICAgICAgICBodHRwczovL2NvbW1pdHMud2Vi
a2l0Lm9yZy9yMjg2MDU4CisKIDIwMjEtMTEtMTkgIEtpZXQgSG8gIDx0aG8yMkBhcHBsZS5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IHBhcnNpbmcgYW5kIGFuaW1hdGlvbiBzdXBwb3J0IGZvciBy
YXkoKSBzaGFwZSBhY2NlcHRlZCBieSBvZmZzZXQtcGF0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA4Zjc5
ZWNlOGNjN2MwNTk5OGE5NWZjYTJiNWJlNjQzMjdlYmNlNzQxLi4yMGEzZDhjODNhNmRmOGI2N2Yy
NDcyNTMwOTExYzIyOTE0N2Y1OTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjUyNCw3ICsyNTI0LDYg
QEAgc3RvcmFnZS9TdG9yYWdlTWFwLmNwcAogc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXIuY3BwCiBzdG9yYWdlL1N0b3JhZ2VRdW90YU1hbmFnZXIuY3BwCiBzdHlsZS9BdHRyaWJ1dGVD
aGFuZ2VJbnZhbGlkYXRpb24uY3BwCi1zdHlsZS9DaGlsZENoYW5nZUludmFsaWRhdGlvbi5jcHAK
IHN0eWxlL0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAogc3R5bGUvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuY3BwCiBzdHlsZS9JZENoYW5nZUludmFsaWRhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwNGU5Njk4NDRk
ZmJmMzhmNzk1Y2NjZmU2YmJjNjU0YTdlMDdlYTJiLi44NzU1NzQ0MDg4NDY5NGY3ZTdlMzEzMjQw
N2MzZmM5MzhkZGZkZWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MzQyLDcgKzUzNDIsNiBAQAogCQlFNEMxNzg5QjBFRTY5
MDM4MDA4MjRENjkgLyogQ1NTU2VsZWN0b3JMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEMxNzg5NjBFRTY5MDM4MDA4MjRENjkgLyogQ1NTU2Vs
ZWN0b3JMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTRDMjc5NTkwQ0Y5NzQxOTAwRTk3Qjk4IC8qIFJlbmRlck1lZGlhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEMyNzk1NzBDRjk3NDE5MDBF
OTdCOTggLyogUmVuZGVyTWVkaWEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlFNEMzQjFGQTBGMEU0MTYxMDA5NjkzRjYgLyogTGVnYWN5VGlsZUNh
Y2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEMz
QjFGOTBGMEU0MTYxMDA5NjkzRjYgLyogTGVnYWN5VGlsZUNhY2hlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTRDNEM2MUEyNzQ1MkE3OTAwQTA0
MEU3IC8qIENoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEM0QzYxODI3NDUyQTc5MDBBMDQwRTcgLyogQ2hpbGRD
aGFuZ2VJbnZhbGlkYXRpb24uaCAqLzsgfTsKIAkJRTRDOTFBMEUxODAyMzQzMTAwQTE3RjZEIC8q
IFRleHRQYWludFN0eWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNEM5MUEwRDE4MDIzNDMxMDBBMTdGNkQgLyogVGV4dFBhaW50U3R5bGUuaCAqLzsg
fTsKIAkJRTRDOTFBMTYxODA5OTlGMTAwQTE3RjZEIC8qIFJlbmRlclRleHRMaW5lQm94ZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QzkxQTE1MTgw
OTk5RjEwMEExN0Y2RCAvKiBSZW5kZXJUZXh0TGluZUJveGVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTREMzNGM0IyNTJBRUVDRDAwODM3RDA1
IC8qIElubGluZVJ1bkFuZE9mZnNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTREMzNGMzkyNTJBRUVDQzAwODM3RDA1IC8qIElubGluZVJ1bkFuZE9m
ZnNldC5oICovOyB9OwpAQCAtMTcwNDcsOCArMTcwNDYsNiBAQAogCQlFNEMyNzk1NzBDRjk3NDE5
MDBFOTdCOTggLyogUmVuZGVyTWVkaWEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVuZGVyTWVkaWEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRDM0IxRjkw
RjBFNDE2MTAwOTY5M0Y2IC8qIExlZ2FjeVRpbGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMZWdhY3lUaWxlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTRDM0IxRkIwRjBFNDE3MDAwOTY5M0Y2IC8qIExlZ2FjeVRpbGVDYWNoZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExlZ2FjeVRpbGVDYWNoZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTRDNEM2MTgyNzQ1MkE3OTAwQTA0MEU3IC8q
IENoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUU0QzRDNjFCMjc0NTJBOEEwMEEwNDBFNyAvKiBDaGlsZENoYW5nZUludmFsaWRhdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDaGlsZENoYW5nZUludmFsaWRhdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QzkxQTBEMTgwMjM0MzEwMEExN0Y2RCAvKiBUZXh0
UGFpbnRTdHlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0UGFpbnRT
dHlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEM5MUEwRjE4MDIzNDM5MDBB
MTdGNkQgLyogVGV4dFBhaW50U3R5bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVGV4dFBhaW50U3R5bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNEM5MUExNTE4MDk5OUYxMDBBMTdGNkQgLyogUmVuZGVyVGV4dExpbmVCb3hlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUZXh0TGluZUJveGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDI4NSw4ICszMDI4Miw2IEBACiAJCQkJRTRBODE0
RDcxQzcwRTEwNTAwQkY4NUFDIC8qIEF0dHJpYnV0ZUNoYW5nZUludmFsaWRhdGlvbi5jcHAgKi8s
CiAJCQkJRTRBODE0RDkxQzcwRTEwRDAwQkY4NUFDIC8qIEF0dHJpYnV0ZUNoYW5nZUludmFsaWRh
dGlvbi5oICovLAogCQkJCUU0QUJBQkY0MjM2OEM2RUYwMEZBNDM0NSAvKiBDYXNjYWRlTGV2ZWwu
aCAqLywKLQkJCQlFNEM0QzYxQjI3NDUyQThBMDBBMDQwRTcgLyogQ2hpbGRDaGFuZ2VJbnZhbGlk
YXRpb24uY3BwICovLAotCQkJCUU0QzRDNjE4Mjc0NTJBNzkwMEEwNDBFNyAvKiBDaGlsZENoYW5n
ZUludmFsaWRhdGlvbi5oICovLAogCQkJCUU0QTgxNEQ1MUM2REVFOEQwMEJGODVBQyAvKiBDbGFz
c0NoYW5nZUludmFsaWRhdGlvbi5jcHAgKi8sCiAJCQkJRTRBODE0RDMxQzZERUM0MDAwQkY4NUFD
IC8qIENsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmggKi8sCiAJCQkJRkJEQjYxOUExNkQ2MDMyQTAw
QkIzMzk0IC8qIEVsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCAqLywKQEAgLTMyNzQyLDcgKzMyNzM3
LDYgQEAKIAkJCQk5M0YyQ0M5MzI0MjdGQjlDMDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3QjhGRkQxMTZBRTdGOTYwMDM4Mzg4RCAvKiBDaGFyYWN0ZXJS
ZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCMjEyNTFG
MTJEMDAzRUYyNjkgLyogQ2hlY2tib3hJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0
QzRDNjFBMjc0NTJBNzkwMEEwNDBFNyAvKiBDaGlsZENoYW5nZUludmFsaWRhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRDYxOUEzMDgxNDRFMDBCRTAwNEJDMzAyIC8qIENoaWxkTGlzdE11dGF0
aW9uU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjIwMDk3N0QzQzAwMDU4MjZEOSAv
KiBDaGlsZE5vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEQ4MjM1MjBBRjkyQTc5MDAw
NEYwNTcgLyogQ2hyb21lLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJE
YXRhLmNwcAppbmRleCA4OTc3ZTI0N2YyYmFmZTNiZjI1ZjkyYmE5MzI0OTk5ZWRiOTQyM2NhLi4y
ZTY1YzYyNDQ5NzMzN2U2YjkwMGFlMzkwMGMxYTEyNmM5N2Q2Yzg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NoYXJhY3RlckRhdGEuY3BwCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSAiQ2hhcmFjdGVy
RGF0YS5oIgogCiAjaW5jbHVkZSAiQXR0ci5oIgotI2luY2x1ZGUgIkNoaWxkQ2hhbmdlSW52YWxp
ZGF0aW9uLmgiCiAjaW5jbHVkZSAiRWxlbWVudFRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgpAQCAtNzQsMTYgKzczLDYgQEAg
RXhjZXB0aW9uT3I8U3RyaW5nPiBDaGFyYWN0ZXJEYXRhOjpzdWJzdHJpbmdEYXRhKHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQKICAgICByZXR1cm4gbV9kYXRhLnN1YnN0cmluZyhvZmZz
ZXQsIGNvdW50KTsKIH0KIAotc3RhdGljIENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlIG1ha2VD
aGlsZENoYW5nZShDaGFyYWN0ZXJEYXRhJiBjaGFyYWN0ZXJEYXRhLCBDb250YWluZXJOb2RlOjpD
aGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSkKLXsKLSAgICByZXR1cm4gewotICAgICAgICBDb250
YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6VHlwZTo6VGV4dENoYW5nZWQsCi0gICAgICAgIEVsZW1l
bnRUcmF2ZXJzYWw6OnByZXZpb3VzU2libGluZyhjaGFyYWN0ZXJEYXRhKSwKLSAgICAgICAgRWxl
bWVudFRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoY2hhcmFjdGVyRGF0YSksCi0gICAgICAgIHNvdXJj
ZQotICAgIH07Ci19Ci0KIHVuc2lnbmVkIENoYXJhY3RlckRhdGE6OnBhcnNlckFwcGVuZERhdGEo
Y29uc3QgU3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoTGlt
aXQpCiB7CiAgICAgdW5zaWduZWQgb2xkTGVuZ3RoID0gbV9kYXRhLmxlbmd0aCgpOwpAQCAtMTA2
LDExICs5NSw2IEBAIHVuc2lnbmVkIENoYXJhY3RlckRhdGE6OnBhcnNlckFwcGVuZERhdGEoY29u
c3QgU3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVkIG9mZnNldCwKICAgICBpZiAoIWNoYXJhY3Rlckxl
bmd0aExpbWl0KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGF1dG8gY2hpbGRDaGFuZ2UgPSBt
YWtlQ2hpbGRDaGFuZ2UoKnRoaXMsIENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2U6
OlBhcnNlcik7Ci0gICAgc3RkOjpvcHRpb25hbDxTdHlsZTo6Q2hpbGRDaGFuZ2VJbnZhbGlkYXRp
b24+IHN0eWxlSW52YWxpZGF0aW9uOwotICAgIGlmIChhdXRvKiBwYXJlbnQgPSBwYXJlbnROb2Rl
KCkpCi0gICAgICAgIHN0eWxlSW52YWxpZGF0aW9uLmVtcGxhY2UoKnBhcmVudCwgY2hpbGRDaGFu
Z2UpOwotCiAgICAgU3RyaW5nIG9sZERhdGEgPSBtX2RhdGE7CiAgICAgaWYgKHN0cmluZy5pczhC
aXQoKSkKICAgICAgICAgbV9kYXRhLmFwcGVuZChzdHJpbmcuY2hhcmFjdGVyczgoKSArIG9mZnNl
dCwgY2hhcmFjdGVyTGVuZ3RoTGltaXQpOwpAQCAtMTIxLDcgKzEwNSw3IEBAIHVuc2lnbmVkIENo
YXJhY3RlckRhdGE6OnBhcnNlckFwcGVuZERhdGEoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHVuc2ln
bmVkIG9mZnNldCwKICAgICBpZiAoaXM8VGV4dD4oKnRoaXMpKQogICAgICAgICBkb3duY2FzdDxU
ZXh0PigqdGhpcykudXBkYXRlUmVuZGVyZXJBZnRlckNvbnRlbnRDaGFuZ2Uob2xkTGVuZ3RoLCAw
KTsKIAotICAgIG5vdGlmeVBhcmVudEFmdGVyQ2hhbmdlKGNoaWxkQ2hhbmdlKTsKKyAgICBub3Rp
ZnlQYXJlbnRBZnRlckNoYW5nZShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlOjpQ
YXJzZXIpOwogCiAgICAgYXV0byBtdXRhdGlvblJlY2lwaWVudHMgPSBNdXRhdGlvbk9ic2VydmVy
SW50ZXJlc3RHcm91cDo6Y3JlYXRlRm9yQ2hhcmFjdGVyRGF0YU11dGF0aW9uKCp0aGlzKTsKICAg
ICBpZiAoVU5MSUtFTFkobXV0YXRpb25SZWNpcGllbnRzKSkKQEAgLTE4OSwxMiArMTczLDYgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gQ2hhcmFjdGVyRGF0YTo6c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgbm9kZVZhbHVlKQogCiB2b2lkIENoYXJhY3RlckRhdGE6OnNldERhdGFBbmRVcGRhdGUoY29u
c3QgU3RyaW5nJiBuZXdEYXRhLCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkRGF0YSwgdW5zaWdu
ZWQgb2xkTGVuZ3RoLCB1bnNpZ25lZCBuZXdMZW5ndGgsIFVwZGF0ZUxpdmVSYW5nZXMgc2hvdWxk
VXBkYXRlTGl2ZVJhbmdlcykKIHsKLSAgICBhdXRvIGNoaWxkQ2hhbmdlID0gbWFrZUNoaWxkQ2hh
bmdlKCp0aGlzLCBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlOjpBUEkpOwotCi0g
ICAgc3RkOjpvcHRpb25hbDxTdHlsZTo6Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24+IHN0eWxlSW52
YWxpZGF0aW9uOwotICAgIGlmIChhdXRvKiBwYXJlbnQgPSBwYXJlbnROb2RlKCkpCi0gICAgICAg
IHN0eWxlSW52YWxpZGF0aW9uLmVtcGxhY2UoKnBhcmVudCwgY2hpbGRDaGFuZ2UpOwotCiAgICAg
U3RyaW5nIG9sZERhdGEgPSBtX2RhdGE7CiAgICAgbV9kYXRhID0gbmV3RGF0YTsKIApAQCAtMjEz
LDE5ICsxOTEsMjYgQEAgdm9pZCBDaGFyYWN0ZXJEYXRhOjpzZXREYXRhQW5kVXBkYXRlKGNvbnN0
IFN0cmluZyYgbmV3RGF0YSwgdW5zaWduZWQgb2Zmc2V0T2ZSZXAKICAgICBpZiAoZG9jdW1lbnQo
KS5mcmFtZSgpKQogICAgICAgICBkb2N1bWVudCgpLmZyYW1lKCktPnNlbGVjdGlvbigpLnRleHRX
YXNSZXBsYWNlZCh0aGlzLCBvZmZzZXRPZlJlcGxhY2VkRGF0YSwgb2xkTGVuZ3RoLCBuZXdMZW5n
dGgpOwogCi0gICAgbm90aWZ5UGFyZW50QWZ0ZXJDaGFuZ2UoY2hpbGRDaGFuZ2UpOworICAgIG5v
dGlmeVBhcmVudEFmdGVyQ2hhbmdlKENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2U6
OkFQSSk7CiAKICAgICBkaXNwYXRjaE1vZGlmaWVkRXZlbnQob2xkRGF0YSk7CiB9CiAKLXZvaWQg
Q2hhcmFjdGVyRGF0YTo6bm90aWZ5UGFyZW50QWZ0ZXJDaGFuZ2UoY29uc3QgQ29udGFpbmVyTm9k
ZTo6Q2hpbGRDaGFuZ2UmIGNoaWxkQ2hhbmdlKQordm9pZCBDaGFyYWN0ZXJEYXRhOjpub3RpZnlQ
YXJlbnRBZnRlckNoYW5nZShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlIHNvdXJj
ZSkKIHsKICAgICBkb2N1bWVudCgpLmluY0RPTVRyZWVWZXJzaW9uKCk7CiAKICAgICBpZiAoIXBh
cmVudE5vZGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFyZW50Tm9kZSgpLT5jaGlsZHJl
bkNoYW5nZWQoY2hpbGRDaGFuZ2UpOworICAgIENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlIGNo
YW5nZSA9IHsKKyAgICAgICAgQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlR5cGU6OlRleHRD
aGFuZ2VkLAorICAgICAgICBFbGVtZW50VHJhdmVyc2FsOjpwcmV2aW91c1NpYmxpbmcoKnRoaXMp
LAorICAgICAgICBFbGVtZW50VHJhdmVyc2FsOjpuZXh0U2libGluZygqdGhpcyksCisgICAgICAg
IHNvdXJjZQorICAgIH07CisKKyAgICBwYXJlbnROb2RlKCktPmNoaWxkcmVuQ2hhbmdlZChjaGFu
Z2UpOwogfQogCiB2b2lkIENoYXJhY3RlckRhdGE6OmRpc3BhdGNoTW9kaWZpZWRFdmVudChjb25z
dCBTdHJpbmcmIG9sZERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFj
dGVyRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuaAppbmRleCAzNmE0
OTI1NDA3ZTkxM2NjY2E3M2U5MGRlMDMyYWI1ZmI4Nzc0YTQ3Li5jNTk0NzM1YmVjYjA5YTM2ZTY1
NDI5ZjIyOTY2Y2ZhMTMzMGY5MzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hh
cmFjdGVyRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmgKQEAg
LTY1LDcgKzY1LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBTdHJpbmcgbm9kZVZhbHVl
KCkgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Tm9kZVZhbHVlKGNvbnN0
IFN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQgbm90aWZ5UGFyZW50QWZ0ZXJDaGFuZ2UoY29uc3Qg
Q29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2UmKTsKKyAgICB2b2lkIG5vdGlmeVBhcmVudEFmdGVy
Q2hhbmdlKENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2UpOwogCiAgICAgU3RyaW5n
IG1fZGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggZDdmNGU5
ZTkzYjAwMTMxYTY4NjExZGYxN2Y3MDI3NGQ4ZmQ2YjFkYi4uNmQ4ZmQxZmQ1NzcwOTIwYjgxMjMx
ZDMxNTZmZTUzYjg4OTRjODk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApA
QCAtMjUsNyArMjUsNiBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5oIgotI2luY2x1ZGUgIkNoaWxkQ2hhbmdlSW52YWxp
ZGF0aW9uLmgiCiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oIgogI2luY2x1ZGUg
IkNsYXNzQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkNvbW1vblZNLmgiCkBAIC0xMTIsNTIgKzEx
MSwyOSBAQCBBTFdBWVNfSU5MSU5FIE5vZGVWZWN0b3IgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQWxs
Q2hpbGRyZW5XaXRoU2NyaXB0QXNzZXJ0aW9uKENoaQogCiAgICAgZGlzY29ubmVjdFN1YmZyYW1l
c0lmTmVlZGVkKCp0aGlzLCBEZXNjZW5kYW50c09ubHkpOwogCi0gICAgQ29udGFpbmVyTm9kZTo6
Q2hpbGRDaGFuZ2UgY2hpbGRDaGFuZ2UgeyBDaGlsZENoYW5nZTo6VHlwZTo6QWxsQ2hpbGRyZW5S
ZW1vdmVkLCBudWxscHRyLCBudWxscHRyLCBzb3VyY2UgfTsKLQogICAgIFdpZGdldEhpZXJhcmNo
eVVwZGF0ZXNTdXNwZW5zaW9uU2NvcGUgc3VzcGVuZFdpZGdldEhpZXJhcmNoeVVwZGF0ZXM7CiAg
ICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpJbk1haW5UaHJlYWQgc2NyaXB0RGlzYWxsb3dlZFNj
b3BlOwotICAgIHsKLSAgICAgICAgU3R5bGU6OkNoaWxkQ2hhbmdlSW52YWxpZGF0aW9uIHN0eWxl
SW52YWxpZGF0aW9uKCp0aGlzLCBjaGlsZENoYW5nZSk7CiAKLSAgICAgICAgaWYgKFVOTElLRUxZ
KGlzU2hhZG93Um9vdCgpIHx8IGlzSW5TaGFkb3dUcmVlKCkpKQotICAgICAgICAgICAgY29udGFp
bmluZ1NoYWRvd1Jvb3QoKS0+d2lsbFJlbW92ZUFsbENoaWxkcmVuKCp0aGlzKTsKKyAgICBpZiAo
VU5MSUtFTFkoaXNTaGFkb3dSb290KCkgfHwgaXNJblNoYWRvd1RyZWUoKSkpCisgICAgICAgIGNv
bnRhaW5pbmdTaGFkb3dSb290KCktPndpbGxSZW1vdmVBbGxDaGlsZHJlbigqdGhpcyk7CiAKLSAg
ICAgICAgZG9jdW1lbnQoKS5ub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVkKCp0aGlzKTsKKyAgICBk
b2N1bWVudCgpLm5vZGVDaGlsZHJlbldpbGxCZVJlbW92ZWQoKnRoaXMpOwogCi0gICAgICAgIHdo
aWxlIChSZWZQdHI8Tm9kZT4gY2hpbGQgPSBtX2ZpcnN0Q2hpbGQpIHsKLSAgICAgICAgICAgIHJl
bW92ZUJldHdlZW4obnVsbHB0ciwgY2hpbGQtPm5leHRTaWJsaW5nKCksICpjaGlsZCk7Ci0gICAg
ICAgICAgICBhdXRvIHN1YnRyZWVPYnNlcnZhYmlsaXR5ID0gbm90aWZ5Q2hpbGROb2RlUmVtb3Zl
ZCgqdGhpcywgKmNoaWxkKTsKLSAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6
OlNvdXJjZTo6QVBJICYmIHN1YnRyZWVPYnNlcnZhYmlsaXR5ID09IFJlbW92ZWRTdWJ0cmVlT2Jz
ZXJ2YWJpbGl0eTo6TWF5YmVPYnNlcnZhYmxlQnlSZWZQdHIpCi0gICAgICAgICAgICAgICAgd2ls
bENyZWF0ZVBvc3NpYmx5T3JwaGFuZWRUcmVlQnlSZW1vdmFsKGNoaWxkLmdldCgpKTsKLSAgICAg
ICAgfQorICAgIHdoaWxlIChSZWZQdHI8Tm9kZT4gY2hpbGQgPSBtX2ZpcnN0Q2hpbGQpIHsKKyAg
ICAgICAgcmVtb3ZlQmV0d2VlbihudWxscHRyLCBjaGlsZC0+bmV4dFNpYmxpbmcoKSwgKmNoaWxk
KTsKKyAgICAgICAgYXV0byBzdWJ0cmVlT2JzZXJ2YWJpbGl0eSA9IG5vdGlmeUNoaWxkTm9kZVJl
bW92ZWQoKnRoaXMsICpjaGlsZCk7CisgICAgICAgIGlmIChzb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6
OlNvdXJjZTo6QVBJICYmIHN1YnRyZWVPYnNlcnZhYmlsaXR5ID09IFJlbW92ZWRTdWJ0cmVlT2Jz
ZXJ2YWJpbGl0eTo6TWF5YmVPYnNlcnZhYmxlQnlSZWZQdHIpCisgICAgICAgICAgICB3aWxsQ3Jl
YXRlUG9zc2libHlPcnBoYW5lZFRyZWVCeVJlbW92YWwoY2hpbGQuZ2V0KCkpOwogICAgIH0KIAog
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFkb2N1bWVudCgpLnNlbGVjdGlv
bigpLnNlbGVjdGlvbigpLmlzT3JwaGFuKCkpOwogCiAgICAgaWYgKGRlZmVyQ2hpbGRyZW5DaGFu
Z2VkID09IERlZmVyQ2hpbGRyZW5DaGFuZ2VkOjpObykKLSAgICAgICAgY2hpbGRyZW5DaGFuZ2Vk
KGNoaWxkQ2hhbmdlKTsKKyAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKENvbnRhaW5lck5vZGU6OkNo
aWxkQ2hhbmdlIHsgQ2hpbGRDaGFuZ2U6OlR5cGU6OkFsbENoaWxkcmVuUmVtb3ZlZCwgbnVsbHB0
ciwgbnVsbHB0ciwgc291cmNlIH0pOwogCiAgICAgcmV0dXJuIGNoaWxkcmVuOwogfQogCi1zdGF0
aWMgQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2UgbWFrZUNoaWxkQ2hhbmdlRm9yUmVtb3ZhbChO
b2RlJiBjaGlsZFRvUmVtb3ZlLCBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlIHNv
dXJjZSkKLXsKLSAgICBhdXRvIGNoYW5nZVR5cGUgPSBbJl0gewotICAgICAgICBpZiAoaXM8RWxl
bWVudD4oY2hpbGRUb1JlbW92ZSkpCi0gICAgICAgICAgICByZXR1cm4gQ29udGFpbmVyTm9kZTo6
Q2hpbGRDaGFuZ2U6OlR5cGU6OkVsZW1lbnRSZW1vdmVkOwotICAgICAgICBpZiAoaXM8VGV4dD4o
Y2hpbGRUb1JlbW92ZSkpCi0gICAgICAgICAgICByZXR1cm4gQ29udGFpbmVyTm9kZTo6Q2hpbGRD
aGFuZ2U6OlR5cGU6OlRleHRSZW1vdmVkOwotICAgICAgICByZXR1cm4gQ29udGFpbmVyTm9kZTo6
Q2hpbGRDaGFuZ2U6OlR5cGU6Ok5vbkNvbnRlbnRzQ2hpbGRSZW1vdmVkOwotICAgIH0oKTsKLQot
ICAgIHJldHVybiB7Ci0gICAgICAgIGNoYW5nZVR5cGUsCi0gICAgICAgIEVsZW1lbnRUcmF2ZXJz
YWw6OnByZXZpb3VzU2libGluZyhjaGlsZFRvUmVtb3ZlKSwKLSAgICAgICAgRWxlbWVudFRyYXZl
cnNhbDo6bmV4dFNpYmxpbmcoY2hpbGRUb1JlbW92ZSksCi0gICAgICAgIHNvdXJjZQotICAgIH07
Ci19Ci0KIEFMV0FZU19JTkxJTkUgYm9vbCBDb250YWluZXJOb2RlOjpyZW1vdmVOb2RlV2l0aFNj
cmlwdEFzc2VydGlvbihOb2RlJiBjaGlsZFRvUmVtb3ZlLCBDaGlsZENoYW5nZTo6U291cmNlIHNv
dXJjZSkKIHsKICAgICBSZWY8Tm9kZT4gcHJvdGVjdGVkQ2hpbGRUb1JlbW92ZShjaGlsZFRvUmVt
b3ZlKTsKQEAgLTE4NiwxMyArMTYyLDExIEBAIEFMV0FZU19JTkxJTkUgYm9vbCBDb250YWluZXJO
b2RlOjpyZW1vdmVOb2RlV2l0aFNjcmlwdEFzc2VydGlvbihOb2RlJiBjaGlsZFRvUmVtCiAgICAg
aWYgKGNoaWxkVG9SZW1vdmUucGFyZW50Tm9kZSgpICE9IHRoaXMpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGF1dG8gY2hpbGRDaGFuZ2UgPSBtYWtlQ2hpbGRDaGFuZ2VGb3JSZW1vdmFs
KGNoaWxkVG9SZW1vdmUsIHNvdXJjZSk7Ci0KKyAgICBDaGlsZENoYW5nZSBjaGFuZ2U7CiAgICAg
UmVtb3ZlZFN1YnRyZWVPYnNlcnZhYmlsaXR5IHN1YnRyZWVPYnNlcnZhYmlsaXR5OwogICAgIHsK
ICAgICAgICAgV2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZSBzdXNwZW5kV2lk
Z2V0SGllcmFyY2h5VXBkYXRlczsKICAgICAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpJbk1h
aW5UaHJlYWQgc2NyaXB0RGlzYWxsb3dlZFNjb3BlOwotICAgICAgICBTdHlsZTo6Q2hpbGRDaGFu
Z2VJbnZhbGlkYXRpb24gc3R5bGVJbnZhbGlkYXRpb24oKnRoaXMsIGNoaWxkQ2hhbmdlKTsKIAog
ICAgICAgICBpZiAoVU5MSUtFTFkoaXNTaGFkb3dSb290KCkgfHwgaXNJblNoYWRvd1RyZWUoKSkp
CiAgICAgICAgICAgICBjb250YWluaW5nU2hhZG93Um9vdCgpLT5yZXNvbHZlU2xvdHNCZWZvcmVO
b2RlSW5zZXJ0aW9uT3JSZW1vdmFsKCk7CkBAIC0yMDQsOSArMTc4LDE3IEBAIEFMV0FZU19JTkxJ
TkUgYm9vbCBDb250YWluZXJOb2RlOjpyZW1vdmVOb2RlV2l0aFNjcmlwdEFzc2VydGlvbihOb2Rl
JiBjaGlsZFRvUmVtCiAKICAgICAgICAgUmVmUHRyPE5vZGU+IHByZXZpb3VzU2libGluZyA9IGNo
aWxkVG9SZW1vdmUucHJldmlvdXNTaWJsaW5nKCk7CiAgICAgICAgIFJlZlB0cjxOb2RlPiBuZXh0
U2libGluZyA9IGNoaWxkVG9SZW1vdmUubmV4dFNpYmxpbmcoKTsKLQogICAgICAgICByZW1vdmVC
ZXR3ZWVuKHByZXZpb3VzU2libGluZy5nZXQoKSwgbmV4dFNpYmxpbmcuZ2V0KCksIGNoaWxkVG9S
ZW1vdmUpOwogICAgICAgICBzdWJ0cmVlT2JzZXJ2YWJpbGl0eSA9IG5vdGlmeUNoaWxkTm9kZVJl
bW92ZWQoKnRoaXMsIGNoaWxkVG9SZW1vdmUpOworCisgICAgICAgIGNoYW5nZS50eXBlID0gaXM8
RWxlbWVudD4oY2hpbGRUb1JlbW92ZSkgPworICAgICAgICAgICAgQ2hpbGRDaGFuZ2U6OlR5cGU6
OkVsZW1lbnRSZW1vdmVkIDoKKyAgICAgICAgICAgIChpczxUZXh0PihjaGlsZFRvUmVtb3ZlKSA/
CisgICAgICAgICAgICAgICAgQ2hpbGRDaGFuZ2U6OlR5cGU6OlRleHRSZW1vdmVkIDoKKyAgICAg
ICAgICAgICAgICBDaGlsZENoYW5nZTo6VHlwZTo6Tm9uQ29udGVudHNDaGlsZFJlbW92ZWQpOwor
ICAgICAgICBjaGFuZ2UucHJldmlvdXNTaWJsaW5nRWxlbWVudCA9ICghcHJldmlvdXNTaWJsaW5n
IHx8IGlzPEVsZW1lbnQ+KCpwcmV2aW91c1NpYmxpbmcpKSA/IGRvd25jYXN0PEVsZW1lbnQ+KHBy
ZXZpb3VzU2libGluZy5nZXQoKSkgOiBFbGVtZW50VHJhdmVyc2FsOjpwcmV2aW91c1NpYmxpbmco
KnByZXZpb3VzU2libGluZyk7CisgICAgICAgIGNoYW5nZS5uZXh0U2libGluZ0VsZW1lbnQgPSAo
IW5leHRTaWJsaW5nIHx8IGlzPEVsZW1lbnQ+KCpuZXh0U2libGluZykpID8gZG93bmNhc3Q8RWxl
bWVudD4obmV4dFNpYmxpbmcuZ2V0KCkpIDogRWxlbWVudFRyYXZlcnNhbDo6bmV4dFNpYmxpbmco
Km5leHRTaWJsaW5nKTsKKyAgICAgICAgY2hhbmdlLnNvdXJjZSA9IHNvdXJjZTsKICAgICB9CiAK
ICAgICBpZiAoc291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OkFQSSAmJiBzdWJ0cmVlT2Jz
ZXJ2YWJpbGl0eSA9PSBSZW1vdmVkU3VidHJlZU9ic2VydmFiaWxpdHk6Ok1heWJlT2JzZXJ2YWJs
ZUJ5UmVmUHRyKQpAQCAtMjE1LDQ1ICsxOTcsMjEgQEAgQUxXQVlTX0lOTElORSBib29sIENvbnRh
aW5lck5vZGU6OnJlbW92ZU5vZGVXaXRoU2NyaXB0QXNzZXJ0aW9uKE5vZGUmIGNoaWxkVG9SZW0K
ICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighZG9jdW1lbnQoKS5zZWxlY3Rp
b24oKS5zZWxlY3Rpb24oKS5pc09ycGhhbigpKTsKIAogICAgIC8vIEZJWE1FOiBNb3ZlIGNoaWxk
cmVuQ2hhbmdlZCBpbnRvIFNjcmlwdERpc2FsbG93ZWRTY29wZSBibG9jay4KLSAgICBjaGlsZHJl
bkNoYW5nZWQoY2hpbGRDaGFuZ2UpOworICAgIGNoaWxkcmVuQ2hhbmdlZChjaGFuZ2UpOwogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIGVudW0gY2xhc3MgUmVwbGFjZWRBbGxDaGlsZHJlbiB7IE5v
LCBZZXMgfTsKIAotc3RhdGljIENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlIG1ha2VDaGlsZENo
YW5nZUZvckluc2VydGlvbihDb250YWluZXJOb2RlJiBjb250YWluZXJOb2RlLCBOb2RlJiBjaGls
ZCwgTm9kZSogYmVmb3JlQ2hpbGQsIENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Ug
c291cmNlLCBSZXBsYWNlZEFsbENoaWxkcmVuIHJlcGxhY2VkQWxsQ2hpbGRyZW4pCi17Ci0gICAg
aWYgKHJlcGxhY2VkQWxsQ2hpbGRyZW4gPT0gUmVwbGFjZWRBbGxDaGlsZHJlbjo6WWVzKQotICAg
ICAgICByZXR1cm4geyBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6VHlwZTo6QWxsQ2hpbGRy
ZW5SZXBsYWNlZCwgbnVsbHB0ciwgbnVsbHB0ciwgc291cmNlIH07Ci0KLSAgICBhdXRvIGNoYW5n
ZVR5cGUgPSBbJl0gewotICAgICAgICBpZiAoaXM8RWxlbWVudD4oY2hpbGQpKQotICAgICAgICAg
ICAgcmV0dXJuIENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpUeXBlOjpFbGVtZW50SW5zZXJ0
ZWQ7Ci0gICAgICAgIGlmIChpczxUZXh0PihjaGlsZCkpCi0gICAgICAgICAgICByZXR1cm4gQ29u
dGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlR5cGU6OlRleHRJbnNlcnRlZDsKLSAgICAgICAgcmV0
dXJuIENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpUeXBlOjpOb25Db250ZW50c0NoaWxkSW5z
ZXJ0ZWQ7Ci0gICAgfSgpOwotCi0gICAgcmV0dXJuIHsKLSAgICAgICAgY2hhbmdlVHlwZSwKLSAg
ICAgICAgYmVmb3JlQ2hpbGQgPyBFbGVtZW50VHJhdmVyc2FsOjpwcmV2aW91c1NpYmxpbmcoKmJl
Zm9yZUNoaWxkKSA6IEVsZW1lbnRUcmF2ZXJzYWw6Omxhc3RDaGlsZChjb250YWluZXJOb2RlKSwK
LSAgICAgICAgIWJlZm9yZUNoaWxkIHx8IGlzPEVsZW1lbnQ+KCpiZWZvcmVDaGlsZCkgPyBkb3du
Y2FzdDxFbGVtZW50PihiZWZvcmVDaGlsZCkgOiBFbGVtZW50VHJhdmVyc2FsOjpuZXh0U2libGlu
ZygqYmVmb3JlQ2hpbGQpLAotICAgICAgICBzb3VyY2UKLSAgICB9OwotfQotCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBET01JbnNlcnRpb25Xb3JrPgotc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBleGVj
dXRlTm9kZUluc2VydGlvbldpdGhTY3JpcHRBc3NlcnRpb24oQ29udGFpbmVyTm9kZSYgY29udGFp
bmVyTm9kZSwgTm9kZSYgY2hpbGQsIE5vZGUqIGJlZm9yZUNoaWxkLAorc3RhdGljIEFMV0FZU19J
TkxJTkUgdm9pZCBleGVjdXRlTm9kZUluc2VydGlvbldpdGhTY3JpcHRBc3NlcnRpb24oQ29udGFp
bmVyTm9kZSYgY29udGFpbmVyTm9kZSwgTm9kZSYgY2hpbGQsCiAgICAgQ29udGFpbmVyTm9kZTo6
Q2hpbGRDaGFuZ2U6OlNvdXJjZSBzb3VyY2UsIFJlcGxhY2VkQWxsQ2hpbGRyZW4gcmVwbGFjZWRB
bGxDaGlsZHJlbiwgRE9NSW5zZXJ0aW9uV29yayBkb05vZGVJbnNlcnRpb24pCiB7Ci0gICAgYXV0
byBjaGlsZENoYW5nZSA9IG1ha2VDaGlsZENoYW5nZUZvckluc2VydGlvbihjb250YWluZXJOb2Rl
LCBjaGlsZCwgYmVmb3JlQ2hpbGQsIHNvdXJjZSwgcmVwbGFjZWRBbGxDaGlsZHJlbik7Ci0KICAg
ICBOb2RlVmVjdG9yIHBvc3RJbnNlcnRpb25Ob3RpZmljYXRpb25UYXJnZXRzOwogICAgIHsKICAg
ICAgICAgV2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZSBzdXNwZW5kV2lkZ2V0
SGllcmFyY2h5VXBkYXRlczsKICAgICAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpJbk1haW5U
aHJlYWQgc2NyaXB0RGlzYWxsb3dlZFNjb3BlOwotICAgICAgICBTdHlsZTo6Q2hpbGRDaGFuZ2VJ
bnZhbGlkYXRpb24gc3R5bGVJbnZhbGlkYXRpb24oY29udGFpbmVyTm9kZSwgY2hpbGRDaGFuZ2Up
OwogCiAgICAgICAgIGlmIChVTkxJS0VMWShjb250YWluZXJOb2RlLmlzU2hhZG93Um9vdCgpIHx8
IGNvbnRhaW5lck5vZGUuaXNJblNoYWRvd1RyZWUoKSkpCiAgICAgICAgICAgICBjb250YWluZXJO
b2RlLmNvbnRhaW5pbmdTaGFkb3dSb290KCktPnJlc29sdmVTbG90c0JlZm9yZU5vZGVJbnNlcnRp
b25PclJlbW92YWwoKTsKQEAgLTI2NCw3ICsyMjIsMjAgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUg
dm9pZCBleGVjdXRlTm9kZUluc2VydGlvbldpdGhTY3JpcHRBc3NlcnRpb24oQ29udGFpbmVyTm9k
ZSYKICAgICB9CiAKICAgICAvLyBGSVhNRTogTW92ZSBjaGlsZHJlbkNoYW5nZWQgaW50byBTY3Jp
cHREaXNhbGxvd2VkU2NvcGUgYmxvY2suCi0gICAgY29udGFpbmVyTm9kZS5jaGlsZHJlbkNoYW5n
ZWQoY2hpbGRDaGFuZ2UpOworICAgIGlmIChyZXBsYWNlZEFsbENoaWxkcmVuID09IFJlcGxhY2Vk
QWxsQ2hpbGRyZW46OlllcykKKyAgICAgICAgY29udGFpbmVyTm9kZS5jaGlsZHJlbkNoYW5nZWQo
Q29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2UgeyBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6
VHlwZTo6QWxsQ2hpbGRyZW5SZXBsYWNlZCwgbnVsbHB0ciwgbnVsbHB0ciwgc291cmNlIH0pOwor
ICAgIGVsc2UgeworICAgICAgICBjb250YWluZXJOb2RlLmNoaWxkcmVuQ2hhbmdlZChDb250YWlu
ZXJOb2RlOjpDaGlsZENoYW5nZSB7CisgICAgICAgICAgICBjaGlsZC5pc0VsZW1lbnROb2RlKCkg
PworICAgICAgICAgICAgICAgIENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpUeXBlOjpFbGVt
ZW50SW5zZXJ0ZWQgOgorICAgICAgICAgICAgICAgIChjaGlsZC5pc1RleHROb2RlKCkgPworICAg
ICAgICAgICAgICAgICAgICBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6VHlwZTo6VGV4dElu
c2VydGVkIDoKKyAgICAgICAgICAgICAgICAgICAgQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6
OlR5cGU6Ok5vbkNvbnRlbnRzQ2hpbGRJbnNlcnRlZCksCisgICAgICAgICAgICBFbGVtZW50VHJh
dmVyc2FsOjpwcmV2aW91c1NpYmxpbmcoY2hpbGQpLAorICAgICAgICAgICAgRWxlbWVudFRyYXZl
cnNhbDo6bmV4dFNpYmxpbmcoY2hpbGQpLAorICAgICAgICAgICAgc291cmNlCisgICAgICAgIH0p
OworICAgIH0KIAogICAgIEFTU0VSVChTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVh
ZDo6aXNFdmVudERpc3BhdGNoQWxsb3dlZEluU3VidHJlZShjaGlsZCkpOwogICAgIGZvciAoYXV0
byYgdGFyZ2V0IDogcG9zdEluc2VydGlvbk5vdGlmaWNhdGlvblRhcmdldHMpCkBAIC00NzcsNyAr
NDQ4LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKE5v
ZGUmIG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCkKICAgICAgICAgaWYgKGNoaWxkLT5wYXJlbnRO
b2RlKCkpCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBleGVjdXRlTm9kZUluc2VydGlv
bldpdGhTY3JpcHRBc3NlcnRpb24oKnRoaXMsIGNoaWxkLmdldCgpLCBuZXh0LnB0cigpLCBDaGls
ZENoYW5nZTo6U291cmNlOjpBUEksIFJlcGxhY2VkQWxsQ2hpbGRyZW46Ok5vLCBbJl0geworICAg
ICAgICBleGVjdXRlTm9kZUluc2VydGlvbldpdGhTY3JpcHRBc3NlcnRpb24oKnRoaXMsIGNoaWxk
LmdldCgpLCBDaGlsZENoYW5nZTo6U291cmNlOjpBUEksIFJlcGxhY2VkQWxsQ2hpbGRyZW46Ok5v
LCBbJl0gewogICAgICAgICAgICAgY2hpbGQtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRyZWVT
Y29wZSgpKTsKICAgICAgICAgICAgIGluc2VydEJlZm9yZUNvbW1vbihuZXh0LCBjaGlsZCk7CiAg
ICAgICAgIH0pOwpAQCAtNTM2LDcgKzUwNyw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFyc2Vy
SW5zZXJ0QmVmb3JlKE5vZGUmIG5ld0NoaWxkLCBOb2RlJiBuZXh0Q2hpbGQpCiAgICAgaWYgKG5l
eHRDaGlsZC5wcmV2aW91c1NpYmxpbmcoKSA9PSAmbmV3Q2hpbGQgfHwgJm5leHRDaGlsZCA9PSAm
bmV3Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0dXJuOwogCi0gICAgZXhlY3V0
ZU5vZGVJbnNlcnRpb25XaXRoU2NyaXB0QXNzZXJ0aW9uKCp0aGlzLCBuZXdDaGlsZCwgJm5leHRD
aGlsZCwgQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyLCBSZXBsYWNlZEFsbENoaWxkcmVuOjpO
bywgWyZdIHsKKyAgICBleGVjdXRlTm9kZUluc2VydGlvbldpdGhTY3JpcHRBc3NlcnRpb24oKnRo
aXMsIG5ld0NoaWxkLCBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIsIFJlcGxhY2VkQWxsQ2hp
bGRyZW46Ok5vLCBbJl0gewogICAgICAgICBpZiAoJmRvY3VtZW50KCkgIT0gJm5ld0NoaWxkLmRv
Y3VtZW50KCkpCiAgICAgICAgICAgICBkb2N1bWVudCgpLmFkb3B0Tm9kZShuZXdDaGlsZCk7CiAK
QEAgLTYxMCw3ICs1ODEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDb250YWluZXJOb2RlOjpyZXBs
YWNlQ2hpbGQoTm9kZSYgbmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkKQogICAgICAgICBpZiAoY2hp
bGQtPnBhcmVudE5vZGUoKSkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGV4ZWN1dGVO
b2RlSW5zZXJ0aW9uV2l0aFNjcmlwdEFzc2VydGlvbigqdGhpcywgY2hpbGQuZ2V0KCksIHJlZkNo
aWxkLmdldCgpLCBDaGlsZENoYW5nZTo6U291cmNlOjpBUEksIFJlcGxhY2VkQWxsQ2hpbGRyZW46
Ok5vLCBbJl0geworICAgICAgICBleGVjdXRlTm9kZUluc2VydGlvbldpdGhTY3JpcHRBc3NlcnRp
b24oKnRoaXMsIGNoaWxkLmdldCgpLCBDaGlsZENoYW5nZTo6U291cmNlOjpBUEksIFJlcGxhY2Vk
QWxsQ2hpbGRyZW46Ok5vLCBbJl0gewogICAgICAgICAgICAgY2hpbGQtPnNldFRyZWVTY29wZVJl
Y3Vyc2l2ZWx5KHRyZWVTY29wZSgpKTsKICAgICAgICAgICAgIGlmIChyZWZDaGlsZCkKICAgICAg
ICAgICAgICAgICBpbnNlcnRCZWZvcmVDb21tb24oKnJlZkNoaWxkLCBjaGlsZC5nZXQoKSk7CkBA
IC03MTEsNyArNjgyLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZXBsYWNlQWxsKE5vZGUqIG5v
ZGUpCiAgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbigqdGhpcyk7CiAgICAgcmVt
b3ZlQWxsQ2hpbGRyZW5XaXRoU2NyaXB0QXNzZXJ0aW9uKENoaWxkQ2hhbmdlOjpTb3VyY2U6OkFQ
SSwgRGVmZXJDaGlsZHJlbkNoYW5nZWQ6Olllcyk7CiAKLSAgICBleGVjdXRlTm9kZUluc2VydGlv
bldpdGhTY3JpcHRBc3NlcnRpb24oKnRoaXMsICpub2RlLCBudWxscHRyLCBDaGlsZENoYW5nZTo6
U291cmNlOjpBUEksIFJlcGxhY2VkQWxsQ2hpbGRyZW46OlllcywgWyZdIHsKKyAgICBleGVjdXRl
Tm9kZUluc2VydGlvbldpdGhTY3JpcHRBc3NlcnRpb24oKnRoaXMsICpub2RlLCBDaGlsZENoYW5n
ZTo6U291cmNlOjpBUEksIFJlcGxhY2VkQWxsQ2hpbGRyZW46OlllcywgWyZdIHsKICAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAq
dGhpcyk7CiAgICAgICAgIG5vZGUtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRyZWVTY29wZSgp
KTsKICAgICAgICAgYXBwZW5kQ2hpbGRDb21tb24oKm5vZGUpOwpAQCAtNzkyLDcgKzc2Myw3IEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkV2l0aG91dFByZUlu
c2VydGlvblZhbGlkaXR5Q2hlY2soTm9kCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAv
LyBBcHBlbmQgY2hpbGQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdAotICAgICAgICBleGVjdXRlTm9k
ZUluc2VydGlvbldpdGhTY3JpcHRBc3NlcnRpb24oKnRoaXMsIGNoaWxkLmdldCgpLCBudWxscHRy
LCBDaGlsZENoYW5nZTo6U291cmNlOjpBUEksIFJlcGxhY2VkQWxsQ2hpbGRyZW46Ok5vLCBbJl0g
eworICAgICAgICBleGVjdXRlTm9kZUluc2VydGlvbldpdGhTY3JpcHRBc3NlcnRpb24oKnRoaXMs
IGNoaWxkLmdldCgpLCBDaGlsZENoYW5nZTo6U291cmNlOjpBUEksIFJlcGxhY2VkQWxsQ2hpbGRy
ZW46Ok5vLCBbJl0gewogICAgICAgICAgICAgY2hpbGQtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5
KHRyZWVTY29wZSgpKTsKICAgICAgICAgICAgIGFwcGVuZENoaWxkQ29tbW9uKGNoaWxkKTsKICAg
ICAgICAgfSk7CkBAIC04MDgsNyArNzc5LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJB
cHBlbmRDaGlsZChOb2RlJiBuZXdDaGlsZCkKICAgICBBU1NFUlQoIW5ld0NoaWxkLmlzRG9jdW1l
bnRGcmFnbWVudCgpKTsKICAgICBBU1NFUlQoIWhhc1RhZ05hbWUoSFRNTE5hbWVzOjp0ZW1wbGF0
ZVRhZykpOwogCi0gICAgZXhlY3V0ZU5vZGVJbnNlcnRpb25XaXRoU2NyaXB0QXNzZXJ0aW9uKCp0
aGlzLCBuZXdDaGlsZCwgbnVsbHB0ciwgQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyLCBSZXBs
YWNlZEFsbENoaWxkcmVuOjpObywgWyZdIHsKKyAgICBleGVjdXRlTm9kZUluc2VydGlvbldpdGhT
Y3JpcHRBc3NlcnRpb24oKnRoaXMsIG5ld0NoaWxkLCBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJz
ZXIsIFJlcGxhY2VkQWxsQ2hpbGRyZW46Ok5vLCBbJl0gewogICAgICAgICBpZiAoJmRvY3VtZW50
KCkgIT0gJm5ld0NoaWxkLmRvY3VtZW50KCkpCiAgICAgICAgICAgICBkb2N1bWVudCgpLmFkb3B0
Tm9kZShuZXdDaGlsZCk7CiAKQEAgLTg0MSw4ICs4MTIsNiBAQCBzdGF0aWMgYm9vbCBhZmZlY3Rz
RWxlbWVudHMoY29uc3QgQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICBj
YXNlIENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpUeXBlOjpOb25Db250ZW50c0NoaWxkSW5z
ZXJ0ZWQ6CiAgICAgY2FzZSBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6VHlwZTo6Tm9uQ29u
dGVudHNDaGlsZFJlbW92ZWQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIENvbnRh
aW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpUeXBlOjpGaW5pc2hlZFBhcnNpbmdDaGlsZHJlbjoKLSAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCmluZGV4IGU0NzQ2ODM5MThjYzA1
MTA5Y2IzN2UwNjViZWQ2MTQwY2RhMDdkOTcuLjNmYjE5YzU5NjVmNDVlNmRiNjdiOTE2MGJmNGQ5
MDcxZjU4ZTE3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApAQCAtNzQsNyArNzQs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbG9uZUNoaWxkTm9kZXMoQ29udGFpbmVyTm9kZSYgY2xv
bmUpOwogCiAgICAgc3RydWN0IENoaWxkQ2hhbmdlIHsKLSAgICAgICAgZW51bSBjbGFzcyBUeXBl
IDogdWludDhfdCB7IEVsZW1lbnRJbnNlcnRlZCwgRWxlbWVudFJlbW92ZWQsIFRleHRJbnNlcnRl
ZCwgVGV4dFJlbW92ZWQsIFRleHRDaGFuZ2VkLCBBbGxDaGlsZHJlblJlbW92ZWQsIE5vbkNvbnRl
bnRzQ2hpbGRSZW1vdmVkLCBOb25Db250ZW50c0NoaWxkSW5zZXJ0ZWQsIEFsbENoaWxkcmVuUmVw
bGFjZWQsIEZpbmlzaGVkUGFyc2luZ0NoaWxkcmVuIH07CisgICAgICAgIGVudW0gY2xhc3MgVHlw
ZSA6IHVpbnQ4X3QgeyBFbGVtZW50SW5zZXJ0ZWQsIEVsZW1lbnRSZW1vdmVkLCBUZXh0SW5zZXJ0
ZWQsIFRleHRSZW1vdmVkLCBUZXh0Q2hhbmdlZCwgQWxsQ2hpbGRyZW5SZW1vdmVkLCBOb25Db250
ZW50c0NoaWxkUmVtb3ZlZCwgTm9uQ29udGVudHNDaGlsZEluc2VydGVkLCBBbGxDaGlsZHJlblJl
cGxhY2VkIH07CiAgICAgICAgIGVudW0gY2xhc3MgU291cmNlIDogYm9vbCB7IFBhcnNlciwgQVBJ
IH07CiAKICAgICAgICAgQ2hpbGRDaGFuZ2U6OlR5cGUgdHlwZTsKQEAgLTk2LDggKzk2LDYgQEAg
cHVibGljOgogICAgICAgICAgICAgY2FzZSBDaGlsZENoYW5nZTo6VHlwZTo6QWxsQ2hpbGRyZW5S
ZW1vdmVkOgogICAgICAgICAgICAgY2FzZSBDaGlsZENoYW5nZTo6VHlwZTo6Tm9uQ29udGVudHND
aGlsZFJlbW92ZWQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
Y2FzZSBDaGlsZENoYW5nZTo6VHlwZTo6RmluaXNoZWRQYXJzaW5nQ2hpbGRyZW46Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApp
bmRleCBjMTZlNWE3MmRjNGZjYjc5ODIxYTMxZmM5YTU0NzQ5NGM4MTQ1MDMzLi41ZDdiMWJlMjYx
NjQwY2YxNDEwZWNhM2VjOTE3M2E0MDg5YWZkMThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZUNo
YW5nZUludmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIkNo
aWxkQ2hhbmdlSW52YWxpZGF0aW9uLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCIKQEAg
LTIwMzksNyArMjAzOCw3IEBAIFN0eWxlOjpFbGVtZW50U3R5bGUgRWxlbWVudDo6cmVzb2x2ZVN0
eWxlKGNvbnN0IFN0eWxlOjpSZXNvbHV0aW9uQ29udGV4dCYgcmVzb2x1CiAgICAgcmV0dXJuIHN0
eWxlUmVzb2x2ZXIoKS5zdHlsZUZvckVsZW1lbnQoKnRoaXMsIHJlc29sdXRpb25Db250ZXh0KTsK
IH0KIAotdm9pZCBpbnZhbGlkYXRlRm9yU2libGluZ0NvbWJpbmF0b3JzKEVsZW1lbnQqIHNpYmxp
bmcpCitzdGF0aWMgdm9pZCBpbnZhbGlkYXRlRm9yU2libGluZ0NvbWJpbmF0b3JzKEVsZW1lbnQq
IHNpYmxpbmcpCiB7CiAgICAgZm9yICg7IHNpYmxpbmc7IHNpYmxpbmcgPSBzaWJsaW5nLT5uZXh0
RWxlbWVudFNpYmxpbmcoKSkgewogICAgICAgICBpZiAoc2libGluZy0+c3R5bGVJc0FmZmVjdGVk
QnlQcmV2aW91c1NpYmxpbmcoKSkKQEAgLTI2NDMsMTEgKzI2NDIsMTI0IEBAIGJvb2wgRWxlbWVu
dDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIH0KICAgICByZXR1
cm4gZmFsc2U7CiB9CisKK3N0YXRpYyB2b2lkIGNoZWNrRm9yRW1wdHlTdHlsZUNoYW5nZShFbGVt
ZW50JiBlbGVtZW50KQoreworICAgIGlmIChlbGVtZW50LnN0eWxlQWZmZWN0ZWRCeUVtcHR5KCkp
IHsKKyAgICAgICAgYXV0byogc3R5bGUgPSBlbGVtZW50LnJlbmRlclN0eWxlKCk7CisgICAgICAg
IGlmICghc3R5bGUgfHwgKCFzdHlsZS0+ZW1wdHlTdGF0ZSgpIHx8IGVsZW1lbnQuaGFzQ2hpbGRO
b2RlcygpKSkKKyAgICAgICAgICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgp
OworICAgIH0KK30KKworCitzdGF0aWMgdm9pZCBpbnZhbGlkYXRlRm9yRm9yd2FyZFBvc2l0aW9u
YWxSdWxlcyhFbGVtZW50JiBwYXJlbnQsIEVsZW1lbnQqIGVsZW1lbnRBZnRlckNoYW5nZSkKK3sK
KyAgICBib29sIGNoaWxkcmVuQWZmZWN0ZWQgPSBwYXJlbnQuY2hpbGRyZW5BZmZlY3RlZEJ5Rm9y
d2FyZFBvc2l0aW9uYWxSdWxlcygpOworICAgIGJvb2wgZGVzY2VuZGFudHNBZmZlY3RlZCA9IHBh
cmVudC5kZXNjZW5kYW50c0FmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKCk7CisKKyAg
ICBpZiAoIWNoaWxkcmVuQWZmZWN0ZWQgJiYgIWRlc2NlbmRhbnRzQWZmZWN0ZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIGZvciAoYXV0byogc2libGluZyA9IGVsZW1lbnRBZnRlckNoYW5nZTsg
c2libGluZzsgc2libGluZyA9IHNpYmxpbmctPm5leHRFbGVtZW50U2libGluZygpKSB7CisgICAg
ICAgIGlmIChjaGlsZHJlbkFmZmVjdGVkKQorICAgICAgICAgICAgc2libGluZy0+aW52YWxpZGF0
ZVN0eWxlSW50ZXJuYWwoKTsKKyAgICAgICAgaWYgKGRlc2NlbmRhbnRzQWZmZWN0ZWQpIHsKKyAg
ICAgICAgICAgIGZvciAoYXV0byogc2libGluZ0NoaWxkID0gc2libGluZy0+Zmlyc3RFbGVtZW50
Q2hpbGQoKTsgc2libGluZ0NoaWxkOyBzaWJsaW5nQ2hpbGQgPSBzaWJsaW5nQ2hpbGQtPm5leHRF
bGVtZW50U2libGluZygpKQorICAgICAgICAgICAgICAgIHNpYmxpbmdDaGlsZC0+aW52YWxpZGF0
ZVN0eWxlRm9yU3VidHJlZUludGVybmFsKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRp
YyB2b2lkIGludmFsaWRhdGVGb3JCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyhFbGVtZW50JiBwYXJl
bnQsIEVsZW1lbnQqIGVsZW1lbnRCZWZvcmVDaGFuZ2UpCit7CisgICAgYm9vbCBjaGlsZHJlbkFm
ZmVjdGVkID0gcGFyZW50LmNoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVz
KCk7CisgICAgYm9vbCBkZXNjZW5kYW50c0FmZmVjdGVkID0gcGFyZW50LmRlc2NlbmRhbnRzQWZm
ZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVzKCk7CisKKyAgICBpZiAoIWNoaWxkcmVuQWZm
ZWN0ZWQgJiYgIWRlc2NlbmRhbnRzQWZmZWN0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZv
ciAoYXV0byogc2libGluZyA9IGVsZW1lbnRCZWZvcmVDaGFuZ2U7IHNpYmxpbmc7IHNpYmxpbmcg
PSBzaWJsaW5nLT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGNoaWxk
cmVuQWZmZWN0ZWQpCisgICAgICAgICAgICBzaWJsaW5nLT5pbnZhbGlkYXRlU3R5bGVJbnRlcm5h
bCgpOworICAgICAgICBpZiAoZGVzY2VuZGFudHNBZmZlY3RlZCkgeworICAgICAgICAgICAgZm9y
IChhdXRvKiBzaWJsaW5nQ2hpbGQgPSBzaWJsaW5nLT5maXJzdEVsZW1lbnRDaGlsZCgpOyBzaWJs
aW5nQ2hpbGQ7IHNpYmxpbmdDaGlsZCA9IHNpYmxpbmdDaGlsZC0+bmV4dEVsZW1lbnRTaWJsaW5n
KCkpCisgICAgICAgICAgICAgICAgc2libGluZ0NoaWxkLT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0
cmVlSW50ZXJuYWwoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworZW51bSBTaWJsaW5nQ2hlY2tU
eXBlIHsgRmluaXNoZWRQYXJzaW5nQ2hpbGRyZW4sIFNpYmxpbmdFbGVtZW50UmVtb3ZlZCwgT3Ro
ZXIgfTsKKworc3RhdGljIHZvaWQgY2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKEVsZW1lbnQm
IHBhcmVudCwgU2libGluZ0NoZWNrVHlwZSBjaGVja1R5cGUsIEVsZW1lbnQqIGVsZW1lbnRCZWZv
cmVDaGFuZ2UsIEVsZW1lbnQqIGVsZW1lbnRBZnRlckNoYW5nZSkKK3sKKyAgICAvLyA6ZW1wdHkg
c2VsZWN0b3IuCisgICAgY2hlY2tGb3JFbXB0eVN0eWxlQ2hhbmdlKHBhcmVudCk7CisKKyAgICBp
ZiAocGFyZW50LnN0eWxlVmFsaWRpdHkoKSA+PSBTdHlsZTo6VmFsaWRpdHk6OlN1YnRyZWVJbnZh
bGlkKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyA6Zmlyc3QtY2hpbGQuICBJbiB0aGUgcGFy
c2VyIGNhbGxiYWNrIGNhc2UsIHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgYW55dGhpbmcsIHNpbmNl
IHdlIHdlcmUgcmlnaHQgdGhlIGZpcnN0IHRpbWUuCisgICAgLy8gSW4gdGhlIERPTSBjYXNlLCB3
ZSBvbmx5IG5lZWQgdG8gZG8gc29tZXRoaW5nIGlmIHxhZnRlckNoYW5nZXwgaXMgbm90IDAuCisg
ICAgLy8gfGFmdGVyQ2hhbmdlfCBpcyAwIGluIHRoZSBwYXJzZXIgY2FzZSwgc28gaXQgd29ya3Mg
b3V0IHRoYXQgd2UnbGwgc2tpcCB0aGlzIGJsb2NrLgorICAgIGlmIChwYXJlbnQuY2hpbGRyZW5B
ZmZlY3RlZEJ5Rmlyc3RDaGlsZFJ1bGVzKCkgJiYgZWxlbWVudEFmdGVyQ2hhbmdlKSB7CisgICAg
ICAgIC8vIEZpbmQgb3VyIG5ldyBmaXJzdCBjaGlsZC4KKyAgICAgICAgUmVmUHRyPEVsZW1lbnQ+
IG5ld0ZpcnN0RWxlbWVudCA9IEVsZW1lbnRUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQocGFyZW50KTsK
KyAgICAgICAgLy8gRmluZCB0aGUgZmlyc3QgZWxlbWVudCBub2RlIGZvbGxvd2luZyB8YWZ0ZXJD
aGFuZ2V8CisKKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgaW5zZXJ0L2FwcGVuZCBjYXNlLgorICAg
ICAgICBpZiAobmV3Rmlyc3RFbGVtZW50ICE9IGVsZW1lbnRBZnRlckNoYW5nZSkgeworICAgICAg
ICAgICAgYXV0byogc3R5bGUgPSBlbGVtZW50QWZ0ZXJDaGFuZ2UtPnJlbmRlclN0eWxlKCk7Cisg
ICAgICAgICAgICBpZiAoIXN0eWxlIHx8IHN0eWxlLT5maXJzdENoaWxkU3RhdGUoKSkKKyAgICAg
ICAgICAgICAgICBlbGVtZW50QWZ0ZXJDaGFuZ2UtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWVJ
bnRlcm5hbCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2UgYWxzbyBoYXZlIHRvIGhhbmRs
ZSBub2RlIHJlbW92YWwuCisgICAgICAgIGlmIChjaGVja1R5cGUgPT0gU2libGluZ0VsZW1lbnRS
ZW1vdmVkICYmIG5ld0ZpcnN0RWxlbWVudCA9PSBlbGVtZW50QWZ0ZXJDaGFuZ2UgJiYgbmV3Rmly
c3RFbGVtZW50KSB7CisgICAgICAgICAgICBhdXRvKiBzdHlsZSA9IG5ld0ZpcnN0RWxlbWVudC0+
cmVuZGVyU3R5bGUoKTsKKyAgICAgICAgICAgIGlmICghc3R5bGUgfHwgIXN0eWxlLT5maXJzdENo
aWxkU3RhdGUoKSkKKyAgICAgICAgICAgICAgICBuZXdGaXJzdEVsZW1lbnQtPmludmFsaWRhdGVT
dHlsZUZvclN1YnRyZWVJbnRlcm5hbCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gOmxh
c3QtY2hpbGQuICBJbiB0aGUgcGFyc2VyIGNhbGxiYWNrIGNhc2UsIHdlIGRvbid0IGhhdmUgdG8g
Y2hlY2sgYW55dGhpbmcsIHNpbmNlIHdlIHdlcmUgcmlnaHQgdGhlIGZpcnN0IHRpbWUuCisgICAg
Ly8gSW4gdGhlIERPTSBjYXNlLCB3ZSBvbmx5IG5lZWQgdG8gZG8gc29tZXRoaW5nIGlmIHxhZnRl
ckNoYW5nZXwgaXMgbm90IDAuCisgICAgaWYgKHBhcmVudC5jaGlsZHJlbkFmZmVjdGVkQnlMYXN0
Q2hpbGRSdWxlcygpICYmIGVsZW1lbnRCZWZvcmVDaGFuZ2UpIHsKKyAgICAgICAgLy8gRmluZCBv
dXIgbmV3IGxhc3QgY2hpbGQuCisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBuZXdMYXN0RWxlbWVu
dCA9IEVsZW1lbnRUcmF2ZXJzYWw6Omxhc3RDaGlsZChwYXJlbnQpOworCisgICAgICAgIGlmIChu
ZXdMYXN0RWxlbWVudCAhPSBlbGVtZW50QmVmb3JlQ2hhbmdlKSB7CisgICAgICAgICAgICBhdXRv
KiBzdHlsZSA9IGVsZW1lbnRCZWZvcmVDaGFuZ2UtPnJlbmRlclN0eWxlKCk7CisgICAgICAgICAg
ICBpZiAoIXN0eWxlIHx8IHN0eWxlLT5sYXN0Q2hpbGRTdGF0ZSgpKQorICAgICAgICAgICAgICAg
IGVsZW1lbnRCZWZvcmVDaGFuZ2UtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWVJbnRlcm5hbCgp
OworICAgICAgICB9CisKKyAgICAgICAgLy8gV2UgYWxzbyBoYXZlIHRvIGhhbmRsZSBub2RlIHJl
bW92YWwuICBUaGUgcGFyc2VyIGNhbGxiYWNrIGNhc2UgaXMgc2ltaWxhciB0byBub2RlIHJlbW92
YWwgYXMgd2VsbCBpbiB0aGF0IHdlIG5lZWQgdG8gY2hhbmdlIHRoZSBsYXN0IGNoaWxkCisgICAg
ICAgIC8vIHRvIG1hdGNoIG5vdy4KKyAgICAgICAgaWYgKChjaGVja1R5cGUgPT0gU2libGluZ0Vs
ZW1lbnRSZW1vdmVkIHx8IGNoZWNrVHlwZSA9PSBGaW5pc2hlZFBhcnNpbmdDaGlsZHJlbikgJiYg
bmV3TGFzdEVsZW1lbnQgPT0gZWxlbWVudEJlZm9yZUNoYW5nZSAmJiBuZXdMYXN0RWxlbWVudCkg
eworICAgICAgICAgICAgYXV0byogc3R5bGUgPSBuZXdMYXN0RWxlbWVudC0+cmVuZGVyU3R5bGUo
KTsKKyAgICAgICAgICAgIGlmICghc3R5bGUgfHwgIXN0eWxlLT5sYXN0Q2hpbGRTdGF0ZSgpKQor
ICAgICAgICAgICAgICAgIG5ld0xhc3RFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVl
SW50ZXJuYWwoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludmFsaWRhdGVGb3JTaWJsaW5n
Q29tYmluYXRvcnMoZWxlbWVudEFmdGVyQ2hhbmdlKTsKKworICAgIGludmFsaWRhdGVGb3JGb3J3
YXJkUG9zaXRpb25hbFJ1bGVzKHBhcmVudCwgZWxlbWVudEFmdGVyQ2hhbmdlKTsKKyAgICBpbnZh
bGlkYXRlRm9yQmFja3dhcmRQb3NpdGlvbmFsUnVsZXMocGFyZW50LCBlbGVtZW50QmVmb3JlQ2hh
bmdlKTsKK30KKwogdm9pZCBFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmIGNoYW5nZSkKIHsKICAgICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdl
KTsKKyAgICBpZiAoY2hhbmdlLnNvdXJjZSA9PSBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIp
CisgICAgICAgIGNoZWNrRm9yRW1wdHlTdHlsZUNoYW5nZSgqdGhpcyk7CisgICAgZWxzZSB7Cisg
ICAgICAgIGF1dG8gY2hlY2tUeXBlID0gY2hhbmdlLnR5cGUgPT0gQ2hpbGRDaGFuZ2U6OlR5cGU6
OkVsZW1lbnRSZW1vdmVkID8gU2libGluZ0VsZW1lbnRSZW1vdmVkIDogT3RoZXI7CisgICAgICAg
IGNoZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcygqdGhpcywgY2hlY2tUeXBlLCBjaGFuZ2UucHJl
dmlvdXNTaWJsaW5nRWxlbWVudCwgY2hhbmdlLm5leHRTaWJsaW5nRWxlbWVudCk7CisgICAgfQog
Ci0gICAgaWYgKGF1dG8qIHNoYWRvd1Jvb3QgPSB0aGlzLT5zaGFkb3dSb290KCkpIHsKKyAgICBp
ZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IHRoaXMtPnNoYWRvd1Jvb3QoKSkgewogICAgICAg
ICBzd2l0Y2ggKGNoYW5nZS50eXBlKSB7CiAgICAgICAgIGNhc2UgQ2hpbGRDaGFuZ2U6OlR5cGU6
OkVsZW1lbnRJbnNlcnRlZDoKICAgICAgICAgY2FzZSBDaGlsZENoYW5nZTo6VHlwZTo6RWxlbWVu
dFJlbW92ZWQ6CkBAIC0yNjY0LDcgKzI3NzYsNiBAQCB2b2lkIEVsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQ2hpbGRDaGFuZ2U6OlR5cGU6Ok5vbkNvbnRlbnRzQ2hpbGRJbnNlcnRlZDoKICAg
ICAgICAgY2FzZSBDaGlsZENoYW5nZTo6VHlwZTo6Tm9uQ29udGVudHNDaGlsZFJlbW92ZWQ6Ci0g
ICAgICAgIGNhc2UgQ2hpbGRDaGFuZ2U6OlR5cGU6OkZpbmlzaGVkUGFyc2luZ0NoaWxkcmVuOgog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjkxLDEzICsyODAyLDcg
QEAgdm9pZCBFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKQogewogICAgIENvbnRhaW5l
ck5vZGU6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwogICAgIHNldElzUGFyc2luZ0NoaWxkcmVu
RmluaXNoZWQoKTsKLQotICAgIFN0eWxlOjpDaGlsZENoYW5nZUludmFsaWRhdGlvbiBzdHlsZUlu
dmFsaWRhdGlvbigqdGhpcywgewotICAgICAgICBDaGlsZENoYW5nZTo6VHlwZTo6RmluaXNoZWRQ
YXJzaW5nQ2hpbGRyZW4sCi0gICAgICAgIEVsZW1lbnRUcmF2ZXJzYWw6Omxhc3RDaGlsZCgqdGhp
cyksCi0gICAgICAgIG51bGxwdHIsCi0gICAgICAgIENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNl
cgotICAgIH0pOworICAgIGNoZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcygqdGhpcywgRmluaXNo
ZWRQYXJzaW5nQ2hpbGRyZW4sIEVsZW1lbnRUcmF2ZXJzYWw6Omxhc3RDaGlsZCgqdGhpcyksIG51
bGxwdHIpOwogfQogCiBzdGF0aWMgdm9pZCBhcHBlbmRBdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXIm
IGJ1aWxkZXIsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBl
ZjdjZTg5OThkZTAzZjIwZjQyMGYwOTVjMzgxN2RkMDUxNDMxZWM2Li4wNGNlNjVkZTZlODcyY2Yw
OTNkMmNjYWYwZGYxOGFiOTZlN2E0ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTc2Myw4ICs3
NjMsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxFbGVtZW50RGF0YT4gbV9lbGVtZW50RGF0YTsK
IH07CiAKLXZvaWQgaW52YWxpZGF0ZUZvclNpYmxpbmdDb21iaW5hdG9ycyhFbGVtZW50KiBzaWJs
aW5nKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0JFR0lOKFdlYkNvcmU6OkVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXgg
OTFjMjZmMTRkOWJkMDJiM2ZmZjFmNjAyYjBkOWMzZDlkOGYxOWUwZC4uNTNmMjM5YmJhZjZiM2Yy
NDkyNTJmMDI2Mzg1YTFlZGYwOThjMjY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApA
QCAtMTQ0LDkgKzE0NCw2IEBAIHZvaWQgU2hhZG93Um9vdDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0
IENoaWxkQ2hhbmdlJiBjaGlsZENoYW5nZSkKICAgICBjYXNlIENoaWxkQ2hhbmdlOjpUeXBlOjpO
b25Db250ZW50c0NoaWxkSW5zZXJ0ZWQ6CiAgICAgY2FzZSBDaGlsZENoYW5nZTo6VHlwZTo6QWxs
Q2hpbGRyZW5SZXBsYWNlZDoKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDaGlsZENoYW5nZTo6
VHlwZTo6RmluaXNoZWRQYXJzaW5nQ2hpbGRyZW46Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICBicmVhazsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMGQ3MTk0NmY2ZDFiMzg3ZDRkNTRhYTQ3YzBmYjUzYmIzNWJiN2RkNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9DaGlsZENoYW5nZUludmFsaWRhdGlvbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNzAgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDaGlsZENo
YW5nZUludmFsaWRhdGlvbi5oIgotCi0jaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCi0jaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNsb3RBc3NpZ25tZW50LmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlOjpTdHlsZSB7Ci0KLUNoaWxkQ2hhbmdlSW52YWxpZGF0aW9uOjpDaGlsZENo
YW5nZUludmFsaWRhdGlvbihDb250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0IENvbnRhaW5l
ck5vZGU6OkNoaWxkQ2hhbmdlJiBjaGlsZENoYW5nZSkKLSAgICA6IG1fcGFyZW50RWxlbWVudChp
czxFbGVtZW50Pihjb250YWluZXIpID8gZG93bmNhc3Q8RWxlbWVudD4oJmNvbnRhaW5lcikgOiBu
dWxscHRyKQotICAgICwgbV9pc0VuYWJsZWQobV9wYXJlbnRFbGVtZW50ID8gbV9wYXJlbnRFbGVt
ZW50LT5uZWVkc1N0eWxlSW52YWxpZGF0aW9uKCkgOiBmYWxzZSkKLSAgICAsIG1fY2hpbGRDaGFu
Z2UoY2hpbGRDaGFuZ2UpCi17Ci0gICAgLy8gRklYTUU6IERvIHNtYXJ0ZXIgaW52YWxpZGF0aW9u
IHNpbWlsYXQgdG8gQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uCi19Ci0KLUNoaWxkQ2hhbmdlSW52
YWxpZGF0aW9uOjp+Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24oKQotewotICAgIGlmICghbV9pc0Vu
YWJsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludmFsaWRhdGVBZnRlckNoYW5nZSgpOwot
fQotCi12b2lkIENoaWxkQ2hhbmdlSW52YWxpZGF0aW9uOjppbnZhbGlkYXRlQWZ0ZXJDaGFuZ2Uo
KQotewotICAgIGNoZWNrRm9yRW1wdHlTdHlsZUNoYW5nZSgpOwotCi0gICAgaWYgKG1fY2hpbGRD
aGFuZ2UudHlwZSA9PSBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6VHlwZTo6RmluaXNoZWRQ
YXJzaW5nQ2hpbGRyZW4pIHsKLSAgICAgICAgY2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKCk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobV9jaGlsZENoYW5nZS5zb3VyY2Ug
PT0gQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXMoKTsKLX0KLQotdm9pZCBD
aGlsZENoYW5nZUludmFsaWRhdGlvbjo6Y2hlY2tGb3JFbXB0eVN0eWxlQ2hhbmdlKCkKLXsKLSAg
ICBhdXRvJiBlbGVtZW50ID0gcGFyZW50RWxlbWVudCgpOwotICAgIGlmICghZWxlbWVudC5zdHls
ZUFmZmVjdGVkQnlFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvKiBzdHlsZSA9
IGVsZW1lbnQucmVuZGVyU3R5bGUoKTsKLSAgICBpZiAoIXN0eWxlIHx8ICghc3R5bGUtPmVtcHR5
U3RhdGUoKSB8fCBlbGVtZW50Lmhhc0NoaWxkTm9kZXMoKSkpCi0gICAgICAgIGVsZW1lbnQuaW52
YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwotfQotCi1zdGF0aWMgdm9pZCBpbnZhbGlkYXRlRm9y
Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcyhFbGVtZW50JiBwYXJlbnQsIEVsZW1lbnQqIGVsZW1lbnRB
ZnRlckNoYW5nZSkKLXsKLSAgICBib29sIGNoaWxkcmVuQWZmZWN0ZWQgPSBwYXJlbnQuY2hpbGRy
ZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcygpOwotICAgIGJvb2wgZGVzY2VuZGFu
dHNBZmZlY3RlZCA9IHBhcmVudC5kZXNjZW5kYW50c0FmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25h
bFJ1bGVzKCk7Ci0KLSAgICBpZiAoIWNoaWxkcmVuQWZmZWN0ZWQgJiYgIWRlc2NlbmRhbnRzQWZm
ZWN0ZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAoYXV0byogc2libGluZyA9IGVsZW1l
bnRBZnRlckNoYW5nZTsgc2libGluZzsgc2libGluZyA9IHNpYmxpbmctPm5leHRFbGVtZW50U2li
bGluZygpKSB7Ci0gICAgICAgIGlmIChjaGlsZHJlbkFmZmVjdGVkKQotICAgICAgICAgICAgc2li
bGluZy0+aW52YWxpZGF0ZVN0eWxlSW50ZXJuYWwoKTsKLSAgICAgICAgaWYgKGRlc2NlbmRhbnRz
QWZmZWN0ZWQpIHsKLSAgICAgICAgICAgIGZvciAoYXV0byogc2libGluZ0NoaWxkID0gc2libGlu
Zy0+Zmlyc3RFbGVtZW50Q2hpbGQoKTsgc2libGluZ0NoaWxkOyBzaWJsaW5nQ2hpbGQgPSBzaWJs
aW5nQ2hpbGQtPm5leHRFbGVtZW50U2libGluZygpKQotICAgICAgICAgICAgICAgIHNpYmxpbmdD
aGlsZC0+aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZUludGVybmFsKCk7Ci0gICAgICAgIH0KLSAg
ICB9Ci19Ci0KLXN0YXRpYyB2b2lkIGludmFsaWRhdGVGb3JCYWNrd2FyZFBvc2l0aW9uYWxSdWxl
cyhFbGVtZW50JiBwYXJlbnQsIEVsZW1lbnQqIGVsZW1lbnRCZWZvcmVDaGFuZ2UpCi17Ci0gICAg
Ym9vbCBjaGlsZHJlbkFmZmVjdGVkID0gcGFyZW50LmNoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJk
UG9zaXRpb25hbFJ1bGVzKCk7Ci0gICAgYm9vbCBkZXNjZW5kYW50c0FmZmVjdGVkID0gcGFyZW50
LmRlc2NlbmRhbnRzQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVzKCk7Ci0KLSAgICBp
ZiAoIWNoaWxkcmVuQWZmZWN0ZWQgJiYgIWRlc2NlbmRhbnRzQWZmZWN0ZWQpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGZvciAoYXV0byogc2libGluZyA9IGVsZW1lbnRCZWZvcmVDaGFuZ2U7IHNp
Ymxpbmc7IHNpYmxpbmcgPSBzaWJsaW5nLT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCkpIHsKLSAg
ICAgICAgaWYgKGNoaWxkcmVuQWZmZWN0ZWQpCi0gICAgICAgICAgICBzaWJsaW5nLT5pbnZhbGlk
YXRlU3R5bGVJbnRlcm5hbCgpOwotICAgICAgICBpZiAoZGVzY2VuZGFudHNBZmZlY3RlZCkgewot
ICAgICAgICAgICAgZm9yIChhdXRvKiBzaWJsaW5nQ2hpbGQgPSBzaWJsaW5nLT5maXJzdEVsZW1l
bnRDaGlsZCgpOyBzaWJsaW5nQ2hpbGQ7IHNpYmxpbmdDaGlsZCA9IHNpYmxpbmdDaGlsZC0+bmV4
dEVsZW1lbnRTaWJsaW5nKCkpCi0gICAgICAgICAgICAgICAgc2libGluZ0NoaWxkLT5pbnZhbGlk
YXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwoKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotdm9p
ZCBDaGlsZENoYW5nZUludmFsaWRhdGlvbjo6Y2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKCkK
LXsKLSAgICBhdXRvJiBwYXJlbnQgPSBwYXJlbnRFbGVtZW50KCk7Ci0gICAgYXV0byogZWxlbWVu
dEJlZm9yZUNoYW5nZSA9IG1fY2hpbGRDaGFuZ2UucHJldmlvdXNTaWJsaW5nRWxlbWVudDsKLSAg
ICBhdXRvKiBlbGVtZW50QWZ0ZXJDaGFuZ2UgPSBtX2NoaWxkQ2hhbmdlLm5leHRTaWJsaW5nRWxl
bWVudDsKLQotICAgIC8vIDpmaXJzdC1jaGlsZC4gSW4gdGhlIHBhcnNlciBjYWxsYmFjayBjYXNl
LCB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGFueXRoaW5nLCBzaW5jZSB3ZSB3ZXJlIHJpZ2h0IHRo
ZSBmaXJzdCB0aW1lLgotICAgIC8vIEluIHRoZSBET00gY2FzZSwgd2Ugb25seSBuZWVkIHRvIGRv
IHNvbWV0aGluZyBpZiB8YWZ0ZXJDaGFuZ2V8IGlzIG5vdCAwLgotICAgIC8vIHxhZnRlckNoYW5n
ZXwgaXMgMCBpbiB0aGUgcGFyc2VyIGNhc2UsIHNvIGl0IHdvcmtzIG91dCB0aGF0IHdlJ2xsIHNr
aXAgdGhpcyBibG9jay4KLSAgICBpZiAocGFyZW50LmNoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hp
bGRSdWxlcygpICYmIGVsZW1lbnRBZnRlckNoYW5nZSkgewotICAgICAgICAvLyBGaW5kIG91ciBu
ZXcgZmlyc3QgY2hpbGQuCi0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBuZXdGaXJzdEVsZW1lbnQg
PSBFbGVtZW50VHJhdmVyc2FsOjpmaXJzdENoaWxkKHBhcmVudCk7Ci0gICAgICAgIC8vIEZpbmQg
dGhlIGZpcnN0IGVsZW1lbnQgbm9kZSBmb2xsb3dpbmcgfGFmdGVyQ2hhbmdlfAotCi0gICAgICAg
IC8vIFRoaXMgaXMgdGhlIGluc2VydC9hcHBlbmQgY2FzZS4KLSAgICAgICAgaWYgKG5ld0ZpcnN0
RWxlbWVudCAhPSBlbGVtZW50QWZ0ZXJDaGFuZ2UpIHsKLSAgICAgICAgICAgIGF1dG8qIHN0eWxl
ID0gZWxlbWVudEFmdGVyQ2hhbmdlLT5yZW5kZXJTdHlsZSgpOwotICAgICAgICAgICAgaWYgKCFz
dHlsZSB8fCBzdHlsZS0+Zmlyc3RDaGlsZFN0YXRlKCkpCi0gICAgICAgICAgICAgICAgZWxlbWVu
dEFmdGVyQ2hhbmdlLT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwoKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIC8vIFdlIGFsc28gaGF2ZSB0byBoYW5kbGUgbm9kZSByZW1vdmFsLgot
ICAgICAgICBpZiAobV9jaGlsZENoYW5nZS50eXBlID09IENvbnRhaW5lck5vZGU6OkNoaWxkQ2hh
bmdlOjpUeXBlOjpFbGVtZW50UmVtb3ZlZCAmJiBuZXdGaXJzdEVsZW1lbnQgPT0gZWxlbWVudEFm
dGVyQ2hhbmdlICYmIG5ld0ZpcnN0RWxlbWVudCkgewotICAgICAgICAgICAgYXV0byogc3R5bGUg
PSBuZXdGaXJzdEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7Ci0gICAgICAgICAgICBpZiAoIXN0eWxl
IHx8ICFzdHlsZS0+Zmlyc3RDaGlsZFN0YXRlKCkpCi0gICAgICAgICAgICAgICAgbmV3Rmlyc3RF
bGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwoKTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIC8vIDpsYXN0LWNoaWxkLiBJbiB0aGUgcGFyc2VyIGNhbGxiYWNrIGNhc2Us
IHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgYW55dGhpbmcsIHNpbmNlIHdlIHdlcmUgcmlnaHQgdGhl
IGZpcnN0IHRpbWUuCi0gICAgLy8gSW4gdGhlIERPTSBjYXNlLCB3ZSBvbmx5IG5lZWQgdG8gZG8g
c29tZXRoaW5nIGlmIHxhZnRlckNoYW5nZXwgaXMgbm90IDAuCi0gICAgaWYgKHBhcmVudC5jaGls
ZHJlbkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxlcygpICYmIGVsZW1lbnRCZWZvcmVDaGFuZ2UpIHsK
LSAgICAgICAgLy8gRmluZCBvdXIgbmV3IGxhc3QgY2hpbGQuCi0gICAgICAgIFJlZlB0cjxFbGVt
ZW50PiBuZXdMYXN0RWxlbWVudCA9IEVsZW1lbnRUcmF2ZXJzYWw6Omxhc3RDaGlsZChwYXJlbnQp
OwotCi0gICAgICAgIGlmIChuZXdMYXN0RWxlbWVudCAhPSBlbGVtZW50QmVmb3JlQ2hhbmdlKSB7
Ci0gICAgICAgICAgICBhdXRvKiBzdHlsZSA9IGVsZW1lbnRCZWZvcmVDaGFuZ2UtPnJlbmRlclN0
eWxlKCk7Ci0gICAgICAgICAgICBpZiAoIXN0eWxlIHx8IHN0eWxlLT5sYXN0Q2hpbGRTdGF0ZSgp
KQotICAgICAgICAgICAgICAgIGVsZW1lbnRCZWZvcmVDaGFuZ2UtPmludmFsaWRhdGVTdHlsZUZv
clN1YnRyZWVJbnRlcm5hbCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gV2UgYWxzbyBoYXZl
IHRvIGhhbmRsZSBub2RlIHJlbW92YWwuIFRoZSBwYXJzZXIgY2FsbGJhY2sgY2FzZSBpcyBzaW1p
bGFyIHRvIG5vZGUgcmVtb3ZhbCBhcyB3ZWxsIGluIHRoYXQgd2UgbmVlZCB0byBjaGFuZ2UgdGhl
IGxhc3QgY2hpbGQKLSAgICAgICAgLy8gdG8gbWF0Y2ggbm93LgotICAgICAgICBib29sIHJlbW92
ZWRPckZpbmlzaGVkID0gbV9jaGlsZENoYW5nZS50eXBlID09IENvbnRhaW5lck5vZGU6OkNoaWxk
Q2hhbmdlOjpUeXBlOjpFbGVtZW50UmVtb3ZlZCB8fCBtX2NoaWxkQ2hhbmdlLnR5cGUgPT0gQ29u
dGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlR5cGU6OkZpbmlzaGVkUGFyc2luZ0NoaWxkcmVuOwot
ICAgICAgICBpZiAocmVtb3ZlZE9yRmluaXNoZWQgJiYgbmV3TGFzdEVsZW1lbnQgPT0gZWxlbWVu
dEJlZm9yZUNoYW5nZSAmJiBuZXdMYXN0RWxlbWVudCkgewotICAgICAgICAgICAgYXV0byogc3R5
bGUgPSBuZXdMYXN0RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsKLSAgICAgICAgICAgIGlmICghc3R5
bGUgfHwgIXN0eWxlLT5sYXN0Q2hpbGRTdGF0ZSgpKQotICAgICAgICAgICAgICAgIG5ld0xhc3RF
bGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwoKTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIGludmFsaWRhdGVGb3JTaWJsaW5nQ29tYmluYXRvcnMoZWxlbWVudEFmdGVy
Q2hhbmdlKTsKLQotICAgIGludmFsaWRhdGVGb3JGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKHBhcmVu
dCwgZWxlbWVudEFmdGVyQ2hhbmdlKTsKLSAgICBpbnZhbGlkYXRlRm9yQmFja3dhcmRQb3NpdGlv
bmFsUnVsZXMocGFyZW50LCBlbGVtZW50QmVmb3JlQ2hhbmdlKTsKLX0KLQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL0NoaWxkQ2hhbmdlSW52YWxpZGF0aW9uLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDg3NWEwMTE3OTlmOTUwNWE3YjAzMTcxZjQ4YWQ4NjkyZTZiMzMyNGYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvQ2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0x
LDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkVsZW1l
bnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIFN0eWxlIHsKLQotY2xhc3Mg
Q2hpbGRDaGFuZ2VJbnZhbGlkYXRpb24gewotcHVibGljOgotICAgIENoaWxkQ2hhbmdlSW52YWxp
ZGF0aW9uKENvbnRhaW5lck5vZGUmLCBjb25zdCBDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZSYp
OwotICAgIH5DaGlsZENoYW5nZUludmFsaWRhdGlvbigpOwotCi1wcml2YXRlOgotICAgIHZvaWQg
aW52YWxpZGF0ZUFmdGVyQ2hhbmdlKCk7Ci0gICAgdm9pZCBjaGVja0ZvckVtcHR5U3R5bGVDaGFu
Z2UoKTsKLSAgICB2b2lkIGNoZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcygpOwotCi0gICAgRWxl
bWVudCYgcGFyZW50RWxlbWVudCgpIHsgcmV0dXJuICptX3BhcmVudEVsZW1lbnQ7IH0KLQotICAg
IEVsZW1lbnQqIG1fcGFyZW50RWxlbWVudCB7IG51bGxwdHIgfTsKLSAgICBjb25zdCBib29sIG1f
aXNFbmFibGVkOwotCi0gICAgY29uc3QgQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2UmIG1fY2hp
bGRDaGFuZ2U7Ci19OwotCi19Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUFkanVzdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgKaW5k
ZXggOTcyYTFhYmQxNTIwNjA1NjAxODM0MzFmNjQ4NDc5OTgzOGQ5OWQ0Mi4uMTkxMzFlNTgwZjU2
NDVhZWEyMjMyODI5NGU5ZDc2MWViZjgzNWQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVBZGp1c3Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRq
dXN0ZXIuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJSZW5k
ZXJTdHlsZUNvbnN0YW50cy5oIgotI2luY2x1ZGUgIlRleHRTaXplQWRqdXN0bWVudC5oIgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>