<?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>106927</bug_id>
          
          <creation_ts>2013-01-15 11:06:17 -0800</creation_ts>
          <short_desc>[CSS Exclusions] Handle shape-outside changing a float&apos;s overhang behavior</short_desc>
          <delta_ts>2013-02-11 15:18:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dev.w3.org/csswg/css3-exclusions/#floats-and-exclusions</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98664</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bem Jones-Bey">bjonesbe</reporter>
          <assigned_to name="Bem Jones-Bey">bjonesbe</assigned_to>
          <cc>eric</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>michelangelo</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>807473</commentid>
    <comment_count>0</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-01-15 11:06:17 -0800</bug_when>
    <thetext>When a float has shape-outside, it is possible for the shape to be positioned such that either only the shape overflows into a subsequent block or only the float does. This needs to be handled properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813462</commentid>
    <comment_count>1</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-01-22 15:17:21 -0800</bug_when>
    <thetext>This bug is supposed to be about overhang, not overflow. Overflow is another topic altogether, which will be handled in Bug 107594.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815781</commentid>
    <comment_count>2</comment_count>
      <attachid>184570</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-01-24 13:31:06 -0800</bug_when>
    <thetext>Created attachment 184570
Patch

Initial implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815797</commentid>
    <comment_count>3</comment_count>
      <attachid>184570</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-24 13:45:27 -0800</bug_when>
    <thetext>Comment on attachment 184570
Patch

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

&gt; Source/WebCore/rendering/RenderBox.cpp:335
&gt; +    ExclusionShapeOutsideInfo* shapeOutside = exclusionShapeOutsideInfo();
&gt; +    if (isFloating() &amp;&amp; shapeOutside)

isFloating is a quick check in the m_bitfields, so I would only lookup the shape outside info just in case we have a float. (Initialize the shapeOutside variable after the isFloating() == true)

&gt; Source/WebCore/rendering/RenderBox.h:634
&gt; +    // for situations in which the flags on the box will be out of sync with

Did you actually find any case where that happens? I would run all the tests without using this hack and investigate what happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815801</commentid>
    <comment_count>4</comment_count>
      <attachid>184570</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-01-24 13:52:53 -0800</bug_when>
    <thetext>Comment on attachment 184570
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:335
&gt;&gt; +    if (isFloating() &amp;&amp; shapeOutside)
&gt; 
&gt; isFloating is a quick check in the m_bitfields, so I would only lookup the shape outside info just in case we have a float. (Initialize the shapeOutside variable after the isFloating() == true)

Ok.

&gt;&gt; Source/WebCore/rendering/RenderBox.h:634
&gt;&gt; +    // for situations in which the flags on the box will be out of sync with
&gt; 
&gt; Did you actually find any case where that happens? I would run all the tests without using this hack and investigate what happens.

One of the places I use this (RenderBox.cpp:1857) has a comment stating that it does happen. The other place (RenderBox.cpp:1606) does not have any such comment, but I figured I should play it safe here and not change it unless I had to. I do know that the tests all pass if  (RenderBox.cpp:1606) does not have this hack. I did not test with (RenderBox.cpp:1857) given that the comment explicitly says that it must check on the style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815905</commentid>
    <comment_count>5</comment_count>
      <attachid>184594</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-01-24 15:31:29 -0800</bug_when>
    <thetext>Created attachment 184594
Patch

Update based on feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815920</commentid>
    <comment_count>6</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-01-24 15:47:53 -0800</bug_when>
    <thetext>The original approach to positioning was done in bug 100399.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818176</commentid>
    <comment_count>7</comment_count>
      <attachid>184594</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-28 15:16:50 -0800</bug_when>
    <thetext>Comment on attachment 184594
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        When the position on a shapw outside causes a float to spill out into

typo: shapw

&gt; Source/WebCore/ChangeLog:10
&gt; +        looking at a fix, the simaliarities between a float with shape outside

typo: simaliarities

&gt; Source/WebCore/ChangeLog:13
&gt; +        to float positioning has been changed to be similar to the
&gt; +        implementation for relative positioning by using a RenderLayer. This

I have an issue with this explanation: relative positioning only shifts the content *at paint time*. shape-outside changes the layout so both concepts seems different in how they work to warrant more explanations.

&gt; Source/WebCore/ChangeLog:39
&gt; +

If this route pans out (which I am not convinced ATM), you would need to also touch RenderBox::computeRectForRepaint as it checks position before adding the offsetForInFlowPosition but wasn&apos;t amended to cover the new condition.

&gt; Source/WebCore/rendering/RenderObject.h:533
&gt; +    bool isInFlowPositioned() const
&gt; +    {
&gt; +        bool positioned = m_bitfields.isRelPositioned() || m_bitfields.isStickyPositioned(); // relative or sticky positioning
&gt; +#if ENABLE(CSS_EXCLUSIONS)
&gt; +        // Shape outside on a float can reposition the float in much the
&gt; +        // same way as relative positioning, so treat it as such.
&gt; +        positioned = positioned || (m_bitfields.floating() &amp;&amp; m_bitfields.isBox() &amp;&amp; style()-&gt;shapeOutside());

I don&apos;t think it&apos;s valid to call a floating box in-flow or in normal flow per CSS 2.1 (see http://www.w3.org/TR/CSS2/visuren.html#comparison, especially the part about floats).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819107</commentid>
    <comment_count>8</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-01-29 11:08:19 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 184594 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184594&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        When the position on a shapw outside causes a float to spill out into
&gt; 
&gt; typo: shapw
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        looking at a fix, the simaliarities between a float with shape outside
&gt; 
&gt; typo: simaliarities

Will fix these.

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        to float positioning has been changed to be similar to the
&gt; &gt; +        implementation for relative positioning by using a RenderLayer. This
&gt; 
&gt; I have an issue with this explanation: relative positioning only shifts the content *at paint time*. shape-outside changes the layout so both concepts seems different in how they work to warrant more explanations.

When a shape outside is on a float, the float positioning fixes the top and left/right (depending on if it&apos;s floar: right or float: left) coordinates of the shape in the containing block for layout purposes. The only thing that changes (as far as layout is concerned) is the height and width due to the shape. This means that if you give an x and y position to the shape outside when applied to a float, the effect only takes effect at paint time and positions the float at -x and -y relative to the shape position. Does that make more sense?

(I will also update the ChangeLog to be more explicit about the relationship with relative positioning)

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:39
&gt; &gt; +
&gt; 
&gt; If this route pans out (which I am not convinced ATM), you would need to also touch RenderBox::computeRectForRepaint as it checks position before adding the offsetForInFlowPosition but wasn&apos;t amended to cover the new condition.

You&apos;re right, I did miss that. I&apos;ll update that. Do you have any other concerns that you did not mention here?

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderObject.h:533
&gt; &gt; +    bool isInFlowPositioned() const
&gt; &gt; +    {
&gt; &gt; +        bool positioned = m_bitfields.isRelPositioned() || m_bitfields.isStickyPositioned(); // relative or sticky positioning
&gt; &gt; +#if ENABLE(CSS_EXCLUSIONS)
&gt; &gt; +        // Shape outside on a float can reposition the float in much the
&gt; &gt; +        // same way as relative positioning, so treat it as such.
&gt; &gt; +        positioned = positioned || (m_bitfields.floating() &amp;&amp; m_bitfields.isBox() &amp;&amp; style()-&gt;shapeOutside());
&gt; 
&gt; I don&apos;t think it&apos;s valid to call a floating box in-flow or in normal flow per CSS 2.1 (see http://www.w3.org/TR/CSS2/visuren.html#comparison, especially the part about floats).

Would you be happier if instead of changing isInFlowPositioned() and hasInFlowPosition(), I added new methods (these names are horrible, would have to spend more time thinking of good names) isInFlowPositionedOrFloatWithShapeOutside() and hasInFlowPositionedOrFloatWithShapeOutside() and changed the places that use the previous methods to use these methods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821971</commentid>
    <comment_count>9</comment_count>
      <attachid>184594</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-31 14:37:48 -0800</bug_when>
    <thetext>Comment on attachment 184594
Patch

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:13
&gt;&gt;&gt; +        implementation for relative positioning by using a RenderLayer. This
&gt;&gt; 
&gt;&gt; I have an issue with this explanation: relative positioning only shifts the content *at paint time*. shape-outside changes the layout so both concepts seems different in how they work to warrant more explanations.
&gt; 
&gt; When a shape outside is on a float, the float positioning fixes the top and left/right (depending on if it&apos;s floar: right or float: left) coordinates of the shape in the containing block for layout purposes. The only thing that changes (as far as layout is concerned) is the height and width due to the shape. This means that if you give an x and y position to the shape outside when applied to a float, the effect only takes effect at paint time and positions the float at -x and -y relative to the shape position. Does that make more sense?
&gt; 
&gt; (I will also update the ChangeLog to be more explicit about the relationship with relative positioning)

I think I understand your point but would like to see the updated ChangeLog with the long explanation.

&gt;&gt;&gt; Source/WebCore/ChangeLog:39
&gt;&gt;&gt; +
&gt;&gt; 
&gt;&gt; If this route pans out (which I am not convinced ATM), you would need to also touch RenderBox::computeRectForRepaint as it checks position before adding the offsetForInFlowPosition but wasn&apos;t amended to cover the new condition.
&gt; 
&gt; You&apos;re right, I did miss that. I&apos;ll update that. Do you have any other concerns that you did not mention here?

Nope.

&gt;&gt;&gt; Source/WebCore/rendering/RenderObject.h:533
&gt;&gt;&gt; +        positioned = positioned || (m_bitfields.floating() &amp;&amp; m_bitfields.isBox() &amp;&amp; style()-&gt;shapeOutside());
&gt;&gt; 
&gt;&gt; I don&apos;t think it&apos;s valid to call a floating box in-flow or in normal flow per CSS 2.1 (see http://www.w3.org/TR/CSS2/visuren.html#comparison, especially the part about floats).
&gt; 
&gt; Would you be happier if instead of changing isInFlowPositioned() and hasInFlowPosition(), I added new methods (these names are horrible, would have to spend more time thinking of good names) isInFlowPositionedOrFloatWithShapeOutside() and hasInFlowPositionedOrFloatWithShapeOutside() and changed the places that use the previous methods to use these methods?

If the new methods are not used by anyone (which I would expect), I would rather see a rename instead. The function names you offered are too long but I couldn&apos;t think of something as clear but shorter (didn&apos;t spend too much time on it though).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822837</commentid>
    <comment_count>10</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-02-01 09:04:23 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 184594 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184594&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/ChangeLog:13
&gt; &gt;&gt;&gt; +        implementation for relative positioning by using a RenderLayer. This
&gt; &gt;&gt; 
&gt; &gt;&gt; I have an issue with this explanation: relative positioning only shifts the content *at paint time*. shape-outside changes the layout so both concepts seems different in how they work to warrant more explanations.
&gt; &gt; 
&gt; &gt; When a shape outside is on a float, the float positioning fixes the top and left/right (depending on if it&apos;s floar: right or float: left) coordinates of the shape in the containing block for layout purposes. The only thing that changes (as far as layout is concerned) is the height and width due to the shape. This means that if you give an x and y position to the shape outside when applied to a float, the effect only takes effect at paint time and positions the float at -x and -y relative to the shape position. Does that make more sense?
&gt; &gt; 
&gt; &gt; (I will also update the ChangeLog to be more explicit about the relationship with relative positioning)
&gt; 
&gt; I think I understand your point but would like to see the updated ChangeLog with the long explanation.

Ok, I will post that today.

&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/rendering/RenderObject.h:533
&gt; &gt;&gt;&gt; +        positioned = positioned || (m_bitfields.floating() &amp;&amp; m_bitfields.isBox() &amp;&amp; style()-&gt;shapeOutside());
&gt; &gt;&gt; 
&gt; &gt;&gt; I don&apos;t think it&apos;s valid to call a floating box in-flow or in normal flow per CSS 2.1 (see http://www.w3.org/TR/CSS2/visuren.html#comparison, especially the part about floats).
&gt; &gt; 
&gt; &gt; Would you be happier if instead of changing isInFlowPositioned() and hasInFlowPosition(), I added new methods (these names are horrible, would have to spend more time thinking of good names) isInFlowPositionedOrFloatWithShapeOutside() and hasInFlowPositionedOrFloatWithShapeOutside() and changed the places that use the previous methods to use these methods?
&gt; 
&gt; If the new methods are not used by anyone (which I would expect), I would rather see a rename instead. The function names you offered are too long but I couldn&apos;t think of something as clear but shorter (didn&apos;t spend too much time on it though).

I don&apos;t understand why you would expect it not to be used by anyone. I would expect to be using them in all of the places where hasInFlowPosition and isInFlowPositioned are used right now. The other alternative would be to just add another if statement that checks for shapeOutside on a float in the places where hasInFlowPosition and isInFlowPositioned are currently checked for. Since we need to add the offset due to the shape in all of the same cases where we would have to adjust for relative positioning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822906</commentid>
    <comment_count>11</comment_count>
      <attachid>184594</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-01 10:01:23 -0800</bug_when>
    <thetext>Comment on attachment 184594
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderObject.h:533
&gt;&gt;&gt;&gt;&gt; +        positioned = positioned || (m_bitfields.floating() &amp;&amp; m_bitfields.isBox() &amp;&amp; style()-&gt;shapeOutside());
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; I don&apos;t think it&apos;s valid to call a floating box in-flow or in normal flow per CSS 2.1 (see http://www.w3.org/TR/CSS2/visuren.html#comparison, especially the part about floats).
&gt;&gt;&gt; 
&gt;&gt;&gt; Would you be happier if instead of changing isInFlowPositioned() and hasInFlowPosition(), I added new methods (these names are horrible, would have to spend more time thinking of good names) isInFlowPositionedOrFloatWithShapeOutside() and hasInFlowPositionedOrFloatWithShapeOutside() and changed the places that use the previous methods to use these methods?
&gt;&gt; 
&gt;&gt; If the new methods are not used by anyone (which I would expect), I would rather see a rename instead. The function names you offered are too long but I couldn&apos;t think of something as clear but shorter (didn&apos;t spend too much time on it though).
&gt; 
&gt; I don&apos;t understand why you would expect it not to be used by anyone. I would expect to be using them in all of the places where hasInFlowPosition and isInFlowPositioned are used right now. The other alternative would be to just add another if statement that checks for shapeOutside on a float in the places where hasInFlowPosition and isInFlowPositioned are currently checked for. Since we need to add the offset due to the shape in all of the same cases where we would have to adjust for relative positioning.

s/new methods/old methods/ in my earlier reply which should make a lot more sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822941</commentid>
    <comment_count>12</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-02-01 10:39:27 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 184594 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184594&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderObject.h:533
&gt; &gt;&gt;&gt;&gt;&gt; +        positioned = positioned || (m_bitfields.floating() &amp;&amp; m_bitfields.isBox() &amp;&amp; style()-&gt;shapeOutside());
&gt; &gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt; I don&apos;t think it&apos;s valid to call a floating box in-flow or in normal flow per CSS 2.1 (see http://www.w3.org/TR/CSS2/visuren.html#comparison, especially the part about floats).
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; Would you be happier if instead of changing isInFlowPositioned() and hasInFlowPosition(), I added new methods (these names are horrible, would have to spend more time thinking of good names) isInFlowPositionedOrFloatWithShapeOutside() and hasInFlowPositionedOrFloatWithShapeOutside() and changed the places that use the previous methods to use these methods?
&gt; &gt;&gt; 
&gt; &gt;&gt; If the new methods are not used by anyone (which I would expect), I would rather see a rename instead. The function names you offered are too long but I couldn&apos;t think of something as clear but shorter (didn&apos;t spend too much time on it though).
&gt; &gt; 
&gt; &gt; I don&apos;t understand why you would expect it not to be used by anyone. I would expect to be using them in all of the places where hasInFlowPosition and isInFlowPositioned are used right now. The other alternative would be to just add another if statement that checks for shapeOutside on a float in the places where hasInFlowPosition and isInFlowPositioned are currently checked for. Since we need to add the offset due to the shape in all of the same cases where we would have to adjust for relative positioning.
&gt; 
&gt; s/new methods/old methods/ in my earlier reply which should make a lot more sense.

Yes, that does make a lot more sense, thanks. I&apos;ll give some more thought to the naming as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827941</commentid>
    <comment_count>13</comment_count>
      <attachid>187189</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-02-07 15:40:33 -0800</bug_when>
    <thetext>Created attachment 187189
Patch

Update based on feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829895</commentid>
    <comment_count>14</comment_count>
      <attachid>187189</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-11 11:05:53 -0800</bug_when>
    <thetext>Comment on attachment 187189
Patch

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

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:544
&gt; +        ExclusionShapeOutsideInfo* shapeOutside = toRenderBox(this)-&gt;exclusionShapeOutsideInfo();
&gt; +        if (shapeOutside)

This should be on one line.

&gt; Source/WebCore/rendering/RenderLayer.h:1127
&gt;      // Our current relative position offset.

Let&apos;s update this comment as it is stale now.

// Paint time offset only, it is used for properly paint relative / sticky positioned elements and exclusion boxes on floats.

&gt; LayoutTests/fast/exclusions/shape-outside-floats/shape-outside-floats-overhang.html:31
&gt; +      You should only be able to see part of this text. If you can read all of this, then it isn&apos;t working.

I would capitalize the second sentence and make it more prominent that this is the failure:

You should only be able to see this sentence. &lt;span style=&quot;color: red&quot;&gt;IF YOU SEE THIS TEXT, THE TEST HAS FAILED.&lt;/span&gt;

If you expect only to see part of the second sentence, this test should defined a fixed font-size (probably Ahem) and use a text that ensures the proper layout (like XXXXXXXXXX which is 100px if font-size: 10px)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829964</commentid>
    <comment_count>15</comment_count>
      <attachid>187632</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-02-11 12:01:39 -0800</bug_when>
    <thetext>Created attachment 187632
Final Patch

Update based on feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830091</commentid>
    <comment_count>16</comment_count>
      <attachid>187632</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 13:56:09 -0800</bug_when>
    <thetext>Comment on attachment 187632
Final Patch

Rejecting attachment 187632 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--non-interactive&apos;, 187632, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

/mnt/git/webkit-commit-queue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/16488471</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830101</commentid>
    <comment_count>17</comment_count>
      <attachid>187665</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-11 14:06:48 -0800</bug_when>
    <thetext>Created attachment 187665
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830103</commentid>
    <comment_count>18</comment_count>
      <attachid>187666</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-11 14:07:15 -0800</bug_when>
    <thetext>Created attachment 187666
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830105</commentid>
    <comment_count>19</comment_count>
      <attachid>187668</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-11 14:08:00 -0800</bug_when>
    <thetext>Created attachment 187668
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830112</commentid>
    <comment_count>20</comment_count>
      <attachid>187670</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-11 14:13:14 -0800</bug_when>
    <thetext>Created attachment 187670
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830196</commentid>
    <comment_count>21</comment_count>
      <attachid>187670</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 15:18:51 -0800</bug_when>
    <thetext>Comment on attachment 187670
Patch for landing

Clearing flags on attachment: 187670

Committed r142527: &lt;http://trac.webkit.org/changeset/142527&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830197</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 15:18:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184570</attachid>
            <date>2013-01-24 13:31:06 -0800</date>
            <delta_ts>2013-01-24 15:31:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106927-20130124132757.patch</filename>
            <type>text/plain</type>
            <size>23890</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjQwNDc2YTNjY2NhM2Y3
YTM4ZmYxZjdiMzBlYWNiNjNiYzg4N2FkOC4uNWM0ZmEwYTYwY2ZiZDI4OGYzMTJkOGU1ZWExNDhk
NDRmZGI4MzA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAxLTI0ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2
aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHRoZSBwb3NpdGlvbiBvbiBhIHNoYXB3IG91dHNpZGUgY2F1c2VzIGEgZmxvYXQgdG8gc3BpbGwg
b3V0IGludG8KKyAgICAgICAgYW5vdGhlciBkaXYgdGhhbiBpdCdzIGNvbnRhaW5lciwgaXQgd2Fz
IG5vdCBiZWluZyBkcmF3biBjb3JyZWN0bHkuIEluCisgICAgICAgIGxvb2tpbmcgYXQgYSBmaXgs
IHRoZSBzaW1hbGlhcml0aWVzIGJldHdlZW4gYSBmbG9hdCB3aXRoIHNoYXBlIG91dHNpZGUKKyAg
ICAgICAgYW5kIGEgcmVsYXRpdmVseSBwb3NpdGlvbmVkIGZsb2F0IGJlY2FtZSBhcHBhcmVudC4g
VGh1cywgdGhlIGFwcHJvYWNoCisgICAgICAgIHRvIGZsb2F0IHBvc2l0aW9uaW5nIGhhcyBiZWVu
IGNoYW5nZWQgdG8gYmUgc2ltaWxhciB0byB0aGUKKyAgICAgICAgaW1wbGVtZW50YXRpb24gZm9y
IHJlbGF0aXZlIHBvc2l0aW9uaW5nIGJ5IHVzaW5nIGEgUmVuZGVyTGF5ZXIuIFRoaXMKKyAgICAg
ICAgYWxzbyBoYXMgc29sdmVkIG90aGVyIG91dHN0YW5kaW5nIGlzc3VlcyB3aXRoIHRoZSBpbXBs
ZW1lbnRhdGlvbiwgbGlrZQorICAgICAgICBtYWtpbmcgaGl0IGRldGVjdGlvbiB3b3JrLgorCisg
ICAgICAgIFRoaXMgaXMgYWxzbyB0ZXN0ZWQgYnkgdGhlIGV4aXN0aW5nIHRlc3RzIGZvciBzaGFw
ZSBvdXRzaWRlIG9uIGZsb2F0cyBwb3NpdGlvbmluZy4KKworICAgICAgICBUZXN0OiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3Zlcmhh
bmcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8u
aDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OnNoYXBlTG9n
aWNhbE9mZnNldCk6IFV0aWxpdHkgbWV0aG9kIHRvIGNyZWF0ZSBhIExheW91dFNpemUgZm9yIGNv
bXB1dGluZyB0aGUgbGF5ZXIgb2Zmc2V0LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZmxpcEZsb2F0Rm9yV3JpdGlu
Z01vZGVGb3JDaGlsZCk6IFJlbW92ZSBvbGQgcG9zaXRpb25pbmcgaW1wbGVtZW50YXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRGbG9hdHMpOiBSZW1vdmUgb2xkIHBv
c2l0aW9uaW5nIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnBvc2l0aW9uTmV3RmxvYXRzKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmluZyBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGRPdmVyaGFuZ2luZ0Zsb2F0cyk6
IFJlbW92ZSBGSVhNRS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdp
bik6IFJlbW92ZSBvbGQgcG9zaXRpb25pbmcgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9jazo6eVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4pOiBSZW1v
dmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpvZmZzZXRGb3JJbkZs
b3dQb3NpdGlvbik6IFVzZSB0aGUgc2hhcGUncyBvZmZzZXQgdG8gZGV0ZXJtaW5lIHRoZSBmbG9h
dCdzIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjptYXBMb2NhbFRvQ29u
dGFpbmVyKTogTWFrZSBzdXJlIHRoYXQgdGhlIG9mZnNldCBpcyB1c2VkIGlmIHdlIGFyZSBhIGZs
b2F0IHdpdGggYSBzaGFwZSBvdXRzaWRlLiAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KTogTWFrZSBzdXJlIHRoYXQgdGhlIG9mZnNldCBpcyB1c2Vk
IGlmIHdlIGFyZSBhIGZsb2F0IHdpdGggYSBzaGFwZSBvdXRzaWRlLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCb3guaDogTWFrZSBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGdldCBhIGxh
eWVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzdHlsZUhhc0luRmxvd1Bvc2l0aW9u
T3JTaGFwZU91dHNpZGUpOiBGYWN0b3Igb3V0IGNvZGUgdG8gZGV0ZXJtaW5lIGlmIHdlIGhhdmUg
aW4gZnJvbSBwb3NpdGlvbiBmcm9tIHRoZSBzdHlsZSBmb3IKKyAgICAgICAgICAgIG1hcExvY2Fs
VG9Db250YWluZXIgYW5kIGNvbXB1dGVSZWN0Rm9yUmVwYWludCwgd2hpY2ggYXJlIGNhbGxlZCBp
biBwbGFjZXMgdGhhdCBjYW5ub3QgdHJ1c3QgdGhlIGZsYWdzIG9uIHRoZSBSZW5kZXJPYmplY3Qg
aXRzZWxmLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOiBNYWtl
IG9mZnNldEZvckluRmxvd1Bvc2l0aW9uIHZpcnR1YWwgc28gdGhhdCBpdCBjYW4gYmUgb3ZlcnJp
ZGRlbiBpbiBSZW5kZXJCb3guCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc0luRmxvd1Bvc2l0aW9uZWQpOiBBZGQg
Y2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUuCisKIDIwMTMtMDEtMjQgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGEgdHlwbyBhZnRlciBy
MTM5ODM4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlT3V0c2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFw
ZU91dHNpZGVJbmZvLmgKaW5kZXggNTNhMDA3MTNkNDJkYmE2NGQxMzY0YTczMjcyN2MyMTVkMjAy
ZWEzOC4uY2EyODBhZjc3NDMxMmFiNTkyNjQ3Y2VmZjk0MzJmMjg0MWMwZWFiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5o
CkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJFeGNsdXNpb25TaGFwZS5oIgogI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkxheW91dFNpemUuaCIKICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtNzYsNiArNzcsMTAg
QEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVM
b2dpY2FsQm91bmRpbmdCb3goKS5oZWlnaHQoKTsKICAgICB9CisgICAgTGF5b3V0U2l6ZSBzaGFw
ZUxvZ2ljYWxPZmZzZXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIExheW91dFNpemUo
c2hhcGVMb2dpY2FsTGVmdCgpLCBzaGFwZUxvZ2ljYWxUb3AoKSk7CisgICAgfQogCiAgICAgdm9p
ZCBzZXRTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNh
bEhlaWdodCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApp
bmRleCA5YzM3NWZhMzYwZTAzNzFkYmY5NDg4MWM0N2U1ZGNiMzc1YWIxNDUyLi40MDNmNTZhNTQ0
MWE3Yzc4MzJlMTY0YTJmNTU4OTZkZjdiZTdiNjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKQEAgLTMxMjcsNyArMzEyNyw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6
OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmZzCiAgICAgfQogfQogCi1MYXlvdXRQb2ludCBSZW5kZXJCbG9jazo6ZmxpcEZsb2F0Rm9y
V3JpdGluZ01vZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQsIGNvbnN0IExh
eW91dFBvaW50JiBwb2ludCwgRmxvYXRSZW5kZXJpbmdTdGF0ZSByZW5kZXJpbmdTdGF0ZSkgY29u
c3QKK0xheW91dFBvaW50IFJlbmRlckJsb2NrOjpmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNo
aWxkKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50
KSBjb25zdAogewogICAgIGlmICghc3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUo
KSkKICAgICAgICAgcmV0dXJuIHBvaW50OwpAQCAtMzEzNiw4ICszMTM2LDggQEAgTGF5b3V0UG9p
bnQgUmVuZGVyQmxvY2s6OmZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY29uc3QgRmxv
YXRpbmdPYmplY3QqIGMKICAgICAvLyBpdCdzIGdvaW5nIHRvIGdldCBhZGRlZCBiYWNrIGluLiBX
ZSBoaWRlIHRoaXMgY29tcGxpY2F0aW9uIGhlcmUgc28gdGhhdCB0aGUgY2FsbGluZyBjb2RlIGxv
b2tzIG5vcm1hbCBmb3IgdGhlIHVuZmxpcHBlZAogICAgIC8vIGNhc2UuCiAgICAgaWYgKGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpCi0gICAgICAgIHJldHVybiBMYXlvdXRQb2ludChwb2ludC54
KCksIHBvaW50LnkoKSArIGhlaWdodCgpIC0gY2hpbGQtPnJlbmRlcmVyKCktPmhlaWdodCgpIC0g
MiAqIHlQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNoaWxkLCByZW5kZXJpbmdTdGF0
ZSkpOwotICAgIHJldHVybiBMYXlvdXRQb2ludChwb2ludC54KCkgKyB3aWR0aCgpIC0gY2hpbGQt
PnJlbmRlcmVyKCktPndpZHRoKCkgLSAyICogeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJn
aW4oY2hpbGQsIHJlbmRlcmluZ1N0YXRlKSwgcG9pbnQueSgpKTsKKyAgICAgICAgcmV0dXJuIExh
eW91dFBvaW50KHBvaW50LngoKSwgcG9pbnQueSgpICsgaGVpZ2h0KCkgLSBjaGlsZC0+cmVuZGVy
ZXIoKS0+aGVpZ2h0KCkgLSAyICogeVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY2hp
bGQpKTsKKyAgICByZXR1cm4gTGF5b3V0UG9pbnQocG9pbnQueCgpICsgd2lkdGgoKSAtIGNoaWxk
LT5yZW5kZXJlcigpLT53aWR0aCgpIC0gMiAqIHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFy
Z2luKGNoaWxkKSwgcG9pbnQueSgpKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRGbG9h
dHMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwg
Ym9vbCBwcmVzZXJ2ZVBoYXNlKQpAQCAtMzE1Myw3ICszMTUzLDcgQEAgdm9pZCBSZW5kZXJCbG9j
azo6cGFpbnRGbG9hdHMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mZnMKICAgICAgICAgaWYgKHItPnNob3VsZFBhaW50KCkgJiYgIXItPm1fcmVuZGVyZXIt
Pmhhc1NlbGZQYWludGluZ0xheWVyKCkpIHsKICAgICAgICAgICAgIFBhaW50SW5mbyBjdXJyZW50
UGFpbnRJbmZvKHBhaW50SW5mbyk7CiAgICAgICAgICAgICBjdXJyZW50UGFpbnRJbmZvLnBoYXNl
ID0gcHJlc2VydmVQaGFzZSA/IHBhaW50SW5mby5waGFzZSA6IFBhaW50UGhhc2VCbG9ja0JhY2tn
cm91bmQ7Ci0gICAgICAgICAgICBMYXlvdXRQb2ludCBjaGlsZFBvaW50ID0gZmxpcEZsb2F0Rm9y
V3JpdGluZ01vZGVGb3JDaGlsZChyLCBMYXlvdXRQb2ludChwYWludE9mZnNldC54KCkgKyB4UG9z
aXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihyLCBGbG9hdFBhaW50KSAtIHItPm1fcmVuZGVy
ZXItPngoKSwgcGFpbnRPZmZzZXQueSgpICsgeVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJn
aW4ociwgRmxvYXRQYWludCkgLSByLT5tX3JlbmRlcmVyLT55KCkpLCBGbG9hdFBhaW50KTsKKyAg
ICAgICAgICAgIExheW91dFBvaW50IGNoaWxkUG9pbnQgPSBmbGlwRmxvYXRGb3JXcml0aW5nTW9k
ZUZvckNoaWxkKHIsIExheW91dFBvaW50KHBhaW50T2Zmc2V0LngoKSArIHhQb3NpdGlvbkZvckZs
b2F0SW5jbHVkaW5nTWFyZ2luKHIpIC0gci0+bV9yZW5kZXJlci0+eCgpLCBwYWludE9mZnNldC55
KCkgKyB5UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihyKSAtIHItPm1fcmVuZGVyZXIt
PnkoKSkpOwogICAgICAgICAgICAgci0+bV9yZW5kZXJlci0+cGFpbnQoY3VycmVudFBhaW50SW5m
bywgY2hpbGRQb2ludCk7CiAgICAgICAgICAgICBpZiAoIXByZXNlcnZlUGhhc2UpIHsKICAgICAg
ICAgICAgICAgICBjdXJyZW50UGFpbnRJbmZvLnBoYXNlID0gUGFpbnRQaGFzZUNoaWxkQmxvY2tC
YWNrZ3JvdW5kczsKQEAgLTQwMTMsMTggKzQwMTMsOCBAQCBib29sIFJlbmRlckJsb2NrOjpwb3Np
dGlvbk5ld0Zsb2F0cygpCiAKICAgICAgICAgc2V0TG9naWNhbExlZnRGb3JGbG9hdChmbG9hdGlu
Z09iamVjdCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpKTsKIAotI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKLSAgICAgICAgaWYgKGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
KCkpIHsKLSAgICAgICAgICAgIC8vIFRoZSBDU1MgRXhjbHVzaW9ucyBzcGVjaWZpY2F0aW9uIHNh
eXMgdGhhdCB0aGUgbWFyZ2lucyBhcmUgaWdub3JlZCB3aGVuIGEgZmxvYXQgaGFzIGEgc2hhcGUg
b3V0c2lkZS4KLSAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZs
b2F0TG9naWNhbExvY2F0aW9uLngoKSAtIGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJ
bmZvKCktPnNoYXBlTG9naWNhbExlZnQoKSk7Ci0gICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9y
Q2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSAtIGNoaWxkQm94LT5leGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvKCktPnNoYXBlTG9naWNhbFRvcCgpKTsKLSAgICAgICAgfSBl
bHNlIHsKLSNlbmRpZgotICAgICAgICAgICAgc2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJv
eCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpICsgY2hpbGRMb2dpY2FsTGVmdE1hcmdpbik7Ci0g
ICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExv
Y2F0aW9uLnkoKSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkQm94KSk7Ci0jaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQotICAgICAgICB9Ci0jZW5kaWYKKyAgICAgICAgc2V0TG9naWNhbExl
ZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpICsgY2hpbGRMb2dp
Y2FsTGVmdE1hcmdpbik7CisgICAgICAgIHNldExvZ2ljYWxUb3BGb3JDaGlsZChjaGlsZEJveCwg
ZmxvYXRMb2dpY2FsTG9jYXRpb24ueSgpICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGRCb3gp
KTsKIAogICAgICAgICBMYXlvdXRTdGF0ZSogbGF5b3V0U3RhdGUgPSB2aWV3KCktPmxheW91dFN0
YXRlKCk7CiAgICAgICAgIGJvb2wgaXNQYWdpbmF0ZWQgPSBsYXlvdXRTdGF0ZS0+aXNQYWdpbmF0
ZWQoKTsKQEAgLTQwNTMsMTkgKzQwNDMsOCBAQCBib29sIFJlbmRlckJsb2NrOjpwb3NpdGlvbk5l
d0Zsb2F0cygpCiAgICAgICAgICAgICAgICAgZmxvYXRMb2dpY2FsTG9jYXRpb24gPSBjb21wdXRl
TG9naWNhbExvY2F0aW9uRm9yRmxvYXQoZmxvYXRpbmdPYmplY3QsIG5ld0xvZ2ljYWxUb3ApOwog
ICAgICAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yRmxvYXQoZmxvYXRpbmdPYmplY3QsIGZs
b2F0TG9naWNhbExvY2F0aW9uLngoKSk7CiAKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0g
ICAgICAgICAgICAgICAgaWYgKGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIENTUyBFeGNsdXNpb25zIHNwZWNpZmljYXRp
b24gc2F5cyB0aGF0IHRoZSBtYXJnaW5zIGFyZSBpZ25vcmVkIHdoZW4gYSBmbG9hdCBoYXMgYSBz
aGFwZSBvdXRzaWRlLgotICAgICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxk
KGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi54KCkgLSBjaGlsZEJveC0+ZXhjbHVzaW9u
U2hhcGVPdXRzaWRlSW5mbygpLT5zaGFwZUxvZ2ljYWxMZWZ0KCkpOwotICAgICAgICAgICAgICAg
ICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9u
LnkoKSAtIGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCktPnNoYXBlTG9naWNh
bFRvcCgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotI2VuZGlmCi0gICAgICAgICAgICAg
ICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0
aW9uLngoKSArIGNoaWxkTG9naWNhbExlZnRNYXJnaW4pOwotICAgICAgICAgICAgICAgICAgICBz
ZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSAr
IG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkQm94KSk7Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQotICAgICAgICAgICAgICAgIH0KLSNlbmRpZgotCisgICAgICAgICAgICAgICAgc2V0TG9n
aWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpICsgY2hp
bGRMb2dpY2FsTGVmdE1hcmdpbik7CisgICAgICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNo
aWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi55KCkgKyBtYXJnaW5CZWZvcmVGb3JD
aGlsZChjaGlsZEJveCkpOwogICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoY2hpbGRCbG9j
aykKICAgICAgICAgICAgICAgICAgICAgY2hpbGRCbG9jay0+c2V0Q2hpbGROZWVkc0xheW91dCh0
cnVlLCBNYXJrT25seVRoaXMpOwpAQCAtNDU1OCw3ICs0NTM3LDYgQEAgTGF5b3V0VW5pdCBSZW5k
ZXJCbG9jazo6YWRkT3ZlcmhhbmdpbmdGbG9hdHMoUmVuZGVyQmxvY2sqIGNoaWxkLCBib29sIG1h
a2VDaGlsZFAKICAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsQm90dG9tID0gY2hpbGRMb2dpY2Fs
VG9wICsgbG9naWNhbEJvdHRvbUZvckZsb2F0OwogICAgICAgICBsb3dlc3RGbG9hdExvZ2ljYWxC
b3R0b20gPSBtYXgobG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tLCBsb2dpY2FsQm90dG9tKTsKIAot
ICAgICAgICAvLyBGSVhNRTogQnVnIDEwNjkyNyBIYW5kbGUgc2l0dWF0aW9ucyB3aGVyZSBmbG9h
dCBhbmQgc2hhcGUtb3V0c2lkZSBvdmVyZmxvdyBkaWZmZXJlbnRseS4KICAgICAgICAgaWYgKGxv
Z2ljYWxCb3R0b20gPiBsb2dpY2FsSGVpZ2h0KCkpIHsKICAgICAgICAgICAgIC8vIElmIHRoZSBv
YmplY3QgaXMgbm90IGluIHRoZSBsaXN0LCB3ZSBhZGQgaXQgbm93LgogICAgICAgICAgICAgaWYg
KCFjb250YWluc0Zsb2F0KHItPm1fcmVuZGVyZXIpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5oCmluZGV4IDFlZDIxMWNlODM4ZmQzZTYzMzUxNDJmMzE3MGRlMTZlODU5NzJk
N2QuLjdhZTRlMWQ4NGE3ZjkyY2YyNzhhNDQ4ZDkxMDFkMWE5YzE3ZmI1NTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC02ODksMTQgKzY4OSw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKICAgICB9OwogCi0gICAgLy8gV2hlbiBhIGZsb2F0IGhhcyBzaGFwZSBvdXRzaWRl
LCBpdCBuZWVkcyB0byBiZSBoYW5kbGVkIGRpZmZlcmVudGx5IGF0Ci0gICAgLy8gcGFpbnQgdGlt
ZSBhbmQgYXQgbGF5b3V0IHRpbWUsIHNpbmNlIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgc2hhcGUK
LSAgICAvLyAoYWZmZWN0aW5nIGxheW91dCkgYW5kIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgZmxv
YXQgaXRzZWxmIChhZmZlY3RpbmcKLSAgICAvLyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGUgZmxv
YXQgaXMpIGNhbiBiZSBpbiBkaWZmZXJlbnQgcGxhY2VzLiBUaGlzIGVudW0KLSAgICAvLyBpcyB1
c2VkIHRvIGNoYW5nZSBiZWhhdmlvciBiYXNlZCBvbiB0aGF0IHN0YXRlLgotICAgIGVudW0gRmxv
YXRSZW5kZXJpbmdTdGF0ZSB7IEZsb2F0TGF5b3V0LCBGbG9hdFBhaW50IH07Ci0KLSAgICBMYXlv
dXRQb2ludCBmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKGNvbnN0IEZsb2F0aW5nT2Jq
ZWN0KiwgY29uc3QgTGF5b3V0UG9pbnQmLCBGbG9hdFJlbmRlcmluZ1N0YXRlID0gRmxvYXRMYXlv
dXQpIGNvbnN0OworICAgIExheW91dFBvaW50IGZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hp
bGQoY29uc3QgRmxvYXRpbmdPYmplY3QqLCBjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0OwogCiAg
ICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wRm9yRmxvYXQoY29uc3QgRmxvYXRpbmdPYmplY3QqIGNo
aWxkKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY2hpbGQtPnko
KSA6IGNoaWxkLT54KCk7IH0KICAgICBMYXlvdXRVbml0IGxvZ2ljYWxCb3R0b21Gb3JGbG9hdChj
b25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkgPyBjaGlsZC0+bWF4WSgpIDogY2hpbGQtPm1heFgoKTsgfQpAQCAtNzM4LDEz
ICs3MzEsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNoaWxkLT5zZXRIZWlnaHQobG9naWNh
bFdpZHRoKTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0IHhQb3NpdGlvbkZvckZsb2F0SW5jbHVk
aW5nTWFyZ2luKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCwgRmxvYXRSZW5kZXJpbmdTdGF0
ZSByZW5kZXJpbmdTdGF0ZSA9IEZsb2F0TGF5b3V0KSBjb25zdAorICAgIExheW91dFVuaXQgeFBv
c2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxk
KSBjb25zdAogICAgIHsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgIEV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm8gKnNoYXBlT3V0c2lkZSA9IGNoaWxkLT5yZW5kZXJlcigpLT5l
eGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCk7Ci0gICAgICAgIGlmIChyZW5kZXJpbmdTdGF0ZSA9
PSBGbG9hdFBhaW50ICYmIHNoYXBlT3V0c2lkZSkKLSAgICAgICAgICAgIHJldHVybiBjaGlsZC0+
eCgpIC0gKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBzaGFwZU91dHNpZGUtPnNoYXBlTG9n
aWNhbExlZnQoKSA6IHNoYXBlT3V0c2lkZS0+c2hhcGVMb2dpY2FsVG9wKCkpOwotICAgICAgICAv
LyBGSVhNRTogQnVnIDEwNjkyOCBUaGlzIG5lZWRzIHRvIHByb3Blcmx5IGhhbmRsZSB0aGUgbWFy
Z2luIGZvciBmbG9hdHMgd2l0aCBzaGFwZS1vdXRzaWRlIGZvciBub24tcGFpbnQgdGltZS4KKyAg
ICAgICAgaWYgKHNoYXBlT3V0c2lkZSkKKyAgICAgICAgICAgIHJldHVybiBjaGlsZC0+eCgpOwog
I2VuZGlmCiAKICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCkBAIC03NTMs
MTMgKzc0NSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIGNoaWxkLT54KCkgKyBt
YXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZC0+cmVuZGVyZXIoKSk7CiAgICAgfQogICAgICAgICAK
LSAgICBMYXlvdXRVbml0IHlQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNvbnN0IEZs
b2F0aW5nT2JqZWN0KiBjaGlsZCwgRmxvYXRSZW5kZXJpbmdTdGF0ZSByZW5kZXJpbmdTdGF0ZSA9
IEZsb2F0TGF5b3V0KSBjb25zdAorICAgIExheW91dFVuaXQgeVBvc2l0aW9uRm9yRmxvYXRJbmNs
dWRpbmdNYXJnaW4oY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxkKSBjb25zdAogICAgIHsKICNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUlu
Zm8gKnNoYXBlT3V0c2lkZSA9IGNoaWxkLT5yZW5kZXJlcigpLT5leGNsdXNpb25TaGFwZU91dHNp
ZGVJbmZvKCk7Ci0gICAgICAgIGlmIChyZW5kZXJpbmdTdGF0ZSA9PSBGbG9hdFBhaW50ICYmIHNo
YXBlT3V0c2lkZSkKLSAgICAgICAgICAgIHJldHVybiBjaGlsZC0+eSgpIC0gKGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBzaGFwZU91dHNpZGUtPnNoYXBlTG9naWNhbFRvcCgpIDogc2hhcGVP
dXRzaWRlLT5zaGFwZUxvZ2ljYWxMZWZ0KCkpOwotICAgICAgICAvLyBGSVhNRTogQnVnIDEwNjky
OCBUaGlzIG5lZWRzIHRvIHByb3Blcmx5IGhhbmRsZSB0aGUgbWFyZ2luIGZvciBmbG9hdHMgd2l0
aCBzaGFwZS1vdXRzaWRlLgorICAgICAgICBpZiAoc2hhcGVPdXRzaWRlKQorICAgICAgICAgICAg
cmV0dXJuIGNoaWxkLT55KCk7CiAjZW5kaWYKIAogICAgICAgICBpZiAoaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNDQz
ZDIyNDY5YzJmMzk1OWRmM2FiMzVjMWFjMWM3NmUyNzQzZDVkZi4uNTQwMDk4MTQzNjMxY2JhNmJm
ZjdlNjIzZjA2MWI0ZjA4YTgwMzNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKQEAgLTMyNiw2ICszMjYsMTggQEAgdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZUV4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvblMKICAgICB9
IGVsc2UKICAgICAgICAgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6cmVtb3ZlSW5mb0ZvclJl
bmRlckJveCh0aGlzKTsKIH0KKworTGF5b3V0U2l6ZSBSZW5kZXJCb3g6Om9mZnNldEZvckluRmxv
d1Bvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBMYXlvdXRTaXplIG9mZnNldCA9IFJlbmRlckJveE1v
ZGVsT2JqZWN0OjpvZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworCisgICAgRXhjbHVzaW9uU2hh
cGVPdXRzaWRlSW5mbyogc2hhcGVPdXRzaWRlID0gZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygp
OworICAgIGlmIChpc0Zsb2F0aW5nKCkgJiYgc2hhcGVPdXRzaWRlKQorICAgICAgICBvZmZzZXQg
LT0gc2hhcGVPdXRzaWRlLT5zaGFwZUxvZ2ljYWxPZmZzZXQoKTsKKworICAgIHJldHVybiBvZmZz
ZXQ7Cit9CisKICNlbmRpZgogCiB2b2lkIFJlbmRlckJveDo6dXBkYXRlRnJvbVN0eWxlKCkKQEAg
LTE1OTEsNyArMTYwMyw3IEBAIHZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluCiAgICAgICAgIGlmICh2
LT5sYXlvdXRTdGF0ZUVuYWJsZWQoKSAmJiAhcmVwYWludENvbnRhaW5lcikgewogICAgICAgICAg
ICAgTGF5b3V0U3RhdGUqIGxheW91dFN0YXRlID0gdi0+bGF5b3V0U3RhdGUoKTsKICAgICAgICAg
ICAgIExheW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQgKyBsb2Nh
dGlvbk9mZnNldCgpOwotICAgICAgICAgICAgaWYgKHN0eWxlKCktPmhhc0luRmxvd1Bvc2l0aW9u
KCkgJiYgbGF5ZXIoKSkKKyAgICAgICAgICAgIGlmIChzdHlsZUhhc0luRmxvd1Bvc2l0aW9uT3JT
aGFwZU91dHNpZGUoc3R5bGUoKSkgJiYgbGF5ZXIoKSkKICAgICAgICAgICAgICAgICBvZmZzZXQg
Kz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKICAgICAgICAgICAgIHRyYW5z
Zm9ybVN0YXRlLm1vdmUob2Zmc2V0KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE4NDIsNyAr
MTg1NCw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhCiAgICAgICAgICAgICAgICAgcmVjdCA9
IGxheWVyKCktPnRyYW5zZm9ybSgpLT5tYXBSZWN0KHBpeGVsU25hcHBlZEludFJlY3QocmVjdCkp
OwogCiAgICAgICAgICAgICAvLyBXZSBjYW4ndCB0cnVzdCB0aGUgYml0cyBvbiBSZW5kZXJPYmpl
Y3QsIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsZWQgd2hpbGUgcmUtcmVzb2x2aW5nIHN0eWxl
LgotICAgICAgICAgICAgaWYgKHN0eWxlVG9Vc2UtPmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5
ZXIoKSkKKyAgICAgICAgICAgIGlmIChzdHlsZUhhc0luRmxvd1Bvc2l0aW9uT3JTaGFwZU91dHNp
ZGUoc3R5bGVUb1VzZSkgJiYgbGF5ZXIoKSkKICAgICAgICAgICAgICAgICByZWN0Lm1vdmUobGF5
ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSk7CiAKICAgICAgICAgICAgIHJlY3QubW92
ZUJ5KGxvY2F0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDMz
MGFmODI3ZTllZWNmNzFhNDA4NGFmMzQ4YWE0NjI3NmI3ZWRmNGQuLmQ2ZWQ0NzhhNDkyYWUxNzg1
YmExZGQ4NzBiMTQzODUwMGMwM2UyMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgLy8gaGFzQXV0b1pJbmRleCBvbmx5
IHJldHVybnMgdHJ1ZSBpZiB0aGUgZWxlbWVudCBpcyBwb3NpdGlvbmVkIG9yIGEgZmxleC1pdGVt
IHNpbmNlCiAgICAgLy8gcG9zaXRpb246c3RhdGljIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCBmbGV4
LWl0ZW1zIGdldCB0aGVpciB6LWluZGV4IGNvZXJjZWQgdG8gYXV0by4KLSAgICB2aXJ0dWFsIGJv
b2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGlzUm9vdCgpIHx8IGlz
UG9zaXRpb25lZCgpIHx8IGNyZWF0ZXNHcm91cCgpIHx8IGhhc0NsaXBQYXRoKCkgfHwgaGFzT3Zl
cmZsb3dDbGlwKCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzSGlkZGVuQmFja2ZhY2UoKSB8fCBo
YXNSZWZsZWN0aW9uKCkgfHwgc3R5bGUoKS0+c3BlY2lmaWVzQ29sdW1ucygpIHx8ICFzdHlsZSgp
LT5oYXNBdXRvWkluZGV4KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIGlzUm9vdCgpIHx8IGlzUG9zaXRpb25lZCgpIHx8IGNyZWF0
ZXNHcm91cCgpIHx8IGhhc0NsaXBQYXRoKCkgfHwgaGFzT3ZlcmZsb3dDbGlwKCkgfHwgaGFzVHJh
bnNmb3JtKCkgfHwgaGFzSGlkZGVuQmFja2ZhY2UoKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5
bGUoKS0+c3BlY2lmaWVzQ29sdW1ucygpIHx8ICFzdHlsZSgpLT5oYXNBdXRvWkluZGV4KCkgfHwg
KHN0eWxlKCktPnNoYXBlT3V0c2lkZSgpICYmIGlzRmxvYXRpbmcoKSk7IH0KIAogICAgIC8vIFVz
ZSB0aGlzIHdpdGggY2F1dGlvbiEgTm8gdHlwZSBjaGVja2luZyBpcyBkb25lIQogICAgIFJlbmRl
ckJveCogZmlyc3RDaGlsZEJveCgpIGNvbnN0OwpAQCAtNTg2LDYgKzU4Niw4IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIHJldHVybiBzdHlsZSgpLT5zaGFwZU91dHNpZGUoKSAmJiBFeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvOjppc0luZm9FbmFibGVkRm9yUmVuZGVyQm94KHRoaXMpID8gRXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6aW5mb0ZvclJlbmRlckJveCh0aGlzKSA6IDA7CiAgICAg
fQorCisgICAgdmlydHVhbCBMYXlvdXRTaXplIG9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCkgY29u
c3QgT1ZFUlJJREU7CiAjZW5kaWYKIAogcHJvdGVjdGVkOgpAQCAtNjI2LDYgKzYyOCwxOSBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICB2b2lkIHVwZGF0ZUV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvblNoYXBl
VmFsdWUqIHNoYXBlT3V0c2lkZSwgY29uc3QgRXhjbHVzaW9uU2hhcGVWYWx1ZSogb2xkU2hhcGVP
dXRzaWRlKTsKICNlbmRpZgorICAgIC8vIFRoaXMgaXMgYW5hbGFnb3VzIHRvIHRoZSBpc0luRmxv
d1Bvc2l0aW9uZWQoKSBtZXRob2QsIGV4Y2VwdCBpdCB1c2VzIHRoZQorICAgIC8vIHN0eWxlIHJh
dGhlciB0aGFuIHRoZSBmbGFncyBzdG9yZWQgaW4gdGhlIFJlbmRlckJveC4gSW4gYWxtb3N0IGFs
bAorICAgIC8vIHNpdHVhdGlvbnMsIHlvdSBzaG91bGQgdXNlIGlzSW5GbG93UG9zaXRpb25lZCgp
LCB0aGlzIGlzIG9ubHkgaW50ZW5kZWQKKyAgICAvLyBmb3Igc2l0dWF0aW9ucyBpbiB3aGljaCB0
aGUgZmxhZ3Mgb24gdGhlIGJveCB3aWxsIGJlIG91dCBvZiBzeW5jIHdpdGgKKyAgICAvLyB0aGUg
c3R5bGUuCisgICAgYm9vbCBzdHlsZUhhc0luRmxvd1Bvc2l0aW9uT3JTaGFwZU91dHNpZGUoUmVu
ZGVyU3R5bGUqIHN0eWxlKSBjb25zdAorICAgIHsKKyAgICAgICAgYm9vbCBpbkZsb3dQb3NpdGlv
biA9IHN0eWxlLT5oYXNJbkZsb3dQb3NpdGlvbigpOworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKKyAgICAgICAgaW5GbG93UG9zaXRpb24gPSBpbkZsb3dQb3NpdGlvbiB8fCAoc3R5bGUtPmlz
RmxvYXRpbmcoKSAmJiBzdHlsZS0+c2hhcGVPdXRzaWRlKCkpOworI2VuZGlmCisgICAgICAgIHJl
dHVybiBpbkZsb3dQb3NpdGlvbjsKKyAgICB9CiAKICAgICBib29sIGZpeGVkRWxlbWVudExheXNP
dXRSZWxhdGl2ZVRvRnJhbWUoRnJhbWUqLCBGcmFtZVZpZXcqKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCAxZjA1NjRk
NDU2ZGE3N2MyYTBhM2UwYjk1MzVhZjQ3ZDI1NDI5MTZhLi45N2U2YjkwMzg0MmQ0MDY0YjdlZWQy
MTdkOGNiNjM5MDdhZmQxMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0
U2l6ZSBzdGlja3lQb3NpdGlvbk9mZnNldCgpIGNvbnN0OwogICAgIExheW91dFNpemUgc3RpY2t5
UG9zaXRpb25Mb2dpY2FsT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IHN0aWNreVBvc2l0aW9uT2Zmc2V0KCkgOiBzdGlja3lQb3NpdGlv
bk9mZnNldCgpLnRyYW5zcG9zZWRTaXplKCk7IH0KIAotICAgIExheW91dFNpemUgb2Zmc2V0Rm9y
SW5GbG93UG9zaXRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFNpemUgb2Zmc2V0Rm9y
SW5GbG93UG9zaXRpb24oKSBjb25zdDsKIAogICAgIC8vIElFIGV4dGVuc2lvbnMuIFVzZWQgdG8g
Y2FsY3VsYXRlIG9mZnNldFdpZHRoL0hlaWdodC4gIE92ZXJyaWRkZW4gYnkgaW5saW5lcyAoUmVu
ZGVyRmxvdykKICAgICAvLyB0byByZXR1cm4gdGhlIHJlbWFpbmluZyB3aWR0aCBvbiBhIGdpdmVu
IGxpbmUgKGFuZCB0aGUgaGVpZ2h0IG9mIGEgc2luZ2xlIGxpbmUpLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGFkYzA3MDg3ZGQ3MmI0NDc2OTIyZWRlNjJkZmZh
YzJlYTE5YjliYWQuLjUwZjA4ZWY4MzY4ODBlMjZlZThiNmNkYmRlYzM0NTNhM2I0Y2M2NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTUyNCw3ICs1MjQsMTYg
QEAgcHVibGljOgogICAgIGJvb2wgaXNGbG9hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYml0Zmll
bGRzLmZsb2F0aW5nKCk7IH0KIAogICAgIGJvb2wgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgY29u
c3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCk7IH0gLy8gYWJz
b2x1dGUgb3IgZml4ZWQgcG9zaXRpb25pbmcKLSAgICBib29sIGlzSW5GbG93UG9zaXRpb25lZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVsUG9zaXRpb25lZCgpIHx8IG1fYml0Zmll
bGRzLmlzU3RpY2t5UG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0aXZlIG9yIHN0aWNreSBwb3NpdGlv
bmluZworICAgIGJvb2wgaXNJbkZsb3dQb3NpdGlvbmVkKCkgY29uc3QKKyAgICB7CisgICAgICAg
IGJvb2wgcG9zaXRpb25lZCA9IG1fYml0ZmllbGRzLmlzUmVsUG9zaXRpb25lZCgpIHx8IG1fYml0
ZmllbGRzLmlzU3RpY2t5UG9zaXRpb25lZCgpOyAvLyByZWxhdGl2ZSBvciBzdGlja3kgcG9zaXRp
b25pbmcKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgICAgIC8vIFNoYXBlIG91dHNp
ZGUgb24gYSBmbG9hdCBjYW4gcmVwb3NpdGlvbiB0aGUgZmxvYXQgaW4gbXVjaCB0aGUKKyAgICAg
ICAgLy8gc2FtZSB3YXkgYXMgcmVsYXRpdmUgcG9zaXRpb25pbmcsIHNvIHRyZWF0IGl0IGFzIHN1
Y2guCisgICAgICAgIHBvc2l0aW9uZWQgPSBwb3NpdGlvbmVkIHx8IChtX2JpdGZpZWxkcy5mbG9h
dGluZygpICYmIG1fYml0ZmllbGRzLmlzQm94KCkgJiYgc3R5bGUoKS0+c2hhcGVPdXRzaWRlKCkp
OworI2VuZGlmCisgICAgICAgIHJldHVybiBwb3NpdGlvbmVkOworICAgIH0KICAgICBib29sIGlz
UmVsUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVsUG9zaXRpb25l
ZCgpOyB9IC8vIHJlbGF0aXZlIHBvc2l0aW9uaW5nCiAgICAgYm9vbCBpc1N0aWNreVBvc2l0aW9u
ZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc1N0aWNreVBvc2l0aW9uZWQoKTsgfQog
ICAgIGJvb2wgaXNQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNQb3Np
dGlvbmVkKCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBhNTk2MDQ0YzkzZjQ3YzRiMjdhODk1N2IyYzlmMzYwZTZmYzVh
Y2Y2Li40ZjcxOWYyMmRhNWQyY2E3NzJkNDg2NzM5OGZjMDdkYmZlMTM2ZmY1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTMtMDEtMjQgIEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBhZG9iZS5j
b20+CisKKyAgICAgICAgW0NTUyBFeGNsdXNpb25zXSBIYW5kbGUgc2hhcGUtb3V0c2lkZSBjaGFu
Z2luZyBhIGZsb2F0J3Mgb3ZlcmhhbmcgYmVoYXZpb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjkyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYWxzbyB0ZXN0ZWQgYnkgdGhlIGV4aXN0
aW5nIHRlc3RzIGZvciBzaGFwZSBvdXRzaWRlIG9uIGZsb2F0cyBwb3NpdGlvbmluZy4KKworICAg
ICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRl
LWZsb2F0cy1vdmVyaGFuZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3Zlcmhh
bmcuaHRtbDogQWRkZWQuCisKIDIwMTMtMDEtMjQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3Rv
cGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEVGTCByZWJhc2VsaW5l
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUt
ZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lk
ZS1mbG9hdHMtb3ZlcmhhbmctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2FjODZjNTMxNGYz
ZTgwMTMyOTljOWNhYzdjM2Y1MDgxYzc5NWJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxv
YXRzLW92ZXJoYW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0bWw+CisgIDxo
ZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICN0b3AgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgICAgfQorICAgICAgI3NoYXBlIHsKKyAg
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICAgIHJpZ2h0OiAwcHg7CisgICAgICAgIHRvcDogMHB4Owor
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgfQorICAgICAgI2Zsb2F0IHsK
KyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBm
bG9hdDogcmlnaHQ7CisgICAgICB9CisgICAgICAjYm90dG9tIHsKKyAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIH0KKyAgICA8L3N0
eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT48YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTI3Ij5CdWcgMTA2OTI3PC9hPjogW0NTUyBF
eGNsdXNpb25zXSBIYW5kbGUgc2hhcGUtb3V0c2lkZSBjaGFuZ2luZyBhIGZsb2F0J3Mgb3Zlcmhh
bmcgYmVoYXZpb3I8L2gxPgorICAgIDxoMj5Zb3Ugc2hvdWxkIHNlZSBhIHllbGxvdyBzcXVhcmUg
dG8gdGhlIGxlZnQgb2YgYSBibHVlIHNxdWFyZSwgd2l0aCB0aGUgYmx1ZSBzcXVhcmUgY292ZXJp
bmcgdGhlIHRleHQgaW4gdGhlIHllbGxvdyBhcmVhLiBUaGUgbG93ZXIgZ3JlZW4gcmVjdGFuZ2xl
IHNob3VsZCBoYXZlIHRleHQgd3JhcHBpbmcgYXJvdW5kIGEgc3F1YXJlIGFyZWEgb24gdGhlIHJp
Z2h0IGFzIGlmIHRoZXJlIGlzIGEgZmxvYXQgdGhlcmUuPC9oMj4KKyAgICA8ZGl2IGlkPSJ0b3Ai
PgorICAgICAgWW91IHNob3VsZCBvbmx5IGJlIGFibGUgdG8gc2VlIHBhcnQgb2YgdGhpcyB0ZXh0
LiBJZiB5b3UgY2FuIHJlYWQgYWxsIG9mIHRoaXMsIHRoZW4gaXQgaXNuJ3Qgd29ya2luZy4KKyAg
ICAgIDxkaXYgaWQ9InNoYXBlIj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYg
aWQ9ImJvdHRvbSI+CisgICAgICA8ZGl2IGlkPSJmbG9hdCI+CisgICAgIDwvZGl2PgorICAgICBU
aGUgZmxvYXQgaXMgZGVmaW5lZCBoZXJlLCBidXQgdGhlIHNoYXBlIHB1c2hlcyBpdCBpbnRvIHRo
ZSBhYm92ZSBkaXYuIE5vdGUgdGhhdCB0aGUgZXhjbHVzaW9uIGJlaGF2aW9yIHN0YXlzIHdpdGgg
dGhlIHNoYXBlIGFuZCBub3Qgd2l0aCB0aGUgZmxvYXQuCisgICAgPC9kaXY+CisgIDwvYm9keT4K
KzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lk
ZS1mbG9hdHMtb3ZlcmhhbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWZlMzVkMGU2YTRmMGMyNGEyODVj
Y2I3MDI2Mzc2MzEzM2IxN2RmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJo
YW5nLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDxzY3JpcHQ+
CisgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKyAgICA8L3NjcmlwdD4KKyAg
ICA8c3R5bGU+CisgICAgICAjdG9wIHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBo
ZWlnaHQ6IDEwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisgICAgICB9
CisgICAgICAjZmxvYXQgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIHdp
ZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgZmxvYXQ6IHJpZ2h0
OworICAgICAgICAtd2Via2l0LXNoYXBlLW91dHNpZGU6IHJlY3RhbmdsZSgwcHgsIDEwMHB4LCAx
MDBweCwgMTAwcHgpOworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgfQor
ICAgICAgI2JvdHRvbSB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAg
ICB3aWR0aDogMjAwcHg7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9k
eT4KKyAgICA8aDE+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwNjkyNyI+QnVnIDEwNjkyNzwvYT46IFtDU1MgRXhjbHVzaW9uc10gSGFuZGxlIHNoYXBl
LW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2aW9yPC9oMT4KKyAgICA8
aDI+WW91IHNob3VsZCBzZWUgYSB5ZWxsb3cgc3F1YXJlIHRvIHRoZSBsZWZ0IG9mIGEgYmx1ZSBz
cXVhcmUsIHdpdGggdGhlIGJsdWUgc3F1YXJlIGNvdmVyaW5nIHRoZSB0ZXh0IGluIHRoZSB5ZWxs
b3cgYXJlYS4gVGhlIGxvd2VyIGdyZWVuIHJlY3RhbmdsZSBzaG91bGQgaGF2ZSB0ZXh0IHdyYXBw
aW5nIGFyb3VuZCBhIHNxdWFyZSBhcmVhIG9uIHRoZSByaWdodCBhcyBpZiB0aGVyZSBpcyBhIGZs
b2F0IHRoZXJlLjwvaDI+CisgICAgPGRpdiBpZD0idG9wIj4KKyAgICAgIFlvdSBzaG91bGQgb25s
eSBiZSBhYmxlIHRvIHNlZSBwYXJ0IG9mIHRoaXMgdGV4dC4gSWYgeW91IGNhbiByZWFkIGFsbCBv
ZiB0aGlzLCB0aGVuIGl0IGlzbid0IHdvcmtpbmcuCisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0i
Ym90dG9tIj4KKyAgICAgIDxkaXYgaWQ9ImZsb2F0Ij4KKyAgICAgPC9kaXY+CisgICAgIFRoZSBm
bG9hdCBpcyBkZWZpbmVkIGhlcmUsIGJ1dCB0aGUgc2hhcGUgcHVzaGVzIGl0IGludG8gdGhlIGFi
b3ZlIGRpdi4gTm90ZSB0aGF0IHRoZSBleGNsdXNpb24gYmVoYXZpb3Igc3RheXMgd2l0aCB0aGUg
c2hhcGUgYW5kIG5vdCB3aXRoIHRoZSBmbG9hdC4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9o
dG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184594</attachid>
            <date>2013-01-24 15:31:29 -0800</date>
            <delta_ts>2013-02-07 15:40:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106927-20130124152821.patch</filename>
            <type>text/plain</type>
            <size>21762</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjQwNDc2YTNjY2NhM2Y3
YTM4ZmYxZjdiMzBlYWNiNjNiYzg4N2FkOC4uZTZjNmRkNTIyM2JiMTBiYTUzOWI2ODgwNDRhNGRh
MGEyMjkxZGMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAxLTI0ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2
aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHRoZSBwb3NpdGlvbiBvbiBhIHNoYXB3IG91dHNpZGUgY2F1c2VzIGEgZmxvYXQgdG8gc3BpbGwg
b3V0IGludG8KKyAgICAgICAgYW5vdGhlciBkaXYgdGhhbiBpdCdzIGNvbnRhaW5lciwgaXQgd2Fz
IG5vdCBiZWluZyBkcmF3biBjb3JyZWN0bHkuIEluCisgICAgICAgIGxvb2tpbmcgYXQgYSBmaXgs
IHRoZSBzaW1hbGlhcml0aWVzIGJldHdlZW4gYSBmbG9hdCB3aXRoIHNoYXBlIG91dHNpZGUKKyAg
ICAgICAgYW5kIGEgcmVsYXRpdmVseSBwb3NpdGlvbmVkIGZsb2F0IGJlY2FtZSBhcHBhcmVudC4g
VGh1cywgdGhlIGFwcHJvYWNoCisgICAgICAgIHRvIGZsb2F0IHBvc2l0aW9uaW5nIGhhcyBiZWVu
IGNoYW5nZWQgdG8gYmUgc2ltaWxhciB0byB0aGUKKyAgICAgICAgaW1wbGVtZW50YXRpb24gZm9y
IHJlbGF0aXZlIHBvc2l0aW9uaW5nIGJ5IHVzaW5nIGEgUmVuZGVyTGF5ZXIuIFRoaXMKKyAgICAg
ICAgYWxzbyBoYXMgc29sdmVkIG90aGVyIG91dHN0YW5kaW5nIGlzc3VlcyB3aXRoIHRoZSBpbXBs
ZW1lbnRhdGlvbiwgbGlrZQorICAgICAgICBtYWtpbmcgaGl0IGRldGVjdGlvbiB3b3JrLgorCisg
ICAgICAgIFRoaXMgaXMgYWxzbyB0ZXN0ZWQgYnkgdGhlIGV4aXN0aW5nIHRlc3RzIGZvciBzaGFw
ZSBvdXRzaWRlIG9uIGZsb2F0cyBwb3NpdGlvbmluZy4KKworICAgICAgICBUZXN0OiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3Zlcmhh
bmcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8u
aDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OnNoYXBlTG9n
aWNhbE9mZnNldCk6IFV0aWxpdHkgbWV0aG9kIHRvIGNyZWF0ZSBhIExheW91dFNpemUgZm9yIGNv
bXB1dGluZyB0aGUgbGF5ZXIgb2Zmc2V0LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZmxpcEZsb2F0Rm9yV3JpdGlu
Z01vZGVGb3JDaGlsZCk6IFJlbW92ZSBvbGQgcG9zaXRpb25pbmcgaW1wbGVtZW50YXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRGbG9hdHMpOiBSZW1vdmUgb2xkIHBv
c2l0aW9uaW5nIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnBvc2l0aW9uTmV3RmxvYXRzKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmluZyBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGRPdmVyaGFuZ2luZ0Zsb2F0cyk6
IFJlbW92ZSBGSVhNRS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKFJlbmRlckJsb2NrKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmluZyBpbXBsZW1lbnRhdGlvbi4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGlu
Z01hcmdpbik6IFJlbW92ZSBvbGQgcG9zaXRpb25pbmcgaW1wbGVtZW50YXRpb24uCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9jazo6eVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4p
OiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9uLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCb3guaDogTWFrZSBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGdldCBhIGxh
eWVyLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6b2Zmc2V0Rm9ySW5GbG93UG9zaXRp
b24pOiBVc2UgdGhlIHNoYXBlJ3Mgb2Zmc2V0IHRvIGRldGVybWluZSB0aGUgZmxvYXQncyBwb3Np
dGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmlzSW5GbG93UG9zaXRpb25lZCk6IENvdW50IGZsb2F0cyB3aXRo
IHNoYXBlIG91dHNpZGUgYXMgaW4gZmxvdyBwb3NpdGlvbmVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Omhh
c0luRmxvd1Bvc2l0aW9uKTogQ291bnQgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyBpbiBm
bG93IHBvc2l0aW9uZWQuCisKIDIwMTMtMDEtMjQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgRml4IGEgdHlwbyBhZnRlciByMTM5ODM4LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmgKaW5kZXgg
NTNhMDA3MTNkNDJkYmE2NGQxMzY0YTczMjcyN2MyMTVkMjAyZWEzOC4uY2EyODBhZjc3NDMxMmFi
NTkyNjQ3Y2VmZjk0MzJmMjg0MWMwZWFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5oCkBAIC0zNCw2ICszNCw3IEBACiAK
ICNpbmNsdWRlICJFeGNsdXNpb25TaGFwZS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2lu
Y2x1ZGUgIkxheW91dFNpemUuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtNzYsNiArNzcsMTAgQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgcmV0dXJuIGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS5o
ZWlnaHQoKTsKICAgICB9CisgICAgTGF5b3V0U2l6ZSBzaGFwZUxvZ2ljYWxPZmZzZXQoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIExheW91dFNpemUoc2hhcGVMb2dpY2FsTGVmdCgpLCBz
aGFwZUxvZ2ljYWxUb3AoKSk7CisgICAgfQogCiAgICAgdm9pZCBzZXRTaGFwZVNpemUoTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA5YzM3NWZhMzYwZTAzNzFk
YmY5NDg4MWM0N2U1ZGNiMzc1YWIxNDUyLi40MDNmNTZhNTQ0MWE3Yzc4MzJlMTY0YTJmNTU4OTZk
ZjdiZTdiNjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAg
LTMxMjcsNyArMzEyNyw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0KFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzCiAgICAgfQogfQogCi1M
YXlvdXRQb2ludCBSZW5kZXJCbG9jazo6ZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChj
b25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQsIGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgRmxv
YXRSZW5kZXJpbmdTdGF0ZSByZW5kZXJpbmdTdGF0ZSkgY29uc3QKK0xheW91dFBvaW50IFJlbmRl
ckJsb2NrOjpmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKGNvbnN0IEZsb2F0aW5nT2Jq
ZWN0KiBjaGlsZCwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KSBjb25zdAogewogICAgIGlmICgh
c3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKICAgICAgICAgcmV0dXJuIHBv
aW50OwpAQCAtMzEzNiw4ICszMTM2LDggQEAgTGF5b3V0UG9pbnQgUmVuZGVyQmxvY2s6OmZsaXBG
bG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY29uc3QgRmxvYXRpbmdPYmplY3QqIGMKICAgICAv
LyBpdCdzIGdvaW5nIHRvIGdldCBhZGRlZCBiYWNrIGluLiBXZSBoaWRlIHRoaXMgY29tcGxpY2F0
aW9uIGhlcmUgc28gdGhhdCB0aGUgY2FsbGluZyBjb2RlIGxvb2tzIG5vcm1hbCBmb3IgdGhlIHVu
ZmxpcHBlZAogICAgIC8vIGNhc2UuCiAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkp
Ci0gICAgICAgIHJldHVybiBMYXlvdXRQb2ludChwb2ludC54KCksIHBvaW50LnkoKSArIGhlaWdo
dCgpIC0gY2hpbGQtPnJlbmRlcmVyKCktPmhlaWdodCgpIC0gMiAqIHlQb3NpdGlvbkZvckZsb2F0
SW5jbHVkaW5nTWFyZ2luKGNoaWxkLCByZW5kZXJpbmdTdGF0ZSkpOwotICAgIHJldHVybiBMYXlv
dXRQb2ludChwb2ludC54KCkgKyB3aWR0aCgpIC0gY2hpbGQtPnJlbmRlcmVyKCktPndpZHRoKCkg
LSAyICogeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY2hpbGQsIHJlbmRlcmluZ1N0
YXRlKSwgcG9pbnQueSgpKTsKKyAgICAgICAgcmV0dXJuIExheW91dFBvaW50KHBvaW50LngoKSwg
cG9pbnQueSgpICsgaGVpZ2h0KCkgLSBjaGlsZC0+cmVuZGVyZXIoKS0+aGVpZ2h0KCkgLSAyICog
eVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY2hpbGQpKTsKKyAgICByZXR1cm4gTGF5
b3V0UG9pbnQocG9pbnQueCgpICsgd2lkdGgoKSAtIGNoaWxkLT5yZW5kZXJlcigpLT53aWR0aCgp
IC0gMiAqIHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNoaWxkKSwgcG9pbnQueSgp
KTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRGbG9hdHMoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgYm9vbCBwcmVzZXJ2ZVBoYXNlKQpA
QCAtMzE1Myw3ICszMTUzLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRGbG9hdHMoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnMKICAgICAgICAgaWYg
KHItPnNob3VsZFBhaW50KCkgJiYgIXItPm1fcmVuZGVyZXItPmhhc1NlbGZQYWludGluZ0xheWVy
KCkpIHsKICAgICAgICAgICAgIFBhaW50SW5mbyBjdXJyZW50UGFpbnRJbmZvKHBhaW50SW5mbyk7
CiAgICAgICAgICAgICBjdXJyZW50UGFpbnRJbmZvLnBoYXNlID0gcHJlc2VydmVQaGFzZSA/IHBh
aW50SW5mby5waGFzZSA6IFBhaW50UGhhc2VCbG9ja0JhY2tncm91bmQ7Ci0gICAgICAgICAgICBM
YXlvdXRQb2ludCBjaGlsZFBvaW50ID0gZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChy
LCBMYXlvdXRQb2ludChwYWludE9mZnNldC54KCkgKyB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGlu
Z01hcmdpbihyLCBGbG9hdFBhaW50KSAtIHItPm1fcmVuZGVyZXItPngoKSwgcGFpbnRPZmZzZXQu
eSgpICsgeVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4ociwgRmxvYXRQYWludCkgLSBy
LT5tX3JlbmRlcmVyLT55KCkpLCBGbG9hdFBhaW50KTsKKyAgICAgICAgICAgIExheW91dFBvaW50
IGNoaWxkUG9pbnQgPSBmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKHIsIExheW91dFBv
aW50KHBhaW50T2Zmc2V0LngoKSArIHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKHIp
IC0gci0+bV9yZW5kZXJlci0+eCgpLCBwYWludE9mZnNldC55KCkgKyB5UG9zaXRpb25Gb3JGbG9h
dEluY2x1ZGluZ01hcmdpbihyKSAtIHItPm1fcmVuZGVyZXItPnkoKSkpOwogICAgICAgICAgICAg
ci0+bV9yZW5kZXJlci0+cGFpbnQoY3VycmVudFBhaW50SW5mbywgY2hpbGRQb2ludCk7CiAgICAg
ICAgICAgICBpZiAoIXByZXNlcnZlUGhhc2UpIHsKICAgICAgICAgICAgICAgICBjdXJyZW50UGFp
bnRJbmZvLnBoYXNlID0gUGFpbnRQaGFzZUNoaWxkQmxvY2tCYWNrZ3JvdW5kczsKQEAgLTQwMTMs
MTggKzQwMTMsOCBAQCBib29sIFJlbmRlckJsb2NrOjpwb3NpdGlvbk5ld0Zsb2F0cygpCiAKICAg
ICAgICAgc2V0TG9naWNhbExlZnRGb3JGbG9hdChmbG9hdGluZ09iamVjdCwgZmxvYXRMb2dpY2Fs
TG9jYXRpb24ueCgpKTsKIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgaWYg
KGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCkpIHsKLSAgICAgICAgICAgIC8v
IFRoZSBDU1MgRXhjbHVzaW9ucyBzcGVjaWZpY2F0aW9uIHNheXMgdGhhdCB0aGUgbWFyZ2lucyBh
cmUgaWdub3JlZCB3aGVuIGEgZmxvYXQgaGFzIGEgc2hhcGUgb3V0c2lkZS4KLSAgICAgICAgICAg
IHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLngo
KSAtIGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCktPnNoYXBlTG9naWNhbExl
ZnQoKSk7Ci0gICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0
TG9naWNhbExvY2F0aW9uLnkoKSAtIGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
KCktPnNoYXBlTG9naWNhbFRvcCgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSNlbmRpZgotICAgICAg
ICAgICAgc2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRp
b24ueCgpICsgY2hpbGRMb2dpY2FsTGVmdE1hcmdpbik7Ci0gICAgICAgICAgICBzZXRMb2dpY2Fs
VG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSArIG1hcmdpbkJl
Zm9yZUZvckNoaWxkKGNoaWxkQm94KSk7Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAg
ICAgICB9Ci0jZW5kaWYKKyAgICAgICAgc2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwg
ZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpICsgY2hpbGRMb2dpY2FsTGVmdE1hcmdpbik7CisgICAg
ICAgIHNldExvZ2ljYWxUb3BGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24u
eSgpICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGRCb3gpKTsKIAogICAgICAgICBMYXlvdXRT
dGF0ZSogbGF5b3V0U3RhdGUgPSB2aWV3KCktPmxheW91dFN0YXRlKCk7CiAgICAgICAgIGJvb2wg
aXNQYWdpbmF0ZWQgPSBsYXlvdXRTdGF0ZS0+aXNQYWdpbmF0ZWQoKTsKQEAgLTQwNTMsMTkgKzQw
NDMsOCBAQCBib29sIFJlbmRlckJsb2NrOjpwb3NpdGlvbk5ld0Zsb2F0cygpCiAgICAgICAgICAg
ICAgICAgZmxvYXRMb2dpY2FsTG9jYXRpb24gPSBjb21wdXRlTG9naWNhbExvY2F0aW9uRm9yRmxv
YXQoZmxvYXRpbmdPYmplY3QsIG5ld0xvZ2ljYWxUb3ApOwogICAgICAgICAgICAgICAgIHNldExv
Z2ljYWxMZWZ0Rm9yRmxvYXQoZmxvYXRpbmdPYmplY3QsIGZsb2F0TG9naWNhbExvY2F0aW9uLngo
KSk7CiAKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgICAgICAgICAgaWYgKGNo
aWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgLy8gVGhlIENTUyBFeGNsdXNpb25zIHNwZWNpZmljYXRpb24gc2F5cyB0aGF0IHRoZSBtYXJn
aW5zIGFyZSBpZ25vcmVkIHdoZW4gYSBmbG9hdCBoYXMgYSBzaGFwZSBvdXRzaWRlLgotICAgICAg
ICAgICAgICAgICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2lj
YWxMb2NhdGlvbi54KCkgLSBjaGlsZEJveC0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpLT5z
aGFwZUxvZ2ljYWxMZWZ0KCkpOwotICAgICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9y
Q2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSAtIGNoaWxkQm94LT5leGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvKCktPnNoYXBlTG9naWNhbFRvcCgpKTsKLSAgICAgICAgICAg
ICAgICB9IGVsc2UgewotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0
Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLngoKSArIGNoaWxkTG9naWNh
bExlZnRNYXJnaW4pOwotICAgICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQo
Y2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSArIG1hcmdpbkJlZm9yZUZvckNoaWxk
KGNoaWxkQm94KSk7Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICAgICAgICAg
IH0KLSNlbmRpZgotCisgICAgICAgICAgICAgICAgc2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGls
ZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpICsgY2hpbGRMb2dpY2FsTGVmdE1hcmdpbik7
CisgICAgICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExv
Z2ljYWxMb2NhdGlvbi55KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZEJveCkpOwogICAg
ICAgICAKICAgICAgICAgICAgICAgICBpZiAoY2hpbGRCbG9jaykKICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRCbG9jay0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwpA
QCAtNDU1OCw3ICs0NTM3LDYgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YWRkT3Zlcmhhbmdp
bmdGbG9hdHMoUmVuZGVyQmxvY2sqIGNoaWxkLCBib29sIG1ha2VDaGlsZFAKICAgICAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsQm90dG9tID0gY2hpbGRMb2dpY2FsVG9wICsgbG9naWNhbEJvdHRvbUZv
ckZsb2F0OwogICAgICAgICBsb3dlc3RGbG9hdExvZ2ljYWxCb3R0b20gPSBtYXgobG93ZXN0Rmxv
YXRMb2dpY2FsQm90dG9tLCBsb2dpY2FsQm90dG9tKTsKIAotICAgICAgICAvLyBGSVhNRTogQnVn
IDEwNjkyNyBIYW5kbGUgc2l0dWF0aW9ucyB3aGVyZSBmbG9hdCBhbmQgc2hhcGUtb3V0c2lkZSBv
dmVyZmxvdyBkaWZmZXJlbnRseS4KICAgICAgICAgaWYgKGxvZ2ljYWxCb3R0b20gPiBsb2dpY2Fs
SGVpZ2h0KCkpIHsKICAgICAgICAgICAgIC8vIElmIHRoZSBvYmplY3QgaXMgbm90IGluIHRoZSBs
aXN0LCB3ZSBhZGQgaXQgbm93LgogICAgICAgICAgICAgaWYgKCFjb250YWluc0Zsb2F0KHItPm1f
cmVuZGVyZXIpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDFl
ZDIxMWNlODM4ZmQzZTYzMzUxNDJmMzE3MGRlMTZlODU5NzJkN2QuLjdhZTRlMWQ4NGE3ZjkyY2Yy
NzhhNDQ4ZDkxMDFkMWE5YzE3ZmI1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5oCkBAIC02ODksMTQgKzY4OSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB9OwogCi0g
ICAgLy8gV2hlbiBhIGZsb2F0IGhhcyBzaGFwZSBvdXRzaWRlLCBpdCBuZWVkcyB0byBiZSBoYW5k
bGVkIGRpZmZlcmVudGx5IGF0Ci0gICAgLy8gcGFpbnQgdGltZSBhbmQgYXQgbGF5b3V0IHRpbWUs
IHNpbmNlIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgc2hhcGUKLSAgICAvLyAoYWZmZWN0aW5nIGxh
eW91dCkgYW5kIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgZmxvYXQgaXRzZWxmIChhZmZlY3RpbmcK
LSAgICAvLyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGUgZmxvYXQgaXMpIGNhbiBiZSBpbiBkaWZm
ZXJlbnQgcGxhY2VzLiBUaGlzIGVudW0KLSAgICAvLyBpcyB1c2VkIHRvIGNoYW5nZSBiZWhhdmlv
ciBiYXNlZCBvbiB0aGF0IHN0YXRlLgotICAgIGVudW0gRmxvYXRSZW5kZXJpbmdTdGF0ZSB7IEZs
b2F0TGF5b3V0LCBGbG9hdFBhaW50IH07Ci0KLSAgICBMYXlvdXRQb2ludCBmbGlwRmxvYXRGb3JX
cml0aW5nTW9kZUZvckNoaWxkKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiwgY29uc3QgTGF5b3V0UG9p
bnQmLCBGbG9hdFJlbmRlcmluZ1N0YXRlID0gRmxvYXRMYXlvdXQpIGNvbnN0OworICAgIExheW91
dFBvaW50IGZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY29uc3QgRmxvYXRpbmdPYmpl
Y3QqLCBjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0OwogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2Fs
VG9wRm9yRmxvYXQoY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY2hpbGQtPnkoKSA6IGNoaWxkLT54KCk7IH0KICAg
ICBMYXlvdXRVbml0IGxvZ2ljYWxCb3R0b21Gb3JGbG9hdChjb25zdCBGbG9hdGluZ09iamVjdCog
Y2hpbGQpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjaGlsZC0+
bWF4WSgpIDogY2hpbGQtPm1heFgoKTsgfQpAQCAtNzM4LDEzICs3MzEsMTIgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIGNoaWxkLT5zZXRIZWlnaHQobG9naWNhbFdpZHRoKTsKICAgICB9CiAKLSAg
ICBMYXlvdXRVbml0IHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNvbnN0IEZsb2F0
aW5nT2JqZWN0KiBjaGlsZCwgRmxvYXRSZW5kZXJpbmdTdGF0ZSByZW5kZXJpbmdTdGF0ZSA9IEZs
b2F0TGF5b3V0KSBjb25zdAorICAgIExheW91dFVuaXQgeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRp
bmdNYXJnaW4oY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxkKSBjb25zdAogICAgIHsKICNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8g
KnNoYXBlT3V0c2lkZSA9IGNoaWxkLT5yZW5kZXJlcigpLT5leGNsdXNpb25TaGFwZU91dHNpZGVJ
bmZvKCk7Ci0gICAgICAgIGlmIChyZW5kZXJpbmdTdGF0ZSA9PSBGbG9hdFBhaW50ICYmIHNoYXBl
T3V0c2lkZSkKLSAgICAgICAgICAgIHJldHVybiBjaGlsZC0+eCgpIC0gKGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkgPyBzaGFwZU91dHNpZGUtPnNoYXBlTG9naWNhbExlZnQoKSA6IHNoYXBlT3V0
c2lkZS0+c2hhcGVMb2dpY2FsVG9wKCkpOwotICAgICAgICAvLyBGSVhNRTogQnVnIDEwNjkyOCBU
aGlzIG5lZWRzIHRvIHByb3Blcmx5IGhhbmRsZSB0aGUgbWFyZ2luIGZvciBmbG9hdHMgd2l0aCBz
aGFwZS1vdXRzaWRlIGZvciBub24tcGFpbnQgdGltZS4KKyAgICAgICAgaWYgKHNoYXBlT3V0c2lk
ZSkKKyAgICAgICAgICAgIHJldHVybiBjaGlsZC0+eCgpOwogI2VuZGlmCiAKICAgICAgICAgaWYg
KGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCkBAIC03NTMsMTMgKzc0NSwxMiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuIGNoaWxkLT54KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChj
aGlsZC0+cmVuZGVyZXIoKSk7CiAgICAgfQogICAgICAgICAKLSAgICBMYXlvdXRVbml0IHlQb3Np
dGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCwg
RmxvYXRSZW5kZXJpbmdTdGF0ZSByZW5kZXJpbmdTdGF0ZSA9IEZsb2F0TGF5b3V0KSBjb25zdAor
ICAgIExheW91dFVuaXQgeVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY29uc3QgRmxv
YXRpbmdPYmplY3QqIGNoaWxkKSBjb25zdAogICAgIHsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCiAgICAgICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8gKnNoYXBlT3V0c2lkZSA9IGNo
aWxkLT5yZW5kZXJlcigpLT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCk7Ci0gICAgICAgIGlm
IChyZW5kZXJpbmdTdGF0ZSA9PSBGbG9hdFBhaW50ICYmIHNoYXBlT3V0c2lkZSkKLSAgICAgICAg
ICAgIHJldHVybiBjaGlsZC0+eSgpIC0gKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBzaGFw
ZU91dHNpZGUtPnNoYXBlTG9naWNhbFRvcCgpIDogc2hhcGVPdXRzaWRlLT5zaGFwZUxvZ2ljYWxM
ZWZ0KCkpOwotICAgICAgICAvLyBGSVhNRTogQnVnIDEwNjkyOCBUaGlzIG5lZWRzIHRvIHByb3Bl
cmx5IGhhbmRsZSB0aGUgbWFyZ2luIGZvciBmbG9hdHMgd2l0aCBzaGFwZS1vdXRzaWRlLgorICAg
ICAgICBpZiAoc2hhcGVPdXRzaWRlKQorICAgICAgICAgICAgcmV0dXJuIGNoaWxkLT55KCk7CiAj
ZW5kaWYKIAogICAgICAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCAzMzBhZjgyN2U5ZWVjZjcxYTQwODRhZjM0OGFh
NDYyNzZiN2VkZjRkLi44ZDg1YTYwY2EyOWNkMzI5ODA1NTBlN2M4OWY4NmQxMjU1NDcyNWFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1Ymxp
YzoKIAogICAgIC8vIGhhc0F1dG9aSW5kZXggb25seSByZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1l
bnQgaXMgcG9zaXRpb25lZCBvciBhIGZsZXgtaXRlbSBzaW5jZQogICAgIC8vIHBvc2l0aW9uOnN0
YXRpYyBlbGVtZW50cyB0aGF0IGFyZSBub3QgZmxleC1pdGVtcyBnZXQgdGhlaXIgei1pbmRleCBj
b2VyY2VkIHRvIGF1dG8uCi0gICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBpc1Jvb3QoKSB8fCBpc1Bvc2l0aW9uZWQoKSB8fCBjcmVhdGVzR3Jv
dXAoKSB8fCBoYXNDbGlwUGF0aCgpIHx8IGhhc092ZXJmbG93Q2xpcCgpIHx8IGhhc1RyYW5zZm9y
bSgpIHx8IGhhc0hpZGRlbkJhY2tmYWNlKCkgfHwgaGFzUmVmbGVjdGlvbigpIHx8IHN0eWxlKCkt
PnNwZWNpZmllc0NvbHVtbnMoKSB8fCAhc3R5bGUoKS0+aGFzQXV0b1pJbmRleCgpOyB9CisgICAg
dmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBpc1Jv
b3QoKSB8fCBpc1Bvc2l0aW9uZWQoKSB8fCBjcmVhdGVzR3JvdXAoKSB8fCBoYXNDbGlwUGF0aCgp
IHx8IGhhc092ZXJmbG93Q2xpcCgpIHx8IGhhc1RyYW5zZm9ybSgpIHx8IGhhc0hpZGRlbkJhY2tm
YWNlKCkgfHwgaGFzUmVmbGVjdGlvbigpIHx8IHN0eWxlKCktPnNwZWNpZmllc0NvbHVtbnMoKSB8
fCAhc3R5bGUoKS0+aGFzQXV0b1pJbmRleCgpIHx8IChzdHlsZSgpLT5zaGFwZU91dHNpZGUoKSAm
JiBpc0Zsb2F0aW5nKCkpOyB9CiAKICAgICAvLyBVc2UgdGhpcyB3aXRoIGNhdXRpb24hIE5vIHR5
cGUgY2hlY2tpbmcgaXMgZG9uZSEKICAgICBSZW5kZXJCb3gqIGZpcnN0Q2hpbGRCb3goKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCmluZGV4IDllNmYxYzY2YzY0MjY2NjBlZmFmNDljZmIzYzEzMWY4NDA1ZTQ5NzIuLjNiZjBk
NjY2NmEyOTc3ZTZhZDc0Yjk3MWQ0ODdjMTQzNGZjZjZjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNTI1LDEzICs1MjUs
MjIgQEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c3RpY2t5UG9zaXRpb25PZmZz
ZXQoKSBjb25zdAogCiBMYXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2JqZWN0OjpvZmZzZXRGb3JJ
bkZsb3dQb3NpdGlvbigpIGNvbnN0CiB7CisgICAgTGF5b3V0U2l6ZSBvZmZzZXQ7CisKICAgICBp
ZiAoaXNSZWxQb3NpdGlvbmVkKCkpCi0gICAgICAgIHJldHVybiByZWxhdGl2ZVBvc2l0aW9uT2Zm
c2V0KCk7CisgICAgICAgIG9mZnNldCA9IHJlbGF0aXZlUG9zaXRpb25PZmZzZXQoKTsKKyAgICBl
bHNlIGlmIChpc1N0aWNreVBvc2l0aW9uZWQoKSkKKyAgICAgICAgb2Zmc2V0ID0gc3RpY2t5UG9z
aXRpb25PZmZzZXQoKTsKIAotICAgIGlmIChpc1N0aWNreVBvc2l0aW9uZWQoKSkKLSAgICAgICAg
cmV0dXJuIHN0aWNreVBvc2l0aW9uT2Zmc2V0KCk7CisjaWYgRU5BQkxFKENTU19FWENMVVNJT05T
KQorICAgIGlmIChpc0JveCgpICYmIGlzRmxvYXRpbmcoKSkgeworICAgICAgICBFeGNsdXNpb25T
aGFwZU91dHNpZGVJbmZvKiBzaGFwZU91dHNpZGUgPSB0b1JlbmRlckJveCh0aGlzKS0+ZXhjbHVz
aW9uU2hhcGVPdXRzaWRlSW5mbygpOworICAgICAgICBpZiAoc2hhcGVPdXRzaWRlKQorICAgICAg
ICAgICAgb2Zmc2V0IC09IHNoYXBlT3V0c2lkZS0+c2hhcGVMb2dpY2FsT2Zmc2V0KCk7CisgICAg
fQorI2VuZGlmCiAKLSAgICByZXR1cm4gTGF5b3V0U2l6ZSgpOworICAgIHJldHVybiBvZmZzZXQ7
CiB9CiAKIExheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om9mZnNldExlZnQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGFkYzA3MDg3ZGQ3
MmI0NDc2OTIyZWRlNjJkZmZhYzJlYTE5YjliYWQuLjUwZjA4ZWY4MzY4ODBlMjZlZThiNmNkYmRl
YzM0NTNhM2I0Y2M2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgK
QEAgLTUyNCw3ICs1MjQsMTYgQEAgcHVibGljOgogICAgIGJvb2wgaXNGbG9hdGluZygpIGNvbnN0
IHsgcmV0dXJuIG1fYml0ZmllbGRzLmZsb2F0aW5nKCk7IH0KIAogICAgIGJvb2wgaXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCk7IH0gLy8gYWJzb2x1dGUgb3IgZml4ZWQgcG9zaXRpb25pbmcKLSAgICBib29sIGlz
SW5GbG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVsUG9zaXRp
b25lZCgpIHx8IG1fYml0ZmllbGRzLmlzU3RpY2t5UG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0aXZl
IG9yIHN0aWNreSBwb3NpdGlvbmluZworICAgIGJvb2wgaXNJbkZsb3dQb3NpdGlvbmVkKCkgY29u
c3QKKyAgICB7CisgICAgICAgIGJvb2wgcG9zaXRpb25lZCA9IG1fYml0ZmllbGRzLmlzUmVsUG9z
aXRpb25lZCgpIHx8IG1fYml0ZmllbGRzLmlzU3RpY2t5UG9zaXRpb25lZCgpOyAvLyByZWxhdGl2
ZSBvciBzdGlja3kgcG9zaXRpb25pbmcKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAg
ICAgIC8vIFNoYXBlIG91dHNpZGUgb24gYSBmbG9hdCBjYW4gcmVwb3NpdGlvbiB0aGUgZmxvYXQg
aW4gbXVjaCB0aGUKKyAgICAgICAgLy8gc2FtZSB3YXkgYXMgcmVsYXRpdmUgcG9zaXRpb25pbmcs
IHNvIHRyZWF0IGl0IGFzIHN1Y2guCisgICAgICAgIHBvc2l0aW9uZWQgPSBwb3NpdGlvbmVkIHx8
IChtX2JpdGZpZWxkcy5mbG9hdGluZygpICYmIG1fYml0ZmllbGRzLmlzQm94KCkgJiYgc3R5bGUo
KS0+c2hhcGVPdXRzaWRlKCkpOworI2VuZGlmCisgICAgICAgIHJldHVybiBwb3NpdGlvbmVkOwor
ICAgIH0KICAgICBib29sIGlzUmVsUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0Zmll
bGRzLmlzUmVsUG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0aXZlIHBvc2l0aW9uaW5nCiAgICAgYm9v
bCBpc1N0aWNreVBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc1N0aWNr
eVBvc2l0aW9uZWQoKTsgfQogICAgIGJvb2wgaXNQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRmaWVsZHMuaXNQb3NpdGlvbmVkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZDA5YTU1MTVkODMwNWNlN2FlNjA4YTkwZGY3Zjg4
NGY0NWQ0ZTUwZC4uZjk2MzQ3NmE1YjEzNDc1OTJjZDFmOWViNGJmMTdiNTE2NmFhYjE5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTQ1OSw3
ICs0NTksMTQgQEAgcHVibGljOgogCiAgICAgRVBvc2l0aW9uIHBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RVBvc2l0aW9uPihub25pbmhlcml0ZWRfZmxhZ3MuX3Bvc2l0aW9u
KTsgfQogICAgIGJvb2wgaGFzT3V0T2ZGbG93UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBwb3Np
dGlvbigpID09IEFic29sdXRlUG9zaXRpb24gfHwgcG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9u
OyB9Ci0gICAgYm9vbCBoYXNJbkZsb3dQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHBvc2l0aW9u
KCkgPT0gUmVsYXRpdmVQb3NpdGlvbiB8fCBwb3NpdGlvbigpID09IFN0aWNreVBvc2l0aW9uOyB9
CisgICAgYm9vbCBoYXNJbkZsb3dQb3NpdGlvbigpIGNvbnN0CisgICAgeworICAgICAgICBib29s
IGluRmxvd1Bvc2l0aW9uID0gcG9zaXRpb24oKSA9PSBSZWxhdGl2ZVBvc2l0aW9uIHx8IHBvc2l0
aW9uKCkgPT0gU3RpY2t5UG9zaXRpb247CisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAg
ICAgICBpbkZsb3dQb3NpdGlvbiA9IGluRmxvd1Bvc2l0aW9uIHx8IChpc0Zsb2F0aW5nKCkgJiYg
c2hhcGVPdXRzaWRlKCkpOworI2VuZGlmCisgICAgICAgIHJldHVybiBpbkZsb3dQb3NpdGlvbjsK
KyAgICB9CiAgICAgYm9vbCBoYXNWaWV3cG9ydENvbnN0cmFpbmVkUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBwb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24gfHwgcG9zaXRpb24oKSA9PSBTdGlj
a3lQb3NpdGlvbjsgfQogICAgIEVGbG9hdCBmbG9hdGluZygpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PEVGbG9hdD4obm9uaW5oZXJpdGVkX2ZsYWdzLl9mbG9hdGluZyk7IH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGE1OTYwNDRjOTNmNDdjNGIyN2E4OTU3YjJjOWYzNjBlNmZjNWFjZjYuLjRmNzE5ZjIyZGE1ZDJj
YTc3MmQ0ODY3Mzk4ZmMwN2RiZmUxMzZmZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0w
MS0yNCAgQmVtIEpvbmVzLUJleSAgPGJqb25lc2JlQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NT
IEV4Y2x1c2lvbnNdIEhhbmRsZSBzaGFwZS1vdXRzaWRlIGNoYW5naW5nIGEgZmxvYXQncyBvdmVy
aGFuZyBiZWhhdmlvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA2OTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBpcyBhbHNvIHRlc3RlZCBieSB0aGUgZXhpc3RpbmcgdGVzdHMgZm9yIHNoYXBl
IG91dHNpZGUgb24gZmxvYXRzIHBvc2l0aW9uaW5nLgorCisgICAgICAgICogZmFzdC9leGNsdXNp
b25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRz
aWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy5odG1sOiBBZGRlZC4KKwog
MjAxMy0wMS0yNCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgRUZMIHJlYmFzZWxpbmUuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lk
ZS1mbG9hdHMtb3ZlcmhhbmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzYWM4NmM1MzE0ZjNlODAxMzI5OWM5Y2FjN2MzZjUw
ODFjNzk1YmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3ZlcmhhbmctZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHN0eWxlPgor
ICAgICAgI3RvcCB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgd2lkdGg6
IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiB5ZWxsb3c7CisgICAgICB9CisgICAgICAjc2hhcGUgeworICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgcmlnaHQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGJsdWU7CisgICAgICB9CisgICAgICAjZmxvYXQgeworICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGZsb2F0OiByaWdodDsKKyAgICAg
IH0KKyAgICAgICNib3R0b20geworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAg
ICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAg
PGJvZHk+CisgICAgPGgxPjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDY5MjciPkJ1ZyAxMDY5Mjc8L2E+OiBbQ1NTIEV4Y2x1c2lvbnNdIEhhbmRsZSBz
aGFwZS1vdXRzaWRlIGNoYW5naW5nIGEgZmxvYXQncyBvdmVyaGFuZyBiZWhhdmlvcjwvaDE+Cisg
ICAgPGgyPllvdSBzaG91bGQgc2VlIGEgeWVsbG93IHNxdWFyZSB0byB0aGUgbGVmdCBvZiBhIGJs
dWUgc3F1YXJlLCB3aXRoIHRoZSBibHVlIHNxdWFyZSBjb3ZlcmluZyB0aGUgdGV4dCBpbiB0aGUg
eWVsbG93IGFyZWEuIFRoZSBsb3dlciBncmVlbiByZWN0YW5nbGUgc2hvdWxkIGhhdmUgdGV4dCB3
cmFwcGluZyBhcm91bmQgYSBzcXVhcmUgYXJlYSBvbiB0aGUgcmlnaHQgYXMgaWYgdGhlcmUgaXMg
YSBmbG9hdCB0aGVyZS48L2gyPgorICAgIDxkaXYgaWQ9InRvcCI+CisgICAgICBZb3Ugc2hvdWxk
IG9ubHkgYmUgYWJsZSB0byBzZWUgcGFydCBvZiB0aGlzIHRleHQuIElmIHlvdSBjYW4gcmVhZCBh
bGwgb2YgdGhpcywgdGhlbiBpdCBpc24ndCB3b3JraW5nLgorICAgICAgPGRpdiBpZD0ic2hhcGUi
PgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iYm90dG9tIj4KKyAgICAg
IDxkaXYgaWQ9ImZsb2F0Ij4KKyAgICAgPC9kaXY+CisgICAgIFRoZSBmbG9hdCBpcyBkZWZpbmVk
IGhlcmUsIGJ1dCB0aGUgc2hhcGUgcHVzaGVzIGl0IGludG8gdGhlIGFib3ZlIGRpdi4gTm90ZSB0
aGF0IHRoZSBleGNsdXNpb24gYmVoYXZpb3Igc3RheXMgd2l0aCB0aGUgc2hhcGUgYW5kIG5vdCB3
aXRoIHRoZSBmbG9hdC4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hh
cGUtb3V0c2lkZS1mbG9hdHMtb3ZlcmhhbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVz
aW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdhZmUzNWQwZTZhNGYwYzI0YTI4NWNjYjcwMjYzNzYzMTMzYjE3ZGYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3ZlcmhhbmcuaHRtbApAQCAtMCwwICsx
LDQwIEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1
c2lvbnNFbmFibGVkKHRydWUpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICN0
b3AgeworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAgIH0KKyAgICAgICNmbG9hdCB7Cisg
ICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBmbG9hdDogcmlnaHQ7CisgICAgICAgIC13ZWJraXQt
c2hhcGUtb3V0c2lkZTogcmVjdGFuZ2xlKDBweCwgMTAwcHgsIDEwMHB4LCAxMDBweCk7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICB9CisgICAgICAjYm90dG9tIHsKKyAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAg
ICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT48YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTI3Ij5CdWcgMTA2
OTI3PC9hPjogW0NTUyBFeGNsdXNpb25zXSBIYW5kbGUgc2hhcGUtb3V0c2lkZSBjaGFuZ2luZyBh
IGZsb2F0J3Mgb3ZlcmhhbmcgYmVoYXZpb3I8L2gxPgorICAgIDxoMj5Zb3Ugc2hvdWxkIHNlZSBh
IHllbGxvdyBzcXVhcmUgdG8gdGhlIGxlZnQgb2YgYSBibHVlIHNxdWFyZSwgd2l0aCB0aGUgYmx1
ZSBzcXVhcmUgY292ZXJpbmcgdGhlIHRleHQgaW4gdGhlIHllbGxvdyBhcmVhLiBUaGUgbG93ZXIg
Z3JlZW4gcmVjdGFuZ2xlIHNob3VsZCBoYXZlIHRleHQgd3JhcHBpbmcgYXJvdW5kIGEgc3F1YXJl
IGFyZWEgb24gdGhlIHJpZ2h0IGFzIGlmIHRoZXJlIGlzIGEgZmxvYXQgdGhlcmUuPC9oMj4KKyAg
ICA8ZGl2IGlkPSJ0b3AiPgorICAgICAgWW91IHNob3VsZCBvbmx5IGJlIGFibGUgdG8gc2VlIHBh
cnQgb2YgdGhpcyB0ZXh0LiBJZiB5b3UgY2FuIHJlYWQgYWxsIG9mIHRoaXMsIHRoZW4gaXQgaXNu
J3Qgd29ya2luZy4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJib3R0b20iPgorICAgICAgPGRp
diBpZD0iZmxvYXQiPgorICAgICA8L2Rpdj4KKyAgICAgVGhlIGZsb2F0IGlzIGRlZmluZWQgaGVy
ZSwgYnV0IHRoZSBzaGFwZSBwdXNoZXMgaXQgaW50byB0aGUgYWJvdmUgZGl2LiBOb3RlIHRoYXQg
dGhlIGV4Y2x1c2lvbiBiZWhhdmlvciBzdGF5cyB3aXRoIHRoZSBzaGFwZSBhbmQgbm90IHdpdGgg
dGhlIGZsb2F0LgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187189</attachid>
            <date>2013-02-07 15:40:33 -0800</date>
            <delta_ts>2013-02-11 12:02:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106927-20130207153709.patch</filename>
            <type>text/plain</type>
            <size>36575</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM0NDYyYjU4YWJjMjUw
NDAwY2ZjNTc1OTkzMzI1YmZjNjFlNzRmNy4uYjE3ZjBjMTQwYjYyN2I4ODk4YmVkZGQ5NGRkZWIx
ODA2NjczZGY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEzLTAyLTA3ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2
aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHRoZSBwb3NpdGlvbiBvbiBhIHNoYXBlIG91dHNpZGUgY2F1c2VzIGEgZmxvYXQgdG8gc3BpbGwg
b3V0IGludG8KKyAgICAgICAgYW5vdGhlciBibG9jayB0aGFuIGl0J3MgY29udGFpbmVyLCBpdCB3
YXMgbm90IGJlaW5nIGRyYXduIGNvcnJlY3RseS4gSXQKKyAgICAgICAgYmVjYW1lIGFwcGFyZW50
IHRoYXQgaW4gb3JkZXIgdG8gZml4IHRoaXMgcHJvcGVybHksIHRoZSBhcHByb2FjaCB0bworICAg
ICAgICBwb3NpdGlvbmluZyBzaGFwZSBvdXRzaWRlcyBhbmQgZmxvYXRzIG5lZWRlZCB0byBiZSBj
aGFuZ2VkLiBUaGUgbmV3CisgICAgICAgIGFwcHJvYWNoIGFsc28gZml4ZXMgc29tZSBvdGhlciBv
dXRzdGFuZGluZyBpc3N1ZXMsIGxpa2UgaGl0IGRldGVjdGlvbi4KKworICAgICAgICBXaGVuIGEg
ZmxvYXQgaGFzIGEgc2hhcGUgb3V0c2lkZSwgaW5saW5lIGFuZCBmbG9hdCBsYXlvdXQgaGFwcGVu
cworICAgICAgICB1c2luZyB0aGUgZXhjbHVzaW9uIHNoYXBlIGJvdW5kcyBpbnN0ZWFkIG9mIHRo
ZSBmbG9hdCdzIGJveC4gIFRoZQorICAgICAgICBlZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IHRoZSBm
bG9hdCBpdHNlbGYgbm8gbG9uZ2VyIGhhcyBhbnkgZWZmZWN0IG9uCisgICAgICAgIGxheW91dCwg
Ym90aCB3aXRoIHJlc3BlY3QgdG8gcG9zaXRpb25pbmcgb2YgdGhlIGZsb2F0J3Mgc2libGluZ3Mg
YXMKKyAgICAgICAgd2VsbCBhcyBwb3NpdGlvbmluZyB0aGUgZmxvYXQncyBib3guIFRoaXMgbWVh
bnMgdGhhdCB3aGVuIHRoZSBmbG9hdCBpcworICAgICAgICBwb3NpdGlvbmVkLCBpdCBpcyB0aGUg
c2hhcGUncyBib3ggdGhhdCBtdXN0IG9iZXkgdGhlIHBvc2l0aW9uaW5nIHJ1bGVzCisgICAgICAg
IGZvciBmbG9hdHMuIFdoZW4gdGhlIHNoYXBlIGlzIGdpdmVuIGEgcG9zaXRpb24gcmVsYXRpdmUg
dG8gdGhlIGZsb2F0J3MKKyAgICAgICAgYm94LCB0aGUgcnVsZXMgZm9yIGZsb2F0IHBvc2l0aW9u
aW5nIGRldGVybWluZSB3aGVyZSB0aGUgc2hhcGUgc2l0cworICAgICAgICBpbiB0aGUgcGFyZW50
LCBjYXVzaW5nIHRoZSBmbG9hdCdzIGJveCB0byBiZSBvZmZzZXQgYnkgdGhlIHBvc2l0aW9uIG9m
CisgICAgICAgIHRoZSBzaGFwZS4gU2luY2UgdGhlIGZsb2F0J3MgYm94IGRvZXMgbm90IGFmZmVj
dCBsYXlvdXQgKGR1ZSB0byB0aGUKKyAgICAgICAgc2hhcGUpLCB0aGlzIGlzIHNpbWlsYXIgdG8g
cmVsYXRpdmUgcG9zaXRpb25pbmcgaW4gdGhhdCB0aGUgb2Zmc2V0IGlzCisgICAgICAgIGEgcGFp
bnQgdGltZSBvY2N1cnJlbmNlLgorCisgICAgICAgIFNvIHRoZSBuZXcgYXBwcm9hY2ggaXMgdG8g
aW1wbGVtZW50IHBvc2l0aW9uaW5nIG9mIHNoYXBlIG91dHNpZGUgb24KKyAgICAgICAgZmxvYXRz
IHNpbWlsYXIgdG8gaG93IHJlbGF0aXZlIHBvc2l0aW9uaW5nIGlzIGltcGxlbWVudGVkLCB1c2lu
ZyBhCisgICAgICAgIFJlbmRlckxheWVyLgorCisgICAgICAgIFRoaXMgaXMgYWxzbyB0ZXN0ZWQg
YnkgdGhlIGV4aXN0aW5nIHRlc3RzIGZvciBzaGFwZSBvdXRzaWRlIG9uIGZsb2F0cyBwb3NpdGlv
bmluZy4KKworICAgICAgICBUZXN0OiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9h
dHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3ZlcmhhbmcuaHRtbAorCisgICAgICAgICogcmVuZGVy
aW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm86OnNoYXBlTG9naWNhbE9mZnNldCk6IFV0aWxpdHkgbWV0aG9k
IHRvIGNyZWF0ZSBhIExheW91dFNpemUgZm9yIGNvbXB1dGluZyB0aGUgbGF5ZXIgb2Zmc2V0Lgor
ICAgICAgICAoRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyk6CisgICAgICAgICogcmVuZGVyaW5n
L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpMYXlvdXRT
dGF0ZSk6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4g
ZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9y
Q2hpbGQpOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50RmxvYXRzKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmlu
ZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpibG9ja1Nl
bGVjdGlvbkdhcHMpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxs
IGFzIGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
cG9zaXRpb25OZXdGbG9hdHMpOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9u
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZE92ZXJoYW5naW5nRmxvYXRzKTog
UmVtb3ZlIEZJWE1FLgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25Gb3JQb2ludFJlc3BlY3Rp
bmdFZGl0aW5nQm91bmRhcmllcyk6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRl
IGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaDoKKyAgICAgICAgKFJlbmRlckJsb2NrKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmlu
ZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp4UG9zaXRp
b25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbik6IFJlbW92ZSBvbGQgcG9zaXRpb25pbmcgaW1wbGVt
ZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6eVBvc2l0aW9uRm9yRmxv
YXRJbmNsdWRpbmdNYXJnaW4pOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9u
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNo
YXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpvZmZzZXRGcm9tQ29udGFpbmVyKTogQ2hlY2sgZm9yIGZsb2F0cyB3
aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOiBDaGVjayBmb3Ig
ZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZsb3cgcG9zaXRpb25pbmcu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmxheW91dE92ZXJmbG93UmVjdEZvclByb3Bh
Z2F0aW9uKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBp
biBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDogTWFr
ZSBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGdldCBhIGxheWVyLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRPZmZzZXQpOiBNZXRob2QgdG8gcmV0dXJuIGluIGZsb3cKKyAg
ICAgICAgICAgIHBvc2l0aW9uaW5nIG9mZnNldCArIG9mZnNldCBmcm9tIHNoYXBlIG91dHNpZGUg
b24gZmxvYXRzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgor
ICAgICAgICAoUmVuZGVyQm94TW9kZWxPYmplY3QpOiBBZGQgcGFpbnRPZmZzZXQgbWV0aG9kLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCk6IENoZWNrIGZvciBm
bG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KTog
Q2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBv
c2l0aW9uaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29u
dGFpbmVyKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBp
biBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbik6IENo
ZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3Np
dGlvbmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVj
dHMpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZs
b3cgcG9zaXRpb25pbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRPZmZzZXQpOiBSZW5hbWUgb2Zmc2V0Rm9y
SW5GbG93UG9zaXRpb24gdG8gcmVmbGVjdCB0aGF0IGl0J3Mgbm90IGp1c3QgZm9yCisgICAgICAg
ICAgICBpbiBmbG93IHBvc2l0aW9uaW5nLCBpdCBhbHNvIHJlZmxlY3RzIHNoYXBlIG91dHNpZGUg
cG9zaXRpb24gb24gZmxvYXRzLgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
aGFzUGFpbnRPZmZzZXQpOiBEZXRlcm1pbmVzIGlmIHRoaXMgb2JqZWN0IGlzIGluIGZsb3cgcG9z
aXRpb2luZWQgb3IgaXMgYSBmbG9hdCB3aXRoIHNoYXBlIG91dHNpZGUuCisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6IEFkZCBoYXNQYWludE9mZnNldCBtZXRob2QsIGFu
YWxhZ291cyB0byBtZXRob2Qgd2l0aCBzYW1lIG5hbWUgb24gUmVuZGVyT2JqZWN0LgorCiAyMDEz
LTAyLTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IFtNYWNdIGRlY3JlYXNlIGluLWJhbmQgY2FwdGlvbiBhZHZhbmNlIG5vdGljZSBpbnRlcnZhbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lk
ZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJ
bmZvLmgKaW5kZXggMGY2YzkxZWI3Mzg3OTExMDc1M2FkOWYwODA2NjYzZDA5ZThjOTFlOC4uYTRi
ODEyODM4YmUzNWI0YmY5Y2RmNTZhYmJjOGNmZDVjMjA1YjU2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5oCkBAIC0zMyw2
ICszMyw3IEBACiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogCiAjaW5jbHVkZSAiRXhjbHVz
aW9uU2hhcGVJbmZvLmgiCisjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQwLDYgKzQxLDExIEBAIGNsYXNzIFJlbmRlckJveDsKIAogY2xhc3MgRXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mbyA6IHB1YmxpYyBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVy
Qm94LCAmUmVuZGVyU3R5bGU6OnNoYXBlT3V0c2lkZT4sIHB1YmxpYyBNYXBwZWRJbmZvPFJlbmRl
ckJveCwgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbz4gewogcHVibGljOgorICAgIExheW91dFNp
emUgc2hhcGVMb2dpY2FsT2Zmc2V0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBMYXlv
dXRTaXplKHNoYXBlTG9naWNhbExlZnQoKSwgc2hhcGVMb2dpY2FsVG9wKCkpOworICAgIH0KKwog
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8+IGNyZWF0ZUlu
Zm8oY29uc3QgUmVuZGVyQm94KiByZW5kZXJlcikgeyByZXR1cm4gYWRvcHRQdHIobmV3IEV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm8ocmVuZGVyZXIpKTsgfQogICAgIHN0YXRpYyBib29sIGlzRW5h
YmxlZEZvcihjb25zdCBSZW5kZXJCb3gqKTsKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xheW91dFN0YXRlLmNwcAppbmRleCA0Y2ZhMTZkYjgyYTA1YjQwYjcxZDBiOTAxYTBmZDM5
NjgwMzMxNTI0Li45YzQxNzYwN2U2MDlhMDY5NWU4NTQwZTBkY2U4NGI4YmRhMGIzYTA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKQEAgLTY1LDggKzY1LDggQEAg
TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKExheW91dFN0YXRlKiBwcmV2LCBSZW5kZXJCb3gqIHJl
bmRlcmVyLCBjb25zdCBMYXlvdXRTaXoKIAogICAgIG1fbGF5b3V0T2Zmc2V0ID0gbV9wYWludE9m
ZnNldDsKIAotICAgIGlmIChyZW5kZXJlci0+aXNJbkZsb3dQb3NpdGlvbmVkKCkgJiYgcmVuZGVy
ZXItPmhhc0xheWVyKCkpCi0gICAgICAgIG1fcGFpbnRPZmZzZXQgKz0gcmVuZGVyZXItPmxheWVy
KCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CisgICAgaWYgKHJlbmRlcmVyLT5oYXNQYWlu
dE9mZnNldCgpICYmIHJlbmRlcmVyLT5oYXNMYXllcigpKQorICAgICAgICBtX3BhaW50T2Zmc2V0
ICs9IHJlbmRlcmVyLT5sYXllcigpLT5wYWludE9mZnNldCgpOwogCiAgICAgbV9jbGlwcGVkID0g
IWZpeGVkICYmIHByZXYtPm1fY2xpcHBlZDsKICAgICBpZiAobV9jbGlwcGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDhlMWE1ZmQ2NWJkNGFjZjA2Mjhl
ZmNmMmVlNzUxNzVlOTBmZjNiYy4uNTUyOTE1MDdiNmQxZTQyYWU5ZDlkNTYyM2RkNjU3YTViZTA0
YjNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0zMTI3
LDcgKzMxMjcsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgIH0KIH0KIAotTGF5b3V0
UG9pbnQgUmVuZGVyQmxvY2s6OmZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY29uc3Qg
RmxvYXRpbmdPYmplY3QqIGNoaWxkLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIEZsb2F0UmVu
ZGVyaW5nU3RhdGUgcmVuZGVyaW5nU3RhdGUpIGNvbnN0CitMYXlvdXRQb2ludCBSZW5kZXJCbG9j
azo6ZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVjdCog
Y2hpbGQsIGNvbnN0IExheW91dFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAgICBpZiAoIXN0eWxl
KCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJldHVybiBwb2ludDsK
QEAgLTMxMzYsOCArMzEzNiw4IEBAIExheW91dFBvaW50IFJlbmRlckJsb2NrOjpmbGlwRmxvYXRG
b3JXcml0aW5nTW9kZUZvckNoaWxkKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjCiAgICAgLy8gaXQn
cyBnb2luZyB0byBnZXQgYWRkZWQgYmFjayBpbi4gV2UgaGlkZSB0aGlzIGNvbXBsaWNhdGlvbiBo
ZXJlIHNvIHRoYXQgdGhlIGNhbGxpbmcgY29kZSBsb29rcyBub3JtYWwgZm9yIHRoZSB1bmZsaXBw
ZWQKICAgICAvLyBjYXNlLgogICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQotICAg
ICAgICByZXR1cm4gTGF5b3V0UG9pbnQocG9pbnQueCgpLCBwb2ludC55KCkgKyBoZWlnaHQoKSAt
IGNoaWxkLT5yZW5kZXJlcigpLT5oZWlnaHQoKSAtIDIgKiB5UG9zaXRpb25Gb3JGbG9hdEluY2x1
ZGluZ01hcmdpbihjaGlsZCwgcmVuZGVyaW5nU3RhdGUpKTsKLSAgICByZXR1cm4gTGF5b3V0UG9p
bnQocG9pbnQueCgpICsgd2lkdGgoKSAtIGNoaWxkLT5yZW5kZXJlcigpLT53aWR0aCgpIC0gMiAq
IHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNoaWxkLCByZW5kZXJpbmdTdGF0ZSks
IHBvaW50LnkoKSk7CisgICAgICAgIHJldHVybiBMYXlvdXRQb2ludChwb2ludC54KCksIHBvaW50
LnkoKSArIGhlaWdodCgpIC0gY2hpbGQtPnJlbmRlcmVyKCktPmhlaWdodCgpIC0gMiAqIHlQb3Np
dGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNoaWxkKSk7CisgICAgcmV0dXJuIExheW91dFBv
aW50KHBvaW50LngoKSArIHdpZHRoKCkgLSBjaGlsZC0+cmVuZGVyZXIoKS0+d2lkdGgoKSAtIDIg
KiB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjaGlsZCksIHBvaW50LnkoKSk7CiB9
CiAKIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50RmxvYXRzKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGJvb2wgcHJlc2VydmVQaGFzZSkKQEAgLTMx
NTMsNyArMzE1Myw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50RmxvYXRzKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzCiAgICAgICAgIGlmIChyLT5z
aG91bGRQYWludCgpICYmICFyLT5tX3JlbmRlcmVyLT5oYXNTZWxmUGFpbnRpbmdMYXllcigpKSB7
CiAgICAgICAgICAgICBQYWludEluZm8gY3VycmVudFBhaW50SW5mbyhwYWludEluZm8pOwogICAg
ICAgICAgICAgY3VycmVudFBhaW50SW5mby5waGFzZSA9IHByZXNlcnZlUGhhc2UgPyBwYWludElu
Zm8ucGhhc2UgOiBQYWludFBoYXNlQmxvY2tCYWNrZ3JvdW5kOwotICAgICAgICAgICAgTGF5b3V0
UG9pbnQgY2hpbGRQb2ludCA9IGZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQociwgTGF5
b3V0UG9pbnQocGFpbnRPZmZzZXQueCgpICsgeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJn
aW4ociwgRmxvYXRQYWludCkgLSByLT5tX3JlbmRlcmVyLT54KCksIHBhaW50T2Zmc2V0LnkoKSAr
IHlQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKHIsIEZsb2F0UGFpbnQpIC0gci0+bV9y
ZW5kZXJlci0+eSgpKSwgRmxvYXRQYWludCk7CisgICAgICAgICAgICBMYXlvdXRQb2ludCBjaGls
ZFBvaW50ID0gZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChyLCBMYXlvdXRQb2ludChw
YWludE9mZnNldC54KCkgKyB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihyKSAtIHIt
Pm1fcmVuZGVyZXItPngoKSwgcGFpbnRPZmZzZXQueSgpICsgeVBvc2l0aW9uRm9yRmxvYXRJbmNs
dWRpbmdNYXJnaW4ocikgLSByLT5tX3JlbmRlcmVyLT55KCkpKTsKICAgICAgICAgICAgIHItPm1f
cmVuZGVyZXItPnBhaW50KGN1cnJlbnRQYWludEluZm8sIGNoaWxkUG9pbnQpOwogICAgICAgICAg
ICAgaWYgKCFwcmVzZXJ2ZVBoYXNlKSB7CiAgICAgICAgICAgICAgICAgY3VycmVudFBhaW50SW5m
by5waGFzZSA9IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHM7CkBAIC0zNDg0LDEwICsz
NDg0LDEwIEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrOjpibG9ja1NlbGVjdGlvbkdhcHMoUmVuZGVy
QmxvY2sqIHJvb3RCbG9jaywgY29uc3QgTGF5b3V0UG9pCiAgICAgICAgIGlmIChjdXJyLT5pc0Zs
b2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsgLy8g
V2UgbXVzdCBiZSBhIG5vcm1hbCBmbG93IG9iamVjdCBpbiBvcmRlciB0byBldmVuIGJlIGNvbnNp
ZGVyZWQuCiAKLSAgICAgICAgaWYgKGN1cnItPmlzSW5GbG93UG9zaXRpb25lZCgpICYmIGN1cnIt
Pmhhc0xheWVyKCkpIHsKKyAgICAgICAgaWYgKGN1cnItPmhhc1BhaW50T2Zmc2V0KCkgJiYgY3Vy
ci0+aGFzTGF5ZXIoKSkgewogICAgICAgICAgICAgLy8gSWYgdGhlIHJlbHBvc2l0aW9uIG9mZnNl
dCBpcyBhbnl0aGluZyBvdGhlciB0aGFuIDAsIHRoZW4gdHJlYXQgdGhpcyBqdXN0IGxpa2UgYW4g
YWJzb2x1dGUgcG9zaXRpb25lZCBlbGVtZW50LgogICAgICAgICAgICAgLy8gSnVzdCBkaXNyZWdh
cmQgaXQgY29tcGxldGVseS4KLSAgICAgICAgICAgIExheW91dFNpemUgcmVsT2Zmc2V0ID0gY3Vy
ci0+bGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICAgICAgICAgIExheW91
dFNpemUgcmVsT2Zmc2V0ID0gY3Vyci0+bGF5ZXIoKS0+cGFpbnRPZmZzZXQoKTsKICAgICAgICAg
ICAgIGlmIChyZWxPZmZzZXQud2lkdGgoKSB8fCByZWxPZmZzZXQuaGVpZ2h0KCkpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTQwMTMsMTggKzQwMTMsOCBAQCBib29s
IFJlbmRlckJsb2NrOjpwb3NpdGlvbk5ld0Zsb2F0cygpCiAKICAgICAgICAgc2V0TG9naWNhbExl
ZnRGb3JGbG9hdChmbG9hdGluZ09iamVjdCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpKTsKIAot
I2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgaWYgKGNoaWxkQm94LT5leGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvKCkpIHsKLSAgICAgICAgICAgIC8vIFRoZSBDU1MgRXhjbHVzaW9u
cyBzcGVjaWZpY2F0aW9uIHNheXMgdGhhdCB0aGUgbWFyZ2lucyBhcmUgaWdub3JlZCB3aGVuIGEg
ZmxvYXQgaGFzIGEgc2hhcGUgb3V0c2lkZS4KLSAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9y
Q2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLngoKSAtIGNoaWxkQm94LT5leGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvKCktPnNoYXBlTG9naWNhbExlZnQoKSk7Ci0gICAgICAgICAg
ICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnko
KSAtIGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCktPnNoYXBlTG9naWNhbFRv
cCgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSNlbmRpZgotICAgICAgICAgICAgc2V0TG9naWNhbExl
ZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpICsgY2hpbGRMb2dp
Y2FsTGVmdE1hcmdpbik7Ci0gICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRC
b3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxk
Qm94KSk7Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICB9Ci0jZW5kaWYKKyAg
ICAgICAgc2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRp
b24ueCgpICsgY2hpbGRMb2dpY2FsTGVmdE1hcmdpbik7CisgICAgICAgIHNldExvZ2ljYWxUb3BG
b3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueSgpICsgbWFyZ2luQmVmb3Jl
Rm9yQ2hpbGQoY2hpbGRCb3gpKTsKIAogICAgICAgICBMYXlvdXRTdGF0ZSogbGF5b3V0U3RhdGUg
PSB2aWV3KCktPmxheW91dFN0YXRlKCk7CiAgICAgICAgIGJvb2wgaXNQYWdpbmF0ZWQgPSBsYXlv
dXRTdGF0ZS0+aXNQYWdpbmF0ZWQoKTsKQEAgLTQwNTMsMTkgKzQwNDMsOCBAQCBib29sIFJlbmRl
ckJsb2NrOjpwb3NpdGlvbk5ld0Zsb2F0cygpCiAgICAgICAgICAgICAgICAgZmxvYXRMb2dpY2Fs
TG9jYXRpb24gPSBjb21wdXRlTG9naWNhbExvY2F0aW9uRm9yRmxvYXQoZmxvYXRpbmdPYmplY3Qs
IG5ld0xvZ2ljYWxUb3ApOwogICAgICAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yRmxvYXQo
ZmxvYXRpbmdPYmplY3QsIGZsb2F0TG9naWNhbExvY2F0aW9uLngoKSk7CiAKLSNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgICAgICAgICAgaWYgKGNoaWxkQm94LT5leGNsdXNpb25T
aGFwZU91dHNpZGVJbmZvKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIENTUyBFeGNs
dXNpb25zIHNwZWNpZmljYXRpb24gc2F5cyB0aGF0IHRoZSBtYXJnaW5zIGFyZSBpZ25vcmVkIHdo
ZW4gYSBmbG9hdCBoYXMgYSBzaGFwZSBvdXRzaWRlLgotICAgICAgICAgICAgICAgICAgICBzZXRM
b2dpY2FsTGVmdEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi54KCkgLSBj
aGlsZEJveC0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpLT5zaGFwZUxvZ2ljYWxMZWZ0KCkp
OwotICAgICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZs
b2F0TG9naWNhbExvY2F0aW9uLnkoKSAtIGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJ
bmZvKCktPnNoYXBlTG9naWNhbFRvcCgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotI2Vu
ZGlmCi0gICAgICAgICAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gs
IGZsb2F0TG9naWNhbExvY2F0aW9uLngoKSArIGNoaWxkTG9naWNhbExlZnRNYXJnaW4pOwotICAg
ICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9n
aWNhbExvY2F0aW9uLnkoKSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkQm94KSk7Ci0jaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICAgICAgICAgIH0KLSNlbmRpZgotCisgICAg
ICAgICAgICAgICAgc2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2Fs
TG9jYXRpb24ueCgpICsgY2hpbGRMb2dpY2FsTGVmdE1hcmdpbik7CisgICAgICAgICAgICAgICAg
c2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi55KCkg
KyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZEJveCkpOwogICAgICAgICAKICAgICAgICAgICAg
ICAgICBpZiAoY2hpbGRCbG9jaykKICAgICAgICAgICAgICAgICAgICAgY2hpbGRCbG9jay0+c2V0
Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwpAQCAtNDU1OCw3ICs0NTM3LDYg
QEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YWRkT3ZlcmhhbmdpbmdGbG9hdHMoUmVuZGVyQmxv
Y2sqIGNoaWxkLCBib29sIG1ha2VDaGlsZFAKICAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsQm90
dG9tID0gY2hpbGRMb2dpY2FsVG9wICsgbG9naWNhbEJvdHRvbUZvckZsb2F0OwogICAgICAgICBs
b3dlc3RGbG9hdExvZ2ljYWxCb3R0b20gPSBtYXgobG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tLCBs
b2dpY2FsQm90dG9tKTsKIAotICAgICAgICAvLyBGSVhNRTogQnVnIDEwNjkyNyBIYW5kbGUgc2l0
dWF0aW9ucyB3aGVyZSBmbG9hdCBhbmQgc2hhcGUtb3V0c2lkZSBvdmVyZmxvdyBkaWZmZXJlbnRs
eS4KICAgICAgICAgaWYgKGxvZ2ljYWxCb3R0b20gPiBsb2dpY2FsSGVpZ2h0KCkpIHsKICAgICAg
ICAgICAgIC8vIElmIHRoZSBvYmplY3QgaXMgbm90IGluIHRoZSBsaXN0LCB3ZSBhZGQgaXQgbm93
LgogICAgICAgICAgICAgaWYgKCFjb250YWluc0Zsb2F0KHItPm1fcmVuZGVyZXIpKSB7CkBAIC01
MDM3LDggKzUwMTUsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNFZGl0aW5nQm91bmRhcnkoUmVu
ZGVyT2JqZWN0KiBhbmNlc3RvciwgUmVuZGVyT2JqZWN0KiBjaGlsZAogc3RhdGljIFZpc2libGVQ
b3NpdGlvbiBwb3NpdGlvbkZvclBvaW50UmVzcGVjdGluZ0VkaXRpbmdCb3VuZGFyaWVzKFJlbmRl
ckJsb2NrKiBwYXJlbnQsIFJlbmRlckJveCogY2hpbGQsIGNvbnN0IExheW91dFBvaW50JiBwb2lu
dEluUGFyZW50Q29vcmRpbmF0ZXMpCiB7CiAgICAgTGF5b3V0UG9pbnQgY2hpbGRMb2NhdGlvbiA9
IGNoaWxkLT5sb2NhdGlvbigpOwotICAgIGlmIChjaGlsZC0+aXNJbkZsb3dQb3NpdGlvbmVkKCkp
Ci0gICAgICAgIGNoaWxkTG9jYXRpb24gKz0gY2hpbGQtPm9mZnNldEZvckluRmxvd1Bvc2l0aW9u
KCk7CisgICAgaWYgKGNoaWxkLT5oYXNQYWludE9mZnNldCgpKQorICAgICAgICBjaGlsZExvY2F0
aW9uICs9IGNoaWxkLT5wYWludE9mZnNldCgpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgd3Jv
bmcgaWYgdGhlIGNoaWxkJ3Mgd3JpdGluZy1tb2RlIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBwYXJl
bnQncy4KICAgICBMYXlvdXRQb2ludCBwb2ludEluQ2hpbGRDb29yZGluYXRlcyh0b0xheW91dFBv
aW50KHBvaW50SW5QYXJlbnRDb29yZGluYXRlcyAtIGNoaWxkTG9jYXRpb24pKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggNGY4MWVhMDM3NzYzMzlkMjM5MDU2ZDJl
N2E2ODAxYTBjYmQ0YjMxNy4uOTI4NmZhNDhlZDY4YzQ2MWJiN2NkOGMzMTc3ZGJlZmYyNzc5YzFj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTY4OSwxNCArNjg5
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIH07CiAKLSAgICAvLyBXaGVuIGEgZmxvYXQgaGFz
IHNoYXBlIG91dHNpZGUsIGl0IG5lZWRzIHRvIGJlIGhhbmRsZWQgZGlmZmVyZW50bHkgYXQKLSAg
ICAvLyBwYWludCB0aW1lIGFuZCBhdCBsYXlvdXQgdGltZSwgc2luY2UgdGhlIGNvb3JkaW5hdGVz
IG9mIHRoZSBzaGFwZQotICAgIC8vIChhZmZlY3RpbmcgbGF5b3V0KSBhbmQgdGhlIGNvb3JkaW5h
dGVzIG9mIHRoZSBmbG9hdCBpdHNlbGYgKGFmZmVjdGluZwotICAgIC8vIHdoZXJlIHRoZSBjb250
ZW50IG9mIHRoZSBmbG9hdCBpcykgY2FuIGJlIGluIGRpZmZlcmVudCBwbGFjZXMuIFRoaXMgZW51
bQotICAgIC8vIGlzIHVzZWQgdG8gY2hhbmdlIGJlaGF2aW9yIGJhc2VkIG9uIHRoYXQgc3RhdGUu
Ci0gICAgZW51bSBGbG9hdFJlbmRlcmluZ1N0YXRlIHsgRmxvYXRMYXlvdXQsIEZsb2F0UGFpbnQg
fTsKLQotICAgIExheW91dFBvaW50IGZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY29u
c3QgRmxvYXRpbmdPYmplY3QqLCBjb25zdCBMYXlvdXRQb2ludCYsIEZsb2F0UmVuZGVyaW5nU3Rh
dGUgPSBGbG9hdExheW91dCkgY29uc3Q7CisgICAgTGF5b3V0UG9pbnQgZmxpcEZsb2F0Rm9yV3Jp
dGluZ01vZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVjdCosIGNvbnN0IExheW91dFBvaW50
JikgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BGb3JGbG9hdChjb25zdCBGbG9h
dGluZ09iamVjdCogY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPyBjaGlsZC0+eSgpIDogY2hpbGQtPngoKTsgfQogICAgIExheW91dFVuaXQgbG9naWNhbEJv
dHRvbUZvckZsb2F0KGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCkgY29uc3QgeyByZXR1cm4g
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGNoaWxkLT5tYXhZKCkgOiBjaGlsZC0+bWF4WCgp
OyB9CkBAIC03MzgsMTMgKzczMSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgY2hpbGQtPnNl
dEhlaWdodChsb2dpY2FsV2lkdGgpOwogICAgIH0KIAotICAgIExheW91dFVuaXQgeFBvc2l0aW9u
Rm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxkLCBGbG9h
dFJlbmRlcmluZ1N0YXRlIHJlbmRlcmluZ1N0YXRlID0gRmxvYXRMYXlvdXQpIGNvbnN0CisgICAg
TGF5b3V0VW5pdCB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjb25zdCBGbG9hdGlu
Z09iamVjdCogY2hpbGQpIGNvbnN0CiAgICAgewogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
ICAgICAgICAgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyAqc2hhcGVPdXRzaWRlID0gY2hpbGQt
PnJlbmRlcmVyKCktPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKTsKLSAgICAgICAgaWYgKHJl
bmRlcmluZ1N0YXRlID09IEZsb2F0UGFpbnQgJiYgc2hhcGVPdXRzaWRlKQotICAgICAgICAgICAg
cmV0dXJuIGNoaWxkLT54KCkgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHNoYXBlT3V0
c2lkZS0+c2hhcGVMb2dpY2FsTGVmdCgpIDogc2hhcGVPdXRzaWRlLT5zaGFwZUxvZ2ljYWxUb3Ao
KSk7Ci0gICAgICAgIC8vIEZJWE1FOiBCdWcgMTA2OTI4IFRoaXMgbmVlZHMgdG8gcHJvcGVybHkg
aGFuZGxlIHRoZSBtYXJnaW4gZm9yIGZsb2F0cyB3aXRoIHNoYXBlLW91dHNpZGUgZm9yIG5vbi1w
YWludCB0aW1lLgorICAgICAgICBpZiAoc2hhcGVPdXRzaWRlKQorICAgICAgICAgICAgcmV0dXJu
IGNoaWxkLT54KCk7CiAjZW5kaWYKIAogICAgICAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSkKQEAgLTc1MywxMyArNzQ1LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4g
Y2hpbGQtPngoKSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkLT5yZW5kZXJlcigpKTsKICAg
ICB9CiAgICAgICAgIAotICAgIExheW91dFVuaXQgeVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdN
YXJnaW4oY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxkLCBGbG9hdFJlbmRlcmluZ1N0YXRlIHJl
bmRlcmluZ1N0YXRlID0gRmxvYXRMYXlvdXQpIGNvbnN0CisgICAgTGF5b3V0VW5pdCB5UG9zaXRp
b25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjb25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQpIGNv
bnN0CiAgICAgewogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAgICAgRXhjbHVzaW9u
U2hhcGVPdXRzaWRlSW5mbyAqc2hhcGVPdXRzaWRlID0gY2hpbGQtPnJlbmRlcmVyKCktPmV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm8oKTsKLSAgICAgICAgaWYgKHJlbmRlcmluZ1N0YXRlID09IEZs
b2F0UGFpbnQgJiYgc2hhcGVPdXRzaWRlKQotICAgICAgICAgICAgcmV0dXJuIGNoaWxkLT55KCkg
LSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHNoYXBlT3V0c2lkZS0+c2hhcGVMb2dpY2Fs
VG9wKCkgOiBzaGFwZU91dHNpZGUtPnNoYXBlTG9naWNhbExlZnQoKSk7Ci0gICAgICAgIC8vIEZJ
WE1FOiBCdWcgMTA2OTI4IFRoaXMgbmVlZHMgdG8gcHJvcGVybHkgaGFuZGxlIHRoZSBtYXJnaW4g
Zm9yIGZsb2F0cyB3aXRoIHNoYXBlLW91dHNpZGUuCisgICAgICAgIGlmIChzaGFwZU91dHNpZGUp
CisgICAgICAgICAgICByZXR1cm4gY2hpbGQtPnkoKTsKICNlbmRpZgogCiAgICAgICAgIGlmIChp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAppbmRleCBiYmZiOTA2MjM3YTc0NTZhNjc0NjYyYWY3NDVhOTE3OWY0MmM5ZjRlLi5iNTE3
N2RiYjY1ZWEzMWUyMjRhNzYwZTAxNDdkOWIxZTg4OTgyN2U1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTYwNSw4ICsxNjA1LDggQEAgdm9pZCBSZW5kZXJCb3g6
Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW4KICAgICAgICAgaWYgKHYtPmxheW91dFN0YXRlRW5hYmxlZCgpICYmICFyZXBhaW50
Q29udGFpbmVyKSB7CiAgICAgICAgICAgICBMYXlvdXRTdGF0ZSogbGF5b3V0U3RhdGUgPSB2LT5s
YXlvdXRTdGF0ZSgpOwogICAgICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBsYXlvdXRTdGF0
ZS0+bV9wYWludE9mZnNldCArIGxvY2F0aW9uT2Zmc2V0KCk7Ci0gICAgICAgICAgICBpZiAoc3R5
bGUoKS0+aGFzSW5GbG93UG9zaXRpb24oKSAmJiBsYXllcigpKQotICAgICAgICAgICAgICAgIG9m
ZnNldCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAgICAgICAgICAg
aWYgKHN0eWxlKCktPmhhc1BhaW50T2Zmc2V0KCkgJiYgbGF5ZXIoKSkKKyAgICAgICAgICAgICAg
ICBvZmZzZXQgKz0gbGF5ZXIoKS0+cGFpbnRPZmZzZXQoKTsKICAgICAgICAgICAgIHRyYW5zZm9y
bVN0YXRlLm1vdmUob2Zmc2V0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
MTcxOCw4ICsxNzE4LDggQEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWlu
ZXIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBMYXlvdXRQb2ludCYgcG8KICAgICBBU1NFUlQobyA9
PSBjb250YWluZXIoKSk7CiAKICAgICBMYXlvdXRTaXplIG9mZnNldDsgICAgCi0gICAgaWYgKGlz
SW5GbG93UG9zaXRpb25lZCgpKQotICAgICAgICBvZmZzZXQgKz0gb2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb24oKTsKKyAgICBpZiAoaGFzUGFpbnRPZmZzZXQoKSkKKyAgICAgICAgb2Zmc2V0ICs9IHBh
aW50T2Zmc2V0KCk7CiAKICAgICBpZiAoIWlzSW5saW5lKCkgfHwgaXNSZXBsYWNlZCgpKSB7CiAg
ICAgICAgIGlmICghc3R5bGUoKS0+aGFzT3V0T2ZGbG93UG9zaXRpb24oKSAmJiBvLT5oYXNDb2x1
bW5zKCkpIHsKQEAgLTE4NTYsOCArMTg1Niw4IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhCiAg
ICAgICAgICAgICAgICAgcmVjdCA9IGxheWVyKCktPnRyYW5zZm9ybSgpLT5tYXBSZWN0KHBpeGVs
U25hcHBlZEludFJlY3QocmVjdCkpOwogCiAgICAgICAgICAgICAvLyBXZSBjYW4ndCB0cnVzdCB0
aGUgYml0cyBvbiBSZW5kZXJPYmplY3QsIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsZWQgd2hp
bGUgcmUtcmVzb2x2aW5nIHN0eWxlLgotICAgICAgICAgICAgaWYgKHN0eWxlVG9Vc2UtPmhhc0lu
Rmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgICAgICByZWN0Lm1vdmUobGF5
ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSk7CisgICAgICAgICAgICBpZiAoc3R5bGVU
b1VzZS0+aGFzUGFpbnRPZmZzZXQoKSAmJiBsYXllcigpKQorICAgICAgICAgICAgICAgIHJlY3Qu
bW92ZShsYXllcigpLT5wYWludE9mZnNldCgpKTsKIAogICAgICAgICAgICAgcmVjdC5tb3ZlQnko
bG9jYXRpb24oKSk7CiAgICAgICAgICAgICByZWN0Lm1vdmUobGF5b3V0U3RhdGUtPm1fcGFpbnRP
ZmZzZXQpOwpAQCAtMTkwMSwxMiArMTkwMSwxMiBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVJl
Y3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YQog
CiAgICAgaWYgKHBvc2l0aW9uID09IEFic29sdXRlUG9zaXRpb24gJiYgby0+aXNJbkZsb3dQb3Np
dGlvbmVkKCkgJiYgby0+aXNSZW5kZXJJbmxpbmUoKSkKICAgICAgICAgdG9wTGVmdCArPSB0b1Jl
bmRlcklubGluZShvKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb25lZElubGluZSh0aGlzKTsKLSAg
ICBlbHNlIGlmICgocG9zaXRpb24gPT0gUmVsYXRpdmVQb3NpdGlvbiB8fCBwb3NpdGlvbiA9PSBT
dGlja3lQb3NpdGlvbikgJiYgbGF5ZXIoKSkgeworICAgIGVsc2UgaWYgKHN0eWxlVG9Vc2UtPmhh
c1BhaW50T2Zmc2V0KCkgJiYgbGF5ZXIoKSkgewogICAgICAgICAvLyBBcHBseSB0aGUgcmVsYXRp
dmUgcG9zaXRpb24gb2Zmc2V0IHdoZW4gaW52YWxpZGF0aW5nIGEgcmVjdGFuZ2xlLiAgVGhlIGxh
eWVyCiAgICAgICAgIC8vIGlzIHRyYW5zbGF0ZWQsIGJ1dCB0aGUgcmVuZGVyIGJveCBpc24ndCwg
c28gd2UgbmVlZCB0byBkbyB0aGlzIHRvIGdldCB0aGUKICAgICAgICAgLy8gcmlnaHQgZGlydHkg
cmVjdC4gIFNpbmNlIHRoaXMgaXMgY2FsbGVkIGZyb20gUmVuZGVyT2JqZWN0OjpzZXRTdHlsZSwg
dGhlIHJlbGF0aXZlIHBvc2l0aW9uCiAgICAgICAgIC8vIGZsYWcgb24gdGhlIFJlbmRlck9iamVj
dCBoYXMgYmVlbiBjbGVhcmVkLCBzbyB1c2UgdGhlIG9uZSBvbiB0aGUgc3R5bGUoKS4KLSAgICAg
ICAgdG9wTGVmdCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAgICAg
ICB0b3BMZWZ0ICs9IGxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAgICAgfQogICAgIAogICAgIGlm
IChwb3NpdGlvbiAhPSBBYnNvbHV0ZVBvc2l0aW9uICYmIHBvc2l0aW9uICE9IEZpeGVkUG9zaXRp
b24gJiYgby0+aGFzQ29sdW1ucygpICYmIG8tPmlzQmxvY2tGbG93KCkpIHsKQEAgLTQyNjMsNyAr
NDI2Myw3IEBAIExheW91dFJlY3QgUmVuZGVyQm94OjpsYXlvdXRPdmVyZmxvd1JlY3RGb3JQcm9w
YWdhdGlvbihSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpCiAgICAgICAgIHJlY3QudW5pdGUobGF5
b3V0T3ZlcmZsb3dSZWN0KCkpOwogCiAgICAgYm9vbCBoYXNUcmFuc2Zvcm0gPSBoYXNMYXllcigp
ICYmIGxheWVyKCktPnRyYW5zZm9ybSgpOwotICAgIGlmIChpc0luRmxvd1Bvc2l0aW9uZWQoKSB8
fCBoYXNUcmFuc2Zvcm0pIHsKKyAgICBpZiAoaGFzUGFpbnRPZmZzZXQoKSB8fCBoYXNUcmFuc2Zv
cm0pIHsKICAgICAgICAgLy8gSWYgd2UgYXJlIHJlbGF0aXZlbHkgcG9zaXRpb25lZCBvciBpZiB3
ZSBoYXZlIGEgdHJhbnNmb3JtLCB0aGVuIHdlIGhhdmUgdG8gY29udmVydAogICAgICAgICAvLyB0
aGlzIHJlY3RhbmdsZSBpbnRvIHBoeXNpY2FsIGNvb3JkaW5hdGVzLCBhcHBseSByZWxhdGl2ZSBw
b3NpdGlvbmluZyBhbmQgdHJhbnNmb3JtcwogICAgICAgICAvLyB0byBpdCwgYW5kIHRoZW4gY29u
dmVydCBpdCBiYWNrLgpAQCAtNDI3Miw4ICs0MjcyLDggQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6
OmxheW91dE92ZXJmbG93UmVjdEZvclByb3BhZ2F0aW9uKFJlbmRlclN0eWxlKiBwYXJlbnRTdHls
ZSkKICAgICAgICAgaWYgKGhhc1RyYW5zZm9ybSkKICAgICAgICAgICAgIHJlY3QgPSBsYXllcigp
LT5jdXJyZW50VHJhbnNmb3JtKCkubWFwUmVjdChyZWN0KTsKIAotICAgICAgICBpZiAoaXNJbkZs
b3dQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICByZWN0Lm1vdmUob2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb24oKSk7CisgICAgICAgIGlmIChoYXNQYWludE9mZnNldCgpKQorICAgICAgICAgICAgcmVj
dC5tb3ZlKHBhaW50T2Zmc2V0KCkpOwogICAgICAgICAKICAgICAgICAgLy8gTm93IHdlIG5lZWQg
dG8gZmxpcCBiYWNrLgogICAgICAgICBmbGlwRm9yV3JpdGluZ01vZGUocmVjdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggNjA4ZmM3NThkODExZWMwMjY0NWQwYTZhNDI0
YTU1MjRhNWI1NDVlNi4uMGUyNTk1MzhmNzE3NGI1NDdkMTRlZDRhZTZlNjU3NTk3OGI1ZjMxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNDksNyArNDksNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBoYXNBdXRvWkluZGV4IG9ubHkgcmV0dXJucyB0cnVlIGlmIHRoZSBlbGVt
ZW50IGlzIHBvc2l0aW9uZWQgb3IgYSBmbGV4LWl0ZW0gc2luY2UKICAgICAvLyBwb3NpdGlvbjpz
dGF0aWMgZWxlbWVudHMgdGhhdCBhcmUgbm90IGZsZXgtaXRlbXMgZ2V0IHRoZWlyIHotaW5kZXgg
Y29lcmNlZCB0byBhdXRvLgotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gaXNSb290KCkgfHwgaXNQb3NpdGlvbmVkKCkgfHwgY3JlYXRlc0dy
b3VwKCkgfHwgaGFzQ2xpcFBhdGgoKSB8fCBoYXNPdmVyZmxvd0NsaXAoKSB8fCBoYXNUcmFuc2Zv
cm0oKSB8fCBoYXNIaWRkZW5CYWNrZmFjZSgpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBzdHlsZSgp
LT5zcGVjaWZpZXNDb2x1bW5zKCkgfHwgIXN0eWxlKCktPmhhc0F1dG9aSW5kZXgoKTsgfQorICAg
IHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gaXNS
b290KCkgfHwgaXNQb3NpdGlvbmVkKCkgfHwgY3JlYXRlc0dyb3VwKCkgfHwgaGFzQ2xpcFBhdGgo
KSB8fCBoYXNPdmVyZmxvd0NsaXAoKSB8fCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNIaWRkZW5CYWNr
ZmFjZSgpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBzdHlsZSgpLT5zcGVjaWZpZXNDb2x1bW5zKCkg
fHwgIXN0eWxlKCktPmhhc0F1dG9aSW5kZXgoKSB8fCAoc3R5bGUoKS0+c2hhcGVPdXRzaWRlKCkg
JiYgaXNGbG9hdGluZygpKTsgfQogCiAgICAgLy8gVXNlIHRoaXMgd2l0aCBjYXV0aW9uISBObyB0
eXBlIGNoZWNraW5nIGlzIGRvbmUhCiAgICAgUmVuZGVyQm94KiBmaXJzdENoaWxkQm94KCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcAppbmRleCA4ODU4ZjBlMmE3ZGVhM2M0MTZhNWVjMDM4NDMwNzZjN2JlOThmOTJkLi5mNDVh
MDc2NDYxN2FjMzhmY2JmODBkMmQwM2Q4MjVhMjU2OTdkNGU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTUzNCw2ICs1MzQs
MjEgQEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6b2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb24oKSBjb25zdAogICAgIHJldHVybiBMYXlvdXRTaXplKCk7CiB9CiAKK0xheW91dFNpemUg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50T2Zmc2V0KCkgY29uc3QKK3sKKyAgICBMYXlvdXRT
aXplIG9mZnNldCA9IG9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CisKKyNpZiBFTkFCTEUoQ1NT
X0VYQ0xVU0lPTlMpCisgICAgaWYgKGlzQm94KCkgJiYgaXNGbG9hdGluZygpKSB7CisgICAgICAg
IEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8qIHNoYXBlT3V0c2lkZSA9IHRvUmVuZGVyQm94KHRo
aXMpLT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCk7CisgICAgICAgIGlmIChzaGFwZU91dHNp
ZGUpCisgICAgICAgICAgICBvZmZzZXQgLT0gc2hhcGVPdXRzaWRlLT5zaGFwZUxvZ2ljYWxPZmZz
ZXQoKTsKKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiBvZmZzZXQ7Cit9CisKIExheW91dFVu
aXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om9mZnNldExlZnQoKSBjb25zdAogewogICAgIC8vIE5v
dGUgdGhhdCBSZW5kZXJJbmxpbmUgYW5kIFJlbmRlckJveCBvdmVycmlkZSB0aGlzIHRvIHBhc3Mg
YSBkaWZmZXJlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmgKaW5kZXggNjVmZTA2ZmIzZTE2MmUyNTM0ODUwMDE4MzgxYWE3YjFkZTA3MmFhMS4u
YTMyZWQxZTNkNDUxMTQyN2MyOGMzYmEzY2E5MmIyMWM4YmZhMjcyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKQEAgLTcwLDYgKzcwLDcg
QEAgcHVibGljOgogICAgIExheW91dFNpemUgc3RpY2t5UG9zaXRpb25Mb2dpY2FsT2Zmc2V0KCkg
Y29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHN0aWNr
eVBvc2l0aW9uT2Zmc2V0KCkgOiBzdGlja3lQb3NpdGlvbk9mZnNldCgpLnRyYW5zcG9zZWRTaXpl
KCk7IH0KIAogICAgIExheW91dFNpemUgb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSBjb25zdDsK
KyAgICBMYXlvdXRTaXplIHBhaW50T2Zmc2V0KCkgY29uc3Q7CiAKICAgICAvLyBJRSBleHRlbnNp
b25zLiBVc2VkIHRvIGNhbGN1bGF0ZSBvZmZzZXRXaWR0aC9IZWlnaHQuICBPdmVycmlkZGVuIGJ5
IGlubGluZXMgKFJlbmRlckZsb3cpCiAgICAgLy8gdG8gcmV0dXJuIHRoZSByZW1haW5pbmcgd2lk
dGggb24gYSBnaXZlbiBsaW5lIChhbmQgdGhlIGhlaWdodCBvZiBhIHNpbmdsZSBsaW5lKS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggOTU4Y2FkMmRlZTZk
MWFjM2UwMzU0Mjc2NjQ4MjEzMjU4NzYzYjBmZC4uZWIxMzBjODU5NjA3ZWQ4OTE2NmMyMGFkNzky
YmM2ZjgwMzUxNTU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAKQEAgLTEwMTIsNyArMTAxMiw3IEBAIExheW91dFJlY3QgUmVuZGVySW5saW5lOjpjbGlwcGVk
T3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBpZiAoaW5saW5lRmxvdy0+c3R5bGUoKS0+
aGFzSW5GbG93UG9zaXRpb24oKSAmJiBpbmxpbmVGbG93LT5oYXNMYXllcigpKQotICAgICAgICAg
ICAgcmVwYWludFJlY3QubW92ZSh0b1JlbmRlcklubGluZShpbmxpbmVGbG93KS0+bGF5ZXIoKS0+
b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSk7CisgICAgICAgICAgICByZXBhaW50UmVjdC5tb3Zl
KHRvUmVuZGVySW5saW5lKGlubGluZUZsb3cpLT5sYXllcigpLT5wYWludE9mZnNldCgpKTsKICAg
ICB9CiAKICAgICBMYXlvdXRVbml0IG91dGxpbmVTaXplID0gc3R5bGUoKS0+b3V0bGluZVNpemUo
KTsKQEAgLTEwNTksNyArMTA1OSw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZv
clJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAgICAgICAg
IGlmICh2LT5sYXlvdXRTdGF0ZUVuYWJsZWQoKSAmJiAhcmVwYWludENvbnRhaW5lcikgewogICAg
ICAgICAgICAgTGF5b3V0U3RhdGUqIGxheW91dFN0YXRlID0gdi0+bGF5b3V0U3RhdGUoKTsKICAg
ICAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0g
ICAgICAgICAgICAgICAgcmVjdC5tb3ZlKGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9u
KCkpOworICAgICAgICAgICAgICAgIHJlY3QubW92ZShsYXllcigpLT5wYWludE9mZnNldCgpKTsK
ICAgICAgICAgICAgIHJlY3QubW92ZShsYXlvdXRTdGF0ZS0+bV9wYWludE9mZnNldCk7CiAgICAg
ICAgICAgICBpZiAobGF5b3V0U3RhdGUtPm1fY2xpcHBlZCkKICAgICAgICAgICAgICAgICByZWN0
LmludGVyc2VjdChsYXlvdXRTdGF0ZS0+bV9jbGlwUmVjdCk7CkBAIC0xMDkyLDcgKzEwOTIsNyBA
QCB2b2lkIFJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDbwogICAgICAgICAvLyBpcyB0cmFuc2xhdGVkLCBidXQg
dGhlIHJlbmRlciBib3ggaXNuJ3QsIHNvIHdlIG5lZWQgdG8gZG8gdGhpcyB0byBnZXQgdGhlCiAg
ICAgICAgIC8vIHJpZ2h0IGRpcnR5IHJlY3QuIFNpbmNlIHRoaXMgaXMgY2FsbGVkIGZyb20gUmVu
ZGVyT2JqZWN0OjpzZXRTdHlsZSwgdGhlIHJlbGF0aXZlIG9yIHN0aWNreSBwb3NpdGlvbgogICAg
ICAgICAvLyBmbGFnIG9uIHRoZSBSZW5kZXJPYmplY3QgaGFzIGJlZW4gY2xlYXJlZCwgc28gdXNl
IHRoZSBvbmUgb24gdGhlIHN0eWxlKCkuCi0gICAgICAgIHRvcExlZnQgKz0gbGF5ZXIoKS0+b2Zm
c2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICAgICAgdG9wTGVmdCArPSBsYXllcigpLT5wYWlu
dE9mZnNldCgpOwogICAgIH0KICAgICAKICAgICAvLyBGSVhNRTogV2UgaWdub3JlIHRoZSBsaWdo
dHdlaWdodCBjbGlwcGluZyByZWN0IHRoYXQgY29udHJvbHMgdXNlLCBzaW5jZSBpZiB8b3wgaXMg
aW4gbWlkLWxheW91dCwKQEAgLTExNDQsNyArMTE0NCw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpt
YXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250CiAgICAgICAgICAgICBMYXlvdXRTdGF0ZSogbGF5b3V0U3RhdGUgPSB2LT5sYXlvdXRTdGF0
ZSgpOwogICAgICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBsYXlvdXRTdGF0ZS0+bV9wYWlu
dE9mZnNldDsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYm
IGxheWVyKCkpCi0gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvcklu
Rmxvd1Bvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPnBhaW50
T2Zmc2V0KCk7CiAgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IDQxOWE5ZTBjNzM3NmEzOTllNTFhMjk2ZjgyNzQwNjgzZDk1ZWY4M2Uu
LjM0ZWI2YjhlZDE1YThlYThjMzY1NzlkNTIzMmRkYzFlODFkNzAyMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTE4NSwxMyArMTE4NSwxMyBAQCBib29s
IFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uKCkKICAgICB9CiAgICAgCiAgICAgYm9v
bCBwb3NpdGlvbk9yT2Zmc2V0Q2hhbmdlZCA9IGZhbHNlOwotICAgIGlmIChyZW5kZXJlcigpLT5p
c0luRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAgICBMYXlvdXRTaXplIG5ld09mZnNldCA9IHRv
UmVuZGVyQm94TW9kZWxPYmplY3QocmVuZGVyZXIoKSktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9u
KCk7Ci0gICAgICAgIHBvc2l0aW9uT3JPZmZzZXRDaGFuZ2VkID0gbmV3T2Zmc2V0ICE9IG1fb2Zm
c2V0Rm9ySW5GbG93UG9zaXRpb247Ci0gICAgICAgIG1fb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24g
PSBuZXdPZmZzZXQ7Ci0gICAgICAgIGxvY2FsUG9pbnQubW92ZShtX29mZnNldEZvckluRmxvd1Bv
c2l0aW9uKTsKKyAgICBpZiAocmVuZGVyZXIoKS0+aGFzUGFpbnRPZmZzZXQoKSkgeworICAgICAg
ICBMYXlvdXRTaXplIG5ld09mZnNldCA9IHRvUmVuZGVyQm94TW9kZWxPYmplY3QocmVuZGVyZXIo
KSktPnBhaW50T2Zmc2V0KCk7CisgICAgICAgIHBvc2l0aW9uT3JPZmZzZXRDaGFuZ2VkID0gbmV3
T2Zmc2V0ICE9IG1fcGFpbnRPZmZzZXQ7CisgICAgICAgIG1fcGFpbnRPZmZzZXQgPSBuZXdPZmZz
ZXQ7CisgICAgICAgIGxvY2FsUG9pbnQubW92ZShtX3BhaW50T2Zmc2V0KTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBtX29mZnNldEZvckluRmxvd1Bvc2l0aW9uID0gTGF5b3V0U2l6ZSgpOworICAg
ICAgICBtX3BhaW50T2Zmc2V0ID0gTGF5b3V0U2l6ZSgpOwogICAgIH0KIAogICAgIC8vIEZJWE1F
OiBXZSdkIHJlYWxseSBsaWtlIHRvIGp1c3QgZ2V0IHJpZCBvZiB0aGUgY29uY2VwdCBvZiBhIGxh
eWVyIHJlY3RhbmdsZSBhbmQgcmVseSBvbiB0aGUgcmVuZGVyZXJzLgpAQCAtNDU5OCw3ICs0NTk4
LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0
c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIEMKICAgICAgICAgY2xpcFJlY3RzLnNldFBvc0Ns
aXBSZWN0KGNsaXBSZWN0cy5maXhlZENsaXBSZWN0KCkpOwogICAgICAgICBjbGlwUmVjdHMuc2V0
T3ZlcmZsb3dDbGlwUmVjdChjbGlwUmVjdHMuZml4ZWRDbGlwUmVjdCgpKTsKICAgICAgICAgY2xp
cFJlY3RzLnNldEZpeGVkKHRydWUpOwotICAgIH0gZWxzZSBpZiAocmVuZGVyZXIoKS0+c3R5bGUo
KS0+aGFzSW5GbG93UG9zaXRpb24oKSkKKyAgICB9IGVsc2UgaWYgKHJlbmRlcmVyKCktPnN0eWxl
KCktPmhhc1BhaW50T2Zmc2V0KCkpCiAgICAgICAgIGNsaXBSZWN0cy5zZXRQb3NDbGlwUmVjdChj
bGlwUmVjdHMub3ZlcmZsb3dDbGlwUmVjdCgpKTsKICAgICBlbHNlIGlmIChyZW5kZXJlcigpLT5z
dHlsZSgpLT5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb24pCiAgICAgICAgIGNsaXBSZWN0
cy5zZXRPdmVyZmxvd0NsaXBSZWN0KGNsaXBSZWN0cy5wb3NDbGlwUmVjdCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggMGI2NzQ1MzNlNmQ1MmQyNjViYzA1Yjlh
MzdjYTM3MjJiMzZmMjhkZi4uNjk3MTFhM2VjMzQ1ZWQ2ZTA3ZTg5OWI1YWU5ZDljYjI4ZjZkYWFi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQyNSw3ICs0MjUs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVCbGVuZE1vZGUoKTsKICNlbmRpZgogCi0gICAg
Y29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biBtX29mZnNldEZvckluRmxvd1Bvc2l0aW9uOyB9CisgICAgY29uc3QgTGF5b3V0U2l6ZSYgcGFp
bnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3BhaW50T2Zmc2V0OyB9CiAKICAgICB2b2lkIGNs
ZWFyQ2xpcFJlY3RzSW5jbHVkaW5nRGVzY2VuZGFudHMoQ2xpcFJlY3RzVHlwZSB0eXBlVG9DbGVh
ciA9IEFsbENsaXBSZWN0VHlwZXMpOwogICAgIHZvaWQgY2xlYXJDbGlwUmVjdHMoQ2xpcFJlY3Rz
VHlwZSB0eXBlVG9DbGVhciA9IEFsbENsaXBSZWN0VHlwZXMpOwpAQCAtMTEyNSw3ICsxMTI1LDcg
QEAgcHJvdGVjdGVkOgogICAgIExheW91dFJlY3QgbV9vdXRsaW5lQm94OwogCiAgICAgLy8gT3Vy
IGN1cnJlbnQgcmVsYXRpdmUgcG9zaXRpb24gb2Zmc2V0LgotICAgIExheW91dFNpemUgbV9vZmZz
ZXRGb3JJbkZsb3dQb3NpdGlvbjsKKyAgICBMYXlvdXRTaXplIG1fcGFpbnRPZmZzZXQ7CiAKICAg
ICAvLyBPdXIgKHgseSkgY29vcmRpbmF0ZXMgYXJlIGluIG91ciBwYXJlbnQgbGF5ZXIncyBjb29y
ZGluYXRlIHNwYWNlLgogICAgIExheW91dFBvaW50IG1fdG9wTGVmdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAyN2E3YTQ1ZGFmZmJmOWVjY2ZlODg2ZjczYzBj
NzA5ZDQ2NzI4M2FiLi41MGZhYTZjZjM5MDQ2Yzc4OTlhYzUzMmZmODRiOWZjMWJkMjZkN2ZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC01MjUsNiArNTI1LDE2
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9iaXRmaWVsZHMuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCk7IH0gLy8gYWJzb2x1dGUg
b3IgZml4ZWQgcG9zaXRpb25pbmcKICAgICBib29sIGlzSW5GbG93UG9zaXRpb25lZCgpIGNvbnN0
IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVsUG9zaXRpb25lZCgpIHx8IG1fYml0ZmllbGRzLmlz
U3RpY2t5UG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0aXZlIG9yIHN0aWNreSBwb3NpdGlvbmluZwor
ICAgIGJvb2wgaGFzUGFpbnRPZmZzZXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgYm9vbCBwb3Np
dGlvbmVkID0gaXNJbkZsb3dQb3NpdGlvbmVkKCk7CisjaWYgRU5BQkxFKENTU19FWENMVVNJT05T
KQorICAgICAgICAvLyBTaGFwZSBvdXRzaWRlIG9uIGEgZmxvYXQgY2FuIHJlcG9zaXRpb24gdGhl
IGZsb2F0IGluIG11Y2ggdGhlCisgICAgICAgIC8vIHNhbWUgd2F5IGFzIHJlbGF0aXZlIHBvc2l0
aW9uaW5nLCBzbyB0cmVhdCBpdCBhcyBzdWNoLgorICAgICAgICBwb3NpdGlvbmVkID0gcG9zaXRp
b25lZCB8fCAobV9iaXRmaWVsZHMuZmxvYXRpbmcoKSAmJiBtX2JpdGZpZWxkcy5pc0JveCgpICYm
IHN0eWxlKCktPnNoYXBlT3V0c2lkZSgpKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gcG9zaXRp
b25lZDsKKyAgICB9CiAgICAgYm9vbCBpc1JlbFBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBt
X2JpdGZpZWxkcy5pc1JlbFBvc2l0aW9uZWQoKTsgfSAvLyByZWxhdGl2ZSBwb3NpdGlvbmluZwog
ICAgIGJvb2wgaXNTdGlja3lQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMu
aXNTdGlja3lQb3NpdGlvbmVkKCk7IH0KICAgICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYml0ZmllbGRzLmlzUG9zaXRpb25lZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGY1ZTVjZDM3Y2JmZDlmZTgzOGQxMDQy
OTc0NGFiMzVjOWNkZDhlYmMuLjQzNmU5YjNlNDI0MjJmMjhmNmQ1OGUwOGUwYmJkOTQwNzI4NjIx
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC00NjAsNiArNDYwLDE0IEBAIHB1YmxpYzoKICAgICBFUG9zaXRpb24gcG9zaXRpb24oKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxFUG9zaXRpb24+KG5vbmluaGVyaXRlZF9mbGFncy5fcG9z
aXRpb24pOyB9CiAgICAgYm9vbCBoYXNPdXRPZkZsb3dQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IHBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbiB8fCBwb3NpdGlvbigpID09IEZpeGVkUG9z
aXRpb247IH0KICAgICBib29sIGhhc0luRmxvd1Bvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gcG9z
aXRpb24oKSA9PSBSZWxhdGl2ZVBvc2l0aW9uIHx8IHBvc2l0aW9uKCkgPT0gU3RpY2t5UG9zaXRp
b247IH0KKyAgICBib29sIGhhc1BhaW50T2Zmc2V0KCkgY29uc3QKKyAgICB7CisgICAgICAgIGJv
b2wgcGFpbnRPZmZzZXQgPSBoYXNJbkZsb3dQb3NpdGlvbigpOworI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKKyAgICAgICAgcGFpbnRPZmZzZXQgPSBwYWludE9mZnNldCB8fCAoaXNGbG9hdGlu
ZygpICYmIHNoYXBlT3V0c2lkZSgpKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gcGFpbnRPZmZz
ZXQ7CisgICAgfQogICAgIGJvb2wgaGFzVmlld3BvcnRDb25zdHJhaW5lZFBvc2l0aW9uKCkgY29u
c3QgeyByZXR1cm4gcG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uIHx8IHBvc2l0aW9uKCkgPT0g
U3RpY2t5UG9zaXRpb247IH0KICAgICBFRmxvYXQgZmxvYXRpbmcoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxFRmxvYXQ+KG5vbmluaGVyaXRlZF9mbGFncy5fZmxvYXRpbmcpOyB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA4MDZjN2U5Yzc0ODg1ZTM0ZTlhOTU5M2VmNDg2NGE0ZGEzMzE1MTQ1Li4yYmU3ZGY3MjFj
MTYxOGNkNWM1NjU3NzcxOTBiZTk2M2VmMDZiMGFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTMtMDItMDcgIEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBhZG9iZS5jb20+CisKKyAgICAgICAg
W0NTUyBFeGNsdXNpb25zXSBIYW5kbGUgc2hhcGUtb3V0c2lkZSBjaGFuZ2luZyBhIGZsb2F0J3Mg
b3ZlcmhhbmcgYmVoYXZpb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNjkyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgaXMgYWxzbyB0ZXN0ZWQgYnkgdGhlIGV4aXN0aW5nIHRlc3RzIGZvciBz
aGFwZSBvdXRzaWRlIG9uIGZsb2F0cyBwb3NpdGlvbmluZy4KKworICAgICAgICAqIGZhc3QvZXhj
bHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFu
Zy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
b3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3ZlcmhhbmcuaHRtbDogQWRkZWQu
CisKIDIwMTMtMDItMDcgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgR1RLIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0
cy1vdmVyaGFuZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzNhYzg2YzUzMTRmM2U4MDEzMjk5YzljYWM3YzNmNTA4MWM3OTVi
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1v
dXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsNDQgQEAKKzxodG1sPgorICA8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAj
dG9wIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB3aWR0aDogMjAwcHg7
CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxv
dzsKKyAgICAgIH0KKyAgICAgICNzaGFwZSB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBy
aWdodDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
Ymx1ZTsKKyAgICAgIH0KKyAgICAgICNmbG9hdCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgZmxvYXQ6IHJpZ2h0OworICAgICAgfQorICAg
ICAgI2JvdHRvbSB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB3
aWR0aDogMjAwcHg7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4K
KyAgICA8aDE+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNjkyNyI+QnVnIDEwNjkyNzwvYT46IFtDU1MgRXhjbHVzaW9uc10gSGFuZGxlIHNoYXBlLW91
dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2aW9yPC9oMT4KKyAgICA8aDI+
WW91IHNob3VsZCBzZWUgYSB5ZWxsb3cgc3F1YXJlIHRvIHRoZSBsZWZ0IG9mIGEgYmx1ZSBzcXVh
cmUsIHdpdGggdGhlIGJsdWUgc3F1YXJlIGNvdmVyaW5nIHRoZSB0ZXh0IGluIHRoZSB5ZWxsb3cg
YXJlYS4gVGhlIGxvd2VyIGdyZWVuIHJlY3RhbmdsZSBzaG91bGQgaGF2ZSB0ZXh0IHdyYXBwaW5n
IGFyb3VuZCBhIHNxdWFyZSBhcmVhIG9uIHRoZSByaWdodCBhcyBpZiB0aGVyZSBpcyBhIGZsb2F0
IHRoZXJlLjwvaDI+CisgICAgPGRpdiBpZD0idG9wIj4KKyAgICAgIFlvdSBzaG91bGQgb25seSBi
ZSBhYmxlIHRvIHNlZSBwYXJ0IG9mIHRoaXMgdGV4dC4gSWYgeW91IGNhbiByZWFkIGFsbCBvZiB0
aGlzLCB0aGVuIGl0IGlzbid0IHdvcmtpbmcuCisgICAgICA8ZGl2IGlkPSJzaGFwZSI+CisgICAg
ICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJib3R0b20iPgorICAgICAgPGRpdiBp
ZD0iZmxvYXQiPgorICAgICA8L2Rpdj4KKyAgICAgVGhlIGZsb2F0IGlzIGRlZmluZWQgaGVyZSwg
YnV0IHRoZSBzaGFwZSBwdXNoZXMgaXQgaW50byB0aGUgYWJvdmUgZGl2LiBOb3RlIHRoYXQgdGhl
IGV4Y2x1c2lvbiBiZWhhdmlvciBzdGF5cyB3aXRoIHRoZSBzaGFwZSBhbmQgbm90IHdpdGggdGhl
IGZsb2F0LgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRz
aWRlLWZsb2F0cy1vdmVyaGFuZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2FmZTM1ZDBlNmE0ZjBjMjRhMjg1Y2NiNzAyNjM3NjMxMzNiMTdkZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZs
b2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy5odG1sCkBAIC0wLDAgKzEsNDAgQEAK
KzxodG1sPgorICA8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0Vu
YWJsZWQodHJ1ZSk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgI3RvcCB7Cisg
ICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgICAgfQorICAgICAgI2Zsb2F0IHsKKyAgICAgICAg
cG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgICAgIGZsb2F0OiByaWdodDsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1v
dXRzaWRlOiByZWN0YW5nbGUoMHB4LCAxMDBweCwgMTAwcHgsIDEwMHB4KTsKKyAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIH0KKyAgICAgICNib3R0b20geworICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgfQor
ICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGgxPjxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5MjciPkJ1ZyAxMDY5Mjc8L2E+
OiBbQ1NTIEV4Y2x1c2lvbnNdIEhhbmRsZSBzaGFwZS1vdXRzaWRlIGNoYW5naW5nIGEgZmxvYXQn
cyBvdmVyaGFuZyBiZWhhdmlvcjwvaDE+CisgICAgPGgyPllvdSBzaG91bGQgc2VlIGEgeWVsbG93
IHNxdWFyZSB0byB0aGUgbGVmdCBvZiBhIGJsdWUgc3F1YXJlLCB3aXRoIHRoZSBibHVlIHNxdWFy
ZSBjb3ZlcmluZyB0aGUgdGV4dCBpbiB0aGUgeWVsbG93IGFyZWEuIFRoZSBsb3dlciBncmVlbiBy
ZWN0YW5nbGUgc2hvdWxkIGhhdmUgdGV4dCB3cmFwcGluZyBhcm91bmQgYSBzcXVhcmUgYXJlYSBv
biB0aGUgcmlnaHQgYXMgaWYgdGhlcmUgaXMgYSBmbG9hdCB0aGVyZS48L2gyPgorICAgIDxkaXYg
aWQ9InRvcCI+CisgICAgICBZb3Ugc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBzZWUgcGFydCBvZiB0
aGlzIHRleHQuIElmIHlvdSBjYW4gcmVhZCBhbGwgb2YgdGhpcywgdGhlbiBpdCBpc24ndCB3b3Jr
aW5nLgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImJvdHRvbSI+CisgICAgICA8ZGl2IGlkPSJm
bG9hdCI+CisgICAgIDwvZGl2PgorICAgICBUaGUgZmxvYXQgaXMgZGVmaW5lZCBoZXJlLCBidXQg
dGhlIHNoYXBlIHB1c2hlcyBpdCBpbnRvIHRoZSBhYm92ZSBkaXYuIE5vdGUgdGhhdCB0aGUgZXhj
bHVzaW9uIGJlaGF2aW9yIHN0YXlzIHdpdGggdGhlIHNoYXBlIGFuZCBub3Qgd2l0aCB0aGUgZmxv
YXQuCisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KKwo=
</data>
<flag name="review"
          id="206914"
          type_id="1"
          status="+"
          setter="jchaffraix"
    />
    <flag name="commit-queue"
          id="206915"
          type_id="3"
          status="-"
          setter="jchaffraix"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187632</attachid>
            <date>2013-02-11 12:01:39 -0800</date>
            <delta_ts>2013-02-11 14:06:45 -0800</delta_ts>
            <desc>Final Patch</desc>
            <filename>bug-106927-20130211115810.patch</filename>
            <type>text/plain</type>
            <size>37989</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk0OTM2MGNlYzM4MTNm
OGNkNmVmYzI3Njg3Y2RmYWI0NzlhNzkyZC4uYWI5OTk3MGZmMTVhY2Q0MjhhNWU4YWU4NzE1NGQ2
M2ZiNDY1N2JlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEzLTAyLTExICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2
aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHRoZSBwb3NpdGlvbiBvbiBhIHNoYXBlIG91dHNpZGUgY2F1c2VzIGEgZmxvYXQgdG8gc3BpbGwg
b3V0IGludG8KKyAgICAgICAgYW5vdGhlciBibG9jayB0aGFuIGl0J3MgY29udGFpbmVyLCBpdCB3
YXMgbm90IGJlaW5nIGRyYXduIGNvcnJlY3RseS4gSXQKKyAgICAgICAgYmVjYW1lIGFwcGFyZW50
IHRoYXQgaW4gb3JkZXIgdG8gZml4IHRoaXMgcHJvcGVybHksIHRoZSBhcHByb2FjaCB0bworICAg
ICAgICBwb3NpdGlvbmluZyBzaGFwZSBvdXRzaWRlcyBhbmQgZmxvYXRzIG5lZWRlZCB0byBiZSBj
aGFuZ2VkLiBUaGUgbmV3CisgICAgICAgIGFwcHJvYWNoIGFsc28gZml4ZXMgc29tZSBvdGhlciBv
dXRzdGFuZGluZyBpc3N1ZXMsIGxpa2UgaGl0IGRldGVjdGlvbi4KKworICAgICAgICBXaGVuIGEg
ZmxvYXQgaGFzIGEgc2hhcGUgb3V0c2lkZSwgaW5saW5lIGFuZCBmbG9hdCBsYXlvdXQgaGFwcGVu
cworICAgICAgICB1c2luZyB0aGUgZXhjbHVzaW9uIHNoYXBlIGJvdW5kcyBpbnN0ZWFkIG9mIHRo
ZSBmbG9hdCdzIGJveC4gIFRoZQorICAgICAgICBlZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IHRoZSBm
bG9hdCBpdHNlbGYgbm8gbG9uZ2VyIGhhcyBhbnkgZWZmZWN0IG9uCisgICAgICAgIGxheW91dCwg
Ym90aCB3aXRoIHJlc3BlY3QgdG8gcG9zaXRpb25pbmcgb2YgdGhlIGZsb2F0J3Mgc2libGluZ3Mg
YXMKKyAgICAgICAgd2VsbCBhcyBwb3NpdGlvbmluZyB0aGUgZmxvYXQncyBib3guIFRoaXMgbWVh
bnMgdGhhdCB3aGVuIHRoZSBmbG9hdCBpcworICAgICAgICBwb3NpdGlvbmVkLCBpdCBpcyB0aGUg
c2hhcGUncyBib3ggdGhhdCBtdXN0IG9iZXkgdGhlIHBvc2l0aW9uaW5nIHJ1bGVzCisgICAgICAg
IGZvciBmbG9hdHMuIFdoZW4gdGhlIHNoYXBlIGlzIGdpdmVuIGEgcG9zaXRpb24gcmVsYXRpdmUg
dG8gdGhlIGZsb2F0J3MKKyAgICAgICAgYm94LCB0aGUgcnVsZXMgZm9yIGZsb2F0IHBvc2l0aW9u
aW5nIGRldGVybWluZSB3aGVyZSB0aGUgc2hhcGUgc2l0cworICAgICAgICBpbiB0aGUgcGFyZW50
LCBjYXVzaW5nIHRoZSBmbG9hdCdzIGJveCB0byBiZSBvZmZzZXQgYnkgdGhlIHBvc2l0aW9uIG9m
CisgICAgICAgIHRoZSBzaGFwZS4gU2luY2UgdGhlIGZsb2F0J3MgYm94IGRvZXMgbm90IGFmZmVj
dCBsYXlvdXQgKGR1ZSB0byB0aGUKKyAgICAgICAgc2hhcGUpLCB0aGlzIGlzIHNpbWlsYXIgdG8g
cmVsYXRpdmUgcG9zaXRpb25pbmcgaW4gdGhhdCB0aGUgb2Zmc2V0IGlzCisgICAgICAgIGEgcGFp
bnQgdGltZSBvY2N1cnJlbmNlLgorCisgICAgICAgIFNvIHRoZSBuZXcgYXBwcm9hY2ggaXMgdG8g
aW1wbGVtZW50IHBvc2l0aW9uaW5nIG9mIHNoYXBlIG91dHNpZGUgb24KKyAgICAgICAgZmxvYXRz
IHNpbWlsYXIgdG8gaG93IHJlbGF0aXZlIHBvc2l0aW9uaW5nIGlzIGltcGxlbWVudGVkLCB1c2lu
ZyBhCisgICAgICAgIFJlbmRlckxheWVyLgorCisgICAgICAgIFRoaXMgaXMgYWxzbyB0ZXN0ZWQg
YnkgdGhlIGV4aXN0aW5nIHRlc3RzIGZvciBzaGFwZSBvdXRzaWRlIG9uIGZsb2F0cyBwb3NpdGlv
bmluZy4KKworICAgICAgICBUZXN0OiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9h
dHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3ZlcmhhbmcuaHRtbAorCisgICAgICAgICogcmVuZGVy
aW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm86OnNoYXBlTG9naWNhbE9mZnNldCk6IFV0aWxpdHkgbWV0aG9k
IHRvIGNyZWF0ZSBhIExheW91dFNpemUgZm9yIGNvbXB1dGluZyB0aGUgbGF5ZXIgb2Zmc2V0Lgor
ICAgICAgICAoRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyk6CisgICAgICAgICogcmVuZGVyaW5n
L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpMYXlvdXRT
dGF0ZSk6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4g
ZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9y
Q2hpbGQpOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50RmxvYXRzKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmlu
ZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpibG9ja1Nl
bGVjdGlvbkdhcHMpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxs
IGFzIGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
cG9zaXRpb25OZXdGbG9hdHMpOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9u
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZE92ZXJoYW5naW5nRmxvYXRzKTog
UmVtb3ZlIEZJWE1FLgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25Gb3JQb2ludFJlc3BlY3Rp
bmdFZGl0aW5nQm91bmRhcmllcyk6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRl
IGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaDoKKyAgICAgICAgKFJlbmRlckJsb2NrKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmlu
ZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp4UG9zaXRp
b25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbik6IFJlbW92ZSBvbGQgcG9zaXRpb25pbmcgaW1wbGVt
ZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6eVBvc2l0aW9uRm9yRmxv
YXRJbmNsdWRpbmdNYXJnaW4pOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9u
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNo
YXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpvZmZzZXRGcm9tQ29udGFpbmVyKTogQ2hlY2sgZm9yIGZsb2F0cyB3
aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOiBDaGVjayBmb3Ig
ZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZsb3cgcG9zaXRpb25pbmcu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmxheW91dE92ZXJmbG93UmVjdEZvclByb3Bh
Z2F0aW9uKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBp
biBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDogTWFr
ZSBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGdldCBhIGxheWVyLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRPZmZzZXQpOiBNZXRob2QgdG8gcmV0dXJuIGluIGZsb3cKKyAg
ICAgICAgICAgIHBvc2l0aW9uaW5nIG9mZnNldCArIG9mZnNldCBmcm9tIHNoYXBlIG91dHNpZGUg
b24gZmxvYXRzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgor
ICAgICAgICAoUmVuZGVyQm94TW9kZWxPYmplY3QpOiBBZGQgcGFpbnRPZmZzZXQgbWV0aG9kLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCk6IENoZWNrIGZvciBm
bG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KTog
Q2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBv
c2l0aW9uaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29u
dGFpbmVyKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBp
biBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbik6IENo
ZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3Np
dGlvbmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVj
dHMpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZs
b3cgcG9zaXRpb25pbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRPZmZzZXQpOiBSZW5hbWUgb2Zmc2V0Rm9y
SW5GbG93UG9zaXRpb24gdG8gcmVmbGVjdCB0aGF0IGl0J3Mgbm90IGp1c3QgZm9yCisgICAgICAg
ICAgICBpbiBmbG93IHBvc2l0aW9uaW5nLCBpdCBhbHNvIHJlZmxlY3RzIHNoYXBlIG91dHNpZGUg
cG9zaXRpb24gb24gZmxvYXRzLgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
aGFzUGFpbnRPZmZzZXQpOiBEZXRlcm1pbmVzIGlmIHRoaXMgb2JqZWN0IGlzIGluIGZsb3cgcG9z
aXRpb2luZWQgb3IgaXMgYSBmbG9hdCB3aXRoIHNoYXBlIG91dHNpZGUuCisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6IEFkZCBoYXNQYWludE9mZnNldCBtZXRob2QsIGFu
YWxhZ291cyB0byBtZXRob2Qgd2l0aCBzYW1lIG5hbWUgb24gUmVuZGVyT2JqZWN0LgorCiAyMDEz
LTAyLTExICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogVGltZWxpbmU6IGludmFsaWRhdGUgYW5kIGZvcmNlIGxvY2F0aW9ucyBh
cmUgc2FtZSBmb3IgTGF5b3V0IHJlY29yZHMgY2F1c2VkIGJ5IHN0eWxlIHJlY2FsY3VsYWl0b24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNp
ZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mby5oCmluZGV4IDBmNmM5MWViNzM4NzkxMTA3NTNhZDlmMDgwNjY2M2QwOWU4YzkxZTguLmE0
YjgxMjgzOGJlMzViNGJmOWNkZjU2YWJiYzhjZmQ1YzIwNWI1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaApAQCAtMzMs
NiArMzMsNyBAQAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKIAogI2luY2x1ZGUgIkV4Y2x1
c2lvblNoYXBlSW5mby5oIgorI2luY2x1ZGUgIkxheW91dFNpemUuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00MCw2ICs0MSwxMSBAQCBjbGFzcyBSZW5kZXJCb3g7CiAKIGNsYXNzIEV4
Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8gOiBwdWJsaWMgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRl
ckJveCwgJlJlbmRlclN0eWxlOjpzaGFwZU91dHNpZGU+LCBwdWJsaWMgTWFwcGVkSW5mbzxSZW5k
ZXJCb3gsIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8+IHsKIHB1YmxpYzoKKyAgICBMYXlvdXRT
aXplIHNoYXBlTG9naWNhbE9mZnNldCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gTGF5
b3V0U2l6ZShzaGFwZUxvZ2ljYWxMZWZ0KCksIHNoYXBlTG9naWNhbFRvcCgpKTsKKyAgICB9CisK
ICAgICBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvPiBjcmVhdGVJ
bmZvKGNvbnN0IFJlbmRlckJveCogcmVuZGVyZXIpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBFeGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvKHJlbmRlcmVyKSk7IH0KICAgICBzdGF0aWMgYm9vbCBpc0Vu
YWJsZWRGb3IoY29uc3QgUmVuZGVyQm94Kik7CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggNGNmYTE2ZGI4MmEwNWI0MGI3MWQwYjkwMWEwZmQz
OTY4MDMzMTUyNC4uOWM0MTc2MDdlNjA5YTA2OTVlODU0MGUwZGNlODRiOGJkYTBiM2EwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCkBAIC02NSw4ICs2NSw4IEBA
IExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSogcHJldiwgUmVuZGVyQm94KiBy
ZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAKICAgICBtX2xheW91dE9mZnNldCA9IG1fcGFpbnRP
ZmZzZXQ7CiAKLSAgICBpZiAocmVuZGVyZXItPmlzSW5GbG93UG9zaXRpb25lZCgpICYmIHJlbmRl
cmVyLT5oYXNMYXllcigpKQotICAgICAgICBtX3BhaW50T2Zmc2V0ICs9IHJlbmRlcmVyLT5sYXll
cigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAgIGlmIChyZW5kZXJlci0+aGFzUGFp
bnRPZmZzZXQoKSAmJiByZW5kZXJlci0+aGFzTGF5ZXIoKSkKKyAgICAgICAgbV9wYWludE9mZnNl
dCArPSByZW5kZXJlci0+bGF5ZXIoKS0+cGFpbnRPZmZzZXQoKTsKIAogICAgIG1fY2xpcHBlZCA9
ICFmaXhlZCAmJiBwcmV2LT5tX2NsaXBwZWQ7CiAgICAgaWYgKG1fY2xpcHBlZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGQ4ZTFhNWZkNjViZDRhY2YwNjI4
ZWZjZjJlZTc1MTc1ZTkwZmYzYmMuLjU1MjkxNTA3YjZkMWU0MmFlOWQ5ZDU2MjNkZDY1N2E1YmUw
NGIzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMzEy
Nyw3ICszMTI3LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnMKICAgICB9CiB9CiAKLUxheW91
dFBvaW50IFJlbmRlckJsb2NrOjpmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKGNvbnN0
IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBGbG9hdFJl
bmRlcmluZ1N0YXRlIHJlbmRlcmluZ1N0YXRlKSBjb25zdAorTGF5b3V0UG9pbnQgUmVuZGVyQmxv
Y2s6OmZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY29uc3QgRmxvYXRpbmdPYmplY3Qq
IGNoaWxkLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgaWYgKCFzdHls
ZSgpLT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQogICAgICAgICByZXR1cm4gcG9pbnQ7
CkBAIC0zMTM2LDggKzMxMzYsOCBAQCBMYXlvdXRQb2ludCBSZW5kZXJCbG9jazo6ZmxpcEZsb2F0
Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVjdCogYwogICAgIC8vIGl0
J3MgZ29pbmcgdG8gZ2V0IGFkZGVkIGJhY2sgaW4uIFdlIGhpZGUgdGhpcyBjb21wbGljYXRpb24g
aGVyZSBzbyB0aGF0IHRoZSBjYWxsaW5nIGNvZGUgbG9va3Mgbm9ybWFsIGZvciB0aGUgdW5mbGlw
cGVkCiAgICAgLy8gY2FzZS4KICAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAg
ICAgICAgcmV0dXJuIExheW91dFBvaW50KHBvaW50LngoKSwgcG9pbnQueSgpICsgaGVpZ2h0KCkg
LSBjaGlsZC0+cmVuZGVyZXIoKS0+aGVpZ2h0KCkgLSAyICogeVBvc2l0aW9uRm9yRmxvYXRJbmNs
dWRpbmdNYXJnaW4oY2hpbGQsIHJlbmRlcmluZ1N0YXRlKSk7Ci0gICAgcmV0dXJuIExheW91dFBv
aW50KHBvaW50LngoKSArIHdpZHRoKCkgLSBjaGlsZC0+cmVuZGVyZXIoKS0+d2lkdGgoKSAtIDIg
KiB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjaGlsZCwgcmVuZGVyaW5nU3RhdGUp
LCBwb2ludC55KCkpOworICAgICAgICByZXR1cm4gTGF5b3V0UG9pbnQocG9pbnQueCgpLCBwb2lu
dC55KCkgKyBoZWlnaHQoKSAtIGNoaWxkLT5yZW5kZXJlcigpLT5oZWlnaHQoKSAtIDIgKiB5UG9z
aXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjaGlsZCkpOworICAgIHJldHVybiBMYXlvdXRQ
b2ludChwb2ludC54KCkgKyB3aWR0aCgpIC0gY2hpbGQtPnJlbmRlcmVyKCktPndpZHRoKCkgLSAy
ICogeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY2hpbGQpLCBwb2ludC55KCkpOwog
fQogCiB2b2lkIFJlbmRlckJsb2NrOjpwYWludEZsb2F0cyhQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBib29sIHByZXNlcnZlUGhhc2UpCkBAIC0z
MTUzLDcgKzMxNTMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludEZsb2F0cyhQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgICAgICBpZiAoci0+
c2hvdWxkUGFpbnQoKSAmJiAhci0+bV9yZW5kZXJlci0+aGFzU2VsZlBhaW50aW5nTGF5ZXIoKSkg
ewogICAgICAgICAgICAgUGFpbnRJbmZvIGN1cnJlbnRQYWludEluZm8ocGFpbnRJbmZvKTsKICAg
ICAgICAgICAgIGN1cnJlbnRQYWludEluZm8ucGhhc2UgPSBwcmVzZXJ2ZVBoYXNlID8gcGFpbnRJ
bmZvLnBoYXNlIDogUGFpbnRQaGFzZUJsb2NrQmFja2dyb3VuZDsKLSAgICAgICAgICAgIExheW91
dFBvaW50IGNoaWxkUG9pbnQgPSBmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKHIsIExh
eW91dFBvaW50KHBhaW50T2Zmc2V0LngoKSArIHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFy
Z2luKHIsIEZsb2F0UGFpbnQpIC0gci0+bV9yZW5kZXJlci0+eCgpLCBwYWludE9mZnNldC55KCkg
KyB5UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihyLCBGbG9hdFBhaW50KSAtIHItPm1f
cmVuZGVyZXItPnkoKSksIEZsb2F0UGFpbnQpOworICAgICAgICAgICAgTGF5b3V0UG9pbnQgY2hp
bGRQb2ludCA9IGZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQociwgTGF5b3V0UG9pbnQo
cGFpbnRPZmZzZXQueCgpICsgeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4ocikgLSBy
LT5tX3JlbmRlcmVyLT54KCksIHBhaW50T2Zmc2V0LnkoKSArIHlQb3NpdGlvbkZvckZsb2F0SW5j
bHVkaW5nTWFyZ2luKHIpIC0gci0+bV9yZW5kZXJlci0+eSgpKSk7CiAgICAgICAgICAgICByLT5t
X3JlbmRlcmVyLT5wYWludChjdXJyZW50UGFpbnRJbmZvLCBjaGlsZFBvaW50KTsKICAgICAgICAg
ICAgIGlmICghcHJlc2VydmVQaGFzZSkgewogICAgICAgICAgICAgICAgIGN1cnJlbnRQYWludElu
Zm8ucGhhc2UgPSBQYWludFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91bmRzOwpAQCAtMzQ4NCwxMCAr
MzQ4NCwxMCBAQCBHYXBSZWN0cyBSZW5kZXJCbG9jazo6YmxvY2tTZWxlY3Rpb25HYXBzKFJlbmRl
ckJsb2NrKiByb290QmxvY2ssIGNvbnN0IExheW91dFBvaQogICAgICAgICBpZiAoY3Vyci0+aXNG
bG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgY29udGludWU7IC8v
IFdlIG11c3QgYmUgYSBub3JtYWwgZmxvdyBvYmplY3QgaW4gb3JkZXIgdG8gZXZlbiBiZSBjb25z
aWRlcmVkLgogCi0gICAgICAgIGlmIChjdXJyLT5pc0luRmxvd1Bvc2l0aW9uZWQoKSAmJiBjdXJy
LT5oYXNMYXllcigpKSB7CisgICAgICAgIGlmIChjdXJyLT5oYXNQYWludE9mZnNldCgpICYmIGN1
cnItPmhhc0xheWVyKCkpIHsKICAgICAgICAgICAgIC8vIElmIHRoZSByZWxwb3NpdGlvbiBvZmZz
ZXQgaXMgYW55dGhpbmcgb3RoZXIgdGhhbiAwLCB0aGVuIHRyZWF0IHRoaXMganVzdCBsaWtlIGFu
IGFic29sdXRlIHBvc2l0aW9uZWQgZWxlbWVudC4KICAgICAgICAgICAgIC8vIEp1c3QgZGlzcmVn
YXJkIGl0IGNvbXBsZXRlbHkuCi0gICAgICAgICAgICBMYXlvdXRTaXplIHJlbE9mZnNldCA9IGN1
cnItPmxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CisgICAgICAgICAgICBMYXlv
dXRTaXplIHJlbE9mZnNldCA9IGN1cnItPmxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAgICAgICAg
ICAgICBpZiAocmVsT2Zmc2V0LndpZHRoKCkgfHwgcmVsT2Zmc2V0LmhlaWdodCgpKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC00MDEzLDE4ICs0MDEzLDggQEAgYm9v
bCBSZW5kZXJCbG9jazo6cG9zaXRpb25OZXdGbG9hdHMoKQogCiAgICAgICAgIHNldExvZ2ljYWxM
ZWZ0Rm9yRmxvYXQoZmxvYXRpbmdPYmplY3QsIGZsb2F0TG9naWNhbExvY2F0aW9uLngoKSk7CiAK
LSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgIGlmIChjaGlsZEJveC0+ZXhjbHVz
aW9uU2hhcGVPdXRzaWRlSW5mbygpKSB7Ci0gICAgICAgICAgICAvLyBUaGUgQ1NTIEV4Y2x1c2lv
bnMgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQgdGhlIG1hcmdpbnMgYXJlIGlnbm9yZWQgd2hlbiBh
IGZsb2F0IGhhcyBhIHNoYXBlIG91dHNpZGUuCi0gICAgICAgICAgICBzZXRMb2dpY2FsTGVmdEZv
ckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi54KCkgLSBjaGlsZEJveC0+ZXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpLT5zaGFwZUxvZ2ljYWxMZWZ0KCkpOwotICAgICAgICAg
ICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi55
KCkgLSBjaGlsZEJveC0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpLT5zaGFwZUxvZ2ljYWxU
b3AoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0jZW5kaWYKLSAgICAgICAgICAgIHNldExvZ2ljYWxM
ZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLngoKSArIGNoaWxkTG9n
aWNhbExlZnRNYXJnaW4pOwotICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxk
Qm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi55KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGls
ZEJveCkpOwotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgfQotI2VuZGlmCisg
ICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0
aW9uLngoKSArIGNoaWxkTG9naWNhbExlZnRNYXJnaW4pOworICAgICAgICBzZXRMb2dpY2FsVG9w
Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSArIG1hcmdpbkJlZm9y
ZUZvckNoaWxkKGNoaWxkQm94KSk7CiAKICAgICAgICAgTGF5b3V0U3RhdGUqIGxheW91dFN0YXRl
ID0gdmlldygpLT5sYXlvdXRTdGF0ZSgpOwogICAgICAgICBib29sIGlzUGFnaW5hdGVkID0gbGF5
b3V0U3RhdGUtPmlzUGFnaW5hdGVkKCk7CkBAIC00MDUzLDE5ICs0MDQzLDggQEAgYm9vbCBSZW5k
ZXJCbG9jazo6cG9zaXRpb25OZXdGbG9hdHMoKQogICAgICAgICAgICAgICAgIGZsb2F0TG9naWNh
bExvY2F0aW9uID0gY29tcHV0ZUxvZ2ljYWxMb2NhdGlvbkZvckZsb2F0KGZsb2F0aW5nT2JqZWN0
LCBuZXdMb2dpY2FsVG9wKTsKICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsTGVmdEZvckZsb2F0
KGZsb2F0aW5nT2JqZWN0LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi54KCkpOwogCi0jaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQotICAgICAgICAgICAgICAgIGlmIChjaGlsZEJveC0+ZXhjbHVzaW9u
U2hhcGVPdXRzaWRlSW5mbygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBDU1MgRXhj
bHVzaW9ucyBzcGVjaWZpY2F0aW9uIHNheXMgdGhhdCB0aGUgbWFyZ2lucyBhcmUgaWdub3JlZCB3
aGVuIGEgZmxvYXQgaGFzIGEgc2hhcGUgb3V0c2lkZS4KLSAgICAgICAgICAgICAgICAgICAgc2V0
TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpIC0g
Y2hpbGRCb3gtPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKS0+c2hhcGVMb2dpY2FsTGVmdCgp
KTsKLSAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94LCBm
bG9hdExvZ2ljYWxMb2NhdGlvbi55KCkgLSBjaGlsZEJveC0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mbygpLT5zaGFwZUxvZ2ljYWxUb3AoKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSNl
bmRpZgotICAgICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGNoaWxkQm94
LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi54KCkgKyBjaGlsZExvZ2ljYWxMZWZ0TWFyZ2luKTsKLSAg
ICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExv
Z2ljYWxMb2NhdGlvbi55KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZEJveCkpOwotI2lm
IEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgICAgICAgICB9Ci0jZW5kaWYKLQorICAg
ICAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNh
bExvY2F0aW9uLngoKSArIGNoaWxkTG9naWNhbExlZnRNYXJnaW4pOworICAgICAgICAgICAgICAg
IHNldExvZ2ljYWxUb3BGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueSgp
ICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGRCb3gpKTsKICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgaWYgKGNoaWxkQmxvY2spCiAgICAgICAgICAgICAgICAgICAgIGNoaWxkQmxvY2stPnNl
dENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKQEAgLTQ1NTgsNyArNDUzNyw2
IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmFkZE92ZXJoYW5naW5nRmxvYXRzKFJlbmRlckJs
b2NrKiBjaGlsZCwgYm9vbCBtYWtlQ2hpbGRQCiAgICAgICAgIExheW91dFVuaXQgbG9naWNhbEJv
dHRvbSA9IGNoaWxkTG9naWNhbFRvcCArIGxvZ2ljYWxCb3R0b21Gb3JGbG9hdDsKICAgICAgICAg
bG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tID0gbWF4KGxvd2VzdEZsb2F0TG9naWNhbEJvdHRvbSwg
bG9naWNhbEJvdHRvbSk7CiAKLSAgICAgICAgLy8gRklYTUU6IEJ1ZyAxMDY5MjcgSGFuZGxlIHNp
dHVhdGlvbnMgd2hlcmUgZmxvYXQgYW5kIHNoYXBlLW91dHNpZGUgb3ZlcmZsb3cgZGlmZmVyZW50
bHkuCiAgICAgICAgIGlmIChsb2dpY2FsQm90dG9tID4gbG9naWNhbEhlaWdodCgpKSB7CiAgICAg
ICAgICAgICAvLyBJZiB0aGUgb2JqZWN0IGlzIG5vdCBpbiB0aGUgbGlzdCwgd2UgYWRkIGl0IG5v
dy4KICAgICAgICAgICAgIGlmICghY29udGFpbnNGbG9hdChyLT5tX3JlbmRlcmVyKSkgewpAQCAt
NTAzNyw4ICs1MDE1LDggQEAgc3RhdGljIGlubGluZSBib29sIGlzRWRpdGluZ0JvdW5kYXJ5KFJl
bmRlck9iamVjdCogYW5jZXN0b3IsIFJlbmRlck9iamVjdCogY2hpbGQKIHN0YXRpYyBWaXNpYmxl
UG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludFJlc3BlY3RpbmdFZGl0aW5nQm91bmRhcmllcyhSZW5k
ZXJCbG9jayogcGFyZW50LCBSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBMYXlvdXRQb2ludCYgcG9p
bnRJblBhcmVudENvb3JkaW5hdGVzKQogewogICAgIExheW91dFBvaW50IGNoaWxkTG9jYXRpb24g
PSBjaGlsZC0+bG9jYXRpb24oKTsKLSAgICBpZiAoY2hpbGQtPmlzSW5GbG93UG9zaXRpb25lZCgp
KQotICAgICAgICBjaGlsZExvY2F0aW9uICs9IGNoaWxkLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlv
bigpOworICAgIGlmIChjaGlsZC0+aGFzUGFpbnRPZmZzZXQoKSkKKyAgICAgICAgY2hpbGRMb2Nh
dGlvbiArPSBjaGlsZC0+cGFpbnRPZmZzZXQoKTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdy
b25nIGlmIHRoZSBjaGlsZCdzIHdyaXRpbmctbW9kZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcGFy
ZW50J3MuCiAgICAgTGF5b3V0UG9pbnQgcG9pbnRJbkNoaWxkQ29vcmRpbmF0ZXModG9MYXlvdXRQ
b2ludChwb2ludEluUGFyZW50Q29vcmRpbmF0ZXMgLSBjaGlsZExvY2F0aW9uKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDRmODFlYTAzNzc2MzM5ZDIzOTA1NmQy
ZTdhNjgwMWEwY2JkNGIzMTcuLjkyODZmYTQ4ZWQ2OGM0NjFiYjdjZDhjMzE3N2RiZWZmMjc3OWMx
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC02ODksMTQgKzY4
OSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB9OwogCi0gICAgLy8gV2hlbiBhIGZsb2F0IGhh
cyBzaGFwZSBvdXRzaWRlLCBpdCBuZWVkcyB0byBiZSBoYW5kbGVkIGRpZmZlcmVudGx5IGF0Ci0g
ICAgLy8gcGFpbnQgdGltZSBhbmQgYXQgbGF5b3V0IHRpbWUsIHNpbmNlIHRoZSBjb29yZGluYXRl
cyBvZiB0aGUgc2hhcGUKLSAgICAvLyAoYWZmZWN0aW5nIGxheW91dCkgYW5kIHRoZSBjb29yZGlu
YXRlcyBvZiB0aGUgZmxvYXQgaXRzZWxmIChhZmZlY3RpbmcKLSAgICAvLyB3aGVyZSB0aGUgY29u
dGVudCBvZiB0aGUgZmxvYXQgaXMpIGNhbiBiZSBpbiBkaWZmZXJlbnQgcGxhY2VzLiBUaGlzIGVu
dW0KLSAgICAvLyBpcyB1c2VkIHRvIGNoYW5nZSBiZWhhdmlvciBiYXNlZCBvbiB0aGF0IHN0YXRl
LgotICAgIGVudW0gRmxvYXRSZW5kZXJpbmdTdGF0ZSB7IEZsb2F0TGF5b3V0LCBGbG9hdFBhaW50
IH07Ci0KLSAgICBMYXlvdXRQb2ludCBmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKGNv
bnN0IEZsb2F0aW5nT2JqZWN0KiwgY29uc3QgTGF5b3V0UG9pbnQmLCBGbG9hdFJlbmRlcmluZ1N0
YXRlID0gRmxvYXRMYXlvdXQpIGNvbnN0OworICAgIExheW91dFBvaW50IGZsaXBGbG9hdEZvcldy
aXRpbmdNb2RlRm9yQ2hpbGQoY29uc3QgRmxvYXRpbmdPYmplY3QqLCBjb25zdCBMYXlvdXRQb2lu
dCYpIGNvbnN0OwogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wRm9yRmxvYXQoY29uc3QgRmxv
YXRpbmdPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gY2hpbGQtPnkoKSA6IGNoaWxkLT54KCk7IH0KICAgICBMYXlvdXRVbml0IGxvZ2ljYWxC
b3R0b21Gb3JGbG9hdChjb25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQpIGNvbnN0IHsgcmV0dXJu
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjaGlsZC0+bWF4WSgpIDogY2hpbGQtPm1heFgo
KTsgfQpAQCAtNzM4LDEzICs3MzEsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNoaWxkLT5z
ZXRIZWlnaHQobG9naWNhbFdpZHRoKTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0IHhQb3NpdGlv
bkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCwgRmxv
YXRSZW5kZXJpbmdTdGF0ZSByZW5kZXJpbmdTdGF0ZSA9IEZsb2F0TGF5b3V0KSBjb25zdAorICAg
IExheW91dFVuaXQgeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY29uc3QgRmxvYXRp
bmdPYmplY3QqIGNoaWxkKSBjb25zdAogICAgIHsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMp
CiAgICAgICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8gKnNoYXBlT3V0c2lkZSA9IGNoaWxk
LT5yZW5kZXJlcigpLT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCk7Ci0gICAgICAgIGlmIChy
ZW5kZXJpbmdTdGF0ZSA9PSBGbG9hdFBhaW50ICYmIHNoYXBlT3V0c2lkZSkKLSAgICAgICAgICAg
IHJldHVybiBjaGlsZC0+eCgpIC0gKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBzaGFwZU91
dHNpZGUtPnNoYXBlTG9naWNhbExlZnQoKSA6IHNoYXBlT3V0c2lkZS0+c2hhcGVMb2dpY2FsVG9w
KCkpOwotICAgICAgICAvLyBGSVhNRTogQnVnIDEwNjkyOCBUaGlzIG5lZWRzIHRvIHByb3Blcmx5
IGhhbmRsZSB0aGUgbWFyZ2luIGZvciBmbG9hdHMgd2l0aCBzaGFwZS1vdXRzaWRlIGZvciBub24t
cGFpbnQgdGltZS4KKyAgICAgICAgaWYgKHNoYXBlT3V0c2lkZSkKKyAgICAgICAgICAgIHJldHVy
biBjaGlsZC0+eCgpOwogI2VuZGlmCiAKICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKCkpCkBAIC03NTMsMTMgKzc0NSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJu
IGNoaWxkLT54KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZC0+cmVuZGVyZXIoKSk7CiAg
ICAgfQogICAgICAgICAKLSAgICBMYXlvdXRVbml0IHlQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5n
TWFyZ2luKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCwgRmxvYXRSZW5kZXJpbmdTdGF0ZSBy
ZW5kZXJpbmdTdGF0ZSA9IEZsb2F0TGF5b3V0KSBjb25zdAorICAgIExheW91dFVuaXQgeVBvc2l0
aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxkKSBj
b25zdAogICAgIHsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgIEV4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm8gKnNoYXBlT3V0c2lkZSA9IGNoaWxkLT5yZW5kZXJlcigpLT5leGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvKCk7Ci0gICAgICAgIGlmIChyZW5kZXJpbmdTdGF0ZSA9PSBG
bG9hdFBhaW50ICYmIHNoYXBlT3V0c2lkZSkKLSAgICAgICAgICAgIHJldHVybiBjaGlsZC0+eSgp
IC0gKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBzaGFwZU91dHNpZGUtPnNoYXBlTG9naWNh
bFRvcCgpIDogc2hhcGVPdXRzaWRlLT5zaGFwZUxvZ2ljYWxMZWZ0KCkpOwotICAgICAgICAvLyBG
SVhNRTogQnVnIDEwNjkyOCBUaGlzIG5lZWRzIHRvIHByb3Blcmx5IGhhbmRsZSB0aGUgbWFyZ2lu
IGZvciBmbG9hdHMgd2l0aCBzaGFwZS1vdXRzaWRlLgorICAgICAgICBpZiAoc2hhcGVPdXRzaWRl
KQorICAgICAgICAgICAgcmV0dXJuIGNoaWxkLT55KCk7CiAjZW5kaWYKIAogICAgICAgICBpZiAo
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKaW5kZXggYmJmYjkwNjIzN2E3NDU2YTY3NDY2MmFmNzQ1YTkxNzlmNDJjOWY0ZS4uYjUx
NzdkYmI2NWVhMzFlMjI0YTc2MGUwMTQ3ZDliMWU4ODk4MjdlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTE2MDUsOCArMTYwNSw4IEBAIHZvaWQgUmVuZGVyQm94
OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluCiAgICAgICAgIGlmICh2LT5sYXlvdXRTdGF0ZUVuYWJsZWQoKSAmJiAhcmVwYWlu
dENvbnRhaW5lcikgewogICAgICAgICAgICAgTGF5b3V0U3RhdGUqIGxheW91dFN0YXRlID0gdi0+
bGF5b3V0U3RhdGUoKTsKICAgICAgICAgICAgIExheW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0U3Rh
dGUtPm1fcGFpbnRPZmZzZXQgKyBsb2NhdGlvbk9mZnNldCgpOwotICAgICAgICAgICAgaWYgKHN0
eWxlKCktPmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgICAgICBv
ZmZzZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICAgICAgICAg
IGlmIChzdHlsZSgpLT5oYXNQYWludE9mZnNldCgpICYmIGxheWVyKCkpCisgICAgICAgICAgICAg
ICAgb2Zmc2V0ICs9IGxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAgICAgICAgICAgICB0cmFuc2Zv
cm1TdGF0ZS5tb3ZlKG9mZnNldCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTE3MTgsOCArMTcxOCw4IEBAIExheW91dFNpemUgUmVuZGVyQm94OjpvZmZzZXRGcm9tQ29udGFp
bmVyKFJlbmRlck9iamVjdCogbywgY29uc3QgTGF5b3V0UG9pbnQmIHBvCiAgICAgQVNTRVJUKG8g
PT0gY29udGFpbmVyKCkpOwogCiAgICAgTGF5b3V0U2l6ZSBvZmZzZXQ7ICAgIAotICAgIGlmIChp
c0luRmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgb2Zmc2V0ICs9IG9mZnNldEZvckluRmxvd1Bv
c2l0aW9uKCk7CisgICAgaWYgKGhhc1BhaW50T2Zmc2V0KCkpCisgICAgICAgIG9mZnNldCArPSBw
YWludE9mZnNldCgpOwogCiAgICAgaWYgKCFpc0lubGluZSgpIHx8IGlzUmVwbGFjZWQoKSkgewog
ICAgICAgICBpZiAoIXN0eWxlKCktPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkgJiYgby0+aGFzQ29s
dW1ucygpKSB7CkBAIC0xODU2LDggKzE4NTYsOCBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVJl
Y3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YQog
ICAgICAgICAgICAgICAgIHJlY3QgPSBsYXllcigpLT50cmFuc2Zvcm0oKS0+bWFwUmVjdChwaXhl
bFNuYXBwZWRJbnRSZWN0KHJlY3QpKTsKIAogICAgICAgICAgICAgLy8gV2UgY2FuJ3QgdHJ1c3Qg
dGhlIGJpdHMgb24gUmVuZGVyT2JqZWN0LCBiZWNhdXNlIHRoaXMgbWlnaHQgYmUgY2FsbGVkIHdo
aWxlIHJlLXJlc29sdmluZyBzdHlsZS4KLSAgICAgICAgICAgIGlmIChzdHlsZVRvVXNlLT5oYXNJ
bkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0gICAgICAgICAgICAgICAgcmVjdC5tb3ZlKGxh
eWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCkpOworICAgICAgICAgICAgaWYgKHN0eWxl
VG9Vc2UtPmhhc1BhaW50T2Zmc2V0KCkgJiYgbGF5ZXIoKSkKKyAgICAgICAgICAgICAgICByZWN0
Lm1vdmUobGF5ZXIoKS0+cGFpbnRPZmZzZXQoKSk7CiAKICAgICAgICAgICAgIHJlY3QubW92ZUJ5
KGxvY2F0aW9uKCkpOwogICAgICAgICAgICAgcmVjdC5tb3ZlKGxheW91dFN0YXRlLT5tX3BhaW50
T2Zmc2V0KTsKQEAgLTE5MDEsMTIgKzE5MDEsMTIgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVS
ZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGEK
IAogICAgIGlmIChwb3NpdGlvbiA9PSBBYnNvbHV0ZVBvc2l0aW9uICYmIG8tPmlzSW5GbG93UG9z
aXRpb25lZCgpICYmIG8tPmlzUmVuZGVySW5saW5lKCkpCiAgICAgICAgIHRvcExlZnQgKz0gdG9S
ZW5kZXJJbmxpbmUobyktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRJbmxpbmUodGhpcyk7Ci0g
ICAgZWxzZSBpZiAoKHBvc2l0aW9uID09IFJlbGF0aXZlUG9zaXRpb24gfHwgcG9zaXRpb24gPT0g
U3RpY2t5UG9zaXRpb24pICYmIGxheWVyKCkpIHsKKyAgICBlbHNlIGlmIChzdHlsZVRvVXNlLT5o
YXNQYWludE9mZnNldCgpICYmIGxheWVyKCkpIHsKICAgICAgICAgLy8gQXBwbHkgdGhlIHJlbGF0
aXZlIHBvc2l0aW9uIG9mZnNldCB3aGVuIGludmFsaWRhdGluZyBhIHJlY3RhbmdsZS4gIFRoZSBs
YXllcgogICAgICAgICAvLyBpcyB0cmFuc2xhdGVkLCBidXQgdGhlIHJlbmRlciBib3ggaXNuJ3Qs
IHNvIHdlIG5lZWQgdG8gZG8gdGhpcyB0byBnZXQgdGhlCiAgICAgICAgIC8vIHJpZ2h0IGRpcnR5
IHJlY3QuICBTaW5jZSB0aGlzIGlzIGNhbGxlZCBmcm9tIFJlbmRlck9iamVjdDo6c2V0U3R5bGUs
IHRoZSByZWxhdGl2ZSBwb3NpdGlvbgogICAgICAgICAvLyBmbGFnIG9uIHRoZSBSZW5kZXJPYmpl
Y3QgaGFzIGJlZW4gY2xlYXJlZCwgc28gdXNlIHRoZSBvbmUgb24gdGhlIHN0eWxlKCkuCi0gICAg
ICAgIHRvcExlZnQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICAg
ICAgdG9wTGVmdCArPSBsYXllcigpLT5wYWludE9mZnNldCgpOwogICAgIH0KICAgICAKICAgICBp
ZiAocG9zaXRpb24gIT0gQWJzb2x1dGVQb3NpdGlvbiAmJiBwb3NpdGlvbiAhPSBGaXhlZFBvc2l0
aW9uICYmIG8tPmhhc0NvbHVtbnMoKSAmJiBvLT5pc0Jsb2NrRmxvdygpKSB7CkBAIC00MjYzLDcg
KzQyNjMsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6bGF5b3V0T3ZlcmZsb3dSZWN0Rm9yUHJv
cGFnYXRpb24oUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKQogICAgICAgICByZWN0LnVuaXRlKGxh
eW91dE92ZXJmbG93UmVjdCgpKTsKIAogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0gaGFzTGF5ZXIo
KSAmJiBsYXllcigpLT50cmFuc2Zvcm0oKTsKLSAgICBpZiAoaXNJbkZsb3dQb3NpdGlvbmVkKCkg
fHwgaGFzVHJhbnNmb3JtKSB7CisgICAgaWYgKGhhc1BhaW50T2Zmc2V0KCkgfHwgaGFzVHJhbnNm
b3JtKSB7CiAgICAgICAgIC8vIElmIHdlIGFyZSByZWxhdGl2ZWx5IHBvc2l0aW9uZWQgb3IgaWYg
d2UgaGF2ZSBhIHRyYW5zZm9ybSwgdGhlbiB3ZSBoYXZlIHRvIGNvbnZlcnQKICAgICAgICAgLy8g
dGhpcyByZWN0YW5nbGUgaW50byBwaHlzaWNhbCBjb29yZGluYXRlcywgYXBwbHkgcmVsYXRpdmUg
cG9zaXRpb25pbmcgYW5kIHRyYW5zZm9ybXMKICAgICAgICAgLy8gdG8gaXQsIGFuZCB0aGVuIGNv
bnZlcnQgaXQgYmFjay4KQEAgLTQyNzIsOCArNDI3Miw4IEBAIExheW91dFJlY3QgUmVuZGVyQm94
OjpsYXlvdXRPdmVyZmxvd1JlY3RGb3JQcm9wYWdhdGlvbihSZW5kZXJTdHlsZSogcGFyZW50U3R5
bGUpCiAgICAgICAgIGlmIChoYXNUcmFuc2Zvcm0pCiAgICAgICAgICAgICByZWN0ID0gbGF5ZXIo
KS0+Y3VycmVudFRyYW5zZm9ybSgpLm1hcFJlY3QocmVjdCk7CiAKLSAgICAgICAgaWYgKGlzSW5G
bG93UG9zaXRpb25lZCgpKQotICAgICAgICAgICAgcmVjdC5tb3ZlKG9mZnNldEZvckluRmxvd1Bv
c2l0aW9uKCkpOworICAgICAgICBpZiAoaGFzUGFpbnRPZmZzZXQoKSkKKyAgICAgICAgICAgIHJl
Y3QubW92ZShwYWludE9mZnNldCgpKTsKICAgICAgICAgCiAgICAgICAgIC8vIE5vdyB3ZSBuZWVk
IHRvIGZsaXAgYmFjay4KICAgICAgICAgZmxpcEZvcldyaXRpbmdNb2RlKHJlY3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDYwOGZjNzU4ZDgxMWVjMDI2NDVkMGE2YTQy
NGE1NTI0YTViNTQ1ZTYuLjBlMjU5NTM4ZjcxNzRiNTQ3ZDE0ZWQ0YWU2ZTY1NzU5NzhiNWYzMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVi
bGljOgogCiAgICAgLy8gaGFzQXV0b1pJbmRleCBvbmx5IHJldHVybnMgdHJ1ZSBpZiB0aGUgZWxl
bWVudCBpcyBwb3NpdGlvbmVkIG9yIGEgZmxleC1pdGVtIHNpbmNlCiAgICAgLy8gcG9zaXRpb246
c3RhdGljIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCBmbGV4LWl0ZW1zIGdldCB0aGVpciB6LWluZGV4
IGNvZXJjZWQgdG8gYXV0by4KLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIGlzUm9vdCgpIHx8IGlzUG9zaXRpb25lZCgpIHx8IGNyZWF0ZXNH
cm91cCgpIHx8IGhhc0NsaXBQYXRoKCkgfHwgaGFzT3ZlcmZsb3dDbGlwKCkgfHwgaGFzVHJhbnNm
b3JtKCkgfHwgaGFzSGlkZGVuQmFja2ZhY2UoKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5bGUo
KS0+c3BlY2lmaWVzQ29sdW1ucygpIHx8ICFzdHlsZSgpLT5oYXNBdXRvWkluZGV4KCk7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGlz
Um9vdCgpIHx8IGlzUG9zaXRpb25lZCgpIHx8IGNyZWF0ZXNHcm91cCgpIHx8IGhhc0NsaXBQYXRo
KCkgfHwgaGFzT3ZlcmZsb3dDbGlwKCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzSGlkZGVuQmFj
a2ZhY2UoKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5bGUoKS0+c3BlY2lmaWVzQ29sdW1ucygp
IHx8ICFzdHlsZSgpLT5oYXNBdXRvWkluZGV4KCkgfHwgKHN0eWxlKCktPnNoYXBlT3V0c2lkZSgp
ICYmIGlzRmxvYXRpbmcoKSk7IH0KIAogICAgIC8vIFVzZSB0aGlzIHdpdGggY2F1dGlvbiEgTm8g
dHlwZSBjaGVja2luZyBpcyBkb25lIQogICAgIFJlbmRlckJveCogZmlyc3RDaGlsZEJveCgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAKaW5kZXggODg1OGYwZTJhN2RlYTNjNDE2YTVlYzAzODQzMDc2YzdiZTk4ZjkyZC4uMGI2
OTIzN2QxMzE3YWUzN2Y1ODE4M2JlNzcyOGYxNTFjNzBiYWQ3MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC01MzQsNiArNTM0
LDE5IEBAIExheW91dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om9mZnNldEZvckluRmxvd1Bv
c2l0aW9uKCkgY29uc3QKICAgICByZXR1cm4gTGF5b3V0U2l6ZSgpOwogfQogCitMYXlvdXRTaXpl
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludE9mZnNldCgpIGNvbnN0Cit7CisgICAgTGF5b3V0
U2l6ZSBvZmZzZXQgPSBvZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworCisjaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQorICAgIGlmIChpc0JveCgpICYmIGlzRmxvYXRpbmcoKSkKKyAgICAgICAg
aWYgKEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8qIHNoYXBlT3V0c2lkZSA9IHRvUmVuZGVyQm94
KHRoaXMpLT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCkpCisgICAgICAgICAgICBvZmZzZXQg
LT0gc2hhcGVPdXRzaWRlLT5zaGFwZUxvZ2ljYWxPZmZzZXQoKTsKKyNlbmRpZgorCisgICAgcmV0
dXJuIG9mZnNldDsKK30KKwogTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6b2Zmc2V0
TGVmdCgpIGNvbnN0CiB7CiAgICAgLy8gTm90ZSB0aGF0IFJlbmRlcklubGluZSBhbmQgUmVuZGVy
Qm94IG92ZXJyaWRlIHRoaXMgdG8gcGFzcyBhIGRpZmZlcmVudApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCA2NWZlMDZmYjNlMTYyZTI1
MzQ4NTAwMTgzODFhYTdiMWRlMDcyYWExLi5hMzJlZDFlM2Q0NTExNDI3YzI4YzNiYTNjYTkyYjIx
YzhiZmEyNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0U2l6ZSBzdGlj
a3lQb3NpdGlvbkxvZ2ljYWxPZmZzZXQoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5pc0hvcml6
b250YWxXcml0aW5nTW9kZSgpID8gc3RpY2t5UG9zaXRpb25PZmZzZXQoKSA6IHN0aWNreVBvc2l0
aW9uT2Zmc2V0KCkudHJhbnNwb3NlZFNpemUoKTsgfQogCiAgICAgTGF5b3V0U2l6ZSBvZmZzZXRG
b3JJbkZsb3dQb3NpdGlvbigpIGNvbnN0OworICAgIExheW91dFNpemUgcGFpbnRPZmZzZXQoKSBj
b25zdDsKIAogICAgIC8vIElFIGV4dGVuc2lvbnMuIFVzZWQgdG8gY2FsY3VsYXRlIG9mZnNldFdp
ZHRoL0hlaWdodC4gIE92ZXJyaWRkZW4gYnkgaW5saW5lcyAoUmVuZGVyRmxvdykKICAgICAvLyB0
byByZXR1cm4gdGhlIHJlbWFpbmluZyB3aWR0aCBvbiBhIGdpdmVuIGxpbmUgKGFuZCB0aGUgaGVp
Z2h0IG9mIGEgc2luZ2xlIGxpbmUpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmNwcAppbmRleCA5NThjYWQyZGVlNmQxYWMzZTAzNTQyNzY2NDgyMTMyNTg3NjNiMGZkLi5l
YjEzMGM4NTk2MDdlZDg5MTY2YzIwYWQ3OTJiYzZmODAzNTE1NTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtMTAxMiw3ICsxMDEyLDcgQEAgTGF5b3V0
UmVjdCBSZW5kZXJJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGlmIChpbmxpbmVGbG93LT5zdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGlubGluZUZs
b3ctPmhhc0xheWVyKCkpCi0gICAgICAgICAgICByZXBhaW50UmVjdC5tb3ZlKHRvUmVuZGVySW5s
aW5lKGlubGluZUZsb3cpLT5sYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKKyAg
ICAgICAgICAgIHJlcGFpbnRSZWN0Lm1vdmUodG9SZW5kZXJJbmxpbmUoaW5saW5lRmxvdyktPmxh
eWVyKCktPnBhaW50T2Zmc2V0KCkpOwogICAgIH0KIAogICAgIExheW91dFVuaXQgb3V0bGluZVNp
emUgPSBzdHlsZSgpLT5vdXRsaW5lU2l6ZSgpOwpAQCAtMTA1OSw3ICsxMDU5LDcgQEAgdm9pZCBS
ZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q28KICAgICAgICAgaWYgKHYtPmxheW91dFN0YXRlRW5hYmxlZCgpICYm
ICFyZXBhaW50Q29udGFpbmVyKSB7CiAgICAgICAgICAgICBMYXlvdXRTdGF0ZSogbGF5b3V0U3Rh
dGUgPSB2LT5sYXlvdXRTdGF0ZSgpOwogICAgICAgICAgICAgaWYgKHN0eWxlKCktPmhhc0luRmxv
d1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgICAgICByZWN0Lm1vdmUobGF5ZXIo
KS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSk7CisgICAgICAgICAgICAgICAgcmVjdC5tb3Zl
KGxheWVyKCktPnBhaW50T2Zmc2V0KCkpOwogICAgICAgICAgICAgcmVjdC5tb3ZlKGxheW91dFN0
YXRlLT5tX3BhaW50T2Zmc2V0KTsKICAgICAgICAgICAgIGlmIChsYXlvdXRTdGF0ZS0+bV9jbGlw
cGVkKQogICAgICAgICAgICAgICAgIHJlY3QuaW50ZXJzZWN0KGxheW91dFN0YXRlLT5tX2NsaXBS
ZWN0KTsKQEAgLTEwOTIsNyArMTA5Miw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpjb21wdXRlUmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAgICAg
ICAgIC8vIGlzIHRyYW5zbGF0ZWQsIGJ1dCB0aGUgcmVuZGVyIGJveCBpc24ndCwgc28gd2UgbmVl
ZCB0byBkbyB0aGlzIHRvIGdldCB0aGUKICAgICAgICAgLy8gcmlnaHQgZGlydHkgcmVjdC4gU2lu
Y2UgdGhpcyBpcyBjYWxsZWQgZnJvbSBSZW5kZXJPYmplY3Q6OnNldFN0eWxlLCB0aGUgcmVsYXRp
dmUgb3Igc3RpY2t5IHBvc2l0aW9uCiAgICAgICAgIC8vIGZsYWcgb24gdGhlIFJlbmRlck9iamVj
dCBoYXMgYmVlbiBjbGVhcmVkLCBzbyB1c2UgdGhlIG9uZSBvbiB0aGUgc3R5bGUoKS4KLSAgICAg
ICAgdG9wTGVmdCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAgICAg
ICB0b3BMZWZ0ICs9IGxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAgICAgfQogICAgIAogICAgIC8v
IEZJWE1FOiBXZSBpZ25vcmUgdGhlIGxpZ2h0d2VpZ2h0IGNsaXBwaW5nIHJlY3QgdGhhdCBjb250
cm9scyB1c2UsIHNpbmNlIGlmIHxvfCBpcyBpbiBtaWQtbGF5b3V0LApAQCAtMTE0NCw3ICsxMTQ0
LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnQKICAgICAgICAgICAgIExheW91dFN0YXRlKiBs
YXlvdXRTdGF0ZSA9IHYtPmxheW91dFN0YXRlKCk7CiAgICAgICAgICAgICBMYXlvdXRTaXplIG9m
ZnNldCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0OwogICAgICAgICAgICAgaWYgKHN0eWxl
KCktPmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgICAgICBvZmZz
ZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICAgICAgICAgICAg
ICBvZmZzZXQgKz0gbGF5ZXIoKS0+cGFpbnRPZmZzZXQoKTsKICAgICAgICAgICAgIHRyYW5zZm9y
bVN0YXRlLm1vdmUob2Zmc2V0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZThkMDNlYTExZDE0Mjcy
NjBhNDIyNzEwM2RiMDdiMmM3Zjg1NmQwNy4uOWExZDMzYWE4YmE5MTQ1MGM3MzUzYmYyN2M4MjVh
NmMyY2VjMDk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBA
IC0xMTg1LDEzICsxMTg1LDEzIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRp
b24oKQogICAgIH0KICAgICAKICAgICBib29sIHBvc2l0aW9uT3JPZmZzZXRDaGFuZ2VkID0gZmFs
c2U7Ci0gICAgaWYgKHJlbmRlcmVyKCktPmlzSW5GbG93UG9zaXRpb25lZCgpKSB7Ci0gICAgICAg
IExheW91dFNpemUgbmV3T2Zmc2V0ID0gdG9SZW5kZXJCb3hNb2RlbE9iamVjdChyZW5kZXJlcigp
KS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKLSAgICAgICAgcG9zaXRpb25Pck9mZnNldENo
YW5nZWQgPSBuZXdPZmZzZXQgIT0gbV9vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbjsKLSAgICAgICAg
bV9vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbiA9IG5ld09mZnNldDsKLSAgICAgICAgbG9jYWxQb2lu
dC5tb3ZlKG1fb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24pOworICAgIGlmIChyZW5kZXJlcigpLT5o
YXNQYWludE9mZnNldCgpKSB7CisgICAgICAgIExheW91dFNpemUgbmV3T2Zmc2V0ID0gdG9SZW5k
ZXJCb3hNb2RlbE9iamVjdChyZW5kZXJlcigpKS0+cGFpbnRPZmZzZXQoKTsKKyAgICAgICAgcG9z
aXRpb25Pck9mZnNldENoYW5nZWQgPSBuZXdPZmZzZXQgIT0gbV9wYWludE9mZnNldDsKKyAgICAg
ICAgbV9wYWludE9mZnNldCA9IG5ld09mZnNldDsKKyAgICAgICAgbG9jYWxQb2ludC5tb3ZlKG1f
cGFpbnRPZmZzZXQpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fb2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb24gPSBMYXlvdXRTaXplKCk7CisgICAgICAgIG1fcGFpbnRPZmZzZXQgPSBMYXlvdXRTaXpl
KCk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdlJ2QgcmVhbGx5IGxpa2UgdG8ganVzdCBnZXQg
cmlkIG9mIHRoZSBjb25jZXB0IG9mIGEgbGF5ZXIgcmVjdGFuZ2xlIGFuZCByZWx5IG9uIHRoZSBy
ZW5kZXJlcnMuCkBAIC00NTk5LDcgKzQ1OTksNyBAQCB2b2lkIFJlbmRlckxheWVyOjpjYWxjdWxh
dGVDbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xpcFJlY3RzQ29udGV4dCwgQwog
ICAgICAgICBjbGlwUmVjdHMuc2V0UG9zQ2xpcFJlY3QoY2xpcFJlY3RzLmZpeGVkQ2xpcFJlY3Qo
KSk7CiAgICAgICAgIGNsaXBSZWN0cy5zZXRPdmVyZmxvd0NsaXBSZWN0KGNsaXBSZWN0cy5maXhl
ZENsaXBSZWN0KCkpOwogICAgICAgICBjbGlwUmVjdHMuc2V0Rml4ZWQodHJ1ZSk7Ci0gICAgfSBl
bHNlIGlmIChyZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpKQorICAgIH0g
ZWxzZSBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzUGFpbnRPZmZzZXQoKSkKICAgICAgICAg
Y2xpcFJlY3RzLnNldFBvc0NsaXBSZWN0KGNsaXBSZWN0cy5vdmVyZmxvd0NsaXBSZWN0KCkpOwog
ICAgIGVsc2UgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPnBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQ
b3NpdGlvbikKICAgICAgICAgY2xpcFJlY3RzLnNldE92ZXJmbG93Q2xpcFJlY3QoY2xpcFJlY3Rz
LnBvc0NsaXBSZWN0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRl
eCAwYjY3NDUzM2U2ZDUyZDI2NWJjMDViOWEzN2NhMzcyMmIzNmYyOGRmLi4zZjYwMzVkNGFhOWY2
ZjhjZjc4ZWMyNDZiN2YwMmRhMmIwNTExMDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaApAQCAtNDI1LDcgKzQyNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUJs
ZW5kTW9kZSgpOwogI2VuZGlmCiAKLSAgICBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGb3JJbkZs
b3dQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb247IH0K
KyAgICBjb25zdCBMYXlvdXRTaXplJiBwYWludE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFp
bnRPZmZzZXQ7IH0KIAogICAgIHZvaWQgY2xlYXJDbGlwUmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50
cyhDbGlwUmVjdHNUeXBlIHR5cGVUb0NsZWFyID0gQWxsQ2xpcFJlY3RUeXBlcyk7CiAgICAgdm9p
ZCBjbGVhckNsaXBSZWN0cyhDbGlwUmVjdHNUeXBlIHR5cGVUb0NsZWFyID0gQWxsQ2xpcFJlY3RU
eXBlcyk7CkBAIC0xMTI0LDggKzExMjQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgTGF5b3V0UmVjdCBt
X3JlcGFpbnRSZWN0OyAvLyBDYWNoZWQgcmVwYWludCByZWN0cy4gVXNlZCBieSBsYXlvdXQuCiAg
ICAgTGF5b3V0UmVjdCBtX291dGxpbmVCb3g7CiAKLSAgICAvLyBPdXIgY3VycmVudCByZWxhdGl2
ZSBwb3NpdGlvbiBvZmZzZXQuCi0gICAgTGF5b3V0U2l6ZSBtX29mZnNldEZvckluRmxvd1Bvc2l0
aW9uOworICAgIC8vIFBhaW50IHRpbWUgb2Zmc2V0IG9ubHksIGl0IGlzIHVzZWQgZm9yIHByb3Bl
cmx5IHBhaW50IHJlbGF0aXZlIC8gc3RpY2t5IHBvc2l0aW9uZWQgZWxlbWVudHMgYW5kIGV4Y2x1
c2lvbiBib3hlcyBvbiBmbG9hdHMuCisgICAgTGF5b3V0U2l6ZSBtX3BhaW50T2Zmc2V0OwogCiAg
ICAgLy8gT3VyICh4LHkpIGNvb3JkaW5hdGVzIGFyZSBpbiBvdXIgcGFyZW50IGxheWVyJ3MgY29v
cmRpbmF0ZSBzcGFjZS4KICAgICBMYXlvdXRQb2ludCBtX3RvcExlZnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMjdhN2E0NWRhZmZiZjllY2NmZTg4NmY3M2Mw
YzcwOWQ0NjcyODNhYi4uNTBmYWE2Y2YzOTA0NmM3ODk5YWM1MzJmZjg0YjlmYzFiZDI2ZDdmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNTI1LDYgKzUyNSwx
NiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYml0ZmllbGRzLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpOyB9IC8vIGFic29sdXRl
IG9yIGZpeGVkIHBvc2l0aW9uaW5nCiAgICAgYm9vbCBpc0luRmxvd1Bvc2l0aW9uZWQoKSBjb25z
dCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc1JlbFBvc2l0aW9uZWQoKSB8fCBtX2JpdGZpZWxkcy5p
c1N0aWNreVBvc2l0aW9uZWQoKTsgfSAvLyByZWxhdGl2ZSBvciBzdGlja3kgcG9zaXRpb25pbmcK
KyAgICBib29sIGhhc1BhaW50T2Zmc2V0KCkgY29uc3QKKyAgICB7CisgICAgICAgIGJvb2wgcG9z
aXRpb25lZCA9IGlzSW5GbG93UG9zaXRpb25lZCgpOworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKKyAgICAgICAgLy8gU2hhcGUgb3V0c2lkZSBvbiBhIGZsb2F0IGNhbiByZXBvc2l0aW9uIHRo
ZSBmbG9hdCBpbiBtdWNoIHRoZQorICAgICAgICAvLyBzYW1lIHdheSBhcyByZWxhdGl2ZSBwb3Np
dGlvbmluZywgc28gdHJlYXQgaXQgYXMgc3VjaC4KKyAgICAgICAgcG9zaXRpb25lZCA9IHBvc2l0
aW9uZWQgfHwgKG1fYml0ZmllbGRzLmZsb2F0aW5nKCkgJiYgbV9iaXRmaWVsZHMuaXNCb3goKSAm
JiBzdHlsZSgpLT5zaGFwZU91dHNpZGUoKSk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIHBvc2l0
aW9uZWQ7CisgICAgfQogICAgIGJvb2wgaXNSZWxQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRmaWVsZHMuaXNSZWxQb3NpdGlvbmVkKCk7IH0gLy8gcmVsYXRpdmUgcG9zaXRpb25pbmcK
ICAgICBib29sIGlzU3RpY2t5UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRz
LmlzU3RpY2t5UG9zaXRpb25lZCgpOyB9CiAgICAgYm9vbCBpc1Bvc2l0aW9uZWQoKSBjb25zdCB7
IHJldHVybiBtX2JpdGZpZWxkcy5pc1Bvc2l0aW9uZWQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAwMmNmMGM5OTcxNzc5YjE5N2YwYjBh
ODg0NmZkOWU1NzExOGVjMjMyLi44YzI1MzJmZTNkZWJmNWMxZTAwNjRhNDgyMjRmYzk0MmE0ODJl
MTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApA
QCAtNDYwLDYgKzQ2MCwxNCBAQCBwdWJsaWM6CiAgICAgRVBvc2l0aW9uIHBvc2l0aW9uKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVBvc2l0aW9uPihub25pbmhlcml0ZWRfZmxhZ3MuX3Bv
c2l0aW9uKTsgfQogICAgIGJvb2wgaGFzT3V0T2ZGbG93UG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biBwb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb24gfHwgcG9zaXRpb24oKSA9PSBGaXhlZFBv
c2l0aW9uOyB9CiAgICAgYm9vbCBoYXNJbkZsb3dQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHBv
c2l0aW9uKCkgPT0gUmVsYXRpdmVQb3NpdGlvbiB8fCBwb3NpdGlvbigpID09IFN0aWNreVBvc2l0
aW9uOyB9CisgICAgYm9vbCBoYXNQYWludE9mZnNldCgpIGNvbnN0CisgICAgeworICAgICAgICBi
b29sIHBhaW50T2Zmc2V0ID0gaGFzSW5GbG93UG9zaXRpb24oKTsKKyNpZiBFTkFCTEUoQ1NTX0VY
Q0xVU0lPTlMpCisgICAgICAgIHBhaW50T2Zmc2V0ID0gcGFpbnRPZmZzZXQgfHwgKGlzRmxvYXRp
bmcoKSAmJiBzaGFwZU91dHNpZGUoKSk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIHBhaW50T2Zm
c2V0OworICAgIH0KICAgICBib29sIGhhc1ZpZXdwb3J0Q29uc3RyYWluZWRQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIHBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbiB8fCBwb3NpdGlvbigpID09
IFN0aWNreVBvc2l0aW9uOyB9CiAgICAgRUZsb2F0IGZsb2F0aW5nKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8RUZsb2F0Pihub25pbmhlcml0ZWRfZmxhZ3MuX2Zsb2F0aW5nKTsgfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZGQyM2QwMjVmNjRjM2QyMTg1NzA1YWUyYmJkZjlkZDgwZTA1NmZjZi4uZTFhYTNhMTZm
NWIyNzM4ZjM3NTRmZjAzYWMwNGY0YzRiMWRiOTQ5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDEzLTAyLTExICBCZW0gSm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAg
IFtDU1MgRXhjbHVzaW9uc10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdz
IG92ZXJoYW5nIGJlaGF2aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDY5MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGlzIGFsc28gdGVzdGVkIGJ5IHRoZSBleGlzdGluZyB0ZXN0cyBmb3Ig
c2hhcGUgb3V0c2lkZSBvbiBmbG9hdHMgcG9zaXRpb25pbmcuCisKKyAgICAgICAgKiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3Zlcmhh
bmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBl
LW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLmh0bWw6IEFkZGVk
LgorCiAyMDEzLTAyLTExICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogVGltZWxpbmU6IGludmFsaWRhdGUgYW5kIGZvcmNlIGxv
Y2F0aW9ucyBhcmUgc2FtZSBmb3IgTGF5b3V0IHJlY29yZHMgY2F1c2VkIGJ5IHN0eWxlIHJlY2Fs
Y3VsYWl0b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1v
dXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBl
LW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjAwZDkw
YjA2Y2Q0MTk2ZGMyMTk2MGQ4MjE2Y2Q3NjI3NjM1NTBlOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRz
aWRlLWZsb2F0cy1vdmVyaGFuZy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzxodG1s
PgorICA8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAjdG9wIHsKKyAgICAgICAgcG9zaXRpb246
IHJlbGF0aXZlOworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgICAgIGNvbG9yOiB5ZWxsb3c7CisgICAgICAgIGZvbnQ6IDEwcHgvMSBBaGVtLCBzYW5z
LXNlcmlmOworICAgICAgfQorICAgICAgI3NoYXBlIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4Owor
ICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgIHJpZ2h0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBibHVlOworICAgICAgfQorICAgICAgI2Zsb2F0IHsKKyAgICAgICAgd2lkdGg6IDEwMHB4
OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBmbG9hdDogcmlnaHQ7CisgICAgICB9
CisgICAgICAjYm90dG9tIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAg
ICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxi
b2R5PgorICAgIDxoMT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA2OTI3Ij5CdWcgMTA2OTI3PC9hPjogW0NTUyBFeGNsdXNpb25zXSBIYW5kbGUgc2hh
cGUtb3V0c2lkZSBjaGFuZ2luZyBhIGZsb2F0J3Mgb3ZlcmhhbmcgYmVoYXZpb3I8L2gxPgorICAg
IDxoMj5Zb3Ugc2hvdWxkIHNlZSBhIHllbGxvdyBzcXVhcmUgdG8gdGhlIGxlZnQgb2YgYSBibHVl
IHNxdWFyZSwgd2l0aCB0aGUgYmx1ZSBzcXVhcmUgY292ZXJpbmcgdGhlIHRleHQgaW4gdGhlIHll
bGxvdyBhcmVhLiBUaGUgbG93ZXIgZ3JlZW4gcmVjdGFuZ2xlIHNob3VsZCBoYXZlIHRleHQgd3Jh
cHBpbmcgYXJvdW5kIGEgc3F1YXJlIGFyZWEgb24gdGhlIHJpZ2h0IGFzIGlmIHRoZXJlIGlzIGEg
ZmxvYXQgdGhlcmUuIFlvdSBzaG91bGQgbm90IHNlZSBhbnkgcmVkLjwvaDI+CisgICAgPGRpdiBp
ZD0idG9wIj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhY
WFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhY
WFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+
WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJl
ZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6
IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29s
b3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0i
Y29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHls
ZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBz
dHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3Bh
biBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIDxkaXYgaWQ9InNo
YXBlIj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImJvdHRvbSI+Cisg
ICAgICA8ZGl2IGlkPSJmbG9hdCI+CisgICAgIDwvZGl2PgorICAgICBUaGUgZmxvYXQgaXMgZGVm
aW5lZCBoZXJlLCBidXQgdGhlIHNoYXBlIHB1c2hlcyBpdCBpbnRvIHRoZSBhYm92ZSBkaXYuIE5v
dGUgdGhhdCB0aGUgZXhjbHVzaW9uIGJlaGF2aW9yIHN0YXlzIHdpdGggdGhlIHNoYXBlIGFuZCBu
b3Qgd2l0aCB0aGUgZmxvYXQuCisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRz
L3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3Zlcmhh
bmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZmM0MDRjYmFkM2NjYjJjNmIwYjQ2MTE5YTcxMjQ3NWIzZGU4
OTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLmh0bWwKQEAgLTAs
MCArMSw1MCBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NF
eGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAg
ICAjdG9wIHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgICAgICBjb2xvcjogeWVsbG93OworICAgICAgICBmb250OiAxMHB4LzEgQWhlbSwgc2Fucy1z
ZXJpZjsKKyAgICAgIH0KKyAgICAgICNmbG9hdCB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAg
ICBmbG9hdDogcmlnaHQ7CisgICAgICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogcmVjdGFuZ2xl
KDBweCwgMTAwcHgsIDEwMHB4LCAxMDBweCk7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJs
dWU7CisgICAgICB9CisgICAgICAjYm90dG9tIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
Z3JlZW47CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8
L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTI3Ij5CdWcgMTA2OTI3PC9hPjogW0NTUyBFeGNsdXNpb25z
XSBIYW5kbGUgc2hhcGUtb3V0c2lkZSBjaGFuZ2luZyBhIGZsb2F0J3Mgb3ZlcmhhbmcgYmVoYXZp
b3I8L2gxPgorICAgIDxoMj5Zb3Ugc2hvdWxkIHNlZSBhIHllbGxvdyBzcXVhcmUgdG8gdGhlIGxl
ZnQgb2YgYSBibHVlIHNxdWFyZSwgd2l0aCB0aGUgYmx1ZSBzcXVhcmUgY292ZXJpbmcgdGhlIHRl
eHQgaW4gdGhlIHllbGxvdyBhcmVhLiBUaGUgbG93ZXIgZ3JlZW4gcmVjdGFuZ2xlIHNob3VsZCBo
YXZlIHRleHQgd3JhcHBpbmcgYXJvdW5kIGEgc3F1YXJlIGFyZWEgb24gdGhlIHJpZ2h0IGFzIGlm
IHRoZXJlIGlzIGEgZmxvYXQgdGhlcmUuIFlvdSBzaG91bGQgbm90IHNlZSBhbnkgcmVkLjwvaDI+
CisgICAgPGRpdiBpZD0idG9wIj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6
IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29s
b3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0i
Y29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHls
ZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBz
dHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3Bh
biBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8
c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhY
WFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhY
WFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhY
WFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGlkPSJib3R0b20iPgorICAgICAgPGRpdiBpZD0iZmxvYXQiPgorICAg
ICA8L2Rpdj4KKyAgICAgVGhlIGZsb2F0IGlzIGRlZmluZWQgaGVyZSwgYnV0IHRoZSBzaGFwZSBw
dXNoZXMgaXQgaW50byB0aGUgYWJvdmUgZGl2LiBOb3RlIHRoYXQgdGhlIGV4Y2x1c2lvbiBiZWhh
dmlvciBzdGF5cyB3aXRoIHRoZSBzaGFwZSBhbmQgbm90IHdpdGggdGhlIGZsb2F0LgorICAgIDwv
ZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187665</attachid>
            <date>2013-02-11 14:06:48 -0800</date>
            <delta_ts>2013-02-11 14:07:11 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106927-20130211140319.patch</filename>
            <type>text/plain</type>
            <size>37893</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTZjNDE4ZjU0NTgzNzgz
NWQ4NmZlODU4OWI0MmU2YzljYWI0NTBmNy4uZmMzODI0MjU5NDYwMTA2OTkwMDYxMjE5OGVjNWU1
OTdkMjg0YjEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEzLTAyLTExICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2
aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHRoZSBwb3NpdGlvbiBvbiBhIHNoYXBlIG91dHNpZGUgY2F1c2VzIGEgZmxvYXQgdG8gc3BpbGwg
b3V0IGludG8KKyAgICAgICAgYW5vdGhlciBibG9jayB0aGFuIGl0J3MgY29udGFpbmVyLCBpdCB3
YXMgbm90IGJlaW5nIGRyYXduIGNvcnJlY3RseS4gSXQKKyAgICAgICAgYmVjYW1lIGFwcGFyZW50
IHRoYXQgaW4gb3JkZXIgdG8gZml4IHRoaXMgcHJvcGVybHksIHRoZSBhcHByb2FjaCB0bworICAg
ICAgICBwb3NpdGlvbmluZyBzaGFwZSBvdXRzaWRlcyBhbmQgZmxvYXRzIG5lZWRlZCB0byBiZSBj
aGFuZ2VkLiBUaGUgbmV3CisgICAgICAgIGFwcHJvYWNoIGFsc28gZml4ZXMgc29tZSBvdGhlciBv
dXRzdGFuZGluZyBpc3N1ZXMsIGxpa2UgaGl0IGRldGVjdGlvbi4KKworICAgICAgICBXaGVuIGEg
ZmxvYXQgaGFzIGEgc2hhcGUgb3V0c2lkZSwgaW5saW5lIGFuZCBmbG9hdCBsYXlvdXQgaGFwcGVu
cworICAgICAgICB1c2luZyB0aGUgZXhjbHVzaW9uIHNoYXBlIGJvdW5kcyBpbnN0ZWFkIG9mIHRo
ZSBmbG9hdCdzIGJveC4gIFRoZQorICAgICAgICBlZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IHRoZSBm
bG9hdCBpdHNlbGYgbm8gbG9uZ2VyIGhhcyBhbnkgZWZmZWN0IG9uCisgICAgICAgIGxheW91dCwg
Ym90aCB3aXRoIHJlc3BlY3QgdG8gcG9zaXRpb25pbmcgb2YgdGhlIGZsb2F0J3Mgc2libGluZ3Mg
YXMKKyAgICAgICAgd2VsbCBhcyBwb3NpdGlvbmluZyB0aGUgZmxvYXQncyBib3guIFRoaXMgbWVh
bnMgdGhhdCB3aGVuIHRoZSBmbG9hdCBpcworICAgICAgICBwb3NpdGlvbmVkLCBpdCBpcyB0aGUg
c2hhcGUncyBib3ggdGhhdCBtdXN0IG9iZXkgdGhlIHBvc2l0aW9uaW5nIHJ1bGVzCisgICAgICAg
IGZvciBmbG9hdHMuIFdoZW4gdGhlIHNoYXBlIGlzIGdpdmVuIGEgcG9zaXRpb24gcmVsYXRpdmUg
dG8gdGhlIGZsb2F0J3MKKyAgICAgICAgYm94LCB0aGUgcnVsZXMgZm9yIGZsb2F0IHBvc2l0aW9u
aW5nIGRldGVybWluZSB3aGVyZSB0aGUgc2hhcGUgc2l0cworICAgICAgICBpbiB0aGUgcGFyZW50
LCBjYXVzaW5nIHRoZSBmbG9hdCdzIGJveCB0byBiZSBvZmZzZXQgYnkgdGhlIHBvc2l0aW9uIG9m
CisgICAgICAgIHRoZSBzaGFwZS4gU2luY2UgdGhlIGZsb2F0J3MgYm94IGRvZXMgbm90IGFmZmVj
dCBsYXlvdXQgKGR1ZSB0byB0aGUKKyAgICAgICAgc2hhcGUpLCB0aGlzIGlzIHNpbWlsYXIgdG8g
cmVsYXRpdmUgcG9zaXRpb25pbmcgaW4gdGhhdCB0aGUgb2Zmc2V0IGlzCisgICAgICAgIGEgcGFp
bnQgdGltZSBvY2N1cnJlbmNlLgorCisgICAgICAgIFNvIHRoZSBuZXcgYXBwcm9hY2ggaXMgdG8g
aW1wbGVtZW50IHBvc2l0aW9uaW5nIG9mIHNoYXBlIG91dHNpZGUgb24KKyAgICAgICAgZmxvYXRz
IHNpbWlsYXIgdG8gaG93IHJlbGF0aXZlIHBvc2l0aW9uaW5nIGlzIGltcGxlbWVudGVkLCB1c2lu
ZyBhCisgICAgICAgIFJlbmRlckxheWVyLgorCisgICAgICAgIFRoaXMgaXMgYWxzbyB0ZXN0ZWQg
YnkgdGhlIGV4aXN0aW5nIHRlc3RzIGZvciBzaGFwZSBvdXRzaWRlIG9uIGZsb2F0cyBwb3NpdGlv
bmluZy4KKworICAgICAgICBUZXN0OiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9h
dHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3ZlcmhhbmcuaHRtbAorCisgICAgICAgICogcmVuZGVy
aW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm86OnNoYXBlTG9naWNhbE9mZnNldCk6IFV0aWxpdHkgbWV0aG9k
IHRvIGNyZWF0ZSBhIExheW91dFNpemUgZm9yIGNvbXB1dGluZyB0aGUgbGF5ZXIgb2Zmc2V0Lgor
ICAgICAgICAoRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyk6CisgICAgICAgICogcmVuZGVyaW5n
L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpMYXlvdXRT
dGF0ZSk6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4g
ZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9y
Q2hpbGQpOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50RmxvYXRzKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmlu
ZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpibG9ja1Nl
bGVjdGlvbkdhcHMpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxs
IGFzIGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
cG9zaXRpb25OZXdGbG9hdHMpOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9u
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZE92ZXJoYW5naW5nRmxvYXRzKTog
UmVtb3ZlIEZJWE1FLgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25Gb3JQb2ludFJlc3BlY3Rp
bmdFZGl0aW5nQm91bmRhcmllcyk6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRl
IGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaDoKKyAgICAgICAgKFJlbmRlckJsb2NrKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmlu
ZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp4UG9zaXRp
b25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbik6IFJlbW92ZSBvbGQgcG9zaXRpb25pbmcgaW1wbGVt
ZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6eVBvc2l0aW9uRm9yRmxv
YXRJbmNsdWRpbmdNYXJnaW4pOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5nIGltcGxlbWVudGF0aW9u
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNo
YXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpvZmZzZXRGcm9tQ29udGFpbmVyKTogQ2hlY2sgZm9yIGZsb2F0cyB3
aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOiBDaGVjayBmb3Ig
ZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZsb3cgcG9zaXRpb25pbmcu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmxheW91dE92ZXJmbG93UmVjdEZvclByb3Bh
Z2F0aW9uKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBp
biBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDogTWFr
ZSBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGdldCBhIGxheWVyLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRPZmZzZXQpOiBNZXRob2QgdG8gcmV0dXJuIGluIGZsb3cKKyAg
ICAgICAgICAgIHBvc2l0aW9uaW5nIG9mZnNldCArIG9mZnNldCBmcm9tIHNoYXBlIG91dHNpZGUg
b24gZmxvYXRzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgor
ICAgICAgICAoUmVuZGVyQm94TW9kZWxPYmplY3QpOiBBZGQgcGFpbnRPZmZzZXQgbWV0aG9kLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCk6IENoZWNrIGZvciBm
bG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KTog
Q2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBv
c2l0aW9uaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29u
dGFpbmVyKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBp
biBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbik6IENo
ZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3Np
dGlvbmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVj
dHMpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZs
b3cgcG9zaXRpb25pbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRPZmZzZXQpOiBSZW5hbWUgb2Zmc2V0Rm9y
SW5GbG93UG9zaXRpb24gdG8gcmVmbGVjdCB0aGF0IGl0J3Mgbm90IGp1c3QgZm9yCisgICAgICAg
ICAgICBpbiBmbG93IHBvc2l0aW9uaW5nLCBpdCBhbHNvIHJlZmxlY3RzIHNoYXBlIG91dHNpZGUg
cG9zaXRpb24gb24gZmxvYXRzLgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
aGFzUGFpbnRPZmZzZXQpOiBEZXRlcm1pbmVzIGlmIHRoaXMgb2JqZWN0IGlzIGluIGZsb3cgcG9z
aXRpb2luZWQgb3IgaXMgYSBmbG9hdCB3aXRoIHNoYXBlIG91dHNpZGUuCisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6IEFkZCBoYXNQYWludE9mZnNldCBtZXRob2QsIGFu
YWxhZ291cyB0byBtZXRob2Qgd2l0aCBzYW1lIG5hbWUgb24gUmVuZGVyT2JqZWN0LgorCiAyMDEz
LTAyLTExICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAog
ICAgICAgICBbRUZMXSBmYXN0L2Zvcm1zL251bWJlci9udW1iZXItbDEwbi1pbnB1dC5odG1sIGlz
IGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25T
aGFwZU91dHNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVPdXRzaWRlSW5mby5oCmluZGV4IDBmNmM5MWViNzM4NzkxMTA3NTNhZDlmMDgwNjY2M2QwOWU4
YzkxZTguLmE0YjgxMjgzOGJlMzViNGJmOWNkZjU2YWJiYzhjZmQ1YzIwNWI1NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8u
aApAQCAtMzMsNiArMzMsNyBAQAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKIAogI2luY2x1
ZGUgIkV4Y2x1c2lvblNoYXBlSW5mby5oIgorI2luY2x1ZGUgIkxheW91dFNpemUuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw2ICs0MSwxMSBAQCBjbGFzcyBSZW5kZXJCb3g7CiAK
IGNsYXNzIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8gOiBwdWJsaWMgRXhjbHVzaW9uU2hhcGVJ
bmZvPFJlbmRlckJveCwgJlJlbmRlclN0eWxlOjpzaGFwZU91dHNpZGU+LCBwdWJsaWMgTWFwcGVk
SW5mbzxSZW5kZXJCb3gsIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8+IHsKIHB1YmxpYzoKKyAg
ICBMYXlvdXRTaXplIHNoYXBlTG9naWNhbE9mZnNldCgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gTGF5b3V0U2l6ZShzaGFwZUxvZ2ljYWxMZWZ0KCksIHNoYXBlTG9naWNhbFRvcCgpKTsK
KyAgICB9CisKICAgICBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
PiBjcmVhdGVJbmZvKGNvbnN0IFJlbmRlckJveCogcmVuZGVyZXIpIHsgcmV0dXJuIGFkb3B0UHRy
KG5ldyBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKHJlbmRlcmVyKSk7IH0KICAgICBzdGF0aWMg
Ym9vbCBpc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQm94Kik7CiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggNGNmYTE2ZGI4MmEwNWI0MGI3MWQw
YjkwMWEwZmQzOTY4MDMzMTUyNC4uOWM0MTc2MDdlNjA5YTA2OTVlODU0MGUwZGNlODRiOGJkYTBi
M2EwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCkBAIC02NSw4
ICs2NSw4IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSogcHJldiwgUmVu
ZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAKICAgICBtX2xheW91dE9mZnNldCA9
IG1fcGFpbnRPZmZzZXQ7CiAKLSAgICBpZiAocmVuZGVyZXItPmlzSW5GbG93UG9zaXRpb25lZCgp
ICYmIHJlbmRlcmVyLT5oYXNMYXllcigpKQotICAgICAgICBtX3BhaW50T2Zmc2V0ICs9IHJlbmRl
cmVyLT5sYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAgIGlmIChyZW5kZXJl
ci0+aGFzUGFpbnRPZmZzZXQoKSAmJiByZW5kZXJlci0+aGFzTGF5ZXIoKSkKKyAgICAgICAgbV9w
YWludE9mZnNldCArPSByZW5kZXJlci0+bGF5ZXIoKS0+cGFpbnRPZmZzZXQoKTsKIAogICAgIG1f
Y2xpcHBlZCA9ICFmaXhlZCAmJiBwcmV2LT5tX2NsaXBwZWQ7CiAgICAgaWYgKG1fY2xpcHBlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGQ4ZTFhNWZkNjVi
ZDRhY2YwNjI4ZWZjZjJlZTc1MTc1ZTkwZmYzYmMuLjU1MjkxNTA3YjZkMWU0MmFlOWQ5ZDU2MjNk
ZDY1N2E1YmUwNGIzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cApAQCAtMzEyNyw3ICszMTI3LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnMKICAgICB9CiB9
CiAKLUxheW91dFBvaW50IFJlbmRlckJsb2NrOjpmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNo
aWxkKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50
LCBGbG9hdFJlbmRlcmluZ1N0YXRlIHJlbmRlcmluZ1N0YXRlKSBjb25zdAorTGF5b3V0UG9pbnQg
UmVuZGVyQmxvY2s6OmZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY29uc3QgRmxvYXRp
bmdPYmplY3QqIGNoaWxkLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAg
aWYgKCFzdHlsZSgpLT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQogICAgICAgICByZXR1
cm4gcG9pbnQ7CkBAIC0zMTM2LDggKzMxMzYsOCBAQCBMYXlvdXRQb2ludCBSZW5kZXJCbG9jazo6
ZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVjdCogYwog
ICAgIC8vIGl0J3MgZ29pbmcgdG8gZ2V0IGFkZGVkIGJhY2sgaW4uIFdlIGhpZGUgdGhpcyBjb21w
bGljYXRpb24gaGVyZSBzbyB0aGF0IHRoZSBjYWxsaW5nIGNvZGUgbG9va3Mgbm9ybWFsIGZvciB0
aGUgdW5mbGlwcGVkCiAgICAgLy8gY2FzZS4KICAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSkKLSAgICAgICAgcmV0dXJuIExheW91dFBvaW50KHBvaW50LngoKSwgcG9pbnQueSgpICsg
aGVpZ2h0KCkgLSBjaGlsZC0+cmVuZGVyZXIoKS0+aGVpZ2h0KCkgLSAyICogeVBvc2l0aW9uRm9y
RmxvYXRJbmNsdWRpbmdNYXJnaW4oY2hpbGQsIHJlbmRlcmluZ1N0YXRlKSk7Ci0gICAgcmV0dXJu
IExheW91dFBvaW50KHBvaW50LngoKSArIHdpZHRoKCkgLSBjaGlsZC0+cmVuZGVyZXIoKS0+d2lk
dGgoKSAtIDIgKiB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjaGlsZCwgcmVuZGVy
aW5nU3RhdGUpLCBwb2ludC55KCkpOworICAgICAgICByZXR1cm4gTGF5b3V0UG9pbnQocG9pbnQu
eCgpLCBwb2ludC55KCkgKyBoZWlnaHQoKSAtIGNoaWxkLT5yZW5kZXJlcigpLT5oZWlnaHQoKSAt
IDIgKiB5UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjaGlsZCkpOworICAgIHJldHVy
biBMYXlvdXRQb2ludChwb2ludC54KCkgKyB3aWR0aCgpIC0gY2hpbGQtPnJlbmRlcmVyKCktPndp
ZHRoKCkgLSAyICogeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY2hpbGQpLCBwb2lu
dC55KCkpOwogfQogCiB2b2lkIFJlbmRlckJsb2NrOjpwYWludEZsb2F0cyhQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBib29sIHByZXNlcnZlUGhh
c2UpCkBAIC0zMTUzLDcgKzMxNTMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludEZsb2F0cyhQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgICAg
ICBpZiAoci0+c2hvdWxkUGFpbnQoKSAmJiAhci0+bV9yZW5kZXJlci0+aGFzU2VsZlBhaW50aW5n
TGF5ZXIoKSkgewogICAgICAgICAgICAgUGFpbnRJbmZvIGN1cnJlbnRQYWludEluZm8ocGFpbnRJ
bmZvKTsKICAgICAgICAgICAgIGN1cnJlbnRQYWludEluZm8ucGhhc2UgPSBwcmVzZXJ2ZVBoYXNl
ID8gcGFpbnRJbmZvLnBoYXNlIDogUGFpbnRQaGFzZUJsb2NrQmFja2dyb3VuZDsKLSAgICAgICAg
ICAgIExheW91dFBvaW50IGNoaWxkUG9pbnQgPSBmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNo
aWxkKHIsIExheW91dFBvaW50KHBhaW50T2Zmc2V0LngoKSArIHhQb3NpdGlvbkZvckZsb2F0SW5j
bHVkaW5nTWFyZ2luKHIsIEZsb2F0UGFpbnQpIC0gci0+bV9yZW5kZXJlci0+eCgpLCBwYWludE9m
ZnNldC55KCkgKyB5UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihyLCBGbG9hdFBhaW50
KSAtIHItPm1fcmVuZGVyZXItPnkoKSksIEZsb2F0UGFpbnQpOworICAgICAgICAgICAgTGF5b3V0
UG9pbnQgY2hpbGRQb2ludCA9IGZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQociwgTGF5
b3V0UG9pbnQocGFpbnRPZmZzZXQueCgpICsgeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJn
aW4ocikgLSByLT5tX3JlbmRlcmVyLT54KCksIHBhaW50T2Zmc2V0LnkoKSArIHlQb3NpdGlvbkZv
ckZsb2F0SW5jbHVkaW5nTWFyZ2luKHIpIC0gci0+bV9yZW5kZXJlci0+eSgpKSk7CiAgICAgICAg
ICAgICByLT5tX3JlbmRlcmVyLT5wYWludChjdXJyZW50UGFpbnRJbmZvLCBjaGlsZFBvaW50KTsK
ICAgICAgICAgICAgIGlmICghcHJlc2VydmVQaGFzZSkgewogICAgICAgICAgICAgICAgIGN1cnJl
bnRQYWludEluZm8ucGhhc2UgPSBQYWludFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91bmRzOwpAQCAt
MzQ4NCwxMCArMzQ4NCwxMCBAQCBHYXBSZWN0cyBSZW5kZXJCbG9jazo6YmxvY2tTZWxlY3Rpb25H
YXBzKFJlbmRlckJsb2NrKiByb290QmxvY2ssIGNvbnN0IExheW91dFBvaQogICAgICAgICBpZiAo
Y3Vyci0+aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgY29u
dGludWU7IC8vIFdlIG11c3QgYmUgYSBub3JtYWwgZmxvdyBvYmplY3QgaW4gb3JkZXIgdG8gZXZl
biBiZSBjb25zaWRlcmVkLgogCi0gICAgICAgIGlmIChjdXJyLT5pc0luRmxvd1Bvc2l0aW9uZWQo
KSAmJiBjdXJyLT5oYXNMYXllcigpKSB7CisgICAgICAgIGlmIChjdXJyLT5oYXNQYWludE9mZnNl
dCgpICYmIGN1cnItPmhhc0xheWVyKCkpIHsKICAgICAgICAgICAgIC8vIElmIHRoZSByZWxwb3Np
dGlvbiBvZmZzZXQgaXMgYW55dGhpbmcgb3RoZXIgdGhhbiAwLCB0aGVuIHRyZWF0IHRoaXMganVz
dCBsaWtlIGFuIGFic29sdXRlIHBvc2l0aW9uZWQgZWxlbWVudC4KICAgICAgICAgICAgIC8vIEp1
c3QgZGlzcmVnYXJkIGl0IGNvbXBsZXRlbHkuCi0gICAgICAgICAgICBMYXlvdXRTaXplIHJlbE9m
ZnNldCA9IGN1cnItPmxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CisgICAgICAg
ICAgICBMYXlvdXRTaXplIHJlbE9mZnNldCA9IGN1cnItPmxheWVyKCktPnBhaW50T2Zmc2V0KCk7
CiAgICAgICAgICAgICBpZiAocmVsT2Zmc2V0LndpZHRoKCkgfHwgcmVsT2Zmc2V0LmhlaWdodCgp
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC00MDEzLDE4ICs0MDEz
LDggQEAgYm9vbCBSZW5kZXJCbG9jazo6cG9zaXRpb25OZXdGbG9hdHMoKQogCiAgICAgICAgIHNl
dExvZ2ljYWxMZWZ0Rm9yRmxvYXQoZmxvYXRpbmdPYmplY3QsIGZsb2F0TG9naWNhbExvY2F0aW9u
LngoKSk7CiAKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgIGlmIChjaGlsZEJv
eC0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpKSB7Ci0gICAgICAgICAgICAvLyBUaGUgQ1NT
IEV4Y2x1c2lvbnMgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQgdGhlIG1hcmdpbnMgYXJlIGlnbm9y
ZWQgd2hlbiBhIGZsb2F0IGhhcyBhIHNoYXBlIG91dHNpZGUuCi0gICAgICAgICAgICBzZXRMb2dp
Y2FsTGVmdEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi54KCkgLSBjaGls
ZEJveC0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpLT5zaGFwZUxvZ2ljYWxMZWZ0KCkpOwot
ICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxM
b2NhdGlvbi55KCkgLSBjaGlsZEJveC0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpLT5zaGFw
ZUxvZ2ljYWxUb3AoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0jZW5kaWYKLSAgICAgICAgICAgIHNl
dExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLngoKSAr
IGNoaWxkTG9naWNhbExlZnRNYXJnaW4pOwotICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNo
aWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi55KCkgKyBtYXJnaW5CZWZvcmVGb3JD
aGlsZChjaGlsZEJveCkpOwotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgfQot
I2VuZGlmCisgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9n
aWNhbExvY2F0aW9uLngoKSArIGNoaWxkTG9naWNhbExlZnRNYXJnaW4pOworICAgICAgICBzZXRM
b2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSArIG1h
cmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkQm94KSk7CiAKICAgICAgICAgTGF5b3V0U3RhdGUqIGxh
eW91dFN0YXRlID0gdmlldygpLT5sYXlvdXRTdGF0ZSgpOwogICAgICAgICBib29sIGlzUGFnaW5h
dGVkID0gbGF5b3V0U3RhdGUtPmlzUGFnaW5hdGVkKCk7CkBAIC00MDUzLDE5ICs0MDQzLDggQEAg
Ym9vbCBSZW5kZXJCbG9jazo6cG9zaXRpb25OZXdGbG9hdHMoKQogICAgICAgICAgICAgICAgIGZs
b2F0TG9naWNhbExvY2F0aW9uID0gY29tcHV0ZUxvZ2ljYWxMb2NhdGlvbkZvckZsb2F0KGZsb2F0
aW5nT2JqZWN0LCBuZXdMb2dpY2FsVG9wKTsKICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsTGVm
dEZvckZsb2F0KGZsb2F0aW5nT2JqZWN0LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi54KCkpOwogCi0j
aWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICAgICAgICAgIGlmIChjaGlsZEJveC0+
ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRo
ZSBDU1MgRXhjbHVzaW9ucyBzcGVjaWZpY2F0aW9uIHNheXMgdGhhdCB0aGUgbWFyZ2lucyBhcmUg
aWdub3JlZCB3aGVuIGEgZmxvYXQgaGFzIGEgc2hhcGUgb3V0c2lkZS4KLSAgICAgICAgICAgICAg
ICAgICAgc2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRp
b24ueCgpIC0gY2hpbGRCb3gtPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKS0+c2hhcGVMb2dp
Y2FsTGVmdCgpKTsKLSAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNo
aWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi55KCkgLSBjaGlsZEJveC0+ZXhjbHVzaW9uU2hh
cGVPdXRzaWRlSW5mbygpLT5zaGFwZUxvZ2ljYWxUb3AoKSk7Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSNlbmRpZgotICAgICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxk
KGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi54KCkgKyBjaGlsZExvZ2ljYWxMZWZ0TWFy
Z2luKTsKLSAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94
LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi55KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZEJv
eCkpOwotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgICAgICAgICB9Ci0jZW5k
aWYKLQorICAgICAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZs
b2F0TG9naWNhbExvY2F0aW9uLngoKSArIGNoaWxkTG9naWNhbExlZnRNYXJnaW4pOworICAgICAg
ICAgICAgICAgIHNldExvZ2ljYWxUb3BGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9j
YXRpb24ueSgpICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGRCb3gpKTsKICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgaWYgKGNoaWxkQmxvY2spCiAgICAgICAgICAgICAgICAgICAgIGNoaWxk
QmxvY2stPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKQEAgLTQ1NTgs
NyArNDUzNyw2IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmFkZE92ZXJoYW5naW5nRmxvYXRz
KFJlbmRlckJsb2NrKiBjaGlsZCwgYm9vbCBtYWtlQ2hpbGRQCiAgICAgICAgIExheW91dFVuaXQg
bG9naWNhbEJvdHRvbSA9IGNoaWxkTG9naWNhbFRvcCArIGxvZ2ljYWxCb3R0b21Gb3JGbG9hdDsK
ICAgICAgICAgbG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tID0gbWF4KGxvd2VzdEZsb2F0TG9naWNh
bEJvdHRvbSwgbG9naWNhbEJvdHRvbSk7CiAKLSAgICAgICAgLy8gRklYTUU6IEJ1ZyAxMDY5Mjcg
SGFuZGxlIHNpdHVhdGlvbnMgd2hlcmUgZmxvYXQgYW5kIHNoYXBlLW91dHNpZGUgb3ZlcmZsb3cg
ZGlmZmVyZW50bHkuCiAgICAgICAgIGlmIChsb2dpY2FsQm90dG9tID4gbG9naWNhbEhlaWdodCgp
KSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUgb2JqZWN0IGlzIG5vdCBpbiB0aGUgbGlzdCwgd2Ug
YWRkIGl0IG5vdy4KICAgICAgICAgICAgIGlmICghY29udGFpbnNGbG9hdChyLT5tX3JlbmRlcmVy
KSkgewpAQCAtNTAzNyw4ICs1MDE1LDggQEAgc3RhdGljIGlubGluZSBib29sIGlzRWRpdGluZ0Jv
dW5kYXJ5KFJlbmRlck9iamVjdCogYW5jZXN0b3IsIFJlbmRlck9iamVjdCogY2hpbGQKIHN0YXRp
YyBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludFJlc3BlY3RpbmdFZGl0aW5nQm91bmRh
cmllcyhSZW5kZXJCbG9jayogcGFyZW50LCBSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBMYXlvdXRQ
b2ludCYgcG9pbnRJblBhcmVudENvb3JkaW5hdGVzKQogewogICAgIExheW91dFBvaW50IGNoaWxk
TG9jYXRpb24gPSBjaGlsZC0+bG9jYXRpb24oKTsKLSAgICBpZiAoY2hpbGQtPmlzSW5GbG93UG9z
aXRpb25lZCgpKQotICAgICAgICBjaGlsZExvY2F0aW9uICs9IGNoaWxkLT5vZmZzZXRGb3JJbkZs
b3dQb3NpdGlvbigpOworICAgIGlmIChjaGlsZC0+aGFzUGFpbnRPZmZzZXQoKSkKKyAgICAgICAg
Y2hpbGRMb2NhdGlvbiArPSBjaGlsZC0+cGFpbnRPZmZzZXQoKTsKIAogICAgIC8vIEZJWE1FOiBU
aGlzIGlzIHdyb25nIGlmIHRoZSBjaGlsZCdzIHdyaXRpbmctbW9kZSBpcyBkaWZmZXJlbnQgZnJv
bSB0aGUgcGFyZW50J3MuCiAgICAgTGF5b3V0UG9pbnQgcG9pbnRJbkNoaWxkQ29vcmRpbmF0ZXMo
dG9MYXlvdXRQb2ludChwb2ludEluUGFyZW50Q29vcmRpbmF0ZXMgLSBjaGlsZExvY2F0aW9uKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDRmODFlYTAzNzc2MzM5
ZDIzOTA1NmQyZTdhNjgwMWEwY2JkNGIzMTcuLjkyODZmYTQ4ZWQ2OGM0NjFiYjdjZDhjMzE3N2Ri
ZWZmMjc3OWMxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC02
ODksMTQgKzY4OSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB9OwogCi0gICAgLy8gV2hlbiBh
IGZsb2F0IGhhcyBzaGFwZSBvdXRzaWRlLCBpdCBuZWVkcyB0byBiZSBoYW5kbGVkIGRpZmZlcmVu
dGx5IGF0Ci0gICAgLy8gcGFpbnQgdGltZSBhbmQgYXQgbGF5b3V0IHRpbWUsIHNpbmNlIHRoZSBj
b29yZGluYXRlcyBvZiB0aGUgc2hhcGUKLSAgICAvLyAoYWZmZWN0aW5nIGxheW91dCkgYW5kIHRo
ZSBjb29yZGluYXRlcyBvZiB0aGUgZmxvYXQgaXRzZWxmIChhZmZlY3RpbmcKLSAgICAvLyB3aGVy
ZSB0aGUgY29udGVudCBvZiB0aGUgZmxvYXQgaXMpIGNhbiBiZSBpbiBkaWZmZXJlbnQgcGxhY2Vz
LiBUaGlzIGVudW0KLSAgICAvLyBpcyB1c2VkIHRvIGNoYW5nZSBiZWhhdmlvciBiYXNlZCBvbiB0
aGF0IHN0YXRlLgotICAgIGVudW0gRmxvYXRSZW5kZXJpbmdTdGF0ZSB7IEZsb2F0TGF5b3V0LCBG
bG9hdFBhaW50IH07Ci0KLSAgICBMYXlvdXRQb2ludCBmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZv
ckNoaWxkKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiwgY29uc3QgTGF5b3V0UG9pbnQmLCBGbG9hdFJl
bmRlcmluZ1N0YXRlID0gRmxvYXRMYXlvdXQpIGNvbnN0OworICAgIExheW91dFBvaW50IGZsaXBG
bG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY29uc3QgRmxvYXRpbmdPYmplY3QqLCBjb25zdCBM
YXlvdXRQb2ludCYpIGNvbnN0OwogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wRm9yRmxvYXQo
Y29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gY2hpbGQtPnkoKSA6IGNoaWxkLT54KCk7IH0KICAgICBMYXlvdXRVbml0
IGxvZ2ljYWxCb3R0b21Gb3JGbG9hdChjb25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQpIGNvbnN0
IHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjaGlsZC0+bWF4WSgpIDogY2hp
bGQtPm1heFgoKTsgfQpAQCAtNzM4LDEzICs3MzEsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IGNoaWxkLT5zZXRIZWlnaHQobG9naWNhbFdpZHRoKTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0
IHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBj
aGlsZCwgRmxvYXRSZW5kZXJpbmdTdGF0ZSByZW5kZXJpbmdTdGF0ZSA9IEZsb2F0TGF5b3V0KSBj
b25zdAorICAgIExheW91dFVuaXQgeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY29u
c3QgRmxvYXRpbmdPYmplY3QqIGNoaWxkKSBjb25zdAogICAgIHsKICNpZiBFTkFCTEUoQ1NTX0VY
Q0xVU0lPTlMpCiAgICAgICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8gKnNoYXBlT3V0c2lk
ZSA9IGNoaWxkLT5yZW5kZXJlcigpLT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCk7Ci0gICAg
ICAgIGlmIChyZW5kZXJpbmdTdGF0ZSA9PSBGbG9hdFBhaW50ICYmIHNoYXBlT3V0c2lkZSkKLSAg
ICAgICAgICAgIHJldHVybiBjaGlsZC0+eCgpIC0gKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBzaGFwZU91dHNpZGUtPnNoYXBlTG9naWNhbExlZnQoKSA6IHNoYXBlT3V0c2lkZS0+c2hhcGVM
b2dpY2FsVG9wKCkpOwotICAgICAgICAvLyBGSVhNRTogQnVnIDEwNjkyOCBUaGlzIG5lZWRzIHRv
IHByb3Blcmx5IGhhbmRsZSB0aGUgbWFyZ2luIGZvciBmbG9hdHMgd2l0aCBzaGFwZS1vdXRzaWRl
IGZvciBub24tcGFpbnQgdGltZS4KKyAgICAgICAgaWYgKHNoYXBlT3V0c2lkZSkKKyAgICAgICAg
ICAgIHJldHVybiBjaGlsZC0+eCgpOwogI2VuZGlmCiAKICAgICAgICAgaWYgKGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkpCkBAIC03NTMsMTMgKzc0NSwxMiBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgcmV0dXJuIGNoaWxkLT54KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZC0+cmVuZGVy
ZXIoKSk7CiAgICAgfQogICAgICAgICAKLSAgICBMYXlvdXRVbml0IHlQb3NpdGlvbkZvckZsb2F0
SW5jbHVkaW5nTWFyZ2luKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCwgRmxvYXRSZW5kZXJp
bmdTdGF0ZSByZW5kZXJpbmdTdGF0ZSA9IEZsb2F0TGF5b3V0KSBjb25zdAorICAgIExheW91dFVu
aXQgeVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY29uc3QgRmxvYXRpbmdPYmplY3Qq
IGNoaWxkKSBjb25zdAogICAgIHsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAg
IEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8gKnNoYXBlT3V0c2lkZSA9IGNoaWxkLT5yZW5kZXJl
cigpLT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCk7Ci0gICAgICAgIGlmIChyZW5kZXJpbmdT
dGF0ZSA9PSBGbG9hdFBhaW50ICYmIHNoYXBlT3V0c2lkZSkKLSAgICAgICAgICAgIHJldHVybiBj
aGlsZC0+eSgpIC0gKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBzaGFwZU91dHNpZGUtPnNo
YXBlTG9naWNhbFRvcCgpIDogc2hhcGVPdXRzaWRlLT5zaGFwZUxvZ2ljYWxMZWZ0KCkpOwotICAg
ICAgICAvLyBGSVhNRTogQnVnIDEwNjkyOCBUaGlzIG5lZWRzIHRvIHByb3Blcmx5IGhhbmRsZSB0
aGUgbWFyZ2luIGZvciBmbG9hdHMgd2l0aCBzaGFwZS1vdXRzaWRlLgorICAgICAgICBpZiAoc2hh
cGVPdXRzaWRlKQorICAgICAgICAgICAgcmV0dXJuIGNoaWxkLT55KCk7CiAjZW5kaWYKIAogICAg
ICAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAKaW5kZXggYmJmYjkwNjIzN2E3NDU2YTY3NDY2MmFmNzQ1YTkxNzlmNDJj
OWY0ZS4uYjUxNzdkYmI2NWVhMzFlMjI0YTc2MGUwMTQ3ZDliMWU4ODk4MjdlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTE2MDUsOCArMTYwNSw4IEBAIHZvaWQg
UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluCiAgICAgICAgIGlmICh2LT5sYXlvdXRTdGF0ZUVuYWJsZWQoKSAm
JiAhcmVwYWludENvbnRhaW5lcikgewogICAgICAgICAgICAgTGF5b3V0U3RhdGUqIGxheW91dFN0
YXRlID0gdi0+bGF5b3V0U3RhdGUoKTsKICAgICAgICAgICAgIExheW91dFNpemUgb2Zmc2V0ID0g
bGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQgKyBsb2NhdGlvbk9mZnNldCgpOwotICAgICAgICAg
ICAgaWYgKHN0eWxlKCktPmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAg
ICAgICAgICBvZmZzZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAg
ICAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNQYWludE9mZnNldCgpICYmIGxheWVyKCkpCisgICAg
ICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAgICAgICAgICAg
ICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KQEAgLTE3MTgsOCArMTcxOCw4IEBAIExheW91dFNpemUgUmVuZGVyQm94OjpvZmZzZXRG
cm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCogbywgY29uc3QgTGF5b3V0UG9pbnQmIHBvCiAgICAg
QVNTRVJUKG8gPT0gY29udGFpbmVyKCkpOwogCiAgICAgTGF5b3V0U2l6ZSBvZmZzZXQ7ICAgIAot
ICAgIGlmIChpc0luRmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgb2Zmc2V0ICs9IG9mZnNldEZv
ckluRmxvd1Bvc2l0aW9uKCk7CisgICAgaWYgKGhhc1BhaW50T2Zmc2V0KCkpCisgICAgICAgIG9m
ZnNldCArPSBwYWludE9mZnNldCgpOwogCiAgICAgaWYgKCFpc0lubGluZSgpIHx8IGlzUmVwbGFj
ZWQoKSkgewogICAgICAgICBpZiAoIXN0eWxlKCktPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkgJiYg
by0+aGFzQ29sdW1ucygpKSB7CkBAIC0xODU2LDggKzE4NTYsOCBAQCB2b2lkIFJlbmRlckJveDo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YQogICAgICAgICAgICAgICAgIHJlY3QgPSBsYXllcigpLT50cmFuc2Zvcm0oKS0+bWFw
UmVjdChwaXhlbFNuYXBwZWRJbnRSZWN0KHJlY3QpKTsKIAogICAgICAgICAgICAgLy8gV2UgY2Fu
J3QgdHJ1c3QgdGhlIGJpdHMgb24gUmVuZGVyT2JqZWN0LCBiZWNhdXNlIHRoaXMgbWlnaHQgYmUg
Y2FsbGVkIHdoaWxlIHJlLXJlc29sdmluZyBzdHlsZS4KLSAgICAgICAgICAgIGlmIChzdHlsZVRv
VXNlLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0gICAgICAgICAgICAgICAgcmVj
dC5tb3ZlKGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCkpOworICAgICAgICAgICAg
aWYgKHN0eWxlVG9Vc2UtPmhhc1BhaW50T2Zmc2V0KCkgJiYgbGF5ZXIoKSkKKyAgICAgICAgICAg
ICAgICByZWN0Lm1vdmUobGF5ZXIoKS0+cGFpbnRPZmZzZXQoKSk7CiAKICAgICAgICAgICAgIHJl
Y3QubW92ZUJ5KGxvY2F0aW9uKCkpOwogICAgICAgICAgICAgcmVjdC5tb3ZlKGxheW91dFN0YXRl
LT5tX3BhaW50T2Zmc2V0KTsKQEAgLTE5MDEsMTIgKzE5MDEsMTIgQEAgdm9pZCBSZW5kZXJCb3g6
OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGEKIAogICAgIGlmIChwb3NpdGlvbiA9PSBBYnNvbHV0ZVBvc2l0aW9uICYmIG8tPmlz
SW5GbG93UG9zaXRpb25lZCgpICYmIG8tPmlzUmVuZGVySW5saW5lKCkpCiAgICAgICAgIHRvcExl
ZnQgKz0gdG9SZW5kZXJJbmxpbmUobyktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRJbmxpbmUo
dGhpcyk7Ci0gICAgZWxzZSBpZiAoKHBvc2l0aW9uID09IFJlbGF0aXZlUG9zaXRpb24gfHwgcG9z
aXRpb24gPT0gU3RpY2t5UG9zaXRpb24pICYmIGxheWVyKCkpIHsKKyAgICBlbHNlIGlmIChzdHls
ZVRvVXNlLT5oYXNQYWludE9mZnNldCgpICYmIGxheWVyKCkpIHsKICAgICAgICAgLy8gQXBwbHkg
dGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mZnNldCB3aGVuIGludmFsaWRhdGluZyBhIHJlY3Rhbmds
ZS4gIFRoZSBsYXllcgogICAgICAgICAvLyBpcyB0cmFuc2xhdGVkLCBidXQgdGhlIHJlbmRlciBi
b3ggaXNuJ3QsIHNvIHdlIG5lZWQgdG8gZG8gdGhpcyB0byBnZXQgdGhlCiAgICAgICAgIC8vIHJp
Z2h0IGRpcnR5IHJlY3QuICBTaW5jZSB0aGlzIGlzIGNhbGxlZCBmcm9tIFJlbmRlck9iamVjdDo6
c2V0U3R5bGUsIHRoZSByZWxhdGl2ZSBwb3NpdGlvbgogICAgICAgICAvLyBmbGFnIG9uIHRoZSBS
ZW5kZXJPYmplY3QgaGFzIGJlZW4gY2xlYXJlZCwgc28gdXNlIHRoZSBvbmUgb24gdGhlIHN0eWxl
KCkuCi0gICAgICAgIHRvcExlZnQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24o
KTsKKyAgICAgICAgdG9wTGVmdCArPSBsYXllcigpLT5wYWludE9mZnNldCgpOwogICAgIH0KICAg
ICAKICAgICBpZiAocG9zaXRpb24gIT0gQWJzb2x1dGVQb3NpdGlvbiAmJiBwb3NpdGlvbiAhPSBG
aXhlZFBvc2l0aW9uICYmIG8tPmhhc0NvbHVtbnMoKSAmJiBvLT5pc0Jsb2NrRmxvdygpKSB7CkBA
IC00MjYzLDcgKzQyNjMsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6bGF5b3V0T3ZlcmZsb3dS
ZWN0Rm9yUHJvcGFnYXRpb24oUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKQogICAgICAgICByZWN0
LnVuaXRlKGxheW91dE92ZXJmbG93UmVjdCgpKTsKIAogICAgIGJvb2wgaGFzVHJhbnNmb3JtID0g
aGFzTGF5ZXIoKSAmJiBsYXllcigpLT50cmFuc2Zvcm0oKTsKLSAgICBpZiAoaXNJbkZsb3dQb3Np
dGlvbmVkKCkgfHwgaGFzVHJhbnNmb3JtKSB7CisgICAgaWYgKGhhc1BhaW50T2Zmc2V0KCkgfHwg
aGFzVHJhbnNmb3JtKSB7CiAgICAgICAgIC8vIElmIHdlIGFyZSByZWxhdGl2ZWx5IHBvc2l0aW9u
ZWQgb3IgaWYgd2UgaGF2ZSBhIHRyYW5zZm9ybSwgdGhlbiB3ZSBoYXZlIHRvIGNvbnZlcnQKICAg
ICAgICAgLy8gdGhpcyByZWN0YW5nbGUgaW50byBwaHlzaWNhbCBjb29yZGluYXRlcywgYXBwbHkg
cmVsYXRpdmUgcG9zaXRpb25pbmcgYW5kIHRyYW5zZm9ybXMKICAgICAgICAgLy8gdG8gaXQsIGFu
ZCB0aGVuIGNvbnZlcnQgaXQgYmFjay4KQEAgLTQyNzIsOCArNDI3Miw4IEBAIExheW91dFJlY3Qg
UmVuZGVyQm94OjpsYXlvdXRPdmVyZmxvd1JlY3RGb3JQcm9wYWdhdGlvbihSZW5kZXJTdHlsZSog
cGFyZW50U3R5bGUpCiAgICAgICAgIGlmIChoYXNUcmFuc2Zvcm0pCiAgICAgICAgICAgICByZWN0
ID0gbGF5ZXIoKS0+Y3VycmVudFRyYW5zZm9ybSgpLm1hcFJlY3QocmVjdCk7CiAKLSAgICAgICAg
aWYgKGlzSW5GbG93UG9zaXRpb25lZCgpKQotICAgICAgICAgICAgcmVjdC5tb3ZlKG9mZnNldEZv
ckluRmxvd1Bvc2l0aW9uKCkpOworICAgICAgICBpZiAoaGFzUGFpbnRPZmZzZXQoKSkKKyAgICAg
ICAgICAgIHJlY3QubW92ZShwYWludE9mZnNldCgpKTsKICAgICAgICAgCiAgICAgICAgIC8vIE5v
dyB3ZSBuZWVkIHRvIGZsaXAgYmFjay4KICAgICAgICAgZmxpcEZvcldyaXRpbmdNb2RlKHJlY3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDYwOGZjNzU4ZDgxMWVjMDI2
NDVkMGE2YTQyNGE1NTI0YTViNTQ1ZTYuLjBlMjU5NTM4ZjcxNzRiNTQ3ZDE0ZWQ0YWU2ZTY1NzU5
NzhiNWYzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHVibGljOgogCiAgICAgLy8gaGFzQXV0b1pJbmRleCBvbmx5IHJldHVybnMgdHJ1ZSBp
ZiB0aGUgZWxlbWVudCBpcyBwb3NpdGlvbmVkIG9yIGEgZmxleC1pdGVtIHNpbmNlCiAgICAgLy8g
cG9zaXRpb246c3RhdGljIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCBmbGV4LWl0ZW1zIGdldCB0aGVp
ciB6LWluZGV4IGNvZXJjZWQgdG8gYXV0by4KLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXll
cigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGlzUm9vdCgpIHx8IGlzUG9zaXRpb25lZCgpIHx8
IGNyZWF0ZXNHcm91cCgpIHx8IGhhc0NsaXBQYXRoKCkgfHwgaGFzT3ZlcmZsb3dDbGlwKCkgfHwg
aGFzVHJhbnNmb3JtKCkgfHwgaGFzSGlkZGVuQmFja2ZhY2UoKSB8fCBoYXNSZWZsZWN0aW9uKCkg
fHwgc3R5bGUoKS0+c3BlY2lmaWVzQ29sdW1ucygpIHx8ICFzdHlsZSgpLT5oYXNBdXRvWkluZGV4
KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIGlzUm9vdCgpIHx8IGlzUG9zaXRpb25lZCgpIHx8IGNyZWF0ZXNHcm91cCgpIHx8IGhh
c0NsaXBQYXRoKCkgfHwgaGFzT3ZlcmZsb3dDbGlwKCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFz
SGlkZGVuQmFja2ZhY2UoKSB8fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5bGUoKS0+c3BlY2lmaWVz
Q29sdW1ucygpIHx8ICFzdHlsZSgpLT5oYXNBdXRvWkluZGV4KCkgfHwgKHN0eWxlKCktPnNoYXBl
T3V0c2lkZSgpICYmIGlzRmxvYXRpbmcoKSk7IH0KIAogICAgIC8vIFVzZSB0aGlzIHdpdGggY2F1
dGlvbiEgTm8gdHlwZSBjaGVja2luZyBpcyBkb25lIQogICAgIFJlbmRlckJveCogZmlyc3RDaGls
ZEJveCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKaW5kZXggODg1OGYwZTJhN2RlYTNjNDE2YTVlYzAzODQzMDc2YzdiZTk4
ZjkyZC4uMGI2OTIzN2QxMzE3YWUzN2Y1ODE4M2JlNzcyOGYxNTFjNzBiYWQ3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC01
MzQsNiArNTM0LDE5IEBAIExheW91dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om9mZnNldEZv
ckluRmxvd1Bvc2l0aW9uKCkgY29uc3QKICAgICByZXR1cm4gTGF5b3V0U2l6ZSgpOwogfQogCitM
YXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludE9mZnNldCgpIGNvbnN0Cit7Cisg
ICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBvZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworCisjaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQorICAgIGlmIChpc0JveCgpICYmIGlzRmxvYXRpbmcoKSkK
KyAgICAgICAgaWYgKEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8qIHNoYXBlT3V0c2lkZSA9IHRv
UmVuZGVyQm94KHRoaXMpLT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCkpCisgICAgICAgICAg
ICBvZmZzZXQgLT0gc2hhcGVPdXRzaWRlLT5zaGFwZUxvZ2ljYWxPZmZzZXQoKTsKKyNlbmRpZgor
CisgICAgcmV0dXJuIG9mZnNldDsKK30KKwogTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6b2Zmc2V0TGVmdCgpIGNvbnN0CiB7CiAgICAgLy8gTm90ZSB0aGF0IFJlbmRlcklubGluZSBh
bmQgUmVuZGVyQm94IG92ZXJyaWRlIHRoaXMgdG8gcGFzcyBhIGRpZmZlcmVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCA2NWZlMDZm
YjNlMTYyZTI1MzQ4NTAwMTgzODFhYTdiMWRlMDcyYWExLi5hMzJlZDFlM2Q0NTExNDI3YzI4YzNi
YTNjYTkyYjIxYzhiZmEyNzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0
U2l6ZSBzdGlja3lQb3NpdGlvbkxvZ2ljYWxPZmZzZXQoKSBjb25zdCB7IHJldHVybiBzdHlsZSgp
LT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gc3RpY2t5UG9zaXRpb25PZmZzZXQoKSA6IHN0
aWNreVBvc2l0aW9uT2Zmc2V0KCkudHJhbnNwb3NlZFNpemUoKTsgfQogCiAgICAgTGF5b3V0U2l6
ZSBvZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpIGNvbnN0OworICAgIExheW91dFNpemUgcGFpbnRP
ZmZzZXQoKSBjb25zdDsKIAogICAgIC8vIElFIGV4dGVuc2lvbnMuIFVzZWQgdG8gY2FsY3VsYXRl
IG9mZnNldFdpZHRoL0hlaWdodC4gIE92ZXJyaWRkZW4gYnkgaW5saW5lcyAoUmVuZGVyRmxvdykK
ICAgICAvLyB0byByZXR1cm4gdGhlIHJlbWFpbmluZyB3aWR0aCBvbiBhIGdpdmVuIGxpbmUgKGFu
ZCB0aGUgaGVpZ2h0IG9mIGEgc2luZ2xlIGxpbmUpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcAppbmRleCA5NThjYWQyZGVlNmQxYWMzZTAzNTQyNzY2NDgyMTMyNTg3
NjNiMGZkLi5lYjEzMGM4NTk2MDdlZDg5MTY2YzIwYWQ3OTJiYzZmODAzNTE1NTY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtMTAxMiw3ICsxMDEyLDcg
QEAgTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGlmIChpbmxpbmVGbG93LT5zdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYm
IGlubGluZUZsb3ctPmhhc0xheWVyKCkpCi0gICAgICAgICAgICByZXBhaW50UmVjdC5tb3ZlKHRv
UmVuZGVySW5saW5lKGlubGluZUZsb3cpLT5sYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlv
bigpKTsKKyAgICAgICAgICAgIHJlcGFpbnRSZWN0Lm1vdmUodG9SZW5kZXJJbmxpbmUoaW5saW5l
RmxvdyktPmxheWVyKCktPnBhaW50T2Zmc2V0KCkpOwogICAgIH0KIAogICAgIExheW91dFVuaXQg
b3V0bGluZVNpemUgPSBzdHlsZSgpLT5vdXRsaW5lU2l6ZSgpOwpAQCAtMTA1OSw3ICsxMDU5LDcg
QEAgdm9pZCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q28KICAgICAgICAgaWYgKHYtPmxheW91dFN0YXRlRW5h
YmxlZCgpICYmICFyZXBhaW50Q29udGFpbmVyKSB7CiAgICAgICAgICAgICBMYXlvdXRTdGF0ZSog
bGF5b3V0U3RhdGUgPSB2LT5sYXlvdXRTdGF0ZSgpOwogICAgICAgICAgICAgaWYgKHN0eWxlKCkt
Pmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgICAgICByZWN0Lm1v
dmUobGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSk7CisgICAgICAgICAgICAgICAg
cmVjdC5tb3ZlKGxheWVyKCktPnBhaW50T2Zmc2V0KCkpOwogICAgICAgICAgICAgcmVjdC5tb3Zl
KGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0KTsKICAgICAgICAgICAgIGlmIChsYXlvdXRTdGF0
ZS0+bV9jbGlwcGVkKQogICAgICAgICAgICAgICAgIHJlY3QuaW50ZXJzZWN0KGxheW91dFN0YXRl
LT5tX2NsaXBSZWN0KTsKQEAgLTEwOTIsNyArMTA5Miw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpj
b21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvCiAgICAgICAgIC8vIGlzIHRyYW5zbGF0ZWQsIGJ1dCB0aGUgcmVuZGVyIGJveCBpc24ndCwg
c28gd2UgbmVlZCB0byBkbyB0aGlzIHRvIGdldCB0aGUKICAgICAgICAgLy8gcmlnaHQgZGlydHkg
cmVjdC4gU2luY2UgdGhpcyBpcyBjYWxsZWQgZnJvbSBSZW5kZXJPYmplY3Q6OnNldFN0eWxlLCB0
aGUgcmVsYXRpdmUgb3Igc3RpY2t5IHBvc2l0aW9uCiAgICAgICAgIC8vIGZsYWcgb24gdGhlIFJl
bmRlck9iamVjdCBoYXMgYmVlbiBjbGVhcmVkLCBzbyB1c2UgdGhlIG9uZSBvbiB0aGUgc3R5bGUo
KS4KLSAgICAgICAgdG9wTGVmdCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigp
OworICAgICAgICB0b3BMZWZ0ICs9IGxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAgICAgfQogICAg
IAogICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgdGhlIGxpZ2h0d2VpZ2h0IGNsaXBwaW5nIHJlY3Qg
dGhhdCBjb250cm9scyB1c2UsIHNpbmNlIGlmIHxvfCBpcyBpbiBtaWQtbGF5b3V0LApAQCAtMTE0
NCw3ICsxMTQ0LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnQKICAgICAgICAgICAgIExheW91
dFN0YXRlKiBsYXlvdXRTdGF0ZSA9IHYtPmxheW91dFN0YXRlKCk7CiAgICAgICAgICAgICBMYXlv
dXRTaXplIG9mZnNldCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0OwogICAgICAgICAgICAg
aWYgKHN0eWxlKCktPmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAg
ICAgICBvZmZzZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICAg
ICAgICAgICAgICBvZmZzZXQgKz0gbGF5ZXIoKS0+cGFpbnRPZmZzZXQoKTsKICAgICAgICAgICAg
IHRyYW5zZm9ybVN0YXRlLm1vdmUob2Zmc2V0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZThkMDNl
YTExZDE0MjcyNjBhNDIyNzEwM2RiMDdiMmM3Zjg1NmQwNy4uOWExZDMzYWE4YmE5MTQ1MGM3MzUz
YmYyN2M4MjVhNmMyY2VjMDk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCkBAIC0xMTg1LDEzICsxMTg1LDEzIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxh
eWVyUG9zaXRpb24oKQogICAgIH0KICAgICAKICAgICBib29sIHBvc2l0aW9uT3JPZmZzZXRDaGFu
Z2VkID0gZmFsc2U7Ci0gICAgaWYgKHJlbmRlcmVyKCktPmlzSW5GbG93UG9zaXRpb25lZCgpKSB7
Ci0gICAgICAgIExheW91dFNpemUgbmV3T2Zmc2V0ID0gdG9SZW5kZXJCb3hNb2RlbE9iamVjdChy
ZW5kZXJlcigpKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKLSAgICAgICAgcG9zaXRpb25P
ck9mZnNldENoYW5nZWQgPSBuZXdPZmZzZXQgIT0gbV9vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbjsK
LSAgICAgICAgbV9vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbiA9IG5ld09mZnNldDsKLSAgICAgICAg
bG9jYWxQb2ludC5tb3ZlKG1fb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24pOworICAgIGlmIChyZW5k
ZXJlcigpLT5oYXNQYWludE9mZnNldCgpKSB7CisgICAgICAgIExheW91dFNpemUgbmV3T2Zmc2V0
ID0gdG9SZW5kZXJCb3hNb2RlbE9iamVjdChyZW5kZXJlcigpKS0+cGFpbnRPZmZzZXQoKTsKKyAg
ICAgICAgcG9zaXRpb25Pck9mZnNldENoYW5nZWQgPSBuZXdPZmZzZXQgIT0gbV9wYWludE9mZnNl
dDsKKyAgICAgICAgbV9wYWludE9mZnNldCA9IG5ld09mZnNldDsKKyAgICAgICAgbG9jYWxQb2lu
dC5tb3ZlKG1fcGFpbnRPZmZzZXQpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fb2Zmc2V0Rm9y
SW5GbG93UG9zaXRpb24gPSBMYXlvdXRTaXplKCk7CisgICAgICAgIG1fcGFpbnRPZmZzZXQgPSBM
YXlvdXRTaXplKCk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdlJ2QgcmVhbGx5IGxpa2UgdG8g
anVzdCBnZXQgcmlkIG9mIHRoZSBjb25jZXB0IG9mIGEgbGF5ZXIgcmVjdGFuZ2xlIGFuZCByZWx5
IG9uIHRoZSByZW5kZXJlcnMuCkBAIC00NTk5LDcgKzQ1OTksNyBAQCB2b2lkIFJlbmRlckxheWVy
OjpjYWxjdWxhdGVDbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xpcFJlY3RzQ29u
dGV4dCwgQwogICAgICAgICBjbGlwUmVjdHMuc2V0UG9zQ2xpcFJlY3QoY2xpcFJlY3RzLmZpeGVk
Q2xpcFJlY3QoKSk7CiAgICAgICAgIGNsaXBSZWN0cy5zZXRPdmVyZmxvd0NsaXBSZWN0KGNsaXBS
ZWN0cy5maXhlZENsaXBSZWN0KCkpOwogICAgICAgICBjbGlwUmVjdHMuc2V0Rml4ZWQodHJ1ZSk7
Ci0gICAgfSBlbHNlIGlmIChyZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigp
KQorICAgIH0gZWxzZSBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzUGFpbnRPZmZzZXQoKSkK
ICAgICAgICAgY2xpcFJlY3RzLnNldFBvc0NsaXBSZWN0KGNsaXBSZWN0cy5vdmVyZmxvd0NsaXBS
ZWN0KCkpOwogICAgIGVsc2UgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPnBvc2l0aW9uKCkgPT0g
QWJzb2x1dGVQb3NpdGlvbikKICAgICAgICAgY2xpcFJlY3RzLnNldE92ZXJmbG93Q2xpcFJlY3Qo
Y2xpcFJlY3RzLnBvc0NsaXBSZWN0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaAppbmRleCAwYjY3NDUzM2U2ZDUyZDI2NWJjMDViOWEzN2NhMzcyMmIzNmYyOGRmLi4zZjYw
MzVkNGFhOWY2ZjhjZjc4ZWMyNDZiN2YwMmRhMmIwNTExMDliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDI1LDcgKzQyNSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHVwZGF0ZUJsZW5kTW9kZSgpOwogI2VuZGlmCiAKLSAgICBjb25zdCBMYXlvdXRTaXplJiBvZmZz
ZXRGb3JJbkZsb3dQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb247IH0KKyAgICBjb25zdCBMYXlvdXRTaXplJiBwYWludE9mZnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFpbnRPZmZzZXQ7IH0KIAogICAgIHZvaWQgY2xlYXJDbGlwUmVjdHNJbmNsdWRpbmdE
ZXNjZW5kYW50cyhDbGlwUmVjdHNUeXBlIHR5cGVUb0NsZWFyID0gQWxsQ2xpcFJlY3RUeXBlcyk7
CiAgICAgdm9pZCBjbGVhckNsaXBSZWN0cyhDbGlwUmVjdHNUeXBlIHR5cGVUb0NsZWFyID0gQWxs
Q2xpcFJlY3RUeXBlcyk7CkBAIC0xMTI0LDggKzExMjQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgTGF5
b3V0UmVjdCBtX3JlcGFpbnRSZWN0OyAvLyBDYWNoZWQgcmVwYWludCByZWN0cy4gVXNlZCBieSBs
YXlvdXQuCiAgICAgTGF5b3V0UmVjdCBtX291dGxpbmVCb3g7CiAKLSAgICAvLyBPdXIgY3VycmVu
dCByZWxhdGl2ZSBwb3NpdGlvbiBvZmZzZXQuCi0gICAgTGF5b3V0U2l6ZSBtX29mZnNldEZvcklu
Rmxvd1Bvc2l0aW9uOworICAgIC8vIFBhaW50IHRpbWUgb2Zmc2V0IG9ubHksIGl0IGlzIHVzZWQg
Zm9yIHByb3Blcmx5IHBhaW50IHJlbGF0aXZlIC8gc3RpY2t5IHBvc2l0aW9uZWQgZWxlbWVudHMg
YW5kIGV4Y2x1c2lvbiBib3hlcyBvbiBmbG9hdHMuCisgICAgTGF5b3V0U2l6ZSBtX3BhaW50T2Zm
c2V0OwogCiAgICAgLy8gT3VyICh4LHkpIGNvb3JkaW5hdGVzIGFyZSBpbiBvdXIgcGFyZW50IGxh
eWVyJ3MgY29vcmRpbmF0ZSBzcGFjZS4KICAgICBMYXlvdXRQb2ludCBtX3RvcExlZnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMjdhN2E0NWRhZmZiZjllY2Nm
ZTg4NmY3M2MwYzcwOWQ0NjcyODNhYi4uNTBmYWE2Y2YzOTA0NmM3ODk5YWM1MzJmZjg0YjlmYzFi
ZDI2ZDdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNTI1
LDYgKzUyNSwxNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzT3V0T2ZGbG93UG9zaXRpb25lZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpOyB9IC8v
IGFic29sdXRlIG9yIGZpeGVkIHBvc2l0aW9uaW5nCiAgICAgYm9vbCBpc0luRmxvd1Bvc2l0aW9u
ZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc1JlbFBvc2l0aW9uZWQoKSB8fCBtX2Jp
dGZpZWxkcy5pc1N0aWNreVBvc2l0aW9uZWQoKTsgfSAvLyByZWxhdGl2ZSBvciBzdGlja3kgcG9z
aXRpb25pbmcKKyAgICBib29sIGhhc1BhaW50T2Zmc2V0KCkgY29uc3QKKyAgICB7CisgICAgICAg
IGJvb2wgcG9zaXRpb25lZCA9IGlzSW5GbG93UG9zaXRpb25lZCgpOworI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKKyAgICAgICAgLy8gU2hhcGUgb3V0c2lkZSBvbiBhIGZsb2F0IGNhbiByZXBv
c2l0aW9uIHRoZSBmbG9hdCBpbiBtdWNoIHRoZQorICAgICAgICAvLyBzYW1lIHdheSBhcyByZWxh
dGl2ZSBwb3NpdGlvbmluZywgc28gdHJlYXQgaXQgYXMgc3VjaC4KKyAgICAgICAgcG9zaXRpb25l
ZCA9IHBvc2l0aW9uZWQgfHwgKG1fYml0ZmllbGRzLmZsb2F0aW5nKCkgJiYgbV9iaXRmaWVsZHMu
aXNCb3goKSAmJiBzdHlsZSgpLT5zaGFwZU91dHNpZGUoKSk7CisjZW5kaWYKKyAgICAgICAgcmV0
dXJuIHBvc2l0aW9uZWQ7CisgICAgfQogICAgIGJvb2wgaXNSZWxQb3NpdGlvbmVkKCkgY29uc3Qg
eyByZXR1cm4gbV9iaXRmaWVsZHMuaXNSZWxQb3NpdGlvbmVkKCk7IH0gLy8gcmVsYXRpdmUgcG9z
aXRpb25pbmcKICAgICBib29sIGlzU3RpY2t5UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1f
Yml0ZmllbGRzLmlzU3RpY2t5UG9zaXRpb25lZCgpOyB9CiAgICAgYm9vbCBpc1Bvc2l0aW9uZWQo
KSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc1Bvc2l0aW9uZWQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAwMmNmMGM5OTcxNzc5
YjE5N2YwYjBhODg0NmZkOWU1NzExOGVjMjMyLi44YzI1MzJmZTNkZWJmNWMxZTAwNjRhNDgyMjRm
Yzk0MmE0ODJlMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaApAQCAtNDYwLDYgKzQ2MCwxNCBAQCBwdWJsaWM6CiAgICAgRVBvc2l0aW9uIHBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVBvc2l0aW9uPihub25pbmhlcml0ZWRf
ZmxhZ3MuX3Bvc2l0aW9uKTsgfQogICAgIGJvb2wgaGFzT3V0T2ZGbG93UG9zaXRpb24oKSBjb25z
dCB7IHJldHVybiBwb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb24gfHwgcG9zaXRpb24oKSA9
PSBGaXhlZFBvc2l0aW9uOyB9CiAgICAgYm9vbCBoYXNJbkZsb3dQb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIHBvc2l0aW9uKCkgPT0gUmVsYXRpdmVQb3NpdGlvbiB8fCBwb3NpdGlvbigpID09IFN0
aWNreVBvc2l0aW9uOyB9CisgICAgYm9vbCBoYXNQYWludE9mZnNldCgpIGNvbnN0CisgICAgewor
ICAgICAgICBib29sIHBhaW50T2Zmc2V0ID0gaGFzSW5GbG93UG9zaXRpb24oKTsKKyNpZiBFTkFC
TEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgICAgIHBhaW50T2Zmc2V0ID0gcGFpbnRPZmZzZXQgfHwg
KGlzRmxvYXRpbmcoKSAmJiBzaGFwZU91dHNpZGUoKSk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJu
IHBhaW50T2Zmc2V0OworICAgIH0KICAgICBib29sIGhhc1ZpZXdwb3J0Q29uc3RyYWluZWRQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIHBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbiB8fCBwb3Np
dGlvbigpID09IFN0aWNreVBvc2l0aW9uOyB9CiAgICAgRUZsb2F0IGZsb2F0aW5nKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZsb2F0Pihub25pbmhlcml0ZWRfZmxhZ3MuX2Zsb2F0aW5n
KTsgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMTJkOTJlYzY4N2M3ZTE2ZDQ3YTgxODAzNmM1YTBhYTRlYzc4MDcyYy4u
NDc3MzhiNjA4ZTkxMzY0OTZmM2ZjZjZmOTAwOTY1N2Q2YzQ0ZjI3ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEzLTAyLTExICBCZW0gSm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgor
CisgICAgICAgIFtDU1MgRXhjbHVzaW9uc10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcg
YSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGFsc28gdGVzdGVkIGJ5IHRoZSBleGlzdGluZyB0
ZXN0cyBmb3Igc2hhcGUgb3V0c2lkZSBvbiBmbG9hdHMgcG9zaXRpb25pbmcuCisKKyAgICAgICAg
KiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9h
dHMtb3ZlcmhhbmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNp
b25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLmh0
bWw6IEFkZGVkLgorCiAyMDEzLTAyLTExICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lz
YS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBmYXN0L2Zvcm1zL251bWJlci9udW1iZXIt
bDEwbi1pbnB1dC5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVy
aGFuZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91
dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjAwZDkwYjA2Y2Q0MTk2ZGMyMTk2MGQ4MjE2Y2Q3NjI3NjM1NTBlOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRl
LWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsNTQgQEAKKzxodG1sPgorICA8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAjdG9wIHsK
KyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGNvbG9yOiB5ZWxsb3c7CisgICAgICAgIGZvbnQ6
IDEwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgfQorICAgICAgI3NoYXBlIHsKKyAgICAg
ICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgIHJpZ2h0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgfQorICAgICAgI2Zsb2F0IHsKKyAg
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBmbG9h
dDogcmlnaHQ7CisgICAgICB9CisgICAgICAjYm90dG9tIHsKKyAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW47CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIH0KKyAgICA8L3N0eWxl
PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTI3Ij5CdWcgMTA2OTI3PC9hPjogW0NTUyBFeGNs
dXNpb25zXSBIYW5kbGUgc2hhcGUtb3V0c2lkZSBjaGFuZ2luZyBhIGZsb2F0J3Mgb3Zlcmhhbmcg
YmVoYXZpb3I8L2gxPgorICAgIDxoMj5Zb3Ugc2hvdWxkIHNlZSBhIHllbGxvdyBzcXVhcmUgdG8g
dGhlIGxlZnQgb2YgYSBibHVlIHNxdWFyZSwgd2l0aCB0aGUgYmx1ZSBzcXVhcmUgY292ZXJpbmcg
dGhlIHRleHQgaW4gdGhlIHllbGxvdyBhcmVhLiBUaGUgbG93ZXIgZ3JlZW4gcmVjdGFuZ2xlIHNo
b3VsZCBoYXZlIHRleHQgd3JhcHBpbmcgYXJvdW5kIGEgc3F1YXJlIGFyZWEgb24gdGhlIHJpZ2h0
IGFzIGlmIHRoZXJlIGlzIGEgZmxvYXQgdGhlcmUuIFlvdSBzaG91bGQgbm90IHNlZSBhbnkgcmVk
LjwvaDI+CisgICAgPGRpdiBpZD0idG9wIj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0i
Y29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHls
ZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBz
dHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3Bh
biBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8
c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhY
WFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhY
WFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhY
WFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAg
IFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAg
ICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4K
KyAgICAgIDxkaXYgaWQ9InNoYXBlIj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxk
aXYgaWQ9ImJvdHRvbSI+CisgICAgICA8ZGl2IGlkPSJmbG9hdCI+CisgICAgIDwvZGl2PgorICAg
ICBUaGUgZmxvYXQgaXMgZGVmaW5lZCBoZXJlLCBidXQgdGhlIHNoYXBlIHB1c2hlcyBpdCBpbnRv
IHRoZSBhYm92ZSBkaXYuIE5vdGUgdGhhdCB0aGUgZXhjbHVzaW9uIGJlaGF2aW9yIHN0YXlzIHdp
dGggdGhlIHNoYXBlIGFuZCBub3Qgd2l0aCB0aGUgZmxvYXQuCisgICAgPC9kaXY+CisgIDwvYm9k
eT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMtb3ZlcmhhbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmM0MDRjYmFkM2NjYjJjNmIw
YjQ2MTE5YTcxMjQ3NWIzZGU4OTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92
ZXJoYW5nLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDxzY3Jp
cHQ+CisgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKyAgICA8L3NjcmlwdD4K
KyAgICA8c3R5bGU+CisgICAgICAjdG9wIHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAg
ICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBjb2xvcjogeWVsbG93OworICAgICAgICBmb250OiAx
MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgIH0KKyAgICAgICNmbG9hdCB7CisgICAgICAg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgICBmbG9hdDogcmlnaHQ7CisgICAgICAgIC13ZWJraXQtc2hhcGUt
b3V0c2lkZTogcmVjdGFuZ2xlKDBweCwgMTAwcHgsIDEwMHB4LCAxMDBweCk7CisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICB9CisgICAgICAjYm90dG9tIHsKKyAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgIH0K
KyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT48YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTI3Ij5CdWcgMTA2OTI3PC9h
PjogW0NTUyBFeGNsdXNpb25zXSBIYW5kbGUgc2hhcGUtb3V0c2lkZSBjaGFuZ2luZyBhIGZsb2F0
J3Mgb3ZlcmhhbmcgYmVoYXZpb3I8L2gxPgorICAgIDxoMj5Zb3Ugc2hvdWxkIHNlZSBhIHllbGxv
dyBzcXVhcmUgdG8gdGhlIGxlZnQgb2YgYSBibHVlIHNxdWFyZSwgd2l0aCB0aGUgYmx1ZSBzcXVh
cmUgY292ZXJpbmcgdGhlIHRleHQgaW4gdGhlIHllbGxvdyBhcmVhLiBUaGUgbG93ZXIgZ3JlZW4g
cmVjdGFuZ2xlIHNob3VsZCBoYXZlIHRleHQgd3JhcHBpbmcgYXJvdW5kIGEgc3F1YXJlIGFyZWEg
b24gdGhlIHJpZ2h0IGFzIGlmIHRoZXJlIGlzIGEgZmxvYXQgdGhlcmUuIFlvdSBzaG91bGQgbm90
IHNlZSBhbnkgcmVkLjwvaDI+CisgICAgPGRpdiBpZD0idG9wIj4KKyAgICAgIFhYWFhYWFhYWFg8
c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhY
WFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhYWFhY
WFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAgIFhY
WFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAgICAg
IFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4KKyAg
ICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bhbj4K
KyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwvc3Bh
bj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhYWDwv
c3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhYWFhY
WDwvc3Bhbj4KKyAgICAgIFhYWFhYWFhYWFg8c3BhbiBzdHlsZT0iY29sb3I6IHJlZCI+WFhYWFhY
WFhYWDwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJib3R0b20iPgorICAgICAgPGRp
diBpZD0iZmxvYXQiPgorICAgICA8L2Rpdj4KKyAgICAgVGhlIGZsb2F0IGlzIGRlZmluZWQgaGVy
ZSwgYnV0IHRoZSBzaGFwZSBwdXNoZXMgaXQgaW50byB0aGUgYWJvdmUgZGl2LiBOb3RlIHRoYXQg
dGhlIGV4Y2x1c2lvbiBiZWhhdmlvciBzdGF5cyB3aXRoIHRoZSBzaGFwZSBhbmQgbm90IHdpdGgg
dGhlIGZsb2F0LgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187666</attachid>
            <date>2013-02-11 14:07:15 -0800</date>
            <delta_ts>2013-02-11 14:07:56 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106927-20130211140346.patch</filename>
            <type>text/plain</type>
            <size>37907</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTZjNDE4ZjU0NTgzNzgz
NWQ4NmZlODU4OWI0MmU2YzljYWI0NTBmNy4uNzFkMjQ1MDAyNmI2OGFkYjZkYjBlNDVhNWE2MzE0
MGQ3MjNlY2U3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEzLTAyLTExICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2
aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBqY2hhZmZyYWl4QHdlYmtpdC5vcmcuCisKKyAgICAg
ICAgV2hlbiB0aGUgcG9zaXRpb24gb24gYSBzaGFwZSBvdXRzaWRlIGNhdXNlcyBhIGZsb2F0IHRv
IHNwaWxsIG91dCBpbnRvCisgICAgICAgIGFub3RoZXIgYmxvY2sgdGhhbiBpdCdzIGNvbnRhaW5l
ciwgaXQgd2FzIG5vdCBiZWluZyBkcmF3biBjb3JyZWN0bHkuIEl0CisgICAgICAgIGJlY2FtZSBh
cHBhcmVudCB0aGF0IGluIG9yZGVyIHRvIGZpeCB0aGlzIHByb3Blcmx5LCB0aGUgYXBwcm9hY2gg
dG8KKyAgICAgICAgcG9zaXRpb25pbmcgc2hhcGUgb3V0c2lkZXMgYW5kIGZsb2F0cyBuZWVkZWQg
dG8gYmUgY2hhbmdlZC4gVGhlIG5ldworICAgICAgICBhcHByb2FjaCBhbHNvIGZpeGVzIHNvbWUg
b3RoZXIgb3V0c3RhbmRpbmcgaXNzdWVzLCBsaWtlIGhpdCBkZXRlY3Rpb24uCisKKyAgICAgICAg
V2hlbiBhIGZsb2F0IGhhcyBhIHNoYXBlIG91dHNpZGUsIGlubGluZSBhbmQgZmxvYXQgbGF5b3V0
IGhhcHBlbnMKKyAgICAgICAgdXNpbmcgdGhlIGV4Y2x1c2lvbiBzaGFwZSBib3VuZHMgaW5zdGVh
ZCBvZiB0aGUgZmxvYXQncyBib3guICBUaGUKKyAgICAgICAgZWZmZWN0IG9mIHRoaXMgaXMgdGhh
dCB0aGUgZmxvYXQgaXRzZWxmIG5vIGxvbmdlciBoYXMgYW55IGVmZmVjdCBvbgorICAgICAgICBs
YXlvdXQsIGJvdGggd2l0aCByZXNwZWN0IHRvIHBvc2l0aW9uaW5nIG9mIHRoZSBmbG9hdCdzIHNp
YmxpbmdzIGFzCisgICAgICAgIHdlbGwgYXMgcG9zaXRpb25pbmcgdGhlIGZsb2F0J3MgYm94LiBU
aGlzIG1lYW5zIHRoYXQgd2hlbiB0aGUgZmxvYXQgaXMKKyAgICAgICAgcG9zaXRpb25lZCwgaXQg
aXMgdGhlIHNoYXBlJ3MgYm94IHRoYXQgbXVzdCBvYmV5IHRoZSBwb3NpdGlvbmluZyBydWxlcwor
ICAgICAgICBmb3IgZmxvYXRzLiBXaGVuIHRoZSBzaGFwZSBpcyBnaXZlbiBhIHBvc2l0aW9uIHJl
bGF0aXZlIHRvIHRoZSBmbG9hdCdzCisgICAgICAgIGJveCwgdGhlIHJ1bGVzIGZvciBmbG9hdCBw
b3NpdGlvbmluZyBkZXRlcm1pbmUgd2hlcmUgdGhlIHNoYXBlIHNpdHMKKyAgICAgICAgaW4gdGhl
IHBhcmVudCwgY2F1c2luZyB0aGUgZmxvYXQncyBib3ggdG8gYmUgb2Zmc2V0IGJ5IHRoZSBwb3Np
dGlvbiBvZgorICAgICAgICB0aGUgc2hhcGUuIFNpbmNlIHRoZSBmbG9hdCdzIGJveCBkb2VzIG5v
dCBhZmZlY3QgbGF5b3V0IChkdWUgdG8gdGhlCisgICAgICAgIHNoYXBlKSwgdGhpcyBpcyBzaW1p
bGFyIHRvIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGluIHRoYXQgdGhlIG9mZnNldCBpcworICAgICAg
ICBhIHBhaW50IHRpbWUgb2NjdXJyZW5jZS4KKworICAgICAgICBTbyB0aGUgbmV3IGFwcHJvYWNo
IGlzIHRvIGltcGxlbWVudCBwb3NpdGlvbmluZyBvZiBzaGFwZSBvdXRzaWRlIG9uCisgICAgICAg
IGZsb2F0cyBzaW1pbGFyIHRvIGhvdyByZWxhdGl2ZSBwb3NpdGlvbmluZyBpcyBpbXBsZW1lbnRl
ZCwgdXNpbmcgYQorICAgICAgICBSZW5kZXJMYXllci4KKworICAgICAgICBUaGlzIGlzIGFsc28g
dGVzdGVkIGJ5IHRoZSBleGlzdGluZyB0ZXN0cyBmb3Igc2hhcGUgb3V0c2lkZSBvbiBmbG9hdHMg
cG9zaXRpb25pbmcuCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNp
ZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLmh0bWwKKworICAgICAgICAq
IHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmg6CisgICAgICAgIChXZWJDb3Jl
OjpFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjpzaGFwZUxvZ2ljYWxPZmZzZXQpOiBVdGlsaXR5
IG1ldGhvZCB0byBjcmVhdGUgYSBMYXlvdXRTaXplIGZvciBjb21wdXRpbmcgdGhlIGxheWVyIG9m
ZnNldC4KKyAgICAgICAgKEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8pOgorICAgICAgICAqIHJl
bmRlcmluZy9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6
TGF5b3V0U3RhdGUpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxs
IGFzIGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmbGlwRmxvYXRGb3JXcml0aW5n
TW9kZUZvckNoaWxkKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmluZyBpbXBsZW1lbnRhdGlvbi4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludEZsb2F0cyk6IFJlbW92ZSBvbGQgcG9z
aXRpb25pbmcgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
YmxvY2tTZWxlY3Rpb25HYXBzKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUg
YXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OnBvc2l0aW9uTmV3RmxvYXRzKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmluZyBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGRPdmVyaGFuZ2luZ0Zs
b2F0cyk6IFJlbW92ZSBGSVhNRS4KKyAgICAgICAgKFdlYkNvcmU6OnBvc2l0aW9uRm9yUG9pbnRS
ZXNwZWN0aW5nRWRpdGluZ0JvdW5kYXJpZXMpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUg
b3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgIChSZW5kZXJCbG9jayk6IFJlbW92ZSBvbGQgcG9z
aXRpb25pbmcgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
eFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4pOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5n
IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnlQb3NpdGlv
bkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmluZyBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6IENoZWNrIGZvciBmbG9hdHMg
d2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6b2Zmc2V0RnJvbUNvbnRhaW5lcik6IENoZWNrIGZvciBm
bG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KTogQ2hl
Y2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0
aW9uaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpsYXlvdXRPdmVyZmxvd1JlY3RG
b3JQcm9wYWdhdGlvbik6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdl
bGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94
Lmg6IE1ha2UgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBnZXQgYSBsYXllci4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50T2Zmc2V0KTogTWV0aG9kIHRvIHJldHVybiBpbiBm
bG93CisgICAgICAgICAgICBwb3NpdGlvbmluZyBvZmZzZXQgKyBvZmZzZXQgZnJvbSBzaGFwZSBv
dXRzaWRlIG9uIGZsb2F0cy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuaDoKKyAgICAgICAgKFJlbmRlckJveE1vZGVsT2JqZWN0KTogQWRkIHBhaW50T2Zmc2V0IG1l
dGhvZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQpOiBDaGVj
ayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZsb3cgcG9zaXRp
b25pbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVw
YWludCk6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4g
ZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6bWFwTG9j
YWxUb0NvbnRhaW5lcik6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdl
bGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRp
b24pOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZs
b3cgcG9zaXRpb25pbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRl
Q2xpcFJlY3RzKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBh
cyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50T2Zmc2V0KTogUmVuYW1lIG9m
ZnNldEZvckluRmxvd1Bvc2l0aW9uIHRvIHJlZmxlY3QgdGhhdCBpdCdzIG5vdCBqdXN0IGZvcgor
ICAgICAgICAgICAgaW4gZmxvdyBwb3NpdGlvbmluZywgaXQgYWxzbyByZWZsZWN0cyBzaGFwZSBv
dXRzaWRlIHBvc2l0aW9uIG9uIGZsb2F0cy4KKyAgICAgICAgKFJlbmRlckxheWVyKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6Omhhc1BhaW50T2Zmc2V0KTogRGV0ZXJtaW5lcyBpZiB0aGlzIG9iamVjdCBpcyBpbiBm
bG93IHBvc2l0aW9pbmVkIG9yIGlzIGEgZmxvYXQgd2l0aCBzaGFwZSBvdXRzaWRlLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBBZGQgaGFzUGFpbnRPZmZzZXQgbWV0
aG9kLCBhbmFsYWdvdXMgdG8gbWV0aG9kIHdpdGggc2FtZSBuYW1lIG9uIFJlbmRlck9iamVjdC4K
KwogMjAxMy0wMi0xMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW0VGTF0gZmFzdC9mb3Jtcy9udW1iZXIvbnVtYmVyLWwxMG4taW5wdXQu
aHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm8uaAppbmRleCAwZjZjOTFlYjczODc5MTEwNzUzYWQ5ZjA4MDY2
NjNkMDllOGM5MWU4Li5hNGI4MTI4MzhiZTM1YjRiZjljZGY1NmFiYmM4Y2ZkNWMyMDViNTY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNp
ZGVJbmZvLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAK
ICNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluZm8uaCIKKyNpbmNsdWRlICJMYXlvdXRTaXplLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsNiArNDEsMTEgQEAgY2xhc3MgUmVuZGVy
Qm94OwogCiBjbGFzcyBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvIDogcHVibGljIEV4Y2x1c2lv
blNoYXBlSW5mbzxSZW5kZXJCb3gsICZSZW5kZXJTdHlsZTo6c2hhcGVPdXRzaWRlPiwgcHVibGlj
IE1hcHBlZEluZm88UmVuZGVyQm94LCBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvPiB7CiBwdWJs
aWM6CisgICAgTGF5b3V0U2l6ZSBzaGFwZUxvZ2ljYWxPZmZzZXQoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIExheW91dFNpemUoc2hhcGVMb2dpY2FsTGVmdCgpLCBzaGFwZUxvZ2ljYWxU
b3AoKSk7CisgICAgfQorCiAgICAgc3RhdGljIFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGVPdXRz
aWRlSW5mbz4gY3JlYXRlSW5mbyhjb25zdCBSZW5kZXJCb3gqIHJlbmRlcmVyKSB7IHJldHVybiBh
ZG9wdFB0cihuZXcgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyhyZW5kZXJlcikpOyB9CiAgICAg
c3RhdGljIGJvb2wgaXNFbmFibGVkRm9yKGNvbnN0IFJlbmRlckJveCopOwogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCmluZGV4IDRjZmExNmRiODJhMDVi
NDBiNzFkMGI5MDFhMGZkMzk2ODAzMzE1MjQuLjljNDE3NjA3ZTYwOWEwNjk1ZTg1NDBlMGRjZTg0
YjhiZGEwYjNhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRT
dGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcApA
QCAtNjUsOCArNjUsOCBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0U3RhdGUqIHBy
ZXYsIFJlbmRlckJveCogcmVuZGVyZXIsIGNvbnN0IExheW91dFNpegogCiAgICAgbV9sYXlvdXRP
ZmZzZXQgPSBtX3BhaW50T2Zmc2V0OwogCi0gICAgaWYgKHJlbmRlcmVyLT5pc0luRmxvd1Bvc2l0
aW9uZWQoKSAmJiByZW5kZXJlci0+aGFzTGF5ZXIoKSkKLSAgICAgICAgbV9wYWludE9mZnNldCAr
PSByZW5kZXJlci0+bGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICBpZiAo
cmVuZGVyZXItPmhhc1BhaW50T2Zmc2V0KCkgJiYgcmVuZGVyZXItPmhhc0xheWVyKCkpCisgICAg
ICAgIG1fcGFpbnRPZmZzZXQgKz0gcmVuZGVyZXItPmxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAK
ICAgICBtX2NsaXBwZWQgPSAhZml4ZWQgJiYgcHJldi0+bV9jbGlwcGVkOwogICAgIGlmIChtX2Ns
aXBwZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBkOGUx
YTVmZDY1YmQ0YWNmMDYyOGVmY2YyZWU3NTE3NWU5MGZmM2JjLi41NTI5MTUwN2I2ZDFlNDJhZTlk
OWQ1NjIzZGQ2NTdhNWJlMDRiM2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKQEAgLTMxMjcsNyArMzEyNyw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50T2Jq
ZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzCiAg
ICAgfQogfQogCi1MYXlvdXRQb2ludCBSZW5kZXJCbG9jazo6ZmxpcEZsb2F0Rm9yV3JpdGluZ01v
ZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQsIGNvbnN0IExheW91dFBvaW50
JiBwb2ludCwgRmxvYXRSZW5kZXJpbmdTdGF0ZSByZW5kZXJpbmdTdGF0ZSkgY29uc3QKK0xheW91
dFBvaW50IFJlbmRlckJsb2NrOjpmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKGNvbnN0
IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KSBjb25zdAog
ewogICAgIGlmICghc3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKICAgICAg
ICAgcmV0dXJuIHBvaW50OwpAQCAtMzEzNiw4ICszMTM2LDggQEAgTGF5b3V0UG9pbnQgUmVuZGVy
QmxvY2s6OmZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY29uc3QgRmxvYXRpbmdPYmpl
Y3QqIGMKICAgICAvLyBpdCdzIGdvaW5nIHRvIGdldCBhZGRlZCBiYWNrIGluLiBXZSBoaWRlIHRo
aXMgY29tcGxpY2F0aW9uIGhlcmUgc28gdGhhdCB0aGUgY2FsbGluZyBjb2RlIGxvb2tzIG5vcm1h
bCBmb3IgdGhlIHVuZmxpcHBlZAogICAgIC8vIGNhc2UuCiAgICAgaWYgKGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkpCi0gICAgICAgIHJldHVybiBMYXlvdXRQb2ludChwb2ludC54KCksIHBvaW50
LnkoKSArIGhlaWdodCgpIC0gY2hpbGQtPnJlbmRlcmVyKCktPmhlaWdodCgpIC0gMiAqIHlQb3Np
dGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNoaWxkLCByZW5kZXJpbmdTdGF0ZSkpOwotICAg
IHJldHVybiBMYXlvdXRQb2ludChwb2ludC54KCkgKyB3aWR0aCgpIC0gY2hpbGQtPnJlbmRlcmVy
KCktPndpZHRoKCkgLSAyICogeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY2hpbGQs
IHJlbmRlcmluZ1N0YXRlKSwgcG9pbnQueSgpKTsKKyAgICAgICAgcmV0dXJuIExheW91dFBvaW50
KHBvaW50LngoKSwgcG9pbnQueSgpICsgaGVpZ2h0KCkgLSBjaGlsZC0+cmVuZGVyZXIoKS0+aGVp
Z2h0KCkgLSAyICogeVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY2hpbGQpKTsKKyAg
ICByZXR1cm4gTGF5b3V0UG9pbnQocG9pbnQueCgpICsgd2lkdGgoKSAtIGNoaWxkLT5yZW5kZXJl
cigpLT53aWR0aCgpIC0gMiAqIHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNoaWxk
KSwgcG9pbnQueSgpKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRGbG9hdHMoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgYm9vbCBwcmVz
ZXJ2ZVBoYXNlKQpAQCAtMzE1Myw3ICszMTUzLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRG
bG9hdHMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnMK
ICAgICAgICAgaWYgKHItPnNob3VsZFBhaW50KCkgJiYgIXItPm1fcmVuZGVyZXItPmhhc1NlbGZQ
YWludGluZ0xheWVyKCkpIHsKICAgICAgICAgICAgIFBhaW50SW5mbyBjdXJyZW50UGFpbnRJbmZv
KHBhaW50SW5mbyk7CiAgICAgICAgICAgICBjdXJyZW50UGFpbnRJbmZvLnBoYXNlID0gcHJlc2Vy
dmVQaGFzZSA/IHBhaW50SW5mby5waGFzZSA6IFBhaW50UGhhc2VCbG9ja0JhY2tncm91bmQ7Ci0g
ICAgICAgICAgICBMYXlvdXRQb2ludCBjaGlsZFBvaW50ID0gZmxpcEZsb2F0Rm9yV3JpdGluZ01v
ZGVGb3JDaGlsZChyLCBMYXlvdXRQb2ludChwYWludE9mZnNldC54KCkgKyB4UG9zaXRpb25Gb3JG
bG9hdEluY2x1ZGluZ01hcmdpbihyLCBGbG9hdFBhaW50KSAtIHItPm1fcmVuZGVyZXItPngoKSwg
cGFpbnRPZmZzZXQueSgpICsgeVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4ociwgRmxv
YXRQYWludCkgLSByLT5tX3JlbmRlcmVyLT55KCkpLCBGbG9hdFBhaW50KTsKKyAgICAgICAgICAg
IExheW91dFBvaW50IGNoaWxkUG9pbnQgPSBmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxk
KHIsIExheW91dFBvaW50KHBhaW50T2Zmc2V0LngoKSArIHhQb3NpdGlvbkZvckZsb2F0SW5jbHVk
aW5nTWFyZ2luKHIpIC0gci0+bV9yZW5kZXJlci0+eCgpLCBwYWludE9mZnNldC55KCkgKyB5UG9z
aXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihyKSAtIHItPm1fcmVuZGVyZXItPnkoKSkpOwog
ICAgICAgICAgICAgci0+bV9yZW5kZXJlci0+cGFpbnQoY3VycmVudFBhaW50SW5mbywgY2hpbGRQ
b2ludCk7CiAgICAgICAgICAgICBpZiAoIXByZXNlcnZlUGhhc2UpIHsKICAgICAgICAgICAgICAg
ICBjdXJyZW50UGFpbnRJbmZvLnBoYXNlID0gUGFpbnRQaGFzZUNoaWxkQmxvY2tCYWNrZ3JvdW5k
czsKQEAgLTM0ODQsMTAgKzM0ODQsMTAgQEAgR2FwUmVjdHMgUmVuZGVyQmxvY2s6OmJsb2NrU2Vs
ZWN0aW9uR2FwcyhSZW5kZXJCbG9jayogcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2kKICAgICAg
ICAgaWYgKGN1cnItPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOyAvLyBXZSBtdXN0IGJlIGEgbm9ybWFsIGZsb3cgb2JqZWN0IGluIG9yZGVy
IHRvIGV2ZW4gYmUgY29uc2lkZXJlZC4KIAotICAgICAgICBpZiAoY3Vyci0+aXNJbkZsb3dQb3Np
dGlvbmVkKCkgJiYgY3Vyci0+aGFzTGF5ZXIoKSkgeworICAgICAgICBpZiAoY3Vyci0+aGFzUGFp
bnRPZmZzZXQoKSAmJiBjdXJyLT5oYXNMYXllcigpKSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUg
cmVscG9zaXRpb24gb2Zmc2V0IGlzIGFueXRoaW5nIG90aGVyIHRoYW4gMCwgdGhlbiB0cmVhdCB0
aGlzIGp1c3QgbGlrZSBhbiBhYnNvbHV0ZSBwb3NpdGlvbmVkIGVsZW1lbnQuCiAgICAgICAgICAg
ICAvLyBKdXN0IGRpc3JlZ2FyZCBpdCBjb21wbGV0ZWx5LgotICAgICAgICAgICAgTGF5b3V0U2l6
ZSByZWxPZmZzZXQgPSBjdXJyLT5sYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOwor
ICAgICAgICAgICAgTGF5b3V0U2l6ZSByZWxPZmZzZXQgPSBjdXJyLT5sYXllcigpLT5wYWludE9m
ZnNldCgpOwogICAgICAgICAgICAgaWYgKHJlbE9mZnNldC53aWR0aCgpIHx8IHJlbE9mZnNldC5o
ZWlnaHQoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNDAxMywx
OCArNDAxMyw4IEBAIGJvb2wgUmVuZGVyQmxvY2s6OnBvc2l0aW9uTmV3RmxvYXRzKCkKIAogICAg
ICAgICBzZXRMb2dpY2FsTGVmdEZvckZsb2F0KGZsb2F0aW5nT2JqZWN0LCBmbG9hdExvZ2ljYWxM
b2NhdGlvbi54KCkpOwogCi0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICBpZiAo
Y2hpbGRCb3gtPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKSkgewotICAgICAgICAgICAgLy8g
VGhlIENTUyBFeGNsdXNpb25zIHNwZWNpZmljYXRpb24gc2F5cyB0aGF0IHRoZSBtYXJnaW5zIGFy
ZSBpZ25vcmVkIHdoZW4gYSBmbG9hdCBoYXMgYSBzaGFwZSBvdXRzaWRlLgotICAgICAgICAgICAg
c2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgp
IC0gY2hpbGRCb3gtPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKS0+c2hhcGVMb2dpY2FsTGVm
dCgpKTsKLSAgICAgICAgICAgIHNldExvZ2ljYWxUb3BGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRM
b2dpY2FsTG9jYXRpb24ueSgpIC0gY2hpbGRCb3gtPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8o
KS0+c2hhcGVMb2dpY2FsVG9wKCkpOwotICAgICAgICB9IGVsc2UgewotI2VuZGlmCi0gICAgICAg
ICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlv
bi54KCkgKyBjaGlsZExvZ2ljYWxMZWZ0TWFyZ2luKTsKLSAgICAgICAgICAgIHNldExvZ2ljYWxU
b3BGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueSgpICsgbWFyZ2luQmVm
b3JlRm9yQ2hpbGQoY2hpbGRCb3gpKTsKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAg
ICAgIH0KLSNlbmRpZgorICAgICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGNoaWxkQm94LCBm
bG9hdExvZ2ljYWxMb2NhdGlvbi54KCkgKyBjaGlsZExvZ2ljYWxMZWZ0TWFyZ2luKTsKKyAgICAg
ICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi55
KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZEJveCkpOwogCiAgICAgICAgIExheW91dFN0
YXRlKiBsYXlvdXRTdGF0ZSA9IHZpZXcoKS0+bGF5b3V0U3RhdGUoKTsKICAgICAgICAgYm9vbCBp
c1BhZ2luYXRlZCA9IGxheW91dFN0YXRlLT5pc1BhZ2luYXRlZCgpOwpAQCAtNDA1MywxOSArNDA0
Myw4IEBAIGJvb2wgUmVuZGVyQmxvY2s6OnBvc2l0aW9uTmV3RmxvYXRzKCkKICAgICAgICAgICAg
ICAgICBmbG9hdExvZ2ljYWxMb2NhdGlvbiA9IGNvbXB1dGVMb2dpY2FsTG9jYXRpb25Gb3JGbG9h
dChmbG9hdGluZ09iamVjdCwgbmV3TG9naWNhbFRvcCk7CiAgICAgICAgICAgICAgICAgc2V0TG9n
aWNhbExlZnRGb3JGbG9hdChmbG9hdGluZ09iamVjdCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgp
KTsKIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgICAgICAgICBpZiAoY2hp
bGRCb3gtPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKSkgewotICAgICAgICAgICAgICAgICAg
ICAvLyBUaGUgQ1NTIEV4Y2x1c2lvbnMgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQgdGhlIG1hcmdp
bnMgYXJlIGlnbm9yZWQgd2hlbiBhIGZsb2F0IGhhcyBhIHNoYXBlIG91dHNpZGUuCi0gICAgICAg
ICAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNh
bExvY2F0aW9uLngoKSAtIGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCktPnNo
YXBlTG9naWNhbExlZnQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHNldExvZ2ljYWxUb3BGb3JD
aGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueSgpIC0gY2hpbGRCb3gtPmV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm8oKS0+c2hhcGVMb2dpY2FsVG9wKCkpOwotICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbExlZnRG
b3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpICsgY2hpbGRMb2dpY2Fs
TGVmdE1hcmdpbik7Ci0gICAgICAgICAgICAgICAgICAgIHNldExvZ2ljYWxUb3BGb3JDaGlsZChj
aGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueSgpICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQo
Y2hpbGRCb3gpKTsKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgICAgICAgICAg
fQotI2VuZGlmCi0KKyAgICAgICAgICAgICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGNoaWxk
Qm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi54KCkgKyBjaGlsZExvZ2ljYWxMZWZ0TWFyZ2luKTsK
KyAgICAgICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9n
aWNhbExvY2F0aW9uLnkoKSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkQm94KSk7CiAgICAg
ICAgIAogICAgICAgICAgICAgICAgIGlmIChjaGlsZEJsb2NrKQogICAgICAgICAgICAgICAgICAg
ICBjaGlsZEJsb2NrLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CkBA
IC00NTU4LDcgKzQ1MzcsNiBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjphZGRPdmVyaGFuZ2lu
Z0Zsb2F0cyhSZW5kZXJCbG9jayogY2hpbGQsIGJvb2wgbWFrZUNoaWxkUAogICAgICAgICBMYXlv
dXRVbml0IGxvZ2ljYWxCb3R0b20gPSBjaGlsZExvZ2ljYWxUb3AgKyBsb2dpY2FsQm90dG9tRm9y
RmxvYXQ7CiAgICAgICAgIGxvd2VzdEZsb2F0TG9naWNhbEJvdHRvbSA9IG1heChsb3dlc3RGbG9h
dExvZ2ljYWxCb3R0b20sIGxvZ2ljYWxCb3R0b20pOwogCi0gICAgICAgIC8vIEZJWE1FOiBCdWcg
MTA2OTI3IEhhbmRsZSBzaXR1YXRpb25zIHdoZXJlIGZsb2F0IGFuZCBzaGFwZS1vdXRzaWRlIG92
ZXJmbG93IGRpZmZlcmVudGx5LgogICAgICAgICBpZiAobG9naWNhbEJvdHRvbSA+IGxvZ2ljYWxI
ZWlnaHQoKSkgewogICAgICAgICAgICAgLy8gSWYgdGhlIG9iamVjdCBpcyBub3QgaW4gdGhlIGxp
c3QsIHdlIGFkZCBpdCBub3cuCiAgICAgICAgICAgICBpZiAoIWNvbnRhaW5zRmxvYXQoci0+bV9y
ZW5kZXJlcikpIHsKQEAgLTUwMzcsOCArNTAxNSw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0Vk
aXRpbmdCb3VuZGFyeShSZW5kZXJPYmplY3QqIGFuY2VzdG9yLCBSZW5kZXJPYmplY3QqIGNoaWxk
CiBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnRSZXNwZWN0aW5nRWRpdGlu
Z0JvdW5kYXJpZXMoUmVuZGVyQmxvY2sqIHBhcmVudCwgUmVuZGVyQm94KiBjaGlsZCwgY29uc3Qg
TGF5b3V0UG9pbnQmIHBvaW50SW5QYXJlbnRDb29yZGluYXRlcykKIHsKICAgICBMYXlvdXRQb2lu
dCBjaGlsZExvY2F0aW9uID0gY2hpbGQtPmxvY2F0aW9uKCk7Ci0gICAgaWYgKGNoaWxkLT5pc0lu
Rmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgY2hpbGRMb2NhdGlvbiArPSBjaGlsZC0+b2Zmc2V0
Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICBpZiAoY2hpbGQtPmhhc1BhaW50T2Zmc2V0KCkpCisg
ICAgICAgIGNoaWxkTG9jYXRpb24gKz0gY2hpbGQtPnBhaW50T2Zmc2V0KCk7CiAKICAgICAvLyBG
SVhNRTogVGhpcyBpcyB3cm9uZyBpZiB0aGUgY2hpbGQncyB3cml0aW5nLW1vZGUgaXMgZGlmZmVy
ZW50IGZyb20gdGhlIHBhcmVudCdzLgogICAgIExheW91dFBvaW50IHBvaW50SW5DaGlsZENvb3Jk
aW5hdGVzKHRvTGF5b3V0UG9pbnQocG9pbnRJblBhcmVudENvb3JkaW5hdGVzIC0gY2hpbGRMb2Nh
dGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCA0ZjgxZWEw
Mzc3NjMzOWQyMzkwNTZkMmU3YTY4MDFhMGNiZDRiMzE3Li45Mjg2ZmE0OGVkNjhjNDYxYmI3Y2Q4
YzMxNzdkYmVmZjI3NzljMWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aApAQCAtNjg5LDE0ICs2ODksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgfTsKIAotICAgIC8v
IFdoZW4gYSBmbG9hdCBoYXMgc2hhcGUgb3V0c2lkZSwgaXQgbmVlZHMgdG8gYmUgaGFuZGxlZCBk
aWZmZXJlbnRseSBhdAotICAgIC8vIHBhaW50IHRpbWUgYW5kIGF0IGxheW91dCB0aW1lLCBzaW5j
ZSB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHNoYXBlCi0gICAgLy8gKGFmZmVjdGluZyBsYXlvdXQp
IGFuZCB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIGZsb2F0IGl0c2VsZiAoYWZmZWN0aW5nCi0gICAg
Ly8gd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhlIGZsb2F0IGlzKSBjYW4gYmUgaW4gZGlmZmVyZW50
IHBsYWNlcy4gVGhpcyBlbnVtCi0gICAgLy8gaXMgdXNlZCB0byBjaGFuZ2UgYmVoYXZpb3IgYmFz
ZWQgb24gdGhhdCBzdGF0ZS4KLSAgICBlbnVtIEZsb2F0UmVuZGVyaW5nU3RhdGUgeyBGbG9hdExh
eW91dCwgRmxvYXRQYWludCB9OwotCi0gICAgTGF5b3V0UG9pbnQgZmxpcEZsb2F0Rm9yV3JpdGlu
Z01vZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVjdCosIGNvbnN0IExheW91dFBvaW50Jiwg
RmxvYXRSZW5kZXJpbmdTdGF0ZSA9IEZsb2F0TGF5b3V0KSBjb25zdDsKKyAgICBMYXlvdXRQb2lu
dCBmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKGNvbnN0IEZsb2F0aW5nT2JqZWN0Kiwg
Y29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKIAogICAgIExheW91dFVuaXQgbG9naWNhbFRvcEZv
ckZsb2F0KGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCkgY29uc3QgeyByZXR1cm4gaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSA/IGNoaWxkLT55KCkgOiBjaGlsZC0+eCgpOyB9CiAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsQm90dG9tRm9yRmxvYXQoY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxk
KSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY2hpbGQtPm1heFko
KSA6IGNoaWxkLT5tYXhYKCk7IH0KQEAgLTczOCwxMyArNzMxLDEyIEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICBjaGlsZC0+c2V0SGVpZ2h0KGxvZ2ljYWxXaWR0aCk7CiAgICAgfQogCi0gICAgTGF5
b3V0VW5pdCB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjb25zdCBGbG9hdGluZ09i
amVjdCogY2hpbGQsIEZsb2F0UmVuZGVyaW5nU3RhdGUgcmVuZGVyaW5nU3RhdGUgPSBGbG9hdExh
eW91dCkgY29uc3QKKyAgICBMYXlvdXRVbml0IHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFy
Z2luKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCkgY29uc3QKICAgICB7CiAjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQogICAgICAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvICpzaGFw
ZU91dHNpZGUgPSBjaGlsZC0+cmVuZGVyZXIoKS0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygp
OwotICAgICAgICBpZiAocmVuZGVyaW5nU3RhdGUgPT0gRmxvYXRQYWludCAmJiBzaGFwZU91dHNp
ZGUpCi0gICAgICAgICAgICByZXR1cm4gY2hpbGQtPngoKSAtIChpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpID8gc2hhcGVPdXRzaWRlLT5zaGFwZUxvZ2ljYWxMZWZ0KCkgOiBzaGFwZU91dHNpZGUt
PnNoYXBlTG9naWNhbFRvcCgpKTsKLSAgICAgICAgLy8gRklYTUU6IEJ1ZyAxMDY5MjggVGhpcyBu
ZWVkcyB0byBwcm9wZXJseSBoYW5kbGUgdGhlIG1hcmdpbiBmb3IgZmxvYXRzIHdpdGggc2hhcGUt
b3V0c2lkZSBmb3Igbm9uLXBhaW50IHRpbWUuCisgICAgICAgIGlmIChzaGFwZU91dHNpZGUpCisg
ICAgICAgICAgICByZXR1cm4gY2hpbGQtPngoKTsKICNlbmRpZgogCiAgICAgICAgIGlmIChpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKQpAQCAtNzUzLDEzICs3NDUsMTIgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHJldHVybiBjaGlsZC0+eCgpICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGQt
PnJlbmRlcmVyKCkpOwogICAgIH0KICAgICAgICAgCi0gICAgTGF5b3V0VW5pdCB5UG9zaXRpb25G
b3JGbG9hdEluY2x1ZGluZ01hcmdpbihjb25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQsIEZsb2F0
UmVuZGVyaW5nU3RhdGUgcmVuZGVyaW5nU3RhdGUgPSBGbG9hdExheW91dCkgY29uc3QKKyAgICBM
YXlvdXRVbml0IHlQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNvbnN0IEZsb2F0aW5n
T2JqZWN0KiBjaGlsZCkgY29uc3QKICAgICB7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQog
ICAgICAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvICpzaGFwZU91dHNpZGUgPSBjaGlsZC0+
cmVuZGVyZXIoKS0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpOwotICAgICAgICBpZiAocmVu
ZGVyaW5nU3RhdGUgPT0gRmxvYXRQYWludCAmJiBzaGFwZU91dHNpZGUpCi0gICAgICAgICAgICBy
ZXR1cm4gY2hpbGQtPnkoKSAtIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gc2hhcGVPdXRz
aWRlLT5zaGFwZUxvZ2ljYWxUb3AoKSA6IHNoYXBlT3V0c2lkZS0+c2hhcGVMb2dpY2FsTGVmdCgp
KTsKLSAgICAgICAgLy8gRklYTUU6IEJ1ZyAxMDY5MjggVGhpcyBuZWVkcyB0byBwcm9wZXJseSBo
YW5kbGUgdGhlIG1hcmdpbiBmb3IgZmxvYXRzIHdpdGggc2hhcGUtb3V0c2lkZS4KKyAgICAgICAg
aWYgKHNoYXBlT3V0c2lkZSkKKyAgICAgICAgICAgIHJldHVybiBjaGlsZC0+eSgpOwogI2VuZGlm
CiAKICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGJiZmI5MDYyMzdhNzQ1NmE2NzQ2NjJhZjc0NWE5
MTc5ZjQyYzlmNGUuLmI1MTc3ZGJiNjVlYTMxZTIyNGE3NjBlMDE0N2Q5YjFlODg5ODI3ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0xNjA1LDggKzE2MDUsOCBA
QCB2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbgogICAgICAgICBpZiAodi0+bGF5b3V0U3RhdGVFbmFi
bGVkKCkgJiYgIXJlcGFpbnRDb250YWluZXIpIHsKICAgICAgICAgICAgIExheW91dFN0YXRlKiBs
YXlvdXRTdGF0ZSA9IHYtPmxheW91dFN0YXRlKCk7CiAgICAgICAgICAgICBMYXlvdXRTaXplIG9m
ZnNldCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0ICsgbG9jYXRpb25PZmZzZXQoKTsKLSAg
ICAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0g
ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9u
KCk7CisgICAgICAgICAgICBpZiAoc3R5bGUoKS0+aGFzUGFpbnRPZmZzZXQoKSAmJiBsYXllcigp
KQorICAgICAgICAgICAgICAgIG9mZnNldCArPSBsYXllcigpLT5wYWludE9mZnNldCgpOwogICAg
ICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShvZmZzZXQpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0xNzE4LDggKzE3MTgsOCBAQCBMYXlvdXRTaXplIFJlbmRlckJveDo6
b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IExheW91dFBvaW50JiBw
bwogICAgIEFTU0VSVChvID09IGNvbnRhaW5lcigpKTsKIAogICAgIExheW91dFNpemUgb2Zmc2V0
OyAgICAKLSAgICBpZiAoaXNJbkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgIG9mZnNldCArPSBv
ZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAgIGlmIChoYXNQYWludE9mZnNldCgpKQorICAg
ICAgICBvZmZzZXQgKz0gcGFpbnRPZmZzZXQoKTsKIAogICAgIGlmICghaXNJbmxpbmUoKSB8fCBp
c1JlcGxhY2VkKCkpIHsKICAgICAgICAgaWYgKCFzdHlsZSgpLT5oYXNPdXRPZkZsb3dQb3NpdGlv
bigpICYmIG8tPmhhc0NvbHVtbnMoKSkgewpAQCAtMTg1Niw4ICsxODU2LDggQEAgdm9pZCBSZW5k
ZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGEKICAgICAgICAgICAgICAgICByZWN0ID0gbGF5ZXIoKS0+dHJhbnNmb3Jt
KCktPm1hcFJlY3QocGl4ZWxTbmFwcGVkSW50UmVjdChyZWN0KSk7CiAKICAgICAgICAgICAgIC8v
IFdlIGNhbid0IHRydXN0IHRoZSBiaXRzIG9uIFJlbmRlck9iamVjdCwgYmVjYXVzZSB0aGlzIG1p
Z2h0IGJlIGNhbGxlZCB3aGlsZSByZS1yZXNvbHZpbmcgc3R5bGUuCi0gICAgICAgICAgICBpZiAo
c3R5bGVUb1VzZS0+aGFzSW5GbG93UG9zaXRpb24oKSAmJiBsYXllcigpKQotICAgICAgICAgICAg
ICAgIHJlY3QubW92ZShsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKKyAgICAg
ICAgICAgIGlmIChzdHlsZVRvVXNlLT5oYXNQYWludE9mZnNldCgpICYmIGxheWVyKCkpCisgICAg
ICAgICAgICAgICAgcmVjdC5tb3ZlKGxheWVyKCktPnBhaW50T2Zmc2V0KCkpOwogCiAgICAgICAg
ICAgICByZWN0Lm1vdmVCeShsb2NhdGlvbigpKTsKICAgICAgICAgICAgIHJlY3QubW92ZShsYXlv
dXRTdGF0ZS0+bV9wYWludE9mZnNldCk7CkBAIC0xOTAxLDEyICsxOTAxLDEyIEBAIHZvaWQgUmVu
ZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhCiAKICAgICBpZiAocG9zaXRpb24gPT0gQWJzb2x1dGVQb3NpdGlvbiAm
JiBvLT5pc0luRmxvd1Bvc2l0aW9uZWQoKSAmJiBvLT5pc1JlbmRlcklubGluZSgpKQogICAgICAg
ICB0b3BMZWZ0ICs9IHRvUmVuZGVySW5saW5lKG8pLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbmVk
SW5saW5lKHRoaXMpOwotICAgIGVsc2UgaWYgKChwb3NpdGlvbiA9PSBSZWxhdGl2ZVBvc2l0aW9u
IHx8IHBvc2l0aW9uID09IFN0aWNreVBvc2l0aW9uKSAmJiBsYXllcigpKSB7CisgICAgZWxzZSBp
ZiAoc3R5bGVUb1VzZS0+aGFzUGFpbnRPZmZzZXQoKSAmJiBsYXllcigpKSB7CiAgICAgICAgIC8v
IEFwcGx5IHRoZSByZWxhdGl2ZSBwb3NpdGlvbiBvZmZzZXQgd2hlbiBpbnZhbGlkYXRpbmcgYSBy
ZWN0YW5nbGUuICBUaGUgbGF5ZXIKICAgICAgICAgLy8gaXMgdHJhbnNsYXRlZCwgYnV0IHRoZSBy
ZW5kZXIgYm94IGlzbid0LCBzbyB3ZSBuZWVkIHRvIGRvIHRoaXMgdG8gZ2V0IHRoZQogICAgICAg
ICAvLyByaWdodCBkaXJ0eSByZWN0LiAgU2luY2UgdGhpcyBpcyBjYWxsZWQgZnJvbSBSZW5kZXJP
YmplY3Q6OnNldFN0eWxlLCB0aGUgcmVsYXRpdmUgcG9zaXRpb24KICAgICAgICAgLy8gZmxhZyBv
biB0aGUgUmVuZGVyT2JqZWN0IGhhcyBiZWVuIGNsZWFyZWQsIHNvIHVzZSB0aGUgb25lIG9uIHRo
ZSBzdHlsZSgpLgotICAgICAgICB0b3BMZWZ0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bv
c2l0aW9uKCk7CisgICAgICAgIHRvcExlZnQgKz0gbGF5ZXIoKS0+cGFpbnRPZmZzZXQoKTsKICAg
ICB9CiAgICAgCiAgICAgaWYgKHBvc2l0aW9uICE9IEFic29sdXRlUG9zaXRpb24gJiYgcG9zaXRp
b24gIT0gRml4ZWRQb3NpdGlvbiAmJiBvLT5oYXNDb2x1bW5zKCkgJiYgby0+aXNCbG9ja0Zsb3co
KSkgewpAQCAtNDI2Myw3ICs0MjYzLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmxheW91dE92
ZXJmbG93UmVjdEZvclByb3BhZ2F0aW9uKFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSkKICAgICAg
ICAgcmVjdC51bml0ZShsYXlvdXRPdmVyZmxvd1JlY3QoKSk7CiAKICAgICBib29sIGhhc1RyYW5z
Zm9ybSA9IGhhc0xheWVyKCkgJiYgbGF5ZXIoKS0+dHJhbnNmb3JtKCk7Ci0gICAgaWYgKGlzSW5G
bG93UG9zaXRpb25lZCgpIHx8IGhhc1RyYW5zZm9ybSkgeworICAgIGlmIChoYXNQYWludE9mZnNl
dCgpIHx8IGhhc1RyYW5zZm9ybSkgewogICAgICAgICAvLyBJZiB3ZSBhcmUgcmVsYXRpdmVseSBw
b3NpdGlvbmVkIG9yIGlmIHdlIGhhdmUgYSB0cmFuc2Zvcm0sIHRoZW4gd2UgaGF2ZSB0byBjb252
ZXJ0CiAgICAgICAgIC8vIHRoaXMgcmVjdGFuZ2xlIGludG8gcGh5c2ljYWwgY29vcmRpbmF0ZXMs
IGFwcGx5IHJlbGF0aXZlIHBvc2l0aW9uaW5nIGFuZCB0cmFuc2Zvcm1zCiAgICAgICAgIC8vIHRv
IGl0LCBhbmQgdGhlbiBjb252ZXJ0IGl0IGJhY2suCkBAIC00MjcyLDggKzQyNzIsOCBAQCBMYXlv
dXRSZWN0IFJlbmRlckJveDo6bGF5b3V0T3ZlcmZsb3dSZWN0Rm9yUHJvcGFnYXRpb24oUmVuZGVy
U3R5bGUqIHBhcmVudFN0eWxlKQogICAgICAgICBpZiAoaGFzVHJhbnNmb3JtKQogICAgICAgICAg
ICAgcmVjdCA9IGxheWVyKCktPmN1cnJlbnRUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlY3QpOwogCi0g
ICAgICAgIGlmIChpc0luRmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgIHJlY3QubW92ZShv
ZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKKyAgICAgICAgaWYgKGhhc1BhaW50T2Zmc2V0KCkp
CisgICAgICAgICAgICByZWN0Lm1vdmUocGFpbnRPZmZzZXQoKSk7CiAgICAgICAgIAogICAgICAg
ICAvLyBOb3cgd2UgbmVlZCB0byBmbGlwIGJhY2suCiAgICAgICAgIGZsaXBGb3JXcml0aW5nTW9k
ZShyZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA2MDhmYzc1OGQ4
MTFlYzAyNjQ1ZDBhNmE0MjRhNTUyNGE1YjU0NWU2Li4wZTI1OTUzOGY3MTc0YjU0N2QxNGVkNGFl
NmU2NTc1OTc4YjVmMzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00
OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIGhhc0F1dG9aSW5kZXggb25seSByZXR1cm5z
IHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgcG9zaXRpb25lZCBvciBhIGZsZXgtaXRlbSBzaW5jZQog
ICAgIC8vIHBvc2l0aW9uOnN0YXRpYyBlbGVtZW50cyB0aGF0IGFyZSBub3QgZmxleC1pdGVtcyBn
ZXQgdGhlaXIgei1pbmRleCBjb2VyY2VkIHRvIGF1dG8uCi0gICAgdmlydHVhbCBib29sIHJlcXVp
cmVzTGF5ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBpc1Jvb3QoKSB8fCBpc1Bvc2l0aW9u
ZWQoKSB8fCBjcmVhdGVzR3JvdXAoKSB8fCBoYXNDbGlwUGF0aCgpIHx8IGhhc092ZXJmbG93Q2xp
cCgpIHx8IGhhc1RyYW5zZm9ybSgpIHx8IGhhc0hpZGRlbkJhY2tmYWNlKCkgfHwgaGFzUmVmbGVj
dGlvbigpIHx8IHN0eWxlKCktPnNwZWNpZmllc0NvbHVtbnMoKSB8fCAhc3R5bGUoKS0+aGFzQXV0
b1pJbmRleCgpOyB9CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBpc1Jvb3QoKSB8fCBpc1Bvc2l0aW9uZWQoKSB8fCBjcmVhdGVzR3JvdXAo
KSB8fCBoYXNDbGlwUGF0aCgpIHx8IGhhc092ZXJmbG93Q2xpcCgpIHx8IGhhc1RyYW5zZm9ybSgp
IHx8IGhhc0hpZGRlbkJhY2tmYWNlKCkgfHwgaGFzUmVmbGVjdGlvbigpIHx8IHN0eWxlKCktPnNw
ZWNpZmllc0NvbHVtbnMoKSB8fCAhc3R5bGUoKS0+aGFzQXV0b1pJbmRleCgpIHx8IChzdHlsZSgp
LT5zaGFwZU91dHNpZGUoKSAmJiBpc0Zsb2F0aW5nKCkpOyB9CiAKICAgICAvLyBVc2UgdGhpcyB3
aXRoIGNhdXRpb24hIE5vIHR5cGUgY2hlY2tpbmcgaXMgZG9uZSEKICAgICBSZW5kZXJCb3gqIGZp
cnN0Q2hpbGRCb3goKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDg4NThmMGUyYTdkZWEzYzQxNmE1ZWMwMzg0MzA3
NmM3YmU5OGY5MmQuLjBiNjkyMzdkMTMxN2FlMzdmNTgxODNiZTc3MjhmMTUxYzcwYmFkNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNw
cApAQCAtNTM0LDYgKzUzNCwxOSBAQCBMYXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpv
ZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIExheW91dFNpemUoKTsK
IH0KIAorTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRPZmZzZXQoKSBjb25z
dAoreworICAgIExheW91dFNpemUgb2Zmc2V0ID0gb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsK
KworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBpZiAoaXNCb3goKSAmJiBpc0Zsb2F0
aW5nKCkpCisgICAgICAgIGlmIChFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKiBzaGFwZU91dHNp
ZGUgPSB0b1JlbmRlckJveCh0aGlzKS0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpKQorICAg
ICAgICAgICAgb2Zmc2V0IC09IHNoYXBlT3V0c2lkZS0+c2hhcGVMb2dpY2FsT2Zmc2V0KCk7Cisj
ZW5kaWYKKworICAgIHJldHVybiBvZmZzZXQ7Cit9CisKIExheW91dFVuaXQgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6Om9mZnNldExlZnQoKSBjb25zdAogewogICAgIC8vIE5vdGUgdGhhdCBSZW5kZXJJ
bmxpbmUgYW5kIFJlbmRlckJveCBvdmVycmlkZSB0aGlzIHRvIHBhc3MgYSBkaWZmZXJlbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXgg
NjVmZTA2ZmIzZTE2MmUyNTM0ODUwMDE4MzgxYWE3YjFkZTA3MmFhMS4uYTMyZWQxZTNkNDUxMTQy
N2MyOGMzYmEzY2E5MmIyMWM4YmZhMjcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGljOgogICAg
IExheW91dFNpemUgc3RpY2t5UG9zaXRpb25Mb2dpY2FsT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4g
c3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHN0aWNreVBvc2l0aW9uT2Zmc2V0
KCkgOiBzdGlja3lQb3NpdGlvbk9mZnNldCgpLnRyYW5zcG9zZWRTaXplKCk7IH0KIAogICAgIExh
eW91dFNpemUgb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSBjb25zdDsKKyAgICBMYXlvdXRTaXpl
IHBhaW50T2Zmc2V0KCkgY29uc3Q7CiAKICAgICAvLyBJRSBleHRlbnNpb25zLiBVc2VkIHRvIGNh
bGN1bGF0ZSBvZmZzZXRXaWR0aC9IZWlnaHQuICBPdmVycmlkZGVuIGJ5IGlubGluZXMgKFJlbmRl
ckZsb3cpCiAgICAgLy8gdG8gcmV0dXJuIHRoZSByZW1haW5pbmcgd2lkdGggb24gYSBnaXZlbiBs
aW5lIChhbmQgdGhlIGhlaWdodCBvZiBhIHNpbmdsZSBsaW5lKS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggOTU4Y2FkMmRlZTZkMWFjM2UwMzU0Mjc2NjQ4
MjEzMjU4NzYzYjBmZC4uZWIxMzBjODU5NjA3ZWQ4OTE2NmMyMGFkNzkyYmM2ZjgwMzUxNTU2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTEwMTIsNyAr
MTAxMiw3IEBAIExheW91dFJlY3QgUmVuZGVySW5saW5lOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBpZiAoaW5saW5lRmxvdy0+c3R5bGUoKS0+aGFzSW5GbG93UG9zaXRp
b24oKSAmJiBpbmxpbmVGbG93LT5oYXNMYXllcigpKQotICAgICAgICAgICAgcmVwYWludFJlY3Qu
bW92ZSh0b1JlbmRlcklubGluZShpbmxpbmVGbG93KS0+bGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93
UG9zaXRpb24oKSk7CisgICAgICAgICAgICByZXBhaW50UmVjdC5tb3ZlKHRvUmVuZGVySW5saW5l
KGlubGluZUZsb3cpLT5sYXllcigpLT5wYWludE9mZnNldCgpKTsKICAgICB9CiAKICAgICBMYXlv
dXRVbml0IG91dGxpbmVTaXplID0gc3R5bGUoKS0+b3V0bGluZVNpemUoKTsKQEAgLTEwNTksNyAr
MTA1OSw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAgICAgICAgIGlmICh2LT5sYXlvdXRT
dGF0ZUVuYWJsZWQoKSAmJiAhcmVwYWludENvbnRhaW5lcikgewogICAgICAgICAgICAgTGF5b3V0
U3RhdGUqIGxheW91dFN0YXRlID0gdi0+bGF5b3V0U3RhdGUoKTsKICAgICAgICAgICAgIGlmIChz
dHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0gICAgICAgICAgICAgICAg
cmVjdC5tb3ZlKGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCkpOworICAgICAgICAg
ICAgICAgIHJlY3QubW92ZShsYXllcigpLT5wYWludE9mZnNldCgpKTsKICAgICAgICAgICAgIHJl
Y3QubW92ZShsYXlvdXRTdGF0ZS0+bV9wYWludE9mZnNldCk7CiAgICAgICAgICAgICBpZiAobGF5
b3V0U3RhdGUtPm1fY2xpcHBlZCkKICAgICAgICAgICAgICAgICByZWN0LmludGVyc2VjdChsYXlv
dXRTdGF0ZS0+bV9jbGlwUmVjdCk7CkBAIC0xMDkyLDcgKzEwOTIsNyBAQCB2b2lkIFJlbmRlcklu
bGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDbwogICAgICAgICAvLyBpcyB0cmFuc2xhdGVkLCBidXQgdGhlIHJlbmRlciBib3gg
aXNuJ3QsIHNvIHdlIG5lZWQgdG8gZG8gdGhpcyB0byBnZXQgdGhlCiAgICAgICAgIC8vIHJpZ2h0
IGRpcnR5IHJlY3QuIFNpbmNlIHRoaXMgaXMgY2FsbGVkIGZyb20gUmVuZGVyT2JqZWN0OjpzZXRT
dHlsZSwgdGhlIHJlbGF0aXZlIG9yIHN0aWNreSBwb3NpdGlvbgogICAgICAgICAvLyBmbGFnIG9u
IHRoZSBSZW5kZXJPYmplY3QgaGFzIGJlZW4gY2xlYXJlZCwgc28gdXNlIHRoZSBvbmUgb24gdGhl
IHN0eWxlKCkuCi0gICAgICAgIHRvcExlZnQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb24oKTsKKyAgICAgICAgdG9wTGVmdCArPSBsYXllcigpLT5wYWludE9mZnNldCgpOwogICAg
IH0KICAgICAKICAgICAvLyBGSVhNRTogV2UgaWdub3JlIHRoZSBsaWdodHdlaWdodCBjbGlwcGlu
ZyByZWN0IHRoYXQgY29udHJvbHMgdXNlLCBzaW5jZSBpZiB8b3wgaXMgaW4gbWlkLWxheW91dCwK
QEAgLTExNDQsNyArMTE0NCw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250CiAgICAgICAgICAg
ICBMYXlvdXRTdGF0ZSogbGF5b3V0U3RhdGUgPSB2LT5sYXlvdXRTdGF0ZSgpOwogICAgICAgICAg
ICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBsYXlvdXRTdGF0ZS0+bV9wYWludE9mZnNldDsKICAgICAg
ICAgICAgIGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0gICAg
ICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7
CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAgICAg
ICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4
IGU4ZDAzZWExMWQxNDI3MjYwYTQyMjcxMDNkYjA3YjJjN2Y4NTZkMDcuLjlhMWQzM2FhOGJhOTE0
NTBjNzM1M2JmMjdjODI1YTZjMmNlYzA5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcApAQCAtMTE4NSwxMyArMTE4NSwxMyBAQCBib29sIFJlbmRlckxheWVyOjp1
cGRhdGVMYXllclBvc2l0aW9uKCkKICAgICB9CiAgICAgCiAgICAgYm9vbCBwb3NpdGlvbk9yT2Zm
c2V0Q2hhbmdlZCA9IGZhbHNlOwotICAgIGlmIChyZW5kZXJlcigpLT5pc0luRmxvd1Bvc2l0aW9u
ZWQoKSkgewotICAgICAgICBMYXlvdXRTaXplIG5ld09mZnNldCA9IHRvUmVuZGVyQm94TW9kZWxP
YmplY3QocmVuZGVyZXIoKSktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7Ci0gICAgICAgIHBv
c2l0aW9uT3JPZmZzZXRDaGFuZ2VkID0gbmV3T2Zmc2V0ICE9IG1fb2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb247Ci0gICAgICAgIG1fb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24gPSBuZXdPZmZzZXQ7Ci0g
ICAgICAgIGxvY2FsUG9pbnQubW92ZShtX29mZnNldEZvckluRmxvd1Bvc2l0aW9uKTsKKyAgICBp
ZiAocmVuZGVyZXIoKS0+aGFzUGFpbnRPZmZzZXQoKSkgeworICAgICAgICBMYXlvdXRTaXplIG5l
d09mZnNldCA9IHRvUmVuZGVyQm94TW9kZWxPYmplY3QocmVuZGVyZXIoKSktPnBhaW50T2Zmc2V0
KCk7CisgICAgICAgIHBvc2l0aW9uT3JPZmZzZXRDaGFuZ2VkID0gbmV3T2Zmc2V0ICE9IG1fcGFp
bnRPZmZzZXQ7CisgICAgICAgIG1fcGFpbnRPZmZzZXQgPSBuZXdPZmZzZXQ7CisgICAgICAgIGxv
Y2FsUG9pbnQubW92ZShtX3BhaW50T2Zmc2V0KTsKICAgICB9IGVsc2UgewotICAgICAgICBtX29m
ZnNldEZvckluRmxvd1Bvc2l0aW9uID0gTGF5b3V0U2l6ZSgpOworICAgICAgICBtX3BhaW50T2Zm
c2V0ID0gTGF5b3V0U2l6ZSgpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXZSdkIHJlYWxseSBs
aWtlIHRvIGp1c3QgZ2V0IHJpZCBvZiB0aGUgY29uY2VwdCBvZiBhIGxheWVyIHJlY3RhbmdsZSBh
bmQgcmVseSBvbiB0aGUgcmVuZGVyZXJzLgpAQCAtNDU5OSw3ICs0NTk5LDcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBS
ZWN0c0NvbnRleHQsIEMKICAgICAgICAgY2xpcFJlY3RzLnNldFBvc0NsaXBSZWN0KGNsaXBSZWN0
cy5maXhlZENsaXBSZWN0KCkpOwogICAgICAgICBjbGlwUmVjdHMuc2V0T3ZlcmZsb3dDbGlwUmVj
dChjbGlwUmVjdHMuZml4ZWRDbGlwUmVjdCgpKTsKICAgICAgICAgY2xpcFJlY3RzLnNldEZpeGVk
KHRydWUpOwotICAgIH0gZWxzZSBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzSW5GbG93UG9z
aXRpb24oKSkKKyAgICB9IGVsc2UgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPmhhc1BhaW50T2Zm
c2V0KCkpCiAgICAgICAgIGNsaXBSZWN0cy5zZXRQb3NDbGlwUmVjdChjbGlwUmVjdHMub3ZlcmZs
b3dDbGlwUmVjdCgpKTsKICAgICBlbHNlIGlmIChyZW5kZXJlcigpLT5zdHlsZSgpLT5wb3NpdGlv
bigpID09IEFic29sdXRlUG9zaXRpb24pCiAgICAgICAgIGNsaXBSZWN0cy5zZXRPdmVyZmxvd0Ns
aXBSZWN0KGNsaXBSZWN0cy5wb3NDbGlwUmVjdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKaW5kZXggMGI2NzQ1MzNlNmQ1MmQyNjViYzA1YjlhMzdjYTM3MjJiMzZmMjhk
Zi4uM2Y2MDM1ZDRhYTlmNmY4Y2Y3OGVjMjQ2YjdmMDJkYTJiMDUxMTA5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQyNSw3ICs0MjUsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB1cGRhdGVCbGVuZE1vZGUoKTsKICNlbmRpZgogCi0gICAgY29uc3QgTGF5b3V0U2l6
ZSYgb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX29mZnNldEZvcklu
Rmxvd1Bvc2l0aW9uOyB9CisgICAgY29uc3QgTGF5b3V0U2l6ZSYgcGFpbnRPZmZzZXQoKSBjb25z
dCB7IHJldHVybiBtX3BhaW50T2Zmc2V0OyB9CiAKICAgICB2b2lkIGNsZWFyQ2xpcFJlY3RzSW5j
bHVkaW5nRGVzY2VuZGFudHMoQ2xpcFJlY3RzVHlwZSB0eXBlVG9DbGVhciA9IEFsbENsaXBSZWN0
VHlwZXMpOwogICAgIHZvaWQgY2xlYXJDbGlwUmVjdHMoQ2xpcFJlY3RzVHlwZSB0eXBlVG9DbGVh
ciA9IEFsbENsaXBSZWN0VHlwZXMpOwpAQCAtMTEyNCw4ICsxMTI0LDggQEAgcHJvdGVjdGVkOgog
ICAgIExheW91dFJlY3QgbV9yZXBhaW50UmVjdDsgLy8gQ2FjaGVkIHJlcGFpbnQgcmVjdHMuIFVz
ZWQgYnkgbGF5b3V0LgogICAgIExheW91dFJlY3QgbV9vdXRsaW5lQm94OwogCi0gICAgLy8gT3Vy
IGN1cnJlbnQgcmVsYXRpdmUgcG9zaXRpb24gb2Zmc2V0LgotICAgIExheW91dFNpemUgbV9vZmZz
ZXRGb3JJbkZsb3dQb3NpdGlvbjsKKyAgICAvLyBQYWludCB0aW1lIG9mZnNldCBvbmx5LCBpdCBp
cyB1c2VkIGZvciBwcm9wZXJseSBwYWludCByZWxhdGl2ZSAvIHN0aWNreSBwb3NpdGlvbmVkIGVs
ZW1lbnRzIGFuZCBleGNsdXNpb24gYm94ZXMgb24gZmxvYXRzLgorICAgIExheW91dFNpemUgbV9w
YWludE9mZnNldDsKIAogICAgIC8vIE91ciAoeCx5KSBjb29yZGluYXRlcyBhcmUgaW4gb3VyIHBh
cmVudCBsYXllcidzIGNvb3JkaW5hdGUgc3BhY2UuCiAgICAgTGF5b3V0UG9pbnQgbV90b3BMZWZ0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDI3YTdhNDVkYWZm
YmY5ZWNjZmU4ODZmNzNjMGM3MDlkNDY3MjgzYWIuLjUwZmFhNmNmMzkwNDZjNzg5OWFjNTMyZmY4
NGI5ZmMxYmQyNmQ3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgK
QEAgLTUyNSw2ICs1MjUsMTYgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc091dE9mRmxvd1Bvc2l0
aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc091dE9mRmxvd1Bvc2l0aW9uZWQo
KTsgfSAvLyBhYnNvbHV0ZSBvciBmaXhlZCBwb3NpdGlvbmluZwogICAgIGJvb2wgaXNJbkZsb3dQ
b3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNSZWxQb3NpdGlvbmVkKCkg
fHwgbV9iaXRmaWVsZHMuaXNTdGlja3lQb3NpdGlvbmVkKCk7IH0gLy8gcmVsYXRpdmUgb3Igc3Rp
Y2t5IHBvc2l0aW9uaW5nCisgICAgYm9vbCBoYXNQYWludE9mZnNldCgpIGNvbnN0CisgICAgewor
ICAgICAgICBib29sIHBvc2l0aW9uZWQgPSBpc0luRmxvd1Bvc2l0aW9uZWQoKTsKKyNpZiBFTkFC
TEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgICAgIC8vIFNoYXBlIG91dHNpZGUgb24gYSBmbG9hdCBj
YW4gcmVwb3NpdGlvbiB0aGUgZmxvYXQgaW4gbXVjaCB0aGUKKyAgICAgICAgLy8gc2FtZSB3YXkg
YXMgcmVsYXRpdmUgcG9zaXRpb25pbmcsIHNvIHRyZWF0IGl0IGFzIHN1Y2guCisgICAgICAgIHBv
c2l0aW9uZWQgPSBwb3NpdGlvbmVkIHx8IChtX2JpdGZpZWxkcy5mbG9hdGluZygpICYmIG1fYml0
ZmllbGRzLmlzQm94KCkgJiYgc3R5bGUoKS0+c2hhcGVPdXRzaWRlKCkpOworI2VuZGlmCisgICAg
ICAgIHJldHVybiBwb3NpdGlvbmVkOworICAgIH0KICAgICBib29sIGlzUmVsUG9zaXRpb25lZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVsUG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0
aXZlIHBvc2l0aW9uaW5nCiAgICAgYm9vbCBpc1N0aWNreVBvc2l0aW9uZWQoKSBjb25zdCB7IHJl
dHVybiBtX2JpdGZpZWxkcy5pc1N0aWNreVBvc2l0aW9uZWQoKTsgfQogICAgIGJvb2wgaXNQb3Np
dGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNQb3NpdGlvbmVkKCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMDJjZjBj
OTk3MTc3OWIxOTdmMGIwYTg4NDZmZDllNTcxMThlYzIzMi4uOGMyNTMyZmUzZGViZjVjMWUwMDY0
YTQ4MjI0ZmM5NDJhNDgyZTExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKQEAgLTQ2MCw2ICs0NjAsMTQgQEAgcHVibGljOgogICAgIEVQb3NpdGlv
biBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVQb3NpdGlvbj4obm9uaW5o
ZXJpdGVkX2ZsYWdzLl9wb3NpdGlvbik7IH0KICAgICBib29sIGhhc091dE9mRmxvd1Bvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gcG9zaXRpb24oKSA9PSBBYnNvbHV0ZVBvc2l0aW9uIHx8IHBvc2l0
aW9uKCkgPT0gRml4ZWRQb3NpdGlvbjsgfQogICAgIGJvb2wgaGFzSW5GbG93UG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBwb3NpdGlvbigpID09IFJlbGF0aXZlUG9zaXRpb24gfHwgcG9zaXRpb24o
KSA9PSBTdGlja3lQb3NpdGlvbjsgfQorICAgIGJvb2wgaGFzUGFpbnRPZmZzZXQoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgYm9vbCBwYWludE9mZnNldCA9IGhhc0luRmxvd1Bvc2l0aW9uKCk7Cisj
aWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgICAgICBwYWludE9mZnNldCA9IHBhaW50T2Zm
c2V0IHx8IChpc0Zsb2F0aW5nKCkgJiYgc2hhcGVPdXRzaWRlKCkpOworI2VuZGlmCisgICAgICAg
IHJldHVybiBwYWludE9mZnNldDsKKyAgICB9CiAgICAgYm9vbCBoYXNWaWV3cG9ydENvbnN0cmFp
bmVkUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBwb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24g
fHwgcG9zaXRpb24oKSA9PSBTdGlja3lQb3NpdGlvbjsgfQogICAgIEVGbG9hdCBmbG9hdGluZygp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVGbG9hdD4obm9uaW5oZXJpdGVkX2ZsYWdzLl9m
bG9hdGluZyk7IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEyZDkyZWM2ODdjN2UxNmQ0N2E4MTgwMzZjNWEwYWE0ZWM3
ODA3MmMuLjAwMWQ4MDQxY2U0MGNhOGIxNjg5MDA0ZTFkN2M2NGJlMGYyOTE1MzcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMy0wMi0xMSAgQmVtIEpvbmVzLUJleSAgPGJqb25lc2JlQGFkb2Jl
LmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEhhbmRsZSBzaGFwZS1vdXRzaWRlIGNo
YW5naW5nIGEgZmxvYXQncyBvdmVyaGFuZyBiZWhhdmlvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
amNoYWZmcmFpeEB3ZWJraXQub3JnLgorCisgICAgICAgIFRoaXMgaXMgYWxzbyB0ZXN0ZWQgYnkg
dGhlIGV4aXN0aW5nIHRlc3RzIGZvciBzaGFwZSBvdXRzaWRlIG9uIGZsb2F0cyBwb3NpdGlvbmlu
Zy4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFw
ZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9h
dHMtb3ZlcmhhbmcuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMTEgIENocmlzdG9waGUgRHVtZXog
IDxjaC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIGZhc3QvZm9ybXMv
bnVtYmVyL251bWJlci1sMTBuLWlucHV0Lmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNp
ZGUtZmxvYXRzLW92ZXJoYW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3Zlcmhhbmct
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDBkOTBiMDZjZDQxOTZkYzIxOTYwZDgyMTZjZDc2
Mjc2MzU1MGU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDxzdHlsZT4K
KyAgICAgICN0b3AgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIHdpZHRo
OiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgY29sb3I6IHllbGxvdzsK
KyAgICAgICAgZm9udDogMTBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICB9CisgICAgICAj
c2hhcGUgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgcmlnaHQ6IDBweDsKKyAgICAgICAg
dG9wOiAwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICB9CisgICAg
ICAjZmxvYXQgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgICAgIGZsb2F0OiByaWdodDsKKyAgICAgIH0KKyAgICAgICNib3R0b20geworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAg
fQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGgxPjxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5MjciPkJ1ZyAxMDY5Mjc8
L2E+OiBbQ1NTIEV4Y2x1c2lvbnNdIEhhbmRsZSBzaGFwZS1vdXRzaWRlIGNoYW5naW5nIGEgZmxv
YXQncyBvdmVyaGFuZyBiZWhhdmlvcjwvaDE+CisgICAgPGgyPllvdSBzaG91bGQgc2VlIGEgeWVs
bG93IHNxdWFyZSB0byB0aGUgbGVmdCBvZiBhIGJsdWUgc3F1YXJlLCB3aXRoIHRoZSBibHVlIHNx
dWFyZSBjb3ZlcmluZyB0aGUgdGV4dCBpbiB0aGUgeWVsbG93IGFyZWEuIFRoZSBsb3dlciBncmVl
biByZWN0YW5nbGUgc2hvdWxkIGhhdmUgdGV4dCB3cmFwcGluZyBhcm91bmQgYSBzcXVhcmUgYXJl
YSBvbiB0aGUgcmlnaHQgYXMgaWYgdGhlcmUgaXMgYSBmbG9hdCB0aGVyZS4gWW91IHNob3VsZCBu
b3Qgc2VlIGFueSByZWQuPC9oMj4KKyAgICA8ZGl2IGlkPSJ0b3AiPgorICAgICAgWFhYWFhYWFhY
WDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAgICAgWFhYWFhY
WFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAgICAgWFhY
WFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAgICAg
WFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAg
ICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgor
ICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFu
PgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9z
cGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhY
PC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhY
WFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhY
WFhYWFhYPC9zcGFuPgorICAgICAgPGRpdiBpZD0ic2hhcGUiPgorICAgICAgPC9kaXY+CisgICAg
PC9kaXY+CisgICAgPGRpdiBpZD0iYm90dG9tIj4KKyAgICAgIDxkaXYgaWQ9ImZsb2F0Ij4KKyAg
ICAgPC9kaXY+CisgICAgIFRoZSBmbG9hdCBpcyBkZWZpbmVkIGhlcmUsIGJ1dCB0aGUgc2hhcGUg
cHVzaGVzIGl0IGludG8gdGhlIGFib3ZlIGRpdi4gTm90ZSB0aGF0IHRoZSBleGNsdXNpb24gYmVo
YXZpb3Igc3RheXMgd2l0aCB0aGUgc2hhcGUgYW5kIG5vdCB3aXRoIHRoZSBmbG9hdC4KKyAgICA8
L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3Zl
cmhhbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZs
b2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmYzQw
NGNiYWQzY2NiMmM2YjBiNDYxMTlhNzEyNDc1YjNkZTg5NGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMtb3ZlcmhhbmcuaHRtbApAQCAtMCwwICsxLDUwIEBACis8aHRtbD4KKyAgPGhl
YWQ+CisgICAgPHNjcmlwdD4KKyAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOwor
ICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICN0b3AgeworICAgICAgICB3aWR0aDog
MjAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGNvbG9yOiB5ZWxsb3c7Cisg
ICAgICAgIGZvbnQ6IDEwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgfQorICAgICAgI2Zs
b2F0IHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGZsb2F0OiByaWdodDsKKyAgICAgICAg
LXdlYmtpdC1zaGFwZS1vdXRzaWRlOiByZWN0YW5nbGUoMHB4LCAxMDBweCwgMTAwcHgsIDEwMHB4
KTsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIH0KKyAgICAgICNib3R0
b20geworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgd2lkdGg6IDIw
MHB4OworICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGgx
PjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5Mjci
PkJ1ZyAxMDY5Mjc8L2E+OiBbQ1NTIEV4Y2x1c2lvbnNdIEhhbmRsZSBzaGFwZS1vdXRzaWRlIGNo
YW5naW5nIGEgZmxvYXQncyBvdmVyaGFuZyBiZWhhdmlvcjwvaDE+CisgICAgPGgyPllvdSBzaG91
bGQgc2VlIGEgeWVsbG93IHNxdWFyZSB0byB0aGUgbGVmdCBvZiBhIGJsdWUgc3F1YXJlLCB3aXRo
IHRoZSBibHVlIHNxdWFyZSBjb3ZlcmluZyB0aGUgdGV4dCBpbiB0aGUgeWVsbG93IGFyZWEuIFRo
ZSBsb3dlciBncmVlbiByZWN0YW5nbGUgc2hvdWxkIGhhdmUgdGV4dCB3cmFwcGluZyBhcm91bmQg
YSBzcXVhcmUgYXJlYSBvbiB0aGUgcmlnaHQgYXMgaWYgdGhlcmUgaXMgYSBmbG9hdCB0aGVyZS4g
WW91IHNob3VsZCBub3Qgc2VlIGFueSByZWQuPC9oMj4KKyAgICA8ZGl2IGlkPSJ0b3AiPgorICAg
ICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgor
ICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFu
PgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9z
cGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhY
PC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhY
WFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhY
WFhYWFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5Y
WFhYWFhYWFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVk
Ij5YWFhYWFhYWFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjog
cmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xv
cjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImJvdHRv
bSI+CisgICAgICA8ZGl2IGlkPSJmbG9hdCI+CisgICAgIDwvZGl2PgorICAgICBUaGUgZmxvYXQg
aXMgZGVmaW5lZCBoZXJlLCBidXQgdGhlIHNoYXBlIHB1c2hlcyBpdCBpbnRvIHRoZSBhYm92ZSBk
aXYuIE5vdGUgdGhhdCB0aGUgZXhjbHVzaW9uIGJlaGF2aW9yIHN0YXlzIHdpdGggdGhlIHNoYXBl
IGFuZCBub3Qgd2l0aCB0aGUgZmxvYXQuCisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4K
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187668</attachid>
            <date>2013-02-11 14:08:00 -0800</date>
            <delta_ts>2013-02-11 14:13:11 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106927-20130211140431.patch</filename>
            <type>text/plain</type>
            <size>37907</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTZjNDE4ZjU0NTgzNzgz
NWQ4NmZlODU4OWI0MmU2YzljYWI0NTBmNy4uNzFkMjQ1MDAyNmI2OGFkYjZkYjBlNDVhNWE2MzE0
MGQ3MjNlY2U3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEzLTAyLTExICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2
aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBqY2hhZmZyYWl4QHdlYmtpdC5vcmcuCisKKyAgICAg
ICAgV2hlbiB0aGUgcG9zaXRpb24gb24gYSBzaGFwZSBvdXRzaWRlIGNhdXNlcyBhIGZsb2F0IHRv
IHNwaWxsIG91dCBpbnRvCisgICAgICAgIGFub3RoZXIgYmxvY2sgdGhhbiBpdCdzIGNvbnRhaW5l
ciwgaXQgd2FzIG5vdCBiZWluZyBkcmF3biBjb3JyZWN0bHkuIEl0CisgICAgICAgIGJlY2FtZSBh
cHBhcmVudCB0aGF0IGluIG9yZGVyIHRvIGZpeCB0aGlzIHByb3Blcmx5LCB0aGUgYXBwcm9hY2gg
dG8KKyAgICAgICAgcG9zaXRpb25pbmcgc2hhcGUgb3V0c2lkZXMgYW5kIGZsb2F0cyBuZWVkZWQg
dG8gYmUgY2hhbmdlZC4gVGhlIG5ldworICAgICAgICBhcHByb2FjaCBhbHNvIGZpeGVzIHNvbWUg
b3RoZXIgb3V0c3RhbmRpbmcgaXNzdWVzLCBsaWtlIGhpdCBkZXRlY3Rpb24uCisKKyAgICAgICAg
V2hlbiBhIGZsb2F0IGhhcyBhIHNoYXBlIG91dHNpZGUsIGlubGluZSBhbmQgZmxvYXQgbGF5b3V0
IGhhcHBlbnMKKyAgICAgICAgdXNpbmcgdGhlIGV4Y2x1c2lvbiBzaGFwZSBib3VuZHMgaW5zdGVh
ZCBvZiB0aGUgZmxvYXQncyBib3guICBUaGUKKyAgICAgICAgZWZmZWN0IG9mIHRoaXMgaXMgdGhh
dCB0aGUgZmxvYXQgaXRzZWxmIG5vIGxvbmdlciBoYXMgYW55IGVmZmVjdCBvbgorICAgICAgICBs
YXlvdXQsIGJvdGggd2l0aCByZXNwZWN0IHRvIHBvc2l0aW9uaW5nIG9mIHRoZSBmbG9hdCdzIHNp
YmxpbmdzIGFzCisgICAgICAgIHdlbGwgYXMgcG9zaXRpb25pbmcgdGhlIGZsb2F0J3MgYm94LiBU
aGlzIG1lYW5zIHRoYXQgd2hlbiB0aGUgZmxvYXQgaXMKKyAgICAgICAgcG9zaXRpb25lZCwgaXQg
aXMgdGhlIHNoYXBlJ3MgYm94IHRoYXQgbXVzdCBvYmV5IHRoZSBwb3NpdGlvbmluZyBydWxlcwor
ICAgICAgICBmb3IgZmxvYXRzLiBXaGVuIHRoZSBzaGFwZSBpcyBnaXZlbiBhIHBvc2l0aW9uIHJl
bGF0aXZlIHRvIHRoZSBmbG9hdCdzCisgICAgICAgIGJveCwgdGhlIHJ1bGVzIGZvciBmbG9hdCBw
b3NpdGlvbmluZyBkZXRlcm1pbmUgd2hlcmUgdGhlIHNoYXBlIHNpdHMKKyAgICAgICAgaW4gdGhl
IHBhcmVudCwgY2F1c2luZyB0aGUgZmxvYXQncyBib3ggdG8gYmUgb2Zmc2V0IGJ5IHRoZSBwb3Np
dGlvbiBvZgorICAgICAgICB0aGUgc2hhcGUuIFNpbmNlIHRoZSBmbG9hdCdzIGJveCBkb2VzIG5v
dCBhZmZlY3QgbGF5b3V0IChkdWUgdG8gdGhlCisgICAgICAgIHNoYXBlKSwgdGhpcyBpcyBzaW1p
bGFyIHRvIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGluIHRoYXQgdGhlIG9mZnNldCBpcworICAgICAg
ICBhIHBhaW50IHRpbWUgb2NjdXJyZW5jZS4KKworICAgICAgICBTbyB0aGUgbmV3IGFwcHJvYWNo
IGlzIHRvIGltcGxlbWVudCBwb3NpdGlvbmluZyBvZiBzaGFwZSBvdXRzaWRlIG9uCisgICAgICAg
IGZsb2F0cyBzaW1pbGFyIHRvIGhvdyByZWxhdGl2ZSBwb3NpdGlvbmluZyBpcyBpbXBsZW1lbnRl
ZCwgdXNpbmcgYQorICAgICAgICBSZW5kZXJMYXllci4KKworICAgICAgICBUaGlzIGlzIGFsc28g
dGVzdGVkIGJ5IHRoZSBleGlzdGluZyB0ZXN0cyBmb3Igc2hhcGUgb3V0c2lkZSBvbiBmbG9hdHMg
cG9zaXRpb25pbmcuCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNp
ZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLmh0bWwKKworICAgICAgICAq
IHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmg6CisgICAgICAgIChXZWJDb3Jl
OjpFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjpzaGFwZUxvZ2ljYWxPZmZzZXQpOiBVdGlsaXR5
IG1ldGhvZCB0byBjcmVhdGUgYSBMYXlvdXRTaXplIGZvciBjb21wdXRpbmcgdGhlIGxheWVyIG9m
ZnNldC4KKyAgICAgICAgKEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8pOgorICAgICAgICAqIHJl
bmRlcmluZy9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6
TGF5b3V0U3RhdGUpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxs
IGFzIGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmbGlwRmxvYXRGb3JXcml0aW5n
TW9kZUZvckNoaWxkKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmluZyBpbXBsZW1lbnRhdGlvbi4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludEZsb2F0cyk6IFJlbW92ZSBvbGQgcG9z
aXRpb25pbmcgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
YmxvY2tTZWxlY3Rpb25HYXBzKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUg
YXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OnBvc2l0aW9uTmV3RmxvYXRzKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmluZyBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGRPdmVyaGFuZ2luZ0Zs
b2F0cyk6IFJlbW92ZSBGSVhNRS4KKyAgICAgICAgKFdlYkNvcmU6OnBvc2l0aW9uRm9yUG9pbnRS
ZXNwZWN0aW5nRWRpdGluZ0JvdW5kYXJpZXMpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUg
b3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgIChSZW5kZXJCbG9jayk6IFJlbW92ZSBvbGQgcG9z
aXRpb25pbmcgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
eFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4pOiBSZW1vdmUgb2xkIHBvc2l0aW9uaW5n
IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnlQb3NpdGlv
bkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmluZyBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6IENoZWNrIGZvciBmbG9hdHMg
d2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6b2Zmc2V0RnJvbUNvbnRhaW5lcik6IENoZWNrIGZvciBm
bG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KTogQ2hl
Y2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0
aW9uaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpsYXlvdXRPdmVyZmxvd1JlY3RG
b3JQcm9wYWdhdGlvbik6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdl
bGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94
Lmg6IE1ha2UgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBnZXQgYSBsYXllci4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50T2Zmc2V0KTogTWV0aG9kIHRvIHJldHVybiBpbiBm
bG93CisgICAgICAgICAgICBwb3NpdGlvbmluZyBvZmZzZXQgKyBvZmZzZXQgZnJvbSBzaGFwZSBv
dXRzaWRlIG9uIGZsb2F0cy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuaDoKKyAgICAgICAgKFJlbmRlckJveE1vZGVsT2JqZWN0KTogQWRkIHBhaW50T2Zmc2V0IG1l
dGhvZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQpOiBDaGVj
ayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZsb3cgcG9zaXRp
b25pbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVw
YWludCk6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4g
ZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6bWFwTG9j
YWxUb0NvbnRhaW5lcik6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdl
bGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRp
b24pOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZs
b3cgcG9zaXRpb25pbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRl
Q2xpcFJlY3RzKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBh
cyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50T2Zmc2V0KTogUmVuYW1lIG9m
ZnNldEZvckluRmxvd1Bvc2l0aW9uIHRvIHJlZmxlY3QgdGhhdCBpdCdzIG5vdCBqdXN0IGZvcgor
ICAgICAgICAgICAgaW4gZmxvdyBwb3NpdGlvbmluZywgaXQgYWxzbyByZWZsZWN0cyBzaGFwZSBv
dXRzaWRlIHBvc2l0aW9uIG9uIGZsb2F0cy4KKyAgICAgICAgKFJlbmRlckxheWVyKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6Omhhc1BhaW50T2Zmc2V0KTogRGV0ZXJtaW5lcyBpZiB0aGlzIG9iamVjdCBpcyBpbiBm
bG93IHBvc2l0aW9pbmVkIG9yIGlzIGEgZmxvYXQgd2l0aCBzaGFwZSBvdXRzaWRlLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBBZGQgaGFzUGFpbnRPZmZzZXQgbWV0
aG9kLCBhbmFsYWdvdXMgdG8gbWV0aG9kIHdpdGggc2FtZSBuYW1lIG9uIFJlbmRlck9iamVjdC4K
KwogMjAxMy0wMi0xMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW0VGTF0gZmFzdC9mb3Jtcy9udW1iZXIvbnVtYmVyLWwxMG4taW5wdXQu
aHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm8uaAppbmRleCAwZjZjOTFlYjczODc5MTEwNzUzYWQ5ZjA4MDY2
NjNkMDllOGM5MWU4Li5hNGI4MTI4MzhiZTM1YjRiZjljZGY1NmFiYmM4Y2ZkNWMyMDViNTY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNp
ZGVJbmZvLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAK
ICNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluZm8uaCIKKyNpbmNsdWRlICJMYXlvdXRTaXplLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsNiArNDEsMTEgQEAgY2xhc3MgUmVuZGVy
Qm94OwogCiBjbGFzcyBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvIDogcHVibGljIEV4Y2x1c2lv
blNoYXBlSW5mbzxSZW5kZXJCb3gsICZSZW5kZXJTdHlsZTo6c2hhcGVPdXRzaWRlPiwgcHVibGlj
IE1hcHBlZEluZm88UmVuZGVyQm94LCBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvPiB7CiBwdWJs
aWM6CisgICAgTGF5b3V0U2l6ZSBzaGFwZUxvZ2ljYWxPZmZzZXQoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIExheW91dFNpemUoc2hhcGVMb2dpY2FsTGVmdCgpLCBzaGFwZUxvZ2ljYWxU
b3AoKSk7CisgICAgfQorCiAgICAgc3RhdGljIFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGVPdXRz
aWRlSW5mbz4gY3JlYXRlSW5mbyhjb25zdCBSZW5kZXJCb3gqIHJlbmRlcmVyKSB7IHJldHVybiBh
ZG9wdFB0cihuZXcgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyhyZW5kZXJlcikpOyB9CiAgICAg
c3RhdGljIGJvb2wgaXNFbmFibGVkRm9yKGNvbnN0IFJlbmRlckJveCopOwogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCmluZGV4IDRjZmExNmRiODJhMDVi
NDBiNzFkMGI5MDFhMGZkMzk2ODAzMzE1MjQuLjljNDE3NjA3ZTYwOWEwNjk1ZTg1NDBlMGRjZTg0
YjhiZGEwYjNhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRT
dGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcApA
QCAtNjUsOCArNjUsOCBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0U3RhdGUqIHBy
ZXYsIFJlbmRlckJveCogcmVuZGVyZXIsIGNvbnN0IExheW91dFNpegogCiAgICAgbV9sYXlvdXRP
ZmZzZXQgPSBtX3BhaW50T2Zmc2V0OwogCi0gICAgaWYgKHJlbmRlcmVyLT5pc0luRmxvd1Bvc2l0
aW9uZWQoKSAmJiByZW5kZXJlci0+aGFzTGF5ZXIoKSkKLSAgICAgICAgbV9wYWludE9mZnNldCAr
PSByZW5kZXJlci0+bGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICBpZiAo
cmVuZGVyZXItPmhhc1BhaW50T2Zmc2V0KCkgJiYgcmVuZGVyZXItPmhhc0xheWVyKCkpCisgICAg
ICAgIG1fcGFpbnRPZmZzZXQgKz0gcmVuZGVyZXItPmxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAK
ICAgICBtX2NsaXBwZWQgPSAhZml4ZWQgJiYgcHJldi0+bV9jbGlwcGVkOwogICAgIGlmIChtX2Ns
aXBwZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBkOGUx
YTVmZDY1YmQ0YWNmMDYyOGVmY2YyZWU3NTE3NWU5MGZmM2JjLi41NTI5MTUwN2I2ZDFlNDJhZTlk
OWQ1NjIzZGQ2NTdhNWJlMDRiM2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKQEAgLTMxMjcsNyArMzEyNyw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50T2Jq
ZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzCiAg
ICAgfQogfQogCi1MYXlvdXRQb2ludCBSZW5kZXJCbG9jazo6ZmxpcEZsb2F0Rm9yV3JpdGluZ01v
ZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQsIGNvbnN0IExheW91dFBvaW50
JiBwb2ludCwgRmxvYXRSZW5kZXJpbmdTdGF0ZSByZW5kZXJpbmdTdGF0ZSkgY29uc3QKK0xheW91
dFBvaW50IFJlbmRlckJsb2NrOjpmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKGNvbnN0
IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KSBjb25zdAog
ewogICAgIGlmICghc3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKICAgICAg
ICAgcmV0dXJuIHBvaW50OwpAQCAtMzEzNiw4ICszMTM2LDggQEAgTGF5b3V0UG9pbnQgUmVuZGVy
QmxvY2s6OmZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoY29uc3QgRmxvYXRpbmdPYmpl
Y3QqIGMKICAgICAvLyBpdCdzIGdvaW5nIHRvIGdldCBhZGRlZCBiYWNrIGluLiBXZSBoaWRlIHRo
aXMgY29tcGxpY2F0aW9uIGhlcmUgc28gdGhhdCB0aGUgY2FsbGluZyBjb2RlIGxvb2tzIG5vcm1h
bCBmb3IgdGhlIHVuZmxpcHBlZAogICAgIC8vIGNhc2UuCiAgICAgaWYgKGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkpCi0gICAgICAgIHJldHVybiBMYXlvdXRQb2ludChwb2ludC54KCksIHBvaW50
LnkoKSArIGhlaWdodCgpIC0gY2hpbGQtPnJlbmRlcmVyKCktPmhlaWdodCgpIC0gMiAqIHlQb3Np
dGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNoaWxkLCByZW5kZXJpbmdTdGF0ZSkpOwotICAg
IHJldHVybiBMYXlvdXRQb2ludChwb2ludC54KCkgKyB3aWR0aCgpIC0gY2hpbGQtPnJlbmRlcmVy
KCktPndpZHRoKCkgLSAyICogeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY2hpbGQs
IHJlbmRlcmluZ1N0YXRlKSwgcG9pbnQueSgpKTsKKyAgICAgICAgcmV0dXJuIExheW91dFBvaW50
KHBvaW50LngoKSwgcG9pbnQueSgpICsgaGVpZ2h0KCkgLSBjaGlsZC0+cmVuZGVyZXIoKS0+aGVp
Z2h0KCkgLSAyICogeVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY2hpbGQpKTsKKyAg
ICByZXR1cm4gTGF5b3V0UG9pbnQocG9pbnQueCgpICsgd2lkdGgoKSAtIGNoaWxkLT5yZW5kZXJl
cigpLT53aWR0aCgpIC0gMiAqIHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNoaWxk
KSwgcG9pbnQueSgpKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRGbG9hdHMoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgYm9vbCBwcmVz
ZXJ2ZVBoYXNlKQpAQCAtMzE1Myw3ICszMTUzLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRG
bG9hdHMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnMK
ICAgICAgICAgaWYgKHItPnNob3VsZFBhaW50KCkgJiYgIXItPm1fcmVuZGVyZXItPmhhc1NlbGZQ
YWludGluZ0xheWVyKCkpIHsKICAgICAgICAgICAgIFBhaW50SW5mbyBjdXJyZW50UGFpbnRJbmZv
KHBhaW50SW5mbyk7CiAgICAgICAgICAgICBjdXJyZW50UGFpbnRJbmZvLnBoYXNlID0gcHJlc2Vy
dmVQaGFzZSA/IHBhaW50SW5mby5waGFzZSA6IFBhaW50UGhhc2VCbG9ja0JhY2tncm91bmQ7Ci0g
ICAgICAgICAgICBMYXlvdXRQb2ludCBjaGlsZFBvaW50ID0gZmxpcEZsb2F0Rm9yV3JpdGluZ01v
ZGVGb3JDaGlsZChyLCBMYXlvdXRQb2ludChwYWludE9mZnNldC54KCkgKyB4UG9zaXRpb25Gb3JG
bG9hdEluY2x1ZGluZ01hcmdpbihyLCBGbG9hdFBhaW50KSAtIHItPm1fcmVuZGVyZXItPngoKSwg
cGFpbnRPZmZzZXQueSgpICsgeVBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4ociwgRmxv
YXRQYWludCkgLSByLT5tX3JlbmRlcmVyLT55KCkpLCBGbG9hdFBhaW50KTsKKyAgICAgICAgICAg
IExheW91dFBvaW50IGNoaWxkUG9pbnQgPSBmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxk
KHIsIExheW91dFBvaW50KHBhaW50T2Zmc2V0LngoKSArIHhQb3NpdGlvbkZvckZsb2F0SW5jbHVk
aW5nTWFyZ2luKHIpIC0gci0+bV9yZW5kZXJlci0+eCgpLCBwYWludE9mZnNldC55KCkgKyB5UG9z
aXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihyKSAtIHItPm1fcmVuZGVyZXItPnkoKSkpOwog
ICAgICAgICAgICAgci0+bV9yZW5kZXJlci0+cGFpbnQoY3VycmVudFBhaW50SW5mbywgY2hpbGRQ
b2ludCk7CiAgICAgICAgICAgICBpZiAoIXByZXNlcnZlUGhhc2UpIHsKICAgICAgICAgICAgICAg
ICBjdXJyZW50UGFpbnRJbmZvLnBoYXNlID0gUGFpbnRQaGFzZUNoaWxkQmxvY2tCYWNrZ3JvdW5k
czsKQEAgLTM0ODQsMTAgKzM0ODQsMTAgQEAgR2FwUmVjdHMgUmVuZGVyQmxvY2s6OmJsb2NrU2Vs
ZWN0aW9uR2FwcyhSZW5kZXJCbG9jayogcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2kKICAgICAg
ICAgaWYgKGN1cnItPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOyAvLyBXZSBtdXN0IGJlIGEgbm9ybWFsIGZsb3cgb2JqZWN0IGluIG9yZGVy
IHRvIGV2ZW4gYmUgY29uc2lkZXJlZC4KIAotICAgICAgICBpZiAoY3Vyci0+aXNJbkZsb3dQb3Np
dGlvbmVkKCkgJiYgY3Vyci0+aGFzTGF5ZXIoKSkgeworICAgICAgICBpZiAoY3Vyci0+aGFzUGFp
bnRPZmZzZXQoKSAmJiBjdXJyLT5oYXNMYXllcigpKSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUg
cmVscG9zaXRpb24gb2Zmc2V0IGlzIGFueXRoaW5nIG90aGVyIHRoYW4gMCwgdGhlbiB0cmVhdCB0
aGlzIGp1c3QgbGlrZSBhbiBhYnNvbHV0ZSBwb3NpdGlvbmVkIGVsZW1lbnQuCiAgICAgICAgICAg
ICAvLyBKdXN0IGRpc3JlZ2FyZCBpdCBjb21wbGV0ZWx5LgotICAgICAgICAgICAgTGF5b3V0U2l6
ZSByZWxPZmZzZXQgPSBjdXJyLT5sYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOwor
ICAgICAgICAgICAgTGF5b3V0U2l6ZSByZWxPZmZzZXQgPSBjdXJyLT5sYXllcigpLT5wYWludE9m
ZnNldCgpOwogICAgICAgICAgICAgaWYgKHJlbE9mZnNldC53aWR0aCgpIHx8IHJlbE9mZnNldC5o
ZWlnaHQoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNDAxMywx
OCArNDAxMyw4IEBAIGJvb2wgUmVuZGVyQmxvY2s6OnBvc2l0aW9uTmV3RmxvYXRzKCkKIAogICAg
ICAgICBzZXRMb2dpY2FsTGVmdEZvckZsb2F0KGZsb2F0aW5nT2JqZWN0LCBmbG9hdExvZ2ljYWxM
b2NhdGlvbi54KCkpOwogCi0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICBpZiAo
Y2hpbGRCb3gtPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKSkgewotICAgICAgICAgICAgLy8g
VGhlIENTUyBFeGNsdXNpb25zIHNwZWNpZmljYXRpb24gc2F5cyB0aGF0IHRoZSBtYXJnaW5zIGFy
ZSBpZ25vcmVkIHdoZW4gYSBmbG9hdCBoYXMgYSBzaGFwZSBvdXRzaWRlLgotICAgICAgICAgICAg
c2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgp
IC0gY2hpbGRCb3gtPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKS0+c2hhcGVMb2dpY2FsTGVm
dCgpKTsKLSAgICAgICAgICAgIHNldExvZ2ljYWxUb3BGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRM
b2dpY2FsTG9jYXRpb24ueSgpIC0gY2hpbGRCb3gtPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8o
KS0+c2hhcGVMb2dpY2FsVG9wKCkpOwotICAgICAgICB9IGVsc2UgewotI2VuZGlmCi0gICAgICAg
ICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlv
bi54KCkgKyBjaGlsZExvZ2ljYWxMZWZ0TWFyZ2luKTsKLSAgICAgICAgICAgIHNldExvZ2ljYWxU
b3BGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueSgpICsgbWFyZ2luQmVm
b3JlRm9yQ2hpbGQoY2hpbGRCb3gpKTsKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAg
ICAgIH0KLSNlbmRpZgorICAgICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGNoaWxkQm94LCBm
bG9hdExvZ2ljYWxMb2NhdGlvbi54KCkgKyBjaGlsZExvZ2ljYWxMZWZ0TWFyZ2luKTsKKyAgICAg
ICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi55
KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZEJveCkpOwogCiAgICAgICAgIExheW91dFN0
YXRlKiBsYXlvdXRTdGF0ZSA9IHZpZXcoKS0+bGF5b3V0U3RhdGUoKTsKICAgICAgICAgYm9vbCBp
c1BhZ2luYXRlZCA9IGxheW91dFN0YXRlLT5pc1BhZ2luYXRlZCgpOwpAQCAtNDA1MywxOSArNDA0
Myw4IEBAIGJvb2wgUmVuZGVyQmxvY2s6OnBvc2l0aW9uTmV3RmxvYXRzKCkKICAgICAgICAgICAg
ICAgICBmbG9hdExvZ2ljYWxMb2NhdGlvbiA9IGNvbXB1dGVMb2dpY2FsTG9jYXRpb25Gb3JGbG9h
dChmbG9hdGluZ09iamVjdCwgbmV3TG9naWNhbFRvcCk7CiAgICAgICAgICAgICAgICAgc2V0TG9n
aWNhbExlZnRGb3JGbG9hdChmbG9hdGluZ09iamVjdCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgp
KTsKIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgICAgICAgICBpZiAoY2hp
bGRCb3gtPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKSkgewotICAgICAgICAgICAgICAgICAg
ICAvLyBUaGUgQ1NTIEV4Y2x1c2lvbnMgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQgdGhlIG1hcmdp
bnMgYXJlIGlnbm9yZWQgd2hlbiBhIGZsb2F0IGhhcyBhIHNoYXBlIG91dHNpZGUuCi0gICAgICAg
ICAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNh
bExvY2F0aW9uLngoKSAtIGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCktPnNo
YXBlTG9naWNhbExlZnQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHNldExvZ2ljYWxUb3BGb3JD
aGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueSgpIC0gY2hpbGRCb3gtPmV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm8oKS0+c2hhcGVMb2dpY2FsVG9wKCkpOwotICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgc2V0TG9naWNhbExlZnRG
b3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpICsgY2hpbGRMb2dpY2Fs
TGVmdE1hcmdpbik7Ci0gICAgICAgICAgICAgICAgICAgIHNldExvZ2ljYWxUb3BGb3JDaGlsZChj
aGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueSgpICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQo
Y2hpbGRCb3gpKTsKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgICAgICAgICAg
fQotI2VuZGlmCi0KKyAgICAgICAgICAgICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGNoaWxk
Qm94LCBmbG9hdExvZ2ljYWxMb2NhdGlvbi54KCkgKyBjaGlsZExvZ2ljYWxMZWZ0TWFyZ2luKTsK
KyAgICAgICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9n
aWNhbExvY2F0aW9uLnkoKSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkQm94KSk7CiAgICAg
ICAgIAogICAgICAgICAgICAgICAgIGlmIChjaGlsZEJsb2NrKQogICAgICAgICAgICAgICAgICAg
ICBjaGlsZEJsb2NrLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CkBA
IC00NTU4LDcgKzQ1MzcsNiBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjphZGRPdmVyaGFuZ2lu
Z0Zsb2F0cyhSZW5kZXJCbG9jayogY2hpbGQsIGJvb2wgbWFrZUNoaWxkUAogICAgICAgICBMYXlv
dXRVbml0IGxvZ2ljYWxCb3R0b20gPSBjaGlsZExvZ2ljYWxUb3AgKyBsb2dpY2FsQm90dG9tRm9y
RmxvYXQ7CiAgICAgICAgIGxvd2VzdEZsb2F0TG9naWNhbEJvdHRvbSA9IG1heChsb3dlc3RGbG9h
dExvZ2ljYWxCb3R0b20sIGxvZ2ljYWxCb3R0b20pOwogCi0gICAgICAgIC8vIEZJWE1FOiBCdWcg
MTA2OTI3IEhhbmRsZSBzaXR1YXRpb25zIHdoZXJlIGZsb2F0IGFuZCBzaGFwZS1vdXRzaWRlIG92
ZXJmbG93IGRpZmZlcmVudGx5LgogICAgICAgICBpZiAobG9naWNhbEJvdHRvbSA+IGxvZ2ljYWxI
ZWlnaHQoKSkgewogICAgICAgICAgICAgLy8gSWYgdGhlIG9iamVjdCBpcyBub3QgaW4gdGhlIGxp
c3QsIHdlIGFkZCBpdCBub3cuCiAgICAgICAgICAgICBpZiAoIWNvbnRhaW5zRmxvYXQoci0+bV9y
ZW5kZXJlcikpIHsKQEAgLTUwMzcsOCArNTAxNSw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0Vk
aXRpbmdCb3VuZGFyeShSZW5kZXJPYmplY3QqIGFuY2VzdG9yLCBSZW5kZXJPYmplY3QqIGNoaWxk
CiBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnRSZXNwZWN0aW5nRWRpdGlu
Z0JvdW5kYXJpZXMoUmVuZGVyQmxvY2sqIHBhcmVudCwgUmVuZGVyQm94KiBjaGlsZCwgY29uc3Qg
TGF5b3V0UG9pbnQmIHBvaW50SW5QYXJlbnRDb29yZGluYXRlcykKIHsKICAgICBMYXlvdXRQb2lu
dCBjaGlsZExvY2F0aW9uID0gY2hpbGQtPmxvY2F0aW9uKCk7Ci0gICAgaWYgKGNoaWxkLT5pc0lu
Rmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgY2hpbGRMb2NhdGlvbiArPSBjaGlsZC0+b2Zmc2V0
Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICBpZiAoY2hpbGQtPmhhc1BhaW50T2Zmc2V0KCkpCisg
ICAgICAgIGNoaWxkTG9jYXRpb24gKz0gY2hpbGQtPnBhaW50T2Zmc2V0KCk7CiAKICAgICAvLyBG
SVhNRTogVGhpcyBpcyB3cm9uZyBpZiB0aGUgY2hpbGQncyB3cml0aW5nLW1vZGUgaXMgZGlmZmVy
ZW50IGZyb20gdGhlIHBhcmVudCdzLgogICAgIExheW91dFBvaW50IHBvaW50SW5DaGlsZENvb3Jk
aW5hdGVzKHRvTGF5b3V0UG9pbnQocG9pbnRJblBhcmVudENvb3JkaW5hdGVzIC0gY2hpbGRMb2Nh
dGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCA0ZjgxZWEw
Mzc3NjMzOWQyMzkwNTZkMmU3YTY4MDFhMGNiZDRiMzE3Li45Mjg2ZmE0OGVkNjhjNDYxYmI3Y2Q4
YzMxNzdkYmVmZjI3NzljMWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aApAQCAtNjg5LDE0ICs2ODksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgfTsKIAotICAgIC8v
IFdoZW4gYSBmbG9hdCBoYXMgc2hhcGUgb3V0c2lkZSwgaXQgbmVlZHMgdG8gYmUgaGFuZGxlZCBk
aWZmZXJlbnRseSBhdAotICAgIC8vIHBhaW50IHRpbWUgYW5kIGF0IGxheW91dCB0aW1lLCBzaW5j
ZSB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHNoYXBlCi0gICAgLy8gKGFmZmVjdGluZyBsYXlvdXQp
IGFuZCB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIGZsb2F0IGl0c2VsZiAoYWZmZWN0aW5nCi0gICAg
Ly8gd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhlIGZsb2F0IGlzKSBjYW4gYmUgaW4gZGlmZmVyZW50
IHBsYWNlcy4gVGhpcyBlbnVtCi0gICAgLy8gaXMgdXNlZCB0byBjaGFuZ2UgYmVoYXZpb3IgYmFz
ZWQgb24gdGhhdCBzdGF0ZS4KLSAgICBlbnVtIEZsb2F0UmVuZGVyaW5nU3RhdGUgeyBGbG9hdExh
eW91dCwgRmxvYXRQYWludCB9OwotCi0gICAgTGF5b3V0UG9pbnQgZmxpcEZsb2F0Rm9yV3JpdGlu
Z01vZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVjdCosIGNvbnN0IExheW91dFBvaW50Jiwg
RmxvYXRSZW5kZXJpbmdTdGF0ZSA9IEZsb2F0TGF5b3V0KSBjb25zdDsKKyAgICBMYXlvdXRQb2lu
dCBmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKGNvbnN0IEZsb2F0aW5nT2JqZWN0Kiwg
Y29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKIAogICAgIExheW91dFVuaXQgbG9naWNhbFRvcEZv
ckZsb2F0KGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCkgY29uc3QgeyByZXR1cm4gaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSA/IGNoaWxkLT55KCkgOiBjaGlsZC0+eCgpOyB9CiAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsQm90dG9tRm9yRmxvYXQoY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxk
KSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY2hpbGQtPm1heFko
KSA6IGNoaWxkLT5tYXhYKCk7IH0KQEAgLTczOCwxMyArNzMxLDEyIEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICBjaGlsZC0+c2V0SGVpZ2h0KGxvZ2ljYWxXaWR0aCk7CiAgICAgfQogCi0gICAgTGF5
b3V0VW5pdCB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjb25zdCBGbG9hdGluZ09i
amVjdCogY2hpbGQsIEZsb2F0UmVuZGVyaW5nU3RhdGUgcmVuZGVyaW5nU3RhdGUgPSBGbG9hdExh
eW91dCkgY29uc3QKKyAgICBMYXlvdXRVbml0IHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFy
Z2luKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCkgY29uc3QKICAgICB7CiAjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQogICAgICAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvICpzaGFw
ZU91dHNpZGUgPSBjaGlsZC0+cmVuZGVyZXIoKS0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygp
OwotICAgICAgICBpZiAocmVuZGVyaW5nU3RhdGUgPT0gRmxvYXRQYWludCAmJiBzaGFwZU91dHNp
ZGUpCi0gICAgICAgICAgICByZXR1cm4gY2hpbGQtPngoKSAtIChpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpID8gc2hhcGVPdXRzaWRlLT5zaGFwZUxvZ2ljYWxMZWZ0KCkgOiBzaGFwZU91dHNpZGUt
PnNoYXBlTG9naWNhbFRvcCgpKTsKLSAgICAgICAgLy8gRklYTUU6IEJ1ZyAxMDY5MjggVGhpcyBu
ZWVkcyB0byBwcm9wZXJseSBoYW5kbGUgdGhlIG1hcmdpbiBmb3IgZmxvYXRzIHdpdGggc2hhcGUt
b3V0c2lkZSBmb3Igbm9uLXBhaW50IHRpbWUuCisgICAgICAgIGlmIChzaGFwZU91dHNpZGUpCisg
ICAgICAgICAgICByZXR1cm4gY2hpbGQtPngoKTsKICNlbmRpZgogCiAgICAgICAgIGlmIChpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKQpAQCAtNzUzLDEzICs3NDUsMTIgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHJldHVybiBjaGlsZC0+eCgpICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGQt
PnJlbmRlcmVyKCkpOwogICAgIH0KICAgICAgICAgCi0gICAgTGF5b3V0VW5pdCB5UG9zaXRpb25G
b3JGbG9hdEluY2x1ZGluZ01hcmdpbihjb25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQsIEZsb2F0
UmVuZGVyaW5nU3RhdGUgcmVuZGVyaW5nU3RhdGUgPSBGbG9hdExheW91dCkgY29uc3QKKyAgICBM
YXlvdXRVbml0IHlQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNvbnN0IEZsb2F0aW5n
T2JqZWN0KiBjaGlsZCkgY29uc3QKICAgICB7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQog
ICAgICAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvICpzaGFwZU91dHNpZGUgPSBjaGlsZC0+
cmVuZGVyZXIoKS0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpOwotICAgICAgICBpZiAocmVu
ZGVyaW5nU3RhdGUgPT0gRmxvYXRQYWludCAmJiBzaGFwZU91dHNpZGUpCi0gICAgICAgICAgICBy
ZXR1cm4gY2hpbGQtPnkoKSAtIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gc2hhcGVPdXRz
aWRlLT5zaGFwZUxvZ2ljYWxUb3AoKSA6IHNoYXBlT3V0c2lkZS0+c2hhcGVMb2dpY2FsTGVmdCgp
KTsKLSAgICAgICAgLy8gRklYTUU6IEJ1ZyAxMDY5MjggVGhpcyBuZWVkcyB0byBwcm9wZXJseSBo
YW5kbGUgdGhlIG1hcmdpbiBmb3IgZmxvYXRzIHdpdGggc2hhcGUtb3V0c2lkZS4KKyAgICAgICAg
aWYgKHNoYXBlT3V0c2lkZSkKKyAgICAgICAgICAgIHJldHVybiBjaGlsZC0+eSgpOwogI2VuZGlm
CiAKICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGJiZmI5MDYyMzdhNzQ1NmE2NzQ2NjJhZjc0NWE5
MTc5ZjQyYzlmNGUuLmI1MTc3ZGJiNjVlYTMxZTIyNGE3NjBlMDE0N2Q5YjFlODg5ODI3ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0xNjA1LDggKzE2MDUsOCBA
QCB2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbgogICAgICAgICBpZiAodi0+bGF5b3V0U3RhdGVFbmFi
bGVkKCkgJiYgIXJlcGFpbnRDb250YWluZXIpIHsKICAgICAgICAgICAgIExheW91dFN0YXRlKiBs
YXlvdXRTdGF0ZSA9IHYtPmxheW91dFN0YXRlKCk7CiAgICAgICAgICAgICBMYXlvdXRTaXplIG9m
ZnNldCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0ICsgbG9jYXRpb25PZmZzZXQoKTsKLSAg
ICAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0g
ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9u
KCk7CisgICAgICAgICAgICBpZiAoc3R5bGUoKS0+aGFzUGFpbnRPZmZzZXQoKSAmJiBsYXllcigp
KQorICAgICAgICAgICAgICAgIG9mZnNldCArPSBsYXllcigpLT5wYWludE9mZnNldCgpOwogICAg
ICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShvZmZzZXQpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0xNzE4LDggKzE3MTgsOCBAQCBMYXlvdXRTaXplIFJlbmRlckJveDo6
b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IExheW91dFBvaW50JiBw
bwogICAgIEFTU0VSVChvID09IGNvbnRhaW5lcigpKTsKIAogICAgIExheW91dFNpemUgb2Zmc2V0
OyAgICAKLSAgICBpZiAoaXNJbkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgIG9mZnNldCArPSBv
ZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAgIGlmIChoYXNQYWludE9mZnNldCgpKQorICAg
ICAgICBvZmZzZXQgKz0gcGFpbnRPZmZzZXQoKTsKIAogICAgIGlmICghaXNJbmxpbmUoKSB8fCBp
c1JlcGxhY2VkKCkpIHsKICAgICAgICAgaWYgKCFzdHlsZSgpLT5oYXNPdXRPZkZsb3dQb3NpdGlv
bigpICYmIG8tPmhhc0NvbHVtbnMoKSkgewpAQCAtMTg1Niw4ICsxODU2LDggQEAgdm9pZCBSZW5k
ZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGEKICAgICAgICAgICAgICAgICByZWN0ID0gbGF5ZXIoKS0+dHJhbnNmb3Jt
KCktPm1hcFJlY3QocGl4ZWxTbmFwcGVkSW50UmVjdChyZWN0KSk7CiAKICAgICAgICAgICAgIC8v
IFdlIGNhbid0IHRydXN0IHRoZSBiaXRzIG9uIFJlbmRlck9iamVjdCwgYmVjYXVzZSB0aGlzIG1p
Z2h0IGJlIGNhbGxlZCB3aGlsZSByZS1yZXNvbHZpbmcgc3R5bGUuCi0gICAgICAgICAgICBpZiAo
c3R5bGVUb1VzZS0+aGFzSW5GbG93UG9zaXRpb24oKSAmJiBsYXllcigpKQotICAgICAgICAgICAg
ICAgIHJlY3QubW92ZShsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKKyAgICAg
ICAgICAgIGlmIChzdHlsZVRvVXNlLT5oYXNQYWludE9mZnNldCgpICYmIGxheWVyKCkpCisgICAg
ICAgICAgICAgICAgcmVjdC5tb3ZlKGxheWVyKCktPnBhaW50T2Zmc2V0KCkpOwogCiAgICAgICAg
ICAgICByZWN0Lm1vdmVCeShsb2NhdGlvbigpKTsKICAgICAgICAgICAgIHJlY3QubW92ZShsYXlv
dXRTdGF0ZS0+bV9wYWludE9mZnNldCk7CkBAIC0xOTAxLDEyICsxOTAxLDEyIEBAIHZvaWQgUmVu
ZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhCiAKICAgICBpZiAocG9zaXRpb24gPT0gQWJzb2x1dGVQb3NpdGlvbiAm
JiBvLT5pc0luRmxvd1Bvc2l0aW9uZWQoKSAmJiBvLT5pc1JlbmRlcklubGluZSgpKQogICAgICAg
ICB0b3BMZWZ0ICs9IHRvUmVuZGVySW5saW5lKG8pLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbmVk
SW5saW5lKHRoaXMpOwotICAgIGVsc2UgaWYgKChwb3NpdGlvbiA9PSBSZWxhdGl2ZVBvc2l0aW9u
IHx8IHBvc2l0aW9uID09IFN0aWNreVBvc2l0aW9uKSAmJiBsYXllcigpKSB7CisgICAgZWxzZSBp
ZiAoc3R5bGVUb1VzZS0+aGFzUGFpbnRPZmZzZXQoKSAmJiBsYXllcigpKSB7CiAgICAgICAgIC8v
IEFwcGx5IHRoZSByZWxhdGl2ZSBwb3NpdGlvbiBvZmZzZXQgd2hlbiBpbnZhbGlkYXRpbmcgYSBy
ZWN0YW5nbGUuICBUaGUgbGF5ZXIKICAgICAgICAgLy8gaXMgdHJhbnNsYXRlZCwgYnV0IHRoZSBy
ZW5kZXIgYm94IGlzbid0LCBzbyB3ZSBuZWVkIHRvIGRvIHRoaXMgdG8gZ2V0IHRoZQogICAgICAg
ICAvLyByaWdodCBkaXJ0eSByZWN0LiAgU2luY2UgdGhpcyBpcyBjYWxsZWQgZnJvbSBSZW5kZXJP
YmplY3Q6OnNldFN0eWxlLCB0aGUgcmVsYXRpdmUgcG9zaXRpb24KICAgICAgICAgLy8gZmxhZyBv
biB0aGUgUmVuZGVyT2JqZWN0IGhhcyBiZWVuIGNsZWFyZWQsIHNvIHVzZSB0aGUgb25lIG9uIHRo
ZSBzdHlsZSgpLgotICAgICAgICB0b3BMZWZ0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bv
c2l0aW9uKCk7CisgICAgICAgIHRvcExlZnQgKz0gbGF5ZXIoKS0+cGFpbnRPZmZzZXQoKTsKICAg
ICB9CiAgICAgCiAgICAgaWYgKHBvc2l0aW9uICE9IEFic29sdXRlUG9zaXRpb24gJiYgcG9zaXRp
b24gIT0gRml4ZWRQb3NpdGlvbiAmJiBvLT5oYXNDb2x1bW5zKCkgJiYgby0+aXNCbG9ja0Zsb3co
KSkgewpAQCAtNDI2Myw3ICs0MjYzLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmxheW91dE92
ZXJmbG93UmVjdEZvclByb3BhZ2F0aW9uKFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSkKICAgICAg
ICAgcmVjdC51bml0ZShsYXlvdXRPdmVyZmxvd1JlY3QoKSk7CiAKICAgICBib29sIGhhc1RyYW5z
Zm9ybSA9IGhhc0xheWVyKCkgJiYgbGF5ZXIoKS0+dHJhbnNmb3JtKCk7Ci0gICAgaWYgKGlzSW5G
bG93UG9zaXRpb25lZCgpIHx8IGhhc1RyYW5zZm9ybSkgeworICAgIGlmIChoYXNQYWludE9mZnNl
dCgpIHx8IGhhc1RyYW5zZm9ybSkgewogICAgICAgICAvLyBJZiB3ZSBhcmUgcmVsYXRpdmVseSBw
b3NpdGlvbmVkIG9yIGlmIHdlIGhhdmUgYSB0cmFuc2Zvcm0sIHRoZW4gd2UgaGF2ZSB0byBjb252
ZXJ0CiAgICAgICAgIC8vIHRoaXMgcmVjdGFuZ2xlIGludG8gcGh5c2ljYWwgY29vcmRpbmF0ZXMs
IGFwcGx5IHJlbGF0aXZlIHBvc2l0aW9uaW5nIGFuZCB0cmFuc2Zvcm1zCiAgICAgICAgIC8vIHRv
IGl0LCBhbmQgdGhlbiBjb252ZXJ0IGl0IGJhY2suCkBAIC00MjcyLDggKzQyNzIsOCBAQCBMYXlv
dXRSZWN0IFJlbmRlckJveDo6bGF5b3V0T3ZlcmZsb3dSZWN0Rm9yUHJvcGFnYXRpb24oUmVuZGVy
U3R5bGUqIHBhcmVudFN0eWxlKQogICAgICAgICBpZiAoaGFzVHJhbnNmb3JtKQogICAgICAgICAg
ICAgcmVjdCA9IGxheWVyKCktPmN1cnJlbnRUcmFuc2Zvcm0oKS5tYXBSZWN0KHJlY3QpOwogCi0g
ICAgICAgIGlmIChpc0luRmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgIHJlY3QubW92ZShv
ZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKKyAgICAgICAgaWYgKGhhc1BhaW50T2Zmc2V0KCkp
CisgICAgICAgICAgICByZWN0Lm1vdmUocGFpbnRPZmZzZXQoKSk7CiAgICAgICAgIAogICAgICAg
ICAvLyBOb3cgd2UgbmVlZCB0byBmbGlwIGJhY2suCiAgICAgICAgIGZsaXBGb3JXcml0aW5nTW9k
ZShyZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA2MDhmYzc1OGQ4
MTFlYzAyNjQ1ZDBhNmE0MjRhNTUyNGE1YjU0NWU2Li4wZTI1OTUzOGY3MTc0YjU0N2QxNGVkNGFl
NmU2NTc1OTc4YjVmMzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00
OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIGhhc0F1dG9aSW5kZXggb25seSByZXR1cm5z
IHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgcG9zaXRpb25lZCBvciBhIGZsZXgtaXRlbSBzaW5jZQog
ICAgIC8vIHBvc2l0aW9uOnN0YXRpYyBlbGVtZW50cyB0aGF0IGFyZSBub3QgZmxleC1pdGVtcyBn
ZXQgdGhlaXIgei1pbmRleCBjb2VyY2VkIHRvIGF1dG8uCi0gICAgdmlydHVhbCBib29sIHJlcXVp
cmVzTGF5ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBpc1Jvb3QoKSB8fCBpc1Bvc2l0aW9u
ZWQoKSB8fCBjcmVhdGVzR3JvdXAoKSB8fCBoYXNDbGlwUGF0aCgpIHx8IGhhc092ZXJmbG93Q2xp
cCgpIHx8IGhhc1RyYW5zZm9ybSgpIHx8IGhhc0hpZGRlbkJhY2tmYWNlKCkgfHwgaGFzUmVmbGVj
dGlvbigpIHx8IHN0eWxlKCktPnNwZWNpZmllc0NvbHVtbnMoKSB8fCAhc3R5bGUoKS0+aGFzQXV0
b1pJbmRleCgpOyB9CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBpc1Jvb3QoKSB8fCBpc1Bvc2l0aW9uZWQoKSB8fCBjcmVhdGVzR3JvdXAo
KSB8fCBoYXNDbGlwUGF0aCgpIHx8IGhhc092ZXJmbG93Q2xpcCgpIHx8IGhhc1RyYW5zZm9ybSgp
IHx8IGhhc0hpZGRlbkJhY2tmYWNlKCkgfHwgaGFzUmVmbGVjdGlvbigpIHx8IHN0eWxlKCktPnNw
ZWNpZmllc0NvbHVtbnMoKSB8fCAhc3R5bGUoKS0+aGFzQXV0b1pJbmRleCgpIHx8IChzdHlsZSgp
LT5zaGFwZU91dHNpZGUoKSAmJiBpc0Zsb2F0aW5nKCkpOyB9CiAKICAgICAvLyBVc2UgdGhpcyB3
aXRoIGNhdXRpb24hIE5vIHR5cGUgY2hlY2tpbmcgaXMgZG9uZSEKICAgICBSZW5kZXJCb3gqIGZp
cnN0Q2hpbGRCb3goKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDg4NThmMGUyYTdkZWEzYzQxNmE1ZWMwMzg0MzA3
NmM3YmU5OGY5MmQuLjBiNjkyMzdkMTMxN2FlMzdmNTgxODNiZTc3MjhmMTUxYzcwYmFkNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNw
cApAQCAtNTM0LDYgKzUzNCwxOSBAQCBMYXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpv
ZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIExheW91dFNpemUoKTsK
IH0KIAorTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRPZmZzZXQoKSBjb25z
dAoreworICAgIExheW91dFNpemUgb2Zmc2V0ID0gb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsK
KworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBpZiAoaXNCb3goKSAmJiBpc0Zsb2F0
aW5nKCkpCisgICAgICAgIGlmIChFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKiBzaGFwZU91dHNp
ZGUgPSB0b1JlbmRlckJveCh0aGlzKS0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpKQorICAg
ICAgICAgICAgb2Zmc2V0IC09IHNoYXBlT3V0c2lkZS0+c2hhcGVMb2dpY2FsT2Zmc2V0KCk7Cisj
ZW5kaWYKKworICAgIHJldHVybiBvZmZzZXQ7Cit9CisKIExheW91dFVuaXQgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6Om9mZnNldExlZnQoKSBjb25zdAogewogICAgIC8vIE5vdGUgdGhhdCBSZW5kZXJJ
bmxpbmUgYW5kIFJlbmRlckJveCBvdmVycmlkZSB0aGlzIHRvIHBhc3MgYSBkaWZmZXJlbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXgg
NjVmZTA2ZmIzZTE2MmUyNTM0ODUwMDE4MzgxYWE3YjFkZTA3MmFhMS4uYTMyZWQxZTNkNDUxMTQy
N2MyOGMzYmEzY2E5MmIyMWM4YmZhMjcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGljOgogICAg
IExheW91dFNpemUgc3RpY2t5UG9zaXRpb25Mb2dpY2FsT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4g
c3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHN0aWNreVBvc2l0aW9uT2Zmc2V0
KCkgOiBzdGlja3lQb3NpdGlvbk9mZnNldCgpLnRyYW5zcG9zZWRTaXplKCk7IH0KIAogICAgIExh
eW91dFNpemUgb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSBjb25zdDsKKyAgICBMYXlvdXRTaXpl
IHBhaW50T2Zmc2V0KCkgY29uc3Q7CiAKICAgICAvLyBJRSBleHRlbnNpb25zLiBVc2VkIHRvIGNh
bGN1bGF0ZSBvZmZzZXRXaWR0aC9IZWlnaHQuICBPdmVycmlkZGVuIGJ5IGlubGluZXMgKFJlbmRl
ckZsb3cpCiAgICAgLy8gdG8gcmV0dXJuIHRoZSByZW1haW5pbmcgd2lkdGggb24gYSBnaXZlbiBs
aW5lIChhbmQgdGhlIGhlaWdodCBvZiBhIHNpbmdsZSBsaW5lKS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggOTU4Y2FkMmRlZTZkMWFjM2UwMzU0Mjc2NjQ4
MjEzMjU4NzYzYjBmZC4uZWIxMzBjODU5NjA3ZWQ4OTE2NmMyMGFkNzkyYmM2ZjgwMzUxNTU2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTEwMTIsNyAr
MTAxMiw3IEBAIExheW91dFJlY3QgUmVuZGVySW5saW5lOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBpZiAoaW5saW5lRmxvdy0+c3R5bGUoKS0+aGFzSW5GbG93UG9zaXRp
b24oKSAmJiBpbmxpbmVGbG93LT5oYXNMYXllcigpKQotICAgICAgICAgICAgcmVwYWludFJlY3Qu
bW92ZSh0b1JlbmRlcklubGluZShpbmxpbmVGbG93KS0+bGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93
UG9zaXRpb24oKSk7CisgICAgICAgICAgICByZXBhaW50UmVjdC5tb3ZlKHRvUmVuZGVySW5saW5l
KGlubGluZUZsb3cpLT5sYXllcigpLT5wYWludE9mZnNldCgpKTsKICAgICB9CiAKICAgICBMYXlv
dXRVbml0IG91dGxpbmVTaXplID0gc3R5bGUoKS0+b3V0bGluZVNpemUoKTsKQEAgLTEwNTksNyAr
MTA1OSw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAgICAgICAgIGlmICh2LT5sYXlvdXRT
dGF0ZUVuYWJsZWQoKSAmJiAhcmVwYWludENvbnRhaW5lcikgewogICAgICAgICAgICAgTGF5b3V0
U3RhdGUqIGxheW91dFN0YXRlID0gdi0+bGF5b3V0U3RhdGUoKTsKICAgICAgICAgICAgIGlmIChz
dHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0gICAgICAgICAgICAgICAg
cmVjdC5tb3ZlKGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCkpOworICAgICAgICAg
ICAgICAgIHJlY3QubW92ZShsYXllcigpLT5wYWludE9mZnNldCgpKTsKICAgICAgICAgICAgIHJl
Y3QubW92ZShsYXlvdXRTdGF0ZS0+bV9wYWludE9mZnNldCk7CiAgICAgICAgICAgICBpZiAobGF5
b3V0U3RhdGUtPm1fY2xpcHBlZCkKICAgICAgICAgICAgICAgICByZWN0LmludGVyc2VjdChsYXlv
dXRTdGF0ZS0+bV9jbGlwUmVjdCk7CkBAIC0xMDkyLDcgKzEwOTIsNyBAQCB2b2lkIFJlbmRlcklu
bGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDbwogICAgICAgICAvLyBpcyB0cmFuc2xhdGVkLCBidXQgdGhlIHJlbmRlciBib3gg
aXNuJ3QsIHNvIHdlIG5lZWQgdG8gZG8gdGhpcyB0byBnZXQgdGhlCiAgICAgICAgIC8vIHJpZ2h0
IGRpcnR5IHJlY3QuIFNpbmNlIHRoaXMgaXMgY2FsbGVkIGZyb20gUmVuZGVyT2JqZWN0OjpzZXRT
dHlsZSwgdGhlIHJlbGF0aXZlIG9yIHN0aWNreSBwb3NpdGlvbgogICAgICAgICAvLyBmbGFnIG9u
IHRoZSBSZW5kZXJPYmplY3QgaGFzIGJlZW4gY2xlYXJlZCwgc28gdXNlIHRoZSBvbmUgb24gdGhl
IHN0eWxlKCkuCi0gICAgICAgIHRvcExlZnQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb24oKTsKKyAgICAgICAgdG9wTGVmdCArPSBsYXllcigpLT5wYWludE9mZnNldCgpOwogICAg
IH0KICAgICAKICAgICAvLyBGSVhNRTogV2UgaWdub3JlIHRoZSBsaWdodHdlaWdodCBjbGlwcGlu
ZyByZWN0IHRoYXQgY29udHJvbHMgdXNlLCBzaW5jZSBpZiB8b3wgaXMgaW4gbWlkLWxheW91dCwK
QEAgLTExNDQsNyArMTE0NCw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250CiAgICAgICAgICAg
ICBMYXlvdXRTdGF0ZSogbGF5b3V0U3RhdGUgPSB2LT5sYXlvdXRTdGF0ZSgpOwogICAgICAgICAg
ICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBsYXlvdXRTdGF0ZS0+bV9wYWludE9mZnNldDsKICAgICAg
ICAgICAgIGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0gICAg
ICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7
CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAgICAg
ICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4
IGU4ZDAzZWExMWQxNDI3MjYwYTQyMjcxMDNkYjA3YjJjN2Y4NTZkMDcuLjlhMWQzM2FhOGJhOTE0
NTBjNzM1M2JmMjdjODI1YTZjMmNlYzA5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcApAQCAtMTE4NSwxMyArMTE4NSwxMyBAQCBib29sIFJlbmRlckxheWVyOjp1
cGRhdGVMYXllclBvc2l0aW9uKCkKICAgICB9CiAgICAgCiAgICAgYm9vbCBwb3NpdGlvbk9yT2Zm
c2V0Q2hhbmdlZCA9IGZhbHNlOwotICAgIGlmIChyZW5kZXJlcigpLT5pc0luRmxvd1Bvc2l0aW9u
ZWQoKSkgewotICAgICAgICBMYXlvdXRTaXplIG5ld09mZnNldCA9IHRvUmVuZGVyQm94TW9kZWxP
YmplY3QocmVuZGVyZXIoKSktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7Ci0gICAgICAgIHBv
c2l0aW9uT3JPZmZzZXRDaGFuZ2VkID0gbmV3T2Zmc2V0ICE9IG1fb2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb247Ci0gICAgICAgIG1fb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24gPSBuZXdPZmZzZXQ7Ci0g
ICAgICAgIGxvY2FsUG9pbnQubW92ZShtX29mZnNldEZvckluRmxvd1Bvc2l0aW9uKTsKKyAgICBp
ZiAocmVuZGVyZXIoKS0+aGFzUGFpbnRPZmZzZXQoKSkgeworICAgICAgICBMYXlvdXRTaXplIG5l
d09mZnNldCA9IHRvUmVuZGVyQm94TW9kZWxPYmplY3QocmVuZGVyZXIoKSktPnBhaW50T2Zmc2V0
KCk7CisgICAgICAgIHBvc2l0aW9uT3JPZmZzZXRDaGFuZ2VkID0gbmV3T2Zmc2V0ICE9IG1fcGFp
bnRPZmZzZXQ7CisgICAgICAgIG1fcGFpbnRPZmZzZXQgPSBuZXdPZmZzZXQ7CisgICAgICAgIGxv
Y2FsUG9pbnQubW92ZShtX3BhaW50T2Zmc2V0KTsKICAgICB9IGVsc2UgewotICAgICAgICBtX29m
ZnNldEZvckluRmxvd1Bvc2l0aW9uID0gTGF5b3V0U2l6ZSgpOworICAgICAgICBtX3BhaW50T2Zm
c2V0ID0gTGF5b3V0U2l6ZSgpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXZSdkIHJlYWxseSBs
aWtlIHRvIGp1c3QgZ2V0IHJpZCBvZiB0aGUgY29uY2VwdCBvZiBhIGxheWVyIHJlY3RhbmdsZSBh
bmQgcmVseSBvbiB0aGUgcmVuZGVyZXJzLgpAQCAtNDU5OSw3ICs0NTk5LDcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBS
ZWN0c0NvbnRleHQsIEMKICAgICAgICAgY2xpcFJlY3RzLnNldFBvc0NsaXBSZWN0KGNsaXBSZWN0
cy5maXhlZENsaXBSZWN0KCkpOwogICAgICAgICBjbGlwUmVjdHMuc2V0T3ZlcmZsb3dDbGlwUmVj
dChjbGlwUmVjdHMuZml4ZWRDbGlwUmVjdCgpKTsKICAgICAgICAgY2xpcFJlY3RzLnNldEZpeGVk
KHRydWUpOwotICAgIH0gZWxzZSBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzSW5GbG93UG9z
aXRpb24oKSkKKyAgICB9IGVsc2UgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPmhhc1BhaW50T2Zm
c2V0KCkpCiAgICAgICAgIGNsaXBSZWN0cy5zZXRQb3NDbGlwUmVjdChjbGlwUmVjdHMub3ZlcmZs
b3dDbGlwUmVjdCgpKTsKICAgICBlbHNlIGlmIChyZW5kZXJlcigpLT5zdHlsZSgpLT5wb3NpdGlv
bigpID09IEFic29sdXRlUG9zaXRpb24pCiAgICAgICAgIGNsaXBSZWN0cy5zZXRPdmVyZmxvd0Ns
aXBSZWN0KGNsaXBSZWN0cy5wb3NDbGlwUmVjdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKaW5kZXggMGI2NzQ1MzNlNmQ1MmQyNjViYzA1YjlhMzdjYTM3MjJiMzZmMjhk
Zi4uM2Y2MDM1ZDRhYTlmNmY4Y2Y3OGVjMjQ2YjdmMDJkYTJiMDUxMTA5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQyNSw3ICs0MjUsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB1cGRhdGVCbGVuZE1vZGUoKTsKICNlbmRpZgogCi0gICAgY29uc3QgTGF5b3V0U2l6
ZSYgb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX29mZnNldEZvcklu
Rmxvd1Bvc2l0aW9uOyB9CisgICAgY29uc3QgTGF5b3V0U2l6ZSYgcGFpbnRPZmZzZXQoKSBjb25z
dCB7IHJldHVybiBtX3BhaW50T2Zmc2V0OyB9CiAKICAgICB2b2lkIGNsZWFyQ2xpcFJlY3RzSW5j
bHVkaW5nRGVzY2VuZGFudHMoQ2xpcFJlY3RzVHlwZSB0eXBlVG9DbGVhciA9IEFsbENsaXBSZWN0
VHlwZXMpOwogICAgIHZvaWQgY2xlYXJDbGlwUmVjdHMoQ2xpcFJlY3RzVHlwZSB0eXBlVG9DbGVh
ciA9IEFsbENsaXBSZWN0VHlwZXMpOwpAQCAtMTEyNCw4ICsxMTI0LDggQEAgcHJvdGVjdGVkOgog
ICAgIExheW91dFJlY3QgbV9yZXBhaW50UmVjdDsgLy8gQ2FjaGVkIHJlcGFpbnQgcmVjdHMuIFVz
ZWQgYnkgbGF5b3V0LgogICAgIExheW91dFJlY3QgbV9vdXRsaW5lQm94OwogCi0gICAgLy8gT3Vy
IGN1cnJlbnQgcmVsYXRpdmUgcG9zaXRpb24gb2Zmc2V0LgotICAgIExheW91dFNpemUgbV9vZmZz
ZXRGb3JJbkZsb3dQb3NpdGlvbjsKKyAgICAvLyBQYWludCB0aW1lIG9mZnNldCBvbmx5LCBpdCBp
cyB1c2VkIGZvciBwcm9wZXJseSBwYWludCByZWxhdGl2ZSAvIHN0aWNreSBwb3NpdGlvbmVkIGVs
ZW1lbnRzIGFuZCBleGNsdXNpb24gYm94ZXMgb24gZmxvYXRzLgorICAgIExheW91dFNpemUgbV9w
YWludE9mZnNldDsKIAogICAgIC8vIE91ciAoeCx5KSBjb29yZGluYXRlcyBhcmUgaW4gb3VyIHBh
cmVudCBsYXllcidzIGNvb3JkaW5hdGUgc3BhY2UuCiAgICAgTGF5b3V0UG9pbnQgbV90b3BMZWZ0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDI3YTdhNDVkYWZm
YmY5ZWNjZmU4ODZmNzNjMGM3MDlkNDY3MjgzYWIuLjUwZmFhNmNmMzkwNDZjNzg5OWFjNTMyZmY4
NGI5ZmMxYmQyNmQ3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgK
QEAgLTUyNSw2ICs1MjUsMTYgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc091dE9mRmxvd1Bvc2l0
aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc091dE9mRmxvd1Bvc2l0aW9uZWQo
KTsgfSAvLyBhYnNvbHV0ZSBvciBmaXhlZCBwb3NpdGlvbmluZwogICAgIGJvb2wgaXNJbkZsb3dQ
b3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNSZWxQb3NpdGlvbmVkKCkg
fHwgbV9iaXRmaWVsZHMuaXNTdGlja3lQb3NpdGlvbmVkKCk7IH0gLy8gcmVsYXRpdmUgb3Igc3Rp
Y2t5IHBvc2l0aW9uaW5nCisgICAgYm9vbCBoYXNQYWludE9mZnNldCgpIGNvbnN0CisgICAgewor
ICAgICAgICBib29sIHBvc2l0aW9uZWQgPSBpc0luRmxvd1Bvc2l0aW9uZWQoKTsKKyNpZiBFTkFC
TEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgICAgIC8vIFNoYXBlIG91dHNpZGUgb24gYSBmbG9hdCBj
YW4gcmVwb3NpdGlvbiB0aGUgZmxvYXQgaW4gbXVjaCB0aGUKKyAgICAgICAgLy8gc2FtZSB3YXkg
YXMgcmVsYXRpdmUgcG9zaXRpb25pbmcsIHNvIHRyZWF0IGl0IGFzIHN1Y2guCisgICAgICAgIHBv
c2l0aW9uZWQgPSBwb3NpdGlvbmVkIHx8IChtX2JpdGZpZWxkcy5mbG9hdGluZygpICYmIG1fYml0
ZmllbGRzLmlzQm94KCkgJiYgc3R5bGUoKS0+c2hhcGVPdXRzaWRlKCkpOworI2VuZGlmCisgICAg
ICAgIHJldHVybiBwb3NpdGlvbmVkOworICAgIH0KICAgICBib29sIGlzUmVsUG9zaXRpb25lZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVsUG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0
aXZlIHBvc2l0aW9uaW5nCiAgICAgYm9vbCBpc1N0aWNreVBvc2l0aW9uZWQoKSBjb25zdCB7IHJl
dHVybiBtX2JpdGZpZWxkcy5pc1N0aWNreVBvc2l0aW9uZWQoKTsgfQogICAgIGJvb2wgaXNQb3Np
dGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNQb3NpdGlvbmVkKCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMDJjZjBj
OTk3MTc3OWIxOTdmMGIwYTg4NDZmZDllNTcxMThlYzIzMi4uOGMyNTMyZmUzZGViZjVjMWUwMDY0
YTQ4MjI0ZmM5NDJhNDgyZTExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKQEAgLTQ2MCw2ICs0NjAsMTQgQEAgcHVibGljOgogICAgIEVQb3NpdGlv
biBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVQb3NpdGlvbj4obm9uaW5o
ZXJpdGVkX2ZsYWdzLl9wb3NpdGlvbik7IH0KICAgICBib29sIGhhc091dE9mRmxvd1Bvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gcG9zaXRpb24oKSA9PSBBYnNvbHV0ZVBvc2l0aW9uIHx8IHBvc2l0
aW9uKCkgPT0gRml4ZWRQb3NpdGlvbjsgfQogICAgIGJvb2wgaGFzSW5GbG93UG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBwb3NpdGlvbigpID09IFJlbGF0aXZlUG9zaXRpb24gfHwgcG9zaXRpb24o
KSA9PSBTdGlja3lQb3NpdGlvbjsgfQorICAgIGJvb2wgaGFzUGFpbnRPZmZzZXQoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgYm9vbCBwYWludE9mZnNldCA9IGhhc0luRmxvd1Bvc2l0aW9uKCk7Cisj
aWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgICAgICBwYWludE9mZnNldCA9IHBhaW50T2Zm
c2V0IHx8IChpc0Zsb2F0aW5nKCkgJiYgc2hhcGVPdXRzaWRlKCkpOworI2VuZGlmCisgICAgICAg
IHJldHVybiBwYWludE9mZnNldDsKKyAgICB9CiAgICAgYm9vbCBoYXNWaWV3cG9ydENvbnN0cmFp
bmVkUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBwb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24g
fHwgcG9zaXRpb24oKSA9PSBTdGlja3lQb3NpdGlvbjsgfQogICAgIEVGbG9hdCBmbG9hdGluZygp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVGbG9hdD4obm9uaW5oZXJpdGVkX2ZsYWdzLl9m
bG9hdGluZyk7IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEyZDkyZWM2ODdjN2UxNmQ0N2E4MTgwMzZjNWEwYWE0ZWM3
ODA3MmMuLjAwMWQ4MDQxY2U0MGNhOGIxNjg5MDA0ZTFkN2M2NGJlMGYyOTE1MzcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMy0wMi0xMSAgQmVtIEpvbmVzLUJleSAgPGJqb25lc2JlQGFkb2Jl
LmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEhhbmRsZSBzaGFwZS1vdXRzaWRlIGNo
YW5naW5nIGEgZmxvYXQncyBvdmVyaGFuZyBiZWhhdmlvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
amNoYWZmcmFpeEB3ZWJraXQub3JnLgorCisgICAgICAgIFRoaXMgaXMgYWxzbyB0ZXN0ZWQgYnkg
dGhlIGV4aXN0aW5nIHRlc3RzIGZvciBzaGFwZSBvdXRzaWRlIG9uIGZsb2F0cyBwb3NpdGlvbmlu
Zy4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFw
ZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9h
dHMtb3ZlcmhhbmcuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMTEgIENocmlzdG9waGUgRHVtZXog
IDxjaC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIGZhc3QvZm9ybXMv
bnVtYmVyL251bWJlci1sMTBuLWlucHV0Lmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNp
ZGUtZmxvYXRzLW92ZXJoYW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3Zlcmhhbmct
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDBkOTBiMDZjZDQxOTZkYzIxOTYwZDgyMTZjZDc2
Mjc2MzU1MGU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDxzdHlsZT4K
KyAgICAgICN0b3AgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIHdpZHRo
OiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgY29sb3I6IHllbGxvdzsK
KyAgICAgICAgZm9udDogMTBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICB9CisgICAgICAj
c2hhcGUgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgcmlnaHQ6IDBweDsKKyAgICAgICAg
dG9wOiAwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICB9CisgICAg
ICAjZmxvYXQgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgICAgIGZsb2F0OiByaWdodDsKKyAgICAgIH0KKyAgICAgICNib3R0b20geworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAg
fQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGgxPjxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5MjciPkJ1ZyAxMDY5Mjc8
L2E+OiBbQ1NTIEV4Y2x1c2lvbnNdIEhhbmRsZSBzaGFwZS1vdXRzaWRlIGNoYW5naW5nIGEgZmxv
YXQncyBvdmVyaGFuZyBiZWhhdmlvcjwvaDE+CisgICAgPGgyPllvdSBzaG91bGQgc2VlIGEgeWVs
bG93IHNxdWFyZSB0byB0aGUgbGVmdCBvZiBhIGJsdWUgc3F1YXJlLCB3aXRoIHRoZSBibHVlIHNx
dWFyZSBjb3ZlcmluZyB0aGUgdGV4dCBpbiB0aGUgeWVsbG93IGFyZWEuIFRoZSBsb3dlciBncmVl
biByZWN0YW5nbGUgc2hvdWxkIGhhdmUgdGV4dCB3cmFwcGluZyBhcm91bmQgYSBzcXVhcmUgYXJl
YSBvbiB0aGUgcmlnaHQgYXMgaWYgdGhlcmUgaXMgYSBmbG9hdCB0aGVyZS4gWW91IHNob3VsZCBu
b3Qgc2VlIGFueSByZWQuPC9oMj4KKyAgICA8ZGl2IGlkPSJ0b3AiPgorICAgICAgWFhYWFhYWFhY
WDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAgICAgWFhYWFhY
WFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAgICAgWFhY
WFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAgICAg
WFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAg
ICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgor
ICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFu
PgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9z
cGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhY
PC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhY
WFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhY
WFhYWFhYPC9zcGFuPgorICAgICAgPGRpdiBpZD0ic2hhcGUiPgorICAgICAgPC9kaXY+CisgICAg
PC9kaXY+CisgICAgPGRpdiBpZD0iYm90dG9tIj4KKyAgICAgIDxkaXYgaWQ9ImZsb2F0Ij4KKyAg
ICAgPC9kaXY+CisgICAgIFRoZSBmbG9hdCBpcyBkZWZpbmVkIGhlcmUsIGJ1dCB0aGUgc2hhcGUg
cHVzaGVzIGl0IGludG8gdGhlIGFib3ZlIGRpdi4gTm90ZSB0aGF0IHRoZSBleGNsdXNpb24gYmVo
YXZpb3Igc3RheXMgd2l0aCB0aGUgc2hhcGUgYW5kIG5vdCB3aXRoIHRoZSBmbG9hdC4KKyAgICA8
L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3Zl
cmhhbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZs
b2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmYzQw
NGNiYWQzY2NiMmM2YjBiNDYxMTlhNzEyNDc1YjNkZTg5NGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMtb3ZlcmhhbmcuaHRtbApAQCAtMCwwICsxLDUwIEBACis8aHRtbD4KKyAgPGhl
YWQ+CisgICAgPHNjcmlwdD4KKyAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOwor
ICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICN0b3AgeworICAgICAgICB3aWR0aDog
MjAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGNvbG9yOiB5ZWxsb3c7Cisg
ICAgICAgIGZvbnQ6IDEwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgfQorICAgICAgI2Zs
b2F0IHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGZsb2F0OiByaWdodDsKKyAgICAgICAg
LXdlYmtpdC1zaGFwZS1vdXRzaWRlOiByZWN0YW5nbGUoMHB4LCAxMDBweCwgMTAwcHgsIDEwMHB4
KTsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIH0KKyAgICAgICNib3R0
b20geworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgd2lkdGg6IDIw
MHB4OworICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGgx
PjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5Mjci
PkJ1ZyAxMDY5Mjc8L2E+OiBbQ1NTIEV4Y2x1c2lvbnNdIEhhbmRsZSBzaGFwZS1vdXRzaWRlIGNo
YW5naW5nIGEgZmxvYXQncyBvdmVyaGFuZyBiZWhhdmlvcjwvaDE+CisgICAgPGgyPllvdSBzaG91
bGQgc2VlIGEgeWVsbG93IHNxdWFyZSB0byB0aGUgbGVmdCBvZiBhIGJsdWUgc3F1YXJlLCB3aXRo
IHRoZSBibHVlIHNxdWFyZSBjb3ZlcmluZyB0aGUgdGV4dCBpbiB0aGUgeWVsbG93IGFyZWEuIFRo
ZSBsb3dlciBncmVlbiByZWN0YW5nbGUgc2hvdWxkIGhhdmUgdGV4dCB3cmFwcGluZyBhcm91bmQg
YSBzcXVhcmUgYXJlYSBvbiB0aGUgcmlnaHQgYXMgaWYgdGhlcmUgaXMgYSBmbG9hdCB0aGVyZS4g
WW91IHNob3VsZCBub3Qgc2VlIGFueSByZWQuPC9oMj4KKyAgICA8ZGl2IGlkPSJ0b3AiPgorICAg
ICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgor
ICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9zcGFu
PgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhYPC9z
cGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhYWFhY
PC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhYWFhY
WFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5YWFhY
WFhYWFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkIj5Y
WFhYWFhYWFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjogcmVk
Ij5YWFhYWFhYWFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xvcjog
cmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAgICAgWFhYWFhYWFhYWDxzcGFuIHN0eWxlPSJjb2xv
cjogcmVkIj5YWFhYWFhYWFhYPC9zcGFuPgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImJvdHRv
bSI+CisgICAgICA8ZGl2IGlkPSJmbG9hdCI+CisgICAgIDwvZGl2PgorICAgICBUaGUgZmxvYXQg
aXMgZGVmaW5lZCBoZXJlLCBidXQgdGhlIHNoYXBlIHB1c2hlcyBpdCBpbnRvIHRoZSBhYm92ZSBk
aXYuIE5vdGUgdGhhdCB0aGUgZXhjbHVzaW9uIGJlaGF2aW9yIHN0YXlzIHdpdGggdGhlIHNoYXBl
IGFuZCBub3Qgd2l0aCB0aGUgZmxvYXQuCisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4K
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187670</attachid>
            <date>2013-02-11 14:13:14 -0800</date>
            <delta_ts>2013-02-11 15:18:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106927-20130211140945.patch</filename>
            <type>text/plain</type>
            <size>37897</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTZjNDE4ZjU0NTgzNzgz
NWQ4NmZlODU4OWI0MmU2YzljYWI0NTBmNy4uYjJiZmZiMzhhMjdlMjcxYjI3ZTI3OWRjMzExMTRh
ZmZmOGZiN2YwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEzLTAyLTExICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJoYW5nIGJlaGF2
aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBKdWxpZW4gQ2hhZmZyYWl4LgorCisgICAgICAgIFdo
ZW4gdGhlIHBvc2l0aW9uIG9uIGEgc2hhcGUgb3V0c2lkZSBjYXVzZXMgYSBmbG9hdCB0byBzcGls
bCBvdXQgaW50bworICAgICAgICBhbm90aGVyIGJsb2NrIHRoYW4gaXQncyBjb250YWluZXIsIGl0
IHdhcyBub3QgYmVpbmcgZHJhd24gY29ycmVjdGx5LiBJdAorICAgICAgICBiZWNhbWUgYXBwYXJl
bnQgdGhhdCBpbiBvcmRlciB0byBmaXggdGhpcyBwcm9wZXJseSwgdGhlIGFwcHJvYWNoIHRvCisg
ICAgICAgIHBvc2l0aW9uaW5nIHNoYXBlIG91dHNpZGVzIGFuZCBmbG9hdHMgbmVlZGVkIHRvIGJl
IGNoYW5nZWQuIFRoZSBuZXcKKyAgICAgICAgYXBwcm9hY2ggYWxzbyBmaXhlcyBzb21lIG90aGVy
IG91dHN0YW5kaW5nIGlzc3VlcywgbGlrZSBoaXQgZGV0ZWN0aW9uLgorCisgICAgICAgIFdoZW4g
YSBmbG9hdCBoYXMgYSBzaGFwZSBvdXRzaWRlLCBpbmxpbmUgYW5kIGZsb2F0IGxheW91dCBoYXBw
ZW5zCisgICAgICAgIHVzaW5nIHRoZSBleGNsdXNpb24gc2hhcGUgYm91bmRzIGluc3RlYWQgb2Yg
dGhlIGZsb2F0J3MgYm94LiAgVGhlCisgICAgICAgIGVmZmVjdCBvZiB0aGlzIGlzIHRoYXQgdGhl
IGZsb2F0IGl0c2VsZiBubyBsb25nZXIgaGFzIGFueSBlZmZlY3Qgb24KKyAgICAgICAgbGF5b3V0
LCBib3RoIHdpdGggcmVzcGVjdCB0byBwb3NpdGlvbmluZyBvZiB0aGUgZmxvYXQncyBzaWJsaW5n
cyBhcworICAgICAgICB3ZWxsIGFzIHBvc2l0aW9uaW5nIHRoZSBmbG9hdCdzIGJveC4gVGhpcyBt
ZWFucyB0aGF0IHdoZW4gdGhlIGZsb2F0IGlzCisgICAgICAgIHBvc2l0aW9uZWQsIGl0IGlzIHRo
ZSBzaGFwZSdzIGJveCB0aGF0IG11c3Qgb2JleSB0aGUgcG9zaXRpb25pbmcgcnVsZXMKKyAgICAg
ICAgZm9yIGZsb2F0cy4gV2hlbiB0aGUgc2hhcGUgaXMgZ2l2ZW4gYSBwb3NpdGlvbiByZWxhdGl2
ZSB0byB0aGUgZmxvYXQncworICAgICAgICBib3gsIHRoZSBydWxlcyBmb3IgZmxvYXQgcG9zaXRp
b25pbmcgZGV0ZXJtaW5lIHdoZXJlIHRoZSBzaGFwZSBzaXRzCisgICAgICAgIGluIHRoZSBwYXJl
bnQsIGNhdXNpbmcgdGhlIGZsb2F0J3MgYm94IHRvIGJlIG9mZnNldCBieSB0aGUgcG9zaXRpb24g
b2YKKyAgICAgICAgdGhlIHNoYXBlLiBTaW5jZSB0aGUgZmxvYXQncyBib3ggZG9lcyBub3QgYWZm
ZWN0IGxheW91dCAoZHVlIHRvIHRoZQorICAgICAgICBzaGFwZSksIHRoaXMgaXMgc2ltaWxhciB0
byByZWxhdGl2ZSBwb3NpdGlvbmluZyBpbiB0aGF0IHRoZSBvZmZzZXQgaXMKKyAgICAgICAgYSBw
YWludCB0aW1lIG9jY3VycmVuY2UuCisKKyAgICAgICAgU28gdGhlIG5ldyBhcHByb2FjaCBpcyB0
byBpbXBsZW1lbnQgcG9zaXRpb25pbmcgb2Ygc2hhcGUgb3V0c2lkZSBvbgorICAgICAgICBmbG9h
dHMgc2ltaWxhciB0byBob3cgcmVsYXRpdmUgcG9zaXRpb25pbmcgaXMgaW1wbGVtZW50ZWQsIHVz
aW5nIGEKKyAgICAgICAgUmVuZGVyTGF5ZXIuCisKKyAgICAgICAgVGhpcyBpcyBhbHNvIHRlc3Rl
ZCBieSB0aGUgZXhpc3RpbmcgdGVzdHMgZm9yIHNoYXBlIG91dHNpZGUgb24gZmxvYXRzIHBvc2l0
aW9uaW5nLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZs
b2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy5odG1sCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6RXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6c2hhcGVMb2dpY2FsT2Zmc2V0KTogVXRpbGl0eSBtZXRo
b2QgdG8gY3JlYXRlIGEgTGF5b3V0U2l6ZSBmb3IgY29tcHV0aW5nIHRoZSBsYXllciBvZmZzZXQu
CisgICAgICAgIChFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKToKKyAgICAgICAgKiByZW5kZXJp
bmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91
dFN0YXRlKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBp
biBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVG
b3JDaGlsZCk6IFJlbW92ZSBvbGQgcG9zaXRpb25pbmcgaW1wbGVtZW50YXRpb24uCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRGbG9hdHMpOiBSZW1vdmUgb2xkIHBvc2l0aW9u
aW5nIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmJsb2Nr
U2VsZWN0aW9uR2Fwcyk6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdl
bGwgYXMgaW4gZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Ojpwb3NpdGlvbk5ld0Zsb2F0cyk6IFJlbW92ZSBvbGQgcG9zaXRpb25pbmcgaW1wbGVtZW50YXRp
b24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YWRkT3ZlcmhhbmdpbmdGbG9hdHMp
OiBSZW1vdmUgRklYTUUuCisgICAgICAgIChXZWJDb3JlOjpwb3NpdGlvbkZvclBvaW50UmVzcGVj
dGluZ0VkaXRpbmdCb3VuZGFyaWVzKTogQ2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNp
ZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0aW9uaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5oOgorICAgICAgICAoUmVuZGVyQmxvY2spOiBSZW1vdmUgb2xkIHBvc2l0aW9u
aW5nIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnhQb3Np
dGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKTogUmVtb3ZlIG9sZCBwb3NpdGlvbmluZyBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp5UG9zaXRpb25Gb3JG
bG9hdEluY2x1ZGluZ01hcmdpbik6IFJlbW92ZSBvbGQgcG9zaXRpb25pbmcgaW1wbGVtZW50YXRp
b24uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGgg
c2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIpOiBDaGVjayBmb3IgZmxvYXRz
IHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6IENoZWNrIGZv
ciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4gZmxvdyBwb3NpdGlvbmlu
Zy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bGF5b3V0T3ZlcmZsb3dSZWN0Rm9yUHJv
cGFnYXRpb24pOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFz
IGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOiBN
YWtlIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgZ2V0IGEgbGF5ZXIuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveE1vZGVsT2JqZWN0OjpwYWludE9mZnNldCk6IE1ldGhvZCB0byByZXR1cm4gaW4gZmxvdwor
ICAgICAgICAgICAgcG9zaXRpb25pbmcgb2Zmc2V0ICsgb2Zmc2V0IGZyb20gc2hhcGUgb3V0c2lk
ZSBvbiBmbG9hdHMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6
CisgICAgICAgIChSZW5kZXJCb3hNb2RlbE9iamVjdCk6IEFkZCBwYWludE9mZnNldCBtZXRob2Qu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KTogQ2hlY2sgZm9y
IGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBvc2l0aW9uaW5n
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQp
OiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFzIGluIGZsb3cg
cG9zaXRpb25pbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9D
b250YWluZXIpOiBDaGVjayBmb3IgZmxvYXRzIHdpdGggc2hhcGUgb3V0c2lkZSBhcyB3ZWxsIGFz
IGluIGZsb3cgcG9zaXRpb25pbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uKTog
Q2hlY2sgZm9yIGZsb2F0cyB3aXRoIHNoYXBlIG91dHNpZGUgYXMgd2VsbCBhcyBpbiBmbG93IHBv
c2l0aW9uaW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBS
ZWN0cyk6IENoZWNrIGZvciBmbG9hdHMgd2l0aCBzaGFwZSBvdXRzaWRlIGFzIHdlbGwgYXMgaW4g
ZmxvdyBwb3NpdGlvbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludE9mZnNldCk6IFJlbmFtZSBvZmZzZXRG
b3JJbkZsb3dQb3NpdGlvbiB0byByZWZsZWN0IHRoYXQgaXQncyBub3QganVzdCBmb3IKKyAgICAg
ICAgICAgIGluIGZsb3cgcG9zaXRpb25pbmcsIGl0IGFsc28gcmVmbGVjdHMgc2hhcGUgb3V0c2lk
ZSBwb3NpdGlvbiBvbiBmbG9hdHMuCisgICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpoYXNQYWludE9mZnNldCk6IERldGVybWluZXMgaWYgdGhpcyBvYmplY3QgaXMgaW4gZmxvdyBw
b3NpdGlvaW5lZCBvciBpcyBhIGZsb2F0IHdpdGggc2hhcGUgb3V0c2lkZS4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDogQWRkIGhhc1BhaW50T2Zmc2V0IG1ldGhvZCwg
YW5hbGFnb3VzIHRvIG1ldGhvZCB3aXRoIHNhbWUgbmFtZSBvbiBSZW5kZXJPYmplY3QuCisKIDIw
MTMtMDItMTEgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgog
CiAgICAgICAgIFtFRkxdIGZhc3QvZm9ybXMvbnVtYmVyL251bWJlci1sMTBuLWlucHV0Lmh0bWwg
aXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25T
aGFwZU91dHNpZGVJbmZvLmgKaW5kZXggMGY2YzkxZWI3Mzg3OTExMDc1M2FkOWYwODA2NjYzZDA5
ZThjOTFlOC4uYTRiODEyODM4YmUzNWI0YmY5Y2RmNTZhYmJjOGNmZDVjMjA1YjU2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5m
by5oCkBAIC0zMyw2ICszMyw3IEBACiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogCiAjaW5j
bHVkZSAiRXhjbHVzaW9uU2hhcGVJbmZvLmgiCisjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDYgKzQxLDExIEBAIGNsYXNzIFJlbmRlckJveDsK
IAogY2xhc3MgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyA6IHB1YmxpYyBFeGNsdXNpb25TaGFw
ZUluZm88UmVuZGVyQm94LCAmUmVuZGVyU3R5bGU6OnNoYXBlT3V0c2lkZT4sIHB1YmxpYyBNYXBw
ZWRJbmZvPFJlbmRlckJveCwgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbz4gewogcHVibGljOgor
ICAgIExheW91dFNpemUgc2hhcGVMb2dpY2FsT2Zmc2V0KCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBMYXlvdXRTaXplKHNoYXBlTG9naWNhbExlZnQoKSwgc2hhcGVMb2dpY2FsVG9wKCkp
OworICAgIH0KKwogICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlT3V0c2lkZUlu
Zm8+IGNyZWF0ZUluZm8oY29uc3QgUmVuZGVyQm94KiByZW5kZXJlcikgeyByZXR1cm4gYWRvcHRQ
dHIobmV3IEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8ocmVuZGVyZXIpKTsgfQogICAgIHN0YXRp
YyBib29sIGlzRW5hYmxlZEZvcihjb25zdCBSZW5kZXJCb3gqKTsKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAppbmRleCA0Y2ZhMTZkYjgyYTA1YjQwYjcx
ZDBiOTAxYTBmZDM5NjgwMzMxNTI0Li45YzQxNzYwN2U2MDlhMDY5NWU4NTQwZTBkY2U4NGI4YmRh
MGIzYTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKQEAgLTY1
LDggKzY1LDggQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKExheW91dFN0YXRlKiBwcmV2LCBS
ZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRTaXoKIAogICAgIG1fbGF5b3V0T2Zmc2V0
ID0gbV9wYWludE9mZnNldDsKIAotICAgIGlmIChyZW5kZXJlci0+aXNJbkZsb3dQb3NpdGlvbmVk
KCkgJiYgcmVuZGVyZXItPmhhc0xheWVyKCkpCi0gICAgICAgIG1fcGFpbnRPZmZzZXQgKz0gcmVu
ZGVyZXItPmxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CisgICAgaWYgKHJlbmRl
cmVyLT5oYXNQYWludE9mZnNldCgpICYmIHJlbmRlcmVyLT5oYXNMYXllcigpKQorICAgICAgICBt
X3BhaW50T2Zmc2V0ICs9IHJlbmRlcmVyLT5sYXllcigpLT5wYWludE9mZnNldCgpOwogCiAgICAg
bV9jbGlwcGVkID0gIWZpeGVkICYmIHByZXYtPm1fY2xpcHBlZDsKICAgICBpZiAobV9jbGlwcGVk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDhlMWE1ZmQ2
NWJkNGFjZjA2MjhlZmNmMmVlNzUxNzVlOTBmZjNiYy4uNTUyOTE1MDdiNmQxZTQyYWU5ZDlkNTYy
M2RkNjU3YTViZTA0YjNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCkBAIC0zMTI3LDcgKzMxMjcsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgIH0K
IH0KIAotTGF5b3V0UG9pbnQgUmVuZGVyQmxvY2s6OmZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9y
Q2hpbGQoY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxkLCBjb25zdCBMYXlvdXRQb2ludCYgcG9p
bnQsIEZsb2F0UmVuZGVyaW5nU3RhdGUgcmVuZGVyaW5nU3RhdGUpIGNvbnN0CitMYXlvdXRQb2lu
dCBSZW5kZXJCbG9jazo6ZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChjb25zdCBGbG9h
dGluZ09iamVjdCogY2hpbGQsIGNvbnN0IExheW91dFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAg
ICBpZiAoIXN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJl
dHVybiBwb2ludDsKQEAgLTMxMzYsOCArMzEzNiw4IEBAIExheW91dFBvaW50IFJlbmRlckJsb2Nr
OjpmbGlwRmxvYXRGb3JXcml0aW5nTW9kZUZvckNoaWxkKGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBj
CiAgICAgLy8gaXQncyBnb2luZyB0byBnZXQgYWRkZWQgYmFjayBpbi4gV2UgaGlkZSB0aGlzIGNv
bXBsaWNhdGlvbiBoZXJlIHNvIHRoYXQgdGhlIGNhbGxpbmcgY29kZSBsb29rcyBub3JtYWwgZm9y
IHRoZSB1bmZsaXBwZWQKICAgICAvLyBjYXNlLgogICAgIGlmIChpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQotICAgICAgICByZXR1cm4gTGF5b3V0UG9pbnQocG9pbnQueCgpLCBwb2ludC55KCkg
KyBoZWlnaHQoKSAtIGNoaWxkLT5yZW5kZXJlcigpLT5oZWlnaHQoKSAtIDIgKiB5UG9zaXRpb25G
b3JGbG9hdEluY2x1ZGluZ01hcmdpbihjaGlsZCwgcmVuZGVyaW5nU3RhdGUpKTsKLSAgICByZXR1
cm4gTGF5b3V0UG9pbnQocG9pbnQueCgpICsgd2lkdGgoKSAtIGNoaWxkLT5yZW5kZXJlcigpLT53
aWR0aCgpIC0gMiAqIHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNoaWxkLCByZW5k
ZXJpbmdTdGF0ZSksIHBvaW50LnkoKSk7CisgICAgICAgIHJldHVybiBMYXlvdXRQb2ludChwb2lu
dC54KCksIHBvaW50LnkoKSArIGhlaWdodCgpIC0gY2hpbGQtPnJlbmRlcmVyKCktPmhlaWdodCgp
IC0gMiAqIHlQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGNoaWxkKSk7CisgICAgcmV0
dXJuIExheW91dFBvaW50KHBvaW50LngoKSArIHdpZHRoKCkgLSBjaGlsZC0+cmVuZGVyZXIoKS0+
d2lkdGgoKSAtIDIgKiB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjaGlsZCksIHBv
aW50LnkoKSk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50RmxvYXRzKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGJvb2wgcHJlc2VydmVQ
aGFzZSkKQEAgLTMxNTMsNyArMzE1Myw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50RmxvYXRz
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzCiAgICAg
ICAgIGlmIChyLT5zaG91bGRQYWludCgpICYmICFyLT5tX3JlbmRlcmVyLT5oYXNTZWxmUGFpbnRp
bmdMYXllcigpKSB7CiAgICAgICAgICAgICBQYWludEluZm8gY3VycmVudFBhaW50SW5mbyhwYWlu
dEluZm8pOwogICAgICAgICAgICAgY3VycmVudFBhaW50SW5mby5waGFzZSA9IHByZXNlcnZlUGhh
c2UgPyBwYWludEluZm8ucGhhc2UgOiBQYWludFBoYXNlQmxvY2tCYWNrZ3JvdW5kOwotICAgICAg
ICAgICAgTGF5b3V0UG9pbnQgY2hpbGRQb2ludCA9IGZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9y
Q2hpbGQociwgTGF5b3V0UG9pbnQocGFpbnRPZmZzZXQueCgpICsgeFBvc2l0aW9uRm9yRmxvYXRJ
bmNsdWRpbmdNYXJnaW4ociwgRmxvYXRQYWludCkgLSByLT5tX3JlbmRlcmVyLT54KCksIHBhaW50
T2Zmc2V0LnkoKSArIHlQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKHIsIEZsb2F0UGFp
bnQpIC0gci0+bV9yZW5kZXJlci0+eSgpKSwgRmxvYXRQYWludCk7CisgICAgICAgICAgICBMYXlv
dXRQb2ludCBjaGlsZFBvaW50ID0gZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChyLCBM
YXlvdXRQb2ludChwYWludE9mZnNldC54KCkgKyB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01h
cmdpbihyKSAtIHItPm1fcmVuZGVyZXItPngoKSwgcGFpbnRPZmZzZXQueSgpICsgeVBvc2l0aW9u
Rm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4ocikgLSByLT5tX3JlbmRlcmVyLT55KCkpKTsKICAgICAg
ICAgICAgIHItPm1fcmVuZGVyZXItPnBhaW50KGN1cnJlbnRQYWludEluZm8sIGNoaWxkUG9pbnQp
OwogICAgICAgICAgICAgaWYgKCFwcmVzZXJ2ZVBoYXNlKSB7CiAgICAgICAgICAgICAgICAgY3Vy
cmVudFBhaW50SW5mby5waGFzZSA9IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHM7CkBA
IC0zNDg0LDEwICszNDg0LDEwIEBAIEdhcFJlY3RzIFJlbmRlckJsb2NrOjpibG9ja1NlbGVjdGlv
bkdhcHMoUmVuZGVyQmxvY2sqIHJvb3RCbG9jaywgY29uc3QgTGF5b3V0UG9pCiAgICAgICAgIGlm
IChjdXJyLT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBj
b250aW51ZTsgLy8gV2UgbXVzdCBiZSBhIG5vcm1hbCBmbG93IG9iamVjdCBpbiBvcmRlciB0byBl
dmVuIGJlIGNvbnNpZGVyZWQuCiAKLSAgICAgICAgaWYgKGN1cnItPmlzSW5GbG93UG9zaXRpb25l
ZCgpICYmIGN1cnItPmhhc0xheWVyKCkpIHsKKyAgICAgICAgaWYgKGN1cnItPmhhc1BhaW50T2Zm
c2V0KCkgJiYgY3Vyci0+aGFzTGF5ZXIoKSkgewogICAgICAgICAgICAgLy8gSWYgdGhlIHJlbHBv
c2l0aW9uIG9mZnNldCBpcyBhbnl0aGluZyBvdGhlciB0aGFuIDAsIHRoZW4gdHJlYXQgdGhpcyBq
dXN0IGxpa2UgYW4gYWJzb2x1dGUgcG9zaXRpb25lZCBlbGVtZW50LgogICAgICAgICAgICAgLy8g
SnVzdCBkaXNyZWdhcmQgaXQgY29tcGxldGVseS4KLSAgICAgICAgICAgIExheW91dFNpemUgcmVs
T2Zmc2V0ID0gY3Vyci0+bGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICAg
ICAgICAgIExheW91dFNpemUgcmVsT2Zmc2V0ID0gY3Vyci0+bGF5ZXIoKS0+cGFpbnRPZmZzZXQo
KTsKICAgICAgICAgICAgIGlmIChyZWxPZmZzZXQud2lkdGgoKSB8fCByZWxPZmZzZXQuaGVpZ2h0
KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTQwMTMsMTggKzQw
MTMsOCBAQCBib29sIFJlbmRlckJsb2NrOjpwb3NpdGlvbk5ld0Zsb2F0cygpCiAKICAgICAgICAg
c2V0TG9naWNhbExlZnRGb3JGbG9hdChmbG9hdGluZ09iamVjdCwgZmxvYXRMb2dpY2FsTG9jYXRp
b24ueCgpKTsKIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgaWYgKGNoaWxk
Qm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCkpIHsKLSAgICAgICAgICAgIC8vIFRoZSBD
U1MgRXhjbHVzaW9ucyBzcGVjaWZpY2F0aW9uIHNheXMgdGhhdCB0aGUgbWFyZ2lucyBhcmUgaWdu
b3JlZCB3aGVuIGEgZmxvYXQgaGFzIGEgc2hhcGUgb3V0c2lkZS4KLSAgICAgICAgICAgIHNldExv
Z2ljYWxMZWZ0Rm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLngoKSAtIGNo
aWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCktPnNoYXBlTG9naWNhbExlZnQoKSk7
Ci0gICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNh
bExvY2F0aW9uLnkoKSAtIGNoaWxkQm94LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCktPnNo
YXBlTG9naWNhbFRvcCgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSNlbmRpZgotICAgICAgICAgICAg
c2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgp
ICsgY2hpbGRMb2dpY2FsTGVmdE1hcmdpbik7Ci0gICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9y
Q2hpbGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSArIG1hcmdpbkJlZm9yZUZv
ckNoaWxkKGNoaWxkQm94KSk7Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICB9
Ci0jZW5kaWYKKyAgICAgICAgc2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRM
b2dpY2FsTG9jYXRpb24ueCgpICsgY2hpbGRMb2dpY2FsTGVmdE1hcmdpbik7CisgICAgICAgIHNl
dExvZ2ljYWxUb3BGb3JDaGlsZChjaGlsZEJveCwgZmxvYXRMb2dpY2FsTG9jYXRpb24ueSgpICsg
bWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGRCb3gpKTsKIAogICAgICAgICBMYXlvdXRTdGF0ZSog
bGF5b3V0U3RhdGUgPSB2aWV3KCktPmxheW91dFN0YXRlKCk7CiAgICAgICAgIGJvb2wgaXNQYWdp
bmF0ZWQgPSBsYXlvdXRTdGF0ZS0+aXNQYWdpbmF0ZWQoKTsKQEAgLTQwNTMsMTkgKzQwNDMsOCBA
QCBib29sIFJlbmRlckJsb2NrOjpwb3NpdGlvbk5ld0Zsb2F0cygpCiAgICAgICAgICAgICAgICAg
ZmxvYXRMb2dpY2FsTG9jYXRpb24gPSBjb21wdXRlTG9naWNhbExvY2F0aW9uRm9yRmxvYXQoZmxv
YXRpbmdPYmplY3QsIG5ld0xvZ2ljYWxUb3ApOwogICAgICAgICAgICAgICAgIHNldExvZ2ljYWxM
ZWZ0Rm9yRmxvYXQoZmxvYXRpbmdPYmplY3QsIGZsb2F0TG9naWNhbExvY2F0aW9uLngoKSk7CiAK
LSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgICAgICAgICAgaWYgKGNoaWxkQm94
LT5leGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8g
VGhlIENTUyBFeGNsdXNpb25zIHNwZWNpZmljYXRpb24gc2F5cyB0aGF0IHRoZSBtYXJnaW5zIGFy
ZSBpZ25vcmVkIHdoZW4gYSBmbG9hdCBoYXMgYSBzaGFwZSBvdXRzaWRlLgotICAgICAgICAgICAg
ICAgICAgICBzZXRMb2dpY2FsTGVmdEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxMb2Nh
dGlvbi54KCkgLSBjaGlsZEJveC0+ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpLT5zaGFwZUxv
Z2ljYWxMZWZ0KCkpOwotICAgICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQo
Y2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSAtIGNoaWxkQm94LT5leGNsdXNpb25T
aGFwZU91dHNpZGVJbmZvKCktPnNoYXBlTG9naWNhbFRvcCgpKTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgewotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgIHNldExvZ2ljYWxMZWZ0Rm9yQ2hp
bGQoY2hpbGRCb3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLngoKSArIGNoaWxkTG9naWNhbExlZnRN
YXJnaW4pOwotICAgICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoY2hpbGRC
b3gsIGZsb2F0TG9naWNhbExvY2F0aW9uLnkoKSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxk
Qm94KSk7Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICAgICAgICAgIH0KLSNl
bmRpZgotCisgICAgICAgICAgICAgICAgc2V0TG9naWNhbExlZnRGb3JDaGlsZChjaGlsZEJveCwg
ZmxvYXRMb2dpY2FsTG9jYXRpb24ueCgpICsgY2hpbGRMb2dpY2FsTGVmdE1hcmdpbik7CisgICAg
ICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94LCBmbG9hdExvZ2ljYWxM
b2NhdGlvbi55KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZEJveCkpOwogICAgICAgICAK
ICAgICAgICAgICAgICAgICBpZiAoY2hpbGRCbG9jaykKICAgICAgICAgICAgICAgICAgICAgY2hp
bGRCbG9jay0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwpAQCAtNDU1
OCw3ICs0NTM3LDYgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YWRkT3ZlcmhhbmdpbmdGbG9h
dHMoUmVuZGVyQmxvY2sqIGNoaWxkLCBib29sIG1ha2VDaGlsZFAKICAgICAgICAgTGF5b3V0VW5p
dCBsb2dpY2FsQm90dG9tID0gY2hpbGRMb2dpY2FsVG9wICsgbG9naWNhbEJvdHRvbUZvckZsb2F0
OwogICAgICAgICBsb3dlc3RGbG9hdExvZ2ljYWxCb3R0b20gPSBtYXgobG93ZXN0RmxvYXRMb2dp
Y2FsQm90dG9tLCBsb2dpY2FsQm90dG9tKTsKIAotICAgICAgICAvLyBGSVhNRTogQnVnIDEwNjky
NyBIYW5kbGUgc2l0dWF0aW9ucyB3aGVyZSBmbG9hdCBhbmQgc2hhcGUtb3V0c2lkZSBvdmVyZmxv
dyBkaWZmZXJlbnRseS4KICAgICAgICAgaWYgKGxvZ2ljYWxCb3R0b20gPiBsb2dpY2FsSGVpZ2h0
KCkpIHsKICAgICAgICAgICAgIC8vIElmIHRoZSBvYmplY3QgaXMgbm90IGluIHRoZSBsaXN0LCB3
ZSBhZGQgaXQgbm93LgogICAgICAgICAgICAgaWYgKCFjb250YWluc0Zsb2F0KHItPm1fcmVuZGVy
ZXIpKSB7CkBAIC01MDM3LDggKzUwMTUsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNFZGl0aW5n
Qm91bmRhcnkoUmVuZGVyT2JqZWN0KiBhbmNlc3RvciwgUmVuZGVyT2JqZWN0KiBjaGlsZAogc3Rh
dGljIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50UmVzcGVjdGluZ0VkaXRpbmdCb3Vu
ZGFyaWVzKFJlbmRlckJsb2NrKiBwYXJlbnQsIFJlbmRlckJveCogY2hpbGQsIGNvbnN0IExheW91
dFBvaW50JiBwb2ludEluUGFyZW50Q29vcmRpbmF0ZXMpCiB7CiAgICAgTGF5b3V0UG9pbnQgY2hp
bGRMb2NhdGlvbiA9IGNoaWxkLT5sb2NhdGlvbigpOwotICAgIGlmIChjaGlsZC0+aXNJbkZsb3dQ
b3NpdGlvbmVkKCkpCi0gICAgICAgIGNoaWxkTG9jYXRpb24gKz0gY2hpbGQtPm9mZnNldEZvcklu
Rmxvd1Bvc2l0aW9uKCk7CisgICAgaWYgKGNoaWxkLT5oYXNQYWludE9mZnNldCgpKQorICAgICAg
ICBjaGlsZExvY2F0aW9uICs9IGNoaWxkLT5wYWludE9mZnNldCgpOwogCiAgICAgLy8gRklYTUU6
IFRoaXMgaXMgd3JvbmcgaWYgdGhlIGNoaWxkJ3Mgd3JpdGluZy1tb2RlIGlzIGRpZmZlcmVudCBm
cm9tIHRoZSBwYXJlbnQncy4KICAgICBMYXlvdXRQb2ludCBwb2ludEluQ2hpbGRDb29yZGluYXRl
cyh0b0xheW91dFBvaW50KHBvaW50SW5QYXJlbnRDb29yZGluYXRlcyAtIGNoaWxkTG9jYXRpb24p
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggNGY4MWVhMDM3NzYz
MzlkMjM5MDU2ZDJlN2E2ODAxYTBjYmQ0YjMxNy4uOTI4NmZhNDhlZDY4YzQ2MWJiN2NkOGMzMTc3
ZGJlZmYyNzc5YzFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAg
LTY4OSwxNCArNjg5LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIH07CiAKLSAgICAvLyBXaGVu
IGEgZmxvYXQgaGFzIHNoYXBlIG91dHNpZGUsIGl0IG5lZWRzIHRvIGJlIGhhbmRsZWQgZGlmZmVy
ZW50bHkgYXQKLSAgICAvLyBwYWludCB0aW1lIGFuZCBhdCBsYXlvdXQgdGltZSwgc2luY2UgdGhl
IGNvb3JkaW5hdGVzIG9mIHRoZSBzaGFwZQotICAgIC8vIChhZmZlY3RpbmcgbGF5b3V0KSBhbmQg
dGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBmbG9hdCBpdHNlbGYgKGFmZmVjdGluZwotICAgIC8vIHdo
ZXJlIHRoZSBjb250ZW50IG9mIHRoZSBmbG9hdCBpcykgY2FuIGJlIGluIGRpZmZlcmVudCBwbGFj
ZXMuIFRoaXMgZW51bQotICAgIC8vIGlzIHVzZWQgdG8gY2hhbmdlIGJlaGF2aW9yIGJhc2VkIG9u
IHRoYXQgc3RhdGUuCi0gICAgZW51bSBGbG9hdFJlbmRlcmluZ1N0YXRlIHsgRmxvYXRMYXlvdXQs
IEZsb2F0UGFpbnQgfTsKLQotICAgIExheW91dFBvaW50IGZsaXBGbG9hdEZvcldyaXRpbmdNb2Rl
Rm9yQ2hpbGQoY29uc3QgRmxvYXRpbmdPYmplY3QqLCBjb25zdCBMYXlvdXRQb2ludCYsIEZsb2F0
UmVuZGVyaW5nU3RhdGUgPSBGbG9hdExheW91dCkgY29uc3Q7CisgICAgTGF5b3V0UG9pbnQgZmxp
cEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVjdCosIGNvbnN0
IExheW91dFBvaW50JikgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3BGb3JGbG9h
dChjb25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBjaGlsZC0+eSgpIDogY2hpbGQtPngoKTsgfQogICAgIExheW91dFVu
aXQgbG9naWNhbEJvdHRvbUZvckZsb2F0KGNvbnN0IEZsb2F0aW5nT2JqZWN0KiBjaGlsZCkgY29u
c3QgeyByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGNoaWxkLT5tYXhZKCkgOiBj
aGlsZC0+bWF4WCgpOyB9CkBAIC03MzgsMTMgKzczMSwxMiBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgY2hpbGQtPnNldEhlaWdodChsb2dpY2FsV2lkdGgpOwogICAgIH0KIAotICAgIExheW91dFVu
aXQgeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oY29uc3QgRmxvYXRpbmdPYmplY3Qq
IGNoaWxkLCBGbG9hdFJlbmRlcmluZ1N0YXRlIHJlbmRlcmluZ1N0YXRlID0gRmxvYXRMYXlvdXQp
IGNvbnN0CisgICAgTGF5b3V0VW5pdCB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihj
b25zdCBGbG9hdGluZ09iamVjdCogY2hpbGQpIGNvbnN0CiAgICAgewogI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKICAgICAgICAgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyAqc2hhcGVPdXRz
aWRlID0gY2hpbGQtPnJlbmRlcmVyKCktPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKTsKLSAg
ICAgICAgaWYgKHJlbmRlcmluZ1N0YXRlID09IEZsb2F0UGFpbnQgJiYgc2hhcGVPdXRzaWRlKQot
ICAgICAgICAgICAgcmV0dXJuIGNoaWxkLT54KCkgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IHNoYXBlT3V0c2lkZS0+c2hhcGVMb2dpY2FsTGVmdCgpIDogc2hhcGVPdXRzaWRlLT5zaGFw
ZUxvZ2ljYWxUb3AoKSk7Ci0gICAgICAgIC8vIEZJWE1FOiBCdWcgMTA2OTI4IFRoaXMgbmVlZHMg
dG8gcHJvcGVybHkgaGFuZGxlIHRoZSBtYXJnaW4gZm9yIGZsb2F0cyB3aXRoIHNoYXBlLW91dHNp
ZGUgZm9yIG5vbi1wYWludCB0aW1lLgorICAgICAgICBpZiAoc2hhcGVPdXRzaWRlKQorICAgICAg
ICAgICAgcmV0dXJuIGNoaWxkLT54KCk7CiAjZW5kaWYKIAogICAgICAgICBpZiAoaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSkKQEAgLTc1MywxMyArNzQ1LDEyIEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICByZXR1cm4gY2hpbGQtPngoKSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkLT5yZW5k
ZXJlcigpKTsKICAgICB9CiAgICAgICAgIAotICAgIExheW91dFVuaXQgeVBvc2l0aW9uRm9yRmxv
YXRJbmNsdWRpbmdNYXJnaW4oY29uc3QgRmxvYXRpbmdPYmplY3QqIGNoaWxkLCBGbG9hdFJlbmRl
cmluZ1N0YXRlIHJlbmRlcmluZ1N0YXRlID0gRmxvYXRMYXlvdXQpIGNvbnN0CisgICAgTGF5b3V0
VW5pdCB5UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihjb25zdCBGbG9hdGluZ09iamVj
dCogY2hpbGQpIGNvbnN0CiAgICAgewogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAg
ICAgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyAqc2hhcGVPdXRzaWRlID0gY2hpbGQtPnJlbmRl
cmVyKCktPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKTsKLSAgICAgICAgaWYgKHJlbmRlcmlu
Z1N0YXRlID09IEZsb2F0UGFpbnQgJiYgc2hhcGVPdXRzaWRlKQotICAgICAgICAgICAgcmV0dXJu
IGNoaWxkLT55KCkgLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHNoYXBlT3V0c2lkZS0+
c2hhcGVMb2dpY2FsVG9wKCkgOiBzaGFwZU91dHNpZGUtPnNoYXBlTG9naWNhbExlZnQoKSk7Ci0g
ICAgICAgIC8vIEZJWE1FOiBCdWcgMTA2OTI4IFRoaXMgbmVlZHMgdG8gcHJvcGVybHkgaGFuZGxl
IHRoZSBtYXJnaW4gZm9yIGZsb2F0cyB3aXRoIHNoYXBlLW91dHNpZGUuCisgICAgICAgIGlmIChz
aGFwZU91dHNpZGUpCisgICAgICAgICAgICByZXR1cm4gY2hpbGQtPnkoKTsKICNlbmRpZgogCiAg
ICAgICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAppbmRleCBiYmZiOTA2MjM3YTc0NTZhNjc0NjYyYWY3NDVhOTE3OWY0
MmM5ZjRlLi5iNTE3N2RiYjY1ZWEzMWUyMjRhNzYwZTAxNDdkOWIxZTg4OTgyN2U1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTYwNSw4ICsxNjA1LDggQEAgdm9p
ZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW4KICAgICAgICAgaWYgKHYtPmxheW91dFN0YXRlRW5hYmxlZCgp
ICYmICFyZXBhaW50Q29udGFpbmVyKSB7CiAgICAgICAgICAgICBMYXlvdXRTdGF0ZSogbGF5b3V0
U3RhdGUgPSB2LT5sYXlvdXRTdGF0ZSgpOwogICAgICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQg
PSBsYXlvdXRTdGF0ZS0+bV9wYWludE9mZnNldCArIGxvY2F0aW9uT2Zmc2V0KCk7Ci0gICAgICAg
ICAgICBpZiAoc3R5bGUoKS0+aGFzSW5GbG93UG9zaXRpb24oKSAmJiBsYXllcigpKQotICAgICAg
ICAgICAgICAgIG9mZnNldCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOwor
ICAgICAgICAgICAgaWYgKHN0eWxlKCktPmhhc1BhaW50T2Zmc2V0KCkgJiYgbGF5ZXIoKSkKKyAg
ICAgICAgICAgICAgICBvZmZzZXQgKz0gbGF5ZXIoKS0+cGFpbnRPZmZzZXQoKTsKICAgICAgICAg
ICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUob2Zmc2V0KTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpAQCAtMTcxOCw4ICsxNzE4LDggQEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3g6Om9mZnNl
dEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBMYXlvdXRQb2ludCYgcG8KICAg
ICBBU1NFUlQobyA9PSBjb250YWluZXIoKSk7CiAKICAgICBMYXlvdXRTaXplIG9mZnNldDsgICAg
Ci0gICAgaWYgKGlzSW5GbG93UG9zaXRpb25lZCgpKQotICAgICAgICBvZmZzZXQgKz0gb2Zmc2V0
Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICBpZiAoaGFzUGFpbnRPZmZzZXQoKSkKKyAgICAgICAg
b2Zmc2V0ICs9IHBhaW50T2Zmc2V0KCk7CiAKICAgICBpZiAoIWlzSW5saW5lKCkgfHwgaXNSZXBs
YWNlZCgpKSB7CiAgICAgICAgIGlmICghc3R5bGUoKS0+aGFzT3V0T2ZGbG93UG9zaXRpb24oKSAm
JiBvLT5oYXNDb2x1bW5zKCkpIHsKQEAgLTE4NTYsOCArMTg1Niw4IEBAIHZvaWQgUmVuZGVyQm94
Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhCiAgICAgICAgICAgICAgICAgcmVjdCA9IGxheWVyKCktPnRyYW5zZm9ybSgpLT5t
YXBSZWN0KHBpeGVsU25hcHBlZEludFJlY3QocmVjdCkpOwogCiAgICAgICAgICAgICAvLyBXZSBj
YW4ndCB0cnVzdCB0aGUgYml0cyBvbiBSZW5kZXJPYmplY3QsIGJlY2F1c2UgdGhpcyBtaWdodCBi
ZSBjYWxsZWQgd2hpbGUgcmUtcmVzb2x2aW5nIHN0eWxlLgotICAgICAgICAgICAgaWYgKHN0eWxl
VG9Vc2UtPmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgICAgICBy
ZWN0Lm1vdmUobGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKSk7CisgICAgICAgICAg
ICBpZiAoc3R5bGVUb1VzZS0+aGFzUGFpbnRPZmZzZXQoKSAmJiBsYXllcigpKQorICAgICAgICAg
ICAgICAgIHJlY3QubW92ZShsYXllcigpLT5wYWludE9mZnNldCgpKTsKIAogICAgICAgICAgICAg
cmVjdC5tb3ZlQnkobG9jYXRpb24oKSk7CiAgICAgICAgICAgICByZWN0Lm1vdmUobGF5b3V0U3Rh
dGUtPm1fcGFpbnRPZmZzZXQpOwpAQCAtMTkwMSwxMiArMTkwMSwxMiBAQCB2b2lkIFJlbmRlckJv
eDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YQogCiAgICAgaWYgKHBvc2l0aW9uID09IEFic29sdXRlUG9zaXRpb24gJiYgby0+
aXNJbkZsb3dQb3NpdGlvbmVkKCkgJiYgby0+aXNSZW5kZXJJbmxpbmUoKSkKICAgICAgICAgdG9w
TGVmdCArPSB0b1JlbmRlcklubGluZShvKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb25lZElubGlu
ZSh0aGlzKTsKLSAgICBlbHNlIGlmICgocG9zaXRpb24gPT0gUmVsYXRpdmVQb3NpdGlvbiB8fCBw
b3NpdGlvbiA9PSBTdGlja3lQb3NpdGlvbikgJiYgbGF5ZXIoKSkgeworICAgIGVsc2UgaWYgKHN0
eWxlVG9Vc2UtPmhhc1BhaW50T2Zmc2V0KCkgJiYgbGF5ZXIoKSkgewogICAgICAgICAvLyBBcHBs
eSB0aGUgcmVsYXRpdmUgcG9zaXRpb24gb2Zmc2V0IHdoZW4gaW52YWxpZGF0aW5nIGEgcmVjdGFu
Z2xlLiAgVGhlIGxheWVyCiAgICAgICAgIC8vIGlzIHRyYW5zbGF0ZWQsIGJ1dCB0aGUgcmVuZGVy
IGJveCBpc24ndCwgc28gd2UgbmVlZCB0byBkbyB0aGlzIHRvIGdldCB0aGUKICAgICAgICAgLy8g
cmlnaHQgZGlydHkgcmVjdC4gIFNpbmNlIHRoaXMgaXMgY2FsbGVkIGZyb20gUmVuZGVyT2JqZWN0
OjpzZXRTdHlsZSwgdGhlIHJlbGF0aXZlIHBvc2l0aW9uCiAgICAgICAgIC8vIGZsYWcgb24gdGhl
IFJlbmRlck9iamVjdCBoYXMgYmVlbiBjbGVhcmVkLCBzbyB1c2UgdGhlIG9uZSBvbiB0aGUgc3R5
bGUoKS4KLSAgICAgICAgdG9wTGVmdCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlv
bigpOworICAgICAgICB0b3BMZWZ0ICs9IGxheWVyKCktPnBhaW50T2Zmc2V0KCk7CiAgICAgfQog
ICAgIAogICAgIGlmIChwb3NpdGlvbiAhPSBBYnNvbHV0ZVBvc2l0aW9uICYmIHBvc2l0aW9uICE9
IEZpeGVkUG9zaXRpb24gJiYgby0+aGFzQ29sdW1ucygpICYmIG8tPmlzQmxvY2tGbG93KCkpIHsK
QEAgLTQyNjMsNyArNDI2Myw3IEBAIExheW91dFJlY3QgUmVuZGVyQm94OjpsYXlvdXRPdmVyZmxv
d1JlY3RGb3JQcm9wYWdhdGlvbihSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpCiAgICAgICAgIHJl
Y3QudW5pdGUobGF5b3V0T3ZlcmZsb3dSZWN0KCkpOwogCiAgICAgYm9vbCBoYXNUcmFuc2Zvcm0g
PSBoYXNMYXllcigpICYmIGxheWVyKCktPnRyYW5zZm9ybSgpOwotICAgIGlmIChpc0luRmxvd1Bv
c2l0aW9uZWQoKSB8fCBoYXNUcmFuc2Zvcm0pIHsKKyAgICBpZiAoaGFzUGFpbnRPZmZzZXQoKSB8
fCBoYXNUcmFuc2Zvcm0pIHsKICAgICAgICAgLy8gSWYgd2UgYXJlIHJlbGF0aXZlbHkgcG9zaXRp
b25lZCBvciBpZiB3ZSBoYXZlIGEgdHJhbnNmb3JtLCB0aGVuIHdlIGhhdmUgdG8gY29udmVydAog
ICAgICAgICAvLyB0aGlzIHJlY3RhbmdsZSBpbnRvIHBoeXNpY2FsIGNvb3JkaW5hdGVzLCBhcHBs
eSByZWxhdGl2ZSBwb3NpdGlvbmluZyBhbmQgdHJhbnNmb3JtcwogICAgICAgICAvLyB0byBpdCwg
YW5kIHRoZW4gY29udmVydCBpdCBiYWNrLgpAQCAtNDI3Miw4ICs0MjcyLDggQEAgTGF5b3V0UmVj
dCBSZW5kZXJCb3g6OmxheW91dE92ZXJmbG93UmVjdEZvclByb3BhZ2F0aW9uKFJlbmRlclN0eWxl
KiBwYXJlbnRTdHlsZSkKICAgICAgICAgaWYgKGhhc1RyYW5zZm9ybSkKICAgICAgICAgICAgIHJl
Y3QgPSBsYXllcigpLT5jdXJyZW50VHJhbnNmb3JtKCkubWFwUmVjdChyZWN0KTsKIAotICAgICAg
ICBpZiAoaXNJbkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICByZWN0Lm1vdmUob2Zmc2V0
Rm9ySW5GbG93UG9zaXRpb24oKSk7CisgICAgICAgIGlmIChoYXNQYWludE9mZnNldCgpKQorICAg
ICAgICAgICAgcmVjdC5tb3ZlKHBhaW50T2Zmc2V0KCkpOwogICAgICAgICAKICAgICAgICAgLy8g
Tm93IHdlIG5lZWQgdG8gZmxpcCBiYWNrLgogICAgICAgICBmbGlwRm9yV3JpdGluZ01vZGUocmVj
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggNjA4ZmM3NThkODExZWMw
MjY0NWQwYTZhNDI0YTU1MjRhNWI1NDVlNi4uMGUyNTk1MzhmNzE3NGI1NDdkMTRlZDRhZTZlNjU3
NTk3OGI1ZjMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNDksNyAr
NDksNyBAQCBwdWJsaWM6CiAKICAgICAvLyBoYXNBdXRvWkluZGV4IG9ubHkgcmV0dXJucyB0cnVl
IGlmIHRoZSBlbGVtZW50IGlzIHBvc2l0aW9uZWQgb3IgYSBmbGV4LWl0ZW0gc2luY2UKICAgICAv
LyBwb3NpdGlvbjpzdGF0aWMgZWxlbWVudHMgdGhhdCBhcmUgbm90IGZsZXgtaXRlbXMgZ2V0IHRo
ZWlyIHotaW5kZXggY29lcmNlZCB0byBhdXRvLgotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xh
eWVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gaXNSb290KCkgfHwgaXNQb3NpdGlvbmVkKCkg
fHwgY3JlYXRlc0dyb3VwKCkgfHwgaGFzQ2xpcFBhdGgoKSB8fCBoYXNPdmVyZmxvd0NsaXAoKSB8
fCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNIaWRkZW5CYWNrZmFjZSgpIHx8IGhhc1JlZmxlY3Rpb24o
KSB8fCBzdHlsZSgpLT5zcGVjaWZpZXNDb2x1bW5zKCkgfHwgIXN0eWxlKCktPmhhc0F1dG9aSW5k
ZXgoKTsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gaXNSb290KCkgfHwgaXNQb3NpdGlvbmVkKCkgfHwgY3JlYXRlc0dyb3VwKCkgfHwg
aGFzQ2xpcFBhdGgoKSB8fCBoYXNPdmVyZmxvd0NsaXAoKSB8fCBoYXNUcmFuc2Zvcm0oKSB8fCBo
YXNIaWRkZW5CYWNrZmFjZSgpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBzdHlsZSgpLT5zcGVjaWZp
ZXNDb2x1bW5zKCkgfHwgIXN0eWxlKCktPmhhc0F1dG9aSW5kZXgoKSB8fCAoc3R5bGUoKS0+c2hh
cGVPdXRzaWRlKCkgJiYgaXNGbG9hdGluZygpKTsgfQogCiAgICAgLy8gVXNlIHRoaXMgd2l0aCBj
YXV0aW9uISBObyB0eXBlIGNoZWNraW5nIGlzIGRvbmUhCiAgICAgUmVuZGVyQm94KiBmaXJzdENo
aWxkQm94KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmNwcAppbmRleCA4ODU4ZjBlMmE3ZGVhM2M0MTZhNWVjMDM4NDMwNzZjN2Jl
OThmOTJkLi4wYjY5MjM3ZDEzMTdhZTM3ZjU4MTgzYmU3NzI4ZjE1MWM3MGJhZDcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAg
LTUzNCw2ICs1MzQsMTkgQEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6b2Zmc2V0
Rm9ySW5GbG93UG9zaXRpb24oKSBjb25zdAogICAgIHJldHVybiBMYXlvdXRTaXplKCk7CiB9CiAK
K0xheW91dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50T2Zmc2V0KCkgY29uc3QKK3sK
KyAgICBMYXlvdXRTaXplIG9mZnNldCA9IG9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CisKKyNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgaWYgKGlzQm94KCkgJiYgaXNGbG9hdGluZygp
KQorICAgICAgICBpZiAoRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyogc2hhcGVPdXRzaWRlID0g
dG9SZW5kZXJCb3godGhpcyktPmV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKSkKKyAgICAgICAg
ICAgIG9mZnNldCAtPSBzaGFwZU91dHNpZGUtPnNoYXBlTG9naWNhbE9mZnNldCgpOworI2VuZGlm
CisKKyAgICByZXR1cm4gb2Zmc2V0OworfQorCiBMYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpvZmZzZXRMZWZ0KCkgY29uc3QKIHsKICAgICAvLyBOb3RlIHRoYXQgUmVuZGVySW5saW5l
IGFuZCBSZW5kZXJCb3ggb3ZlcnJpZGUgdGhpcyB0byBwYXNzIGEgZGlmZmVyZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDY1ZmUw
NmZiM2UxNjJlMjUzNDg1MDAxODM4MWFhN2IxZGUwNzJhYTEuLmEzMmVkMWUzZDQ1MTE0MjdjMjhj
M2JhM2NhOTJiMjFjOGJmYTI3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICBMYXlv
dXRTaXplIHN0aWNreVBvc2l0aW9uTG9naWNhbE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIHN0eWxl
KCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBzdGlja3lQb3NpdGlvbk9mZnNldCgpIDog
c3RpY2t5UG9zaXRpb25PZmZzZXQoKS50cmFuc3Bvc2VkU2l6ZSgpOyB9CiAKICAgICBMYXlvdXRT
aXplIG9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCkgY29uc3Q7CisgICAgTGF5b3V0U2l6ZSBwYWlu
dE9mZnNldCgpIGNvbnN0OwogCiAgICAgLy8gSUUgZXh0ZW5zaW9ucy4gVXNlZCB0byBjYWxjdWxh
dGUgb2Zmc2V0V2lkdGgvSGVpZ2h0LiAgT3ZlcnJpZGRlbiBieSBpbmxpbmVzIChSZW5kZXJGbG93
KQogICAgIC8vIHRvIHJldHVybiB0aGUgcmVtYWluaW5nIHdpZHRoIG9uIGEgZ2l2ZW4gbGluZSAo
YW5kIHRoZSBoZWlnaHQgb2YgYSBzaW5nbGUgbGluZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IDk1OGNhZDJkZWU2ZDFhYzNlMDM1NDI3NjY0ODIxMzI1
ODc2M2IwZmQuLmViMTMwYzg1OTYwN2VkODkxNjZjMjBhZDc5MmJjNmY4MDM1MTU1NjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC0xMDEyLDcgKzEwMTIs
NyBAQCBMYXlvdXRSZWN0IFJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFp
bnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iagogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgaWYgKGlubGluZUZsb3ctPnN0eWxlKCktPmhhc0luRmxvd1Bvc2l0aW9uKCkg
JiYgaW5saW5lRmxvdy0+aGFzTGF5ZXIoKSkKLSAgICAgICAgICAgIHJlcGFpbnRSZWN0Lm1vdmUo
dG9SZW5kZXJJbmxpbmUoaW5saW5lRmxvdyktPmxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0
aW9uKCkpOworICAgICAgICAgICAgcmVwYWludFJlY3QubW92ZSh0b1JlbmRlcklubGluZShpbmxp
bmVGbG93KS0+bGF5ZXIoKS0+cGFpbnRPZmZzZXQoKSk7CiAgICAgfQogCiAgICAgTGF5b3V0VW5p
dCBvdXRsaW5lU2l6ZSA9IHN0eWxlKCktPm91dGxpbmVTaXplKCk7CkBAIC0xMDU5LDcgKzEwNTks
NyBAQCB2b2lkIFJlbmRlcklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDbwogICAgICAgICBpZiAodi0+bGF5b3V0U3RhdGVF
bmFibGVkKCkgJiYgIXJlcGFpbnRDb250YWluZXIpIHsKICAgICAgICAgICAgIExheW91dFN0YXRl
KiBsYXlvdXRTdGF0ZSA9IHYtPmxheW91dFN0YXRlKCk7CiAgICAgICAgICAgICBpZiAoc3R5bGUo
KS0+aGFzSW5GbG93UG9zaXRpb24oKSAmJiBsYXllcigpKQotICAgICAgICAgICAgICAgIHJlY3Qu
bW92ZShsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAg
ICByZWN0Lm1vdmUobGF5ZXIoKS0+cGFpbnRPZmZzZXQoKSk7CiAgICAgICAgICAgICByZWN0Lm1v
dmUobGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQpOwogICAgICAgICAgICAgaWYgKGxheW91dFN0
YXRlLT5tX2NsaXBwZWQpCiAgICAgICAgICAgICAgICAgcmVjdC5pbnRlcnNlY3QobGF5b3V0U3Rh
dGUtPm1fY2xpcFJlY3QpOwpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6
OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q28KICAgICAgICAgLy8gaXMgdHJhbnNsYXRlZCwgYnV0IHRoZSByZW5kZXIgYm94IGlzbid0
LCBzbyB3ZSBuZWVkIHRvIGRvIHRoaXMgdG8gZ2V0IHRoZQogICAgICAgICAvLyByaWdodCBkaXJ0
eSByZWN0LiBTaW5jZSB0aGlzIGlzIGNhbGxlZCBmcm9tIFJlbmRlck9iamVjdDo6c2V0U3R5bGUs
IHRoZSByZWxhdGl2ZSBvciBzdGlja3kgcG9zaXRpb24KICAgICAgICAgLy8gZmxhZyBvbiB0aGUg
UmVuZGVyT2JqZWN0IGhhcyBiZWVuIGNsZWFyZWQsIHNvIHVzZSB0aGUgb25lIG9uIHRoZSBzdHls
ZSgpLgotICAgICAgICB0b3BMZWZ0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9u
KCk7CisgICAgICAgIHRvcExlZnQgKz0gbGF5ZXIoKS0+cGFpbnRPZmZzZXQoKTsKICAgICB9CiAg
ICAgCiAgICAgLy8gRklYTUU6IFdlIGlnbm9yZSB0aGUgbGlnaHR3ZWlnaHQgY2xpcHBpbmcgcmVj
dCB0aGF0IGNvbnRyb2xzIHVzZSwgc2luY2UgaWYgfG98IGlzIGluIG1pZC1sYXlvdXQsCkBAIC0x
MTQ0LDcgKzExNDQsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udAogICAgICAgICAgICAgTGF5
b3V0U3RhdGUqIGxheW91dFN0YXRlID0gdi0+bGF5b3V0U3RhdGUoKTsKICAgICAgICAgICAgIExh
eW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQ7CiAgICAgICAgICAg
ICBpZiAoc3R5bGUoKS0+aGFzSW5GbG93UG9zaXRpb24oKSAmJiBsYXllcigpKQotICAgICAgICAg
ICAgICAgIG9mZnNldCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAg
ICAgICAgICAgICAgIG9mZnNldCArPSBsYXllcigpLT5wYWludE9mZnNldCgpOwogICAgICAgICAg
ICAgdHJhbnNmb3JtU3RhdGUubW92ZShvZmZzZXQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBlOGQw
M2VhMTFkMTQyNzI2MGE0MjI3MTAzZGIwN2IyYzdmODU2ZDA3Li45YTFkMzNhYThiYTkxNDUwYzcz
NTNiZjI3YzgyNWE2YzJjZWMwOTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKQEAgLTExODUsMTMgKzExODUsMTMgQEAgYm9vbCBSZW5kZXJMYXllcjo6dXBkYXRl
TGF5ZXJQb3NpdGlvbigpCiAgICAgfQogICAgIAogICAgIGJvb2wgcG9zaXRpb25Pck9mZnNldENo
YW5nZWQgPSBmYWxzZTsKLSAgICBpZiAocmVuZGVyZXIoKS0+aXNJbkZsb3dQb3NpdGlvbmVkKCkp
IHsKLSAgICAgICAgTGF5b3V0U2l6ZSBuZXdPZmZzZXQgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0
KHJlbmRlcmVyKCkpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOwotICAgICAgICBwb3NpdGlv
bk9yT2Zmc2V0Q2hhbmdlZCA9IG5ld09mZnNldCAhPSBtX29mZnNldEZvckluRmxvd1Bvc2l0aW9u
OwotICAgICAgICBtX29mZnNldEZvckluRmxvd1Bvc2l0aW9uID0gbmV3T2Zmc2V0OwotICAgICAg
ICBsb2NhbFBvaW50Lm1vdmUobV9vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbik7CisgICAgaWYgKHJl
bmRlcmVyKCktPmhhc1BhaW50T2Zmc2V0KCkpIHsKKyAgICAgICAgTGF5b3V0U2l6ZSBuZXdPZmZz
ZXQgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KHJlbmRlcmVyKCkpLT5wYWludE9mZnNldCgpOwor
ICAgICAgICBwb3NpdGlvbk9yT2Zmc2V0Q2hhbmdlZCA9IG5ld09mZnNldCAhPSBtX3BhaW50T2Zm
c2V0OworICAgICAgICBtX3BhaW50T2Zmc2V0ID0gbmV3T2Zmc2V0OworICAgICAgICBsb2NhbFBv
aW50Lm1vdmUobV9wYWludE9mZnNldCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9vZmZzZXRG
b3JJbkZsb3dQb3NpdGlvbiA9IExheW91dFNpemUoKTsKKyAgICAgICAgbV9wYWludE9mZnNldCA9
IExheW91dFNpemUoKTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogV2UnZCByZWFsbHkgbGlrZSB0
byBqdXN0IGdldCByaWQgb2YgdGhlIGNvbmNlcHQgb2YgYSBsYXllciByZWN0YW5nbGUgYW5kIHJl
bHkgb24gdGhlIHJlbmRlcmVycy4KQEAgLTQ1OTksNyArNDU5OSw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0JiBjbGlwUmVjdHND
b250ZXh0LCBDCiAgICAgICAgIGNsaXBSZWN0cy5zZXRQb3NDbGlwUmVjdChjbGlwUmVjdHMuZml4
ZWRDbGlwUmVjdCgpKTsKICAgICAgICAgY2xpcFJlY3RzLnNldE92ZXJmbG93Q2xpcFJlY3QoY2xp
cFJlY3RzLmZpeGVkQ2xpcFJlY3QoKSk7CiAgICAgICAgIGNsaXBSZWN0cy5zZXRGaXhlZCh0cnVl
KTsKLSAgICB9IGVsc2UgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPmhhc0luRmxvd1Bvc2l0aW9u
KCkpCisgICAgfSBlbHNlIGlmIChyZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNQYWludE9mZnNldCgp
KQogICAgICAgICBjbGlwUmVjdHMuc2V0UG9zQ2xpcFJlY3QoY2xpcFJlY3RzLm92ZXJmbG93Q2xp
cFJlY3QoKSk7CiAgICAgZWxzZSBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+cG9zaXRpb24oKSA9
PSBBYnNvbHV0ZVBvc2l0aW9uKQogICAgICAgICBjbGlwUmVjdHMuc2V0T3ZlcmZsb3dDbGlwUmVj
dChjbGlwUmVjdHMucG9zQ2xpcFJlY3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCmluZGV4IDBiNjc0NTMzZTZkNTJkMjY1YmMwNWI5YTM3Y2EzNzIyYjM2ZjI4ZGYuLjNm
NjAzNWQ0YWE5ZjZmOGNmNzhlYzI0NmI3ZjAyZGEyYjA1MTEwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC00MjUsNyArNDI1LDcgQEAgcHVibGljOgogICAgIHZv
aWQgdXBkYXRlQmxlbmRNb2RlKCk7CiAjZW5kaWYKIAotICAgIGNvbnN0IExheW91dFNpemUmIG9m
ZnNldEZvckluRmxvd1Bvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXRGb3JJbkZsb3dQ
b3NpdGlvbjsgfQorICAgIGNvbnN0IExheW91dFNpemUmIHBhaW50T2Zmc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9wYWludE9mZnNldDsgfQogCiAgICAgdm9pZCBjbGVhckNsaXBSZWN0c0luY2x1ZGlu
Z0Rlc2NlbmRhbnRzKENsaXBSZWN0c1R5cGUgdHlwZVRvQ2xlYXIgPSBBbGxDbGlwUmVjdFR5cGVz
KTsKICAgICB2b2lkIGNsZWFyQ2xpcFJlY3RzKENsaXBSZWN0c1R5cGUgdHlwZVRvQ2xlYXIgPSBB
bGxDbGlwUmVjdFR5cGVzKTsKQEAgLTExMjQsOCArMTEyNCw4IEBAIHByb3RlY3RlZDoKICAgICBM
YXlvdXRSZWN0IG1fcmVwYWludFJlY3Q7IC8vIENhY2hlZCByZXBhaW50IHJlY3RzLiBVc2VkIGJ5
IGxheW91dC4KICAgICBMYXlvdXRSZWN0IG1fb3V0bGluZUJveDsKIAotICAgIC8vIE91ciBjdXJy
ZW50IHJlbGF0aXZlIHBvc2l0aW9uIG9mZnNldC4KLSAgICBMYXlvdXRTaXplIG1fb2Zmc2V0Rm9y
SW5GbG93UG9zaXRpb247CisgICAgLy8gUGFpbnQgdGltZSBvZmZzZXQgb25seSwgaXQgaXMgdXNl
ZCBmb3IgcHJvcGVybHkgcGFpbnQgcmVsYXRpdmUgLyBzdGlja3kgcG9zaXRpb25lZCBlbGVtZW50
cyBhbmQgZXhjbHVzaW9uIGJveGVzIG9uIGZsb2F0cy4KKyAgICBMYXlvdXRTaXplIG1fcGFpbnRP
ZmZzZXQ7CiAKICAgICAvLyBPdXIgKHgseSkgY29vcmRpbmF0ZXMgYXJlIGluIG91ciBwYXJlbnQg
bGF5ZXIncyBjb29yZGluYXRlIHNwYWNlLgogICAgIExheW91dFBvaW50IG1fdG9wTGVmdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAyN2E3YTQ1ZGFmZmJmOWVj
Y2ZlODg2ZjczYzBjNzA5ZDQ2NzI4M2FiLi41MGZhYTZjZjM5MDQ2Yzc4OTlhYzUzMmZmODRiOWZj
MWJkMjZkN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC01
MjUsNiArNTI1LDE2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCk7IH0g
Ly8gYWJzb2x1dGUgb3IgZml4ZWQgcG9zaXRpb25pbmcKICAgICBib29sIGlzSW5GbG93UG9zaXRp
b25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVsUG9zaXRpb25lZCgpIHx8IG1f
Yml0ZmllbGRzLmlzU3RpY2t5UG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0aXZlIG9yIHN0aWNreSBw
b3NpdGlvbmluZworICAgIGJvb2wgaGFzUGFpbnRPZmZzZXQoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgYm9vbCBwb3NpdGlvbmVkID0gaXNJbkZsb3dQb3NpdGlvbmVkKCk7CisjaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQorICAgICAgICAvLyBTaGFwZSBvdXRzaWRlIG9uIGEgZmxvYXQgY2FuIHJl
cG9zaXRpb24gdGhlIGZsb2F0IGluIG11Y2ggdGhlCisgICAgICAgIC8vIHNhbWUgd2F5IGFzIHJl
bGF0aXZlIHBvc2l0aW9uaW5nLCBzbyB0cmVhdCBpdCBhcyBzdWNoLgorICAgICAgICBwb3NpdGlv
bmVkID0gcG9zaXRpb25lZCB8fCAobV9iaXRmaWVsZHMuZmxvYXRpbmcoKSAmJiBtX2JpdGZpZWxk
cy5pc0JveCgpICYmIHN0eWxlKCktPnNoYXBlT3V0c2lkZSgpKTsKKyNlbmRpZgorICAgICAgICBy
ZXR1cm4gcG9zaXRpb25lZDsKKyAgICB9CiAgICAgYm9vbCBpc1JlbFBvc2l0aW9uZWQoKSBjb25z
dCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc1JlbFBvc2l0aW9uZWQoKTsgfSAvLyByZWxhdGl2ZSBw
b3NpdGlvbmluZwogICAgIGJvb2wgaXNTdGlja3lQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4g
bV9iaXRmaWVsZHMuaXNTdGlja3lQb3NpdGlvbmVkKCk7IH0KICAgICBib29sIGlzUG9zaXRpb25l
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUG9zaXRpb25lZCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDAyY2YwYzk5NzE3
NzliMTk3ZjBiMGE4ODQ2ZmQ5ZTU3MTE4ZWMyMzIuLjhjMjUzMmZlM2RlYmY1YzFlMDA2NGE0ODIy
NGZjOTQyYTQ4MmUxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCkBAIC00NjAsNiArNDYwLDE0IEBAIHB1YmxpYzoKICAgICBFUG9zaXRpb24gcG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFUG9zaXRpb24+KG5vbmluaGVyaXRl
ZF9mbGFncy5fcG9zaXRpb24pOyB9CiAgICAgYm9vbCBoYXNPdXRPZkZsb3dQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIHBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbiB8fCBwb3NpdGlvbigp
ID09IEZpeGVkUG9zaXRpb247IH0KICAgICBib29sIGhhc0luRmxvd1Bvc2l0aW9uKCkgY29uc3Qg
eyByZXR1cm4gcG9zaXRpb24oKSA9PSBSZWxhdGl2ZVBvc2l0aW9uIHx8IHBvc2l0aW9uKCkgPT0g
U3RpY2t5UG9zaXRpb247IH0KKyAgICBib29sIGhhc1BhaW50T2Zmc2V0KCkgY29uc3QKKyAgICB7
CisgICAgICAgIGJvb2wgcGFpbnRPZmZzZXQgPSBoYXNJbkZsb3dQb3NpdGlvbigpOworI2lmIEVO
QUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAgICAgcGFpbnRPZmZzZXQgPSBwYWludE9mZnNldCB8
fCAoaXNGbG9hdGluZygpICYmIHNoYXBlT3V0c2lkZSgpKTsKKyNlbmRpZgorICAgICAgICByZXR1
cm4gcGFpbnRPZmZzZXQ7CisgICAgfQogICAgIGJvb2wgaGFzVmlld3BvcnRDb25zdHJhaW5lZFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gcG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uIHx8IHBv
c2l0aW9uKCkgPT0gU3RpY2t5UG9zaXRpb247IH0KICAgICBFRmxvYXQgZmxvYXRpbmcoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRmxvYXQ+KG5vbmluaGVyaXRlZF9mbGFncy5fZmxvYXRp
bmcpOyB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAxMmQ5MmVjNjg3YzdlMTZkNDdhODE4MDM2YzVhMGFhNGVjNzgwNzJj
Li5kMDRiM2M4MzU3MTVmMTQ3M2RiZjhjYzNhNmNiNzcxMTA5NWQwM2NlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTMtMDItMTEgIEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBhZG9iZS5jb20+
CisKKyAgICAgICAgW0NTUyBFeGNsdXNpb25zXSBIYW5kbGUgc2hhcGUtb3V0c2lkZSBjaGFuZ2lu
ZyBhIGZsb2F0J3Mgb3ZlcmhhbmcgYmVoYXZpb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjkyNworCisgICAgICAgIFJldmlld2VkIGJ5IEp1bGll
biBDaGFmZnJhaXguCisKKyAgICAgICAgVGhpcyBpcyBhbHNvIHRlc3RlZCBieSB0aGUgZXhpc3Rp
bmcgdGVzdHMgZm9yIHNoYXBlIG91dHNpZGUgb24gZmxvYXRzIHBvc2l0aW9uaW5nLgorCisgICAg
ICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBlLW91dHNpZGUt
ZmxvYXRzLW92ZXJoYW5nLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhj
bHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFu
Zy5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0xMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6
QHNpc2Euc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gZmFzdC9mb3Jtcy9udW1iZXIvbnVt
YmVyLWwxMG4taW5wdXQuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMt
b3ZlcmhhbmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYwMGQ5MGIwNmNkNDE5NmRjMjE5NjBkODIxNmNkNzYyNzYzNTUwZTgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtb3V0
c2lkZS1mbG9hdHMvc2hhcGUtb3V0c2lkZS1mbG9hdHMtb3ZlcmhhbmctZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDU0IEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgI3Rv
cCB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgd2lkdGg6IDIwMHB4Owor
ICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBjb2xvcjogeWVsbG93OworICAgICAgICBm
b250OiAxMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgIH0KKyAgICAgICNzaGFwZSB7Cisg
ICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICByaWdodDogMHB4OworICAgICAgICB0b3A6IDBweDsK
KyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIH0KKyAgICAgICNmbG9hdCB7
CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
ZmxvYXQ6IHJpZ2h0OworICAgICAgfQorICAgICAgI2JvdHRvbSB7CisgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IGdyZWVuOworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICB9CisgICAgPC9z
dHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8aDE+PGEgaHJlZj0iaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjkyNyI+QnVnIDEwNjkyNzwvYT46IFtDU1Mg
RXhjbHVzaW9uc10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBmbG9hdCdzIG92ZXJo
YW5nIGJlaGF2aW9yPC9oMT4KKyAgICA8aDI+WW91IHNob3VsZCBzZWUgYSB5ZWxsb3cgc3F1YXJl
IHRvIHRoZSBsZWZ0IG9mIGEgYmx1ZSBzcXVhcmUsIHdpdGggdGhlIGJsdWUgc3F1YXJlIGNvdmVy
aW5nIHRoZSB0ZXh0IGluIHRoZSB5ZWxsb3cgYXJlYS4gVGhlIGxvd2VyIGdyZWVuIHJlY3Rhbmds
ZSBzaG91bGQgaGF2ZSB0ZXh0IHdyYXBwaW5nIGFyb3VuZCBhIHNxdWFyZSBhcmVhIG9uIHRoZSBy
aWdodCBhcyBpZiB0aGVyZSBpcyBhIGZsb2F0IHRoZXJlLiBZb3Ugc2hvdWxkIG5vdCBzZWUgYW55
IHJlZC48L2gyPgorICAgIDxkaXYgaWQ9InRvcCI+CisgICAgICBYWFhYWFhYWFhYPHNwYW4gc3R5
bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+CisgICAgICBYWFhYWFhYWFhYPHNwYW4g
c3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+CisgICAgICBYWFhYWFhYWFhYPHNw
YW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+CisgICAgICBYWFhYWFhYWFhY
PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+CisgICAgICBYWFhYWFhY
WFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+CisgICAgICBYWFhY
WFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+CisgICAgICBY
WFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+CisgICAg
ICBYWFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+Cisg
ICAgICBYWFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+
CisgICAgICBYWFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3Nw
YW4+CisgICAgICA8ZGl2IGlkPSJzaGFwZSI+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJib3R0b20iPgorICAgICAgPGRpdiBpZD0iZmxvYXQiPgorICAgICA8L2Rpdj4K
KyAgICAgVGhlIGZsb2F0IGlzIGRlZmluZWQgaGVyZSwgYnV0IHRoZSBzaGFwZSBwdXNoZXMgaXQg
aW50byB0aGUgYWJvdmUgZGl2LiBOb3RlIHRoYXQgdGhlIGV4Y2x1c2lvbiBiZWhhdmlvciBzdGF5
cyB3aXRoIHRoZSBzaGFwZSBhbmQgbm90IHdpdGggdGhlIGZsb2F0LgorICAgIDwvZGl2PgorICA8
L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0cy1vdmVyaGFuZy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLW91dHNpZGUtZmxvYXRzL3NoYXBl
LW91dHNpZGUtZmxvYXRzLW92ZXJoYW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZjNDA0Y2JhZDNjY2Iy
YzZiMGI0NjExOWE3MTI0NzViM2RlODk0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1vdXRzaWRlLWZsb2F0cy9zaGFwZS1vdXRzaWRlLWZsb2F0
cy1vdmVyaGFuZy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorICA8aGVhZD4KKyAgICA8
c2NyaXB0PgorICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisgICAgPC9zY3Jp
cHQ+CisgICAgPHN0eWxlPgorICAgICAgI3RvcCB7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgY29sb3I6IHllbGxvdzsKKyAgICAgICAgZm9u
dDogMTBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICB9CisgICAgICAjZmxvYXQgeworICAg
ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICAgICAgZmxvYXQ6IHJpZ2h0OworICAgICAgICAtd2Via2l0LXNo
YXBlLW91dHNpZGU6IHJlY3RhbmdsZSgwcHgsIDEwMHB4LCAxMDBweCwgMTAwcHgpOworICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgfQorICAgICAgI2JvdHRvbSB7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAg
ICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8aDE+PGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjkyNyI+QnVnIDEwNjky
NzwvYT46IFtDU1MgRXhjbHVzaW9uc10gSGFuZGxlIHNoYXBlLW91dHNpZGUgY2hhbmdpbmcgYSBm
bG9hdCdzIG92ZXJoYW5nIGJlaGF2aW9yPC9oMT4KKyAgICA8aDI+WW91IHNob3VsZCBzZWUgYSB5
ZWxsb3cgc3F1YXJlIHRvIHRoZSBsZWZ0IG9mIGEgYmx1ZSBzcXVhcmUsIHdpdGggdGhlIGJsdWUg
c3F1YXJlIGNvdmVyaW5nIHRoZSB0ZXh0IGluIHRoZSB5ZWxsb3cgYXJlYS4gVGhlIGxvd2VyIGdy
ZWVuIHJlY3RhbmdsZSBzaG91bGQgaGF2ZSB0ZXh0IHdyYXBwaW5nIGFyb3VuZCBhIHNxdWFyZSBh
cmVhIG9uIHRoZSByaWdodCBhcyBpZiB0aGVyZSBpcyBhIGZsb2F0IHRoZXJlLiBZb3Ugc2hvdWxk
IG5vdCBzZWUgYW55IHJlZC48L2gyPgorICAgIDxkaXYgaWQ9InRvcCI+CisgICAgICBYWFhYWFhY
WFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+CisgICAgICBYWFhY
WFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+CisgICAgICBY
WFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+CisgICAg
ICBYWFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+Cisg
ICAgICBYWFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3NwYW4+
CisgICAgICBYWFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8L3Nw
YW4+CisgICAgICBYWFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhYWFg8
L3NwYW4+CisgICAgICBYWFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhYWFhY
WFg8L3NwYW4+CisgICAgICBYWFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhYWFhY
WFhYWFg8L3NwYW4+CisgICAgICBYWFhYWFhYWFhYPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPlhY
WFhYWFhYWFg8L3NwYW4+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iYm90dG9tIj4KKyAgICAg
IDxkaXYgaWQ9ImZsb2F0Ij4KKyAgICAgPC9kaXY+CisgICAgIFRoZSBmbG9hdCBpcyBkZWZpbmVk
IGhlcmUsIGJ1dCB0aGUgc2hhcGUgcHVzaGVzIGl0IGludG8gdGhlIGFib3ZlIGRpdi4gTm90ZSB0
aGF0IHRoZSBleGNsdXNpb24gYmVoYXZpb3Igc3RheXMgd2l0aCB0aGUgc2hhcGUgYW5kIG5vdCB3
aXRoIHRoZSBmbG9hdC4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>