<?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>212695</bug_id>
          
          <creation_ts>2020-06-03 07:46:19 -0700</creation_ts>
          <short_desc>[EME] Create CDMProxyFactory</short_desc>
          <delta_ts>2020-06-16 07:58:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>cturner</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1658690</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-03 07:46:19 -0700</bug_when>
    <thetext>[EME] Create CDMProxyFactory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658699</commentid>
    <comment_count>1</comment_count>
      <attachid>400920</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-03 08:22:02 -0700</bug_when>
    <thetext>Created attachment 400920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658726</commentid>
    <comment_count>2</comment_count>
      <attachid>400926</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-03 09:15:33 -0700</bug_when>
    <thetext>Created attachment 400926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659006</commentid>
    <comment_count>3</comment_count>
      <attachid>401004</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-04 00:04:11 -0700</bug_when>
    <thetext>Created attachment 401004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659007</commentid>
    <comment_count>4</comment_count>
      <attachid>401005</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-04 00:12:34 -0700</bug_when>
    <thetext>Created attachment 401005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659008</commentid>
    <comment_count>5</comment_count>
      <attachid>401006</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-04 00:44:21 -0700</bug_when>
    <thetext>Created attachment 401006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659011</commentid>
    <comment_count>6</comment_count>
      <attachid>401008</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-04 00:53:51 -0700</bug_when>
    <thetext>Created attachment 401008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659546</commentid>
    <comment_count>7</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-06-05 03:48:02 -0700</bug_when>
    <thetext>I see this (some of the crashes are racey after apply this). The setProxy call has important timing preconditions which the ctor does not meet.

Regressions: Unexpected crashes (5)
  imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html [ Crash ]
  imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html [ Crash ]
  imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html [ Crash ]
  imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html [ Crash ]
  media/encrypted-media/clearKey/clearKey-encrypted-cenc-event.html [ Crash ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661118</commentid>
    <comment_count>8</comment_count>
      <attachid>401527</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-10 02:43:03 -0700</bug_when>
    <thetext>Created attachment 401527
Patch

(In reply to Charlie Turner from comment #7)
&gt; I see this (some of the crashes are racey after apply this). The setProxy
&gt; call has important timing preconditions which the ctor does not meet.
&gt; 
&gt; Regressions: Unexpected crashes (5)
&gt;  
&gt; imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-
&gt; temporary-waitingforkey.https.html [ Crash ]
&gt;  
&gt; imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-
&gt; again-after-resetting-src.https.html [ Crash ]
&gt;  
&gt; imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-
&gt; mediakeys.https.html [ Crash ]
&gt;  
&gt; imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-
&gt; mediakeysession.https.html [ Crash ]
&gt;   media/encrypted-media/clearKey/clearKey-encrypted-cenc-event.html [ Crash ]

With the obsoleted patch these tests are flaky but not because of the key stuff, only because we initialize GCrypt too soon. For that I created LazilyInitialized and get that initialize when needed (I had the manual lazy initalization version but writing a class for this seems possibly useful for more people). I&apos;m writing tests for it but I wanted to post it here to get earlier reviews about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661123</commentid>
    <comment_count>9</comment_count>
      <attachid>401530</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-10 03:52:29 -0700</bug_when>
    <thetext>Created attachment 401530
Patch

Added a test for the LazilyInitialized class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661132</commentid>
    <comment_count>10</comment_count>
      <attachid>401532</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-10 04:25:21 -0700</bug_when>
    <thetext>Created attachment 401532
Patch

This the style issues. The remaining one is a false positive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661143</commentid>
    <comment_count>11</comment_count>
      <attachid>401532</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-10 06:25:43 -0700</bug_when>
    <thetext>Comment on attachment 401532
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:91
&gt; +        gcry_cipher_close(*m_gCryptHandle);

How about having a unique_ptr or an Optional of a class which would wrap a gcry_cipher_hd_t. Class constructor would call gcry_cipher_open and destructor would call gcry_cipher_close.
You could lazily initialise it in the gCryptHandle() getter that you would use everywhere instead of m_gCryptHandle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661154</commentid>
    <comment_count>12</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-10 07:32:24 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #11)
&gt; Comment on attachment 401532 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401532&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:91
&gt; &gt; +        gcry_cipher_close(*m_gCryptHandle);
&gt; 
&gt; How about having a unique_ptr or an Optional of a class which would wrap a
&gt; gcry_cipher_hd_t. Class constructor would call gcry_cipher_open and
&gt; destructor would call gcry_cipher_close.
&gt; You could lazily initialise it in the gCryptHandle() getter that you would
&gt; use everywhere instead of m_gCryptHandle.

Class constructor can&apos;t call gcry_cipher_open because that creates test flakiness (getting too much unnecessary secure memory) and that&apos;s why we have to initialize it lazily. Of course I can initialize it manually with an Optional or std::unique_ptr but I thought that creating a class at WTF for that could be useful for more developers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661155</commentid>
    <comment_count>13</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-10 07:35:50 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #12)
&gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:91
&gt; &gt; &gt; +        gcry_cipher_close(*m_gCryptHandle);
&gt; &gt; 
&gt; &gt; How about having a unique_ptr or an Optional of a class which would wrap a
&gt; &gt; gcry_cipher_hd_t. Class constructor would call gcry_cipher_open and
&gt; &gt; destructor would call gcry_cipher_close.
&gt; &gt; You could lazily initialise it in the gCryptHandle() getter that you would
&gt; &gt; use everywhere instead of m_gCryptHandle.
&gt; 
&gt; Class constructor can&apos;t call gcry_cipher_open because that creates test
&gt; flakiness (getting too much unnecessary secure memory) and that&apos;s why we
&gt; have to initialize it lazily. Of course I can initialize it manually with an
&gt; Optional or std::unique_ptr but I thought that creating a class at WTF for
&gt; that could be useful for more developers.

About checking in the destructor for the handle to be initialized, it is because if is not initialized it does not make sense to close it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661166</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-10 08:19:52 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #12)
&gt; (In reply to youenn fablet from comment #11)
&gt; &gt; Comment on attachment 401532 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=401532&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:91
&gt; &gt; &gt; +        gcry_cipher_close(*m_gCryptHandle);
&gt; &gt; 
&gt; &gt; How about having a unique_ptr or an Optional of a class which would wrap a
&gt; &gt; gcry_cipher_hd_t. Class constructor would call gcry_cipher_open and
&gt; &gt; destructor would call gcry_cipher_close.
&gt; &gt; You could lazily initialise it in the gCryptHandle() getter that you would
&gt; &gt; use everywhere instead of m_gCryptHandle.
&gt; 
&gt; Class constructor can&apos;t call gcry_cipher_open because that creates test
&gt; flakiness (getting too much unnecessary secure memory) and that&apos;s why we
&gt; have to initialize it lazily. Of course I can initialize it manually with an
&gt; Optional or std::unique_ptr but I thought that creating a class at WTF for
&gt; that could be useful for more developers.

I was meaning something like:
class CDMProxyClearKey {
...
Optional&lt;GCryptHandle&gt; m_cipherHandle;
};

gcry_cipher_hd_t&amp; CDMProxyClearKey::cipherHandle()
{
    // Lazily created.
    if (! m_cipherHandle)
        m_handle = GCryptHandle();
    return m_cipherHandle-&gt;handle();
}

class GCryptHandle {
 GCryptHandle() // constructor will call gcry_cipher_open
 ~GCryptHandle() // destructor will call gcry_cipher_close
 ...
 gcry_cipher_hd_t m_handle;
};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661176</commentid>
    <comment_count>15</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-10 09:07:15 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #14)
&gt; (In reply to Xabier Rodríguez Calvar from comment #12)
&gt; &gt; (In reply to youenn fablet from comment #11)
&gt; &gt; &gt; Comment on attachment 401532 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=401532&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:91
&gt; &gt; &gt; &gt; +        gcry_cipher_close(*m_gCryptHandle);
&gt; &gt; &gt; 
&gt; &gt; &gt; How about having a unique_ptr or an Optional of a class which would wrap a
&gt; &gt; &gt; gcry_cipher_hd_t. Class constructor would call gcry_cipher_open and
&gt; &gt; &gt; destructor would call gcry_cipher_close.
&gt; &gt; &gt; You could lazily initialise it in the gCryptHandle() getter that you would
&gt; &gt; &gt; use everywhere instead of m_gCryptHandle.
&gt; &gt; 
&gt; &gt; Class constructor can&apos;t call gcry_cipher_open because that creates test
&gt; &gt; flakiness (getting too much unnecessary secure memory) and that&apos;s why we
&gt; &gt; have to initialize it lazily. Of course I can initialize it manually with an
&gt; &gt; Optional or std::unique_ptr but I thought that creating a class at WTF for
&gt; &gt; that could be useful for more developers.
&gt; 
&gt; I was meaning something like:
&gt; class CDMProxyClearKey {
&gt; ...
&gt; Optional&lt;GCryptHandle&gt; m_cipherHandle;
&gt; };
&gt; 
&gt; gcry_cipher_hd_t&amp; CDMProxyClearKey::cipherHandle()
&gt; {
&gt;     // Lazily created.
&gt;     if (! m_cipherHandle)
&gt;         m_handle = GCryptHandle();
&gt;     return m_cipherHandle-&gt;handle();
&gt; }
&gt; 
&gt; class GCryptHandle {
&gt;  GCryptHandle() // constructor will call gcry_cipher_open
&gt;  ~GCryptHandle() // destructor will call gcry_cipher_close
&gt;  ...
&gt;  gcry_cipher_hd_t m_handle;
&gt; };

To make this, I prefer a more general class that brings already the lazy implementation. Creating a class brings nothing if you just use an Optional or a unique_ptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661177</commentid>
    <comment_count>16</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-10 09:09:11 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #15)
&gt; (In reply to youenn fablet from comment #14)
&gt; &gt; (In reply to Xabier Rodríguez Calvar from comment #12)
&gt; &gt; &gt; (In reply to youenn fablet from comment #11)
&gt; &gt; &gt; &gt; Comment on attachment 401532 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=401532&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:91
&gt; &gt; &gt; &gt; &gt; +        gcry_cipher_close(*m_gCryptHandle);
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; How about having a unique_ptr or an Optional of a class which would wrap a
&gt; &gt; &gt; &gt; gcry_cipher_hd_t. Class constructor would call gcry_cipher_open and
&gt; &gt; &gt; &gt; destructor would call gcry_cipher_close.
&gt; &gt; &gt; &gt; You could lazily initialise it in the gCryptHandle() getter that you would
&gt; &gt; &gt; &gt; use everywhere instead of m_gCryptHandle.
&gt; &gt; &gt; 
&gt; &gt; &gt; Class constructor can&apos;t call gcry_cipher_open because that creates test
&gt; &gt; &gt; flakiness (getting too much unnecessary secure memory) and that&apos;s why we
&gt; &gt; &gt; have to initialize it lazily. Of course I can initialize it manually with an
&gt; &gt; &gt; Optional or std::unique_ptr but I thought that creating a class at WTF for
&gt; &gt; &gt; that could be useful for more developers.
&gt; &gt; 
&gt; &gt; I was meaning something like:
&gt; &gt; class CDMProxyClearKey {
&gt; &gt; ...
&gt; &gt; Optional&lt;GCryptHandle&gt; m_cipherHandle;
&gt; &gt; };
&gt; &gt; 
&gt; &gt; gcry_cipher_hd_t&amp; CDMProxyClearKey::cipherHandle()
&gt; &gt; {
&gt; &gt;     // Lazily created.
&gt; &gt;     if (! m_cipherHandle)
&gt; &gt;         m_handle = GCryptHandle();
&gt; &gt;     return m_cipherHandle-&gt;handle();
&gt; &gt; }
&gt; &gt; 
&gt; &gt; class GCryptHandle {
&gt; &gt;  GCryptHandle() // constructor will call gcry_cipher_open
&gt; &gt;  ~GCryptHandle() // destructor will call gcry_cipher_close
&gt; &gt;  ...
&gt; &gt;  gcry_cipher_hd_t m_handle;
&gt; &gt; };
&gt; 
&gt; To make this, I prefer a more general class that brings already the lazy
&gt; implementation. Creating a class brings nothing if you just use an Optional
&gt; or a unique_ptr.

Maybe a class that inherits from LazilyInitialized that forces you to have an virtual initialize = 0 method that is automatically called when you access the operator* or operator-&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661565</commentid>
    <comment_count>17</comment_count>
      <attachid>401637</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-11 06:29:54 -0700</bug_when>
    <thetext>Created attachment 401637
Patch

This is the solution I like most. Added an Optional parameter to the LazilyInitialized class to be able to provide a deinitializer. I think code looks nice and smooth now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661569</commentid>
    <comment_count>18</comment_count>
      <attachid>401639</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-11 07:04:44 -0700</bug_when>
    <thetext>Created attachment 401639
Patch

And now with the test for the deinitializer and Apple build fix (I hope).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661876</commentid>
    <comment_count>19</comment_count>
      <attachid>401713</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-12 01:19:40 -0700</bug_when>
    <thetext>Created attachment 401713
Patch

I think this is now ready for final review and landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661884</commentid>
    <comment_count>20</comment_count>
      <attachid>401713</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-12 01:49:37 -0700</bug_when>
    <thetext>Comment on attachment 401713
Patch

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

&gt; Source/WTF/wtf/LazilyInitialized.h:51
&gt; +        , m_deinitializer(WTFMove(deinitializer)) { }

I am not really convinced by LazilyInitialized.
I think it would be best to introduce it as a separate follow-up patch.
And keep in this patch the usual approach of a class wrapper or a CDMProxyClearKey getter like:
CDMProxyClearKey::cryptHandle()
{
    if (!m_handleInitialized) {
        m_handleInitialized = true;
        initializeGcrypt();
    }
    return m_gcryHandle;
}

&gt; Source/WTF/wtf/LazilyInitialized.h:75
&gt; +        if (!m_isInitialized.exchange(true))

This is probably not thread safe. If two threads call operator*() at the same time, there is a risk that m_value is used by one of the thread without being initialized.

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:43
&gt; +    static NeverDestroyed&lt;Vector&lt;CDMProxyFactory*&gt;&gt; factories;

Maybe this could be a WeakHashSet to prevent UAF.
If this is supposed to be keyed by keySystem, maybe it should be a HashMap?

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:52
&gt; +void CDMProxyFactory::registerFactory(CDMProxyFactory&amp; factory)

It seems these methods are not called in this patch.
It would be safer to register/unregister in CDMProxyFactory constructor/destructor if possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661909</commentid>
    <comment_count>21</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-12 05:53:58 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #20)
&gt; Comment on attachment 401713 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401713&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/LazilyInitialized.h:51
&gt; &gt; +        , m_deinitializer(WTFMove(deinitializer)) { }
&gt; 
&gt; I am not really convinced by LazilyInitialized.
&gt; I think it would be best to introduce it as a separate follow-up patch.
&gt; And keep in this patch the usual approach of a class wrapper or a
&gt; CDMProxyClearKey getter like:
&gt; CDMProxyClearKey::cryptHandle()
&gt; {
&gt;     if (!m_handleInitialized) {
&gt;         m_handleInitialized = true;
&gt;         initializeGcrypt();
&gt;     }
&gt;     return m_gcryHandle;
&gt; }

If you have a strong opinion I&apos;ll do it, but I don&apos;t agree. I think this is a good solution.

&gt; &gt; Source/WTF/wtf/LazilyInitialized.h:75
&gt; &gt; +        if (!m_isInitialized.exchange(true))
&gt; 
&gt; This is probably not thread safe. If two threads call operator*() at the
&gt; same time, there is a risk that m_value is used by one of the thread without
&gt; being initialized.

You&apos;re right. Maybe we can forget about thread safety and make it just a bool.

&gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:43
&gt; &gt; +    static NeverDestroyed&lt;Vector&lt;CDMProxyFactory*&gt;&gt; factories;
&gt; 
&gt; Maybe this could be a WeakHashSet to prevent UAF.
&gt; If this is supposed to be keyed by keySystem, maybe it should be a HashMap?

It could but I don&apos;t follow why it should be a WeahHashSet. Who would own the factories then?

&gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:52
&gt; &gt; +void CDMProxyFactory::registerFactory(CDMProxyFactory&amp; factory)
&gt; 
&gt; It seems these methods are not called in this patch.
&gt; It would be safer to register/unregister in CDMProxyFactory
&gt; constructor/destructor if possible.

They are called for GStreamer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662647</commentid>
    <comment_count>22</comment_count>
      <attachid>401897</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-15 08:07:58 -0700</bug_when>
    <thetext>Created attachment 401897
Patch

(In reply to Xabier Rodríguez Calvar from comment #21)
&gt; &gt; &gt; Source/WTF/wtf/LazilyInitialized.h:51
&gt; &gt; &gt; +        , m_deinitializer(WTFMove(deinitializer)) { }
&gt; &gt; 
&gt; &gt; I am not really convinced by LazilyInitialized.
&gt; &gt; I think it would be best to introduce it as a separate follow-up patch.
&gt; &gt; And keep in this patch the usual approach of a class wrapper or a
&gt; &gt; CDMProxyClearKey getter like:
&gt; &gt; CDMProxyClearKey::cryptHandle()
&gt; &gt; {
&gt; &gt;     if (!m_handleInitialized) {
&gt; &gt;         m_handleInitialized = true;
&gt; &gt;         initializeGcrypt();
&gt; &gt;     }
&gt; &gt;     return m_gcryHandle;
&gt; &gt; }
&gt; 
&gt; If you have a strong opinion I&apos;ll do it, but I don&apos;t agree. I think this is
&gt; a good solution.

When I think LazilyInitialized is a more elegant solution, I refactored as you wanted.
 
&gt; &gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:43
&gt; &gt; &gt; +    static NeverDestroyed&lt;Vector&lt;CDMProxyFactory*&gt;&gt; factories;
&gt; &gt; 
&gt; &gt; Maybe this could be a WeakHashSet to prevent UAF.
&gt; &gt; If this is supposed to be keyed by keySystem, maybe it should be a HashMap?
&gt; 
&gt; It could but I don&apos;t follow why it should be a WeahHashSet. Who would own
&gt; the factories then?

Finally, this can&apos;t be done. Things can&apos;t be keyed by key system because a factory can support more than one system (well, it could be but I think the alternative of adding the same factory more than once would be worse than this).

&gt; &gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:52
&gt; &gt; &gt; +void CDMProxyFactory::registerFactory(CDMProxyFactory&amp; factory)
&gt; &gt; 
&gt; &gt; It seems these methods are not called in this patch.
&gt; &gt; It would be safer to register/unregister in CDMProxyFactory
&gt; &gt; constructor/destructor if possible.
&gt; 
&gt; They are called for GStreamer.

I think now we would be ready for landing if you agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662661</commentid>
    <comment_count>23</comment_count>
      <attachid>401897</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-15 08:41:15 -0700</bug_when>
    <thetext>Comment on attachment 401897
Patch

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

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.h:161
&gt; +    virtual ~CDMProxyFactory() { };

We could add an ASSERT that the factory is not contained in the list of factories.
Or call unregisterFactory.

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.h:169
&gt; +    WEBCORE_EXPORT static void platformRegisterFactories(Vector&lt;CDMProxyFactory*&gt;&amp;);

Should we make it private then?
Maybe rename it to initializeRegisteredFactories().
Also we do not really like out parameters.
We could change it to return a Vector&lt;&gt; that we would move into NeverDestroyed&lt;Vector&lt;CDMProxyFactory*&gt;&gt; factories.

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.h:186
&gt; +    CDMInstanceProxy(const String&amp; keySystem)

explicit

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.h:-177
&gt; -            m_cdmProxy-&gt;updateKeyStore(m_keyStore);

We remove that code, is it ok?

&gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:222
&gt; +        m_isGCryptInitialized = true;

This is very similar to an Optional.
I would make m_gCryptHandle an Optional so that we are sure we never use it uninitialised.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.h:48
&gt; +    virtual ~CDMProxyFactoryClearKey();

No need for virtual here.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.h:51
&gt; +    bool supportsKeySystem(const String&amp;) final;

Can we make them private?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663069</commentid>
    <comment_count>24</comment_count>
      <attachid>402003</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-16 07:34:21 -0700</bug_when>
    <thetext>Created attachment 402003
Patch

(In reply to youenn fablet from comment #23)
&gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.h:161
&gt; &gt; +    virtual ~CDMProxyFactory() { };
&gt; 
&gt; We could add an ASSERT that the factory is not contained in the list of
&gt; factories.
&gt; Or call unregisterFactory.

Done.

&gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.h:169
&gt; &gt; +    WEBCORE_EXPORT static void platformRegisterFactories(Vector&lt;CDMProxyFactory*&gt;&amp;);
&gt; 
&gt; Should we make it private then?
&gt; Maybe rename it to initializeRegisteredFactories().
&gt; Also we do not really like out parameters.
&gt; We could change it to return a Vector&lt;&gt; that we would move into
&gt; NeverDestroyed&lt;Vector&lt;CDMProxyFactory*&gt;&gt; factories.

I changed everything but the name. I really think current one is better than initializeRegisteredFactories, since it is platform related and it is actually what registers the factories, they are not registered yet.
 
&gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.h:186
&gt; &gt; +    CDMInstanceProxy(const String&amp; keySystem)
&gt; 
&gt; explicit

Done.

&gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.h:-177
&gt; &gt; -            m_cdmProxy-&gt;updateKeyStore(m_keyStore);
&gt; 
&gt; We remove that code, is it ok?

Yes, because this was necessary when we were setting the proxy later. Now that it&apos;s created at the same time than the instance, there is no need for this. This was a Charlie&apos;s concern as well but the tests he mentions are not flaky at all with this code.

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:222
&gt; &gt; +        m_isGCryptInitialized = true;
&gt; 
&gt; This is very similar to an Optional.
&gt; I would make m_gCryptHandle an Optional so that we are sure we never use it
&gt; uninitialised.

Done.

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.h:48
&gt; &gt; +    virtual ~CDMProxyFactoryClearKey();
&gt; 
&gt; No need for virtual here.

Done.

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyClearKey.h:51
&gt; &gt; +    bool supportsKeySystem(const String&amp;) final;
&gt; 
&gt; Can we make them private?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663076</commentid>
    <comment_count>25</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-16 07:57:28 -0700</bug_when>
    <thetext>Committed r263087: &lt;https://trac.webkit.org/changeset/263087&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402003.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663078</commentid>
    <comment_count>26</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-16 07:58:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/64407032&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663079</commentid>
    <comment_count>27</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-16 07:58:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/64407033&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400920</attachid>
            <date>2020-06-03 08:22:02 -0700</date>
            <delta_ts>2020-06-03 09:15:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212695-20200603172201.patch</filename>
            <type>text/plain</type>
            <size>12712</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q3OWI1NzFkNGJlZmU4
Zjc3MTc4NTU5MjMyMGFlN2Y3OWExYjQ3Yy4uYzQzYjg5ODY2ZTQ0MzEyNDdjNTA2MWI4NzdlYjIw
MmZmZmFjMTc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA2LTAzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQ3JlYXRlIENETVByb3h5RmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBoYXZl
IHRoZSBDRE1Qcm94eSBjYWJsZWQgaW4gdGhlCisgICAgICAgIHBsYXllciBwcml2YXRlIGFuZCBz
ZXQgdG8gdGhlIGluc3RhbmNlLiBTZXR0aW5nIHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAgIGNy
ZWF0ZSBrZXkgc3luYyBpc3N1ZXMgdGhhdCBhcmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2VzIG5v
dCBzZWVtCisgICAgICAgIHRvIGJlIG5lZWRlZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVkIGlu
IHRoZSBjb25zdHJ1Y3RvciBmcm9tIGEKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdlIGp1
c3QgdXNlIHRoZSBrZXkgc3lzdGVtIHRoYXQgd2UgYWxyZWFkeQorICAgICAgICBoYXZlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZGVjbGFyZXMgYSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1c2Vk
IGluIHRoZQorICAgICAgICBDRE1JbnN0YW5jZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBwcm9w
ZXIgQ0RNUHJveHkgaW4gaXRzCisgICAgICAgIGNvbnN0cnVjdG9yLgorCisgICAgICAgIENETVBy
b3h5RmFjdG9yeUNsZWFyS2V5IGlzIGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFtZXIK
KyAgICAgICAgcGxhdGZvcm0gQ0RNUHJveHlGYWN0b3JpZXMuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBqdXN0IGEgcmV3b3JrLgorCisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3Rl
ckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVy
RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVBy
b3h5Rm9yS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxh
dGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6fkNETVBy
b3h5RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0
YW5jZVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlUHJveHk6OnNldFByb3h5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9D
RE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpD
RE1JbnN0YW5jZUNsZWFyS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlQ2xlYXJL
ZXk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Y2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNs
ZWFyS2V5OjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXk6OmNyZWF0ZUNETVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9y
eUNsZWFyS2V5OjpzdXBwb3J0c0tleVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5Lmg6CisKIDIwMjAtMDUtMzEgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgbmFtZWQgaXRlbSBj
b25kaXRpb24gZm9yIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCmluZGV4IDM2YzdjZWY0YWM2YWQyZGNlYWU2YmE5ODA0
NjRiM2I3Y2Q0OGUzODEuLjM0NWEyN2E2OWIyMDA4MGE1NjQ3ZTI0YWMyNzE5OTQ4YzU1ODBmNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3Jp
ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlGYWN0b3J5
Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVz
KGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQorCit2b2lk
IENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYgZmFjdG9y
eSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9y
eSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOworfQorCit2
b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBm
YWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFpbnMoJmZh
Y3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0b3J5KTsK
K30KKworUmVmPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Qcm94eT4g
Y2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5OjpyZWdp
c3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRzS2V5U3lz
dGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+Y3JlYXRl
Q0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIEFTU0VSVChjZG1Qcm94eSk7CisgICAgcmV0dXJuIGNkbVByb3h5LnJlbGVhc2VOb25O
dWxsKCk7Cit9CisKKyNpZiAhVVNFKEdTVFJFQU1FUikKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5Ojpw
bGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpCit7Cit9
CisjZW5kaWYKKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFN0cmluZyB2ZWN0b3JUb0hleFN0cmlu
Zyhjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGMwMDViNDFjNjA2NzZmZGYzN2Y2
M2Q5OGMwZTA1ZjQ3MTM2MGUyMWEuLmRhOTk5ZWQ4MjA2MDVmY2NiODAwOWM3M2I3NWRkMWExMmY5
MjQyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuaApAQCAtMTU1LDIzICsxNTUsMzkgQEAgcHJpdmF0ZToKICAgICBLZXlTdG9yZSBt
X2tleVN0b3JlOwogfTsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnkoKSB7IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgdW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBSZWY8Q0RNUHJveHk+
IGNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworCisgICAgLy8gUGxh
dGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBsaXN0IG9mCisg
ICAgLy8gcmVnaXN0ZXJlZCBDRE1Qcm94eUZhY3Rvcnkgb2JqZWN0cyBpcyBxdWVyaWVkIGZvciB0
aGUgZmlyc3QgdGltZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwbGF0Zm9ybVJl
Z2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5n
JikgPSAwOworCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8Q0RN
UHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKK307CisKIC8vIEJhc2UgY2xh
c3MgZm9yIGNvbW1vbiBzZXNzaW9uIG1hbmFnZW1lbnQgY29kZSBhbmQgZm9yIGNvbW11bmljYXRp
bmcgbWVzc2FnZXMKIC8vIGZyb20gInJlYWwgQ0RNIiBzdGF0ZSBjaGFuZ2VzIHRvIEpTLgogY2xh
c3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZSB7CiBwdWJsaWM6Ci0gICAg
Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZVBy
b3h5KCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAgICB2b2lkIHNl
dFByb3h5KFJlZjxDRE1Qcm94eT4mJiBwcm94eSkKKyAgICBDRE1JbnN0YW5jZVByb3h5KGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtKQogICAgIHsKLSAgICAgICAgbV9jZG1Qcm94eSA9IFdURk1vdmUo
cHJveHkpOworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBtX2NkbVBy
b3h5ID0gQ0RNUHJveHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbShrZXlTeXN0
ZW0pOwogICAgICAgICBtX2NkbVByb3h5LT5zZXRJbnN0YW5jZSh0aGlzKTsKLSAgICAgICAgLy8g
VGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNoZWQgYWZ0ZXIgYW4gdXBkYXRlKCkuIE5vdAot
ICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFwcHMgYW5kIHRoZSBXM0MgdGVzdC1zdWl0ZSBk
byB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9yZS5oYXNLZXlzKCkpCi0gICAgICAgICAgICBt
X2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tleVN0b3JlKTsKICAgICB9CisgICAgdmlydHVh
bCB+Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1haW4tdGhyZWFkIG9u
bHkuCiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAgICAgdm9pZCBy
ZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAKaW5kZXggZGFhM2NlYzI1MzA2NzE0MGEyZmUzYjUyMjI5NDUwZDA4ODkyM2ZiMy4u
M2Y1NWIxNWNmZGM5ZTBiYTYyNDFkZmY2OWIxNDYxOTAyN2IxYWZhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmNwcApAQCAtNDM0LDcgKzQzNCw5IEBAIE9wdGlvbmFsPFN0cmluZz4gQ0RN
UHJpdmF0ZUNsZWFyS2V5OjpzYW5pdGl6ZVNlc3Npb25JZChjb25zdCBTdHJpbmcmIHNlc3Npb25J
ZCkKICAgICByZXR1cm4gc2Vzc2lvbklkOwogfQogCitDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1J
bnN0YW5jZUNsZWFyS2V5KCkgOiBDRE1JbnN0YW5jZVByb3h5KHNfa2V5U3lzdGVtKSB7IH07CiBD
RE1JbnN0YW5jZUNsZWFyS2V5Ojp+Q0RNSW5zdGFuY2VDbGVhcktleSgpID0gZGVmYXVsdDsKK2Nv
bnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gQ0RNSW5zdGFuY2VDbGVhcktleTo6c19rZXlTeXN0
ZW0gPSBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgib3JnLnczLmNsZWFya2V5Iik7CiAKIHZvaWQg
Q0RNSW5zdGFuY2VDbGVhcktleTo6aW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uKGNvbnN0IENE
TUtleVN5c3RlbUNvbmZpZ3VyYXRpb24mLCBBbGxvd0Rpc3RpbmN0aXZlSWRlbnRpZmllcnMgZGlz
dGluY3RpdmVJZGVudGlmaWVycywgQWxsb3dQZXJzaXN0ZW50U3RhdGUgcGVyc2lzdGVudFN0YXRl
LCBTdWNjZXNzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKQEAgLTQ1NCw4ICs0NTYsNiBAQCB2b2lk
IENETUluc3RhbmNlQ2xlYXJLZXk6OnNldFN0b3JhZ2VEaXJlY3RvcnkoY29uc3QgU3RyaW5nJikK
IAogY29uc3QgU3RyaW5nJiBDRE1JbnN0YW5jZUNsZWFyS2V5OjprZXlTeXN0ZW0oKSBjb25zdAog
ewotICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNfa2V5U3lzdGVtIHsg
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIm9yZy53My5jbGVhcmtleSIpIH07Ci0KICAgICByZXR1
cm4gc19rZXlTeXN0ZW07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5oCmluZGV4IDY2OTdh
MDQ1NWJlZjI5MTU1YmY1OTAzODRmNTJmMDQyOTFhZGMwN2IuLjJiN2U4YzFiYTM3MzAzYTA4Y2U3
M2NjZmEyOTExMGM4NTRmOTIxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaApAQCAtOTMs
NiArOTMsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIENETUluc3RhbmNlQ2xlYXJLZXkgZmluYWwgOiBw
dWJsaWMgQ0RNSW5zdGFuY2VQcm94eSwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNl
Q2xlYXJLZXk+IHsKIHB1YmxpYzoKKyAgICBDRE1JbnN0YW5jZUNsZWFyS2V5KCk7CiAgICAgdmly
dHVhbCB+Q0RNSW5zdGFuY2VDbGVhcktleSgpOwogCiAgICAgLy8gQ0RNSW5zdGFuY2UKQEAgLTEw
Miw2ICsxMDMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdG9yYWdlRGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYpIGZpbmFsOwogICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKCkgY29uc3QgZmlu
YWw7CiAgICAgUmVmUHRyPENETUluc3RhbmNlU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbigpIGZpbmFs
OworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNf
a2V5U3lzdGVtOwogfTsKIAogY2xhc3MgQ0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXkgZmluYWwg
OiBwdWJsaWMgQ0RNSW5zdGFuY2VTZXNzaW9uLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5z
dGFuY2VTZXNzaW9uQ2xlYXJLZXk+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYjgyMzhkNzkzMTk2NjBjOWMwZGZmYzYzMzlkYjM2MjZh
YzU0OTAzZi4uYmY5ZTZhN2RkMTQyMzk0Y2I1MGFhOGI4ZmJmMmI0ZWI0NDA2MDJlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTM1NTYs
NyArMzU1Niw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjZG1JbnN0YW5j
ZUF0dGFjaGVkKENETUluc3RhbmNlJiBpbnN0YW5jZSkKICAgICBtX2NkbUluc3RhbmNlID0gcmVp
bnRlcnByZXRfY2FzdDxDRE1JbnN0YW5jZVByb3h5Kj4oJmluc3RhbmNlKTsKICAgICBSRUxFQVNF
X0FTU0VSVChtX2NkbUluc3RhbmNlKTsKICAgICBtX2NkbUluc3RhbmNlLT5zZXRQbGF5ZXIobV9w
bGF5ZXIpOwotICAgIG1fY2RtSW5zdGFuY2UtPnNldFByb3h5KGFkb3B0UmVmKCpuZXcgQ0RNUHJv
eHlDbGVhcktleSkpOwogCiAgICAgR1JlZlB0cjxHc3RDb250ZXh0PiBjb250ZXh0ID0gYWRvcHRH
UmVmKGdzdF9jb250ZXh0X25ldygiZHJtLWNkbS1wcm94eSIsIEZBTFNFKSk7CiAgICAgR3N0U3Ry
dWN0dXJlKiBjb250ZXh0U3RydWN0dXJlID0gZ3N0X2NvbnRleHRfd3JpdGFibGVfc3RydWN0dXJl
KGNvbnRleHQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5j
cHAKaW5kZXggY2EzNzU3Yzk3NGI3NWI5MmYxYjg3YjQ1OGVkMzJhYzhjMGFkYmQ4Ny4uZmZmZGU0
NWViNmM0MDFjMGMzOGQ1ZmFhN2EwM2JhZmE4NTM5ZmI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L0NETUZhY3RvcnlHU3RyZWFtZXIuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAKICNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQogCi0jaW5jbHVkZSAiQ0RNQ2xlYXJLZXkuaCIKKyNpbmNsdWRlICJD
RE1Qcm94eUNsZWFyS2V5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsNiArNDAs
MTEgQEAgdm9pZCBDRE1GYWN0b3J5OjpwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxD
RE1GYWN0b3J5Kj4mIGZhY3RvcmllcykKICAgICBmYWN0b3JpZXMuYXBwZW5kKCZDRE1GYWN0b3J5
Q2xlYXJLZXk6OnNpbmdsZXRvbigpKTsKIH0KIAordm9pZCBDRE1Qcm94eUZhY3Rvcnk6OnBsYXRm
b3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVjdG9yPENETVByb3h5RmFjdG9yeSo+JiBmYWN0b3JpZXMp
Cit7CisgICAgZmFjdG9yaWVzLmFwcGVuZCgmQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnNpbmds
ZXRvbigpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwCmlu
ZGV4IGMxYjZiMzRmNjg2ZjRjZjcyZmU2MTI1MzIwNDI0NGQ4NTdmZTRkM2MuLjRhNWQ5ZGUxYWNl
M2M4Mjg5MDVjMDU3Yzg3YzQzM2NlZjg1YWIzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94
eUNsZWFyS2V5LmNwcApAQCAtNjQsNiArNjQsMjcgQEAgc3RhdGljIGJvb2wgcmVhZFVJbnQxNihj
b25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBidWZmZXJTaXplLCBzaXplX3QmIG9mZnNldCwK
IAogfSAvLyBuYW1lc3BhY2Uge30KIAorQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkmIENETVByb3h5
RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDRE1Qcm94eUZhY3RvcnlDbGVhcktleT4gc19mYWN0b3J5OworICAgIHJldHVybiBzX2ZhY3Rv
cnk7Cit9CisKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpDRE1Qcm94eUZhY3RvcnlDbGVhcktl
eSgpID0gZGVmYXVsdDsKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5Ojp+Q0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXkoKSA9IGRlZmF1bHQ7CisKK1JlZlB0cjxDRE1Qcm94eT4gQ0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXk6OmNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAg
IEFTU0VSVF9VTlVTRUQoa2V5U3lzdGVtLCBzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IENETVByb3h5Q2xlYXJLZXkoKSk7Cit9CisKK2Jvb2wg
Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtKQoreworICAgIC8vIGBvcmcudzMuY2xlYXJrZXlgIGlzIHRoZSBvbmx5IHN1cHBv
cnRlZCBrZXkgc3lzdGVtLgorICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShrZXlTeXN0ZW0sICJvcmcudzMuY2xlYXJrZXkiKTsKK30KKwogQ0RNUHJveHlDbGVhcktleTo6
fkNETVByb3h5Q2xlYXJLZXkoKQogewogICAgIGdjcnlfY2lwaGVyX2Nsb3NlKG1fZ2NyeUhhbmRs
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCmluZGV4IDUwMjQwYzlmOGQ0Y2U2
N2FhYmQxZGZlZDA3YjY2YjUxMDQxMjE4YjEuLmJlZDZmYWVmZTA2NzAxYTQ3ZDgzMjg1YjY4Mjdh
MzBjYTkwOGExNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCkBAIC00MCw2
ICs0MCwyMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENETVByb3h5RmFjdG9y
eUNsZWFyS2V5IGZpbmFsIDogcHVibGljIENETVByb3h5RmFjdG9yeSB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIENETVByb3h5RmFjdG9yeUNsZWFy
S2V5JiBzaW5nbGV0b24oKTsKKworICAgIHZpcnR1YWwgfkNETVByb3h5RmFjdG9yeUNsZWFyS2V5
KCk7CisKKyAgICBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmluZyYp
IGZpbmFsOworICAgIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJikgZmluYWw7
CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPENETVByb3h5RmFj
dG9yeUNsZWFyS2V5PjsKKyAgICBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSgpOworfTsKKwogLy8g
VGhpcyBpcyB0aGUgdGhyZWFkLXNhZmUgQVBJIHRoYXQgZGVjb2RlIHRocmVhZHMgc2hvdWxkIHVz
ZSB0byBtYWtlIHVzZSBvZiBhCiAvLyBwbGF0Zm9ybSBDRE0gbW9kdWxlLgogY2xhc3MgQ0RNUHJv
eHlDbGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1Qcm94eSwgcHVibGljIENhbk1ha2VXZWFrUHRy
PENETVByb3h5Q2xlYXJLZXksIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400926</attachid>
            <date>2020-06-03 09:15:33 -0700</date>
            <delta_ts>2020-06-04 00:04:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212695-20200603181531.patch</filename>
            <type>text/plain</type>
            <size>12711</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q3OWI1NzFkNGJlZmU4
Zjc3MTc4NTU5MjMyMGFlN2Y3OWExYjQ3Yy4uYzQzYjg5ODY2ZTQ0MzEyNDdjNTA2MWI4NzdlYjIw
MmZmZmFjMTc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA2LTAzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQ3JlYXRlIENETVByb3h5RmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBoYXZl
IHRoZSBDRE1Qcm94eSBjYWJsZWQgaW4gdGhlCisgICAgICAgIHBsYXllciBwcml2YXRlIGFuZCBz
ZXQgdG8gdGhlIGluc3RhbmNlLiBTZXR0aW5nIHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAgIGNy
ZWF0ZSBrZXkgc3luYyBpc3N1ZXMgdGhhdCBhcmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2VzIG5v
dCBzZWVtCisgICAgICAgIHRvIGJlIG5lZWRlZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVkIGlu
IHRoZSBjb25zdHJ1Y3RvciBmcm9tIGEKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdlIGp1
c3QgdXNlIHRoZSBrZXkgc3lzdGVtIHRoYXQgd2UgYWxyZWFkeQorICAgICAgICBoYXZlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZGVjbGFyZXMgYSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1c2Vk
IGluIHRoZQorICAgICAgICBDRE1JbnN0YW5jZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBwcm9w
ZXIgQ0RNUHJveHkgaW4gaXRzCisgICAgICAgIGNvbnN0cnVjdG9yLgorCisgICAgICAgIENETVBy
b3h5RmFjdG9yeUNsZWFyS2V5IGlzIGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFtZXIK
KyAgICAgICAgcGxhdGZvcm0gQ0RNUHJveHlGYWN0b3JpZXMuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBqdXN0IGEgcmV3b3JrLgorCisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3Rl
ckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVy
RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVBy
b3h5Rm9yS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxh
dGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6fkNETVBy
b3h5RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0
YW5jZVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlUHJveHk6OnNldFByb3h5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9D
RE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpD
RE1JbnN0YW5jZUNsZWFyS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlQ2xlYXJL
ZXk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Y2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNs
ZWFyS2V5OjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXk6OmNyZWF0ZUNETVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9y
eUNsZWFyS2V5OjpzdXBwb3J0c0tleVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5Lmg6CisKIDIwMjAtMDUtMzEgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgbmFtZWQgaXRlbSBj
b25kaXRpb24gZm9yIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCmluZGV4IDM2YzdjZWY0YWM2YWQyZGNlYWU2YmE5ODA0
NjRiM2I3Y2Q0OGUzODEuLjM0NWEyN2E2OWIyMDA4MGE1NjQ3ZTI0YWMyNzE5OTQ4YzU1ODBmNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3Jp
ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlGYWN0b3J5
Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVz
KGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQorCit2b2lk
IENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYgZmFjdG9y
eSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9y
eSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOworfQorCit2
b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBm
YWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFpbnMoJmZh
Y3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0b3J5KTsK
K30KKworUmVmPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Qcm94eT4g
Y2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5OjpyZWdp
c3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRzS2V5U3lz
dGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+Y3JlYXRl
Q0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIEFTU0VSVChjZG1Qcm94eSk7CisgICAgcmV0dXJuIGNkbVByb3h5LnJlbGVhc2VOb25O
dWxsKCk7Cit9CisKKyNpZiAhVVNFKEdTVFJFQU1FUikKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5Ojpw
bGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpCit7Cit9
CisjZW5kaWYKKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFN0cmluZyB2ZWN0b3JUb0hleFN0cmlu
Zyhjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGMwMDViNDFjNjA2NzZmZGYzN2Y2
M2Q5OGMwZTA1ZjQ3MTM2MGUyMWEuLmRhOTk5ZWQ4MjA2MDVmY2NiODAwOWM3M2I3NWRkMWExMmY5
MjQyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuaApAQCAtMTU1LDIzICsxNTUsMzkgQEAgcHJpdmF0ZToKICAgICBLZXlTdG9yZSBt
X2tleVN0b3JlOwogfTsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnkoKSB7IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgdW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBSZWY8Q0RNUHJveHk+
IGNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworCisgICAgLy8gUGxh
dGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBsaXN0IG9mCisg
ICAgLy8gcmVnaXN0ZXJlZCBDRE1Qcm94eUZhY3Rvcnkgb2JqZWN0cyBpcyBxdWVyaWVkIGZvciB0
aGUgZmlyc3QgdGltZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwbGF0Zm9ybVJl
Z2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5n
JikgPSAwOworCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8Q0RN
UHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKK307CisKIC8vIEJhc2UgY2xh
c3MgZm9yIGNvbW1vbiBzZXNzaW9uIG1hbmFnZW1lbnQgY29kZSBhbmQgZm9yIGNvbW11bmljYXRp
bmcgbWVzc2FnZXMKIC8vIGZyb20gInJlYWwgQ0RNIiBzdGF0ZSBjaGFuZ2VzIHRvIEpTLgogY2xh
c3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZSB7CiBwdWJsaWM6Ci0gICAg
Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZVBy
b3h5KCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAgICB2b2lkIHNl
dFByb3h5KFJlZjxDRE1Qcm94eT4mJiBwcm94eSkKKyAgICBDRE1JbnN0YW5jZVByb3h5KGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtKQogICAgIHsKLSAgICAgICAgbV9jZG1Qcm94eSA9IFdURk1vdmUo
cHJveHkpOworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBtX2NkbVBy
b3h5ID0gQ0RNUHJveHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbShrZXlTeXN0
ZW0pOwogICAgICAgICBtX2NkbVByb3h5LT5zZXRJbnN0YW5jZSh0aGlzKTsKLSAgICAgICAgLy8g
VGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNoZWQgYWZ0ZXIgYW4gdXBkYXRlKCkuIE5vdAot
ICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFwcHMgYW5kIHRoZSBXM0MgdGVzdC1zdWl0ZSBk
byB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9yZS5oYXNLZXlzKCkpCi0gICAgICAgICAgICBt
X2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tleVN0b3JlKTsKICAgICB9CisgICAgdmlydHVh
bCB+Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1haW4tdGhyZWFkIG9u
bHkuCiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAgICAgdm9pZCBy
ZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAKaW5kZXggZGFhM2NlYzI1MzA2NzE0MGEyZmUzYjUyMjI5NDUwZDA4ODkyM2ZiMy4u
NTA4MzBlZmYxODdiNTJhMTcwMjVjYjhmYTc5ZTYwMzA3MjExZjhhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmNwcApAQCAtNDM0LDcgKzQzNCw5IEBAIE9wdGlvbmFsPFN0cmluZz4gQ0RN
UHJpdmF0ZUNsZWFyS2V5OjpzYW5pdGl6ZVNlc3Npb25JZChjb25zdCBTdHJpbmcmIHNlc3Npb25J
ZCkKICAgICByZXR1cm4gc2Vzc2lvbklkOwogfQogCitDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1J
bnN0YW5jZUNsZWFyS2V5KCkgOiBDRE1JbnN0YW5jZVByb3h5KHNfa2V5U3lzdGVtKSB7IH07CiBD
RE1JbnN0YW5jZUNsZWFyS2V5Ojp+Q0RNSW5zdGFuY2VDbGVhcktleSgpID0gZGVmYXVsdDsKK2Nv
bnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gQ0RNSW5zdGFuY2VDbGVhcktleTo6c19rZXlTeXN0
ZW0oTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIm9yZy53My5jbGVhcmtleSIpKTsKIAogdm9pZCBD
RE1JbnN0YW5jZUNsZWFyS2V5Ojppbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb24oY29uc3QgQ0RN
S2V5U3lzdGVtQ29uZmlndXJhdGlvbiYsIEFsbG93RGlzdGluY3RpdmVJZGVudGlmaWVycyBkaXN0
aW5jdGl2ZUlkZW50aWZpZXJzLCBBbGxvd1BlcnNpc3RlbnRTdGF0ZSBwZXJzaXN0ZW50U3RhdGUs
IFN1Y2Nlc3NDYWxsYmFjayYmIGNhbGxiYWNrKQogewpAQCAtNDU0LDggKzQ1Niw2IEBAIHZvaWQg
Q0RNSW5zdGFuY2VDbGVhcktleTo6c2V0U3RvcmFnZURpcmVjdG9yeShjb25zdCBTdHJpbmcmKQog
CiBjb25zdCBTdHJpbmcmIENETUluc3RhbmNlQ2xlYXJLZXk6OmtleVN5c3RlbSgpIGNvbnN0CiB7
Ci0gICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc19rZXlTeXN0ZW0geyBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgib3JnLnczLmNsZWFya2V5IikgfTsKLQogICAgIHJldHVy
biBzX2tleVN5c3RlbTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmgKaW5kZXggNjY5N2Ew
NDU1YmVmMjkxNTViZjU5MDM4NGY1MmYwNDI5MWFkYzA3Yi4uMmI3ZThjMWJhMzczMDNhMDhjZTcz
Y2NmYTI5MTEwYzg1NGY5MjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5oCkBAIC05Myw2
ICs5Myw3IEBAIHB1YmxpYzoKIAogY2xhc3MgQ0RNSW5zdGFuY2VDbGVhcktleSBmaW5hbCA6IHB1
YmxpYyBDRE1JbnN0YW5jZVByb3h5LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5zdGFuY2VD
bGVhcktleT4gewogcHVibGljOgorICAgIENETUluc3RhbmNlQ2xlYXJLZXkoKTsKICAgICB2aXJ0
dWFsIH5DRE1JbnN0YW5jZUNsZWFyS2V5KCk7CiAKICAgICAvLyBDRE1JbnN0YW5jZQpAQCAtMTAy
LDYgKzEwMyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0b3JhZ2VEaXJlY3RvcnkoY29uc3Qg
U3RyaW5nJikgZmluYWw7CiAgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0oKSBjb25zdCBmaW5h
bDsKICAgICBSZWZQdHI8Q0RNSW5zdGFuY2VTZXNzaW9uPiBjcmVhdGVTZXNzaW9uKCkgZmluYWw7
CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc19r
ZXlTeXN0ZW07CiB9OwogCiBjbGFzcyBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleSBmaW5hbCA6
IHB1YmxpYyBDRE1JbnN0YW5jZVNlc3Npb24sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1JbnN0
YW5jZVNlc3Npb25DbGVhcktleT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiODIzOGQ3OTMxOTY2MGM5YzBkZmZjNjMzOWRiMzYyNmFj
NTQ5MDNmLi5iZjllNmE3ZGQxNDIzOTRjYjUwYWE4YjhmYmYyYjRlYjQ0MDYwMmVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzU1Niw3
ICszNTU2LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3RhbmNl
QXR0YWNoZWQoQ0RNSW5zdGFuY2UmIGluc3RhbmNlKQogICAgIG1fY2RtSW5zdGFuY2UgPSByZWlu
dGVycHJldF9jYXN0PENETUluc3RhbmNlUHJveHkqPigmaW5zdGFuY2UpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKG1fY2RtSW5zdGFuY2UpOwogICAgIG1fY2RtSW5zdGFuY2UtPnNldFBsYXllcihtX3Bs
YXllcik7Ci0gICAgbV9jZG1JbnN0YW5jZS0+c2V0UHJveHkoYWRvcHRSZWYoKm5ldyBDRE1Qcm94
eUNsZWFyS2V5KSk7CiAKICAgICBHUmVmUHRyPEdzdENvbnRleHQ+IGNvbnRleHQgPSBhZG9wdEdS
ZWYoZ3N0X2NvbnRleHRfbmV3KCJkcm0tY2RtLXByb3h5IiwgRkFMU0UpKTsKICAgICBHc3RTdHJ1
Y3R1cmUqIGNvbnRleHRTdHJ1Y3R1cmUgPSBnc3RfY29udGV4dF93cml0YWJsZV9zdHJ1Y3R1cmUo
Y29udGV4dC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNw
cAppbmRleCBjYTM3NTdjOTc0Yjc1YjkyZjFiODdiNDU4ZWQzMmFjOGMwYWRiZDg3Li5mZmZkZTQ1
ZWI2YzQwMWMwYzM4ZDVmYWE3YTAzYmFmYTg1MzlmYjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
Q0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCiAKLSNpbmNsdWRlICJDRE1DbGVhcktleS5oIgorI2luY2x1ZGUgIkNE
TVByb3h5Q2xlYXJLZXkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw2ICs0MCwx
MSBAQCB2b2lkIENETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVjdG9yPENE
TUZhY3RvcnkqPiYgZmFjdG9yaWVzKQogICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNETUZhY3RvcnlD
bGVhcktleTo6c2luZ2xldG9uKCkpOwogfQogCit2b2lkIENETVByb3h5RmFjdG9yeTo6cGxhdGZv
cm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIGZhY3RvcmllcykK
K3sKKyAgICBmYWN0b3JpZXMuYXBwZW5kKCZDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c2luZ2xl
dG9uKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKaW5k
ZXggYzFiNmIzNGY2ODZmNGNmNzJmZTYxMjUzMjA0MjQ0ZDg1N2ZlNGQzYy4uNGE1ZDlkZTFhY2Uz
YzgyODkwNWMwNTdjODdjNDMzY2VmODVhYjMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5
Q2xlYXJLZXkuY3BwCkBAIC02NCw2ICs2NCwyNyBAQCBzdGF0aWMgYm9vbCByZWFkVUludDE2KGNv
bnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUsIHNpemVfdCYgb2Zmc2V0LAog
CiB9IC8vIG5hbWVzcGFjZSB7fQogCitDRE1Qcm94eUZhY3RvcnlDbGVhcktleSYgQ0RNUHJveHlG
YWN0b3J5Q2xlYXJLZXk6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PENETVByb3h5RmFjdG9yeUNsZWFyS2V5PiBzX2ZhY3Rvcnk7CisgICAgcmV0dXJuIHNfZmFjdG9y
eTsKK30KKworQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5
KCkgPSBkZWZhdWx0OworQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6On5DRE1Qcm94eUZhY3RvcnlD
bGVhcktleSgpID0gZGVmYXVsdDsKKworUmVmUHRyPENETVByb3h5PiBDRE1Qcm94eUZhY3RvcnlD
bGVhcktleTo6Y3JlYXRlQ0RNUHJveHkoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisgICAg
QVNTRVJUX1VOVVNFRChrZXlTeXN0ZW0sIHN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ0RNUHJveHlDbGVhcktleSgpKTsKK30KKworYm9vbCBD
RE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0pCit7CisgICAgLy8gYG9yZy53My5jbGVhcmtleWAgaXMgdGhlIG9ubHkgc3VwcG9y
dGVkIGtleSBzeXN0ZW0uCisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KGtleVN5c3RlbSwgIm9yZy53My5jbGVhcmtleSIpOworfQorCiBDRE1Qcm94eUNsZWFyS2V5Ojp+
Q0RNUHJveHlDbGVhcktleSgpCiB7CiAgICAgZ2NyeV9jaXBoZXJfY2xvc2UobV9nY3J5SGFuZGxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9lbWUvQ0RNUHJveHlDbGVhcktleS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKaW5kZXggNTAyNDBjOWY4ZDRjZTY3
YWFiZDFkZmVkMDdiNjZiNTEwNDEyMThiMS4uYmVkNmZhZWZlMDY3MDFhNDdkODMyODViNjgyN2Ez
MGNhOTA4YTE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKQEAgLTQwLDYg
KzQwLDIxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNUHJveHlGYWN0b3J5IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgQ0RNUHJveHlGYWN0b3J5Q2xlYXJL
ZXkmIHNpbmdsZXRvbigpOworCisgICAgdmlydHVhbCB+Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXko
KTsKKworICAgIFJlZlB0cjxDRE1Qcm94eT4gY3JlYXRlQ0RNUHJveHkoY29uc3QgU3RyaW5nJikg
ZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmKSBmaW5hbDsK
KworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8Q0RNUHJveHlGYWN0
b3J5Q2xlYXJLZXk+OworICAgIENETVByb3h5RmFjdG9yeUNsZWFyS2V5KCk7Cit9OworCiAvLyBU
aGlzIGlzIHRoZSB0aHJlYWQtc2FmZSBBUEkgdGhhdCBkZWNvZGUgdGhyZWFkcyBzaG91bGQgdXNl
IHRvIG1ha2UgdXNlIG9mIGEKIC8vIHBsYXRmb3JtIENETSBtb2R1bGUuCiBjbGFzcyBDRE1Qcm94
eUNsZWFyS2V5IGZpbmFsIDogcHVibGljIENETVByb3h5LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
Q0RNUHJveHlDbGVhcktleSwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401004</attachid>
            <date>2020-06-04 00:04:11 -0700</date>
            <delta_ts>2020-06-04 00:12:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212695-20200604090410.patch</filename>
            <type>text/plain</type>
            <size>12714</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q3OWI1NzFkNGJlZmU4
Zjc3MTc4NTU5MjMyMGFlN2Y3OWExYjQ3Yy4uYzQzYjg5ODY2ZTQ0MzEyNDdjNTA2MWI4NzdlYjIw
MmZmZmFjMTc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA2LTAzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQ3JlYXRlIENETVByb3h5RmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBoYXZl
IHRoZSBDRE1Qcm94eSBjYWJsZWQgaW4gdGhlCisgICAgICAgIHBsYXllciBwcml2YXRlIGFuZCBz
ZXQgdG8gdGhlIGluc3RhbmNlLiBTZXR0aW5nIHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAgIGNy
ZWF0ZSBrZXkgc3luYyBpc3N1ZXMgdGhhdCBhcmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2VzIG5v
dCBzZWVtCisgICAgICAgIHRvIGJlIG5lZWRlZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVkIGlu
IHRoZSBjb25zdHJ1Y3RvciBmcm9tIGEKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdlIGp1
c3QgdXNlIHRoZSBrZXkgc3lzdGVtIHRoYXQgd2UgYWxyZWFkeQorICAgICAgICBoYXZlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZGVjbGFyZXMgYSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1c2Vk
IGluIHRoZQorICAgICAgICBDRE1JbnN0YW5jZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBwcm9w
ZXIgQ0RNUHJveHkgaW4gaXRzCisgICAgICAgIGNvbnN0cnVjdG9yLgorCisgICAgICAgIENETVBy
b3h5RmFjdG9yeUNsZWFyS2V5IGlzIGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFtZXIK
KyAgICAgICAgcGxhdGZvcm0gQ0RNUHJveHlGYWN0b3JpZXMuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBqdXN0IGEgcmV3b3JrLgorCisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3Rl
ckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVy
RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVBy
b3h5Rm9yS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxh
dGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6fkNETVBy
b3h5RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0
YW5jZVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlUHJveHk6OnNldFByb3h5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9D
RE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpD
RE1JbnN0YW5jZUNsZWFyS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlQ2xlYXJL
ZXk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Y2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNs
ZWFyS2V5OjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXk6OmNyZWF0ZUNETVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9y
eUNsZWFyS2V5OjpzdXBwb3J0c0tleVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5Lmg6CisKIDIwMjAtMDUtMzEgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgbmFtZWQgaXRlbSBj
b25kaXRpb24gZm9yIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCmluZGV4IDM2YzdjZWY0YWM2YWQyZGNlYWU2YmE5ODA0
NjRiM2I3Y2Q0OGUzODEuLjM0NWEyN2E2OWIyMDA4MGE1NjQ3ZTI0YWMyNzE5OTQ4YzU1ODBmNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3Jp
ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlGYWN0b3J5
Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVz
KGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQorCit2b2lk
IENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYgZmFjdG9y
eSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9y
eSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOworfQorCit2
b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBm
YWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFpbnMoJmZh
Y3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0b3J5KTsK
K30KKworUmVmPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Qcm94eT4g
Y2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5OjpyZWdp
c3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRzS2V5U3lz
dGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+Y3JlYXRl
Q0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIEFTU0VSVChjZG1Qcm94eSk7CisgICAgcmV0dXJuIGNkbVByb3h5LnJlbGVhc2VOb25O
dWxsKCk7Cit9CisKKyNpZiAhVVNFKEdTVFJFQU1FUikKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5Ojpw
bGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpCit7Cit9
CisjZW5kaWYKKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFN0cmluZyB2ZWN0b3JUb0hleFN0cmlu
Zyhjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGMwMDViNDFjNjA2NzZmZGYzN2Y2
M2Q5OGMwZTA1ZjQ3MTM2MGUyMWEuLmRhOTk5ZWQ4MjA2MDVmY2NiODAwOWM3M2I3NWRkMWExMmY5
MjQyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuaApAQCAtMTU1LDIzICsxNTUsMzkgQEAgcHJpdmF0ZToKICAgICBLZXlTdG9yZSBt
X2tleVN0b3JlOwogfTsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnkoKSB7IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgdW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBSZWY8Q0RNUHJveHk+
IGNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworCisgICAgLy8gUGxh
dGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBsaXN0IG9mCisg
ICAgLy8gcmVnaXN0ZXJlZCBDRE1Qcm94eUZhY3Rvcnkgb2JqZWN0cyBpcyBxdWVyaWVkIGZvciB0
aGUgZmlyc3QgdGltZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwbGF0Zm9ybVJl
Z2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5n
JikgPSAwOworCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8Q0RN
UHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKK307CisKIC8vIEJhc2UgY2xh
c3MgZm9yIGNvbW1vbiBzZXNzaW9uIG1hbmFnZW1lbnQgY29kZSBhbmQgZm9yIGNvbW11bmljYXRp
bmcgbWVzc2FnZXMKIC8vIGZyb20gInJlYWwgQ0RNIiBzdGF0ZSBjaGFuZ2VzIHRvIEpTLgogY2xh
c3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZSB7CiBwdWJsaWM6Ci0gICAg
Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZVBy
b3h5KCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAgICB2b2lkIHNl
dFByb3h5KFJlZjxDRE1Qcm94eT4mJiBwcm94eSkKKyAgICBDRE1JbnN0YW5jZVByb3h5KGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtKQogICAgIHsKLSAgICAgICAgbV9jZG1Qcm94eSA9IFdURk1vdmUo
cHJveHkpOworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBtX2NkbVBy
b3h5ID0gQ0RNUHJveHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbShrZXlTeXN0
ZW0pOwogICAgICAgICBtX2NkbVByb3h5LT5zZXRJbnN0YW5jZSh0aGlzKTsKLSAgICAgICAgLy8g
VGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNoZWQgYWZ0ZXIgYW4gdXBkYXRlKCkuIE5vdAot
ICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFwcHMgYW5kIHRoZSBXM0MgdGVzdC1zdWl0ZSBk
byB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9yZS5oYXNLZXlzKCkpCi0gICAgICAgICAgICBt
X2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tleVN0b3JlKTsKICAgICB9CisgICAgdmlydHVh
bCB+Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1haW4tdGhyZWFkIG9u
bHkuCiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAgICAgdm9pZCBy
ZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAKaW5kZXggZGFhM2NlYzI1MzA2NzE0MGEyZmUzYjUyMjI5NDUwZDA4ODkyM2ZiMy4u
MzFiYzZiMDk0YTdiMjViNzU3M2IyYzFhNzdhNmU3NDgwZmEzMDcyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmNwcApAQCAtNDM0LDcgKzQzNCw5IEBAIE9wdGlvbmFsPFN0cmluZz4gQ0RN
UHJpdmF0ZUNsZWFyS2V5OjpzYW5pdGl6ZVNlc3Npb25JZChjb25zdCBTdHJpbmcmIHNlc3Npb25J
ZCkKICAgICByZXR1cm4gc2Vzc2lvbklkOwogfQogCitDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1J
bnN0YW5jZUNsZWFyS2V5KCkgOiBDRE1JbnN0YW5jZVByb3h5KHNfa2V5U3lzdGVtKSB7IH07CiBD
RE1JbnN0YW5jZUNsZWFyS2V5Ojp+Q0RNSW5zdGFuY2VDbGVhcktleSgpID0gZGVmYXVsdDsKK2Nv
bnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gQ0RNSW5zdGFuY2VDbGVhcktleTo6c19rZXlTeXN0
ZW0geyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgib3JnLnczLmNsZWFya2V5IikgfTsKIAogdm9p
ZCBDRE1JbnN0YW5jZUNsZWFyS2V5Ojppbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb24oY29uc3Qg
Q0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYsIEFsbG93RGlzdGluY3RpdmVJZGVudGlmaWVycyBk
aXN0aW5jdGl2ZUlkZW50aWZpZXJzLCBBbGxvd1BlcnNpc3RlbnRTdGF0ZSBwZXJzaXN0ZW50U3Rh
dGUsIFN1Y2Nlc3NDYWxsYmFjayYmIGNhbGxiYWNrKQogewpAQCAtNDU0LDggKzQ1Niw2IEBAIHZv
aWQgQ0RNSW5zdGFuY2VDbGVhcktleTo6c2V0U3RvcmFnZURpcmVjdG9yeShjb25zdCBTdHJpbmcm
KQogCiBjb25zdCBTdHJpbmcmIENETUluc3RhbmNlQ2xlYXJLZXk6OmtleVN5c3RlbSgpIGNvbnN0
CiB7Ci0gICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc19rZXlTeXN0ZW0g
eyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgib3JnLnczLmNsZWFya2V5IikgfTsKLQogICAgIHJl
dHVybiBzX2tleVN5c3RlbTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmgKaW5kZXggNjY5
N2EwNDU1YmVmMjkxNTViZjU5MDM4NGY1MmYwNDI5MWFkYzA3Yi4uMmI3ZThjMWJhMzczMDNhMDhj
ZTczY2NmYTI5MTEwYzg1NGY5MjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5oCkBAIC05
Myw2ICs5Myw3IEBAIHB1YmxpYzoKIAogY2xhc3MgQ0RNSW5zdGFuY2VDbGVhcktleSBmaW5hbCA6
IHB1YmxpYyBDRE1JbnN0YW5jZVByb3h5LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5zdGFu
Y2VDbGVhcktleT4gewogcHVibGljOgorICAgIENETUluc3RhbmNlQ2xlYXJLZXkoKTsKICAgICB2
aXJ0dWFsIH5DRE1JbnN0YW5jZUNsZWFyS2V5KCk7CiAKICAgICAvLyBDRE1JbnN0YW5jZQpAQCAt
MTAyLDYgKzEwMyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0b3JhZ2VEaXJlY3RvcnkoY29u
c3QgU3RyaW5nJikgZmluYWw7CiAgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0oKSBjb25zdCBm
aW5hbDsKICAgICBSZWZQdHI8Q0RNSW5zdGFuY2VTZXNzaW9uPiBjcmVhdGVTZXNzaW9uKCkgZmlu
YWw7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
c19rZXlTeXN0ZW07CiB9OwogCiBjbGFzcyBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleSBmaW5h
bCA6IHB1YmxpYyBDRE1JbnN0YW5jZVNlc3Npb24sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1J
bnN0YW5jZVNlc3Npb25DbGVhcktleT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBiODIzOGQ3OTMxOTY2MGM5YzBkZmZjNjMzOWRiMzYy
NmFjNTQ5MDNmLi5iZjllNmE3ZGQxNDIzOTRjYjUwYWE4YjhmYmYyYjRlYjQ0MDYwMmVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzU1
Niw3ICszNTU2LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3Rh
bmNlQXR0YWNoZWQoQ0RNSW5zdGFuY2UmIGluc3RhbmNlKQogICAgIG1fY2RtSW5zdGFuY2UgPSBy
ZWludGVycHJldF9jYXN0PENETUluc3RhbmNlUHJveHkqPigmaW5zdGFuY2UpOwogICAgIFJFTEVB
U0VfQVNTRVJUKG1fY2RtSW5zdGFuY2UpOwogICAgIG1fY2RtSW5zdGFuY2UtPnNldFBsYXllciht
X3BsYXllcik7Ci0gICAgbV9jZG1JbnN0YW5jZS0+c2V0UHJveHkoYWRvcHRSZWYoKm5ldyBDRE1Q
cm94eUNsZWFyS2V5KSk7CiAKICAgICBHUmVmUHRyPEdzdENvbnRleHQ+IGNvbnRleHQgPSBhZG9w
dEdSZWYoZ3N0X2NvbnRleHRfbmV3KCJkcm0tY2RtLXByb3h5IiwgRkFMU0UpKTsKICAgICBHc3RT
dHJ1Y3R1cmUqIGNvbnRleHRTdHJ1Y3R1cmUgPSBnc3RfY29udGV4dF93cml0YWJsZV9zdHJ1Y3R1
cmUoY29udGV4dC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVy
LmNwcAppbmRleCBjYTM3NTdjOTc0Yjc1YjkyZjFiODdiNDU4ZWQzMmFjOGMwYWRiZDg3Li5mZmZk
ZTQ1ZWI2YzQwMWMwYzM4ZDVmYWE3YTAzYmFmYTg1MzlmYjk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9l
bWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUEpCiAKLSNpbmNsdWRlICJDRE1DbGVhcktleS5oIgorI2luY2x1ZGUg
IkNETVByb3h5Q2xlYXJLZXkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw2ICs0
MCwxMSBAQCB2b2lkIENETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVjdG9y
PENETUZhY3RvcnkqPiYgZmFjdG9yaWVzKQogICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNETUZhY3Rv
cnlDbGVhcktleTo6c2luZ2xldG9uKCkpOwogfQogCit2b2lkIENETVByb3h5RmFjdG9yeTo6cGxh
dGZvcm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIGZhY3Rvcmll
cykKK3sKKyAgICBmYWN0b3JpZXMuYXBwZW5kKCZDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c2lu
Z2xldG9uKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAK
aW5kZXggYzFiNmIzNGY2ODZmNGNmNzJmZTYxMjUzMjA0MjQ0ZDg1N2ZlNGQzYy4uNGE1ZDlkZTFh
Y2UzYzgyODkwNWMwNTdjODdjNDMzY2VmODVhYjMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVBy
b3h5Q2xlYXJLZXkuY3BwCkBAIC02NCw2ICs2NCwyNyBAQCBzdGF0aWMgYm9vbCByZWFkVUludDE2
KGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUsIHNpemVfdCYgb2Zmc2V0
LAogCiB9IC8vIG5hbWVzcGFjZSB7fQogCitDRE1Qcm94eUZhY3RvcnlDbGVhcktleSYgQ0RNUHJv
eHlGYWN0b3J5Q2xlYXJLZXk6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPENETVByb3h5RmFjdG9yeUNsZWFyS2V5PiBzX2ZhY3Rvcnk7CisgICAgcmV0dXJuIHNfZmFj
dG9yeTsKK30KKworQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OkNETVByb3h5RmFjdG9yeUNsZWFy
S2V5KCkgPSBkZWZhdWx0OworQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6On5DRE1Qcm94eUZhY3Rv
cnlDbGVhcktleSgpID0gZGVmYXVsdDsKKworUmVmUHRyPENETVByb3h5PiBDRE1Qcm94eUZhY3Rv
cnlDbGVhcktleTo6Y3JlYXRlQ0RNUHJveHkoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7Cisg
ICAgQVNTRVJUX1VOVVNFRChrZXlTeXN0ZW0sIHN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ0RNUHJveHlDbGVhcktleSgpKTsKK30KKworYm9v
bCBDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0pCit7CisgICAgLy8gYG9yZy53My5jbGVhcmtleWAgaXMgdGhlIG9ubHkgc3Vw
cG9ydGVkIGtleSBzeXN0ZW0uCisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGtleVN5c3RlbSwgIm9yZy53My5jbGVhcmtleSIpOworfQorCiBDRE1Qcm94eUNsZWFyS2V5
Ojp+Q0RNUHJveHlDbGVhcktleSgpCiB7CiAgICAgZ2NyeV9jaXBoZXJfY2xvc2UobV9nY3J5SGFu
ZGxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKaW5kZXggNTAyNDBjOWY4ZDRj
ZTY3YWFiZDFkZmVkMDdiNjZiNTEwNDEyMThiMS4uYmVkNmZhZWZlMDY3MDFhNDdkODMyODViNjgy
N2EzMGNhOTA4YTE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKQEAgLTQw
LDYgKzQwLDIxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ0RNUHJveHlGYWN0
b3J5Q2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNUHJveHlGYWN0b3J5IHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgQ0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXkmIHNpbmdsZXRvbigpOworCisgICAgdmlydHVhbCB+Q0RNUHJveHlGYWN0b3J5Q2xlYXJL
ZXkoKTsKKworICAgIFJlZlB0cjxDRE1Qcm94eT4gY3JlYXRlQ0RNUHJveHkoY29uc3QgU3RyaW5n
JikgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmKSBmaW5h
bDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8Q0RNUHJveHlG
YWN0b3J5Q2xlYXJLZXk+OworICAgIENETVByb3h5RmFjdG9yeUNsZWFyS2V5KCk7Cit9OworCiAv
LyBUaGlzIGlzIHRoZSB0aHJlYWQtc2FmZSBBUEkgdGhhdCBkZWNvZGUgdGhyZWFkcyBzaG91bGQg
dXNlIHRvIG1ha2UgdXNlIG9mIGEKIC8vIHBsYXRmb3JtIENETSBtb2R1bGUuCiBjbGFzcyBDRE1Q
cm94eUNsZWFyS2V5IGZpbmFsIDogcHVibGljIENETVByb3h5LCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8Q0RNUHJveHlDbGVhcktleSwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+
IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401005</attachid>
            <date>2020-06-04 00:12:34 -0700</date>
            <delta_ts>2020-06-04 00:44:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212695-20200604091232.patch</filename>
            <type>text/plain</type>
            <size>12645</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q3OWI1NzFkNGJlZmU4
Zjc3MTc4NTU5MjMyMGFlN2Y3OWExYjQ3Yy4uYzQzYjg5ODY2ZTQ0MzEyNDdjNTA2MWI4NzdlYjIw
MmZmZmFjMTc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA2LTAzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQ3JlYXRlIENETVByb3h5RmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBoYXZl
IHRoZSBDRE1Qcm94eSBjYWJsZWQgaW4gdGhlCisgICAgICAgIHBsYXllciBwcml2YXRlIGFuZCBz
ZXQgdG8gdGhlIGluc3RhbmNlLiBTZXR0aW5nIHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAgIGNy
ZWF0ZSBrZXkgc3luYyBpc3N1ZXMgdGhhdCBhcmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2VzIG5v
dCBzZWVtCisgICAgICAgIHRvIGJlIG5lZWRlZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVkIGlu
IHRoZSBjb25zdHJ1Y3RvciBmcm9tIGEKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdlIGp1
c3QgdXNlIHRoZSBrZXkgc3lzdGVtIHRoYXQgd2UgYWxyZWFkeQorICAgICAgICBoYXZlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZGVjbGFyZXMgYSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1c2Vk
IGluIHRoZQorICAgICAgICBDRE1JbnN0YW5jZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBwcm9w
ZXIgQ0RNUHJveHkgaW4gaXRzCisgICAgICAgIGNvbnN0cnVjdG9yLgorCisgICAgICAgIENETVBy
b3h5RmFjdG9yeUNsZWFyS2V5IGlzIGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFtZXIK
KyAgICAgICAgcGxhdGZvcm0gQ0RNUHJveHlGYWN0b3JpZXMuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBqdXN0IGEgcmV3b3JrLgorCisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3Rl
ckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVy
RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVBy
b3h5Rm9yS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxh
dGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6fkNETVBy
b3h5RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0
YW5jZVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlUHJveHk6OnNldFByb3h5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9D
RE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpD
RE1JbnN0YW5jZUNsZWFyS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlQ2xlYXJL
ZXk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Y2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNs
ZWFyS2V5OjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXk6OmNyZWF0ZUNETVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9y
eUNsZWFyS2V5OjpzdXBwb3J0c0tleVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5Lmg6CisKIDIwMjAtMDUtMzEgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgbmFtZWQgaXRlbSBj
b25kaXRpb24gZm9yIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCmluZGV4IDM2YzdjZWY0YWM2YWQyZGNlYWU2YmE5ODA0
NjRiM2I3Y2Q0OGUzODEuLjM0NWEyN2E2OWIyMDA4MGE1NjQ3ZTI0YWMyNzE5OTQ4YzU1ODBmNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3Jp
ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlGYWN0b3J5
Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVz
KGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQorCit2b2lk
IENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYgZmFjdG9y
eSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9y
eSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOworfQorCit2
b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBm
YWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFpbnMoJmZh
Y3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0b3J5KTsK
K30KKworUmVmPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Qcm94eT4g
Y2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5OjpyZWdp
c3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRzS2V5U3lz
dGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+Y3JlYXRl
Q0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIEFTU0VSVChjZG1Qcm94eSk7CisgICAgcmV0dXJuIGNkbVByb3h5LnJlbGVhc2VOb25O
dWxsKCk7Cit9CisKKyNpZiAhVVNFKEdTVFJFQU1FUikKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5Ojpw
bGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpCit7Cit9
CisjZW5kaWYKKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFN0cmluZyB2ZWN0b3JUb0hleFN0cmlu
Zyhjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGMwMDViNDFjNjA2NzZmZGYzN2Y2
M2Q5OGMwZTA1ZjQ3MTM2MGUyMWEuLmRhOTk5ZWQ4MjA2MDVmY2NiODAwOWM3M2I3NWRkMWExMmY5
MjQyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuaApAQCAtMTU1LDIzICsxNTUsMzkgQEAgcHJpdmF0ZToKICAgICBLZXlTdG9yZSBt
X2tleVN0b3JlOwogfTsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnkoKSB7IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgdW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBSZWY8Q0RNUHJveHk+
IGNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworCisgICAgLy8gUGxh
dGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBsaXN0IG9mCisg
ICAgLy8gcmVnaXN0ZXJlZCBDRE1Qcm94eUZhY3Rvcnkgb2JqZWN0cyBpcyBxdWVyaWVkIGZvciB0
aGUgZmlyc3QgdGltZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwbGF0Zm9ybVJl
Z2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5n
JikgPSAwOworCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8Q0RN
UHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKK307CisKIC8vIEJhc2UgY2xh
c3MgZm9yIGNvbW1vbiBzZXNzaW9uIG1hbmFnZW1lbnQgY29kZSBhbmQgZm9yIGNvbW11bmljYXRp
bmcgbWVzc2FnZXMKIC8vIGZyb20gInJlYWwgQ0RNIiBzdGF0ZSBjaGFuZ2VzIHRvIEpTLgogY2xh
c3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZSB7CiBwdWJsaWM6Ci0gICAg
Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZVBy
b3h5KCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAgICB2b2lkIHNl
dFByb3h5KFJlZjxDRE1Qcm94eT4mJiBwcm94eSkKKyAgICBDRE1JbnN0YW5jZVByb3h5KGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtKQogICAgIHsKLSAgICAgICAgbV9jZG1Qcm94eSA9IFdURk1vdmUo
cHJveHkpOworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBtX2NkbVBy
b3h5ID0gQ0RNUHJveHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbShrZXlTeXN0
ZW0pOwogICAgICAgICBtX2NkbVByb3h5LT5zZXRJbnN0YW5jZSh0aGlzKTsKLSAgICAgICAgLy8g
VGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNoZWQgYWZ0ZXIgYW4gdXBkYXRlKCkuIE5vdAot
ICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFwcHMgYW5kIHRoZSBXM0MgdGVzdC1zdWl0ZSBk
byB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9yZS5oYXNLZXlzKCkpCi0gICAgICAgICAgICBt
X2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tleVN0b3JlKTsKICAgICB9CisgICAgdmlydHVh
bCB+Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1haW4tdGhyZWFkIG9u
bHkuCiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAgICAgdm9pZCBy
ZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAKaW5kZXggZGFhM2NlYzI1MzA2NzE0MGEyZmUzYjUyMjI5NDUwZDA4ODkyM2ZiMy4u
MjIwZTc0MWRmZjRjNDE3ZTlhYTYwZGE2OWIzM2I0MzVjYTIxMGE0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmNwcApAQCAtNDYsNiArNDYsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3N0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IENMRUFSS0VZX0tFWV9TWVNU
RU0geyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgib3JnLnczLmNsZWFya2V5IikgfTsKKwogc3Rh
dGljIFJlZlB0cjxKU09OOjpPYmplY3Q+IHBhcnNlSlNPTk9iamVjdChjb25zdCBTaGFyZWRCdWZm
ZXImIGJ1ZmZlcikKIHsKICAgICAvLyBGYWlsIG9uIGxhcmdlIGJ1ZmZlcnMgd2hvc2Ugc2l6ZSBk
b2Vzbid0IGZpdCBpbnRvIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIuCkBAIC00MzQsNiArNDM2
LDcgQEAgT3B0aW9uYWw8U3RyaW5nPiBDRE1Qcml2YXRlQ2xlYXJLZXk6OnNhbml0aXplU2Vzc2lv
bklkKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKQogICAgIHJldHVybiBzZXNzaW9uSWQ7CiB9CiAK
K0NETUluc3RhbmNlQ2xlYXJLZXk6OkNETUluc3RhbmNlQ2xlYXJLZXkoKSA6IENETUluc3RhbmNl
UHJveHkoQ0xFQVJLRVlfS0VZX1NZU1RFTSkgeyB9OwogQ0RNSW5zdGFuY2VDbGVhcktleTo6fkNE
TUluc3RhbmNlQ2xlYXJLZXkoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgQ0RNSW5zdGFuY2VDbGVhcktl
eTo6aW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uKGNvbnN0IENETUtleVN5c3RlbUNvbmZpZ3Vy
YXRpb24mLCBBbGxvd0Rpc3RpbmN0aXZlSWRlbnRpZmllcnMgZGlzdGluY3RpdmVJZGVudGlmaWVy
cywgQWxsb3dQZXJzaXN0ZW50U3RhdGUgcGVyc2lzdGVudFN0YXRlLCBTdWNjZXNzQ2FsbGJhY2sm
JiBjYWxsYmFjaykKQEAgLTQ1NCw5ICs0NTcsNyBAQCB2b2lkIENETUluc3RhbmNlQ2xlYXJLZXk6
OnNldFN0b3JhZ2VEaXJlY3RvcnkoY29uc3QgU3RyaW5nJikKIAogY29uc3QgU3RyaW5nJiBDRE1J
bnN0YW5jZUNsZWFyS2V5OjprZXlTeXN0ZW0oKSBjb25zdAogewotICAgIHN0YXRpYyBjb25zdCBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNfa2V5U3lzdGVtIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIm9yZy53My5jbGVhcmtleSIpIH07Ci0KLSAgICByZXR1cm4gc19rZXlTeXN0ZW07CisgICAg
cmV0dXJuIENMRUFSS0VZX0tFWV9TWVNURU07CiB9CiAKIFJlZlB0cjxDRE1JbnN0YW5jZVNlc3Np
b24+IENETUluc3RhbmNlQ2xlYXJLZXk6OmNyZWF0ZVNlc3Npb24oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXku
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNs
ZWFyS2V5LmgKaW5kZXggNjY5N2EwNDU1YmVmMjkxNTViZjU5MDM4NGY1MmYwNDI5MWFkYzA3Yi4u
YzNjNjBjNWRkNzQ3YjczYjQ3ZGZiNDQ5MmVhMmMxZmExMTlhZWVjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9D
RE1DbGVhcktleS5oCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoKIAogY2xhc3MgQ0RNSW5zdGFu
Y2VDbGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1JbnN0YW5jZVByb3h5LCBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8Q0RNSW5zdGFuY2VDbGVhcktleT4gewogcHVibGljOgorICAgIENETUluc3RhbmNl
Q2xlYXJLZXkoKTsKICAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZUNsZWFyS2V5KCk7CiAKICAgICAv
LyBDRE1JbnN0YW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAppbmRleCBiODIzOGQ3OTMxOTY2MGM5YzBkZmZjNjMzOWRiMzYyNmFjNTQ5MDNmLi5i
ZjllNmE3ZGQxNDIzOTRjYjUwYWE4YjhmYmYyYjRlYjQ0MDYwMmVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzU1Niw3ICszNTU2LDYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3RhbmNlQXR0YWNoZWQo
Q0RNSW5zdGFuY2UmIGluc3RhbmNlKQogICAgIG1fY2RtSW5zdGFuY2UgPSByZWludGVycHJldF9j
YXN0PENETUluc3RhbmNlUHJveHkqPigmaW5zdGFuY2UpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1f
Y2RtSW5zdGFuY2UpOwogICAgIG1fY2RtSW5zdGFuY2UtPnNldFBsYXllcihtX3BsYXllcik7Ci0g
ICAgbV9jZG1JbnN0YW5jZS0+c2V0UHJveHkoYWRvcHRSZWYoKm5ldyBDRE1Qcm94eUNsZWFyS2V5
KSk7CiAKICAgICBHUmVmUHRyPEdzdENvbnRleHQ+IGNvbnRleHQgPSBhZG9wdEdSZWYoZ3N0X2Nv
bnRleHRfbmV3KCJkcm0tY2RtLXByb3h5IiwgRkFMU0UpKTsKICAgICBHc3RTdHJ1Y3R1cmUqIGNv
bnRleHRTdHJ1Y3R1cmUgPSBnc3RfY29udGV4dF93cml0YWJsZV9zdHJ1Y3R1cmUoY29udGV4dC5n
ZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcAppbmRleCBj
YTM3NTdjOTc0Yjc1YjkyZjFiODdiNDU4ZWQzMmFjOGMwYWRiZDg3Li5mZmZkZTQ1ZWI2YzQwMWMw
YzM4ZDVmYWE3YTAzYmFmYTg1MzlmYjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9y
eUdTdHJlYW1lci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCiAKLSNpbmNsdWRlICJDRE1DbGVhcktleS5oIgorI2luY2x1ZGUgIkNETVByb3h5Q2xl
YXJLZXkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw2ICs0MCwxMSBAQCB2b2lk
IENETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVjdG9yPENETUZhY3Rvcnkq
PiYgZmFjdG9yaWVzKQogICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNETUZhY3RvcnlDbGVhcktleTo6
c2luZ2xldG9uKCkpOwogfQogCit2b2lkIENETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3RvcmllcyhWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIGZhY3RvcmllcykKK3sKKyAgICBm
YWN0b3JpZXMuYXBwZW5kKCZDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c2luZ2xldG9uKCkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVE
X01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKaW5kZXggYzFiNmIz
NGY2ODZmNGNmNzJmZTYxMjUzMjA0MjQ0ZDg1N2ZlNGQzYy4uNGE1ZDlkZTFhY2UzYzgyODkwNWMw
NTdjODdjNDMzY2VmODVhYjMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXku
Y3BwCkBAIC02NCw2ICs2NCwyNyBAQCBzdGF0aWMgYm9vbCByZWFkVUludDE2KGNvbnN0IHVpbnQ4
X3QqIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUsIHNpemVfdCYgb2Zmc2V0LAogCiB9IC8vIG5h
bWVzcGFjZSB7fQogCitDRE1Qcm94eUZhY3RvcnlDbGVhcktleSYgQ0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXk6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENETVByb3h5
RmFjdG9yeUNsZWFyS2V5PiBzX2ZhY3Rvcnk7CisgICAgcmV0dXJuIHNfZmFjdG9yeTsKK30KKwor
Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5KCkgPSBkZWZh
dWx0OworQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6On5DRE1Qcm94eUZhY3RvcnlDbGVhcktleSgp
ID0gZGVmYXVsdDsKKworUmVmUHRyPENETVByb3h5PiBDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6
Y3JlYXRlQ0RNUHJveHkoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisgICAgQVNTRVJUX1VO
VVNFRChrZXlTeXN0ZW0sIHN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpOworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgQ0RNUHJveHlDbGVhcktleSgpKTsKK30KKworYm9vbCBDRE1Qcm94eUZh
Y3RvcnlDbGVhcktleTo6c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0p
Cit7CisgICAgLy8gYG9yZy53My5jbGVhcmtleWAgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIGtleSBz
eXN0ZW0uCisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGtleVN5c3Rl
bSwgIm9yZy53My5jbGVhcmtleSIpOworfQorCiBDRE1Qcm94eUNsZWFyS2V5Ojp+Q0RNUHJveHlD
bGVhcktleSgpCiB7CiAgICAgZ2NyeV9jaXBoZXJfY2xvc2UobV9nY3J5SGFuZGxlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RN
UHJveHlDbGVhcktleS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKaW5kZXggNTAyNDBjOWY4ZDRjZTY3YWFiZDFkZmVk
MDdiNjZiNTEwNDEyMThiMS4uYmVkNmZhZWZlMDY3MDFhNDdkODMyODViNjgyN2EzMGNhOTA4YTE0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKQEAgLTQwLDYgKzQwLDIxIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkg
ZmluYWwgOiBwdWJsaWMgQ0RNUHJveHlGYWN0b3J5IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkmIHNpbmds
ZXRvbigpOworCisgICAgdmlydHVhbCB+Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkoKTsKKworICAg
IFJlZlB0cjxDRE1Qcm94eT4gY3JlYXRlQ0RNUHJveHkoY29uc3QgU3RyaW5nJikgZmluYWw7Cisg
ICAgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKworcHJpdmF0
ZToKKyAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8Q0RNUHJveHlGYWN0b3J5Q2xlYXJL
ZXk+OworICAgIENETVByb3h5RmFjdG9yeUNsZWFyS2V5KCk7Cit9OworCiAvLyBUaGlzIGlzIHRo
ZSB0aHJlYWQtc2FmZSBBUEkgdGhhdCBkZWNvZGUgdGhyZWFkcyBzaG91bGQgdXNlIHRvIG1ha2Ug
dXNlIG9mIGEKIC8vIHBsYXRmb3JtIENETSBtb2R1bGUuCiBjbGFzcyBDRE1Qcm94eUNsZWFyS2V5
IGZpbmFsIDogcHVibGljIENETVByb3h5LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNUHJveHlD
bGVhcktleSwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401006</attachid>
            <date>2020-06-04 00:44:21 -0700</date>
            <delta_ts>2020-06-04 00:53:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212695-20200604094420.patch</filename>
            <type>text/plain</type>
            <size>12691</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q3OWI1NzFkNGJlZmU4
Zjc3MTc4NTU5MjMyMGFlN2Y3OWExYjQ3Yy4uYzQzYjg5ODY2ZTQ0MzEyNDdjNTA2MWI4NzdlYjIw
MmZmZmFjMTc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA2LTAzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQ3JlYXRlIENETVByb3h5RmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBoYXZl
IHRoZSBDRE1Qcm94eSBjYWJsZWQgaW4gdGhlCisgICAgICAgIHBsYXllciBwcml2YXRlIGFuZCBz
ZXQgdG8gdGhlIGluc3RhbmNlLiBTZXR0aW5nIHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAgIGNy
ZWF0ZSBrZXkgc3luYyBpc3N1ZXMgdGhhdCBhcmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2VzIG5v
dCBzZWVtCisgICAgICAgIHRvIGJlIG5lZWRlZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVkIGlu
IHRoZSBjb25zdHJ1Y3RvciBmcm9tIGEKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdlIGp1
c3QgdXNlIHRoZSBrZXkgc3lzdGVtIHRoYXQgd2UgYWxyZWFkeQorICAgICAgICBoYXZlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZGVjbGFyZXMgYSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1c2Vk
IGluIHRoZQorICAgICAgICBDRE1JbnN0YW5jZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBwcm9w
ZXIgQ0RNUHJveHkgaW4gaXRzCisgICAgICAgIGNvbnN0cnVjdG9yLgorCisgICAgICAgIENETVBy
b3h5RmFjdG9yeUNsZWFyS2V5IGlzIGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFtZXIK
KyAgICAgICAgcGxhdGZvcm0gQ0RNUHJveHlGYWN0b3JpZXMuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBqdXN0IGEgcmV3b3JrLgorCisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3Rl
ckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVy
RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVBy
b3h5Rm9yS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxh
dGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6fkNETVBy
b3h5RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0
YW5jZVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlUHJveHk6OnNldFByb3h5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9D
RE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpD
RE1JbnN0YW5jZUNsZWFyS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlQ2xlYXJL
ZXk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Y2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNs
ZWFyS2V5OjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXk6OmNyZWF0ZUNETVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9y
eUNsZWFyS2V5OjpzdXBwb3J0c0tleVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5Lmg6CisKIDIwMjAtMDUtMzEgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgbmFtZWQgaXRlbSBj
b25kaXRpb24gZm9yIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCmluZGV4IDM2YzdjZWY0YWM2YWQyZGNlYWU2YmE5ODA0
NjRiM2I3Y2Q0OGUzODEuLjM0NWEyN2E2OWIyMDA4MGE1NjQ3ZTI0YWMyNzE5OTQ4YzU1ODBmNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3Jp
ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlGYWN0b3J5
Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVz
KGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQorCit2b2lk
IENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYgZmFjdG9y
eSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9y
eSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOworfQorCit2
b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBm
YWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFpbnMoJmZh
Y3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0b3J5KTsK
K30KKworUmVmPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Qcm94eT4g
Y2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5OjpyZWdp
c3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRzS2V5U3lz
dGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+Y3JlYXRl
Q0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIEFTU0VSVChjZG1Qcm94eSk7CisgICAgcmV0dXJuIGNkbVByb3h5LnJlbGVhc2VOb25O
dWxsKCk7Cit9CisKKyNpZiAhVVNFKEdTVFJFQU1FUikKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5Ojpw
bGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpCit7Cit9
CisjZW5kaWYKKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFN0cmluZyB2ZWN0b3JUb0hleFN0cmlu
Zyhjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGMwMDViNDFjNjA2NzZmZGYzN2Y2
M2Q5OGMwZTA1ZjQ3MTM2MGUyMWEuLmRhOTk5ZWQ4MjA2MDVmY2NiODAwOWM3M2I3NWRkMWExMmY5
MjQyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuaApAQCAtMTU1LDIzICsxNTUsMzkgQEAgcHJpdmF0ZToKICAgICBLZXlTdG9yZSBt
X2tleVN0b3JlOwogfTsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnkoKSB7IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgdW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBSZWY8Q0RNUHJveHk+
IGNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworCisgICAgLy8gUGxh
dGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBsaXN0IG9mCisg
ICAgLy8gcmVnaXN0ZXJlZCBDRE1Qcm94eUZhY3Rvcnkgb2JqZWN0cyBpcyBxdWVyaWVkIGZvciB0
aGUgZmlyc3QgdGltZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwbGF0Zm9ybVJl
Z2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5n
JikgPSAwOworCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8Q0RN
UHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKK307CisKIC8vIEJhc2UgY2xh
c3MgZm9yIGNvbW1vbiBzZXNzaW9uIG1hbmFnZW1lbnQgY29kZSBhbmQgZm9yIGNvbW11bmljYXRp
bmcgbWVzc2FnZXMKIC8vIGZyb20gInJlYWwgQ0RNIiBzdGF0ZSBjaGFuZ2VzIHRvIEpTLgogY2xh
c3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZSB7CiBwdWJsaWM6Ci0gICAg
Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZVBy
b3h5KCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAgICB2b2lkIHNl
dFByb3h5KFJlZjxDRE1Qcm94eT4mJiBwcm94eSkKKyAgICBDRE1JbnN0YW5jZVByb3h5KGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtKQogICAgIHsKLSAgICAgICAgbV9jZG1Qcm94eSA9IFdURk1vdmUo
cHJveHkpOworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBtX2NkbVBy
b3h5ID0gQ0RNUHJveHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbShrZXlTeXN0
ZW0pOwogICAgICAgICBtX2NkbVByb3h5LT5zZXRJbnN0YW5jZSh0aGlzKTsKLSAgICAgICAgLy8g
VGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNoZWQgYWZ0ZXIgYW4gdXBkYXRlKCkuIE5vdAot
ICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFwcHMgYW5kIHRoZSBXM0MgdGVzdC1zdWl0ZSBk
byB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9yZS5oYXNLZXlzKCkpCi0gICAgICAgICAgICBt
X2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tleVN0b3JlKTsKICAgICB9CisgICAgdmlydHVh
bCB+Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1haW4tdGhyZWFkIG9u
bHkuCiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAgICAgdm9pZCBy
ZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAKaW5kZXggZGFhM2NlYzI1MzA2NzE0MGEyZmUzYjUyMjI5NDUwZDA4ODkyM2ZiMy4u
NmY0NGNmNTRkN2I3MjBiYWFhY2EwZjNkZDdlOTVkMGEwYWFmODMxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmNwcApAQCAtNDM0LDcgKzQzNCw5IEBAIE9wdGlvbmFsPFN0cmluZz4gQ0RN
UHJpdmF0ZUNsZWFyS2V5OjpzYW5pdGl6ZVNlc3Npb25JZChjb25zdCBTdHJpbmcmIHNlc3Npb25J
ZCkKICAgICByZXR1cm4gc2Vzc2lvbklkOwogfQogCitDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1J
bnN0YW5jZUNsZWFyS2V5KCkgOiBDRE1JbnN0YW5jZVByb3h5KHNfa2V5U3lzdGVtKSB7IH07CiBD
RE1JbnN0YW5jZUNsZWFyS2V5Ojp+Q0RNSW5zdGFuY2VDbGVhcktleSgpID0gZGVmYXVsdDsKK2Nv
bnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gQ0RNSW5zdGFuY2VDbGVhcktleTo6c19rZXlTeXN0
ZW0geyAib3JnLnczLmNsZWFya2V5Il9zIH07CiAKIHZvaWQgQ0RNSW5zdGFuY2VDbGVhcktleTo6
aW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uKGNvbnN0IENETUtleVN5c3RlbUNvbmZpZ3VyYXRp
b24mLCBBbGxvd0Rpc3RpbmN0aXZlSWRlbnRpZmllcnMgZGlzdGluY3RpdmVJZGVudGlmaWVycywg
QWxsb3dQZXJzaXN0ZW50U3RhdGUgcGVyc2lzdGVudFN0YXRlLCBTdWNjZXNzQ2FsbGJhY2smJiBj
YWxsYmFjaykKIHsKQEAgLTQ1NCw4ICs0NTYsNiBAQCB2b2lkIENETUluc3RhbmNlQ2xlYXJLZXk6
OnNldFN0b3JhZ2VEaXJlY3RvcnkoY29uc3QgU3RyaW5nJikKIAogY29uc3QgU3RyaW5nJiBDRE1J
bnN0YW5jZUNsZWFyS2V5OjprZXlTeXN0ZW0oKSBjb25zdAogewotICAgIHN0YXRpYyBjb25zdCBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNfa2V5U3lzdGVtIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIm9yZy53My5jbGVhcmtleSIpIH07Ci0KICAgICByZXR1cm4gc19rZXlTeXN0ZW07CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFy
a2V5L0NETUNsZWFyS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9jbGVhcmtleS9DRE1DbGVhcktleS5oCmluZGV4IDY2OTdhMDQ1NWJlZjI5MTU1YmY1OTAzODRm
NTJmMDQyOTFhZGMwN2IuLjJiN2U4YzFiYTM3MzAzYTA4Y2U3M2NjZmEyOTExMGM4NTRmOTIxYmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFy
a2V5L0NETUNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVk
bWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAK
IGNsYXNzIENETUluc3RhbmNlQ2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2VQcm94
eSwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlQ2xlYXJLZXk+IHsKIHB1YmxpYzoK
KyAgICBDRE1JbnN0YW5jZUNsZWFyS2V5KCk7CiAgICAgdmlydHVhbCB+Q0RNSW5zdGFuY2VDbGVh
cktleSgpOwogCiAgICAgLy8gQ0RNSW5zdGFuY2UKQEAgLTEwMiw2ICsxMDMsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRTdG9yYWdlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAg
IGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKCkgY29uc3QgZmluYWw7CiAgICAgUmVmUHRyPENETUlu
c3RhbmNlU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbigpIGZpbmFsOworCitwcml2YXRlOgorICAgIHN0
YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNfa2V5U3lzdGVtOwogfTsKIAogY2xh
c3MgQ0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2VT
ZXNzaW9uLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXk+
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5k
ZXggYjgyMzhkNzkzMTk2NjBjOWMwZGZmYzYzMzlkYjM2MjZhYzU0OTAzZi4uYmY5ZTZhN2RkMTQy
Mzk0Y2I1MGFhOGI4ZmJmMmI0ZWI0NDA2MDJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTM1NTYsNyArMzU1Niw2IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNl
JiBpbnN0YW5jZSkKICAgICBtX2NkbUluc3RhbmNlID0gcmVpbnRlcnByZXRfY2FzdDxDRE1JbnN0
YW5jZVByb3h5Kj4oJmluc3RhbmNlKTsKICAgICBSRUxFQVNFX0FTU0VSVChtX2NkbUluc3RhbmNl
KTsKICAgICBtX2NkbUluc3RhbmNlLT5zZXRQbGF5ZXIobV9wbGF5ZXIpOwotICAgIG1fY2RtSW5z
dGFuY2UtPnNldFByb3h5KGFkb3B0UmVmKCpuZXcgQ0RNUHJveHlDbGVhcktleSkpOwogCiAgICAg
R1JlZlB0cjxHc3RDb250ZXh0PiBjb250ZXh0ID0gYWRvcHRHUmVmKGdzdF9jb250ZXh0X25ldygi
ZHJtLWNkbS1wcm94eSIsIEZBTFNFKSk7CiAgICAgR3N0U3RydWN0dXJlKiBjb250ZXh0U3RydWN0
dXJlID0gZ3N0X2NvbnRleHRfd3JpdGFibGVfc3RydWN0dXJlKGNvbnRleHQuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1GYWN0b3J5R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKaW5kZXggY2EzNzU3Yzk3NGI3
NWI5MmYxYjg3YjQ1OGVkMzJhYzhjMGFkYmQ4Ny4uZmZmZGU0NWViNmM0MDFjMGMzOGQ1ZmFhN2Ew
M2JhZmE4NTM5ZmI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIu
Y3BwCkBAIC0zMSw3ICszMSw3IEBACiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogCi0j
aW5jbHVkZSAiQ0RNQ2xlYXJLZXkuaCIKKyNpbmNsdWRlICJDRE1Qcm94eUNsZWFyS2V5LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsNiArNDAsMTEgQEAgdm9pZCBDRE1GYWN0b3J5
OjpwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5Kj4mIGZhY3Rvcmll
cykKICAgICBmYWN0b3JpZXMuYXBwZW5kKCZDRE1GYWN0b3J5Q2xlYXJLZXk6OnNpbmdsZXRvbigp
KTsKIH0KIAordm9pZCBDRE1Qcm94eUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMo
VmVjdG9yPENETVByb3h5RmFjdG9yeSo+JiBmYWN0b3JpZXMpCit7CisgICAgZmFjdG9yaWVzLmFw
cGVuZCgmQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnNpbmdsZXRvbigpKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
Q0RNUHJveHlDbGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwCmluZGV4IGMxYjZiMzRmNjg2ZjRjZjcy
ZmU2MTI1MzIwNDI0NGQ4NTdmZTRkM2MuLjRhNWQ5ZGUxYWNlM2M4Mjg5MDVjMDU3Yzg3YzQzM2Nl
Zjg1YWIzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcApAQCAtNjQs
NiArNjQsMjcgQEAgc3RhdGljIGJvb2wgcmVhZFVJbnQxNihjb25zdCB1aW50OF90KiBidWZmZXIs
IHNpemVfdCBidWZmZXJTaXplLCBzaXplX3QmIG9mZnNldCwKIAogfSAvLyBuYW1lc3BhY2Uge30K
IAorQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkmIENETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzaW5n
bGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDRE1Qcm94eUZhY3RvcnlDbGVh
cktleT4gc19mYWN0b3J5OworICAgIHJldHVybiBzX2ZhY3Rvcnk7Cit9CisKK0NETVByb3h5RmFj
dG9yeUNsZWFyS2V5OjpDRE1Qcm94eUZhY3RvcnlDbGVhcktleSgpID0gZGVmYXVsdDsKK0NETVBy
b3h5RmFjdG9yeUNsZWFyS2V5Ojp+Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkoKSA9IGRlZmF1bHQ7
CisKK1JlZlB0cjxDRE1Qcm94eT4gQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OmNyZWF0ZUNETVBy
b3h5KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIEFTU0VSVF9VTlVTRUQoa2V5U3lz
dGVtLCBzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IENETVByb3h5Q2xlYXJLZXkoKSk7Cit9CisKK2Jvb2wgQ0RNUHJveHlGYWN0b3J5Q2xlYXJL
ZXk6OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIC8v
IGBvcmcudzMuY2xlYXJrZXlgIGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBrZXkgc3lzdGVtLgorICAg
IHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShrZXlTeXN0ZW0sICJvcmcudzMu
Y2xlYXJrZXkiKTsKK30KKwogQ0RNUHJveHlDbGVhcktleTo6fkNETVByb3h5Q2xlYXJLZXkoKQog
ewogICAgIGdjcnlfY2lwaGVyX2Nsb3NlKG1fZ2NyeUhhbmRsZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJL
ZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RN
UHJveHlDbGVhcktleS5oCmluZGV4IDUwMjQwYzlmOGQ0Y2U2N2FhYmQxZGZlZDA3YjY2YjUxMDQx
MjE4YjEuLmJlZDZmYWVmZTA2NzAxYTQ3ZDgzMjg1YjY4MjdhMzBjYTkwOGExNDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJv
eHlDbGVhcktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCkBAIC00MCw2ICs0MCwyMSBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NsYXNzIENETVByb3h5RmFjdG9yeUNsZWFyS2V5IGZpbmFsIDogcHVi
bGljIENETVByb3h5RmFjdG9yeSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgc3RhdGljIENETVByb3h5RmFjdG9yeUNsZWFyS2V5JiBzaW5nbGV0b24oKTsKKwor
ICAgIHZpcnR1YWwgfkNETVByb3h5RmFjdG9yeUNsZWFyS2V5KCk7CisKKyAgICBSZWZQdHI8Q0RN
UHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgc3Vw
cG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZnJp
ZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPENETVByb3h5RmFjdG9yeUNsZWFyS2V5PjsKKyAgICBD
RE1Qcm94eUZhY3RvcnlDbGVhcktleSgpOworfTsKKwogLy8gVGhpcyBpcyB0aGUgdGhyZWFkLXNh
ZmUgQVBJIHRoYXQgZGVjb2RlIHRocmVhZHMgc2hvdWxkIHVzZSB0byBtYWtlIHVzZSBvZiBhCiAv
LyBwbGF0Zm9ybSBDRE0gbW9kdWxlLgogY2xhc3MgQ0RNUHJveHlDbGVhcktleSBmaW5hbCA6IHB1
YmxpYyBDRE1Qcm94eSwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETVByb3h5Q2xlYXJLZXksIFdl
YWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401008</attachid>
            <date>2020-06-04 00:53:51 -0700</date>
            <delta_ts>2020-06-10 02:43:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212695-20200604095350.patch</filename>
            <type>text/plain</type>
            <size>11963</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q3OWI1NzFkNGJlZmU4
Zjc3MTc4NTU5MjMyMGFlN2Y3OWExYjQ3Yy4uYzQzYjg5ODY2ZTQ0MzEyNDdjNTA2MWI4NzdlYjIw
MmZmZmFjMTc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA2LTAzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQ3JlYXRlIENETVByb3h5RmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBoYXZl
IHRoZSBDRE1Qcm94eSBjYWJsZWQgaW4gdGhlCisgICAgICAgIHBsYXllciBwcml2YXRlIGFuZCBz
ZXQgdG8gdGhlIGluc3RhbmNlLiBTZXR0aW5nIHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAgIGNy
ZWF0ZSBrZXkgc3luYyBpc3N1ZXMgdGhhdCBhcmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2VzIG5v
dCBzZWVtCisgICAgICAgIHRvIGJlIG5lZWRlZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVkIGlu
IHRoZSBjb25zdHJ1Y3RvciBmcm9tIGEKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdlIGp1
c3QgdXNlIHRoZSBrZXkgc3lzdGVtIHRoYXQgd2UgYWxyZWFkeQorICAgICAgICBoYXZlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZGVjbGFyZXMgYSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1c2Vk
IGluIHRoZQorICAgICAgICBDRE1JbnN0YW5jZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBwcm9w
ZXIgQ0RNUHJveHkgaW4gaXRzCisgICAgICAgIGNvbnN0cnVjdG9yLgorCisgICAgICAgIENETVBy
b3h5RmFjdG9yeUNsZWFyS2V5IGlzIGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFtZXIK
KyAgICAgICAgcGxhdGZvcm0gQ0RNUHJveHlGYWN0b3JpZXMuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBqdXN0IGEgcmV3b3JrLgorCisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3Rl
ckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVy
RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVBy
b3h5Rm9yS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxh
dGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6fkNETVBy
b3h5RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0
YW5jZVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlUHJveHk6OnNldFByb3h5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9D
RE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpD
RE1JbnN0YW5jZUNsZWFyS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlQ2xlYXJL
ZXk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Y2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3Rl
ckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNs
ZWFyS2V5OjpzaW5nbGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXk6OmNyZWF0ZUNETVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9y
eUNsZWFyS2V5OjpzdXBwb3J0c0tleVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5Lmg6CisKIDIwMjAtMDUtMzEgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgbmFtZWQgaXRlbSBj
b25kaXRpb24gZm9yIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCmluZGV4IDM2YzdjZWY0YWM2YWQyZGNlYWU2YmE5ODA0
NjRiM2I3Y2Q0OGUzODEuLjM0NWEyN2E2OWIyMDA4MGE1NjQ3ZTI0YWMyNzE5OTQ4YzU1ODBmNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3Jp
ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlGYWN0b3J5
Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVz
KGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQorCit2b2lk
IENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYgZmFjdG9y
eSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9y
eSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOworfQorCit2
b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBm
YWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFpbnMoJmZh
Y3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0b3J5KTsK
K30KKworUmVmPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Qcm94eT4g
Y2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5OjpyZWdp
c3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRzS2V5U3lz
dGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+Y3JlYXRl
Q0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIEFTU0VSVChjZG1Qcm94eSk7CisgICAgcmV0dXJuIGNkbVByb3h5LnJlbGVhc2VOb25O
dWxsKCk7Cit9CisKKyNpZiAhVVNFKEdTVFJFQU1FUikKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5Ojpw
bGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpCit7Cit9
CisjZW5kaWYKKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFN0cmluZyB2ZWN0b3JUb0hleFN0cmlu
Zyhjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGMwMDViNDFjNjA2NzZmZGYzN2Y2
M2Q5OGMwZTA1ZjQ3MTM2MGUyMWEuLmRhOTk5ZWQ4MjA2MDVmY2NiODAwOWM3M2I3NWRkMWExMmY5
MjQyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuaApAQCAtMTU1LDIzICsxNTUsMzkgQEAgcHJpdmF0ZToKICAgICBLZXlTdG9yZSBt
X2tleVN0b3JlOwogfTsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnkoKSB7IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgdW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBSZWY8Q0RNUHJveHk+
IGNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworCisgICAgLy8gUGxh
dGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBsaXN0IG9mCisg
ICAgLy8gcmVnaXN0ZXJlZCBDRE1Qcm94eUZhY3Rvcnkgb2JqZWN0cyBpcyBxdWVyaWVkIGZvciB0
aGUgZmlyc3QgdGltZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwbGF0Zm9ybVJl
Z2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5n
JikgPSAwOworCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8Q0RN
UHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKK307CisKIC8vIEJhc2UgY2xh
c3MgZm9yIGNvbW1vbiBzZXNzaW9uIG1hbmFnZW1lbnQgY29kZSBhbmQgZm9yIGNvbW11bmljYXRp
bmcgbWVzc2FnZXMKIC8vIGZyb20gInJlYWwgQ0RNIiBzdGF0ZSBjaGFuZ2VzIHRvIEpTLgogY2xh
c3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZSB7CiBwdWJsaWM6Ci0gICAg
Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZVBy
b3h5KCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAgICB2b2lkIHNl
dFByb3h5KFJlZjxDRE1Qcm94eT4mJiBwcm94eSkKKyAgICBDRE1JbnN0YW5jZVByb3h5KGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtKQogICAgIHsKLSAgICAgICAgbV9jZG1Qcm94eSA9IFdURk1vdmUo
cHJveHkpOworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBtX2NkbVBy
b3h5ID0gQ0RNUHJveHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbShrZXlTeXN0
ZW0pOwogICAgICAgICBtX2NkbVByb3h5LT5zZXRJbnN0YW5jZSh0aGlzKTsKLSAgICAgICAgLy8g
VGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNoZWQgYWZ0ZXIgYW4gdXBkYXRlKCkuIE5vdAot
ICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFwcHMgYW5kIHRoZSBXM0MgdGVzdC1zdWl0ZSBk
byB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9yZS5oYXNLZXlzKCkpCi0gICAgICAgICAgICBt
X2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tleVN0b3JlKTsKICAgICB9CisgICAgdmlydHVh
bCB+Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1haW4tdGhyZWFkIG9u
bHkuCiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAgICAgdm9pZCBy
ZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAKaW5kZXggZGFhM2NlYzI1MzA2NzE0MGEyZmUzYjUyMjI5NDUwZDA4ODkyM2ZiMy4u
MWU2NGZhMTY0ZTBhMzVlNDYzM2M2NzgyYjM4Y2M3MTQ2MGI1MDZkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmNwcApAQCAtNDM0LDYgKzQzNCw3IEBAIE9wdGlvbmFsPFN0cmluZz4gQ0RN
UHJpdmF0ZUNsZWFyS2V5OjpzYW5pdGl6ZVNlc3Npb25JZChjb25zdCBTdHJpbmcmIHNlc3Npb25J
ZCkKICAgICByZXR1cm4gc2Vzc2lvbklkOwogfQogCitDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1J
bnN0YW5jZUNsZWFyS2V5KCkgOiBDRE1JbnN0YW5jZVByb3h5KCJvcmcudzMuY2xlYXJrZXkiX3Mp
IHsgfTsKIENETUluc3RhbmNlQ2xlYXJLZXk6On5DRE1JbnN0YW5jZUNsZWFyS2V5KCkgPSBkZWZh
dWx0OwogCiB2b2lkIENETUluc3RhbmNlQ2xlYXJLZXk6OmluaXRpYWxpemVXaXRoQ29uZmlndXJh
dGlvbihjb25zdCBDRE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uJiwgQWxsb3dEaXN0aW5jdGl2ZUlk
ZW50aWZpZXJzIGRpc3RpbmN0aXZlSWRlbnRpZmllcnMsIEFsbG93UGVyc2lzdGVudFN0YXRlIHBl
cnNpc3RlbnRTdGF0ZSwgU3VjY2Vzc0NhbGxiYWNrJiYgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktl
eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RN
Q2xlYXJLZXkuaAppbmRleCA2Njk3YTA0NTViZWYyOTE1NWJmNTkwMzg0ZjUyZjA0MjkxYWRjMDdi
Li5jM2M2MGM1ZGQ3NDdiNzNiNDdkZmI0NDkyZWEyYzFmYTExOWFlZWNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktl
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogCiBjbGFzcyBDRE1JbnN0
YW5jZUNsZWFyS2V5IGZpbmFsIDogcHVibGljIENETUluc3RhbmNlUHJveHksIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxDRE1JbnN0YW5jZUNsZWFyS2V5PiB7CiBwdWJsaWM6CisgICAgQ0RNSW5zdGFu
Y2VDbGVhcktleSgpOwogICAgIHZpcnR1YWwgfkNETUluc3RhbmNlQ2xlYXJLZXkoKTsKIAogICAg
IC8vIENETUluc3RhbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCmluZGV4IGI4MjM4ZDc5MzE5NjYwYzljMGRmZmM2MzM5ZGIzNjI2YWM1NDkwM2Yu
LmJmOWU2YTdkZDE0MjM5NGNiNTBhYThiOGZiZjJiNGViNDQwNjAyZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zNTU2LDcgKzM1NTYs
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hl
ZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCiAgICAgbV9jZG1JbnN0YW5jZSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8Q0RNSW5zdGFuY2VQcm94eSo+KCZpbnN0YW5jZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQo
bV9jZG1JbnN0YW5jZSk7CiAgICAgbV9jZG1JbnN0YW5jZS0+c2V0UGxheWVyKG1fcGxheWVyKTsK
LSAgICBtX2NkbUluc3RhbmNlLT5zZXRQcm94eShhZG9wdFJlZigqbmV3IENETVByb3h5Q2xlYXJL
ZXkpKTsKIAogICAgIEdSZWZQdHI8R3N0Q29udGV4dD4gY29udGV4dCA9IGFkb3B0R1JlZihnc3Rf
Y29udGV4dF9uZXcoImRybS1jZG0tcHJveHkiLCBGQUxTRSkpOwogICAgIEdzdFN0cnVjdHVyZSog
Y29udGV4dFN0cnVjdHVyZSA9IGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0cnVjdHVyZShjb250ZXh0
LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIuY3BwCmluZGV4
IGNhMzc1N2M5NzRiNzViOTJmMWI4N2I0NThlZDMyYWM4YzBhZGJkODcuLmZmZmRlNDVlYjZjNDAx
YzBjMzhkNWZhYTdhMDNiYWZhODUzOWZiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0
b3J5R1N0cmVhbWVyLmNwcApAQCAtMzEsNyArMzEsNyBAQAogCiAjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKIAotI2luY2x1ZGUgIkNETUNsZWFyS2V5LmgiCisjaW5jbHVkZSAiQ0RNUHJveHlD
bGVhcktleS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDYgKzQwLDExIEBAIHZv
aWQgQ0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9y
eSo+JiBmYWN0b3JpZXMpCiAgICAgZmFjdG9yaWVzLmFwcGVuZCgmQ0RNRmFjdG9yeUNsZWFyS2V5
OjpzaW5nbGV0b24oKSk7CiB9CiAKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5OjpwbGF0Zm9ybVJlZ2lz
dGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYgZmFjdG9yaWVzKQoreworICAg
IGZhY3Rvcmllcy5hcHBlbmQoJkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24oKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAppbmRleCBjMWI2
YjM0ZjY4NmY0Y2Y3MmZlNjEyNTMyMDQyNDRkODU3ZmU0ZDNjLi40YTVkOWRlMWFjZTNjODI4OTA1
YzA1N2M4N2M0MzNjZWY4NWFiMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktl
eS5jcHAKQEAgLTY0LDYgKzY0LDI3IEBAIHN0YXRpYyBib29sIHJlYWRVSW50MTYoY29uc3QgdWlu
dDhfdCogYnVmZmVyLCBzaXplX3QgYnVmZmVyU2l6ZSwgc2l6ZV90JiBvZmZzZXQsCiAKIH0gLy8g
bmFtZXNwYWNlIHt9CiAKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5JiBDRE1Qcm94eUZhY3RvcnlD
bGVhcktleTo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q0RNUHJv
eHlGYWN0b3J5Q2xlYXJLZXk+IHNfZmFjdG9yeTsKKyAgICByZXR1cm4gc19mYWN0b3J5OworfQor
CitDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkoKSA9IGRl
ZmF1bHQ7CitDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6fkNETVByb3h5RmFjdG9yeUNsZWFyS2V5
KCkgPSBkZWZhdWx0OworCitSZWZQdHI8Q0RNUHJveHk+IENETVByb3h5RmFjdG9yeUNsZWFyS2V5
OjpjcmVhdGVDRE1Qcm94eShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKK3sKKyAgICBBU1NFUlRf
VU5VU0VEKGtleVN5c3RlbSwgc3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDRE1Qcm94eUNsZWFyS2V5KCkpOworfQorCitib29sIENETVByb3h5
RmFjdG9yeUNsZWFyS2V5OjpzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3Rl
bSkKK3sKKyAgICAvLyBgb3JnLnczLmNsZWFya2V5YCBpcyB0aGUgb25seSBzdXBwb3J0ZWQga2V5
IHN5c3RlbS4KKyAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uoa2V5U3lz
dGVtLCAib3JnLnczLmNsZWFya2V5Iik7Cit9CisKIENETVByb3h5Q2xlYXJLZXk6On5DRE1Qcm94
eUNsZWFyS2V5KCkKIHsKICAgICBnY3J5X2NpcGhlcl9jbG9zZShtX2djcnlIYW5kbGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuaAppbmRleCA1MDI0MGM5ZjhkNGNlNjdhYWJkMWRm
ZWQwN2I2NmI1MTA0MTIxOGIxLi5iZWQ2ZmFlZmUwNjcwMWE0N2Q4MzI4NWI2ODI3YTMwY2E5MDhh
MTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuaApAQCAtNDAsNiArNDAsMjEg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDRE1Qcm94eUZhY3RvcnlDbGVhcktl
eSBmaW5hbCA6IHB1YmxpYyBDRE1Qcm94eUZhY3RvcnkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSYgc2lu
Z2xldG9uKCk7CisKKyAgICB2aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnlDbGVhcktleSgpOworCisg
ICAgUmVmUHRyPENETVByb3h5PiBjcmVhdGVDRE1Qcm94eShjb25zdCBTdHJpbmcmKSBmaW5hbDsK
KyAgICBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpIGZpbmFsOworCitwcml2
YXRlOgorICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxDRE1Qcm94eUZhY3RvcnlDbGVh
cktleT47CisgICAgQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkoKTsKK307CisKIC8vIFRoaXMgaXMg
dGhlIHRocmVhZC1zYWZlIEFQSSB0aGF0IGRlY29kZSB0aHJlYWRzIHNob3VsZCB1c2UgdG8gbWFr
ZSB1c2Ugb2YgYQogLy8gcGxhdGZvcm0gQ0RNIG1vZHVsZS4KIGNsYXNzIENETVByb3h5Q2xlYXJL
ZXkgZmluYWwgOiBwdWJsaWMgQ0RNUHJveHksIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1Qcm94
eUNsZWFyS2V5LCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4gewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401527</attachid>
            <date>2020-06-10 02:43:03 -0700</date>
            <delta_ts>2020-06-10 03:52:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>19151</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMDI0YTA5ZjExYTcxLi42M2ZkM2I4OGIxY2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0NNYWtlTGlzdHMudHh0CkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0KFdURl9QVUJMSUNfSEVBREVS
UwogICAgIEtleVZhbHVlUGFpci5oCiAgICAgTEVCRGVjb2Rlci5oCiAgICAgTGFuZ3VhZ2UuaAor
ICAgIExhemlseUluaXRpYWxpemVkLmgKICAgICBMaXN0RHVtcC5oCiAgICAgTGlzdEhhc2hTZXQu
aAogICAgIExpdmVuZXNzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhemlseUluaXRp
YWxpemVkLmggYi9Tb3VyY2UvV1RGL3d0Zi9MYXppbHlJbml0aWFsaXplZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTY0ZjhlYjNkZjYwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvTGF6aWx5SW5pdGlhbGl6ZWQuaApAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5j
bHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5
cGVuYW1lIFQ+CitjbGFzcyBMYXppbHlJbml0aWFsaXplZCB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF6aWx5SW5pdGlhbGl6ZWQpOwor
ICAgIFdURl9NQUtFX05PTk1PVkFCTEUoTGF6aWx5SW5pdGlhbGl6ZWQpOworCitwdWJsaWM6Cisg
ICAgdXNpbmcgSW5pdGlhbGl6ZXIgPSBGdW5jdGlvbjx2b2lkKFQmKT47CisKKyAgICBMYXppbHlJ
bml0aWFsaXplZCgpID0gZGVsZXRlOworICAgIExhemlseUluaXRpYWxpemVkKEluaXRpYWxpemVy
JiYgaW5pdGlhbGl6ZXIpCisgICAgICAgIDogbV9pbml0aWFsaXplcihXVEZNb3ZlKGluaXRpYWxp
emVyKSkgeyB9CisgICAgfkxhemlseUluaXRpYWxpemVkKCkgPSBkZWZhdWx0OworCisgICAgVCYg
b3BlcmF0b3IqKCkKKyAgICB7CisgICAgICAgIGlmICghbV9pc0luaXRpYWxpemVkLmV4Y2hhbmdl
KHRydWUpKQorICAgICAgICAgICAgbV9pbml0aWFsaXplcihtX3ZhbHVlKTsKKyAgICAgICAgcmV0
dXJuIG1fdmFsdWU7CisgICAgfQorCisgICAgYm9vbCBpc0luaXRpYWxpemVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0luaXRpYWxpemVkLmxvYWQoKTsgfQorCitwcml2YXRlOgorICAgIHN0ZDo6YXRv
bWljPGJvb2w+IG1faXNJbml0aWFsaXplZCB7IGZhbHNlIH07CisgICAgSW5pdGlhbGl6ZXIgbV9p
bml0aWFsaXplcjsKKyAgICBUIG1fdmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwor
dXNpbmcgV1RGOjpMYXppbHlJbml0aWFsaXplZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNmRhZTA3NGIxNWYu
LjNhZWNlMDRiYjc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTA2LTEwICBY
YWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0VNRV0gQ3JlYXRlIENETVByb3h5RmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBo
YXZlIHRoZSBDRE1Qcm94eSBjYWJsZWQgaW4gdGhlCisgICAgICAgIHBsYXllciBwcml2YXRlIGFu
ZCBzZXQgdG8gdGhlIGluc3RhbmNlLiBTZXR0aW5nIHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAg
IGNyZWF0ZSBrZXkgc3luYyBpc3N1ZXMgdGhhdCBhcmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2Vz
IG5vdCBzZWVtCisgICAgICAgIHRvIGJlIG5lZWRlZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVk
IGluIHRoZSBjb25zdHJ1Y3RvciBmcm9tIGEKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdl
IGp1c3QgdXNlIHRoZSBrZXkgc3lzdGVtIHRoYXQgd2UgYWxyZWFkeQorICAgICAgICBoYXZlLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggZGVjbGFyZXMgYSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1
c2VkIGluIHRoZQorICAgICAgICBDRE1JbnN0YW5jZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBw
cm9wZXIgQ0RNUHJveHkgaW4gaXRzCisgICAgICAgIGNvbnN0cnVjdG9yLgorCisgICAgICAgIENE
TVByb3h5RmFjdG9yeUNsZWFyS2V5IGlzIGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFt
ZXIKKyAgICAgICAgcGxhdGZvcm0gQ0RNUHJveHlGYWN0b3JpZXMuCisKKyAgICAgICAgSW5pdGlh
bGl6aW5nIHRvbyBmYXN0IGNyZWF0ZXMgZmxha3luZXNzIGluIHNldmVyYWwgQ2xlYXJLZXkgdGVz
dHMKKyAgICAgICAgYmVjYXVzZSBvZiBhc2tpbmcgZm9yIHByb3RlY3RlZCBtZW1vcnkgc28gd2Ug
bmVlZCB0byBpbml0aWFsaXplIGl0CisgICAgICAgIGluIGEgbGF6eSB3YXkuIEZvciB0aGF0IEkg
Y3JlYXRlZCBXVEY6OkxhemlseUluaXRpYWxpemVkIHRoYXQKKyAgICAgICAgYWxsb3dzIHRvIGp1
c3QgcHJvdmlkZSBhIHR5cGUgd2l0aCBhbiBpbml0aWFsaXplciBhbmQgdXNlIHRoZQorICAgICAg
ICBvcGVyYXRvciogdG8gYWNjZXNzIGl0IGFuZCBnZXQgaXQgaW5pdGlhbGl6ZWQgbGF6aWx5Cisg
ICAgICAgIGF1dG9tYXRpY2FsbHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGEgcmV3
b3JrLgorCisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVyRmFjdG9yeSk6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZh
Y3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6fkNETVByb3h5RmFjdG9yeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0YW5jZVByb3h5KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1JbnN0YW5jZUNsZWFy
S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlQ2xlYXJLZXk6OmtleVN5c3RlbSBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xl
YXJLZXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OmNyZWF0ZUNE
TVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzdXBw
b3J0c0tleVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9DRE1Qcm94eUNsZWFyS2V5Lmg6CisKIDIwMjAtMDYtMDkgIFNhbSBXZWluaWcgIDx3ZWluaWdA
YXBwbGUuY29tPgogCiAgICAgICAgIEV4dGVuZGVkIENvbG9yOiBTd2l0Y2ggQ29sb3JNYWMubW0n
cyBuc0NvbG9yKCkgZnVuY3Rpb24gb3ZlciB0byB1c2luZyBUaW55TFJVQ2FjaGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcAppbmRl
eCBmOWEwNjdiYjFlZjUuLjc1OTc5Y2ZmZDM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcApAQCAtMzgsNiArMzgsNDggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIENETVBy
b3h5RmFjdG9yeTo6cmVnaXN0ZXJlZEZhY3RvcmllcygpCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPj4gZmFjdG9yaWVzOworICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyBvbmNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFsmXSB7CisgICAg
ICAgIHBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFjdG9yaWVzKTsKKyAgICB9KTsKKworICAg
IHJldHVybiBmYWN0b3JpZXM7Cit9CisKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5OjpyZWdpc3RlckZh
Y3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBmYWN0b3J5KQoreworICAgIEFTU0VSVCghcmVnaXN0ZXJl
ZEZhY3RvcmllcygpLmNvbnRhaW5zKCZmYWN0b3J5KSk7CisgICAgcmVnaXN0ZXJlZEZhY3Rvcmll
cygpLmFwcGVuZCgmZmFjdG9yeSk7Cit9CisKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5Ojp1bnJlZ2lz
dGVyRmFjdG9yeShDRE1Qcm94eUZhY3RvcnkmIGZhY3RvcnkpCit7CisgICAgQVNTRVJUKHJlZ2lz
dGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9yeSkpOworICAgIHJlZ2lzdGVyZWRGYWN0
b3JpZXMoKS5yZW1vdmVBbGwoJmZhY3RvcnkpOworfQorCitSZWY8Q0RNUHJveHk+IENETVByb3h5
RmFjdG9yeTo6Y3JlYXRlQ0RNUHJveHlGb3JLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0
ZW0pCit7CisgICAgUmVmUHRyPENETVByb3h5PiBjZG1Qcm94eTsKKyAgICBmb3IgKGF1dG8qIGZh
Y3RvcnkgOiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3JpZXMoKSkgeworICAgICAg
ICBpZiAoZmFjdG9yeS0+c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkgeworICAgICAgICAg
ICAgY2RtUHJveHkgPSBmYWN0b3J5LT5jcmVhdGVDRE1Qcm94eShrZXlTeXN0ZW0pOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUKGNkbVByb3h5KTsKKyAg
ICByZXR1cm4gY2RtUHJveHkucmVsZWFzZU5vbk51bGwoKTsKK30KKworI2lmICFVU0UoR1NUUkVB
TUVSKQordm9pZCBDRE1Qcm94eUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+JikKK3sKK30KKyNlbmRpZgorCiBuYW1lc3BhY2UgewogCiBz
dGF0aWMgU3RyaW5nIHZlY3RvclRvSGV4U3RyaW5nKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmVj
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RN
UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5
LmgKaW5kZXggYjQ2ZWY2NzBhMDU0Li4wZDc3MGQxYjdkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaApAQCAtMTU2LDYgKzE1Niwy
NiBAQCBwcml2YXRlOgogICAgIEtleVN0b3JlIG1fa2V5U3RvcmU7CiB9OwogCitjbGFzcyBDRE1Q
cm94eUZhY3RvcnkgeworcHVibGljOgorICAgIHZpcnR1YWwgfkNETVByb3h5RmFjdG9yeSgpIHsg
fTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRmFjdG9yeShDRE1Q
cm94eUZhY3RvcnkmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVy
RmFjdG9yeShDRE1Qcm94eUZhY3RvcnkmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIFJlZjxDRE1Qcm94eT4gY3JlYXRlQ0RNUHJveHlGb3JLZXlTeXN0ZW0o
Y29uc3QgU3RyaW5nJik7CisKKyAgICAvLyBQbGF0Zm9ybS1zcGVjaWZpYyBmdW5jdGlvbiB0aGF0
J3MgY2FsbGVkIHdoZW4gdGhlIGxpc3Qgb2YKKyAgICAvLyByZWdpc3RlcmVkIENETVByb3h5RmFj
dG9yeSBvYmplY3RzIGlzIHF1ZXJpZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgorICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB2b2lkIHBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVjdG9yPENETVBy
b3h5RmFjdG9yeSo+Jik7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIFJlZlB0cjxDRE1Qcm94
eT4gY3JlYXRlQ0RNUHJveHkoY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmKSA9IDA7CisKK3ByaXZhdGU6CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYgcmVnaXN0ZXJlZEZh
Y3RvcmllcygpOworfTsKKwogY2xhc3MgQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkgOiBwdWJsaWMg
Q0RNSW5zdGFuY2VTZXNzaW9uLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5zdGFuY2VTZXNz
aW9uUHJveHksIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CiB9OwogCkBA
IC0xNjMsMTkgKzE4MywxNSBAQCBjbGFzcyBDRE1JbnN0YW5jZVNlc3Npb25Qcm94eSA6IHB1Ymxp
YyBDRE1JbnN0YW5jZVNlc3Npb24sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cgogLy8gZnJvbSAicmVh
bCBDRE0iIHN0YXRlIGNoYW5nZXMgdG8gSlMuCiBjbGFzcyBDRE1JbnN0YW5jZVByb3h5IDogcHVi
bGljIENETUluc3RhbmNlIHsKIHB1YmxpYzoKLSAgICBDRE1JbnN0YW5jZVByb3h5KCkgPSBkZWZh
dWx0OwotICAgIHZpcnR1YWwgfkNETUluc3RhbmNlUHJveHkoKSA9IGRlZmF1bHQ7Ci0KLSAgICAv
LyBNYWluLXRocmVhZCBvbmx5LgotICAgIHZvaWQgc2V0UHJveHkoUmVmPENETVByb3h5PiYmIHBy
b3h5KQorICAgIENETUluc3RhbmNlUHJveHkoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCiAgICAg
ewotICAgICAgICBtX2NkbVByb3h5ID0gV1RGTW92ZShwcm94eSk7CisgICAgICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgICAgIG1fY2RtUHJveHkgPSBDRE1Qcm94eUZhY3Rvcnk6OmNy
ZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGtleVN5c3RlbSk7CiAgICAgICAgIG1fY2RtUHJveHkt
PnNldEluc3RhbmNlKHRoaXMpOwotICAgICAgICAvLyBUaGUgQ0RNIGluc3RhbmNlIG1heSBiZSBh
dHRhY2hlZCBhZnRlciBhbiB1cGRhdGUoKS4gTm90Ci0gICAgICAgIC8vIHJlY29tbWVuZGVkLCBi
dXQgYXBwcyBhbmQgdGhlIFczQyB0ZXN0LXN1aXRlIGRvIHRoaXMuCi0gICAgICAgIGlmIChtX2tl
eVN0b3JlLmhhc0tleXMoKSkKLSAgICAgICAgICAgIG1fY2RtUHJveHktPnVwZGF0ZUtleVN0b3Jl
KG1fa2V5U3RvcmUpOwogICAgIH0KKyAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZVByb3h5KCkgPSBk
ZWZhdWx0OworCisgICAgLy8gTWFpbi10aHJlYWQgb25seS4KICAgICB2b2lkIG1lcmdlS2V5c0Zy
b20oY29uc3QgS2V5U3RvcmUmKTsKICAgICB2b2lkIHJlbW92ZUFsbEtleXNGcm9tKGNvbnN0IEtl
eVN0b3JlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcAppbmRleCBjZjJkNWYxZGIz
ZWQuLjY1MzIyZWQ5OWU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcApAQCAtNDM0
LDYgKzQzNCw3IEBAIE9wdGlvbmFsPFN0cmluZz4gQ0RNUHJpdmF0ZUNsZWFyS2V5OjpzYW5pdGl6
ZVNlc3Npb25JZChjb25zdCBTdHJpbmcmIHNlc3Npb25JZCkKICAgICByZXR1cm4gc2Vzc2lvbklk
OwogfQogCitDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1JbnN0YW5jZUNsZWFyS2V5KCkgOiBDRE1J
bnN0YW5jZVByb3h5KCJvcmcudzMuY2xlYXJrZXkiX3MpIHsgfTsKIENETUluc3RhbmNlQ2xlYXJL
ZXk6On5DRE1JbnN0YW5jZUNsZWFyS2V5KCkgPSBkZWZhdWx0OwogCiB2b2lkIENETUluc3RhbmNl
Q2xlYXJLZXk6OmluaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbihjb25zdCBDRE1LZXlTeXN0ZW1D
b25maWd1cmF0aW9uJiwgQWxsb3dEaXN0aW5jdGl2ZUlkZW50aWZpZXJzIGRpc3RpbmN0aXZlSWRl
bnRpZmllcnMsIEFsbG93UGVyc2lzdGVudFN0YXRlIHBlcnNpc3RlbnRTdGF0ZSwgU3VjY2Vzc0Nh
bGxiYWNrJiYgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
bmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaAppbmRleCAwMDZjNDVh
ZmNlYjYuLjhiZjM2MjcyYWRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5oCkBAIC05Myw2
ICs5Myw3IEBAIHB1YmxpYzoKIAogY2xhc3MgQ0RNSW5zdGFuY2VDbGVhcktleSBmaW5hbCA6IHB1
YmxpYyBDRE1JbnN0YW5jZVByb3h5LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5zdGFuY2VD
bGVhcktleT4gewogcHVibGljOgorICAgIENETUluc3RhbmNlQ2xlYXJLZXkoKTsKICAgICB2aXJ0
dWFsIH5DRE1JbnN0YW5jZUNsZWFyS2V5KCk7CiAKICAgICAvLyBDRE1JbnN0YW5jZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBhY2M1MWEy
OTcwNjguLjg3MDFhYTY1NjhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKQEAgLTM1MzIsNyArMzUzMiw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJiBpbnN0YW5j
ZSkKICAgICBtX2NkbUluc3RhbmNlID0gcmVpbnRlcnByZXRfY2FzdDxDRE1JbnN0YW5jZVByb3h5
Kj4oJmluc3RhbmNlKTsKICAgICBSRUxFQVNFX0FTU0VSVChtX2NkbUluc3RhbmNlKTsKICAgICBt
X2NkbUluc3RhbmNlLT5zZXRQbGF5ZXIobV9wbGF5ZXIpOwotICAgIG1fY2RtSW5zdGFuY2UtPnNl
dFByb3h5KGFkb3B0UmVmKCpuZXcgQ0RNUHJveHlDbGVhcktleSkpOwogCiAgICAgR1JlZlB0cjxH
c3RDb250ZXh0PiBjb250ZXh0ID0gYWRvcHRHUmVmKGdzdF9jb250ZXh0X25ldygiZHJtLWNkbS1w
cm94eSIsIEZBTFNFKSk7CiAgICAgR3N0U3RydWN0dXJlKiBjb250ZXh0U3RydWN0dXJlID0gZ3N0
X2NvbnRleHRfd3JpdGFibGVfc3RydWN0dXJlKGNvbnRleHQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKaW5kZXggY2EzNzU3Yzk3NGI3Li5mZmZkZTQ1
ZWI2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcApAQCAt
MzEsNyArMzEsNyBAQAogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIAotI2luY2x1ZGUg
IkNETUNsZWFyS2V5LmgiCisjaW5jbHVkZSAiQ0RNUHJveHlDbGVhcktleS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTQwLDYgKzQwLDExIEBAIHZvaWQgQ0RNRmFjdG9yeTo6cGxhdGZv
cm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JiBmYWN0b3JpZXMpCiAgICAg
ZmFjdG9yaWVzLmFwcGVuZCgmQ0RNRmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24oKSk7CiB9CiAK
K3ZvaWQgQ0RNUHJveHlGYWN0b3J5OjpwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxD
RE1Qcm94eUZhY3RvcnkqPiYgZmFjdG9yaWVzKQoreworICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNE
TVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24oKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5
Q2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAppbmRleCBjMWI2YjM0ZjY4NmYuLmRlNDU2MGZlNDg5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwCkBAIC02NCw5ICs2NCwz
MSBAQCBzdGF0aWMgYm9vbCByZWFkVUludDE2KGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90
IGJ1ZmZlclNpemUsIHNpemVfdCYgb2Zmc2V0LAogCiB9IC8vIG5hbWVzcGFjZSB7fQogCitDRE1Q
cm94eUZhY3RvcnlDbGVhcktleSYgQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnNpbmdsZXRvbigp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENETVByb3h5RmFjdG9yeUNsZWFyS2V5PiBz
X2ZhY3Rvcnk7CisgICAgcmV0dXJuIHNfZmFjdG9yeTsKK30KKworQ0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXk6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5KCkgPSBkZWZhdWx0OworQ0RNUHJveHlGYWN0
b3J5Q2xlYXJLZXk6On5DRE1Qcm94eUZhY3RvcnlDbGVhcktleSgpID0gZGVmYXVsdDsKKworUmVm
UHRyPENETVByb3h5PiBDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6Y3JlYXRlQ0RNUHJveHkoY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisgICAgQVNTRVJUX1VOVVNFRChrZXlTeXN0ZW0sIHN1
cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ0RN
UHJveHlDbGVhcktleSgpKTsKK30KKworYm9vbCBDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c3Vw
cG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisgICAgLy8gYG9yZy53
My5jbGVhcmtleWAgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIGtleSBzeXN0ZW0uCisgICAgcmV0dXJu
IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGtleVN5c3RlbSwgIm9yZy53My5jbGVhcmtl
eSIpOworfQorCiBDRE1Qcm94eUNsZWFyS2V5Ojp+Q0RNUHJveHlDbGVhcktleSgpCiB7Ci0gICAg
Z2NyeV9jaXBoZXJfY2xvc2UobV9nY3J5SGFuZGxlKTsKKyAgICBpZiAobV9nQ3J5cHRIYW5kbGUu
aXNJbml0aWFsaXplZCgpKQorICAgICAgICBnY3J5X2NpcGhlcl9jbG9zZSgqbV9nQ3J5cHRIYW5k
bGUpOwogfQogCiBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNTZXRDb3VudGVyVmVjdG9yKGNv
bnN0IGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCkBAIC04Myw3ICsxMDUsNyBAQCBib29sIENE
TVByb3h5Q2xlYXJLZXk6OmNlbmNTZXRDb3VudGVyVmVjdG9yKGNvbnN0IGNlbmNEZWNyeXB0Q29u
dGV4dCYgaW5wdXQpCiAgICAgfSBlbHNlCiAgICAgICAgIG1lbWNweShjdHIsIGlucHV0Lml2LCBD
bGVhcktleTo6SVZTaXplSW5CeXRlcyk7CiAKLSAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVy
cm9yID0gZ2NyeV9jaXBoZXJfc2V0Y3RyKG1fZ2NyeUhhbmRsZSwgY3RyLCBDbGVhcktleTo6SVZT
aXplSW5CeXRlcykpIHsKKyAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9j
aXBoZXJfc2V0Y3RyKCptX2dDcnlwdEhhbmRsZSwgY3RyLCBDbGVhcktleTo6SVZTaXplSW5CeXRl
cykpIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94
eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfc2V0Y3RyKTogJXMiLCBncGdfc3RyZXJyb3Io
Y2lwaGVyRXJyb3IpKTsKICNlbHNlCkBAIC0xMDcsNyArMTI5LDcgQEAgYm9vbCBDRE1Qcm94eUNs
ZWFyS2V5OjpjZW5jU2V0RGVjcnlwdGlvbktleShjb25zdCBjZW5jRGVjcnlwdENvbnRleHQmIGlu
KQogICAgIGlmICgha2V5RGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGdj
cnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX3NldGtleShtX2djcnlIYW5kbGUs
IGtleURhdGEtPmRhdGEoKSwga2V5RGF0YS0+c2l6ZSgpKSkgeworICAgIGlmIChnY3J5X2Vycm9y
X3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9zZXRrZXkoKm1fZ0NyeXB0SGFuZGxlLCBrZXlE
YXRhLT5kYXRhKCksIGtleURhdGEtPnNpemUoKSkpIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAg
ICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJf
c2V0a2V5KTogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVyRXJyb3IpKTsKICNlbHNlCkBAIC0xMjYs
NyArMTQ4LDcgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlwdEZ1bGxTYW1wbGUo
Y2VuY0RlY3J5cHRDb250ZXh0JiBpbikKIAogICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eUNs
ZWFyS2V5IC0gZnVsbC1zYW1wbGUgZGVjcnlwdGlvbjogJXp1IGVuY3J5cHRlZCBieXRlcyIsIGlu
LmVuY3J5cHRlZEJ1ZmZlclNpemVJbkJ5dGVzKTsKIAotICAgIGlmIChnY3J5X2Vycm9yX3QgY2lw
aGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0KG1fZ2NyeUhhbmRsZSwgaW4uZW5jcnlwdGVk
QnVmZmVyLCBpbi5lbmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcywgMCwgMCkpIHsKKyAgICBpZiAo
Z2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlwdCgqbV9nQ3J5cHRI
YW5kbGUsIGluLmVuY3J5cHRlZEJ1ZmZlciwgaW4uZW5jcnlwdGVkQnVmZmVyU2l6ZUluQnl0ZXMs
IDAsIDApKSB7CiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RN
UHJveHlDbGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVyX2RlY3J5cHQpOiAlcyIsIGdwZ19zdHJl
cnJvcihjaXBoZXJFcnJvcikpOwogI2Vsc2UKQEAgLTE3MCw3ICsxOTIsNyBAQCBib29sIENETVBy
b3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0U3Vic2FtcGxlZChjZW5jRGVjcnlwdENvbnRleHQmIGlu
cHV0KQogICAgICAgICBpZiAoc3Vic2FtcGxlTnVtRW5jcnlwdGVkQnl0ZXMpIHsKICAgICAgICAg
ICAgIExPRyhFTUUsICJFTUUgLSBzdWJzYW1wbGUgaW5kZXggJXUgLSAldSBieXRlcyBlbmNyeXB0
ZWQgKCVsdSBieXRlcyBsZWZ0IHRvIGRlY3J5cHQpIiwgc3Vic2FtcGxlSW5kZXgsIHN1YnNhbXBs
ZU51bUVuY3J5cHRlZEJ5dGVzLCBpbnB1dC5lbmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcyAtIGVu
Y3J5cHRlZEJ1ZmZlckJ5dGVPZmZzZXQpOwogCi0gICAgICAgICAgICBpZiAoZ2NyeV9lcnJvcl90
IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlwdChtX2djcnlIYW5kbGUsIGlucHV0LmVu
Y3J5cHRlZEJ1ZmZlciArIGVuY3J5cHRlZEJ1ZmZlckJ5dGVPZmZzZXQsIHN1YnNhbXBsZU51bUVu
Y3J5cHRlZEJ5dGVzLCAwLCAwKSkgeworICAgICAgICAgICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBo
ZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQoKm1fZ0NyeXB0SGFuZGxlLCBpbnB1dC5lbmNy
eXB0ZWRCdWZmZXIgKyBlbmNyeXB0ZWRCdWZmZXJCeXRlT2Zmc2V0LCBzdWJzYW1wbGVOdW1FbmNy
eXB0ZWRCeXRlcywgMCwgMCkpIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgICAgICAgICAg
TE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9kZWNy
eXB0KTogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVyRXJyb3IpKTsKICNlbHNlCkBAIC0xOTQsOSAr
MjE2LDkgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlwdChDRE1Qcm94eUNsZWFy
S2V5OjpjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0KQogICAgIHJldHVybiBpbnB1dC5pc1N1YnNh
bXBsZWQoKSA/IGNlbmNEZWNyeXB0U3Vic2FtcGxlZChpbnB1dCkgOiBjZW5jRGVjcnlwdEZ1bGxT
YW1wbGUoaW5wdXQpOwogfQogCi12b2lkIENETVByb3h5Q2xlYXJLZXk6OmluaXRpYWxpemVHY3J5
cHQoKQordm9pZCBDRE1Qcm94eUNsZWFyS2V5Ojppbml0aWFsaXplR0NyeXB0KGdjcnlfY2lwaGVy
X2hkX3QmIGdDcnlwdEhhbmRsZSkKIHsKLSAgICBpZiAoZ2NyeV9lcnJvcl90IGVycm9yID0gZ2Ny
eV9jaXBoZXJfb3BlbigmbV9nY3J5SGFuZGxlLCBHQ1JZX0NJUEhFUl9BRVMxMjgsIEdDUllfQ0lQ
SEVSX01PREVfQ1RSLCBHQ1JZX0NJUEhFUl9TRUNVUkUpKSB7CisgICAgaWYgKGdjcnlfZXJyb3Jf
dCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJmdDcnlwdEhhbmRsZSwgR0NSWV9DSVBIRVJfQUVT
MTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0NUUiwgR0NSWV9DSVBIRVJfU0VDVVJFKSkgewogI2lmICFM
T0dfRElTQUJMRUQKICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBF
UlJPUihnY3J5X2NpcGhlcl9vcGVuKTogJXMiLCBncGdfc3RyZXJyb3IoZXJyb3IpKTsKICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL0NETVByb3h5Q2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCmluZGV4IDUwMjQwYzlmOGQ0Yy4uMmVi
Y2RiODhlYWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuaApAQCAtMzYsMTgg
KzM2LDMxIEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8Z2NyeXB0Lmg+
CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9MYXppbHlJbml0aWFs
aXplZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3JIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNUHJv
eHlGYWN0b3J5IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkmIHNpbmdsZXRvbigpOworCisgICAgdmlydHVh
bCB+Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkoKTsKKworICAgIFJlZlB0cjxDRE1Qcm94eT4gY3Jl
YXRlQ0RNUHJveHkoY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c0tleVN5
c3RlbShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3Mg
TmV2ZXJEZXN0cm95ZWQ8Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk+OworICAgIENETVByb3h5RmFj
dG9yeUNsZWFyS2V5KCk7Cit9OworCiAvLyBUaGlzIGlzIHRoZSB0aHJlYWQtc2FmZSBBUEkgdGhh
dCBkZWNvZGUgdGhyZWFkcyBzaG91bGQgdXNlIHRvIG1ha2UgdXNlIG9mIGEKIC8vIHBsYXRmb3Jt
IENETSBtb2R1bGUuCiBjbGFzcyBDRE1Qcm94eUNsZWFyS2V5IGZpbmFsIDogcHVibGljIENETVBy
b3h5LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNUHJveHlDbGVhcktleSwgV2Vha1B0ckZhY3Rv
cnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsKIHB1YmxpYzoKLSAgICBDRE1Qcm94eUNsZWFyS2V5
KCkKLSAgICB7Ci0gICAgICAgIGluaXRpYWxpemVHY3J5cHQoKTsKLSAgICB9CisgICAgQ0RNUHJv
eHlDbGVhcktleSgpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIH5DRE1Qcm94eUNsZWFyS2V5KCk7
CiAKICAgICAvLyBGSVhNRTogVGhlcmUncyBhIGxhY2sgb2YgY29uc2lzdGVuY3kgYmV0d2VlbiBT
aGFyZWRCdWZmZXJzLApAQCAtODgsNyArMTAxLDggQEAgcHVibGljOgogICAgIGJvb2wgY2VuY0Rl
Y3J5cHQoY2VuY0RlY3J5cHRDb250ZXh0Jik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBpbml0aWFs
aXplR2NyeXB0KCk7CisgICAgZ2NyeV9jaXBoZXJfaGRfdCYgZ0NyeXB0SGFuZGxlKCk7CisgICAg
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdDcnlwdChnY3J5X2NpcGhlcl9oZF90Jik7CiAKICAgICAv
LyBGSVhNRTogRm9yIG5vdyB3ZSBvbmx5IHN1cHBvcnQgQUVTIGluIENUUiBtb2RlLCBpbiB0aGUg
ZnV0dXJlCiAgICAgLy8gd2Ugd2lsbCBzdXJlbHkgaGF2ZSB0byBzdXBwb3J0IG1vcmUgcHJvdGVj
dGlvbiBzY2hlbWVzLiBDYW4gd2UKQEAgLTk5LDcgKzExMyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBjZW5jRGVjcnlwdFN1YnNhbXBsZWQoY2VuY0RlY3J5cHRDb250ZXh0Jik7CiAKICAgICAvLyBG
SVhNRTogSXQgd291bGQgYmUgbmljZSB0byB1c2Ugc29tZXRoaW5nIGluIFdlYkNvcmUgZm9yIGNy
eXB0by4uLgotICAgIGdjcnlfY2lwaGVyX2hkX3QgbV9nY3J5SGFuZGxlOworICAgIExhemlseUlu
aXRpYWxpemVkPGdjcnlfY2lwaGVyX2hkX3Q+IG1fZ0NyeXB0SGFuZGxlIHsgQ0RNUHJveHlDbGVh
cktleTo6aW5pdGlhbGl6ZUdDcnlwdCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401530</attachid>
            <date>2020-06-10 03:52:29 -0700</date>
            <delta_ts>2020-06-10 04:25:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>27802</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk5YWUxNGU0NGEz
OS4uYmVmOTM3MWY2MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTI1Nyw2ICsyNTcsNyBAQAogCQkwRjhGMkI5MDE3MkUwMEYwMDA3REJEQTUgLyogQ29t
cGlsYXRpb25UaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGlsYXRpb25UaHJlYWQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4RjJCOUIxNzJGMjU5NDAwN0RCREE1IC8qIENv
bnZlcnNpb25Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnZlcnNpb25Nb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTMyNzRBMUMxN0Y0QjcwMENGNjU2NCAvKiBCb3guaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTBGOTMyNzRBMUMxN0Y0QjcwMENGNjU2NSAvKiBMYXppbHlJbml0aWFsaXpl
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXppbHlJbml0aWFsaXplZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk0OTU4MzFDNTcxQ0M5MDA0MTNBNDgg
LyogT3JkZXJNYWtlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcmRlck1h
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTVCNjMxMjBDQjRCNzcwMDQ3
OTYzNSAvKiBEZWJ1Z0hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVi
dWdIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTVCNjMyMjBDQjRCNzcw
MDQ3OTYzNSAvKiBEZWJ1Z0hlYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGVidWdIZWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQKaW5kZXggMDI0YTA5ZjExYTcxLi42M2ZkM2I4OGIxY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0CkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAgIEtl
eVZhbHVlUGFpci5oCiAgICAgTEVCRGVjb2Rlci5oCiAgICAgTGFuZ3VhZ2UuaAorICAgIExhemls
eUluaXRpYWxpemVkLmgKICAgICBMaXN0RHVtcC5oCiAgICAgTGlzdEhhc2hTZXQuaAogICAgIExp
dmVuZXNzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhemlseUluaXRpYWxpemVkLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9MYXppbHlJbml0aWFsaXplZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uOTdiNDAyM2NlNDNiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvTGF6aWx5SW5pdGlhbGl6ZWQuaApAQCAtMCwwICsxLDc5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvTm9ubW92YWJsZS5oPgorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIExhemlseUluaXRpYWxpemVkIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShM
YXppbHlJbml0aWFsaXplZCk7CisgICAgV1RGX01BS0VfTk9OTU9WQUJMRShMYXppbHlJbml0aWFs
aXplZCk7CisKK3B1YmxpYzoKKyAgICB1c2luZyBJbml0aWFsaXplciA9IEZ1bmN0aW9uPHZvaWQo
VCYpPjsKKworICAgIExhemlseUluaXRpYWxpemVkKCkgPSBkZWxldGU7CisgICAgTGF6aWx5SW5p
dGlhbGl6ZWQoSW5pdGlhbGl6ZXImJiBpbml0aWFsaXplcikKKyAgICAgICAgOiBtX2luaXRpYWxp
emVyKFdURk1vdmUoaW5pdGlhbGl6ZXIpKSB7IH0KKyAgICB+TGF6aWx5SW5pdGlhbGl6ZWQoKSA9
IGRlZmF1bHQ7CisKKyAgICBUJiBvcGVyYXRvciooKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6
ZUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybiBtX3ZhbHVlOworICAgIH0KKworICAgIFQqIG9w
ZXJhdG9yLT4oKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZUlmTmVlZGVkKCk7CisgICAgICAg
IHJldHVybiAmbV92YWx1ZTsKKyAgICB9CisKKyAgICBib29sIGlzSW5pdGlhbGl6ZWQoKSBjb25z
dCB7IHJldHVybiBtX2lzSW5pdGlhbGl6ZWQubG9hZCgpOyB9CisKK3ByaXZhdGU6CisgICAgaW5s
aW5lIHZvaWQgaW5pdGlhbGl6ZUlmTmVlZGVkKCkKKyAgICB7CisgICAgICAgIGlmICghbV9pc0lu
aXRpYWxpemVkLmV4Y2hhbmdlKHRydWUpKQorICAgICAgICAgICAgbV9pbml0aWFsaXplcihtX3Zh
bHVlKTsKKyAgICB9CisKKyAgICBzdGQ6OmF0b21pYzxib29sPiBtX2lzSW5pdGlhbGl6ZWQgeyBm
YWxzZSB9OworICAgIEluaXRpYWxpemVyIG1faW5pdGlhbGl6ZXI7CisgICAgVCBtX3ZhbHVlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6TGF6aWx5SW5pdGlhbGl6ZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMzZkYWUwNzRiMTVmLi4zYWVjZTA0YmI3NWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1NSBAQAorMjAyMC0wNi0xMCAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2
YXJpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtFTUVdIENyZWF0ZSBDRE1Qcm94eUZhY3RvcnkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjY5NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRs
eSBpbiB0aGUgR1N0cmVhbWVyIHBvcnQgd2UgaGF2ZSB0aGUgQ0RNUHJveHkgY2FibGVkIGluIHRo
ZQorICAgICAgICBwbGF5ZXIgcHJpdmF0ZSBhbmQgc2V0IHRvIHRoZSBpbnN0YW5jZS4gU2V0dGlu
ZyB0aGlzIHRvbyBsYXRlIGNhbgorICAgICAgICBjcmVhdGUga2V5IHN5bmMgaXNzdWVzIHRoYXQg
YXJlIHdvcmtlZCBhcm91bmQuIFRoaXMgZG9lcyBub3Qgc2VlbQorICAgICAgICB0byBiZSBuZWVk
ZWQgYmVjYXVzZSBpdCBjYW4gYmUgY3JlYXRlZCBpbiB0aGUgY29uc3RydWN0b3IgZnJvbSBhCisg
ICAgICAgIENETVByb3h5RmFjdG9yeSBpZiB3ZSBqdXN0IHVzZSB0aGUga2V5IHN5c3RlbSB0aGF0
IHdlIGFscmVhZHkKKyAgICAgICAgaGF2ZS4KKworICAgICAgICBUaGlzIHBhdGNoIGRlY2xhcmVz
IGEgQ0RNUHJveHlGYWN0b3J5IHRoYXQgaXMgdXNlZCBpbiB0aGUKKyAgICAgICAgQ0RNSW5zdGFu
Y2VQcm94eSB0byBpbnN0YW50aWF0ZSB0aGUgcHJvcGVyIENETVByb3h5IGluIGl0cworICAgICAg
ICBjb25zdHJ1Y3Rvci4KKworICAgICAgICBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSBpcyBjcmVh
dGVkIGFuZCBhZGRlZCB0byB0aGUgR1N0cmVhbWVyCisgICAgICAgIHBsYXRmb3JtIENETVByb3h5
RmFjdG9yaWVzLgorCisgICAgICAgIEluaXRpYWxpemluZyB0b28gZmFzdCBjcmVhdGVzIGZsYWt5
bmVzcyBpbiBzZXZlcmFsIENsZWFyS2V5IHRlc3RzCisgICAgICAgIGJlY2F1c2Ugb2YgYXNraW5n
IGZvciBwcm90ZWN0ZWQgbWVtb3J5IHNvIHdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBpdAorICAgICAg
ICBpbiBhIGxhenkgd2F5LiBGb3IgdGhhdCBJIGNyZWF0ZWQgV1RGOjpMYXppbHlJbml0aWFsaXpl
ZCB0aGF0CisgICAgICAgIGFsbG93cyB0byBqdXN0IHByb3ZpZGUgYSB0eXBlIHdpdGggYW4gaW5p
dGlhbGl6ZXIgYW5kIHVzZSB0aGUKKyAgICAgICAgb3BlcmF0b3IqIHRvIGFjY2VzcyBpdCBhbmQg
Z2V0IGl0IGluaXRpYWxpemVkIGxhemlseQorICAgICAgICBhdXRvbWF0aWNhbGx5LgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywganVzdCBhIHJld29yay4KKworICAgICAgICAqIHBsYXRmb3JtL2Vu
Y3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFj
dG9yeTo6cmVnaXN0ZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9y
eTo6dW5yZWdpc3RlckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5
OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94
eUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2VuY3J5cHRlZG1lZGlhL0NETVByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZh
Y3Rvcnk6On5DRE1Qcm94eUZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VQ
cm94eTo6Q0RNSW5zdGFuY2VQcm94eSk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFu
Y2VDbGVhcktleTo6Q0RNSW5zdGFuY2VDbGVhcktleSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1J
bnN0YW5jZUNsZWFyS2V5OjprZXlTeXN0ZW0gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2Vu
Y3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3RhbmNlQXR0
YWNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFj
dG9yeUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OnBs
YXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1Q
cm94eUZhY3RvcnlDbGVhcktleTo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVBy
b3h5RmFjdG9yeUNsZWFyS2V5OjpjcmVhdGVDRE1Qcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c3VwcG9ydHNLZXlTeXN0ZW0pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oOgorCiAyMDIw
LTA2LTA5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHRlbmRl
ZCBDb2xvcjogU3dpdGNoIENvbG9yTWFjLm1tJ3MgbnNDb2xvcigpIGZ1bmN0aW9uIG92ZXIgdG8g
dXNpbmcgVGlueUxSVUNhY2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
bmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNy
eXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKaW5kZXggZjlhMDY3YmIxZWY1Li43NTk3OWNmZmQzNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3Jp
ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlGYWN0b3J5
Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVz
KGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQorCit2b2lk
IENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYgZmFjdG9y
eSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9y
eSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOworfQorCit2
b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBm
YWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFpbnMoJmZh
Y3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0b3J5KTsK
K30KKworUmVmPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Qcm94eT4g
Y2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5OjpyZWdp
c3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRzS2V5U3lz
dGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+Y3JlYXRl
Q0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIEFTU0VSVChjZG1Qcm94eSk7CisgICAgcmV0dXJuIGNkbVByb3h5LnJlbGVhc2VOb25O
dWxsKCk7Cit9CisKKyNpZiAhVVNFKEdTVFJFQU1FUikKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5Ojpw
bGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpCit7Cit9
CisjZW5kaWYKKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFN0cmluZyB2ZWN0b3JUb0hleFN0cmlu
Zyhjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGI0NmVmNjcwYTA1NC4uMGQ3NzBk
MWI3ZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmgKQEAgLTE1Niw2ICsxNTYsMjYgQEAgcHJpdmF0ZToKICAgICBLZXlTdG9yZSBt
X2tleVN0b3JlOwogfTsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnkoKSB7IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgdW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBSZWY8Q0RNUHJveHk+
IGNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworCisgICAgLy8gUGxh
dGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBsaXN0IG9mCisg
ICAgLy8gcmVnaXN0ZXJlZCBDRE1Qcm94eUZhY3Rvcnkgb2JqZWN0cyBpcyBxdWVyaWVkIGZvciB0
aGUgZmlyc3QgdGltZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwbGF0Zm9ybVJl
Z2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5n
JikgPSAwOworCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8Q0RN
UHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKK307CisKIGNsYXNzIENETUlu
c3RhbmNlU2Vzc2lvblByb3h5IDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwgcHVibGljIENh
bk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvblByb3h5LCBXZWFrUHRyRmFjdG9yeUluaXRp
YWxpemF0aW9uOjpFYWdlcj4gewogfTsKIApAQCAtMTYzLDE5ICsxODMsMTUgQEAgY2xhc3MgQ0RN
SW5zdGFuY2VTZXNzaW9uUHJveHkgOiBwdWJsaWMgQ0RNSW5zdGFuY2VTZXNzaW9uLCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHIKIC8vIGZyb20gInJlYWwgQ0RNIiBzdGF0ZSBjaGFuZ2VzIHRvIEpTLgog
Y2xhc3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZSB7CiBwdWJsaWM6Ci0g
ICAgQ0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5DRE1JbnN0YW5j
ZVByb3h5KCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAgICB2b2lk
IHNldFByb3h5KFJlZjxDRE1Qcm94eT4mJiBwcm94eSkKKyAgICBDRE1JbnN0YW5jZVByb3h5KGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtKQogICAgIHsKLSAgICAgICAgbV9jZG1Qcm94eSA9IFdURk1v
dmUocHJveHkpOworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBtX2Nk
bVByb3h5ID0gQ0RNUHJveHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbShrZXlT
eXN0ZW0pOwogICAgICAgICBtX2NkbVByb3h5LT5zZXRJbnN0YW5jZSh0aGlzKTsKLSAgICAgICAg
Ly8gVGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNoZWQgYWZ0ZXIgYW4gdXBkYXRlKCkuIE5v
dAotICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFwcHMgYW5kIHRoZSBXM0MgdGVzdC1zdWl0
ZSBkbyB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9yZS5oYXNLZXlzKCkpCi0gICAgICAgICAg
ICBtX2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tleVN0b3JlKTsKICAgICB9CisgICAgdmly
dHVhbCB+Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1haW4tdGhyZWFk
IG9ubHkuCiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAgICAgdm9p
ZCByZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1D
bGVhcktleS5jcHAKaW5kZXggY2YyZDVmMWRiM2VkLi42NTMyMmVkOTllOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFy
S2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVh
cmtleS9DRE1DbGVhcktleS5jcHAKQEAgLTQzNCw2ICs0MzQsNyBAQCBPcHRpb25hbDxTdHJpbmc+
IENETVByaXZhdGVDbGVhcktleTo6c2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3RyaW5nJiBzZXNz
aW9uSWQpCiAgICAgcmV0dXJuIHNlc3Npb25JZDsKIH0KIAorQ0RNSW5zdGFuY2VDbGVhcktleTo6
Q0RNSW5zdGFuY2VDbGVhcktleSgpIDogQ0RNSW5zdGFuY2VQcm94eSgib3JnLnczLmNsZWFya2V5
Il9zKSB7IH07CiBDRE1JbnN0YW5jZUNsZWFyS2V5Ojp+Q0RNSW5zdGFuY2VDbGVhcktleSgpID0g
ZGVmYXVsdDsKIAogdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5Ojppbml0aWFsaXplV2l0aENvbmZp
Z3VyYXRpb24oY29uc3QgQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYsIEFsbG93RGlzdGluY3Rp
dmVJZGVudGlmaWVycyBkaXN0aW5jdGl2ZUlkZW50aWZpZXJzLCBBbGxvd1BlcnNpc3RlbnRTdGF0
ZSBwZXJzaXN0ZW50U3RhdGUsIFN1Y2Nlc3NDYWxsYmFjayYmIGNhbGxiYWNrKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xl
YXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmgKaW5kZXggMDA2YzQ1YWZjZWI2Li44YmYzNjI3MmFkYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNs
ZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xl
YXJrZXkvQ0RNQ2xlYXJLZXkuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIENE
TUluc3RhbmNlQ2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2VQcm94eSwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlQ2xlYXJLZXk+IHsKIHB1YmxpYzoKKyAgICBDRE1J
bnN0YW5jZUNsZWFyS2V5KCk7CiAgICAgdmlydHVhbCB+Q0RNSW5zdGFuY2VDbGVhcktleSgpOwog
CiAgICAgLy8gQ0RNSW5zdGFuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKaW5kZXggYWNjNTFhMjk3MDY4Li44NzAxYWE2NTY4ZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zNTMyLDcg
KzM1MzIsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VB
dHRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCiAgICAgbV9jZG1JbnN0YW5jZSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8Q0RNSW5zdGFuY2VQcm94eSo+KCZpbnN0YW5jZSk7CiAgICAgUkVMRUFTRV9B
U1NFUlQobV9jZG1JbnN0YW5jZSk7CiAgICAgbV9jZG1JbnN0YW5jZS0+c2V0UGxheWVyKG1fcGxh
eWVyKTsKLSAgICBtX2NkbUluc3RhbmNlLT5zZXRQcm94eShhZG9wdFJlZigqbmV3IENETVByb3h5
Q2xlYXJLZXkpKTsKIAogICAgIEdSZWZQdHI8R3N0Q29udGV4dD4gY29udGV4dCA9IGFkb3B0R1Jl
Zihnc3RfY29udGV4dF9uZXcoImRybS1jZG0tcHJveHkiLCBGQUxTRSkpOwogICAgIEdzdFN0cnVj
dHVyZSogY29udGV4dFN0cnVjdHVyZSA9IGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0cnVjdHVyZShj
b250ZXh0LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIuY3Bw
CmluZGV4IGNhMzc1N2M5NzRiNy4uZmZmZGU0NWViNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
Q0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCiAKLSNpbmNsdWRlICJDRE1DbGVhcktleS5oIgorI2luY2x1ZGUgIkNE
TVByb3h5Q2xlYXJLZXkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw2ICs0MCwx
MSBAQCB2b2lkIENETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVjdG9yPENE
TUZhY3RvcnkqPiYgZmFjdG9yaWVzKQogICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNETUZhY3RvcnlD
bGVhcktleTo6c2luZ2xldG9uKCkpOwogfQogCit2b2lkIENETVByb3h5RmFjdG9yeTo6cGxhdGZv
cm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIGZhY3RvcmllcykK
K3sKKyAgICBmYWN0b3JpZXMuYXBwZW5kKCZDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c2luZ2xl
dG9uKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKaW5k
ZXggYzFiNmIzNGY2ODZmLi5kZTQ1NjBmZTQ4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94
eUNsZWFyS2V5LmNwcApAQCAtNjQsOSArNjQsMzEgQEAgc3RhdGljIGJvb2wgcmVhZFVJbnQxNihj
b25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBidWZmZXJTaXplLCBzaXplX3QmIG9mZnNldCwK
IAogfSAvLyBuYW1lc3BhY2Uge30KIAorQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkmIENETVByb3h5
RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDRE1Qcm94eUZhY3RvcnlDbGVhcktleT4gc19mYWN0b3J5OworICAgIHJldHVybiBzX2ZhY3Rv
cnk7Cit9CisKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpDRE1Qcm94eUZhY3RvcnlDbGVhcktl
eSgpID0gZGVmYXVsdDsKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5Ojp+Q0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXkoKSA9IGRlZmF1bHQ7CisKK1JlZlB0cjxDRE1Qcm94eT4gQ0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXk6OmNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAg
IEFTU0VSVF9VTlVTRUQoa2V5U3lzdGVtLCBzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IENETVByb3h5Q2xlYXJLZXkoKSk7Cit9CisKK2Jvb2wg
Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtKQoreworICAgIC8vIGBvcmcudzMuY2xlYXJrZXlgIGlzIHRoZSBvbmx5IHN1cHBv
cnRlZCBrZXkgc3lzdGVtLgorICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShrZXlTeXN0ZW0sICJvcmcudzMuY2xlYXJrZXkiKTsKK30KKwogQ0RNUHJveHlDbGVhcktleTo6
fkNETVByb3h5Q2xlYXJLZXkoKQogewotICAgIGdjcnlfY2lwaGVyX2Nsb3NlKG1fZ2NyeUhhbmRs
ZSk7CisgICAgaWYgKG1fZ0NyeXB0SGFuZGxlLmlzSW5pdGlhbGl6ZWQoKSkKKyAgICAgICAgZ2Ny
eV9jaXBoZXJfY2xvc2UoKm1fZ0NyeXB0SGFuZGxlKTsKIH0KIAogYm9vbCBDRE1Qcm94eUNsZWFy
S2V5OjpjZW5jU2V0Q291bnRlclZlY3Rvcihjb25zdCBjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0
KQpAQCAtODMsNyArMTA1LDcgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jU2V0Q291bnRl
clZlY3Rvcihjb25zdCBjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0KQogICAgIH0gZWxzZQogICAg
ICAgICBtZW1jcHkoY3RyLCBpbnB1dC5pdiwgQ2xlYXJLZXk6OklWU2l6ZUluQnl0ZXMpOwogCi0g
ICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX3NldGN0cihtX2dj
cnlIYW5kbGUsIGN0ciwgQ2xlYXJLZXk6OklWU2l6ZUluQnl0ZXMpKSB7CisgICAgaWYgKGdjcnlf
ZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX3NldGN0cigqbV9nQ3J5cHRIYW5kbGUs
IGN0ciwgQ2xlYXJLZXk6OklWU2l6ZUluQnl0ZXMpKSB7CiAjaWYgIUxPR19ESVNBQkxFRAogICAg
ICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVy
X3NldGN0cik6ICVzIiwgZ3BnX3N0cmVycm9yKGNpcGhlckVycm9yKSk7CiAjZWxzZQpAQCAtMTA3
LDcgKzEyOSw3IEBAIGJvb2wgQ0RNUHJveHlDbGVhcktleTo6Y2VuY1NldERlY3J5cHRpb25LZXko
Y29uc3QgY2VuY0RlY3J5cHRDb250ZXh0JiBpbikKICAgICBpZiAoIWtleURhdGEpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5
X2NpcGhlcl9zZXRrZXkobV9nY3J5SGFuZGxlLCBrZXlEYXRhLT5kYXRhKCksIGtleURhdGEtPnNp
emUoKSkpIHsKKyAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJf
c2V0a2V5KCptX2dDcnlwdEhhbmRsZSwga2V5RGF0YS0+ZGF0YSgpLCBrZXlEYXRhLT5zaXplKCkp
KSB7CiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlD
bGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVyX3NldGtleSk6ICVzIiwgZ3BnX3N0cmVycm9yKGNp
cGhlckVycm9yKSk7CiAjZWxzZQpAQCAtMTI2LDcgKzE0OCw3IEBAIGJvb2wgQ0RNUHJveHlDbGVh
cktleTo6Y2VuY0RlY3J5cHRGdWxsU2FtcGxlKGNlbmNEZWNyeXB0Q29udGV4dCYgaW4pCiAKICAg
ICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIGZ1bGwtc2FtcGxlIGRlY3J5cHRp
b246ICV6dSBlbmNyeXB0ZWQgYnl0ZXMiLCBpbi5lbmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcyk7
CiAKLSAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlw
dChtX2djcnlIYW5kbGUsIGluLmVuY3J5cHRlZEJ1ZmZlciwgaW4uZW5jcnlwdGVkQnVmZmVyU2l6
ZUluQnl0ZXMsIDAsIDApKSB7CisgICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdj
cnlfY2lwaGVyX2RlY3J5cHQoKm1fZ0NyeXB0SGFuZGxlLCBpbi5lbmNyeXB0ZWRCdWZmZXIsIGlu
LmVuY3J5cHRlZEJ1ZmZlclNpemVJbkJ5dGVzLCAwLCAwKSkgewogI2lmICFMT0dfRElTQUJMRUQK
ICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2Np
cGhlcl9kZWNyeXB0KTogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVyRXJyb3IpKTsKICNlbHNlCkBA
IC0xNzAsNyArMTkyLDcgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlwdFN1YnNh
bXBsZWQoY2VuY0RlY3J5cHRDb250ZXh0JiBpbnB1dCkKICAgICAgICAgaWYgKHN1YnNhbXBsZU51
bUVuY3J5cHRlZEJ5dGVzKSB7CiAgICAgICAgICAgICBMT0coRU1FLCAiRU1FIC0gc3Vic2FtcGxl
IGluZGV4ICV1IC0gJXUgYnl0ZXMgZW5jcnlwdGVkICglbHUgYnl0ZXMgbGVmdCB0byBkZWNyeXB0
KSIsIHN1YnNhbXBsZUluZGV4LCBzdWJzYW1wbGVOdW1FbmNyeXB0ZWRCeXRlcywgaW5wdXQuZW5j
cnlwdGVkQnVmZmVyU2l6ZUluQnl0ZXMgLSBlbmNyeXB0ZWRCdWZmZXJCeXRlT2Zmc2V0KTsKIAot
ICAgICAgICAgICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2Rl
Y3J5cHQobV9nY3J5SGFuZGxlLCBpbnB1dC5lbmNyeXB0ZWRCdWZmZXIgKyBlbmNyeXB0ZWRCdWZm
ZXJCeXRlT2Zmc2V0LCBzdWJzYW1wbGVOdW1FbmNyeXB0ZWRCeXRlcywgMCwgMCkpIHsKKyAgICAg
ICAgICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0
KCptX2dDcnlwdEhhbmRsZSwgaW5wdXQuZW5jcnlwdGVkQnVmZmVyICsgZW5jcnlwdGVkQnVmZmVy
Qnl0ZU9mZnNldCwgc3Vic2FtcGxlTnVtRW5jcnlwdGVkQnl0ZXMsIDAsIDApKSB7CiAjaWYgIUxP
R19ESVNBQkxFRAogICAgICAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eUNsZWFy
S2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfZGVjcnlwdCk6ICVzIiwgZ3BnX3N0cmVycm9yKGNpcGhl
ckVycm9yKSk7CiAjZWxzZQpAQCAtMTk0LDkgKzIxNiw5IEBAIGJvb2wgQ0RNUHJveHlDbGVhcktl
eTo6Y2VuY0RlY3J5cHQoQ0RNUHJveHlDbGVhcktleTo6Y2VuY0RlY3J5cHRDb250ZXh0JiBpbnB1
dCkKICAgICByZXR1cm4gaW5wdXQuaXNTdWJzYW1wbGVkKCkgPyBjZW5jRGVjcnlwdFN1YnNhbXBs
ZWQoaW5wdXQpIDogY2VuY0RlY3J5cHRGdWxsU2FtcGxlKGlucHV0KTsKIH0KIAotdm9pZCBDRE1Q
cm94eUNsZWFyS2V5Ojppbml0aWFsaXplR2NyeXB0KCkKK3ZvaWQgQ0RNUHJveHlDbGVhcktleTo6
aW5pdGlhbGl6ZUdDcnlwdChnY3J5X2NpcGhlcl9oZF90JiBnQ3J5cHRIYW5kbGUpCiB7Ci0gICAg
aWYgKGdjcnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJm1fZ2NyeUhhbmRsZSwg
R0NSWV9DSVBIRVJfQUVTMTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0NUUiwgR0NSWV9DSVBIRVJfU0VD
VVJFKSkgeworICAgIGlmIChnY3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2NpcGhlcl9vcGVuKCZn
Q3J5cHRIYW5kbGUsIEdDUllfQ0lQSEVSX0FFUzEyOCwgR0NSWV9DSVBIRVJfTU9ERV9DVFIsIEdD
UllfQ0lQSEVSX1NFQ1VSRSkpIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgIExPRyhFTUUs
ICJFTUUgLSBDRE1Qcm94eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfb3Blbik6ICVzIiwg
Z3BnX3N0cmVycm9yKGVycm9yKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJL
ZXkuaAppbmRleCA1MDI0MGM5ZjhkNGMuLjJlYmNkYjg4ZWFlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmgKQEAgLTM2LDE4ICszNiwzMSBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgogI2luY2x1ZGUgPGdjcnlwdC5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4K
KyNpbmNsdWRlIDx3dGYvTGF6aWx5SW5pdGlhbGl6ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
SGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENETVByb3h5RmFjdG9yeUNs
ZWFyS2V5IGZpbmFsIDogcHVibGljIENETVByb3h5RmFjdG9yeSB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIENETVByb3h5RmFjdG9yeUNsZWFyS2V5
JiBzaW5nbGV0b24oKTsKKworICAgIHZpcnR1YWwgfkNETVByb3h5RmFjdG9yeUNsZWFyS2V5KCk7
CisKKyAgICBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmluZyYpIGZp
bmFsOworICAgIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJikgZmluYWw7CisK
K3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPENETVByb3h5RmFjdG9y
eUNsZWFyS2V5PjsKKyAgICBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSgpOworfTsKKwogLy8gVGhp
cyBpcyB0aGUgdGhyZWFkLXNhZmUgQVBJIHRoYXQgZGVjb2RlIHRocmVhZHMgc2hvdWxkIHVzZSB0
byBtYWtlIHVzZSBvZiBhCiAvLyBwbGF0Zm9ybSBDRE0gbW9kdWxlLgogY2xhc3MgQ0RNUHJveHlD
bGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1Qcm94eSwgcHVibGljIENhbk1ha2VXZWFrUHRyPENE
TVByb3h5Q2xlYXJLZXksIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CiBw
dWJsaWM6Ci0gICAgQ0RNUHJveHlDbGVhcktleSgpCi0gICAgewotICAgICAgICBpbml0aWFsaXpl
R2NyeXB0KCk7Ci0gICAgfQorICAgIENETVByb3h5Q2xlYXJLZXkoKSA9IGRlZmF1bHQ7CiAgICAg
dmlydHVhbCB+Q0RNUHJveHlDbGVhcktleSgpOwogCiAgICAgLy8gRklYTUU6IFRoZXJlJ3MgYSBs
YWNrIG9mIGNvbnNpc3RlbmN5IGJldHdlZW4gU2hhcmVkQnVmZmVycywKQEAgLTg4LDcgKzEwMSw4
IEBAIHB1YmxpYzoKICAgICBib29sIGNlbmNEZWNyeXB0KGNlbmNEZWNyeXB0Q29udGV4dCYpOwog
CiBwcml2YXRlOgotICAgIHZvaWQgaW5pdGlhbGl6ZUdjcnlwdCgpOworICAgIGdjcnlfY2lwaGVy
X2hkX3QmIGdDcnlwdEhhbmRsZSgpOworICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVHQ3J5cHQo
Z2NyeV9jaXBoZXJfaGRfdCYpOwogCiAgICAgLy8gRklYTUU6IEZvciBub3cgd2Ugb25seSBzdXBw
b3J0IEFFUyBpbiBDVFIgbW9kZSwgaW4gdGhlIGZ1dHVyZQogICAgIC8vIHdlIHdpbGwgc3VyZWx5
IGhhdmUgdG8gc3VwcG9ydCBtb3JlIHByb3RlY3Rpb24gc2NoZW1lcy4gQ2FuIHdlCkBAIC05OSw3
ICsxMTMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2VuY0RlY3J5cHRTdWJzYW1wbGVkKGNlbmNE
ZWNyeXB0Q29udGV4dCYpOwogCiAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgdG8gdXNl
IHNvbWV0aGluZyBpbiBXZWJDb3JlIGZvciBjcnlwdG8uLi4KLSAgICBnY3J5X2NpcGhlcl9oZF90
IG1fZ2NyeUhhbmRsZTsKKyAgICBMYXppbHlJbml0aWFsaXplZDxnY3J5X2NpcGhlcl9oZF90PiBt
X2dDcnlwdEhhbmRsZSB7IENETVByb3h5Q2xlYXJLZXk6OmluaXRpYWxpemVHQ3J5cHQgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGE4YTUyYTBhMjBlMC4uOGI3N2JlNWM5OTMzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0
cy50eHQKQEAgLTUxLDYgKzUxLDcgQEAgc2V0KFRlc3RXVEZfU09VUkNFUwogICAgIFRlc3RzL1dU
Ri9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmNwcAogICAgIFRlc3RzL1dURi9JdGVyYXRvclJh
bmdlLmNwcAogICAgIFRlc3RzL1dURi9KU09OVmFsdWUuY3BwCisgICAgVGVzdHMvV1RGL0xhemls
eUluaXRpYWxpemVkLmNwcAogICAgIFRlc3RzL1dURi9MRUJEZWNvZGVyLmNwcAogICAgIFRlc3Rz
L1dURi9MaWZlY3ljbGVMb2dnZXIuY3BwCiAgICAgVGVzdHMvV1RGL0xpbmVFbmRpbmcuY3BwCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFiZmI4NDAzZTc1NS4uZDllNTQ4YWRmYTFmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU2LDYgKzU1Niw3IEBACiAJCTdDODNERjE0MUQwQTU5
MEMwMEZFQkNGMyAvKiBSZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNBNDI3QUExODBEQTI2NDAwQ0QyNEQ3IC8qIFJlZi5jcHAgKi87IH07CiAJ
CTdDODNERjE1MUQwQTU5MEMwMEZFQkNGMyAvKiBSZWZDb3VudGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkQxOTk3MUEyREIwNUIwMDZEQ0Yw
QSAvKiBSZWZDb3VudGVyLmNwcCAqLzsgfTsKIAkJN0M4M0RGMTYxRDBBNTkwQzAwRkVCQ0YzIC8q
IFJlZlB0ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRyLmNwcCAqLzsgfTsKKwkJN0M4M0RG
MTcxRDBBNTkwQzAwRkVCQ0YzIC8qIExhemlseUluaXRpYWxpemVkLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTQyN0E4MTgwRDlCMDcwMENEMjRE
OCAvKiBMYXppbHlJbml0aWFsaXplZC5jcHAgKi87IH07CiAJCTdDODNERjFEMUQwQTU5MEMwMEZF
QkNGMyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGRkM0NUE0MUI3M0VCRTIwMDg1QkQ2MiAvKiBMb2NrLmNwcCAqLzsgfTsKIAkJN0M4
M0RGMjQxRDBBNTkwQzAwRkVCQ0YzIC8qIFJldGFpblB0ci5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDI5QjFCMTQ4NkIyNTkwMDgxN0RBOSAvKiBS
ZXRhaW5QdHIubW0gKi87IH07CiAJCTdDODNERjI2MUQwQTU5MEMwMEZFQkNGMyAvKiBTYXR1cmF0
ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNEYzQjExMjE1RTQ1RUFCMDAyMTAwNjkgLyogU2F0dXJhdGVkQXJp
dGhtZXRpY09wZXJhdGlvbnMuY3BwICovOyB9OwpAQCAtMjMyMCw2ICsyMzIxLDcgQEAKIAkJOTM5
QkZFMzkxOEU1NTQ4OTAwODgzMjc1IC8qIFN0cmluZ1RydW5jYXRvci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0cmluZ1RydW5jYXRvci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMjU4OTgxRjkyRkYxNTAwM0U1MTBDIC8qIFRleHRDb2Rl
Yy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZlB0ci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQTQyN0E4MTgwRDlCMDcwMENEMjREOCAvKiBMYXppbHlJbml0
aWFsaXplZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXppbHlJ
bml0aWFsaXplZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTQyN0FBMTgw
REEyNjQwMENEMjRENyAvKiBSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBNDI3QUMxODBE
QTYwRjAwQ0QyNEQ3IC8qIE1vdmVPbmx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vdmVPbmx5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTQyN0FEMTgwREE2MEYwMENEMjRENyAvKiBS
ZWZMb2dnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmTG9nZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC00MDQ2LDYgKzQwNDgsNyBAQAogCQkJCTQ0MkJCRjY4MUM5MUNBRDkwMDE3
MDg3RiAvKiBSZWZMb2dnZXIuY3BwICovLAogCQkJCTkzQTQyN0FEMTgwREE2MEYwMENEMjRENyAv
KiBSZWZMb2dnZXIuaCAqLywKIAkJCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRy
LmNwcCAqLywKKwkJCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDggLyogTGF6aWx5SW5pdGlhbGl6
ZWQuY3BwICovLAogCQkJCUU0QzlBQkM3MUIzREIxNzEwMDQwQTk4NyAvKiBSdW5Mb29wLmNwcCAq
LywKIAkJCQkxNEYzQjExMjE1RTQ1RUFCMDAyMTAwNjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpY09w
ZXJhdGlvbnMuY3BwICovLAogCQkJCTFBMzUyNEFDMUQ2M0E0RkIwMDMxNzI5QiAvKiBTY29wZS5j
cHAgKi8sCkBAIC00NzU2LDYgKzQ3NTksNyBAQAogCQkJCTdDODNERjE1MUQwQTU5MEMwMEZFQkNG
MyAvKiBSZWZDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERUQ3MUQwQTU5MEMw
MEZFQkNGMyAvKiBSZWZMb2dnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RGMTYxRDBB
NTkwQzAwRkVCQ0YzIC8qIFJlZlB0ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QzgzREYxNzFE
MEE1OTBDMDBGRUJDRjMgLyogTGF6aWx5SW5pdGlhbGl6ZWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDRBQzhCQzYyMUQwMjQ1QTAwQ0FGQjM0IC8qIFJldGFpblB0ci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QzgzREYyNDFEMEE1OTBDMDBGRUJDRjMgLyogUmV0YWluUHRyLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M4M0RGMDUxRDBBNTkwQzAwRkVCQ0YzIC8qIFJ1bkxvb3AuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9MYXpp
bHlJbml0aWFsaXplZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9MYXppbHlJ
bml0aWFsaXplZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5m
OGQzZGQ4MDRjOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9MYXppbHlJbml0aWFsaXplZC5jcHAKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkxvZ2dlci5oIgorI2luY2x1ZGUg
PHd0Zi9MYXppbHlJbml0aWFsaXplZC5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCitzdHJ1Y3QgTGF6aWx5SW5pdGlhbGl6ZWRM
b2dnZXIgeworICAgIExhemlseUluaXRpYWxpemVkTG9nZ2VyKCk7CisgICAgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZShMYXppbHlJbml0aWFsaXplZExvZ2dlciYgbG9nZ2VyKTsKKyAgICB2b2lkIGRv
U3R1ZmYoKSB7IH0KK307CisKK0xhemlseUluaXRpYWxpemVkTG9nZ2VyOjpMYXppbHlJbml0aWFs
aXplZExvZ2dlcigpCit7CisgICAgbG9nKCkgPDwgImluc3RhbnRpYXRlZCgpICI7Cit9CisKK3Zv
aWQgTGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI6OmluaXRpYWxpemUoTGF6aWx5SW5pdGlhbGl6ZWRM
b2dnZXImIGxvZ2dlcikKK3sKKyAgICBsb2coKSA8PCAiaW5pdGlhbGl6ZWQoKSAiOworfQorCitU
RVNUKFdURl9MYXppbHlJbml0aWFsaXplZCwgQmFzaWMpCit7CisgICAgeworICAgICAgICBMYXpp
bHlJbml0aWFsaXplZDxMYXppbHlJbml0aWFsaXplZExvZ2dlcj4gdmFsdWUgeyBMYXppbHlJbml0
aWFsaXplZExvZ2dlcjo6aW5pdGlhbGl6ZSB9OworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoImlu
c3RhbnRpYXRlZCgpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAg
TGF6aWx5SW5pdGlhbGl6ZWQ8TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI+IHZhbHVlIHsgTGF6aWx5
SW5pdGlhbGl6ZWRMb2dnZXI6OmluaXRpYWxpemUgfTsKKyAgICAgICAgKCp2YWx1ZSkuZG9TdHVm
ZigpOworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoImluc3RhbnRpYXRlZCgpIGluaXRpYWxpemVk
KCkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworCisgICAgeworICAgICAgICBMYXppbHlJbml0
aWFsaXplZDxMYXppbHlJbml0aWFsaXplZExvZ2dlcj4gdmFsdWUgeyBMYXppbHlJbml0aWFsaXpl
ZExvZ2dlcjo6aW5pdGlhbGl6ZSB9OworICAgICAgICB2YWx1ZS0+ZG9TdHVmZigpOworICAgIH0K
KyAgICBFWFBFQ1RfU1RSRVEoImluc3RhbnRpYXRlZCgpIGluaXRpYWxpemVkKCkgIiwgdGFrZUxv
Z1N0cigpLmNfc3RyKCkpOworCisgICAgeworICAgICAgICBMYXppbHlJbml0aWFsaXplZDxMYXpp
bHlJbml0aWFsaXplZExvZ2dlcj4gdmFsdWUgeyBMYXppbHlJbml0aWFsaXplZExvZ2dlcjo6aW5p
dGlhbGl6ZSB9OworICAgICAgICAoKnZhbHVlKS5kb1N0dWZmKCk7CisgICAgICAgIHZhbHVlLT5k
b1N0dWZmKCk7CisgICAgfQorICAgIEVYUEVDVF9TVFJFUSgiaW5zdGFudGlhdGVkKCkgaW5pdGlh
bGl6ZWQoKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cit9CisKK307Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401532</attachid>
            <date>2020-06-10 04:25:21 -0700</date>
            <delta_ts>2020-06-11 06:29:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>27820</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk5YWUxNGU0NGEz
OS4uYmVmOTM3MWY2MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTI1Nyw2ICsyNTcsNyBAQAogCQkwRjhGMkI5MDE3MkUwMEYwMDA3REJEQTUgLyogQ29t
cGlsYXRpb25UaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGlsYXRpb25UaHJlYWQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4RjJCOUIxNzJGMjU5NDAwN0RCREE1IC8qIENv
bnZlcnNpb25Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnZlcnNpb25Nb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTMyNzRBMUMxN0Y0QjcwMENGNjU2NCAvKiBCb3guaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTBGOTMyNzRBMUMxN0Y0QjcwMENGNjU2NSAvKiBMYXppbHlJbml0aWFsaXpl
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXppbHlJbml0aWFsaXplZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk0OTU4MzFDNTcxQ0M5MDA0MTNBNDgg
LyogT3JkZXJNYWtlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcmRlck1h
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTVCNjMxMjBDQjRCNzcwMDQ3
OTYzNSAvKiBEZWJ1Z0hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVi
dWdIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTVCNjMyMjBDQjRCNzcw
MDQ3OTYzNSAvKiBEZWJ1Z0hlYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGVidWdIZWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQKaW5kZXggMDI0YTA5ZjExYTcxLi42M2ZkM2I4OGIxY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0CkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAgIEtl
eVZhbHVlUGFpci5oCiAgICAgTEVCRGVjb2Rlci5oCiAgICAgTGFuZ3VhZ2UuaAorICAgIExhemls
eUluaXRpYWxpemVkLmgKICAgICBMaXN0RHVtcC5oCiAgICAgTGlzdEhhc2hTZXQuaAogICAgIExp
dmVuZXNzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhemlseUluaXRpYWxpemVkLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9MYXppbHlJbml0aWFsaXplZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uOTdiNDAyM2NlNDNiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvTGF6aWx5SW5pdGlhbGl6ZWQuaApAQCAtMCwwICsxLDc5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvTm9ubW92YWJsZS5oPgorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIExhemlseUluaXRpYWxpemVkIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShM
YXppbHlJbml0aWFsaXplZCk7CisgICAgV1RGX01BS0VfTk9OTU9WQUJMRShMYXppbHlJbml0aWFs
aXplZCk7CisKK3B1YmxpYzoKKyAgICB1c2luZyBJbml0aWFsaXplciA9IEZ1bmN0aW9uPHZvaWQo
VCYpPjsKKworICAgIExhemlseUluaXRpYWxpemVkKCkgPSBkZWxldGU7CisgICAgTGF6aWx5SW5p
dGlhbGl6ZWQoSW5pdGlhbGl6ZXImJiBpbml0aWFsaXplcikKKyAgICAgICAgOiBtX2luaXRpYWxp
emVyKFdURk1vdmUoaW5pdGlhbGl6ZXIpKSB7IH0KKyAgICB+TGF6aWx5SW5pdGlhbGl6ZWQoKSA9
IGRlZmF1bHQ7CisKKyAgICBUJiBvcGVyYXRvciooKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6
ZUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybiBtX3ZhbHVlOworICAgIH0KKworICAgIFQqIG9w
ZXJhdG9yLT4oKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZUlmTmVlZGVkKCk7CisgICAgICAg
IHJldHVybiAmbV92YWx1ZTsKKyAgICB9CisKKyAgICBib29sIGlzSW5pdGlhbGl6ZWQoKSBjb25z
dCB7IHJldHVybiBtX2lzSW5pdGlhbGl6ZWQubG9hZCgpOyB9CisKK3ByaXZhdGU6CisgICAgaW5s
aW5lIHZvaWQgaW5pdGlhbGl6ZUlmTmVlZGVkKCkKKyAgICB7CisgICAgICAgIGlmICghbV9pc0lu
aXRpYWxpemVkLmV4Y2hhbmdlKHRydWUpKQorICAgICAgICAgICAgbV9pbml0aWFsaXplcihtX3Zh
bHVlKTsKKyAgICB9CisKKyAgICBzdGQ6OmF0b21pYzxib29sPiBtX2lzSW5pdGlhbGl6ZWQgeyBm
YWxzZSB9OworICAgIEluaXRpYWxpemVyIG1faW5pdGlhbGl6ZXI7CisgICAgVCBtX3ZhbHVlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6TGF6aWx5SW5pdGlhbGl6ZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMzZkYWUwNzRiMTVmLi4zYWVjZTA0YmI3NWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1NSBAQAorMjAyMC0wNi0xMCAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2
YXJpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtFTUVdIENyZWF0ZSBDRE1Qcm94eUZhY3RvcnkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjY5NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRs
eSBpbiB0aGUgR1N0cmVhbWVyIHBvcnQgd2UgaGF2ZSB0aGUgQ0RNUHJveHkgY2FibGVkIGluIHRo
ZQorICAgICAgICBwbGF5ZXIgcHJpdmF0ZSBhbmQgc2V0IHRvIHRoZSBpbnN0YW5jZS4gU2V0dGlu
ZyB0aGlzIHRvbyBsYXRlIGNhbgorICAgICAgICBjcmVhdGUga2V5IHN5bmMgaXNzdWVzIHRoYXQg
YXJlIHdvcmtlZCBhcm91bmQuIFRoaXMgZG9lcyBub3Qgc2VlbQorICAgICAgICB0byBiZSBuZWVk
ZWQgYmVjYXVzZSBpdCBjYW4gYmUgY3JlYXRlZCBpbiB0aGUgY29uc3RydWN0b3IgZnJvbSBhCisg
ICAgICAgIENETVByb3h5RmFjdG9yeSBpZiB3ZSBqdXN0IHVzZSB0aGUga2V5IHN5c3RlbSB0aGF0
IHdlIGFscmVhZHkKKyAgICAgICAgaGF2ZS4KKworICAgICAgICBUaGlzIHBhdGNoIGRlY2xhcmVz
IGEgQ0RNUHJveHlGYWN0b3J5IHRoYXQgaXMgdXNlZCBpbiB0aGUKKyAgICAgICAgQ0RNSW5zdGFu
Y2VQcm94eSB0byBpbnN0YW50aWF0ZSB0aGUgcHJvcGVyIENETVByb3h5IGluIGl0cworICAgICAg
ICBjb25zdHJ1Y3Rvci4KKworICAgICAgICBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSBpcyBjcmVh
dGVkIGFuZCBhZGRlZCB0byB0aGUgR1N0cmVhbWVyCisgICAgICAgIHBsYXRmb3JtIENETVByb3h5
RmFjdG9yaWVzLgorCisgICAgICAgIEluaXRpYWxpemluZyB0b28gZmFzdCBjcmVhdGVzIGZsYWt5
bmVzcyBpbiBzZXZlcmFsIENsZWFyS2V5IHRlc3RzCisgICAgICAgIGJlY2F1c2Ugb2YgYXNraW5n
IGZvciBwcm90ZWN0ZWQgbWVtb3J5IHNvIHdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBpdAorICAgICAg
ICBpbiBhIGxhenkgd2F5LiBGb3IgdGhhdCBJIGNyZWF0ZWQgV1RGOjpMYXppbHlJbml0aWFsaXpl
ZCB0aGF0CisgICAgICAgIGFsbG93cyB0byBqdXN0IHByb3ZpZGUgYSB0eXBlIHdpdGggYW4gaW5p
dGlhbGl6ZXIgYW5kIHVzZSB0aGUKKyAgICAgICAgb3BlcmF0b3IqIHRvIGFjY2VzcyBpdCBhbmQg
Z2V0IGl0IGluaXRpYWxpemVkIGxhemlseQorICAgICAgICBhdXRvbWF0aWNhbGx5LgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywganVzdCBhIHJld29yay4KKworICAgICAgICAqIHBsYXRmb3JtL2Vu
Y3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFj
dG9yeTo6cmVnaXN0ZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9y
eTo6dW5yZWdpc3RlckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5
OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94
eUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2VuY3J5cHRlZG1lZGlhL0NETVByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZh
Y3Rvcnk6On5DRE1Qcm94eUZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VQ
cm94eTo6Q0RNSW5zdGFuY2VQcm94eSk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFu
Y2VDbGVhcktleTo6Q0RNSW5zdGFuY2VDbGVhcktleSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1J
bnN0YW5jZUNsZWFyS2V5OjprZXlTeXN0ZW0gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2Vu
Y3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3RhbmNlQXR0
YWNoZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFj
dG9yeUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OnBs
YXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1Q
cm94eUZhY3RvcnlDbGVhcktleTo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVBy
b3h5RmFjdG9yeUNsZWFyS2V5OjpjcmVhdGVDRE1Qcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c3VwcG9ydHNLZXlTeXN0ZW0pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oOgorCiAyMDIw
LTA2LTA5ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHRlbmRl
ZCBDb2xvcjogU3dpdGNoIENvbG9yTWFjLm1tJ3MgbnNDb2xvcigpIGZ1bmN0aW9uIG92ZXIgdG8g
dXNpbmcgVGlueUxSVUNhY2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
bmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNy
eXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKaW5kZXggZjlhMDY3YmIxZWY1Li43NTk3OWNmZmQzNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5jcHAKQEAgLTM4LDYgKzM4LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3Jp
ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlGYWN0b3J5
Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVz
KGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQorCit2b2lk
IENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYgZmFjdG9y
eSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9y
eSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOworfQorCit2
b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBm
YWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFpbnMoJmZh
Y3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0b3J5KTsK
K30KKworUmVmPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Qcm94eT4g
Y2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5OjpyZWdp
c3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRzS2V5U3lz
dGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+Y3JlYXRl
Q0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIEFTU0VSVChjZG1Qcm94eSk7CisgICAgcmV0dXJuIGNkbVByb3h5LnJlbGVhc2VOb25O
dWxsKCk7Cit9CisKKyNpZiAhVVNFKEdTVFJFQU1FUikKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5Ojpw
bGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpCit7Cit9
CisjZW5kaWYKKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFN0cmluZyB2ZWN0b3JUb0hleFN0cmlu
Zyhjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGI0NmVmNjcwYTA1NC4uMGQ3NzBk
MWI3ZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmgKQEAgLTE1Niw2ICsxNTYsMjYgQEAgcHJpdmF0ZToKICAgICBLZXlTdG9yZSBt
X2tleVN0b3JlOwogfTsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnkoKSB7IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgdW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBSZWY8Q0RNUHJveHk+
IGNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworCisgICAgLy8gUGxh
dGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBsaXN0IG9mCisg
ICAgLy8gcmVnaXN0ZXJlZCBDRE1Qcm94eUZhY3Rvcnkgb2JqZWN0cyBpcyBxdWVyaWVkIGZvciB0
aGUgZmlyc3QgdGltZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwbGF0Zm9ybVJl
Z2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5n
JikgPSAwOworCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8Q0RN
UHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKK307CisKIGNsYXNzIENETUlu
c3RhbmNlU2Vzc2lvblByb3h5IDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwgcHVibGljIENh
bk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvblByb3h5LCBXZWFrUHRyRmFjdG9yeUluaXRp
YWxpemF0aW9uOjpFYWdlcj4gewogfTsKIApAQCAtMTYzLDE5ICsxODMsMTUgQEAgY2xhc3MgQ0RN
SW5zdGFuY2VTZXNzaW9uUHJveHkgOiBwdWJsaWMgQ0RNSW5zdGFuY2VTZXNzaW9uLCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHIKIC8vIGZyb20gInJlYWwgQ0RNIiBzdGF0ZSBjaGFuZ2VzIHRvIEpTLgog
Y2xhc3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZSB7CiBwdWJsaWM6Ci0g
ICAgQ0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5DRE1JbnN0YW5j
ZVByb3h5KCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAgICB2b2lk
IHNldFByb3h5KFJlZjxDRE1Qcm94eT4mJiBwcm94eSkKKyAgICBDRE1JbnN0YW5jZVByb3h5KGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtKQogICAgIHsKLSAgICAgICAgbV9jZG1Qcm94eSA9IFdURk1v
dmUocHJveHkpOworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBtX2Nk
bVByb3h5ID0gQ0RNUHJveHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbShrZXlT
eXN0ZW0pOwogICAgICAgICBtX2NkbVByb3h5LT5zZXRJbnN0YW5jZSh0aGlzKTsKLSAgICAgICAg
Ly8gVGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNoZWQgYWZ0ZXIgYW4gdXBkYXRlKCkuIE5v
dAotICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFwcHMgYW5kIHRoZSBXM0MgdGVzdC1zdWl0
ZSBkbyB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9yZS5oYXNLZXlzKCkpCi0gICAgICAgICAg
ICBtX2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tleVN0b3JlKTsKICAgICB9CisgICAgdmly
dHVhbCB+Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1haW4tdGhyZWFk
IG9ubHkuCiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAgICAgdm9p
ZCByZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1D
bGVhcktleS5jcHAKaW5kZXggY2YyZDVmMWRiM2VkLi42NTMyMmVkOTllOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFy
S2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVh
cmtleS9DRE1DbGVhcktleS5jcHAKQEAgLTQzNCw2ICs0MzQsNyBAQCBPcHRpb25hbDxTdHJpbmc+
IENETVByaXZhdGVDbGVhcktleTo6c2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3RyaW5nJiBzZXNz
aW9uSWQpCiAgICAgcmV0dXJuIHNlc3Npb25JZDsKIH0KIAorQ0RNSW5zdGFuY2VDbGVhcktleTo6
Q0RNSW5zdGFuY2VDbGVhcktleSgpIDogQ0RNSW5zdGFuY2VQcm94eSgib3JnLnczLmNsZWFya2V5
Il9zKSB7IH07CiBDRE1JbnN0YW5jZUNsZWFyS2V5Ojp+Q0RNSW5zdGFuY2VDbGVhcktleSgpID0g
ZGVmYXVsdDsKIAogdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5Ojppbml0aWFsaXplV2l0aENvbmZp
Z3VyYXRpb24oY29uc3QgQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYsIEFsbG93RGlzdGluY3Rp
dmVJZGVudGlmaWVycyBkaXN0aW5jdGl2ZUlkZW50aWZpZXJzLCBBbGxvd1BlcnNpc3RlbnRTdGF0
ZSBwZXJzaXN0ZW50U3RhdGUsIFN1Y2Nlc3NDYWxsYmFjayYmIGNhbGxiYWNrKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xl
YXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmgKaW5kZXggMDA2YzQ1YWZjZWI2Li44YmYzNjI3MmFkYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNs
ZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xl
YXJrZXkvQ0RNQ2xlYXJLZXkuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAKIGNsYXNzIENE
TUluc3RhbmNlQ2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2VQcm94eSwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlQ2xlYXJLZXk+IHsKIHB1YmxpYzoKKyAgICBDRE1J
bnN0YW5jZUNsZWFyS2V5KCk7CiAgICAgdmlydHVhbCB+Q0RNSW5zdGFuY2VDbGVhcktleSgpOwog
CiAgICAgLy8gQ0RNSW5zdGFuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKaW5kZXggYWNjNTFhMjk3MDY4Li44NzAxYWE2NTY4ZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zNTMyLDcg
KzM1MzIsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5zdGFuY2VB
dHRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCiAgICAgbV9jZG1JbnN0YW5jZSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8Q0RNSW5zdGFuY2VQcm94eSo+KCZpbnN0YW5jZSk7CiAgICAgUkVMRUFTRV9B
U1NFUlQobV9jZG1JbnN0YW5jZSk7CiAgICAgbV9jZG1JbnN0YW5jZS0+c2V0UGxheWVyKG1fcGxh
eWVyKTsKLSAgICBtX2NkbUluc3RhbmNlLT5zZXRQcm94eShhZG9wdFJlZigqbmV3IENETVByb3h5
Q2xlYXJLZXkpKTsKIAogICAgIEdSZWZQdHI8R3N0Q29udGV4dD4gY29udGV4dCA9IGFkb3B0R1Jl
Zihnc3RfY29udGV4dF9uZXcoImRybS1jZG0tcHJveHkiLCBGQUxTRSkpOwogICAgIEdzdFN0cnVj
dHVyZSogY29udGV4dFN0cnVjdHVyZSA9IGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0cnVjdHVyZShj
b250ZXh0LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIuY3Bw
CmluZGV4IGNhMzc1N2M5NzRiNy4uZmZmZGU0NWViNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
Q0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCiAKLSNpbmNsdWRlICJDRE1DbGVhcktleS5oIgorI2luY2x1ZGUgIkNE
TVByb3h5Q2xlYXJLZXkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw2ICs0MCwx
MSBAQCB2b2lkIENETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVjdG9yPENE
TUZhY3RvcnkqPiYgZmFjdG9yaWVzKQogICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNETUZhY3RvcnlD
bGVhcktleTo6c2luZ2xldG9uKCkpOwogfQogCit2b2lkIENETVByb3h5RmFjdG9yeTo6cGxhdGZv
cm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIGZhY3RvcmllcykK
K3sKKyAgICBmYWN0b3JpZXMuYXBwZW5kKCZDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c2luZ2xl
dG9uKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKaW5k
ZXggYzFiNmIzNGY2ODZmLi5kZTQ1NjBmZTQ4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94
eUNsZWFyS2V5LmNwcApAQCAtNjQsOSArNjQsMzEgQEAgc3RhdGljIGJvb2wgcmVhZFVJbnQxNihj
b25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBidWZmZXJTaXplLCBzaXplX3QmIG9mZnNldCwK
IAogfSAvLyBuYW1lc3BhY2Uge30KIAorQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkmIENETVByb3h5
RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDRE1Qcm94eUZhY3RvcnlDbGVhcktleT4gc19mYWN0b3J5OworICAgIHJldHVybiBzX2ZhY3Rv
cnk7Cit9CisKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpDRE1Qcm94eUZhY3RvcnlDbGVhcktl
eSgpID0gZGVmYXVsdDsKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5Ojp+Q0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXkoKSA9IGRlZmF1bHQ7CisKK1JlZlB0cjxDRE1Qcm94eT4gQ0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXk6OmNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAg
IEFTU0VSVF9VTlVTRUQoa2V5U3lzdGVtLCBzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IENETVByb3h5Q2xlYXJLZXkoKSk7Cit9CisKK2Jvb2wg
Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtKQoreworICAgIC8vIGBvcmcudzMuY2xlYXJrZXlgIGlzIHRoZSBvbmx5IHN1cHBv
cnRlZCBrZXkgc3lzdGVtLgorICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShrZXlTeXN0ZW0sICJvcmcudzMuY2xlYXJrZXkiKTsKK30KKwogQ0RNUHJveHlDbGVhcktleTo6
fkNETVByb3h5Q2xlYXJLZXkoKQogewotICAgIGdjcnlfY2lwaGVyX2Nsb3NlKG1fZ2NyeUhhbmRs
ZSk7CisgICAgaWYgKG1fZ0NyeXB0SGFuZGxlLmlzSW5pdGlhbGl6ZWQoKSkKKyAgICAgICAgZ2Ny
eV9jaXBoZXJfY2xvc2UoKm1fZ0NyeXB0SGFuZGxlKTsKIH0KIAogYm9vbCBDRE1Qcm94eUNsZWFy
S2V5OjpjZW5jU2V0Q291bnRlclZlY3Rvcihjb25zdCBjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0
KQpAQCAtODMsNyArMTA1LDcgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jU2V0Q291bnRl
clZlY3Rvcihjb25zdCBjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0KQogICAgIH0gZWxzZQogICAg
ICAgICBtZW1jcHkoY3RyLCBpbnB1dC5pdiwgQ2xlYXJLZXk6OklWU2l6ZUluQnl0ZXMpOwogCi0g
ICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX3NldGN0cihtX2dj
cnlIYW5kbGUsIGN0ciwgQ2xlYXJLZXk6OklWU2l6ZUluQnl0ZXMpKSB7CisgICAgaWYgKGdjcnlf
ZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX3NldGN0cigqbV9nQ3J5cHRIYW5kbGUs
IGN0ciwgQ2xlYXJLZXk6OklWU2l6ZUluQnl0ZXMpKSB7CiAjaWYgIUxPR19ESVNBQkxFRAogICAg
ICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVy
X3NldGN0cik6ICVzIiwgZ3BnX3N0cmVycm9yKGNpcGhlckVycm9yKSk7CiAjZWxzZQpAQCAtMTA3
LDcgKzEyOSw3IEBAIGJvb2wgQ0RNUHJveHlDbGVhcktleTo6Y2VuY1NldERlY3J5cHRpb25LZXko
Y29uc3QgY2VuY0RlY3J5cHRDb250ZXh0JiBpbikKICAgICBpZiAoIWtleURhdGEpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5
X2NpcGhlcl9zZXRrZXkobV9nY3J5SGFuZGxlLCBrZXlEYXRhLT5kYXRhKCksIGtleURhdGEtPnNp
emUoKSkpIHsKKyAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJf
c2V0a2V5KCptX2dDcnlwdEhhbmRsZSwga2V5RGF0YS0+ZGF0YSgpLCBrZXlEYXRhLT5zaXplKCkp
KSB7CiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlD
bGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVyX3NldGtleSk6ICVzIiwgZ3BnX3N0cmVycm9yKGNp
cGhlckVycm9yKSk7CiAjZWxzZQpAQCAtMTI2LDcgKzE0OCw3IEBAIGJvb2wgQ0RNUHJveHlDbGVh
cktleTo6Y2VuY0RlY3J5cHRGdWxsU2FtcGxlKGNlbmNEZWNyeXB0Q29udGV4dCYgaW4pCiAKICAg
ICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIGZ1bGwtc2FtcGxlIGRlY3J5cHRp
b246ICV6dSBlbmNyeXB0ZWQgYnl0ZXMiLCBpbi5lbmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcyk7
CiAKLSAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlw
dChtX2djcnlIYW5kbGUsIGluLmVuY3J5cHRlZEJ1ZmZlciwgaW4uZW5jcnlwdGVkQnVmZmVyU2l6
ZUluQnl0ZXMsIDAsIDApKSB7CisgICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdj
cnlfY2lwaGVyX2RlY3J5cHQoKm1fZ0NyeXB0SGFuZGxlLCBpbi5lbmNyeXB0ZWRCdWZmZXIsIGlu
LmVuY3J5cHRlZEJ1ZmZlclNpemVJbkJ5dGVzLCAwLCAwKSkgewogI2lmICFMT0dfRElTQUJMRUQK
ICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2Np
cGhlcl9kZWNyeXB0KTogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVyRXJyb3IpKTsKICNlbHNlCkBA
IC0xNzAsNyArMTkyLDcgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlwdFN1YnNh
bXBsZWQoY2VuY0RlY3J5cHRDb250ZXh0JiBpbnB1dCkKICAgICAgICAgaWYgKHN1YnNhbXBsZU51
bUVuY3J5cHRlZEJ5dGVzKSB7CiAgICAgICAgICAgICBMT0coRU1FLCAiRU1FIC0gc3Vic2FtcGxl
IGluZGV4ICV1IC0gJXUgYnl0ZXMgZW5jcnlwdGVkICglbHUgYnl0ZXMgbGVmdCB0byBkZWNyeXB0
KSIsIHN1YnNhbXBsZUluZGV4LCBzdWJzYW1wbGVOdW1FbmNyeXB0ZWRCeXRlcywgaW5wdXQuZW5j
cnlwdGVkQnVmZmVyU2l6ZUluQnl0ZXMgLSBlbmNyeXB0ZWRCdWZmZXJCeXRlT2Zmc2V0KTsKIAot
ICAgICAgICAgICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2Rl
Y3J5cHQobV9nY3J5SGFuZGxlLCBpbnB1dC5lbmNyeXB0ZWRCdWZmZXIgKyBlbmNyeXB0ZWRCdWZm
ZXJCeXRlT2Zmc2V0LCBzdWJzYW1wbGVOdW1FbmNyeXB0ZWRCeXRlcywgMCwgMCkpIHsKKyAgICAg
ICAgICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0
KCptX2dDcnlwdEhhbmRsZSwgaW5wdXQuZW5jcnlwdGVkQnVmZmVyICsgZW5jcnlwdGVkQnVmZmVy
Qnl0ZU9mZnNldCwgc3Vic2FtcGxlTnVtRW5jcnlwdGVkQnl0ZXMsIDAsIDApKSB7CiAjaWYgIUxP
R19ESVNBQkxFRAogICAgICAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eUNsZWFy
S2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfZGVjcnlwdCk6ICVzIiwgZ3BnX3N0cmVycm9yKGNpcGhl
ckVycm9yKSk7CiAjZWxzZQpAQCAtMTk0LDkgKzIxNiw5IEBAIGJvb2wgQ0RNUHJveHlDbGVhcktl
eTo6Y2VuY0RlY3J5cHQoQ0RNUHJveHlDbGVhcktleTo6Y2VuY0RlY3J5cHRDb250ZXh0JiBpbnB1
dCkKICAgICByZXR1cm4gaW5wdXQuaXNTdWJzYW1wbGVkKCkgPyBjZW5jRGVjcnlwdFN1YnNhbXBs
ZWQoaW5wdXQpIDogY2VuY0RlY3J5cHRGdWxsU2FtcGxlKGlucHV0KTsKIH0KIAotdm9pZCBDRE1Q
cm94eUNsZWFyS2V5Ojppbml0aWFsaXplR2NyeXB0KCkKK3ZvaWQgQ0RNUHJveHlDbGVhcktleTo6
aW5pdGlhbGl6ZUdDcnlwdChnY3J5X2NpcGhlcl9oZF90JiBnQ3J5cHRIYW5kbGUpCiB7Ci0gICAg
aWYgKGdjcnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJm1fZ2NyeUhhbmRsZSwg
R0NSWV9DSVBIRVJfQUVTMTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0NUUiwgR0NSWV9DSVBIRVJfU0VD
VVJFKSkgeworICAgIGlmIChnY3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2NpcGhlcl9vcGVuKCZn
Q3J5cHRIYW5kbGUsIEdDUllfQ0lQSEVSX0FFUzEyOCwgR0NSWV9DSVBIRVJfTU9ERV9DVFIsIEdD
UllfQ0lQSEVSX1NFQ1VSRSkpIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgIExPRyhFTUUs
ICJFTUUgLSBDRE1Qcm94eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfb3Blbik6ICVzIiwg
Z3BnX3N0cmVycm9yKGVycm9yKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJL
ZXkuaAppbmRleCA1MDI0MGM5ZjhkNGMuLjJlYmNkYjg4ZWFlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmgKQEAgLTM2LDE4ICszNiwzMSBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgogI2luY2x1ZGUgPGdjcnlwdC5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4K
KyNpbmNsdWRlIDx3dGYvTGF6aWx5SW5pdGlhbGl6ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
SGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENETVByb3h5RmFjdG9yeUNs
ZWFyS2V5IGZpbmFsIDogcHVibGljIENETVByb3h5RmFjdG9yeSB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIENETVByb3h5RmFjdG9yeUNsZWFyS2V5
JiBzaW5nbGV0b24oKTsKKworICAgIHZpcnR1YWwgfkNETVByb3h5RmFjdG9yeUNsZWFyS2V5KCk7
CisKKyAgICBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmluZyYpIGZp
bmFsOworICAgIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJikgZmluYWw7CisK
K3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPENETVByb3h5RmFjdG9y
eUNsZWFyS2V5PjsKKyAgICBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSgpOworfTsKKwogLy8gVGhp
cyBpcyB0aGUgdGhyZWFkLXNhZmUgQVBJIHRoYXQgZGVjb2RlIHRocmVhZHMgc2hvdWxkIHVzZSB0
byBtYWtlIHVzZSBvZiBhCiAvLyBwbGF0Zm9ybSBDRE0gbW9kdWxlLgogY2xhc3MgQ0RNUHJveHlD
bGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1Qcm94eSwgcHVibGljIENhbk1ha2VXZWFrUHRyPENE
TVByb3h5Q2xlYXJLZXksIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CiBw
dWJsaWM6Ci0gICAgQ0RNUHJveHlDbGVhcktleSgpCi0gICAgewotICAgICAgICBpbml0aWFsaXpl
R2NyeXB0KCk7Ci0gICAgfQorICAgIENETVByb3h5Q2xlYXJLZXkoKSA9IGRlZmF1bHQ7CiAgICAg
dmlydHVhbCB+Q0RNUHJveHlDbGVhcktleSgpOwogCiAgICAgLy8gRklYTUU6IFRoZXJlJ3MgYSBs
YWNrIG9mIGNvbnNpc3RlbmN5IGJldHdlZW4gU2hhcmVkQnVmZmVycywKQEAgLTg4LDcgKzEwMSw4
IEBAIHB1YmxpYzoKICAgICBib29sIGNlbmNEZWNyeXB0KGNlbmNEZWNyeXB0Q29udGV4dCYpOwog
CiBwcml2YXRlOgotICAgIHZvaWQgaW5pdGlhbGl6ZUdjcnlwdCgpOworICAgIGdjcnlfY2lwaGVy
X2hkX3QmIGdDcnlwdEhhbmRsZSgpOworICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVHQ3J5cHQo
Z2NyeV9jaXBoZXJfaGRfdCYpOwogCiAgICAgLy8gRklYTUU6IEZvciBub3cgd2Ugb25seSBzdXBw
b3J0IEFFUyBpbiBDVFIgbW9kZSwgaW4gdGhlIGZ1dHVyZQogICAgIC8vIHdlIHdpbGwgc3VyZWx5
IGhhdmUgdG8gc3VwcG9ydCBtb3JlIHByb3RlY3Rpb24gc2NoZW1lcy4gQ2FuIHdlCkBAIC05OSw3
ICsxMTMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2VuY0RlY3J5cHRTdWJzYW1wbGVkKGNlbmNE
ZWNyeXB0Q29udGV4dCYpOwogCiAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgdG8gdXNl
IHNvbWV0aGluZyBpbiBXZWJDb3JlIGZvciBjcnlwdG8uLi4KLSAgICBnY3J5X2NpcGhlcl9oZF90
IG1fZ2NyeUhhbmRsZTsKKyAgICBMYXppbHlJbml0aWFsaXplZDxnY3J5X2NpcGhlcl9oZF90PiBt
X2dDcnlwdEhhbmRsZSB7IENETVByb3h5Q2xlYXJLZXk6OmluaXRpYWxpemVHQ3J5cHQgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGE4YTUyYTBhMjBlMC4uOGI3N2JlNWM5OTMzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0
cy50eHQKQEAgLTUxLDYgKzUxLDcgQEAgc2V0KFRlc3RXVEZfU09VUkNFUwogICAgIFRlc3RzL1dU
Ri9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmNwcAogICAgIFRlc3RzL1dURi9JdGVyYXRvclJh
bmdlLmNwcAogICAgIFRlc3RzL1dURi9KU09OVmFsdWUuY3BwCisgICAgVGVzdHMvV1RGL0xhemls
eUluaXRpYWxpemVkLmNwcAogICAgIFRlc3RzL1dURi9MRUJEZWNvZGVyLmNwcAogICAgIFRlc3Rz
L1dURi9MaWZlY3ljbGVMb2dnZXIuY3BwCiAgICAgVGVzdHMvV1RGL0xpbmVFbmRpbmcuY3BwCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFiZmI4NDAzZTc1NS4uZDllNTQ4YWRmYTFmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU2LDYgKzU1Niw3IEBACiAJCTdDODNERjE0MUQwQTU5
MEMwMEZFQkNGMyAvKiBSZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNBNDI3QUExODBEQTI2NDAwQ0QyNEQ3IC8qIFJlZi5jcHAgKi87IH07CiAJ
CTdDODNERjE1MUQwQTU5MEMwMEZFQkNGMyAvKiBSZWZDb3VudGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkQxOTk3MUEyREIwNUIwMDZEQ0Yw
QSAvKiBSZWZDb3VudGVyLmNwcCAqLzsgfTsKIAkJN0M4M0RGMTYxRDBBNTkwQzAwRkVCQ0YzIC8q
IFJlZlB0ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRyLmNwcCAqLzsgfTsKKwkJN0M4M0RG
MTcxRDBBNTkwQzAwRkVCQ0YzIC8qIExhemlseUluaXRpYWxpemVkLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTQyN0E4MTgwRDlCMDcwMENEMjRE
OCAvKiBMYXppbHlJbml0aWFsaXplZC5jcHAgKi87IH07CiAJCTdDODNERjFEMUQwQTU5MEMwMEZF
QkNGMyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGRkM0NUE0MUI3M0VCRTIwMDg1QkQ2MiAvKiBMb2NrLmNwcCAqLzsgfTsKIAkJN0M4
M0RGMjQxRDBBNTkwQzAwRkVCQ0YzIC8qIFJldGFpblB0ci5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDI5QjFCMTQ4NkIyNTkwMDgxN0RBOSAvKiBS
ZXRhaW5QdHIubW0gKi87IH07CiAJCTdDODNERjI2MUQwQTU5MEMwMEZFQkNGMyAvKiBTYXR1cmF0
ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNEYzQjExMjE1RTQ1RUFCMDAyMTAwNjkgLyogU2F0dXJhdGVkQXJp
dGhtZXRpY09wZXJhdGlvbnMuY3BwICovOyB9OwpAQCAtMjMyMCw2ICsyMzIxLDcgQEAKIAkJOTM5
QkZFMzkxOEU1NTQ4OTAwODgzMjc1IC8qIFN0cmluZ1RydW5jYXRvci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0cmluZ1RydW5jYXRvci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMjU4OTgxRjkyRkYxNTAwM0U1MTBDIC8qIFRleHRDb2Rl
Yy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZlB0ci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQTQyN0E4MTgwRDlCMDcwMENEMjREOCAvKiBMYXppbHlJbml0
aWFsaXplZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXppbHlJ
bml0aWFsaXplZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTQyN0FBMTgw
REEyNjQwMENEMjRENyAvKiBSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBNDI3QUMxODBE
QTYwRjAwQ0QyNEQ3IC8qIE1vdmVPbmx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vdmVPbmx5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTQyN0FEMTgwREE2MEYwMENEMjRENyAvKiBS
ZWZMb2dnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmTG9nZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC00MDQ2LDYgKzQwNDgsNyBAQAogCQkJCTQ0MkJCRjY4MUM5MUNBRDkwMDE3
MDg3RiAvKiBSZWZMb2dnZXIuY3BwICovLAogCQkJCTkzQTQyN0FEMTgwREE2MEYwMENEMjRENyAv
KiBSZWZMb2dnZXIuaCAqLywKIAkJCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRy
LmNwcCAqLywKKwkJCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDggLyogTGF6aWx5SW5pdGlhbGl6
ZWQuY3BwICovLAogCQkJCUU0QzlBQkM3MUIzREIxNzEwMDQwQTk4NyAvKiBSdW5Mb29wLmNwcCAq
LywKIAkJCQkxNEYzQjExMjE1RTQ1RUFCMDAyMTAwNjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpY09w
ZXJhdGlvbnMuY3BwICovLAogCQkJCTFBMzUyNEFDMUQ2M0E0RkIwMDMxNzI5QiAvKiBTY29wZS5j
cHAgKi8sCkBAIC00NzU2LDYgKzQ3NTksNyBAQAogCQkJCTdDODNERjE1MUQwQTU5MEMwMEZFQkNG
MyAvKiBSZWZDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERUQ3MUQwQTU5MEMw
MEZFQkNGMyAvKiBSZWZMb2dnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RGMTYxRDBB
NTkwQzAwRkVCQ0YzIC8qIFJlZlB0ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QzgzREYxNzFE
MEE1OTBDMDBGRUJDRjMgLyogTGF6aWx5SW5pdGlhbGl6ZWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDRBQzhCQzYyMUQwMjQ1QTAwQ0FGQjM0IC8qIFJldGFpblB0ci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QzgzREYyNDFEMEE1OTBDMDBGRUJDRjMgLyogUmV0YWluUHRyLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M4M0RGMDUxRDBBNTkwQzAwRkVCQ0YzIC8qIFJ1bkxvb3AuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9MYXpp
bHlJbml0aWFsaXplZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9MYXppbHlJ
bml0aWFsaXplZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5m
OTk4MTA2N2I5NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9MYXppbHlJbml0aWFsaXplZC5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkxvZ2dlci5oIgorI2luY2x1ZGUg
PHd0Zi9MYXppbHlJbml0aWFsaXplZC5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisK
K3N0cnVjdCBMYXppbHlJbml0aWFsaXplZExvZ2dlciB7CisgICAgTGF6aWx5SW5pdGlhbGl6ZWRM
b2dnZXIoKTsKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKExhemlseUluaXRpYWxpemVkTG9n
Z2VyJik7CisgICAgdm9pZCBkb1N0dWZmKCkgeyB9Cit9OworCitMYXppbHlJbml0aWFsaXplZExv
Z2dlcjo6TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXIoKQoreworICAgIGxvZygpIDw8ICJpbnN0YW50
aWF0ZWQoKSAiOworfQorCit2b2lkIExhemlseUluaXRpYWxpemVkTG9nZ2VyOjppbml0aWFsaXpl
KExhemlseUluaXRpYWxpemVkTG9nZ2VyJiBsb2dnZXIpCit7CisgICAgbG9nKCkgPDwgImluaXRp
YWxpemVkKCkgIjsKK30KKworVEVTVChXVEZfTGF6aWx5SW5pdGlhbGl6ZWQsIEJhc2ljKQorewor
ICAgIHsKKyAgICAgICAgTGF6aWx5SW5pdGlhbGl6ZWQ8TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI+
IHZhbHVlIHsgTGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI6OmluaXRpYWxpemUgfTsKKyAgICB9Cisg
ICAgRVhQRUNUX1NUUkVRKCJpbnN0YW50aWF0ZWQoKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7
CisKKyAgICB7CisgICAgICAgIExhemlseUluaXRpYWxpemVkPExhemlseUluaXRpYWxpemVkTG9n
Z2VyPiB2YWx1ZSB7IExhemlseUluaXRpYWxpemVkTG9nZ2VyOjppbml0aWFsaXplIH07CisgICAg
ICAgICgqdmFsdWUpLmRvU3R1ZmYoKTsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJpbnN0YW50
aWF0ZWQoKSBpbml0aWFsaXplZCgpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsK
KyAgICAgICAgTGF6aWx5SW5pdGlhbGl6ZWQ8TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI+IHZhbHVl
IHsgTGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI6OmluaXRpYWxpemUgfTsKKyAgICAgICAgdmFsdWUt
PmRvU3R1ZmYoKTsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJpbnN0YW50aWF0ZWQoKSBpbml0
aWFsaXplZCgpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgTGF6
aWx5SW5pdGlhbGl6ZWQ8TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI+IHZhbHVlIHsgTGF6aWx5SW5p
dGlhbGl6ZWRMb2dnZXI6OmluaXRpYWxpemUgfTsKKyAgICAgICAgKCp2YWx1ZSkuZG9TdHVmZigp
OworICAgICAgICB2YWx1ZS0+ZG9TdHVmZigpOworICAgICAgICB2YWx1ZS0+ZG9TdHVmZigpOwor
ICAgICAgICAoKnZhbHVlKS5kb1N0dWZmKCk7CisgICAgfQorICAgIEVYUEVDVF9TVFJFUSgiaW5z
dGFudGlhdGVkKCkgaW5pdGlhbGl6ZWQoKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cit9CisK
K307Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401637</attachid>
            <date>2020-06-11 06:29:54 -0700</date>
            <delta_ts>2020-06-11 07:04:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>28231</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgzZmFjMjk3NzA0
OC4uNzBmNjYwZWIyZTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTI1Nyw2ICsyNTcsNyBAQAogCQkwRjhGMkI5MDE3MkUwMEYwMDA3REJEQTUgLyogQ29t
cGlsYXRpb25UaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGlsYXRpb25UaHJlYWQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4RjJCOUIxNzJGMjU5NDAwN0RCREE1IC8qIENv
bnZlcnNpb25Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnZlcnNpb25Nb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTMyNzRBMUMxN0Y0QjcwMENGNjU2NCAvKiBCb3guaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTBGOTMyNzRBMUMxN0Y0QjcwMENGNjU2NSAvKiBMYXppbHlJbml0aWFsaXpl
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXppbHlJbml0aWFsaXplZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk0OTU4MzFDNTcxQ0M5MDA0MTNBNDgg
LyogT3JkZXJNYWtlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcmRlck1h
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTVCNjMxMjBDQjRCNzcwMDQ3
OTYzNSAvKiBEZWJ1Z0hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVi
dWdIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTVCNjMyMjBDQjRCNzcw
MDQ3OTYzNSAvKiBEZWJ1Z0hlYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGVidWdIZWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQKaW5kZXggMDI0YTA5ZjExYTcxLi42M2ZkM2I4OGIxY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0CkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAgIEtl
eVZhbHVlUGFpci5oCiAgICAgTEVCRGVjb2Rlci5oCiAgICAgTGFuZ3VhZ2UuaAorICAgIExhemls
eUluaXRpYWxpemVkLmgKICAgICBMaXN0RHVtcC5oCiAgICAgTGlzdEhhc2hTZXQuaAogICAgIExp
dmVuZXNzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhemlseUluaXRpYWxpemVkLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9MYXppbHlJbml0aWFsaXplZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uMmZkM2EwNjU1Mzg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvTGF6aWx5SW5pdGlhbGl6ZWQuaApAQCAtMCwwICsxLDg2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvTm9ubW92YWJsZS5oPgorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIExhemlseUluaXRpYWxpemVkIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShM
YXppbHlJbml0aWFsaXplZCk7CisgICAgV1RGX01BS0VfTk9OTU9WQUJMRShMYXppbHlJbml0aWFs
aXplZCk7CisKK3B1YmxpYzoKKyAgICB1c2luZyBJbml0aWFsaXplciA9IEZ1bmN0aW9uPHZvaWQo
VCYpPjsKKyAgICB1c2luZyBEZWluaXRpYWxpemVyID0gRnVuY3Rpb248dm9pZChUJik+OworCisg
ICAgTGF6aWx5SW5pdGlhbGl6ZWQoKSA9IGRlbGV0ZTsKKyAgICBMYXppbHlJbml0aWFsaXplZChJ
bml0aWFsaXplciYmIGluaXRpYWxpemVyLCBPcHRpb25hbDxEZWluaXRpYWxpemVyPiYmIGRlaW5p
dGlhbGl6ZXIgPSBudWxsb3B0KQorICAgICAgICA6IG1faW5pdGlhbGl6ZXIoV1RGTW92ZShpbml0
aWFsaXplcikpCisgICAgICAgICwgbV9kZWluaXRpYWxpemVyKFdURk1vdmUoZGVpbml0aWFsaXpl
cikpIHsgfQorICAgIH5MYXppbHlJbml0aWFsaXplZCgpCisgICAgeworICAgICAgICBpZiAobV9k
ZWluaXRpYWxpemVyICYmIGlzSW5pdGlhbGl6ZWQoKSkKKyAgICAgICAgICAgICgqbV9kZWluaXRp
YWxpemVyKShtX3ZhbHVlKTsKKyAgICB9CisKKyAgICBUJiBvcGVyYXRvciooKQorICAgIHsKKyAg
ICAgICAgaW5pdGlhbGl6ZUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybiBtX3ZhbHVlOworICAg
IH0KKworICAgIFQqIG9wZXJhdG9yLT4oKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZUlmTmVl
ZGVkKCk7CisgICAgICAgIHJldHVybiAmbV92YWx1ZTsKKyAgICB9CisKKyAgICBpbmxpbmUgYm9v
bCBpc0luaXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0luaXRpYWxpemVkLmxvYWQoKTsg
fQorCitwcml2YXRlOgorICAgIGlubGluZSB2b2lkIGluaXRpYWxpemVJZk5lZWRlZCgpCisgICAg
eworICAgICAgICBpZiAoIW1faXNJbml0aWFsaXplZC5leGNoYW5nZSh0cnVlKSkKKyAgICAgICAg
ICAgIG1faW5pdGlhbGl6ZXIobV92YWx1ZSk7CisgICAgfQorCisgICAgc3RkOjphdG9taWM8Ym9v
bD4gbV9pc0luaXRpYWxpemVkIHsgZmFsc2UgfTsKKyAgICBJbml0aWFsaXplciBtX2luaXRpYWxp
emVyOworICAgIE9wdGlvbmFsPERlaW5pdGlhbGl6ZXI+IG1fZGVpbml0aWFsaXplcjsKKyAgICBU
IG1fdmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpMYXppbHlJ
bml0aWFsaXplZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZmE0NDk0MDkwNTEuLjNjZTMzNTE5NDNmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTA2LTExICBYYWJpZXIgUm9kcmlndWV6IENh
bHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VNRV0gQ3JlYXRlIENETVBy
b3h5RmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3VycmVudGx5IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBoYXZlIHRoZSBDRE1Qcm94eSBj
YWJsZWQgaW4gdGhlCisgICAgICAgIHBsYXllciBwcml2YXRlIGFuZCBzZXQgdG8gdGhlIGluc3Rh
bmNlLiBTZXR0aW5nIHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAgIGNyZWF0ZSBrZXkgc3luYyBp
c3N1ZXMgdGhhdCBhcmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2VzIG5vdCBzZWVtCisgICAgICAg
IHRvIGJlIG5lZWRlZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVkIGluIHRoZSBjb25zdHJ1Y3Rv
ciBmcm9tIGEKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdlIGp1c3QgdXNlIHRoZSBrZXkg
c3lzdGVtIHRoYXQgd2UgYWxyZWFkeQorICAgICAgICBoYXZlLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZGVjbGFyZXMgYSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1c2VkIGluIHRoZQorICAgICAg
ICBDRE1JbnN0YW5jZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBwcm9wZXIgQ0RNUHJveHkgaW4g
aXRzCisgICAgICAgIGNvbnN0cnVjdG9yLgorCisgICAgICAgIENETVByb3h5RmFjdG9yeUNsZWFy
S2V5IGlzIGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFtZXIKKyAgICAgICAgcGxhdGZv
cm0gQ0RNUHJveHlGYWN0b3JpZXMuCisKKyAgICAgICAgSW5pdGlhbGl6aW5nIHRvbyBmYXN0IGNy
ZWF0ZXMgZmxha3luZXNzIGluIHNldmVyYWwgQ2xlYXJLZXkgdGVzdHMKKyAgICAgICAgYmVjYXVz
ZSBvZiBhc2tpbmcgZm9yIHByb3RlY3RlZCBtZW1vcnkgc28gd2UgbmVlZCB0byBpbml0aWFsaXpl
IGl0CisgICAgICAgIGluIGEgbGF6eSB3YXkuIEZvciB0aGF0IEkgY3JlYXRlZCBXVEY6Okxhemls
eUluaXRpYWxpemVkIHRoYXQKKyAgICAgICAgYWxsb3dzIHRvIGp1c3QgcHJvdmlkZSBhIHR5cGUg
d2l0aCBhbiBpbml0aWFsaXplciBhbmQgdXNlIHRoZQorICAgICAgICBvcGVyYXRvciogdG8gYWNj
ZXNzIGl0IGFuZCBnZXQgaXQgaW5pdGlhbGl6ZWQgbGF6aWx5CisgICAgICAgIGF1dG9tYXRpY2Fs
bHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGEgcmV3b3JrLgorCisgICAgICAgICog
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
UHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVyRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Q
cm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNETVByb3h5RmFjdG9yeTo6fkNETVByb3h5RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0YW5jZVByb3h5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9l
bmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1JbnN0YW5jZUNsZWFyS2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNETUluc3RhbmNlQ2xlYXJLZXk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2Rt
SW5zdGFuY2VBdHRhY2hlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5
RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OmNyZWF0ZUNETVByb3h5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzdXBwb3J0c0tleVN5c3RlbSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5
Lmg6CisKIDIwMjAtMDYtMDkgIFBpbmtpIEd5YW5jaGFuZGFuaSAgPHBneWFuY2hhbmRhbmlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbGVhc2UgQXNzZXJ0IEAgV2ViQ29yZTo6UmVuZGVyVHJlZUJ1
aWxkZXI6OlJlbmRlclRyZWVCdWlsZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKaW5kZXggZjlhMDY3YmIxZWY1Li43NTk3OWNm
ZmQzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5jcHAKQEAgLTM4LDYgKzM4LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorVmVjdG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRG
YWN0b3JpZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlG
YWN0b3J5Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFj
dG9yaWVzKGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQor
Cit2b2lkIENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYg
ZmFjdG9yeSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygm
ZmFjdG9yeSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOwor
fQorCit2b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0
b3J5JiBmYWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFp
bnMoJmZhY3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0
b3J5KTsKK30KKworUmVmPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5
Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Q
cm94eT4gY2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5
OjpyZWdpc3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRz
S2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+
Y3JlYXRlQ0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorICAgIEFTU0VSVChjZG1Qcm94eSk7CisgICAgcmV0dXJuIGNkbVByb3h5LnJlbGVh
c2VOb25OdWxsKCk7Cit9CisKKyNpZiAhVVNFKEdTVFJFQU1FUikKK3ZvaWQgQ0RNUHJveHlGYWN0
b3J5OjpwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYp
Cit7Cit9CisjZW5kaWYKKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFN0cmluZyB2ZWN0b3JUb0hl
eFN0cmluZyhjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGI0NmVmNjcwYTA1NC4u
MGQ3NzBkMWI3ZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0
ZWRtZWRpYS9DRE1Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL0NETVByb3h5LmgKQEAgLTE1Niw2ICsxNTYsMjYgQEAgcHJpdmF0ZToKICAgICBLZXlT
dG9yZSBtX2tleVN0b3JlOwogfTsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnkoKSB7IH07CisKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgdW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBSZWY8Q0RN
UHJveHk+IGNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworCisgICAg
Ly8gUGxhdGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBsaXN0
IG9mCisgICAgLy8gcmVnaXN0ZXJlZCBDRE1Qcm94eUZhY3Rvcnkgb2JqZWN0cyBpcyBxdWVyaWVk
IGZvciB0aGUgZmlyc3QgdGltZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwbGF0
Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpOworCitwcm90
ZWN0ZWQ6CisgICAgdmlydHVhbCBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0
IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3Qg
U3RyaW5nJikgPSAwOworCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0
b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKK307CisKIGNsYXNz
IENETUluc3RhbmNlU2Vzc2lvblByb3h5IDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvblByb3h5LCBXZWFrUHRyRmFjdG9y
eUluaXRpYWxpemF0aW9uOjpFYWdlcj4gewogfTsKIApAQCAtMTYzLDE5ICsxODMsMTUgQEAgY2xh
c3MgQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkgOiBwdWJsaWMgQ0RNSW5zdGFuY2VTZXNzaW9uLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHIKIC8vIGZyb20gInJlYWwgQ0RNIiBzdGF0ZSBjaGFuZ2VzIHRv
IEpTLgogY2xhc3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZSB7CiBwdWJs
aWM6Ci0gICAgQ0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5DRE1J
bnN0YW5jZVByb3h5KCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAg
ICB2b2lkIHNldFByb3h5KFJlZjxDRE1Qcm94eT4mJiBwcm94eSkKKyAgICBDRE1JbnN0YW5jZVBy
b3h5KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogICAgIHsKLSAgICAgICAgbV9jZG1Qcm94eSA9
IFdURk1vdmUocHJveHkpOworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAg
ICBtX2NkbVByb3h5ID0gQ0RNUHJveHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3Rl
bShrZXlTeXN0ZW0pOwogICAgICAgICBtX2NkbVByb3h5LT5zZXRJbnN0YW5jZSh0aGlzKTsKLSAg
ICAgICAgLy8gVGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNoZWQgYWZ0ZXIgYW4gdXBkYXRl
KCkuIE5vdAotICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFwcHMgYW5kIHRoZSBXM0MgdGVz
dC1zdWl0ZSBkbyB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9yZS5oYXNLZXlzKCkpCi0gICAg
ICAgICAgICBtX2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tleVN0b3JlKTsKICAgICB9Cisg
ICAgdmlydHVhbCB+Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1haW4t
dGhyZWFkIG9ubHkuCiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAg
ICAgdm9pZCByZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtl
eS9DRE1DbGVhcktleS5jcHAKaW5kZXggY2YyZDVmMWRiM2VkLi42NTMyMmVkOTllOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NE
TUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKQEAgLTQzNCw2ICs0MzQsNyBAQCBPcHRpb25hbDxT
dHJpbmc+IENETVByaXZhdGVDbGVhcktleTo6c2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3RyaW5n
JiBzZXNzaW9uSWQpCiAgICAgcmV0dXJuIHNlc3Npb25JZDsKIH0KIAorQ0RNSW5zdGFuY2VDbGVh
cktleTo6Q0RNSW5zdGFuY2VDbGVhcktleSgpIDogQ0RNSW5zdGFuY2VQcm94eSgib3JnLnczLmNs
ZWFya2V5Il9zKSB7IH07CiBDRE1JbnN0YW5jZUNsZWFyS2V5Ojp+Q0RNSW5zdGFuY2VDbGVhcktl
eSgpID0gZGVmYXVsdDsKIAogdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5Ojppbml0aWFsaXplV2l0
aENvbmZpZ3VyYXRpb24oY29uc3QgQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYsIEFsbG93RGlz
dGluY3RpdmVJZGVudGlmaWVycyBkaXN0aW5jdGl2ZUlkZW50aWZpZXJzLCBBbGxvd1BlcnNpc3Rl
bnRTdGF0ZSBwZXJzaXN0ZW50U3RhdGUsIFN1Y2Nlc3NDYWxsYmFjayYmIGNhbGxiYWNrKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkv
Q0RNQ2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2Ns
ZWFya2V5L0NETUNsZWFyS2V5LmgKaW5kZXggMDA2YzQ1YWZjZWI2Li44YmYzNjI3MmFkYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAKIGNs
YXNzIENETUluc3RhbmNlQ2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2VQcm94eSwg
cHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlQ2xlYXJLZXk+IHsKIHB1YmxpYzoKKyAg
ICBDRE1JbnN0YW5jZUNsZWFyS2V5KCk7CiAgICAgdmlydHVhbCB+Q0RNSW5zdGFuY2VDbGVhcktl
eSgpOwogCiAgICAgLy8gQ0RNSW5zdGFuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYWNjNTFhMjk3MDY4Li44NzAxYWE2NTY4ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0z
NTMyLDcgKzM1MzIsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5z
dGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCiAgICAgbV9jZG1JbnN0YW5jZSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Q0RNSW5zdGFuY2VQcm94eSo+KCZpbnN0YW5jZSk7CiAgICAgUkVM
RUFTRV9BU1NFUlQobV9jZG1JbnN0YW5jZSk7CiAgICAgbV9jZG1JbnN0YW5jZS0+c2V0UGxheWVy
KG1fcGxheWVyKTsKLSAgICBtX2NkbUluc3RhbmNlLT5zZXRQcm94eShhZG9wdFJlZigqbmV3IENE
TVByb3h5Q2xlYXJLZXkpKTsKIAogICAgIEdSZWZQdHI8R3N0Q29udGV4dD4gY29udGV4dCA9IGFk
b3B0R1JlZihnc3RfY29udGV4dF9uZXcoImRybS1jZG0tcHJveHkiLCBGQUxTRSkpOwogICAgIEdz
dFN0cnVjdHVyZSogY29udGV4dFN0cnVjdHVyZSA9IGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0cnVj
dHVyZShjb250ZXh0LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFt
ZXIuY3BwCmluZGV4IGNhMzc1N2M5NzRiNy4uZmZmZGU0NWViNmM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCiAKLSNpbmNsdWRlICJDRE1DbGVhcktleS5oIgorI2luY2x1
ZGUgIkNETVByb3h5Q2xlYXJLZXkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw2
ICs0MCwxMSBAQCB2b2lkIENETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVj
dG9yPENETUZhY3RvcnkqPiYgZmFjdG9yaWVzKQogICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNETUZh
Y3RvcnlDbGVhcktleTo6c2luZ2xldG9uKCkpOwogfQogCit2b2lkIENETVByb3h5RmFjdG9yeTo6
cGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIGZhY3Rv
cmllcykKK3sKKyAgICBmYWN0b3JpZXMuYXBwZW5kKCZDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6
c2luZ2xldG9uKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5j
cHAKaW5kZXggYzFiNmIzNGY2ODZmLi4zZGU4MWY1NGJiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmNwcApAQCAtNjQsOSArNjQsMjUgQEAgc3RhdGljIGJvb2wgcmVhZFVJ
bnQxNihjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBidWZmZXJTaXplLCBzaXplX3QmIG9m
ZnNldCwKIAogfSAvLyBuYW1lc3BhY2Uge30KIAotQ0RNUHJveHlDbGVhcktleTo6fkNETVByb3h5
Q2xlYXJLZXkoKQorQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkmIENETVByb3h5RmFjdG9yeUNsZWFy
S2V5OjpzaW5nbGV0b24oKQogewotICAgIGdjcnlfY2lwaGVyX2Nsb3NlKG1fZ2NyeUhhbmRsZSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENETVByb3h5RmFjdG9yeUNsZWFyS2V5PiBzX2Zh
Y3Rvcnk7CisgICAgcmV0dXJuIHNfZmFjdG9yeTsKK30KKworQ0RNUHJveHlGYWN0b3J5Q2xlYXJL
ZXk6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5KCkgPSBkZWZhdWx0OworQ0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXk6On5DRE1Qcm94eUZhY3RvcnlDbGVhcktleSgpID0gZGVmYXVsdDsKKworUmVmUHRy
PENETVByb3h5PiBDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6Y3JlYXRlQ0RNUHJveHkoY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0pCit7CisgICAgQVNTRVJUX1VOVVNFRChrZXlTeXN0ZW0sIHN1cHBv
cnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ0RNUHJv
eHlDbGVhcktleSgpKTsKK30KKworYm9vbCBDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c3VwcG9y
dHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisgICAgLy8gYG9yZy53My5j
bGVhcmtleWAgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIGtleSBzeXN0ZW0uCisgICAgcmV0dXJuIGVx
dWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGtleVN5c3RlbSwgIm9yZy53My5jbGVhcmtleSIp
OwogfQogCiBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNTZXRDb3VudGVyVmVjdG9yKGNvbnN0
IGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCkBAIC04Myw3ICs5OSw3IEBAIGJvb2wgQ0RNUHJv
eHlDbGVhcktleTo6Y2VuY1NldENvdW50ZXJWZWN0b3IoY29uc3QgY2VuY0RlY3J5cHRDb250ZXh0
JiBpbnB1dCkKICAgICB9IGVsc2UKICAgICAgICAgbWVtY3B5KGN0ciwgaW5wdXQuaXYsIENsZWFy
S2V5OjpJVlNpemVJbkJ5dGVzKTsKIAotICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3Ig
PSBnY3J5X2NpcGhlcl9zZXRjdHIobV9nY3J5SGFuZGxlLCBjdHIsIENsZWFyS2V5OjpJVlNpemVJ
bkJ5dGVzKSkgeworICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhl
cl9zZXRjdHIoKm1fZ0NyeXB0SGFuZGxlLCBjdHIsIENsZWFyS2V5OjpJVlNpemVJbkJ5dGVzKSkg
ewogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xl
YXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9zZXRjdHIpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBo
ZXJFcnJvcikpOwogI2Vsc2UKQEAgLTEwNyw3ICsxMjMsNyBAQCBib29sIENETVByb3h5Q2xlYXJL
ZXk6OmNlbmNTZXREZWNyeXB0aW9uS2V5KGNvbnN0IGNlbmNEZWNyeXB0Q29udGV4dCYgaW4pCiAg
ICAgaWYgKCFrZXlEYXRhKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoZ2NyeV9l
cnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfc2V0a2V5KG1fZ2NyeUhhbmRsZSwga2V5
RGF0YS0+ZGF0YSgpLCBrZXlEYXRhLT5zaXplKCkpKSB7CisgICAgaWYgKGdjcnlfZXJyb3JfdCBj
aXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX3NldGtleSgqbV9nQ3J5cHRIYW5kbGUsIGtleURhdGEt
PmRhdGEoKSwga2V5RGF0YS0+c2l6ZSgpKSkgewogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAg
TE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9zZXRr
ZXkpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOwogI2Vsc2UKQEAgLTEyNiw3ICsx
NDIsNyBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0RnVsbFNhbXBsZShjZW5j
RGVjcnlwdENvbnRleHQmIGluKQogCiAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJL
ZXkgLSBmdWxsLXNhbXBsZSBkZWNyeXB0aW9uOiAlenUgZW5jcnlwdGVkIGJ5dGVzIiwgaW4uZW5j
cnlwdGVkQnVmZmVyU2l6ZUluQnl0ZXMpOwogCi0gICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJF
cnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQobV9nY3J5SGFuZGxlLCBpbi5lbmNyeXB0ZWRCdWZm
ZXIsIGluLmVuY3J5cHRlZEJ1ZmZlclNpemVJbkJ5dGVzLCAwLCAwKSkgeworICAgIGlmIChnY3J5
X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0KCptX2dDcnlwdEhhbmRs
ZSwgaW4uZW5jcnlwdGVkQnVmZmVyLCBpbi5lbmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcywgMCwg
MCkpIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94
eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfZGVjcnlwdCk6ICVzIiwgZ3BnX3N0cmVycm9y
KGNpcGhlckVycm9yKSk7CiAjZWxzZQpAQCAtMTcwLDcgKzE4Niw3IEBAIGJvb2wgQ0RNUHJveHlD
bGVhcktleTo6Y2VuY0RlY3J5cHRTdWJzYW1wbGVkKGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQp
CiAgICAgICAgIGlmIChzdWJzYW1wbGVOdW1FbmNyeXB0ZWRCeXRlcykgewogICAgICAgICAgICAg
TE9HKEVNRSwgIkVNRSAtIHN1YnNhbXBsZSBpbmRleCAldSAtICV1IGJ5dGVzIGVuY3J5cHRlZCAo
JWx1IGJ5dGVzIGxlZnQgdG8gZGVjcnlwdCkiLCBzdWJzYW1wbGVJbmRleCwgc3Vic2FtcGxlTnVt
RW5jcnlwdGVkQnl0ZXMsIGlucHV0LmVuY3J5cHRlZEJ1ZmZlclNpemVJbkJ5dGVzIC0gZW5jcnlw
dGVkQnVmZmVyQnl0ZU9mZnNldCk7CiAKLSAgICAgICAgICAgIGlmIChnY3J5X2Vycm9yX3QgY2lw
aGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0KG1fZ2NyeUhhbmRsZSwgaW5wdXQuZW5jcnlw
dGVkQnVmZmVyICsgZW5jcnlwdGVkQnVmZmVyQnl0ZU9mZnNldCwgc3Vic2FtcGxlTnVtRW5jcnlw
dGVkQnl0ZXMsIDAsIDApKSB7CisgICAgICAgICAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVy
cm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlwdCgqbV9nQ3J5cHRIYW5kbGUsIGlucHV0LmVuY3J5cHRl
ZEJ1ZmZlciArIGVuY3J5cHRlZEJ1ZmZlckJ5dGVPZmZzZXQsIHN1YnNhbXBsZU51bUVuY3J5cHRl
ZEJ5dGVzLCAwLCAwKSkgewogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgICAgICAgICBMT0co
RU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVyX2RlY3J5cHQp
OiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOwogI2Vsc2UKQEAgLTE5NCw5ICsyMTAs
OSBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0KENETVByb3h5Q2xlYXJLZXk6
OmNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCiAgICAgcmV0dXJuIGlucHV0LmlzU3Vic2FtcGxl
ZCgpID8gY2VuY0RlY3J5cHRTdWJzYW1wbGVkKGlucHV0KSA6IGNlbmNEZWNyeXB0RnVsbFNhbXBs
ZShpbnB1dCk7CiB9CiAKLXZvaWQgQ0RNUHJveHlDbGVhcktleTo6aW5pdGlhbGl6ZUdjcnlwdCgp
Cit2b2lkIENETVByb3h5Q2xlYXJLZXk6OmluaXRpYWxpemVHQ3J5cHQoZ2NyeV9jaXBoZXJfaGRf
dCYgZ0NyeXB0SGFuZGxlKQogewotICAgIGlmIChnY3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2Np
cGhlcl9vcGVuKCZtX2djcnlIYW5kbGUsIEdDUllfQ0lQSEVSX0FFUzEyOCwgR0NSWV9DSVBIRVJf
TU9ERV9DVFIsIEdDUllfQ0lQSEVSX1NFQ1VSRSkpIHsKKyAgICBpZiAoZ2NyeV9lcnJvcl90IGVy
cm9yID0gZ2NyeV9jaXBoZXJfb3BlbigmZ0NyeXB0SGFuZGxlLCBHQ1JZX0NJUEhFUl9BRVMxMjgs
IEdDUllfQ0lQSEVSX01PREVfQ1RSLCBHQ1JZX0NJUEhFUl9TRUNVUkUpKSB7CiAjaWYgIUxPR19E
SVNBQkxFRAogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9S
KGdjcnlfY2lwaGVyX29wZW4pOiAlcyIsIGdwZ19zdHJlcnJvcihlcnJvcikpOwogI2Vsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
Q0RNUHJveHlDbGVhcktleS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKaW5kZXggNTAyNDBjOWY4ZDRjLi5mYWJmMzVj
OGExZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCkBAIC0zNiwxOSArMzYs
MzIgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDxnY3J5cHQuaD4KICNp
bmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0xhemlseUluaXRpYWxpemVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvckhhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1Qcm94eUZh
Y3RvcnkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRp
YyBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSYgc2luZ2xldG9uKCk7CisKKyAgICB2aXJ0dWFsIH5D
RE1Qcm94eUZhY3RvcnlDbGVhcktleSgpOworCisgICAgUmVmUHRyPENETVByb3h5PiBjcmVhdGVD
RE1Qcm94eShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzS2V5U3lzdGVt
KGNvbnN0IFN0cmluZyYpIGZpbmFsOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBOZXZl
ckRlc3Ryb3llZDxDRE1Qcm94eUZhY3RvcnlDbGVhcktleT47CisgICAgQ0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXkoKTsKK307CisKIC8vIFRoaXMgaXMgdGhlIHRocmVhZC1zYWZlIEFQSSB0aGF0IGRl
Y29kZSB0aHJlYWRzIHNob3VsZCB1c2UgdG8gbWFrZSB1c2Ugb2YgYQogLy8gcGxhdGZvcm0gQ0RN
IG1vZHVsZS4KIGNsYXNzIENETVByb3h5Q2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNUHJveHks
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1Qcm94eUNsZWFyS2V5LCBXZWFrUHRyRmFjdG9yeUlu
aXRpYWxpemF0aW9uOjpFYWdlcj4gewogcHVibGljOgotICAgIENETVByb3h5Q2xlYXJLZXkoKQot
ICAgIHsKLSAgICAgICAgaW5pdGlhbGl6ZUdjcnlwdCgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5D
RE1Qcm94eUNsZWFyS2V5KCk7CisgICAgQ0RNUHJveHlDbGVhcktleSgpID0gZGVmYXVsdDsKKyAg
ICB2aXJ0dWFsIH5DRE1Qcm94eUNsZWFyS2V5KCkgPSBkZWZhdWx0OwogCiAgICAgLy8gRklYTUU6
IFRoZXJlJ3MgYSBsYWNrIG9mIGNvbnNpc3RlbmN5IGJldHdlZW4gU2hhcmVkQnVmZmVycywKICAg
ICAvLyBWZWN0b3I8Y2hhcj4ncyBhbmQge3VpbnQ4X3QqLHNpemVfdH0gaWRpb21zIGZvciByZXBy
ZXNlbnRpbmcgYSBjaHVuayBvZgpAQCAtODgsNyArMTAxLDggQEAgcHVibGljOgogICAgIGJvb2wg
Y2VuY0RlY3J5cHQoY2VuY0RlY3J5cHRDb250ZXh0Jik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBp
bml0aWFsaXplR2NyeXB0KCk7CisgICAgZ2NyeV9jaXBoZXJfaGRfdCYgZ0NyeXB0SGFuZGxlKCk7
CisgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdDcnlwdChnY3J5X2NpcGhlcl9oZF90Jik7CiAK
ICAgICAvLyBGSVhNRTogRm9yIG5vdyB3ZSBvbmx5IHN1cHBvcnQgQUVTIGluIENUUiBtb2RlLCBp
biB0aGUgZnV0dXJlCiAgICAgLy8gd2Ugd2lsbCBzdXJlbHkgaGF2ZSB0byBzdXBwb3J0IG1vcmUg
cHJvdGVjdGlvbiBzY2hlbWVzLiBDYW4gd2UKQEAgLTk5LDcgKzExMyw4IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBjZW5jRGVjcnlwdFN1YnNhbXBsZWQoY2VuY0RlY3J5cHRDb250ZXh0Jik7CiAKICAg
ICAvLyBGSVhNRTogSXQgd291bGQgYmUgbmljZSB0byB1c2Ugc29tZXRoaW5nIGluIFdlYkNvcmUg
Zm9yIGNyeXB0by4uLgotICAgIGdjcnlfY2lwaGVyX2hkX3QgbV9nY3J5SGFuZGxlOworICAgIExh
emlseUluaXRpYWxpemVkPGdjcnlfY2lwaGVyX2hkX3Q+IG1fZ0NyeXB0SGFuZGxlIHsgQ0RNUHJv
eHlDbGVhcktleTo6aW5pdGlhbGl6ZUdDcnlwdAorICAgICAgICAsIE9wdGlvbmFsPExhemlseUlu
aXRpYWxpemVkPGdjcnlfY2lwaGVyX2hkX3Q+OjpEZWluaXRpYWxpemVyPihnY3J5X2NpcGhlcl9j
bG9zZSkgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtl
TGlzdHMudHh0CmluZGV4IGE4YTUyYTBhMjBlMC4uOGI3N2JlNWM5OTMzIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvQ01ha2VMaXN0cy50eHQKQEAgLTUxLDYgKzUxLDcgQEAgc2V0KFRlc3RXVEZfU09VUkNFUwog
ICAgIFRlc3RzL1dURi9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmNwcAogICAgIFRlc3RzL1dU
Ri9JdGVyYXRvclJhbmdlLmNwcAogICAgIFRlc3RzL1dURi9KU09OVmFsdWUuY3BwCisgICAgVGVz
dHMvV1RGL0xhemlseUluaXRpYWxpemVkLmNwcAogICAgIFRlc3RzL1dURi9MRUJEZWNvZGVyLmNw
cAogICAgIFRlc3RzL1dURi9MaWZlY3ljbGVMb2dnZXIuY3BwCiAgICAgVGVzdHMvV1RGL0xpbmVF
bmRpbmcuY3BwCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFiZmI4NDAzZTc1NS4uZDllNTQ4
YWRmYTFmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU2LDYgKzU1Niw3IEBACiAJCTdD
ODNERjE0MUQwQTU5MEMwMEZFQkNGMyAvKiBSZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBNDI3QUExODBEQTI2NDAwQ0QyNEQ3IC8qIFJlZi5j
cHAgKi87IH07CiAJCTdDODNERjE1MUQwQTU5MEMwMEZFQkNGMyAvKiBSZWZDb3VudGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2QkQxOTk3MUEy
REIwNUIwMDZEQ0YwQSAvKiBSZWZDb3VudGVyLmNwcCAqLzsgfTsKIAkJN0M4M0RGMTYxRDBBNTkw
QzAwRkVCQ0YzIC8qIFJlZlB0ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRyLmNwcCAqLzsg
fTsKKwkJN0M4M0RGMTcxRDBBNTkwQzAwRkVCQ0YzIC8qIExhemlseUluaXRpYWxpemVkLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTQyN0E4MTgw
RDlCMDcwMENEMjREOCAvKiBMYXppbHlJbml0aWFsaXplZC5jcHAgKi87IH07CiAJCTdDODNERjFE
MUQwQTU5MEMwMEZFQkNGMyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRkM0NUE0MUI3M0VCRTIwMDg1QkQ2MiAvKiBMb2NrLmNwcCAq
LzsgfTsKIAkJN0M4M0RGMjQxRDBBNTkwQzAwRkVCQ0YzIC8qIFJldGFpblB0ci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDI5QjFCMTQ4NkIyNTkw
MDgxN0RBOSAvKiBSZXRhaW5QdHIubW0gKi87IH07CiAJCTdDODNERjI2MUQwQTU5MEMwMEZFQkNG
MyAvKiBTYXR1cmF0ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEYzQjExMjE1RTQ1RUFCMDAyMTAwNjkgLyog
U2F0dXJhdGVkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovOyB9OwpAQCAtMjMyMCw2ICsyMzIx
LDcgQEAKIAkJOTM5QkZFMzkxOEU1NTQ4OTAwODgzMjc1IC8qIFN0cmluZ1RydW5jYXRvci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0cmluZ1RydW5jYXRvci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMjU4OTgxRjkyRkYxNTAwM0U1MTBD
IC8qIFRleHRDb2RlYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVm
UHRyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZlB0ci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTQyN0E4MTgwRDlCMDcwMENEMjREOCAv
KiBMYXppbHlJbml0aWFsaXplZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBMYXppbHlJbml0aWFsaXplZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzQTQyN0FBMTgwREEyNjQwMENEMjRENyAvKiBSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNBNDI3QUMxODBEQTYwRjAwQ0QyNEQ3IC8qIE1vdmVPbmx5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1v
dmVPbmx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTQyN0FEMTgwREE2MEYw
MENEMjRENyAvKiBSZWZMb2dnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmTG9nZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MDQ2LDYgKzQwNDgsNyBAQAogCQkJCTQ0MkJCRjY4
MUM5MUNBRDkwMDE3MDg3RiAvKiBSZWZMb2dnZXIuY3BwICovLAogCQkJCTkzQTQyN0FEMTgwREE2
MEYwMENEMjRENyAvKiBSZWZMb2dnZXIuaCAqLywKIAkJCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0
RDcgLyogUmVmUHRyLmNwcCAqLywKKwkJCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDggLyogTGF6
aWx5SW5pdGlhbGl6ZWQuY3BwICovLAogCQkJCUU0QzlBQkM3MUIzREIxNzEwMDQwQTk4NyAvKiBS
dW5Mb29wLmNwcCAqLywKIAkJCQkxNEYzQjExMjE1RTQ1RUFCMDAyMTAwNjkgLyogU2F0dXJhdGVk
QXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovLAogCQkJCTFBMzUyNEFDMUQ2M0E0RkIwMDMxNzI5
QiAvKiBTY29wZS5jcHAgKi8sCkBAIC00NzU2LDYgKzQ3NTksNyBAQAogCQkJCTdDODNERjE1MUQw
QTU5MEMwMEZFQkNGMyAvKiBSZWZDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNE
RUQ3MUQwQTU5MEMwMEZFQkNGMyAvKiBSZWZMb2dnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0M4M0RGMTYxRDBBNTkwQzAwRkVCQ0YzIC8qIFJlZlB0ci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk3QzgzREYxNzFEMEE1OTBDMDBGRUJDRjMgLyogTGF6aWx5SW5pdGlhbGl6ZWQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDRBQzhCQzYyMUQwMjQ1QTAwQ0FGQjM0IC8qIFJldGFpblB0ci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QzgzREYyNDFEMEE1OTBDMDBGRUJDRjMgLyogUmV0YWluUHRy
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RGMDUxRDBBNTkwQzAwRkVCQ0YzIC8qIFJ1bkxv
b3AuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9MYXppbHlJbml0aWFsaXplZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9MYXppbHlJbml0aWFsaXplZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi5mOTk4MTA2N2I5NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9MYXppbHlJbml0aWFsaXplZC5jcHAKQEAgLTAsMCArMSw3OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkxvZ2dlci5o
IgorI2luY2x1ZGUgPHd0Zi9MYXppbHlJbml0aWFsaXplZC5oPgorCituYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CisKK3N0cnVjdCBMYXppbHlJbml0aWFsaXplZExvZ2dlciB7CisgICAgTGF6aWx5
SW5pdGlhbGl6ZWRMb2dnZXIoKTsKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKExhemlseUlu
aXRpYWxpemVkTG9nZ2VyJik7CisgICAgdm9pZCBkb1N0dWZmKCkgeyB9Cit9OworCitMYXppbHlJ
bml0aWFsaXplZExvZ2dlcjo6TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXIoKQoreworICAgIGxvZygp
IDw8ICJpbnN0YW50aWF0ZWQoKSAiOworfQorCit2b2lkIExhemlseUluaXRpYWxpemVkTG9nZ2Vy
Ojppbml0aWFsaXplKExhemlseUluaXRpYWxpemVkTG9nZ2VyJiBsb2dnZXIpCit7CisgICAgbG9n
KCkgPDwgImluaXRpYWxpemVkKCkgIjsKK30KKworVEVTVChXVEZfTGF6aWx5SW5pdGlhbGl6ZWQs
IEJhc2ljKQoreworICAgIHsKKyAgICAgICAgTGF6aWx5SW5pdGlhbGl6ZWQ8TGF6aWx5SW5pdGlh
bGl6ZWRMb2dnZXI+IHZhbHVlIHsgTGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI6OmluaXRpYWxpemUg
fTsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJpbnN0YW50aWF0ZWQoKSAiLCB0YWtlTG9nU3Ry
KCkuY19zdHIoKSk7CisKKyAgICB7CisgICAgICAgIExhemlseUluaXRpYWxpemVkPExhemlseUlu
aXRpYWxpemVkTG9nZ2VyPiB2YWx1ZSB7IExhemlseUluaXRpYWxpemVkTG9nZ2VyOjppbml0aWFs
aXplIH07CisgICAgICAgICgqdmFsdWUpLmRvU3R1ZmYoKTsKKyAgICB9CisgICAgRVhQRUNUX1NU
UkVRKCJpbnN0YW50aWF0ZWQoKSBpbml0aWFsaXplZCgpICIsIHRha2VMb2dTdHIoKS5jX3N0cigp
KTsKKworICAgIHsKKyAgICAgICAgTGF6aWx5SW5pdGlhbGl6ZWQ8TGF6aWx5SW5pdGlhbGl6ZWRM
b2dnZXI+IHZhbHVlIHsgTGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI6OmluaXRpYWxpemUgfTsKKyAg
ICAgICAgdmFsdWUtPmRvU3R1ZmYoKTsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJpbnN0YW50
aWF0ZWQoKSBpbml0aWFsaXplZCgpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsK
KyAgICAgICAgTGF6aWx5SW5pdGlhbGl6ZWQ8TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI+IHZhbHVl
IHsgTGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI6OmluaXRpYWxpemUgfTsKKyAgICAgICAgKCp2YWx1
ZSkuZG9TdHVmZigpOworICAgICAgICB2YWx1ZS0+ZG9TdHVmZigpOworICAgICAgICB2YWx1ZS0+
ZG9TdHVmZigpOworICAgICAgICAoKnZhbHVlKS5kb1N0dWZmKCk7CisgICAgfQorICAgIEVYUEVD
VF9TVFJFUSgiaW5zdGFudGlhdGVkKCkgaW5pdGlhbGl6ZWQoKSAiLCB0YWtlTG9nU3RyKCkuY19z
dHIoKSk7Cit9CisKK307Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401639</attachid>
            <date>2020-06-11 07:04:44 -0700</date>
            <delta_ts>2020-06-12 01:19:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>30863</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNGY1Y2UxMTZlNmU4Li5kOTU1YzJmMjg0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIw
MTktMTAtMTEgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4K
KworICAgICAgICBbRU1FXSBDcmVhdGUgQ0RNUHJveHlGYWN0b3J5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI2OTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBMYXppbHlJbml0aWFsaXplZCBj
bGFzcyB0aGF0IGFsbG93cyB0byBkZWNsYXJlIGEgdHlwZSB0aGF0CisgICAgICAgIHdpbGwgYmUg
aW5pdGlhbGl6ZWQgbGF6aWx5IHdpdGggdGhlIHByb3ZpZGVkIGluaXRpYWxpemVyLiBUaGUKKyAg
ICAgICAgb3BlcmF0b3IqIGFuZCBvcGVyYXRvci0+IGNhbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUg
dmFsdWUgdGhhdCB3aWxsCisgICAgICAgIGJlIGluaXRpYWxpemVkIG9ubHkgd2hlbiB0aG9zZSBv
cGVyYXRvcnMgYXJlIHVzZWQuCisKKyAgICAgICAgT3B0aW9uYWxseSB5b3UgY2FuIHBhc3MgYSBk
ZWluaXRpYWxpemVyIHRoYXQgd2lsbCBiZSBjYWxsZWQgaWYgdGhlCisgICAgICAgIG9iamVjdCBo
YWQgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkLgorCisgICAgICAgIFRlc3Q6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xhemlseUluaXRpYWxpemVkLmNwcC4KKworICAgICAgICAq
IFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiB3dGYvTGF6aWx5SW5pdGlhbGl6ZWQuaDogQWRkZWQuCisKIDIwMjAt
MDYtMDkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VXNlIG9zX2xvZyBpbnN0ZWFkIG9mIGFzbF9sb2cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDgzZmFjMjk3NzA0OC4uNzBmNjYwZWIyZTAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1Nyw2ICsyNTcsNyBAQAogCQkw
RjhGMkI5MDE3MkUwMEYwMDA3REJEQTUgLyogQ29tcGlsYXRpb25UaHJlYWQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29tcGlsYXRpb25UaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4RjJCOUIxNzJGMjU5NDAwN0RCREE1IC8qIENvbnZlcnNpb25Nb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvbnZlcnNpb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTMy
NzRBMUMxN0Y0QjcwMENGNjU2NCAvKiBCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGOTMyNzRBMUMxN0Y0
QjcwMENGNjU2NSAvKiBMYXppbHlJbml0aWFsaXplZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMYXppbHlJbml0aWFsaXplZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjk0OTU4MzFDNTcxQ0M5MDA0MTNBNDggLyogT3JkZXJNYWtlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBPcmRlck1ha2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGOTVCNjMxMjBDQjRCNzcwMDQ3OTYzNSAvKiBEZWJ1Z0hlYXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVidWdIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOTVCNjMyMjBDQjRCNzcwMDQ3OTYzNSAvKiBEZWJ1Z0hlYXAuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVidWdIZWFwLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMDI0YTA5ZjExYTcx
Li42M2ZkM2I4OGIxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC0xMDgsNiArMTA4LDcgQEAg
c2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAgIEtleVZhbHVlUGFpci5oCiAgICAgTEVCRGVjb2Rl
ci5oCiAgICAgTGFuZ3VhZ2UuaAorICAgIExhemlseUluaXRpYWxpemVkLmgKICAgICBMaXN0RHVt
cC5oCiAgICAgTGlzdEhhc2hTZXQuaAogICAgIExpdmVuZXNzLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0xhemlseUluaXRpYWxpemVkLmggYi9Tb3VyY2UvV1RGL3d0Zi9MYXppbHlJbml0
aWFsaXplZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2I3Y2E1
NzFiZTA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTGF6aWx5SW5pdGlhbGl6
ZWQuaApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIE1ldHJvbG9n
aWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKyNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvTm9ubW92YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIExhemlseUluaXRpYWxpemVkIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShM
YXppbHlJbml0aWFsaXplZCk7CisgICAgV1RGX01BS0VfTk9OTU9WQUJMRShMYXppbHlJbml0aWFs
aXplZCk7CisKK3B1YmxpYzoKKyAgICB1c2luZyBJbml0aWFsaXplciA9IEZ1bmN0aW9uPHZvaWQo
VCYpPjsKKyAgICB1c2luZyBEZWluaXRpYWxpemVyID0gRnVuY3Rpb248dm9pZChUJik+OworCisg
ICAgTGF6aWx5SW5pdGlhbGl6ZWQoKSA9IGRlbGV0ZTsKKyAgICBMYXppbHlJbml0aWFsaXplZChJ
bml0aWFsaXplciYmIGluaXRpYWxpemVyLCBPcHRpb25hbDxEZWluaXRpYWxpemVyPiYmIGRlaW5p
dGlhbGl6ZXIgPSBudWxsb3B0KQorICAgICAgICA6IG1faW5pdGlhbGl6ZXIoV1RGTW92ZShpbml0
aWFsaXplcikpCisgICAgICAgICwgbV9kZWluaXRpYWxpemVyKFdURk1vdmUoZGVpbml0aWFsaXpl
cikpIHsgfQorICAgIH5MYXppbHlJbml0aWFsaXplZCgpCisgICAgeworICAgICAgICBpZiAobV9k
ZWluaXRpYWxpemVyICYmIGlzSW5pdGlhbGl6ZWQoKSkKKyAgICAgICAgICAgICgqbV9kZWluaXRp
YWxpemVyKShtX3ZhbHVlKTsKKyAgICB9CisKKyAgICBUJiBvcGVyYXRvciooKQorICAgIHsKKyAg
ICAgICAgaW5pdGlhbGl6ZUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybiBtX3ZhbHVlOworICAg
IH0KKworICAgIFQqIG9wZXJhdG9yLT4oKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZUlmTmVl
ZGVkKCk7CisgICAgICAgIHJldHVybiAmbV92YWx1ZTsKKyAgICB9CisKKyAgICBpbmxpbmUgYm9v
bCBpc0luaXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0luaXRpYWxpemVkLmxvYWQoKTsg
fQorCitwcml2YXRlOgorICAgIGlubGluZSB2b2lkIGluaXRpYWxpemVJZk5lZWRlZCgpCisgICAg
eworICAgICAgICBpZiAoIW1faXNJbml0aWFsaXplZC5leGNoYW5nZSh0cnVlKSkKKyAgICAgICAg
ICAgIG1faW5pdGlhbGl6ZXIobV92YWx1ZSk7CisgICAgfQorCisgICAgc3RkOjphdG9taWM8Ym9v
bD4gbV9pc0luaXRpYWxpemVkIHsgZmFsc2UgfTsKKyAgICBJbml0aWFsaXplciBtX2luaXRpYWxp
emVyOworICAgIE9wdGlvbmFsPERlaW5pdGlhbGl6ZXI+IG1fZGVpbml0aWFsaXplcjsKKyAgICBU
IG1fdmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpMYXppbHlJ
bml0aWFsaXplZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZmE0NDk0MDkwNTEuLjNjZTMzNTE5NDNmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTA2LTExICBYYWJpZXIgUm9kcmlndWV6IENh
bHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VNRV0gQ3JlYXRlIENETVBy
b3h5RmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3VycmVudGx5IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBoYXZlIHRoZSBDRE1Qcm94eSBj
YWJsZWQgaW4gdGhlCisgICAgICAgIHBsYXllciBwcml2YXRlIGFuZCBzZXQgdG8gdGhlIGluc3Rh
bmNlLiBTZXR0aW5nIHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAgIGNyZWF0ZSBrZXkgc3luYyBp
c3N1ZXMgdGhhdCBhcmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2VzIG5vdCBzZWVtCisgICAgICAg
IHRvIGJlIG5lZWRlZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVkIGluIHRoZSBjb25zdHJ1Y3Rv
ciBmcm9tIGEKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdlIGp1c3QgdXNlIHRoZSBrZXkg
c3lzdGVtIHRoYXQgd2UgYWxyZWFkeQorICAgICAgICBoYXZlLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZGVjbGFyZXMgYSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1c2VkIGluIHRoZQorICAgICAg
ICBDRE1JbnN0YW5jZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBwcm9wZXIgQ0RNUHJveHkgaW4g
aXRzCisgICAgICAgIGNvbnN0cnVjdG9yLgorCisgICAgICAgIENETVByb3h5RmFjdG9yeUNsZWFy
S2V5IGlzIGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFtZXIKKyAgICAgICAgcGxhdGZv
cm0gQ0RNUHJveHlGYWN0b3JpZXMuCisKKyAgICAgICAgSW5pdGlhbGl6aW5nIHRvbyBmYXN0IGNy
ZWF0ZXMgZmxha3luZXNzIGluIHNldmVyYWwgQ2xlYXJLZXkgdGVzdHMKKyAgICAgICAgYmVjYXVz
ZSBvZiBhc2tpbmcgZm9yIHByb3RlY3RlZCBtZW1vcnkgc28gd2UgbmVlZCB0byBpbml0aWFsaXpl
IGl0CisgICAgICAgIGluIGEgbGF6eSB3YXkuIEZvciB0aGF0IEkgY3JlYXRlZCBXVEY6Okxhemls
eUluaXRpYWxpemVkIHRoYXQKKyAgICAgICAgYWxsb3dzIHRvIGp1c3QgcHJvdmlkZSBhIHR5cGUg
d2l0aCBhbiBpbml0aWFsaXplciBhbmQgdXNlIHRoZQorICAgICAgICBvcGVyYXRvciogdG8gYWNj
ZXNzIGl0IGFuZCBnZXQgaXQgaW5pdGlhbGl6ZWQgbGF6aWx5CisgICAgICAgIGF1dG9tYXRpY2Fs
bHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGEgcmV3b3JrLgorCisgICAgICAgICog
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
UHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVyRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Q
cm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNETVByb3h5RmFjdG9yeTo6fkNETVByb3h5RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0YW5jZVByb3h5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9l
bmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1JbnN0YW5jZUNsZWFyS2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNETUluc3RhbmNlQ2xlYXJLZXk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2Rt
SW5zdGFuY2VBdHRhY2hlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5
RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OmNyZWF0ZUNETVByb3h5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzdXBwb3J0c0tleVN5c3RlbSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5
Lmg6CisKIDIwMjAtMDYtMDkgIFBpbmtpIEd5YW5jaGFuZGFuaSAgPHBneWFuY2hhbmRhbmlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbGVhc2UgQXNzZXJ0IEAgV2ViQ29yZTo6UmVuZGVyVHJlZUJ1
aWxkZXI6OlJlbmRlclRyZWVCdWlsZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKaW5kZXggZjlhMDY3YmIxZWY1Li43NTk3OWNm
ZmQzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5jcHAKQEAgLTM4LDYgKzM4LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorVmVjdG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRG
YWN0b3JpZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlG
YWN0b3J5Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFj
dG9yaWVzKGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQor
Cit2b2lkIENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYg
ZmFjdG9yeSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygm
ZmFjdG9yeSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOwor
fQorCit2b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0
b3J5JiBmYWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFp
bnMoJmZhY3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0
b3J5KTsKK30KKworUmVmPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5
Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Q
cm94eT4gY2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5
OjpyZWdpc3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRz
S2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+
Y3JlYXRlQ0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorICAgIEFTU0VSVChjZG1Qcm94eSk7CisgICAgcmV0dXJuIGNkbVByb3h5LnJlbGVh
c2VOb25OdWxsKCk7Cit9CisKKyNpZiAhVVNFKEdTVFJFQU1FUikKK3ZvaWQgQ0RNUHJveHlGYWN0
b3J5OjpwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYp
Cit7Cit9CisjZW5kaWYKKwogbmFtZXNwYWNlIHsKIAogc3RhdGljIFN0cmluZyB2ZWN0b3JUb0hl
eFN0cmluZyhjb25zdCBWZWN0b3I8dWludDhfdD4mIHZlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGI0NmVmNjcwYTA1NC4u
MGQ3NzBkMWI3ZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0
ZWRtZWRpYS9DRE1Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL0NETVByb3h5LmgKQEAgLTE1Niw2ICsxNTYsMjYgQEAgcHJpdmF0ZToKICAgICBLZXlT
dG9yZSBtX2tleVN0b3JlOwogfTsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5DRE1Qcm94eUZhY3RvcnkoKSB7IH07CisKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCByZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5Jik7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgdW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBSZWY8Q0RN
UHJveHk+IGNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpOworCisgICAg
Ly8gUGxhdGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBsaXN0
IG9mCisgICAgLy8gcmVnaXN0ZXJlZCBDRE1Qcm94eUZhY3Rvcnkgb2JqZWN0cyBpcyBxdWVyaWVk
IGZvciB0aGUgZmlyc3QgdGltZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBwbGF0
Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYpOworCitwcm90
ZWN0ZWQ6CisgICAgdmlydHVhbCBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0
IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3Qg
U3RyaW5nJikgPSAwOworCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0
b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKK307CisKIGNsYXNz
IENETUluc3RhbmNlU2Vzc2lvblByb3h5IDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvblByb3h5LCBXZWFrUHRyRmFjdG9y
eUluaXRpYWxpemF0aW9uOjpFYWdlcj4gewogfTsKIApAQCAtMTYzLDE5ICsxODMsMTUgQEAgY2xh
c3MgQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkgOiBwdWJsaWMgQ0RNSW5zdGFuY2VTZXNzaW9uLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHIKIC8vIGZyb20gInJlYWwgQ0RNIiBzdGF0ZSBjaGFuZ2VzIHRv
IEpTLgogY2xhc3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZSB7CiBwdWJs
aWM6Ci0gICAgQ0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIH5DRE1J
bnN0YW5jZVByb3h5KCkgPSBkZWZhdWx0OwotCi0gICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAg
ICB2b2lkIHNldFByb3h5KFJlZjxDRE1Qcm94eT4mJiBwcm94eSkKKyAgICBDRE1JbnN0YW5jZVBy
b3h5KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogICAgIHsKLSAgICAgICAgbV9jZG1Qcm94eSA9
IFdURk1vdmUocHJveHkpOworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAg
ICBtX2NkbVByb3h5ID0gQ0RNUHJveHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3Rl
bShrZXlTeXN0ZW0pOwogICAgICAgICBtX2NkbVByb3h5LT5zZXRJbnN0YW5jZSh0aGlzKTsKLSAg
ICAgICAgLy8gVGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNoZWQgYWZ0ZXIgYW4gdXBkYXRl
KCkuIE5vdAotICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFwcHMgYW5kIHRoZSBXM0MgdGVz
dC1zdWl0ZSBkbyB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9yZS5oYXNLZXlzKCkpCi0gICAg
ICAgICAgICBtX2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tleVN0b3JlKTsKICAgICB9Cisg
ICAgdmlydHVhbCB+Q0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1haW4t
dGhyZWFkIG9ubHkuCiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAg
ICAgdm9pZCByZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtl
eS9DRE1DbGVhcktleS5jcHAKaW5kZXggY2YyZDVmMWRiM2VkLi42NTMyMmVkOTllOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NE
TUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKQEAgLTQzNCw2ICs0MzQsNyBAQCBPcHRpb25hbDxT
dHJpbmc+IENETVByaXZhdGVDbGVhcktleTo6c2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3RyaW5n
JiBzZXNzaW9uSWQpCiAgICAgcmV0dXJuIHNlc3Npb25JZDsKIH0KIAorQ0RNSW5zdGFuY2VDbGVh
cktleTo6Q0RNSW5zdGFuY2VDbGVhcktleSgpIDogQ0RNSW5zdGFuY2VQcm94eSgib3JnLnczLmNs
ZWFya2V5Il9zKSB7IH07CiBDRE1JbnN0YW5jZUNsZWFyS2V5Ojp+Q0RNSW5zdGFuY2VDbGVhcktl
eSgpID0gZGVmYXVsdDsKIAogdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5Ojppbml0aWFsaXplV2l0
aENvbmZpZ3VyYXRpb24oY29uc3QgQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYsIEFsbG93RGlz
dGluY3RpdmVJZGVudGlmaWVycyBkaXN0aW5jdGl2ZUlkZW50aWZpZXJzLCBBbGxvd1BlcnNpc3Rl
bnRTdGF0ZSBwZXJzaXN0ZW50U3RhdGUsIFN1Y2Nlc3NDYWxsYmFjayYmIGNhbGxiYWNrKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkv
Q0RNQ2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2Ns
ZWFya2V5L0NETUNsZWFyS2V5LmgKaW5kZXggMDA2YzQ1YWZjZWI2Li44YmYzNjI3MmFkYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAKIGNs
YXNzIENETUluc3RhbmNlQ2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2VQcm94eSwg
cHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlQ2xlYXJLZXk+IHsKIHB1YmxpYzoKKyAg
ICBDRE1JbnN0YW5jZUNsZWFyS2V5KCk7CiAgICAgdmlydHVhbCB+Q0RNSW5zdGFuY2VDbGVhcktl
eSgpOwogCiAgICAgLy8gQ0RNSW5zdGFuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYWNjNTFhMjk3MDY4Li44NzAxYWE2NTY4ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0z
NTMyLDcgKzM1MzIsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2RtSW5z
dGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCiAgICAgbV9jZG1JbnN0YW5jZSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Q0RNSW5zdGFuY2VQcm94eSo+KCZpbnN0YW5jZSk7CiAgICAgUkVM
RUFTRV9BU1NFUlQobV9jZG1JbnN0YW5jZSk7CiAgICAgbV9jZG1JbnN0YW5jZS0+c2V0UGxheWVy
KG1fcGxheWVyKTsKLSAgICBtX2NkbUluc3RhbmNlLT5zZXRQcm94eShhZG9wdFJlZigqbmV3IENE
TVByb3h5Q2xlYXJLZXkpKTsKIAogICAgIEdSZWZQdHI8R3N0Q29udGV4dD4gY29udGV4dCA9IGFk
b3B0R1JlZihnc3RfY29udGV4dF9uZXcoImRybS1jZG0tcHJveHkiLCBGQUxTRSkpOwogICAgIEdz
dFN0cnVjdHVyZSogY29udGV4dFN0cnVjdHVyZSA9IGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0cnVj
dHVyZShjb250ZXh0LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFt
ZXIuY3BwCmluZGV4IGNhMzc1N2M5NzRiNy4uZmZmZGU0NWViNmM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCiAKLSNpbmNsdWRlICJDRE1DbGVhcktleS5oIgorI2luY2x1
ZGUgIkNETVByb3h5Q2xlYXJLZXkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw2
ICs0MCwxMSBAQCB2b2lkIENETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVj
dG9yPENETUZhY3RvcnkqPiYgZmFjdG9yaWVzKQogICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNETUZh
Y3RvcnlDbGVhcktleTo6c2luZ2xldG9uKCkpOwogfQogCit2b2lkIENETVByb3h5RmFjdG9yeTo6
cGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIGZhY3Rv
cmllcykKK3sKKyAgICBmYWN0b3JpZXMuYXBwZW5kKCZDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6
c2luZ2xldG9uKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5j
cHAKaW5kZXggYzFiNmIzNGY2ODZmLi4zZGU4MWY1NGJiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9D
RE1Qcm94eUNsZWFyS2V5LmNwcApAQCAtNjQsOSArNjQsMjUgQEAgc3RhdGljIGJvb2wgcmVhZFVJ
bnQxNihjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBidWZmZXJTaXplLCBzaXplX3QmIG9m
ZnNldCwKIAogfSAvLyBuYW1lc3BhY2Uge30KIAotQ0RNUHJveHlDbGVhcktleTo6fkNETVByb3h5
Q2xlYXJLZXkoKQorQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkmIENETVByb3h5RmFjdG9yeUNsZWFy
S2V5OjpzaW5nbGV0b24oKQogewotICAgIGdjcnlfY2lwaGVyX2Nsb3NlKG1fZ2NyeUhhbmRsZSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENETVByb3h5RmFjdG9yeUNsZWFyS2V5PiBzX2Zh
Y3Rvcnk7CisgICAgcmV0dXJuIHNfZmFjdG9yeTsKK30KKworQ0RNUHJveHlGYWN0b3J5Q2xlYXJL
ZXk6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5KCkgPSBkZWZhdWx0OworQ0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXk6On5DRE1Qcm94eUZhY3RvcnlDbGVhcktleSgpID0gZGVmYXVsdDsKKworUmVmUHRy
PENETVByb3h5PiBDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6Y3JlYXRlQ0RNUHJveHkoY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0pCit7CisgICAgQVNTRVJUX1VOVVNFRChrZXlTeXN0ZW0sIHN1cHBv
cnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ0RNUHJv
eHlDbGVhcktleSgpKTsKK30KKworYm9vbCBDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c3VwcG9y
dHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisgICAgLy8gYG9yZy53My5j
bGVhcmtleWAgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIGtleSBzeXN0ZW0uCisgICAgcmV0dXJuIGVx
dWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGtleVN5c3RlbSwgIm9yZy53My5jbGVhcmtleSIp
OwogfQogCiBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNTZXRDb3VudGVyVmVjdG9yKGNvbnN0
IGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCkBAIC04Myw3ICs5OSw3IEBAIGJvb2wgQ0RNUHJv
eHlDbGVhcktleTo6Y2VuY1NldENvdW50ZXJWZWN0b3IoY29uc3QgY2VuY0RlY3J5cHRDb250ZXh0
JiBpbnB1dCkKICAgICB9IGVsc2UKICAgICAgICAgbWVtY3B5KGN0ciwgaW5wdXQuaXYsIENsZWFy
S2V5OjpJVlNpemVJbkJ5dGVzKTsKIAotICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3Ig
PSBnY3J5X2NpcGhlcl9zZXRjdHIobV9nY3J5SGFuZGxlLCBjdHIsIENsZWFyS2V5OjpJVlNpemVJ
bkJ5dGVzKSkgeworICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhl
cl9zZXRjdHIoKm1fZ0NyeXB0SGFuZGxlLCBjdHIsIENsZWFyS2V5OjpJVlNpemVJbkJ5dGVzKSkg
ewogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xl
YXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9zZXRjdHIpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBo
ZXJFcnJvcikpOwogI2Vsc2UKQEAgLTEwNyw3ICsxMjMsNyBAQCBib29sIENETVByb3h5Q2xlYXJL
ZXk6OmNlbmNTZXREZWNyeXB0aW9uS2V5KGNvbnN0IGNlbmNEZWNyeXB0Q29udGV4dCYgaW4pCiAg
ICAgaWYgKCFrZXlEYXRhKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoZ2NyeV9l
cnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfc2V0a2V5KG1fZ2NyeUhhbmRsZSwga2V5
RGF0YS0+ZGF0YSgpLCBrZXlEYXRhLT5zaXplKCkpKSB7CisgICAgaWYgKGdjcnlfZXJyb3JfdCBj
aXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX3NldGtleSgqbV9nQ3J5cHRIYW5kbGUsIGtleURhdGEt
PmRhdGEoKSwga2V5RGF0YS0+c2l6ZSgpKSkgewogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAg
TE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9zZXRr
ZXkpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOwogI2Vsc2UKQEAgLTEyNiw3ICsx
NDIsNyBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0RnVsbFNhbXBsZShjZW5j
RGVjcnlwdENvbnRleHQmIGluKQogCiAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJL
ZXkgLSBmdWxsLXNhbXBsZSBkZWNyeXB0aW9uOiAlenUgZW5jcnlwdGVkIGJ5dGVzIiwgaW4uZW5j
cnlwdGVkQnVmZmVyU2l6ZUluQnl0ZXMpOwogCi0gICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJF
cnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQobV9nY3J5SGFuZGxlLCBpbi5lbmNyeXB0ZWRCdWZm
ZXIsIGluLmVuY3J5cHRlZEJ1ZmZlclNpemVJbkJ5dGVzLCAwLCAwKSkgeworICAgIGlmIChnY3J5
X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0KCptX2dDcnlwdEhhbmRs
ZSwgaW4uZW5jcnlwdGVkQnVmZmVyLCBpbi5lbmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcywgMCwg
MCkpIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94
eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfZGVjcnlwdCk6ICVzIiwgZ3BnX3N0cmVycm9y
KGNpcGhlckVycm9yKSk7CiAjZWxzZQpAQCAtMTcwLDcgKzE4Niw3IEBAIGJvb2wgQ0RNUHJveHlD
bGVhcktleTo6Y2VuY0RlY3J5cHRTdWJzYW1wbGVkKGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQp
CiAgICAgICAgIGlmIChzdWJzYW1wbGVOdW1FbmNyeXB0ZWRCeXRlcykgewogICAgICAgICAgICAg
TE9HKEVNRSwgIkVNRSAtIHN1YnNhbXBsZSBpbmRleCAldSAtICV1IGJ5dGVzIGVuY3J5cHRlZCAo
JWx1IGJ5dGVzIGxlZnQgdG8gZGVjcnlwdCkiLCBzdWJzYW1wbGVJbmRleCwgc3Vic2FtcGxlTnVt
RW5jcnlwdGVkQnl0ZXMsIGlucHV0LmVuY3J5cHRlZEJ1ZmZlclNpemVJbkJ5dGVzIC0gZW5jcnlw
dGVkQnVmZmVyQnl0ZU9mZnNldCk7CiAKLSAgICAgICAgICAgIGlmIChnY3J5X2Vycm9yX3QgY2lw
aGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0KG1fZ2NyeUhhbmRsZSwgaW5wdXQuZW5jcnlw
dGVkQnVmZmVyICsgZW5jcnlwdGVkQnVmZmVyQnl0ZU9mZnNldCwgc3Vic2FtcGxlTnVtRW5jcnlw
dGVkQnl0ZXMsIDAsIDApKSB7CisgICAgICAgICAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVy
cm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlwdCgqbV9nQ3J5cHRIYW5kbGUsIGlucHV0LmVuY3J5cHRl
ZEJ1ZmZlciArIGVuY3J5cHRlZEJ1ZmZlckJ5dGVPZmZzZXQsIHN1YnNhbXBsZU51bUVuY3J5cHRl
ZEJ5dGVzLCAwLCAwKSkgewogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgICAgICAgICBMT0co
RU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVyX2RlY3J5cHQp
OiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOwogI2Vsc2UKQEAgLTE5NCw5ICsyMTAs
OSBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0KENETVByb3h5Q2xlYXJLZXk6
OmNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCiAgICAgcmV0dXJuIGlucHV0LmlzU3Vic2FtcGxl
ZCgpID8gY2VuY0RlY3J5cHRTdWJzYW1wbGVkKGlucHV0KSA6IGNlbmNEZWNyeXB0RnVsbFNhbXBs
ZShpbnB1dCk7CiB9CiAKLXZvaWQgQ0RNUHJveHlDbGVhcktleTo6aW5pdGlhbGl6ZUdjcnlwdCgp
Cit2b2lkIENETVByb3h5Q2xlYXJLZXk6OmluaXRpYWxpemVHQ3J5cHQoZ2NyeV9jaXBoZXJfaGRf
dCYgZ0NyeXB0SGFuZGxlKQogewotICAgIGlmIChnY3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2Np
cGhlcl9vcGVuKCZtX2djcnlIYW5kbGUsIEdDUllfQ0lQSEVSX0FFUzEyOCwgR0NSWV9DSVBIRVJf
TU9ERV9DVFIsIEdDUllfQ0lQSEVSX1NFQ1VSRSkpIHsKKyAgICBpZiAoZ2NyeV9lcnJvcl90IGVy
cm9yID0gZ2NyeV9jaXBoZXJfb3BlbigmZ0NyeXB0SGFuZGxlLCBHQ1JZX0NJUEhFUl9BRVMxMjgs
IEdDUllfQ0lQSEVSX01PREVfQ1RSLCBHQ1JZX0NJUEhFUl9TRUNVUkUpKSB7CiAjaWYgIUxPR19E
SVNBQkxFRAogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9S
KGdjcnlfY2lwaGVyX29wZW4pOiAlcyIsIGdwZ19zdHJlcnJvcihlcnJvcikpOwogI2Vsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
Q0RNUHJveHlDbGVhcktleS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKaW5kZXggNTAyNDBjOWY4ZDRjLi5mYWJmMzVj
OGExZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCkBAIC0zNiwxOSArMzYs
MzIgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDxnY3J5cHQuaD4KICNp
bmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0xhemlseUluaXRpYWxpemVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvckhhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1Qcm94eUZh
Y3RvcnkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRp
YyBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSYgc2luZ2xldG9uKCk7CisKKyAgICB2aXJ0dWFsIH5D
RE1Qcm94eUZhY3RvcnlDbGVhcktleSgpOworCisgICAgUmVmUHRyPENETVByb3h5PiBjcmVhdGVD
RE1Qcm94eShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzS2V5U3lzdGVt
KGNvbnN0IFN0cmluZyYpIGZpbmFsOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBOZXZl
ckRlc3Ryb3llZDxDRE1Qcm94eUZhY3RvcnlDbGVhcktleT47CisgICAgQ0RNUHJveHlGYWN0b3J5
Q2xlYXJLZXkoKTsKK307CisKIC8vIFRoaXMgaXMgdGhlIHRocmVhZC1zYWZlIEFQSSB0aGF0IGRl
Y29kZSB0aHJlYWRzIHNob3VsZCB1c2UgdG8gbWFrZSB1c2Ugb2YgYQogLy8gcGxhdGZvcm0gQ0RN
IG1vZHVsZS4KIGNsYXNzIENETVByb3h5Q2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNUHJveHks
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1Qcm94eUNsZWFyS2V5LCBXZWFrUHRyRmFjdG9yeUlu
aXRpYWxpemF0aW9uOjpFYWdlcj4gewogcHVibGljOgotICAgIENETVByb3h5Q2xlYXJLZXkoKQot
ICAgIHsKLSAgICAgICAgaW5pdGlhbGl6ZUdjcnlwdCgpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5D
RE1Qcm94eUNsZWFyS2V5KCk7CisgICAgQ0RNUHJveHlDbGVhcktleSgpID0gZGVmYXVsdDsKKyAg
ICB2aXJ0dWFsIH5DRE1Qcm94eUNsZWFyS2V5KCkgPSBkZWZhdWx0OwogCiAgICAgLy8gRklYTUU6
IFRoZXJlJ3MgYSBsYWNrIG9mIGNvbnNpc3RlbmN5IGJldHdlZW4gU2hhcmVkQnVmZmVycywKICAg
ICAvLyBWZWN0b3I8Y2hhcj4ncyBhbmQge3VpbnQ4X3QqLHNpemVfdH0gaWRpb21zIGZvciByZXBy
ZXNlbnRpbmcgYSBjaHVuayBvZgpAQCAtODgsNyArMTAxLDggQEAgcHVibGljOgogICAgIGJvb2wg
Y2VuY0RlY3J5cHQoY2VuY0RlY3J5cHRDb250ZXh0Jik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBp
bml0aWFsaXplR2NyeXB0KCk7CisgICAgZ2NyeV9jaXBoZXJfaGRfdCYgZ0NyeXB0SGFuZGxlKCk7
CisgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdDcnlwdChnY3J5X2NpcGhlcl9oZF90Jik7CiAK
ICAgICAvLyBGSVhNRTogRm9yIG5vdyB3ZSBvbmx5IHN1cHBvcnQgQUVTIGluIENUUiBtb2RlLCBp
biB0aGUgZnV0dXJlCiAgICAgLy8gd2Ugd2lsbCBzdXJlbHkgaGF2ZSB0byBzdXBwb3J0IG1vcmUg
cHJvdGVjdGlvbiBzY2hlbWVzLiBDYW4gd2UKQEAgLTk5LDcgKzExMyw4IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBjZW5jRGVjcnlwdFN1YnNhbXBsZWQoY2VuY0RlY3J5cHRDb250ZXh0Jik7CiAKICAg
ICAvLyBGSVhNRTogSXQgd291bGQgYmUgbmljZSB0byB1c2Ugc29tZXRoaW5nIGluIFdlYkNvcmUg
Zm9yIGNyeXB0by4uLgotICAgIGdjcnlfY2lwaGVyX2hkX3QgbV9nY3J5SGFuZGxlOworICAgIExh
emlseUluaXRpYWxpemVkPGdjcnlfY2lwaGVyX2hkX3Q+IG1fZ0NyeXB0SGFuZGxlIHsgQ0RNUHJv
eHlDbGVhcktleTo6aW5pdGlhbGl6ZUdDcnlwdAorICAgICAgICAsIE9wdGlvbmFsPExhemlseUlu
aXRpYWxpemVkPGdjcnlfY2lwaGVyX2hkX3Q+OjpEZWluaXRpYWxpemVyPihnY3J5X2NpcGhlcl9j
bG9zZSkgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiNTQxMjJhNWQ1NTQuLjgzZjlmOTI1
ODM0NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE5LTEwLTExICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNh
bHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VNRV0gQ3JlYXRlIENETVByb3h5RmFjdG9y
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBp
cyB0aGUgdGVzdCBmb3IgTGF6aWx5SW5pdGlhbGl6ZWQgY2xhc3MuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0xhemlseUluaXRpYWxpemVkLmNwcDogQWRkZWQuCisKIDIwMjAtMDYtMTAg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyByMjYyODA3LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYThhNTJhMGEyMGUwLi44Yjc3YmU1Yzk5MzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3Rz
LnR4dApAQCAtNTEsNiArNTEsNyBAQCBzZXQoVGVzdFdURl9TT1VSQ0VTCiAgICAgVGVzdHMvV1RG
L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwCiAgICAgVGVzdHMvV1RGL0l0ZXJhdG9yUmFu
Z2UuY3BwCiAgICAgVGVzdHMvV1RGL0pTT05WYWx1ZS5jcHAKKyAgICBUZXN0cy9XVEYvTGF6aWx5
SW5pdGlhbGl6ZWQuY3BwCiAgICAgVGVzdHMvV1RGL0xFQkRlY29kZXIuY3BwCiAgICAgVGVzdHMv
V1RGL0xpZmVjeWNsZUxvZ2dlci5jcHAKICAgICBUZXN0cy9XVEYvTGluZUVuZGluZy5jcHAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWJmYjg0MDNlNzU1Li5kOWU1NDhhZGZhMWYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTYsNiArNTU2LDcgQEAKIAkJN0M4M0RGMTQxRDBBNTkw
QzAwRkVCQ0YzIC8qIFJlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0E0MjdBQTE4MERBMjY0MDBDRDI0RDcgLyogUmVmLmNwcCAqLzsgfTsKIAkJ
N0M4M0RGMTUxRDBBNTkwQzAwRkVCQ0YzIC8qIFJlZkNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZCRDE5OTcxQTJEQjA1QjAwNkRDRjBB
IC8qIFJlZkNvdW50ZXIuY3BwICovOyB9OwogCQk3QzgzREYxNjFEMEE1OTBDMDBGRUJDRjMgLyog
UmVmUHRyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTQyN0E4MTgwRDlCMDcwMENEMjRENyAvKiBSZWZQdHIuY3BwICovOyB9OworCQk3QzgzREYx
NzFEMEE1OTBDMDBGRUJDRjMgLyogTGF6aWx5SW5pdGlhbGl6ZWQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBNDI3QTgxODBEOUIwNzAwQ0QyNEQ4
IC8qIExhemlseUluaXRpYWxpemVkLmNwcCAqLzsgfTsKIAkJN0M4M0RGMUQxRDBBNTkwQzAwRkVC
Q0YzIC8qIExvY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZGQzQ1QTQxQjczRUJFMjAwODVCRDYyIC8qIExvY2suY3BwICovOyB9OwogCQk3Qzgz
REYyNDFEMEE1OTBDMDBGRUJDRjMgLyogUmV0YWluUHRyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMjlCMUIxNDg2QjI1OTAwODE3REE5IC8qIFJl
dGFpblB0ci5tbSAqLzsgfTsKIAkJN0M4M0RGMjYxRDBBNTkwQzAwRkVCQ0YzIC8qIFNhdHVyYXRl
ZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0RjNCMTEyMTVFNDVFQUIwMDIxMDA2OSAvKiBTYXR1cmF0ZWRBcml0
aG1ldGljT3BlcmF0aW9ucy5jcHAgKi87IH07CkBAIC0yMzIwLDYgKzIzMjEsNyBAQAogCQk5MzlC
RkUzOTE4RTU1NDg5MDA4ODMyNzUgLyogU3RyaW5nVHJ1bmNhdG9yLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3RyaW5nVHJ1bmNhdG9yLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0EyNTg5ODFGOTJGRjE1MDAzRTUxMEMgLyogVGV4dENvZGVj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDb2RlYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzQTQyN0E4MTgwRDlCMDcwMENEMjRENyAvKiBSZWZQdHIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVmUHRyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBNDI3QTgxODBEOUIwNzAwQ0QyNEQ4IC8qIExhemlseUluaXRp
YWxpemVkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhemlseUlu
aXRpYWxpemVkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBNDI3QUExODBE
QTI2NDAwQ0QyNEQ3IC8qIFJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E0MjdBQzE4MERB
NjBGMDBDRDI0RDcgLyogTW92ZU9ubHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW92ZU9ubHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBNDI3QUQxODBEQTYwRjAwQ0QyNEQ3IC8qIFJl
ZkxvZ2dlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZMb2dnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQwNDYsNiArNDA0OCw3IEBACiAJCQkJNDQyQkJGNjgxQzkxQ0FEOTAwMTcw
ODdGIC8qIFJlZkxvZ2dlci5jcHAgKi8sCiAJCQkJOTNBNDI3QUQxODBEQTYwRjAwQ0QyNEQ3IC8q
IFJlZkxvZ2dlci5oICovLAogCQkJCTkzQTQyN0E4MTgwRDlCMDcwMENEMjRENyAvKiBSZWZQdHIu
Y3BwICovLAorCQkJCTkzQTQyN0E4MTgwRDlCMDcwMENEMjREOCAvKiBMYXppbHlJbml0aWFsaXpl
ZC5jcHAgKi8sCiAJCQkJRTRDOUFCQzcxQjNEQjE3MTAwNDBBOTg3IC8qIFJ1bkxvb3AuY3BwICov
LAogCQkJCTE0RjNCMTEyMTVFNDVFQUIwMDIxMDA2OSAvKiBTYXR1cmF0ZWRBcml0aG1ldGljT3Bl
cmF0aW9ucy5jcHAgKi8sCiAJCQkJMUEzNTI0QUMxRDYzQTRGQjAwMzE3MjlCIC8qIFNjb3BlLmNw
cCAqLywKQEAgLTQ3NTYsNiArNDc1OSw3IEBACiAJCQkJN0M4M0RGMTUxRDBBNTkwQzAwRkVCQ0Yz
IC8qIFJlZkNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RFRDcxRDBBNTkwQzAw
RkVCQ0YzIC8qIFJlZkxvZ2dlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzREYxNjFEMEE1
OTBDMDBGRUJDRjMgLyogUmVmUHRyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdDODNERjE3MUQw
QTU5MEMwMEZFQkNGMyAvKiBMYXppbHlJbml0aWFsaXplZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0NEFDOEJDNjIxRDAyNDVBMDBDQUZCMzQgLyogUmV0YWluUHRyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDODNERjI0MUQwQTU5MEMwMEZFQkNGMyAvKiBSZXRhaW5QdHIubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzgzREYwNTFEMEE1OTBDMDBGRUJDRjMgLyogUnVuTG9vcC5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xhemls
eUluaXRpYWxpemVkLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xhemlseUlu
aXRpYWxpemVkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ0
YTlhZmE0ODg2YQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0xhemlseUluaXRpYWxpemVkLmNwcApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkxvZ2dlci5oIgorI2luY2x1ZGUg
PHd0Zi9MYXppbHlJbml0aWFsaXplZC5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisK
K3N0cnVjdCBMYXppbHlJbml0aWFsaXplZExvZ2dlciB7CisgICAgTGF6aWx5SW5pdGlhbGl6ZWRM
b2dnZXIoKTsKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKExhemlseUluaXRpYWxpemVkTG9n
Z2VyJik7CisgICAgc3RhdGljIHZvaWQgZGVpbml0aWFsaXplKExhemlseUluaXRpYWxpemVkTG9n
Z2VyJik7CisgICAgdm9pZCBkb1N0dWZmKCkgeyB9Cit9OworCitMYXppbHlJbml0aWFsaXplZExv
Z2dlcjo6TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXIoKQoreworICAgIGxvZygpIDw8ICJpbnN0YW50
aWF0ZWQoKSAiOworfQorCit2b2lkIExhemlseUluaXRpYWxpemVkTG9nZ2VyOjppbml0aWFsaXpl
KExhemlseUluaXRpYWxpemVkTG9nZ2VyJiBsb2dnZXIpCit7CisgICAgbG9nKCkgPDwgImluaXRp
YWxpemVkKCkgIjsKK30KKwordm9pZCBMYXppbHlJbml0aWFsaXplZExvZ2dlcjo6ZGVpbml0aWFs
aXplKExhemlseUluaXRpYWxpemVkTG9nZ2VyJiBsb2dnZXIpCit7CisgICAgbG9nKCkgPDwgImRl
aW5pdGlhbGl6ZWQoKSAiOworfQorCitURVNUKFdURl9MYXppbHlJbml0aWFsaXplZCwgQmFzaWMp
Cit7CisgICAgeworICAgICAgICBMYXppbHlJbml0aWFsaXplZDxMYXppbHlJbml0aWFsaXplZExv
Z2dlcj4gdmFsdWUgeyBMYXppbHlJbml0aWFsaXplZExvZ2dlcjo6aW5pdGlhbGl6ZSB9OworICAg
IH0KKyAgICBFWFBFQ1RfU1RSRVEoImluc3RhbnRpYXRlZCgpICIsIHRha2VMb2dTdHIoKS5jX3N0
cigpKTsKKworICAgIHsKKyAgICAgICAgTGF6aWx5SW5pdGlhbGl6ZWQ8TGF6aWx5SW5pdGlhbGl6
ZWRMb2dnZXI+IHZhbHVlIHsgTGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI6OmluaXRpYWxpemUgfTsK
KyAgICAgICAgKCp2YWx1ZSkuZG9TdHVmZigpOworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoImlu
c3RhbnRpYXRlZCgpIGluaXRpYWxpemVkKCkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworCisg
ICAgeworICAgICAgICBMYXppbHlJbml0aWFsaXplZDxMYXppbHlJbml0aWFsaXplZExvZ2dlcj4g
dmFsdWUgeyBMYXppbHlJbml0aWFsaXplZExvZ2dlcjo6aW5pdGlhbGl6ZSB9OworICAgICAgICB2
YWx1ZS0+ZG9TdHVmZigpOworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoImluc3RhbnRpYXRlZCgp
IGluaXRpYWxpemVkKCkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworCisgICAgeworICAgICAg
ICBMYXppbHlJbml0aWFsaXplZDxMYXppbHlJbml0aWFsaXplZExvZ2dlcj4gdmFsdWUgeyBMYXpp
bHlJbml0aWFsaXplZExvZ2dlcjo6aW5pdGlhbGl6ZSB9OworICAgICAgICAoKnZhbHVlKS5kb1N0
dWZmKCk7CisgICAgICAgIHZhbHVlLT5kb1N0dWZmKCk7CisgICAgICAgIHZhbHVlLT5kb1N0dWZm
KCk7CisgICAgICAgICgqdmFsdWUpLmRvU3R1ZmYoKTsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVR
KCJpbnN0YW50aWF0ZWQoKSBpbml0aWFsaXplZCgpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsK
K30KKworVEVTVChXVEZfTGF6aWx5SW5pdGlhbGl6ZWQsIERlaW5pdGlhbGl6ZXIpCit7CisgICAg
eworICAgICAgICBMYXppbHlJbml0aWFsaXplZDxMYXppbHlJbml0aWFsaXplZExvZ2dlcj4gdmFs
dWUgeyBMYXppbHlJbml0aWFsaXplZExvZ2dlcjo6aW5pdGlhbGl6ZQorICAgICAgICAgICAgLCBP
cHRpb25hbDxMYXppbHlJbml0aWFsaXplZDxMYXppbHlJbml0aWFsaXplZExvZ2dlcj46OkRlaW5p
dGlhbGl6ZXI+KExhemlseUluaXRpYWxpemVkTG9nZ2VyOjpkZWluaXRpYWxpemUpIH07CisgICAg
fQorICAgIEVYUEVDVF9TVFJFUSgiaW5zdGFudGlhdGVkKCkgIiwgdGFrZUxvZ1N0cigpLmNfc3Ry
KCkpOworCisgICAgeworICAgICAgICBMYXppbHlJbml0aWFsaXplZDxMYXppbHlJbml0aWFsaXpl
ZExvZ2dlcj4gdmFsdWUgeyBMYXppbHlJbml0aWFsaXplZExvZ2dlcjo6aW5pdGlhbGl6ZQorICAg
ICAgICAgICAgLCBPcHRpb25hbDxMYXppbHlJbml0aWFsaXplZDxMYXppbHlJbml0aWFsaXplZExv
Z2dlcj46OkRlaW5pdGlhbGl6ZXI+KExhemlseUluaXRpYWxpemVkTG9nZ2VyOjpkZWluaXRpYWxp
emUpIH07CisgICAgICAgIHZhbHVlLT5kb1N0dWZmKCk7CisgICAgfQorICAgIEVYUEVDVF9TVFJF
USgiaW5zdGFudGlhdGVkKCkgaW5pdGlhbGl6ZWQoKSBkZWluaXRpYWxpemVkKCkgIiwgdGFrZUxv
Z1N0cigpLmNfc3RyKCkpOworfQorCit9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401713</attachid>
            <date>2020-06-12 01:19:40 -0700</date>
            <delta_ts>2020-06-15 08:07:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>30891</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNGY1Y2UxMTZlNmU4Li5kOTU1YzJmMjg0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIw
MTktMTAtMTEgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4K
KworICAgICAgICBbRU1FXSBDcmVhdGUgQ0RNUHJveHlGYWN0b3J5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI2OTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBMYXppbHlJbml0aWFsaXplZCBj
bGFzcyB0aGF0IGFsbG93cyB0byBkZWNsYXJlIGEgdHlwZSB0aGF0CisgICAgICAgIHdpbGwgYmUg
aW5pdGlhbGl6ZWQgbGF6aWx5IHdpdGggdGhlIHByb3ZpZGVkIGluaXRpYWxpemVyLiBUaGUKKyAg
ICAgICAgb3BlcmF0b3IqIGFuZCBvcGVyYXRvci0+IGNhbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUg
dmFsdWUgdGhhdCB3aWxsCisgICAgICAgIGJlIGluaXRpYWxpemVkIG9ubHkgd2hlbiB0aG9zZSBv
cGVyYXRvcnMgYXJlIHVzZWQuCisKKyAgICAgICAgT3B0aW9uYWxseSB5b3UgY2FuIHBhc3MgYSBk
ZWluaXRpYWxpemVyIHRoYXQgd2lsbCBiZSBjYWxsZWQgaWYgdGhlCisgICAgICAgIG9iamVjdCBo
YWQgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkLgorCisgICAgICAgIFRlc3Q6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xhemlseUluaXRpYWxpemVkLmNwcC4KKworICAgICAgICAq
IFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiB3dGYvTGF6aWx5SW5pdGlhbGl6ZWQuaDogQWRkZWQuCisKIDIwMjAt
MDYtMDkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VXNlIG9zX2xvZyBpbnN0ZWFkIG9mIGFzbF9sb2cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDgzZmFjMjk3NzA0OC4uNzBmNjYwZWIyZTAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1Nyw2ICsyNTcsNyBAQAogCQkw
RjhGMkI5MDE3MkUwMEYwMDA3REJEQTUgLyogQ29tcGlsYXRpb25UaHJlYWQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29tcGlsYXRpb25UaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4RjJCOUIxNzJGMjU5NDAwN0RCREE1IC8qIENvbnZlcnNpb25Nb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvbnZlcnNpb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTMy
NzRBMUMxN0Y0QjcwMENGNjU2NCAvKiBCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGOTMyNzRBMUMxN0Y0
QjcwMENGNjU2NSAvKiBMYXppbHlJbml0aWFsaXplZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMYXppbHlJbml0aWFsaXplZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjk0OTU4MzFDNTcxQ0M5MDA0MTNBNDggLyogT3JkZXJNYWtlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBPcmRlck1ha2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGOTVCNjMxMjBDQjRCNzcwMDQ3OTYzNSAvKiBEZWJ1Z0hlYXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVidWdIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOTVCNjMyMjBDQjRCNzcwMDQ3OTYzNSAvKiBEZWJ1Z0hlYXAuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVidWdIZWFwLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMDI0YTA5ZjExYTcx
Li42M2ZkM2I4OGIxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC0xMDgsNiArMTA4LDcgQEAg
c2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAgIEtleVZhbHVlUGFpci5oCiAgICAgTEVCRGVjb2Rl
ci5oCiAgICAgTGFuZ3VhZ2UuaAorICAgIExhemlseUluaXRpYWxpemVkLmgKICAgICBMaXN0RHVt
cC5oCiAgICAgTGlzdEhhc2hTZXQuaAogICAgIExpdmVuZXNzLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0xhemlseUluaXRpYWxpemVkLmggYi9Tb3VyY2UvV1RGL3d0Zi9MYXppbHlJbml0
aWFsaXplZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2I3Y2E1
NzFiZTA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTGF6aWx5SW5pdGlhbGl6
ZWQuaApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIE1ldHJvbG9n
aWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKyNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvTm9ubW92YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIExhemlseUluaXRpYWxpemVkIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShM
YXppbHlJbml0aWFsaXplZCk7CisgICAgV1RGX01BS0VfTk9OTU9WQUJMRShMYXppbHlJbml0aWFs
aXplZCk7CisKK3B1YmxpYzoKKyAgICB1c2luZyBJbml0aWFsaXplciA9IEZ1bmN0aW9uPHZvaWQo
VCYpPjsKKyAgICB1c2luZyBEZWluaXRpYWxpemVyID0gRnVuY3Rpb248dm9pZChUJik+OworCisg
ICAgTGF6aWx5SW5pdGlhbGl6ZWQoKSA9IGRlbGV0ZTsKKyAgICBMYXppbHlJbml0aWFsaXplZChJ
bml0aWFsaXplciYmIGluaXRpYWxpemVyLCBPcHRpb25hbDxEZWluaXRpYWxpemVyPiYmIGRlaW5p
dGlhbGl6ZXIgPSBudWxsb3B0KQorICAgICAgICA6IG1faW5pdGlhbGl6ZXIoV1RGTW92ZShpbml0
aWFsaXplcikpCisgICAgICAgICwgbV9kZWluaXRpYWxpemVyKFdURk1vdmUoZGVpbml0aWFsaXpl
cikpIHsgfQorICAgIH5MYXppbHlJbml0aWFsaXplZCgpCisgICAgeworICAgICAgICBpZiAobV9k
ZWluaXRpYWxpemVyICYmIGlzSW5pdGlhbGl6ZWQoKSkKKyAgICAgICAgICAgICgqbV9kZWluaXRp
YWxpemVyKShtX3ZhbHVlKTsKKyAgICB9CisKKyAgICBUJiBvcGVyYXRvciooKQorICAgIHsKKyAg
ICAgICAgaW5pdGlhbGl6ZUlmTmVlZGVkKCk7CisgICAgICAgIHJldHVybiBtX3ZhbHVlOworICAg
IH0KKworICAgIFQqIG9wZXJhdG9yLT4oKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZUlmTmVl
ZGVkKCk7CisgICAgICAgIHJldHVybiAmbV92YWx1ZTsKKyAgICB9CisKKyAgICBpbmxpbmUgYm9v
bCBpc0luaXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0luaXRpYWxpemVkLmxvYWQoKTsg
fQorCitwcml2YXRlOgorICAgIGlubGluZSB2b2lkIGluaXRpYWxpemVJZk5lZWRlZCgpCisgICAg
eworICAgICAgICBpZiAoIW1faXNJbml0aWFsaXplZC5leGNoYW5nZSh0cnVlKSkKKyAgICAgICAg
ICAgIG1faW5pdGlhbGl6ZXIobV92YWx1ZSk7CisgICAgfQorCisgICAgc3RkOjphdG9taWM8Ym9v
bD4gbV9pc0luaXRpYWxpemVkIHsgZmFsc2UgfTsKKyAgICBJbml0aWFsaXplciBtX2luaXRpYWxp
emVyOworICAgIE9wdGlvbmFsPERlaW5pdGlhbGl6ZXI+IG1fZGVpbml0aWFsaXplcjsKKyAgICBU
IG1fdmFsdWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpMYXppbHlJ
bml0aWFsaXplZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZmE0NDk0MDkwNTEuLjNjZTMzNTE5NDNmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTA2LTExICBYYWJpZXIgUm9kcmlndWV6IENh
bHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VNRV0gQ3JlYXRlIENETVBy
b3h5RmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEyNjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3VycmVudGx5IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBoYXZlIHRoZSBDRE1Qcm94eSBj
YWJsZWQgaW4gdGhlCisgICAgICAgIHBsYXllciBwcml2YXRlIGFuZCBzZXQgdG8gdGhlIGluc3Rh
bmNlLiBTZXR0aW5nIHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAgIGNyZWF0ZSBrZXkgc3luYyBp
c3N1ZXMgdGhhdCBhcmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2VzIG5vdCBzZWVtCisgICAgICAg
IHRvIGJlIG5lZWRlZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVkIGluIHRoZSBjb25zdHJ1Y3Rv
ciBmcm9tIGEKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdlIGp1c3QgdXNlIHRoZSBrZXkg
c3lzdGVtIHRoYXQgd2UgYWxyZWFkeQorICAgICAgICBoYXZlLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZGVjbGFyZXMgYSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1c2VkIGluIHRoZQorICAgICAg
ICBDRE1JbnN0YW5jZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBwcm9wZXIgQ0RNUHJveHkgaW4g
aXRzCisgICAgICAgIGNvbnN0cnVjdG9yLgorCisgICAgICAgIENETVByb3h5RmFjdG9yeUNsZWFy
S2V5IGlzIGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFtZXIKKyAgICAgICAgcGxhdGZv
cm0gQ0RNUHJveHlGYWN0b3JpZXMuCisKKyAgICAgICAgSW5pdGlhbGl6aW5nIHRvbyBmYXN0IGNy
ZWF0ZXMgZmxha3luZXNzIGluIHNldmVyYWwgQ2xlYXJLZXkgdGVzdHMKKyAgICAgICAgYmVjYXVz
ZSBvZiBhc2tpbmcgZm9yIHByb3RlY3RlZCBtZW1vcnkgc28gd2UgbmVlZCB0byBpbml0aWFsaXpl
IGl0CisgICAgICAgIGluIGEgbGF6eSB3YXkuIEZvciB0aGF0IEkgY3JlYXRlZCBXVEY6Okxhemls
eUluaXRpYWxpemVkIHRoYXQKKyAgICAgICAgYWxsb3dzIHRvIGp1c3QgcHJvdmlkZSBhIHR5cGUg
d2l0aCBhbiBpbml0aWFsaXplciBhbmQgdXNlIHRoZQorICAgICAgICBvcGVyYXRvciogdG8gYWNj
ZXNzIGl0IGFuZCBnZXQgaXQgaW5pdGlhbGl6ZWQgbGF6aWx5CisgICAgICAgIGF1dG9tYXRpY2Fs
bHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGEgcmV3b3JrLgorCisgICAgICAgICog
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
UHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVyRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Q
cm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNETVByb3h5RmFjdG9yeTo6fkNETVByb3h5RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0YW5jZVByb3h5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9l
bmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1JbnN0YW5jZUNsZWFyS2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNETUluc3RhbmNlQ2xlYXJLZXk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2Rt
SW5zdGFuY2VBdHRhY2hlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5
RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OmNyZWF0ZUNETVByb3h5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzdXBwb3J0c0tleVN5c3RlbSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5
Lmg6CisKIDIwMjAtMDYtMDkgIFBpbmtpIEd5YW5jaGFuZGFuaSAgPHBneWFuY2hhbmRhbmlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbGVhc2UgQXNzZXJ0IEAgV2ViQ29yZTo6UmVuZGVyVHJlZUJ1
aWxkZXI6OlJlbmRlclRyZWVCdWlsZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKaW5kZXggZjlhMDY3YmIxZWY1Li44M2Q2ZmEy
YWEzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5jcHAKQEAgLTM4LDYgKzM4LDUwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorVmVjdG9yPENETVByb3h5RmFjdG9yeSo+JiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRG
YWN0b3JpZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q0RNUHJveHlG
YWN0b3J5Kj4+IGZhY3RvcmllczsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbJl0geworICAgICAgICBwbGF0Zm9ybVJlZ2lzdGVyRmFj
dG9yaWVzKGZhY3Rvcmllcyk7CisgICAgfSk7CisKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQor
Cit2b2lkIENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYg
ZmFjdG9yeSkKK3sKKyAgICBBU1NFUlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygm
ZmFjdG9yeSkpOworICAgIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOwor
fQorCit2b2lkIENETVByb3h5RmFjdG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0
b3J5JiBmYWN0b3J5KQoreworICAgIEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFp
bnMoJmZhY3RvcnkpKTsKKyAgICByZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0
b3J5KTsKK30KKworUmVmUHRyPENETVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVBy
b3h5Rm9yS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxD
RE1Qcm94eT4gY2RtUHJveHk7CisgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0
b3J5OjpyZWdpc3RlcmVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBv
cnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9y
eS0+Y3JlYXRlQ0RNUHJveHkoa2V5U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorI2lmIFVTRShHU1RSRUFNRVIpCisgICAgQVNTRVJUKGNkbVByb3h5KTsKKyNl
bmRpZgorICAgIHJldHVybiBjZG1Qcm94eTsKK30KKworI2lmICFVU0UoR1NUUkVBTUVSKQordm9p
ZCBDRE1Qcm94eUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVjdG9yPENETVBy
b3h5RmFjdG9yeSo+JikKK3sKK30KKyNlbmRpZgorCiBuYW1lc3BhY2UgewogCiBzdGF0aWMgU3Ry
aW5nIHZlY3RvclRvSGV4U3RyaW5nKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmVjKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKaW5kZXgg
YjQ2ZWY2NzBhMDU0Li5hYmE4Yjc1OWRhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaApAQCAtMTU2LDYgKzE1NiwyNiBAQCBwcml2
YXRlOgogICAgIEtleVN0b3JlIG1fa2V5U3RvcmU7CiB9OwogCitjbGFzcyBDRE1Qcm94eUZhY3Rv
cnkgeworcHVibGljOgorICAgIHZpcnR1YWwgfkNETVByb3h5RmFjdG9yeSgpIHsgfTsKKworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRmFjdG9yeShDRE1Qcm94eUZhY3Rv
cnkmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyRmFjdG9yeShD
RE1Qcm94eUZhY3RvcnkmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIFJlZlB0cjxDRE1Qcm94eT4gY3JlYXRlQ0RNUHJveHlGb3JLZXlTeXN0ZW0oY29uc3Qg
U3RyaW5nJik7CisKKyAgICAvLyBQbGF0Zm9ybS1zcGVjaWZpYyBmdW5jdGlvbiB0aGF0J3MgY2Fs
bGVkIHdoZW4gdGhlIGxpc3Qgb2YKKyAgICAvLyByZWdpc3RlcmVkIENETVByb3h5RmFjdG9yeSBv
YmplY3RzIGlzIHF1ZXJpZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgorICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB2b2lkIHBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVjdG9yPENETVByb3h5RmFj
dG9yeSo+Jik7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIFJlZlB0cjxDRE1Qcm94eT4gY3Jl
YXRlQ0RNUHJveHkoY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0tleVN5c3RlbShjb25zdCBTdHJpbmcmKSA9IDA7CisKK3ByaXZhdGU6CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiYgcmVnaXN0ZXJlZEZhY3Rvcmll
cygpOworfTsKKwogY2xhc3MgQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkgOiBwdWJsaWMgQ0RNSW5z
dGFuY2VTZXNzaW9uLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5zdGFuY2VTZXNzaW9uUHJv
eHksIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CiB9OwogCkBAIC0xNjMs
MTkgKzE4MywxNiBAQCBjbGFzcyBDRE1JbnN0YW5jZVNlc3Npb25Qcm94eSA6IHB1YmxpYyBDRE1J
bnN0YW5jZVNlc3Npb24sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cgogLy8gZnJvbSAicmVhbCBDRE0i
IHN0YXRlIGNoYW5nZXMgdG8gSlMuCiBjbGFzcyBDRE1JbnN0YW5jZVByb3h5IDogcHVibGljIENE
TUluc3RhbmNlIHsKIHB1YmxpYzoKLSAgICBDRE1JbnN0YW5jZVByb3h5KCkgPSBkZWZhdWx0Owor
ICAgIENETUluc3RhbmNlUHJveHkoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCisgICAgeworICAg
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBtX2NkbVByb3h5ID0gQ0RNUHJv
eHlGYWN0b3J5OjpjcmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbShrZXlTeXN0ZW0pOworICAgICAg
ICBpZiAobV9jZG1Qcm94eSkKKyAgICAgICAgICAgIG1fY2RtUHJveHktPnNldEluc3RhbmNlKHRo
aXMpOworICAgIH0KICAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZVByb3h5KCkgPSBkZWZhdWx0Owog
CiAgICAgLy8gTWFpbi10aHJlYWQgb25seS4KLSAgICB2b2lkIHNldFByb3h5KFJlZjxDRE1Qcm94
eT4mJiBwcm94eSkKLSAgICB7Ci0gICAgICAgIG1fY2RtUHJveHkgPSBXVEZNb3ZlKHByb3h5KTsK
LSAgICAgICAgbV9jZG1Qcm94eS0+c2V0SW5zdGFuY2UodGhpcyk7Ci0gICAgICAgIC8vIFRoZSBD
RE0gaW5zdGFuY2UgbWF5IGJlIGF0dGFjaGVkIGFmdGVyIGFuIHVwZGF0ZSgpLiBOb3QKLSAgICAg
ICAgLy8gcmVjb21tZW5kZWQsIGJ1dCBhcHBzIGFuZCB0aGUgVzNDIHRlc3Qtc3VpdGUgZG8gdGhp
cy4KLSAgICAgICAgaWYgKG1fa2V5U3RvcmUuaGFzS2V5cygpKQotICAgICAgICAgICAgbV9jZG1Q
cm94eS0+dXBkYXRlS2V5U3RvcmUobV9rZXlTdG9yZSk7Ci0gICAgfQogICAgIHZvaWQgbWVyZ2VL
ZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogICAgIHZvaWQgcmVtb3ZlQWxsS2V5c0Zyb20oY29u
c3QgS2V5U3RvcmUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCmluZGV4IGNmMmQ1
ZjFkYjNlZC4uNjUzMjJlZDk5ZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCkBA
IC00MzQsNiArNDM0LDcgQEAgT3B0aW9uYWw8U3RyaW5nPiBDRE1Qcml2YXRlQ2xlYXJLZXk6OnNh
bml0aXplU2Vzc2lvbklkKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKQogICAgIHJldHVybiBzZXNz
aW9uSWQ7CiB9CiAKK0NETUluc3RhbmNlQ2xlYXJLZXk6OkNETUluc3RhbmNlQ2xlYXJLZXkoKSA6
IENETUluc3RhbmNlUHJveHkoIm9yZy53My5jbGVhcmtleSJfcykgeyB9OwogQ0RNSW5zdGFuY2VD
bGVhcktleTo6fkNETUluc3RhbmNlQ2xlYXJLZXkoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgQ0RNSW5z
dGFuY2VDbGVhcktleTo6aW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uKGNvbnN0IENETUtleVN5
c3RlbUNvbmZpZ3VyYXRpb24mLCBBbGxvd0Rpc3RpbmN0aXZlSWRlbnRpZmllcnMgZGlzdGluY3Rp
dmVJZGVudGlmaWVycywgQWxsb3dQZXJzaXN0ZW50U3RhdGUgcGVyc2lzdGVudFN0YXRlLCBTdWNj
ZXNzQ2FsbGJhY2smJiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5oCmluZGV4IDAw
NmM0NWFmY2ViNi4uOGJmMzYyNzJhZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmgKQEAg
LTkzLDYgKzkzLDcgQEAgcHVibGljOgogCiBjbGFzcyBDRE1JbnN0YW5jZUNsZWFyS2V5IGZpbmFs
IDogcHVibGljIENETUluc3RhbmNlUHJveHksIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1JbnN0
YW5jZUNsZWFyS2V5PiB7CiBwdWJsaWM6CisgICAgQ0RNSW5zdGFuY2VDbGVhcktleSgpOwogICAg
IHZpcnR1YWwgfkNETUluc3RhbmNlQ2xlYXJLZXkoKTsKIAogICAgIC8vIENETUluc3RhbmNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGFj
YzUxYTI5NzA2OC4uODcwMWFhNjU2OGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzUzMiw3ICszNTMyLDYgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmNkbUluc3RhbmNlQXR0YWNoZWQoQ0RNSW5zdGFuY2UmIGlu
c3RhbmNlKQogICAgIG1fY2RtSW5zdGFuY2UgPSByZWludGVycHJldF9jYXN0PENETUluc3RhbmNl
UHJveHkqPigmaW5zdGFuY2UpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1fY2RtSW5zdGFuY2UpOwog
ICAgIG1fY2RtSW5zdGFuY2UtPnNldFBsYXllcihtX3BsYXllcik7Ci0gICAgbV9jZG1JbnN0YW5j
ZS0+c2V0UHJveHkoYWRvcHRSZWYoKm5ldyBDRE1Qcm94eUNsZWFyS2V5KSk7CiAKICAgICBHUmVm
UHRyPEdzdENvbnRleHQ+IGNvbnRleHQgPSBhZG9wdEdSZWYoZ3N0X2NvbnRleHRfbmV3KCJkcm0t
Y2RtLXByb3h5IiwgRkFMU0UpKTsKICAgICBHc3RTdHJ1Y3R1cmUqIGNvbnRleHRTdHJ1Y3R1cmUg
PSBnc3RfY29udGV4dF93cml0YWJsZV9zdHJ1Y3R1cmUoY29udGV4dC5nZXQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZh
Y3RvcnlHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcAppbmRleCBjYTM3NTdjOTc0YjcuLmZm
ZmRlNDVlYjZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIuY3Bw
CkBAIC0zMSw3ICszMSw3IEBACiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogCi0jaW5j
bHVkZSAiQ0RNQ2xlYXJLZXkuaCIKKyNpbmNsdWRlICJDRE1Qcm94eUNsZWFyS2V5LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsNiArNDAsMTEgQEAgdm9pZCBDRE1GYWN0b3J5Ojpw
bGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKFZlY3RvcjxDRE1GYWN0b3J5Kj4mIGZhY3RvcmllcykK
ICAgICBmYWN0b3JpZXMuYXBwZW5kKCZDRE1GYWN0b3J5Q2xlYXJLZXk6OnNpbmdsZXRvbigpKTsK
IH0KIAordm9pZCBDRE1Qcm94eUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+JiBmYWN0b3JpZXMpCit7CisgICAgZmFjdG9yaWVzLmFwcGVu
ZCgmQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnNpbmdsZXRvbigpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RN
UHJveHlDbGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwCmluZGV4IGMxYjZiMzRmNjg2Zi4uM2RlODFm
NTRiYjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKQEAgLTY0LDkg
KzY0LDI1IEBAIHN0YXRpYyBib29sIHJlYWRVSW50MTYoY29uc3QgdWludDhfdCogYnVmZmVyLCBz
aXplX3QgYnVmZmVyU2l6ZSwgc2l6ZV90JiBvZmZzZXQsCiAKIH0gLy8gbmFtZXNwYWNlIHt9CiAK
LUNETVByb3h5Q2xlYXJLZXk6On5DRE1Qcm94eUNsZWFyS2V5KCkKK0NETVByb3h5RmFjdG9yeUNs
ZWFyS2V5JiBDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6c2luZ2xldG9uKCkKIHsKLSAgICBnY3J5
X2NpcGhlcl9jbG9zZShtX2djcnlIYW5kbGUpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxD
RE1Qcm94eUZhY3RvcnlDbGVhcktleT4gc19mYWN0b3J5OworICAgIHJldHVybiBzX2ZhY3Rvcnk7
Cit9CisKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpDRE1Qcm94eUZhY3RvcnlDbGVhcktleSgp
ID0gZGVmYXVsdDsKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5Ojp+Q0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXkoKSA9IGRlZmF1bHQ7CisKK1JlZlB0cjxDRE1Qcm94eT4gQ0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXk6OmNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIEFT
U0VSVF9VTlVTRUQoa2V5U3lzdGVtLCBzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IENETVByb3h5Q2xlYXJLZXkoKSk7Cit9CisKK2Jvb2wgQ0RN
UHJveHlGYWN0b3J5Q2xlYXJLZXk6OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5
U3lzdGVtKQoreworICAgIC8vIGBvcmcudzMuY2xlYXJrZXlgIGlzIHRoZSBvbmx5IHN1cHBvcnRl
ZCBrZXkgc3lzdGVtLgorICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShr
ZXlTeXN0ZW0sICJvcmcudzMuY2xlYXJrZXkiKTsKIH0KIAogYm9vbCBDRE1Qcm94eUNsZWFyS2V5
OjpjZW5jU2V0Q291bnRlclZlY3Rvcihjb25zdCBjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0KQpA
QCAtODMsNyArOTksNyBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNTZXRDb3VudGVyVmVj
dG9yKGNvbnN0IGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCiAgICAgfSBlbHNlCiAgICAgICAg
IG1lbWNweShjdHIsIGlucHV0Lml2LCBDbGVhcktleTo6SVZTaXplSW5CeXRlcyk7CiAKLSAgICBp
ZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfc2V0Y3RyKG1fZ2NyeUhh
bmRsZSwgY3RyLCBDbGVhcktleTo6SVZTaXplSW5CeXRlcykpIHsKKyAgICBpZiAoZ2NyeV9lcnJv
cl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfc2V0Y3RyKCptX2dDcnlwdEhhbmRsZSwgY3Ry
LCBDbGVhcktleTo6SVZTaXplSW5CeXRlcykpIHsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAg
IExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfc2V0
Y3RyKTogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVyRXJyb3IpKTsKICNlbHNlCkBAIC0xMDcsNyAr
MTIzLDcgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jU2V0RGVjcnlwdGlvbktleShjb25z
dCBjZW5jRGVjcnlwdENvbnRleHQmIGluKQogICAgIGlmICgha2V5RGF0YSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lw
aGVyX3NldGtleShtX2djcnlIYW5kbGUsIGtleURhdGEtPmRhdGEoKSwga2V5RGF0YS0+c2l6ZSgp
KSkgeworICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9zZXRr
ZXkoKm1fZ0NyeXB0SGFuZGxlLCBrZXlEYXRhLT5kYXRhKCksIGtleURhdGEtPnNpemUoKSkpIHsK
ICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eUNsZWFy
S2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfc2V0a2V5KTogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVy
RXJyb3IpKTsKICNlbHNlCkBAIC0xMjYsNyArMTQyLDcgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5
OjpjZW5jRGVjcnlwdEZ1bGxTYW1wbGUoY2VuY0RlY3J5cHRDb250ZXh0JiBpbikKIAogICAgIExP
RyhFTUUsICJFTUUgLSBDRE1Qcm94eUNsZWFyS2V5IC0gZnVsbC1zYW1wbGUgZGVjcnlwdGlvbjog
JXp1IGVuY3J5cHRlZCBieXRlcyIsIGluLmVuY3J5cHRlZEJ1ZmZlclNpemVJbkJ5dGVzKTsKIAot
ICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0KG1f
Z2NyeUhhbmRsZSwgaW4uZW5jcnlwdGVkQnVmZmVyLCBpbi5lbmNyeXB0ZWRCdWZmZXJTaXplSW5C
eXRlcywgMCwgMCkpIHsKKyAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9j
aXBoZXJfZGVjcnlwdCgqbV9nQ3J5cHRIYW5kbGUsIGluLmVuY3J5cHRlZEJ1ZmZlciwgaW4uZW5j
cnlwdGVkQnVmZmVyU2l6ZUluQnl0ZXMsIDAsIDApKSB7CiAjaWYgIUxPR19ESVNBQkxFRAogICAg
ICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVy
X2RlY3J5cHQpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOwogI2Vsc2UKQEAgLTE3
MCw3ICsxODYsNyBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0U3Vic2FtcGxl
ZChjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0KQogICAgICAgICBpZiAoc3Vic2FtcGxlTnVtRW5j
cnlwdGVkQnl0ZXMpIHsKICAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBzdWJzYW1wbGUgaW5k
ZXggJXUgLSAldSBieXRlcyBlbmNyeXB0ZWQgKCVsdSBieXRlcyBsZWZ0IHRvIGRlY3J5cHQpIiwg
c3Vic2FtcGxlSW5kZXgsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCBpbnB1dC5lbmNyeXB0
ZWRCdWZmZXJTaXplSW5CeXRlcyAtIGVuY3J5cHRlZEJ1ZmZlckJ5dGVPZmZzZXQpOwogCi0gICAg
ICAgICAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlw
dChtX2djcnlIYW5kbGUsIGlucHV0LmVuY3J5cHRlZEJ1ZmZlciArIGVuY3J5cHRlZEJ1ZmZlckJ5
dGVPZmZzZXQsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCAwLCAwKSkgeworICAgICAgICAg
ICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQoKm1f
Z0NyeXB0SGFuZGxlLCBpbnB1dC5lbmNyeXB0ZWRCdWZmZXIgKyBlbmNyeXB0ZWRCdWZmZXJCeXRl
T2Zmc2V0LCBzdWJzYW1wbGVOdW1FbmNyeXB0ZWRCeXRlcywgMCwgMCkpIHsKICNpZiAhTE9HX0RJ
U0FCTEVECiAgICAgICAgICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkg
LSBFUlJPUihnY3J5X2NpcGhlcl9kZWNyeXB0KTogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVyRXJy
b3IpKTsKICNlbHNlCkBAIC0xOTQsOSArMjEwLDkgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5Ojpj
ZW5jRGVjcnlwdChDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0KQog
ICAgIHJldHVybiBpbnB1dC5pc1N1YnNhbXBsZWQoKSA/IGNlbmNEZWNyeXB0U3Vic2FtcGxlZChp
bnB1dCkgOiBjZW5jRGVjcnlwdEZ1bGxTYW1wbGUoaW5wdXQpOwogfQogCi12b2lkIENETVByb3h5
Q2xlYXJLZXk6OmluaXRpYWxpemVHY3J5cHQoKQordm9pZCBDRE1Qcm94eUNsZWFyS2V5Ojppbml0
aWFsaXplR0NyeXB0KGdjcnlfY2lwaGVyX2hkX3QmIGdDcnlwdEhhbmRsZSkKIHsKLSAgICBpZiAo
Z2NyeV9lcnJvcl90IGVycm9yID0gZ2NyeV9jaXBoZXJfb3BlbigmbV9nY3J5SGFuZGxlLCBHQ1JZ
X0NJUEhFUl9BRVMxMjgsIEdDUllfQ0lQSEVSX01PREVfQ1RSLCBHQ1JZX0NJUEhFUl9TRUNVUkUp
KSB7CisgICAgaWYgKGdjcnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJmdDcnlw
dEhhbmRsZSwgR0NSWV9DSVBIRVJfQUVTMTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0NUUiwgR0NSWV9D
SVBIRVJfU0VDVVJFKSkgewogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgTE9HKEVNRSwgIkVN
RSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9vcGVuKTogJXMiLCBncGdf
c3RyZXJyb3IoZXJyb3IpKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5o
CmluZGV4IDUwMjQwYzlmOGQ0Yy4uZmFiZjM1YzhhMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVBy
b3h5Q2xlYXJLZXkuaApAQCAtMzYsMTkgKzM2LDMyIEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
LmgiCiAjaW5jbHVkZSA8Z2NyeXB0Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2lu
Y2x1ZGUgPHd0Zi9MYXppbHlJbml0aWFsaXplZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3JIYXNo
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ0RNUHJveHlGYWN0b3J5Q2xlYXJL
ZXkgZmluYWwgOiBwdWJsaWMgQ0RNUHJveHlGYWN0b3J5IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkmIHNp
bmdsZXRvbigpOworCisgICAgdmlydHVhbCB+Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkoKTsKKwor
ICAgIFJlZlB0cjxDRE1Qcm94eT4gY3JlYXRlQ0RNUHJveHkoY29uc3QgU3RyaW5nJikgZmluYWw7
CisgICAgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKworcHJp
dmF0ZToKKyAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8Q0RNUHJveHlGYWN0b3J5Q2xl
YXJLZXk+OworICAgIENETVByb3h5RmFjdG9yeUNsZWFyS2V5KCk7Cit9OworCiAvLyBUaGlzIGlz
IHRoZSB0aHJlYWQtc2FmZSBBUEkgdGhhdCBkZWNvZGUgdGhyZWFkcyBzaG91bGQgdXNlIHRvIG1h
a2UgdXNlIG9mIGEKIC8vIHBsYXRmb3JtIENETSBtb2R1bGUuCiBjbGFzcyBDRE1Qcm94eUNsZWFy
S2V5IGZpbmFsIDogcHVibGljIENETVByb3h5LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNUHJv
eHlDbGVhcktleSwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsKIHB1Ymxp
YzoKLSAgICBDRE1Qcm94eUNsZWFyS2V5KCkKLSAgICB7Ci0gICAgICAgIGluaXRpYWxpemVHY3J5
cHQoKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+Q0RNUHJveHlDbGVhcktleSgpOworICAgIENETVBy
b3h5Q2xlYXJLZXkoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+Q0RNUHJveHlDbGVhcktleSgp
ID0gZGVmYXVsdDsKIAogICAgIC8vIEZJWE1FOiBUaGVyZSdzIGEgbGFjayBvZiBjb25zaXN0ZW5j
eSBiZXR3ZWVuIFNoYXJlZEJ1ZmZlcnMsCiAgICAgLy8gVmVjdG9yPGNoYXI+J3MgYW5kIHt1aW50
OF90KixzaXplX3R9IGlkaW9tcyBmb3IgcmVwcmVzZW50aW5nIGEgY2h1bmsgb2YKQEAgLTg4LDcg
KzEwMSw4IEBAIHB1YmxpYzoKICAgICBib29sIGNlbmNEZWNyeXB0KGNlbmNEZWNyeXB0Q29udGV4
dCYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgaW5pdGlhbGl6ZUdjcnlwdCgpOworICAgIGdjcnlf
Y2lwaGVyX2hkX3QmIGdDcnlwdEhhbmRsZSgpOworICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVH
Q3J5cHQoZ2NyeV9jaXBoZXJfaGRfdCYpOwogCiAgICAgLy8gRklYTUU6IEZvciBub3cgd2Ugb25s
eSBzdXBwb3J0IEFFUyBpbiBDVFIgbW9kZSwgaW4gdGhlIGZ1dHVyZQogICAgIC8vIHdlIHdpbGwg
c3VyZWx5IGhhdmUgdG8gc3VwcG9ydCBtb3JlIHByb3RlY3Rpb24gc2NoZW1lcy4gQ2FuIHdlCkBA
IC05OSw3ICsxMTMsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgY2VuY0RlY3J5cHRTdWJzYW1wbGVk
KGNlbmNEZWNyeXB0Q29udGV4dCYpOwogCiAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2Ug
dG8gdXNlIHNvbWV0aGluZyBpbiBXZWJDb3JlIGZvciBjcnlwdG8uLi4KLSAgICBnY3J5X2NpcGhl
cl9oZF90IG1fZ2NyeUhhbmRsZTsKKyAgICBMYXppbHlJbml0aWFsaXplZDxnY3J5X2NpcGhlcl9o
ZF90PiBtX2dDcnlwdEhhbmRsZSB7IENETVByb3h5Q2xlYXJLZXk6OmluaXRpYWxpemVHQ3J5cHQK
KyAgICAgICAgLCBPcHRpb25hbDxMYXppbHlJbml0aWFsaXplZDxnY3J5X2NpcGhlcl9oZF90Pjo6
RGVpbml0aWFsaXplcj4oZ2NyeV9jaXBoZXJfY2xvc2UpIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggYjU0MTIyYTVkNTU0Li44M2Y5ZjkyNTgzNDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMC0xMSAg
WGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFtFTUVdIENyZWF0ZSBDRE1Qcm94eUZhY3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIHRlc3QgZm9yIExhemlseUluaXRpYWxp
emVkIGNsYXNzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9MYXppbHlJbml0aWFsaXpl
ZC5jcHA6IEFkZGVkLgorCiAyMDIwLTA2LTEwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI2MjgwNy4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CmluZGV4IGE4YTUyYTBhMjBlMC4uOGI3N2JlNWM5OTMz
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTUxLDYgKzUxLDcgQEAgc2V0KFRl
c3RXVEZfU09VUkNFUwogICAgIFRlc3RzL1dURi9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmNw
cAogICAgIFRlc3RzL1dURi9JdGVyYXRvclJhbmdlLmNwcAogICAgIFRlc3RzL1dURi9KU09OVmFs
dWUuY3BwCisgICAgVGVzdHMvV1RGL0xhemlseUluaXRpYWxpemVkLmNwcAogICAgIFRlc3RzL1dU
Ri9MRUJEZWNvZGVyLmNwcAogICAgIFRlc3RzL1dURi9MaWZlY3ljbGVMb2dnZXIuY3BwCiAgICAg
VGVzdHMvV1RGL0xpbmVFbmRpbmcuY3BwCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFiZmI4
NDAzZTc1NS4uZDllNTQ4YWRmYTFmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU2LDYg
KzU1Niw3IEBACiAJCTdDODNERjE0MUQwQTU5MEMwMEZFQkNGMyAvKiBSZWYuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBNDI3QUExODBEQTI2NDAw
Q0QyNEQ3IC8qIFJlZi5jcHAgKi87IH07CiAJCTdDODNERjE1MUQwQTU5MEMwMEZFQkNGMyAvKiBS
ZWZDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2QkQxOTk3MUEyREIwNUIwMDZEQ0YwQSAvKiBSZWZDb3VudGVyLmNwcCAqLzsgfTsKIAkJ
N0M4M0RGMTYxRDBBNTkwQzAwRkVCQ0YzIC8qIFJlZlB0ci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcgLyog
UmVmUHRyLmNwcCAqLzsgfTsKKwkJN0M4M0RGMTcxRDBBNTkwQzAwRkVCQ0YzIC8qIExhemlseUlu
aXRpYWxpemVkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTQyN0E4MTgwRDlCMDcwMENEMjREOCAvKiBMYXppbHlJbml0aWFsaXplZC5jcHAgKi87
IH07CiAJCTdDODNERjFEMUQwQTU5MEMwMEZFQkNGMyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRkM0NUE0MUI3M0VCRTIwMDg1QkQ2
MiAvKiBMb2NrLmNwcCAqLzsgfTsKIAkJN0M4M0RGMjQxRDBBNTkwQzAwRkVCQ0YzIC8qIFJldGFp
blB0ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MDI5QjFCMTQ4NkIyNTkwMDgxN0RBOSAvKiBSZXRhaW5QdHIubW0gKi87IH07CiAJCTdDODNERjI2
MUQwQTU5MEMwMEZFQkNGMyAvKiBTYXR1cmF0ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEYzQjExMjE1RTQ1
RUFCMDAyMTAwNjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovOyB9OwpA
QCAtMjMyMCw2ICsyMzIxLDcgQEAKIAkJOTM5QkZFMzkxOEU1NTQ4OTAwODgzMjc1IC8qIFN0cmlu
Z1RydW5jYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0
cmluZ1RydW5jYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMjU4OTgx
RjkyRkYxNTAwM0U1MTBDIC8qIFRleHRDb2RlYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0
Q29kZWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E0MjdBODE4MEQ5QjA3
MDBDRDI0RDcgLyogUmVmUHRyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlZlB0ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTQyN0E4MTgw
RDlCMDcwMENEMjREOCAvKiBMYXppbHlJbml0aWFsaXplZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBMYXppbHlJbml0aWFsaXplZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzQTQyN0FBMTgwREEyNjQwMENEMjRENyAvKiBSZWYuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNBNDI3QUMxODBEQTYwRjAwQ0QyNEQ3IC8qIE1vdmVPbmx5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1vdmVPbmx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
QTQyN0FEMTgwREE2MEYwMENEMjRENyAvKiBSZWZMb2dnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVm
TG9nZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MDQ2LDYgKzQwNDgsNyBA
QAogCQkJCTQ0MkJCRjY4MUM5MUNBRDkwMDE3MDg3RiAvKiBSZWZMb2dnZXIuY3BwICovLAogCQkJ
CTkzQTQyN0FEMTgwREE2MEYwMENEMjRENyAvKiBSZWZMb2dnZXIuaCAqLywKIAkJCQk5M0E0MjdB
ODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRyLmNwcCAqLywKKwkJCQk5M0E0MjdBODE4MEQ5QjA3
MDBDRDI0RDggLyogTGF6aWx5SW5pdGlhbGl6ZWQuY3BwICovLAogCQkJCUU0QzlBQkM3MUIzREIx
NzEwMDQwQTk4NyAvKiBSdW5Mb29wLmNwcCAqLywKIAkJCQkxNEYzQjExMjE1RTQ1RUFCMDAyMTAw
NjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovLAogCQkJCTFBMzUyNEFD
MUQ2M0E0RkIwMDMxNzI5QiAvKiBTY29wZS5jcHAgKi8sCkBAIC00NzU2LDYgKzQ3NTksNyBAQAog
CQkJCTdDODNERjE1MUQwQTU5MEMwMEZFQkNGMyAvKiBSZWZDb3VudGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDODNERUQ3MUQwQTU5MEMwMEZFQkNGMyAvKiBSZWZMb2dnZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M4M0RGMTYxRDBBNTkwQzAwRkVCQ0YzIC8qIFJlZlB0ci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3QzgzREYxNzFEMEE1OTBDMDBGRUJDRjMgLyogTGF6aWx5SW5pdGlh
bGl6ZWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDRBQzhCQzYyMUQwMjQ1QTAwQ0FGQjM0IC8q
IFJldGFpblB0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzREYyNDFEMEE1OTBDMDBGRUJD
RjMgLyogUmV0YWluUHRyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RGMDUxRDBBNTkwQzAw
RkVCQ0YzIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9MYXppbHlJbml0aWFsaXplZC5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9MYXppbHlJbml0aWFsaXplZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40NGE5YWZhNDg4NmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9MYXppbHlJbml0aWFsaXplZC5jcHAKQEAg
LTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgTWV0cm9sb2dpY2FsIEdy
b3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlICJMb2dnZXIuaCIKKyNpbmNsdWRlIDx3dGYvTGF6aWx5SW5pdGlhbGl6ZWQuaD4KKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdHJ1Y3QgTGF6aWx5SW5pdGlhbGl6ZWRMb2dn
ZXIgeworICAgIExhemlseUluaXRpYWxpemVkTG9nZ2VyKCk7CisgICAgc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZShMYXppbHlJbml0aWFsaXplZExvZ2dlciYpOworICAgIHN0YXRpYyB2b2lkIGRlaW5p
dGlhbGl6ZShMYXppbHlJbml0aWFsaXplZExvZ2dlciYpOworICAgIHZvaWQgZG9TdHVmZigpIHsg
fQorfTsKKworTGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI6OkxhemlseUluaXRpYWxpemVkTG9nZ2Vy
KCkKK3sKKyAgICBsb2coKSA8PCAiaW5zdGFudGlhdGVkKCkgIjsKK30KKwordm9pZCBMYXppbHlJ
bml0aWFsaXplZExvZ2dlcjo6aW5pdGlhbGl6ZShMYXppbHlJbml0aWFsaXplZExvZ2dlciYgbG9n
Z2VyKQoreworICAgIGxvZygpIDw8ICJpbml0aWFsaXplZCgpICI7Cit9CisKK3ZvaWQgTGF6aWx5
SW5pdGlhbGl6ZWRMb2dnZXI6OmRlaW5pdGlhbGl6ZShMYXppbHlJbml0aWFsaXplZExvZ2dlciYg
bG9nZ2VyKQoreworICAgIGxvZygpIDw8ICJkZWluaXRpYWxpemVkKCkgIjsKK30KKworVEVTVChX
VEZfTGF6aWx5SW5pdGlhbGl6ZWQsIEJhc2ljKQoreworICAgIHsKKyAgICAgICAgTGF6aWx5SW5p
dGlhbGl6ZWQ8TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI+IHZhbHVlIHsgTGF6aWx5SW5pdGlhbGl6
ZWRMb2dnZXI6OmluaXRpYWxpemUgfTsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJpbnN0YW50
aWF0ZWQoKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7CisgICAgICAgIExhemls
eUluaXRpYWxpemVkPExhemlseUluaXRpYWxpemVkTG9nZ2VyPiB2YWx1ZSB7IExhemlseUluaXRp
YWxpemVkTG9nZ2VyOjppbml0aWFsaXplIH07CisgICAgICAgICgqdmFsdWUpLmRvU3R1ZmYoKTsK
KyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJpbnN0YW50aWF0ZWQoKSBpbml0aWFsaXplZCgpICIs
IHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgTGF6aWx5SW5pdGlhbGl6
ZWQ8TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI+IHZhbHVlIHsgTGF6aWx5SW5pdGlhbGl6ZWRMb2dn
ZXI6OmluaXRpYWxpemUgfTsKKyAgICAgICAgdmFsdWUtPmRvU3R1ZmYoKTsKKyAgICB9CisgICAg
RVhQRUNUX1NUUkVRKCJpbnN0YW50aWF0ZWQoKSBpbml0aWFsaXplZCgpICIsIHRha2VMb2dTdHIo
KS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgTGF6aWx5SW5pdGlhbGl6ZWQ8TGF6aWx5SW5p
dGlhbGl6ZWRMb2dnZXI+IHZhbHVlIHsgTGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI6OmluaXRpYWxp
emUgfTsKKyAgICAgICAgKCp2YWx1ZSkuZG9TdHVmZigpOworICAgICAgICB2YWx1ZS0+ZG9TdHVm
ZigpOworICAgICAgICB2YWx1ZS0+ZG9TdHVmZigpOworICAgICAgICAoKnZhbHVlKS5kb1N0dWZm
KCk7CisgICAgfQorICAgIEVYUEVDVF9TVFJFUSgiaW5zdGFudGlhdGVkKCkgaW5pdGlhbGl6ZWQo
KSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cit9CisKK1RFU1QoV1RGX0xhemlseUluaXRpYWxp
emVkLCBEZWluaXRpYWxpemVyKQoreworICAgIHsKKyAgICAgICAgTGF6aWx5SW5pdGlhbGl6ZWQ8
TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI+IHZhbHVlIHsgTGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI6
OmluaXRpYWxpemUKKyAgICAgICAgICAgICwgT3B0aW9uYWw8TGF6aWx5SW5pdGlhbGl6ZWQ8TGF6
aWx5SW5pdGlhbGl6ZWRMb2dnZXI+OjpEZWluaXRpYWxpemVyPihMYXppbHlJbml0aWFsaXplZExv
Z2dlcjo6ZGVpbml0aWFsaXplKSB9OworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoImluc3RhbnRp
YXRlZCgpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgTGF6aWx5
SW5pdGlhbGl6ZWQ8TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI+IHZhbHVlIHsgTGF6aWx5SW5pdGlh
bGl6ZWRMb2dnZXI6OmluaXRpYWxpemUKKyAgICAgICAgICAgICwgT3B0aW9uYWw8TGF6aWx5SW5p
dGlhbGl6ZWQ8TGF6aWx5SW5pdGlhbGl6ZWRMb2dnZXI+OjpEZWluaXRpYWxpemVyPihMYXppbHlJ
bml0aWFsaXplZExvZ2dlcjo6ZGVpbml0aWFsaXplKSB9OworICAgICAgICB2YWx1ZS0+ZG9TdHVm
ZigpOworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoImluc3RhbnRpYXRlZCgpIGluaXRpYWxpemVk
KCkgZGVpbml0aWFsaXplZCgpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKK30KKworfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401897</attachid>
            <date>2020-06-15 08:07:58 -0700</date>
            <delta_ts>2020-06-16 07:34:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>16380</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYzM0NzExMmM0OTQuLjBmZWU2MTk3NzAzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDUyIEBACisyMDIwLTA2LTE1ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZh
cmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VNRV0gQ3JlYXRlIENETVByb3h5RmFjdG9yeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjk1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5
IGluIHRoZSBHU3RyZWFtZXIgcG9ydCB3ZSBoYXZlIHRoZSBDRE1Qcm94eSBjYWJsZWQgaW4gdGhl
CisgICAgICAgIHBsYXllciBwcml2YXRlIGFuZCBzZXQgdG8gdGhlIGluc3RhbmNlLiBTZXR0aW5n
IHRoaXMgdG9vIGxhdGUgY2FuCisgICAgICAgIGNyZWF0ZSBrZXkgc3luYyBpc3N1ZXMgdGhhdCBh
cmUgd29ya2VkIGFyb3VuZC4gVGhpcyBkb2VzIG5vdCBzZWVtCisgICAgICAgIHRvIGJlIG5lZWRl
ZCBiZWNhdXNlIGl0IGNhbiBiZSBjcmVhdGVkIGluIHRoZSBjb25zdHJ1Y3RvciBmcm9tIGEKKyAg
ICAgICAgQ0RNUHJveHlGYWN0b3J5IGlmIHdlIGp1c3QgdXNlIHRoZSBrZXkgc3lzdGVtIHRoYXQg
d2UgYWxyZWFkeQorICAgICAgICBoYXZlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZGVjbGFyZXMg
YSBDRE1Qcm94eUZhY3RvcnkgdGhhdCBpcyB1c2VkIGluIHRoZQorICAgICAgICBDRE1JbnN0YW5j
ZVByb3h5IHRvIGluc3RhbnRpYXRlIHRoZSBwcm9wZXIgQ0RNUHJveHkgaW4gaXRzCisgICAgICAg
IGNvbnN0cnVjdG9yLgorCisgICAgICAgIENETVByb3h5RmFjdG9yeUNsZWFyS2V5IGlzIGNyZWF0
ZWQgYW5kIGFkZGVkIHRvIHRoZSBHU3RyZWFtZXIKKyAgICAgICAgcGxhdGZvcm0gQ0RNUHJveHlG
YWN0b3JpZXMuCisKKyAgICAgICAgSW5pdGlhbGl6aW5nIHRvbyBmYXN0IGNyZWF0ZXMgZmxha3lu
ZXNzIGluIHNldmVyYWwgQ2xlYXJLZXkgdGVzdHMKKyAgICAgICAgYmVjYXVzZSBvZiBhc2tpbmcg
Zm9yIHByb3RlY3RlZCBtZW1vcnkgc28gd2UgbmVlZCB0byBpbml0aWFsaXplIGl0CisgICAgICAg
IGluIGEgbGF6eSB3YXkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGEgcmV3b3JrLgor
CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkpOgorICAgICAgICAo
V2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Ojp1bnJlZ2lzdGVyRmFjdG9yeSk6CisgICAgICAgIChX
ZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rvcmll
cyk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeTo6fkNETVByb3h5RmFjdG9yeSk6CisgICAgICAg
IChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5OjpDRE1JbnN0YW5jZVByb3h5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1JbnN0YW5jZUNsZWFyS2V5KToK
KyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlQ2xlYXJLZXk6OmtleVN5c3RlbSBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6Y2RtSW5zdGFuY2VBdHRhY2hlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rvcmllcyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24pOgor
ICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OmNyZWF0ZUNETVByb3h5
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzdXBwb3J0c0tl
eVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Q
cm94eUNsZWFyS2V5Lmg6CisKIDIwMjAtMDYtMTIgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBbSVBDIGhhcmRlbmluZ10gQ2hlY2sgZW51bSB2YWx1ZXMgaW4g
SVBDOjpEZWNvZGVyOjpkZWNvZGVFbnVtKCkgYW4gSVBDOjpFbmNvZGVyOjplbmNvZGVFbnVtKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5
LmNwcAppbmRleCBmOWEwNjdiYjFlZjUuLjgzZDZmYTJhYTM3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcApAQCAtMzgsNiAr
MzgsNTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitWZWN0b3I8Q0RNUHJveHlGYWN0b3J5
Kj4mIENETVByb3h5RmFjdG9yeTo6cmVnaXN0ZXJlZEZhY3RvcmllcygpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPj4gZmFjdG9yaWVzOworICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFsm
XSB7CisgICAgICAgIHBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFjdG9yaWVzKTsKKyAgICB9
KTsKKworICAgIHJldHVybiBmYWN0b3JpZXM7Cit9CisKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5Ojpy
ZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBmYWN0b3J5KQoreworICAgIEFTU0VSVCgh
cmVnaXN0ZXJlZEZhY3RvcmllcygpLmNvbnRhaW5zKCZmYWN0b3J5KSk7CisgICAgcmVnaXN0ZXJl
ZEZhY3RvcmllcygpLmFwcGVuZCgmZmFjdG9yeSk7Cit9CisKK3ZvaWQgQ0RNUHJveHlGYWN0b3J5
Ojp1bnJlZ2lzdGVyRmFjdG9yeShDRE1Qcm94eUZhY3RvcnkmIGZhY3RvcnkpCit7CisgICAgQVNT
RVJUKHJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9yeSkpOworICAgIHJlZ2lz
dGVyZWRGYWN0b3JpZXMoKS5yZW1vdmVBbGwoJmZhY3RvcnkpOworfQorCitSZWZQdHI8Q0RNUHJv
eHk+IENETVByb3h5RmFjdG9yeTo6Y3JlYXRlQ0RNUHJveHlGb3JLZXlTeXN0ZW0oY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0pCit7CisgICAgUmVmUHRyPENETVByb3h5PiBjZG1Qcm94eTsKKyAgICBm
b3IgKGF1dG8qIGZhY3RvcnkgOiBDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyZWRGYWN0b3JpZXMo
KSkgeworICAgICAgICBpZiAoZmFjdG9yeS0+c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkg
eworICAgICAgICAgICAgY2RtUHJveHkgPSBmYWN0b3J5LT5jcmVhdGVDRE1Qcm94eShrZXlTeXN0
ZW0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisjaWYgVVNFKEdTVFJF
QU1FUikKKyAgICBBU1NFUlQoY2RtUHJveHkpOworI2VuZGlmCisgICAgcmV0dXJuIGNkbVByb3h5
OworfQorCisjaWYgIVVTRShHU1RSRUFNRVIpCit2b2lkIENETVByb3h5RmFjdG9yeTo6cGxhdGZv
cm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mKQoreworfQorI2Vu
ZGlmCisKIG5hbWVzcGFjZSB7CiAKIHN0YXRpYyBTdHJpbmcgdmVjdG9yVG9IZXhTdHJpbmcoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiB2ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaAppbmRleCBiNDZlZjY3MGEwNTQuLmFiYThiNzU5ZGE4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RN
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5oCkBAIC0xNTYsNiArMTU2LDI2IEBAIHByaXZhdGU6CiAgICAgS2V5U3RvcmUgbV9rZXlT
dG9yZTsKIH07CiAKK2NsYXNzIENETVByb3h5RmFjdG9yeSB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+Q0RNUHJveHlGYWN0b3J5KCkgeyB9OworCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZv
aWQgcmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gUmVmUHRyPENETVByb3h5PiBj
cmVhdGVDRE1Qcm94eUZvcktleVN5c3RlbShjb25zdCBTdHJpbmcmKTsKKworICAgIC8vIFBsYXRm
b3JtLXNwZWNpZmljIGZ1bmN0aW9uIHRoYXQncyBjYWxsZWQgd2hlbiB0aGUgbGlzdCBvZgorICAg
IC8vIHJlZ2lzdGVyZWQgQ0RNUHJveHlGYWN0b3J5IG9iamVjdHMgaXMgcXVlcmllZCBmb3IgdGhl
IGZpcnN0IHRpbWUuCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcGxhdGZvcm1SZWdp
c3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mKTsKKworcHJvdGVjdGVkOgor
ICAgIHZpcnR1YWwgUmVmUHRyPENETVByb3h5PiBjcmVhdGVDRE1Qcm94eShjb25zdCBTdHJpbmcm
KSA9IDA7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYp
ID0gMDsKKworcHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmVjdG9yPENETVBy
b3h5RmFjdG9yeSo+JiByZWdpc3RlcmVkRmFjdG9yaWVzKCk7Cit9OworCiBjbGFzcyBDRE1JbnN0
YW5jZVNlc3Npb25Qcm94eSA6IHB1YmxpYyBDRE1JbnN0YW5jZVNlc3Npb24sIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxDRE1JbnN0YW5jZVNlc3Npb25Qcm94eSwgV2Vha1B0ckZhY3RvcnlJbml0aWFs
aXphdGlvbjo6RWFnZXI+IHsKIH07CiAKQEAgLTE2MywxOSArMTgzLDE2IEBAIGNsYXNzIENETUlu
c3RhbmNlU2Vzc2lvblByb3h5IDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwgcHVibGljIENh
bk1ha2VXZWFrUHRyCiAvLyBmcm9tICJyZWFsIENETSIgc3RhdGUgY2hhbmdlcyB0byBKUy4KIGNs
YXNzIENETUluc3RhbmNlUHJveHkgOiBwdWJsaWMgQ0RNSW5zdGFuY2UgewogcHVibGljOgotICAg
IENETUluc3RhbmNlUHJveHkoKSA9IGRlZmF1bHQ7CisgICAgQ0RNSW5zdGFuY2VQcm94eShjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgICAgIG1fY2RtUHJveHkgPSBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5
Rm9yS2V5U3lzdGVtKGtleVN5c3RlbSk7CisgICAgICAgIGlmIChtX2NkbVByb3h5KQorICAgICAg
ICAgICAgbV9jZG1Qcm94eS0+c2V0SW5zdGFuY2UodGhpcyk7CisgICAgfQogICAgIHZpcnR1YWwg
fkNETUluc3RhbmNlUHJveHkoKSA9IGRlZmF1bHQ7CiAKICAgICAvLyBNYWluLXRocmVhZCBvbmx5
LgotICAgIHZvaWQgc2V0UHJveHkoUmVmPENETVByb3h5PiYmIHByb3h5KQotICAgIHsKLSAgICAg
ICAgbV9jZG1Qcm94eSA9IFdURk1vdmUocHJveHkpOwotICAgICAgICBtX2NkbVByb3h5LT5zZXRJ
bnN0YW5jZSh0aGlzKTsKLSAgICAgICAgLy8gVGhlIENETSBpbnN0YW5jZSBtYXkgYmUgYXR0YWNo
ZWQgYWZ0ZXIgYW4gdXBkYXRlKCkuIE5vdAotICAgICAgICAvLyByZWNvbW1lbmRlZCwgYnV0IGFw
cHMgYW5kIHRoZSBXM0MgdGVzdC1zdWl0ZSBkbyB0aGlzLgotICAgICAgICBpZiAobV9rZXlTdG9y
ZS5oYXNLZXlzKCkpCi0gICAgICAgICAgICBtX2NkbVByb3h5LT51cGRhdGVLZXlTdG9yZShtX2tl
eVN0b3JlKTsKLSAgICB9CiAgICAgdm9pZCBtZXJnZUtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7
CiAgICAgdm9pZCByZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1D
bGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVh
cmtleS9DRE1DbGVhcktleS5jcHAKaW5kZXggY2YyZDVmMWRiM2VkLi42NTMyMmVkOTllOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRt
ZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKQEAgLTQzNCw2ICs0MzQsNyBAQCBPcHRpb25h
bDxTdHJpbmc+IENETVByaXZhdGVDbGVhcktleTo6c2FuaXRpemVTZXNzaW9uSWQoY29uc3QgU3Ry
aW5nJiBzZXNzaW9uSWQpCiAgICAgcmV0dXJuIHNlc3Npb25JZDsKIH0KIAorQ0RNSW5zdGFuY2VD
bGVhcktleTo6Q0RNSW5zdGFuY2VDbGVhcktleSgpIDogQ0RNSW5zdGFuY2VQcm94eSgib3JnLncz
LmNsZWFya2V5Il9zKSB7IH07CiBDRE1JbnN0YW5jZUNsZWFyS2V5Ojp+Q0RNSW5zdGFuY2VDbGVh
cktleSgpID0gZGVmYXVsdDsKIAogdm9pZCBDRE1JbnN0YW5jZUNsZWFyS2V5Ojppbml0aWFsaXpl
V2l0aENvbmZpZ3VyYXRpb24oY29uc3QgQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbiYsIEFsbG93
RGlzdGluY3RpdmVJZGVudGlmaWVycyBkaXN0aW5jdGl2ZUlkZW50aWZpZXJzLCBBbGxvd1BlcnNp
c3RlbnRTdGF0ZSBwZXJzaXN0ZW50U3RhdGUsIFN1Y2Nlc3NDYWxsYmFjayYmIGNhbGxiYWNrKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJr
ZXkvQ0RNQ2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L2NsZWFya2V5L0NETUNsZWFyS2V5LmgKaW5kZXggMDA2YzQ1YWZjZWI2Li44YmYzNjI3MmFkYjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFy
a2V5L0NETUNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVk
bWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAK
IGNsYXNzIENETUluc3RhbmNlQ2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2VQcm94
eSwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlQ2xlYXJLZXk+IHsKIHB1YmxpYzoK
KyAgICBDRE1JbnN0YW5jZUNsZWFyS2V5KCk7CiAgICAgdmlydHVhbCB+Q0RNSW5zdGFuY2VDbGVh
cktleSgpOwogCiAgICAgLy8gQ0RNSW5zdGFuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYWNjNTFhMjk3MDY4Li44NzAxYWE2NTY4ZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBA
IC0zNTMyLDcgKzM1MzIsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2Rt
SW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCiAgICAgbV9jZG1JbnN0YW5j
ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q0RNSW5zdGFuY2VQcm94eSo+KCZpbnN0YW5jZSk7CiAgICAg
UkVMRUFTRV9BU1NFUlQobV9jZG1JbnN0YW5jZSk7CiAgICAgbV9jZG1JbnN0YW5jZS0+c2V0UGxh
eWVyKG1fcGxheWVyKTsKLSAgICBtX2NkbUluc3RhbmNlLT5zZXRQcm94eShhZG9wdFJlZigqbmV3
IENETVByb3h5Q2xlYXJLZXkpKTsKIAogICAgIEdSZWZQdHI8R3N0Q29udGV4dD4gY29udGV4dCA9
IGFkb3B0R1JlZihnc3RfY29udGV4dF9uZXcoImRybS1jZG0tcHJveHkiLCBGQUxTRSkpOwogICAg
IEdzdFN0cnVjdHVyZSogY29udGV4dFN0cnVjdHVyZSA9IGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0
cnVjdHVyZShjb250ZXh0LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3Ry
ZWFtZXIuY3BwCmluZGV4IGNhMzc1N2M5NzRiNy4uZmZmZGU0NWViNmM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2lm
IEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAKLSNpbmNsdWRlICJDRE1DbGVhcktleS5oIgorI2lu
Y2x1ZGUgIkNETVByb3h5Q2xlYXJLZXkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00
MCw2ICs0MCwxMSBAQCB2b2lkIENETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMo
VmVjdG9yPENETUZhY3RvcnkqPiYgZmFjdG9yaWVzKQogICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNE
TUZhY3RvcnlDbGVhcktleTo6c2luZ2xldG9uKCkpOwogfQogCit2b2lkIENETVByb3h5RmFjdG9y
eTo6cGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIGZh
Y3RvcmllcykKK3sKKyAgICBmYWN0b3JpZXMuYXBwZW5kKCZDRE1Qcm94eUZhY3RvcnlDbGVhcktl
eTo6c2luZ2xldG9uKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktl
eS5jcHAKaW5kZXggYzFiNmIzNGY2ODZmLi4wMjQ0NGMyZDY5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktl
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9DRE1Qcm94eUNsZWFyS2V5LmNwcApAQCAtNjQsOSArNjQsMzEgQEAgc3RhdGljIGJvb2wgcmVh
ZFVJbnQxNihjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBidWZmZXJTaXplLCBzaXplX3Qm
IG9mZnNldCwKIAogfSAvLyBuYW1lc3BhY2Uge30KIAorQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkm
IENETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxDRE1Qcm94eUZhY3RvcnlDbGVhcktleT4gc19mYWN0b3J5OworICAgIHJldHVy
biBzX2ZhY3Rvcnk7Cit9CisKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpDRE1Qcm94eUZhY3Rv
cnlDbGVhcktleSgpID0gZGVmYXVsdDsKK0NETVByb3h5RmFjdG9yeUNsZWFyS2V5Ojp+Q0RNUHJv
eHlGYWN0b3J5Q2xlYXJLZXkoKSA9IGRlZmF1bHQ7CisKK1JlZlB0cjxDRE1Qcm94eT4gQ0RNUHJv
eHlGYWN0b3J5Q2xlYXJLZXk6OmNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
KQoreworICAgIEFTU0VSVF9VTlVTRUQoa2V5U3lzdGVtLCBzdXBwb3J0c0tleVN5c3RlbShrZXlT
eXN0ZW0pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IENETVByb3h5Q2xlYXJLZXkoKSk7Cit9
CisKK2Jvb2wgQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIC8vIGBvcmcudzMuY2xlYXJrZXlgIGlzIHRoZSBv
bmx5IHN1cHBvcnRlZCBrZXkgc3lzdGVtLgorICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZShrZXlTeXN0ZW0sICJvcmcudzMuY2xlYXJrZXkiKTsKK30KKwogQ0RNUHJveHlD
bGVhcktleTo6fkNETVByb3h5Q2xlYXJLZXkoKQogewotICAgIGdjcnlfY2lwaGVyX2Nsb3NlKG1f
Z2NyeUhhbmRsZSk7CisgICAgaWYgKG1faXNHQ3J5cHRJbml0aWFsaXplZCkKKyAgICAgICAgZ2Ny
eV9jaXBoZXJfY2xvc2UobV9nQ3J5cHRIYW5kbGUpOwogfQogCiBib29sIENETVByb3h5Q2xlYXJL
ZXk6OmNlbmNTZXRDb3VudGVyVmVjdG9yKGNvbnN0IGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQp
CkBAIC04Myw3ICsxMDUsNyBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNTZXRDb3VudGVy
VmVjdG9yKGNvbnN0IGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCiAgICAgfSBlbHNlCiAgICAg
ICAgIG1lbWNweShjdHIsIGlucHV0Lml2LCBDbGVhcktleTo6SVZTaXplSW5CeXRlcyk7CiAKLSAg
ICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfc2V0Y3RyKG1fZ2Ny
eUhhbmRsZSwgY3RyLCBDbGVhcktleTo6SVZTaXplSW5CeXRlcykpIHsKKyAgICBpZiAoZ2NyeV9l
cnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfc2V0Y3RyKGdDcnlwdEhhbmRsZSgpLCBj
dHIsIENsZWFyS2V5OjpJVlNpemVJbkJ5dGVzKSkgewogI2lmICFMT0dfRElTQUJMRUQKICAgICAg
ICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9z
ZXRjdHIpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOwogI2Vsc2UKQEAgLTEwNyw3
ICsxMjksNyBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNTZXREZWNyeXB0aW9uS2V5KGNv
bnN0IGNlbmNEZWNyeXB0Q29udGV4dCYgaW4pCiAgICAgaWYgKCFrZXlEYXRhKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9j
aXBoZXJfc2V0a2V5KG1fZ2NyeUhhbmRsZSwga2V5RGF0YS0+ZGF0YSgpLCBrZXlEYXRhLT5zaXpl
KCkpKSB7CisgICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX3Nl
dGtleShnQ3J5cHRIYW5kbGUoKSwga2V5RGF0YS0+ZGF0YSgpLCBrZXlEYXRhLT5zaXplKCkpKSB7
CiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVh
cktleSAtIEVSUk9SKGdjcnlfY2lwaGVyX3NldGtleSk6ICVzIiwgZ3BnX3N0cmVycm9yKGNpcGhl
ckVycm9yKSk7CiAjZWxzZQpAQCAtMTI2LDcgKzE0OCw3IEBAIGJvb2wgQ0RNUHJveHlDbGVhcktl
eTo6Y2VuY0RlY3J5cHRGdWxsU2FtcGxlKGNlbmNEZWNyeXB0Q29udGV4dCYgaW4pCiAKICAgICBM
T0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIGZ1bGwtc2FtcGxlIGRlY3J5cHRpb246
ICV6dSBlbmNyeXB0ZWQgYnl0ZXMiLCBpbi5lbmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcyk7CiAK
LSAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlwdCht
X2djcnlIYW5kbGUsIGluLmVuY3J5cHRlZEJ1ZmZlciwgaW4uZW5jcnlwdGVkQnVmZmVyU2l6ZUlu
Qnl0ZXMsIDAsIDApKSB7CisgICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlf
Y2lwaGVyX2RlY3J5cHQoZ0NyeXB0SGFuZGxlKCksIGluLmVuY3J5cHRlZEJ1ZmZlciwgaW4uZW5j
cnlwdGVkQnVmZmVyU2l6ZUluQnl0ZXMsIDAsIDApKSB7CiAjaWYgIUxPR19ESVNBQkxFRAogICAg
ICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVy
X2RlY3J5cHQpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOwogI2Vsc2UKQEAgLTE3
MCw3ICsxOTIsNyBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0U3Vic2FtcGxl
ZChjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0KQogICAgICAgICBpZiAoc3Vic2FtcGxlTnVtRW5j
cnlwdGVkQnl0ZXMpIHsKICAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBzdWJzYW1wbGUgaW5k
ZXggJXUgLSAldSBieXRlcyBlbmNyeXB0ZWQgKCVsdSBieXRlcyBsZWZ0IHRvIGRlY3J5cHQpIiwg
c3Vic2FtcGxlSW5kZXgsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCBpbnB1dC5lbmNyeXB0
ZWRCdWZmZXJTaXplSW5CeXRlcyAtIGVuY3J5cHRlZEJ1ZmZlckJ5dGVPZmZzZXQpOwogCi0gICAg
ICAgICAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlw
dChtX2djcnlIYW5kbGUsIGlucHV0LmVuY3J5cHRlZEJ1ZmZlciArIGVuY3J5cHRlZEJ1ZmZlckJ5
dGVPZmZzZXQsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCAwLCAwKSkgeworICAgICAgICAg
ICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQoZ0Ny
eXB0SGFuZGxlKCksIGlucHV0LmVuY3J5cHRlZEJ1ZmZlciArIGVuY3J5cHRlZEJ1ZmZlckJ5dGVP
ZmZzZXQsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCAwLCAwKSkgewogI2lmICFMT0dfRElT
QUJMRUQKICAgICAgICAgICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAt
IEVSUk9SKGdjcnlfY2lwaGVyX2RlY3J5cHQpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJv
cikpOwogI2Vsc2UKQEAgLTE5NCwxNiArMjE2LDIxIEBAIGJvb2wgQ0RNUHJveHlDbGVhcktleTo6
Y2VuY0RlY3J5cHQoQ0RNUHJveHlDbGVhcktleTo6Y2VuY0RlY3J5cHRDb250ZXh0JiBpbnB1dCkK
ICAgICByZXR1cm4gaW5wdXQuaXNTdWJzYW1wbGVkKCkgPyBjZW5jRGVjcnlwdFN1YnNhbXBsZWQo
aW5wdXQpIDogY2VuY0RlY3J5cHRGdWxsU2FtcGxlKGlucHV0KTsKIH0KIAotdm9pZCBDRE1Qcm94
eUNsZWFyS2V5Ojppbml0aWFsaXplR2NyeXB0KCkKK2djcnlfY2lwaGVyX2hkX3QmIENETVByb3h5
Q2xlYXJLZXk6OmdDcnlwdEhhbmRsZSgpCiB7Ci0gICAgaWYgKGdjcnlfZXJyb3JfdCBlcnJvciA9
IGdjcnlfY2lwaGVyX29wZW4oJm1fZ2NyeUhhbmRsZSwgR0NSWV9DSVBIRVJfQUVTMTI4LCBHQ1JZ
X0NJUEhFUl9NT0RFX0NUUiwgR0NSWV9DSVBIRVJfU0VDVVJFKSkgeworICAgIGlmICghbV9pc0dD
cnlwdEluaXRpYWxpemVkKSB7CisgICAgICAgIG1faXNHQ3J5cHRJbml0aWFsaXplZCA9IHRydWU7
CisgICAgICAgIGlmIChnY3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2NpcGhlcl9vcGVuKCZtX2dD
cnlwdEhhbmRsZSwgR0NSWV9DSVBIRVJfQUVTMTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0NUUiwgR0NS
WV9DSVBIRVJfU0VDVVJFKSkgewogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgTE9HKEVNRSwg
IkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9vcGVuKTogJXMiLCBn
cGdfc3RyZXJyb3IoZXJyb3IpKTsKKyAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94
eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfb3Blbik6ICVzIiwgZ3BnX3N0cmVycm9yKGVy
cm9yKSk7CiAjZWxzZQotICAgICAgICBVTlVTRURfVkFSSUFCTEUoZXJyb3IpOworICAgICAgICAg
ICAgVU5VU0VEX1ZBUklBQkxFKGVycm9yKTsKICNlbmRpZgotICAgICAgICBSRUxFQVNFX0FTU0VS
VChmYWxzZSAmJiAiU2hvdWxkIG5vdCBnZXQgdGhpcyBmYXIgd2l0aCBhIGZ1bmN0aW9uYWwgR0Ny
eXB0ISIpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoZmFsc2UgJiYgIlNob3VsZCBub3Qg
Z2V0IHRoaXMgZmFyIHdpdGggYSBmdW5jdGlvbmFsIEdDcnlwdCEiKTsKKyAgICAgICAgfQogICAg
IH0KKworICAgIHJldHVybiBtX2dDcnlwdEhhbmRsZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuaAppbmRleCA1MDI0MGM5ZjhkNGMu
LmYwZjc0ZDNlYTk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKQEAgLTQw
LDE0ICs0MCwyNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENETVByb3h5RmFj
dG9yeUNsZWFyS2V5IGZpbmFsIDogcHVibGljIENETVByb3h5RmFjdG9yeSB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIENETVByb3h5RmFjdG9yeUNs
ZWFyS2V5JiBzaW5nbGV0b24oKTsKKworICAgIHZpcnR1YWwgfkNETVByb3h5RmFjdG9yeUNsZWFy
S2V5KCk7CisKKyAgICBSZWZQdHI8Q0RNUHJveHk+IGNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmlu
ZyYpIGZpbmFsOworICAgIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJikgZmlu
YWw7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPENETVByb3h5
RmFjdG9yeUNsZWFyS2V5PjsKKyAgICBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSgpOworfTsKKwog
Ly8gVGhpcyBpcyB0aGUgdGhyZWFkLXNhZmUgQVBJIHRoYXQgZGVjb2RlIHRocmVhZHMgc2hvdWxk
IHVzZSB0byBtYWtlIHVzZSBvZiBhCiAvLyBwbGF0Zm9ybSBDRE0gbW9kdWxlLgogY2xhc3MgQ0RN
UHJveHlDbGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1Qcm94eSwgcHVibGljIENhbk1ha2VXZWFr
UHRyPENETVByb3h5Q2xlYXJLZXksIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2Vy
PiB7CiBwdWJsaWM6Ci0gICAgQ0RNUHJveHlDbGVhcktleSgpCi0gICAgewotICAgICAgICBpbml0
aWFsaXplR2NyeXB0KCk7Ci0gICAgfQorICAgIENETVByb3h5Q2xlYXJLZXkoKSA9IGRlZmF1bHQ7
CiAgICAgdmlydHVhbCB+Q0RNUHJveHlDbGVhcktleSgpOwogCiAgICAgLy8gRklYTUU6IFRoZXJl
J3MgYSBsYWNrIG9mIGNvbnNpc3RlbmN5IGJldHdlZW4gU2hhcmVkQnVmZmVycywKQEAgLTg4LDcg
KzEwMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGNlbmNEZWNyeXB0KGNlbmNEZWNyeXB0Q29udGV4
dCYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgaW5pdGlhbGl6ZUdjcnlwdCgpOworICAgIGdjcnlf
Y2lwaGVyX2hkX3QmIGdDcnlwdEhhbmRsZSgpOwogCiAgICAgLy8gRklYTUU6IEZvciBub3cgd2Ug
b25seSBzdXBwb3J0IEFFUyBpbiBDVFIgbW9kZSwgaW4gdGhlIGZ1dHVyZQogICAgIC8vIHdlIHdp
bGwgc3VyZWx5IGhhdmUgdG8gc3VwcG9ydCBtb3JlIHByb3RlY3Rpb24gc2NoZW1lcy4gQ2FuIHdl
CkBAIC05OSw3ICsxMTEsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgY2VuY0RlY3J5cHRTdWJzYW1w
bGVkKGNlbmNEZWNyeXB0Q29udGV4dCYpOwogCiAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5p
Y2UgdG8gdXNlIHNvbWV0aGluZyBpbiBXZWJDb3JlIGZvciBjcnlwdG8uLi4KLSAgICBnY3J5X2Np
cGhlcl9oZF90IG1fZ2NyeUhhbmRsZTsKKyAgICBnY3J5X2NpcGhlcl9oZF90IG1fZ0NyeXB0SGFu
ZGxlOworICAgIGJvb2wgbV9pc0dDcnlwdEluaXRpYWxpemVkIHsgZmFsc2UgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="417326"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402003</attachid>
            <date>2020-06-16 07:34:21 -0700</date>
            <delta_ts>2020-06-16 07:57:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>16452</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYzM0NzExMmM0OTQuLjNiZjdlMDc3Y2Q1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDUyIEBACisyMDIwLTA2LTE2ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZh
cmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VNRV0gQ3JlYXRlIENETVByb3h5RmFjdG9yeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjk1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBDdXJyZW50bHkg
aW4gdGhlIEdTdHJlYW1lciBwb3J0IHdlIGhhdmUgdGhlIENETVByb3h5IGNhYmxlZCBpbiB0aGUK
KyAgICAgICAgcGxheWVyIHByaXZhdGUgYW5kIHNldCB0byB0aGUgaW5zdGFuY2UuIFNldHRpbmcg
dGhpcyB0b28gbGF0ZSBjYW4KKyAgICAgICAgY3JlYXRlIGtleSBzeW5jIGlzc3VlcyB0aGF0IGFy
ZSB3b3JrZWQgYXJvdW5kLiBUaGlzIGRvZXMgbm90IHNlZW0KKyAgICAgICAgdG8gYmUgbmVlZGVk
IGJlY2F1c2UgaXQgY2FuIGJlIGNyZWF0ZWQgaW4gdGhlIGNvbnN0cnVjdG9yIGZyb20gYQorICAg
ICAgICBDRE1Qcm94eUZhY3RvcnkgaWYgd2UganVzdCB1c2UgdGhlIGtleSBzeXN0ZW0gdGhhdCB3
ZSBhbHJlYWR5CisgICAgICAgIGhhdmUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkZWNsYXJlcyBh
IENETVByb3h5RmFjdG9yeSB0aGF0IGlzIHVzZWQgaW4gdGhlCisgICAgICAgIENETUluc3RhbmNl
UHJveHkgdG8gaW5zdGFudGlhdGUgdGhlIHByb3BlciBDRE1Qcm94eSBpbiBpdHMKKyAgICAgICAg
Y29uc3RydWN0b3IuCisKKyAgICAgICAgQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkgaXMgY3JlYXRl
ZCBhbmQgYWRkZWQgdG8gdGhlIEdTdHJlYW1lcgorICAgICAgICBwbGF0Zm9ybSBDRE1Qcm94eUZh
Y3Rvcmllcy4KKworICAgICAgICBJbml0aWFsaXppbmcgdG9vIGZhc3QgY3JlYXRlcyBmbGFreW5l
c3MgaW4gc2V2ZXJhbCBDbGVhcktleSB0ZXN0cworICAgICAgICBiZWNhdXNlIG9mIGFza2luZyBm
b3IgcHJvdGVjdGVkIG1lbW9yeSBzbyB3ZSBuZWVkIHRvIGluaXRpYWxpemUgaXQKKyAgICAgICAg
aW4gYSBsYXp5IHdheS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgYSByZXdvcmsuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OnJlZ2lzdGVyRmFjdG9yeSk6CisgICAgICAgIChX
ZWJDb3JlOjpDRE1Qcm94eUZhY3Rvcnk6OnVucmVnaXN0ZXJGYWN0b3J5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNETVByb3h5RmFjdG9yeTo6Y3JlYXRlQ0RNUHJveHlGb3JLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5OjpwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Ojp+Q0RNUHJveHlGYWN0b3J5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNETUluc3RhbmNlUHJveHk6OkNETUluc3RhbmNlUHJveHkpOgorICAgICAgICAq
IHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNETUluc3RhbmNlQ2xlYXJLZXk6OkNETUluc3RhbmNlQ2xlYXJLZXkpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VDbGVhcktleTo6a2V5U3lzdGVtIGNvbnN0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjZG1JbnN0YW5jZUF0dGFjaGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvZW1lL0NETUZhY3RvcnlHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q0RNUHJveHlGYWN0b3J5OjpwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnNpbmdsZXRvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUZhY3RvcnlDbGVhcktleTo6Y3JlYXRlQ0RNUHJveHkp
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnN1cHBvcnRzS2V5
U3lzdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVBy
b3h5Q2xlYXJLZXkuaDoKKwogMjAyMC0wNi0xMiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFtJUEMgaGFyZGVuaW5nXSBDaGVjayBlbnVtIHZhbHVlcyBpbiBJ
UEM6OkRlY29kZXI6OmRlY29kZUVudW0oKSBhbiBJUEM6OkVuY29kZXI6OmVuY29kZUVudW0oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJv
eHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHku
Y3BwCmluZGV4IGY5YTA2N2JiMWVmNS4uMWM0NjJmMGI2NTQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCkBAIC0zOCw2ICsz
OCw0NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1ZlY3RvcjxDRE1Qcm94eUZhY3Rvcnkq
PiYgQ0RNUHJveHlGYWN0b3J5OjpyZWdpc3RlcmVkRmFjdG9yaWVzKCkKK3sKKyAgICBzdGF0aWMg
YXV0byBmYWN0b3JpZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQocGxhdGZvcm1SZWdpc3RlckZhY3Rv
cmllcygpKTsKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQorCit2b2lkIENETVByb3h5RmFjdG9y
eTo6cmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYgZmFjdG9yeSkKK3sKKyAgICBBU1NF
UlQoIXJlZ2lzdGVyZWRGYWN0b3JpZXMoKS5jb250YWlucygmZmFjdG9yeSkpOworICAgIHJlZ2lz
dGVyZWRGYWN0b3JpZXMoKS5hcHBlbmQoJmZhY3RvcnkpOworfQorCit2b2lkIENETVByb3h5RmFj
dG9yeTo6dW5yZWdpc3RlckZhY3RvcnkoQ0RNUHJveHlGYWN0b3J5JiBmYWN0b3J5KQoreworICAg
IEFTU0VSVChyZWdpc3RlcmVkRmFjdG9yaWVzKCkuY29udGFpbnMoJmZhY3RvcnkpKTsKKyAgICBy
ZWdpc3RlcmVkRmFjdG9yaWVzKCkucmVtb3ZlQWxsKCZmYWN0b3J5KTsKK30KKworUmVmUHRyPENE
TVByb3h5PiBDRE1Qcm94eUZhY3Rvcnk6OmNyZWF0ZUNETVByb3h5Rm9yS2V5U3lzdGVtKGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIFJlZlB0cjxDRE1Qcm94eT4gY2RtUHJveHk7Cisg
ICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNUHJveHlGYWN0b3J5OjpyZWdpc3RlcmVkRmFjdG9y
aWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnktPnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3Rl
bSkpIHsKKyAgICAgICAgICAgIGNkbVByb3h5ID0gZmFjdG9yeS0+Y3JlYXRlQ0RNUHJveHkoa2V5
U3lzdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorI2lmIFVTRShH
U1RSRUFNRVIpCisgICAgQVNTRVJUKGNkbVByb3h5KTsKKyNlbmRpZgorICAgIHJldHVybiBjZG1Q
cm94eTsKK30KKworI2lmICFVU0UoR1NUUkVBTUVSKQorVmVjdG9yPENETVByb3h5RmFjdG9yeSo+
IENETVByb3h5RmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcygpCit7CisgICAgVmVj
dG9yPENETVByb3h5RmFjdG9yeSo+IGZhY3RvcmllczsKKyAgICByZXR1cm4gZmFjdG9yaWVzOwor
fQorI2VuZGlmCisKIG5hbWVzcGFjZSB7CiAKIHN0YXRpYyBTdHJpbmcgdmVjdG9yVG9IZXhTdHJp
bmcoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaAppbmRleCBiNDZlZjY3MGEwNTQuLmYyYzNl
MzRlZjU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvQ0RNUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5oCkBAIC0xNTYsNiArMTU2LDI4IEBAIHByaXZhdGU6CiAgICAgS2V5U3RvcmUg
bV9rZXlTdG9yZTsKIH07CiAKK2NsYXNzIENETVByb3h5RmFjdG9yeSB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+Q0RNUHJveHlGYWN0b3J5KCkKKyAgICB7CisgICAgICAgIHVucmVnaXN0ZXJGYWN0
b3J5KCp0aGlzKTsKKyAgICB9OworCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVn
aXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyB2b2lkIHVucmVnaXN0ZXJGYWN0b3J5KENETVByb3h5RmFjdG9yeSYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gUmVmUHRyPENETVByb3h5PiBjcmVhdGVD
RE1Qcm94eUZvcktleVN5c3RlbShjb25zdCBTdHJpbmcmKTsKKworcHJvdGVjdGVkOgorICAgIHZp
cnR1YWwgUmVmUHRyPENETVByb3h5PiBjcmVhdGVDRE1Qcm94eShjb25zdCBTdHJpbmcmKSA9IDA7
CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpID0gMDsK
KworcHJpdmF0ZToKKyAgICAvLyBQbGF0Zm9ybS1zcGVjaWZpYyBmdW5jdGlvbiB0aGF0J3MgY2Fs
bGVkIHdoZW4gdGhlIGxpc3Qgb2YKKyAgICAvLyByZWdpc3RlcmVkIENETVByb3h5RmFjdG9yeSBv
YmplY3RzIGlzIHF1ZXJpZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgorICAgIHN0YXRpYyBWZWN0b3I8
Q0RNUHJveHlGYWN0b3J5Kj4gcGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcygpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8Q0RNUHJveHlGYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0
b3JpZXMoKTsKK307CisKIGNsYXNzIENETUluc3RhbmNlU2Vzc2lvblByb3h5IDogcHVibGljIENE
TUluc3RhbmNlU2Vzc2lvbiwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lv
blByb3h5LCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4gewogfTsKIApAQCAt
MTYzLDE5ICsxODUsMTYgQEAgY2xhc3MgQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkgOiBwdWJsaWMg
Q0RNSW5zdGFuY2VTZXNzaW9uLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHIKIC8vIGZyb20gInJlYWwg
Q0RNIiBzdGF0ZSBjaGFuZ2VzIHRvIEpTLgogY2xhc3MgQ0RNSW5zdGFuY2VQcm94eSA6IHB1Ymxp
YyBDRE1JbnN0YW5jZSB7CiBwdWJsaWM6Ci0gICAgQ0RNSW5zdGFuY2VQcm94eSgpID0gZGVmYXVs
dDsKKyAgICBleHBsaWNpdCBDRE1JbnN0YW5jZVByb3h5KGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgbV9jZG1Q
cm94eSA9IENETVByb3h5RmFjdG9yeTo6Y3JlYXRlQ0RNUHJveHlGb3JLZXlTeXN0ZW0oa2V5U3lz
dGVtKTsKKyAgICAgICAgaWYgKG1fY2RtUHJveHkpCisgICAgICAgICAgICBtX2NkbVByb3h5LT5z
ZXRJbnN0YW5jZSh0aGlzKTsKKyAgICB9CiAgICAgdmlydHVhbCB+Q0RNSW5zdGFuY2VQcm94eSgp
ID0gZGVmYXVsdDsKIAogICAgIC8vIE1haW4tdGhyZWFkIG9ubHkuCi0gICAgdm9pZCBzZXRQcm94
eShSZWY8Q0RNUHJveHk+JiYgcHJveHkpCi0gICAgewotICAgICAgICBtX2NkbVByb3h5ID0gV1RG
TW92ZShwcm94eSk7Ci0gICAgICAgIG1fY2RtUHJveHktPnNldEluc3RhbmNlKHRoaXMpOwotICAg
ICAgICAvLyBUaGUgQ0RNIGluc3RhbmNlIG1heSBiZSBhdHRhY2hlZCBhZnRlciBhbiB1cGRhdGUo
KS4gTm90Ci0gICAgICAgIC8vIHJlY29tbWVuZGVkLCBidXQgYXBwcyBhbmQgdGhlIFczQyB0ZXN0
LXN1aXRlIGRvIHRoaXMuCi0gICAgICAgIGlmIChtX2tleVN0b3JlLmhhc0tleXMoKSkKLSAgICAg
ICAgICAgIG1fY2RtUHJveHktPnVwZGF0ZUtleVN0b3JlKG1fa2V5U3RvcmUpOwotICAgIH0KICAg
ICB2b2lkIG1lcmdlS2V5c0Zyb20oY29uc3QgS2V5U3RvcmUmKTsKICAgICB2b2lkIHJlbW92ZUFs
bEtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNw
cAppbmRleCBjZjJkNWYxZGIzZWQuLjY1MzIyZWQ5OWU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNs
ZWFyS2V5LmNwcApAQCAtNDM0LDYgKzQzNCw3IEBAIE9wdGlvbmFsPFN0cmluZz4gQ0RNUHJpdmF0
ZUNsZWFyS2V5OjpzYW5pdGl6ZVNlc3Npb25JZChjb25zdCBTdHJpbmcmIHNlc3Npb25JZCkKICAg
ICByZXR1cm4gc2Vzc2lvbklkOwogfQogCitDRE1JbnN0YW5jZUNsZWFyS2V5OjpDRE1JbnN0YW5j
ZUNsZWFyS2V5KCkgOiBDRE1JbnN0YW5jZVByb3h5KCJvcmcudzMuY2xlYXJrZXkiX3MpIHsgfTsK
IENETUluc3RhbmNlQ2xlYXJLZXk6On5DRE1JbnN0YW5jZUNsZWFyS2V5KCkgPSBkZWZhdWx0Owog
CiB2b2lkIENETUluc3RhbmNlQ2xlYXJLZXk6OmluaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbihj
b25zdCBDRE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uJiwgQWxsb3dEaXN0aW5jdGl2ZUlkZW50aWZp
ZXJzIGRpc3RpbmN0aXZlSWRlbnRpZmllcnMsIEFsbG93UGVyc2lzdGVudFN0YXRlIHBlcnNpc3Rl
bnRTdGF0ZSwgU3VjY2Vzc0NhbGxiYWNrJiYgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJL
ZXkuaAppbmRleCAwMDZjNDVhZmNlYjYuLjhiZjM2MjcyYWRiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1D
bGVhcktleS5oCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoKIAogY2xhc3MgQ0RNSW5zdGFuY2VD
bGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1JbnN0YW5jZVByb3h5LCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8Q0RNSW5zdGFuY2VDbGVhcktleT4gewogcHVibGljOgorICAgIENETUluc3RhbmNlQ2xl
YXJLZXkoKTsKICAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZUNsZWFyS2V5KCk7CiAKICAgICAvLyBD
RE1JbnN0YW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCBhY2M1MWEyOTcwNjguLjg3MDFhYTY1NjhkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTM1MzIsNyArMzUzMiw2IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjZG1JbnN0YW5jZUF0dGFjaGVkKENE
TUluc3RhbmNlJiBpbnN0YW5jZSkKICAgICBtX2NkbUluc3RhbmNlID0gcmVpbnRlcnByZXRfY2Fz
dDxDRE1JbnN0YW5jZVByb3h5Kj4oJmluc3RhbmNlKTsKICAgICBSRUxFQVNFX0FTU0VSVChtX2Nk
bUluc3RhbmNlKTsKICAgICBtX2NkbUluc3RhbmNlLT5zZXRQbGF5ZXIobV9wbGF5ZXIpOwotICAg
IG1fY2RtSW5zdGFuY2UtPnNldFByb3h5KGFkb3B0UmVmKCpuZXcgQ0RNUHJveHlDbGVhcktleSkp
OwogCiAgICAgR1JlZlB0cjxHc3RDb250ZXh0PiBjb250ZXh0ID0gYWRvcHRHUmVmKGdzdF9jb250
ZXh0X25ldygiZHJtLWNkbS1wcm94eSIsIEZBTFNFKSk7CiAgICAgR3N0U3RydWN0dXJlKiBjb250
ZXh0U3RydWN0dXJlID0gZ3N0X2NvbnRleHRfd3JpdGFibGVfc3RydWN0dXJlKGNvbnRleHQuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9DRE1GYWN0b3J5R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKaW5kZXggY2Ez
NzU3Yzk3NGI3Li4wZjlhNjhkMmNkNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNRmFjdG9yeUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1GYWN0b3J5
R1N0cmVhbWVyLmNwcApAQCAtMzEsNyArMzEsNyBAQAogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKIAotI2luY2x1ZGUgIkNETUNsZWFyS2V5LmgiCisjaW5jbHVkZSAiQ0RNUHJveHlDbGVh
cktleS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDYgKzQwLDE0IEBAIHZvaWQg
Q0RNRmFjdG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+
JiBmYWN0b3JpZXMpCiAgICAgZmFjdG9yaWVzLmFwcGVuZCgmQ0RNRmFjdG9yeUNsZWFyS2V5Ojpz
aW5nbGV0b24oKSk7CiB9CiAKK1ZlY3RvcjxDRE1Qcm94eUZhY3RvcnkqPiBDRE1Qcm94eUZhY3Rv
cnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoKQoreworICAgIFZlY3RvcjxDRE1Qcm94eUZh
Y3RvcnkqPiBmYWN0b3JpZXM7CisgICAgZmFjdG9yaWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
MSk7CisgICAgZmFjdG9yaWVzLnVuY2hlY2tlZEFwcGVuZCgmQ0RNUHJveHlGYWN0b3J5Q2xlYXJL
ZXk6OnNpbmdsZXRvbigpKTsKKyAgICByZXR1cm4gZmFjdG9yaWVzOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Q
cm94eUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKaW5kZXggYzFiNmIzNGY2ODZmLi45MWQ3YjIz
M2ExNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcApAQCAtNjQsOSAr
NjQsMjggQEAgc3RhdGljIGJvb2wgcmVhZFVJbnQxNihjb25zdCB1aW50OF90KiBidWZmZXIsIHNp
emVfdCBidWZmZXJTaXplLCBzaXplX3QmIG9mZnNldCwKIAogfSAvLyBuYW1lc3BhY2Uge30KIAor
Q0RNUHJveHlGYWN0b3J5Q2xlYXJLZXkmIENETVByb3h5RmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0
b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDRE1Qcm94eUZhY3RvcnlDbGVhcktl
eT4gc19mYWN0b3J5OworICAgIHJldHVybiBzX2ZhY3Rvcnk7Cit9CisKK1JlZlB0cjxDRE1Qcm94
eT4gQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OmNyZWF0ZUNETVByb3h5KGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtKQoreworICAgIEFTU0VSVF9VTlVTRUQoa2V5U3lzdGVtLCBzdXBwb3J0c0tleVN5
c3RlbShrZXlTeXN0ZW0pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IENETVByb3h5Q2xlYXJL
ZXkoKSk7Cit9CisKK2Jvb2wgQ0RNUHJveHlGYWN0b3J5Q2xlYXJLZXk6OnN1cHBvcnRzS2V5U3lz
dGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIC8vIGBvcmcudzMuY2xlYXJrZXlg
IGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBrZXkgc3lzdGVtLgorICAgIHJldHVybiBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShrZXlTeXN0ZW0sICJvcmcudzMuY2xlYXJrZXkiKTsKK30KKwog
Q0RNUHJveHlDbGVhcktleTo6fkNETVByb3h5Q2xlYXJLZXkoKQogewotICAgIGdjcnlfY2lwaGVy
X2Nsb3NlKG1fZ2NyeUhhbmRsZSk7CisgICAgaWYgKG1fZ0NyeXB0SGFuZGxlKQorICAgICAgICBn
Y3J5X2NpcGhlcl9jbG9zZSgqbV9nQ3J5cHRIYW5kbGUpOwogfQogCiBib29sIENETVByb3h5Q2xl
YXJLZXk6OmNlbmNTZXRDb3VudGVyVmVjdG9yKGNvbnN0IGNlbmNEZWNyeXB0Q29udGV4dCYgaW5w
dXQpCkBAIC04Myw3ICsxMDIsNyBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNTZXRDb3Vu
dGVyVmVjdG9yKGNvbnN0IGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCiAgICAgfSBlbHNlCiAg
ICAgICAgIG1lbWNweShjdHIsIGlucHV0Lml2LCBDbGVhcktleTo6SVZTaXplSW5CeXRlcyk7CiAK
LSAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfc2V0Y3RyKG1f
Z2NyeUhhbmRsZSwgY3RyLCBDbGVhcktleTo6SVZTaXplSW5CeXRlcykpIHsKKyAgICBpZiAoZ2Ny
eV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfc2V0Y3RyKGdDcnlwdEhhbmRsZSgp
LCBjdHIsIENsZWFyS2V5OjpJVlNpemVJbkJ5dGVzKSkgewogI2lmICFMT0dfRElTQUJMRUQKICAg
ICAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhl
cl9zZXRjdHIpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOwogI2Vsc2UKQEAgLTEw
Nyw3ICsxMjYsNyBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNTZXREZWNyeXB0aW9uS2V5
KGNvbnN0IGNlbmNEZWNyeXB0Q29udGV4dCYgaW4pCiAgICAgaWYgKCFrZXlEYXRhKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2Ny
eV9jaXBoZXJfc2V0a2V5KG1fZ2NyeUhhbmRsZSwga2V5RGF0YS0+ZGF0YSgpLCBrZXlEYXRhLT5z
aXplKCkpKSB7CisgICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVy
X3NldGtleShnQ3J5cHRIYW5kbGUoKSwga2V5RGF0YS0+ZGF0YSgpLCBrZXlEYXRhLT5zaXplKCkp
KSB7CiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlD
bGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVyX3NldGtleSk6ICVzIiwgZ3BnX3N0cmVycm9yKGNp
cGhlckVycm9yKSk7CiAjZWxzZQpAQCAtMTI2LDcgKzE0NSw3IEBAIGJvb2wgQ0RNUHJveHlDbGVh
cktleTo6Y2VuY0RlY3J5cHRGdWxsU2FtcGxlKGNlbmNEZWNyeXB0Q29udGV4dCYgaW4pCiAKICAg
ICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIGZ1bGwtc2FtcGxlIGRlY3J5cHRp
b246ICV6dSBlbmNyeXB0ZWQgYnl0ZXMiLCBpbi5lbmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcyk7
CiAKLSAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlw
dChtX2djcnlIYW5kbGUsIGluLmVuY3J5cHRlZEJ1ZmZlciwgaW4uZW5jcnlwdGVkQnVmZmVyU2l6
ZUluQnl0ZXMsIDAsIDApKSB7CisgICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdj
cnlfY2lwaGVyX2RlY3J5cHQoZ0NyeXB0SGFuZGxlKCksIGluLmVuY3J5cHRlZEJ1ZmZlciwgaW4u
ZW5jcnlwdGVkQnVmZmVyU2l6ZUluQnl0ZXMsIDAsIDApKSB7CiAjaWYgIUxPR19ESVNBQkxFRAog
ICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9SKGdjcnlfY2lw
aGVyX2RlY3J5cHQpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOwogI2Vsc2UKQEAg
LTE3MCw3ICsxODksNyBAQCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0U3Vic2Ft
cGxlZChjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0KQogICAgICAgICBpZiAoc3Vic2FtcGxlTnVt
RW5jcnlwdGVkQnl0ZXMpIHsKICAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBzdWJzYW1wbGUg
aW5kZXggJXUgLSAldSBieXRlcyBlbmNyeXB0ZWQgKCVsdSBieXRlcyBsZWZ0IHRvIGRlY3J5cHQp
Iiwgc3Vic2FtcGxlSW5kZXgsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCBpbnB1dC5lbmNy
eXB0ZWRCdWZmZXJTaXplSW5CeXRlcyAtIGVuY3J5cHRlZEJ1ZmZlckJ5dGVPZmZzZXQpOwogCi0g
ICAgICAgICAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfZGVj
cnlwdChtX2djcnlIYW5kbGUsIGlucHV0LmVuY3J5cHRlZEJ1ZmZlciArIGVuY3J5cHRlZEJ1ZmZl
ckJ5dGVPZmZzZXQsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCAwLCAwKSkgeworICAgICAg
ICAgICAgaWYgKGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQo
Z0NyeXB0SGFuZGxlKCksIGlucHV0LmVuY3J5cHRlZEJ1ZmZlciArIGVuY3J5cHRlZEJ1ZmZlckJ5
dGVPZmZzZXQsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCAwLCAwKSkgewogI2lmICFMT0df
RElTQUJMRUQKICAgICAgICAgICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktl
eSAtIEVSUk9SKGdjcnlfY2lwaGVyX2RlY3J5cHQpOiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJF
cnJvcikpOwogI2Vsc2UKQEAgLTE5NCwxNiArMjEzLDIxIEBAIGJvb2wgQ0RNUHJveHlDbGVhcktl
eTo6Y2VuY0RlY3J5cHQoQ0RNUHJveHlDbGVhcktleTo6Y2VuY0RlY3J5cHRDb250ZXh0JiBpbnB1
dCkKICAgICByZXR1cm4gaW5wdXQuaXNTdWJzYW1wbGVkKCkgPyBjZW5jRGVjcnlwdFN1YnNhbXBs
ZWQoaW5wdXQpIDogY2VuY0RlY3J5cHRGdWxsU2FtcGxlKGlucHV0KTsKIH0KIAotdm9pZCBDRE1Q
cm94eUNsZWFyS2V5Ojppbml0aWFsaXplR2NyeXB0KCkKK2djcnlfY2lwaGVyX2hkX3QmIENETVBy
b3h5Q2xlYXJLZXk6OmdDcnlwdEhhbmRsZSgpCiB7Ci0gICAgaWYgKGdjcnlfZXJyb3JfdCBlcnJv
ciA9IGdjcnlfY2lwaGVyX29wZW4oJm1fZ2NyeUhhbmRsZSwgR0NSWV9DSVBIRVJfQUVTMTI4LCBH
Q1JZX0NJUEhFUl9NT0RFX0NUUiwgR0NSWV9DSVBIRVJfU0VDVVJFKSkgeworICAgIGlmICghbV9n
Q3J5cHRIYW5kbGUpIHsKKyAgICAgICAgbV9nQ3J5cHRIYW5kbGUuZW1wbGFjZSgpOworICAgICAg
ICBpZiAoZ2NyeV9lcnJvcl90IGVycm9yID0gZ2NyeV9jaXBoZXJfb3BlbigmbV9nQ3J5cHRIYW5k
bGUudmFsdWUoKSwgR0NSWV9DSVBIRVJfQUVTMTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0NUUiwgR0NS
WV9DSVBIRVJfU0VDVVJFKSkgewogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgTE9HKEVNRSwg
IkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9vcGVuKTogJXMiLCBn
cGdfc3RyZXJyb3IoZXJyb3IpKTsKKyAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94
eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfb3Blbik6ICVzIiwgZ3BnX3N0cmVycm9yKGVy
cm9yKSk7CiAjZWxzZQotICAgICAgICBVTlVTRURfVkFSSUFCTEUoZXJyb3IpOworICAgICAgICAg
ICAgVU5VU0VEX1ZBUklBQkxFKGVycm9yKTsKICNlbmRpZgotICAgICAgICBSRUxFQVNFX0FTU0VS
VChmYWxzZSAmJiAiU2hvdWxkIG5vdCBnZXQgdGhpcyBmYXIgd2l0aCBhIGZ1bmN0aW9uYWwgR0Ny
eXB0ISIpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoZmFsc2UgJiYgIlNob3VsZCBub3Qg
Z2V0IHRoaXMgZmFyIHdpdGggYSBmdW5jdGlvbmFsIEdDcnlwdCEiKTsKKyAgICAgICAgfQogICAg
IH0KKworICAgIHJldHVybiAqbV9nQ3J5cHRIYW5kbGU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmgKaW5kZXggNTAyNDBjOWY4ZDRj
Li42ZjkzZDdhODhkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5oCkBAIC0z
NiwxOCArMzYsMzEgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDxnY3J5
cHQuaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvckhhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1Qcm94eUZh
Y3RvcnkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRp
YyBDRE1Qcm94eUZhY3RvcnlDbGVhcktleSYgc2luZ2xldG9uKCk7CisKKyAgICB+Q0RNUHJveHlG
YWN0b3J5Q2xlYXJLZXkoKSA9IGRlZmF1bHQ7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNz
IE5ldmVyRGVzdHJveWVkPENETVByb3h5RmFjdG9yeUNsZWFyS2V5PjsKKworICAgIENETVByb3h5
RmFjdG9yeUNsZWFyS2V5KCkgPSBkZWZhdWx0OworICAgIFJlZlB0cjxDRE1Qcm94eT4gY3JlYXRl
Q0RNUHJveHkoY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c0tleVN5c3Rl
bShjb25zdCBTdHJpbmcmKSBmaW5hbDsKK307CisKIC8vIFRoaXMgaXMgdGhlIHRocmVhZC1zYWZl
IEFQSSB0aGF0IGRlY29kZSB0aHJlYWRzIHNob3VsZCB1c2UgdG8gbWFrZSB1c2Ugb2YgYQogLy8g
cGxhdGZvcm0gQ0RNIG1vZHVsZS4KIGNsYXNzIENETVByb3h5Q2xlYXJLZXkgZmluYWwgOiBwdWJs
aWMgQ0RNUHJveHksIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1Qcm94eUNsZWFyS2V5LCBXZWFr
UHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4gewogcHVibGljOgotICAgIENETVByb3h5
Q2xlYXJLZXkoKQotICAgIHsKLSAgICAgICAgaW5pdGlhbGl6ZUdjcnlwdCgpOwotICAgIH0KKyAg
ICBDRE1Qcm94eUNsZWFyS2V5KCkgPSBkZWZhdWx0OwogICAgIHZpcnR1YWwgfkNETVByb3h5Q2xl
YXJLZXkoKTsKIAogICAgIC8vIEZJWE1FOiBUaGVyZSdzIGEgbGFjayBvZiBjb25zaXN0ZW5jeSBi
ZXR3ZWVuIFNoYXJlZEJ1ZmZlcnMsCkBAIC04OCw3ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBjZW5jRGVjcnlwdChjZW5jRGVjcnlwdENvbnRleHQmKTsKIAogcHJpdmF0ZToKLSAgICB2b2lk
IGluaXRpYWxpemVHY3J5cHQoKTsKKyAgICBnY3J5X2NpcGhlcl9oZF90JiBnQ3J5cHRIYW5kbGUo
KTsKIAogICAgIC8vIEZJWE1FOiBGb3Igbm93IHdlIG9ubHkgc3VwcG9ydCBBRVMgaW4gQ1RSIG1v
ZGUsIGluIHRoZSBmdXR1cmUKICAgICAvLyB3ZSB3aWxsIHN1cmVseSBoYXZlIHRvIHN1cHBvcnQg
bW9yZSBwcm90ZWN0aW9uIHNjaGVtZXMuIENhbiB3ZQpAQCAtOTksNyArMTEyLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIGNlbmNEZWNyeXB0U3Vic2FtcGxlZChjZW5jRGVjcnlwdENvbnRleHQmKTsK
IAogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNlIHRvIHVzZSBzb21ldGhpbmcgaW4gV2Vi
Q29yZSBmb3IgY3J5cHRvLi4uCi0gICAgZ2NyeV9jaXBoZXJfaGRfdCBtX2djcnlIYW5kbGU7Cisg
ICAgT3B0aW9uYWw8Z2NyeV9jaXBoZXJfaGRfdD4gbV9nQ3J5cHRIYW5kbGUgeyBXVEY6Om51bGxv
cHQgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>