<?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>232617</bug_id>
          
          <creation_ts>2021-11-02 04:21:20 -0700</creation_ts>
          <short_desc>[css-grid] Track sizing algorithm not repeated even if used flex fraction would change</short_desc>
          <delta_ts>2021-11-24 07:04:41 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.chromium.org/p/chromium/issues/detail?id=941987</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>zsun</reporter>
          <assigned_to>zsun</assigned_to>
          <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rego</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1811085</commentid>
    <comment_count>0</comment_count>
    <who name="">zsun</who>
    <bug_when>2021-11-02 04:21:20 -0700</bug_when>
    <thetext>This has caused the following WPT tests fail:

imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/flex-sizing-rows-indefinite-height.html
imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-template-flexible-rerun-track-sizing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811087</commentid>
    <comment_count>1</comment_count>
      <attachid>443080</attachid>
    <who name="">zsun</who>
    <bug_when>2021-11-02 05:06:49 -0700</bug_when>
    <thetext>Created attachment 443080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813058</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-09 03:22:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/85196142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813976</commentid>
    <comment_count>3</comment_count>
      <attachid>443080</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2021-11-11 03:46:58 -0800</bug_when>
    <thetext>Comment on attachment 443080
Patch

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

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1168
&gt; +    ASSERT(!m_maxTrackBreadthIsFlexible);

nit: Perhaps a better name would be m_hasAnyFlexibleMaxTrackBreadth

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1191
&gt; +        if (!m_maxTrackBreadthIsFlexible &amp;&amp; indefiniteHeight) {

Maybe this deserves a comment; the reason why we are considering flex maxTrackBreadth only in the case of indefiniteHeight is not obvious to me. 

Additionally, wouldn&apos;t be clearer to use move the indefiniteHeight condition to the logic that uses the flexMaxTrackBreadk flag ?

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1197
&gt;          if (!m_hasPercentSizedRowsIndefiniteHeight &amp;&amp; indefiniteHeight) {

If I&apos;ve understood it correctly what we are doing now for tracks with flexible values for their max-sizing functions, it&apos;s the same we need to do for the tracks with percentage values. Wouldn&apos;t make sense to do some refactoring (perhaps changing the name of the class attribute we use as flag for this scenario) and reuse all the logic behind it ? I mean, the purpose of all this is to repeat the track sizing algorithm in those situations, isn&apos;t ?

&gt; Source/WebCore/rendering/RenderGrid.cpp:164
&gt; +    if (m_hasAnyOrthogonalItem || m_trackSizingAlgorithm.hasAnyPercentSizedRowsIndefiniteHeight() || (m_trackSizingAlgorithm.hasFlexMaxTrackBreadth() &amp;&amp; !m_hasAnyBaselineAlignmentItem)) {

The issue regarding the baseline alignment participation deserves a comment (perhaps also a FIXME) here. It&apos;d be useful also to add links to the CSS WG resolutions regarding this. As reference, you can check a CL I was working on for solving this issue in blink. 

https://chromium-review.googlesource.com/c/chromium/src/+/1598815

Another interesting info about the baseline alignment participation is the FIXME comment we already have in GridTrackSizingAlgorithm::computeBaselineAlignmentContext. 


BTW, isn&apos;t this cyclic-dependency issue related to the participation of a grid item in Baseline Alignment also applies in the case of percentage sized tracks ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815904</commentid>
    <comment_count>4</comment_count>
      <attachid>444512</attachid>
    <who name="">zsun</who>
    <bug_when>2021-11-17 06:09:16 -0800</bug_when>
    <thetext>Created attachment 444512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815905</commentid>
    <comment_count>5</comment_count>
    <who name="">zsun</who>
    <bug_when>2021-11-17 06:10:22 -0800</bug_when>
    <thetext>(In reply to Javier Fernandez from comment #3)
&gt; Comment on attachment 443080 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=443080&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1168
&gt; &gt; +    ASSERT(!m_maxTrackBreadthIsFlexible);
&gt; 
&gt; nit: Perhaps a better name would be m_hasAnyFlexibleMaxTrackBreadth
&gt; 
&gt; &gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1191
&gt; &gt; +        if (!m_maxTrackBreadthIsFlexible &amp;&amp; indefiniteHeight) {
&gt; 
&gt; Maybe this deserves a comment; the reason why we are considering flex
&gt; maxTrackBreadth only in the case of indefiniteHeight is not obvious to me. 
&gt; 
&gt; Additionally, wouldn&apos;t be clearer to use move the indefiniteHeight condition
&gt; to the logic that uses the flexMaxTrackBreadk flag ?
&gt; 
&gt; &gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1197
&gt; &gt;          if (!m_hasPercentSizedRowsIndefiniteHeight &amp;&amp; indefiniteHeight) {
&gt; 
&gt; If I&apos;ve understood it correctly what we are doing now for tracks with
&gt; flexible values for their max-sizing functions, it&apos;s the same we need to do
&gt; for the tracks with percentage values. Wouldn&apos;t make sense to do some
&gt; refactoring (perhaps changing the name of the class attribute we use as flag
&gt; for this scenario) and reuse all the logic behind it ? I mean, the purpose
&gt; of all this is to repeat the track sizing algorithm in those situations,
&gt; isn&apos;t ?
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:164
&gt; &gt; +    if (m_hasAnyOrthogonalItem || m_trackSizingAlgorithm.hasAnyPercentSizedRowsIndefiniteHeight() || (m_trackSizingAlgorithm.hasFlexMaxTrackBreadth() &amp;&amp; !m_hasAnyBaselineAlignmentItem)) {
&gt; 
&gt; The issue regarding the baseline alignment participation deserves a comment
&gt; (perhaps also a FIXME) here. It&apos;d be useful also to add links to the CSS WG
&gt; resolutions regarding this. As reference, you can check a CL I was working
&gt; on for solving this issue in blink. 
&gt; 
&gt; https://chromium-review.googlesource.com/c/chromium/src/+/1598815
&gt; 
&gt; Another interesting info about the baseline alignment participation is the
&gt; FIXME comment we already have in
&gt; GridTrackSizingAlgorithm::computeBaselineAlignmentContext. 
&gt; 
&gt; 
&gt; BTW, isn&apos;t this cyclic-dependency issue related to the participation of a
&gt; grid item in Baseline Alignment also applies in the case of percentage sized
&gt; tracks ?

Thanks very much for the review comments! Patch has been updated, PTAL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816781</commentid>
    <comment_count>6</comment_count>
      <attachid>444512</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2021-11-19 01:29:10 -0800</bug_when>
    <thetext>Comment on attachment 444512
Patch

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

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:896
&gt; +        m_isCyclicDependency = true;

First of all, caches like this are dangerous. We already have a cache to determine whether an item participates in baseline alignment and it&apos;s casing us a lot of troubles. I&apos;d rather explore a different solution to fix this bug.

Additionally, I think the code is not correct anyway. The canParticipateInBaslineAlignment function doesn&apos;t have the purpose of detecting cycling dependencies, but just discarding them. The fact that an item (using baseline alignment, as it&apos;s assumed by the callers of this function), doesn&apos;t imply that there is a cyclic dependency. If you see the return instruction, we are evaluating whether the grid item has relative size as well.

If you want to continue with the  m_isCyclicDependency cache approach, you&apos;d need to apply some changes in this function so that it considers the grid item&apos;s width/height as well in order to determine whether there is a cycling dependency or not.

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1200
&gt; +            if (rawTrackSize.minTrackBreadth().isPercentage() || rawTrackSize.maxTrackBreadth().isPercentage() || (rawTrackSize.maxTrackBreadth().isFlex() &amp;&amp; !m_isCyclicDependency))

I don&apos;t understand why the baseline cyclic dependency issue only affects in the case if flex track&apos;s max-sizing function. Wouldn&apos;t we have the same problem when repeating the algorithm in case of percentage track&apos;s sizing function as well ?

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1201
&gt; +                m_hasPercentSizedRowsOrFlexMaxTrackBreadthIndefiniteHeight = true;

I&apos;d rather have independent flags for these 2 cases.

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1371
&gt; +    m_hasPercentSizedRowsOrFlexMaxTrackBreadthIndefiniteHeight = false;

As I said, I&apos;d rather have independent flags here.

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1442
&gt; +    m_hasPercentSizedRowsOrFlexMaxTrackBreadthIndefiniteHeight = false;

Ditto

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.h:145
&gt; +    bool hasAnyPercentSizedRowsOrFlexMaxTrackBreadthIndefiniteHeight() const { return m_hasPercentSizedRowsOrFlexMaxTrackBreadthIndefiniteHeight; }

Ditto

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.h:174
&gt; +    bool canParticipateInBaselineAlignment(const RenderBox&amp;, GridAxis);

Ditto

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.h:201
&gt; +    bool m_hasPercentSizedRowsOrFlexMaxTrackBreadthIndefiniteHeight { false };

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816832</commentid>
    <comment_count>7</comment_count>
      <attachid>444812</attachid>
    <who name="">zsun</who>
    <bug_when>2021-11-19 06:26:10 -0800</bug_when>
    <thetext>Created attachment 444812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817351</commentid>
    <comment_count>8</comment_count>
      <attachid>444812</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2021-11-22 14:51:32 -0800</bug_when>
    <thetext>Comment on attachment 444812
Patch

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

r=me 

I think the patch looks good and it&apos;s correct. Bear in mind my comments, but non of them are blockers for landing the patch.

&gt; Source/WebCore/rendering/RenderGrid.cpp:168
&gt; +

Nit: remove this empty line

&gt; Source/WebCore/rendering/RenderGrid.cpp:169
&gt; +    if (m_hasAnyOrthogonalItem || m_trackSizingAlgorithm.hasAnyPercentSizedRowsIndefiniteHeight() || (m_trackSizingAlgorithm.hasAnyFlexibleMaxTrackBreadth() &amp;&amp; !m_hasAnyBaselineAlignmentItem) || m_hasAspectRatioBlockSizeDependentItem) {

Why we are avoiding the new run of the track sizing algorithm if there is any grid item with baseline alignment ONLY in the case of using flex max-sizing functions ? Wouldn&apos;t be possible to affect the grid item&apos;s participation in baseline alignment due to the presence of percent-sized rows and indefinite height ? 

I know that we weren&apos;t considering that case in the current code, but I&apos;d like to understand better the effect of avoiding the algorithm repetition in that case as well (maybe we that would fix some additional test failures). We could at least add a FIXME comment and try to investigate it in a follow up patch.

&gt; Source/WebCore/rendering/RenderGrid.cpp:207
&gt; +        m_hasAnyBaselineAlignmentItem = false;

Perhaps we could just initialize the class field after completing the loop below, just checking out whether there is any value in the cacheBaselineAlignedItem. 

Idea: we could do the same for the m_hasAnyOrthogonalItem class field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817448</commentid>
    <comment_count>9</comment_count>
      <attachid>445025</attachid>
    <who name="">zsun</who>
    <bug_when>2021-11-23 06:02:24 -0800</bug_when>
    <thetext>Created attachment 445025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817449</commentid>
    <comment_count>10</comment_count>
    <who name="">zsun</who>
    <bug_when>2021-11-23 06:06:39 -0800</bug_when>
    <thetext>(In reply to Javier Fernandez from comment #8)
&gt; Comment on attachment 444812 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=444812&amp;action=review
&gt; 
&gt; r=me 
&gt; 
&gt; I think the patch looks good and it&apos;s correct. Bear in mind my comments, but
&gt; non of them are blockers for landing the patch.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:168
&gt; &gt; +
&gt; 
&gt; Nit: remove this empty line
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:169
&gt; &gt; +    if (m_hasAnyOrthogonalItem || m_trackSizingAlgorithm.hasAnyPercentSizedRowsIndefiniteHeight() || (m_trackSizingAlgorithm.hasAnyFlexibleMaxTrackBreadth() &amp;&amp; !m_hasAnyBaselineAlignmentItem) || m_hasAspectRatioBlockSizeDependentItem) {
&gt; 
&gt; Why we are avoiding the new run of the track sizing algorithm if there is
&gt; any grid item with baseline alignment ONLY in the case of using flex
&gt; max-sizing functions ? Wouldn&apos;t be possible to affect the grid item&apos;s
&gt; participation in baseline alignment due to the presence of percent-sized
&gt; rows and indefinite height ? 
&gt; 
&gt; I know that we weren&apos;t considering that case in the current code, but I&apos;d
&gt; like to understand better the effect of avoiding the algorithm repetition in
&gt; that case as well (maybe we that would fix some additional test failures).
&gt; We could at least add a FIXME comment and try to investigate it in a follow
&gt; up patch.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:207
&gt; &gt; +        m_hasAnyBaselineAlignmentItem = false;
&gt; 
&gt; Perhaps we could just initialize the class field after completing the loop
&gt; below, just checking out whether there is any value in the
&gt; cacheBaselineAlignedItem. 
&gt; 
&gt; Idea: we could do the same for the m_hasAnyOrthogonalItem class field.

Checking on cacheBaselineAlignedItem, I guess we need check if m_columnBaselineItemsMap and m_rowBaselineItemsMap are empty. m_columnBaselineItemsMap and m_rowBaselineItemsMap are private in GridTrackSizingAlgorithm unless we change them to public. Maybe leave them as they are?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817462</commentid>
    <comment_count>11</comment_count>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2021-11-23 07:08:17 -0800</bug_when>
    <thetext>(In reply to zsun from comment #10)
&gt; (In reply to Javier Fernandez from comment #8)
&gt; &gt; Comment on attachment 444812 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=444812&amp;action=review
&gt; &gt; 
&gt; &gt; r=me 
&gt; &gt; 
&gt; &gt; I think the patch looks good and it&apos;s correct. Bear in mind my comments, but
&gt; &gt; non of them are blockers for landing the patch.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:168
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; Nit: remove this empty line
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:169
&gt; &gt; &gt; +    if (m_hasAnyOrthogonalItem || m_trackSizingAlgorithm.hasAnyPercentSizedRowsIndefiniteHeight() || (m_trackSizingAlgorithm.hasAnyFlexibleMaxTrackBreadth() &amp;&amp; !m_hasAnyBaselineAlignmentItem) || m_hasAspectRatioBlockSizeDependentItem) {
&gt; &gt; 
&gt; &gt; Why we are avoiding the new run of the track sizing algorithm if there is
&gt; &gt; any grid item with baseline alignment ONLY in the case of using flex
&gt; &gt; max-sizing functions ? Wouldn&apos;t be possible to affect the grid item&apos;s
&gt; &gt; participation in baseline alignment due to the presence of percent-sized
&gt; &gt; rows and indefinite height ? 
&gt; &gt; 
&gt; &gt; I know that we weren&apos;t considering that case in the current code, but I&apos;d
&gt; &gt; like to understand better the effect of avoiding the algorithm repetition in
&gt; &gt; that case as well (maybe we that would fix some additional test failures).
&gt; &gt; We could at least add a FIXME comment and try to investigate it in a follow
&gt; &gt; up patch.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:207
&gt; &gt; &gt; +        m_hasAnyBaselineAlignmentItem = false;
&gt; &gt; 
&gt; &gt; Perhaps we could just initialize the class field after completing the loop
&gt; &gt; below, just checking out whether there is any value in the
&gt; &gt; cacheBaselineAlignedItem. 
&gt; &gt; 
&gt; &gt; Idea: we could do the same for the m_hasAnyOrthogonalItem class field.
&gt; 
&gt; Checking on cacheBaselineAlignedItem, I guess we need check if
&gt; m_columnBaselineItemsMap and m_rowBaselineItemsMap are empty.
&gt; m_columnBaselineItemsMap and m_rowBaselineItemsMap are private in
&gt; GridTrackSizingAlgorithm unless we change them to public. Maybe leave them
&gt; as they are?

We may add a function in the GridTrackSizingAlgorithm to know whether there is any item in the baseline maps, which we could use instead of the flag in the RenderGrid class. This could have advantages, like detecting when an item changes its participation (we don&apos;t rely on a possible outdated flag). 

But I agree that change is probably unrelated to the bug we are fixing now and more appropriated for a follow up patch. Perhaps we can add FIXME comment to remember later about this idea ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817466</commentid>
    <comment_count>12</comment_count>
      <attachid>445031</attachid>
    <who name="">zsun</who>
    <bug_when>2021-11-23 07:17:39 -0800</bug_when>
    <thetext>Created attachment 445031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817469</commentid>
    <comment_count>13</comment_count>
      <attachid>445033</attachid>
    <who name="">zsun</who>
    <bug_when>2021-11-23 07:39:21 -0800</bug_when>
    <thetext>Created attachment 445033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817599</commentid>
    <comment_count>14</comment_count>
    <who name="">zsun</who>
    <bug_when>2021-11-24 01:03:05 -0800</bug_when>
    <thetext>(In reply to Javier Fernandez from comment #11)
&gt; (In reply to zsun from comment #10)
&gt; &gt; (In reply to Javier Fernandez from comment #8)
&gt; &gt; &gt; Comment on attachment 444812 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=444812&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; r=me 
&gt; &gt; &gt; 
&gt; &gt; &gt; I think the patch looks good and it&apos;s correct. Bear in mind my comments, but
&gt; &gt; &gt; non of them are blockers for landing the patch.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:168
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; 
&gt; &gt; &gt; Nit: remove this empty line
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:169
&gt; &gt; &gt; &gt; +    if (m_hasAnyOrthogonalItem || m_trackSizingAlgorithm.hasAnyPercentSizedRowsIndefiniteHeight() || (m_trackSizingAlgorithm.hasAnyFlexibleMaxTrackBreadth() &amp;&amp; !m_hasAnyBaselineAlignmentItem) || m_hasAspectRatioBlockSizeDependentItem) {
&gt; &gt; &gt; 
&gt; &gt; &gt; Why we are avoiding the new run of the track sizing algorithm if there is
&gt; &gt; &gt; any grid item with baseline alignment ONLY in the case of using flex
&gt; &gt; &gt; max-sizing functions ? Wouldn&apos;t be possible to affect the grid item&apos;s
&gt; &gt; &gt; participation in baseline alignment due to the presence of percent-sized
&gt; &gt; &gt; rows and indefinite height ? 
&gt; &gt; &gt; 
&gt; &gt; &gt; I know that we weren&apos;t considering that case in the current code, but I&apos;d
&gt; &gt; &gt; like to understand better the effect of avoiding the algorithm repetition in
&gt; &gt; &gt; that case as well (maybe we that would fix some additional test failures).
&gt; &gt; &gt; We could at least add a FIXME comment and try to investigate it in a follow
&gt; &gt; &gt; up patch.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:207
&gt; &gt; &gt; &gt; +        m_hasAnyBaselineAlignmentItem = false;
&gt; &gt; &gt; 
&gt; &gt; &gt; Perhaps we could just initialize the class field after completing the loop
&gt; &gt; &gt; below, just checking out whether there is any value in the
&gt; &gt; &gt; cacheBaselineAlignedItem. 
&gt; &gt; &gt; 
&gt; &gt; &gt; Idea: we could do the same for the m_hasAnyOrthogonalItem class field.
&gt; &gt; 
&gt; &gt; Checking on cacheBaselineAlignedItem, I guess we need check if
&gt; &gt; m_columnBaselineItemsMap and m_rowBaselineItemsMap are empty.
&gt; &gt; m_columnBaselineItemsMap and m_rowBaselineItemsMap are private in
&gt; &gt; GridTrackSizingAlgorithm unless we change them to public. Maybe leave them
&gt; &gt; as they are?
&gt; 
&gt; We may add a function in the GridTrackSizingAlgorithm to know whether there
&gt; is any item in the baseline maps, which we could use instead of the flag in
&gt; the RenderGrid class. This could have advantages, like detecting when an
&gt; item changes its participation (we don&apos;t rely on a possible outdated flag). 
&gt; 
&gt; But I agree that change is probably unrelated to the bug we are fixing now
&gt; and more appropriated for a follow up patch. Perhaps we can add FIXME
&gt; comment to remember later about this idea ?

I have update the patch to address this. PTAL. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817609</commentid>
    <comment_count>15</comment_count>
      <attachid>445033</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2021-11-24 03:09:21 -0800</bug_when>
    <thetext>Comment on attachment 445033
Patch

It looks good to me, thanks !</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817640</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-24 07:04:39 -0800</bug_when>
    <thetext>Committed r286148 (244532@main): &lt;https://commits.webkit.org/244532@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445033.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443080</attachid>
            <date>2021-11-02 05:06:49 -0700</date>
            <delta_ts>2021-11-17 06:09:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232617-20211102120648.patch</filename>
            <type>text/plain</type>
            <size>10627</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjNTM4ODU1ZTZmNTRh
NTJkN2Q2MzI5NDBlMTk1NjUzMmVhMWExNS4uZDIyNDBhNDU4YTExZTg2Yjg4MDc0ZmEzYTczYTRk
ODRjYTYwZTBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTExLTAyICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBUcmFjayBzaXpp
bmcgYWxnb3JpdGhtIG5vdCByZXBlYXRlZCBldmVuIGlmIHVzZWQgZmxleCBmcmFjdGlvbiB3b3Vs
ZCBjaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjYxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFjY29yZGluZyB0byBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWdyaWQvI2FsZ28tZmxl
eC10cmFja3MsIHdoZW4gcm93IGhlaWdodCBpcworICAgICAgICBpbmRlZmluaXRlLCBmb3IgZWFj
aCBncmlkIGl0ZW0gdGhhdCBjcm9zc2VzIGEgZmxleGlibGUgdHJhY2ssIHdlIHJ1biB0aGUgdHJh
Y2sgc2l6aW5nCisgICAgICAgIGFsZ29yaXRobSB1bmRlciBhIG1heC1jb250ZW50IGNvbnN0cmFp
bnQgdG8gZmluZCB0aGUgZmxleCBmcmFjdGlvbi4gVGhlbiB3ZSB3b3JrIG91dAorICAgICAgICB0
aGUgZ3JpZCBjb250YWluZXIgaGVpZ2h0IGFzIGRlZmluaXRlLCB3aGljaCBtYXkgY2F1c2UgdGhl
IGZsZXggZnJhY3Rpb24gY2hhbmdlLiBBdCB0aGlzCisgICAgICAgIHBvaW50LCB3ZSBuZWVkIHRv
IHJlcGVhdCB0aGUgdHJhY2sgc2l6aW5nIGFsZ29yaXRobSBmb3Igcm93IGFuZCBsYXlvdXQgdGhl
IGdyaWQgZm9yIHJlYWwuCisgICAgICAgIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXNu
J3QgcmVwZWF0IHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtIGZvciByb3cuCisKKyAgICAgICAg
VGhlIGNvbXBsaWNhdGlvbiB3aXRoIGNhbGxpbmcgUmVuZGVyR3JpZDo6cmVwZWF0VHJhY2tzU2l6
aW5nSWZOZWVkZWQoKSBmb3IgZmxleCBtYXgtc2l6aW5nCisgICAgICAgIGlzIHRoYXQgaXQgbWln
aHQgY2hhbmdlIGEgZ3JpZCBpdGVtJ3Mgc3RhdHVzIG9mIHBhcnRpY2lwYXRpbmcgaW4gQmFzZWxp
bmUgQWxpZ25tZW50IGZvcgorICAgICAgICBhIGN5Y2xpYyBzaXppbmcgZGVwZW5kbmN5IGNhc2Us
IHdoaWNoIHNob3VsZCBiZSBkZWZpbml0aXZlbHkgZXhjbHVkZWQuIFNlZQorICAgICAgICBodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXQvOTZkNDBlNmQ0Yzdm
MDA5Y2RjOTMyMjRmMzM4YzA0MzIxYTMxZTk2MAorICAgICAgICBmb3IgbW9yZSBkZXRhaWxzLiBU
aGlzIGlzc3VlIHNob3VsZCBiZSBoYW5kbGVkIGluIGEgc2VwZXJhdGUgYnVnLgorICAgICAgICBU
aGlzIENMIG9ubHkgaGFuZGxlIHRlc3QgY2FzZXMgdGhhdCBkb24ndCBoYXZlIGJhc2VsaW5lIGFs
aWdubWVudCBzcGVjaWZpZWQuIAorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvR3JpZFRy
YWNrU2l6aW5nQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1Npemlu
Z0FsZ29yaXRobTo6aW5pdGlhbGl6ZVRyYWNrU2l6ZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jp
ZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpzZXR1cCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJh
Y2tTaXppbmdBbGdvcml0aG06OnJlc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVwZWF0VHJhY2tzU2l6aW5nSWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0QmxvY2spOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisKIDIwMjEtMTEtMDEgIERvbiBPbG1zdGVhZCAgPGRv
bi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ3VybF0gRml4IC1XcmVvcmRlci1jdG9y
IGluIEN1cmxSZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3Jp
ZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Hcmlk
VHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCmluZGV4IDM4ZTlmMTcxNTY3ODgwYWYzNjk0ZWQ5YzNi
NTkwZDczYjhkMDZhYWUuLjFhYWM5MWVhYTNkNmIwODYzYWIzZTIyZTY2MTY2NjVlMDhkYTEzNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdv
cml0aG0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdB
bGdvcml0aG0uY3BwCkBAIC0xMTY1LDYgKzExNjUsNyBAQCB2b2lkIEdyaWRUcmFja1NpemluZ0Fs
Z29yaXRobTo6aW5pdGlhbGl6ZVRyYWNrU2l6ZXMoKQogICAgIEFTU0VSVChtX2ZsZXhpYmxlU2l6
ZWRUcmFja3NJbmRleC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChtX2F1dG9TaXplZFRyYWNrc0Zv
clN0cmV0Y2hJbmRleC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9oYXNQZXJjZW50U2l6ZWRS
b3dzSW5kZWZpbml0ZUhlaWdodCk7CisgICAgQVNTRVJUKCFtX21heFRyYWNrQnJlYWR0aElzRmxl
eGlibGUpOwogCiAgICAgVmVjdG9yPEdyaWRUcmFjaz4mIGFsbFRyYWNrcyA9IHRyYWNrcyhtX2Rp
cmVjdGlvbik7CiAgICAgY29uc3QgYm9vbCBpbmRlZmluaXRlSGVpZ2h0ID0gbV9kaXJlY3Rpb24g
PT0gRm9yUm93cyAmJiAhbV9yZW5kZXJHcmlkLT5oYXNEZWZpbml0ZUxvZ2ljYWxIZWlnaHQoKTsK
QEAgLTExODYsNiArMTE4NywxMiBAQCB2b2lkIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6aW5p
dGlhbGl6ZVRyYWNrU2l6ZXMoKQogICAgICAgICAgICAgbV9mbGV4aWJsZVNpemVkVHJhY2tzSW5k
ZXguYXBwZW5kKGkpOwogICAgICAgICBpZiAodHJhY2tTaXplLmhhc0F1dG9NYXhUcmFja0JyZWFk
dGgoKSAmJiAhdHJhY2tTaXplLmlzRml0Q29udGVudCgpKQogICAgICAgICAgICAgbV9hdXRvU2l6
ZWRUcmFja3NGb3JTdHJldGNoSW5kZXguYXBwZW5kKGkpOworICAgICAgICAKKyAgICAgICAgaWYg
KCFtX21heFRyYWNrQnJlYWR0aElzRmxleGlibGUgJiYgaW5kZWZpbml0ZUhlaWdodCkgeworICAg
ICAgICAgICAgYXV0byYgcmF3VHJhY2tTaXplID0gcmF3R3JpZFRyYWNrU2l6ZShtX2RpcmVjdGlv
biwgaSk7CisgICAgICAgICAgICBpZiAocmF3VHJhY2tTaXplLm1heFRyYWNrQnJlYWR0aCgpLmlz
RmxleCgpKQorICAgICAgICAgICAgICAgIG1fbWF4VHJhY2tCcmVhZHRoSXNGbGV4aWJsZSA9IHRy
dWU7CisgICAgICAgIH0KIAogICAgICAgICBpZiAoIW1faGFzUGVyY2VudFNpemVkUm93c0luZGVm
aW5pdGVIZWlnaHQgJiYgaW5kZWZpbml0ZUhlaWdodCkgewogICAgICAgICAgICAgYXV0byYgcmF3
VHJhY2tTaXplID0gcmF3R3JpZFRyYWNrU2l6ZShtX2RpcmVjdGlvbiwgaSk7CkBAIC0xMzYxLDYg
KzEzNjgsNyBAQCB2b2lkIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6c2V0dXAoR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgdW5zaWduZQogCiAgICAgbV9uZWVkc1NldHVwID0g
ZmFsc2U7CiAgICAgbV9oYXNQZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhlaWdodCA9IGZhbHNl
OworICAgIG1fbWF4VHJhY2tCcmVhZHRoSXNGbGV4aWJsZSA9IGZhbHNlOwogCiAgICAgY29tcHV0
ZUJhc2VsaW5lQWxpZ25tZW50Q29udGV4dCgpOwogfQpAQCAtMTQzMiw2ICsxNDQwLDcgQEAgdm9p
ZCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnJlc2V0KCkKICAgICBzZXRBdmFpbGFibGVTcGFj
ZShGb3JSb3dzLCBzdGQ6Om51bGxvcHQpOwogICAgIHNldEF2YWlsYWJsZVNwYWNlKEZvckNvbHVt
bnMsIHN0ZDo6bnVsbG9wdCk7CiAgICAgbV9oYXNQZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhl
aWdodCA9IGZhbHNlOworICAgIG1fbWF4VHJhY2tCcmVhZHRoSXNGbGV4aWJsZSA9IGZhbHNlOwog
fQogCiAjaWYgQVNTRVJUX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaAppbmRleCA1MWQyN2Y5Y2Y4ZWI5ZDViMDdjOGQ3
ZjBmYmMxODk0NWE0NDgyNTUwLi41OWQ2Y2E2ZTk0ZDBjYzc1MTFiMWJjYjViYmNjZTgyOTAyYTgw
NzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1Npemlu
Z0FsZ29yaXRobS5oCkBAIC0xNDMsNiArMTQzLDcgQEAgcHVibGljOgogICAgIExheW91dFVuaXQg
Y29tcHV0ZVRyYWNrQmFzZWRTaXplKCkgY29uc3Q7CiAKICAgICBib29sIGhhc0FueVBlcmNlbnRT
aXplZFJvd3NJbmRlZmluaXRlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQZXJjZW50U2l6
ZWRSb3dzSW5kZWZpbml0ZUhlaWdodDsgfQorICAgIGJvb2wgaGFzRmxleE1heFRyYWNrQnJlYWR0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4VHJhY2tCcmVhZHRoSXNGbGV4aWJsZTsgfSAKIAogI2lm
IEFTU0VSVF9FTkFCTEVECiAgICAgYm9vbCB0cmFja3NBcmVXaWRlclRoYW5NaW5UcmFja0JyZWFk
dGgoKSBjb25zdDsKQEAgLTE5OSw2ICsyMDAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgd2FzU2V0
dXAoKSBjb25zdCB7IHJldHVybiAhIW1fc3RyYXRlZ3k7IH0KICAgICBib29sIG1fbmVlZHNTZXR1
cCB7IHRydWUgfTsKICAgICBib29sIG1faGFzUGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWln
aHQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9tYXhUcmFja0JyZWFkdGhJc0ZsZXhpYmxlIHsgZmFs
c2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IG1fYXZhaWxhYmxlU3BhY2VSb3dz
OwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbV9hdmFpbGFibGVTcGFjZUNvbHVtbnM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCAxZGQ4NTdmN2Jk
MjdjZmM2OTY1ZjA1ZDVhNWU0ZDBkYjg4ZmU1YmE5Li5jYTUyYTNmMjM3NWJiODNhNTJhYjkxNzdl
NTNiNWEzZjYyZDA1NTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
CkBAIC0xNjEsNyArMTYxLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpyZXBlYXRUcmFja3NTaXppbmdJ
Zk5lZWRlZChMYXlvdXRVbml0IGF2YWlsYWJsZVNwYWNlRm9yQ29sdW1ucywKICAgICAvLyBhIG5l
dyBjeWNsZSBvZiB0aGUgc2l6aW5nIGFsZ29yaXRobTsgdGhlcmUgbWF5IGJlIG1vcmUuIEluIGFk
ZGl0aW9uLCBub3QgYWxsIHRoZQogICAgIC8vIGNhc2VzIHdpdGggb3J0aG9nb25hbCBmbG93cyBy
ZXF1aXJlIHRoaXMgZXh0cmEgY3ljbGU7IHdlIG5lZWQgYSBtb3JlIHNwZWNpZmljCiAgICAgLy8g
Y29uZGl0aW9uIHRvIGRldGVjdCB3aGV0aGVyIGNoaWxkJ3MgbWluLWNvbnRlbnQgY29udHJpYnV0
aW9uIGhhcyBjaGFuZ2VkIG9yIG5vdC4KLSAgICBpZiAobV9oYXNBbnlPcnRob2dvbmFsSXRlbSB8
fCBtX3RyYWNrU2l6aW5nQWxnb3JpdGhtLmhhc0FueVBlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRl
SGVpZ2h0KCkpIHsKKyAgICBpZiAobV9oYXNBbnlPcnRob2dvbmFsSXRlbSB8fCBtX3RyYWNrU2l6
aW5nQWxnb3JpdGhtLmhhc0FueVBlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRlSGVpZ2h0KCkgfHwg
KG1fdHJhY2tTaXppbmdBbGdvcml0aG0uaGFzRmxleE1heFRyYWNrQnJlYWR0aCgpICYmICFtX2hh
c0FueUJhc2VsaW5lQWxpZ25tZW50SXRlbSkpIHsKICAgICAgICAgY29tcHV0ZVRyYWNrU2l6ZXNG
b3JEZWZpbml0ZVNpemUoRm9yQ29sdW1ucywgYXZhaWxhYmxlU3BhY2VGb3JDb2x1bW5zKTsKICAg
ICAgICAgY29tcHV0ZUNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbk9mZnNldChGb3JDb2x1
bW5zLCBtX3RyYWNrU2l6aW5nQWxnb3JpdGhtLmZyZWVTcGFjZShGb3JDb2x1bW5zKS52YWx1ZSgp
LCBub25Db2xsYXBzZWRUcmFja3MoRm9yQ29sdW1ucykpOwogICAgICAgICBjb21wdXRlVHJhY2tT
aXplc0ZvckRlZmluaXRlU2l6ZShGb3JSb3dzLCBhdmFpbGFibGVTcGFjZUZvclJvd3MpOwpAQCAt
MTk5LDYgKzE5OSw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91
dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgICAgICAvLyBGSVhNRTogV2UgbWlnaHQgbmVlZCB0
byBjYWNoZSB0aGUgaGFzRGVmaW5pdGVMb2dpY2FsSGVpZ2h0IGlmIHRoZSBjYWxsIG9mIFJlbmRl
ckJsb2NrOjpoYXNEZWZpbml0ZUxvZ2ljYWxIZWlnaHQoKSBjYXVzZXMgYSByZWxldmFudCBwZXJm
b3JtYW5jZSByZWdyZXNzaW9uLgogICAgICAgICBib29sIGhhc0RlZmluaXRlTG9naWNhbEhlaWdo
dCA9IFJlbmRlckJsb2NrOjpoYXNEZWZpbml0ZUxvZ2ljYWxIZWlnaHQoKSB8fCBoYXNPdmVycmlk
aW5nTG9naWNhbEhlaWdodCgpIHx8IGNvbXB1dGVDb250ZW50TG9naWNhbEhlaWdodChNYWluT3JQ
cmVmZXJyZWRTaXplLCBzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKSwgc3RkOjpudWxsb3B0KTsKICAg
ICAgICAgbV9oYXNBbnlPcnRob2dvbmFsSXRlbSA9IGZhbHNlOworICAgICAgICBtX2hhc0FueUJh
c2VsaW5lQWxpZ25tZW50SXRlbSA9IGZhbHNlOwogICAgICAgICBmb3IgKGF1dG8qIGNoaWxkID0g
Zmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkg
ewogICAgICAgICAgICAgaWYgKGNoaWxkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKQEAgLTIxNiwxMCArMjE3LDE0IEBAIHZvaWQgUmVuZGVyR3Jp
ZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgICAg
ICAgICAgLy8gY2FjaGUgaXMgbmVlZGVkIGZvciBwZXJmb3JtYW5jZSByZWxhdGVkIHJlYXNvbnMg
ZHVlIHRvIHRoZQogICAgICAgICAgICAgLy8gY29zdCBvZiBldmFsdWF0aW5nIHRoZSBpdGVtJ3Mg
cGFydGljaXBhdGlvbiBpbiBhIGJhc2VsaW5lCiAgICAgICAgICAgICAvLyBjb250ZXh0IGR1cmlu
ZyB0aGUgdHJhY2sgc2l6aW5nIGFsZ29yaXRobS4KLSAgICAgICAgICAgIGlmIChpc0Jhc2VsaW5l
QWxpZ25tZW50Rm9yQ2hpbGQoKmNoaWxkLCBHcmlkQ29sdW1uQXhpcykpCisgICAgICAgICAgICBp
ZiAoaXNCYXNlbGluZUFsaWdubWVudEZvckNoaWxkKCpjaGlsZCwgR3JpZENvbHVtbkF4aXMpKSB7
CisgICAgICAgICAgICAgICAgbV9oYXNBbnlCYXNlbGluZUFsaWdubWVudEl0ZW0gPSB0cnVlOwog
ICAgICAgICAgICAgICAgIG1fdHJhY2tTaXppbmdBbGdvcml0aG0uY2FjaGVCYXNlbGluZUFsaWdu
ZWRJdGVtKCpjaGlsZCwgR3JpZENvbHVtbkF4aXMpOwotICAgICAgICAgICAgaWYgKGlzQmFzZWxp
bmVBbGlnbm1lbnRGb3JDaGlsZCgqY2hpbGQsIEdyaWRSb3dBeGlzKSkKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGlmIChpc0Jhc2VsaW5lQWxpZ25tZW50Rm9yQ2hpbGQoKmNoaWxkLCBHcmlk
Um93QXhpcykpIHsKKyAgICAgICAgICAgICAgICBtX2hhc0FueUJhc2VsaW5lQWxpZ25tZW50SXRl
bSA9IHRydWU7CiAgICAgICAgICAgICAgICAgbV90cmFja1NpemluZ0FsZ29yaXRobS5jYWNoZUJh
c2VsaW5lQWxpZ25lZEl0ZW0oKmNoaWxkLCBHcmlkUm93QXhpcyk7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICAgICAgbV9iYXNlbGluZUl0ZW1zQ2FjaGVkID0gdHJ1ZTsKICAgICAgICAg
cmVzZXRMb2dpY2FsSGVpZ2h0QmVmb3JlTGF5b3V0SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDdiMDM5YTIyOWZlYzIxOWM5OTY3MWNjODYzZmM2ZGJl
ZDM4MzAzMDUuLjYxODBjMWM5ZWVmMGRkNjJiMzMyYTg0ZTY2ZjUzY2Y0YTkyMzc4ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtMjA1LDYgKzIwNSw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1faGFzQW55T3J0aG9nb25hbEl0ZW0ge2ZhbHNlfTsKICAgICBib29s
IG1fYmFzZWxpbmVJdGVtc0NhY2hlZCB7ZmFsc2V9OworICAgIGJvb2wgbV9oYXNBbnlCYXNlbGlu
ZUFsaWdubWVudEl0ZW0geyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGY2MmQ0ZWYyNDZiZDczOGE4MjVmZmEwZjdjZDZhNzkxYTJkOTQ2NDYuLjU1MGQwMDc3
NWFlYTI4ODExNzk4NDAwOGRkNWNhYzRhNWZlNjVmOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAyMS0xMS0wMiAgWmlyYW4gU3VuICA8enN1bkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3Mt
Z3JpZF0gVHJhY2sgc2l6aW5nIGFsZ29yaXRobSBub3QgcmVwZWF0ZWQgZXZlbiBpZiB1c2VkIGZs
ZXggZnJhY3Rpb24gd291bGQgY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzI2MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVbnNraXAgdHdvIHRlc3RzIHRoYXQgYXJlIHBhc3NpbmcuCisgCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0xMS0wMSAgTWljaGFlbCBTbWl0aCAg
PG1pa2VAdzMub3JnPgogCiAgICAgICAgIFtXZWJJbnNwZWN0b3JdW0NPUlNdIFNob3cgSFRUUCBz
dGF0dXMgY29kZSBpbiBDT1JTIG1lc3NhZ2VzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTkxZjQx
ZTg4MmQ1NmVjMTljNmU1ZjIyMmU5ZjdmNTNlNDZiYjgxZS4uMDhlNTA4Y2NlYTNmYjk3MzE0YzBl
OWE3YTdhZmEyMDJkNmZlZTRkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzY1LDkgKzEzNjUs
NyBAQCB3ZWJraXQub3JnL2IvMjMxMDIxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1ncmlkL2dyaWQtaXRlbXMvcGVyYwogd2Via2l0Lm9yZy9iLzIzMTAyMSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWl0ZW1zL3JlcGxhY2Vk
LWVsZW1lbnQtMDE1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1tb2RlbC9ncmlkLWFyZWFzLW92ZXJm
bG93aW5nLWdyaWQtY29udGFpbmVyLTAwOS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9sYXlvdXQtYWxnb3JpdGht
L2ZsZXgtc2l6aW5nLXJvd3MtaW5kZWZpbml0ZS1oZWlnaHQuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzIzMTAyMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZ3JpZC9sYXlvdXQtYWxnb3JpdGhtL2dyaWQtaW50cmluc2ljLXNpemUtZHluYW1p
Yy1ibG9jay1zaXplLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzEw
MjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbGF5b3V0LWFs
Z29yaXRobS9ncmlkLXRlbXBsYXRlLWZsZXhpYmxlLXJlcnVuLXRyYWNrLXNpemluZy5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtZ3JpZC9tYXNvbnJ5L3RlbnRhdGl2ZS9tYXNvbnJ5LWFsaWduLWNvbnRlbnQtMDAxLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1ncmlkL21hc29ucnkvdGVudGF0aXZlL21hc29ucnktYWxpZ24tY29udGVudC0wMDIuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWdyaWQvbWFzb25yeS90ZW50YXRpdmUvbWFzb25yeS1hbGlnbi1jb250ZW50LTAwMy5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444512</attachid>
            <date>2021-11-17 06:09:16 -0800</date>
            <delta_ts>2021-11-19 06:26:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232617-20211117140915.patch</filename>
            <type>text/plain</type>
            <size>11100</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM3YjU3YjFkOTk2MzQ3
ZmRhNjc3NzkyZGQ2MjY2N2I0NzgxNGMyZC4uYmUxNjY3NzliMzhkZmUyNzAyNjJjZjViMWY1MmNh
OGExMjRhODc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTExLTE3ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBUcmFjayBzaXpp
bmcgYWxnb3JpdGhtIG5vdCByZXBlYXRlZCBldmVuIGlmIHVzZWQgZmxleCBmcmFjdGlvbiB3b3Vs
ZCBjaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjYxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFjY29yZGluZyB0byBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWdyaWQvI2FsZ28tZmxl
eC10cmFja3MsIHdoZW4gcm93IGhlaWdodCBpcworICAgICAgICBpbmRlZmluaXRlLCBmb3IgZWFj
aCBncmlkIGl0ZW0gdGhhdCBjcm9zc2VzIGEgZmxleGlibGUgdHJhY2ssIHdlIHJ1biB0aGUgdHJh
Y2sgc2l6aW5nCisgICAgICAgIGFsZ29yaXRobSB1bmRlciBhIG1heC1jb250ZW50IGNvbnN0cmFp
bnQgdG8gZmluZCB0aGUgZmxleCBmcmFjdGlvbi4gVGhlbiB3ZSB3b3JrIG91dAorICAgICAgICB0
aGUgZ3JpZCBjb250YWluZXIgaGVpZ2h0IGFzIGRlZmluaXRlLCB3aGljaCBtYXkgY2F1c2UgdGhl
IGZsZXggZnJhY3Rpb24gY2hhbmdlLiBBdCB0aGlzCisgICAgICAgIHBvaW50LCB3ZSBuZWVkIHRv
IHJlcGVhdCB0aGUgdHJhY2sgc2l6aW5nIGFsZ29yaXRobSBmb3Igcm93IGFuZCBsYXlvdXQgdGhl
IGdyaWQgZm9yIHJlYWwuCisgICAgICAgIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXNu
J3QgcmVwZWF0IHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtIGZvciByb3cuCisKKyAgICAgICAg
VGhlIGNvbXBsaWNhdGlvbiB3aXRoIGNhbGxpbmcgUmVuZGVyR3JpZDo6cmVwZWF0VHJhY2tzU2l6
aW5nSWZOZWVkZWQoKSBmb3IgZmxleCBtYXgtc2l6aW5nCisgICAgICAgIGlzIHRoYXQgaXQgbWln
aHQgY2hhbmdlIGEgZ3JpZCBpdGVtJ3Mgc3RhdHVzIG9mIHBhcnRpY2lwYXRpbmcgaW4gQmFzZWxp
bmUgQWxpZ25tZW50IGZvcgorICAgICAgICBhIGN5Y2xpYyBzaXppbmcgZGVwZW5kbmN5IGNhc2Us
IHdoaWNoIHNob3VsZCBiZSBkZWZpbml0aXZlbHkgZXhjbHVkZWQuIFNlZQorICAgICAgICBodHRw
czovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMzA0Ni4KKyAgICAgICAgCisg
ICAgICAgICogcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmNhblBhcnRpY2lwYXRlSW5CYXNl
bGluZUFsaWdubWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXppbmdBbGdvcml0
aG06OmluaXRpYWxpemVUcmFja1NpemVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1Np
emluZ0FsZ29yaXRobTo6c2V0dXApOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtOjpyZXNldCk6CisgICAgICAgICogcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0Fs
Z29yaXRobS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlcGVhdFRyYWNrc1NpemluZ0lmTmVlZGVkKToKKwogMjAy
MS0xMS0xNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODAwNzgsIHIyODAyOTAgYW5kIHIyODIwMDguCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3Jp
dGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0
aG0uY3BwCmluZGV4IDM4ZTlmMTcxNTY3ODgwYWYzNjk0ZWQ5YzNiNTkwZDczYjhkMDZhYWUuLjhl
ZjEyOTU0ZDM1ZWUzNzBmNGU0YjU3MTdkNjgwNjk5ZjQ4OTllYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCkBAIC04
NzksNyArODc5LDcgQEAgTGF5b3V0VW5pdCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG1TdHJhdGVn
eTo6bWluU2l6ZUZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQpIGMKICAgICByZXR1cm4gbWluTG9n
aWNhbFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRNaW5TaXplLCBncmlkQXJlYVNpemUpICsgYmFz
ZWxpbmVTaGltOwogfQogCi1ib29sIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6Y2FuUGFydGlj
aXBhdGVJbkJhc2VsaW5lQWxpZ25tZW50KGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRBeGlz
IGJhc2VsaW5lQXhpcykgY29uc3QKK2Jvb2wgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpjYW5Q
YXJ0aWNpcGF0ZUluQmFzZWxpbmVBbGlnbm1lbnQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3Jp
ZEF4aXMgYmFzZWxpbmVBeGlzKQogewogICAgIEFTU0VSVChiYXNlbGluZUF4aXMgPT0gR3JpZENv
bHVtbkF4aXMgPyBtX2NvbHVtbkJhc2VsaW5lSXRlbXNNYXAuY29udGFpbnMoJmNoaWxkKSA6IG1f
cm93QmFzZWxpbmVJdGVtc01hcC5jb250YWlucygmY2hpbGQpKTsKIApAQCAtODkyLDcgKzg5Miw5
IEBAIGJvb2wgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpjYW5QYXJ0aWNpcGF0ZUluQmFzZWxp
bmVBbGlnbm1lbnQoY29uc3QgUmVuZGVyQm94CiAKICAgICAvLyBCYXNlbGluZSBjeWNsaWMgZGVw
ZW5kZW5jaWVzIG9ubHkgaGFwcGVuIGluIGdyaWQgYXJlYXMgd2l0aAogICAgIC8vIGludHJpbnNp
Y2FsbHktc2l6ZWQgdHJhY2tzLiAKLSAgICBpZiAoIWlzSW50cmluc2ljU2l6ZWRHcmlkQXJlYShj
aGlsZCwgYmFzZWxpbmVBeGlzKSkKKyAgICBpZiAoaXNJbnRyaW5zaWNTaXplZEdyaWRBcmVhKGNo
aWxkLCBiYXNlbGluZUF4aXMpKQorICAgICAgICBtX2lzQ3ljbGljRGVwZW5kZW5jeSA9IHRydWU7
CisgICAgZWxzZQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBpc1BhcmFsbGVs
VG9CYXNlbGluZUF4aXMgPyAhY2hpbGQuaGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkgOiAhY2hp
bGQuaGFzUmVsYXRpdmVMb2dpY2FsV2lkdGgoKSAmJiAhY2hpbGQuc3R5bGUoKS5sb2dpY2FsV2lk
dGgoKS5pc0F1dG8oKTsKQEAgLTExNjQsNyArMTE2Niw3IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtOjppbml0aWFsaXplVHJhY2tTaXplcygpCiAgICAgQVNTRVJUKG1fY29udGVudFNp
emVkVHJhY2tzSW5kZXguaXNFbXB0eSgpKTsKICAgICBBU1NFUlQobV9mbGV4aWJsZVNpemVkVHJh
Y2tzSW5kZXguaXNFbXB0eSgpKTsKICAgICBBU1NFUlQobV9hdXRvU2l6ZWRUcmFja3NGb3JTdHJl
dGNoSW5kZXguaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoIW1faGFzUGVyY2VudFNpemVkUm93c0lu
ZGVmaW5pdGVIZWlnaHQpOworICAgIEFTU0VSVCghbV9oYXNQZXJjZW50U2l6ZWRSb3dzT3JGbGV4
TWF4VHJhY2tCcmVhZHRoSW5kZWZpbml0ZUhlaWdodCk7CiAKICAgICBWZWN0b3I8R3JpZFRyYWNr
PiYgYWxsVHJhY2tzID0gdHJhY2tzKG1fZGlyZWN0aW9uKTsKICAgICBjb25zdCBib29sIGluZGVm
aW5pdGVIZWlnaHQgPSBtX2RpcmVjdGlvbiA9PSBGb3JSb3dzICYmICFtX3JlbmRlckdyaWQtPmhh
c0RlZmluaXRlTG9naWNhbEhlaWdodCgpOwpAQCAtMTE4NywxMCArMTE4OSwxNiBAQCB2b2lkIEdy
aWRUcmFja1NpemluZ0FsZ29yaXRobTo6aW5pdGlhbGl6ZVRyYWNrU2l6ZXMoKQogICAgICAgICBp
ZiAodHJhY2tTaXplLmhhc0F1dG9NYXhUcmFja0JyZWFkdGgoKSAmJiAhdHJhY2tTaXplLmlzRml0
Q29udGVudCgpKQogICAgICAgICAgICAgbV9hdXRvU2l6ZWRUcmFja3NGb3JTdHJldGNoSW5kZXgu
YXBwZW5kKGkpOwogCi0gICAgICAgIGlmICghbV9oYXNQZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0
ZUhlaWdodCAmJiBpbmRlZmluaXRlSGVpZ2h0KSB7CisgICAgICAgIC8vIENoZWNrIHRoZSBuZWVk
cyBmb3IgcmVwZWF0aW5nIHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtLiBGb3IgZmxleGlibGUg
dHJhY2tzLCBhcyBwZXIgc3BlYyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWdyaWQvI2Fs
Z28tZmxleC10cmFja3MsCisgICAgICAgIC8vIGluIGNsYXVzZSAiaWYgdGhlIGZyZWUgc3BhY2Ug
aXMgYW4gaW5kZWZpbml0ZSBsZW5ndGg6IiwgaXQgc3RhdGVzIHRoYXQgIklmIHVzaW5nIHRoaXMg
ZmxleCBmcmFjdGlvbiB3b3VsZCBjYXVzZSB0aGUgZ3JpZCB0byBiZSBzbWFsbGVyIHRoYW4gdGhl
CisgICAgICAgIC8vIGdyaWQgY29udGFpbmVy4oCZcyBtaW4td2lkdGgvaGVpZ2h0IChvciBsYXJn
ZXIgdGhhbiB0aGUgZ3JpZCBjb250YWluZXLigJlzIG1heC13aWR0aC9oZWlnaHQpLCB0aGVuIHJl
ZG8gdGhpcyBzdGVwIi4KKyAgICAgICAgLy8gVGhlIGNvbXBsaWNhdGlvbiByZXBlYXRpbmcgdGhl
IHRyYWNrIHNpemluZyBhbGdvcml0aG0gb3IgZmxleCBtYXgtc2l6aW5nIGlzIHRoYXQgaXQgbWln
aHQgY2hhbmdlIGEgZ3JpZCBpdGVtJ3Mgc3RhdHVzIG9mIHBhcnRpY2lwYXRpbmcgaW4KKyAgICAg
ICAgLy8gQmFzZWxpbmUgQWxpZ25tZW50IGZvciBhIGN5Y2xpYyBzaXppbmcgZGVwZW5kbmN5IGNh
c2UsIHdoaWNoIHNob3VsZCBiZSBkZWZpbml0aXZlbHkgZXhjbHVkZWQuIFNlZSBkaXNjdXNzaW9u
cyBhdAorICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1
ZXMvMzA0NgorICAgICAgICBpZiAoIW1faGFzUGVyY2VudFNpemVkUm93c09yRmxleE1heFRyYWNr
QnJlYWR0aEluZGVmaW5pdGVIZWlnaHQgJiYgaW5kZWZpbml0ZUhlaWdodCkgewogICAgICAgICAg
ICAgYXV0byYgcmF3VHJhY2tTaXplID0gcmF3R3JpZFRyYWNrU2l6ZShtX2RpcmVjdGlvbiwgaSk7
Ci0gICAgICAgICAgICBpZiAocmF3VHJhY2tTaXplLm1pblRyYWNrQnJlYWR0aCgpLmlzUGVyY2Vu
dGFnZSgpIHx8IHJhd1RyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5pc1BlcmNlbnRhZ2UoKSkK
LSAgICAgICAgICAgICAgICBtX2hhc1BlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRlSGVpZ2h0ID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChyYXdUcmFja1NpemUubWluVHJhY2tCcmVhZHRoKCkuaXNQ
ZXJjZW50YWdlKCkgfHwgcmF3VHJhY2tTaXplLm1heFRyYWNrQnJlYWR0aCgpLmlzUGVyY2VudGFn
ZSgpIHx8IChyYXdUcmFja1NpemUubWF4VHJhY2tCcmVhZHRoKCkuaXNGbGV4KCkgJiYgIW1faXND
eWNsaWNEZXBlbmRlbmN5KSkKKyAgICAgICAgICAgICAgICBtX2hhc1BlcmNlbnRTaXplZFJvd3NP
ckZsZXhNYXhUcmFja0JyZWFkdGhJbmRlZmluaXRlSGVpZ2h0ID0gdHJ1ZTsKICAgICAgICAgfQog
ICAgIH0KIH0KQEAgLTEzNjAsNyArMTM2OCw3IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5nQWxnb3Jp
dGhtOjpzZXR1cChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCB1bnNpZ25lCiAg
ICAgdHJhY2tzKGRpcmVjdGlvbikucmVzaXplKG51bVRyYWNrcyk7CiAKICAgICBtX25lZWRzU2V0
dXAgPSBmYWxzZTsKLSAgICBtX2hhc1BlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRlSGVpZ2h0ID0g
ZmFsc2U7CisgICAgbV9oYXNQZXJjZW50U2l6ZWRSb3dzT3JGbGV4TWF4VHJhY2tCcmVhZHRoSW5k
ZWZpbml0ZUhlaWdodCA9IGZhbHNlOwogCiAgICAgY29tcHV0ZUJhc2VsaW5lQWxpZ25tZW50Q29u
dGV4dCgpOwogfQpAQCAtMTQzMSw3ICsxNDM5LDcgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdBbGdv
cml0aG06OnJlc2V0KCkKICAgICBtX2F1dG9TaXplZFRyYWNrc0ZvclN0cmV0Y2hJbmRleC5zaHJp
bmsoMCk7CiAgICAgc2V0QXZhaWxhYmxlU3BhY2UoRm9yUm93cywgc3RkOjpudWxsb3B0KTsKICAg
ICBzZXRBdmFpbGFibGVTcGFjZShGb3JDb2x1bW5zLCBzdGQ6Om51bGxvcHQpOwotICAgIG1faGFz
UGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQgPSBmYWxzZTsKKyAgICBtX2hhc1BlcmNl
bnRTaXplZFJvd3NPckZsZXhNYXhUcmFja0JyZWFkdGhJbmRlZmluaXRlSGVpZ2h0ID0gZmFsc2U7
CiB9CiAKICNpZiBBU1NFUlRfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oCmluZGV4IDUxZDI3ZjljZjhlYjlkNWIwN2M4
ZDdmMGZiYzE4OTQ1YTQ0ODI1NTAuLjQ5YTAyN2VlMTNiZjQyMWYwZjU3NGFlYjdjZmMwM2JlYjNj
ZWZlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtLmgKQEAgLTE0Miw3ICsxNDIsNyBAQCBwdWJsaWM6CiAKICAgICBMYXlvdXRV
bml0IGNvbXB1dGVUcmFja0Jhc2VkU2l6ZSgpIGNvbnN0OwogCi0gICAgYm9vbCBoYXNBbnlQZXJj
ZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVyY2Vu
dFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQ7IH0KKyAgICBib29sIGhhc0FueVBlcmNlbnRTaXpl
ZFJvd3NPckZsZXhNYXhUcmFja0JyZWFkdGhJbmRlZmluaXRlSGVpZ2h0KCkgY29uc3QgeyByZXR1
cm4gbV9oYXNQZXJjZW50U2l6ZWRSb3dzT3JGbGV4TWF4VHJhY2tCcmVhZHRoSW5kZWZpbml0ZUhl
aWdodDsgfQogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICBib29sIHRyYWNrc0FyZVdpZGVyVGhh
bk1pblRyYWNrQnJlYWR0aCgpIGNvbnN0OwpAQCAtMTcxLDcgKzE3MSw3IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIGNvbXB1dGVCYXNlbGluZUFsaWdubWVudENvbnRleHQoKTsKICAgICB2b2lkIHVw
ZGF0ZUJhc2VsaW5lQWxpZ25tZW50Q29udGV4dChjb25zdCBSZW5kZXJCb3gmLCBHcmlkQXhpcyk7
Ci0gICAgYm9vbCBjYW5QYXJ0aWNpcGF0ZUluQmFzZWxpbmVBbGlnbm1lbnQoY29uc3QgUmVuZGVy
Qm94JiwgR3JpZEF4aXMpIGNvbnN0OworICAgIGJvb2wgY2FuUGFydGljaXBhdGVJbkJhc2VsaW5l
QWxpZ25tZW50KGNvbnN0IFJlbmRlckJveCYsIEdyaWRBeGlzKTsKICAgICBib29sIHBhcnRpY2lw
YXRlSW5CYXNlbGluZUFsaWdubWVudChjb25zdCBSZW5kZXJCb3gmLCBHcmlkQXhpcykgY29uc3Q7
CiAKICAgICBib29sIGlzSW50cmluc2ljU2l6ZWRHcmlkQXJlYShjb25zdCBSZW5kZXJCb3gmLCBH
cmlkQXhpcykgY29uc3Q7CkBAIC0xOTgsNyArMTk4LDggQEAgcHJpdmF0ZToKICAgICAvLyBEYXRh
LgogICAgIGJvb2wgd2FzU2V0dXAoKSBjb25zdCB7IHJldHVybiAhIW1fc3RyYXRlZ3k7IH0KICAg
ICBib29sIG1fbmVlZHNTZXR1cCB7IHRydWUgfTsKLSAgICBib29sIG1faGFzUGVyY2VudFNpemVk
Um93c0luZGVmaW5pdGVIZWlnaHQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNQZXJjZW50U2l6
ZWRSb3dzT3JGbGV4TWF4VHJhY2tCcmVhZHRoSW5kZWZpbml0ZUhlaWdodCB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX2lzQ3ljbGljRGVwZW5kZW5jeSB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiBtX2F2YWlsYWJsZVNwYWNlUm93czsKICAgICBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IG1fYXZhaWxhYmxlU3BhY2VDb2x1bW5zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggMGJkMTJmMmFhMThiMmIzYjFmMzdlMTVjZTU3M2ViYTUw
ODA4ZTk1OS4uNGNiNDNhZTQ1Mzg4ZDcwYTlkNTg1MTE4MWExMDEwYjUxMmUwMWI1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIHZv
aWQgUmVuZGVyR3JpZDo6cmVwZWF0VHJhY2tzU2l6aW5nSWZOZWVkZWQoTGF5b3V0VW5pdCBhdmFp
bGFibGVTcGFjZUZvckNvbHVtbnMsCiAgICAgLy8gYSBuZXcgY3ljbGUgb2YgdGhlIHNpemluZyBh
bGdvcml0aG07IHRoZXJlIG1heSBiZSBtb3JlLiBJbiBhZGRpdGlvbiwgbm90IGFsbCB0aGUKICAg
ICAvLyBjYXNlcyB3aXRoIG9ydGhvZ29uYWwgZmxvd3MgcmVxdWlyZSB0aGlzIGV4dHJhIGN5Y2xl
OyB3ZSBuZWVkIGEgbW9yZSBzcGVjaWZpYwogICAgIC8vIGNvbmRpdGlvbiB0byBkZXRlY3Qgd2hl
dGhlciBjaGlsZCdzIG1pbi1jb250ZW50IGNvbnRyaWJ1dGlvbiBoYXMgY2hhbmdlZCBvciBub3Qu
Ci0gICAgaWYgKG1faGFzQW55T3J0aG9nb25hbEl0ZW0gfHwgbV90cmFja1NpemluZ0FsZ29yaXRo
bS5oYXNBbnlQZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhlaWdodCgpIHx8IG1faGFzQXNwZWN0
UmF0aW9CbG9ja1NpemVEZXBlbmRlbnRJdGVtKSB7CisgICAgaWYgKG1faGFzQW55T3J0aG9nb25h
bEl0ZW0gfHwgbV90cmFja1NpemluZ0FsZ29yaXRobS5oYXNBbnlQZXJjZW50U2l6ZWRSb3dzT3JG
bGV4TWF4VHJhY2tCcmVhZHRoSW5kZWZpbml0ZUhlaWdodCgpIHx8IG1faGFzQXNwZWN0UmF0aW9C
bG9ja1NpemVEZXBlbmRlbnRJdGVtKSB7CiAgICAgICAgIGNvbXB1dGVUcmFja1NpemVzRm9yRGVm
aW5pdGVTaXplKEZvckNvbHVtbnMsIGF2YWlsYWJsZVNwYWNlRm9yQ29sdW1ucyk7CiAgICAgICAg
IGNvbXB1dGVDb250ZW50UG9zaXRpb25BbmREaXN0cmlidXRpb25PZmZzZXQoRm9yQ29sdW1ucywg
bV90cmFja1NpemluZ0FsZ29yaXRobS5mcmVlU3BhY2UoRm9yQ29sdW1ucykudmFsdWUoKSwgbm9u
Q29sbGFwc2VkVHJhY2tzKEZvckNvbHVtbnMpKTsKICAgICAgICAgY29tcHV0ZVRyYWNrU2l6ZXNG
b3JEZWZpbml0ZVNpemUoRm9yUm93cywgYXZhaWxhYmxlU3BhY2VGb3JSb3dzKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAy
MWEwODZiOWQ3ZDdkOWQyN2E5YzJjYmM1ODFmZDRhNDRhZmFhMzA1Li40ODc1YzAzOWNjMDlhZDU5
Yzk1ZTllYzJjMjgxYTgzMjAyYTliZWNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTEt
MTcgIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWdyaWRdIFRy
YWNrIHNpemluZyBhbGdvcml0aG0gbm90IHJlcGVhdGVkIGV2ZW4gaWYgdXNlZCBmbGV4IGZyYWN0
aW9uIHdvdWxkIGNoYW5nZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyNjE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVW5za2lwIHR3byB0ZXN0cyB0aGF0IGFyZSBwYXNzaW5nLgorIAorICAgICAgICAq
IFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMTEtMTYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgwMDc4
LCByMjgwMjkwIGFuZCByMjgyMDA4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzY4Y2Y3ZTk0YmRm
ZDMzMjM1NzJjYTA4YjYwZTFmZjQ3MjY4YjQ1ZS4uOTViYWRmOWMzYTY0Y2U2MDYwZTVkOGQxMDQ3
NzFmMjkzZTMyYzVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDAyLDggKzE0MDIsNiBAQCB3
ZWJraXQub3JnL2IvMjMxMDIxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1ncmlkL2dyaWQtaXRlbXMvcGVyYwogd2Via2l0Lm9yZy9iLzIzMTAyMSBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWl0ZW1zL3JlcGxhY2VkLWVsZW1l
bnQtMDE1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1tb2RlbC9ncmlkLWFyZWFzLW92ZXJmbG93aW5n
LWdyaWQtY29udGFpbmVyLTAwOS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9sYXlvdXQtYWxnb3JpdGhtL2ZsZXgt
c2l6aW5nLXJvd3MtaW5kZWZpbml0ZS1oZWlnaHQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzIzMTAyMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtZ3JpZC9sYXlvdXQtYWxnb3JpdGhtL2dyaWQtdGVtcGxhdGUtZmxleGlibGUtcmVydW4tdHJh
Y2stc2l6aW5nLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL21hc29ucnkvdGVudGF0aXZlL21hc29ucnktYWxpZ24t
Y29udGVudC0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbWFzb25yeS90ZW50YXRpdmUvbWFzb25yeS1hbGln
bi1jb250ZW50LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9tYXNvbnJ5L3RlbnRhdGl2ZS9tYXNvbnJ5LWFs
aWduLWNvbnRlbnQtMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444812</attachid>
            <date>2021-11-19 06:26:10 -0800</date>
            <delta_ts>2021-11-23 06:02:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232617-20211119142609.patch</filename>
            <type>text/plain</type>
            <size>11722</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MxYmYxOGM1YThkMDBi
OTE0ZGM1MDc2NjY1NDMwODFjNWVmNTVlYS4uOTIxMjY0ZWNkMzAyMzk5YTQ4YjhmMjQzYTM5ODI1
ZDQxZDJkZjFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTExLTE5ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBUcmFjayBzaXpp
bmcgYWxnb3JpdGhtIG5vdCByZXBlYXRlZCBldmVuIGlmIHVzZWQgZmxleCBmcmFjdGlvbiB3b3Vs
ZCBjaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjYxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFjY29yZGluZyB0byBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWdyaWQvI2FsZ28tZmxl
eC10cmFja3MsIHdoZW4gcm93IGhlaWdodCBpcworICAgICAgICBpbmRlZmluaXRlLCBmb3IgZWFj
aCBncmlkIGl0ZW0gdGhhdCBjcm9zc2VzIGEgZmxleGlibGUgdHJhY2ssIHdlIHJ1biB0aGUgdHJh
Y2sgc2l6aW5nCisgICAgICAgIGFsZ29yaXRobSB1bmRlciBhIG1heC1jb250ZW50IGNvbnN0cmFp
bnQgdG8gZmluZCB0aGUgZmxleCBmcmFjdGlvbi4gVGhlbiB3ZSB3b3JrIG91dAorICAgICAgICB0
aGUgZ3JpZCBjb250YWluZXIgaGVpZ2h0IGFzIGRlZmluaXRlLCB3aGljaCBtYXkgY2F1c2UgdGhl
IGZsZXggZnJhY3Rpb24gY2hhbmdlLiBBdCB0aGlzCisgICAgICAgIHBvaW50LCB3ZSBuZWVkIHRv
IHJlcGVhdCB0aGUgdHJhY2sgc2l6aW5nIGFsZ29yaXRobSBmb3Igcm93IGFuZCBsYXlvdXQgdGhl
IGdyaWQgZm9yIHJlYWwuCisgICAgICAgIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXNu
J3QgcmVwZWF0IHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtIGZvciByb3cuCisKKyAgICAgICAg
VGhlIGNvbXBsaWNhdGlvbiB3aXRoIGNhbGxpbmcgUmVuZGVyR3JpZDo6cmVwZWF0VHJhY2tzU2l6
aW5nSWZOZWVkZWQoKSBmb3IgZmxleCBtYXgtc2l6aW5nCisgICAgICAgIGlzIHRoYXQgaXQgbWln
aHQgY2hhbmdlIGEgZ3JpZCBpdGVtJ3Mgc3RhdHVzIG9mIHBhcnRpY2lwYXRpbmcgaW4gQmFzZWxp
bmUgQWxpZ25tZW50IGZvcgorICAgICAgICBhIGN5Y2xpYyBzaXppbmcgZGVwZW5kbmN5IGNhc2Us
IHdoaWNoIHNob3VsZCBiZSBkZWZpbml0aXZlbHkgZXhjbHVkZWQuIFNlZQorICAgICAgICBodHRw
czovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMzA0NiBmb3IgbW9yZSBkZXRh
aWxzLiBUaGlzIGlzc3VlIHNob3VsZCBiZSBoYW5kbGVkCisgICAgICAgIGluIGEgc2VwZXJhdGUg
YnVnLiBUaGlzIENMIG9ubHkgaGFuZGxlIHRlc3QgY2FzZXMgdGhhdCBkb24ndCBoYXZlIGJhc2Vs
aW5lIGFsaWdubWVudCBzcGVjaWZpZWQuIAorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcv
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFj
a1NpemluZ0FsZ29yaXRobTo6aW5pdGlhbGl6ZVRyYWNrU2l6ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpzZXR1cCk6CisgICAgICAgIChXZWJDb3JlOjpH
cmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnJlc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvR3Jp
ZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVwZWF0VHJhY2tzU2l6aW5nSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0QmxvY2spOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisKIDIwMjEtMTEtMTggIFppcmFuIFN1biAg
PHpzdW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBJbWFnZXMgYXMgZ3JpZCBpdGVtcyBzaG91bGQg
dXNlIHRoZSBvdmVycmlkaW5nTG9naWNhbFdpZHRoIHdoZW4gZGVmaW5lZCB0byBjb21wdXRlIHRo
ZSBsb2dpY2FsIEhlaWdodApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dy
aWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3Jp
ZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcAppbmRleCAyOTgwZGYwNDc3YTFhMWI0MzI4MjI0YzE2
OThhNjc4MDU1Y2FlN2M0Li4wMWMzYzk5ZDkzNjI1YTZkYmEwYWNkYmYzMmQ4MDY3ZWE0MmMyM2U1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxn
b3JpdGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtLmNwcApAQCAtMTE2NSw2ICsxMTY1LDcgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdB
bGdvcml0aG06OmluaXRpYWxpemVUcmFja1NpemVzKCkKICAgICBBU1NFUlQobV9mbGV4aWJsZVNp
emVkVHJhY2tzSW5kZXguaXNFbXB0eSgpKTsKICAgICBBU1NFUlQobV9hdXRvU2l6ZWRUcmFja3NG
b3JTdHJldGNoSW5kZXguaXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1faGFzUGVyY2VudFNpemVk
Um93c0luZGVmaW5pdGVIZWlnaHQpOworICAgIEFTU0VSVCghbV9oYXNGbGV4aWJsZU1heFRyYWNr
QnJlYWR0aCk7CiAKICAgICBWZWN0b3I8R3JpZFRyYWNrPiYgYWxsVHJhY2tzID0gdHJhY2tzKG1f
ZGlyZWN0aW9uKTsKICAgICBjb25zdCBib29sIGluZGVmaW5pdGVIZWlnaHQgPSBtX2RpcmVjdGlv
biA9PSBGb3JSb3dzICYmICFtX3JlbmRlckdyaWQtPmhhc0RlZmluaXRlTG9naWNhbEhlaWdodCgp
OwpAQCAtMTE4Nyw5ICsxMTg4LDE0IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpp
bml0aWFsaXplVHJhY2tTaXplcygpCiAgICAgICAgIGlmICh0cmFja1NpemUuaGFzQXV0b01heFRy
YWNrQnJlYWR0aCgpICYmICF0cmFja1NpemUuaXNGaXRDb250ZW50KCkpCiAgICAgICAgICAgICBt
X2F1dG9TaXplZFRyYWNrc0ZvclN0cmV0Y2hJbmRleC5hcHBlbmQoaSk7CiAKLSAgICAgICAgaWYg
KCFtX2hhc1BlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRlSGVpZ2h0ICYmIGluZGVmaW5pdGVIZWln
aHQpIHsKKyAgICAgICAgaWYgKGluZGVmaW5pdGVIZWlnaHQpIHsKICAgICAgICAgICAgIGF1dG8m
IHJhd1RyYWNrU2l6ZSA9IHJhd0dyaWRUcmFja1NpemUobV9kaXJlY3Rpb24sIGkpOwotICAgICAg
ICAgICAgaWYgKHJhd1RyYWNrU2l6ZS5taW5UcmFja0JyZWFkdGgoKS5pc1BlcmNlbnRhZ2UoKSB8
fCByYXdUcmFja1NpemUubWF4VHJhY2tCcmVhZHRoKCkuaXNQZXJjZW50YWdlKCkpCisgICAgICAg
ICAgICAvLyBTZXQgdGhlIGZsYWcgZm9yIHJlcGVhdGluZyB0aGUgdHJhY2sgc2l6aW5nIGFsZ29y
aXRobS4gRm9yIGZsZXhpYmxlIHRyYWNrcywgYXMgcGVyIHNwZWMgaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzcy1ncmlkLyNhbGdvLWZsZXgtdHJhY2tzLAorICAgICAgICAgICAgLy8gaW4gY2xh
dXNlICJpZiB0aGUgZnJlZSBzcGFjZSBpcyBhbiBpbmRlZmluaXRlIGxlbmd0aDoiLCBpdCBzdGF0
ZXMgdGhhdCAiSWYgdXNpbmcgdGhpcyBmbGV4IGZyYWN0aW9uIHdvdWxkIGNhdXNlIHRoZSBncmlk
IHRvIGJlIHNtYWxsZXIgdGhhbgorICAgICAgICAgICAgLy8gdGhlIGdyaWQgY29udGFpbmVy4oCZ
cyBtaW4td2lkdGgvaGVpZ2h0IChvciBsYXJnZXIgdGhhbiB0aGUgZ3JpZCBjb250YWluZXLigJlz
IG1heC13aWR0aC9oZWlnaHQpLCB0aGVuIHJlZG8gdGhpcyBzdGVwIi4KKyAgICAgICAgICAgIGlm
ICghbV9oYXNGbGV4aWJsZU1heFRyYWNrQnJlYWR0aCAmJiByYXdUcmFja1NpemUubWF4VHJhY2tC
cmVhZHRoKCkuaXNGbGV4KCkpCisgICAgICAgICAgICAgICAgbV9oYXNGbGV4aWJsZU1heFRyYWNr
QnJlYWR0aCA9IHRydWU7CisgICAgICAgICAgICBpZiAoIW1faGFzUGVyY2VudFNpemVkUm93c0lu
ZGVmaW5pdGVIZWlnaHQgJiYgKHJhd1RyYWNrU2l6ZS5taW5UcmFja0JyZWFkdGgoKS5pc1BlcmNl
bnRhZ2UoKSB8fCByYXdUcmFja1NpemUubWF4VHJhY2tCcmVhZHRoKCkuaXNQZXJjZW50YWdlKCkp
KQogICAgICAgICAgICAgICAgIG1faGFzUGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQg
PSB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTM2MSw2ICsxMzY3LDcgQEAgdm9pZCBHcmlk
VHJhY2tTaXppbmdBbGdvcml0aG06OnNldHVwKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJl
Y3Rpb24sIHVuc2lnbmUKIAogICAgIG1fbmVlZHNTZXR1cCA9IGZhbHNlOwogICAgIG1faGFzUGVy
Y2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQgPSBmYWxzZTsKKyAgICBtX2hhc0ZsZXhpYmxl
TWF4VHJhY2tCcmVhZHRoID0gZmFsc2U7CiAKICAgICBjb21wdXRlQmFzZWxpbmVBbGlnbm1lbnRD
b250ZXh0KCk7CiB9CkBAIC0xNDMyLDYgKzE0MzksNyBAQCB2b2lkIEdyaWRUcmFja1NpemluZ0Fs
Z29yaXRobTo6cmVzZXQoKQogICAgIHNldEF2YWlsYWJsZVNwYWNlKEZvclJvd3MsIHN0ZDo6bnVs
bG9wdCk7CiAgICAgc2V0QXZhaWxhYmxlU3BhY2UoRm9yQ29sdW1ucywgc3RkOjpudWxsb3B0KTsK
ICAgICBtX2hhc1BlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRlSGVpZ2h0ID0gZmFsc2U7CisgICAg
bV9oYXNGbGV4aWJsZU1heFRyYWNrQnJlYWR0aCA9IGZhbHNlOwogfQogCiAjaWYgQVNTRVJUX0VO
QUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdB
bGdvcml0aG0uaAppbmRleCA1MWQyN2Y5Y2Y4ZWI5ZDViMDdjOGQ3ZjBmYmMxODk0NWE0NDgyNTUw
Li42MDcwYWJlMGFiNmVmZDU1MzNiN2Q2ZDBmNjcyYTA0ZjkxMzNkMDk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oCkBAIC0x
NDMsNiArMTQzLDcgQEAgcHVibGljOgogICAgIExheW91dFVuaXQgY29tcHV0ZVRyYWNrQmFzZWRT
aXplKCkgY29uc3Q7CiAKICAgICBib29sIGhhc0FueVBlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRl
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhl
aWdodDsgfQorICAgIGJvb2wgaGFzQW55RmxleGlibGVNYXhUcmFja0JyZWFkdGgoKSBjb25zdCB7
IHJldHVybiBtX2hhc0ZsZXhpYmxlTWF4VHJhY2tCcmVhZHRoOyB9CiAKICNpZiBBU1NFUlRfRU5B
QkxFRAogICAgIGJvb2wgdHJhY2tzQXJlV2lkZXJUaGFuTWluVHJhY2tCcmVhZHRoKCkgY29uc3Q7
CkBAIC0xOTksNiArMjAwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHdhc1NldHVwKCkgY29uc3Qg
eyByZXR1cm4gISFtX3N0cmF0ZWd5OyB9CiAgICAgYm9vbCBtX25lZWRzU2V0dXAgeyB0cnVlIH07
CiAgICAgYm9vbCBtX2hhc1BlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRlSGVpZ2h0IHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faGFzRmxleGlibGVNYXhUcmFja0JyZWFkdGggeyBmYWxzZSB9OwogICAg
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbV9hdmFpbGFibGVTcGFjZVJvd3M7CiAgICAgc3Rk
OjpvcHRpb25hbDxMYXlvdXRVbml0PiBtX2F2YWlsYWJsZVNwYWNlQ29sdW1uczsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDJiZjgzZDMzZGJlYzQ5ODkwNTM5
NzQ4YjI4MjQ1NWM1NDdmMDE2MzQuLjdmZDQyM2EwZjNmZTY2MmUyNzJiMzYwNDMwOWNlZDJkZGQy
ODllMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTE2MSw3
ICsxNjEsMTIgQEAgdm9pZCBSZW5kZXJHcmlkOjpyZXBlYXRUcmFja3NTaXppbmdJZk5lZWRlZChM
YXlvdXRVbml0IGF2YWlsYWJsZVNwYWNlRm9yQ29sdW1ucywKICAgICAvLyBhIG5ldyBjeWNsZSBv
ZiB0aGUgc2l6aW5nIGFsZ29yaXRobTsgdGhlcmUgbWF5IGJlIG1vcmUuIEluIGFkZGl0aW9uLCBu
b3QgYWxsIHRoZQogICAgIC8vIGNhc2VzIHdpdGggb3J0aG9nb25hbCBmbG93cyByZXF1aXJlIHRo
aXMgZXh0cmEgY3ljbGU7IHdlIG5lZWQgYSBtb3JlIHNwZWNpZmljCiAgICAgLy8gY29uZGl0aW9u
IHRvIGRldGVjdCB3aGV0aGVyIGNoaWxkJ3MgbWluLWNvbnRlbnQgY29udHJpYnV0aW9uIGhhcyBj
aGFuZ2VkIG9yIG5vdC4KLSAgICBpZiAobV9oYXNBbnlPcnRob2dvbmFsSXRlbSB8fCBtX3RyYWNr
U2l6aW5nQWxnb3JpdGhtLmhhc0FueVBlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRlSGVpZ2h0KCkg
fHwgbV9oYXNBc3BlY3RSYXRpb0Jsb2NrU2l6ZURlcGVuZGVudEl0ZW0pIHsKKyAgICAvLyBUaGUg
Y29tcGxpY2F0aW9uIHdpdGggcmVwZWF0aW5nIHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtIGZv
ciBmbGV4IG1heC1zaXppbmcgaXMgdGhhdAorICAgIC8vIGl0IG1pZ2h0IGNoYW5nZSBhIGdyaWQg
aXRlbSdzIHN0YXR1cyBvZiBwYXJ0aWNpcGF0aW5nIGluIEJhc2VsaW5lIEFsaWdubWVudCBmb3IK
KyAgICAvLyBhIGN5Y2xpYyBzaXppbmcgZGVwZW5kbmN5IGNhc2UsIHdoaWNoIHNob3VsZCBiZSBk
ZWZpbml0aXZlbHkgZXhjbHVkZWQuIAorICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20v
dzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMzA0Ni4KKworICAgIGlmIChtX2hhc0FueU9ydGhvZ29u
YWxJdGVtIHx8IG1fdHJhY2tTaXppbmdBbGdvcml0aG0uaGFzQW55UGVyY2VudFNpemVkUm93c0lu
ZGVmaW5pdGVIZWlnaHQoKSB8fCAobV90cmFja1NpemluZ0FsZ29yaXRobS5oYXNBbnlGbGV4aWJs
ZU1heFRyYWNrQnJlYWR0aCgpICYmICFtX2hhc0FueUJhc2VsaW5lQWxpZ25tZW50SXRlbSkgfHwg
bV9oYXNBc3BlY3RSYXRpb0Jsb2NrU2l6ZURlcGVuZGVudEl0ZW0pIHsKICAgICAgICAgY29tcHV0
ZVRyYWNrU2l6ZXNGb3JEZWZpbml0ZVNpemUoRm9yQ29sdW1ucywgYXZhaWxhYmxlU3BhY2VGb3JD
b2x1bW5zKTsKICAgICAgICAgY29tcHV0ZUNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbk9m
ZnNldChGb3JDb2x1bW5zLCBtX3RyYWNrU2l6aW5nQWxnb3JpdGhtLmZyZWVTcGFjZShGb3JDb2x1
bW5zKS52YWx1ZSgpLCBub25Db2xsYXBzZWRUcmFja3MoRm9yQ29sdW1ucykpOwogICAgICAgICBj
b21wdXRlVHJhY2tTaXplc0ZvckRlZmluaXRlU2l6ZShGb3JSb3dzLCBhdmFpbGFibGVTcGFjZUZv
clJvd3MpOwpAQCAtMTk5LDYgKzIwNCw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2so
Ym9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgICAgICAvLyBGSVhNRTogV2Ug
bWlnaHQgbmVlZCB0byBjYWNoZSB0aGUgaGFzRGVmaW5pdGVMb2dpY2FsSGVpZ2h0IGlmIHRoZSBj
YWxsIG9mIFJlbmRlckJsb2NrOjpoYXNEZWZpbml0ZUxvZ2ljYWxIZWlnaHQoKSBjYXVzZXMgYSBy
ZWxldmFudCBwZXJmb3JtYW5jZSByZWdyZXNzaW9uLgogICAgICAgICBib29sIGhhc0RlZmluaXRl
TG9naWNhbEhlaWdodCA9IFJlbmRlckJsb2NrOjpoYXNEZWZpbml0ZUxvZ2ljYWxIZWlnaHQoKSB8
fCBoYXNPdmVycmlkaW5nTG9naWNhbEhlaWdodCgpIHx8IGNvbXB1dGVDb250ZW50TG9naWNhbEhl
aWdodChNYWluT3JQcmVmZXJyZWRTaXplLCBzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKSwgc3RkOjpu
dWxsb3B0KTsKICAgICAgICAgbV9oYXNBbnlPcnRob2dvbmFsSXRlbSA9IGZhbHNlOworICAgICAg
ICBtX2hhc0FueUJhc2VsaW5lQWxpZ25tZW50SXRlbSA9IGZhbHNlOwogICAgICAgICBtX2hhc0Fz
cGVjdFJhdGlvQmxvY2tTaXplRGVwZW5kZW50SXRlbSA9IGZhbHNlOwogICAgICAgICBWZWN0b3I8
UmVuZGVyQm94Kj4gYXNwZWN0UmF0aW9CbG9ja1NpemVEZXBlbmRlbnRHcmlkSXRlbXM7CiAgICAg
ICAgIGZvciAoYXV0byogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLT5uZXh0U2libGluZ0JveCgpKSB7CkBAIC0yMjQsMTAgKzIzMCwxNCBAQCB2b2lkIFJlbmRl
ckdyaWQ6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAg
ICAgICAgICAgIC8vIGNhY2hlIGlzIG5lZWRlZCBmb3IgcGVyZm9ybWFuY2UgcmVsYXRlZCByZWFz
b25zIGR1ZSB0byB0aGUKICAgICAgICAgICAgIC8vIGNvc3Qgb2YgZXZhbHVhdGluZyB0aGUgaXRl
bSdzIHBhcnRpY2lwYXRpb24gaW4gYSBiYXNlbGluZQogICAgICAgICAgICAgLy8gY29udGV4dCBk
dXJpbmcgdGhlIHRyYWNrIHNpemluZyBhbGdvcml0aG0uCi0gICAgICAgICAgICBpZiAoaXNCYXNl
bGluZUFsaWdubWVudEZvckNoaWxkKCpjaGlsZCwgR3JpZENvbHVtbkF4aXMpKQorICAgICAgICAg
ICAgaWYgKGlzQmFzZWxpbmVBbGlnbm1lbnRGb3JDaGlsZCgqY2hpbGQsIEdyaWRDb2x1bW5BeGlz
KSkgeworICAgICAgICAgICAgICAgIG1faGFzQW55QmFzZWxpbmVBbGlnbm1lbnRJdGVtID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICBtX3RyYWNrU2l6aW5nQWxnb3JpdGhtLmNhY2hlQmFzZWxpbmVB
bGlnbmVkSXRlbSgqY2hpbGQsIEdyaWRDb2x1bW5BeGlzKTsKLSAgICAgICAgICAgIGlmIChpc0Jh
c2VsaW5lQWxpZ25tZW50Rm9yQ2hpbGQoKmNoaWxkLCBHcmlkUm93QXhpcykpCisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAoaXNCYXNlbGluZUFsaWdubWVudEZvckNoaWxkKCpjaGlsZCwg
R3JpZFJvd0F4aXMpKSB7CisgICAgICAgICAgICAgICAgbV9oYXNBbnlCYXNlbGluZUFsaWdubWVu
dEl0ZW0gPSB0cnVlOwogICAgICAgICAgICAgICAgIG1fdHJhY2tTaXppbmdBbGdvcml0aG0uY2Fj
aGVCYXNlbGluZUFsaWduZWRJdGVtKCpjaGlsZCwgR3JpZFJvd0F4aXMpOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgICAgIG1fYmFzZWxpbmVJdGVtc0NhY2hlZCA9IHRydWU7CiAgICAg
ICAgIHJlc2V0TG9naWNhbEhlaWdodEJlZm9yZUxheW91dElmTmVlZGVkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCBlYTY1YzRlYTgyMzFjMTMwYjEzZDBmM2QzNTNi
MThiODY2MWZlOTI1Li4yOWFlNTk0ODAwM2VlNmQyZGQ0NDNiNTY5OWRjYjJkN2MxN2I5NjI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTIwNyw2ICsyMDcsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9oYXNBbnlPcnRob2dvbmFsSXRlbSB7ZmFsc2V9OwogICAgIGJv
b2wgbV9oYXNBc3BlY3RSYXRpb0Jsb2NrU2l6ZURlcGVuZGVudEl0ZW0geyBmYWxzZSB9OwogICAg
IGJvb2wgbV9iYXNlbGluZUl0ZW1zQ2FjaGVkIHtmYWxzZX07CisgICAgYm9vbCBtX2hhc0FueUJh
c2VsaW5lQWxpZ25tZW50SXRlbSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggOGU0YTVlZDM0YjY4ODIyZGY1YjRiN2UwYzk5OWM3MmVjOTQwYTg1Ni4uN2Vj
ZDhkNzJjMTFmZWVmYjNiOTZiODJhODA0YjAxZDBjZmRjM2I2MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIxLTExLTE5ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W2Nzcy1ncmlkXSBUcmFjayBzaXppbmcgYWxnb3JpdGhtIG5vdCByZXBlYXRlZCBldmVuIGlmIHVz
ZWQgZmxleCBmcmFjdGlvbiB3b3VsZCBjaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcCB0d28gdGVzdHMgdGhhdCBhcmUgcGFzc2luZy4K
KyAKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTExLTE4ICBaaXJhbiBTdW4g
IDx6c3VuQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1hZ2VzIGFzIGdyaWQgaXRlbXMgc2hvdWxk
IHVzZSB0aGUgb3ZlcnJpZGluZ0xvZ2ljYWxXaWR0aCB3aGVuIGRlZmluZWQgdG8gY29tcHV0ZSB0
aGUgbG9naWNhbCBIZWlnaHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU5YTFmOGViYjMzNjBlOTVi
OTNkNjBkZTczM2ExMzM3MWJkZDQ3MjQuLjQ2ODlmMjE4NzQ0ZWJlNjk4MjU3MzA5MTIwYmU1NjFh
ODU0OWNjOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM5OCw4ICsxMzk4LDYgQEAgd2Via2l0
Lm9yZy9iLzIzMTAyMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9ncmlkLWl0ZW1zL3BlcmMKIHdlYmtpdC5vcmcvYi8yMzEwMjEgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1pdGVtcy9yZXBsYWNlZC1lbGVtZW50LTAx
NS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtbW9kZWwvZ3JpZC1hcmVhcy1vdmVyZmxvd2luZy1ncmlk
LWNvbnRhaW5lci0wMDkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbGF5b3V0LWFsZ29yaXRobS9mbGV4LXNpemlu
Zy1yb3dzLWluZGVmaW5pdGUtaGVpZ2h0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi8yMzEwMjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvbGF5b3V0LWFsZ29yaXRobS9ncmlkLXRlbXBsYXRlLWZsZXhpYmxlLXJlcnVuLXRyYWNrLXNp
emluZy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9tYXNvbnJ5L3RlbnRhdGl2ZS9tYXNvbnJ5LWFsaWduLWNvbnRl
bnQtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL21hc29ucnkvdGVudGF0aXZlL21hc29ucnktYWxpZ24tY29u
dGVudC0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbWFzb25yeS90ZW50YXRpdmUvbWFzb25yeS1hbGlnbi1j
b250ZW50LTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445025</attachid>
            <date>2021-11-23 06:02:24 -0800</date>
            <delta_ts>2021-11-23 07:17:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232617-20211123140223.patch</filename>
            <type>text/plain</type>
            <size>12036</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MxYmYxOGM1YThkMDBi
OTE0ZGM1MDc2NjY1NDMwODFjNWVmNTVlYS4uZmU3MjNmZWJmZGUwNGJlOTMxZThjMjdjYTJmMDJi
YjllMjY5MDMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTExLTE5ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBUcmFjayBzaXpp
bmcgYWxnb3JpdGhtIG5vdCByZXBlYXRlZCBldmVuIGlmIHVzZWQgZmxleCBmcmFjdGlvbiB3b3Vs
ZCBjaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjYxNworCisgICAgICAgIFJldmlld2VkIGJ5IEphdmllciBGZXJuYW5kZXouCisKKyAgICAg
ICAgQWNjb3JkaW5nIHRvIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC8jYWxnby1m
bGV4LXRyYWNrcywgd2hlbiByb3cgaGVpZ2h0IGlzCisgICAgICAgIGluZGVmaW5pdGUsIGZvciBl
YWNoIGdyaWQgaXRlbSB0aGF0IGNyb3NzZXMgYSBmbGV4aWJsZSB0cmFjaywgd2UgcnVuIHRoZSB0
cmFjayBzaXppbmcKKyAgICAgICAgYWxnb3JpdGhtIHVuZGVyIGEgbWF4LWNvbnRlbnQgY29uc3Ry
YWludCB0byBmaW5kIHRoZSBmbGV4IGZyYWN0aW9uLiBUaGVuIHdlIHdvcmsgb3V0CisgICAgICAg
IHRoZSBncmlkIGNvbnRhaW5lciBoZWlnaHQgYXMgZGVmaW5pdGUsIHdoaWNoIG1heSBjYXVzZSB0
aGUgZmxleCBmcmFjdGlvbiBjaGFuZ2UuIEF0IHRoaXMKKyAgICAgICAgcG9pbnQsIHdlIG5lZWQg
dG8gcmVwZWF0IHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtIGZvciByb3cgYW5kIGxheW91dCB0
aGUgZ3JpZCBmb3IgcmVhbC4KKyAgICAgICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9l
c24ndCByZXBlYXQgdGhlIHRyYWNrIHNpemluZyBhbGdvcml0aG0gZm9yIHJvdy4KKworICAgICAg
ICBUaGUgY29tcGxpY2F0aW9uIHdpdGggY2FsbGluZyBSZW5kZXJHcmlkOjpyZXBlYXRUcmFja3NT
aXppbmdJZk5lZWRlZCgpIGZvciBmbGV4IG1heC1zaXppbmcKKyAgICAgICAgaXMgdGhhdCBpdCBt
aWdodCBjaGFuZ2UgYSBncmlkIGl0ZW0ncyBzdGF0dXMgb2YgcGFydGljaXBhdGluZyBpbiBCYXNl
bGluZSBBbGlnbm1lbnQgZm9yCisgICAgICAgIGEgY3ljbGljIHNpemluZyBkZXBlbmRuY3kgY2Fz
ZSwgd2hpY2ggc2hvdWxkIGJlIGRlZmluaXRpdmVseSBleGNsdWRlZC4gU2VlCisgICAgICAgIGh0
dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMDQ2IGZvciBtb3JlIGRl
dGFpbHMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGhhbmRsZWQKKyAgICAgICAgaW4gYSBzZXBlcmF0
ZSBidWcuIFRoaXMgQ0wgb25seSBoYW5kbGUgdGVzdCBjYXNlcyB0aGF0IGRvbid0IGhhdmUgYmFz
ZWxpbmUgYWxpZ25tZW50IHNwZWNpZmllZC4gCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmlu
Zy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRy
YWNrU2l6aW5nQWxnb3JpdGhtOjppbml0aWFsaXplVHJhY2tTaXplcyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnNldHVwKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6cmVzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9H
cmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXBlYXRUcmFja3NTaXppbmdJ
Zk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRCbG9jayk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKwogMjAyMS0xMS0xOCAgWmlyYW4gU3Vu
ICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEltYWdlcyBhcyBncmlkIGl0ZW1zIHNob3Vs
ZCB1c2UgdGhlIG92ZXJyaWRpbmdMb2dpY2FsV2lkdGggd2hlbiBkZWZpbmVkIHRvIGNvbXB1dGUg
dGhlIGxvZ2ljYWwgSGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9H
cmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCmluZGV4IDI5ODBkZjA0NzdhMWExYjQzMjgyMjRj
MTY5OGE2NzgwNTVjYWU3YzQuLjAxYzNjOTlkOTM2MjVhNmRiYTBhY2RiZjMyZDgwNjdlYTQyYzIz
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdB
bGdvcml0aG0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG0uY3BwCkBAIC0xMTY1LDYgKzExNjUsNyBAQCB2b2lkIEdyaWRUcmFja1Npemlu
Z0FsZ29yaXRobTo6aW5pdGlhbGl6ZVRyYWNrU2l6ZXMoKQogICAgIEFTU0VSVChtX2ZsZXhpYmxl
U2l6ZWRUcmFja3NJbmRleC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChtX2F1dG9TaXplZFRyYWNr
c0ZvclN0cmV0Y2hJbmRleC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9oYXNQZXJjZW50U2l6
ZWRSb3dzSW5kZWZpbml0ZUhlaWdodCk7CisgICAgQVNTRVJUKCFtX2hhc0ZsZXhpYmxlTWF4VHJh
Y2tCcmVhZHRoKTsKIAogICAgIFZlY3RvcjxHcmlkVHJhY2s+JiBhbGxUcmFja3MgPSB0cmFja3Mo
bV9kaXJlY3Rpb24pOwogICAgIGNvbnN0IGJvb2wgaW5kZWZpbml0ZUhlaWdodCA9IG1fZGlyZWN0
aW9uID09IEZvclJvd3MgJiYgIW1fcmVuZGVyR3JpZC0+aGFzRGVmaW5pdGVMb2dpY2FsSGVpZ2h0
KCk7CkBAIC0xMTg3LDkgKzExODgsMTQgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06
OmluaXRpYWxpemVUcmFja1NpemVzKCkKICAgICAgICAgaWYgKHRyYWNrU2l6ZS5oYXNBdXRvTWF4
VHJhY2tCcmVhZHRoKCkgJiYgIXRyYWNrU2l6ZS5pc0ZpdENvbnRlbnQoKSkKICAgICAgICAgICAg
IG1fYXV0b1NpemVkVHJhY2tzRm9yU3RyZXRjaEluZGV4LmFwcGVuZChpKTsKIAotICAgICAgICBp
ZiAoIW1faGFzUGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQgJiYgaW5kZWZpbml0ZUhl
aWdodCkgeworICAgICAgICBpZiAoaW5kZWZpbml0ZUhlaWdodCkgewogICAgICAgICAgICAgYXV0
byYgcmF3VHJhY2tTaXplID0gcmF3R3JpZFRyYWNrU2l6ZShtX2RpcmVjdGlvbiwgaSk7Ci0gICAg
ICAgICAgICBpZiAocmF3VHJhY2tTaXplLm1pblRyYWNrQnJlYWR0aCgpLmlzUGVyY2VudGFnZSgp
IHx8IHJhd1RyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5pc1BlcmNlbnRhZ2UoKSkKKyAgICAg
ICAgICAgIC8vIFNldCB0aGUgZmxhZyBmb3IgcmVwZWF0aW5nIHRoZSB0cmFjayBzaXppbmcgYWxn
b3JpdGhtLiBGb3IgZmxleGlibGUgdHJhY2tzLCBhcyBwZXIgc3BlYyBodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3NzLWdyaWQvI2FsZ28tZmxleC10cmFja3MsCisgICAgICAgICAgICAvLyBpbiBj
bGF1c2UgImlmIHRoZSBmcmVlIHNwYWNlIGlzIGFuIGluZGVmaW5pdGUgbGVuZ3RoOiIsIGl0IHN0
YXRlcyB0aGF0ICJJZiB1c2luZyB0aGlzIGZsZXggZnJhY3Rpb24gd291bGQgY2F1c2UgdGhlIGdy
aWQgdG8gYmUgc21hbGxlciB0aGFuCisgICAgICAgICAgICAvLyB0aGUgZ3JpZCBjb250YWluZXLi
gJlzIG1pbi13aWR0aC9oZWlnaHQgKG9yIGxhcmdlciB0aGFuIHRoZSBncmlkIGNvbnRhaW5lcuKA
mXMgbWF4LXdpZHRoL2hlaWdodCksIHRoZW4gcmVkbyB0aGlzIHN0ZXAiLgorICAgICAgICAgICAg
aWYgKCFtX2hhc0ZsZXhpYmxlTWF4VHJhY2tCcmVhZHRoICYmIHJhd1RyYWNrU2l6ZS5tYXhUcmFj
a0JyZWFkdGgoKS5pc0ZsZXgoKSkKKyAgICAgICAgICAgICAgICBtX2hhc0ZsZXhpYmxlTWF4VHJh
Y2tCcmVhZHRoID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICghbV9oYXNQZXJjZW50U2l6ZWRSb3dz
SW5kZWZpbml0ZUhlaWdodCAmJiAocmF3VHJhY2tTaXplLm1pblRyYWNrQnJlYWR0aCgpLmlzUGVy
Y2VudGFnZSgpIHx8IHJhd1RyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5pc1BlcmNlbnRhZ2Uo
KSkpCiAgICAgICAgICAgICAgICAgbV9oYXNQZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhlaWdo
dCA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzYxLDYgKzEzNjcsNyBAQCB2b2lkIEdy
aWRUcmFja1NpemluZ0FsZ29yaXRobTo6c2V0dXAoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbiwgdW5zaWduZQogCiAgICAgbV9uZWVkc1NldHVwID0gZmFsc2U7CiAgICAgbV9oYXNQ
ZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhlaWdodCA9IGZhbHNlOworICAgIG1faGFzRmxleGli
bGVNYXhUcmFja0JyZWFkdGggPSBmYWxzZTsKIAogICAgIGNvbXB1dGVCYXNlbGluZUFsaWdubWVu
dENvbnRleHQoKTsKIH0KQEAgLTE0MzIsNiArMTQzOSw3IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtOjpyZXNldCgpCiAgICAgc2V0QXZhaWxhYmxlU3BhY2UoRm9yUm93cywgc3RkOjpu
dWxsb3B0KTsKICAgICBzZXRBdmFpbGFibGVTcGFjZShGb3JDb2x1bW5zLCBzdGQ6Om51bGxvcHQp
OwogICAgIG1faGFzUGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQgPSBmYWxzZTsKKyAg
ICBtX2hhc0ZsZXhpYmxlTWF4VHJhY2tCcmVhZHRoID0gZmFsc2U7CiB9CiAKICNpZiBBU1NFUlRf
RU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1Np
emluZ0FsZ29yaXRobS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1Npemlu
Z0FsZ29yaXRobS5oCmluZGV4IDUxZDI3ZjljZjhlYjlkNWIwN2M4ZDdmMGZiYzE4OTQ1YTQ0ODI1
NTAuLjYwNzBhYmUwYWI2ZWZkNTUzM2I3ZDZkMGY2NzJhMDRmOTEzM2QwOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmgKQEAg
LTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlVHJhY2tCYXNl
ZFNpemUoKSBjb25zdDsKIAogICAgIGJvb2wgaGFzQW55UGVyY2VudFNpemVkUm93c0luZGVmaW5p
dGVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRl
SGVpZ2h0OyB9CisgICAgYm9vbCBoYXNBbnlGbGV4aWJsZU1heFRyYWNrQnJlYWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1faGFzRmxleGlibGVNYXhUcmFja0JyZWFkdGg7IH0KIAogI2lmIEFTU0VSVF9F
TkFCTEVECiAgICAgYm9vbCB0cmFja3NBcmVXaWRlclRoYW5NaW5UcmFja0JyZWFkdGgoKSBjb25z
dDsKQEAgLTE5OSw2ICsyMDAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgd2FzU2V0dXAoKSBjb25z
dCB7IHJldHVybiAhIW1fc3RyYXRlZ3k7IH0KICAgICBib29sIG1fbmVlZHNTZXR1cCB7IHRydWUg
fTsKICAgICBib29sIG1faGFzUGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9oYXNGbGV4aWJsZU1heFRyYWNrQnJlYWR0aCB7IGZhbHNlIH07CiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBtX2F2YWlsYWJsZVNwYWNlUm93czsKICAgICBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IG1fYXZhaWxhYmxlU3BhY2VDb2x1bW5zOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggMmJmODNkMzNkYmVjNDk4OTA1
Mzk3NDhiMjgyNDU1YzU0N2YwMTYzNC4uY2M0YjM3ODY3NDhlNmFiNzBiM2ZmMjk4ZjAzMGNjOTg0
NDJkYTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTYx
LDcgKzE2MSwxNCBAQCB2b2lkIFJlbmRlckdyaWQ6OnJlcGVhdFRyYWNrc1NpemluZ0lmTmVlZGVk
KExheW91dFVuaXQgYXZhaWxhYmxlU3BhY2VGb3JDb2x1bW5zLAogICAgIC8vIGEgbmV3IGN5Y2xl
IG9mIHRoZSBzaXppbmcgYWxnb3JpdGhtOyB0aGVyZSBtYXkgYmUgbW9yZS4gSW4gYWRkaXRpb24s
IG5vdCBhbGwgdGhlCiAgICAgLy8gY2FzZXMgd2l0aCBvcnRob2dvbmFsIGZsb3dzIHJlcXVpcmUg
dGhpcyBleHRyYSBjeWNsZTsgd2UgbmVlZCBhIG1vcmUgc3BlY2lmaWMKICAgICAvLyBjb25kaXRp
b24gdG8gZGV0ZWN0IHdoZXRoZXIgY2hpbGQncyBtaW4tY29udGVudCBjb250cmlidXRpb24gaGFz
IGNoYW5nZWQgb3Igbm90LgotICAgIGlmIChtX2hhc0FueU9ydGhvZ29uYWxJdGVtIHx8IG1fdHJh
Y2tTaXppbmdBbGdvcml0aG0uaGFzQW55UGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQo
KSB8fCBtX2hhc0FzcGVjdFJhdGlvQmxvY2tTaXplRGVwZW5kZW50SXRlbSkgeworICAgIC8vIFRo
ZSBjb21wbGljYXRpb24gd2l0aCByZXBlYXRpbmcgdGhlIHRyYWNrIHNpemluZyBhbGdvcml0aG0g
Zm9yIGZsZXggbWF4LXNpemluZyBpcyB0aGF0CisgICAgLy8gaXQgbWlnaHQgY2hhbmdlIGEgZ3Jp
ZCBpdGVtJ3Mgc3RhdHVzIG9mIHBhcnRpY2lwYXRpbmcgaW4gQmFzZWxpbmUgQWxpZ25tZW50IGZv
cgorICAgIC8vIGEgY3ljbGljIHNpemluZyBkZXBlbmRuY3kgY2FzZSwgd2hpY2ggc2hvdWxkIGJl
IGRlZmluaXRpdmVseSBleGNsdWRlZC4gU2VlCisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMwNDYgZm9yIGRldGFpbHMuCisgICAgLy8gRklYTUU6IHdl
IGFyZSBhdm9pZGluZyByZXBlYXRpbmcgdGhlIHRyYWNrIHNpemluZyBhbGdvcml0aG0gZm9yIGdy
aWQgaXRlbSB3aXRoIGJhc2VsaW5lIGFsaWdubWVudAorICAgIC8vIGhlcmUgaW4gdGhlIGNhc2Ug
b2YgdXNpbmcgZmxleCBtYXgtc2l6aW5nIGZ1bmN0aW9ucy4gV2UgcHJvYmFibHkgYWxzbyBuZWVk
IHRvIGludmVzdGlnYXRlIHdoZXRoZXIKKyAgICAvLyBpdCBpcyBhcHBsaWNhYmxlIGZvciB0aGUg
Y2FzZSBvZiBwZXJjZW50LXNpemVkIHJvd3Mgd2l0aCBpbmRlZmluaXRlIGhlaWdodCBhcyB3ZWxs
LgorICAgIGlmIChtX2hhc0FueU9ydGhvZ29uYWxJdGVtIHx8IG1fdHJhY2tTaXppbmdBbGdvcml0
aG0uaGFzQW55UGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQoKSB8fCAobV90cmFja1Np
emluZ0FsZ29yaXRobS5oYXNBbnlGbGV4aWJsZU1heFRyYWNrQnJlYWR0aCgpICYmICFtX2hhc0Fu
eUJhc2VsaW5lQWxpZ25tZW50SXRlbSkgfHwgbV9oYXNBc3BlY3RSYXRpb0Jsb2NrU2l6ZURlcGVu
ZGVudEl0ZW0pIHsKICAgICAgICAgY29tcHV0ZVRyYWNrU2l6ZXNGb3JEZWZpbml0ZVNpemUoRm9y
Q29sdW1ucywgYXZhaWxhYmxlU3BhY2VGb3JDb2x1bW5zKTsKICAgICAgICAgY29tcHV0ZUNvbnRl
bnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbk9mZnNldChGb3JDb2x1bW5zLCBtX3RyYWNrU2l6aW5n
QWxnb3JpdGhtLmZyZWVTcGFjZShGb3JDb2x1bW5zKS52YWx1ZSgpLCBub25Db2xsYXBzZWRUcmFj
a3MoRm9yQ29sdW1ucykpOwogICAgICAgICBjb21wdXRlVHJhY2tTaXplc0ZvckRlZmluaXRlU2l6
ZShGb3JSb3dzLCBhdmFpbGFibGVTcGFjZUZvclJvd3MpOwpAQCAtMTk5LDYgKzIwNiw3IEBAIHZv
aWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRV
bml0KQogICAgICAgICAvLyBGSVhNRTogV2UgbWlnaHQgbmVlZCB0byBjYWNoZSB0aGUgaGFzRGVm
aW5pdGVMb2dpY2FsSGVpZ2h0IGlmIHRoZSBjYWxsIG9mIFJlbmRlckJsb2NrOjpoYXNEZWZpbml0
ZUxvZ2ljYWxIZWlnaHQoKSBjYXVzZXMgYSByZWxldmFudCBwZXJmb3JtYW5jZSByZWdyZXNzaW9u
LgogICAgICAgICBib29sIGhhc0RlZmluaXRlTG9naWNhbEhlaWdodCA9IFJlbmRlckJsb2NrOjpo
YXNEZWZpbml0ZUxvZ2ljYWxIZWlnaHQoKSB8fCBoYXNPdmVycmlkaW5nTG9naWNhbEhlaWdodCgp
IHx8IGNvbXB1dGVDb250ZW50TG9naWNhbEhlaWdodChNYWluT3JQcmVmZXJyZWRTaXplLCBzdHls
ZSgpLmxvZ2ljYWxIZWlnaHQoKSwgc3RkOjpudWxsb3B0KTsKICAgICAgICAgbV9oYXNBbnlPcnRo
b2dvbmFsSXRlbSA9IGZhbHNlOworICAgICAgICBtX2hhc0FueUJhc2VsaW5lQWxpZ25tZW50SXRl
bSA9IGZhbHNlOwogICAgICAgICBtX2hhc0FzcGVjdFJhdGlvQmxvY2tTaXplRGVwZW5kZW50SXRl
bSA9IGZhbHNlOwogICAgICAgICBWZWN0b3I8UmVuZGVyQm94Kj4gYXNwZWN0UmF0aW9CbG9ja1Np
emVEZXBlbmRlbnRHcmlkSXRlbXM7CiAgICAgICAgIGZvciAoYXV0byogY2hpbGQgPSBmaXJzdENo
aWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7CkBAIC0y
MjQsMTAgKzIzMiwxNCBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlv
dXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICAgICAgICAgIC8vIGNhY2hlIGlzIG5lZWRlZCBm
b3IgcGVyZm9ybWFuY2UgcmVsYXRlZCByZWFzb25zIGR1ZSB0byB0aGUKICAgICAgICAgICAgIC8v
IGNvc3Qgb2YgZXZhbHVhdGluZyB0aGUgaXRlbSdzIHBhcnRpY2lwYXRpb24gaW4gYSBiYXNlbGlu
ZQogICAgICAgICAgICAgLy8gY29udGV4dCBkdXJpbmcgdGhlIHRyYWNrIHNpemluZyBhbGdvcml0
aG0uCi0gICAgICAgICAgICBpZiAoaXNCYXNlbGluZUFsaWdubWVudEZvckNoaWxkKCpjaGlsZCwg
R3JpZENvbHVtbkF4aXMpKQorICAgICAgICAgICAgaWYgKGlzQmFzZWxpbmVBbGlnbm1lbnRGb3JD
aGlsZCgqY2hpbGQsIEdyaWRDb2x1bW5BeGlzKSkgeworICAgICAgICAgICAgICAgIG1faGFzQW55
QmFzZWxpbmVBbGlnbm1lbnRJdGVtID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBtX3RyYWNrU2l6
aW5nQWxnb3JpdGhtLmNhY2hlQmFzZWxpbmVBbGlnbmVkSXRlbSgqY2hpbGQsIEdyaWRDb2x1bW5B
eGlzKTsKLSAgICAgICAgICAgIGlmIChpc0Jhc2VsaW5lQWxpZ25tZW50Rm9yQ2hpbGQoKmNoaWxk
LCBHcmlkUm93QXhpcykpCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNCYXNlbGlu
ZUFsaWdubWVudEZvckNoaWxkKCpjaGlsZCwgR3JpZFJvd0F4aXMpKSB7CisgICAgICAgICAgICAg
ICAgbV9oYXNBbnlCYXNlbGluZUFsaWdubWVudEl0ZW0gPSB0cnVlOwogICAgICAgICAgICAgICAg
IG1fdHJhY2tTaXppbmdBbGdvcml0aG0uY2FjaGVCYXNlbGluZUFsaWduZWRJdGVtKCpjaGlsZCwg
R3JpZFJvd0F4aXMpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIG1fYmFzZWxp
bmVJdGVtc0NhY2hlZCA9IHRydWU7CiAgICAgICAgIHJlc2V0TG9naWNhbEhlaWdodEJlZm9yZUxh
eW91dElmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCBl
YTY1YzRlYTgyMzFjMTMwYjEzZDBmM2QzNTNiMThiODY2MWZlOTI1Li4yOWFlNTk0ODAwM2VlNmQy
ZGQ0NDNiNTY5OWRjYjJkN2MxN2I5NjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
cmlkLmgKQEAgLTIwNyw2ICsyMDcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNBbnlPcnRo
b2dvbmFsSXRlbSB7ZmFsc2V9OwogICAgIGJvb2wgbV9oYXNBc3BlY3RSYXRpb0Jsb2NrU2l6ZURl
cGVuZGVudEl0ZW0geyBmYWxzZSB9OwogICAgIGJvb2wgbV9iYXNlbGluZUl0ZW1zQ2FjaGVkIHtm
YWxzZX07CisgICAgYm9vbCBtX2hhc0FueUJhc2VsaW5lQWxpZ25tZW50SXRlbSB7IGZhbHNlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGU0YTVlZDM0YjY4ODIyZGY1
YjRiN2UwYzk5OWM3MmVjOTQwYTg1Ni4uOGNhMWU3M2Q4NTFmMjk5OGJjN2Y0ZjUzMGE3Y2FmYjRl
NDgxYTQ3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTExLTE5ICBaaXJhbiBTdW4gIDx6
c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBUcmFjayBzaXppbmcgYWxnb3Jp
dGhtIG5vdCByZXBlYXRlZCBldmVuIGlmIHVzZWQgZmxleCBmcmFjdGlvbiB3b3VsZCBjaGFuZ2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYxNwor
CisgICAgICAgIFJldmlld2VkIGJ5IEphdmllciBGZXJuYW5kZXouCisKKyAgICAgICAgVW5za2lw
IHR3byB0ZXN0cyB0aGF0IGFyZSBwYXNzaW5nLgorIAorICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMjEtMTEtMTggIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBJbWFnZXMgYXMgZ3JpZCBpdGVtcyBzaG91bGQgdXNlIHRoZSBvdmVycmlkaW5nTG9naWNhbFdp
ZHRoIHdoZW4gZGVmaW5lZCB0byBjb21wdXRlIHRoZSBsb2dpY2FsIEhlaWdodApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggZTlhMWY4ZWJiMzM2MGU5NWI5M2Q2MGRlNzMzYTEzMzcxYmRkNDcyNC4uNDY4
OWYyMTg3NDRlYmU2OTgyNTczMDkxMjBiZTU2MWE4NTQ5Y2M5YiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0xMzk4LDggKzEzOTgsNiBAQCB3ZWJraXQub3JnL2IvMjMxMDIxIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtaXRlbXMvcGVyYwogd2Via2l0Lm9y
Zy9iLzIzMTAyMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9n
cmlkLWl0ZW1zL3JlcGxhY2VkLWVsZW1lbnQtMDE1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1tb2Rl
bC9ncmlkLWFyZWFzLW92ZXJmbG93aW5nLWdyaWQtY29udGFpbmVyLTAwOS5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9sYXlvdXQtYWxnb3JpdGhtL2ZsZXgtc2l6aW5nLXJvd3MtaW5kZWZpbml0ZS1oZWlnaHQuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIzMTAyMSBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9sYXlvdXQtYWxnb3JpdGhtL2dyaWQtdGVt
cGxhdGUtZmxleGlibGUtcmVydW4tdHJhY2stc2l6aW5nLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL21hc29ucnkv
dGVudGF0aXZlL21hc29ucnktYWxpZ24tY29udGVudC0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbWFzb25y
eS90ZW50YXRpdmUvbWFzb25yeS1hbGlnbi1jb250ZW50LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9tYXNv
bnJ5L3RlbnRhdGl2ZS9tYXNvbnJ5LWFsaWduLWNvbnRlbnQtMDAzLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445031</attachid>
            <date>2021-11-23 07:17:39 -0800</date>
            <delta_ts>2021-11-23 07:39:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232617-20211123151738.patch</filename>
            <type>text/plain</type>
            <size>12202</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MxYmYxOGM1YThkMDBi
OTE0ZGM1MDc2NjY1NDMwODFjNWVmNTVlYS4uZmU3MjNmZWJmZGUwNGJlOTMxZThjMjdjYTJmMDJi
YjllMjY5MDMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTExLTE5ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBUcmFjayBzaXpp
bmcgYWxnb3JpdGhtIG5vdCByZXBlYXRlZCBldmVuIGlmIHVzZWQgZmxleCBmcmFjdGlvbiB3b3Vs
ZCBjaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjYxNworCisgICAgICAgIFJldmlld2VkIGJ5IEphdmllciBGZXJuYW5kZXouCisKKyAgICAg
ICAgQWNjb3JkaW5nIHRvIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC8jYWxnby1m
bGV4LXRyYWNrcywgd2hlbiByb3cgaGVpZ2h0IGlzCisgICAgICAgIGluZGVmaW5pdGUsIGZvciBl
YWNoIGdyaWQgaXRlbSB0aGF0IGNyb3NzZXMgYSBmbGV4aWJsZSB0cmFjaywgd2UgcnVuIHRoZSB0
cmFjayBzaXppbmcKKyAgICAgICAgYWxnb3JpdGhtIHVuZGVyIGEgbWF4LWNvbnRlbnQgY29uc3Ry
YWludCB0byBmaW5kIHRoZSBmbGV4IGZyYWN0aW9uLiBUaGVuIHdlIHdvcmsgb3V0CisgICAgICAg
IHRoZSBncmlkIGNvbnRhaW5lciBoZWlnaHQgYXMgZGVmaW5pdGUsIHdoaWNoIG1heSBjYXVzZSB0
aGUgZmxleCBmcmFjdGlvbiBjaGFuZ2UuIEF0IHRoaXMKKyAgICAgICAgcG9pbnQsIHdlIG5lZWQg
dG8gcmVwZWF0IHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtIGZvciByb3cgYW5kIGxheW91dCB0
aGUgZ3JpZCBmb3IgcmVhbC4KKyAgICAgICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9l
c24ndCByZXBlYXQgdGhlIHRyYWNrIHNpemluZyBhbGdvcml0aG0gZm9yIHJvdy4KKworICAgICAg
ICBUaGUgY29tcGxpY2F0aW9uIHdpdGggY2FsbGluZyBSZW5kZXJHcmlkOjpyZXBlYXRUcmFja3NT
aXppbmdJZk5lZWRlZCgpIGZvciBmbGV4IG1heC1zaXppbmcKKyAgICAgICAgaXMgdGhhdCBpdCBt
aWdodCBjaGFuZ2UgYSBncmlkIGl0ZW0ncyBzdGF0dXMgb2YgcGFydGljaXBhdGluZyBpbiBCYXNl
bGluZSBBbGlnbm1lbnQgZm9yCisgICAgICAgIGEgY3ljbGljIHNpemluZyBkZXBlbmRuY3kgY2Fz
ZSwgd2hpY2ggc2hvdWxkIGJlIGRlZmluaXRpdmVseSBleGNsdWRlZC4gU2VlCisgICAgICAgIGh0
dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMDQ2IGZvciBtb3JlIGRl
dGFpbHMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGhhbmRsZWQKKyAgICAgICAgaW4gYSBzZXBlcmF0
ZSBidWcuIFRoaXMgQ0wgb25seSBoYW5kbGUgdGVzdCBjYXNlcyB0aGF0IGRvbid0IGhhdmUgYmFz
ZWxpbmUgYWxpZ25tZW50IHNwZWNpZmllZC4gCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmlu
Zy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRy
YWNrU2l6aW5nQWxnb3JpdGhtOjppbml0aWFsaXplVHJhY2tTaXplcyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnNldHVwKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6cmVzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9H
cmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXBlYXRUcmFja3NTaXppbmdJ
Zk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRCbG9jayk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKwogMjAyMS0xMS0xOCAgWmlyYW4gU3Vu
ICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEltYWdlcyBhcyBncmlkIGl0ZW1zIHNob3Vs
ZCB1c2UgdGhlIG92ZXJyaWRpbmdMb2dpY2FsV2lkdGggd2hlbiBkZWZpbmVkIHRvIGNvbXB1dGUg
dGhlIGxvZ2ljYWwgSGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9H
cmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCmluZGV4IDI5ODBkZjA0NzdhMWExYjQzMjgyMjRj
MTY5OGE2NzgwNTVjYWU3YzQuLjAxYzNjOTlkOTM2MjVhNmRiYTBhY2RiZjMyZDgwNjdlYTQyYzIz
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdB
bGdvcml0aG0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG0uY3BwCkBAIC0xMTY1LDYgKzExNjUsNyBAQCB2b2lkIEdyaWRUcmFja1Npemlu
Z0FsZ29yaXRobTo6aW5pdGlhbGl6ZVRyYWNrU2l6ZXMoKQogICAgIEFTU0VSVChtX2ZsZXhpYmxl
U2l6ZWRUcmFja3NJbmRleC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChtX2F1dG9TaXplZFRyYWNr
c0ZvclN0cmV0Y2hJbmRleC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9oYXNQZXJjZW50U2l6
ZWRSb3dzSW5kZWZpbml0ZUhlaWdodCk7CisgICAgQVNTRVJUKCFtX2hhc0ZsZXhpYmxlTWF4VHJh
Y2tCcmVhZHRoKTsKIAogICAgIFZlY3RvcjxHcmlkVHJhY2s+JiBhbGxUcmFja3MgPSB0cmFja3Mo
bV9kaXJlY3Rpb24pOwogICAgIGNvbnN0IGJvb2wgaW5kZWZpbml0ZUhlaWdodCA9IG1fZGlyZWN0
aW9uID09IEZvclJvd3MgJiYgIW1fcmVuZGVyR3JpZC0+aGFzRGVmaW5pdGVMb2dpY2FsSGVpZ2h0
KCk7CkBAIC0xMTg3LDkgKzExODgsMTQgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06
OmluaXRpYWxpemVUcmFja1NpemVzKCkKICAgICAgICAgaWYgKHRyYWNrU2l6ZS5oYXNBdXRvTWF4
VHJhY2tCcmVhZHRoKCkgJiYgIXRyYWNrU2l6ZS5pc0ZpdENvbnRlbnQoKSkKICAgICAgICAgICAg
IG1fYXV0b1NpemVkVHJhY2tzRm9yU3RyZXRjaEluZGV4LmFwcGVuZChpKTsKIAotICAgICAgICBp
ZiAoIW1faGFzUGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQgJiYgaW5kZWZpbml0ZUhl
aWdodCkgeworICAgICAgICBpZiAoaW5kZWZpbml0ZUhlaWdodCkgewogICAgICAgICAgICAgYXV0
byYgcmF3VHJhY2tTaXplID0gcmF3R3JpZFRyYWNrU2l6ZShtX2RpcmVjdGlvbiwgaSk7Ci0gICAg
ICAgICAgICBpZiAocmF3VHJhY2tTaXplLm1pblRyYWNrQnJlYWR0aCgpLmlzUGVyY2VudGFnZSgp
IHx8IHJhd1RyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5pc1BlcmNlbnRhZ2UoKSkKKyAgICAg
ICAgICAgIC8vIFNldCB0aGUgZmxhZyBmb3IgcmVwZWF0aW5nIHRoZSB0cmFjayBzaXppbmcgYWxn
b3JpdGhtLiBGb3IgZmxleGlibGUgdHJhY2tzLCBhcyBwZXIgc3BlYyBodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3NzLWdyaWQvI2FsZ28tZmxleC10cmFja3MsCisgICAgICAgICAgICAvLyBpbiBj
bGF1c2UgImlmIHRoZSBmcmVlIHNwYWNlIGlzIGFuIGluZGVmaW5pdGUgbGVuZ3RoOiIsIGl0IHN0
YXRlcyB0aGF0ICJJZiB1c2luZyB0aGlzIGZsZXggZnJhY3Rpb24gd291bGQgY2F1c2UgdGhlIGdy
aWQgdG8gYmUgc21hbGxlciB0aGFuCisgICAgICAgICAgICAvLyB0aGUgZ3JpZCBjb250YWluZXLi
gJlzIG1pbi13aWR0aC9oZWlnaHQgKG9yIGxhcmdlciB0aGFuIHRoZSBncmlkIGNvbnRhaW5lcuKA
mXMgbWF4LXdpZHRoL2hlaWdodCksIHRoZW4gcmVkbyB0aGlzIHN0ZXAiLgorICAgICAgICAgICAg
aWYgKCFtX2hhc0ZsZXhpYmxlTWF4VHJhY2tCcmVhZHRoICYmIHJhd1RyYWNrU2l6ZS5tYXhUcmFj
a0JyZWFkdGgoKS5pc0ZsZXgoKSkKKyAgICAgICAgICAgICAgICBtX2hhc0ZsZXhpYmxlTWF4VHJh
Y2tCcmVhZHRoID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICghbV9oYXNQZXJjZW50U2l6ZWRSb3dz
SW5kZWZpbml0ZUhlaWdodCAmJiAocmF3VHJhY2tTaXplLm1pblRyYWNrQnJlYWR0aCgpLmlzUGVy
Y2VudGFnZSgpIHx8IHJhd1RyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5pc1BlcmNlbnRhZ2Uo
KSkpCiAgICAgICAgICAgICAgICAgbV9oYXNQZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhlaWdo
dCA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzYxLDYgKzEzNjcsNyBAQCB2b2lkIEdy
aWRUcmFja1NpemluZ0FsZ29yaXRobTo6c2V0dXAoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbiwgdW5zaWduZQogCiAgICAgbV9uZWVkc1NldHVwID0gZmFsc2U7CiAgICAgbV9oYXNQ
ZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhlaWdodCA9IGZhbHNlOworICAgIG1faGFzRmxleGli
bGVNYXhUcmFja0JyZWFkdGggPSBmYWxzZTsKIAogICAgIGNvbXB1dGVCYXNlbGluZUFsaWdubWVu
dENvbnRleHQoKTsKIH0KQEAgLTE0MzIsNiArMTQzOSw3IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtOjpyZXNldCgpCiAgICAgc2V0QXZhaWxhYmxlU3BhY2UoRm9yUm93cywgc3RkOjpu
dWxsb3B0KTsKICAgICBzZXRBdmFpbGFibGVTcGFjZShGb3JDb2x1bW5zLCBzdGQ6Om51bGxvcHQp
OwogICAgIG1faGFzUGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQgPSBmYWxzZTsKKyAg
ICBtX2hhc0ZsZXhpYmxlTWF4VHJhY2tCcmVhZHRoID0gZmFsc2U7CiB9CiAKICNpZiBBU1NFUlRf
RU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1Np
emluZ0FsZ29yaXRobS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1Npemlu
Z0FsZ29yaXRobS5oCmluZGV4IDUxZDI3ZjljZjhlYjlkNWIwN2M4ZDdmMGZiYzE4OTQ1YTQ0ODI1
NTAuLjYwNzBhYmUwYWI2ZWZkNTUzM2I3ZDZkMGY2NzJhMDRmOTEzM2QwOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmgKQEAg
LTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlVHJhY2tCYXNl
ZFNpemUoKSBjb25zdDsKIAogICAgIGJvb2wgaGFzQW55UGVyY2VudFNpemVkUm93c0luZGVmaW5p
dGVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRl
SGVpZ2h0OyB9CisgICAgYm9vbCBoYXNBbnlGbGV4aWJsZU1heFRyYWNrQnJlYWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1faGFzRmxleGlibGVNYXhUcmFja0JyZWFkdGg7IH0KIAogI2lmIEFTU0VSVF9F
TkFCTEVECiAgICAgYm9vbCB0cmFja3NBcmVXaWRlclRoYW5NaW5UcmFja0JyZWFkdGgoKSBjb25z
dDsKQEAgLTE5OSw2ICsyMDAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgd2FzU2V0dXAoKSBjb25z
dCB7IHJldHVybiAhIW1fc3RyYXRlZ3k7IH0KICAgICBib29sIG1fbmVlZHNTZXR1cCB7IHRydWUg
fTsKICAgICBib29sIG1faGFzUGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9oYXNGbGV4aWJsZU1heFRyYWNrQnJlYWR0aCB7IGZhbHNlIH07CiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBtX2F2YWlsYWJsZVNwYWNlUm93czsKICAgICBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IG1fYXZhaWxhYmxlU3BhY2VDb2x1bW5zOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggMmJmODNkMzNkYmVjNDk4OTA1
Mzk3NDhiMjgyNDU1YzU0N2YwMTYzNC4uYmZmOTUyMDYzZjUzODAyZDYyMDA1NmQxMTQxYmRjNDlj
ODRmMTY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTYx
LDcgKzE2MSwxNCBAQCB2b2lkIFJlbmRlckdyaWQ6OnJlcGVhdFRyYWNrc1NpemluZ0lmTmVlZGVk
KExheW91dFVuaXQgYXZhaWxhYmxlU3BhY2VGb3JDb2x1bW5zLAogICAgIC8vIGEgbmV3IGN5Y2xl
IG9mIHRoZSBzaXppbmcgYWxnb3JpdGhtOyB0aGVyZSBtYXkgYmUgbW9yZS4gSW4gYWRkaXRpb24s
IG5vdCBhbGwgdGhlCiAgICAgLy8gY2FzZXMgd2l0aCBvcnRob2dvbmFsIGZsb3dzIHJlcXVpcmUg
dGhpcyBleHRyYSBjeWNsZTsgd2UgbmVlZCBhIG1vcmUgc3BlY2lmaWMKICAgICAvLyBjb25kaXRp
b24gdG8gZGV0ZWN0IHdoZXRoZXIgY2hpbGQncyBtaW4tY29udGVudCBjb250cmlidXRpb24gaGFz
IGNoYW5nZWQgb3Igbm90LgotICAgIGlmIChtX2hhc0FueU9ydGhvZ29uYWxJdGVtIHx8IG1fdHJh
Y2tTaXppbmdBbGdvcml0aG0uaGFzQW55UGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQo
KSB8fCBtX2hhc0FzcGVjdFJhdGlvQmxvY2tTaXplRGVwZW5kZW50SXRlbSkgeworICAgIC8vIFRo
ZSBjb21wbGljYXRpb24gd2l0aCByZXBlYXRpbmcgdGhlIHRyYWNrIHNpemluZyBhbGdvcml0aG0g
Zm9yIGZsZXggbWF4LXNpemluZyBpcyB0aGF0CisgICAgLy8gaXQgbWlnaHQgY2hhbmdlIGEgZ3Jp
ZCBpdGVtJ3Mgc3RhdHVzIG9mIHBhcnRpY2lwYXRpbmcgaW4gQmFzZWxpbmUgQWxpZ25tZW50IGZv
cgorICAgIC8vIGEgY3ljbGljIHNpemluZyBkZXBlbmRuY3kgY2FzZSwgd2hpY2ggc2hvdWxkIGJl
IGRlZmluaXRpdmVseSBleGNsdWRlZC4gU2VlCisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzMwNDYgZm9yIGRldGFpbHMuCisgICAgLy8gRklYTUU6IHdl
IGFyZSBhdm9pZGluZyByZXBlYXRpbmcgdGhlIHRyYWNrIHNpemluZyBhbGdvcml0aG0gZm9yIGdy
aWQgaXRlbSB3aXRoIGJhc2VsaW5lIGFsaWdubWVudAorICAgIC8vIGhlcmUgaW4gdGhlIGNhc2Ug
b2YgdXNpbmcgZmxleCBtYXgtc2l6aW5nIGZ1bmN0aW9ucy4gV2UgcHJvYmFibHkgYWxzbyBuZWVk
IHRvIGludmVzdGlnYXRlIHdoZXRoZXIKKyAgICAvLyBpdCBpcyBhcHBsaWNhYmxlIGZvciB0aGUg
Y2FzZSBvZiBwZXJjZW50LXNpemVkIHJvd3Mgd2l0aCBpbmRlZmluaXRlIGhlaWdodCBhcyB3ZWxs
LgorICAgIGlmIChtX2hhc0FueU9ydGhvZ29uYWxJdGVtIHx8IG1fdHJhY2tTaXppbmdBbGdvcml0
aG0uaGFzQW55UGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQoKSB8fCAobV90cmFja1Np
emluZ0FsZ29yaXRobS5oYXNBbnlGbGV4aWJsZU1heFRyYWNrQnJlYWR0aCgpICYmICFtX2hhc0Fu
eUJhc2VsaW5lQWxpZ25tZW50SXRlbSkgfHwgbV9oYXNBc3BlY3RSYXRpb0Jsb2NrU2l6ZURlcGVu
ZGVudEl0ZW0pIHsKICAgICAgICAgY29tcHV0ZVRyYWNrU2l6ZXNGb3JEZWZpbml0ZVNpemUoRm9y
Q29sdW1ucywgYXZhaWxhYmxlU3BhY2VGb3JDb2x1bW5zKTsKICAgICAgICAgY29tcHV0ZUNvbnRl
bnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbk9mZnNldChGb3JDb2x1bW5zLCBtX3RyYWNrU2l6aW5n
QWxnb3JpdGhtLmZyZWVTcGFjZShGb3JDb2x1bW5zKS52YWx1ZSgpLCBub25Db2xsYXBzZWRUcmFj
a3MoRm9yQ29sdW1ucykpOwogICAgICAgICBjb21wdXRlVHJhY2tTaXplc0ZvckRlZmluaXRlU2l6
ZShGb3JSb3dzLCBhdmFpbGFibGVTcGFjZUZvclJvd3MpOwpAQCAtMTk5LDYgKzIwNiw4IEBAIHZv
aWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRV
bml0KQogICAgICAgICAvLyBGSVhNRTogV2UgbWlnaHQgbmVlZCB0byBjYWNoZSB0aGUgaGFzRGVm
aW5pdGVMb2dpY2FsSGVpZ2h0IGlmIHRoZSBjYWxsIG9mIFJlbmRlckJsb2NrOjpoYXNEZWZpbml0
ZUxvZ2ljYWxIZWlnaHQoKSBjYXVzZXMgYSByZWxldmFudCBwZXJmb3JtYW5jZSByZWdyZXNzaW9u
LgogICAgICAgICBib29sIGhhc0RlZmluaXRlTG9naWNhbEhlaWdodCA9IFJlbmRlckJsb2NrOjpo
YXNEZWZpbml0ZUxvZ2ljYWxIZWlnaHQoKSB8fCBoYXNPdmVycmlkaW5nTG9naWNhbEhlaWdodCgp
IHx8IGNvbXB1dGVDb250ZW50TG9naWNhbEhlaWdodChNYWluT3JQcmVmZXJyZWRTaXplLCBzdHls
ZSgpLmxvZ2ljYWxIZWlnaHQoKSwgc3RkOjpudWxsb3B0KTsKICAgICAgICAgbV9oYXNBbnlPcnRo
b2dvbmFsSXRlbSA9IGZhbHNlOworICAgICAgICAvLyBGSVhNRTogV2UgbWlnaHQgbmVlZCB0byBh
ZGQgYSBmdW5jdGlvbiBpbiB0aGUgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtIHRvIGtub3cgd2hl
dGhlciB0aGVyZSBpcyBhbnkgaXRlbSBpbiB0aGUgYmFzZWxpbmUgbWFwcyBpbnN0ZWFkIG9mIHVz
aW5nIHRoaXMgZmxhZy4KKyAgICAgICAgbV9oYXNBbnlCYXNlbGluZUFsaWdubWVudEl0ZW0gPSBm
YWxzZTsKICAgICAgICAgbV9oYXNBc3BlY3RSYXRpb0Jsb2NrU2l6ZURlcGVuZGVudEl0ZW0gPSBm
YWxzZTsKICAgICAgICAgVmVjdG9yPFJlbmRlckJveCo+IGFzcGVjdFJhdGlvQmxvY2tTaXplRGVw
ZW5kZW50R3JpZEl0ZW1zOwogICAgICAgICBmb3IgKGF1dG8qIGNoaWxkID0gZmlyc3RDaGlsZEJv
eCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgewpAQCAtMjI0LDEw
ICsyMzMsMTQgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQpCiAgICAgICAgICAgICAvLyBjYWNoZSBpcyBuZWVkZWQgZm9yIHBl
cmZvcm1hbmNlIHJlbGF0ZWQgcmVhc29ucyBkdWUgdG8gdGhlCiAgICAgICAgICAgICAvLyBjb3N0
IG9mIGV2YWx1YXRpbmcgdGhlIGl0ZW0ncyBwYXJ0aWNpcGF0aW9uIGluIGEgYmFzZWxpbmUKICAg
ICAgICAgICAgIC8vIGNvbnRleHQgZHVyaW5nIHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtLgot
ICAgICAgICAgICAgaWYgKGlzQmFzZWxpbmVBbGlnbm1lbnRGb3JDaGlsZCgqY2hpbGQsIEdyaWRD
b2x1bW5BeGlzKSkKKyAgICAgICAgICAgIGlmIChpc0Jhc2VsaW5lQWxpZ25tZW50Rm9yQ2hpbGQo
KmNoaWxkLCBHcmlkQ29sdW1uQXhpcykpIHsKKyAgICAgICAgICAgICAgICBtX2hhc0FueUJhc2Vs
aW5lQWxpZ25tZW50SXRlbSA9IHRydWU7CiAgICAgICAgICAgICAgICAgbV90cmFja1NpemluZ0Fs
Z29yaXRobS5jYWNoZUJhc2VsaW5lQWxpZ25lZEl0ZW0oKmNoaWxkLCBHcmlkQ29sdW1uQXhpcyk7
Ci0gICAgICAgICAgICBpZiAoaXNCYXNlbGluZUFsaWdubWVudEZvckNoaWxkKCpjaGlsZCwgR3Jp
ZFJvd0F4aXMpKQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzQmFzZWxpbmVBbGln
bm1lbnRGb3JDaGlsZCgqY2hpbGQsIEdyaWRSb3dBeGlzKSkgeworICAgICAgICAgICAgICAgIG1f
aGFzQW55QmFzZWxpbmVBbGlnbm1lbnRJdGVtID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBtX3Ry
YWNrU2l6aW5nQWxnb3JpdGhtLmNhY2hlQmFzZWxpbmVBbGlnbmVkSXRlbSgqY2hpbGQsIEdyaWRS
b3dBeGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBtX2Jhc2VsaW5lSXRl
bXNDYWNoZWQgPSB0cnVlOwogICAgICAgICByZXNldExvZ2ljYWxIZWlnaHRCZWZvcmVMYXlvdXRJ
Zk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggZWE2NWM0
ZWE4MjMxYzEzMGIxM2QwZjNkMzUzYjE4Yjg2NjFmZTkyNS4uMjlhZTU5NDgwMDNlZTZkMmRkNDQz
YjU2OTlkY2IyZDdjMTdiOTYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5o
CkBAIC0yMDcsNiArMjA3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzQW55T3J0aG9nb25h
bEl0ZW0ge2ZhbHNlfTsKICAgICBib29sIG1faGFzQXNwZWN0UmF0aW9CbG9ja1NpemVEZXBlbmRl
bnRJdGVtIHsgZmFsc2UgfTsKICAgICBib29sIG1fYmFzZWxpbmVJdGVtc0NhY2hlZCB7ZmFsc2V9
OworICAgIGJvb2wgbV9oYXNBbnlCYXNlbGluZUFsaWdubWVudEl0ZW0geyBmYWxzZSB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhlNGE1ZWQzNGI2ODgyMmRmNWI0Yjdl
MGM5OTljNzJlYzk0MGE4NTYuLjhjYTFlNzNkODUxZjI5OThiYzdmNGY1MzBhN2NhZmI0ZTQ4MWE0
NzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMS0xOSAgWmlyYW4gU3VuICA8enN1bkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtZ3JpZF0gVHJhY2sgc2l6aW5nIGFsZ29yaXRobSBu
b3QgcmVwZWF0ZWQgZXZlbiBpZiB1c2VkIGZsZXggZnJhY3Rpb24gd291bGQgY2hhbmdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2MTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBKYXZpZXIgRmVybmFuZGV6LgorCisgICAgICAgIFVuc2tpcCB0d28g
dGVzdHMgdGhhdCBhcmUgcGFzc2luZy4KKyAKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgor
CiAyMDIxLTExLTE4ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1h
Z2VzIGFzIGdyaWQgaXRlbXMgc2hvdWxkIHVzZSB0aGUgb3ZlcnJpZGluZ0xvZ2ljYWxXaWR0aCB3
aGVuIGRlZmluZWQgdG8gY29tcHV0ZSB0aGUgbG9naWNhbCBIZWlnaHQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGU5YTFmOGViYjMzNjBlOTViOTNkNjBkZTczM2ExMzM3MWJkZDQ3MjQuLjQ2ODlmMjE4
NzQ0ZWJlNjk4MjU3MzA5MTIwYmU1NjFhODU0OWNjOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MTM5OCw4ICsxMzk4LDYgQEAgd2Via2l0Lm9yZy9iLzIzMTAyMSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWl0ZW1zL3BlcmMKIHdlYmtpdC5vcmcvYi8y
MzEwMjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1p
dGVtcy9yZXBsYWNlZC1lbGVtZW50LTAxNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtbW9kZWwvZ3Jp
ZC1hcmVhcy1vdmVyZmxvd2luZy1ncmlkLWNvbnRhaW5lci0wMDkuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbGF5
b3V0LWFsZ29yaXRobS9mbGV4LXNpemluZy1yb3dzLWluZGVmaW5pdGUtaGVpZ2h0Lmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzEwMjEgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbGF5b3V0LWFsZ29yaXRobS9ncmlkLXRlbXBsYXRl
LWZsZXhpYmxlLXJlcnVuLXRyYWNrLXNpemluZy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9tYXNvbnJ5L3RlbnRh
dGl2ZS9tYXNvbnJ5LWFsaWduLWNvbnRlbnQtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL21hc29ucnkvdGVu
dGF0aXZlL21hc29ucnktYWxpZ24tY29udGVudC0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbWFzb25yeS90
ZW50YXRpdmUvbWFzb25yeS1hbGlnbi1jb250ZW50LTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445033</attachid>
            <date>2021-11-23 07:39:21 -0800</date>
            <delta_ts>2021-11-24 07:04:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232617-20211123153920.patch</filename>
            <type>text/plain</type>
            <size>10441</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MxYmYxOGM1YThkMDBi
OTE0ZGM1MDc2NjY1NDMwODFjNWVmNTVlYS4uZmU3MjNmZWJmZGUwNGJlOTMxZThjMjdjYTJmMDJi
YjllMjY5MDMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTExLTE5ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBUcmFjayBzaXpp
bmcgYWxnb3JpdGhtIG5vdCByZXBlYXRlZCBldmVuIGlmIHVzZWQgZmxleCBmcmFjdGlvbiB3b3Vs
ZCBjaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjYxNworCisgICAgICAgIFJldmlld2VkIGJ5IEphdmllciBGZXJuYW5kZXouCisKKyAgICAg
ICAgQWNjb3JkaW5nIHRvIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC8jYWxnby1m
bGV4LXRyYWNrcywgd2hlbiByb3cgaGVpZ2h0IGlzCisgICAgICAgIGluZGVmaW5pdGUsIGZvciBl
YWNoIGdyaWQgaXRlbSB0aGF0IGNyb3NzZXMgYSBmbGV4aWJsZSB0cmFjaywgd2UgcnVuIHRoZSB0
cmFjayBzaXppbmcKKyAgICAgICAgYWxnb3JpdGhtIHVuZGVyIGEgbWF4LWNvbnRlbnQgY29uc3Ry
YWludCB0byBmaW5kIHRoZSBmbGV4IGZyYWN0aW9uLiBUaGVuIHdlIHdvcmsgb3V0CisgICAgICAg
IHRoZSBncmlkIGNvbnRhaW5lciBoZWlnaHQgYXMgZGVmaW5pdGUsIHdoaWNoIG1heSBjYXVzZSB0
aGUgZmxleCBmcmFjdGlvbiBjaGFuZ2UuIEF0IHRoaXMKKyAgICAgICAgcG9pbnQsIHdlIG5lZWQg
dG8gcmVwZWF0IHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtIGZvciByb3cgYW5kIGxheW91dCB0
aGUgZ3JpZCBmb3IgcmVhbC4KKyAgICAgICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9l
c24ndCByZXBlYXQgdGhlIHRyYWNrIHNpemluZyBhbGdvcml0aG0gZm9yIHJvdy4KKworICAgICAg
ICBUaGUgY29tcGxpY2F0aW9uIHdpdGggY2FsbGluZyBSZW5kZXJHcmlkOjpyZXBlYXRUcmFja3NT
aXppbmdJZk5lZWRlZCgpIGZvciBmbGV4IG1heC1zaXppbmcKKyAgICAgICAgaXMgdGhhdCBpdCBt
aWdodCBjaGFuZ2UgYSBncmlkIGl0ZW0ncyBzdGF0dXMgb2YgcGFydGljaXBhdGluZyBpbiBCYXNl
bGluZSBBbGlnbm1lbnQgZm9yCisgICAgICAgIGEgY3ljbGljIHNpemluZyBkZXBlbmRuY3kgY2Fz
ZSwgd2hpY2ggc2hvdWxkIGJlIGRlZmluaXRpdmVseSBleGNsdWRlZC4gU2VlCisgICAgICAgIGh0
dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMDQ2IGZvciBtb3JlIGRl
dGFpbHMuIFRoaXMgaXNzdWUgc2hvdWxkIGJlIGhhbmRsZWQKKyAgICAgICAgaW4gYSBzZXBlcmF0
ZSBidWcuIFRoaXMgQ0wgb25seSBoYW5kbGUgdGVzdCBjYXNlcyB0aGF0IGRvbid0IGhhdmUgYmFz
ZWxpbmUgYWxpZ25tZW50IHNwZWNpZmllZC4gCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmlu
Zy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRy
YWNrU2l6aW5nQWxnb3JpdGhtOjppbml0aWFsaXplVHJhY2tTaXplcyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnNldHVwKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6cmVzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9H
cmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXBlYXRUcmFja3NTaXppbmdJ
Zk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRCbG9jayk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKwogMjAyMS0xMS0xOCAgWmlyYW4gU3Vu
ICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEltYWdlcyBhcyBncmlkIGl0ZW1zIHNob3Vs
ZCB1c2UgdGhlIG92ZXJyaWRpbmdMb2dpY2FsV2lkdGggd2hlbiBkZWZpbmVkIHRvIGNvbXB1dGUg
dGhlIGxvZ2ljYWwgSGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9H
cmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCmluZGV4IDI5ODBkZjA0NzdhMWExYjQzMjgyMjRj
MTY5OGE2NzgwNTVjYWU3YzQuLjAxYzNjOTlkOTM2MjVhNmRiYTBhY2RiZjMyZDgwNjdlYTQyYzIz
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdB
bGdvcml0aG0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG0uY3BwCkBAIC0xMTY1LDYgKzExNjUsNyBAQCB2b2lkIEdyaWRUcmFja1Npemlu
Z0FsZ29yaXRobTo6aW5pdGlhbGl6ZVRyYWNrU2l6ZXMoKQogICAgIEFTU0VSVChtX2ZsZXhpYmxl
U2l6ZWRUcmFja3NJbmRleC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChtX2F1dG9TaXplZFRyYWNr
c0ZvclN0cmV0Y2hJbmRleC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9oYXNQZXJjZW50U2l6
ZWRSb3dzSW5kZWZpbml0ZUhlaWdodCk7CisgICAgQVNTRVJUKCFtX2hhc0ZsZXhpYmxlTWF4VHJh
Y2tCcmVhZHRoKTsKIAogICAgIFZlY3RvcjxHcmlkVHJhY2s+JiBhbGxUcmFja3MgPSB0cmFja3Mo
bV9kaXJlY3Rpb24pOwogICAgIGNvbnN0IGJvb2wgaW5kZWZpbml0ZUhlaWdodCA9IG1fZGlyZWN0
aW9uID09IEZvclJvd3MgJiYgIW1fcmVuZGVyR3JpZC0+aGFzRGVmaW5pdGVMb2dpY2FsSGVpZ2h0
KCk7CkBAIC0xMTg3LDkgKzExODgsMTQgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06
OmluaXRpYWxpemVUcmFja1NpemVzKCkKICAgICAgICAgaWYgKHRyYWNrU2l6ZS5oYXNBdXRvTWF4
VHJhY2tCcmVhZHRoKCkgJiYgIXRyYWNrU2l6ZS5pc0ZpdENvbnRlbnQoKSkKICAgICAgICAgICAg
IG1fYXV0b1NpemVkVHJhY2tzRm9yU3RyZXRjaEluZGV4LmFwcGVuZChpKTsKIAotICAgICAgICBp
ZiAoIW1faGFzUGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQgJiYgaW5kZWZpbml0ZUhl
aWdodCkgeworICAgICAgICBpZiAoaW5kZWZpbml0ZUhlaWdodCkgewogICAgICAgICAgICAgYXV0
byYgcmF3VHJhY2tTaXplID0gcmF3R3JpZFRyYWNrU2l6ZShtX2RpcmVjdGlvbiwgaSk7Ci0gICAg
ICAgICAgICBpZiAocmF3VHJhY2tTaXplLm1pblRyYWNrQnJlYWR0aCgpLmlzUGVyY2VudGFnZSgp
IHx8IHJhd1RyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5pc1BlcmNlbnRhZ2UoKSkKKyAgICAg
ICAgICAgIC8vIFNldCB0aGUgZmxhZyBmb3IgcmVwZWF0aW5nIHRoZSB0cmFjayBzaXppbmcgYWxn
b3JpdGhtLiBGb3IgZmxleGlibGUgdHJhY2tzLCBhcyBwZXIgc3BlYyBodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3NzLWdyaWQvI2FsZ28tZmxleC10cmFja3MsCisgICAgICAgICAgICAvLyBpbiBj
bGF1c2UgImlmIHRoZSBmcmVlIHNwYWNlIGlzIGFuIGluZGVmaW5pdGUgbGVuZ3RoOiIsIGl0IHN0
YXRlcyB0aGF0ICJJZiB1c2luZyB0aGlzIGZsZXggZnJhY3Rpb24gd291bGQgY2F1c2UgdGhlIGdy
aWQgdG8gYmUgc21hbGxlciB0aGFuCisgICAgICAgICAgICAvLyB0aGUgZ3JpZCBjb250YWluZXLi
gJlzIG1pbi13aWR0aC9oZWlnaHQgKG9yIGxhcmdlciB0aGFuIHRoZSBncmlkIGNvbnRhaW5lcuKA
mXMgbWF4LXdpZHRoL2hlaWdodCksIHRoZW4gcmVkbyB0aGlzIHN0ZXAiLgorICAgICAgICAgICAg
aWYgKCFtX2hhc0ZsZXhpYmxlTWF4VHJhY2tCcmVhZHRoICYmIHJhd1RyYWNrU2l6ZS5tYXhUcmFj
a0JyZWFkdGgoKS5pc0ZsZXgoKSkKKyAgICAgICAgICAgICAgICBtX2hhc0ZsZXhpYmxlTWF4VHJh
Y2tCcmVhZHRoID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICghbV9oYXNQZXJjZW50U2l6ZWRSb3dz
SW5kZWZpbml0ZUhlaWdodCAmJiAocmF3VHJhY2tTaXplLm1pblRyYWNrQnJlYWR0aCgpLmlzUGVy
Y2VudGFnZSgpIHx8IHJhd1RyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5pc1BlcmNlbnRhZ2Uo
KSkpCiAgICAgICAgICAgICAgICAgbV9oYXNQZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhlaWdo
dCA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzYxLDYgKzEzNjcsNyBAQCB2b2lkIEdy
aWRUcmFja1NpemluZ0FsZ29yaXRobTo6c2V0dXAoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbiwgdW5zaWduZQogCiAgICAgbV9uZWVkc1NldHVwID0gZmFsc2U7CiAgICAgbV9oYXNQ
ZXJjZW50U2l6ZWRSb3dzSW5kZWZpbml0ZUhlaWdodCA9IGZhbHNlOworICAgIG1faGFzRmxleGli
bGVNYXhUcmFja0JyZWFkdGggPSBmYWxzZTsKIAogICAgIGNvbXB1dGVCYXNlbGluZUFsaWdubWVu
dENvbnRleHQoKTsKIH0KQEAgLTE0MzIsNiArMTQzOSw3IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtOjpyZXNldCgpCiAgICAgc2V0QXZhaWxhYmxlU3BhY2UoRm9yUm93cywgc3RkOjpu
dWxsb3B0KTsKICAgICBzZXRBdmFpbGFibGVTcGFjZShGb3JDb2x1bW5zLCBzdGQ6Om51bGxvcHQp
OwogICAgIG1faGFzUGVyY2VudFNpemVkUm93c0luZGVmaW5pdGVIZWlnaHQgPSBmYWxzZTsKKyAg
ICBtX2hhc0ZsZXhpYmxlTWF4VHJhY2tCcmVhZHRoID0gZmFsc2U7CiB9CiAKICNpZiBBU1NFUlRf
RU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1Np
emluZ0FsZ29yaXRobS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1Npemlu
Z0FsZ29yaXRobS5oCmluZGV4IDUxZDI3ZjljZjhlYjlkNWIwN2M4ZDdmMGZiYzE4OTQ1YTQ0ODI1
NTAuLmFlMWRkNmM3YWNkYmRiODdkZmZjMWY3YWM2MjM4ZDNlZThkN2FlNjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmgKQEAg
LTE0Myw2ICsxNDMsOCBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlVHJhY2tCYXNl
ZFNpemUoKSBjb25zdDsKIAogICAgIGJvb2wgaGFzQW55UGVyY2VudFNpemVkUm93c0luZGVmaW5p
dGVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRl
SGVpZ2h0OyB9CisgICAgYm9vbCBoYXNBbnlGbGV4aWJsZU1heFRyYWNrQnJlYWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1faGFzRmxleGlibGVNYXhUcmFja0JyZWFkdGg7IH0KKyAgICBib29sIGhhc0Fu
eUJhc2VsaW5lQWxpZ25tZW50SXRlbSgpIGNvbnN0IHsgcmV0dXJuICFtX2NvbHVtbkJhc2VsaW5l
SXRlbXNNYXAuaXNFbXB0eSgpIHx8ICFtX3Jvd0Jhc2VsaW5lSXRlbXNNYXAuaXNFbXB0eSgpOyB9
CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGJvb2wgdHJhY2tzQXJlV2lkZXJUaGFuTWluVHJh
Y2tCcmVhZHRoKCkgY29uc3Q7CkBAIC0xOTksNiArMjAxLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IHdhc1NldHVwKCkgY29uc3QgeyByZXR1cm4gISFtX3N0cmF0ZWd5OyB9CiAgICAgYm9vbCBtX25l
ZWRzU2V0dXAgeyB0cnVlIH07CiAgICAgYm9vbCBtX2hhc1BlcmNlbnRTaXplZFJvd3NJbmRlZmlu
aXRlSGVpZ2h0IHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzRmxleGlibGVNYXhUcmFja0JyZWFk
dGggeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbV9hdmFpbGFibGVT
cGFjZVJvd3M7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBtX2F2YWlsYWJsZVNwYWNl
Q29sdW1uczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDJi
ZjgzZDMzZGJlYzQ5ODkwNTM5NzQ4YjI4MjQ1NWM1NDdmMDE2MzQuLjMxNzlkZWYwMjk5ZTRlYmQ3
NWFjY2FjZmNkZDc0Nzk2MDkxNTUxYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAKQEAgLTE2MSw3ICsxNjEsMTQgQEAgdm9pZCBSZW5kZXJHcmlkOjpyZXBlYXRUcmFj
a3NTaXppbmdJZk5lZWRlZChMYXlvdXRVbml0IGF2YWlsYWJsZVNwYWNlRm9yQ29sdW1ucywKICAg
ICAvLyBhIG5ldyBjeWNsZSBvZiB0aGUgc2l6aW5nIGFsZ29yaXRobTsgdGhlcmUgbWF5IGJlIG1v
cmUuIEluIGFkZGl0aW9uLCBub3QgYWxsIHRoZQogICAgIC8vIGNhc2VzIHdpdGggb3J0aG9nb25h
bCBmbG93cyByZXF1aXJlIHRoaXMgZXh0cmEgY3ljbGU7IHdlIG5lZWQgYSBtb3JlIHNwZWNpZmlj
CiAgICAgLy8gY29uZGl0aW9uIHRvIGRldGVjdCB3aGV0aGVyIGNoaWxkJ3MgbWluLWNvbnRlbnQg
Y29udHJpYnV0aW9uIGhhcyBjaGFuZ2VkIG9yIG5vdC4KLSAgICBpZiAobV9oYXNBbnlPcnRob2dv
bmFsSXRlbSB8fCBtX3RyYWNrU2l6aW5nQWxnb3JpdGhtLmhhc0FueVBlcmNlbnRTaXplZFJvd3NJ
bmRlZmluaXRlSGVpZ2h0KCkgfHwgbV9oYXNBc3BlY3RSYXRpb0Jsb2NrU2l6ZURlcGVuZGVudEl0
ZW0pIHsKKyAgICAvLyBUaGUgY29tcGxpY2F0aW9uIHdpdGggcmVwZWF0aW5nIHRoZSB0cmFjayBz
aXppbmcgYWxnb3JpdGhtIGZvciBmbGV4IG1heC1zaXppbmcgaXMgdGhhdAorICAgIC8vIGl0IG1p
Z2h0IGNoYW5nZSBhIGdyaWQgaXRlbSdzIHN0YXR1cyBvZiBwYXJ0aWNpcGF0aW5nIGluIEJhc2Vs
aW5lIEFsaWdubWVudCBmb3IKKyAgICAvLyBhIGN5Y2xpYyBzaXppbmcgZGVwZW5kbmN5IGNhc2Us
IHdoaWNoIHNob3VsZCBiZSBkZWZpbml0aXZlbHkgZXhjbHVkZWQuIFNlZQorICAgIC8vIGh0dHBz
Oi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMDQ2IGZvciBkZXRhaWxzLgor
ICAgIC8vIEZJWE1FOiB3ZSBhcmUgYXZvaWRpbmcgcmVwZWF0aW5nIHRoZSB0cmFjayBzaXppbmcg
YWxnb3JpdGhtIGZvciBncmlkIGl0ZW0gd2l0aCBiYXNlbGluZSBhbGlnbm1lbnQKKyAgICAvLyBo
ZXJlIGluIHRoZSBjYXNlIG9mIHVzaW5nIGZsZXggbWF4LXNpemluZyBmdW5jdGlvbnMuIFdlIHBy
b2JhYmx5IGFsc28gbmVlZCB0byBpbnZlc3RpZ2F0ZSB3aGV0aGVyCisgICAgLy8gaXQgaXMgYXBw
bGljYWJsZSBmb3IgdGhlIGNhc2Ugb2YgcGVyY2VudC1zaXplZCByb3dzIHdpdGggaW5kZWZpbml0
ZSBoZWlnaHQgYXMgd2VsbC4KKyAgICBpZiAobV9oYXNBbnlPcnRob2dvbmFsSXRlbSB8fCBtX3Ry
YWNrU2l6aW5nQWxnb3JpdGhtLmhhc0FueVBlcmNlbnRTaXplZFJvd3NJbmRlZmluaXRlSGVpZ2h0
KCkgfHwgKG1fdHJhY2tTaXppbmdBbGdvcml0aG0uaGFzQW55RmxleGlibGVNYXhUcmFja0JyZWFk
dGgoKSAmJiAhbV90cmFja1NpemluZ0FsZ29yaXRobS5oYXNBbnlCYXNlbGluZUFsaWdubWVudEl0
ZW0oKSkgfHwgbV9oYXNBc3BlY3RSYXRpb0Jsb2NrU2l6ZURlcGVuZGVudEl0ZW0pIHsKICAgICAg
ICAgY29tcHV0ZVRyYWNrU2l6ZXNGb3JEZWZpbml0ZVNpemUoRm9yQ29sdW1ucywgYXZhaWxhYmxl
U3BhY2VGb3JDb2x1bW5zKTsKICAgICAgICAgY29tcHV0ZUNvbnRlbnRQb3NpdGlvbkFuZERpc3Ry
aWJ1dGlvbk9mZnNldChGb3JDb2x1bW5zLCBtX3RyYWNrU2l6aW5nQWxnb3JpdGhtLmZyZWVTcGFj
ZShGb3JDb2x1bW5zKS52YWx1ZSgpLCBub25Db2xsYXBzZWRUcmFja3MoRm9yQ29sdW1ucykpOwog
ICAgICAgICBjb21wdXRlVHJhY2tTaXplc0ZvckRlZmluaXRlU2l6ZShGb3JSb3dzLCBhdmFpbGFi
bGVTcGFjZUZvclJvd3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXgg
ZWE2NWM0ZWE4MjMxYzEzMGIxM2QwZjNkMzUzYjE4Yjg2NjFmZTkyNS4uMjlhZTU5NDgwMDNlZTZk
MmRkNDQzYjU2OTlkY2IyZDdjMTdiOTYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5oCkBAIC0yMDcsNiArMjA3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzQW55T3J0
aG9nb25hbEl0ZW0ge2ZhbHNlfTsKICAgICBib29sIG1faGFzQXNwZWN0UmF0aW9CbG9ja1NpemVE
ZXBlbmRlbnRJdGVtIHsgZmFsc2UgfTsKICAgICBib29sIG1fYmFzZWxpbmVJdGVtc0NhY2hlZCB7
ZmFsc2V9OworICAgIGJvb2wgbV9oYXNBbnlCYXNlbGluZUFsaWdubWVudEl0ZW0geyBmYWxzZSB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhlNGE1ZWQzNGI2ODgyMmRm
NWI0YjdlMGM5OTljNzJlYzk0MGE4NTYuLjhjYTFlNzNkODUxZjI5OThiYzdmNGY1MzBhN2NhZmI0
ZTQ4MWE0NzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMS0xOSAgWmlyYW4gU3VuICA8
enN1bkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtZ3JpZF0gVHJhY2sgc2l6aW5nIGFsZ29y
aXRobSBub3QgcmVwZWF0ZWQgZXZlbiBpZiB1c2VkIGZsZXggZnJhY3Rpb24gd291bGQgY2hhbmdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2MTcK
KworICAgICAgICBSZXZpZXdlZCBieSBKYXZpZXIgRmVybmFuZGV6LgorCisgICAgICAgIFVuc2tp
cCB0d28gdGVzdHMgdGhhdCBhcmUgcGFzc2luZy4KKyAKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRp
b25zOgorCiAyMDIxLTExLTE4ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgSW1hZ2VzIGFzIGdyaWQgaXRlbXMgc2hvdWxkIHVzZSB0aGUgb3ZlcnJpZGluZ0xvZ2ljYWxX
aWR0aCB3aGVuIGRlZmluZWQgdG8gY29tcHV0ZSB0aGUgbG9naWNhbCBIZWlnaHQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGU5YTFmOGViYjMzNjBlOTViOTNkNjBkZTczM2ExMzM3MWJkZDQ3MjQuLjQ2
ODlmMjE4NzQ0ZWJlNjk4MjU3MzA5MTIwYmU1NjFhODU0OWNjOWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMTM5OCw4ICsxMzk4LDYgQEAgd2Via2l0Lm9yZy9iLzIzMTAyMSBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWl0ZW1zL3BlcmMKIHdlYmtpdC5v
cmcvYi8yMzEwMjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQv
Z3JpZC1pdGVtcy9yZXBsYWNlZC1lbGVtZW50LTAxNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtbW9k
ZWwvZ3JpZC1hcmVhcy1vdmVyZmxvd2luZy1ncmlkLWNvbnRhaW5lci0wMDkuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvbGF5b3V0LWFsZ29yaXRobS9mbGV4LXNpemluZy1yb3dzLWluZGVmaW5pdGUtaGVpZ2h0Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMzEwMjEgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbGF5b3V0LWFsZ29yaXRobS9ncmlkLXRl
bXBsYXRlLWZsZXhpYmxlLXJlcnVuLXRyYWNrLXNpemluZy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9tYXNvbnJ5
L3RlbnRhdGl2ZS9tYXNvbnJ5LWFsaWduLWNvbnRlbnQtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL21hc29u
cnkvdGVudGF0aXZlL21hc29ucnktYWxpZ24tY29udGVudC0wMDIuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbWFz
b25yeS90ZW50YXRpdmUvbWFzb25yeS1hbGlnbi1jb250ZW50LTAwMy5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>