<?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>194332</bug_id>
          
          <creation_ts>2019-02-06 01:06:16 -0800</creation_ts>
          <short_desc>CSS custom properties on pseudo elements background gradients causes infinite layout and high CPU load</short_desc>
          <delta_ts>2021-07-13 19:29:22 -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>Animations</component>
          <version>Safari 12</version>
          <rep_platform>All</rep_platform>
          <op_sys>macOS 10.14</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226924</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=227926</see_also>
          <bug_file_loc>https://jsfiddle.net/4gb9ynLz/</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="Vladimir">nolimits4web</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>ali.ghassemi</cc>
    
    <cc>changseok</cc>
    
    <cc>denton.don</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jond</cc>
    
    <cc>jonlee</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>phil+webkit</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1502718</commentid>
    <comment_count>0</comment_count>
    <who name="Vladimir">nolimits4web</who>
    <bug_when>2019-02-06 01:06:16 -0800</bug_when>
    <thetext>CSS custom properties used in gradient images on pseudo elements causes infinite relayout and high CPU load.

Reproduction scenario is simple:

&lt;body&gt;
  &lt;style&gt;
    :root {
      --link-highlight-color: rgba(0,0,0,0.1);
    }
    a {
      position: relative;
      min-width: 44px;
      height: 44px;
      display: inline-flex;
      justify-content: center;
      align-items: center;
      text-decoration: none;
    }
    a:before {
      content: &apos;&apos;;
      width: 152%;
      height: 152%;
      position: absolute;
      left: -26%;
      top: -26%;
      background-image: radial-gradient(circle at center, var(--link-highlight-color) 66%, rgba(255,255,255,0) 66%);
      background-repeat: no-repeat;
      background-position: center;
      background-size: 100% 100%;
      opacity: 0;
      pointer-events: none;
      transition-duration: 600ms;
    }
    a:hover:before {
      opacity: 1;
    }
  &lt;/style&gt;
  &lt;p&gt;
    &lt;a href=&quot;#&quot;&gt;Link 1&lt;/a&gt;
  &lt;/p&gt;
  &lt;p&gt;
    &lt;a href=&quot;#&quot;&gt;Another Link&lt;/a&gt;
  &lt;/p&gt;
  &lt;p&gt;
    &lt;a href=&quot;#&quot;&gt;Link 3&lt;/a&gt;
  &lt;/p&gt;
&lt;/body&gt;
```

Here is the live example on JSFiddle https://jsfiddle.net/4gb9ynLz/

Such simple layout causes 100% CPU load on my system:

MacBook Pro 15 (Retina, Mid 2012)
macOs 10.14.2 (18C54)
Safari: 12.0.2 (14606.3.4)

Same happens on latest iOS 12.1.3 (16D39) Safari, iPhone X</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503590</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-06 19:25:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/47873895&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510380</commentid>
    <comment_count>2</comment_count>
    <who name="P. J. Łaszkowicz">phil+webkit</who>
    <bug_when>2019-02-26 22:35:37 -0800</bug_when>
    <thetext>This also occurs when loading background images. Replicated in a custom component where the background image of a button was repeatedly requested when a change to the button was expected. This could include a transform or simply a class change.

For example, the following snippet will cause the background image to reload constantly. 

button {
    background-color:    transparent;
    background-image:    var(--indago-action-menu-icon);
    transform: var(--indago-action-panel-transform); 
    transition: var(--indago-action-panel-transition); 
}

This occurs on both iOS and MacOS. Lesser impacts include flickering of the images due to unnecessary reloading, but the CPU and the GET requests are significantly more severe, even if less obvious to the end-user.

Other examples currently experienced include a reload on every :hover.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533297</commentid>
    <comment_count>3</comment_count>
    <who name="Don Denton">denton.don</who>
    <bug_when>2019-05-05 15:42:19 -0700</bug_when>
    <thetext>It appears as though the alpha-channel is actually what is the final trigger for the problem. *Not* the custom property as the title of this bug indicates. Change the `rgba` functions to `rgb` in both locations and the problem vanishes.

I do believe that the `transition` is also necessary to reproduce.

Minimal repro: https://jsfiddle.net/0ph9xkrt/7/

In this example, when you hover over the paragraph, the rendering never ends.

It only works when all the following are true:

1. a transition is defined that is not instantaneous
2. there is an alpha channel in the color that is *exclusively* between 0 and 1
3. there is at least one color channel which is *exclusively* between 0 and 255.

The original example from this bug report pegs the CPU harder than mine, but I believe they are the same bug at its core.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533298</commentid>
    <comment_count>4</comment_count>
    <who name="Don Denton">denton.don</who>
    <bug_when>2019-05-05 15:51:47 -0700</bug_when>
    <thetext>It appears as though the custom property is not what causes this bug as the title suggests. Here is a minimal repro, as far as I can tell:

https://jsfiddle.net/0ph9xkrt/7/

You need the following:

1. a transition is defined that is not instantaneous
2. there is an alpha channel in the color that is *exclusively* between 0 and 1
3. there is at least one color channel which is *exclusively* between 0 and 255

The linked example has some interactions you may observe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533453</commentid>
    <comment_count>5</comment_count>
      <attachid>369148</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-06 11:34:30 -0700</bug_when>
    <thetext>Created attachment 369148
Standalone version of the JSFiddle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533462</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-06 11:50:14 -0700</bug_when>
    <thetext>Animation logging shows us animating both box-shadow and -webkit-box-shadow. I wonder if this triggers the infinite animating:

Created ImplicitAnimation 0x10b4ec720 on element 0x133100070 for property box-shadow duration 0.50 delay 0.00
Created ImplicitAnimation 0x10b4ec7b8 on element 0x133100070 for property -webkit-box-shadow duration 0.50 delay 0.00
0x10b4ec720 AnimationState New -&gt; New
0x10b4ec720 AnimationState New -&gt; StartWaitTimer
  blending ShadowData at 0
0x10b4ec720 AnimationState StartWaitTimer -&gt; StartWaitStyleAvailable (time is 0.000000)
0x10b4ec7b8 AnimationState New -&gt; New
0x10b4ec7b8 AnimationState New -&gt; StartWaitTimer
  blending ShadowData at 0
0x10b4ec7b8 AnimationState StartWaitTimer -&gt; StartWaitStyleAvailable (time is 0.000000)
0x10b4ec720 AnimationState StartWaitStyleAvailable -&gt; StartWaitResponse (time is -1.000000)
0x10b4ec7b8 AnimationState StartWaitStyleAvailable -&gt; StartWaitResponse (time is -1.000000)
0x10b4ec720 AnimationState StartWaitResponse -&gt; StartTimeSet (time is 582830.660499)
0x10b4ec720 AnimationState StartWaitResponse -&gt; Ending
0x10b4ec7b8 AnimationState StartWaitResponse -&gt; StartTimeSet (time is 582830.660499)
0x10b4ec7b8 AnimationState StartWaitResponse -&gt; Ending
  blending ShadowData at 0.00
  blending ShadowData at 0.00
...
updateAnimationTimer: timeToNextService is 0.00
  blending ShadowData at 1.00
  blending ShadowData at 1.00
updateAnimationTimer: timeToNextService is 0.00
0x10b4ec720 AnimationState Ending -&gt; Ending
0x10b4ec720 AnimationState Ending -&gt; Done (time is 0.500000)
CSSAnimationControllerPrivate 0x10b496140 animationWillBeRemoved: 0x10b4ec720
Removing ImplicitAnimation 0x10b4ec720 from element 0x133100070 for property box-shadow
  blending ShadowData at 1.00
0x10b4ec7b8 AnimationState Ending -&gt; Ending
0x10b4ec7b8 AnimationState Ending -&gt; Done (time is 0.500000)
updateAnimationTimer: timeToNextService is 0.00
Created ImplicitAnimation 0x10b4ecd10 on element 0x133100070 for property box-shadow duration 0.50 delay 0.00
CSSAnimationControllerPrivate 0x10b496140 animationWillBeRemoved: 0x10b4ec7b8
Removing ImplicitAnimation 0x10b4ec7b8 from element 0x133100070 for property -webkit-box-shadow
0x10b4ecd10 AnimationState New -&gt; New
0x10b4ecd10 AnimationState New -&gt; StartWaitTimer
  blending ShadowData at 0
0x10b4ecd10 AnimationState StartWaitTimer -&gt; StartWaitStyleAvailable (time is 0.000000)
0x10b4ecd10 AnimationState StartWaitStyleAvailable -&gt; StartWaitResponse (time is -1.000000)
0x10b4ecd10 AnimationState StartWaitResponse -&gt; StartTimeSet (time is 582831.176258)
0x10b4ecd10 AnimationState StartWaitResponse -&gt; Ending
Created ImplicitAnimation 0x10b4ecda8 on element 0x133100070 for property -webkit-box-shadow duration 0.50 delay 0.00
  blending ShadowData at 0.00
0x10b4ecda8 AnimationState New -&gt; New
0x10b4ecda8 AnimationState New -&gt; StartWaitTimer
  blending ShadowData at 0
0x10b4ecda8 AnimationState StartWaitTimer -&gt; StartWaitStyleAvailable (time is 0.000000)
0x10b4ecda8 AnimationState StartWaitStyleAvailable -&gt; StartWaitResponse (time is -1.000000)
0x10b4ecda8 AnimationState StartWaitResponse -&gt; StartTimeSet (time is 582831.177199)
0x10b4ecda8 AnimationState StartWaitResponse -&gt; Ending
  blending ShadowData at 0.00
  blending ShadowData at 0.00
...
updateAnimationTimer: timeToNextService is 0.00
  blending ShadowData at 1.00
  blending ShadowData at 1.00
updateAnimationTimer: timeToNextService is 0.00
0x10b4ecd10 AnimationState Ending -&gt; Ending
0x10b4ecd10 AnimationState Ending -&gt; Done (time is 0.500000)
CSSAnimationControllerPrivate 0x10b496140 animationWillBeRemoved: 0x10b4ecd10
Removing ImplicitAnimation 0x10b4ecd10 from element 0x133100070 for property box-shadow
  blending ShadowData at 1.00
0x10b4ecda8 AnimationState Ending -&gt; Ending
0x10b4ecda8 AnimationState Ending -&gt; Done (time is 0.500000)
updateAnimationTimer: timeToNextService is 0.00
Created ImplicitAnimation 0x10b4ec688 on element 0x133100070 for property box-shadow duration 0.50 delay 0.00
CSSAnimationControllerPrivate 0x10b496140 animationWillBeRemoved: 0x10b4ecda8
Removing ImplicitAnimation 0x10b4ecda8 from element 0x133100070 for property -webkit-box-shadow
0x10b4ec688 AnimationState New -&gt; New
0x10b4ec688 AnimationState New -&gt; StartWaitTimer
  blending ShadowData at 0
0x10b4ec688 AnimationState StartWaitTimer -&gt; StartWaitStyleAvailable (time is 0.000000)
0x10b4ec688 AnimationState StartWaitStyleAvailable -&gt; StartWaitResponse (time is -1.000000)
0x10b4ec688 AnimationState StartWaitResponse -&gt; StartTimeSet (time is 582831.683405)
0x10b4ec688 AnimationState StartWaitResponse -&gt; Ending
Created ImplicitAnimation 0x10b4ec720 on element 0x133100070 for property -webkit-box-shadow duration 0.50 delay 0.00
  blending ShadowData at 0.00
0x10b4ec720 AnimationState New -&gt; New
0x10b4ec720 AnimationState New -&gt; StartWaitTimer
  blending ShadowData at 0
0x10b4ec720 AnimationState StartWaitTimer -&gt; StartWaitStyleAvailable (time is 0.000000)
0x10b4ec720 AnimationState StartWaitStyleAvailable -&gt; StartWaitResponse (time is -1.000000)
0x10b4ec720 AnimationState StartWaitResponse -&gt; StartTimeSet (time is 582831.684502)
0x10b4ec720 AnimationState StartWaitResponse -&gt; Ending
  blending ShadowData at 0.00
  blending ShadowData at 0.00
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534401</commentid>
    <comment_count>7</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2019-05-08 11:49:14 -0700</bug_when>
    <thetext>I&apos;m not seeing the same CPU load with the latest JSFiddle or the standalone example. The original example still appears to show 100% CPU however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704203</commentid>
    <comment_count>8</comment_count>
    <who name="Ali G">ali.ghassemi</who>
    <bug_when>2020-11-03 13:53:02 -0800</bug_when>
    <thetext>We also ran into this bug @ LinkedIn</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756842</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-05 01:13:58 -0700</bug_when>
    <thetext>(In reply to Jon Lee from comment #7)
&gt; I&apos;m not seeing the same CPU load with the latest JSFiddle or the standalone
&gt; example. The original example still appears to show 100% CPU however.

Seeing the same thing with the standalone example but the original jsfiddle shows continuous CPU usage in Web Inspector, but nothing like 100% CPU for the WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756861</commentid>
    <comment_count>10</comment_count>
      <attachid>427745</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-05 01:50:54 -0700</bug_when>
    <thetext>Created attachment 427745
Reduction showing continuous updates in Web Inspector timeline

I have a reduction that shows the continuous updates in the Web Inspector timeline. It also logs any new transition and you&apos;ll see we create a background-image transition continuously, where we shouldn&apos;t event be generating one in the first place. I believe this is the bug here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756864</commentid>
    <comment_count>11</comment_count>
      <attachid>427747</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-05 01:59:27 -0700</bug_when>
    <thetext>Created attachment 427747
Reduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756894</commentid>
    <comment_count>12</comment_count>
      <attachid>427754</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-05 04:53:56 -0700</bug_when>
    <thetext>Created attachment 427754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756897</commentid>
    <comment_count>13</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-05 04:58:41 -0700</bug_when>
    <thetext>The patch addresses both the reduced test case and the other original JSFiddle link.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756900</commentid>
    <comment_count>14</comment_count>
      <attachid>427756</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-05 05:02:09 -0700</bug_when>
    <thetext>Created attachment 427756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756928</commentid>
    <comment_count>15</comment_count>
      <attachid>427763</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-05 06:57:03 -0700</bug_when>
    <thetext>Created attachment 427763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756930</commentid>
    <comment_count>16</comment_count>
      <attachid>427763</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-05-05 07:06:32 -0700</bug_when>
    <thetext>Comment on attachment 427763
Patch

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

&gt; Source/WebCore/rendering/style/FillLayer.cpp:406
&gt;      for (; layer1 &amp;&amp; layer2; layer1 = layer1-&gt;next(), layer2 = layer2-&gt;next()) {
&gt; -        if (!arePointingToEqualData(layer1-&gt;image(), layer2-&gt;image()))
&gt; +        if (layer1-&gt;image() != layer2-&gt;image())
&gt;              return false;

You should also rename imagesIdentical to something that reflects its only call site, imageChangeRequiresClientReregistration or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756931</commentid>
    <comment_count>17</comment_count>
      <attachid>427763</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-05-05 07:07:52 -0700</bug_when>
    <thetext>Comment on attachment 427763
Patch

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

&gt; Source/WebCore/rendering/style/StyleGeneratedImage.cpp:51
&gt; +    if (is&lt;StyleGeneratedImage&gt;(other)) {
&gt; +        auto&amp; otherStyleGeneratedImage = downcast&lt;StyleGeneratedImage&gt;(other);
&gt; +        if (is&lt;CSSGradientValue&gt;(m_imageGeneratorValue) &amp;&amp; is&lt;CSSGradientValue&gt;(otherStyleGeneratedImage.m_imageGeneratorValue)) {
&gt; +            auto&amp; cssGradientValueA = downcast&lt;CSSGradientValue&gt;(m_imageGeneratorValue.get());
&gt; +            auto&amp; cssGradientValueB = downcast&lt;CSSGradientValue&gt;(otherStyleGeneratedImage.m_imageGeneratorValue.get());
&gt; +            return cssGradientValueA.equals(cssGradientValueB);
&gt; +        }
&gt; +    }
&gt; +    return data() == other.data();

data() == other.data() test would be better done first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756945</commentid>
    <comment_count>18</comment_count>
      <attachid>427763</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-05 08:36:05 -0700</bug_when>
    <thetext>Comment on attachment 427763
Patch

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

&gt;&gt; Source/WebCore/rendering/style/FillLayer.cpp:406
&gt;&gt;              return false;
&gt; 
&gt; You should also rename imagesIdentical to something that reflects its only call site, imageChangeRequiresClientReregistration or something.

Why doesn&apos;t arePointingToEqualData() do the right thing? It tests pointer equality and then calls operator==

&gt; Source/WebCore/rendering/style/StyleGeneratedImage.cpp:48
&gt; +            return cssGradientValueA.equals(cssGradientValueB);

Why doesn&apos;t CSSGradientValue have an operator==?
Should we test pointer equality first?
Do we need similar code for other kinds of StyleGeneratedImage? Why are gradients special?
Can this just call arePointingToEqualData() on the m_imageGeneratorValues?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756961</commentid>
    <comment_count>19</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-05 09:37:56 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #18)
&gt; Comment on attachment 427763 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427763&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/style/FillLayer.cpp:406
&gt; &gt;&gt;              return false;
&gt; &gt; 
&gt; &gt; You should also rename imagesIdentical to something that reflects its only call site, imageChangeRequiresClientReregistration or something.
&gt; 
&gt; Why doesn&apos;t arePointingToEqualData() do the right thing? It tests pointer
&gt; equality and then calls operator==

Because we specifically do not want to run operator== here since it would return true, and we&apos;re interested in the pointers being the same, which they are not.

&gt; &gt; Source/WebCore/rendering/style/StyleGeneratedImage.cpp:48
&gt; &gt; +            return cssGradientValueA.equals(cssGradientValueB);
&gt; 
&gt; Why doesn&apos;t CSSGradientValue have an operator==?

Sure could, will add that.

&gt; Should we test pointer equality first?

I don&apos;t think that would be a problem.

&gt; Do we need similar code for other kinds of StyleGeneratedImage? Why are
&gt; gradients special?

You mean other types of CSSImageGeneratorValue? All the subclasses actually have equals() methods so we should probably just add an operator== on CSSImageGeneratorValue which calls into equals().

&gt; Can this just call arePointingToEqualData() on the m_imageGeneratorValues?

Yes, I would think so, which would also take care of pointer equality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756976</commentid>
    <comment_count>20</comment_count>
      <attachid>427763</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-05 10:14:00 -0700</bug_when>
    <thetext>Comment on attachment 427763
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/rendering/style/FillLayer.cpp:406
&gt;&gt;&gt;&gt;              return false;
&gt;&gt;&gt; 
&gt;&gt;&gt; You should also rename imagesIdentical to something that reflects its only call site, imageChangeRequiresClientReregistration or something.
&gt;&gt; 
&gt;&gt; Why doesn&apos;t arePointingToEqualData() do the right thing? It tests pointer equality and then calls operator==
&gt; 
&gt; Because we specifically do not want to run operator== here since it would return true, and we&apos;re interested in the pointers being the same, which they are not.

How is that possible, that the image pointers are the same, but internally they are different?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756983</commentid>
    <comment_count>21</comment_count>
      <attachid>427763</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-05 10:24:16 -0700</bug_when>
    <thetext>Comment on attachment 427763
Patch

The repaint test failure shows that this isn&apos;t quite right, and it would be good to do the rename the Antti suggests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756990</commentid>
    <comment_count>22</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-05 10:52:21 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #20)
&gt; Comment on attachment 427763 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427763&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/WebCore/rendering/style/FillLayer.cpp:406
&gt; &gt;&gt;&gt;&gt;              return false;
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; You should also rename imagesIdentical to something that reflects its only call site, imageChangeRequiresClientReregistration or something.
&gt; &gt;&gt; 
&gt; &gt;&gt; Why doesn&apos;t arePointingToEqualData() do the right thing? It tests pointer equality and then calls operator==
&gt; &gt; 
&gt; &gt; Because we specifically do not want to run operator== here since it would return true, and we&apos;re interested in the pointers being the same, which they are not.
&gt; 
&gt; How is that possible, that the image pointers are the same, but internally
&gt; they are different?

It&apos;s the other way around, the images might be different instances with the same properties. We want imagesIdentical to only return true if they&apos;re the same object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757422</commentid>
    <comment_count>23</comment_count>
      <attachid>427888</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-06 08:46:51 -0700</bug_when>
    <thetext>Created attachment 427888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757462</commentid>
    <comment_count>24</comment_count>
      <attachid>427888</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-06 09:47:38 -0700</bug_when>
    <thetext>Comment on attachment 427888
Patch

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

&gt; Source/WebCore/css/CSSCrossfadeValue.cpp:228
&gt; +    if (is&lt;CSSCrossfadeValue&gt;(other))

if !</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757468</commentid>
    <comment_count>25</comment_count>
      <attachid>427898</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-06 09:51:53 -0700</bug_when>
    <thetext>Created attachment 427898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757481</commentid>
    <comment_count>26</comment_count>
      <attachid>427898</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-05-06 10:07:43 -0700</bug_when>
    <thetext>Comment on attachment 427898
Patch

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

&gt; Source/WebCore/css/CSSImageGeneratorValue.h:44
&gt; +    virtual ~CSSImageGeneratorValue();

Lets not make any CSSValues virtual unless we decide to make all of them virtual. It will just create confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757496</commentid>
    <comment_count>27</comment_count>
      <attachid>427904</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-06 10:36:48 -0700</bug_when>
    <thetext>Created attachment 427904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757498</commentid>
    <comment_count>28</comment_count>
      <attachid>427906</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-05-06 10:38:56 -0700</bug_when>
    <thetext>Created attachment 427906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757589</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-06 13:11:26 -0700</bug_when>
    <thetext>Committed r277112 (237410@main): &lt;https://commits.webkit.org/237410@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427906.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>369148</attachid>
            <date>2019-05-06 11:34:30 -0700</date>
            <delta_ts>2021-05-05 01:59:06 -0700</delta_ts>
            <desc>Standalone version of the JSFiddle</desc>
            <filename>color-with-alpha.html</filename>
            <type>text/html</type>
            <size>1816</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgc2hyaW5rLXRvLWZp
dD1ubyI+CiAgICA8c3R5bGU+CiAgICAgICAgcCB7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xp
ZCBncmV5OwogICAgICAgIH0KCiAgICAgICAgLmV4cGxhbmF0aW9uIHAgewogICAgICAgICAgYm9y
ZGVyOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLm5vLWxvb3Atb24taG92ZXI6aG92ZXIgewog
ICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7CiAgICAgICAgICBib3gtc2hhZG93OiByZ2Jh
KDAsIDAsIDAsIDAuOSkgMXB4IDFweCAxMHB4OwogICAgICAgIH0KCgogICAgICAgIC5sb29wLW9u
LWhvdmVyOmhvdmVyIHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzOwogICAgICAgICAg
Ym94LXNoYWRvdzogcmdiYSgxLCAwLCAwLCAwLjkpIDFweCAxcHggMTBweDsKICAgICAgICB9Cgog
ICAgICAgIC5mb3JldmVyIHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzOwogICAgICAg
IH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgICAKICAgIDxkaXYgY2xhc3M9ImV4cGxh
bmF0aW9uIj4KICAgICAgPHA+CiAgICAgIFNhZmFyaSAoV2Via2l0PykgcmVuZGVyaW5nIGJ1Zy4g
T3BlbiBUaGUgdGltZWxpbmVzIHBhbmVsIG9mIHRoZSBkZXYgdG9vbHMsIHJlY29yZCBhbmQgd2F0
Y2ggIkxheW91dCAmYW1wOyBSZW5kZXJpbmciIGR1cmluZyB0aGVzZSB0ZXN0cy4KICAgICAgPC9w
PgogICAgICA8cD4KICAgICAgICBJbiBTYWZhcmksIHRoZSBDUFUgZ2V0cyBwZWdnZWQgZHVlIHRv
IGluZmluaXRlIHJlbmRlcmluZyB3aGVuIGFsbCB0aGUgZm9sbG93aW5nIGFyZSB0cnVlOgogICAg
ICAgIDwvcD4KICAgIDxvbD4KICAgIDxsaT4KICAgICAgYSB0cmFuc2l0aW9uIGlzIGRlZmluZWQg
dGhhdCBpcyBub3QgaW5zdGFudGFuZW91cwogICAgPC9saT4KICAgIDxsaT4KICAgICAgdGhlcmUg
aXMgYW4gYWxwaGEgY2hhbm5lbCBpbiB0aGUgY29sb3IgdGhhdCBpcyA8c3Ryb25nPmV4Y2x1c2l2
ZWx5PC9zdHJvbmc+IGJldHdlZW4gMCBhbmQgMQogICAgPC9saT4KICAgIDxsaT4KICAgICAgdGhl
cmUgaXMgYXQgbGVhc3Qgb25lIGNvbG9yIGNoYW5uZWwgd2hpY2ggaXMgPHN0cm9uZz5leGNsdXNp
dmVseTwvc3Ryb25nPiBiZXR3ZWVuIDAgYW5kIDI1NQogICAgPC9saT4KICAgIDwvb2w+CgogIAog
ICAgPC9kaXY+CgogICAgPHAgY2xhc3M9Im5vLWxvb3Atb24taG92ZXIiPgogICAgICBObyBsYXN0
aW5nIENQVSBsb2FkIHdoZW4geW91IGhvdmVyIG1lLiAoSSBkbyBub3Qgc2F0aXNmeSByZXF1aXJl
bWVudCAjMykKICAgIDwvcD4KCiAgICA8cCBjbGFzcz0ibG9vcC1vbi1ob3ZlciI+CiAgICAgIFdh
dGNoIExheW91dCAmYW1wOyBSZW5kZXJpbmcgd2hlbiB5b3UgaG92ZXIgb24gbWUuIEFzIGxvbmcg
YXMgeW91IHN0YXkgaG92ZXJlZCwgdGhlcmUgaXMgYW4gaW5maW5pdGUgcmVuZGVyaW5nIGxvb3Au
CiAgICA8L3A+CgogICAgPHAgY2xhc3M9Imxvb3Atb24taG92ZXIgZm9yZXZlciI+CiAgICAgIEkg
YWxzbyBjcmVhdGUgYSBsb29wLCBidXQgaW4gbXkgY2FzZSwgaXQgbmV2ZXIgc3RvcHMgYWZ0ZXIg
dGhlIGZpcnN0IGhvdmVyIHVubGVzcyB5b3UgcmVmcmVzaCB0aGUgcGFnZSAocmVtb3ZlIG1lIGZy
b20gdGhlIERPTSkuIFRoaXMgaXMgYmVjYXVzZSBJIGFsc28gdHJhbnNpdGlvbiA8ZW0+b3V0PC9l
bT4gb2YgdGhlIHNoYWRvdy4KICAgIDwvcD4KCiAgICAKPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>427745</attachid>
            <date>2021-05-05 01:50:54 -0700</date>
            <delta_ts>2021-05-05 01:58:58 -0700</delta_ts>
            <desc>Reduction showing continuous updates in Web Inspector timeline</desc>
            <filename>bug-194332.html</filename>
            <type>text/html</type>
            <size>567</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">PHN0eWxlPgoKOnJvb3QgewogIC0tbGluay1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMC4x
KTsKfQoKZGl2IHsKICB3aWR0aDogMTAwcHg7CiAgaGVpZ2h0OiAxMDBweDsKICBiYWNrZ3JvdW5k
LWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGNlbnRlciwgdmFyKC0tbGluay1oaWdo
bGlnaHQtY29sb3IpIDY2JSwgcmdiYSgyNTUsMjU1LDI1NSwwKSA2NiUpOwogIG9wYWNpdHk6IDA7
CiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNjAwbXM7Cn0KCi50cmFuc2l0aW9uIHsKICBvcGFjaXR5
OiAxOwp9Cgo8L3N0eWxlPgo8ZGl2PjwvZGl2Pgo8c2NyaXB0Pgpjb25zdCB0YXJnZXQgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYiKTsKdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5z
aXRpb25zdGFydCIsIGV2ZW50ID0+IGNvbnNvbGUubG9nKGBUcmFuc2l0aW9uIHN0YXJ0ZWQgZm9y
IHByb3BlcnR5ICR7ZXZlbnQucHJvcGVydHlOYW1lfWApKTsKcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KCgpID0+IHRhcmdldC5jbGFzc0xpc3QuYWRkKCJ0cmFuc2l0aW9uIikpOwo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>427747</attachid>
            <date>2021-05-05 01:59:27 -0700</date>
            <delta_ts>2021-05-05 01:59:27 -0700</delta_ts>
            <desc>Reduction</desc>
            <filename>bug-194332.html</filename>
            <type>text/html</type>
            <size>522</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">PHN0eWxlPgoKOnJvb3QgewogICAgLS1jdXN0b20tY29sb3I6IHJnYmEoMCwgMCwgMzYpOwp9Cgpk
aXYgewogICAgd2lkdGg6IDEwMHB4OwogICAgaGVpZ2h0OiAxMDBweDsKICAgIGJhY2tncm91bmQ6
IGxpbmVhci1ncmFkaWVudCh2YXIoLS1jdXN0b20tY29sb3IpLCByZ2IoMCAsIDIxMiwgMjU1KSk7
CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA2MDBtczsKfQoKLnRyYW5zaXRpb24gewogICAgbWFy
Z2luLWxlZnQ6IDEwMHB4Owp9Cgo8L3N0eWxlPgo8ZGl2PjwvZGl2Pgo8c2NyaXB0Pgpjb25zdCB0
YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYiKTsKdGFyZ2V0LmFkZEV2ZW50TGlz
dGVuZXIoInRyYW5zaXRpb25zdGFydCIsIGV2ZW50ID0+IGNvbnNvbGUubG9nKGBUcmFuc2l0aW9u
IHN0YXJ0ZWQgZm9yIHByb3BlcnR5ICR7ZXZlbnQucHJvcGVydHlOYW1lfWApKTsKcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCgpID0+IHRhcmdldC5jbGFzc0xpc3QuYWRkKCJ0cmFuc2l0aW9uIikpOwo8
L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427754</attachid>
            <date>2021-05-05 04:53:56 -0700</date>
            <delta_ts>2021-05-05 05:02:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194332-20210505135355.patch</filename>
            <type>text/plain</type>
            <size>7706</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE1MDI1YTg0YjJlMTUw
MjQwZjIxODE0M2IyMGVlNDA1OTQ2NGYxYy4uMTRkZWY0M2I3MTlhMDVhNTczNTlkOTY2NGY1Njlj
MzQ2YWM5ZjgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA1LTA1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBjdXN0b20gcHJv
cGVydGllcyBvbiBwc2V1ZG8gZWxlbWVudHMgYmFja2dyb3VuZCBncmFkaWVudHMgY2F1c2VzIGlu
ZmluaXRlIGxheW91dCBhbmQgaGlnaCBDUFUgbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
Nzg3Mzg5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIHdlIGNvbnNpZGVyIHN0YXJ0aW5nIGEgQ1NTIHRyYW5zaXRpb24gZm9yIGJhY2tncm91
bmQtaW1hZ2UsIGNoZWNrIHRoZSBjYXNlIHdoZXJlIHRoZSBpbWFnZSBpcyBnZW5lcmF0ZWQKKyAg
ICAgICAgYnkgYSBDU1MgZ3JhZGllbnQgYW5kIGNoZWNrIGVxdWFsaXR5IG9mIHRoZSBDU1NHcmFk
aWVudFZhbHVlIGluc3RlYWQgb2YganVzdCBwb2ludGVyIGVxdWFsaXR5LgorCisgICAgICAgIFRl
c3Q6IHdlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJh
Y2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVydHkuaHRtbAorCisgICAgICAgICog
YW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5oOgorCiAyMDIxLTA1LTA0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
OjpidWZmZXJGdWxsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwCmluZGV4IDdkMmNiOTE3NGNiMjg1NzhkMGMwZGY2MDc1OGRlMDY5ODVi
NzMzYTcuLmJmOTI3N2VhMzQyMDBmNjY0NzMzZTE3MTljYWFhMDUyMzY3YTgyZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgog
I2luY2x1ZGUgIkNTU0Nyb3NzZmFkZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRmlsdGVySW1hZ2VW
YWx1ZS5oIgorI2luY2x1ZGUgIkNTU0dyYWRpZW50VmFsdWUuaCIKICNpbmNsdWRlICJDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTSW1hZ2VWYWx1ZS5oIgogI2luY2x1ZGUg
IkNTU1ByaW1pdGl2ZVZhbHVlLmgiCkBAIC0xNjQ0LDcgKzE2NDUsMjEgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAoIWEgfHwgIWIpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKHZh
bHVlKGEpLCB2YWx1ZShiKSk7CisKKyAgICAgICAgYXV0byogc3R5bGVJbWFnZUEgPSB2YWx1ZShh
KTsKKyAgICAgICAgYXV0byogc3R5bGVJbWFnZUIgPSB2YWx1ZShiKTsKKworICAgICAgICBpZiAo
aXM8U3R5bGVHZW5lcmF0ZWRJbWFnZT4oc3R5bGVJbWFnZUEpICYmIGlzPFN0eWxlR2VuZXJhdGVk
SW1hZ2U+KHN0eWxlSW1hZ2VCKSkgeworICAgICAgICAgICAgYXV0byYgc3R5bGVHZW5lcmF0ZWRJ
bWFnZUEgPSBkb3duY2FzdDxTdHlsZUdlbmVyYXRlZEltYWdlPigqc3R5bGVJbWFnZUEpOworICAg
ICAgICAgICAgYXV0byYgc3R5bGVHZW5lcmF0ZWRJbWFnZUIgPSBkb3duY2FzdDxTdHlsZUdlbmVy
YXRlZEltYWdlPigqc3R5bGVJbWFnZUIpOworICAgICAgICAgICAgaWYgKGlzPENTU0dyYWRpZW50
VmFsdWU+KHN0eWxlR2VuZXJhdGVkSW1hZ2VBLmltYWdlVmFsdWUoKSkgJiYgaXM8Q1NTR3JhZGll
bnRWYWx1ZT4oc3R5bGVHZW5lcmF0ZWRJbWFnZUIuaW1hZ2VWYWx1ZSgpKSkgeworICAgICAgICAg
ICAgICAgIGF1dG8mIGNzc0dyYWRpZW50VmFsdWVBID0gZG93bmNhc3Q8Q1NTR3JhZGllbnRWYWx1
ZT4oc3R5bGVHZW5lcmF0ZWRJbWFnZUEuaW1hZ2VWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBh
dXRvJiBjc3NHcmFkaWVudFZhbHVlQiA9IGRvd25jYXN0PENTU0dyYWRpZW50VmFsdWU+KHN0eWxl
R2VuZXJhdGVkSW1hZ2VCLmltYWdlVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNz
c0dyYWRpZW50VmFsdWVBLmVxdWFscyhjc3NHcmFkaWVudFZhbHVlQik7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShzdHls
ZUltYWdlQSwgc3R5bGVJbWFnZUIpOwogICAgIH0KIAogICAgIGJvb2wgY2FuSW50ZXJwb2xhdGUo
Y29uc3QgRmlsbExheWVyKiBmcm9tLCBjb25zdCBGaWxsTGF5ZXIqIHRvKSBjb25zdCBmaW5hbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmgKaW5kZXggNDA2OTc5ODQ2N2RlOGE4MmVk
MzQ1MmY0MmRlNjRjMDMyY2FlMWEzMy4uMjg3NTk4MTQ4ODA3Y2QyYjYzNjBhMjc5MWM2ODhiMDg3
ZGUxMTNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCkBAIC04MCw2ICs4
MCw4IEBAIHB1YmxpYzoKIAogICAgIFJlZjxDU1NHcmFkaWVudFZhbHVlPiBncmFkaWVudFdpdGhT
dHlsZXNSZXNvbHZlZChTdHlsZTo6QnVpbGRlclN0YXRlJik7CiAKKyAgICBib29sIGVxdWFscyhj
b25zdCBDU1NHcmFkaWVudFZhbHVlJikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBDU1NHcmFk
aWVudFZhbHVlKENsYXNzVHlwZSBjbGFzc1R5cGUsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdCwg
Q1NTR3JhZGllbnRUeXBlIGdyYWRpZW50VHlwZSkKICAgICAgICAgOiBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlKGNsYXNzVHlwZSkKQEAgLTExMCw4ICsxMTIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYXV0
byYgc3RvcHMoKSBjb25zdCB7IHJldHVybiBtX3N0b3BzOyB9CiAgICAgYm9vbCBpc1JlcGVhdGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwZWF0aW5nOyB9CiAKLSAgICBib29sIGVxdWFscyhjb25z
dCBDU1NHcmFkaWVudFZhbHVlJikgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgYm9vbCBoYXNDb2xv
ckRlcml2ZWRGcm9tRWxlbWVudCgpIGNvbnN0OwogICAgIGJvb2wgaXNDYWNoZWFibGUoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBkZGU4MDE3YjFiZGEwZmE4NWRkNjEyMTI5MjU1M2E3YzVmOTQyZjIzLi5iOWZl
MTNmOGJlYzViMzI5MTJmZGQwZDIwNDQ3M2Y5NzdhOTA2MGZkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMDUtMDUgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIG9uIHBzZXVkbyBlbGVtZW50cyBiYWNrZ3JvdW5k
IGdyYWRpZW50cyBjYXVzZXMgaW5maW5pdGUgbGF5b3V0IGFuZCBoaWdoIENQVSBsb2FkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQzMzIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ3ODczODk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3Qgd2hlcmUgYW4gZWxlbWVudCB3aXRoIGEg
YmFja2dyb3VuZC1pbWFnZSBzZXQgdG8gYSBDU1MgZ3JhZGllbnQgdXNpbmcgYSBjdXN0b20gcHJv
cGVydHkgYXMgYSBjb2xvcgorICAgICAgICBzdG9wIGNoYW5nZXMgYW5vdGhlciBwcm9wZXJ0eSB0
YXJnZXRlZCBieSBhIHRyYW5zaXRpb24gdG8gY2hlY2sgdGhhdCB0aGVyZSBpcyBubyBiYWNrZ3Jv
dW5kLWltYWdlIHRyYW5zaXRpb24KKyAgICAgICAgZ2VuZXJhdGVkLiAKKworICAgICAgICAqIHdl
YmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91
bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVydHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVu
dC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5Lmh0bWw6IEFkZGVkLgor
CiAyMDIxLTA1LTA0ICBUeWxlciBXaWxjb2NrICA8dHdpbGNvLm9AcHJvdG9ubWFpbC5jb20+CiAK
ICAgICAgICAgSW1wb3J0IHdlYnN0b3JhZ2UgV1BUcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dy
b3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1i
YWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZGY3MGU2OWJlMjE2YWQyYWIwYTc5ZTE5NjAyNGRjMTJmY2FjOWFiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVt
ZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQW4gZWxlbWVudCB3aXRoIGEg
YmFja2dyb3VuZC1pbWFnZSBzZXQgdG8gYSBDU1MgZ3JhZGllbnQgd2l0aCBhIHN0b3AgY29sb3Ig
c2V0IGJ5IGEgY3VzdG9tIHByb3BlcnR5IGRvZXMgbm90IHlpZWxkIGEgYmFja2dyb3VuZC1pbWFn
ZSB0cmFuc2l0aW9uIHdoZW4gYW5vdGhlciBDU1MgcHJvcGVydHkgY2hhbmdlcy4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdp
dGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgt
Z3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVlNTRkOTE3ZDc0OWE3MTM5NjgwODUzZTFhNjczMjFkMzhmZGMwNjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVs
ZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3Bl
cnR5Lmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8c3R5bGU+CisKKzpyb290IHsKKyAgICAtLWN1c3RvbS1jb2xvcjogYmx1ZTsK
K30KKworLnRhcmdldCB7CisgICAgd2lkdGg6IDEwMHB4OworICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWN1c3RvbS1jb2xvciksIGdyZWVu
KTsKKyAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxczsKK30KKworLnRhcmdldC50cmFuc2l0aW9u
IHsKKyAgICBtYXJnaW4tbGVmdDogMTAwcHg7Cit9CisKKzwvc3R5bGU+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ZXN0ID0+IHsKKyAgICBj
b25zdCB0YXJnZXQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpKTsKKyAgICB0YXJnZXQuY2xhc3NMaXN0LmFkZCgidGFyZ2V0Iik7CisKKyAg
ICBjb25zdCBnZXRBbmltYXRpb24gPSAoKSA9PiB7CisgICAgICAgIGNvbnN0IGFuaW1hdGlvbnMg
PSB0YXJnZXQuZ2V0QW5pbWF0aW9ucygpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGFuaW1hdGlv
bnMubGVuZ3RoLCAxLCAiVGhlcmUgaXMgb25lIGFuaW1hdGlvbiBhcHBsaWVkIHRvIHRoZSB0YXJn
ZXQuIik7CisKKyAgICAgICAgY29uc3QgdHJhbnNpdGlvbiA9IGFuaW1hdGlvbnNbMF07CisgICAg
ICAgIGFzc2VydF90cnVlKHRyYW5zaXRpb24gaW5zdGFuY2VvZiBDU1NUcmFuc2l0aW9uLCAiVGhl
cmUgaXMgb25lIHRyYW5zaXRpb24gYXBwbGllZCB0byB0aGUgdGFyZ2V0LiIpOworCisgICAgICAg
IHJldHVybiB0cmFuc2l0aW9uOworICAgIH0KKworICAgIC8vIFN0YXJ0IHRoZSB0cmFuc2l0aW9u
LgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7CisgICAgdGFy
Z2V0LmNsYXNzTGlzdC5hZGQoInRyYW5zaXRpb24iKTsKKworICAgIGNvbnN0IGFuaW1hdGlvbnMg
PSB0YXJnZXQuZ2V0QW5pbWF0aW9ucygpOworICAgIGFzc2VydF9lcXVhbHMoYW5pbWF0aW9ucy5s
ZW5ndGgsIDEsICJUaGVyZSBpcyBvbmx5IG9uZSBhbmltYXRpb24gYXBwbGllZCB0byB0aGUgdGFy
Z2V0LiIpOworICAgIGFzc2VydF90cnVlKGFuaW1hdGlvbnNbMF0gaW5zdGFuY2VvZiBDU1NUcmFu
c2l0aW9uLCAiVGhlIHNpbmdsZSBhbmltYXRpb24gYXBwbGllZCB0byB0aGUgdGFyZ2V0IGlzIGEg
Q1NTIHRyYW5zaXRpb24uIik7CisgICAgYXNzZXJ0X2VxdWFscyhhbmltYXRpb25zWzBdLnRyYW5z
aXRpb25Qcm9wZXJ0eSwgIm1hcmdpbi1sZWZ0IiwgIlRoZSBzaW5nbGUgQ1NTIHRyYW5zaXRpb24g
YXBwbGllZCB0byB0aGUgdGFyZ2V0IGlzIGZvciB0aGUgbWFyZ2luLWxlZnQgcHJvcGVydHkuIik7
Cit9LCBgQW4gZWxlbWVudCB3aXRoIGEgYmFja2dyb3VuZC1pbWFnZSBzZXQgdG8gYSBDU1MgZ3Jh
ZGllbnQgd2l0aCBhIHN0b3AgY29sb3Igc2V0IGJ5IGEgY3VzdG9tIHByb3BlcnR5IGRvZXMgbm90
IHlpZWxkIGEgYmFja2dyb3VuZC1pbWFnZSB0cmFuc2l0aW9uIHdoZW4gYW5vdGhlciBDU1MgcHJv
cGVydHkgY2hhbmdlcy5gKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427756</attachid>
            <date>2021-05-05 05:02:09 -0700</date>
            <delta_ts>2021-05-05 06:57:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194332-20210505140208.patch</filename>
            <type>text/plain</type>
            <size>7302</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE1MDI1YTg0YjJlMTUw
MjQwZjIxODE0M2IyMGVlNDA1OTQ2NGYxYy4uMTRkZWY0M2I3MTlhMDVhNTczNTlkOTY2NGY1Njlj
MzQ2YWM5ZjgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA1LTA1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBjdXN0b20gcHJv
cGVydGllcyBvbiBwc2V1ZG8gZWxlbWVudHMgYmFja2dyb3VuZCBncmFkaWVudHMgY2F1c2VzIGlu
ZmluaXRlIGxheW91dCBhbmQgaGlnaCBDUFUgbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
Nzg3Mzg5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIHdlIGNvbnNpZGVyIHN0YXJ0aW5nIGEgQ1NTIHRyYW5zaXRpb24gZm9yIGJhY2tncm91
bmQtaW1hZ2UsIGNoZWNrIHRoZSBjYXNlIHdoZXJlIHRoZSBpbWFnZSBpcyBnZW5lcmF0ZWQKKyAg
ICAgICAgYnkgYSBDU1MgZ3JhZGllbnQgYW5kIGNoZWNrIGVxdWFsaXR5IG9mIHRoZSBDU1NHcmFk
aWVudFZhbHVlIGluc3RlYWQgb2YganVzdCBwb2ludGVyIGVxdWFsaXR5LgorCisgICAgICAgIFRl
c3Q6IHdlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJh
Y2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVydHkuaHRtbAorCisgICAgICAgICog
YW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5oOgorCiAyMDIxLTA1LTA0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0dQVVBdIEltcGxlbWVudCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3Rl
OjpidWZmZXJGdWxsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwCmluZGV4IDdkMmNiOTE3NGNiMjg1NzhkMGMwZGY2MDc1OGRlMDY5ODVi
NzMzYTcuLmJmOTI3N2VhMzQyMDBmNjY0NzMzZTE3MTljYWFhMDUyMzY3YTgyZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgog
I2luY2x1ZGUgIkNTU0Nyb3NzZmFkZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRmlsdGVySW1hZ2VW
YWx1ZS5oIgorI2luY2x1ZGUgIkNTU0dyYWRpZW50VmFsdWUuaCIKICNpbmNsdWRlICJDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTSW1hZ2VWYWx1ZS5oIgogI2luY2x1ZGUg
IkNTU1ByaW1pdGl2ZVZhbHVlLmgiCkBAIC0xNjQ0LDcgKzE2NDUsMjEgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAoIWEgfHwgIWIpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKHZh
bHVlKGEpLCB2YWx1ZShiKSk7CisKKyAgICAgICAgYXV0byogc3R5bGVJbWFnZUEgPSB2YWx1ZShh
KTsKKyAgICAgICAgYXV0byogc3R5bGVJbWFnZUIgPSB2YWx1ZShiKTsKKworICAgICAgICBpZiAo
aXM8U3R5bGVHZW5lcmF0ZWRJbWFnZT4oc3R5bGVJbWFnZUEpICYmIGlzPFN0eWxlR2VuZXJhdGVk
SW1hZ2U+KHN0eWxlSW1hZ2VCKSkgeworICAgICAgICAgICAgYXV0byYgc3R5bGVHZW5lcmF0ZWRJ
bWFnZUEgPSBkb3duY2FzdDxTdHlsZUdlbmVyYXRlZEltYWdlPigqc3R5bGVJbWFnZUEpOworICAg
ICAgICAgICAgYXV0byYgc3R5bGVHZW5lcmF0ZWRJbWFnZUIgPSBkb3duY2FzdDxTdHlsZUdlbmVy
YXRlZEltYWdlPigqc3R5bGVJbWFnZUIpOworICAgICAgICAgICAgaWYgKGlzPENTU0dyYWRpZW50
VmFsdWU+KHN0eWxlR2VuZXJhdGVkSW1hZ2VBLmltYWdlVmFsdWUoKSkgJiYgaXM8Q1NTR3JhZGll
bnRWYWx1ZT4oc3R5bGVHZW5lcmF0ZWRJbWFnZUIuaW1hZ2VWYWx1ZSgpKSkgeworICAgICAgICAg
ICAgICAgIGF1dG8mIGNzc0dyYWRpZW50VmFsdWVBID0gZG93bmNhc3Q8Q1NTR3JhZGllbnRWYWx1
ZT4oc3R5bGVHZW5lcmF0ZWRJbWFnZUEuaW1hZ2VWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBh
dXRvJiBjc3NHcmFkaWVudFZhbHVlQiA9IGRvd25jYXN0PENTU0dyYWRpZW50VmFsdWU+KHN0eWxl
R2VuZXJhdGVkSW1hZ2VCLmltYWdlVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNz
c0dyYWRpZW50VmFsdWVBLmVxdWFscyhjc3NHcmFkaWVudFZhbHVlQik7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShzdHls
ZUltYWdlQSwgc3R5bGVJbWFnZUIpOwogICAgIH0KIAogICAgIGJvb2wgY2FuSW50ZXJwb2xhdGUo
Y29uc3QgRmlsbExheWVyKiBmcm9tLCBjb25zdCBGaWxsTGF5ZXIqIHRvKSBjb25zdCBmaW5hbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmgKaW5kZXggNDA2OTc5ODQ2N2RlOGE4MmVk
MzQ1MmY0MmRlNjRjMDMyY2FlMWEzMy4uMjg3NTk4MTQ4ODA3Y2QyYjYzNjBhMjc5MWM2ODhiMDg3
ZGUxMTNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCkBAIC04MCw2ICs4
MCw4IEBAIHB1YmxpYzoKIAogICAgIFJlZjxDU1NHcmFkaWVudFZhbHVlPiBncmFkaWVudFdpdGhT
dHlsZXNSZXNvbHZlZChTdHlsZTo6QnVpbGRlclN0YXRlJik7CiAKKyAgICBib29sIGVxdWFscyhj
b25zdCBDU1NHcmFkaWVudFZhbHVlJikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBDU1NHcmFk
aWVudFZhbHVlKENsYXNzVHlwZSBjbGFzc1R5cGUsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdCwg
Q1NTR3JhZGllbnRUeXBlIGdyYWRpZW50VHlwZSkKICAgICAgICAgOiBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlKGNsYXNzVHlwZSkKQEAgLTExMCw4ICsxMTIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYXV0
byYgc3RvcHMoKSBjb25zdCB7IHJldHVybiBtX3N0b3BzOyB9CiAgICAgYm9vbCBpc1JlcGVhdGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwZWF0aW5nOyB9CiAKLSAgICBib29sIGVxdWFscyhjb25z
dCBDU1NHcmFkaWVudFZhbHVlJikgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgYm9vbCBoYXNDb2xv
ckRlcml2ZWRGcm9tRWxlbWVudCgpIGNvbnN0OwogICAgIGJvb2wgaXNDYWNoZWFibGUoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBkZGU4MDE3YjFiZGEwZmE4NWRkNjEyMTI5MjU1M2E3YzVmOTQyZjIzLi5iOWZl
MTNmOGJlYzViMzI5MTJmZGQwZDIwNDQ3M2Y5NzdhOTA2MGZkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMDUtMDUgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIG9uIHBzZXVkbyBlbGVtZW50cyBiYWNrZ3JvdW5k
IGdyYWRpZW50cyBjYXVzZXMgaW5maW5pdGUgbGF5b3V0IGFuZCBoaWdoIENQVSBsb2FkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQzMzIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ3ODczODk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3Qgd2hlcmUgYW4gZWxlbWVudCB3aXRoIGEg
YmFja2dyb3VuZC1pbWFnZSBzZXQgdG8gYSBDU1MgZ3JhZGllbnQgdXNpbmcgYSBjdXN0b20gcHJv
cGVydHkgYXMgYSBjb2xvcgorICAgICAgICBzdG9wIGNoYW5nZXMgYW5vdGhlciBwcm9wZXJ0eSB0
YXJnZXRlZCBieSBhIHRyYW5zaXRpb24gdG8gY2hlY2sgdGhhdCB0aGVyZSBpcyBubyBiYWNrZ3Jv
dW5kLWltYWdlIHRyYW5zaXRpb24KKyAgICAgICAgZ2VuZXJhdGVkLiAKKworICAgICAgICAqIHdl
YmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91
bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVydHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVu
dC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5Lmh0bWw6IEFkZGVkLgor
CiAyMDIxLTA1LTA0ICBUeWxlciBXaWxjb2NrICA8dHdpbGNvLm9AcHJvdG9ubWFpbC5jb20+CiAK
ICAgICAgICAgSW1wb3J0IHdlYnN0b3JhZ2UgV1BUcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dy
b3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1i
YWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZGY3MGU2OWJlMjE2YWQyYWIwYTc5ZTE5NjAyNGRjMTJmY2FjOWFiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVt
ZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQW4gZWxlbWVudCB3aXRoIGEg
YmFja2dyb3VuZC1pbWFnZSBzZXQgdG8gYSBDU1MgZ3JhZGllbnQgd2l0aCBhIHN0b3AgY29sb3Ig
c2V0IGJ5IGEgY3VzdG9tIHByb3BlcnR5IGRvZXMgbm90IHlpZWxkIGEgYmFja2dyb3VuZC1pbWFn
ZSB0cmFuc2l0aW9uIHdoZW4gYW5vdGhlciBDU1MgcHJvcGVydHkgY2hhbmdlcy4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdp
dGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgt
Z3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM0MjllOWVhZDNmM2U2NjUxN2RiM2MxZDQ1NDg1OTU4NzExOWM2N2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVs
ZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3Bl
cnR5Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8c3R5bGU+CisKKzpyb290IHsKKyAgICAtLWN1c3RvbS1jb2xvcjogYmx1ZTsK
K30KKworLnRhcmdldCB7CisgICAgd2lkdGg6IDEwMHB4OworICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWN1c3RvbS1jb2xvciksIGdyZWVu
KTsKKyAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxczsKK30KKworLnRhcmdldC50cmFuc2l0aW9u
IHsKKyAgICBtYXJnaW4tbGVmdDogMTAwcHg7Cit9CisKKzwvc3R5bGU+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ZXN0ID0+IHsKKyAgICBj
b25zdCB0YXJnZXQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpKTsKKyAgICB0YXJnZXQuY2xhc3NMaXN0LmFkZCgidGFyZ2V0Iik7CisKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOworICAgIHRhcmdldC5j
bGFzc0xpc3QuYWRkKCJ0cmFuc2l0aW9uIik7CisKKyAgICBjb25zdCBhbmltYXRpb25zID0gdGFy
Z2V0LmdldEFuaW1hdGlvbnMoKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFuaW1hdGlvbnMubGVuZ3Ro
LCAxLCAiVGhlcmUgaXMgb25seSBvbmUgYW5pbWF0aW9uIGFwcGxpZWQgdG8gdGhlIHRhcmdldC4i
KTsKKyAgICBhc3NlcnRfdHJ1ZShhbmltYXRpb25zWzBdIGluc3RhbmNlb2YgQ1NTVHJhbnNpdGlv
biwgIlRoZSBzaW5nbGUgYW5pbWF0aW9uIGFwcGxpZWQgdG8gdGhlIHRhcmdldCBpcyBhIENTUyB0
cmFuc2l0aW9uLiIpOworICAgIGFzc2VydF9lcXVhbHMoYW5pbWF0aW9uc1swXS50cmFuc2l0aW9u
UHJvcGVydHksICJtYXJnaW4tbGVmdCIsICJUaGUgc2luZ2xlIENTUyB0cmFuc2l0aW9uIGFwcGxp
ZWQgdG8gdGhlIHRhcmdldCBpcyBmb3IgdGhlIG1hcmdpbi1sZWZ0IHByb3BlcnR5LiIpOworfSwg
YEFuIGVsZW1lbnQgd2l0aCBhIGJhY2tncm91bmQtaW1hZ2Ugc2V0IHRvIGEgQ1NTIGdyYWRpZW50
IHdpdGggYSBzdG9wIGNvbG9yIHNldCBieSBhIGN1c3RvbSBwcm9wZXJ0eSBkb2VzIG5vdCB5aWVs
ZCBhIGJhY2tncm91bmQtaW1hZ2UgdHJhbnNpdGlvbiB3aGVuIGFub3RoZXIgQ1NTIHByb3BlcnR5
IGNoYW5nZXMuYCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427763</attachid>
            <date>2021-05-05 06:57:03 -0700</date>
            <delta_ts>2021-05-06 08:46:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194332-20210505155702.patch</filename>
            <type>text/plain</type>
            <size>9438</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE1MDI1YTg0YjJlMTUw
MjQwZjIxODE0M2IyMGVlNDA1OTQ2NGYxYy4uMjdjY2U0ZjNiMjA2N2RmNzM2YjZjNjdmMWEzNmQ2
ZGJjMjYxZGU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA1LTA1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBjdXN0b20gcHJv
cGVydGllcyBvbiBwc2V1ZG8gZWxlbWVudHMgYmFja2dyb3VuZCBncmFkaWVudHMgY2F1c2VzIGlu
ZmluaXRlIGxheW91dCBhbmQgaGlnaCBDUFUgbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
Nzg3Mzg5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIGEgYmFja2dyb3VuZC1pbWFnZSB1c2VzIGEgQ1NTIGN1c3RvbSBwcm9wZXJ0eSB0aGUg
cmVzdWx0aW5nIFN0eWxlR2VuZXJhdGVkSW1hZ2UgbWF5IG5vdCBiZSB0aGUgc2FtZQorICAgICAg
ICBvYmplY3QgYXMgZHVyaW5nIHByaW9yIHN0eWxlIHVwZGF0ZXMuIFRoaXMgY2F1c2VkIHRyYW5z
aXRpb25zIHRvIGJlIHRyaWdnZXJlZCBmb3IgYWxsIHN0eWxlIHVwZGF0ZXMgZm9yCisgICAgICAg
IHN1Y2ggYmFja2dyb3VuZC1pbWFnZSB2YWx1ZXMuIFRvIGZpeCB0aGlzLCB3ZSBleHBhbmQgdGhl
ID09IG9wZXJhdG9yIGZvciBTdHlsZUdlbmVyYXRlZEltYWdlIHRvIGFjdHVhbGx5CisgICAgICAg
IGNhbGwgaW50byBDU1NHcmFkaWVudFZhbHVlOjplcXVhbHMoKSB0byBjaGVjayB3aGV0aGVyIHRo
ZSBwYXJhbXRlcnMgZ2VuZXJhdGluZyB0aGUgaW1hZ2UgY2hhbmdlZC4KKworICAgICAgICBUaGlz
IGNoYW5nZSBpbiBiZWhhdmlvciByZXF1aXJlZCBhIGNoYW5nZSBpbiBGaWxsTGF5ZXI6OmltYWdl
c0lkZW50aWNhbCgpIHdoaWNoIGlzIHVuaXF1ZWx5IHVzZWQgYnkKKyAgICAgICAgUmVuZGVyRWxl
bWVudDo6dXBkYXRlRmlsbEltYWdlcygpIHRvIGRldGVybWluZSB3aGV0aGVyIGl0IG5lZWRzIHRv
IHJlZ2lzdGVyIGl0c2VsZiBhcyBhIGNsaWVudCBvbiB0aGUKKyAgICAgICAgdmFyaW91cyBTdHls
ZUltYWdlIG9iamVjdHMgb2YgdGhlIHR3byBGaWxsSW1hZ2UgcGFyYW1ldGVycy4gSG93ZXZlciB0
aGUgdXBkYXRlZCA9PSBvcGVyYXRvciBmb3IKKyAgICAgICAgU3R5bGVHZW5lcmF0ZWRJbWFnZSBk
b2Vzbid0IGNoZWNrIHdoYXQgY2xpZW50cyBtYXkgYmUgcmVnaXN0ZXJlZCwgYW5kIHNpbmNlIHRo
aXMgaXMgd2hhdCBtYXR0ZXJzCisgICAgICAgIGluIHRoaXMgaW5zdGFuY2UsIHdlIGNoYW5nZWQg
RmlsbExheWVyOjppbWFnZXNJZGVudGljYWwoKSB0byBjaGVjayB0aGF0IHRoZSBTdHlsZUltYWdl
IG9iamVjdHMgYXJlCisgICAgICAgIG5vdCBqdXN0IGlkZW50aWNhbCBpbiBjb250ZW50IGJ1dCB0
aGUgc2FtZSBwb2ludGVycy4KKworICAgICAgICBUZXN0OiB3ZWJhbmltYXRpb25zL2Nzcy10cmFu
c2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3Vz
dG9tLXByb3BlcnR5Lmh0bWwKKworICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxsTGF5ZXI6OmltYWdlc0lkZW50aWNhbCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHZW5lcmF0
ZWRJbWFnZTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlR2VuZXJhdGVkSW1hZ2UuaDoKKwogMjAyMS0wNS0wNCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZA
YXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBJbXBsZW1lbnQgU291cmNlQnVmZmVyUHJpdmF0
ZVJlbW90ZTo6YnVmZmVyRnVsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JhZGllbnRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaApp
bmRleCA0MDY5Nzk4NDY3ZGU4YTgyZWQzNDUyZjQyZGU2NGMwMzJjYWUxYTMzLi4yODc1OTgxNDg4
MDdjZDJiNjM2MGEyNzkxYzY4OGIwODdkZTExM2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFk
aWVudFZhbHVlLmgKQEAgLTgwLDYgKzgwLDggQEAgcHVibGljOgogCiAgICAgUmVmPENTU0dyYWRp
ZW50VmFsdWU+IGdyYWRpZW50V2l0aFN0eWxlc1Jlc29sdmVkKFN0eWxlOjpCdWlsZGVyU3RhdGUm
KTsKIAorICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0dyYWRpZW50VmFsdWUmKSBjb25zdDsKKwog
cHJvdGVjdGVkOgogICAgIENTU0dyYWRpZW50VmFsdWUoQ2xhc3NUeXBlIGNsYXNzVHlwZSwgQ1NT
R3JhZGllbnRSZXBlYXQgcmVwZWF0LCBDU1NHcmFkaWVudFR5cGUgZ3JhZGllbnRUeXBlKQogICAg
ICAgICA6IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUoY2xhc3NUeXBlKQpAQCAtMTEwLDggKzExMiw2
IEBAIHByb3RlY3RlZDoKICAgICBhdXRvJiBzdG9wcygpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcHM7
IH0KICAgICBib29sIGlzUmVwZWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9yZXBlYXRpbmc7IH0K
IAotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0dyYWRpZW50VmFsdWUmKSBjb25zdDsKLQogcHJp
dmF0ZToKICAgICBib29sIGhhc0NvbG9yRGVyaXZlZEZyb21FbGVtZW50KCkgY29uc3Q7CiAgICAg
Ym9vbCBpc0NhY2hlYWJsZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvRmlsbExheWVyLmNwcAppbmRleCA0N2FlMWYyYzMwMmEyMzZjMDFhNmRjNDJmNDJjMGVlZTc1
NmU4NzQ3Li42MmE0NTQ3ODk4YTM0YWU0YmY1NDRhMTE0NmE2OTMxMzAyZGQwNDlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcApAQCAtNDAyLDcgKzQw
Miw3IEBAIGJvb2wgRmlsbExheWVyOjppbWFnZXNJZGVudGljYWwoY29uc3QgRmlsbExheWVyKiBs
YXllcjEsIGNvbnN0IEZpbGxMYXllciogbGF5ZXIyCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgZm9yICg7IGxheWVyMSAmJiBsYXllcjI7IGxheWVyMSA9IGxheWVyMS0+bmV4dCgpLCBsYXll
cjIgPSBsYXllcjItPm5leHQoKSkgewotICAgICAgICBpZiAoIWFyZVBvaW50aW5nVG9FcXVhbERh
dGEobGF5ZXIxLT5pbWFnZSgpLCBsYXllcjItPmltYWdlKCkpKQorICAgICAgICBpZiAobGF5ZXIx
LT5pbWFnZSgpICE9IGxheWVyMi0+aW1hZ2UoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUdlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUdlbmVyYXRlZEltYWdlLmNwcAppbmRleCA3ZDEyMTVmMDE4NWU3NmJjNjVlZjJmMjM3N2RmMjFl
YTcxMTQ2YzM4Li42ZDExN2ZjYmYwMjQ5ZTgwZjRjNzJjYTRmOGEzOWRiOWYxZDgyOWUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVk
SW1hZ2UuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiU3R5bGVHZW5lcmF0ZWRJbWFnZS5oIgogCisjaW5jbHVkZSAiQ1NTR3JhZGllbnRWYWx1ZS5o
IgogI2luY2x1ZGUgIkNTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAtMzcsNiArMzgsMTkgQEAg
U3R5bGVHZW5lcmF0ZWRJbWFnZTo6U3R5bGVHZW5lcmF0ZWRJbWFnZShSZWY8Q1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZT4mJiB2YWx1ZSkKICAgICBtX2lzR2VuZXJhdGVkSW1hZ2UgPSB0cnVlOwogfQog
Citib29sIFN0eWxlR2VuZXJhdGVkSW1hZ2U6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVJbWFnZSYg
b3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKGlzPFN0eWxlR2VuZXJhdGVkSW1hZ2U+KG90aGVyKSkg
eworICAgICAgICBhdXRvJiBvdGhlclN0eWxlR2VuZXJhdGVkSW1hZ2UgPSBkb3duY2FzdDxTdHls
ZUdlbmVyYXRlZEltYWdlPihvdGhlcik7CisgICAgICAgIGlmIChpczxDU1NHcmFkaWVudFZhbHVl
PihtX2ltYWdlR2VuZXJhdG9yVmFsdWUpICYmIGlzPENTU0dyYWRpZW50VmFsdWU+KG90aGVyU3R5
bGVHZW5lcmF0ZWRJbWFnZS5tX2ltYWdlR2VuZXJhdG9yVmFsdWUpKSB7CisgICAgICAgICAgICBh
dXRvJiBjc3NHcmFkaWVudFZhbHVlQSA9IGRvd25jYXN0PENTU0dyYWRpZW50VmFsdWU+KG1faW1h
Z2VHZW5lcmF0b3JWYWx1ZS5nZXQoKSk7CisgICAgICAgICAgICBhdXRvJiBjc3NHcmFkaWVudFZh
bHVlQiA9IGRvd25jYXN0PENTU0dyYWRpZW50VmFsdWU+KG90aGVyU3R5bGVHZW5lcmF0ZWRJbWFn
ZS5tX2ltYWdlR2VuZXJhdG9yVmFsdWUuZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJuIGNzc0dy
YWRpZW50VmFsdWVBLmVxdWFscyhjc3NHcmFkaWVudFZhbHVlQik7CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuIGRhdGEoKSA9PSBvdGhlci5kYXRhKCk7Cit9CisKIFJlZjxDU1NWYWx1ZT4g
U3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3NzVmFsdWUoKSBjb25zdAogewogICAgIHJldHVybiBtX2lt
YWdlR2VuZXJhdG9yVmFsdWUuY29weVJlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgKaW5kZXggNGUxZDAyZjBhZTY0NmFk
YTNjZTQxYjA3NmU4NzY0Zjc0MzAxYzMwYS4uMzEyNGNjZGQyMWE1MjdmNzlmN2U0YzY5YTc3NWJm
OWExMGYwYjljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVHZW5lcmF0ZWRJbWFnZS5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICBDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlJiBpbWFnZVZhbHVlKCkgeyByZXR1cm4gbV9pbWFnZUdlbmVyYXRv
clZhbHVlOyB9CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0eWxlSW1h
Z2UmIG90aGVyKSBjb25zdCBmaW5hbCB7IHJldHVybiBkYXRhKCkgPT0gb3RoZXIuZGF0YSgpOyB9
CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0eWxlSW1hZ2UmIG90aGVyKSBjb25zdCBmaW5h
bDsKIAogICAgIFdyYXBwZWRJbWFnZVB0ciBkYXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9p
bWFnZUdlbmVyYXRvclZhbHVlLnB0cigpOyB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZGU4MDE3YjFiZGEwZmE4NWRk
NjEyMTI5MjU1M2E3YzVmOTQyZjIzLi5iOWZlMTNmOGJlYzViMzI5MTJmZGQwZDIwNDQ3M2Y5Nzdh
OTA2MGZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDUtMDUgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NTIGN1c3RvbSBwcm9wZXJ0aWVzIG9u
IHBzZXVkbyBlbGVtZW50cyBiYWNrZ3JvdW5kIGdyYWRpZW50cyBjYXVzZXMgaW5maW5pdGUgbGF5
b3V0IGFuZCBoaWdoIENQVSBsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTQzMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3ODczODk1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRl
c3Qgd2hlcmUgYW4gZWxlbWVudCB3aXRoIGEgYmFja2dyb3VuZC1pbWFnZSBzZXQgdG8gYSBDU1Mg
Z3JhZGllbnQgdXNpbmcgYSBjdXN0b20gcHJvcGVydHkgYXMgYSBjb2xvcgorICAgICAgICBzdG9w
IGNoYW5nZXMgYW5vdGhlciBwcm9wZXJ0eSB0YXJnZXRlZCBieSBhIHRyYW5zaXRpb24gdG8gY2hl
Y2sgdGhhdCB0aGVyZSBpcyBubyBiYWNrZ3JvdW5kLWltYWdlIHRyYW5zaXRpb24KKyAgICAgICAg
Z2VuZXJhdGVkLiAKKworICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxl
bWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVy
dHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL2Nzcy10cmFu
c2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3Vz
dG9tLXByb3BlcnR5Lmh0bWw6IEFkZGVkLgorCiAyMDIxLTA1LTA0ICBUeWxlciBXaWxjb2NrICA8
dHdpbGNvLm9AcHJvdG9ubWFpbC5jb20+CiAKICAgICAgICAgSW1wb3J0IHdlYnN0b3JhZ2UgV1BU
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1l
bGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9w
ZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0
aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9t
LXByb3BlcnR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGY3MGU2OWJlMjE2YWQyYWIwYTc5
ZTE5NjAyNGRjMTJmY2FjOWFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5p
bWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1p
bWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgQW4gZWxlbWVudCB3aXRoIGEgYmFja2dyb3VuZC1pbWFnZSBzZXQgdG8gYSBDU1Mg
Z3JhZGllbnQgd2l0aCBhIHN0b3AgY29sb3Igc2V0IGJ5IGEgY3VzdG9tIHByb3BlcnR5IGRvZXMg
bm90IHlpZWxkIGEgYmFja2dyb3VuZC1pbWFnZSB0cmFuc2l0aW9uIHdoZW4gYW5vdGhlciBDU1Mg
cHJvcGVydHkgY2hhbmdlcy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9u
cy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1h
bmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9j
c3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQt
Y3NzLWN1c3RvbS1wcm9wZXJ0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MjllOWVhZDNmM2U2NjUxN2Ri
M2MxZDQ1NDg1OTU4NzExOWM2N2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
bmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5k
LWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c3R5bGU+CisKKzpyb290IHsK
KyAgICAtLWN1c3RvbS1jb2xvcjogYmx1ZTsKK30KKworLnRhcmdldCB7CisgICAgd2lkdGg6IDEw
MHB4OworICAgIGhlaWdodDogMTAwcHg7CisgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50
KHZhcigtLWN1c3RvbS1jb2xvciksIGdyZWVuKTsKKyAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAx
czsKK30KKworLnRhcmdldC50cmFuc2l0aW9uIHsKKyAgICBtYXJnaW4tbGVmdDogMTAwcHg7Cit9
CisKKzwvc3R5bGU+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3Byb21pc2Vf
dGVzdChhc3luYyB0ZXN0ID0+IHsKKyAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICB0YXJnZXQuY2xh
c3NMaXN0LmFkZCgidGFyZ2V0Iik7CisKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5p
bWF0aW9uRnJhbWUpOworICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCJ0cmFuc2l0aW9uIik7CisK
KyAgICBjb25zdCBhbmltYXRpb25zID0gdGFyZ2V0LmdldEFuaW1hdGlvbnMoKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGFuaW1hdGlvbnMubGVuZ3RoLCAxLCAiVGhlcmUgaXMgb25seSBvbmUgYW5pbWF0
aW9uIGFwcGxpZWQgdG8gdGhlIHRhcmdldC4iKTsKKyAgICBhc3NlcnRfdHJ1ZShhbmltYXRpb25z
WzBdIGluc3RhbmNlb2YgQ1NTVHJhbnNpdGlvbiwgIlRoZSBzaW5nbGUgYW5pbWF0aW9uIGFwcGxp
ZWQgdG8gdGhlIHRhcmdldCBpcyBhIENTUyB0cmFuc2l0aW9uLiIpOworICAgIGFzc2VydF9lcXVh
bHMoYW5pbWF0aW9uc1swXS50cmFuc2l0aW9uUHJvcGVydHksICJtYXJnaW4tbGVmdCIsICJUaGUg
c2luZ2xlIENTUyB0cmFuc2l0aW9uIGFwcGxpZWQgdG8gdGhlIHRhcmdldCBpcyBmb3IgdGhlIG1h
cmdpbi1sZWZ0IHByb3BlcnR5LiIpOworfSwgYEFuIGVsZW1lbnQgd2l0aCBhIGJhY2tncm91bmQt
aW1hZ2Ugc2V0IHRvIGEgQ1NTIGdyYWRpZW50IHdpdGggYSBzdG9wIGNvbG9yIHNldCBieSBhIGN1
c3RvbSBwcm9wZXJ0eSBkb2VzIG5vdCB5aWVsZCBhIGJhY2tncm91bmQtaW1hZ2UgdHJhbnNpdGlv
biB3aGVuIGFub3RoZXIgQ1NTIHByb3BlcnR5IGNoYW5nZXMuYCk7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="448471"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="448480"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427888</attachid>
            <date>2021-05-06 08:46:51 -0700</date>
            <delta_ts>2021-05-06 09:51:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194332.patch</filename>
            <type>text/plain</type>
            <size>29357</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMDg2YjRiMjUxMWYuLjkxZWYwN2E1Njc0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDIxLTA1LTA2ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAg
ICAgIENTUyBjdXN0b20gcHJvcGVydGllcyBvbiBwc2V1ZG8gZWxlbWVudHMgYmFja2dyb3VuZCBn
cmFkaWVudHMgY2F1c2VzIGluZmluaXRlIGxheW91dCBhbmQgaGlnaCBDUFUgbG9hZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzMyCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80Nzg3Mzg5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IHdoZXJlIGFuIGVsZW1lbnQgd2l0aCBhIGJh
Y2tncm91bmQtaW1hZ2Ugc2V0IHRvIGEgQ1NTIGdyYWRpZW50IHVzaW5nIGEgY3VzdG9tIHByb3Bl
cnR5IGFzIGEgY29sb3IKKyAgICAgICAgc3RvcCBjaGFuZ2VzIGFub3RoZXIgcHJvcGVydHkgdGFy
Z2V0ZWQgYnkgYSB0cmFuc2l0aW9uIHRvIGNoZWNrIHRoYXQgdGhlcmUgaXMgbm8gYmFja2dyb3Vu
ZC1pbWFnZSB0cmFuc2l0aW9uCisgICAgICAgIGdlbmVyYXRlZC4gCisKKyAgICAgICAgKiB3ZWJh
bmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5k
LWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQt
YmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS5odG1sOiBBZGRlZC4KKwog
MjAyMS0wNS0wNSAgUm9iZXJ0IEplbm5lciAgPGplbm5lckBhcHBsZS5jb20+CiAKICAgICAgICAg
WyBCaWdTdXIgd2syIGFybTY0IF0gaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1zaXplcy1uZXR3b3JrLmh0bWwgaXMgYSBmbGFrZXkgdGV4dCBmYWlsdXJlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1n
cmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxlbWVudC13
aXRoLWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVydHktZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWRmNzBl
NjliZTIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3Mt
dHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3Nz
LWN1c3RvbS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQW4g
ZWxlbWVudCB3aXRoIGEgYmFja2dyb3VuZC1pbWFnZSBzZXQgdG8gYSBDU1MgZ3JhZGllbnQgd2l0
aCBhIHN0b3AgY29sb3Igc2V0IGJ5IGEgY3VzdG9tIHByb3BlcnR5IGRvZXMgbm90IHlpZWxkIGEg
YmFja2dyb3VuZC1pbWFnZSB0cmFuc2l0aW9uIHdoZW4gYW5vdGhlciBDU1MgcHJvcGVydHkgY2hh
bmdlcy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNp
dGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3Rv
bS1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlv
bi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1w
cm9wZXJ0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzQy
OWU5ZWFkM2YzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9j
c3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQt
Y3NzLWN1c3RvbS1wcm9wZXJ0eS5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHN0eWxlPgorCis6cm9vdCB7CisgICAgLS1jdXN0
b20tY29sb3I6IGJsdWU7Cit9CisKKy50YXJnZXQgeworICAgIHdpZHRoOiAxMDBweDsKKyAgICBo
ZWlnaHQ6IDEwMHB4OworICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1jdXN0
b20tY29sb3IpLCBncmVlbik7CisgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7Cit9CisKKy50
YXJnZXQudHJhbnNpdGlvbiB7CisgICAgbWFyZ2luLWxlZnQ6IDEwMHB4OworfQorCis8L3N0eWxl
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
dGVzdCA9PiB7CisgICAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgdGFyZ2V0LmNsYXNzTGlzdC5hZGQo
InRhcmdldCIpOworCisgICAgYXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1l
KTsKKyAgICB0YXJnZXQuY2xhc3NMaXN0LmFkZCgidHJhbnNpdGlvbiIpOworCisgICAgY29uc3Qg
YW5pbWF0aW9ucyA9IHRhcmdldC5nZXRBbmltYXRpb25zKCk7CisgICAgYXNzZXJ0X2VxdWFscyhh
bmltYXRpb25zLmxlbmd0aCwgMSwgIlRoZXJlIGlzIG9ubHkgb25lIGFuaW1hdGlvbiBhcHBsaWVk
IHRvIHRoZSB0YXJnZXQuIik7CisgICAgYXNzZXJ0X3RydWUoYW5pbWF0aW9uc1swXSBpbnN0YW5j
ZW9mIENTU1RyYW5zaXRpb24sICJUaGUgc2luZ2xlIGFuaW1hdGlvbiBhcHBsaWVkIHRvIHRoZSB0
YXJnZXQgaXMgYSBDU1MgdHJhbnNpdGlvbi4iKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFuaW1hdGlv
bnNbMF0udHJhbnNpdGlvblByb3BlcnR5LCAibWFyZ2luLWxlZnQiLCAiVGhlIHNpbmdsZSBDU1Mg
dHJhbnNpdGlvbiBhcHBsaWVkIHRvIHRoZSB0YXJnZXQgaXMgZm9yIHRoZSBtYXJnaW4tbGVmdCBw
cm9wZXJ0eS4iKTsKK30sIGBBbiBlbGVtZW50IHdpdGggYSBiYWNrZ3JvdW5kLWltYWdlIHNldCB0
byBhIENTUyBncmFkaWVudCB3aXRoIGEgc3RvcCBjb2xvciBzZXQgYnkgYSBjdXN0b20gcHJvcGVy
dHkgZG9lcyBub3QgeWllbGQgYSBiYWNrZ3JvdW5kLWltYWdlIHRyYW5zaXRpb24gd2hlbiBhbm90
aGVyIENTUyBwcm9wZXJ0eSBjaGFuZ2VzLmApOworCis8L3NjcmlwdD4KKzwvYm9keT4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQwZmQzYjdlMDVjLi43MzQ2ZDI3
YjY0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMS0wNS0wNiAgQW50b2luZSBR
dWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBDU1MgY3VzdG9tIHByb3BlcnRp
ZXMgb24gcHNldWRvIGVsZW1lbnRzIGJhY2tncm91bmQgZ3JhZGllbnRzIGNhdXNlcyBpbmZpbml0
ZSBsYXlvdXQgYW5kIGhpZ2ggQ1BVIGxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NDMzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc4NzM4
OTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hl
biBhIGJhY2tncm91bmQtaW1hZ2UgdXNlcyBhIENTUyBjdXN0b20gcHJvcGVydHkgdGhlIHJlc3Vs
dGluZyBTdHlsZUdlbmVyYXRlZEltYWdlIG1heSBub3QgYmUgdGhlIHNhbWUKKyAgICAgICAgb2Jq
ZWN0IGFzIGR1cmluZyBwcmlvciBzdHlsZSB1cGRhdGVzLiBUaGlzIGNhdXNlZCB0cmFuc2l0aW9u
cyB0byBiZSB0cmlnZ2VyZWQgZm9yIGFsbCBzdHlsZSB1cGRhdGVzIGZvcgorICAgICAgICBzdWNo
IGJhY2tncm91bmQtaW1hZ2UgdmFsdWVzLiBUbyBmaXggdGhpcywgd2UgbW9kaWZ5IHRoZSA9PSBv
cGVyYXRvciBmb3IgU3R5bGVHZW5lcmF0ZWRJbWFnZSB0byB1c2UKKyAgICAgICAgYXJlUG9pbnRp
bmdUb0VxdWFsRGF0YSgpIHdpdGggdGhlIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUgbWVtYmVyIGFu
ZCBhZGRlZCBhbiA9PSBvcGVyYXRvciBmb3IgdGhlCisgICAgICAgIENTU0ltYWdlR2VuZXJhdG9y
VmFsdWUgY2xhc3MgdG8gY2FsbCBpbnRvIHRoZSBleGlzdGluZyBlcXVhbHMoKSBtZXRob2RzLiBU
aGVzZSBlcXVhbHMoKSBtZXRob2RzCisgICAgICAgIGFyZSBub3cgb3ZlcnJpZGVzIG9mIHRoZSB2
aXJ0dWFsIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUgbWV0aG9kLgorCisgICAgICAgIFRoaXMgY2hh
bmdlIGluIGJlaGF2aW9yIHJlcXVpcmVkIGEgY2hhbmdlIGluIFJlbmRlckVsZW1lbnQ6OnVwZGF0
ZUZpbGxJbWFnZXMoKSB0byBub3Qgb25seSBjaGVjayB3aGV0aGVyCisgICAgICAgIHRoZSBpbWFn
ZXMgd2VyZSBpZGVudGljYWwsIGJ1dCB0byBhbHNvIGNoZWNrIHdoZXRoZXIgdGhlIHJlbmRlcmVy
IHdhcyByZWdpc3RlcmVkIGFzIGEgY2xpZW50IG9uIHRoZSBuZXcKKyAgICAgICAgaW1hZ2VzLiBU
byBkbyB0aGlzLCB3ZSBhZGQgYSBuZXcgdmlydHVhbCBoYXNDbGllbnQoKSBtZXRob2Qgb24gU3R5
bGVJbWFnZS4KKworICAgICAgICBUZXN0OiB3ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVs
ZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3Bl
cnR5Lmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDYW52YXNWYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NDYW52YXNWYWx1ZTo6ZXF1YWxzIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
Q2FudmFzVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQ3Jvc3NmYWRlVmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAg
ICogY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU0ZpbHRlckltYWdl
VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVySW1hZ2VWYWx1ZTo6ZXF1YWxz
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oOgorICAgICAgICAq
IGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0dyYWRpZW50
VmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NMaW5lYXJHcmFkaWVu
dFZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUmFkaWFsR3JhZGll
bnRWYWx1ZTo6ZXF1YWxzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbmljR3JhZGll
bnRWYWx1ZTo6ZXF1YWxzIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTR3JhZGllbnRWYWx1ZS5o
OgorICAgICAgICAqIGNzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAg
ICogY3NzL0NTU05hbWVkSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NOYW1l
ZEltYWdlVmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAgICogY3NzL0NTU05hbWVkSW1hZ2VW
YWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NQYWludEltYWdlVmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFpbnRJbWFnZVZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAqIGNz
cy9DU1NQYWludEltYWdlVmFsdWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojp1cGRhdGVGaWxsSW1hZ2Vz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGxMYXllcjo6aW1hZ2VzSWRlbnRpY2FsKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDYWNoZWRJbWFnZTo6
aGFzQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJ
bWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlR2VuZXJhdGVkSW1hZ2U6Om9wZXJhdG9yPT0gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHZW5lcmF0ZWRJbWFnZTo6aGFzQ2xpZW50IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11
bHRpSW1hZ2U6Omhhc0NsaWVudCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlTXVsdGlJbWFnZS5oOgorCiAyMDIxLTA1LTA1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2Fy
ZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQXBwSGlnaGxpZ2h0IHNjcm9sbHMgc2hvdWxkIGJl
IHNtb290aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5jcHAKaW5kZXggZDlkMWZlMjQy
ZThmLi4yZGVjODFjYWM1ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52
YXNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmNwcApA
QCAtOTAsOSArOTAsOSBAQCBSZWZQdHI8SW1hZ2U+IENTU0NhbnZhc1ZhbHVlOjppbWFnZShSZW5k
ZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgRmxvYXRTaXplJiAvKgogICAgIHJldHVybiBlbGVt
ZW50LT5jb3BpZWRJbWFnZSgpOwogfQogCi1ib29sIENTU0NhbnZhc1ZhbHVlOjplcXVhbHMoY29u
c3QgQ1NTQ2FudmFzVmFsdWUmIG90aGVyKSBjb25zdAorYm9vbCBDU1NDYW52YXNWYWx1ZTo6ZXF1
YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmIG90aGVyKSBjb25zdAogewotICAgIHJl
dHVybiBtX25hbWUgPT0gb3RoZXIubV9uYW1lOworICAgIHJldHVybiBpczxDU1NDYW52YXNWYWx1
ZT4ob3RoZXIpICYmIG1fbmFtZSA9PSBkb3duY2FzdDxDU1NDYW52YXNWYWx1ZT4ob3RoZXIpLm1f
bmFtZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FudmFz
VmFsdWUuaAppbmRleCA2YjFkNjFjN2NmZmEuLjc0ZGZkODc3YzJjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbnZhc1ZhbHVlLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNQ
ZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIGxvYWRTdWJpbWFnZXMo
Q2FjaGVkUmVzb3VyY2VMb2FkZXImLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKSB7IH0K
IAotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0NhbnZhc1ZhbHVlJikgY29uc3Q7CisgICAgYm9v
bCBlcXVhbHMoY29uc3QgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYpIGNvbnN0IGZpbmFsOwogCiAg
ICAgLy8gTk9URTogV2UgcHV0IHRoZSBDYW52YXNPYnNlcnZlciBpbiBhIG1lbWJlciBpbnN0ZWFk
IG9mIGluaGVyaXRpbmcgZnJvbSBpdAogICAgIC8vIHRvIGF2b2lkIGFkZGluZyBhIHZwdHIgdG8g
Q1NTQ2FudmFzVmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3Nm
YWRlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcApp
bmRleCA4ZWJlYTRiMmFiMWUuLmZiNTU1N2QzZjcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q3Jvc3NmYWRlVmFsdWUuY3BwCkBAIC0yMjMsMTEgKzIyMywxNCBAQCBSZWZQdHI8Q1NTQ3Jvc3Nm
YWRlVmFsdWU+IENTU0Nyb3NzZmFkZVZhbHVlOjpibGVuZChjb25zdCBDU1NDcm9zc2ZhZGVWYWx1
ZSYgZnJvbQogICAgIHJldHVybiBDU1NDcm9zc2ZhZGVWYWx1ZTo6Y3JlYXRlKFdURk1vdmUoZnJv
bUltYWdlVmFsdWUpLCBXVEZNb3ZlKHRvSW1hZ2VWYWx1ZSksIFdURk1vdmUocGVyY2VudGFnZVZh
bHVlKSwgZnJvbS5pc1ByZWZpeGVkKCkgJiYgaXNQcmVmaXhlZCgpKTsKIH0KIAotYm9vbCBDU1ND
cm9zc2ZhZGVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0Nyb3NzZmFkZVZhbHVlJiBvdGhlcikgY29u
c3QKK2Jvb2wgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlJiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1cm4gZXF1YWxJbnB1dEltYWdlcyhvdGhl
cikgJiYgY29tcGFyZUNTU1ZhbHVlKG1fcGVyY2VudGFnZVZhbHVlLCBvdGhlci5tX3BlcmNlbnRh
Z2VWYWx1ZSk7Ci19CisgICAgaWYgKGlzPENTU0Nyb3NzZmFkZVZhbHVlPihvdGhlcikpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKIAorICAgIGF1dG8mIG90aGVyQ3Jvc3NmYWRlVmFsdWUgPSBkb3du
Y2FzdDxDU1NDcm9zc2ZhZGVWYWx1ZT4ob3RoZXIpOworICAgIHJldHVybiBlcXVhbElucHV0SW1h
Z2VzKG90aGVyQ3Jvc3NmYWRlVmFsdWUpICYmIGNvbXBhcmVDU1NWYWx1ZShtX3BlcmNlbnRhZ2VW
YWx1ZSwgb3RoZXJDcm9zc2ZhZGVWYWx1ZS5tX3BlcmNlbnRhZ2VWYWx1ZSk7Cit9CiAKIGJvb2wg
Q1NTQ3Jvc3NmYWRlVmFsdWU6OmVxdWFsSW5wdXRJbWFnZXMoY29uc3QgQ1NTQ3Jvc3NmYWRlVmFs
dWUmIG90aGVyKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaApp
bmRleCBlYmFiN2FjZGVjNjguLjg1NGU0NTFjZGM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Ny
b3NzZmFkZVZhbHVlLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPENT
U0Nyb3NzZmFkZVZhbHVlPiBibGVuZChjb25zdCBDU1NDcm9zc2ZhZGVWYWx1ZSYsIGNvbnN0IEJs
ZW5kaW5nQ29udGV4dCYpIGNvbnN0OwogCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTQ3Jvc3Nm
YWRlVmFsdWUmKSBjb25zdDsKKyAgICBib29sIGVxdWFscyhjb25zdCBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlJikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBlcXVhbElucHV0SW1hZ2VzKGNvbnN0IENT
U0Nyb3NzZmFkZVZhbHVlJikgY29uc3Q7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKaW5kZXggMzZlNWNmYjMxY2MxLi43OTA2ODY4NTk3MWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKQEAgLTE2Myw5
ICsxNjMsMTMgQEAgYm9vbCBDU1NGaWx0ZXJJbWFnZVZhbHVlOjp0cmF2ZXJzZVN1YnJlc291cmNl
cyhjb25zdCBXVEY6OkZ1bmN0aW9uPGJvb2wgKGNvbnN0IEMKICAgICByZXR1cm4gaGFuZGxlcigq
bV9jYWNoZWRJbWFnZSk7CiB9CiAKLWJvb2wgQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6ZXF1YWxzKGNv
bnN0IENTU0ZpbHRlckltYWdlVmFsdWUmIG90aGVyKSBjb25zdAorYm9vbCBDU1NGaWx0ZXJJbWFn
ZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgb3RoZXIpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGVxdWFsSW5wdXRJbWFnZXMob3RoZXIpICYmIGNvbXBhcmVDU1NWYWx1
ZShtX2ZpbHRlclZhbHVlLCBvdGhlci5tX2ZpbHRlclZhbHVlKTsKKyAgICBpZiAoIWlzPENTU0Zp
bHRlckltYWdlVmFsdWU+KG90aGVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0
byYgb3RoZXJGaWx0ZXJJbWFnZVZhbHVlID0gZG93bmNhc3Q8Q1NTRmlsdGVySW1hZ2VWYWx1ZT4o
b3RoZXIpOworICAgIHJldHVybiBlcXVhbElucHV0SW1hZ2VzKG90aGVyRmlsdGVySW1hZ2VWYWx1
ZSkgJiYgY29tcGFyZUNTU1ZhbHVlKG1fZmlsdGVyVmFsdWUsIG90aGVyRmlsdGVySW1hZ2VWYWx1
ZS5tX2ZpbHRlclZhbHVlKTsKIH0KIAogYm9vbCBDU1NGaWx0ZXJJbWFnZVZhbHVlOjplcXVhbElu
cHV0SW1hZ2VzKGNvbnN0IENTU0ZpbHRlckltYWdlVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmgKaW5kZXggM2E3YjQzN2I5YTI3Li4zZmM4
NDQ4NzZiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaApAQCAt
NjcsNyArNjcsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHRyYXZlcnNlU3VicmVzb3VyY2VzKGNv
bnN0IFdURjo6RnVuY3Rpb248Ym9vbCAoY29uc3QgQ2FjaGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIp
IGNvbnN0OwogCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTRmlsdGVySW1hZ2VWYWx1ZSYpIGNv
bnN0OworICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmKSBjb25z
dDsKIAogICAgIGJvb2wgZXF1YWxJbnB1dEltYWdlcyhjb25zdCBDU1NGaWx0ZXJJbWFnZVZhbHVl
JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCA5
YTU4MDExZjEzY2EuLjYyMzE0ZTQ5MjVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVu
dFZhbHVlLmNwcApAQCAtNjQ5LDE1ICs2NDksMTkgQEAgYm9vbCBDU1NHcmFkaWVudFZhbHVlOjpr
bm93blRvQmVPcGFxdWUoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpIGNvbnN0CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQ1NTR3JhZGllbnRWYWx1ZTo6ZXF1YWxzKGNvbnN0IENT
U0dyYWRpZW50VmFsdWUmIG90aGVyKSBjb25zdAorYm9vbCBDU1NHcmFkaWVudFZhbHVlOjplcXVh
bHMoY29uc3QgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2ZpcnN0WCwgb3RoZXIubV9maXJzdFgpCi0gICAgICAg
ICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2ZpcnN0WSwgb3RoZXIubV9maXJzdFkpCi0gICAgICAg
ICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX3NlY29uZFgsIG90aGVyLm1fc2Vjb25kWCkKLSAgICAg
ICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fc2Vjb25kWSwgb3RoZXIubV9zZWNvbmRZKQotICAg
ICAgICAmJiBtX3N0b3BzID09IG90aGVyLm1fc3RvcHMKLSAgICAgICAgJiYgbV9ncmFkaWVudFR5
cGUgPT0gb3RoZXIubV9ncmFkaWVudFR5cGUKLSAgICAgICAgJiYgbV9yZXBlYXRpbmcgPT0gb3Ro
ZXIubV9yZXBlYXRpbmc7CisgICAgaWYgKCFpczxDU1NHcmFkaWVudFZhbHVlPihvdGhlcikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8mIG90aGVyR3JhZGllbnRWYWx1ZSA9IGRv
d25jYXN0PENTU0dyYWRpZW50VmFsdWU+KG90aGVyKTsKKyAgICByZXR1cm4gY29tcGFyZUNTU1Zh
bHVlUHRyKG1fZmlyc3RYLCBvdGhlckdyYWRpZW50VmFsdWUubV9maXJzdFgpCisgICAgICAgICYm
IGNvbXBhcmVDU1NWYWx1ZVB0cihtX2ZpcnN0WSwgb3RoZXJHcmFkaWVudFZhbHVlLm1fZmlyc3RZ
KQorICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9zZWNvbmRYLCBvdGhlckdyYWRpZW50
VmFsdWUubV9zZWNvbmRYKQorICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9zZWNvbmRZ
LCBvdGhlckdyYWRpZW50VmFsdWUubV9zZWNvbmRZKQorICAgICAgICAmJiBtX3N0b3BzID09IG90
aGVyR3JhZGllbnRWYWx1ZS5tX3N0b3BzCisgICAgICAgICYmIG1fZ3JhZGllbnRUeXBlID09IG90
aGVyR3JhZGllbnRWYWx1ZS5tX2dyYWRpZW50VHlwZQorICAgICAgICAmJiBtX3JlcGVhdGluZyA9
PSBvdGhlckdyYWRpZW50VmFsdWUubV9yZXBlYXRpbmc7CiB9CiAKIHN0YXRpYyB2b2lkIGFwcGVu
ZEdyYWRpZW50U3RvcHMoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgVmVjdG9yPENTU0dy
YWRpZW50Q29sb3JTdG9wLCAyPiYgc3RvcHMpCkBAIC04NzYsOSArODgwLDExIEBAIFJlZjxHcmFk
aWVudD4gQ1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3JhZGllbnQoUmVuZGVyRWxlbWVu
dCYgcmVuZGVyZXIsIGNvCiAgICAgcmV0dXJuIGdyYWRpZW50OwogfQogCi1ib29sIENTU0xpbmVh
ckdyYWRpZW50VmFsdWU6OmVxdWFscyhjb25zdCBDU1NMaW5lYXJHcmFkaWVudFZhbHVlJiBvdGhl
cikgY29uc3QKK2Jvb2wgQ1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0lt
YWdlR2VuZXJhdG9yVmFsdWUmIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBDU1NHcmFkaWVu
dFZhbHVlOjplcXVhbHMob3RoZXIpICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2FuZ2xlLCBvdGhl
ci5tX2FuZ2xlKTsKKyAgICBpZiAoIWlzPENTU0xpbmVhckdyYWRpZW50VmFsdWU+KG90aGVyKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBDU1NHcmFkaWVudFZhbHVlOjplcXVh
bHMob3RoZXIpICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2FuZ2xlLCBkb3duY2FzdDxDU1NMaW5l
YXJHcmFkaWVudFZhbHVlPihvdGhlcikubV9hbmdsZSk7CiB9CiAKIFN0cmluZyBDU1NSYWRpYWxH
cmFkaWVudFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKQEAgLTEyMDYsMTMgKzEyMTIsMTcg
QEAgUmVmPEdyYWRpZW50PiBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudChS
ZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY28KICAgICByZXR1cm4gZ3JhZGllbnQ7CiB9CiAKLWJv
b2wgQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1JhZGlhbEdyYWRpZW50
VmFsdWUmIG90aGVyKSBjb25zdAorYm9vbCBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjplcXVhbHMo
Y29uc3QgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgb3RoZXIpIGNvbnN0CiB7CisgICAgaWYgKCFp
czxDU1NSYWRpYWxHcmFkaWVudFZhbHVlPihvdGhlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGF1dG8mIG90aGVyUmFkaWFsR3JhZGllbnRWYWx1ZSA9IGRvd25jYXN0PENTU1JhZGlh
bEdyYWRpZW50VmFsdWU+KG90aGVyKTsKICAgICByZXR1cm4gQ1NTR3JhZGllbnRWYWx1ZTo6ZXF1
YWxzKG90aGVyKQotICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9zaGFwZSwgb3RoZXIu
bV9zaGFwZSkKLSAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fc2l6aW5nQmVoYXZpb3Is
IG90aGVyLm1fc2l6aW5nQmVoYXZpb3IpCi0gICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0ciht
X2VuZEhvcml6b250YWxTaXplLCBvdGhlci5tX2VuZEhvcml6b250YWxTaXplKQotICAgICAgICAm
JiBjb21wYXJlQ1NTVmFsdWVQdHIobV9lbmRWZXJ0aWNhbFNpemUsIG90aGVyLm1fZW5kVmVydGlj
YWxTaXplKTsKKyAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fc2hhcGUsIG90aGVyUmFk
aWFsR3JhZGllbnRWYWx1ZS5tX3NoYXBlKQorICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIo
bV9zaXppbmdCZWhhdmlvciwgb3RoZXJSYWRpYWxHcmFkaWVudFZhbHVlLm1fc2l6aW5nQmVoYXZp
b3IpCisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2VuZEhvcml6b250YWxTaXplLCBv
dGhlclJhZGlhbEdyYWRpZW50VmFsdWUubV9lbmRIb3Jpem9udGFsU2l6ZSkKKyAgICAgICAgJiYg
Y29tcGFyZUNTU1ZhbHVlUHRyKG1fZW5kVmVydGljYWxTaXplLCBvdGhlclJhZGlhbEdyYWRpZW50
VmFsdWUubV9lbmRWZXJ0aWNhbFNpemUpOwogfQogCiBTdHJpbmcgQ1NTQ29uaWNHcmFkaWVudFZh
bHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKQEAgLTEyODMsOSArMTI5MywxMiBAQCBSZWY8R3Jh
ZGllbnQ+IENTU0NvbmljR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3JhZGllbnQoUmVuZGVyRWxlbWVu
dCYgcmVuZGVyZXIsIGNvbgogICAgIHJldHVybiBncmFkaWVudDsKIH0KIAotYm9vbCBDU1NDb25p
Y0dyYWRpZW50VmFsdWU6OmVxdWFscyhjb25zdCBDU1NDb25pY0dyYWRpZW50VmFsdWUmIG90aGVy
KSBjb25zdAorYm9vbCBDU1NDb25pY0dyYWRpZW50VmFsdWU6OmVxdWFscyhjb25zdCBDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlJiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1cm4gQ1NTR3JhZGllbnRW
YWx1ZTo6ZXF1YWxzKG90aGVyKSAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9hbmdsZSwgb3RoZXIu
bV9hbmdsZSk7CisgICAgaWYgKCFpczxDU1NDb25pY0dyYWRpZW50VmFsdWU+KG90aGVyKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIENTU0dyYWRpZW50VmFsdWU6OmVxdWFs
cyhvdGhlcikgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fYW5nbGUsIGRvd25jYXN0PENTU0Nvbmlj
R3JhZGllbnRWYWx1ZT4ob3RoZXIpLm1fYW5nbGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaAppbmRleCA0MDY5Nzk4NDY3ZGUu
LmU1Y2ZmMWMwZjlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCkBAIC0x
MTAsNyArMTEwLDcgQEAgcHJvdGVjdGVkOgogICAgIGF1dG8mIHN0b3BzKCkgY29uc3QgeyByZXR1
cm4gbV9zdG9wczsgfQogICAgIGJvb2wgaXNSZXBlYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX3Jl
cGVhdGluZzsgfQogCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTR3JhZGllbnRWYWx1ZSYpIGNv
bnN0OworICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmKSBjb25z
dCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBib29sIGhhc0NvbG9yRGVyaXZlZEZyb21FbGVt
ZW50KCkgY29uc3Q7CkBAIC0xNDYsNyArMTQ2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NMaW5lYXJHcmFkaWVudFZhbHVlKCp0aGlzKSk7CiAgICAgfQogCi0g
ICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTTGluZWFyR3JhZGllbnRWYWx1ZSYpIGNvbnN0OworICAg
IGJvb2wgZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmKSBjb25zdCBmaW5hbDsK
IAogcHJpdmF0ZToKICAgICBDU1NMaW5lYXJHcmFkaWVudFZhbHVlKENTU0dyYWRpZW50UmVwZWF0
IHJlcGVhdCwgQ1NTR3JhZGllbnRUeXBlIGdyYWRpZW50VHlwZSA9IENTU0xpbmVhckdyYWRpZW50
KQpAQCAtMTg5LDcgKzE4OSw3IEBAIHB1YmxpYzoKICAgICAvLyBDcmVhdGUgdGhlIGdyYWRpZW50
IGZvciBhIGdpdmVuIHNpemUuCiAgICAgUmVmPEdyYWRpZW50PiBjcmVhdGVHcmFkaWVudChSZW5k
ZXJFbGVtZW50JiwgY29uc3QgRmxvYXRTaXplJik7CiAKLSAgICBib29sIGVxdWFscyhjb25zdCBD
U1NSYWRpYWxHcmFkaWVudFZhbHVlJikgY29uc3Q7CisgICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZSYpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIENTU1Jh
ZGlhbEdyYWRpZW50VmFsdWUoQ1NTR3JhZGllbnRSZXBlYXQgcmVwZWF0LCBDU1NHcmFkaWVudFR5
cGUgZ3JhZGllbnRUeXBlID0gQ1NTUmFkaWFsR3JhZGllbnQpCkBAIC0yNDIsNyArMjQyLDcgQEAg
cHVibGljOgogICAgIC8vIENyZWF0ZSB0aGUgZ3JhZGllbnQgZm9yIGEgZ2l2ZW4gc2l6ZS4KICAg
ICBSZWY8R3JhZGllbnQ+IGNyZWF0ZUdyYWRpZW50KFJlbmRlckVsZW1lbnQmLCBjb25zdCBGbG9h
dFNpemUmKTsKIAotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0NvbmljR3JhZGllbnRWYWx1ZSYp
IGNvbnN0OworICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmKSBj
b25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDU1NDb25pY0dyYWRpZW50VmFs
dWUoQ1NTR3JhZGllbnRSZXBlYXQgcmVwZWF0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmgKaW5kZXggNWVhY2I0ZTU1YTUzLi4wMGZjYjc3YWRjYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaApAQCAtNDEsNyArNDEs
NyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zOwogCiBjbGFzcyBDU1NJbWFnZUdlbmVy
YXRvclZhbHVlIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKLSAgICB+Q1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZSgpOworICAgIHZpcnR1YWwgfkNTU0ltYWdlR2VuZXJhdG9yVmFsdWUoKTsKIAog
ICAgIHZvaWQgYWRkQ2xpZW50KFJlbmRlckVsZW1lbnQmKTsKICAgICB2b2lkIHJlbW92ZUNsaWVu
dChSZW5kZXJFbGVtZW50Jik7CkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
bG9hZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRlciYsIGNvbnN0IFJlc291cmNlTG9hZGVy
T3B0aW9ucyYpOwogCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU0ltYWdlR2VuZXJhdG9y
VmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiBlcXVhbHMob3RoZXIpOyB9CisgICAgdmlydHVh
bCBib29sIGVxdWFscyhjb25zdCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBvdGhlcikgY29uc3Qg
eyByZXR1cm4gdGhpcyA9PSAmb3RoZXI7IH0KKwogcHJvdGVjdGVkOgogICAgIENTU0ltYWdlR2Vu
ZXJhdG9yVmFsdWUoQ2xhc3NUeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU05hbWVkSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZWRJbWFn
ZVZhbHVlLmNwcAppbmRleCA0MzczNmRlYzNiOTAuLmE5OTY3NDljYWI2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU05hbWVkSW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU05hbWVkSW1hZ2VWYWx1ZS5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgUmVmUHRy
PEltYWdlPiBDU1NOYW1lZEltYWdlVmFsdWU6OmltYWdlKFJlbmRlckVsZW1lbnQmLCBjb25zdCBG
bG9hdFNpemUmIHNpemUpCiAgICAgcmV0dXJuIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZTo6Y3Jl
YXRlKG1fbmFtZSwgc2l6ZSk7CiB9CiAKLWJvb2wgQ1NTTmFtZWRJbWFnZVZhbHVlOjplcXVhbHMo
Y29uc3QgQ1NTTmFtZWRJbWFnZVZhbHVlJiBvdGhlcikgY29uc3QKK2Jvb2wgQ1NTTmFtZWRJbWFn
ZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgb3RoZXIpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fbmFtZSA9PSBvdGhlci5tX25hbWU7CisgICAgcmV0dXJuIGlzPENT
U05hbWVkSW1hZ2VWYWx1ZT4ob3RoZXIpICYmIG1fbmFtZSA9PSBkb3duY2FzdDxDU1NOYW1lZElt
YWdlVmFsdWU+KG90aGVyKS5tX25hbWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lZEltYWdlVmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NOYW1lZEltYWdlVmFsdWUuaAppbmRleCAxMTM5YmExYjQ1OTAuLmJj
MTE4NzU0M2M0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU05hbWVkSW1hZ2VW
YWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lZEltYWdlVmFsdWUuaApAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlckVs
ZW1lbnQmLCBjb25zdCBGbG9hdFNpemUmKTsKIAotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU05h
bWVkSW1hZ2VWYWx1ZSYpIGNvbnN0OworICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ltYWdlR2Vu
ZXJhdG9yVmFsdWUmKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDU1NO
YW1lZEltYWdlVmFsdWUoY29uc3QgU3RyaW5nJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFpbnRJbWFnZVZhbHVlLmNwcAppbmRleCA4Y2E2ZTVlMjBjNTQuLjA5YjEwYTVlMWVjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5jcHAKQEAgLTg0LDYgKzg0LDEx
IEBAIFJlZlB0cjxJbWFnZT4gQ1NTUGFpbnRJbWFnZVZhbHVlOjppbWFnZShSZW5kZXJFbGVtZW50
JiByZW5kZXJFbGVtZW50LCBjb25zdCBGbG9hCiAgICAgcmV0dXJuIEN1c3RvbVBhaW50SW1hZ2U6
OmNyZWF0ZSgqcmVnaXN0cmF0aW9uLCBzaXplLCByZW5kZXJFbGVtZW50LCBhcmd1bWVudHMpOwog
fQogCitib29sIENTU1BhaW50SW1hZ2VWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJh
dG9yVmFsdWUmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQYWludEltYWdlVmFs
dWU+KG90aGVyKSAmJiBtX25hbWUgPT0gZG93bmNhc3Q8Q1NTUGFpbnRJbWFnZVZhbHVlPihvdGhl
cikubV9uYW1lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5oCmluZGV4IDQzYmNjMWNhY2Q4MC4uMmE4ZmM2
Mjg3NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFpbnRJbWFnZVZhbHVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5oCkBAIC00NCw3
ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyRWxlbWVu
dCYsIGNvbnN0IEZsb2F0U2l6ZSYpOwogCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTUGFpbnRJ
bWFnZVZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9uYW1lID09IG90aGVyLm1fbmFtZTsg
fQorICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmIG90aGVyKSBj
b25zdCBmaW5hbDsKICAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwogCiAgICAgYm9v
bCBpc0ZpeGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggOGQxZmNmNmQ2MThiLi5lNWJkOWE1MDM5
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTM1
MywxMCArMzUzLDMxIEBAIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3VsZFJlcGFpbnRG
b3JTdHlsZURpZmZlcmVuY2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYpCiAKIHZvaWQgUmVuZGVyRWxl
bWVudDo6dXBkYXRlRmlsbEltYWdlcyhjb25zdCBGaWxsTGF5ZXIqIG9sZExheWVycywgY29uc3Qg
RmlsbExheWVyJiBuZXdMYXllcnMpCiB7Ci0gICAgLy8gT3B0aW1pemUgdGhlIGNvbW1vbiBjYXNl
LgotICAgIGlmIChGaWxsTGF5ZXI6OmltYWdlc0lkZW50aWNhbChvbGRMYXllcnMsICZuZXdMYXll
cnMpKQorICAgIGF1dG8gZmlsbEltYWdlc0FyZUlkZW50aWNhbCA9IFtdKGNvbnN0IEZpbGxMYXll
ciogbGF5ZXIxLCBjb25zdCBGaWxsTGF5ZXIqIGxheWVyMikgLT4gYm9vbCB7CisgICAgICAgIGlm
IChsYXllcjEgPT0gbGF5ZXIyKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAg
Zm9yICg7IGxheWVyMSAmJiBsYXllcjI7IGxheWVyMSA9IGxheWVyMS0+bmV4dCgpLCBsYXllcjIg
PSBsYXllcjItPm5leHQoKSkgeworICAgICAgICAgICAgaWYgKCFhcmVQb2ludGluZ1RvRXF1YWxE
YXRhKGxheWVyMS0+aW1hZ2UoKSwgbGF5ZXIyLT5pbWFnZSgpKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gIWxheWVyMSAmJiAhbGF5
ZXIyOworICAgIH07CisKKyAgICBhdXRvIGlzUmVnaXN0ZXJlZFdpdGhOZXdGaWxsSW1hZ2VzID0g
WyZdKCkgLT4gYm9vbCB7CisgICAgICAgIGZvciAoYXV0byogbGF5ZXIgPSAmbmV3TGF5ZXJzOyBs
YXllcjsgbGF5ZXIgPSBsYXllci0+bmV4dCgpKSB7CisgICAgICAgICAgICBpZiAobGF5ZXItPmlt
YWdlKCkgJiYgIWxheWVyLT5pbWFnZSgpLT5oYXNDbGllbnQoKnRoaXMpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
OworCisgICAgLy8gSWYgaW1hZ2VzIGhhdmUgdGhlIHNhbWUgY2hhcmFjdGVyaXN0aWNzIGFuZCB0
aGlzIGVsZW1lbnQgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGFzIGEKKyAgICAvLyBjbGllbnQgdG8g
dGhlIG5ldyBpbWFnZXMsIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8uCisgICAgaWYgKGZpbGxJbWFn
ZXNBcmVJZGVudGljYWwob2xkTGF5ZXJzLCAmbmV3TGF5ZXJzKSAmJiBpc1JlZ2lzdGVyZWRXaXRo
TmV3RmlsbEltYWdlcygpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBBZGQgYmVm
b3JlIHJlbW92aW5nLCB0byBhdm9pZCByZW1vdmluZyBhbGwgY2xpZW50cyBvZiBhbiBpbWFnZSB0
aGF0IGlzIGluIGJvdGggc2V0cy4KICAgICBmb3IgKGF1dG8qIGxheWVyID0gJm5ld0xheWVyczsg
bGF5ZXI7IGxheWVyID0gbGF5ZXItPm5leHQoKSkgewogICAgICAgICBpZiAobGF5ZXItPmltYWdl
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCmluZGV4
IDQ3YWUxZjJjMzAyYS4uNDZlM2U4YTRjZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvRmlsbExheWVyLmNwcApAQCAtMzk2LDE5ICszOTYsNiBAQCBib29sIEZpbGxMYXll
cjo6aGFzRml4ZWRJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEZp
bGxMYXllcjo6aW1hZ2VzSWRlbnRpY2FsKGNvbnN0IEZpbGxMYXllciogbGF5ZXIxLCBjb25zdCBG
aWxsTGF5ZXIqIGxheWVyMikKLXsKLSAgICBpZiAobGF5ZXIxID09IGxheWVyMikKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICBmb3IgKDsgbGF5ZXIxICYmIGxheWVyMjsgbGF5ZXIxID0gbGF5
ZXIxLT5uZXh0KCksIGxheWVyMiA9IGxheWVyMi0+bmV4dCgpKSB7Ci0gICAgICAgIGlmICghYXJl
UG9pbnRpbmdUb0VxdWFsRGF0YShsYXllcjEtPmltYWdlKCksIGxheWVyMi0+aW1hZ2UoKSkpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuICFsYXllcjEgJiYg
IWxheWVyMjsKLX0KLQogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgRmls
bFNpemUgZmlsbFNpemUpCiB7CiAgICAgcmV0dXJuIHRzIDw8IGZpbGxTaXplLnR5cGUgPDwgIiAi
IDw8IGZpbGxTaXplLnNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvRmlsbExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExh
eWVyLmgKaW5kZXggYWVkYWZmZGYzZWE3Li44ZDc1ZDU4ZTU4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKQEAgLTE1OSw4ICsxNTksNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBmaWxsVW5zZXRQcm9wZXJ0aWVzKCk7CiAgICAgdm9pZCBjdWxsRW1wdHlMYXll
cnMoKTsKIAotICAgIHN0YXRpYyBib29sIGltYWdlc0lkZW50aWNhbChjb25zdCBGaWxsTGF5ZXIq
LCBjb25zdCBGaWxsTGF5ZXIqKTsKLQogICAgIHN0YXRpYyBGaWxsQXR0YWNobWVudCBpbml0aWFs
RmlsbEF0dGFjaG1lbnQoRmlsbExheWVyVHlwZSkgeyByZXR1cm4gRmlsbEF0dGFjaG1lbnQ6OlNj
cm9sbEJhY2tncm91bmQ7IH0KICAgICBzdGF0aWMgRmlsbEJveCBpbml0aWFsRmlsbENsaXAoRmls
bExheWVyVHlwZSkgeyByZXR1cm4gRmlsbEJveDo6Qm9yZGVyOyB9CiAgICAgc3RhdGljIEZpbGxC
b3ggaW5pdGlhbEZpbGxPcmlnaW4oRmlsbExheWVyVHlwZSB0eXBlKSB7IHJldHVybiB0eXBlID09
IEZpbGxMYXllclR5cGU6OkJhY2tncm91bmQgPyBGaWxsQm94OjpQYWRkaW5nIDogRmlsbEJveDo6
Qm9yZGVyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVDYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVD
YWNoZWRJbWFnZS5jcHAKaW5kZXggY2IzNzg2NjQ5OTcyLi45ODM2OTA3ZDVmNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAK
QEAgLTE3Miw2ICsxNzIsMTQgQEAgdm9pZCBTdHlsZUNhY2hlZEltYWdlOjpyZW1vdmVDbGllbnQo
UmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAgICAgbV9jYWNoZWRJbWFnZS0+cmVtb3ZlQ2xpZW50
KHJlbmRlcmVyKTsKIH0KIAorYm9vbCBTdHlsZUNhY2hlZEltYWdlOjpoYXNDbGllbnQoUmVuZGVy
RWxlbWVudCYgcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFtX2lzUGVuZGluZyk7Cisg
ICAgaWYgKCFtX2NhY2hlZEltYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IG1fY2FjaGVkSW1hZ2UtPmhhc0NsaWVudChyZW5kZXJlcik7Cit9CisKIFJlZlB0cjxJbWFnZT4g
U3R5bGVDYWNoZWRJbWFnZTo6aW1hZ2UoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IEZs
b2F0U2l6ZSYpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFtX2lzUGVuZGluZyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaAppbmRleCA1MGVk
NzEzNTY3MmQuLmI1NGEyZWFmMjBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldENvbnRhaW5lckNvbnRleHRGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJFbGVtZW50
JiwgY29uc3QgRmxvYXRTaXplJiwgZmxvYXQpIGZpbmFsOwogICAgIHZvaWQgYWRkQ2xpZW50KFJl
bmRlckVsZW1lbnQmKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJFbGVtZW50
JikgZmluYWw7CisgICAgYm9vbCBoYXNDbGllbnQoUmVuZGVyRWxlbWVudCYpIGNvbnN0IGZpbmFs
OwogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyRWxlbWVudCosIGNvbnN0IEZsb2F0U2l6
ZSYpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIGtub3duVG9CZU9wYXF1ZShjb25zdCBSZW5kZXJFbGVtZW50JikgY29uc3Qg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
ZW5lcmF0ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
ZW5lcmF0ZWRJbWFnZS5jcHAKaW5kZXggN2QxMjE1ZjAxODVlLi4yZWM1M2YzNTM3NDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJ
bWFnZS5jcHAKQEAgLTM3LDYgKzM3LDEzIEBAIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OlN0eWxlR2Vu
ZXJhdGVkSW1hZ2UoUmVmPENTU0ltYWdlR2VuZXJhdG9yVmFsdWU+JiYgdmFsdWUpCiAgICAgbV9p
c0dlbmVyYXRlZEltYWdlID0gdHJ1ZTsKIH0KIAorYm9vbCBTdHlsZUdlbmVyYXRlZEltYWdlOjpv
cGVyYXRvcj09KGNvbnN0IFN0eWxlSW1hZ2UmIG90aGVyKSBjb25zdAoreworICAgIGlmIChpczxT
dHlsZUdlbmVyYXRlZEltYWdlPihvdGhlcikpCisgICAgICAgIHJldHVybiBhcmVQb2ludGluZ1Rv
RXF1YWxEYXRhKG1faW1hZ2VHZW5lcmF0b3JWYWx1ZS5wdHIoKSwgZG93bmNhc3Q8U3R5bGVHZW5l
cmF0ZWRJbWFnZT4ob3RoZXIpLm1faW1hZ2VHZW5lcmF0b3JWYWx1ZS5wdHIoKSk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiBSZWY8Q1NTVmFsdWU+IFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNzc1Zh
bHVlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbWFnZUdlbmVyYXRvclZhbHVlLmNvcHlSZWYo
KTsKQEAgLTk2LDYgKzEwMywxMSBAQCB2b2lkIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OnJlbW92ZUNs
aWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKICAgICBtX2ltYWdlR2VuZXJhdG9yVmFsdWUt
PnJlbW92ZUNsaWVudChyZW5kZXJlcik7CiB9CiAKK2Jvb2wgU3R5bGVHZW5lcmF0ZWRJbWFnZTo6
aGFzQ2xpZW50KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKSBjb25zdAoreworICAgIHJldHVybiBt
X2ltYWdlR2VuZXJhdG9yVmFsdWUtPmNsaWVudHMoKS5jb250YWlucygmcmVuZGVyZXIpOworfQor
CiBSZWZQdHI8SW1hZ2U+IFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmltYWdlKFJlbmRlckVsZW1lbnQq
IHJlbmRlcmVyLCBjb25zdCBGbG9hdFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHJl
bmRlcmVyID8gbV9pbWFnZUdlbmVyYXRvclZhbHVlLT5pbWFnZSgqcmVuZGVyZXIsIHNpemUpIDog
JkltYWdlOjpudWxsSW1hZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oCmluZGV4IDRlMWQwMmYwYWU2NC4uZjUxNTU1NDVj
MjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5l
cmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdl
bmVyYXRlZEltYWdlLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIENTU0ltYWdlR2Vu
ZXJhdG9yVmFsdWUmIGltYWdlVmFsdWUoKSB7IHJldHVybiBtX2ltYWdlR2VuZXJhdG9yVmFsdWU7
IH0KIAogcHJpdmF0ZToKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVJbWFnZSYgb3Ro
ZXIpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGRhdGEoKSA9PSBvdGhlci5kYXRhKCk7IH0KKyAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVJbWFnZSYgb3RoZXIpIGNvbnN0IGZpbmFsOwogCiAg
ICAgV3JhcHBlZEltYWdlUHRyIGRhdGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ltYWdlR2Vu
ZXJhdG9yVmFsdWUucHRyKCk7IH0KIApAQCAtNTYsNiArNTYsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2V0Q29udGFpbmVyQ29udGV4dEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQmLCBj
b25zdCBGbG9hdFNpemUmIGNvbnRhaW5lclNpemUsIGZsb2F0KSBmaW5hbCB7IG1fY29udGFpbmVy
U2l6ZSA9IGNvbnRhaW5lclNpemU7IH0KICAgICB2b2lkIGFkZENsaWVudChSZW5kZXJFbGVtZW50
JikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVyRWxlbWVudCYpIGZpbmFsOwor
ICAgIGJvb2wgaGFzQ2xpZW50KFJlbmRlckVsZW1lbnQmKSBjb25zdCBmaW5hbDsKICAgICBSZWZQ
dHI8SW1hZ2U+IGltYWdlKFJlbmRlckVsZW1lbnQqLCBjb25zdCBGbG9hdFNpemUmKSBjb25zdCBm
aW5hbDsKICAgICBib29sIGtub3duVG9CZU9wYXF1ZShjb25zdCBSZW5kZXJFbGVtZW50JikgY29u
c3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5o
CmluZGV4IDNlZDg5ODMxMGMzZC4uMTY1NGQxZDhkYjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250YWluZXJDb250ZXh0Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVy
RWxlbWVudCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGFkZENsaWVudChSZW5kZXJFbGVtZW50JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVD
bGllbnQoUmVuZGVyRWxlbWVudCYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQ2xpZW50KFJl
bmRlckVsZW1lbnQmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2U+IGltYWdl
KFJlbmRlckVsZW1lbnQqLCBjb25zdCBGbG9hdFNpemUmKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBXcmFwcGVkSW1hZ2VQdHIgZGF0YSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGZsb2F0IGlt
YWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiAxOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpSW1hZ2UuY3BwCmluZGV4IDc3NjY2N2M3YTY0
YS4uYjM3NGIwMTg0ZTg0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVNdWx0aUltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVNdWx0aUltYWdlLmNwcApAQCAtMTQ4LDYgKzE0OCwxMyBAQCB2b2lkIFN0eWxlTXVs
dGlJbWFnZTo6cmVtb3ZlQ2xpZW50KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogICAgIG1fc2Vs
ZWN0ZWRJbWFnZS0+cmVtb3ZlQ2xpZW50KHJlbmRlcmVyKTsKIH0KIAorYm9vbCBTdHlsZU11bHRp
SW1hZ2U6Omhhc0NsaWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBp
ZiAoIW1fc2VsZWN0ZWRJbWFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBt
X3NlbGVjdGVkSW1hZ2UtPmhhc0NsaWVudChyZW5kZXJlcik7Cit9CisKIFJlZlB0cjxJbWFnZT4g
U3R5bGVNdWx0aUltYWdlOjppbWFnZShSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgY29uc3QgRmxv
YXRTaXplJiBzaXplKSBjb25zdAogewogICAgIGlmICghbV9zZWxlY3RlZEltYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5oCmluZGV4IDg2
ZmE1YjcxYjVlOS4uN2ZiNWFmMTc1MGJkIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5oCkBAIC01OSw2ICs1OSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXRDb250YWluZXJDb250ZXh0Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVu
dCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0KTsKICAgICB2b2lkIGFkZENsaWVudChSZW5kZXJF
bGVtZW50JikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVyRWxlbWVudCYpIGZp
bmFsOworICAgIGJvb2wgaGFzQ2xpZW50KFJlbmRlckVsZW1lbnQmKSBjb25zdCBmaW5hbDsKICAg
ICBSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlckVsZW1lbnQqLCBjb25zdCBGbG9hdFNpemUmKSBj
b25zdCBmaW5hbDsKICAgICBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yKCkgY29uc3QgZmluYWw7CiAg
ICAgYm9vbCBrbm93blRvQmVPcGFxdWUoY29uc3QgUmVuZGVyRWxlbWVudCYpIGNvbnN0IGZpbmFs
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427898</attachid>
            <date>2021-05-06 09:51:53 -0700</date>
            <delta_ts>2021-05-06 10:36:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194332-20210506185151.patch</filename>
            <type>text/plain</type>
            <size>30898</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQwZmQzYjdlMDVjZDE5
NGE3Y2NlODQ0ZDY5ODQ2Yjc2NDI3NWFlNi4uNzM0NmQyN2I2NDlmMWU4NjllNGZlNzI4NjMyZWU4
NmZkOTYyZmJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIxLTA1LTA2ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBjdXN0b20gcHJv
cGVydGllcyBvbiBwc2V1ZG8gZWxlbWVudHMgYmFja2dyb3VuZCBncmFkaWVudHMgY2F1c2VzIGlu
ZmluaXRlIGxheW91dCBhbmQgaGlnaCBDUFUgbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
Nzg3Mzg5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIGEgYmFja2dyb3VuZC1pbWFnZSB1c2VzIGEgQ1NTIGN1c3RvbSBwcm9wZXJ0eSB0aGUg
cmVzdWx0aW5nIFN0eWxlR2VuZXJhdGVkSW1hZ2UgbWF5IG5vdCBiZSB0aGUgc2FtZQorICAgICAg
ICBvYmplY3QgYXMgZHVyaW5nIHByaW9yIHN0eWxlIHVwZGF0ZXMuIFRoaXMgY2F1c2VkIHRyYW5z
aXRpb25zIHRvIGJlIHRyaWdnZXJlZCBmb3IgYWxsIHN0eWxlIHVwZGF0ZXMgZm9yCisgICAgICAg
IHN1Y2ggYmFja2dyb3VuZC1pbWFnZSB2YWx1ZXMuIFRvIGZpeCB0aGlzLCB3ZSBtb2RpZnkgdGhl
ID09IG9wZXJhdG9yIGZvciBTdHlsZUdlbmVyYXRlZEltYWdlIHRvIHVzZQorICAgICAgICBhcmVQ
b2ludGluZ1RvRXF1YWxEYXRhKCkgd2l0aCB0aGUgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSBtZW1i
ZXIgYW5kIGFkZGVkIGFuID09IG9wZXJhdG9yIGZvciB0aGUKKyAgICAgICAgQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZSBjbGFzcyB0byBjYWxsIGludG8gdGhlIGV4aXN0aW5nIGVxdWFscygpIG1ldGhv
ZHMuIFRoZXNlIGVxdWFscygpIG1ldGhvZHMKKyAgICAgICAgYXJlIG5vdyBvdmVycmlkZXMgb2Yg
dGhlIHZpcnR1YWwgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSBtZXRob2QuCisKKyAgICAgICAgVGhp
cyBjaGFuZ2UgaW4gYmVoYXZpb3IgcmVxdWlyZWQgYSBjaGFuZ2UgaW4gUmVuZGVyRWxlbWVudDo6
dXBkYXRlRmlsbEltYWdlcygpIHRvIG5vdCBvbmx5IGNoZWNrIHdoZXRoZXIKKyAgICAgICAgdGhl
IGltYWdlcyB3ZXJlIGlkZW50aWNhbCwgYnV0IHRvIGFsc28gY2hlY2sgd2hldGhlciB0aGUgcmVu
ZGVyZXIgd2FzIHJlZ2lzdGVyZWQgYXMgYSBjbGllbnQgb24gdGhlIG5ldworICAgICAgICBpbWFn
ZXMuIFRvIGRvIHRoaXMsIHdlIGFkZCBhIG5ldyB2aXJ0dWFsIGhhc0NsaWVudCgpIG1ldGhvZCBv
biBTdHlsZUltYWdlLgorCisgICAgICAgIFRlc3Q6IHdlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRp
b24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20t
cHJvcGVydHkuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NhbnZhc1ZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0NhbnZhc1ZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAqIGNz
cy9DU1NDYW52YXNWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1ZTo6ZXF1YWxzIGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVy
SW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjpl
cXVhbHMgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmg6CisgICAg
ICAgICogY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3Jh
ZGllbnRWYWx1ZTo6ZXF1YWxzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0xpbmVhckdy
YWRpZW50VmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NSYWRpYWxH
cmFkaWVudFZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29uaWNH
cmFkaWVudFZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZh
bHVlLmg6CisgICAgICAgICogY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ltYWdlR2VuZXJhdG9yVmFsdWU6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6ZXF1YWxzIGNvbnN0KToKKyAg
ICAgICAgKiBjc3MvQ1NTTmFtZWRJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U05hbWVkSW1hZ2VWYWx1ZTo6ZXF1YWxzIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTTmFtZWRJ
bWFnZVZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYWludEltYWdlVmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAg
ICogY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnVwZGF0ZUZpbGxJ
bWFnZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsbExheWVyOjppbWFnZXNJZGVudGljYWwpOiBEZWxldGVkLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNhY2hlZElt
YWdlOjpoYXNDbGllbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNh
Y2hlZEltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHZW5lcmF0ZWRJbWFnZTo6b3BlcmF0b3I9
PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdlbmVyYXRlZEltYWdlOjpoYXNDbGll
bnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdl
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlTXVsdGlJbWFnZTo6aGFzQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvU3R5bGVNdWx0aUltYWdlLmg6CisKIDIwMjEtMDUtMDUgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBIaWdobGlnaHQgc2Nyb2xscyBzaG91
bGQgYmUgc21vb3RoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FudmFzVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmNwcAppbmRleCBkOWQx
ZmUyNDJlOGYwOGM3MmExNzgyMzQ2YjhhMTJjNDcxOGJlZmViLi4yZGVjODFjYWM1ZDVkZTdlM2M4
MzIxNWUxNzI1Y2JjN2JmMGNhNzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q2FudmFzVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5j
cHAKQEAgLTkwLDkgKzkwLDkgQEAgUmVmUHRyPEltYWdlPiBDU1NDYW52YXNWYWx1ZTo6aW1hZ2Uo
UmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IEZsb2F0U2l6ZSYgLyoKICAgICByZXR1cm4g
ZWxlbWVudC0+Y29waWVkSW1hZ2UoKTsKIH0KIAotYm9vbCBDU1NDYW52YXNWYWx1ZTo6ZXF1YWxz
KGNvbnN0IENTU0NhbnZhc1ZhbHVlJiBvdGhlcikgY29uc3QKK2Jvb2wgQ1NTQ2FudmFzVmFsdWU6
OmVxdWFscyhjb25zdCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBvdGhlcikgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9uYW1lID09IG90aGVyLm1fbmFtZTsKKyAgICByZXR1cm4gaXM8Q1NTQ2FudmFz
VmFsdWU+KG90aGVyKSAmJiBtX25hbWUgPT0gZG93bmNhc3Q8Q1NTQ2FudmFzVmFsdWU+KG90aGVy
KS5tX25hbWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nh
bnZhc1ZhbHVlLmgKaW5kZXggNmIxZDYxYzdjZmZhM2IxZDM5NzVlMTM3YTcwYjVhMjhmNGE2OTk3
Yy4uNzRkZmQ4NzdjMmNjZjk0ZTMzZDg4NjgxNjI2YjA2YWU5ZmVhZmUzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NhbnZhc1ZhbHVlLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIGxvYWRTdWJpbWFn
ZXMoQ2FjaGVkUmVzb3VyY2VMb2FkZXImLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKSB7
IH0KIAotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0NhbnZhc1ZhbHVlJikgY29uc3Q7CisgICAg
Ym9vbCBlcXVhbHMoY29uc3QgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYpIGNvbnN0IGZpbmFsOwog
CiAgICAgLy8gTk9URTogV2UgcHV0IHRoZSBDYW52YXNPYnNlcnZlciBpbiBhIG1lbWJlciBpbnN0
ZWFkIG9mIGluaGVyaXRpbmcgZnJvbSBpdAogICAgIC8vIHRvIGF2b2lkIGFkZGluZyBhIHZwdHIg
dG8gQ1NTQ2FudmFzVmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jv
c3NmYWRlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNw
cAppbmRleCA4ZWJlYTRiMmFiMWUyNDdkZjVlYTVjYzQ2Yzg4NWNjMTBjYzdiMGVhLi42ZGRhZWM1
NWVlMGJlOTAyZjg5ZGY0MjQ1NDJmODIzN2JiOTUzZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDcm9zc2ZhZGVWYWx1ZS5jcHAKQEAgLTIyMywxMSArMjIzLDE0IEBAIFJlZlB0cjxDU1NDcm9z
c2ZhZGVWYWx1ZT4gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmJsZW5kKGNvbnN0IENTU0Nyb3NzZmFkZVZh
bHVlJiBmcm9tCiAgICAgcmV0dXJuIENTU0Nyb3NzZmFkZVZhbHVlOjpjcmVhdGUoV1RGTW92ZShm
cm9tSW1hZ2VWYWx1ZSksIFdURk1vdmUodG9JbWFnZVZhbHVlKSwgV1RGTW92ZShwZXJjZW50YWdl
VmFsdWUpLCBmcm9tLmlzUHJlZml4ZWQoKSAmJiBpc1ByZWZpeGVkKCkpOwogfQogCi1ib29sIENT
U0Nyb3NzZmFkZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTQ3Jvc3NmYWRlVmFsdWUmIG90aGVyKSBj
b25zdAorYm9vbCBDU1NDcm9zc2ZhZGVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJh
dG9yVmFsdWUmIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBlcXVhbElucHV0SW1hZ2VzKG90
aGVyKSAmJiBjb21wYXJlQ1NTVmFsdWUobV9wZXJjZW50YWdlVmFsdWUsIG90aGVyLm1fcGVyY2Vu
dGFnZVZhbHVlKTsKLX0KKyAgICBpZiAoIWlzPENTU0Nyb3NzZmFkZVZhbHVlPihvdGhlcikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGF1dG8mIG90aGVyQ3Jvc3NmYWRlVmFsdWUgPSBk
b3duY2FzdDxDU1NDcm9zc2ZhZGVWYWx1ZT4ob3RoZXIpOworICAgIHJldHVybiBlcXVhbElucHV0
SW1hZ2VzKG90aGVyQ3Jvc3NmYWRlVmFsdWUpICYmIGNvbXBhcmVDU1NWYWx1ZShtX3BlcmNlbnRh
Z2VWYWx1ZSwgb3RoZXJDcm9zc2ZhZGVWYWx1ZS5tX3BlcmNlbnRhZ2VWYWx1ZSk7Cit9CiAKIGJv
b2wgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmVxdWFsSW5wdXRJbWFnZXMoY29uc3QgQ1NTQ3Jvc3NmYWRl
VmFsdWUmIG90aGVyKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0Nyb3NzZmFkZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUu
aAppbmRleCBlYmFiN2FjZGVjNjhkNWFmOTk0M2EwNWU4YTgwNTNkNTI5OWU4OWY5Li44NTRlNDUx
Y2RjNjQ1MjEwZGFmMmQ2M2U1YzNlOGQ1MGIwZDQ5NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q3Jvc3NmYWRlVmFsdWUuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8
Q1NTQ3Jvc3NmYWRlVmFsdWU+IGJsZW5kKGNvbnN0IENTU0Nyb3NzZmFkZVZhbHVlJiwgY29uc3Qg
QmxlbmRpbmdDb250ZXh0JikgY29uc3Q7CiAKLSAgICBib29sIGVxdWFscyhjb25zdCBDU1NDcm9z
c2ZhZGVWYWx1ZSYpIGNvbnN0OworICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJh
dG9yVmFsdWUmKSBjb25zdCBmaW5hbDsKICAgICBib29sIGVxdWFsSW5wdXRJbWFnZXMoY29uc3Qg
Q1NTQ3Jvc3NmYWRlVmFsdWUmKSBjb25zdDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAppbmRleCAzNmU1Y2ZiMzFjYzEzNzZiYzNlNTRhY2Uz
NjRhNTcyZjgyZTM2N2E2Li43OTA2ODY4NTk3MWU3ZGMzZWZjZWIxMzU4OTE4ZjA2OTljNmY1N2Rk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCkBAIC0xNjMs
OSArMTYzLDEzIEBAIGJvb2wgQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6dHJhdmVyc2VTdWJyZXNvdXJj
ZXMoY29uc3QgV1RGOjpGdW5jdGlvbjxib29sIChjb25zdCBDCiAgICAgcmV0dXJuIGhhbmRsZXIo
Km1fY2FjaGVkSW1hZ2UpOwogfQogCi1ib29sIENTU0ZpbHRlckltYWdlVmFsdWU6OmVxdWFscyhj
b25zdCBDU1NGaWx0ZXJJbWFnZVZhbHVlJiBvdGhlcikgY29uc3QKK2Jvb2wgQ1NTRmlsdGVySW1h
Z2VWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmIG90aGVyKSBjb25z
dAogewotICAgIHJldHVybiBlcXVhbElucHV0SW1hZ2VzKG90aGVyKSAmJiBjb21wYXJlQ1NTVmFs
dWUobV9maWx0ZXJWYWx1ZSwgb3RoZXIubV9maWx0ZXJWYWx1ZSk7CisgICAgaWYgKCFpczxDU1NG
aWx0ZXJJbWFnZVZhbHVlPihvdGhlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1
dG8mIG90aGVyRmlsdGVySW1hZ2VWYWx1ZSA9IGRvd25jYXN0PENTU0ZpbHRlckltYWdlVmFsdWU+
KG90aGVyKTsKKyAgICByZXR1cm4gZXF1YWxJbnB1dEltYWdlcyhvdGhlckZpbHRlckltYWdlVmFs
dWUpICYmIGNvbXBhcmVDU1NWYWx1ZShtX2ZpbHRlclZhbHVlLCBvdGhlckZpbHRlckltYWdlVmFs
dWUubV9maWx0ZXJWYWx1ZSk7CiB9CiAKIGJvb2wgQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6ZXF1YWxJ
bnB1dEltYWdlcyhjb25zdCBDU1NGaWx0ZXJJbWFnZVZhbHVlJiBvdGhlcikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oCmluZGV4IDNhN2I0MzdiOWEyN2U0OWE0
ZTg1NTNiYjA1MGE2YjA3YmIwMDJiMGUuLjNmYzg0NDg3NmJmY2Q5MDYzMDZhMjNlZjBiNWZkNmVl
NmUxMjc0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaApAQCAt
NjcsNyArNjcsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHRyYXZlcnNlU3VicmVzb3VyY2VzKGNv
bnN0IFdURjo6RnVuY3Rpb248Ym9vbCAoY29uc3QgQ2FjaGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIp
IGNvbnN0OwogCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTRmlsdGVySW1hZ2VWYWx1ZSYpIGNv
bnN0OworICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmKSBjb25z
dDsKIAogICAgIGJvb2wgZXF1YWxJbnB1dEltYWdlcyhjb25zdCBDU1NGaWx0ZXJJbWFnZVZhbHVl
JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCA5
YTU4MDExZjEzY2FhZTUyYTI0Y2Q5NmVhY2Y1ZjdkY2EwMjY1MzZjLi42MjMxNGU0OTI1ZDgzZDdl
MDExZDVlN2FlZWEyNWY0NDQzZTcxMTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JhZGllbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50
VmFsdWUuY3BwCkBAIC02NDksMTUgKzY0OSwxOSBAQCBib29sIENTU0dyYWRpZW50VmFsdWU6Omtu
b3duVG9CZU9wYXF1ZShjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDU1NHcmFkaWVudFZhbHVlOjplcXVhbHMoY29uc3QgQ1NT
R3JhZGllbnRWYWx1ZSYgb3RoZXIpIGNvbnN0Citib29sIENTU0dyYWRpZW50VmFsdWU6OmVxdWFs
cyhjb25zdCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1
cm4gY29tcGFyZUNTU1ZhbHVlUHRyKG1fZmlyc3RYLCBvdGhlci5tX2ZpcnN0WCkKLSAgICAgICAg
JiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fZmlyc3RZLCBvdGhlci5tX2ZpcnN0WSkKLSAgICAgICAg
JiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fc2Vjb25kWCwgb3RoZXIubV9zZWNvbmRYKQotICAgICAg
ICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9zZWNvbmRZLCBvdGhlci5tX3NlY29uZFkpCi0gICAg
ICAgICYmIG1fc3RvcHMgPT0gb3RoZXIubV9zdG9wcwotICAgICAgICAmJiBtX2dyYWRpZW50VHlw
ZSA9PSBvdGhlci5tX2dyYWRpZW50VHlwZQotICAgICAgICAmJiBtX3JlcGVhdGluZyA9PSBvdGhl
ci5tX3JlcGVhdGluZzsKKyAgICBpZiAoIWlzPENTU0dyYWRpZW50VmFsdWU+KG90aGVyKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgb3RoZXJHcmFkaWVudFZhbHVlID0gZG93
bmNhc3Q8Q1NTR3JhZGllbnRWYWx1ZT4ob3RoZXIpOworICAgIHJldHVybiBjb21wYXJlQ1NTVmFs
dWVQdHIobV9maXJzdFgsIG90aGVyR3JhZGllbnRWYWx1ZS5tX2ZpcnN0WCkKKyAgICAgICAgJiYg
Y29tcGFyZUNTU1ZhbHVlUHRyKG1fZmlyc3RZLCBvdGhlckdyYWRpZW50VmFsdWUubV9maXJzdFkp
CisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX3NlY29uZFgsIG90aGVyR3JhZGllbnRW
YWx1ZS5tX3NlY29uZFgpCisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX3NlY29uZFks
IG90aGVyR3JhZGllbnRWYWx1ZS5tX3NlY29uZFkpCisgICAgICAgICYmIG1fc3RvcHMgPT0gb3Ro
ZXJHcmFkaWVudFZhbHVlLm1fc3RvcHMKKyAgICAgICAgJiYgbV9ncmFkaWVudFR5cGUgPT0gb3Ro
ZXJHcmFkaWVudFZhbHVlLm1fZ3JhZGllbnRUeXBlCisgICAgICAgICYmIG1fcmVwZWF0aW5nID09
IG90aGVyR3JhZGllbnRWYWx1ZS5tX3JlcGVhdGluZzsKIH0KIAogc3RhdGljIHZvaWQgYXBwZW5k
R3JhZGllbnRTdG9wcyhTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBjb25zdCBWZWN0b3I8Q1NTR3Jh
ZGllbnRDb2xvclN0b3AsIDI+JiBzdG9wcykKQEAgLTg3Niw5ICs4ODAsMTEgQEAgUmVmPEdyYWRp
ZW50PiBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50
JiByZW5kZXJlciwgY28KICAgICByZXR1cm4gZ3JhZGllbnQ7CiB9CiAKLWJvb2wgQ1NTTGluZWFy
R3JhZGllbnRWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0xpbmVhckdyYWRpZW50VmFsdWUmIG90aGVy
KSBjb25zdAorYm9vbCBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjplcXVhbHMoY29uc3QgQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENTU0dyYWRpZW50
VmFsdWU6OmVxdWFscyhvdGhlcikgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fYW5nbGUsIG90aGVy
Lm1fYW5nbGUpOworICAgIGlmICghaXM8Q1NTTGluZWFyR3JhZGllbnRWYWx1ZT4ob3RoZXIpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIENTU0dyYWRpZW50VmFsdWU6OmVxdWFs
cyhvdGhlcikgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fYW5nbGUsIGRvd25jYXN0PENTU0xpbmVh
ckdyYWRpZW50VmFsdWU+KG90aGVyKS5tX2FuZ2xlKTsKIH0KIAogU3RyaW5nIENTU1JhZGlhbEdy
YWRpZW50VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdApAQCAtMTIwNiwxMyArMTIxMiwxNyBA
QCBSZWY8R3JhZGllbnQ+IENTU1JhZGlhbEdyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjbwogICAgIHJldHVybiBncmFkaWVudDsKIH0KIAotYm9v
bCBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjplcXVhbHMoY29uc3QgQ1NTUmFkaWFsR3JhZGllbnRW
YWx1ZSYgb3RoZXIpIGNvbnN0Citib29sIENTU1JhZGlhbEdyYWRpZW50VmFsdWU6OmVxdWFscyhj
b25zdCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBvdGhlcikgY29uc3QKIHsKKyAgICBpZiAoIWlz
PENTU1JhZGlhbEdyYWRpZW50VmFsdWU+KG90aGVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgYXV0byYgb3RoZXJSYWRpYWxHcmFkaWVudFZhbHVlID0gZG93bmNhc3Q8Q1NTUmFkaWFs
R3JhZGllbnRWYWx1ZT4ob3RoZXIpOwogICAgIHJldHVybiBDU1NHcmFkaWVudFZhbHVlOjplcXVh
bHMob3RoZXIpCi0gICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX3NoYXBlLCBvdGhlci5t
X3NoYXBlKQotICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9zaXppbmdCZWhhdmlvciwg
b3RoZXIubV9zaXppbmdCZWhhdmlvcikKLSAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1f
ZW5kSG9yaXpvbnRhbFNpemUsIG90aGVyLm1fZW5kSG9yaXpvbnRhbFNpemUpCi0gICAgICAgICYm
IGNvbXBhcmVDU1NWYWx1ZVB0cihtX2VuZFZlcnRpY2FsU2l6ZSwgb3RoZXIubV9lbmRWZXJ0aWNh
bFNpemUpOworICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9zaGFwZSwgb3RoZXJSYWRp
YWxHcmFkaWVudFZhbHVlLm1fc2hhcGUpCisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0ciht
X3NpemluZ0JlaGF2aW9yLCBvdGhlclJhZGlhbEdyYWRpZW50VmFsdWUubV9zaXppbmdCZWhhdmlv
cikKKyAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fZW5kSG9yaXpvbnRhbFNpemUsIG90
aGVyUmFkaWFsR3JhZGllbnRWYWx1ZS5tX2VuZEhvcml6b250YWxTaXplKQorICAgICAgICAmJiBj
b21wYXJlQ1NTVmFsdWVQdHIobV9lbmRWZXJ0aWNhbFNpemUsIG90aGVyUmFkaWFsR3JhZGllbnRW
YWx1ZS5tX2VuZFZlcnRpY2FsU2l6ZSk7CiB9CiAKIFN0cmluZyBDU1NDb25pY0dyYWRpZW50VmFs
dWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdApAQCAtMTI4Myw5ICsxMjkzLDEyIEBAIFJlZjxHcmFk
aWVudD4gQ1NTQ29uaWNHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50
JiByZW5kZXJlciwgY29uCiAgICAgcmV0dXJuIGdyYWRpZW50OwogfQogCi1ib29sIENTU0Nvbmlj
R3JhZGllbnRWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0NvbmljR3JhZGllbnRWYWx1ZSYgb3RoZXIp
IGNvbnN0Citib29sIENTU0NvbmljR3JhZGllbnRWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ltYWdl
R2VuZXJhdG9yVmFsdWUmIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBDU1NHcmFkaWVudFZh
bHVlOjplcXVhbHMob3RoZXIpICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2FuZ2xlLCBvdGhlci5t
X2FuZ2xlKTsKKyAgICBpZiAoIWlzPENTU0NvbmljR3JhZGllbnRWYWx1ZT4ob3RoZXIpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gQ1NTR3JhZGllbnRWYWx1ZTo6ZXF1YWxz
KG90aGVyKSAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9hbmdsZSwgZG93bmNhc3Q8Q1NTQ29uaWNH
cmFkaWVudFZhbHVlPihvdGhlcikubV9hbmdsZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCmluZGV4IDQwNjk3OTg0NjdkZThh
ODJlZDM0NTJmNDJkZTY0YzAzMmNhZTFhMzMuLmU1Y2ZmMWMwZjlmOGEwMWMxZjI1NDQyYTdhYWE2
NDNjNWYyZjkzOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuaApAQCAtMTEw
LDcgKzExMCw3IEBAIHByb3RlY3RlZDoKICAgICBhdXRvJiBzdG9wcygpIGNvbnN0IHsgcmV0dXJu
IG1fc3RvcHM7IH0KICAgICBib29sIGlzUmVwZWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9yZXBl
YXRpbmc7IH0KIAotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0dyYWRpZW50VmFsdWUmKSBjb25z
dDsKKyAgICBib29sIGVxdWFscyhjb25zdCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJikgY29uc3Qg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBoYXNDb2xvckRlcml2ZWRGcm9tRWxlbWVu
dCgpIGNvbnN0OwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ1NTTGluZWFyR3JhZGllbnRWYWx1ZSgqdGhpcykpOwogICAgIH0KIAotICAg
IGJvb2wgZXF1YWxzKGNvbnN0IENTU0xpbmVhckdyYWRpZW50VmFsdWUmKSBjb25zdDsKKyAgICBi
b29sIGVxdWFscyhjb25zdCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJikgY29uc3QgZmluYWw7CiAK
IHByaXZhdGU6CiAgICAgQ1NTTGluZWFyR3JhZGllbnRWYWx1ZShDU1NHcmFkaWVudFJlcGVhdCBy
ZXBlYXQsIENTU0dyYWRpZW50VHlwZSBncmFkaWVudFR5cGUgPSBDU1NMaW5lYXJHcmFkaWVudCkK
QEAgLTE4OSw3ICsxODksNyBAQCBwdWJsaWM6CiAgICAgLy8gQ3JlYXRlIHRoZSBncmFkaWVudCBm
b3IgYSBnaXZlbiBzaXplLgogICAgIFJlZjxHcmFkaWVudD4gY3JlYXRlR3JhZGllbnQoUmVuZGVy
RWxlbWVudCYsIGNvbnN0IEZsb2F0U2l6ZSYpOwogCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NT
UmFkaWFsR3JhZGllbnRWYWx1ZSYpIGNvbnN0OworICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0lt
YWdlR2VuZXJhdG9yVmFsdWUmKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBDU1NSYWRp
YWxHcmFkaWVudFZhbHVlKENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdCwgQ1NTR3JhZGllbnRUeXBl
IGdyYWRpZW50VHlwZSA9IENTU1JhZGlhbEdyYWRpZW50KQpAQCAtMjQyLDcgKzI0Miw3IEBAIHB1
YmxpYzoKICAgICAvLyBDcmVhdGUgdGhlIGdyYWRpZW50IGZvciBhIGdpdmVuIHNpemUuCiAgICAg
UmVmPEdyYWRpZW50PiBjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50JiwgY29uc3QgRmxvYXRT
aXplJik7CiAKLSAgICBib29sIGVxdWFscyhjb25zdCBDU1NDb25pY0dyYWRpZW50VmFsdWUmKSBj
b25zdDsKKyAgICBib29sIGVxdWFscyhjb25zdCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJikgY29u
c3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ1NTQ29uaWNHcmFkaWVudFZhbHVl
KENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZS5oCmluZGV4IDVlYWNiNGU1NWE1MzBhZGEzNWJlZGViZTMyYTk1ZWI1Yzg2
MjAwYjAuLjAwZmNiNzdhZGNiY2E1ZTMwNjFkNjFkZWIzODM3YWYxZDdiZDI2ODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaApAQCAtNDEsNyArNDEsNyBA
QCBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zOwogCiBjbGFzcyBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKLSAgICB+Q1NTSW1hZ2VHZW5lcmF0
b3JWYWx1ZSgpOworICAgIHZpcnR1YWwgfkNTU0ltYWdlR2VuZXJhdG9yVmFsdWUoKTsKIAogICAg
IHZvaWQgYWRkQ2xpZW50KFJlbmRlckVsZW1lbnQmKTsKICAgICB2b2lkIHJlbW92ZUNsaWVudChS
ZW5kZXJFbGVtZW50Jik7CkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbG9h
ZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRlciYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0
aW9ucyYpOwogCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU0ltYWdlR2VuZXJhdG9yVmFs
dWUmIG90aGVyKSBjb25zdCB7IHJldHVybiBlcXVhbHMob3RoZXIpOyB9CisgICAgdmlydHVhbCBi
b29sIGVxdWFscyhjb25zdCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBvdGhlcikgY29uc3QgeyBy
ZXR1cm4gdGhpcyA9PSAmb3RoZXI7IH0KKwogcHJvdGVjdGVkOgogICAgIENTU0ltYWdlR2VuZXJh
dG9yVmFsdWUoQ2xhc3NUeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U05hbWVkSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZWRJbWFnZVZh
bHVlLmNwcAppbmRleCA0MzczNmRlYzNiOTBhNmU0NDY3NzA5YjFmZTU3NDVkODYwMWJlMWU0Li5h
OTk2NzQ5Y2FiNjk2ODI5M2QxNDVjZWM3ODgwMjM1NjBkYmRiMDg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTTmFtZWRJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTmFtZWRJbWFnZVZhbHVlLmNwcApAQCAtNDMsOSArNDMsOSBAQCBSZWZQdHI8SW1h
Z2U+IENTU05hbWVkSW1hZ2VWYWx1ZTo6aW1hZ2UoUmVuZGVyRWxlbWVudCYsIGNvbnN0IEZsb2F0
U2l6ZSYgc2l6ZSkKICAgICByZXR1cm4gTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUo
bV9uYW1lLCBzaXplKTsKIH0KIAotYm9vbCBDU1NOYW1lZEltYWdlVmFsdWU6OmVxdWFscyhjb25z
dCBDU1NOYW1lZEltYWdlVmFsdWUmIG90aGVyKSBjb25zdAorYm9vbCBDU1NOYW1lZEltYWdlVmFs
dWU6OmVxdWFscyhjb25zdCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBvdGhlcikgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9uYW1lID09IG90aGVyLm1fbmFtZTsKKyAgICByZXR1cm4gaXM8Q1NTTmFt
ZWRJbWFnZVZhbHVlPihvdGhlcikgJiYgbV9uYW1lID09IGRvd25jYXN0PENTU05hbWVkSW1hZ2VW
YWx1ZT4ob3RoZXIpLm1fbmFtZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU05hbWVkSW1hZ2VWYWx1ZS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU05hbWVkSW1hZ2VWYWx1ZS5oCmluZGV4IDExMzliYTFiNDU5MDIxZjE5ZDYy
ODI4MTVhODU3OThlOWQwOWNmODUuLmJjMTE4NzU0M2M0ZTc4YWVmMTY4Y2EzYzhiYTk4MDVlNWE4
Mjc1ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NOYW1lZEltYWdlVmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTmFtZWRJbWFnZVZhbHVlLmgKQEAgLTQ0LDcg
KzQ0LDcgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJFbGVtZW50
JiwgY29uc3QgRmxvYXRTaXplJik7CiAKLSAgICBib29sIGVxdWFscyhjb25zdCBDU1NOYW1lZElt
YWdlVmFsdWUmKSBjb25zdDsKKyAgICBib29sIGVxdWFscyhjb25zdCBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlJikgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ1NTTmFtZWRJ
bWFnZVZhbHVlKGNvbnN0IFN0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYWludEltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhaW50
SW1hZ2VWYWx1ZS5jcHAKaW5kZXggOGNhNmU1ZTIwYzU0ZTc2YzFlNjk2ZWEyOGJlZDQ0MDEyMTI0
MTNlYi4uMDliMTBhNWUxZWMwYzlhNDQ5MTg4NGI2NWEzOWFiOWE4ZDljMWU3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5jcHAKQEAgLTg0LDYgKzg0LDExIEBAIFJl
ZlB0cjxJbWFnZT4gQ1NTUGFpbnRJbWFnZVZhbHVlOjppbWFnZShSZW5kZXJFbGVtZW50JiByZW5k
ZXJFbGVtZW50LCBjb25zdCBGbG9hCiAgICAgcmV0dXJuIEN1c3RvbVBhaW50SW1hZ2U6OmNyZWF0
ZSgqcmVnaXN0cmF0aW9uLCBzaXplLCByZW5kZXJFbGVtZW50LCBhcmd1bWVudHMpOwogfQogCiti
b29sIENTU1BhaW50SW1hZ2VWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ltYWdlR2VuZXJhdG9yVmFs
dWUmIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQYWludEltYWdlVmFsdWU+KG90
aGVyKSAmJiBtX25hbWUgPT0gZG93bmNhc3Q8Q1NTUGFpbnRJbWFnZVZhbHVlPihvdGhlcikubV9u
YW1lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5oCmluZGV4IDQzYmNjMWNhY2Q4MGUxYjY5ODBhOTI3NTFm
NzhlNWJiMDUzOTMyY2QuLjJhOGZjNjI4Nzc0YmFiNzUxYzgxMzc1Y2U1MjMwOTBkOTRjYjBlNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWludEltYWdlVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFpbnRJbWFnZVZhbHVlLmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgcHVibGljOgogCiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJFbGVtZW50JiwgY29u
c3QgRmxvYXRTaXplJik7CiAKLSAgICBib29sIGVxdWFscyhjb25zdCBDU1NQYWludEltYWdlVmFs
dWUmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX25hbWUgPT0gb3RoZXIubV9uYW1lOyB9CisgICAg
Ym9vbCBlcXVhbHMoY29uc3QgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgb3RoZXIpIGNvbnN0IGZp
bmFsOwogICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7CiAKICAgICBib29sIGlzRml4
ZWRTaXplKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA4ZDFmY2Y2ZDYxOGI5MDRkMzE1NjM2NzBiY2NhNjEz
ZjgwOWNjYzFjLi5lNWJkOWE1MDM5ZTkwMjE2MTBkYjljM2M0Zjg0MDQxOGQyYTc2NzQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0zNTMsMTAgKzM1
MywzMSBAQCBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRSZXBhaW50Rm9yU3R5bGVE
aWZmZXJlbmNlKFN0eWxlRGlmZmVyZW5jZSBkaWZmKQogCiB2b2lkIFJlbmRlckVsZW1lbnQ6OnVw
ZGF0ZUZpbGxJbWFnZXMoY29uc3QgRmlsbExheWVyKiBvbGRMYXllcnMsIGNvbnN0IEZpbGxMYXll
ciYgbmV3TGF5ZXJzKQogewotICAgIC8vIE9wdGltaXplIHRoZSBjb21tb24gY2FzZS4KLSAgICBp
ZiAoRmlsbExheWVyOjppbWFnZXNJZGVudGljYWwob2xkTGF5ZXJzLCAmbmV3TGF5ZXJzKSkKKyAg
ICBhdXRvIGZpbGxJbWFnZXNBcmVJZGVudGljYWwgPSBbXShjb25zdCBGaWxsTGF5ZXIqIGxheWVy
MSwgY29uc3QgRmlsbExheWVyKiBsYXllcjIpIC0+IGJvb2wgeworICAgICAgICBpZiAobGF5ZXIx
ID09IGxheWVyMikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGZvciAoOyBs
YXllcjEgJiYgbGF5ZXIyOyBsYXllcjEgPSBsYXllcjEtPm5leHQoKSwgbGF5ZXIyID0gbGF5ZXIy
LT5uZXh0KCkpIHsKKyAgICAgICAgICAgIGlmICghYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShsYXll
cjEtPmltYWdlKCksIGxheWVyMi0+aW1hZ2UoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICFsYXllcjEgJiYgIWxheWVyMjsKKyAg
ICB9OworCisgICAgYXV0byBpc1JlZ2lzdGVyZWRXaXRoTmV3RmlsbEltYWdlcyA9IFsmXSgpIC0+
IGJvb2wgeworICAgICAgICBmb3IgKGF1dG8qIGxheWVyID0gJm5ld0xheWVyczsgbGF5ZXI7IGxh
eWVyID0gbGF5ZXItPm5leHQoKSkgeworICAgICAgICAgICAgaWYgKGxheWVyLT5pbWFnZSgpICYm
ICFsYXllci0+aW1hZ2UoKS0+aGFzQ2xpZW50KCp0aGlzKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfTsKKworICAg
IC8vIElmIGltYWdlcyBoYXZlIHRoZSBzYW1lIGNoYXJhY3RlcmlzdGljcyBhbmQgdGhpcyBlbGVt
ZW50IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBhcyBhCisgICAgLy8gY2xpZW50IHRvIHRoZSBuZXcg
aW1hZ2VzLCB0aGVyZSBpcyBub3RoaW5nIHRvIGRvLgorICAgIGlmIChmaWxsSW1hZ2VzQXJlSWRl
bnRpY2FsKG9sZExheWVycywgJm5ld0xheWVycykgJiYgaXNSZWdpc3RlcmVkV2l0aE5ld0ZpbGxJ
bWFnZXMoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gQWRkIGJlZm9yZSByZW1v
dmluZywgdG8gYXZvaWQgcmVtb3ZpbmcgYWxsIGNsaWVudHMgb2YgYW4gaW1hZ2UgdGhhdCBpcyBp
biBib3RoIHNldHMuCiAgICAgZm9yIChhdXRvKiBsYXllciA9ICZuZXdMYXllcnM7IGxheWVyOyBs
YXllciA9IGxheWVyLT5uZXh0KCkpIHsKICAgICAgICAgaWYgKGxheWVyLT5pbWFnZSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAppbmRleCA0N2FlMWYy
YzMwMmEyMzZjMDFhNmRjNDJmNDJjMGVlZTc1NmU4NzQ3Li40NmUzZThhNGNmOWY5ZWFmNjVlZGVi
YTAxMDExNGFhNWM4ZTIzNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvRmlsbExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
RmlsbExheWVyLmNwcApAQCAtMzk2LDE5ICszOTYsNiBAQCBib29sIEZpbGxMYXllcjo6aGFzRml4
ZWRJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEZpbGxMYXllcjo6
aW1hZ2VzSWRlbnRpY2FsKGNvbnN0IEZpbGxMYXllciogbGF5ZXIxLCBjb25zdCBGaWxsTGF5ZXIq
IGxheWVyMikKLXsKLSAgICBpZiAobGF5ZXIxID09IGxheWVyMikKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0KLSAgICBmb3IgKDsgbGF5ZXIxICYmIGxheWVyMjsgbGF5ZXIxID0gbGF5ZXIxLT5uZXh0
KCksIGxheWVyMiA9IGxheWVyMi0+bmV4dCgpKSB7Ci0gICAgICAgIGlmICghYXJlUG9pbnRpbmdU
b0VxdWFsRGF0YShsYXllcjEtPmltYWdlKCksIGxheWVyMi0+aW1hZ2UoKSkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuICFsYXllcjEgJiYgIWxheWVyMjsK
LX0KLQogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgRmlsbFNpemUgZmls
bFNpemUpCiB7CiAgICAgcmV0dXJuIHRzIDw8IGZpbGxTaXplLnR5cGUgPDwgIiAiIDw8IGZpbGxT
aXplLnNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmls
bExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKaW5k
ZXggYWVkYWZmZGYzZWE3MTU0MGY2N2QwNTFkMTdlYTEyMzJlMzIzMzE1NC4uOGQ3NWQ1OGU1ODMz
NDY4NGM4ODBjNTM4MTNjNzFjMTU5YTIxMWJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9GaWxsTGF5ZXIuaApAQCAtMTU5LDggKzE1OSw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IGZpbGxVbnNldFByb3BlcnRpZXMoKTsKICAgICB2b2lkIGN1bGxFbXB0eUxheWVycygpOwogCi0g
ICAgc3RhdGljIGJvb2wgaW1hZ2VzSWRlbnRpY2FsKGNvbnN0IEZpbGxMYXllciosIGNvbnN0IEZp
bGxMYXllciopOwotCiAgICAgc3RhdGljIEZpbGxBdHRhY2htZW50IGluaXRpYWxGaWxsQXR0YWNo
bWVudChGaWxsTGF5ZXJUeXBlKSB7IHJldHVybiBGaWxsQXR0YWNobWVudDo6U2Nyb2xsQmFja2dy
b3VuZDsgfQogICAgIHN0YXRpYyBGaWxsQm94IGluaXRpYWxGaWxsQ2xpcChGaWxsTGF5ZXJUeXBl
KSB7IHJldHVybiBGaWxsQm94OjpCb3JkZXI7IH0KICAgICBzdGF0aWMgRmlsbEJveCBpbml0aWFs
RmlsbE9yaWdpbihGaWxsTGF5ZXJUeXBlIHR5cGUpIHsgcmV0dXJuIHR5cGUgPT0gRmlsbExheWVy
VHlwZTo6QmFja2dyb3VuZCA/IEZpbGxCb3g6OlBhZGRpbmcgOiBGaWxsQm94OjpCb3JkZXI7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZElt
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdl
LmNwcAppbmRleCBjYjM3ODY2NDk5NzJiYjJkOGFkMDUwOWRlMDYzNDFjMDZmYTc5OGZhLi45ODM2
OTA3ZDVmNmI3ZTIxNDA1NTQwMjM0ZDNkOGIyNmI5MjgwNzk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwCkBAIC0xNzIsNiAr
MTcyLDE0IEBAIHZvaWQgU3R5bGVDYWNoZWRJbWFnZTo6cmVtb3ZlQ2xpZW50KFJlbmRlckVsZW1l
bnQmIHJlbmRlcmVyKQogICAgIG1fY2FjaGVkSW1hZ2UtPnJlbW92ZUNsaWVudChyZW5kZXJlcik7
CiB9CiAKK2Jvb2wgU3R5bGVDYWNoZWRJbWFnZTo6aGFzQ2xpZW50KFJlbmRlckVsZW1lbnQmIHJl
bmRlcmVyKSBjb25zdAoreworICAgIEFTU0VSVCghbV9pc1BlbmRpbmcpOworICAgIGlmICghbV9j
YWNoZWRJbWFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX2NhY2hlZElt
YWdlLT5oYXNDbGllbnQocmVuZGVyZXIpOworfQorCiBSZWZQdHI8SW1hZ2U+IFN0eWxlQ2FjaGVk
SW1hZ2U6OmltYWdlKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBGbG9hdFNpemUmKSBj
b25zdAogewogICAgIEFTU0VSVCghbV9pc1BlbmRpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmgKaW5kZXggNTBlZDcxMzU2NzJkNTkz
OTBhZDJmNWNmNGFhMDM5MDVlNDQ1NjUxOC4uYjU0YTJlYWYyMGZkZGYzM2ViZTRkYmM2MzFmY2Uz
ODdlNjA4MGUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVDYWNoZWRJbWFnZS5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENv
bnRhaW5lckNvbnRleHRGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJFbGVtZW50JiwgY29uc3QgRmxv
YXRTaXplJiwgZmxvYXQpIGZpbmFsOwogICAgIHZvaWQgYWRkQ2xpZW50KFJlbmRlckVsZW1lbnQm
KSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJFbGVtZW50JikgZmluYWw7Cisg
ICAgYm9vbCBoYXNDbGllbnQoUmVuZGVyRWxlbWVudCYpIGNvbnN0IGZpbmFsOwogICAgIFJlZlB0
cjxJbWFnZT4gaW1hZ2UoUmVuZGVyRWxlbWVudCosIGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0IGZp
bmFsOwogICAgIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBmaW5hbDsKICAgICBib29s
IGtub3duVG9CZU9wYXF1ZShjb25zdCBSZW5kZXJFbGVtZW50JikgY29uc3QgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFn
ZS5jcHAKaW5kZXggN2QxMjE1ZjAxODVlNzZiYzY1ZWYyZjIzNzdkZjIxZWE3MTE0NmMzOC4uMmVj
NTNmMzUzNzQ0NTIxYjVjYjEwMTU4YzY3ZGNhMjJmZDhkZWMzZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcApAQCAt
MzcsNiArMzcsMTMgQEAgU3R5bGVHZW5lcmF0ZWRJbWFnZTo6U3R5bGVHZW5lcmF0ZWRJbWFnZShS
ZWY8Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZT4mJiB2YWx1ZSkKICAgICBtX2lzR2VuZXJhdGVkSW1h
Z2UgPSB0cnVlOwogfQogCitib29sIFN0eWxlR2VuZXJhdGVkSW1hZ2U6Om9wZXJhdG9yPT0oY29u
c3QgU3R5bGVJbWFnZSYgb3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKGlzPFN0eWxlR2VuZXJhdGVk
SW1hZ2U+KG90aGVyKSkKKyAgICAgICAgcmV0dXJuIGFyZVBvaW50aW5nVG9FcXVhbERhdGEobV9p
bWFnZUdlbmVyYXRvclZhbHVlLnB0cigpLCBkb3duY2FzdDxTdHlsZUdlbmVyYXRlZEltYWdlPihv
dGhlcikubV9pbWFnZUdlbmVyYXRvclZhbHVlLnB0cigpKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIFJlZjxDU1NWYWx1ZT4gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3NzVmFsdWUoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2ltYWdlR2VuZXJhdG9yVmFsdWUuY29weVJlZigpOwpAQCAtOTYsNiAr
MTAzLDExIEBAIHZvaWQgU3R5bGVHZW5lcmF0ZWRJbWFnZTo6cmVtb3ZlQ2xpZW50KFJlbmRlckVs
ZW1lbnQmIHJlbmRlcmVyKQogICAgIG1faW1hZ2VHZW5lcmF0b3JWYWx1ZS0+cmVtb3ZlQ2xpZW50
KHJlbmRlcmVyKTsKIH0KIAorYm9vbCBTdHlsZUdlbmVyYXRlZEltYWdlOjpoYXNDbGllbnQoUmVu
ZGVyRWxlbWVudCYgcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW1hZ2VHZW5lcmF0
b3JWYWx1ZS0+Y2xpZW50cygpLmNvbnRhaW5zKCZyZW5kZXJlcik7Cit9CisKIFJlZlB0cjxJbWFn
ZT4gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6aW1hZ2UoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICByZXR1cm4gcmVuZGVyZXIgPyBtX2lt
YWdlR2VuZXJhdG9yVmFsdWUtPmltYWdlKCpyZW5kZXJlciwgc2l6ZSkgOiAmSW1hZ2U6Om51bGxJ
bWFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
R2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdl
bmVyYXRlZEltYWdlLmgKaW5kZXggNGUxZDAyZjBhZTY0NmFkYTNjZTQxYjA3NmU4NzY0Zjc0MzAx
YzMwYS4uZjUxNTU1NDVjMjhkYmEzMjNhN2NhYWQxOTU0YTQwOGU1MGM0MTE3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5o
CkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBp
bWFnZVZhbHVlKCkgeyByZXR1cm4gbV9pbWFnZUdlbmVyYXRvclZhbHVlOyB9CiAKIHByaXZhdGU6
Ci0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0eWxlSW1hZ2UmIG90aGVyKSBjb25zdCBmaW5h
bCB7IHJldHVybiBkYXRhKCkgPT0gb3RoZXIuZGF0YSgpOyB9CisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFN0eWxlSW1hZ2UmIG90aGVyKSBjb25zdCBmaW5hbDsKIAogICAgIFdyYXBwZWRJbWFn
ZVB0ciBkYXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pbWFnZUdlbmVyYXRvclZhbHVlLnB0
cigpOyB9CiAKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENvbnRhaW5l
ckNvbnRleHRGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJFbGVtZW50JiwgY29uc3QgRmxvYXRTaXpl
JiBjb250YWluZXJTaXplLCBmbG9hdCkgZmluYWwgeyBtX2NvbnRhaW5lclNpemUgPSBjb250YWlu
ZXJTaXplOyB9CiAgICAgdm9pZCBhZGRDbGllbnQoUmVuZGVyRWxlbWVudCYpIGZpbmFsOwogICAg
IHZvaWQgcmVtb3ZlQ2xpZW50KFJlbmRlckVsZW1lbnQmKSBmaW5hbDsKKyAgICBib29sIGhhc0Ns
aWVudChSZW5kZXJFbGVtZW50JikgY29uc3QgZmluYWw7CiAgICAgUmVmUHRyPEltYWdlPiBpbWFn
ZShSZW5kZXJFbGVtZW50KiwgY29uc3QgRmxvYXRTaXplJikgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBrbm93blRvQmVPcGFxdWUoY29uc3QgUmVuZGVyRWxlbWVudCYpIGNvbnN0IGZpbmFsOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaAppbmRleCAzZWQ4OTgz
MTBjM2Q2ZTI5ZDBiYmQ4YmE5Mjc4NDJhNjY4ZGNlMDIyLi4xNjU0ZDFkOGRiNmFhZDMyY2MzZTM5
ZTdiODkzMjY4NzY1MDRiMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUltYWdlLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250YWluZXJDb250ZXh0Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCYsIGNvbnN0
IEZsb2F0U2l6ZSYsIGZsb2F0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkZENsaWVudChSZW5k
ZXJFbGVtZW50JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVyRWxl
bWVudCYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQ2xpZW50KFJlbmRlckVsZW1lbnQmKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlckVsZW1lbnQq
LCBjb25zdCBGbG9hdFNpemUmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBXcmFwcGVkSW1hZ2VQ
dHIgZGF0YSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGZsb2F0IGltYWdlU2NhbGVGYWN0b3Io
KSBjb25zdCB7IHJldHVybiAxOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVNdWx0aUltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZU11bHRpSW1hZ2UuY3BwCmluZGV4IDc3NjY2N2M3YTY0YWIxNjA2YjcwYzdjMzZm
MTFmMjc3NmUyYzExNTEuLmIzNzRiMDE4NGU4NDU5ZmNkOTBjZjI3N2RkYzM5ODRlZjEwOTNmNjQg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpSW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpSW1h
Z2UuY3BwCkBAIC0xNDgsNiArMTQ4LDEzIEBAIHZvaWQgU3R5bGVNdWx0aUltYWdlOjpyZW1vdmVD
bGllbnQoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAgICAgbV9zZWxlY3RlZEltYWdlLT5yZW1v
dmVDbGllbnQocmVuZGVyZXIpOwogfQogCitib29sIFN0eWxlTXVsdGlJbWFnZTo6aGFzQ2xpZW50
KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKSBjb25zdAoreworICAgIGlmICghbV9zZWxlY3RlZElt
YWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJbWFnZS0+
aGFzQ2xpZW50KHJlbmRlcmVyKTsKK30KKwogUmVmUHRyPEltYWdlPiBTdHlsZU11bHRpSW1hZ2U6
OmltYWdlKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBGbG9hdFNpemUmIHNpemUpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX3NlbGVjdGVkSW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUltYWdlLmgKaW5kZXggODZmYTViNzFiNWU5YTk0MTVl
YzMwN2VlYzBhN2E1OWJjZjFiZDRlMy4uN2ZiNWFmMTc1MGJkNzRjZjA3M2QxNjRjZDlhMTE2YmI1
YTdiN2UyOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
TXVsdGlJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11
bHRpSW1hZ2UuaApAQCAtNTksNiArNTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q29udGFp
bmVyQ29udGV4dEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQmLCBjb25zdCBGbG9hdFNp
emUmLCBmbG9hdCk7CiAgICAgdm9pZCBhZGRDbGllbnQoUmVuZGVyRWxlbWVudCYpIGZpbmFsOwog
ICAgIHZvaWQgcmVtb3ZlQ2xpZW50KFJlbmRlckVsZW1lbnQmKSBmaW5hbDsKKyAgICBib29sIGhh
c0NsaWVudChSZW5kZXJFbGVtZW50JikgY29uc3QgZmluYWw7CiAgICAgUmVmUHRyPEltYWdlPiBp
bWFnZShSZW5kZXJFbGVtZW50KiwgY29uc3QgRmxvYXRTaXplJikgY29uc3QgZmluYWw7CiAgICAg
ZmxvYXQgaW1hZ2VTY2FsZUZhY3RvcigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wga25vd25Ub0Jl
T3BhcXVlKGNvbnN0IFJlbmRlckVsZW1lbnQmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMDg2YjRi
MjUxMWYyMTdkZDU5YmVlYzhiZjcxYzJjODdlOTNkNmM1Li45MWVmMDdhNTY3NDVlYzMxMTRlNGRi
ZDE2NWU5OGIxMmMwZjlhYjczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDUtMDYgIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NTIGN1c3RvbSBw
cm9wZXJ0aWVzIG9uIHBzZXVkbyBlbGVtZW50cyBiYWNrZ3JvdW5kIGdyYWRpZW50cyBjYXVzZXMg
aW5maW5pdGUgbGF5b3V0IGFuZCBoaWdoIENQVSBsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQzMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ3ODczODk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIHRlc3Qgd2hlcmUgYW4gZWxlbWVudCB3aXRoIGEgYmFja2dyb3VuZC1pbWFnZSBz
ZXQgdG8gYSBDU1MgZ3JhZGllbnQgdXNpbmcgYSBjdXN0b20gcHJvcGVydHkgYXMgYSBjb2xvcgor
ICAgICAgICBzdG9wIGNoYW5nZXMgYW5vdGhlciBwcm9wZXJ0eSB0YXJnZXRlZCBieSBhIHRyYW5z
aXRpb24gdG8gY2hlY2sgdGhhdCB0aGVyZSBpcyBubyBiYWNrZ3JvdW5kLWltYWdlIHRyYW5zaXRp
b24KKyAgICAgICAgZ2VuZXJhdGVkLiAKKworICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY3NzLXRy
YW5zaXRpb24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1j
dXN0b20tcHJvcGVydHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmltYXRp
b25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdl
LWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5Lmh0bWw6IEFkZGVkLgorCiAyMDIxLTA1LTA1ICBSb2Jl
cnQgSmVubmVyICA8amVubmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbIEJpZ1N1ciB3azIgYXJt
NjQgXSBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXNpemVzLW5ldHdvcmsu
aHRtbCBpcyBhIGZsYWtleSB0ZXh0IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91
bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFj
a2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWRmNzBlNjliZTIxNmFkMmFiMGE3OWUxOTYwMjRkYzEyZmNhYzlhYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxlbWVu
dC13aXRoLWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVydHkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEFuIGVsZW1lbnQgd2l0aCBhIGJh
Y2tncm91bmQtaW1hZ2Ugc2V0IHRvIGEgQ1NTIGdyYWRpZW50IHdpdGggYSBzdG9wIGNvbG9yIHNl
dCBieSBhIGN1c3RvbSBwcm9wZXJ0eSBkb2VzIG5vdCB5aWVsZCBhIGJhY2tncm91bmQtaW1hZ2Ug
dHJhbnNpdGlvbiB3aGVuIGFub3RoZXIgQ1NTIHByb3BlcnR5IGNoYW5nZXMuCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxlbWVudC13aXRo
LWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVydHkuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxlbWVudC13aXRoLWdy
YWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVydHkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNDI5ZTllYWQzZjNlNjY1MTdkYjNjMWQ0NTQ4NTk1ODcxMTljNjdmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVt
ZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0
eS5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHN0eWxlPgorCis6cm9vdCB7CisgICAgLS1jdXN0b20tY29sb3I6IGJsdWU7Cit9
CisKKy50YXJnZXQgeworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAg
IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1jdXN0b20tY29sb3IpLCBncmVlbik7
CisgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7Cit9CisKKy50YXJnZXQudHJhbnNpdGlvbiB7
CisgICAgbWFyZ2luLWxlZnQ6IDEwMHB4OworfQorCis8L3N0eWxlPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KworJ3VzZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdGVzdCA9PiB7CisgICAgY29u
c3QgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKSk7CisgICAgdGFyZ2V0LmNsYXNzTGlzdC5hZGQoInRhcmdldCIpOworCisgICAg
YXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKKyAgICB0YXJnZXQuY2xh
c3NMaXN0LmFkZCgidHJhbnNpdGlvbiIpOworCisgICAgY29uc3QgYW5pbWF0aW9ucyA9IHRhcmdl
dC5nZXRBbmltYXRpb25zKCk7CisgICAgYXNzZXJ0X2VxdWFscyhhbmltYXRpb25zLmxlbmd0aCwg
MSwgIlRoZXJlIGlzIG9ubHkgb25lIGFuaW1hdGlvbiBhcHBsaWVkIHRvIHRoZSB0YXJnZXQuIik7
CisgICAgYXNzZXJ0X3RydWUoYW5pbWF0aW9uc1swXSBpbnN0YW5jZW9mIENTU1RyYW5zaXRpb24s
ICJUaGUgc2luZ2xlIGFuaW1hdGlvbiBhcHBsaWVkIHRvIHRoZSB0YXJnZXQgaXMgYSBDU1MgdHJh
bnNpdGlvbi4iKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFuaW1hdGlvbnNbMF0udHJhbnNpdGlvblBy
b3BlcnR5LCAibWFyZ2luLWxlZnQiLCAiVGhlIHNpbmdsZSBDU1MgdHJhbnNpdGlvbiBhcHBsaWVk
IHRvIHRoZSB0YXJnZXQgaXMgZm9yIHRoZSBtYXJnaW4tbGVmdCBwcm9wZXJ0eS4iKTsKK30sIGBB
biBlbGVtZW50IHdpdGggYSBiYWNrZ3JvdW5kLWltYWdlIHNldCB0byBhIENTUyBncmFkaWVudCB3
aXRoIGEgc3RvcCBjb2xvciBzZXQgYnkgYSBjdXN0b20gcHJvcGVydHkgZG9lcyBub3QgeWllbGQg
YSBiYWNrZ3JvdW5kLWltYWdlIHRyYW5zaXRpb24gd2hlbiBhbm90aGVyIENTUyBwcm9wZXJ0eSBj
aGFuZ2VzLmApOworCis8L3NjcmlwdD4KKzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427904</attachid>
            <date>2021-05-06 10:36:48 -0700</date>
            <delta_ts>2021-05-06 10:52:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194332-20210506193647.patch</filename>
            <type>text/plain</type>
            <size>18245</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQwZmQzYjdlMDVjZDE5
NGE3Y2NlODQ0ZDY5ODQ2Yjc2NDI3NWFlNi4uMmZjY2ZjMmI2OTQ0ODg5YjZiMjBiNjUxY2ZmYjVj
MDFkMmIzMmQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTA1LTA2ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBjdXN0b20gcHJv
cGVydGllcyBvbiBwc2V1ZG8gZWxlbWVudHMgYmFja2dyb3VuZCBncmFkaWVudHMgY2F1c2VzIGlu
ZmluaXRlIGxheW91dCBhbmQgaGlnaCBDUFUgbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
Nzg3Mzg5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIGEgYmFja2dyb3VuZC1pbWFnZSB1c2VzIGEgQ1NTIGN1c3RvbSBwcm9wZXJ0eSB0aGUg
cmVzdWx0aW5nIFN0eWxlR2VuZXJhdGVkSW1hZ2UgbWF5IG5vdCBiZSB0aGUgc2FtZQorICAgICAg
ICBvYmplY3QgYXMgZHVyaW5nIHByaW9yIHN0eWxlIHVwZGF0ZXMuIFRoaXMgY2F1c2VkIHRyYW5z
aXRpb25zIHRvIGJlIHRyaWdnZXJlZCBmb3IgYWxsIHN0eWxlIHVwZGF0ZXMgZm9yCisgICAgICAg
IHN1Y2ggYmFja2dyb3VuZC1pbWFnZSB2YWx1ZXMuIFRvIGZpeCB0aGlzLCB3ZSBtb2RpZnkgdGhl
ID09IG9wZXJhdG9yIGZvciBTdHlsZUdlbmVyYXRlZEltYWdlIHRvIHVzZQorICAgICAgICBhcmVQ
b2ludGluZ1RvRXF1YWxEYXRhKCkgd2l0aCB0aGUgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSBtZW1i
ZXIgYW5kIGFkZGVkIGFuID09IG9wZXJhdG9yIGZvciB0aGUKKyAgICAgICAgQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZSBjbGFzcyB0byBjYWxsIGludG8gdGhlIGV4aXN0aW5nIGVxdWFscygpIG1ldGhv
ZHMuIFRoZXNlIGVxdWFscygpIG1ldGhvZHMKKyAgICAgICAgYXJlIG5vdyBvdmVycmlkZXMgb2Yg
dGhlIHZpcnR1YWwgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSBtZXRob2QuCisKKyAgICAgICAgVGhp
cyBjaGFuZ2UgaW4gYmVoYXZpb3IgcmVxdWlyZWQgYSBjaGFuZ2UgaW4gUmVuZGVyRWxlbWVudDo6
dXBkYXRlRmlsbEltYWdlcygpIHRvIG5vdCBvbmx5IGNoZWNrIHdoZXRoZXIKKyAgICAgICAgdGhl
IGltYWdlcyB3ZXJlIGlkZW50aWNhbCwgYnV0IHRvIGFsc28gY2hlY2sgd2hldGhlciB0aGUgcmVu
ZGVyZXIgd2FzIHJlZ2lzdGVyZWQgYXMgYSBjbGllbnQgb24gdGhlIG5ldworICAgICAgICBpbWFn
ZXMuIFRvIGRvIHRoaXMsIHdlIGFkZCBhIG5ldyB2aXJ0dWFsIGhhc0NsaWVudCgpIG1ldGhvZCBv
biBTdHlsZUltYWdlLgorCisgICAgICAgIFRlc3Q6IHdlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRp
b24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20t
cHJvcGVydHkuaHRtbAorCisgICAgICAgICogY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6b3BlcmF0b3I9PSBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJF
bGVtZW50Ojp1cGRhdGVGaWxsSW1hZ2VzKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvRmls
bExheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6aW1hZ2VzSWRlbnRpY2Fs
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVDYWNoZWRJbWFnZTo6aGFzQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlR2VuZXJh
dGVkSW1hZ2U6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHZW5l
cmF0ZWRJbWFnZTo6aGFzQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUlt
YWdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpSW1hZ2U6Omhhc0NsaWVudCBjb25zdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5oOgorCiAyMDIxLTA1LTA1ICBN
ZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQXBwSGln
aGxpZ2h0IHNjcm9sbHMgc2hvdWxkIGJlIHNtb290aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCmluZGV4IGEwNzJkYTg5YWIxYjM4MTAxZDIyZjViZTE1
OGFlMzU0YWI4MjBhMjQuLjZiYzQ0MTY2NjFiZmNlMDI2NjU3ZDIyYTA4OWIwOWUyYTE3ZDdhYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKQEAg
LTI5OCw2ICsyOTgsMzMgQEAgdm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpsb2FkU3ViaW1h
Z2VzKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUwKICAgICB9CiB9CiAKK2Jv
b2wgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6b3BlcmF0b3I9PShjb25zdCBDU1NJbWFnZUdlbmVy
YXRvclZhbHVlJiBvdGhlcikgY29uc3QKK3sKKyAgICBpZiAoY2xhc3NUeXBlKCkgIT0gb3RoZXIu
Y2xhc3NUeXBlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRjaCAoY2xhc3NU
eXBlKCkpIHsKKyAgICBjYXNlIENyb3NzZmFkZUNsYXNzOgorICAgICAgICByZXR1cm4gZG93bmNh
c3Q8Q1NTQ3Jvc3NmYWRlVmFsdWU+KCp0aGlzKS5lcXVhbHMoZG93bmNhc3Q8Q1NTQ3Jvc3NmYWRl
VmFsdWU+KG90aGVyKSk7CisgICAgY2FzZSBDYW52YXNDbGFzczoKKyAgICAgICAgcmV0dXJuIGRv
d25jYXN0PENTU0NhbnZhc1ZhbHVlPigqdGhpcykuZXF1YWxzKGRvd25jYXN0PENTU0NhbnZhc1Zh
bHVlPihvdGhlcikpOworICAgIGNhc2UgRmlsdGVySW1hZ2VDbGFzczoKKyAgICAgICAgcmV0dXJu
IGRvd25jYXN0PENTU0ZpbHRlckltYWdlVmFsdWU+KCp0aGlzKS5lcXVhbHMoZG93bmNhc3Q8Q1NT
RmlsdGVySW1hZ2VWYWx1ZT4ob3RoZXIpKTsKKyAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6
CisgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NMaW5lYXJHcmFkaWVudFZhbHVlPigqdGhpcyku
ZXF1YWxzKGRvd25jYXN0PENTU0xpbmVhckdyYWRpZW50VmFsdWU+KG90aGVyKSk7CisgICAgY2Fz
ZSBSYWRpYWxHcmFkaWVudENsYXNzOgorICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUmFkaWFs
R3JhZGllbnRWYWx1ZT4oKnRoaXMpLmVxdWFscyhkb3duY2FzdDxDU1NSYWRpYWxHcmFkaWVudFZh
bHVlPihvdGhlcikpOworICAgIGNhc2UgQ29uaWNHcmFkaWVudENsYXNzOgorICAgICAgICByZXR1
cm4gZG93bmNhc3Q8Q1NTQ29uaWNHcmFkaWVudFZhbHVlPigqdGhpcykuZXF1YWxzKGRvd25jYXN0
PENTU0NvbmljR3JhZGllbnRWYWx1ZT4ob3RoZXIpKTsKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5H
X0FQSSkKKyAgICBjYXNlIFBhaW50SW1hZ2VDbGFzczoKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0
PENTU1BhaW50SW1hZ2VWYWx1ZT4oKnRoaXMpLmVxdWFscyhkb3duY2FzdDxDU1NQYWludEltYWdl
VmFsdWU+KG90aGVyKSk7CisjZW5kaWYKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9Cit9CisKIGJvb2wgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6c3Vi
aW1hZ2VJc1BlbmRpbmcoY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQogewogICAgIGlmIChpczxDU1NJ
bWFnZVZhbHVlPih2YWx1ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9y
VmFsdWUuaAppbmRleCA1ZWFjYjRlNTVhNTMwYWRhMzViZWRlYmUzMmE5NWViNWM4NjIwMGIwLi4w
Y2Q4OTk4OTlkZWNhODFkNmM1Y2JkY2I5NDEyMGFkMDEzZjA3YmIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgKQEAgLTU3LDYgKzU3LDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBsb2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyJiwgY29uc3Qg
UmVzb3VyY2VMb2FkZXJPcHRpb25zJik7CiAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZSYgb3RoZXIpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgQ1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZShDbGFzc1R5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggOGQxZmNmNmQ2MThiOTA0ZDMxNTYzNjcwYmNjYTYx
M2Y4MDljY2MxYy4uZTViZDlhNTAzOWU5MDIxNjEwZGI5YzNjNGY4NDA0MThkMmE3Njc0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMzUzLDEwICsz
NTMsMzEgQEAgaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkUmVwYWludEZvclN0eWxl
RGlmZmVyZW5jZShTdHlsZURpZmZlcmVuY2UgZGlmZikKIAogdm9pZCBSZW5kZXJFbGVtZW50Ojp1
cGRhdGVGaWxsSW1hZ2VzKGNvbnN0IEZpbGxMYXllciogb2xkTGF5ZXJzLCBjb25zdCBGaWxsTGF5
ZXImIG5ld0xheWVycykKIHsKLSAgICAvLyBPcHRpbWl6ZSB0aGUgY29tbW9uIGNhc2UuCi0gICAg
aWYgKEZpbGxMYXllcjo6aW1hZ2VzSWRlbnRpY2FsKG9sZExheWVycywgJm5ld0xheWVycykpCisg
ICAgYXV0byBmaWxsSW1hZ2VzQXJlSWRlbnRpY2FsID0gW10oY29uc3QgRmlsbExheWVyKiBsYXll
cjEsIGNvbnN0IEZpbGxMYXllciogbGF5ZXIyKSAtPiBib29sIHsKKyAgICAgICAgaWYgKGxheWVy
MSA9PSBsYXllcjIpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBmb3IgKDsg
bGF5ZXIxICYmIGxheWVyMjsgbGF5ZXIxID0gbGF5ZXIxLT5uZXh0KCksIGxheWVyMiA9IGxheWVy
Mi0+bmV4dCgpKSB7CisgICAgICAgICAgICBpZiAoIWFyZVBvaW50aW5nVG9FcXVhbERhdGEobGF5
ZXIxLT5pbWFnZSgpLCBsYXllcjItPmltYWdlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAhbGF5ZXIxICYmICFsYXllcjI7Cisg
ICAgfTsKKworICAgIGF1dG8gaXNSZWdpc3RlcmVkV2l0aE5ld0ZpbGxJbWFnZXMgPSBbJl0oKSAt
PiBib29sIHsKKyAgICAgICAgZm9yIChhdXRvKiBsYXllciA9ICZuZXdMYXllcnM7IGxheWVyOyBs
YXllciA9IGxheWVyLT5uZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChsYXllci0+aW1hZ2UoKSAm
JiAhbGF5ZXItPmltYWdlKCktPmhhc0NsaWVudCgqdGhpcykpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH07CisKKyAg
ICAvLyBJZiBpbWFnZXMgaGF2ZSB0aGUgc2FtZSBjaGFyYWN0ZXJpc3RpY3MgYW5kIHRoaXMgZWxl
bWVudCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgYXMgYQorICAgIC8vIGNsaWVudCB0byB0aGUgbmV3
IGltYWdlcywgdGhlcmUgaXMgbm90aGluZyB0byBkby4KKyAgICBpZiAoZmlsbEltYWdlc0FyZUlk
ZW50aWNhbChvbGRMYXllcnMsICZuZXdMYXllcnMpICYmIGlzUmVnaXN0ZXJlZFdpdGhOZXdGaWxs
SW1hZ2VzKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIEFkZCBiZWZvcmUgcmVt
b3ZpbmcsIHRvIGF2b2lkIHJlbW92aW5nIGFsbCBjbGllbnRzIG9mIGFuIGltYWdlIHRoYXQgaXMg
aW4gYm90aCBzZXRzLgogICAgIGZvciAoYXV0byogbGF5ZXIgPSAmbmV3TGF5ZXJzOyBsYXllcjsg
bGF5ZXIgPSBsYXllci0+bmV4dCgpKSB7CiAgICAgICAgIGlmIChsYXllci0+aW1hZ2UoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKaW5kZXggNDdhZTFm
MmMzMDJhMjM2YzAxYTZkYzQyZjQyYzBlZWU3NTZlODc0Ny4uNDZlM2U4YTRjZjlmOWVhZjY1ZWRl
YmEwMTAxMTRhYTVjOGUyMzcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0ZpbGxMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0ZpbGxMYXllci5jcHAKQEAgLTM5NiwxOSArMzk2LDYgQEAgYm9vbCBGaWxsTGF5ZXI6Omhhc0Zp
eGVkSW1hZ2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBGaWxsTGF5ZXI6
OmltYWdlc0lkZW50aWNhbChjb25zdCBGaWxsTGF5ZXIqIGxheWVyMSwgY29uc3QgRmlsbExheWVy
KiBsYXllcjIpCi17Ci0gICAgaWYgKGxheWVyMSA9PSBsYXllcjIpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgZm9yICg7IGxheWVyMSAmJiBsYXllcjI7IGxheWVyMSA9IGxheWVyMS0+bmV4
dCgpLCBsYXllcjIgPSBsYXllcjItPm5leHQoKSkgewotICAgICAgICBpZiAoIWFyZVBvaW50aW5n
VG9FcXVhbERhdGEobGF5ZXIxLT5pbWFnZSgpLCBsYXllcjItPmltYWdlKCkpKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiAhbGF5ZXIxICYmICFsYXllcjI7
Ci19Ci0KIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZpbGxTaXplIGZp
bGxTaXplKQogewogICAgIHJldHVybiB0cyA8PCBmaWxsU2l6ZS50eXBlIDw8ICIgIiA8PCBmaWxs
U2l6ZS5zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Zp
bGxMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCmlu
ZGV4IGFlZGFmZmRmM2VhNzE1NDBmNjdkMDUxZDE3ZWExMjMyZTMyMzMxNTQuLjhkNzVkNThlNTgz
MzQ2ODRjODgwYzUzODEzYzcxYzE1OWEyMTFiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvRmlsbExheWVyLmgKQEAgLTE1OSw4ICsxNTksNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBmaWxsVW5zZXRQcm9wZXJ0aWVzKCk7CiAgICAgdm9pZCBjdWxsRW1wdHlMYXllcnMoKTsKIAot
ICAgIHN0YXRpYyBib29sIGltYWdlc0lkZW50aWNhbChjb25zdCBGaWxsTGF5ZXIqLCBjb25zdCBG
aWxsTGF5ZXIqKTsKLQogICAgIHN0YXRpYyBGaWxsQXR0YWNobWVudCBpbml0aWFsRmlsbEF0dGFj
aG1lbnQoRmlsbExheWVyVHlwZSkgeyByZXR1cm4gRmlsbEF0dGFjaG1lbnQ6OlNjcm9sbEJhY2tn
cm91bmQ7IH0KICAgICBzdGF0aWMgRmlsbEJveCBpbml0aWFsRmlsbENsaXAoRmlsbExheWVyVHlw
ZSkgeyByZXR1cm4gRmlsbEJveDo6Qm9yZGVyOyB9CiAgICAgc3RhdGljIEZpbGxCb3ggaW5pdGlh
bEZpbGxPcmlnaW4oRmlsbExheWVyVHlwZSB0eXBlKSB7IHJldHVybiB0eXBlID09IEZpbGxMYXll
clR5cGU6OkJhY2tncm91bmQgPyBGaWxsQm94OjpQYWRkaW5nIDogRmlsbEJveDo6Qm9yZGVyOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJ
bWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFn
ZS5jcHAKaW5kZXggY2IzNzg2NjQ5OTcyYmIyZDhhZDA1MDlkZTA2MzQxYzA2ZmE3OThmYS4uOTgz
NjkwN2Q1ZjZiN2UyMTQwNTU0MDIzNGQzZDhiMjZiOTI4MDc5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcApAQCAtMTcyLDYg
KzE3MiwxNCBAQCB2b2lkIFN0eWxlQ2FjaGVkSW1hZ2U6OnJlbW92ZUNsaWVudChSZW5kZXJFbGVt
ZW50JiByZW5kZXJlcikKICAgICBtX2NhY2hlZEltYWdlLT5yZW1vdmVDbGllbnQocmVuZGVyZXIp
OwogfQogCitib29sIFN0eWxlQ2FjaGVkSW1hZ2U6Omhhc0NsaWVudChSZW5kZXJFbGVtZW50JiBy
ZW5kZXJlcikgY29uc3QKK3sKKyAgICBBU1NFUlQoIW1faXNQZW5kaW5nKTsKKyAgICBpZiAoIW1f
Y2FjaGVkSW1hZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9jYWNoZWRJ
bWFnZS0+aGFzQ2xpZW50KHJlbmRlcmVyKTsKK30KKwogUmVmUHRyPEltYWdlPiBTdHlsZUNhY2hl
ZEltYWdlOjppbWFnZShSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgY29uc3QgRmxvYXRTaXplJikg
Y29uc3QKIHsKICAgICBBU1NFUlQoIW1faXNQZW5kaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oCmluZGV4IDUwZWQ3MTM1NjcyZDU5
MzkwYWQyZjVjZjRhYTAzOTA1ZTQ0NTY1MTguLmI1NGEyZWFmMjBmZGRmMzNlYmU0ZGJjNjMxZmNl
Mzg3ZTYwODBlMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUNhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkSW1hZ2UuaApAQCAtNjAsNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRD
b250YWluZXJDb250ZXh0Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCYsIGNvbnN0IEZs
b2F0U2l6ZSYsIGZsb2F0KSBmaW5hbDsKICAgICB2b2lkIGFkZENsaWVudChSZW5kZXJFbGVtZW50
JikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVyRWxlbWVudCYpIGZpbmFsOwor
ICAgIGJvb2wgaGFzQ2xpZW50KFJlbmRlckVsZW1lbnQmKSBjb25zdCBmaW5hbDsKICAgICBSZWZQ
dHI8SW1hZ2U+IGltYWdlKFJlbmRlckVsZW1lbnQqLCBjb25zdCBGbG9hdFNpemUmKSBjb25zdCBm
aW5hbDsKICAgICBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yKCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBrbm93blRvQmVPcGFxdWUoY29uc3QgUmVuZGVyRWxlbWVudCYpIGNvbnN0IGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1h
Z2UuY3BwCmluZGV4IDdkMTIxNWYwMTg1ZTc2YmM2NWVmMmYyMzc3ZGYyMWVhNzExNDZjMzguLjJl
YzUzZjM1Mzc0NDUyMWI1Y2IxMDE1OGM2N2RjYTIyZmQ4ZGVjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAKQEAg
LTM3LDYgKzM3LDEzIEBAIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OlN0eWxlR2VuZXJhdGVkSW1hZ2Uo
UmVmPENTU0ltYWdlR2VuZXJhdG9yVmFsdWU+JiYgdmFsdWUpCiAgICAgbV9pc0dlbmVyYXRlZElt
YWdlID0gdHJ1ZTsKIH0KIAorYm9vbCBTdHlsZUdlbmVyYXRlZEltYWdlOjpvcGVyYXRvcj09KGNv
bnN0IFN0eWxlSW1hZ2UmIG90aGVyKSBjb25zdAoreworICAgIGlmIChpczxTdHlsZUdlbmVyYXRl
ZEltYWdlPihvdGhlcikpCisgICAgICAgIHJldHVybiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKG1f
aW1hZ2VHZW5lcmF0b3JWYWx1ZS5wdHIoKSwgZG93bmNhc3Q8U3R5bGVHZW5lcmF0ZWRJbWFnZT4o
b3RoZXIpLm1faW1hZ2VHZW5lcmF0b3JWYWx1ZS5wdHIoKSk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiBSZWY8Q1NTVmFsdWU+IFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNzc1ZhbHVlKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9pbWFnZUdlbmVyYXRvclZhbHVlLmNvcHlSZWYoKTsKQEAgLTk2LDYg
KzEwMywxMSBAQCB2b2lkIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OnJlbW92ZUNsaWVudChSZW5kZXJF
bGVtZW50JiByZW5kZXJlcikKICAgICBtX2ltYWdlR2VuZXJhdG9yVmFsdWUtPnJlbW92ZUNsaWVu
dChyZW5kZXJlcik7CiB9CiAKK2Jvb2wgU3R5bGVHZW5lcmF0ZWRJbWFnZTo6aGFzQ2xpZW50KFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyKSBjb25zdAoreworICAgIHJldHVybiBtX2ltYWdlR2VuZXJh
dG9yVmFsdWUtPmNsaWVudHMoKS5jb250YWlucygmcmVuZGVyZXIpOworfQorCiBSZWZQdHI8SW1h
Z2U+IFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmltYWdlKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBj
b25zdCBGbG9hdFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHJlbmRlcmVyID8gbV9p
bWFnZUdlbmVyYXRvclZhbHVlLT5pbWFnZSgqcmVuZGVyZXIsIHNpemUpIDogJkltYWdlOjpudWxs
SW1hZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
ZW5lcmF0ZWRJbWFnZS5oCmluZGV4IDRlMWQwMmYwYWU2NDZhZGEzY2U0MWIwNzZlODc2NGY3NDMw
MWMzMGEuLmY1MTU1NTQ1YzI4ZGJhMzIzYTdjYWFkMTk1NGE0MDhlNTBjNDExNzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2Uu
aApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYg
aW1hZ2VWYWx1ZSgpIHsgcmV0dXJuIG1faW1hZ2VHZW5lcmF0b3JWYWx1ZTsgfQogCiBwcml2YXRl
OgotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHlsZUltYWdlJiBvdGhlcikgY29uc3QgZmlu
YWwgeyByZXR1cm4gZGF0YSgpID09IG90aGVyLmRhdGEoKTsgfQorICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBTdHlsZUltYWdlJiBvdGhlcikgY29uc3QgZmluYWw7CiAKICAgICBXcmFwcGVkSW1h
Z2VQdHIgZGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW1hZ2VHZW5lcmF0b3JWYWx1ZS5w
dHIoKTsgfQogCkBAIC01Niw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDb250YWlu
ZXJDb250ZXh0Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCYsIGNvbnN0IEZsb2F0U2l6
ZSYgY29udGFpbmVyU2l6ZSwgZmxvYXQpIGZpbmFsIHsgbV9jb250YWluZXJTaXplID0gY29udGFp
bmVyU2l6ZTsgfQogICAgIHZvaWQgYWRkQ2xpZW50KFJlbmRlckVsZW1lbnQmKSBmaW5hbDsKICAg
ICB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJFbGVtZW50JikgZmluYWw7CisgICAgYm9vbCBoYXND
bGllbnQoUmVuZGVyRWxlbWVudCYpIGNvbnN0IGZpbmFsOwogICAgIFJlZlB0cjxJbWFnZT4gaW1h
Z2UoUmVuZGVyRWxlbWVudCosIGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wga25vd25Ub0JlT3BhcXVlKGNvbnN0IFJlbmRlckVsZW1lbnQmKSBjb25zdCBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgKaW5kZXggM2VkODk4
MzEwYzNkNmUyOWQwYmJkOGJhOTI3ODQyYTY2OGRjZTAyMi4uMTY1NGQxZDhkYjZhYWQzMmNjM2Uz
OWU3Yjg5MzI2ODc2NTA0YjMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVJbWFnZS5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGFpbmVyQ29udGV4dEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQmLCBjb25z
dCBGbG9hdFNpemUmLCBmbG9hdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhZGRDbGllbnQoUmVu
ZGVyRWxlbWVudCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2xpZW50KFJlbmRlckVs
ZW1lbnQmKSA9IDA7CisgICAgdmlydHVhbCBib29sIGhhc0NsaWVudChSZW5kZXJFbGVtZW50Jikg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJFbGVtZW50
KiwgY29uc3QgRmxvYXRTaXplJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgV3JhcHBlZEltYWdl
UHRyIGRhdGEoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBmbG9hdCBpbWFnZVNjYWxlRmFjdG9y
KCkgY29uc3QgeyByZXR1cm4gMTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVNdWx0aUltYWdlLmNwcAppbmRleCA3NzY2NjdjN2E2NGFiMTYwNmI3MGM3YzM2
ZjExZjI3NzZlMmMxMTUxLi5iMzc0YjAxODRlODQ1OWZjZDkwY2YyNzdkZGMzOTg0ZWYxMDkzZjY0
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUlt
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUlt
YWdlLmNwcApAQCAtMTQ4LDYgKzE0OCwxMyBAQCB2b2lkIFN0eWxlTXVsdGlJbWFnZTo6cmVtb3Zl
Q2xpZW50KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogICAgIG1fc2VsZWN0ZWRJbWFnZS0+cmVt
b3ZlQ2xpZW50KHJlbmRlcmVyKTsKIH0KIAorYm9vbCBTdHlsZU11bHRpSW1hZ2U6Omhhc0NsaWVu
dChSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBpZiAoIW1fc2VsZWN0ZWRJ
bWFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3NlbGVjdGVkSW1hZ2Ut
Pmhhc0NsaWVudChyZW5kZXJlcik7Cit9CisKIFJlZlB0cjxJbWFnZT4gU3R5bGVNdWx0aUltYWdl
OjppbWFnZShSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgY29uc3QgRmxvYXRTaXplJiBzaXplKSBj
b25zdAogewogICAgIGlmICghbV9zZWxlY3RlZEltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5oCmluZGV4IDg2ZmE1YjcxYjVlOWE5NDE1
ZWMzMDdlZWMwYTdhNTliY2YxYmQ0ZTMuLjdmYjVhZjE3NTBiZDc0Y2YwNzNkMTY0Y2Q5YTExNmJi
NWE3YjdlMjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZU11bHRpSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVN
dWx0aUltYWdlLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENvbnRh
aW5lckNvbnRleHRGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJFbGVtZW50JiwgY29uc3QgRmxvYXRT
aXplJiwgZmxvYXQpOwogICAgIHZvaWQgYWRkQ2xpZW50KFJlbmRlckVsZW1lbnQmKSBmaW5hbDsK
ICAgICB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJFbGVtZW50JikgZmluYWw7CisgICAgYm9vbCBo
YXNDbGllbnQoUmVuZGVyRWxlbWVudCYpIGNvbnN0IGZpbmFsOwogICAgIFJlZlB0cjxJbWFnZT4g
aW1hZ2UoUmVuZGVyRWxlbWVudCosIGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0IGZpbmFsOwogICAg
IGZsb2F0IGltYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGtub3duVG9C
ZU9wYXF1ZShjb25zdCBSZW5kZXJFbGVtZW50JikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjA4NmI0
YjI1MTFmMjE3ZGQ1OWJlZWM4YmY3MWMyYzg3ZTkzZDZjNS4uOTFlZjA3YTU2NzQ1ZWMzMTE0ZTRk
YmQxNjVlOThiMTJjMGY5YWI3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTA2ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBjdXN0b20g
cHJvcGVydGllcyBvbiBwc2V1ZG8gZWxlbWVudHMgYmFja2dyb3VuZCBncmFkaWVudHMgY2F1c2Vz
IGluZmluaXRlIGxheW91dCBhbmQgaGlnaCBDUFUgbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS80Nzg3Mzg5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSB0ZXN0IHdoZXJlIGFuIGVsZW1lbnQgd2l0aCBhIGJhY2tncm91bmQtaW1hZ2Ug
c2V0IHRvIGEgQ1NTIGdyYWRpZW50IHVzaW5nIGEgY3VzdG9tIHByb3BlcnR5IGFzIGEgY29sb3IK
KyAgICAgICAgc3RvcCBjaGFuZ2VzIGFub3RoZXIgcHJvcGVydHkgdGFyZ2V0ZWQgYnkgYSB0cmFu
c2l0aW9uIHRvIGNoZWNrIHRoYXQgdGhlcmUgaXMgbm8gYmFja2dyb3VuZC1pbWFnZSB0cmFuc2l0
aW9uCisgICAgICAgIGdlbmVyYXRlZC4gCisKKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL2Nzcy10
cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3Mt
Y3VzdG9tLXByb3BlcnR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYW5pbWF0
aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3JhZGllbnQtYmFja2dyb3VuZC1pbWFn
ZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS5odG1sOiBBZGRlZC4KKwogMjAyMS0wNS0wNSAgUm9i
ZXJ0IEplbm5lciAgPGplbm5lckBhcHBsZS5jb20+CiAKICAgICAgICAgWyBCaWdTdXIgd2syIGFy
bTY0IF0gaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1zaXplcy1uZXR3b3Jr
Lmh0bWwgaXMgYSBmbGFrZXkgdGV4dCBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3Jv
dW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJh
Y2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVydHktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFkZjcwZTY5YmUyMTZhZDJhYjBhNzllMTk2MDI0ZGMxMmZjYWM5YWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1l
bnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBBbiBlbGVtZW50IHdpdGggYSBi
YWNrZ3JvdW5kLWltYWdlIHNldCB0byBhIENTUyBncmFkaWVudCB3aXRoIGEgc3RvcCBjb2xvciBz
ZXQgYnkgYSBjdXN0b20gcHJvcGVydHkgZG9lcyBub3QgeWllbGQgYSBiYWNrZ3JvdW5kLWltYWdl
IHRyYW5zaXRpb24gd2hlbiBhbm90aGVyIENTUyBwcm9wZXJ0eSBjaGFuZ2VzLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0
aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1n
cmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzQyOWU5ZWFkM2YzZTY2NTE3ZGIzYzFkNDU0ODU5NTg3MTE5YzY3ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxl
bWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVy
dHkuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzxzdHlsZT4KKworOnJvb3QgeworICAgIC0tY3VzdG9tLWNvbG9yOiBibHVlOwor
fQorCisudGFyZ2V0IHsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tY3VzdG9tLWNvbG9yKSwgZ3JlZW4p
OworICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDFzOworfQorCisudGFyZ2V0LnRyYW5zaXRpb24g
eworICAgIG1hcmdpbi1sZWZ0OiAxMDBweDsKK30KKworPC9zdHlsZT4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisKKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHRlc3QgPT4geworICAgIGNv
bnN0IHRhcmdldCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2IikpOworICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCJ0YXJnZXQiKTsKKworICAg
IGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7CisgICAgdGFyZ2V0LmNs
YXNzTGlzdC5hZGQoInRyYW5zaXRpb24iKTsKKworICAgIGNvbnN0IGFuaW1hdGlvbnMgPSB0YXJn
ZXQuZ2V0QW5pbWF0aW9ucygpOworICAgIGFzc2VydF9lcXVhbHMoYW5pbWF0aW9ucy5sZW5ndGgs
IDEsICJUaGVyZSBpcyBvbmx5IG9uZSBhbmltYXRpb24gYXBwbGllZCB0byB0aGUgdGFyZ2V0LiIp
OworICAgIGFzc2VydF90cnVlKGFuaW1hdGlvbnNbMF0gaW5zdGFuY2VvZiBDU1NUcmFuc2l0aW9u
LCAiVGhlIHNpbmdsZSBhbmltYXRpb24gYXBwbGllZCB0byB0aGUgdGFyZ2V0IGlzIGEgQ1NTIHRy
YW5zaXRpb24uIik7CisgICAgYXNzZXJ0X2VxdWFscyhhbmltYXRpb25zWzBdLnRyYW5zaXRpb25Q
cm9wZXJ0eSwgIm1hcmdpbi1sZWZ0IiwgIlRoZSBzaW5nbGUgQ1NTIHRyYW5zaXRpb24gYXBwbGll
ZCB0byB0aGUgdGFyZ2V0IGlzIGZvciB0aGUgbWFyZ2luLWxlZnQgcHJvcGVydHkuIik7Cit9LCBg
QW4gZWxlbWVudCB3aXRoIGEgYmFja2dyb3VuZC1pbWFnZSBzZXQgdG8gYSBDU1MgZ3JhZGllbnQg
d2l0aCBhIHN0b3AgY29sb3Igc2V0IGJ5IGEgY3VzdG9tIHByb3BlcnR5IGRvZXMgbm90IHlpZWxk
IGEgYmFja2dyb3VuZC1pbWFnZSB0cmFuc2l0aW9uIHdoZW4gYW5vdGhlciBDU1MgcHJvcGVydHkg
Y2hhbmdlcy5gKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQo=
</data>
<flag name="commit-queue"
          id="448666"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427906</attachid>
            <date>2021-05-06 10:38:56 -0700</date>
            <delta_ts>2021-05-06 13:11:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194332-20210506193855.patch</filename>
            <type>text/plain</type>
            <size>18266</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQwZmQzYjdlMDVjZDE5
NGE3Y2NlODQ0ZDY5ODQ2Yjc2NDI3NWFlNi4uMmZjY2ZjMmI2OTQ0ODg5YjZiMjBiNjUxY2ZmYjVj
MDFkMmIzMmQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTA1LTA2ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyBjdXN0b20gcHJv
cGVydGllcyBvbiBwc2V1ZG8gZWxlbWVudHMgYmFja2dyb3VuZCBncmFkaWVudHMgY2F1c2VzIGlu
ZmluaXRlIGxheW91dCBhbmQgaGlnaCBDUFUgbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
Nzg3Mzg5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIGEgYmFja2dyb3VuZC1pbWFnZSB1c2VzIGEgQ1NTIGN1c3RvbSBwcm9wZXJ0eSB0aGUg
cmVzdWx0aW5nIFN0eWxlR2VuZXJhdGVkSW1hZ2UgbWF5IG5vdCBiZSB0aGUgc2FtZQorICAgICAg
ICBvYmplY3QgYXMgZHVyaW5nIHByaW9yIHN0eWxlIHVwZGF0ZXMuIFRoaXMgY2F1c2VkIHRyYW5z
aXRpb25zIHRvIGJlIHRyaWdnZXJlZCBmb3IgYWxsIHN0eWxlIHVwZGF0ZXMgZm9yCisgICAgICAg
IHN1Y2ggYmFja2dyb3VuZC1pbWFnZSB2YWx1ZXMuIFRvIGZpeCB0aGlzLCB3ZSBtb2RpZnkgdGhl
ID09IG9wZXJhdG9yIGZvciBTdHlsZUdlbmVyYXRlZEltYWdlIHRvIHVzZQorICAgICAgICBhcmVQ
b2ludGluZ1RvRXF1YWxEYXRhKCkgd2l0aCB0aGUgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSBtZW1i
ZXIgYW5kIGFkZGVkIGFuID09IG9wZXJhdG9yIGZvciB0aGUKKyAgICAgICAgQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZSBjbGFzcyB0byBjYWxsIGludG8gdGhlIGV4aXN0aW5nIGVxdWFscygpIG1ldGhv
ZHMuIFRoZXNlIGVxdWFscygpIG1ldGhvZHMKKyAgICAgICAgYXJlIG5vdyBvdmVycmlkZXMgb2Yg
dGhlIHZpcnR1YWwgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSBtZXRob2QuCisKKyAgICAgICAgVGhp
cyBjaGFuZ2UgaW4gYmVoYXZpb3IgcmVxdWlyZWQgYSBjaGFuZ2UgaW4gUmVuZGVyRWxlbWVudDo6
dXBkYXRlRmlsbEltYWdlcygpIHRvIG5vdCBvbmx5IGNoZWNrIHdoZXRoZXIKKyAgICAgICAgdGhl
IGltYWdlcyB3ZXJlIGlkZW50aWNhbCwgYnV0IHRvIGFsc28gY2hlY2sgd2hldGhlciB0aGUgcmVu
ZGVyZXIgd2FzIHJlZ2lzdGVyZWQgYXMgYSBjbGllbnQgb24gdGhlIG5ldworICAgICAgICBpbWFn
ZXMuIFRvIGRvIHRoaXMsIHdlIGFkZCBhIG5ldyB2aXJ0dWFsIGhhc0NsaWVudCgpIG1ldGhvZCBv
biBTdHlsZUltYWdlLgorCisgICAgICAgIFRlc3Q6IHdlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRp
b24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20t
cHJvcGVydHkuaHRtbAorCisgICAgICAgICogY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6b3BlcmF0b3I9PSBj
b25zdCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJF
bGVtZW50Ojp1cGRhdGVGaWxsSW1hZ2VzKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvRmls
bExheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6aW1hZ2VzSWRlbnRpY2Fs
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVDYWNoZWRJbWFnZTo6aGFzQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlR2VuZXJh
dGVkSW1hZ2U6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHZW5l
cmF0ZWRJbWFnZTo6aGFzQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUlt
YWdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpSW1hZ2U6Omhhc0NsaWVudCBjb25zdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5oOgorCiAyMDIxLTA1LTA1ICBN
ZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgQXBwSGln
aGxpZ2h0IHNjcm9sbHMgc2hvdWxkIGJlIHNtb290aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCmluZGV4IGEwNzJkYTg5YWIxYjM4MTAxZDIyZjViZTE1
OGFlMzU0YWI4MjBhMjQuLjUzMzI5MmFjMmEyZTJlMzljNGRkNjk0MWViMzVjYTBmMTY1OWQ1MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKQEAg
LTI5OCw2ICsyOTgsMzUgQEAgdm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpsb2FkU3ViaW1h
Z2VzKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUwKICAgICB9CiB9CiAKK2Jv
b2wgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6b3BlcmF0b3I9PShjb25zdCBDU1NJbWFnZUdlbmVy
YXRvclZhbHVlJiBvdGhlcikgY29uc3QKK3sKKyAgICBpZiAoY2xhc3NUeXBlKCkgIT0gb3RoZXIu
Y2xhc3NUeXBlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRjaCAoY2xhc3NU
eXBlKCkpIHsKKyAgICBjYXNlIENyb3NzZmFkZUNsYXNzOgorICAgICAgICByZXR1cm4gZG93bmNh
c3Q8Q1NTQ3Jvc3NmYWRlVmFsdWU+KCp0aGlzKS5lcXVhbHMoZG93bmNhc3Q8Q1NTQ3Jvc3NmYWRl
VmFsdWU+KG90aGVyKSk7CisgICAgY2FzZSBDYW52YXNDbGFzczoKKyAgICAgICAgcmV0dXJuIGRv
d25jYXN0PENTU0NhbnZhc1ZhbHVlPigqdGhpcykuZXF1YWxzKGRvd25jYXN0PENTU0NhbnZhc1Zh
bHVlPihvdGhlcikpOworICAgIGNhc2UgRmlsdGVySW1hZ2VDbGFzczoKKyAgICAgICAgcmV0dXJu
IGRvd25jYXN0PENTU0ZpbHRlckltYWdlVmFsdWU+KCp0aGlzKS5lcXVhbHMoZG93bmNhc3Q8Q1NT
RmlsdGVySW1hZ2VWYWx1ZT4ob3RoZXIpKTsKKyAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6
CisgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NMaW5lYXJHcmFkaWVudFZhbHVlPigqdGhpcyku
ZXF1YWxzKGRvd25jYXN0PENTU0xpbmVhckdyYWRpZW50VmFsdWU+KG90aGVyKSk7CisgICAgY2Fz
ZSBSYWRpYWxHcmFkaWVudENsYXNzOgorICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUmFkaWFs
R3JhZGllbnRWYWx1ZT4oKnRoaXMpLmVxdWFscyhkb3duY2FzdDxDU1NSYWRpYWxHcmFkaWVudFZh
bHVlPihvdGhlcikpOworICAgIGNhc2UgQ29uaWNHcmFkaWVudENsYXNzOgorICAgICAgICByZXR1
cm4gZG93bmNhc3Q8Q1NTQ29uaWNHcmFkaWVudFZhbHVlPigqdGhpcykuZXF1YWxzKGRvd25jYXN0
PENTU0NvbmljR3JhZGllbnRWYWx1ZT4ob3RoZXIpKTsKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5H
X0FQSSkKKyAgICBjYXNlIFBhaW50SW1hZ2VDbGFzczoKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0
PENTU1BhaW50SW1hZ2VWYWx1ZT4oKnRoaXMpLmVxdWFscyhkb3duY2FzdDxDU1NQYWludEltYWdl
VmFsdWU+KG90aGVyKSk7CisjZW5kaWYKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZTo6c3ViaW1hZ2VJc1BlbmRpbmcoY29uc3QgQ1NTVmFsdWUmIHZhbHVl
KQogewogICAgIGlmIChpczxDU1NJbWFnZVZhbHVlPih2YWx1ZSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaAppbmRleCA1ZWFjYjRlNTVhNTMwYWRhMzViZWRl
YmUzMmE5NWViNWM4NjIwMGIwLi4wY2Q4OTk4OTlkZWNhODFkNmM1Y2JkY2I5NDEyMGFkMDEzZjA3
YmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgKQEAg
LTU3LDYgKzU3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBsb2FkU3ViaW1hZ2VzKENhY2hlZFJl
c291cmNlTG9hZGVyJiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJik7CiAKKyAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgb3RoZXIpIGNvbnN0Owor
CiBwcm90ZWN0ZWQ6CiAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZShDbGFzc1R5cGUpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggOGQxZmNmNmQ2
MThiOTA0ZDMxNTYzNjcwYmNjYTYxM2Y4MDljY2MxYy4uZTViZDlhNTAzOWU5MDIxNjEwZGI5YzNj
NGY4NDA0MThkMmE3Njc0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcApAQCAtMzUzLDEwICszNTMsMzEgQEAgaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6
c2hvdWxkUmVwYWludEZvclN0eWxlRGlmZmVyZW5jZShTdHlsZURpZmZlcmVuY2UgZGlmZikKIAog
dm9pZCBSZW5kZXJFbGVtZW50Ojp1cGRhdGVGaWxsSW1hZ2VzKGNvbnN0IEZpbGxMYXllciogb2xk
TGF5ZXJzLCBjb25zdCBGaWxsTGF5ZXImIG5ld0xheWVycykKIHsKLSAgICAvLyBPcHRpbWl6ZSB0
aGUgY29tbW9uIGNhc2UuCi0gICAgaWYgKEZpbGxMYXllcjo6aW1hZ2VzSWRlbnRpY2FsKG9sZExh
eWVycywgJm5ld0xheWVycykpCisgICAgYXV0byBmaWxsSW1hZ2VzQXJlSWRlbnRpY2FsID0gW10o
Y29uc3QgRmlsbExheWVyKiBsYXllcjEsIGNvbnN0IEZpbGxMYXllciogbGF5ZXIyKSAtPiBib29s
IHsKKyAgICAgICAgaWYgKGxheWVyMSA9PSBsYXllcjIpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgICAgICBmb3IgKDsgbGF5ZXIxICYmIGxheWVyMjsgbGF5ZXIxID0gbGF5ZXIxLT5u
ZXh0KCksIGxheWVyMiA9IGxheWVyMi0+bmV4dCgpKSB7CisgICAgICAgICAgICBpZiAoIWFyZVBv
aW50aW5nVG9FcXVhbERhdGEobGF5ZXIxLT5pbWFnZSgpLCBsYXllcjItPmltYWdlKCkpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAh
bGF5ZXIxICYmICFsYXllcjI7CisgICAgfTsKKworICAgIGF1dG8gaXNSZWdpc3RlcmVkV2l0aE5l
d0ZpbGxJbWFnZXMgPSBbJl0oKSAtPiBib29sIHsKKyAgICAgICAgZm9yIChhdXRvKiBsYXllciA9
ICZuZXdMYXllcnM7IGxheWVyOyBsYXllciA9IGxheWVyLT5uZXh0KCkpIHsKKyAgICAgICAgICAg
IGlmIChsYXllci0+aW1hZ2UoKSAmJiAhbGF5ZXItPmltYWdlKCktPmhhc0NsaWVudCgqdGhpcykp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH07CisKKyAgICAvLyBJZiBpbWFnZXMgaGF2ZSB0aGUgc2FtZSBjaGFyYWN0
ZXJpc3RpY3MgYW5kIHRoaXMgZWxlbWVudCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgYXMgYQorICAg
IC8vIGNsaWVudCB0byB0aGUgbmV3IGltYWdlcywgdGhlcmUgaXMgbm90aGluZyB0byBkby4KKyAg
ICBpZiAoZmlsbEltYWdlc0FyZUlkZW50aWNhbChvbGRMYXllcnMsICZuZXdMYXllcnMpICYmIGlz
UmVnaXN0ZXJlZFdpdGhOZXdGaWxsSW1hZ2VzKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwog
ICAgIC8vIEFkZCBiZWZvcmUgcmVtb3ZpbmcsIHRvIGF2b2lkIHJlbW92aW5nIGFsbCBjbGllbnRz
IG9mIGFuIGltYWdlIHRoYXQgaXMgaW4gYm90aCBzZXRzLgogICAgIGZvciAoYXV0byogbGF5ZXIg
PSAmbmV3TGF5ZXJzOyBsYXllcjsgbGF5ZXIgPSBsYXllci0+bmV4dCgpKSB7CiAgICAgICAgIGlm
IChsYXllci0+aW1hZ2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9GaWxsTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxM
YXllci5jcHAKaW5kZXggNDdhZTFmMmMzMDJhMjM2YzAxYTZkYzQyZjQyYzBlZWU3NTZlODc0Ny4u
NDZlM2U4YTRjZjlmOWVhZjY1ZWRlYmEwMTAxMTRhYTVjOGUyMzcyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKQEAgLTM5NiwxOSArMzk2LDYgQEAg
Ym9vbCBGaWxsTGF5ZXI6Omhhc0ZpeGVkSW1hZ2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBGaWxsTGF5ZXI6OmltYWdlc0lkZW50aWNhbChjb25zdCBGaWxsTGF5ZXIqIGxh
eWVyMSwgY29uc3QgRmlsbExheWVyKiBsYXllcjIpCi17Ci0gICAgaWYgKGxheWVyMSA9PSBsYXll
cjIpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgZm9yICg7IGxheWVyMSAmJiBsYXllcjI7
IGxheWVyMSA9IGxheWVyMS0+bmV4dCgpLCBsYXllcjIgPSBsYXllcjItPm5leHQoKSkgewotICAg
ICAgICBpZiAoIWFyZVBvaW50aW5nVG9FcXVhbERhdGEobGF5ZXIxLT5pbWFnZSgpLCBsYXllcjIt
PmltYWdlKCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVy
biAhbGF5ZXIxICYmICFsYXllcjI7Ci19Ci0KIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIEZpbGxTaXplIGZpbGxTaXplKQogewogICAgIHJldHVybiB0cyA8PCBmaWxsU2l6
ZS50eXBlIDw8ICIgIiA8PCBmaWxsU2l6ZS5zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0ZpbGxMYXllci5oCmluZGV4IGFlZGFmZmRmM2VhNzE1NDBmNjdkMDUxZDE3ZWExMjMy
ZTMyMzMxNTQuLjhkNzVkNThlNTgzMzQ2ODRjODgwYzUzODEzYzcxYzE1OWEyMTFiY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKQEAgLTE1OSw4ICsxNTks
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaWxsVW5zZXRQcm9wZXJ0aWVzKCk7CiAgICAgdm9pZCBj
dWxsRW1wdHlMYXllcnMoKTsKIAotICAgIHN0YXRpYyBib29sIGltYWdlc0lkZW50aWNhbChjb25z
dCBGaWxsTGF5ZXIqLCBjb25zdCBGaWxsTGF5ZXIqKTsKLQogICAgIHN0YXRpYyBGaWxsQXR0YWNo
bWVudCBpbml0aWFsRmlsbEF0dGFjaG1lbnQoRmlsbExheWVyVHlwZSkgeyByZXR1cm4gRmlsbEF0
dGFjaG1lbnQ6OlNjcm9sbEJhY2tncm91bmQ7IH0KICAgICBzdGF0aWMgRmlsbEJveCBpbml0aWFs
RmlsbENsaXAoRmlsbExheWVyVHlwZSkgeyByZXR1cm4gRmlsbEJveDo6Qm9yZGVyOyB9CiAgICAg
c3RhdGljIEZpbGxCb3ggaW5pdGlhbEZpbGxPcmlnaW4oRmlsbExheWVyVHlwZSB0eXBlKSB7IHJl
dHVybiB0eXBlID09IEZpbGxMYXllclR5cGU6OkJhY2tncm91bmQgPyBGaWxsQm94OjpQYWRkaW5n
IDogRmlsbEJveDo6Qm9yZGVyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAKaW5kZXggY2IzNzg2NjQ5OTcyYmIyZDhhZDA1MDlk
ZTA2MzQxYzA2ZmE3OThmYS4uOTgzNjkwN2Q1ZjZiN2UyMTQwNTU0MDIzNGQzZDhiMjZiOTI4MDc5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVk
SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hl
ZEltYWdlLmNwcApAQCAtMTcyLDYgKzE3MiwxNCBAQCB2b2lkIFN0eWxlQ2FjaGVkSW1hZ2U6OnJl
bW92ZUNsaWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKICAgICBtX2NhY2hlZEltYWdlLT5y
ZW1vdmVDbGllbnQocmVuZGVyZXIpOwogfQogCitib29sIFN0eWxlQ2FjaGVkSW1hZ2U6Omhhc0Ns
aWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBBU1NFUlQoIW1faXNQ
ZW5kaW5nKTsKKyAgICBpZiAoIW1fY2FjaGVkSW1hZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gbV9jYWNoZWRJbWFnZS0+aGFzQ2xpZW50KHJlbmRlcmVyKTsKK30KKwogUmVm
UHRyPEltYWdlPiBTdHlsZUNhY2hlZEltYWdlOjppbWFnZShSZW5kZXJFbGVtZW50KiByZW5kZXJl
ciwgY29uc3QgRmxvYXRTaXplJikgY29uc3QKIHsKICAgICBBU1NFUlQoIW1faXNQZW5kaW5nKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZElt
YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5o
CmluZGV4IDUwZWQ3MTM1NjcyZDU5MzkwYWQyZjVjZjRhYTAzOTA1ZTQ0NTY1MTguLmI1NGEyZWFm
MjBmZGRmMzNlYmU0ZGJjNjMxZmNlMzg3ZTYwODBlMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaApAQCAtNjAsNiArNjAsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRDb250YWluZXJDb250ZXh0Rm9yUmVuZGVyZXIoY29uc3QgUmVu
ZGVyRWxlbWVudCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0KSBmaW5hbDsKICAgICB2b2lkIGFk
ZENsaWVudChSZW5kZXJFbGVtZW50JikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVDbGllbnQoUmVu
ZGVyRWxlbWVudCYpIGZpbmFsOworICAgIGJvb2wgaGFzQ2xpZW50KFJlbmRlckVsZW1lbnQmKSBj
b25zdCBmaW5hbDsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlckVsZW1lbnQqLCBjb25z
dCBGbG9hdFNpemUmKSBjb25zdCBmaW5hbDsKICAgICBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yKCkg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCBrbm93blRvQmVPcGFxdWUoY29uc3QgUmVuZGVyRWxlbWVu
dCYpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwCmluZGV4IDdkMTIxNWYwMTg1ZTc2YmM2NWVmMmYy
Mzc3ZGYyMWVhNzExNDZjMzguLjJlYzUzZjM1Mzc0NDUyMWI1Y2IxMDE1OGM2N2RjYTIyZmQ4ZGVj
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVy
YXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
ZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTM3LDYgKzM3LDEzIEBAIFN0eWxlR2VuZXJhdGVkSW1hZ2U6
OlN0eWxlR2VuZXJhdGVkSW1hZ2UoUmVmPENTU0ltYWdlR2VuZXJhdG9yVmFsdWU+JiYgdmFsdWUp
CiAgICAgbV9pc0dlbmVyYXRlZEltYWdlID0gdHJ1ZTsKIH0KIAorYm9vbCBTdHlsZUdlbmVyYXRl
ZEltYWdlOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlSW1hZ2UmIG90aGVyKSBjb25zdAoreworICAg
IGlmIChpczxTdHlsZUdlbmVyYXRlZEltYWdlPihvdGhlcikpCisgICAgICAgIHJldHVybiBhcmVQ
b2ludGluZ1RvRXF1YWxEYXRhKG1faW1hZ2VHZW5lcmF0b3JWYWx1ZS5wdHIoKSwgZG93bmNhc3Q8
U3R5bGVHZW5lcmF0ZWRJbWFnZT4ob3RoZXIpLm1faW1hZ2VHZW5lcmF0b3JWYWx1ZS5wdHIoKSk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBSZWY8Q1NTVmFsdWU+IFN0eWxlR2VuZXJhdGVkSW1h
Z2U6OmNzc1ZhbHVlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbWFnZUdlbmVyYXRvclZhbHVl
LmNvcHlSZWYoKTsKQEAgLTk2LDYgKzEwMywxMSBAQCB2b2lkIFN0eWxlR2VuZXJhdGVkSW1hZ2U6
OnJlbW92ZUNsaWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKICAgICBtX2ltYWdlR2VuZXJh
dG9yVmFsdWUtPnJlbW92ZUNsaWVudChyZW5kZXJlcik7CiB9CiAKK2Jvb2wgU3R5bGVHZW5lcmF0
ZWRJbWFnZTo6aGFzQ2xpZW50KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKSBjb25zdAoreworICAg
IHJldHVybiBtX2ltYWdlR2VuZXJhdG9yVmFsdWUtPmNsaWVudHMoKS5jb250YWlucygmcmVuZGVy
ZXIpOworfQorCiBSZWZQdHI8SW1hZ2U+IFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmltYWdlKFJlbmRl
ckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBGbG9hdFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIHJlbmRlcmVyID8gbV9pbWFnZUdlbmVyYXRvclZhbHVlLT5pbWFnZSgqcmVuZGVyZXIs
IHNpemUpIDogJkltYWdlOjpudWxsSW1hZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oCmluZGV4IDRlMWQwMmYwYWU2NDZh
ZGEzY2U0MWIwNzZlODc2NGY3NDMwMWMzMGEuLmY1MTU1NTQ1YzI4ZGJhMzIzYTdjYWFkMTk1NGE0
MDhlNTBjNDExNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUdlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlR2VuZXJhdGVkSW1hZ2UuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgQ1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZSYgaW1hZ2VWYWx1ZSgpIHsgcmV0dXJuIG1faW1hZ2VHZW5lcmF0
b3JWYWx1ZTsgfQogCiBwcml2YXRlOgotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHlsZUlt
YWdlJiBvdGhlcikgY29uc3QgZmluYWwgeyByZXR1cm4gZGF0YSgpID09IG90aGVyLmRhdGEoKTsg
fQorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHlsZUltYWdlJiBvdGhlcikgY29uc3QgZmlu
YWw7CiAKICAgICBXcmFwcGVkSW1hZ2VQdHIgZGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
aW1hZ2VHZW5lcmF0b3JWYWx1ZS5wdHIoKTsgfQogCkBAIC01Niw2ICs1Niw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzZXRDb250YWluZXJDb250ZXh0Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxl
bWVudCYsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGFpbmVyU2l6ZSwgZmxvYXQpIGZpbmFsIHsgbV9j
b250YWluZXJTaXplID0gY29udGFpbmVyU2l6ZTsgfQogICAgIHZvaWQgYWRkQ2xpZW50KFJlbmRl
ckVsZW1lbnQmKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJFbGVtZW50Jikg
ZmluYWw7CisgICAgYm9vbCBoYXNDbGllbnQoUmVuZGVyRWxlbWVudCYpIGNvbnN0IGZpbmFsOwog
ICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyRWxlbWVudCosIGNvbnN0IEZsb2F0U2l6ZSYp
IGNvbnN0IGZpbmFsOwogICAgIGJvb2wga25vd25Ub0JlT3BhcXVlKGNvbnN0IFJlbmRlckVsZW1l
bnQmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUltYWdlLmgKaW5kZXggM2VkODk4MzEwYzNkNmUyOWQwYmJkOGJhOTI3ODQyYTY2OGRjZTAyMi4u
MTY1NGQxZDhkYjZhYWQzMmNjM2UzOWU3Yjg5MzI2ODc2NTA0YjMwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oCkBAIC02Miw2ICs2Miw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyQ29udGV4dEZvclJlbmRlcmVyKGNvbnN0
IFJlbmRlckVsZW1lbnQmLCBjb25zdCBGbG9hdFNpemUmLCBmbG9hdCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBhZGRDbGllbnQoUmVuZGVyRWxlbWVudCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlQ2xpZW50KFJlbmRlckVsZW1lbnQmKSA9IDA7CisgICAgdmlydHVhbCBib29sIGhhc0Ns
aWVudChSZW5kZXJFbGVtZW50JikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPEltYWdl
PiBpbWFnZShSZW5kZXJFbGVtZW50KiwgY29uc3QgRmxvYXRTaXplJikgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgV3JhcHBlZEltYWdlUHRyIGRhdGEoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBm
bG9hdCBpbWFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUltYWdlLmNwcAppbmRleCA3NzY2
NjdjN2E2NGFiMTYwNmI3MGM3YzM2ZjExZjI3NzZlMmMxMTUxLi5iMzc0YjAxODRlODQ1OWZjZDkw
Y2YyNzdkZGMzOTg0ZWYxMDkzZjY0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVNdWx0aUltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVNdWx0aUltYWdlLmNwcApAQCAtMTQ4LDYgKzE0OCwxMyBAQCB2b2lkIFN0
eWxlTXVsdGlJbWFnZTo6cmVtb3ZlQ2xpZW50KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogICAg
IG1fc2VsZWN0ZWRJbWFnZS0+cmVtb3ZlQ2xpZW50KHJlbmRlcmVyKTsKIH0KIAorYm9vbCBTdHls
ZU11bHRpSW1hZ2U6Omhhc0NsaWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgY29uc3QKK3sK
KyAgICBpZiAoIW1fc2VsZWN0ZWRJbWFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBtX3NlbGVjdGVkSW1hZ2UtPmhhc0NsaWVudChyZW5kZXJlcik7Cit9CisKIFJlZlB0cjxJ
bWFnZT4gU3R5bGVNdWx0aUltYWdlOjppbWFnZShSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgY29u
c3QgRmxvYXRTaXplJiBzaXplKSBjb25zdAogewogICAgIGlmICghbV9zZWxlY3RlZEltYWdlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlJbWFnZS5oCmlu
ZGV4IDg2ZmE1YjcxYjVlOWE5NDE1ZWMzMDdlZWMwYTdhNTliY2YxYmQ0ZTMuLjdmYjVhZjE3NTBi
ZDc0Y2YwNzNkMTY0Y2Q5YTExNmJiNWE3YjdlMjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUltYWdlLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldENvbnRhaW5lckNvbnRleHRGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJF
bGVtZW50JiwgY29uc3QgRmxvYXRTaXplJiwgZmxvYXQpOwogICAgIHZvaWQgYWRkQ2xpZW50KFJl
bmRlckVsZW1lbnQmKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJFbGVtZW50
JikgZmluYWw7CisgICAgYm9vbCBoYXNDbGllbnQoUmVuZGVyRWxlbWVudCYpIGNvbnN0IGZpbmFs
OwogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyRWxlbWVudCosIGNvbnN0IEZsb2F0U2l6
ZSYpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIGtub3duVG9CZU9wYXF1ZShjb25zdCBSZW5kZXJFbGVtZW50JikgY29uc3Qg
ZmluYWw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYjA4NmI0YjI1MTFmMjE3ZGQ1OWJlZWM4YmY3MWMyYzg3ZTkzZDZjNS4u
OTFlZjA3YTU2NzQ1ZWMzMTE0ZTRkYmQxNjVlOThiMTJjMGY5YWI3MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDIxLTA1LTA2ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgor
CisgICAgICAgIENTUyBjdXN0b20gcHJvcGVydGllcyBvbiBwc2V1ZG8gZWxlbWVudHMgYmFja2dy
b3VuZCBncmFkaWVudHMgY2F1c2VzIGluZmluaXRlIGxheW91dCBhbmQgaGlnaCBDUFUgbG9hZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzMyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Nzg3Mzg5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IHdoZXJlIGFuIGVsZW1lbnQgd2l0
aCBhIGJhY2tncm91bmQtaW1hZ2Ugc2V0IHRvIGEgQ1NTIGdyYWRpZW50IHVzaW5nIGEgY3VzdG9t
IHByb3BlcnR5IGFzIGEgY29sb3IKKyAgICAgICAgc3RvcCBjaGFuZ2VzIGFub3RoZXIgcHJvcGVy
dHkgdGFyZ2V0ZWQgYnkgYSB0cmFuc2l0aW9uIHRvIGNoZWNrIHRoYXQgdGhlcmUgaXMgbm8gYmFj
a2dyb3VuZC1pbWFnZSB0cmFuc2l0aW9uCisgICAgICAgIGdlbmVyYXRlZC4gCisKKyAgICAgICAg
KiB3ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNr
Z3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbi1lbGVtZW50LXdpdGgtZ3Jh
ZGllbnQtYmFja2dyb3VuZC1pbWFnZS1hbmQtY3NzLWN1c3RvbS1wcm9wZXJ0eS5odG1sOiBBZGRl
ZC4KKwogMjAyMS0wNS0wNSAgUm9iZXJ0IEplbm5lciAgPGplbm5lckBhcHBsZS5jb20+CiAKICAg
ICAgICAgWyBCaWdTdXIgd2syIGFybTY0IF0gaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1zaXplcy1uZXR3b3JrLmh0bWwgaXMgYSBmbGFrZXkgdGV4dCBmYWlsdXJlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQt
d2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3VzdG9tLXByb3BlcnR5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb24tZWxl
bWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2UtYW5kLWNzcy1jdXN0b20tcHJvcGVy
dHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZjcwZTY5YmUyMTZhZDJhYjBhNzllMTk2MDI0
ZGMxMmZjYWM5YWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25z
L2Nzcy10cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFu
ZC1jc3MtY3VzdG9tLXByb3BlcnR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBBbiBlbGVtZW50IHdpdGggYSBiYWNrZ3JvdW5kLWltYWdlIHNldCB0byBhIENTUyBncmFkaWVu
dCB3aXRoIGEgc3RvcCBjb2xvciBzZXQgYnkgYSBjdXN0b20gcHJvcGVydHkgZG9lcyBub3QgeWll
bGQgYSBiYWNrZ3JvdW5kLWltYWdlIHRyYW5zaXRpb24gd2hlbiBhbm90aGVyIENTUyBwcm9wZXJ0
eSBjaGFuZ2VzLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10
cmFuc2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3Mt
Y3VzdG9tLXByb3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFu
c2l0aW9uLWVsZW1lbnQtd2l0aC1ncmFkaWVudC1iYWNrZ3JvdW5kLWltYWdlLWFuZC1jc3MtY3Vz
dG9tLXByb3BlcnR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQyOWU5ZWFkM2YzZTY2NTE3ZGIzYzFkNDU0
ODU5NTg3MTE5YzY3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlv
bnMvY3NzLXRyYW5zaXRpb24tZWxlbWVudC13aXRoLWdyYWRpZW50LWJhY2tncm91bmQtaW1hZ2Ut
YW5kLWNzcy1jdXN0b20tcHJvcGVydHkuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZT4KKworOnJvb3QgeworICAgIC0t
Y3VzdG9tLWNvbG9yOiBibHVlOworfQorCisudGFyZ2V0IHsKKyAgICB3aWR0aDogMTAwcHg7Cisg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0t
Y3VzdG9tLWNvbG9yKSwgZ3JlZW4pOworICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDFzOworfQor
CisudGFyZ2V0LnRyYW5zaXRpb24geworICAgIG1hcmdpbi1sZWZ0OiAxMDBweDsKK30KKworPC9z
dHlsZT4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0KGFz
eW5jIHRlc3QgPT4geworICAgIGNvbnN0IHRhcmdldCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgIHRhcmdldC5jbGFzc0xpc3Qu
YWRkKCJ0YXJnZXQiKTsKKworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25G
cmFtZSk7CisgICAgdGFyZ2V0LmNsYXNzTGlzdC5hZGQoInRyYW5zaXRpb24iKTsKKworICAgIGNv
bnN0IGFuaW1hdGlvbnMgPSB0YXJnZXQuZ2V0QW5pbWF0aW9ucygpOworICAgIGFzc2VydF9lcXVh
bHMoYW5pbWF0aW9ucy5sZW5ndGgsIDEsICJUaGVyZSBpcyBvbmx5IG9uZSBhbmltYXRpb24gYXBw
bGllZCB0byB0aGUgdGFyZ2V0LiIpOworICAgIGFzc2VydF90cnVlKGFuaW1hdGlvbnNbMF0gaW5z
dGFuY2VvZiBDU1NUcmFuc2l0aW9uLCAiVGhlIHNpbmdsZSBhbmltYXRpb24gYXBwbGllZCB0byB0
aGUgdGFyZ2V0IGlzIGEgQ1NTIHRyYW5zaXRpb24uIik7CisgICAgYXNzZXJ0X2VxdWFscyhhbmlt
YXRpb25zWzBdLnRyYW5zaXRpb25Qcm9wZXJ0eSwgIm1hcmdpbi1sZWZ0IiwgIlRoZSBzaW5nbGUg
Q1NTIHRyYW5zaXRpb24gYXBwbGllZCB0byB0aGUgdGFyZ2V0IGlzIGZvciB0aGUgbWFyZ2luLWxl
ZnQgcHJvcGVydHkuIik7Cit9LCBgQW4gZWxlbWVudCB3aXRoIGEgYmFja2dyb3VuZC1pbWFnZSBz
ZXQgdG8gYSBDU1MgZ3JhZGllbnQgd2l0aCBhIHN0b3AgY29sb3Igc2V0IGJ5IGEgY3VzdG9tIHBy
b3BlcnR5IGRvZXMgbm90IHlpZWxkIGEgYmFja2dyb3VuZC1pbWFnZSB0cmFuc2l0aW9uIHdoZW4g
YW5vdGhlciBDU1MgcHJvcGVydHkgY2hhbmdlcy5gKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>