<?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>220143</bug_id>
          
          <creation_ts>2020-12-24 08:12:44 -0800</creation_ts>
          <short_desc>Take aspect-ratio into account for percentage resolution</short_desc>
          <delta_ts>2021-01-11 13:11:45 -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>
          
          
          <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>
          
          <blocked>47738</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1716574</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-12-24 08:12:44 -0800</bug_when>
    <thetext>Take aspect-ratio into account for percentage resolution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716575</commentid>
    <comment_count>1</comment_count>
      <attachid>416750</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-12-24 08:14:57 -0800</bug_when>
    <thetext>Created attachment 416750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716912</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-31 08:13:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/72755718&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718051</commentid>
    <comment_count>3</comment_count>
      <attachid>417203</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-01-07 12:41:12 -0800</bug_when>
    <thetext>Created attachment 417203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718080</commentid>
    <comment_count>4</comment_count>
      <attachid>417203</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-07 14:13:54 -0800</bug_when>
    <thetext>Comment on attachment 417203
Patch

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

&gt; Source/WebCore/rendering/RenderBox.cpp:3310
&gt; +        return blockSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), style().logicalAspectRatio() , style().boxSizing(), logicalWidth());

Stray space here before a &quot;,&quot;.

&gt; Source/WebCore/rendering/RenderBox.h:704
&gt; +    static LayoutUnit blockSizeFromAspectRatio(LayoutUnit borderPaddingInlineSum, LayoutUnit borderPaddingBlockSum, double aspectRatio, BoxSizing boxSizing, LayoutUnit inlineSize)

Since all paths convert aspectRatio into LayoutUnit, could we take the argument as a LayoutUnit instead of converting inside the function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718236</commentid>
    <comment_count>5</comment_count>
      <attachid>417249</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-01-08 00:39:31 -0800</bug_when>
    <thetext>Created attachment 417249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718243</commentid>
    <comment_count>6</comment_count>
      <attachid>417203</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-01-08 01:14:47 -0800</bug_when>
    <thetext>Comment on attachment 417203
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:3310
&gt;&gt; +        return blockSizeFromAspectRatio(horizontalBorderAndPaddingExtent(), verticalBorderAndPaddingExtent(), style().logicalAspectRatio() , style().boxSizing(), logicalWidth());
&gt; 
&gt; Stray space here before a &quot;,&quot;.

Done.

&gt;&gt; Source/WebCore/rendering/RenderBox.h:704
&gt;&gt; +    static LayoutUnit blockSizeFromAspectRatio(LayoutUnit borderPaddingInlineSum, LayoutUnit borderPaddingBlockSum, double aspectRatio, BoxSizing boxSizing, LayoutUnit inlineSize)
&gt; 
&gt; Since all paths convert aspectRatio into LayoutUnit, could we take the argument as a LayoutUnit instead of converting inside the function?

I tried this, but this causes a test failure in replaced-element-011.html, I think when doing a double -&gt; LayoutUnit -&gt; double conversion in RenderSVGRoot::computeIntrinsicRatioInformation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718254</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-08 03:14:23 -0800</bug_when>
    <thetext>Found 1 new test failure: media/controls/showControlsButton.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718278</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-08 05:29:06 -0800</bug_when>
    <thetext>Committed r271293: &lt;https://trac.webkit.org/changeset/271293&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417249.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718333</commentid>
    <comment_count>9</comment_count>
      <attachid>417203</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-08 10:17:01 -0800</bug_when>
    <thetext>Comment on attachment 417203
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderBox.h:704
&gt;&gt;&gt; +    static LayoutUnit blockSizeFromAspectRatio(LayoutUnit borderPaddingInlineSum, LayoutUnit borderPaddingBlockSum, double aspectRatio, BoxSizing boxSizing, LayoutUnit inlineSize)
&gt;&gt; 
&gt;&gt; Since all paths convert aspectRatio into LayoutUnit, could we take the argument as a LayoutUnit instead of converting inside the function?
&gt; 
&gt; I tried this, but this causes a test failure in replaced-element-011.html, I think when doing a double -&gt; LayoutUnit -&gt; double conversion in RenderSVGRoot::computeIntrinsicRatioInformation.

Something doesn’t make logical sense with that. This function takes a double and *always* converts it to a LayoutUnit. Doing the conversion before calling instead couldn’t possibly give a different result!

Maybe you made a bigger change, where we actually use LayoutUnit for to compute the value, rather than converting right at the point where we call?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718575</commentid>
    <comment_count>10</comment_count>
      <attachid>417203</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-01-09 11:56:54 -0800</bug_when>
    <thetext>Comment on attachment 417203
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderBox.h:704
&gt;&gt;&gt;&gt; +    static LayoutUnit blockSizeFromAspectRatio(LayoutUnit borderPaddingInlineSum, LayoutUnit borderPaddingBlockSum, double aspectRatio, BoxSizing boxSizing, LayoutUnit inlineSize)
&gt;&gt;&gt; 
&gt;&gt;&gt; Since all paths convert aspectRatio into LayoutUnit, could we take the argument as a LayoutUnit instead of converting inside the function?
&gt;&gt; 
&gt;&gt; I tried this, but this causes a test failure in replaced-element-011.html, I think when doing a double -&gt; LayoutUnit -&gt; double conversion in RenderSVGRoot::computeIntrinsicRatioInformation.
&gt; 
&gt; Something doesn’t make logical sense with that. This function takes a double and *always* converts it to a LayoutUnit. Doing the conversion before calling instead couldn’t possibly give a different result!
&gt; 
&gt; Maybe you made a bigger change, where we actually use LayoutUnit for to compute the value, rather than converting right at the point where we call?

I put some quick debug statements in logicalAspectRatio:

        auto ret = LayoutUnit(aspectRatioHeight() / aspectRatioWidth());
        fprintf(stderr, &quot;ret %lf actual %lf\n&quot;, ret.toDouble(), aspectRatioHeight() / aspectRatioWidth());
        return ret;

For replaced-element-011.html, which uses aspect-ratio: 5/1, I see:
ret 0.187500 actual 0.200000

This must be because of clampToInteger. So unless there is another way to use LayoutUnit that keeps the double, I do not see how this can work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718732</commentid>
    <comment_count>11</comment_count>
      <attachid>417203</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-11 10:39:52 -0800</bug_when>
    <thetext>Comment on attachment 417203
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderBox.h:704
&gt;&gt;&gt;&gt;&gt; +    static LayoutUnit blockSizeFromAspectRatio(LayoutUnit borderPaddingInlineSum, LayoutUnit borderPaddingBlockSum, double aspectRatio, BoxSizing boxSizing, LayoutUnit inlineSize)
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Since all paths convert aspectRatio into LayoutUnit, could we take the argument as a LayoutUnit instead of converting inside the function?
&gt;&gt;&gt; 
&gt;&gt;&gt; I tried this, but this causes a test failure in replaced-element-011.html, I think when doing a double -&gt; LayoutUnit -&gt; double conversion in RenderSVGRoot::computeIntrinsicRatioInformation.
&gt;&gt; 
&gt;&gt; Something doesn’t make logical sense with that. This function takes a double and *always* converts it to a LayoutUnit. Doing the conversion before calling instead couldn’t possibly give a different result!
&gt;&gt; 
&gt;&gt; Maybe you made a bigger change, where we actually use LayoutUnit for to compute the value, rather than converting right at the point where we call?
&gt; 
&gt; I put some quick debug statements in logicalAspectRatio:
&gt; 
&gt;         auto ret = LayoutUnit(aspectRatioHeight() / aspectRatioWidth());
&gt;         fprintf(stderr, &quot;ret %lf actual %lf\n&quot;, ret.toDouble(), aspectRatioHeight() / aspectRatioWidth());
&gt;         return ret;
&gt; 
&gt; For replaced-element-011.html, which uses aspect-ratio: 5/1, I see:
&gt; ret 0.187500 actual 0.200000
&gt; 
&gt; This must be because of clampToInteger. So unless there is another way to use LayoutUnit that keeps the double, I do not see how this can work.

What does this have to do with the code below? The code converts the aspectRatio double to a LayoutUnit before dong anything further with it. There’s no conversion to LayoutUnit and then back to a double.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718742</commentid>
    <comment_count>12</comment_count>
      <attachid>417203</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-01-11 10:56:53 -0800</bug_when>
    <thetext>Comment on attachment 417203
Patch

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

&gt;&gt;&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderBox.h:704
&gt;&gt;&gt;&gt;&gt;&gt; +    static LayoutUnit blockSizeFromAspectRatio(LayoutUnit borderPaddingInlineSum, LayoutUnit borderPaddingBlockSum, double aspectRatio, BoxSizing boxSizing, LayoutUnit inlineSize)
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; Since all paths convert aspectRatio into LayoutUnit, could we take the argument as a LayoutUnit instead of converting inside the function?
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; I tried this, but this causes a test failure in replaced-element-011.html, I think when doing a double -&gt; LayoutUnit -&gt; double conversion in RenderSVGRoot::computeIntrinsicRatioInformation.
&gt;&gt;&gt; 
&gt;&gt;&gt; Something doesn’t make logical sense with that. This function takes a double and *always* converts it to a LayoutUnit. Doing the conversion before calling instead couldn’t possibly give a different result!
&gt;&gt;&gt; 
&gt;&gt;&gt; Maybe you made a bigger change, where we actually use LayoutUnit for to compute the value, rather than converting right at the point where we call?
&gt;&gt; 
&gt;&gt; I put some quick debug statements in logicalAspectRatio:
&gt;&gt; 
&gt;&gt;         auto ret = LayoutUnit(aspectRatioHeight() / aspectRatioWidth());
&gt;&gt;         fprintf(stderr, &quot;ret %lf actual %lf\n&quot;, ret.toDouble(), aspectRatioHeight() / aspectRatioWidth());
&gt;&gt;         return ret;
&gt;&gt; 
&gt;&gt; For replaced-element-011.html, which uses aspect-ratio: 5/1, I see:
&gt;&gt; ret 0.187500 actual 0.200000
&gt;&gt; 
&gt;&gt; This must be because of clampToInteger. So unless there is another way to use LayoutUnit that keeps the double, I do not see how this can work.
&gt; 
&gt; What does this have to do with the code below? The code converts the aspectRatio double to a LayoutUnit before dong anything further with it. There’s no conversion to LayoutUnit and then back to a double.

The problem is that computeIntrinsicRatioInformation ultimately wants a double, see RenderSVGRoot::computeIntrinsicRatioInformation for example.
Was your suggestion to keep logicalAspectRatio to return a double and just have blockSizeFromAspectRatio/inlineSizeFromAspectRatio take a LayoutUnit for the ratio? If that is the case I misinterpreted your suggestion!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718744</commentid>
    <comment_count>13</comment_count>
      <attachid>417203</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-11 11:06:22 -0800</bug_when>
    <thetext>Comment on attachment 417203
Patch

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

&gt;&gt;&gt;&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderBox.h:704
&gt;&gt;&gt;&gt;&gt;&gt;&gt; +    static LayoutUnit blockSizeFromAspectRatio(LayoutUnit borderPaddingInlineSum, LayoutUnit borderPaddingBlockSum, double aspectRatio, BoxSizing boxSizing, LayoutUnit inlineSize)
&gt;&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt;&gt; Since all paths convert aspectRatio into LayoutUnit, could we take the argument as a LayoutUnit instead of converting inside the function?
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; I tried this, but this causes a test failure in replaced-element-011.html, I think when doing a double -&gt; LayoutUnit -&gt; double conversion in RenderSVGRoot::computeIntrinsicRatioInformation.
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Something doesn’t make logical sense with that. This function takes a double and *always* converts it to a LayoutUnit. Doing the conversion before calling instead couldn’t possibly give a different result!
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Maybe you made a bigger change, where we actually use LayoutUnit for to compute the value, rather than converting right at the point where we call?
&gt;&gt;&gt; 
&gt;&gt;&gt; I put some quick debug statements in logicalAspectRatio:
&gt;&gt;&gt; 
&gt;&gt;&gt;         auto ret = LayoutUnit(aspectRatioHeight() / aspectRatioWidth());
&gt;&gt;&gt;         fprintf(stderr, &quot;ret %lf actual %lf\n&quot;, ret.toDouble(), aspectRatioHeight() / aspectRatioWidth());
&gt;&gt;&gt;         return ret;
&gt;&gt;&gt; 
&gt;&gt;&gt; For replaced-element-011.html, which uses aspect-ratio: 5/1, I see:
&gt;&gt;&gt; ret 0.187500 actual 0.200000
&gt;&gt;&gt; 
&gt;&gt;&gt; This must be because of clampToInteger. So unless there is another way to use LayoutUnit that keeps the double, I do not see how this can work.
&gt;&gt; 
&gt;&gt; What does this have to do with the code below? The code converts the aspectRatio double to a LayoutUnit before dong anything further with it. There’s no conversion to LayoutUnit and then back to a double.
&gt; 
&gt; The problem is that computeIntrinsicRatioInformation ultimately wants a double, see RenderSVGRoot::computeIntrinsicRatioInformation for example.
&gt; Was your suggestion to keep logicalAspectRatio to return a double and just have blockSizeFromAspectRatio/inlineSizeFromAspectRatio take a LayoutUnit for the ratio? If that is the case I misinterpreted your suggestion!

&gt; Was your suggestion to keep logicalAspectRatio to return a double and just have blockSizeFromAspectRatio/inlineSizeFromAspectRatio take a LayoutUnit for the ratio?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718777</commentid>
    <comment_count>14</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-01-11 12:14:55 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718778</commentid>
    <comment_count>15</comment_count>
      <attachid>417400</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-01-11 12:14:58 -0800</bug_when>
    <thetext>Created attachment 417400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718781</commentid>
    <comment_count>16</comment_count>
      <attachid>417400</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-11 12:21:08 -0800</bug_when>
    <thetext>Comment on attachment 417400
Patch

I think this is better. Not 100% sure, but thank you for doing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718794</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-11 13:11:43 -0800</bug_when>
    <thetext>Committed r271375: &lt;https://trac.webkit.org/changeset/271375&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417400.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416750</attachid>
            <date>2020-12-24 08:14:57 -0800</date>
            <delta_ts>2021-01-07 12:41:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220143-20201224171455.patch</filename>
            <type>text/plain</type>
            <size>7797</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmY1ZTU2NzljMTQ4MDA0
MmY2ZTJiODhhNWQyMGZjOTNhMmFjMzFhNi4uOWQzYmMzMDRjYTU0YmE1MzVmZDAyYjBmODM0MTJm
NzA3NGZmMTc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTEyLTI0ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBhc3BlY3QtcmF0aW8gaW50
byBhY2NvdW50IGZvciBwZXJjZW50YWdlIHJlc29sdXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDE0MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdJUC4KKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YXZhaWxhYmxl
TG9naWNhbEhlaWdodEZvclBlcmNlbnRhZ2VDb21wdXRhdGlvbiBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmF2
YWlsYWJsZUxvZ2ljYWxIZWlnaHRVc2luZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpibG9j
a1NpemVGcm9tQXNwZWN0UmF0aW8pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YmxvY2tTaXplRnJvbUFzcGVj
dFJhdGlvKToKKwogMjAyMC0xMi0yMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBzb21lIGNvZGUgcmVsYXRlZCB0byBzY3JvbGwgcGlu
bmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggOGNhYjc2
YWZlNTdkMDdmYTdkNmJiNmE0MTM5YjNlOTUzY2ExY2YzNy4uZjNjMzFlNzMzNmZjZWU0MWEzYWZl
ZWI5MzYzODJhNGMzMzhjNjk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCkBAIC0zMjA3LDYgKzMyMDcsOCBAQCBPcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJC
bG9jazo6YXZhaWxhYmxlTG9naWNhbEhlaWdodEZvclBlcmNlbnRhZ2VDb21wdXRhdGlvbgogICAg
IGVsc2UgaWYgKHN0eWxlVG9Vc2UubG9naWNhbEhlaWdodCgpLmlzRml4ZWQoKSkgewogICAgICAg
ICBMYXlvdXRVbml0IGNvbnRlbnRCb3hIZWlnaHQgPSBhZGp1c3RDb250ZW50Qm94TG9naWNhbEhl
aWdodEZvckJveFNpemluZygoTGF5b3V0VW5pdClzdHlsZVRvVXNlLmxvZ2ljYWxIZWlnaHQoKS52
YWx1ZSgpKTsKICAgICAgICAgYXZhaWxhYmxlSGVpZ2h0ID0gc3RkOjptYXgoMF9sdSwgY29uc3Ry
YWluQ29udGVudEJveExvZ2ljYWxIZWlnaHRCeU1pbk1heChjb250ZW50Qm94SGVpZ2h0IC0gc2Ny
b2xsYmFyTG9naWNhbEhlaWdodCgpLCBXVEY6Om51bGxvcHQpKTsKKyAgICB9IGVsc2UgaWYgKHNo
b3VsZENvbXB1dGVMb2dpY2FsSGVpZ2h0RnJvbUFzcGVjdFJhdGlvKCkpIHsKKyAgICAgICAgYXZh
aWxhYmxlSGVpZ2h0ID0gYmxvY2tTaXplRnJvbUFzcGVjdFJhdGlvKGhvcml6b250YWxCb3JkZXJB
bmRQYWRkaW5nRXh0ZW50KCksIHZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpLCBzdHls
ZSgpLmxvZ2ljYWxBc3BlY3RSYXRpbygpLCBzdHlsZSgpLmJveFNpemluZygpLCBsb2dpY2FsV2lk
dGgoKSk7CiAgICAgfSBlbHNlIGlmIChzdHlsZVRvVXNlLmxvZ2ljYWxIZWlnaHQoKS5pc1BlcmNl
bnRPckNhbGN1bGF0ZWQoKSAmJiAhaXNPdXRPZkZsb3dQb3NpdGlvbmVkV2l0aFNwZWNpZmllZEhl
aWdodCkgewogICAgICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBoZWlnaHRXaXRoU2Nyb2xsYmFy
ID0gY29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KHN0eWxlVG9Vc2UubG9naWNhbEhlaWdo
dCgpKTsKICAgICAgICAgaWYgKGhlaWdodFdpdGhTY3JvbGxiYXIpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggZWQ5ZmEzNDk4NjFmNmVhMDljMWNhZTA3YWI5Zjhi
NGNlYWNiYmNiOC4uMTUxODU0MzY3NDMzOTRkMTk3NzE2MWUwYmVhYTQ5ODhmYWU1OTFhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTI4MzMsMTQgKzI4MzMsNiBA
QCB2b2lkIFJlbmRlckJveDo6dXBkYXRlTG9naWNhbEhlaWdodCgpCiAgICAgc2V0TWFyZ2luQWZ0
ZXIoY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fYWZ0ZXIpOwogfQogCi1zdGF0aWMgTGF5b3V0
VW5pdCBibG9ja1NpemVGcm9tQXNwZWN0UmF0aW8oTGF5b3V0VW5pdCBib3JkZXJQYWRkaW5nSW5s
aW5lU3VtLCBMYXlvdXRVbml0IGJvcmRlclBhZGRpbmdCbG9ja1N1bSwgZG91YmxlIGFzcGVjdFJh
dGlvLCBCb3hTaXppbmcgYm94U2l6aW5nLCBMYXlvdXRVbml0IGlubGluZVNpemUpCi17Ci0gICAg
aWYgKGJveFNpemluZyA9PSBCb3hTaXppbmc6OkJvcmRlckJveCkKLSAgICAgICAgcmV0dXJuIGlu
bGluZVNpemUgLyBMYXlvdXRVbml0KGFzcGVjdFJhdGlvKTsKLQotICAgIHJldHVybiAoKGlubGlu
ZVNpemUgLSBib3JkZXJQYWRkaW5nSW5saW5lU3VtKSAvIExheW91dFVuaXQoYXNwZWN0UmF0aW8p
KSArIGJvcmRlclBhZGRpbmdCbG9ja1N1bTsKLX0KLQogUmVuZGVyQm94OjpMb2dpY2FsRXh0ZW50
Q29tcHV0ZWRWYWx1ZXMgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCkgY29uc3QKIHsKICAgICBMb2dp
Y2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgY29tcHV0ZWRWYWx1ZXM7CkBAIC0zMzE5LDYgKzMzMTEs
OSBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6YXZhaWxhYmxlTG9naWNhbEhlaWdodFVzaW5nKGNv
bnN0IExlbmd0aCYgaCwgQXZhaWxhYmxlTG9naQogICAgICAgICAgICAgcmV0dXJuIHN0cmV0Y2hl
ZEhlaWdodC52YWx1ZSgpOwogICAgIH0KIAorICAgIGlmIChzaG91bGRDb21wdXRlTG9naWNhbEhl
aWdodEZyb21Bc3BlY3RSYXRpbygpKQorICAgICAgICByZXR1cm4gYmxvY2tTaXplRnJvbUFzcGVj
dFJhdGlvKGhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCksIHZlcnRpY2FsQm9yZGVy
QW5kUGFkZGluZ0V4dGVudCgpLCBzdHlsZSgpLmxvZ2ljYWxBc3BlY3RSYXRpbygpICwgc3R5bGUo
KS5ib3hTaXppbmcoKSwgbG9naWNhbFdpZHRoKCkpOworCiAgICAgaWYgKGguaXNQZXJjZW50T3JD
YWxjdWxhdGVkKCkgJiYgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgIWlzUmVuZGVyRnJhZ21l
bnRlZEZsb3coKSkgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZyBpZiB0aGUgY29u
dGFpbmluZ0Jsb2NrIGhhcyBhIHBlcnBlbmRpY3VsYXIgd3JpdGluZyBtb2RlLgogICAgICAgICBM
YXlvdXRVbml0IGF2YWlsYWJsZUhlaWdodCA9IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHRG
b3JQb3NpdGlvbmVkKCpjb250YWluaW5nQmxvY2soKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgKaW5kZXggOTZlNzJkNGY4NWJjNDkzZmI0NzIwYmNjMmUxODUwZTQwOGI0MWM4NC4u
YzNhMzZhN2JmZjZlNTQ1MjBjZWIwOGQ2ODdkYmZiYmMxOTBiNWNiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaApAQCAtNjk2LDYgKzY5NiwxOCBAQCBwcm90ZWN0ZWQ6CiAKICAg
ICB2b2lkIGluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50SWZOZWVkZWQoY29uc3Qg
SW50U2l6ZSYpOwogCisgICAgYm9vbCBzaG91bGRDb21wdXRlTG9naWNhbEhlaWdodEZyb21Bc3Bl
Y3RSYXRpbygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkQ29tcHV0ZUxvZ2ljYWxXaWR0aEZyb21B
c3BlY3RSYXRpbygpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkQ29tcHV0ZUxvZ2ljYWxXaWR0aEZy
b21Bc3BlY3RSYXRpb0FuZEluc2V0cygpIGNvbnN0OworICAgIExheW91dFVuaXQgY29tcHV0ZUxv
Z2ljYWxXaWR0aEZyb21Bc3BlY3RSYXRpbyhSZW5kZXJGcmFnbWVudENvbnRhaW5lciogPSBudWxs
cHRyKSBjb25zdDsKKworICAgIHN0YXRpYyBMYXlvdXRVbml0IGJsb2NrU2l6ZUZyb21Bc3BlY3RS
YXRpbyhMYXlvdXRVbml0IGJvcmRlclBhZGRpbmdJbmxpbmVTdW0sIExheW91dFVuaXQgYm9yZGVy
UGFkZGluZ0Jsb2NrU3VtLCBkb3VibGUgYXNwZWN0UmF0aW8sIEJveFNpemluZyBib3hTaXppbmcs
IExheW91dFVuaXQgaW5saW5lU2l6ZSkKKyAgICB7CisgICAgICAgIGlmIChib3hTaXppbmcgPT0g
Qm94U2l6aW5nOjpCb3JkZXJCb3gpCisgICAgICAgICAgICByZXR1cm4gaW5saW5lU2l6ZSAvIExh
eW91dFVuaXQoYXNwZWN0UmF0aW8pOworICAgICAgICByZXR1cm4gKChpbmxpbmVTaXplIC0gYm9y
ZGVyUGFkZGluZ0lubGluZVN1bSkgLyBMYXlvdXRVbml0KGFzcGVjdFJhdGlvKSkgKyBib3JkZXJQ
YWRkaW5nQmxvY2tTdW07CisgICAgfQorCiBwcml2YXRlOgogICAgIGJvb2wgcmVwbGFjZWRNaW5N
YXhMb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoU2l6ZVR5cGUpIGNvbnN0OwogCkBAIC03NDQs
MTEgKzc1Niw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBhcHBseVRvcExlZnRMb2NhdGlv
bk9mZnNldFdpdGhGbGlwcGluZyhMYXlvdXRQb2ludCYpIGNvbnN0OwogCi0gICAgYm9vbCBzaG91
bGRDb21wdXRlTG9naWNhbEhlaWdodEZyb21Bc3BlY3RSYXRpbygpIGNvbnN0OwotICAgIGJvb2wg
c2hvdWxkQ29tcHV0ZUxvZ2ljYWxXaWR0aEZyb21Bc3BlY3RSYXRpbygpIGNvbnN0OwotICAgIGJv
b2wgc2hvdWxkQ29tcHV0ZUxvZ2ljYWxXaWR0aEZyb21Bc3BlY3RSYXRpb0FuZEluc2V0cygpIGNv
bnN0OwotICAgIExheW91dFVuaXQgY29tcHV0ZUxvZ2ljYWxXaWR0aEZyb21Bc3BlY3RSYXRpbyhS
ZW5kZXJGcmFnbWVudENvbnRhaW5lciogPSBudWxscHRyKSBjb25zdDsKLQogcHJpdmF0ZToKICAg
ICAvLyBUaGUgd2lkdGgvaGVpZ2h0IG9mIHRoZSBjb250ZW50cyArIGJvcmRlcnMgKyBwYWRkaW5n
LiAgVGhlIHgveSBsb2NhdGlvbiBpcyByZWxhdGl2ZSB0byBvdXIgY29udGFpbmVyICh3aGljaCBp
cyBub3QgYWx3YXlzIG91ciBwYXJlbnQpLgogICAgIExheW91dFJlY3QgbV9mcmFtZVJlY3Q7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggODYyOGE3NzY5MTdhYjFkY2NlMjM0M2NjNDYxNjcyZWJkNjQ3YWYzMi4uOTJmNWMxY2Mw
YmRlZWM5MjhkZmUzYzQzZDAxM2I1ZWZkMTRjZTI5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIwLTEyLTI0ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBh
c3BlY3QtcmF0aW8gaW50byBhY2NvdW50IGZvciBwZXJjZW50YWdlIHJlc29sdXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDE0MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBzb21lIHRl
c3RzIHRoYXQgcGFzcyBub3cuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIw
LTEyLTIzICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT046IFsgTWFjIF0gbWVkaWEvdmlkZW8tYnVmZmVyaW5nLWFsbG93ZWQuaHRtbCBpcyBm
bGFreSB0aW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiN2UzMmRjMTU3YjU1MTM1YWM0OTNi
YjZkMmFjODkwNjljNDFkZmUzLi43MTJkYjUwZjgwMjMyNDQyZWYwMjAyYTBjZTk5YjMxM2E2ZGNk
N2YxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ0NjQsOSArNDQ2NCw2IEBAIHdlYmtpdC5vcmcv
Yi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9h
c3BlY3QtcmF0aW8vCiB3ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvL2ludHJpbnNpYy1zaXplLTAwNi5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvL2ludHJpbnNp
Yy1zaXplLTAwOC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjE0NDYz
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJh
dGlvL3BhcnNpbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS1pbnZhbGlkLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXNpemluZy9hc3BlY3QtcmF0aW8vcGVyY2VudGFnZS1yZXNvbHV0aW9u
LTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjE0NDYzIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvL3Bl
cmNlbnRhZ2UtcmVzb2x1dGlvbi0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0
Lm9yZy9iLzIxNDQ2MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6
aW5nL2FzcGVjdC1yYXRpby9wZXJjZW50YWdlLXJlc29sdXRpb24tMDA0Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1zaXplL2NvbnRhaW4taW50
cmluc2ljLXNpemUtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8y
MTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250
YWluLWludHJpbnNpYy1zaXplL2NvbnRhaW4taW50cmluc2ljLXNpemUtMDAyLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1zaXplL2NvbnRhaW4t
aW50cmluc2ljLXNpemUtMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417203</attachid>
            <date>2021-01-07 12:41:12 -0800</date>
            <delta_ts>2021-01-08 00:39:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220143-20210107214111.patch</filename>
            <type>text/plain</type>
            <size>7929</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDE4Y2UwMjkxZjViMWNm
YjAwNjMxZDVhZTg2YmEyMDhiMjY3YTY0OS4uNzY3NWRhMGI5ZjAxMjliMmFlODRjYTNmMWMyYjA1
NzBhMjE1ZjQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAxLTA3ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBhc3BlY3QtcmF0aW8gaW50
byBhY2NvdW50IGZvciBwZXJjZW50YWdlIHJlc29sdXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDE0MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhc3BlY3QtcmF0aW8gaGFuZGxpbmcgdG8g
Y29udGFpbmluZyBibG9jayBhdmFpbGFibGUgaGVpZ2h0CisgICAgICAgIGNvbXB1dGF0aW9ucyB0
byBmaXggcGVyY2VudGFnZSByZXNvbHV0aW9uIG9uIGl0cyBjaGlsZHJlbi4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6YXZhaWxhYmxlTG9naWNhbEhlaWdodEZvclBlcmNlbnRhZ2VDb21wdXRhdGlvbiBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6OmF2YWlsYWJsZUxvZ2ljYWxIZWlnaHRVc2luZyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpibG9ja1NpemVGcm9tQXNwZWN0UmF0aW8pOiBEZWxldGVkLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YmxvY2tT
aXplRnJvbUFzcGVjdFJhdGlvKToKKwogMjAyMS0wMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQcm9jZXNzXSBJbXBsZW1lbnQgR1BVUHJvY2VzcyBj
cmFzaCByZWNvdmVyeSBmb3IgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA4Y2FiNzZhZmU1N2QwN2ZhN2Q2YmI2
YTQxMzliM2U5NTNjYTFjZjM3Li5mM2MzMWU3MzM2ZmNlZTQxYTNhZmVlYjkzNjM4MmE0YzMzOGM2
OTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTMyMDcs
NiArMzIwNyw4IEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJsb2NrOjphdmFpbGFibGVM
b2dpY2FsSGVpZ2h0Rm9yUGVyY2VudGFnZUNvbXB1dGF0aW9uCiAgICAgZWxzZSBpZiAoc3R5bGVU
b1VzZS5sb2dpY2FsSGVpZ2h0KCkuaXNGaXhlZCgpKSB7CiAgICAgICAgIExheW91dFVuaXQgY29u
dGVudEJveEhlaWdodCA9IGFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5n
KChMYXlvdXRVbml0KXN0eWxlVG9Vc2UubG9naWNhbEhlaWdodCgpLnZhbHVlKCkpOwogICAgICAg
ICBhdmFpbGFibGVIZWlnaHQgPSBzdGQ6Om1heCgwX2x1LCBjb25zdHJhaW5Db250ZW50Qm94TG9n
aWNhbEhlaWdodEJ5TWluTWF4KGNvbnRlbnRCb3hIZWlnaHQgLSBzY3JvbGxiYXJMb2dpY2FsSGVp
Z2h0KCksIFdURjo6bnVsbG9wdCkpOworICAgIH0gZWxzZSBpZiAoc2hvdWxkQ29tcHV0ZUxvZ2lj
YWxIZWlnaHRGcm9tQXNwZWN0UmF0aW8oKSkgeworICAgICAgICBhdmFpbGFibGVIZWlnaHQgPSBi
bG9ja1NpemVGcm9tQXNwZWN0UmF0aW8oaG9yaXpvbnRhbEJvcmRlckFuZFBhZGRpbmdFeHRlbnQo
KSwgdmVydGljYWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCksIHN0eWxlKCkubG9naWNhbEFzcGVj
dFJhdGlvKCksIHN0eWxlKCkuYm94U2l6aW5nKCksIGxvZ2ljYWxXaWR0aCgpKTsKICAgICB9IGVs
c2UgaWYgKHN0eWxlVG9Vc2UubG9naWNhbEhlaWdodCgpLmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgp
ICYmICFpc091dE9mRmxvd1Bvc2l0aW9uZWRXaXRoU3BlY2lmaWVkSGVpZ2h0KSB7CiAgICAgICAg
IE9wdGlvbmFsPExheW91dFVuaXQ+IGhlaWdodFdpdGhTY3JvbGxiYXIgPSBjb21wdXRlUGVyY2Vu
dGFnZUxvZ2ljYWxIZWlnaHQoc3R5bGVUb1VzZS5sb2dpY2FsSGVpZ2h0KCkpOwogICAgICAgICBp
ZiAoaGVpZ2h0V2l0aFNjcm9sbGJhcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAppbmRleCA3MDZkOWNiMGFjYzFjMGM0ODg0NjFmNWMwYjIzNTc3ZjhhYjU2NDQxLi5iZGJi
ODc4NjAyMGVhNThmN2MyY2Y4Y2NjYmE3ZTMxMzM3N2NiMTFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMjgyOCwxNCArMjgyOCw2IEBAIHZvaWQgUmVuZGVyQm94
Ojp1cGRhdGVMb2dpY2FsSGVpZ2h0KCkKICAgICBzZXRNYXJnaW5BZnRlcihjb21wdXRlZFZhbHVl
cy5tX21hcmdpbnMubV9hZnRlcik7CiB9CiAKLXN0YXRpYyBMYXlvdXRVbml0IGJsb2NrU2l6ZUZy
b21Bc3BlY3RSYXRpbyhMYXlvdXRVbml0IGJvcmRlclBhZGRpbmdJbmxpbmVTdW0sIExheW91dFVu
aXQgYm9yZGVyUGFkZGluZ0Jsb2NrU3VtLCBkb3VibGUgYXNwZWN0UmF0aW8sIEJveFNpemluZyBi
b3hTaXppbmcsIExheW91dFVuaXQgaW5saW5lU2l6ZSkKLXsKLSAgICBpZiAoYm94U2l6aW5nID09
IEJveFNpemluZzo6Qm9yZGVyQm94KQotICAgICAgICByZXR1cm4gaW5saW5lU2l6ZSAvIExheW91
dFVuaXQoYXNwZWN0UmF0aW8pOwotCi0gICAgcmV0dXJuICgoaW5saW5lU2l6ZSAtIGJvcmRlclBh
ZGRpbmdJbmxpbmVTdW0pIC8gTGF5b3V0VW5pdChhc3BlY3RSYXRpbykpICsgYm9yZGVyUGFkZGlu
Z0Jsb2NrU3VtOwotfQotCiBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBS
ZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwg
TGF5b3V0VW5pdCBsb2dpY2FsVG9wKSBjb25zdAogewogICAgIExvZ2ljYWxFeHRlbnRDb21wdXRl
ZFZhbHVlcyBjb21wdXRlZFZhbHVlczsKQEAgLTMzMTQsNiArMzMwNiw5IEBAIExheW91dFVuaXQg
UmVuZGVyQm94OjphdmFpbGFibGVMb2dpY2FsSGVpZ2h0VXNpbmcoY29uc3QgTGVuZ3RoJiBoLCBB
dmFpbGFibGVMb2dpCiAgICAgICAgICAgICByZXR1cm4gc3RyZXRjaGVkSGVpZ2h0LnZhbHVlKCk7
CiAgICAgfQogCisgICAgaWYgKHNob3VsZENvbXB1dGVMb2dpY2FsSGVpZ2h0RnJvbUFzcGVjdFJh
dGlvKCkpCisgICAgICAgIHJldHVybiBibG9ja1NpemVGcm9tQXNwZWN0UmF0aW8oaG9yaXpvbnRh
bEJvcmRlckFuZFBhZGRpbmdFeHRlbnQoKSwgdmVydGljYWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50
KCksIHN0eWxlKCkubG9naWNhbEFzcGVjdFJhdGlvKCkgLCBzdHlsZSgpLmJveFNpemluZygpLCBs
b2dpY2FsV2lkdGgoKSk7CisKICAgICBpZiAoaC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSAmJiBp
c091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiAhaXNSZW5kZXJGcmFnbWVudGVkRmxvdygpKSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGlmIHRoZSBjb250YWluaW5nQmxvY2sgaGFz
IGEgcGVycGVuZGljdWxhciB3cml0aW5nIG1vZGUuCiAgICAgICAgIExheW91dFVuaXQgYXZhaWxh
YmxlSGVpZ2h0ID0gY29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodEZvclBvc2l0aW9uZWQoKmNv
bnRhaW5pbmdCbG9jaygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA5
NmU3MmQ0Zjg1YmM0OTNmYjQ3MjBiY2MyZTE4NTBlNDA4YjQxYzg0Li5jM2EzNmE3YmZmNmU1NDUy
MGNlYjA4ZDY4N2RiZmJiYzE5MGI1Y2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCkBAIC02OTYsNiArNjk2LDE4IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgaW5jcmVtZW50
VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnRJZk5lZWRlZChjb25zdCBJbnRTaXplJik7CiAKKyAg
ICBib29sIHNob3VsZENvbXB1dGVMb2dpY2FsSGVpZ2h0RnJvbUFzcGVjdFJhdGlvKCkgY29uc3Q7
CisgICAgYm9vbCBzaG91bGRDb21wdXRlTG9naWNhbFdpZHRoRnJvbUFzcGVjdFJhdGlvKCkgY29u
c3Q7CisgICAgYm9vbCBzaG91bGRDb21wdXRlTG9naWNhbFdpZHRoRnJvbUFzcGVjdFJhdGlvQW5k
SW5zZXRzKCkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlTG9naWNhbFdpZHRoRnJvbUFz
cGVjdFJhdGlvKFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiA9IG51bGxwdHIpIGNvbnN0OworCisg
ICAgc3RhdGljIExheW91dFVuaXQgYmxvY2tTaXplRnJvbUFzcGVjdFJhdGlvKExheW91dFVuaXQg
Ym9yZGVyUGFkZGluZ0lubGluZVN1bSwgTGF5b3V0VW5pdCBib3JkZXJQYWRkaW5nQmxvY2tTdW0s
IGRvdWJsZSBhc3BlY3RSYXRpbywgQm94U2l6aW5nIGJveFNpemluZywgTGF5b3V0VW5pdCBpbmxp
bmVTaXplKQorICAgIHsKKyAgICAgICAgaWYgKGJveFNpemluZyA9PSBCb3hTaXppbmc6OkJvcmRl
ckJveCkKKyAgICAgICAgICAgIHJldHVybiBpbmxpbmVTaXplIC8gTGF5b3V0VW5pdChhc3BlY3RS
YXRpbyk7CisgICAgICAgIHJldHVybiAoKGlubGluZVNpemUgLSBib3JkZXJQYWRkaW5nSW5saW5l
U3VtKSAvIExheW91dFVuaXQoYXNwZWN0UmF0aW8pKSArIGJvcmRlclBhZGRpbmdCbG9ja1N1bTsK
KyAgICB9CisKIHByaXZhdGU6CiAgICAgYm9vbCByZXBsYWNlZE1pbk1heExvZ2ljYWxIZWlnaHRD
b21wdXRlc0FzTm9uZShTaXplVHlwZSkgY29uc3Q7CiAKQEAgLTc0NCwxMSArNzU2LDYgQEAgcHJp
dmF0ZToKICAgICAKICAgICB2b2lkIGFwcGx5VG9wTGVmdExvY2F0aW9uT2Zmc2V0V2l0aEZsaXBw
aW5nKExheW91dFBvaW50JikgY29uc3Q7CiAKLSAgICBib29sIHNob3VsZENvbXB1dGVMb2dpY2Fs
SGVpZ2h0RnJvbUFzcGVjdFJhdGlvKCkgY29uc3Q7Ci0gICAgYm9vbCBzaG91bGRDb21wdXRlTG9n
aWNhbFdpZHRoRnJvbUFzcGVjdFJhdGlvKCkgY29uc3Q7Ci0gICAgYm9vbCBzaG91bGRDb21wdXRl
TG9naWNhbFdpZHRoRnJvbUFzcGVjdFJhdGlvQW5kSW5zZXRzKCkgY29uc3Q7Ci0gICAgTGF5b3V0
VW5pdCBjb21wdXRlTG9naWNhbFdpZHRoRnJvbUFzcGVjdFJhdGlvKFJlbmRlckZyYWdtZW50Q29u
dGFpbmVyKiA9IG51bGxwdHIpIGNvbnN0OwotCiBwcml2YXRlOgogICAgIC8vIFRoZSB3aWR0aC9o
ZWlnaHQgb2YgdGhlIGNvbnRlbnRzICsgYm9yZGVycyArIHBhZGRpbmcuICBUaGUgeC95IGxvY2F0
aW9uIGlzIHJlbGF0aXZlIHRvIG91ciBjb250YWluZXIgKHdoaWNoIGlzIG5vdCBhbHdheXMgb3Vy
IHBhcmVudCkuCiAgICAgTGF5b3V0UmVjdCBtX2ZyYW1lUmVjdDsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNmI1NWMxZTgy
MjgzNzIwMjcxMGNhMDdlNDUzYjc4ZjJlYzY3OThjLi5iOTgxODM0MzU2MmM1Yjg2ZWQxMTg2N2U1
OTdhMzZjOWY3NjIzNmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDEtMDcgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBUYWtlIGFzcGVjdC1yYXRpbyBpbnRv
IGFjY291bnQgZm9yIHBlcmNlbnRhZ2UgcmVzb2x1dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIHNvbWUgdGVzdHMgdGhhdCBwYXNzIG5v
dy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDEtMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBOdWxsIGNoZWNr
IGdsb2JhbCBvYmplY3QgaW4gQmxvYjo6c3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhYmUy
ZjE4MzlmNjYzZDMzMzQ4OTBhZThlMTUxMzQwMzBkNDIyMzZhLi44ODg1ZTljY2M2Nzg3OTI1NmM5
MWEwZDlkMjY3OTE5ZGNhNTY5YmUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ0NjIsOSArNDQ2
Miw2IEBAIHdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNpemluZy9hc3BlY3QtcmF0aW8vCiB3ZWJraXQub3JnL2IvMjE0NDYzIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvL2lu
dHJpbnNpYy1zaXplLTAwNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
MjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNw
ZWN0LXJhdGlvL2ludHJpbnNpYy1zaXplLTAwOC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zaXppbmcvYXNwZWN0LXJhdGlvL3BhcnNpbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS1pbnZh
bGlkLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9hc3BlY3QtcmF0aW8vcGVy
Y2VudGFnZS1yZXNvbHV0aW9uLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXpp
bmcvYXNwZWN0LXJhdGlvL3BlcmNlbnRhZ2UtcmVzb2x1dGlvbi0wMDIuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIxNDQ2MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2FzcGVjdC1yYXRpby9wZXJjZW50YWdlLXJlc29sdXRpb24t
MDA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNp
Yy1zaXplL2NvbnRhaW4taW50cmluc2ljLXNpemUtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1zaXplL2NvbnRhaW4taW50cmluc2ljLXNp
emUtMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJp
bnNpYy1zaXplL2NvbnRhaW4taW50cmluc2ljLXNpemUtMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417249</attachid>
            <date>2021-01-08 00:39:31 -0800</date>
            <delta_ts>2021-01-11 12:14:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220143-20210108093930.patch</filename>
            <type>text/plain</type>
            <size>7922</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgzM2QxN2YxOWUxOWNj
NDE0ZjhmN2U2ODNmNDg1NzU1MTkyZWYyZi4uZGUxYmRmODBhYzc3NWJlZTA1YTVjYjkxZTczOTg2
Mzc3MTc3OTQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAxLTA4ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBhc3BlY3QtcmF0aW8gaW50
byBhY2NvdW50IGZvciBwZXJjZW50YWdlIHJlc29sdXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDE0MworCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZCBhc3BlY3QtcmF0aW8gaGFuZGxpbmcgdG8gY29u
dGFpbmluZyBibG9jayBhdmFpbGFibGUgaGVpZ2h0CisgICAgICAgIGNvbXB1dGF0aW9ucyB0byBm
aXggcGVyY2VudGFnZSByZXNvbHV0aW9uIG9uIGl0cyBjaGlsZHJlbi4KKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
YXZhaWxhYmxlTG9naWNhbEhlaWdodEZvclBlcmNlbnRhZ2VDb21wdXRhdGlvbiBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmF2YWlsYWJsZUxvZ2ljYWxIZWlnaHRVc2luZyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpibG9ja1NpemVGcm9tQXNwZWN0UmF0aW8pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YmxvY2tTaXpl
RnJvbUFzcGVjdFJhdGlvKToKKwogMjAyMS0wMS0wNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIHBheXBhbC5jb206IHRleHQgYXQgdGhlIGJvdHRvbSBvZiB0aGUg
cGFnZSBpcyBub3QgYWxpZ25lZCBwcm9wZXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKaW5kZXggOGNhYjc2YWZlNTdkMDdmYTdkNmJiNmE0MTM5YjNlOTUzY2ExY2Yz
Ny4uZjNjMzFlNzMzNmZjZWU0MWEzYWZlZWI5MzYzODJhNGMzMzhjNjk0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0zMjA3LDYgKzMyMDcsOCBAQCBPcHRp
b25hbDxMYXlvdXRVbml0PiBSZW5kZXJCbG9jazo6YXZhaWxhYmxlTG9naWNhbEhlaWdodEZvclBl
cmNlbnRhZ2VDb21wdXRhdGlvbgogICAgIGVsc2UgaWYgKHN0eWxlVG9Vc2UubG9naWNhbEhlaWdo
dCgpLmlzRml4ZWQoKSkgewogICAgICAgICBMYXlvdXRVbml0IGNvbnRlbnRCb3hIZWlnaHQgPSBh
ZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdodEZvckJveFNpemluZygoTGF5b3V0VW5pdClzdHls
ZVRvVXNlLmxvZ2ljYWxIZWlnaHQoKS52YWx1ZSgpKTsKICAgICAgICAgYXZhaWxhYmxlSGVpZ2h0
ID0gc3RkOjptYXgoMF9sdSwgY29uc3RyYWluQ29udGVudEJveExvZ2ljYWxIZWlnaHRCeU1pbk1h
eChjb250ZW50Qm94SGVpZ2h0IC0gc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpLCBXVEY6Om51bGxv
cHQpKTsKKyAgICB9IGVsc2UgaWYgKHNob3VsZENvbXB1dGVMb2dpY2FsSGVpZ2h0RnJvbUFzcGVj
dFJhdGlvKCkpIHsKKyAgICAgICAgYXZhaWxhYmxlSGVpZ2h0ID0gYmxvY2tTaXplRnJvbUFzcGVj
dFJhdGlvKGhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCksIHZlcnRpY2FsQm9yZGVy
QW5kUGFkZGluZ0V4dGVudCgpLCBzdHlsZSgpLmxvZ2ljYWxBc3BlY3RSYXRpbygpLCBzdHlsZSgp
LmJveFNpemluZygpLCBsb2dpY2FsV2lkdGgoKSk7CiAgICAgfSBlbHNlIGlmIChzdHlsZVRvVXNl
LmxvZ2ljYWxIZWlnaHQoKS5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSAmJiAhaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkV2l0aFNwZWNpZmllZEhlaWdodCkgewogICAgICAgICBPcHRpb25hbDxMYXlvdXRV
bml0PiBoZWlnaHRXaXRoU2Nyb2xsYmFyID0gY29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0
KHN0eWxlVG9Vc2UubG9naWNhbEhlaWdodCgpKTsKICAgICAgICAgaWYgKGhlaWdodFdpdGhTY3Jv
bGxiYXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNzA2ZDlj
YjBhY2MxYzBjNDg4NDYxZjVjMGIyMzU3N2Y4YWI1NjQ0MS4uYjhkNjQ0OGZlNTFiMTkwMTI2NzFm
NmVlZTQ1ODM4MDYxNWMyODY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKQEAgLTI4MjgsMTQgKzI4MjgsNiBAQCB2b2lkIFJlbmRlckJveDo6dXBkYXRlTG9naWNhbEhl
aWdodCgpCiAgICAgc2V0TWFyZ2luQWZ0ZXIoY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fYWZ0
ZXIpOwogfQogCi1zdGF0aWMgTGF5b3V0VW5pdCBibG9ja1NpemVGcm9tQXNwZWN0UmF0aW8oTGF5
b3V0VW5pdCBib3JkZXJQYWRkaW5nSW5saW5lU3VtLCBMYXlvdXRVbml0IGJvcmRlclBhZGRpbmdC
bG9ja1N1bSwgZG91YmxlIGFzcGVjdFJhdGlvLCBCb3hTaXppbmcgYm94U2l6aW5nLCBMYXlvdXRV
bml0IGlubGluZVNpemUpCi17Ci0gICAgaWYgKGJveFNpemluZyA9PSBCb3hTaXppbmc6OkJvcmRl
ckJveCkKLSAgICAgICAgcmV0dXJuIGlubGluZVNpemUgLyBMYXlvdXRVbml0KGFzcGVjdFJhdGlv
KTsKLQotICAgIHJldHVybiAoKGlubGluZVNpemUgLSBib3JkZXJQYWRkaW5nSW5saW5lU3VtKSAv
IExheW91dFVuaXQoYXNwZWN0UmF0aW8pKSArIGJvcmRlclBhZGRpbmdCbG9ja1N1bTsKLX0KLQog
UmVuZGVyQm94OjpMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgUmVuZGVyQm94Ojpjb21wdXRl
TG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNh
bFRvcCkgY29uc3QKIHsKICAgICBMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgY29tcHV0ZWRW
YWx1ZXM7CkBAIC0zMzE0LDYgKzMzMDYsOSBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6YXZhaWxh
YmxlTG9naWNhbEhlaWdodFVzaW5nKGNvbnN0IExlbmd0aCYgaCwgQXZhaWxhYmxlTG9naQogICAg
ICAgICAgICAgcmV0dXJuIHN0cmV0Y2hlZEhlaWdodC52YWx1ZSgpOwogICAgIH0KIAorICAgIGlm
IChzaG91bGRDb21wdXRlTG9naWNhbEhlaWdodEZyb21Bc3BlY3RSYXRpbygpKQorICAgICAgICBy
ZXR1cm4gYmxvY2tTaXplRnJvbUFzcGVjdFJhdGlvKGhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5n
RXh0ZW50KCksIHZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpLCBzdHlsZSgpLmxvZ2lj
YWxBc3BlY3RSYXRpbygpLCBzdHlsZSgpLmJveFNpemluZygpLCBsb2dpY2FsV2lkdGgoKSk7CisK
ICAgICBpZiAoaC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSAmJiBpc091dE9mRmxvd1Bvc2l0aW9u
ZWQoKSAmJiAhaXNSZW5kZXJGcmFnbWVudGVkRmxvdygpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBU
aGlzIGlzIHdyb25nIGlmIHRoZSBjb250YWluaW5nQmxvY2sgaGFzIGEgcGVycGVuZGljdWxhciB3
cml0aW5nIG1vZGUuCiAgICAgICAgIExheW91dFVuaXQgYXZhaWxhYmxlSGVpZ2h0ID0gY29udGFp
bmluZ0Jsb2NrTG9naWNhbEhlaWdodEZvclBvc2l0aW9uZWQoKmNvbnRhaW5pbmdCbG9jaygpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCA5NmU3MmQ0Zjg1YmM0OTNmYjQ3
MjBiY2MyZTE4NTBlNDA4YjQxYzg0Li5jM2EzNmE3YmZmNmU1NDUyMGNlYjA4ZDY4N2RiZmJiYzE5
MGI1Y2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC02OTYsNiArNjk2
LDE4IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBp
eGVsQ291bnRJZk5lZWRlZChjb25zdCBJbnRTaXplJik7CiAKKyAgICBib29sIHNob3VsZENvbXB1
dGVMb2dpY2FsSGVpZ2h0RnJvbUFzcGVjdFJhdGlvKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRD
b21wdXRlTG9naWNhbFdpZHRoRnJvbUFzcGVjdFJhdGlvKCkgY29uc3Q7CisgICAgYm9vbCBzaG91
bGRDb21wdXRlTG9naWNhbFdpZHRoRnJvbUFzcGVjdFJhdGlvQW5kSW5zZXRzKCkgY29uc3Q7Cisg
ICAgTGF5b3V0VW5pdCBjb21wdXRlTG9naWNhbFdpZHRoRnJvbUFzcGVjdFJhdGlvKFJlbmRlckZy
YWdtZW50Q29udGFpbmVyKiA9IG51bGxwdHIpIGNvbnN0OworCisgICAgc3RhdGljIExheW91dFVu
aXQgYmxvY2tTaXplRnJvbUFzcGVjdFJhdGlvKExheW91dFVuaXQgYm9yZGVyUGFkZGluZ0lubGlu
ZVN1bSwgTGF5b3V0VW5pdCBib3JkZXJQYWRkaW5nQmxvY2tTdW0sIGRvdWJsZSBhc3BlY3RSYXRp
bywgQm94U2l6aW5nIGJveFNpemluZywgTGF5b3V0VW5pdCBpbmxpbmVTaXplKQorICAgIHsKKyAg
ICAgICAgaWYgKGJveFNpemluZyA9PSBCb3hTaXppbmc6OkJvcmRlckJveCkKKyAgICAgICAgICAg
IHJldHVybiBpbmxpbmVTaXplIC8gTGF5b3V0VW5pdChhc3BlY3RSYXRpbyk7CisgICAgICAgIHJl
dHVybiAoKGlubGluZVNpemUgLSBib3JkZXJQYWRkaW5nSW5saW5lU3VtKSAvIExheW91dFVuaXQo
YXNwZWN0UmF0aW8pKSArIGJvcmRlclBhZGRpbmdCbG9ja1N1bTsKKyAgICB9CisKIHByaXZhdGU6
CiAgICAgYm9vbCByZXBsYWNlZE1pbk1heExvZ2ljYWxIZWlnaHRDb21wdXRlc0FzTm9uZShTaXpl
VHlwZSkgY29uc3Q7CiAKQEAgLTc0NCwxMSArNzU2LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICB2
b2lkIGFwcGx5VG9wTGVmdExvY2F0aW9uT2Zmc2V0V2l0aEZsaXBwaW5nKExheW91dFBvaW50Jikg
Y29uc3Q7CiAKLSAgICBib29sIHNob3VsZENvbXB1dGVMb2dpY2FsSGVpZ2h0RnJvbUFzcGVjdFJh
dGlvKCkgY29uc3Q7Ci0gICAgYm9vbCBzaG91bGRDb21wdXRlTG9naWNhbFdpZHRoRnJvbUFzcGVj
dFJhdGlvKCkgY29uc3Q7Ci0gICAgYm9vbCBzaG91bGRDb21wdXRlTG9naWNhbFdpZHRoRnJvbUFz
cGVjdFJhdGlvQW5kSW5zZXRzKCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBjb21wdXRlTG9naWNh
bFdpZHRoRnJvbUFzcGVjdFJhdGlvKFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiA9IG51bGxwdHIp
IGNvbnN0OwotCiBwcml2YXRlOgogICAgIC8vIFRoZSB3aWR0aC9oZWlnaHQgb2YgdGhlIGNvbnRl
bnRzICsgYm9yZGVycyArIHBhZGRpbmcuICBUaGUgeC95IGxvY2F0aW9uIGlzIHJlbGF0aXZlIHRv
IG91ciBjb250YWluZXIgKHdoaWNoIGlzIG5vdCBhbHdheXMgb3VyIHBhcmVudCkuCiAgICAgTGF5
b3V0UmVjdCBtX2ZyYW1lUmVjdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMGY2Y2YxMmEyNTJjYjljODg4ZGU0ZDJlOTQ5
OWI0ZDhmNWM1MGY5Li41ZDk0MWJlM2NlN2FmNTZmNTEzY2NiYmIwZjUxNTYyMWVkMzBmNTY2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDEtMDggIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlh
LmNvbT4KKworICAgICAgICBUYWtlIGFzcGVjdC1yYXRpbyBpbnRvIGFjY291bnQgZm9yIHBlcmNl
bnRhZ2UgcmVzb2x1dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIwMTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgRW5hYmxlIHNvbWUgdGVzdHMgdGhhdCBwYXNzIG5vdy4KKworICAgICAgICAqIFRlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMjEtMDEtMDcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBwYXlwYWwuY29tOiB0ZXh0IGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2Ug
aXMgbm90IGFsaWduZWQgcHJvcGVybHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFiZTJmMTgzOWY2
NjNkMzMzNDg5MGFlOGUxNTEzNDAzMGQ0MjIzNmEuLjg4ODVlOWNjYzY3ODc5MjU2YzkxYTBkOWQy
Njc5MTlkY2E1NjliZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQ2Miw5ICs0NDYyLDYgQEAg
d2Via2l0Lm9yZy9iLzIxNDQ2MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2l6aW5nL2FzcGVjdC1yYXRpby8KIHdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9hc3BlY3QtcmF0aW8vaW50cmluc2lj
LXNpemUtMDA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTQ0NjMg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9hc3BlY3QtcmF0
aW8vaW50cmluc2ljLXNpemUtMDA4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemlu
Zy9hc3BlY3QtcmF0aW8vcGFyc2luZy9jb250YWluLWludHJpbnNpYy1zaXplLWludmFsaWQuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIxNDQ2MyBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2FzcGVjdC1yYXRpby9wZXJjZW50YWdl
LXJlc29sdXRpb24tMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8y
MTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9hc3Bl
Y3QtcmF0aW8vcGVyY2VudGFnZS1yZXNvbHV0aW9uLTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvL3BlcmNlbnRhZ2UtcmVzb2x1dGlvbi0wMDQuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIxNDQ2MyBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUv
Y29udGFpbi1pbnRyaW5zaWMtc2l6ZS0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzIxNDQ2MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS0wMDIu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIxNDQ2MyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNp
emUvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS0wMDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417400</attachid>
            <date>2021-01-11 12:14:58 -0800</date>
            <delta_ts>2021-01-11 13:11:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220143-20210111211456.patch</filename>
            <type>text/plain</type>
            <size>8372</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFhMzdkYjgzMjU4OTU0
NGI4ZjczOTRhMGQ3Y2UxYTEwMDgzOWQ0Mi4uNWUwY2Q1NzFiNjlhZmRjYjdmZTJkYzlkNTVhNjQ5
MzVkNDQ5MDY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTAxLTExICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBhc3BlY3QtcmF0aW8gaW50
byBhY2NvdW50IGZvciBwZXJjZW50YWdlIHJlc29sdXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDE0MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHJlc3MgcmV2aWV3IGZlZWRiYWNrIHRoYXQg
SSBtaXNpbnRlcnByZXRlZCBhbmQgZGlkIG5vdAorICAgICAgICBpbmNsdWRlIGluIHIyNzEyOTMu
CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmF2YWlsYWJsZUxvZ2ljYWxIZWlnaHRGb3JQZXJjZW50YWdlQ29tcHV0
YXRpb24gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aW5saW5lU2l6ZUZyb21Bc3BlY3RSYXRpbyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6YXZhaWxhYmxlTG9naWNhbEhlaWdodFVzaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsSGVpZ2h0VXNp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbFdp
ZHRoRnJvbUFzcGVjdFJhdGlvIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmJsb2NrU2l6ZUZyb21Bc3BlY3RSYXRp
byk6CisKIDIwMjEtMDEtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KIAogICAg
ICAgICBLZWVwIG5ld2x5IGNyZWF0ZWQgSURCSW5kZXggb2JqZWN0cyBpbiBkZWxldGVkIG1hcCB3
aGVuIElEQlRyYW5zYWN0aW9uIGlzIGFib3J0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCmluZGV4IGYzYzMxZTczMzZmY2VlNDFhM2FmZWViOTM2MzgyYTRjMzM4YzY5
NDguLmVhMGMwZGEwZmMxY2M1NTY5ZjFjZWEzYWViMWI2NmExY2YwYzAyNjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMzIwOCw3ICszMjA4LDcgQEAgT3B0
aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2s6OmF2YWlsYWJsZUxvZ2ljYWxIZWlnaHRGb3JQ
ZXJjZW50YWdlQ29tcHV0YXRpb24KICAgICAgICAgTGF5b3V0VW5pdCBjb250ZW50Qm94SGVpZ2h0
ID0gYWRqdXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JCb3hTaXppbmcoKExheW91dFVuaXQp
c3R5bGVUb1VzZS5sb2dpY2FsSGVpZ2h0KCkudmFsdWUoKSk7CiAgICAgICAgIGF2YWlsYWJsZUhl
aWdodCA9IHN0ZDo6bWF4KDBfbHUsIGNvbnN0cmFpbkNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0QnlN
aW5NYXgoY29udGVudEJveEhlaWdodCAtIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSwgV1RGOjpu
dWxsb3B0KSk7CiAgICAgfSBlbHNlIGlmIChzaG91bGRDb21wdXRlTG9naWNhbEhlaWdodEZyb21B
c3BlY3RSYXRpbygpKSB7Ci0gICAgICAgIGF2YWlsYWJsZUhlaWdodCA9IGJsb2NrU2l6ZUZyb21B
c3BlY3RSYXRpbyhob3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpLCB2ZXJ0aWNhbEJv
cmRlckFuZFBhZGRpbmdFeHRlbnQoKSwgc3R5bGUoKS5sb2dpY2FsQXNwZWN0UmF0aW8oKSwgc3R5
bGUoKS5ib3hTaXppbmcoKSwgbG9naWNhbFdpZHRoKCkpOworICAgICAgICBhdmFpbGFibGVIZWln
aHQgPSBibG9ja1NpemVGcm9tQXNwZWN0UmF0aW8oaG9yaXpvbnRhbEJvcmRlckFuZFBhZGRpbmdF
eHRlbnQoKSwgdmVydGljYWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCksIExheW91dFVuaXQoc3R5
bGUoKS5sb2dpY2FsQXNwZWN0UmF0aW8oKSksIHN0eWxlKCkuYm94U2l6aW5nKCksIGxvZ2ljYWxX
aWR0aCgpKTsKICAgICB9IGVsc2UgaWYgKHN0eWxlVG9Vc2UubG9naWNhbEhlaWdodCgpLmlzUGVy
Y2VudE9yQ2FsY3VsYXRlZCgpICYmICFpc091dE9mRmxvd1Bvc2l0aW9uZWRXaXRoU3BlY2lmaWVk
SGVpZ2h0KSB7CiAgICAgICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IGhlaWdodFdpdGhTY3JvbGxi
YXIgPSBjb21wdXRlUGVyY2VudGFnZUxvZ2ljYWxIZWlnaHQoc3R5bGVUb1VzZS5sb2dpY2FsSGVp
Z2h0KCkpOwogICAgICAgICBpZiAoaGVpZ2h0V2l0aFNjcm9sbGJhcikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBiOGQ2NDQ4ZmU1MWIxOTAxMjY3MWY2ZWVlNDU4
MzgwNjE1YzI4NjlhLi41YmVkNmEyZGI1NzE4OTk4ZDJiZmE3OWJkZGQ3MTkzODkyODhlMWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMjQzNSw3ICsyNDM1LDcg
QEAgdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZUxvZ2ljYWxXaWR0aCgpCiAgICAgc2V0TWFyZ2luRW5k
KGNvbXB1dGVkVmFsdWVzLm1fbWFyZ2lucy5tX2VuZCk7CiB9CiAKLXN0YXRpYyBMYXlvdXRVbml0
IGlubGluZVNpemVGcm9tQXNwZWN0UmF0aW8oTGF5b3V0VW5pdCBib3JkZXJQYWRkaW5nSW5saW5l
U3VtLCBMYXlvdXRVbml0IGJvcmRlclBhZGRpbmdCbG9ja1N1bSwgZG91YmxlIGFzcGVjdFJhdGlv
LCBCb3hTaXppbmcgYm94U2l6aW5nLCBMYXlvdXRVbml0IGJsb2NrU2l6ZSkKK3N0YXRpYyBMYXlv
dXRVbml0IGlubGluZVNpemVGcm9tQXNwZWN0UmF0aW8oTGF5b3V0VW5pdCBib3JkZXJQYWRkaW5n
SW5saW5lU3VtLCBMYXlvdXRVbml0IGJvcmRlclBhZGRpbmdCbG9ja1N1bSwgTGF5b3V0VW5pdCBh
c3BlY3RSYXRpbywgQm94U2l6aW5nIGJveFNpemluZywgTGF5b3V0VW5pdCBibG9ja1NpemUpCiB7
CiAgICAgaWYgKGJveFNpemluZyA9PSBCb3hTaXppbmc6OkJvcmRlckJveCkKICAgICAgICAgcmV0
dXJuIGJsb2NrU2l6ZSAqIExheW91dFVuaXQoYXNwZWN0UmF0aW8pOwpAQCAtMjg5Niw3ICsyODk2
LDcgQEAgUmVuZGVyQm94OjpMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgUmVuZGVyQm94Ojpj
b21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbmkKICAgICAgICAgaWYgKGNoZWNrTWluTWF4SGVp
Z2h0KSB7CiAgICAgICAgICAgICBMYXlvdXRVbml0IGludHJpbnNpY0hlaWdodCA9IGNvbXB1dGVk
VmFsdWVzLm1fZXh0ZW50IC0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKTsKICAgICAg
ICAgICAgIGlmIChzaG91bGRDb21wdXRlTG9naWNhbEhlaWdodEZyb21Bc3BlY3RSYXRpbygpKQot
ICAgICAgICAgICAgICAgIGhlaWdodFJlc3VsdCA9IGJsb2NrU2l6ZUZyb21Bc3BlY3RSYXRpbyho
b3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpLCB2ZXJ0aWNhbEJvcmRlckFuZFBhZGRp
bmdFeHRlbnQoKSwgc3R5bGUoKS5sb2dpY2FsQXNwZWN0UmF0aW8oKSwgc3R5bGUoKS5ib3hTaXpp
bmcoKSwgbG9naWNhbFdpZHRoKCkpOworICAgICAgICAgICAgICAgIGhlaWdodFJlc3VsdCA9IGJs
b2NrU2l6ZUZyb21Bc3BlY3RSYXRpbyhob3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgp
LCB2ZXJ0aWNhbEJvcmRlckFuZFBhZGRpbmdFeHRlbnQoKSwgTGF5b3V0VW5pdChzdHlsZSgpLmxv
Z2ljYWxBc3BlY3RSYXRpbygpKSwgc3R5bGUoKS5ib3hTaXppbmcoKSwgbG9naWNhbFdpZHRoKCkp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGhlaWdodFJlc3VsdCA9IGNvbXB1
dGVMb2dpY2FsSGVpZ2h0VXNpbmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwgc3R5bGUoKS5sb2dpY2Fs
SGVpZ2h0KCksIGludHJpbnNpY0hlaWdodCkudmFsdWVPcihjb21wdXRlZFZhbHVlcy5tX2V4dGVu
dCk7CiAgICAgICAgICAgICBoZWlnaHRSZXN1bHQgPSBjb25zdHJhaW5Mb2dpY2FsSGVpZ2h0QnlN
aW5NYXgoaGVpZ2h0UmVzdWx0LCBpbnRyaW5zaWNIZWlnaHQpOwpAQCAtMzMwNyw3ICszMzA3LDcg
QEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmF2YWlsYWJsZUxvZ2ljYWxIZWlnaHRVc2luZyhjb25z
dCBMZW5ndGgmIGgsIEF2YWlsYWJsZUxvZ2kKICAgICB9CiAKICAgICBpZiAoc2hvdWxkQ29tcHV0
ZUxvZ2ljYWxIZWlnaHRGcm9tQXNwZWN0UmF0aW8oKSkKLSAgICAgICAgcmV0dXJuIGJsb2NrU2l6
ZUZyb21Bc3BlY3RSYXRpbyhob3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpLCB2ZXJ0
aWNhbEJvcmRlckFuZFBhZGRpbmdFeHRlbnQoKSwgc3R5bGUoKS5sb2dpY2FsQXNwZWN0UmF0aW8o
KSwgc3R5bGUoKS5ib3hTaXppbmcoKSwgbG9naWNhbFdpZHRoKCkpOworICAgICAgICByZXR1cm4g
YmxvY2tTaXplRnJvbUFzcGVjdFJhdGlvKGhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50
KCksIHZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpLCBMYXlvdXRVbml0KHN0eWxlKCku
bG9naWNhbEFzcGVjdFJhdGlvKCkpLCBzdHlsZSgpLmJveFNpemluZygpLCBsb2dpY2FsV2lkdGgo
KSk7CiAKICAgICBpZiAoaC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSAmJiBpc091dE9mRmxvd1Bv
c2l0aW9uZWQoKSAmJiAhaXNSZW5kZXJGcmFnbWVudGVkRmxvdygpKSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIHdyb25nIGlmIHRoZSBjb250YWluaW5nQmxvY2sgaGFzIGEgcGVycGVuZGlj
dWxhciB3cml0aW5nIG1vZGUuCkBAIC00MDY5LDcgKzQwNjksNyBAQCB2b2lkIFJlbmRlckJveDo6
Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsSGVpZ2h0VXNpbmcoU2l6ZVR5cGUgaGVpZ2h0VHlwZSwg
TGVuZ3RoCiAgICAgICAgIGlmIChsb2dpY2FsSGVpZ2h0TGVuZ3RoLmlzSW50cmluc2ljKCkpCiAg
ICAgICAgICAgICByZXNvbHZlZExvZ2ljYWxIZWlnaHQgPSBjb21wdXRlSW50cmluc2ljTG9naWNh
bENvbnRlbnRIZWlnaHRVc2luZyhsb2dpY2FsSGVpZ2h0TGVuZ3RoLCBjb250ZW50TG9naWNhbEhl
aWdodCwgYm9yZGVyc1BsdXNQYWRkaW5nKS52YWx1ZSgpOwogICAgICAgICBlbHNlIGlmIChmcm9t
QXNwZWN0UmF0aW8pIHsKLSAgICAgICAgICAgIHJlc29sdmVkTG9naWNhbEhlaWdodCA9IGJsb2Nr
U2l6ZUZyb21Bc3BlY3RSYXRpbyhob3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpLCB2
ZXJ0aWNhbEJvcmRlckFuZFBhZGRpbmdFeHRlbnQoKSwgc3R5bGUoKS5sb2dpY2FsQXNwZWN0UmF0
aW8oKSAsIHN0eWxlKCkuYm94U2l6aW5nKCksIGxvZ2ljYWxXaWR0aCgpKTsKKyAgICAgICAgICAg
IHJlc29sdmVkTG9naWNhbEhlaWdodCA9IGJsb2NrU2l6ZUZyb21Bc3BlY3RSYXRpbyhob3Jpem9u
dGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpLCB2ZXJ0aWNhbEJvcmRlckFuZFBhZGRpbmdFeHRl
bnQoKSwgTGF5b3V0VW5pdChzdHlsZSgpLmxvZ2ljYWxBc3BlY3RSYXRpbygpKSwgc3R5bGUoKS5i
b3hTaXppbmcoKSwgbG9naWNhbFdpZHRoKCkpOwogICAgICAgICAgICAgcmVzb2x2ZWRMb2dpY2Fs
SGVpZ2h0ID0gc3RkOjptYXgoTGF5b3V0VW5pdCgpLCByZXNvbHZlZExvZ2ljYWxIZWlnaHQgLSBi
b3JkZXJzUGx1c1BhZGRpbmcpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlc29sdmVk
TG9naWNhbEhlaWdodCA9IGFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5n
KHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxIZWlnaHRMZW5ndGgsIGNvbnRhaW5lckxvZ2ljYWxIZWln
aHQpKTsKQEAgLTUwMjcsNyArNTAyNyw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRl
TG9naWNhbFdpZHRoRnJvbUFzcGVjdFJhdGlvKFJlbmRlckZyYWdtZW50Q29udGFpbmVyCiAgICAg
YXV0byBjb21wdXRlZFZhbHVlcyA9IGNvbXB1dGVMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQo
KSwgbG9naWNhbFRvcCgpKTsKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHRmb3JBc3BlY3RS
YXRpbyA9IGNvbXB1dGVkVmFsdWVzLm1fZXh0ZW50OwogCi0gICAgYXV0byBsb2dpY2FsV2lkdGgg
PSBpbmxpbmVTaXplRnJvbUFzcGVjdFJhdGlvKGhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nRXh0
ZW50KCksIHZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpLCBzdHlsZSgpLmxvZ2ljYWxB
c3BlY3RSYXRpbygpLCBzdHlsZSgpLmJveFNpemluZygpLCBsb2dpY2FsSGVpZ2h0Zm9yQXNwZWN0
UmF0aW8pOworICAgIGF1dG8gbG9naWNhbFdpZHRoID0gaW5saW5lU2l6ZUZyb21Bc3BlY3RSYXRp
byhob3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpLCB2ZXJ0aWNhbEJvcmRlckFuZFBh
ZGRpbmdFeHRlbnQoKSwgTGF5b3V0VW5pdChzdHlsZSgpLmxvZ2ljYWxBc3BlY3RSYXRpbygpKSwg
c3R5bGUoKS5ib3hTaXppbmcoKSwgbG9naWNhbEhlaWdodGZvckFzcGVjdFJhdGlvKTsKIAogICAg
IExheW91dFVuaXQgY29udGFpbmVyV2lkdGhJbklubGluZURpcmVjdGlvbiA9IHN0ZDo6bWF4PExh
eW91dFVuaXQ+KDAsIGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRlbnRJbkZyYWdt
ZW50KGZyYWdtZW50KSk7CiAgICAgcmV0dXJuIGNvbnN0cmFpbkxvZ2ljYWxXaWR0aEluRnJhZ21l
bnRCeU1pbk1heChsb2dpY2FsV2lkdGgsIGNvbnRhaW5lcldpZHRoSW5JbmxpbmVEaXJlY3Rpb24s
ICpjb250YWluaW5nQmxvY2soKSwgZnJhZ21lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5oCmluZGV4IGMzYTM2YTdiZmY2ZTU0NTIwY2ViMDhkNjg3ZGJmYmJjMTkwYjVjYmQuLmUz
MzQ1ZDdkNWM1ZDlmMmVmODkzN2M5MTYwM2M5Y2I5NTM0Nzk2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmgKQEAgLTcwMSwxMSArNzAxLDExIEBAIHByb3RlY3RlZDoKICAgICBi
b29sIHNob3VsZENvbXB1dGVMb2dpY2FsV2lkdGhGcm9tQXNwZWN0UmF0aW9BbmRJbnNldHMoKSBj
b25zdDsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVMb2dpY2FsV2lkdGhGcm9tQXNwZWN0UmF0aW8o
UmVuZGVyRnJhZ21lbnRDb250YWluZXIqID0gbnVsbHB0cikgY29uc3Q7CiAKLSAgICBzdGF0aWMg
TGF5b3V0VW5pdCBibG9ja1NpemVGcm9tQXNwZWN0UmF0aW8oTGF5b3V0VW5pdCBib3JkZXJQYWRk
aW5nSW5saW5lU3VtLCBMYXlvdXRVbml0IGJvcmRlclBhZGRpbmdCbG9ja1N1bSwgZG91YmxlIGFz
cGVjdFJhdGlvLCBCb3hTaXppbmcgYm94U2l6aW5nLCBMYXlvdXRVbml0IGlubGluZVNpemUpCisg
ICAgc3RhdGljIExheW91dFVuaXQgYmxvY2tTaXplRnJvbUFzcGVjdFJhdGlvKExheW91dFVuaXQg
Ym9yZGVyUGFkZGluZ0lubGluZVN1bSwgTGF5b3V0VW5pdCBib3JkZXJQYWRkaW5nQmxvY2tTdW0s
IExheW91dFVuaXQgYXNwZWN0UmF0aW8sIEJveFNpemluZyBib3hTaXppbmcsIExheW91dFVuaXQg
aW5saW5lU2l6ZSkKICAgICB7CiAgICAgICAgIGlmIChib3hTaXppbmcgPT0gQm94U2l6aW5nOjpC
b3JkZXJCb3gpCi0gICAgICAgICAgICByZXR1cm4gaW5saW5lU2l6ZSAvIExheW91dFVuaXQoYXNw
ZWN0UmF0aW8pOwotICAgICAgICByZXR1cm4gKChpbmxpbmVTaXplIC0gYm9yZGVyUGFkZGluZ0lu
bGluZVN1bSkgLyBMYXlvdXRVbml0KGFzcGVjdFJhdGlvKSkgKyBib3JkZXJQYWRkaW5nQmxvY2tT
dW07CisgICAgICAgICAgICByZXR1cm4gaW5saW5lU2l6ZSAvIGFzcGVjdFJhdGlvOworICAgICAg
ICByZXR1cm4gKChpbmxpbmVTaXplIC0gYm9yZGVyUGFkZGluZ0lubGluZVN1bSkgLyBhc3BlY3RS
YXRpbykgKyBib3JkZXJQYWRkaW5nQmxvY2tTdW07CiAgICAgfQogCiBwcml2YXRlOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>