<?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>211950</bug_id>
          
          <creation_ts>2020-05-15 04:24:52 -0700</creation_ts>
          <short_desc>[GStreamer][GTK][WPE] Expose and honor the media content types requiring hardware support setting</short_desc>
          <delta_ts>2020-05-28 06:42:33 -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>Other</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="Enrique Ocaña">eocanha</reporter>
          <assigned_to name="Enrique Ocaña">eocanha</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1653014</commentid>
    <comment_count>0</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-15 04:24:52 -0700</bug_when>
    <thetext>Bug #172787 added a new mediaContentTypesRequiringHardwareSupport setting to disable some multimedia codecs in case there&apos;s no accelerating hardware decoding available for them. Bug #191191 layed the ground for discriminating hardware supported codecs, but no GstRegistryScanner::areAllCodecsSupported() or GstRegistryScanner::isCodecSupported() call was actually passing the hardware support flag set to true (it was optional and set to false by default).

Using only hardware supported video codecs is critical on embedded devices and undesired on desktop devices, so a proper implementation honoring the mediaContentTypesRequiringHardwareSupport setting both for MSE and the regular player in WebKitGTK/WPE is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653041</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-15 07:21:16 -0700</bug_when>
    <thetext>(In reply to Enrique Ocaña from comment #0)
&gt; Bug #172787 added a new mediaContentTypesRequiringHardwareSupport setting to
&gt; disable some multimedia codecs in case there&apos;s no accelerating hardware
&gt; decoding available for them. Bug #191191 layed the ground for discriminating
&gt; hardware supported codecs, but no
&gt; GstRegistryScanner::areAllCodecsSupported() or
&gt; GstRegistryScanner::isCodecSupported() call was actually passing the
&gt; hardware support flag set to true (it was optional and set to false by
&gt; default).

Well there&apos;s one call-site where the flag is true:
https://github.com/WebKit/webkit/blob/master/Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp#L397</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653053</commentid>
    <comment_count>2</comment_count>
      <attachid>399478</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-15 08:02:23 -0700</bug_when>
    <thetext>Created attachment 399478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653054</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-05-15 08:03:17 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653058</commentid>
    <comment_count>4</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-15 08:16:52 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #1)
&gt; (In reply to Enrique Ocaña from comment #0)
&gt; &gt; Bug #172787 added a new mediaContentTypesRequiringHardwareSupport setting to
&gt; &gt; disable some multimedia codecs in case there&apos;s no accelerating hardware
&gt; &gt; decoding available for them. Bug #191191 layed the ground for discriminating
&gt; &gt; hardware supported codecs, but no
&gt; &gt; GstRegistryScanner::areAllCodecsSupported() or
&gt; &gt; GstRegistryScanner::isCodecSupported() call was actually passing the
&gt; &gt; hardware support flag set to true (it was optional and set to false by
&gt; &gt; default).
&gt; 
&gt; Well there&apos;s one call-site where the flag is true:
&gt; https://github.com/WebKit/webkit/blob/master/Source/WebCore/platform/
&gt; graphics/gstreamer/GStreamerRegistryScanner.cpp#L397

Oh, I see, thanks. Somehow I had missing that place. Anyway, while that&apos;s useful for querying according to the media capabilities spec, it&apos;s of no use for the MediaSource::isTypeSupported(), MediaSource::addSourceBuffer() and the regular MediaPlayer selection when providing multiple video tracks. Those use cases are addressed in the patch submitted in this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653062</commentid>
    <comment_count>5</comment_count>
      <attachid>399480</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-15 08:26:13 -0700</bug_when>
    <thetext>Created attachment 399480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653066</commentid>
    <comment_count>6</comment_count>
      <attachid>399481</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-15 08:38:05 -0700</bug_when>
    <thetext>Created attachment 399481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653292</commentid>
    <comment_count>7</comment_count>
      <attachid>399481</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-16 02:42:41 -0700</bug_when>
    <thetext>Comment on attachment 399481
Patch

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

The new API looks good to me. Thanks!

&gt; Source/WebCore/Modules/mediasource/MediaSource.cpp:685
&gt; +    if (!isTypeSupported(type, mediaContentTypesRequiringHardwareSupport))

I think you could move the Vector instead passing the ownership to isTypeSupported(()

&gt; Source/WebCore/Modules/mediasource/MediaSource.cpp:881
&gt; +        Document* document = downcast&lt;Document&gt;(&amp;context);

auto&amp; document = downcast&lt;Document&gt;(context);

&gt; Source/WebCore/Modules/mediasource/MediaSource.cpp:885
&gt; +    return isTypeSupported(type, mediaContentTypesRequiringHardwareSupport);

Move the vector here too.

&gt; Source/WebCore/Modules/mediasource/MediaSource.cpp:888
&gt; +bool MediaSource::isTypeSupported(const String&amp; type, const Vector&lt;ContentType&gt;&amp; contentTypesRequiringHardwareSupport)

And receive a Vector&lt;ContentType&gt;&amp;&amp; instead

&gt; Source/WebCore/Modules/mediasource/MediaSource.cpp:911
&gt; +    if (!contentTypesRequiringHardwareSupport.isEmpty())
&gt; +        parameters.contentTypesRequiringHardwareSupport.appendVector(contentTypesRequiringHardwareSupport);

So here you can just move without copying. I don&apos;t think you need to check if it&apos;s empty.

&gt; Source/WebCore/Modules/mediasource/MediaSource.h:134
&gt; +    static bool isTypeSupported(const String&amp; type, const Vector&lt;ContentType&gt;&amp; contentTypesRequiringHardwareSupport);

I think you can omit the Vector parameter name.

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:303
&gt; +    for (auto contentTypeRequiringHardwareSupport : contentTypesRequiringHardwareSupport) {

Vector::findMatching?

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:330
&gt; +    for (auto codec : codecs) {

const auto&amp; codec : codecs

&gt; Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:1561
&gt; +            &quot;&quot;,

We normally use nullptr as default value for strings.

&gt; Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:3834
&gt; + * Returns: Media content types requiring hardware support.

, or %NULL

&gt; Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:3842
&gt; +    return settings-&gt;priv-&gt;preferences-&gt;mediaContentTypesRequiringHardwareSupport().utf8().data();

This is returning a temporary, we need to cache the CString in the WebKitSettings priv struct to be able to return a const char*. See how we handle the other string settings.

&gt; Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:3848
&gt; + * @media_content_types_requiring_hardware_support: list of media content types requiring hardware support, split by semicolons (:).

I think we can use a shorter parameter name, since we have enough context in the already long function name. So media_content_types should be enough, or event content_types

&gt; Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:3861
&gt; +    String mediaContentTypesRequiringHardwareSupportString = String::fromUTF8(mediaContentTypesRequiringHardwareSupport);
&gt; +    settings-&gt;priv-&gt;preferences-&gt;setMediaContentTypesRequiringHardwareSupport(mediaContentTypesRequiringHardwareSupportString);
&gt; +    g_object_notify(G_OBJECT(settings), &quot;media-content-types-requiring-hardware-support&quot;);

You should check it has actually changed before setting it and emit the notify signal.

&gt; Source/WebKit/UIProcess/API/gtk/WebKitSettings.h:509
&gt; +WEBKIT_API const gchar*

const gchar* -&gt; const gchar *

&gt; Source/WebKit/UIProcess/API/gtk/WebKitSettings.h:514
&gt; +                                                                const gchar* media_content_types_requiring_hardware_support);

Ditto, and properly lined up.

&gt; Source/WebKit/UIProcess/API/wpe/WebKitSettings.h:466
&gt; +WEBKIT_API const gchar*

Ditto.

&gt; Source/WebKit/UIProcess/API/wpe/WebKitSettings.h:471
&gt; +                                                                const gchar* media_content_types_requiring_hardware_support);

Ditto.

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:344
&gt; +    // Default media content types requiring hardware support is &quot;&quot;.

Better use nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654382</commentid>
    <comment_count>8</comment_count>
      <attachid>399481</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-20 04:44:04 -0700</bug_when>
    <thetext>Comment on attachment 399481
Patch

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

&gt;&gt; Source/WebCore/Modules/mediasource/MediaSource.h:134
&gt;&gt; +    static bool isTypeSupported(const String&amp; type, const Vector&lt;ContentType&gt;&amp; contentTypesRequiringHardwareSupport);
&gt; 
&gt; I think you can omit the Vector parameter name.

In this specific case, I don&apos;t think a developer can infer the meaning of the parameter without a meaningful name. The &quot;requiring hardware support&quot; name is key to know what you&apos;re supplying there. Otherwise you could understand that you can pass a Vector of ContentType to check if they&apos;re supported or something like that. If you don&apos;t mind, I&apos;ll keep the parameter name in this case.

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:303
&gt;&gt; +    for (auto contentTypeRequiringHardwareSupport : contentTypesRequiringHardwareSupport) {
&gt; 
&gt; Vector::findMatching?

Ok, but since refactoring for findMatching() makes the early returns useless and they were the main reason to have an independent function to compute the need for hardware support I&apos;m now moving this code inside isContentTypeSupported().

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:344
&gt;&gt; +    // Default media content types requiring hardware support is &quot;&quot;.
&gt; 
&gt; Better use nullptr.

I&apos;m using nullptr as default in the property definition in the corrected patch, but the code actually gets the value from the underlying WebCore setting, which has &quot;&quot; as default. I&apos;ve checked that now nullptr is going to be supported and is going to do what it should (revert to default when set), but the retrieved value will still be &quot;&quot; (the underlying default). Or should I add extra code to return nullptr when the inner value is &quot;&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654384</commentid>
    <comment_count>9</comment_count>
      <attachid>399829</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-20 04:48:16 -0700</bug_when>
    <thetext>Created attachment 399829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654385</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-20 05:25:29 -0700</bug_when>
    <thetext>(In reply to Enrique Ocaña from comment #8)
&gt; Comment on attachment 399481 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399481&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/mediasource/MediaSource.h:134
&gt; &gt;&gt; +    static bool isTypeSupported(const String&amp; type, const Vector&lt;ContentType&gt;&amp; contentTypesRequiringHardwareSupport);
&gt; &gt; 
&gt; &gt; I think you can omit the Vector parameter name.
&gt; 
&gt; In this specific case, I don&apos;t think a developer can infer the meaning of
&gt; the parameter without a meaningful name. The &quot;requiring hardware support&quot;
&gt; name is key to know what you&apos;re supplying there. Otherwise you could
&gt; understand that you can pass a Vector of ContentType to check if they&apos;re
&gt; supported or something like that. If you don&apos;t mind, I&apos;ll keep the parameter
&gt; name in this case.
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:303
&gt; &gt;&gt; +    for (auto contentTypeRequiringHardwareSupport : contentTypesRequiringHardwareSupport) {
&gt; &gt; 
&gt; &gt; Vector::findMatching?
&gt; 
&gt; Ok, but since refactoring for findMatching() makes the early returns useless
&gt; and they were the main reason to have an independent function to compute the
&gt; need for hardware support I&apos;m now moving this code inside
&gt; isContentTypeSupported().
&gt; 
&gt; &gt;&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:344
&gt; &gt;&gt; +    // Default media content types requiring hardware support is &quot;&quot;.
&gt; &gt; 
&gt; &gt; Better use nullptr.
&gt; 
&gt; I&apos;m using nullptr as default in the property definition in the corrected
&gt; patch, but the code actually gets the value from the underlying WebCore
&gt; setting, which has &quot;&quot; as default. I&apos;ve checked that now nullptr is going to
&gt; be supported and is going to do what it should (revert to default when set),
&gt; but the retrieved value will still be &quot;&quot; (the underlying default). Or should
&gt; I add extra code to return nullptr when the inner value is &quot;&quot;?

Yes, if the CString is empty return nullptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654405</commentid>
    <comment_count>11</comment_count>
      <attachid>399833</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-20 06:32:49 -0700</bug_when>
    <thetext>Created attachment 399833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654408</commentid>
    <comment_count>12</comment_count>
      <attachid>399833</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-05-20 07:00:10 -0700</bug_when>
    <thetext>Comment on attachment 399833
Patch

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

Patch r=me. We need another reviewer to approve as this adds new
API, but I am sure Carlos García will stop by and this can be landed
momentarily :)

&gt; Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:1559
&gt; +        g_param_spec_string(&quot;media-content-types-requiring-hardware-support&quot;,

Wow, this property name is a mouthful… OTOH, I do not have any ideas for
a shorter name which would still carry all the meaning, so let&apos;s just go
with this 🙃️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654412</commentid>
    <comment_count>13</comment_count>
      <attachid>399833</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-05-20 07:20:37 -0700</bug_when>
    <thetext>Comment on attachment 399833
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654420</commentid>
    <comment_count>14</comment_count>
      <attachid>399833</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-05-20 07:32:04 -0700</bug_when>
    <thetext>Comment on attachment 399833
Patch

Setting r+ as we have now two positive reviews :]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654422</commentid>
    <comment_count>15</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-05-20 07:33:10 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #14)
&gt; Comment on attachment 399833 [details]
&gt; Patch
&gt; 
&gt; Setting r+ as we have now two positive reviews :]

(Also Carlos&apos; comments have been all adressed, so I don&apos;t expect
he would object to landing!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654437</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-20 08:08:59 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #15)
&gt; (In reply to Adrian Perez from comment #14)
&gt; &gt; Comment on attachment 399833 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Setting r+ as we have now two positive reviews :]
&gt; 
&gt; (Also Carlos&apos; comments have been all adressed, so I don&apos;t expect
&gt; he would object to landing!)

Sure, LGTM. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654826</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-21 00:47:10 -0700</bug_when>
    <thetext>Committed r261986: &lt;https://trac.webkit.org/changeset/261986&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399833.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654827</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-21 00:48:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/63482718&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656379</commentid>
    <comment_count>19</comment_count>
      <attachid>399833</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-27 09:05:18 -0700</bug_when>
    <thetext>Comment on attachment 399833
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:3854
&gt; + * webkit_settings_set_media_content_types_requiring_hardware_support:
&gt; + * @settings: a #WebKitSettings
&gt; + * @content_types: (allow-none) list of media content types requiring hardware support split by semicolons (:) or %NULL to use the default value.
&gt; + *
&gt; + * Set the #WebKitSettings:media-content-types-requiring-hardware-support property.

tbh I don&apos;t understand the documentation, what does it actually do? Does it cause software codecs to be disabled for these content types?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656380</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-27 09:09:26 -0700</bug_when>
    <thetext>I&apos;m not sure what to do about this:

[2580/2713] Building CXX object Source...IProcess/API/glib/WebKitSettings.cpp.o
/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:1553:77: warning: &quot;/*&quot; within comment [-Wcomment]
 1553 |      * For example: &apos;video/webm; codecs=&quot;vp*&quot;:video/mp4; codecs=&quot;avc*&quot;:video/*; codecs=&quot;av1*&quot;&apos;.
      |                                                                              

It is currently the only build warning I see when building with GCC 10. Problem is that we literally want to get the /* into the generated gtk-doc. So normally I would attempt to suppress the warning using IGNORE_WARNINGS... but in this case, that is impossible, because the warning is actually generated by cpp, not by gcc. cpp warnings can only be suppressed via pragmas when compiling C, not when compiling C++.

The two remaining solutions would be (a) build this file using -Wno-comment, or (b) change the example to avoid using /*, even if that would make the documentation less useful. (a) requires moving this file out of SourcesGTK.txt to PlatformGTK.cmake, so I&apos;d prefer (b) if Enrique thinks it&apos;s OK to change the example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656388</commentid>
    <comment_count>21</comment_count>
      <attachid>399833</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-27 09:24:38 -0700</bug_when>
    <thetext>Comment on attachment 399833
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:3854
&gt;&gt; + * Set the #WebKitSettings:media-content-types-requiring-hardware-support property.
&gt; 
&gt; tbh I don&apos;t understand the documentation, what does it actually do? Does it cause software codecs to be disabled for these content types?

Yes, software codecs are disabled for these content types if there isn&apos;t a hardware decoder present. For desktop systems, the reasonable thing to do would be to keep this setting empty (play everything, because a desktop is supposed to have enough processing power to get by with software decoding). However, on embedded systems, that&apos;s not the case. The practical case that motivated this patch was a Raspberry Pi trying to play YouTube using vp9 software decoding (choppy) just because YouTube prefers that codec if &quot;detected&quot;. The Raspberry has a hardware accelerated h264/avc decoder, so setting &apos;video/webm; codecs=&quot;vp9&quot;&apos; (better &apos;vp*&apos; to match with vp9, vp09 and other variants) would prevent the vp9 sw decoder to be selected. Setting &apos;video/*&apos; would prevent any sw video codec to be selected, only hw codecs. I hope it&apos;s clearer now.

There&apos;s a full example in the documentation of the property: https://github.com/WebKit/webkit/blob/544abce992b5af06c77bf379411b6f7dd410c303/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp#L1553</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656391</commentid>
    <comment_count>22</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-27 09:36:12 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #20)

&gt; [2580/2713] Building CXX object
&gt; Source...IProcess/API/glib/WebKitSettings.cpp.o
&gt; /home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/API/glib/
&gt; WebKitSettings.cpp:1553:77: warning: &quot;/*&quot; within comment [-Wcomment]
&gt;  1553 |      * For example: &apos;video/webm; codecs=&quot;vp*&quot;:video/mp4;
&gt; codecs=&quot;avc*&quot;:video/*; codecs=&quot;av1*&quot;&apos;.

I found it before submitting the patch, tried to solve it, and ended up finding the same preprocessor limitation you talk about. In the end, I considered it a legitimate usage of &quot;/*&quot; and just moved on.

I haven&apos;t tried, but... would it make sense to use &quot;&amp;#42;&quot; (the HTML entity of &quot;*&quot;) instead? Or maybe there&apos;s a way to have a line break between &quot;/&quot; and &quot;*&quot; and get the doc building system join the lines in some way. The &quot;video/*&quot; is a really useful example. That&apos;s why I included it. If it ends up becoming a problem, I guess we can remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656406</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-27 10:04:44 -0700</bug_when>
    <thetext>I wonder if &amp;#42; would work, good idea.

If not... since the example is useful, we don&apos;t have to remove it, we can move the source file to PlatformGTK.cmake and add -Wno-comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656454</commentid>
    <comment_count>24</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-27 11:19:52 -0700</bug_when>
    <thetext>For some reason &amp;#42; didn&apos;t work, but &amp;ast; does work so let&apos;s go with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656457</commentid>
    <comment_count>25</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-27 11:22:41 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656458</commentid>
    <comment_count>26</comment_count>
      <attachid>400355</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-27 11:22:43 -0700</bug_when>
    <thetext>Created attachment 400355
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656509</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-27 12:10:43 -0700</bug_when>
    <thetext>Committed r262205: &lt;https://trac.webkit.org/changeset/262205&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400355.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656826</commentid>
    <comment_count>28</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2020-05-28 06:42:33 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #25)
&gt; Reopening to attach new patch.

Thanks for having taken care of this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399478</attachid>
            <date>2020-05-15 08:02:23 -0700</date>
            <delta_ts>2020-05-15 08:26:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211950-20200515150221.patch</filename>
            <type>text/plain</type>
            <size>24836</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI1NTgzYTE2OWU0Zjhk
MGQ0NWViMTkzOTkxMjAxYzdlNzUyMGIzOS4uZjE2ODU2Mzc4NDM0ZmJhODg2MDM5NDVkMzkyMmNh
YjYxY2VmZDk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA1LTE1ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQgaG9ub3IgdGhlIG1lZGlhIGNvbnRlbnQgdHlw
ZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgc2V0dGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExOTUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSB0aGUgbmVlZGVkIGluZm9ybWF0
aW9uIGFib3V0IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQK
KyAgICAgICAgd2hlbiBhc2tpbmcgdGhlIE1lZGlhUGxheWVyIGFib3V0IHdoYXQgdHlwZXMgYXJl
IHN1cHBvcnRlZC4gVGhpcyB3YXMgYWxyZWFkeSBiZWluZyBkb25lCisgICAgICAgIGZyb20gSFRN
TE1lZGlhRWxlbWVudCBmb3IgcGxheWVyIHNlbGVjdGlvbiwgYnV0IG5vdCBpbiBNZWRpYVNvdXJj
ZSBub3IgaW4KKyAgICAgICAgTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcigpIHdoZW4gdGhl
IHdlYnBhZ2UgdXNlZCB0aGUgTVNFIEFQSSB0byBjaGVjayB0eXBlIHN1cHBvcnQuCisgICAgICAg
IEluIG9yZGVyIHRvIGFzayBmb3IgdGhlIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0IHNldHRpbmcgd2UgbmVlZCBhCisgICAgICAgIHJlZmVyZW5jZSB0byB0aGUgY3Vy
cmVudCBEb2N1bWVudCBpbiBhbGwgdGhlIHBsYWNlcyB3aGVyZSB3ZSBuZWVkIHRvIGNoZWNrIHR5
cGUgc3VwcG9ydC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcik6IFBy
b3ZpZGUgaGFyZHdhcmUgY29udGVudCB0eXBlcyBleHRyYSBpbmZvLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZCk6IEdldCBoYXJkd2FyZSBjb250ZW50IHR5
cGVzIGV4dHJhIGluZm8gZnJvbQorICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGFuZCBw
cm92aWRlIGl0IHRvIGEgbmV3IHJlZmFjdG9yZWQgcHJpdmF0ZSB2ZXJzaW9uIG9mCisgICAgICAg
IGlzVHlwZVN1cHBvcnRlZCgpIHdoaWNoIGNhbiBhbHNvIGJlIHJldXNlZCBmcm9tIGFkZFNvdXJj
ZUJ1ZmZlcigpLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaDog
Q2hhbmdlZCBpc1R5cGVTdXBwb3J0ZWQoKSBwcm90b3R5cGUgdG8gdGFrZQorICAgICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IGFuZCBhZGRlZCBhIG5ldyBvdmVybG9hZGVkIHZlcnNpb24gb2Yg
dGhlIG1ldGhvZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlk
bDogaXNUeXBlU3VwcG9ydGVkKCkgbm93IHByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvCisgICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuIEl0J3MgdGhlIG9ubHkgd2F5IHRvIGFjY2VzcyB0aGUg
cmVxdWlyZWQgZG9jdW1lbnQgc2V0dGluZ3MgZnJvbSBhCisgICAgICAgIHN0YXRpYyBtZXRob2Qu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2RlY1JlcXVpcmVzSGFyZHdhcmVTdXBw
b3J0KTogTG9naWMgdG8gZGlzY3JpbWluYXRlIGEgY29udGVudCB0eXBlIGFnYWluc3QgYQorICAg
ICAgICBrbm93biBjb2xsZWN0aW9uIG9mIENvbnRlbnRUeXBlcyByZXF1aXJpbmcgaGFyZHdhcmUg
c3VwcG9ydC4gVGhpcyBjb2RlIGhhcyBiZWVuIGZhY3RvcmVkCisgICAgICAgIGludG8gYSBmdW5j
dGlvbiB0byB0YWtlIGFkdmFudGFnZSBvZiBlYXJseSByZXR1cm5zLCBhdm9pZGluZyB1c2luZyBi
cmVhayBzdGF0ZW1lbnRzIGlmCisgICAgICAgIGl0IHdhcyBpbmNsdWRlZCBhcyBwYXJ0IG9mIGlz
Q29udGVudFR5cGVTdXBwb3J0ZWQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lcjo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCBjb25zdCk6IEZhY3RvciBDb250ZW50
VHlwZQorICAgICAgICBkaXNjcmltaW5hdGlvbiBsb2dpYyBjb21tb24gdG8gTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyIGFuZAorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lci5oOiBBZGRlZCBuZXcgbWV0aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUpOiBQcm92
aWRlIGhhcmR3YXJlIGNvbnRlbnQgdHlwZXMgZXh0cmEKKyAgICAgICAgaW5mbyB3aGVuIGFza2lu
ZyBmb3IgdHlwZSBzdXBwb3J0LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3VwcG9ydHNUeXBlKTogRGl0dG8u
CisKIDIwMjAtMDQtMTcgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXSBVcGRhdGUgZm9yIEdka0tleW1hcCBBUEkgY2hhbmdlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA4YTcyMGM5MjcwNWU0ZjU5MjljYmUzZGE3YWUwMTNlZGMzMzczNDViLi4yYjRmN2EyMGQy
NDM4MzVkMzQ5Y2Q3ZDIzZDRlMzdhN2Y3ZDg5YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDIwLTA1LTE1ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQgaG9ub3IgdGhl
IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgc2V0dGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExOTUwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIG1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0IGFzIGEgc2V0dGluZyBvbiBX
UEUgYW5kIFdlYktpdEdUSy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRT
ZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJLaXRTZXR0aW5nc1NldFByb3BlcnR5KToKKyAgICAg
ICAgKHdlYktpdFNldHRpbmdzR2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0X3NldHRpbmdz
X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50
X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KToKKyAgICAgICAgKHdlYmtpdF9zZXR0
aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisKIDIwMjAtMDQtMTcg
IENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBVcGRhdGUgZm9yIEdka0tleW1hcCBBUEkgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCA5OWY3ZmQwYmZhZmVi
ZDViZWE4OTNjZTMxMDRlNzVmMTk2ZWU3YTk1Li5jZGU3MTlmOGZjNTIzZTA0ZTczNjgzMTNmYzBk
MGZjMmVlZDNmMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJNZWRpYVNvdXJjZVByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJj
ZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJMaXN0LmgiCiAjaW5jbHVkZSAiU291cmNlQnVm
ZmVyUHJpdmF0ZS5oIgpAQCAtNjc3LDcgKzY3OCwxMSBAQCBFeGNlcHRpb25PcjxSZWY8U291cmNl
QnVmZmVyPj4gTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUp
CiAKICAgICAvLyAyLiBJZiB0eXBlIGNvbnRhaW5zIGEgTUlNRSB0eXBlIHRoYXQgaXMgbm90IHN1
cHBvcnRlZCAuLi4sIHRoZW4gdGhyb3cgYQogICAgIC8vIE5vdFN1cHBvcnRlZEVycm9yIGV4Y2Vw
dGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKCFpc1R5cGVTdXBwb3J0ZWQodHlw
ZSkpCisgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydDsKKyAgICBpZiAobV9tZWRpYUVsZW1lbnQpCisgICAgICAgIG1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0LmFwcGVuZFZlY3RvcihtX21lZGlhRWxl
bWVudC0+ZG9jdW1lbnQoKS5zZXR0aW5ncygpLm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0KCkpOworCisgICAgaWYgKCFpc1R5cGVTdXBwb3J0ZWQodHlwZSwgbWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAogICAgIC8vIDQuIElmIHRoZSByZWFkeVN0
YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZSB0aGVuIHRocm93IGFuCkBA
IC04NjksNyArODc0LDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVT
b3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgcmV0dXJuIHsgfTsKIH0KIAot
Ym9vbCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSkKK2Jv
b2wgTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICBpZiAoY29udGV4
dC5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCZjb250ZXh0KTsKKyAgICAgICAgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQuYXBwZW5kVmVjdG9yKGRvY3VtZW50LT5zZXR0aW5ncygpLm1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkpOworICAgIH0KKworICAgIHJldHVy
biBpc1R5cGVTdXBwb3J0ZWQodHlwZSwgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQpOworfQorCitib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBjb250ZW50VHlwZXNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQpCiB7CiAgICAgLy8gU2VjdGlvbiAyLjIgaXNUeXBlU3VwcG9y
dGVkKCkgbWV0aG9kIHN0ZXBzLgogICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1t
ZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtTWVk
aWFTb3VyY2UtaXNUeXBlU3VwcG9ydGVkLWJvb2xlYW4tRE9NU3RyaW5nLXR5cGUKQEAgLTg5MSw2
ICs5MDcsOSBAQCBib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5n
JiB0eXBlKQogICAgIE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAg
ICBwYXJhbWV0ZXJzLnR5cGUgPSBjb250ZW50VHlwZTsKICAgICBwYXJhbWV0ZXJzLmlzTWVkaWFT
b3VyY2UgPSB0cnVlOworICAgIGlmICghY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0LmlzRW1wdHkoKSkKKyAgICAgICAgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQuYXBwZW5kVmVjdG9yKGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCk7CisKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRlZCA9IE1l
ZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycyk7CiAKICAgICBpZiAoY29kZWNzLmlz
RW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuaAppbmRleCA3MWRjMDZjZDgwNGQxMWE2NDIyNWRmNGQ2N2M1NWU1NzRjYzFlMDAwLi5i
YjZjOGMyOTg1YWY0ZTVjMjg5MzAyOTIyZjlhNGZmMTUyYjRkZjFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCkBAIC0xMDQsNyArMTA0
LDcgQEAgcHVibGljOgogICAgIFNvdXJjZUJ1ZmZlckxpc3QqIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMo
KSB7IHJldHVybiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZ2V0KCk7IH0KICAgICBFeGNlcHRpb25P
cjxSZWY8U291cmNlQnVmZmVyPj4gYWRkU291cmNlQnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSk7
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYp
OwotICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25zdCBTdHJpbmcmIHR5cGUpOwor
ICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
Y29uc3QgU3RyaW5nJiB0eXBlKTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbDsKIApAQCAtMTMxLDYgKzEzMSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0IGZpbmFsOworICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKICAgICB2b2lkIHNldFByaXZhdGVBbmRPcGVuKFJl
ZjxNZWRpYVNvdXJjZVByaXZhdGU+JiYpIGZpbmFsOwogICAgIHZvaWQgc2Vla1RvVGltZShjb25z
dCBNZWRpYVRpbWUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKaW5kZXggOTY5ODk2OWVlMTM4NjkwNGU0YjViZTdjNmJh
MmVkYmMyYjRlMzY5ZS4uODQ3OWVlZjljNWIyMDMzYTVjNjc5OTIyNDk1YTBjNjVjNDU0ZjgyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5pZGwKQEAgLTYxLDcgKzYxLDcgQEAgZW51bSBSZWFkeVN0YXRlIHsKICAgICAKICAgICBbTWF5
VGhyb3dFeGNlcHRpb25dIHZvaWQgZW5kT2ZTdHJlYW0ob3B0aW9uYWwgRW5kT2ZTdHJlYW1FcnJv
ciBlcnJvcik7CiAKLSAgICBzdGF0aWMgYm9vbGVhbiBpc1R5cGVTdXBwb3J0ZWQgKERPTVN0cmlu
ZyB0eXBlKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gc3RhdGljIGJv
b2xlYW4gaXNUeXBlU3VwcG9ydGVkIChET01TdHJpbmcgdHlwZSk7CiAKICAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIHZvaWQgc2V0TGl2ZVNlZWthYmxlUmFuZ2UoZG91YmxlIHN0YXJ0LCBkb3VibGUg
ZW5kKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgY2xlYXJMaXZlU2Vla2FibGVSYW5n
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAppbmRleCA3
OTIyYjMzMzVlYTcyMGVlNTcxMmM0NGZlYTZlMDM4MzU1MmRjMjJhLi5kZGE3MWY2NWY1MTUzMjJi
NTA3MDZjZDY4NDM0MzVhOTA4NTJmZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyLmNwcApAQCAtMjk4LDYgKzI5OCw0MyBAQCBib29sIEdTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lcjo6aXNDb2RlY1N1cHBvcnRlZChTdHJpbmcgY29kZWMsIGJvb2wgc2hvdWxkQ2hl
Y2tGbwogICAgIHJldHVybiBzdXBwb3J0ZWQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb2Rl
Y1JlcXVpcmVzSGFyZHdhcmVTdXBwb3J0KGNvbnN0IFN0cmluZyYgY29udGFpbmVyVHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlYywgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgY29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KQoreworICAgIGZvciAoYXV0byBjb250ZW50VHlwZVJl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA6IGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3Vw
cG9ydCkgeworICAgICAgICBhdXRvIGNvbnRhaW5lclR5cGVSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQgPSBjb250ZW50VHlwZVJlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5jb250YWluZXJUeXBlKCk7
CisgICAgICAgIGlmICghY29udGFpbmVyVHlwZVJlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5pc0Vt
cHR5KCkKKyAgICAgICAgICAgICYmIGZubWF0Y2goY29udGFpbmVyVHlwZVJlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydC51dGY4KCkuZGF0YSgpLCBjb250YWluZXJUeXBlLnV0ZjgoKS5kYXRhKCksIDAp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKGF1dG8gY29kZWNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQgOiBjb250ZW50VHlwZVJlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dC5jb2RlY3MoKSkgeworICAgICAgICAgICAgaWYgKCFmbm1hdGNoKGNvZGVjUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0LnV0ZjgoKS5kYXRhKCksIGNvZGVjLnV0ZjgoKS5kYXRhKCksIDApKQorICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKK30KKworTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIEdTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lcjo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50VHlwZSYgY29u
dGVudFR5cGUsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydCkgY29uc3QKK3sKKyAgICB1c2luZyBTdXBwb3J0c1R5cGUgPSBNZWRp
YVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU7CisKKyAgICBjb25zdCBTdHJpbmcmIGNvbnRhaW5l
clR5cGUgPSBjb250ZW50VHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgaWYgKCFpc0NvbnRhaW5l
clR5cGVTdXBwb3J0ZWQoY29udGFpbmVyVHlwZSkpCisgICAgICAgIHJldHVybiBTdXBwb3J0c1R5
cGU6OklzTm90U3VwcG9ydGVkOworCisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvZGVjcyA9
IGNvbnRlbnRUeXBlLmNvZGVjcygpOworCisgICAgLy8gU3BlYyBzYXlzIHdlIHNob3VsZCBub3Qg
cmV0dXJuICJwcm9iYWJseSIgaWYgdGhlIGNvZGVjcyBzdHJpbmcgaXMgZW1wdHkuCisgICAgaWYg
KGNvZGVjcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBTdXBwb3J0c1R5cGU6Ok1heUJlU3Vw
cG9ydGVkOworCisgICAgZm9yIChhdXRvIGNvZGVjIDogY29kZWNzKSB7CisgICAgICAgIGJvb2wg
cmVxdWlyZXNIYXJkd2FyZVN1cHBvcnQgPSBjb2RlY1JlcXVpcmVzSGFyZHdhcmVTdXBwb3J0KGNv
bnRhaW5lclR5cGUsIGNvZGVjLCBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQp
OworICAgICAgICBpZiAoIWlzQ29kZWNTdXBwb3J0ZWQoY29kZWMsIHJlcXVpcmVzSGFyZHdhcmVT
dXBwb3J0KSkKKyAgICAgICAgICAgIHJldHVybiBTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVk
OworICAgIH0KKyAgICByZXR1cm4gU3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZDsKK30KKwogYm9v
bCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OmFyZUFsbENvZGVjc1N1cHBvcnRlZChjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgY29kZWNzLCBib29sIHNob3VsZENoZWNrRm9ySGFyZHdhcmVVc2UpIGNv
bnN0CiB7CiAgICAgZm9yIChTdHJpbmcgY29kZWMgOiBjb2RlY3MpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3Ry
eVNjYW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuaAppbmRleCAyZGRhZWM2OTA0NTc5OWE2YTU4YWI0OWZh
ZTNkN2RhODM2ZTE4NDY4Li5jMmRlMWZmNjE0MDE5Yjc4NjhjZWY4ZWQ5ZGM3NjUxYjljYzMzYTUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5oCkBAIC0yMyw2ICsy
Myw3IEBACiAKICNpbmNsdWRlICJNZWRpYUNvbmZpZ3VyYXRpb24uaCIKIAorI2luY2x1ZGUgIk1l
ZGlhUGxheWVyRW51bXMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTUxLDYgKzUyLDcgQEAg
cHVibGljOgogICAgIFJlZ2lzdHJ5TG9va3VwUmVzdWx0IGlzRGVjb2RpbmdTdXBwb3J0ZWQoTWVk
aWFDb25maWd1cmF0aW9uJikgY29uc3Q7CiAKICAgICBib29sIGlzQ29kZWNTdXBwb3J0ZWQoU3Ry
aW5nIGNvZGVjLCBib29sIHVzaW5nSGFyZHdhcmUgPSBmYWxzZSkgY29uc3Q7CisgICAgTWVkaWFQ
bGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIGlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY29uc3QgQ29u
dGVudFR5cGUmLCBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBjb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQpIGNvbnN0OwogICAgIGJvb2wgYXJlQWxsQ29kZWNzU3VwcG9ydGVk
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb2RlY3MsIGJvb2wgc2hvdWxkQ2hlY2tGb3JIYXJkd2Fy
ZVVzZSA9IGZhbHNlKSBjb25zdDsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA2MTYyYWRhZTZiZmY1MTY3MWUzYmU1
MzIyMjdlN2RlNTc5OTlmZGYwLi41YmRmYWFhMTIzMTc1OWRiZjkxMDcwNGM5YTVkNDg4MjRjZDNm
MzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cApAQCAtMjkwOSwxMyArMjkwOSw4IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFCiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAKICAgICBHU1RfREVCVUcoIkNoZWNraW5nIG1pbWUtdHlwZSBcIiVz
XCIiLCBwYXJhbWV0ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgYXV0byBjb250
YWluZXJUeXBlID0gcGFyYW1ldGVycy50eXBlLmNvbnRhaW5lclR5cGUoKTsKICAgICBhdXRvJiBn
c3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OnNpbmdsZXRvbigp
OwotICAgIGlmIChnc3RSZWdpc3RyeVNjYW5uZXIuaXNDb250YWluZXJUeXBlU3VwcG9ydGVkKGNv
bnRhaW5lclR5cGUpKSB7Ci0gICAgICAgIC8vIFNwZWMgc2F5cyB3ZSBzaG91bGQgbm90IHJldHVy
biAicHJvYmFibHkiIGlmIHRoZSBjb2RlY3Mgc3RyaW5nIGlzIGVtcHR5LgotICAgICAgICBWZWN0
b3I8U3RyaW5nPiBjb2RlY3MgPSBwYXJhbWV0ZXJzLnR5cGUuY29kZWNzKCk7Ci0gICAgICAgIHJl
c3VsdCA9IGNvZGVjcy5pc0VtcHR5KCkgPyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpNYXlC
ZVN1cHBvcnRlZCA6IChnc3RSZWdpc3RyeVNjYW5uZXIuYXJlQWxsQ29kZWNzU3VwcG9ydGVkKGNv
ZGVjcykgPyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCA6IE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkKTsKLSAgICB9CisgICAgcmVzdWx0ID0g
Z3N0UmVnaXN0cnlTY2FubmVyLmlzQ29udGVudFR5cGVTdXBwb3J0ZWQocGFyYW1ldGVycy50eXBl
LCBwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKICAg
ICBhdXRvIGZpbmFsUmVzdWx0ID0gZXh0ZW5kZWRTdXBwb3J0c1R5cGUocGFyYW1ldGVycywgcmVz
dWx0KTsKICAgICBHU1RfREVCVUcoIlN1cHBvcnRlZDogJXMiLCBjb252ZXJ0RW51bWVyYXRpb25U
b1N0cmluZyhmaW5hbFJlc3VsdCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKaW5kZXggMWI3MDBi
YmMwODRjNzEyOWRkYjAxNDdiNDQ2ZDkxZTQ2OGVjOTJmMC4uZDhiM2M5MjBkNTk2OGQwODU0MjU2
OTM2YjRlMjRiMmEyYTAxYmU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcApAQCAtNzM5LDExICs3MzksNyBAQCBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3Vw
cG9ydHNUeXBlKGNvbnN0IE1lZAogCiAgICAgR1NUX0RFQlVHKCJDaGVja2luZyBtaW1lLXR5cGUg
XCIlc1wiIiwgcGFyYW1ldGVycy50eXBlLnJhdygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIGF1dG8m
IGdzdFJlZ2lzdHJ5U2Nhbm5lciA9IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lck1TRTo6c2luZ2xl
dG9uKCk7Ci0gICAgLy8gU3BlYyBzYXlzIHdlIHNob3VsZCBub3QgcmV0dXJuICJwcm9iYWJseSIg
aWYgdGhlIGNvZGVjcyBzdHJpbmcgaXMgZW1wdHkuCi0gICAgaWYgKGdzdFJlZ2lzdHJ5U2Nhbm5l
ci5pc0NvbnRhaW5lclR5cGVTdXBwb3J0ZWQoY29udGFpbmVyVHlwZSkpIHsKLSAgICAgICAgVmVj
dG9yPFN0cmluZz4gY29kZWNzID0gcGFyYW1ldGVycy50eXBlLmNvZGVjcygpOwotICAgICAgICBy
ZXN1bHQgPSBjb2RlY3MuaXNFbXB0eSgpID8gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6TWF5
QmVTdXBwb3J0ZWQgOiAoZ3N0UmVnaXN0cnlTY2FubmVyLmFyZUFsbENvZGVjc1N1cHBvcnRlZChj
b2RlY3MpID8gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQgOiBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZCk7Ci0gICAgfQorICAgIHJlc3VsdCA9
IGdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHBhcmFtZXRlcnMudHlw
ZSwgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOwogCiAg
ICAgYXV0byBmaW5hbFJlc3VsdCA9IGV4dGVuZGVkU3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMsIHJl
c3VsdCk7CiAgICAgR1NUX0RFQlVHKCJTdXBwb3J0ZWQ6ICVzIiwgY29udmVydEVudW1lcmF0aW9u
VG9TdHJpbmcoZmluYWxSZXN1bHQpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDg1ZGExMjg5
NzM3ODEyYTI4YzZmYzA2OWNkZjM2YmZiMTlhMzQ2YmYuLjA1N2I2NDU5OTlkZjQxNjQ2NWEzYzFi
YjI1YmM3OGJkODRjYzczZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTE3MCw2ICsxNzAsNyBAQCBlbnVtIHsKICNl
bmRpZgogICAgIFBST1BfRU5BQkxFX0pBVkFTQ1JJUFRfTUFSS1VQLAogICAgIFBST1BfRU5BQkxF
X01FRElBLAorICAgIFBST1BfTUVESUFfQ09OVEVOVF9UWVBFU19SRVFVSVJJTkdfSEFSRFdBUkVf
U1VQUE9SVCwKIH07CiAKIHN0YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzRGlzcG9zZShHT2JqZWN0
KiBvYmplY3QpCkBAIC00MDAsNiArNDAxLDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NT
ZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHUKICAg
ICBjYXNlIFBST1BfRU5BQkxFX01FRElBOgogICAgICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2Vu
YWJsZV9tZWRpYShzZXR0aW5ncywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFBST1BfTUVESUFfQ09OVEVOVF9UWVBFU19SRVFVSVJJTkdfSEFS
RFdBUkVfU1VQUE9SVDoKKyAgICAgICAgd2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50
X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KHNldHRpbmdzLCBnX3ZhbHVlX2dldF9z
dHJpbmcodmFsdWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19P
QkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMp
OwogICAgICAgICBicmVhazsKQEAgLTU5MSw2ICs1OTUsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRT
ZXR0aW5nc0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUq
IHZhbAogICAgIGNhc2UgUFJPUF9FTkFCTEVfTUVESUE6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jv
b2xlYW4odmFsdWUsIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX21lZGlhKHNldHRpbmdzKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NRURJQV9DT05URU5UX1RZUEVTX1JFUVVJ
UklOR19IQVJEV0FSRV9TVVBQT1JUOgorICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUs
IHdlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdh
cmVfc3VwcG9ydChzZXR0aW5ncykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAg
ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBh
cmFtU3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTUzOCw2ICsxNTQ1LDE5IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNz
KQogICAgICAgICAgICAgVFJVRSwKICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFt
RmxhZ3MpKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFNldHRpbmdzOm1lZGlhLWNvbnRlbnQt
dHlwZXMtcmVxdWlyaW5nLWhhcmR3YXJlLXN1cHBvcnQ6CisgICAgICoKKyAgICAgKiBMaXN0IG9m
IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQsIHNwbGl0IGJ5
IHNlbWljb2xvbnMgKDopLgorICAgICAqIEZvciBleGFtcGxlOiAndmlkZW8vd2VibTsgY29kZWNz
PSJ2cCoiOnZpZGVvL21wNDsgY29kZWNzPSJhdmMqIjp2aWRlby8qOyBjb2RlY3M9ImF2MSoiJy4K
KyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFz
cywKKyAgICAgICAgUFJPUF9NRURJQV9DT05URU5UX1RZUEVTX1JFUVVJUklOR19IQVJEV0FSRV9T
VVBQT1JULAorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJtZWRpYS1jb250ZW50LXR5cGVz
LXJlcXVpcmluZy1oYXJkd2FyZS1zdXBwb3J0IiwKKyAgICAgICAgICAgIF8oIk1lZGlhIGNvbnRl
bnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQiKSwKKyAgICAgICAgICAgIF8oIkxp
c3Qgb2YgbWVkaWEgY29udGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydC4iKSwK
KyAgICAgICAgICAgICIiLAorICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFn
cykpOwogfQogCiBXZWJQcmVmZXJlbmNlcyogd2Via2l0U2V0dGluZ3NHZXRQcmVmZXJlbmNlcyhX
ZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCkBAIC0zODAyLDMgKzM4MjIsMzUgQEAgdm9pZCB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYShXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdi
b29sZWFuIGVuYWJsZWQKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0TWVkaWFFbmFibGVkKGVu
YWJsZWQpOwogICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFibGUt
bWVkaWEiKTsKIH0KKworLyoqCisgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRf
dHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQ6CisgKiBAc2V0dGluZ3M6IGEgI1dlYktp
dFNldHRpbmdzCisgKgorICogR2V0cyB0aGUgI1dlYktpdFNldHRpbmdzOm1lZGlhLWNvbnRlbnQt
dHlwZXMtcmVxdWlyaW5nLWhhcmR3YXJlLXN1cHBvcnQgcHJvcGVydHkuCisgKgorICogUmV0dXJu
czogTWVkaWEgY29udGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydC4KKyAqLwor
Y29uc3QgZ2NoYXIqIHdlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1
aXJpbmdfaGFyZHdhcmVfc3VwcG9ydChXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSwgMCk7CisK
KyAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5tZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpLnV0ZjgoKS5kYXRhKCk7Cit9CisKKy8qKgorICog
d2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2Fy
ZV9zdXBwb3J0OgorICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5ncworICogQG1lZGlhX2Nv
bnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQ6IGxpc3Qgb2YgbWVkaWEgY29u
dGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydCwgc3BsaXQgYnkgc2VtaWNvbG9u
cyAoOikuCisgKgorICogU2V0IHRoZSAjV2ViS2l0U2V0dGluZ3M6bWVkaWEtY29udGVudC10eXBl
cy1yZXF1aXJpbmctaGFyZHdhcmUtc3VwcG9ydCBwcm9wZXJ0eS4KKyAqLwordm9pZCB3ZWJraXRf
c2V0dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBv
cnQoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBnY2hhciogbWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKG1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KTsKKworICAgIFN0cmluZyBtZWRpYUNv
bnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbVVU
RjgobWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOworICAgIHNldHRp
bmdzLT5wcml2LT5wcmVmZXJlbmNlcy0+c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQobWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRTdHJp
bmcpOworICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJtZWRpYS1jb250
ZW50LXR5cGVzLXJlcXVpcmluZy1oYXJkd2FyZS1zdXBwb3J0Iik7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmgKaW5kZXggMDFjYjRmNTY4
Njg4OWE2YzIzOGY1MmQyNTYxZjUwMWFiNjNiNWFkMS4uMTZlMTk3YzgxZTk4NWI1YTllNjY2Y2E4
YzA0YTYyNmRjMjdiOGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0U2V0dGluZ3MuaApAQCAtNTA2LDYgKzUwNiwxMyBAQCBXRUJLSVRfQVBJIHZvaWQK
IHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAg
IGVuYWJsZWQpOwogCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgord2Via2l0X3NldHRpbmdzX2dl
dF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0IChXZWJLaXRT
ZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19z
ZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydCAoV2ViS2l0
U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBtZWRpYV9jb250ZW50X3R5
cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlm
IC8qIFdlYktpdFNldHRpbmdzX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0Cmlu
ZGV4IDFiYzQyNzBjOWY0MGU4ZmI4YzRmZTY2Y2U2ZTNiYjUwYjNmZjk3MTcuLjA4MGU5ZjM0Njcz
ZTM3ZDIxMmQ1ODA3NDUzNWViZTczZGIxZWE3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rp
b25zLnR4dApAQCAtNTQ4LDYgKzU0OCw4IEBAIHdlYmtpdF9zZXR0aW5nc19mb250X3NpemVfdG9f
cG9pbnRzCiB3ZWJraXRfc2V0dGluZ3NfZm9udF9zaXplX3RvX3BpeGVscwogd2Via2l0X3NldHRp
bmdzX2dldF9lbmFibGVfbWVkaWEKIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhCit3
ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJl
X3N1cHBvcnQKK3dlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJp
bmdfaGFyZHdhcmVfc3VwcG9ydAogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdlYktpdFNldHRp
bmdzQ2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0
dGluZ3MuaAppbmRleCA5ODMwMDQ5NDU0ODljMzY3NWYwOTU0OTZkNWY3M2U0NWU2OWM1MmVlLi4z
OTNjZjU4YzE1NTc1ZmJjZjNiMDM5YmNiNGVlYjMyNDg1Yjk3NjQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNldHRpbmdzLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oCkBAIC00NjMsNiArNDYz
LDEzIEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWEg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CiAKK1dFQktJVF9BUEkgY29uc3QgZ2No
YXIqCit3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hh
cmR3YXJlX3N1cHBvcnQgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19o
YXJkd2FyZV9zdXBwb3J0IChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2NoYXIqIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KTsKKwogR19F
TkRfREVDTFMKIAogI2VuZGlmIC8qIFdlYktpdFNldHRpbmdzX2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4
dAppbmRleCAwYzJkYzY1MTVjNjZiNzk1NzdhN2Q1ODA3Y2E0YTBmYmM1ZDA3NTM5Li5jYjY2MGUw
MDVjNDIyNzc3MGMxMWVkOGFiNzMzYWE5MTA2OGJjMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CkBA
IC01NDIsNiArNTQyLDggQEAgd2Via2l0X3NldHRpbmdzX2dldF9hbGxvd190b3BfbmF2aWdhdGlv
bl90b19kYXRhX3VybHMKIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dfdG9wX25hdmlnYXRpb25f
dG9fZGF0YV91cmxzCiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYQogd2Via2l0X3Nl
dHRpbmdzX3NldF9lbmFibGVfbWVkaWEKK3dlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVu
dF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydAord2Via2l0X3NldHRpbmdzX3NldF9t
ZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0CiAKIDxTVUJTRUNU
SU9OIFN0YW5kYXJkPgogV2ViS2l0U2V0dGluZ3NDbGFzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGExNTYwODA3OWRkMTBlMWM5ZjU0N2U1OWNi
YzE4ZDFhMzdjMmE0ZTMuLjU0OTcxMzMyNjE3MmQ2Mzg5ODQ5MzZlZjI5MzE5OGEwNmIyYjhiMWEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0wNS0xNSAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5o
YUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdW0dUS11bV1BFXSBFeHBvc2UgYW5k
IGhvbm9yIHRoZSBtZWRpYSBjb250ZW50IHR5cGVzIHJlcXVpcmluZyBoYXJkd2FyZSBzdXBwb3J0
IHNldHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMTk1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEV4ZXJjaXNlIHRoZSBuZXcgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQgc2V0dGluZy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0V2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAodGVzdFdlYktpdFNldHRpbmdzKToKKwog
MjAyMC0wNC0xNyAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIFVwZGF0ZSBmb3IgR2RrS2V5bWFwIEFQSSBjaGFuZ2VzCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFNldHRpbmdz
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0
dGluZ3MuY3BwCmluZGV4IDFiNDY5Njc5OWQ2NmUxYTY0YzRkOTRlYmRhMjBlNjdjOGYyOTY1ZTUu
LmIyNjMzZmYzZGNkNWI2OTU2ZTZiOWY0ZmViMTE4YjcwYmI0YmNmZjUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0
dGluZ3MuY3BwCkBAIC0zNDEsNiArMzQxLDExIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRTZXR0
aW5ncyhUZXN0KiwgZ2NvbnN0cG9pbnRlcikKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJs
ZV9tZWRpYShzZXR0aW5ncywgRkFMU0UpOwogICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF9zZXR0
aW5nc19nZXRfZW5hYmxlX21lZGlhKHNldHRpbmdzKSk7CiAKKyAgICAvLyBEZWZhdWx0IG1lZGlh
IGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgaXMgIiIuCisgICAgZ19h
c3NlcnRfY21wc3RyKCIiLCA9PSwgd2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5
cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KHNldHRpbmdzKSk7CisgICAgd2Via2l0X3Nl
dHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0
KHNldHRpbmdzLCAidmlkZW8vKjsgY29kZWNzPVwiKlwiIik7CisgICAgZ19hc3NlcnRfY21wc3Ry
KCJ2aWRlby8qOyBjb2RlY3M9XCIqXCIiLCA9PSwgd2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9j
b250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KHNldHRpbmdzKSk7CisKICNp
ZiBQTEFURk9STShHVEspCiAgICAgLy8gT25kZW1hbmQgaXMgdGhlIGRlZmF1bHQgaGFyZHdhcmUg
YWNjZWxlcmF0aW9uIHBvbGljeS4KICAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF9zZXR0aW5n
c19nZXRfaGFyZHdhcmVfYWNjZWxlcmF0aW9uX3BvbGljeShzZXR0aW5ncyksID09LCBXRUJLSVRf
SEFSRFdBUkVfQUNDRUxFUkFUSU9OX1BPTElDWV9PTl9ERU1BTkQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399480</attachid>
            <date>2020-05-15 08:26:13 -0700</date>
            <delta_ts>2020-05-15 08:38:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211950-20200515152612.patch</filename>
            <type>text/plain</type>
            <size>24841</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI1NTgzYTE2OWU0Zjhk
MGQ0NWViMTkzOTkxMjAxYzdlNzUyMGIzOS4uZjE2ODU2Mzc4NDM0ZmJhODg2MDM5NDVkMzkyMmNh
YjYxY2VmZDk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA1LTE1ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQgaG9ub3IgdGhlIG1lZGlhIGNvbnRlbnQgdHlw
ZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgc2V0dGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExOTUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSB0aGUgbmVlZGVkIGluZm9ybWF0
aW9uIGFib3V0IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQK
KyAgICAgICAgd2hlbiBhc2tpbmcgdGhlIE1lZGlhUGxheWVyIGFib3V0IHdoYXQgdHlwZXMgYXJl
IHN1cHBvcnRlZC4gVGhpcyB3YXMgYWxyZWFkeSBiZWluZyBkb25lCisgICAgICAgIGZyb20gSFRN
TE1lZGlhRWxlbWVudCBmb3IgcGxheWVyIHNlbGVjdGlvbiwgYnV0IG5vdCBpbiBNZWRpYVNvdXJj
ZSBub3IgaW4KKyAgICAgICAgTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcigpIHdoZW4gdGhl
IHdlYnBhZ2UgdXNlZCB0aGUgTVNFIEFQSSB0byBjaGVjayB0eXBlIHN1cHBvcnQuCisgICAgICAg
IEluIG9yZGVyIHRvIGFzayBmb3IgdGhlIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0IHNldHRpbmcgd2UgbmVlZCBhCisgICAgICAgIHJlZmVyZW5jZSB0byB0aGUgY3Vy
cmVudCBEb2N1bWVudCBpbiBhbGwgdGhlIHBsYWNlcyB3aGVyZSB3ZSBuZWVkIHRvIGNoZWNrIHR5
cGUgc3VwcG9ydC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcik6IFBy
b3ZpZGUgaGFyZHdhcmUgY29udGVudCB0eXBlcyBleHRyYSBpbmZvLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZCk6IEdldCBoYXJkd2FyZSBjb250ZW50IHR5
cGVzIGV4dHJhIGluZm8gZnJvbQorICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGFuZCBw
cm92aWRlIGl0IHRvIGEgbmV3IHJlZmFjdG9yZWQgcHJpdmF0ZSB2ZXJzaW9uIG9mCisgICAgICAg
IGlzVHlwZVN1cHBvcnRlZCgpIHdoaWNoIGNhbiBhbHNvIGJlIHJldXNlZCBmcm9tIGFkZFNvdXJj
ZUJ1ZmZlcigpLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaDog
Q2hhbmdlZCBpc1R5cGVTdXBwb3J0ZWQoKSBwcm90b3R5cGUgdG8gdGFrZQorICAgICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IGFuZCBhZGRlZCBhIG5ldyBvdmVybG9hZGVkIHZlcnNpb24gb2Yg
dGhlIG1ldGhvZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlk
bDogaXNUeXBlU3VwcG9ydGVkKCkgbm93IHByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvCisgICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuIEl0J3MgdGhlIG9ubHkgd2F5IHRvIGFjY2VzcyB0aGUg
cmVxdWlyZWQgZG9jdW1lbnQgc2V0dGluZ3MgZnJvbSBhCisgICAgICAgIHN0YXRpYyBtZXRob2Qu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2RlY1JlcXVpcmVzSGFyZHdhcmVTdXBw
b3J0KTogTG9naWMgdG8gZGlzY3JpbWluYXRlIGEgY29udGVudCB0eXBlIGFnYWluc3QgYQorICAg
ICAgICBrbm93biBjb2xsZWN0aW9uIG9mIENvbnRlbnRUeXBlcyByZXF1aXJpbmcgaGFyZHdhcmUg
c3VwcG9ydC4gVGhpcyBjb2RlIGhhcyBiZWVuIGZhY3RvcmVkCisgICAgICAgIGludG8gYSBmdW5j
dGlvbiB0byB0YWtlIGFkdmFudGFnZSBvZiBlYXJseSByZXR1cm5zLCBhdm9pZGluZyB1c2luZyBi
cmVhayBzdGF0ZW1lbnRzIGlmCisgICAgICAgIGl0IHdhcyBpbmNsdWRlZCBhcyBwYXJ0IG9mIGlz
Q29udGVudFR5cGVTdXBwb3J0ZWQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lcjo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCBjb25zdCk6IEZhY3RvciBDb250ZW50
VHlwZQorICAgICAgICBkaXNjcmltaW5hdGlvbiBsb2dpYyBjb21tb24gdG8gTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyIGFuZAorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lci5oOiBBZGRlZCBuZXcgbWV0aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUpOiBQcm92
aWRlIGhhcmR3YXJlIGNvbnRlbnQgdHlwZXMgZXh0cmEKKyAgICAgICAgaW5mbyB3aGVuIGFza2lu
ZyBmb3IgdHlwZSBzdXBwb3J0LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3VwcG9ydHNUeXBlKTogRGl0dG8u
CisKIDIwMjAtMDQtMTcgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXSBVcGRhdGUgZm9yIEdka0tleW1hcCBBUEkgY2hhbmdlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA4YTcyMGM5MjcwNWU0ZjU5MjljYmUzZGE3YWUwMTNlZGMzMzczNDViLi4yYjRmN2EyMGQy
NDM4MzVkMzQ5Y2Q3ZDIzZDRlMzdhN2Y3ZDg5YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDIwLTA1LTE1ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQgaG9ub3IgdGhl
IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgc2V0dGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExOTUwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIG1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0IGFzIGEgc2V0dGluZyBvbiBX
UEUgYW5kIFdlYktpdEdUSy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRT
ZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJLaXRTZXR0aW5nc1NldFByb3BlcnR5KToKKyAgICAg
ICAgKHdlYktpdFNldHRpbmdzR2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0X3NldHRpbmdz
X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50
X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KToKKyAgICAgICAgKHdlYmtpdF9zZXR0
aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisKIDIwMjAtMDQtMTcg
IENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBVcGRhdGUgZm9yIEdka0tleW1hcCBBUEkgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCA5OWY3ZmQwYmZhZmVi
ZDViZWE4OTNjZTMxMDRlNzVmMTk2ZWU3YTk1Li5jZGU3MTlmOGZjNTIzZTA0ZTczNjgzMTNmYzBk
MGZjMmVlZDNmMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJNZWRpYVNvdXJjZVByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJj
ZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJMaXN0LmgiCiAjaW5jbHVkZSAiU291cmNlQnVm
ZmVyUHJpdmF0ZS5oIgpAQCAtNjc3LDcgKzY3OCwxMSBAQCBFeGNlcHRpb25PcjxSZWY8U291cmNl
QnVmZmVyPj4gTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUp
CiAKICAgICAvLyAyLiBJZiB0eXBlIGNvbnRhaW5zIGEgTUlNRSB0eXBlIHRoYXQgaXMgbm90IHN1
cHBvcnRlZCAuLi4sIHRoZW4gdGhyb3cgYQogICAgIC8vIE5vdFN1cHBvcnRlZEVycm9yIGV4Y2Vw
dGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKCFpc1R5cGVTdXBwb3J0ZWQodHlw
ZSkpCisgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydDsKKyAgICBpZiAobV9tZWRpYUVsZW1lbnQpCisgICAgICAgIG1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0LmFwcGVuZFZlY3RvcihtX21lZGlhRWxl
bWVudC0+ZG9jdW1lbnQoKS5zZXR0aW5ncygpLm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0KCkpOworCisgICAgaWYgKCFpc1R5cGVTdXBwb3J0ZWQodHlwZSwgbWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAogICAgIC8vIDQuIElmIHRoZSByZWFkeVN0
YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZSB0aGVuIHRocm93IGFuCkBA
IC04NjksNyArODc0LDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVT
b3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgcmV0dXJuIHsgfTsKIH0KIAot
Ym9vbCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSkKK2Jv
b2wgTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICBpZiAoY29udGV4
dC5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCZjb250ZXh0KTsKKyAgICAgICAgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQuYXBwZW5kVmVjdG9yKGRvY3VtZW50LT5zZXR0aW5ncygpLm1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkpOworICAgIH0KKworICAgIHJldHVy
biBpc1R5cGVTdXBwb3J0ZWQodHlwZSwgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQpOworfQorCitib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBjb250ZW50VHlwZXNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQpCiB7CiAgICAgLy8gU2VjdGlvbiAyLjIgaXNUeXBlU3VwcG9y
dGVkKCkgbWV0aG9kIHN0ZXBzLgogICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1t
ZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtTWVk
aWFTb3VyY2UtaXNUeXBlU3VwcG9ydGVkLWJvb2xlYW4tRE9NU3RyaW5nLXR5cGUKQEAgLTg5MSw2
ICs5MDcsOSBAQCBib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5n
JiB0eXBlKQogICAgIE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAg
ICBwYXJhbWV0ZXJzLnR5cGUgPSBjb250ZW50VHlwZTsKICAgICBwYXJhbWV0ZXJzLmlzTWVkaWFT
b3VyY2UgPSB0cnVlOworICAgIGlmICghY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0LmlzRW1wdHkoKSkKKyAgICAgICAgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQuYXBwZW5kVmVjdG9yKGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCk7CisKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRlZCA9IE1l
ZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycyk7CiAKICAgICBpZiAoY29kZWNzLmlz
RW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuaAppbmRleCA3MWRjMDZjZDgwNGQxMWE2NDIyNWRmNGQ2N2M1NWU1NzRjYzFlMDAwLi5i
YjZjOGMyOTg1YWY0ZTVjMjg5MzAyOTIyZjlhNGZmMTUyYjRkZjFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCkBAIC0xMDQsNyArMTA0
LDcgQEAgcHVibGljOgogICAgIFNvdXJjZUJ1ZmZlckxpc3QqIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMo
KSB7IHJldHVybiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZ2V0KCk7IH0KICAgICBFeGNlcHRpb25P
cjxSZWY8U291cmNlQnVmZmVyPj4gYWRkU291cmNlQnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSk7
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYp
OwotICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25zdCBTdHJpbmcmIHR5cGUpOwor
ICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
Y29uc3QgU3RyaW5nJiB0eXBlKTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbDsKIApAQCAtMTMxLDYgKzEzMSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0IGZpbmFsOworICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKICAgICB2b2lkIHNldFByaXZhdGVBbmRPcGVuKFJl
ZjxNZWRpYVNvdXJjZVByaXZhdGU+JiYpIGZpbmFsOwogICAgIHZvaWQgc2Vla1RvVGltZShjb25z
dCBNZWRpYVRpbWUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKaW5kZXggOTY5ODk2OWVlMTM4NjkwNGU0YjViZTdjNmJh
MmVkYmMyYjRlMzY5ZS4uODQ3OWVlZjljNWIyMDMzYTVjNjc5OTIyNDk1YTBjNjVjNDU0ZjgyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5pZGwKQEAgLTYxLDcgKzYxLDcgQEAgZW51bSBSZWFkeVN0YXRlIHsKICAgICAKICAgICBbTWF5
VGhyb3dFeGNlcHRpb25dIHZvaWQgZW5kT2ZTdHJlYW0ob3B0aW9uYWwgRW5kT2ZTdHJlYW1FcnJv
ciBlcnJvcik7CiAKLSAgICBzdGF0aWMgYm9vbGVhbiBpc1R5cGVTdXBwb3J0ZWQgKERPTVN0cmlu
ZyB0eXBlKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gc3RhdGljIGJv
b2xlYW4gaXNUeXBlU3VwcG9ydGVkIChET01TdHJpbmcgdHlwZSk7CiAKICAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIHZvaWQgc2V0TGl2ZVNlZWthYmxlUmFuZ2UoZG91YmxlIHN0YXJ0LCBkb3VibGUg
ZW5kKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgY2xlYXJMaXZlU2Vla2FibGVSYW5n
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAppbmRleCA3
OTIyYjMzMzVlYTcyMGVlNTcxMmM0NGZlYTZlMDM4MzU1MmRjMjJhLi5kZGE3MWY2NWY1MTUzMjJi
NTA3MDZjZDY4NDM0MzVhOTA4NTJmZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyLmNwcApAQCAtMjk4LDYgKzI5OCw0MyBAQCBib29sIEdTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lcjo6aXNDb2RlY1N1cHBvcnRlZChTdHJpbmcgY29kZWMsIGJvb2wgc2hvdWxkQ2hl
Y2tGbwogICAgIHJldHVybiBzdXBwb3J0ZWQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb2Rl
Y1JlcXVpcmVzSGFyZHdhcmVTdXBwb3J0KGNvbnN0IFN0cmluZyYgY29udGFpbmVyVHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlYywgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgY29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KQoreworICAgIGZvciAoYXV0byBjb250ZW50VHlwZVJl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA6IGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3Vw
cG9ydCkgeworICAgICAgICBhdXRvIGNvbnRhaW5lclR5cGVSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQgPSBjb250ZW50VHlwZVJlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5jb250YWluZXJUeXBlKCk7
CisgICAgICAgIGlmICghY29udGFpbmVyVHlwZVJlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5pc0Vt
cHR5KCkKKyAgICAgICAgICAgICYmIGZubWF0Y2goY29udGFpbmVyVHlwZVJlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydC51dGY4KCkuZGF0YSgpLCBjb250YWluZXJUeXBlLnV0ZjgoKS5kYXRhKCksIDAp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKGF1dG8gY29kZWNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQgOiBjb250ZW50VHlwZVJlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dC5jb2RlY3MoKSkgeworICAgICAgICAgICAgaWYgKCFmbm1hdGNoKGNvZGVjUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0LnV0ZjgoKS5kYXRhKCksIGNvZGVjLnV0ZjgoKS5kYXRhKCksIDApKQorICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKK30KKworTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIEdTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lcjo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50VHlwZSYgY29u
dGVudFR5cGUsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydCkgY29uc3QKK3sKKyAgICB1c2luZyBTdXBwb3J0c1R5cGUgPSBNZWRp
YVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU7CisKKyAgICBjb25zdCBTdHJpbmcmIGNvbnRhaW5l
clR5cGUgPSBjb250ZW50VHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgaWYgKCFpc0NvbnRhaW5l
clR5cGVTdXBwb3J0ZWQoY29udGFpbmVyVHlwZSkpCisgICAgICAgIHJldHVybiBTdXBwb3J0c1R5
cGU6OklzTm90U3VwcG9ydGVkOworCisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvZGVjcyA9
IGNvbnRlbnRUeXBlLmNvZGVjcygpOworCisgICAgLy8gU3BlYyBzYXlzIHdlIHNob3VsZCBub3Qg
cmV0dXJuICJwcm9iYWJseSIgaWYgdGhlIGNvZGVjcyBzdHJpbmcgaXMgZW1wdHkuCisgICAgaWYg
KGNvZGVjcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBTdXBwb3J0c1R5cGU6Ok1heUJlU3Vw
cG9ydGVkOworCisgICAgZm9yIChhdXRvIGNvZGVjIDogY29kZWNzKSB7CisgICAgICAgIGJvb2wg
cmVxdWlyZXNIYXJkd2FyZVN1cHBvcnQgPSBjb2RlY1JlcXVpcmVzSGFyZHdhcmVTdXBwb3J0KGNv
bnRhaW5lclR5cGUsIGNvZGVjLCBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQp
OworICAgICAgICBpZiAoIWlzQ29kZWNTdXBwb3J0ZWQoY29kZWMsIHJlcXVpcmVzSGFyZHdhcmVT
dXBwb3J0KSkKKyAgICAgICAgICAgIHJldHVybiBTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVk
OworICAgIH0KKyAgICByZXR1cm4gU3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZDsKK30KKwogYm9v
bCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OmFyZUFsbENvZGVjc1N1cHBvcnRlZChjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgY29kZWNzLCBib29sIHNob3VsZENoZWNrRm9ySGFyZHdhcmVVc2UpIGNv
bnN0CiB7CiAgICAgZm9yIChTdHJpbmcgY29kZWMgOiBjb2RlY3MpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3Ry
eVNjYW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuaAppbmRleCAyZGRhZWM2OTA0NTc5OWE2YTU4YWI0OWZh
ZTNkN2RhODM2ZTE4NDY4Li5jMmRlMWZmNjE0MDE5Yjc4NjhjZWY4ZWQ5ZGM3NjUxYjljYzMzYTUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5oCkBAIC0yMyw2ICsy
Myw3IEBACiAKICNpbmNsdWRlICJNZWRpYUNvbmZpZ3VyYXRpb24uaCIKIAorI2luY2x1ZGUgIk1l
ZGlhUGxheWVyRW51bXMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTUxLDYgKzUyLDcgQEAg
cHVibGljOgogICAgIFJlZ2lzdHJ5TG9va3VwUmVzdWx0IGlzRGVjb2RpbmdTdXBwb3J0ZWQoTWVk
aWFDb25maWd1cmF0aW9uJikgY29uc3Q7CiAKICAgICBib29sIGlzQ29kZWNTdXBwb3J0ZWQoU3Ry
aW5nIGNvZGVjLCBib29sIHVzaW5nSGFyZHdhcmUgPSBmYWxzZSkgY29uc3Q7CisgICAgTWVkaWFQ
bGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIGlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY29uc3QgQ29u
dGVudFR5cGUmLCBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBjb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQpIGNvbnN0OwogICAgIGJvb2wgYXJlQWxsQ29kZWNzU3VwcG9ydGVk
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb2RlY3MsIGJvb2wgc2hvdWxkQ2hlY2tGb3JIYXJkd2Fy
ZVVzZSA9IGZhbHNlKSBjb25zdDsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA2MTYyYWRhZTZiZmY1MTY3MWUzYmU1
MzIyMjdlN2RlNTc5OTlmZGYwLi41YmRmYWFhMTIzMTc1OWRiZjkxMDcwNGM5YTVkNDg4MjRjZDNm
MzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cApAQCAtMjkwOSwxMyArMjkwOSw4IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFCiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAKICAgICBHU1RfREVCVUcoIkNoZWNraW5nIG1pbWUtdHlwZSBcIiVz
XCIiLCBwYXJhbWV0ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgYXV0byBjb250
YWluZXJUeXBlID0gcGFyYW1ldGVycy50eXBlLmNvbnRhaW5lclR5cGUoKTsKICAgICBhdXRvJiBn
c3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OnNpbmdsZXRvbigp
OwotICAgIGlmIChnc3RSZWdpc3RyeVNjYW5uZXIuaXNDb250YWluZXJUeXBlU3VwcG9ydGVkKGNv
bnRhaW5lclR5cGUpKSB7Ci0gICAgICAgIC8vIFNwZWMgc2F5cyB3ZSBzaG91bGQgbm90IHJldHVy
biAicHJvYmFibHkiIGlmIHRoZSBjb2RlY3Mgc3RyaW5nIGlzIGVtcHR5LgotICAgICAgICBWZWN0
b3I8U3RyaW5nPiBjb2RlY3MgPSBwYXJhbWV0ZXJzLnR5cGUuY29kZWNzKCk7Ci0gICAgICAgIHJl
c3VsdCA9IGNvZGVjcy5pc0VtcHR5KCkgPyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpNYXlC
ZVN1cHBvcnRlZCA6IChnc3RSZWdpc3RyeVNjYW5uZXIuYXJlQWxsQ29kZWNzU3VwcG9ydGVkKGNv
ZGVjcykgPyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCA6IE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkKTsKLSAgICB9CisgICAgcmVzdWx0ID0g
Z3N0UmVnaXN0cnlTY2FubmVyLmlzQ29udGVudFR5cGVTdXBwb3J0ZWQocGFyYW1ldGVycy50eXBl
LCBwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKICAg
ICBhdXRvIGZpbmFsUmVzdWx0ID0gZXh0ZW5kZWRTdXBwb3J0c1R5cGUocGFyYW1ldGVycywgcmVz
dWx0KTsKICAgICBHU1RfREVCVUcoIlN1cHBvcnRlZDogJXMiLCBjb252ZXJ0RW51bWVyYXRpb25U
b1N0cmluZyhmaW5hbFJlc3VsdCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKaW5kZXggMWI3MDBi
YmMwODRjNzEyOWRkYjAxNDdiNDQ2ZDkxZTQ2OGVjOTJmMC4uZDhiM2M5MjBkNTk2OGQwODU0MjU2
OTM2YjRlMjRiMmEyYTAxYmU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcApAQCAtNzM5LDExICs3MzksNyBAQCBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3Vw
cG9ydHNUeXBlKGNvbnN0IE1lZAogCiAgICAgR1NUX0RFQlVHKCJDaGVja2luZyBtaW1lLXR5cGUg
XCIlc1wiIiwgcGFyYW1ldGVycy50eXBlLnJhdygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIGF1dG8m
IGdzdFJlZ2lzdHJ5U2Nhbm5lciA9IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lck1TRTo6c2luZ2xl
dG9uKCk7Ci0gICAgLy8gU3BlYyBzYXlzIHdlIHNob3VsZCBub3QgcmV0dXJuICJwcm9iYWJseSIg
aWYgdGhlIGNvZGVjcyBzdHJpbmcgaXMgZW1wdHkuCi0gICAgaWYgKGdzdFJlZ2lzdHJ5U2Nhbm5l
ci5pc0NvbnRhaW5lclR5cGVTdXBwb3J0ZWQoY29udGFpbmVyVHlwZSkpIHsKLSAgICAgICAgVmVj
dG9yPFN0cmluZz4gY29kZWNzID0gcGFyYW1ldGVycy50eXBlLmNvZGVjcygpOwotICAgICAgICBy
ZXN1bHQgPSBjb2RlY3MuaXNFbXB0eSgpID8gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6TWF5
QmVTdXBwb3J0ZWQgOiAoZ3N0UmVnaXN0cnlTY2FubmVyLmFyZUFsbENvZGVjc1N1cHBvcnRlZChj
b2RlY3MpID8gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQgOiBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZCk7Ci0gICAgfQorICAgIHJlc3VsdCA9
IGdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHBhcmFtZXRlcnMudHlw
ZSwgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOwogCiAg
ICAgYXV0byBmaW5hbFJlc3VsdCA9IGV4dGVuZGVkU3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMsIHJl
c3VsdCk7CiAgICAgR1NUX0RFQlVHKCJTdXBwb3J0ZWQ6ICVzIiwgY29udmVydEVudW1lcmF0aW9u
VG9TdHJpbmcoZmluYWxSZXN1bHQpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDg1ZGExMjg5
NzM3ODEyYTI4YzZmYzA2OWNkZjM2YmZiMTlhMzQ2YmYuLjA1N2I2NDU5OTlkZjQxNjQ2NWEzYzFi
YjI1YmM3OGJkODRjYzczZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTE3MCw2ICsxNzAsNyBAQCBlbnVtIHsKICNl
bmRpZgogICAgIFBST1BfRU5BQkxFX0pBVkFTQ1JJUFRfTUFSS1VQLAogICAgIFBST1BfRU5BQkxF
X01FRElBLAorICAgIFBST1BfTUVESUFfQ09OVEVOVF9UWVBFU19SRVFVSVJJTkdfSEFSRFdBUkVf
U1VQUE9SVCwKIH07CiAKIHN0YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzRGlzcG9zZShHT2JqZWN0
KiBvYmplY3QpCkBAIC00MDAsNiArNDAxLDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NT
ZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHUKICAg
ICBjYXNlIFBST1BfRU5BQkxFX01FRElBOgogICAgICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2Vu
YWJsZV9tZWRpYShzZXR0aW5ncywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFBST1BfTUVESUFfQ09OVEVOVF9UWVBFU19SRVFVSVJJTkdfSEFS
RFdBUkVfU1VQUE9SVDoKKyAgICAgICAgd2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50
X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KHNldHRpbmdzLCBnX3ZhbHVlX2dldF9z
dHJpbmcodmFsdWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19P
QkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMp
OwogICAgICAgICBicmVhazsKQEAgLTU5MSw2ICs1OTUsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRT
ZXR0aW5nc0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUq
IHZhbAogICAgIGNhc2UgUFJPUF9FTkFCTEVfTUVESUE6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jv
b2xlYW4odmFsdWUsIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX21lZGlhKHNldHRpbmdzKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NRURJQV9DT05URU5UX1RZUEVTX1JFUVVJ
UklOR19IQVJEV0FSRV9TVVBQT1JUOgorICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUs
IHdlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdh
cmVfc3VwcG9ydChzZXR0aW5ncykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAg
ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBh
cmFtU3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTUzOCw2ICsxNTQ1LDE5IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNz
KQogICAgICAgICAgICAgVFJVRSwKICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFt
RmxhZ3MpKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFNldHRpbmdzOm1lZGlhLWNvbnRlbnQt
dHlwZXMtcmVxdWlyaW5nLWhhcmR3YXJlLXN1cHBvcnQ6CisgICAgICoKKyAgICAgKiBMaXN0IG9m
IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQsIHNwbGl0IGJ5
IHNlbWljb2xvbnMgKDopLgorICAgICAqIEZvciBleGFtcGxlOiAndmlkZW8vd2VibTsgY29kZWNz
PSJ2cCoiOnZpZGVvL21wNDsgY29kZWNzPSJhdmMqIjp2aWRlby8qOyBjb2RlY3M9ImF2MSoiJy4K
KyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFz
cywKKyAgICAgICAgUFJPUF9NRURJQV9DT05URU5UX1RZUEVTX1JFUVVJUklOR19IQVJEV0FSRV9T
VVBQT1JULAorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJtZWRpYS1jb250ZW50LXR5cGVz
LXJlcXVpcmluZy1oYXJkd2FyZS1zdXBwb3J0IiwKKyAgICAgICAgICAgIF8oIk1lZGlhIGNvbnRl
bnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQiKSwKKyAgICAgICAgICAgIF8oIkxp
c3Qgb2YgbWVkaWEgY29udGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydC4iKSwK
KyAgICAgICAgICAgICIiLAorICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFn
cykpOwogfQogCiBXZWJQcmVmZXJlbmNlcyogd2Via2l0U2V0dGluZ3NHZXRQcmVmZXJlbmNlcyhX
ZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCkBAIC0zODAyLDMgKzM4MjIsMzUgQEAgdm9pZCB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYShXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdi
b29sZWFuIGVuYWJsZWQKICAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0TWVkaWFFbmFibGVkKGVu
YWJsZWQpOwogICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFibGUt
bWVkaWEiKTsKIH0KKworLyoqCisgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRf
dHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQ6CisgKiBAc2V0dGluZ3M6IGEgI1dlYktp
dFNldHRpbmdzCisgKgorICogR2V0cyB0aGUgI1dlYktpdFNldHRpbmdzOm1lZGlhLWNvbnRlbnQt
dHlwZXMtcmVxdWlyaW5nLWhhcmR3YXJlLXN1cHBvcnQgcHJvcGVydHkuCisgKgorICogUmV0dXJu
czogTWVkaWEgY29udGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydC4KKyAqLwor
Y29uc3QgZ2NoYXIqIHdlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1
aXJpbmdfaGFyZHdhcmVfc3VwcG9ydChXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSwgMCk7CisK
KyAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5tZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpLnV0ZjgoKS5kYXRhKCk7Cit9CisKKy8qKgorICog
d2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2Fy
ZV9zdXBwb3J0OgorICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5ncworICogQG1lZGlhX2Nv
bnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQ6IGxpc3Qgb2YgbWVkaWEgY29u
dGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydCwgc3BsaXQgYnkgc2VtaWNvbG9u
cyAoOikuCisgKgorICogU2V0IHRoZSAjV2ViS2l0U2V0dGluZ3M6bWVkaWEtY29udGVudC10eXBl
cy1yZXF1aXJpbmctaGFyZHdhcmUtc3VwcG9ydCBwcm9wZXJ0eS4KKyAqLwordm9pZCB3ZWJraXRf
c2V0dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBv
cnQoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBnY2hhciogbWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKG1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KTsKKworICAgIFN0cmluZyBtZWRpYUNv
bnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydFN0cmluZyA9IFN0cmluZzo6ZnJvbVVU
RjgobWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOworICAgIHNldHRp
bmdzLT5wcml2LT5wcmVmZXJlbmNlcy0+c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQobWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRTdHJp
bmcpOworICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJtZWRpYS1jb250
ZW50LXR5cGVzLXJlcXVpcmluZy1oYXJkd2FyZS1zdXBwb3J0Iik7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmgKaW5kZXggMDFjYjRmNTY4
Njg4OWE2YzIzOGY1MmQyNTYxZjUwMWFiNjNiNWFkMS4uMTZlMTk3YzgxZTk4NWI1YTllNjY2Y2E4
YzA0YTYyNmRjMjdiOGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0U2V0dGluZ3MuaApAQCAtNTA2LDYgKzUwNiwxMyBAQCBXRUJLSVRfQVBJIHZvaWQK
IHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAg
IGVuYWJsZWQpOwogCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgord2Via2l0X3NldHRpbmdzX2dl
dF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0IChXZWJLaXRT
ZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19z
ZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydCAoV2ViS2l0
U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBtZWRpYV9jb250ZW50X3R5
cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlm
IC8qIFdlYktpdFNldHRpbmdzX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0Cmlu
ZGV4IDFiYzQyNzBjOWY0MGU4ZmI4YzRmZTY2Y2U2ZTNiYjUwYjNmZjk3MTcuLjA4MGU5ZjM0Njcz
ZTM3ZDIxMmQ1ODA3NDUzNWViZTczZGIxZWE3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rp
b25zLnR4dApAQCAtNTQ4LDYgKzU0OCw4IEBAIHdlYmtpdF9zZXR0aW5nc19mb250X3NpemVfdG9f
cG9pbnRzCiB3ZWJraXRfc2V0dGluZ3NfZm9udF9zaXplX3RvX3BpeGVscwogd2Via2l0X3NldHRp
bmdzX2dldF9lbmFibGVfbWVkaWEKIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhCit3
ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJl
X3N1cHBvcnQKK3dlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJp
bmdfaGFyZHdhcmVfc3VwcG9ydAogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdlYktpdFNldHRp
bmdzQ2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0
dGluZ3MuaAppbmRleCA5ODMwMDQ5NDU0ODljMzY3NWYwOTU0OTZkNWY3M2U0NWU2OWM1MmVlLi4x
MGRmZDZlNmI4OWRjZThjNzRiNzhiODAzNzdmN2U3NGYxMDIxMjZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNldHRpbmdzLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oCkBAIC00NjMsNiArNDYz
LDEzIEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWEg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CiAKK1dFQktJVF9BUEkgY29uc3QgZ2No
YXIqCit3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hh
cmR3YXJlX3N1cHBvcnQgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19o
YXJkd2FyZV9zdXBwb3J0IChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2NoYXIqIG1lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQpOwor
CiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2ViS2l0U2V0dGluZ3NfaCAqLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMu
dHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlv
bnMudHh0CmluZGV4IDBjMmRjNjUxNWM2NmI3OTU3N2E3ZDU4MDdjYTRhMGZiYzVkMDc1MzkuLmNi
NjYwZTAwNWM0MjI3NzcwYzExZWQ4YWI3MzNhYTkxMDY4YmMyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50
eHQKQEAgLTU0Miw2ICs1NDIsOCBAQCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2FsbG93X3RvcF9uYXZp
Z2F0aW9uX3RvX2RhdGFfdXJscwogd2Via2l0X3NldHRpbmdzX3NldF9hbGxvd190b3BfbmF2aWdh
dGlvbl90b19kYXRhX3VybHMKIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX21lZGlhCiB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYQord2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9j
b250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0Cit3ZWJraXRfc2V0dGluZ3Nf
c2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQKIAogPFNV
QlNFQ1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRTZXR0aW5nc0NsYXNzCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTE1NjA4MDc5ZGQxMGUxYzlmNTQ3
ZTU5Y2JjMThkMWEzN2MyYTRlMy4uNTQ5NzEzMzI2MTcyZDYzODk4NDkzNmVmMjkzMTk4YTA2YjJi
OGIxYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTA1LTE1ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxl
b2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9z
ZSBhbmQgaG9ub3IgdGhlIG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1
cHBvcnQgc2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjExOTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRXhlcmNpc2UgdGhlIG5ldyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCBzZXR0aW5nLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgICh0ZXN0V2ViS2l0U2V0dGluZ3Mp
OgorCiAyMDIwLTA0LTE3ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gVXBkYXRlIGZvciBHZGtLZXltYXAgQVBJIGNoYW5nZXMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0
dGluZ3MuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJL
aXRTZXR0aW5ncy5jcHAKaW5kZXggMWI0Njk2Nzk5ZDY2ZTFhNjRjNGQ5NGViZGEyMGU2N2M4ZjI5
NjVlNS4uYjI2MzNmZjNkY2Q1YjY5NTZlNmI5ZjRmZWIxMThiNzBiYjRiY2ZmNSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5n
cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJL
aXRTZXR0aW5ncy5jcHAKQEAgLTM0MSw2ICszNDEsMTEgQEAgc3RhdGljIHZvaWQgdGVzdFdlYktp
dFNldHRpbmdzKFRlc3QqLCBnY29uc3Rwb2ludGVyKQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRf
ZW5hYmxlX21lZGlhKHNldHRpbmdzLCBGQUxTRSk7CiAgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0
X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWEoc2V0dGluZ3MpKTsKIAorICAgIC8vIERlZmF1bHQg
bWVkaWEgY29udGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydCBpcyAiIi4KKyAg
ICBnX2Fzc2VydF9jbXBzdHIoIiIsID09LCB3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRl
bnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQoc2V0dGluZ3MpKTsKKyAgICB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1
cHBvcnQoc2V0dGluZ3MsICJ2aWRlby8qOyBjb2RlY3M9XCIqXCIiKTsKKyAgICBnX2Fzc2VydF9j
bXBzdHIoInZpZGVvLyo7IGNvZGVjcz1cIipcIiIsID09LCB3ZWJraXRfc2V0dGluZ3NfZ2V0X21l
ZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQoc2V0dGluZ3MpKTsK
KwogI2lmIFBMQVRGT1JNKEdUSykKICAgICAvLyBPbmRlbWFuZCBpcyB0aGUgZGVmYXVsdCBoYXJk
d2FyZSBhY2NlbGVyYXRpb24gcG9saWN5LgogICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X3Nl
dHRpbmdzX2dldF9oYXJkd2FyZV9hY2NlbGVyYXRpb25fcG9saWN5KHNldHRpbmdzKSwgPT0sIFdF
QktJVF9IQVJEV0FSRV9BQ0NFTEVSQVRJT05fUE9MSUNZX09OX0RFTUFORCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399481</attachid>
            <date>2020-05-15 08:38:05 -0700</date>
            <delta_ts>2020-05-20 04:48:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211950-20200515153803.patch</filename>
            <type>text/plain</type>
            <size>25645</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI1NTgzYTE2OWU0Zjhk
MGQ0NWViMTkzOTkxMjAxYzdlNzUyMGIzOS4uZjE2ODU2Mzc4NDM0ZmJhODg2MDM5NDVkMzkyMmNh
YjYxY2VmZDk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA1LTE1ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQgaG9ub3IgdGhlIG1lZGlhIGNvbnRlbnQgdHlw
ZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgc2V0dGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExOTUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSB0aGUgbmVlZGVkIGluZm9ybWF0
aW9uIGFib3V0IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQK
KyAgICAgICAgd2hlbiBhc2tpbmcgdGhlIE1lZGlhUGxheWVyIGFib3V0IHdoYXQgdHlwZXMgYXJl
IHN1cHBvcnRlZC4gVGhpcyB3YXMgYWxyZWFkeSBiZWluZyBkb25lCisgICAgICAgIGZyb20gSFRN
TE1lZGlhRWxlbWVudCBmb3IgcGxheWVyIHNlbGVjdGlvbiwgYnV0IG5vdCBpbiBNZWRpYVNvdXJj
ZSBub3IgaW4KKyAgICAgICAgTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcigpIHdoZW4gdGhl
IHdlYnBhZ2UgdXNlZCB0aGUgTVNFIEFQSSB0byBjaGVjayB0eXBlIHN1cHBvcnQuCisgICAgICAg
IEluIG9yZGVyIHRvIGFzayBmb3IgdGhlIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0IHNldHRpbmcgd2UgbmVlZCBhCisgICAgICAgIHJlZmVyZW5jZSB0byB0aGUgY3Vy
cmVudCBEb2N1bWVudCBpbiBhbGwgdGhlIHBsYWNlcyB3aGVyZSB3ZSBuZWVkIHRvIGNoZWNrIHR5
cGUgc3VwcG9ydC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcik6IFBy
b3ZpZGUgaGFyZHdhcmUgY29udGVudCB0eXBlcyBleHRyYSBpbmZvLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZCk6IEdldCBoYXJkd2FyZSBjb250ZW50IHR5
cGVzIGV4dHJhIGluZm8gZnJvbQorICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGFuZCBw
cm92aWRlIGl0IHRvIGEgbmV3IHJlZmFjdG9yZWQgcHJpdmF0ZSB2ZXJzaW9uIG9mCisgICAgICAg
IGlzVHlwZVN1cHBvcnRlZCgpIHdoaWNoIGNhbiBhbHNvIGJlIHJldXNlZCBmcm9tIGFkZFNvdXJj
ZUJ1ZmZlcigpLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaDog
Q2hhbmdlZCBpc1R5cGVTdXBwb3J0ZWQoKSBwcm90b3R5cGUgdG8gdGFrZQorICAgICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IGFuZCBhZGRlZCBhIG5ldyBvdmVybG9hZGVkIHZlcnNpb24gb2Yg
dGhlIG1ldGhvZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlk
bDogaXNUeXBlU3VwcG9ydGVkKCkgbm93IHByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvCisgICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuIEl0J3MgdGhlIG9ubHkgd2F5IHRvIGFjY2VzcyB0aGUg
cmVxdWlyZWQgZG9jdW1lbnQgc2V0dGluZ3MgZnJvbSBhCisgICAgICAgIHN0YXRpYyBtZXRob2Qu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2RlY1JlcXVpcmVzSGFyZHdhcmVTdXBw
b3J0KTogTG9naWMgdG8gZGlzY3JpbWluYXRlIGEgY29udGVudCB0eXBlIGFnYWluc3QgYQorICAg
ICAgICBrbm93biBjb2xsZWN0aW9uIG9mIENvbnRlbnRUeXBlcyByZXF1aXJpbmcgaGFyZHdhcmUg
c3VwcG9ydC4gVGhpcyBjb2RlIGhhcyBiZWVuIGZhY3RvcmVkCisgICAgICAgIGludG8gYSBmdW5j
dGlvbiB0byB0YWtlIGFkdmFudGFnZSBvZiBlYXJseSByZXR1cm5zLCBhdm9pZGluZyB1c2luZyBi
cmVhayBzdGF0ZW1lbnRzIGlmCisgICAgICAgIGl0IHdhcyBpbmNsdWRlZCBhcyBwYXJ0IG9mIGlz
Q29udGVudFR5cGVTdXBwb3J0ZWQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lcjo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCBjb25zdCk6IEZhY3RvciBDb250ZW50
VHlwZQorICAgICAgICBkaXNjcmltaW5hdGlvbiBsb2dpYyBjb21tb24gdG8gTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyIGFuZAorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lci5oOiBBZGRlZCBuZXcgbWV0aG9kLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUpOiBQcm92
aWRlIGhhcmR3YXJlIGNvbnRlbnQgdHlwZXMgZXh0cmEKKyAgICAgICAgaW5mbyB3aGVuIGFza2lu
ZyBmb3IgdHlwZSBzdXBwb3J0LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3VwcG9ydHNUeXBlKTogRGl0dG8u
CisKIDIwMjAtMDQtMTcgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXSBVcGRhdGUgZm9yIEdka0tleW1hcCBBUEkgY2hhbmdlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA4YTcyMGM5MjcwNWU0ZjU5MjljYmUzZGE3YWUwMTNlZGMzMzczNDViLi4yYjRmN2EyMGQy
NDM4MzVkMzQ5Y2Q3ZDIzZDRlMzdhN2Y3ZDg5YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDIwLTA1LTE1ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQgaG9ub3IgdGhl
IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgc2V0dGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExOTUwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIG1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0IGFzIGEgc2V0dGluZyBvbiBX
UEUgYW5kIFdlYktpdEdUSy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRT
ZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJLaXRTZXR0aW5nc1NldFByb3BlcnR5KToKKyAgICAg
ICAgKHdlYktpdFNldHRpbmdzR2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0X3NldHRpbmdz
X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50
X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KToKKyAgICAgICAgKHdlYmtpdF9zZXR0
aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisKIDIwMjAtMDQtMTcg
IENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBVcGRhdGUgZm9yIEdka0tleW1hcCBBUEkgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCA5OWY3ZmQwYmZhZmVi
ZDViZWE4OTNjZTMxMDRlNzVmMTk2ZWU3YTk1Li5jZGU3MTlmOGZjNTIzZTA0ZTczNjgzMTNmYzBk
MGZjMmVlZDNmMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJNZWRpYVNvdXJjZVByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJj
ZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJMaXN0LmgiCiAjaW5jbHVkZSAiU291cmNlQnVm
ZmVyUHJpdmF0ZS5oIgpAQCAtNjc3LDcgKzY3OCwxMSBAQCBFeGNlcHRpb25PcjxSZWY8U291cmNl
QnVmZmVyPj4gTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUp
CiAKICAgICAvLyAyLiBJZiB0eXBlIGNvbnRhaW5zIGEgTUlNRSB0eXBlIHRoYXQgaXMgbm90IHN1
cHBvcnRlZCAuLi4sIHRoZW4gdGhyb3cgYQogICAgIC8vIE5vdFN1cHBvcnRlZEVycm9yIGV4Y2Vw
dGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKCFpc1R5cGVTdXBwb3J0ZWQodHlw
ZSkpCisgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydDsKKyAgICBpZiAobV9tZWRpYUVsZW1lbnQpCisgICAgICAgIG1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0LmFwcGVuZFZlY3RvcihtX21lZGlhRWxl
bWVudC0+ZG9jdW1lbnQoKS5zZXR0aW5ncygpLm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0KCkpOworCisgICAgaWYgKCFpc1R5cGVTdXBwb3J0ZWQodHlwZSwgbWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAogICAgIC8vIDQuIElmIHRoZSByZWFkeVN0
YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZSB0aGVuIHRocm93IGFuCkBA
IC04NjksNyArODc0LDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVT
b3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgcmV0dXJuIHsgfTsKIH0KIAot
Ym9vbCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSkKK2Jv
b2wgTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICBpZiAoY29udGV4
dC5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCZjb250ZXh0KTsKKyAgICAgICAgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQuYXBwZW5kVmVjdG9yKGRvY3VtZW50LT5zZXR0aW5ncygpLm1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkpOworICAgIH0KKworICAgIHJldHVy
biBpc1R5cGVTdXBwb3J0ZWQodHlwZSwgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQpOworfQorCitib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBjb250ZW50VHlwZXNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQpCiB7CiAgICAgLy8gU2VjdGlvbiAyLjIgaXNUeXBlU3VwcG9y
dGVkKCkgbWV0aG9kIHN0ZXBzLgogICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1t
ZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtTWVk
aWFTb3VyY2UtaXNUeXBlU3VwcG9ydGVkLWJvb2xlYW4tRE9NU3RyaW5nLXR5cGUKQEAgLTg5MSw2
ICs5MDcsOSBAQCBib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5n
JiB0eXBlKQogICAgIE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAg
ICBwYXJhbWV0ZXJzLnR5cGUgPSBjb250ZW50VHlwZTsKICAgICBwYXJhbWV0ZXJzLmlzTWVkaWFT
b3VyY2UgPSB0cnVlOworICAgIGlmICghY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0LmlzRW1wdHkoKSkKKyAgICAgICAgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQuYXBwZW5kVmVjdG9yKGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCk7CisKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRlZCA9IE1l
ZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycyk7CiAKICAgICBpZiAoY29kZWNzLmlz
RW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuaAppbmRleCA3MWRjMDZjZDgwNGQxMWE2NDIyNWRmNGQ2N2M1NWU1NzRjYzFlMDAwLi5i
YjZjOGMyOTg1YWY0ZTVjMjg5MzAyOTIyZjlhNGZmMTUyYjRkZjFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCkBAIC0xMDQsNyArMTA0
LDcgQEAgcHVibGljOgogICAgIFNvdXJjZUJ1ZmZlckxpc3QqIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMo
KSB7IHJldHVybiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZ2V0KCk7IH0KICAgICBFeGNlcHRpb25P
cjxSZWY8U291cmNlQnVmZmVyPj4gYWRkU291cmNlQnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSk7
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYp
OwotICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25zdCBTdHJpbmcmIHR5cGUpOwor
ICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
Y29uc3QgU3RyaW5nJiB0eXBlKTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbDsKIApAQCAtMTMxLDYgKzEzMSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0IGZpbmFsOworICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKICAgICB2b2lkIHNldFByaXZhdGVBbmRPcGVuKFJl
ZjxNZWRpYVNvdXJjZVByaXZhdGU+JiYpIGZpbmFsOwogICAgIHZvaWQgc2Vla1RvVGltZShjb25z
dCBNZWRpYVRpbWUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKaW5kZXggOTY5ODk2OWVlMTM4NjkwNGU0YjViZTdjNmJh
MmVkYmMyYjRlMzY5ZS4uODQ3OWVlZjljNWIyMDMzYTVjNjc5OTIyNDk1YTBjNjVjNDU0ZjgyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5pZGwKQEAgLTYxLDcgKzYxLDcgQEAgZW51bSBSZWFkeVN0YXRlIHsKICAgICAKICAgICBbTWF5
VGhyb3dFeGNlcHRpb25dIHZvaWQgZW5kT2ZTdHJlYW0ob3B0aW9uYWwgRW5kT2ZTdHJlYW1FcnJv
ciBlcnJvcik7CiAKLSAgICBzdGF0aWMgYm9vbGVhbiBpc1R5cGVTdXBwb3J0ZWQgKERPTVN0cmlu
ZyB0eXBlKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gc3RhdGljIGJv
b2xlYW4gaXNUeXBlU3VwcG9ydGVkIChET01TdHJpbmcgdHlwZSk7CiAKICAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIHZvaWQgc2V0TGl2ZVNlZWthYmxlUmFuZ2UoZG91YmxlIHN0YXJ0LCBkb3VibGUg
ZW5kKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgY2xlYXJMaXZlU2Vla2FibGVSYW5n
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAppbmRleCA3
OTIyYjMzMzVlYTcyMGVlNTcxMmM0NGZlYTZlMDM4MzU1MmRjMjJhLi5kZGE3MWY2NWY1MTUzMjJi
NTA3MDZjZDY4NDM0MzVhOTA4NTJmZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyLmNwcApAQCAtMjk4LDYgKzI5OCw0MyBAQCBib29sIEdTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lcjo6aXNDb2RlY1N1cHBvcnRlZChTdHJpbmcgY29kZWMsIGJvb2wgc2hvdWxkQ2hl
Y2tGbwogICAgIHJldHVybiBzdXBwb3J0ZWQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb2Rl
Y1JlcXVpcmVzSGFyZHdhcmVTdXBwb3J0KGNvbnN0IFN0cmluZyYgY29udGFpbmVyVHlwZSwgY29u
c3QgU3RyaW5nJiBjb2RlYywgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgY29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KQoreworICAgIGZvciAoYXV0byBjb250ZW50VHlwZVJl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA6IGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3Vw
cG9ydCkgeworICAgICAgICBhdXRvIGNvbnRhaW5lclR5cGVSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQgPSBjb250ZW50VHlwZVJlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5jb250YWluZXJUeXBlKCk7
CisgICAgICAgIGlmICghY29udGFpbmVyVHlwZVJlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5pc0Vt
cHR5KCkKKyAgICAgICAgICAgICYmIGZubWF0Y2goY29udGFpbmVyVHlwZVJlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydC51dGY4KCkuZGF0YSgpLCBjb250YWluZXJUeXBlLnV0ZjgoKS5kYXRhKCksIDAp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKGF1dG8gY29kZWNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQgOiBjb250ZW50VHlwZVJlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dC5jb2RlY3MoKSkgeworICAgICAgICAgICAgaWYgKCFmbm1hdGNoKGNvZGVjUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0LnV0ZjgoKS5kYXRhKCksIGNvZGVjLnV0ZjgoKS5kYXRhKCksIDApKQorICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKK30KKworTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIEdTdHJlYW1lclJlZ2lz
dHJ5U2Nhbm5lcjo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50VHlwZSYgY29u
dGVudFR5cGUsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydCkgY29uc3QKK3sKKyAgICB1c2luZyBTdXBwb3J0c1R5cGUgPSBNZWRp
YVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU7CisKKyAgICBjb25zdCBTdHJpbmcmIGNvbnRhaW5l
clR5cGUgPSBjb250ZW50VHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgaWYgKCFpc0NvbnRhaW5l
clR5cGVTdXBwb3J0ZWQoY29udGFpbmVyVHlwZSkpCisgICAgICAgIHJldHVybiBTdXBwb3J0c1R5
cGU6OklzTm90U3VwcG9ydGVkOworCisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvZGVjcyA9
IGNvbnRlbnRUeXBlLmNvZGVjcygpOworCisgICAgLy8gU3BlYyBzYXlzIHdlIHNob3VsZCBub3Qg
cmV0dXJuICJwcm9iYWJseSIgaWYgdGhlIGNvZGVjcyBzdHJpbmcgaXMgZW1wdHkuCisgICAgaWYg
KGNvZGVjcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBTdXBwb3J0c1R5cGU6Ok1heUJlU3Vw
cG9ydGVkOworCisgICAgZm9yIChhdXRvIGNvZGVjIDogY29kZWNzKSB7CisgICAgICAgIGJvb2wg
cmVxdWlyZXNIYXJkd2FyZVN1cHBvcnQgPSBjb2RlY1JlcXVpcmVzSGFyZHdhcmVTdXBwb3J0KGNv
bnRhaW5lclR5cGUsIGNvZGVjLCBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQp
OworICAgICAgICBpZiAoIWlzQ29kZWNTdXBwb3J0ZWQoY29kZWMsIHJlcXVpcmVzSGFyZHdhcmVT
dXBwb3J0KSkKKyAgICAgICAgICAgIHJldHVybiBTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVk
OworICAgIH0KKyAgICByZXR1cm4gU3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZDsKK30KKwogYm9v
bCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OmFyZUFsbENvZGVjc1N1cHBvcnRlZChjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgY29kZWNzLCBib29sIHNob3VsZENoZWNrRm9ySGFyZHdhcmVVc2UpIGNv
bnN0CiB7CiAgICAgZm9yIChTdHJpbmcgY29kZWMgOiBjb2RlY3MpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3Ry
eVNjYW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuaAppbmRleCAyZGRhZWM2OTA0NTc5OWE2YTU4YWI0OWZh
ZTNkN2RhODM2ZTE4NDY4Li5jMmRlMWZmNjE0MDE5Yjc4NjhjZWY4ZWQ5ZGM3NjUxYjljYzMzYTUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5oCkBAIC0yMyw2ICsy
Myw3IEBACiAKICNpbmNsdWRlICJNZWRpYUNvbmZpZ3VyYXRpb24uaCIKIAorI2luY2x1ZGUgIk1l
ZGlhUGxheWVyRW51bXMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTUxLDYgKzUyLDcgQEAg
cHVibGljOgogICAgIFJlZ2lzdHJ5TG9va3VwUmVzdWx0IGlzRGVjb2RpbmdTdXBwb3J0ZWQoTWVk
aWFDb25maWd1cmF0aW9uJikgY29uc3Q7CiAKICAgICBib29sIGlzQ29kZWNTdXBwb3J0ZWQoU3Ry
aW5nIGNvZGVjLCBib29sIHVzaW5nSGFyZHdhcmUgPSBmYWxzZSkgY29uc3Q7CisgICAgTWVkaWFQ
bGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIGlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY29uc3QgQ29u
dGVudFR5cGUmLCBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBjb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQpIGNvbnN0OwogICAgIGJvb2wgYXJlQWxsQ29kZWNzU3VwcG9ydGVk
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb2RlY3MsIGJvb2wgc2hvdWxkQ2hlY2tGb3JIYXJkd2Fy
ZVVzZSA9IGZhbHNlKSBjb25zdDsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA2MTYyYWRhZTZiZmY1MTY3MWUzYmU1
MzIyMjdlN2RlNTc5OTlmZGYwLi41YmRmYWFhMTIzMTc1OWRiZjkxMDcwNGM5YTVkNDg4MjRjZDNm
MzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cApAQCAtMjkwOSwxMyArMjkwOSw4IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFCiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAKICAgICBHU1RfREVCVUcoIkNoZWNraW5nIG1pbWUtdHlwZSBcIiVz
XCIiLCBwYXJhbWV0ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgYXV0byBjb250
YWluZXJUeXBlID0gcGFyYW1ldGVycy50eXBlLmNvbnRhaW5lclR5cGUoKTsKICAgICBhdXRvJiBn
c3RSZWdpc3RyeVNjYW5uZXIgPSBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OnNpbmdsZXRvbigp
OwotICAgIGlmIChnc3RSZWdpc3RyeVNjYW5uZXIuaXNDb250YWluZXJUeXBlU3VwcG9ydGVkKGNv
bnRhaW5lclR5cGUpKSB7Ci0gICAgICAgIC8vIFNwZWMgc2F5cyB3ZSBzaG91bGQgbm90IHJldHVy
biAicHJvYmFibHkiIGlmIHRoZSBjb2RlY3Mgc3RyaW5nIGlzIGVtcHR5LgotICAgICAgICBWZWN0
b3I8U3RyaW5nPiBjb2RlY3MgPSBwYXJhbWV0ZXJzLnR5cGUuY29kZWNzKCk7Ci0gICAgICAgIHJl
c3VsdCA9IGNvZGVjcy5pc0VtcHR5KCkgPyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpNYXlC
ZVN1cHBvcnRlZCA6IChnc3RSZWdpc3RyeVNjYW5uZXIuYXJlQWxsQ29kZWNzU3VwcG9ydGVkKGNv
ZGVjcykgPyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCA6IE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkKTsKLSAgICB9CisgICAgcmVzdWx0ID0g
Z3N0UmVnaXN0cnlTY2FubmVyLmlzQ29udGVudFR5cGVTdXBwb3J0ZWQocGFyYW1ldGVycy50eXBl
LCBwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKICAg
ICBhdXRvIGZpbmFsUmVzdWx0ID0gZXh0ZW5kZWRTdXBwb3J0c1R5cGUocGFyYW1ldGVycywgcmVz
dWx0KTsKICAgICBHU1RfREVCVUcoIlN1cHBvcnRlZDogJXMiLCBjb252ZXJ0RW51bWVyYXRpb25U
b1N0cmluZyhmaW5hbFJlc3VsdCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKaW5kZXggMWI3MDBi
YmMwODRjNzEyOWRkYjAxNDdiNDQ2ZDkxZTQ2OGVjOTJmMC4uZDhiM2M5MjBkNTk2OGQwODU0MjU2
OTM2YjRlMjRiMmEyYTAxYmU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcApAQCAtNzM5LDExICs3MzksNyBAQCBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTo6c3Vw
cG9ydHNUeXBlKGNvbnN0IE1lZAogCiAgICAgR1NUX0RFQlVHKCJDaGVja2luZyBtaW1lLXR5cGUg
XCIlc1wiIiwgcGFyYW1ldGVycy50eXBlLnJhdygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIGF1dG8m
IGdzdFJlZ2lzdHJ5U2Nhbm5lciA9IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lck1TRTo6c2luZ2xl
dG9uKCk7Ci0gICAgLy8gU3BlYyBzYXlzIHdlIHNob3VsZCBub3QgcmV0dXJuICJwcm9iYWJseSIg
aWYgdGhlIGNvZGVjcyBzdHJpbmcgaXMgZW1wdHkuCi0gICAgaWYgKGdzdFJlZ2lzdHJ5U2Nhbm5l
ci5pc0NvbnRhaW5lclR5cGVTdXBwb3J0ZWQoY29udGFpbmVyVHlwZSkpIHsKLSAgICAgICAgVmVj
dG9yPFN0cmluZz4gY29kZWNzID0gcGFyYW1ldGVycy50eXBlLmNvZGVjcygpOwotICAgICAgICBy
ZXN1bHQgPSBjb2RlY3MuaXNFbXB0eSgpID8gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6TWF5
QmVTdXBwb3J0ZWQgOiAoZ3N0UmVnaXN0cnlTY2FubmVyLmFyZUFsbENvZGVjc1N1cHBvcnRlZChj
b2RlY3MpID8gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQgOiBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZCk7Ci0gICAgfQorICAgIHJlc3VsdCA9
IGdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHBhcmFtZXRlcnMudHlw
ZSwgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOwogCiAg
ICAgYXV0byBmaW5hbFJlc3VsdCA9IGV4dGVuZGVkU3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMsIHJl
c3VsdCk7CiAgICAgR1NUX0RFQlVHKCJTdXBwb3J0ZWQ6ICVzIiwgY29udmVydEVudW1lcmF0aW9u
VG9TdHJpbmcoZmluYWxSZXN1bHQpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDg1ZGExMjg5
NzM3ODEyYTI4YzZmYzA2OWNkZjM2YmZiMTlhMzQ2YmYuLjJmMTE0NzIxOGEyNWM1M2IzZDNjMjM0
MjZkNjkwZmZjZmE2YjQ0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTE3MCw2ICsxNzAsNyBAQCBlbnVtIHsKICNl
bmRpZgogICAgIFBST1BfRU5BQkxFX0pBVkFTQ1JJUFRfTUFSS1VQLAogICAgIFBST1BfRU5BQkxF
X01FRElBLAorICAgIFBST1BfTUVESUFfQ09OVEVOVF9UWVBFU19SRVFVSVJJTkdfSEFSRFdBUkVf
U1VQUE9SVCwKIH07CiAKIHN0YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzRGlzcG9zZShHT2JqZWN0
KiBvYmplY3QpCkBAIC00MDAsNiArNDAxLDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NT
ZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHUKICAg
ICBjYXNlIFBST1BfRU5BQkxFX01FRElBOgogICAgICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2Vu
YWJsZV9tZWRpYShzZXR0aW5ncywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFBST1BfTUVESUFfQ09OVEVOVF9UWVBFU19SRVFVSVJJTkdfSEFS
RFdBUkVfU1VQUE9SVDoKKyAgICAgICAgd2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50
X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KHNldHRpbmdzLCBnX3ZhbHVlX2dldF9z
dHJpbmcodmFsdWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19P
QkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMp
OwogICAgICAgICBicmVhazsKQEAgLTU5MSw2ICs1OTUsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRT
ZXR0aW5nc0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUq
IHZhbAogICAgIGNhc2UgUFJPUF9FTkFCTEVfTUVESUE6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jv
b2xlYW4odmFsdWUsIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX21lZGlhKHNldHRpbmdzKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NRURJQV9DT05URU5UX1RZUEVTX1JFUVVJ
UklOR19IQVJEV0FSRV9TVVBQT1JUOgorICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUs
IHdlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdh
cmVfc3VwcG9ydChzZXR0aW5ncykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAg
ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBh
cmFtU3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTUzOCw2ICsxNTQ1LDIxIEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNz
KQogICAgICAgICAgICAgVFJVRSwKICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFt
RmxhZ3MpKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFNldHRpbmdzOm1lZGlhLWNvbnRlbnQt
dHlwZXMtcmVxdWlyaW5nLWhhcmR3YXJlLXN1cHBvcnQ6CisgICAgICoKKyAgICAgKiBMaXN0IG9m
IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQsIHNwbGl0IGJ5
IHNlbWljb2xvbnMgKDopLgorICAgICAqIEZvciBleGFtcGxlOiAndmlkZW8vd2VibTsgY29kZWNz
PSJ2cCoiOnZpZGVvL21wNDsgY29kZWNzPSJhdmMqIjp2aWRlby8qOyBjb2RlY3M9ImF2MSoiJy4K
KyAgICAgKgorICAgICAqIFNpbmNlOiAyLjMwCisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCisgICAgICAgIFBST1BfTUVESUFfQ09OVEVO
VF9UWVBFU19SRVFVSVJJTkdfSEFSRFdBUkVfU1VQUE9SVCwKKyAgICAgICAgZ19wYXJhbV9zcGVj
X3N0cmluZygibWVkaWEtY29udGVudC10eXBlcy1yZXF1aXJpbmctaGFyZHdhcmUtc3VwcG9ydCIs
CisgICAgICAgICAgICBfKCJNZWRpYSBjb250ZW50IHR5cGVzIHJlcXVpcmluZyBoYXJkd2FyZSBz
dXBwb3J0IiksCisgICAgICAgICAgICBfKCJMaXN0IG9mIG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVx
dWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQuIiksCisgICAgICAgICAgICAiIiwKKyAgICAgICAgICAg
IHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKIH0KIAogV2ViUHJlZmVyZW5jZXMqIHdl
YmtpdFNldHRpbmdzR2V0UHJlZmVyZW5jZXMoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzKQpAQCAt
MzgwMiwzICszODI0LDM5IEBAIHZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWEo
V2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBlbmFibGVkCiAgICAgcHJpdi0+cHJl
ZmVyZW5jZXMtPnNldE1lZGlhRW5hYmxlZChlbmFibGVkKTsKICAgICBnX29iamVjdF9ub3RpZnko
R19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLW1lZGlhIik7CiB9CisKKy8qKgorICogd2Via2l0
X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBw
b3J0OgorICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5ncworICoKKyAqIEdldHMgdGhlICNX
ZWJLaXRTZXR0aW5nczptZWRpYS1jb250ZW50LXR5cGVzLXJlcXVpcmluZy1oYXJkd2FyZS1zdXBw
b3J0IHByb3BlcnR5LgorICoKKyAqIFJldHVybnM6IE1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWly
aW5nIGhhcmR3YXJlIHN1cHBvcnQuCisgKgorICogU2luY2U6IDIuMzAKKyAqLworY29uc3QgZ2No
YXIqIHdlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFy
ZHdhcmVfc3VwcG9ydChXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSwgMCk7CisKKyAgICByZXR1
cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydCgpLnV0ZjgoKS5kYXRhKCk7Cit9CisKKy8qKgorICogd2Via2l0X3Nl
dHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0
OgorICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5ncworICogQG1lZGlhX2NvbnRlbnRfdHlw
ZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQ6IGxpc3Qgb2YgbWVkaWEgY29udGVudCB0eXBl
cyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydCwgc3BsaXQgYnkgc2VtaWNvbG9ucyAoOikuCisg
KgorICogU2V0IHRoZSAjV2ViS2l0U2V0dGluZ3M6bWVkaWEtY29udGVudC10eXBlcy1yZXF1aXJp
bmctaGFyZHdhcmUtc3VwcG9ydCBwcm9wZXJ0eS4KKyAqCisgKiBTaW5jZTogMi4zMAorICovCit2
b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFy
ZHdhcmVfc3VwcG9ydChXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0IGdjaGFyKiBtZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKK3sKKyAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19TRVRUSU5HUyhzZXR0aW5ncykpOworICAgIGdfcmV0dXJuX2lmX2Zh
aWwobWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOworCisgICAgU3Ry
aW5nIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0U3RyaW5nID0gU3Ry
aW5nOjpmcm9tVVRGOChtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7
CisgICAgc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5zZXRNZWRpYUNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydChtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydFN0cmluZyk7CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwg
Im1lZGlhLWNvbnRlbnQtdHlwZXMtcmVxdWlyaW5nLWhhcmR3YXJlLXN1cHBvcnQiKTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaAppbmRl
eCAwMWNiNGY1Njg2ODg5YTZjMjM4ZjUyZDI1NjFmNTAxYWI2M2I1YWQxLi4xNmUxOTdjODFlOTg1
YjVhOWU2NjZjYThjMDRhNjI2ZGMyN2I4ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oCkBAIC01MDYsNiArNTA2LDEzIEBAIFdFQktJ
VF9BUEkgdm9pZAogd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWEgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9v
bGVhbiAgICAgICAgZW5hYmxlZCk7CiAKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIqCit3ZWJraXRf
c2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBv
cnQgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0
X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBw
b3J0IChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIG1lZGlh
X2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQpOworCiBHX0VORF9ERUNM
UwogCiAjZW5kaWYgLyogV2ViS2l0U2V0dGluZ3NfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0
aW9ucy50eHQKaW5kZXggMWJjNDI3MGM5ZjQwZThmYjhjNGZlNjZjZTZlM2JiNTBiM2ZmOTcxNy4u
MDgwZTlmMzQ2NzNlMzdkMjEyZDU4MDc0NTM1ZWJlNzNkYjFlYTdiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25z
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay00LjAtc2VjdGlvbnMudHh0CkBAIC01NDgsNiArNTQ4LDggQEAgd2Via2l0X3NldHRpbmdzX2Zv
bnRfc2l6ZV90b19wb2ludHMKIHdlYmtpdF9zZXR0aW5nc19mb250X3NpemVfdG9fcGl4ZWxzCiB3
ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYQogd2Via2l0X3NldHRpbmdzX3NldF9lbmFi
bGVfbWVkaWEKK3dlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJp
bmdfaGFyZHdhcmVfc3VwcG9ydAord2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5
cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0CiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgog
V2ViS2l0U2V0dGluZ3NDbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCmluZGV4IGFiODRkMWY4ZjVkMGRm
NDMwODJmYTlkMTcyZjY0ZDg0Njc2MmFjNjQuLjg2OTJjYzU1MTk0ZDk5ZTJmOGIyODcyOGNlMjg0
OGJlMzY3YjFjMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
ZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKQEAgLTE2Myw1ICsxNjMsMTAgQEAKICAg
ICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMjgueG1sIj48eGk6ZmFsbGJhY2sg
Lz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CiAKKyAgPGluZGV4IGlkPSJhcGktaW5kZXgtMi0z
MCIgcm9sZT0iMi4zMCI+CisgICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDIuMzA8
L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgtMi4zMC54bWwiPjx4
aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KKyAgPC9pbmRleD4KKwogICA8eGk6aW5jbHVkZSBo
cmVmPSJ4bWwvYW5ub3RhdGlvbi1nbG9zc2FyeS54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5j
bHVkZT4KIDwvYm9vaz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0U2V0dGluZ3MuaAppbmRleCA5ODMwMDQ5NDU0ODljMzY3NWYwOTU0OTZkNWY3M2U0NWU2OWM1
MmVlLi4xMGRmZDZlNmI4OWRjZThjNzRiNzhiODAzNzdmN2U3NGYxMDIxMjZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNldHRpbmdzLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oCkBAIC00NjMs
NiArNDYzLDEzIEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVf
bWVkaWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0
aW5ncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CiAKK1dFQktJVF9BUEkgY29u
c3QgZ2NoYXIqCit3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWly
aW5nX2hhcmR3YXJlX3N1cHBvcnQgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVp
cmluZ19oYXJkd2FyZV9zdXBwb3J0IChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2NoYXIqIG1lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBv
cnQpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2ViS2l0U2V0dGluZ3NfaCAqLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2Vj
dGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAt
c2VjdGlvbnMudHh0CmluZGV4IDBjMmRjNjUxNWM2NmI3OTU3N2E3ZDU4MDdjYTRhMGZiYzVkMDc1
MzkuLmNiNjYwZTAwNWM0MjI3NzcwYzExZWQ4YWI3MzNhYTkxMDY4YmMyYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0
aW9ucy50eHQKQEAgLTU0Miw2ICs1NDIsOCBAQCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2FsbG93X3Rv
cF9uYXZpZ2F0aW9uX3RvX2RhdGFfdXJscwogd2Via2l0X3NldHRpbmdzX3NldF9hbGxvd190b3Bf
bmF2aWdhdGlvbl90b19kYXRhX3VybHMKIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX21lZGlh
CiB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYQord2Via2l0X3NldHRpbmdzX2dldF9t
ZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0Cit3ZWJraXRfc2V0
dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQK
IAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRTZXR0aW5nc0NsYXNzCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTE1NjA4MDc5ZGQxMGUx
YzlmNTQ3ZTU5Y2JjMThkMWEzN2MyYTRlMy4uNTQ5NzEzMzI2MTcyZDYzODk4NDkzNmVmMjkzMTk4
YTA2YjJiOGIxYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA1LTE1ICBFbnJpcXVlIE9jYcOxYSBHb256w6Fs
ZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bR1RLXVtXUEVd
IEV4cG9zZSBhbmQgaG9ub3IgdGhlIG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3
YXJlIHN1cHBvcnQgc2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExOTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRXhlcmNpc2UgdGhlIG5ldyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydCBzZXR0aW5nLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgICh0ZXN0V2ViS2l0U2V0
dGluZ3MpOgorCiAyMDIwLTA0LTE3ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIGZvciBHZGtLZXltYXAgQVBJIGNoYW5nZXMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2Vi
S2l0U2V0dGluZ3MuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggMWI0Njk2Nzk5ZDY2ZTFhNjRjNGQ5NGViZGEyMGU2
N2M4ZjI5NjVlNS4uYjI2MzNmZjNkY2Q1YjY5NTZlNmI5ZjRmZWIxMThiNzBiYjRiY2ZmNSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRT
ZXR0aW5ncy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTM0MSw2ICszNDEsMTEgQEAgc3RhdGljIHZvaWQgdGVz
dFdlYktpdFNldHRpbmdzKFRlc3QqLCBnY29uc3Rwb2ludGVyKQogICAgIHdlYmtpdF9zZXR0aW5n
c19zZXRfZW5hYmxlX21lZGlhKHNldHRpbmdzLCBGQUxTRSk7CiAgICAgZ19hc3NlcnRfZmFsc2Uo
d2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWEoc2V0dGluZ3MpKTsKIAorICAgIC8vIERl
ZmF1bHQgbWVkaWEgY29udGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydCBpcyAi
Ii4KKyAgICBnX2Fzc2VydF9jbXBzdHIoIiIsID09LCB3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlh
X2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQoc2V0dGluZ3MpKTsKKyAg
ICB3ZWJraXRfc2V0dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3
YXJlX3N1cHBvcnQoc2V0dGluZ3MsICJ2aWRlby8qOyBjb2RlY3M9XCIqXCIiKTsKKyAgICBnX2Fz
c2VydF9jbXBzdHIoInZpZGVvLyo7IGNvZGVjcz1cIipcIiIsID09LCB3ZWJraXRfc2V0dGluZ3Nf
Z2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQoc2V0dGlu
Z3MpKTsKKwogI2lmIFBMQVRGT1JNKEdUSykKICAgICAvLyBPbmRlbWFuZCBpcyB0aGUgZGVmYXVs
dCBoYXJkd2FyZSBhY2NlbGVyYXRpb24gcG9saWN5LgogICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Vi
a2l0X3NldHRpbmdzX2dldF9oYXJkd2FyZV9hY2NlbGVyYXRpb25fcG9saWN5KHNldHRpbmdzKSwg
PT0sIFdFQktJVF9IQVJEV0FSRV9BQ0NFTEVSQVRJT05fUE9MSUNZX09OX0RFTUFORCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399829</attachid>
            <date>2020-05-20 04:48:16 -0700</date>
            <delta_ts>2020-05-20 06:32:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211950-20200520114815.patch</filename>
            <type>text/plain</type>
            <size>26280</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI1NTgzYTE2OWU0Zjhk
MGQ0NWViMTkzOTkxMjAxYzdlNzUyMGIzOS4uNzBlODUxNzI4NzY5NjA5ZTI1NmRhYWEzOTQxYzhk
MjNmYmE4MmIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA1LTE5ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQgaG9ub3IgdGhlIG1lZGlhIGNvbnRlbnQgdHlw
ZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgc2V0dGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExOTUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSB0aGUgbmVlZGVkIGluZm9ybWF0
aW9uIGFib3V0IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQK
KyAgICAgICAgd2hlbiBhc2tpbmcgdGhlIE1lZGlhUGxheWVyIGFib3V0IHdoYXQgdHlwZXMgYXJl
IHN1cHBvcnRlZC4gVGhpcyB3YXMgYWxyZWFkeSBiZWluZyBkb25lCisgICAgICAgIGZyb20gSFRN
TE1lZGlhRWxlbWVudCBmb3IgcGxheWVyIHNlbGVjdGlvbiwgYnV0IG5vdCBpbiBNZWRpYVNvdXJj
ZSBub3IgaW4KKyAgICAgICAgTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcigpIHdoZW4gdGhl
IHdlYnBhZ2UgdXNlZCB0aGUgTVNFIEFQSSB0byBjaGVjayB0eXBlIHN1cHBvcnQuCisgICAgICAg
IEluIG9yZGVyIHRvIGFzayBmb3IgdGhlIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0IHNldHRpbmcgd2UgbmVlZCBhCisgICAgICAgIHJlZmVyZW5jZSB0byB0aGUgY3Vy
cmVudCBEb2N1bWVudCBpbiBhbGwgdGhlIHBsYWNlcyB3aGVyZSB3ZSBuZWVkIHRvIGNoZWNrIHR5
cGUgc3VwcG9ydC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcik6IFBy
b3ZpZGUgaGFyZHdhcmUgY29udGVudCB0eXBlcyBleHRyYSBpbmZvLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZCk6IEdldCBoYXJkd2FyZSBjb250ZW50IHR5
cGVzIGV4dHJhIGluZm8gZnJvbQorICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGFuZCBw
cm92aWRlIGl0IHRvIGEgbmV3IHJlZmFjdG9yZWQgcHJpdmF0ZSB2ZXJzaW9uIG9mCisgICAgICAg
IGlzVHlwZVN1cHBvcnRlZCgpIHdoaWNoIGNhbiBhbHNvIGJlIHJldXNlZCBmcm9tIGFkZFNvdXJj
ZUJ1ZmZlcigpLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaDog
Q2hhbmdlZCBpc1R5cGVTdXBwb3J0ZWQoKSBwcm90b3R5cGUgdG8gdGFrZQorICAgICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IGFuZCBhZGRlZCBhIG5ldyBvdmVybG9hZGVkIHZlcnNpb24gb2Yg
dGhlIG1ldGhvZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlk
bDogaXNUeXBlU3VwcG9ydGVkKCkgbm93IHByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvCisgICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuIEl0J3MgdGhlIG9ubHkgd2F5IHRvIGFjY2VzcyB0aGUg
cmVxdWlyZWQgZG9jdW1lbnQgc2V0dGluZ3MgZnJvbSBhCisgICAgICAgIHN0YXRpYyBtZXRob2Qu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6
OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQgY29uc3QpOiBGYWN0b3IgQ29udGVudFR5cGUKKyAgICAg
ICAgZGlzY3JpbWluYXRpb24gbG9naWMgY29tbW9uIHRvIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lciBhbmQKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIu
aDogQWRkZWQgbmV3IG1ldGhvZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBlKTogUHJvdmlkZSBoYXJkd2Fy
ZSBjb250ZW50IHR5cGVzIGV4dHJhCisgICAgICAgIGluZm8gd2hlbiBhc2tpbmcgZm9yIHR5cGUg
c3VwcG9ydC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRzVHlwZSk6IERpdHRvLgorCiAyMDIwLTA0
LTE3ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gVXBkYXRlIGZvciBHZGtLZXltYXAgQVBJIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGE3MjBj
OTI3MDVlNGY1OTI5Y2JlM2RhN2FlMDEzZWRjMzM3MzQ1Yi4uMDlhZTE0ZjM4NjUxMTRmMWZmMDY5
MWNjNzliOGI2MDBhYmNmNzgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wNS0x
OSAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtHU3RyZWFtZXJdW0dUS11bV1BFXSBFeHBvc2UgYW5kIGhvbm9yIHRoZSBtZWRpYSBjb250
ZW50IHR5cGVzIHJlcXVpcmluZyBoYXJkd2FyZSBzdXBwb3J0IHNldHRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBtZWRpYUNvbnRlbnRU
eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCBhcyBhIHNldHRpbmcgb24gV1BFIGFuZCBXZWJL
aXRHVEsuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3Bw
OgorICAgICAgICAoX1dlYktpdFNldHRpbmdzUHJpdmF0ZTo6X1dlYktpdFNldHRpbmdzUHJpdmF0
ZSk6CisgICAgICAgICh3ZWJLaXRTZXR0aW5nc1NldFByb3BlcnR5KToKKyAgICAgICAgKHdlYktp
dFNldHRpbmdzR2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2NsYXNzX2lu
aXQpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3Jl
cXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRf
bWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNldHRpbmdzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dDoKKwogMjAyMC0wNC0xNyAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVwZGF0ZSBm
b3IgR2RrS2V5bWFwIEFQSSBjaGFuZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDk5ZjdmZDBiZmFmZWJkNWJlYTg5M2Nl
MzEwNGU3NWYxOTZlZTdhOTUuLjBhMWIzYmE1NDM1NTI1YTYwOGE2NTkxNTQ2OGJjYTgwY2I3MGE5
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk1lZGlhU291cmNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlUmVnaXN0cnku
aCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIlNvdXJjZUJ1ZmZlckxpc3QuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRl
LmgiCkBAIC02NzcsNyArNjc4LDExIEBAIEV4Y2VwdGlvbk9yPFJlZjxTb3VyY2VCdWZmZXI+PiBN
ZWRpYVNvdXJjZTo6YWRkU291cmNlQnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSkKIAogICAgIC8v
IDIuIElmIHR5cGUgY29udGFpbnMgYSBNSU1FIHR5cGUgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIC4u
LiwgdGhlbiB0aHJvdyBhCiAgICAgLy8gTm90U3VwcG9ydGVkRXJyb3IgZXhjZXB0aW9uIGFuZCBh
Ym9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIWlzVHlwZVN1cHBvcnRlZCh0eXBlKSkKKyAgICBW
ZWN0b3I8Q29udGVudFR5cGU+IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0OworICAgIGlmIChtX21lZGlhRWxlbWVudCkKKyAgICAgICAgbWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQuYXBwZW5kVmVjdG9yKG1fbWVkaWFFbGVtZW50LT5kb2N1
bWVudCgpLnNldHRpbmdzKCkubWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQoKSk7CisKKyAgICBpZiAoIWlzVHlwZVN1cHBvcnRlZCh0eXBlLCBXVEZNb3ZlKG1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KSkpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogCiAgICAgLy8gNC4gSWYgdGhlIHJlYWR5U3Rh
dGUgYXR0cmlidXRlIGlzIG5vdCBpbiB0aGUgIm9wZW4iIHN0YXRlIHRoZW4gdGhyb3cgYW4KQEAg
LTg2OSw3ICs4NzQsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6OnJlbW92ZVNv
dXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICByZXR1cm4geyB9OwogfQogCi1i
b29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0eXBlKQorYm9v
bCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBWZWN0b3I8Q29udGVudFR5cGU+IG1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgIGlmIChjb250ZXh0
LmlzRG9jdW1lbnQoKSkgeworICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3Vt
ZW50Pihjb250ZXh0KTsKKyAgICAgICAgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQuYXBwZW5kVmVjdG9yKGRvY3VtZW50LnNldHRpbmdzKCkubWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSk7CisgICAgfQorCisgICAgcmV0dXJuIGlzVHlw
ZVN1cHBvcnRlZCh0eXBlLCBXVEZNb3ZlKG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KSk7Cit9CisKK2Jvb2wgTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChjb25z
dCBTdHJpbmcmIHR5cGUsIFZlY3RvcjxDb250ZW50VHlwZT4mJiBjb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQpCiB7CiAgICAgLy8gU2VjdGlvbiAyLjIgaXNUeXBlU3VwcG9ydGVk
KCkgbWV0aG9kIHN0ZXBzLgogICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRp
YS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtTWVkaWFT
b3VyY2UtaXNUeXBlU3VwcG9ydGVkLWJvb2xlYW4tRE9NU3RyaW5nLXR5cGUKQEAgLTg5MSw2ICs5
MDcsOCBAQCBib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0
eXBlKQogICAgIE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBw
YXJhbWV0ZXJzLnR5cGUgPSBjb250ZW50VHlwZTsKICAgICBwYXJhbWV0ZXJzLmlzTWVkaWFTb3Vy
Y2UgPSB0cnVlOworICAgIHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0ID0gV1RGTW92ZShjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOwor
CiAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ZWQgPSBNZWRpYVBsYXllcjo6
c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpOwogCiAgICAgaWYgKGNvZGVjcy5pc0VtcHR5KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKaW5k
ZXggNzFkYzA2Y2Q4MDRkMTFhNjQyMjVkZjRkNjdjNTVlNTc0Y2MxZTAwMC4uZjIzZTNmMzM4M2E3
MDhjYWNlYjY3YTAxOTg2OTMzNGVmNWExNjRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1Ymxp
YzoKICAgICBTb3VyY2VCdWZmZXJMaXN0KiBhY3RpdmVTb3VyY2VCdWZmZXJzKCkgeyByZXR1cm4g
bV9hY3RpdmVTb3VyY2VCdWZmZXJzLmdldCgpOyB9CiAgICAgRXhjZXB0aW9uT3I8UmVmPFNvdXJj
ZUJ1ZmZlcj4+IGFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUpOwogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImKTsKLSAgICBzdGF0
aWMgYm9vbCBpc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAgICBzdGF0aWMg
Ym9vbCBpc1R5cGVTdXBwb3J0ZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmlu
ZyYgdHlwZSk7CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QgZmluYWw7CiAKQEAgLTEzMSw2ICsxMzEsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc3RvcCgpIGZpbmFsOwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdCBmaW5hbDsKICAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25z
dCBmaW5hbDsKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0
eXBlLCBWZWN0b3I8Q29udGVudFR5cGU+JiYgY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0KTsKIAogICAgIHZvaWQgc2V0UHJpdmF0ZUFuZE9wZW4oUmVmPE1lZGlhU291cmNlUHJp
dmF0ZT4mJikgZmluYWw7CiAgICAgdm9pZCBzZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmlkbAppbmRleCA5Njk4OTY5ZWUxMzg2OTA0ZTRiNWJlN2M2YmEyZWRiYzJiNGUzNjllLi44
NDc5ZWVmOWM1YjIwMzNhNWM2Nzk5MjI0OTVhMGM2NWM0NTRmODJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbApAQCAtNjEsNyAr
NjEsNyBAQCBlbnVtIFJlYWR5U3RhdGUgewogICAgIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dm9pZCBlbmRPZlN0cmVhbShvcHRpb25hbCBFbmRPZlN0cmVhbUVycm9yIGVycm9yKTsKIAotICAg
IHN0YXRpYyBib29sZWFuIGlzVHlwZVN1cHBvcnRlZCAoRE9NU3RyaW5nIHR5cGUpOworICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBzdGF0aWMgYm9vbGVhbiBpc1R5cGVTdXBw
b3J0ZWQgKERPTVN0cmluZyB0eXBlKTsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBz
ZXRMaXZlU2Vla2FibGVSYW5nZShkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQpOwogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gdm9pZCBjbGVhckxpdmVTZWVrYWJsZVJhbmdlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCmluZGV4IDc5MjJiMzMzNWVhNzIwZWU1
NzEyYzQ0ZmVhNmUwMzgzNTUyZGMyMmEuLjNmZjlkMTk4MzFmYTkwODQzNTlhZjgzYTFkNTY4OWI2
Y2JjMDU3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3Bw
CkBAIC0yOTgsNiArMjk4LDM5IEBAIGJvb2wgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjppc0Nv
ZGVjU3VwcG9ydGVkKFN0cmluZyBjb2RlYywgYm9vbCBzaG91bGRDaGVja0ZvCiAgICAgcmV0dXJu
IHN1cHBvcnRlZDsKIH0KIAorTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIEdTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lcjo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50VHlw
ZSYgY29udGVudFR5cGUsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkgY29uc3QKK3sKKyAgICB1c2luZyBTdXBwb3J0c1R5cGUg
PSBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU7CisKKyAgICBjb25zdCBhdXRvJiBjb250
YWluZXJUeXBlID0gY29udGVudFR5cGUuY29udGFpbmVyVHlwZSgpOworICAgIGlmICghaXNDb250
YWluZXJUeXBlU3VwcG9ydGVkKGNvbnRhaW5lclR5cGUpKQorICAgICAgICByZXR1cm4gU3VwcG9y
dHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKKworICAgIGNvbnN0IGF1dG8mIGNvZGVjcyA9IGNvbnRl
bnRUeXBlLmNvZGVjcygpOworCisgICAgLy8gU3BlYyBzYXlzIHdlIHNob3VsZCBub3QgcmV0dXJu
ICJwcm9iYWJseSIgaWYgdGhlIGNvZGVjcyBzdHJpbmcgaXMgZW1wdHkuCisgICAgaWYgKGNvZGVj
cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBTdXBwb3J0c1R5cGU6Ok1heUJlU3VwcG9ydGVk
OworCisgICAgZm9yIChjb25zdCBhdXRvJiBjb2RlYyA6IGNvZGVjcykgeworICAgICAgICBib29s
IHJlcXVpcmVzSGFyZHdhcmVTdXBwb3J0ID0gY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0CisgICAgICAgICAgICAuZmluZE1hdGNoaW5nKFtjb250YWluZXJUeXBlLCBjb2RlY10o
YXV0byYgaGFyZHdhcmVDb250ZW50VHlwZSkgLT4gYm9vbCB7CisgICAgICAgICAgICBhdXRvIGhh
cmR3YXJlQ29udGFpbmVyID0gaGFyZHdhcmVDb250ZW50VHlwZS5jb250YWluZXJUeXBlKCk7Cisg
ICAgICAgICAgICBpZiAoIWhhcmR3YXJlQ29udGFpbmVyLmlzRW1wdHkoKQorICAgICAgICAgICAg
ICAgICYmIGZubWF0Y2goaGFyZHdhcmVDb250YWluZXIudXRmOCgpLmRhdGEoKSwgY29udGFpbmVy
VHlwZS51dGY4KCkuZGF0YSgpLCAwKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICBhdXRvIGhhcmR3YXJlQ29kZWNzID0gaGFyZHdhcmVDb250ZW50VHlwZS5jb2Rl
Y3MoKTsKKyAgICAgICAgICAgIHJldHVybiBoYXJkd2FyZUNvZGVjcy5pc0VtcHR5KCkKKyAgICAg
ICAgICAgICAgICB8fCBoYXJkd2FyZUNvZGVjcy5maW5kTWF0Y2hpbmcoW2NvZGVjXShhdXRvJiBo
YXJkd2FyZUNvZGVjKSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFmbm1h
dGNoKGhhcmR3YXJlQ29kZWMudXRmOCgpLmRhdGEoKSwgY29kZWMudXRmOCgpLmRhdGEoKSwgMCk7
CisgICAgICAgICAgICB9KSAhPSBub3RGb3VuZDsKKyAgICAgICAgfSkgIT0gbm90Rm91bmQ7Cisg
ICAgICAgIGlmICghaXNDb2RlY1N1cHBvcnRlZChjb2RlYywgcmVxdWlyZXNIYXJkd2FyZVN1cHBv
cnQpKQorICAgICAgICAgICAgcmV0dXJuIFN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Cisg
ICAgfQorICAgIHJldHVybiBTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkOworfQorCiBib29sIEdT
dHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6YXJlQWxsQ29kZWNzU3VwcG9ydGVkKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBjb2RlY3MsIGJvb2wgc2hvdWxkQ2hlY2tGb3JIYXJkd2FyZVVzZSkgY29uc3QK
IHsKICAgICBmb3IgKFN0cmluZyBjb2RlYyA6IGNvZGVjcykgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lclJlZ2lzdHJ5U2Nhbm5lci5oCmluZGV4IDJkZGFlYzY5MDQ1Nzk5YTZhNThhYjQ5ZmFlM2Q3
ZGE4MzZlMTg0NjguLmMyZGUxZmY2MTQwMTliNzg2OGNlZjhlZDlkYzc2NTFiOWNjMzNhNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJSZWdpc3RyeVNjYW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmgKQEAgLTIzLDYgKzIzLDcg
QEAKIAogI2luY2x1ZGUgIk1lZGlhQ29uZmlndXJhdGlvbi5oIgogCisjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNTEsNiArNTIsNyBAQCBwdWJs
aWM6CiAgICAgUmVnaXN0cnlMb29rdXBSZXN1bHQgaXNEZWNvZGluZ1N1cHBvcnRlZChNZWRpYUNv
bmZpZ3VyYXRpb24mKSBjb25zdDsKIAogICAgIGJvb2wgaXNDb2RlY1N1cHBvcnRlZChTdHJpbmcg
Y29kZWMsIGJvb2wgdXNpbmdIYXJkd2FyZSA9IGZhbHNlKSBjb25zdDsKKyAgICBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGUgaXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50
VHlwZSYsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydCkgY29uc3Q7CiAgICAgYm9vbCBhcmVBbGxDb2RlY3NTdXBwb3J0ZWQoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGNvZGVjcywgYm9vbCBzaG91bGRDaGVja0ZvckhhcmR3YXJlVXNl
ID0gZmFsc2UpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDYxNjJhZGFlNmJmZjUxNjcxZTNiZTUzMjIy
N2U3ZGU1Nzk5OWZkZjAuLjViZGZhYWExMjMxNzU5ZGJmOTEwNzA0YzlhNWQ0ODgyNGNkM2YzMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBA
IC0yOTA5LDEzICsyOTA5LDggQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUUKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKIAogICAgIEdTVF9ERUJVRygiQ2hlY2tpbmcgbWltZS10eXBlIFwiJXNcIiIs
IHBhcmFtZXRlcnMudHlwZS5yYXcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBhdXRvIGNvbnRhaW5l
clR5cGUgPSBwYXJhbWV0ZXJzLnR5cGUuY29udGFpbmVyVHlwZSgpOwogICAgIGF1dG8mIGdzdFJl
Z2lzdHJ5U2Nhbm5lciA9IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xldG9uKCk7Ci0g
ICAgaWYgKGdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvbnRhaW5lclR5cGVTdXBwb3J0ZWQoY29udGFp
bmVyVHlwZSkpIHsKLSAgICAgICAgLy8gU3BlYyBzYXlzIHdlIHNob3VsZCBub3QgcmV0dXJuICJw
cm9iYWJseSIgaWYgdGhlIGNvZGVjcyBzdHJpbmcgaXMgZW1wdHkuCi0gICAgICAgIFZlY3RvcjxT
dHJpbmc+IGNvZGVjcyA9IHBhcmFtZXRlcnMudHlwZS5jb2RlY3MoKTsKLSAgICAgICAgcmVzdWx0
ID0gY29kZWNzLmlzRW1wdHkoKSA/IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6Ok1heUJlU3Vw
cG9ydGVkIDogKGdzdFJlZ2lzdHJ5U2Nhbm5lci5hcmVBbGxDb2RlY3NTdXBwb3J0ZWQoY29kZWNz
KSA/IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQpOwotICAgIH0KKyAgICByZXN1bHQgPSBnc3RS
ZWdpc3RyeVNjYW5uZXIuaXNDb250ZW50VHlwZVN1cHBvcnRlZChwYXJhbWV0ZXJzLnR5cGUsIHBh
cmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KTsKIAogICAgIGF1
dG8gZmluYWxSZXN1bHQgPSBleHRlbmRlZFN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzLCByZXN1bHQp
OwogICAgIEdTVF9ERUJVRygiU3VwcG9ydGVkOiAlcyIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3Ry
aW5nKGZpbmFsUmVzdWx0KS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAppbmRleCAxYjcwMGJiYzA4
NGM3MTI5ZGRiMDE0N2I0NDZkOTFlNDY4ZWM5MmYwLi5kOGIzYzkyMGQ1OTY4ZDA4NTQyNTY5MzZi
NGUyNGIyYTJhMDFiZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCkBAIC03MzksMTEgKzczOSw3IEBAIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0
c1R5cGUoY29uc3QgTWVkCiAKICAgICBHU1RfREVCVUcoIkNoZWNraW5nIG1pbWUtdHlwZSBcIiVz
XCIiLCBwYXJhbWV0ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgYXV0byYgZ3N0
UmVnaXN0cnlTY2FubmVyID0gR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyTVNFOjpzaW5nbGV0b24o
KTsKLSAgICAvLyBTcGVjIHNheXMgd2Ugc2hvdWxkIG5vdCByZXR1cm4gInByb2JhYmx5IiBpZiB0
aGUgY29kZWNzIHN0cmluZyBpcyBlbXB0eS4KLSAgICBpZiAoZ3N0UmVnaXN0cnlTY2FubmVyLmlz
Q29udGFpbmVyVHlwZVN1cHBvcnRlZChjb250YWluZXJUeXBlKSkgewotICAgICAgICBWZWN0b3I8
U3RyaW5nPiBjb2RlY3MgPSBwYXJhbWV0ZXJzLnR5cGUuY29kZWNzKCk7Ci0gICAgICAgIHJlc3Vs
dCA9IGNvZGVjcy5pc0VtcHR5KCkgPyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1
cHBvcnRlZCA6IChnc3RSZWdpc3RyeVNjYW5uZXIuYXJlQWxsQ29kZWNzU3VwcG9ydGVkKGNvZGVj
cykgPyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCA6IE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkKTsKLSAgICB9CisgICAgcmVzdWx0ID0gZ3N0
UmVnaXN0cnlTY2FubmVyLmlzQ29udGVudFR5cGVTdXBwb3J0ZWQocGFyYW1ldGVycy50eXBlLCBw
YXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKICAgICBh
dXRvIGZpbmFsUmVzdWx0ID0gZXh0ZW5kZWRTdXBwb3J0c1R5cGUocGFyYW1ldGVycywgcmVzdWx0
KTsKICAgICBHU1RfREVCVUcoIlN1cHBvcnRlZDogJXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0
cmluZyhmaW5hbFJlc3VsdCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggODVkYTEyODk3Mzc4
MTJhMjhjNmZjMDY5Y2RmMzZiZmIxOWEzNDZiZi4uYWRjOTM3NTk4Y2M2NTNlYzhmNTYwZDA3Zjdi
MTZkNDc1NjY1NjI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAtNjYsNiArNjYsNyBAQCBzdHJ1Y3QgX1dlYktpdFNl
dHRpbmdzUHJpdmF0ZSB7CiAgICAgICAgIGZhbnRhc3lGb250RmFtaWx5ID0gcHJlZmVyZW5jZXMt
PmZhbnRhc3lGb250RmFtaWx5KCkudXRmOCgpOwogICAgICAgICBwaWN0b2dyYXBoRm9udEZhbWls
eSA9IHByZWZlcmVuY2VzLT5waWN0b2dyYXBoRm9udEZhbWlseSgpLnV0ZjgoKTsKICAgICAgICAg
ZGVmYXVsdENoYXJzZXQgPSBwcmVmZXJlbmNlcy0+ZGVmYXVsdFRleHRFbmNvZGluZ05hbWUoKS51
dGY4KCk7CisgICAgICAgIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
ID0gcHJlZmVyZW5jZXMtPm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
KCkudXRmOCgpOwogICAgIH0KIAogICAgIFJlZlB0cjxXZWJQcmVmZXJlbmNlcz4gcHJlZmVyZW5j
ZXM7CkBAIC03OCw2ICs3OSw3IEBAIHN0cnVjdCBfV2ViS2l0U2V0dGluZ3NQcml2YXRlIHsKICAg
ICBDU3RyaW5nIHBpY3RvZ3JhcGhGb250RmFtaWx5OwogICAgIENTdHJpbmcgZGVmYXVsdENoYXJz
ZXQ7CiAgICAgQ1N0cmluZyB1c2VyQWdlbnQ7CisgICAgQ1N0cmluZyBtZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKICAgICBib29sIGFsbG93TW9kYWxEaWFsb2dzIHsg
ZmFsc2UgfTsKICAgICBib29sIHpvb21UZXh0T25seSB7IGZhbHNlIH07CiAgICAgZG91YmxlIHNj
cmVlbkRwaSB7IDk2IH07CkBAIC0xNzAsNiArMTcyLDcgQEAgZW51bSB7CiAjZW5kaWYKICAgICBQ
Uk9QX0VOQUJMRV9KQVZBU0NSSVBUX01BUktVUCwKICAgICBQUk9QX0VOQUJMRV9NRURJQSwKKyAg
ICBQUk9QX01FRElBX0NPTlRFTlRfVFlQRVNfUkVRVUlSSU5HX0hBUkRXQVJFX1NVUFBPUlQsCiB9
OwogCiBzdGF0aWMgdm9pZCB3ZWJLaXRTZXR0aW5nc0Rpc3Bvc2UoR09iamVjdCogb2JqZWN0KQpA
QCAtNDAwLDYgKzQwMyw5IEBAIHN0YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzU2V0UHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIGNvbnN0IEdWYWx1CiAgICAgY2FzZSBQUk9Q
X0VOQUJMRV9NRURJQToKICAgICAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWEo
c2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpKTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQUk9QX01FRElBX0NPTlRFTlRfVFlQRVNfUkVRVUlSSU5HX0hBUkRXQVJFX1NVUFBP
UlQ6CisgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1
aXJpbmdfaGFyZHdhcmVfc3VwcG9ydChzZXR0aW5ncywgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVl
KSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5f
SU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICAgICAg
YnJlYWs7CkBAIC01OTEsNiArNTk3LDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NHZXRQ
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKICAgICBj
YXNlIFBST1BfRU5BQkxFX01FRElBOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVl
LCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYShzZXR0aW5ncykpOwogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBST1BfTUVESUFfQ09OVEVOVF9UWVBFU19SRVFVSVJJTkdfSEFSRFdB
UkVfU1VQUE9SVDoKKyAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJraXRfc2V0
dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQo
c2V0dGluZ3MpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpF
Q1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMpOwog
ICAgICAgICBicmVhazsKQEAgLTE1MzgsNiArMTU0NywyMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
c2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgICAg
ICAgIFRSVUUsCiAgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKSk7CiAK
KyAgICAvKioKKyAgICAgKiBXZWJLaXRTZXR0aW5nczptZWRpYS1jb250ZW50LXR5cGVzLXJlcXVp
cmluZy1oYXJkd2FyZS1zdXBwb3J0OgorICAgICAqCisgICAgICogTGlzdCBvZiBtZWRpYSBjb250
ZW50IHR5cGVzIHJlcXVpcmluZyBoYXJkd2FyZSBzdXBwb3J0LCBzcGxpdCBieSBzZW1pY29sb25z
ICg6KS4KKyAgICAgKiBGb3IgZXhhbXBsZTogJ3ZpZGVvL3dlYm07IGNvZGVjcz0idnAqIjp2aWRl
by9tcDQ7IGNvZGVjcz0iYXZjKiI6dmlkZW8vKjsgY29kZWNzPSJhdjEqIicuCisgICAgICoKKyAg
ICAgKiBTaW5jZTogMi4zMAorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoZ09iamVjdENsYXNzLAorICAgICAgICBQUk9QX01FRElBX0NPTlRFTlRfVFlQRVNfUkVR
VUlSSU5HX0hBUkRXQVJFX1NVUFBPUlQsCisgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoIm1l
ZGlhLWNvbnRlbnQtdHlwZXMtcmVxdWlyaW5nLWhhcmR3YXJlLXN1cHBvcnQiLAorICAgICAgICAg
ICAgXygiTWVkaWEgY29udGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydCIpLAor
ICAgICAgICAgICAgXygiTGlzdCBvZiBtZWRpYSBjb250ZW50IHR5cGVzIHJlcXVpcmluZyBoYXJk
d2FyZSBzdXBwb3J0LiIpLAorICAgICAgICAgICAgbnVsbHB0ciwgLy8gQSBudWxsIHN0cmluZyBm
b3JjZXMgdGhlIGRlZmF1bHQgdmFsdWUuCisgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQ
YXJhbUZsYWdzKSk7CiB9CiAKIFdlYlByZWZlcmVuY2VzKiB3ZWJraXRTZXR0aW5nc0dldFByZWZl
cmVuY2VzKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykKQEAgLTM4MDIsMyArMzgyNiw0MyBAQCB2
b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhKFdlYktpdFNldHRpbmdzKiBzZXR0
aW5ncywgZ2Jvb2xlYW4gZW5hYmxlZAogICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRNZWRpYUVu
YWJsZWQoZW5hYmxlZCk7CiAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwg
ImVuYWJsZS1tZWRpYSIpOwogfQorCisvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFf
Y29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydDoKKyAqIEBzZXR0aW5nczog
YSAjV2ViS2l0U2V0dGluZ3MKKyAqCisgKiBHZXRzIHRoZSAjV2ViS2l0U2V0dGluZ3M6bWVkaWEt
Y29udGVudC10eXBlcy1yZXF1aXJpbmctaGFyZHdhcmUtc3VwcG9ydCBwcm9wZXJ0eS4KKyAqCisg
KiBSZXR1cm5zOiBNZWRpYSBjb250ZW50IHR5cGVzIHJlcXVpcmluZyBoYXJkd2FyZSBzdXBwb3J0
LCBvciAlTlVMTC4KKyAqCisgKiBTaW5jZTogMi4zMAorICovCitjb25zdCBnY2hhciogd2Via2l0
X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBw
b3J0KFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpLCAwKTsKKworICAgIHJldHVybiBzZXR0aW5n
cy0+cHJpdi0+bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQuZGF0YSgp
OworfQorCisvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19y
ZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydDoKKyAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGlu
Z3MKKyAqIEBjb250ZW50X3R5cGVzOiAoYWxsb3ctbm9uZSkgbGlzdCBvZiBtZWRpYSBjb250ZW50
IHR5cGVzIHJlcXVpcmluZyBoYXJkd2FyZSBzdXBwb3J0IHNwbGl0IGJ5IHNlbWljb2xvbnMgKDop
IG9yICVOVUxMIHRvIHVzZSB0aGUgZGVmYXVsdCB2YWx1ZS4KKyAqCisgKiBTZXQgdGhlICNXZWJL
aXRTZXR0aW5nczptZWRpYS1jb250ZW50LXR5cGVzLXJlcXVpcmluZy1oYXJkd2FyZS1zdXBwb3J0
IHByb3BlcnR5LgorICoKKyAqIFNpbmNlOiAyLjMwCisgKi8KK3ZvaWQgd2Via2l0X3NldHRpbmdz
X3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KFdlYktp
dFNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QgZ2NoYXIqIG1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1NF
VFRJTkdTKHNldHRpbmdzKSk7CisKKyAgICBXZWJLaXRTZXR0aW5nc1ByaXZhdGUqIHByaXYgPSBz
ZXR0aW5ncy0+cHJpdjsKKyAgICBpZiAoIWdfc3RyY21wMChwcml2LT5tZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5kYXRhKCksIG1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIG1lZGlh
Q29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9t
VVRGOChtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CisgICAgcHJp
di0+cHJlZmVyZW5jZXMtPnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0KG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0U3RyaW5nKTsKKyAg
ICBwcml2LT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IG1lZGlh
Q29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0U3RyaW5nLnV0ZjgoKTsKKyAgICBn
X29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAibWVkaWEtY29udGVudC10eXBlcy1y
ZXF1aXJpbmctaGFyZHdhcmUtc3VwcG9ydCIpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oCmluZGV4IDAxY2I0ZjU2ODY4ODlhNmMyMzhm
NTJkMjU2MWY1MDFhYjYzYjVhZDEuLjYzYWE4YmIzNzA0YzFjODIyNTg5MDk0MTg1MGZhYzZhYTlk
OWYyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
U2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNl
dHRpbmdzLmgKQEAgLTUwNiw2ICs1MDYsMTMgQEAgV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfc2V0
dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0U2V0dGluZ3MgKnNldHRpbmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsK
IAorV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2Nv
bnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQgKFdlYktpdFNldHRpbmdzICpz
ZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9j
b250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0IChXZWJLaXRTZXR0aW5ncyAq
c2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpjb250ZW50X3R5cGVzKTsKKwogR19F
TkRfREVDTFMKIAogI2VuZGlmIC8qIFdlYktpdFNldHRpbmdzX2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9u
cy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00
LjAtc2VjdGlvbnMudHh0CmluZGV4IDFiYzQyNzBjOWY0MGU4ZmI4YzRmZTY2Y2U2ZTNiYjUwYjNm
Zjk3MTcuLjA4MGU5ZjM0NjczZTM3ZDIxMmQ1ODA3NDUzNWViZTczZGIxZWE3YjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1z
ZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtNTQ4LDYgKzU0OCw4IEBAIHdlYmtpdF9zZXR0
aW5nc19mb250X3NpemVfdG9fcG9pbnRzCiB3ZWJraXRfc2V0dGluZ3NfZm9udF9zaXplX3RvX3Bp
eGVscwogd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWEKIHdlYmtpdF9zZXR0aW5nc19z
ZXRfZW5hYmxlX21lZGlhCit3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNf
cmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQKK3dlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29u
dGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydAogCiA8U1VCU0VDVElPTiBTdGFu
ZGFyZD4KIFdlYktpdFNldHRpbmdzQ2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAppbmRleCBhYjg0ZDFm
OGY1ZDBkZjQzMDgyZmE5ZDE3MmY2NGQ4NDY3NjJhYzY0Li44NjkyY2M1NTE5NGQ5OWUyZjhiMjg3
MjhjZTI4NDhiZTM2N2IxYzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCkBAIC0xNjMsNSArMTYzLDEw
IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjI4LnhtbCI+PHhpOmZh
bGxiYWNrIC8+PC94aTppbmNsdWRlPgogICA8L2luZGV4PgogCisgIDxpbmRleCBpZD0iYXBpLWlu
ZGV4LTItMzAiIHJvbGU9IjIuMzAiPgorICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBp
biAyLjMwPC90aXRsZT4KKyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMzAu
eG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CisgIDwvaW5kZXg+CisKICAgPHhpOmlu
Y2x1ZGUgaHJlZj0ieG1sL2Fubm90YXRpb24tZ2xvc3NhcnkueG1sIj48eGk6ZmFsbGJhY2sgLz48
L3hpOmluY2x1ZGU+CiA8L2Jvb2s+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdFNldHRpbmdzLmgKaW5kZXggOTgzMDA0OTQ1NDg5YzM2NzVmMDk1NDk2ZDVmNzNl
NDVlNjljNTJlZS4uZjU0OTc3OWM3ZDBkYzdjYzEzY2YzMTU5ZWFiNTk1NTQ0MWVmZGU3NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaApA
QCAtNDYzLDYgKzQ2MywxMyBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9zZXR0aW5nc19zZXRf
ZW5hYmxlX21lZGlhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5n
cyAqc2V0dGluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOwogCitXRUJLSVRf
QVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBl
c19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydCAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlw
ZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmNvbnRlbnRfdHlwZXMpOworCiBHX0VORF9ERUNMUwog
CiAjZW5kaWYgLyogV2ViS2l0U2V0dGluZ3NfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CmluZGV4IDBj
MmRjNjUxNWM2NmI3OTU3N2E3ZDU4MDdjYTRhMGZiYzVkMDc1MzkuLmNiNjYwZTAwNWM0MjI3Nzcw
YzExZWQ4YWI3MzNhYTkxMDY4YmMyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKQEAgLTU0Miw2ICs1
NDIsOCBAQCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2FsbG93X3RvcF9uYXZpZ2F0aW9uX3RvX2RhdGFf
dXJscwogd2Via2l0X3NldHRpbmdzX3NldF9hbGxvd190b3BfbmF2aWdhdGlvbl90b19kYXRhX3Vy
bHMKIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX21lZGlhCiB3ZWJraXRfc2V0dGluZ3Nfc2V0
X2VuYWJsZV9tZWRpYQord2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3Jl
cXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0Cit3ZWJraXRfc2V0dGluZ3Nfc2V0X21lZGlhX2NvbnRl
bnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQKIAogPFNVQlNFQ1RJT04gU3RhbmRh
cmQ+CiBXZWJLaXRTZXR0aW5nc0NsYXNzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYTE1NjA4MDc5ZGQxMGUxYzlmNTQ3ZTU5Y2JjMThkMWEzN2My
YTRlMy4uNzRkNjdkY2M2YmFkOGIyZWI0M2E2MzM5Mjk5Y2EzZmY3NmE4ZjY2YiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDIwLTA1LTE5ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQgaG9ub3IgdGhl
IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgc2V0dGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExOTUwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhlcmNpc2Ug
dGhlIG5ldyBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCBzZXR0aW5n
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRT
ZXR0aW5ncy5jcHA6CisgICAgICAgICh0ZXN0V2ViS2l0U2V0dGluZ3MpOgorCiAyMDIwLTA0LTE3
ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gVXBkYXRlIGZvciBHZGtLZXltYXAgQVBJIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAK
aW5kZXggMWI0Njk2Nzk5ZDY2ZTFhNjRjNGQ5NGViZGEyMGU2N2M4ZjI5NjVlNS4uNTY2ZWUxNjdk
N2UzMjk1YzEzNmNiMTY3ODM5ZjlhYjE4YTMyNDRiNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAK
QEAgLTM0MSw2ICszNDEsMTMgQEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdFNldHRpbmdzKFRlc3Qq
LCBnY29uc3Rwb2ludGVyKQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhKHNl
dHRpbmdzLCBGQUxTRSk7CiAgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3NldHRpbmdzX2dldF9l
bmFibGVfbWVkaWEoc2V0dGluZ3MpKTsKIAorICAgIC8vIERlZmF1bHQgbWVkaWEgY29udGVudCB0
eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydCBpcyAiIi4KKyAgICBnX2Fzc2VydF9jbXBz
dHIoIiIsID09LCB3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWly
aW5nX2hhcmR3YXJlX3N1cHBvcnQoc2V0dGluZ3MpKTsKKyAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0
X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQoc2V0dGluZ3Ms
ICJ2aWRlby8qOyBjb2RlY3M9XCIqXCIiKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIoInZpZGVvLyo7
IGNvZGVjcz1cIipcIiIsID09LCB3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlw
ZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQoc2V0dGluZ3MpKTsKKyAgICB3ZWJraXRfc2V0
dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQo
c2V0dGluZ3MsIG51bGxwdHIpOworICAgIGdfYXNzZXJ0X2NtcHN0cigiIiwgPT0sIHdlYmtpdF9z
ZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9y
dChzZXR0aW5ncykpOworCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIC8vIE9uZGVtYW5kIGlzIHRo
ZSBkZWZhdWx0IGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBwb2xpY3kuCiAgICAgZ19hc3NlcnRfY21w
dWludCh3ZWJraXRfc2V0dGluZ3NfZ2V0X2hhcmR3YXJlX2FjY2VsZXJhdGlvbl9wb2xpY3koc2V0
dGluZ3MpLCA9PSwgV0VCS0lUX0hBUkRXQVJFX0FDQ0VMRVJBVElPTl9QT0xJQ1lfT05fREVNQU5E
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399833</attachid>
            <date>2020-05-20 06:32:49 -0700</date>
            <delta_ts>2020-05-27 11:22:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211950-20200520133248.patch</filename>
            <type>text/plain</type>
            <size>26049</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI1NTgzYTE2OWU0Zjhk
MGQ0NWViMTkzOTkxMjAxYzdlNzUyMGIzOS4uNzBlODUxNzI4NzY5NjA5ZTI1NmRhYWEzOTQxYzhk
MjNmYmE4MmIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA1LTE5ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQgaG9ub3IgdGhlIG1lZGlhIGNvbnRlbnQgdHlw
ZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgc2V0dGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExOTUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSB0aGUgbmVlZGVkIGluZm9ybWF0
aW9uIGFib3V0IG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQK
KyAgICAgICAgd2hlbiBhc2tpbmcgdGhlIE1lZGlhUGxheWVyIGFib3V0IHdoYXQgdHlwZXMgYXJl
IHN1cHBvcnRlZC4gVGhpcyB3YXMgYWxyZWFkeSBiZWluZyBkb25lCisgICAgICAgIGZyb20gSFRN
TE1lZGlhRWxlbWVudCBmb3IgcGxheWVyIHNlbGVjdGlvbiwgYnV0IG5vdCBpbiBNZWRpYVNvdXJj
ZSBub3IgaW4KKyAgICAgICAgTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcigpIHdoZW4gdGhl
IHdlYnBhZ2UgdXNlZCB0aGUgTVNFIEFQSSB0byBjaGVjayB0eXBlIHN1cHBvcnQuCisgICAgICAg
IEluIG9yZGVyIHRvIGFzayBmb3IgdGhlIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0IHNldHRpbmcgd2UgbmVlZCBhCisgICAgICAgIHJlZmVyZW5jZSB0byB0aGUgY3Vy
cmVudCBEb2N1bWVudCBpbiBhbGwgdGhlIHBsYWNlcyB3aGVyZSB3ZSBuZWVkIHRvIGNoZWNrIHR5
cGUgc3VwcG9ydC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcik6IFBy
b3ZpZGUgaGFyZHdhcmUgY29udGVudCB0eXBlcyBleHRyYSBpbmZvLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZCk6IEdldCBoYXJkd2FyZSBjb250ZW50IHR5
cGVzIGV4dHJhIGluZm8gZnJvbQorICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGFuZCBw
cm92aWRlIGl0IHRvIGEgbmV3IHJlZmFjdG9yZWQgcHJpdmF0ZSB2ZXJzaW9uIG9mCisgICAgICAg
IGlzVHlwZVN1cHBvcnRlZCgpIHdoaWNoIGNhbiBhbHNvIGJlIHJldXNlZCBmcm9tIGFkZFNvdXJj
ZUJ1ZmZlcigpLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaDog
Q2hhbmdlZCBpc1R5cGVTdXBwb3J0ZWQoKSBwcm90b3R5cGUgdG8gdGFrZQorICAgICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IGFuZCBhZGRlZCBhIG5ldyBvdmVybG9hZGVkIHZlcnNpb24gb2Yg
dGhlIG1ldGhvZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlk
bDogaXNUeXBlU3VwcG9ydGVkKCkgbm93IHByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvCisgICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuIEl0J3MgdGhlIG9ubHkgd2F5IHRvIGFjY2VzcyB0aGUg
cmVxdWlyZWQgZG9jdW1lbnQgc2V0dGluZ3MgZnJvbSBhCisgICAgICAgIHN0YXRpYyBtZXRob2Qu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5
U2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6
OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQgY29uc3QpOiBGYWN0b3IgQ29udGVudFR5cGUKKyAgICAg
ICAgZGlzY3JpbWluYXRpb24gbG9naWMgY29tbW9uIHRvIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lciBhbmQKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIu
aDogQWRkZWQgbmV3IG1ldGhvZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3VwcG9ydHNUeXBlKTogUHJvdmlkZSBoYXJkd2Fy
ZSBjb250ZW50IHR5cGVzIGV4dHJhCisgICAgICAgIGluZm8gd2hlbiBhc2tpbmcgZm9yIHR5cGUg
c3VwcG9ydC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0U6OnN1cHBvcnRzVHlwZSk6IERpdHRvLgorCiAyMDIwLTA0
LTE3ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gVXBkYXRlIGZvciBHZGtLZXltYXAgQVBJIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGE3MjBj
OTI3MDVlNGY1OTI5Y2JlM2RhN2FlMDEzZWRjMzM3MzQ1Yi4uMDlhZTE0ZjM4NjUxMTRmMWZmMDY5
MWNjNzliOGI2MDBhYmNmNzgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wNS0x
OSAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtHU3RyZWFtZXJdW0dUS11bV1BFXSBFeHBvc2UgYW5kIGhvbm9yIHRoZSBtZWRpYSBjb250
ZW50IHR5cGVzIHJlcXVpcmluZyBoYXJkd2FyZSBzdXBwb3J0IHNldHRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBtZWRpYUNvbnRlbnRU
eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCBhcyBhIHNldHRpbmcgb24gV1BFIGFuZCBXZWJL
aXRHVEsuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3Bw
OgorICAgICAgICAoX1dlYktpdFNldHRpbmdzUHJpdmF0ZTo6X1dlYktpdFNldHRpbmdzUHJpdmF0
ZSk6CisgICAgICAgICh3ZWJLaXRTZXR0aW5nc1NldFByb3BlcnR5KToKKyAgICAgICAgKHdlYktp
dFNldHRpbmdzR2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2NsYXNzX2lu
aXQpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3Jl
cXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRf
bWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNldHRpbmdzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dDoKKwogMjAyMC0wNC0xNyAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVwZGF0ZSBm
b3IgR2RrS2V5bWFwIEFQSSBjaGFuZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDk5ZjdmZDBiZmFmZWJkNWJlYTg5M2Nl
MzEwNGU3NWYxOTZlZTdhOTUuLjBhMWIzYmE1NDM1NTI1YTYwOGE2NTkxNTQ2OGJjYTgwY2I3MGE5
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk1lZGlhU291cmNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlUmVnaXN0cnku
aCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIlNvdXJjZUJ1ZmZlckxpc3QuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRl
LmgiCkBAIC02NzcsNyArNjc4LDExIEBAIEV4Y2VwdGlvbk9yPFJlZjxTb3VyY2VCdWZmZXI+PiBN
ZWRpYVNvdXJjZTo6YWRkU291cmNlQnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSkKIAogICAgIC8v
IDIuIElmIHR5cGUgY29udGFpbnMgYSBNSU1FIHR5cGUgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIC4u
LiwgdGhlbiB0aHJvdyBhCiAgICAgLy8gTm90U3VwcG9ydGVkRXJyb3IgZXhjZXB0aW9uIGFuZCBh
Ym9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIWlzVHlwZVN1cHBvcnRlZCh0eXBlKSkKKyAgICBW
ZWN0b3I8Q29udGVudFR5cGU+IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0OworICAgIGlmIChtX21lZGlhRWxlbWVudCkKKyAgICAgICAgbWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQuYXBwZW5kVmVjdG9yKG1fbWVkaWFFbGVtZW50LT5kb2N1
bWVudCgpLnNldHRpbmdzKCkubWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQoKSk7CisKKyAgICBpZiAoIWlzVHlwZVN1cHBvcnRlZCh0eXBlLCBXVEZNb3ZlKG1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KSkpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogCiAgICAgLy8gNC4gSWYgdGhlIHJlYWR5U3Rh
dGUgYXR0cmlidXRlIGlzIG5vdCBpbiB0aGUgIm9wZW4iIHN0YXRlIHRoZW4gdGhyb3cgYW4KQEAg
LTg2OSw3ICs4NzQsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6OnJlbW92ZVNv
dXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICByZXR1cm4geyB9OwogfQogCi1i
b29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0eXBlKQorYm9v
bCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBWZWN0b3I8Q29udGVudFR5cGU+IG1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgIGlmIChjb250ZXh0
LmlzRG9jdW1lbnQoKSkgeworICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3Vt
ZW50Pihjb250ZXh0KTsKKyAgICAgICAgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQuYXBwZW5kVmVjdG9yKGRvY3VtZW50LnNldHRpbmdzKCkubWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSk7CisgICAgfQorCisgICAgcmV0dXJuIGlzVHlw
ZVN1cHBvcnRlZCh0eXBlLCBXVEZNb3ZlKG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KSk7Cit9CisKK2Jvb2wgTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChjb25z
dCBTdHJpbmcmIHR5cGUsIFZlY3RvcjxDb250ZW50VHlwZT4mJiBjb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQpCiB7CiAgICAgLy8gU2VjdGlvbiAyLjIgaXNUeXBlU3VwcG9ydGVk
KCkgbWV0aG9kIHN0ZXBzLgogICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRp
YS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtTWVkaWFT
b3VyY2UtaXNUeXBlU3VwcG9ydGVkLWJvb2xlYW4tRE9NU3RyaW5nLXR5cGUKQEAgLTg5MSw2ICs5
MDcsOCBAQCBib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0
eXBlKQogICAgIE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBw
YXJhbWV0ZXJzLnR5cGUgPSBjb250ZW50VHlwZTsKICAgICBwYXJhbWV0ZXJzLmlzTWVkaWFTb3Vy
Y2UgPSB0cnVlOworICAgIHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0ID0gV1RGTW92ZShjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOwor
CiAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ZWQgPSBNZWRpYVBsYXllcjo6
c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpOwogCiAgICAgaWYgKGNvZGVjcy5pc0VtcHR5KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKaW5k
ZXggNzFkYzA2Y2Q4MDRkMTFhNjQyMjVkZjRkNjdjNTVlNTc0Y2MxZTAwMC4uZjIzZTNmMzM4M2E3
MDhjYWNlYjY3YTAxOTg2OTMzNGVmNWExNjRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1Ymxp
YzoKICAgICBTb3VyY2VCdWZmZXJMaXN0KiBhY3RpdmVTb3VyY2VCdWZmZXJzKCkgeyByZXR1cm4g
bV9hY3RpdmVTb3VyY2VCdWZmZXJzLmdldCgpOyB9CiAgICAgRXhjZXB0aW9uT3I8UmVmPFNvdXJj
ZUJ1ZmZlcj4+IGFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUpOwogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImKTsKLSAgICBzdGF0
aWMgYm9vbCBpc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0eXBlKTsKKyAgICBzdGF0aWMg
Ym9vbCBpc1R5cGVTdXBwb3J0ZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmlu
ZyYgdHlwZSk7CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QgZmluYWw7CiAKQEAgLTEzMSw2ICsxMzEsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc3RvcCgpIGZpbmFsOwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdCBmaW5hbDsKICAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25z
dCBmaW5hbDsKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0
eXBlLCBWZWN0b3I8Q29udGVudFR5cGU+JiYgY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0KTsKIAogICAgIHZvaWQgc2V0UHJpdmF0ZUFuZE9wZW4oUmVmPE1lZGlhU291cmNlUHJp
dmF0ZT4mJikgZmluYWw7CiAgICAgdm9pZCBzZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmlkbAppbmRleCA5Njk4OTY5ZWUxMzg2OTA0ZTRiNWJlN2M2YmEyZWRiYzJiNGUzNjllLi44
NDc5ZWVmOWM1YjIwMzNhNWM2Nzk5MjI0OTVhMGM2NWM0NTRmODJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbApAQCAtNjEsNyAr
NjEsNyBAQCBlbnVtIFJlYWR5U3RhdGUgewogICAgIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dm9pZCBlbmRPZlN0cmVhbShvcHRpb25hbCBFbmRPZlN0cmVhbUVycm9yIGVycm9yKTsKIAotICAg
IHN0YXRpYyBib29sZWFuIGlzVHlwZVN1cHBvcnRlZCAoRE9NU3RyaW5nIHR5cGUpOworICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBzdGF0aWMgYm9vbGVhbiBpc1R5cGVTdXBw
b3J0ZWQgKERPTVN0cmluZyB0eXBlKTsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBz
ZXRMaXZlU2Vla2FibGVSYW5nZShkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQpOwogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gdm9pZCBjbGVhckxpdmVTZWVrYWJsZVJhbmdlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVn
aXN0cnlTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCmluZGV4IDc5MjJiMzMzNWVhNzIwZWU1
NzEyYzQ0ZmVhNmUwMzgzNTUyZGMyMmEuLjNmZjlkMTk4MzFmYTkwODQzNTlhZjgzYTFkNTY4OWI2
Y2JjMDU3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3Bw
CkBAIC0yOTgsNiArMjk4LDM5IEBAIGJvb2wgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjppc0Nv
ZGVjU3VwcG9ydGVkKFN0cmluZyBjb2RlYywgYm9vbCBzaG91bGRDaGVja0ZvCiAgICAgcmV0dXJu
IHN1cHBvcnRlZDsKIH0KIAorTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIEdTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lcjo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50VHlw
ZSYgY29udGVudFR5cGUsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkgY29uc3QKK3sKKyAgICB1c2luZyBTdXBwb3J0c1R5cGUg
PSBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU7CisKKyAgICBjb25zdCBhdXRvJiBjb250
YWluZXJUeXBlID0gY29udGVudFR5cGUuY29udGFpbmVyVHlwZSgpOworICAgIGlmICghaXNDb250
YWluZXJUeXBlU3VwcG9ydGVkKGNvbnRhaW5lclR5cGUpKQorICAgICAgICByZXR1cm4gU3VwcG9y
dHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKKworICAgIGNvbnN0IGF1dG8mIGNvZGVjcyA9IGNvbnRl
bnRUeXBlLmNvZGVjcygpOworCisgICAgLy8gU3BlYyBzYXlzIHdlIHNob3VsZCBub3QgcmV0dXJu
ICJwcm9iYWJseSIgaWYgdGhlIGNvZGVjcyBzdHJpbmcgaXMgZW1wdHkuCisgICAgaWYgKGNvZGVj
cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBTdXBwb3J0c1R5cGU6Ok1heUJlU3VwcG9ydGVk
OworCisgICAgZm9yIChjb25zdCBhdXRvJiBjb2RlYyA6IGNvZGVjcykgeworICAgICAgICBib29s
IHJlcXVpcmVzSGFyZHdhcmVTdXBwb3J0ID0gY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0CisgICAgICAgICAgICAuZmluZE1hdGNoaW5nKFtjb250YWluZXJUeXBlLCBjb2RlY10o
YXV0byYgaGFyZHdhcmVDb250ZW50VHlwZSkgLT4gYm9vbCB7CisgICAgICAgICAgICBhdXRvIGhh
cmR3YXJlQ29udGFpbmVyID0gaGFyZHdhcmVDb250ZW50VHlwZS5jb250YWluZXJUeXBlKCk7Cisg
ICAgICAgICAgICBpZiAoIWhhcmR3YXJlQ29udGFpbmVyLmlzRW1wdHkoKQorICAgICAgICAgICAg
ICAgICYmIGZubWF0Y2goaGFyZHdhcmVDb250YWluZXIudXRmOCgpLmRhdGEoKSwgY29udGFpbmVy
VHlwZS51dGY4KCkuZGF0YSgpLCAwKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICBhdXRvIGhhcmR3YXJlQ29kZWNzID0gaGFyZHdhcmVDb250ZW50VHlwZS5jb2Rl
Y3MoKTsKKyAgICAgICAgICAgIHJldHVybiBoYXJkd2FyZUNvZGVjcy5pc0VtcHR5KCkKKyAgICAg
ICAgICAgICAgICB8fCBoYXJkd2FyZUNvZGVjcy5maW5kTWF0Y2hpbmcoW2NvZGVjXShhdXRvJiBo
YXJkd2FyZUNvZGVjKSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFmbm1h
dGNoKGhhcmR3YXJlQ29kZWMudXRmOCgpLmRhdGEoKSwgY29kZWMudXRmOCgpLmRhdGEoKSwgMCk7
CisgICAgICAgICAgICB9KSAhPSBub3RGb3VuZDsKKyAgICAgICAgfSkgIT0gbm90Rm91bmQ7Cisg
ICAgICAgIGlmICghaXNDb2RlY1N1cHBvcnRlZChjb2RlYywgcmVxdWlyZXNIYXJkd2FyZVN1cHBv
cnQpKQorICAgICAgICAgICAgcmV0dXJuIFN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Cisg
ICAgfQorICAgIHJldHVybiBTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkOworfQorCiBib29sIEdT
dHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6YXJlQWxsQ29kZWNzU3VwcG9ydGVkKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBjb2RlY3MsIGJvb2wgc2hvdWxkQ2hlY2tGb3JIYXJkd2FyZVVzZSkgY29uc3QK
IHsKICAgICBmb3IgKFN0cmluZyBjb2RlYyA6IGNvZGVjcykgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nh
bm5lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJl
YW1lclJlZ2lzdHJ5U2Nhbm5lci5oCmluZGV4IDJkZGFlYzY5MDQ1Nzk5YTZhNThhYjQ5ZmFlM2Q3
ZGE4MzZlMTg0NjguLmMyZGUxZmY2MTQwMTliNzg2OGNlZjhlZDlkYzc2NTFiOWNjMzNhNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3Ry
ZWFtZXJSZWdpc3RyeVNjYW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmgKQEAgLTIzLDYgKzIzLDcg
QEAKIAogI2luY2x1ZGUgIk1lZGlhQ29uZmlndXJhdGlvbi5oIgogCisjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNTEsNiArNTIsNyBAQCBwdWJs
aWM6CiAgICAgUmVnaXN0cnlMb29rdXBSZXN1bHQgaXNEZWNvZGluZ1N1cHBvcnRlZChNZWRpYUNv
bmZpZ3VyYXRpb24mKSBjb25zdDsKIAogICAgIGJvb2wgaXNDb2RlY1N1cHBvcnRlZChTdHJpbmcg
Y29kZWMsIGJvb2wgdXNpbmdIYXJkd2FyZSA9IGZhbHNlKSBjb25zdDsKKyAgICBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGUgaXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50
VHlwZSYsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydCkgY29uc3Q7CiAgICAgYm9vbCBhcmVBbGxDb2RlY3NTdXBwb3J0ZWQoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGNvZGVjcywgYm9vbCBzaG91bGRDaGVja0ZvckhhcmR3YXJlVXNl
ID0gZmFsc2UpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDYxNjJhZGFlNmJmZjUxNjcxZTNiZTUzMjIy
N2U3ZGU1Nzk5OWZkZjAuLjViZGZhYWExMjMxNzU5ZGJmOTEwNzA0YzlhNWQ0ODgyNGNkM2YzMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBA
IC0yOTA5LDEzICsyOTA5LDggQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUUKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKIAogICAgIEdTVF9ERUJVRygiQ2hlY2tpbmcgbWltZS10eXBlIFwiJXNcIiIs
IHBhcmFtZXRlcnMudHlwZS5yYXcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBhdXRvIGNvbnRhaW5l
clR5cGUgPSBwYXJhbWV0ZXJzLnR5cGUuY29udGFpbmVyVHlwZSgpOwogICAgIGF1dG8mIGdzdFJl
Z2lzdHJ5U2Nhbm5lciA9IEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6c2luZ2xldG9uKCk7Ci0g
ICAgaWYgKGdzdFJlZ2lzdHJ5U2Nhbm5lci5pc0NvbnRhaW5lclR5cGVTdXBwb3J0ZWQoY29udGFp
bmVyVHlwZSkpIHsKLSAgICAgICAgLy8gU3BlYyBzYXlzIHdlIHNob3VsZCBub3QgcmV0dXJuICJw
cm9iYWJseSIgaWYgdGhlIGNvZGVjcyBzdHJpbmcgaXMgZW1wdHkuCi0gICAgICAgIFZlY3RvcjxT
dHJpbmc+IGNvZGVjcyA9IHBhcmFtZXRlcnMudHlwZS5jb2RlY3MoKTsKLSAgICAgICAgcmVzdWx0
ID0gY29kZWNzLmlzRW1wdHkoKSA/IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6Ok1heUJlU3Vw
cG9ydGVkIDogKGdzdFJlZ2lzdHJ5U2Nhbm5lci5hcmVBbGxDb2RlY3NTdXBwb3J0ZWQoY29kZWNz
KSA/IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQpOwotICAgIH0KKyAgICByZXN1bHQgPSBnc3RS
ZWdpc3RyeVNjYW5uZXIuaXNDb250ZW50VHlwZVN1cHBvcnRlZChwYXJhbWV0ZXJzLnR5cGUsIHBh
cmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KTsKIAogICAgIGF1
dG8gZmluYWxSZXN1bHQgPSBleHRlbmRlZFN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzLCByZXN1bHQp
OwogICAgIEdTVF9ERUJVRygiU3VwcG9ydGVkOiAlcyIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3Ry
aW5nKGZpbmFsUmVzdWx0KS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyTVNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAppbmRleCAxYjcwMGJiYzA4
NGM3MTI5ZGRiMDE0N2I0NDZkOTFlNDY4ZWM5MmYwLi5kOGIzYzkyMGQ1OTY4ZDA4NTQyNTY5MzZi
NGUyNGIyYTJhMDFiZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJNU0UuY3BwCkBAIC03MzksMTEgKzczOSw3IEBAIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpzdXBwb3J0
c1R5cGUoY29uc3QgTWVkCiAKICAgICBHU1RfREVCVUcoIkNoZWNraW5nIG1pbWUtdHlwZSBcIiVz
XCIiLCBwYXJhbWV0ZXJzLnR5cGUucmF3KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgYXV0byYgZ3N0
UmVnaXN0cnlTY2FubmVyID0gR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyTVNFOjpzaW5nbGV0b24o
KTsKLSAgICAvLyBTcGVjIHNheXMgd2Ugc2hvdWxkIG5vdCByZXR1cm4gInByb2JhYmx5IiBpZiB0
aGUgY29kZWNzIHN0cmluZyBpcyBlbXB0eS4KLSAgICBpZiAoZ3N0UmVnaXN0cnlTY2FubmVyLmlz
Q29udGFpbmVyVHlwZVN1cHBvcnRlZChjb250YWluZXJUeXBlKSkgewotICAgICAgICBWZWN0b3I8
U3RyaW5nPiBjb2RlY3MgPSBwYXJhbWV0ZXJzLnR5cGUuY29kZWNzKCk7Ci0gICAgICAgIHJlc3Vs
dCA9IGNvZGVjcy5pc0VtcHR5KCkgPyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1
cHBvcnRlZCA6IChnc3RSZWdpc3RyeVNjYW5uZXIuYXJlQWxsQ29kZWNzU3VwcG9ydGVkKGNvZGVj
cykgPyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCA6IE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkKTsKLSAgICB9CisgICAgcmVzdWx0ID0gZ3N0
UmVnaXN0cnlTY2FubmVyLmlzQ29udGVudFR5cGVTdXBwb3J0ZWQocGFyYW1ldGVycy50eXBlLCBw
YXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKICAgICBh
dXRvIGZpbmFsUmVzdWx0ID0gZXh0ZW5kZWRTdXBwb3J0c1R5cGUocGFyYW1ldGVycywgcmVzdWx0
KTsKICAgICBHU1RfREVCVUcoIlN1cHBvcnRlZDogJXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0
cmluZyhmaW5hbFJlc3VsdCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggODVkYTEyODk3Mzc4
MTJhMjhjNmZjMDY5Y2RmMzZiZmIxOWEzNDZiZi4uNzI2NDJhOGM4YTA1YTNkNDc1YzJhMTNmN2Zh
ZGZiNzk4Zjc0MjQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAtNzgsNiArNzgsNyBAQCBzdHJ1Y3QgX1dlYktpdFNl
dHRpbmdzUHJpdmF0ZSB7CiAgICAgQ1N0cmluZyBwaWN0b2dyYXBoRm9udEZhbWlseTsKICAgICBD
U3RyaW5nIGRlZmF1bHRDaGFyc2V0OwogICAgIENTdHJpbmcgdXNlckFnZW50OworICAgIENTdHJp
bmcgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CiAgICAgYm9vbCBh
bGxvd01vZGFsRGlhbG9ncyB7IGZhbHNlIH07CiAgICAgYm9vbCB6b29tVGV4dE9ubHkgeyBmYWxz
ZSB9OwogICAgIGRvdWJsZSBzY3JlZW5EcGkgeyA5NiB9OwpAQCAtMTcwLDYgKzE3MSw3IEBAIGVu
dW0gewogI2VuZGlmCiAgICAgUFJPUF9FTkFCTEVfSkFWQVNDUklQVF9NQVJLVVAsCiAgICAgUFJP
UF9FTkFCTEVfTUVESUEsCisgICAgUFJPUF9NRURJQV9DT05URU5UX1RZUEVTX1JFUVVJUklOR19I
QVJEV0FSRV9TVVBQT1JULAogfTsKIAogc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NEaXNwb3Nl
KEdPYmplY3QqIG9iamVjdCkKQEAgLTQwMCw2ICs0MDIsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRT
ZXR0aW5nc1NldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25zdCBH
VmFsdQogICAgIGNhc2UgUFJPUF9FTkFCTEVfTUVESUE6CiAgICAgICAgIHdlYmtpdF9zZXR0aW5n
c19zZXRfZW5hYmxlX21lZGlhKHNldHRpbmdzLCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NRURJQV9DT05URU5UX1RZUEVTX1JFUVVJ
UklOR19IQVJEV0FSRV9TVVBQT1JUOgorICAgICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X21lZGlh
X2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQoc2V0dGluZ3MsIGdfdmFs
dWVfZ2V0X3N0cmluZyh2YWx1ZSkpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAg
ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBh
cmFtU3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtNTkxLDYgKzU5Niw5IEBAIHN0YXRpYyB2b2lk
IHdlYktpdFNldHRpbmdzR2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQs
IEdWYWx1ZSogdmFsCiAgICAgY2FzZSBQUk9QX0VOQUJMRV9NRURJQToKICAgICAgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWEoc2V0
dGluZ3MpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX01FRElBX0NPTlRFTlRfVFlQ
RVNfUkVRVUlSSU5HX0hBUkRXQVJFX1NVUFBPUlQ6CisgICAgICAgIGdfdmFsdWVfc2V0X3N0cmlu
Zyh2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmlu
Z19oYXJkd2FyZV9zdXBwb3J0KHNldHRpbmdzKSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHBy
b3BJZCwgcGFyYW1TcGVjKTsKICAgICAgICAgYnJlYWs7CkBAIC0xNTM4LDYgKzE1NDYsMjEgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFz
cyoga2xhc3MpCiAgICAgICAgICAgICBUUlVFLAogICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3Ry
dWN0UGFyYW1GbGFncykpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0U2V0dGluZ3M6bWVkaWEt
Y29udGVudC10eXBlcy1yZXF1aXJpbmctaGFyZHdhcmUtc3VwcG9ydDoKKyAgICAgKgorICAgICAq
IExpc3Qgb2YgbWVkaWEgY29udGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydCwg
c3BsaXQgYnkgc2VtaWNvbG9ucyAoOikuCisgICAgICogRm9yIGV4YW1wbGU6ICd2aWRlby93ZWJt
OyBjb2RlY3M9InZwKiI6dmlkZW8vbXA0OyBjb2RlY3M9ImF2YyoiOnZpZGVvLyo7IGNvZGVjcz0i
YXYxKiInLgorICAgICAqCisgICAgICogU2luY2U6IDIuMzAKKyAgICAgKi8KKyAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKKyAgICAgICAgUFJPUF9NRURJ
QV9DT05URU5UX1RZUEVTX1JFUVVJUklOR19IQVJEV0FSRV9TVVBQT1JULAorICAgICAgICBnX3Bh
cmFtX3NwZWNfc3RyaW5nKCJtZWRpYS1jb250ZW50LXR5cGVzLXJlcXVpcmluZy1oYXJkd2FyZS1z
dXBwb3J0IiwKKyAgICAgICAgICAgIF8oIk1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhh
cmR3YXJlIHN1cHBvcnQiKSwKKyAgICAgICAgICAgIF8oIkxpc3Qgb2YgbWVkaWEgY29udGVudCB0
eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydC4iKSwKKyAgICAgICAgICAgIG51bGxwdHIs
IC8vIEEgbnVsbCBzdHJpbmcgZm9yY2VzIHRoZSBkZWZhdWx0IHZhbHVlLgorICAgICAgICAgICAg
cmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOwogfQogCiBXZWJQcmVmZXJlbmNlcyogd2Vi
a2l0U2V0dGluZ3NHZXRQcmVmZXJlbmNlcyhXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCkBAIC0z
ODAyLDMgKzM4MjUsNDYgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYShX
ZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGVuYWJsZWQKICAgICBwcml2LT5wcmVm
ZXJlbmNlcy0+c2V0TWVkaWFFbmFibGVkKGVuYWJsZWQpOwogICAgIGdfb2JqZWN0X25vdGlmeShH
X09CSkVDVChzZXR0aW5ncyksICJlbmFibGUtbWVkaWEiKTsKIH0KKworLyoqCisgKiB3ZWJraXRf
c2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBv
cnQ6CisgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCisgKgorICogR2V0cyB0aGUgI1dl
YktpdFNldHRpbmdzOm1lZGlhLWNvbnRlbnQtdHlwZXMtcmVxdWlyaW5nLWhhcmR3YXJlLXN1cHBv
cnQgcHJvcGVydHkuCisgKgorICogUmV0dXJuczogTWVkaWEgY29udGVudCB0eXBlcyByZXF1aXJp
bmcgaGFyZHdhcmUgc3VwcG9ydCwgb3IgJU5VTEwuCisgKgorICogU2luY2U6IDIuMzAKKyAqLwor
Y29uc3QgZ2NoYXIqIHdlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1
aXJpbmdfaGFyZHdhcmVfc3VwcG9ydChXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSwgMCk7CisK
KyAgICBjb25zdCBhdXRvJiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dCA9IHNldHRpbmdzLT5wcml2LT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3Vw
cG9ydDsKKyAgICBpZiAoIW1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gbWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQuZGF0YSgpOworfQorCisvKioKKyAqIHdl
YmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVf
c3VwcG9ydDoKKyAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGluZ3MKKyAqIEBjb250ZW50X3R5
cGVzOiAoYWxsb3ctbm9uZSkgbGlzdCBvZiBtZWRpYSBjb250ZW50IHR5cGVzIHJlcXVpcmluZyBo
YXJkd2FyZSBzdXBwb3J0IHNwbGl0IGJ5IHNlbWljb2xvbnMgKDopIG9yICVOVUxMIHRvIHVzZSB0
aGUgZGVmYXVsdCB2YWx1ZS4KKyAqCisgKiBTZXQgdGhlICNXZWJLaXRTZXR0aW5nczptZWRpYS1j
b250ZW50LXR5cGVzLXJlcXVpcmluZy1oYXJkd2FyZS1zdXBwb3J0IHByb3BlcnR5LgorICoKKyAq
IFNpbmNlOiAyLjMwCisgKi8KK3ZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50
X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KFdlYktpdFNldHRpbmdzKiBzZXR0aW5n
cywgY29uc3QgZ2NoYXIqIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7
CisKKyAgICBXZWJLaXRTZXR0aW5nc1ByaXZhdGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAg
ICBpZiAoIWdfc3RyY21wMChwcml2LT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydC5kYXRhKCksIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIG1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0U3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOChtZWRpYUNvbnRlbnRU
eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CisgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNl
dE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KG1lZGlhQ29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0U3RyaW5nKTsKKyAgICBwcml2LT5tZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IG1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0U3RyaW5nLnV0ZjgoKTsKKyAgICBnX29iamVjdF9ub3RpZnkoR19P
QkpFQ1Qoc2V0dGluZ3MpLCAibWVkaWEtY29udGVudC10eXBlcy1yZXF1aXJpbmctaGFyZHdhcmUt
c3VwcG9ydCIpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRTZXR0aW5ncy5oCmluZGV4IDAxY2I0ZjU2ODY4ODlhNmMyMzhmNTJkMjU2MWY1MDFhYjYzYjVh
ZDEuLjYzYWE4YmIzNzA0YzFjODIyNTg5MDk0MTg1MGZhYzZhYTlkOWYyNDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmgKQEAgLTUwNiw2
ICs1MDYsMTMgQEAgV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9t
ZWRpYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRp
bmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsKIAorV0VCS0lUX0FQSSBjb25z
dCBnY2hhciAqCit3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWly
aW5nX2hhcmR3YXJlX3N1cHBvcnQgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVp
cmluZ19oYXJkd2FyZV9zdXBwb3J0IChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyICpjb250ZW50X3R5cGVzKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlm
IC8qIFdlYktpdFNldHRpbmdzX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0Cmlu
ZGV4IDFiYzQyNzBjOWY0MGU4ZmI4YzRmZTY2Y2U2ZTNiYjUwYjNmZjk3MTcuLjA4MGU5ZjM0Njcz
ZTM3ZDIxMmQ1ODA3NDUzNWViZTczZGIxZWE3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rp
b25zLnR4dApAQCAtNTQ4LDYgKzU0OCw4IEBAIHdlYmtpdF9zZXR0aW5nc19mb250X3NpemVfdG9f
cG9pbnRzCiB3ZWJraXRfc2V0dGluZ3NfZm9udF9zaXplX3RvX3BpeGVscwogd2Via2l0X3NldHRp
bmdzX2dldF9lbmFibGVfbWVkaWEKIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhCit3
ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJl
X3N1cHBvcnQKK3dlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJp
bmdfaGFyZHdhcmVfc3VwcG9ydAogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdlYktpdFNldHRp
bmdzQ2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
ZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAppbmRleCBhYjg0ZDFmOGY1ZDBkZjQzMDgyZmE5ZDE3
MmY2NGQ4NDY3NjJhYzY0Li44NjkyY2M1NTE5NGQ5OWUyZjhiMjg3MjhjZTI4NDhiZTM2N2IxYzEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstZG9jcy5zZ21sCkBAIC0xNjMsNSArMTYzLDEwIEBACiAgICAgPHhpOmluY2x1
ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjI4LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNs
dWRlPgogICA8L2luZGV4PgogCisgIDxpbmRleCBpZD0iYXBpLWluZGV4LTItMzAiIHJvbGU9IjIu
MzAiPgorICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAyLjMwPC90aXRsZT4KKyAg
ICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMzAueG1sIj48eGk6ZmFsbGJhY2sg
Lz48L3hpOmluY2x1ZGU+CisgIDwvaW5kZXg+CisKICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2Fu
bm90YXRpb24tZ2xvc3NhcnkueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiA8L2Jv
b2s+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNl
dHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNldHRpbmdz
LmgKaW5kZXggOTgzMDA0OTQ1NDg5YzM2NzVmMDk1NDk2ZDVmNzNlNDVlNjljNTJlZS4uZjU0OTc3
OWM3ZDBkYzdjYzEzY2YzMTU5ZWFiNTk1NTQ0MWVmZGU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaApAQCAtNDYzLDYgKzQ2MywxMyBA
QCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOwogCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoK
K3dlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdh
cmVfc3VwcG9ydCAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfc2V0dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3
YXJlX3N1cHBvcnQgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2NoYXIgKmNvbnRlbnRfdHlwZXMpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2ViS2l0
U2V0dGluZ3NfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CmluZGV4IDBjMmRjNjUxNWM2NmI3OTU3N2E3
ZDU4MDdjYTRhMGZiYzVkMDc1MzkuLmNiNjYwZTAwNWM0MjI3NzcwYzExZWQ4YWI3MzNhYTkxMDY4
YmMyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMS4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKQEAgLTU0Miw2ICs1NDIsOCBAQCB3ZWJraXRfc2V0
dGluZ3NfZ2V0X2FsbG93X3RvcF9uYXZpZ2F0aW9uX3RvX2RhdGFfdXJscwogd2Via2l0X3NldHRp
bmdzX3NldF9hbGxvd190b3BfbmF2aWdhdGlvbl90b19kYXRhX3VybHMKIHdlYmtpdF9zZXR0aW5n
c19nZXRfZW5hYmxlX21lZGlhCiB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYQord2Vi
a2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9z
dXBwb3J0Cit3ZWJraXRfc2V0dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5n
X2hhcmR3YXJlX3N1cHBvcnQKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRTZXR0aW5n
c0NsYXNzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggYTE1NjA4MDc5ZGQxMGUxYzlmNTQ3ZTU5Y2JjMThkMWEzN2MyYTRlMy4uNzRkNjdkY2M2YmFk
OGIyZWI0M2E2MzM5Mjk5Y2EzZmY3NmE4ZjY2YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA1LTE5ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQgaG9ub3IgdGhlIG1lZGlhIGNvbnRlbnQgdHlw
ZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQgc2V0dGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExOTUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhlcmNpc2UgdGhlIG5ldyBtZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCBzZXR0aW5nLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHA6CisgICAg
ICAgICh0ZXN0V2ViS2l0U2V0dGluZ3MpOgorCiAyMDIwLTA0LTE3ICBDbGF1ZGlvIFNhYXZlZHJh
ICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIGZvciBHZGtL
ZXltYXAgQVBJIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggMWI0Njk2Nzk5ZDY2
ZTFhNjRjNGQ5NGViZGEyMGU2N2M4ZjI5NjVlNS4uZGEwNDcyNWNkYjgzYzYyNGQ2NzA2ZDc4MmVl
NTVhMzVmMzU3ZDI3YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTM0MSw2ICszNDEsMTMg
QEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdFNldHRpbmdzKFRlc3QqLCBnY29uc3Rwb2ludGVyKQog
ICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhKHNldHRpbmdzLCBGQUxTRSk7CiAg
ICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWEoc2V0dGlu
Z3MpKTsKIAorICAgIC8vIERlZmF1bHQgbWVkaWEgY29udGVudCB0eXBlcyByZXF1aXJpbmcgaGFy
ZHdhcmUgc3VwcG9ydCBpcyBudWxscHRyLgorICAgIGdfYXNzZXJ0X2NtcHN0cihudWxscHRyLCA9
PSwgd2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJk
d2FyZV9zdXBwb3J0KHNldHRpbmdzKSk7CisgICAgd2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9j
b250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KHNldHRpbmdzLCAidmlkZW8v
KjsgY29kZWNzPVwiKlwiIik7CisgICAgZ19hc3NlcnRfY21wc3RyKCJ2aWRlby8qOyBjb2RlY3M9
XCIqXCIiLCA9PSwgd2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVp
cmluZ19oYXJkd2FyZV9zdXBwb3J0KHNldHRpbmdzKSk7CisgICAgd2Via2l0X3NldHRpbmdzX3Nl
dF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KHNldHRpbmdz
LCBudWxscHRyKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIobnVsbHB0ciwgPT0sIHdlYmtpdF9zZXR0
aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydChz
ZXR0aW5ncykpOworCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIC8vIE9uZGVtYW5kIGlzIHRoZSBk
ZWZhdWx0IGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBwb2xpY3kuCiAgICAgZ19hc3NlcnRfY21wdWlu
dCh3ZWJraXRfc2V0dGluZ3NfZ2V0X2hhcmR3YXJlX2FjY2VsZXJhdGlvbl9wb2xpY3koc2V0dGlu
Z3MpLCA9PSwgV0VCS0lUX0hBUkRXQVJFX0FDQ0VMRVJBVElPTl9QT0xJQ1lfT05fREVNQU5EKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400355</attachid>
            <date>2020-05-27 11:22:43 -0700</date>
            <delta_ts>2020-05-27 12:10:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211950-20200527132242.patch</filename>
            <type>text/plain</type>
            <size>1615</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMxOTgwMzJmNGJhOTA2NmFj
OGNhNTM4ZmRkZmNhOGM2ZTZkMzcwYmUuLjJjZjVjY2ExYmExOTA5MGJlYzI3ZDFiZTJkNjgzZTBm
ZjZmMWE0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDUtMjcgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
Zml4IC1XY29tbWVudCBidWlsZCB3YXJuaW5nIGFmdGVyIHIyNjE5ODYKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk1MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjM0ODI3MTg+CisKKyAgICAgICAgSWYgd2UgcmVwbGFjZSB0aGUgLyogd2l0aCAv
JmFzdDsgdGhlbiBHQ0Mgd29uJ3QgY29tcGxhaW4gdGhhdCBpdCBsb29rcyBsaWtlIGEgY29tbWVu
dC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHA6Cisg
ICAgICAgICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6CisKIDIwMjAtMDUtMjcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCB1bmRlciBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpyZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1hcCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAK
aW5kZXggNDFmZTVkYmE3NWIzMTlmM2U3ODUyMTI0MGE3YTA1MDdlOWZmMDE1NS4uNmY1MWM4NWM1
ZTU0ZDBmZWY4NDI0MTMzZTBmMWE0ZTE5ODk3YmFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAtMTU1MCw3ICsxNTUw
LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0U2V0dGlu
Z3NDbGFzcyoga2xhc3MpCiAgICAgICogV2ViS2l0U2V0dGluZ3M6bWVkaWEtY29udGVudC10eXBl
cy1yZXF1aXJpbmctaGFyZHdhcmUtc3VwcG9ydDoKICAgICAgKgogICAgICAqIExpc3Qgb2YgbWVk
aWEgY29udGVudCB0eXBlcyByZXF1aXJpbmcgaGFyZHdhcmUgc3VwcG9ydCwgc3BsaXQgYnkgc2Vt
aWNvbG9ucyAoOikuCi0gICAgICogRm9yIGV4YW1wbGU6ICd2aWRlby93ZWJtOyBjb2RlY3M9InZw
KiI6dmlkZW8vbXA0OyBjb2RlY3M9ImF2YyoiOnZpZGVvLyo7IGNvZGVjcz0iYXYxKiInLgorICAg
ICAqIEZvciBleGFtcGxlOiAndmlkZW8vd2VibTsgY29kZWNzPSJ2cCoiOnZpZGVvL21wNDsgY29k
ZWNzPSJhdmMqIjp2aWRlby8mYXN0OyBjb2RlY3M9ImF2MSoiJy4KICAgICAgKgogICAgICAqIFNp
bmNlOiAyLjMwCiAgICAgICovCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>