<?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>136016</bug_id>
          
          <creation_ts>2014-08-16 00:04:56 -0700</creation_ts>
          <short_desc>[EME][Mac] Refactor CDMPrivateMediaSourceAVFObjC to allow sessions to be created without being attached to an AVStreamDataParser.</short_desc>
          <delta_ts>2015-01-26 08:49:18 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>ltilve</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1029586</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-16 00:04:56 -0700</bug_when>
    <thetext>[EME][Mac] Refactor CDMPrivateMediaSourceAVFObjC to allow sessions to be created without being attached to an AVStreamDataParser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029587</commentid>
    <comment_count>1</comment_count>
      <attachid>236704</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-16 00:06:45 -0700</bug_when>
    <thetext>Created attachment 236704
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029829</commentid>
    <comment_count>2</comment_count>
      <attachid>236776</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-18 12:25:27 -0700</bug_when>
    <thetext>Created attachment 236776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029836</commentid>
    <comment_count>3</comment_count>
      <attachid>236776</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-08-18 13:16:36 -0700</bug_when>
    <thetext>Comment on attachment 236776
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:61
&gt; +        return MediaPlayerPrivateMediaSourceAVFObjC::supportsType(parameters);

Nit: MediaPlayerPrivateMediaSourceAVFObjC::supportsType returns MediaPlayer::SupportsType, not bool.

&gt; Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:73
&gt; +    return MediaPlayerPrivateMediaSourceAVFObjC::supportsType(parameters);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030089</commentid>
    <comment_count>4</comment_count>
      <attachid>236821</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-19 12:51:49 -0700</bug_when>
    <thetext>Created attachment 236821
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032804</commentid>
    <comment_count>5</comment_count>
      <attachid>236821</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-09-02 17:53:58 -0700</bug_when>
    <thetext>Comment on attachment 236821
Patch for landing

EFL build failures are due to an internal compiler error. Marking as cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032812</commentid>
    <comment_count>6</comment_count>
      <attachid>236821</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-02 18:28:43 -0700</bug_when>
    <thetext>Comment on attachment 236821
Patch for landing

Clearing flags on attachment: 236821

Committed r173197: &lt;http://trac.webkit.org/changeset/173197&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056094</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-12-16 13:27:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/19269025&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236704</attachid>
            <date>2014-08-16 00:06:45 -0700</date>
            <delta_ts>2014-08-18 12:25:24 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-136016-20140816000635.patch</filename>
            <type>text/plain</type>
            <size>38364</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETS5jcHAKaW5kZXggOTY3YzIzZWQwZDRlNDc2MmYyMTA1MGEyZmJhN2I2
NDJmNmU4MGY2MS4uODM4YmUwMDllNTdmNmEwNDVlZTE2NDk4ZDI5YmZlNDAwYjJjZTcyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcApAQCAtMzAs
OSArMzAsMTEgQEAKICNpbmNsdWRlICJDRE0uaCIKIAogI2luY2x1ZGUgIkNETVByaXZhdGVNZWRp
YVBsYXllci5oIgorI2luY2x1ZGUgIkNETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCIKICNp
bmNsdWRlICJDRE1TZXNzaW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFLZXlFcnJvci5oIgogI2luY2x1
ZGUgIk1lZGlhS2V5cy5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAg
LTYyLDYgKzY0LDEwIEBAIHN0YXRpYyBWZWN0b3I8Q0RNRmFjdG9yeSo+JiBpbnN0YWxsZWRDRE1G
YWN0b3JpZXMoKQogCiAgICAgICAgIC8vIEZJWE1FOiBpbml0aWFsaXplIHNwZWNpZmljIFVBIENE
TXMuIGh0dHA6Ly93ZWJraXQub3JnL2IvMTA5MzE4LCBodHRwOi8vd2Via2l0Lm9yZy9iLzEwOTMy
MAogICAgICAgICBjZG1zLmdldCgpLmFwcGVuZChuZXcgQ0RNRmFjdG9yeShDRE1Qcml2YXRlTWVk
aWFQbGF5ZXI6OmNyZWF0ZSwgQ0RNUHJpdmF0ZU1lZGlhUGxheWVyOjpzdXBwb3J0c0tleVN5c3Rl
bSwgQ0RNUHJpdmF0ZU1lZGlhUGxheWVyOjpzdXBwb3J0c0tleVN5c3RlbUFuZE1pbWVUeXBlKSk7
CisKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisgICAgICAgIGNk
bXMuZ2V0KCkuYXBwZW5kKG5ldyBDRE1GYWN0b3J5KENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmNyZWF0ZSwgQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNLZXlTeXN0
ZW0sIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzS2V5U3lzdGVtQW5kTWlt
ZVR5cGUpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIHJldHVybiBjZG1zOwpAQCAtMTIwLDcgKzEy
NiwxMCBAQCBib29sIENETTo6c3VwcG9ydHNNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KSBjb25zdAogCiBzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gQ0RNOjpjcmVhdGVTZXNzaW9u
KCkKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5jcmVhdGVTZXNzaW9uKCk7CisgICAgc3RkOjp1
bmlxdWVfcHRyPENETVNlc3Npb24+IHNlc3Npb24gPSBtX3ByaXZhdGUtPmNyZWF0ZVNlc3Npb24o
KTsKKyAgICBpZiAobWVkaWFQbGF5ZXIoKSkKKyAgICAgICAgbWVkaWFQbGF5ZXIoKS0+c2V0Q0RN
U2Vzc2lvbihzZXNzaW9uLmdldCgpKTsKKyAgICByZXR1cm4gc2Vzc2lvbjsKIH0KIAogTWVkaWFQ
bGF5ZXIqIENETTo6bWVkaWFQbGF5ZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKaW5kZXggYjVmNDE0
NmVmZThhM2E4MDI2Y2Q4ZTdmMjAxMzk1MmUzYjk3OWJjMS4uMDQ4YzAxOTA1NWRiZGU2YTkwYmQx
OGYxNmYwNGExMGVjNjU3YjUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCkBAIC01MSw2ICs1MSw3IEBAIHB1
YmxpYzoKICAgICB+TWVkaWFLZXlTZXNzaW9uKCk7CiAKICAgICBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5U3lzdGVtOyB9CisgICAgQ0RNU2Vzc2lvbiogc2Vz
c2lvbigpIHsgcmV0dXJuIG1fc2Vzc2lvbi5nZXQoKTsgfQogICAgIGNvbnN0IFN0cmluZyYgc2Vz
c2lvbklkKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldEVycm9yKE1lZGlhS2V5RXJyb3IqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNw
cAppbmRleCBmM2MyMTJmNTQxZmNkYThhM2U2MzY5MDdjZmNiMTMyNDVkNjQyYTIyLi5mM2UzN2Ix
ZDZkMGIyMmY1NTM4ZGM3YmRhYmMyZWM0YzcyZmNlYWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCkBAIC0xNDQsNyArMTQ0
LDEzIEBAIGJvb2wgTWVkaWFLZXlzOjppc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAKIHZvaWQgTWVkaWFLZXlzOjpzZXRNZWRp
YUVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBpZiAobV9tZWRpYUVs
ZW1lbnQpCisgICAgICAgIG1fbWVkaWFFbGVtZW50LT5wbGF5ZXIoKS0+c2V0Q0RNU2Vzc2lvbihu
dWxscHRyKTsKKwogICAgIG1fbWVkaWFFbGVtZW50ID0gZWxlbWVudDsKKworICAgIGlmIChtX21l
ZGlhRWxlbWVudCAmJiAhbV9zZXNzaW9ucy5pc0VtcHR5KCkpCisgICAgICAgIG1fbWVkaWFFbGVt
ZW50LT5wbGF5ZXIoKS0+c2V0Q0RNU2Vzc2lvbihtX3Nlc3Npb25zLmxhc3QoKS0+c2Vzc2lvbigp
KTsKIH0KIAogTWVkaWFQbGF5ZXIqIE1lZGlhS2V5czo6Y2RtTWVkaWFQbGF5ZXIoY29uc3QgQ0RN
KikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBhMjhlZTFhM2QzMTIxZTA5NWRmOWE5ZTUwNTA3OGRjNGI5NjFhZjdhLi4z
NzRjYTUzODFkYzA1ZDRkNWIyNzhkODc3MWU2Yzc0MWNlMTA5YzU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NjEwLDYgKzU2
MTAsOCBAQAogCQlDRDJGNEEyNDE4RDg5RjcwMDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxpc3Rl
bmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDJG
NEEyMjE4RDg5RjcwMDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyRjRBMjcxOEQ4QTM0
OTAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDJGNEEyNTE4RDhBMzQ5MDA2Mzc0NkQg
LyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcCAqLzsgfTsKIAkJQ0QyRjRBMjgxOEQ4QTM0
OTAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyRjRBMjYxOEQ4QTM0OTAwNjM3NDZEIC8q
IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oICovOyB9OworCQlDRDMxODYyMjE5OUYxRTJBMDAz
MEEwRjcgLyogQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzE4NjIwMTk5RjFFMkEwMDMwQTBGNyAv
KiBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovOyB9OworCQlDRDMxODYyMzE5OUYx
RTJBMDAzMEEwRjcgLyogQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzMTg2MjExOTlGMUUyQTAwMzBB
MEY3IC8qIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLzsgfTsKIAkJQ0QzMzZGNjEx
N0Y5RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDMzNkY1RjE3RjlGNjQ3MDBE
RERDRDAgLyogQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbSAqLzsgfTsKIAkJQ0QzMzZGNjIx
N0Y5RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzM2RjYwMTdGOUY2NDcwMERE
RENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmggKi87IH07CiAJCUNEMzM2RjY0MTdG
QTBBNEQwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzMzZGNjMxN0ZBMEE0RDAwREREQ0QwIC8q
IFZpZGVvVHJhY2tQcml2YXRlQVZGLmggKi87IH07CkBAIC0xMzAzNiw2ICsxMzAzOCw4IEBACiAJ
CUNEMkY0QTIyMThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMkY0QTI1MThEOEEzNDkwMDYzNzQ2RCAvKiBB
dWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0QyRjRBMjYxOEQ4QTM0OTAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdhcmVMaXN0
ZW5lck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb0hhcmR3YXJl
TGlzdGVuZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzMTg2MjAxOTlG
MUUyQTAwMzBBMEY3IC8qIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDMxODYyMTE5OUYxRTJBMDAz
MEEwRjcgLyogQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzJBMTg5MTg0RUI0NkEwMDI5QjFCQiAvKiBtZWRpYUNv
bnRyb2xzaU9TLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gbWVk
aWFDb250cm9sc2lPUy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzMzZGNUYx
N0Y5RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDMzNkY2MDE3RjlGNjQ3MDBERERD
RDAgLyogQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMTYyMSw2ICsyMTYyNSw4IEBACiAJCQkJQ0Q1NEE3NjExODBGOUY3MDAw
QjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8sCiAJCQkJ
Q0QzMzZGNjAxN0Y5RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaCAq
LywKIAkJCQlDRDMzNkY1RjE3RjlGNjQ3MDBERERDRDAgLyogQVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbC5tbSAqLywKKwkJCQlDRDMxODYyMTE5OUYxRTJBMDAzMEEwRjcgLyogQ0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oICovLAorCQkJCUNEMzE4NjIwMTk5RjFFMkEwMDMwQTBGNyAvKiBD
RE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovLAogCQkJCUNEREUwMkVBMThCM0VENkQw
MENGN0ZGMSAvKiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oICovLAogCQkJCUNEREUwMkVC
MThCM0VENkQwMENGN0ZGMSAvKiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbSAqLywKIAkJ
CQlDRERFMDJFRTE4QjU2NEZBMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5oICovLApAQCAtMjQ1NjMsNiArMjQ1NjksNyBAQAogCQkJCUIyNzUzNTcxMEIwNTM4MTQwMDJD
RTY0RiAvKiBJbWFnZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEIzNDgwOTQwRUVGNTBE
NDAwQUMxQjQxIC8qIEltYWdlU291cmNlQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMTE4
MEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBsaWNpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQ0QzMTg2MjMxOTlGMUUyQTAwMzBBMEY3IC8qIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFMTZDNTkzMTdDRkUxNzIwMDg1MkMwNCAvKiBJbmJh
bmRHZW5lcmljVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzk0MTc5MjE2NkU4NTVG
MDA5NDE2QzIgLyogSW5iYW5kVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzk0MTc5
NDE2NkVBMDRFMDA5NDE2QzIgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzQ5OCw2ICsyNzUwNSw3IEBACiAJCQkJODVCQTRDREUwQUE2ODYxQjAwODgwNTJE
IC8qIERPTUhUTUxCdXR0b25FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGOUI2NTcw
QkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxDYW52YXNFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJODVERjJGOEYwQUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhUTUxDb2xsZWN0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQ0QzMTg2MjIxOTlGMUUyQTAwMzBBMEY3IC8qIENETVByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNUMwNDFFNDBGRkNBOTZE
MDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUQzNTlENzkyMTI5Q0EzQzAwMDA2RTVEMiAvKiBET01IVE1MRGV0YWlsc0VsZW1lbnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NUJBNEQwQzBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTERpcmVj
dG9yeUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NETVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NETVNlc3Npb24uaAppbmRleCBmYmI0MzE3ODZiYzQ3ODYzMmE3MWI0MTk2YTFj
YTY4NGIwNGFmZGVlLi44MGE4NWUzNTM4NTYxN2IzZTRiOTcyNTk3MjA3ODkxZmZmZmQzNTNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DRE1TZXNzaW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ0RNU2Vzc2lvbi5oCkBAIC01
MiwxMSArNTIsMTggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZW5kRXJyb3IoTWVkaWFL
ZXlFcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcgc3lzdGVtQ29kZSkgPSAwOwogfTsKIAorZW51bSBD
RE1TZXNzaW9uVHlwZSB7CisgICAgQ0RNU2Vzc2lvblR5cGVVbmtub3duLAorICAgIENETVNlc3Np
b25UeXBlQVZGb3VuZGF0aW9uT2JqQywKKyAgICBDRE1TZXNzaW9uVHlwZU1lZGlhU291cmNlQVZG
T2JqQywKK307CisKIGNsYXNzIENETVNlc3Npb24gewogcHVibGljOgogICAgIENETVNlc3Npb24o
KSB7IH0KICAgICB2aXJ0dWFsIH5DRE1TZXNzaW9uKCkgeyB9CiAKKyAgICB2aXJ0dWFsIENETVNl
c3Npb25UeXBlIHR5cGUoKSB7IHJldHVybiBDRE1TZXNzaW9uVHlwZVVua25vd247IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQqKSA9IDA7CiAgICAgdmlydHVh
bCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXgg
Nzk2YTY1ZjMzMWVjMGUzMWQ4ZTc4MWZlOWE5MDk1Mzc0MmEwZDdlMy4uMTUxZjEzMWMxZGNiNGQ0
ODUzZjY2ZjIwOGEyZTcxMDJmYWZiYWUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNTEwLDYgKzUxMCwxMSBAQCBzdGQ6OnVu
aXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gTWVkaWFQbGF5ZXI6OmNyZWF0ZVNlc3Npb24oY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0pCiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y3JlYXRlU2Vzc2lvbihr
ZXlTeXN0ZW0pOwogfQorCit2b2lkIE1lZGlhUGxheWVyOjpzZXRDRE1TZXNzaW9uKENETVNlc3Np
b24qIHNlc3Npb24pCit7CisgICAgbV9wcml2YXRlLT5zZXRDRE1TZXNzaW9uKHNlc3Npb24pOwor
fQogI2VuZGlmCiAgICAgCiBkb3VibGUgTWVkaWFQbGF5ZXI6OmR1cmF0aW9uKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDFi
Yjg1ZDdkYTg4NTM5ZjM4YjE0MTQ3NjI5MTEwZmJlZDFmMjVmOWYuLmE4YjEyODlkOGI1ODhiYzQ5
NDUxMDRiYzVkN2VjODk2ZWZjNGYzMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMzU5LDYgKzM1OSw3IEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCiAgICAgc3RkOjp1bmlxdWVfcHRyPENETVNlc3Np
b24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOworICAgIHZvaWQgc2V0
Q0RNU2Vzc2lvbihDRE1TZXNzaW9uKik7CiAjZW5kaWYKIAogICAgIGJvb2wgcGF1c2VkKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oCmluZGV4IGMwMDNkYWM4OWQ5MjM5NWJkNjczZWIwYWNmMTVlNDUwYmI2NWY0
N2MuLjcxN2EyNmZhNjY4MmYzYTJlYTg0ODk2M2ZhZTc0MjRmMjdhMzhiMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CkBAIC0yMjEsNiArMjIxLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QV9WMikKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBjcmVhdGVTZXNz
aW9uKGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c2V0Q0RNU2Vzc2lvbihDRE1TZXNzaW9uKikgeyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjgyYzRlMWRhZDNlM2U5YzliMWUyN2JkOTRhNmUwN2FjZTIyYjg0
NTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0wLDAgKzEsNTcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakNfaAor
I2RlZmluZSBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDX2gKKworI2luY2x1ZGUgIkNETVBy
aXZhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDRE07CisKK2NsYXNzIENE
TVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMgOiBwdWJsaWMgQ0RNUHJpdmF0ZUludGVyZmFjZSB7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhDRE0q
IGNkbSkKKyAgICAgICAgOiBtX2NkbShjZG0pCisgICAgeyB9CisgICAgdmlydHVhbCB+Q0RNUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQygpIHsgfQorCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxDRE1Qcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoQ0RNKiBjZG0pIHsgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQz4oY2RtKTsgfQorICAgIHN0YXRp
YyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzS2V5U3lzdGVtQW5kTWltZVR5cGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpOworCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTUlNRVR5
cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbigpIG92ZXJyaWRlOworCisgICAgQ0RN
KiBjZG0oKSBjb25zdCB7IHJldHVybiBtX2NkbTsgfQorCitwcm90ZWN0ZWQ6CisgICAgQ0RNKiBt
X2NkbTsKK307CisKK30KKworI2VuZGlmIC8vIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakNf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40ZGZlMmViYjhmYzJiN2E2NmRmOGY3MzcxNzJmYzdkYWE4OWY1ZWRmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTAsMCArMSw4MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ0RNUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKKworI2lt
cG9ydCAiQ0RNLmgiCisjaW1wb3J0ICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgiCisj
aW1wb3J0ICJDb250ZW50VHlwZS5oIgorI2ltcG9ydCAiRXhjZXB0aW9uQ29kZS5oIgorI2ltcG9y
dCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgiCisjaW1wb3J0ICJXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBDRE1Q
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcm
IGtleVN5c3RlbSkKK3sKKyAgICBpZiAoIXdrUXVlcnlEZWNvZGVyQXZhaWxhYmlsaXR5KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICgha2V5U3lzdGVtLmlzRW1wdHkoKSAmJiAh
ZXF1YWxJZ25vcmluZ0Nhc2Uoa2V5U3lzdGVtLCAiY29tLmFwcGxlLmZwcy4yXzAiKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ0RNUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNLZXlTeXN0ZW1BbmRNaW1lVHlwZShjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3sKKyAgICBpZiAoIXN1
cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmICghbWltZVR5cGUuaXNFbXB0eSgpKSB7CisgICAgICAgIE1lZGlhRW5naW5lU3VwcG9ydFBh
cmFtZXRlcnMgcGFyYW1ldGVyczsKKyAgICAgICAgcGFyYW1ldGVycy5pc01lZGlhU291cmNlID0g
dHJ1ZTsKKyAgICAgICAgcGFyYW1ldGVycy50eXBlID0gbWltZVR5cGU7CisKKyAgICAgICAgcmV0
dXJuIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKHBh
cmFtZXRlcnMpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENETVByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSkKK3sKKyAgICBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7Cisg
ICAgcGFyYW1ldGVycy5pc01lZGlhU291cmNlID0gdHJ1ZTsKKyAgICBwYXJhbWV0ZXJzLnR5cGUg
PSBtaW1lVHlwZTsKKworICAgIHJldHVybiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPENE
TVNlc3Npb24+IENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmNyZWF0ZVNlc3Npb24oKQor
eworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akM+KCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2Jq
Qy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaAppbmRleCA1NzYwMTA3YTZlOTJhZmI1N2ZiYzUz
MjRmNTNiYjhhOGQyNjcxNzE3Li42YTY0NTU2ZjBhOGI3NDQ3OTkyNDQxNTgzNjU3ZjU1YTE1ZmUw
ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIENETVNlc3Npb25BVkZv
dW5kYXRpb25PYmpDKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMqIHBhcmVudCk7
CiAgICAgdmlydHVhbCB+Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMoKSB7IH0KIAorICAgIHZp
cnR1YWwgQ0RNU2Vzc2lvblR5cGUgdHlwZSgpIHsgcmV0dXJuIENETVNlc3Npb25UeXBlQVZGb3Vu
ZGF0aW9uT2JqQzsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVu
dCogY2xpZW50KSBvdmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCBj
b25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lv
bklkOyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVx
dWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5n
JiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9u
ZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggMmJlMjQ0ZjQwYjhiMmE1MTc3
OGE4NmRjYmZkZTI4MjY2ZGFjN2FjZC4uNTMyNzI0YzE0ZDI0MTIwNTQ5ZGQxN2M5NTk0NTg0OGM3
MTAyYzcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMzksOSArMzksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDIDogcHVibGljIENETVNlc3Np
b24sIHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50IHsKIHB1Ymxp
YzoKLSAgICBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDKiBwYXJlbnQpOworICAgIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMoKTsKICAg
ICB2aXJ0dWFsIH5DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKCk7CiAKKyAgICB2aXJ0dWFs
IENETVNlc3Npb25UeXBlIHR5cGUoKSB7IHJldHVybiBDRE1TZXNzaW9uVHlwZU1lZGlhU291cmNl
QVZGT2JqQzsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVudCog
Y2xpZW50KSBvdmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCBjb25z
dCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lvbklk
OyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVz
dChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYg
c3lzdGVtQ29kZSkgb3ZlcnJpZGU7CkBAIC01MSw4ICs1MiwxMSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
ICosIE5TRXJyb3IgKik7CiAgICAgdmlydHVhbCB2b2lkIHJlbmRlcmVyRGlkUmVjZWl2ZUVycm9y
KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqLCBOU0Vycm9yICopOwogCisgICAgdm9pZCBh
ZGRTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqKTsKKyAgICB2b2lkIHJl
bW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyopOworCiBwcm90ZWN0
ZWQ6Ci0gICAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBtX3BhcmVudDsKKyAg
ICBWZWN0b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPj4gbV9zb3VyY2VCdWZm
ZXJzOwogICAgIENETVNlc3Npb25DbGllbnQqIG1fY2xpZW50OwogICAgIFJldGFpblB0cjxBVlN0
cmVhbVNlc3Npb24+IG1fc3RyZWFtU2Vzc2lvbjsKICAgICBSZWZQdHI8VWludDhBcnJheT4gbV9p
bml0RGF0YTsKQEAgLTYwLDYgKzY0LDEzIEBAIHByb3RlY3RlZDoKICAgICBTdHJpbmcgbV9zZXNz
aW9uSWQ7CiB9OwogCitpbmxpbmUgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyogdG9DRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKENETVNlc3Npb24qIHNlc3Npb24pCit7CisgICAgaWYg
KCFzZXNzaW9uIHx8IHNlc3Npb24tPnR5cGUoKSAhPSBDRE1TZXNzaW9uVHlwZU1lZGlhU291cmNl
QVZGT2JqQykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMqPihzZXNzaW9uKTsKK30KKwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCmluZGV4IDUxZTg4NzIyMDA4ODEzZWI5MTYxNTZhZDk4ZTUwZTNmMWZmZDFl
ZWUuLjI2ZDM5YzVjMGExNTZkN2VkZTUwMDg1YTI5OTljMzA5ZDhlYTJkZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5t
bQpAQCAtNTYsMjkgKzU2LDIzIEBAIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRp
b24sIEFWU3RyZWFtU2Vzc2lvbik7CiAtICh2b2lkKWFkZFN0cmVhbURhdGFQYXJzZXI6KEFWU3Ry
ZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXI7CiAtICh2b2lkKXJlbW92ZVN0cmVhbURh
dGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXI7CiAtICh2b2lk
KWV4cGlyZTsKLSsgKE5TQXJyYXkgKilwZW5kaW5nRXhwaXJlZFNlc3Npb25SZXBvcnRzV2l0aEFw
cElkZW50aWZpZXI6KE5TRGF0YSAqKWFwcElkZW50aWZpZXI7Ci0rICh2b2lkKXJlbW92ZVBlbmRp
bmdFeHBpcmVkU2Vzc2lvblJlcG9ydHM6KE5TQXJyYXkgKilleHBpcmVkU2Vzc2lvblJlcG9ydHMg
d2l0aEFwcElkZW50aWZpZXI6KE5TRGF0YSAqKWFwcElkZW50aWZpZXI7CiBAZW5kCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Q0RNU2Vzc2lv
bk1lZGlhU291cmNlQVZGT2JqQyhTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyogcGFyZW50KQot
ICAgIDogbV9wYXJlbnQocGFyZW50KQotICAgICwgbV9jbGllbnQobnVsbHB0cikKK0NETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6OkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMoKQorICAg
IDogbV9jbGllbnQobnVsbHB0cikKICAgICAsIG1fc2Vzc2lvbklkKGNyZWF0ZUNhbm9uaWNhbFVV
SURTdHJpbmcoKSkKIHsKLSAgICBBU1NFUlQocGFyZW50KTsKLSAgICBwYXJlbnQtPnJlZ2lzdGVy
Rm9yRXJyb3JOb3RpZmljYXRpb25zKHRoaXMpOwogfQogCiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDOjp+Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQygpCiB7CiAgICAgaWYgKG1fc3Ry
ZWFtU2Vzc2lvbikgewotICAgICAgICBbbV9zdHJlYW1TZXNzaW9uIHJlbW92ZVN0cmVhbURhdGFQ
YXJzZXI6bV9wYXJlbnQtPnBhcnNlcigpXTsKKyAgICAgICAgZm9yIChhdXRvJiBzb3VyY2VCdWZm
ZXIgOiBtX3NvdXJjZUJ1ZmZlcnMpCisgICAgICAgICAgICBbbV9zdHJlYW1TZXNzaW9uIHJlbW92
ZVN0cmVhbURhdGFQYXJzZXI6c291cmNlQnVmZmVyLT5wYXJzZXIoKV07CiAgICAgICAgIG1fc3Ry
ZWFtU2Vzc2lvbiA9IG5pbDsKICAgICB9Ci0gICAgbV9wYXJlbnQtPnVucmVnaXN0ZXJGb3JFcnJv
ck5vdGlmaWNhdGlvbnModGhpcyk7Ci0gICAgbV9jbGllbnQgPSBudWxscHRyOwogfQogCiBQYXNz
UmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OmdlbmVyYXRl
S2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwg
U3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWdu
ZWQgbG9uZyYgc3lzdGVtQ29kZSkKQEAgLTEzNCwxOCArMTI4LDMzIEBAIGJvb2wgQ0RNU2Vzc2lv
bk1lZGlhU291cmNlQVZGT2JqQzo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4
QXJyYXk+JiBuCiAgICAgICAgIG1fY2VydGlmaWNhdGUgPSBrZXk7CiAgICAgfQogCisgICAgUmVm
UHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBwcm90ZWN0ZWRTb3VyY2VCdWZmZXI7Cisg
ICAgZm9yIChhdXRvJiBzb3VyY2VCdWZmZXIgOiBtX3NvdXJjZUJ1ZmZlcnMpIHsKKyAgICAgICAg
aWYgKHNvdXJjZUJ1ZmZlci0+cHJvdGVjdGVkVHJhY2tJRCgpICE9IC0xKSB7CisgICAgICAgICAg
ICBwcm90ZWN0ZWRTb3VyY2VCdWZmZXIgPSBzb3VyY2VCdWZmZXI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmIChzaG91bGRHZW5lcmF0ZUtleVJlcXVlc3Qp
IHsKICAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gY2VydGlmaWNhdGVEYXRhID0gYWRvcHROUyhb
W05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczptX2NlcnRpZmljYXRlLT5kYXRhKCkgbGVuZ3Ro
Om1fY2VydGlmaWNhdGUtPmxlbmd0aCgpXSk7CiAgICAgICAgIGlmIChnZXRBVlN0cmVhbVNlc3Np
b25DbGFzcygpKSB7CiAgICAgICAgICAgICBtX3N0cmVhbVNlc3Npb24gPSBhZG9wdE5TKFtbZ2V0
QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhBcHBJZGVudGlmaWVyOmNlcnRp
ZmljYXRlRGF0YS5nZXQoKV0pOwotICAgICAgICAgICAgW21fc3RyZWFtU2Vzc2lvbiBhZGRTdHJl
YW1EYXRhUGFyc2VyOm1fcGFyZW50LT5wYXJzZXIoKV07CisgICAgICAgICAgICBmb3IgKGF1dG8m
IHNvdXJjZUJ1ZmZlciA6IG1fc291cmNlQnVmZmVycykKKyAgICAgICAgICAgICAgICBbbV9zdHJl
YW1TZXNzaW9uIGFkZFN0cmVhbURhdGFQYXJzZXI6c291cmNlQnVmZmVyLT5wYXJzZXIoKV07CiAg
ICAgICAgICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRh
dGUoJXApIC0gY3JlYXRlZCBzdHJlYW0gc2Vzc2lvbiAlcCIsIHRoaXMsIG1fc3RyZWFtU2Vzc2lv
bi5nZXQoKSk7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAobV9zb3VyY2VCdWZmZXJzLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGlmICghcHJvdGVjdGVk
U291cmNlQnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICAgICAgUmV0YWlu
UHRyPE5TRGF0YT4gaW5pdERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5
dGVzOm1faW5pdERhdGEtPmRhdGEoKSBsZW5ndGg6bV9pbml0RGF0YS0+bGVuZ3RoKCldKTsKIAog
ICAgICAgICBOU0Vycm9yKiBlcnJvciA9IG5pbDsKLSAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4g
cmVxdWVzdCA9IFttX3BhcmVudC0+cGFyc2VyKCkgc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3RE
YXRhRm9yQXBwOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmllcjppbml0RGF0
YS5nZXQoKSB0cmFja0lEOm1fcGFyZW50LT5wcm90ZWN0ZWRUcmFja0lEKCkgb3B0aW9uczpuaWwg
ZXJyb3I6JmVycm9yXTsKKyAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gcmVxdWVzdCA9IFtwcm90
ZWN0ZWRTb3VyY2VCdWZmZXItPnBhcnNlcigpIHN0cmVhbWluZ0NvbnRlbnRLZXlSZXF1ZXN0RGF0
YUZvckFwcDpjZXJ0aWZpY2F0ZURhdGEuZ2V0KCkgY29udGVudElkZW50aWZpZXI6aW5pdERhdGEu
Z2V0KCkgdHJhY2tJRDpwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnByb3RlY3RlZFRyYWNrSUQoKSBv
cHRpb25zOm5pbCBlcnJvcjomZXJyb3JdOwogCiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAg
ICAgICAgTE9HKE1lZGlhLCAiQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6dXBkYXRlKCVw
KSAtIGVycm9yOiVAIiwgdGhpcywgW2Vycm9yIGRlc2NyaXB0aW9uXSk7CkBAIC0xNTksMTEgKzE2
OCwxMiBAQCBib29sIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZShVaW50OEFy
cmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCisgICAgQVNTRVJUKCFtX3NvdXJjZUJ1ZmZlcnMuaXNFbXB0eSgpKTsKICAgICBMT0co
TWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoJXApIC0ga2V5IGRh
dGEiLCB0aGlzKTsKICAgICBlcnJvckNvZGUgPSBNZWRpYVBsYXllcjo6Tm9FcnJvcjsKICAgICBz
eXN0ZW1Db2RlID0gMDsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBrZXlEYXRhID0gYWRvcHROUyhb
W05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczprZXktPmRhdGEoKSBsZW5ndGg6a2V5LT5sZW5n
dGgoKV0pOwotICAgIFttX3BhcmVudC0+cGFyc2VyKCkgcHJvY2Vzc0NvbnRlbnRLZXlSZXNwb25z
ZURhdGE6a2V5RGF0YS5nZXQoKSBmb3JUcmFja0lEOm1fcGFyZW50LT5wcm90ZWN0ZWRUcmFja0lE
KCldOworICAgIFtwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnBhcnNlcigpIHByb2Nlc3NDb250ZW50
S2V5UmVzcG9uc2VEYXRhOmtleURhdGEuZ2V0KCkgZm9yVHJhY2tJRDpwcm90ZWN0ZWRTb3VyY2VC
dWZmZXItPnByb3RlY3RlZFRyYWNrSUQoKV07CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE4
Myw2ICsxOTMsMzAgQEAgdm9pZCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW5kZXJl
ckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmUKICAgICBtX2NsaWVudC0+c2Vu
ZEVycm9yKENETVNlc3Npb25DbGllbnQ6Ok1lZGlhS2V5RXJyb3JEb21haW4sIGFicyhbZXJyb3Ig
Y29kZV0pKTsKIH0KIAordm9pZCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjphZGRTb3Vy
Y2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHNvdXJjZUJ1ZmZlcikKK3sKKyAg
ICBBU1NFUlQoIW1fc291cmNlQnVmZmVycy5jb250YWlucyhzb3VyY2VCdWZmZXIpKTsKKyAgICBB
U1NFUlQoc291cmNlQnVmZmVyKTsKKworICAgIG1fc291cmNlQnVmZmVycy5hcHBlbmQoc291cmNl
QnVmZmVyKTsKKyAgICBzb3VyY2VCdWZmZXItPnJlZ2lzdGVyRm9yRXJyb3JOb3RpZmljYXRpb25z
KHRoaXMpOworCisgICAgaWYgKG1fc3RyZWFtU2Vzc2lvbikKKyAgICAgICAgW21fc3RyZWFtU2Vz
c2lvbiBhZGRTdHJlYW1EYXRhUGFyc2VyOnNvdXJjZUJ1ZmZlci0+cGFyc2VyKCldOworfQorCit2
b2lkIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQyogc291cmNlQnVmZmVyKQoreworICAgIEFTU0VSVChtX3Nv
dXJjZUJ1ZmZlcnMuY29udGFpbnMoc291cmNlQnVmZmVyKSk7CisgICAgQVNTRVJUKHNvdXJjZUJ1
ZmZlcik7CisKKyAgICBpZiAobV9zdHJlYW1TZXNzaW9uKQorICAgICAgICBbbV9zdHJlYW1TZXNz
aW9uIHJlbW92ZVN0cmVhbURhdGFQYXJzZXI6c291cmNlQnVmZmVyLT5wYXJzZXIoKV07CisKKyAg
ICBzb3VyY2VCdWZmZXItPnVucmVnaXN0ZXJGb3JFcnJvck5vdGlmaWNhdGlvbnModGhpcyk7Cisg
ICAgbV9zb3VyY2VCdWZmZXJzLnJlbW92ZShtX3NvdXJjZUJ1ZmZlcnMuZmluZChzb3VyY2VCdWZm
ZXIpKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggMzEy
MjEyOWNmZjhjMzdlMjQ0YzUyNjU2NmVkYmUxNGUwMDFhMjUwZS4uYmNkZmVkZjA5NmNjODcyNzQx
MzM5Yjg4NjZjNGRhZGU2ZGVjOWYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTQz
LDYgKzQzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ01UaW1lYmFzZSogQ01UaW1lYmFzZVJl
ZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDOwogY2xhc3MgUGxhdGZvcm1DbG9ja0NNOwogY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRl
QVZGT2JqQzsKIApAQCAtNTMsNiArNTQsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQg
cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKKyAgICAvLyBNZWRp
YVBsYXllciBGYWN0b3J5IE1ldGhvZHMKKyAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBib29s
IGlzQXZhaWxhYmxlKCk7CisgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNl
dDxTdHJpbmc+JiB0eXBlcyk7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKKwogICAg
IHZvaWQgYWRkRGlzcGxheUxheWVyKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKik7CiAgICAg
dm9pZCByZW1vdmVEaXNwbGF5TGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKTsKIApA
QCAtNzUsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogCiAjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxD
RE1TZXNzaW9uPiBjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRDRE1TZXNzaW9uKENETVNlc3Npb24qKSBvdmVycmlkZTsKICAgICB2b2lkIGtleU5lZWRl
ZChVaW50OEFycmF5Kik7CiAjZW5kaWYKIApAQCAtMTYxLDEzICsxNjgsNiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgc2hvdWxkQmVQbGF5aW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZWVrVGltZXJGaXJl
ZChUaW1lcjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+Jik7CiAKLSAgICAv
LyBNZWRpYVBsYXllciBGYWN0b3J5IE1ldGhvZHMKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwotICAgIHN0YXRp
YyBib29sIGlzQXZhaWxhYmxlKCk7Ci0gICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMo
SGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsK
LSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3Rl
bSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7Ci0KICAgICBmcmllbmQgY2xhc3MgTWVkaWFTb3Vy
Y2VQcml2YXRlQVZGT2JqQzsKIAogICAgIHN0cnVjdCBQZW5kaW5nU2VlayB7CkBAIC0xOTMsNiAr
MTkzLDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ+IG1fdGltZUp1bXBlZE9ic2VydmVy
OwogICAgIFJldGFpblB0cjxpZD4gbV9kdXJhdGlvbk9ic2VydmVyOwogICAgIFRpbWVyPE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQz4gbV9zZWVrVGltZXI7CisgICAgQ0RNU2Vz
c2lvbk1lZGlhU291cmNlQVZGT2JqQyogbV9zZXNzaW9uOwogICAgIE1lZGlhUGxheWVyOjpOZXR3
b3JrU3RhdGUgbV9uZXR3b3JrU3RhdGU7CiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9y
ZWFkeVN0YXRlOwogICAgIE1lZGlhVGltZSBtX2xhc3RTZWVrVGltZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQppbmRleCBkNjVhZjMxNzBiYTg1OGVlZjdhNTM0YWViNjgyNDVlOGI5NzY4NGQ2
Li4wNTAxMDM5NjIzYTgyMDRkZWE0NGQ4ODkwODQyZGU3NmZkZWVhMDQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCi0jaW1wb3J0ICJDRE1TZXNzaW9uLmgiCisjaW1w
b3J0ICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgi
CiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJNZWRpYVNv
dXJjZVByaXZhdGVDbGllbnQuaCIKQEAgLTEzNiw2ICsxMzYsNyBAQCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
QyhNZWRpYQogICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogICAgICwgbV9zeW5jaHJvbml6
ZXIoYWRvcHROUyhbW2dldEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyQ2xhc3MoKSBh
bGxvY10gaW5pdF0pKQogICAgICwgbV9zZWVrVGltZXIodGhpcywgJk1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla1RpbWVyRmlyZWQpCisgICAgLCBtX3Nlc3Npb24obnVs
bHB0cikKICAgICAsIG1fbmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpFbXB0eSkKICAgICAsIG1f
cmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCiAgICAgLCBtX3JhdGUoMSkKQEAg
LTE2Myw4ICsxNjQsMTEgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWEKICAgICAgICAgICAgIExP
RyhNZWRpYVNvdXJjZSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bV90
aW1lSnVtcGVkT2JzZXJ2ZXIoJXApIC0gdGltZSglcykiLCB3ZWFrVGhpcy5nZXQoKSwgdG9TdHJp
bmcodG9NZWRpYVRpbWUodGltZSkpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgbV9zZWVr
aW5nID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmIChzaG91bGRCZVBsYXlpbmcoKSkKKyAgICAg
ICAgICAgIGlmIChzaG91bGRCZVBsYXlpbmcoKSkgeworICAgICAgICAgICAgICAgIExPRyhNZWRp
YVNvdXJjZSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bV90aW1lSnVt
cGVkT2JzZXJ2ZXIoJXApIC0gbV9zeW5jaHJvbml6ZXIgc2V0UmF0ZTolZyIsIHRoaXMsIG1fcmF0
ZSk7CiAgICAgICAgICAgICAgICAgW21fc3luY2hyb25pemVyIHNldFJhdGU6bV9yYXRlXTsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIExPRyhNZWRpYVNvdXJjZSwgIk1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bV90aW1lSnVtcGVkT2JzZXJ2ZXIoJXAp
IC0gbm90IHNldHRpbmcgbV9zeW5jaHJvbml6ZXIgcmF0ZSIsIHRoaXMpOwogICAgICAgICAgICAg
aWYgKCFzZWVraW5nKCkpCiAgICAgICAgICAgICAgICAgbV9wbGF5ZXItPnRpbWVDaGFuZ2VkKCk7
CiAgICAgICAgIH0KQEAgLTE5NCw3ICsxOTgsNyBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoKQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdp
bmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJs
ZSgpKQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9y
dHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CisgICAgICAgIHJlZ2lzdHJhcihj
cmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwogfQog
CiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKQEAgLTIz
MywyMCArMjM3LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHkKICAgICB0eXBlcyA9IG1pbWVU
eXBlQ2FjaGUoKTsKIH0KIAotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCi1zdGF0aWMg
Ym9vbCBrZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKLXsKLSAg
ICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2Uoa2V5U3lzdGVtLCAiY29tLmFwcGxlLmZwcy4yXzAi
KTsKLX0KLSNlbmRpZgotCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QV9WMikKLSAgICBpZiAoIXBhcmFtZXRlcnMua2V5U3lzdGVtLmlzRW1wdHkoKSAmJiAha2V5U3lz
dGVtSXNTdXBwb3J0ZWQocGFyYW1ldGVycy5rZXlTeXN0ZW0pKQotICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsKLSNlbmRpZgotCiAgICAgLy8gVGhpcyBlbmdp
bmUgZG9lcyBub3Qgc3VwcG9ydCBub24tbWVkaWEtc291cmNlIHNvdXJjZXMuCiAgICAgaWYgKCFw
YXJhbWV0ZXJzLmlzTWVkaWFTb3VyY2UpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6SXNO
b3RTdXBwb3J0ZWQ7CkBAIC0yNjMsMjggKzI1NSw2IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29u
CiAgICAgcmV0dXJuIFtnZXRBVlVSTEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1F
VHlwZTp0eXBlU3RyaW5nXSA/IE1lZGlhUGxheWVyOjpJc1N1cHBvcnRlZCA6IE1lZGlhUGxheWVy
OjpNYXlCZVN1cHBvcnRlZDs7CiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkKLXsKLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQot
ICAgIGlmICghd2tRdWVyeURlY29kZXJBdmFpbGFiaWxpdHkoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgaWYgKCFrZXlTeXN0ZW0uaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmICgha2V5
U3lzdGVtSXNTdXBwb3J0ZWQoa2V5U3lzdGVtKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgICAgICBpZiAoIW1pbWVUeXBlLmlzRW1wdHkoKSAmJiAhbWltZVR5cGVDYWNoZSgpLmNv
bnRhaW5zKG1pbWVUeXBlKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOwot
ICAgIFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlIE92ZXJyaWRlcwogCkBAIC0zMzksOCArMzA5LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwbGF5SW50ZXJuYWwoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3BsYXlpbmcgPSB0cnVlOwotICAgIGlmIChzaG91bGRCZVBsYXlpbmcoKSkKKyAgICBp
ZiAoc2hvdWxkQmVQbGF5aW5nKCkpIHsKKyAgICAgICAgTE9HKE1lZGlhU291cmNlLCAiTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwbGF5SW50ZXJuYWwoJXApIC0gbV9zeW5j
aHJvbml6ZXIgc2V0UmF0ZTolZyIsIHRoaXMsIG1fcmF0ZSk7CiAgICAgICAgIFttX3N5bmNocm9u
aXplciBzZXRSYXRlOm1fcmF0ZV07CisgICAgfSBlbHNlCisgICAgICAgIExPRyhNZWRpYVNvdXJj
ZSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGxheUludGVybmFsKCVw
KSAtIG5vdCBzZXR0aW5nIG1fc3luY2hyb25pemVyIHJhdGUiLCB0aGlzKTsKIH0KIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhdXNlKCkKQEAgLTM1Niw2ICsz
MjksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGF1c2Uo
KQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhdXNlSW50ZXJu
YWwoKQogewogICAgIG1fcGxheWluZyA9IGZhbHNlOworICAgIExPRyhNZWRpYVNvdXJjZSwgIk1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGF1c2VJbnRlcm5hbCglcCkgLSBt
X3N5bmNocm9uaXplciBzZXRSYXRlOjAiLCB0aGlzKTsKICAgICBbbV9zeW5jaHJvbml6ZXIgc2V0
UmF0ZTowXTsKIH0KIApAQCAtNDc1LDYgKzQ0OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwoKQogCiAgICAgTE9HKE1lZGlhU291cmNl
LCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwoJXAp
IC0gc2Vla1RpbWUoJXMpIiwgdGhpcywgdG9TdHJpbmcobV9sYXN0U2Vla1RpbWUpLnV0ZjgoKS5k
YXRhKCkpOwogCisgICAgTE9HKE1lZGlhU291cmNlLCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzZWVrSW50ZXJuYWwoJXApIC0gbV9zeW5jaHJvbml6ZXIgc2V0UmF0ZTow
IiwgdGhpcyk7CiAgICAgW21fc3luY2hyb25pemVyIHNldFJhdGU6MCB0aW1lOnRvQ01UaW1lKG1f
bGFzdFNlZWtUaW1lKV07CiAgICAgbV9tZWRpYVNvdXJjZVByaXZhdGUtPnNlZWtUb1RpbWUobV9s
YXN0U2Vla1RpbWUpOwogfQpAQCAtNDkzLDggKzQ2OCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla0NvbXBsZXRlZCgpCiAgICAgICAgIHJldHVybjsK
ICAgICBMT0coTWVkaWFTb3VyY2UsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnNlZWtDb21wbGV0ZWQoJXApIiwgdGhpcyk7CiAgICAgbV9zZWVrQ29tcGxldGVkID0gdHJ1
ZTsKLSAgICBpZiAoc2hvdWxkQmVQbGF5aW5nKCkpCisgICAgaWYgKHNob3VsZEJlUGxheWluZygp
KSB7CisgICAgICAgIExPRyhNZWRpYVNvdXJjZSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c2Vla0NvbXBsZXRlZCglcCkgLSBtX3N5bmNocm9uaXplciBzZXRSYXRlOiVn
IiwgdGhpcywgbV9yYXRlKTsKICAgICAgICAgW21fc3luY2hyb25pemVyIHNldFJhdGU6bV9yYXRl
XTsKKyAgICB9IGVsc2UKKyAgICAgICAgTE9HKE1lZGlhU291cmNlLCAiTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZWVrQ29tcGxldGVkKCVwKSAtIG5vdCBzZXR0aW5nIG1f
c3luY2hyb25pemVyIiwgdGhpcyk7CiAgICAgaWYgKCFtX3NlZWtpbmcpCiAgICAgICAgIG1fcGxh
eWVyLT50aW1lQ2hhbmdlZCgpOwogfQpAQCAtNTA3LDggKzQ4NSwxMSBAQCBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2Vla2luZygpIGNvbnN0CiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0UmF0ZURvdWJsZShkb3VibGUgcmF0
ZSkKIHsKICAgICBtX3JhdGUgPSByYXRlOwotICAgIGlmIChzaG91bGRCZVBsYXlpbmcoKSkKKyAg
ICBpZiAoc2hvdWxkQmVQbGF5aW5nKCkpIHsKKyAgICAgICAgTE9HKE1lZGlhU291cmNlLCAiTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRSYXRlRG91YmxlKCVwKSAtIG1f
c3luY2hyb25pemVyIHNldFJhdGU6JWciLCB0aGlzLCBtX3JhdGUpOwogICAgICAgICBbbV9zeW5j
aHJvbml6ZXIgc2V0UmF0ZTptX3JhdGVdOworICAgIH0gZWxzZQorICAgICAgICBMT0coTWVkaWFT
b3VyY2UsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFJhdGVEb3Vi
bGUoJXApIC0gbm90IHNldHRpbmcgbV9zeW5jaHJvbml6ZXIiLCB0aGlzKTsKIH0KIAogTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
Om5ldHdvcmtTdGF0ZSgpIGNvbnN0CkBAIC02OTIsMTIgKzY3MywyMCBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2l6ZUNoYW5nZWQoKQogfQogCiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKLXN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmNyZWF0ZVNlc3Npb24oY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0pCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6c2V0Q0RNU2Vzc2lvbihDRE1TZXNzaW9uKiBzZXNzaW9uKQogewotICAgIGlmICghbV9tZWRp
YVNvdXJjZVByaXZhdGUpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChtX3Nlc3Np
b24pIHsKKyAgICAgICAgZm9yIChhdXRvJiBzb3VyY2VCdWZmZXIgOiBtX21lZGlhU291cmNlUHJp
dmF0ZS0+c291cmNlQnVmZmVycygpKQorICAgICAgICAgICAgbV9zZXNzaW9uLT5yZW1vdmVTb3Vy
Y2VCdWZmZXIoc291cmNlQnVmZmVyLmdldCgpKTsKKyAgICAgICAgbV9zZXNzaW9uID0gbnVsbHB0
cjsKKyAgICB9CisKKyAgICBtX3Nlc3Npb24gPSB0b0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMoc2Vzc2lvbik7CiAKLSAgICByZXR1cm4gbV9tZWRpYVNvdXJjZVByaXZhdGUtPmNyZWF0ZVNl
c3Npb24oa2V5U3lzdGVtKTsKKyAgICBpZiAobV9zZXNzaW9uKSB7CisgICAgICAgIGZvciAoYXV0
byYgc291cmNlQnVmZmVyIDogbV9tZWRpYVNvdXJjZVByaXZhdGUtPnNvdXJjZUJ1ZmZlcnMoKSkK
KyAgICAgICAgICAgIG1fc2Vzc2lvbi0+YWRkU291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlci5nZXQo
KSk7CisgICAgfQogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6a2V5TmVlZGVkKFVpbnQ4QXJyYXkqIGluaXREYXRhKQpAQCAtNzEzLDEwICs3MDIsMTMgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFJlYWR5U3RhdGUo
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUKIAogICAgIG1fcmVhZHlTdGF0ZSA9IHJlYWR5U3RhdGU7
CiAKLSAgICBpZiAoc2hvdWxkQmVQbGF5aW5nKCkpCisgICAgaWYgKHNob3VsZEJlUGxheWluZygp
KSB7CisgICAgICAgIExPRyhNZWRpYVNvdXJjZSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZSglcCkgLSBtX3N5bmNocm9uaXplciBzZXRSYXRlOiVn
IiwgdGhpcywgbV9yYXRlKTsKICAgICAgICAgW21fc3luY2hyb25pemVyIHNldFJhdGU6bV9yYXRl
XTsKLSAgICBlbHNlCisgICAgfSBlbHNlIHsKKyAgICAgICAgTE9HKE1lZGlhU291cmNlLCAiTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRSYXRlRG91YmxlKCVwKSAtIG1f
c3luY2hyb25pemVyIHNldFJhdGU6MCIsIHRoaXMpOwogICAgICAgICBbbV9zeW5jaHJvbml6ZXIg
c2V0UmF0ZTowXTsKKyAgICB9CiAKICAgICBtX3BsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9i
akMuaAppbmRleCBjYmQxZDRlOTJhM2I1NGNjNzM2NjM1Nzc3NWRlZGE5MTMyODQ5ZGE3Li41Zjlm
YTRkOGVhMjJkYmJlM2NkZmY2NDBlMmE1NmJlZGJkZjRlODk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVBy
aXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oCkBAIC01NSw2ICs1NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKCk7CiAK
ICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqIHBsYXllcigpIGNvbnN0
IHsgcmV0dXJuIG1fcGxheWVyOyB9CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQz4+JiBzb3VyY2VCdWZmZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2VCdWZmZXJzOyB9CiAgICAgY29uc3QgVmVjdG9yPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Kj4mIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZVNvdXJjZUJ1
ZmZlcnM7IH0KIAogICAgIHZpcnR1YWwgQWRkU3RhdHVzIGFkZFNvdXJjZUJ1ZmZlcihjb25zdCBD
b250ZW50VHlwZSYsIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiYpIG92ZXJyaWRlOwpAQCAt
NzYsMTAgKzc3LDYgQEAgcHVibGljOgogICAgIE1lZGlhVGltZSBmYXN0U2Vla1RpbWVGb3JNZWRp
YVRpbWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9s
ZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9sZCk7CiAgICAgSW50U2l6ZSBuYXR1
cmFsU2l6ZSgpIGNvbnN0OwogCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmKTsK
LSNlbmRpZgotCiBwcml2YXRlOgogICAgIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMoTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKiwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50
Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVB
VkZPYmpDLm1tCmluZGV4IGYyYTRiMzRmMzA0NzI2ZGRkZTNhZWMyY2ZjMDM1MGJhNDJlOWU1NDUu
Ljc5MmVkOTg1NTFiYzQwNTRiODgxMTRmZjQ2MmViZTE0YWQxNThmMTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291
cmNlUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQpAQCAtMTUz
LDE4ICsxNTMsNiBAQCB2b2lkIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6OnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZShTb3VyY2VCdQogfQogCiAjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQV9WMikKLXN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBNZWRpYVNvdXJj
ZVByaXZhdGVBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYpCi17Ci0jaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCi0gICAgaWYgKG1fc291cmNlQnVm
ZmVyc05lZWRpbmdTZXNzaW9ucy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM+
KG1fc291cmNlQnVmZmVyc05lZWRpbmdTZXNzaW9ucy50YWtlRmlyc3QoKSk7Ci0jZW5kaWYKLSAg
ICByZXR1cm4gbnVsbHB0cjsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QV9WMikKIHZvaWQgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6c291cmNlQnVmZmVyS2V5TmVl
ZGVkKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBidWZmZXIsIFVpbnQ4QXJyYXkqIGluaXRE
YXRhKQogewogICAgIG1fc291cmNlQnVmZmVyc05lZWRpbmdTZXNzaW9ucy5hcHBlbmQoYnVmZmVy
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236776</attachid>
            <date>2014-08-18 12:25:27 -0700</date>
            <delta_ts>2014-08-18 13:16:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136016-20140818122517.patch</filename>
            <type>text/plain</type>
            <size>39591</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjdkMDZiNzM2YjkyYjMx
ZTliYzliZTA5MjQwZTUwYTE1NGYzNzUzNi4uMGM2OGE4ZGM5NjhjZTYxNDliY2VjMWI2ZTk0N2Qw
MTc2ZGQ2YWM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE0LTA4LTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdW01hY10gUmVmYWN0
b3IgQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyB0byBhbGxvdyBzZXNzaW9ucyB0byBiZSBj
cmVhdGVkIHdpdGhvdXQgYmVpbmcgYXR0YWNoZWQgdG8gYW4gQVZTdHJlYW1EYXRhUGFyc2VyLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIENETVBy
aXZhdGVNZWRpYVBsYXllciBjbGFzcyB3aWxsIGRlbGVnYXRlIGNyZWF0aW9uIG9mIENETVNlc3Np
b24gaW5zdGFuY2VzIHRvIHRoZSBjdXJyZW50IE1lZGlhUGxheWVyLiBUaGlzCisgICAgICAgIG9m
IGNvdXJzZSByZXF1aXJlcyB0aGUgTWVkaWFLZXlzIG9iamVjdCBvd25pbmcgdGhlIENETSB0byBi
ZSBhdHRhY2hlZCB0byBhIEhUTUxNZWRpYUVsZW1lbnQsIGFuZCBzcGVjaWZpY2FsbHkgdG8KKyAg
ICAgICAgb25lIHdpdGggYSB2YWxpZCBzcmMgYXR0cmlidXRlIG9yIHNvdXJjZSBub2RlIHdoaWNo
IGhhcyBzdWNlc3NmdWxseSBiZWd1biBsb2FkaW5nLiBGb3IgY2VydGFpbiBDRE0gb3BlcmF0aW9u
cywKKyAgICAgICAgaXQgd291bGQgYmUgYmV0dGVyIGlmIGEgZ2l2ZW4gTWVkaWFLZXlzIGNvdWxk
IGNyZWF0ZSBhIHNlc3Npb24gd2l0aG91dCBhY3R1YWxseSBiZWluZyBjb25uZWN0ZWQgdG8gYQor
ICAgICAgICBIVE1MTWVkaWFFbGVtZW50ICh5ZXQpLgorCisgICAgICAgIFRvIGZhY2lsaXRhdGUg
dGhpcyBmb3IgQ0RNU2Vzc2lvblByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMsIGFkZCBhIG5ldyBj
bGFzcywgQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQywgd2hpY2gKKyAgICAgICAgaXMgdGhl
IHByaW1hcnkgZmFjdG9yeSBmb3IgQ0RNU2Vzc2lvblByaXZhdGVNZWRpYVNPdXJjZUFWRk9iakMu
IERpc2NsYWltIHJlc3BvbnNpYmlsaXR5IGZvciBjcmVhdGluZyB0aGVzZSBzZXNzaW9ucworICAg
ICAgICBpbiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMgYnkgbm90IHBhc3Np
bmcgdGhlICJzdXBwb3J0c0tleVN5c3RlbSIgbWV0aG9kIHdoZW4gcmVnaXN0ZXJpbmcgaXRzZWxm
LgorCisgICAgICAgIEFkZCBtZXRob2RzIHRvIENETVNlc3Npb25Qcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDIHRvIGFsbG93IFNvdXJjZUJ1ZmZlcnMgdG8gYmUgYWRkZWQgYW5kIHJlbW92ZWQgZnJv
bSB0aGUgc2Vzc2lvbiwKKyAgICAgICAgdG8gc3VwcG9ydCBhZGRpbmcgdGhlIHNlc3Npb24gdG8g
dGhlIEhUTUxNZWRpYUVsZW1lbnQgYWZ0ZXIgdGhlIHNlc3Npb24gaGFzIGJlZW4gY3JlYXRlZC4K
KworICAgICAgICBTaW5jZSBNZWRpYVBsYXllclByaXZhdGUgaW5zdGFuY2UgYW5kICBDRE1TZXNz
aW9uIGluc3RhbmNlcyBtdXN0IGJlIGFibGUgdG8gY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhl
ciwgYWRkIGEgdHlwZSgpCisgICAgICAgIGVudW0gYW5kIHZpcnR1YWwgbWV0aG9kIHRvIGFsbG93
IENETVNlc3Npb24gaW5zdG5hY2VzIHRvIGJlIGRpc3Rpbmd1aXN0ZWQgZnJvbSAoYW5kIGNhc3Rl
ZCB0bykgb25lIGFub3RoZXIuCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NE
TS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbnN0YWxsZWRDRE1GYWN0b3JpZXMpOiBSZWdpc3Rl
ciBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLgorICAgICAgICAoV2ViQ29yZTo6Q0RNOjpj
cmVhdGVTZXNzaW9uKTogTm90aWZ5IHRoZSBNZWRpYVBsYXllciBvZiB0aGUgbmV3IENETVNlc3Np
b24uCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaDoK
KyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUtleXM6OnNldE1lZGlhRWxlbWVudCk6IE5vdGlmeSB0aGUgSFRNTE1l
ZGlhRWxlbWVudCBvZiBhbnkgZXhpc3Rpbmcgc2Vzc2lvbnMuCisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NE
TVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb246OnR5cGUpOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6c2V0Q0RNU2Vzc2lvbik6IFBhc3MgdGhyb3VnaCB0byB0aGUg
TWVkaWFQbGF5ZXJQcml2YXRlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNldENETVNl
c3Npb24pOiBBZGRlZC4gRGVmYXVsdCBuby1vcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OkNETVByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMpOiBTaW1wbGUgY29uc3RydWN0b3IuCisgICAgICAgIChXZWJDb3Jl
OjpDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp+Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQyk6IFNpbXBsZSBkZXN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlKTogU2ltcGxlIGZhY3RvcnkuCisgICAgICAgIChXZWJD
b3JlOjpDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjZG0pOiBTaW1wbGUgYWNjZXNzb3Iu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW06IAorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c3VwcG9ydHNLZXlTeXN0ZW0pOiBNb3ZlZCBmcm9tIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy4KKyAgICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzS2V5U3lzdGVtQW5kTWltZVR5cGUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzTUlN
RVR5cGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNyZWF0ZVNlc3Npb24pOiBSZXR1cm5zIG5ldyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9u
QVZGb3VuZGF0aW9uT2JqQzo6dHlwZSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnR5cGUpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyk6IFRo
cm93IGFzc2VydGlvbiBpZiB0eXBlKCkgaXMgbm90IGNvcnJlY3QuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OkNE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMpOiBSZW1vdmVkIG1fcGFyZW50IGl2YXIuCisgICAg
ICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp+Q0RNU2Vzc2lvbk1l
ZGlhU291cmNlQVZGT2JqQyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbk1l
ZGlhU291cmNlQVZGT2JqQzo6dXBkYXRlKTogRGV0ZXJtaW5nIHdoaWNoIFNvdXJjZUJ1ZmZlciBp
cyBwcm90ZWN0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDOjphZGRTb3VyY2VCdWZmZXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6OnJlbW92ZVNvdXJjZUJ1ZmZlcik6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6
IFJlbW92ZSBzdXBwb3J0c0tleVR5cGUgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUpOiBSZW1vdmUg
a2V5VHlwZSBjaGVjay4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6c2V0Q0RNU2Vzc2lvbik6IFRlbGwgdGhlIENETVNlc3Npb24gYWJvdXQg
b3V0c3RhbmRpbmcgU291cmNlQnVmZmVycy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQy5tbToKKwogMjAxNC0wOC0xNSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbRU1FXVtNYWNdIEFkb3B0IEFWU3RyZWFtU2Vzc2lvbi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcAppbmRleCA5NjdjMjNlZDBkNGU0
NzYyZjIxMDUwYTJmYmE3YjY0MmY2ZTgwZjYxLi44MzhiZTAwOWU1N2Y2YTA0NWVlMTY0OThkMjli
ZmU0MDBiMmNlNzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL0NETS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9DRE0uY3BwCkBAIC0zMCw5ICszMCwxMSBAQAogI2luY2x1ZGUgIkNETS5oIgogCiAjaW5jbHVk
ZSAiQ0RNUHJpdmF0ZU1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiQ0RNUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5oIgogI2luY2x1ZGUgIkNETVNlc3Npb24uaCIKICNpbmNsdWRlICJNZWRpYUtl
eUVycm9yLmgiCiAjaW5jbHVkZSAiTWVkaWFLZXlzLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIApAQCAtNjIsNiArNjQsMTAgQEAgc3RhdGljIFZlY3RvcjxDRE1GYWN0b3J5
Kj4mIGluc3RhbGxlZENETUZhY3RvcmllcygpCiAKICAgICAgICAgLy8gRklYTUU6IGluaXRpYWxp
emUgc3BlY2lmaWMgVUEgQ0RNcy4gaHR0cDovL3dlYmtpdC5vcmcvYi8xMDkzMTgsIGh0dHA6Ly93
ZWJraXQub3JnL2IvMTA5MzIwCiAgICAgICAgIGNkbXMuZ2V0KCkuYXBwZW5kKG5ldyBDRE1GYWN0
b3J5KENETVByaXZhdGVNZWRpYVBsYXllcjo6Y3JlYXRlLCBDRE1Qcml2YXRlTWVkaWFQbGF5ZXI6
OnN1cHBvcnRzS2V5U3lzdGVtLCBDRE1Qcml2YXRlTWVkaWFQbGF5ZXI6OnN1cHBvcnRzS2V5U3lz
dGVtQW5kTWltZVR5cGUpKTsKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKKyAgICAgICAgY2Rtcy5nZXQoKS5hcHBlbmQobmV3IENETUZhY3RvcnkoQ0RNUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlLCBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpzdXBwb3J0c0tleVN5c3RlbSwgQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9y
dHNLZXlTeXN0ZW1BbmRNaW1lVHlwZSkpOworI2VuZGlmCiAgICAgfQogCiAgICAgcmV0dXJuIGNk
bXM7CkBAIC0xMjAsNyArMTI2LDEwIEBAIGJvb2wgQ0RNOjpzdXBwb3J0c01JTUVUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiAKIHN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBD
RE06OmNyZWF0ZVNlc3Npb24oKQogewotICAgIHJldHVybiBtX3ByaXZhdGUtPmNyZWF0ZVNlc3Np
b24oKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gc2Vzc2lvbiA9IG1fcHJpdmF0
ZS0+Y3JlYXRlU2Vzc2lvbigpOworICAgIGlmIChtZWRpYVBsYXllcigpKQorICAgICAgICBtZWRp
YVBsYXllcigpLT5zZXRDRE1TZXNzaW9uKHNlc3Npb24uZ2V0KCkpOworICAgIHJldHVybiBzZXNz
aW9uOwogfQogCiBNZWRpYVBsYXllciogQ0RNOjptZWRpYVBsYXllcigpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Np
b24uaAppbmRleCBiNWY0MTQ2ZWZlOGEzYTgwMjZjZDhlN2YyMDEzOTUyZTNiOTc5YmMxLi4wNDhj
MDE5MDU1ZGJkZTZhOTBiZDE4ZjE2ZjA0YTEwZWM2NTdiNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKQEAg
LTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIH5NZWRpYUtleVNlc3Npb24oKTsKIAogICAgIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0KKyAg
ICBDRE1TZXNzaW9uKiBzZXNzaW9uKCkgeyByZXR1cm4gbV9zZXNzaW9uLmdldCgpOyB9CiAgICAg
Y29uc3QgU3RyaW5nJiBzZXNzaW9uSWQoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0RXJyb3IoTWVk
aWFLZXlFcnJvciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleXMuY3BwCmluZGV4IGYzYzIxMmY1NDFmY2RhOGEzZTYzNjkwN2NmY2IxMzI0
NWQ2NDJhMjIuLmYzZTM3YjFkNmQwYjIyZjU1MzhkYzdiZGFiYzJlYzRjNzJmY2VhZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5j
cHAKQEAgLTE0NCw3ICsxNDQsMTMgQEAgYm9vbCBNZWRpYUtleXM6OmlzVHlwZVN1cHBvcnRlZChj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIAogdm9pZCBN
ZWRpYUtleXM6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQogewor
ICAgIGlmIChtX21lZGlhRWxlbWVudCkKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnBsYXllcigp
LT5zZXRDRE1TZXNzaW9uKG51bGxwdHIpOworCiAgICAgbV9tZWRpYUVsZW1lbnQgPSBlbGVtZW50
OworCisgICAgaWYgKG1fbWVkaWFFbGVtZW50ICYmICFtX3Nlc3Npb25zLmlzRW1wdHkoKSkKKyAg
ICAgICAgbV9tZWRpYUVsZW1lbnQtPnBsYXllcigpLT5zZXRDRE1TZXNzaW9uKG1fc2Vzc2lvbnMu
bGFzdCgpLT5zZXNzaW9uKCkpOwogfQogCiBNZWRpYVBsYXllciogTWVkaWFLZXlzOjpjZG1NZWRp
YVBsYXllcihjb25zdCBDRE0qKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEyOGVlMWEzZDMxMjFlMDk1ZGY5YTllNTA1
MDc4ZGM0Yjk2MWFmN2EuLjM3NGNhNTM4MWRjMDVkNGQ1YjI3OGQ4NzcxZTZjNzQxY2UxMDljNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTU2MTAsNiArNTYxMCw4IEBACiAJCUNEMkY0QTI0MThEODlGNzAwMDYzNzQ2RCAvKiBB
dWRpb0hhcmR3YXJlTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMkY0QTIyMThEODlGNzAwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlz
dGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlDRDJGNEEyNzE4RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMkY0QTI1
MThEOEEzNDkwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwICovOyB9Owog
CQlDRDJGNEEyODE4RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDJGNEEyNjE4
RDhBMzQ5MDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggKi87IH07CisJCUNE
MzE4NjIyMTk5RjFFMkEwMDMwQTBGNyAvKiBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzMTg2MjAx
OTlGMUUyQTAwMzBBMEY3IC8qIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gKi87IH07
CisJCUNEMzE4NjIzMTk5RjFFMkEwMDMwQTBGNyAvKiBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDMx
ODYyMTE5OUYxRTJBMDAzMEEwRjcgLyogQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICov
OyB9OwogCQlDRDMzNkY2MTE3RjlGNjQ3MDBERERDRDAgLyogQVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MzM2RjVGMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tICov
OyB9OwogCQlDRDMzNkY2MjE3RjlGNjQ3MDBERERDRDAgLyogQVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qz
MzZGNjAxN0Y5RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaCAqLzsg
fTsKIAkJQ0QzMzZGNjQxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDMzNkY2MzE3
RkEwQTREMDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkYuaCAqLzsgfTsKQEAgLTEzMDM2
LDYgKzEzMDM4LDggQEAKIAkJQ0QyRjRBMjIxOEQ4OUY3MDAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdh
cmVMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb0hhcmR3
YXJlTGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyRjRBMjUxOEQ4
QTM0OTAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDJGNEEyNjE4RDhBMzQ5MDA2Mzc0NkQgLyog
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDMxODYyMDE5OUYxRTJBMDAzMEEwRjcgLyogQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENETVByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
MzE4NjIxMTk5RjFFMkEwMDMwQTBGNyAvKiBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENETVByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzMkExODkxODRFQjQ2QTAw
MjlCMUJCIC8qIG1lZGlhQ29udHJvbHNpT1MuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IHBhdGggPSBtZWRpYUNvbnRyb2xzaU9TLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDMzNkY1RjE3RjlGNjQ3MDBERERDRDAgLyogQVZUcmFja1ByaXZhdGVBVkZPYmpD
SW1wbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWVHJhY2tQ
cml2YXRlQVZGT2JqQ0ltcGwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzM2
RjYwMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNjIxLDYgKzIxNjI1LDggQEAKIAkJCQlD
RDU0QTc2MTE4MEY5RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaCAqLywKIAkJCQlDRDMzNkY2MDE3RjlGNjQ3MDBERERDRDAgLyogQVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbC5oICovLAogCQkJCUNEMzM2RjVGMTdGOUY2NDcwMERERENEMCAvKiBBVlRy
YWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tICovLAorCQkJCUNEMzE4NjIxMTk5RjFFMkEwMDMwQTBG
NyAvKiBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8sCisJCQkJQ0QzMTg2MjAxOTlG
MUUyQTAwMzBBMEY3IC8qIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gKi8sCiAJCQkJ
Q0RERTAyRUExOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgg
Ki8sCiAJCQkJQ0RERTAyRUIxOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRp
b25PYmpDLm1tICovLAogCQkJCUNEREUwMkVFMThCNTY0RkEwMENGN0ZGMSAvKiBDRE1TZXNzaW9u
TWVkaWFTb3VyY2VBVkZPYmpDLmggKi8sCkBAIC0yNDU2Myw2ICsyNDU2OSw3IEBACiAJCQkJQjI3
NTM1NzEwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0QjM0ODA5NDBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VTb3VyY2VDRy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzE2RkUxMTgwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDRDMxODYyMzE5OUYxRTJBMDAzMEEwRjcgLyogQ0RNUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUxNkM1OTMxN0NGRTE3
MjAwODUyQzA0IC8qIEluYmFuZEdlbmVyaWNUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OTQxNzkyMTY2RTg1NUYwMDk0MTZDMiAvKiBJbmJhbmRUZXh0VHJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3OTQxNzk0MTY2RUEwNEUwMDk0MTZDMiAvKiBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NDk4LDYgKzI3NTA1LDcgQEAKIAkJCQk4NUJBNENE
RTBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEJ1dHRvbkVsZW1lbnQubW0gaW4gU291cmNlcyAq
LywKIAkJCQk5M0Y5QjY1NzBCQTBGMzVFMDA4NTQwNjQgLyogRE9NSFRNTENhbnZhc0VsZW1lbnQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGMkY4RjBBQTNDODgxMDBBRDY0QzUgLyogRE9NSFRN
TENvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDMxODYyMjE5OUYxRTJBMDAzMEEw
RjcgLyogQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUY1QzA0MUU0MEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRDM1OUQ3OTIxMjlDQTNDMDAwMDZFNUQyIC8qIERPTUhUTUxEZXRh
aWxzRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1QkE0RDBDMEFBNjg4NjgwMDg4MDUy
RCAvKiBET01IVE1MRGlyZWN0b3J5RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ0RNU2Vzc2lvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ0RNU2Vzc2lvbi5oCmluZGV4IGZiYjQzMTc4NmJj
NDc4NjMyYTcxYjQxOTZhMWNhNjg0YjA0YWZkZWUuLjgwYTg1ZTM1Mzg1NjE3YjNlNGI5NzI1OTcy
MDc4OTFmZmZmZDM1M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NETVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
RE1TZXNzaW9uLmgKQEAgLTUyLDExICs1MiwxOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNlbmRFcnJvcihNZWRpYUtleUVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyBzeXN0ZW1Db2RlKSA9
IDA7CiB9OwogCitlbnVtIENETVNlc3Npb25UeXBlIHsKKyAgICBDRE1TZXNzaW9uVHlwZVVua25v
d24sCisgICAgQ0RNU2Vzc2lvblR5cGVBVkZvdW5kYXRpb25PYmpDLAorICAgIENETVNlc3Npb25U
eXBlTWVkaWFTb3VyY2VBVkZPYmpDLAorfTsKKwogY2xhc3MgQ0RNU2Vzc2lvbiB7CiBwdWJsaWM6
CiAgICAgQ0RNU2Vzc2lvbigpIHsgfQogICAgIHZpcnR1YWwgfkNETVNlc3Npb24oKSB7IH0KIAor
ICAgIHZpcnR1YWwgQ0RNU2Vzc2lvblR5cGUgdHlwZSgpIHsgcmV0dXJuIENETVNlc3Npb25UeXBl
VW5rbm93bjsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVudCop
ID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGlu
YXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3Rl
bUNvZGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcAppbmRleCA3OTZhNjVmMzMxZWMwZTMxZDhlNzgxZmU5YTkwOTUzNzQyYTBkN2Uz
Li4xNTFmMTMxYzFkY2I0ZDQ4NTNmNjZmMjA4YTJlNzEwMmZhZmJhZTNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC01MTAsNiAr
NTEwLDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBNZWRpYVBsYXllcjo6Y3JlYXRl
U2Vzc2lvbihjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIHsKICAgICByZXR1cm4gbV9wcml2YXRl
LT5jcmVhdGVTZXNzaW9uKGtleVN5c3RlbSk7CiB9CisKK3ZvaWQgTWVkaWFQbGF5ZXI6OnNldENE
TVNlc3Npb24oQ0RNU2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBtX3ByaXZhdGUtPnNldENETVNl
c3Npb24oc2Vzc2lvbik7Cit9CiAjZW5kaWYKICAgICAKIGRvdWJsZSBNZWRpYVBsYXllcjo6ZHVy
YXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmgKaW5kZXggMWJiODVkN2RhODg1MzlmMzhiMTQxNDc2MjkxMTBmYmVkMWYyNWY5Zi4u
YThiMTI4OWQ4YjU4OGJjNDk0NTEwNGJjNWQ3ZWM4OTZlZmM0ZjMyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zNTksNiArMzU5LDcg
QEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmIGtleVN5c3Rl
bSk7CisgICAgdm9pZCBzZXRDRE1TZXNzaW9uKENETVNlc3Npb24qKTsKICNlbmRpZgogCiAgICAg
Ym9vbCBwYXVzZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggYzAwM2RhYzg5ZDkyMzk1YmQ2NzNl
YjBhY2YxNWU0NTBiYjY1ZjQ3Yy4uNzE3YTI2ZmE2NjgyZjNhMmVhODQ4OTYzZmFlNzQyNGYyN2Ez
OGIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmgKQEAgLTIyMSw2ICsyMjEsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBX1YyKQogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENETVNl
c3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJikgeyByZXR1cm4gbnVsbHB0cjsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDRE1TZXNzaW9uKENETVNlc3Npb24qKSB7IH0KICNlbmRpZgog
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU2MDkxODZiY2VhNmRlODYwMDI0
ZjlkN2NlNjc4NWRkODg3Mjk2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ0RNUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQ19oCisjZGVmaW5lIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakNfaAor
CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
KworI2luY2x1ZGUgIkNETVByaXZhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBDRE07CisKK2NsYXNzIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMgOiBwdWJsaWMgQ0RN
UHJpdmF0ZUludGVyZmFjZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ0RNUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQyhDRE0qIGNkbSkKKyAgICAgICAgOiBtX2NkbShjZG0pCisgICAgeyB9Cisg
ICAgdmlydHVhbCB+Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpIHsgfQorCisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxDRE1Qcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoQ0RNKiBjZG0p
IHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQz4o
Y2RtKTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYp
OworICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtQW5kTWltZVR5cGUoY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworCisgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbigpIG92
ZXJyaWRlOworCisgICAgQ0RNKiBjZG0oKSBjb25zdCB7IHJldHVybiBtX2NkbTsgfQorCitwcm90
ZWN0ZWQ6CisgICAgQ0RNKiBtX2NkbTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShFTkNS
WVBURURfTUVESUFfVjIpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNlbmRpZiAvLyBDRE1Q
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBlYzZjNmFkZjlmZjM3MzQ2
ZDkxMWNjYjdmZWJjNTRmZGZiMDE1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIkNETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCIKKworI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUFfVjIpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbXBvcnQgIkNE
TS5oIgorI2ltcG9ydCAiQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIgorI2ltcG9ydCAi
Q29udGVudFR5cGUuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbXBvcnQgIk1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIgorI2ltcG9ydCAiV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgQ0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0pCit7CisgICAgaWYgKCF3a1F1ZXJ5RGVjb2RlckF2YWlsYWJpbGl0eSgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWtleVN5c3RlbS5pc0VtcHR5KCkgJiYgIWVxdWFsSWdu
b3JpbmdDYXNlKGtleVN5c3RlbSwgImNvbS5hcHBsZS5mcHMuMl8wIikpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENETVByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnN1cHBvcnRzS2V5U3lzdGVtQW5kTWltZVR5cGUoY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCit7CisgICAgaWYgKCFzdXBwb3J0c0tl
eVN5c3RlbShrZXlTeXN0ZW0pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIW1p
bWVUeXBlLmlzRW1wdHkoKSkgeworICAgICAgICBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
IHBhcmFtZXRlcnM7CisgICAgICAgIHBhcmFtZXRlcnMuaXNNZWRpYVNvdXJjZSA9IHRydWU7Cisg
ICAgICAgIHBhcmFtZXRlcnMudHlwZSA9IG1pbWVUeXBlOworCisgICAgICAgIHJldHVybiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzVHlwZShwYXJhbWV0ZXJz
KTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDRE1Qcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdXBwb3J0c01JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCit7
CisgICAgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyBwYXJhbWV0ZXJzOworICAgIHBhcmFt
ZXRlcnMuaXNNZWRpYVNvdXJjZSA9IHRydWU7CisgICAgcGFyYW1ldGVycy50eXBlID0gbWltZVR5
cGU7CisKKyAgICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpz
dXBwb3J0c1R5cGUocGFyYW1ldGVycyk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9u
PiBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKCkKK3sKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDPigpOwor
fQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKSAmJiBFTkFCTEUo
TUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25B
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggNTc2MDEwN2E2ZTkyYWZiNTdmYmM1MzI0ZjUzYmI4YThk
MjY3MTcxNy4uNmE2NDU1NmYwYThiNzQ0Nzk5MjQ0MTU4MzY1N2Y1NWExNWZlMGYyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5o
CkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2Jq
QyhNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKiBwYXJlbnQpOwogICAgIHZpcnR1
YWwgfkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDKCkgeyB9CiAKKyAgICB2aXJ0dWFsIENETVNl
c3Npb25UeXBlIHR5cGUoKSB7IHJldHVybiBDRE1TZXNzaW9uVHlwZUFWRm91bmRhdGlvbk9iakM7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQqIGNsaWVudCkg
b3ZlcnJpZGUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5n
JiBzZXNzaW9uSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nlc3Npb25JZDsgfQogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRp
b25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNv
ZGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bk1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDJiZTI0NGY0MGI4YjJhNTE3NzhhODZkY2JmZGUy
ODI2NmRhYzdhY2QuLjUzMjcyNGMxNGQyNDEyMDU0OWRkMTdjOTU5NDU4NDhjNzEwMmM3MmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDLmgKQEAgLTM5LDkgKzM5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyA6IHB1YmxpYyBDRE1TZXNzaW9uLCBwdWJsaWMg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNFcnJvckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyhTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyogcGFy
ZW50KTsKKyAgICBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKCk7CiAgICAgdmlydHVhbCB+
Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQygpOwogCisgICAgdmlydHVhbCBDRE1TZXNzaW9u
VHlwZSB0eXBlKCkgeyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVNZWRpYVNvdXJjZUFWRk9iakM7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQqIGNsaWVudCkgb3Zl
cnJpZGUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBz
ZXNzaW9uSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nlc3Npb25JZDsgfQogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25V
UkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUp
IG92ZXJyaWRlOwpAQCAtNTEsOCArNTIsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBs
YXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqLCBOU0Vycm9y
ICopOwogICAgIHZpcnR1YWwgdm9pZCByZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXIgKiwgTlNFcnJvciAqKTsKIAorICAgIHZvaWQgYWRkU291cmNlQnVm
ZmVyKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKik7CisgICAgdm9pZCByZW1vdmVTb3VyY2VC
dWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqKTsKKwogcHJvdGVjdGVkOgotICAgIFJl
ZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gbV9wYXJlbnQ7CisgICAgVmVjdG9yPFJl
ZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4+IG1fc291cmNlQnVmZmVyczsKICAgICBD
RE1TZXNzaW9uQ2xpZW50KiBtX2NsaWVudDsKICAgICBSZXRhaW5QdHI8QVZTdHJlYW1TZXNzaW9u
PiBtX3N0cmVhbVNlc3Npb247CiAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IG1faW5pdERhdGE7CkBA
IC02MCw2ICs2NCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgU3RyaW5nIG1fc2Vzc2lvbklkOwogfTsK
IAoraW5saW5lIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMqIHRvQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQyhDRE1TZXNzaW9uKiBzZXNzaW9uKQoreworICAgIGlmICghc2Vzc2lvbiB8
fCBzZXNzaW9uLT50eXBlKCkgIT0gQ0RNU2Vzc2lvblR5cGVNZWRpYVNvdXJjZUFWRk9iakMpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDRE1TZXNzaW9u
TWVkaWFTb3VyY2VBVkZPYmpDKj4oc2Vzc2lvbik7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5t
bQppbmRleCA1MWU4ODcyMjAwODgxM2ViOTE2MTU2YWQ5OGU1MGUzZjFmZmQxZWVlLi43Mzc3YThi
ZDk4YzYwODA1NmJmNTgxMTIzMmNiYTNhOGViZTUzMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTYyLDIz
ICs2MiwxOSBAQCBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVh
bVNlc3Npb24pOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakM6OkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMoU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMqIHBhcmVudCkKLSAgICA6IG1fcGFyZW50KHBhcmVudCkKLSAgICAsIG1fY2xpZW50
KG51bGxwdHIpCitDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpDRE1TZXNzaW9uTWVkaWFT
b3VyY2VBVkZPYmpDKCkKKyAgICA6IG1fY2xpZW50KG51bGxwdHIpCiAgICAgLCBtX3Nlc3Npb25J
ZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpCiB7Ci0gICAgQVNTRVJUKHBhcmVudCk7Ci0g
ICAgcGFyZW50LT5yZWdpc3RlckZvckVycm9yTm90aWZpY2F0aW9ucyh0aGlzKTsKIH0KIAogQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6fkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMo
KQogewogICAgIGlmIChtX3N0cmVhbVNlc3Npb24pIHsKLSAgICAgICAgW21fc3RyZWFtU2Vzc2lv
biByZW1vdmVTdHJlYW1EYXRhUGFyc2VyOm1fcGFyZW50LT5wYXJzZXIoKV07CisgICAgICAgIGZv
ciAoYXV0byYgc291cmNlQnVmZmVyIDogbV9zb3VyY2VCdWZmZXJzKQorICAgICAgICAgICAgW21f
c3RyZWFtU2Vzc2lvbiByZW1vdmVTdHJlYW1EYXRhUGFyc2VyOnNvdXJjZUJ1ZmZlci0+cGFyc2Vy
KCldOwogICAgICAgICBtX3N0cmVhbVNlc3Npb24gPSBuaWw7CiAgICAgfQotICAgIG1fcGFyZW50
LT51bnJlZ2lzdGVyRm9yRXJyb3JOb3RpZmljYXRpb25zKHRoaXMpOwotICAgIG1fY2xpZW50ID0g
bnVsbHB0cjsKIH0KIAogUGFzc1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWlu
dDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0
JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCkBAIC0xMzQsMTggKzEzMCwz
MyBAQCBib29sIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZShVaW50OEFycmF5
KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbgogICAgICAgICBtX2NlcnRpZmljYXRlID0ga2V5
OwogICAgIH0KIAorICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gcHJvdGVj
dGVkU291cmNlQnVmZmVyOworICAgIGZvciAoYXV0byYgc291cmNlQnVmZmVyIDogbV9zb3VyY2VC
dWZmZXJzKSB7CisgICAgICAgIGlmIChzb3VyY2VCdWZmZXItPnByb3RlY3RlZFRyYWNrSUQoKSAh
PSAtMSkgeworICAgICAgICAgICAgcHJvdGVjdGVkU291cmNlQnVmZmVyID0gc291cmNlQnVmZmVy
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoc2hvdWxk
R2VuZXJhdGVLZXlSZXF1ZXN0KSB7CiAgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IGNlcnRpZmlj
YXRlRGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6bV9jZXJ0aWZp
Y2F0ZS0+ZGF0YSgpIGxlbmd0aDptX2NlcnRpZmljYXRlLT5sZW5ndGgoKV0pOwogICAgICAgICBp
ZiAoZ2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSkgewogICAgICAgICAgICAgbV9zdHJlYW1TZXNz
aW9uID0gYWRvcHROUyhbW2dldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgYWxsb2NdIGluaXRXaXRo
QXBwSWRlbnRpZmllcjpjZXJ0aWZpY2F0ZURhdGEuZ2V0KCldKTsKLSAgICAgICAgICAgIFttX3N0
cmVhbVNlc3Npb24gYWRkU3RyZWFtRGF0YVBhcnNlcjptX3BhcmVudC0+cGFyc2VyKCldOworICAg
ICAgICAgICAgZm9yIChhdXRvJiBzb3VyY2VCdWZmZXIgOiBtX3NvdXJjZUJ1ZmZlcnMpCisgICAg
ICAgICAgICAgICAgW21fc3RyZWFtU2Vzc2lvbiBhZGRTdHJlYW1EYXRhUGFyc2VyOnNvdXJjZUJ1
ZmZlci0+cGFyc2VyKCldOwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQzo6dXBkYXRlKCVwKSAtIGNyZWF0ZWQgc3RyZWFtIHNlc3Npb24gJXAiLCB0
aGlzLCBtX3N0cmVhbVNlc3Npb24uZ2V0KCkpOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1f
c291cmNlQnVmZmVycy5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
ICAgICBpZiAoIXByb3RlY3RlZFNvdXJjZUJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworCiAgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IGluaXREYXRhID0gYWRvcHROUyhbW05TRGF0
YSBhbGxvY10gaW5pdFdpdGhCeXRlczptX2luaXREYXRhLT5kYXRhKCkgbGVuZ3RoOm1faW5pdERh
dGEtPmxlbmd0aCgpXSk7CiAKICAgICAgICAgTlNFcnJvciogZXJyb3IgPSBuaWw7Ci0gICAgICAg
IFJldGFpblB0cjxOU0RhdGE+IHJlcXVlc3QgPSBbbV9wYXJlbnQtPnBhcnNlcigpIHN0cmVhbWlu
Z0NvbnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFwcDpjZXJ0aWZpY2F0ZURhdGEuZ2V0KCkgY29udGVu
dElkZW50aWZpZXI6aW5pdERhdGEuZ2V0KCkgdHJhY2tJRDptX3BhcmVudC0+cHJvdGVjdGVkVHJh
Y2tJRCgpIG9wdGlvbnM6bmlsIGVycm9yOiZlcnJvcl07CisgICAgICAgIFJldGFpblB0cjxOU0Rh
dGE+IHJlcXVlc3QgPSBbcHJvdGVjdGVkU291cmNlQnVmZmVyLT5wYXJzZXIoKSBzdHJlYW1pbmdD
b250ZW50S2V5UmVxdWVzdERhdGFGb3JBcHA6Y2VydGlmaWNhdGVEYXRhLmdldCgpIGNvbnRlbnRJ
ZGVudGlmaWVyOmluaXREYXRhLmdldCgpIHRyYWNrSUQ6cHJvdGVjdGVkU291cmNlQnVmZmVyLT5w
cm90ZWN0ZWRUcmFja0lEKCkgb3B0aW9uczpuaWwgZXJyb3I6JmVycm9yXTsKIAogICAgICAgICBp
ZiAoZXJyb3IpIHsKICAgICAgICAgICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakM6OnVwZGF0ZSglcCkgLSBlcnJvcjolQCIsIHRoaXMsIFtlcnJvciBkZXNjcmlwdGlv
bl0pOwpAQCAtMTU5LDExICsxNzAsMTIgQEAgYm9vbCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG4KICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIEFTU0VSVCghbV9zb3VyY2VCdWZmZXJzLmlz
RW1wdHkoKSk7CiAgICAgTE9HKE1lZGlhLCAiQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6
dXBkYXRlKCVwKSAtIGtleSBkYXRhIiwgdGhpcyk7CiAgICAgZXJyb3JDb2RlID0gTWVkaWFQbGF5
ZXI6Ok5vRXJyb3I7CiAgICAgc3lzdGVtQ29kZSA9IDA7CiAgICAgUmV0YWluUHRyPE5TRGF0YT4g
a2V5RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6a2V5LT5kYXRh
KCkgbGVuZ3RoOmtleS0+bGVuZ3RoKCldKTsKLSAgICBbbV9wYXJlbnQtPnBhcnNlcigpIHByb2Nl
c3NDb250ZW50S2V5UmVzcG9uc2VEYXRhOmtleURhdGEuZ2V0KCkgZm9yVHJhY2tJRDptX3BhcmVu
dC0+cHJvdGVjdGVkVHJhY2tJRCgpXTsKKyAgICBbcHJvdGVjdGVkU291cmNlQnVmZmVyLT5wYXJz
ZXIoKSBwcm9jZXNzQ29udGVudEtleVJlc3BvbnNlRGF0YTprZXlEYXRhLmdldCgpIGZvclRyYWNr
SUQ6cHJvdGVjdGVkU291cmNlQnVmZmVyLT5wcm90ZWN0ZWRUcmFja0lEKCldOwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC0xODMsNiArMTk1LDMwIEBAIHZvaWQgQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQzo6cmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1Jl
CiAgICAgbV9jbGllbnQtPnNlbmRFcnJvcihDRE1TZXNzaW9uQ2xpZW50OjpNZWRpYUtleUVycm9y
RG9tYWluLCBhYnMoW2Vycm9yIGNvZGVdKSk7CiB9CiAKK3ZvaWQgQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQzo6YWRkU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBz
b3VyY2VCdWZmZXIpCit7CisgICAgQVNTRVJUKCFtX3NvdXJjZUJ1ZmZlcnMuY29udGFpbnMoc291
cmNlQnVmZmVyKSk7CisgICAgQVNTRVJUKHNvdXJjZUJ1ZmZlcik7CisKKyAgICBtX3NvdXJjZUJ1
ZmZlcnMuYXBwZW5kKHNvdXJjZUJ1ZmZlcik7CisgICAgc291cmNlQnVmZmVyLT5yZWdpc3RlckZv
ckVycm9yTm90aWZpY2F0aW9ucyh0aGlzKTsKKworICAgIGlmIChtX3N0cmVhbVNlc3Npb24pCisg
ICAgICAgIFttX3N0cmVhbVNlc3Npb24gYWRkU3RyZWFtRGF0YVBhcnNlcjpzb3VyY2VCdWZmZXIt
PnBhcnNlcigpXTsKK30KKwordm9pZCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW1v
dmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHNvdXJjZUJ1ZmZlcikK
K3sKKyAgICBBU1NFUlQobV9zb3VyY2VCdWZmZXJzLmNvbnRhaW5zKHNvdXJjZUJ1ZmZlcikpOwor
ICAgIEFTU0VSVChzb3VyY2VCdWZmZXIpOworCisgICAgaWYgKG1fc3RyZWFtU2Vzc2lvbikKKyAg
ICAgICAgW21fc3RyZWFtU2Vzc2lvbiByZW1vdmVTdHJlYW1EYXRhUGFyc2VyOnNvdXJjZUJ1ZmZl
ci0+cGFyc2VyKCldOworCisgICAgc291cmNlQnVmZmVyLT51bnJlZ2lzdGVyRm9yRXJyb3JOb3Rp
ZmljYXRpb25zKHRoaXMpOworICAgIG1fc291cmNlQnVmZmVycy5yZW1vdmUobV9zb3VyY2VCdWZm
ZXJzLmZpbmQoc291cmNlQnVmZmVyKSk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCmluZGV4IDMxMjIxMjljZmY4YzM3ZTI0NGM1MjY1NjZlZGJlMTRlMDAxYTI1MGUu
LmJjZGZlZGYwOTZjYzg3Mjc0MTMzOWI4ODY2YzRkYWRlNmRlYzlmMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5oCkBAIC00Myw2ICs0Myw3IEBAIHR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGlt
ZWJhc2UqIENNVGltZWJhc2VSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzsKIGNsYXNzIFBsYXRmb3JtQ2xvY2tDTTsKIGNsYXNz
IE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7CiAKQEAgLTUzLDYgKzU0LDEyIEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3Ry
YXIpOwogCisgICAgLy8gTWVkaWFQbGF5ZXIgRmFjdG9yeSBNZXRob2RzCisgICAgc3RhdGljIFBh
c3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIq
KTsKKyAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOworICAgIHN0YXRpYyB2b2lkIGdldFN1
cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOworICAgIHN0YXRpYyBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQ
YXJhbWV0ZXJzJik7CisKICAgICB2b2lkIGFkZERpc3BsYXlMYXllcihBVlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllciopOwogICAgIHZvaWQgcmVtb3ZlRGlzcGxheUxheWVyKEFWU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyKik7CiAKQEAgLTc1LDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2l6
ZUNoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCi0gICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcm
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q0RNU2Vzc2lvbihDRE1TZXNzaW9uKikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBrZXlOZWVkZWQoVWludDhBcnJheSopOwogI2VuZGlmCiAKQEAgLTE2MSwxMyAr
MTY4LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHNob3VsZEJlUGxheWluZygpIGNvbnN0OwogICAg
IHZvaWQgc2Vla1RpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDPiYpOwogCi0gICAgLy8gTWVkaWFQbGF5ZXIgRmFjdG9yeSBNZXRob2RzCi0gICAgc3Rh
dGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQ
bGF5ZXIqKTsKLSAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwotICAgIHN0YXRpYyB2b2lk
IGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwotICAgIHN0YXRpYyBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzJik7Ci0gICAgc3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwotCiAgICAgZnJp
ZW5kIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7CiAKICAgICBzdHJ1Y3QgUGVuZGlu
Z1NlZWsgewpAQCAtMTkzLDYgKzE5Myw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPiBt
X3RpbWVKdW1wZWRPYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8aWQ+IG1fZHVyYXRpb25PYnNlcnZl
cjsKICAgICBUaW1lcjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+IG1fc2Vl
a1RpbWVyOworICAgIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMqIG1fc2Vzc2lvbjsKICAg
ICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlOwogICAgIE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKICAgICBNZWRpYVRpbWUgbV9sYXN0U2Vla1Rp
bWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggZDY1YWYzMTcwYmE4NThlZWY3YTUz
NGFlYjY4MjQ1ZThiOTc2ODRkNi4uOTI4NDIwYWY3ODQzYjRhNTQ5MWI2M2NmNGFjMTliMmIyZTNi
ODI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMjgsNyArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEFWRk9VTkRBVElPTikKIAotI2ltcG9ydCAi
Q0RNU2Vzc2lvbi5oIgorI2ltcG9ydCAiQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIgog
I2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5o
IgogI2ltcG9ydCAiTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmgiCkBAIC0xMzYsNiArMTM2LDcg
QEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWEKICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykK
ICAgICAsIG1fc3luY2hyb25pemVyKGFkb3B0TlMoW1tnZXRBVlNhbXBsZUJ1ZmZlclJlbmRlclN5
bmNocm9uaXplckNsYXNzKCkgYWxsb2NdIGluaXRdKSkKICAgICAsIG1fc2Vla1RpbWVyKHRoaXMs
ICZNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNlZWtUaW1lckZpcmVkKQor
ICAgICwgbV9zZXNzaW9uKG51bGxwdHIpCiAgICAgLCBtX25ldHdvcmtTdGF0ZShNZWRpYVBsYXll
cjo6RW1wdHkpCiAgICAgLCBtX3JlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nKQog
ICAgICwgbV9yYXRlKDEpCkBAIC0xOTQsNyArMTk1LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKCkK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlh
RW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKICAgICBpZiAoaXNBdmFp
bGFibGUoKSkKLSAgICAgICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1
cHBvcnRzVHlwZSwgMCwgMCwgMCwgc3VwcG9ydHNLZXlTeXN0ZW0pOworICAgICAgICByZWdpc3Ry
YXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsK
IH0KIAogUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCkBA
IC0yMzMsMjAgKzIzNCw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5CiAgICAgdHlwZXMgPSBt
aW1lVHlwZUNhY2hlKCk7CiB9CiAKLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQotc3Rh
dGljIGJvb2wga2V5U3lzdGVtSXNTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCi17
Ci0gICAgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKGtleVN5c3RlbSwgImNvbS5hcHBsZS5mcHMu
Ml8wIik7Ci19Ci0jZW5kaWYKLQogTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2lu
ZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUFfVjIpCi0gICAgaWYgKCFwYXJhbWV0ZXJzLmtleVN5c3RlbS5pc0VtcHR5KCkgJiYgIWtl
eVN5c3RlbUlzU3VwcG9ydGVkKHBhcmFtZXRlcnMua2V5U3lzdGVtKSkKLSAgICAgICAgICAgIHJl
dHVybiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7Ci0jZW5kaWYKLQogICAgIC8vIFRoaXMg
ZW5naW5lIGRvZXMgbm90IHN1cHBvcnQgbm9uLW1lZGlhLXNvdXJjZSBzb3VyY2VzLgogICAgIGlm
ICghcGFyYW1ldGVycy5pc01lZGlhU291cmNlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6
OklzTm90U3VwcG9ydGVkOwpAQCAtMjYzLDI4ICsyNTIsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBl
KGNvbgogICAgIHJldHVybiBbZ2V0QVZVUkxBc3NldENsYXNzKCkgaXNQbGF5YWJsZUV4dGVuZGVk
TUlNRVR5cGU6dHlwZVN0cmluZ10gPyBNZWRpYVBsYXllcjo6SXNTdXBwb3J0ZWQgOiBNZWRpYVBs
YXllcjo6TWF5QmVTdXBwb3J0ZWQ7OwogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0s
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCi17Ci0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9W
MikKLSAgICBpZiAoIXdrUXVlcnlEZWNvZGVyQXZhaWxhYmlsaXR5KCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIGlmICgha2V5U3lzdGVtLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAo
IWtleVN5c3RlbUlzU3VwcG9ydGVkKGtleVN5c3RlbSkpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICAgICAgaWYgKCFtaW1lVHlwZS5pc0VtcHR5KCkgJiYgIW1pbWVUeXBlQ2FjaGUo
KS5jb250YWlucyhtaW1lVHlwZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oa2V5U3lzdGVt
KTsKLSAgICBVTlVTRURfUEFSQU0obWltZVR5cGUpOwotI2VuZGlmCi0gICAgcmV0dXJuIGZhbHNl
OwotfQotCiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZSBPdmVycmlkZXMKIApAQCAtNjkyLDEyICs2NTksMjAgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNpemVDaGFuZ2VkKCkKIH0KIAogI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUFfVjIpCi1zdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnNldENETVNlc3Npb24oQ0RNU2Vzc2lvbiogc2Vzc2lvbikKIHsKLSAgICBpZiAoIW1fbWVkaWFT
b3VyY2VQcml2YXRlKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAobV9zZXNzaW9u
KSB7CisgICAgICAgIGZvciAoYXV0byYgc291cmNlQnVmZmVyIDogbV9tZWRpYVNvdXJjZVByaXZh
dGUtPnNvdXJjZUJ1ZmZlcnMoKSkKKyAgICAgICAgICAgIG1fc2Vzc2lvbi0+cmVtb3ZlU291cmNl
QnVmZmVyKHNvdXJjZUJ1ZmZlci5nZXQoKSk7CisgICAgICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7
CisgICAgfQogCi0gICAgcmV0dXJuIG1fbWVkaWFTb3VyY2VQcml2YXRlLT5jcmVhdGVTZXNzaW9u
KGtleVN5c3RlbSk7CisgICAgbV9zZXNzaW9uID0gdG9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDKHNlc3Npb24pOworCisgICAgaWYgKG1fc2Vzc2lvbikgeworICAgICAgICBmb3IgKGF1dG8m
IHNvdXJjZUJ1ZmZlciA6IG1fbWVkaWFTb3VyY2VQcml2YXRlLT5zb3VyY2VCdWZmZXJzKCkpCisg
ICAgICAgICAgICBtX3Nlc3Npb24tPmFkZFNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXIuZ2V0KCkp
OworICAgIH0KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmtleU5lZWRlZChVaW50OEFycmF5KiBpbml0RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0
ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaAppbmRleCBjYmQxZDRlOTJhM2I1NGNj
NzM2NjM1Nzc3NWRlZGE5MTMyODQ5ZGE3Li41ZjlmYTRkOGVhMjJkYmJlM2NkZmY2NDBlMmE1NmJl
ZGJkZjRlODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQ
cml2YXRlQVZGT2JqQy5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5N
ZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKCk7CiAKICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMqIHBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyOyB9CisgICAg
Y29uc3QgVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4+JiBzb3VyY2VC
dWZmZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VCdWZmZXJzOyB9CiAgICAgY29uc3QgVmVj
dG9yPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKj4mIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMoKSBj
b25zdCB7IHJldHVybiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnM7IH0KIAogICAgIHZpcnR1YWwgQWRk
U3RhdHVzIGFkZFNvdXJjZUJ1ZmZlcihjb25zdCBDb250ZW50VHlwZSYsIFJlZlB0cjxTb3VyY2VC
dWZmZXJQcml2YXRlPiYpIG92ZXJyaWRlOwpAQCAtNzYsMTAgKzc3LDYgQEAgcHVibGljOgogICAg
IE1lZGlhVGltZSBmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiwgY29u
c3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2
ZVRocmVzaG9sZCk7CiAgICAgSW50U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0OwogCi0jaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4g
Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmKTsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIE1l
ZGlhU291cmNlUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDKiwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJp
dmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tCmluZGV4IGYyYTRiMzRmMzA0
NzI2ZGRkZTNhZWMyY2ZjMDM1MGJhNDJlOWU1NDUuLjc5MmVkOTg1NTFiYzQwNTRiODgxMTRmZjQ2
MmViZTE0YWQxNThmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFT
b3VyY2VQcml2YXRlQVZGT2JqQy5tbQpAQCAtMTUzLDE4ICsxNTMsNiBAQCB2b2lkIE1lZGlhU291
cmNlUHJpdmF0ZUFWRk9iakM6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0
ZShTb3VyY2VCdQogfQogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKLXN0ZDo6dW5p
cXVlX3B0cjxDRE1TZXNzaW9uPiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpjcmVhdGVTZXNz
aW9uKGNvbnN0IFN0cmluZyYpCi17Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDkwCi0gICAgaWYgKG1fc291cmNlQnVmZmVyc05lZWRpbmdTZXNzaW9ucy5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM+KG1fc291cmNlQnVmZmVyc05lZWRpbmdTZXNz
aW9ucy50YWtlRmlyc3QoKSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKIHZvaWQgTWVkaWFTb3VyY2VQcml2
YXRlQVZGT2JqQzo6c291cmNlQnVmZmVyS2V5TmVlZGVkKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDKiBidWZmZXIsIFVpbnQ4QXJyYXkqIGluaXREYXRhKQogewogICAgIG1fc291cmNlQnVmZmVy
c05lZWRpbmdTZXNzaW9ucy5hcHBlbmQoYnVmZmVyKTsK
</data>
<flag name="review"
          id="261445"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236821</attachid>
            <date>2014-08-19 12:51:49 -0700</date>
            <delta_ts>2014-09-02 18:28:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-136016-20140819125136.patch</filename>
            <type>text/plain</type>
            <size>39757</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTEzODBkOWQ1NzdhYTg4
NDY5NjY5ZGZkNDQwYzNhOTRlODE1NDI0NC4uNDM2N2I0NmVkYTRiMjlkNzIyMDQwZjM2NGU3Njg2
OWUzYjgxMTVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE0LTA4LTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdW01hY10gUmVmYWN0
b3IgQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyB0byBhbGxvdyBzZXNzaW9ucyB0byBiZSBj
cmVhdGVkIHdpdGhvdXQgYmVpbmcgYXR0YWNoZWQgdG8gYW4gQVZTdHJlYW1EYXRhUGFyc2VyLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRoZSBDRE1Qcml2
YXRlTWVkaWFQbGF5ZXIgY2xhc3Mgd2lsbCBkZWxlZ2F0ZSBjcmVhdGlvbiBvZiBDRE1TZXNzaW9u
IGluc3RhbmNlcyB0byB0aGUgY3VycmVudCBNZWRpYVBsYXllci4gVGhpcworICAgICAgICBvZiBj
b3Vyc2UgcmVxdWlyZXMgdGhlIE1lZGlhS2V5cyBvYmplY3Qgb3duaW5nIHRoZSBDRE0gdG8gYmUg
YXR0YWNoZWQgdG8gYSBIVE1MTWVkaWFFbGVtZW50LCBhbmQgc3BlY2lmaWNhbGx5IHRvCisgICAg
ICAgIG9uZSB3aXRoIGEgdmFsaWQgc3JjIGF0dHJpYnV0ZSBvciBzb3VyY2Ugbm9kZSB3aGljaCBo
YXMgc3VjZXNzZnVsbHkgYmVndW4gbG9hZGluZy4gRm9yIGNlcnRhaW4gQ0RNIG9wZXJhdGlvbnMs
CisgICAgICAgIGl0IHdvdWxkIGJlIGJldHRlciBpZiBhIGdpdmVuIE1lZGlhS2V5cyBjb3VsZCBj
cmVhdGUgYSBzZXNzaW9uIHdpdGhvdXQgYWN0dWFsbHkgYmVpbmcgY29ubmVjdGVkIHRvIGEKKyAg
ICAgICAgSFRNTE1lZGlhRWxlbWVudCAoeWV0KS4KKworICAgICAgICBUbyBmYWNpbGl0YXRlIHRo
aXMgZm9yIENETVNlc3Npb25Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLCBhZGQgYSBuZXcgY2xh
c3MsIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMsIHdoaWNoCisgICAgICAgIGlzIHRoZSBw
cmltYXJ5IGZhY3RvcnkgZm9yIENETVNlc3Npb25Qcml2YXRlTWVkaWFTT3VyY2VBVkZPYmpDLiBE
aXNjbGFpbSByZXNwb25zaWJpbGl0eSBmb3IgY3JlYXRpbmcgdGhlc2Ugc2Vzc2lvbnMKKyAgICAg
ICAgaW4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIGJ5IG5vdCBwYXNzaW5n
IHRoZSAic3VwcG9ydHNLZXlTeXN0ZW0iIG1ldGhvZCB3aGVuIHJlZ2lzdGVyaW5nIGl0c2VsZi4K
KworICAgICAgICBBZGQgbWV0aG9kcyB0byBDRE1TZXNzaW9uUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQyB0byBhbGxvdyBTb3VyY2VCdWZmZXJzIHRvIGJlIGFkZGVkIGFuZCByZW1vdmVkIGZyb20g
dGhlIHNlc3Npb24sCisgICAgICAgIHRvIHN1cHBvcnQgYWRkaW5nIHRoZSBzZXNzaW9uIHRvIHRo
ZSBIVE1MTWVkaWFFbGVtZW50IGFmdGVyIHRoZSBzZXNzaW9uIGhhcyBiZWVuIGNyZWF0ZWQuCisK
KyAgICAgICAgU2luY2UgTWVkaWFQbGF5ZXJQcml2YXRlIGluc3RhbmNlIGFuZCAgQ0RNU2Vzc2lv
biBpbnN0YW5jZXMgbXVzdCBiZSBhYmxlIHRvIGNvbW11bmljYXRlIHdpdGggb25lIGFub3RoZXIs
IGFkZCBhIHR5cGUoKQorICAgICAgICBlbnVtIGFuZCB2aXJ0dWFsIG1ldGhvZCB0byBhbGxvdyBD
RE1TZXNzaW9uIGluc3RuYWNlcyB0byBiZSBkaXN0aW5ndWlzdGVkIGZyb20gKGFuZCBjYXN0ZWQg
dG8pIG9uZSBhbm90aGVyLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5zdGFsbGVkQ0RNRmFjdG9yaWVzKTogUmVnaXN0ZXIg
Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy4KKyAgICAgICAgKFdlYkNvcmU6OkNETTo6Y3Jl
YXRlU2Vzc2lvbik6IE5vdGlmeSB0aGUgTWVkaWFQbGF5ZXIgb2YgdGhlIG5ldyBDRE1TZXNzaW9u
LgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmg6Cisg
ICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlzOjpzZXRNZWRpYUVsZW1lbnQpOiBOb3RpZnkgdGhlIEhUTUxNZWRp
YUVsZW1lbnQgb2YgYW55IGV4aXN0aW5nIHNlc3Npb25zLgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9DRE1T
ZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uOjp0eXBlKTogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnNldENETVNlc3Npb24pOiBQYXNzIHRocm91Z2ggdG8gdGhlIE1l
ZGlhUGxheWVyUHJpdmF0ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRDRE1TZXNz
aW9uKTogQWRkZWQuIERlZmF1bHQgbm8tb3AuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpDRE1Qcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDKTogU2ltcGxlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6
Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6fkNETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMpOiBTaW1wbGUgZGVzdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OmNyZWF0ZSk6IFNpbXBsZSBmYWN0b3J5LgorICAgICAgICAoV2ViQ29y
ZTo6Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y2RtKTogU2ltcGxlIGFjY2Vzc29yLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tOiAKKyAgICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OnN1cHBvcnRzS2V5U3lzdGVtKTogTW92ZWQgZnJvbSBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuCisgICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdXBwb3J0c0tleVN5c3RlbUFuZE1pbWVUeXBlKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c01JTUVU
eXBlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpjcmVhdGVTZXNzaW9uKTogUmV0dXJucyBuZXcgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZG
T2JqQy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFW
Rm91bmRhdGlvbk9iakM6OnR5cGUpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp0eXBlKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjp0b0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMpOiBUaHJv
dyBhc3NlcnRpb24gaWYgdHlwZSgpIGlzIG5vdCBjb3JyZWN0LgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpDRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKTogUmVtb3ZlZCBtX3BhcmVudCBpdmFyLgorICAgICAg
ICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6fkNETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakM6OnVwZGF0ZSk6IERldGVybWluZyB3aGljaCBTb3VyY2VCdWZmZXIgaXMg
cHJvdGVjdGVkLgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qzo6YWRkU291cmNlQnVmZmVyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9u
TWVkaWFTb3VyY2VBVkZPYmpDOjpyZW1vdmVTb3VyY2VCdWZmZXIpOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBS
ZW1vdmUgc3VwcG9ydHNLZXlUeXBlIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKTogUmVtb3ZlIGtl
eVR5cGUgY2hlY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnNldENETVNlc3Npb24pOiBUZWxsIHRoZSBDRE1TZXNzaW9uIGFib3V0IG91
dHN0YW5kaW5nIFNvdXJjZUJ1ZmZlcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9i
akMubW06CisKIDIwMTQtMDgtMTggIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4K
IAogICAgICAgICBVc2UgTlNVUkxGaWxlVHlwZU1hcHBpbmdzIGRpcmVjdGx5IGluc3RlYWQgb2Yg
ZGVwZW5kaW5nIG9uIFdlYktpdFN5c3RlbUludGVyZmFjZSB3cmFwcGVycyBmb3IgaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcAppbmRleCA5NjdjMjNl
ZDBkNGU0NzYyZjIxMDUwYTJmYmE3YjY0MmY2ZTgwZjYxLi41NjUxYjkxYjUzYzAzYjcyYmU4ZjBi
MjAzMTgzMmJlYzFmNjE0NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9DRE0uY3BwCkBAIC0zMyw5ICszMywxNCBAQAogI2luY2x1ZGUgIkNETVNlc3Npb24u
aCIKICNpbmNsdWRlICJNZWRpYUtleUVycm9yLmgiCiAjaW5jbHVkZSAiTWVkaWFLZXlzLmgiCisj
aW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKKyNpbmNsdWRlICJDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgQ0RNRmFjdG9y
eSB7CkBAIC02Miw2ICs2NywxMCBAQCBzdGF0aWMgVmVjdG9yPENETUZhY3RvcnkqPiYgaW5zdGFs
bGVkQ0RNRmFjdG9yaWVzKCkKIAogICAgICAgICAvLyBGSVhNRTogaW5pdGlhbGl6ZSBzcGVjaWZp
YyBVQSBDRE1zLiBodHRwOi8vd2Via2l0Lm9yZy9iLzEwOTMxOCwgaHR0cDovL3dlYmtpdC5vcmcv
Yi8xMDkzMjAKICAgICAgICAgY2Rtcy5nZXQoKS5hcHBlbmQobmV3IENETUZhY3RvcnkoQ0RNUHJp
dmF0ZU1lZGlhUGxheWVyOjpjcmVhdGUsIENETVByaXZhdGVNZWRpYVBsYXllcjo6c3VwcG9ydHNL
ZXlTeXN0ZW0sIENETVByaXZhdGVNZWRpYVBsYXllcjo6c3VwcG9ydHNLZXlTeXN0ZW1BbmRNaW1l
VHlwZSkpOworCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQorICAg
ICAgICBjZG1zLmdldCgpLmFwcGVuZChuZXcgQ0RNRmFjdG9yeShDRE1Qcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpjcmVhdGUsIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRz
S2V5U3lzdGVtLCBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c0tleVN5c3Rl
bUFuZE1pbWVUeXBlKSk7CisjZW5kaWYKICAgICB9CiAKICAgICByZXR1cm4gY2RtczsKQEAgLTEy
MCw3ICsxMjksMTAgQEAgYm9vbCBDRE06OnN1cHBvcnRzTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSkgY29uc3QKIAogc3RkOjp1bmlxdWVfcHRyPENETVNlc3Npb24+IENETTo6Y3JlYXRl
U2Vzc2lvbigpCiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y3JlYXRlU2Vzc2lvbigpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBzZXNzaW9uID0gbV9wcml2YXRlLT5jcmVhdGVT
ZXNzaW9uKCk7CisgICAgaWYgKG1lZGlhUGxheWVyKCkpCisgICAgICAgIG1lZGlhUGxheWVyKCkt
PnNldENETVNlc3Npb24oc2Vzc2lvbi5nZXQoKSk7CisgICAgcmV0dXJuIHNlc3Npb247CiB9CiAK
IE1lZGlhUGxheWVyKiBDRE06Om1lZGlhUGxheWVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCmluZGV4
IGI1ZjQxNDZlZmU4YTNhODAyNmNkOGU3ZjIwMTM5NTJlM2I5NzliYzEuLjA0OGMwMTkwNTVkYmRl
NmE5MGJkMThmMTZmMDRhMTBlYzY1N2I1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaApAQCAtNTEsNiArNTEs
NyBAQCBwdWJsaWM6CiAgICAgfk1lZGlhS2V5U2Vzc2lvbigpOwogCiAgICAgY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0oKSBjb25zdCB7IHJldHVybiBtX2tleVN5c3RlbTsgfQorICAgIENETVNlc3Np
b24qIHNlc3Npb24oKSB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KICAgICBjb25zdCBTdHJp
bmcmIHNlc3Npb25JZCgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRFcnJvcihNZWRpYUtleUVycm9y
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5cy5jcHAKaW5kZXggZjNjMjEyZjU0MWZjZGE4YTNlNjM2OTA3Y2ZjYjEzMjQ1ZDY0MmEyMi4u
ZjNlMzdiMWQ2ZDBiMjJmNTUzOGRjN2JkYWJjMmVjNGM3MmZjZWFlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcApAQCAtMTQ0
LDcgKzE0NCwxMyBAQCBib29sIE1lZGlhS2V5czo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogCiB2b2lkIE1lZGlhS2V5czo6
c2V0TWVkaWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgaWYgKG1f
bWVkaWFFbGVtZW50KQorICAgICAgICBtX21lZGlhRWxlbWVudC0+cGxheWVyKCktPnNldENETVNl
c3Npb24obnVsbHB0cik7CisKICAgICBtX21lZGlhRWxlbWVudCA9IGVsZW1lbnQ7CisKKyAgICBp
ZiAobV9tZWRpYUVsZW1lbnQgJiYgIW1fc2Vzc2lvbnMuaXNFbXB0eSgpKQorICAgICAgICBtX21l
ZGlhRWxlbWVudC0+cGxheWVyKCktPnNldENETVNlc3Npb24obV9zZXNzaW9ucy5sYXN0KCktPnNl
c3Npb24oKSk7CiB9CiAKIE1lZGlhUGxheWVyKiBNZWRpYUtleXM6OmNkbU1lZGlhUGxheWVyKGNv
bnN0IENETSopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMTYxZDVjOGQ4OGM1NDNlODlkNDYxMjgzMDQzM2ZmNTMwN2U3
ODIwNi4uY2YwYzdhNTRlNGNmYTdlNDBkZDQ5YTMyODgyYjc4NzRkNGRiZDk1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTYx
MSw2ICs1NjExLDggQEAKIAkJQ0QyRjRBMjQxOEQ4OUY3MDAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdh
cmVMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0QyRjRBMjIxOEQ4OUY3MDAwNjM3NDZEIC8qIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMkY0QTI3
MThEOEEzNDkwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyRjRBMjUxOEQ4QTM0OTAw
NjM3NDZEIC8qIEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAgKi87IH07CiAJCUNEMkY0QTI4
MThEOEEzNDkwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMkY0QTI2MThEOEEzNDkwMDYz
NzQ2RCAvKiBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuaCAqLzsgfTsKKwkJQ0QzMTg2MjIxOTlG
MUUyQTAwMzBBMEY3IC8qIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDMxODYyMDE5OUYxRTJBMDAz
MEEwRjcgLyogQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLzsgfTsKKwkJQ0QzMTg2
MjMxOTlGMUUyQTAwMzBBMEY3IC8qIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzE4NjIxMTk5RjFF
MkEwMDMwQTBGNyAvKiBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi87IH07CiAJCUNE
MzM2RjYxMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzMzZGNUYxN0Y5
RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gKi87IH07CiAJCUNE
MzM2RjYyMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDMzNkY2MDE3RjlG
NjQ3MDBERERDRDAgLyogQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oICovOyB9OwogCQlDRDMz
NkY2NDE3RkEwQTREMDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkYuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzM2RjYzMTdGQTBBNEQwMERE
RENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oICovOyB9OwpAQCAtMTMwNDIsNiArMTMwNDQs
OCBAQAogCQlDRDJGNEEyMjE4RDg5RjcwMDA2Mzc0NkQgLyogQXVkaW9IYXJkd2FyZUxpc3RlbmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvSGFyZHdhcmVMaXN0ZW5l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDJGNEEyNTE4RDhBMzQ5MDA2Mzc0
NkQgLyogQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEF1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEMkY0QTI2MThEOEEzNDkwMDYzNzQ2RCAvKiBBdWRpb0hhcmR3
YXJlTGlzdGVuZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9I
YXJkd2FyZUxpc3RlbmVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzE4
NjIwMTk5RjFFMkEwMDMwQTBGNyAvKiBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ0RNUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzMTg2MjExOTlG
MUUyQTAwMzBBMEY3IC8qIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDMyQTE4OTE4NEVCNDZBMDAyOUIxQkIgLyog
bWVkaWFDb250cm9sc2lPUy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0
aCA9IG1lZGlhQ29udHJvbHNpT1MuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
MzM2RjVGMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZUcmFja1ByaXZhdGVBVkZP
YmpDSW1wbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzMzZGNjAxN0Y5RjY0
NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjE2NTIsNiArMjE2NTYsOCBAQAogCQkJCUNENTRBNzYxMTgw
RjlGNzAwMEIwNzZDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICov
LAogCQkJCUNEMzM2RjYwMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsLmggKi8sCiAJCQkJQ0QzMzZGNUYxN0Y5RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGwubW0gKi8sCisJCQkJQ0QzMTg2MjExOTlGMUUyQTAwMzBBMEY3IC8qIENETVBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLywKKwkJCQlDRDMxODYyMDE5OUYxRTJBMDAzMEEw
RjcgLyogQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLywKIAkJCQlDRERFMDJFQTE4
QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaCAqLywKIAkJCQlD
RERFMDJFQjE4QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0g
Ki8sCiAJCQkJQ0RERTAyRUUxOEI1NjRGQTAwQ0Y3RkYxIC8qIENETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakMuaCAqLywKQEAgLTI0NTk1LDYgKzI0NjAxLDcgQEAKIAkJCQlCMjc1MzU3MTBCMDUz
ODE0MDAyQ0U2NEYgLyogSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCMzQ4MDk0
MEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNvdXJjZUNHLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTZGRTExODBFNkUxREE3MDBCRjYwODggLyogSW1wbGljaXRBbmltYXRpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNEMzE4NjIzMTk5RjFFMkEwMDMwQTBGNyAvKiBDRE1Qcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTE2QzU5MzE3Q0ZFMTcyMDA4NTJDMDQg
LyogSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5NDE3OTIx
NjZFODU1RjAwOTQxNkMyIC8qIEluYmFuZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc5NDE3OTQxNjZFQTA0RTAwOTQxNkMyIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjc1MzIsNiArMjc1MzksNyBAQAogCQkJCTg1QkE0Q0RFMEFBNjg2MUIw
MDg4MDUyRCAvKiBET01IVE1MQnV0dG9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkz
RjlCNjU3MEJBMEYzNUUwMDg1NDA2NCAvKiBET01IVE1MQ2FudmFzRWxlbWVudC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1REYyRjhGMEFBM0M4ODEwMEFENjRDNSAvKiBET01IVE1MQ29sbGVjdGlv
bi5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEMzE4NjIyMTk5RjFFMkEwMDMwQTBGNyAvKiBDRE1Q
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjVDMDQxRTQw
RkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAq
LywKIAkJCQlEMzU5RDc5MjEyOUNBM0MwMDAwNkU1RDIgLyogRE9NSFRNTERldGFpbHNFbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMEMwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhU
TUxEaXJlY3RvcnlFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DRE1TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9DRE1TZXNzaW9uLmgKaW5kZXggZmJiNDMxNzg2YmM0Nzg2MzJhNzFi
NDE5NmExY2E2ODRiMDRhZmRlZS4uODBhODVlMzUzODU2MTdiM2U0Yjk3MjU5NzIwNzg5MWZmZmZk
MzUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ0RNU2Vz
c2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NETVNlc3Npb24u
aApAQCAtNTIsMTEgKzUyLDE4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VuZEVycm9y
KE1lZGlhS2V5RXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nIHN5c3RlbUNvZGUpID0gMDsKIH07CiAK
K2VudW0gQ0RNU2Vzc2lvblR5cGUgeworICAgIENETVNlc3Npb25UeXBlVW5rbm93biwKKyAgICBD
RE1TZXNzaW9uVHlwZUFWRm91bmRhdGlvbk9iakMsCisgICAgQ0RNU2Vzc2lvblR5cGVNZWRpYVNv
dXJjZUFWRk9iakMsCit9OworCiBjbGFzcyBDRE1TZXNzaW9uIHsKIHB1YmxpYzoKICAgICBDRE1T
ZXNzaW9uKCkgeyB9CiAgICAgdmlydHVhbCB+Q0RNU2Vzc2lvbigpIHsgfQogCisgICAgdmlydHVh
bCBDRE1TZXNzaW9uVHlwZSB0eXBlKCkgeyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVVbmtub3duOyB9
CiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChDRE1TZXNzaW9uQ2xpZW50KikgPSAwOwogICAg
IHZpcnR1YWwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwg
dW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CmluZGV4IDc5NmE2NWYzMzFlYzBlMzFkOGU3ODFmZTlhOTA5NTM3NDJhMGQ3ZTMuLjE1MWYxMzFj
MWRjYjRkNDg1M2Y2NmYyMDhhMmU3MTAyZmFmYmFlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTUxMCw2ICs1MTAsMTEgQEAg
c3RkOjp1bmlxdWVfcHRyPENETVNlc3Npb24+IE1lZGlhUGxheWVyOjpjcmVhdGVTZXNzaW9uKGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtKQogewogICAgIHJldHVybiBtX3ByaXZhdGUtPmNyZWF0ZVNl
c3Npb24oa2V5U3lzdGVtKTsKIH0KKwordm9pZCBNZWRpYVBsYXllcjo6c2V0Q0RNU2Vzc2lvbihD
RE1TZXNzaW9uKiBzZXNzaW9uKQoreworICAgIG1fcHJpdmF0ZS0+c2V0Q0RNU2Vzc2lvbihzZXNz
aW9uKTsKK30KICNlbmRpZgogICAgIAogZG91YmxlIE1lZGlhUGxheWVyOjpkdXJhdGlvbigpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApp
bmRleCAxYmI4NWQ3ZGE4ODUzOWYzOGIxNDE0NzYyOTExMGZiZWQxZjI1ZjlmLi5hOGIxMjg5ZDhi
NTg4YmM0OTQ1MTA0YmM1ZDdlYzg5NmVmYzRmMzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTM1OSw2ICszNTksNyBAQCBwdWJsaWM6
CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxD
RE1TZXNzaW9uPiBjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKKyAgICB2
b2lkIHNldENETVNlc3Npb24oQ0RNU2Vzc2lvbiopOwogI2VuZGlmCiAKICAgICBib29sIHBhdXNl
ZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaAppbmRleCBjMDAzZGFjODlkOTIzOTViZDY3M2ViMGFjZjE1ZTQ1
MGJiNjVmNDdjLi43MTdhMjZmYTY2ODJmM2EyZWE4NDg5NjNmYWU3NDI0ZjI3YTM4YjI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaApAQCAtMjIxLDYgKzIyMSw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUFfVjIpCiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gY3Jl
YXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVh
bCB2b2lkIHNldENETVNlc3Npb24oQ0RNU2Vzc2lvbiopIHsgfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTYwOTE4NmJjZWE2ZGU4NjAwMjRmOWQ3Y2U2Nzg1
ZGQ4ODcyOTY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMCww
ICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDX2gKKyNkZWZpbmUgQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQ19oCisKKyNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBX1YyKSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVk
ZSAiQ0RNUHJpdmF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENETTsKKwor
Y2xhc3MgQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyA6IHB1YmxpYyBDRE1Qcml2YXRlSW50
ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDKENETSogY2RtKQorICAgICAgICA6IG1fY2RtKGNkbSkKKyAgICB7IH0KKyAgICB2aXJ0dWFs
IH5DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKCkgeyB9CisKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPENETVByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShDRE0qIGNkbSkgeyByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPihjZG0pOyB9Cisg
ICAgc3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJik7CisgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW1BbmRNaW1lVHlwZShjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CisKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBjcmVhdGVTZXNzaW9uKCkgb3ZlcnJpZGU7CisK
KyAgICBDRE0qIGNkbSgpIGNvbnN0IHsgcmV0dXJuIG1fY2RtOyB9CisKK3Byb3RlY3RlZDoKKyAg
ICBDRE0qIG1fY2RtOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QV9WMikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2VuZGlmIC8vIENETVByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmEwOWY2YjU5NGYxYWU1MWQ4YmNiN2Y5N2Vh
ZTg1ZjEyYTYzZDlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAg
LTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQV9WMikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2ltcG9ydCAiQ0RNLmgiCisjaW1w
b3J0ICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgiCisjaW1wb3J0ICJDb250ZW50VHlw
ZS5oIgorI2ltcG9ydCAiRXhjZXB0aW9uQ29kZS5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgiCisjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBDRE1Qcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjpzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKK3sKKyAg
ICBpZiAoIXdrUXVlcnlEZWNvZGVyQXZhaWxhYmlsaXR5KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICgha2V5U3lzdGVtLmlzRW1wdHkoKSAmJiAhZXF1YWxJZ25vcmluZ0Nhc2Uo
a2V5U3lzdGVtLCAiY29tLmFwcGxlLmZwcy4yXzAiKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6c3VwcG9ydHNLZXlTeXN0ZW1BbmRNaW1lVHlwZShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3sKKyAgICBpZiAoIXN1cHBvcnRzS2V5U3lzdGVtKGtl
eVN5c3RlbSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghbWltZVR5cGUuaXNF
bXB0eSgpKSB7CisgICAgICAgIE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgcGFyYW1ldGVy
czsKKyAgICAgICAgcGFyYW1ldGVycy5pc01lZGlhU291cmNlID0gdHJ1ZTsKKyAgICAgICAgcGFy
YW1ldGVycy50eXBlID0gbWltZVR5cGU7CisKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpICE9IE1lZGlh
UGxheWVyOjpJc05vdFN1cHBvcnRlZDsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c01JTUVUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpCit7CisgICAgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyBw
YXJhbWV0ZXJzOworICAgIHBhcmFtZXRlcnMuaXNNZWRpYVNvdXJjZSA9IHRydWU7CisgICAgcGFy
YW1ldGVycy50eXBlID0gbWltZVR5cGU7CisKKyAgICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycykgIT0gTWVkaWFQbGF5
ZXI6OklzTm90U3VwcG9ydGVkOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gQ0RN
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlU2Vzc2lvbigpCit7CisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQz4oKTsKK30KKwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikgJiYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3Vu
ZGF0aW9uT2JqQy5oCmluZGV4IDU3NjAxMDdhNmU5MmFmYjU3ZmJjNTMyNGY1M2JiOGE4ZDI2NzE3
MTcuLjZhNjQ1NTZmMGE4Yjc0NDc5OTI0NDE1ODM2NTdmNTVhMTVmZTBmMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25BVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaApAQCAt
NDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMoTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyogcGFyZW50KTsKICAgICB2aXJ0dWFsIH5D
RE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQygpIHsgfQogCisgICAgdmlydHVhbCBDRE1TZXNzaW9u
VHlwZSB0eXBlKCkgeyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVBVkZvdW5kYXRpb25PYmpDOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNldENsaWVudChDRE1TZXNzaW9uQ2xpZW50KiBjbGllbnQpIG92ZXJy
aWRlIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vz
c2lvbklkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNzaW9uSWQ7IH0KICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
LCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakMuaAppbmRleCAyYmUyNDRmNDBiOGIyYTUxNzc4YTg2ZGNiZmRlMjgyNjZk
YWM3YWNkLi41MzI3MjRjMTRkMjQxMjA1NDlkZDE3Yzk1OTQ1ODQ4YzcxMDJjNzJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5oCkBAIC0zOSw5ICszOSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENETVNl
c3Npb25NZWRpYVNvdXJjZUFWRk9iakMgOiBwdWJsaWMgQ0RNU2Vzc2lvbiwgcHVibGljIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDRXJyb3JDbGllbnQgewogcHVibGljOgotICAgIENETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakMoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCk7
CisgICAgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQygpOwogICAgIHZpcnR1YWwgfkNETVNl
c3Npb25NZWRpYVNvdXJjZUFWRk9iakMoKTsKIAorICAgIHZpcnR1YWwgQ0RNU2Vzc2lvblR5cGUg
dHlwZSgpIHsgcmV0dXJuIENETVNlc3Npb25UeXBlTWVkaWFTb3VyY2VBVkZPYmpDOyB9CiAgICAg
dmlydHVhbCB2b2lkIHNldENsaWVudChDRE1TZXNzaW9uQ2xpZW50KiBjbGllbnQpIG92ZXJyaWRl
IHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vzc2lv
bklkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNzaW9uSWQ7IH0KICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1
bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVy
cmlkZTsKQEAgLTUxLDggKzUyLDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbGF5ZXJE
aWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKiwgTlNFcnJvciAqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyICosIE5TRXJyb3IgKik7CiAKKyAgICB2b2lkIGFkZFNvdXJjZUJ1ZmZlcihT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyopOworICAgIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVy
KFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKik7CisKIHByb3RlY3RlZDoKLSAgICBSZWZQdHI8
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IG1fcGFyZW50OworICAgIFZlY3RvcjxSZWZQdHI8
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+PiBtX3NvdXJjZUJ1ZmZlcnM7CiAgICAgQ0RNU2Vz
c2lvbkNsaWVudCogbV9jbGllbnQ7CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtU2Vzc2lvbj4gbV9z
dHJlYW1TZXNzaW9uOwogICAgIFJlZlB0cjxVaW50OEFycmF5PiBtX2luaXREYXRhOwpAQCAtNjAs
NiArNjQsMTMgQEAgcHJvdGVjdGVkOgogICAgIFN0cmluZyBtX3Nlc3Npb25JZDsKIH07CiAKK2lu
bGluZSBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKiB0b0NETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakMoQ0RNU2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBpZiAoIXNlc3Npb24gfHwgc2Vz
c2lvbi0+dHlwZSgpICE9IENETVNlc3Npb25UeXBlTWVkaWFTb3VyY2VBVkZPYmpDKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQyo+KHNlc3Npb24pOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KaW5k
ZXggNTFlODg3MjIwMDg4MTNlYjkxNjE1NmFkOThlNTBlM2YxZmZkMWVlZS4uNzM3N2E4YmQ5OGM2
MDgwNTZiZjU4MTEyMzJjYmEzYThlYmU1MzEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC02MiwyMyArNjIs
MTkgQEAgU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNz
aW9uKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDKiBwYXJlbnQpCi0gICAgOiBtX3BhcmVudChwYXJlbnQpCi0gICAgLCBtX2NsaWVudChudWxs
cHRyKQorQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQygpCisgICAgOiBtX2NsaWVudChudWxscHRyKQogICAgICwgbV9zZXNzaW9uSWQoY3Jl
YXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQogewotICAgIEFTU0VSVChwYXJlbnQpOwotICAgIHBh
cmVudC0+cmVnaXN0ZXJGb3JFcnJvck5vdGlmaWNhdGlvbnModGhpcyk7CiB9CiAKIENETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6On5DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKCkKIHsK
ICAgICBpZiAobV9zdHJlYW1TZXNzaW9uKSB7Ci0gICAgICAgIFttX3N0cmVhbVNlc3Npb24gcmVt
b3ZlU3RyZWFtRGF0YVBhcnNlcjptX3BhcmVudC0+cGFyc2VyKCldOworICAgICAgICBmb3IgKGF1
dG8mIHNvdXJjZUJ1ZmZlciA6IG1fc291cmNlQnVmZmVycykKKyAgICAgICAgICAgIFttX3N0cmVh
bVNlc3Npb24gcmVtb3ZlU3RyZWFtRGF0YVBhcnNlcjpzb3VyY2VCdWZmZXItPnBhcnNlcigpXTsK
ICAgICAgICAgbV9zdHJlYW1TZXNzaW9uID0gbmlsOwogICAgIH0KLSAgICBtX3BhcmVudC0+dW5y
ZWdpc3RlckZvckVycm9yTm90aWZpY2F0aW9ucyh0aGlzKTsKLSAgICBtX2NsaWVudCA9IG51bGxw
dHI7CiB9CiAKIFBhc3NSZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZG
T2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJy
YXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQpAQCAtMTM0LDE4ICsxMzAsMzMgQEAg
Ym9vbCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoVWludDhBcnJheSoga2V5
LCBSZWZQdHI8VWludDhBcnJheT4mIG4KICAgICAgICAgbV9jZXJ0aWZpY2F0ZSA9IGtleTsKICAg
ICB9CiAKKyAgICBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHByb3RlY3RlZFNv
dXJjZUJ1ZmZlcjsKKyAgICBmb3IgKGF1dG8mIHNvdXJjZUJ1ZmZlciA6IG1fc291cmNlQnVmZmVy
cykgeworICAgICAgICBpZiAoc291cmNlQnVmZmVyLT5wcm90ZWN0ZWRUcmFja0lEKCkgIT0gLTEp
IHsKKyAgICAgICAgICAgIHByb3RlY3RlZFNvdXJjZUJ1ZmZlciA9IHNvdXJjZUJ1ZmZlcjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKHNob3VsZEdlbmVy
YXRlS2V5UmVxdWVzdCkgewogICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjZXJ0aWZpY2F0ZURh
dGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOm1fY2VydGlmaWNhdGUt
PmRhdGEoKSBsZW5ndGg6bV9jZXJ0aWZpY2F0ZS0+bGVuZ3RoKCldKTsKICAgICAgICAgaWYgKGdl
dEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkpIHsKICAgICAgICAgICAgIG1fc3RyZWFtU2Vzc2lvbiA9
IGFkb3B0TlMoW1tnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIGFsbG9jXSBpbml0V2l0aEFwcElk
ZW50aWZpZXI6Y2VydGlmaWNhdGVEYXRhLmdldCgpXSk7Ci0gICAgICAgICAgICBbbV9zdHJlYW1T
ZXNzaW9uIGFkZFN0cmVhbURhdGFQYXJzZXI6bV9wYXJlbnQtPnBhcnNlcigpXTsKKyAgICAgICAg
ICAgIGZvciAoYXV0byYgc291cmNlQnVmZmVyIDogbV9zb3VyY2VCdWZmZXJzKQorICAgICAgICAg
ICAgICAgIFttX3N0cmVhbVNlc3Npb24gYWRkU3RyZWFtRGF0YVBhcnNlcjpzb3VyY2VCdWZmZXIt
PnBhcnNlcigpXTsKICAgICAgICAgICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakM6OnVwZGF0ZSglcCkgLSBjcmVhdGVkIHN0cmVhbSBzZXNzaW9uICVwIiwgdGhpcywg
bV9zdHJlYW1TZXNzaW9uLmdldCgpKTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChtX3NvdXJj
ZUJ1ZmZlcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAg
aWYgKCFwcm90ZWN0ZWRTb3VyY2VCdWZmZXIpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwog
ICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBpbml0RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxs
b2NdIGluaXRXaXRoQnl0ZXM6bV9pbml0RGF0YS0+ZGF0YSgpIGxlbmd0aDptX2luaXREYXRhLT5s
ZW5ndGgoKV0pOwogCiAgICAgICAgIE5TRXJyb3IqIGVycm9yID0gbmlsOwotICAgICAgICBSZXRh
aW5QdHI8TlNEYXRhPiByZXF1ZXN0ID0gW21fcGFyZW50LT5wYXJzZXIoKSBzdHJlYW1pbmdDb250
ZW50S2V5UmVxdWVzdERhdGFGb3JBcHA6Y2VydGlmaWNhdGVEYXRhLmdldCgpIGNvbnRlbnRJZGVu
dGlmaWVyOmluaXREYXRhLmdldCgpIHRyYWNrSUQ6bV9wYXJlbnQtPnByb3RlY3RlZFRyYWNrSUQo
KSBvcHRpb25zOm5pbCBlcnJvcjomZXJyb3JdOworICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBy
ZXF1ZXN0ID0gW3Byb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cGFyc2VyKCkgc3RyZWFtaW5nQ29udGVu
dEtleVJlcXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBjb250ZW50SWRlbnRp
Zmllcjppbml0RGF0YS5nZXQoKSB0cmFja0lEOnByb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cHJvdGVj
dGVkVHJhY2tJRCgpIG9wdGlvbnM6bmlsIGVycm9yOiZlcnJvcl07CiAKICAgICAgICAgaWYgKGVy
cm9yKSB7CiAgICAgICAgICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDOjp1cGRhdGUoJXApIC0gZXJyb3I6JUAiLCB0aGlzLCBbZXJyb3IgZGVzY3JpcHRpb25dKTsK
QEAgLTE1OSwxMSArMTcwLDEyIEBAIGJvb2wgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6
dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBBU1NFUlQoIW1fc291cmNlQnVmZmVycy5pc0VtcHR5
KCkpOwogICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0
ZSglcCkgLSBrZXkgZGF0YSIsIHRoaXMpOwogICAgIGVycm9yQ29kZSA9IE1lZGlhUGxheWVyOjpO
b0Vycm9yOwogICAgIHN5c3RlbUNvZGUgPSAwOwogICAgIFJldGFpblB0cjxOU0RhdGE+IGtleURh
dGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOmtleS0+ZGF0YSgpIGxl
bmd0aDprZXktPmxlbmd0aCgpXSk7Ci0gICAgW21fcGFyZW50LT5wYXJzZXIoKSBwcm9jZXNzQ29u
dGVudEtleVJlc3BvbnNlRGF0YTprZXlEYXRhLmdldCgpIGZvclRyYWNrSUQ6bV9wYXJlbnQtPnBy
b3RlY3RlZFRyYWNrSUQoKV07CisgICAgW3Byb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cGFyc2VyKCkg
cHJvY2Vzc0NvbnRlbnRLZXlSZXNwb25zZURhdGE6a2V5RGF0YS5nZXQoKSBmb3JUcmFja0lEOnBy
b3RlY3RlZFNvdXJjZUJ1ZmZlci0+cHJvdGVjdGVkVHJhY2tJRCgpXTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtMTgzLDYgKzE5NSwzMCBAQCB2b2lkIENETVNlc3Npb25NZWRpYVNvdXJjZUFW
Rk9iakM6OnJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9SZQogICAg
IG1fY2xpZW50LT5zZW5kRXJyb3IoQ0RNU2Vzc2lvbkNsaWVudDo6TWVkaWFLZXlFcnJvckRvbWFp
biwgYWJzKFtlcnJvciBjb2RlXSkpOwogfQogCit2b2lkIENETVNlc3Npb25NZWRpYVNvdXJjZUFW
Rk9iakM6OmFkZFNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyogc291cmNl
QnVmZmVyKQoreworICAgIEFTU0VSVCghbV9zb3VyY2VCdWZmZXJzLmNvbnRhaW5zKHNvdXJjZUJ1
ZmZlcikpOworICAgIEFTU0VSVChzb3VyY2VCdWZmZXIpOworCisgICAgbV9zb3VyY2VCdWZmZXJz
LmFwcGVuZChzb3VyY2VCdWZmZXIpOworICAgIHNvdXJjZUJ1ZmZlci0+cmVnaXN0ZXJGb3JFcnJv
ck5vdGlmaWNhdGlvbnModGhpcyk7CisKKyAgICBpZiAobV9zdHJlYW1TZXNzaW9uKQorICAgICAg
ICBbbV9zdHJlYW1TZXNzaW9uIGFkZFN0cmVhbURhdGFQYXJzZXI6c291cmNlQnVmZmVyLT5wYXJz
ZXIoKV07Cit9CisKK3ZvaWQgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6cmVtb3ZlU291
cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBzb3VyY2VCdWZmZXIpCit7Cisg
ICAgQVNTRVJUKG1fc291cmNlQnVmZmVycy5jb250YWlucyhzb3VyY2VCdWZmZXIpKTsKKyAgICBB
U1NFUlQoc291cmNlQnVmZmVyKTsKKworICAgIGlmIChtX3N0cmVhbVNlc3Npb24pCisgICAgICAg
IFttX3N0cmVhbVNlc3Npb24gcmVtb3ZlU3RyZWFtRGF0YVBhcnNlcjpzb3VyY2VCdWZmZXItPnBh
cnNlcigpXTsKKworICAgIHNvdXJjZUJ1ZmZlci0+dW5yZWdpc3RlckZvckVycm9yTm90aWZpY2F0
aW9ucyh0aGlzKTsKKyAgICBtX3NvdXJjZUJ1ZmZlcnMucmVtb3ZlKG1fc291cmNlQnVmZmVycy5m
aW5kKHNvdXJjZUJ1ZmZlcikpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMuaAppbmRleCAzMTIyMTI5Y2ZmOGMzN2UyNDRjNTI2NTY2ZWRiZTE0ZTAwMWEyNTBlLi5iY2Rm
ZWRmMDk2Y2M4NzI3NDEzMzliODg2NmM0ZGFkZTZkZWM5ZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaApAQCAtNDMsNiArNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBPcGFxdWVDTVRpbWViYXNl
KiBDTVRpbWViYXNlUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM7CiBjbGFzcyBQbGF0Zm9ybUNsb2NrQ007CiBjbGFzcyBNZWRp
YVNvdXJjZVByaXZhdGVBVkZPYmpDOwogCkBAIC01Myw2ICs1NCwxMiBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsK
IAorICAgIC8vIE1lZGlhUGxheWVyIEZhY3RvcnkgTWV0aG9kcworICAgIHN0YXRpYyBQYXNzT3du
UHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7Cisg
ICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKKyAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0
ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYpOworCiAgICAgdm9pZCBhZGREaXNwbGF5TGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIqKTsKICAgICB2b2lkIHJlbW92ZURpc3BsYXlMYXllcihBVlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllciopOwogCkBAIC03NSw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNpemVDaGFu
Z2VkKCk7CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQotICAgIHZpcnR1YWwgc3Rk
Ojp1bmlxdWVfcHRyPENETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJik7Cisg
ICAgdmlydHVhbCB2b2lkIHNldENETVNlc3Npb24oQ0RNU2Vzc2lvbiopIG92ZXJyaWRlOwogICAg
IHZvaWQga2V5TmVlZGVkKFVpbnQ4QXJyYXkqKTsKICNlbmRpZgogCkBAIC0xNjEsMTMgKzE2OCw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRCZVBsYXlpbmcoKSBjb25zdDsKICAgICB2b2lk
IHNlZWtUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qz4mKTsKIAotICAgIC8vIE1lZGlhUGxheWVyIEZhY3RvcnkgTWV0aG9kcwotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVy
Kik7Ci0gICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKLSAgICBzdGF0aWMgdm9pZCBnZXRT
dXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKLSAgICBzdGF0aWMgTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0
UGFyYW1ldGVycyYpOwotICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0
cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKLQogICAgIGZyaWVuZCBj
bGFzcyBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOwogCiAgICAgc3RydWN0IFBlbmRpbmdTZWVr
IHsKQEAgLTE5Myw2ICsxOTMsNyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZD4gbV90aW1l
SnVtcGVkT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPGlkPiBtX2R1cmF0aW9uT2JzZXJ2ZXI7CiAg
ICAgVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPiBtX3NlZWtUaW1l
cjsKKyAgICBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKiBtX3Nlc3Npb247CiAgICAgTWVk
aWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBtX25ldHdvcmtTdGF0ZTsKICAgICBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CiAgICAgTWVkaWFUaW1lIG1fbGFzdFNlZWtUaW1lOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGQ2NWFmMzE3MGJhODU4ZWVmN2E1MzRhZWI2
ODI0NWU4Yjk3Njg0ZDYuLjkyODQyMGFmNzg0M2I0YTU0OTFiNjNjZjRhYzE5YjJiMmUzYjgyNzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCiAKLSNpbXBvcnQgIkNETVNl
c3Npb24uaCIKKyNpbXBvcnQgIkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaCIKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaCIKICNp
bXBvcnQgIk1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oIgpAQCAtMTM2LDYgKzEzNiw3IEBAIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDKE1lZGlhCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiAgICAg
LCBtX3N5bmNocm9uaXplcihhZG9wdE5TKFtbZ2V0QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5jaHJv
bml6ZXJDbGFzcygpIGFsbG9jXSBpbml0XSkpCiAgICAgLCBtX3NlZWtUaW1lcih0aGlzLCAmTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZWVrVGltZXJGaXJlZCkKKyAgICAs
IG1fc2Vzc2lvbihudWxscHRyKQogICAgICwgbV9uZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OkVt
cHR5KQogICAgICwgbV9yZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpIYXZlTm90aGluZykKICAgICAs
IG1fcmF0ZSgxKQpAQCAtMTk0LDcgKzE5NSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2lu
ZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxl
KCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0
c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKKyAgICAgICAgcmVnaXN0cmFyKGNy
ZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAK
IFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQpAQCAtMjMz
LDIwICsyMzQsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eQogICAgIHR5cGVzID0gbWltZVR5
cGVDYWNoZSgpOwogfQogCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKLXN0YXRpYyBi
b29sIGtleVN5c3RlbUlzU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQotewotICAg
IHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShrZXlTeXN0ZW0sICJjb20uYXBwbGUuZnBzLjJfMCIp
OwotfQotI2VuZGlmCi0KIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBw
b3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
X1YyKQotICAgIGlmICghcGFyYW1ldGVycy5rZXlTeXN0ZW0uaXNFbXB0eSgpICYmICFrZXlTeXN0
ZW1Jc1N1cHBvcnRlZChwYXJhbWV0ZXJzLmtleVN5c3RlbSkpCi0gICAgICAgICAgICByZXR1cm4g
TWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwotI2VuZGlmCi0KICAgICAvLyBUaGlzIGVuZ2lu
ZSBkb2VzIG5vdCBzdXBwb3J0IG5vbi1tZWRpYS1zb3VyY2Ugc291cmNlcy4KICAgICBpZiAoIXBh
cmFtZXRlcnMuaXNNZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05v
dFN1cHBvcnRlZDsKQEAgLTI2MywyOCArMjUyLDYgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzVHlwZShjb24K
ICAgICByZXR1cm4gW2dldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVFeHRlbmRlZE1JTUVU
eXBlOnR5cGVTdHJpbmddID8gTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6
Ok1heUJlU3VwcG9ydGVkOzsKIH0KIAotYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKQotewotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCi0g
ICAgaWYgKCF3a1F1ZXJ5RGVjb2RlckF2YWlsYWJpbGl0eSgpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBpZiAoIWtleVN5c3RlbS5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKCFrZXlT
eXN0ZW1Jc1N1cHBvcnRlZChrZXlTeXN0ZW0pKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgICAgIGlmICghbWltZVR5cGUuaXNFbXB0eSgpICYmICFtaW1lVHlwZUNhY2hlKCkuY29u
dGFpbnMobWltZVR5cGUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGtleVN5c3RlbSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKLSNlbmRpZgotICAgIHJldHVybiBmYWxzZTsKLX0K
LQogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2UgT3ZlcnJpZGVzCiAKQEAgLTY5MiwxMiArNjU5LDIwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzaXplQ2hhbmdlZCgpCiB9CiAKICNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBX1YyKQotc3RkOjp1bmlxdWVfcHRyPENETVNlc3Npb24+IE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmIGtl
eVN5c3RlbSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRD
RE1TZXNzaW9uKENETVNlc3Npb24qIHNlc3Npb24pCiB7Ci0gICAgaWYgKCFtX21lZGlhU291cmNl
UHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKG1fc2Vzc2lvbikgewor
ICAgICAgICBmb3IgKGF1dG8mIHNvdXJjZUJ1ZmZlciA6IG1fbWVkaWFTb3VyY2VQcml2YXRlLT5z
b3VyY2VCdWZmZXJzKCkpCisgICAgICAgICAgICBtX3Nlc3Npb24tPnJlbW92ZVNvdXJjZUJ1ZmZl
cihzb3VyY2VCdWZmZXIuZ2V0KCkpOworICAgICAgICBtX3Nlc3Npb24gPSBudWxscHRyOworICAg
IH0KIAotICAgIHJldHVybiBtX21lZGlhU291cmNlUHJpdmF0ZS0+Y3JlYXRlU2Vzc2lvbihrZXlT
eXN0ZW0pOworICAgIG1fc2Vzc2lvbiA9IHRvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyhz
ZXNzaW9uKTsKKworICAgIGlmIChtX3Nlc3Npb24pIHsKKyAgICAgICAgZm9yIChhdXRvJiBzb3Vy
Y2VCdWZmZXIgOiBtX21lZGlhU291cmNlUHJpdmF0ZS0+c291cmNlQnVmZmVycygpKQorICAgICAg
ICAgICAgbV9zZXNzaW9uLT5hZGRTb3VyY2VCdWZmZXIoc291cmNlQnVmZmVyLmdldCgpKTsKKyAg
ICB9CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjprZXlO
ZWVkZWQoVWludDhBcnJheSogaW5pdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZP
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgKaW5kZXggY2JkMWQ0ZTkyYTNiNTRjYzczNjYz
NTc3NzVkZWRhOTEzMjg0OWRhNy4uNWY5ZmE0ZDhlYTIyZGJiZTNjZGZmNjQwZTJhNTZiZWRiZGY0
ZTg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0
ZUFWRk9iakMuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+TWVkaWFT
b3VyY2VQcml2YXRlQVZGT2JqQygpOwogCiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDKiBwbGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3BsYXllcjsgfQorICAgIGNvbnN0
IFZlY3RvcjxSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+PiYgc291cmNlQnVmZmVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlQnVmZmVyczsgfQogICAgIGNvbnN0IFZlY3RvcjxT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyo+JiBhY3RpdmVTb3VyY2VCdWZmZXJzKCkgY29uc3Qg
eyByZXR1cm4gbV9hY3RpdmVTb3VyY2VCdWZmZXJzOyB9CiAKICAgICB2aXJ0dWFsIEFkZFN0YXR1
cyBhZGRTb3VyY2VCdWZmZXIoY29uc3QgQ29udGVudFR5cGUmLCBSZWZQdHI8U291cmNlQnVmZmVy
UHJpdmF0ZT4mKSBvdmVycmlkZTsKQEAgLTc2LDEwICs3Nyw2IEBAIHB1YmxpYzoKICAgICBNZWRp
YVRpbWUgZmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1l
ZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJl
c2hvbGQpOwogICAgIEludFNpemUgbmF0dXJhbFNpemUoKSBjb25zdDsKIAotI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUFfVjIpCi0gICAgc3RkOjp1bmlxdWVfcHRyPENETVNlc3Npb24+IGNyZWF0
ZVNlc3Npb24oY29uc3QgU3RyaW5nJik7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBNZWRpYVNv
dXJjZVByaXZhdGVBVkZPYmpDKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyos
IE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQppbmRleCBmMmE0YjM0ZjMwNDcyNmRk
ZGUzYWVjMmNmYzAzNTBiYTQyZTllNTQ1Li43OTJlZDk4NTUxYmM0MDU0Yjg4MTE0ZmY0NjJlYmUx
NGFkMTU4ZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNl
UHJpdmF0ZUFWRk9iakMubW0KQEAgLTE1MywxOCArMTUzLDYgQEAgdm9pZCBNZWRpYVNvdXJjZVBy
aXZhdGVBVkZPYmpDOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUoU291
cmNlQnUKIH0KIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCi1zdGQ6OnVuaXF1ZV9w
dHI8Q0RNU2Vzc2lvbj4gTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6Y3JlYXRlU2Vzc2lvbihj
b25zdCBTdHJpbmcmKQotewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTA5MAotICAgIGlmIChtX3NvdXJjZUJ1ZmZlcnNOZWVkaW5nU2Vzc2lvbnMuaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDPihtX3NvdXJjZUJ1ZmZlcnNOZWVkaW5nU2Vzc2lvbnMu
dGFrZUZpcnN0KCkpOwotI2VuZGlmCi0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0jZW5kaWYKLQot
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCiB2b2lkIE1lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakM6OnNvdXJjZUJ1ZmZlcktleU5lZWRlZChTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyog
YnVmZmVyLCBVaW50OEFycmF5KiBpbml0RGF0YSkKIHsKICAgICBtX3NvdXJjZUJ1ZmZlcnNOZWVk
aW5nU2Vzc2lvbnMuYXBwZW5kKGJ1ZmZlcik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>