<?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>227540</bug_id>
          
          <creation_ts>2021-06-30 11:36:14 -0700</creation_ts>
          <short_desc>[MacOS wk1] crypto/workers/subtle/hrsa-postMessage-worker.html is a flaky failure</short_desc>
          <delta_ts>2021-08-23 23:10:16 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac (Intel)</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=229178</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>ayumi_kojima</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ayumi_kojima</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>jcaptanis</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1773836</commentid>
    <comment_count>0</comment_count>
    <who name="">ayumi_kojima</who>
    <bug_when>2021-06-30 11:36:14 -0700</bug_when>
    <thetext>crypto/workers/subtle/hrsa-postMessage-worker.html

History: https://results.webkit.org/?suite=layout-tests&amp;test=crypto%2Fworkers%2Fsubtle%2Fhrsa-postMessage-worker.html

This test appeared to be timing specific in its results reporting

--- /Volumes/Data/worker/bigsur-debug-tests-wk1/build/layout-test-results/crypto/workers/subtle/hrsa-postMessage-worker-expected.txt
+++ /Volumes/Data/worker/bigsur-debug-tests-wk1/build/layout-test-results/crypto/workers/subtle/hrsa-postMessage-worker-actual.txt
@@ -3,6 +3,14 @@
 On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
 
 
+PASS All checks passed in worker for public key
+PASS publicKey.type is &apos;public&apos;
+PASS publicKey.extractable is true
+PASS publicKey.algorithm.name is &apos;RSASSA-PKCS1-v1_5&apos;
+PASS publicKey.algorithm.modulusLength is 2048
+PASS bytesToHexString(publicKey.algorithm.publicExponent) is &apos;010001&apos;
+PASS publicKey.algorithm.hash.name is &apos;SHA-256&apos;
+PASS publicKey.usages is [&apos;verify&apos;]
 PASS All checks passed in worker for private key
 PASS privateKey.type is &apos;private&apos;
 PASS privateKey.extractable is false
@@ -11,14 +19,6 @@
 PASS bytesToHexString(privateKey.algorithm.publicExponent) is &apos;010001&apos;
 PASS privateKey.algorithm.hash.name is &apos;SHA-256&apos;
 PASS privateKey.usages is [&apos;sign&apos;]
-PASS All checks passed in worker for public key
-PASS publicKey.type is &apos;public&apos;
-PASS publicKey.extractable is true
-PASS publicKey.algorithm.name is &apos;RSASSA-PKCS1-v1_5&apos;
-PASS publicKey.algorithm.modulusLength is 2048
-PASS bytesToHexString(publicKey.algorithm.publicExponent) is &apos;010001&apos;
-PASS publicKey.algorithm.hash.name is &apos;SHA-256&apos;
-PASS publicKey.usages is [&apos;verify&apos;]
 PASS successfullyParsed is true
 
 TEST COMPLETE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773839</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-30 11:41:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/79977662&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773881</commentid>
    <comment_count>2</comment_count>
      <attachid>432624</attachid>
    <who name="">ayumi_kojima</who>
    <bug_when>2021-06-30 14:24:53 -0700</bug_when>
    <thetext>Created attachment 432624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773895</commentid>
    <comment_count>3</comment_count>
      <attachid>432631</attachid>
    <who name="">ayumi_kojima</who>
    <bug_when>2021-06-30 15:04:34 -0700</bug_when>
    <thetext>Created attachment 432631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773899</commentid>
    <comment_count>4</comment_count>
      <attachid>432632</attachid>
    <who name="">ayumi_kojima</who>
    <bug_when>2021-06-30 15:22:08 -0700</bug_when>
    <thetext>Created attachment 432632
TestExpectations update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773903</commentid>
    <comment_count>5</comment_count>
      <attachid>432632</attachid>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-06-30 15:25:11 -0700</bug_when>
    <thetext>Comment on attachment 432632
TestExpectations update

Clearing flags on attachment: 432632

Committed r279437 (239294@main): &lt;https://commits.webkit.org/239294@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774527</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-02 12:46:12 -0700</bug_when>
    <thetext>This is not an issue with the test but rather is really bug in Crypto key deserialization:

38  0x16325d3ad WebCore::ScriptExecutionContext::Task::performTask(WebCore::ScriptExecutionContext&amp;)
39  0x165a32f5d WebCore::WorkerRunLoop::Task::performTask(WebCore::WorkerOrWorkletGlobalScope*)
40  0x165a3249d WebCore::WorkerRunLoop::runInMode(WebCore::WorkerOrWorkletGlobalScope*, WebCore::ModePredicate const&amp;, WebCore::WorkerRunLoop::WaitMode)
41  0x165a3291f WebCore::WorkerRunLoop::runInMode(WebCore::WorkerOrWorkletGlobalScope*, WTF::String const&amp;, WebCore::WorkerRunLoop::WaitMode)
42  0x1659fa04a WebCore::WorkerGlobalScope::unwrapCryptoKey(WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;)
43  0x1635bfd3a WebCore::unwrapCryptoKey(JSC::JSGlobalObject*, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;, WTF::Vector&lt;unsigned char, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;)
44  0x16359677d WebCore::CloneDeserializer::readTerminal()
45  0x163594179 WebCore::CloneDeserializer::deserialize()

The test sends 2 messages to the worker, the first one with the public key and the second one with the private key. When processing the first message on the worker thread and doing the deserialization of the public key, we call WorkerRunLoop::runInMode() which processes the pending message for the private key.

As a result, the MessageEvents are dispatched to the JS in the wrong order (private key first, then then public key) sometimes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774530</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-02 12:50:25 -0700</bug_when>
    <thetext>The implementation here is wrong:
bool WorkerGlobalScope::unwrapCryptoKey(const Vector&lt;uint8_t&gt;&amp; wrappedKey, Vector&lt;uint8_t&gt;&amp; key)
{
    Ref&lt;WorkerGlobalScope&gt; protectedThis(*this);
    auto resultContainer = CryptoBooleanContainer::create();
    auto doneContainer = CryptoBooleanContainer::create();
    auto keyContainer = CryptoBufferContainer::create();
    thread().workerLoaderProxy().postTaskToLoader([resultContainer, wrappedKey, keyContainer, doneContainer, workerMessagingProxy = makeRef(downcast&lt;WorkerMessagingProxy&gt;(thread().workerLoaderProxy()))](ScriptExecutionContext&amp; context) {
        resultContainer-&gt;setBoolean(context.unwrapCryptoKey(wrappedKey, keyContainer-&gt;buffer()));
        doneContainer-&gt;setBoolean(true);
        workerMessagingProxy-&gt;postTaskForModeToWorkerOrWorkletGlobalScope([](ScriptExecutionContext&amp; context) {
            ASSERT_UNUSED(context, context.isWorkerGlobalScope());
        }, WorkerRunLoop::defaultMode());
    });

    auto waitResult = MessageQueueMessageReceived;
    while (!doneContainer-&gt;boolean() &amp;&amp; waitResult != MessageQueueTerminated)
        waitResult = thread().runLoop().runInMode(this, WorkerRunLoop::defaultMode());

    if (doneContainer-&gt;boolean())
        key.swap(keyContainer-&gt;buffer());
    return resultContainer-&gt;boolean();
}

The runInMode() call means we&apos;ll process incoming events while we&apos;re in the middle of deserializing a crypto key and this is what can cause messages to get received out of order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774531</commentid>
    <comment_count>8</comment_count>
      <attachid>432815</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-02 13:01:40 -0700</bug_when>
    <thetext>Created attachment 432815
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774538</commentid>
    <comment_count>9</comment_count>
      <attachid>432816</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-02 13:18:21 -0700</bug_when>
    <thetext>Created attachment 432816
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774559</commentid>
    <comment_count>10</comment_count>
      <attachid>432820</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-02 14:00:53 -0700</bug_when>
    <thetext>Created attachment 432820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774567</commentid>
    <comment_count>11</comment_count>
      <attachid>432821</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-02 14:13:41 -0700</bug_when>
    <thetext>Created attachment 432821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774596</commentid>
    <comment_count>12</comment_count>
      <attachid>432821</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-07-02 15:12:41 -0700</bug_when>
    <thetext>Comment on attachment 432821
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774600</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-02 15:26:39 -0700</bug_when>
    <thetext>Committed r279518 (239369@main): &lt;https://commits.webkit.org/239369@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432821.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785393</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-19 00:29:15 -0700</bug_when>
    <thetext>*** Bug 229178 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432624</attachid>
            <date>2021-06-30 14:24:53 -0700</date>
            <delta_ts>2021-06-30 15:04:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227540-20210630142453.patch</filename>
            <type>text/plain</type>
            <size>1418</size>
            <attacher>ayumi_kojima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDEyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTg1NjRlZDFkMmZiZWE4MDA2ZjU0
MjcwMTMwY2QyMzVjYmNjYzEzMS4uMzY5NjM4MzAwNzdiNDcyYzE4YzI0OWE4NzA2N2U5Y2E1NjRh
NzcyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA2LTMwICBBeXVtaSBLb2ppbWEgIDxh
eXVtaV9rb2ppbWFAYXBwbGUuY29tPgorCisgICAgICAgICBbIE1hY09TIHdrMSBdIGNyeXB0by93
b3JrZXJzL3N1YnRsZS9ocnNhLXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIGlzIGZsYWt5IGZhaWxp
bmcuCisgICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzU0MC4KKworICAgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBnYXJkbmVuaW5nLgorCisgICAgICAg
ICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTA2LTMwICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmUtaW1wb3J0IGh0bWwvc2VtYW50
aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1kaWFsb2ctZWxlbWVudCBXUFQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzZTIyMDAyZDZl
ODdlODU5MzVmMDM3NGRhMGQzYzY5YjYwNmU3Zjg1Li5jNjY1MTU3ZjVjOTE0YmY1MzYxMzcxMzA0
MWYwNTc2ZDEwNTI0NTNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xMzA3LDMgKzEzMDcsNSBAQCB3ZWJraXQub3JnL2IvMjI3MDg1IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwt
dAogWyBCaWdTdXIgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd2ls
bC1jaGFuZ2Uvd2lsbC1jaGFuZ2Utc3RhY2tpbmctY29udGV4dC1vcGFjaXR5LTEuaHRtbCBbIFBh
c3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMjczNjYgWyBCaWdTdXIgXSBo
dHRwL3Rlc3RzL3ByZWxvYWQvb25sb2FkX2V2ZW50Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQorCit3
ZWJraXQub3JnL2IvMjI3NTQwIFsgQ2F0YWxpbmErIERlYnVnIF0gY3J5cHRvL3dvcmtlcnMvc3Vi
dGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432631</attachid>
            <date>2021-06-30 15:04:34 -0700</date>
            <delta_ts>2021-06-30 15:22:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227540-20210630150434.patch</filename>
            <type>text/plain</type>
            <size>1319</size>
            <attacher>ayumi_kojima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDMyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGE3MmQwOTVkN2I3OWFlODZkY2Zi
OWQyM2RlODM4OTY4YWZmZDI2Ni4uZDlhODZkNGNhYjZhODg1MzBhZjBlZWZkNWUxODMxZGZkOGU2
MzA5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA2LTMwICBBeXVtaSBLb2ppbWEgIDxh
eXVtaV9rb2ppbWFAYXBwbGUuY29tPgorCisgICAgICAgIFsgTWFjT1Mgd2sxIF0gY3J5cHRvL3dv
cmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgaXMgZmxha3kgZmFpbGlu
Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzU0
MC4KKworICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZG5lbmluZy4KKworICAgICAgICAqIHBs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wNi0zMCAgVHJ1aXR0IFNh
dmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGlu
ZyByMjc5NDA1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGM2NmYwMGM1MThjMjM3YTBmMGJkZDkzNjM3NDJhZDVmMzUyMWE2NjMuLmFhNmE4
ZTM2MWU4ZTRkOTc0ODI2NWZlOWJhODQ3NTE3ZTgxMDQ0YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzMTIsMyArMTMxMiw1IEBAIHdl
YmtpdC5vcmcvYi8yMjcwODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXNjcm9sbC1zbmFwL3Njcm9sbC10CiB3ZWJraXQub3JnL2IvMjI3MzY2IFsgQmlnU3VyIF0gaHR0
cC90ZXN0cy9wcmVsb2FkL29ubG9hZF9ldmVudC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAogd2Vi
a2l0Lm9yZy9iLzIyNzUxNiBmYXN0L3NoYWRvdy1kb20vc3R5bGUtcmVzb2x2ZXItc2hhcmluZy5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KKword2Via2l0Lm9yZy9iLzIyNzU0MCBbIERlYnVnIF0gY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432632</attachid>
            <date>2021-06-30 15:22:08 -0700</date>
            <delta_ts>2021-07-02 12:46:47 -0700</delta_ts>
            <desc>TestExpectations update</desc>
            <filename>bug-227540-20210630152207.patch</filename>
            <type>text/plain</type>
            <size>1394</size>
            <attacher>ayumi_kojima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDMzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWM0ZTYyMDNkZjUxOTlkZmExODIz
YmI5MjY2NTJkZTVjMDBjZWY3Mi4uMTBhZDdhNGUwMDI0YjMzYmI5MjhiNGJkOWRhZTg4NDBhNGQ5
MTVhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA2LTMwICBBeXVtaSBLb2ppbWEgIDxh
eXVtaV9rb2ppbWFAYXBwbGUuY29tPgorCisgICAgICAgIFsgTWFjT1Mgd2sxIF0gY3J5cHRvL3dv
cmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgaXMgZmxha3kgZmFpbGlu
Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzU0
MC4KKworICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZG5lbmluZy4KKworICAgICAgICAqIHBs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wNi0zMCAgRXJpYyBIdXRj
aGlzb24gIDxlaHV0Y2hpc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQmlnU3VyIHdrMl0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltcGxlY2FsbC1uby1zc3Jjcy5o
dHRwcy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGM2NmYwMGM1MThjMjM3YTBmMGJkZDkzNjM3NDJh
ZDVmMzUyMWE2NjMuLmFhNmE4ZTM2MWU4ZTRkOTc0ODI2NWZlOWJhODQ3NTE3ZTgxMDQ0YzggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEz
MTIsMyArMTMxMiw1IEBAIHdlYmtpdC5vcmcvYi8yMjcwODUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC10CiB3ZWJraXQub3JnL2IvMjI3
MzY2IFsgQmlnU3VyIF0gaHR0cC90ZXN0cy9wcmVsb2FkL29ubG9hZF9ldmVudC5odG1sIFsgUGFz
cyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzIyNzUxNiBmYXN0L3NoYWRvdy1kb20vc3R5bGUt
cmVzb2x2ZXItc2hhcmluZy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KKword2Via2l0Lm9yZy9iLzIy
NzU0MCBbIERlYnVnIF0gY3J5cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29y
a2VyLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432815</attachid>
            <date>2021-07-02 13:01:40 -0700</date>
            <delta_ts>2021-07-02 13:18:19 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>227540_wip.patch</filename>
            <type>text/plain</type>
            <size>5851</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9ocnNhLXBvc3RN
ZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9z
dWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDBlZDc0Zjlm
ZmY0Yy4uNmUxZDZmZTUzMDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vy
cy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9ocnNhLXBvc3RNZXNzYWdlLXdvcmtlci1leHBl
Y3RlZC50eHQKQEAgLTMsMTQgKzMsNiBAQCBUZXN0IHNlbmRpbmcgaGFzaGVkIHJzYSBjcnlwdG8g
a2V5cyB2aWEgcG9zdE1lc3NhZ2UgdG8gYSB3b3JrZXIuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKIAotUEFTUyBBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHByaXZhdGUga2V5
Ci1QQVNTIHByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1MgcHJpdmF0ZUtleS5leHRy
YWN0YWJsZSBpcyBmYWxzZQotUEFTUyBwcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FT
U0EtUEtDUzEtdjFfNScKLVBBU1MgcHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBp
cyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGlj
RXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIHByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gubmFt
ZSBpcyAnU0hBLTI1NicKLVBBU1MgcHJpdmF0ZUtleS51c2FnZXMgaXMgWydzaWduJ10KIFBBU1Mg
QWxsIGNoZWNrcyBwYXNzZWQgaW4gd29ya2VyIGZvciBwdWJsaWMga2V5CiBQQVNTIHB1YmxpY0tl
eS50eXBlIGlzICdwdWJsaWMnCiBQQVNTIHB1YmxpY0tleS5leHRyYWN0YWJsZSBpcyB0cnVlCkBA
IC0xOSw2ICsxMSwxNCBAQCBQQVNTIHB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBp
cyAyMDQ4CiBQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNF
eHBvbmVudCkgaXMgJzAxMDAwMScKIFBBU1MgcHVibGljS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUg
aXMgJ1NIQS0yNTYnCiBQQVNTIHB1YmxpY0tleS51c2FnZXMgaXMgWyd2ZXJpZnknXQorUEFTUyBB
bGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHByaXZhdGUga2V5CitQQVNTIHByaXZhdGVL
ZXkudHlwZSBpcyAncHJpdmF0ZScKK1BBU1MgcHJpdmF0ZUtleS5leHRyYWN0YWJsZSBpcyBmYWxz
ZQorUEFTUyBwcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScK
K1BBU1MgcHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5
dGVzVG9IZXhTdHJpbmcocHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcw
MTAwMDEnCitQQVNTIHByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTI1NicK
K1BBU1MgcHJpdmF0ZUtleS51c2FnZXMgaXMgWydzaWduJ10KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA5MTBhYzFhOWEzNi4uY2UxODFmNzQ2ZjUxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
MzEwLDUgKzEzMTAsMyBAQCB3ZWJraXQub3JnL2IvMjI3MDg1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdAogd2Via2l0Lm9yZy9iLzIy
NzM2NiBbIEJpZ1N1ciBdIGh0dHAvdGVzdHMvcHJlbG9hZC9vbmxvYWRfZXZlbnQuaHRtbCBbIFBh
c3MgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8yMjc1MTYgZmFzdC9zaGFkb3ctZG9tL3N0eWxl
LXJlc29sdmVyLXNoYXJpbmcuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KLXdlYmtpdC5vcmcvYi8y
Mjc1NDAgWyBEZWJ1ZyBdIGNyeXB0by93b3JrZXJzL3N1YnRsZS9ocnNhLXBvc3RNZXNzYWdlLXdv
cmtlci5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZWRmMDUyOWMxMThiLi40MDgzZjZmOThhNmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01OSw2ICs1
OSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2lu
Y2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwpAQCAtNDE1LDE3ICs0MTYsMTMgQEAgYm9v
bCBXb3JrZXJHbG9iYWxTY29wZTo6d3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4m
IGtleSwgVmVjdG9yPHVpbnQ4X3QKICAgICBhdXRvIHJlc3VsdENvbnRhaW5lciA9IENyeXB0b0Jv
b2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwogICAgIGF1dG8gZG9uZUNvbnRhaW5lciA9IENyeXB0
b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwogICAgIGF1dG8gd3JhcHBlZEtleUNvbnRhaW5l
ciA9IENyeXB0b0J1ZmZlckNvbnRhaW5lcjo6Y3JlYXRlKCk7Ci0gICAgdGhyZWFkKCkud29ya2Vy
TG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFtyZXN1bHRDb250YWluZXIsIGtleSwgd3Jh
cHBlZEtleUNvbnRhaW5lciwgZG9uZUNvbnRhaW5lciwgd29ya2VyTWVzc2FnaW5nUHJveHkgPSBt
YWtlUmVmKGRvd25jYXN0PFdvcmtlck1lc3NhZ2luZ1Byb3h5Pih0aHJlYWQoKS53b3JrZXJMb2Fk
ZXJQcm94eSgpKSldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsKKyAgICBCaW5h
cnlTZW1hcGhvcmUgc2VtYXBob3JlOworICAgIHRocmVhZCgpLndvcmtlckxvYWRlclByb3h5KCku
cG9zdFRhc2tUb0xvYWRlcihbJnNlbWFwaG9yZSwgcmVzdWx0Q29udGFpbmVyLCBrZXksIHdyYXBw
ZWRLZXlDb250YWluZXIsIGRvbmVDb250YWluZXIsIHdvcmtlck1lc3NhZ2luZ1Byb3h5ID0gbWFr
ZVJlZihkb3duY2FzdDxXb3JrZXJNZXNzYWdpbmdQcm94eT4odGhyZWFkKCkud29ya2VyTG9hZGVy
UHJveHkoKSkpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CiAgICAgICAgIHJl
c3VsdENvbnRhaW5lci0+c2V0Qm9vbGVhbihjb250ZXh0LndyYXBDcnlwdG9LZXkoa2V5LCB3cmFw
cGVkS2V5Q29udGFpbmVyLT5idWZmZXIoKSkpOwogICAgICAgICBkb25lQ29udGFpbmVyLT5zZXRC
b29sZWFuKHRydWUpOwotICAgICAgICB3b3JrZXJNZXNzYWdpbmdQcm94eS0+cG9zdFRhc2tGb3JN
b2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbXShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0KSB7Ci0gICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQu
aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVs
dE1vZGUoKSk7CisgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsKLQotICAgIGF1
dG8gd2FpdFJlc3VsdCA9IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsKLSAgICB3aGlsZSAo
IWRvbmVDb250YWluZXItPmJvb2xlYW4oKSAmJiB3YWl0UmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRl
cm1pbmF0ZWQpCi0gICAgICAgIHdhaXRSZXN1bHQgPSB0aHJlYWQoKS5ydW5Mb29wKCkucnVuSW5N
b2RlKHRoaXMsIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgIHNlbWFwaG9yZS53
YWl0KCk7CiAKICAgICBpZiAoZG9uZUNvbnRhaW5lci0+Ym9vbGVhbigpKQogICAgICAgICB3cmFw
cGVkS2V5LnN3YXAod3JhcHBlZEtleUNvbnRhaW5lci0+YnVmZmVyKCkpOwpAQCAtNDM4LDE3ICs0
MzUsMTMgQEAgYm9vbCBXb3JrZXJHbG9iYWxTY29wZTo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgd3JhcHBlZEtleSwgVmVjdG8KICAgICBhdXRvIHJlc3VsdENvbnRhaW5l
ciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwogICAgIGF1dG8gZG9uZUNvbnRh
aW5lciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwogICAgIGF1dG8ga2V5Q29u
dGFpbmVyID0gQ3J5cHRvQnVmZmVyQ29udGFpbmVyOjpjcmVhdGUoKTsKLSAgICB0aHJlYWQoKS53
b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3Jlc3VsdENvbnRhaW5lciwgd3Jh
cHBlZEtleSwga2V5Q29udGFpbmVyLCBkb25lQ29udGFpbmVyLCB3b3JrZXJNZXNzYWdpbmdQcm94
eSA9IG1ha2VSZWYoZG93bmNhc3Q8V29ya2VyTWVzc2FnaW5nUHJveHk+KHRocmVhZCgpLndvcmtl
ckxvYWRlclByb3h5KCkpKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAg
IEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAgdGhyZWFkKCkud29ya2VyTG9hZGVyUHJv
eHkoKS5wb3N0VGFza1RvTG9hZGVyKFsmc2VtYXBob3JlLCByZXN1bHRDb250YWluZXIsIHdyYXBw
ZWRLZXksIGtleUNvbnRhaW5lciwgZG9uZUNvbnRhaW5lciwgd29ya2VyTWVzc2FnaW5nUHJveHkg
PSBtYWtlUmVmKGRvd25jYXN0PFdvcmtlck1lc3NhZ2luZ1Byb3h5Pih0aHJlYWQoKS53b3JrZXJM
b2FkZXJQcm94eSgpKSldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsKICAgICAg
ICAgcmVzdWx0Q29udGFpbmVyLT5zZXRCb29sZWFuKGNvbnRleHQudW53cmFwQ3J5cHRvS2V5KHdy
YXBwZWRLZXksIGtleUNvbnRhaW5lci0+YnVmZmVyKCkpKTsKICAgICAgICAgZG9uZUNvbnRhaW5l
ci0+c2V0Qm9vbGVhbih0cnVlKTsKLSAgICAgICAgd29ya2VyTWVzc2FnaW5nUHJveHktPnBvc3RU
YXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW10oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkgewotICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBj
b250ZXh0LmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6
OmRlZmF1bHRNb2RlKCkpOworICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7Ci0K
LSAgICBhdXRvIHdhaXRSZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQ7Ci0gICAg
d2hpbGUgKCFkb25lQ29udGFpbmVyLT5ib29sZWFuKCkgJiYgd2FpdFJlc3VsdCAhPSBNZXNzYWdl
UXVldWVUZXJtaW5hdGVkKQotICAgICAgICB3YWl0UmVzdWx0ID0gdGhyZWFkKCkucnVuTG9vcCgp
LnJ1bkluTW9kZSh0aGlzLCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICBzZW1h
cGhvcmUud2FpdCgpOwogCiAgICAgaWYgKGRvbmVDb250YWluZXItPmJvb2xlYW4oKSkKICAgICAg
ICAga2V5LnN3YXAoa2V5Q29udGFpbmVyLT5idWZmZXIoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432816</attachid>
            <date>2021-07-02 13:18:21 -0700</date>
            <delta_ts>2021-07-02 14:00:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227540-20210702131820.patch</filename>
            <type>text/plain</type>
            <size>12759</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDczNzA1Njk2NDQzMDc0
MmIxMjkwODE2YzFmODE2Y2FhZDljOTA5Yi4uZmJlMTU0MTQzMmQ0YzllMGUxNGM5MzRkZjAzNjc1
MTZhYTJlZTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA3LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY09TIHdrMV0gY3J5cHRv
L3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgaXMgYSBmbGFreSBm
YWlsdXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mjc1NDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5OTc3NjYyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IHdhcyBzZW5kaW5nIDIg
bWVzc2FnZXMgdG8gdGhlIHdvcmtlciwgdGhlIGZpcnN0IG9uZSB3aXRoIHRoZSBwdWJsaWMga2V5
CisgICAgICAgIGFuZCB0aGUgc2Vjb25kIG9uZSBmb3IgdGhlIHByaXZhdGUga2V5LiBBcyB0aGUg
d29ya2VyIHdvdWxkIHJlY2VpdmUgdGhvc2UgbWVzc2FnZXMsCisgICAgICAgIGl0IHdvdWxkIGRv
IHNvbWUgY2hlY2tzIHN5bmNocm9ub3VzbHkgYW5kIHBvc3QgYSBtZXNzYWdlIGJhY2sgdG8gdGhl
IG1haW4gdGhyZWFkCisgICAgICAgIHNjcmlwdCB3aXRoIHRoZSByZXN1bHQuIEFzIHdlIGNvdWxk
IHNlZSBmcm9tIHRoZSB0ZXN0J3MgZXhwZWN0ZWQgcmVzdWx0cywgdGhlCisgICAgICAgIG1haW4g
dGhyZWFkIHNjcmlwdCB3b3VsZCB1c3VhbGx5IChhbHRob3VnaCBmbGFraWx5KSByZWNlaXZlIHRo
ZSByZXN1bHQgZm9yIHRoZQorICAgICAgICBwcml2YXRlIGtleSAqYmVmb3JlKiB0aGUgcmVzdWx0
IGZvciB0aGUgcHVibGljIGtleSwgd2hpY2ggd2FzIHdyb25nLgorCisgICAgICAgIFRoZSByZWFz
b24gZm9yIHRoaXMgd2FzIHRoYXQgc2VyaWFsaXppbmcgLyBkZXNlcmlhbGl6aW5nIHRoZSBjcnlw
dG8ga2V5IHdvdWxkCisgICAgICAgIHNwaW4gdGhlIHdvcmtlcidzIHJ1biBsb29wIGFuZCB0aGUg
d29ya2VyIHdvdWxkIHRodXMgcHJvY2VzcyBpbmNvbWluZyBtZXNzYWdlcworICAgICAgICB3aGls
ZSBzZXJpYWxpemluZyAvIGRlc2VyaWFsaXppbmcgYSBjcnlwdG8ga2V5IGZyb20gYSBwcmV2aW91
cyBtZXNzYWdlLgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB3ZSBub3cgdXNlIGEg
QmluYXJ5U2VtYXBob3JlIHRvIHdhaXQgZm9yIHRoZSBtYWluIHRocmVhZAorICAgICAgICB0byBm
aW5pc2ggdGhlIHdyYXBwaW5nIC8gdW53cmFwcGluZywgaW5zdGVhZCBvZiBzcGlubmluZyB0aGUg
cnVuIGxvb3AuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3RpbmcgdGVz
dC4KKworICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OndyYXBDcnlwdG9LZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnVud3JhcENyeXB0b0tleSk6CisKIDIwMjEtMDctMDIg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gS2Vl
cCB0cmFjayBvZiBib3RoIHRoZSBmaXhlZCBhbmQgcGVyY2VudCBtYXhpbXVtIHZhbHVlcyBmb3Ig
ZWFjaCBjb2x1bW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5j
cHAKaW5kZXggZWRmMDUyOWMxMThiMDY1ZmQ4YjJiNTA4OTkzYzEzZDg4NzRkY2UzNS4uYWNmNzAw
M2JkNzAxM2IyZTI1OTNlNzk2MWM0ZmFiYTc4MWI3M2NjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL3RocmVh
ZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBJbnNwZWN0b3I7CkBAIC0zOTAsNjkgKzM5MSwzMCBAQCB2b2lkIFdvcmtlckdsb2JhbFNj
b3BlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbgogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCiAKLWNsYXNzIENyeXB0b0J1ZmZlckNvbnRh
aW5lciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDcnlwdG9CdWZmZXJDb250YWluZXI+
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENyeXB0b0J1ZmZlckNvbnRhaW5lcj4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9CdWZmZXJDb250YWluZXIpOyB9Ci0gICAg
VmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIoKSB7IHJldHVybiBtX2J1ZmZlcjsgfQotCi1wcml2YXRl
OgotICAgIFZlY3Rvcjx1aW50OF90PiBtX2J1ZmZlcjsKLX07Ci0KLWNsYXNzIENyeXB0b0Jvb2xl
YW5Db250YWluZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q3J5cHRvQm9vbGVhbkNv
bnRhaW5lcj4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q3J5cHRvQm9vbGVhbkNvbnRhaW5l
cj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9Cb29sZWFuQ29udGFpbmVy
KTsgfQotICAgIGJvb2wgYm9vbGVhbigpIGNvbnN0IHsgcmV0dXJuIG1fYm9vbGVhbjsgfQotICAg
IHZvaWQgc2V0Qm9vbGVhbihib29sIGJvb2xlYW4pIHsgbV9ib29sZWFuID0gYm9vbGVhbjsgfQot
Ci1wcml2YXRlOgotICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1fYm9vbGVhbiB7IGZhbHNlIH07Ci19
OwotCiBib29sIFdvcmtlckdsb2JhbFNjb3BlOjp3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpCiB7Ci0gICAgUmVmPFdv
cmtlckdsb2JhbFNjb3BlPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBhdXRvIHJlc3VsdENv
bnRhaW5lciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8gZG9u
ZUNvbnRhaW5lciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8g
d3JhcHBlZEtleUNvbnRhaW5lciA9IENyeXB0b0J1ZmZlckNvbnRhaW5lcjo6Y3JlYXRlKCk7Ci0g
ICAgdGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFtyZXN1bHRD
b250YWluZXIsIGtleSwgd3JhcHBlZEtleUNvbnRhaW5lciwgZG9uZUNvbnRhaW5lciwgd29ya2Vy
TWVzc2FnaW5nUHJveHkgPSBtYWtlUmVmKGRvd25jYXN0PFdvcmtlck1lc3NhZ2luZ1Byb3h5Pih0
aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpKSldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpIHsKLSAgICAgICAgcmVzdWx0Q29udGFpbmVyLT5zZXRCb29sZWFuKGNvbnRleHQud3Jh
cENyeXB0b0tleShrZXksIHdyYXBwZWRLZXlDb250YWluZXItPmJ1ZmZlcigpKSk7Ci0gICAgICAg
IGRvbmVDb250YWluZXItPnNldEJvb2xlYW4odHJ1ZSk7Ci0gICAgICAgIHdvcmtlck1lc3NhZ2lu
Z1Byb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFtdKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsKLSAgICAgICAgICAgIEFTU0VSVF9VTlVT
RUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwotICAgICAgICB9LCBX
b3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0
aGlzIH07CisgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAgQmluYXJ5U2VtYXBob3JlIHNl
bWFwaG9yZTsKKyAgICB0aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2Fk
ZXIoWyZzZW1hcGhvcmUsICZzdWNjZXNzLCAma2V5LCAmd3JhcHBlZEtleV0oYXV0byYgY29udGV4
dCkgeworICAgICAgICBzdWNjZXNzID0gY29udGV4dC53cmFwQ3J5cHRvS2V5KGtleSwgd3JhcHBl
ZEtleSk7CisgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsKLQotICAgIGF1dG8g
d2FpdFJlc3VsdCA9IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsKLSAgICB3aGlsZSAoIWRv
bmVDb250YWluZXItPmJvb2xlYW4oKSAmJiB3YWl0UmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1p
bmF0ZWQpCi0gICAgICAgIHdhaXRSZXN1bHQgPSB0aHJlYWQoKS5ydW5Mb29wKCkucnVuSW5Nb2Rl
KHRoaXMsIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwotCi0gICAgaWYgKGRvbmVDb250
YWluZXItPmJvb2xlYW4oKSkKLSAgICAgICAgd3JhcHBlZEtleS5zd2FwKHdyYXBwZWRLZXlDb250
YWluZXItPmJ1ZmZlcigpKTsKLSAgICByZXR1cm4gcmVzdWx0Q29udGFpbmVyLT5ib29sZWFuKCk7
CisgICAgc2VtYXBob3JlLndhaXQoKTsKKyAgICByZXR1cm4gc3VjY2VzczsKIH0KIAogYm9vbCBX
b3JrZXJHbG9iYWxTY29wZTo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
d3JhcHBlZEtleSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpCiB7Ci0gICAgUmVmPFdvcmtlckdsb2Jh
bFNjb3BlPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBhdXRvIHJlc3VsdENvbnRhaW5lciA9
IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8gZG9uZUNvbnRhaW5l
ciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8ga2V5Q29udGFp
bmVyID0gQ3J5cHRvQnVmZmVyQ29udGFpbmVyOjpjcmVhdGUoKTsKLSAgICB0aHJlYWQoKS53b3Jr
ZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3Jlc3VsdENvbnRhaW5lciwgd3JhcHBl
ZEtleSwga2V5Q29udGFpbmVyLCBkb25lQ29udGFpbmVyLCB3b3JrZXJNZXNzYWdpbmdQcm94eSA9
IG1ha2VSZWYoZG93bmNhc3Q8V29ya2VyTWVzc2FnaW5nUHJveHk+KHRocmVhZCgpLndvcmtlckxv
YWRlclByb3h5KCkpKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAg
ICByZXN1bHRDb250YWluZXItPnNldEJvb2xlYW4oY29udGV4dC51bndyYXBDcnlwdG9LZXkod3Jh
cHBlZEtleSwga2V5Q29udGFpbmVyLT5idWZmZXIoKSkpOwotICAgICAgICBkb25lQ29udGFpbmVy
LT5zZXRCb29sZWFuKHRydWUpOwotICAgICAgICB3b3JrZXJNZXNzYWdpbmdQcm94eS0+cG9zdFRh
c2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbXShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KSB7Ci0gICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNv
bnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6
ZGVmYXVsdE1vZGUoKSk7CisgICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OworICAgIGJv
b2wgc3VjY2VzcyA9IGZhbHNlOworICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAg
dGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFsmc2VtYXBob3Jl
LCAmc3VjY2VzcywgJmtleSwgJndyYXBwZWRLZXldKGF1dG8mIGNvbnRleHQpIHsKKyAgICAgICAg
c3VjY2VzcyA9IGNvbnRleHQudW53cmFwQ3J5cHRvS2V5KHdyYXBwZWRLZXksIGtleSk7CisgICAg
ICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsKLQotICAgIGF1dG8gd2FpdFJlc3VsdCA9
IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsKLSAgICB3aGlsZSAoIWRvbmVDb250YWluZXIt
PmJvb2xlYW4oKSAmJiB3YWl0UmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCi0gICAg
ICAgIHdhaXRSZXN1bHQgPSB0aHJlYWQoKS5ydW5Mb29wKCkucnVuSW5Nb2RlKHRoaXMsIFdvcmtl
clJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwotCi0gICAgaWYgKGRvbmVDb250YWluZXItPmJvb2xl
YW4oKSkKLSAgICAgICAga2V5LnN3YXAoa2V5Q29udGFpbmVyLT5idWZmZXIoKSk7Ci0gICAgcmV0
dXJuIHJlc3VsdENvbnRhaW5lci0+Ym9vbGVhbigpOworICAgIHNlbWFwaG9yZS53YWl0KCk7Cisg
ICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0NSWVBUTykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBhNGFhNDNmY2I0NGQ0MDU2MTgyMzRmNzJmMDc2ZWM2YWMwNTg4Zjc5Li41NTE1N2Y4YWQx
NjNjMmE0NTc5NDQ1OTNkYjg2Y2I1NTlhMjQ3ODY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjEtMDctMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFj
T1Mgd2sxXSBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXIuaHRt
bCBpcyBhIGZsYWt5IGZhaWx1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzU0MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzk5Nzc2NjI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGlu
ZSB0ZXN0IG5vdyB0aGF0IHRoZSBvdXRwdXQgaXMgY29ycmVjdCAoYW5kIG5vbi1mbGFreSkuIEFs
c28gdW5tYXJrIHRoZSB0ZXN0IGFzIGZsYWt5LgorCisgICAgICAgICogY3J5cHRvL3dvcmtlcnMv
c3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXIu
aHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjEtMDctMDIgIEVyaWMgSHV0Y2hpc29uICA8ZWh1dGNoaXNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgWyBCaWdTdXIgUmVsZWFzZSBBcm02NCBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2UtdGltaW5nL3Jlc291cmNlX3RpbWluZy53b3JrZXIuaHRtbCBpcyBhIGZsYWtl
eSB0ZXh0IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1
YnRsZS9lYy1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKaW5k
ZXggNzViYzc5ZWU3YWUzMGY3YmE1Zjk5NTc0NzAwMmJiODBhZmI5YjQ2Yy4uMmY5YjNhMDZmZTMz
MTNlYWZkNDBmN2JjNDU0NGQwY2I1MDEwNzhkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxNCBAQCBUZXN0IHNlbmRpbmcgZWMgY3J5cHRvIGtl
eXMgdmlhIHBvc3RNZXNzYWdlIHRvIGEgd29ya2VyLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgogCiAKK1BBU1MgQWxsIGNoZWNrcyBwYXNzZWQgaW4gd29ya2VyIGZvciBwdWJsaWMga2V5CitQ
QVNTIHB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCitQQVNTIHB1YmxpY0tleS5leHRyYWN0YWJs
ZSBpcyB0cnVlCitQQVNTIHB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSBpcyAnRUNESCcKK1BBU1Mg
cHVibGljS2V5LmFsZ29yaXRobS5uYW1lZEN1cnZlIGlzICdQLTI1NicKK1BBU1MgcHVibGljS2V5
LnVzYWdlcyBpcyBbIF0KK1BBU1MgZXhwb3J0ZWRLZXkueCBpcyBwdWJsaWNLZXlKU09OLngKK1BB
U1MgZXhwb3J0ZWRLZXkueSBpcyBwdWJsaWNLZXlKU09OLnkKIFBBU1MgQWxsIGNoZWNrcyBwYXNz
ZWQgaW4gd29ya2VyIGZvciBwcml2YXRlIGtleQogUEFTUyBwcml2YXRlS2V5LnR5cGUgaXMgJ3By
aXZhdGUnCiBQQVNTIHByaXZhdGVLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQpAQCAtMTIsMTQgKzIw
LDYgQEAgUEFTUyBwcml2YXRlS2V5LnVzYWdlcyBpcyBbJ2Rlcml2ZUJpdHMnXQogUEFTUyBleHBv
cnRlZEtleS54IGlzIHByaXZhdGVLZXlKU09OLngKIFBBU1MgZXhwb3J0ZWRLZXkueSBpcyBwcml2
YXRlS2V5SlNPTi55CiBQQVNTIGV4cG9ydGVkS2V5LmQgaXMgcHJpdmF0ZUtleUpTT04uZAotUEFT
UyBBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHB1YmxpYyBrZXkKLVBBU1MgcHVibGlj
S2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1MgcHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUK
LVBBU1MgcHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdFQ0RIJwotUEFTUyBwdWJsaWNLZXku
YWxnb3JpdGhtLm5hbWVkQ3VydmUgaXMgJ1AtMjU2JwotUEFTUyBwdWJsaWNLZXkudXNhZ2VzIGlz
IFsgXQotUEFTUyBleHBvcnRlZEtleS54IGlzIHB1YmxpY0tleUpTT04ueAotUEFTUyBleHBvcnRl
ZEtleS55IGlzIHB1YmxpY0tleUpTT04ueQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vy
cy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVk
LnR4dAppbmRleCAwZWQ3NGY5ZmZmNGNjMWZmMmIyYTUxZWYwMjNkMmFkMDNmY2I2ODZmLi42ZTFk
NmZlNTMwODI3ZDQ5ZjhlYzlmNjZmNjE3MTIyNDczNGEzMmQwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9ocnNhLXBvc3RN
ZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTMsMTQgKzMsNiBAQCBUZXN0IHNlbmRpbmcg
aGFzaGVkIHJzYSBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UgdG8gYSB3b3JrZXIuCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3Jr
ZXIgZm9yIHByaXZhdGUga2V5Ci1QQVNTIHByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBB
U1MgcHJpdmF0ZUtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQotUEFTUyBwcml2YXRlS2V5LmFsZ29y
aXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1MgcHJpdmF0ZUtleS5hbGdvcml0
aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHJpdmF0ZUtl
eS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIHByaXZhdGVLZXku
YWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTI1NicKLVBBU1MgcHJpdmF0ZUtleS51c2FnZXMg
aXMgWydzaWduJ10KIFBBU1MgQWxsIGNoZWNrcyBwYXNzZWQgaW4gd29ya2VyIGZvciBwdWJsaWMg
a2V5CiBQQVNTIHB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCiBQQVNTIHB1YmxpY0tleS5leHRy
YWN0YWJsZSBpcyB0cnVlCkBAIC0xOSw2ICsxMSwxNCBAQCBQQVNTIHB1YmxpY0tleS5hbGdvcml0
aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CiBQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHVibGljS2V5
LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKIFBBU1MgcHVibGljS2V5LmFs
Z29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0yNTYnCiBQQVNTIHB1YmxpY0tleS51c2FnZXMgaXMg
Wyd2ZXJpZnknXQorUEFTUyBBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHByaXZhdGUg
a2V5CitQQVNTIHByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKK1BBU1MgcHJpdmF0ZUtleS5l
eHRyYWN0YWJsZSBpcyBmYWxzZQorUEFTUyBwcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdS
U0FTU0EtUEtDUzEtdjFfNScKK1BBU1MgcHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0
aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHJpdmF0ZUtleS5hbGdvcml0aG0ucHVi
bGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQQVNTIHByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gu
bmFtZSBpcyAnU0hBLTI1NicKK1BBU1MgcHJpdmF0ZUtleS51c2FnZXMgaXMgWydzaWduJ10KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29y
a2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVz
c2FnZS13b3JrZXIuaHRtbAppbmRleCBlOWVkOGM5MmUwMzA3ZTA4M2Y5YzQ2NzE4ZGFiOWJiY2U1
YTQ0MGRlLi5mZTk5NzUwNzA3NTI5NTg2NzJlOWJmNTlhZTQ5NDMyZGJhNmZkNmY0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13
b3JrZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1w
b3N0TWVzc2FnZS13b3JrZXIuaHRtbApAQCAtNDgsNiArNDgsOCBAQCB3b3JrZXIub25tZXNzYWdl
ID0gZnVuY3Rpb24oZXZ0KSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGlmIChwdWJsaWNLZXkgPSBldnQuZGF0YS5wdWJsaWNLZXkpIHsKKyAgICAgICAg
ICAgIGlmIChjb3VudCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQdWJsaWMga2V5IHNo
b3VsZCBoYXZlIGJlZW4gcmVjZWl2ZWQgZmlyc3QiKTsKICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IkFsbCBjaGVja3MgcGFzc2VkIGluIHdvcmtlciBmb3IgcHVibGljIGtleSIpOwogICAgICAgICAg
ICAgc2hvdWxkQmUoInB1YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7CiAgICAgICAgICAgICBz
aG91bGRCZSgicHVibGljS2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKQEAgLTU3LDYgKzU5LDgg
QEAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkgewogICAgICAgICAgICAgc2hvdWxk
QmUoInB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMjU2JyIpOwogICAgICAg
ICAgICAgc2hvdWxkQmUoInB1YmxpY0tleS51c2FnZXMiLCAiWyd2ZXJpZnknXSIpOwogICAgICAg
ICB9IGVsc2UgaWYgKHByaXZhdGVLZXkgPSBldnQuZGF0YS5wcml2YXRlS2V5KSB7CisgICAgICAg
ICAgICBpZiAoIWNvdW50KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByaXZhdGUga2V5
IHNob3VsZCBoYXZlIGJlZW4gcmVjZWl2ZWQgc2Vjb25kIik7CiAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHByaXZhdGUga2V5Iik7CiAgICAg
ICAgICAgICBzaG91bGRCZSgicHJpdmF0ZUtleS50eXBlIiwgIidwcml2YXRlJyIpOwogICAgICAg
ICAgICAgc2hvdWxkQmUoInByaXZhdGVLZXkuZXh0cmFjdGFibGUiLCAiZmFsc2UiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwOTEwYWMx
YTlhMzYxNzU3M2U4NGFkMjU3MWI3NTQwZjA3OTgwY2YxLi5jZTE4MWY3NDZmNTFhNWYyMGE2ZDMx
ZDgyZjFjMzQ5OWM0ZjNiM2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xMzEwLDUgKzEzMTAsMyBAQCB3ZWJraXQub3JnL2IvMjI3MDg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3Jv
bGwtdAogd2Via2l0Lm9yZy9iLzIyNzM2NiBbIEJpZ1N1ciBdIGh0dHAvdGVzdHMvcHJlbG9hZC9v
bmxvYWRfZXZlbnQuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8yMjc1MTYg
ZmFzdC9zaGFkb3ctZG9tL3N0eWxlLXJlc29sdmVyLXNoYXJpbmcuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCi0KLXdlYmtpdC5vcmcvYi8yMjc1NDAgWyBEZWJ1ZyBdIGNyeXB0by93b3JrZXJzL3N1YnRs
ZS9ocnNhLXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432820</attachid>
            <date>2021-07-02 14:00:53 -0700</date>
            <delta_ts>2021-07-02 14:13:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227540-20210702140052.patch</filename>
            <type>text/plain</type>
            <size>14583</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDczNzA1Njk2NDQzMDc0
MmIxMjkwODE2YzFmODE2Y2FhZDljOTA5Yi4uZmJlMTU0MTQzMmQ0YzllMGUxNGM5MzRkZjAzNjc1
MTZhYTJlZTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA3LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY09TIHdrMV0gY3J5cHRv
L3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgaXMgYSBmbGFreSBm
YWlsdXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mjc1NDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5OTc3NjYyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IHdhcyBzZW5kaW5nIDIg
bWVzc2FnZXMgdG8gdGhlIHdvcmtlciwgdGhlIGZpcnN0IG9uZSB3aXRoIHRoZSBwdWJsaWMga2V5
CisgICAgICAgIGFuZCB0aGUgc2Vjb25kIG9uZSBmb3IgdGhlIHByaXZhdGUga2V5LiBBcyB0aGUg
d29ya2VyIHdvdWxkIHJlY2VpdmUgdGhvc2UgbWVzc2FnZXMsCisgICAgICAgIGl0IHdvdWxkIGRv
IHNvbWUgY2hlY2tzIHN5bmNocm9ub3VzbHkgYW5kIHBvc3QgYSBtZXNzYWdlIGJhY2sgdG8gdGhl
IG1haW4gdGhyZWFkCisgICAgICAgIHNjcmlwdCB3aXRoIHRoZSByZXN1bHQuIEFzIHdlIGNvdWxk
IHNlZSBmcm9tIHRoZSB0ZXN0J3MgZXhwZWN0ZWQgcmVzdWx0cywgdGhlCisgICAgICAgIG1haW4g
dGhyZWFkIHNjcmlwdCB3b3VsZCB1c3VhbGx5IChhbHRob3VnaCBmbGFraWx5KSByZWNlaXZlIHRo
ZSByZXN1bHQgZm9yIHRoZQorICAgICAgICBwcml2YXRlIGtleSAqYmVmb3JlKiB0aGUgcmVzdWx0
IGZvciB0aGUgcHVibGljIGtleSwgd2hpY2ggd2FzIHdyb25nLgorCisgICAgICAgIFRoZSByZWFz
b24gZm9yIHRoaXMgd2FzIHRoYXQgc2VyaWFsaXppbmcgLyBkZXNlcmlhbGl6aW5nIHRoZSBjcnlw
dG8ga2V5IHdvdWxkCisgICAgICAgIHNwaW4gdGhlIHdvcmtlcidzIHJ1biBsb29wIGFuZCB0aGUg
d29ya2VyIHdvdWxkIHRodXMgcHJvY2VzcyBpbmNvbWluZyBtZXNzYWdlcworICAgICAgICB3aGls
ZSBzZXJpYWxpemluZyAvIGRlc2VyaWFsaXppbmcgYSBjcnlwdG8ga2V5IGZyb20gYSBwcmV2aW91
cyBtZXNzYWdlLgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB3ZSBub3cgdXNlIGEg
QmluYXJ5U2VtYXBob3JlIHRvIHdhaXQgZm9yIHRoZSBtYWluIHRocmVhZAorICAgICAgICB0byBm
aW5pc2ggdGhlIHdyYXBwaW5nIC8gdW53cmFwcGluZywgaW5zdGVhZCBvZiBzcGlubmluZyB0aGUg
cnVuIGxvb3AuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3RpbmcgdGVz
dC4KKworICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OndyYXBDcnlwdG9LZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnVud3JhcENyeXB0b0tleSk6CisKIDIwMjEtMDctMDIg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gS2Vl
cCB0cmFjayBvZiBib3RoIHRoZSBmaXhlZCBhbmQgcGVyY2VudCBtYXhpbXVtIHZhbHVlcyBmb3Ig
ZWFjaCBjb2x1bW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5j
cHAKaW5kZXggZWRmMDUyOWMxMThiMDY1ZmQ4YjJiNTA4OTkzYzEzZDg4NzRkY2UzNS4uYWNmNzAw
M2JkNzAxM2IyZTI1OTNlNzk2MWM0ZmFiYTc4MWI3M2NjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL3RocmVh
ZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBJbnNwZWN0b3I7CkBAIC0zOTAsNjkgKzM5MSwzMCBAQCB2b2lkIFdvcmtlckdsb2JhbFNj
b3BlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbgogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCiAKLWNsYXNzIENyeXB0b0J1ZmZlckNvbnRh
aW5lciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDcnlwdG9CdWZmZXJDb250YWluZXI+
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENyeXB0b0J1ZmZlckNvbnRhaW5lcj4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9CdWZmZXJDb250YWluZXIpOyB9Ci0gICAg
VmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIoKSB7IHJldHVybiBtX2J1ZmZlcjsgfQotCi1wcml2YXRl
OgotICAgIFZlY3Rvcjx1aW50OF90PiBtX2J1ZmZlcjsKLX07Ci0KLWNsYXNzIENyeXB0b0Jvb2xl
YW5Db250YWluZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q3J5cHRvQm9vbGVhbkNv
bnRhaW5lcj4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q3J5cHRvQm9vbGVhbkNvbnRhaW5l
cj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9Cb29sZWFuQ29udGFpbmVy
KTsgfQotICAgIGJvb2wgYm9vbGVhbigpIGNvbnN0IHsgcmV0dXJuIG1fYm9vbGVhbjsgfQotICAg
IHZvaWQgc2V0Qm9vbGVhbihib29sIGJvb2xlYW4pIHsgbV9ib29sZWFuID0gYm9vbGVhbjsgfQot
Ci1wcml2YXRlOgotICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1fYm9vbGVhbiB7IGZhbHNlIH07Ci19
OwotCiBib29sIFdvcmtlckdsb2JhbFNjb3BlOjp3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpCiB7Ci0gICAgUmVmPFdv
cmtlckdsb2JhbFNjb3BlPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBhdXRvIHJlc3VsdENv
bnRhaW5lciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8gZG9u
ZUNvbnRhaW5lciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8g
d3JhcHBlZEtleUNvbnRhaW5lciA9IENyeXB0b0J1ZmZlckNvbnRhaW5lcjo6Y3JlYXRlKCk7Ci0g
ICAgdGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFtyZXN1bHRD
b250YWluZXIsIGtleSwgd3JhcHBlZEtleUNvbnRhaW5lciwgZG9uZUNvbnRhaW5lciwgd29ya2Vy
TWVzc2FnaW5nUHJveHkgPSBtYWtlUmVmKGRvd25jYXN0PFdvcmtlck1lc3NhZ2luZ1Byb3h5Pih0
aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpKSldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpIHsKLSAgICAgICAgcmVzdWx0Q29udGFpbmVyLT5zZXRCb29sZWFuKGNvbnRleHQud3Jh
cENyeXB0b0tleShrZXksIHdyYXBwZWRLZXlDb250YWluZXItPmJ1ZmZlcigpKSk7Ci0gICAgICAg
IGRvbmVDb250YWluZXItPnNldEJvb2xlYW4odHJ1ZSk7Ci0gICAgICAgIHdvcmtlck1lc3NhZ2lu
Z1Byb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFtdKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsKLSAgICAgICAgICAgIEFTU0VSVF9VTlVT
RUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwotICAgICAgICB9LCBX
b3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0
aGlzIH07CisgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAgQmluYXJ5U2VtYXBob3JlIHNl
bWFwaG9yZTsKKyAgICB0aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2Fk
ZXIoWyZzZW1hcGhvcmUsICZzdWNjZXNzLCAma2V5LCAmd3JhcHBlZEtleV0oYXV0byYgY29udGV4
dCkgeworICAgICAgICBzdWNjZXNzID0gY29udGV4dC53cmFwQ3J5cHRvS2V5KGtleSwgd3JhcHBl
ZEtleSk7CisgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsKLQotICAgIGF1dG8g
d2FpdFJlc3VsdCA9IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsKLSAgICB3aGlsZSAoIWRv
bmVDb250YWluZXItPmJvb2xlYW4oKSAmJiB3YWl0UmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1p
bmF0ZWQpCi0gICAgICAgIHdhaXRSZXN1bHQgPSB0aHJlYWQoKS5ydW5Mb29wKCkucnVuSW5Nb2Rl
KHRoaXMsIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwotCi0gICAgaWYgKGRvbmVDb250
YWluZXItPmJvb2xlYW4oKSkKLSAgICAgICAgd3JhcHBlZEtleS5zd2FwKHdyYXBwZWRLZXlDb250
YWluZXItPmJ1ZmZlcigpKTsKLSAgICByZXR1cm4gcmVzdWx0Q29udGFpbmVyLT5ib29sZWFuKCk7
CisgICAgc2VtYXBob3JlLndhaXQoKTsKKyAgICByZXR1cm4gc3VjY2VzczsKIH0KIAogYm9vbCBX
b3JrZXJHbG9iYWxTY29wZTo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
d3JhcHBlZEtleSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpCiB7Ci0gICAgUmVmPFdvcmtlckdsb2Jh
bFNjb3BlPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBhdXRvIHJlc3VsdENvbnRhaW5lciA9
IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8gZG9uZUNvbnRhaW5l
ciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8ga2V5Q29udGFp
bmVyID0gQ3J5cHRvQnVmZmVyQ29udGFpbmVyOjpjcmVhdGUoKTsKLSAgICB0aHJlYWQoKS53b3Jr
ZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3Jlc3VsdENvbnRhaW5lciwgd3JhcHBl
ZEtleSwga2V5Q29udGFpbmVyLCBkb25lQ29udGFpbmVyLCB3b3JrZXJNZXNzYWdpbmdQcm94eSA9
IG1ha2VSZWYoZG93bmNhc3Q8V29ya2VyTWVzc2FnaW5nUHJveHk+KHRocmVhZCgpLndvcmtlckxv
YWRlclByb3h5KCkpKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAg
ICByZXN1bHRDb250YWluZXItPnNldEJvb2xlYW4oY29udGV4dC51bndyYXBDcnlwdG9LZXkod3Jh
cHBlZEtleSwga2V5Q29udGFpbmVyLT5idWZmZXIoKSkpOwotICAgICAgICBkb25lQ29udGFpbmVy
LT5zZXRCb29sZWFuKHRydWUpOwotICAgICAgICB3b3JrZXJNZXNzYWdpbmdQcm94eS0+cG9zdFRh
c2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbXShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KSB7Ci0gICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNv
bnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6
ZGVmYXVsdE1vZGUoKSk7CisgICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OworICAgIGJv
b2wgc3VjY2VzcyA9IGZhbHNlOworICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAg
dGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFsmc2VtYXBob3Jl
LCAmc3VjY2VzcywgJmtleSwgJndyYXBwZWRLZXldKGF1dG8mIGNvbnRleHQpIHsKKyAgICAgICAg
c3VjY2VzcyA9IGNvbnRleHQudW53cmFwQ3J5cHRvS2V5KHdyYXBwZWRLZXksIGtleSk7CisgICAg
ICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsKLQotICAgIGF1dG8gd2FpdFJlc3VsdCA9
IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsKLSAgICB3aGlsZSAoIWRvbmVDb250YWluZXIt
PmJvb2xlYW4oKSAmJiB3YWl0UmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCi0gICAg
ICAgIHdhaXRSZXN1bHQgPSB0aHJlYWQoKS5ydW5Mb29wKCkucnVuSW5Nb2RlKHRoaXMsIFdvcmtl
clJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwotCi0gICAgaWYgKGRvbmVDb250YWluZXItPmJvb2xl
YW4oKSkKLSAgICAgICAga2V5LnN3YXAoa2V5Q29udGFpbmVyLT5idWZmZXIoKSk7Ci0gICAgcmV0
dXJuIHJlc3VsdENvbnRhaW5lci0+Ym9vbGVhbigpOworICAgIHNlbWFwaG9yZS53YWl0KCk7Cisg
ICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0NSWVBUTykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBhNGFhNDNmY2I0NGQ0MDU2MTgyMzRmNzJmMDc2ZWM2YWMwNTg4Zjc5Li41NTE1N2Y4YWQx
NjNjMmE0NTc5NDQ1OTNkYjg2Y2I1NTlhMjQ3ODY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjEtMDctMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFj
T1Mgd2sxXSBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXIuaHRt
bCBpcyBhIGZsYWt5IGZhaWx1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzU0MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzk5Nzc2NjI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGlu
ZSB0ZXN0IG5vdyB0aGF0IHRoZSBvdXRwdXQgaXMgY29ycmVjdCAoYW5kIG5vbi1mbGFreSkuIEFs
c28gdW5tYXJrIHRoZSB0ZXN0IGFzIGZsYWt5LgorCisgICAgICAgICogY3J5cHRvL3dvcmtlcnMv
c3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXIu
aHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjEtMDctMDIgIEVyaWMgSHV0Y2hpc29uICA8ZWh1dGNoaXNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgWyBCaWdTdXIgUmVsZWFzZSBBcm02NCBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2UtdGltaW5nL3Jlc291cmNlX3RpbWluZy53b3JrZXIuaHRtbCBpcyBhIGZsYWtl
eSB0ZXh0IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1
YnRsZS9lYy1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKaW5k
ZXggNzViYzc5ZWU3YWUzMGY3YmE1Zjk5NTc0NzAwMmJiODBhZmI5YjQ2Yy4uMmY5YjNhMDZmZTMz
MTNlYWZkNDBmN2JjNDU0NGQwY2I1MDEwNzhkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxNCBAQCBUZXN0IHNlbmRpbmcgZWMgY3J5cHRvIGtl
eXMgdmlhIHBvc3RNZXNzYWdlIHRvIGEgd29ya2VyLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgogCiAKK1BBU1MgQWxsIGNoZWNrcyBwYXNzZWQgaW4gd29ya2VyIGZvciBwdWJsaWMga2V5CitQ
QVNTIHB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCitQQVNTIHB1YmxpY0tleS5leHRyYWN0YWJs
ZSBpcyB0cnVlCitQQVNTIHB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSBpcyAnRUNESCcKK1BBU1Mg
cHVibGljS2V5LmFsZ29yaXRobS5uYW1lZEN1cnZlIGlzICdQLTI1NicKK1BBU1MgcHVibGljS2V5
LnVzYWdlcyBpcyBbIF0KK1BBU1MgZXhwb3J0ZWRLZXkueCBpcyBwdWJsaWNLZXlKU09OLngKK1BB
U1MgZXhwb3J0ZWRLZXkueSBpcyBwdWJsaWNLZXlKU09OLnkKIFBBU1MgQWxsIGNoZWNrcyBwYXNz
ZWQgaW4gd29ya2VyIGZvciBwcml2YXRlIGtleQogUEFTUyBwcml2YXRlS2V5LnR5cGUgaXMgJ3By
aXZhdGUnCiBQQVNTIHByaXZhdGVLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQpAQCAtMTIsMTQgKzIw
LDYgQEAgUEFTUyBwcml2YXRlS2V5LnVzYWdlcyBpcyBbJ2Rlcml2ZUJpdHMnXQogUEFTUyBleHBv
cnRlZEtleS54IGlzIHByaXZhdGVLZXlKU09OLngKIFBBU1MgZXhwb3J0ZWRLZXkueSBpcyBwcml2
YXRlS2V5SlNPTi55CiBQQVNTIGV4cG9ydGVkS2V5LmQgaXMgcHJpdmF0ZUtleUpTT04uZAotUEFT
UyBBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHB1YmxpYyBrZXkKLVBBU1MgcHVibGlj
S2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1MgcHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUK
LVBBU1MgcHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdFQ0RIJwotUEFTUyBwdWJsaWNLZXku
YWxnb3JpdGhtLm5hbWVkQ3VydmUgaXMgJ1AtMjU2JwotUEFTUyBwdWJsaWNLZXkudXNhZ2VzIGlz
IFsgXQotUEFTUyBleHBvcnRlZEtleS54IGlzIHB1YmxpY0tleUpTT04ueAotUEFTUyBleHBvcnRl
ZEtleS55IGlzIHB1YmxpY0tleUpTT04ueQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vy
cy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVk
LnR4dAppbmRleCAwZWQ3NGY5ZmZmNGNjMWZmMmIyYTUxZWYwMjNkMmFkMDNmY2I2ODZmLi42ZTFk
NmZlNTMwODI3ZDQ5ZjhlYzlmNjZmNjE3MTIyNDczNGEzMmQwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9ocnNhLXBvc3RN
ZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTMsMTQgKzMsNiBAQCBUZXN0IHNlbmRpbmcg
aGFzaGVkIHJzYSBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UgdG8gYSB3b3JrZXIuCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3Jr
ZXIgZm9yIHByaXZhdGUga2V5Ci1QQVNTIHByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBB
U1MgcHJpdmF0ZUtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQotUEFTUyBwcml2YXRlS2V5LmFsZ29y
aXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1MgcHJpdmF0ZUtleS5hbGdvcml0
aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHJpdmF0ZUtl
eS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIHByaXZhdGVLZXku
YWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTI1NicKLVBBU1MgcHJpdmF0ZUtleS51c2FnZXMg
aXMgWydzaWduJ10KIFBBU1MgQWxsIGNoZWNrcyBwYXNzZWQgaW4gd29ya2VyIGZvciBwdWJsaWMg
a2V5CiBQQVNTIHB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCiBQQVNTIHB1YmxpY0tleS5leHRy
YWN0YWJsZSBpcyB0cnVlCkBAIC0xOSw2ICsxMSwxNCBAQCBQQVNTIHB1YmxpY0tleS5hbGdvcml0
aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CiBQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHVibGljS2V5
LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKIFBBU1MgcHVibGljS2V5LmFs
Z29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0yNTYnCiBQQVNTIHB1YmxpY0tleS51c2FnZXMgaXMg
Wyd2ZXJpZnknXQorUEFTUyBBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHByaXZhdGUg
a2V5CitQQVNTIHByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKK1BBU1MgcHJpdmF0ZUtleS5l
eHRyYWN0YWJsZSBpcyBmYWxzZQorUEFTUyBwcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdS
U0FTU0EtUEtDUzEtdjFfNScKK1BBU1MgcHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0
aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHJpdmF0ZUtleS5hbGdvcml0aG0ucHVi
bGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQQVNTIHByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gu
bmFtZSBpcyAnU0hBLTI1NicKK1BBU1MgcHJpdmF0ZUtleS51c2FnZXMgaXMgWydzaWduJ10KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29y
a2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVz
c2FnZS13b3JrZXIuaHRtbAppbmRleCBlOWVkOGM5MmUwMzA3ZTA4M2Y5YzQ2NzE4ZGFiOWJiY2U1
YTQ0MGRlLi5mZTk5NzUwNzA3NTI5NTg2NzJlOWJmNTlhZTQ5NDMyZGJhNmZkNmY0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13
b3JrZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1w
b3N0TWVzc2FnZS13b3JrZXIuaHRtbApAQCAtNDgsNiArNDgsOCBAQCB3b3JrZXIub25tZXNzYWdl
ID0gZnVuY3Rpb24oZXZ0KSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGlmIChwdWJsaWNLZXkgPSBldnQuZGF0YS5wdWJsaWNLZXkpIHsKKyAgICAgICAg
ICAgIGlmIChjb3VudCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQdWJsaWMga2V5IHNo
b3VsZCBoYXZlIGJlZW4gcmVjZWl2ZWQgZmlyc3QiKTsKICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IkFsbCBjaGVja3MgcGFzc2VkIGluIHdvcmtlciBmb3IgcHVibGljIGtleSIpOwogICAgICAgICAg
ICAgc2hvdWxkQmUoInB1YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7CiAgICAgICAgICAgICBz
aG91bGRCZSgicHVibGljS2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKQEAgLTU3LDYgKzU5LDgg
QEAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkgewogICAgICAgICAgICAgc2hvdWxk
QmUoInB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMjU2JyIpOwogICAgICAg
ICAgICAgc2hvdWxkQmUoInB1YmxpY0tleS51c2FnZXMiLCAiWyd2ZXJpZnknXSIpOwogICAgICAg
ICB9IGVsc2UgaWYgKHByaXZhdGVLZXkgPSBldnQuZGF0YS5wcml2YXRlS2V5KSB7CisgICAgICAg
ICAgICBpZiAoIWNvdW50KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByaXZhdGUga2V5
IHNob3VsZCBoYXZlIGJlZW4gcmVjZWl2ZWQgc2Vjb25kIik7CiAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHByaXZhdGUga2V5Iik7CiAgICAg
ICAgICAgICBzaG91bGRCZSgicHJpdmF0ZUtleS50eXBlIiwgIidwcml2YXRlJyIpOwogICAgICAg
ICAgICAgc2hvdWxkQmUoInByaXZhdGVLZXkuZXh0cmFjdGFibGUiLCAiZmFsc2UiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2Ut
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9y
c2EtcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAwYzM5NzkwMGZiZWU5Yzkz
Mjk5Njg2ZmQwMzVkNGQ3YjRiODVjODk4Li42MTkyMWM0MjE0ODIyMzIyZjg2M2RiYmIyYmNmYzNj
Y2M3MTBkZDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUv
cnNhLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0zLDYgKzMsMTYgQEAgVGVzdCBzZW5kaW5nIHJzYSBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3Nh
Z2UgdG8gYSB3b3JrZXIuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorUEFTUyBBbGwg
Y2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHB1YmxpYyBrZXkKK1BBU1MgcHVibGljS2V5LnR5
cGUgaXMgJ3B1YmxpYycKK1BBU1MgcHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mg
cHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FFUy1QS0NTMS12MV81JworUEFTUyBwdWJs
aWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAorUEFTUyBieXRlc1RvSGV4U3Ry
aW5nKHB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQQVNT
IHB1YmxpY0tleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCitQQVNTIHB1YmxpY0tleS51
c2FnZXMgaXMgWydlbmNyeXB0J10KK1BBU1MgZXhwb3J0ZWRLZXkubiBpcyBwdWJsaWNLZXlKU09O
Lm4KK1BBU1MgZXhwb3J0ZWRLZXkuZSBpcyBwdWJsaWNLZXlKU09OLmUKIFBBU1MgQWxsIGNoZWNr
cyBwYXNzZWQgaW4gd29ya2VyIGZvciBwcml2YXRlIGtleQogUEFTUyBwcml2YXRlS2V5LnR5cGUg
aXMgJ3ByaXZhdGUnCiBQQVNTIHByaXZhdGVLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQpAQCAtMTks
MTYgKzI5LDYgQEAgUEFTUyBleHBvcnRlZEtleS5xIGlzIHByaXZhdGVLZXlKU09OLnEKIFBBU1Mg
ZXhwb3J0ZWRLZXkuZHAgaXMgcHJpdmF0ZUtleUpTT04uZHAKIFBBU1MgZXhwb3J0ZWRLZXkuZHEg
aXMgcHJpdmF0ZUtleUpTT04uZHEKIFBBU1MgZXhwb3J0ZWRLZXkucWkgaXMgcHJpdmF0ZUtleUpT
T04ucWkKLVBBU1MgQWxsIGNoZWNrcyBwYXNzZWQgaW4gd29ya2VyIGZvciBwdWJsaWMga2V5Ci1Q
QVNTIHB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCi1QQVNTIHB1YmxpY0tleS5leHRyYWN0YWJs
ZSBpcyB0cnVlCi1QQVNTIHB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBRVMtUEtDUzEt
djFfNScKLVBBU1MgcHVibGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBB
U1MgYnl0ZXNUb0hleFN0cmluZyhwdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBp
cyAnMDEwMDAxJwotUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgot
UEFTUyBwdWJsaWNLZXkudXNhZ2VzIGlzIFsnZW5jcnlwdCddCi1QQVNTIGV4cG9ydGVkS2V5Lm4g
aXMgcHVibGljS2V5SlNPTi5uCi1QQVNTIGV4cG9ydGVkS2V5LmUgaXMgcHVibGljS2V5SlNPTi5l
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwOTEwYWMx
YTlhMzYxNzU3M2U4NGFkMjU3MWI3NTQwZjA3OTgwY2YxLi5jZTE4MWY3NDZmNTFhNWYyMGE2ZDMx
ZDgyZjFjMzQ5OWM0ZjNiM2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xMzEwLDUgKzEzMTAsMyBAQCB3ZWJraXQub3JnL2IvMjI3MDg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3Jv
bGwtdAogd2Via2l0Lm9yZy9iLzIyNzM2NiBbIEJpZ1N1ciBdIGh0dHAvdGVzdHMvcHJlbG9hZC9v
bmxvYWRfZXZlbnQuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8yMjc1MTYg
ZmFzdC9zaGFkb3ctZG9tL3N0eWxlLXJlc29sdmVyLXNoYXJpbmcuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCi0KLXdlYmtpdC5vcmcvYi8yMjc1NDAgWyBEZWJ1ZyBdIGNyeXB0by93b3JrZXJzL3N1YnRs
ZS9ocnNhLXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432821</attachid>
            <date>2021-07-02 14:13:41 -0700</date>
            <delta_ts>2021-07-02 15:26:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227540-20210702141340.patch</filename>
            <type>text/plain</type>
            <size>14583</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDczNzA1Njk2NDQzMDc0
MmIxMjkwODE2YzFmODE2Y2FhZDljOTA5Yi4uZmJlMTU0MTQzMmQ0YzllMGUxNGM5MzRkZjAzNjc1
MTZhYTJlZTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTA3LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY09TIHdrMV0gY3J5cHRv
L3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLmh0bWwgaXMgYSBmbGFreSBm
YWlsdXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mjc1NDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5OTc3NjYyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IHdhcyBzZW5kaW5nIDIg
bWVzc2FnZXMgdG8gdGhlIHdvcmtlciwgdGhlIGZpcnN0IG9uZSB3aXRoIHRoZSBwdWJsaWMga2V5
CisgICAgICAgIGFuZCB0aGUgc2Vjb25kIG9uZSBmb3IgdGhlIHByaXZhdGUga2V5LiBBcyB0aGUg
d29ya2VyIHdvdWxkIHJlY2VpdmUgdGhvc2UgbWVzc2FnZXMsCisgICAgICAgIGl0IHdvdWxkIGRv
IHNvbWUgY2hlY2tzIHN5bmNocm9ub3VzbHkgYW5kIHBvc3QgYSBtZXNzYWdlIGJhY2sgdG8gdGhl
IG1haW4gdGhyZWFkCisgICAgICAgIHNjcmlwdCB3aXRoIHRoZSByZXN1bHQuIEFzIHdlIGNvdWxk
IHNlZSBmcm9tIHRoZSB0ZXN0J3MgZXhwZWN0ZWQgcmVzdWx0cywgdGhlCisgICAgICAgIG1haW4g
dGhyZWFkIHNjcmlwdCB3b3VsZCB1c3VhbGx5IChhbHRob3VnaCBmbGFraWx5KSByZWNlaXZlIHRo
ZSByZXN1bHQgZm9yIHRoZQorICAgICAgICBwcml2YXRlIGtleSAqYmVmb3JlKiB0aGUgcmVzdWx0
IGZvciB0aGUgcHVibGljIGtleSwgd2hpY2ggd2FzIHdyb25nLgorCisgICAgICAgIFRoZSByZWFz
b24gZm9yIHRoaXMgd2FzIHRoYXQgc2VyaWFsaXppbmcgLyBkZXNlcmlhbGl6aW5nIHRoZSBjcnlw
dG8ga2V5IHdvdWxkCisgICAgICAgIHNwaW4gdGhlIHdvcmtlcidzIHJ1biBsb29wIGFuZCB0aGUg
d29ya2VyIHdvdWxkIHRodXMgcHJvY2VzcyBpbmNvbWluZyBtZXNzYWdlcworICAgICAgICB3aGls
ZSBzZXJpYWxpemluZyAvIGRlc2VyaWFsaXppbmcgYSBjcnlwdG8ga2V5IGZyb20gYSBwcmV2aW91
cyBtZXNzYWdlLgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB3ZSBub3cgdXNlIGEg
QmluYXJ5U2VtYXBob3JlIHRvIHdhaXQgZm9yIHRoZSBtYWluIHRocmVhZAorICAgICAgICB0byBm
aW5pc2ggdGhlIHdyYXBwaW5nIC8gdW53cmFwcGluZywgaW5zdGVhZCBvZiBzcGlubmluZyB0aGUg
cnVuIGxvb3AuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3RpbmcgdGVz
dC4KKworICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OndyYXBDcnlwdG9LZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OnVud3JhcENyeXB0b0tleSk6CisKIDIwMjEtMDctMDIg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gS2Vl
cCB0cmFjayBvZiBib3RoIHRoZSBmaXhlZCBhbmQgcGVyY2VudCBtYXhpbXVtIHZhbHVlcyBmb3Ig
ZWFjaCBjb2x1bW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5j
cHAKaW5kZXggZWRmMDUyOWMxMThiMDY1ZmQ4YjJiNTA4OTkzYzEzZDg4NzRkY2UzNS4uYWNmNzAw
M2JkNzAxM2IyZTI1OTNlNzk2MWM0ZmFiYTc4MWI3M2NjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL3RocmVh
ZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBJbnNwZWN0b3I7CkBAIC0zOTAsNjkgKzM5MSwzMCBAQCB2b2lkIFdvcmtlckdsb2JhbFNj
b3BlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbgogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCiAKLWNsYXNzIENyeXB0b0J1ZmZlckNvbnRh
aW5lciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDcnlwdG9CdWZmZXJDb250YWluZXI+
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENyeXB0b0J1ZmZlckNvbnRhaW5lcj4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9CdWZmZXJDb250YWluZXIpOyB9Ci0gICAg
VmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIoKSB7IHJldHVybiBtX2J1ZmZlcjsgfQotCi1wcml2YXRl
OgotICAgIFZlY3Rvcjx1aW50OF90PiBtX2J1ZmZlcjsKLX07Ci0KLWNsYXNzIENyeXB0b0Jvb2xl
YW5Db250YWluZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q3J5cHRvQm9vbGVhbkNv
bnRhaW5lcj4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q3J5cHRvQm9vbGVhbkNvbnRhaW5l
cj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9Cb29sZWFuQ29udGFpbmVy
KTsgfQotICAgIGJvb2wgYm9vbGVhbigpIGNvbnN0IHsgcmV0dXJuIG1fYm9vbGVhbjsgfQotICAg
IHZvaWQgc2V0Qm9vbGVhbihib29sIGJvb2xlYW4pIHsgbV9ib29sZWFuID0gYm9vbGVhbjsgfQot
Ci1wcml2YXRlOgotICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1fYm9vbGVhbiB7IGZhbHNlIH07Ci19
OwotCiBib29sIFdvcmtlckdsb2JhbFNjb3BlOjp3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpCiB7Ci0gICAgUmVmPFdv
cmtlckdsb2JhbFNjb3BlPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBhdXRvIHJlc3VsdENv
bnRhaW5lciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8gZG9u
ZUNvbnRhaW5lciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8g
d3JhcHBlZEtleUNvbnRhaW5lciA9IENyeXB0b0J1ZmZlckNvbnRhaW5lcjo6Y3JlYXRlKCk7Ci0g
ICAgdGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFtyZXN1bHRD
b250YWluZXIsIGtleSwgd3JhcHBlZEtleUNvbnRhaW5lciwgZG9uZUNvbnRhaW5lciwgd29ya2Vy
TWVzc2FnaW5nUHJveHkgPSBtYWtlUmVmKGRvd25jYXN0PFdvcmtlck1lc3NhZ2luZ1Byb3h5Pih0
aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpKSldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpIHsKLSAgICAgICAgcmVzdWx0Q29udGFpbmVyLT5zZXRCb29sZWFuKGNvbnRleHQud3Jh
cENyeXB0b0tleShrZXksIHdyYXBwZWRLZXlDb250YWluZXItPmJ1ZmZlcigpKSk7Ci0gICAgICAg
IGRvbmVDb250YWluZXItPnNldEJvb2xlYW4odHJ1ZSk7Ci0gICAgICAgIHdvcmtlck1lc3NhZ2lu
Z1Byb3h5LT5wb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFtdKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsKLSAgICAgICAgICAgIEFTU0VSVF9VTlVT
RUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwotICAgICAgICB9LCBX
b3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0
aGlzIH07CisgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAgQmluYXJ5U2VtYXBob3JlIHNl
bWFwaG9yZTsKKyAgICB0aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2Fk
ZXIoWyZzZW1hcGhvcmUsICZzdWNjZXNzLCAma2V5LCAmd3JhcHBlZEtleV0oYXV0byYgY29udGV4
dCkgeworICAgICAgICBzdWNjZXNzID0gY29udGV4dC53cmFwQ3J5cHRvS2V5KGtleSwgd3JhcHBl
ZEtleSk7CisgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsKLQotICAgIGF1dG8g
d2FpdFJlc3VsdCA9IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsKLSAgICB3aGlsZSAoIWRv
bmVDb250YWluZXItPmJvb2xlYW4oKSAmJiB3YWl0UmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1p
bmF0ZWQpCi0gICAgICAgIHdhaXRSZXN1bHQgPSB0aHJlYWQoKS5ydW5Mb29wKCkucnVuSW5Nb2Rl
KHRoaXMsIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwotCi0gICAgaWYgKGRvbmVDb250
YWluZXItPmJvb2xlYW4oKSkKLSAgICAgICAgd3JhcHBlZEtleS5zd2FwKHdyYXBwZWRLZXlDb250
YWluZXItPmJ1ZmZlcigpKTsKLSAgICByZXR1cm4gcmVzdWx0Q29udGFpbmVyLT5ib29sZWFuKCk7
CisgICAgc2VtYXBob3JlLndhaXQoKTsKKyAgICByZXR1cm4gc3VjY2VzczsKIH0KIAogYm9vbCBX
b3JrZXJHbG9iYWxTY29wZTo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
d3JhcHBlZEtleSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpCiB7Ci0gICAgUmVmPFdvcmtlckdsb2Jh
bFNjb3BlPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBhdXRvIHJlc3VsdENvbnRhaW5lciA9
IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8gZG9uZUNvbnRhaW5l
ciA9IENyeXB0b0Jvb2xlYW5Db250YWluZXI6OmNyZWF0ZSgpOwotICAgIGF1dG8ga2V5Q29udGFp
bmVyID0gQ3J5cHRvQnVmZmVyQ29udGFpbmVyOjpjcmVhdGUoKTsKLSAgICB0aHJlYWQoKS53b3Jr
ZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3Jlc3VsdENvbnRhaW5lciwgd3JhcHBl
ZEtleSwga2V5Q29udGFpbmVyLCBkb25lQ29udGFpbmVyLCB3b3JrZXJNZXNzYWdpbmdQcm94eSA9
IG1ha2VSZWYoZG93bmNhc3Q8V29ya2VyTWVzc2FnaW5nUHJveHk+KHRocmVhZCgpLndvcmtlckxv
YWRlclByb3h5KCkpKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAg
ICByZXN1bHRDb250YWluZXItPnNldEJvb2xlYW4oY29udGV4dC51bndyYXBDcnlwdG9LZXkod3Jh
cHBlZEtleSwga2V5Q29udGFpbmVyLT5idWZmZXIoKSkpOwotICAgICAgICBkb25lQ29udGFpbmVy
LT5zZXRCb29sZWFuKHRydWUpOwotICAgICAgICB3b3JrZXJNZXNzYWdpbmdQcm94eS0+cG9zdFRh
c2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbXShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KSB7Ci0gICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNv
bnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6
ZGVmYXVsdE1vZGUoKSk7CisgICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OworICAgIGJv
b2wgc3VjY2VzcyA9IGZhbHNlOworICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAg
dGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFsmc2VtYXBob3Jl
LCAmc3VjY2VzcywgJmtleSwgJndyYXBwZWRLZXldKGF1dG8mIGNvbnRleHQpIHsKKyAgICAgICAg
c3VjY2VzcyA9IGNvbnRleHQudW53cmFwQ3J5cHRvS2V5KHdyYXBwZWRLZXksIGtleSk7CisgICAg
ICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsKLQotICAgIGF1dG8gd2FpdFJlc3VsdCA9
IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsKLSAgICB3aGlsZSAoIWRvbmVDb250YWluZXIt
PmJvb2xlYW4oKSAmJiB3YWl0UmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCi0gICAg
ICAgIHdhaXRSZXN1bHQgPSB0aHJlYWQoKS5ydW5Mb29wKCkucnVuSW5Nb2RlKHRoaXMsIFdvcmtl
clJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwotCi0gICAgaWYgKGRvbmVDb250YWluZXItPmJvb2xl
YW4oKSkKLSAgICAgICAga2V5LnN3YXAoa2V5Q29udGFpbmVyLT5idWZmZXIoKSk7Ci0gICAgcmV0
dXJuIHJlc3VsdENvbnRhaW5lci0+Ym9vbGVhbigpOworICAgIHNlbWFwaG9yZS53YWl0KCk7Cisg
ICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0NSWVBUTykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBhNGFhNDNmY2I0NGQ0MDU2MTgyMzRmNzJmMDc2ZWM2YWMwNTg4Zjc5Li41NTE1N2Y4YWQx
NjNjMmE0NTc5NDQ1OTNkYjg2Y2I1NTlhMjQ3ODY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjEtMDctMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFj
T1Mgd2sxXSBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXIuaHRt
bCBpcyBhIGZsYWt5IGZhaWx1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzU0MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzk5Nzc2NjI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGlu
ZSB0ZXN0IG5vdyB0aGF0IHRoZSBvdXRwdXQgaXMgY29ycmVjdCAoYW5kIG5vbi1mbGFreSkuIEFs
c28gdW5tYXJrIHRoZSB0ZXN0IGFzIGZsYWt5LgorCisgICAgICAgICogY3J5cHRvL3dvcmtlcnMv
c3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXIu
aHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjEtMDctMDIgIEVyaWMgSHV0Y2hpc29uICA8ZWh1dGNoaXNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgWyBCaWdTdXIgUmVsZWFzZSBBcm02NCBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2UtdGltaW5nL3Jlc291cmNlX3RpbWluZy53b3JrZXIuaHRtbCBpcyBhIGZsYWtl
eSB0ZXh0IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1
YnRsZS9lYy1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKaW5k
ZXggNzViYzc5ZWU3YWUzMGY3YmE1Zjk5NTc0NzAwMmJiODBhZmI5YjQ2Yy4uMmY5YjNhMDZmZTMz
MTNlYWZkNDBmN2JjNDU0NGQwY2I1MDEwNzhkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjLXBvc3RNZXNzYWdlLXdvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTMsNiArMywxNCBAQCBUZXN0IHNlbmRpbmcgZWMgY3J5cHRvIGtl
eXMgdmlhIHBvc3RNZXNzYWdlIHRvIGEgd29ya2VyLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgogCiAKK1BBU1MgQWxsIGNoZWNrcyBwYXNzZWQgaW4gd29ya2VyIGZvciBwdWJsaWMga2V5CitQ
QVNTIHB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCitQQVNTIHB1YmxpY0tleS5leHRyYWN0YWJs
ZSBpcyB0cnVlCitQQVNTIHB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSBpcyAnRUNESCcKK1BBU1Mg
cHVibGljS2V5LmFsZ29yaXRobS5uYW1lZEN1cnZlIGlzICdQLTI1NicKK1BBU1MgcHVibGljS2V5
LnVzYWdlcyBpcyBbIF0KK1BBU1MgZXhwb3J0ZWRLZXkueCBpcyBwdWJsaWNLZXlKU09OLngKK1BB
U1MgZXhwb3J0ZWRLZXkueSBpcyBwdWJsaWNLZXlKU09OLnkKIFBBU1MgQWxsIGNoZWNrcyBwYXNz
ZWQgaW4gd29ya2VyIGZvciBwcml2YXRlIGtleQogUEFTUyBwcml2YXRlS2V5LnR5cGUgaXMgJ3By
aXZhdGUnCiBQQVNTIHByaXZhdGVLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQpAQCAtMTIsMTQgKzIw
LDYgQEAgUEFTUyBwcml2YXRlS2V5LnVzYWdlcyBpcyBbJ2Rlcml2ZUJpdHMnXQogUEFTUyBleHBv
cnRlZEtleS54IGlzIHByaXZhdGVLZXlKU09OLngKIFBBU1MgZXhwb3J0ZWRLZXkueSBpcyBwcml2
YXRlS2V5SlNPTi55CiBQQVNTIGV4cG9ydGVkS2V5LmQgaXMgcHJpdmF0ZUtleUpTT04uZAotUEFT
UyBBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHB1YmxpYyBrZXkKLVBBU1MgcHVibGlj
S2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1MgcHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUK
LVBBU1MgcHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdFQ0RIJwotUEFTUyBwdWJsaWNLZXku
YWxnb3JpdGhtLm5hbWVkQ3VydmUgaXMgJ1AtMjU2JwotUEFTUyBwdWJsaWNLZXkudXNhZ2VzIGlz
IFsgXQotUEFTUyBleHBvcnRlZEtleS54IGlzIHB1YmxpY0tleUpTT04ueAotUEFTUyBleHBvcnRl
ZEtleS55IGlzIHB1YmxpY0tleUpTT04ueQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vy
cy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVk
LnR4dAppbmRleCAwZWQ3NGY5ZmZmNGNjMWZmMmIyYTUxZWYwMjNkMmFkMDNmY2I2ODZmLi42ZTFk
NmZlNTMwODI3ZDQ5ZjhlYzlmNjZmNjE3MTIyNDczNGEzMmQwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9ocnNhLXBvc3RN
ZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTMsMTQgKzMsNiBAQCBUZXN0IHNlbmRpbmcg
aGFzaGVkIHJzYSBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UgdG8gYSB3b3JrZXIuCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3Jr
ZXIgZm9yIHByaXZhdGUga2V5Ci1QQVNTIHByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBB
U1MgcHJpdmF0ZUtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQotUEFTUyBwcml2YXRlS2V5LmFsZ29y
aXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1MgcHJpdmF0ZUtleS5hbGdvcml0
aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHJpdmF0ZUtl
eS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIHByaXZhdGVLZXku
YWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTI1NicKLVBBU1MgcHJpdmF0ZUtleS51c2FnZXMg
aXMgWydzaWduJ10KIFBBU1MgQWxsIGNoZWNrcyBwYXNzZWQgaW4gd29ya2VyIGZvciBwdWJsaWMg
a2V5CiBQQVNTIHB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCiBQQVNTIHB1YmxpY0tleS5leHRy
YWN0YWJsZSBpcyB0cnVlCkBAIC0xOSw2ICsxMSwxNCBAQCBQQVNTIHB1YmxpY0tleS5hbGdvcml0
aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CiBQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHVibGljS2V5
LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKIFBBU1MgcHVibGljS2V5LmFs
Z29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0yNTYnCiBQQVNTIHB1YmxpY0tleS51c2FnZXMgaXMg
Wyd2ZXJpZnknXQorUEFTUyBBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHByaXZhdGUg
a2V5CitQQVNTIHByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKK1BBU1MgcHJpdmF0ZUtleS5l
eHRyYWN0YWJsZSBpcyBmYWxzZQorUEFTUyBwcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdS
U0FTU0EtUEtDUzEtdjFfNScKK1BBU1MgcHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0
aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocHJpdmF0ZUtleS5hbGdvcml0aG0ucHVi
bGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQQVNTIHByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gu
bmFtZSBpcyAnU0hBLTI1NicKK1BBU1MgcHJpdmF0ZUtleS51c2FnZXMgaXMgWydzaWduJ10KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2hyc2EtcG9zdE1lc3NhZ2Utd29y
a2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVz
c2FnZS13b3JrZXIuaHRtbAppbmRleCBlOWVkOGM5MmUwMzA3ZTA4M2Y5YzQ2NzE4ZGFiOWJiY2U1
YTQ0MGRlLi5mZTk5NzUwNzA3NTI5NTg2NzJlOWJmNTlhZTQ5NDMyZGJhNmZkNmY0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1wb3N0TWVzc2FnZS13
b3JrZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvaHJzYS1w
b3N0TWVzc2FnZS13b3JrZXIuaHRtbApAQCAtNDgsNiArNDgsOCBAQCB3b3JrZXIub25tZXNzYWdl
ID0gZnVuY3Rpb24oZXZ0KSB7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGlmIChwdWJsaWNLZXkgPSBldnQuZGF0YS5wdWJsaWNLZXkpIHsKKyAgICAgICAg
ICAgIGlmIChjb3VudCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQdWJsaWMga2V5IHNo
b3VsZCBoYXZlIGJlZW4gcmVjZWl2ZWQgZmlyc3QiKTsKICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IkFsbCBjaGVja3MgcGFzc2VkIGluIHdvcmtlciBmb3IgcHVibGljIGtleSIpOwogICAgICAgICAg
ICAgc2hvdWxkQmUoInB1YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7CiAgICAgICAgICAgICBz
aG91bGRCZSgicHVibGljS2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKQEAgLTU3LDYgKzU5LDgg
QEAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkgewogICAgICAgICAgICAgc2hvdWxk
QmUoInB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMjU2JyIpOwogICAgICAg
ICAgICAgc2hvdWxkQmUoInB1YmxpY0tleS51c2FnZXMiLCAiWyd2ZXJpZnknXSIpOwogICAgICAg
ICB9IGVsc2UgaWYgKHByaXZhdGVLZXkgPSBldnQuZGF0YS5wcml2YXRlS2V5KSB7CisgICAgICAg
ICAgICBpZiAoIWNvdW50KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByaXZhdGUga2V5
IHNob3VsZCBoYXZlIGJlZW4gcmVjZWl2ZWQgc2Vjb25kIik7CiAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJBbGwgY2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHByaXZhdGUga2V5Iik7CiAgICAg
ICAgICAgICBzaG91bGRCZSgicHJpdmF0ZUtleS50eXBlIiwgIidwcml2YXRlJyIpOwogICAgICAg
ICAgICAgc2hvdWxkQmUoInByaXZhdGVLZXkuZXh0cmFjdGFibGUiLCAiZmFsc2UiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtcG9zdE1lc3NhZ2Ut
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9y
c2EtcG9zdE1lc3NhZ2Utd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAwYzM5NzkwMGZiZWU5Yzkz
Mjk5Njg2ZmQwMzVkNGQ3YjRiODVjODk4Li42MTkyMWM0MjE0ODIyMzIyZjg2M2RiYmIyYmNmYzNj
Y2M3MTBkZDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUv
cnNhLXBvc3RNZXNzYWdlLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1wb3N0TWVzc2FnZS13b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0zLDYgKzMsMTYgQEAgVGVzdCBzZW5kaW5nIHJzYSBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3Nh
Z2UgdG8gYSB3b3JrZXIuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorUEFTUyBBbGwg
Y2hlY2tzIHBhc3NlZCBpbiB3b3JrZXIgZm9yIHB1YmxpYyBrZXkKK1BBU1MgcHVibGljS2V5LnR5
cGUgaXMgJ3B1YmxpYycKK1BBU1MgcHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1Mg
cHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FFUy1QS0NTMS12MV81JworUEFTUyBwdWJs
aWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAorUEFTUyBieXRlc1RvSGV4U3Ry
aW5nKHB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQQVNT
IHB1YmxpY0tleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCitQQVNTIHB1YmxpY0tleS51
c2FnZXMgaXMgWydlbmNyeXB0J10KK1BBU1MgZXhwb3J0ZWRLZXkubiBpcyBwdWJsaWNLZXlKU09O
Lm4KK1BBU1MgZXhwb3J0ZWRLZXkuZSBpcyBwdWJsaWNLZXlKU09OLmUKIFBBU1MgQWxsIGNoZWNr
cyBwYXNzZWQgaW4gd29ya2VyIGZvciBwcml2YXRlIGtleQogUEFTUyBwcml2YXRlS2V5LnR5cGUg
aXMgJ3ByaXZhdGUnCiBQQVNTIHByaXZhdGVLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQpAQCAtMTks
MTYgKzI5LDYgQEAgUEFTUyBleHBvcnRlZEtleS5xIGlzIHByaXZhdGVLZXlKU09OLnEKIFBBU1Mg
ZXhwb3J0ZWRLZXkuZHAgaXMgcHJpdmF0ZUtleUpTT04uZHAKIFBBU1MgZXhwb3J0ZWRLZXkuZHEg
aXMgcHJpdmF0ZUtleUpTT04uZHEKIFBBU1MgZXhwb3J0ZWRLZXkucWkgaXMgcHJpdmF0ZUtleUpT
T04ucWkKLVBBU1MgQWxsIGNoZWNrcyBwYXNzZWQgaW4gd29ya2VyIGZvciBwdWJsaWMga2V5Ci1Q
QVNTIHB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCi1QQVNTIHB1YmxpY0tleS5leHRyYWN0YWJs
ZSBpcyB0cnVlCi1QQVNTIHB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBRVMtUEtDUzEt
djFfNScKLVBBU1MgcHVibGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBB
U1MgYnl0ZXNUb0hleFN0cmluZyhwdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBp
cyAnMDEwMDAxJwotUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgot
UEFTUyBwdWJsaWNLZXkudXNhZ2VzIGlzIFsnZW5jcnlwdCddCi1QQVNTIGV4cG9ydGVkS2V5Lm4g
aXMgcHVibGljS2V5SlNPTi5uCi1QQVNTIGV4cG9ydGVkS2V5LmUgaXMgcHVibGljS2V5SlNPTi5l
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwOTEwYWMx
YTlhMzYxNzU3M2U4NGFkMjU3MWI3NTQwZjA3OTgwY2YxLi5jZTE4MWY3NDZmNTFhNWYyMGE2ZDMx
ZDgyZjFjMzQ5OWM0ZjNiM2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xMzEwLDUgKzEzMTAsMyBAQCB3ZWJraXQub3JnL2IvMjI3MDg1
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3Jv
bGwtdAogd2Via2l0Lm9yZy9iLzIyNzM2NiBbIEJpZ1N1ciBdIGh0dHAvdGVzdHMvcHJlbG9hZC9v
bmxvYWRfZXZlbnQuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8yMjc1MTYg
ZmFzdC9zaGFkb3ctZG9tL3N0eWxlLXJlc29sdmVyLXNoYXJpbmcuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCi0KLXdlYmtpdC5vcmcvYi8yMjc1NDAgWyBEZWJ1ZyBdIGNyeXB0by93b3JrZXJzL3N1YnRs
ZS9ocnNhLXBvc3RNZXNzYWdlLXdvcmtlci5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>