<?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>48249</bug_id>
          
          <creation_ts>2010-10-25 09:38:44 -0700</creation_ts>
          <short_desc>REGRESSION(r70451): Broke set-unloaded-frame-location.html under Qt (Requested by caseq on #webkit).</short_desc>
          <delta_ts>2010-10-25 10:44: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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45271</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>abarth</cc>
    
    <cc>caseq</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298914</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-25 09:38:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70451 broke the build:
Broke set-unloaded-frame-location.html under Qt (Requested by caseq on #webkit).

This is an automatic bug report generated by the sheriff-bot. 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 case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298915</commentid>
    <comment_count>1</comment_count>
      <attachid>71763</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-25 09:39:23 -0700</bug_when>
    <thetext>Created attachment 71763
ROLLOUT of r70451

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 rollout will be successful.  This process takes approximately 15 minutes.

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

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298958</commentid>
    <comment_count>2</comment_count>
      <attachid>71763</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-25 10:44:46 -0700</bug_when>
    <thetext>Comment on attachment 71763
ROLLOUT of r70451

Clearing flags on attachment: 71763

Committed r70463: &lt;http://trac.webkit.org/changeset/70463&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298959</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-25 10:44:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71763</attachid>
            <date>2010-10-25 09:39:23 -0700</date>
            <delta_ts>2010-10-25 10:44:46 -0700</delta_ts>
            <desc>ROLLOUT of r70451</desc>
            <filename>bug-48249-20101025163919.patch</filename>
            <type>text/plain</type>
            <size>60343</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBjMTFlZGEyYWJiMmNiM2E1N2M3YjY1ZWZjZDNmNzEwMjMwZGNiODljLi42
ZGJiNjQwOGNlNjliOTIxNmZkODA0YWVhODkwZjNhZTQ3MjU4ZjFjIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTAtMTAtMjUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MDQ1MS4KKyAg
ICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNzA0NTEKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MjQ5CisKKyAgICAgICAgQnJv
a2Ugc2V0LXVubG9hZGVkLWZyYW1lLWxvY2F0aW9uLmh0bWwgdW5kZXIgUXQgKFJlcXVlc3RlZCBi
eQorICAgICAgICBjYXNlcSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmd5cGk6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0UG9z
aXRpb24uaDogUmVtb3ZlZC4KKwogMjAxMC0xMC0yNSAgUGV0ZXIgUnliaW4gIDxwZXRlci5yeWJp
bkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFtIGIvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggZjc4MDZiNGU4OGU4ZTBmNWM1NjBiYzUxNTZiMmEwYzY3MGE1NjE0NS4u
YzUwN2Y1ZDk2YjJmNjNiZDJiNzJmZTI2ODdjMjI3MmNkOGUzN2YxYyAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZp
bGUuYW0KQEAgLTUxOCw3ICs1MTgsNiBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlK
YXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCBcCiAJSmF2YVNjcmlwdENvcmUv
d3RmL3RleHQvU3RyaW5nSW1wbC5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdT
dGF0aWNzLmNwcCBcCi0JSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmggXAog
CUphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAgXAogCUphdmFTY3JpcHRDb3Jl
L3d0Zi90ZXh0L1dURlN0cmluZy5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkSWRlbnRp
ZmllckRhdGFQdGhyZWFkcy5jcHAgXApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaSBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKaW5kZXgg
ZGViMzZmYmNiNjQ1MjYxMWJhNGMzZDkzMTcxN2UzM2JhNDZlNTEzMi4uNjI1MmQwNzdjMGJjNWFh
Mjk3ZWM4NjA4ZGJlYjcyMmQ0ODU0ZTEwYiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZ3lwaQorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBp
CkBAIC00NjEsNyArNDYxLDYgQEAKICAgICAgICAgICAgICd3dGYvdGV4dC9TdHJpbmdJbXBsLmNw
cCcsCiAgICAgICAgICAgICAnd3RmL3RleHQvU3RyaW5nSW1wbC5oJywKICAgICAgICAgICAgICd3
dGYvdGV4dC9TdHJpbmdTdGF0aWNzLmNwcCcsCi0gICAgICAgICAgICAnd3RmL3RleHQvVGV4dFBv
c2l0aW9uLmgnLAogICAgICAgICAgICAgJ3d0Zi90ZXh0L1dURlN0cmluZy5jcHAnLAogICAgICAg
ICAgICAgJ3d0Zi90ZXh0L1dURlN0cmluZy5oJywKICAgICAgICAgICAgICd3dGYvdW5pY29kZS9D
b2xsYXRvci5oJywKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI0MGQ3NGU3YTdkY2U4MzE0ZDg4NzAzOWMy
NTU2MDY5Y2ZmYjUwOTQuLmQxMzRhNzMxYjc1YjJjYzVhYTkyZGVjZGU0OGU5YTVmMjZkMGQwYjUg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTU1LDcgKzU1NSw2IEBACiAJCUUxRUU3OTNEMEQ2QzlCOTIw
MEZFQTNCQSAvKiBUaHJlYWRpbmdQdGhyZWFkcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNzkzQzBENkM5QjkyMDBGRUEzQkEgLyogVGhyZWFk
aW5nUHRocmVhZHMuY3BwICovOyB9OwogCQlFMUVGNzlBQTBDRTk3QkE2MDA4OEQ1MDAgLyogVVRG
OC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVG
NzlBODBDRTk3QkE2MDA4OEQ1MDAgLyogVVRGOC5jcHAgKi87IH07CiAJCUU0OEUwRjJEMEY4MjE1
MTcwMEE4Q0EzNyAvKiBGYXN0QWxsb2NCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDhFMEYyQzBGODIxNTE3MDBBOENBMzcgLyogRmFzdEFsbG9j
QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUYzQkQzMUVEMTI2NzM1NzcwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3
RiAvKiBUZXh0UG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlGRTFCNDQ3QTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0cmFzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTFCNDQ3OTBF
Q0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwog
CkBAIC0xMTQ1LDcgKzExNDQsNiBAQAogCQlFMUVGNzlBODBDRTk3QkE2MDA4OEQ1MDAgLyogVVRG
OC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVEY4LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRjc5QTkwQ0U5N0JBNjAwODhENTAwIC8qIFVU
RjguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRGOC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDhFMEYyQzBGODIxNTE3MDBBOENBMzcgLyogRmFzdEFsbG9j
QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYXN0QWxsb2NCYXNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3RiAv
KiBUZXh0UG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dFBv
c2l0aW9uLmg7IHBhdGggPSB0ZXh0L1RleHRQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNUJCMkJDNTAzMEY3NzIxMDFGQ0ZFMUQgLyogQ29tcGxldGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJRjVDMjkwRTYw
Mjg0Rjk4RTAxODYzNUNBIC8qIEphdmFTY3JpcHRDb3JlUHJlZml4LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHRDb3JlUHJlZml4
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJRjY4RUJCOEMw
MjU1RDRDNjAxRkY2MEY3IC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OwpAQCAtMTg2Miw3ICsxODYwLDYgQEAKIAkJCQk4NjhCRkEwNzExN0NF
RkQxMDBCOTA4QjEgLyogU3RyaW5nSW1wbC5oICovLAogCQkJCTg2Qjk5QUUyMTE3RTU3ODEwMERG
NUE5MCAvKiBTdHJpbmdJbXBsQmFzZS5oICovLAogCQkJCTg2MjZCRUNFMTE5MjhFMzkwMDc4MkZB
QiAvKiBTdHJpbmdTdGF0aWNzLmNwcCAqLywKLQkJCQlGM0JEMzFEMDEyNjczMDE4MDA2NTQ2N0Yg
LyogVGV4dFBvc2l0aW9uLmggKi8sCiAJCQkJODY4QkZBMTUxMTdDRjE5OTAwQjkwOEIxIC8qIFdU
RlN0cmluZy5jcHAgKi8sCiAJCQkJODY4QkZBMTYxMTdDRjE5OTAwQjkwOEIxIC8qIFdURlN0cmlu
Zy5oICovLAogCQkJKTsKQEAgLTIzNTIsNyArMjM0OSw2IEBACiAJCQkJOTAyMTNFM0UxMjNBNDBD
MjAwRDQyMkYzIC8qIE1lbW9yeVN0YXRpc3RpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MzBC
NjEyMTI1MDA2OEYwMDlEMjVCMSAvKiBTdHJpY3RFdmFsQWN0aXZhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMzRjVDREMxMjY5MjI5QjAwNDkxOTFFIC8qIE51bGxQdHIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUYzQkQzMUVEMTI2NzM1NzcwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0
aW9uLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9UZXh0UG9zaXRpb24uaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNjNkYzU5NDkwZGRhY2FiMWQ3ZWE5ODkxZmY3NTE1MWZmZDU2
MGI2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KYXZh
U2NyaXB0Q29yZS93dGYvdGV4dC9UZXh0UG9zaXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDE0
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUZXh0UG9zaXRpb25faAotI2RlZmlu
ZSBUZXh0UG9zaXRpb25faAotCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLQotbmFtZXNw
YWNlIFdURiB7Ci0KLS8qCi0gKiBUZXh0IFBvc2l0aW9uCi0gKgotICogVGV4dFBvc2l0aW9uIHN0
cnVjdHVyZSBzcGVjaWZpZXMgY29vcmRpbmF0ZXMgd2l0aGluIGFuIHRleHQgcmVzb3VyY2UuIEl0
IGlzIHVzZWQgbW9zdGx5Ci0gKiBmb3Igc2F2aW5nIHNjcmlwdCBzb3VyY2UgcG9zaXRpb24uCi0g
KgotICogTGF0ZXIgVGV4dFBvc2l0aW9uMCBhbmQgVGV4dFBvc2l0aW9uMSBhbmQgYm90aCBudW1i
ZXIgdHlwZXMgY2FuIGJlIG1lcmdlZCB0b2dldGhlciBxdWl0ZSBlYXNpbHkuCi0gKgotICogMC1i
YXNlZCBhbmQgMS1iYXNlZAotICoKLSAqIExpbmUgYW5kIGNvbHVtbiBudW1iZXJzIGNvdWxkIGJl
IGludGVycHJldGVkIGFzIHplcm8tYmFzZWQgb3IgMS1iYXNlZC4gU2luY2UKLSAqIGJvdGggcHJh
Y3RpY2VzIGNvZXhpc3QgaW4gV2ViS2l0IHNvdXJjZSBiYXNlLCAnaW50JyB0eXBlIHNob3VsZCBi
ZSByZXBsYWNlZCB3aXRoCi0gKiBhIGRlZGljYXRlZCB3cmFwcGVyIHR5cGVzLCBzbyB0aGF0IGNv
bXBpbGVyIGhlbHBlZCB1cyB3aXRoIHRoaXMgYW1iaWd1aXR5LgotICoKLSAqIEhlcmUgd2UgaW50
cm9kdWNlIDIgdHlwZXMgb2YgbnVtYmVyczogWmVyb0Jhc2VkTnVtYmVyIGFuZCBPbmVCYXNlZE51
bWJlciBhbmQKLSAqIDIgY29ycmVzcG9uZGluZyB0eXBlcyBvZiBUZXh0UG9zaXRpb24gc3RydWN0
dXJlLiBXaGlsZSBvbmx5IG9uZSB0eXBlIG91Z2h0IHRvIGJlIGVub3VnaCwKLSAqIHRoaXMgaXMg
ZG9uZSB0byBrZWVwIHRyYW5zaXRpb24gdG8gdGhlIG5ldyB0eXBlcyBhcyB0cmFuc3BhcmVudCBh
cyBwb3NzaWJsZToKLSAqIGUuZy4gaW4gYXJlYXMgd2hlcmUgMC1iYXNlZCBpbnRlZ2VycyBhcmUg
dXNlZCwgVGV4dFBvc2l0aW9uMCBzaG91bGQgYmUgaW50cm9kdWNlZC4gVGhpcwotICogd2F5IGFs
bCBjaGFuZ2VzIHdpbGwgcmVtYWluIHRyYWNrYWJsZS4KLSAqCi0gKiBMYXRlciBib3RoIG51bWJl
ciB0eXBlcyBjYW4gYmUgbWVyZ2VkIGluIG9uZSB0eXBlIHF1aXRlIGVhc2lseS4KLSAqCi0gKiBG
b3IgdHlwZSBzYWZldHkgYW5kIGZvciB0aGUgZnV0dXJlIHR5cGUgbWVyZ2UgaXQgaXMgaW1wb3J0
YW50IHRoYXQgYWxsIG9wZXJhdGlvbnMgaW4gQVBJCi0gKiB0aGF0IGFjY2VwdCBvciByZXR1cm4g
aW50ZWdlciBoYXZlIGEgbmFtZSBleHBsaWNpdGx5IGRlZmluaW5nIGJhc2Ugb2YgaW50ZWdlci4g
Rm9yIHRoaXMgcmVhc29uCi0gKiBpbnQtcmVjZWl2aW5nIGNvbnN0cnVjdG9ycyBhcmUgaGlkZGVu
IGZyb20gQVBJLgotICovCi0KLXRlbXBsYXRlPHR5cGVuYW1lIE5VTUJFUj4KLWNsYXNzIFRleHRQ
b3NpdGlvbiB7Ci1wdWJsaWM6Ci0gICAgVGV4dFBvc2l0aW9uKE5VTUJFUiBsaW5lLCBOVU1CRVIg
Y29sdW1uKQotICAgICAgICA6IG1fbGluZShsaW5lKQotICAgICAgICAsIG1fY29sdW1uKGNvbHVt
bikKLSAgICB7Ci0gICAgfQotICAgIFRleHRQb3NpdGlvbigpIHt9Ci0KLSAgICAvLyBBICdtaW5p
bXVtJyB2YWx1ZSBvZiBwb3NpdGlvbiwgdXNlZCBhcyBhIGRlZmF1bHQgdmFsdWUuCi0gICAgc3Rh
dGljIFRleHRQb3NpdGlvbjxOVU1CRVI+IG1pbmltdW1Qb3NpdGlvbigpIHsgcmV0dXJuIFRleHRQ
b3NpdGlvbjxOVU1CRVI+KE5VTUJFUjo6YmFzZSgpLCBOVU1CRVI6OmJhc2UoKSk7IH0KLQotICAg
IC8vIEEgdmFsdWUgd2l0aCBsaW5lIHZhbHVlIGxlc3MgdGhhbiBhIG1pbmltdW07IHVzZWQgYXMg
YW4gaW1wb3NzaWJsZSBwb3NpdGlvbi4KLSAgICBzdGF0aWMgVGV4dFBvc2l0aW9uPE5VTUJFUj4g
YmVsb3dSYW5nZVBvc2l0aW9uKCkgeyByZXR1cm4gVGV4dFBvc2l0aW9uPE5VTUJFUj4oTlVNQkVS
OjpiZWxvd0Jhc2UoKSwgTlVNQkVSOjpiYXNlKCkpOyB9Ci0KLSAgICBOVU1CRVIgbV9saW5lOwot
ICAgIE5VTUJFUiBtX2NvbHVtbjsKLX07Ci0KLWNsYXNzIE9uZUJhc2VkTnVtYmVyOwotCi0vLyBB
biBpbnQgd3JhcHBlciB0aGF0IGFsd2F5cyByZW1pbmRzIHlvdSB0aGF0IHRoZSBudW1iZXIgc2hv
dWxkIGJlIDAtYmFzZWQKLWNsYXNzIFplcm9CYXNlZE51bWJlciB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFplcm9CYXNlZE51bWJlciBmcm9tWmVyb0Jhc2VkSW50KGludCB6ZXJvQmFzZWRJbnQpIHsg
cmV0dXJuIFplcm9CYXNlZE51bWJlcih6ZXJvQmFzZWRJbnQpOyB9Ci0KLSAgICBaZXJvQmFzZWRO
dW1iZXIoKSB7fQotCi0gICAgaW50IHplcm9CYXNlZEludCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFs
dWU7IH0KLQotICAgIE9uZUJhc2VkTnVtYmVyIGNvbnZlcnRUb09uZUJhc2VkKCkgY29uc3Q7Ci0K
LSAgICBzdGF0aWMgWmVyb0Jhc2VkTnVtYmVyIGJhc2UoKSB7IHJldHVybiAwOyB9Ci0gICAgc3Rh
dGljIFplcm9CYXNlZE51bWJlciBiZWxvd0Jhc2UoKSB7IHJldHVybiAtMTsgfQotCi1wcml2YXRl
OgotICAgIFplcm9CYXNlZE51bWJlcihpbnQgdmFsdWUpIDogbV92YWx1ZSh2YWx1ZSkge30KLSAg
ICBpbnQgbV92YWx1ZTsKLX07Ci0KLS8vIEFuIGludCB3cmFwcGVyIHRoYXQgYWx3YXlzIHJlbWlu
ZHMgeW91IHRoYXQgdGhlIG51bWJlciBzaG91bGQgYmUgMS1iYXNlZAotY2xhc3MgT25lQmFzZWRO
dW1iZXIgewotcHVibGljOgotICAgIHN0YXRpYyBPbmVCYXNlZE51bWJlciBmcm9tT25lQmFzZWRJ
bnQoaW50IG9uZUJhc2VkSW50KSB7IHJldHVybiBPbmVCYXNlZE51bWJlcihvbmVCYXNlZEludCk7
IH0KLSAgICBPbmVCYXNlZE51bWJlcigpIHt9Ci0KLSAgICBpbnQgb25lQmFzZWRJbnQoKSBjb25z
dCB7IHJldHVybiBtX3ZhbHVlOyB9Ci0gICAgaW50IGNvbnZlcnRBc1plcm9CYXNlZEludCgpIGNv
bnN0IHsgcmV0dXJuIG1fdmFsdWUgLSAxOyB9Ci0gICAgWmVyb0Jhc2VkTnVtYmVyIGNvbnZlcnRU
b1plcm9CYXNlZCgpIGNvbnN0IHsgcmV0dXJuIFplcm9CYXNlZE51bWJlcjo6ZnJvbVplcm9CYXNl
ZEludChtX3ZhbHVlIC0gMSk7IH0KLQotICAgIHN0YXRpYyBPbmVCYXNlZE51bWJlciBiYXNlKCkg
eyByZXR1cm4gMTsgfQotICAgIHN0YXRpYyBPbmVCYXNlZE51bWJlciBiZWxvd0Jhc2UoKSB7IHJl
dHVybiAwOyB9Ci0KLXByaXZhdGU6Ci0gICAgT25lQmFzZWROdW1iZXIoaW50IHZhbHVlKSA6IG1f
dmFsdWUodmFsdWUpIHt9Ci0gICAgaW50IG1fdmFsdWU7Ci19OwotCi10eXBlZGVmIFRleHRQb3Np
dGlvbjxaZXJvQmFzZWROdW1iZXI+IFRleHRQb3NpdGlvbjA7Ci10eXBlZGVmIFRleHRQb3NpdGlv
bjxPbmVCYXNlZE51bWJlcj4gVGV4dFBvc2l0aW9uMTsKLQotaW5saW5lIFRleHRQb3NpdGlvbjAg
dG9aZXJvQmFzZWRUZXh0UG9zaXRpb24oY29uc3QgVGV4dFBvc2l0aW9uMSYgcG9zaXRpb24pCi17
Ci0gICAgcmV0dXJuIFRleHRQb3NpdGlvbjAocG9zaXRpb24ubV9saW5lLmNvbnZlcnRUb1plcm9C
YXNlZCgpLCBwb3NpdGlvbi5tX2NvbHVtbi5jb252ZXJ0VG9aZXJvQmFzZWQoKSk7Ci19Ci0KLWlu
bGluZSBUZXh0UG9zaXRpb24xIHRvT25lQmFzZWRUZXh0UG9zaXRpb24oY29uc3QgVGV4dFBvc2l0
aW9uMCYgcG9zaXRpb24pCi17Ci0gICAgcmV0dXJuIFRleHRQb3NpdGlvbjEocG9zaXRpb24ubV9s
aW5lLmNvbnZlcnRUb09uZUJhc2VkKCksIHBvc2l0aW9uLm1fY29sdW1uLmNvbnZlcnRUb09uZUJh
c2VkKCkpOwotfQotCi1pbmxpbmUgT25lQmFzZWROdW1iZXIgWmVyb0Jhc2VkTnVtYmVyOjpjb252
ZXJ0VG9PbmVCYXNlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIE9uZUJhc2VkTnVtYmVyOjpmcm9t
T25lQmFzZWRJbnQobV92YWx1ZSArIDEpOwotfQotCi19Ci0KLXVzaW5nIFdURjo6VGV4dFBvc2l0
aW9uMDsKLXVzaW5nIFdURjo6VGV4dFBvc2l0aW9uMTsKLQotI2VuZGlmIC8vIFRleHRQb3NpdGlv
bl9oCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cKaW5kZXggNGRhMGE5YmNkODQ1N2IzOGI3MGQ1MmJhYTg5OGExMjhlNDdhNzY5
MS4uOTc3YmFhNDQ4MWQ0ZmU5Yzc2NGRkNzkzMjg5YTNkNzYwODdkOTg5MSAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEwLTEwLTI1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzA0NTEu
CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzcwNDUxCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODI0OQorCisgICAgICAg
IEJyb2tlIHNldC11bmxvYWRlZC1mcmFtZS1sb2NhdGlvbi5odG1sIHVuZGVyIFF0IChSZXF1ZXN0
ZWQgYnkKKyAgICAgICAgY2FzZXEgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBGb3J3YXJkaW5n
SGVhZGVycy93dGYvdGV4dC9UZXh0UG9zaXRpb24uaDogUmVtb3ZlZC4KKwogMjAxMC0xMC0xNiAg
UGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdEdsdWUvRm9yd2FyZGluZ0hl
YWRlcnMvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmggYi9KYXZhU2NyaXB0R2x1ZS9Gb3J3YXJkaW5n
SGVhZGVycy93dGYvdGV4dC9UZXh0UG9zaXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYmQ0ZjA5YjA2Mzc1ZjBkY2UzYzZmYTFlODc3NjZkZDQ4ZmQ4OTM1Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KYXZhU2NyaXB0R2x1ZS9Gb3J3
YXJkaW5nSGVhZGVycy93dGYvdGV4dC9UZXh0UG9zaXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UZXh0UG9zaXRpb24uaD4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBmNDYx
YjhkZjNkZjg0MTE3OGI4NmU1NjJjOTBmZTM1YWM2OTcwZi4uZjQ2MzgwNTJhYzAzYWViYjYwZTMy
MDM3ZGFmNDYwMTE4ZDdlOTljNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NiBAQAorMjAxMC0xMC0yNSAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjcwNDUxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5n
ZXNldC83MDQ1MQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDgyNDkKKworICAgICAgICBCcm9rZSBzZXQtdW5sb2FkZWQtZnJhbWUtbG9jYXRpb24uaHRt
bCB1bmRlciBRdCAoUmVxdWVzdGVkIGJ5CisgICAgICAgIGNhc2VxIG9uICN3ZWJraXQpLgorCisg
ICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmg6IFJlbW92
ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6U2NyaXB0U291cmNlQ29kZSk6CisgICAgICAgICog
YmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVk
dWxlZEFjdGlvbjo6U2NoZWR1bGVkQWN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2
ZW50SGFuZGxlckxpbmVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6ZXZlbnRIYW5kbGVyQ29sdW1uTnVtYmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRTb3VyY2VDb2RlLmg6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdFNvdXJjZUNvZGU6OnN0YXJ0TGluZSk6CisgICAgICAgICogYmluZGluZ3Mvdjgv
VjhMYXp5RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOExhenlFdmVudExp
c3RlbmVyOjpWOExhenlFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TGF6eUV2
ZW50TGlzdGVuZXI6OnByZXBhcmVMaXN0ZW5lck9iamVjdCk6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhMYXp5RXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAoV2ViQ29yZTo6VjhMYXp5RXZlbnRM
aXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OmNvbXBpbGVTY3JpcHQpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhQcm94eTo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhQcm94eTo6cnVuU2Ny
aXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5Lmg6CisgICAgICAgICogYmluZGlu
Z3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpydW5TY3JpcHQpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUpOgorICAgICAgICAqIGRvbS9QZW5kaW5nU2Ny
aXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdTY3JpcHQ6OnJlbGVhc2VFbGVtZW50
QW5kQ2xlYXIpOgorICAgICAgICAqIGRvbS9QZW5kaW5nU2NyaXB0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlBl
bmRpbmdTY3JpcHQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0
OjpzdGFydGluZ0xpbmVOdW1iZXIpOgorICAgICAgICAqIGRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQ
YXJzZXIuaDoKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKiBk
b20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTERv
Y3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpYTUxE
b2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9j
dW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVu
dFBhcnNlcjo6bGluZU51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNl
cjo6Y29sdW1uTnVtYmVyKToKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIp
OgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlU3RhcnRFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwYXJzZUVuZEVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVp
bGRlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmNvbHVtbk51bWJl
cik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAg
ICogaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2NyaXB0UnVubmVyOjpzb3VyY2VGcm9tUGVuZGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
Y3JpcHRSdW5uZXI6OnJ1blNjcmlwdCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNjcmlw
dFJ1bm5lci5oOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1NjcmlwdFN0YXJ0VGFnKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDoKKwogMjAxMC0xMC0yNSAgRGF2aWQg
SHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL3RleHQvVGV4dFBv
c2l0aW9uLmggYi9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0L1RleHRQb3NpdGlv
bi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjAwOTg0NmVhMDUyZGZiZmYwNmE0
MDlmMjE5OWE3MDIyZTg5N2Q0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL3RleHQvVGV4dFBvc2l0aW9u
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLSNpZm5kZWYgV2ViQ29yZV9GV0RfVGV4
dFBvc2l0aW9uX2gKLSNkZWZpbmUgV2ViQ29yZV9GV0RfVGV4dFBvc2l0aW9uX2gKLSNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9UZXh0UG9zaXRpb24uaD4KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdFNvdXJjZUNvZGUuaAppbmRleCAwOTJlZWI4ZjA4YTMyOWEzOTFkOTg3MTZkZmVkZDk5
OTY1NjA4OGMwLi4zMmQ2Mjk4Y2RiZGE3NzJkYWExM2UxMDMzZTNjZjBhYTQwZjU5NGIyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaApAQCAtMzUsMTYgKzM1LDE1IEBACiAj
aW5jbHVkZSAiU2NyaXB0U291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdHJpbmdTb3VyY2VQ
cm92aWRlci5oIgogI2luY2x1ZGUgIktVUkwuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9z
aXRpb24uaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU2NyaXB0U291cmNlQ29kZSB7CiBwdWJsaWM6Ci0gICAgU2NyaXB0U291cmNlQ29k
ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYgdXJsID0gS1VSTCgpLCBjb25zdCBU
ZXh0UG9zaXRpb24xJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uMTo6bWluaW11bVBvc2l0
aW9uKCkpCisgICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3Qg
S1VSTCYgdXJsID0gS1VSTCgpLCBpbnQgc3RhcnRMaW5lID0gMSkKICAgICAgICAgOiBtX3Byb3Zp
ZGVyKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCB1cmwuaXNOdWxsKCkgPyBT
dHJpbmcoKSA6IHVybC5zdHJpbmcoKSkpCi0gICAgICAgICwgbV9jb2RlKG1fcHJvdmlkZXIsIHN0
YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCkpCisgICAgICAgICwgbV9jb2RlKG1fcHJv
dmlkZXIsIHN0YXJ0TGluZSkKICAgICAgICAgLCBtX3VybCh1cmwpCiAgICAgewogICAgIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmNwcAppbmRleCA3MDhmYmU2N2ZlOTRkNzcy
MjEyYzhiYzNkMjdkZTE4YmQ1MTAxMmNjLi5kY2QwYmIzMzc3MTgxMzE4NDIwYzEwNzNiZTI1MWE5
ZTU4NGJhNGI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlv
bi5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY2hlZHVsZWRBY3Rpb24uY3BwCkBAIC00
NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2NoZWR1bGVkQWN0aW9uOjpTY2hl
ZHVsZWRBY3Rpb24odjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCwgdjg6OkhhbmRsZTx2
ODo6RnVuY3Rpb24+IGZ1bmMsIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltd
KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCi0gICAgLCBtX2NvZGUoU3RyaW5nKCksIEtVUkwo
KSwgVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCisgICAgLCBtX2NvZGUoU3Ry
aW5nKCksIEtVUkwoKSwgMCkKIHsKICAgICBtX2Z1bmN0aW9uID0gdjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uPjo6TmV3KGZ1bmMpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9s
bGVyLmNwcAppbmRleCBiOWQxMDc1ZDI0MzUwMGMxMjQ5NjAwNWE1Y2VjOGZmY2U2ZmY2NWJlLi40
OTA0YTRlNjVmZGU5Y2IzYmY0M2JiYTU0YTViMThkMmFmNzgyZDEwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTI2MiwxMiArMjYyLDIwIEBAIFNjcmlwdFZh
bHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNv
dXJjZUNvZGUsIFNob3VsCiAgICAgcmV0dXJuIFNjcmlwdFZhbHVlKG9iamVjdCk7CiB9CiAKLVRl
eHRQb3NpdGlvbjAgU2NyaXB0Q29udHJvbGxlcjo6ZXZlbnRIYW5kbGVyUG9zaXRpb24oKSBjb25z
dAoraW50IFNjcmlwdENvbnRyb2xsZXI6OmV2ZW50SGFuZGxlckxpbmVOdW1iZXIoKSBjb25zdAog
ewogICAgIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlciogcGFyc2VyID0gbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7CiAgICAgaWYgKHBhcnNlcikKLSAgICAg
ICAgcmV0dXJuIHBhcnNlci0+dGV4dFBvc2l0aW9uKCk7Ci0gICAgcmV0dXJuIFRleHRQb3NpdGlv
bjA6Om1pbmltdW1Qb3NpdGlvbigpOworICAgICAgICByZXR1cm4gcGFyc2VyLT5saW5lTnVtYmVy
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBTY3JpcHRDb250cm9sbGVyOjpldmVudEhhbmRs
ZXJDb2x1bW5OdW1iZXIoKSBjb25zdAoreworICAgIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlciog
cGFyc2VyID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7
CisgICAgaWYgKHBhcnNlcikKKyAgICAgICAgcmV0dXJuIHBhcnNlci0+Y29sdW1uTnVtYmVyKCk7
CisgICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZmluaXNoZWRXaXRo
RXZlbnQoRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaApp
bmRleCBkMDkzZjM5OTA4YTY0NGNlZDY3MGVlYjBkMzg1MDY4NTJlZWZhMGRjLi42M2YxYzE3ZGY0
NTY1NjFkYzJhYzMxYTRiZDQ2NDNiOWY4M2YyZDgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Njcmlw
dENvbnRyb2xsZXIuaApAQCAtMTU1LDcgKzE1NSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmlu
aXNoZWRXaXRoRXZlbnQoRXZlbnQqKTsKIAotICAgIFRleHRQb3NpdGlvbjAgZXZlbnRIYW5kbGVy
UG9zaXRpb24oKSBjb25zdDsKKyAgICBpbnQgZXZlbnRIYW5kbGVyTGluZU51bWJlcigpIGNvbnN0
OworICAgIGludCBldmVudEhhbmRsZXJDb2x1bW5OdW1iZXIoKSBjb25zdDsKIAogICAgIHZvaWQg
c2V0UHJvY2Vzc2luZ1RpbWVyQ2FsbGJhY2soYm9vbCBwcm9jZXNzaW5nVGltZXJDYWxsYmFjaykg
eyBtX3Byb2Nlc3NpbmdUaW1lckNhbGxiYWNrID0gcHJvY2Vzc2luZ1RpbWVyQ2FsbGJhY2s7IH0K
ICAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGRvbid0IHVzZSB0aGUgcGFyYW1ldGVyIHdvcmxk
IGF0IGFsbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0
ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCmlu
ZGV4IGI0NmZjNWE2ZDU2M2JjOWQ2ZDRkNGU2ZjYzM2ExMjljZjk5MTM2ZTEuLjcyZGY3OWRlZDNl
ZDQ3Y2ZmMWEyN2I1OTUzYTM1OTk2M2M3N2E2MzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRFdmVudExpc3RlbmVyLmNwcApAQCAtNTAsOCArNTAsOCBAQCBQYXNzUmVmUHRyPFY4TGF6
eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoTm9kZSogbm9kZSwg
QXR0cmlidQogICAgIGlmIChhdHRyLT5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICAvLyBGSVhNRTogVmVyeSBzdHJhbmdlOiB3ZSBpbml0aWFsaXplIHplcm8tYmFzZWQgbnVtYmVy
IHdpdGggJzEnLgotICAgIFRleHRQb3NpdGlvbjAgcG9zaXRpb24oV1RGOjpaZXJvQmFzZWROdW1i
ZXI6OmZyb21aZXJvQmFzZWRJbnQoMSksIFdURjo6WmVyb0Jhc2VkTnVtYmVyOjpiYXNlKCkpOwor
ICAgIGludCBsaW5lTnVtYmVyID0gMTsKKyAgICBpbnQgY29sdW1uTnVtYmVyID0gMDsKICAgICBT
dHJpbmcgc291cmNlVVJMOwogCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50
KCktPmZyYW1lKCkpIHsKQEAgLTY0LDExICs2NCwxMiBAQCBQYXNzUmVmUHRyPFY4TGF6eUV2ZW50
TGlzdGVuZXI+IGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoTm9kZSogbm9kZSwgQXR0cmli
dQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAotICAgICAgICBwb3NpdGlvbiA9
IHNjcmlwdENvbnRyb2xsZXItPmV2ZW50SGFuZGxlclBvc2l0aW9uKCk7CisgICAgICAgIGxpbmVO
dW1iZXIgPSBzY3JpcHRDb250cm9sbGVyLT5ldmVudEhhbmRsZXJMaW5lTnVtYmVyKCk7CisgICAg
ICAgIGNvbHVtbk51bWJlciA9IHNjcmlwdENvbnRyb2xsZXItPmV2ZW50SGFuZGxlckNvbHVtbk51
bWJlcigpOwogICAgICAgICBzb3VyY2VVUkwgPSBub2RlLT5kb2N1bWVudCgpLT51cmwoKS5zdHJp
bmcoKTsKICAgICB9CiAKLSAgICByZXR1cm4gVjhMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKGF0
dHItPmxvY2FsTmFtZSgpLnN0cmluZygpLCBub2RlLT5pc1NWR0VsZW1lbnQoKSwgYXR0ci0+dmFs
dWUoKSwgc291cmNlVVJMLCBwb3NpdGlvbiwgV29ybGRDb250ZXh0SGFuZGxlKFVzZU1haW5Xb3Js
ZCkpOworICAgIHJldHVybiBWOExhenlFdmVudExpc3RlbmVyOjpjcmVhdGUoYXR0ci0+bG9jYWxO
YW1lKCkuc3RyaW5nKCksIG5vZGUtPmlzU1ZHRWxlbWVudCgpLCBhdHRyLT52YWx1ZSgpLCBzb3Vy
Y2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgV29ybGRDb250ZXh0SGFuZGxlKFVzZU1h
aW5Xb3JsZCkpOwogfQogCiBQYXNzUmVmUHRyPFY4TGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZUF0
dHJpYnV0ZUV2ZW50TGlzdGVuZXIoRnJhbWUqIGZyYW1lLCBBdHRyaWJ1dGUqIGF0dHIpCkBAIC04
MCw2ICs4MSwxMCBAQCBQYXNzUmVmUHRyPFY4TGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZUF0dHJp
YnV0ZUV2ZW50TGlzdGVuZXIoRnJhbWUqIGZyYW1lLCBBdHRyaQogICAgIGlmIChhdHRyLT5pc051
bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBpbnQgbGluZU51bWJlciA9IDE7CisgICAg
aW50IGNvbHVtbk51bWJlciA9IDA7CisgICAgU3RyaW5nIHNvdXJjZVVSTDsKKwogICAgIFNjcmlw
dENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSBmcmFtZS0+c2NyaXB0KCk7CiAgICAgaWYg
KCFzY3JpcHRDb250cm9sbGVyLT5jYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlw
dCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtODksOSArOTQsMTAgQEAgUGFzc1JlZlB0cjxWOExh
enlFdmVudExpc3RlbmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKEZyYW1lKiBmcmFt
ZSwgQXR0cmkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgVGV4dFBvc2l0aW9uMCBw
b3NpdGlvbiA9IHNjcmlwdENvbnRyb2xsZXItPmV2ZW50SGFuZGxlclBvc2l0aW9uKCk7Ci0gICAg
U3RyaW5nIHNvdXJjZVVSTCA9IGZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKTsKLSAg
ICByZXR1cm4gVjhMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKGF0dHItPmxvY2FsTmFtZSgpLnN0
cmluZygpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+aXNTVkdEb2N1bWVudCgpLCBhdHRyLT52YWx1ZSgp
LCBzb3VyY2VVUkwsIHBvc2l0aW9uLCBXb3JsZENvbnRleHRIYW5kbGUoVXNlTWFpbldvcmxkKSk7
CisgICAgbGluZU51bWJlciA9IHNjcmlwdENvbnRyb2xsZXItPmV2ZW50SGFuZGxlckxpbmVOdW1i
ZXIoKTsKKyAgICBjb2x1bW5OdW1iZXIgPSBzY3JpcHRDb250cm9sbGVyLT5ldmVudEhhbmRsZXJD
b2x1bW5OdW1iZXIoKTsKKyAgICBzb3VyY2VVUkwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCku
c3RyaW5nKCk7CisgICAgcmV0dXJuIFY4TGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZShhdHRyLT5s
b2NhbE5hbWUoKS5zdHJpbmcoKSwgZnJhbWUtPmRvY3VtZW50KCktPmlzU1ZHRG9jdW1lbnQoKSwg
YXR0ci0+dmFsdWUoKSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIFdvcmxk
Q29udGV4dEhhbmRsZShVc2VNYWluV29ybGQpKTsKIH0KIAogU3RyaW5nIGV2ZW50TGlzdGVuZXJI
YW5kbGVyQm9keShEb2N1bWVudCogZG9jdW1lbnQsIEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRTb3VyY2VDb2RlLmggYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFNvdXJjZUNvZGUuaAppbmRleCAyNDc4MTUxZTZmNTRmYzc1
MDM4ZjA0MWRlYzk4MGQ3YTc1NmQyYWRlLi5kYmM5ZDVlNmZjNjAwN2ZjZmRkNjYwMjRkYjA3ODI2
YzY2MjYzYjViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFNvdXJjZUNv
ZGUuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFNvdXJjZUNvZGUuaApAQCAtMzUs
MTcgKzM1LDE2IEBACiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiS1VSTC5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBv
c2l0aW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0U291cmNlQ29k
ZSB7CiBwdWJsaWM6Ci0gICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNvdXJjZSwg
Y29uc3QgS1VSTCYgdXJsID0gS1VSTCgpLCBjb25zdCBUZXh0UG9zaXRpb24xJiBzdGFydFBvc2l0
aW9uID0gVGV4dFBvc2l0aW9uMTo6bWluaW11bVBvc2l0aW9uKCkpCisgICAgU2NyaXB0U291cmNl
Q29kZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYgdXJsID0gS1VSTCgpLCBpbnQg
c3RhcnRMaW5lID0gMSkKICAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgICAgICwgbV9j
YWNoZWRTY3JpcHQoMCkKICAgICAgICAgLCBtX3VybCh1cmwpCi0gICAgICAgICwgbV9zdGFydFBv
c2l0aW9uKHN0YXJ0UG9zaXRpb24pCisgICAgICAgICwgbV9zdGFydExpbmUoc3RhcnRMaW5lKQog
ICAgIHsKICAgICB9CiAKQEAgLTU1LDcgKzU0LDcgQEAgcHVibGljOgogICAgICAgICA6IG1fc291
cmNlKGNzLT5zY3JpcHQoKSkKICAgICAgICAgLCBtX2NhY2hlZFNjcmlwdChjcykKICAgICAgICAg
LCBtX3VybChQYXJzZWRVUkxTdHJpbmcsIGNzLT51cmwoKSkKLSAgICAgICAgLCBtX3N0YXJ0UG9z
aXRpb24oVGV4dFBvc2l0aW9uMTo6bWluaW11bVBvc2l0aW9uKCkpCisgICAgICAgICwgbV9zdGFy
dExpbmUoMSkKICAgICB7CiAgICAgfQogCkBAIC02NCwxNCArNjMsMTMgQEAgcHVibGljOgogICAg
IGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KICAgICBD
YWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0
LmdldCgpOyB9CiAgICAgY29uc3QgS1VSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0K
LSAgICBpbnQgc3RhcnRMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFBvc2l0aW9uLm1fbGlu
ZS5vbmVCYXNlZEludCgpOyB9Ci0gICAgY29uc3QgVGV4dFBvc2l0aW9uMSYgc3RhcnRQb3NpdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRQb3NpdGlvbjsgfQorICAgIGludCBzdGFydExpbmUo
KSBjb25zdCB7IHJldHVybiBtX3N0YXJ0TGluZTsgfQogCiBwcml2YXRlOgogICAgIFN0cmluZyBt
X3NvdXJjZTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVk
U2NyaXB0OwogICAgIEtVUkwgbV91cmw7Ci0gICAgVGV4dFBvc2l0aW9uMSBtX3N0YXJ0UG9zaXRp
b247CisgICAgaW50IG1fc3RhcnRMaW5lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggN2Y0NjMz
MzA2MmQ2ZmViN2JlOWYxNzk2MzU2YzZiMDVjYjNjYjhmOC4uN2YxM2M1YThmYjI3ZDMzYmJmMWQz
NDEwYTAxM2ViYzc5NWQ5M2QyMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExh
enlFdmVudExpc3RlbmVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50
TGlzdGVuZXIuY3BwCkBAIC00MSwxMyArNDEsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1WOExhenlFdmVudExpc3RlbmVyOjpWOExhenlFdmVudExpc3RlbmVyKGNvbnN0IFN0cmluZyYg
ZnVuY3Rpb25OYW1lLCBib29sIGlzU1ZHRXZlbnQsIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3Qg
U3RyaW5nIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uMCYgcG9zaXRpb24sIGNvbnN0IFdv
cmxkQ29udGV4dEhhbmRsZSYgd29ybGRDb250ZXh0KQorVjhMYXp5RXZlbnRMaXN0ZW5lcjo6VjhM
YXp5RXZlbnRMaXN0ZW5lcihjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSwgYm9vbCBpc1NWR0V2
ZW50LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyBzb3VyY2VVUkwsIGludCBsaW5l
TnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxk
Q29udGV4dCkKICAgICA6IFY4QWJzdHJhY3RFdmVudExpc3RlbmVyKHRydWUsIHdvcmxkQ29udGV4
dCkKICAgICAsIG1fZnVuY3Rpb25OYW1lKGZ1bmN0aW9uTmFtZSkKICAgICAsIG1faXNTVkdFdmVu
dChpc1NWR0V2ZW50KQogICAgICwgbV9jb2RlKGNvZGUpCiAgICAgLCBtX3NvdXJjZVVSTChzb3Vy
Y2VVUkwpCi0gICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQorICAgICwgbV9saW5lTnVtYmVyKGxp
bmVOdW1iZXIpCisgICAgLCBtX2NvbHVtbk51bWJlcihjb2x1bW5OdW1iZXIpCiB7CiB9CiAKQEAg
LTExMyw3ICsxMTQsNyBAQCB2b2lkIFY4TGF6eUV2ZW50TGlzdGVuZXI6OnByZXBhcmVMaXN0ZW5l
ck9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIC8vIEluc2VydCAn
XG4nIG90aGVyd2lzZSAvLy1zdHlsZSBjb21tZW50cyBjb3VsZCBicmVhayB0aGUgaGFuZGxlci4K
ICAgICBjb2RlLmFwcGVuZCggICJcbn0pLmNhbGwodGhpcywgZXZ0KTt9fX19KSIpOwogICAgIHY4
OjpIYW5kbGU8djg6OlN0cmluZz4gY29kZUV4dGVybmFsU3RyaW5nID0gdjhFeHRlcm5hbFN0cmlu
Zyhjb2RlKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCA9IFY4UHJveHk6OmNv
bXBpbGVTY3JpcHQoY29kZUV4dGVybmFsU3RyaW5nLCBtX3NvdXJjZVVSTCwgbV9wb3NpdGlvbik7
CisgICAgdjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQgPSBWOFByb3h5Ojpjb21waWxlU2Ny
aXB0KGNvZGVFeHRlcm5hbFN0cmluZywgbV9zb3VyY2VVUkwsIG1fbGluZU51bWJlcik7CiAgICAg
aWYgKCFzY3JpcHQuSXNFbXB0eSgpKSB7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZh
bHVlID0gcHJveHktPnJ1blNjcmlwdChzY3JpcHQsIGZhbHNlKTsKICAgICAgICAgaWYgKCF2YWx1
ZS5Jc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZl
bnRMaXN0ZW5lci5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmgK
aW5kZXggMDg0NjdmZTVmN2FiOTcwMTRkOTQ1M2FmMjZmYTNmMTY2Y2VlNjNiMS4uZjE3NGQyM2Jm
MTMxYjAxMGVlNGY1OWJjNDI1MjdlZTg2NzRhMDYwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OExhenlFdmVudExpc3RlbmVyLmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogI2luY2x1ZGUgIlY4QWJzdHJhY3RFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVk
ZSA8djguaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw5ICs0NSw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBBIFY4TGF6eUV2ZW50TGlzdGVuZXIgaXMgYWx3
YXlzIGEgSFRNTCBldmVudCBoYW5kbGVyLgogICAgIGNsYXNzIFY4TGF6eUV2ZW50TGlzdGVuZXIg
OiBwdWJsaWMgVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8VjhMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgZnVuY3Rpb25OYW1lLCBib29sIGlzU1ZHRXZlbnQsIGNvbnN0IFN0cmluZyYgY29kZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbjAmIHBvc2l0aW9uLCBjb25z
dCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8VjhMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25O
YW1lLCBib29sIGlzU1ZHRXZlbnQsIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBXb3JsZENv
bnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBWOExhenlFdmVudExpc3RlbmVyKGZ1bmN0aW9uTmFtZSwgaXNTVkdFdmVu
dCwgY29kZSwgc291cmNlVVJMLCBwb3NpdGlvbiwgd29ybGRDb250ZXh0KSk7CisgICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFY4TGF6eUV2ZW50TGlzdGVuZXIoZnVuY3Rpb25OYW1lLCBp
c1NWR0V2ZW50LCBjb2RlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgd29y
bGRDb250ZXh0KSk7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNMYXp5KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTcsNyArNTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlTGlzdGVuZXJPYmplY3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgVjhMYXp5RXZlbnRMaXN0
ZW5lcihjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSwgYm9vbCBpc1NWR0V2ZW50LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbjAm
IHBvc2l0aW9uLCBjb25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCk7CisgICAg
ICAgIFY4TGF6eUV2ZW50TGlzdGVuZXIoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUsIGJvb2wg
aXNTVkdFdmVudCwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcgc291cmNlVVJMLCBp
bnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxl
JiB3b3JsZENvbnRleHQpOwogCiAgICAgICAgIHZpcnR1YWwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
Y2FsbExpc3RlbmVyRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBqc0V2ZW50LCBFdmVudCopOwogCkBAIC03MSw3ICs3MCw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2lzU1ZHRXZlbnQ7CiAgICAgICAgIFN0cmluZyBt
X2NvZGU7CiAgICAgICAgIFN0cmluZyBtX3NvdXJjZVVSTDsKLSAgICAgICAgVGV4dFBvc2l0aW9u
MCBtX3Bvc2l0aW9uOworICAgICAgICBpbnQgbV9saW5lTnVtYmVyOworICAgICAgICBpbnQgbV9j
b2x1bW5OdW1iZXI7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhQcm94eS5jcHAKaW5kZXggN2I1OTZjOGRjNWFiYTk5NThlNzI1NDI4OWI1MTg3MmExMDJmMzVl
Ni4uZTdkNmJmNmNjZDdkODVhZTI2NjNhOTZiYjY0OWRiZjExMmE2OThkMSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4UHJveHkuY3BwCkBAIC0yMzYsMTMgKzIzNiwxMiBAQCBWOFByb3h5Ojp+VjhQcm94eSgpCiAg
ICAgd2luZG93U2hlbGwoKS0+ZGVzdHJveUdsb2JhbCgpOwogfQogCi12ODo6SGFuZGxlPHY4OjpT
Y3JpcHQ+IFY4UHJveHk6OmNvbXBpbGVTY3JpcHQodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBjb2Rl
LCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBUZXh0UG9zaXRpb24wJiBzY3JpcHRTdGFy
dFBvc2l0aW9uLCB2ODo6U2NyaXB0RGF0YSogc2NyaXB0RGF0YSkKK3Y4OjpIYW5kbGU8djg6OlNj
cmlwdD4gVjhQcm94eTo6Y29tcGlsZVNjcmlwdCh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IGNvZGUs
IGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGludCBiYXNlTGluZSwgdjg6OlNjcmlwdERhdGEqIHNj
cmlwdERhdGEpCiB7CiAgICAgY29uc3QgdWludDE2X3QqIGZpbGVOYW1lU3RyaW5nID0gZnJvbVdl
YkNvcmVTdHJpbmcoZmlsZU5hbWUpOwogICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gbmFtZSA9
IHY4OjpTdHJpbmc6Ok5ldyhmaWxlTmFtZVN0cmluZywgZmlsZU5hbWUubGVuZ3RoKCkpOwotICAg
IHY4OjpIYW5kbGU8djg6OkludGVnZXI+IGxpbmUgPSB2ODo6SW50ZWdlcjo6TmV3KHNjcmlwdFN0
YXJ0UG9zaXRpb24ubV9saW5lLnplcm9CYXNlZEludCgpKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpJ
bnRlZ2VyPiBjb2x1bW4gPSB2ODo6SW50ZWdlcjo6TmV3KHNjcmlwdFN0YXJ0UG9zaXRpb24ubV9j
b2x1bW4uemVyb0Jhc2VkSW50KCkpOwotICAgIHY4OjpTY3JpcHRPcmlnaW4gb3JpZ2luKG5hbWUs
IGxpbmUsIGNvbHVtbik7CisgICAgdjg6OkhhbmRsZTx2ODo6SW50ZWdlcj4gbGluZSA9IHY4OjpJ
bnRlZ2VyOjpOZXcoYmFzZUxpbmUpOworICAgIHY4OjpTY3JpcHRPcmlnaW4gb3JpZ2luKG5hbWUs
IGxpbmUpOwogICAgIHY4OjpIYW5kbGU8djg6OlNjcmlwdD4gc2NyaXB0ID0gdjg6OlNjcmlwdDo6
Q29tcGlsZShjb2RlLCAmb3JpZ2luLCBzY3JpcHREYXRhKTsKICAgICByZXR1cm4gc2NyaXB0Owog
fQpAQCAtMzk1LDcgKzM5NCw3IEBAIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4UHJveHk6OmV2YWx1
YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZSwgTm9kZSogbm9kCiAKICAgICAgICAg
Ly8gTk9URTogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBXZWJDb3JlLCBTY3JpcHRTb3VyY2VDb2Rl
J3MgbGluZSBzdGFydHMgYXQKICAgICAgICAgLy8gMSwgd2hlcmVhcyB2OCBzdGFydHMgYXQgMC4K
LSAgICAgICAgdjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQgPSBjb21waWxlU2NyaXB0KGNv
ZGUsIHNvdXJjZS51cmwoKSwgV1RGOjp0b1plcm9CYXNlZFRleHRQb3NpdGlvbihzb3VyY2Uuc3Rh
cnRQb3NpdGlvbigpKSwgc2NyaXB0RGF0YS5nZXQoKSk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6
OlNjcmlwdD4gc2NyaXB0ID0gY29tcGlsZVNjcmlwdChjb2RlLCBzb3VyY2UudXJsKCksIHNvdXJj
ZS5zdGFydExpbmUoKSAtIDEsIHNjcmlwdERhdGEuZ2V0KCkpOwogI2lmIFBMQVRGT1JNKENIUk9N
SVVNKQogICAgICAgICBQbGF0Zm9ybUJyaWRnZTo6dHJhY2VFdmVudEVuZCgidjguY29tcGlsZSIs
IG5vZGUsICIiKTsKIApAQCAtNDI3LDcgKzQyNiw3IEBAIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4
UHJveHk6OnJ1blNjcmlwdCh2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCwgYm9vbCBpc0lu
CiAgICAgICAgIC8vIEZJWE1FOiBJZGVhbGx5LCB3ZSBzaG91bGQgYmUgYWJsZSB0byByZS11c2Ug
dGhlIG9yaWdpbiBvZiB0aGUKICAgICAgICAgLy8gc2NyaXB0IHBhc3NlZCB0byB1cyBhcyB0aGUg
YXJndW1lbnQgaW5zdGVhZCBvZiB1c2luZyBhbiBlbXB0eSBzdHJpbmcKICAgICAgICAgLy8gYW5k
IDAgYmFzZUxpbmUuCi0gICAgICAgIHNjcmlwdCA9IGNvbXBpbGVTY3JpcHQoY29kZSwgIiIsIFRl
eHRQb3NpdGlvbjA6Om1pbmltdW1Qb3NpdGlvbigpKTsKKyAgICAgICAgc2NyaXB0ID0gY29tcGls
ZVNjcmlwdChjb2RlLCAiIiwgMCk7CiAgICAgfQogCiAgICAgaWYgKGhhbmRsZU91dE9mTWVtb3J5
KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhQcm94eS5oCmluZGV4IDgwZDQ2OTFiNDgwNTQ4ZjNhZDdkZGY3OWRlMmIz
Nzk3MzQxNzk4ZGMuLjhhMGRhNzI5NTY4MGQ1MjNjZjc0MGYzODZmM2NlZjFlOTkxMTA1YzMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQcm94eS5oCkBAIC0yNzksNyArMjc5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2hlY2tOZXdMZWdhbChj
b25zdCB2ODo6QXJndW1lbnRzJik7CiAKLSAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlNj
cmlwdD4gY29tcGlsZVNjcmlwdCh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IGNvZGUsIGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUsIGNvbnN0IFRleHRQb3NpdGlvbjAmIHNjcmlwdFN0YXJ0UG9zaXRpb24s
IHY4OjpTY3JpcHREYXRhKiA9IDApOworICAgICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6U2Ny
aXB0PiBjb21waWxlU2NyaXB0KHY4OjpIYW5kbGU8djg6OlN0cmluZz4gY29kZSwgY29uc3QgU3Ry
aW5nJiBmaWxlTmFtZSwgaW50IGJhc2VMaW5lLCB2ODo6U2NyaXB0RGF0YSogPSAwKTsKIAogICAg
ICAgICAvLyBJZiB0aGUgZXhjZXB0aW9uIGNvZGUgaXMgZGlmZmVyZW50IGZyb20gemVybywgYSBE
T00gZXhjZXB0aW9uIGlzCiAgICAgICAgIC8vIHNjaGVkdWxlIHRvIGJlIHRocm93bi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNw
cCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcApp
bmRleCBjZWZiMmZhYTczOTA4OTRiMzVkNjVhZDUzZjIxYThmYmM3ZGRhNTYxLi4xNmUwYjQxMDFl
ZmRjMzVhZTc0NDE4MTdiMDY4N2RiNmI1YTY1YTI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCkBAIC0xODQsNyArMTg0LDcg
QEAgYm9vbCBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmZvcmdldFY4RXZlbnRPYmplY3Qo
RXZlbnQqIGV2ZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotU2NyaXB0VmFsdWUgV29ya2Vy
Q29udGV4dEV4ZWN1dGlvblByb3h5OjpldmFsdWF0ZShjb25zdCBTdHJpbmcmIHNjcmlwdCwgY29u
c3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgVGV4dFBvc2l0aW9uMCYgc2NyaXB0U3RhcnRQb3Np
dGlvbiwgV29ya2VyQ29udGV4dEV4ZWN1dGlvblN0YXRlKiBzdGF0ZSkKK1NjcmlwdFZhbHVlIFdv
cmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBzY3JpcHQs
IGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGludCBiYXNlTGluZSwgV29ya2VyQ29udGV4dEV4ZWN1
dGlvblN0YXRlKiBzdGF0ZSkKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgaHM7CiAKQEAgLTE5Niw3
ICsxOTYsNyBAQCBTY3JpcHRWYWx1ZSBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmV2YWx1
YXRlKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBjb25zdCBTdAogICAgIHY4OjpUcnlDYXRjaCBleGNl
cHRpb25DYXRjaGVyOwogCiAgICAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHNjcmlwdFN0cmluZyA9
IHY4RXh0ZXJuYWxTdHJpbmcoc2NyaXB0KTsKLSAgICB2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IGNv
bXBpbGVkU2NyaXB0ID0gVjhQcm94eTo6Y29tcGlsZVNjcmlwdChzY3JpcHRTdHJpbmcsIGZpbGVO
YW1lLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IGNv
bXBpbGVkU2NyaXB0ID0gVjhQcm94eTo6Y29tcGlsZVNjcmlwdChzY3JpcHRTdHJpbmcsIGZpbGVO
YW1lLCBiYXNlTGluZSk7CiAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gcmVzdWx0ID0gcnVuU2Ny
aXB0KGNvbXBpbGVkU2NyaXB0KTsKIAogICAgIGlmICghZXhjZXB0aW9uQ2F0Y2hlci5DYW5Db250
aW51ZSgpKQpAQCAtMjI3LDcgKzIyNyw3IEBAIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFdvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eTo6cnVuU2NyaXB0KHY4OjpIYW5kbGU8djg6OlNjcmlwCiAgICAg
Ly8gQ29tcHV0ZSB0aGUgc291cmNlIHN0cmluZyBhbmQgcHJldmVudCBhZ2FpbnN0IGluZmluaXRl
IHJlY3Vyc2lvbi4KICAgICBpZiAobV9yZWN1cnNpb24gPj0ga01heFJlY3Vyc2lvbkRlcHRoKSB7
CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBjb2RlID0gdjhFeHRlcm5hbFN0cmluZygi
dGhyb3cgUmFuZ2VFcnJvcignUmVjdXJzaW9uIHRvbyBkZWVwJykiKTsKLSAgICAgICAgc2NyaXB0
ID0gVjhQcm94eTo6Y29tcGlsZVNjcmlwdChjb2RlLCAiIiwgVGV4dFBvc2l0aW9uMDo6bWluaW11
bVBvc2l0aW9uKCkpOworICAgICAgICBzY3JpcHQgPSBWOFByb3h5Ojpjb21waWxlU2NyaXB0KGNv
ZGUsICIiLCAwKTsKICAgICB9CiAKICAgICBpZiAoVjhQcm94eTo6aGFuZGxlT3V0T2ZNZW1vcnko
KSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlv
blByb3h5LmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94
eS5oCmluZGV4IGU3MGMzZDI4NGFiZTUyZTM1YmFjNDk4MDVlNzNhNGNmNDc0ZTljOTUuLjU4ODI0
YjllZWY2ZjQ5MTQwODRjNzc3MTYxZTIzZjZlMzBhYmUyODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaApAQCAtMzYsNyArMzYsNiBA
QAogCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx2OC5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTY3LDcgKzY2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIHRyYWNrRXZlbnQoRXZlbnQqKTsKIAogICAgICAgICAvLyBFdmFsdWF0
ZSBhIHNjcmlwdCBmaWxlIGluIHRoZSBjdXJyZW50IGV4ZWN1dGlvbiBlbnZpcm9ubWVudC4KLSAg
ICAgICAgU2NyaXB0VmFsdWUgZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUsIGNvbnN0IFRleHRQb3NpdGlvbjAmIHNjcmlwdFN0YXJ0UG9zaXRpb24s
IFdvcmtlckNvbnRleHRFeGVjdXRpb25TdGF0ZSopOworICAgICAgICBTY3JpcHRWYWx1ZSBldmFs
dWF0ZShjb25zdCBTdHJpbmcmIHNjcmlwdCwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgaW50IGJh
c2VMaW5lLCBXb3JrZXJDb250ZXh0RXhlY3V0aW9uU3RhdGUqKTsKIAogICAgICAgICAvLyBSZXR1
cm5zIGEgbG9jYWwgaGFuZGxlIG9mIHRoZSBjb250ZXh0LgogICAgICAgICB2ODo6TG9jYWw8djg6
OkNvbnRleHQ+IGNvbnRleHQoKSB7IHJldHVybiB2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXco
bV9jb250ZXh0KTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJv
bGxlci5jcHAKaW5kZXggYjU2ZDM4MzZkN2U2YmIxYWM1ZDJjOGM1ZWQ2MzBmMDdjMjc2ZWYyMi4u
N2RiMGQ4ZDM3MzcwOWIyZTk3M2I2N2U3NzIzZTRmYzMxMWZiY2E1OSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC03NSw3ICs3NSw3IEBA
IFNjcmlwdFZhbHVlIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlw
dFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsCiAgICAgfQogCiAgICAgV29ya2VyQ29udGV4dEV4ZWN1
dGlvblN0YXRlIHN0YXRlOwotICAgIFNjcmlwdFZhbHVlIHJlc3VsdCA9IG1fcHJveHktPmV2YWx1
YXRlKHNvdXJjZUNvZGUuc291cmNlKCksIHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCksIFdURjo6
dG9aZXJvQmFzZWRUZXh0UG9zaXRpb24oc291cmNlQ29kZS5zdGFydFBvc2l0aW9uKCkpLCAmc3Rh
dGUpOworICAgIFNjcmlwdFZhbHVlIHJlc3VsdCA9IG1fcHJveHktPmV2YWx1YXRlKHNvdXJjZUNv
ZGUuc291cmNlKCksIHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCksIHNvdXJjZUNvZGUuc3RhcnRM
aW5lKCkgLSAxLCAmc3RhdGUpOwogICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24pIHsKICAgICAg
ICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICpleGNlcHRpb24gPSBzdGF0ZS5leGNlcHRp
b247CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcCBiL1dlYkNvcmUv
ZG9tL1BlbmRpbmdTY3JpcHQuY3BwCmluZGV4IDE4ZjYwNzExYTRjZDMwMjMyOWJjYWFkNGQ5OGI4
YTIwYzdjZTEyZmQuLjQyZTIyNWE3ZjMyYTFiMGNkYzFiYzM0NTFiNjU0OTdhNDYxMzU2ODkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwCisrKyBiL1dlYkNvcmUvZG9t
L1BlbmRpbmdTY3JpcHQuY3BwCkBAIC00MCw3ICs0MCw3IEBAIFBlbmRpbmdTY3JpcHQ6On5QZW5k
aW5nU2NyaXB0KCkKIFBhc3NSZWZQdHI8RWxlbWVudD4gUGVuZGluZ1NjcmlwdDo6cmVsZWFzZUVs
ZW1lbnRBbmRDbGVhcigpCiB7CiAgICAgc2V0Q2FjaGVkU2NyaXB0KDApOwotICAgIG1fc3RhcnRp
bmdQb3NpdGlvbiA9IFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlvbigpOworICAgIG1f
c3RhcnRpbmdMaW5lTnVtYmVyID0gMDsKICAgICBtX3dhdGNoaW5nRm9yTG9hZCA9IGZhbHNlOwog
ICAgIHJldHVybiBtX2VsZW1lbnQucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vUGVuZGluZ1NjcmlwdC5oIGIvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCmluZGV4IDA4
MzUwN2E5YjkwOTE2YmNmMjg2NTFkZjYyOWU1YjIzYmI5NDIyYzguLjQ0ZTFlNDkyODY3NmQ3OTYw
MjJkZDI5MDU0NTc2MDE1YjdhMjZlNDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1BlbmRpbmdT
Y3JpcHQuaAorKysgYi9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKQEAgLTI4LDcgKzI4LDYg
QEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCwx
NCArNDMsMTQgQEAgY2xhc3MgRWxlbWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQgOiBwdWJsaWMg
Q2FjaGVkUmVzb3VyY2VDbGllbnQgewogcHVibGljOgogICAgIFBlbmRpbmdTY3JpcHQoKQotICAg
ICAgICA6IG1fc3RhcnRpbmdQb3NpdGlvbihUZXh0UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9zaXRp
b24oKSkKKyAgICAgICAgOiBtX3N0YXJ0aW5nTGluZU51bWJlcigwKQogICAgICAgICAsIG1fd2F0
Y2hpbmdGb3JMb2FkKGZhbHNlKQogICAgIHsKICAgICB9CiAKICAgICBQZW5kaW5nU2NyaXB0KGNv
bnN0IFBlbmRpbmdTY3JpcHQmIG90aGVyKQogICAgICAgICA6IENhY2hlZFJlc291cmNlQ2xpZW50
KG90aGVyKQotICAgICAgICAsIG1fc3RhcnRpbmdQb3NpdGlvbihvdGhlci5tX3N0YXJ0aW5nUG9z
aXRpb24pCisgICAgICAgICwgbV9zdGFydGluZ0xpbmVOdW1iZXIob3RoZXIubV9zdGFydGluZ0xp
bmVOdW1iZXIpCiAgICAgICAgICwgbV93YXRjaGluZ0ZvckxvYWQob3RoZXIubV93YXRjaGluZ0Zv
ckxvYWQpCiAgICAgICAgICwgbV9lbGVtZW50KG90aGVyLm1fZWxlbWVudCkKICAgICB7CkBAIC02
NSw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKHRoaXMgPT0gJm90aGVyKQogICAgICAg
ICAgICAgcmV0dXJuICp0aGlzOwogCi0gICAgICAgIG1fc3RhcnRpbmdQb3NpdGlvbiA9IG90aGVy
Lm1fc3RhcnRpbmdQb3NpdGlvbjsKKyAgICAgICAgbV9zdGFydGluZ0xpbmVOdW1iZXIgPSBvdGhl
ci5tX3N0YXJ0aW5nTGluZU51bWJlcjsKICAgICAgICAgbV93YXRjaGluZ0ZvckxvYWQgPSBvdGhl
ci5tX3dhdGNoaW5nRm9yTG9hZDsKICAgICAgICAgbV9lbGVtZW50ID0gb3RoZXIubV9lbGVtZW50
OwogICAgICAgICBzZXRDYWNoZWRTY3JpcHQob3RoZXIuY2FjaGVkU2NyaXB0KCkpOwpAQCAtNzUs
NyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogTm8gc2V0dGVyIG1lYW5zIHRoaXMg
aXMgbmV2ZXIgc2V0IHRvIGFueXRoaW5nIG90aGVyIHRoYW4gMC4KICAgICAvLyBUaGlzIGlzIGVp
dGhlciB1bm5lY2Vzc2FyeSBvciBpbmNvcnJlY3QuCi0gICAgVGV4dFBvc2l0aW9uMSBzdGFydGlu
Z1Bvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydGluZ1Bvc2l0aW9uOyB9CisgICAgaW50
IHN0YXJ0aW5nTGluZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRpbmdMaW5lTnVtYmVy
OyB9CiAKICAgICBib29sIHdhdGNoaW5nRm9yTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2F0Y2hp
bmdGb3JMb2FkOyB9CiAgICAgdm9pZCBzZXRXYXRjaGluZ0ZvckxvYWQoYm9vbCBiKSB7IG1fd2F0
Y2hpbmdGb3JMb2FkID0gYjsgfQpAQCAtOTAsNyArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CiAKIHByaXZhdGU6Ci0gICAg
VGV4dFBvc2l0aW9uMSBtX3N0YXJ0aW5nUG9zaXRpb247IC8vIE9ubHkgdXNlZCBmb3IgaW5saW5l
IHNjcmlwdCB0YWdzLgorICAgIGludCBtX3N0YXJ0aW5nTGluZU51bWJlcjsgLy8gT25seSB1c2Vk
IGZvciBpbmxpbmUgc2NyaXB0IHRhZ3MuCiAgICAgYm9vbCBtX3dhdGNoaW5nRm9yTG9hZDsKICAg
ICBSZWZQdHI8RWxlbWVudD4gbV9lbGVtZW50OwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFNjcmlwdD4gbV9jYWNoZWRTY3JpcHQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3Jp
cHRhYmxlRG9jdW1lbnRQYXJzZXIuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdGFibGVEb2N1bWVudFBh
cnNlci5oCmluZGV4IGQ5YmY4NWNhYmY0NTUzM2M5ODFiZTYwZmM1YmE5Njk3NzVlNDI0M2MuLjhi
MTYzMDQxMjEwNGU0ZTQ1YTAxMzIzZGQyMjU1ZTY1NjRlMzQwNDUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNvcmUvZG9tL1Njcmlw
dGFibGVEb2N1bWVudFBhcnNlci5oCkBAIC0yNywxMCArMjcsMTAgQEAKICNkZWZpbmUgU2NyaXB0
YWJsZURvY3VtZW50UGFyc2VyX2gKIAogI2luY2x1ZGUgIkRlY29kZWREYXRhRG9jdW1lbnRQYXJz
ZXIuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBTZWdtZW50ZWRTdHJpbmc7CiBjbGFzcyBYU1NBdWRpdG9yOwogCiBj
bGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIgOiBwdWJsaWMgRGVjb2RlZERhdGFEb2N1bWVu
dFBhcnNlciB7CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZXNlIGFyZSB1
c2VkIHRvIGV4cG9zZSB0aGUgY3VycmVudCBsaW5lL2NvbHVtbiB0byB0aGUgc2NyaXB0aW5nIHN5
c3RlbS4KICAgICB2aXJ0dWFsIGludCBsaW5lTnVtYmVyKCkgY29uc3QgPSAwOwotICAgIHZpcnR1
YWwgVGV4dFBvc2l0aW9uMCB0ZXh0UG9zaXRpb24oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBp
bnQgY29sdW1uTnVtYmVyKCkgY29uc3QgPSAwOwogCiAgICAgWFNTQXVkaXRvciogeHNzQXVkaXRv
cigpIGNvbnN0IHsgcmV0dXJuIG1feHNzQXVkaXRvcjsgfQogICAgIHZvaWQgc2V0WFNTQXVkaXRv
cihYU1NBdWRpdG9yKiBhdWRpdG9yKSB7IG1feHNzQXVkaXRvciA9IGF1ZGl0b3I7IH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2RvbS9YTUxE
b2N1bWVudFBhcnNlci5oCmluZGV4IGUzZDNjYzJiMTA3YWRkMDkwNzkzZmM2ZTk4N2UxYTIyNGU4
N2IyNWMuLmUwNzcwYmFkYmFmZjdiYTExMDIwYWRkYzcxMjQ5ZWYzZGVjODIwZDQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9kb20vWE1M
RG9jdW1lbnRQYXJzZXIuaApAQCAtMTAyLDcgKzEwMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgLy8gV01MRXJyb3JIYW5kbGluZyB1c2VzIHRoZXNlIGZ1bmN0aW9ucy4KICAgICAg
ICAgdmlydHVhbCBib29sIHdlbGxGb3JtZWQoKSBjb25zdCB7IHJldHVybiAhbV9zYXdFcnJvcjsg
fQogICAgICAgICB2aXJ0dWFsIGludCBsaW5lTnVtYmVyKCkgY29uc3Q7Ci0gICAgICAgIFRleHRQ
b3NpdGlvbjAgdGV4dFBvc2l0aW9uKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgaW50IGNvbHVt
bk51bWJlcigpIGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzWE1MVmVyc2lv
bihjb25zdCBTdHJpbmcmKTsKIApAQCAtMTI5LDE0ICsxMjksNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgYm9vbCBhcHBlbmRGcmFnbWVudFNvdXJjZShjb25zdCBTdHJpbmcmKTsK
IAotICAgICAgICBpbnQgY29sdW1uTnVtYmVyKCkgY29uc3Q7Ci0KLSAgICAgICAgLy8gVGhpcyBt
ZXRob2QgaXMgaW50cm9kdWNlZCB0byB0ZW1wb3JhcnkgbGVnYWxpemUgZXhpc3RpbmcgbGluZS9j
b2x1bW4KLSAgICAgICAgLy8gY29vcmRpbmF0ZSBidWc6IGl0IGlzIGJlbGlldmVkIHRoYXQgbnVt
YmVycyB0aGF0IG9yaWdpbmFsbHkgd2VyZSB6ZXJvLWJhc2VkCi0gICAgICAgIC8vIGV2ZW50dWFs
bHkgYmVjb21lcyBvbmUtYmFzZWQuCi0gICAgICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSBhbmQg
Z2V0IHJpZCBvZiB0aGlzIG1ldGhvZC4KLSAgICAgICAgVGV4dFBvc2l0aW9uMSB0ZXh0UG9zaXRp
b25PbmVCYXNlZCgpIGNvbnN0OwotCiAjaWYgVVNFKFFYTUxTVFJFQU0pCiBwcml2YXRlOgogICAg
ICAgICB2b2lkIHBhcnNlKCk7CkBAIC0yMTYsNyArMjA4LDcgQEAgcHVibGljOgogCiAgICAgICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9wZW5kaW5nU2NyaXB0OwogICAg
ICAgICBSZWZQdHI8RWxlbWVudD4gbV9zY3JpcHRFbGVtZW50OwotICAgICAgICBUZXh0UG9zaXRp
b24xIG1fc2NyaXB0U3RhcnRQb3NpdGlvbjsKKyAgICAgICAgaW50IG1fc2NyaXB0U3RhcnRMaW5l
OwogCiAgICAgICAgIGJvb2wgbV9wYXJzaW5nRnJhZ21lbnQ7CiAgICAgICAgIEF0b21pY1N0cmlu
ZyBtX2RlZmF1bHROYW1lc3BhY2VVUkk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1
bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4
bWwyLmNwcAppbmRleCBkY2U4ZmVmMWU4N2IzMjNhMTVmMTcyYWQxNTA1NWE1ODk5ZTA5NTEwLi41
YjVhYzg5ZmFiMmU2NTM1NjQzMDJlMGI2MTNjZjIzMGE0NjRiYTg5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1hN
TERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU2MCw3ICs1NjAsNyBAQCBYTUxEb2N1bWVu
dFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBGcmFtZVZpZXcq
IGZyYW1lVmlldykKICAgICAsIG1fbGFzdEVycm9yTGluZSgwKQogICAgICwgbV9sYXN0RXJyb3JD
b2x1bW4oMCkKICAgICAsIG1fcGVuZGluZ1NjcmlwdCgwKQotICAgICwgbV9zY3JpcHRTdGFydFBv
c2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlvbigpKQorICAgICwgbV9zY3Jp
cHRTdGFydExpbmUoMCkKICAgICAsIG1fcGFyc2luZ0ZyYWdtZW50KGZhbHNlKQogICAgICwgbV9z
Y3JpcHRpbmdQZXJtaXNzaW9uKEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCkKIHsKQEAgLTU4Nyw3
ICs1ODcsNyBAQCBYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRG
cmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBhcmVudAogICAgICwgbV9sYXN0RXJyb3JMaW5l
KDApCiAgICAgLCBtX2xhc3RFcnJvckNvbHVtbigwKQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDAp
Ci0gICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBv
c2l0aW9uKCkpCisgICAgLCBtX3NjcmlwdFN0YXJ0TGluZSgwKQogICAgICwgbV9wYXJzaW5nRnJh
Z21lbnQodHJ1ZSkKICAgICAsIG1fc2NyaXB0aW5nUGVybWlzc2lvbihzY3JpcHRpbmdQZXJtaXNz
aW9uKQogewpAQCAtODE5LDcgKzgxOSw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0
RWxlbWVudE5zKGNvbnN0IHhtbENoYXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhCiAKICAg
ICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50KG5ld0VsZW1l
bnQuZ2V0KCkpOwogICAgIGlmIChzY3JpcHRFbGVtZW50KQotICAgICAgICBtX3NjcmlwdFN0YXJ0
UG9zaXRpb24gPSB0ZXh0UG9zaXRpb25PbmVCYXNlZCgpOworICAgICAgICBtX3NjcmlwdFN0YXJ0
TGluZSA9IGxpbmVOdW1iZXIoKTsKIAogICAgIG1fY3VycmVudE5vZGUtPmRlcHJlY2F0ZWRQYXJz
ZXJBZGRDaGlsZChuZXdFbGVtZW50LmdldCgpKTsKIApAQCAtOTEwLDcgKzkxMCw3IEBAIHZvaWQg
WE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgICAgICBtX3NjcmlwdEVsZW1lbnQgPSAwOwogICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIG1fdmlldy0+ZnJhbWUoKS0+c2NyaXB0KCktPmV4ZWN1dGVTY3JpcHQoU2NyaXB0U291
cmNlQ29kZShzY3JpcHRFbGVtZW50LT5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgp
LCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgICAgIG1fdmlldy0+ZnJhbWUoKS0+
c2NyaXB0KCktPmV4ZWN1dGVTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LT5z
Y3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0TGluZSkpOwog
CiAgICAgICAgIC8vIEphdmFTY3JpcHQgbWF5IGhhdmUgZGV0YWNoZWQgdGhlIHBhcnNlcgogICAg
ICAgICBpZiAoaXNEZXRhY2hlZCgpKQpAQCAtMTM3NiwzOSArMTM3NiwxNCBAQCB2b2lkKiB4bWxE
b2NQdHJGb3JTdHJpbmcoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVy
LCBjb25zdCBTdHJpbgogCiBpbnQgWE1MRG9jdW1lbnRQYXJzZXI6OmxpbmVOdW1iZXIoKSBjb25z
dAogewotICAgIC8vIEZJWE1FOiBUaGUgaW1wbGVtZW50YXRpb24gcHJvYmFibHkgcmV0dXJucyAx
LWJhc2VkIGludCwgYnV0IG1ldGhvZCBzaG91bGQgcmV0dXJuIDAtYmFzZWQuCiAgICAgcmV0dXJu
IGNvbnRleHQoKSA/IGNvbnRleHQoKS0+aW5wdXQtPmxpbmUgOiAxOwogfQogCiBpbnQgWE1MRG9j
dW1lbnRQYXJzZXI6OmNvbHVtbk51bWJlcigpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IFRoZSBp
bXBsZW1lbnRhdGlvbiBwcm9iYWJseSByZXR1cm5zIDEtYmFzZWQgaW50LCBidXQgbWV0aG9kIHNo
b3VsZCByZXR1cm4gMC1iYXNlZC4KICAgICByZXR1cm4gY29udGV4dCgpID8gY29udGV4dCgpLT5p
bnB1dC0+Y29sIDogMTsKIH0KIAotVGV4dFBvc2l0aW9uMCBYTUxEb2N1bWVudFBhcnNlcjo6dGV4
dFBvc2l0aW9uKCkgY29uc3QKLXsKLSAgICB4bWxQYXJzZXJDdHh0UHRyIGNvbnRleHQgPSB0aGlz
LT5jb250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm4gVGV4dFBvc2l0
aW9uMDo6bWluaW11bVBvc2l0aW9uKCk7Ci0gICAgLy8gRklYTUU6IFRoZSBjb250ZXh0IHByb2Jh
Ymx5IGNvbnRhaW5zIDEtYmFzZWQgbnVtYmVycywgYnV0IHdlIHRyZWF0IHRoZW0gYXMgMC1iYXNl
ZCwKLSAgICAvLyAgICAgICAgdG8gYmUgY29uc2lzdGVudCB3aXRoIGZpeG1lJ3MgaW4gbGluZU51
bWJlcigpIGFuZCBjb2x1bW5OdW1iZXIKLSAgICAvLyAgICAgICAgbWV0aG9kcy4KLSAgICByZXR1
cm4gVGV4dFBvc2l0aW9uMChXVEY6Olplcm9CYXNlZE51bWJlcjo6ZnJvbVplcm9CYXNlZEludChj
b250ZXh0LT5pbnB1dC0+bGluZSksCi0gICAgICAgIFdURjo6WmVyb0Jhc2VkTnVtYmVyOjpmcm9t
WmVyb0Jhc2VkSW50KGNvbnRleHQtPmlucHV0LT5jb2wpKTsKLX0KLQotLy8gVGhpcyBtZXRob2Qg
aGFzIGEgY29ycmVjdCBpbXBsZW1lbnRhdGlvbiwgaW4gY29udHJhc3QgdG8gdGV4dFBvc2l0aW9u
KCkgbWV0aG9kLgotLy8gSXQgc2hvdWxkIHJlcGxhY2UgdGV4dFBvc2l0aW9uKCkuCi1UZXh0UG9z
aXRpb24xIFhNTERvY3VtZW50UGFyc2VyOjp0ZXh0UG9zaXRpb25PbmVCYXNlZCgpIGNvbnN0Ci17
Ci0gICAgeG1sUGFyc2VyQ3R4dFB0ciBjb250ZXh0ID0gdGhpcy0+Y29udGV4dCgpOwotICAgIGlm
ICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuIFRleHRQb3NpdGlvbjE6Om1pbmltdW1Qb3NpdGlv
bigpOwotICAgIHJldHVybiBUZXh0UG9zaXRpb24xKFdURjo6T25lQmFzZWROdW1iZXI6OmZyb21P
bmVCYXNlZEludChjb250ZXh0LT5pbnB1dC0+bGluZSksCi0gICAgICAgIFdURjo6T25lQmFzZWRO
dW1iZXI6OmZyb21PbmVCYXNlZEludChjb250ZXh0LT5pbnB1dC0+Y29sKSk7Ci19Ci0KIHZvaWQg
WE1MRG9jdW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCkKIHsKICAgICBEb2N1bWVudFBhcnNlcjo6
c3RvcFBhcnNpbmcoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2Vy
UXQuY3BwIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKaW5kZXggZjFhZmUz
NGMzZDE1MzgzNzg2ODJjMTFmZjQ5ZDFiMTNkZmZhY2QwMy4uMDNiMDgzZWMxYzkyNWNjZDUxZTZi
MWQyMWM5YjUyZWExNmJjZTljZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQ
YXJzZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKQEAg
LTEwNSw3ICsxMDUsNyBAQCBYTUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIoRG9j
dW1lbnQqIGRvY3VtZW50LCBGcmFtZVZpZXcqIGZyYW1lVmlldykKICAgICAsIG1fbGFzdEVycm9y
TGluZSgwKQogICAgICwgbV9sYXN0RXJyb3JDb2x1bW4oMCkKICAgICAsIG1fcGVuZGluZ1Njcmlw
dCgwKQotICAgICwgbV9zY3JpcHRTdGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjE6OmJlbG93UmFu
Z2VQb3NpdGlvbigpKQorICAgICwgbV9zY3JpcHRTdGFydExpbmUoMCkKICAgICAsIG1fcGFyc2lu
Z0ZyYWdtZW50KGZhbHNlKQogICAgICwgbV9zY3JpcHRpbmdQZXJtaXNzaW9uKEZyYWdtZW50U2Ny
aXB0aW5nQWxsb3dlZCkKIHsKQEAgLTEzMiw3ICsxMzIsNyBAQCBYTUxEb2N1bWVudFBhcnNlcjo6
WE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIHBh
cmVudAogICAgICwgbV9sYXN0RXJyb3JMaW5lKDApCiAgICAgLCBtX2xhc3RFcnJvckNvbHVtbigw
KQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCi0gICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24o
VGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCisgICAgLCBtX3NjcmlwdFN0YXJ0
TGluZSgwKQogICAgICwgbV9wYXJzaW5nRnJhZ21lbnQodHJ1ZSkKICAgICAsIG1fc2NyaXB0aW5n
UGVybWlzc2lvbihwZXJtaXNzaW9uKQogewpAQCAtMjM0LDE4ICsyMzQsNiBAQCBpbnQgWE1MRG9j
dW1lbnRQYXJzZXI6OmNvbHVtbk51bWJlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3RyZWFtLmNv
bHVtbk51bWJlcigpOwogfQogCi1UZXh0UG9zaXRpb24wIFhNTERvY3VtZW50UGFyc2VyOjp0ZXh0
UG9zaXRpb24oKSBjb25zdAotewotICAgIHJldHVybiBUZXh0UG9zaXRpb24wKFdURjo6WmVyb0Jh
c2VkTnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KGxpbmVOdW1iZXIoKSksIFdURjo6WmVyb0Jhc2Vk
TnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KGNvbHVtbk51bWJlcigpKSk7Ci19Ci0KLS8vIFRoaXMg
bWV0aG9kIGluY29ycmVjdGx5IHJlaW50ZXJwcmV0cyB6ZXJvLWJhc2UgbGluZU51bWJlciBtZXRo
b2QgYXMgb25lLWJhc2VkIG51bWJlci4KLS8vIEZJWE1FOiBUaGlzIGVycm9yIGlzIGtlcHQgZm9y
IGNvbXBhdGliaWxpdHkuIFdlIHNob3VsZCBmaXggaXQgZXZlbnR1YWxseS4gCi1UZXh0UG9zaXRp
b24xIFhNTERvY3VtZW50UGFyc2VyOjp0ZXh0UG9zaXRpb25PbmVCYXNlZCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIFRleHRQb3NpdGlvbjEoV1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJvbU9uZUJhc2Vk
SW50KGxpbmVOdW1iZXIoKSksIFdURjo6T25lQmFzZWROdW1iZXI6OmZyb21PbmVCYXNlZEludChj
b2x1bW5OdW1iZXIoKSkpOwotfQotCiB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2lu
ZygpCiB7CiAgICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZygpOwpAQCAt
NTMwLDcgKzUxOCw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlU3RhcnRFbGVtZW50
KCkKIAogICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnQo
bmV3RWxlbWVudC5nZXQoKSk7CiAgICAgaWYgKHNjcmlwdEVsZW1lbnQpCi0gICAgICAgIG1fc2Ny
aXB0U3RhcnRQb3NpdGlvbiA9IHRleHRQb3NpdGlvbk9uZUJhc2VkKCk7CisgICAgICAgIG1fc2Ny
aXB0U3RhcnRMaW5lID0gbGluZU51bWJlcigpOwogCiAgICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVj
YXRlZFBhcnNlckFkZENoaWxkKG5ld0VsZW1lbnQuZ2V0KCkpOwogCkBAIC02MDcsNyArNTk1LDcg
QEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VFbmRFbGVtZW50KCkKICAgICAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgICAgIG1fc2NyaXB0RWxlbWVudCA9IDA7CiAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgbV92aWV3LT5mcmFtZSgpLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlw
dChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdEVsZW1lbnQtPnNjcmlwdENvbnRlbnQoKSwgZG9jdW1l
bnQoKS0+dXJsKCksIG1fc2NyaXB0U3RhcnRQb3NpdGlvbikpOworICAgICAgICAgICAgbV92aWV3
LT5mcmFtZSgpLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlw
dEVsZW1lbnQtPnNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQoKS0+dXJsKCksIG1fc2NyaXB0U3Rh
cnRMaW5lKSk7CiAgICAgfQogICAgIG1fcmVxdWVzdGluZ1NjcmlwdCA9IGZhbHNlOwogICAgIHBv
cEN1cnJlbnROb2RlKCk7CkBAIC03MjgsMyArNzE2LDQgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNl
cjo6cGFyc2VEdGQoKQogCiB9CiB9CisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50
UGFyc2VyLmNwcAppbmRleCBkMTY5NDE3YTRiZTgzOTMwOTAzMGI3Mzc0Yjc1ODlkYzcxNWM2N2M0
Li45NGNjMmFhNjIzODYyZjVjZjA1ODA0NzkyMDcyNjYzZjE5MjNjODY3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0xOTEsMTIgKzE5MSwxMiBAQCBi
b29sIEhUTUxEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyKCkK
IHsKICAgICBBU1NFUlQobV90cmVlQnVpbGRlci0+aXNQYXVzZWQoKSk7CiAKLSAgICBUZXh0UG9z
aXRpb24xIHNjcmlwdFN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9z
aXRpb24oKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gc2NyaXB0RWxlbWVudCA9IG1fdHJlZUJ1aWxk
ZXItPnRha2VTY3JpcHRUb1Byb2Nlc3Moc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgaW50IHNj
cmlwdFN0YXJ0TGluZSA9IDA7CisgICAgUmVmUHRyPEVsZW1lbnQ+IHNjcmlwdEVsZW1lbnQgPSBt
X3RyZWVCdWlsZGVyLT50YWtlU2NyaXB0VG9Qcm9jZXNzKHNjcmlwdFN0YXJ0TGluZSk7CiAgICAg
Ly8gV2Ugd2lsbCBub3QgaGF2ZSBhIHNjcmlwdFJ1bm5lciB3aGVuIHBhcnNpbmcgYSBEb2N1bWVu
dEZyYWdtZW50LgogICAgIGlmICghbV9zY3JpcHRSdW5uZXIpCiAgICAgICAgIHJldHVybiB0cnVl
OwotICAgIHJldHVybiBtX3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShzY3JpcHRFbGVtZW50LnJlbGVh
c2UoKSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgcmV0dXJuIG1fc2NyaXB0UnVubmVyLT5l
eGVjdXRlKHNjcmlwdEVsZW1lbnQucmVsZWFzZSgpLCBzY3JpcHRTdGFydExpbmUpOwogfQogCiB2
b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcihTeW5jaHJvbm91c01vZGUgbW9k
ZSkKQEAgLTM5NiwxMyArMzk2LDkgQEAgaW50IEhUTUxEb2N1bWVudFBhcnNlcjo6bGluZU51bWJl
cigpIGNvbnN0CiAgICAgcmV0dXJuIG1fdG9rZW5pemVyLT5saW5lTnVtYmVyKCk7CiB9CiAKLVRl
eHRQb3NpdGlvbjAgSFRNTERvY3VtZW50UGFyc2VyOjp0ZXh0UG9zaXRpb24oKSBjb25zdAoraW50
IEhUTUxEb2N1bWVudFBhcnNlcjo6Y29sdW1uTnVtYmVyKCkgY29uc3QKIHsKLSAgICBpbnQgbGlu
ZVplcm9CYXNlZCA9IG1fdG9rZW5pemVyLT5saW5lTnVtYmVyKCk7Ci0gICAgaW50IGNvbHVtbk9u
ZUJhc2VkID0gbV90b2tlbml6ZXItPmNvbHVtbk51bWJlcigpOwotCi0gICAgcmV0dXJuIFRleHRQ
b3NpdGlvbjAoV1RGOjpaZXJvQmFzZWROdW1iZXI6OmZyb21aZXJvQmFzZWRJbnQobGluZVplcm9C
YXNlZCksCi0gICAgICAgIFdURjo6T25lQmFzZWROdW1iZXI6OmZyb21PbmVCYXNlZEludChjb2x1
bW5PbmVCYXNlZCkuY29udmVydFRvWmVyb0Jhc2VkKCkpOworICAgIHJldHVybiBtX3Rva2VuaXpl
ci0+Y29sdW1uTnVtYmVyKCk7CiB9CiAKIGJvb2wgSFRNTERvY3VtZW50UGFyc2VyOjppc1dhaXRp
bmdGb3JTY3JpcHRzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TERvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5oCmluZGV4IDA1MDUzZGYyZjFjYjQ1NzUxMWVhNzQ2ODFmNDJjNzIyYjNkNmM5YTAuLmQ5NjI1
ZjEyMThiNjc0YTQ2ZGFlM2UxYjA4ZDhiYjdlM2E1NGU3MzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc0V4ZWN1dGluZ1NjcmlwdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBl
eGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0cygpOwogICAgIHZpcnR1YWwgaW50IGxp
bmVOdW1iZXIoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFRleHRQb3NpdGlvbjAgdGV4dFBvc2l0aW9u
KCkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQgY29sdW1uTnVtYmVyKCkgY29uc3Q7CiAKICAgICAv
LyBIVE1MU2NyaXB0UnVubmVySG9zdAogICAgIHZpcnR1YWwgdm9pZCB3YXRjaEZvckxvYWQoQ2Fj
aGVkUmVzb3VyY2UqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlw
dFJ1bm5lci5jcHAgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCmlu
ZGV4IDYxZjY3M2E2ZjFhMTM4ODE5Zjg3NDgzOWQyMzdhNTNkNjJmYjdlOTAuLjc1ZGI2NDRiZWNk
NDRjNGM3YWY3NDdlZTNlNTlkMGI0ZWE0MjdlMzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
U2NyaXB0UnVubmVyLmNwcApAQCAtOTksNyArOTksNyBAQCBTY3JpcHRTb3VyY2VDb2RlIEhUTUxT
Y3JpcHRSdW5uZXI6OnNvdXJjZUZyb21QZW5kaW5nU2NyaXB0KGNvbnN0IFBlbmRpbmdTY3JpcHQm
CiAgICAgICAgIHJldHVybiBTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdC5jYWNoZWRTY3JpcHQoKSk7
CiAgICAgfQogICAgIGVycm9yT2NjdXJyZWQgPSBmYWxzZTsKLSAgICByZXR1cm4gU2NyaXB0U291
cmNlQ29kZShzY3JpcHQuZWxlbWVudCgpLT50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTEZvclNj
cmlwdEV4ZWN1dGlvbihtX2RvY3VtZW50KSwgc2NyaXB0LnN0YXJ0aW5nUG9zaXRpb24oKSk7Cisg
ICAgcmV0dXJuIFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LmVsZW1lbnQoKS0+dGV4dENvbnRlbnQo
KSwgZG9jdW1lbnRVUkxGb3JTY3JpcHRFeGVjdXRpb24obV9kb2N1bWVudCksIHNjcmlwdC5zdGFy
dGluZ0xpbmVOdW1iZXIoKSk7CiB9CiAKIGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6aXNQZW5kaW5n
U2NyaXB0UmVhZHkoY29uc3QgUGVuZGluZ1NjcmlwdCYgc2NyaXB0KQpAQCAtMTcyLDEzICsxNzIs
MTMgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpzdG9wV2F0Y2hpbmdGb3JMb2FkKFBlbmRpbmdT
Y3JpcHQmIHBlbmRpbmdTY3JpcHQpCiAKIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG1hdGNoIDEw
LjIuNS4xMSAiQW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAnc2NyaXB0JyIKIC8vIFNjcmlw
dCBoYW5kbGluZyBsaXZlcyBvdXRzaWRlIHRoZSB0cmVlIGJ1aWxkZXIgdG8ga2VlcCB0aGUgZWFj
aCBjbGFzcyBzaW1wbGUuCi1ib29sIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGUoUGFzc1JlZlB0
cjxFbGVtZW50PiBzY3JpcHRFbGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24xJiBzY3JpcHRTdGFy
dFBvc2l0aW9uKQorYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlKFBhc3NSZWZQdHI8RWxl
bWVudD4gc2NyaXB0RWxlbWVudCwgaW50IHN0YXJ0TGluZSkKIHsKICAgICBBU1NFUlQoc2NyaXB0
RWxlbWVudCk7CiAgICAgLy8gRklYTUU6IElmIHNjcmlwdGluZyBpcyBkaXNhYmxlZCwgYWx3YXlz
IGp1c3QgcmV0dXJuIHRydWU7CiAKICAgICAvLyBUcnkgdG8gZXhlY3V0ZSB0aGUgc2NyaXB0IGdp
dmVuIHRvIHVzLgotICAgIHJ1blNjcmlwdChzY3JpcHRFbGVtZW50LmdldCgpLCBzY3JpcHRTdGFy
dFBvc2l0aW9uKTsKKyAgICBydW5TY3JpcHQoc2NyaXB0RWxlbWVudC5nZXQoKSwgc3RhcnRMaW5l
KTsKIAogICAgIGlmIChoYXZlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCkpIHsKICAgICAgICAgaWYg
KG1fc2NyaXB0TmVzdGluZ0xldmVsKQpAQCAtMjkwLDcgKzI5MCw3IEBAIGJvb2wgSFRNTFNjcmlw
dFJ1bm5lcjo6cmVxdWVzdFBlbmRpbmdTY3JpcHQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1Njcmlw
dCwgRWxlbWVuCiAKIC8vIFRoaXMgbWV0aG9kIGlzIG1lYW50IHRvIG1hdGNoIHRoZSBIVE1MNSBk
ZWZpbml0aW9uIG9mICJydW5uaW5nIGEgc2NyaXB0IgogLy8gaHR0cDovL3d3dy53aGF0d2cub3Jn
L3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uvc2NyaXB0aW5nLTEuaHRtbCNy
dW5uaW5nLWEtc2NyaXB0Ci12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdChFbGVtZW50
KiBzY3JpcHQsIGNvbnN0IFRleHRQb3NpdGlvbjEmIHNjcmlwdFN0YXJ0UG9zaXRpb24pCit2b2lk
IEhUTUxTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdChFbGVtZW50KiBzY3JpcHQsIGludCBzdGFydGlu
Z0xpbmVOdW1iZXIpCiB7CiAgICAgQVNTRVJUKG1fZG9jdW1lbnQpOwogICAgIEFTU0VSVCghaGF2
ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdCgpKTsKQEAgLTMxNyw3ICszMTcsNyBAQCB2b2lkIEhUTUxT
Y3JpcHRSdW5uZXI6OnJ1blNjcmlwdChFbGVtZW50KiBzY3JpcHQsIGNvbnN0IFRleHRQb3NpdGlv
bjEmIHNjcmlwdFN0YQogICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDA0NwogICAgICAgICAgICAgLy8gQVNTRVJUKGRvY3VtZW50KCkt
PmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpKTsKICAgICAgICAgICAgIEFTU0VSVChpc0V4ZWN1dGlu
Z1NjcmlwdCgpKTsKLSAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShzY3Jp
cHQtPnRleHRDb250ZW50KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1l
bnQpLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICAgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUg
c291cmNlQ29kZShzY3JpcHQtPnRleHRDb250ZW50KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhl
Y3V0aW9uKG1fZG9jdW1lbnQpLCBzdGFydGluZ0xpbmVOdW1iZXIpOwogICAgICAgICAgICAgZXhl
Y3V0ZVNjcmlwdChzb3VyY2VDb2RlKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5oIGIvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MU2NyaXB0UnVubmVyLmgKaW5kZXggMmRmMjk1ZjljMTM1OTRkZWNiNmVmMWYxMDBlM2Nk
OTVkMzc5OTQyYy4uYmUyMWRkMjQyMWIxZDQ0MjdiMDg0N2IwYjkxMWMxZmU5N2M2Zjc2NSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgKKysrIGIvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgKQEAgLTI4LDcgKzI4LDYgQEAKIAog
I2luY2x1ZGUgIlBlbmRpbmdTY3JpcHQuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCkBAIC01Myw3ICs1Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRldGFjaCgpOwogCiAgICAgLy8gUHJvY2Vzc2VzIHRoZSBwYXNzZWQgaW4g
c2NyaXB0IGFuZCBhbnkgcGVuZGluZyBzY3JpcHRzIGlmIHBvc3NpYmxlLgotICAgIGJvb2wgZXhl
Y3V0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IHNjcmlwdFRvUHJvY2VzcywgY29uc3QgVGV4dFBvc2l0
aW9uMSYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgYm9vbCBleGVjdXRlKFBhc3NSZWZQdHI8
RWxlbWVudD4gc2NyaXB0VG9Qcm9jZXNzLCBpbnQgc2NyaXB0U3RhcnRMaW5lKTsKIAogICAgIGJv
b2wgZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yTG9hZChDYWNoZWRSZXNvdXJjZSopOwogICAgIGJv
b2wgaGFzU2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0cygpIGNvbnN0IHsgcmV0dXJuIG1faGFz
U2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNoZWV0czsgfQpAQCAtNzcsNyArNzYsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcmVxdWVzdERlZmVycmVkU2NyaXB0KEVsZW1lbnQqKTsKICAgICBib29sIHJl
cXVlc3RQZW5kaW5nU2NyaXB0KFBlbmRpbmdTY3JpcHQmLCBFbGVtZW50KikgY29uc3Q7CiAKLSAg
ICB2b2lkIHJ1blNjcmlwdChFbGVtZW50KiwgY29uc3QgVGV4dFBvc2l0aW9uMSYgc2NyaXB0U3Rh
cnRQb3NpdGlvbik7CisgICAgdm9pZCBydW5TY3JpcHQoRWxlbWVudCosIGludCBzdGFydGluZ0xp
bmVOdW1iZXIpOwogCiAgICAgLy8gSGVscGVycyBmb3IgZGVhbGluZyB3aXRoIEhUTUxTY3JpcHRS
dW5uZXJIb3N0CiAgICAgdm9pZCB3YXRjaEZvckxvYWQoUGVuZGluZ1NjcmlwdCYpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDI2NGI2NTRjNGQ0ZTA1NzYzYmQ3
YjZmOTNhZWI1NjVhYjNlZmZiZjguLjMxMGZmNjAxMjEzYWEwMGExYzQwOWU0ZGE5NGRmMjkxODAy
MGE4MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNw
cAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTU2LDEx
ICs1Niw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBjb25zdCBpbnQg
dW5pbml0aWFsaXplZExpbmVOdW1iZXJWYWx1ZSA9IC0xOwogCi1zdGF0aWMgVGV4dFBvc2l0aW9u
MSB1bmluaXRpYWxpemVkUG9zaXRpb25WYWx1ZTEoKQotewotICAgIHJldHVybiBUZXh0UG9zaXRp
b24xKFdURjo6T25lQmFzZWROdW1iZXI6OmZyb21PbmVCYXNlZEludCgtMSksIFdURjo6T25lQmFz
ZWROdW1iZXI6OmJhc2UoKSk7Ci19Ci0KIG5hbWVzcGFjZSB7CiAKIGlubGluZSBib29sIGlzSFRN
TFNwYWNlT3JSZXBsYWNlbWVudENoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIpCkBAIC0zNDUsOCAr
MzQwLDggQEAgSFRNTFRyZWVCdWlsZGVyOjpIVE1MVHJlZUJ1aWxkZXIoSFRNTFRva2VuaXplciog
dG9rZW5pemVyLCBIVE1MRG9jdW1lbnQqIGRvY3VtZW4KICAgICAsIG1faW5zZXJ0aW9uTW9kZShJ
bml0aWFsTW9kZSkKICAgICAsIG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlKEluaXRpYWxNb2RlKQog
ICAgICwgbV90b2tlbml6ZXIodG9rZW5pemVyKQotICAgICwgbV9zY3JpcHRUb1Byb2Nlc3NTdGFy
dFBvc2l0aW9uKHVuaW5pdGlhbGl6ZWRQb3NpdGlvblZhbHVlMSgpKQotICAgICwgbV9sYXN0U2Ny
aXB0RWxlbWVudFN0YXJ0UG9zaXRpb24oVGV4dFBvc2l0aW9uMDo6YmVsb3dSYW5nZVBvc2l0aW9u
KCkpCisgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51
bWJlclZhbHVlKQorICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSh1bmluaXRpYWxp
emVkTGluZU51bWJlclZhbHVlKQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1c2VQ
cmVIVE1MNVBhcnNlclF1aXJrcykKICAgICAsIG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25N
b2RlU3RlcHMoZmFsc2UpCiB7CkBAIC0zNjQsOCArMzU5LDggQEAgSFRNTFRyZWVCdWlsZGVyOjpI
VE1MVHJlZUJ1aWxkZXIoSFRNTFRva2VuaXplciogdG9rZW5pemVyLCBEb2N1bWVudEZyYWdtZW50
KiBmcmEKICAgICAsIG1faW5zZXJ0aW9uTW9kZShJbml0aWFsTW9kZSkKICAgICAsIG1fb3JpZ2lu
YWxJbnNlcnRpb25Nb2RlKEluaXRpYWxNb2RlKQogICAgICwgbV90b2tlbml6ZXIodG9rZW5pemVy
KQotICAgICwgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydFBvc2l0aW9uKHVuaW5pdGlhbGl6ZWRQb3Np
dGlvblZhbHVlMSgpKQotICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0UG9zaXRpb24oVGV4
dFBvc2l0aW9uMDo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCisgICAgLCBtX3NjcmlwdFRvUHJvY2Vz
c1N0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQorICAgICwgbV9sYXN0U2Ny
aXB0RWxlbWVudFN0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQogICAgICwg
bV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcykKICAgICAs
IG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMoZmFsc2UpCiB7CkBAIC00Mjgs
MTUgKzQyMywxNSBAQCBIVE1MVHJlZUJ1aWxkZXI6OkZyYWdtZW50UGFyc2luZ0NvbnRleHQ6On5G
cmFnbWVudFBhcnNpbmdDb250ZXh0KCkKIHsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1M
VHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MoVGV4dFBvc2l0aW9uMSYgc2NyaXB0U3Rh
cnRQb3NpdGlvbikKK1Bhc3NSZWZQdHI8RWxlbWVudD4gSFRNTFRyZWVCdWlsZGVyOjp0YWtlU2Ny
aXB0VG9Qcm9jZXNzKGludCYgc2NyaXB0U3RhcnRMaW5lKQogewogICAgIC8vIFVucGF1c2Ugb3Vy
c2VsdmVzLCBjYWxsZXJzIG1heSBwYXVzZSB1cyBhZ2FpbiB3aGVuIHByb2Nlc3NpbmcgdGhlIHNj
cmlwdC4KICAgICAvLyBUaGUgSFRNTDUgc3BlYyBpcyB3cml0dGVuIGFzIHRob3VnaCBzY3JpcHRz
IGFyZSBleGVjdXRlZCBpbnNpZGUgdGhlIHRyZWUKICAgICAvLyBidWlsZGVyLiAgV2UgcGF1c2Ug
dGhlIHBhcnNlciB0byBleGl0IHRoZSB0cmVlIGJ1aWxkZXIsIGFuZCB0aGVuIHJlc3VtZQogICAg
IC8vIGJlZm9yZSBydW5uaW5nIHNjcmlwdHMuCiAgICAgbV9pc1BhdXNlZCA9IGZhbHNlOwotICAg
IHNjcmlwdFN0YXJ0UG9zaXRpb24gPSBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb247Ci0g
ICAgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydFBvc2l0aW9uID0gdW5pbml0aWFsaXplZFBvc2l0aW9u
VmFsdWUxKCk7CisgICAgc2NyaXB0U3RhcnRMaW5lID0gbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExp
bmU7CisgICAgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExpbmUgPSB1bmluaXRpYWxpemVkTGluZU51
bWJlclZhbHVlOwogICAgIHJldHVybiBtX3NjcmlwdFRvUHJvY2Vzcy5yZWxlYXNlKCk7CiB9CiAK
QEAgLTIxOTUsNyArMjE5MCw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFn
KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBtX2lzUGF1c2VkID0gdHJ1ZTsK
ICAgICAgICAgICAgIEFTU0VSVChtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+aGFzVGFnTmFtZShz
Y3JpcHRUYWcpKTsKICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gbV90cmVlLmN1cnJl
bnRFbGVtZW50KCk7Ci0gICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb24g
PSBXVEY6OnRvT25lQmFzZWRUZXh0UG9zaXRpb24obV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0UG9z
aXRpb24pOworICAgICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExpbmUgPSBtX2xhc3RT
Y3JpcHRFbGVtZW50U3RhcnRMaW5lICsgMTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+cG9wKCk7CiAgICAgICAgICAgICBpZiAoaXNQYXJzaW5nRnJhZ21lbnQoKSAmJiBtX2Zy
YWdtZW50Q29udGV4dC5zY3JpcHRpbmdQZXJtaXNzaW9uKCkgPT0gRnJhZ21lbnRTY3JpcHRpbmdO
b3RBbGxvd2VkKQogICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzLT5yZW1vdmVBbGxD
aGlsZHJlbigpOwpAQCAtMjc3NCwxMCArMjc2OSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzU2NyaXB0U3RhcnRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICBtX3RyZWUu
aW5zZXJ0U2NyaXB0RWxlbWVudCh0b2tlbik7CiAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhU
TUxUb2tlbml6ZXI6OlNjcmlwdERhdGFTdGF0ZSk7CiAgICAgbV9vcmlnaW5hbEluc2VydGlvbk1v
ZGUgPSBtX2luc2VydGlvbk1vZGU7Ci0KLSAgICBUZXh0UG9zaXRpb24wIHBvc2l0aW9uID0gVGV4
dFBvc2l0aW9uMChXVEY6Olplcm9CYXNlZE51bWJlcjo6ZnJvbVplcm9CYXNlZEludChtX3Rva2Vu
aXplci0+bGluZU51bWJlcigpKSwgV1RGOjpaZXJvQmFzZWROdW1iZXI6OmJhc2UoKSk7Ci0gICAg
bV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0UG9zaXRpb24gPSBwb3NpdGlvbjsKLQorICAgIG1fbGFz
dFNjcmlwdEVsZW1lbnRTdGFydExpbmUgPSBtX3Rva2VuaXplci0+bGluZU51bWJlcigpOwogICAg
IHNldEluc2VydGlvbk1vZGUoVGV4dE1vZGUpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuaAppbmRleCAwZTc1OTdjODNlNmQzZTc3NGFiNjhjNjc2YmFjZDZiODhmMDlmZGZi
Li5jNmZjZGZkOThiZTM2YzI4YTYyY2RhMDRkMmUzMDA4ZDk4YmJjNzEzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJIVE1M
RWxlbWVudFN0YWNrLmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdC5oIgog
I2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRp
b24uaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTcyLDcgKzcxLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgY29uc3RydWN0VHJlZUZyb21BdG9taWNUb2tlbihBdG9taWNIVE1MVG9rZW4m
KTsKIAogICAgIC8vIE11c3QgYmUgY2FsbGVkIHdoZW4gcGFyc2VyIGlzIHBhdXNlZCBiZWZvcmUg
Y2FsbGluZyB0aGUgcGFyc2VyIGFnYWluLgotICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gdGFrZVNj
cmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24xJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICBQ
YXNzUmVmUHRyPEVsZW1lbnQ+IHRha2VTY3JpcHRUb1Byb2Nlc3MoaW50JiBzY3JpcHRTdGFydExp
bmUpOwogCiAgICAgLy8gRG9uZSwgY2xvc2UgYW55IG9wZW4gdGFncywgZXRjLgogICAgIHZvaWQg
ZmluaXNoZWQoKTsKQEAgLTI0OSwxMiArMjQ4LDEyIEBAIHByaXZhdGU6CiAgICAgSFRNTFRva2Vu
aXplciogbV90b2tlbml6ZXI7CiAKICAgICBSZWZQdHI8RWxlbWVudD4gbV9zY3JpcHRUb1Byb2Nl
c3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBuZWVkcyBwcm9jZXNzaW5nIGJlZm9yZSByZXN1bWlu
ZyB0aGUgcGFyc2VyLgotICAgIFRleHRQb3NpdGlvbjEgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydFBv
c2l0aW9uOyAvLyBTdGFydGluZyBsaW5lIG51bWJlciBvZiB0aGUgc2NyaXB0IHRhZyBuZWVkaW5n
IHByb2Nlc3NpbmcuCisgICAgaW50IG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRMaW5lOyAvLyBTdGFy
dGluZyBsaW5lIG51bWJlciBvZiB0aGUgc2NyaXB0IHRhZyBuZWVkaW5nIHByb2Nlc3NpbmcuCiAK
ICAgICAvLyBGSVhNRTogV2UgcHJvYmFibHkgd2FudCB0byByZW1vdmUgdGhpcyBtZW1iZXIuICBP
cmlnaW5hbGx5LCBpdCB3YXMKICAgICAvLyBjcmVhdGVkIHRvIHNlcnZpY2UgdGhlIGxlZ2FjeSB0
cmVlIGJ1aWxkZXIsIGJ1dCBpdCBzZWVtcyB0byBiZSB1c2VkIGZvcgogICAgIC8vIHNvbWUgb3Ro
ZXIgdGhpbmdzIG5vdy4KLSAgICBUZXh0UG9zaXRpb24wIG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFy
dFBvc2l0aW9uOworICAgIGludCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRMaW5lOwogCiAgICAg
Ym9vbCBtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmOGQ5MmIw
Mzc0NjdiZjU5YjZlNzMzOTYxMzU1NjRjZjJlN2RmYTNjLi42ODE2ZWJiM2Y5ZjdhN2M3ZTI1YWNj
Nzc4NGE1NzFiYzJhMDkxMWEyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0x
MC0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjcwNDUxLgorICAgICAgICBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC83MDQ1MQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDgyNDkKKworICAgICAgICBCcm9rZSBzZXQtdW5sb2FkZWQtZnJh
bWUtbG9jYXRpb24uaHRtbCB1bmRlciBRdCAoUmVxdWVzdGVkIGJ5CisgICAgICAgIGNhc2VxIG9u
ICN3ZWJraXQpLgorCisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lSW1wbDo6ZXhlY3V0ZVNjcmlwdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lSW1wbDo6ZXhlY3V0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lSW1wbDo6ZXhlY3V0ZVNjcmlwdEFuZFJldHVyblZhbHVlKToKKwogMjAxMC0x
MC0yNSAgUGV0ZXIgUnliaW4gIDxwZXRlci5yeWJpbkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRl
eCA1MjgwNDQzM2RlYjk4MjQ1ZmU3OTAzMzhjZTkwNDk4NTFhMzk2ZDdlLi5iNGQyM2MwZTIxNjVk
MzI2ZDdlOTYwZGQ0YTQwYWNjZWI1YmY4YTNhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUlt
cGwuY3BwCkBAIC03NTMsOSArNzUzLDggQEAgdm9pZCBXZWJGcmFtZUltcGw6OmJpbmRUb1dpbmRv
d09iamVjdChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIE5QT2JqZWN0KiBvYmplY3QpCiAKIHZvaWQg
V2ViRnJhbWVJbXBsOjpleGVjdXRlU2NyaXB0KGNvbnN0IFdlYlNjcmlwdFNvdXJjZSYgc291cmNl
KQogewotICAgIFRleHRQb3NpdGlvbjEgcG9zaXRpb24oV1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJv
bU9uZUJhc2VkSW50KHNvdXJjZS5zdGFydExpbmUpLCBXVEY6Ok9uZUJhc2VkTnVtYmVyOjpiYXNl
KCkpOwogICAgIG1fZnJhbWUtPnNjcmlwdCgpLT5leGVjdXRlU2NyaXB0KAotICAgICAgICBTY3Jp
cHRTb3VyY2VDb2RlKHNvdXJjZS5jb2RlLCBzb3VyY2UudXJsLCBwb3NpdGlvbikpOworICAgICAg
ICBTY3JpcHRTb3VyY2VDb2RlKHNvdXJjZS5jb2RlLCBzb3VyY2UudXJsLCBzb3VyY2Uuc3RhcnRM
aW5lKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBsOjpleGVjdXRlU2NyaXB0SW5Jc29sYXRlZFdv
cmxkKApAQCAtNzY1LDkgKzc2NCw4IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpleGVjdXRlU2NyaXB0
SW5Jc29sYXRlZFdvcmxkKAogICAgIFZlY3RvcjxTY3JpcHRTb3VyY2VDb2RlPiBzb3VyY2VzOwog
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bVNvdXJjZXM7ICsraSkgewotICAgICAg
ICBUZXh0UG9zaXRpb24xIHBvc2l0aW9uKFdURjo6T25lQmFzZWROdW1iZXI6OmZyb21PbmVCYXNl
ZEludChzb3VyY2VzSW5baV0uc3RhcnRMaW5lKSwgV1RGOjpPbmVCYXNlZE51bWJlcjo6YmFzZSgp
KTsKICAgICAgICAgc291cmNlcy5hcHBlbmQoU2NyaXB0U291cmNlQ29kZSgKLSAgICAgICAgICAg
IHNvdXJjZXNJbltpXS5jb2RlLCBzb3VyY2VzSW5baV0udXJsLCBwb3NpdGlvbikpOworICAgICAg
ICAgICAgc291cmNlc0luW2ldLmNvZGUsIHNvdXJjZXNJbltpXS51cmwsIHNvdXJjZXNJbltpXS5z
dGFydExpbmUpKTsKICAgICB9CiAKICAgICBtX2ZyYW1lLT5zY3JpcHQoKS0+ZXZhbHVhdGVJbklz
b2xhdGVkV29ybGQod29ybGRJZCwgc291cmNlcywgZXh0ZW5zaW9uR3JvdXApOwpAQCAtODE5LDkg
KzgxNyw4IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpjb2xsZWN0R2FyYmFnZSgpCiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gV2ViRnJhbWVJbXBsOjpleGVjdXRlU2NyaXB0QW5kUmV0dXJuVmFsdWUoCiAg
ICAgY29uc3QgV2ViU2NyaXB0U291cmNlJiBzb3VyY2UpCiB7Ci0gICAgVGV4dFBvc2l0aW9uMSBw
b3NpdGlvbihXVEY6Ok9uZUJhc2VkTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc291cmNlLnN0YXJ0
TGluZSksIFdURjo6T25lQmFzZWROdW1iZXI6OmJhc2UoKSk7CiAgICAgcmV0dXJuIG1fZnJhbWUt
PnNjcmlwdCgpLT5leGVjdXRlU2NyaXB0KAotICAgICAgICBTY3JpcHRTb3VyY2VDb2RlKHNvdXJj
ZS5jb2RlLCBzb3VyY2UudXJsLCBwb3NpdGlvbikpLnY4VmFsdWUoKTsKKyAgICAgICAgU2NyaXB0
U291cmNlQ29kZShzb3VyY2UuY29kZSwgc291cmNlLnVybCwgc291cmNlLnN0YXJ0TGluZSkpLnY4
VmFsdWUoKTsKIH0KIAogLy8gUmV0dXJucyB0aGUgVjggY29udGV4dCBmb3IgdGhpcyBmcmFtZSwg
b3IgYW4gZW1wdHkgaGFuZGxlIGlmIHRoZXJlIGlzIG5vbmUuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>