<?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>195453</bug_id>
          
          <creation_ts>2019-03-08 01:37:51 -0800</creation_ts>
          <short_desc>[GStreamer][v4l2] Synchronous video texture flushing support</short_desc>
          <delta_ts>2019-03-12 07:17:21 -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>Media</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="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>calvaris</cc>
    
    <cc>magomez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1513949</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-08 01:37:51 -0800</bug_when>
    <thetext>The v4l2 video decoder currently requires that downstream users of the graphics resources complete any pending draw call and release resources before returning from the DRAIN query.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513966</commentid>
    <comment_count>1</comment_count>
      <attachid>364003</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-08 03:24:37 -0800</bug_when>
    <thetext>Created attachment 364003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514734</commentid>
    <comment_count>2</comment_count>
      <attachid>364003</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-03-11 03:55:43 -0700</bug_when>
    <thetext>Comment on attachment 364003
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:225
&gt; +        g_signal_handlers_disconnect_by_func(GST_BIN_CAST(m_pipeline.get()), reinterpret_cast&lt;gpointer&gt;(playbinDeepElementAddedCallback), this);

This is not necessary because of the line above, that disconnects all functions with this as data.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1756
&gt; +void MediaPlayerPrivateGStreamer::playbinDeepElementAddedCallback(GstBin*, GstBin* subBin, GstElement* element, MediaPlayerPrivateGStreamer* player)

Please, let&apos;s make a lambda of this.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1767
&gt; +    GUniquePtr&lt;gchar&gt; elementName(gst_element_get_name(element));

char

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:850
&gt; +    auto wait = m_videoDecoderIsVideo4Linux;

Nit: Lol, seriously? Do we really need to &quot;auto&quot; a &quot;bool&quot; ? :-ppppp

Anyway, the variable name should be shouldWait.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:863
&gt; +        [wait](TextureMapperPlatformLayerProxy&amp; proxy)

Values are captured with copy by default, you shouldn&apos;t need to copy in before. If should be enough if you just capture the variable or even by specifying [=] as the default capture. If you think you really want to pass down something different than the m_isVideoDecoderV4L2, I would do [shouldLock = m_isVideoDecoderV4L2]. Mind the ! cause I can be a bit lost with suggested name changes and bool meanings.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:872
&gt; +            if (!wait) {
&gt; +                LockHolder locker(proxy.lock());
&gt;  
&gt; -            if (proxy.isActive())
&gt; -                proxy.dropCurrentBufferWhilePreservingTexture();
&gt; +                if (proxy.isActive())
&gt; +                    proxy.dropCurrentBufferWhilePreservingTexture(wait);
&gt; +
&gt; +            } else if (proxy.isActive())
&gt; +                proxy.dropCurrentBufferWhilePreservingTexture(wait);

I would manually lock and unlock to avoid duplicating the function body. And another question, shouldn&apos;t it be if (wait) instead of if (!wait), either that or the variable name is misleading.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:286
&gt; +    bool m_videoDecoderIsVideo4Linux { false };

m_isVideoDecoderVideo4Linux or m_isVideoDecoderV4L2

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:191
&gt; +void TextureMapperPlatformLayerProxy::dropCurrentBufferWhilePreservingTexture(bool wait)

shouldWait

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:194
&gt; +    if (!wait)
&gt; +        ASSERT(m_lock.isHeld());

I have no strong feelings about this, but it looks like it would be interesting to flag the whole if as:

#ifndef ASSERT_DISABLED
if (wait)
    ASSERT...
#endif

Again, is the if correct? Shouldn&apos;t it be the other way around? Isn&apos;t it shouldLock a better name?

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:213
&gt; +                if (wait) {
&gt; +                    LockHolder locker2(m_conditionLock);
&gt; +                    m_bufferDropped = true;
&gt; +                    m_condition.notifyAll();
&gt; +                }

I would move this out of this if to a ScopeExit or makeScopeExit with a lambda, that way you avoid this here and below, having it centralized in only one place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514736</commentid>
    <comment_count>3</comment_count>
      <attachid>364003</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-11 04:06:00 -0700</bug_when>
    <thetext>Comment on attachment 364003
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:866
&gt; +            if (!wait) {
&gt; +                LockHolder locker(proxy.lock());

the proxy should NOT be locked if we synchronously flush, otherwise there&apos;s a deadlock...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514738</commentid>
    <comment_count>4</comment_count>
      <attachid>364003</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-11 04:55:43 -0700</bug_when>
    <thetext>Comment on attachment 364003
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:286
&gt;&gt; +    bool m_videoDecoderIsVideo4Linux { false };
&gt; 
&gt; m_isVideoDecoderVideo4Linux or m_isVideoDecoderV4L2

Where does this recommendation to prefix boolean variables with &quot;is&quot; comes from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514740</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-03-11 05:10:12 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #4)
&gt; Comment on attachment 364003 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=364003&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:286
&gt; &gt;&gt; +    bool m_videoDecoderIsVideo4Linux { false };
&gt; &gt; 
&gt; &gt; m_isVideoDecoderVideo4Linux or m_isVideoDecoderV4L2
&gt; 
&gt; Where does this recommendation to prefix boolean variables with &quot;is&quot; comes
&gt; from?

https://webkit.org/code-style-guidelines/#names

Precede boolean values with words like “is” and “did”.

(In reply to Philippe Normand from comment #3)
&gt; Comment on attachment 364003 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=364003&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:866
&gt; &gt; +            if (!wait) {
&gt; &gt; +                LockHolder locker(proxy.lock());
&gt; 
&gt; the proxy should NOT be locked if we synchronously flush, otherwise there&apos;s
&gt; a deadlock...

Not denying that, just the name is misleading, at least for me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514743</commentid>
    <comment_count>6</comment_count>
      <attachid>364003</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-11 05:32:46 -0700</bug_when>
    <thetext>Comment on attachment 364003
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:286
&gt;&gt;&gt;&gt; +    bool m_videoDecoderIsVideo4Linux { false };
&gt;&gt;&gt; 
&gt;&gt;&gt; m_isVideoDecoderVideo4Linux or m_isVideoDecoderV4L2
&gt;&gt; 
&gt;&gt; Where does this recommendation to prefix boolean variables with &quot;is&quot; comes from?
&gt; 
&gt; https://webkit.org/code-style-guidelines/#names
&gt; 
&gt; Precede boolean values with words like “is” and “did”.
&gt; 
&gt; (In reply to Philippe Normand from comment #3)

That&apos;s a strange guideline, I wonder if those were actually reviewed, I can&apos;t find where anyway :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514744</commentid>
    <comment_count>7</comment_count>
      <attachid>364246</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-11 05:44:52 -0700</bug_when>
    <thetext>Created attachment 364246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514758</commentid>
    <comment_count>8</comment_count>
      <attachid>364246</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-03-11 07:07:21 -0700</bug_when>
    <thetext>Comment on attachment 364246
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:228
&gt; +    m_bufferDropped = false;

Shouldn&apos;t this line be protected by the lock?

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:91
&gt; +    Lock m_conditionLock;
&gt; +    Condition m_condition;
&gt; +    bool m_bufferDropped { false };

m_[wasB|b]ufferDroppedLock, m_[wasB|b]ufferDroppedCondition, m_wasBufferDropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514762</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-11 07:41:57 -0700</bug_when>
    <thetext>Committed r242701: &lt;https://trac.webkit.org/changeset/242701&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514917</commentid>
    <comment_count>10</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-03-11 12:12:59 -0700</bug_when>
    <thetext>This commit is causing tests on GTK and WPE to timeout/crash.
https://build.webkit.org/builders/WPE%20Linux%2064-bit%20Release%20%28Tests%29/builds/12603
https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20%28Tests%29/builds/9953</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514918</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-11 12:13:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/48776515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514922</commentid>
    <comment_count>12</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-03-11 12:22:48 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #10)
&gt; This commit is causing tests on GTK and WPE to timeout/crash.
&gt; https://build.webkit.org/builders/WPE%20Linux%2064-
&gt; bit%20Release%20%28Tests%29/builds/12603
&gt; https://build.webkit.org/builders/GTK%20Linux%2064-
&gt; bit%20Release%20%28Tests%29/builds/9953

Rolled out in r242725.
https://trac.webkit.org/changeset/242725/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515366</commentid>
    <comment_count>13</comment_count>
      <attachid>364367</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-12 02:04:51 -0700</bug_when>
    <thetext>Created attachment 364367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515367</commentid>
    <comment_count>14</comment_count>
      <attachid>364367</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-12 02:07:21 -0700</bug_when>
    <thetext>Comment on attachment 364367
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:277
&gt; +    if (m_isVideoDecoderVideo4Linux)
&gt; +        flushCurrentBuffer();
&gt; +#endif
&gt;  #if USE(TEXTURE_MAPPER_GL) &amp;&amp; USE(NICOSIA)
&gt;      downcast&lt;Nicosia::ContentLayerTextureMapperImpl&gt;(m_nicosiaLayer-&gt;impl()).invalidateClient();

What broke the tests is an unconditional asynchronous flush followed by invalidation of the platform layer proxy, leading to a  deadlock. So now we&apos;ll do a synchronous flush only on v4l2 case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515385</commentid>
    <comment_count>15</comment_count>
      <attachid>364367</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-03-12 02:38:29 -0700</bug_when>
    <thetext>Comment on attachment 364367
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:868
&gt; +            if (!shouldWait)
&gt; +                proxy.lock().lock();

I think there&apos;s a problem here when I told you to remove the LockHolder and do a manual lock, that we materialized one of the problems of not using a LockHolder, that is that the lock might be held forever. It looks like know you&apos;re holding the lock and never releasing it.

Let&apos;s turn again to a LockHolder but let&apos;s do it like:
LockHolder locker(!shouldWait ? proxy.lock() : nullptr);

This way the code is still not repeated and we hold the lock when we should, releasing it when we should as well.

Am I analizing it wrong?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515386</commentid>
    <comment_count>16</comment_count>
      <attachid>364367</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-12 02:52:31 -0700</bug_when>
    <thetext>Comment on attachment 364367
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:868
&gt;&gt; +                proxy.lock().lock();
&gt; 
&gt; I think there&apos;s a problem here when I told you to remove the LockHolder and do a manual lock, that we materialized one of the problems of not using a LockHolder, that is that the lock might be held forever. It looks like know you&apos;re holding the lock and never releasing it.
&gt; 
&gt; Let&apos;s turn again to a LockHolder but let&apos;s do it like:
&gt; LockHolder locker(!shouldWait ? proxy.lock() : nullptr);
&gt; 
&gt; This way the code is still not repeated and we hold the lock when we should, releasing it when we should as well.
&gt; 
&gt; Am I analizing it wrong?

error: operands to ?: have different types ‘WTF::Lock’ and ‘std::nullptr_t’</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515387</commentid>
    <comment_count>17</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-03-12 03:09:27 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #16)
&gt; &gt; Let&apos;s turn again to a LockHolder but let&apos;s do it like:
&gt; &gt; LockHolder locker(!shouldWait ? proxy.lock() : nullptr);
&gt; 
&gt; error: operands to ?: have different types ‘WTF::Lock’ and ‘std::nullptr_t’

    explicit Locker(T&amp; lockable) : m_lockable(&amp;lockable) { lock(); }
    explicit Locker(T* lockable) : m_lockable(lockable) { lock(); }

LockHolder locker(!shouldWait ? &amp;proxy.lock() : nullptr);

It&apos;s a patter I have already seen somewhere in the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515390</commentid>
    <comment_count>18</comment_count>
      <attachid>364374</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-12 03:17:04 -0700</bug_when>
    <thetext>Created attachment 364374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515435</commentid>
    <comment_count>19</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-03-12 07:17:21 -0700</bug_when>
    <thetext>Committed r242793: &lt;https://trac.webkit.org/changeset/242793&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364003</attachid>
            <date>2019-03-08 03:24:37 -0800</date>
            <delta_ts>2019-03-11 05:44:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195453-20190308112435.patch</filename>
            <type>text/plain</type>
            <size>14033</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdmOTc0MDkyMmI2MThm
YzNmOGEwYjVkOGFlMTU0ZWRlZjc2MWQzYi4uNTRmZGY1ZjJjZTE0N2ZkODIxODRmZDU2YTJhMzQy
ZWM1MjE4YTU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTAzLTA4ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVt2NGwyXSBTeW5jaHJvbm91cyB2aWRlbyB0ZXh0dXJlIGZsdXNoaW5nIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQ1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB2NGwyIHZpZGVv
IGRlY29kZXIgY3VycmVudGx5IHJlcXVpcmVzIHRoYXQgZG93bnN0cmVhbSB1c2VycyBvZgorICAg
ICAgICB0aGUgZ3JhcGhpY3MgcmVzb3VyY2VzIGNvbXBsZXRlIGFueSBwZW5kaW5nIGRyYXcgY2Fs
bCBhbmQgcmVsZWFzZQorICAgICAgICByZXNvdXJjZXMgYmVmb3JlIHJldHVybmluZyBmcm9tIHRo
ZSBEUkFJTiBxdWVyeS4KKworICAgICAgICBUbyBhY2NvbXBsaXNoIHRoaXMgdGhlIHBsYXllciBt
b25pdG9ycyB0aGUgcGlwZWxpbmUgYW5kIHdoZW5ldmVyIGEKKyAgICAgICAgdjRsMiBkZWNvZGVy
IGlzIGFkZGVkLCBzeW5jaHJvbm91cyB2aWRlbyB0ZXh0dXJlIGZsdXNoaW5nIHN1cHBvcnQKKyAg
ICAgICAgaXMgZW5hYmxlZC4gQWRkaXRpb25hbGx5IGFuZCBmb3IgYWxsIGRlY29kZXIgY29uZmln
dXJhdGlvbnMsIGEKKyAgICAgICAgZmx1c2ggaXMgcGVyZm9ybWVkIGJlZm9yZSBkaXNwb3Npbmcg
b2YgdGhlIHBsYXllci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5YmluRGVlcEVsZW1lbnRBZGRlZENhbGxiYWNrKToK
KyAgICAgICAgTW9uaXRvciBlbGVtZW50cyBhZGRlZCB0byB0aGUgZGVjb2RlYmluIGJpbi4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGVjb2RlYmluRWxl
bWVudEFkZGVkKTogU2V0CisgICAgICAgIGEgZmxhZyBpZiBhIHY0bDIgZGVjb2RlciB3YXMgYWRk
ZWQgaW4gZGVjb2RlYmluLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKTogQ29ubmVjdAorICAgICAgICB0byB0aGUgZGVlcC1l
bGVtZW50LWFkZGVkIHNpZ25hbCBzbyBhcyB0byBtb25pdG9yIHBpcGVsaW5lCisgICAgICAgIHRv
cG9sb2d5IHVwZGF0ZXMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlKToKKyAgICAgICAgRmx1c2ggdmlkZW8gdGV4dHVyZSBiZWZvcmUg
ZGlzcG9zaW5nIG9mIHRoZSBwbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpmbHVzaEN1cnJlbnRCdWZmZXIpOgorICAgICAgICBTeW5jaHJv
bm91c2x5IGZsdXNoIGlmIHRoZSBwaXBlbGluZSBjb250YWlucyBhIHY0bDIgZGVjb2Rlci4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNyZWF0ZUdM
QXBwU2luayk6IE1vbml0b3IgcHVzaCBldmVudHMgb25seS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
UHJveHk6OnB1c2hOZXh0QnVmZmVyKTogTmV3CisgICAgICAgIGJvb2xlYW4gZmxhZyB1c2VkIG1v
c3RseSB0byB0cmlnZ2VyIHN5bmNocm9ub3VzIGZsdXNoIGNvbmRpdGlvbnMuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpkcm9wQ3VycmVudEJ1ZmZl
cldoaWxlUHJlc2VydmluZ1RleHR1cmUpOgorICAgICAgICBPcHRpb25hbGx5IGRyb3AgdGhlIGN1
cnJlbnQgYnVmZmVyIGluIGEgc3luY2hyb25vdXMgbWFubmVyLiBCeQorICAgICAgICBkZWZhdWx0
IHRoZSBtZXRob2Qga2VlcHMgb3BlcmF0aW5nIGFzeW5jaHJvbm91c2x5LgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Lmg6
CisKIDIwMTktMDMtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBNYWtlIG1vcmUgZmllbGRzIGxhenkgaW4gSlNHbG9iYWxPYmplY3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggZjhmMDBm
MTY4YjBhYzNkODA3OTRiYmI1ZWU1ZTg3M2JjNmY0ZWEzYS4uNGRmZDlmMTQwYjZkYjVmYTVkMDM5
ZjQ0ZDZlMGRkMDQ1ZWUxYjZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKQEAgLTIyMiw2ICsyMjIsNyBAQCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKQogICAgICAgICBnc3RfYnVz
X3JlbW92ZV9zaWduYWxfd2F0Y2goYnVzLmdldCgpKTsKICAgICAgICAgZ3N0X2J1c19zZXRfc3lu
Y19oYW5kbGVyKGJ1cy5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgICAg
IGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZChtX3BpcGVsaW5lLmdldCgpLCBH
X1NJR05BTF9NQVRDSF9EQVRBLCAwLCAwLCBudWxscHRyLCBudWxscHRyLCB0aGlzKTsKKyAgICAg
ICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKEdTVF9CSU5fQ0FTVChtX3Bp
cGVsaW5lLmdldCgpKSwgcmVpbnRlcnByZXRfY2FzdDxncG9pbnRlcj4ocGxheWJpbkRlZXBFbGVt
ZW50QWRkZWRDYWxsYmFjayksIHRoaXMpOwogICAgIH0KIH0KIApAQCAtMTc1Miw2ICsxNzUzLDIx
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzb3VyY2VTZXR1cENhbGxiYWNr
KE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lCiAgICAgcGxheWVyLT5zb3VyY2VTZXR1cChzb3Vy
Y2VFbGVtZW50KTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBsYXli
aW5EZWVwRWxlbWVudEFkZGVkQ2FsbGJhY2soR3N0QmluKiwgR3N0QmluKiBzdWJCaW4sIEdzdEVs
ZW1lbnQqIGVsZW1lbnQsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQorewor
ICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGJpbk5hbWUoZ3N0X2VsZW1lbnRfZ2V0X25hbWUoR1NUX0VM
RU1FTlRfQ0FTVChzdWJCaW4pKSk7CisgICAgaWYgKCFnX3N0cl9oYXNfcHJlZml4KGJpbk5hbWUu
Z2V0KCksICJkZWNvZGViaW4iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGxheWVyLT5kZWNv
ZGViaW5FbGVtZW50QWRkZWQoZWxlbWVudCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpkZWNvZGViaW5FbGVtZW50QWRkZWQoR3N0RWxlbWVudCogZWxlbWVudCkKK3sK
KyAgICBHVW5pcXVlUHRyPGdjaGFyPiBlbGVtZW50TmFtZShnc3RfZWxlbWVudF9nZXRfbmFtZShl
bGVtZW50KSk7CisgICAgbV92aWRlb0RlY29kZXJJc1ZpZGVvNExpbnV4ID0gZ19zdHJfaGFzX3By
ZWZpeChlbGVtZW50TmFtZS5nZXQoKSwgInY0bDIiKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnVyaURlY29kZUJpbkVsZW1lbnRBZGRlZENhbGxiYWNrKEdzdEJpbiog
YmluLCBHc3RFbGVtZW50KiBlbGVtZW50LCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBs
YXllcikKIHsKICAgICBpZiAoZ19zdHJjbXAwKEdfT0JKRUNUX1RZUEVfTkFNRShlbGVtZW50KSwg
IkdzdERvd25sb2FkQnVmZmVyIikpCkBAIC0yNDQ1LDYgKzI0NjEsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbihjb25zdCBnY2hhciogcGxheWJp
bk5hbWUsIGNvbgogCiAgICAgZ19vYmplY3Rfc2V0KG1fcGlwZWxpbmUuZ2V0KCksICJtdXRlIiwg
bV9wbGF5ZXItPm11dGVkKCksIG51bGxwdHIpOwogCisgICAgZ19zaWduYWxfY29ubmVjdChHU1Rf
QklOX0NBU1QobV9waXBlbGluZS5nZXQoKSksICJkZWVwLWVsZW1lbnQtYWRkZWQiLCBHX0NBTExC
QUNLKHBsYXliaW5EZWVwRWxlbWVudEFkZGVkQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25h
bF9jb25uZWN0X3N3YXBwZWQobV9waXBlbGluZS5nZXQoKSwgInNvdXJjZS1zZXR1cCIsIEdfQ0FM
TEJBQ0soc291cmNlU2V0dXBDYWxsYmFjayksIHRoaXMpOwogICAgIGlmIChtX2lzTGVnYWN5UGxh
eWJpbikgewogICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9waXBlbGluZS5nZXQo
KSwgInZpZGVvLWNoYW5nZWQiLCBHX0NBTExCQUNLKHZpZGVvQ2hhbmdlZENhbGxiYWNrKSwgdGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXgg
OWU2MDZjYzg3NzcxMTQyMTU1MGQ1MzNlMzU0OGQwNTg0NjlkOGI3ZS4uNjg5MWQxY2M1MWE0ZDVh
MDFhNzMwNzJiZTY1ZDQyM2U5NGY5MDM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaApAQCAtMTc0LDYgKzE3NCw5IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5T
YXZlTWVkaWFEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICBzdGF0aWMgdm9pZCBwbGF5Ymlu
RGVlcEVsZW1lbnRBZGRlZENhbGxiYWNrKEdzdEJpbiosIEdzdEJpbiogc3ViQmluLCBHc3RFbGVt
ZW50KiwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKik7CisgICAgdm9pZCBkZWNvZGViaW5F
bGVtZW50QWRkZWQoR3N0RWxlbWVudCopOworCiAgICAgdm9pZCBwdXJnZU9sZERvd25sb2FkRmls
ZXMoY29uc3QgY2hhciopOwogICAgIHN0YXRpYyB2b2lkIHVyaURlY29kZUJpbkVsZW1lbnRBZGRl
ZENhbGxiYWNrKEdzdEJpbiosIEdzdEVsZW1lbnQqLCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBkb3dubG9hZEJ1ZmZlckZpbGVDcmVhdGVkQ2FsbGJhY2so
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggYWQ2MjAwYzQ1NjM1YWMyMTlj
ZGE3ODYxYjQzNWI0YzU3YTQ0MDMxOS4uZDc0YzNlNDI2N2U0ZjE2ZmFkZDU5N2NmYzg1MTczNjA5
NWEyNDg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmNwcApAQCAtMjY5LDYgKzI2OSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoTWVkaWFQbGF5ZXIqIHBs
CiAKIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlKCkKIHsKKyAgICBmbHVzaEN1cnJlbnRCdWZmZXIoKTsKICNpZiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpICYmIFVTRShOSUNPU0lBKQogICAgIGRvd25jYXN0PE5pY29zaWE6OkNv
bnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsPihtX25pY29zaWFMYXllci0+aW1wbCgpKS5pbnZh
bGlkYXRlQ2xpZW50KCk7CiAjZW5kaWYKQEAgLTg0Niw3ICs4NDcsOCBAQCBHc3RGbG93UmV0dXJu
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om5ld1ByZXJvbGxDYWxsYmFjayhHc3RF
bGVtZW50KiBzaQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmZsdXNo
Q3VycmVudEJ1ZmZlcigpCiB7Ci0gICAgR1NUX0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiRmx1
c2hpbmcgdmlkZW8gc2FtcGxlIik7CisgICAgYXV0byB3YWl0ID0gbV92aWRlb0RlY29kZXJJc1Zp
ZGVvNExpbnV4OworICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIkZsdXNoaW5nIHZp
ZGVvIHNhbXBsZSAod2FpdDogJXMpIiwgYm9vbEZvclByaW50aW5nKHdhaXQpKTsKICAgICBhdXRv
IHNhbXBsZUxvY2tlciA9IGhvbGRMb2NrKG1fc2FtcGxlTXV0ZXgpOwogCiAgICAgaWYgKG1fc2Ft
cGxlKSB7CkBAIC04NTgsMTIgKzg2MCwxNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2U6OmZsdXNoQ3VycmVudEJ1ZmZlcigpCiAgICAgfQogCiAgICAgYXV0byBwcm94eU9w
ZXJhdGlvbiA9Ci0gICAgICAgIFtdKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkmIHBy
b3h5KQorICAgICAgICBbd2FpdF0oVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSYgcHJv
eHkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKHByb3h5LmxvY2so
KSk7CisgICAgICAgICAgICBpZiAoIXdhaXQpIHsKKyAgICAgICAgICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihwcm94eS5sb2NrKCkpOwogCi0gICAgICAgICAgICBpZiAocHJveHkuaXNBY3RpdmUo
KSkKLSAgICAgICAgICAgICAgICBwcm94eS5kcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJlc2Vydmlu
Z1RleHR1cmUoKTsKKyAgICAgICAgICAgICAgICBpZiAocHJveHkuaXNBY3RpdmUoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcHJveHkuZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0
dXJlKHdhaXQpOworCisgICAgICAgICAgICB9IGVsc2UgaWYgKHByb3h5LmlzQWN0aXZlKCkpCisg
ICAgICAgICAgICAgICAgcHJveHkuZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0
dXJlKHdhaXQpOwogICAgICAgICB9OwogCiAjaWYgVVNFKE5JQ09TSUEpCkBAIC0xMDEwLDcgKzEw
MTYsNyBAQCBHc3RFbGVtZW50KiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjcmVh
dGVHTEFwcFNpbmsoKQogICAgIGdfc2lnbmFsX2Nvbm5lY3QoYXBwc2luaywgIm5ldy1wcmVyb2xs
IiwgR19DQUxMQkFDSyhuZXdQcmVyb2xsQ2FsbGJhY2spLCB0aGlzKTsKIAogICAgIEdSZWZQdHI8
R3N0UGFkPiBwYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoYXBwc2lu
aywgInNpbmsiKSk7Ci0gICAgZ3N0X3BhZF9hZGRfcHJvYmUocGFkLmdldCgpLCBzdGF0aWNfY2Fz
dDxHc3RQYWRQcm9iZVR5cGU+KEdTVF9QQURfUFJPQkVfVFlQRV9RVUVSWV9ET1dOU1RSRUFNIHwg
R1NUX1BBRF9QUk9CRV9UWVBFX0VWRU5UX0ZMVVNIKSwgW10gKEdzdFBhZCosIEdzdFBhZFByb2Jl
SW5mbyogaW5mbywgIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBHc3RQYWRQcm9iZVJldHVybiB7Cisg
ICAgZ3N0X3BhZF9hZGRfcHJvYmUocGFkLmdldCgpLCBzdGF0aWNfY2FzdDxHc3RQYWRQcm9iZVR5
cGU+KEdTVF9QQURfUFJPQkVfVFlQRV9QVVNIIHwgR1NUX1BBRF9QUk9CRV9UWVBFX1FVRVJZX0RP
V05TVFJFQU0gfCBHU1RfUEFEX1BST0JFX1RZUEVfRVZFTlRfRkxVU0gpLCBbXSAoR3N0UGFkKiwg
R3N0UGFkUHJvYmVJbmZvKiBpbmZvLCAgZ3BvaW50ZXIgdXNlckRhdGEpIC0+IEdzdFBhZFByb2Jl
UmV0dXJuIHsKICAgICAgICAgLy8gSW4gc29tZSBwbGF0Zm9ybXMgKGUuZy4gT3Blbk1BWCBvbiB0
aGUgUmFzcGJlcnJ5IFBpKSB3aGVuIGEgcmVzb2x1dGlvbiBjaGFuZ2Ugb2NjdXJzIHRoZQogICAg
ICAgICAvLyBwaXBlbGluZSBoYXMgdG8gYmUgZHJhaW5lZCBiZWZvcmUgYSBmcmFtZSB3aXRoIHRo
ZSBuZXcgcmVzb2x1dGlvbiBjYW4gYmUgZGVjb2RlZC4KICAgICAgICAgLy8gSW4gdGhpcyBjb250
ZXh0LCBpdCdzIGltcG9ydGFudCB0aGF0IHdlIGRvbid0IGhvbGQgcmVmZXJlbmNlcyB0byBhbnkg
cHJldmlvdXMgZnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZS5oCmluZGV4IDIwYzI4YzRhMzVjYWYxZDQwYjA0ZjE0YWU4MTEzMWJiYmViNjEx
NzMuLjFlZjAyYTVjYzBiNmJmNmMyYTRhNDNjN2Q4ZTQ2YjA1Yjk3ZWY2NzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaApAQCAtMjgyLDYg
KzI4Miw4IEBAIHByb3RlY3RlZDoKICAgICBIYXNoU2V0PHVpbnQzMl90PiBtX2hhbmRsZWRQcm90
ZWN0aW9uRXZlbnRzOwogICAgIGJvb2wgbV93YWl0aW5nRm9yS2V5IHsgZmFsc2UgfTsKICNlbmRp
ZgorCisgICAgYm9vbCBtX3ZpZGVvRGVjb2RlcklzVmlkZW80TGludXggeyBmYWxzZSB9OwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3Bw
CmluZGV4IDVhN2YxMjZiMTEzNjIyYWUwOGUzZDRmYjFiZGI1MDRmMThhMTRiMGEuLmY1NmM0Mzhh
NmM4NWQ5NzBiMjVjNGFkNDQ1MDEzNjdkNWNlNzg0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKQEAgLTExMyw2ICsxMTMsNyBAQCB2b2lk
IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnB1c2hOZXh0QnVmZmVyKHN0ZDo6dW5p
cXVlX3B0cjxUZXh0dXJlTWFwcAogewogICAgIEFTU0VSVChtX2xvY2suaXNIZWxkKCkpOwogICAg
IG1fcGVuZGluZ0J1ZmZlciA9IFdURk1vdmUobmV3QnVmZmVyKTsKKyAgICBtX2J1ZmZlckRyb3Bw
ZWQgPSBmYWxzZTsKIAogICAgIGlmIChtX2NvbXBvc2l0b3IpCiAgICAgICAgIG1fY29tcG9zaXRv
ci0+b25OZXdCdWZmZXJBdmFpbGFibGUoKTsKQEAgLTE4Nyw5ICsxODgsMTAgQEAgdm9pZCBUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpzd2FwQnVmZmVyKCkKICAgICAgICAgYXBwZW5k
VG9VbnVzZWRCdWZmZXJzKFdURk1vdmUocHJldkJ1ZmZlcikpOwogfQogCi12b2lkIFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5n
VGV4dHVyZSgpCit2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmRyb3BDdXJy
ZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVyZShib29sIHdhaXQpCiB7Ci0gICAgQVNTRVJU
KG1fbG9jay5pc0hlbGQoKSk7CisgICAgaWYgKCF3YWl0KQorICAgICAgICBBU1NFUlQobV9sb2Nr
LmlzSGVsZCgpKTsKIAogICAgIGlmIChtX3BlbmRpbmdCdWZmZXIgJiYgbV9wZW5kaW5nQnVmZmVy
LT5oYXNNYW5hZ2VkVGV4dHVyZSgpKSB7CiAgICAgICAgIG1fdXNlZEJ1ZmZlcnMuYXBwZW5kKFdU
Rk1vdmUobV9wZW5kaW5nQnVmZmVyKSk7CkBAIC0yMDAsMjEgKzIwMiw0MiBAQCB2b2lkIFRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2
aW5nVGV4dHVyZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY29tcG9zaXRvclRocmVhZFVw
ZGF0ZUZ1bmN0aW9uID0KLSAgICAgICAgW3RoaXNdIHsKKyAgICAgICAgW3RoaXMsIHdhaXRdIHsK
ICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CiAKLSAgICAgICAgICAgIGlm
ICghbV9jb21wb3NpdG9yIHx8ICFtX3RhcmdldExheWVyIHx8ICFtX2N1cnJlbnRCdWZmZXIpCisg
ICAgICAgICAgICBpZiAoIW1fY29tcG9zaXRvciB8fCAhbV90YXJnZXRMYXllciB8fCAhbV9jdXJy
ZW50QnVmZmVyKSB7CisgICAgICAgICAgICAgICAgaWYgKHdhaXQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIyKG1fY29uZGl0aW9uTG9jayk7CisgICAgICAgICAgICAg
ICAgICAgIG1fYnVmZmVyRHJvcHBlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIG1fY29u
ZGl0aW9uLm5vdGlmeUFsbCgpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgICAgIG1fcGVuZGluZ0J1ZmZlciA9IG1fY3VycmVudEJ1ZmZlci0+
Y2xvbmUoKTsKLSAgICAgICAgICAgIGF1dG8gcHJldkJ1ZmZlciA9IFdURk1vdmUobV9jdXJyZW50
QnVmZmVyKTsKLSAgICAgICAgICAgIG1fY3VycmVudEJ1ZmZlciA9IFdURk1vdmUobV9wZW5kaW5n
QnVmZmVyKTsKLSAgICAgICAgICAgIG1fdGFyZ2V0TGF5ZXItPnNldENvbnRlbnRzTGF5ZXIobV9j
dXJyZW50QnVmZmVyLmdldCgpKTsKLQotICAgICAgICAgICAgaWYgKHByZXZCdWZmZXItPmhhc01h
bmFnZWRUZXh0dXJlKCkpCi0gICAgICAgICAgICAgICAgYXBwZW5kVG9VbnVzZWRCdWZmZXJzKFdU
Rk1vdmUocHJldkJ1ZmZlcikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgbV9wZW5kaW5nQnVmZmVyID0gbV9jdXJyZW50QnVmZmVyLT5jbG9uZSgpOwor
ICAgICAgICAgICAgICAgIGF1dG8gcHJldkJ1ZmZlciA9IFdURk1vdmUobV9jdXJyZW50QnVmZmVy
KTsKKyAgICAgICAgICAgICAgICBtX2N1cnJlbnRCdWZmZXIgPSBXVEZNb3ZlKG1fcGVuZGluZ0J1
ZmZlcik7CisgICAgICAgICAgICAgICAgbV90YXJnZXRMYXllci0+c2V0Q29udGVudHNMYXllciht
X2N1cnJlbnRCdWZmZXIuZ2V0KCkpOworCisgICAgICAgICAgICAgICAgaWYgKHByZXZCdWZmZXIt
Pmhhc01hbmFnZWRUZXh0dXJlKCkpCisgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvVW51c2Vk
QnVmZmVycyhXVEZNb3ZlKHByZXZCdWZmZXIpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgaWYgKHdhaXQpIHsKKyAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcjIobV9jb25k
aXRpb25Mb2NrKTsKKyAgICAgICAgICAgICAgICBtX2J1ZmZlckRyb3BwZWQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeUFsbCgpOworICAgICAgICAgICAgfQogICAg
ICAgICB9OworICAgIG1fYnVmZmVyRHJvcHBlZCA9IGZhbHNlOwogICAgIG1fY29tcG9zaXRvclRo
cmVhZFVwZGF0ZVRpbWVyLT5zdGFydE9uZVNob3QoMF9zKTsKKyAgICBpZiAod2FpdCkgeworICAg
ICAgICBMb2NrSG9sZGVyIGhvbGRlcihtX2NvbmRpdGlvbkxvY2spOworICAgICAgICBtX2NvbmRp
dGlvbi53YWl0KG1fY29uZGl0aW9uTG9jaywgW3RoaXNdIHsKKyAgICAgICAgICAgIHJldHVybiBt
X2J1ZmZlckRyb3BwZWQ7CisgICAgICAgIH0pOworICAgIH0KIH0KIAogYm9vbCBUZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllclByb3h5OjpzY2hlZHVsZVVwZGF0ZU9uQ29tcG9zaXRvclRocmVhZChG
dW5jdGlvbjx2b2lkKCk+JiYgdXBkYXRlRnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQ
cm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuaAppbmRleCA2ODNlYzcxZDFiNDNkNjliYmFiNGFmZDNi
NzA1ZjJlODI3ODMwMjkzLi43YjdjZTIyNGYzNDJkYzY2ZWU2MTIxMWJlOWFhZmMwMzQ4YWI3OGU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgKQEAg
LTI4LDYgKzI4LDcgQEAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAKICNpbmNsdWRl
ICJUZXh0dXJlTWFwcGVyR0xIZWFkZXJzLmgiCisjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgog
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KQEAgLTY4LDcgKzY5LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzd2Fw
QnVmZmVyKCk7Ci0gICAgdm9pZCBkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJlc2VydmluZ1RleHR1
cmUoKTsKKyAgICB2b2lkIGRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVyZShi
b29sIHdhaXQgPSBmYWxzZSk7CiAKICAgICBib29sIHNjaGVkdWxlVXBkYXRlT25Db21wb3NpdG9y
VGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKQEAgLTg1LDYgKzg2LDEwIEBAIHByaXZhdGU6
CiAKICAgICBMb2NrIG1fbG9jazsKIAorICAgIExvY2sgbV9jb25kaXRpb25Mb2NrOworICAgIENv
bmRpdGlvbiBtX2NvbmRpdGlvbjsKKyAgICBib29sIG1fYnVmZmVyRHJvcHBlZCB7IGZhbHNlIH07
CisKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
QnVmZmVyPj4gbV91c2VkQnVmZmVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGlt
ZXI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eT4+IG1fcmVsZWFzZVVudXNlZEJ1ZmZl
cnNUaW1lcjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364246</attachid>
            <date>2019-03-11 05:44:52 -0700</date>
            <delta_ts>2019-03-12 02:04:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195453-20190311124451.patch</filename>
            <type>text/plain</type>
            <size>11541</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNjMGI2MmUzYTFhMzVl
YmExYjJhMTlmNWQzMGFkOGMyOGJmMzJhNC4uYTFmNDI3ZjA4NjAwYTkwMmQwMTA2ODQ3OWRiMmEw
Mzg2NTA2OTgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTAzLTA4ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVt2NGwyXSBTeW5jaHJvbm91cyB2aWRlbyB0ZXh0dXJlIGZsdXNoaW5nIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQ1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB2NGwyIHZpZGVv
IGRlY29kZXIgY3VycmVudGx5IHJlcXVpcmVzIHRoYXQgZG93bnN0cmVhbSB1c2VycyBvZgorICAg
ICAgICB0aGUgZ3JhcGhpY3MgcmVzb3VyY2VzIGNvbXBsZXRlIGFueSBwZW5kaW5nIGRyYXcgY2Fs
bCBhbmQgcmVsZWFzZQorICAgICAgICByZXNvdXJjZXMgYmVmb3JlIHJldHVybmluZyBmcm9tIHRo
ZSBEUkFJTiBxdWVyeS4KKworICAgICAgICBUbyBhY2NvbXBsaXNoIHRoaXMgdGhlIHBsYXllciBt
b25pdG9ycyB0aGUgcGlwZWxpbmUgYW5kIHdoZW5ldmVyIGEKKyAgICAgICAgdjRsMiBkZWNvZGVy
IGlzIGFkZGVkLCBzeW5jaHJvbm91cyB2aWRlbyB0ZXh0dXJlIGZsdXNoaW5nIHN1cHBvcnQKKyAg
ICAgICAgaXMgZW5hYmxlZC4gQWRkaXRpb25hbGx5IGFuZCBmb3IgYWxsIGRlY29kZXIgY29uZmln
dXJhdGlvbnMsIGEKKyAgICAgICAgZmx1c2ggaXMgcGVyZm9ybWVkIGJlZm9yZSBkaXNwb3Npbmcg
b2YgdGhlIHBsYXllci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5YmluRGVlcEVsZW1lbnRBZGRlZENhbGxiYWNrKToK
KyAgICAgICAgTW9uaXRvciBlbGVtZW50cyBhZGRlZCB0byB0aGUgZGVjb2RlYmluIGJpbi4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGVjb2RlYmluRWxl
bWVudEFkZGVkKTogU2V0CisgICAgICAgIGEgZmxhZyBpZiBhIHY0bDIgZGVjb2RlciB3YXMgYWRk
ZWQgaW4gZGVjb2RlYmluLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKTogQ29ubmVjdAorICAgICAgICB0byB0aGUgZGVlcC1l
bGVtZW50LWFkZGVkIHNpZ25hbCBzbyBhcyB0byBtb25pdG9yIHBpcGVsaW5lCisgICAgICAgIHRv
cG9sb2d5IHVwZGF0ZXMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlKToKKyAgICAgICAgRmx1c2ggdmlkZW8gdGV4dHVyZSBiZWZvcmUg
ZGlzcG9zaW5nIG9mIHRoZSBwbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpmbHVzaEN1cnJlbnRCdWZmZXIpOgorICAgICAgICBTeW5jaHJv
bm91c2x5IGZsdXNoIGlmIHRoZSBwaXBlbGluZSBjb250YWlucyBhIHY0bDIgZGVjb2Rlci4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNyZWF0ZUdM
QXBwU2luayk6IE1vbml0b3IgcHVzaCBldmVudHMgb25seS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
UHJveHk6OnB1c2hOZXh0QnVmZmVyKTogTmV3CisgICAgICAgIGJvb2xlYW4gZmxhZyB1c2VkIG1v
c3RseSB0byB0cmlnZ2VyIHN5bmNocm9ub3VzIGZsdXNoIGNvbmRpdGlvbnMuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpkcm9wQ3VycmVudEJ1ZmZl
cldoaWxlUHJlc2VydmluZ1RleHR1cmUpOgorICAgICAgICBPcHRpb25hbGx5IGRyb3AgdGhlIGN1
cnJlbnQgYnVmZmVyIGluIGEgc3luY2hyb25vdXMgbWFubmVyLiBCeQorICAgICAgICBkZWZhdWx0
IHRoZSBtZXRob2Qga2VlcHMgb3BlcmF0aW5nIGFzeW5jaHJvbm91c2x5LgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Lmg6
CisKIDIwMTktMDMtMTAgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgog
CiAgICAgICAgIEludmFsaWQgZmxhZ3MgaW4gYSBSZWdFeHAgbGl0ZXJhbCBzaG91bGQgYmUgYW4g
ZWFybHkgU3ludGF4RXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKaW5kZXggZjhmMDBmMTY4YjBhYzNkODA3OTRiYmI1ZWU1ZTg3M2JjNmY0ZWEz
YS4uNjIzNjYzZmI5ODM3NTI5MjM5ZjY2Y2I3YTE5MmI3MDc4YWIxM2FkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI0NDUsNiArMjQ0
NSwxNSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJp
bihjb25zdCBnY2hhciogcGxheWJpbk5hbWUsIGNvbgogCiAgICAgZ19vYmplY3Rfc2V0KG1fcGlw
ZWxpbmUuZ2V0KCksICJtdXRlIiwgbV9wbGF5ZXItPm11dGVkKCksIG51bGxwdHIpOwogCisgICAg
Z19zaWduYWxfY29ubmVjdChHU1RfQklOX0NBU1QobV9waXBlbGluZS5nZXQoKSksICJkZWVwLWVs
ZW1lbnQtYWRkZWQiLCBHX0NBTExCQUNLKCtbXShHc3RCaW4qLCBHc3RCaW4qIHN1YkJpbiwgR3N0
RWxlbWVudCogZWxlbWVudCwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpIHsK
KyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBiaW5OYW1lKGdzdF9lbGVtZW50X2dldF9uYW1lKEdT
VF9FTEVNRU5UX0NBU1Qoc3ViQmluKSkpOworICAgICAgICBpZiAoIWdfc3RyX2hhc19wcmVmaXgo
YmluTmFtZS5nZXQoKSwgImRlY29kZWJpbiIpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gZWxlbWVudE5hbWUoZ3N0X2VsZW1lbnRfZ2V0X25hbWUoZWxl
bWVudCkpOworICAgICAgICBwbGF5ZXItPm1faXNWaWRlb0RlY29kZXJWaWRlbzRMaW51eCA9IGdf
c3RyX2hhc19wcmVmaXgoZWxlbWVudE5hbWUuZ2V0KCksICJ2NGwyIik7CisgICAgfSksIHRoaXMp
OworCiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fcGlwZWxpbmUuZ2V0KCksICJzb3Vy
Y2Utc2V0dXAiLCBHX0NBTExCQUNLKHNvdXJjZVNldHVwQ2FsbGJhY2spLCB0aGlzKTsKICAgICBp
ZiAobV9pc0xlZ2FjeVBsYXliaW4pIHsKICAgICAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVk
KG1fcGlwZWxpbmUuZ2V0KCksICJ2aWRlby1jaGFuZ2VkIiwgR19DQUxMQkFDSyh2aWRlb0NoYW5n
ZWRDYWxsYmFjayksIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IGFkNjIwMGM0NTYzNWFjMjE5Y2RhNzg2MWI0MzVi
NGM1N2E0NDAzMTkuLjk1YTBiYzA5ZjQ1YTJiYjU5YjYxNTUxMDg1YThjOTYwY2NiZTY4ZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKQEAgLTI2OSw2ICsyNjksNyBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxheWVyKiBwbAogCiBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZSgpCiB7CisgICAgZmx1c2hDdXJyZW50QnVmZmVyKCk7CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKSAmJiBVU0UoTklDT1NJQSkKICAgICBkb3duY2FzdDxOaWNvc2lhOjpDb250ZW50TGF5ZXJU
ZXh0dXJlTWFwcGVySW1wbD4obV9uaWNvc2lhTGF5ZXItPmltcGwoKSkuaW52YWxpZGF0ZUNsaWVu
dCgpOwogI2VuZGlmCkBAIC04NDYsNyArODQ3LDYgQEAgR3N0Rmxvd1JldHVybiBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlOjpuZXdQcmVyb2xsQ2FsbGJhY2soR3N0RWxlbWVudCogc2kK
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpmbHVzaEN1cnJlbnRCdWZm
ZXIoKQogewotICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIkZsdXNoaW5nIHZpZGVv
IHNhbXBsZSIpOwogICAgIGF1dG8gc2FtcGxlTG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVNdXRl
eCk7CiAKICAgICBpZiAobV9zYW1wbGUpIHsKQEAgLTg1OCwxMiArODU4LDE0IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Zmx1c2hDdXJyZW50QnVmZmVyKCkKICAgICB9
CiAKICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0KLSAgICAgICAgW10oVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJQcm94eSYgcHJveHkpCisgICAgICAgIFtzaG91bGRXYWl0ID0gbV9pc1ZpZGVv
RGVjb2RlclZpZGVvNExpbnV4LCBwaXBlbGluZSA9IHBpcGVsaW5lKCldKFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHkmIHByb3h5KQogICAgICAgICB7Ci0gICAgICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihwcm94eS5sb2NrKCkpOworICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChw
aXBlbGluZSwgIkZsdXNoaW5nIHZpZGVvIHNhbXBsZSAlcyIsIHNob3VsZFdhaXQgPyAic3luY2hy
b25vdXNseSIgOiAiIik7CisgICAgICAgICAgICBpZiAoIXNob3VsZFdhaXQpCisgICAgICAgICAg
ICAgICAgcHJveHkubG9jaygpLmxvY2soKTsKIAogICAgICAgICAgICAgaWYgKHByb3h5LmlzQWN0
aXZlKCkpCi0gICAgICAgICAgICAgICAgcHJveHkuZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNl
cnZpbmdUZXh0dXJlKCk7CisgICAgICAgICAgICAgICAgcHJveHkuZHJvcEN1cnJlbnRCdWZmZXJX
aGlsZVByZXNlcnZpbmdUZXh0dXJlKHNob3VsZFdhaXQpOwogICAgICAgICB9OwogCiAjaWYgVVNF
KE5JQ09TSUEpCkBAIC0xMDEwLDcgKzEwMTIsNyBAQCBHc3RFbGVtZW50KiBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpjcmVhdGVHTEFwcFNpbmsoKQogICAgIGdfc2lnbmFsX2Nvbm5l
Y3QoYXBwc2luaywgIm5ldy1wcmVyb2xsIiwgR19DQUxMQkFDSyhuZXdQcmVyb2xsQ2FsbGJhY2sp
LCB0aGlzKTsKIAogICAgIEdSZWZQdHI8R3N0UGFkPiBwYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1l
bnRfZ2V0X3N0YXRpY19wYWQoYXBwc2luaywgInNpbmsiKSk7Ci0gICAgZ3N0X3BhZF9hZGRfcHJv
YmUocGFkLmdldCgpLCBzdGF0aWNfY2FzdDxHc3RQYWRQcm9iZVR5cGU+KEdTVF9QQURfUFJPQkVf
VFlQRV9RVUVSWV9ET1dOU1RSRUFNIHwgR1NUX1BBRF9QUk9CRV9UWVBFX0VWRU5UX0ZMVVNIKSwg
W10gKEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5mbywgIGdwb2ludGVyIHVzZXJEYXRhKSAt
PiBHc3RQYWRQcm9iZVJldHVybiB7CisgICAgZ3N0X3BhZF9hZGRfcHJvYmUocGFkLmdldCgpLCBz
dGF0aWNfY2FzdDxHc3RQYWRQcm9iZVR5cGU+KEdTVF9QQURfUFJPQkVfVFlQRV9QVVNIIHwgR1NU
X1BBRF9QUk9CRV9UWVBFX1FVRVJZX0RPV05TVFJFQU0gfCBHU1RfUEFEX1BST0JFX1RZUEVfRVZF
TlRfRkxVU0gpLCBbXSAoR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCAgZ3BvaW50ZXIg
dXNlckRhdGEpIC0+IEdzdFBhZFByb2JlUmV0dXJuIHsKICAgICAgICAgLy8gSW4gc29tZSBwbGF0
Zm9ybXMgKGUuZy4gT3Blbk1BWCBvbiB0aGUgUmFzcGJlcnJ5IFBpKSB3aGVuIGEgcmVzb2x1dGlv
biBjaGFuZ2Ugb2NjdXJzIHRoZQogICAgICAgICAvLyBwaXBlbGluZSBoYXMgdG8gYmUgZHJhaW5l
ZCBiZWZvcmUgYSBmcmFtZSB3aXRoIHRoZSBuZXcgcmVzb2x1dGlvbiBjYW4gYmUgZGVjb2RlZC4K
ICAgICAgICAgLy8gSW4gdGhpcyBjb250ZXh0LCBpdCdzIGltcG9ydGFudCB0aGF0IHdlIGRvbid0
IGhvbGQgcmVmZXJlbmNlcyB0byBhbnkgcHJldmlvdXMgZnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCmluZGV4IDIwYzI4YzRhMzVjYWYx
ZDQwYjA0ZjE0YWU4MTEzMWJiYmViNjExNzMuLjY4NmExOGJiM2RmYmU0ODA2ZWVlY2M2ZTRmOTBj
NGM2OWVlMmJjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuaApAQCAtMjgyLDYgKzI4Miw4IEBAIHByb3RlY3RlZDoKICAgICBIYXNoU2V0
PHVpbnQzMl90PiBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzOwogICAgIGJvb2wgbV93YWl0aW5n
Rm9yS2V5IHsgZmFsc2UgfTsKICNlbmRpZgorCisgICAgbXV0YWJsZSBib29sIG1faXNWaWRlb0Rl
Y29kZXJWaWRlbzRMaW51eCB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKaW5kZXggNWE3ZjEyNmIxMTM2MjJhZTA4
ZTNkNGZiMWJkYjUwNGYxOGExNGIwYS4uZWJkZDc2N2NjNGQ5MWZmZjQ5Y2I5YTdlMzQ1ZjU5N2E4
NWMzMDk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclBy
b3h5LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCiAjaW5j
bHVkZSA8d3RmL2dsaWIvUnVuTG9vcFNvdXJjZVByaW9yaXR5Lmg+CiAjZW5kaWYKKyNpbmNsdWRl
IDx3dGYvU2NvcGUuaD4KIAogc3RhdGljIGNvbnN0IFNlY29uZHMgcmVsZWFzZVVudXNlZFNlY29u
ZHNUb2xlcmFuY2UgeyAxX3MgfTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHJlbGVhc2VVbnVzZWRC
dWZmZXJzVGltZXJJbnRlcnZhbCA9IHsgNTAwX21zIH07CkBAIC0xMTMsNiArMTE0LDcgQEAgdm9p
ZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OjpwdXNoTmV4dEJ1ZmZlcihzdGQ6OnVu
aXF1ZV9wdHI8VGV4dHVyZU1hcHAKIHsKICAgICBBU1NFUlQobV9sb2NrLmlzSGVsZCgpKTsKICAg
ICBtX3BlbmRpbmdCdWZmZXIgPSBXVEZNb3ZlKG5ld0J1ZmZlcik7CisgICAgbV9idWZmZXJEcm9w
cGVkID0gZmFsc2U7CiAKICAgICBpZiAobV9jb21wb3NpdG9yKQogICAgICAgICBtX2NvbXBvc2l0
b3ItPm9uTmV3QnVmZmVyQXZhaWxhYmxlKCk7CkBAIC0xODcsOSArMTg5LDEwIEBAIHZvaWQgVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6c3dhcEJ1ZmZlcigpCiAgICAgICAgIGFwcGVu
ZFRvVW51c2VkQnVmZmVycyhXVEZNb3ZlKHByZXZCdWZmZXIpKTsKIH0KIAotdm9pZCBUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJlc2Vydmlu
Z1RleHR1cmUoKQordm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpkcm9wQ3Vy
cmVudEJ1ZmZlcldoaWxlUHJlc2VydmluZ1RleHR1cmUoYm9vbCBzaG91bGRXYWl0KQogewotICAg
IEFTU0VSVChtX2xvY2suaXNIZWxkKCkpOworICAgIGlmICghc2hvdWxkV2FpdCkKKyAgICAgICAg
QVNTRVJUKG1fbG9jay5pc0hlbGQoKSk7CiAKICAgICBpZiAobV9wZW5kaW5nQnVmZmVyICYmIG1f
cGVuZGluZ0J1ZmZlci0+aGFzTWFuYWdlZFRleHR1cmUoKSkgewogICAgICAgICBtX3VzZWRCdWZm
ZXJzLmFwcGVuZChXVEZNb3ZlKG1fcGVuZGluZ0J1ZmZlcikpOwpAQCAtMjAwLDkgKzIwMywxNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OmRyb3BDdXJyZW50QnVmZmVy
V2hpbGVQcmVzZXJ2aW5nVGV4dHVyZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY29tcG9z
aXRvclRocmVhZFVwZGF0ZUZ1bmN0aW9uID0KLSAgICAgICAgW3RoaXNdIHsKKyAgICAgICAgW3Ro
aXMsIHNob3VsZFdhaXRdIHsKICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7
CiAKKyAgICAgICAgICAgIGF1dG8gbWF5YmVOb3RpZnlTeW5jaHJvbm91c09wZXJhdGlvbiA9IFdU
Rjo6bWFrZVNjb3BlRXhpdChbdGhpcywgc2hvdWxkV2FpdF0oKSB7CisgICAgICAgICAgICAgICAg
aWYgKHNob3VsZFdhaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIo
bV9jb25kaXRpb25Mb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgbV9idWZmZXJEcm9wcGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKICAgICAgICAgICAgIGlmICghbV9jb21w
b3NpdG9yIHx8ICFtX3RhcmdldExheWVyIHx8ICFtX2N1cnJlbnRCdWZmZXIpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yMTQsNyArMjI1LDE0IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJl
KCkKICAgICAgICAgICAgIGlmIChwcmV2QnVmZmVyLT5oYXNNYW5hZ2VkVGV4dHVyZSgpKQogICAg
ICAgICAgICAgICAgIGFwcGVuZFRvVW51c2VkQnVmZmVycyhXVEZNb3ZlKHByZXZCdWZmZXIpKTsK
ICAgICAgICAgfTsKKyAgICBtX2J1ZmZlckRyb3BwZWQgPSBmYWxzZTsKICAgICBtX2NvbXBvc2l0
b3JUaHJlYWRVcGRhdGVUaW1lci0+c3RhcnRPbmVTaG90KDBfcyk7CisgICAgaWYgKHNob3VsZFdh
aXQpIHsKKyAgICAgICAgTG9ja0hvbGRlciBob2xkZXIobV9jb25kaXRpb25Mb2NrKTsKKyAgICAg
ICAgbV9jb25kaXRpb24ud2FpdChtX2NvbmRpdGlvbkxvY2ssIFt0aGlzXSB7CisgICAgICAgICAg
ICByZXR1cm4gbV9idWZmZXJEcm9wcGVkOworICAgICAgICB9KTsKKyAgICB9CiB9CiAKIGJvb2wg
VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6c2NoZWR1bGVVcGRhdGVPbkNvbXBvc2l0
b3JUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIHVwZGF0ZUZ1bmN0aW9uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgKaW5kZXggNjgzZWM3MWQxYjQzZDY5
YmJhYjRhZmQzYjcwNWYyZTgyNzgzMDI5My4uNjlkN2M1MWJjNTU3MTY4YTU3M2VkZjMxMTQ0YmIy
ZmIwMWFhZjQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQ
cm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQog
CiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMSGVhZGVycy5oIgorI2luY2x1ZGUgPHd0Zi9Db25k
aXRpb24uaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTG9jay5o
PgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC02OCw3ICs2OSw3IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGludmFsaWRhdGUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc3dhcEJ1ZmZlcigpOwotICAgIHZvaWQgZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNl
cnZpbmdUZXh0dXJlKCk7CisgICAgdm9pZCBkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJlc2Vydmlu
Z1RleHR1cmUoYm9vbCBzaG91bGRXYWl0ID0gZmFsc2UpOwogCiAgICAgYm9vbCBzY2hlZHVsZVVw
ZGF0ZU9uQ29tcG9zaXRvclRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpOwogCkBAIC04NSw2ICs4
NiwxMCBAQCBwcml2YXRlOgogCiAgICAgTG9jayBtX2xvY2s7CiAKKyAgICBMb2NrIG1fY29uZGl0
aW9uTG9jazsKKyAgICBDb25kaXRpb24gbV9jb25kaXRpb247CisgICAgYm9vbCBtX2J1ZmZlckRy
b3BwZWQgeyBmYWxzZSB9OworCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4+IG1fdXNlZEJ1ZmZlcnM7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFJ1bkxvb3A6OlRpbWVyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+PiBtX3Jl
bGVhc2VVbnVzZWRCdWZmZXJzVGltZXI7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364367</attachid>
            <date>2019-03-12 02:04:51 -0700</date>
            <delta_ts>2019-03-12 03:16:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195453-20190312090449.patch</filename>
            <type>text/plain</type>
            <size>11798</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBiYjMyNmNmY2U5ZTRh
NTU2ZTNiYjlmYjFhMzg5ZDYxMjdhMGMzOS4uYWFjMGI1MzEyMDA1ODM0Yjc3OTNhZTRhODRiOTY1
NGMxNjM3MmEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTAzLTA4ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVt2NGwyXSBTeW5jaHJvbm91cyB2aWRlbyB0ZXh0dXJlIGZsdXNoaW5nIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQ1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB2NGwyIHZpZGVv
IGRlY29kZXIgY3VycmVudGx5IHJlcXVpcmVzIHRoYXQgZG93bnN0cmVhbSB1c2VycyBvZgorICAg
ICAgICB0aGUgZ3JhcGhpY3MgcmVzb3VyY2VzIGNvbXBsZXRlIGFueSBwZW5kaW5nIGRyYXcgY2Fs
bCBhbmQgcmVsZWFzZQorICAgICAgICByZXNvdXJjZXMgYmVmb3JlIHJldHVybmluZyBmcm9tIHRo
ZSBEUkFJTiBxdWVyeS4KKworICAgICAgICBUbyBhY2NvbXBsaXNoIHRoaXMgdGhlIHBsYXllciBt
b25pdG9ycyB0aGUgcGlwZWxpbmUgYW5kIHdoZW5ldmVyIGEKKyAgICAgICAgdjRsMiBkZWNvZGVy
IGlzIGFkZGVkLCBzeW5jaHJvbm91cyB2aWRlbyB0ZXh0dXJlIGZsdXNoaW5nIHN1cHBvcnQKKyAg
ICAgICAgaXMgZW5hYmxlZC4gQWRkaXRpb25hbGx5IGFuZCBmb3IgYWxsIGRlY29kZXIgY29uZmln
dXJhdGlvbnMsIGEKKyAgICAgICAgZmx1c2ggaXMgcGVyZm9ybWVkIGJlZm9yZSBkaXNwb3Npbmcg
b2YgdGhlIHBsYXllci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5YmluRGVlcEVsZW1lbnRBZGRlZENhbGxiYWNrKToK
KyAgICAgICAgTW9uaXRvciBlbGVtZW50cyBhZGRlZCB0byB0aGUgZGVjb2RlYmluIGJpbi4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGVjb2RlYmluRWxl
bWVudEFkZGVkKTogU2V0CisgICAgICAgIGEgZmxhZyBpZiBhIHY0bDIgZGVjb2RlciB3YXMgYWRk
ZWQgaW4gZGVjb2RlYmluLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKTogQ29ubmVjdAorICAgICAgICB0byB0aGUgZGVlcC1l
bGVtZW50LWFkZGVkIHNpZ25hbCBzbyBhcyB0byBtb25pdG9yIHBpcGVsaW5lCisgICAgICAgIHRv
cG9sb2d5IHVwZGF0ZXMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlKToKKyAgICAgICAgRmx1c2ggdmlkZW8gdGV4dHVyZSBiZWZvcmUg
ZGlzcG9zaW5nIG9mIHRoZSBwbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpmbHVzaEN1cnJlbnRCdWZmZXIpOgorICAgICAgICBTeW5jaHJv
bm91c2x5IGZsdXNoIGlmIHRoZSBwaXBlbGluZSBjb250YWlucyBhIHY0bDIgZGVjb2Rlci4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNyZWF0ZUdM
QXBwU2luayk6IE1vbml0b3IgcHVzaCBldmVudHMgb25seS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
UHJveHk6OnB1c2hOZXh0QnVmZmVyKTogTmV3CisgICAgICAgIGJvb2xlYW4gZmxhZyB1c2VkIG1v
c3RseSB0byB0cmlnZ2VyIHN5bmNocm9ub3VzIGZsdXNoIGNvbmRpdGlvbnMuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpkcm9wQ3VycmVudEJ1ZmZl
cldoaWxlUHJlc2VydmluZ1RleHR1cmUpOgorICAgICAgICBPcHRpb25hbGx5IGRyb3AgdGhlIGN1
cnJlbnQgYnVmZmVyIGluIGEgc3luY2hyb25vdXMgbWFubmVyLiBCeQorICAgICAgICBkZWZhdWx0
IHRoZSBtZXRob2Qga2VlcHMgb3BlcmF0aW5nIGFzeW5jaHJvbm91c2x5LgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Lmg6
CisKIDIwMTktMDMtMTIgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbRU1FXSBnZW5lcmF0ZVJlcXVlc3Qgd2FzIG5vdCB1c2luZyB0aGUg
c2FuaXRpemVkIGluaXQgZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAppbmRleCBmOGYwMGYxNjhiMGFjM2Q4MDc5NGJiYjVlZTVlODczYmM2ZjRl
YTNhLi42MjM2NjNmYjk4Mzc1MjkyMzlmNjZjYjdhMTkyYjcwNzhhYjEzYWRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjQ0NSw2ICsy
NDQ1LDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5
QmluKGNvbnN0IGdjaGFyKiBwbGF5YmluTmFtZSwgY29uCiAKICAgICBnX29iamVjdF9zZXQobV9w
aXBlbGluZS5nZXQoKSwgIm11dGUiLCBtX3BsYXllci0+bXV0ZWQoKSwgbnVsbHB0cik7CiAKKyAg
ICBnX3NpZ25hbF9jb25uZWN0KEdTVF9CSU5fQ0FTVChtX3BpcGVsaW5lLmdldCgpKSwgImRlZXAt
ZWxlbWVudC1hZGRlZCIsIEdfQ0FMTEJBQ0soK1tdKEdzdEJpbiosIEdzdEJpbiogc3ViQmluLCBH
c3RFbGVtZW50KiBlbGVtZW50LCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikg
eworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGJpbk5hbWUoZ3N0X2VsZW1lbnRfZ2V0X25hbWUo
R1NUX0VMRU1FTlRfQ0FTVChzdWJCaW4pKSk7CisgICAgICAgIGlmICghZ19zdHJfaGFzX3ByZWZp
eChiaW5OYW1lLmdldCgpLCAiZGVjb2RlYmluIikpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBlbGVtZW50TmFtZShnc3RfZWxlbWVudF9nZXRfbmFtZShl
bGVtZW50KSk7CisgICAgICAgIHBsYXllci0+bV9pc1ZpZGVvRGVjb2RlclZpZGVvNExpbnV4ID0g
Z19zdHJfaGFzX3ByZWZpeChlbGVtZW50TmFtZS5nZXQoKSwgInY0bDIiKTsKKyAgICB9KSwgdGhp
cyk7CisKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9waXBlbGluZS5nZXQoKSwgInNv
dXJjZS1zZXR1cCIsIEdfQ0FMTEJBQ0soc291cmNlU2V0dXBDYWxsYmFjayksIHRoaXMpOwogICAg
IGlmIChtX2lzTGVnYWN5UGxheWJpbikgewogICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBw
ZWQobV9waXBlbGluZS5nZXQoKSwgInZpZGVvLWNoYW5nZWQiLCBHX0NBTExCQUNLKHZpZGVvQ2hh
bmdlZENhbGxiYWNrKSwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggYWQ2MjAwYzQ1NjM1YWMyMTljZGE3ODYxYjQz
NWI0YzU3YTQ0MDMxOS4uMGE5ZTM4MzAyODVlNDE5MDkxYmRlOTJlM2IyNzBmYzFjOGQ5ZGJmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmNwcApAQCAtMjY5LDYgKzI2OSwxMCBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxheWVyKiBwbAogCiBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZSgpCiB7CisjaWYgVVNFKEdTVFJFQU1FUl9HTCkKKyAgICBpZiAobV9pc1ZpZGVvRGVjb2Rl
clZpZGVvNExpbnV4KQorICAgICAgICBmbHVzaEN1cnJlbnRCdWZmZXIoKTsKKyNlbmRpZgogI2lm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgVVNFKE5JQ09TSUEpCiAgICAgZG93bmNhc3Q8Tmlj
b3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1fbmljb3NpYUxheWVyLT5pbXBs
KCkpLmludmFsaWRhdGVDbGllbnQoKTsKICNlbmRpZgpAQCAtODQ2LDcgKzg1MCw2IEBAIEdzdEZs
b3dSZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bmV3UHJlcm9sbENhbGxi
YWNrKEdzdEVsZW1lbnQqIHNpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZTo6Zmx1c2hDdXJyZW50QnVmZmVyKCkKIHsKLSAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5l
KCksICJGbHVzaGluZyB2aWRlbyBzYW1wbGUiKTsKICAgICBhdXRvIHNhbXBsZUxvY2tlciA9IGhv
bGRMb2NrKG1fc2FtcGxlTXV0ZXgpOwogCiAgICAgaWYgKG1fc2FtcGxlKSB7CkBAIC04NTgsMTIg
Kzg2MSwxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmZsdXNoQ3Vy
cmVudEJ1ZmZlcigpCiAgICAgfQogCiAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9Ci0gICAgICAg
IFtdKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkmIHByb3h5KQorICAgICAgICBbc2hv
dWxkV2FpdCA9IG1faXNWaWRlb0RlY29kZXJWaWRlbzRMaW51eCwgcGlwZWxpbmUgPSBwaXBlbGlu
ZSgpXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAgewot
ICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgICAg
IEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUsICJGbHVzaGluZyB2aWRlbyBzYW1wbGUgJXMiLCBz
aG91bGRXYWl0ID8gInN5bmNocm9ub3VzbHkiIDogIiIpOworICAgICAgICAgICAgaWYgKCFzaG91
bGRXYWl0KQorICAgICAgICAgICAgICAgIHByb3h5LmxvY2soKS5sb2NrKCk7CiAKICAgICAgICAg
ICAgIGlmIChwcm94eS5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgICAgIHByb3h5LmRyb3BDdXJy
ZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVyZSgpOworICAgICAgICAgICAgICAgIHByb3h5
LmRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVyZShzaG91bGRXYWl0KTsKICAg
ICAgICAgfTsKIAogI2lmIFVTRShOSUNPU0lBKQpAQCAtMTAxMCw3ICsxMDE1LDcgQEAgR3N0RWxl
bWVudCogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Y3JlYXRlR0xBcHBTaW5rKCkK
ICAgICBnX3NpZ25hbF9jb25uZWN0KGFwcHNpbmssICJuZXctcHJlcm9sbCIsIEdfQ0FMTEJBQ0so
bmV3UHJlcm9sbENhbGxiYWNrKSwgdGhpcyk7CiAKICAgICBHUmVmUHRyPEdzdFBhZD4gcGFkID0g
YWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKGFwcHNpbmssICJzaW5rIikpOwot
ICAgIGdzdF9wYWRfYWRkX3Byb2JlKHBhZC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3N0UGFkUHJvYmVU
eXBlPihHU1RfUEFEX1BST0JFX1RZUEVfUVVFUllfRE9XTlNUUkVBTSB8IEdTVF9QQURfUFJPQkVf
VFlQRV9FVkVOVF9GTFVTSCksIFtdIChHc3RQYWQqLCBHc3RQYWRQcm9iZUluZm8qIGluZm8sICBn
cG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4geworICAgIGdzdF9wYWRfYWRk
X3Byb2JlKHBhZC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3N0UGFkUHJvYmVUeXBlPihHU1RfUEFEX1BS
T0JFX1RZUEVfUFVTSCB8IEdTVF9QQURfUFJPQkVfVFlQRV9RVUVSWV9ET1dOU1RSRUFNIHwgR1NU
X1BBRF9QUk9CRV9UWVBFX0VWRU5UX0ZMVVNIKSwgW10gKEdzdFBhZCosIEdzdFBhZFByb2JlSW5m
byogaW5mbywgIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBHc3RQYWRQcm9iZVJldHVybiB7CiAgICAg
ICAgIC8vIEluIHNvbWUgcGxhdGZvcm1zIChlLmcuIE9wZW5NQVggb24gdGhlIFJhc3BiZXJyeSBQ
aSkgd2hlbiBhIHJlc29sdXRpb24gY2hhbmdlIG9jY3VycyB0aGUKICAgICAgICAgLy8gcGlwZWxp
bmUgaGFzIHRvIGJlIGRyYWluZWQgYmVmb3JlIGEgZnJhbWUgd2l0aCB0aGUgbmV3IHJlc29sdXRp
b24gY2FuIGJlIGRlY29kZWQuCiAgICAgICAgIC8vIEluIHRoaXMgY29udGV4dCwgaXQncyBpbXBv
cnRhbnQgdGhhdCB3ZSBkb24ndCBob2xkIHJlZmVyZW5jZXMgdG8gYW55IHByZXZpb3VzIGZyYW1l
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaApp
bmRleCAyMGMyOGM0YTM1Y2FmMWQ0MGIwNGYxNGFlODExMzFiYmJlYjYxMTczLi42ODZhMThiYjNk
ZmJlNDgwNmVlZWNjNmU0ZjkwYzRjNjllZTJiYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTI4Miw2ICsyODIsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgSGFzaFNldDx1aW50MzJfdD4gbV9oYW5kbGVkUHJvdGVjdGlvbkV2ZW50czsK
ICAgICBib29sIG1fd2FpdGluZ0ZvcktleSB7IGZhbHNlIH07CiAjZW5kaWYKKworICAgIG11dGFi
bGUgYm9vbCBtX2lzVmlkZW9EZWNvZGVyVmlkZW80TGludXggeyBmYWxzZSB9OwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCmluZGV4
IDVhN2YxMjZiMTEzNjIyYWUwOGUzZDRmYjFiZGI1MDRmMThhMTRiMGEuLmM3MTRmNmQ3OGMxY2Yx
YTYxZDRkZmY2YjQyMDUyMWIwMmVjZDdjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpZiBVU0UoR0xJ
Ql9FVkVOVF9MT09QKQogI2luY2x1ZGUgPHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5o
PgogI2VuZGlmCisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIHN0YXRpYyBjb25zdCBTZWNvbmRz
IHJlbGVhc2VVbnVzZWRTZWNvbmRzVG9sZXJhbmNlIHsgMV9zIH07CiBzdGF0aWMgY29uc3QgU2Vj
b25kcyByZWxlYXNlVW51c2VkQnVmZmVyc1RpbWVySW50ZXJ2YWwgPSB7IDUwMF9tcyB9OwpAQCAt
MTEzLDYgKzExNCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6cHVz
aE5leHRCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwCiB7CiAgICAgQVNTRVJUKG1f
bG9jay5pc0hlbGQoKSk7CiAgICAgbV9wZW5kaW5nQnVmZmVyID0gV1RGTW92ZShuZXdCdWZmZXIp
OworICAgIG1fd2FzQnVmZmVyRHJvcHBlZCA9IGZhbHNlOwogCiAgICAgaWYgKG1fY29tcG9zaXRv
cikKICAgICAgICAgbV9jb21wb3NpdG9yLT5vbk5ld0J1ZmZlckF2YWlsYWJsZSgpOwpAQCAtMTg3
LDkgKzE4OSwxMCBAQCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnN3YXBC
dWZmZXIoKQogICAgICAgICBhcHBlbmRUb1VudXNlZEJ1ZmZlcnMoV1RGTW92ZShwcmV2QnVmZmVy
KSk7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJl
bnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJlKCkKK3ZvaWQgVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJlKGJv
b2wgc2hvdWxkV2FpdCkKIHsKLSAgICBBU1NFUlQobV9sb2NrLmlzSGVsZCgpKTsKKyAgICBpZiAo
IXNob3VsZFdhaXQpCisgICAgICAgIEFTU0VSVChtX2xvY2suaXNIZWxkKCkpOwogCiAgICAgaWYg
KG1fcGVuZGluZ0J1ZmZlciAmJiBtX3BlbmRpbmdCdWZmZXItPmhhc01hbmFnZWRUZXh0dXJlKCkp
IHsKICAgICAgICAgbV91c2VkQnVmZmVycy5hcHBlbmQoV1RGTW92ZShtX3BlbmRpbmdCdWZmZXIp
KTsKQEAgLTIwMCw5ICsyMDMsMTcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclBy
b3h5Ojpkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJlc2VydmluZ1RleHR1cmUoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBtX2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVGdW5jdGlvbiA9Ci0gICAgICAg
IFt0aGlzXSB7CisgICAgICAgIFt0aGlzLCBzaG91bGRXYWl0XSB7CiAgICAgICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2xvY2spOwogCisgICAgICAgICAgICBhdXRvIG1heWJlTm90aWZ5U3lu
Y2hyb25vdXNPcGVyYXRpb24gPSBXVEY6Om1ha2VTY29wZUV4aXQoW3RoaXMsIHNob3VsZFdhaXRd
KCkgeworICAgICAgICAgICAgICAgIGlmIChzaG91bGRXYWl0KSB7CisgICAgICAgICAgICAgICAg
ICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fd2FzQnVmZmVyRHJvcHBlZExvY2spOworICAgICAgICAg
ICAgICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAg
ICBtX3dhc0J1ZmZlckRyb3BwZWRDb25kaXRpb24ubm90aWZ5QWxsKCk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfSk7CisKICAgICAgICAgICAgIGlmICghbV9jb21wb3NpdG9yIHx8
ICFtX3RhcmdldExheWVyIHx8ICFtX2N1cnJlbnRCdWZmZXIpCiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogCkBAIC0yMTQsNyArMjI1LDE5IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJlKCkKICAgICAg
ICAgICAgIGlmIChwcmV2QnVmZmVyLT5oYXNNYW5hZ2VkVGV4dHVyZSgpKQogICAgICAgICAgICAg
ICAgIGFwcGVuZFRvVW51c2VkQnVmZmVycyhXVEZNb3ZlKHByZXZCdWZmZXIpKTsKICAgICAgICAg
fTsKKworICAgIGlmIChzaG91bGRXYWl0KSB7CisgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKG1f
d2FzQnVmZmVyRHJvcHBlZExvY2spOworICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWQgPSBmYWxz
ZTsKKyAgICB9CisKICAgICBtX2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVUaW1lci0+c3RhcnRPbmVT
aG90KDBfcyk7CisgICAgaWYgKHNob3VsZFdhaXQpIHsKKyAgICAgICAgTG9ja0hvbGRlciBob2xk
ZXIobV93YXNCdWZmZXJEcm9wcGVkTG9jayk7CisgICAgICAgIG1fd2FzQnVmZmVyRHJvcHBlZENv
bmRpdGlvbi53YWl0KG1fd2FzQnVmZmVyRHJvcHBlZExvY2ssIFt0aGlzXSB7CisgICAgICAgICAg
ICByZXR1cm4gbV93YXNCdWZmZXJEcm9wcGVkOworICAgICAgICB9KTsKKyAgICB9CiB9CiAKIGJv
b2wgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6c2NoZWR1bGVVcGRhdGVPbkNvbXBv
c2l0b3JUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIHVwZGF0ZUZ1bmN0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgKaW5kZXggNjgzZWM3MWQxYjQz
ZDY5YmJhYjRhZmQzYjcwNWYyZTgyNzgzMDI5My4uZDM4ZTZjMjFmNjFmYjQwNzk1Yzk2NTUzMzRk
MWYwYzM1NjQzZGFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KQogCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMSGVhZGVycy5oIgorI2luY2x1ZGUgPHd0Zi9D
b25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC02OCw3ICs2OSw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGludmFsaWRhdGUoKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc3dhcEJ1ZmZlcigpOwotICAgIHZvaWQgZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVBy
ZXNlcnZpbmdUZXh0dXJlKCk7CisgICAgdm9pZCBkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJlc2Vy
dmluZ1RleHR1cmUoYm9vbCBzaG91bGRXYWl0ID0gZmFsc2UpOwogCiAgICAgYm9vbCBzY2hlZHVs
ZVVwZGF0ZU9uQ29tcG9zaXRvclRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpOwogCkBAIC04NSw2
ICs4NiwxMCBAQCBwcml2YXRlOgogCiAgICAgTG9jayBtX2xvY2s7CiAKKyAgICBMb2NrIG1fd2Fz
QnVmZmVyRHJvcHBlZExvY2s7CisgICAgQ29uZGl0aW9uIG1fd2FzQnVmZmVyRHJvcHBlZENvbmRp
dGlvbjsKKyAgICBib29sIG1fd2FzQnVmZmVyRHJvcHBlZCB7IGZhbHNlIH07CisKICAgICBWZWN0
b3I8c3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPj4gbV91
c2VkQnVmZmVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGltZXI8VGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eT4+IG1fcmVsZWFzZVVudXNlZEJ1ZmZlcnNUaW1lcjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364374</attachid>
            <date>2019-03-12 03:17:04 -0700</date>
            <delta_ts>2019-03-12 06:48:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195453-20190312101703.patch</filename>
            <type>text/plain</type>
            <size>11801</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBiYjMyNmNmY2U5ZTRh
NTU2ZTNiYjlmYjFhMzg5ZDYxMjdhMGMzOS4uYWFjMGI1MzEyMDA1ODM0Yjc3OTNhZTRhODRiOTY1
NGMxNjM3MmEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTAzLTA4ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVt2NGwyXSBTeW5jaHJvbm91cyB2aWRlbyB0ZXh0dXJlIGZsdXNoaW5nIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQ1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB2NGwyIHZpZGVv
IGRlY29kZXIgY3VycmVudGx5IHJlcXVpcmVzIHRoYXQgZG93bnN0cmVhbSB1c2VycyBvZgorICAg
ICAgICB0aGUgZ3JhcGhpY3MgcmVzb3VyY2VzIGNvbXBsZXRlIGFueSBwZW5kaW5nIGRyYXcgY2Fs
bCBhbmQgcmVsZWFzZQorICAgICAgICByZXNvdXJjZXMgYmVmb3JlIHJldHVybmluZyBmcm9tIHRo
ZSBEUkFJTiBxdWVyeS4KKworICAgICAgICBUbyBhY2NvbXBsaXNoIHRoaXMgdGhlIHBsYXllciBt
b25pdG9ycyB0aGUgcGlwZWxpbmUgYW5kIHdoZW5ldmVyIGEKKyAgICAgICAgdjRsMiBkZWNvZGVy
IGlzIGFkZGVkLCBzeW5jaHJvbm91cyB2aWRlbyB0ZXh0dXJlIGZsdXNoaW5nIHN1cHBvcnQKKyAg
ICAgICAgaXMgZW5hYmxlZC4gQWRkaXRpb25hbGx5IGFuZCBmb3IgYWxsIGRlY29kZXIgY29uZmln
dXJhdGlvbnMsIGEKKyAgICAgICAgZmx1c2ggaXMgcGVyZm9ybWVkIGJlZm9yZSBkaXNwb3Npbmcg
b2YgdGhlIHBsYXllci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwbGF5YmluRGVlcEVsZW1lbnRBZGRlZENhbGxiYWNrKToK
KyAgICAgICAgTW9uaXRvciBlbGVtZW50cyBhZGRlZCB0byB0aGUgZGVjb2RlYmluIGJpbi4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGVjb2RlYmluRWxl
bWVudEFkZGVkKTogU2V0CisgICAgICAgIGEgZmxhZyBpZiBhIHY0bDIgZGVjb2RlciB3YXMgYWRk
ZWQgaW4gZGVjb2RlYmluLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKTogQ29ubmVjdAorICAgICAgICB0byB0aGUgZGVlcC1l
bGVtZW50LWFkZGVkIHNpZ25hbCBzbyBhcyB0byBtb25pdG9yIHBpcGVsaW5lCisgICAgICAgIHRv
cG9sb2d5IHVwZGF0ZXMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlKToKKyAgICAgICAgRmx1c2ggdmlkZW8gdGV4dHVyZSBiZWZvcmUg
ZGlzcG9zaW5nIG9mIHRoZSBwbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpmbHVzaEN1cnJlbnRCdWZmZXIpOgorICAgICAgICBTeW5jaHJv
bm91c2x5IGZsdXNoIGlmIHRoZSBwaXBlbGluZSBjb250YWlucyBhIHY0bDIgZGVjb2Rlci4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNyZWF0ZUdM
QXBwU2luayk6IE1vbml0b3IgcHVzaCBldmVudHMgb25seS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
UHJveHk6OnB1c2hOZXh0QnVmZmVyKTogTmV3CisgICAgICAgIGJvb2xlYW4gZmxhZyB1c2VkIG1v
c3RseSB0byB0cmlnZ2VyIHN5bmNocm9ub3VzIGZsdXNoIGNvbmRpdGlvbnMuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Ojpkcm9wQ3VycmVudEJ1ZmZl
cldoaWxlUHJlc2VydmluZ1RleHR1cmUpOgorICAgICAgICBPcHRpb25hbGx5IGRyb3AgdGhlIGN1
cnJlbnQgYnVmZmVyIGluIGEgc3luY2hyb25vdXMgbWFubmVyLiBCeQorICAgICAgICBkZWZhdWx0
IHRoZSBtZXRob2Qga2VlcHMgb3BlcmF0aW5nIGFzeW5jaHJvbm91c2x5LgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5Lmg6
CisKIDIwMTktMDMtMTIgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbRU1FXSBnZW5lcmF0ZVJlcXVlc3Qgd2FzIG5vdCB1c2luZyB0aGUg
c2FuaXRpemVkIGluaXQgZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAppbmRleCBmOGYwMGYxNjhiMGFjM2Q4MDc5NGJiYjVlZTVlODczYmM2ZjRl
YTNhLi42MjM2NjNmYjk4Mzc1MjkyMzlmNjZjYjdhMTkyYjcwNzhhYjEzYWRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjQ0NSw2ICsy
NDQ1LDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5
QmluKGNvbnN0IGdjaGFyKiBwbGF5YmluTmFtZSwgY29uCiAKICAgICBnX29iamVjdF9zZXQobV9w
aXBlbGluZS5nZXQoKSwgIm11dGUiLCBtX3BsYXllci0+bXV0ZWQoKSwgbnVsbHB0cik7CiAKKyAg
ICBnX3NpZ25hbF9jb25uZWN0KEdTVF9CSU5fQ0FTVChtX3BpcGVsaW5lLmdldCgpKSwgImRlZXAt
ZWxlbWVudC1hZGRlZCIsIEdfQ0FMTEJBQ0soK1tdKEdzdEJpbiosIEdzdEJpbiogc3ViQmluLCBH
c3RFbGVtZW50KiBlbGVtZW50LCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikg
eworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGJpbk5hbWUoZ3N0X2VsZW1lbnRfZ2V0X25hbWUo
R1NUX0VMRU1FTlRfQ0FTVChzdWJCaW4pKSk7CisgICAgICAgIGlmICghZ19zdHJfaGFzX3ByZWZp
eChiaW5OYW1lLmdldCgpLCAiZGVjb2RlYmluIikpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBlbGVtZW50TmFtZShnc3RfZWxlbWVudF9nZXRfbmFtZShl
bGVtZW50KSk7CisgICAgICAgIHBsYXllci0+bV9pc1ZpZGVvRGVjb2RlclZpZGVvNExpbnV4ID0g
Z19zdHJfaGFzX3ByZWZpeChlbGVtZW50TmFtZS5nZXQoKSwgInY0bDIiKTsKKyAgICB9KSwgdGhp
cyk7CisKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9waXBlbGluZS5nZXQoKSwgInNv
dXJjZS1zZXR1cCIsIEdfQ0FMTEJBQ0soc291cmNlU2V0dXBDYWxsYmFjayksIHRoaXMpOwogICAg
IGlmIChtX2lzTGVnYWN5UGxheWJpbikgewogICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBw
ZWQobV9waXBlbGluZS5nZXQoKSwgInZpZGVvLWNoYW5nZWQiLCBHX0NBTExCQUNLKHZpZGVvQ2hh
bmdlZENhbGxiYWNrKSwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggYWQ2MjAwYzQ1NjM1YWMyMTljZGE3ODYxYjQz
NWI0YzU3YTQ0MDMxOS4uNTExZDZhY2YxYzJhMjNiMTgxYmU5YThjMmM1NmY1ZmIzOWIyYzM0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmNwcApAQCAtMjY5LDYgKzI2OSwxMCBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKE1lZGlhUGxheWVyKiBwbAogCiBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZSgpCiB7CisjaWYgVVNFKEdTVFJFQU1FUl9HTCkKKyAgICBpZiAobV9pc1ZpZGVvRGVjb2Rl
clZpZGVvNExpbnV4KQorICAgICAgICBmbHVzaEN1cnJlbnRCdWZmZXIoKTsKKyNlbmRpZgogI2lm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgVVNFKE5JQ09TSUEpCiAgICAgZG93bmNhc3Q8Tmlj
b3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1fbmljb3NpYUxheWVyLT5pbXBs
KCkpLmludmFsaWRhdGVDbGllbnQoKTsKICNlbmRpZgpAQCAtODQ2LDcgKzg1MCw2IEBAIEdzdEZs
b3dSZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bmV3UHJlcm9sbENhbGxi
YWNrKEdzdEVsZW1lbnQqIHNpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZTo6Zmx1c2hDdXJyZW50QnVmZmVyKCkKIHsKLSAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5l
KCksICJGbHVzaGluZyB2aWRlbyBzYW1wbGUiKTsKICAgICBhdXRvIHNhbXBsZUxvY2tlciA9IGhv
bGRMb2NrKG1fc2FtcGxlTXV0ZXgpOwogCiAgICAgaWYgKG1fc2FtcGxlKSB7CkBAIC04NTgsMTIg
Kzg2MSwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmZsdXNoQ3Vy
cmVudEJ1ZmZlcigpCiAgICAgfQogCiAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9Ci0gICAgICAg
IFtdKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkmIHByb3h5KQorICAgICAgICBbc2hv
dWxkV2FpdCA9IG1faXNWaWRlb0RlY29kZXJWaWRlbzRMaW51eCwgcGlwZWxpbmUgPSBwaXBlbGlu
ZSgpXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKICAgICAgICAgewot
ICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgICAg
IEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUsICJGbHVzaGluZyB2aWRlbyBzYW1wbGUgJXMiLCBz
aG91bGRXYWl0ID8gInN5bmNocm9ub3VzbHkiIDogIiIpOworICAgICAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIoIXNob3VsZFdhaXQgPyAmcHJveHkubG9jaygpIDogbnVsbHB0cik7CiAKICAgICAg
ICAgICAgIGlmIChwcm94eS5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgICAgIHByb3h5LmRyb3BD
dXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVyZSgpOworICAgICAgICAgICAgICAgIHBy
b3h5LmRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVyZShzaG91bGRXYWl0KTsK
ICAgICAgICAgfTsKIAogI2lmIFVTRShOSUNPU0lBKQpAQCAtMTAxMCw3ICsxMDE0LDcgQEAgR3N0
RWxlbWVudCogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Y3JlYXRlR0xBcHBTaW5r
KCkKICAgICBnX3NpZ25hbF9jb25uZWN0KGFwcHNpbmssICJuZXctcHJlcm9sbCIsIEdfQ0FMTEJB
Q0sobmV3UHJlcm9sbENhbGxiYWNrKSwgdGhpcyk7CiAKICAgICBHUmVmUHRyPEdzdFBhZD4gcGFk
ID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKGFwcHNpbmssICJzaW5rIikp
OwotICAgIGdzdF9wYWRfYWRkX3Byb2JlKHBhZC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3N0UGFkUHJv
YmVUeXBlPihHU1RfUEFEX1BST0JFX1RZUEVfUVVFUllfRE9XTlNUUkVBTSB8IEdTVF9QQURfUFJP
QkVfVFlQRV9FVkVOVF9GTFVTSCksIFtdIChHc3RQYWQqLCBHc3RQYWRQcm9iZUluZm8qIGluZm8s
ICBncG9pbnRlciB1c2VyRGF0YSkgLT4gR3N0UGFkUHJvYmVSZXR1cm4geworICAgIGdzdF9wYWRf
YWRkX3Byb2JlKHBhZC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3N0UGFkUHJvYmVUeXBlPihHU1RfUEFE
X1BST0JFX1RZUEVfUFVTSCB8IEdTVF9QQURfUFJPQkVfVFlQRV9RVUVSWV9ET1dOU1RSRUFNIHwg
R1NUX1BBRF9QUk9CRV9UWVBFX0VWRU5UX0ZMVVNIKSwgW10gKEdzdFBhZCosIEdzdFBhZFByb2Jl
SW5mbyogaW5mbywgIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBHc3RQYWRQcm9iZVJldHVybiB7CiAg
ICAgICAgIC8vIEluIHNvbWUgcGxhdGZvcm1zIChlLmcuIE9wZW5NQVggb24gdGhlIFJhc3BiZXJy
eSBQaSkgd2hlbiBhIHJlc29sdXRpb24gY2hhbmdlIG9jY3VycyB0aGUKICAgICAgICAgLy8gcGlw
ZWxpbmUgaGFzIHRvIGJlIGRyYWluZWQgYmVmb3JlIGEgZnJhbWUgd2l0aCB0aGUgbmV3IHJlc29s
dXRpb24gY2FuIGJlIGRlY29kZWQuCiAgICAgICAgIC8vIEluIHRoaXMgY29udGV4dCwgaXQncyBp
bXBvcnRhbnQgdGhhdCB3ZSBkb24ndCBob2xkIHJlZmVyZW5jZXMgdG8gYW55IHByZXZpb3VzIGZy
YW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uu
aAppbmRleCAyMGMyOGM0YTM1Y2FmMWQ0MGIwNGYxNGFlODExMzFiYmJlYjYxMTczLi42ODZhMThi
YjNkZmJlNDgwNmVlZWNjNmU0ZjkwYzRjNjllZTJiYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTI4Miw2ICsyODIsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgSGFzaFNldDx1aW50MzJfdD4gbV9oYW5kbGVkUHJvdGVjdGlvbkV2ZW50
czsKICAgICBib29sIG1fd2FpdGluZ0ZvcktleSB7IGZhbHNlIH07CiAjZW5kaWYKKworICAgIG11
dGFibGUgYm9vbCBtX2lzVmlkZW9EZWNvZGVyVmlkZW80TGludXggeyBmYWxzZSB9OwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuY3BwCmlu
ZGV4IDVhN2YxMjZiMTEzNjIyYWUwOGUzZDRmYjFiZGI1MDRmMThhMTRiMGEuLmM3MTRmNmQ3OGMx
Y2YxYTYxZDRkZmY2YjQyMDUyMWIwMmVjZDdjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpZiBVU0Uo
R0xJQl9FVkVOVF9MT09QKQogI2luY2x1ZGUgPHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0
eS5oPgogI2VuZGlmCisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIHN0YXRpYyBjb25zdCBTZWNv
bmRzIHJlbGVhc2VVbnVzZWRTZWNvbmRzVG9sZXJhbmNlIHsgMV9zIH07CiBzdGF0aWMgY29uc3Qg
U2Vjb25kcyByZWxlYXNlVW51c2VkQnVmZmVyc1RpbWVySW50ZXJ2YWwgPSB7IDUwMF9tcyB9OwpA
QCAtMTEzLDYgKzExNCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6
cHVzaE5leHRCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwCiB7CiAgICAgQVNTRVJU
KG1fbG9jay5pc0hlbGQoKSk7CiAgICAgbV9wZW5kaW5nQnVmZmVyID0gV1RGTW92ZShuZXdCdWZm
ZXIpOworICAgIG1fd2FzQnVmZmVyRHJvcHBlZCA9IGZhbHNlOwogCiAgICAgaWYgKG1fY29tcG9z
aXRvcikKICAgICAgICAgbV9jb21wb3NpdG9yLT5vbk5ld0J1ZmZlckF2YWlsYWJsZSgpOwpAQCAt
MTg3LDkgKzE4OSwxMCBAQCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk6OnN3
YXBCdWZmZXIoKQogICAgICAgICBhcHBlbmRUb1VudXNlZEJ1ZmZlcnMoV1RGTW92ZShwcmV2QnVm
ZmVyKSk7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1
cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJlKCkKK3ZvaWQgVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJl
KGJvb2wgc2hvdWxkV2FpdCkKIHsKLSAgICBBU1NFUlQobV9sb2NrLmlzSGVsZCgpKTsKKyAgICBp
ZiAoIXNob3VsZFdhaXQpCisgICAgICAgIEFTU0VSVChtX2xvY2suaXNIZWxkKCkpOwogCiAgICAg
aWYgKG1fcGVuZGluZ0J1ZmZlciAmJiBtX3BlbmRpbmdCdWZmZXItPmhhc01hbmFnZWRUZXh0dXJl
KCkpIHsKICAgICAgICAgbV91c2VkQnVmZmVycy5hcHBlbmQoV1RGTW92ZShtX3BlbmRpbmdCdWZm
ZXIpKTsKQEAgLTIwMCw5ICsyMDMsMTcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
clByb3h5Ojpkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJlc2VydmluZ1RleHR1cmUoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVGdW5jdGlvbiA9Ci0gICAg
ICAgIFt0aGlzXSB7CisgICAgICAgIFt0aGlzLCBzaG91bGRXYWl0XSB7CiAgICAgICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogCisgICAgICAgICAgICBhdXRvIG1heWJlTm90aWZ5
U3luY2hyb25vdXNPcGVyYXRpb24gPSBXVEY6Om1ha2VTY29wZUV4aXQoW3RoaXMsIHNob3VsZFdh
aXRdKCkgeworICAgICAgICAgICAgICAgIGlmIChzaG91bGRXYWl0KSB7CisgICAgICAgICAgICAg
ICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fd2FzQnVmZmVyRHJvcHBlZExvY2spOworICAgICAg
ICAgICAgICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWQgPSB0cnVlOworICAgICAgICAgICAgICAg
ICAgICBtX3dhc0J1ZmZlckRyb3BwZWRDb25kaXRpb24ubm90aWZ5QWxsKCk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfSk7CisKICAgICAgICAgICAgIGlmICghbV9jb21wb3NpdG9y
IHx8ICFtX3RhcmdldExheWVyIHx8ICFtX2N1cnJlbnRCdWZmZXIpCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC0yMTQsNyArMjI1LDE5IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eTo6ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdUZXh0dXJlKCkKICAg
ICAgICAgICAgIGlmIChwcmV2QnVmZmVyLT5oYXNNYW5hZ2VkVGV4dHVyZSgpKQogICAgICAgICAg
ICAgICAgIGFwcGVuZFRvVW51c2VkQnVmZmVycyhXVEZNb3ZlKHByZXZCdWZmZXIpKTsKICAgICAg
ICAgfTsKKworICAgIGlmIChzaG91bGRXYWl0KSB7CisgICAgICAgIExvY2tIb2xkZXIgaG9sZGVy
KG1fd2FzQnVmZmVyRHJvcHBlZExvY2spOworICAgICAgICBtX3dhc0J1ZmZlckRyb3BwZWQgPSBm
YWxzZTsKKyAgICB9CisKICAgICBtX2NvbXBvc2l0b3JUaHJlYWRVcGRhdGVUaW1lci0+c3RhcnRP
bmVTaG90KDBfcyk7CisgICAgaWYgKHNob3VsZFdhaXQpIHsKKyAgICAgICAgTG9ja0hvbGRlciBo
b2xkZXIobV93YXNCdWZmZXJEcm9wcGVkTG9jayk7CisgICAgICAgIG1fd2FzQnVmZmVyRHJvcHBl
ZENvbmRpdGlvbi53YWl0KG1fd2FzQnVmZmVyRHJvcHBlZExvY2ssIFt0aGlzXSB7CisgICAgICAg
ICAgICByZXR1cm4gbV93YXNCdWZmZXJEcm9wcGVkOworICAgICAgICB9KTsKKyAgICB9CiB9CiAK
IGJvb2wgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eTo6c2NoZWR1bGVVcGRhdGVPbkNv
bXBvc2l0b3JUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIHVwZGF0ZUZ1bmN0aW9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgKaW5kZXggNjgzZWM3MWQx
YjQzZDY5YmJhYjRhZmQzYjcwNWYyZTgyNzgzMDI5My4uZDM4ZTZjMjFmNjFmYjQwNzk1Yzk2NTUz
MzRkMWYwYzM1NjQzZGFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQogCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMSGVhZGVycy5oIgorI2luY2x1ZGUgPHd0
Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYv
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC02OCw3ICs2OSw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGludmFsaWRhdGUoKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc3dhcEJ1ZmZlcigpOwotICAgIHZvaWQgZHJvcEN1cnJlbnRCdWZmZXJXaGls
ZVByZXNlcnZpbmdUZXh0dXJlKCk7CisgICAgdm9pZCBkcm9wQ3VycmVudEJ1ZmZlcldoaWxlUHJl
c2VydmluZ1RleHR1cmUoYm9vbCBzaG91bGRXYWl0ID0gZmFsc2UpOwogCiAgICAgYm9vbCBzY2hl
ZHVsZVVwZGF0ZU9uQ29tcG9zaXRvclRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpOwogCkBAIC04
NSw2ICs4NiwxMCBAQCBwcml2YXRlOgogCiAgICAgTG9jayBtX2xvY2s7CiAKKyAgICBMb2NrIG1f
d2FzQnVmZmVyRHJvcHBlZExvY2s7CisgICAgQ29uZGl0aW9uIG1fd2FzQnVmZmVyRHJvcHBlZENv
bmRpdGlvbjsKKyAgICBib29sIG1fd2FzQnVmZmVyRHJvcHBlZCB7IGZhbHNlIH07CisKICAgICBW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPj4g
bV91c2VkQnVmZmVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGltZXI8VGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eT4+IG1fcmVsZWFzZVVudXNlZEJ1ZmZlcnNUaW1lcjsK
IAo=
</data>
<flag name="review"
          id="380897"
          type_id="1"
          status="+"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>