<?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>237073</bug_id>
          
          <creation_ts>2022-02-22 19:28:07 -0800</creation_ts>
          <short_desc>[css-cascade] Support &apos;revert&apos; in @keyframes</short_desc>
          <delta_ts>2022-02-24 13:21:17 -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.webkit.org/show_bug.cgi?id=237152</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 name="Oriol Brufau">obrufau</reporter>
          <assigned_to name="Oriol Brufau">obrufau</assigned_to>
          <cc>darin</cc>
    
    <cc>graouts</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1844984</commentid>
    <comment_count>0</comment_count>
      <attachid>452930</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-22 19:28:07 -0800</bug_when>
    <thetext>Created attachment 452930
testcase

&apos;initial&apos;, &apos;unset&apos; and &apos;inherit&apos; work well in @keyframes.
But &apos;revert&apos; doesn&apos;t work, it just behaves as &apos;unset&apos;.
It works in Blink: https://chromium-review.googlesource.com/c/chromium/src/+/2132249</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844985</commentid>
    <comment_count>1</comment_count>
      <attachid>452931</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-22 19:41:06 -0800</bug_when>
    <thetext>Created attachment 452931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844989</commentid>
    <comment_count>2</comment_count>
      <attachid>452933</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-22 19:48:07 -0800</bug_when>
    <thetext>Created attachment 452933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845103</commentid>
    <comment_count>3</comment_count>
      <attachid>452968</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-23 05:53:03 -0800</bug_when>
    <thetext>Created attachment 452968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845104</commentid>
    <comment_count>4</comment_count>
      <attachid>452969</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-23 05:55:37 -0800</bug_when>
    <thetext>Created attachment 452969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845158</commentid>
    <comment_count>5</comment_count>
      <attachid>452969</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-23 08:55:21 -0800</bug_when>
    <thetext>Comment on attachment 452969
Patch

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

Seems fine as is, a few thoughts

&gt; Source/WebCore/style/StyleResolver.cpp:283
&gt; +    unsigned propertyCount = keyframe.properties().propertyCount();
&gt; +    bool hasRevert = false;
&gt; +    for (unsigned i = 0; i &lt; propertyCount; ++i) {

I think in future we should add begin/end to StyleProperties so loops like this can be a modern style for loop instead of an indexed one like this. Not in this patch, but important for the future, I think.

&gt; Source/WebCore/style/StyleResolver.cpp:284
&gt; +        const auto&amp; propertyReference = keyframe.properties().propertyAt(i);

This should just be &quot;auto&quot;. The wordier &quot;const auto&amp;&quot; has no benefit here as far as I can tell.

&gt; Source/WebCore/style/StyleResolver.cpp:292
&gt; +        if (const CSSValue* value = propertyReference.value())
&gt; +            hasRevert = hasRevert || value-&gt;isRevertValue();

I would write it this way:

    if (auto* value = propertyReference.value(); value &amp;&amp; value-&gt;isRevertValue())
        hasRevert = true;

There are many different styles, but once we are doing an if, I think it’s best to include both checks in the if, it’s useful to use auto in a case like this to make sure we don’t accidentally upcast? If we had a helper function, could also consider:

    hasRevert = hasRevert || isRevertValue(propertyReference.value());

Might be nice to save the work of getting the value and type-checking it entirely once we found a revert, but also that doesn’t seem to be an important optimization.

&gt; Source/WebCore/style/StyleResolver.cpp:309
&gt; +    ElementRuleCollector collector(element, m_ruleSets, context.selectorMatchingState);
&gt; +    collector.setPseudoElementRequest({ elementStyle.styleType() });
&gt; +    if (hasRevert) {
&gt; +        // In the animation origin, &apos;revert&apos; rolls back the cascaded value to the user level.
&gt; +        // Therefore, we need to collect UA and user rules.
&gt; +        collector.setMedium(&amp;m_mediaQueryEvaluator);
&gt; +        collector.matchUARules();
&gt; +        collector.matchUserRules();
&gt; +    }
&gt; +    collector.addAuthorKeyframeRules(keyframe);

This looks kind of expensive. Would like to know whether Antti or some other expert thinks this is OK. Not necessarily before landing? Also, if there is a lot of state in the ElementRuleCollector might be nice to get the match result and then let that go out of scope before allocating the Builder, by using a lambda, braces, or a helper function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845164</commentid>
    <comment_count>6</comment_count>
      <attachid>452969</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-23 09:15:42 -0800</bug_when>
    <thetext>Comment on attachment 452969
Patch

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

&gt;&gt; Source/WebCore/style/StyleResolver.cpp:309
&gt;&gt; +    collector.addAuthorKeyframeRules(keyframe);
&gt; 
&gt; This looks kind of expensive. Would like to know whether Antti or some other expert thinks this is OK. Not necessarily before landing? Also, if there is a lot of state in the ElementRuleCollector might be nice to get the match result and then let that go out of scope before allocating the Builder, by using a lambda, braces, or a helper function.

But ElementRuleCollector::matchResult() returns a reference to a member, if the ElementRuleCollector instance goes out of scope, wouldn&apos;t using the match result be undefined behavior? Or if I copy it, then it can also be slow if the vectors of matched properties are big.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845172</commentid>
    <comment_count>7</comment_count>
      <attachid>452969</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-23 09:30:10 -0800</bug_when>
    <thetext>Comment on attachment 452969
Patch

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

&gt;&gt;&gt; Source/WebCore/style/StyleResolver.cpp:309
&gt;&gt;&gt; +    collector.addAuthorKeyframeRules(keyframe);
&gt;&gt; 
&gt;&gt; This looks kind of expensive. Would like to know whether Antti or some other expert thinks this is OK. Not necessarily before landing? Also, if there is a lot of state in the ElementRuleCollector might be nice to get the match result and then let that go out of scope before allocating the Builder, by using a lambda, braces, or a helper function.
&gt; 
&gt; But ElementRuleCollector::matchResult() returns a reference to a member, if the ElementRuleCollector instance goes out of scope, wouldn&apos;t using the match result be undefined behavior? Or if I copy it, then it can also be slow if the vectors of matched properties are big.

Good point, we would have to make a copy. For now, I guess we can leave this as-is.

We can later add takeMatchResult which moves it instead of copying. For now, I we can leave this as-is, but I am not sure the current approach is ideal for memory use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845183</commentid>
    <comment_count>8</comment_count>
      <attachid>452969</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-23 09:48:15 -0800</bug_when>
    <thetext>Comment on attachment 452969
Patch

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

&gt;&gt; Source/WebCore/style/StyleResolver.cpp:284
&gt;&gt; +        const auto&amp; propertyReference = keyframe.properties().propertyAt(i);
&gt; 
&gt; This should just be &quot;auto&quot;. The wordier &quot;const auto&amp;&quot; has no benefit here as far as I can tell.

Not an expert, doesn&apos;t &quot;auto&quot; alone make an unnecessary copy? https://stackoverflow.com/questions/7138588/c11-auto-what-if-it-gets-a-constant-reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845196</commentid>
    <comment_count>9</comment_count>
      <attachid>452969</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-23 10:05:09 -0800</bug_when>
    <thetext>Comment on attachment 452969
Patch

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

&gt;&gt;&gt; Source/WebCore/style/StyleResolver.cpp:284
&gt;&gt;&gt; +        const auto&amp; propertyReference = keyframe.properties().propertyAt(i);
&gt;&gt; 
&gt;&gt; This should just be &quot;auto&quot;. The wordier &quot;const auto&amp;&quot; has no benefit here as far as I can tell.
&gt; 
&gt; Not an expert, doesn&apos;t &quot;auto&quot; alone make an unnecessary copy? https://stackoverflow.com/questions/7138588/c11-auto-what-if-it-gets-a-constant-reference

No.

The return value of propertyAt is a PropertyReference object. That object will always be copied (or moved). Using the &quot;const auto&amp;&quot; syntax has no effect on that one way or the other.

If the return value was a reference, that would be different, and then I would suggest &quot;auto&amp;&quot;, not &quot;const auto&amp;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845199</commentid>
    <comment_count>10</comment_count>
      <attachid>452997</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-23 10:11:13 -0800</bug_when>
    <thetext>Created attachment 452997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845200</commentid>
    <comment_count>11</comment_count>
      <attachid>452969</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-23 10:16:00 -0800</bug_when>
    <thetext>Comment on attachment 452969
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/style/StyleResolver.cpp:284
&gt;&gt;&gt;&gt; +        const auto&amp; propertyReference = keyframe.properties().propertyAt(i);
&gt;&gt;&gt; 
&gt;&gt;&gt; This should just be &quot;auto&quot;. The wordier &quot;const auto&amp;&quot; has no benefit here as far as I can tell.
&gt;&gt; 
&gt;&gt; Not an expert, doesn&apos;t &quot;auto&quot; alone make an unnecessary copy? https://stackoverflow.com/questions/7138588/c11-auto-what-if-it-gets-a-constant-reference
&gt; 
&gt; No.
&gt; 
&gt; The return value of propertyAt is a PropertyReference object. That object will always be copied (or moved). Using the &quot;const auto&amp;&quot; syntax has no effect on that one way or the other.
&gt; 
&gt; If the return value was a reference, that would be different, and then I would suggest &quot;auto&amp;&quot;, not &quot;const auto&amp;&quot;.

Ah, sure, somehow &quot;PropertyReference&quot; made my mind think it was a a reference XD.
Done.

&gt;&gt; Source/WebCore/style/StyleResolver.cpp:292
&gt;&gt; +            hasRevert = hasRevert || value-&gt;isRevertValue();
&gt; 
&gt; I would write it this way:
&gt; 
&gt;     if (auto* value = propertyReference.value(); value &amp;&amp; value-&gt;isRevertValue())
&gt;         hasRevert = true;
&gt; 
&gt; There are many different styles, but once we are doing an if, I think it’s best to include both checks in the if, it’s useful to use auto in a case like this to make sure we don’t accidentally upcast? If we had a helper function, could also consider:
&gt; 
&gt;     hasRevert = hasRevert || isRevertValue(propertyReference.value());
&gt; 
&gt; Might be nice to save the work of getting the value and type-checking it entirely once we found a revert, but also that doesn’t seem to be an important optimization.

Done.

&gt;&gt;&gt;&gt; Source/WebCore/style/StyleResolver.cpp:309
&gt;&gt;&gt;&gt; +    collector.addAuthorKeyframeRules(keyframe);
&gt;&gt;&gt; 
&gt;&gt;&gt; This looks kind of expensive. Would like to know whether Antti or some other expert thinks this is OK. Not necessarily before landing? Also, if there is a lot of state in the ElementRuleCollector might be nice to get the match result and then let that go out of scope before allocating the Builder, by using a lambda, braces, or a helper function.
&gt;&gt; 
&gt;&gt; But ElementRuleCollector::matchResult() returns a reference to a member, if the ElementRuleCollector instance goes out of scope, wouldn&apos;t using the match result be undefined behavior? Or if I copy it, then it can also be slow if the vectors of matched properties are big.
&gt; 
&gt; Good point, we would have to make a copy. For now, I guess we can leave this as-is.
&gt; 
&gt; We can later add takeMatchResult which moves it instead of copying. For now, I we can leave this as-is, but I am not sure the current approach is ideal for memory use.

OK, I guess I will wait a bit in case Antti says something, otherwise land anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845735</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-24 13:20:51 -0800</bug_when>
    <thetext>Committed r290457 (247758@main): &lt;https://commits.webkit.org/247758@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452997.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845736</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-24 13:21:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89436026&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>452930</attachid>
            <date>2022-02-22 19:28:07 -0800</date>
            <delta_ts>2022-02-22 19:28:07 -0800</delta_ts>
            <desc>testcase</desc>
            <filename>revert-keyframes.html</filename>
            <type>text/html</type>
            <size>560</size>
            <attacher name="Oriol Brufau">obrufau</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxzdHlsZT4KZGl2IHsKICB3aWR0aDogMTAwcHg7CiAgaGVpZ2h0OiAx
MDBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgYmFja2dyb3VuZC1jbGlwOiBjb250ZW50
LWJveDsKfQoKdWwgewogIG1hcmdpbjogMHB4OwogIHBhZGRpbmc6IDBweDsKICB3aWR0aDogMHB4
OwogIGhlaWdodDogMTAwJTsKICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKICBhbmltYXRpb246
IGFuaW0tcmV2ZXJ0IGxpbmVhciAycyAtMXMgcGF1c2VkOwp9CgpAa2V5ZnJhbWVzIGFuaW0tcmV2
ZXJ0IHsKICBmcm9tIHsgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDE2MHB4OyB9CiAgdG8geyBwYWRk
aW5nLWlubGluZS1zdGFydDogcmV2ZXJ0IC8qIDQwcHggKi87IH0KICAvKiBBdCA1MCUgaXQncyAo
MTYwcHggKyA0MHB4KSAvIDIgPSAxMDBweCAqLwp9Cjwvc3R5bGU+Cgo8cD5UZXN0IHBhc3NlcyBp
ZiB0aGVyZSBpcyBhIGZpbGxlZCBncmVlbiBzcXVhcmUgYW5kIDxzdHJvbmc+bm8gcmVkPC9zdHJv
bmc+LjwvcD4KPGRpdj4KICA8dWwgaWQ9InJldmVydCI+PC91bD4gCjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452931</attachid>
            <date>2022-02-22 19:41:06 -0800</date>
            <delta_ts>2022-02-22 19:48:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237073-20220223044105.patch</filename>
            <type>text/plain</type>
            <size>8986</size>
            <attacher name="Oriol Brufau">obrufau</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJmODIwYzJlZDFmOTYz
NzkzODliMzYzYzVjZTM3YzllMDhmYTAzOC4uZmI3ZjE4ZmQ3NjVkMTM2OTk3NTQ4MDNkYWExOGUx
YmZjM2I1YzQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAyLTIyICBPcmlv
bCBCcnVmYXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1jYXNjYWRlXSBT
dXBwb3J0ICdyZXZlcnQnIGluIEBrZXlmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lIHdhcyBjb25z
dHJ1Y3RpbmcgYSBSZW5kZXJTdHlsZSB3aXRoIG9ubHkgdGhlCisgICAgICAgIHN0eWxlcyBzcGVj
aWZpZWQgaW4gdGhlIEBrZXlmcmFtZXMuIEJ1dCBub3QgdGFraW5nIGludG8gYWNjb3VudCB0aGUg
VUEKKyAgICAgICAgYW5kIHVzZXIgcnVsZXMgdGhhdCBhZmZlY3QgdGhlIGVsZW1lbnQgbWVhbnQg
dGhhdCAncmV2ZXJ0JyB3YXMgYnJva2VuLgorICAgICAgICBTaW5jZSBCdWlsZGVyOjphcHBseVBy
b3BlcnR5IGRpZG4ndCBmaW5kIHRoZSBkZWNsYXJhdGlvbnMgZnJvbSBvdGhlcgorICAgICAgICBv
cmlnaW5zLCAncmV2ZXJ0JyBqdXN0IGJlaGF2ZXMgYXMgJ3Vuc2V0Jy4KKworICAgICAgICBUaGlz
IHBhdGNoIHNvbHZlcyBpdCBieSBkZXRlY3RpbmcgaWYgdGhlIEBrZXlmcmFtZXMgaGFzIGEgJ3Jl
dmVydCcgdmFsdWUKKyAgICAgICAgYW5kIGluIHRoYXQgY2FzZSBpdCBjb2xsZWN0cyB0aGUgVUEg
YW5kIHVzZXIgcnVsZXMgc28gdGhhdCBpdCBjYW4gYmUKKyAgICAgICAgcmVzb2x2ZWQgcHJvcGVy
bHkuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA3Lmh0
bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL3JldmVydC12YWwtMDA4Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLmh0bWwK
KworICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lKToKKwogMjAyMi0wMi0yMiAgUGFibG8g
U2FhdmVkcmEgIDxwc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBQcm9wZXJseSB1bmlu
aXRpYWxpemUgRUdMIGRpc3BsYXkgYmVmb3JlIHRlcm1pbmF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDM3MDIzNjA1MDVjYzNkMjgwYjA5YTBkNzM3ZjRmYzhl
MjBhMjJiNTAuLjIzNGE1YzExNzFiY2U3MzE2MDAxZjY5YzU4ZTAwMjM1MWYwOTg1MmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNzcsMzEgKzI3Nyw0NiBAQCBF
bGVtZW50U3R5bGUgUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVt
ZW50LCBjb25zdCBSZXNvbHV0aW9uQwogCiBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFJl
c29sdmVyOjpzdHlsZUZvcktleWZyYW1lKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJl
bmRlclN0eWxlJiBlbGVtZW50U3R5bGUsIGNvbnN0IFJlc29sdXRpb25Db250ZXh0JiBjb250ZXh0
LCBjb25zdCBTdHlsZVJ1bGVLZXlmcmFtZSYga2V5ZnJhbWUsIEtleWZyYW1lVmFsdWUmIGtleWZy
YW1lVmFsdWUpCiB7Ci0gICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwotICAgIHJlc3VsdC5hdXRob3JE
ZWNsYXJhdGlvbnMuYXBwZW5kKHsgJmtleWZyYW1lLnByb3BlcnRpZXMoKSwgU2VsZWN0b3JDaGVj
a2VyOjpNYXRjaEFsbCwgcHJvcGVydHlBbGxvd2xpc3RGb3JQc2V1ZG9JZChlbGVtZW50U3R5bGUu
c3R5bGVUeXBlKCkpIH0pOwotCi0gICAgYXV0byBzdGF0ZSA9IFN0YXRlKGVsZW1lbnQsIG51bGxw
dHIsIGNvbnRleHQuZG9jdW1lbnRFbGVtZW50U3R5bGUpOwotCi0gICAgc3RhdGUuc2V0U3R5bGUo
UmVuZGVyU3R5bGU6OmNsb25lUHRyKGVsZW1lbnRTdHlsZSkpOwotICAgIHN0YXRlLnNldFBhcmVu
dFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cihjb250ZXh0LnBhcmVudFN0eWxlID8gKmNvbnRl
eHQucGFyZW50U3R5bGUgOiBlbGVtZW50U3R5bGUpKTsKLQotICAgIEJ1aWxkZXIgYnVpbGRlcigq
c3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQoc3RhdGUpLCByZXN1bHQsIENhc2NhZGVMZXZl
bDo6QXV0aG9yKTsKLSAgICBidWlsZGVyLmFwcGx5QWxsUHJvcGVydGllcygpOwotCi0gICAgQWRq
dXN0ZXIgYWRqdXN0ZXIoZG9jdW1lbnQoKSwgKnN0YXRlLnBhcmVudFN0eWxlKCksIG51bGxwdHIs
IG51bGxwdHIpOwotICAgIGFkanVzdGVyLmFkanVzdCgqc3RhdGUuc3R5bGUoKSwgc3RhdGUudXNl
ckFnZW50QXBwZWFyYW5jZVN0eWxlKCkpOwotCiAgICAgLy8gQWRkIGFsbCB0aGUgYW5pbWF0aW5n
IHByb3BlcnRpZXMgdG8gdGhlIGtleWZyYW1lLgogICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQg
PSBrZXlmcmFtZS5wcm9wZXJ0aWVzKCkucHJvcGVydHlDb3VudCgpOworICAgIGJvb2wgaGFzUmV2
ZXJ0ID0gZmFsc2U7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5Q291bnQ7
ICsraSkgewotICAgICAgICBhdXRvIHByb3BlcnR5ID0gQ1NTUHJvcGVydHk6OnJlc29sdmVEaXJl
Y3Rpb25Bd2FyZVByb3BlcnR5KGtleWZyYW1lLnByb3BlcnRpZXMoKS5wcm9wZXJ0eUF0KGkpLmlk
KCksIGVsZW1lbnRTdHlsZS5kaXJlY3Rpb24oKSwgZWxlbWVudFN0eWxlLndyaXRpbmdNb2RlKCkp
OworICAgICAgICBhdXRvIHByb3BlcnR5UmVmZXJlbmNlID0ga2V5ZnJhbWUucHJvcGVydGllcygp
LnByb3BlcnR5QXQoaSk7CisgICAgICAgIGF1dG8gcHJvcGVydHkgPSBDU1NQcm9wZXJ0eTo6cmVz
b2x2ZURpcmVjdGlvbkF3YXJlUHJvcGVydHkocHJvcGVydHlSZWZlcmVuY2UuaWQoKSwgZWxlbWVu
dFN0eWxlLmRpcmVjdGlvbigpLCBlbGVtZW50U3R5bGUud3JpdGluZ01vZGUoKSk7CiAgICAgICAg
IC8vIFRoZSBhbmltYXRpb24tY29tcG9zaXRpb24gYW5kIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rp
b24gd2l0aGluIGtleWZyYW1lcyBhcmUgc3BlY2lhbAogICAgICAgICAvLyBiZWNhdXNlIHRoZXkg
YXJlIG5vdCBhbmltYXRlZDsgdGhleSBqdXN0IGRlc2NyaWJlIHRoZSBjb21wb3NpdGUgb3BlcmF0
aW9uIGFuZCB0aW1pbmcKICAgICAgICAgLy8gZnVuY3Rpb24gYmV0d2VlbiB0aGlzIGtleWZyYW1l
IGFuZCB0aGUgbmV4dC4KICAgICAgICAgaWYgKHByb3BlcnR5ICE9IENTU1Byb3BlcnR5QW5pbWF0
aW9uVGltaW5nRnVuY3Rpb24gJiYgcHJvcGVydHkgIT0gQ1NTUHJvcGVydHlBbmltYXRpb25Db21w
b3NpdGlvbikKICAgICAgICAgICAgIGtleWZyYW1lVmFsdWUuYWRkUHJvcGVydHkocHJvcGVydHkp
OworICAgICAgICBpZiAoQ1NTVmFsdWUqIHZhbHVlID0gcHJvcGVydHlSZWZlcmVuY2UudmFsdWUo
KSkKKyAgICAgICAgICAgIGhhc1JldmVydCA9IGhhc1JldmVydCB8fCB2YWx1ZS0+aXNSZXZlcnRW
YWx1ZSgpOwogICAgIH0KIAorICAgIGF1dG8gc3RhdGUgPSBTdGF0ZShlbGVtZW50LCBudWxscHRy
LCBjb250ZXh0LmRvY3VtZW50RWxlbWVudFN0eWxlKTsKKworICAgIHN0YXRlLnNldFN0eWxlKFJl
bmRlclN0eWxlOjpjbG9uZVB0cihlbGVtZW50U3R5bGUpKTsKKyAgICBzdGF0ZS5zZXRQYXJlbnRT
dHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoY29udGV4dC5wYXJlbnRTdHlsZSA/ICpjb250ZXh0
LnBhcmVudFN0eWxlIDogZWxlbWVudFN0eWxlKSk7CisKKyAgICBpZiAoaGFzUmV2ZXJ0KSB7Cisg
ICAgICAgIC8vIEluIHRoZSBhbmltYXRpb24gb3JpZ2luLCAncmV2ZXJ0JyByb2xscyBiYWNrIHRo
ZSBjYXNjYWRlZCB2YWx1ZSB0byB0aGUgdXNlciBsZXZlbC4KKyAgICAgICAgLy8gVGhlcmVmb3Jl
LCB3ZSBuZWVkIHRvIGNvbGxlY3QgVUEgYW5kIHVzZXIgcnVsZXMuCisgICAgICAgIEVsZW1lbnRS
dWxlQ29sbGVjdG9yIGNvbGxlY3RvcihlbGVtZW50LCBtX3J1bGVTZXRzLCBjb250ZXh0LnNlbGVj
dG9yTWF0Y2hpbmdTdGF0ZSk7CisgICAgICAgIGNvbGxlY3Rvci5zZXRQc2V1ZG9FbGVtZW50UmVx
dWVzdCh7IGVsZW1lbnRTdHlsZS5zdHlsZVR5cGUoKSB9KTsKKyAgICAgICAgY29sbGVjdG9yLnNl
dE1lZGl1bSgmbV9tZWRpYVF1ZXJ5RXZhbHVhdG9yKTsKKyAgICAgICAgY29sbGVjdG9yLm1hdGNo
VUFSdWxlcygpOworICAgICAgICBjb2xsZWN0b3IubWF0Y2hVc2VyUnVsZXMoKTsKKyAgICAgICAg
QnVpbGRlciBidWlsZGVyKCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChzdGF0ZSksIGNv
bGxlY3Rvci5tYXRjaFJlc3VsdCgpLCBDYXNjYWRlTGV2ZWw6OkF1dGhvcik7CisgICAgICAgIGJ1
aWxkZXIuYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgTWF0Y2hS
ZXN1bHQgcmVzdWx0OworICAgICAgICByZXN1bHQuYXV0aG9yRGVjbGFyYXRpb25zLmFwcGVuZCh7
ICZrZXlmcmFtZS5wcm9wZXJ0aWVzKCksIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIHByb3Bl
cnR5QWxsb3dsaXN0Rm9yUHNldWRvSWQoZWxlbWVudFN0eWxlLnN0eWxlVHlwZSgpKSB9KTsKKyAg
ICAgICAgQnVpbGRlciBidWlsZGVyKCpzdGF0ZS5zdHlsZSgpLCBidWlsZGVyQ29udGV4dChzdGF0
ZSksIHJlc3VsdCwgQ2FzY2FkZUxldmVsOjpBdXRob3IpOworICAgICAgICBidWlsZGVyLmFwcGx5
QWxsUHJvcGVydGllcygpOworICAgIH0KKworICAgIEFkanVzdGVyIGFkanVzdGVyKGRvY3VtZW50
KCksICpzdGF0ZS5wYXJlbnRTdHlsZSgpLCBudWxscHRyLCBudWxscHRyKTsKKyAgICBhZGp1c3Rl
ci5hZGp1c3QoKnN0YXRlLnN0eWxlKCksIHN0YXRlLnVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSgp
KTsKKwogICAgIHJldHVybiBzdGF0ZS50YWtlU3R5bGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggZmQ5NDNmZGYwZjQ2OWE1NWQ3NDEwY2E3ZmJlZTMzOGI0ZWMyYzRl
Yi4uNDgwODZjNjk0OWEzNjY2ZDQ1YjI1MzE3ZmQ4MWRjMjllYzhhMmFhNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xICsxLDE1IEBACisyMDIyLTAyLTIyICBPcmlvbCBCcnVm
YXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1jYXNjYWRlXSBTdXBwb3J0
ICdyZXZlcnQnIGluIEBrZXlmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzA3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEV4cGVjdCB0ZXN0cyB0byBwYXNzLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAwNi1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFs
LTAwNy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y2FzY2FkZS9yZXZlcnQtdmFsLTAwOC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAxMC1leHBlY3RlZC50eHQ6CisK
ID09IFJvbGxlZCBvdmVyIHRvIENoYW5nZUxvZy0yMDIyLTAyLTIyID09CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2Fk
ZS9yZXZlcnQtdmFsLTAwNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAwNi1leHBlY3Rl
ZC50eHQKaW5kZXggMjE2ZWE3NjE1OTRhYTUwMzE1YmI5ZGZjZjE3YWQ3NTg4MTZlMGVkYi4uNjU4
MGZlMWQ1ZTI1M2RiNjUwMDkwNTRhMWVjYWJmZThlZWRkOTM5MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2
ZXJ0LXZhbC0wMDYtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2LWV4cGVjdGVk
LnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBUaGUgcmV2ZXJ0IGtleXdvcmQgd29ya3Mgd2l0
aCBAa2V5ZnJhbWVzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIyMS40NDAwMDFweCIgYnV0IGdv
dCAiMHB4IgorUEFTUyBUaGUgcmV2ZXJ0IGtleXdvcmQgd29ya3Mgd2l0aCBAa2V5ZnJhbWVzCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12
YWwtMDA3LWV4cGVjdGVkLnR4dAppbmRleCBhY2VjZDM1NjA3OWU4MTAzMmMxOWQ0OGQ1YmUyZTVi
OWM1ODA0OTdkLi4yOTIzYTg0NDhhMmQ4NGY2NTUyYzEzODIyYjFkMGQxODM1YWY5MTYyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAwNy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZh
bC0wMDctZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIEEgQGtleWZyYW1lIGFu
aW1hdGlvbiB3aXRoIHJldmVydCB3b3JrcyB3aGVuIGFwcGxpZWQgdG8gbXVsdGlwbGUgaWRlbnRp
Y2FsIGVsZW1lbnRzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICIyMS40NDAwMDFweCIgYnV0IGdv
dCAiMHB4IgorUEFTUyBBIEBrZXlmcmFtZSBhbmltYXRpb24gd2l0aCByZXZlcnQgd29ya3Mgd2hl
biBhcHBsaWVkIHRvIG11bHRpcGxlIGlkZW50aWNhbCBlbGVtZW50cwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2Fk
ZS9yZXZlcnQtdmFsLTAwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAwOC1leHBlY3Rl
ZC50eHQKaW5kZXggZGJlMGVmMWI2ZjIzYjFhMjc3NjIyOGExOGQ3ZWY1Y2E5ZDFjMjYxNC4uY2I2
ZGQ5YzE1NGM4NDU1OGVjNTdhNjdkZjBlOWUzOTMxZjAyMzJjMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2
ZXJ0LXZhbC0wMDgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA4LWV4cGVjdGVk
LnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBUaGUgcmV2ZXJ0IGtleXdvcmQgd29ya3MgaW4g
dGhlIGZpbmFsIGZyYW1lIG9mIGEgd2ViIGFuaW1hdGlvbiBhc3NlcnRfYmV0d2Vlbl9leGNsdXNp
dmU6IGV4cGVjdGVkIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAyMSBhbmQgbGVzcyB0aGFuIDQyIGJ1
dCBnb3QgMTUKK1BBU1MgVGhlIHJldmVydCBrZXl3b3JkIHdvcmtzIGluIHRoZSBmaW5hbCBmcmFt
ZSBvZiBhIHdlYiBhbmltYXRpb24KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMTAtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMTAtZXhwZWN0ZWQudHh0CmluZGV4IDBlMmMwZDZj
YWU0ZjI2OWVkOGIyNzAxMDk3ZTUzZWI1OWU3YjJjNWYuLmJiMmJmNGQzODM4ODIxZTgzZmQyNjQy
MjUzYWZhZTEyODE4ZGQ1MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAxMC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBA
CiAKLUZBSUwgVGhlIHJldmVydCB3b3JrcyB3aGVuIGFwcGVhcmluZyBpbiBzZXRLZXlmcmFtZXMg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgNDIgYnV0IGdvdCAzMQorUEFTUyBUaGUgcmV2ZXJ0IHdv
cmtzIHdoZW4gYXBwZWFyaW5nIGluIHNldEtleWZyYW1lcwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452933</attachid>
            <date>2022-02-22 19:48:07 -0800</date>
            <delta_ts>2022-02-23 05:52:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237073-20220223044806.patch</filename>
            <type>text/plain</type>
            <size>8999</size>
            <attacher name="Oriol Brufau">obrufau</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJmODIwYzJlZDFmOTYz
NzkzODliMzYzYzVjZTM3YzllMDhmYTAzOC4uZmI3ZjE4ZmQ3NjVkMTM2OTk3NTQ4MDNkYWExOGUx
YmZjM2I1YzQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAyLTIyICBPcmlv
bCBCcnVmYXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1jYXNjYWRlXSBT
dXBwb3J0ICdyZXZlcnQnIGluIEBrZXlmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lIHdhcyBjb25z
dHJ1Y3RpbmcgYSBSZW5kZXJTdHlsZSB3aXRoIG9ubHkgdGhlCisgICAgICAgIHN0eWxlcyBzcGVj
aWZpZWQgaW4gdGhlIEBrZXlmcmFtZXMuIEJ1dCBub3QgdGFraW5nIGludG8gYWNjb3VudCB0aGUg
VUEKKyAgICAgICAgYW5kIHVzZXIgcnVsZXMgdGhhdCBhZmZlY3QgdGhlIGVsZW1lbnQgbWVhbnQg
dGhhdCAncmV2ZXJ0JyB3YXMgYnJva2VuLgorICAgICAgICBTaW5jZSBCdWlsZGVyOjphcHBseVBy
b3BlcnR5IGRpZG4ndCBmaW5kIHRoZSBkZWNsYXJhdGlvbnMgZnJvbSBvdGhlcgorICAgICAgICBv
cmlnaW5zLCAncmV2ZXJ0JyBqdXN0IGJlaGF2ZXMgYXMgJ3Vuc2V0Jy4KKworICAgICAgICBUaGlz
IHBhdGNoIHNvbHZlcyBpdCBieSBkZXRlY3RpbmcgaWYgdGhlIEBrZXlmcmFtZXMgaGFzIGEgJ3Jl
dmVydCcgdmFsdWUKKyAgICAgICAgYW5kIGluIHRoYXQgY2FzZSBpdCBjb2xsZWN0cyB0aGUgVUEg
YW5kIHVzZXIgcnVsZXMgc28gdGhhdCBpdCBjYW4gYmUKKyAgICAgICAgcmVzb2x2ZWQgcHJvcGVy
bHkuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA3Lmh0
bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL3JldmVydC12YWwtMDA4Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLmh0bWwK
KworICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lKToKKwogMjAyMi0wMi0yMiAgUGFibG8g
U2FhdmVkcmEgIDxwc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBQcm9wZXJseSB1bmlu
aXRpYWxpemUgRUdMIGRpc3BsYXkgYmVmb3JlIHRlcm1pbmF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDM3MDIzNjA1MDVjYzNkMjgwYjA5YTBkNzM3ZjRmYzhl
MjBhMjJiNTAuLmViODBlNzFjMzQyNmYxMmJhNWYwNmQxYTYwZWY2OTAzOTY5YmU4MDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNzcsMzEgKzI3Nyw0NiBAQCBF
bGVtZW50U3R5bGUgUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVt
ZW50LCBjb25zdCBSZXNvbHV0aW9uQwogCiBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFJl
c29sdmVyOjpzdHlsZUZvcktleWZyYW1lKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJl
bmRlclN0eWxlJiBlbGVtZW50U3R5bGUsIGNvbnN0IFJlc29sdXRpb25Db250ZXh0JiBjb250ZXh0
LCBjb25zdCBTdHlsZVJ1bGVLZXlmcmFtZSYga2V5ZnJhbWUsIEtleWZyYW1lVmFsdWUmIGtleWZy
YW1lVmFsdWUpCiB7Ci0gICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwotICAgIHJlc3VsdC5hdXRob3JE
ZWNsYXJhdGlvbnMuYXBwZW5kKHsgJmtleWZyYW1lLnByb3BlcnRpZXMoKSwgU2VsZWN0b3JDaGVj
a2VyOjpNYXRjaEFsbCwgcHJvcGVydHlBbGxvd2xpc3RGb3JQc2V1ZG9JZChlbGVtZW50U3R5bGUu
c3R5bGVUeXBlKCkpIH0pOwotCi0gICAgYXV0byBzdGF0ZSA9IFN0YXRlKGVsZW1lbnQsIG51bGxw
dHIsIGNvbnRleHQuZG9jdW1lbnRFbGVtZW50U3R5bGUpOwotCi0gICAgc3RhdGUuc2V0U3R5bGUo
UmVuZGVyU3R5bGU6OmNsb25lUHRyKGVsZW1lbnRTdHlsZSkpOwotICAgIHN0YXRlLnNldFBhcmVu
dFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cihjb250ZXh0LnBhcmVudFN0eWxlID8gKmNvbnRl
eHQucGFyZW50U3R5bGUgOiBlbGVtZW50U3R5bGUpKTsKLQotICAgIEJ1aWxkZXIgYnVpbGRlcigq
c3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQoc3RhdGUpLCByZXN1bHQsIENhc2NhZGVMZXZl
bDo6QXV0aG9yKTsKLSAgICBidWlsZGVyLmFwcGx5QWxsUHJvcGVydGllcygpOwotCi0gICAgQWRq
dXN0ZXIgYWRqdXN0ZXIoZG9jdW1lbnQoKSwgKnN0YXRlLnBhcmVudFN0eWxlKCksIG51bGxwdHIs
IG51bGxwdHIpOwotICAgIGFkanVzdGVyLmFkanVzdCgqc3RhdGUuc3R5bGUoKSwgc3RhdGUudXNl
ckFnZW50QXBwZWFyYW5jZVN0eWxlKCkpOwotCiAgICAgLy8gQWRkIGFsbCB0aGUgYW5pbWF0aW5n
IHByb3BlcnRpZXMgdG8gdGhlIGtleWZyYW1lLgogICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQg
PSBrZXlmcmFtZS5wcm9wZXJ0aWVzKCkucHJvcGVydHlDb3VudCgpOworICAgIGJvb2wgaGFzUmV2
ZXJ0ID0gZmFsc2U7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5Q291bnQ7
ICsraSkgewotICAgICAgICBhdXRvIHByb3BlcnR5ID0gQ1NTUHJvcGVydHk6OnJlc29sdmVEaXJl
Y3Rpb25Bd2FyZVByb3BlcnR5KGtleWZyYW1lLnByb3BlcnRpZXMoKS5wcm9wZXJ0eUF0KGkpLmlk
KCksIGVsZW1lbnRTdHlsZS5kaXJlY3Rpb24oKSwgZWxlbWVudFN0eWxlLndyaXRpbmdNb2RlKCkp
OworICAgICAgICBjb25zdCBhdXRvJiBwcm9wZXJ0eVJlZmVyZW5jZSA9IGtleWZyYW1lLnByb3Bl
cnRpZXMoKS5wcm9wZXJ0eUF0KGkpOworICAgICAgICBhdXRvIHByb3BlcnR5ID0gQ1NTUHJvcGVy
dHk6OnJlc29sdmVEaXJlY3Rpb25Bd2FyZVByb3BlcnR5KHByb3BlcnR5UmVmZXJlbmNlLmlkKCks
IGVsZW1lbnRTdHlsZS5kaXJlY3Rpb24oKSwgZWxlbWVudFN0eWxlLndyaXRpbmdNb2RlKCkpOwog
ICAgICAgICAvLyBUaGUgYW5pbWF0aW9uLWNvbXBvc2l0aW9uIGFuZCBhbmltYXRpb24tdGltaW5n
LWZ1bmN0aW9uIHdpdGhpbiBrZXlmcmFtZXMgYXJlIHNwZWNpYWwKICAgICAgICAgLy8gYmVjYXVz
ZSB0aGV5IGFyZSBub3QgYW5pbWF0ZWQ7IHRoZXkganVzdCBkZXNjcmliZSB0aGUgY29tcG9zaXRl
IG9wZXJhdGlvbiBhbmQgdGltaW5nCiAgICAgICAgIC8vIGZ1bmN0aW9uIGJldHdlZW4gdGhpcyBr
ZXlmcmFtZSBhbmQgdGhlIG5leHQuCiAgICAgICAgIGlmIChwcm9wZXJ0eSAhPSBDU1NQcm9wZXJ0
eUFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uICYmIHByb3BlcnR5ICE9IENTU1Byb3BlcnR5QW5pbWF0
aW9uQ29tcG9zaXRpb24pCiAgICAgICAgICAgICBrZXlmcmFtZVZhbHVlLmFkZFByb3BlcnR5KHBy
b3BlcnR5KTsKKyAgICAgICAgaWYgKGNvbnN0IENTU1ZhbHVlKiB2YWx1ZSA9IHByb3BlcnR5UmVm
ZXJlbmNlLnZhbHVlKCkpCisgICAgICAgICAgICBoYXNSZXZlcnQgPSBoYXNSZXZlcnQgfHwgdmFs
dWUtPmlzUmV2ZXJ0VmFsdWUoKTsKICAgICB9CiAKKyAgICBhdXRvIHN0YXRlID0gU3RhdGUoZWxl
bWVudCwgbnVsbHB0ciwgY29udGV4dC5kb2N1bWVudEVsZW1lbnRTdHlsZSk7CisKKyAgICBzdGF0
ZS5zZXRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoZWxlbWVudFN0eWxlKSk7CisgICAgc3Rh
dGUuc2V0UGFyZW50U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKGNvbnRleHQucGFyZW50U3R5
bGUgPyAqY29udGV4dC5wYXJlbnRTdHlsZSA6IGVsZW1lbnRTdHlsZSkpOworCisgICAgaWYgKGhh
c1JldmVydCkgeworICAgICAgICAvLyBJbiB0aGUgYW5pbWF0aW9uIG9yaWdpbiwgJ3JldmVydCcg
cm9sbHMgYmFjayB0aGUgY2FzY2FkZWQgdmFsdWUgdG8gdGhlIHVzZXIgbGV2ZWwuCisgICAgICAg
IC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBjb2xsZWN0IFVBIGFuZCB1c2VyIHJ1bGVzLgorICAg
ICAgICBFbGVtZW50UnVsZUNvbGxlY3RvciBjb2xsZWN0b3IoZWxlbWVudCwgbV9ydWxlU2V0cywg
Y29udGV4dC5zZWxlY3Rvck1hdGNoaW5nU3RhdGUpOworICAgICAgICBjb2xsZWN0b3Iuc2V0UHNl
dWRvRWxlbWVudFJlcXVlc3QoeyBlbGVtZW50U3R5bGUuc3R5bGVUeXBlKCkgfSk7CisgICAgICAg
IGNvbGxlY3Rvci5zZXRNZWRpdW0oJm1fbWVkaWFRdWVyeUV2YWx1YXRvcik7CisgICAgICAgIGNv
bGxlY3Rvci5tYXRjaFVBUnVsZXMoKTsKKyAgICAgICAgY29sbGVjdG9yLm1hdGNoVXNlclJ1bGVz
KCk7CisgICAgICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRl
eHQoc3RhdGUpLCBjb2xsZWN0b3IubWF0Y2hSZXN1bHQoKSwgQ2FzY2FkZUxldmVsOjpBdXRob3Ip
OworICAgICAgICBidWlsZGVyLmFwcGx5QWxsUHJvcGVydGllcygpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIE1hdGNoUmVzdWx0IHJlc3VsdDsKKyAgICAgICAgcmVzdWx0LmF1dGhvckRlY2xhcmF0
aW9ucy5hcHBlbmQoeyAma2V5ZnJhbWUucHJvcGVydGllcygpLCBTZWxlY3RvckNoZWNrZXI6Ok1h
dGNoQWxsLCBwcm9wZXJ0eUFsbG93bGlzdEZvclBzZXVkb0lkKGVsZW1lbnRTdHlsZS5zdHlsZVR5
cGUoKSkgfSk7CisgICAgICAgIEJ1aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRl
ckNvbnRleHQoc3RhdGUpLCByZXN1bHQsIENhc2NhZGVMZXZlbDo6QXV0aG9yKTsKKyAgICAgICAg
YnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKKyAgICB9CisKKyAgICBBZGp1c3RlciBhZGp1
c3Rlcihkb2N1bWVudCgpLCAqc3RhdGUucGFyZW50U3R5bGUoKSwgbnVsbHB0ciwgbnVsbHB0cik7
CisgICAgYWRqdXN0ZXIuYWRqdXN0KCpzdGF0ZS5zdHlsZSgpLCBzdGF0ZS51c2VyQWdlbnRBcHBl
YXJhbmNlU3R5bGUoKSk7CisKICAgICByZXR1cm4gc3RhdGUudGFrZVN0eWxlKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGZkOTQzZmRmMGY0NjlhNTVkNzQxMGNhN2Zi
ZWUzMzhiNGVjMmM0ZWIuLjQ4MDg2YzY5NDlhMzY2NmQ0NWIyNTMxN2ZkODFkYzI5ZWM4YTJhYTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSArMSwxNSBAQAorMjAyMi0wMi0y
MiAgT3Jpb2wgQnJ1ZmF1ICA8b2JydWZhdUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtY2Fz
Y2FkZV0gU3VwcG9ydCAncmV2ZXJ0JyBpbiBAa2V5ZnJhbWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcwNzMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBlY3QgdGVzdHMgdG8gcGFzcy4KKworICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDYt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2Nh
ZGUvcmV2ZXJ0LXZhbC0wMDctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDgtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMTAtZXhw
ZWN0ZWQudHh0OgorCiA9PSBSb2xsZWQgb3ZlciB0byBDaGFuZ2VMb2ctMjAyMi0wMi0yMiA9PQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZh
bC0wMDYtZXhwZWN0ZWQudHh0CmluZGV4IDIxNmVhNzYxNTk0YWE1MDMxNWJiOWRmY2YxN2FkNzU4
ODE2ZTBlZGIuLjY1ODBmZTFkNWUyNTNkYjY1MDA5MDU0YTFlY2FiZmU4ZWVkZDkzOTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL3JldmVydC12YWwtMDA2LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFs
LTAwNi1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVGhlIHJldmVydCBrZXl3
b3JkIHdvcmtzIHdpdGggQGtleWZyYW1lcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMjEuNDQw
MDAxcHgiIGJ1dCBnb3QgIjBweCIKK1BBU1MgVGhlIHJldmVydCBrZXl3b3JkIHdvcmtzIHdpdGgg
QGtleWZyYW1lcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAwNy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2Fz
Y2FkZS9yZXZlcnQtdmFsLTAwNy1leHBlY3RlZC50eHQKaW5kZXggYWNlY2QzNTYwNzllODEwMzJj
MTlkNDhkNWJlMmU1YjljNTgwNDk3ZC4uMjkyM2E4NDQ4YTJkODRmNjU1MmMxMzgyMmIxZDBkMTgz
NWFmOTE2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNj
YWRlL3JldmVydC12YWwtMDA3LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBB
IEBrZXlmcmFtZSBhbmltYXRpb24gd2l0aCByZXZlcnQgd29ya3Mgd2hlbiBhcHBsaWVkIHRvIG11
bHRpcGxlIGlkZW50aWNhbCBlbGVtZW50cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMjEuNDQw
MDAxcHgiIGJ1dCBnb3QgIjBweCIKK1BBU1MgQSBAa2V5ZnJhbWUgYW5pbWF0aW9uIHdpdGggcmV2
ZXJ0IHdvcmtzIHdoZW4gYXBwbGllZCB0byBtdWx0aXBsZSBpZGVudGljYWwgZWxlbWVudHMKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZh
bC0wMDgtZXhwZWN0ZWQudHh0CmluZGV4IGRiZTBlZjFiNmYyM2IxYTI3NzYyMjhhMThkN2VmNWNh
OWQxYzI2MTQuLmNiNmRkOWMxNTRjODQ1NThlYzU3YTY3ZGYwZTllMzkzMWYwMjMyYzEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL3JldmVydC12YWwtMDA4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFs
LTAwOC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVGhlIHJldmVydCBrZXl3
b3JkIHdvcmtzIGluIHRoZSBmaW5hbCBmcmFtZSBvZiBhIHdlYiBhbmltYXRpb24gYXNzZXJ0X2Jl
dHdlZW5fZXhjbHVzaXZlOiBleHBlY3RlZCBhIG51bWJlciBncmVhdGVyIHRoYW4gMjEgYW5kIGxl
c3MgdGhhbiA0MiBidXQgZ290IDE1CitQQVNTIFRoZSByZXZlcnQga2V5d29yZCB3b3JrcyBpbiB0
aGUgZmluYWwgZnJhbWUgb2YgYSB3ZWIgYW5pbWF0aW9uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVy
dC12YWwtMDEwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLWV4cGVjdGVkLnR4dApp
bmRleCAwZTJjMGQ2Y2FlNGYyNjllZDhiMjcwMTA5N2U1M2ViNTllN2IyYzVmLi5iYjJiZjRkMzgz
ODgyMWU4M2ZkMjY0MjI1M2FmYWUxMjgxOGRkNTBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFs
LTAxMC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMTAtZXhwZWN0ZWQudHh0CkBA
IC0xLDMgKzEsMyBAQAogCi1GQUlMIFRoZSByZXZlcnQgd29ya3Mgd2hlbiBhcHBlYXJpbmcgaW4g
c2V0S2V5ZnJhbWVzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDQyIGJ1dCBnb3QgMzEKK1BBU1Mg
VGhlIHJldmVydCB3b3JrcyB3aGVuIGFwcGVhcmluZyBpbiBzZXRLZXlmcmFtZXMKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452968</attachid>
            <date>2022-02-23 05:53:03 -0800</date>
            <delta_ts>2022-02-23 05:55:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237073-20220223145301.patch</filename>
            <type>text/plain</type>
            <size>10755</size>
            <attacher name="Oriol Brufau">obrufau</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJmODIwYzJlZDFmOTYz
NzkzODliMzYzYzVjZTM3YzllMDhmYTAzOC4uNDBkN2NjYjY1YjY5YjFiYjRkNTAwMWM4NzEyYTA5
MzhiN2MwZGU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTIzICBPcmlv
bCBCcnVmYXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1jYXNjYWRlXSBT
dXBwb3J0ICdyZXZlcnQnIGluIEBrZXlmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lIHdhcyBjb25z
dHJ1Y3RpbmcgYSBSZW5kZXJTdHlsZSB3aXRoIG9ubHkgdGhlCisgICAgICAgIHN0eWxlcyBzcGVj
aWZpZWQgaW4gdGhlIEBrZXlmcmFtZXMuIEJ1dCBub3QgdGFraW5nIGludG8gYWNjb3VudCB0aGUg
VUEKKyAgICAgICAgYW5kIHVzZXIgcnVsZXMgdGhhdCBhZmZlY3QgdGhlIGVsZW1lbnQgbWVhbnQg
dGhhdCAncmV2ZXJ0JyB3YXMgYnJva2VuLgorICAgICAgICBTaW5jZSBCdWlsZGVyOjphcHBseVBy
b3BlcnR5IGRpZG4ndCBmaW5kIHRoZSBkZWNsYXJhdGlvbnMgZnJvbSBvdGhlcgorICAgICAgICBv
cmlnaW5zLCAncmV2ZXJ0JyBqdXN0IGJlaGF2ZXMgYXMgJ3Vuc2V0Jy4KKworICAgICAgICBUaGlz
IHBhdGNoIHNvbHZlcyBpdCBieSBkZXRlY3RpbmcgaWYgdGhlIEBrZXlmcmFtZXMgaGFzIGEgJ3Jl
dmVydCcgdmFsdWUKKyAgICAgICAgYW5kIGluIHRoYXQgY2FzZSBpdCBjb2xsZWN0cyB0aGUgVUEg
YW5kIHVzZXIgcnVsZXMgc28gdGhhdCBpdCBjYW4gYmUKKyAgICAgICAgcmVzb2x2ZWQgcHJvcGVy
bHkuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA3Lmh0
bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL3JldmVydC12YWwtMDA4Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLmh0bWwK
KworICAgICAgICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkQXV0aG9yS2V5ZnJhbWVSdWxl
cyk6CisgICAgICAgICogc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaDoKKyAgICAgICAgKiBz
dHlsZS9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZl
cjo6c3R5bGVGb3JLZXlmcmFtZSk6CisKIDIwMjItMDItMjIgIFBhYmxvIFNhYXZlZHJhICA8cHNh
YXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUHJvcGVybHkgdW5pbml0aWFsaXplIEVHTCBk
aXNwbGF5IGJlZm9yZSB0ZXJtaW5hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVu
dFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IDQ0MWE0ODJkYWM2M2FjMzJiOTVkNTJkZWM2MGY3OWFi
MTVkNTY1ZTIuLmMxZjkzN2Q3NGE3YWFiYjBjNTZjNDRhNDg0MWRmOTBlMzdhNTBjNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFbGVtZW50UnVsZUNvbGxl
Y3Rvci5oIgogCisjaW5jbHVkZSAiQ1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVs
ZUxpc3QuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5
d29yZHMuaCIKQEAgLTY0OSw1ICs2NTAsMTEgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6
YWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hlZFByb3BlcnRpZXMmJiBtYXRjaGVkUHJvcGUKICAg
ICBkZWNsYXJhdGlvbnNGb3JPcmlnaW4obV9yZXN1bHQsIGRlY2xhcmF0aW9uT3JpZ2luKS5hcHBl
bmQoV1RGTW92ZShtYXRjaGVkUHJvcGVydGllcykpOwogfQogCit2b2lkIEVsZW1lbnRSdWxlQ29s
bGVjdG9yOjphZGRBdXRob3JLZXlmcmFtZVJ1bGVzKGNvbnN0IFN0eWxlUnVsZUtleWZyYW1lJiBr
ZXlmcmFtZSkKK3sKKyAgICBBU1NFUlQobV9yZXN1bHQuYXV0aG9yRGVjbGFyYXRpb25zLmlzRW1w
dHkoKSk7CisgICAgbV9yZXN1bHQuYXV0aG9yRGVjbGFyYXRpb25zLmFwcGVuZCh7ICZrZXlmcmFt
ZS5wcm9wZXJ0aWVzKCksIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIHByb3BlcnR5QWxsb3ds
aXN0Rm9yUHNldWRvSWQobV9wc2V1ZG9FbGVtZW50UmVxdWVzdC5wc2V1ZG9JZCkgfSk7Cit9CisK
IH0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50
UnVsZUNvbGxlY3Rvci5oCmluZGV4IDcxNDg5ODMxYWExZjU3MDFmZGZlOTlkMGYwM2Q2NzljMTEx
NWI3ZjEuLjMwMWRiOWE4ZGQ1ZTBmNTZkMjJlZTkyYjBjMDFlMDA2MDIyMGIyOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaApAQCAtOTMsNiArOTMsOCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgUmVsYXRpb25zJiBzdHlsZVJlbGF0aW9ucygpIGNvbnN0IHsg
cmV0dXJuIG1fc3R5bGVSZWxhdGlvbnM7IH0KICAgICBib29sIGRpZE1hdGNoVW5jb21tb25BdHRy
aWJ1dGVTZWxlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlkTWF0Y2hVbmNvbW1vbkF0dHJpYnV0
ZVNlbGVjdG9yOyB9CiAKKyAgICB2b2lkIGFkZEF1dGhvcktleWZyYW1lUnVsZXMoY29uc3QgU3R5
bGVSdWxlS2V5ZnJhbWUmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGFkZEVsZW1lbnRTdHlsZVBy
b3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgYm9vbCBpc0NhY2hlYWJsZSA9IHRydWUs
IEZyb21TdHlsZUF0dHJpYnV0ZSA9IEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm8pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDM3MDIzNjA1MDVjYzNkMjgwYjA5YTBk
NzM3ZjRmYzhlMjBhMjJiNTAuLjU3NmIyZDlkZDA1MzhkNTEyODViNmNhNDY2NDU3NWU5YmUwMzA0
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNzcsMzEgKzI3
Nyw0MiBAQCBFbGVtZW50U3R5bGUgUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChjb25zdCBFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBSZXNvbHV0aW9uQwogCiBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVy
U3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQs
IGNvbnN0IFJlbmRlclN0eWxlJiBlbGVtZW50U3R5bGUsIGNvbnN0IFJlc29sdXRpb25Db250ZXh0
JiBjb250ZXh0LCBjb25zdCBTdHlsZVJ1bGVLZXlmcmFtZSYga2V5ZnJhbWUsIEtleWZyYW1lVmFs
dWUmIGtleWZyYW1lVmFsdWUpCiB7Ci0gICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwotICAgIHJlc3Vs
dC5hdXRob3JEZWNsYXJhdGlvbnMuYXBwZW5kKHsgJmtleWZyYW1lLnByb3BlcnRpZXMoKSwgU2Vs
ZWN0b3JDaGVja2VyOjpNYXRjaEFsbCwgcHJvcGVydHlBbGxvd2xpc3RGb3JQc2V1ZG9JZChlbGVt
ZW50U3R5bGUuc3R5bGVUeXBlKCkpIH0pOworICAgIC8vIEFkZCBhbGwgdGhlIGFuaW1hdGluZyBw
cm9wZXJ0aWVzIHRvIHRoZSBrZXlmcmFtZS4KKyAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0g
a2V5ZnJhbWUucHJvcGVydGllcygpLnByb3BlcnR5Q291bnQoKTsKKyAgICBib29sIGhhc1JldmVy
dCA9IGZhbHNlOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyAr
K2kpIHsKKyAgICAgICAgY29uc3QgYXV0byYgcHJvcGVydHlSZWZlcmVuY2UgPSBrZXlmcmFtZS5w
cm9wZXJ0aWVzKCkucHJvcGVydHlBdChpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eSA9IENTU1By
b3BlcnR5OjpyZXNvbHZlRGlyZWN0aW9uQXdhcmVQcm9wZXJ0eShwcm9wZXJ0eVJlZmVyZW5jZS5p
ZCgpLCBlbGVtZW50U3R5bGUuZGlyZWN0aW9uKCksIGVsZW1lbnRTdHlsZS53cml0aW5nTW9kZSgp
KTsKKyAgICAgICAgLy8gVGhlIGFuaW1hdGlvbi1jb21wb3NpdGlvbiBhbmQgYW5pbWF0aW9uLXRp
bWluZy1mdW5jdGlvbiB3aXRoaW4ga2V5ZnJhbWVzIGFyZSBzcGVjaWFsCisgICAgICAgIC8vIGJl
Y2F1c2UgdGhleSBhcmUgbm90IGFuaW1hdGVkOyB0aGV5IGp1c3QgZGVzY3JpYmUgdGhlIGNvbXBv
c2l0ZSBvcGVyYXRpb24gYW5kIHRpbWluZworICAgICAgICAvLyBmdW5jdGlvbiBiZXR3ZWVuIHRo
aXMga2V5ZnJhbWUgYW5kIHRoZSBuZXh0LgorICAgICAgICBpZiAocHJvcGVydHkgIT0gQ1NTUHJv
cGVydHlBbmltYXRpb25UaW1pbmdGdW5jdGlvbiAmJiBwcm9wZXJ0eSAhPSBDU1NQcm9wZXJ0eUFu
aW1hdGlvbkNvbXBvc2l0aW9uKQorICAgICAgICAgICAga2V5ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0
eShwcm9wZXJ0eSk7CisgICAgICAgIGlmIChjb25zdCBDU1NWYWx1ZSogdmFsdWUgPSBwcm9wZXJ0
eVJlZmVyZW5jZS52YWx1ZSgpKQorICAgICAgICAgICAgaGFzUmV2ZXJ0ID0gaGFzUmV2ZXJ0IHx8
IHZhbHVlLT5pc1JldmVydFZhbHVlKCk7CisgICAgfQogCiAgICAgYXV0byBzdGF0ZSA9IFN0YXRl
KGVsZW1lbnQsIG51bGxwdHIsIGNvbnRleHQuZG9jdW1lbnRFbGVtZW50U3R5bGUpOwogCiAgICAg
c3RhdGUuc2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKGVsZW1lbnRTdHlsZSkpOwogICAg
IHN0YXRlLnNldFBhcmVudFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cihjb250ZXh0LnBhcmVu
dFN0eWxlID8gKmNvbnRleHQucGFyZW50U3R5bGUgOiBlbGVtZW50U3R5bGUpKTsKIAotICAgIEJ1
aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQoc3RhdGUpLCByZXN1
bHQsIENhc2NhZGVMZXZlbDo6QXV0aG9yKTsKKyAgICBFbGVtZW50UnVsZUNvbGxlY3RvciBjb2xs
ZWN0b3IoZWxlbWVudCwgbV9ydWxlU2V0cywgY29udGV4dC5zZWxlY3Rvck1hdGNoaW5nU3RhdGUp
OworICAgIGNvbGxlY3Rvci5zZXRQc2V1ZG9FbGVtZW50UmVxdWVzdCh7IGVsZW1lbnRTdHlsZS5z
dHlsZVR5cGUoKSB9KTsKKyAgICBpZiAoaGFzUmV2ZXJ0KSB7CisgICAgICAgIC8vIEluIHRoZSBh
bmltYXRpb24gb3JpZ2luLCAncmV2ZXJ0JyByb2xscyBiYWNrIHRoZSBjYXNjYWRlZCB2YWx1ZSB0
byB0aGUgdXNlciBsZXZlbC4KKyAgICAgICAgLy8gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvIGNvbGxl
Y3QgVUEgYW5kIHVzZXIgcnVsZXMuCisgICAgICAgIGNvbGxlY3Rvci5zZXRNZWRpdW0oJm1fbWVk
aWFRdWVyeUV2YWx1YXRvcik7CisgICAgICAgIGNvbGxlY3Rvci5tYXRjaFVBUnVsZXMoKTsKKyAg
ICAgICAgY29sbGVjdG9yLm1hdGNoVXNlclJ1bGVzKCk7CisgICAgfQorICAgIGNvbGxlY3Rvci5h
ZGRBdXRob3JLZXlmcmFtZVJ1bGVzKGtleWZyYW1lKTsKKyAgICBCdWlsZGVyIGJ1aWxkZXIoKnN0
YXRlLnN0eWxlKCksIGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgY29sbGVjdG9yLm1hdGNoUmVzdWx0
KCksIENhc2NhZGVMZXZlbDo6QXV0aG9yKTsKICAgICBidWlsZGVyLmFwcGx5QWxsUHJvcGVydGll
cygpOwogCiAgICAgQWRqdXN0ZXIgYWRqdXN0ZXIoZG9jdW1lbnQoKSwgKnN0YXRlLnBhcmVudFN0
eWxlKCksIG51bGxwdHIsIG51bGxwdHIpOwogICAgIGFkanVzdGVyLmFkanVzdCgqc3RhdGUuc3R5
bGUoKSwgc3RhdGUudXNlckFnZW50QXBwZWFyYW5jZVN0eWxlKCkpOwogCi0gICAgLy8gQWRkIGFs
bCB0aGUgYW5pbWF0aW5nIHByb3BlcnRpZXMgdG8gdGhlIGtleWZyYW1lLgotICAgIHVuc2lnbmVk
IHByb3BlcnR5Q291bnQgPSBrZXlmcmFtZS5wcm9wZXJ0aWVzKCkucHJvcGVydHlDb3VudCgpOwot
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyArK2kpIHsKLSAgICAg
ICAgYXV0byBwcm9wZXJ0eSA9IENTU1Byb3BlcnR5OjpyZXNvbHZlRGlyZWN0aW9uQXdhcmVQcm9w
ZXJ0eShrZXlmcmFtZS5wcm9wZXJ0aWVzKCkucHJvcGVydHlBdChpKS5pZCgpLCBlbGVtZW50U3R5
bGUuZGlyZWN0aW9uKCksIGVsZW1lbnRTdHlsZS53cml0aW5nTW9kZSgpKTsKLSAgICAgICAgLy8g
VGhlIGFuaW1hdGlvbi1jb21wb3NpdGlvbiBhbmQgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiB3
aXRoaW4ga2V5ZnJhbWVzIGFyZSBzcGVjaWFsCi0gICAgICAgIC8vIGJlY2F1c2UgdGhleSBhcmUg
bm90IGFuaW1hdGVkOyB0aGV5IGp1c3QgZGVzY3JpYmUgdGhlIGNvbXBvc2l0ZSBvcGVyYXRpb24g
YW5kIHRpbWluZwotICAgICAgICAvLyBmdW5jdGlvbiBiZXR3ZWVuIHRoaXMga2V5ZnJhbWUgYW5k
IHRoZSBuZXh0LgotICAgICAgICBpZiAocHJvcGVydHkgIT0gQ1NTUHJvcGVydHlBbmltYXRpb25U
aW1pbmdGdW5jdGlvbiAmJiBwcm9wZXJ0eSAhPSBDU1NQcm9wZXJ0eUFuaW1hdGlvbkNvbXBvc2l0
aW9uKQotICAgICAgICAgICAga2V5ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0eShwcm9wZXJ0eSk7Ci0g
ICAgfQotCiAgICAgcmV0dXJuIHN0YXRlLnRha2VTdHlsZSgpOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCBmZDk0M2ZkZjBmNDY5YTU1ZDc0MTBjYTdmYmVlMzM4YjRlYzJj
NGViLi43NTk2NTMzOGRhNjQ3YjlkN2IwYTM1NmYzZjFhYjNhY2E0YWI0MDRjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEgKzEsMTUgQEAKKzIwMjItMDItMjMgIE9yaW9sIEJy
dWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWNhc2NhZGVdIFN1cHBv
cnQgJ3JldmVydCcgaW4gQGtleWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRXhwZWN0IHRlc3RzIHRvIHBhc3MuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12
YWwtMDA3LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL3JldmVydC12YWwtMDA4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLWV4cGVjdGVkLnR4dDoK
KwogPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIwMjItMDItMjIgPT0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNj
YWRlL3JldmVydC12YWwtMDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2LWV4cGVj
dGVkLnR4dAppbmRleCAyMTZlYTc2MTU5NGFhNTAzMTViYjlkZmNmMTdhZDc1ODgxNmUwZWRiLi42
NTgwZmUxZDVlMjUzZGI2NTAwOTA1NGExZWNhYmZlOGVlZGQ5MzkyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9y
ZXZlcnQtdmFsLTAwNi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDYtZXhwZWN0
ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFRoZSByZXZlcnQga2V5d29yZCB3b3JrcyB3
aXRoIEBrZXlmcmFtZXMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjIxLjQ0MDAwMXB4IiBidXQg
Z290ICIwcHgiCitQQVNTIFRoZSByZXZlcnQga2V5d29yZCB3b3JrcyB3aXRoIEBrZXlmcmFtZXMK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0
LXZhbC0wMDctZXhwZWN0ZWQudHh0CmluZGV4IGFjZWNkMzU2MDc5ZTgxMDMyYzE5ZDQ4ZDViZTJl
NWI5YzU4MDQ5N2QuLjI5MjNhODQ0OGEyZDg0ZjY1NTJjMTM4MjJiMWQwZDE4MzVhZjkxNjIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA3LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQt
dmFsLTAwNy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQSBAa2V5ZnJhbWUg
YW5pbWF0aW9uIHdpdGggcmV2ZXJ0IHdvcmtzIHdoZW4gYXBwbGllZCB0byBtdWx0aXBsZSBpZGVu
dGljYWwgZWxlbWVudHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjIxLjQ0MDAwMXB4IiBidXQg
Z290ICIwcHgiCitQQVNTIEEgQGtleWZyYW1lIGFuaW1hdGlvbiB3aXRoIHJldmVydCB3b3JrcyB3
aGVuIGFwcGxpZWQgdG8gbXVsdGlwbGUgaWRlbnRpY2FsIGVsZW1lbnRzCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNj
YWRlL3JldmVydC12YWwtMDA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA4LWV4cGVj
dGVkLnR4dAppbmRleCBkYmUwZWYxYjZmMjNiMWEyNzc2MjI4YTE4ZDdlZjVjYTlkMWMyNjE0Li5j
YjZkZDljMTU0Yzg0NTU4ZWM1N2E2N2RmMGU5ZTM5MzFmMDIzMmMxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9y
ZXZlcnQtdmFsLTAwOC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDgtZXhwZWN0
ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFRoZSByZXZlcnQga2V5d29yZCB3b3JrcyBp
biB0aGUgZmluYWwgZnJhbWUgb2YgYSB3ZWIgYW5pbWF0aW9uIGFzc2VydF9iZXR3ZWVuX2V4Y2x1
c2l2ZTogZXhwZWN0ZWQgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDIxIGFuZCBsZXNzIHRoYW4gNDIg
YnV0IGdvdCAxNQorUEFTUyBUaGUgcmV2ZXJ0IGtleXdvcmQgd29ya3MgaW4gdGhlIGZpbmFsIGZy
YW1lIG9mIGEgd2ViIGFuaW1hdGlvbgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAxMC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAxMC1leHBlY3RlZC50eHQKaW5kZXggMGUyYzBk
NmNhZTRmMjY5ZWQ4YjI3MDEwOTdlNTNlYjU5ZTdiMmM1Zi4uYmIyYmY0ZDM4Mzg4MjFlODNmZDI2
NDIyNTNhZmFlMTI4MThkZDUwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMTAtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMg
QEAKIAotRkFJTCBUaGUgcmV2ZXJ0IHdvcmtzIHdoZW4gYXBwZWFyaW5nIGluIHNldEtleWZyYW1l
cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCA0MiBidXQgZ290IDMxCitQQVNTIFRoZSByZXZlcnQg
d29ya3Mgd2hlbiBhcHBlYXJpbmcgaW4gc2V0S2V5ZnJhbWVzCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452969</attachid>
            <date>2022-02-23 05:55:37 -0800</date>
            <delta_ts>2022-02-23 10:11:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237073-20220223145536.patch</filename>
            <type>text/plain</type>
            <size>10755</size>
            <attacher name="Oriol Brufau">obrufau</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJmODIwYzJlZDFmOTYz
NzkzODliMzYzYzVjZTM3YzllMDhmYTAzOC4uNDQ0OTk0MjUxNzQzNTFiOGM0YjAzNDRhOTkzOGVm
YWI3ODZhMGZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTIzICBPcmlv
bCBCcnVmYXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1jYXNjYWRlXSBT
dXBwb3J0ICdyZXZlcnQnIGluIEBrZXlmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lIHdhcyBjb25z
dHJ1Y3RpbmcgYSBSZW5kZXJTdHlsZSB3aXRoIG9ubHkgdGhlCisgICAgICAgIHN0eWxlcyBzcGVj
aWZpZWQgaW4gdGhlIEBrZXlmcmFtZXMuIEJ1dCBub3QgdGFraW5nIGludG8gYWNjb3VudCB0aGUg
VUEKKyAgICAgICAgYW5kIHVzZXIgcnVsZXMgdGhhdCBhZmZlY3QgdGhlIGVsZW1lbnQgbWVhbnQg
dGhhdCAncmV2ZXJ0JyB3YXMgYnJva2VuLgorICAgICAgICBTaW5jZSBCdWlsZGVyOjphcHBseVBy
b3BlcnR5IGRpZG4ndCBmaW5kIHRoZSBkZWNsYXJhdGlvbnMgZnJvbSBvdGhlcgorICAgICAgICBv
cmlnaW5zLCAncmV2ZXJ0JyBqdXN0IGJlaGF2ZWQgYXMgJ3Vuc2V0Jy4KKworICAgICAgICBUaGlz
IHBhdGNoIHNvbHZlcyBpdCBieSBkZXRlY3RpbmcgaWYgdGhlIEBrZXlmcmFtZXMgaGFzIGEgJ3Jl
dmVydCcgdmFsdWUKKyAgICAgICAgYW5kIGluIHRoYXQgY2FzZSBpdCBjb2xsZWN0cyB0aGUgVUEg
YW5kIHVzZXIgcnVsZXMgc28gdGhhdCBpdCBjYW4gYmUKKyAgICAgICAgcmVzb2x2ZWQgcHJvcGVy
bHkuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA3Lmh0
bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL3JldmVydC12YWwtMDA4Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLmh0bWwK
KworICAgICAgICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkQXV0aG9yS2V5ZnJhbWVSdWxl
cyk6CisgICAgICAgICogc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaDoKKyAgICAgICAgKiBz
dHlsZS9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZl
cjo6c3R5bGVGb3JLZXlmcmFtZSk6CisKIDIwMjItMDItMjIgIFBhYmxvIFNhYXZlZHJhICA8cHNh
YXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUHJvcGVybHkgdW5pbml0aWFsaXplIEVHTCBk
aXNwbGF5IGJlZm9yZSB0ZXJtaW5hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVu
dFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IDQ0MWE0ODJkYWM2M2FjMzJiOTVkNTJkZWM2MGY3OWFi
MTVkNTY1ZTIuLmMxZjkzN2Q3NGE3YWFiYjBjNTZjNDRhNDg0MWRmOTBlMzdhNTBjNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFbGVtZW50UnVsZUNvbGxl
Y3Rvci5oIgogCisjaW5jbHVkZSAiQ1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVs
ZUxpc3QuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5
d29yZHMuaCIKQEAgLTY0OSw1ICs2NTAsMTEgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6
YWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hlZFByb3BlcnRpZXMmJiBtYXRjaGVkUHJvcGUKICAg
ICBkZWNsYXJhdGlvbnNGb3JPcmlnaW4obV9yZXN1bHQsIGRlY2xhcmF0aW9uT3JpZ2luKS5hcHBl
bmQoV1RGTW92ZShtYXRjaGVkUHJvcGVydGllcykpOwogfQogCit2b2lkIEVsZW1lbnRSdWxlQ29s
bGVjdG9yOjphZGRBdXRob3JLZXlmcmFtZVJ1bGVzKGNvbnN0IFN0eWxlUnVsZUtleWZyYW1lJiBr
ZXlmcmFtZSkKK3sKKyAgICBBU1NFUlQobV9yZXN1bHQuYXV0aG9yRGVjbGFyYXRpb25zLmlzRW1w
dHkoKSk7CisgICAgbV9yZXN1bHQuYXV0aG9yRGVjbGFyYXRpb25zLmFwcGVuZCh7ICZrZXlmcmFt
ZS5wcm9wZXJ0aWVzKCksIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIHByb3BlcnR5QWxsb3ds
aXN0Rm9yUHNldWRvSWQobV9wc2V1ZG9FbGVtZW50UmVxdWVzdC5wc2V1ZG9JZCkgfSk7Cit9CisK
IH0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50
UnVsZUNvbGxlY3Rvci5oCmluZGV4IDcxNDg5ODMxYWExZjU3MDFmZGZlOTlkMGYwM2Q2NzljMTEx
NWI3ZjEuLjMwMWRiOWE4ZGQ1ZTBmNTZkMjJlZTkyYjBjMDFlMDA2MDIyMGIyOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaApAQCAtOTMsNiArOTMsOCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgUmVsYXRpb25zJiBzdHlsZVJlbGF0aW9ucygpIGNvbnN0IHsg
cmV0dXJuIG1fc3R5bGVSZWxhdGlvbnM7IH0KICAgICBib29sIGRpZE1hdGNoVW5jb21tb25BdHRy
aWJ1dGVTZWxlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlkTWF0Y2hVbmNvbW1vbkF0dHJpYnV0
ZVNlbGVjdG9yOyB9CiAKKyAgICB2b2lkIGFkZEF1dGhvcktleWZyYW1lUnVsZXMoY29uc3QgU3R5
bGVSdWxlS2V5ZnJhbWUmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGFkZEVsZW1lbnRTdHlsZVBy
b3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgYm9vbCBpc0NhY2hlYWJsZSA9IHRydWUs
IEZyb21TdHlsZUF0dHJpYnV0ZSA9IEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm8pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDM3MDIzNjA1MDVjYzNkMjgwYjA5YTBk
NzM3ZjRmYzhlMjBhMjJiNTAuLjU3NmIyZDlkZDA1MzhkNTEyODViNmNhNDY2NDU3NWU5YmUwMzA0
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNzcsMzEgKzI3
Nyw0MiBAQCBFbGVtZW50U3R5bGUgUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChjb25zdCBFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBSZXNvbHV0aW9uQwogCiBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVy
U3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQs
IGNvbnN0IFJlbmRlclN0eWxlJiBlbGVtZW50U3R5bGUsIGNvbnN0IFJlc29sdXRpb25Db250ZXh0
JiBjb250ZXh0LCBjb25zdCBTdHlsZVJ1bGVLZXlmcmFtZSYga2V5ZnJhbWUsIEtleWZyYW1lVmFs
dWUmIGtleWZyYW1lVmFsdWUpCiB7Ci0gICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwotICAgIHJlc3Vs
dC5hdXRob3JEZWNsYXJhdGlvbnMuYXBwZW5kKHsgJmtleWZyYW1lLnByb3BlcnRpZXMoKSwgU2Vs
ZWN0b3JDaGVja2VyOjpNYXRjaEFsbCwgcHJvcGVydHlBbGxvd2xpc3RGb3JQc2V1ZG9JZChlbGVt
ZW50U3R5bGUuc3R5bGVUeXBlKCkpIH0pOworICAgIC8vIEFkZCBhbGwgdGhlIGFuaW1hdGluZyBw
cm9wZXJ0aWVzIHRvIHRoZSBrZXlmcmFtZS4KKyAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0g
a2V5ZnJhbWUucHJvcGVydGllcygpLnByb3BlcnR5Q291bnQoKTsKKyAgICBib29sIGhhc1JldmVy
dCA9IGZhbHNlOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyAr
K2kpIHsKKyAgICAgICAgY29uc3QgYXV0byYgcHJvcGVydHlSZWZlcmVuY2UgPSBrZXlmcmFtZS5w
cm9wZXJ0aWVzKCkucHJvcGVydHlBdChpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eSA9IENTU1By
b3BlcnR5OjpyZXNvbHZlRGlyZWN0aW9uQXdhcmVQcm9wZXJ0eShwcm9wZXJ0eVJlZmVyZW5jZS5p
ZCgpLCBlbGVtZW50U3R5bGUuZGlyZWN0aW9uKCksIGVsZW1lbnRTdHlsZS53cml0aW5nTW9kZSgp
KTsKKyAgICAgICAgLy8gVGhlIGFuaW1hdGlvbi1jb21wb3NpdGlvbiBhbmQgYW5pbWF0aW9uLXRp
bWluZy1mdW5jdGlvbiB3aXRoaW4ga2V5ZnJhbWVzIGFyZSBzcGVjaWFsCisgICAgICAgIC8vIGJl
Y2F1c2UgdGhleSBhcmUgbm90IGFuaW1hdGVkOyB0aGV5IGp1c3QgZGVzY3JpYmUgdGhlIGNvbXBv
c2l0ZSBvcGVyYXRpb24gYW5kIHRpbWluZworICAgICAgICAvLyBmdW5jdGlvbiBiZXR3ZWVuIHRo
aXMga2V5ZnJhbWUgYW5kIHRoZSBuZXh0LgorICAgICAgICBpZiAocHJvcGVydHkgIT0gQ1NTUHJv
cGVydHlBbmltYXRpb25UaW1pbmdGdW5jdGlvbiAmJiBwcm9wZXJ0eSAhPSBDU1NQcm9wZXJ0eUFu
aW1hdGlvbkNvbXBvc2l0aW9uKQorICAgICAgICAgICAga2V5ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0
eShwcm9wZXJ0eSk7CisgICAgICAgIGlmIChjb25zdCBDU1NWYWx1ZSogdmFsdWUgPSBwcm9wZXJ0
eVJlZmVyZW5jZS52YWx1ZSgpKQorICAgICAgICAgICAgaGFzUmV2ZXJ0ID0gaGFzUmV2ZXJ0IHx8
IHZhbHVlLT5pc1JldmVydFZhbHVlKCk7CisgICAgfQogCiAgICAgYXV0byBzdGF0ZSA9IFN0YXRl
KGVsZW1lbnQsIG51bGxwdHIsIGNvbnRleHQuZG9jdW1lbnRFbGVtZW50U3R5bGUpOwogCiAgICAg
c3RhdGUuc2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKGVsZW1lbnRTdHlsZSkpOwogICAg
IHN0YXRlLnNldFBhcmVudFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cihjb250ZXh0LnBhcmVu
dFN0eWxlID8gKmNvbnRleHQucGFyZW50U3R5bGUgOiBlbGVtZW50U3R5bGUpKTsKIAotICAgIEJ1
aWxkZXIgYnVpbGRlcigqc3RhdGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQoc3RhdGUpLCByZXN1
bHQsIENhc2NhZGVMZXZlbDo6QXV0aG9yKTsKKyAgICBFbGVtZW50UnVsZUNvbGxlY3RvciBjb2xs
ZWN0b3IoZWxlbWVudCwgbV9ydWxlU2V0cywgY29udGV4dC5zZWxlY3Rvck1hdGNoaW5nU3RhdGUp
OworICAgIGNvbGxlY3Rvci5zZXRQc2V1ZG9FbGVtZW50UmVxdWVzdCh7IGVsZW1lbnRTdHlsZS5z
dHlsZVR5cGUoKSB9KTsKKyAgICBpZiAoaGFzUmV2ZXJ0KSB7CisgICAgICAgIC8vIEluIHRoZSBh
bmltYXRpb24gb3JpZ2luLCAncmV2ZXJ0JyByb2xscyBiYWNrIHRoZSBjYXNjYWRlZCB2YWx1ZSB0
byB0aGUgdXNlciBsZXZlbC4KKyAgICAgICAgLy8gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvIGNvbGxl
Y3QgVUEgYW5kIHVzZXIgcnVsZXMuCisgICAgICAgIGNvbGxlY3Rvci5zZXRNZWRpdW0oJm1fbWVk
aWFRdWVyeUV2YWx1YXRvcik7CisgICAgICAgIGNvbGxlY3Rvci5tYXRjaFVBUnVsZXMoKTsKKyAg
ICAgICAgY29sbGVjdG9yLm1hdGNoVXNlclJ1bGVzKCk7CisgICAgfQorICAgIGNvbGxlY3Rvci5h
ZGRBdXRob3JLZXlmcmFtZVJ1bGVzKGtleWZyYW1lKTsKKyAgICBCdWlsZGVyIGJ1aWxkZXIoKnN0
YXRlLnN0eWxlKCksIGJ1aWxkZXJDb250ZXh0KHN0YXRlKSwgY29sbGVjdG9yLm1hdGNoUmVzdWx0
KCksIENhc2NhZGVMZXZlbDo6QXV0aG9yKTsKICAgICBidWlsZGVyLmFwcGx5QWxsUHJvcGVydGll
cygpOwogCiAgICAgQWRqdXN0ZXIgYWRqdXN0ZXIoZG9jdW1lbnQoKSwgKnN0YXRlLnBhcmVudFN0
eWxlKCksIG51bGxwdHIsIG51bGxwdHIpOwogICAgIGFkanVzdGVyLmFkanVzdCgqc3RhdGUuc3R5
bGUoKSwgc3RhdGUudXNlckFnZW50QXBwZWFyYW5jZVN0eWxlKCkpOwogCi0gICAgLy8gQWRkIGFs
bCB0aGUgYW5pbWF0aW5nIHByb3BlcnRpZXMgdG8gdGhlIGtleWZyYW1lLgotICAgIHVuc2lnbmVk
IHByb3BlcnR5Q291bnQgPSBrZXlmcmFtZS5wcm9wZXJ0aWVzKCkucHJvcGVydHlDb3VudCgpOwot
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyArK2kpIHsKLSAgICAg
ICAgYXV0byBwcm9wZXJ0eSA9IENTU1Byb3BlcnR5OjpyZXNvbHZlRGlyZWN0aW9uQXdhcmVQcm9w
ZXJ0eShrZXlmcmFtZS5wcm9wZXJ0aWVzKCkucHJvcGVydHlBdChpKS5pZCgpLCBlbGVtZW50U3R5
bGUuZGlyZWN0aW9uKCksIGVsZW1lbnRTdHlsZS53cml0aW5nTW9kZSgpKTsKLSAgICAgICAgLy8g
VGhlIGFuaW1hdGlvbi1jb21wb3NpdGlvbiBhbmQgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiB3
aXRoaW4ga2V5ZnJhbWVzIGFyZSBzcGVjaWFsCi0gICAgICAgIC8vIGJlY2F1c2UgdGhleSBhcmUg
bm90IGFuaW1hdGVkOyB0aGV5IGp1c3QgZGVzY3JpYmUgdGhlIGNvbXBvc2l0ZSBvcGVyYXRpb24g
YW5kIHRpbWluZwotICAgICAgICAvLyBmdW5jdGlvbiBiZXR3ZWVuIHRoaXMga2V5ZnJhbWUgYW5k
IHRoZSBuZXh0LgotICAgICAgICBpZiAocHJvcGVydHkgIT0gQ1NTUHJvcGVydHlBbmltYXRpb25U
aW1pbmdGdW5jdGlvbiAmJiBwcm9wZXJ0eSAhPSBDU1NQcm9wZXJ0eUFuaW1hdGlvbkNvbXBvc2l0
aW9uKQotICAgICAgICAgICAga2V5ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0eShwcm9wZXJ0eSk7Ci0g
ICAgfQotCiAgICAgcmV0dXJuIHN0YXRlLnRha2VTdHlsZSgpOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCBmZDk0M2ZkZjBmNDY5YTU1ZDc0MTBjYTdmYmVlMzM4YjRlYzJj
NGViLi43NTk2NTMzOGRhNjQ3YjlkN2IwYTM1NmYzZjFhYjNhY2E0YWI0MDRjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEgKzEsMTUgQEAKKzIwMjItMDItMjMgIE9yaW9sIEJy
dWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWNhc2NhZGVdIFN1cHBv
cnQgJ3JldmVydCcgaW4gQGtleWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRXhwZWN0IHRlc3RzIHRvIHBhc3MuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12
YWwtMDA3LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL3JldmVydC12YWwtMDA4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLWV4cGVjdGVkLnR4dDoK
KwogPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIwMjItMDItMjIgPT0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNj
YWRlL3JldmVydC12YWwtMDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2LWV4cGVj
dGVkLnR4dAppbmRleCAyMTZlYTc2MTU5NGFhNTAzMTViYjlkZmNmMTdhZDc1ODgxNmUwZWRiLi42
NTgwZmUxZDVlMjUzZGI2NTAwOTA1NGExZWNhYmZlOGVlZGQ5MzkyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9y
ZXZlcnQtdmFsLTAwNi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDYtZXhwZWN0
ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFRoZSByZXZlcnQga2V5d29yZCB3b3JrcyB3
aXRoIEBrZXlmcmFtZXMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjIxLjQ0MDAwMXB4IiBidXQg
Z290ICIwcHgiCitQQVNTIFRoZSByZXZlcnQga2V5d29yZCB3b3JrcyB3aXRoIEBrZXlmcmFtZXMK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0
LXZhbC0wMDctZXhwZWN0ZWQudHh0CmluZGV4IGFjZWNkMzU2MDc5ZTgxMDMyYzE5ZDQ4ZDViZTJl
NWI5YzU4MDQ5N2QuLjI5MjNhODQ0OGEyZDg0ZjY1NTJjMTM4MjJiMWQwZDE4MzVhZjkxNjIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA3LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQt
dmFsLTAwNy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQSBAa2V5ZnJhbWUg
YW5pbWF0aW9uIHdpdGggcmV2ZXJ0IHdvcmtzIHdoZW4gYXBwbGllZCB0byBtdWx0aXBsZSBpZGVu
dGljYWwgZWxlbWVudHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIjIxLjQ0MDAwMXB4IiBidXQg
Z290ICIwcHgiCitQQVNTIEEgQGtleWZyYW1lIGFuaW1hdGlvbiB3aXRoIHJldmVydCB3b3JrcyB3
aGVuIGFwcGxpZWQgdG8gbXVsdGlwbGUgaWRlbnRpY2FsIGVsZW1lbnRzCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNj
YWRlL3JldmVydC12YWwtMDA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA4LWV4cGVj
dGVkLnR4dAppbmRleCBkYmUwZWYxYjZmMjNiMWEyNzc2MjI4YTE4ZDdlZjVjYTlkMWMyNjE0Li5j
YjZkZDljMTU0Yzg0NTU4ZWM1N2E2N2RmMGU5ZTM5MzFmMDIzMmMxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9y
ZXZlcnQtdmFsLTAwOC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDgtZXhwZWN0
ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFRoZSByZXZlcnQga2V5d29yZCB3b3JrcyBp
biB0aGUgZmluYWwgZnJhbWUgb2YgYSB3ZWIgYW5pbWF0aW9uIGFzc2VydF9iZXR3ZWVuX2V4Y2x1
c2l2ZTogZXhwZWN0ZWQgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDIxIGFuZCBsZXNzIHRoYW4gNDIg
YnV0IGdvdCAxNQorUEFTUyBUaGUgcmV2ZXJ0IGtleXdvcmQgd29ya3MgaW4gdGhlIGZpbmFsIGZy
YW1lIG9mIGEgd2ViIGFuaW1hdGlvbgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAxMC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAxMC1leHBlY3RlZC50eHQKaW5kZXggMGUyYzBk
NmNhZTRmMjY5ZWQ4YjI3MDEwOTdlNTNlYjU5ZTdiMmM1Zi4uYmIyYmY0ZDM4Mzg4MjFlODNmZDI2
NDIyNTNhZmFlMTI4MThkZDUwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMTAtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMg
QEAKIAotRkFJTCBUaGUgcmV2ZXJ0IHdvcmtzIHdoZW4gYXBwZWFyaW5nIGluIHNldEtleWZyYW1l
cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCA0MiBidXQgZ290IDMxCitQQVNTIFRoZSByZXZlcnQg
d29ya3Mgd2hlbiBhcHBlYXJpbmcgaW4gc2V0S2V5ZnJhbWVzCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452997</attachid>
            <date>2022-02-23 10:11:13 -0800</date>
            <delta_ts>2022-02-24 13:20:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237073-20220223191112.patch</filename>
            <type>text/plain</type>
            <size>10734</size>
            <attacher name="Oriol Brufau">obrufau</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJmODIwYzJlZDFmOTYz
NzkzODliMzYzYzVjZTM3YzllMDhmYTAzOC4uMzdiMDk0ODYxNjI3MzJlOGRhY2FjNDE0NzJlNmY0
MGU4ZDQ2MmZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTIzICBPcmlv
bCBCcnVmYXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1jYXNjYWRlXSBT
dXBwb3J0ICdyZXZlcnQnIGluIEBrZXlmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA3MworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lIHdhcyBjb25zdHJ1
Y3RpbmcgYSBSZW5kZXJTdHlsZSB3aXRoIG9ubHkgdGhlCisgICAgICAgIHN0eWxlcyBzcGVjaWZp
ZWQgaW4gdGhlIEBrZXlmcmFtZXMuIEJ1dCBub3QgdGFraW5nIGludG8gYWNjb3VudCB0aGUgVUEK
KyAgICAgICAgYW5kIHVzZXIgcnVsZXMgdGhhdCBhZmZlY3QgdGhlIGVsZW1lbnQgbWVhbnQgdGhh
dCAncmV2ZXJ0JyB3YXMgYnJva2VuLgorICAgICAgICBTaW5jZSBCdWlsZGVyOjphcHBseVByb3Bl
cnR5IGRpZG4ndCBmaW5kIHRoZSBkZWNsYXJhdGlvbnMgZnJvbSBvdGhlcgorICAgICAgICBvcmln
aW5zLCAncmV2ZXJ0JyBqdXN0IGJlaGF2ZWQgYXMgJ3Vuc2V0Jy4KKworICAgICAgICBUaGlzIHBh
dGNoIHNvbHZlcyBpdCBieSBkZXRlY3RpbmcgaWYgdGhlIEBrZXlmcmFtZXMgaGFzIGEgJ3JldmVy
dCcgdmFsdWUKKyAgICAgICAgYW5kIGluIHRoYXQgY2FzZSBpdCBjb2xsZWN0cyB0aGUgVUEgYW5k
IHVzZXIgcnVsZXMgc28gdGhhdCBpdCBjYW4gYmUKKyAgICAgICAgcmVzb2x2ZWQgcHJvcGVybHku
CisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL3JldmVydC12YWwtMDA2Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA3Lmh0bWwK
KyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
YXNjYWRlL3JldmVydC12YWwtMDA4Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDEwLmh0bWwKKwor
ICAgICAgICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkQXV0aG9yS2V5ZnJhbWVSdWxlcyk6
CisgICAgICAgICogc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaDoKKyAgICAgICAgKiBzdHls
ZS9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6
c3R5bGVGb3JLZXlmcmFtZSk6CisKIDIwMjItMDItMjIgIFBhYmxvIFNhYXZlZHJhICA8cHNhYXZl
ZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUHJvcGVybHkgdW5pbml0aWFsaXplIEVHTCBkaXNw
bGF5IGJlZm9yZSB0ZXJtaW5hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
RWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1
bGVDb2xsZWN0b3IuY3BwCmluZGV4IDQ0MWE0ODJkYWM2M2FjMzJiOTVkNTJkZWM2MGY3OWFiMTVk
NTY1ZTIuLmMxZjkzN2Q3NGE3YWFiYjBjNTZjNDRhNDg0MWRmOTBlMzdhNTBjNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFbGVtZW50UnVsZUNvbGxlY3Rv
ci5oIgogCisjaW5jbHVkZSAiQ1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZUxp
c3QuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29y
ZHMuaCIKQEAgLTY0OSw1ICs2NTAsMTEgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRk
TWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hlZFByb3BlcnRpZXMmJiBtYXRjaGVkUHJvcGUKICAgICBk
ZWNsYXJhdGlvbnNGb3JPcmlnaW4obV9yZXN1bHQsIGRlY2xhcmF0aW9uT3JpZ2luKS5hcHBlbmQo
V1RGTW92ZShtYXRjaGVkUHJvcGVydGllcykpOwogfQogCit2b2lkIEVsZW1lbnRSdWxlQ29sbGVj
dG9yOjphZGRBdXRob3JLZXlmcmFtZVJ1bGVzKGNvbnN0IFN0eWxlUnVsZUtleWZyYW1lJiBrZXlm
cmFtZSkKK3sKKyAgICBBU1NFUlQobV9yZXN1bHQuYXV0aG9yRGVjbGFyYXRpb25zLmlzRW1wdHko
KSk7CisgICAgbV9yZXN1bHQuYXV0aG9yRGVjbGFyYXRpb25zLmFwcGVuZCh7ICZrZXlmcmFtZS5w
cm9wZXJ0aWVzKCksIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIHByb3BlcnR5QWxsb3dsaXN0
Rm9yUHNldWRvSWQobV9wc2V1ZG9FbGVtZW50UmVxdWVzdC5wc2V1ZG9JZCkgfSk7Cit9CisKIH0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVs
ZUNvbGxlY3Rvci5oCmluZGV4IDcxNDg5ODMxYWExZjU3MDFmZGZlOTlkMGYwM2Q2NzljMTExNWI3
ZjEuLjMwMWRiOWE4ZGQ1ZTBmNTZkMjJlZTkyYjBjMDFlMDA2MDIyMGIyOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaApAQCAtOTMsNiArOTMsOCBAQCBw
dWJsaWM6CiAgICAgY29uc3QgUmVsYXRpb25zJiBzdHlsZVJlbGF0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fc3R5bGVSZWxhdGlvbnM7IH0KICAgICBib29sIGRpZE1hdGNoVW5jb21tb25BdHRyaWJ1
dGVTZWxlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlkTWF0Y2hVbmNvbW1vbkF0dHJpYnV0ZVNl
bGVjdG9yOyB9CiAKKyAgICB2b2lkIGFkZEF1dGhvcktleWZyYW1lUnVsZXMoY29uc3QgU3R5bGVS
dWxlS2V5ZnJhbWUmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGFkZEVsZW1lbnRTdHlsZVByb3Bl
cnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgYm9vbCBpc0NhY2hlYWJsZSA9IHRydWUsIEZy
b21TdHlsZUF0dHJpYnV0ZSA9IEZyb21TdHlsZUF0dHJpYnV0ZTo6Tm8pOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDM3MDIzNjA1MDVjYzNkMjgwYjA5YTBkNzM3
ZjRmYzhlMjBhMjJiNTAuLmU0YmUwNzQyZmRmYTBmZDRiZTAyZjlkNjY4NmU2MWRiYjU0MDZkYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNzcsMzEgKzI3Nyw0
MiBAQCBFbGVtZW50U3R5bGUgUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChjb25zdCBFbGVtZW50
JiBlbGVtZW50LCBjb25zdCBSZXNvbHV0aW9uQwogCiBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5
bGU+IFJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNv
bnN0IFJlbmRlclN0eWxlJiBlbGVtZW50U3R5bGUsIGNvbnN0IFJlc29sdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBTdHlsZVJ1bGVLZXlmcmFtZSYga2V5ZnJhbWUsIEtleWZyYW1lVmFsdWUm
IGtleWZyYW1lVmFsdWUpCiB7Ci0gICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwotICAgIHJlc3VsdC5h
dXRob3JEZWNsYXJhdGlvbnMuYXBwZW5kKHsgJmtleWZyYW1lLnByb3BlcnRpZXMoKSwgU2VsZWN0
b3JDaGVja2VyOjpNYXRjaEFsbCwgcHJvcGVydHlBbGxvd2xpc3RGb3JQc2V1ZG9JZChlbGVtZW50
U3R5bGUuc3R5bGVUeXBlKCkpIH0pOworICAgIC8vIEFkZCBhbGwgdGhlIGFuaW1hdGluZyBwcm9w
ZXJ0aWVzIHRvIHRoZSBrZXlmcmFtZS4KKyAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0ga2V5
ZnJhbWUucHJvcGVydGllcygpLnByb3BlcnR5Q291bnQoKTsKKyAgICBib29sIGhhc1JldmVydCA9
IGZhbHNlOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyArK2kp
IHsKKyAgICAgICAgYXV0byBwcm9wZXJ0eVJlZmVyZW5jZSA9IGtleWZyYW1lLnByb3BlcnRpZXMo
KS5wcm9wZXJ0eUF0KGkpOworICAgICAgICBhdXRvIHByb3BlcnR5ID0gQ1NTUHJvcGVydHk6OnJl
c29sdmVEaXJlY3Rpb25Bd2FyZVByb3BlcnR5KHByb3BlcnR5UmVmZXJlbmNlLmlkKCksIGVsZW1l
bnRTdHlsZS5kaXJlY3Rpb24oKSwgZWxlbWVudFN0eWxlLndyaXRpbmdNb2RlKCkpOworICAgICAg
ICAvLyBUaGUgYW5pbWF0aW9uLWNvbXBvc2l0aW9uIGFuZCBhbmltYXRpb24tdGltaW5nLWZ1bmN0
aW9uIHdpdGhpbiBrZXlmcmFtZXMgYXJlIHNwZWNpYWwKKyAgICAgICAgLy8gYmVjYXVzZSB0aGV5
IGFyZSBub3QgYW5pbWF0ZWQ7IHRoZXkganVzdCBkZXNjcmliZSB0aGUgY29tcG9zaXRlIG9wZXJh
dGlvbiBhbmQgdGltaW5nCisgICAgICAgIC8vIGZ1bmN0aW9uIGJldHdlZW4gdGhpcyBrZXlmcmFt
ZSBhbmQgdGhlIG5leHQuCisgICAgICAgIGlmIChwcm9wZXJ0eSAhPSBDU1NQcm9wZXJ0eUFuaW1h
dGlvblRpbWluZ0Z1bmN0aW9uICYmIHByb3BlcnR5ICE9IENTU1Byb3BlcnR5QW5pbWF0aW9uQ29t
cG9zaXRpb24pCisgICAgICAgICAgICBrZXlmcmFtZVZhbHVlLmFkZFByb3BlcnR5KHByb3BlcnR5
KTsKKyAgICAgICAgaWYgKGF1dG8qIHZhbHVlID0gcHJvcGVydHlSZWZlcmVuY2UudmFsdWUoKTsg
dmFsdWUgJiYgdmFsdWUtPmlzUmV2ZXJ0VmFsdWUoKSkKKyAgICAgICAgICAgIGhhc1JldmVydCA9
IHRydWU7CisgICAgfQogCiAgICAgYXV0byBzdGF0ZSA9IFN0YXRlKGVsZW1lbnQsIG51bGxwdHIs
IGNvbnRleHQuZG9jdW1lbnRFbGVtZW50U3R5bGUpOwogCiAgICAgc3RhdGUuc2V0U3R5bGUoUmVu
ZGVyU3R5bGU6OmNsb25lUHRyKGVsZW1lbnRTdHlsZSkpOwogICAgIHN0YXRlLnNldFBhcmVudFN0
eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cihjb250ZXh0LnBhcmVudFN0eWxlID8gKmNvbnRleHQu
cGFyZW50U3R5bGUgOiBlbGVtZW50U3R5bGUpKTsKIAotICAgIEJ1aWxkZXIgYnVpbGRlcigqc3Rh
dGUuc3R5bGUoKSwgYnVpbGRlckNvbnRleHQoc3RhdGUpLCByZXN1bHQsIENhc2NhZGVMZXZlbDo6
QXV0aG9yKTsKKyAgICBFbGVtZW50UnVsZUNvbGxlY3RvciBjb2xsZWN0b3IoZWxlbWVudCwgbV9y
dWxlU2V0cywgY29udGV4dC5zZWxlY3Rvck1hdGNoaW5nU3RhdGUpOworICAgIGNvbGxlY3Rvci5z
ZXRQc2V1ZG9FbGVtZW50UmVxdWVzdCh7IGVsZW1lbnRTdHlsZS5zdHlsZVR5cGUoKSB9KTsKKyAg
ICBpZiAoaGFzUmV2ZXJ0KSB7CisgICAgICAgIC8vIEluIHRoZSBhbmltYXRpb24gb3JpZ2luLCAn
cmV2ZXJ0JyByb2xscyBiYWNrIHRoZSBjYXNjYWRlZCB2YWx1ZSB0byB0aGUgdXNlciBsZXZlbC4K
KyAgICAgICAgLy8gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvIGNvbGxlY3QgVUEgYW5kIHVzZXIgcnVs
ZXMuCisgICAgICAgIGNvbGxlY3Rvci5zZXRNZWRpdW0oJm1fbWVkaWFRdWVyeUV2YWx1YXRvcik7
CisgICAgICAgIGNvbGxlY3Rvci5tYXRjaFVBUnVsZXMoKTsKKyAgICAgICAgY29sbGVjdG9yLm1h
dGNoVXNlclJ1bGVzKCk7CisgICAgfQorICAgIGNvbGxlY3Rvci5hZGRBdXRob3JLZXlmcmFtZVJ1
bGVzKGtleWZyYW1lKTsKKyAgICBCdWlsZGVyIGJ1aWxkZXIoKnN0YXRlLnN0eWxlKCksIGJ1aWxk
ZXJDb250ZXh0KHN0YXRlKSwgY29sbGVjdG9yLm1hdGNoUmVzdWx0KCksIENhc2NhZGVMZXZlbDo6
QXV0aG9yKTsKICAgICBidWlsZGVyLmFwcGx5QWxsUHJvcGVydGllcygpOwogCiAgICAgQWRqdXN0
ZXIgYWRqdXN0ZXIoZG9jdW1lbnQoKSwgKnN0YXRlLnBhcmVudFN0eWxlKCksIG51bGxwdHIsIG51
bGxwdHIpOwogICAgIGFkanVzdGVyLmFkanVzdCgqc3RhdGUuc3R5bGUoKSwgc3RhdGUudXNlckFn
ZW50QXBwZWFyYW5jZVN0eWxlKCkpOwogCi0gICAgLy8gQWRkIGFsbCB0aGUgYW5pbWF0aW5nIHBy
b3BlcnRpZXMgdG8gdGhlIGtleWZyYW1lLgotICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQgPSBr
ZXlmcmFtZS5wcm9wZXJ0aWVzKCkucHJvcGVydHlDb3VudCgpOwotICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwcm9wZXJ0eUNvdW50OyArK2kpIHsKLSAgICAgICAgYXV0byBwcm9wZXJ0eSA9
IENTU1Byb3BlcnR5OjpyZXNvbHZlRGlyZWN0aW9uQXdhcmVQcm9wZXJ0eShrZXlmcmFtZS5wcm9w
ZXJ0aWVzKCkucHJvcGVydHlBdChpKS5pZCgpLCBlbGVtZW50U3R5bGUuZGlyZWN0aW9uKCksIGVs
ZW1lbnRTdHlsZS53cml0aW5nTW9kZSgpKTsKLSAgICAgICAgLy8gVGhlIGFuaW1hdGlvbi1jb21w
b3NpdGlvbiBhbmQgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiB3aXRoaW4ga2V5ZnJhbWVzIGFy
ZSBzcGVjaWFsCi0gICAgICAgIC8vIGJlY2F1c2UgdGhleSBhcmUgbm90IGFuaW1hdGVkOyB0aGV5
IGp1c3QgZGVzY3JpYmUgdGhlIGNvbXBvc2l0ZSBvcGVyYXRpb24gYW5kIHRpbWluZwotICAgICAg
ICAvLyBmdW5jdGlvbiBiZXR3ZWVuIHRoaXMga2V5ZnJhbWUgYW5kIHRoZSBuZXh0LgotICAgICAg
ICBpZiAocHJvcGVydHkgIT0gQ1NTUHJvcGVydHlBbmltYXRpb25UaW1pbmdGdW5jdGlvbiAmJiBw
cm9wZXJ0eSAhPSBDU1NQcm9wZXJ0eUFuaW1hdGlvbkNvbXBvc2l0aW9uKQotICAgICAgICAgICAg
a2V5ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0eShwcm9wZXJ0eSk7Ci0gICAgfQotCiAgICAgcmV0dXJu
IHN0YXRlLnRha2VTdHlsZSgpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRl
eCBmZDk0M2ZkZjBmNDY5YTU1ZDc0MTBjYTdmYmVlMzM4YjRlYzJjNGViLi5lZWI3NWI3NTg1Mjgy
YjY0NzVkYmM0NWZkMjZiZTU3ZWViMGQzNTA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKQEAgLTEgKzEsMTUgQEAKKzIwMjItMDItMjMgIE9yaW9sIEJydWZhdSAgPG9icnVmYXVAaWdh
bGlhLmNvbT4KKworICAgICAgICBbY3NzLWNhc2NhZGVdIFN1cHBvcnQgJ3JldmVydCcgaW4gQGtl
eWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MDczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgRXhw
ZWN0IHRlc3RzIHRvIHBhc3MuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jYXNjYWRlL3JldmVydC12YWwtMDA2LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA3LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwt
MDA4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
YXNjYWRlL3JldmVydC12YWwtMDEwLWV4cGVjdGVkLnR4dDoKKwogPT0gUm9sbGVkIG92ZXIgdG8g
Q2hhbmdlTG9nLTIwMjItMDItMjIgPT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA2LWV4cGVjdGVkLnR4dAppbmRleCAyMTZlYTc2
MTU5NGFhNTAzMTViYjlkZmNmMTdhZDc1ODgxNmUwZWRiLi42NTgwZmUxZDVlMjUzZGI2NTAwOTA1
NGExZWNhYmZlOGVlZGQ5MzkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAwNi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDYtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBA
QAogCi1GQUlMIFRoZSByZXZlcnQga2V5d29yZCB3b3JrcyB3aXRoIEBrZXlmcmFtZXMgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIjIxLjQ0MDAwMXB4IiBidXQgZ290ICIwcHgiCitQQVNTIFRoZSBy
ZXZlcnQga2V5d29yZCB3b3JrcyB3aXRoIEBrZXlmcmFtZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2
ZXJ0LXZhbC0wMDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDctZXhwZWN0ZWQudHh0
CmluZGV4IGFjZWNkMzU2MDc5ZTgxMDMyYzE5ZDQ4ZDViZTJlNWI5YzU4MDQ5N2QuLjI5MjNhODQ0
OGEyZDg0ZjY1NTJjMTM4MjJiMWQwZDE4MzVhZjkxNjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12
YWwtMDA3LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAwNy1leHBlY3RlZC50eHQK
QEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQSBAa2V5ZnJhbWUgYW5pbWF0aW9uIHdpdGggcmV2ZXJ0
IHdvcmtzIHdoZW4gYXBwbGllZCB0byBtdWx0aXBsZSBpZGVudGljYWwgZWxlbWVudHMgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIjIxLjQ0MDAwMXB4IiBidXQgZ290ICIwcHgiCitQQVNTIEEgQGtl
eWZyYW1lIGFuaW1hdGlvbiB3aXRoIHJldmVydCB3b3JrcyB3aGVuIGFwcGxpZWQgdG8gbXVsdGlw
bGUgaWRlbnRpY2FsIGVsZW1lbnRzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA4LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jYXNjYWRlL3JldmVydC12YWwtMDA4LWV4cGVjdGVkLnR4dAppbmRleCBkYmUwZWYx
YjZmMjNiMWEyNzc2MjI4YTE4ZDdlZjVjYTlkMWMyNjE0Li5jYjZkZDljMTU0Yzg0NTU4ZWM1N2E2
N2RmMGU5ZTM5MzFmMDIzMmMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAwOC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMDgtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBA
QAogCi1GQUlMIFRoZSByZXZlcnQga2V5d29yZCB3b3JrcyBpbiB0aGUgZmluYWwgZnJhbWUgb2Yg
YSB3ZWIgYW5pbWF0aW9uIGFzc2VydF9iZXR3ZWVuX2V4Y2x1c2l2ZTogZXhwZWN0ZWQgYSBudW1i
ZXIgZ3JlYXRlciB0aGFuIDIxIGFuZCBsZXNzIHRoYW4gNDIgYnV0IGdvdCAxNQorUEFTUyBUaGUg
cmV2ZXJ0IGtleXdvcmQgd29ya3MgaW4gdGhlIGZpbmFsIGZyYW1lIG9mIGEgd2ViIGFuaW1hdGlv
bgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZlcnQtdmFsLTAxMC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZS9yZXZl
cnQtdmFsLTAxMC1leHBlY3RlZC50eHQKaW5kZXggMGUyYzBkNmNhZTRmMjY5ZWQ4YjI3MDEwOTdl
NTNlYjU5ZTdiMmM1Zi4uYmIyYmY0ZDM4Mzg4MjFlODNmZDI2NDIyNTNhZmFlMTI4MThkZDUwYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNhc2NhZGUvcmV2ZXJ0LXZhbC0wMTAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jYXNjYWRlL3JldmVy
dC12YWwtMDEwLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBUaGUgcmV2ZXJ0
IHdvcmtzIHdoZW4gYXBwZWFyaW5nIGluIHNldEtleWZyYW1lcyBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCA0MiBidXQgZ290IDMxCitQQVNTIFRoZSByZXZlcnQgd29ya3Mgd2hlbiBhcHBlYXJpbmcg
aW4gc2V0S2V5ZnJhbWVzCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>