<?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>221166</bug_id>
          
          <creation_ts>2021-01-29 16:18:12 -0800</creation_ts>
          <short_desc>Make check for full HashTables opt-in</short_desc>
          <delta_ts>2021-01-29 18:17:05 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1723936</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-01-29 16:18:12 -0800</bug_when>
    <thetext>It&apos;s too expensive to always perform the check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723939</commentid>
    <comment_count>1</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-01-29 16:19:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/70902458&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723942</commentid>
    <comment_count>2</comment_count>
      <attachid>418786</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-01-29 16:24:31 -0800</bug_when>
    <thetext>Created attachment 418786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723943</commentid>
    <comment_count>3</comment_count>
      <attachid>418786</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-01-29 16:26:54 -0800</bug_when>
    <thetext>Comment on attachment 418786
Patch

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

&gt; Source/WTF/ChangeLog:9
&gt; +        Having the check always on was a regression on Speedometer2.

you should say what you did, e.g, opt in metaallocator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723944</commentid>
    <comment_count>4</comment_count>
      <attachid>418786</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-29 16:27:50 -0800</bug_when>
    <thetext>Comment on attachment 418786
Patch

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

r=me too with one comment.

&gt; Source/WTF/wtf/MetaAllocator.h:197
&gt; +    HashMap&lt;FreeSpacePtr, FreeSpaceNode*, DefaultHash&lt;FreeSpacePtr&gt;, HashTraits&lt;FreeSpacePtr&gt;, HashTraits&lt;FreeSpaceNode*&gt;, true&gt; m_freeSpaceStartAddressMap;
&gt; +    HashMap&lt;FreeSpacePtr, FreeSpaceNode*, DefaultHash&lt;FreeSpacePtr&gt;, HashTraits&lt;FreeSpacePtr&gt;, HashTraits&lt;FreeSpaceNode*&gt;, true&gt; m_freeSpaceEndAddressMap;

Some enum would be better for readability, like,

enum class HashTableHardeningMode : uint8_t {
    None,
    AssertNotFull,
};

And HashMap&lt;FreeSpacePtr, FreeSpaceNode*, DefaultHash&lt;FreeSpacePtr&gt;, HashTraits&lt;FreeSpacePtr&gt;, HashTraits&lt;FreeSpaceNode*&gt;, HashTableHardeningMode:: AssertNotFull&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723972</commentid>
    <comment_count>5</comment_count>
      <attachid>418793</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-01-29 17:25:34 -0800</bug_when>
    <thetext>Created attachment 418793
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723985</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-29 18:17:02 -0800</bug_when>
    <thetext>Committed r272095: &lt;https://trac.webkit.org/changeset/272095&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418793.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418786</attachid>
            <date>2021-01-29 16:24:31 -0800</date>
            <delta_ts>2021-01-29 17:25:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221166-20210129162430.patch</filename>
            <type>text/plain</type>
            <size>73012</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQyNzFlMGJjMmZmMWU4NTIxOTY0M2Ni
OGY4NzU0OWZlY2FhYThmYTIuLjg3OTFhZTcyZWIzMjJlYWY1YTA1YTFhYzUyZDc4OWYyMTQwZWMx
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQ1IEBACisyMDIxLTAxLTI5ICBUYWRldSBaYWdhbGxvICA8dHph
Z2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgY2hlY2sgZm9yIGZ1bGwgSGFzaFRhYmxl
cyBvcHQtaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTE2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA5MDI0NTg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGF2aW5nIHRoZSBjaGVjayBhbHdh
eXMgb24gd2FzIGEgcmVncmVzc2lvbiBvbiBTcGVlZG9tZXRlcjIuCisKKyAgICAgICAgKiB3dGYv
Rm9yd2FyZC5oOgorICAgICAgICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgIChXVEY6Olk+Ojpz
d2FwKToKKyAgICAgICAgKFdURjo6WT46OnNpemUgY29uc3QpOgorICAgICAgICAoV1RGOjpZPjo6
Y2FwYWNpdHkgY29uc3QpOgorICAgICAgICAoV1RGOjpZPjo6aXNFbXB0eSBjb25zdCk6CisgICAg
ICAgIChXVEY6Olk+OjpiZWdpbik6CisgICAgICAgIChXVEY6Olk+OjplbmQpOgorICAgICAgICAo
V1RGOjpZPjo6YmVnaW4gY29uc3QpOgorICAgICAgICAoV1RGOjpZPjo6ZW5kIGNvbnN0KToKKyAg
ICAgICAgKFdURjo6WT46OmZpbmQpOgorICAgICAgICAoV1RGOjpZPjo6ZmluZCBjb25zdCk6Cisg
ICAgICAgIChXVEY6Olk+Ojpjb250YWlucyBjb25zdCk6CisgICAgICAgIChXVEY6Olk+OjpnZXQg
Y29uc3QpOgorICAgICAgICAoV1RGOjpZPjo6aW5saW5lR2V0IGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6QXNzZXJ0Tm90RnVsbD46OmlubGluZVNldCk6CisgICAgICAgIChXVEY6OkFzc2VydE5vdEZ1
bGw+OjppbmxpbmVBZGQpOgorICAgICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6aW5saW5lRW5z
dXJlKToKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm90RnVsbD46OnNldCk6CisgICAgICAgIChXVEY6
OkFzc2VydE5vdEZ1bGw+OjphZGQpOgorICAgICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6ZmFz
dEFkZCk6CisgICAgICAgIChXVEY6OkFzc2VydE5vdEZ1bGw+OjplbnN1cmUpOgorICAgICAgICAo
V1RGOjpBc3NlcnROb3RGdWxsPjo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm90
RnVsbD46OmlubGluZUdldCBjb25zdCk6CisgICAgICAgIChXVEY6Olk+OjpyZW1vdmUpOgorICAg
ICAgICAoV1RGOjpZPjo6cmVtb3ZlSWYpOgorICAgICAgICAoV1RGOjpZPjo6Y2xlYXIpOgorICAg
ICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6dGFrZSk6CisgICAgICAgIChXVEY6Olk+Ojp0YWtl
KToKKyAgICAgICAgKFdURjo6WT46OmNoZWNrQ29uc2lzdGVuY3kgY29uc3QpOgorICAgICAgICAo
V1RGOjpZPjo6aXNWYWxpZEtleSk6CisgICAgICAgIChXVEY6Om9wZXJhdG9yPT0pOgorICAgICAg
ICAoV1RGOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdURjo6WD46OnN3YXApOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjpYPjo6c2l6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Olg+
OjpjYXBhY2l0eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Olg+Ojppc0VtcHR5IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6WD46OmJlZ2luKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdURjo6WD46OmVuZCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Olg+OjpiZWdpbiBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Olg+OjplbmQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV1RGOjpYPjo6ZmluZCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Olg+OjpmaW5kIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6WD46OmNvbnRhaW5zIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdURjo6WD46OmdldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6
Olg+OjppbmxpbmVHZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpNYXBwZWRUcmFp
dHNBcmc+OjppbmxpbmVTZXQpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpNYXBwZWRUcmFpdHNB
cmc+OjppbmxpbmVBZGQpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpNYXBwZWRUcmFpdHNBcmc+
OjppbmxpbmVFbnN1cmUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpNYXBwZWRUcmFpdHNBcmc+
OjpzZXQpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpNYXBwZWRUcmFpdHNBcmc+OjphZGQpOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjpNYXBwZWRUcmFpdHNBcmc+OjpmYXN0QWRkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdURjo6TWFwcGVkVHJhaXRzQXJnPjo6ZW5zdXJlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdURjo6TWFwcGVkVHJhaXRzPjo6Z2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6TWFwcGVkVHJhaXRzPjo6aW5saW5lR2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6WD46OnJlbW92ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Olg+OjpyZW1vdmVJZik6
IERlbGV0ZWQuCisgICAgICAgIChXVEY6Olg+OjpjbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChX
VEY6Ok1hcHBlZFRyYWl0cz46OnRha2UpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpYPjo6dGFr
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Olg+OjpjaGVja0NvbnNpc3RlbmN5IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdURjo6WD46OmlzVmFsaWRLZXkpOiBEZWxldGVkLgorICAgICAg
ICAqIHd0Zi9IYXNoVGFibGUuaDoKKyAgICAgICAgKFdURjo6YWRkSXRlcmF0b3IpOgorICAgICAg
ICAoV1RGOjpyZW1vdmVJdGVyYXRvcik6CisgICAgICAgIChXVEY6OkFzc2VydE5vdEZ1bGw+OjpI
YXNoVGFibGUpOgorICAgICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6Y2hlY2tLZXkpOgorICAg
ICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6bG9va3VwKToKKyAgICAgICAgKFdURjo6QXNzZXJ0
Tm90RnVsbD46OmlubGluZUxvb2t1cCk6CisgICAgICAgIChXVEY6OkFzc2VydE5vdEZ1bGw+Ojps
b29rdXBGb3JXcml0aW5nKToKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm90RnVsbD46OmZ1bGxMb29r
dXBGb3JXcml0aW5nKToKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm90RnVsbD46OmFkZFVuaXF1ZUZv
ckluaXRpYWxpemF0aW9uKToKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm90RnVsbD46OmluaXRpYWxp
emVCdWNrZXQpOgorICAgICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6YWRkKToKKyAgICAgICAg
KFdURjo6QXNzZXJ0Tm90RnVsbD46OmFkZFBhc3NpbmdIYXNoQ29kZSk6CisgICAgICAgIChXVEY6
OkFzc2VydE5vdEZ1bGw+OjpyZWluc2VydCk6CisgICAgICAgIChXVEY6OkFzc2VydE5vdEZ1bGw+
OjpmaW5kKToKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm90RnVsbD46OmZpbmQgY29uc3QpOgorICAg
ICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6Y29udGFpbnMgY29uc3QpOgorICAgICAgICAoV1RG
OjpBc3NlcnROb3RGdWxsPjo6cmVtb3ZlQW5kSW52YWxpZGF0ZVdpdGhvdXRFbnRyeUNvbnNpc3Rl
bmN5Q2hlY2spOgorICAgICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6cmVtb3ZlQW5kSW52YWxp
ZGF0ZSk6CisgICAgICAgIChXVEY6OkFzc2VydE5vdEZ1bGw+OjpyZW1vdmUpOgorICAgICAgICAo
V1RGOjpBc3NlcnROb3RGdWxsPjo6cmVtb3ZlV2l0aG91dEVudHJ5Q29uc2lzdGVuY3lDaGVjayk6
CisgICAgICAgIChXVEY6OkFzc2VydE5vdEZ1bGw+OjpyZW1vdmVJZik6CisgICAgICAgIChXVEY6
OkFzc2VydE5vdEZ1bGw+OjphbGxvY2F0ZVRhYmxlKToKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm90
RnVsbD46OmRlYWxsb2NhdGVUYWJsZSk6CisgICAgICAgIChXVEY6OkFzc2VydE5vdEZ1bGw+Ojpl
eHBhbmQpOgorICAgICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6Y29tcHV0ZUJlc3RUYWJsZVNp
emUpOgorICAgICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6c2hyaW5rVG9CZXN0U2l6ZSk6Cisg
ICAgICAgIChXVEY6OkFzc2VydE5vdEZ1bGw+OjpkZWxldGVSZWxlYXNlZFdlYWtCdWNrZXRzKToK
KyAgICAgICAgKFdURjo6QXNzZXJ0Tm90RnVsbD46OnJlaGFzaCk6CisgICAgICAgIChXVEY6OkFz
c2VydE5vdEZ1bGw+OjpjbGVhcik6CisgICAgICAgIChXVEY6OkFzc2VydE5vdEZ1bGw+Ojpzd2Fw
KToKKyAgICAgICAgKFdURjo6PSk6CisgICAgICAgIChXVEY6OkFzc2VydE5vdEZ1bGw+OjpjaGVj
a1RhYmxlQ29uc2lzdGVuY3kgY29uc3QpOgorICAgICAgICAoV1RGOjpBc3NlcnROb3RGdWxsPjo6
Y2hlY2tUYWJsZUNvbnNpc3RlbmN5RXhjZXB0U2l6ZSBjb25zdCk6CisgICAgICAgIChXVEY6OkFz
c2VydE5vdEZ1bGw+OjppbnZhbGlkYXRlSXRlcmF0b3JzKToKKyAgICAgICAgKFdURjo6S2V5VHJh
aXRzPjo6SGFzaFRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6S2V5VHJhaXRzPjo6Y2hl
Y2tLZXkpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+Ojpsb29rdXApOiBEZWxl
dGVkLgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+OjppbmxpbmVMb29rdXApOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjpLZXlUcmFpdHM+Ojpsb29rdXBGb3JXcml0aW5nKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdURjo6S2V5VHJhaXRzPjo6ZnVsbExvb2t1cEZvcldyaXRpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjpLZXlUcmFpdHM+OjphZGRVbmlxdWVGb3JJbml0aWFsaXphdGlvbik6IERl
bGV0ZWQuCisgICAgICAgIChXVEY6OktleVRyYWl0cz46OmluaXRpYWxpemVCdWNrZXQpOiBEZWxl
dGVkLgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+OjphZGQpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpLZXlUcmFpdHM+OjphZGRQYXNzaW5nSGFzaENvZGUpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpLZXlUcmFpdHM+OjpyZWluc2VydCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OktleVRy
YWl0cz46OmZpbmQpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+OjpmaW5kIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6S2V5VHJhaXRzPjo6Y29udGFpbnMgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+OjpyZW1vdmVBbmRJbnZhbGlkYXRl
V2l0aG91dEVudHJ5Q29uc2lzdGVuY3lDaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Oktl
eVRyYWl0cz46OnJlbW92ZUFuZEludmFsaWRhdGUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpL
ZXlUcmFpdHM+OjpyZW1vdmUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+Ojpy
ZW1vdmVXaXRob3V0RW50cnlDb25zaXN0ZW5jeUNoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Rjo6S2V5VHJhaXRzPjo6cmVtb3ZlSWYpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpLZXlUcmFp
dHM+OjphbGxvY2F0ZVRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6S2V5VHJhaXRzPjo6
ZGVhbGxvY2F0ZVRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6S2V5VHJhaXRzPjo6ZXhw
YW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6S2V5VHJhaXRzPjo6Y29tcHV0ZUJlc3RUYWJs
ZVNpemUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+OjpzaHJpbmtUb0Jlc3RT
aXplKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6S2V5VHJhaXRzPjo6ZGVsZXRlUmVsZWFzZWRX
ZWFrQnVja2V0cyk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OktleVRyYWl0cz46OnJlaGFzaCk6
IERlbGV0ZWQuCisgICAgICAgIChXVEY6OktleVRyYWl0cz46OmNsZWFyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdURjo6S2V5VHJhaXRzPjo6c3dhcCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Oktl
eVRyYWl0cz46OmNoZWNrVGFibGVDb25zaXN0ZW5jeSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXVEY6OktleVRyYWl0cz46OmNoZWNrVGFibGVDb25zaXN0ZW5jeUV4Y2VwdFNpemUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+OjppbnZhbGlkYXRlSXRlcmF0b3Jz
KTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvTWV0YUFsbG9jYXRvci5jcHA6CisgICAgICAgIChX
VEY6Ok1ldGFBbGxvY2F0b3I6OmFkZEZyZWVTcGFjZSk6CisgICAgICAgICogd3RmL01ldGFBbGxv
Y2F0b3IuaDoKKwogMjAyMS0wMS0yOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYktpdCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgcmlnaHQtYWxp
Z24gQWRsYW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9X
VEYvd3RmL0ZvcndhcmQuaAppbmRleCBhNDVhMzU0YzQ3NzgyMDNkZmNlYjBiOThlMDU4MDg1ZDli
ODI2MDZmLi40ZjY5Nzg5NDViOTBhZTdiNmM2ZDAxZTk2MGMyZjFlMTIzM2M1NTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2Fy
ZC5oCkBAIC05Myw3ICs5Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEUsIEUuLi4+IHN0cnVjdCBF
bnVtVmFsdWVzOwogdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBIYXNoVHJhaXRzOwogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgPSBEZWZhdWx0SGFzaDxWYWx1ZT4sIHR5cGVu
YW1lID0gSGFzaFRyYWl0czxWYWx1ZT4+IGNsYXNzIEhhc2hDb3VudGVkU2V0OwotdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lID0gRGVmYXVsdEhh
c2g8S2V5QXJnPiwgdHlwZW5hbWUgPSBIYXNoVHJhaXRzPEtleUFyZz4sIHR5cGVuYW1lID0gSGFz
aFRyYWl0czxNYXBwZWRBcmc+PiBjbGFzcyBIYXNoTWFwOwordGVtcGxhdGU8dHlwZW5hbWUgS2V5
QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lID0gRGVmYXVsdEhhc2g8S2V5QXJnPiwg
dHlwZW5hbWUgPSBIYXNoVHJhaXRzPEtleUFyZz4sIHR5cGVuYW1lID0gSGFzaFRyYWl0czxNYXBw
ZWRBcmc+LCBib29sID0gZmFsc2U+IGNsYXNzIEhhc2hNYXA7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBW
YWx1ZUFyZywgdHlwZW5hbWUgPSBEZWZhdWx0SGFzaDxWYWx1ZUFyZz4sIHR5cGVuYW1lID0gSGFz
aFRyYWl0czxWYWx1ZUFyZz4+IGNsYXNzIEhhc2hTZXQ7CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0hhc2hNYXAuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAppbmRleCBiZjZi
OGJhYzRlZGIyZGZhMWY2Y2MwMGYzYmUxZjY0MWExMTg1YmNmLi5hMzYyZjc2Nzc1MmM1MjQ1YmNk
YzU0MGY4YTJjM2JjNDg4MTkxNWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFw
LmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCkBAIC0zMSw3ICszMSw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBLZXlWYWx1ZVBhaXJLZXlFeHRyYWN0b3IgewogICAgIHN0
YXRpYyBjb25zdCB0eXBlbmFtZSBUOjpLZXlUeXBlJiBleHRyYWN0KGNvbnN0IFQmIHApIHsgcmV0
dXJuIHAua2V5OyB9CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1h
cHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFt
ZSBNYXBwZWRUcmFpdHNBcmc+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1h
cHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFt
ZSBNYXBwZWRUcmFpdHNBcmcsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KIGNsYXNzIEhhc2hNYXAgZmlu
YWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHJpdmF0ZToKQEAgLTU3LDcgKzU3
LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIEhhc2hGdW5jdGlvbnMgPSBIYXNoQXJnOwogCi0g
ICAgdXNpbmcgSGFzaFRhYmxlVHlwZSA9IEhhc2hUYWJsZTxLZXlUeXBlLCBLZXlWYWx1ZVBhaXJU
eXBlLCBLZXlWYWx1ZVBhaXJLZXlFeHRyYWN0b3I8S2V5VmFsdWVQYWlyVHlwZT4sIEhhc2hGdW5j
dGlvbnMsIEtleVZhbHVlUGFpclRyYWl0cywgS2V5VHJhaXRzPjsKKyAgICB1c2luZyBIYXNoVGFi
bGVUeXBlID0gSGFzaFRhYmxlPEtleVR5cGUsIEtleVZhbHVlUGFpclR5cGUsIEtleVZhbHVlUGFp
cktleUV4dHJhY3RvcjxLZXlWYWx1ZVBhaXJUeXBlPiwgSGFzaEZ1bmN0aW9ucywgS2V5VmFsdWVQ
YWlyVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OwogCiAgICAgY2xhc3MgSGFzaE1h
cEtleXNQcm94eTsKICAgICBjbGFzcyBIYXNoTWFwVmFsdWVzUHJveHk7CkBAIC0yMzIsOTEgKzIz
Miw5MSBAQCBzdHJ1Y3QgSGFzaE1hcFRyYW5zbGF0b3JBZGFwdGVyIHsKICAgICB9CiB9OwogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0
eXBlbmFtZSBYPgotaW5saW5lIHZvaWQgSGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6c3dhcChIYXNo
TWFwJiBvdGhlcikKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYs
IHR5cGVuYW1lIFcsIHR5cGVuYW1lIFgsIGJvb2wgWT4KK2lubGluZSB2b2lkIEhhc2hNYXA8VCwg
VSwgViwgVywgWCwgWT46OnN3YXAoSGFzaE1hcCYgb3RoZXIpCiB7CiAgICAgbV9pbXBsLnN3YXAo
b3RoZXIubV9pbXBsKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlw
ZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWD4KLWlubGluZSB1bnNpZ25lZCBIYXNoTWFw
PFQsIFUsIFYsIFcsIFg+OjpzaXplKCkgY29uc3QKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFgsIGJvb2wgWT4KK2lubGlu
ZSB1bnNpZ25lZCBIYXNoTWFwPFQsIFUsIFYsIFcsIFgsIFk+OjpzaXplKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9pbXBsLnNpemUoKTsgCiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+Ci1pbmxpbmUgdW5zaWdu
ZWQgSGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6Y2FwYWNpdHkoKSBjb25zdAordGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWCwg
Ym9vbCBZPgoraW5saW5lIHVuc2lnbmVkIEhhc2hNYXA8VCwgVSwgViwgVywgWCwgWT46OmNhcGFj
aXR5KCkgY29uc3QKIHsgCiAgICAgcmV0dXJuIG1faW1wbC5jYXBhY2l0eSgpOyAKIH0KIAotdGVt
cGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlw
ZW5hbWUgWD4KLWlubGluZSBib29sIEhhc2hNYXA8VCwgVSwgViwgVywgWD46OmlzRW1wdHkoKSBj
b25zdAordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5h
bWUgVywgdHlwZW5hbWUgWCwgYm9vbCBZPgoraW5saW5lIGJvb2wgSGFzaE1hcDxULCBVLCBWLCBX
LCBYLCBZPjo6aXNFbXB0eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW1wbC5pc0VtcHR5KCk7
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVu
YW1lIFcsIHR5cGVuYW1lIFg+Ci1pbmxpbmUgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+Ojpi
ZWdpbigpIC0+IGl0ZXJhdG9yCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBl
bmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYLCBib29sIFk+CitpbmxpbmUgYXV0byBIYXNo
TWFwPFQsIFUsIFYsIFcsIFgsIFk+OjpiZWdpbigpIC0+IGl0ZXJhdG9yCiB7CiAgICAgcmV0dXJu
IG1faW1wbC5iZWdpbigpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0
eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYPgotaW5saW5lIGF1dG8gSGFzaE1hcDxU
LCBVLCBWLCBXLCBYPjo6ZW5kKCkgLT4gaXRlcmF0b3IKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFgsIGJvb2wgWT4KK2lu
bGluZSBhdXRvIEhhc2hNYXA8VCwgVSwgViwgVywgWCwgWT46OmVuZCgpIC0+IGl0ZXJhdG9yCiB7
CiAgICAgcmV0dXJuIG1faW1wbC5lbmQoKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWD4KLWlubGluZSBhdXRv
IEhhc2hNYXA8VCwgVSwgViwgVywgWD46OmJlZ2luKCkgY29uc3QgLT4gY29uc3RfaXRlcmF0b3IK
K3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcs
IHR5cGVuYW1lIFgsIGJvb2wgWT4KK2lubGluZSBhdXRvIEhhc2hNYXA8VCwgVSwgViwgVywgWCwg
WT46OmJlZ2luKCkgY29uc3QgLT4gY29uc3RfaXRlcmF0b3IKIHsKICAgICByZXR1cm4gbV9pbXBs
LmJlZ2luKCk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1l
IFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+Ci1pbmxpbmUgYXV0byBIYXNoTWFwPFQsIFUsIFYs
IFcsIFg+OjplbmQoKSBjb25zdCAtPiBjb25zdF9pdGVyYXRvcgordGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWCwgYm9vbCBZ
PgoraW5saW5lIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBYLCBZPjo6ZW5kKCkgY29uc3QgLT4g
Y29uc3RfaXRlcmF0b3IKIHsKICAgICByZXR1cm4gbV9pbXBsLmVuZCgpOwogfQogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFt
ZSBYPgotaW5saW5lIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6ZmluZChjb25zdCBLZXlU
eXBlJiBrZXkpIC0+IGl0ZXJhdG9yCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0
eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYLCBib29sIFk+CitpbmxpbmUgYXV0byBI
YXNoTWFwPFQsIFUsIFYsIFcsIFgsIFk+OjpmaW5kKGNvbnN0IEtleVR5cGUmIGtleSkgLT4gaXRl
cmF0b3IKIHsKICAgICByZXR1cm4gbV9pbXBsLmZpbmQoa2V5KTsKIH0KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWD4K
LWlubGluZSBhdXRvIEhhc2hNYXA8VCwgVSwgViwgVywgWD46OmZpbmQoY29uc3QgS2V5VHlwZSYg
a2V5KSBjb25zdCAtPiBjb25zdF9pdGVyYXRvcgordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWCwgYm9vbCBZPgoraW5saW5l
IGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBYLCBZPjo6ZmluZChjb25zdCBLZXlUeXBlJiBrZXkp
IGNvbnN0IC0+IGNvbnN0X2l0ZXJhdG9yCiB7CiAgICAgcmV0dXJuIG1faW1wbC5maW5kKGtleSk7
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVu
YW1lIFcsIHR5cGVuYW1lIFg+Ci1pbmxpbmUgYm9vbCBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+Ojpj
b250YWlucyhjb25zdCBLZXlUeXBlJiBrZXkpIGNvbnN0Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYLCBib29sIFk+Citp
bmxpbmUgYm9vbCBIYXNoTWFwPFQsIFUsIFYsIFcsIFgsIFk+Ojpjb250YWlucyhjb25zdCBLZXlU
eXBlJiBrZXkpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW1wbC5jb250YWlucyhrZXkpOwogfQog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBX
LCB0eXBlbmFtZSBYPgordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUg
ViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWCwgYm9vbCBZPgogdGVtcGxhdGU8dHlwZW5hbWUgSGFz
aFRyYW5zbGF0b3IsIHR5cGVuYW1lIFRZUEU+Ci1pbmxpbmUgdHlwZW5hbWUgSGFzaE1hcDxULCBV
LCBWLCBXLCBYPjo6aXRlcmF0b3IKLUhhc2hNYXA8VCwgVSwgViwgVywgWD46OmZpbmQoY29uc3Qg
VFlQRSYgdmFsdWUpCitpbmxpbmUgdHlwZW5hbWUgSGFzaE1hcDxULCBVLCBWLCBXLCBYLCBZPjo6
aXRlcmF0b3IKK0hhc2hNYXA8VCwgVSwgViwgVywgWCwgWT46OmZpbmQoY29uc3QgVFlQRSYgdmFs
dWUpCiB7CiAgICAgcmV0dXJuIG1faW1wbC50ZW1wbGF0ZSBmaW5kPEhhc2hNYXBUcmFuc2xhdG9y
QWRhcHRlcjxLZXlWYWx1ZVBhaXJUcmFpdHMsIEhhc2hUcmFuc2xhdG9yPj4odmFsdWUpOwogfQog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBX
LCB0eXBlbmFtZSBYPgordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUg
ViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWCwgYm9vbCBZPgogdGVtcGxhdGU8dHlwZW5hbWUgSGFz
aFRyYW5zbGF0b3IsIHR5cGVuYW1lIFRZUEU+Ci1pbmxpbmUgdHlwZW5hbWUgSGFzaE1hcDxULCBV
LCBWLCBXLCBYPjo6Y29uc3RfaXRlcmF0b3IgCi1IYXNoTWFwPFQsIFUsIFYsIFcsIFg+OjpmaW5k
KGNvbnN0IFRZUEUmIHZhbHVlKSBjb25zdAoraW5saW5lIHR5cGVuYW1lIEhhc2hNYXA8VCwgVSwg
ViwgVywgWCwgWT46OmNvbnN0X2l0ZXJhdG9yIAorSGFzaE1hcDxULCBVLCBWLCBXLCBYLCBZPjo6
ZmluZChjb25zdCBUWVBFJiB2YWx1ZSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbXBsLnRlbXBs
YXRlIGZpbmQ8SGFzaE1hcFRyYW5zbGF0b3JBZGFwdGVyPEtleVZhbHVlUGFpclRyYWl0cywgSGFz
aFRyYW5zbGF0b3I+Pih2YWx1ZSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+Cit0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYLCBib29s
IFk+CiB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVFlQRT4KLWF1
dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6Z2V0KGNvbnN0IFRZUEUmIHZhbHVlKSBjb25zdCAt
PiBNYXBwZWRQZWVrVHlwZQorYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIFgsIFk+OjpnZXQoY29u
c3QgVFlQRSYgdmFsdWUpIGNvbnN0IC0+IE1hcHBlZFBlZWtUeXBlCiB7CiAgICAgYXV0byogZW50
cnkgPSBjb25zdF9jYXN0PEhhc2hUYWJsZVR5cGUmPihtX2ltcGwpLnRlbXBsYXRlIGxvb2t1cDxI
YXNoTWFwVHJhbnNsYXRvckFkYXB0ZXI8S2V5VmFsdWVQYWlyVHJhaXRzLCBIYXNoVHJhbnNsYXRv
cj4+KHZhbHVlKTsKICAgICBpZiAoIWVudHJ5KQpAQCAtMzI0LDkgKzMyNCw5IEBAIGF1dG8gSGFz
aE1hcDxULCBVLCBWLCBXLCBYPjo6Z2V0KGNvbnN0IFRZUEUmIHZhbHVlKSBjb25zdCAtPiBNYXBw
ZWRQZWVrVHlwZQogICAgIHJldHVybiBNYXBwZWRUcmFpdHM6OnBlZWsoZW50cnktPnZhbHVlKTsK
IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5h
bWUgVywgdHlwZW5hbWUgWD4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVu
YW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFgsIGJvb2wgWT4KIHRlbXBsYXRlPHR5cGVuYW1l
IEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUWVBFPgotYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcs
IFg+OjppbmxpbmVHZXQoY29uc3QgVFlQRSYgdmFsdWUpIGNvbnN0IC0+IE1hcHBlZFBlZWtUeXBl
CithdXRvIEhhc2hNYXA8VCwgVSwgViwgVywgWCwgWT46OmlubGluZUdldChjb25zdCBUWVBFJiB2
YWx1ZSkgY29uc3QgLT4gTWFwcGVkUGVla1R5cGUKIHsKICAgICBhdXRvKiBlbnRyeSA9IGNvbnN0
X2Nhc3Q8SGFzaFRhYmxlVHlwZSY+KG1faW1wbCkudGVtcGxhdGUgaW5saW5lTG9va3VwPEhhc2hN
YXBUcmFuc2xhdG9yQWRhcHRlcjxLZXlWYWx1ZVBhaXJUcmFpdHMsIEhhc2hUcmFuc2xhdG9yPj4o
dmFsdWUpOwogICAgIGlmICghZW50cnkpCkBAIC0zMzQsMTYgKzMzNCwxNiBAQCBhdXRvIEhhc2hN
YXA8VCwgVSwgViwgVywgWD46OmlubGluZUdldChjb25zdCBUWVBFJiB2YWx1ZSkgY29uc3QgLT4g
TWFwcGVkUGVla1R5cAogICAgIHJldHVybiBNYXBwZWRUcmFpdHM6OnBlZWsoZW50cnktPnZhbHVl
KTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlw
ZW5hbWUgVywgdHlwZW5hbWUgWD4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5
cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFgsIGJvb2wgWT4KIHRlbXBsYXRlPHR5cGVu
YW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUWVBFPgotaW5saW5lIGJvb2wgSGFzaE1hcDxU
LCBVLCBWLCBXLCBYPjo6Y29udGFpbnMoY29uc3QgVFlQRSYgdmFsdWUpIGNvbnN0CitpbmxpbmUg
Ym9vbCBIYXNoTWFwPFQsIFUsIFYsIFcsIFgsIFk+Ojpjb250YWlucyhjb25zdCBUWVBFJiB2YWx1
ZSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbXBsLnRlbXBsYXRlIGNvbnRhaW5zPEhhc2hNYXBU
cmFuc2xhdG9yQWRhcHRlcjxLZXlWYWx1ZVBhaXJUcmFpdHMsIEhhc2hUcmFuc2xhdG9yPj4odmFs
dWUpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRU
cmFpdHNBcmc+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywg
dHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRU
cmFpdHNBcmcsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KIHRlbXBsYXRlPHR5cGVuYW1lIEssIHR5cGVu
YW1lIFY+Ci1hdXRvIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0
c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6aW5saW5lU2V0KEsmJiBrZXksIFYmJiB2YWx1ZSkgLT4g
QWRkUmVzdWx0CithdXRvIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRy
YWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnLCBBc3NlcnROb3RGdWxsPjo6aW5saW5lU2V0KEsmJiBr
ZXksIFYmJiB2YWx1ZSkgLT4gQWRkUmVzdWx0CiB7CiAgICAgQWRkUmVzdWx0IHJlc3VsdCA9IGlu
bGluZUFkZChzdGQ6OmZvcndhcmQ8Sz4oa2V5KSwgc3RkOjpmb3J3YXJkPFY+KHZhbHVlKSk7CiAg
ICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkgewpAQCAtMzUzLDkxICszNTMsOTEgQEAgYXV0byBI
YXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRy
YWl0c0FyZz46OmlubGluZVMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmc+Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5h
bWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcsIGJvb2wgQXNzZXJ0Tm90
RnVsbD4KIHRlbXBsYXRlPHR5cGVuYW1lIEssIHR5cGVuYW1lIFY+Ci1BTFdBWVNfSU5MSU5FIGF1
dG8gSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmc+OjppbmxpbmVBZGQoSyYmIGtleSwgViYmIHZhbHVlKSAtPiBBZGRSZXN1bHQK
K0FMV0FZU19JTkxJTkUgYXV0byBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBL
ZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgQXNzZXJ0Tm90RnVsbD46OmlubGluZUFkZChL
JiYga2V5LCBWJiYgdmFsdWUpIC0+IEFkZFJlc3VsdAogewogICAgIHJldHVybiBtX2ltcGwudGVt
cGxhdGUgYWRkPEhhc2hNYXBUcmFuc2xhdG9yPEtleVZhbHVlUGFpclRyYWl0cywgSGFzaEZ1bmN0
aW9ucz4+KHN0ZDo6Zm9yd2FyZDxLPihrZXkpLCBzdGQ6OmZvcndhcmQ8Vj4odmFsdWUpKTsKIH0K
IAotdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1l
IEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzQXJn
PgordGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1l
IEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzQXJn
LCBib29sIEFzc2VydE5vdEZ1bGw+CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLLCB0eXBlbmFtZSBGPgot
QUxXQVlTX0lOTElORSBhdXRvIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtl
eVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6aW5saW5lRW5zdXJlKEsmJiBrZXksIEYmJiBm
dW5jdG9yKSAtPiBBZGRSZXN1bHQKK0FMV0FZU19JTkxJTkUgYXV0byBIYXNoTWFwPEtleUFyZywg
TWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywgQXNzZXJ0
Tm90RnVsbD46OmlubGluZUVuc3VyZShLJiYga2V5LCBGJiYgZnVuY3RvcikgLT4gQWRkUmVzdWx0
CiB7CiAgICAgcmV0dXJuIG1faW1wbC50ZW1wbGF0ZSBhZGQ8SGFzaE1hcEVuc3VyZVRyYW5zbGF0
b3I8S2V5VmFsdWVQYWlyVHJhaXRzLCBIYXNoRnVuY3Rpb25zPj4oc3RkOjpmb3J3YXJkPEs+KGtl
eSksIHN0ZDo6Zm9yd2FyZDxGPihmdW5jdG9yKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEtl
eUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlU
cmFpdHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZz4KK3RlbXBsYXRlPHR5cGVuYW1lIEtl
eUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlU
cmFpdHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgYm9vbCBBc3NlcnROb3RGdWxsPgog
dGVtcGxhdGU8dHlwZW5hbWUgVD4KLWF1dG8gSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFz
aEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmc+OjpzZXQoY29uc3QgS2V5VHlwZSYg
a2V5LCBUJiYgbWFwcGVkKSAtPiBBZGRSZXN1bHQKK2F1dG8gSGFzaE1hcDxLZXlBcmcsIE1hcHBl
ZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEFzc2VydE5vdEZ1
bGw+OjpzZXQoY29uc3QgS2V5VHlwZSYga2V5LCBUJiYgbWFwcGVkKSAtPiBBZGRSZXN1bHQKIHsK
ICAgICByZXR1cm4gaW5saW5lU2V0KGtleSwgc3RkOjpmb3J3YXJkPFQ+KG1hcHBlZCkpOwogfQog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUg
SGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmc+
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUg
SGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcs
IGJvb2wgQXNzZXJ0Tm90RnVsbD4KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1hdXRvIEhhc2hNYXA8
S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJn
Pjo6c2V0KEtleVR5cGUmJiBrZXksIFQmJiBtYXBwZWQpIC0+IEFkZFJlc3VsdAorYXV0byBIYXNo
TWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0
c0FyZywgQXNzZXJ0Tm90RnVsbD46OnNldChLZXlUeXBlJiYga2V5LCBUJiYgbWFwcGVkKSAtPiBB
ZGRSZXN1bHQKIHsKICAgICByZXR1cm4gaW5saW5lU2V0KFdURk1vdmUoa2V5KSwgc3RkOjpmb3J3
YXJkPFQ+KG1hcHBlZCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1l
IE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBl
bmFtZSBNYXBwZWRUcmFpdHNBcmc+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1l
IE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBl
bmFtZSBNYXBwZWRUcmFpdHNBcmcsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KIHRlbXBsYXRlPHR5cGVu
YW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBLLCB0eXBlbmFtZSBWPgotYXV0byBIYXNoTWFw
PEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0Fy
Zz46OmFkZChLJiYga2V5LCBWJiYgdmFsdWUpIC0+IEFkZFJlc3VsdAorYXV0byBIYXNoTWFwPEtl
eUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZywg
QXNzZXJ0Tm90RnVsbD46OmFkZChLJiYga2V5LCBWJiYgdmFsdWUpIC0+IEFkZFJlc3VsdAogewog
ICAgIHJldHVybiBtX2ltcGwudGVtcGxhdGUgYWRkUGFzc2luZ0hhc2hDb2RlPEhhc2hNYXBUcmFu
c2xhdG9yQWRhcHRlcjxLZXlWYWx1ZVBhaXJUcmFpdHMsIEhhc2hUcmFuc2xhdG9yPj4oc3RkOjpm
b3J3YXJkPEs+KGtleSksIHN0ZDo6Zm9yd2FyZDxWPih2YWx1ZSkpOwogfQogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlw
ZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmc+Cit0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlw
ZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcsIGJvb2wgQXNzZXJ0
Tm90RnVsbD4KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1hdXRvIEhhc2hNYXA8S2V5QXJnLCBNYXBw
ZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6YWRkKGNvbnN0
IEtleVR5cGUmIGtleSwgVCYmIG1hcHBlZCkgLT4gQWRkUmVzdWx0CithdXRvIEhhc2hNYXA8S2V5
QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnLCBB
c3NlcnROb3RGdWxsPjo6YWRkKGNvbnN0IEtleVR5cGUmIGtleSwgVCYmIG1hcHBlZCkgLT4gQWRk
UmVzdWx0CiB7CiAgICAgcmV0dXJuIGlubGluZUFkZChrZXksIHN0ZDo6Zm9yd2FyZDxUPihtYXBw
ZWQpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcs
IHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVk
VHJhaXRzQXJnPgordGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcs
IHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVk
VHJhaXRzQXJnLCBib29sIEFzc2VydE5vdEZ1bGw+CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotYXV0
byBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBl
ZFRyYWl0c0FyZz46OmFkZChLZXlUeXBlJiYga2V5LCBUJiYgbWFwcGVkKSAtPiBBZGRSZXN1bHQK
K2F1dG8gSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBN
YXBwZWRUcmFpdHNBcmcsIEFzc2VydE5vdEZ1bGw+OjphZGQoS2V5VHlwZSYmIGtleSwgVCYmIG1h
cHBlZCkgLT4gQWRkUmVzdWx0CiB7CiAgICAgcmV0dXJuIGlubGluZUFkZChXVEZNb3ZlKGtleSks
IHN0ZDo6Zm9yd2FyZDxUPihtYXBwZWQpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJn
LCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzQXJnPgordGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJn
LCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleVRyYWl0
c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzQXJnLCBib29sIEFzc2VydE5vdEZ1bGw+CiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgotQUxXQVlTX0lOTElORSBhdXRvIEhhc2hNYXA8S2V5QXJnLCBNYXBw
ZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6ZmFzdEFkZChj
b25zdCBLZXlUeXBlJiBrZXksIFQmJiBtYXBwZWQpIC0+IEFkZFJlc3VsdAorQUxXQVlTX0lOTElO
RSBhdXRvIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywg
TWFwcGVkVHJhaXRzQXJnLCBBc3NlcnROb3RGdWxsPjo6ZmFzdEFkZChjb25zdCBLZXlUeXBlJiBr
ZXksIFQmJiBtYXBwZWQpIC0+IEFkZFJlc3VsdAogewogICAgIHJldHVybiBpbmxpbmVBZGQoa2V5
LCBzdGQ6OmZvcndhcmQ8VD4obWFwcGVkKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFp
dHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZz4KK3RlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFp
dHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgYm9vbCBBc3NlcnROb3RGdWxsPgogdGVt
cGxhdGU8dHlwZW5hbWUgVD4KLUFMV0FZU19JTkxJTkUgYXV0byBIYXNoTWFwPEtleUFyZywgTWFw
cGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz46OmZhc3RBZGQo
S2V5VHlwZSYmIGtleSwgVCYmIG1hcHBlZCkgLT4gQWRkUmVzdWx0CitBTFdBWVNfSU5MSU5FIGF1
dG8gSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmcsIEFzc2VydE5vdEZ1bGw+OjpmYXN0QWRkKEtleVR5cGUmJiBrZXksIFQmJiBt
YXBwZWQpIC0+IEFkZFJlc3VsdAogewogICAgIHJldHVybiBpbmxpbmVBZGQoV1RGTW92ZShrZXkp
LCBzdGQ6OmZvcndhcmQ8VD4obWFwcGVkKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFp
dHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZz4KK3RlbXBsYXRlPHR5cGVuYW1lIEtleUFy
ZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFp
dHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZywgYm9vbCBBc3NlcnROb3RGdWxsPgogdGVt
cGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLWF1dG8gSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywg
SGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmc+OjplbnN1cmUoY29uc3QgS2V5
VHlwZSYga2V5LCBGdW5jdG9yJiYgZnVuY3RvcikgLT4gQWRkUmVzdWx0CithdXRvIEhhc2hNYXA8
S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJn
LCBBc3NlcnROb3RGdWxsPjo6ZW5zdXJlKGNvbnN0IEtleVR5cGUmIGtleSwgRnVuY3RvciYmIGZ1
bmN0b3IpIC0+IEFkZFJlc3VsdAogewogICAgIHJldHVybiBpbmxpbmVFbnN1cmUoa2V5LCBzdGQ6
OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvcikpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBLZXlB
cmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmc+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlB
cmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFzaEFyZywgdHlwZW5hbWUgS2V5VHJh
aXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci1hdXRvIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcs
IEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6ZW5zdXJlKEtleVR5cGUm
JiBrZXksIEZ1bmN0b3ImJiBmdW5jdG9yKSAtPiBBZGRSZXN1bHQKK2F1dG8gSGFzaE1hcDxLZXlB
cmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmcsIEFz
c2VydE5vdEZ1bGw+OjplbnN1cmUoS2V5VHlwZSYmIGtleSwgRnVuY3RvciYmIGZ1bmN0b3IpIC0+
IEFkZFJlc3VsdAogewogICAgIHJldHVybiBpbmxpbmVFbnN1cmUoc3RkOjpmb3J3YXJkPEtleVR5
cGU+KGtleSksIHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSk7CiB9CiAgICAgCi10ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBl
bmFtZSBNYXBwZWRUcmFpdHM+Ci1pbmxpbmUgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIE1hcHBl
ZFRyYWl0cz46OmdldChjb25zdCBLZXlUeXBlJiBrZXkpIGNvbnN0IC0+IE1hcHBlZFBlZWtUeXBl
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBX
LCB0eXBlbmFtZSBNYXBwZWRUcmFpdHMsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KK2lubGluZSBhdXRv
IEhhc2hNYXA8VCwgVSwgViwgVywgTWFwcGVkVHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6Z2V0KGNv
bnN0IEtleVR5cGUmIGtleSkgY29uc3QgLT4gTWFwcGVkUGVla1R5cGUKIHsKICAgICByZXR1cm4g
Z2V0PElkZW50aXR5VHJhbnNsYXRvclR5cGU+KGtleSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRy
YWl0cz4KLUFMV0FZU19JTkxJTkUgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIE1hcHBlZFRyYWl0
cz46OmlubGluZUdldChjb25zdCBLZXlUeXBlJiBrZXkpIGNvbnN0IC0+IE1hcHBlZFBlZWtUeXBl
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBX
LCB0eXBlbmFtZSBNYXBwZWRUcmFpdHMsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KK0FMV0FZU19JTkxJ
TkUgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIE1hcHBlZFRyYWl0cywgQXNzZXJ0Tm90RnVsbD46
OmlubGluZUdldChjb25zdCBLZXlUeXBlJiBrZXkpIGNvbnN0IC0+IE1hcHBlZFBlZWtUeXBlCiB7
CiAgICAgS2V5VmFsdWVQYWlyVHlwZSogZW50cnkgPSBjb25zdF9jYXN0PEhhc2hUYWJsZVR5cGUm
PihtX2ltcGwpLnRlbXBsYXRlIGlubGluZUxvb2t1cDxJZGVudGl0eVRyYW5zbGF0b3JUeXBlPihr
ZXkpOwogICAgIGlmICghZW50cnkpCkBAIC00NDUsOCArNDQ1LDggQEAgQUxXQVlTX0lOTElORSBh
dXRvIEhhc2hNYXA8VCwgVSwgViwgVywgTWFwcGVkVHJhaXRzPjo6aW5saW5lR2V0KGNvbnN0IEtl
eVR5cGUmIGsKICAgICByZXR1cm4gTWFwcGVkVHJhaXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7CiB9
CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1l
IFcsIHR5cGVuYW1lIFg+Ci1pbmxpbmUgYm9vbCBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+OjpyZW1v
dmUoaXRlcmF0b3IgaXQpCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFt
ZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYLCBib29sIFk+CitpbmxpbmUgYm9vbCBIYXNoTWFw
PFQsIFUsIFYsIFcsIFgsIFk+OjpyZW1vdmUoaXRlcmF0b3IgaXQpCiB7CiAgICAgaWYgKGl0Lm1f
aW1wbCA9PSBtX2ltcGwuZW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQ1NSwyNyAr
NDU1LDI3IEBAIGlubGluZSBib29sIEhhc2hNYXA8VCwgVSwgViwgVywgWD46OnJlbW92ZShpdGVy
YXRvciBpdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWD4KK3RlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFgs
IGJvb2wgWT4KIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci1pbmxpbmUgYm9vbCBIYXNoTWFw
PFQsIFUsIFYsIFcsIFg+OjpyZW1vdmVJZihGdW5jdG9yJiYgZnVuY3RvcikKK2lubGluZSBib29s
IEhhc2hNYXA8VCwgVSwgViwgVywgWCwgWT46OnJlbW92ZUlmKEZ1bmN0b3ImJiBmdW5jdG9yKQog
ewogICAgIHJldHVybiBtX2ltcGwucmVtb3ZlSWYoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0
b3IpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwg
dHlwZW5hbWUgVywgdHlwZW5hbWUgWD4KLWlubGluZSBib29sIEhhc2hNYXA8VCwgVSwgViwgVywg
WD46OnJlbW92ZShjb25zdCBLZXlUeXBlJiBrZXkpCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYLCBib29sIFk+Citpbmxp
bmUgYm9vbCBIYXNoTWFwPFQsIFUsIFYsIFcsIFgsIFk+OjpyZW1vdmUoY29uc3QgS2V5VHlwZSYg
a2V5KQogewogICAgIHJldHVybiByZW1vdmUoZmluZChrZXkpKTsKIH0KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWD4K
LWlubGluZSB2b2lkIEhhc2hNYXA8VCwgVSwgViwgVywgWD46OmNsZWFyKCkKK3RlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFgs
IGJvb2wgWT4KK2lubGluZSB2b2lkIEhhc2hNYXA8VCwgVSwgViwgVywgWCwgWT46OmNsZWFyKCkK
IHsKICAgICBtX2ltcGwuY2xlYXIoKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzPgotYXV0
byBIYXNoTWFwPFQsIFUsIFYsIFcsIE1hcHBlZFRyYWl0cz46OnRha2UoY29uc3QgS2V5VHlwZSYg
a2V5KSAtPiBNYXBwZWRUYWtlVHlwZQordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwg
dHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzLCBib29sIEFzc2Vy
dE5vdEZ1bGw+CithdXRvIEhhc2hNYXA8VCwgVSwgViwgVywgTWFwcGVkVHJhaXRzLCBBc3NlcnRO
b3RGdWxsPjo6dGFrZShjb25zdCBLZXlUeXBlJiBrZXkpIC0+IE1hcHBlZFRha2VUeXBlCiB7CiAg
ICAgaXRlcmF0b3IgaXQgPSBmaW5kKGtleSk7CiAgICAgaWYgKGl0ID09IGVuZCgpKQpAQCAtNDg1
LDMwICs0ODUsMzAgQEAgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIE1hcHBlZFRyYWl0cz46OnRh
a2UoY29uc3QgS2V5VHlwZSYga2V5KSAtPiBNYXBwZWRUYWtlVHkKICAgICByZXR1cm4gdmFsdWU7
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVu
YW1lIFcsIHR5cGVuYW1lIFg+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBl
bmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYLCBib29sIFk+CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBLPgotaW5saW5lIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6ZmluZCh0eXBlbmFtZSBH
ZXRQdHJIZWxwZXI8Sz46OlB0clR5cGUga2V5KSAtPiB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxJ
c1NtYXJ0UHRyPEs+Ojp2YWx1ZSwgaXRlcmF0b3I+Ojp0eXBlCitpbmxpbmUgYXV0byBIYXNoTWFw
PFQsIFUsIFYsIFcsIFgsIFk+OjpmaW5kKHR5cGVuYW1lIEdldFB0ckhlbHBlcjxLPjo6UHRyVHlw
ZSBrZXkpIC0+IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPElzU21hcnRQdHI8Sz46OnZhbHVlLCBp
dGVyYXRvcj46OnR5cGUKIHsKICAgICByZXR1cm4gbV9pbXBsLnRlbXBsYXRlIGZpbmQ8SGFzaE1h
cFRyYW5zbGF0b3I8S2V5VmFsdWVQYWlyVHJhaXRzLCBIYXNoRnVuY3Rpb25zPj4oa2V5KTsKIH0K
IAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUg
VywgdHlwZW5hbWUgWD4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1l
IFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFgsIGJvb2wgWT4KIHRlbXBsYXRlPHR5cGVuYW1lIEs+
Ci1pbmxpbmUgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+OjpmaW5kKHR5cGVuYW1lIEdldFB0
ckhlbHBlcjxLPjo6UHRyVHlwZSBrZXkpIGNvbnN0IC0+IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lm
PElzU21hcnRQdHI8Sz46OnZhbHVlLCBjb25zdF9pdGVyYXRvcj46OnR5cGUKK2lubGluZSBhdXRv
IEhhc2hNYXA8VCwgVSwgViwgVywgWCwgWT46OmZpbmQodHlwZW5hbWUgR2V0UHRySGVscGVyPEs+
OjpQdHJUeXBlIGtleSkgY29uc3QgLT4gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8SXNTbWFydFB0
cjxLPjo6dmFsdWUsIGNvbnN0X2l0ZXJhdG9yPjo6dHlwZQogewogICAgIHJldHVybiBtX2ltcGwu
dGVtcGxhdGUgZmluZDxIYXNoTWFwVHJhbnNsYXRvcjxLZXlWYWx1ZVBhaXJUcmFpdHMsIEhhc2hG
dW5jdGlvbnM+PihrZXkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0
eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYPgordGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWCwgYm9vbCBZPgog
dGVtcGxhdGU8dHlwZW5hbWUgSz4KLWlubGluZSBhdXRvIEhhc2hNYXA8VCwgVSwgViwgVywgWD46
OmNvbnRhaW5zKHR5cGVuYW1lIEdldFB0ckhlbHBlcjxLPjo6UHRyVHlwZSBrZXkpIGNvbnN0IC0+
IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPElzU21hcnRQdHI8Sz46OnZhbHVlLCBib29sPjo6dHlw
ZQoraW5saW5lIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBYLCBZPjo6Y29udGFpbnModHlwZW5h
bWUgR2V0UHRySGVscGVyPEs+OjpQdHJUeXBlIGtleSkgY29uc3QgLT4gdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWY8SXNTbWFydFB0cjxLPjo6dmFsdWUsIGJvb2w+Ojp0eXBlCiB7CiAgICAgcmV0dXJu
IG1faW1wbC50ZW1wbGF0ZSBjb250YWluczxIYXNoTWFwVHJhbnNsYXRvcjxLZXlWYWx1ZVBhaXJU
cmFpdHMsIEhhc2hGdW5jdGlvbnM+PihrZXkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYPgordGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUg
WCwgYm9vbCBZPgogdGVtcGxhdGU8dHlwZW5hbWUgSz4KLWlubGluZSBhdXRvIEhhc2hNYXA8VCwg
VSwgViwgVywgWD46OmlubGluZUdldCh0eXBlbmFtZSBHZXRQdHJIZWxwZXI8Sz46OlB0clR5cGUg
a2V5KSBjb25zdCAtPiB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxJc1NtYXJ0UHRyPEs+Ojp2YWx1
ZSwgTWFwcGVkUGVla1R5cGU+Ojp0eXBlCitpbmxpbmUgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcs
IFgsIFk+OjppbmxpbmVHZXQodHlwZW5hbWUgR2V0UHRySGVscGVyPEs+OjpQdHJUeXBlIGtleSkg
Y29uc3QgLT4gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8SXNTbWFydFB0cjxLPjo6dmFsdWUsIE1h
cHBlZFBlZWtUeXBlPjo6dHlwZQogewogICAgIEtleVZhbHVlUGFpclR5cGUqIGVudHJ5ID0gY29u
c3RfY2FzdDxIYXNoVGFibGVUeXBlJj4obV9pbXBsKS50ZW1wbGF0ZSBpbmxpbmVMb29rdXA8SGFz
aE1hcFRyYW5zbGF0b3I8S2V5VmFsdWVQYWlyVHJhaXRzLCBIYXNoRnVuY3Rpb25zPj4oa2V5KTsK
ICAgICBpZiAoIWVudHJ5KQpAQCAtNTE2LDIzICs1MTYsMjMgQEAgaW5saW5lIGF1dG8gSGFzaE1h
cDxULCBVLCBWLCBXLCBYPjo6aW5saW5lR2V0KHR5cGVuYW1lIEdldFB0ckhlbHBlcjxLPjo6UHRy
VHlwZQogICAgIHJldHVybiBNYXBwZWRUcmFpdHM6OnBlZWsoZW50cnktPnZhbHVlKTsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywg
dHlwZW5hbWUgWD4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYs
IHR5cGVuYW1lIFcsIHR5cGVuYW1lIFgsIGJvb2wgWT4KIHRlbXBsYXRlPHR5cGVuYW1lIEs+Ci1h
dXRvIEhhc2hNYXA8VCwgVSwgViwgVywgWD46OmdldCh0eXBlbmFtZSBHZXRQdHJIZWxwZXI8Sz46
OlB0clR5cGUga2V5KSBjb25zdCAtPiB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxJc1NtYXJ0UHRy
PEs+Ojp2YWx1ZSwgTWFwcGVkUGVla1R5cGU+Ojp0eXBlCithdXRvIEhhc2hNYXA8VCwgVSwgViwg
VywgWCwgWT46OmdldCh0eXBlbmFtZSBHZXRQdHJIZWxwZXI8Sz46OlB0clR5cGUga2V5KSBjb25z
dCAtPiB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxJc1NtYXJ0UHRyPEs+Ojp2YWx1ZSwgTWFwcGVk
UGVla1R5cGU+Ojp0eXBlCiB7CiAgICAgcmV0dXJuIGlubGluZUdldChrZXkpOwogfQogCi10ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBl
bmFtZSBYPgordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlw
ZW5hbWUgVywgdHlwZW5hbWUgWCwgYm9vbCBZPgogdGVtcGxhdGU8dHlwZW5hbWUgSz4KLWlubGlu
ZSBhdXRvIEhhc2hNYXA8VCwgVSwgViwgVywgWD46OnJlbW92ZSh0eXBlbmFtZSBHZXRQdHJIZWxw
ZXI8Sz46OlB0clR5cGUga2V5KSAtPiB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxJc1NtYXJ0UHRy
PEs+Ojp2YWx1ZSwgYm9vbD46OnR5cGUKK2lubGluZSBhdXRvIEhhc2hNYXA8VCwgVSwgViwgVywg
WCwgWT46OnJlbW92ZSh0eXBlbmFtZSBHZXRQdHJIZWxwZXI8Sz46OlB0clR5cGUga2V5KSAtPiB0
eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxJc1NtYXJ0UHRyPEs+Ojp2YWx1ZSwgYm9vbD46OnR5cGUK
IHsKICAgICByZXR1cm4gcmVtb3ZlKGZpbmQoa2V5KSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+Cit0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBl
bmFtZSBYLCBib29sIFk+CiB0ZW1wbGF0ZTx0eXBlbmFtZSBLPgotaW5saW5lIGF1dG8gSGFzaE1h
cDxULCBVLCBWLCBXLCBYPjo6dGFrZSh0eXBlbmFtZSBHZXRQdHJIZWxwZXI8Sz46OlB0clR5cGUg
a2V5KSAtPiB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxJc1NtYXJ0UHRyPEs+Ojp2YWx1ZSwgTWFw
cGVkVGFrZVR5cGU+Ojp0eXBlCitpbmxpbmUgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIFgsIFk+
Ojp0YWtlKHR5cGVuYW1lIEdldFB0ckhlbHBlcjxLPjo6UHRyVHlwZSBrZXkpIC0+IHR5cGVuYW1l
IHN0ZDo6ZW5hYmxlX2lmPElzU21hcnRQdHI8Sz46OnZhbHVlLCBNYXBwZWRUYWtlVHlwZT46OnR5
cGUKIHsKICAgICBpdGVyYXRvciBpdCA9IGZpbmQoa2V5KTsKICAgICBpZiAoaXQgPT0gZW5kKCkp
CkBAIC01NDIsMTQgKzU0MiwxNCBAQCBpbmxpbmUgYXV0byBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+
Ojp0YWtlKHR5cGVuYW1lIEdldFB0ckhlbHBlcjxLPjo6UHRyVHlwZSBrZXkpCiAgICAgcmV0dXJu
IHZhbHVlOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBW
LCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYPgotaW5saW5lIHZvaWQgSGFzaE1hcDxULCBVLCBWLCBX
LCBYPjo6Y2hlY2tDb25zaXN0ZW5jeSgpIGNvbnN0Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYLCBib29sIFk+Citpbmxp
bmUgdm9pZCBIYXNoTWFwPFQsIFUsIFYsIFcsIFgsIFk+OjpjaGVja0NvbnNpc3RlbmN5KCkgY29u
c3QKIHsKICAgICBtX2ltcGwuY2hlY2tUYWJsZUNvbnNpc3RlbmN5KCk7CiB9CiAKLXRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1l
IFg+Ci1pbmxpbmUgYm9vbCBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+Ojppc1ZhbGlkS2V5KGNvbnN0
IEtleVR5cGUmIGtleSkKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1l
IFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFgsIGJvb2wgWT4KK2lubGluZSBib29sIEhhc2hNYXA8
VCwgVSwgViwgVywgWCwgWT46OmlzVmFsaWRLZXkoY29uc3QgS2V5VHlwZSYga2V5KQogewogICAg
IGlmIChLZXlUcmFpdHM6OmlzRGVsZXRlZFZhbHVlKGtleSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTU2NSwxMyArNTY1LDEzIEBAIGlubGluZSBib29sIEhhc2hNYXA8VCwgVSwgViwgVywg
WD46OmlzVmFsaWRLZXkoY29uc3QgS2V5VHlwZSYga2V5KQogICAgIHJldHVybiB0cnVlOwogfQog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBX
LCB0eXBlbmFtZSBYPgotYm9vbCBvcGVyYXRvcj09KGNvbnN0IEhhc2hNYXA8VCwgVSwgViwgVywg
WD4mIGEsIGNvbnN0IEhhc2hNYXA8VCwgVSwgViwgVywgWD4mIGIpCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYLCBib29s
IFk+Citib29sIG9wZXJhdG9yPT0oY29uc3QgSGFzaE1hcDxULCBVLCBWLCBXLCBYLCBZPiYgYSwg
Y29uc3QgSGFzaE1hcDxULCBVLCBWLCBXLCBYLCBZPiYgYikKIHsKICAgICBpZiAoYS5zaXplKCkg
IT0gYi5zaXplKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHR5cGVkZWYgdHlwZW5h
bWUgSGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6Y29uc3RfaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7
CisgICAgdHlwZWRlZiB0eXBlbmFtZSBIYXNoTWFwPFQsIFUsIFYsIFcsIFgsIFk+Ojpjb25zdF9p
dGVyYXRvciBjb25zdF9pdGVyYXRvcjsKIAogICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCA9IGEuZW5k
KCk7CiAgICAgY29uc3RfaXRlcmF0b3Igbm90Rm91bmQgPSBiLmVuZCgpOwpAQCAtNTg0LDggKzU4
NCw4IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+JiBhLCBj
b25zdCBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+JiBiCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5
cGVuYW1lIFg+Ci1pbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEhhc2hNYXA8VCwgVSwgViwg
VywgWD4mIGEsIGNvbnN0IEhhc2hNYXA8VCwgVSwgViwgVywgWD4mIGIpCit0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBYLCBi
b29sIFk+CitpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEhhc2hNYXA8VCwgVSwgViwgVywg
WCwgWT4mIGEsIGNvbnN0IEhhc2hNYXA8VCwgVSwgViwgVywgWCwgWT4mIGIpCiB7CiAgICAgcmV0
dXJuICEoYSA9PSBiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5o
IGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKaW5kZXggYmE3NDBiZGM2OWZjMzBiNzdjMjZj
ZDMwYTQ5MzUzMDhlNWI2Y2JjMS4uOGYwYThkN2E0NTZiYjdkZjg4ZDZlNGFhNzE5NThkODMxMDdh
NDhlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKKysrIGIvU291cmNl
L1dURi93dGYvSGFzaFRhYmxlLmgKQEAgLTgxLDQ2ICs4MSw0NiBAQCBERUNMQVJFX0FMTE9DQVRP
Ul9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwogCiAjZW5kaWYKIAotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlw
ZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0
cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1l
IEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxsID0gZmFsc2U+CiAgICAgY2xhc3MgSGFzaFRh
YmxlOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1l
IEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBl
bmFtZSBLZXlUcmFpdHM+CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1
ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBU
cmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxsID0gZmFsc2U+CiAg
ICAgY2xhc3MgSGFzaFRhYmxlSXRlcmF0b3I7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0
eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25z
LCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhh
c2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzLCBib29sIEFz
c2VydE5vdEZ1bGwgPSBmYWxzZT4KICAgICBjbGFzcyBIYXNoVGFibGVDb25zdEl0ZXJhdG9yOwog
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0
cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1l
IEtleVRyYWl0cz4KLSAgICB2b2lkIGFkZEl0ZXJhdG9yKGNvbnN0IEhhc2hUYWJsZTxLZXksIFZh
bHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPiosCi0gICAg
ICAgIEhhc2hUYWJsZUNvbnN0SXRlcmF0b3I8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVu
Y3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz4qKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXks
IHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlv
bnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1
bGw+CisgICAgdm9pZCBhZGRJdGVyYXRvcihjb25zdCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0
cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD4q
LAorICAgICAgICBIYXNoVGFibGVDb25zdEl0ZXJhdG9yPEtleSwgVmFsdWUsIEV4dHJhY3Rvciwg
SGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+Kik7CiAKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0
b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5
VHJhaXRzPgotICAgIHZvaWQgcmVtb3ZlSXRlcmF0b3IoSGFzaFRhYmxlQ29uc3RJdGVyYXRvcjxL
ZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPiop
OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4
dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFt
ZSBLZXlUcmFpdHMsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KKyAgICB2b2lkIHJlbW92ZUl0ZXJhdG9y
KEhhc2hUYWJsZUNvbnN0SXRlcmF0b3I8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rp
b25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD4qKTsKIAogI2lmICFDSEVDS19I
QVNIVEFCTEVfSVRFUkFUT1JTCiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1l
IFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVu
YW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzPgotICAgIGlubGluZSB2b2lkIGFkZEl0ZXJh
dG9yKGNvbnN0IEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMs
IFRyYWl0cywgS2V5VHJhaXRzPiosCi0gICAgICAgIEhhc2hUYWJsZUNvbnN0SXRlcmF0b3I8S2V5
LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz4qKSB7
IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBF
eHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5h
bWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+CisgICAgaW5saW5lIHZvaWQgYWRkSXRl
cmF0b3IoY29uc3QgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9u
cywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+KiwKKyAgICAgICAgSGFzaFRhYmxl
Q29uc3RJdGVyYXRvcjxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0
cywgS2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPiopIHsgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNo
RnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KLSAgICBpbmxp
bmUgdm9pZCByZW1vdmVJdGVyYXRvcihIYXNoVGFibGVDb25zdEl0ZXJhdG9yPEtleSwgVmFsdWUs
IEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+KikgeyB9CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9y
LCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRy
YWl0cywgYm9vbCBBc3NlcnROb3RGdWxsPgorICAgIGlubGluZSB2b2lkIHJlbW92ZUl0ZXJhdG9y
KEhhc2hUYWJsZUNvbnN0SXRlcmF0b3I8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rp
b25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD4qKSB7IH0KIAogI2VuZGlmCiAK
ICAgICB0eXBlZGVmIGVudW0geyBIYXNoSXRlbUtub3duR29vZCB9IEhhc2hJdGVtS25vd25Hb29k
VGFnOwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5h
bWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5
cGVuYW1lIEtleVRyYWl0cz4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZh
bHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1l
IFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+CiAgICAgY2xh
c3MgSGFzaFRhYmxlQ29uc3RJdGVyYXRvciA6IHB1YmxpYyBzdGQ6Oml0ZXJhdG9yPHN0ZDo6Zm9y
d2FyZF9pdGVyYXRvcl90YWcsIFZhbHVlLCBzdGQ6OnB0cmRpZmZfdCwgY29uc3QgVmFsdWUqLCBj
b25zdCBWYWx1ZSY+IHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHJp
dmF0ZToKLSAgICAgICAgdHlwZWRlZiBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBI
YXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz4gSGFzaFRhYmxlVHlwZTsKLSAgICAgICAg
dHlwZWRlZiBIYXNoVGFibGVJdGVyYXRvcjxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5j
dGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPiBpdGVyYXRvcjsKLSAgICAgICAgdHlwZWRlZiBIYXNo
VGFibGVDb25zdEl0ZXJhdG9yPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywg
VHJhaXRzLCBLZXlUcmFpdHM+IGNvbnN0X2l0ZXJhdG9yOworICAgICAgICB0eXBlZGVmIEhhc2hU
YWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJh
aXRzLCBBc3NlcnROb3RGdWxsPiBIYXNoVGFibGVUeXBlOworICAgICAgICB0eXBlZGVmIEhhc2hU
YWJsZUl0ZXJhdG9yPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRz
LCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+IGl0ZXJhdG9yOworICAgICAgICB0eXBlZGVmIEhh
c2hUYWJsZUNvbnN0SXRlcmF0b3I8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25z
LCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD4gY29uc3RfaXRlcmF0b3I7CiAgICAg
ICAgIHR5cGVkZWYgVmFsdWUgVmFsdWVUeXBlOwogICAgICAgICB0eXBlZGVmIGNvbnN0IFZhbHVl
VHlwZSYgUmVmZXJlbmNlVHlwZTsKICAgICAgICAgdHlwZWRlZiBjb25zdCBWYWx1ZVR5cGUqIFBv
aW50ZXJUeXBlOwogCi0gICAgICAgIGZyaWVuZCBjbGFzcyBIYXNoVGFibGU8S2V5LCBWYWx1ZSwg
RXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz47Ci0gICAgICAgIGZy
aWVuZCBjbGFzcyBIYXNoVGFibGVJdGVyYXRvcjxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hG
dW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPjsKKyAgICAgICAgZnJpZW5kIGNsYXNzIEhhc2hU
YWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJh
aXRzLCBBc3NlcnROb3RGdWxsPjsKKyAgICAgICAgZnJpZW5kIGNsYXNzIEhhc2hUYWJsZUl0ZXJh
dG9yPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFp
dHMsIEFzc2VydE5vdEZ1bGw+OwogCiAgICAgICAgIHZvaWQgc2tpcEVtcHR5QnVja2V0cygpCiAg
ICAgICAgIHsKQEAgLTI0NSwxOCArMjQ1LDE4IEBAIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVB
UF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAjZW5kaWYKICAgICB9OwogCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFt
ZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0
b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5
VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+CiAgICAgY2xhc3MgSGFzaFRhYmxlSXRlcmF0b3Ig
OiBwdWJsaWMgc3RkOjppdGVyYXRvcjxzdGQ6OmZvcndhcmRfaXRlcmF0b3JfdGFnLCBWYWx1ZSwg
c3RkOjpwdHJkaWZmX3QsIFZhbHVlKiwgVmFsdWUmPiB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIHByaXZhdGU6Ci0gICAgICAgIHR5cGVkZWYgSGFzaFRhYmxlPEtleSwg
VmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+IEhhc2hU
YWJsZVR5cGU7Ci0gICAgICAgIHR5cGVkZWYgSGFzaFRhYmxlSXRlcmF0b3I8S2V5LCBWYWx1ZSwg
RXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz4gaXRlcmF0b3I7Ci0g
ICAgICAgIHR5cGVkZWYgSGFzaFRhYmxlQ29uc3RJdGVyYXRvcjxLZXksIFZhbHVlLCBFeHRyYWN0
b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPiBjb25zdF9pdGVyYXRvcjsKKyAg
ICAgICAgdHlwZWRlZiBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rp
b25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD4gSGFzaFRhYmxlVHlwZTsKKyAg
ICAgICAgdHlwZWRlZiBIYXNoVGFibGVJdGVyYXRvcjxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhh
c2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPiBpdGVyYXRvcjsK
KyAgICAgICAgdHlwZWRlZiBIYXNoVGFibGVDb25zdEl0ZXJhdG9yPEtleSwgVmFsdWUsIEV4dHJh
Y3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+IGNv
bnN0X2l0ZXJhdG9yOwogICAgICAgICB0eXBlZGVmIFZhbHVlIFZhbHVlVHlwZTsKICAgICAgICAg
dHlwZWRlZiBWYWx1ZVR5cGUmIFJlZmVyZW5jZVR5cGU7CiAgICAgICAgIHR5cGVkZWYgVmFsdWVU
eXBlKiBQb2ludGVyVHlwZTsKIAotICAgICAgICBmcmllbmQgY2xhc3MgSGFzaFRhYmxlPEtleSwg
VmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OworICAg
ICAgICBmcmllbmQgY2xhc3MgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1
bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OwogCiAgICAgICAgIEhh
c2hUYWJsZUl0ZXJhdG9yKEhhc2hUYWJsZVR5cGUqIHRhYmxlLCBQb2ludGVyVHlwZSBwb3MsIFBv
aW50ZXJUeXBlIGVuZCkgOiBtX2l0ZXJhdG9yKHRhYmxlLCBwb3MsIGVuZCkgeyB9CiAgICAgICAg
IEhhc2hUYWJsZUl0ZXJhdG9yKEhhc2hUYWJsZVR5cGUqIHRhYmxlLCBQb2ludGVyVHlwZSBwb3Ms
IFBvaW50ZXJUeXBlIGVuZCwgSGFzaEl0ZW1Lbm93bkdvb2RUYWcgdGFnKSA6IG1faXRlcmF0b3Io
dGFibGUsIHBvcywgZW5kLCB0YWcpIHsgfQpAQCAtMzQ2LDExICszNDYsMTEgQEAgREVDTEFSRV9B
TExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRhYmxlKTsKICAgICAgICAgc3RhdGlj
X2Fzc2VydCghc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlID4+IDMxKSwgIkhhc2hUYWJsZU5v
Q2FwYWNpdHlPdmVyZmxvdyIpOwogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXks
IHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlv
bnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzPgorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUg
SGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHMsIGJvb2wg
QXNzZXJ0Tm90RnVsbD4KICAgICBjbGFzcyBIYXNoVGFibGUgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgdHlwZWRlZiBIYXNoVGFibGVJdGVyYXRvcjxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hG
dW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPiBpdGVyYXRvcjsKLSAgICAgICAgdHlwZWRlZiBI
YXNoVGFibGVDb25zdEl0ZXJhdG9yPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9u
cywgVHJhaXRzLCBLZXlUcmFpdHM+IGNvbnN0X2l0ZXJhdG9yOworICAgICAgICB0eXBlZGVmIEhh
c2hUYWJsZUl0ZXJhdG9yPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJh
aXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+IGl0ZXJhdG9yOworICAgICAgICB0eXBlZGVm
IEhhc2hUYWJsZUNvbnN0SXRlcmF0b3I8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rp
b25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD4gY29uc3RfaXRlcmF0b3I7CiAg
ICAgICAgIHR5cGVkZWYgVHJhaXRzIFZhbHVlVHJhaXRzOwogICAgICAgICB0eXBlZGVmIEtleSBL
ZXlUeXBlOwogICAgICAgICB0eXBlZGVmIFZhbHVlIFZhbHVlVHlwZTsKQEAgLTYwNyw4ICs2MDcs
OCBAQCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwog
I2VuZGlmCiAgICAgfTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFs
dWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUg
VHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Ci0gICAgaW5saW5lIEhhc2hUYWJsZTxLZXksIFZh
bHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPjo6SGFzaFRh
YmxlKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFt
ZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlw
ZW5hbWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+CisgICAgaW5saW5lIEhhc2hUYWJs
ZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRz
LCBBc3NlcnROb3RGdWxsPjo6SGFzaFRhYmxlKCkKICAgICAgICAgOiBtX3RhYmxlKG51bGxwdHIp
CiAjaWYgQ0hFQ0tfSEFTSFRBQkxFX0lURVJBVE9SUwogICAgICAgICAsIG1faXRlcmF0b3JzKDAp
CkBAIC02MzIsMTcgKzYzMiwxNyBAQCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJ
RklFUihIYXNoVGFibGUpOwogCiAjaWYgIUFTU0VSVF9FTkFCTEVECiAKLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1l
IEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzPgorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3Rv
ciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlU
cmFpdHMsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoVHJh
bnNsYXRvciwgdHlwZW5hbWUgVD4KLSAgICBpbmxpbmUgdm9pZCBIYXNoVGFibGU8S2V5LCBWYWx1
ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46OmNoZWNrS2V5
KGNvbnN0IFQmKQorICAgIGlubGluZSB2b2lkIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0
b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6Y2hl
Y2tLZXkoY29uc3QgVCYpCiAgICAgewogICAgIH0KIAogI2Vsc2UgLy8gQVNTRVJUX0VOQUJMRUQK
IAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4
dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFt
ZSBLZXlUcmFpdHM+CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwg
dHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFp
dHMsIHR5cGVuYW1lIEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxsPgogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPgotICAgIHZvaWQgSGFzaFRhYmxl
PEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+
OjpjaGVja0tleShjb25zdCBUJiBrZXkpCisgICAgdm9pZCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwg
RXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVs
bD46OmNoZWNrS2V5KGNvbnN0IFQmIGtleSkKICAgICB7CiAgICAgICAgIGlmICghSGFzaEZ1bmN0
aW9uczo6c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQpCiAgICAgICAgICAgICByZXR1cm47
CkBAIC02NTYsMTYgKzY1NiwxNiBAQCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJ
RklFUihIYXNoVGFibGUpOwogCiAjZW5kaWYgLy8gQVNTRVJUX0VOQUJMRUQKIAotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlw
ZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0
cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1l
IEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxsPgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhh
c2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPgotICAgIGlubGluZSBhdXRvIEhhc2hUYWJsZTxLZXks
IFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPjo6bG9v
a3VwKGNvbnN0IFQmIGtleSkgLT4gVmFsdWVUeXBlKgorICAgIGlubGluZSBhdXRvIEhhc2hUYWJs
ZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRz
LCBBc3NlcnROb3RGdWxsPjo6bG9va3VwKGNvbnN0IFQmIGtleSkgLT4gVmFsdWVUeXBlKgogICAg
IHsKICAgICAgICAgcmV0dXJuIGlubGluZUxvb2t1cDxIYXNoVHJhbnNsYXRvcj4oa2V5KTsKICAg
ICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFt
ZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlw
ZW5hbWUgS2V5VHJhaXRzPgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFs
dWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUg
VHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHMsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVD4KLSAgICBBTFdBWVNfSU5M
SU5FIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywg
VHJhaXRzLCBLZXlUcmFpdHM+OjppbmxpbmVMb29rdXAoY29uc3QgVCYga2V5KSAtPiBWYWx1ZVR5
cGUqCisgICAgQUxXQVlTX0lOTElORSBhdXRvIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0
b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6aW5s
aW5lTG9va3VwKGNvbnN0IFQmIGtleSkgLT4gVmFsdWVUeXBlKgogICAgIHsKICAgICAgICAgY2hl
Y2tLZXk8SGFzaFRyYW5zbGF0b3I+KGtleSk7CiAKQEAgLTcxNywxMyArNzE3LDE0IEBAIERFQ0xB
UkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAgICAg
ICBpZiAoayA9PSAwKQogICAgICAgICAgICAgICAgIGsgPSAxIHwgZG91YmxlSGFzaChoKTsKICAg
ICAgICAgICAgIGkgPSAoaSArIGspICYgc2l6ZU1hc2s7Ci0gICAgICAgICAgICBIQVNIX1RBQkxF
X1JFTEVBU0VfQVNTRVJUKGkgIT0gaW5pdGlhbEluZGV4KTsKKyAgICAgICAgICAgIGlmIGNvbnN0
ZXhwciAoQXNzZXJ0Tm90RnVsbCkKKyAgICAgICAgICAgICAgICBIQVNIX1RBQkxFX1JFTEVBU0Vf
QVNTRVJUKGkgIT0gaW5pdGlhbEluZGV4KTsKICAgICAgICAgfQogICAgIH0KIAotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlw
ZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0
cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1l
IEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxsPgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhh
c2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPgotICAgIGlubGluZSBhdXRvIEhhc2hUYWJsZTxLZXks
IFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPjo6bG9v
a3VwRm9yV3JpdGluZyhjb25zdCBUJiBrZXkpIC0+IExvb2t1cFR5cGUKKyAgICBpbmxpbmUgYXV0
byBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMs
IEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD46Omxvb2t1cEZvcldyaXRpbmcoY29uc3QgVCYga2V5
KSAtPiBMb29rdXBUeXBlCiAgICAgewogICAgICAgICBBU1NFUlQobV90YWJsZSk7CiAgICAgICAg
IGNoZWNrS2V5PEhhc2hUcmFuc2xhdG9yPihrZXkpOwpAQCAtNzgwLDEzICs3ODEsMTQgQEAgREVD
TEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRhYmxlKTsKICAgICAgICAg
ICAgIGlmIChrID09IDApCiAgICAgICAgICAgICAgICAgayA9IDEgfCBkb3VibGVIYXNoKGgpOwog
ICAgICAgICAgICAgaSA9IChpICsgaykgJiBzaXplTWFzazsKLSAgICAgICAgICAgIEhBU0hfVEFC
TEVfUkVMRUFTRV9BU1NFUlQoaSAhPSBpbml0aWFsSW5kZXgpOworICAgICAgICAgICAgaWYgY29u
c3RleHByIChBc3NlcnROb3RGdWxsKQorICAgICAgICAgICAgICAgIEhBU0hfVEFCTEVfUkVMRUFT
RV9BU1NFUlQoaSAhPSBpbml0aWFsSW5kZXgpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0
eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0
cz4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBF
eHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5h
bWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
SGFzaFRyYW5zbGF0b3IsIHR5cGVuYW1lIFQ+Ci0gICAgaW5saW5lIGF1dG8gSGFzaFRhYmxlPEtl
eSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+Ojpm
dWxsTG9va3VwRm9yV3JpdGluZyhjb25zdCBUJiBrZXkpIC0+IEZ1bGxMb29rdXBUeXBlCisgICAg
aW5saW5lIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9u
cywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OjpmdWxsTG9va3VwRm9yV3JpdGlu
Zyhjb25zdCBUJiBrZXkpIC0+IEZ1bGxMb29rdXBUeXBlCiAgICAgewogICAgICAgICBBU1NFUlQo
bV90YWJsZSk7CiAgICAgICAgIGNoZWNrS2V5PEhhc2hUcmFuc2xhdG9yPihrZXkpOwpAQCAtODQz
LDEzICs4NDUsMTQgQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFz
aFRhYmxlKTsKICAgICAgICAgICAgIGlmIChrID09IDApCiAgICAgICAgICAgICAgICAgayA9IDEg
fCBkb3VibGVIYXNoKGgpOwogICAgICAgICAgICAgaSA9IChpICsgaykgJiBzaXplTWFzazsKLSAg
ICAgICAgICAgIEhBU0hfVEFCTEVfUkVMRUFTRV9BU1NFUlQoaSAhPSBpbml0aWFsSW5kZXgpOwor
ICAgICAgICAgICAgaWYgY29uc3RleHByIChBc3NlcnROb3RGdWxsKQorICAgICAgICAgICAgICAg
IEhBU0hfVEFCTEVfUkVMRUFTRV9BU1NFUlQoaSAhPSBpbml0aWFsSW5kZXgpOwogICAgICAgICB9
CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlw
ZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMs
IHR5cGVuYW1lIEtleVRyYWl0cz4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1l
IFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVu
YW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgSGFzaFRyYW5zbGF0b3IsIHR5cGVuYW1lIFQsIHR5cGVuYW1lIEV4
dHJhPgotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFj
dG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46OmFkZFVuaXF1ZUZvckluaXRp
YWxpemF0aW9uKFQmJiBrZXksIEV4dHJhJiYgZXh0cmEpCisgICAgQUxXQVlTX0lOTElORSB2b2lk
IEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywg
S2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6YWRkVW5pcXVlRm9ySW5pdGlhbGl6YXRpb24oVCYm
IGtleSwgRXh0cmEmJiBleHRyYSkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3RhYmxlKTsKIApA
QCAtODk0LDcgKzg5Nyw4IEBAIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVS
KEhhc2hUYWJsZSk7CiAgICAgICAgICAgICBpZiAoayA9PSAwKQogICAgICAgICAgICAgICAgIGsg
PSAxIHwgZG91YmxlSGFzaChoKTsKICAgICAgICAgICAgIGkgPSAoaSArIGspICYgc2l6ZU1hc2s7
Ci0gICAgICAgICAgICBIQVNIX1RBQkxFX1JFTEVBU0VfQVNTRVJUKGkgIT0gaW5pdGlhbEluZGV4
KTsKKyAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAoQXNzZXJ0Tm90RnVsbCkKKyAgICAgICAgICAg
ICAgICBIQVNIX1RBQkxFX1JFTEVBU0VfQVNTRVJUKGkgIT0gaW5pdGlhbEluZGV4KTsKICAgICAg
ICAgfQogCiAgICAgICAgIEhhc2hUcmFuc2xhdG9yOjp0cmFuc2xhdGUoKmVudHJ5LCBzdGQ6OmZv
cndhcmQ8VD4oa2V5KSwgc3RkOjpmb3J3YXJkPEV4dHJhPihleHRyYSkpOwpAQCAtOTIxLDE1ICs5
MjUsMTUgQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRhYmxl
KTsKICAgICAgICAgfQogICAgIH07CiAgICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0
eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25z
LCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KLSAgICBpbmxpbmUgdm9pZCBI
YXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtl
eVRyYWl0cz46OmluaXRpYWxpemVCdWNrZXQoVmFsdWVUeXBlJiBidWNrZXQpCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBl
bmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywg
Ym9vbCBBc3NlcnROb3RGdWxsPgorICAgIGlubGluZSB2b2lkIEhhc2hUYWJsZTxLZXksIFZhbHVl
LCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBBc3NlcnROb3RG
dWxsPjo6aW5pdGlhbGl6ZUJ1Y2tldChWYWx1ZVR5cGUmIGJ1Y2tldCkKICAgICB7CiAgICAgICAg
IEhhc2hUYWJsZUJ1Y2tldEluaXRpYWxpemVyPFRyYWl0czo6ZW1wdHlWYWx1ZUlzWmVybz46OnRl
bXBsYXRlIGluaXRpYWxpemU8VHJhaXRzPihidWNrZXQpOwogICAgIH0KIAotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5h
bWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFj
dG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtl
eVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxsPgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hU
cmFuc2xhdG9yLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBFeHRyYT4KLSAgICBBTFdBWVNfSU5MSU5F
IGF1dG8gSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJh
aXRzLCBLZXlUcmFpdHM+OjphZGQoVCYmIGtleSwgRXh0cmEmJiBleHRyYSkgLT4gQWRkUmVzdWx0
CisgICAgQUxXQVlTX0lOTElORSBhdXRvIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3Is
IEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6YWRkKFQm
JiBrZXksIEV4dHJhJiYgZXh0cmEpIC0+IEFkZFJlc3VsdAogICAgIHsKICAgICAgICAgY2hlY2tL
ZXk8SGFzaFRyYW5zbGF0b3I+KGtleSk7CiAKQEAgLTk5NCw3ICs5OTgsOCBAQCBERUNMQVJFX0FM
TE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwogICAgICAgICAgICAgaWYg
KGsgPT0gMCkKICAgICAgICAgICAgICAgICBrID0gMSB8IGRvdWJsZUhhc2goaCk7CiAgICAgICAg
ICAgICBpID0gKGkgKyBrKSAmIHNpemVNYXNrOwotICAgICAgICAgICAgSEFTSF9UQUJMRV9SRUxF
QVNFX0FTU0VSVChpICE9IGluaXRpYWxJbmRleCk7CisgICAgICAgICAgICBpZiBjb25zdGV4cHIg
KEFzc2VydE5vdEZ1bGwpCisgICAgICAgICAgICAgICAgSEFTSF9UQUJMRV9SRUxFQVNFX0FTU0VS
VChpICE9IGluaXRpYWxJbmRleCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoZGVsZXRlZEVu
dHJ5KSB7CkBAIC0xMDE0LDkgKzEwMTksOSBAQCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBf
SURFTlRJRklFUihIYXNoVGFibGUpOwogICAgICAgICByZXR1cm4gQWRkUmVzdWx0KG1ha2VLbm93
bkdvb2RJdGVyYXRvcihlbnRyeSksIHRydWUpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFz
aEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0
eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0
cywgYm9vbCBBc3NlcnROb3RGdWxsPgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xh
dG9yLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBFeHRyYT4KLSAgICBpbmxpbmUgYXV0byBIYXNoVGFi
bGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0
cz46OmFkZFBhc3NpbmdIYXNoQ29kZShUJiYga2V5LCBFeHRyYSYmIGV4dHJhKSAtPiBBZGRSZXN1
bHQKKyAgICBpbmxpbmUgYXV0byBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNo
RnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD46OmFkZFBhc3NpbmdI
YXNoQ29kZShUJiYga2V5LCBFeHRyYSYmIGV4dHJhKSAtPiBBZGRSZXN1bHQKICAgICB7CiAgICAg
ICAgIGNoZWNrS2V5PEhhc2hUcmFuc2xhdG9yPihrZXkpOwogCkBAIC0xMDUyLDggKzEwNTcsOCBA
QCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwogICAg
ICAgICByZXR1cm4gQWRkUmVzdWx0KG1ha2VLbm93bkdvb2RJdGVyYXRvcihlbnRyeSksIHRydWUp
OwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5
cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRz
LCB0eXBlbmFtZSBLZXlUcmFpdHM+Ci0gICAgaW5saW5lIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFs
dWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OjpyZWluc2Vy
dChWYWx1ZVR5cGUmJiBlbnRyeSkgLT4gVmFsdWVUeXBlKgorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1
bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHMsIGJvb2wgQXNzZXJ0
Tm90RnVsbD4KKyAgICBpbmxpbmUgYXV0byBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9y
LCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD46OnJlaW5z
ZXJ0KFZhbHVlVHlwZSYmIGVudHJ5KSAtPiBWYWx1ZVR5cGUqCiAgICAgewogICAgICAgICBBU1NF
UlQobV90YWJsZSk7CiAgICAgICAgIEFTU0VSVCghbG9va3VwRm9yV3JpdGluZyhFeHRyYWN0b3I6
OmV4dHJhY3QoZW50cnkpKS5zZWNvbmQpOwpAQCAtMTA3Miw5ICsxMDc3LDkgQEAgREVDTEFSRV9B
TExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRhYmxlKTsKICAgICAgICAgcmV0dXJu
IG5ld0VudHJ5OwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUg
VmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5h
bWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5
LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rp
b25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RG
dWxsPgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVD4g
Ci0gICAgYXV0byBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25z
LCBUcmFpdHMsIEtleVRyYWl0cz46OmZpbmQoY29uc3QgVCYga2V5KSAtPiBpdGVyYXRvcgorICAg
IGF1dG8gSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJh
aXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OjpmaW5kKGNvbnN0IFQmIGtleSkgLT4gaXRl
cmF0b3IKICAgICB7CiAgICAgICAgIGlmICghbV90YWJsZSkKICAgICAgICAgICAgIHJldHVybiBl
bmQoKTsKQEAgLTEwODYsOSArMTA5MSw5IEBAIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9J
REVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAgIHJldHVybiBtYWtlS25vd25Hb29kSXRlcmF0
b3IoZW50cnkpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUg
VmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5h
bWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5
LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rp
b25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RG
dWxsPgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVD4g
Ci0gICAgYXV0byBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25z
LCBUcmFpdHMsIEtleVRyYWl0cz46OmZpbmQoY29uc3QgVCYga2V5KSBjb25zdCAtPiBjb25zdF9p
dGVyYXRvcgorICAgIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1
bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OjpmaW5kKGNvbnN0IFQm
IGtleSkgY29uc3QgLT4gY29uc3RfaXRlcmF0b3IKICAgICB7CiAgICAgICAgIGlmICghbV90YWJs
ZSkKICAgICAgICAgICAgIHJldHVybiBlbmQoKTsKQEAgLTExMDAsOSArMTEwNSw5IEBAIERFQ0xB
UkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAgIHJl
dHVybiBtYWtlS25vd25Hb29kQ29uc3RJdGVyYXRvcihlbnRyeSk7CiAgICAgfQogCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0
eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0
cz4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBF
eHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5h
bWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPiAKLSAgICBib29sIEhhc2hUYWJsZTxLZXksIFZh
bHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPjo6Y29udGFp
bnMoY29uc3QgVCYga2V5KSBjb25zdAorICAgIGJvb2wgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4
dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+
Ojpjb250YWlucyhjb25zdCBUJiBrZXkpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoIW1fdGFi
bGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTEwLDIzICsxMTE1LDIzIEBAIERF
Q0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAg
IHJldHVybiBjb25zdF9jYXN0PEhhc2hUYWJsZSo+KHRoaXMpLT5sb29rdXA8SGFzaFRyYW5zbGF0
b3I+KGtleSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBW
YWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFt
ZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KLSAgICB2b2lkIEhhc2hUYWJsZTxLZXksIFZh
bHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPjo6cmVtb3Zl
QW5kSW52YWxpZGF0ZVdpdGhvdXRFbnRyeUNvbnNpc3RlbmN5Q2hlY2soVmFsdWVUeXBlKiBwb3Mp
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0
cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1l
IEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxsPgorICAgIHZvaWQgSGFzaFRhYmxlPEtleSwg
VmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2Vy
dE5vdEZ1bGw+OjpyZW1vdmVBbmRJbnZhbGlkYXRlV2l0aG91dEVudHJ5Q29uc2lzdGVuY3lDaGVj
ayhWYWx1ZVR5cGUqIHBvcykKICAgICB7CiAgICAgICAgIGludmFsaWRhdGVJdGVyYXRvcnMoKTsK
ICAgICAgICAgcmVtb3ZlKHBvcyk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5
LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rp
b25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KLSAgICB2b2lkIEhhc2hU
YWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJh
aXRzPjo6cmVtb3ZlQW5kSW52YWxpZGF0ZShWYWx1ZVR5cGUqIHBvcykKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1l
IEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzLCBib29s
IEFzc2VydE5vdEZ1bGw+CisgICAgdm9pZCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9y
LCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD46OnJlbW92
ZUFuZEludmFsaWRhdGUoVmFsdWVUeXBlKiBwb3MpCiAgICAgewogICAgICAgICBpbnZhbGlkYXRl
SXRlcmF0b3JzKCk7CiAgICAgICAgIGludGVybmFsQ2hlY2tUYWJsZUNvbnNpc3RlbmN5KCk7CiAg
ICAgICAgIHJlbW92ZShwb3MpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwg
dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9u
cywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Ci0gICAgdm9pZCBIYXNoVGFi
bGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0
cz46OnJlbW92ZShWYWx1ZVR5cGUqIHBvcykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5
cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMs
IHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+
CisgICAgdm9pZCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25z
LCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD46OnJlbW92ZShWYWx1ZVR5cGUqIHBv
cykKICAgICB7CiAjaWYgRFVNUF9IQVNIVEFCTEVfU1RBVFMKICAgICAgICAgKytIYXNoVGFibGVT
dGF0czo6bnVtUmVtb3ZlczsKQEAgLTExNDUsOCArMTE1MCw4IEBAIERFQ0xBUkVfQUxMT0NBVE9S
X1dJVEhfSEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAgIGludGVybmFsQ2hlY2tU
YWJsZUNvbnNpc3RlbmN5KCk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0
eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25z
LCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KLSAgICBpbmxpbmUgdm9pZCBI
YXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtl
eVRyYWl0cz46OnJlbW92ZShpdGVyYXRvciBpdCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXks
IHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlv
bnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1
bGw+CisgICAgaW5saW5lIHZvaWQgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFz
aEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OjpyZW1vdmUoaXRl
cmF0b3IgaXQpCiAgICAgewogICAgICAgICBpZiAoaXQgPT0gZW5kKCkpCiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0xMTU0LDggKzExNTksOCBAQCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBf
SURFTlRJRklFUihIYXNoVGFibGUpOwogICAgICAgICByZW1vdmVBbmRJbnZhbGlkYXRlKGNvbnN0
X2Nhc3Q8VmFsdWVUeXBlKj4oaXQubV9pdGVyYXRvci5tX3Bvc2l0aW9uKSk7CiAgICAgfQogCi0g
ICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFj
dG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtl
eVRyYWl0cz4KLSAgICBpbmxpbmUgdm9pZCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9y
LCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46OnJlbW92ZVdpdGhvdXRFbnRyeUNv
bnNpc3RlbmN5Q2hlY2soaXRlcmF0b3IgaXQpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0
eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25z
LCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxs
PgorICAgIGlubGluZSB2b2lkIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hG
dW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6cmVtb3ZlV2l0aG91
dEVudHJ5Q29uc2lzdGVuY3lDaGVjayhpdGVyYXRvciBpdCkKICAgICB7CiAgICAgICAgIGlmIChp
dCA9PSBlbmQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExNjMsOCArMTE2OCw4IEBAIERF
Q0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAg
IHJlbW92ZUFuZEludmFsaWRhdGVXaXRob3V0RW50cnlDb25zaXN0ZW5jeUNoZWNrKGNvbnN0X2Nh
c3Q8VmFsdWVUeXBlKj4oaXQubV9pdGVyYXRvci5tX3Bvc2l0aW9uKSk7CiAgICAgfQogCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9y
LCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRy
YWl0cz4KLSAgICBpbmxpbmUgdm9pZCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBI
YXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46OnJlbW92ZVdpdGhvdXRFbnRyeUNvbnNp
c3RlbmN5Q2hlY2soY29uc3RfaXRlcmF0b3IgaXQpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5
LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rp
b25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RG
dWxsPgorICAgIGlubGluZSB2b2lkIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhh
c2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6cmVtb3ZlV2l0
aG91dEVudHJ5Q29uc2lzdGVuY3lDaGVjayhjb25zdF9pdGVyYXRvciBpdCkKICAgICB7CiAgICAg
ICAgIGlmIChpdCA9PSBlbmQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExNzIsMTUgKzEx
NzcsMTUgQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRhYmxl
KTsKICAgICAgICAgcmVtb3ZlQW5kSW52YWxpZGF0ZVdpdGhvdXRFbnRyeUNvbnNpc3RlbmN5Q2hl
Y2soY29uc3RfY2FzdDxWYWx1ZVR5cGUqPihpdC5tX3Bvc2l0aW9uKSk7CiAgICAgfQogCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9y
LCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRy
YWl0cz4KLSAgICBpbmxpbmUgdm9pZCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBI
YXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46OnJlbW92ZShjb25zdCBLZXlUeXBlJiBr
ZXkpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUg
RXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVu
YW1lIEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxsPgorICAgIGlubGluZSB2b2lkIEhhc2hU
YWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJh
aXRzLCBBc3NlcnROb3RGdWxsPjo6cmVtb3ZlKGNvbnN0IEtleVR5cGUmIGtleSkKICAgICB7CiAg
ICAgICAgIHJlbW92ZShmaW5kKGtleSkpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1
bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBl
bmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywg
Ym9vbCBBc3NlcnROb3RGdWxsPgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAg
aW5saW5lIGJvb2wgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9u
cywgVHJhaXRzLCBLZXlUcmFpdHM+OjpyZW1vdmVJZihjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQor
ICAgIGlubGluZSBib29sIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5j
dGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6cmVtb3ZlSWYoY29uc3Qg
RnVuY3RvciYgZnVuY3RvcikKICAgICB7CiAgICAgICAgIC8vIFdlIG11c3QgdXNlIGxvY2FsIGNv
cGllcyBpbiBjYXNlICJmdW5jdG9yIiBvciAiZGVsZXRlQnVja2V0IgogICAgICAgICAvLyBtYWtl
IGEgZnVuY3Rpb24gY2FsbCwgd2hpY2ggcHJldmVudHMgdGhlIGNvbXBpbGVyIGZyb20ga2VlcGlu
ZwpAQCAtMTIxMSw4ICsxMjE2LDggQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5U
SUZJRVIoSGFzaFRhYmxlKTsKICAgICAgICAgcmV0dXJuIHJlbW92ZWRCdWNrZXRDb3VudDsKICAg
ICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFt
ZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlw
ZW5hbWUgS2V5VHJhaXRzPgotICAgIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3Rv
ciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OjphbGxvY2F0ZVRhYmxlKHVuc2ln
bmVkIHNpemUpIC0+IFZhbHVlVHlwZSoKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVu
YW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5
cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+Cisg
ICAgYXV0byBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBU
cmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD46OmFsbG9jYXRlVGFibGUodW5zaWduZWQg
c2l6ZSkgLT4gVmFsdWVUeXBlKgogICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydCghKG1ldGFk
YXRhU2l6ZSAlIGFsaWdub2YoVmFsdWVUeXBlKSkpOwogCkBAIC0xMjI3LDggKzEyMzIsOCBAQCBE
RUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlw
ZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywg
dHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Ci0gICAgdm9pZCBIYXNoVGFibGU8
S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46
OmRlYWxsb2NhdGVUYWJsZShWYWx1ZVR5cGUqIHRhYmxlKQorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1
bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHMsIGJvb2wgQXNzZXJ0
Tm90RnVsbD4KKyAgICB2b2lkIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hG
dW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6ZGVhbGxvY2F0ZVRh
YmxlKFZhbHVlVHlwZSogdGFibGUpCiAgICAgewogICAgICAgICB1bnNpZ25lZCBzaXplID0gcmVp
bnRlcnByZXRfY2FzdF9wdHI8dW5zaWduZWQqPih0YWJsZSlbdGFibGVTaXplT2Zmc2V0XTsKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewpAQCAtMTIzOCw4ICsx
MjQzLDggQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRhYmxl
KTsKICAgICAgICAgSGFzaFRhYmxlTWFsbG9jOjpmcmVlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KHRhYmxlKSAtIG1ldGFkYXRhU2l6ZSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
S2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVu
Y3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KLSAgICBhdXRvIEhh
c2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5
VHJhaXRzPjo6ZXhwYW5kKFZhbHVlVHlwZSogZW50cnkpIC0+IFZhbHVlVHlwZSoKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5
cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRz
LCBib29sIEFzc2VydE5vdEZ1bGw+CisgICAgYXV0byBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0
cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD46
OmV4cGFuZChWYWx1ZVR5cGUqIGVudHJ5KSAtPiBWYWx1ZVR5cGUqCiAgICAgewogICAgICAgICBp
ZiAoS2V5VHJhaXRzOjpoYXNJc1JlbGVhc2VkV2Vha1ZhbHVlRnVuY3Rpb24pCiAgICAgICAgICAg
ICBkZWxldGVSZWxlYXNlZFdlYWtCdWNrZXRzKCk7CkBAIC0xMjU2LDggKzEyNjEsOCBAQCBERUNM
QVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwogICAgICAgICBy
ZXR1cm4gcmVoYXNoKG5ld1NpemUsIGVudHJ5KTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhh
c2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzPgotICAgIGNv
bnN0ZXhwciB1bnNpZ25lZCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVu
Y3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46OmNvbXB1dGVCZXN0VGFibGVTaXplKHVuc2lnbmVk
IGtleUNvdW50KQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5
cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRz
LCB0eXBlbmFtZSBLZXlUcmFpdHMsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KKyAgICBjb25zdGV4cHIg
dW5zaWduZWQgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywg
VHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+Ojpjb21wdXRlQmVzdFRhYmxlU2l6ZSh1
bnNpZ25lZCBrZXlDb3VudCkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGJlc3RUYWJsZVNpemUg
PSBXVEY6OnJvdW5kVXBUb1Bvd2VyT2ZUd28oa2V5Q291bnQpOwogCkBAIC0xMjkxLDE1ICsxMjk2
LDE1IEBAIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7
CiAgICAgICAgIHJldHVybiBzdGQ6Om1heChiZXN0VGFibGVTaXplLCBtaW5pbXVtVGFibGVTaXpl
KTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0
eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0
cywgdHlwZW5hbWUgS2V5VHJhaXRzPgotICAgIHZvaWQgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4
dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OjpzaHJpbmtUb0Jlc3RT
aXplKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFt
ZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlw
ZW5hbWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+CisgICAgdm9pZCBIYXNoVGFibGU8
S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cywg
QXNzZXJ0Tm90RnVsbD46OnNocmlua1RvQmVzdFNpemUoKQogICAgIHsKICAgICAgICAgdW5zaWdu
ZWQgbWluaW11bVRhYmxlU2l6ZSA9IEtleVRyYWl0czo6bWluaW11bVRhYmxlU2l6ZTsKICAgICAg
ICAgcmVoYXNoKHN0ZDo6bWF4KG1pbmltdW1UYWJsZVNpemUsIGNvbXB1dGVCZXN0VGFibGVTaXpl
KGtleUNvdW50KCkpKSwgbnVsbHB0cik7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
S2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVu
Y3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KLSAgICB2b2lkIEhh
c2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5
VHJhaXRzPjo6ZGVsZXRlUmVsZWFzZWRXZWFrQnVja2V0cygpCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNo
RnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywgYm9vbCBBc3Nl
cnROb3RGdWxsPgorICAgIHZvaWQgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFz
aEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OjpkZWxldGVSZWxl
YXNlZFdlYWtCdWNrZXRzKCkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIHRhYmxlU2l6ZSA9IHRo
aXMtPnRhYmxlU2l6ZSgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGFibGVT
aXplOyArK2kpIHsKQEAgLTEzMTIsOCArMTMxNyw4IEBAIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhf
SEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5
cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRz
PgotICAgIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9u
cywgVHJhaXRzLCBLZXlUcmFpdHM+OjpyZWhhc2godW5zaWduZWQgbmV3VGFibGVTaXplLCBWYWx1
ZVR5cGUqIGVudHJ5KSAtPiBWYWx1ZVR5cGUqCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0
eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25z
LCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxs
PgorICAgIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9u
cywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OjpyZWhhc2godW5zaWduZWQgbmV3
VGFibGVTaXplLCBWYWx1ZVR5cGUqIGVudHJ5KSAtPiBWYWx1ZVR5cGUqCiAgICAgewogICAgICAg
ICBpbnRlcm5hbENoZWNrVGFibGVDb25zaXN0ZW5jeUV4Y2VwdFNpemUoKTsKIApAQCAtMTM3Myw4
ICsxMzc4LDggQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRh
YmxlKTsKICAgICAgICAgcmV0dXJuIG5ld0VudHJ5OwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUg
SGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Ci0gICAg
dm9pZCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFp
dHMsIEtleVRyYWl0cz46OmNsZWFyKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVu
YW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5
cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+Cisg
ICAgdm9pZCBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBU
cmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD46OmNsZWFyKCkKICAgICB7CiAgICAgICAg
IGludmFsaWRhdGVJdGVyYXRvcnMoKTsKICAgICAgICAgaWYgKCFtX3RhYmxlKQpAQCAtMTM4Myw4
ICsxMzg4LDggQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRh
YmxlKTsKICAgICAgICAgZGVhbGxvY2F0ZVRhYmxlKHN0ZDo6ZXhjaGFuZ2UobV90YWJsZSwgbnVs
bHB0cikpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFs
dWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUg
VHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Ci0gICAgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4
dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OjpIYXNoVGFibGUoY29u
c3QgSGFzaFRhYmxlJiBvdGhlcikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1l
IFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVu
YW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJhaXRzLCBib29sIEFzc2VydE5vdEZ1bGw+CisgICAg
SGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBL
ZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OjpIYXNoVGFibGUoY29uc3QgSGFzaFRhYmxlJiBvdGhl
cikKICAgICAgICAgOiBtX3RhYmxlKG51bGxwdHIpCiAjaWYgQ0hFQ0tfSEFTSFRBQkxFX0lURVJB
VE9SUwogICAgICAgICAsIG1faXRlcmF0b3JzKG51bGxwdHIpCkBAIC0xNDA5LDggKzE0MTQsOCBA
QCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwogICAg
ICAgICAgICAgYWRkVW5pcXVlRm9ySW5pdGlhbGl6YXRpb248SWRlbnRpdHlUcmFuc2xhdG9yVHlw
ZT4oRXh0cmFjdG9yOjpleHRyYWN0KG90aGVyVmFsdWUpLCBvdGhlclZhbHVlKTsKICAgICB9CiAK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRy
YWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUg
S2V5VHJhaXRzPgotICAgIHZvaWQgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFz
aEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+Ojpzd2FwKEhhc2hUYWJsZSYgb3RoZXIpCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFj
dG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtl
eVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxsPgorICAgIHZvaWQgSGFzaFRhYmxlPEtleSwgVmFs
dWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5v
dEZ1bGw+Ojpzd2FwKEhhc2hUYWJsZSYgb3RoZXIpCiAgICAgewogICAgICAgICBpbnZhbGlkYXRl
SXRlcmF0b3JzKCk7CiAgICAgICAgIG90aGVyLmludmFsaWRhdGVJdGVyYXRvcnMoKTsKQEAgLTE0
MjIsMTYgKzE0MjcsMTYgQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIo
SGFzaFRhYmxlKTsKICNlbmRpZgogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwg
dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9u
cywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Ci0gICAgYXV0byBIYXNoVGFi
bGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0
cz46Om9wZXJhdG9yPShjb25zdCBIYXNoVGFibGUmIG90aGVyKSAtPiBIYXNoVGFibGUmCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9y
LCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRy
YWl0cywgYm9vbCBBc3NlcnROb3RGdWxsPgorICAgIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFsdWUs
IEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1
bGw+OjpvcGVyYXRvcj0oY29uc3QgSGFzaFRhYmxlJiBvdGhlcikgLT4gSGFzaFRhYmxlJgogICAg
IHsKICAgICAgICAgSGFzaFRhYmxlIHRtcChvdGhlcik7CiAgICAgICAgIHN3YXAodG1wKTsKICAg
ICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwg
dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9u
cywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Ci0gICAgaW5saW5lIEhhc2hU
YWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJh
aXRzPjo6SGFzaFRhYmxlKEhhc2hUYWJsZSYmIG90aGVyKQorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1
bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHMsIGJvb2wgQXNzZXJ0
Tm90RnVsbD4KKyAgICBpbmxpbmUgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFz
aEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OjpIYXNoVGFibGUo
SGFzaFRhYmxlJiYgb3RoZXIpCiAjaWYgQ0hFQ0tfSEFTSFRBQkxFX0lURVJBVE9SUwogICAgICAg
ICA6IG1faXRlcmF0b3JzKG51bGxwdHIpCiAgICAgICAgICwgbV9tdXRleChtYWtlVW5pcXVlPExv
Y2s+KCkpCkBAIC0xNDQ3LDggKzE0NTIsOCBAQCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBf
SURFTlRJRklFUihIYXNoVGFibGUpOwogI2VuZGlmCiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBI
YXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KLSAgICBp
bmxpbmUgYXV0byBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25z
LCBUcmFpdHMsIEtleVRyYWl0cz46Om9wZXJhdG9yPShIYXNoVGFibGUmJiBvdGhlcikgLT4gSGFz
aFRhYmxlJgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVu
YW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0
eXBlbmFtZSBLZXlUcmFpdHMsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KKyAgICBpbmxpbmUgYXV0byBI
YXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtl
eVRyYWl0cywgQXNzZXJ0Tm90RnVsbD46Om9wZXJhdG9yPShIYXNoVGFibGUmJiBvdGhlcikgLT4g
SGFzaFRhYmxlJgogICAgIHsKICAgICAgICAgSGFzaFRhYmxlIHRlbXAgPSBXVEZNb3ZlKG90aGVy
KTsKICAgICAgICAgc3dhcCh0ZW1wKTsKQEAgLTE0NTcsMTYgKzE0NjIsMTYgQEAgREVDTEFSRV9B
TExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRhYmxlKTsKIAogI2lmIEFTU0VSVF9F
TkFCTEVECiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBl
bmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywg
dHlwZW5hbWUgS2V5VHJhaXRzPgotICAgIHZvaWQgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJh
Y3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OjpjaGVja1RhYmxlQ29uc2lz
dGVuY3koKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUs
IHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJh
aXRzLCB0eXBlbmFtZSBLZXlUcmFpdHMsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KKyAgICB2b2lkIEhh
c2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5
VHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6Y2hlY2tUYWJsZUNvbnNpc3RlbmN5KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIGNoZWNrVGFibGVDb25zaXN0ZW5jeUV4Y2VwdFNpemUoKTsKICAgICAgICAg
QVNTRVJUKCFtX3RhYmxlIHx8ICFzaG91bGRFeHBhbmQoKSk7CiAgICAgICAgIEFTU0VSVCghc2hv
dWxkU2hyaW5rKCkpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5h
bWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlw
ZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Ci0gICAgdm9pZCBIYXNoVGFibGU8S2V5
LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46OmNo
ZWNrVGFibGVDb25zaXN0ZW5jeUV4Y2VwdFNpemUoKSBjb25zdAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEtleSwgdHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFz
aEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHMsIGJvb2wgQXNz
ZXJ0Tm90RnVsbD4KKyAgICB2b2lkIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhh
c2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBBc3NlcnROb3RGdWxsPjo6Y2hlY2tUYWJs
ZUNvbnNpc3RlbmN5RXhjZXB0U2l6ZSgpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoIW1fdGFi
bGUpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNTAzLDggKzE1MDgsOCBAQCBERUNMQVJFX0FM
TE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwogCiAjaWYgQ0hFQ0tfSEFT
SFRBQkxFX0lURVJBVE9SUwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBW
YWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFt
ZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KLSAgICB2b2lkIEhhc2hUYWJsZTxLZXksIFZh
bHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPjo6aW52YWxp
ZGF0ZUl0ZXJhdG9ycygpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1
ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBU
cmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywgYm9vbCBBc3NlcnROb3RGdWxsPgorICAgIHZvaWQg
SGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBL
ZXlUcmFpdHMsIEFzc2VydE5vdEZ1bGw+OjppbnZhbGlkYXRlSXRlcmF0b3JzKCkKICAgICB7CiAg
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKm1fbXV0ZXgpOwogICAgICAgICBjb25zdF9p
dGVyYXRvciogbmV4dDsKQEAgLTE1MTcsOSArMTUyMiw5IEBAIERFQ0xBUkVfQUxMT0NBVE9SX1dJ
VEhfSEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAgIG1faXRlcmF0b3JzID0gMDsK
ICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBl
bmFtZSBFeHRyYWN0b3IsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywg
dHlwZW5hbWUgS2V5VHJhaXRzPgotICAgIHZvaWQgYWRkSXRlcmF0b3IoY29uc3QgSGFzaFRhYmxl
PEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+
KiB0YWJsZSwKLSAgICAgICAgSGFzaFRhYmxlQ29uc3RJdGVyYXRvcjxLZXksIFZhbHVlLCBFeHRy
YWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPiogaXQpCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBl
bmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cywg
Ym9vbCBBc3NlcnROb3RGdWxsPgorICAgIHZvaWQgYWRkSXRlcmF0b3IoY29uc3QgSGFzaFRhYmxl
PEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHMs
IEFzc2VydE5vdEZ1bGw+KiB0YWJsZSwKKyAgICAgICAgSGFzaFRhYmxlQ29uc3RJdGVyYXRvcjxL
ZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzLCBB
c3NlcnROb3RGdWxsPiogaXQpCiAgICAgewogICAgICAgICBpdC0+bV90YWJsZSA9IHRhYmxlOwog
ICAgICAgICBpdC0+bV9wcmV2aW91cyA9IDA7CkBAIC0xNTM5LDggKzE1NDQsOCBAQCBERUNMQVJF
X0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5h
bWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5
cGVuYW1lIEtleVRyYWl0cz4KLSAgICB2b2lkIHJlbW92ZUl0ZXJhdG9yKEhhc2hUYWJsZUNvbnN0
SXRlcmF0b3I8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtl
eVRyYWl0cz4qIGl0KQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFsdWUs
IHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJh
aXRzLCB0eXBlbmFtZSBLZXlUcmFpdHMsIGJvb2wgQXNzZXJ0Tm90RnVsbD4KKyAgICB2b2lkIHJl
bW92ZUl0ZXJhdG9yKEhhc2hUYWJsZUNvbnN0SXRlcmF0b3I8S2V5LCBWYWx1ZSwgRXh0cmFjdG9y
LCBIYXNoRnVuY3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cywgQXNzZXJ0Tm90RnVsbD4qIGl0KQog
ICAgIHsKICAgICAgICAgLy8gRGVsZXRlIGl0ZXJhdG9yIGZyb20gZG91Ymx5LWxpbmtlZCBsaXN0
IG9mIGl0ZXJhdG9ycy4KICAgICAgICAgaWYgKCFpdC0+bV90YWJsZSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxs
b2NhdG9yLmNwcAppbmRleCBlMzdmOTI2Mzg5MTFlNWNmMTExOTRlNmEyYzRlYWUwNzkzOWE4Y2U1
Li40NzhiODg0ZGNhNzAxOWMxYTA4YjdjNTEwNTgwODk5ZDlkNDRjYjNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRh
QWxsb2NhdG9yLmNwcApAQCAtMzA3LDggKzMwNyw4IEBAIHZvaWQgTWV0YUFsbG9jYXRvcjo6YWRk
RnJlZVNwYWNlKEZyZWVTcGFjZVB0ciBzdGFydCwgc2l6ZV90IHNpemVJbkJ5dGVzKQogewogICAg
IEZyZWVTcGFjZVB0ciBlbmQgPSBzdGFydCArIHNpemVJbkJ5dGVzOwogCi0gICAgSGFzaE1hcDxG
cmVlU3BhY2VQdHIsIEZyZWVTcGFjZU5vZGUqPjo6aXRlcmF0b3IgbGVmdE5laWdoYm9yID0gbV9m
cmVlU3BhY2VFbmRBZGRyZXNzTWFwLmZpbmQoc3RhcnQpOwotICAgIEhhc2hNYXA8RnJlZVNwYWNl
UHRyLCBGcmVlU3BhY2VOb2RlKj46Oml0ZXJhdG9yIHJpZ2h0TmVpZ2hib3IgPSBtX2ZyZWVTcGFj
ZVN0YXJ0QWRkcmVzc01hcC5maW5kKGVuZCk7CisgICAgYXV0byBsZWZ0TmVpZ2hib3IgPSBtX2Zy
ZWVTcGFjZUVuZEFkZHJlc3NNYXAuZmluZChzdGFydCk7CisgICAgYXV0byByaWdodE5laWdoYm9y
ID0gbV9mcmVlU3BhY2VTdGFydEFkZHJlc3NNYXAuZmluZChlbmQpOwogCiAgICAgaWYgKGxlZnRO
ZWlnaGJvciAhPSBtX2ZyZWVTcGFjZUVuZEFkZHJlc3NNYXAuZW5kKCkpIHsKICAgICAgICAgLy8g
V2UgaGF2ZSBzb21ldGhpbmcgd2UgY2FuIGNvYWxlc2NlIHdpdGggb24gdGhlIGxlZnQuIFJlbW92
ZSBpdCBmcm9tIHRoZSB0cmVlLCBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01ldGFB
bGxvY2F0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAppbmRleCBmMzlhYTE0
YjVjM2VmYjM5MDJiM2JiYzAxNGJjNjZmYTYwYTNhYTBhLi4yZjYzMWRiNWRlOWJmMWJlN2E0MjVl
ZjIwYWZlMDNjYjRjYTcwNjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2Nh
dG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCkBAIC0xOTMsOCArMTkz
LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2xvZ1BhZ2VTaXplOwogICAgIAogICAgIFRy
ZWUgbV9mcmVlU3BhY2VTaXplTWFwOwotICAgIEhhc2hNYXA8RnJlZVNwYWNlUHRyLCBGcmVlU3Bh
Y2VOb2RlKj4gbV9mcmVlU3BhY2VTdGFydEFkZHJlc3NNYXA7Ci0gICAgSGFzaE1hcDxGcmVlU3Bh
Y2VQdHIsIEZyZWVTcGFjZU5vZGUqPiBtX2ZyZWVTcGFjZUVuZEFkZHJlc3NNYXA7CisgICAgSGFz
aE1hcDxGcmVlU3BhY2VQdHIsIEZyZWVTcGFjZU5vZGUqLCBEZWZhdWx0SGFzaDxGcmVlU3BhY2VQ
dHI+LCBIYXNoVHJhaXRzPEZyZWVTcGFjZVB0cj4sIEhhc2hUcmFpdHM8RnJlZVNwYWNlTm9kZSo+
LCB0cnVlPiBtX2ZyZWVTcGFjZVN0YXJ0QWRkcmVzc01hcDsKKyAgICBIYXNoTWFwPEZyZWVTcGFj
ZVB0ciwgRnJlZVNwYWNlTm9kZSosIERlZmF1bHRIYXNoPEZyZWVTcGFjZVB0cj4sIEhhc2hUcmFp
dHM8RnJlZVNwYWNlUHRyPiwgSGFzaFRyYWl0czxGcmVlU3BhY2VOb2RlKj4sIHRydWU+IG1fZnJl
ZVNwYWNlRW5kQWRkcmVzc01hcDsKICAgICBIYXNoTWFwPHVpbnRwdHJfdCwgc2l6ZV90PiBtX3Bh
Z2VPY2N1cGFuY3lNYXA7CiAgICAgCiAgICAgc2l6ZV90IG1fYnl0ZXNBbGxvY2F0ZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418793</attachid>
            <date>2021-01-29 17:25:34 -0800</date>
            <delta_ts>2021-01-29 18:17:04 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-221166-20210129172533.patch</filename>
            <type>text/plain</type>
            <size>6287</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQyNzFlMGJjMmZmMWU4NTIxOTY0M2Ni
OGY4NzU0OWZlY2FhYThmYTIuLmNjMzY4ZThkZDRiYzZiNDhlNGJhYWVlNTNjODk3ZjE4OGE3OTI2
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDEtMjkgIFRhZGV1IFphZ2FsbG8gIDx0emFn
YWxsb0BhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBjaGVjayBmb3IgZnVsbCBIYXNoVGFibGVz
IG9wdC1pbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIxMTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDkwMjQ1OD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBTYWFtIEJhcmF0aSBhbmQgWXVzdWtlIFN1enVraS4KKworICAgICAgICBIYXZpbmcg
dGhlIGNoZWNrIGFsd2F5cyBvbiB3YXMgYSByZWdyZXNzaW9uIG9uIFNwZWVkb21ldGVyMiwgc28g
d2Ugb25seSBrZWVwIGl0IGZvcgorICAgICAgICB0aGUgSGFzaE1hcHMgaW4gdGhlIE1ldGFBbGxv
Y2F0b3IuCisKKyAgICAgICAgKiB3dGYvSGFzaFRhYmxlLmg6CisgICAgICAgIChXVEY6OktleVRy
YWl0cz46OmlubGluZUxvb2t1cCk6CisgICAgICAgIChXVEY6OktleVRyYWl0cz46Omxvb2t1cEZv
cldyaXRpbmcpOgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+OjpmdWxsTG9va3VwRm9yV3JpdGlu
Zyk6CisgICAgICAgIChXVEY6OktleVRyYWl0cz46OmFkZFVuaXF1ZUZvckluaXRpYWxpemF0aW9u
KToKKyAgICAgICAgKFdURjo6S2V5VHJhaXRzPjo6YWRkKToKKyAgICAgICAgKiB3dGYvSGFzaFRy
YWl0cy5oOgorICAgICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6
TWV0YUFsbG9jYXRvcjo6YWRkRnJlZVNwYWNlKToKKyAgICAgICAgKiB3dGYvTWV0YUFsbG9jYXRv
ci5oOgorCiAyMDIxLTAxLTI5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViS2l0IGRvZXNuJ3QgYXV0b21hdGljYWxseSByaWdodC1hbGlnbiBB
ZGxhbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmggYi9Tb3VyY2UvV1RG
L3d0Zi9IYXNoVGFibGUuaAppbmRleCBiYTc0MGJkYzY5ZmMzMGI3N2MyNmNkMzBhNDkzNTMwOGU1
YjZjYmMxLi5lN2M4NDFmNGUwYjA5M2M4ZmFjODIwMDg4ZjIyNGY4NDk4YWU2OGIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9IYXNo
VGFibGUuaApAQCAtNzE3LDcgKzcxNyw4IEBAIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9J
REVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAgICAgICBpZiAoayA9PSAwKQogICAgICAgICAg
ICAgICAgIGsgPSAxIHwgZG91YmxlSGFzaChoKTsKICAgICAgICAgICAgIGkgPSAoaSArIGspICYg
c2l6ZU1hc2s7Ci0gICAgICAgICAgICBIQVNIX1RBQkxFX1JFTEVBU0VfQVNTRVJUKGkgIT0gaW5p
dGlhbEluZGV4KTsKKyAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAoS2V5VHJhaXRzOjphc3NlcnRO
b3RGdWxsKQorICAgICAgICAgICAgICAgIEhBU0hfVEFCTEVfUkVMRUFTRV9BU1NFUlQoaSAhPSBp
bml0aWFsSW5kZXgpOwogICAgICAgICB9CiAgICAgfQogCkBAIC03ODAsNyArNzgxLDggQEAgREVD
TEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRhYmxlKTsKICAgICAgICAg
ICAgIGlmIChrID09IDApCiAgICAgICAgICAgICAgICAgayA9IDEgfCBkb3VibGVIYXNoKGgpOwog
ICAgICAgICAgICAgaSA9IChpICsgaykgJiBzaXplTWFzazsKLSAgICAgICAgICAgIEhBU0hfVEFC
TEVfUkVMRUFTRV9BU1NFUlQoaSAhPSBpbml0aWFsSW5kZXgpOworICAgICAgICAgICAgaWYgY29u
c3RleHByIChLZXlUcmFpdHM6OmFzc2VydE5vdEZ1bGwpCisgICAgICAgICAgICAgICAgSEFTSF9U
QUJMRV9SRUxFQVNFX0FTU0VSVChpICE9IGluaXRpYWxJbmRleCk7CiAgICAgICAgIH0KICAgICB9
CiAKQEAgLTg0Myw3ICs4NDUsOCBAQCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJ
RklFUihIYXNoVGFibGUpOwogICAgICAgICAgICAgaWYgKGsgPT0gMCkKICAgICAgICAgICAgICAg
ICBrID0gMSB8IGRvdWJsZUhhc2goaCk7CiAgICAgICAgICAgICBpID0gKGkgKyBrKSAmIHNpemVN
YXNrOwotICAgICAgICAgICAgSEFTSF9UQUJMRV9SRUxFQVNFX0FTU0VSVChpICE9IGluaXRpYWxJ
bmRleCk7CisgICAgICAgICAgICBpZiBjb25zdGV4cHIgKEtleVRyYWl0czo6YXNzZXJ0Tm90RnVs
bCkKKyAgICAgICAgICAgICAgICBIQVNIX1RBQkxFX1JFTEVBU0VfQVNTRVJUKGkgIT0gaW5pdGlh
bEluZGV4KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtODk0LDcgKzg5Nyw4IEBAIERFQ0xBUkVf
QUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEhhc2hUYWJsZSk7CiAgICAgICAgICAgICBp
ZiAoayA9PSAwKQogICAgICAgICAgICAgICAgIGsgPSAxIHwgZG91YmxlSGFzaChoKTsKICAgICAg
ICAgICAgIGkgPSAoaSArIGspICYgc2l6ZU1hc2s7Ci0gICAgICAgICAgICBIQVNIX1RBQkxFX1JF
TEVBU0VfQVNTRVJUKGkgIT0gaW5pdGlhbEluZGV4KTsKKyAgICAgICAgICAgIGlmIGNvbnN0ZXhw
ciAoS2V5VHJhaXRzOjphc3NlcnROb3RGdWxsKQorICAgICAgICAgICAgICAgIEhBU0hfVEFCTEVf
UkVMRUFTRV9BU1NFUlQoaSAhPSBpbml0aWFsSW5kZXgpOwogICAgICAgICB9CiAKICAgICAgICAg
SGFzaFRyYW5zbGF0b3I6OnRyYW5zbGF0ZSgqZW50cnksIHN0ZDo6Zm9yd2FyZDxUPihrZXkpLCBz
dGQ6OmZvcndhcmQ8RXh0cmE+KGV4dHJhKSk7CkBAIC05OTQsNyArOTk4LDggQEAgREVDTEFSRV9B
TExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoSGFzaFRhYmxlKTsKICAgICAgICAgICAgIGlm
IChrID09IDApCiAgICAgICAgICAgICAgICAgayA9IDEgfCBkb3VibGVIYXNoKGgpOwogICAgICAg
ICAgICAgaSA9IChpICsgaykgJiBzaXplTWFzazsKLSAgICAgICAgICAgIEhBU0hfVEFCTEVfUkVM
RUFTRV9BU1NFUlQoaSAhPSBpbml0aWFsSW5kZXgpOworICAgICAgICAgICAgaWYgY29uc3RleHBy
IChLZXlUcmFpdHM6OmFzc2VydE5vdEZ1bGwpCisgICAgICAgICAgICAgICAgSEFTSF9UQUJMRV9S
RUxFQVNFX0FTU0VSVChpICE9IGluaXRpYWxJbmRleCk7CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAoZGVsZXRlZEVudHJ5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVHJhaXRz
LmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoVHJhaXRzLmgKaW5kZXggOTgzOWVmMmE0M2JjZDYzOGUy
YzExY2U2ZDM2OGM4ZWMzZDY3ZGZkYS4uYjI2NmQ0MzQ2YzE5ZGY5M2Y1ODFjZWNhMGI0NzdkZTQ1
ZjQ2NzVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRyYWl0cy5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0hhc2hUcmFpdHMuaApAQCAtNTEsNiArNTEsOSBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBzdHJ1Y3QgR2VuZXJpY0hhc2hUcmFpdHNCYXNlPGZhbHNlLCBUPiB7CiAgICAgLy8g
VGhlIHN0YXJ0aW5nIHRhYmxlIHNpemUuIENhbiBiZSBvdmVycmlkZGVuIHdoZW4gd2Uga25vdyBi
ZWZvcmVoYW5kIHRoYXQKICAgICAvLyBhIGhhc2ggdGFibGUgd2lsbCBoYXZlIGF0IGxlYXN0IE4g
ZW50cmllcy4KICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1UYWJsZVNpemUg
PSA4OworCisgICAgLy8gV2hlbmV2ZXIgdHJhdmVyc2luZyB0aGUgaGFzaCB0YWJsZSwgYXNzZXJ0
IGl0IGlzIG5vdCBmdWxsCisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGFzc2VydE5vdEZ1bGwg
PSBmYWxzZTsKIH07CiAKIC8vIERlZmF1bHQgaW50ZWdlciB0cmFpdHMgZGlzYWxsb3cgYm90aCAw
IGFuZCAtMSBhcyBrZXlzIChtYXggdmFsdWUgaW5zdGVhZCBvZiAtMSBmb3IgdW5zaWduZWQpLgpA
QCAtMzgwLDYgKzM4MywxMSBAQCBzdHJ1Y3QgSGFzaFRyYWl0czxWZWN0b3I8VCwgaW5saW5lQ2Fw
YWNpdHk+PiA6IEdlbmVyaWNIYXNoVHJhaXRzPFZlY3RvcjxULCBpbmxpbgogICAgIHN0YXRpYyBi
b29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4mIHZhbHVl
KSB7IHJldHVybiB2YWx1ZS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9CiB9OwogCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUcmFpdHM+CitzdHJ1Y3QgSGFyZGVuZWRIYXNoVHJhaXRzIDogcHVibGlj
IFRyYWl0cyB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGFzc2VydE5vdEZ1bGwgPSB0cnVl
OworfTsKKwogLy8gVXNlZnVsIGZvciBjbGFzc2VzIHRoYXQgd2FudCBjb21wbGV0ZSBjb250cm9s
IG92ZXIgd2hhdCBpcyBlbXB0eSBhbmQgd2hhdCBpcyBkZWxldGVkLAogLy8gYW5kIGhvdyB0byBj
b25zdHJ1Y3QgYm90aC4KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3Iu
Y3BwCmluZGV4IGUzN2Y5MjYzODkxMWU1Y2YxMTE5NGU2YTJjNGVhZTA3OTM5YThjZTUuLjQ3OGI4
ODRkY2E3MDE5YzFhMDhiN2M1MTA1ODA4OTlkOWQ0NGNiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0
b3IuY3BwCkBAIC0zMDcsOCArMzA3LDggQEAgdm9pZCBNZXRhQWxsb2NhdG9yOjphZGRGcmVlU3Bh
Y2UoRnJlZVNwYWNlUHRyIHN0YXJ0LCBzaXplX3Qgc2l6ZUluQnl0ZXMpCiB7CiAgICAgRnJlZVNw
YWNlUHRyIGVuZCA9IHN0YXJ0ICsgc2l6ZUluQnl0ZXM7CiAKLSAgICBIYXNoTWFwPEZyZWVTcGFj
ZVB0ciwgRnJlZVNwYWNlTm9kZSo+OjppdGVyYXRvciBsZWZ0TmVpZ2hib3IgPSBtX2ZyZWVTcGFj
ZUVuZEFkZHJlc3NNYXAuZmluZChzdGFydCk7Ci0gICAgSGFzaE1hcDxGcmVlU3BhY2VQdHIsIEZy
ZWVTcGFjZU5vZGUqPjo6aXRlcmF0b3IgcmlnaHROZWlnaGJvciA9IG1fZnJlZVNwYWNlU3RhcnRB
ZGRyZXNzTWFwLmZpbmQoZW5kKTsKKyAgICBhdXRvIGxlZnROZWlnaGJvciA9IG1fZnJlZVNwYWNl
RW5kQWRkcmVzc01hcC5maW5kKHN0YXJ0KTsKKyAgICBhdXRvIHJpZ2h0TmVpZ2hib3IgPSBtX2Zy
ZWVTcGFjZVN0YXJ0QWRkcmVzc01hcC5maW5kKGVuZCk7CiAKICAgICBpZiAobGVmdE5laWdoYm9y
ICE9IG1fZnJlZVNwYWNlRW5kQWRkcmVzc01hcC5lbmQoKSkgewogICAgICAgICAvLyBXZSBoYXZl
IHNvbWV0aGluZyB3ZSBjYW4gY29hbGVzY2Ugd2l0aCBvbiB0aGUgbGVmdC4gUmVtb3ZlIGl0IGZy
b20gdGhlIHRyZWUsIGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRv
ci5oIGIvU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oCmluZGV4IGYzOWFhMTRiNWMzZWZi
MzkwMmIzYmJjMDE0YmM2NmZhNjBhM2FhMGEuLjU3MDg0NjVkNmUyNWIwZDBjYTBmOTE0NmJkZjA3
NjNmNzkwMTFmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmgKQEAgLTE5Myw4ICsxOTMsOCBAQCBw
cml2YXRlOgogICAgIHVuc2lnbmVkIG1fbG9nUGFnZVNpemU7CiAgICAgCiAgICAgVHJlZSBtX2Zy
ZWVTcGFjZVNpemVNYXA7Ci0gICAgSGFzaE1hcDxGcmVlU3BhY2VQdHIsIEZyZWVTcGFjZU5vZGUq
PiBtX2ZyZWVTcGFjZVN0YXJ0QWRkcmVzc01hcDsKLSAgICBIYXNoTWFwPEZyZWVTcGFjZVB0ciwg
RnJlZVNwYWNlTm9kZSo+IG1fZnJlZVNwYWNlRW5kQWRkcmVzc01hcDsKKyAgICBIYXNoTWFwPEZy
ZWVTcGFjZVB0ciwgRnJlZVNwYWNlTm9kZSosIERlZmF1bHRIYXNoPEZyZWVTcGFjZVB0cj4sIEhh
cmRlbmVkSGFzaFRyYWl0czxIYXNoVHJhaXRzPEZyZWVTcGFjZVB0cj4+PiBtX2ZyZWVTcGFjZVN0
YXJ0QWRkcmVzc01hcDsKKyAgICBIYXNoTWFwPEZyZWVTcGFjZVB0ciwgRnJlZVNwYWNlTm9kZSos
IERlZmF1bHRIYXNoPEZyZWVTcGFjZVB0cj4sIEhhcmRlbmVkSGFzaFRyYWl0czxIYXNoVHJhaXRz
PEZyZWVTcGFjZVB0cj4+PiBtX2ZyZWVTcGFjZUVuZEFkZHJlc3NNYXA7CiAgICAgSGFzaE1hcDx1
aW50cHRyX3QsIHNpemVfdD4gbV9wYWdlT2NjdXBhbmN5TWFwOwogICAgIAogICAgIHNpemVfdCBt
X2J5dGVzQWxsb2NhdGVkOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>