<?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>188730</bug_id>
          
          <creation_ts>2018-08-19 07:59:07 -0700</creation_ts>
          <short_desc>[Web Animations] Animation with a single keyframe is not accelerated</short_desc>
          <delta_ts>2020-07-08 10:22:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>Safari Technology Preview</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=214088</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="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1451447</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-08-19 07:59:07 -0700</bug_when>
    <thetext>const animation = document.body.appendChild(document.createElement(&quot;div&quot;)).animate({
    opacity: 0
}, 5000);

The following animation fails because in KeyframeEffectReadOnly::applyPendingAcceleratedActions() the keyframes we pass to RenderLayerBacking::startAnimation() and eventually to GraphicsLayerCA::animationCanBeAccelerated() (via GraphicsLayerCA::addAnimation()) only have a single value and we need at least two values to have a qualifying accelerated animation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451448</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-19 07:59:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/43481113&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653077</commentid>
    <comment_count>2</comment_count>
      <attachid>399484</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-15 09:13:25 -0700</bug_when>
    <thetext>Created attachment 399484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653082</commentid>
    <comment_count>3</comment_count>
      <attachid>399484</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-15 09:31:40 -0700</bug_when>
    <thetext>Comment on attachment 399484
Patch

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

&gt; Source/WebCore/animation/KeyframeEffect.cpp:1583
&gt; +        keyframes = WTFMove(explicitKeyframes);

I think this leaves you with a ref to garbage data.

&gt; Source/WebCore/rendering/style/KeyframeList.cpp:97
&gt; +    int initialSize = size();

auto. size is size_t.

&gt; Source/WebCore/rendering/style/KeyframeList.cpp:102
&gt; +        static StyleRuleKeyframe* zeroPercentKeyframe;
&gt; +        if (!zeroPercentKeyframe) {
&gt; +            zeroPercentKeyframe = &amp;StyleRuleKeyframe::create(MutableStyleProperties::create()).leakRef();
&gt; +            zeroPercentKeyframe-&gt;setKey(0);

NeverDestroyed?

&gt; Source/WebCore/rendering/style/KeyframeList.cpp:115
&gt; +        static StyleRuleKeyframe* hundredPercentKeyframe;
&gt; +        if (!hundredPercentKeyframe) {
&gt; +            hundredPercentKeyframe = &amp;StyleRuleKeyframe::create(MutableStyleProperties::create()).leakRef();
&gt; +            hundredPercentKeyframe-&gt;setKey(1);
&gt; +        }

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653101</commentid>
    <comment_count>4</comment_count>
      <attachid>399492</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-15 10:34:05 -0700</bug_when>
    <thetext>Created attachment 399492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653102</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-15 10:35:10 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 399484 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399484&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/KeyframeEffect.cpp:1583
&gt; &gt; +        keyframes = WTFMove(explicitKeyframes);
&gt; 
&gt; I think this leaves you with a ref to garbage data.

It was actually setting m_blendingKeyframes, which is not what I intended. I now use a lambda to generate a new KeyframeList only when needed.

&gt; &gt; Source/WebCore/rendering/style/KeyframeList.cpp:97
&gt; &gt; +    int initialSize = size();
&gt; 
&gt; auto. size is size_t.

Fixed in updated patch.

&gt; &gt; Source/WebCore/rendering/style/KeyframeList.cpp:102
&gt; &gt; +        static StyleRuleKeyframe* zeroPercentKeyframe;
&gt; &gt; +        if (!zeroPercentKeyframe) {
&gt; &gt; +            zeroPercentKeyframe = &amp;StyleRuleKeyframe::create(MutableStyleProperties::create()).leakRef();
&gt; &gt; +            zeroPercentKeyframe-&gt;setKey(0);
&gt; 
&gt; NeverDestroyed?
&gt; 
&gt; &gt; Source/WebCore/rendering/style/KeyframeList.cpp:115
&gt; &gt; +        static StyleRuleKeyframe* hundredPercentKeyframe;
&gt; &gt; +        if (!hundredPercentKeyframe) {
&gt; &gt; +            hundredPercentKeyframe = &amp;StyleRuleKeyframe::create(MutableStyleProperties::create()).leakRef();
&gt; &gt; +            hundredPercentKeyframe-&gt;setKey(1);
&gt; &gt; +        }
&gt; 
&gt; Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653106</commentid>
    <comment_count>6</comment_count>
      <attachid>399492</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-05-15 10:54:28 -0700</bug_when>
    <thetext>Comment on attachment 399492
Patch

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

&gt; Source/WebCore/rendering/style/KeyframeList.cpp:81
&gt; +    return size() &amp;&amp; (m_keyframes[0].key() || m_keyframes[size() - 1].key() != 1);

Are you sure m_keyframes has values?

&gt; Source/WebCore/rendering/style/KeyframeList.cpp:103
&gt; +        static StyleRuleKeyframe* zeroPercentKeyframe;
&gt; +        if (!zeroPercentKeyframe) {
&gt; +            zeroPercentKeyframe = &amp;StyleRuleKeyframe::create(MutableStyleProperties::create()).leakRef();
&gt; +            zeroPercentKeyframe-&gt;setKey(0);
&gt; +        }

Should do the NeverDestroyed thing that smfr suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653107</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-15 10:56:07 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #6)
&gt; Comment on attachment 399492 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399492&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/KeyframeList.cpp:81
&gt; &gt; +    return size() &amp;&amp; (m_keyframes[0].key() || m_keyframes[size() - 1].key() != 1);
&gt; 
&gt; Are you sure m_keyframes has values?

Yes, given size() is true.

&gt; &gt; Source/WebCore/rendering/style/KeyframeList.cpp:103
&gt; &gt; +        static StyleRuleKeyframe* zeroPercentKeyframe;
&gt; &gt; +        if (!zeroPercentKeyframe) {
&gt; &gt; +            zeroPercentKeyframe = &amp;StyleRuleKeyframe::create(MutableStyleProperties::create()).leakRef();
&gt; &gt; +            zeroPercentKeyframe-&gt;setKey(0);
&gt; &gt; +        }
&gt; 
&gt; Should do the NeverDestroyed thing that smfr suggested.

Let&apos;s try it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653130</commentid>
    <comment_count>8</comment_count>
      <attachid>399501</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-15 12:14:23 -0700</bug_when>
    <thetext>Created attachment 399501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653152</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-15 13:07:32 -0700</bug_when>
    <thetext>Committed r261756: &lt;https://trac.webkit.org/changeset/261756&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399484</attachid>
            <date>2020-05-15 09:13:25 -0700</date>
            <delta_ts>2020-05-15 10:34:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188730-20200515181324.patch</filename>
            <type>text/plain</type>
            <size>13390</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE5NzlkN2Y3MTJlMzQy
YWY2OTdmMzI4MmY1MzI1MDcwZDM0MTdiNy4uNDYwZWNmNjljNGYyOTcyMjMyMzhjMDM1NWI5YTVl
YWJlZmFlODZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA1LTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBBbmltYXRpb24gd2l0aCBhIHNpbmdsZSBrZXlmcmFtZSBpcyBub3QgYWNjZWxlcmF0ZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODczMAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDM0ODExMTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1h
bmltYXRpb24tc2luZ2xlLWtleWZyYW1lLmh0bWwKKworICAgICAgICBQcmlvciB0byBhdHRlbXB0
aW5nIHRvIHJ1biBhbiBhY2NlbGVyYXRlZCBlZmZlY3QsIGVuc3VyZSB0aGF0IHRoZSBLZXlmcmFt
ZUxpc3QgcGFzc2VkIHRvCisgICAgICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnN0YXJ0QW5p
bWF0aW9uKCkgZG9lcyBub3QgaGF2ZSBpbXBsaWNpdCBrZXlmcmFtZXMgc2luY2UgZXZlbnR1YWxs
eQorICAgICAgICBHcmFwaGljc0xheWVyQ0E6OmFuaW1hdGlvbkNhbkJlQWNjZWxlcmF0ZWQoKSB3
b3VsZCBiZSBjYWxsZWQgYW5kIHdvdWxkIHJlamVjdCBhIHNpbmdsZS1rZXlmcmFtZQorICAgICAg
ICBhbmltYXRpb24uIFRvIGRvIHRoaXMsIHdlIHVzZSB0aGUgc2FtZSBjb2RlIHVzZWQgaW4gU3R5
bGU6OlJlc29sdmVyOjprZXlmcmFtZVN0eWxlc0ZvckFuaW1hdGlvbigpCisgICAgICAgIHdoaWNo
IHdlIHJlZmFjdG9yIGluIHRoZSBuZXcgS2V5ZnJhbWVMaXN0OjpmaWxsSW1wbGljaXRLZXlmcmFt
ZXMoKSBtZXRob2QuCisKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmNvcHlQcm9wZXJ0aWVzRnJvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6YXBwbHlQZW5kaW5nQWNjZWxl
cmF0ZWRBY3Rpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lTGlzdDo6aGFzSW1wbGljaXRLZXlmcmFtZXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVMaXN0Ojpjb3B5S2V5ZnJhbWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lTGlzdDo6ZmlsbEltcGxpY2l0S2V5ZnJhbWVzKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0Lmg6CisgICAgICAgICogc3R5
bGUvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6
OmtleWZyYW1lU3R5bGVzRm9yQW5pbWF0aW9uKToKKwogMjAyMC0wNS0xNCAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIEN1cnNvciBzaG91bGQgbm90IHVwZGF0
ZSBvbiBhIDIwbXMgdGltZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZl
Y3QuY3BwCmluZGV4IDY5ZTIzNGFhMDAxYzU0NGVhN2ViNmZkZGI4OTE4ZWNlMDZlNWQzMmUuLjY4
ODUzMmUwYzkwNjg3MGI5ODRmMTM1MTA0MTExYjdkOWRhY2FhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAtNTY1LDEyICs1NjUsNyBAQCB2b2lk
IEtleWZyYW1lRWZmZWN0Ojpjb3B5UHJvcGVydGllc0Zyb21Tb3VyY2UoUmVmPEtleWZyYW1lRWZm
ZWN0PiYmIHNvdXJjZSkKICAgICB1cGRhdGVTdGF0aWNUaW1pbmdQcm9wZXJ0aWVzKCk7CiAKICAg
ICBLZXlmcmFtZUxpc3Qga2V5ZnJhbWVMaXN0KCJrZXlmcmFtZS1lZmZlY3QtIiArIGNyZWF0ZUNh
bm9uaWNhbFVVSURTdHJpbmcoKSk7Ci0gICAgZm9yIChhdXRvJiBrZXlmcmFtZSA6IHNvdXJjZS0+
bV9ibGVuZGluZ0tleWZyYW1lcy5rZXlmcmFtZXMoKSkgewotICAgICAgICBLZXlmcmFtZVZhbHVl
IGtleWZyYW1lVmFsdWUoa2V5ZnJhbWUua2V5KCksIFJlbmRlclN0eWxlOjpjbG9uZVB0cigqa2V5
ZnJhbWUuc3R5bGUoKSkpOwotICAgICAgICBmb3IgKGF1dG8gcHJvcGVydHlJZCA6IGtleWZyYW1l
LnByb3BlcnRpZXMoKSkKLSAgICAgICAgICAgIGtleWZyYW1lVmFsdWUuYWRkUHJvcGVydHkocHJv
cGVydHlJZCk7Ci0gICAgICAgIGtleWZyYW1lTGlzdC5pbnNlcnQoV1RGTW92ZShrZXlmcmFtZVZh
bHVlKSk7Ci0gICAgfQorICAgIGtleWZyYW1lTGlzdC5jb3B5S2V5ZnJhbWVzKHNvdXJjZS0+bV9i
bGVuZGluZ0tleWZyYW1lcyk7CiAgICAgc2V0QmxlbmRpbmdLZXlmcmFtZXMoa2V5ZnJhbWVMaXN0
KTsKIH0KIApAQCAtMTU3OCwxMSArMTU3MywyMSBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjphcHBs
eVBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMoKQogICAgIC8vIFRvIHNpbXBsaWZ5IHRoZSBjb2Rl
IHdlIHVzZSBhIGRlZmF1bHQgb2YgMHMgZm9yIGFuIHVucmVzb2x2ZWQgY3VycmVudCB0aW1lIHNp
bmNlIGZvciBhIFN0b3AgYWN0aW9uIHRoYXQgaXMgYWNjZXB0YWJsZS4KICAgICBhdXRvIHRpbWVP
ZmZzZXQgPSBhbmltYXRpb24oKS0+Y3VycmVudFRpbWUoKS52YWx1ZU9yKDBfcykuc2Vjb25kcygp
IC0gZGVsYXkoKS5zZWNvbmRzKCk7CiAKKyAgICBhdXRvJiBrZXlmcmFtZXMgPSBtX2JsZW5kaW5n
S2V5ZnJhbWVzOworICAgIGlmIChrZXlmcmFtZXMuaGFzSW1wbGljaXRLZXlmcmFtZXMoKSkgewor
ICAgICAgICBBU1NFUlQobV91bmFuaW1hdGVkU3R5bGUpOworICAgICAgICBBU1NFUlQobV90YXJn
ZXQpOworICAgICAgICBLZXlmcmFtZUxpc3QgZXhwbGljaXRLZXlmcmFtZXMoa2V5ZnJhbWVzLmFu
aW1hdGlvbk5hbWUoKSk7CisgICAgICAgIGV4cGxpY2l0S2V5ZnJhbWVzLmNvcHlLZXlmcmFtZXMo
a2V5ZnJhbWVzKTsKKyAgICAgICAgZXhwbGljaXRLZXlmcmFtZXMuZmlsbEltcGxpY2l0S2V5ZnJh
bWVzKCptX3RhcmdldCwgbV90YXJnZXQtPnN0eWxlUmVzb2x2ZXIoKSwgbV91bmFuaW1hdGVkU3R5
bGUuZ2V0KCkpOworICAgICAgICBrZXlmcmFtZXMgPSBXVEZNb3ZlKGV4cGxpY2l0S2V5ZnJhbWVz
KTsKKyAgICB9CisKICAgICBmb3IgKGNvbnN0IGF1dG8mIGFjdGlvbiA6IHBlbmRpbmdBY2NlbGVy
YXRlZEFjdGlvbnMpIHsKICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICAgICAgY2FzZSBB
Y2NlbGVyYXRlZEFjdGlvbjo6UGxheToKICAgICAgICAgICAgIHJlbmRlcmVyLT5hbmltYXRpb25G
aW5pc2hlZChtX2JsZW5kaW5nS2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7Ci0gICAgICAgICAg
ICBtX2lzUnVubmluZ0FjY2VsZXJhdGVkID0gcmVuZGVyZXItPnN0YXJ0QW5pbWF0aW9uKHRpbWVP
ZmZzZXQsIGJhY2tpbmdBbmltYXRpb25Gb3JDb21wb3NpdGVkUmVuZGVyZXIoKSwgbV9ibGVuZGlu
Z0tleWZyYW1lcyk7CisgICAgICAgICAgICBtX2lzUnVubmluZ0FjY2VsZXJhdGVkID0gcmVuZGVy
ZXItPnN0YXJ0QW5pbWF0aW9uKHRpbWVPZmZzZXQsIGJhY2tpbmdBbmltYXRpb25Gb3JDb21wb3Np
dGVkUmVuZGVyZXIoKSwga2V5ZnJhbWVzKTsKICAgICAgICAgICAgIGlmICghbV9pc1J1bm5pbmdB
Y2NlbGVyYXRlZCkgewogICAgICAgICAgICAgICAgIG1fbGFzdFJlY29yZGVkQWNjZWxlcmF0ZWRB
Y3Rpb24gPSBBY2NlbGVyYXRlZEFjdGlvbjo6U3RvcDsKICAgICAgICAgICAgICAgICByZXR1cm47
CkBAIC0xNTkzLDcgKzE1OTgsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjphcHBseVBlbmRpbmdB
Y2NlbGVyYXRlZEFjdGlvbnMoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQWNj
ZWxlcmF0ZWRBY3Rpb246OlVwZGF0ZVRpbWluZzoKICAgICAgICAgICAgIHJlbmRlcmVyLT5hbmlt
YXRpb25GaW5pc2hlZChtX2JsZW5kaW5nS2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7Ci0gICAg
ICAgICAgICByZW5kZXJlci0+c3RhcnRBbmltYXRpb24odGltZU9mZnNldCwgYmFja2luZ0FuaW1h
dGlvbkZvckNvbXBvc2l0ZWRSZW5kZXJlcigpLCBtX2JsZW5kaW5nS2V5ZnJhbWVzKTsKKyAgICAg
ICAgICAgIHJlbmRlcmVyLT5zdGFydEFuaW1hdGlvbih0aW1lT2Zmc2V0LCBiYWNraW5nQW5pbWF0
aW9uRm9yQ29tcG9zaXRlZFJlbmRlcmVyKCksIGtleWZyYW1lcyk7CiAgICAgICAgICAgICBpZiAo
YW5pbWF0aW9uKCktPnBsYXlTdGF0ZSgpID09IFdlYkFuaW1hdGlvbjo6UGxheVN0YXRlOjpQYXVz
ZWQpCiAgICAgICAgICAgICAgICAgcmVuZGVyZXItPmFuaW1hdGlvblBhdXNlZCh0aW1lT2Zmc2V0
LCBtX2JsZW5kaW5nS2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7CiAgICAgICAgICAgICBicmVh
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAK
aW5kZXggNTlkMGQ3NzkzYThlYTUwZmJiMWMwOGJkMDNhOTQ3NDU2Y2NkY2YxZi4uZTRjNDIwYWJk
NWZmMzYyZTgyZmI2MzhkNjdjYmY2OWYxZWZkZDcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAKQEAgLTIzLDcgKzIzLDkgQEAKICNpbmNs
dWRlICJLZXlmcmFtZUxpc3QuaCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgorI2luY2x1ZGUg
IkNTU0tleWZyYW1lUnVsZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUg
IlN0eWxlUmVzb2x2ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03NCw0ICs3Niw0
NyBAQCB2b2lkIEtleWZyYW1lTGlzdDo6aW5zZXJ0KEtleWZyYW1lVmFsdWUmJiBrZXlmcmFtZSkK
ICAgICAgICAgbV9wcm9wZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CiB9CiAKK2Jvb2wgS2V5ZnJhbWVM
aXN0OjpoYXNJbXBsaWNpdEtleWZyYW1lcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNpemUoKSAm
JiAobV9rZXlmcmFtZXNbMF0ua2V5KCkgfHwgbV9rZXlmcmFtZXNbc2l6ZSgpIC0gMV0ua2V5KCkg
IT0gMSk7Cit9CisKK3ZvaWQgS2V5ZnJhbWVMaXN0Ojpjb3B5S2V5ZnJhbWVzKEtleWZyYW1lTGlz
dCYgb3RoZXIpCit7CisgICAgZm9yIChhdXRvJiBrZXlmcmFtZSA6IG90aGVyLmtleWZyYW1lcygp
KSB7CisgICAgICAgIEtleWZyYW1lVmFsdWUga2V5ZnJhbWVWYWx1ZShrZXlmcmFtZS5rZXkoKSwg
UmVuZGVyU3R5bGU6OmNsb25lUHRyKCprZXlmcmFtZS5zdHlsZSgpKSk7CisgICAgICAgIGZvciAo
YXV0byBwcm9wZXJ0eUlkIDoga2V5ZnJhbWUucHJvcGVydGllcygpKQorICAgICAgICAgICAga2V5
ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0eShwcm9wZXJ0eUlkKTsKKyAgICAgICAgaW5zZXJ0KFdURk1v
dmUoa2V5ZnJhbWVWYWx1ZSkpOworICAgIH0KK30KKwordm9pZCBLZXlmcmFtZUxpc3Q6OmZpbGxJ
bXBsaWNpdEtleWZyYW1lcyhjb25zdCBFbGVtZW50JiBlbGVtZW50LCBTdHlsZTo6UmVzb2x2ZXIm
IHN0eWxlUmVzb2x2ZXIsIGNvbnN0IFJlbmRlclN0eWxlKiBlbGVtZW50U3R5bGUpCit7CisgICAg
Ly8gSWYgdGhlIDAlIGtleWZyYW1lIGlzIG1pc3NpbmcsIGNyZWF0ZSBpdCAoYnV0IG9ubHkgaWYg
dGhlcmUgaXMgYXQgbGVhc3Qgb25lIG90aGVyIGtleWZyYW1lKS4KKyAgICBpbnQgaW5pdGlhbFNp
emUgPSBzaXplKCk7CisgICAgaWYgKGluaXRpYWxTaXplID4gMCAmJiBtX2tleWZyYW1lc1swXS5r
ZXkoKSkgeworICAgICAgICBzdGF0aWMgU3R5bGVSdWxlS2V5ZnJhbWUqIHplcm9QZXJjZW50S2V5
ZnJhbWU7CisgICAgICAgIGlmICghemVyb1BlcmNlbnRLZXlmcmFtZSkgeworICAgICAgICAgICAg
emVyb1BlcmNlbnRLZXlmcmFtZSA9ICZTdHlsZVJ1bGVLZXlmcmFtZTo6Y3JlYXRlKE11dGFibGVT
dHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpKS5sZWFrUmVmKCk7CisgICAgICAgICAgICB6ZXJvUGVy
Y2VudEtleWZyYW1lLT5zZXRLZXkoMCk7CisgICAgICAgIH0KKyAgICAgICAgS2V5ZnJhbWVWYWx1
ZSBrZXlmcmFtZVZhbHVlKDAsIG51bGxwdHIpOworICAgICAgICBrZXlmcmFtZVZhbHVlLnNldFN0
eWxlKHN0eWxlUmVzb2x2ZXIuc3R5bGVGb3JLZXlmcmFtZShlbGVtZW50LCBlbGVtZW50U3R5bGUs
IHplcm9QZXJjZW50S2V5ZnJhbWUsIGtleWZyYW1lVmFsdWUpKTsKKyAgICAgICAgaW5zZXJ0KFdU
Rk1vdmUoa2V5ZnJhbWVWYWx1ZSkpOworICAgIH0KKworICAgIC8vIElmIHRoZSAxMDAlIGtleWZy
YW1lIGlzIG1pc3NpbmcsIGNyZWF0ZSBpdCAoYnV0IG9ubHkgaWYgdGhlcmUgaXMgYXQgbGVhc3Qg
b25lIG90aGVyIGtleWZyYW1lKS4KKyAgICBpZiAoaW5pdGlhbFNpemUgPiAwICYmIChtX2tleWZy
YW1lc1tzaXplKCkgLSAxXS5rZXkoKSAhPSAxKSkgeworICAgICAgICBzdGF0aWMgU3R5bGVSdWxl
S2V5ZnJhbWUqIGh1bmRyZWRQZXJjZW50S2V5ZnJhbWU7CisgICAgICAgIGlmICghaHVuZHJlZFBl
cmNlbnRLZXlmcmFtZSkgeworICAgICAgICAgICAgaHVuZHJlZFBlcmNlbnRLZXlmcmFtZSA9ICZT
dHlsZVJ1bGVLZXlmcmFtZTo6Y3JlYXRlKE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgp
KS5sZWFrUmVmKCk7CisgICAgICAgICAgICBodW5kcmVkUGVyY2VudEtleWZyYW1lLT5zZXRLZXko
MSk7CisgICAgICAgIH0KKyAgICAgICAgS2V5ZnJhbWVWYWx1ZSBrZXlmcmFtZVZhbHVlKDEsIG51
bGxwdHIpOworICAgICAgICBrZXlmcmFtZVZhbHVlLnNldFN0eWxlKHN0eWxlUmVzb2x2ZXIuc3R5
bGVGb3JLZXlmcmFtZShlbGVtZW50LCBlbGVtZW50U3R5bGUsIGh1bmRyZWRQZXJjZW50S2V5ZnJh
bWUsIGtleWZyYW1lVmFsdWUpKTsKKyAgICAgICAgaW5zZXJ0KFdURk1vdmUoa2V5ZnJhbWVWYWx1
ZSkpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oCmluZGV4IGM5MzJjZDU2YWQxYWJhYmMy
ZDZjMWI5OGQ0MDg3MzZjZmUxZGU5YzIuLmE5Y2FhNDNmMjFkM2Q5MTQ4NTVhZTRlYzFjZjM3ZmE5
NzkyYTgyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlm
cmFtZUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVM
aXN0LmgKQEAgLTM0LDYgKzM0LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlbmRl
clN0eWxlOwogY2xhc3MgVGltaW5nRnVuY3Rpb247CiAKK25hbWVzcGFjZSBTdHlsZSB7CitjbGFz
cyBSZXNvbHZlcjsKK30KKwogY2xhc3MgS2V5ZnJhbWVWYWx1ZSB7CiBwdWJsaWM6CiAgICAgS2V5
ZnJhbWVWYWx1ZShkb3VibGUga2V5LCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxl
KQpAQCAtNTQsNyArNTgsNyBAQCBwdWJsaWM6CiAKICAgICBUaW1pbmdGdW5jdGlvbiogdGltaW5n
RnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0aW9uLmdldCgpOyB9CiAgICAg
dm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBSZWZQdHI8VGltaW5nRnVuY3Rpb24+JiB0aW1p
bmdGdW5jdGlvbikgeyBtX3RpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb247IH0KLSAgICAK
KwogcHJpdmF0ZToKICAgICBkb3VibGUgbV9rZXk7CiAgICAgSGFzaFNldDxDU1NQcm9wZXJ0eUlE
PiBtX3Byb3BlcnRpZXM7IC8vIFRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCBpbiB0aGlzIGtleWZy
YW1lLgpAQCAtODgsNiArOTIsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IEtleWZyYW1lVmFsdWUm
IG9wZXJhdG9yW10oc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBtX2tleWZyYW1lc1tpbmRl
eF07IH0KICAgICBjb25zdCBWZWN0b3I8S2V5ZnJhbWVWYWx1ZT4mIGtleWZyYW1lcygpIGNvbnN0
IHsgcmV0dXJuIG1fa2V5ZnJhbWVzOyB9CiAKKyAgICB2b2lkIGNvcHlLZXlmcmFtZXMoS2V5ZnJh
bWVMaXN0Jik7CisgICAgYm9vbCBoYXNJbXBsaWNpdEtleWZyYW1lcygpIGNvbnN0OworICAgIHZv
aWQgZmlsbEltcGxpY2l0S2V5ZnJhbWVzKGNvbnN0IEVsZW1lbnQmLCBTdHlsZTo6UmVzb2x2ZXIm
LCBjb25zdCBSZW5kZXJTdHlsZSopOworCiBwcml2YXRlOgogICAgIEF0b21TdHJpbmcgbV9hbmlt
YXRpb25OYW1lOwogICAgIFZlY3RvcjxLZXlmcmFtZVZhbHVlPiBtX2tleWZyYW1lczsgLy8gS2Vw
dCBzb3J0ZWQgYnkga2V5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVS
ZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAppbmRl
eCA5MzMzYjgzOTEzYTQzY2E1MWQ2ODYxNmFiZjFiMjUwZjY3NDNiMmMzLi4wNjg1YmVlYzZkNzU0
YmI1ODcyNWEzMGYzODVhZjM4OTc0NjFmZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJl
c29sdmVyLmNwcApAQCAtMzU5LDMwICszNTksNyBAQCB2b2lkIFJlc29sdmVyOjprZXlmcmFtZVN0
eWxlc0ZvckFuaW1hdGlvbihjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdAog
ICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gSWYgdGhlIDAlIGtleWZyYW1lIGlzIG1pc3Npbmcs
IGNyZWF0ZSBpdCAoYnV0IG9ubHkgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG90aGVyIGtleWZy
YW1lKS4KLSAgICBpbnQgaW5pdGlhbExpc3RTaXplID0gbGlzdC5zaXplKCk7Ci0gICAgaWYgKGlu
aXRpYWxMaXN0U2l6ZSA+IDAgJiYgbGlzdFswXS5rZXkoKSkgewotICAgICAgICBzdGF0aWMgU3R5
bGVSdWxlS2V5ZnJhbWUqIHplcm9QZXJjZW50S2V5ZnJhbWU7Ci0gICAgICAgIGlmICghemVyb1Bl
cmNlbnRLZXlmcmFtZSkgewotICAgICAgICAgICAgemVyb1BlcmNlbnRLZXlmcmFtZSA9ICZTdHls
ZVJ1bGVLZXlmcmFtZTo6Y3JlYXRlKE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpKS5s
ZWFrUmVmKCk7Ci0gICAgICAgICAgICB6ZXJvUGVyY2VudEtleWZyYW1lLT5zZXRLZXkoMCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgS2V5ZnJhbWVWYWx1ZSBrZXlmcmFtZVZhbHVlKDAsIG51bGxwdHIp
OwotICAgICAgICBrZXlmcmFtZVZhbHVlLnNldFN0eWxlKHN0eWxlRm9yS2V5ZnJhbWUoZWxlbWVu
dCwgZWxlbWVudFN0eWxlLCB6ZXJvUGVyY2VudEtleWZyYW1lLCBrZXlmcmFtZVZhbHVlKSk7Ci0g
ICAgICAgIGxpc3QuaW5zZXJ0KFdURk1vdmUoa2V5ZnJhbWVWYWx1ZSkpOwotICAgIH0KLQotICAg
IC8vIElmIHRoZSAxMDAlIGtleWZyYW1lIGlzIG1pc3NpbmcsIGNyZWF0ZSBpdCAoYnV0IG9ubHkg
aWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG90aGVyIGtleWZyYW1lKS4KLSAgICBpZiAoaW5pdGlh
bExpc3RTaXplID4gMCAmJiAobGlzdFtsaXN0LnNpemUoKSAtIDFdLmtleSgpICE9IDEpKSB7Ci0g
ICAgICAgIHN0YXRpYyBTdHlsZVJ1bGVLZXlmcmFtZSogaHVuZHJlZFBlcmNlbnRLZXlmcmFtZTsK
LSAgICAgICAgaWYgKCFodW5kcmVkUGVyY2VudEtleWZyYW1lKSB7Ci0gICAgICAgICAgICBodW5k
cmVkUGVyY2VudEtleWZyYW1lID0gJlN0eWxlUnVsZUtleWZyYW1lOjpjcmVhdGUoTXV0YWJsZVN0
eWxlUHJvcGVydGllczo6Y3JlYXRlKCkpLmxlYWtSZWYoKTsKLSAgICAgICAgICAgIGh1bmRyZWRQ
ZXJjZW50S2V5ZnJhbWUtPnNldEtleSgxKTsKLSAgICAgICAgfQotICAgICAgICBLZXlmcmFtZVZh
bHVlIGtleWZyYW1lVmFsdWUoMSwgbnVsbHB0cik7Ci0gICAgICAgIGtleWZyYW1lVmFsdWUuc2V0
U3R5bGUoc3R5bGVGb3JLZXlmcmFtZShlbGVtZW50LCBlbGVtZW50U3R5bGUsIGh1bmRyZWRQZXJj
ZW50S2V5ZnJhbWUsIGtleWZyYW1lVmFsdWUpKTsKLSAgICAgICAgbGlzdC5pbnNlcnQoV1RGTW92
ZShrZXlmcmFtZVZhbHVlKSk7Ci0gICAgfQorICAgIGxpc3QuZmlsbEltcGxpY2l0S2V5ZnJhbWVz
KGVsZW1lbnQsICp0aGlzLCBlbGVtZW50U3R5bGUpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+IFJlc29sdmVyOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYg
ZWxlbWVudCwgY29uc3QgUHNldWRvRWxlbWVudFJlcXVlc3QmIHBzZXVkb0VsZW1lbnRSZXF1ZXN0
LCBjb25zdCBSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJl
bnRCb3hTdHlsZSwgY29uc3QgU2VsZWN0b3JGaWx0ZXIqIHNlbGVjdG9yRmlsdGVyKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGJiZDBlZGE3N2YwMzVjY2I1NWRmNGM0NGM3NTllZDVhZGQzYmI5Y2MuLjk2YmRlN2VhNTY2MGVj
NzgwMTE0YTFlMDRmZDYwMThiNmVjYzZiNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0w
NS0xNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIg
QW5pbWF0aW9uc10gQW5pbWF0aW9uIHdpdGggYSBzaW5nbGUga2V5ZnJhbWUgaXMgbm90IGFjY2Vs
ZXJhdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQzNDgxMTEzPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQgcnVu
cyBhIHNpbmdsZS1rZXlmcmFtZSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGFuZCBjaGVja3MgdGhhdCBp
dCBydW5zIGFjY2VsZXJhdGVkLgorCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRl
ZC1hbmltYXRpb24tc2luZ2xlLWtleWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZyYW1lLmh0
bWw6IEFkZGVkLgorCiAyMDIwLTA1LTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5j
b20+CiAKICAgICAgICAgQ3Vyc29yIHNob3VsZCBub3QgdXBkYXRlIG9uIGEgMjBtcyB0aW1lcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRp
b24tc2luZ2xlLWtleWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlv
bnMvYWNjZWxlcmF0ZWQtYW5pbWF0aW9uLXNpbmdsZS1rZXlmcmFtZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTY5OGI2YzQ2MDI1OTljOTA0M2I5MzU3OGMzN2U0ZWM2ZjQyMGVmMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQtYW5pbWF0
aW9uLXNpbmdsZS1rZXlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
QSB0cmFuc2Zvcm0gYW5pbWF0aW9uIHdpdGggYSBzaW5nbGUga2V5ZnJhbWUgc2hvdWxkIGJlIGFi
bGUgdG8gcnVuIGFjY2VsZXJhdGVkLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5p
bWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVkLWFuaW1hdGlvbi1zaW5nbGUta2V5ZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mM2Y1M2E5OWYwZDYzMWY2MWRkYzQzMWY3YzA0NWUzZGJkOTM1
MWEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9hY2NlbGVy
YXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisKKyAgICAjdGFyZ2V0IHsKKyAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwOworICAgICAgICB0b3A6IDA7CisgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmxhY2s7CisgICAgfQorCis8L3N0eWxlPgorPGRpdiBpZD0idGFyZ2V0Ij48
L2Rpdj4KKzxzY3JpcHQ+CisKK2FzeW5jX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgLy8gU3RhcnQg
YW4gYW5pbWF0aW9uIHdpdGggYW4gaW1wbGljaXQgZnJvbSBrZXlmcmFtZS4KKyAgICBjb25zdCBh
bmltYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuYW5pbWF0ZSh7IHRy
YW5zZm9ybTogInRyYW5zbGF0ZVgoNjAwcHgpIiB9LCB7IGR1cmF0aW9uOiAxMDAwICogMTAwMCB9
KTsKKworICAgIC8vIFdhaXQgdHdvIGZyYW1lcyBmb3IgdGhlIGFjY2VsZXJhdGVkIGFuaW1hdGlv
biB0byBiZSBjb21taXR0ZWQuCisgICAgYXdhaXQgYW5pbWF0aW9uLnJlYWR5OworICAgIGF3YWl0
IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7CisgICAgYXdhaXQgbmV3IFByb21p
c2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKKworICAgIGFzc2VydF9lcXVhbHMoaW50ZXJuYWxz
LmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQodGFyZ2V0KS5sZW5ndGgsIDEsICJUaGVy
ZSBzaG91bGQgYmUgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uLiIpOworICAgIHQuZG9uZSgpOwor
fSwgIkEgdHJhbnNmb3JtIGFuaW1hdGlvbiB3aXRoIGEgc2luZ2xlIGtleWZyYW1lIHNob3VsZCBi
ZSBhYmxlIHRvIHJ1biBhY2NlbGVyYXRlZC4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399492</attachid>
            <date>2020-05-15 10:34:05 -0700</date>
            <delta_ts>2020-05-15 12:14:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188730-20200515193404.patch</filename>
            <type>text/plain</type>
            <size>13633</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE5NzlkN2Y3MTJlMzQy
YWY2OTdmMzI4MmY1MzI1MDcwZDM0MTdiNy4uNDYwZWNmNjljNGYyOTcyMjMyMzhjMDM1NWI5YTVl
YWJlZmFlODZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA1LTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBBbmltYXRpb24gd2l0aCBhIHNpbmdsZSBrZXlmcmFtZSBpcyBub3QgYWNjZWxlcmF0ZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODczMAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDM0ODExMTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1h
bmltYXRpb24tc2luZ2xlLWtleWZyYW1lLmh0bWwKKworICAgICAgICBQcmlvciB0byBhdHRlbXB0
aW5nIHRvIHJ1biBhbiBhY2NlbGVyYXRlZCBlZmZlY3QsIGVuc3VyZSB0aGF0IHRoZSBLZXlmcmFt
ZUxpc3QgcGFzc2VkIHRvCisgICAgICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnN0YXJ0QW5p
bWF0aW9uKCkgZG9lcyBub3QgaGF2ZSBpbXBsaWNpdCBrZXlmcmFtZXMgc2luY2UgZXZlbnR1YWxs
eQorICAgICAgICBHcmFwaGljc0xheWVyQ0E6OmFuaW1hdGlvbkNhbkJlQWNjZWxlcmF0ZWQoKSB3
b3VsZCBiZSBjYWxsZWQgYW5kIHdvdWxkIHJlamVjdCBhIHNpbmdsZS1rZXlmcmFtZQorICAgICAg
ICBhbmltYXRpb24uIFRvIGRvIHRoaXMsIHdlIHVzZSB0aGUgc2FtZSBjb2RlIHVzZWQgaW4gU3R5
bGU6OlJlc29sdmVyOjprZXlmcmFtZVN0eWxlc0ZvckFuaW1hdGlvbigpCisgICAgICAgIHdoaWNo
IHdlIHJlZmFjdG9yIGluIHRoZSBuZXcgS2V5ZnJhbWVMaXN0OjpmaWxsSW1wbGljaXRLZXlmcmFt
ZXMoKSBtZXRob2QuCisKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmNvcHlQcm9wZXJ0aWVzRnJvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6YXBwbHlQZW5kaW5nQWNjZWxl
cmF0ZWRBY3Rpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lTGlzdDo6aGFzSW1wbGljaXRLZXlmcmFtZXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVMaXN0Ojpjb3B5S2V5ZnJhbWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lTGlzdDo6ZmlsbEltcGxpY2l0S2V5ZnJhbWVzKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0Lmg6CisgICAgICAgICogc3R5
bGUvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6
OmtleWZyYW1lU3R5bGVzRm9yQW5pbWF0aW9uKToKKwogMjAyMC0wNS0xNCAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIEN1cnNvciBzaG91bGQgbm90IHVwZGF0
ZSBvbiBhIDIwbXMgdGltZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZl
Y3QuY3BwCmluZGV4IDY5ZTIzNGFhMDAxYzU0NGVhN2ViNmZkZGI4OTE4ZWNlMDZlNWQzMmUuLjEx
MGViMWU0Y2MyMzk2MjI4ZmQxMWZiYjY4ODdjMmFkYWI2ZjZhYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAtNTY1LDEyICs1NjUsNyBAQCB2b2lk
IEtleWZyYW1lRWZmZWN0Ojpjb3B5UHJvcGVydGllc0Zyb21Tb3VyY2UoUmVmPEtleWZyYW1lRWZm
ZWN0PiYmIHNvdXJjZSkKICAgICB1cGRhdGVTdGF0aWNUaW1pbmdQcm9wZXJ0aWVzKCk7CiAKICAg
ICBLZXlmcmFtZUxpc3Qga2V5ZnJhbWVMaXN0KCJrZXlmcmFtZS1lZmZlY3QtIiArIGNyZWF0ZUNh
bm9uaWNhbFVVSURTdHJpbmcoKSk7Ci0gICAgZm9yIChhdXRvJiBrZXlmcmFtZSA6IHNvdXJjZS0+
bV9ibGVuZGluZ0tleWZyYW1lcy5rZXlmcmFtZXMoKSkgewotICAgICAgICBLZXlmcmFtZVZhbHVl
IGtleWZyYW1lVmFsdWUoa2V5ZnJhbWUua2V5KCksIFJlbmRlclN0eWxlOjpjbG9uZVB0cigqa2V5
ZnJhbWUuc3R5bGUoKSkpOwotICAgICAgICBmb3IgKGF1dG8gcHJvcGVydHlJZCA6IGtleWZyYW1l
LnByb3BlcnRpZXMoKSkKLSAgICAgICAgICAgIGtleWZyYW1lVmFsdWUuYWRkUHJvcGVydHkocHJv
cGVydHlJZCk7Ci0gICAgICAgIGtleWZyYW1lTGlzdC5pbnNlcnQoV1RGTW92ZShrZXlmcmFtZVZh
bHVlKSk7Ci0gICAgfQorICAgIGtleWZyYW1lTGlzdC5jb3B5S2V5ZnJhbWVzKHNvdXJjZS0+bV9i
bGVuZGluZ0tleWZyYW1lcyk7CiAgICAgc2V0QmxlbmRpbmdLZXlmcmFtZXMoa2V5ZnJhbWVMaXN0
KTsKIH0KIApAQCAtMTU3OCwxMSArMTU3MywyNCBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjphcHBs
eVBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMoKQogICAgIC8vIFRvIHNpbXBsaWZ5IHRoZSBjb2Rl
IHdlIHVzZSBhIGRlZmF1bHQgb2YgMHMgZm9yIGFuIHVucmVzb2x2ZWQgY3VycmVudCB0aW1lIHNp
bmNlIGZvciBhIFN0b3AgYWN0aW9uIHRoYXQgaXMgYWNjZXB0YWJsZS4KICAgICBhdXRvIHRpbWVP
ZmZzZXQgPSBhbmltYXRpb24oKS0+Y3VycmVudFRpbWUoKS52YWx1ZU9yKDBfcykuc2Vjb25kcygp
IC0gZGVsYXkoKS5zZWNvbmRzKCk7CiAKKyAgICBhdXRvIHN0YXJ0QW5pbWF0aW9uID0gWyZdKCkg
LT4gYm9vbCB7CisgICAgICAgIHJlbmRlcmVyLT5hbmltYXRpb25GaW5pc2hlZChtX2JsZW5kaW5n
S2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7CisKKyAgICAgICAgaWYgKCFtX2JsZW5kaW5nS2V5
ZnJhbWVzLmhhc0ltcGxpY2l0S2V5ZnJhbWVzKCkpCisgICAgICAgICAgICByZXR1cm4gcmVuZGVy
ZXItPnN0YXJ0QW5pbWF0aW9uKHRpbWVPZmZzZXQsIGJhY2tpbmdBbmltYXRpb25Gb3JDb21wb3Np
dGVkUmVuZGVyZXIoKSwgbV9ibGVuZGluZ0tleWZyYW1lcyk7CisKKyAgICAgICAgQVNTRVJUKG1f
dW5hbmltYXRlZFN0eWxlKTsKKyAgICAgICAgQVNTRVJUKG1fdGFyZ2V0KTsKKyAgICAgICAgS2V5
ZnJhbWVMaXN0IGV4cGxpY2l0S2V5ZnJhbWVzKG1fYmxlbmRpbmdLZXlmcmFtZXMuYW5pbWF0aW9u
TmFtZSgpKTsKKyAgICAgICAgZXhwbGljaXRLZXlmcmFtZXMuY29weUtleWZyYW1lcyhtX2JsZW5k
aW5nS2V5ZnJhbWVzKTsKKyAgICAgICAgZXhwbGljaXRLZXlmcmFtZXMuZmlsbEltcGxpY2l0S2V5
ZnJhbWVzKCptX3RhcmdldCwgbV90YXJnZXQtPnN0eWxlUmVzb2x2ZXIoKSwgbV91bmFuaW1hdGVk
U3R5bGUuZ2V0KCkpOworICAgICAgICByZXR1cm4gcmVuZGVyZXItPnN0YXJ0QW5pbWF0aW9uKHRp
bWVPZmZzZXQsIGJhY2tpbmdBbmltYXRpb25Gb3JDb21wb3NpdGVkUmVuZGVyZXIoKSwgZXhwbGlj
aXRLZXlmcmFtZXMpOworICAgIH07CisKICAgICBmb3IgKGNvbnN0IGF1dG8mIGFjdGlvbiA6IHBl
bmRpbmdBY2NlbGVyYXRlZEFjdGlvbnMpIHsKICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAg
ICAgICAgY2FzZSBBY2NlbGVyYXRlZEFjdGlvbjo6UGxheToKLSAgICAgICAgICAgIHJlbmRlcmVy
LT5hbmltYXRpb25GaW5pc2hlZChtX2JsZW5kaW5nS2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7
Ci0gICAgICAgICAgICBtX2lzUnVubmluZ0FjY2VsZXJhdGVkID0gcmVuZGVyZXItPnN0YXJ0QW5p
bWF0aW9uKHRpbWVPZmZzZXQsIGJhY2tpbmdBbmltYXRpb25Gb3JDb21wb3NpdGVkUmVuZGVyZXIo
KSwgbV9ibGVuZGluZ0tleWZyYW1lcyk7CisgICAgICAgICAgICBtX2lzUnVubmluZ0FjY2VsZXJh
dGVkID0gc3RhcnRBbmltYXRpb24oKTsKICAgICAgICAgICAgIGlmICghbV9pc1J1bm5pbmdBY2Nl
bGVyYXRlZCkgewogICAgICAgICAgICAgICAgIG1fbGFzdFJlY29yZGVkQWNjZWxlcmF0ZWRBY3Rp
b24gPSBBY2NlbGVyYXRlZEFjdGlvbjo6U3RvcDsKICAgICAgICAgICAgICAgICByZXR1cm47CkBA
IC0xNTkyLDggKzE2MDAsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjphcHBseVBlbmRpbmdBY2Nl
bGVyYXRlZEFjdGlvbnMoKQogICAgICAgICAgICAgcmVuZGVyZXItPmFuaW1hdGlvblBhdXNlZCh0
aW1lT2Zmc2V0LCBtX2JsZW5kaW5nS2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBBY2NlbGVyYXRlZEFjdGlvbjo6VXBkYXRlVGltaW5n
OgotICAgICAgICAgICAgcmVuZGVyZXItPmFuaW1hdGlvbkZpbmlzaGVkKG1fYmxlbmRpbmdLZXlm
cmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKLSAgICAgICAgICAgIHJlbmRlcmVyLT5zdGFydEFuaW1h
dGlvbih0aW1lT2Zmc2V0LCBiYWNraW5nQW5pbWF0aW9uRm9yQ29tcG9zaXRlZFJlbmRlcmVyKCks
IG1fYmxlbmRpbmdLZXlmcmFtZXMpOworICAgICAgICAgICAgc3RhcnRBbmltYXRpb24oKTsKICAg
ICAgICAgICAgIGlmIChhbmltYXRpb24oKS0+cGxheVN0YXRlKCkgPT0gV2ViQW5pbWF0aW9uOjpQ
bGF5U3RhdGU6OlBhdXNlZCkKICAgICAgICAgICAgICAgICByZW5kZXJlci0+YW5pbWF0aW9uUGF1
c2VkKHRpbWVPZmZzZXQsIG1fYmxlbmRpbmdLZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKICAg
ICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0tleWZyYW1lTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvS2V5
ZnJhbWVMaXN0LmNwcAppbmRleCA1OWQwZDc3OTNhOGVhNTBmYmIxYzA4YmQwM2E5NDc0NTZjY2Rj
ZjFmLi45MWJkMzkzNjNlMDllNmU3M2M4NzQzZmJjMTZkMzA2OWM4N2QzNzVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNwcApAQCAtMjMsNyAr
MjMsOSBAQAogI2luY2x1ZGUgIktleWZyYW1lTGlzdC5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9u
LmgiCisjaW5jbHVkZSAiQ1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTc0LDQgKzc2LDQ3IEBAIHZvaWQgS2V5ZnJhbWVMaXN0OjppbnNlcnQoS2V5ZnJhbWVWYWx1
ZSYmIGtleWZyYW1lKQogICAgICAgICBtX3Byb3BlcnRpZXMuYWRkKHByb3BlcnR5KTsKIH0KIAor
Ym9vbCBLZXlmcmFtZUxpc3Q6Omhhc0ltcGxpY2l0S2V5ZnJhbWVzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gc2l6ZSgpICYmIChtX2tleWZyYW1lc1swXS5rZXkoKSB8fCBtX2tleWZyYW1lc1tzaXpl
KCkgLSAxXS5rZXkoKSAhPSAxKTsKK30KKwordm9pZCBLZXlmcmFtZUxpc3Q6OmNvcHlLZXlmcmFt
ZXMoS2V5ZnJhbWVMaXN0JiBvdGhlcikKK3sKKyAgICBmb3IgKGF1dG8mIGtleWZyYW1lIDogb3Ro
ZXIua2V5ZnJhbWVzKCkpIHsKKyAgICAgICAgS2V5ZnJhbWVWYWx1ZSBrZXlmcmFtZVZhbHVlKGtl
eWZyYW1lLmtleSgpLCBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKmtleWZyYW1lLnN0eWxlKCkpKTsK
KyAgICAgICAgZm9yIChhdXRvIHByb3BlcnR5SWQgOiBrZXlmcmFtZS5wcm9wZXJ0aWVzKCkpCisg
ICAgICAgICAgICBrZXlmcmFtZVZhbHVlLmFkZFByb3BlcnR5KHByb3BlcnR5SWQpOworICAgICAg
ICBpbnNlcnQoV1RGTW92ZShrZXlmcmFtZVZhbHVlKSk7CisgICAgfQorfQorCit2b2lkIEtleWZy
YW1lTGlzdDo6ZmlsbEltcGxpY2l0S2V5ZnJhbWVzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIFN0
eWxlOjpSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgY29uc3QgUmVuZGVyU3R5bGUqIGVsZW1lbnRT
dHlsZSkKK3sKKyAgICAvLyBJZiB0aGUgMCUga2V5ZnJhbWUgaXMgbWlzc2luZywgY3JlYXRlIGl0
IChidXQgb25seSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgb3RoZXIga2V5ZnJhbWUpLgorICAg
IGF1dG8gaW5pdGlhbFNpemUgPSBzaXplKCk7CisgICAgaWYgKGluaXRpYWxTaXplID4gMCAmJiBt
X2tleWZyYW1lc1swXS5rZXkoKSkgeworICAgICAgICBzdGF0aWMgU3R5bGVSdWxlS2V5ZnJhbWUq
IHplcm9QZXJjZW50S2V5ZnJhbWU7CisgICAgICAgIGlmICghemVyb1BlcmNlbnRLZXlmcmFtZSkg
eworICAgICAgICAgICAgemVyb1BlcmNlbnRLZXlmcmFtZSA9ICZTdHlsZVJ1bGVLZXlmcmFtZTo6
Y3JlYXRlKE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpKS5sZWFrUmVmKCk7CisgICAg
ICAgICAgICB6ZXJvUGVyY2VudEtleWZyYW1lLT5zZXRLZXkoMCk7CisgICAgICAgIH0KKyAgICAg
ICAgS2V5ZnJhbWVWYWx1ZSBrZXlmcmFtZVZhbHVlKDAsIG51bGxwdHIpOworICAgICAgICBrZXlm
cmFtZVZhbHVlLnNldFN0eWxlKHN0eWxlUmVzb2x2ZXIuc3R5bGVGb3JLZXlmcmFtZShlbGVtZW50
LCBlbGVtZW50U3R5bGUsIHplcm9QZXJjZW50S2V5ZnJhbWUsIGtleWZyYW1lVmFsdWUpKTsKKyAg
ICAgICAgaW5zZXJ0KFdURk1vdmUoa2V5ZnJhbWVWYWx1ZSkpOworICAgIH0KKworICAgIC8vIElm
IHRoZSAxMDAlIGtleWZyYW1lIGlzIG1pc3NpbmcsIGNyZWF0ZSBpdCAoYnV0IG9ubHkgaWYgdGhl
cmUgaXMgYXQgbGVhc3Qgb25lIG90aGVyIGtleWZyYW1lKS4KKyAgICBpZiAoaW5pdGlhbFNpemUg
PiAwICYmIChtX2tleWZyYW1lc1tzaXplKCkgLSAxXS5rZXkoKSAhPSAxKSkgeworICAgICAgICBz
dGF0aWMgU3R5bGVSdWxlS2V5ZnJhbWUqIGh1bmRyZWRQZXJjZW50S2V5ZnJhbWU7CisgICAgICAg
IGlmICghaHVuZHJlZFBlcmNlbnRLZXlmcmFtZSkgeworICAgICAgICAgICAgaHVuZHJlZFBlcmNl
bnRLZXlmcmFtZSA9ICZTdHlsZVJ1bGVLZXlmcmFtZTo6Y3JlYXRlKE11dGFibGVTdHlsZVByb3Bl
cnRpZXM6OmNyZWF0ZSgpKS5sZWFrUmVmKCk7CisgICAgICAgICAgICBodW5kcmVkUGVyY2VudEtl
eWZyYW1lLT5zZXRLZXkoMSk7CisgICAgICAgIH0KKyAgICAgICAgS2V5ZnJhbWVWYWx1ZSBrZXlm
cmFtZVZhbHVlKDEsIG51bGxwdHIpOworICAgICAgICBrZXlmcmFtZVZhbHVlLnNldFN0eWxlKHN0
eWxlUmVzb2x2ZXIuc3R5bGVGb3JLZXlmcmFtZShlbGVtZW50LCBlbGVtZW50U3R5bGUsIGh1bmRy
ZWRQZXJjZW50S2V5ZnJhbWUsIGtleWZyYW1lVmFsdWUpKTsKKyAgICAgICAgaW5zZXJ0KFdURk1v
dmUoa2V5ZnJhbWVWYWx1ZSkpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oCmluZGV4IGM5
MzJjZDU2YWQxYWJhYmMyZDZjMWI5OGQ0MDg3MzZjZmUxZGU5YzIuLmE5Y2FhNDNmMjFkM2Q5MTQ4
NTVhZTRlYzFjZjM3ZmE5NzkyYTgyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvS2V5ZnJhbWVMaXN0LmgKQEAgLTM0LDYgKzM0LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgVGltaW5nRnVuY3Rpb247CiAKK25hbWVzcGFj
ZSBTdHlsZSB7CitjbGFzcyBSZXNvbHZlcjsKK30KKwogY2xhc3MgS2V5ZnJhbWVWYWx1ZSB7CiBw
dWJsaWM6CiAgICAgS2V5ZnJhbWVWYWx1ZShkb3VibGUga2V5LCBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+IHN0eWxlKQpAQCAtNTQsNyArNTgsNyBAQCBwdWJsaWM6CiAKICAgICBUaW1pbmdG
dW5jdGlvbiogdGltaW5nRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0aW9u
LmdldCgpOyB9CiAgICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBSZWZQdHI8VGltaW5n
RnVuY3Rpb24+JiB0aW1pbmdGdW5jdGlvbikgeyBtX3RpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVu
Y3Rpb247IH0KLSAgICAKKwogcHJpdmF0ZToKICAgICBkb3VibGUgbV9rZXk7CiAgICAgSGFzaFNl
dDxDU1NQcm9wZXJ0eUlEPiBtX3Byb3BlcnRpZXM7IC8vIFRoZSBwcm9wZXJ0aWVzIHNwZWNpZmll
ZCBpbiB0aGlzIGtleWZyYW1lLgpAQCAtODgsNiArOTIsMTAgQEAgcHVibGljOgogICAgIGNvbnN0
IEtleWZyYW1lVmFsdWUmIG9wZXJhdG9yW10oc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBt
X2tleWZyYW1lc1tpbmRleF07IH0KICAgICBjb25zdCBWZWN0b3I8S2V5ZnJhbWVWYWx1ZT4mIGtl
eWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fa2V5ZnJhbWVzOyB9CiAKKyAgICB2b2lkIGNvcHlL
ZXlmcmFtZXMoS2V5ZnJhbWVMaXN0Jik7CisgICAgYm9vbCBoYXNJbXBsaWNpdEtleWZyYW1lcygp
IGNvbnN0OworICAgIHZvaWQgZmlsbEltcGxpY2l0S2V5ZnJhbWVzKGNvbnN0IEVsZW1lbnQmLCBT
dHlsZTo6UmVzb2x2ZXImLCBjb25zdCBSZW5kZXJTdHlsZSopOworCiBwcml2YXRlOgogICAgIEF0
b21TdHJpbmcgbV9hbmltYXRpb25OYW1lOwogICAgIFZlY3RvcjxLZXlmcmFtZVZhbHVlPiBtX2tl
eWZyYW1lczsgLy8gS2VwdCBzb3J0ZWQgYnkga2V5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJl
c29sdmVyLmNwcAppbmRleCA5MzMzYjgzOTEzYTQzY2E1MWQ2ODYxNmFiZjFiMjUwZjY3NDNiMmMz
Li4wNjg1YmVlYzZkNzU0YmI1ODcyNWEzMGYzODVhZjM4OTc0NjFmZjlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcApAQCAtMzU5LDMwICszNTksNyBAQCB2b2lkIFJlc29s
dmVyOjprZXlmcmFtZVN0eWxlc0ZvckFuaW1hdGlvbihjb25zdCBFbGVtZW50JiBlbGVtZW50LCBj
b25zdCBSZW5kZXJTdAogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gSWYgdGhlIDAlIGtleWZy
YW1lIGlzIG1pc3NpbmcsIGNyZWF0ZSBpdCAoYnV0IG9ubHkgaWYgdGhlcmUgaXMgYXQgbGVhc3Qg
b25lIG90aGVyIGtleWZyYW1lKS4KLSAgICBpbnQgaW5pdGlhbExpc3RTaXplID0gbGlzdC5zaXpl
KCk7Ci0gICAgaWYgKGluaXRpYWxMaXN0U2l6ZSA+IDAgJiYgbGlzdFswXS5rZXkoKSkgewotICAg
ICAgICBzdGF0aWMgU3R5bGVSdWxlS2V5ZnJhbWUqIHplcm9QZXJjZW50S2V5ZnJhbWU7Ci0gICAg
ICAgIGlmICghemVyb1BlcmNlbnRLZXlmcmFtZSkgewotICAgICAgICAgICAgemVyb1BlcmNlbnRL
ZXlmcmFtZSA9ICZTdHlsZVJ1bGVLZXlmcmFtZTo6Y3JlYXRlKE11dGFibGVTdHlsZVByb3BlcnRp
ZXM6OmNyZWF0ZSgpKS5sZWFrUmVmKCk7Ci0gICAgICAgICAgICB6ZXJvUGVyY2VudEtleWZyYW1l
LT5zZXRLZXkoMCk7Ci0gICAgICAgIH0KLSAgICAgICAgS2V5ZnJhbWVWYWx1ZSBrZXlmcmFtZVZh
bHVlKDAsIG51bGxwdHIpOwotICAgICAgICBrZXlmcmFtZVZhbHVlLnNldFN0eWxlKHN0eWxlRm9y
S2V5ZnJhbWUoZWxlbWVudCwgZWxlbWVudFN0eWxlLCB6ZXJvUGVyY2VudEtleWZyYW1lLCBrZXlm
cmFtZVZhbHVlKSk7Ci0gICAgICAgIGxpc3QuaW5zZXJ0KFdURk1vdmUoa2V5ZnJhbWVWYWx1ZSkp
OwotICAgIH0KLQotICAgIC8vIElmIHRoZSAxMDAlIGtleWZyYW1lIGlzIG1pc3NpbmcsIGNyZWF0
ZSBpdCAoYnV0IG9ubHkgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG90aGVyIGtleWZyYW1lKS4K
LSAgICBpZiAoaW5pdGlhbExpc3RTaXplID4gMCAmJiAobGlzdFtsaXN0LnNpemUoKSAtIDFdLmtl
eSgpICE9IDEpKSB7Ci0gICAgICAgIHN0YXRpYyBTdHlsZVJ1bGVLZXlmcmFtZSogaHVuZHJlZFBl
cmNlbnRLZXlmcmFtZTsKLSAgICAgICAgaWYgKCFodW5kcmVkUGVyY2VudEtleWZyYW1lKSB7Ci0g
ICAgICAgICAgICBodW5kcmVkUGVyY2VudEtleWZyYW1lID0gJlN0eWxlUnVsZUtleWZyYW1lOjpj
cmVhdGUoTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCkpLmxlYWtSZWYoKTsKLSAgICAg
ICAgICAgIGh1bmRyZWRQZXJjZW50S2V5ZnJhbWUtPnNldEtleSgxKTsKLSAgICAgICAgfQotICAg
ICAgICBLZXlmcmFtZVZhbHVlIGtleWZyYW1lVmFsdWUoMSwgbnVsbHB0cik7Ci0gICAgICAgIGtl
eWZyYW1lVmFsdWUuc2V0U3R5bGUoc3R5bGVGb3JLZXlmcmFtZShlbGVtZW50LCBlbGVtZW50U3R5
bGUsIGh1bmRyZWRQZXJjZW50S2V5ZnJhbWUsIGtleWZyYW1lVmFsdWUpKTsKLSAgICAgICAgbGlz
dC5pbnNlcnQoV1RGTW92ZShrZXlmcmFtZVZhbHVlKSk7Ci0gICAgfQorICAgIGxpc3QuZmlsbElt
cGxpY2l0S2V5ZnJhbWVzKGVsZW1lbnQsICp0aGlzLCBlbGVtZW50U3R5bGUpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFJlc29sdmVyOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQo
Y29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUHNldWRvRWxlbWVudFJlcXVlc3QmIHBzZXVk
b0VsZW1lbnRSZXF1ZXN0LCBjb25zdCBSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUsIGNvbnN0IFJl
bmRlclN0eWxlKiBwYXJlbnRCb3hTdHlsZSwgY29uc3QgU2VsZWN0b3JGaWx0ZXIqIHNlbGVjdG9y
RmlsdGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGJiZDBlZGE3N2YwMzVjY2I1NWRmNGM0NGM3NTllZDVhZGQzYmI5Y2Mu
Ljk2YmRlN2VhNTY2MGVjNzgwMTE0YTFlMDRmZDYwMThiNmVjYzZiNDMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAyMC0wNS0xNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgor
CisgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gQW5pbWF0aW9uIHdpdGggYSBzaW5nbGUga2V5ZnJh
bWUgaXMgbm90IGFjY2VsZXJhdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQzNDgxMTEzPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5l
dyB0ZXN0IHRoYXQgcnVucyBhIHNpbmdsZS1rZXlmcmFtZSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGFu
ZCBjaGVja3MgdGhhdCBpdCBydW5zIGFjY2VsZXJhdGVkLgorCisgICAgICAgICogd2ViYW5pbWF0
aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZyYW1lLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tc2lu
Z2xlLWtleWZyYW1lLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA1LTE0ICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgQ3Vyc29yIHNob3VsZCBub3QgdXBkYXRlIG9u
IGEgMjBtcyB0aW1lcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9hY2Nl
bGVyYXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQtYW5pbWF0aW9uLXNpbmdsZS1rZXlmcmFtZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY5OGI2YzQ2MDI1OTljOTA0M2I5MzU3OGMzN2U0ZWM2
ZjQyMGVmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvYWNj
ZWxlcmF0ZWQtYW5pbWF0aW9uLXNpbmdsZS1rZXlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgQSB0cmFuc2Zvcm0gYW5pbWF0aW9uIHdpdGggYSBzaW5nbGUga2V5ZnJh
bWUgc2hvdWxkIGJlIGFibGUgdG8gcnVuIGFjY2VsZXJhdGVkLiAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVkLWFuaW1hdGlv
bi1zaW5nbGUta2V5ZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2Y1M2E5OWYwZDYzMWY2MWRkYzQz
MWY3YzA0NWUzZGJkOTM1MWEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5p
bWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZyYW1lLmh0bWwKQEAgLTAs
MCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisKKyAgICAjdGFyZ2V0
IHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwOworICAgICAg
ICB0b3A6IDA7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CisgICAgfQorCis8L3N0eWxlPgorPGRp
diBpZD0idGFyZ2V0Ij48L2Rpdj4KKzxzY3JpcHQ+CisKK2FzeW5jX3Rlc3QoYXN5bmMgdCA9PiB7
CisgICAgLy8gU3RhcnQgYW4gYW5pbWF0aW9uIHdpdGggYW4gaW1wbGljaXQgZnJvbSBrZXlmcmFt
ZS4KKyAgICBjb25zdCBhbmltYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IikuYW5pbWF0ZSh7IHRyYW5zZm9ybTogInRyYW5zbGF0ZVgoNjAwcHgpIiB9LCB7IGR1cmF0aW9u
OiAxMDAwICogMTAwMCB9KTsKKworICAgIC8vIFdhaXQgdHdvIGZyYW1lcyBmb3IgdGhlIGFjY2Vs
ZXJhdGVkIGFuaW1hdGlvbiB0byBiZSBjb21taXR0ZWQuCisgICAgYXdhaXQgYW5pbWF0aW9uLnJl
YWR5OworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7CisgICAg
YXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKKworICAgIGFzc2VydF9l
cXVhbHMoaW50ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQodGFyZ2V0KS5s
ZW5ndGgsIDEsICJUaGVyZSBzaG91bGQgYmUgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uLiIpOwor
ICAgIHQuZG9uZSgpOworfSwgIkEgdHJhbnNmb3JtIGFuaW1hdGlvbiB3aXRoIGEgc2luZ2xlIGtl
eWZyYW1lIHNob3VsZCBiZSBhYmxlIHRvIHJ1biBhY2NlbGVyYXRlZC4iKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399501</attachid>
            <date>2020-05-15 12:14:23 -0700</date>
            <delta_ts>2020-05-15 13:06:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188730-20200515211421.patch</filename>
            <type>text/plain</type>
            <size>13909</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE5NzlkN2Y3MTJlMzQy
YWY2OTdmMzI4MmY1MzI1MDcwZDM0MTdiNy4uYTAzZGM5YmQ5ZmZmYWZiNDhjYTVhYTYwNGE4MTMy
N2EyNmM4ZGRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA1LTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25z
XSBBbmltYXRpb24gd2l0aCBhIHNpbmdsZSBrZXlmcmFtZSBpcyBub3QgYWNjZWxlcmF0ZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODczMAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDM0ODExMTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1h
bmltYXRpb24tc2luZ2xlLWtleWZyYW1lLmh0bWwKKworICAgICAgICBQcmlvciB0byBhdHRlbXB0
aW5nIHRvIHJ1biBhbiBhY2NlbGVyYXRlZCBlZmZlY3QsIGVuc3VyZSB0aGF0IHRoZSBLZXlmcmFt
ZUxpc3QgcGFzc2VkIHRvCisgICAgICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnN0YXJ0QW5p
bWF0aW9uKCkgZG9lcyBub3QgaGF2ZSBpbXBsaWNpdCBrZXlmcmFtZXMgc2luY2UgZXZlbnR1YWxs
eQorICAgICAgICBHcmFwaGljc0xheWVyQ0E6OmFuaW1hdGlvbkNhbkJlQWNjZWxlcmF0ZWQoKSB3
b3VsZCBiZSBjYWxsZWQgYW5kIHdvdWxkIHJlamVjdCBhIHNpbmdsZS1rZXlmcmFtZQorICAgICAg
ICBhbmltYXRpb24uIFRvIGRvIHRoaXMsIHdlIHVzZSB0aGUgc2FtZSBjb2RlIHVzZWQgaW4gU3R5
bGU6OlJlc29sdmVyOjprZXlmcmFtZVN0eWxlc0ZvckFuaW1hdGlvbigpCisgICAgICAgIHdoaWNo
IHdlIHJlZmFjdG9yIGluIHRoZSBuZXcgS2V5ZnJhbWVMaXN0OjpmaWxsSW1wbGljaXRLZXlmcmFt
ZXMoKSBtZXRob2QuCisKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmNvcHlQcm9wZXJ0aWVzRnJvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6YXBwbHlQZW5kaW5nQWNjZWxl
cmF0ZWRBY3Rpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lTGlzdDo6aGFzSW1wbGljaXRLZXlmcmFtZXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVMaXN0Ojpjb3B5S2V5ZnJhbWVzKToK
KyAgICAgICAgKFdlYkNvcmU6Onplcm9QZXJjZW50S2V5ZnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6aHVuZHJlZFBlcmNlbnRLZXlmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUxp
c3Q6OmZpbGxJbXBsaWNpdEtleWZyYW1lcyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0tl
eWZyYW1lTGlzdC5oOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjprZXlmcmFtZVN0eWxlc0ZvckFuaW1hdGlvbik6
CisKIDIwMjAtMDUtMTQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDdXJzb3Igc2hvdWxkIG5vdCB1cGRhdGUgb24gYSAyMG1zIHRpbWVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCA2OWUyMzRhYTAwMWM1NDRl
YTdlYjZmZGRiODkxOGVjZTA2ZTVkMzJlLi4xMTBlYjFlNGNjMjM5NjIyOGZkMTFmYmI2ODg3YzJh
ZGFiNmY2YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5j
cHAKQEAgLTU2NSwxMiArNTY1LDcgQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6Y29weVByb3BlcnRp
ZXNGcm9tU291cmNlKFJlZjxLZXlmcmFtZUVmZmVjdD4mJiBzb3VyY2UpCiAgICAgdXBkYXRlU3Rh
dGljVGltaW5nUHJvcGVydGllcygpOwogCiAgICAgS2V5ZnJhbWVMaXN0IGtleWZyYW1lTGlzdCgi
a2V5ZnJhbWUtZWZmZWN0LSIgKyBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpOwotICAgIGZv
ciAoYXV0byYga2V5ZnJhbWUgOiBzb3VyY2UtPm1fYmxlbmRpbmdLZXlmcmFtZXMua2V5ZnJhbWVz
KCkpIHsKLSAgICAgICAgS2V5ZnJhbWVWYWx1ZSBrZXlmcmFtZVZhbHVlKGtleWZyYW1lLmtleSgp
LCBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKmtleWZyYW1lLnN0eWxlKCkpKTsKLSAgICAgICAgZm9y
IChhdXRvIHByb3BlcnR5SWQgOiBrZXlmcmFtZS5wcm9wZXJ0aWVzKCkpCi0gICAgICAgICAgICBr
ZXlmcmFtZVZhbHVlLmFkZFByb3BlcnR5KHByb3BlcnR5SWQpOwotICAgICAgICBrZXlmcmFtZUxp
c3QuaW5zZXJ0KFdURk1vdmUoa2V5ZnJhbWVWYWx1ZSkpOwotICAgIH0KKyAgICBrZXlmcmFtZUxp
c3QuY29weUtleWZyYW1lcyhzb3VyY2UtPm1fYmxlbmRpbmdLZXlmcmFtZXMpOwogICAgIHNldEJs
ZW5kaW5nS2V5ZnJhbWVzKGtleWZyYW1lTGlzdCk7CiB9CiAKQEAgLTE1NzgsMTEgKzE1NzMsMjQg
QEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCkK
ICAgICAvLyBUbyBzaW1wbGlmeSB0aGUgY29kZSB3ZSB1c2UgYSBkZWZhdWx0IG9mIDBzIGZvciBh
biB1bnJlc29sdmVkIGN1cnJlbnQgdGltZSBzaW5jZSBmb3IgYSBTdG9wIGFjdGlvbiB0aGF0IGlz
IGFjY2VwdGFibGUuCiAgICAgYXV0byB0aW1lT2Zmc2V0ID0gYW5pbWF0aW9uKCktPmN1cnJlbnRU
aW1lKCkudmFsdWVPcigwX3MpLnNlY29uZHMoKSAtIGRlbGF5KCkuc2Vjb25kcygpOwogCisgICAg
YXV0byBzdGFydEFuaW1hdGlvbiA9IFsmXSgpIC0+IGJvb2wgeworICAgICAgICByZW5kZXJlci0+
YW5pbWF0aW9uRmluaXNoZWQobV9ibGVuZGluZ0tleWZyYW1lcy5hbmltYXRpb25OYW1lKCkpOwor
CisgICAgICAgIGlmICghbV9ibGVuZGluZ0tleWZyYW1lcy5oYXNJbXBsaWNpdEtleWZyYW1lcygp
KQorICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyLT5zdGFydEFuaW1hdGlvbih0aW1lT2Zmc2V0
LCBiYWNraW5nQW5pbWF0aW9uRm9yQ29tcG9zaXRlZFJlbmRlcmVyKCksIG1fYmxlbmRpbmdLZXlm
cmFtZXMpOworCisgICAgICAgIEFTU0VSVChtX3VuYW5pbWF0ZWRTdHlsZSk7CisgICAgICAgIEFT
U0VSVChtX3RhcmdldCk7CisgICAgICAgIEtleWZyYW1lTGlzdCBleHBsaWNpdEtleWZyYW1lcyht
X2JsZW5kaW5nS2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7CisgICAgICAgIGV4cGxpY2l0S2V5
ZnJhbWVzLmNvcHlLZXlmcmFtZXMobV9ibGVuZGluZ0tleWZyYW1lcyk7CisgICAgICAgIGV4cGxp
Y2l0S2V5ZnJhbWVzLmZpbGxJbXBsaWNpdEtleWZyYW1lcygqbV90YXJnZXQsIG1fdGFyZ2V0LT5z
dHlsZVJlc29sdmVyKCksIG1fdW5hbmltYXRlZFN0eWxlLmdldCgpKTsKKyAgICAgICAgcmV0dXJu
IHJlbmRlcmVyLT5zdGFydEFuaW1hdGlvbih0aW1lT2Zmc2V0LCBiYWNraW5nQW5pbWF0aW9uRm9y
Q29tcG9zaXRlZFJlbmRlcmVyKCksIGV4cGxpY2l0S2V5ZnJhbWVzKTsKKyAgICB9OworCiAgICAg
Zm9yIChjb25zdCBhdXRvJiBhY3Rpb24gOiBwZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKSB7CiAg
ICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAgICAgICAgIGNhc2UgQWNjZWxlcmF0ZWRBY3Rpb246
OlBsYXk6Ci0gICAgICAgICAgICByZW5kZXJlci0+YW5pbWF0aW9uRmluaXNoZWQobV9ibGVuZGlu
Z0tleWZyYW1lcy5hbmltYXRpb25OYW1lKCkpOwotICAgICAgICAgICAgbV9pc1J1bm5pbmdBY2Nl
bGVyYXRlZCA9IHJlbmRlcmVyLT5zdGFydEFuaW1hdGlvbih0aW1lT2Zmc2V0LCBiYWNraW5nQW5p
bWF0aW9uRm9yQ29tcG9zaXRlZFJlbmRlcmVyKCksIG1fYmxlbmRpbmdLZXlmcmFtZXMpOworICAg
ICAgICAgICAgbV9pc1J1bm5pbmdBY2NlbGVyYXRlZCA9IHN0YXJ0QW5pbWF0aW9uKCk7CiAgICAg
ICAgICAgICBpZiAoIW1faXNSdW5uaW5nQWNjZWxlcmF0ZWQpIHsKICAgICAgICAgICAgICAgICBt
X2xhc3RSZWNvcmRlZEFjY2VsZXJhdGVkQWN0aW9uID0gQWNjZWxlcmF0ZWRBY3Rpb246OlN0b3A7
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTU5Miw4ICsxNjAwLDcgQEAgdm9pZCBLZXlm
cmFtZUVmZmVjdDo6YXBwbHlQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb25zKCkKICAgICAgICAgICAg
IHJlbmRlcmVyLT5hbmltYXRpb25QYXVzZWQodGltZU9mZnNldCwgbV9ibGVuZGluZ0tleWZyYW1l
cy5hbmltYXRpb25OYW1lKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQWNj
ZWxlcmF0ZWRBY3Rpb246OlVwZGF0ZVRpbWluZzoKLSAgICAgICAgICAgIHJlbmRlcmVyLT5hbmlt
YXRpb25GaW5pc2hlZChtX2JsZW5kaW5nS2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7Ci0gICAg
ICAgICAgICByZW5kZXJlci0+c3RhcnRBbmltYXRpb24odGltZU9mZnNldCwgYmFja2luZ0FuaW1h
dGlvbkZvckNvbXBvc2l0ZWRSZW5kZXJlcigpLCBtX2JsZW5kaW5nS2V5ZnJhbWVzKTsKKyAgICAg
ICAgICAgIHN0YXJ0QW5pbWF0aW9uKCk7CiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uKCktPnBs
YXlTdGF0ZSgpID09IFdlYkFuaW1hdGlvbjo6UGxheVN0YXRlOjpQYXVzZWQpCiAgICAgICAgICAg
ICAgICAgcmVuZGVyZXItPmFuaW1hdGlvblBhdXNlZCh0aW1lT2Zmc2V0LCBtX2JsZW5kaW5nS2V5
ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAKaW5kZXggNTlkMGQ3Nzkz
YThlYTUwZmJiMWMwOGJkMDNhOTQ3NDU2Y2NkY2YxZi4uNDJkMTg3ZDA3M2FlYTM2YzU3ZDZmYjI0
OWY0YzM3ZGM2OGExMGU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0tleWZyYW1lTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0tleWZyYW1lTGlzdC5jcHAKQEAgLTIzLDcgKzIzLDkgQEAKICNpbmNsdWRlICJLZXlmcmFtZUxp
c3QuaCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIkNTU0tleWZyYW1lUnVs
ZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03NCw0ICs3Niw1OSBAQCB2b2lkIEtleWZy
YW1lTGlzdDo6aW5zZXJ0KEtleWZyYW1lVmFsdWUmJiBrZXlmcmFtZSkKICAgICAgICAgbV9wcm9w
ZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CiB9CiAKK2Jvb2wgS2V5ZnJhbWVMaXN0OjpoYXNJbXBsaWNp
dEtleWZyYW1lcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNpemUoKSAmJiAobV9rZXlmcmFtZXNb
MF0ua2V5KCkgfHwgbV9rZXlmcmFtZXNbc2l6ZSgpIC0gMV0ua2V5KCkgIT0gMSk7Cit9CisKK3Zv
aWQgS2V5ZnJhbWVMaXN0Ojpjb3B5S2V5ZnJhbWVzKEtleWZyYW1lTGlzdCYgb3RoZXIpCit7Cisg
ICAgZm9yIChhdXRvJiBrZXlmcmFtZSA6IG90aGVyLmtleWZyYW1lcygpKSB7CisgICAgICAgIEtl
eWZyYW1lVmFsdWUga2V5ZnJhbWVWYWx1ZShrZXlmcmFtZS5rZXkoKSwgUmVuZGVyU3R5bGU6OmNs
b25lUHRyKCprZXlmcmFtZS5zdHlsZSgpKSk7CisgICAgICAgIGZvciAoYXV0byBwcm9wZXJ0eUlk
IDoga2V5ZnJhbWUucHJvcGVydGllcygpKQorICAgICAgICAgICAga2V5ZnJhbWVWYWx1ZS5hZGRQ
cm9wZXJ0eShwcm9wZXJ0eUlkKTsKKyAgICAgICAgaW5zZXJ0KFdURk1vdmUoa2V5ZnJhbWVWYWx1
ZSkpOworICAgIH0KK30KKworc3RhdGljIGNvbnN0IFN0eWxlUnVsZUtleWZyYW1lJiB6ZXJvUGVy
Y2VudEtleWZyYW1lKCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFJlZjxTdHls
ZVJ1bGVLZXlmcmFtZT4+IHJ1bGU7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFn
OworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAgIHJ1bGUuY29uc3Ry
dWN0KFN0eWxlUnVsZUtleWZyYW1lOjpjcmVhdGUoTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3Jl
YXRlKCkpKTsKKyAgICAgICAgcnVsZS5nZXQoKS0+c2V0S2V5KDApOworICAgIH0pOworICAgIHJl
dHVybiBydWxlLmdldCgpLmdldCgpOworfQorCitzdGF0aWMgY29uc3QgU3R5bGVSdWxlS2V5ZnJh
bWUmIGh1bmRyZWRQZXJjZW50S2V5ZnJhbWUoKQoreworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0
cm95ZWQ8UmVmPFN0eWxlUnVsZUtleWZyYW1lPj4gcnVsZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAg
ICAgcnVsZS5jb25zdHJ1Y3QoU3R5bGVSdWxlS2V5ZnJhbWU6OmNyZWF0ZShNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzOjpjcmVhdGUoKSkpOworICAgICAgICBydWxlLmdldCgpLT5zZXRLZXkoMSk7Cisg
ICAgfSk7CisgICAgcmV0dXJuIHJ1bGUuZ2V0KCkuZ2V0KCk7Cit9CisKK3ZvaWQgS2V5ZnJhbWVM
aXN0OjpmaWxsSW1wbGljaXRLZXlmcmFtZXMoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgU3R5bGU6
OlJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBjb25zdCBSZW5kZXJTdHlsZSogZWxlbWVudFN0eWxl
KQoreworICAgIC8vIElmIHRoZSAwJSBrZXlmcmFtZSBpcyBtaXNzaW5nLCBjcmVhdGUgaXQgKGJ1
dCBvbmx5IGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBvdGhlciBrZXlmcmFtZSkuCisgICAgYXV0
byBpbml0aWFsU2l6ZSA9IHNpemUoKTsKKyAgICBpZiAoaW5pdGlhbFNpemUgPiAwICYmIG1fa2V5
ZnJhbWVzWzBdLmtleSgpKSB7CisgICAgICAgIEtleWZyYW1lVmFsdWUga2V5ZnJhbWVWYWx1ZSgw
LCBudWxscHRyKTsKKyAgICAgICAga2V5ZnJhbWVWYWx1ZS5zZXRTdHlsZShzdHlsZVJlc29sdmVy
LnN0eWxlRm9yS2V5ZnJhbWUoZWxlbWVudCwgZWxlbWVudFN0eWxlLCAmemVyb1BlcmNlbnRLZXlm
cmFtZSgpLCBrZXlmcmFtZVZhbHVlKSk7CisgICAgICAgIGluc2VydChXVEZNb3ZlKGtleWZyYW1l
VmFsdWUpKTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGUgMTAwJSBrZXlmcmFtZSBpcyBtaXNzaW5n
LCBjcmVhdGUgaXQgKGJ1dCBvbmx5IGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBvdGhlciBrZXlm
cmFtZSkuCisgICAgaWYgKGluaXRpYWxTaXplID4gMCAmJiAobV9rZXlmcmFtZXNbc2l6ZSgpIC0g
MV0ua2V5KCkgIT0gMSkpIHsKKyAgICAgICAgS2V5ZnJhbWVWYWx1ZSBrZXlmcmFtZVZhbHVlKDEs
IG51bGxwdHIpOworICAgICAgICBrZXlmcmFtZVZhbHVlLnNldFN0eWxlKHN0eWxlUmVzb2x2ZXIu
c3R5bGVGb3JLZXlmcmFtZShlbGVtZW50LCBlbGVtZW50U3R5bGUsICZodW5kcmVkUGVyY2VudEtl
eWZyYW1lKCksIGtleWZyYW1lVmFsdWUpKTsKKyAgICAgICAgaW5zZXJ0KFdURk1vdmUoa2V5ZnJh
bWVWYWx1ZSkpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oCmluZGV4IGM5MzJjZDU2YWQx
YWJhYmMyZDZjMWI5OGQ0MDg3MzZjZmUxZGU5YzIuLmE5Y2FhNDNmMjFkM2Q5MTQ4NTVhZTRlYzFj
ZjM3ZmE5NzkyYTgyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9LZXlmcmFtZUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvS2V5
ZnJhbWVMaXN0LmgKQEAgLTM0LDYgKzM0LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IFJlbmRlclN0eWxlOwogY2xhc3MgVGltaW5nRnVuY3Rpb247CiAKK25hbWVzcGFjZSBTdHlsZSB7
CitjbGFzcyBSZXNvbHZlcjsKK30KKwogY2xhc3MgS2V5ZnJhbWVWYWx1ZSB7CiBwdWJsaWM6CiAg
ICAgS2V5ZnJhbWVWYWx1ZShkb3VibGUga2V5LCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+
IHN0eWxlKQpAQCAtNTQsNyArNTgsNyBAQCBwdWJsaWM6CiAKICAgICBUaW1pbmdGdW5jdGlvbiog
dGltaW5nRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0aW9uLmdldCgpOyB9
CiAgICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBSZWZQdHI8VGltaW5nRnVuY3Rpb24+
JiB0aW1pbmdGdW5jdGlvbikgeyBtX3RpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb247IH0K
LSAgICAKKwogcHJpdmF0ZToKICAgICBkb3VibGUgbV9rZXk7CiAgICAgSGFzaFNldDxDU1NQcm9w
ZXJ0eUlEPiBtX3Byb3BlcnRpZXM7IC8vIFRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCBpbiB0aGlz
IGtleWZyYW1lLgpAQCAtODgsNiArOTIsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IEtleWZyYW1l
VmFsdWUmIG9wZXJhdG9yW10oc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBtX2tleWZyYW1l
c1tpbmRleF07IH0KICAgICBjb25zdCBWZWN0b3I8S2V5ZnJhbWVWYWx1ZT4mIGtleWZyYW1lcygp
IGNvbnN0IHsgcmV0dXJuIG1fa2V5ZnJhbWVzOyB9CiAKKyAgICB2b2lkIGNvcHlLZXlmcmFtZXMo
S2V5ZnJhbWVMaXN0Jik7CisgICAgYm9vbCBoYXNJbXBsaWNpdEtleWZyYW1lcygpIGNvbnN0Owor
ICAgIHZvaWQgZmlsbEltcGxpY2l0S2V5ZnJhbWVzKGNvbnN0IEVsZW1lbnQmLCBTdHlsZTo6UmVz
b2x2ZXImLCBjb25zdCBSZW5kZXJTdHlsZSopOworCiBwcml2YXRlOgogICAgIEF0b21TdHJpbmcg
bV9hbmltYXRpb25OYW1lOwogICAgIFZlY3RvcjxLZXlmcmFtZVZhbHVlPiBtX2tleWZyYW1lczsg
Ly8gS2VwdCBzb3J0ZWQgYnkga2V5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNw
cAppbmRleCA5MzMzYjgzOTEzYTQzY2E1MWQ2ODYxNmFiZjFiMjUwZjY3NDNiMmMzLi4wNjg1YmVl
YzZkNzU0YmI1ODcyNWEzMGYzODVhZjM4OTc0NjFmZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVyLmNwcApAQCAtMzU5LDMwICszNTksNyBAQCB2b2lkIFJlc29sdmVyOjprZXlm
cmFtZVN0eWxlc0ZvckFuaW1hdGlvbihjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5k
ZXJTdAogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gSWYgdGhlIDAlIGtleWZyYW1lIGlzIG1p
c3NpbmcsIGNyZWF0ZSBpdCAoYnV0IG9ubHkgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG90aGVy
IGtleWZyYW1lKS4KLSAgICBpbnQgaW5pdGlhbExpc3RTaXplID0gbGlzdC5zaXplKCk7Ci0gICAg
aWYgKGluaXRpYWxMaXN0U2l6ZSA+IDAgJiYgbGlzdFswXS5rZXkoKSkgewotICAgICAgICBzdGF0
aWMgU3R5bGVSdWxlS2V5ZnJhbWUqIHplcm9QZXJjZW50S2V5ZnJhbWU7Ci0gICAgICAgIGlmICgh
emVyb1BlcmNlbnRLZXlmcmFtZSkgewotICAgICAgICAgICAgemVyb1BlcmNlbnRLZXlmcmFtZSA9
ICZTdHlsZVJ1bGVLZXlmcmFtZTo6Y3JlYXRlKE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0
ZSgpKS5sZWFrUmVmKCk7Ci0gICAgICAgICAgICB6ZXJvUGVyY2VudEtleWZyYW1lLT5zZXRLZXko
MCk7Ci0gICAgICAgIH0KLSAgICAgICAgS2V5ZnJhbWVWYWx1ZSBrZXlmcmFtZVZhbHVlKDAsIG51
bGxwdHIpOwotICAgICAgICBrZXlmcmFtZVZhbHVlLnNldFN0eWxlKHN0eWxlRm9yS2V5ZnJhbWUo
ZWxlbWVudCwgZWxlbWVudFN0eWxlLCB6ZXJvUGVyY2VudEtleWZyYW1lLCBrZXlmcmFtZVZhbHVl
KSk7Ci0gICAgICAgIGxpc3QuaW5zZXJ0KFdURk1vdmUoa2V5ZnJhbWVWYWx1ZSkpOwotICAgIH0K
LQotICAgIC8vIElmIHRoZSAxMDAlIGtleWZyYW1lIGlzIG1pc3NpbmcsIGNyZWF0ZSBpdCAoYnV0
IG9ubHkgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG90aGVyIGtleWZyYW1lKS4KLSAgICBpZiAo
aW5pdGlhbExpc3RTaXplID4gMCAmJiAobGlzdFtsaXN0LnNpemUoKSAtIDFdLmtleSgpICE9IDEp
KSB7Ci0gICAgICAgIHN0YXRpYyBTdHlsZVJ1bGVLZXlmcmFtZSogaHVuZHJlZFBlcmNlbnRLZXlm
cmFtZTsKLSAgICAgICAgaWYgKCFodW5kcmVkUGVyY2VudEtleWZyYW1lKSB7Ci0gICAgICAgICAg
ICBodW5kcmVkUGVyY2VudEtleWZyYW1lID0gJlN0eWxlUnVsZUtleWZyYW1lOjpjcmVhdGUoTXV0
YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCkpLmxlYWtSZWYoKTsKLSAgICAgICAgICAgIGh1
bmRyZWRQZXJjZW50S2V5ZnJhbWUtPnNldEtleSgxKTsKLSAgICAgICAgfQotICAgICAgICBLZXlm
cmFtZVZhbHVlIGtleWZyYW1lVmFsdWUoMSwgbnVsbHB0cik7Ci0gICAgICAgIGtleWZyYW1lVmFs
dWUuc2V0U3R5bGUoc3R5bGVGb3JLZXlmcmFtZShlbGVtZW50LCBlbGVtZW50U3R5bGUsIGh1bmRy
ZWRQZXJjZW50S2V5ZnJhbWUsIGtleWZyYW1lVmFsdWUpKTsKLSAgICAgICAgbGlzdC5pbnNlcnQo
V1RGTW92ZShrZXlmcmFtZVZhbHVlKSk7Ci0gICAgfQorICAgIGxpc3QuZmlsbEltcGxpY2l0S2V5
ZnJhbWVzKGVsZW1lbnQsICp0aGlzLCBlbGVtZW50U3R5bGUpOwogfQogCiBzdGQ6OnVuaXF1ZV9w
dHI8UmVuZGVyU3R5bGU+IFJlc29sdmVyOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQoY29uc3QgRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgUHNldWRvRWxlbWVudFJlcXVlc3QmIHBzZXVkb0VsZW1lbnRS
ZXF1ZXN0LCBjb25zdCBSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxl
KiBwYXJlbnRCb3hTdHlsZSwgY29uc3QgU2VsZWN0b3JGaWx0ZXIqIHNlbGVjdG9yRmlsdGVyKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGJiZDBlZGE3N2YwMzVjY2I1NWRmNGM0NGM3NTllZDVhZGQzYmI5Y2MuLjk2YmRlN2Vh
NTY2MGVjNzgwMTE0YTFlMDRmZDYwMThiNmVjYzZiNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAyMC0wNS0xNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAg
IFtXZWIgQW5pbWF0aW9uc10gQW5pbWF0aW9uIHdpdGggYSBzaW5nbGUga2V5ZnJhbWUgaXMgbm90
IGFjY2VsZXJhdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODg3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQzNDgxMTEzPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHRo
YXQgcnVucyBhIHNpbmdsZS1rZXlmcmFtZSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGFuZCBjaGVja3Mg
dGhhdCBpdCBydW5zIGFjY2VsZXJhdGVkLgorCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9hY2Nl
bGVyYXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZy
YW1lLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA1LTE0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgQ3Vyc29yIHNob3VsZCBub3QgdXBkYXRlIG9uIGEgMjBtcyB0
aW1lcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1h
bmltYXRpb24tc2luZ2xlLWtleWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmFu
aW1hdGlvbnMvYWNjZWxlcmF0ZWQtYW5pbWF0aW9uLXNpbmdsZS1rZXlmcmFtZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTY5OGI2YzQ2MDI1OTljOTA0M2I5MzU3OGMzN2U0ZWM2ZjQyMGVmMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQt
YW5pbWF0aW9uLXNpbmdsZS1rZXlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgQSB0cmFuc2Zvcm0gYW5pbWF0aW9uIHdpdGggYSBzaW5nbGUga2V5ZnJhbWUgc2hvdWxk
IGJlIGFibGUgdG8gcnVuIGFjY2VsZXJhdGVkLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZyYW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVkLWFuaW1hdGlvbi1zaW5nbGUt
a2V5ZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2Y1M2E5OWYwZDYzMWY2MWRkYzQzMWY3YzA0NWUz
ZGJkOTM1MWEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9h
Y2NlbGVyYXRlZC1hbmltYXRpb24tc2luZ2xlLWtleWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzNCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisKKyAgICAjdGFyZ2V0IHsKKyAgICAg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwOworICAgICAgICB0b3A6IDA7
CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CisgICAgfQorCis8L3N0eWxlPgorPGRpdiBpZD0idGFy
Z2V0Ij48L2Rpdj4KKzxzY3JpcHQ+CisKK2FzeW5jX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgLy8g
U3RhcnQgYW4gYW5pbWF0aW9uIHdpdGggYW4gaW1wbGljaXQgZnJvbSBrZXlmcmFtZS4KKyAgICBj
b25zdCBhbmltYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikuYW5pbWF0
ZSh7IHRyYW5zZm9ybTogInRyYW5zbGF0ZVgoNjAwcHgpIiB9LCB7IGR1cmF0aW9uOiAxMDAwICog
MTAwMCB9KTsKKworICAgIC8vIFdhaXQgdHdvIGZyYW1lcyBmb3IgdGhlIGFjY2VsZXJhdGVkIGFu
aW1hdGlvbiB0byBiZSBjb21taXR0ZWQuCisgICAgYXdhaXQgYW5pbWF0aW9uLnJlYWR5OworICAg
IGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7CisgICAgYXdhaXQgbmV3
IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKKworICAgIGFzc2VydF9lcXVhbHMoaW50
ZXJuYWxzLmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQodGFyZ2V0KS5sZW5ndGgsIDEs
ICJUaGVyZSBzaG91bGQgYmUgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uLiIpOworICAgIHQuZG9u
ZSgpOworfSwgIkEgdHJhbnNmb3JtIGFuaW1hdGlvbiB3aXRoIGEgc2luZ2xlIGtleWZyYW1lIHNo
b3VsZCBiZSBhYmxlIHRvIHJ1biBhY2NlbGVyYXRlZC4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cg==
</data>
<flag name="review"
          id="414923"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>