<?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>167120</bug_id>
          
          <creation_ts>2017-01-17 09:36:21 -0800</creation_ts>
          <short_desc>[GTK][GStreamer][MSE] Crash on youtube when MSE is enabled but gstreamer cant find the decoder element.</short_desc>
          <delta_ts>2017-05-18 07:05:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>
          
          <blocked>167107</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eocanha</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>vchipirras</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1267371</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-01-17 09:36:21 -0800</bug_when>
    <thetext>With WebKitGTK+ trunk (r210800):


1. Move gstreamer h264 decoders outside of your gst plugin path
2. Tools/jhbuild/jhbuild-wrapper --gtk run  gst-inspect-1.0 |grep 264|grep -i decoder
3. In my case i moved WebKitBuild/DependenciesGTK/Root/lib/gstreamer-1.0/libgstopenh264.so and WebKitBuild/DependenciesGTK/Root/lib/gstreamer-1.0/libgstlibav.so to /tmp
4. Repeat step 2, ensure no 264 decoders are available.

5. Open youtube with MSE support

$ Tools/Scripts/run-minibrowser --gtk --release  --enable-mediasource=true https://www.youtube.com/watch?v=iNJdPyoqt8U
Starting MiniBrowser.

(MiniBrowser:20425): GLib-GObject-WARNING **: The property GtkToolButton:stock-id is deprecated and shouldn&apos;t be used anymore. It will be removed in a future version.
GLib-GIO-Message: Using the &apos;memory&apos; GSettings backend.  Your settings will not be saved or shared with other applications.
1   0x7ff682156c06 /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(+0x11c3c06) [0x7ff682156c06]
2   0x7ff682156bf6 /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(+0x11c3bf6) [0x7ff682156bf6]
3   0x7ff68308eb3b /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(+0x20fbb3b) [0x7ff68308eb3b]
4   0x7ff6829a3335 /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(WebCore::HTMLMediaElement::removeAudioTrack(WebCore::AudioTrack&amp;)+0x15) [0x7ff6829a3335]
5   0x7ff68254721e /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(WebCore::MediaSource::removeSourceBuffer(WebCore::SourceBuffer&amp;)+0xde) [0x7ff68254721e]
6   0x7ff6825475d5 /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(WebCore::MediaSource::detachFromElement(WebCore::HTMLMediaElement&amp;)+0x125) [0x7ff6825475d5]
7   0x7ff68299f09c /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(WebCore::HTMLMediaElement::noneSupported()+0x28c) [0x7ff68299f09c]
8   0x7ff68299ba84 /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(WebCore::HTMLMediaElement::mediaLoadingFailed(WebCore::MediaPlayerEnums::NetworkState)+0xc4) [0x7ff68299ba84]
9   0x7ff68299f4ea /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(non-virtual thunk to WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged(WebCore::MediaPlayer*)+0x2a) [0x7ff68299f4ea]
10  0x7ff6830bc2be /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(WebCore::MediaPlayerPrivateGStreamer::handleMessage(_GstMessage*)+0x9ce) [0x7ff6830bc2be]
11  0x7ff67b0e5ad3 /home/clopez/webkit/webkit/WebKitBuild/DependenciesGTK/Root/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__BOXEDv+0x73) [0x7ff67b0e5ad3]
12  0x7ff67b0e2f34 /home/clopez/webkit/webkit/WebKitBuild/DependenciesGTK/Root/lib/libgobject-2.0.so.0(+0xff34) [0x7ff67b0e2f34]
13  0x7ff67b0fc048 /home/clopez/webkit/webkit/WebKitBuild/DependenciesGTK/Root/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x898) [0x7ff67b0fc048]
14  0x7ff67b0fc942 /home/clopez/webkit/webkit/WebKitBuild/DependenciesGTK/Root/lib/libgobject-2.0.so.0(g_signal_emit+0x82) [0x7ff67b0fc942]
15  0x7ff67c62aa12 /home/clopez/webkit/webkit/WebKitBuild/DependenciesGTK/Root/lib/libgstreamer-1.0.so.0(gst_bus_async_signal_func+0x82) [0x7ff67c62aa12]
16  0x7ff67c62b836 /home/clopez/webkit/webkit/WebKitBuild/DependenciesGTK/Root/lib/libgstreamer-1.0.so.0(+0x40836) [0x7ff67c62b836]
17  0x7ff67afe1cad /home/clopez/webkit/webkit/WebKitBuild/DependenciesGTK/Root/lib/libglib-2.0.so.0(g_main_context_dispatch+0x13d) [0x7ff67afe1cad]
18  0x7ff67afe2048 /home/clopez/webkit/webkit/WebKitBuild/DependenciesGTK/Root/lib/libglib-2.0.so.0(+0x49048) [0x7ff67afe2048]
19  0x7ff67afe2362 /home/clopez/webkit/webkit/WebKitBuild/DependenciesGTK/Root/lib/libglib-2.0.so.0(g_main_loop_run+0xc2) [0x7ff67afe2362]
20  0x7ff6801ac70c /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18(WTF::RunLoop::run()+0x9c) [0x7ff6801ac70c]
21  0x7ff68245dee2 /home/clopez/webkit/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37(int WebKit::ChildProcessMain&lt;WebKit::WebProcess, WebKit::WebProcessMain&gt;(int, char**)+0xa2) [0x7ff68245dee2]
22  0x7ff678820b45 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7ff678820b45]
23  0x400cb9 /home/clopez/webkit/webkit/WebKitBuild/Release/bin/WebKitWebProcess() [0x400cb9]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267374</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-01-17 09:40:21 -0800</bug_when>
    <thetext>Also opening https://www.youtube.com/html5?gl=GB without those codecs shows H264 as not available, but it shows MSE&amp;H264 as available.

I think it should also show MSE&amp;H264 as not available when the H264 decoder is not there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289513</commentid>
    <comment_count>2</comment_count>
      <attachid>304936</attachid>
    <who name="Vanessa Chipirrás Navalón">vchipirras</who>
    <bug_when>2017-03-20 11:20:16 -0700</bug_when>
    <thetext>Created attachment 304936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289520</commentid>
    <comment_count>3</comment_count>
      <attachid>304937</attachid>
    <who name="Vanessa Chipirrás Navalón">vchipirras</who>
    <bug_when>2017-03-20 11:53:21 -0700</bug_when>
    <thetext>Created attachment 304937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289533</commentid>
    <comment_count>4</comment_count>
      <attachid>304937</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2017-03-20 12:13:10 -0700</bug_when>
    <thetext>Comment on attachment 304937
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:113
&gt; +bool doInitializeGStreamerAndRegisterWebKitElements()

I&apos;d thank feedback from some reviewer about if this is the best way to expose the original initializeGStreamerAndRegisterWebKitElements() internal function to be called from another internal function in MediaPlayerPrivateGStreamer.cpp.

If resorting to declare a friend function is too cumbersome, maybe a more direct approach would be to just declare the original initializeGStreamerAndRegisterWebKitElements() publicly in the header file. I&apos;m still not sure.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:776
&gt; +        Vector&lt;GstCapsWebKitMapping&gt; mapping = {

It&apos;s great that you have removed the old elements not mapping to any webkitCodecs.

Now the AudioDecoder elementType category has no elements. Still, I think keeping this AudioDecoder/VideoDecoder distinction is useful in case we add support for more mime types in MSE in the future.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:837
&gt; +        for (String pattern : codecSet()) {

If you use &quot;const auto&amp;&quot; here instead of String, you&apos;re avoiding String copies and increasing the performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289751</commentid>
    <comment_count>5</comment_count>
      <attachid>304937</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-03-21 03:58:42 -0700</bug_when>
    <thetext>Comment on attachment 304937
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:113
&gt;&gt; +bool doInitializeGStreamerAndRegisterWebKitElements()
&gt; 
&gt; I&apos;d thank feedback from some reviewer about if this is the best way to expose the original initializeGStreamerAndRegisterWebKitElements() internal function to be called from another internal function in MediaPlayerPrivateGStreamer.cpp.
&gt; 
&gt; If resorting to declare a friend function is too cumbersome, maybe a more direct approach would be to just declare the original initializeGStreamerAndRegisterWebKitElements() publicly in the header file. I&apos;m still not sure.

IMO this should be a public static function in the MediaPlayerPrivateGStreamerBase class. That way there&apos;s no need to declare friendship in the MediaPlayerPrivateGStreamerMSE class.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:755
&gt; +static HashSet&lt;String, ASCIICaseInsensitiveHash&gt;&amp; codecSet()

Should return a const reference.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:759
&gt; +        callInitializeGStreamerAndRegisterWebKitElements();

This would be a direct call to MediaPlayerPrivateGStreamerBase::initializeGStreamerAndRegisterWebKitElements().

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:780
&gt; +        Vector&lt;GstCapsWebKitMapping&gt; mapping = {
&gt; +            {VideoDecoder, &quot;video/x-h264,  profile=(string){ constrained-baseline, baseline }&quot;, {&quot;x-h264&quot;}},
&gt; +            {VideoDecoder, &quot;video/x-h264, stream-format=avc&quot;, {&quot;avc*&quot;}},
&gt; +            {VideoDecoder, &quot;video/mpeg, mpegversion=(int){1,2}, systemstream=(boolean)false&quot;, {&quot;mpeg&quot;}},
&gt; +        };

This should be a std::array&lt;&gt;.

The brace-initialization should have spaces at after the opening and before the closing brace: { VideoDecoder, ..., { &quot;x-h264&quot; } },

Why AtomicStrings? Regardless whether you use AtomicStrings or ordinary Strings, you should intialize them with AtomicString(&quot;...&quot;, AtomicString::ConstructFromLiteral) or ASCIILiteral(&quot;...&quot;).

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:787
&gt; +            GList* factories = nullptr;
&gt; +            if (current.elementType == AudioDecoder)
&gt; +                factories = audioDecoderFactories;
&gt; +            else if (current.elementType == VideoDecoder)
&gt; +                factories = videoDecoderFactories;

This doesn&apos;t handle the Demuxer value, which would leave the factories GList null and cause problems in gstRegistryHasElementForMediaType(). But as it stands the Demuxer value isn&apos;t used in the mapping array.

If it&apos;s not needed, it should be removed from the enum. If it&apos;s needed, it should be handled here. Either way, this if-elseif block should be a switch statement that handles all the values in the enum.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:811
&gt; +            set.add(AtomicString(&quot;audio/mpeg&quot;));
&gt; +            set.add(AtomicString(&quot;audio/x-mpeg&quot;));

Again regarding using AtomicStrings -- you should use Strings all the way if the target HashSet has String values. But don&apos;t forget to use ASCIILiteral directly.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:814
&gt; +
&gt; +

Nit: one extraneous newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295325</commentid>
    <comment_count>6</comment_count>
      <attachid>304937</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-07 08:06:52 -0700</bug_when>
    <thetext>Comment on attachment 304937
Patch

Please address the review feedback from Zan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295326</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-07 08:07:06 -0700</bug_when>
    <thetext>(And Enrique.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296460</commentid>
    <comment_count>8</comment_count>
    <who name="Vanessa Chipirrás Navalón">vchipirras</who>
    <bug_when>2017-04-11 10:08:12 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #5)
&gt; Comment on attachment 304937 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=304937&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:113
&gt; &gt;&gt; +bool doInitializeGStreamerAndRegisterWebKitElements()
&gt; &gt; 
&gt; &gt; I&apos;d thank feedback from some reviewer about if this is the best way to expose the original initializeGStreamerAndRegisterWebKitElements() internal function to be called from another internal function in MediaPlayerPrivateGStreamer.cpp.
&gt; &gt; 
&gt; &gt; If resorting to declare a friend function is too cumbersome, maybe a more direct approach would be to just declare the original initializeGStreamerAndRegisterWebKitElements() publicly in the header file. I&apos;m still not sure.
&gt; 
&gt; IMO this should be a public static function in the
&gt; MediaPlayerPrivateGStreamerBase class. That way there&apos;s no need to declare
&gt; friendship in the MediaPlayerPrivateGStreamerMSE class.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:755
&gt; &gt; +static HashSet&lt;String, ASCIICaseInsensitiveHash&gt;&amp; codecSet()
&gt; 
&gt; Should return a const reference.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:759
&gt; &gt; +        callInitializeGStreamerAndRegisterWebKitElements();
&gt; 
&gt; This would be a direct call to
&gt; MediaPlayerPrivateGStreamerBase::
&gt; initializeGStreamerAndRegisterWebKitElements().
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:780
&gt; &gt; +        Vector&lt;GstCapsWebKitMapping&gt; mapping = {
&gt; &gt; +            {VideoDecoder, &quot;video/x-h264,  profile=(string){ constrained-baseline, baseline }&quot;, {&quot;x-h264&quot;}},
&gt; &gt; +            {VideoDecoder, &quot;video/x-h264, stream-format=avc&quot;, {&quot;avc*&quot;}},
&gt; &gt; +            {VideoDecoder, &quot;video/mpeg, mpegversion=(int){1,2}, systemstream=(boolean)false&quot;, {&quot;mpeg&quot;}},
&gt; &gt; +        };
&gt; 
&gt; This should be a std::array&lt;&gt;.
&gt; 
&gt; The brace-initialization should have spaces at after the opening and before
&gt; the closing brace: { VideoDecoder, ..., { &quot;x-h264&quot; } },
&gt; 
&gt; Why AtomicStrings? Regardless whether you use AtomicStrings or ordinary
&gt; Strings, you should intialize them with AtomicString(&quot;...&quot;,
&gt; AtomicString::ConstructFromLiteral) or ASCIILiteral(&quot;...&quot;).
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:787
&gt; &gt; +            GList* factories = nullptr;
&gt; &gt; +            if (current.elementType == AudioDecoder)
&gt; &gt; +                factories = audioDecoderFactories;
&gt; &gt; +            else if (current.elementType == VideoDecoder)
&gt; &gt; +                factories = videoDecoderFactories;
&gt; 
&gt; This doesn&apos;t handle the Demuxer value, which would leave the factories GList
&gt; null and cause problems in gstRegistryHasElementForMediaType(). But as it
&gt; stands the Demuxer value isn&apos;t used in the mapping array.
&gt; 
&gt; If it&apos;s not needed, it should be removed from the enum. If it&apos;s needed, it
&gt; should be handled here. Either way, this if-elseif block should be a switch
&gt; statement that handles all the values in the enum.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:811
&gt; &gt; +            set.add(AtomicString(&quot;audio/mpeg&quot;));
&gt; &gt; +            set.add(AtomicString(&quot;audio/x-mpeg&quot;));
&gt; 
&gt; Again regarding using AtomicStrings -- you should use Strings all the way if
&gt; the target HashSet has String values. But don&apos;t forget to use ASCIILiteral
&gt; directly.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:814
&gt; &gt; +
&gt; &gt; +
&gt; 
&gt; Nit: one extraneous newline.

OK Zan, thanks for the review. I am going to apply those changes in my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304739</commentid>
    <comment_count>9</comment_count>
      <attachid>309076</attachid>
    <who name="Vanessa Chipirrás Navalón">vchipirras</who>
    <bug_when>2017-05-04 11:59:29 -0700</bug_when>
    <thetext>Created attachment 309076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306504</commentid>
    <comment_count>10</comment_count>
      <attachid>309524</attachid>
    <who name="Vanessa Chipirrás Navalón">vchipirras</who>
    <bug_when>2017-05-09 12:41:53 -0700</bug_when>
    <thetext>Created attachment 309524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310078</commentid>
    <comment_count>11</comment_count>
      <attachid>309524</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-18 06:34:42 -0700</bug_when>
    <thetext>Comment on attachment 309524
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310081</commentid>
    <comment_count>12</comment_count>
      <attachid>309524</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-05-18 06:36:21 -0700</bug_when>
    <thetext>Comment on attachment 309524
Patch

Lets land this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310083</commentid>
    <comment_count>13</comment_count>
      <attachid>309524</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-18 07:05:18 -0700</bug_when>
    <thetext>Comment on attachment 309524
Patch

Clearing flags on attachment: 309524

Committed r217045: &lt;http://trac.webkit.org/changeset/217045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310084</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-18 07:05:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304936</attachid>
            <date>2017-03-20 11:20:16 -0700</date>
            <delta_ts>2017-03-20 11:53:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167120-20170320192013.patch</filename>
            <type>text/plain</type>
            <size>11139</size>
            <attacher name="Vanessa Chipirrás Navalón">vchipirras</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyOTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjExNWE3MWIwYzlmYjk1
YjI3OGMzNmE1YWFiMWI5NDA0NDA1MTYzZi4uMWVlOTU5YzAzN2JjZDc2NTBhNzVlYzU2NGVhZjAz
ZDBkZTQwMzM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTAzLTE3ICBWYW5l
c3NhIENoaXBpcnLDoXMgTmF2YWzDs24gIDx2Y2hpcGlycmFzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bR1N0cmVhbWVyXVtNU0VdIENyYXNoIG9uIHlvdXR1YmUgd2hlbiBNU0UgaXMgZW5h
YmxlZCBidXQgZ3N0cmVhbWVyIGNhbnQgZmluZCB0aGUgZGVjb2RlciBlbGVtZW50LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MTIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBiZWNhdXNl
IHN1cHBvcnRDb2RlY3MoKSBkb2Vzbid0IGNoZWNrIGluIHJ1bnRpbWUgd2hpY2ggcGx1Z2lucyB0
aGUgcGxheWVyIGhhcy4gCisgICAgICAgIFNvLCBhIHN0YXRpYyBmdW5jdGlvbiB3aGljaCByZXR1
cm5zIGEgbWFwIHdpdGggdGhlIHBsdWdpbnMgaGFzIGJlZW4gY3JlYXRlZC4gVGhhdCBtYXAgaXMg
bGF0ZXIKKyAgICAgICAgdXNlZCBpbiB0aGUgc3VwcG9ydHNDb2RlY3MoKSBtZXRob2QgdG8gY2hl
Y2sgaWYgdGhlIHJlcXVlc3RlZCBjb2RlYyBtYXRjaGVzIGFueSBvZiB0aGUgbWFwLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb0luaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdp
c3RlcldlYktpdEVsZW1lbnRzKTogVG8gYWN0dWFsbHkgZG8gdGhlIGludGVybmFsIGluaXRpYWxp
emF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpp
bml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cyk6IAorICAgICAgICBU
aGlzIGZ1bmN0aW9uIGNhbGxzIHRoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6bWltZVR5cGVTZXQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6IFRoaXMg
ZnVuY3Rpb24gaXMgbm93IHNoYXJlZCB3aXRoIAorICAgICAgICBzdWJjbGFzc2VzLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyTVNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGxJbml0aWFsaXplR1N0cmVhbWVy
QW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cyk6IEl0IGlzIGFuIGF1eGlsaWFyeSBmcmllbmQgCisg
ICAgICAgIGZ1bmN0aW9uIHRvIGNhbGwgdGhlIHByb3RlY3RlZCBtZXRob2Qgb2YgdGhlIE1lZGlh
UGxheWVyUHJpdmF0ZUdzdHJlYW1lciBjbGFzcy4KKyAgICAgICAgKFdlYkNvcmU6OmNvZGVjU2V0
KTogSXQgcmV0dXJucyBhIG1hcCB3aXRoIHRoZSBwbHVnaW5zIGhhcyBiZWVuIGNyZWF0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRz
Q29kZWNzKTogVG8gY2hlY2sgaWYgdGhlIHJlcXVlc3RlZCBjb2RlYyAKKyAgICAgICAgbWF0Y2hl
cyBhbnkgb2YgdGhlIG1hcCBmcm9tIGNvZGVjU2V0KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaDogSXQg
aXMgZnJpZW5kIHR5cGUgCisgICAgICAgIHRvIGJlIGFibGUgdG8gYWNjZXNzIHRoZSBwcm90ZWN0
ZWQgbWVtYmVyIGluaXRpYWxpemVTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKSBp
biAKKyAgICAgICAgdGhlIE1lZGlhUGxheWVyUHJpdmF0ZUdzdHJlYW1lcidzIGNsYXNzLgorCiAy
MDE3LTAyLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1N0cmVhbWVyXSBTZXZlcmFsIGxheW91dCB0ZXN0cyB0cmlnZ2VyIEdTdHJlYW1l
ci1DUklUSUNBTCAqKjogZ3N0X2Jpbl9nZXRfYnlfbmFtZTogYXNzZXJ0aW9uICdHU1RfSVNfQklO
IChiaW4pJyBmYWlsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKaW5kZXggZmNjZWUzY2M4ZjQ0NGNhYWVjZjdlMzFkNjY3NTRkZDM3ZTk1ZTIyMy4u
M2ZlNGU1ZGRkZTBlMGEwNmEyYTRiYTk4NTNmMGU5MGNmMjIzMzdkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTExMCw3ICsxMTAsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShN
ZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpcwogICAgICAgICAgICAgZ2V0U3VwcG9ydGVkVHlwZXMs
IHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgc3VwcG9ydHNLZXlTeXN0ZW0pOwogfQogCi1ib29sIGlu
aXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkKK2Jvb2wgZG9Jbml0
aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCiB7CiAgICAgaWYgKCFp
bml0aWFsaXplR1N0cmVhbWVyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEyNiw5ICsx
MjYsMTQgQEAgYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50
cygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjppbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCit7Cisg
ICAgcmV0dXJuIGRvSW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMo
KTsKK30KKwogYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKCkK
IHsKLSAgICBpZiAoIWluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRz
KCkpCisgICAgaWYgKCFkb0luaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1l
bnRzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEdSZWZQdHI8R3N0RWxlbWVudEZh
Y3Rvcnk+IGZhY3RvcnkgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJwbGF5
YmluIikpOwpAQCAtMjI4LDcgKzIzMyw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewotICAgIGlmICghaW5p
dGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKSkKKyAgICBpZiAoIWRv
SW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgVVJMIHVybChVUkwoKSwgdXJsU3RyaW5nKTsKQEAgLTE3ODEsNyArMTc4
Niw3IEBAIHN0YXRpYyBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYg
bWltZVR5cGVTZXQoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmlu
ZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4gbWltZVR5cGVzID0gW10oKQogICAgIHsKLSAg
ICAgICAgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKTsKKyAg
ICAgICAgZG9Jbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpOwog
ICAgICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBzZXQ7CiAK
ICAgICAgICAgR0xpc3QqIGF1ZGlvRGVjb2RlckZhY3RvcmllcyA9IGdzdF9lbGVtZW50X2ZhY3Rv
cnlfbGlzdF9nZXRfZWxlbWVudHMoR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ09ERVIgfCBH
U1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfQVVESU8sIEdTVF9SQU5LX01BUkdJTkFMKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA2YzZh
MzljYTEyYWFkNDYyMTQyN2RjNDY0NmE2YWRiMGIwMGY3OTE1Li45NjFiODk2ODY0ZDcwMDE5NzQ1
NDljNmJiMThkZTRiYmY4NGRjMjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oCkBAIC0yMDIsNiArMjAyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
bm90aWZ5UGxheWVyT2ZWaWRlbygpOwogICAgIHZvaWQgbm90aWZ5UGxheWVyT2ZWaWRlb0NhcHMo
KTsKICAgICB2b2lkIG5vdGlmeVBsYXllck9mQXVkaW8oKTsKKyAgICBzdGF0aWMgYm9vbCBpbml0
aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpOwogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogICAgIHZvaWQgbm90aWZ5UGxheWVyT2ZUZXh0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKaW5k
ZXggNDYxNGViOWI5YjVlN2E1MDhhYjllYmUyMDAxYjVlYTRjNTQ3YTMzMi4uZjI2MTk1MTQxM2Y0
ZTA4YjUyZDNiOTE0YWYyZDIwMGFhZDI4NmEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJNU0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcApAQCAtNzQ3LDkgKzc0Nyw5
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6dHJhY2tEZXRlY3RlZChS
ZWZQdHI8QXBwZW5kUGlwZWxpbmU+IGFwcGVuZAogICAgICAgICBtX3BsYXliYWNrUGlwZWxpbmUt
PnJlYXR0YWNoVHJhY2soYXBwZW5kUGlwZWxpbmUtPnNvdXJjZUJ1ZmZlclByaXZhdGUoKSwgbmV3
VHJhY2spOwogfQogCitib29sIGNhbGxJbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJL
aXRFbGVtZW50cygpCit7CisgICAgcmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
aW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKTsKK30KKworc3Rh
dGljIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBjb2RlY1NldCgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+PiBjb2RlY1R5cGVzID0gW10oKQorICAgIHsKKyAgICAgICAgY2FsbElu
aXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCk7CisgICAgICAgIEhh
c2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IHNldDsKKworICAgICAgICBH
TGlzdCogYXVkaW9EZWNvZGVyRmFjdG9yaWVzID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2dl
dF9lbGVtZW50cyhHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RFUiB8IEdTVF9FTEVNRU5U
X0ZBQ1RPUllfVFlQRV9NRURJQV9BVURJTywgR1NUX1JBTktfTUFSR0lOQUwpOworICAgICAgICBH
TGlzdCogdmlkZW9EZWNvZGVyRmFjdG9yaWVzID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2dl
dF9lbGVtZW50cyhHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RFUiB8IEdTVF9FTEVNRU5U
X0ZBQ1RPUllfVFlQRV9NRURJQV9WSURFTywgR1NUX1JBTktfTUFSR0lOQUwpOworCisgICAgICAg
IGVudW0gRWxlbWVudFR5cGUgeworICAgICAgICAgICAgQXVkaW9EZWNvZGVyID0gMCwKKyAgICAg
ICAgICAgIFZpZGVvRGVjb2RlciwKKyAgICAgICAgICAgIERlbXV4ZXIKKyAgICAgICAgfTsKKyAg
ICAgICAgc3RydWN0IEdzdENhcHNXZWJLaXRNYXBwaW5nIHsKKyAgICAgICAgICAgIEVsZW1lbnRU
eXBlIGVsZW1lbnRUeXBlOworICAgICAgICAgICAgY29uc3QgY2hhciogY2Fwc1N0cmluZzsKKyAg
ICAgICAgICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IHdlYmtpdENvZGVjczsKKyAgICAgICAgfTsK
KworICAgICAgICBWZWN0b3I8R3N0Q2Fwc1dlYktpdE1hcHBpbmc+IG1hcHBpbmcgPSB7CisgICAg
ICAgICAgICB7QXVkaW9EZWNvZGVyLCAiYXVkaW8vbWlkaSIsIHsgfX0sCisgICAgICAgICAgICB7
QXVkaW9EZWNvZGVyLCAiYXVkaW8veC1zYmMiLCB7IH19LAorICAgICAgICAgICAge0F1ZGlvRGVj
b2RlciwgImF1ZGlvL3gtc2lkIiwgeyB9fSwKKyAgICAgICAgICAgIHtBdWRpb0RlY29kZXIsICJh
dWRpby94LWZsYWMiLCB7IH19LAorICAgICAgICAgICAge0F1ZGlvRGVjb2RlciwgImF1ZGlvL3gt
d2F2IiwgeyB9fSwKKyAgICAgICAgICAgIHtBdWRpb0RlY29kZXIsICJhdWRpby94LXdhdnBhY2si
LCB7IH19LAorICAgICAgICAgICAge0F1ZGlvRGVjb2RlciwgImF1ZGlvL3gtc3BlZXgiLCB7IH19
LAorICAgICAgICAgICAge0F1ZGlvRGVjb2RlciwgImF1ZGlvL3gtYWMzIiwgeyB9fSwKKyAgICAg
ICAgICAgIHtBdWRpb0RlY29kZXIsICJhdWRpby94LWVhYzMiLCB7IH19LAorICAgICAgICAgICAg
e0F1ZGlvRGVjb2RlciwgImF1ZGlvL3gtZHRzIiwgeyB9fSwKKyAgICAgICAgICAgIHtWaWRlb0Rl
Y29kZXIsICJ2aWRlby94LWgyNjQsICBwcm9maWxlPShzdHJpbmcpeyBjb25zdHJhaW5lZC1iYXNl
bGluZSwgYmFzZWxpbmUgfSIsIHsieC1oMjY0In19LAorICAgICAgICAgICAge1ZpZGVvRGVjb2Rl
ciwgInZpZGVvL3gtaDI2NCwgc3RyZWFtLWZvcm1hdD1hdmMiLCB7ImF2YyoifX0sCisgICAgICAg
ICAgICB7VmlkZW9EZWNvZGVyLCAidmlkZW8veC1tc3ZpZGVvY29kZWMiLCB7IH19LAorICAgICAg
ICAgICAge1ZpZGVvRGVjb2RlciwgInZpZGVvL3gtaDI2MyIsIHsgfX0sCisgICAgICAgICAgICB7
VmlkZW9EZWNvZGVyLCAidmlkZW8vbXBlZ3RzIiwgeyB9fSwKKyAgICAgICAgICAgIHtWaWRlb0Rl
Y29kZXIsICJ2aWRlby9tcGVnLCBtcGVndmVyc2lvbj0oaW50KXsxLDJ9LCBzeXN0ZW1zdHJlYW09
KGJvb2xlYW4pZmFsc2UiLCB7Im1wZWcifX0sCisgICAgICAgICAgICB7VmlkZW9EZWNvZGVyLCAi
dmlkZW8veC1kaXJhYyIsIHsgfX0sCisgICAgICAgICAgICB7VmlkZW9EZWNvZGVyLCAidmlkZW8v
eC1mbGFzaC12aWRlbyIsIHsgfX0KKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGF1dG8mIGN1
cnJlbnQgOiBtYXBwaW5nKSB7CisgICAgICAgICAgICBHTGlzdCogZmFjdG9yaWVzID0gbnVsbHB0
cjsKKyAgICAgICAgICAgIGlmIChjdXJyZW50LmVsZW1lbnRUeXBlID09IEF1ZGlvRGVjb2RlcikK
KyAgICAgICAgICAgICAgICBmYWN0b3JpZXMgPSBhdWRpb0RlY29kZXJGYWN0b3JpZXM7CisgICAg
ICAgICAgICBlbHNlIGlmIChjdXJyZW50LmVsZW1lbnRUeXBlID09IFZpZGVvRGVjb2RlcikKKyAg
ICAgICAgICAgICAgICBmYWN0b3JpZXMgPSB2aWRlb0RlY29kZXJGYWN0b3JpZXM7CisKKyAgICAg
ICAgICAgIGlmIChnc3RSZWdpc3RyeUhhc0VsZW1lbnRGb3JNZWRpYVR5cGUoZmFjdG9yaWVzLCBj
dXJyZW50LmNhcHNTdHJpbmcpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50LndlYmtp
dENvZGVjcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRv
JiBtaW1lVHlwZSA6IGN1cnJlbnQud2Via2l0Q29kZWNzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0LmFkZChtaW1lVHlwZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIHNldC5hZGQoQXRvbWljU3RyaW5nKGN1cnJlbnQuY2Fwc1N0cmluZykpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYm9vbCBhdWRpb01wZWdTdXBwb3J0ZWQg
PSBmYWxzZTsKKyAgICAgICAgaWYgKGdzdFJlZ2lzdHJ5SGFzRWxlbWVudEZvck1lZGlhVHlwZShh
dWRpb0RlY29kZXJGYWN0b3JpZXMsICJhdWRpby9tcGVnLCBtcGVndmVyc2lvbj0oaW50KTEsIGxh
eWVyPShpbnQpWzEsIDNdIikpIHsKKyAgICAgICAgICAgIGF1ZGlvTXBlZ1N1cHBvcnRlZCA9IHRy
dWU7CisgICAgICAgICAgICBzZXQuYWRkKEF0b21pY1N0cmluZygiYXVkaW8vbXAzIikpOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKGdzdFJlZ2lzdHJ5SGFzRWxlbWVudEZvck1lZGlhVHlwZShh
dWRpb0RlY29kZXJGYWN0b3JpZXMsICJhdWRpby9tcGVnLCBtcGVndmVyc2lvbj0oaW50KXsyLCA0
fSIpKSB7CisgICAgICAgICAgICBhdWRpb01wZWdTdXBwb3J0ZWQgPSB0cnVlOworICAgICAgICAg
ICAgc2V0LmFkZChBdG9taWNTdHJpbmcoIm1wNGEqIikpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKGF1ZGlvTXBlZ1N1cHBvcnRlZCkgeworICAgICAgICAgICAgc2V0LmFkZChBdG9taWNTdHJp
bmcoImF1ZGlvL21wZWciKSk7CisgICAgICAgICAgICBzZXQuYWRkKEF0b21pY1N0cmluZygiYXVk
aW8veC1tcGVnIikpOworICAgICAgICB9CisKKworICAgICAgICBnc3RfcGx1Z2luX2ZlYXR1cmVf
bGlzdF9mcmVlKGF1ZGlvRGVjb2RlckZhY3Rvcmllcyk7CisgICAgICAgIGdzdF9wbHVnaW5fZmVh
dHVyZV9saXN0X2ZyZWUodmlkZW9EZWNvZGVyRmFjdG9yaWVzKTsKKworICAgICAgICByZXR1cm4g
c2V0OworICAgIH0oKTsKKyAgICByZXR1cm4gY29kZWNUeXBlczsKK30KKwogYm9vbCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRzQ29kZWNzKGNvbnN0IFN0cmluZyYgY29k
ZWNzKQogewotICAgIHN0YXRpYyBWZWN0b3I8Y29uc3QgY2hhcio+IHN1cHBvcnRlZENvZGVjcyA9
IHsgImF2YyoiLCAibXA0YSoiLCAibXBlZyIsICJ4LWgyNjQiIH07CiAgICAgVmVjdG9yPFN0cmlu
Zz4gY29kZWNFbnRyaWVzOwogICAgIGNvZGVjcy5zcGxpdCgnLCcsIGZhbHNlLCBjb2RlY0VudHJp
ZXMpOwogCkBAIC03NjIsOCArODQ5LDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJNU0U6OnN1cHBvcnRzQ29kZWNzKGNvbnN0IFN0cmluZyYgY29kZWNzKQogICAgICAgICAgICAg
Y29kZWMgPSBjb2RlYy5zdWJzdHJpbmcoc2xhc2hJbmRleCsxKTsKIAogICAgICAgICBjb25zdCBj
aGFyKiBjb2RlY0RhdGEgPSBjb2RlYy51dGY4KCkuZGF0YSgpOwotICAgICAgICBmb3IgKGNvbnN0
IGF1dG8mIHBhdHRlcm4gOiBzdXBwb3J0ZWRDb2RlY3MpIHsKLSAgICAgICAgICAgIGlzQ29kZWNT
dXBwb3J0ZWQgPSAhZm5tYXRjaChwYXR0ZXJuLCBjb2RlY0RhdGEsIDApOworICAgICAgICBmb3Ig
KFN0cmluZyBwYXR0ZXJuIDogY29kZWNTZXQoKSkgeworICAgICAgICAgICAgaXNDb2RlY1N1cHBv
cnRlZCA9ICFmbm1hdGNoKHBhdHRlcm4udXRmOCgpLmRhdGEoKSwgY29kZWNEYXRhLCAwKTsKICAg
ICAgICAgICAgIGlmIChpc0NvZGVjU3VwcG9ydGVkKQogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJNU0UuaAppbmRleCAwZDNlYmI5MDJhMGNkYmNhOTNjYzIxMGE3Mjk5YmY1Nzk1NTFl
M2ZiLi42ODE3ZWNhNzkwMmUxZDFlZmVjZDZiNGJjNTZmYTY0ZWJhZDQ5ZWEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKQEAg
LTQzLDYgKzQzLDcgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFIDogcHVi
bGljIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiAKICAgICBmcmllbmQgY2xhc3MgTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U7Cisg
ICAgZnJpZW5kIGJvb2wgY2FsbEluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVs
ZW1lbnRzKCk7CiAKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJNU0UoTWVkaWFQbGF5ZXIqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304937</attachid>
            <date>2017-03-20 11:53:21 -0700</date>
            <delta_ts>2017-05-04 11:59:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167120-20170320195319.patch</filename>
            <type>text/plain</type>
            <size>10370</size>
            <attacher name="Vanessa Chipirrás Navalón">vchipirras</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyOTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjExNWE3MWIwYzlmYjk1
YjI3OGMzNmE1YWFiMWI5NDA0NDA1MTYzZi4uMDQwNjg4ODcwOTE5OWVkNTEwNDM1NTYyOGQ5YzEx
MDMwNGU5ZGNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTAzLTIwICBWYW5l
c3NhIENoaXBpcnLDoXMgTmF2YWzDs24gIDx2Y2hpcGlycmFzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bR1N0cmVhbWVyXVtNU0VdIENyYXNoIG9uIHlvdXR1YmUgd2hlbiBNU0UgaXMgZW5h
YmxlZCBidXQgZ3N0cmVhbWVyIGNhbnQgZmluZCB0aGUgZGVjb2RlciBlbGVtZW50LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MTIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBiZWNhdXNl
IHN1cHBvcnRDb2RlY3MoKSBkb2Vzbid0IGNoZWNrIGluIHJ1bnRpbWUgd2hpY2ggcGx1Z2lucyB0
aGUgcGxheWVyIGhhcy4KKyAgICAgICAgU28sIGEgc3RhdGljIGZ1bmN0aW9uIHdoaWNoIHJldHVy
bnMgYSBtYXAgd2l0aCB0aGUgcGx1Z2lucyBoYXMgYmVlbiBjcmVhdGVkLiBUaGF0IG1hcCBpcyBs
YXRlcgorICAgICAgICB1c2VkIGluIHRoZSBzdXBwb3J0c0NvZGVjcygpIG1ldGhvZCB0byBjaGVj
ayBpZiB0aGUgcmVxdWVzdGVkIGNvZGVjIG1hdGNoZXMgYW55IG9mIHRoZSBtYXAuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRvSW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lz
dGVyV2ViS2l0RWxlbWVudHMpOiBUbyBhY3R1YWxseSBkbyB0aGUgaW50ZXJuYWwgaW5pdGlhbGl6
YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omlu
aXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKToKKyAgICAgICAgVGhp
cyBmdW5jdGlvbiBjYWxscyB0aGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlU2V0KTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOiBUaGlzIGZ1
bmN0aW9uIGlzIG5vdyBzaGFyZWQgd2l0aAorICAgICAgICBzdWJjbGFzc2VzLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyTVNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGxJbml0aWFsaXplR1N0cmVhbWVyQW5k
UmVnaXN0ZXJXZWJLaXRFbGVtZW50cyk6IEl0IGlzIGFuIGF1eGlsaWFyeSBmcmllbmQKKyAgICAg
ICAgZnVuY3Rpb24gdG8gY2FsbCB0aGUgcHJvdGVjdGVkIG1ldGhvZCBvZiB0aGUgTWVkaWFQbGF5
ZXJQcml2YXRlR3N0cmVhbWVyIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Y29kZWNTZXQpOiBJ
dCByZXR1cm5zIGEgbWFwIHdpdGggdGhlIHBsdWdpbnMgaGFzIGJlZW4gY3JlYXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3VwcG9ydHNDb2Rl
Y3MpOiBUbyBjaGVjayBpZiB0aGUgcmVxdWVzdGVkIGNvZGVjCisgICAgICAgIG1hdGNoZXMgYW55
IG9mIHRoZSBtYXAgZnJvbSBjb2RlY1NldCgpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmg6IEl0IGlzIGZy
aWVuZCB0eXBlCisgICAgICAgIHRvIGJlIGFibGUgdG8gYWNjZXNzIHRoZSBwcm90ZWN0ZWQgbWVt
YmVyIGluaXRpYWxpemVTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKSBpbgorICAg
ICAgICB0aGUgTWVkaWFQbGF5ZXJQcml2YXRlR3N0cmVhbWVyJ3MgY2xhc3MuCisKIDIwMTctMDIt
MjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHU3RyZWFtZXJdIFNldmVyYWwgbGF5b3V0IHRlc3RzIHRyaWdnZXIgR1N0cmVhbWVyLUNSSVRJ
Q0FMICoqOiBnc3RfYmluX2dldF9ieV9uYW1lOiBhc3NlcnRpb24gJ0dTVF9JU19CSU4gKGJpbikn
IGZhaWxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCBmY2NlZTNjYzhmNDQ0Y2FhZWNmN2UzMWQ2Njc1NGRkMzdlOTVlMjIzLi4zZmU0ZTVk
ZGRlMGUwYTA2YTJhNGJhOTg1M2YwZTkwY2YyMjMzN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0cmFyIHJlZ2lzCiAgICAgICAgICAgICBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9y
dHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKLWJvb2wgaW5pdGlhbGl6
ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKQorYm9vbCBkb0luaXRpYWxpemVH
U3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkKIHsKICAgICBpZiAoIWluaXRpYWxp
emVHU3RyZWFtZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTI2LDkgKzEyNiwxNCBA
QCBib29sIGluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omlu
aXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkKK3sKKyAgICByZXR1
cm4gZG9Jbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpOworfQor
CiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNBdmFpbGFibGUoKQogewotICAg
IGlmICghaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKSkKKyAg
ICBpZiAoIWRvSW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgR1JlZlB0cjxHc3RFbGVtZW50RmFjdG9yeT4g
ZmFjdG9yeSA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9mYWN0b3J5X2ZpbmQoInBsYXliaW4iKSk7
CkBAIC0yMjgsNyArMjMzLDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7Ci0gICAgaWYgKCFpbml0aWFsaXpl
R1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpKQorICAgIGlmICghZG9Jbml0aWFs
aXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpKQogICAgICAgICByZXR1cm47
CiAKICAgICBVUkwgdXJsKFVSTCgpLCB1cmxTdHJpbmcpOwpAQCAtMTc4MSw3ICsxNzg2LDcgQEAg
c3RhdGljIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBtaW1lVHlw
ZVNldCgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtaW1lVHlwZXMgPSBbXSgpCiAgICAgewotICAgICAgICBp
bml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpOworICAgICAgICBk
b0luaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCk7CiAgICAgICAg
IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IHNldDsKIAogICAgICAg
ICBHTGlzdCogYXVkaW9EZWNvZGVyRmFjdG9yaWVzID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0
X2dldF9lbGVtZW50cyhHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDT0RFUiB8IEdTVF9FTEVN
RU5UX0ZBQ1RPUllfVFlQRV9NRURJQV9BVURJTywgR1NUX1JBTktfTUFSR0lOQUwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDZjNmEzOWNhMTJh
YWQ0NjIxNDI3ZGM0NjQ2YTZhZGIwYjAwZjc5MTUuLjk2MWI4OTY4NjRkNzAwMTk3NDU0OWM2YmIx
OGRlNGJiZjg0ZGMyN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmgKQEAgLTIwMiw2ICsyMDIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBub3RpZnlQ
bGF5ZXJPZlZpZGVvKCk7CiAgICAgdm9pZCBub3RpZnlQbGF5ZXJPZlZpZGVvQ2FwcygpOwogICAg
IHZvaWQgbm90aWZ5UGxheWVyT2ZBdWRpbygpOworICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVH
U3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCk7CiAKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCiAgICAgdm9pZCBub3RpZnlQbGF5ZXJPZlRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAppbmRleCA0NjE0
ZWI5YjliNWU3YTUwOGFiOWViZTIwMDFiNWVhNGM1NDdhMzMyLi4wNzRkZTc5NDRlN2EzMmM4ZTcy
YTJiZDI4NDk1YmRlMDhlNDgwYjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCkBAIC03NDcsOSArNzQ3LDgxIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjp0cmFja0RldGVjdGVkKFJlZlB0cjxB
cHBlbmRQaXBlbGluZT4gYXBwZW5kCiAgICAgICAgIG1fcGxheWJhY2tQaXBlbGluZS0+cmVhdHRh
Y2hUcmFjayhhcHBlbmRQaXBlbGluZS0+c291cmNlQnVmZmVyUHJpdmF0ZSgpLCBuZXdUcmFjayk7
CiB9CiAKK2Jvb2wgY2FsbEluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1l
bnRzKCkKK3sKKyAgICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppbml0aWFs
aXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpOworfQorCitzdGF0aWMgSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNvZGVjU2V0KCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4+IGNvZGVjVHlwZXMgPSBbXSgpCisgICAgeworICAgICAgICBjYWxsSW5pdGlhbGl6
ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKTsKKyAgICAgICAgSGFzaFNldDxT
dHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gc2V0OworCisgICAgICAgIEdMaXN0KiBh
dWRpb0RlY29kZXJGYWN0b3JpZXMgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZ2V0X2VsZW1l
bnRzKEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREVSIHwgR1NUX0VMRU1FTlRfRkFDVE9S
WV9UWVBFX01FRElBX0FVRElPLCBHU1RfUkFOS19NQVJHSU5BTCk7CisgICAgICAgIEdMaXN0KiB2
aWRlb0RlY29kZXJGYWN0b3JpZXMgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZ2V0X2VsZW1l
bnRzKEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREVSIHwgR1NUX0VMRU1FTlRfRkFDVE9S
WV9UWVBFX01FRElBX1ZJREVPLCBHU1RfUkFOS19NQVJHSU5BTCk7CisKKyAgICAgICAgZW51bSBF
bGVtZW50VHlwZSB7CisgICAgICAgICAgICBBdWRpb0RlY29kZXIgPSAwLAorICAgICAgICAgICAg
VmlkZW9EZWNvZGVyLAorICAgICAgICAgICAgRGVtdXhlcgorICAgICAgICB9OworICAgICAgICBz
dHJ1Y3QgR3N0Q2Fwc1dlYktpdE1hcHBpbmcgeworICAgICAgICAgICAgRWxlbWVudFR5cGUgZWxl
bWVudFR5cGU7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBjYXBzU3RyaW5nOworICAgICAgICAg
ICAgVmVjdG9yPEF0b21pY1N0cmluZz4gd2Via2l0Q29kZWNzOworICAgICAgICB9OworCisgICAg
ICAgIFZlY3RvcjxHc3RDYXBzV2ViS2l0TWFwcGluZz4gbWFwcGluZyA9IHsKKyAgICAgICAgICAg
IHtWaWRlb0RlY29kZXIsICJ2aWRlby94LWgyNjQsICBwcm9maWxlPShzdHJpbmcpeyBjb25zdHJh
aW5lZC1iYXNlbGluZSwgYmFzZWxpbmUgfSIsIHsieC1oMjY0In19LAorICAgICAgICAgICAge1Zp
ZGVvRGVjb2RlciwgInZpZGVvL3gtaDI2NCwgc3RyZWFtLWZvcm1hdD1hdmMiLCB7ImF2YyoifX0s
CisgICAgICAgICAgICB7VmlkZW9EZWNvZGVyLCAidmlkZW8vbXBlZywgbXBlZ3ZlcnNpb249KGlu
dCl7MSwyfSwgc3lzdGVtc3RyZWFtPShib29sZWFuKWZhbHNlIiwgeyJtcGVnIn19LAorICAgICAg
ICB9OworCisgICAgICAgIGZvciAoYXV0byYgY3VycmVudCA6IG1hcHBpbmcpIHsKKyAgICAgICAg
ICAgIEdMaXN0KiBmYWN0b3JpZXMgPSBudWxscHRyOworICAgICAgICAgICAgaWYgKGN1cnJlbnQu
ZWxlbWVudFR5cGUgPT0gQXVkaW9EZWNvZGVyKQorICAgICAgICAgICAgICAgIGZhY3RvcmllcyA9
IGF1ZGlvRGVjb2RlckZhY3RvcmllczsKKyAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQuZWxl
bWVudFR5cGUgPT0gVmlkZW9EZWNvZGVyKQorICAgICAgICAgICAgICAgIGZhY3RvcmllcyA9IHZp
ZGVvRGVjb2RlckZhY3RvcmllczsKKworICAgICAgICAgICAgaWYgKGdzdFJlZ2lzdHJ5SGFzRWxl
bWVudEZvck1lZGlhVHlwZShmYWN0b3JpZXMsIGN1cnJlbnQuY2Fwc1N0cmluZykpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoIWN1cnJlbnQud2Via2l0Q29kZWNzLmlzRW1wdHkoKSkgeworICAgICAg
ICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIG1pbWVUeXBlIDogY3VycmVudC53ZWJraXRD
b2RlY3MpCisgICAgICAgICAgICAgICAgICAgICAgICBzZXQuYWRkKG1pbWVUeXBlKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChBdG9taWNTdHJp
bmcoY3VycmVudC5jYXBzU3RyaW5nKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBib29sIGF1ZGlvTXBlZ1N1cHBvcnRlZCA9IGZhbHNlOworICAgICAgICBpZiAoZ3N0UmVn
aXN0cnlIYXNFbGVtZW50Rm9yTWVkaWFUeXBlKGF1ZGlvRGVjb2RlckZhY3RvcmllcywgImF1ZGlv
L21wZWcsIG1wZWd2ZXJzaW9uPShpbnQpMSwgbGF5ZXI9KGludClbMSwgM10iKSkgeworICAgICAg
ICAgICAgYXVkaW9NcGVnU3VwcG9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHNldC5hZGQoQXRv
bWljU3RyaW5nKCJhdWRpby9tcDMiKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZ3N0UmVn
aXN0cnlIYXNFbGVtZW50Rm9yTWVkaWFUeXBlKGF1ZGlvRGVjb2RlckZhY3RvcmllcywgImF1ZGlv
L21wZWcsIG1wZWd2ZXJzaW9uPShpbnQpezIsIDR9IikpIHsKKyAgICAgICAgICAgIGF1ZGlvTXBl
Z1N1cHBvcnRlZCA9IHRydWU7CisgICAgICAgICAgICBzZXQuYWRkKEF0b21pY1N0cmluZygibXA0
YSoiKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXVkaW9NcGVnU3VwcG9ydGVkKSB7Cisg
ICAgICAgICAgICBzZXQuYWRkKEF0b21pY1N0cmluZygiYXVkaW8vbXBlZyIpKTsKKyAgICAgICAg
ICAgIHNldC5hZGQoQXRvbWljU3RyaW5nKCJhdWRpby94LW1wZWciKSk7CisgICAgICAgIH0KKwor
CisgICAgICAgIGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUoYXVkaW9EZWNvZGVyRmFjdG9y
aWVzKTsKKyAgICAgICAgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSh2aWRlb0RlY29kZXJG
YWN0b3JpZXMpOworCisgICAgICAgIHJldHVybiBzZXQ7CisgICAgfSgpOworICAgIHJldHVybiBj
b2RlY1R5cGVzOworfQorCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3Vw
cG9ydHNDb2RlY3MoY29uc3QgU3RyaW5nJiBjb2RlY3MpCiB7Ci0gICAgc3RhdGljIFZlY3Rvcjxj
b25zdCBjaGFyKj4gc3VwcG9ydGVkQ29kZWNzID0geyAiYXZjKiIsICJtcDRhKiIsICJtcGVnIiwg
IngtaDI2NCIgfTsKICAgICBWZWN0b3I8U3RyaW5nPiBjb2RlY0VudHJpZXM7CiAgICAgY29kZWNz
LnNwbGl0KCcsJywgZmFsc2UsIGNvZGVjRW50cmllcyk7CiAKQEAgLTc2Miw4ICs4MzQsOCBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3VwcG9ydHNDb2RlY3MoY29uc3Qg
U3RyaW5nJiBjb2RlY3MpCiAgICAgICAgICAgICBjb2RlYyA9IGNvZGVjLnN1YnN0cmluZyhzbGFz
aEluZGV4KzEpOwogCiAgICAgICAgIGNvbnN0IGNoYXIqIGNvZGVjRGF0YSA9IGNvZGVjLnV0Zjgo
KS5kYXRhKCk7Ci0gICAgICAgIGZvciAoY29uc3QgYXV0byYgcGF0dGVybiA6IHN1cHBvcnRlZENv
ZGVjcykgewotICAgICAgICAgICAgaXNDb2RlY1N1cHBvcnRlZCA9ICFmbm1hdGNoKHBhdHRlcm4s
IGNvZGVjRGF0YSwgMCk7CisgICAgICAgIGZvciAoU3RyaW5nIHBhdHRlcm4gOiBjb2RlY1NldCgp
KSB7CisgICAgICAgICAgICBpc0NvZGVjU3VwcG9ydGVkID0gIWZubWF0Y2gocGF0dGVybi51dGY4
KCkuZGF0YSgpLCBjb2RlY0RhdGEsIDApOwogICAgICAgICAgICAgaWYgKGlzQ29kZWNTdXBwb3J0
ZWQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyTVNFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCmluZGV4IDBkM2ViYjkw
MmEwY2RiY2E5M2NjMjEwYTcyOTliZjU3OTU1MWUzZmIuLjY4MTdlY2E3OTAyZTFkMWVmZWNkNmI0
YmM1NmZhNjRlYmFkNDllYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0UuaApAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJNU0UpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogICAgIGZyaWVuZCBjbGFzcyBNZWRp
YVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRTsKKyAgICBmcmllbmQgYm9vbCBjYWxsSW5pdGlhbGl6
ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKTsKIAogcHVibGljOgogICAgIGV4
cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRShNZWRpYVBsYXllciopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309076</attachid>
            <date>2017-05-04 11:59:29 -0700</date>
            <delta_ts>2017-05-09 12:41:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167120-20170504205928.patch</filename>
            <type>text/plain</type>
            <size>11205</size>
            <attacher name="Vanessa Chipirrás Navalón">vchipirras</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyOTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjExNWE3MWIwYzlmYjk1
YjI3OGMzNmE1YWFiMWI5NDA0NDA1MTYzZi4uMDk1ODU4MmNhMTdhNjM0NmJhODkyODUzMjgwMWY5
NWY0MzI0NDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTA0LTI3ICBWYW5l
c3NhIENoaXBpcnLDoXMgTmF2YWzDs24gIDx2Y2hpcGlycmFzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bR1N0cmVhbWVyXVtNU0VdIENyYXNoIG9uIHlvdXR1YmUgd2hlbiBNU0UgaXMgZW5h
YmxlZCBidXQgZ3N0cmVhbWVyIGNhbnQgZmluZCB0aGUgZGVjb2RlciBlbGVtZW50LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MTIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBiZWNhdXNl
IHN1cHBvcnRDb2RlY3MoKSBkb2Vzbid0IGNoZWNrIGluIHJ1bnRpbWUgd2hpY2ggcGx1Z2lucyB0
aGUgcGxheWVyIGhhcy4KKyAgICAgICAgU28sIGEgc3RhdGljIGZ1bmN0aW9uIHdoaWNoIHJldHVy
bnMgYSBtYXAgd2l0aCB0aGUgcGx1Z2lucyBoYXMgYmVlbiBjcmVhdGVkLiBUaGF0IG1hcCBpcyBs
YXRlcgorICAgICAgICB1c2VkIGluIHRoZSBzdXBwb3J0c0NvZGVjcygpIG1ldGhvZCB0byBjaGVj
ayBpZiB0aGUgcmVxdWVzdGVkIGNvZGVjIG1hdGNoZXMgYW55IG9mIHRoZSBtYXAuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjppbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cyk6Cisg
ICAgICAgIFRoZSBkZWNsYXJhdGlvbiBpcyBtb3ZlZCBpbnRvIHRoaXMgY2xhc3MuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omlz
QXZhaWxhYmxlKTogVGhpcyBmdW5jdGlvbiBjYWxscyB0aGUgaW1wbGVtZW50YXRpb24gb2YKKyAg
ICAgICAgaW5pdGlhbGl6ZUdzdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMgZnVuY3Rp
b24uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQp
OiBEaXR0bworICAgICAgICAoV2ViQ29yZTo6bWltZVR5cGVTZXQpOiBEaXR0bworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmg6IEl0IGlzIHN0YXRpYyB0eXBlIHRvIGV4cG9zZQorICAgICAgICBpbml0aWFsaXplR1N0
cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBm
cm9tIGludGVybmFsIGZ1bmN0aW9uCisgICAgICAgICJ3aGljaCBydW5zIGJlZm9yZSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlIGluaXRpYWxpemF0aW9uIGJ1dCBuZWVkcyB0byBoYXZl
IEdTdHJlYW1lciBpbml0aWFsaXplZCIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29kZWNTZXQpOiBJdCByZXR1cm5zIGEgbWFwIHdpdGggdGhlIHBsdWdpbnMgaGFz
IGJlZW4gY3JlYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRTo6c3VwcG9ydHNDb2RlY3MpOiBUbyBjaGVjayBpZiB0aGUgcmVxdWVzdGVkIGNvZGVj
CisgICAgICAgIG1hdGNoZXMgYW55IG9mIHRoZSBtYXAgZnJvbSBjb2RlY1NldCgpLgorCiAyMDE3
LTAyLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1N0cmVhbWVyXSBTZXZlcmFsIGxheW91dCB0ZXN0cyB0cmlnZ2VyIEdTdHJlYW1lci1D
UklUSUNBTCAqKjogZ3N0X2Jpbl9nZXRfYnlfbmFtZTogYXNzZXJ0aW9uICdHU1RfSVNfQklOIChi
aW4pJyBmYWlsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKaW5kZXggZmNjZWUzY2M4ZjQ0NGNhYWVjZjdlMzFkNjY3NTRkZDM3ZTk1ZTIyMy4uNjEy
NTk1MGVhOTg0NGY3NmMzYzlmZjBhMmRkMjFhMWJjNTc0MmE0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTExMCwyNSArMTEwLDkgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3RyYXIgcmVnaXMKICAgICAgICAgICAgIGdldFN1cHBvcnRlZFR5cGVzLCBz
dXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKIH0KIAotYm9vbCBpbml0
aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCi17Ci0gICAgaWYgKCFp
bml0aWFsaXplR1N0cmVhbWVyKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJlZ2lz
dGVyV2ViS2l0R1N0cmVhbWVyRWxlbWVudHMoKTsKLQotICAgIEdSZWZQdHI8R3N0RWxlbWVudEZh
Y3Rvcnk+IHNyY0ZhY3RvcnkgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJ3
ZWJraXR3ZWJzcmMiKSk7Ci0gICAgaWYgKCFzcmNGYWN0b3J5KSB7Ci0gICAgICAgIEdTVF9ERUJV
R19DQVRFR09SWV9JTklUKHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcsICJ3ZWJraXRtZWRpYXBs
YXllciIsIDAsICJXZWJLaXQgbWVkaWEgcGxheWVyIik7Ci0gICAgICAgIGdzdF9lbGVtZW50X3Jl
Z2lzdGVyKDAsICJ3ZWJraXR3ZWJzcmMiLCBHU1RfUkFOS19QUklNQVJZICsgMTAwLCBXRUJLSVRf
VFlQRV9XRUJfU1JDKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICBpZiAoIWluaXRp
YWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkpCisgICAgaWYgKCFNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjppbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0
ZXJXZWJLaXRFbGVtZW50cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBHUmVmUHRy
PEdzdEVsZW1lbnRGYWN0b3J5PiBmYWN0b3J5ID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2ZhY3Rv
cnlfZmluZCgicGxheWJpbiIpKTsKQEAgLTIyOCw3ICsyMTIsNyBAQCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsK
LSAgICBpZiAoIWluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkp
CisgICAgaWYgKCFNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjppbml0aWFsaXplR1N0
cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBVUkwgdXJsKFVSTCgpLCB1cmxTdHJpbmcpOwpAQCAtMTc4MSw3ICsxNzY1LDcgQEAgc3RhdGlj
IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBtaW1lVHlwZVNldCgp
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+PiBtaW1lVHlwZXMgPSBbXSgpCiAgICAgewotICAgICAgICBpbml0aWFs
aXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpOworICAgICAgICBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjppbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJX
ZWJLaXRFbGVtZW50cygpOwogICAgICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5z
aXRpdmVIYXNoPiBzZXQ7CiAKICAgICAgICAgR0xpc3QqIGF1ZGlvRGVjb2RlckZhY3RvcmllcyA9
IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMoR1NUX0VMRU1FTlRfRkFDVE9S
WV9UWVBFX0RFQ09ERVIgfCBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfQVVESU8sIEdT
VF9SQU5LX01BUkdJTkFMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCBmZWRhZDVmMTIwMTA5ZjNiMTUyMjQ3ZjdiMzExOWU4
YzY2YjI5Yzc4Li45YzM2YWU1NTg2NGZlZTM0OTUwNTM4NWQ3MDk0ODY1NTY3YzA1ZjRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CkBAIC0xMjYsNiArMTI2LDIyIEBAIHZvaWQgcmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50
cygpCiAjZW5kaWYKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpp
bml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCit7CisgICAgaWYg
KCFpbml0aWFsaXplR1N0cmVhbWVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
Z2lzdGVyV2ViS2l0R1N0cmVhbWVyRWxlbWVudHMoKTsKKworICAgIEdSZWZQdHI8R3N0RWxlbWVu
dEZhY3Rvcnk+IHNyY0ZhY3RvcnkgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5k
KCJ3ZWJraXR3ZWJzcmMiKSk7CisgICAgaWYgKCFzcmNGYWN0b3J5KSB7CisgICAgICAgIEdTVF9E
RUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcsICJ3ZWJraXRtZWRp
YXBsYXllciIsIDAsICJXZWJLaXQgbWVkaWEgcGxheWVyIik7CisgICAgICAgIGdzdF9lbGVtZW50
X3JlZ2lzdGVyKDAsICJ3ZWJraXR3ZWJzcmMiLCBHU1RfUkFOS19QUklNQVJZICsgMTAwLCBXRUJL
SVRfVFlQRV9XRUJfU1JDKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGlj
IGludCBncmVhdGVzdENvbW1vbkRpdmlzb3IoaW50IGEsIGludCBiKQogewogICAgIHdoaWxlIChi
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uu
aAppbmRleCBmOGZiMmMxY2YwNjU1ZDJhZDgxNmJmNDkwZWQxNWJkZWY3YjFmMmNmLi5kMjhiOGI2
ODdlNTMzNzFlN2JmMTJlNGYyYzcwNmY1YTZkNjc4YmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgZW5zdXJlR3N0R0xDb250ZXh0KCk7CiAgICAgc3RhdGljIEdzdENvbnRl
eHQqIHJlcXVlc3RHTENvbnRleHQoY29uc3QgZ2NoYXIqIGNvbnRleHRUeXBlLCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlKik7CiAjZW5kaWYKLQorICAgIHN0YXRpYyBib29sIGluaXRp
YWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCk7CiAgICAgYm9vbCBzdXBw
b3J0c011dGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHNl
dE11dGVkKGJvb2wpIG92ZXJyaWRlOwogICAgIGJvb2wgbXV0ZWQoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcApp
bmRleCA0NjE0ZWI5YjliNWU3YTUwOGFiOWViZTIwMDFiNWVhNGM1NDdhMzMyLi42MmJmY2UxNGJi
MjkyZjc5Y2U1MDRjMjQxZjhjMmQ0YzMxOGViNGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCkBAIC00OCw3ICs0OCwx
MyBAQAogI2luY2x1ZGUgPGdzdC9wYnV0aWxzL3BidXRpbHMuaD4KICNpbmNsdWRlIDxnc3Qvdmlk
ZW8vdmlkZW8uaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNo
Lmg+CisKKworCiAKIHN0YXRpYyBjb25zdCBjaGFyKiBkdW1wUmVhZHlTdGF0ZShXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKQogewpAQCAtNzQ3LDkgKzc1Myw4NCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6dHJhY2tEZXRlY3RlZChSZWZQ
dHI8QXBwZW5kUGlwZWxpbmU+IGFwcGVuZAogICAgICAgICBtX3BsYXliYWNrUGlwZWxpbmUtPnJl
YXR0YWNoVHJhY2soYXBwZW5kUGlwZWxpbmUtPnNvdXJjZUJ1ZmZlclByaXZhdGUoKSwgbmV3VHJh
Y2spOwogfQogCitjb25zdCBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBjb2RlY1NldCgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8QXRvbWljU3RyaW5nPj4gY29k
ZWNUeXBlcyA9IFtdKCkKKyAgICB7CisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6OmluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCk7Cisg
ICAgICAgIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiBzZXQ7CisKKyAgICAgICAgR0xpc3QqIGF1ZGlv
RGVjb2RlckZhY3RvcmllcyA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMo
R1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ09ERVIgfCBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZ
UEVfTUVESUFfQVVESU8sIEdTVF9SQU5LX01BUkdJTkFMKTsKKyAgICAgICAgR0xpc3QqIHZpZGVv
RGVjb2RlckZhY3RvcmllcyA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMo
R1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ09ERVIgfCBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZ
UEVfTUVESUFfVklERU8sIEdTVF9SQU5LX01BUkdJTkFMKTsKKworICAgICAgICBlbnVtIEVsZW1l
bnRUeXBlIHsKKyAgICAgICAgICAgIEF1ZGlvRGVjb2RlciA9IDAsCisgICAgICAgICAgICBWaWRl
b0RlY29kZXIKKyAgICAgICAgfTsKKyAgICAgICAgc3RydWN0IEdzdENhcHNXZWJLaXRNYXBwaW5n
IHsKKyAgICAgICAgICAgIEVsZW1lbnRUeXBlIGVsZW1lbnRUeXBlOworICAgICAgICAgICAgY29u
c3QgY2hhciogY2Fwc1N0cmluZzsKKyAgICAgICAgICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IHdl
YmtpdENvZGVjczsKKyAgICAgICAgfTsKKworICAgICAgICBzdGQ6OmFycmF5PEdzdENhcHNXZWJL
aXRNYXBwaW5nLCAzPiBtYXBwaW5nID0geyB7CisgICAgICAgICAgICB7IFZpZGVvRGVjb2Rlciwg
InZpZGVvL3gtaDI2NCwgIHByb2ZpbGU9KHN0cmluZyl7IGNvbnN0cmFpbmVkLWJhc2VsaW5lLCBi
YXNlbGluZSB9IiwgeyAieC1oMjY0IiB9IH0sCisgICAgICAgICAgICB7IFZpZGVvRGVjb2Rlciwg
InZpZGVvL3gtaDI2NCwgc3RyZWFtLWZvcm1hdD1hdmMiLCB7ICJhdmMqIn0gfSwKKyAgICAgICAg
ICAgIHsgVmlkZW9EZWNvZGVyLCAidmlkZW8vbXBlZywgbXBlZ3ZlcnNpb249KGludCl7MSwyfSwg
c3lzdGVtc3RyZWFtPShib29sZWFuKWZhbHNlIiwgeyAibXBlZyIgfSB9CisgICAgICAgIH0gfTsK
KworICAgICAgICBmb3IgKGF1dG8mIGN1cnJlbnQgOiBtYXBwaW5nKSB7CisgICAgICAgICAgICBH
TGlzdCogZmFjdG9yaWVzID0gbnVsbHB0cjsKKyAgICAgICAgICAgIHN3aXRjaCAoY3VycmVudC5l
bGVtZW50VHlwZSkgeworICAgICAgICAgICAgY2FzZSBBdWRpb0RlY29kZXI6CisgICAgICAgICAg
ICAgICAgZmFjdG9yaWVzID0gYXVkaW9EZWNvZGVyRmFjdG9yaWVzOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBWaWRlb0RlY29kZXI6CisgICAgICAgICAgICAgICAg
ZmFjdG9yaWVzID0gdmlkZW9EZWNvZGVyRmFjdG9yaWVzOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnX2Fzc2VydF9ub3RfcmVh
Y2hlZCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBnX2Fzc2VydF9ub25udWxsKGZhY3Rvcmllcyk7CisKKyAgICAgICAgICAgIGlmIChnc3RS
ZWdpc3RyeUhhc0VsZW1lbnRGb3JNZWRpYVR5cGUoZmFjdG9yaWVzLCBjdXJyZW50LmNhcHNTdHJp
bmcpICYmIGZhY3RvcmllcyAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgaWYgKCFjdXJy
ZW50LndlYmtpdENvZGVjcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBtaW1lVHlwZSA6IGN1cnJlbnQud2Via2l0Q29kZWNzKQorICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0LmFkZChtaW1lVHlwZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIHNldC5hZGQoQXRvbWljU3RyaW5nKGN1cnJlbnQuY2Fwc1N0cmlu
ZykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYm9vbCBhdWRpb01wZWdT
dXBwb3J0ZWQgPSBmYWxzZTsKKyAgICAgICAgaWYgKGdzdFJlZ2lzdHJ5SGFzRWxlbWVudEZvck1l
ZGlhVHlwZShhdWRpb0RlY29kZXJGYWN0b3JpZXMsICJhdWRpby9tcGVnLCBtcGVndmVyc2lvbj0o
aW50KTEsIGxheWVyPShpbnQpWzEsIDNdIikpIHsKKyAgICAgICAgICAgIGF1ZGlvTXBlZ1N1cHBv
cnRlZCA9IHRydWU7CisgICAgICAgICAgICBzZXQuYWRkKEF0b21pY1N0cmluZygiYXVkaW8vbXAz
IikpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGdzdFJlZ2lzdHJ5SGFzRWxlbWVudEZvck1l
ZGlhVHlwZShhdWRpb0RlY29kZXJGYWN0b3JpZXMsICJhdWRpby9tcGVnLCBtcGVndmVyc2lvbj0o
aW50KXsyLCA0fSIpKSB7CisgICAgICAgICAgICBhdWRpb01wZWdTdXBwb3J0ZWQgPSB0cnVlOwor
ICAgICAgICAgICAgc2V0LmFkZChBdG9taWNTdHJpbmcoIm1wNGEqIikpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKGF1ZGlvTXBlZ1N1cHBvcnRlZCkgeworICAgICAgICAgICAgc2V0LmFkZChB
dG9taWNTdHJpbmcoImF1ZGlvL21wZWciKSk7CisgICAgICAgICAgICBzZXQuYWRkKEF0b21pY1N0
cmluZygiYXVkaW8veC1tcGVnIikpOworICAgICAgICB9CisKKworICAgICAgICBnc3RfcGx1Z2lu
X2ZlYXR1cmVfbGlzdF9mcmVlKGF1ZGlvRGVjb2RlckZhY3Rvcmllcyk7CisgICAgICAgIGdzdF9w
bHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUodmlkZW9EZWNvZGVyRmFjdG9yaWVzKTsKKworICAgICAg
ICByZXR1cm4gc2V0OworICAgIH0oKTsKKyAgICByZXR1cm4gY29kZWNUeXBlczsKK30KKwogYm9v
bCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRzQ29kZWNzKGNvbnN0IFN0
cmluZyYgY29kZWNzKQogewotICAgIHN0YXRpYyBWZWN0b3I8Y29uc3QgY2hhcio+IHN1cHBvcnRl
ZENvZGVjcyA9IHsgImF2YyoiLCAibXA0YSoiLCAibXBlZyIsICJ4LWgyNjQiIH07CiAgICAgVmVj
dG9yPFN0cmluZz4gY29kZWNFbnRyaWVzOwogICAgIGNvZGVjcy5zcGxpdCgnLCcsIGZhbHNlLCBj
b2RlY0VudHJpZXMpOwogCkBAIC03NjIsOCArODQzLDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRzQ29kZWNzKGNvbnN0IFN0cmluZyYgY29kZWNzKQogICAg
ICAgICAgICAgY29kZWMgPSBjb2RlYy5zdWJzdHJpbmcoc2xhc2hJbmRleCsxKTsKIAogICAgICAg
ICBjb25zdCBjaGFyKiBjb2RlY0RhdGEgPSBjb2RlYy51dGY4KCkuZGF0YSgpOwotICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIHBhdHRlcm4gOiBzdXBwb3J0ZWRDb2RlY3MpIHsKLSAgICAgICAgICAg
IGlzQ29kZWNTdXBwb3J0ZWQgPSAhZm5tYXRjaChwYXR0ZXJuLCBjb2RlY0RhdGEsIDApOworICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhdHRlcm4gOiBjb2RlY1NldCgpKSB7CisgICAgICAgICAg
ICBpc0NvZGVjU3VwcG9ydGVkID0gIWZubWF0Y2gocGF0dGVybi5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCBjb2RlY0RhdGEsIDApOwogICAgICAgICAgICAgaWYgKGlzQ29kZWNTdXBwb3J0ZWQpCiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309524</attachid>
            <date>2017-05-09 12:41:53 -0700</date>
            <delta_ts>2017-05-18 07:05:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167120-20170509214152.patch</filename>
            <type>text/plain</type>
            <size>11193</size>
            <attacher name="Vanessa Chipirrás Navalón">vchipirras</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRmMTAwMWY3OGM4OTUw
YzJmNDU1M2I2ZjgzODc3MjRmNDE3N2VjYS4uMTU1NDc0ODA1YTZhMjNmOThlYjQ5OGMyODQ1OThk
N2QxYzM2MjMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTA1LTA5ICBWYW5l
c3NhIENoaXBpcnLDoXMgTmF2YWzDs24gIDx2Y2hpcGlycmFzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bR1N0cmVhbWVyXVtNU0VdIENyYXNoIG9uIHlvdXR1YmUgd2hlbiBNU0UgaXMgZW5h
YmxlZCBidXQgZ3N0cmVhbWVyIGNhbnQgZmluZCB0aGUgZGVjb2RlciBlbGVtZW50LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MTIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBiZWNhdXNl
IHN1cHBvcnRDb2RlY3MoKSBkb2Vzbid0IGNoZWNrIGluIHJ1bnRpbWUgd2hpY2ggcGx1Z2lucyB0
aGUgcGxheWVyIGhhcy4KKyAgICAgICAgU28sIGEgc3RhdGljIGZ1bmN0aW9uIHdoaWNoIHJldHVy
bnMgYSBtYXAgd2l0aCB0aGUgcGx1Z2lucyBoYXMgYmVlbiBjcmVhdGVkLiBUaGF0IG1hcCBpcyBs
YXRlcgorICAgICAgICB1c2VkIGluIHRoZSBzdXBwb3J0c0NvZGVjcygpIG1ldGhvZCB0byBjaGVj
ayBpZiB0aGUgcmVxdWVzdGVkIGNvZGVjIG1hdGNoZXMgYW55IG9mIHRoZSBtYXAuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjppbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cyk6Cisg
ICAgICAgIFRoZSBkZWNsYXJhdGlvbiBpcyBtb3ZlZCBpbnRvIHRoaXMgY2xhc3MuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omlz
QXZhaWxhYmxlKTogVGhpcyBmdW5jdGlvbiBjYWxscyB0aGUgaW1wbGVtZW50YXRpb24gb2YKKyAg
ICAgICAgaW5pdGlhbGl6ZUdzdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMgZnVuY3Rp
b24uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQp
OiBEaXR0bworICAgICAgICAoV2ViQ29yZTo6bWltZVR5cGVTZXQpOiBEaXR0bworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmg6IEl0IGlzIHN0YXRpYyB0eXBlIHRvIGV4cG9zZQorICAgICAgICBpbml0aWFsaXplR1N0
cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBm
cm9tIGludGVybmFsIGZ1bmN0aW9uCisgICAgICAgICJ3aGljaCBydW5zIGJlZm9yZSBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlIGluaXRpYWxpemF0aW9uIGJ1dCBuZWVkcyB0byBoYXZl
IEdTdHJlYW1lciBpbml0aWFsaXplZCIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29kZWNTZXQpOiBJdCByZXR1cm5zIGEgbWFwIHdpdGggdGhlIHBsdWdpbnMgaGFz
IGJlZW4gY3JlYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRTo6c3VwcG9ydHNDb2RlY3MpOiBUbyBjaGVjayBpZiB0aGUgcmVxdWVzdGVkIGNvZGVj
CisgICAgICAgIG1hdGNoZXMgYW55IG9mIHRoZSBtYXAgZnJvbSBjb2RlY1NldCgpLgorCiAyMDE3
LTA1LTA5ICBOYWVsIE91ZWRyYW9nbyAgPG5hZWwub3VlZHJhb2dvQGNyZi5jYW5vbi5mcj4KIAog
ICAgICAgICBJbnZhbGlkIE1lZGlhU291cmNlIGR1cmF0aW9uIHZhbHVlIHNob3VsZCB0aHJvdyBU
eXBlckVycm9yIGluc3RlYWQgb2YgSW52YWxpZFN0YXRlRXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggYjM1NjAzOGNkYjcyMGM4Y2Zk
NjI1NTdiYzBkZWZjOWRmNTRlYjNmNS4uZDg3ZWE0MDBkNjM5MTFlZmRmZWNiOGMzOTMwZWI2Zjgx
YmE2MDNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKQEAgLTExMCwyNSArMTEwLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXMKICAgICAg
ICAgICAgIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIHN1cHBvcnRzS2V5U3lzdGVtKTsKIH0KIAotYm9vbCBpbml0aWFsaXplR1N0cmVh
bWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCi17Ci0gICAgaWYgKCFpbml0aWFsaXplR1N0
cmVhbWVyKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJlZ2lzdGVyV2ViS2l0R1N0
cmVhbWVyRWxlbWVudHMoKTsKLQotICAgIEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rvcnk+IHNyY0Zh
Y3RvcnkgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJ3ZWJraXR3ZWJzcmMi
KSk7Ci0gICAgaWYgKCFzcmNGYWN0b3J5KSB7Ci0gICAgICAgIEdTVF9ERUJVR19DQVRFR09SWV9J
TklUKHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcsICJ3ZWJraXRtZWRpYXBsYXllciIsIDAsICJX
ZWJLaXQgbWVkaWEgcGxheWVyIik7Ci0gICAgICAgIGdzdF9lbGVtZW50X3JlZ2lzdGVyKG51bGxw
dHIsICJ3ZWJraXR3ZWJzcmMiLCBHU1RfUkFOS19QUklNQVJZICsgMTAwLCBXRUJLSVRfVFlQRV9X
RUJfU1JDKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICBpZiAoIWluaXRpYWxpemVH
U3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkpCisgICAgaWYgKCFNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlOjppbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJL
aXRFbGVtZW50cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBHUmVmUHRyPEdzdEVs
ZW1lbnRGYWN0b3J5PiBmYWN0b3J5ID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2ZhY3RvcnlfZmlu
ZCgicGxheWJpbiIpKTsKQEAgLTIyNyw3ICsyMTEsNyBAQCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKLSAgICBp
ZiAoIWluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkpCisgICAg
aWYgKCFNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjppbml0aWFsaXplR1N0cmVhbWVy
QW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBVUkwg
dXJsKFVSTCgpLCB1cmxTdHJpbmcpOwpAQCAtMTc3Niw3ICsxNzYwLDcgQEAgc3RhdGljIEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBtaW1lVHlwZVNldCgpCiB7CiAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+PiBtaW1lVHlwZXMgPSBbXSgpCiAgICAgewotICAgICAgICBpbml0aWFsaXplR1N0
cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpOworICAgICAgICBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjppbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRF
bGVtZW50cygpOwogICAgICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiBzZXQ7CiAKICAgICAgICAgR0xpc3QqIGF1ZGlvRGVjb2RlckZhY3RvcmllcyA9IGdzdF9l
bGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMoR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBF
X0RFQ09ERVIgfCBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfQVVESU8sIEdTVF9SQU5L
X01BUkdJTkFMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmNwcAppbmRleCBjYTRmMDkwNzQ3N2U1ZDA0YTFkZGQyZGU2MTM2NjY4NjVjNmE4
NGNmLi5iYjk2OWIyYjRlZjU1ZmI2Mjc2OTc1ZmM3NTA0NjMyMmJiZDM0NDVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0x
MjksNiArMTI5LDIyIEBAIHZvaWQgcmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cygpCiAj
ZW5kaWYKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjppbml0aWFs
aXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCit7CisgICAgaWYgKCFpbml0
aWFsaXplR1N0cmVhbWVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJlZ2lzdGVy
V2ViS2l0R1N0cmVhbWVyRWxlbWVudHMoKTsKKworICAgIEdSZWZQdHI8R3N0RWxlbWVudEZhY3Rv
cnk+IHNyY0ZhY3RvcnkgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJ3ZWJr
aXR3ZWJzcmMiKSk7CisgICAgaWYgKCFzcmNGYWN0b3J5KSB7CisgICAgICAgIEdTVF9ERUJVR19D
QVRFR09SWV9JTklUKHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcsICJ3ZWJraXRtZWRpYXBsYXll
ciIsIDAsICJXZWJLaXQgbWVkaWEgcGxheWVyIik7CisgICAgICAgIGdzdF9lbGVtZW50X3JlZ2lz
dGVyKDAsICJ3ZWJraXR3ZWJzcmMiLCBHU1RfUkFOS19QUklNQVJZICsgMTAwLCBXRUJLSVRfVFlQ
RV9XRUJfU1JDKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGludCBn
cmVhdGVzdENvbW1vbkRpdmlzb3IoaW50IGEsIGludCBiKQogewogICAgIHdoaWxlIChiKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAppbmRl
eCAzN2Y3Mjg3MmQ1OWI5YWQ0MTZiNjEwNDY5NWNhMmNiMDQ5ZTFhMzU5Li42NWY2NWJkMTBkMWQy
MzQwODQ0ZWQ2ZjgzYzBiNmUyMjBiYzQ4NWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgZW5zdXJlR3N0R0xDb250ZXh0KCk7CiAgICAgc3RhdGljIEdzdENvbnRleHQqIHJl
cXVlc3RHTENvbnRleHQoY29uc3QgZ2NoYXIqIGNvbnRleHRUeXBlLCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlKik7CiAjZW5kaWYKLQorICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVH
U3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCk7CiAgICAgYm9vbCBzdXBwb3J0c011
dGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHNldE11dGVk
KGJvb2wpIG92ZXJyaWRlOwogICAgIGJvb2wgbXV0ZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAppbmRleCA0
NjE0ZWI5YjliNWU3YTUwOGFiOWViZTIwMDFiNWVhNGM1NDdhMzMyLi5kY2YwZmVmODAwYmYwYjAy
YmM0Nzg4MjE4ZDUzYjNjZjcwYTFhMjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1T
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCkBAIC00OCw3ICs0OCwxMCBAQAog
I2luY2x1ZGUgPGdzdC9wYnV0aWxzL3BidXRpbHMuaD4KICNpbmNsdWRlIDxnc3QvdmlkZW8vdmlk
ZW8uaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9taWNTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAK
IHN0YXRpYyBjb25zdCBjaGFyKiBkdW1wUmVhZHlTdGF0ZShXZWJDb3JlOjpNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSByZWFkeVN0YXRlKQogewpAQCAtNzQ3LDkgKzc1MCw4NCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6dHJhY2tEZXRlY3RlZChSZWZQdHI8QXBwZW5kUGlw
ZWxpbmU+IGFwcGVuZAogICAgICAgICBtX3BsYXliYWNrUGlwZWxpbmUtPnJlYXR0YWNoVHJhY2so
YXBwZW5kUGlwZWxpbmUtPnNvdXJjZUJ1ZmZlclByaXZhdGUoKSwgbmV3VHJhY2spOwogfQogCitj
b25zdCBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBjb2RlY1NldCgpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8QXRvbWljU3RyaW5nPj4gY29kZWNUeXBlcyA9IFtd
KCkKKyAgICB7CisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmluaXRp
YWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCk7CisgICAgICAgIEhhc2hT
ZXQ8QXRvbWljU3RyaW5nPiBzZXQ7CisKKyAgICAgICAgR0xpc3QqIGF1ZGlvRGVjb2RlckZhY3Rv
cmllcyA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMoR1NUX0VMRU1FTlRf
RkFDVE9SWV9UWVBFX0RFQ09ERVIgfCBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfQVVE
SU8sIEdTVF9SQU5LX01BUkdJTkFMKTsKKyAgICAgICAgR0xpc3QqIHZpZGVvRGVjb2RlckZhY3Rv
cmllcyA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMoR1NUX0VMRU1FTlRf
RkFDVE9SWV9UWVBFX0RFQ09ERVIgfCBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUVESUFfVklE
RU8sIEdTVF9SQU5LX01BUkdJTkFMKTsKKworICAgICAgICBlbnVtIEVsZW1lbnRUeXBlIHsKKyAg
ICAgICAgICAgIEF1ZGlvRGVjb2RlciA9IDAsCisgICAgICAgICAgICBWaWRlb0RlY29kZXIKKyAg
ICAgICAgfTsKKyAgICAgICAgc3RydWN0IEdzdENhcHNXZWJLaXRNYXBwaW5nIHsKKyAgICAgICAg
ICAgIEVsZW1lbnRUeXBlIGVsZW1lbnRUeXBlOworICAgICAgICAgICAgY29uc3QgY2hhciogY2Fw
c1N0cmluZzsKKyAgICAgICAgICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IHdlYmtpdENvZGVjczsK
KyAgICAgICAgfTsKKworICAgICAgICBzdGQ6OmFycmF5PEdzdENhcHNXZWJLaXRNYXBwaW5nLCAz
PiBtYXBwaW5nID0geyB7CisgICAgICAgICAgICB7IFZpZGVvRGVjb2RlciwgInZpZGVvL3gtaDI2
NCwgIHByb2ZpbGU9KHN0cmluZyl7IGNvbnN0cmFpbmVkLWJhc2VsaW5lLCBiYXNlbGluZSB9Iiwg
eyAieC1oMjY0IiB9IH0sCisgICAgICAgICAgICB7IFZpZGVvRGVjb2RlciwgInZpZGVvL3gtaDI2
NCwgc3RyZWFtLWZvcm1hdD1hdmMiLCB7ICJhdmMqIn0gfSwKKyAgICAgICAgICAgIHsgVmlkZW9E
ZWNvZGVyLCAidmlkZW8vbXBlZywgbXBlZ3ZlcnNpb249KGludCl7MSwyfSwgc3lzdGVtc3RyZWFt
PShib29sZWFuKWZhbHNlIiwgeyAibXBlZyIgfSB9CisgICAgICAgIH0gfTsKKworICAgICAgICBm
b3IgKGF1dG8mIGN1cnJlbnQgOiBtYXBwaW5nKSB7CisgICAgICAgICAgICBHTGlzdCogZmFjdG9y
aWVzID0gbnVsbHB0cjsKKyAgICAgICAgICAgIHN3aXRjaCAoY3VycmVudC5lbGVtZW50VHlwZSkg
eworICAgICAgICAgICAgY2FzZSBBdWRpb0RlY29kZXI6CisgICAgICAgICAgICAgICAgZmFjdG9y
aWVzID0gYXVkaW9EZWNvZGVyRmFjdG9yaWVzOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBWaWRlb0RlY29kZXI6CisgICAgICAgICAgICAgICAgZmFjdG9yaWVzID0g
dmlkZW9EZWNvZGVyRmFjdG9yaWVzOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBnX2Fzc2Vy
dF9ub25udWxsKGZhY3Rvcmllcyk7CisKKyAgICAgICAgICAgIGlmIChnc3RSZWdpc3RyeUhhc0Vs
ZW1lbnRGb3JNZWRpYVR5cGUoZmFjdG9yaWVzLCBjdXJyZW50LmNhcHNTdHJpbmcpICYmIGZhY3Rv
cmllcyAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50LndlYmtpdENv
ZGVjcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBt
aW1lVHlwZSA6IGN1cnJlbnQud2Via2l0Q29kZWNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
c2V0LmFkZChtaW1lVHlwZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIHNldC5hZGQoQXRvbWljU3RyaW5nKGN1cnJlbnQuY2Fwc1N0cmluZykpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYm9vbCBhdWRpb01wZWdTdXBwb3J0ZWQgPSBm
YWxzZTsKKyAgICAgICAgaWYgKGdzdFJlZ2lzdHJ5SGFzRWxlbWVudEZvck1lZGlhVHlwZShhdWRp
b0RlY29kZXJGYWN0b3JpZXMsICJhdWRpby9tcGVnLCBtcGVndmVyc2lvbj0oaW50KTEsIGxheWVy
PShpbnQpWzEsIDNdIikpIHsKKyAgICAgICAgICAgIGF1ZGlvTXBlZ1N1cHBvcnRlZCA9IHRydWU7
CisgICAgICAgICAgICBzZXQuYWRkKEF0b21pY1N0cmluZygiYXVkaW8vbXAzIikpOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKGdzdFJlZ2lzdHJ5SGFzRWxlbWVudEZvck1lZGlhVHlwZShhdWRp
b0RlY29kZXJGYWN0b3JpZXMsICJhdWRpby9tcGVnLCBtcGVndmVyc2lvbj0oaW50KXsyLCA0fSIp
KSB7CisgICAgICAgICAgICBhdWRpb01wZWdTdXBwb3J0ZWQgPSB0cnVlOworICAgICAgICAgICAg
c2V0LmFkZChBdG9taWNTdHJpbmcoIm1wNGEqIikpOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KGF1ZGlvTXBlZ1N1cHBvcnRlZCkgeworICAgICAgICAgICAgc2V0LmFkZChBdG9taWNTdHJpbmco
ImF1ZGlvL21wZWciKSk7CisgICAgICAgICAgICBzZXQuYWRkKEF0b21pY1N0cmluZygiYXVkaW8v
eC1tcGVnIikpOworICAgICAgICB9CisKKworICAgICAgICBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlz
dF9mcmVlKGF1ZGlvRGVjb2RlckZhY3Rvcmllcyk7CisgICAgICAgIGdzdF9wbHVnaW5fZmVhdHVy
ZV9saXN0X2ZyZWUodmlkZW9EZWNvZGVyRmFjdG9yaWVzKTsKKworICAgICAgICByZXR1cm4gc2V0
OworICAgIH0oKTsKKyAgICByZXR1cm4gY29kZWNUeXBlczsKK30KKwogYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRzQ29kZWNzKGNvbnN0IFN0cmluZyYgY29kZWNz
KQogewotICAgIHN0YXRpYyBWZWN0b3I8Y29uc3QgY2hhcio+IHN1cHBvcnRlZENvZGVjcyA9IHsg
ImF2YyoiLCAibXA0YSoiLCAibXBlZyIsICJ4LWgyNjQiIH07CiAgICAgVmVjdG9yPFN0cmluZz4g
Y29kZWNFbnRyaWVzOwogICAgIGNvZGVjcy5zcGxpdCgnLCcsIGZhbHNlLCBjb2RlY0VudHJpZXMp
OwogCkBAIC03NjIsOCArODQwLDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0U6OnN1cHBvcnRzQ29kZWNzKGNvbnN0IFN0cmluZyYgY29kZWNzKQogICAgICAgICAgICAgY29k
ZWMgPSBjb2RlYy5zdWJzdHJpbmcoc2xhc2hJbmRleCsxKTsKIAogICAgICAgICBjb25zdCBjaGFy
KiBjb2RlY0RhdGEgPSBjb2RlYy51dGY4KCkuZGF0YSgpOwotICAgICAgICBmb3IgKGNvbnN0IGF1
dG8mIHBhdHRlcm4gOiBzdXBwb3J0ZWRDb2RlY3MpIHsKLSAgICAgICAgICAgIGlzQ29kZWNTdXBw
b3J0ZWQgPSAhZm5tYXRjaChwYXR0ZXJuLCBjb2RlY0RhdGEsIDApOworICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIHBhdHRlcm4gOiBjb2RlY1NldCgpKSB7CisgICAgICAgICAgICBpc0NvZGVjU3Vw
cG9ydGVkID0gIWZubWF0Y2gocGF0dGVybi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBjb2RlY0Rh
dGEsIDApOwogICAgICAgICAgICAgaWYgKGlzQ29kZWNTdXBwb3J0ZWQpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>