<?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>180080</bug_id>
          
          <creation_ts>2017-11-28 06:25:23 -0800</creation_ts>
          <short_desc>[EME][GStreamer] Add the full-sample encryption support in the GStreamer ClearKey decryptor</short_desc>
          <delta_ts>2018-05-07 10:08:04 -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>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yacine Bandou">bandou.yacine</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>olivier.blin</cc>
    
    <cc>pnormand</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1375330</commentid>
    <comment_count>0</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2017-11-28 06:25:23 -0800</bug_when>
    <thetext>Currently the GStreamer ClearKey decryptor doesn&apos;t support the full-sample encryption, where the buffer is entirely encrypted,
it supports only the sub-sample encryption.

The sub-sample encryption: The buffer is divided into one or more subsamples. Each subsample have a clear part followed by an encrypted part.

The full-sample encryption: The entire buffer is encrypted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375334</commentid>
    <comment_count>1</comment_count>
      <attachid>327749</attachid>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2017-11-28 06:46:32 -0800</bug_when>
    <thetext>Created attachment 327749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375754</commentid>
    <comment_count>2</comment_count>
      <attachid>327749</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-11-29 01:16:15 -0800</bug_when>
    <thetext>Comment on attachment 327749
Patch

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

I think given the complexity of this algorithm and considering that we are inside a GStreamer element we can do some GStreamer-like coding. In this case, I think GStreamer gotos are a good option. In the subsamples section we have &quot;park&quot; that is going to free the reader and the subsamples map, it is going to fallback to beach after the if clause finishes and if is going to free the buffer map. In the whole buffer decryption we just fallback to beach.

This is not an r+ because it is not ready IMHO but it is not an r- either because technically I see nothing wrong.

What would be really nice would be to have something like UniquePtr but for this kind of stack variables that need some action to free them. Anyway I think it would be out of the scope of this bug unless you feel like doing it.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:238
&gt; +    if (subSampleCount) {

Before this:

bool returnValue = true;

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:242
&gt; +        gboolean subsamplesBufferMapped = gst_buffer_map(subSamplesBuffer, &amp;subSamplesMap, GST_MAP_READ);

gboolean -&gt; bool

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:246
&gt; +            gst_buffer_unmap(buffer, &amp;map);
&gt; +            return false;

returnValue = false;
goto beach;

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:251
&gt; +        unsigned sampleIndex = 0;

Move sampleIndex to below GST_DEBUG_OBJECT.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:257
&gt; +            guint16 nBytesClear = 0;
&gt; +            guint32 nBytesEncrypted = 0;

uint16_t and uint32_t

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:266
&gt; +                    gst_byte_reader_free(reader);
&gt; +                    gst_buffer_unmap(buffer, &amp;map);
&gt; +                    gst_buffer_unmap(subSamplesBuffer, &amp;subSamplesMap);
&gt; +                    return false;

returnValue = false;
goto park;

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:285
&gt; +                    gst_byte_reader_free(reader);
&gt; +                    gst_buffer_unmap(buffer, &amp;map);
&gt; +                    gst_buffer_unmap(subSamplesBuffer, &amp;subSamplesMap);
&gt; +                    return false;

ditto

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:291
&gt; +        gst_byte_reader_free(reader);
&gt; +        gst_buffer_unmap(subSamplesBuffer, &amp;subSamplesMap);

&quot;park:&quot; here

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:296
&gt; +        guint32 nBytesEncrypted = map.size;

You don&apos;t need this variable

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:305
&gt;                  gst_buffer_unmap(buffer, &amp;map);
&gt; -                gst_buffer_unmap(subSamplesBuffer, &amp;subSamplesMap);
&gt;                  return false;

returnValue = false;
goto beach;

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:309
&gt;      gst_buffer_unmap(buffer, &amp;map);

beach: here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375756</commentid>
    <comment_count>3</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-11-29 01:19:35 -0800</bug_when>
    <thetext>Btw, is there any test backing this implementation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375765</commentid>
    <comment_count>4</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2017-11-29 02:18:44 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #2)
&gt; Comment on attachment 327749 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=327749&amp;action=review
&gt; 
&gt; I think given the complexity of this algorithm and considering that we are
&gt; inside a GStreamer element we can do some GStreamer-like coding. In this
&gt; case, I think GStreamer gotos are a good option. In the subsamples section
&gt; we have &quot;park&quot; that is going to free the reader and the subsamples map, it
&gt; is going to fallback to beach after the if clause finishes and if is going
&gt; to free the buffer map. In the whole buffer decryption we just fallback to
&gt; beach.
&gt; 
&gt; This is not an r+ because it is not ready IMHO but it is not an r- either
&gt; because technically I see nothing wrong.
&gt; 
&gt; What would be really nice would be to have something like UniquePtr but for
&gt; this kind of stack variables that need some action to free them. Anyway I
&gt; think it would be out of the scope of this bug unless you feel like doing it.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:238
&gt; &gt; +    if (subSampleCount) {
&gt; 
&gt; Before this:
&gt; 
&gt; bool returnValue = true;
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:242
&gt; &gt; +        gboolean subsamplesBufferMapped = gst_buffer_map(subSamplesBuffer, &amp;subSamplesMap, GST_MAP_READ);
&gt; 
&gt; gboolean -&gt; bool
&gt; 
It&apos;s not my code, it was already here

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:246
&gt; &gt; +            gst_buffer_unmap(buffer, &amp;map);
&gt; &gt; +            return false;
&gt; 
&gt; returnValue = false;
&gt; goto beach;
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:251
&gt; &gt; +        unsigned sampleIndex = 0;
&gt; 
&gt; Move sampleIndex to below GST_DEBUG_OBJECT.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:257
&gt; &gt; +            guint16 nBytesClear = 0;
&gt; &gt; +            guint32 nBytesEncrypted = 0;
&gt; 
&gt; uint16_t and uint32_t
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:266
&gt; &gt; +                    gst_byte_reader_free(reader);
&gt; &gt; +                    gst_buffer_unmap(buffer, &amp;map);
&gt; &gt; +                    gst_buffer_unmap(subSamplesBuffer, &amp;subSamplesMap);
&gt; &gt; +                    return false;
&gt; 
&gt; returnValue = false;
&gt; goto park;
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:285
&gt; &gt; +                    gst_byte_reader_free(reader);
&gt; &gt; +                    gst_buffer_unmap(buffer, &amp;map);
&gt; &gt; +                    gst_buffer_unmap(subSamplesBuffer, &amp;subSamplesMap);
&gt; &gt; +                    return false;
&gt; 
&gt; ditto
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:291
&gt; &gt; +        gst_byte_reader_free(reader);
&gt; &gt; +        gst_buffer_unmap(subSamplesBuffer, &amp;subSamplesMap);
&gt; 
&gt; &quot;park:&quot; here
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:296
&gt; &gt; +        guint32 nBytesEncrypted = map.size;
&gt; 
&gt; You don&apos;t need this variable
&gt; 

Ok I&apos;ll remove it and I&apos;ll use map.size instead

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:305
&gt; &gt;                  gst_buffer_unmap(buffer, &amp;map);
&gt; &gt; -                gst_buffer_unmap(subSamplesBuffer, &amp;subSamplesMap);
&gt; &gt;                  return false;
&gt; 
&gt; returnValue = false;
&gt; goto beach;
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:309
&gt; &gt;      gst_buffer_unmap(buffer, &amp;map);
&gt; 
&gt; beach: here


I think there is a misunderstanding during the patch review

Here is the diff by ignoring the space change:

--- a/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp
+++ b/Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp
@@ -235,6 +235,8 @@ static gboolean webKitMediaClearKeyDecryptorDecrypt(WebKitMediaCommonEncryptionD
         GST_ERROR_OBJECT(self, &quot;Failed to map buffer&quot;);
         return false;
     }
+    if (subSampleCount) {
+        // Subsample encryption.
 
         GstMapInfo subSamplesMap;
         gboolean subsamplesBufferMapped = gst_buffer_map(subSamplesBuffer, &amp;subSamplesMap, GST_MAP_READ);
@@ -276,7 +278,7 @@ static gboolean webKitMediaClearKeyDecryptorDecrypt(WebKitMediaCommonEncryptionD
                 GST_TRACE_OBJECT(self, &quot;%d bytes encrypted (todo=%zu)&quot;, nBytesEncrypted, map.size - position);
                 error = gcry_cipher_decrypt(priv-&gt;handle, map.data + position, nBytesEncrypted, 0, 0);
                 if (error) {
-                GST_ERROR_OBJECT(self, &quot;decryption failed: %s&quot;, gpg_strerror(error));
+                    GST_ERROR_OBJECT(self, &quot;sub sample decryption failed: %s&quot;, gpg_strerror(error));
                     gst_byte_reader_free(reader);
                     gst_buffer_unmap(buffer, &amp;map);
                     gst_buffer_unmap(subSamplesBuffer, &amp;subSamplesMap);
@@ -285,10 +287,27 @@ static gboolean webKitMediaClearKeyDecryptorDecrypt(WebKitMediaCommonEncryptionD
                 position += nBytesEncrypted;
             }
         }
-
         gst_byte_reader_free(reader);
-    gst_buffer_unmap(buffer, &amp;map);
         gst_buffer_unmap(subSamplesBuffer, &amp;subSamplesMap);
+
+    } else {
+        // Full sample encryption.
+
+        guint32 nBytesEncrypted = map.size;
+        GST_TRACE_OBJECT(self, &quot;full sample encryption: %d encrypted bytes&quot;, nBytesEncrypted);
+
+        // Check if the buffer is empty.
+        if (nBytesEncrypted) {
+            error = gcry_cipher_decrypt(priv-&gt;handle, map.data, nBytesEncrypted, 0, 0);
+            if (error) {
+                GST_ERROR_OBJECT(self, &quot;full sample decryption failed: %s&quot;, gpg_strerror(error));
+                gst_buffer_unmap(buffer, &amp;map);
+                return false;
+            }
+        }
+    }
+    gst_buffer_unmap(buffer, &amp;map);
+
     return true;
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375767</commentid>
    <comment_count>5</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2017-11-29 02:59:02 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #3)
&gt; Btw, is there any test backing this implementation?

These patches: 180071, 180081, 180083 with this one, allow us pass this EME ClearKey test https://cpearce.github.io/mse-eme/

The content media of this test is in full-sample encryption mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375776</commentid>
    <comment_count>6</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-11-29 04:54:58 -0800</bug_when>
    <thetext>(In reply to Yacine Bandou from comment #4)
&gt; &gt; gboolean -&gt; bool
&gt; &gt; 
&gt; It&apos;s not my code, it was already here

I happens a lot of times to me too. I&apos;m not in favor of changing things when they are wrong if it&apos;s just a style issue just for the style itself but if I have to change the line, I prefer to correct the style too.

&gt; I think there is a misunderstanding during the patch review
&gt; 
&gt; Here is the diff by ignoring the space change:

Oh, I see. But you&apos;re modifying those lines anyway and they will be reflected like your change in the diff and as I say before, better to correct the things that we can when we touch those lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375777</commentid>
    <comment_count>7</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-11-29 04:57:50 -0800</bug_when>
    <thetext>(In reply to Yacine Bandou from comment #5)
&gt; (In reply to Xabier Rodríguez Calvar from comment #3)
&gt; &gt; Btw, is there any test backing this implementation?
&gt; 
&gt; These patches: 180071, 180081, 180083 with this one, allow us pass this EME
&gt; ClearKey test https://cpearce.github.io/mse-eme/
&gt; 
&gt; The content media of this test is in full-sample encryption mode.

Seems good. I&apos;d suggest you import the test into WebKit then, cause adding all this code without a test to back it up is a bad idea. I don&apos;t know if it&apos;s possible to use the test importer (I doubt it). But I&apos;d import the test into WebKit and acknowledge the author/s in that commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375778</commentid>
    <comment_count>8</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-11-29 05:00:37 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #7)
&gt; &gt; The content media of this test is in full-sample encryption mode.
&gt; 
&gt; Seems good. I&apos;d suggest you import the test into WebKit then, cause adding
&gt; all this code without a test to back it up is a bad idea. I don&apos;t know if
&gt; it&apos;s possible to use the test importer (I doubt it). But I&apos;d import the test
&gt; into WebKit and acknowledge the author/s in that commit.

Actually, maybe the idea would be to add the test before, flag it as failure because we lack the proper code, add dependencies to the bugs that implement the fix for it and when everything is ok, unflag it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375791</commentid>
    <comment_count>9</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2017-11-29 06:10:41 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #6)
&gt; (In reply to Yacine Bandou from comment #4)
&gt; &gt; &gt; gboolean -&gt; bool
&gt; &gt; &gt; 
&gt; &gt; It&apos;s not my code, it was already here
&gt; 
&gt; I happens a lot of times to me too. I&apos;m not in favor of changing things when
&gt; they are wrong if it&apos;s just a style issue just for the style itself but if I
&gt; have to change the line, I prefer to correct the style too.
&gt; 
&gt; &gt; I think there is a misunderstanding during the patch review
&gt; &gt; 
&gt; &gt; Here is the diff by ignoring the space change:
&gt; 
&gt; Oh, I see. But you&apos;re modifying those lines anyway and they will be
&gt; reflected like your change in the diff and as I say before, better to
&gt; correct the things that we can when we touch those lines.

understood and I agree.

But it depends on the reviewer, there are who do not like to change the existing code just for the style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375800</commentid>
    <comment_count>10</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2017-11-29 06:50:03 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #8)
&gt; (In reply to Xabier Rodríguez Calvar from comment #7)
&gt; &gt; &gt; The content media of this test is in full-sample encryption mode.
&gt; &gt; 
&gt; &gt; Seems good. I&apos;d suggest you import the test into WebKit then, cause adding
&gt; &gt; all this code without a test to back it up is a bad idea. I don&apos;t know if
&gt; &gt; it&apos;s possible to use the test importer (I doubt it). But I&apos;d import the test
&gt; &gt; into WebKit and acknowledge the author/s in that commit.
&gt; 
&gt; Actually, maybe the idea would be to add the test before, flag it as failure
&gt; because we lack the proper code, add dependencies to the bugs that implement
&gt; the fix for it and when everything is ok, unflag it.

understood, I&apos;ll see how can do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383717</commentid>
    <comment_count>11</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2017-12-20 10:31:42 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #2)
&gt; Comment on attachment 327749 [details]
&gt; Patch
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:238
&gt; &gt; +    if (subSampleCount) {
&gt; 
&gt; Before this:
&gt; 
&gt; bool returnValue = true;

I agree.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:242
&gt; &gt; +        gboolean subsamplesBufferMapped = gst_buffer_map(subSamplesBuffer, &amp;subSamplesMap, GST_MAP_READ);
&gt; 
&gt; gboolean -&gt; bool

It is a GStreamer element, long term, I think we should extract the GstDecryptor from WebKit and put it in gst-plugin-bad for example.

For that, we should keep the GStreamer types and style instead of WebKit types or style.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:246
&gt; &gt; +            gst_buffer_unmap(buffer, &amp;map);
&gt; &gt; +            return false;
&gt; 
&gt; returnValue = false;
&gt; goto beach;
&gt; 

I agree.

&gt; &gt; SSource/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:296
&gt; &gt; +        guint32 nBytesEncrypted = map.size;
&gt; 
&gt; You don&apos;t need this variable
&gt; 

I agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1384448</commentid>
    <comment_count>12</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-12-22 03:59:20 -0800</bug_when>
    <thetext>(In reply to Yacine Bandou from comment #11)
&gt; It is a GStreamer element, long term, I think we should extract the
&gt; GstDecryptor from WebKit and put it in gst-plugin-bad for example.
&gt; 
&gt; For that, we should keep the GStreamer types and style instead of WebKit
&gt; types or style.

I agree that we could do that in the long term. Nowadays, it is inside WebKit codebase and follows (or should) its coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389336</commentid>
    <comment_count>13</comment_count>
      <attachid>331346</attachid>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-01-15 10:56:21 -0800</bug_when>
    <thetext>Created attachment 331346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389474</commentid>
    <comment_count>14</comment_count>
      <attachid>331346</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-01-16 00:38:20 -0800</bug_when>
    <thetext>Comment on attachment 331346
Patch

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

Shouldn&apos;t this patch also remove avoid the crash flagged in r226966

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:242
&gt; +    GstByteReader* reader;
&gt; +    unsigned position = 0;
&gt; +    unsigned sampleIndex = 0;

Can we leave this variables where they&apos;re used or is the compiler complaining?

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:244
&gt; +    bool subsamplesBufferMapped;

Ditto.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:252
&gt; +            error = gcry_cipher_decrypt(priv-&gt;handle, map.data, map.size, 0, 0);

We should rename this variable to something more meaningful like cypherError.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:289
&gt; +        GST_TRACE_OBJECT(self, &quot;subsample index %d - %d bytes clear (todo=%zu)&quot;, sampleIndex, nBytesClear, map.size - position);

If I am not mistaken, sampleIndex should be printed with %u and nBytesClear with %hu.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:292
&gt; +            GST_TRACE_OBJECT(self, &quot;subsample index %d - %d bytes encrypted (todo=%zu)&quot;, sampleIndex, nBytesEncrypted, map.size - position);

Ditto.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:295
&gt; +                GST_ERROR_OBJECT(self, &quot;sub sample index %d decryption failed: %s&quot;, sampleIndex, gpg_strerror(error));

Ditto.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:302
&gt; +freeReader:

I think we should rename this as releaseSubsamples

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:306
&gt; +unmapBuffer:

I think we should rename this as releaseBuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389493</commentid>
    <comment_count>15</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-01-16 02:07:10 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #14)
&gt; Comment on attachment 331346 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=331346&amp;action=review
&gt; 
&gt; Shouldn&apos;t this patch also remove avoid the crash flagged in r226966
&gt; 

Yes, exactly
I&apos;ll add explicitly check of the subSampleBuffer.
  

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:242
&gt; &gt; +    GstByteReader* reader;
&gt; &gt; +    unsigned position = 0;
&gt; &gt; +    unsigned sampleIndex = 0;
&gt; 
&gt; Can we leave this variables where they&apos;re used or is the compiler
&gt; complaining?
&gt;
for : 
GstByteReader* reader; 
unsigned position = 0;

The compiler complaining, I get a &quot;cross initialization&quot; 

for:
unsigned sampleIndex = 0; 

I&apos;ll move it.

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:244
&gt; &gt; +    bool subsamplesBufferMapped;
&gt; 
&gt; Ditto.
&gt; 

I&apos;ll remove it.

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:252
&gt; &gt; +            error = gcry_cipher_decrypt(priv-&gt;handle, map.data, map.size, 0, 0);
&gt; 
&gt; We should rename this variable to something more meaningful like cypherError.
&gt; 

I agree.


&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:289
&gt; &gt; +        GST_TRACE_OBJECT(self, &quot;subsample index %d - %d bytes clear (todo=%zu)&quot;, sampleIndex, nBytesClear, map.size - position);
&gt; 
&gt; If I am not mistaken, sampleIndex should be printed with %u and nBytesClear
&gt; with %hu.
&gt; 

Yes

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:292
&gt; &gt; +            GST_TRACE_OBJECT(self, &quot;subsample index %d - %d bytes encrypted (todo=%zu)&quot;, sampleIndex, nBytesEncrypted, map.size - position);
&gt; 
&gt; Ditto.
&gt; 
Yes 

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:295
&gt; &gt; +                GST_ERROR_OBJECT(self, &quot;sub sample index %d decryption failed: %s&quot;, sampleIndex, gpg_strerror(error));
&gt; 
&gt; Ditto.
&gt;
 
Yes

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:302
&gt; &gt; +freeReader:
&gt; 
&gt; I think we should rename this as releaseSubsamples
&gt; 

OK

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:306
&gt; &gt; +unmapBuffer:
&gt; 
&gt; I think we should rename this as releaseBuffer.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389497</commentid>
    <comment_count>16</comment_count>
      <attachid>331378</attachid>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-01-16 03:04:13 -0800</bug_when>
    <thetext>Created attachment 331378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389901</commentid>
    <comment_count>17</comment_count>
      <attachid>331378</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-01-16 23:35:39 -0800</bug_when>
    <thetext>Comment on attachment 331378
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:210
&gt; +    // Check ivBuffer isn&apos;t null

Period at the end.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:238
&gt; +    // Check buffer isn&apos;t null

Period at the end.

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:271
&gt; +    // Check subSamplesBuffer isn&apos;t null

Period at the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389940</commentid>
    <comment_count>18</comment_count>
      <attachid>331478</attachid>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-01-17 01:39:50 -0800</bug_when>
    <thetext>Created attachment 331478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390024</commentid>
    <comment_count>19</comment_count>
      <attachid>331478</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-17 09:00:12 -0800</bug_when>
    <thetext>Comment on attachment 331478
Patch

Clearing flags on attachment: 331478

Committed r227067: &lt;https://trac.webkit.org/changeset/227067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390025</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-17 09:00:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421295</commentid>
    <comment_count>21</comment_count>
      <attachid>331478</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-05-07 09:23:40 -0700</bug_when>
    <thetext>Comment on attachment 331478
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:293
&gt; +        unsigned sampleIndex = 0;
&gt;  
&gt;          if (sampleIndex &lt; subSampleCount) {

This is wrong. Now sampleIndex is unconditionally 0. The assignment should be moved outside of the loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421307</commentid>
    <comment_count>22</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-05-07 10:08:04 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #21)
&gt; Comment on attachment 331478 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=331478&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:293
&gt; &gt; +        unsigned sampleIndex = 0;
&gt; &gt;  
&gt; &gt;          if (sampleIndex &lt; subSampleCount) {
&gt; 
&gt; This is wrong. Now sampleIndex is unconditionally 0. The assignment should
&gt; be moved outside of the loop.

I agree, I created a bug to fix it https://bugs.webkit.org/show_bug.cgi?id=185382</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327749</attachid>
            <date>2017-11-28 06:46:32 -0800</date>
            <delta_ts>2018-01-15 10:56:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180080-20171128154631.patch</filename>
            <type>text/plain</type>
            <size>6571</size>
            <attacher name="Yacine Bandou">bandou.yacine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE3NDY3YjA2ZDgwYWVj
YTgxZTZjNGJiYzVhZDc0YzZmY2YyNGUxMi4uYmQzOGFjMzdmMGY0MDE2MDIwZWUxNTU1OGViZDc1
NmI3NjQyMWU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTExLTI4ICBZYWNp
bmUgQmFuZG91ICA8eWFjaW5lLmJhbmRvdV9leHRAc29mdGF0aG9tZS5jb20+CisKKyAgICAgICAg
W0VNRV1bR1N0cmVhbWVyXSBBZGQgdGhlIGZ1bGwtc2FtcGxlIGVuY3J5cHRpb24gc3VwcG9ydCBp
biB0aGUgR1N0cmVhbWVyIENsZWFyS2V5IGRlY3J5cHRvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IHRoZSBHU3RyZWFtZXIgQ2xlYXJL
ZXkgZGVjcnlwdG9yIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgZnVsbC1zYW1wbGUgZW5jcnlwdGlvbiwK
KyAgICAgICAgd2hlcmUgdGhlIGJ1ZmZlciBpcyBlbnRpcmVseSBlbmNyeXB0ZWQsIGl0IHN1cHBv
cnRzIG9ubHkgdGhlIHN1Yi1zYW1wbGUgZW5jcnlwdGlvbi4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIu
Y3BwOgorICAgICAgICAod2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvckRlY3J5cHQpOgorCiAy
MDE3LTExLTI4ICBZYWNpbmUgQmFuZG91ICA8eWFjaW5lLmJhbmRvdV9leHRAc29mdGF0aG9tZS5j
b20+CiAKICAgICAgICAgW0VNRV0gSW1wbGVtZW50IGluaXREYXRhIGFuZCBpbml0RGF0YVR5cGUg
ZnVuY3Rpb25zIGluIE1lZGlhRW5jcnlwdGVkRXZlbnQgY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5
RGVjcnlwdG9yR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwCmluZGV4
IDE1ZWU1ODZmZjdmMzE5ZDA2YjE0MmQwZWZlMWI3ZjBjNWQxZjFkZTkuLjY4ZTZlZjFlZjEwZjk5
MTM2MDY5Y2FiZmI0YmM3MjQ1ZjdkZWEwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwCkBAIC0yMzUsNjAgKzIz
NSw3OSBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvckRlY3J5
cHQoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRAogICAgICAgICBHU1RfRVJST1JfT0JKRUNU
KHNlbGYsICJGYWlsZWQgdG8gbWFwIGJ1ZmZlciIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQorICAgIGlmIChzdWJTYW1wbGVDb3VudCkgeworICAgICAgICAvLyBTdWJzYW1wbGUgZW5j
cnlwdGlvbi4KKworICAgICAgICBHc3RNYXBJbmZvIHN1YlNhbXBsZXNNYXA7CisgICAgICAgIGdi
b29sZWFuIHN1YnNhbXBsZXNCdWZmZXJNYXBwZWQgPSBnc3RfYnVmZmVyX21hcChzdWJTYW1wbGVz
QnVmZmVyLCAmc3ViU2FtcGxlc01hcCwgR1NUX01BUF9SRUFEKTsKKyAgICAgICAgaWYgKCFzdWJz
YW1wbGVzQnVmZmVyTWFwcGVkKSB7CisgICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYs
ICJGYWlsZWQgdG8gbWFwIHN1YnNhbXBsZSBidWZmZXIiKTsKKyAgICAgICAgICAgIGdzdF9idWZm
ZXJfdW5tYXAoYnVmZmVyLCAmbWFwKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgfQogCi0gICAgR3N0TWFwSW5mbyBzdWJTYW1wbGVzTWFwOwotICAgIGdib29sZWFuIHN1YnNh
bXBsZXNCdWZmZXJNYXBwZWQgPSBnc3RfYnVmZmVyX21hcChzdWJTYW1wbGVzQnVmZmVyLCAmc3Vi
U2FtcGxlc01hcCwgR1NUX01BUF9SRUFEKTsKLSAgICBpZiAoIXN1YnNhbXBsZXNCdWZmZXJNYXBw
ZWQpIHsKLSAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRvIG1hcCBzdWJz
YW1wbGUgYnVmZmVyIik7Ci0gICAgICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmbWFwKTsK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEdzdEJ5dGVSZWFkZXIqIHJlYWRl
ciA9IGdzdF9ieXRlX3JlYWRlcl9uZXcoc3ViU2FtcGxlc01hcC5kYXRhLCBzdWJTYW1wbGVzTWFw
LnNpemUpOwotICAgIHVuc2lnbmVkIHBvc2l0aW9uID0gMDsKLSAgICB1bnNpZ25lZCBzYW1wbGVJ
bmRleCA9IDA7Ci0KLSAgICBHU1RfREVCVUdfT0JKRUNUKHNlbGYsICJwb3NpdGlvbjogJWQsIHNp
emU6ICV6dSIsIHBvc2l0aW9uLCBtYXAuc2l6ZSk7Ci0KLSAgICB3aGlsZSAocG9zaXRpb24gPCBt
YXAuc2l6ZSkgewotICAgICAgICBndWludDE2IG5CeXRlc0NsZWFyID0gMDsKLSAgICAgICAgZ3Vp
bnQzMiBuQnl0ZXNFbmNyeXB0ZWQgPSAwOwotCi0gICAgICAgIGlmIChzYW1wbGVJbmRleCA8IHN1
YlNhbXBsZUNvdW50KSB7Ci0gICAgICAgICAgICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWlu
dDE2X2JlKHJlYWRlciwgJm5CeXRlc0NsZWFyKQotICAgICAgICAgICAgICAgIHx8ICFnc3RfYnl0
ZV9yZWFkZXJfZ2V0X3VpbnQzMl9iZShyZWFkZXIsICZuQnl0ZXNFbmNyeXB0ZWQpKSB7Ci0gICAg
ICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzZWxmLCAidW5zdXBwb3J0ZWQiKTsKLSAgICAg
ICAgICAgICAgICBnc3RfYnl0ZV9yZWFkZXJfZnJlZShyZWFkZXIpOwotICAgICAgICAgICAgICAg
IGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmbWFwKTsKLSAgICAgICAgICAgICAgICBnc3RfYnVm
ZmVyX3VubWFwKHN1YlNhbXBsZXNCdWZmZXIsICZzdWJTYW1wbGVzTWFwKTsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEdzdEJ5dGVSZWFkZXIqIHJlYWRlciA9IGdzdF9i
eXRlX3JlYWRlcl9uZXcoc3ViU2FtcGxlc01hcC5kYXRhLCBzdWJTYW1wbGVzTWFwLnNpemUpOwor
ICAgICAgICB1bnNpZ25lZCBwb3NpdGlvbiA9IDA7CisgICAgICAgIHVuc2lnbmVkIHNhbXBsZUlu
ZGV4ID0gMDsKKworICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNlbGYsICJwb3NpdGlvbjogJWQs
IHNpemU6ICV6dSIsIHBvc2l0aW9uLCBtYXAuc2l6ZSk7CisKKyAgICAgICAgd2hpbGUgKHBvc2l0
aW9uIDwgbWFwLnNpemUpIHsKKyAgICAgICAgICAgIGd1aW50MTYgbkJ5dGVzQ2xlYXIgPSAwOwor
ICAgICAgICAgICAgZ3VpbnQzMiBuQnl0ZXNFbmNyeXB0ZWQgPSAwOworCisgICAgICAgICAgICBp
ZiAoc2FtcGxlSW5kZXggPCBzdWJTYW1wbGVDb3VudCkgeworICAgICAgICAgICAgICAgIGlmICgh
Z3N0X2J5dGVfcmVhZGVyX2dldF91aW50MTZfYmUocmVhZGVyLCAmbkJ5dGVzQ2xlYXIpCisgICAg
ICAgICAgICAgICAgICAgIHx8ICFnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQzMl9iZShyZWFkZXIs
ICZuQnl0ZXNFbmNyeXB0ZWQpKSB7CisgICAgICAgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpF
Q1Qoc2VsZiwgInVuc3VwcG9ydGVkIik7CisgICAgICAgICAgICAgICAgICAgIGdzdF9ieXRlX3Jl
YWRlcl9mcmVlKHJlYWRlcik7CisgICAgICAgICAgICAgICAgICAgIGdzdF9idWZmZXJfdW5tYXAo
YnVmZmVyLCAmbWFwKTsKKyAgICAgICAgICAgICAgICAgICAgZ3N0X2J1ZmZlcl91bm1hcChzdWJT
YW1wbGVzQnVmZmVyLCAmc3ViU2FtcGxlc01hcCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzYW1wbGVJbmRl
eCsrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuQnl0ZXNDbGVhciA9
IDA7CisgICAgICAgICAgICAgICAgbkJ5dGVzRW5jcnlwdGVkID0gbWFwLnNpemUgLSBwb3NpdGlv
bjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgc2FtcGxlSW5kZXgrKzsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIG5CeXRlc0NsZWFyID0gMDsKLSAgICAgICAgICAgIG5CeXRl
c0VuY3J5cHRlZCA9IG1hcC5zaXplIC0gcG9zaXRpb247CisgICAgICAgICAgICBHU1RfVFJBQ0Vf
T0JKRUNUKHNlbGYsICIlZCBieXRlcyBjbGVhciAodG9kbz0lenUpIiwgbkJ5dGVzQ2xlYXIsIG1h
cC5zaXplIC0gcG9zaXRpb24pOworICAgICAgICAgICAgcG9zaXRpb24gKz0gbkJ5dGVzQ2xlYXI7
CisgICAgICAgICAgICBpZiAobkJ5dGVzRW5jcnlwdGVkKSB7CisgICAgICAgICAgICAgICAgR1NU
X1RSQUNFX09CSkVDVChzZWxmLCAiJWQgYnl0ZXMgZW5jcnlwdGVkICh0b2RvPSV6dSkiLCBuQnl0
ZXNFbmNyeXB0ZWQsIG1hcC5zaXplIC0gcG9zaXRpb24pOworICAgICAgICAgICAgICAgIGVycm9y
ID0gZ2NyeV9jaXBoZXJfZGVjcnlwdChwcml2LT5oYW5kbGUsIG1hcC5kYXRhICsgcG9zaXRpb24s
IG5CeXRlc0VuY3J5cHRlZCwgMCwgMCk7CisgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgICAgICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgInN1YiBzYW1wbGUgZGVj
cnlwdGlvbiBmYWlsZWQ6ICVzIiwgZ3BnX3N0cmVycm9yKGVycm9yKSk7CisgICAgICAgICAgICAg
ICAgICAgIGdzdF9ieXRlX3JlYWRlcl9mcmVlKHJlYWRlcik7CisgICAgICAgICAgICAgICAgICAg
IGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmbWFwKTsKKyAgICAgICAgICAgICAgICAgICAgZ3N0
X2J1ZmZlcl91bm1hcChzdWJTYW1wbGVzQnVmZmVyLCAmc3ViU2FtcGxlc01hcCk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgcG9zaXRpb24gKz0gbkJ5dGVzRW5jcnlwdGVkOworICAgICAgICAgICAgfQogICAgICAg
ICB9CisgICAgICAgIGdzdF9ieXRlX3JlYWRlcl9mcmVlKHJlYWRlcik7CisgICAgICAgIGdzdF9i
dWZmZXJfdW5tYXAoc3ViU2FtcGxlc0J1ZmZlciwgJnN1YlNhbXBsZXNNYXApOworCisgICAgfSBl
bHNlIHsKKyAgICAgICAgLy8gRnVsbCBzYW1wbGUgZW5jcnlwdGlvbi4KKworICAgICAgICBndWlu
dDMyIG5CeXRlc0VuY3J5cHRlZCA9IG1hcC5zaXplOworICAgICAgICBHU1RfVFJBQ0VfT0JKRUNU
KHNlbGYsICJmdWxsIHNhbXBsZSBlbmNyeXB0aW9uOiAlZCBlbmNyeXB0ZWQgYnl0ZXMiLCBuQnl0
ZXNFbmNyeXB0ZWQpOwogCi0gICAgICAgIEdTVF9UUkFDRV9PQkpFQ1Qoc2VsZiwgIiVkIGJ5dGVz
IGNsZWFyICh0b2RvPSV6dSkiLCBuQnl0ZXNDbGVhciwgbWFwLnNpemUgLSBwb3NpdGlvbik7Ci0g
ICAgICAgIHBvc2l0aW9uICs9IG5CeXRlc0NsZWFyOworICAgICAgICAvLyBDaGVjayBpZiB0aGUg
YnVmZmVyIGlzIGVtcHR5LgogICAgICAgICBpZiAobkJ5dGVzRW5jcnlwdGVkKSB7Ci0gICAgICAg
ICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICIlZCBieXRlcyBlbmNyeXB0ZWQgKHRvZG89JXp1
KSIsIG5CeXRlc0VuY3J5cHRlZCwgbWFwLnNpemUgLSBwb3NpdGlvbik7Ci0gICAgICAgICAgICBl
cnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQocHJpdi0+aGFuZGxlLCBtYXAuZGF0YSArIHBvc2l0
aW9uLCBuQnl0ZXNFbmNyeXB0ZWQsIDAsIDApOworICAgICAgICAgICAgZXJyb3IgPSBnY3J5X2Np
cGhlcl9kZWNyeXB0KHByaXYtPmhhbmRsZSwgbWFwLmRhdGEsIG5CeXRlc0VuY3J5cHRlZCwgMCwg
MCk7CiAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBHU1RfRVJST1Jf
T0JKRUNUKHNlbGYsICJkZWNyeXB0aW9uIGZhaWxlZDogJXMiLCBncGdfc3RyZXJyb3IoZXJyb3Ip
KTsKLSAgICAgICAgICAgICAgICBnc3RfYnl0ZV9yZWFkZXJfZnJlZShyZWFkZXIpOworICAgICAg
ICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgImZ1bGwgc2FtcGxlIGRlY3J5cHRpb24g
ZmFpbGVkOiAlcyIsIGdwZ19zdHJlcnJvcihlcnJvcikpOwogICAgICAgICAgICAgICAgIGdzdF9i
dWZmZXJfdW5tYXAoYnVmZmVyLCAmbWFwKTsKLSAgICAgICAgICAgICAgICBnc3RfYnVmZmVyX3Vu
bWFwKHN1YlNhbXBsZXNCdWZmZXIsICZzdWJTYW1wbGVzTWFwKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwb3NpdGlvbiArPSBuQnl0
ZXNFbmNyeXB0ZWQ7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBnc3RfYnl0ZV9yZWFkZXJfZnJl
ZShyZWFkZXIpOwogICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmbWFwKTsKLSAgICBnc3Rf
YnVmZmVyX3VubWFwKHN1YlNhbXBsZXNCdWZmZXIsICZzdWJTYW1wbGVzTWFwKTsKKwogICAgIHJl
dHVybiB0cnVlOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331346</attachid>
            <date>2018-01-15 10:56:21 -0800</date>
            <delta_ts>2018-01-16 03:04:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180080-20180115195620.patch</filename>
            <type>text/plain</type>
            <size>5459</size>
            <attacher name="Yacine Bandou">bandou.yacine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZhYzMzM2YxMDkyZTMy
ZGQxNjI3ZmRhYjVmY2JmZGMxZGUwZjhhOS4uZTYxMGM1NTFkZWViODViZDI4ZTBjZDliZDA1OTQw
NDNkYTQwYTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAxLTE1ICBZYWNp
bmUgQmFuZG91ICA8eWFjaW5lLmJhbmRvdV9leHRAc29mdGF0aG9tZS5jb20+CisgICAgICAgIFtF
TUVdW0dTdHJlYW1lcl0gQWRkIHRoZSBmdWxsLXNhbXBsZSBlbmNyeXB0aW9uIHN1cHBvcnQgaW4g
dGhlIEdTdHJlYW1lciBDbGVhcktleSBkZWNyeXB0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSB0aGUgR1N0cmVhbWVyIGNsZWFyS2V5
IGRlY3J5cHRvciBkb2Vzbid0IHN1cHBvcnQgdGhlIGZ1bGwtc2FtcGxlIGVuY3J5cHRpb24sCisg
ICAgICAgIHdoZXJlIHRoZSBidWZmZXIgaXMgZW50aXJlbHkgZW5jcnlwdGVkLCBpdCBzdXBwb3J0
cyBvbmx5IHRoZSBzdWItc2FtcGxlIGVuY3J5cHRpb24uCisKKyAgICAgICAgVGVzdDogbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5L2NsZWFyS2V5LWNlbmMtYXVkaW8tcGxheWJhY2stbXNl
Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0
Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0TWVkaWFDbGVh
cktleURlY3J5cHRvckRlY3J5cHQpOgorCiAyMDE4LTAxLTE1ICBZYWNpbmUgQmFuZG91ICA8eWFj
aW5lLmJhbmRvdV9leHRAc29mdGF0aG9tZS5jb20+CiAKICAgICAgICAgW1dQRV0gVHdvIGNsZWFy
a2V5IHRlc3RzIGZhaWxpbmcgc2luY2UgcjIyNjYyMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRv
ckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAxNWVlNTg2
ZmY3ZjMxOWQwNmIxNDJkMGVmZTFiN2YwYzVkMWYxZGU5Li42NTZmMThjNGM0ZTkwMWU1YmQ0ZDZl
M2VjYjkwYTcyMmRhYzRjODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dl
YktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcApAQCAtMjM2LDE4ICsyMzYsMzcgQEAg
c3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JEZWNyeXB0KFdlYktp
dE1lZGlhQ29tbW9uRW5jcnlwdGlvbkQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAor
ICAgIGJvb2wgcmV0dXJuVmFsdWUgPSB0cnVlOworICAgIEdzdEJ5dGVSZWFkZXIqIHJlYWRlcjsK
KyAgICB1bnNpZ25lZCBwb3NpdGlvbiA9IDA7CisgICAgdW5zaWduZWQgc2FtcGxlSW5kZXggPSAw
OwogICAgIEdzdE1hcEluZm8gc3ViU2FtcGxlc01hcDsKLSAgICBnYm9vbGVhbiBzdWJzYW1wbGVz
QnVmZmVyTWFwcGVkID0gZ3N0X2J1ZmZlcl9tYXAoc3ViU2FtcGxlc0J1ZmZlciwgJnN1YlNhbXBs
ZXNNYXAsIEdTVF9NQVBfUkVBRCk7CisgICAgYm9vbCBzdWJzYW1wbGVzQnVmZmVyTWFwcGVkOwor
CisgICAgaWYgKCFzdWJTYW1wbGVDb3VudCkgeworICAgICAgICAvLyBGdWxsIHNhbXBsZSBlbmNy
eXB0aW9uLgorICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICJmdWxsIHNhbXBsZSBlbmNy
eXB0aW9uOiAlZCBlbmNyeXB0ZWQgYnl0ZXMiLCBtYXAuc2l6ZSk7CisKKyAgICAgICAgLy8gQ2hl
Y2sgaWYgdGhlIGJ1ZmZlciBpcyBlbXB0eS4KKyAgICAgICAgaWYgKG1hcC5zaXplKSB7CisgICAg
ICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQocHJpdi0+aGFuZGxlLCBtYXAuZGF0
YSwgbWFwLnNpemUsIDAsIDApOworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAg
ICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiZnVsbCBzYW1wbGUgZGVjcnlwdGlvbiBmYWls
ZWQ6ICVzIiwgZ3BnX3N0cmVycm9yKGVycm9yKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuVmFs
dWUgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBnb3RvIHVubWFw
QnVmZmVyOworICAgIH0KKworICAgIC8vIFN1YnNhbXBsZSBlbmNyeXB0aW9uLgorICAgIHN1YnNh
bXBsZXNCdWZmZXJNYXBwZWQgPSBnc3RfYnVmZmVyX21hcChzdWJTYW1wbGVzQnVmZmVyLCAmc3Vi
U2FtcGxlc01hcCwgR1NUX01BUF9SRUFEKTsKICAgICBpZiAoIXN1YnNhbXBsZXNCdWZmZXJNYXBw
ZWQpIHsKICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRvIG1hcCBzdWJz
YW1wbGUgYnVmZmVyIik7Ci0gICAgICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmbWFwKTsK
LSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm5WYWx1ZSA9IGZhbHNlOworICAg
ICAgICBnb3RvIHVubWFwQnVmZmVyOwogICAgIH0KIAotICAgIEdzdEJ5dGVSZWFkZXIqIHJlYWRl
ciA9IGdzdF9ieXRlX3JlYWRlcl9uZXcoc3ViU2FtcGxlc01hcC5kYXRhLCBzdWJTYW1wbGVzTWFw
LnNpemUpOwotICAgIHVuc2lnbmVkIHBvc2l0aW9uID0gMDsKLSAgICB1bnNpZ25lZCBzYW1wbGVJ
bmRleCA9IDA7Ci0KKyAgICByZWFkZXIgPSBnc3RfYnl0ZV9yZWFkZXJfbmV3KHN1YlNhbXBsZXNN
YXAuZGF0YSwgc3ViU2FtcGxlc01hcC5zaXplKTsKICAgICBHU1RfREVCVUdfT0JKRUNUKHNlbGYs
ICJwb3NpdGlvbjogJWQsIHNpemU6ICV6dSIsIHBvc2l0aW9uLCBtYXAuc2l6ZSk7CiAKICAgICB3
aGlsZSAocG9zaXRpb24gPCBtYXAuc2l6ZSkgewpAQCAtMjU4LDM4ICsyNzcsMzUgQEAgc3RhdGlj
IGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JEZWNyeXB0KFdlYktpdE1lZGlh
Q29tbW9uRW5jcnlwdGlvbkQKICAgICAgICAgICAgIGlmICghZ3N0X2J5dGVfcmVhZGVyX2dldF91
aW50MTZfYmUocmVhZGVyLCAmbkJ5dGVzQ2xlYXIpCiAgICAgICAgICAgICAgICAgfHwgIWdzdF9i
eXRlX3JlYWRlcl9nZXRfdWludDMyX2JlKHJlYWRlciwgJm5CeXRlc0VuY3J5cHRlZCkpIHsKICAg
ICAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNlbGYsICJ1bnN1cHBvcnRlZCIpOwotICAg
ICAgICAgICAgICAgIGdzdF9ieXRlX3JlYWRlcl9mcmVlKHJlYWRlcik7Ci0gICAgICAgICAgICAg
ICAgZ3N0X2J1ZmZlcl91bm1hcChidWZmZXIsICZtYXApOwotICAgICAgICAgICAgICAgIGdzdF9i
dWZmZXJfdW5tYXAoc3ViU2FtcGxlc0J1ZmZlciwgJnN1YlNhbXBsZXNNYXApOwotICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGZhbHNl
OworICAgICAgICAgICAgICAgIGdvdG8gZnJlZVJlYWRlcjsKICAgICAgICAgICAgIH0KLQogICAg
ICAgICAgICAgc2FtcGxlSW5kZXgrKzsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG5C
eXRlc0NsZWFyID0gMDsKICAgICAgICAgICAgIG5CeXRlc0VuY3J5cHRlZCA9IG1hcC5zaXplIC0g
cG9zaXRpb247CiAgICAgICAgIH0KIAotICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICIl
ZCBieXRlcyBjbGVhciAodG9kbz0lenUpIiwgbkJ5dGVzQ2xlYXIsIG1hcC5zaXplIC0gcG9zaXRp
b24pOworICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICJzdWJzYW1wbGUgaW5kZXggJWQg
LSAlZCBieXRlcyBjbGVhciAodG9kbz0lenUpIiwgc2FtcGxlSW5kZXgsIG5CeXRlc0NsZWFyLCBt
YXAuc2l6ZSAtIHBvc2l0aW9uKTsKICAgICAgICAgcG9zaXRpb24gKz0gbkJ5dGVzQ2xlYXI7CiAg
ICAgICAgIGlmIChuQnl0ZXNFbmNyeXB0ZWQpIHsKLSAgICAgICAgICAgIEdTVF9UUkFDRV9PQkpF
Q1Qoc2VsZiwgIiVkIGJ5dGVzIGVuY3J5cHRlZCAodG9kbz0lenUpIiwgbkJ5dGVzRW5jcnlwdGVk
LCBtYXAuc2l6ZSAtIHBvc2l0aW9uKTsKKyAgICAgICAgICAgIEdTVF9UUkFDRV9PQkpFQ1Qoc2Vs
ZiwgInN1YnNhbXBsZSBpbmRleCAlZCAtICVkIGJ5dGVzIGVuY3J5cHRlZCAodG9kbz0lenUpIiwg
c2FtcGxlSW5kZXgsIG5CeXRlc0VuY3J5cHRlZCwgbWFwLnNpemUgLSBwb3NpdGlvbik7CiAgICAg
ICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQocHJpdi0+aGFuZGxlLCBtYXAuZGF0
YSArIHBvc2l0aW9uLCBuQnl0ZXNFbmNyeXB0ZWQsIDAsIDApOwogICAgICAgICAgICAgaWYgKGVy
cm9yKSB7Ci0gICAgICAgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiZGVjcnlwdGlv
biBmYWlsZWQ6ICVzIiwgZ3BnX3N0cmVycm9yKGVycm9yKSk7Ci0gICAgICAgICAgICAgICAgZ3N0
X2J5dGVfcmVhZGVyX2ZyZWUocmVhZGVyKTsKLSAgICAgICAgICAgICAgICBnc3RfYnVmZmVyX3Vu
bWFwKGJ1ZmZlciwgJm1hcCk7Ci0gICAgICAgICAgICAgICAgZ3N0X2J1ZmZlcl91bm1hcChzdWJT
YW1wbGVzQnVmZmVyLCAmc3ViU2FtcGxlc01hcCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgInN1YiBzYW1wbGUg
aW5kZXggJWQgZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiwgc2FtcGxlSW5kZXgsIGdwZ19zdHJlcnJv
cihlcnJvcikpOworICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gZmFsc2U7CisgICAgICAg
ICAgICAgICAgZ290byBmcmVlUmVhZGVyOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcG9z
aXRpb24gKz0gbkJ5dGVzRW5jcnlwdGVkOwogICAgICAgICB9CiAgICAgfQotCitmcmVlUmVhZGVy
OgogICAgIGdzdF9ieXRlX3JlYWRlcl9mcmVlKHJlYWRlcik7Ci0gICAgZ3N0X2J1ZmZlcl91bm1h
cChidWZmZXIsICZtYXApOwogICAgIGdzdF9idWZmZXJfdW5tYXAoc3ViU2FtcGxlc0J1ZmZlciwg
JnN1YlNhbXBsZXNNYXApOwotICAgIHJldHVybiB0cnVlOworCit1bm1hcEJ1ZmZlcjoKKyAgICBn
c3RfYnVmZmVyX3VubWFwKGJ1ZmZlciwgJm1hcCk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwog
fQogCiBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yUmVsZWFzZUNpcGhl
cihXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiBzZWxmKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331378</attachid>
            <date>2018-01-16 03:04:13 -0800</date>
            <delta_ts>2018-01-17 01:39:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180080-20180116120412.patch</filename>
            <type>text/plain</type>
            <size>8882</size>
            <attacher name="Yacine Bandou">bandou.yacine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZhYzMzM2YxMDkyZTMy
ZGQxNjI3ZmRhYjVmY2JmZGMxZGUwZjhhOS4uZTYxMGM1NTFkZWViODViZDI4ZTBjZDliZDA1OTQw
NDNkYTQwYTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAxLTE1ICBZYWNp
bmUgQmFuZG91ICA8eWFjaW5lLmJhbmRvdV9leHRAc29mdGF0aG9tZS5jb20+CisgICAgICAgIFtF
TUVdW0dTdHJlYW1lcl0gQWRkIHRoZSBmdWxsLXNhbXBsZSBlbmNyeXB0aW9uIHN1cHBvcnQgaW4g
dGhlIEdTdHJlYW1lciBDbGVhcktleSBkZWNyeXB0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSB0aGUgR1N0cmVhbWVyIGNsZWFyS2V5
IGRlY3J5cHRvciBkb2Vzbid0IHN1cHBvcnQgdGhlIGZ1bGwtc2FtcGxlIGVuY3J5cHRpb24sCisg
ICAgICAgIHdoZXJlIHRoZSBidWZmZXIgaXMgZW50aXJlbHkgZW5jcnlwdGVkLCBpdCBzdXBwb3J0
cyBvbmx5IHRoZSBzdWItc2FtcGxlIGVuY3J5cHRpb24uCisKKyAgICAgICAgVGVzdDogbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5L2NsZWFyS2V5LWNlbmMtYXVkaW8tcGxheWJhY2stbXNl
Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0
Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0TWVkaWFDbGVh
cktleURlY3J5cHRvckRlY3J5cHQpOgorCiAyMDE4LTAxLTE1ICBZYWNpbmUgQmFuZG91ICA8eWFj
aW5lLmJhbmRvdV9leHRAc29mdGF0aG9tZS5jb20+CiAKICAgICAgICAgW1dQRV0gVHdvIGNsZWFy
a2V5IHRlc3RzIGZhaWxpbmcgc2luY2UgcjIyNjYyMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRv
ckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAxNWVlNTg2
ZmY3ZjMxOWQwNmIxNDJkMGVmZTFiN2YwYzVkMWYxZGU5Li5iNzdlZGI4MDNhZTgwMjZiYmNkNDE4
NjJlY2NhYjNiNDdiMzQ1NjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dl
YktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcApAQCAtMjA3LDYgKzIwNywxMiBAQCBz
dGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvclNldHVwQ2lwaGVyKFdl
YktpdE1lZGlhQ29tbW9uRW5jcnlwdAogc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJL
ZXlEZWNyeXB0b3JEZWNyeXB0KFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqIHNl
bGYsIEdzdEJ1ZmZlciogaXZCdWZmZXIsIEdzdEJ1ZmZlciogYnVmZmVyLCB1bnNpZ25lZCBzdWJT
YW1wbGVDb3VudCwgR3N0QnVmZmVyKiBzdWJTYW1wbGVzQnVmZmVyKQogewogICAgIEdzdE1hcElu
Zm8gaXZNYXA7CisgICAgLy8gQ2hlY2sgaXZCdWZmZXIgaXNuJ3QgbnVsbAorICAgIGlmICghaXZC
dWZmZXIpIHsKKyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRXJyb3IsIHRoZSBpdkJ1
ZmZlciBpcyBudWxsIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAo
IWdzdF9idWZmZXJfbWFwKGl2QnVmZmVyLCAmaXZNYXAsIEdTVF9NQVBfUkVBRCkpIHsKICAgICAg
ICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRvIG1hcCBJViIpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0yMjMsOSArMjI5LDE1IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRN
ZWRpYUNsZWFyS2V5RGVjcnlwdG9yRGVjcnlwdChXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25E
CiAgICAgZ3N0X2J1ZmZlcl91bm1hcChpdkJ1ZmZlciwgJml2TWFwKTsKIAogICAgIFdlYktpdE1l
ZGlhQ2xlYXJLZXlEZWNyeXB0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9NRURJQV9DS19ERUNSWVBU
X0dFVF9QUklWQVRFKFdFQktJVF9NRURJQV9DS19ERUNSWVBUKHNlbGYpKTsKLSAgICBnY3J5X2Vy
cm9yX3QgZXJyb3IgPSBnY3J5X2NpcGhlcl9zZXRjdHIocHJpdi0+aGFuZGxlLCBjdHIsIENMRUFS
S0VZX1NJWkUpOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNl
bGYsICJnY3J5X2NpcGhlcl9zZXRjdHIgZmFpbGVkOiAlcyIsIGdwZ19zdHJlcnJvcihlcnJvcikp
OworICAgIGdjcnlfZXJyb3JfdCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX3NldGN0cihwcml2
LT5oYW5kbGUsIGN0ciwgQ0xFQVJLRVlfU0laRSk7CisgICAgaWYgKGNpcGhlckVycm9yKSB7Cisg
ICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgImdjcnlfY2lwaGVyX3NldGN0ciBmYWlsZWQ6
ICVzIiwgZ3BnX3N0cmVycm9yKGNpcGhlckVycm9yKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICAvLyBDaGVjayBidWZmZXIgaXNuJ3QgbnVsbAorICAgIGlmICghYnVmZmVy
KSB7CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkVycm9yLCB0aGUgYnVmZmVyIGlz
IG51bGwiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMjM2LDYwICsyNDgs
ODEgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JEZWNyeXB0
KFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAorICAgIGJvb2wgcmV0dXJuVmFsdWUgPSB0cnVlOworICAgIEdzdEJ5dGVSZWFkZXIqIHJl
YWRlcjsKKyAgICB1bnNpZ25lZCBwb3NpdGlvbiA9IDA7CiAgICAgR3N0TWFwSW5mbyBzdWJTYW1w
bGVzTWFwOwotICAgIGdib29sZWFuIHN1YnNhbXBsZXNCdWZmZXJNYXBwZWQgPSBnc3RfYnVmZmVy
X21hcChzdWJTYW1wbGVzQnVmZmVyLCAmc3ViU2FtcGxlc01hcCwgR1NUX01BUF9SRUFEKTsKLSAg
ICBpZiAoIXN1YnNhbXBsZXNCdWZmZXJNYXBwZWQpIHsKLSAgICAgICAgR1NUX0VSUk9SX09CSkVD
VChzZWxmLCAiRmFpbGVkIHRvIG1hcCBzdWJzYW1wbGUgYnVmZmVyIik7Ci0gICAgICAgIGdzdF9i
dWZmZXJfdW5tYXAoYnVmZmVyLCAmbWFwKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKCFzdWJTYW1wbGVDb3VudCkgeworICAgICAgICAvLyBGdWxsIHNhbXBsZSBlbmNyeXB0aW9u
LgorICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICJmdWxsIHNhbXBsZSBlbmNyeXB0aW9u
OiAlZCBlbmNyeXB0ZWQgYnl0ZXMiLCBtYXAuc2l6ZSk7CisKKyAgICAgICAgLy8gQ2hlY2sgaWYg
dGhlIGJ1ZmZlciBpcyBlbXB0eS4KKyAgICAgICAgaWYgKG1hcC5zaXplKSB7CisgICAgICAgICAg
ICBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQocHJpdi0+aGFuZGxlLCBtYXAuZGF0
YSwgbWFwLnNpemUsIDAsIDApOworICAgICAgICAgICAgaWYgKGNpcGhlckVycm9yKSB7CisgICAg
ICAgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiZnVsbCBzYW1wbGUgZGVjcnlwdGlv
biBmYWlsZWQ6ICVzIiwgZ3BnX3N0cmVycm9yKGNpcGhlckVycm9yKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuVmFsdWUgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBnb3RvIHJlbGVhc2VCdWZmZXI7CiAgICAgfQogCi0gICAgR3N0Qnl0ZVJlYWRlciogcmVhZGVy
ID0gZ3N0X2J5dGVfcmVhZGVyX25ldyhzdWJTYW1wbGVzTWFwLmRhdGEsIHN1YlNhbXBsZXNNYXAu
c2l6ZSk7Ci0gICAgdW5zaWduZWQgcG9zaXRpb24gPSAwOwotICAgIHVuc2lnbmVkIHNhbXBsZUlu
ZGV4ID0gMDsKKyAgICAvLyBDaGVjayBzdWJTYW1wbGVzQnVmZmVyIGlzbid0IG51bGwKKyAgICBp
ZiAoIXN1YlNhbXBsZXNCdWZmZXIpIHsKKyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAi
RXJyb3IsIHRoZSBzdWJTYW1wbGVCdWZmZXIgaXMgbnVsbCIpOworICAgICAgICByZXR1cm5WYWx1
ZSA9IGZhbHNlOworICAgICAgICBnb3RvIHJlbGVhc2VCdWZmZXI7CisgICAgfQorCisgICAgLy8g
U3Vic2FtcGxlIGVuY3J5cHRpb24uCisgICAgaWYgKCFnc3RfYnVmZmVyX21hcChzdWJTYW1wbGVz
QnVmZmVyLCAmc3ViU2FtcGxlc01hcCwgR1NUX01BUF9SRUFEKSkgeworICAgICAgICBHU1RfRVJS
T1JfT0JKRUNUKHNlbGYsICJGYWlsZWQgdG8gbWFwIHN1YnNhbXBsZSBidWZmZXIiKTsKKyAgICAg
ICAgcmV0dXJuVmFsdWUgPSBmYWxzZTsKKyAgICAgICAgZ290byByZWxlYXNlQnVmZmVyOworICAg
IH0KIAorICAgIHJlYWRlciA9IGdzdF9ieXRlX3JlYWRlcl9uZXcoc3ViU2FtcGxlc01hcC5kYXRh
LCBzdWJTYW1wbGVzTWFwLnNpemUpOwogICAgIEdTVF9ERUJVR19PQkpFQ1Qoc2VsZiwgInBvc2l0
aW9uOiAlZCwgc2l6ZTogJXp1IiwgcG9zaXRpb24sIG1hcC5zaXplKTsKIAogICAgIHdoaWxlIChw
b3NpdGlvbiA8IG1hcC5zaXplKSB7CiAgICAgICAgIGd1aW50MTYgbkJ5dGVzQ2xlYXIgPSAwOwog
ICAgICAgICBndWludDMyIG5CeXRlc0VuY3J5cHRlZCA9IDA7CisgICAgICAgIHVuc2lnbmVkIHNh
bXBsZUluZGV4ID0gMDsKIAogICAgICAgICBpZiAoc2FtcGxlSW5kZXggPCBzdWJTYW1wbGVDb3Vu
dCkgewogICAgICAgICAgICAgaWYgKCFnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQxNl9iZShyZWFk
ZXIsICZuQnl0ZXNDbGVhcikKICAgICAgICAgICAgICAgICB8fCAhZ3N0X2J5dGVfcmVhZGVyX2dl
dF91aW50MzJfYmUocmVhZGVyLCAmbkJ5dGVzRW5jcnlwdGVkKSkgewogICAgICAgICAgICAgICAg
IEdTVF9ERUJVR19PQkpFQ1Qoc2VsZiwgInVuc3VwcG9ydGVkIik7Ci0gICAgICAgICAgICAgICAg
Z3N0X2J5dGVfcmVhZGVyX2ZyZWUocmVhZGVyKTsKLSAgICAgICAgICAgICAgICBnc3RfYnVmZmVy
X3VubWFwKGJ1ZmZlciwgJm1hcCk7Ci0gICAgICAgICAgICAgICAgZ3N0X2J1ZmZlcl91bm1hcChz
dWJTYW1wbGVzQnVmZmVyLCAmc3ViU2FtcGxlc01hcCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gZmFsc2U7CisgICAgICAgICAg
ICAgICAgZ290byByZWxlYXNlU3Vic2FtcGxlczsKICAgICAgICAgICAgIH0KLQogICAgICAgICAg
ICAgc2FtcGxlSW5kZXgrKzsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG5CeXRlc0Ns
ZWFyID0gMDsKICAgICAgICAgICAgIG5CeXRlc0VuY3J5cHRlZCA9IG1hcC5zaXplIC0gcG9zaXRp
b247CiAgICAgICAgIH0KIAotICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICIlZCBieXRl
cyBjbGVhciAodG9kbz0lenUpIiwgbkJ5dGVzQ2xlYXIsIG1hcC5zaXplIC0gcG9zaXRpb24pOwor
ICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICJzdWJzYW1wbGUgaW5kZXggJXUgLSAlaHUg
Ynl0ZXMgY2xlYXIgKHRvZG89JXp1KSIsIHNhbXBsZUluZGV4LCBuQnl0ZXNDbGVhciwgbWFwLnNp
emUgLSBwb3NpdGlvbik7CiAgICAgICAgIHBvc2l0aW9uICs9IG5CeXRlc0NsZWFyOwogICAgICAg
ICBpZiAobkJ5dGVzRW5jcnlwdGVkKSB7Ci0gICAgICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNl
bGYsICIlZCBieXRlcyBlbmNyeXB0ZWQgKHRvZG89JXp1KSIsIG5CeXRlc0VuY3J5cHRlZCwgbWFw
LnNpemUgLSBwb3NpdGlvbik7Ci0gICAgICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5
cHQocHJpdi0+aGFuZGxlLCBtYXAuZGF0YSArIHBvc2l0aW9uLCBuQnl0ZXNFbmNyeXB0ZWQsIDAs
IDApOwotICAgICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgR1NUX0VSUk9S
X09CSkVDVChzZWxmLCAiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiwgZ3BnX3N0cmVycm9yKGVycm9y
KSk7Ci0gICAgICAgICAgICAgICAgZ3N0X2J5dGVfcmVhZGVyX2ZyZWUocmVhZGVyKTsKLSAgICAg
ICAgICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGJ1ZmZlciwgJm1hcCk7Ci0gICAgICAgICAgICAg
ICAgZ3N0X2J1ZmZlcl91bm1hcChzdWJTYW1wbGVzQnVmZmVyLCAmc3ViU2FtcGxlc01hcCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgR1NUX1RSQUNFX09CSkVD
VChzZWxmLCAic3Vic2FtcGxlIGluZGV4ICV1IC0gJWh1IGJ5dGVzIGVuY3J5cHRlZCAodG9kbz0l
enUpIiwgc2FtcGxlSW5kZXgsIG5CeXRlc0VuY3J5cHRlZCwgbWFwLnNpemUgLSBwb3NpdGlvbik7
CisgICAgICAgICAgICBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQocHJpdi0+aGFu
ZGxlLCBtYXAuZGF0YSArIHBvc2l0aW9uLCBuQnl0ZXNFbmNyeXB0ZWQsIDAsIDApOworICAgICAg
ICAgICAgaWYgKGNpcGhlckVycm9yKSB7CisgICAgICAgICAgICAgICAgR1NUX0VSUk9SX09CSkVD
VChzZWxmLCAic3ViIHNhbXBsZSBpbmRleCAldSBkZWNyeXB0aW9uIGZhaWxlZDogJXMiLCBzYW1w
bGVJbmRleCwgZ3BnX3N0cmVycm9yKGNpcGhlckVycm9yKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuVmFsdWUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBnb3RvIHJlbGVhc2VTdWJzYW1wbGVz
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcG9zaXRpb24gKz0gbkJ5dGVzRW5jcnlwdGVk
OwogICAgICAgICB9CiAgICAgfQotCityZWxlYXNlU3Vic2FtcGxlczoKICAgICBnc3RfYnl0ZV9y
ZWFkZXJfZnJlZShyZWFkZXIpOwotICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmbWFwKTsK
ICAgICBnc3RfYnVmZmVyX3VubWFwKHN1YlNhbXBsZXNCdWZmZXIsICZzdWJTYW1wbGVzTWFwKTsK
LSAgICByZXR1cm4gdHJ1ZTsKKworcmVsZWFzZUJ1ZmZlcjoKKyAgICBnc3RfYnVmZmVyX3VubWFw
KGJ1ZmZlciwgJm1hcCk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCiBzdGF0aWMgdm9p
ZCB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yUmVsZWFzZUNpcGhlcihXZWJLaXRNZWRpYUNv
bW1vbkVuY3J5cHRpb25EZWNyeXB0KiBzZWxmKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkzYzMzMzY1MDQ3N2QwNDY2ZmE4
NjIwMzg3MzE3MTMxNWVhZmQ1MmQuLjEzN2Y2ZTlkMjk3NTI4YWY4NjgxOGRjYTY1NGYzNTAwZWZj
ZDNkN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0wMS0xNiAgWWFjaW5lIEJhbmRvdSAg
PHlhY2luZS5iYW5kb3VfZXh0QHNvZnRhdGhvbWUuY29tPgorCisgICAgICAgIFtFTUVdW0dTdHJl
YW1lcl0gQWRkIHRoZSBmdWxsLXNhbXBsZSBlbmNyeXB0aW9uIHN1cHBvcnQgaW4gdGhlIEdTdHJl
YW1lciBDbGVhcktleSBkZWNyeXB0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4MDA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
IFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGNyYXNoIG9mIHRoZSB0ZXN0IGNsZWFyS2V5LWNlbmMtYXVk
aW8tcGxheWJhY2stbXNlLgorCiAyMDE4LTAxLTE1ICBZYWNpbmUgQmFuZG91ICA8eWFjaW5lLmJh
bmRvdV9leHRAc29mdGF0aG9tZS5jb20+CiAKICAgICAgICAgW1dQRV0gVHdvIGNsZWFya2V5IHRl
c3RzIGZhaWxpbmcgc2luY2UgcjIyNjYyMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBhYWY3ODgwNWJmYzFiOTBjZTRjNDZkNDZjNTM3MjUxZDcwN2ZlYjFi
Li5kNDg1ZTdjZmE3MDU0Mzk3ZDgwY2NmYTNlNTVlNDdhZGUzYjY0MDA0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTEyOSw4ICsxMTI5LDYgQEAgd2Vi
a2l0Lm9yZy9iLzE3ODcwNCBzdmcvY3NzL3N2Zy1yZXNvdXJjZS1mcmFnbWVudC1pZGVudGlmaWVy
LWltZy1zcmMuaHRtbCBbIENyYXMKIAogd2Via2l0Lm9yZy9iLzE3ODcwMyBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9jbGVhcmtleS1tcDQtcGxheWJhY2st
dGVtcG9yYXJ5LWNsZWFyLWVuY3J5cHRlZC5odG1sIFsgQ3Jhc2ggXQogCi13ZWJraXQub3JnL2Iv
MTgwMDgwIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVhcktleS1jZW5jLWF1ZGlv
LXBsYXliYWNrLW1zZS5odG1sIFsgQ3Jhc2ggXQotCiB3ZWJraXQub3JnL2IvMTc4NzA1IHdlYmds
LzEuMC4yL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9tdWx0aXNhbXBsZS1jb3JydXB0aW9uLmh0bWwg
WyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE3OTk1NyBjcnlwdG8vd29ya2Vycy9zdWJ0bGUv
YWVzLWNiYy1pbXBvcnQta2V5LWRlY3J5cHQuaHRtbCBbIFBhc3MgQ3Jhc2ggXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331478</attachid>
            <date>2018-01-17 01:39:50 -0800</date>
            <delta_ts>2018-01-17 09:00:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180080-20180117103949.patch</filename>
            <type>text/plain</type>
            <size>8885</size>
            <attacher name="Yacine Bandou">bandou.yacine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZhYzMzM2YxMDkyZTMy
ZGQxNjI3ZmRhYjVmY2JmZGMxZGUwZjhhOS4uZTYxMGM1NTFkZWViODViZDI4ZTBjZDliZDA1OTQw
NDNkYTQwYTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAxLTE1ICBZYWNp
bmUgQmFuZG91ICA8eWFjaW5lLmJhbmRvdV9leHRAc29mdGF0aG9tZS5jb20+CisgICAgICAgIFtF
TUVdW0dTdHJlYW1lcl0gQWRkIHRoZSBmdWxsLXNhbXBsZSBlbmNyeXB0aW9uIHN1cHBvcnQgaW4g
dGhlIEdTdHJlYW1lciBDbGVhcktleSBkZWNyeXB0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSB0aGUgR1N0cmVhbWVyIGNsZWFyS2V5
IGRlY3J5cHRvciBkb2Vzbid0IHN1cHBvcnQgdGhlIGZ1bGwtc2FtcGxlIGVuY3J5cHRpb24sCisg
ICAgICAgIHdoZXJlIHRoZSBidWZmZXIgaXMgZW50aXJlbHkgZW5jcnlwdGVkLCBpdCBzdXBwb3J0
cyBvbmx5IHRoZSBzdWItc2FtcGxlIGVuY3J5cHRpb24uCisKKyAgICAgICAgVGVzdDogbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5L2NsZWFyS2V5LWNlbmMtYXVkaW8tcGxheWJhY2stbXNl
Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0
Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0TWVkaWFDbGVh
cktleURlY3J5cHRvckRlY3J5cHQpOgorCiAyMDE4LTAxLTE1ICBZYWNpbmUgQmFuZG91ICA8eWFj
aW5lLmJhbmRvdV9leHRAc29mdGF0aG9tZS5jb20+CiAKICAgICAgICAgW1dQRV0gVHdvIGNsZWFy
a2V5IHRlc3RzIGZhaWxpbmcgc2luY2UgcjIyNjYyMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRv
ckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAxNWVlNTg2
ZmY3ZjMxOWQwNmIxNDJkMGVmZTFiN2YwYzVkMWYxZGU5Li43NjU0MjU4ZWE3MWMxMzllMmE2YjFi
MDg4NzMyNmUzYzIxNjU2ZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dl
YktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcApAQCAtMjA3LDYgKzIwNywxMiBAQCBz
dGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvclNldHVwQ2lwaGVyKFdl
YktpdE1lZGlhQ29tbW9uRW5jcnlwdAogc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJL
ZXlEZWNyeXB0b3JEZWNyeXB0KFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRlY3J5cHQqIHNl
bGYsIEdzdEJ1ZmZlciogaXZCdWZmZXIsIEdzdEJ1ZmZlciogYnVmZmVyLCB1bnNpZ25lZCBzdWJT
YW1wbGVDb3VudCwgR3N0QnVmZmVyKiBzdWJTYW1wbGVzQnVmZmVyKQogewogICAgIEdzdE1hcElu
Zm8gaXZNYXA7CisgICAgLy8gQ2hlY2sgaXZCdWZmZXIgaXNuJ3QgbnVsbC4KKyAgICBpZiAoIWl2
QnVmZmVyKSB7CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkVycm9yLCB0aGUgaXZC
dWZmZXIgaXMgbnVsbCIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgaWYg
KCFnc3RfYnVmZmVyX21hcChpdkJ1ZmZlciwgJml2TWFwLCBHU1RfTUFQX1JFQUQpKSB7CiAgICAg
ICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkZhaWxlZCB0byBtYXAgSVYiKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMjIzLDkgKzIyOSwxNSBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0
TWVkaWFDbGVhcktleURlY3J5cHRvckRlY3J5cHQoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9u
RAogICAgIGdzdF9idWZmZXJfdW5tYXAoaXZCdWZmZXIsICZpdk1hcCk7CiAKICAgICBXZWJLaXRN
ZWRpYUNsZWFyS2V5RGVjcnlwdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfTUVESUFfQ0tfREVDUllQ
VF9HRVRfUFJJVkFURShXRUJLSVRfTUVESUFfQ0tfREVDUllQVChzZWxmKSk7Ci0gICAgZ2NyeV9l
cnJvcl90IGVycm9yID0gZ2NyeV9jaXBoZXJfc2V0Y3RyKHByaXYtPmhhbmRsZSwgY3RyLCBDTEVB
UktFWV9TSVpFKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgR1NUX0VSUk9SX09CSkVDVChz
ZWxmLCAiZ2NyeV9jaXBoZXJfc2V0Y3RyIGZhaWxlZDogJXMiLCBncGdfc3RyZXJyb3IoZXJyb3Ip
KTsKKyAgICBnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9zZXRjdHIocHJp
di0+aGFuZGxlLCBjdHIsIENMRUFSS0VZX1NJWkUpOworICAgIGlmIChjaXBoZXJFcnJvcikgewor
ICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYsICJnY3J5X2NpcGhlcl9zZXRjdHIgZmFpbGVk
OiAlcyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgLy8gQ2hlY2sgYnVmZmVyIGlzbid0IG51bGwuCisgICAgaWYgKCFidWZm
ZXIpIHsKKyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRXJyb3IsIHRoZSBidWZmZXIg
aXMgbnVsbCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0yMzYsNjAgKzI0
OCw4MSBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvckRlY3J5
cHQoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRAogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCisgICAgYm9vbCByZXR1cm5WYWx1ZSA9IHRydWU7CisgICAgR3N0Qnl0ZVJlYWRlciog
cmVhZGVyOworICAgIHVuc2lnbmVkIHBvc2l0aW9uID0gMDsKICAgICBHc3RNYXBJbmZvIHN1YlNh
bXBsZXNNYXA7Ci0gICAgZ2Jvb2xlYW4gc3Vic2FtcGxlc0J1ZmZlck1hcHBlZCA9IGdzdF9idWZm
ZXJfbWFwKHN1YlNhbXBsZXNCdWZmZXIsICZzdWJTYW1wbGVzTWFwLCBHU1RfTUFQX1JFQUQpOwot
ICAgIGlmICghc3Vic2FtcGxlc0J1ZmZlck1hcHBlZCkgewotICAgICAgICBHU1RfRVJST1JfT0JK
RUNUKHNlbGYsICJGYWlsZWQgdG8gbWFwIHN1YnNhbXBsZSBidWZmZXIiKTsKLSAgICAgICAgZ3N0
X2J1ZmZlcl91bm1hcChidWZmZXIsICZtYXApOwotICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoIXN1YlNhbXBsZUNvdW50KSB7CisgICAgICAgIC8vIEZ1bGwgc2FtcGxlIGVuY3J5cHRp
b24uCisgICAgICAgIEdTVF9UUkFDRV9PQkpFQ1Qoc2VsZiwgImZ1bGwgc2FtcGxlIGVuY3J5cHRp
b246ICVkIGVuY3J5cHRlZCBieXRlcyIsIG1hcC5zaXplKTsKKworICAgICAgICAvLyBDaGVjayBp
ZiB0aGUgYnVmZmVyIGlzIGVtcHR5LgorICAgICAgICBpZiAobWFwLnNpemUpIHsKKyAgICAgICAg
ICAgIGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlwdChwcml2LT5oYW5kbGUsIG1hcC5k
YXRhLCBtYXAuc2l6ZSwgMCwgMCk7CisgICAgICAgICAgICBpZiAoY2lwaGVyRXJyb3IpIHsKKyAg
ICAgICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYsICJmdWxsIHNhbXBsZSBkZWNyeXB0
aW9uIGZhaWxlZDogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVyRXJyb3IpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm5WYWx1ZSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIGdvdG8gcmVsZWFzZUJ1ZmZlcjsKICAgICB9CiAKLSAgICBHc3RCeXRlUmVhZGVyKiByZWFk
ZXIgPSBnc3RfYnl0ZV9yZWFkZXJfbmV3KHN1YlNhbXBsZXNNYXAuZGF0YSwgc3ViU2FtcGxlc01h
cC5zaXplKTsKLSAgICB1bnNpZ25lZCBwb3NpdGlvbiA9IDA7Ci0gICAgdW5zaWduZWQgc2FtcGxl
SW5kZXggPSAwOworICAgIC8vIENoZWNrIHN1YlNhbXBsZXNCdWZmZXIgaXNuJ3QgbnVsbC4KKyAg
ICBpZiAoIXN1YlNhbXBsZXNCdWZmZXIpIHsKKyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxm
LCAiRXJyb3IsIHRoZSBzdWJTYW1wbGVCdWZmZXIgaXMgbnVsbCIpOworICAgICAgICByZXR1cm5W
YWx1ZSA9IGZhbHNlOworICAgICAgICBnb3RvIHJlbGVhc2VCdWZmZXI7CisgICAgfQorCisgICAg
Ly8gU3Vic2FtcGxlIGVuY3J5cHRpb24uCisgICAgaWYgKCFnc3RfYnVmZmVyX21hcChzdWJTYW1w
bGVzQnVmZmVyLCAmc3ViU2FtcGxlc01hcCwgR1NUX01BUF9SRUFEKSkgeworICAgICAgICBHU1Rf
RVJST1JfT0JKRUNUKHNlbGYsICJGYWlsZWQgdG8gbWFwIHN1YnNhbXBsZSBidWZmZXIiKTsKKyAg
ICAgICAgcmV0dXJuVmFsdWUgPSBmYWxzZTsKKyAgICAgICAgZ290byByZWxlYXNlQnVmZmVyOwor
ICAgIH0KIAorICAgIHJlYWRlciA9IGdzdF9ieXRlX3JlYWRlcl9uZXcoc3ViU2FtcGxlc01hcC5k
YXRhLCBzdWJTYW1wbGVzTWFwLnNpemUpOwogICAgIEdTVF9ERUJVR19PQkpFQ1Qoc2VsZiwgInBv
c2l0aW9uOiAlZCwgc2l6ZTogJXp1IiwgcG9zaXRpb24sIG1hcC5zaXplKTsKIAogICAgIHdoaWxl
IChwb3NpdGlvbiA8IG1hcC5zaXplKSB7CiAgICAgICAgIGd1aW50MTYgbkJ5dGVzQ2xlYXIgPSAw
OwogICAgICAgICBndWludDMyIG5CeXRlc0VuY3J5cHRlZCA9IDA7CisgICAgICAgIHVuc2lnbmVk
IHNhbXBsZUluZGV4ID0gMDsKIAogICAgICAgICBpZiAoc2FtcGxlSW5kZXggPCBzdWJTYW1wbGVD
b3VudCkgewogICAgICAgICAgICAgaWYgKCFnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQxNl9iZShy
ZWFkZXIsICZuQnl0ZXNDbGVhcikKICAgICAgICAgICAgICAgICB8fCAhZ3N0X2J5dGVfcmVhZGVy
X2dldF91aW50MzJfYmUocmVhZGVyLCAmbkJ5dGVzRW5jcnlwdGVkKSkgewogICAgICAgICAgICAg
ICAgIEdTVF9ERUJVR19PQkpFQ1Qoc2VsZiwgInVuc3VwcG9ydGVkIik7Ci0gICAgICAgICAgICAg
ICAgZ3N0X2J5dGVfcmVhZGVyX2ZyZWUocmVhZGVyKTsKLSAgICAgICAgICAgICAgICBnc3RfYnVm
ZmVyX3VubWFwKGJ1ZmZlciwgJm1hcCk7Ci0gICAgICAgICAgICAgICAgZ3N0X2J1ZmZlcl91bm1h
cChzdWJTYW1wbGVzQnVmZmVyLCAmc3ViU2FtcGxlc01hcCk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gZmFsc2U7CisgICAgICAg
ICAgICAgICAgZ290byByZWxlYXNlU3Vic2FtcGxlczsKICAgICAgICAgICAgIH0KLQogICAgICAg
ICAgICAgc2FtcGxlSW5kZXgrKzsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG5CeXRl
c0NsZWFyID0gMDsKICAgICAgICAgICAgIG5CeXRlc0VuY3J5cHRlZCA9IG1hcC5zaXplIC0gcG9z
aXRpb247CiAgICAgICAgIH0KIAotICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICIlZCBi
eXRlcyBjbGVhciAodG9kbz0lenUpIiwgbkJ5dGVzQ2xlYXIsIG1hcC5zaXplIC0gcG9zaXRpb24p
OworICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICJzdWJzYW1wbGUgaW5kZXggJXUgLSAl
aHUgYnl0ZXMgY2xlYXIgKHRvZG89JXp1KSIsIHNhbXBsZUluZGV4LCBuQnl0ZXNDbGVhciwgbWFw
LnNpemUgLSBwb3NpdGlvbik7CiAgICAgICAgIHBvc2l0aW9uICs9IG5CeXRlc0NsZWFyOwogICAg
ICAgICBpZiAobkJ5dGVzRW5jcnlwdGVkKSB7Ci0gICAgICAgICAgICBHU1RfVFJBQ0VfT0JKRUNU
KHNlbGYsICIlZCBieXRlcyBlbmNyeXB0ZWQgKHRvZG89JXp1KSIsIG5CeXRlc0VuY3J5cHRlZCwg
bWFwLnNpemUgLSBwb3NpdGlvbik7Ci0gICAgICAgICAgICBlcnJvciA9IGdjcnlfY2lwaGVyX2Rl
Y3J5cHQocHJpdi0+aGFuZGxlLCBtYXAuZGF0YSArIHBvc2l0aW9uLCBuQnl0ZXNFbmNyeXB0ZWQs
IDAsIDApOwotICAgICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgR1NUX0VS
Uk9SX09CSkVDVChzZWxmLCAiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiwgZ3BnX3N0cmVycm9yKGVy
cm9yKSk7Ci0gICAgICAgICAgICAgICAgZ3N0X2J5dGVfcmVhZGVyX2ZyZWUocmVhZGVyKTsKLSAg
ICAgICAgICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGJ1ZmZlciwgJm1hcCk7Ci0gICAgICAgICAg
ICAgICAgZ3N0X2J1ZmZlcl91bm1hcChzdWJTYW1wbGVzQnVmZmVyLCAmc3ViU2FtcGxlc01hcCk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgR1NUX1RSQUNFX09C
SkVDVChzZWxmLCAic3Vic2FtcGxlIGluZGV4ICV1IC0gJWh1IGJ5dGVzIGVuY3J5cHRlZCAodG9k
bz0lenUpIiwgc2FtcGxlSW5kZXgsIG5CeXRlc0VuY3J5cHRlZCwgbWFwLnNpemUgLSBwb3NpdGlv
bik7CisgICAgICAgICAgICBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQocHJpdi0+
aGFuZGxlLCBtYXAuZGF0YSArIHBvc2l0aW9uLCBuQnl0ZXNFbmNyeXB0ZWQsIDAsIDApOworICAg
ICAgICAgICAgaWYgKGNpcGhlckVycm9yKSB7CisgICAgICAgICAgICAgICAgR1NUX0VSUk9SX09C
SkVDVChzZWxmLCAic3ViIHNhbXBsZSBpbmRleCAldSBkZWNyeXB0aW9uIGZhaWxlZDogJXMiLCBz
YW1wbGVJbmRleCwgZ3BnX3N0cmVycm9yKGNpcGhlckVycm9yKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuVmFsdWUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBnb3RvIHJlbGVhc2VTdWJzYW1w
bGVzOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcG9zaXRpb24gKz0gbkJ5dGVzRW5jcnlw
dGVkOwogICAgICAgICB9CiAgICAgfQotCityZWxlYXNlU3Vic2FtcGxlczoKICAgICBnc3RfYnl0
ZV9yZWFkZXJfZnJlZShyZWFkZXIpOwotICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmbWFw
KTsKICAgICBnc3RfYnVmZmVyX3VubWFwKHN1YlNhbXBsZXNCdWZmZXIsICZzdWJTYW1wbGVzTWFw
KTsKLSAgICByZXR1cm4gdHJ1ZTsKKworcmVsZWFzZUJ1ZmZlcjoKKyAgICBnc3RfYnVmZmVyX3Vu
bWFwKGJ1ZmZlciwgJm1hcCk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCiBzdGF0aWMg
dm9pZCB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yUmVsZWFzZUNpcGhlcihXZWJLaXRNZWRp
YUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiBzZWxmKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkzYzMzMzY1MDQ3N2QwNDY2
ZmE4NjIwMzg3MzE3MTMxNWVhZmQ1MmQuLjEzN2Y2ZTlkMjk3NTI4YWY4NjgxOGRjYTY1NGYzNTAw
ZWZjZDNkN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0wMS0xNiAgWWFjaW5lIEJhbmRv
dSAgPHlhY2luZS5iYW5kb3VfZXh0QHNvZnRhdGhvbWUuY29tPgorCisgICAgICAgIFtFTUVdW0dT
dHJlYW1lcl0gQWRkIHRoZSBmdWxsLXNhbXBsZSBlbmNyeXB0aW9uIHN1cHBvcnQgaW4gdGhlIEdT
dHJlYW1lciBDbGVhcktleSBkZWNyeXB0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGNyYXNoIG9mIHRoZSB0ZXN0IGNsZWFyS2V5LWNlbmMt
YXVkaW8tcGxheWJhY2stbXNlLgorCiAyMDE4LTAxLTE1ICBZYWNpbmUgQmFuZG91ICA8eWFjaW5l
LmJhbmRvdV9leHRAc29mdGF0aG9tZS5jb20+CiAKICAgICAgICAgW1dQRV0gVHdvIGNsZWFya2V5
IHRlc3RzIGZhaWxpbmcgc2luY2UgcjIyNjYyMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBhYWY3ODgwNWJmYzFiOTBjZTRjNDZkNDZjNTM3MjUxZDcwN2Zl
YjFiLi5kNDg1ZTdjZmE3MDU0Mzk3ZDgwY2NmYTNlNTVlNDdhZGUzYjY0MDA0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTEyOSw4ICsxMTI5LDYgQEAg
d2Via2l0Lm9yZy9iLzE3ODcwNCBzdmcvY3NzL3N2Zy1yZXNvdXJjZS1mcmFnbWVudC1pZGVudGlm
aWVyLWltZy1zcmMuaHRtbCBbIENyYXMKIAogd2Via2l0Lm9yZy9iLzE3ODcwMyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9jbGVhcmtleS1tcDQtcGxheWJh
Y2stdGVtcG9yYXJ5LWNsZWFyLWVuY3J5cHRlZC5odG1sIFsgQ3Jhc2ggXQogCi13ZWJraXQub3Jn
L2IvMTgwMDgwIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVhcktleS1jZW5jLWF1
ZGlvLXBsYXliYWNrLW1zZS5odG1sIFsgQ3Jhc2ggXQotCiB3ZWJraXQub3JnL2IvMTc4NzA1IHdl
YmdsLzEuMC4yL2NvbmZvcm1hbmNlL3JlbmRlcmluZy9tdWx0aXNhbXBsZS1jb3JydXB0aW9uLmh0
bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE3OTk1NyBjcnlwdG8vd29ya2Vycy9zdWJ0
bGUvYWVzLWNiYy1pbXBvcnQta2V5LWRlY3J5cHQuaHRtbCBbIFBhc3MgQ3Jhc2ggXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>