<?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>236467</bug_id>
          
          <creation_ts>2022-02-10 15:47:08 -0800</creation_ts>
          <short_desc>REGRESSION(r289525): Introduced layout test crashes</short_desc>
          <delta_ts>2022-02-10 16:26:17 -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>236099</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1840006</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-02-10 15:47:08 -0800</bug_when>
    <thetext>https://commits.webkit.org/r289525 introduced a regression:
Introduced layout test crashes

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>1840008</commentid>
    <comment_count>1</comment_count>
      <attachid>451613</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-02-10 15:47:28 -0800</bug_when>
    <thetext>Created attachment 451613
REVERT of r289525

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>1840036</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-10 16:25:23 -0800</bug_when>
    <thetext>Committed r289593 (247106@main): &lt;https://commits.webkit.org/247106@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451613.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840037</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-10 16:26:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/88784988&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451613</attachid>
            <date>2022-02-10 15:47:28 -0800</date>
            <delta_ts>2022-02-10 16:25:25 -0800</delta_ts>
            <desc>REVERT of r289525</desc>
            <filename>bug-236467-20220210154727.patch</filename>
            <type>text/plain</type>
            <size>116732</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IwMzUwNmZjNTYxYWU1
YTU5MTFiMzI4Njg3YWY5MmRiZmY1MjVmNC4uMmE4OTIyNGZiODhlYTgwM2U1MmY3OWU0YzlkZDMy
OGZhNjQ2YjRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAyLTEwICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI4OTUyNS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNjQ2NworCisgICAgICAgIEludHJvZHVjZWQgbGF5b3V0IHRlc3QgY3Jh
c2hlcworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiSW50cm9kdWNl
IGEgUmVtb3RlTWVkaWFTYW1wbGVQcm94eSB0byByZXByZXNlbnQgY2FwdHVyZWQKKyAgICAgICAg
dmlkZW8gZnJhbWVzIHVzZWQgaW4gTWVkaWEgU3RyZWFtcyBhbmQgcHJlc2VudCBpbiBHUFVQIgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MDk5Cisg
ICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyODk1MjUKKwogMjAyMi0wMi0xMCAg
QWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBBZGp1
c3QgYXNzZXJ0cyBpbiBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OnByb2Nlc3NCaWRpQ29u
dGVudCB0byBzdXBwb3J0IHZlcnRpY2FsIHdyaXRpbmcgbW9kZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwMDdjMmM0
MWNkOTUzZDU3ZDllNDhmOTUwZTRlYWRiZDMwNzM1Y2MwLi4yM2QyNzU4NWM3YzE3MzU1Yjc4NDBh
Y2Y5Nzc2MWIxMzI0ZjMyZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAyLTEw
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJl
dmlld2VkLCByZXZlcnRpbmcgcjI4OTUyNS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNjQ2NworCisgICAgICAgIEludHJvZHVjZWQgbGF5b3V0IHRl
c3QgY3Jhc2hlcworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiSW50
cm9kdWNlIGEgUmVtb3RlTWVkaWFTYW1wbGVQcm94eSB0byByZXByZXNlbnQgY2FwdHVyZWQKKyAg
ICAgICAgdmlkZW8gZnJhbWVzIHVzZWQgaW4gTWVkaWEgU3RyZWFtcyBhbmQgcHJlc2VudCBpbiBH
UFVQIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2
MDk5CisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyODk1MjUKKwogMjAyMi0w
Mi0xMCAgRWxsaW90dCBXaWxsaWFtcyAgPGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIG9m
IHVudmVyc2lvbmVkICdweXRob24nIGluIE1hYyBidWlsZHMgY2F1c2luZyBmYWlsdXJlcyBpbiAx
Mi4zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4MDUwMDEzZWQ2NWY0MGM4OGYwNDM2MTI3ODAyNWQ0
NjA0ZmIzMDFjLi4wOGEwMWU1NzhkOGEzNTI3ZTZmZWU0NDJjZTkwODExYWY1YmFmYWMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTEzNDksNyArMTM0OSw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9Vc2VyQWdlbnQuaAogICAgIHBsYXRmb3Jt
L1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaAogICAgIHBsYXRmb3JtL1ZhbGlkYXRpb25C
dWJibGUuaAotICAgIHBsYXRmb3JtL1ZpZGVvRnJhbWUuaAogICAgIHBsYXRmb3JtL1ZpZGVvRnJh
bWVNZXRhZGF0YS5oCiAgICAgcGxhdGZvcm0vVmlkZW9TYW1wbGVNZXRhZGF0YS5oCiAgICAgcGxh
dGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2MTQyZDI0M2RiMjg4
MGM1MWVmZWY1OGEwNGM5YjBiYTc1M2Y2MDQxLi4xZWRkNzE4MzhjZDI3ZDM3YzI5ZDc5ZjRhYjMz
YThiZDc1ZTdhNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTkyNiw3ICsxOTI2LDYgQEAgcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKIHBsYXRmb3JtL1RocmVhZFRpbWVycy5jcHAKIHBsYXRm
b3JtL1RpbWVyLmNwcAogcGxhdGZvcm0vVXNlckFjdGl2aXR5LmNwcAotcGxhdGZvcm0vVmlkZW9G
cmFtZS5jcHAKIHBsYXRmb3JtL1dlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAKIHBsYXRmb3Jt
L1dlYkdMU3RhdGVUcmFja2VyLmNwcAogcGxhdGZvcm0vV2lkZ2V0LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE2NGU1MmFl
NTVmMjQzZjI1NDVkMDkzMDY0OTg5OGRjNzc1NDY0NmQuLmU2MzdmM2ZkNjExZWQwYTFmN2JhNWNl
YmIwMTY1ZDU2NDNhM2VkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0MDcsNyArMjQwNyw2IEBACiAJCTdCMTAzMzlFMjU0
OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5RDI1NDk3MjAxMDBDOEMxQUMgLyog
R3JhcGhpY3NDb250ZXh0R0xDVi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdCMTAzMzlGMjU0OTcyMUUwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRl
eHRHTENWQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2Eu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjQ0
MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjQ0MTBERjI3OTU4RkM0MDAw
QjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJN0I1QTNEQUYyN0FCRjhDNTAwNkM2Rjk3IC8qIFZp
ZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNUEzREFEMjdBQkY4QzQwMDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2MDk0REQyNzBDNDRCRDAwNjQ4
MzVDIC8qIEFOR0xFVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QkIzNEExNjI1MzQ1Q0IyMDAwMjlEMDggLyogQU5HTEVVdGlsaXRpZXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjZE
QzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hh
aW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCNkRD
ODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFp
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdC
NzIwQjBDMjc0M0RCQTcwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVs
ZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTE1MjEsOCArMTE1MjAsNiBAQAogCQk3QjE2MTkxMDI3MTk4ODBFMDBDNDBFQUMgLyogV2Vi
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZVZpZGVvRnJh
bWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I0NDEwRTIyNzk1OEZERTAwMEI0
RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IE1lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJN0I1QTNEQUIyN0FCRjhDNDAwNkM2Rjk3IC8qIFZpZGVvRnJhbWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9GcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTdCNUEzREFEMjdBQkY4QzQwMDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnJhbWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNz
Q29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdy
YXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFw
aGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDE1NCw4ICszMDE1MSw2IEBACiAJCQkJQTNBRjlE
ODIyMDMyNTMyNDAwNkNBRDA2IC8qIFVzZXJBZ2VudC5oICovLAogCQkJCTcxQzkxNjA3MUQxNDgz
QTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggKi8sCiAJCQkJODND
NDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCAqLywKLQkJCQk3QjVB
M0RBQjI3QUJGOEM0MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5jcHAgKi8sCi0JCQkJN0I1QTNEQUQy
N0FCRjhDNDAwNkM2Rjk3IC8qIFZpZGVvRnJhbWUuaCAqLywKIAkJCQk0MURFRUZCNDI3MTlCQTE5
MDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmggKi8sCiAJCQkJNDE2MDQ5MzEyNzQzQjBF
NzAwQTg2RkEwIC8qIFZpZGVvU2FtcGxlTWV0YWRhdGEuaCAqLywKIAkJCQk1MTVGNzk1MTFDRkNB
M0M3MDBDQ0VEOTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcCAqLywKQEAgLTM3ODMy
LDcgKzM3ODI3LDYgQEAKIAkJCQkwRjFBMEMzODIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlE
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0EyNTcxNTEyOTNDMDEwMDA3QTI2M0QgLyogVmVy
dGljYWxQb3NpdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDNFRUYzQjI1Nzk5RkEx
MDA2NTYzQkIgLyogVmlkZW9Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk3QjVB
M0RBRjI3QUJGOEM1MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDFERUVGQjYyNzE5QkExQTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFERUVGQjAyNzE5QjI5MDAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAv
KiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaAppbmRleCBiNGZlNzE2NTc5ZmY4ZTdmYzM0MGQ4N2Nj
ODkyZjFiYmI0YjBkOGQ0Li4xODM5OTcyMjYwZjcwZTAwNzM2Nzk3OTE3MjI2MjVmNTZiMjUzZjA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmgKQEAgLTQ5LDEwICs0OSw5IEBA
IHN0cnVjdCBQbGF0Zm9ybVNhbXBsZSB7CiAgICAgICAgIENNU2FtcGxlQnVmZmVyVHlwZSwKICAg
ICAgICAgR1N0cmVhbWVyU2FtcGxlVHlwZSwKICAgICAgICAgQnl0ZVJhbmdlU2FtcGxlVHlwZSwK
LSAgICAgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5VHlwZSwgLy8gRklYTUU6IFRvIGJlIHJlbW92
ZWQgd2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZS4KICAgICB9IHR5cGU7CiAgICAg
dW5pb24gewotICAgICAgICBjb25zdCBNb2NrU2FtcGxlQm94KiBtb2NrU2FtcGxlQm94OworICAg
ICAgICBNb2NrU2FtcGxlQm94KiBtb2NrU2FtcGxlQm94OwogICAgICAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBjbVNhbXBsZUJ1ZmZlcjsKICAgICAgICAgR3N0U2FtcGxlKiBnc3RTYW1wbGU7CiAgICAg
ICAgIHN0ZDo6cGFpcjxNVFBsdWdpbkJ5dGVTb3VyY2VSZWYsIENNRm9ybWF0RGVzY3JpcHRpb25S
ZWY+IGJ5dGVSYW5nZVNhbXBsZTsKQEAgLTY3LDYgKzY2LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgTWVkaWFUaW1lIGRlY29kZVRpbWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBNZWRpYVRp
bWUgZHVyYXRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBBdG9tU3RyaW5nIHRyYWNrSUQo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNrSUQoY29uc3QgU3RyaW5nJikg
PSAwOwogICAgIHZpcnR1YWwgc2l6ZV90IHNpemVJbkJ5dGVzKCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgRmxvYXRTaXplIHByZXNlbnRhdGlvblNpemUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmKSA9IDA7CkBAIC05MCw3
ICs5MCw3IEBAIHB1YmxpYzoKICAgICAgICAgSGFzU3luY0luZm8gPSAxIDw8IDMsCiAgICAgfTsK
ICAgICB2aXJ0dWFsIFNhbXBsZUZsYWdzIGZsYWdzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
UGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQ
bGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSgpID0gMDsKIAogICAgIHN0cnVjdCBCeXRlUmFu
Z2UgewogICAgICAgICBzaXplX3QgYnl0ZU9mZnNldCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVmlkZW9GcmFtZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0ZTgxNmVj
ZDA4Y2I5NTUyNGQ2YWEyZDcxYWZjYjlmMGI5MTc4NmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFt
ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWaWRlb0ZyYW1lLmgiCi0KLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVZpZGVvRnJhbWU6OlZpZGVvRnJh
bWUoKSA9IGRlZmF1bHQ7Ci0KLVZpZGVvRnJhbWU6On5WaWRlb0ZyYW1lKCkgPSBkZWZhdWx0Owot
Ci1NZWRpYVRpbWUgVmlkZW9GcmFtZTo6ZGVjb2RlVGltZSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotTWVkaWFUaW1lIFZpZGVvRnJh
bWU6OmR1cmF0aW9uKCkgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBy
ZXR1cm4geyB9OwotfQotCi1BdG9tU3RyaW5nIFZpZGVvRnJhbWU6OnRyYWNrSUQoKSBjb25zdAot
ewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLXNpemVf
dCBWaWRlb0ZyYW1lOjpzaXplSW5CeXRlcygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLVdlYkNvcmU6OkZsb2F0U2l6ZSBWaWRlb0ZyYW1l
OjpwcmVzZW50YXRpb25TaXplKCkgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4geyB9OwotfQotCi12b2lkIFZpZGVvRnJhbWU6Om9mZnNldFRpbWVzdGFtcHNC
eShjb25zdCBNZWRpYVRpbWUmKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12
b2lkIFZpZGVvRnJhbWU6OnNldFRpbWVzdGFtcHMoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVk
aWFUaW1lJikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotYm9vbCBWaWRlb0Zy
YW1lOjppc0RpdmlzYWJsZSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi1zdGQ6OnBhaXI8UmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlPiwgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2FtcGxlPj4gVmlkZW9GcmFtZTo6ZGl2aWRlKGNv
bnN0IE1lZGlhVGltZSYsIFVzZUVuZFRpbWUpCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OwotfQotCi1SZWY8V2ViQ29yZTo6TWVk
aWFTYW1wbGU+IFZpZGVvRnJhbWU6OmNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5KCkgY29uc3QKLXsK
LSAgICBDUkFTSCgpOwotfQotCi1NZWRpYVNhbXBsZTo6U2FtcGxlRmxhZ3MgVmlkZW9GcmFtZTo6
ZmxhZ3MoKSBjb25zdAotewotICAgIHJldHVybiBNZWRpYVNhbXBsZTo6U2FtcGxlRmxhZ3M6Ok5v
bmU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGU6OkJ5dGVSYW5nZT4gVmlkZW9GcmFt
ZTo6Ynl0ZVJhbmdlKCkgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIGZyb20gdGhlIGJh
c2UgY2xhc3MuCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLX0KLQotdm9pZCBWaWRlb0ZyYW1lOjpkdW1wKFByaW50U3RyZWFtJikgY29uc3QKLXsK
LX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Zp
ZGVvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJkOTUwMTBkMzZlYjYyYjllYWUxYjk5ODM3Yjg0Nzcx
NDFlMDVmYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi0vLyBBIGNsYXNzIHJlcHJlc2VudGluZyBhIHZpZGVvIGZyYW1lIGZyb20gYSBkZWNvZGVy
LCBjYXB0dXJlIHNvdXJjZSwgb3Igc2ltaWxhci4KLS8vIEZJWE1FOiBDdXJyZW50bHkgZm9yIGlt
cGxlbWVudGF0aW9uIHB1cnBvc2VzIGluaGVydHMgZnJvbSBNZWRpYVNhbXBsZSB1bnRpbCBjYXB0
dXJlIGNvZGUKLS8vIHN0b3BzIHJlZmVycmluZyB0byBNZWRpYVNhbXBsZQotY2xhc3MgVmlkZW9G
cmFtZSA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7Ci1wdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
flZpZGVvRnJhbWUoKTsKLQotcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnJh
bWUoKTsKLQotcHJpdmF0ZToKLSAgICAvLyBGSVhNRTogVGhlc2UgYXJlIG5vdCBpbnRlbmRlZCB0
byBiZSB1c2VkIGZvciB0aGVzZSBvYmplY3RzLgotICAgIC8vIFdlYkNvcmU6Ok1lZGlhU2FtcGxl
IG92ZXJyaWRlcy4KLSAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRpbWUgZGVjb2RlVGltZSgpIGNv
bnN0IGZpbmFsOwotICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhVGltZSBkdXJhdGlvbigpIGNvbnN0
IGZpbmFsOwotICAgIFdFQkNPUkVfRVhQT1JUIEF0b21TdHJpbmcgdHJhY2tJRCgpIGNvbnN0IGZp
bmFsOwotICAgIFdFQkNPUkVfRVhQT1JUIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0IGZpbmFs
OwotICAgIFdFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkZsb2F0U2l6ZSBwcmVzZW50YXRpb25TaXpl
KCkgY29uc3QgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBvZmZzZXRUaW1lc3RhbXBz
QnkoY29uc3QgTWVkaWFUaW1lJikgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRU
aW1lc3RhbXBzKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOwotICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNEaXZpc2FibGUoKSBjb25zdCBmaW5hbDsKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlhU2Ft
cGxlPj4gZGl2aWRlKGNvbnN0IE1lZGlhVGltZSYgcHJlc2VudGF0aW9uVGltZSwgVXNlRW5kVGlt
ZSA9IFVzZUVuZFRpbWU6OkRvTm90VXNlKSBmaW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWY8
V2ViQ29yZTo6TWVkaWFTYW1wbGU+IGNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5KCkgY29uc3QgZmlu
YWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2FtcGxlRmxhZ3MgZmxhZ3MoKSBjb25zdCBmaW5hbDsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPEJ5dGVSYW5nZT4gYnl0ZVJhbmdlKCkg
Y29uc3QgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wKFByaW50U3RyZWFtJikg
Y29uc3QgZmluYWw7Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQppbmRleCA5YmY0YjBi
OGQ1YzQ4MWE1MzRmZDkwY2YxNmM5NTU5ZmI2Y2Q3MTZhLi5jMTI2YjkzZTg3MDZmOTU1MzBmNjEy
NmY4YWQyNWZhZjYyMjJhZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQpAQCAtMzM0LDkgKzMzNCw2IEBAIHZv
aWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUoTWVkaWFTYW1w
bGUmIHNhbXBsZSkKIHZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVT
YW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKLSAgICAvLyBGSVhNRTogTG9jYWwgcGxheWJhY2sgb2YgUmVtb3RlVmlkZW9GcmFt
ZVByb3h5IGlzIG5vdCBpbXBsZW1lbnRlZC4KLSAgICBpZiAoIWlzPE1lZGlhU2FtcGxlQVZGT2Jq
Qz4oc2FtcGxlKSkKLSAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBzYW1wbGVUb0VucXVldWUg
PSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXI7CiAgICAgYXV0
byBub3cgPSBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUoTW9ub3RvbmljVGltZTo6bm93KCku
c2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpICsgcmVuZGVyZXJMYXRlbmN5KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQppbmRleCA1MTI2OTZhMTNhYzcyYWM4OGY4MDA4NjU2MmUzMTEwNDVj
NDFhYzY1Li4yYmJkNmE0Y2IwZDIyZDJkZjk5Nzc1ZWU1ZWUyN2M3OGEyMGQ1OTU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC05ODcsMTAgKzk4Nyw2IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSgpCiAg
ICAgaWYgKG1faW1hZ2VQYWludGVyLmNnSW1hZ2UgfHwgIW1faW1hZ2VQYWludGVyLm1lZGlhU2Ft
cGxlKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogRG9lcyBub3QgY3VycmVudGx5
IHN1cHBvcnQgUmVtb3RlVmlkZW9GcmFtZVByb3h5LgotICAgIGlmICghaXM8TWVkaWFTYW1wbGVB
VkZPYmpDPigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpKQotICAgICAgICByZXR1cm47Ci0K
ICAgICBpZiAoIW1faW1hZ2VQYWludGVyLnBpeGVsQnVmZmVyQ29uZm9ybWVyKQogICAgICAgICBt
X2ltYWdlUGFpbnRlci5waXhlbEJ1ZmZlckNvbmZvcm1lciA9IG1ha2VVbmlxdWU8UGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVj4oKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilAeyAoX19icmlkZ2UgTlNT
dHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleTogQChrQ1ZQaXhlbEZvcm1h
dFR5cGVfMzJCR1JBKSB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFW
Rk9iakMuaAppbmRleCA3YmU3MzUxZTViYWE3ZDIxZTYzZmM0OTlhMjcxMjM1ZWNmNGZiOWIxLi42
M2RiOWMwMDNjMDUxOWM2NjU2NjEyMWU3YzZmYjUxZGYyZjc3MWMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBs
ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaApAQCAtNTQsMTIgKzU0LDEzIEBAIHB1Ymxp
YzoKICAgICBNZWRpYVRpbWUgZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEF0b21T
dHJpbmcgdHJhY2tJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faWQ7IH0KKyAgICB2b2lk
IHNldFRyYWNrSUQoY29uc3QgU3RyaW5nJiBpZCkgb3ZlcnJpZGUgeyBtX2lkID0gaWQ7IH0KIAog
ICAgIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIEZsb2F0U2l6ZSBw
cmVzZW50YXRpb25TaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBTYW1wbGVGbGFncyBmbGFn
cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgUGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUoKSBvdmVy
cmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPEJ5dGVSYW5nZT4gYnl0ZVJhbmdlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdm9pZCBvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJikg
b3ZlcnJpZGU7CkBAIC05Niw3ICs5NywzIEBAIHByb3RlY3RlZDoKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpNZWRp
YVNhbXBsZUFWRk9iakMpCi0gICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkgeyByZXR1cm4gbWVkaWFTYW1wbGUucGxhdGZvcm1TYW1w
bGUoKS50eXBlID09IFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGU7
IH0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhU2FtcGxlQVZGT2JqQy5tbQppbmRleCBhM2EzMTU2YmZiYTBjYTc5OTFmNjZkZDNlZjI0
YzMyNDRkMGUzZGY4Li4yY2U2Y2VkZWE1NWRmZTQyOTUzYzJjOWJmMmYyNjllYTEzYzQ2YzNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCkBAIC0xNTMs
NyArMTUzLDcgQEAgc2l6ZV90IE1lZGlhU2FtcGxlQVZGT2JqQzo6c2l6ZUluQnl0ZXMoKSBjb25z
dAogICAgIHJldHVybiBQQUw6OkNNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplKG1fc2Ft
cGxlLmdldCgpKTsKIH0KIAotUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1wbGVBVkZPYmpDOjpwbGF0
Zm9ybVNhbXBsZSgpIGNvbnN0CitQbGF0Zm9ybVNhbXBsZSBNZWRpYVNhbXBsZUFWRk9iakM6OnBs
YXRmb3JtU2FtcGxlKCkKIHsKICAgICBQbGF0Zm9ybVNhbXBsZSBzYW1wbGUgPSB7IFBsYXRmb3Jt
U2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUsIHsgLmNtU2FtcGxlQnVmZmVyID0gbV9zYW1wbGUu
Z2V0KCkgfSB9OwogICAgIHJldHVybiBzYW1wbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0
cmVhbWVyLmNwcAppbmRleCAyN2Y5Nzk1ZWE0ZGE4YTc0ODIwNjkzN2Q0MjNkNjhiYjU2MzViZDBk
Li45ZTdjMDg5NjA2YTdiMTM5YTlhNjIzOGU1MWRmOGYwZmRlZDdkMzM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIE1lZGlh
U2FtcGxlR1N0cmVhbWVyOjpvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJiB0aW1l
c3RhbXBPZmZzZXQpCiAgICAgfQogfQogCi1QbGF0Zm9ybVNhbXBsZSBNZWRpYVNhbXBsZUdTdHJl
YW1lcjo6cGxhdGZvcm1TYW1wbGUoKSBjb25zdAorUGxhdGZvcm1TYW1wbGUgTWVkaWFTYW1wbGVH
U3RyZWFtZXI6OnBsYXRmb3JtU2FtcGxlKCkKIHsKICAgICBQbGF0Zm9ybVNhbXBsZSBzYW1wbGUg
PSB7IFBsYXRmb3JtU2FtcGxlOjpHU3RyZWFtZXJTYW1wbGVUeXBlLCB7IC5nc3RTYW1wbGUgPSBt
X3NhbXBsZS5nZXQoKSB9IH07CiAgICAgcmV0dXJuIHNhbXBsZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2Ft
cGxlR1N0cmVhbWVyLmgKaW5kZXggM2I1YTY5YWE3NmE2YWFmMTdhNTYxNzZjMWZiMjM5YTRmOTEw
YjBiYi4uMWQ3MWEzMzk2OWNmYmM2NzVkZWVjZWE3OGU2NGYyZDY4OTllNDFlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxl
R1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogICAg
IE1lZGlhVGltZSBkZWNvZGVUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9kdHM7IH0K
ICAgICBNZWRpYVRpbWUgZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2R1cmF0
aW9uOyB9CiAgICAgQXRvbVN0cmluZyB0cmFja0lEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV90cmFja0lkOyB9CisgICAgdm9pZCBzZXRUcmFja0lEKGNvbnN0IFN0cmluZyYgdHJhY2tJZCkg
b3ZlcnJpZGUgeyBtX3RyYWNrSWQgPSB0cmFja0lkOyB9CiAgICAgc2l6ZV90IHNpemVJbkJ5dGVz
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgRmxvYXRTaXplIHByZXNl
bnRhdGlvblNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ByZXNlbnRhdGlvblNpemU7
IH0KICAgICB2b2lkIG9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmKSBvdmVycmlk
ZTsKQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFT
YW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBkaXZpZGUoY29uc3QgTWVkaWFUaW1lJiwgVXNl
RW5kVGltZSkgb3ZlcnJpZGUgIHsgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OyB9CiAgICAg
UmVmPE1lZGlhU2FtcGxlPiBjcmVhdGVOb25EaXNwbGF5aW5nQ29weSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIFNhbXBsZUZsYWdzIGZsYWdzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9mbGFn
czsgfQotICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgUGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUoKSBvdmVycmlkZTsKICAgICBzdGQ6
Om9wdGlvbmFsPEJ5dGVSYW5nZT4gYnl0ZVJhbmdlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
c3RkOjpudWxsb3B0OyB9CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgUmVmUHRyPEpTQzo6VWludDhDbGFtcGVkQXJyYXk+IGdldFJHQkFJbWFnZURhdGEo
KSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
bWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKaW5k
ZXggNGFjNjlhY2Q5YTAwY2Y2ZTE5OWEzM2FhYzQ3M2Q4Y2Q4NWRjNWU1Zi4uNWNiNjBiOWVmNmVm
NTdhNDNiNGVlZjcyYTEzNzY3OWIxYWViZDY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVm
ZmVyUHJpdmF0ZS5jcHAKQEAgLTU4LDkgKzU4LDEwIEBAIHByaXZhdGU6CiAgICAgTWVkaWFUaW1l
IGRlY29kZVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2JveC5kZWNvZGVUaW1lc3Rh
bXAoKTsgfQogICAgIE1lZGlhVGltZSBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fYm94LmR1cmF0aW9uKCk7IH0KICAgICBBdG9tU3RyaW5nIHRyYWNrSUQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2lkOyB9CisgICAgdm9pZCBzZXRUcmFja0lEKGNvbnN0IFN0cmluZyYg
aWQpIG92ZXJyaWRlIHsgbV9pZCA9IGlkOyB9CiAgICAgc2l6ZV90IHNpemVJbkJ5dGVzKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gc2l6ZW9mKG1fYm94KTsgfQogICAgIFNhbXBsZUZsYWdzIGZs
YWdzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgUGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSgpIG92
ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8Qnl0ZVJhbmdlPiBieXRlUmFuZ2UoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KICAgICBGbG9hdFNpemUgcHJlc2VudGF0
aW9uU2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEZsb2F0U2l6ZSgpOyB9CiAgICAgdm9p
ZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CkBAIC04Niw3ICs4Nyw3IEBAIE1l
ZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBNb2NrTWVkaWFTYW1wbGU6OmZsYWdzKCkgY29uc3QKICAg
ICByZXR1cm4gU2FtcGxlRmxhZ3MoZmxhZ3MpOwogfQogCi1QbGF0Zm9ybVNhbXBsZSBNb2NrTWVk
aWFTYW1wbGU6OnBsYXRmb3JtU2FtcGxlKCkgY29uc3QKK1BsYXRmb3JtU2FtcGxlIE1vY2tNZWRp
YVNhbXBsZTo6cGxhdGZvcm1TYW1wbGUoKQogewogICAgIFBsYXRmb3JtU2FtcGxlIHNhbXBsZSA9
IHsgUGxhdGZvcm1TYW1wbGU6Ok1vY2tTYW1wbGVCb3hUeXBlLCB7ICZtX2JveCB9IH07CiAgICAg
cmV0dXJuIHNhbXBsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDBkOGY2ZWFlMTkwMGNhZjYwOTZh
YjA1MTFlMTNiYzBjOGRlZGIzYjguLjI5ZjRjNzgxODE4MGRlMmNiMjQ5NTA3MmU4NDYwYTUwYWQz
NjRhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTc4LDcgKzE3OCw2IEBAIHNldChXZWJLaXRf
TUVTU0FHRVNfSU5fRklMRVMKICAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNl
UHJveHkKICAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclBy
b3h5CiAgICAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eQotICAgIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAKIAogICAgIEdQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5CiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyCkBAIC0y
ODAsNyArMjc5LDYgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUNETUluc3RhbmNlCiAgICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uCiAgICAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TGVnYWN5Q0RNU2Vzc2lvbgotICAgIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJh
bWVQcm94eQogICAgIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0
ZW5lcgogICAgIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IGVjYTgwMGUyODBlYWE0YTAxZGU1ZDBkYzhlNTIxNTczOGE5YTIyZmUuLmY5Mjc1ZmY2MTM4YzQ5
MTQ2OTBhYzBhMDllZGMxNjBhY2UwOWFiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTY3LDcgKzY3LDYgQEAgJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNv
dXJjZUJ1ZmZlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5Lm1lc3NhZ2VzLmluCi0kKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNz
aW9uSGVscGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0xOTIsNyArMTkxLDYgQEAg
JChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJ
bWFnZURlY29kZXJBVkZNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXIu
bWVzc2FnZXMuaW4KLSQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZp
ZGVvRnJhbWVQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKaW5kZXggNWMzYzY1NDY0YTViZTBmOGY0NDZkMGRmNjdhNWRjYjM0OWU3OWI4
Mi4uOTJkMjA2MDk5MzQxNzdhZWM5N2U4ODZjNjZjZThkOTEzNzgyNDA4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0zODEsMTIgKzM4
MSw2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvUmVtb3Rl
VGV4dHVyZU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0L1JlbW90ZVRleHR1cmVWaWV3TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9SZW1vdGVUZXh0dXJlVmlld01l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvUmVt
b3RlVGV4dHVyZVZpZXdNZXNzYWdlc1JlcGxpZXMuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdC9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcE1lc3NhZ2VSZWNl
aXZlci5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXBNZXNzYWdlcy5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwTWVzc2FnZXNS
ZXBsaWVzLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvUmVt
b3RlVmlkZW9GcmFtZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9SZW1vdGVWaWRlb0ZyYW1lUHJveHlNZXNzYWdlcy5o
Ci0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1JlbW90ZVZpZGVv
RnJhbWVQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0L1JlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvUmVtb3RlVmlkZW9U
cmFja1Byb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdC9SZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDMwMTMwMDE2Zjg2OWNhY2ExYzJjZjJjY2NlZTdiNjU1OWZm
NzUwYjguLjI5ZTRjODQ2NjM0NWIzMzk4M2RlNzQ4Mjg3Yjk0MTU0NjQ3ZjI5YmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTIwMiw3ICsyMDIsNiBAQCBNRVNTQUdFX1JFQ0VJVkVS
UyA9IFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24gXAog
CVdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIgXAogCVdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24gXAotCVdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eSBcCiAJV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyIFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlIFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3Rl
TWVkaWFTZXNzaW9uSGVscGVyIFwKQEAgLTMwMSw3ICszMDAsNiBAQCBNRVNTQUdFX1JFQ0VJVkVS
UyA9IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5IFwK
IAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkgXAogCUdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgXAotCUdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXAgXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFT
b3VyY2VQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVu
ZXJQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggNGEzMTJlZTNkMzNiNjcyYWJlYzMzZDg3MzgwN2Q1Y2Q2OTJhNTU2Zi4u
NGQ1MjRlOGI4Njc5YTgzMGM0NWViNmI1YmMxMDRiNzU0MTA0YjYzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApA
QCAtMTQxLDcgKzE0MSw2IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0j
aW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luLmg+CiAjZW5kaWYKIApAQCAtMjU4LDkgKzI1Nyw2IEBAIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYg
Z3B1UHJvY2VzcywgV2ViCiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pICYmIEhBVkUo
QVZBVURJT19ST1VUSU5HX0FSQklURVIpCiAgICAgZ3B1UHJvY2Vzcy5hdWRpb1Nlc3Npb25NYW5h
Z2VyKCkuc2Vzc2lvbigpLnNldFJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudChtX3JvdXRpbmdBcmJp
dHJhdG9yLmdldCgpKTsKICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgbV92
aWRlb0ZyYW1lT2JqZWN0SGVhcCA9IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpjcmVhdGUo
KnRoaXMpOwotI2VuZGlmCiAKICAgICBpZiAoIXBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMu
aXNFbXB0eSgpKQogICAgICAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMocGFyYW1l
dGVycy5vdmVycmlkZUxhbmd1YWdlcyk7CkBAIC0zMDQsOSArMzAwLDcgQEAgdm9pZCBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24p
CiAgICAgICAgIG1fYXVkaW9TZXNzaW9uUHJveHkgPSBudWxscHRyOwogICAgIH0KICNlbmRpZgot
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC5yZXNl
dCgpOwotI2VuZGlmCisKICAgICAvLyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIG9iamVjdHMgcmVm
IHRoZWlyIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUK
ICAgICAvLyB0byBicmVhayB0aGUgcmVmZXJlbmNlIGN5Y2xlIGJ5IGRlc3Ryb3lpbmcgdGhlbS4K
ICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRNYXAuY2xlYXIoKTsKQEAgLTk0NywxNSArOTQx
LDggQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDYXB0dXJlQXR0cmlidXRp
b25TdHJpbmcoKSBjb25zdAogewogfQogI2VuZGlmCi0KLVJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp2aWRlb0ZyYW1lT2JqZWN0SGVhcCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuICptX3ZpZGVvRnJhbWVPYmplY3RIZWFwLmdldCgpOwotfQotCiAj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotCiAjaWYgUExBVEZPUk0oTUFDKQogdm9p
ZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQo
Q0dEaXJlY3REaXNwbGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDExYWNjMDBjNzRlYjVkMTJmODI4MmQ0NDY2Mzk3ZDg3ZDdlOTc1OWQuLjYy
NGUzZmEzNTFjZjBiMDM1ZTJlMTNhOTMzMjVkZGQ0YzM0MmIxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTA2
LDExICsxMDYsNiBAQCBzdHJ1Y3QgUmVtb3RlUmVuZGVyaW5nQmFja2VuZENyZWF0aW9uUGFyYW1l
dGVyczsKIGNsYXNzIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdDsKICNlbmRpZgogCi0jaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLWNsYXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOwotI2VuZGlm
Ci0KLQogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwogICAgIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFdURjo6RGVzdHJ1Y3Rp
b25UaHJlYWQ6Ok1haW4+CiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6Tm93UGxheWluZ01hbmFnZXI6
OkNsaWVudApAQCAtMTQ2LDcgKzE0MSw2IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93c0F1ZGlv
Q2FwdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQXVkaW9DYXB0dXJlOyB9CiAgICAgYm9v
bCBhbGxvd3NWaWRlb0NhcHR1cmUoKSBjb25zdCB7IHJldHVybiBtX2FsbG93c1ZpZGVvQ2FwdHVy
ZTsgfQogICAgIGJvb2wgYWxsb3dzRGlzcGxheUNhcHR1cmUoKSBjb25zdCB7IHJldHVybiBtX2Fs
bG93c0Rpc3BsYXlDYXB0dXJlOyB9Ci0gICAgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAmIHZp
ZGVvRnJhbWVPYmplY3RIZWFwKCkgY29uc3Q7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMzExLDcgKzMwNSw2IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2FsbG93c0F1ZGlvQ2FwdHVyZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2FsbG93
c1ZpZGVvQ2FwdHVyZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2FsbG93c0Rpc3BsYXlDYXB0dXJl
IHsgZmFsc2UgfTsKLSAgICBJUEM6OlNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8UmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+IG1fdmlkZW9GcmFtZU9iamVjdEhlYXA7CiAjZW5kaWYK
ICNpZiBIQVZFKEFVRElUX1RPS0VOKQogICAgIHN0ZDo6b3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4g
bV9wcmVzZW50aW5nQXBwbGljYXRpb25BdWRpdFRva2VuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5j
cHAKaW5kZXggOTgwMDU3OGI1MjA4NDMxN2U4ODY1MmRmYzUyYzc2Y2MxYzJmZjQzZC4uZWNiNGI1
NzY3Y2M5YThlMjY4NjQ2ZGNlMzlkMjY2MmMzNDJjMzNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wuY3BwCkBAIC00MiwxMCArNDIsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250
ZXh0R0xDVi5oPgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotI2luY2x1ZGUg
IlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNzIsOSArNjgsNiBAQCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0woR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgZ3B1QwogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlv
bigpLCBXVEZNb3ZlKHN0cmVhbSksIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdMU3RyZWFtV29ya1F1
ZXVlKCkpKQogICAgICwgbV9ncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIoZ3JhcGhpY3NDb250
ZXh0R0xJZGVudGlmaWVyKQogICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kKHJlbmRlcmluZ0JhY2tl
bmQpCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAsIG1fdmlkZW9GcmFtZU9iamVjdEhl
YXAoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy52aWRlb0ZyYW1lT2JqZWN0SGVhcCgpKQotI2Vu
ZGlmCiAgICAgLCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QoU2NvcGVkV2ViR0xSZW5kZXJp
bmdSZXNvdXJjZXNSZXF1ZXN0OjphY3F1aXJlKCkpCiAgICAgLCBtX3dlYlByb2Nlc3NJZGVudGlm
aWVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSkKIHsK
QEAgLTIzMCwxNCArMjIzLDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6cGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvQ2FudmFzV2l0aFF1YWxpZmllZElkZW50aWYKICAgICBwYWludFBp
eGVsQnVmZmVyVG9JbWFnZUJ1ZmZlcihtX2NvbnRleHQtPnJlYWRDb21wb3NpdGVkUmVzdWx0c0Zv
clBhaW50aW5nKCksIGltYWdlQnVmZmVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoUmVtb3RlVmlkZW9GcmFtZVdy
aXRlUmVmZXJlbmNlJiYgd3JpdGUpCi17Ci0gICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhy
ZWFkKTsKLSAgICBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwLT5hZGRWaWRlb0ZyYW1lKFdURk1vdmUo
d3JpdGUpLCBtX2NvbnRleHQtPnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkp
OwotfQotI2VuZGlmCi0KIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnBhaW50UGl4ZWxC
dWZmZXJUb0ltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+JiYg
cGl4ZWxCdWZmZXIsIFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciB0YXJnZXQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBh
c3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAppbmRl
eCAxMGMwNjM2MTg2N2Q1ZTg4M2ViOWQ2YTg1MzI1Y2Q5MTBmYmRlMzE3Li5lYjIwZDE2YzM3N2Y1
ZjNlMDA3ZjIxYmEyNTYyNGRkMTllMzZiYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaApAQCAt
NTQsMTAgKzU0LDYgQEAKICNpbmNsdWRlICJXQ0NvbnRlbnRCdWZmZXJJZGVudGlmaWVyLmgiCiAj
ZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0jaW5jbHVkZSAiUmVtb3RlVmlkZW9G
cmFtZUlkZW50aWZpZXIuaCIKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBuYW1lc3Bh
Y2UgV1RGIHsKIGNsYXNzIE1hY2hTZW5kUmlnaHQ7CkBAIC02NSw5ICs2MSw2IEBAIGNsYXNzIE1h
Y2hTZW5kUmlnaHQ7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci0jaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLWNsYXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOwotI2VuZGlmCiAK
IC8vIEdQVSBwcm9jZXNzIHNpZGUgaW1wbGVtZW50YXRpb24gb2YgdGhhdCByZWNlaXZlcyBtZXNz
YWdlcyBhYm91dCBHcmFwaGljc0NvbnRleHRHTCBjYWxscwogLy8gYW5kIGlzc3VlcyByZWFsIEdy
YXBoaWNzQ29udGV4dEdMIGNhbGxzIGJhc2VkIG9uIHRoZSByZWNlaXZlZCBtZXNzYWdlcy4KQEAg
LTExNSw5ICsxMDgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzeW50aGVzaXplR0xFcnJvcih1
aW50MzJfdCBlcnJvcik7CiAgICAgdm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgdm9pZCBwYWludENvbXBvc2l0ZWRS
ZXN1bHRzVG9NZWRpYVNhbXBsZShSZW1vdGVWaWRlb0ZyYW1lV3JpdGVSZWZlcmVuY2UmJik7Ci0j
ZW5kaWYKICAgICB2b2lkIGNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVy
SWRlbnRpZmllciwgdWludDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxl
dmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0
eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFksIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2ltdWxhdGVFdmVudEZvclRlc3RpbmcoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0w6OlNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZyk7CiAKQEAgLTE0
MCw5ICsxMzAsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0R0w+IG1fY29udGV4dCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc3RyZWFtVGhyZWFkKTsKICAg
ICBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgbV9ncmFwaGljc0NvbnRleHRHTElkZW50aWZp
ZXI7CiAgICAgUmVmPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVyaW5nQmFja2VuZDsK
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIFJlZjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcD4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcDsKLSNlbmRpZgogICAgIFNjb3BlZFdlYkdMUmVu
ZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q7CiAgICAg
Tk9fVU5JUVVFX0FERFJFU1MgVGhyZWFkQXNzZXJ0aW9uIG1fc3RyZWFtVGhyZWFkOwogICAgIFdl
YkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0wubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4KaW5kZXggOTA5N2I0MjcwYmY1M2RhMjRj
MDkzYTU3ZWEzY2NiMTdhMjkwN2ZmNS4uYzhhYjI5NzcyOTMwYmZkNDA4YTAzY2ViMzdhMGMyOTg5
OGUzMDJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgpAQCAt
NDIsOSArNDIsNiBAQCBtZXNzYWdlcyAtPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTCBOb3RSZWZD
b3VudGVkIFN0cmVhbSB7CiAgICAgdm9pZCBQYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhX
ZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXIpIC0+ICgpIFN5
bmNocm9ub3VzCiAgICAgdm9pZCBQYWludENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVyKSAtPiAoKSBTeW5jaHJv
bm91cwogICAgIHZvaWQgQ29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQzMl90IHRleHR1cmUsIHVpbnQzMl90IHRhcmdldCwg
aW50MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJuYWxGb3JtYXQsIHVpbnQzMl90IGZvcm1hdCwg
dWludDMyX3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKSAtPiAoYm9v
bCBzdWNjZXNzKSBTeW5jaHJvbm91cwotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgdm9p
ZCBQYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZShXZWJLaXQ6OlJlbW90ZVZpZGVv
RnJhbWVXcml0ZVJlZmVyZW5jZSByZXN1bHQpCi0jZW5kaWYKICAgICB2b2lkIFNpbXVsYXRlRXZl
bnRGb3JUZXN0aW5nKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpTaW11bGF0ZWRFdmVudEZv
clRlc3RpbmcgZXZlbnQpCiAKICAgICB2b2lkIE1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlz
dCgpIC0+IChib29sIHJldHVyblZhbHVlKSBTeW5jaHJvbm91cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2Zjg4ZmMxNjc3Y2I5ZjJmNDcy
ODQ2ZTgzZjNmMjU0ZTNhOTkxNWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXAuaCIKLQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLSNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXBNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJlbW90ZVZpZGVv
RnJhbWVQcm94eS5oIgotI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eU1lc3NhZ2VzLmgi
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1SZWY8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+
IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcykKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcChjb25uZWN0aW9uVG9XZWJQcm9jZXNzKSk7Ci19
Ci0KLVJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cChHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQotICAg
IDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCZjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQot
ICAgICwgbV9jb25uZWN0aW9uKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlv
bigpKQotewotICAgIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+bWVzc2FnZVJlY2VpdmVy
TWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Ci19Ci0KLVJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwOjp+UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAoKQotewotICAgIEFTU0VS
VCghbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKTsKLX0KLQotdm9pZCBSZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcDo6c3RvcExpc3RlbmluZ0ZvcklQQyhSZWY8UmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXA+JiYgcmVmRnJvbUNvbm5lY3Rpb24pCi17Ci0gICAgYXNzZXJ0SXNDdXJyZW50KG1f
Y29uc3VtZVRocmVhZCk7Ci0gICAgaWYgKGF1dG8qIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mg
PSBzdGQ6OmV4Y2hhbmdlKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgbnVsbHB0cikpIHsK
LSAgICAgICAgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+bWVzc2FnZVJlY2VpdmVyTWFwKCku
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKLSAgICAgICAgLy8gQ2xpZW50cyBtaWdodCBob2xk
IG9uIHRvIHRoZSByZWYgYWZ0ZXIgdGhpcyBoYXBwZW5zLiBUaGV5IHNob3VsZCBhbHNvIHN0b3Ag
dGhlbXNlbHZlcywgYnV0IGlmIHRoZXkgZG8gbm90LAotICAgICAgICAvLyBhdm9pZCBiaWcgbWVt
b3J5IGxlYWtzIGJ5IGNsZWFyaW5nIHRoZSBmcmFtZXMuIFRoZSBjbGllbnRzIHNob3VsZCBmYWls
IGdyYWNlZnVsbHkgKGRvIG5vdGhpbmcpIGluIGNhc2UgdGhleSBmYWlsIHRvIGxvb2sgdXAKLSAg
ICAgICAgLy8gZnJhbWVzLgotICAgICAgICBjbGVhcigpOwotICAgICAgICAvLyBUT0RPOiBhZGQg
Y2FuIGhhcHBlbiBhZnRlciBzdG9wcGluZy4KLSAgICB9Ci19Ci12b2lkIFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwOjphZGRWaWRlb0ZyYW1lKFJlbW90ZVZpZGVvRnJhbWVXcml0ZVJlZmVyZW5j
ZSYmIHdyaXRlLCBSZWZQdHI8V2ViQ29yZTo6TWVkaWFTYW1wbGU+JiYgZnJhbWUpCi17Ci0gICAg
c3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+IHJlc3VsdDsK
LSAgICBpZiAoZnJhbWUpCi0gICAgICAgIHJlc3VsdCA9IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6
cHJvcGVydGllcygqZnJhbWUpOwotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlVmlkZW9GcmFtZVByb3h5OjpXYXNJbml0aWFsaXplZChyZXN1bHQpLCAgd3JpdGUuaWRlbnRp
ZmllcigpLnRvVUludDY0KCkpOwotICAgIHJldGlyZShXVEZNb3ZlKHdyaXRlKSwgV1RGTW92ZShm
cmFtZSksIHN0ZDo6bnVsbG9wdCk7Ci19Ci0KLXZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXA6OnJlbGVhc2VWaWRlb0ZyYW1lKFJlbW90ZVZpZGVvRnJhbWVXcml0ZVJlZmVyZW5jZSYmIHdy
aXRlKQotewotICAgIGFzc2VydElzQ3VycmVudChtX2NvbnN1bWVUaHJlYWQpOwotICAgIHJldGly
ZVJlbW92ZShXVEZNb3ZlKHdyaXRlKSk7Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTU5YzgwNDY2ZjVmMTNmOTNi
YzQyNTcwOTVkOTFiNDgwZWExNjNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmgiCi0jaW5j
bHVkZSAiVGhyZWFkU2FmZU9iamVjdEhlYXAuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Ft
cGxlLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZEFzc2VydGlvbnMuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci1jbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwotCi0vLyBIb2xkcyByZWZl
cmVuY2VzIHRvIGFsbCBWaWRlb0ZyYW1lIGluc3RhbmNlcyB0aGF0IGFyZSBtYXBwZWQgZnJvbSBX
ZWIgcHJvY2VzcyB0byBHUFUgcHJvY2VzcyB0d28gcHJvY2Vzc2VzLgotLy8gQXMgY3VycmVudGx5
IHRoZXJlIGlzIG5vIHNwZWNpYWwgc3RhdGUgZm9yIFJlbW90ZVZpZGVvRnJhbWUsIHRoZSBvYmpl
Y3QgaGVhcCBzdG9yZXMgVmlkZW9GcmFtZSBpbnN0YW5jZXMgKE1lZGlhU2FtcGxlKS4KLS8vIEFz
IGN1cnJlbnRseSB0aGVyZSBpcyBubyBSZW1vdGVWaWRlb0ZyYW1lLCByZXNwb25zaWJsZSBmb3Ig
ZGlzcGF0Y2hpbmcgdGhlIFZpZGVvRnJhbWUgbWV0aG9kcyB0byB0aGUgb2JqZWN0cy4KLS8vIENv
bnN1bWUgdGhyZWFkIGlzIHRoZSB0aHJlYWQgdGhhdCB1c2VzIHRoZSBWaWRlb0ZyYW1lLiBGb3Ig
R1BVUCB0aGlzIGlzIHRoZSBtZWRpYSBwbGF5ZXIgdGhyZWFkLCB0aGUgbWFpbiB0aHJlYWQuCi0v
LyBGSVhNRTogY3VycmVudGx5IFZpZGVvRnJhbWUgaW5zdGFuY2VzIGFyZSBNZWRpYVNhbXBsZSBp
bnN0YW5jZXMuCi1jbGFzcyBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCBmaW5hbCA6IHB1Ymxp
YyBUaHJlYWRTYWZlT2JqZWN0SGVhcDxSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciwgUmVmUHRy
PFdlYkNvcmU6Ok1lZGlhU2FtcGxlPj4sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewot
cHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+IGNyZWF0
ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7Ci0gICAgflJlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwKCk7Ci0KLSAgICB2b2lkIGFkZFZpZGVvRnJhbWUoUmVtb3RlVmlkZW9GcmFtZVdyaXRl
UmVmZXJlbmNlJiYsIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4mJik7Ci0KLSAgICB2b2lk
IHN0b3BMaXN0ZW5pbmdGb3JJUEMoUmVmPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiYmIHJl
ZkZyb21Db25uZWN0aW9uKTsKLXByaXZhdGU6Ci0gICAgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwotCi0gICAgLy8gSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgb3ZlcnJpZGVzLgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Ci0KLSAgICAvLyBNZXNzYWdlcy4KLSAgICB2b2lk
IHJlbGVhc2VWaWRlb0ZyYW1lKFJlbW90ZVZpZGVvRnJhbWVXcml0ZVJlZmVyZW5jZSYmKTsKLQot
ICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fY29uc3VtZVRocmVhZCk7Ci0gICAgY29uc3QgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotICAgIFRocmVhZEFzc2VydGlvbiBtX2NvbnN1
bWVUaHJlYWQgTk9fVU5JUVVFX0FERFJFU1M7Ci19OwotCi0KLQotfQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGEyNzhjZTNkMDM5ZGJlMTczMWQ1YWY2YzhlNDk5MTBhMzk1MmE3MTIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluCisrKyAv
ZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFy
ZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0j
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LW1lc3NhZ2VzIC0+IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwIE5vdFJlZkNvdW50ZWQgewot
ICAgIFJlbGVhc2VWaWRlb0ZyYW1lKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJl
bmNlIGlkZW50aWZpZXIpCi19Ci0jZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKaW5kZXggYmY0NjFjZGZmOGFkZDYxNGRm
YjBlYmYxNDkzOTNlNGVhNWMzYWJlYy4uNzI0YThjOTZiN2U3ZTVlMGRiYWJhMDgyMzFiYjhiNzhm
OWJiZjBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApAQCAtMjgsOCAr
MjgsNiBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIklQQ1Rlc3Rlci5oIgotI2luY2x1ZGUg
IlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNz
aW9uVlQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Lmg+CkBAIC0zNywyMiArMzUsMTggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2Ft
cGxlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIGRl
ZmF1bHRUaW1lb3V0IHsgMzBfcyB9OwotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1
Q29ubmVjdGlvbiwgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCitzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OmNyZWF0ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICBhdXRvIGxheWVyID0g
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4obmV3IFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihncHVDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBXVEZN
b3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgYXV0byBsYXllciA9IHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+KG5ldyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIoaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogICAgIHJldHVybiBsYXll
ci0+bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPyBXVEZNb3ZlKGxheWVyKSA6IG51bGxwdHI7
CiB9CiAKLVJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6UmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb24sIFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uKQotICAgIDogbV9ncHVDb25uZWN0aW9uKGdwdUNvbm5lY3Rp
b24pCi0gICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKK1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uKQorICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyKExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoKnRoaXMpKQotICAgICwg
bV92aWRlb0ZyYW1lT2JqZWN0SGVhcChtX2dwdUNvbm5lY3Rpb24udmlkZW9GcmFtZU9iamVjdEhl
YXAoKSkKIHsKICAgICBBU1NFUlQobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOwogfQpAQCAt
MTE5LDIzICsxMTMsNyBAQCB2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6cGF1
c2UoKQogICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5wYXVzZSgpOwogfQogCi12b2lk
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZShSZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZSYmIHNhbXBsZSkKLXsKLSAgICBhdXRvIG1lZGlhU2FtcGxlID0g
bV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdURk1vdmUoc2FtcGxlKSwgZGVmYXVsdFRp
bWVvdXQpOwotICAgIGlmICghbWVkaWFTYW1wbGUpIHsKLSAgICAgICAgQVNTRVJUX0lTX1RFU1RJ
TkdfSVBDKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKCFpczxNZWRpYVNhbXBs
ZUFWRk9iakM+KG1lZGlhU2FtcGxlKSkgewotICAgICAgICBBU1NFUlRfSVNfVEVTVElOR19JUEMo
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBhdXRvJiBhdmZNZWRpYVNhbXBsZSA9IGRv
d25jYXN0PE1lZGlhU2FtcGxlQVZGT2JqQz4oKm1lZGlhU2FtcGxlKTsKLSAgICBNZWRpYVNhbXBs
ZUFWRk9iakM6OnNldEFzRGlzcGxheUltbWVkaWF0ZWx5KGF2Zk1lZGlhU2FtcGxlKTsKLSAgICBt
X3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+ZW5xdWV1ZVNhbXBsZShhdmZNZWRpYVNhbXBsZSk7
Ci19Ci0KLXZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjplbnF1ZXVlU2FtcGxl
Q1YoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiByZW1vdGVTYW1wbGUpCit2b2lkIFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZShSZW1vdGVWaWRlb1NhbXBs
ZSYmIHJlbW90ZVNhbXBsZSkKIHsKICAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IHNhbXBsZTsKICAg
ICBpZiAoIXJlbW90ZVNhbXBsZS5zdXJmYWNlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5oCmluZGV4IDgwMmM5MGZlOWViNjY0YmE5MzIxZDdhOGJkZTVkOTg0ZjQwM2YxZGIuLjcy
NWIzZDI2YjcxYzc4ODZkYzQ4ODgyN2QwYTZmN2QyNTJhYTdhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuaApAQCAtMzAsMTIgKzMwLDEwIEBACiAjaW5jbHVkZSAiTGF5ZXJIb3N0
aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKLSNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJTaGFyZWRWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL1Ro
cmVhZEFzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDsKQEAgLTQ0LDEzICs0MiwxMSBAQCBjbGFzcyBSZW1vdGVWaWRlb1NhbXBs
ZTsKIH07CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzczsKLWNsYXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOwogCiBjbGFzcyBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgOiBwdWJsaWMgV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpDbGllbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJ
UEM6Ok1lc3NhZ2VTZW5kZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7
CiAgICAgflJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOwogCiAgICAgdXNpbmcgV2Vi
Q29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQ6OndlYWtQdHJGYWN0b3J5OwpA
QCAtNjUsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgQ0dSZWN0IGJvdW5kcygpIGNvbnN0OwogICAg
IAogcHJpdmF0ZToKLSAgICBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYsIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYpOworICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHZvaWQgc2V0TG9nSWRlbnRp
ZmllcihTdHJpbmcmJik7CkBAIC03Nyw4ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmbHVz
aEFuZFJlbW92ZUltYWdlKCk7CiAgICAgdm9pZCBwbGF5KCk7CiAgICAgdm9pZCBwYXVzZSgpOwot
ICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSYmKTsK
LSAgICB2b2lkIGVucXVldWVTYW1wbGVDVihXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsK
KyAgICB2b2lkIGVucXVldWVTYW1wbGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CiAg
ICAgdm9pZCBjbGVhckVucXVldWVkU2FtcGxlcygpOwogICAgIHZvaWQgc2V0U2hhcmVkVmlkZW9G
cmFtZVNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSYmKTsKICAgICB2b2lkIHNldFNoYXJlZFZpZGVv
RnJhbWVNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKTsKQEAgLTkwLDE2ICs4
NSwxMiBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6Q2xpZW50CiAgICAgdm9pZCBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRGYWls
KCkgZmluYWw7CiAKLSAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rp
b24gV1RGX0dVQVJERURfQllfTE9DSyhtX2NvbnN1bWVUaHJlYWQpOwogICAgIFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VU
cmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250ZXh0
PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CiAgICAgU2hhcmVkVmlkZW9GcmFtZVJlYWRlciBtX3No
YXJlZFZpZGVvRnJhbWVSZWFkZXI7Ci0gICAgUmVmPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
PiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwOwotICAgIFRocmVhZEFzc2VydGlvbiBtX2NvbnN1bWVU
aHJlYWQgTk9fVU5JUVVFX0FERFJFU1M7Ci0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4KaW5kZXggM2NhMWY5MzI3MDcyN2RlMGMyYjc1
NDQ3YWI4OWI2NDYzMmFiYTcxOS4uZTUwNDgzMTQxZWZlZmFmYjQzZGNhNjA4Y2RjMzdkNjIxNmY3
ZWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMu
aW4KQEAgLTMyLDggKzMyLDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyIE5vdFJlZkNvdW50ZWQgewogICAgIFVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVj
dCBib3VuZHMsIFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uKQog
ICAgIEZsdXNoKCkKICAgICBGbHVzaEFuZFJlbW92ZUltYWdlKCkKLSAgICBFbnF1ZXVlU2FtcGxl
KFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2Ugc2FtcGxlKQotICAgIEVucXVl
dWVTYW1wbGVDVihXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSBzYW1wbGUpCisgICAgRW5xdWV1
ZVNhbXBsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSBzYW1wbGUpCiAgICAgQ2xlYXJFbnF1
ZXVlZFNhbXBsZXMoKQogICAgIFBsYXkoKQogICAgIFBhdXNlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCmluZGV4IDc2ZTc5OWMzNWFmMmVkZDIzNjZk
N2NhY2RkM2U1ZTcxOTc1YzU2ZDYuLmE1NDQ1ZDdmZDVjY2JiNWFkMDBjZGVjZWM1ZDAzZjYzMzRi
NWQxNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNw
cApAQCAtODEsNyArODEsNyBAQCBib29sIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXI6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbgogdm9pZCBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcihTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaGlkZVJvb3RMYXllciwgV2Vi
Q29yZTo6SW50U2l6ZSBzaXplLCBMYXllckNyZWF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsK
ICAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlz
IH0sIGlkZW50aWZpZXIsIGhpZGVSb290TGF5ZXIsIHNpemUsIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8gbGF5ZXIgPSBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGlkZW50
aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpOworICAgICAgICBhdXRvIGxheWVyID0gUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoaWRlbnRpZmllciwgbV9jb25uZWN0
aW9uLmNvcHlSZWYoKSk7CiAgICAgICAgIGF1dG8mIGxheWVyUmVmZXJlbmNlID0gKmxheWVyOwog
ICAgICAgICBsYXllclJlZmVyZW5jZS5pbml0aWFsaXplKGhpZGVSb290TGF5ZXIsIHNpemUsIFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKSwgaWRlbnRpZmllciwgbGF5ZXIgPSBXVEZNb3ZlKGxheWVyKV0oYXV0byBsYXllcklk
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spLCBpZGVudGlmaWVyLCBsYXllciA9IFdURk1vdmUobGF5ZXIpLCBsYXllcklkID0gV1RGTW92
ZShsYXllcklkKV0oKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CmluZGV4IDIyNGJmZmY2ZjhlNmJiZjAwN2EyNjU1MGMzMTQ4ZGQzMzUzZWExMjQuLjc1
OGQ1MDU1NmZmMmY2ZTQ3Mzc3ZDE0ZTgyNjZiYzVlM2VhYzQxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzQ3LDkgKzM0Nyw2IEBAIGRlZiB0eXBlc190
aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6OlJlbW90
ZUxlZ2FjeUNETVNlc3Npb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVNvdXJj
ZUlkZW50aWZpZXInLAotICAgICAgICAnV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmll
cicsCi0gICAgICAgICdXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVXcml0ZVJlZmVyZW5jZScsCi0g
ICAgICAgICdXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJywKICAgICAgICAg
J1dlYktpdDo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVySWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJLaXQ6OlJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcicsCkBAIC04ODYsOCArODgzLDYgQEAgZGVmIGhl
YWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJLaXQ6OlBheW1lbnRTZXR1cENvbmZp
Z3VyYXRpb24nOiBbJyJQYXltZW50U2V0dXBDb25maWd1cmF0aW9uV2ViS2l0LmgiJ10sCiAgICAg
ICAgICdXZWJLaXQ6OlBheW1lbnRTZXR1cEZlYXR1cmVzJzogWyciQXBwbGVQYXlQYXltZW50U2V0
dXBGZWF0dXJlc1dlYktpdC5oIiddLAogICAgICAgICAnV2ViS2l0OjpSZXNwZWN0U2VsZWN0aW9u
QW5jaG9yJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCi0gICAgICAgICdXZWJLaXQ6OlJlbW90ZVZp
ZGVvRnJhbWVSZWFkUmVmZXJlbmNlJzogWyciUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCIn
XSwKLSAgICAgICAgJ1dlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlJzogWyci
UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCInXSwKICAgICAgICAgJ1dlYktpdDo6U2VsZWN0
aW9uRmxhZ3MnOiBbJyJHZXN0dXJlVHlwZXMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6U2VsZWN0
aW9uVG91Y2gnOiBbJyJHZXN0dXJlVHlwZXMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6VGFwSWRl
bnRpZmllcic6IFsnIklkZW50aWZpZXJUeXBlcy5oIiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvSVBDVGVzdGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1Rlc3Rl
ci5jcHAKaW5kZXggYThkMjU3ZWM2NzM1ZjEwZGE1OTU0ODMwMGNlNmZlM2YyY2RmOWJhMy4uYmFi
YTBiMDg4NzdjNDcyYTUwNzFmZjNhYTNkODgwMTAyZjU3Yzg5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvSVBDVGVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9J
UENUZXN0ZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIkRlY29kZXIuaCIKIAotI2luY2x1ZGUgPGF0b21pYz4KICNpbmNsdWRlIDxkbGZj
bi5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CkBAIC00OSw4ICs0
OCw2IEBAIHN0cnVjdCBTZW5kTWVzc2FnZUNvbnRleHQgewogICAgIElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbjsKICAgICBzdGQ6OmF0b21pYzxib29sPiYgc2hvdWxkU3RvcDsKIH07Ci0KLXN0
YXRpYyBzdGQ6OmF0b21pYzx1bnNpZ25lZD4gb25nb2luZ0lQQ1Rlc3RzIHsgMCB9OwogfQogCiBl
eHRlcm4gIkMiIHsKQEAgLTExOCw5ICsxMTUsNyBAQCB2b2lkIElQQ1Rlc3Rlcjo6c3RhcnRNZXNz
YWdlVGVzdGluZyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0cmluZyYmIGRyaXZlcgog
ICAgIGlmICghbV90ZXN0UXVldWUpCiAgICAgICAgIG1fdGVzdFF1ZXVlID0gV29ya1F1ZXVlOjpj
cmVhdGUoIklQQyB0ZXN0aW5nIHdvcmsgcXVldWUiKTsKICAgICBtX3Rlc3RRdWV1ZS0+ZGlzcGF0
Y2goW2Nvbm5lY3Rpb24gPSBSZWYgeyBjb25uZWN0aW9uIH0sICZzaG91bGRTdG9wID0gbV9zaG91
bGRTdG9wLCBkcml2ZXJOYW1lID0gV1RGTW92ZShkcml2ZXJOYW1lKV0oKSBtdXRhYmxlIHsKLSAg
ICAgICAgb25nb2luZ0lQQ1Rlc3RzKys7CiAgICAgICAgIHJ1bk1lc3NhZ2VUZXN0aW5nKGNvbm5l
Y3Rpb24sIHNob3VsZFN0b3AsIFdURk1vdmUoZHJpdmVyTmFtZSkpOwotICAgICAgICBvbmdvaW5n
SVBDVGVzdHMtLTsKICAgICB9KTsKIH0KIApAQCAtMTM5LDExICsxMzQsNiBAQCB2b2lkIElQQ1Rl
c3Rlcjo6c3RvcElmTmVlZGVkKCkKICAgICB9CiB9CiAKLWJvb2wgaXNUZXN0aW5nSVBDKCkKLXsK
LSAgICByZXR1cm4gb25nb2luZ0lQQ1Rlc3RzOwotfQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVzdGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9JUENUZXN0ZXIuaAppbmRleCBlYTQ5MzM1NmQ0MzkyYzNmYTdiNWY3ZjVlMmI1NjRmNjUzMzI3
ZmQyLi40NDk5MDkzNWJkNTUxZDRlZWI1ODM1NDNlMTJlY2ZkM2I4NDcxODVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENUZXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9JUENUZXN0ZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lm
IEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
ICNpbmNsdWRlIDxhdG9taWM+CkBAIC0zMiwxNCArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotI2RlZmluZSBBU1NFUlRfSVNfVEVTVElOR19JUEMoKSBBU1NFUlQoaXNUZXN0aW5nSVBD
KCksICJVbnRydXN0ZWQgY29ubmVjdGlvbiBzZW50IGludmFsaWQgZGF0YS4gU2hvdWxkIG9ubHkg
aGFwcGVuIHdoZW4gdGVzdGluZyBJUEMuIikKLQotI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkp
Ci0KLS8vIEZ1bmN0aW9uIHRvIGNoZWNrIHdoZW4gYXNzZXJ0aW5nIElQQy1yZWxhdGVkIGZhaWx1
cmVzLCBzbyB0aGF0IElQQyB0ZXN0aW5nIHNraXBzIHRoZSBhc3NlcnRpb25zCi0vLyBhbmQgZXhw
b3NlcyBidWdzIHVuZGVybmVhdGguCi1ib29sIGlzVGVzdGluZ0lQQygpOwotCiBjbGFzcyBJUENU
ZXN0ZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAg
IElQQ1Rlc3RlcigpOwpAQCAtNTksMTMgKzUyLDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6OmF0b21p
Yzxib29sPiBtX3Nob3VsZFN0b3AgeyBmYWxzZSB9OwogfTsKIAotI2Vsc2UKLQotY29uc3RleHBy
IGlubGluZSBib29sIGlzVGVzdGluZ0lQQygpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCiAj
ZW5kaWYKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvT2JqZWN0SWRlbnRp
ZmllclJlZmVyZW5jZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL09iamVjdElkZW50
aWZpZXJSZWZlcmVuY2VUcmFja2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1
MjU3ZDg0MjViYTA0MzZkNDczOWE5OGM0NWU5MjNhM2YyOTE3OGQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvT2JqZWN0
SWRlbnRpZmllclJlZmVyZW5jZVRyYWNrZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDIyNiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
Ci0jaW5jbHVkZSA8YXRvbWljPgotI2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8d3RmL0hh
c2hUcmFpdHMuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaGVyLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLS8vIFR5cGUgZm9yIHRoZSBrZXkgaW4gbWFwcGluZyBmcm9tIG9iamVjdCBp
ZGVudGlmaWVyIHJlZmVyZW5jZXMgdG8gb2JqZWN0IHN0YXRlLgotdGVtcGxhdGU8dHlwZW5hbWUg
VD4KLWNsYXNzIE9iamVjdElkZW50aWZpZXJSZWZlcmVuY2UgewotcHVibGljOgotICAgIE9iamVj
dElkZW50aWZpZXJSZWZlcmVuY2UoKSA9IGRlZmF1bHQ7Ci0gICAgT2JqZWN0SWRlbnRpZmllclJl
ZmVyZW5jZShUIGlkZW50aWZpZXIsIHVpbnQ2NF90IHZlcnNpb24pCi0gICAgICAgIDogbV9pZGVu
dGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbV92ZXJzaW9uKHZlcnNpb24pCi0gICAgewot
ICAgIH0KLSAgICBleHBsaWNpdCBPYmplY3RJZGVudGlmaWVyUmVmZXJlbmNlKFdURjo6SGFzaFRh
YmxlRGVsZXRlZFZhbHVlVHlwZSkKLSAgICAgICAgOiBtX2lkZW50aWZpZXIoV1RGOjpIYXNoVGFi
bGVEZWxldGVkVmFsdWUpCi0gICAgewotICAgIH0KLSAgICBUIGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLSAgICB1aW50NjRfdCB2ZXJzaW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV92ZXJzaW9uOyB9Ci0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE9iamVjdElkZW50
aWZpZXJSZWZlcmVuY2UmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG90aGVy
Lm1faWRlbnRpZmllciA9PSBtX2lkZW50aWZpZXIgJiYgb3RoZXIubV92ZXJzaW9uID09IG1fdmVy
c2lvbjsKLSAgICB9Ci0gICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCk7Ci0gICAgfQotcHJpdmF0ZToKLSAgICBUIG1faWRlbnRpZmllcjsKLSAgICB1aW50NjRfdCBt
X3ZlcnNpb24geyAwIH07Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RydWN0IE9iamVj
dElkZW50aWZpZXJSZWFkUmVmZXJlbmNlIHsKLXB1YmxpYzoKLSAgICBPYmplY3RJZGVudGlmaWVy
UmVhZFJlZmVyZW5jZShUIGlkZW50aWZpZXIsIHVpbnQ2NF90IHZlcnNpb24pCi0gICAgICAgIDog
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbV92ZXJzaW9uKHZlcnNpb24pCi0g
ICAgewotICAgIH0KLSAgICBUIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH0KLSAgICB1aW50NjRfdCB2ZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbV92ZXJzaW9uOyB9
Ci0gICAgT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZTxUPiByZWZlcmVuY2UoKSBjb25zdCB7IHJl
dHVybiB7IG1faWRlbnRpZmllciwgbV92ZXJzaW9uIH07IH0KLQotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci0gICAgewot
ICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKLSAgICAgICAgZW5jb2RlciA8PCBtX3Zl
cnNpb247Ci0gICAgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPE9iamVjdElkZW50aWZpZXJSZWFkUmVmZXJlbmNlPiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKLSAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VD4gaWRlbnRpZmllcjsKLSAg
ICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gdmVyc2lvbjsKLSAgICAgICAgZGVjb2RlciA+
PiBpZGVudGlmaWVyCi0gICAgICAgICAgICA+PiB2ZXJzaW9uOwotICAgICAgICBpZiAoIWRlY29k
ZXIuaXNWYWxpZCgpKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAgICAg
cmV0dXJuIE9iamVjdElkZW50aWZpZXJSZWFkUmVmZXJlbmNlIHsgV1RGTW92ZSgqaWRlbnRpZmll
ciksICp2ZXJzaW9uIH07Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFQgbV9pZGVudGlmaWVyOwot
ICAgIHVpbnQ2NF90IG1fdmVyc2lvbiB7IDAgfTsKLX07Ci0KLQotdGVtcGxhdGU8dHlwZW5hbWUg
VD4KLWNsYXNzIE9iamVjdElkZW50aWZpZXJXcml0ZVJlZmVyZW5jZSB7Ci1wdWJsaWM6Ci0gICAg
T2JqZWN0SWRlbnRpZmllcldyaXRlUmVmZXJlbmNlKFQgaWRlbnRpZmllciwgdWludDY0X3QgdmVy
c2lvbiwgdWludDY0X3QgcGVuZGluZ1JlYWRzKQotICAgICAgICA6IG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQotICAgICAgICAsIG1fdmVyc2lvbih2ZXJzaW9uKQotICAgICAgICAsIG1fcGVuZGlu
Z1JlYWRzKHBlbmRpbmdSZWFkcykKLSAgICB7Ci0gICAgfQotICAgIFQgaWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotICAgIHVpbnQ2NF90IHZlcnNpb24oKSBjb25z
dCB7IHJldHVybiBtX3ZlcnNpb247IH0KLSAgICB1aW50NjRfdCBwZW5kaW5nUmVhZHMoKSBjb25z
dCB7IHJldHVybiBtX3BlbmRpbmdSZWFkczsgfQotICAgIE9iamVjdElkZW50aWZpZXJSZWZlcmVu
Y2U8VD4gcmVmZXJlbmNlKCkgY29uc3QgeyByZXR1cm4geyBtX2lkZW50aWZpZXIsIG1fdmVyc2lv
biB9OyB9Ci0gICAgT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZTxUPiByZXRpcmUoKSBjb25zdCAm
JiB7IHJldHVybiB7IG1faWRlbnRpZmllciwgbV92ZXJzaW9uICsgMSB9OyB9Ci0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAotICAgIHsKLSAgICAgICAgZW5jb2RlciA8PCBtX2lkZW50aWZpZXI7Ci0gICAgICAgIGVuY29k
ZXIgPDwgbV92ZXJzaW9uOwotICAgICAgICBlbmNvZGVyIDw8IG1fcGVuZGluZ1JlYWRzOwotICAg
IH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PE9iamVjdElkZW50aWZpZXJXcml0ZVJlZmVyZW5jZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Ci0gICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPFQ+IGlkZW50aWZpZXI7Ci0gICAgICAgIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHZlcnNpb247Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IHBlbmRpbmdSZWFkczsKLQotICAgICAgICBkZWNvZGVyID4+IGlkZW50aWZpZXIKLSAg
ICAgICAgICAgID4+IHZlcnNpb24KLSAgICAgICAgICAgID4+IHBlbmRpbmdSZWFkczsKLSAgICAg
ICAgaWYgKCFkZWNvZGVyLmlzVmFsaWQoKSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0gICAgICAgIHJldHVybiBPYmplY3RJZGVudGlmaWVyV3JpdGVSZWZlcmVuY2UgeyBXVEZN
b3ZlKCppZGVudGlmaWVyKSwgKnZlcnNpb24sICpwZW5kaW5nUmVhZHMgfTsKLSAgICB9Ci0KLXBy
aXZhdGU6Ci0gICAgVCBtX2lkZW50aWZpZXI7Ci0gICAgdWludDY0X3QgbV92ZXJzaW9uIHsgMCB9
OwotICAgIHVpbnQ2NF90IG1fcGVuZGluZ1JlYWRzIHsgMCB9OwotfTsKLQotLy8gQ2xhc3MgdG8g
Z2VuZXJhdGUgcmVhZCBhbmQgd3JpdGUgcmVmZXJlbmNlcyB0byBhbiBPYmplY3RJZGVudGlmZXIu
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZVRy
YWNrZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE9iamVjdElkZW50aWZpZXJSZWZlcmVu
Y2VUcmFja2VyKTsKLXB1YmxpYzoKLSAgICB1c2luZyBSZWFkUmVmZXJlbmNlID0gT2JqZWN0SWRl
bnRpZmllclJlYWRSZWZlcmVuY2U8VD47Ci0gICAgdXNpbmcgV3JpdGVSZWZlcmVuY2UgPSBPYmpl
Y3RJZGVudGlmaWVyV3JpdGVSZWZlcmVuY2U8VD47Ci0gICAgdXNpbmcgUmVmZXJlbmNlID0gT2Jq
ZWN0SWRlbnRpZmllclJlZmVyZW5jZTxUPjsKLQotICAgIGV4cGxpY2l0IE9iamVjdElkZW50aWZp
ZXJSZWZlcmVuY2VUcmFja2VyKFQgaWRlbnRpZmllcikKLSAgICAgICAgOiBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKLSAgICB7Ci0gICAgfQotICAgIC8vIFRocmVhZCBzYWZlLgotICAgIFJlYWRS
ZWZlcmVuY2UgcmVhZCgpIGNvbnN0Ci0gICAgewotICAgICAgICBtX3BlbmRpbmdSZWFkcysrOwot
ICAgICAgICByZXR1cm4geyBtX2lkZW50aWZpZXIsIG1fdmVyc2lvbiB9OwotICAgIH0KLSAgICAv
LyBOb3QgdGhyZWFkIHNhZmUuIENsaWVudCBtdXN0IGNvb3JkaW5hdGUgd3JpdGVzIGFuZCByZWFk
cyBhbnl3YXkuCi0gICAgV3JpdGVSZWZlcmVuY2Ugd3JpdGUoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHsgbV9pZGVudGlmaWVyLCBtX3ZlcnNpb24rKywgbV9wZW5kaW5nUmVhZHMuZXhj
aGFuZ2UoMCkgfTsKLSAgICB9Ci0gICAgVCBpZGVudGlmaWVyKCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBtX2lkZW50aWZpZXI7Ci0gICAgfQotcHJpdmF0ZToKLSAgICBjb25zdCBUIG1f
aWRlbnRpZmllcjsKLSAgICBtdXRhYmxlIHN0ZDo6YXRvbWljPHVpbnQ2NF90PiBtX3BlbmRpbmdS
ZWFkcyB7IDAgfTsKLSAgICBtdXRhYmxlIHVpbnQ2NF90IG1fdmVyc2lvbiB7IDAgfTsKLX07Ci0K
LXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIGFkZChIYXNoZXImIGhhc2hlciwgT2Jq
ZWN0SWRlbnRpZmllclJlZmVyZW5jZTxUPiByZWZlcmVuY2UpCi17Ci0gICAgYWRkKGhhc2hlciwg
cmVmZXJlbmNlLmlkZW50aWZpZXIoKSk7Ci0gICAgYWRkKGhhc2hlciwgcmVmZXJlbmNlLnZlcnNp
b24oKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBXZWJLaXQ6Ok9iamVjdElkZW50aWZpZXJSZWZlcmVuY2U8
VD4mIHJlZmVyZW5jZSkKLXsKLSAgICB0cyA8PCAiT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZSgi
IDw8IHJlZmVyZW5jZS5pZGVudGlmaWVyKCkgPDwgIiwgIiA8PCByZWZlcmVuY2UudmVyc2lvbigp
IDw8ICIpIjsKLSAgICByZXR1cm4gdHM7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1UZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBXZWJLaXQ6Ok9iamVjdElk
ZW50aWZpZXJSZWFkUmVmZXJlbmNlPFQ+JiByZWZlcmVuY2UpCi17Ci0gICAgdHMgPDwgIk9iamVj
dElkZW50aWZpZXJSZWFkUmVmZXJlbmNlKCIgPDwgcmVmZXJlbmNlLmlkZW50aWZpZXIoKSA8PCAi
LCAiIDw8IHJlZmVyZW5jZS52ZXJzaW9uKCkgPDwgIikiOwotICAgIHJldHVybiB0czsKLX0KLQot
dGVtcGxhdGU8dHlwZW5hbWUgVD4KLVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IFdlYktpdDo6T2JqZWN0SWRlbnRpZmllcldyaXRlUmVmZXJlbmNlPFQ+JiByZWZl
cmVuY2UpCi17Ci0gICAgdHMgPDwgIk9iamVjdElkZW50aWZpZXJXcml0ZVJlZmVyZW5jZSgiIDw8
IHJlZmVyZW5jZS5pZGVudGlmaWVyKCkgPDwgIiwgIiA8PCByZWZlcmVuY2UudmVyc2lvbigpIDw8
ICIsICIgPDwgcmVmZXJlbmNlLnBlbmRpbmdSZWFkcygpIDw8ICIpIjsKLSAgICByZXR1cm4gdHM7
Ci19Ci0KLX0KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBIYXNoVHJhaXRzPFdlYktpdDo6T2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZTxUPj4gOiBTaW1w
bGVDbGFzc0hhc2hUcmFpdHM8V2ViS2l0OjpPYmplY3RJZGVudGlmaWVyUmVmZXJlbmNlPFQ+PiB7
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBIYXNoVHJhaXRz
PFQ+OjplbXB0eVZhbHVlSXNaZXJvOwotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IERlZmF1bHRIYXNoPFdlYktpdDo6T2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZTxUPj4gewotICAg
IHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYktpdDo6T2JqZWN0SWRlbnRpZmllclJlZmVy
ZW5jZTxUPiYgcmVmZXJlbmNlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVIYXNoKHJl
ZmVyZW5jZSk7Ci0gICAgfQotICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6T2Jq
ZWN0SWRlbnRpZmllclJlZmVyZW5jZTxUPiYgYSwgY29uc3QgV2ViS2l0OjpPYmplY3RJZGVudGlm
aWVyUmVmZXJlbmNlPFQ+JiBiKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGEgPT0gYjsKLSAgICB9
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gRGVmYXVsdEhhc2g8VD46OnNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkOwotfTsKLQot
fQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RocmVhZFNhZmVP
YmplY3RIZWFwLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UaHJlYWRTYWZlT2JqZWN0SGVhcC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTI5YjdlNDY2YzJjMmI0ZTk4ZmQ1YjUz
NmU4Yzk4NjdiM2ZiODBlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RocmVhZFNhZmVPYmplY3RIZWFwLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0j
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotI2luY2x1ZGUg
IklQQ1Rlc3Rlci5oIgotI2luY2x1ZGUgIk9iamVjdElkZW50aWZpZXJSZWZlcmVuY2VUcmFja2Vy
LmgiCi0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkQXNzZXJ0aW9ucy5o
PgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotLy8gQ29udGFpbmVyIHRoYXQgaG9sZHMgaWRlbnRpZmllciAtPiBvYmplY3QgbWFw
cGluZyBiZXR3ZWVuIHR3byBwcm9jZXNzZXMuCi0vLyBVc2VkIGluIHNjZW5hcmlvcyB3aGVyZSB0
aGUgaG9sZGVyIHByb2Nlc3MgcHJvY2Vzc2VzIG1lc3NhZ2VzIHdpdGggdGhlIG9iamVjdCByZWZl
cmVuY2VzIGluIG11bHRpcGxlCi0vLyB0aHJlYWRzLiBgVGhyZWFkU2FmZU9iamVjdEhlYXBgIHRy
YWNrcyB0aGUgcmVhZCBhbmQgd3JpdGUgcmVmZXJlbmNlcyB0byB0aGUgY29udGVudCBwb2ludGVk
Ci0vLyBieSBhIHBhcnRpY3VsYXIgaWRlbnRpZmllci4KLS8vIFBlbmRpbmcgcmVhZHMgbWF5IGJs
b2NrIG5ldyB3cml0ZXMuIEFsdGVybmF0aXZlbHkgbmV3IHdyaXRlcyBjYW4gc2tpcCBhaGVhZCBv
ZiB0aGUgcmVhZHMsCi0vLyBmb3IgZXhhbXBsZSBpbiBjb3B5LW9uLXdyaXRlIHNjZW5hcmlvcy4K
LS8vIFBlbmRpbmcgd3JpdGVzIGJsb2NrIHJlYWRzLgotLy8gQ3VycmVudGx5IGltcGxlbWVudGVk
IG9ubHkgZm9yIHJlYWQtb25seSAoY3JlYXRlLXJlYWQtZGVzdHJveSkgb3IgY29weS1vbi13cml0
ZSB0eXBlcywKLS8vIGUuZy4gbm8gdHdvLXBoYXNlIGdldCgpIG9wZXJhdGlvbnMgYXJlIG5vdCBp
bXBsZW1lbnRlZCB5ZXQuCi10ZW1wbGF0ZTx0eXBlbmFtZSBJZGVudGlmaWVyLCB0eXBlbmFtZSBI
ZWxkVHlwZT4KLWNsYXNzIFRocmVhZFNhZmVPYmplY3RIZWFwIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFRocmVhZFNhZmVPYmplY3RIZWFwPElkZW50aWZpZXIsIEhlbGRUeXBlPj4gewot
cHVibGljOgotICAgIHVzaW5nIFJlYWRSZWZlcmVuY2UgPSB0eXBlbmFtZSBPYmplY3RJZGVudGlm
aWVyUmVmZXJlbmNlVHJhY2tlcjxJZGVudGlmaWVyPjo6UmVhZFJlZmVyZW5jZTsKLSAgICB1c2lu
ZyBXcml0ZVJlZmVyZW5jZSA9IHR5cGVuYW1lIE9iamVjdElkZW50aWZpZXJSZWZlcmVuY2VUcmFj
a2VyPElkZW50aWZpZXI+OjpXcml0ZVJlZmVyZW5jZTsKLSAgICB1c2luZyBSZWZlcmVuY2UgPSB0
eXBlbmFtZSBPYmplY3RJZGVudGlmaWVyUmVmZXJlbmNlVHJhY2tlcjxJZGVudGlmaWVyPjo6UmVm
ZXJlbmNlOwotCi0gICAgLy8gV2FpdHMgdW50aWwgYSB3cml0ZSBjcmVhdGVzIHRoZSByZWZlcmVu
Y2UgYW5kIHRoZW4gcmV0aXJlcyB0aGUgcmVhZCBvcgotICAgIC8vIHRpbWVzIG91dC4KLSAgICBI
ZWxkVHlwZSByZXRpcmUoUmVhZFJlZmVyZW5jZSYmLCBJUEM6OlRpbWVvdXQpOwotCi0gICAgLy8g
SW5zZXJ0cyBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBvYmplY3Qgb3IgcmVtb3ZlcyBhbiBvbGQgb25l
IGFuZCB0aGVuIHJldGlyZXMgdGhlIHdyaXRlIG9yCi0gICAgLy8gdGltZXMgb3V0LgotICAgIC8v
IElmIHRpbWVvdXQgaXMgcGFzc2VkLCB3YWl0cyB1bnRpbCBwZW5kaW5nIHJlYWRzIGFyZSBkb25l
LgotICAgIC8vIEl0IGlzIGEgY2FsbGVyIGVycm9yIHRvIG5vdCB3YWl0IGFuZCBtdXRhdGUgdGhl
IG9sZCBvYmplY3QuCi0gICAgdm9pZCByZXRpcmUoV3JpdGVSZWZlcmVuY2UmJiwgc3RkOjpvcHRp
b25hbDxIZWxkVHlwZT4mJiBuZXdPYmplY3QsIHN0ZDo6b3B0aW9uYWw8SVBDOjpUaW1lb3V0Pik7
Ci0KLSAgICB2b2lkIHJldGlyZVJlbW92ZShXcml0ZVJlZmVyZW5jZSYmKTsKLQotICAgIHZvaWQg
Y2xlYXIoKTsKLXByaXZhdGU6Ci0gICAgTG9jayBtX29iamVjdHNMb2NrOwotICAgIENvbmRpdGlv
biBtX29iamVjdHNDb25kaXRpb247Ci0gICAgc3RydWN0IFJlZmVyZW5jZVN0YXRlIHsKLSAgICAg
ICAgdWludDY0X3QgcmV0aXJlZFJlYWRzIHsgMCB9OwotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBmaW5hbFJlYWQ7IC8vIFJlbW92ZSBhZnRlciBgZmluYWxSZWFkYCByZWFkcy4KLSAg
ICAgICAgc3RkOjpvcHRpb25hbDxIZWxkVHlwZT4gb2JqZWN0OyAvLyBPYmplY3Qgb3IgdG9tYnN0
b25lLgotCi0gICAgICAgIFJlZmVyZW5jZVN0YXRlKCkgPSBkZWZhdWx0OwotICAgICAgICBleHBs
aWNpdCBSZWZlcmVuY2VTdGF0ZShIZWxkVHlwZSYmIG9iamVjdCkKLSAgICAgICAgICAgIDogb2Jq
ZWN0KFdURk1vdmUob2JqZWN0KSkKLSAgICAgICAgewotICAgICAgICB9Ci0gICAgICAgIC8vIFRv
bWJzdG9uZSBjb25zdHJ1Y3Rvci4KLSAgICAgICAgZXhwbGljaXQgUmVmZXJlbmNlU3RhdGUodWlu
dDY0X3QgZmluYWxSZWFkKQotICAgICAgICAgICAgOiBmaW5hbFJlYWQoZmluYWxSZWFkKQotICAg
ICAgICB7Ci0gICAgICAgIH0KLSAgICB9OwotICAgIEhhc2hNYXA8UmVmZXJlbmNlLCBSZWZlcmVu
Y2VTdGF0ZT4gbV9vYmplY3RzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9vYmplY3RzTG9jayk7Ci19
OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBJZGVudGlmaWVyLCB0eXBlbmFtZSBIZWxkVHlwZT4KLUhl
bGRUeXBlIFRocmVhZFNhZmVPYmplY3RIZWFwPElkZW50aWZpZXIsIEhlbGRUeXBlPjo6cmV0aXJl
KFJlYWRSZWZlcmVuY2UmJiByZWFkLCBJUEM6OlRpbWVvdXQgdGltZW91dCkKLXsKLSAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9vYmplY3RzTG9jayB9OwotICAgIGRvIHsKLSAgICAgICAgYXV0byBpdCA9
IG1fb2JqZWN0cy5maW5kKHJlYWQucmVmZXJlbmNlKCkpOwotICAgICAgICBpZiAoaXQgIT0gbV9v
YmplY3RzLmVuZCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBzdGF0ZSA9IGl0LT52YWx1ZTsKLSAg
ICAgICAgICAgIGlmIChzdGF0ZS5vYmplY3QpIHsKLSAgICAgICAgICAgICAgICBIZWxkVHlwZSBy
ZXN1bHQgPSAqc3RhdGUub2JqZWN0OwotICAgICAgICAgICAgICAgIHN0YXRlLnJldGlyZWRSZWFk
cysrOwotICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5maW5hbFJlYWQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKHN0YXRlLmZpbmFsUmVhZCA+PSBzdGF0ZS5yZXRpcmVkUmVhZHMpOyAv
LyBUcnVzdGVkIGFzc2VydCBiZWNhdXNlIHRoaXMgaXMgZW5zdXJlZCBvbiBgZmluYWxSZWFkYCBh
c3NpZ25tZW50LgotICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZmluYWxSZWFkID09IHN0
YXRlLnJldGlyZWRSZWFkcykKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fb2JqZWN0cy5yZW1v
dmUoaXQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBtX29iamVjdHNDb25k
aXRpb24ubm90aWZ5QWxsKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoIW1fb2JqZWN0c0NvbmRpdGlvbi53YWl0
VW50aWwobV9vYmplY3RzTG9jaywgdGltZW91dC5kZWFkbGluZSgpKSkKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgIH0gd2hpbGUgKHRydWUpOwotICAgIHJldHVybiBudWxscHRyOwotfQotCi10ZW1w
bGF0ZTx0eXBlbmFtZSBJZGVudGlmaWVyLCB0eXBlbmFtZSBIZWxkVHlwZT4KLXZvaWQgVGhyZWFk
U2FmZU9iamVjdEhlYXA8SWRlbnRpZmllciwgSGVsZFR5cGU+OjpyZXRpcmUoV3JpdGVSZWZlcmVu
Y2UmJiB3cml0ZSwgc3RkOjpvcHRpb25hbDxIZWxkVHlwZT4mJiBvYmplY3QsIHN0ZDo6b3B0aW9u
YWw8SVBDOjpUaW1lb3V0PiB0aW1lb3V0KQotewotICAgIGNvbnN0IGJvb2wgd2FpdEZvclBlbmRp
bmdSZWFkcyA9IHRpbWVvdXQuaGFzX3ZhbHVlKCk7Ci0gICAgTG9ja2VyIGxvY2tlciB7IG1fb2Jq
ZWN0c0xvY2sgfTsKLSAgICBkbyB7Ci0gICAgICAgIGF1dG8gaXQgPSBtX29iamVjdHMuZmluZCh3
cml0ZS5yZWZlcmVuY2UoKSk7Ci0gICAgICAgIGlmIChpdCAhPSBtX29iamVjdHMuZW5kKCkpIHsK
LSAgICAgICAgICAgIGF1dG8mIHN0YXRlID0gaXQtPnZhbHVlOwotICAgICAgICAgICAgaWYgKHN0
YXRlLmZpbmFsUmVhZCAmJiBzdGF0ZS5vYmplY3QpIHsKLSAgICAgICAgICAgICAgICAvLyBXcml0
ZSByZXBsYXk6IGBmaW5hbFJlYWRgIGlzIGFzc2lnbmVkIG9uIHdyaXRlLiBDYW5ub3QgaGF2ZSB0
aGUgc2FtZSB2ZXJzaW9uIHdpdGggd3JpdGVzLgotICAgICAgICAgICAgICAgIEFTU0VSVF9JU19U
RVNUSU5HX0lQQygpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmIChzdGF0ZS5yZXRpcmVkUmVhZHMgPiB3cml0ZS5wZW5kaW5nUmVhZHMoKSkg
ewotICAgICAgICAgICAgICAgIC8vIFdyaXRlIHVuZGVyZmxvdzogbW9yZSByZWFkcyBoYXZlIGJl
ZW4gZG9uZSB0aGFuIHRoZSBzZW5kZXIgY2xhaW1zIGlzIHRoZSBtYXhpbXVtLgotICAgICAgICAg
ICAgICAgIEFTU0VSVF9JU19URVNUSU5HX0lQQygpOwotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIEl0IGlzIGxpa2VseSBhIGNhbGxlciBlcnJv
ciB0byB0cnkgdG8gYWRkIGEgbmV3IHJlZmVyZW5jZSB3aXRoIHRoZSBzYW1lIGNsaWVudCBvYmpl
Y3Qgd2l0aG91dAotICAgICAgICAgICAgLy8gd2FpdGluZyBmb3IgcGVuZGluZyByZWFkcyBvbiB0
aGUgb2xkIHJlZmVyZW5jZS4KLSAgICAgICAgICAgIEFTU0VSVCh3YWl0Rm9yUGVuZGluZ1JlYWRz
IHx8ICFzdGF0ZS5vYmplY3QgfHwgKnN0YXRlLm9iamVjdCAhPSBvYmplY3QpOwotCi0gICAgICAg
ICAgICBpZiAoc3RhdGUucmV0aXJlZFJlYWRzID09IHdyaXRlLnBlbmRpbmdSZWFkcygpIHx8ICF3
YWl0Rm9yUGVuZGluZ1JlYWRzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXRlLnJldGlyZWRS
ZWFkcyA8IHdyaXRlLnBlbmRpbmdSZWFkcygpKQotICAgICAgICAgICAgICAgICAgICBzdGF0ZS5m
aW5hbFJlYWQgPSB3cml0ZS5wZW5kaW5nUmVhZHMoKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlm
IChzdGF0ZS5yZXRpcmVkUmVhZHMgPT0gd3JpdGUucGVuZGluZ1JlYWRzKCkpCi0gICAgICAgICAg
ICAgICAgICAgIG1fb2JqZWN0cy5yZW1vdmUoaXQpOwotICAgICAgICAgICAgICAgIGlmIChvYmpl
Y3QpIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX29iamVjdHMuYWRk
KFdURk1vdmUod3JpdGUpLnJldGlyZSgpLCBSZWZlcmVuY2VTdGF0ZSB7IFdURk1vdmUoKm9iamVj
dCkgfSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8mIG5ld1N0YXRlID0gYWRkUmVzdWx0Lml0ZXJh
dG9yLT52YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVudHJ5IHdhcyBhIHRvbWJz
dG9uZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTdGF0ZS5maW5hbFJlYWQgJiYg
ISpuZXdTdGF0ZS5maW5hbFJlYWQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX29i
amVjdHMucmVtb3ZlKGFkZFJlc3VsdC5pdGVyYXRvcik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKCFuZXdTdGF0ZS5vYmplY3QpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuZXdTdGF0ZS5vYmplY3QgPSBXVEZNb3ZlKCpvYmplY3QpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChuZXdTdGF0ZS5vYmplY3QpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBXcml0ZSByZXBsYXk6IHRoZSByZXRpcmVkIHdyaXRlIGFscmVhZHkgZXhp
c3RzLCB0aGUgZW50cnkgd2FzIG5vdCBhIHRvbWJzdG9uZS4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBU1NFUlRfSVNfVEVTVElOR19JUEMoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgbV9vYmplY3RzQ29uZGl0aW9uLm5vdGlmeUFsbCgp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoIXdhaXRGb3JQZW5kaW5nUmVhZHMgfHwgIXdyaXRlLnBl
bmRpbmdSZWFkcygpKSB7Ci0gICAgICAgICAgICAvLyBXcml0ZSB0aGUgdG9tYnN0b25lLgotICAg
ICAgICAgICAgbV9vYmplY3RzLmFkZCh3cml0ZS5yZWZlcmVuY2UoKSwgUmVmZXJlbmNlU3RhdGUg
eyB3cml0ZS5wZW5kaW5nUmVhZHMoKSB9KTsKLSAgICAgICAgICAgIGlmIChvYmplY3QpCi0gICAg
ICAgICAgICAgICAgbV9vYmplY3RzLmFkZChXVEZNb3ZlKHdyaXRlKS5yZXRpcmUoKSwgUmVmZXJl
bmNlU3RhdGUgeyBXVEZNb3ZlKCpvYmplY3QpIH0pOwotICAgICAgICAgICAgbV9vYmplY3RzQ29u
ZGl0aW9uLm5vdGlmeUFsbCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
ICAgIEFTU0VSVCh0aW1lb3V0KTsKLSAgICAgICAgaWYgKCFtX29iamVjdHNDb25kaXRpb24ud2Fp
dFVudGlsKG1fb2JqZWN0c0xvY2ssIHRpbWVvdXQtPmRlYWRsaW5lKCkpKQotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgfSB3aGlsZSAodHJ1ZSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIElkZW50
aWZpZXIsIHR5cGVuYW1lIEhlbGRUeXBlPgotdm9pZCBUaHJlYWRTYWZlT2JqZWN0SGVhcDxJZGVu
dGlmaWVyLCBIZWxkVHlwZT46OnJldGlyZVJlbW92ZShXcml0ZVJlZmVyZW5jZSYmIG9iamVjdCkK
LXsKLSAgICByZXRpcmUoV1RGTW92ZShvYmplY3QpLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9w
dCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIElkZW50aWZpZXIsIHR5cGVuYW1lIEhlbGRUeXBl
Pgotdm9pZCBUaHJlYWRTYWZlT2JqZWN0SGVhcDxJZGVudGlmaWVyLCBIZWxkVHlwZT46OmNsZWFy
KCkKLXsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9vYmplY3RzTG9jayB9OwotICAgIG1fb2JqZWN0
cy5jbGVhcigpOwotfQotCi19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFu
Z2UuY3BwCmluZGV4IDc4ZjczMTM0Y2U2YTdhMjE0Y2RjOWRlMDVjNDc1MzcyZTE3YzlhM2QuLjRk
ZTFkMGVkMmE3YmU0OWUzY2JiYjk1ZTM3N2Y1NDUwOWZhYzA3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5n
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcApAQCAtNjYsNyArNjYsNyBAQCBBdG9tU3RyaW5nIE1lZGlh
U2FtcGxlQnl0ZVJhbmdlOjp0cmFja0lEKCkgY29uc3QKICAgICByZXR1cm4gQXRvbVN0cmluZzo6
bnVtYmVyKG1fdHJhY2tJRCk7CiB9CiAKLVBsYXRmb3JtU2FtcGxlIE1lZGlhU2FtcGxlQnl0ZVJh
bmdlOjpwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0CitQbGF0Zm9ybVNhbXBsZSBNZWRpYVNhbXBsZUJ5
dGVSYW5nZTo6cGxhdGZvcm1TYW1wbGUoKQogewogICAgIHJldHVybiB7CiAgICAgICAgIFBsYXRm
b3JtU2FtcGxlOjpCeXRlUmFuZ2VTYW1wbGVUeXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRl
UmFuZ2UuaAppbmRleCBmODMzNmJmMDEzNzIxMDkwZGExOTM3OGZiNWE0NTNjOGRhY2E1NzZmLi5i
OGU0ZDc2Y2U2ZjM5Mjg1NzZlOWZiMWVmOTYyYjQwNDk3ZTNkYzMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFu
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVk
aWFTYW1wbGVCeXRlUmFuZ2UuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgc3RkOjpv
cHRpb25hbDxCeXRlUmFuZ2U+IGJ5dGVSYW5nZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYnl0
ZVJhbmdlOyB9CiAKICAgICBBdG9tU3RyaW5nIHRyYWNrSUQoKSBjb25zdCBmaW5hbDsKLSAgICBX
ZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0IGZpbmFsOworICAg
IFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgZmluYWw7CiAgICAgdm9p
ZCBvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJikgZmluYWw7CiAgICAgdm9pZCBz
ZXRUaW1lc3RhbXBzKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAppbmRleCAzMzUzYTM2YzE4NzVlMDc1M2VmM2JkYTkwMWEzMjdlZWY2MThhMmUw
Li5mNWM1YmRjOWVmODg0Mzc4ODM5OWZhYWNlZTVlMjk0ZThhZDlhNmEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
QEAgLTcwLDcgKzcwLDYgQEAgR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcAogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAKLUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXAuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhU291cmNl
UHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclBy
b3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAKQEAg
LTc0Niw3ICs3NDUsNiBAQCBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYUVuZ2luZUNv
bmZpZ3VyYXRpb25GYWN0b3J5LmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
SU1FVHlwZUNhY2hlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eS5jcHAKLVdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJh
bWVQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0
ZW5lci5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUu
Y3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcApAQCAt
ODg1LDggKzg4Myw2IEBAIFJlbW90ZURldmljZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUV4
dGVybmFsVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUdQVU1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFJlbW90ZUdQVVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotUmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXBNZXNzYWdlUmVjZWl2ZXIuY3BwCi1SZW1vdGVWaWRlb0ZyYW1lUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVQaXBlbGluZUxheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAK
IFJlbW90ZVF1ZXJ5U2V0TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlUXVldWVNZXNzYWdlUmVj
ZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAzYTg1NGRkMGUwOTNlYzAzYjhhYTFlNzM4M2IwY2FiY2IwYWQ1YjUyLi4wYzY4
MTg1ZGY5OWFhNzU3OGU1MGI3MjIzZjEwNWQ2OTdlNTc3MzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUxMTEsMTMgKzUxMTEsNiBA
QAogCQk3QjQ4M0YxRTI1Q0REQTlCMDAxMjA0ODYgLyogTWVzc2FnZVJlY2VpdmVRdWV1ZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVJlY2VpdmVRdWV1ZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I1MEU5N0YyNzcxRjZDRTAwM0RBQUM0IC8q
IElQQ1Rlc3Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJUENUZXN0ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QjUwRTk4MDI3NzFGNkNGMDAzREFBQzQgLyogSVBDVGVz
dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElQQ1Rlc3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk3QjVBM0RBMDI3QTdEQzFBMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZUlkZW50
aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFt
ZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0I1QTNEQTEyN0E3
REMxQTAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVWaWRlb0ZyYW1lUHJveHkubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdCNUEzREEyMjdBN0RDMUEwMDZDNkY5NyAvKiBSZW1v
dGVWaWRlb0ZyYW1lUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlVmlkZW9GcmFtZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdCNUEz
REEzMjdBN0RDNkMwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0I1QTNEQTcyN0E3RENCQzAwNkM2Rjk3IC8q
IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTdCNUEzREE4MjdBN0RDQkMwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdC
NUEzREM1MjdBRTUwMUEwMDZDNkY5NyAvKiBPYmplY3RJZGVudGlmaWVyUmVmZXJlbmNlVHJhY2tl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBPYmplY3RJZGVudGlmaWVyUmVmZXJlbmNlVHJhY2tlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjY0QzBCNjI1NEM1QzI1MDAwNkI0QUYgLyog
R3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dEdMSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjczMTIz
MTI1Q0M4NTIzMDAzQjI3OTYgLyogU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzMxMjMyMjVDQzg1MjMwMDNCMjc5NiAvKiBTdHJlYW1D
b25uZWN0aW9uV29ya1F1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTE0Myw3ICs1MTM2LDYgQEAKIAkJN0JDRjcwQ0UyNjE0OTM1RjAwRTRGQjcwIC8q
IFNjb3BlZFdlYkdMUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
Y29wZWRXZWJHTFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0JEREEzM0YyNzU2NTJFQTAwMzg2NTlFIC8qIEF1eGlsaWFyeVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTM0MDI3
NTY1MkVBMDAzODY1OUUgLyogQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBdXhpbGlhcnlQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0JFMzdGNkYyN0IxNDc1RjAwN0E2Q0Qz
IC8qIFRocmVhZFNhZmVPYmplY3RIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZFNhZmVPYmpl
Y3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRTcyNjU3MjU3NEY2NzIw
MEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVk
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5j
dGlvbnNHZW5lcmF0ZWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkU3MjY2
ODI1NzY4MEVGMDBFODVEOTggLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MwNjVGMjkxQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjgwOCwxMCArNjgwMCw2IEBACiAJCQkJQ0Q4MjUy
RDEyNUQ0NjRBQjAwODYyRkQ4IC8qIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICovLAog
CQkJCUNEODI1MkQzMjVENDY0QkYwMDg2MkZEOCAvKiBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVu
ZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJQ0Q4MjUyRDQyNUQ0NjUxMDAwODYyRkQ4IC8qIFJlbW90
ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcklkZW50aWZpZXIuaCAqLywKLQkJCQk3QjVBM0RBMDI3QTdE
QzFBMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCAqLywKLQkJCQk3QjVB
M0RBMzI3QTdEQzZDMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcCAqLywKLQkJ
CQk3QjVBM0RBMjI3QTdEQzFBMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZVByb3h5LmggKi8s
Ci0JCQkJN0I1QTNEQTEyN0E3REMxQTAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVQcm94eS5t
ZXNzYWdlcy5pbiAqLywKIAkJCQkxREQyQTYzQTI1NURFNkQxMDBGRjdCNkYgLyogU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMUREMkE2MzkyNTVERTZEMTAwRkY3QjZGIC8q
IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaCAqLywKIAkJCQkxREQyQTY2RjI1NjIyRjExMDBG
RjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLywKQEAgLTY5
MDIsOCArNjg5MCw2IEBACiAJCQkJMUREMkE2NjYyNTYxRUQwNDAwRkY3QjZGIC8qIFJlbW90ZVNv
dXJjZUJ1ZmZlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTA3RTE5RjA3MjNENERDODgwMDk0
RkZCNCAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJMDdFMTlGMDYyM0Q0REM4
ODAwOTRGRkI0IC8qIFJlbW90ZVRleHRUcmFja1Byb3h5LmggKi8sCi0JCQkJN0I1QTNEQTgyN0E3
RENCQzAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcCAqLywKLQkJCQk3
QjVBM0RBNzI3QTdEQ0JDMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCAq
LywKIAkJCQkwNzFCQzU4NDIzQ0MyQzA5MDA2ODBEN0MgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5
LmNwcCAqLywKIAkJCQkwNzFCQzU4NTIzQ0MyQzA5MDA2ODBEN0MgLyogUmVtb3RlVmlkZW9UcmFj
a1Byb3h5LmggKi8sCiAJCQkJMDdFMTlGMDUyM0Q0REM4ODAwOTRGRkI0IC8qIFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8sCkBAIC03MjgxLDcgKzcyNjcsNiBAQAogCQkJ
CTFBRENCODY4MTg5ODMxQjMwMDIyRUU1QSAvKiBOYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAgKi8s
CiAJCQkJMUFEQ0I4NjkxODk4MzFCMzAwMjJFRTVBIC8qIE5hdmlnYXRpb25BY3Rpb25EYXRhLmgg
Ki8sCiAJCQkJNUNENzQ4QjUyM0M4RUIxOTAwOTJBOUI1IC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLmggKi8sCi0JCQkJN0I1QTNEQzUyN0FFNTAxQTAwNkM2Rjk3IC8qIE9iamVjdElk
ZW50aWZpZXJSZWZlcmVuY2VUcmFja2VyLmggKi8sCiAJCQkJN0FGQkQzNkUyMUU1NDZFMzAwNURC
QUNCIC8qIFBlcnNpc3RlbmN5VXRpbHMuY3BwICovLAogCQkJCTdBRkJEMzZEMjFFNTQ2RTMwMDVE
QkFDQiAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggKi8sCiAJCQkJQkNDNDNBQjgxMjdCOTVEQzAwMzE3
RjE2IC8qIFBsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgKi8sCkBAIC03MzIyLDcgKzczMDcsNiBA
QAogCQkJCTgzRjk2NDRDMUZBMEY3NjMwMEM0Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVS
ZWFkT25seS5oICovLAogCQkJCTFBNUU0REEzMTJEM0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tl
clN0YXRlLmggKi8sCiAJCQkJRjRBN0NFODQyNjY3RUI0RTAwMjI4Njg1IC8qIFRleHRSZWNvZ25p
dGlvblVwZGF0ZVJlc3VsdC5oICovLAotCQkJCTdCRTM3RjZGMjdCMTQ3NUYwMDdBNkNEMyAvKiBU
aHJlYWRTYWZlT2JqZWN0SGVhcC5oICovLAogCQkJCTJGRDQzQjkyMUZBMDA2QTMwMDgzRjUxQyAv
KiBUb3VjaEJhck1lbnVEYXRhLmNwcCAqLywKIAkJCQkyRkQ0M0I5MTFGQTAwNkExMDA4M0Y1MUMg
LyogVG91Y2hCYXJNZW51RGF0YS5oICovLAogCQkJCTJGODA5REQ1MUZCRDFCQzkwMDVGRTYzQSAv
KiBUb3VjaEJhck1lbnVJdGVtRGF0YS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDVjNWRlMTgyMTI2
N2JkODU2ZGVlNTc3MTY1ZjQ1NGNiZDQyNDI3ZWEuLmUyOWY0YmQ1NjEzMmVjZDY3MTcxYmMzN2Ni
MmNjNTYxYmUxMjkzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC03NiwxMSArNzYsNiBAQAogI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNlbmRpZgogCi0jaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLSNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKLSNpbmNs
dWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHlNZXNzYWdlcy5oIgotI2VuZGlmCi0KICNpZiBFTkFC
TEUoV0VCR0wpCiAjaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIgogI2lu
Y2x1ZGUgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlcy5oIgpAQCAtMjEzLDEw
ICsyMDgsNiBAQCBib29sIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlYwogICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKQogICAgICAgICByZXR1cm4gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eTo6aGFuZGxlTWVzc2FnZVRvUmVtb3ZlZERlc3RpbmF0aW9uKGNvbm5lY3Rp
b24sIGRlY29kZXIpOwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTVMpCi0gICAgaWYg
KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0Zy
YW1lUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkKLSAgICAgICAgcmV0dXJuIFJlbW90ZVZp
ZGVvRnJhbWVQcm94eTo6aGFuZGxlTWVzc2FnZVRvUmVtb3ZlZERlc3RpbmF0aW9uKGNvbm5lY3Rp
b24sIGRlY29kZXIpOwotI2VuZGlmCiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikKICAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vz
c2lvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5LmNwcAppbmRleCAwMGQ0YThiZGRjNWMwNDFmZmIwMzk0OTAyZTk3OTk3MTUx
NWMzNGJkLi43YWUxZWU3NmRjNGIwN2M0MDNmNjBiOGFkMTNkYWQ5Yjg3YmRlZDBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKQEAgLTM1LDEwICszNSw2IEBA
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXIu
aD4KIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0jaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFt
ZVByb3h5LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwpAQCAtMTIyLDIxICsxMTgsNiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHk6OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciYgYgog
ICAgIH0KIH0KIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi1SZWZQdHI8V2ViQ29yZTo6TWVk
aWFTYW1wbGU+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnBhaW50Q29tcG9zaXRlZFJl
c3VsdHNUb01lZGlhU2FtcGxlKCkKLXsKLSAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICBhdXRvIG1lZGlhU2FtcGxlID0gUmVtb3RlVmlkZW9GcmFt
ZVByb3h5OjpjcmVhdGUoKm1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pOwotICAgIGF1dG8gc2VuZFJl
c3VsdCA9IHNlbmQoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQYWludENvbXBv
c2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZShtZWRpYVNhbXBsZS0+d3JpdGUoKSkpOwotICAgIGlm
ICghc2VuZFJlc3VsdCkgewotICAgICAgICBtYXJrQ29udGV4dExvc3QoKTsKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBtZWRpYVNhbXBsZTsKLX0KLSNlbmRpZgot
CiBib29sIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmNvcHlUZXh0dXJlRnJvbU1lZGlh
KE1lZGlhUGxheWVyJiBtZWRpYVBsYXllciwgUGxhdGZvcm1HTE9iamVjdCB0ZXh0dXJlLCBHQ0dM
ZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dM
ZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBm
bGlwWSkKIHsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuaAppbmRleCA1ZDFjYWIyMThmNzg1Y2JhMTE0NmE4OTEyMmIzMGQxMGNj
NjgzMDdjLi4yOWYwMTk4NzE5NTU5OTg3OTJlZTc3OTVkOWFhNjBjMmYzOTczOTcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaApAQCAtNjUsOSArNjUsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBub3RpZnlNYXJrQ29udGV4dENoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lk
IHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6OkltYWdlQnVmZmVyJikgZmlu
YWw7CiAgICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoV2ViQ29yZTo6SW1h
Z2VCdWZmZXImKSBmaW5hbDsKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIFJlZlB0cjxX
ZWJDb3JlOjpNZWRpYVNhbXBsZT4gcGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUo
KSBmaW5hbDsKLSNlbmRpZgogICAgIHZvaWQgc3ludGhlc2l6ZUdMRXJyb3IoR0NHTGVudW0gZXJy
b3IpIGZpbmFsOwogICAgIEdDR0xlbnVtIGdldEVycm9yKCkgZmluYWw7CiAgICAgYm9vbCBjb3B5
VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllciYsIFBsYXRmb3JtR0xPYmplY3Qg
dGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5h
bEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5
QWxwaGEsIGJvb2wgZmxpcFkpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Q29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbQppbmRleCAwYjhiYmExNmNmZWMxNmIyYmEx
ODcxNzFhZmQ5YjNiMzEzMWQ2N2YxLi5mZjdlMTQ4ZDZiNWVlYmEwMjRhOTNlM2ViMjEyNjJiYWI3
MjI4MDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlDb2NvYS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9DVlV0
aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5
RGVsZWdhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvSU9TdXJmYWNlLmg+CisjaW1wb3J0IDxXZWJD
b3JlL01lZGlhU2FtcGxlQVZGT2JqQy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5
ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC05OCw2ICs5OSw5IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xDViogYXNDVigpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2FtcGxl
PiBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpIGZpbmFsOworI2VuZGlmCiBw
cml2YXRlOgogICAgIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2NvYShHUFVQcm9jZXNz
Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcywgUmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIgcmVuZGVyaW5nQmFja2VuZCkKICAgICAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5KGdwdVByb2Nlc3NDb25uZWN0aW9uLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdCYWNrZW5kKQpA
QCAtMTEwLDYgKzExNCwyMCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5OwogfTsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCitSZWZQ
dHI8V2ViQ29yZTo6TWVkaWFTYW1wbGU+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlDb2Nv
YTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKQoreworICAgIGlmICghbV9k
aXNwbGF5QnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHJlbW90ZSBNZWRpYVNhbXBsZS4KKyAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJ
T1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQobV9kaXNwbGF5QnVmZmVyLmNvcHlTZW5kUmln
aHQoKSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOworICAgIGF1dG8g
cGl4ZWxCdWZmZXIgPSBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyKHN1cmZhY2UtPnN1cmZh
Y2UoKSk7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlSW1hZ2VTYW1wbGUo
V1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCBXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OlZpZGVv
Um90YXRpb246OlVwc2lkZURvd24sIHRydWUpOworfQorI2VuZGlmCisKIHZvaWQgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUNvY29hOjpwcmVwYXJlRm9yRGlzcGxheSgpCiB7CiAgICAgaWYg
KGlzQ29udGV4dExvc3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjQyNTAyNjE1ZGEyNzJiM2JmNDZjZjQ2NDk2MWI3ZjhlYjJh
MWYxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0K
LSNpbmNsdWRlICJPYmplY3RJZGVudGlmaWVyUmVmZXJlbmNlVHJhY2tlci5oIgotI2luY2x1ZGUg
PHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVtIFJl
bW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyVHlwZSB7IH07Ci11c2luZyBSZW1vdGVWaWRlb0ZyYW1l
SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXJU
eXBlPjsKLXVzaW5nIFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlID0gT2JqZWN0SWRlbnRp
ZmllclJlYWRSZWZlcmVuY2U8UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXI+OwotdXNpbmcgUmVt
b3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlID0gT2JqZWN0SWRlbnRpZmllcldyaXRlUmVmZXJl
bmNlPFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyPjsKLXVzaW5nIFJlbW90ZVZpZGVvRnJhbWVS
ZWZlcmVuY2UgPSBPYmplY3RJZGVudGlmaWVyUmVmZXJlbmNlPFJlbW90ZVZpZGVvRnJhbWVJZGVu
dGlmaWVyPjsKLXVzaW5nIFJlbW90ZVZpZGVvRnJhbWVSZWZlcmVuY2VUcmFja2VyID0gT2JqZWN0
SWRlbnRpZmllclJlZmVyZW5jZVRyYWNrZXI8UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXI+Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhMDI2ZjFhNGQ2NDVmZWNjMmE2MWQ0MDQw
YWFhN2I0MWQ1MDUxODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
UHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTY5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCi0K
LSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0jaW5jbHVk
ZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHlN
ZXNzYWdlcy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUmVmUHRyPFJlbW90ZVZpZGVvRnJh
bWVQcm94eT4gUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24mIGdwdVByb2Nlc3NDb25uZWN0aW9uKQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVt
b3RlVmlkZW9GcmFtZVByb3h5KGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVWaWRlb0ZyYW1l
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkpOwotfQotCi1SZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlBy
b3BlcnRpZXMgUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojpwcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6
Ok1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkKLXsKLSAgICByZXR1cm4gewotICAgICAgICBtZWRp
YVNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCksCi0gICAgICAgIG1lZGlhU2FtcGxlLnZpZGVvTWly
cm9yZWQoKSwKLSAgICAgICAgbWVkaWFTYW1wbGUudmlkZW9Sb3RhdGlvbigpCi0gICAgfTsKLX0K
LQotUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHkoR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBSZW1vdGVWaWRlb0ZyYW1lSWRlbnRp
ZmllciBpZGVudGlmaWVyKQotICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbigmZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24pCi0gICAgLCBtX3JlZmVyZW5jZVRyYWNrZXIoaWRlbnRpZmllcikKLXsKLSAg
ICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5hZGRDbGllbnQoKnRoaXMpOwotICAgIG1fZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24tPm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGlk
ZW50aWZpZXIudG9VSW50NjQoKSwgKnRoaXMpOwotfQotCi1SZW1vdGVWaWRlb0ZyYW1lUHJveHk6
OlJlbW90ZVZpZGVvRnJhbWVQcm94eSgpCi0gICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG51
bGxwdHIpCi0gICAgLCBtX3JlZmVyZW5jZVRyYWNrZXIoUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZp
ZXI6OmdlbmVyYXRlKCkpCi17Ci19Ci0KLVJlbW90ZVZpZGVvRnJhbWVQcm94eTo6flJlbW90ZVZp
ZGVvRnJhbWVQcm94eSgpCi17Ci0gICAgZGlzY29ubmVjdEdQVVByb2Nlc3NJZk5lZWRlZCgpOwot
fQotCi1SZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6Omlk
ZW50aWZpZXIoKSBjb25zdAotewotICAgIHJldHVybiBtX3JlZmVyZW5jZVRyYWNrZXIuaWRlbnRp
ZmllcigpOwotfQotCi1SZW1vdGVWaWRlb0ZyYW1lV3JpdGVSZWZlcmVuY2UgUmVtb3RlVmlkZW9G
cmFtZVByb3h5Ojp3cml0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVmZXJlbmNlVHJhY2tl
ci53cml0ZSgpOwotfQotCi1SZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSBSZW1vdGVWaWRl
b0ZyYW1lUHJveHk6OnJlYWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3JlZmVyZW5jZVRyYWNr
ZXIucmVhZCgpOwotfQotCi1NZWRpYVRpbWUgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpwcmVzZW50
YXRpb25UaW1lKCkgY29uc3QKLXsKLSAgICAodm9pZCkgd2FpdEZvcldhc0luaXRpYWxpemVkKCk7
Ci0gICAgcmV0dXJuIG1fcHJlc2VudGF0aW9uVGltZTsKLX0KLQotV2ViQ29yZTo6UGxhdGZvcm1T
YW1wbGUgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIHsgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94
eVR5cGUsIHsgfSB9OwotfQotCi1NZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBSZW1vdGVWaWRl
b0ZyYW1lUHJveHk6OnZpZGVvUm90YXRpb24oKSBjb25zdAotewotICAgICh2b2lkKSB3YWl0Rm9y
V2FzSW5pdGlhbGl6ZWQoKTsKLSAgICByZXR1cm4gbV92aWRlb1JvdGF0aW9uOwotfQotCi1ib29s
IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9NaXJyb3JlZCgpIGNvbnN0Ci17Ci0gICAgKHZv
aWQpIHdhaXRGb3JXYXNJbml0aWFsaXplZCgpOwotICAgIHJldHVybiBtX3ZpZGVvSXNNaXJyb3Jl
ZDsKLX0KLQotdWludDMyX3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp2aWRlb1BpeGVsRm9ybWF0
KCkgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIGZyb20gdGhlIGJhc2UgY2xhc3MuCi0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWJvb2wgUmVtb3Rl
VmlkZW9GcmFtZVByb3h5OjpoYW5kbGVNZXNzYWdlVG9SZW1vdmVkRGVzdGluYXRpb24oSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIC8vIFNraXAgbWVzc2Fn
ZXMgaW50ZW5kZWQgZm9yIGFscmVhZHkgcmVtb3ZlZCBtZXNzYWdlUmVjZWl2ZXJNYXAoKSBkZXN0
aW5hdGlvbnMuCi0gICAgLy8gVGhlc2UgYXJlIGJ1c2luZXNzIGFzIHVzdWFsLiBUaGVzZSBjYW4g
aGFwcGVuIGZvciBleGFtcGxlIGJ5OgotICAgIC8vICAtIFRoZSBvYmplY3QgaXMgY3JlYXRlZCBh
bmQgaW1tZWRpYXRlbHkgZGVzdHJveWVkLCBiZWZvcmUgV2FzSW5pdGlhbGl6ZWQgd2FzIGhhbmRs
ZWQuCi0gICAgQVNTRVJUKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3Rl
VmlkZW9GcmFtZVByb3h5OjpXYXNJbml0aWFsaXplZDo6bmFtZSgpKTsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQotc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IFJl
bW90ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9GcmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLX0KLQotdm9pZCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmRpc2Nvbm5lY3RH
UFVQcm9jZXNzSWZOZWVkZWQoKSBjb25zdAotewotICAgIGlmIChhdXRvIGdwdVByb2Nlc3NDb25u
ZWN0aW9uID0gc3RkOjpleGNoYW5nZShtX2dwdVByb2Nlc3NDb25uZWN0aW9uLCBudWxscHRyKSkg
ewotICAgICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKLSAg
ICAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKLSAgICAgICAgZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcDo6UmVsZWFzZVZpZGVvRnJhbWUod3JpdGUoKSksIDAsIElQQzo6U2VuZE9wdGlv
bjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKLSAgICB9Ci19
Ci0KLWJvb2wgUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp3YWl0Rm9yV2FzSW5pdGlhbGl6ZWQoKSBj
b25zdAotewotICAgIGlmIChtX3dhc0luaXRpYWxpemVkKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICBpZiAobV9ncHVQcm9jZXNzQ29ubmVjdGlvbikgewotICAgICAgICBpZiAobV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5
PE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6Oldhc0luaXRpYWxpemVkPihpZGVudGlm
aWVyKCkudG9VSW50NjQoKSwgZGVmYXVsdFNlbmRUaW1lb3V0KSkKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICBkaXNjb25uZWN0R1BVUHJvY2Vzc0lmTmVlZGVkKCk7Ci0gICAgfQot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmdwdVBy
b2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQotewotICAgIGF1
dG8gZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBzdGQ6OmV4Y2hhbmdlKG1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24sIG51bGxwdHIpOwotICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uLT5yZW1vdmVDbGllbnQo
KnRoaXMpOwotICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uLT5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5y
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSk7Ci19Ci0KLXZvaWQg
UmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp3YXNJbml0aWFsaXplZChzdGQ6Om9wdGlvbmFsPFByb3Bl
cnRpZXM+JiYgcHJvcGVydGllcykKLXsKLSAgICBtX3dhc0luaXRpYWxpemVkID0gdHJ1ZTsKLSAg
ICBpZiAoIXByb3BlcnRpZXMpCi0gICAgICAgIHJldHVybjsKLSAgICAvLyBGSVhNRTogV2hlbiBz
b3VyY2UgZmFpbHMgdG8gcHJvZHVjZSBhIHNhbXBsZSBkdWUgdG8gc29tZSBlcnJvciwgdGhlIHBy
b3BlcnRpZXMgYXJlIGRpc2VuZ2FnZWQuCi0gICAgLy8gV2Ugc2hvdWxkIHBlcmhhcHMgY2hlY2sg
dGhpcyBhdCB0aGUgc3VibWl0IHRpbWUuCi0gICAgbV9wcmVzZW50YXRpb25UaW1lID0gcHJvcGVy
dGllcy0+cHJlc2VudGF0aW9uVGltZTsKLSAgICBtX3ZpZGVvSXNNaXJyb3JlZCA9IHByb3BlcnRp
ZXMtPnZpZGVvSXNNaXJyb3JlZDsKLSAgICBtX3ZpZGVvUm90YXRpb24gPSBwcm9wZXJ0aWVzLT52
aWRlb1JvdGF0aW9uOwotfQotCi19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTVlYWFmNTVkYzgzOTIxNWYwNWNiNjZhZGE0MjMxZDY0
MzBiNmJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgK
KysrIC9kZXYvbnVsbApAQCAtMSwxMjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAy
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0j
aW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKLSNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvVmlkZW9GcmFtZS5oPgotCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rp
b247Ci1jbGFzcyBEZWNvZGVyOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgR1BV
UHJvY2Vzc0Nvbm5lY3Rpb247Ci0KLWNsYXNzIFJlbW90ZVZpZGVvRnJhbWVQcm94eSBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpWaWRlb0ZyYW1lLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVy
LCBwcml2YXRlIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQgewotICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZVZpZGVvRnJhbWVQ
cm94eSk7Ci1wdWJsaWM6Ci0gICAgLy8gQ3JlYXRlcyBhIHByb21pc2Ugb2YgYSBNZWRpYVNhbXBs
ZSB0aGF0IGV4aXN0cyBpbiBHUFUgcHJvY2Vzcy4gVGhlIG9iamVjdCBjYW4gYmUgdXNlZCBhcyBv
dXQgcGFyYW1ldGVyIG9mIHRoZSBjcmVhdGlvbiBtZXNzYWdlLgotICAgIHN0YXRpYyBSZWZQdHI8
UmVtb3RlVmlkZW9GcmFtZVByb3h5PiBjcmVhdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKTsKLQot
ICAgIHN0cnVjdCBQcm9wZXJ0aWVzIHsKLSAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRp
bWU7Ci0gICAgICAgIGJvb2wgdmlkZW9Jc01pcnJvcmVkIHsgZmFsc2UgfTsKLSAgICAgICAgVmlk
ZW9Sb3RhdGlvbiB2aWRlb1JvdGF0aW9uIHsgVmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwotCi0gICAg
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UHJvcGVydGllcz4gZGVjb2RlKERlY29kZXImKTsKLSAgICB9OwotCi0gICAgc3RhdGljIFBy
b3BlcnRpZXMgcHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYpOwotCi0gICAg
flJlbW90ZVZpZGVvRnJhbWVQcm94eSgpIGZpbmFsOwotCi0gICAgUmVtb3RlVmlkZW9GcmFtZUlk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0OwotICAgIFJlbW90ZVZpZGVvRnJhbWVXcml0ZVJl
ZmVyZW5jZSB3cml0ZSgpIGNvbnN0OwotICAgIFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNl
IHJlYWQoKSBjb25zdDsKLQotICAgIC8vIFdlYkNvcmU6OlZpZGVvRnJhbWUgb3ZlcnJpZGVzLgot
ICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lKCkgY29uc3QgZmluYWw7Ci0gICAgVmlkZW9S
b3RhdGlvbiB2aWRlb1JvdGF0aW9uKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCB2aWRlb01pcnJv
cmVkKCkgY29uc3QgZmluYWw7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBs
ZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWUoKSBjb25zdCBmaW5hbDsKLSAgICAvLyBGSVhNRTogV2hl
biBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZSwgdGhlc2Ugd2lsbCBub3QgYmUgbmVlZGVk
LgotICAgIFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgY29uc3QgZmlu
YWw7Ci0gICAgdWludDMyX3QgdmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0IGZpbmFsOwotCi0gICAg
c3RhdGljIGJvb2wgaGFuZGxlTWVzc2FnZVRvUmVtb3ZlZERlc3RpbmF0aW9uKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpOwotcHJpdmF0ZToKLSAgICBSZW1vdGVWaWRlb0ZyYW1lUHJv
eHkoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllcik7Ci0g
ICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5KCk7Ci0gICAgdm9pZCBkaXNjb25uZWN0R1BVUHJvY2Vz
c0lmTmVlZGVkKCkgY29uc3Q7Ci0gICAgYm9vbCB3YWl0Rm9yV2FzSW5pdGlhbGl6ZWQoKSBjb25z
dCBXQVJOX1VOVVNFRF9SRVRVUk47Ci0KLSAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciBvdmVy
cmlkZXMuCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKLQotICAgIC8vIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQg
b3ZlcnJpZGVzLgotICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9j
ZXNzQ29ubmVjdGlvbiYpIGZpbmFsOwotCi0gICAgLy8gTWVzc2FnZXMuCi0gICAgdm9pZCB3YXNJ
bml0aWFsaXplZChzdGQ6Om9wdGlvbmFsPFByb3BlcnRpZXM+JiYpOwotICAgIHN0YXRpYyBpbmxp
bmUgU2Vjb25kcyBkZWZhdWx0U2VuZFRpbWVvdXQgPSAzMF9zOwotCi0gICAgbXV0YWJsZSBHUFVQ
cm9jZXNzQ29ubmVjdGlvbiogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbiB7IG51bGxwdHIgfTsKLSAg
ICBSZW1vdGVWaWRlb0ZyYW1lUmVmZXJlbmNlVHJhY2tlciBtX3JlZmVyZW5jZVRyYWNrZXI7Ci0g
ICAgbXV0YWJsZSBib29sIG1fd2FzSW5pdGlhbGl6ZWQgeyBmYWxzZSB9OwotICAgIE1lZGlhVGlt
ZSBtX3ByZXNlbnRhdGlvblRpbWU7Ci0gICAgYm9vbCBtX3ZpZGVvSXNNaXJyb3JlZCB7IGZhbHNl
IH07Ci0gICAgVmlkZW9Sb3RhdGlvbiBtX3ZpZGVvUm90YXRpb24geyBWaWRlb1JvdGF0aW9uOjpO
b25lIH07Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIFJlbW90ZVZpZGVv
RnJhbWVQcm94eTo6UHJvcGVydGllczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17
Ci0gICAgZW5jb2RlciA8PCBwcmVzZW50YXRpb25UaW1lCi0gICAgICAgIDw8IHZpZGVvSXNNaXJy
b3JlZAotICAgICAgICA8PCB2aWRlb1JvdGF0aW9uOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcz4g
UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhVGltZT4gcHJlc2VudGF0aW9uVGltZTsKLSAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHZpZGVvSXNNaXJyb3JlZDsKLSAgICBzdGQ6Om9wdGlvbmFs
PFZpZGVvUm90YXRpb24+IHZpZGVvUm90YXRpb247Ci0gICAgZGVjb2RlciA+PiBwcmVzZW50YXRp
b25UaW1lCi0gICAgICAgID4+IHZpZGVvSXNNaXJyb3JlZAotICAgICAgICA+PiB2aWRlb1JvdGF0
aW9uOwotICAgIGlmICghZGVjb2Rlci5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0gICAgcmV0dXJuIFByb3BlcnRpZXMgeyBXVEZNb3ZlKCpwcmVzZW50YXRpb25UaW1l
KSwgKnZpZGVvSXNNaXJyb3JlZCwgKnZpZGVvUm90YXRpb24gfTsKLX0KLQotfQotU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19CRUdJTihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eSkKLSAgICBz
dGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxl
KSB7IHJldHVybiBtZWRpYVNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gV2ViQ29yZTo6
UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5cGU7IH0KLVNQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfRU5EKCkKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6
VmlkZW9GcmFtZSkKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFT
YW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBtZWRpYVNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgp
LnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5
cGU7IH0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZp
ZGVvRnJhbWVQcm94eS5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
N2I5MzAwNjRhNjFjOGU2M2U1NmMyZTM2NjY2YzdjNTk3NDAyMTVlNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxs
CkBAIC0xLDMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi1tZXNzYWdlcyAtPiBSZW1vdGVWaWRlb0ZyYW1lUHJv
eHkgTm90UmVmQ291bnRlZCB7Ci0gICAgV2FzSW5pdGlhbGl6ZWQoc3RkOjpvcHRpb25hbDxXZWJL
aXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcz4gcHJvcGVydGllcykKLX0KLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCA2YjYyZGFkYzcyOTIx
ZmIyNWMzZDhjODliNzUwMzljYjc3N2VjODVhLi5lNWVmNDZlNjA4MjM5NDYyYWE0MDQ4Y2I3ZDNm
YTAzNDJlOThiNTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTM0LDcg
KzM0LDYgQEAKICNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKICNp
bmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtNTAsMTMg
KzQ5LDEyIEBAIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKFNhbXBsCiAKIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXImIG1hbmFnZXIsIFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50
JiBjbGllbnQpCiAgICAgOiBXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoY2xpZW50
KQotICAgICwgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbigmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQot
ICAgICwgbV9jb25uZWN0aW9uKG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKSkK
KyAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKICAgICAsIG1faWRlbnRpZmllcihTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewogICAgIG1hbmFnZXIu
YWRkTGF5ZXIoKnRoaXMpOwotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmFkZENsaWVudCgq
dGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5hZGRDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6aW5pdGlhbGl6ZShib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKQEAgLTgwLDcgKzc4LDcgQEAgdm9p
ZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldExvZ0lkZW50aWZpZXIoU3RyaW5nJiYgbG9n
SWRlbnRpZmllcikKIAogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKCkKIHsKLSAgICBkaXNjb25uZWN0R1BVUHJvY2Vzc0Nvbm5lY3Rpb25JZk5lZWRl
ZCgpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCkucmVtb3ZlQ2xpZW50KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OlJlbGVhc2VMYXllciB7
IG1faWRlbnRpZmllciB9LCAwKTsKICAgICBpZiAobV9tYW5hZ2VyKQogICAgICAgICBtX21hbmFn
ZXItPnJlbW92ZUxheWVyKCp0aGlzKTsKQEAgLTE0MiwxMyArMTQwLDYgQEAgdm9pZCBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsK
ICAgICBpZiAobV9wYXVzZWQpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIW1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoaXM8UmVtb3RlVmlkZW9GcmFt
ZVByb3h5PihzYW1wbGUpKSB7Ci0gICAgICAgIGF1dG8mIHJlbW90ZVNhbXBsZSA9IGRvd25jYXN0
PFJlbW90ZVZpZGVvRnJhbWVQcm94eT4oc2FtcGxlKTsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkVucXVldWVTYW1w
bGUgeyByZW1vdGVTYW1wbGUucmVhZCgpIH0sIG1faWRlbnRpZmllcik7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9CiAKICAgICBhdXRvIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpj
cmVhdGUoc2FtcGxlLCBSZW1vdGVWaWRlb1NhbXBsZTo6U2hvdWxkQ2hlY2tGb3JJT1N1cmZhY2U6
Ok5vKTsKICAgICBpZiAoIXJlbW90ZVNhbXBsZS0+c3VyZmFjZSgpKSB7CkBAIC0xNTcsNyArMTQ4
LDcgQEAgdm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUoTWVkaWFT
YW1wbGUmIHNhbXBsZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6RW5x
dWV1ZVNhbXBsZUNWIHsgKnJlbW90ZVNhbXBsZSB9LCBtX2lkZW50aWZpZXIpOworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpF
bnF1ZXVlU2FtcGxlIHsgKnJlbW90ZVNhbXBsZSB9LCBtX2lkZW50aWZpZXIpOwogfQogCiB2b2lk
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y2xlYXJFbnF1ZXVlZFNhbXBsZXMoKQpAQCAtMTgw
LDE4ICsxNzEsMTEgQEAgdm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldERpZEZhaWwo
Ym9vbCB2YWx1ZSkKIHZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpncHVQcm9jZXNzQ29u
bmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikKIHsKICAgICBtX3NoYXJlZFZp
ZGVvRnJhbWVXcml0ZXIuZGlzYWJsZSgpOwotICAgIGRpc2Nvbm5lY3RHUFVQcm9jZXNzQ29ubmVj
dGlvbklmTmVlZGVkKCk7CiAgICAgbV9kaWRGYWlsID0gdHJ1ZTsKICAgICBpZiAobV9jbGllbnQp
CiAgICAgICAgIG1fY2xpZW50LT5zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRGYWls
KCk7CiB9CiAKLXZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpkaXNjb25uZWN0R1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25JZk5lZWRlZCgpCi17Ci0gICAgaWYgKGF1dG8qIGdwdVByb2Nlc3NDb25u
ZWN0aW9uID0gc3RkOjpleGNoYW5nZShtX2dwdVByb2Nlc3NDb25uZWN0aW9uLCBudWxscHRyKSkK
LSAgICAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhpcyk7Ci19Ci0K
IH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IDA0NDRlY2YyYjg2
Mjc5NDQzMjExMTNlNjlkMjZiMTJiMjU1YmZhYzAuLjU2MzY5YWRkZjBhYmYzNDZiMGQyMWM4NTA2
ZDY5Y2IzZDNiNDBlMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC01Miw3ICs1
Miw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIo
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYsIFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6Q2xpZW50Jik7Ci0gICAgdm9pZCBkaXNjb25uZWN0R1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25JZk5lZWRlZCgpOwogCiAgICAgLy8gV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyCiAgICAgdm9pZCBpbml0aWFsaXplKGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50
U2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CkBAIC03Nyw3ICs3
Niw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXREaWRGYWlsKGJvb2wpOwogICAgIGJvb2wgY29w
eVNoYXJlZFZpZGVvRnJhbWUoQ1ZQaXhlbEJ1ZmZlclJlZik7CiAKLSAgICBHUFVQcm9jZXNzQ29u
bmVjdGlvbiogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKICAgICBXZWFrUHRyPFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXI+IG1fbWFuYWdlcjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CiAgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBt
X2lkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggMGU5NDQ0ZmY1OGU2YWMwNDE3YTRkZWIzMDU0MzI4NDU2ZGI4MmJiZS4uNjdhNjdh
YTgzMTM0MjU1YTJiMGFmNjNiYjQzY2YyMGFiN2Y2MWQ4MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAyLTEw
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJl
dmlld2VkLCByZXZlcnRpbmcgcjI4OTUyNS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNjQ2NworCisgICAgICAgIEludHJvZHVjZWQgbGF5b3V0IHRl
c3QgY3Jhc2hlcworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiSW50
cm9kdWNlIGEgUmVtb3RlTWVkaWFTYW1wbGVQcm94eSB0byByZXByZXNlbnQgY2FwdHVyZWQKKyAg
ICAgICAgdmlkZW8gZnJhbWVzIHVzZWQgaW4gTWVkaWEgU3RyZWFtcyBhbmQgcHJlc2VudCBpbiBH
UFVQIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2
MDk5CisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyODk1MjUKKwogMjAyMi0w
Mi0xMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgUGVybWl0
IHNpbXVsdGFuZW91cyBBcHBsZSBQYXkgYW5kIHNjcmlwdCBpbmplY3Rpb24KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvZ2VuZXJhdGUtZ3B1cC13ZWJnbCBiL1Rvb2xzL1NjcmlwdHMvZ2VuZXJh
dGUtZ3B1cC13ZWJnbAppbmRleCAzMzI1NzNjOWRiMmEyZjA2MDE1ZGI5Y2RlNWJlMjI5Y2EzNDk1
MDY4Li4zMGY3ZmQ4MmIzMzFhMDZmNGM0ZTBjYjRlM2I4OWY3NWZmZTZiMTgxIDEwMDc1NQotLS0g
YS9Ub29scy9TY3JpcHRzL2dlbmVyYXRlLWdwdXAtd2ViZ2wKKysrIGIvVG9vbHMvU2NyaXB0cy9n
ZW5lcmF0ZS1ncHVwLXdlYmdsCkBAIC05NCwxMCArOTQsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7ewogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIHZvaWQgUHJlcGFyZUZvckRpc3BsYXkoKSAtPiAoTWFjaFNlbmRSaWdodCBkaXNw
bGF5QnVmZmVyKSBTeW5jaHJvbm91cyBOb3RTdHJlYW1FbmNvZGFibGVSZXBseQogI2VuZGlmCi0j
aWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQotICAgIHZvaWQgUHJlcGFyZUZvckRpc3BsYXkoKSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldDQ29udGVudEJ1ZmZlcklkZW50aWZpZXI+IGNvbnRl
bnRCdWZmZXIpIFN5bmNocm9ub3VzCi0jZW5kaWYKLSNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFV
U0UoR1JBUEhJQ1NfTEFZRVJfV0MpCisjaWYgIVBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgUHJl
cGFyZUZvckRpc3BsYXkoKSAtPiAoKSBTeW5jaHJvbm91cwogI2VuZGlmCiAgICAgdm9pZCBFbnN1
cmVFeHRlbnNpb25FbmFibGVkKFN0cmluZyBleHRlbnNpb24pCkBAIC0xMDcsOSArMTA0LDYgQEAg
bWVzc2FnZXMgLT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgTm90UmVmQ291bnRlZCBTdHJlYW0g
e3sKICAgICB2b2lkIFBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcikgLT4gKCkgU3luY2hyb25vdXMKICAg
ICB2b2lkIFBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXIpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgdm9p
ZCBDb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRl
bnRpZmllciwgdWludDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVs
LCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBl
LCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIC0+IChib29sIHN1Y2Nlc3MpIFN5
bmNocm9ub3VzCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICB2b2lkIFBhaW50Q29tcG9z
aXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVm
ZXJlbmNlIHJlc3VsdCkKLSNlbmRpZgogICAgIHZvaWQgU2ltdWxhdGVFdmVudEZvclRlc3Rpbmco
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZyBldmVu
dCkKIHt9CiB9fQpAQCAtMjM4LDcgKzIzMiw3IEBAIGRlZiBjcmVhdGVfY3BwX3R5cGVfY29udGFp
bmVyKHR5cGVfbmFtZSA6IHN0cikgLT4gT3B0aW9uYWxbY3BwX3R5cGVfY29udGFpbmVyXToKICAg
ICAgICAgcmV0dXJuIE5vbmUKICAgICBjb250YWluZXJfbmFtZSA9IG1bMV0KICAgICAjIEFsbCB0
ZW1wbGF0ZXMgYXJlIGNvbnRhaW5lcnMgZXhjZXB0IHRoZXNlIGJlbG93LgotICAgIGlmIGNvbnRh
aW5lcl9uYW1lIGluIFsnUmVmUHRyJywgJ1JlZicsICdSZXRhaW5QdHInLCAnc3RkOjpvcHRpb25h
bCddOgorICAgIGlmIGNvbnRhaW5lcl9uYW1lIGluIFsnUmVmUHRyJywgJ1JlZiddOgogICAgICAg
ICByZXR1cm4gTm9uZQogICAgIHRlbXBsYXRlcyA9IG1bMl0KICAgICBhcml0eSA9IE5vbmUKQEAg
LTY0NiwxMyArNjQwLDcgQEAgY2xhc3Mgd2Via2l0X2lwY19jcHBfcHJveHlfaW1wbChvYmplY3Qp
OgogICAgICAgICAgICAgICAgIHdlYmtpdF9pcGNfdHlwZSA9IHdlYmtpdF9pcGNfdHlwZXNbby50
eXBlXQogICAgICAgICAgICAgICAgIGFzc2VydChpc2luc3RhbmNlKHdlYmtpdF9pcGNfdHlwZSwg
Y3BwX3R5cGVfY29udGFpbmVyKSkKICAgICAgICAgICAgICAgICB2ID0gY3BwX2FyZyh3ZWJraXRf
aXBjX3R5cGUsIG8ubmFtZSArICJSZXBseSIpCi0gICAgICAgICAgICAgICAgaWYgby50eXBlLmlz
X2R5bmFtaWNfc3BhbigpOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnByZV9jYWxsX3N0bXRz
ICs9IFtmIntzdHIodi50eXBlKX0ge3N0cih2Lm5hbWUpfTsiXQotICAgICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgICAgICMgRklYTUU6IExpa2VseSB0aGlzIGNyZWF0ZXMgYSBk
YW5nbGluZyByZWZlcmVuY2Ugc3BhbjxpbnQsIDI+IGFSZXBseSA9IHsgeyB9IH07LgotICAgICAg
ICAgICAgICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzU4ODkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmVfY2FsbF9zdG10cyArPSBbZiJ7c3Ry
KHYudHlwZSl9IHtzdHIodi5uYW1lKX0ge3sge3sgfX0gfX07Il0KLQorICAgICAgICAgICAgICAg
IHNlbGYucHJlX2NhbGxfc3RtdHMgKz0gW2Yie3N0cih2LnR5cGUpfSB7c3RyKHYubmFtZSl9OyJd
CiAgICAgICAgICAgICAgICAgc2VsZi5vdXRfZXhwcnMgKz0gW2NwcF9leHByKHYudHlwZSwgdi5u
YW1lKV0KICAgICAgICAgICAgICAgICBpZiBvLnR5cGUuaXNfZHluYW1pY19zcGFuKCk6CiAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuaW5fZXhwcnMgKz0gW2NwcF9leHByKGdldF9jcHBfdHlwZSgi
c2l6ZV90IiksIGYie28ubmFtZX0uYnVmU2l6ZSIpXQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1NhbXBsZU1hcC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvU2FtcGxlTWFwLmNwcAppbmRleCBjNDVjNjdhMzE2NmJmZmI5ODc3YmMw
ZDgzNGZlZjg0NGE0ODY2NTE5Li5kMTQ2Y2VjNGYyZWM0Y2Y2OTEyZDdmMDQ4ZDI4ODE1N2FkZmRj
MWI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2FtcGxl
TWFwLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2FtcGxlTWFw
LmNwcApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgTWVkaWFUaW1lIGRlY29kZVRpbWUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RlY29kZVRpbWU7IH0KICAgICBNZWRpYVRpbWUgZHVy
YXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CiAgICAgQXRvbVN0cmlu
ZyB0cmFja0lEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFja0lEOyB9CisgICAgdm9pZCBz
ZXRUcmFja0lEKGNvbnN0IFN0cmluZyYgdHJhY2tJRCkgZmluYWwgeyBtX3RyYWNrSUQgPSB0cmFj
a0lEOyB9CiAgICAgc2l6ZV90IHNpemVJbkJ5dGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9z
aXplSW5CeXRlczsgfQogICAgIEZsb2F0U2l6ZSBwcmVzZW50YXRpb25TaXplKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9wcmVzZW50YXRpb25TaXplOyB9CiAgICAgdm9pZCBvZmZzZXRUaW1lc3Rh
bXBzQnkoY29uc3QgTWVkaWFUaW1lJiBvZmZzZXQpIGZpbmFsIHsgbV9wcmVzZW50YXRpb25UaW1l
ICs9IG9mZnNldDsgbV9kZWNvZGVUaW1lICs9IG9mZnNldDsgfQpAQCAtNzAsNyArNzEsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBjcmVhdGUobV9wcmVzZW50YXRpb25UaW1lLCBtX2RlY29k
ZVRpbWUsIG1fZHVyYXRpb24sIHN0YXRpY19jYXN0PFNhbXBsZUZsYWdzPihtX2ZsYWdzIHwgSXNO
b25EaXNwbGF5aW5nKSk7CiAgICAgfQogICAgIFNhbXBsZUZsYWdzIGZsYWdzKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9mbGFnczsgfQotICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4geyBQbGF0Zm9ybVNhbXBsZTo6Tm9uZSwgeyBudWxscHRy
IH0gfTsgfQorICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgZmluYWwgeyByZXR1
cm4geyBQbGF0Zm9ybVNhbXBsZTo6Tm9uZSwge251bGxwdHJ9fTsgfQogICAgIHN0ZDo6b3B0aW9u
YWw8Qnl0ZVJhbmdlPiBieXRlUmFuZ2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzdGQ6Om51bGxv
cHQ7IH0KIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsIHsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>