<?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>164746</bug_id>
          
          <creation_ts>2016-11-14 15:59:26 -0800</creation_ts>
          <short_desc>Update SubtleCrypto::wrapKey to match the latest spec</short_desc>
          <delta_ts>2016-11-30 14:26:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>160883</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rob</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1251215</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-11-14 15:59:26 -0800</bug_when>
    <thetext>Update SubtleCrypto::wrapKey to match the latest spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251253</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-11-14 16:52:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/29258160&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254420</commentid>
    <comment_count>2</comment_count>
      <attachid>295626</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-11-29 13:13:51 -0800</bug_when>
    <thetext>Created attachment 295626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254422</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-29 13:15:36 -0800</bug_when>
    <thetext>Attachment 295626 did not pass style-queue:


ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.cpp:161:  CryptoAlgorithmAES_KW::wrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp:36:  CryptoAlgorithmAES_KW::platformWrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_KWMac.cpp:39:  wrapKeyAES_KW is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/mac/CryptoAlgorithmAES_KWMac.cpp:50:  CryptoAlgorithmAES_KW::platformWrapKey is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 4 in 33 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254435</commentid>
    <comment_count>4</comment_count>
      <attachid>295626</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-11-29 13:28:23 -0800</bug_when>
    <thetext>Comment on attachment 295626
Patch

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

r=me

&gt; Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp:651
&gt; +    supportExportKeyThrow(state, key-&gt;algorithmIdentifier());

Is it okay that we are changing from this promise rejection to a DOM exception? Is that per the new specification?

&gt; LayoutTests/imported/w3c/WebCryptoAPI/idlharness-expected.txt:67
&gt; +PASS SubtleCrypto interface: calling wrapKey(KeyFormat,CryptoKey,CryptoKey,AlgorithmIdentifier) on crypto.subtle with too few arguments must throw TypeError 

Ever closer! I hope to see &apos;unwrapKey&apos; soon! :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254452</commentid>
    <comment_count>5</comment_count>
      <attachid>295626</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-11-29 13:58:53 -0800</bug_when>
    <thetext>Comment on attachment 295626
Patch

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

Thanks Brent for r+ my patch.

&gt;&gt; Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp:651
&gt;&gt; +    supportExportKeyThrow(state, key-&gt;algorithmIdentifier());
&gt; 
&gt; Is it okay that we are changing from this promise rejection to a DOM exception? Is that per the new specification?

Don&apos;t worry. There is a catcher in callPromiseFunction to convert any thrown exceptions to rejected promises.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254983</commentid>
    <comment_count>6</comment_count>
      <attachid>295626</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-30 14:26:31 -0800</bug_when>
    <thetext>Comment on attachment 295626
Patch

Clearing flags on attachment: 295626

Committed r209155: &lt;http://trac.webkit.org/changeset/209155&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254985</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-30 14:26:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295626</attachid>
            <date>2016-11-29 13:13:51 -0800</date>
            <delta_ts>2016-11-30 14:26:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164746-20161129131324.patch</filename>
            <type>text/plain</type>
            <size>58050</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdmOTllMmE4ZDg5MWE0
OTljYzI1OTBjNDRmN2RhODk0Y2NmYmFlMC4uZGVjMmU0NmUwZjIwMWM1N2YwYmJkY2JhODVhNjc4
MjVmNzU5YTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTExLTI5ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFN1YnRsZUNy
eXB0bzo6d3JhcEtleSB0byBtYXRjaCB0aGUgbGF0ZXN0IHNwZWMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDc0NgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjkyNTgxNjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIGZvbGxvd2luZyBmZXcgdGhpbmdzOgorICAgICAgICAx
LiBJdCB1cGRhdGVzIHRoZSBTdWJ0bGVDcnlwdG86OndyYXBLZXkgbWV0aG9kIHRvIG1hdGNoIHRo
ZSBsYXRlc3Qgc3BlYzoKKyAgICAgICAgICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL1dlYkNyeXB0
b0FQSS8jU3VidGxlQ3J5cHRvLW1ldGhvZC13cmFwS2V5LgorICAgICAgICAgICBJdCBhbHNvIHJl
ZmVycyB0byB0aGUgbGF0ZXN0IEVkaXRvcidzIERyYWZ0IHRvIGEgY2VydGFpbiBkZWdyZWU6Cisg
ICAgICAgICAgIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjcnlwdG8vT3ZlcnZpZXcuaHRtbCNT
dWJ0bGVDcnlwdG8tbWV0aG9kLXdyYXBLZXkuCisgICAgICAgIDIuIEl0IGltcGxlbWVudHMgd3Jh
cEtleSBvcGVyYXRpb25zIG9mIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtczogQUVTLUtXLgorICAg
ICAgICAzLiBJdCBhbHNvIHJlcGxhY2VzIEpTU3VidGxlQ3J5cHRvKiB3aXRoIGF1dG8gaW4gYWxs
IHByb21pc2UgZnVuY3Rpb25zLgorCisgICAgICAgIFRlc3RzOiBjcnlwdG8vc3VidGxlL2Flcy1j
YmMtaW1wb3J0LWtleS13cmFwLWp3ay1yc2Eta2V5LXByaXZhdGUuaHRtbAorICAgICAgICAgICAg
ICAgY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1rZXktd3JhcC1qd2stcnNhLWtleS1wdWJs
aWMuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3N1YnRsZS9hZXMta3ctaW1wb3J0LWtleS13
cmFwLXJhdy1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3N1YnRsZS9hZXMta3ctd3Jh
cC1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3N1
YnRsZS9yc2Etb2FlcC1pbXBvcnQta2V5LXdyYXAtandrLW9jdC1rZXkuaHRtbAorICAgICAgICAg
ICAgICAgY3J5cHRvL3N1YnRsZS93cmFwS2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwKKyAg
ICAgICAgICAgICAgIGNyeXB0by93b3JrZXJzL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1rZXktd3Jh
cC1rZXkuaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1rdy1p
bXBvcnQta2V5LXdyYXAta2V5Lmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by93b3JrZXJzL3N1
YnRsZS9yc2Etb2FlcC1pbXBvcnQta2V5LXdyYXAta2V5Lmh0bWwKKworICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vcm1h
bGl6ZUNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6c3VwcG9y
dEV4cG9ydEtleVRocm93KToKKyAgICAgICAgKFdlYkNvcmU6OmpzU3VidGxlQ3J5cHRvRnVuY3Rp
b25FbmNyeXB0UHJvbWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1N1YnRsZUNyeXB0b0Z1bmN0
aW9uRGVjcnlwdFByb21pc2UpOgorICAgICAgICAoV2ViQ29yZTo6anNTdWJ0bGVDcnlwdG9GdW5j
dGlvbkV4cG9ydEtleVByb21pc2UpOgorICAgICAgICAoV2ViQ29yZTo6anNTdWJ0bGVDcnlwdG9G
dW5jdGlvbldyYXBLZXlQcm9taXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxlQ3J5cHRv
Ojp3cmFwS2V5KToKKyAgICAgICAgKiBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobTo6d3JhcEtleSk6CisgICAgICAgICogY3J5cHRv
L0NyeXB0b0FsZ29yaXRobS5oOgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uaWRsOgor
ICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfS1c6OndyYXBLZXkpOgorICAgICAg
ICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oOgorICAgICAgICAq
IGNyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR251VExTLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1XcmFwS2V5KToKKyAgICAg
ICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19LV01hYy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp3cmFwS2V5QUVTX0tXKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRo
bUFFU19LVzo6cGxhdGZvcm1XcmFwS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29y
aXRobUFFU19LVzo6cGxhdGZvcm1FbmNyeXB0KToKKwogMjAxNi0xMS0yNyAgQ3NhYmEgT3N6dHJv
Z29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB2YXJpb3VzIC0tbWluaW1h
bCBidWlsZCBpc3N1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3Vi
dGxlQ3J5cHRvQ3VzdG9tLmNwcAppbmRleCBkMWEyNjcyZTZiMTRjYzQ1NzUzYzZlYWFjYmExNzdk
OTAxMmE3OTc1Li4wNjg2M2Y0YzAyNjAzNjY0ZDM1MmE3OGZhYTM5NDVhYjdmYmFlNDM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20u
Y3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvSXRlcmF0b3JPcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0Fy
cmF5Lmg+CisjaW5jbHVkZSA8cnVudGltZS9KU09OT2JqZWN0Lmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKQEAgLTU3LDYgKzU4LDcgQEAgZW51bSBjbGFzcyBPcGVyYXRpb25zIHsKICAgICBE
aWdlc3QsCiAgICAgR2VuZXJhdGVLZXksCiAgICAgSW1wb3J0S2V5LAorICAgIFdyYXBLZXksCiB9
OwogCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IG5v
cm1hbGl6ZUNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMoRXhlY1N0YXRlJiwgSlNWYWx1ZSwgT3Bl
cmF0aW9ucyk7CkBAIC0yMDksNiArMjExLDE2IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gbm9ybWFsaXplQ3J5cHRvQWxnb3JpdGhtUGFyYW1lCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBPcGVyYXRpb25zOjpXcmFwS2V5OgorICAgICAgICAgICAg
c3dpdGNoICgqaWRlbnRpZmllcikgeworICAgICAgICAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpBRVNfS1c6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc3RkOjptYWtlX3Vu
aXF1ZTxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPihwYXJhbXMpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBzZXRET01FeGNl
cHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7CisgICAgICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CkBAIC00MTYsNiArNDI4LDI2IEBAIHN0YXRpYyBWZWN0b3I8dWludDhfdD4g
dG9WZWN0b3IoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKICAgICByZXR1cm4gZGF0
YVZlY3RvcjsKIH0KIAorc3RhdGljIHZvaWQgc3VwcG9ydEV4cG9ydEtleVRocm93KEV4ZWNTdGF0
ZSYgc3RhdGUsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBz
d2l0Y2ggKGlkZW50aWZpZXIpIHsKKyAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlJTQUVTX1BLQ1MxX3YxXzU6CisgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpS
U0FTU0FfUEtDUzFfdjFfNToKKyAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJT
QV9QU1M6CisgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUDoKKyAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DVFI6CisgICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOgorICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6QUVTX0NNQUM6CisgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpBRVNfR0NNOgorICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NGQjoK
KyAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVzoKKyAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM6CisgICAgICAgIHJldHVybjsKKyAgICBkZWZh
dWx0OgorICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBOT1RfU1VQUE9SVEVEX0VSUik7
CisgICAgfQorfQorCiBzdGF0aWMgdm9pZCBqc1N1YnRsZUNyeXB0b0Z1bmN0aW9uRW5jcnlwdFBy
b21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQog
ewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CkBAIC00NTYsNyArNDg4LDcgQEAgc3RhdGljIHZv
aWQganNTdWJ0bGVDcnlwdG9GdW5jdGlvbkVuY3J5cHRQcm9taXNlKEV4ZWNTdGF0ZSYgc3RhdGUs
IFJlZjxEZWZlcnJlZFAKICAgICAgICAgcmVqZWN0V2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGNhcHR1
cmVkUHJvbWlzZSksIGVjKTsKICAgICB9OwogCi0gICAgSlNTdWJ0bGVDcnlwdG8qIHN1YnRsZSA9
IGpzRHluYW1pY0Rvd25jYXN0PEpTU3VidGxlQ3J5cHRvKj4oc3RhdGUudGhpc1ZhbHVlKCkpOwor
ICAgIGF1dG8gc3VidGxlID0ganNEeW5hbWljRG93bmNhc3Q8SlNTdWJ0bGVDcnlwdG8qPihzdGF0
ZS50aGlzVmFsdWUoKSk7CiAgICAgQVNTRVJUKHN1YnRsZSk7CiAgICAgYWxnb3JpdGhtLT5lbmNy
eXB0KFdURk1vdmUocGFyYW1zKSwga2V5LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUoZGF0YSks
IFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGV4Y2VwdGlvbkNhbGxiYWNrKSwgKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKCZzdGF0ZSksIHN1YnRsZS0+d3JhcHBlZCgpLndv
cmtRdWV1ZSgpKTsKIH0KQEAgLTUwMSw3ICs1MzMsNyBAQCBzdGF0aWMgdm9pZCBqc1N1YnRsZUNy
eXB0b0Z1bmN0aW9uRGVjcnlwdFByb21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwgUmVmPERlZmVycmVk
UAogICAgICAgICByZWplY3RXaXRoRXhjZXB0aW9uKFdURk1vdmUoY2FwdHVyZWRQcm9taXNlKSwg
ZWMpOwogICAgIH07CiAKLSAgICBKU1N1YnRsZUNyeXB0byogc3VidGxlID0ganNEeW5hbWljRG93
bmNhc3Q8SlNTdWJ0bGVDcnlwdG8qPihzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgYXV0byBzdWJ0
bGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1N1YnRsZUNyeXB0byo+KHN0YXRlLnRoaXNWYWx1ZSgp
KTsKICAgICBBU1NFUlQoc3VidGxlKTsKICAgICBhbGdvcml0aG0tPmRlY3J5cHQoV1RGTW92ZShw
YXJhbXMpLCBrZXkucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShkYXRhKSwgV1RGTW92ZShjYWxs
YmFjayksIFdURk1vdmUoZXhjZXB0aW9uQ2FsbGJhY2spLCAqc2NyaXB0RXhlY3V0aW9uQ29udGV4
dEZyb21FeGVjU3RhdGUoJnN0YXRlKSwgc3VidGxlLT53cmFwcGVkKCkud29ya1F1ZXVlKCkpOwog
fQpAQCAtNjE2LDIzICs2NDgsOCBAQCBzdGF0aWMgdm9pZCBqc1N1YnRsZUNyeXB0b0Z1bmN0aW9u
RXhwb3J0S2V5UHJvbWlzZShFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVmZXJyZQogICAgIGF1dG8g
a2V5ID0gdG9DcnlwdG9LZXkoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0gICAgc3dpdGNoIChrZXkt
PmFsZ29yaXRobUlkZW50aWZpZXIoKSkgewotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6UlNBRVNfUEtDUzFfdjFfNToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlJTQVNTQV9QS0NTMV92MV81OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6UlNBX1BTUzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQ
OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NUUjoKLSAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM6Ci0gICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpBRVNfQ01BQzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkFFU19HQ006Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNf
Q0ZCOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzoKLSAgICAgICAgYnJlYWs7Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5PVF9TVVBQT1JURURfRVJSLCBBU0NJ
SUxpdGVyYWwoIlRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCIpKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KKyAgICBzdXBwb3J0RXhwb3J0S2V5VGhyb3coc3RhdGUsIGtleS0+YWxnb3Jp
dGhtSWRlbnRpZmllcigpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkp
OwogCiAgICAgaWYgKCFrZXktPmV4dHJhY3RhYmxlKCkpIHsKICAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KElOVkFMSURfQUNDRVNTX0VSUiwgQVNDSUlMaXRlcmFsKCJUaGUgQ3J5cHRvS2V5IGlzIG5v
bmV4dHJhY3RhYmxlIikpOwpAQCAtNjY3LDYgKzY4NCwxMDUgQEAgc3RhdGljIHZvaWQganNTdWJ0
bGVDcnlwdG9GdW5jdGlvbkV4cG9ydEtleVByb21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwgUmVmPERl
ZmVycmUKICAgICBhbGdvcml0aG0tPmV4cG9ydEtleShmb3JtYXQsIGtleS5yZWxlYXNlTm9uTnVs
bCgpLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShleGNlcHRpb25DYWxsYmFjaykpOwogfQog
CitzdGF0aWMgdm9pZCBqc1N1YnRsZUNyeXB0b0Z1bmN0aW9uV3JhcEtleVByb21pc2UoRXhlY1N0
YXRlJiBzdGF0ZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQoreworICAgIFZNJiB2
bSA9IHN0YXRlLnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OworCisgICAgaWYgKFVOTElLRUxZKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDQpKSB7CisgICAg
ICAgIHByb21pc2UtPnJlamVjdDxKU1ZhbHVlPihjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cigmc3RhdGUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gZm9ybWF0ID0g
Y29udmVydEVudW1lcmF0aW9uPFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0PihzdGF0ZSwgc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZv
aWQoKSk7CisKKyAgICBhdXRvIGtleSA9IHRvQ3J5cHRvS2V5KHN0YXRlLCBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsK
KworICAgIGF1dG8gd3JhcHBpbmdLZXkgPSB0b0NyeXB0b0tleShzdGF0ZSwgc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMikpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
CisKKyAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICBi
b29sIGlzRW5jcnlwdGlvbiA9IGZhbHNlOworICAgIGF1dG8gd3JhcFBhcmFtcyA9IG5vcm1hbGl6
ZUNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDMpLCBPcGVyYXRpb25zOjpXcmFwS2V5KTsKKyAgICBpZiAoY2F0Y2hTY29wZS5leGNlcHRpb24o
KSkgeworICAgICAgICBjYXRjaFNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CisgICAgICAgIHdyYXBQ
YXJhbXMgPSBub3JtYWxpemVDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKHN0YXRlLCBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgzKSwgT3BlcmF0aW9uczo6RW5jcnlwdCk7CisgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisgICAgICAgIGlzRW5jcnlwdGlvbiA9IHRy
dWU7CisgICAgfQorCisgICAgaWYgKHdyYXBQYXJhbXMtPmlkZW50aWZpZXIgIT0gd3JhcHBpbmdL
ZXktPmFsZ29yaXRobUlkZW50aWZpZXIoKSkgeworICAgICAgICBwcm9taXNlLT5yZWplY3QoSU5W
QUxJRF9BQ0NFU1NfRVJSLCBBU0NJSUxpdGVyYWwoIldyYXBwaW5nIENyeXB0b0tleSBkb2Vzbid0
IG1hdGNoIEFsZ29yaXRobUlkZW50aWZpZXIiKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoIXdyYXBwaW5nS2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5KSkgewor
ICAgICAgICBwcm9taXNlLT5yZWplY3QoSU5WQUxJRF9BQ0NFU1NfRVJSLCBBU0NJSUxpdGVyYWwo
IldyYXBwaW5nIENyeXB0b0tleSBkb2Vzbid0IHN1cHBvcnQgd3JhcEtleSBvcGVyYXRpb24iKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdXBwb3J0RXhwb3J0S2V5VGhyb3coc3Rh
dGUsIGtleS0+YWxnb3JpdGhtSWRlbnRpZmllcigpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB2b2lkKCkpOworCisgICAgaWYgKCFrZXktPmV4dHJhY3RhYmxlKCkpIHsKKyAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KElOVkFMSURfQUNDRVNTX0VSUiwgQVNDSUlMaXRlcmFsKCJUaGUg
Q3J5cHRvS2V5IGlzIG5vbmV4dHJhY3RhYmxlIikpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBleHBvcnRBbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG0oc3RhdGUsIGtleS0+
YWxnb3JpdGhtSWRlbnRpZmllcigpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2
b2lkKCkpOworCisgICAgYXV0byB3cmFwQWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtKHN0YXRl
LCB3cmFwcGluZ0tleS0+YWxnb3JpdGhtSWRlbnRpZmllcigpKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB2b2lkKCkpOworCisgICAgYXV0byBjb250ZXh0ID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoJnN0YXRlKTsKKworICAgIGF1dG8gc3VidGxlID0ganNE
eW5hbWljRG93bmNhc3Q8SlNTdWJ0bGVDcnlwdG8qPihzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAg
QVNTRVJUKHN1YnRsZSk7CisgICAgYXV0byYgd29ya1F1ZXVlID0gc3VidGxlLT53cmFwcGVkKCku
d29ya1F1ZXVlKCk7CisKKyAgICBhdXRvIGNhbGxiYWNrID0gW3Byb21pc2UgPSBwcm9taXNlLmNv
cHlSZWYoKSwgd3JhcEFsZ29yaXRobSwgd3JhcHBpbmdLZXkgPSBXVEZNb3ZlKHdyYXBwaW5nS2V5
KSwgd3JhcFBhcmFtcyA9IFdURk1vdmUod3JhcFBhcmFtcyksIGlzRW5jcnlwdGlvbiwgY29udGV4
dCwgJndvcmtRdWV1ZV0oU3VidGxlQ3J5cHRvOjpLZXlGb3JtYXQgZm9ybWF0LCBLZXlEYXRhJiYg
a2V5KSBtdXRhYmxlIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzOworICAgICAgICBz
d2l0Y2ggKGZvcm1hdCkgeworICAgICAgICBjYXNlIFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0OjpT
cGtpOgorICAgICAgICBjYXNlIFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0OjpQa2NzODoKKyAgICAg
ICAgY2FzZSBTdWJ0bGVDcnlwdG86OktleUZvcm1hdDo6UmF3OgorICAgICAgICAgICAgYnl0ZXMg
PSBXVEY6OmdldDxWZWN0b3I8dWludDhfdD4+KGtleSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBTdWJ0bGVDcnlwdG86OktleUZvcm1hdDo6SndrOiB7CisgICAgICAgICAgICBh
dXRvIGp3ayA9IHRvSlNWYWx1ZUZyb21Kc29uV2ViS2V5KCoocHJvbWlzZS0+Z2xvYmFsT2JqZWN0
KCkpLCBXVEZNb3ZlKFdURjo6Z2V0PEpzb25XZWJLZXk+KGtleSkpKTsKKyAgICAgICAgICAgIFN0
cmluZyBqd2tTdHJpbmcgPSBKU09OU3RyaW5naWZ5KHByb21pc2UtPmdsb2JhbE9iamVjdCgpLT5n
bG9iYWxFeGVjKCksIGp3aywgMCk7CisgICAgICAgICAgICBDU3RyaW5nIGp3a1V0ZjhTdHJpbmcg
PSBqd2tTdHJpbmcudXRmOChTdHJpY3RDb252ZXJzaW9uKTsKKyAgICAgICAgICAgIGJ5dGVzLmFw
cGVuZChqd2tVdGY4U3RyaW5nLmRhdGEoKSwgandrVXRmOFN0cmluZy5sZW5ndGgoKSk7CisgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBbcHJvbWlzZSA9IHBy
b21pc2UuY29weVJlZigpXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpIG11dGFi
bGUgeworICAgICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIoV1RGTW92ZShw
cm9taXNlKSwgd3JhcHBlZEtleS5kYXRhKCksIHdyYXBwZWRLZXkuc2l6ZSgpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfTsKKyAgICAgICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7
CisgICAgICAgICAgICByZWplY3RXaXRoRXhjZXB0aW9uKFdURk1vdmUocHJvbWlzZSksIGVjKTsK
KyAgICAgICAgfTsKKworICAgICAgICBpZiAoIWlzRW5jcnlwdGlvbikgeworICAgICAgICAgICAg
Ly8gVGhlIDExIERlY2VtYmVyIDIwMTQgdmVyc2lvbiBvZiB0aGUgc3BlY2lmaWNhdGlvbiBzdWdn
ZXN0cyB3ZSBzaG91bGQgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHRhc2sgYXN5bmNocm9ub3VzbHk6
CisgICAgICAgICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvV2ViQ3J5cHRvQVBJLyNTdWJ0
bGVDcnlwdG8tbWV0aG9kLXdyYXBLZXkKKyAgICAgICAgICAgIC8vIEl0IGlzIG5vdCBiZW5lZmlj
aWFsIGZvciBsZXNzIHRpbWUgY29uc3VtaW5nIG9wZXJhdGlvbnMuIFRoZXJlZm9yZSwgd2UgcGVy
Zm9ybSBpdCBzeW5jaHJvbm91c2x5LgorICAgICAgICAgICAgd3JhcEFsZ29yaXRobS0+d3JhcEtl
eSh3cmFwcGluZ0tleS5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKGJ5dGVzKSwgV1RGTW92ZShj
YWxsYmFjayksIFdURk1vdmUoZXhjZXB0aW9uQ2FsbGJhY2spKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICB3cmFwQWxnb3JpdGhtLT5lbmNyeXB0KFdURk1vdmUod3Jh
cFBhcmFtcyksIHdyYXBwaW5nS2V5LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUoYnl0ZXMpLCBX
VEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShleGNlcHRpb25DYWxsYmFjayksICpjb250ZXh0LCB3
b3JrUXVldWUpOworICAgIH07CisgICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9IFtjYXB0dXJl
ZFByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Db2RlIGVjKSBtdXRhYmxlIHsK
KyAgICAgICAgcmVqZWN0V2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGNhcHR1cmVkUHJvbWlzZSksIGVj
KTsKKyAgICB9OworCisgICAgZXhwb3J0QWxnb3JpdGhtLT5leHBvcnRLZXkoZm9ybWF0LCBrZXku
cmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZXhjZXB0aW9uQ2Fs
bGJhY2spKTsKK30KKwogSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZW5jcnlwdChFeGVjU3RhdGUm
IHN0YXRlKQogewogICAgIHJldHVybiBjYWxsUHJvbWlzZUZ1bmN0aW9uPGpzU3VidGxlQ3J5cHRv
RnVuY3Rpb25FbmNyeXB0UHJvbWlzZSwgUHJvbWlzZUV4ZWN1dGlvblNjb3BlOjpXaW5kb3dPcldv
cmtlcj4oc3RhdGUpOwpAQCAtNjkyLDYgKzgwOCwxMSBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRv
OjpleHBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICByZXR1cm4gY2FsbFByb21pc2VGdW5j
dGlvbjxqc1N1YnRsZUNyeXB0b0Z1bmN0aW9uRXhwb3J0S2V5UHJvbWlzZSwgUHJvbWlzZUV4ZWN1
dGlvblNjb3BlOjpXaW5kb3dPcldvcmtlcj4oc3RhdGUpOwogfQogCitKU1ZhbHVlIEpTU3VidGxl
Q3J5cHRvOjp3cmFwS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAgcmV0dXJuIGNhbGxQcm9t
aXNlRnVuY3Rpb248anNTdWJ0bGVDcnlwdG9GdW5jdGlvbldyYXBLZXlQcm9taXNlLCBQcm9taXNl
RXhlY3V0aW9uU2NvcGU6OldpbmRvd09yV29ya2VyPihzdGF0ZSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0
aG0uY3BwCmluZGV4IDg1MTI3OWNlMjQ3N2I4NmIyMTYxZDczYTk2Yzc4YmM0MmQxYzEyOWYuLjBk
YWYyODk3MDY0MDhjNzZiYWUxYTRmNWY3MDkwNzgxYzhkYjFlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwCkBAIC01Nyw2ICs1NywxMSBAQCB2b2lkIENyeXB0
b0FsZ29yaXRobTo6ZXhwb3J0S2V5KFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0LCBSZWY8Q3J5cHRv
S2V5PiYmLCBLZXlEYQogICAgIGV4Y2VwdGlvbkNhbGxiYWNrKE5PVF9TVVBQT1JURURfRVJSKTsK
IH0KIAordm9pZCBDcnlwdG9BbGdvcml0aG06OndyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVj
dG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYgZXhj
ZXB0aW9uQ2FsbGJhY2spCit7CisgICAgZXhjZXB0aW9uQ2FsbGJhY2soTk9UX1NVUFBPUlRFRF9F
UlIpOworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG06OmVuY3J5cHQoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYpCiB7CiAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5PVF9TVVBQT1JURURfRVJSIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmgKaW5kZXggODMyYjk5NGY2YTZjOTUw
MjZhNjBjYmNlNGFkM2NiY2E4NGM1ZDY3YS4uYjY3NmM0NmJkNDlkNDJkNTM0MGNmZDlmMmY3YTk2
MWRlODk4ZDJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29y
aXRobS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaApAQCAt
NjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0
IHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYmLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgRXhj
ZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHZpcnR1YWwg
dm9pZCBpbXBvcnRLZXkoU3VidGxlQ3J5cHRvOjpLZXlGb3JtYXQsIEtleURhdGEmJiwgY29uc3Qg
c3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+JiYsIGJvb2wgZXh0cmFj
dGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxs
YmFjayYmKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhwb3J0S2V5KFN1YnRsZUNyeXB0bzo6S2V5Rm9y
bWF0LCBSZWY8Q3J5cHRvS2V5PiYmLCBLZXlEYXRhQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJh
Y2smJik7CisgICAgdmlydHVhbCB2b2lkIHdyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9y
PHVpbnQ4X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpOwogCiAg
ICAgLy8gVGhlIGZvbGxvd2luZyB3aWxsIGJlIGRlcHJlY2F0ZWQuCiAgICAgdmlydHVhbCBFeGNl
cHRpb25Pcjx2b2lkPiBlbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZl
Y3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjayk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaWRsCmluZGV4IGVkMWE2NDQ2MjliODViZWY2ZTQ2MWJj
ZmU2YTBiZWZmNmI3NjJjY2UuLmQ5YTY0Y2U0NzU5ZTY2MzllM2E5NGIyMWIyMjkzZTFkNmM3NzI1
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaWRsCkBAIC0zNyw0ICszNyw1
IEBAIGVudW0gS2V5Rm9ybWF0IHsgInJhdyIsICJzcGtpIiwgInBrY3M4IiwgImp3ayIgfTsKICAg
ICBbQ3VzdG9tXSBQcm9taXNlPGFueT4gZ2VuZXJhdGVLZXkoQWxnb3JpdGhtSWRlbnRpZmllciBh
bGdvcml0aG0sIGJvb2xlYW4gZXh0cmFjdGFibGUsIHNlcXVlbmNlPENyeXB0b0tleVVzYWdlPiBr
ZXlVc2FnZXMpOwogICAgIFtDdXN0b21dIFByb21pc2U8Q3J5cHRvS2V5PiBpbXBvcnRLZXkoS2V5
Rm9ybWF0IGZvcm1hdCwgKEJ1ZmZlclNvdXJjZSBvciBKc29uV2ViS2V5KSBrZXlEYXRhLCBBbGdv
cml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgYm9vbGVuIGV4dHJhY3RhYmxlLCBzZXF1ZW5jZTxD
cnlwdG9LZXlVc2FnZT4ga2V5VXNhZ2VzKTsKICAgICBbQ3VzdG9tXSBQcm9taXNlPGFueT4gZXhw
b3J0S2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b0tleSBrZXkpOworICAgIFtDdXN0b21dIFBy
b21pc2U8YW55PiB3cmFwS2V5KEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b0tleSBrZXksIENyeXB0
b0tleSB3cmFwcGluZ0tleSwgQWxnb3JpdGhtSWRlbnRpZmllciB3cmFwQWxnb3JpdGhtKTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfS1cuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0tXLmNwcAppbmRleCAzNWM3YTdiNjYzNGRkNzQ2MjY2NGM1OWY3MTIyZGE3
NzA2YzEwZWIyLi5kOTFkMmYyZDQ3ZjQ1MjQyNmVkYjVhZDI5YTA5YTNjZWJlYzE2MGQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1B
RVNfS1cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5jcHAKQEAgLTE1OSw2ICsxNTksMTUgQEAgdm9pZCBDcnlwdG9BbGdvcml0
aG1BRVNfS1c6OmV4cG9ydEtleShTdWJ0bGVDcnlwdG86OktleUZvcm1hdCBmb3JtYXQsIFJlZjxD
cnlwdG8KICAgICBjYWxsYmFjayhmb3JtYXQsIFdURk1vdmUocmVzdWx0KSk7CiB9CiAKK3ZvaWQg
Q3J5cHRvQWxnb3JpdGhtQUVTX0tXOjp3cmFwS2V5KFJlZjxDcnlwdG9LZXk+JiYga2V5LCBWZWN0
b3I8dWludDhfdD4mJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBFeGNlcHRpb25D
YWxsYmFjayYmIGV4Y2VwdGlvbkNhbGxiYWNrKQoreworICAgIGlmIChkYXRhLnNpemUoKSAlIDgp
IHsKKyAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soT3BlcmF0aW9uRXJyb3IpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIHBsYXRmb3JtV3JhcEtleShXVEZNb3ZlKGtleSksIFdURk1vdmUo
ZGF0YSksIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGV4Y2VwdGlvbkNhbGxiYWNrKSk7Cit9
CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUFFU19LVzo6ZW5jcnlwdEZvcldy
YXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBD
cnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2Fs
bGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQogewogICAg
IGlmICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhrZXkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaAppbmRleCBkZjJm
NDg3MmQ3MWY3YTMyNmEzZTNlODVlYmYyMzFlZmNhZjhjY2Q2Li43MTI3NWZhNzdjNzgyMDQ4MzQ2
ZTYyYTBhMmM0OWZiZjAwYWQyYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaApAQCAtNDYsNiArNDYsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+JiYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVz
YWdlQml0bWFwLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JikgZmluYWw7CiAgICAgdm9pZCBpbXBvcnRLZXkoU3VidGxl
Q3J5cHRvOjpLZXlGb3JtYXQsIEtleURhdGEmJiwgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnM+JiYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
Qml0bWFwLCBLZXlDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmKSBmaW5hbDsKICAgICB2
b2lkIGV4cG9ydEtleShTdWJ0bGVDcnlwdG86OktleUZvcm1hdCwgUmVmPENyeXB0b0tleT4mJiwg
S2V5RGF0YUNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQg
d3JhcEtleShSZWY8Q3J5cHRvS2V5PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJh
Y2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJikgZmluYWw7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBlbmNyeXB0Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZpbmFsOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IGRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrKSBmaW5hbDsKQEAgLTUzLDYgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNh
Z2VCaXRtYXAsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykg
ZmluYWw7CiAKICAgICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvS2V5Jikg
Y29uc3Q7CisgICAgdm9pZCBwbGF0Zm9ybVdyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9y
PHVpbnQ4X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9LZXlBRVMmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBwbGF0Zm9ybURlY3J5
cHQoY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3Rv
ckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjayk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1BRVNfS1dH
bnVUTFMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1B
RVNfS1dHbnVUTFMuY3BwCmluZGV4IGZhYmFjMWE2ZDUzNGUwM2M3MDZjYzM4OTlhY2MwMDdlYjEz
ZGQwOGQuLmM5ZWQzZGI2YThkMTcxYzZkMjQ0Zjk0Y2ZiOTI1MGIxNjQ1ODY3OGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR251
VExTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRo
bUFFU19LV0dudVRMUy5jcHAKQEAgLTMzLDYgKzMzLDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAordm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OnBsYXRmb3JtV3JhcEtleShSZWY8Q3J5
cHRvS2V5PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9u
Q2FsbGJhY2smJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBFeGNlcHRpb25Pcjx2
b2lkPiBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9L
ZXlBRVMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9p
ZENhbGxiYWNrJiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcAppbmRleCA2
ZmJkMjk3M2E1NWQ4ZjNkODQ5N2MxYWFhMTkyN2Q3YjAyYjgyZWU2Li5mZWViYzY0OTZiM2JiOTY3
MDQwMWM3Y2ZlNTM0NDA4ZTFhMWYxOGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19LV01hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwCkBAIC0zNCw2ICszNCwzMCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJWE1FOiBXZSBzaG91bGQgY2hhbmdlIGRh
dGEgdG8gVmVjdG9yPHVpbnQ4X3Q+IHR5cGUgb25jZSBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVw
cmVjYXRlZC4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ5
MzkKK3N0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IHdyYXBLZXlBRVNfS1coY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBkYXRh
TGVuZ3RoKQoreworICAgIFZlY3Rvcjx1aW50OF90PiByZXN1bHQoQ0NTeW1tZXRyaWNXcmFwcGVk
U2l6ZShrQ0NXUkFQQUVTLCBkYXRhTGVuZ3RoKSk7CisgICAgc2l6ZV90IHJlc3VsdFNpemUgPSBy
ZXN1bHQuc2l6ZSgpOworICAgIGlmIChDQ1N5bW1ldHJpY0tleVdyYXAoa0NDV1JBUEFFUywgQ0Ny
ZmMzMzk0X2l2LCBDQ3JmYzMzOTRfaXZMZW4sIGtleS5kYXRhKCksIGtleS5zaXplKCksIGRhdGEs
IGRhdGFMZW5ndGgsIHJlc3VsdC5kYXRhKCksICZyZXN1bHRTaXplKSkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CisKKyAgICByZXN1bHQuc2hyaW5rKHJlc3Vs
dFNpemUpOworICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7Cit9CisKK3ZvaWQgQ3J5cHRvQWxn
b3JpdGhtQUVTX0tXOjpwbGF0Zm9ybVdyYXBLZXkoUmVmPENyeXB0b0tleT4mJiBrZXksIFZlY3Rv
cjx1aW50OF90PiYmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIEV4Y2VwdGlvbkNh
bGxiYWNrJiYgZXhjZXB0aW9uQ2FsbGJhY2spCit7CisgICAgYXV0byYgYWVzS2V5ID0gZG93bmNh
c3Q8Q3J5cHRvS2V5QUVTPihrZXkuZ2V0KCkpOworICAgIGF1dG8gcmVzdWx0ID0gd3JhcEtleUFF
U19LVyhhZXNLZXkua2V5KCksIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBleGNlcHRpb25DYWxsYmFjayhyZXN1bHQu
cmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
Y2FsbGJhY2socmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKK30KKwogRXhjZXB0aW9uT3I8
dm9pZD4gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRv
S2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxi
YWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKIHsKICAgICBp
ZiAoZGF0YS5zZWNvbmQgJSA4KSB7CkBAIC00MywxNSArNjcsMTIgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvS2V5
QUVTJiBrZXkKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBWZWN0b3I8dWludDhf
dD4gcmVzdWx0KENDU3ltbWV0cmljV3JhcHBlZFNpemUoa0NDV1JBUEFFUywgZGF0YS5zZWNvbmQp
KTsKLSAgICBzaXplX3QgcmVzdWx0U2l6ZSA9IHJlc3VsdC5zaXplKCk7Ci0gICAgaW50IHN0YXR1
cyA9IENDU3ltbWV0cmljS2V5V3JhcChrQ0NXUkFQQUVTLCBDQ3JmYzMzOTRfaXYsIENDcmZjMzM5
NF9pdkxlbiwga2V5LmtleSgpLmRhdGEoKSwga2V5LmtleSgpLnNpemUoKSwgZGF0YS5maXJzdCwg
ZGF0YS5zZWNvbmQsIHJlc3VsdC5kYXRhKCksICZyZXN1bHRTaXplKTsKLSAgICBpZiAoc3RhdHVz
KSB7CisgICAgYXV0byByZXN1bHQgPSB3cmFwS2V5QUVTX0tXKGtleS5rZXkoKSwgZGF0YS5maXJz
dCwgZGF0YS5zZWNvbmQpOworICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAg
ICAgZmFpbHVyZUNhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQotICAgIHJl
c3VsdC5zaHJpbmsocmVzdWx0U2l6ZSk7Ci0gICAgY2FsbGJhY2socmVzdWx0KTsKKyAgICBjYWxs
YmFjayhyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwogICAgIHJldHVybiB7IH07CiB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YzAzYmFkNjZjYzM0NzhjZTUzODFiNWY4MmI0ODljZjBjMDFhNjAzLi5kMGVjNGYz
ZGZmNWFmZmQ2ZDA1MGM0MmVhNTRlZGIwYzgyOTliNzY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMTYtMTEtMjkgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAg
ICBVcGRhdGUgU3VidGxlQ3J5cHRvOjp3cmFwS2V5IHRvIG1hdGNoIHRoZSBsYXRlc3Qgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NzQ2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTI1ODE2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNyeXB0by9zdWJ0bGUvYWVzLWNiYy1pbXBvcnQt
a2V5LXdyYXAtandrLXJzYS1rZXktcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGNyeXB0by9zdWJ0bGUvYWVzLWNiYy1pbXBvcnQta2V5LXdyYXAtandrLXJzYS1rZXktcHJp
dmF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0
LWtleS13cmFwLWp3ay1yc2Eta2V5LXB1YmxpYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGNyeXB0by9zdWJ0bGUvYWVzLWNiYy1pbXBvcnQta2V5LXdyYXAtandrLXJzYS1rZXktcHVi
bGljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvYWVzLWt3LWltcG9ydC1r
ZXktd3JhcC1yYXcta2V5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3J5cHRvL3N1
YnRsZS9hZXMta3ctaW1wb3J0LWtleS13cmFwLXJhdy1rZXkuaHRtbDogQWRkZWQuCisgICAgICAg
ICogY3J5cHRvL3N1YnRsZS9hZXMta3ctd3JhcC1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2Flcy1rdy13cmFwLWtl
eS1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3Vi
dGxlL3JzYS1vYWVwLWltcG9ydC1rZXktd3JhcC1qd2stb2N0LWtleS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvcnNhLW9hZXAtaW1wb3J0LWtleS13cmFwLWp3
ay1vY3Qta2V5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvd3JhcEtleS1t
YWxmb3JtZWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNyeXB0
by9zdWJ0bGUvd3JhcEtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvYWVzLWNiYy1pbXBvcnQta2V5LXdyYXAta2V5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1j
YmMtaW1wb3J0LWtleS13cmFwLWtleS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vd29y
a2Vycy9zdWJ0bGUvYWVzLWt3LWltcG9ydC1rZXktd3JhcC1rZXktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvYWVzLWt3LWltcG9ydC1rZXktd3Jh
cC1rZXkuaHRtbDogQWRkZWQuCisgICAgICAgICogY3J5cHRvL3dvcmtlcnMvc3VidGxlL3Jlc291
cmNlcy9hZXMtY2JjLWltcG9ydC1rZXktd3JhcC1rZXkuanM6IEFkZGVkLgorICAgICAgICAqIGNy
eXB0by93b3JrZXJzL3N1YnRsZS9yZXNvdXJjZXMvYWVzLWt3LWltcG9ydC1rZXktd3JhcC1rZXku
anM6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by93b3JrZXJzL3N1YnRsZS9yZXNvdXJjZXMvcnNh
LW9hZXAtaW1wb3J0LWtleS13cmFwLWtleS5qczogQWRkZWQuCisgICAgICAgICogY3J5cHRvL3dv
cmtlcnMvc3VidGxlL3JzYS1vYWVwLWltcG9ydC1rZXktd3JhcC1rZXktZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLW9hZXAtaW1wb3J0LWtl
eS13cmFwLWtleS5odG1sOiBBZGRlZC4KKwogMjAxNi0xMS0yNiAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIENvbnZlcnQgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgb3ZlciB0
byB1c2luZyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzIHNvIGl0IGNhbiBiZSBwcm9wZXJseSBleGNs
dWRlZCBmcm9tIHNjcmlwdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggOGI3ZTRi
ZTg2MTE1NzE2MDYwNzIwNDNjNDgwYzk2NmU4OWI2ZDY1ZS4uNTNiZDM2OTBkM2M2M2U0ODY1NTZh
MmEzMDdkZDE0ZDBkNzRiNDQwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTYtMTEtMjkgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBVcGRhdGUgU3VidGxlQ3J5cHRvOjp3cmFwS2V5IHRvIG1hdGNoIHRoZSBs
YXRlc3Qgc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY0NzQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTI1ODE2MD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNyeXB0b0FQSS9pZGxo
YXJuZXNzLWV4cGVjdGVkLnR4dDoKKwogMjAxNi0xMS0xOCAgSmlld2VuIFRhbiAgPGppZXdlbl90
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBTdWJ0bGVDcnlwdG86OmRlY3J5cHQgdG8g
bWF0Y2ggdGhlIGxhdGVzdCBzcGVjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2Flcy1jYmMtaW1wb3J0LWtleS13cmFwLWp3ay1yc2Eta2V5LXByaXZhdGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1rZXktd3JhcC1q
d2stcnNhLWtleS1wcml2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjUyMWJiYTRiMjE4
YWUzNjM4MWM5NzY5ODhmNjllODA5YmY0OTBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1rZXktd3JhcC1qd2stcnNhLWtleS1wcml2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHdyYXBwaW5nIGEgSldLIFJT
QSBwcml2YXRlIGtleSB3aXRoIEFFUy1DQkMgdXNpbmcgYW4gaW1wb3J0ZWQga2V5CisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcod3JhcHBlZEtl
eSkgaXMgZXhwZWN0V3JhcHBlZEtleQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
YWVzLWNiYy1pbXBvcnQta2V5LXdyYXAtandrLXJzYS1rZXktcHJpdmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1rZXktd3JhcC1qd2stcnNhLWtleS1w
cml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY5ODg4NmJiMGMwMTY1ZGY5ZWVmMWNjMjYxOGI0NTJk
NTZmMzhlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVz
LWNiYy1pbXBvcnQta2V5LXdyYXAtandrLXJzYS1rZXktcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEs
NTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3Qgd3JhcHBpbmcgYSBKV0sgUlNBIHByaXZhdGUga2V5IHdpdGggQUVTLUNC
QyB1c2luZyBhbiBpbXBvcnRlZCBrZXkiKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3Zh
ciBleHRyYWN0YWJsZSA9IHRydWU7Cit2YXIgandrS2V5ID0geworICAgIGt0eTogIlJTQSIsCisg
ICAgYWxnOiAiUlNBLU9BRVAiLAorICAgIHVzZTogImVuYyIsCisgICAga2V5X29wczogWyJkZWNy
eXB0IiwgInVud3JhcEtleSJdLAorICAgIGV4dDogdHJ1ZSwKKyAgICBuOiAibHhITjBOOVZSWjBf
cGwweHYzLU5YeDcwV25qa09EU2tRNUxqSFhURnkzRE9Rc3ZrYWdGekQ5SHFZUWV6Q21jZXdMamRL
NVBMd1Nlc0RvTWRmTDZ0dXNCSGN2eWl0MWt2eWRZRlEzTkxiRU5Oa1lzaUJHNV9uVzRJUUdMNkpL
Ylo1aUdkVW9wOThRSEttNllaUjF1NHpyQXR4TTZiVkVvMDVWdmhqUlMwTTh5V29aVmktN1Zkc2Mw
THFJMFFkcV9Ob2N0WDVGdS1BcWlCTjdVbzFIa1lHY1Ayb0M4MkpfSjVjanc5OEJRaVA1a0RXVGhx
OVJLLVg2Uy1FVUFMeF9tNGlHNmlPWUtUQTNTUXlmMXhCcUZhWFhvRUpqY2NrYk9xa2VnZWN6NWIt
WVdVaDhpWlB2aHdudC1SWndwSWJMSmdLd3oxOW5ka245S3ZvRUV3N1liRW93IiwKKyAgICBlOiAi
QVFBQiIsCisgICAgZDogImNqNURrRGFrak0yYktkdUdXSlJFTy1fenlFdHVBMWREOWRvcUtNZDdJ
UnVBMENEUzdwdUVBUzIwLW9YUkR3Zm15TVhFZEVVRHJHR3RDeGg2ZnpEUHZzX1QtSkEzR1VLNEVn
SG8zeFpjcmxYRFhsS0NlaWw2Rm5yMGdJU1pPSWg1ZGtCcmNkVkw0cXVCSmU0WlpjNW1WdUFDN0xk
MTNldDBUeE1KNGlBTEdyUHVxUFZVT0dTWUljWjlpZHg1ektLQldoWTN0UGdnRWRLcG5IQm1QZlRS
TzR5WmFmME53MVFYcmdTTVpZOWVqZXVhdXJBaDRROG80LTYtcjhPMkxVZTd1Zk1oX2NjS2tYSVNF
aDRLZE9uVDE3RU05QlFUbjlVTlM5R29LMlpaVTBVM2lvNURTdV9rcGFzcjR1T1ZXY0dsRTJ3Y3pP
djJua0d3RzM5RjNzRkYwUSIsCisgICAgcDogIng1dm5jbzVqLVRENmhUT3p5TjREaGtaNDRtMDVO
eWN4VDZTVUUycVR1clQzLXV6ZV9MN1RZdXRMUklSa292Uk1oVEhaQXIycHppUmxhc0VzMTNQRXo5
WnZ4MUlfVDY4c3Jzb25yZGJhay1TRk1lY003RWpIYzVDLUoxM2dYaHc5SElXMjhfU3g5clEtSmtH
d0V3RTlQRWRJVWZ1dmRxcGdoM1NtWHdQSnJFcyIsCisgICAgcTogIndiOXZsbGdfMm4ta05nZTBi
VGhnXzd4dTFVd1R6aXBNOHZ4U1Vra1YySWlwSktJQWVra1UzYUFCOExvUGhVSTAtMTdwU0d3M0VU
T08yN3QxNjNUSTlxSVBwekxiaFRIOWFVaTdxTEdiS2x6UGxnbnFQNDNaMExIeGMzeEtEZ2l0LUFy
MjlRTGFYMnVvSkJYNlZWV3ZobWg3QklQREhOVk01R1pqd1dPUllnayIsCisgICAgZHA6ICJDMmM4
c2E2d3gydWs1RGN2N2luQXljcjgzUEtnY2lZckN3Rzc4LUFDMElmR0l1LWxUWXNaU0cxb3YyRlEz
bjVXWU1XWVFDX1ZvNUV3dWdpUEp6X1Yzb25CbVFGNTNIT0ZlZmJTalh2WXdOb3RRY3lSVUc1WDlx
SXVPdEdDSDk0OUg0UUVENnZLX3UwTkgtSmd6TFVsYW13b0ZZYnJYendjaDZDQ1lLczJ1a0UiLAor
ICAgIGRxOiAiaGJ0UmxvRExjbEh3VXFyMnl2ekRWMElGYm96WWp0RjcwNngtVmZYRWNuWEI2bHMz
NFRCWWlyRkxKWklIN0g5S2VzZUVWa3o3cFlfazU1NTVRbENWOWtiZWJ4WVhsOVJ0aWlKLUJXNnlI
NGQ0Y2FQZVlJZlU5TXdlVVF4VlFXS1VVa1dmT0hjRHJDRnZLWmxSOVZ6emp0N0hLdEtYOW1yMGJD
S1FjSWY5YmFFIiwKKyAgICBxaTogImEtN2hVVFRuY2xVUEtPZlNnSDh6RUtHSi1BdmRGRXp4dlo1
c3E0NlFmMk1iT1J4VmpONGRKYW1Wdk0tRm9xY3dOLTljdVVseXI5YlNGVHdVQlc0dlhhOFhqOWE4
SmZWaXVNQ3F6Ui1tTDFyR0lVUTVBUkdoTmNTc1JseUtUcXo1QmxXbFZLbVhJeF9wLURlVndQV2lK
Snk0a19GcXlCeHJueGt6b21IZnJ4ayIsCit9OwordmFyIHJhd0tleSA9IGFzY2lpVG9VaW50OEFy
cmF5KCJqbk93OTlvT1pGTElFUE1yIik7Cit2YXIgYWVzQ2JjUGFyYW1zID0geworICAgIG5hbWU6
ICJhZXMtY2JjIiwKKyAgICBpdjogYXNjaWlUb1VpbnQ4QXJyYXkoImpuT3c5OW9PWkZMSUVQTXIi
KSwKK30KK3ZhciBleHBlY3RXcmFwcGVkS2V5ID0gIjg0OGFhMmY3MGVlMThlMjk1MzUyMDEzMmE3
OWNmNDc5YjAzYTg3MzJhM2NjNzNmOGM1MWM2ODQ1NmQzYzI1NTdlOGJlOWQ1OTExYjJhNzQyNjdl
MjgyYTg3ZmZlZWQ4OGRmYmFjMzhhMjJjMjZiYTYyMWY4MzkxNWQ3NTM5NDIwYTRkYzBiMjMyOWM1
ODViNDQyOTY3MzY3YzFlYTZjMTEyNmY5OGM0ZjEzYjdjOGNiNzQwMmI4NmE1ODQ0YzE5NDIwZWEz
MzNkYzMzZDkwOGJlODkxNzJmOGJhYzU5YjQwM2ZlMjAyZjMyYzhlZWQxOWY0MzFjZWRmYzMzODNm
NTM2ZjM1NTcxNjNiMTMxMWFlNDJlZTU0ODZjNmRhZmVlOTY4NjQwZDZiNjk5OWM2ODdmMzdmYmE4
ZDY1Y2M2NjJmMWM4NGYxNjI0NTY2NWU0YWY0MWM5OGU4YjYzNjMyY2MxZDE5ZTJiZWNlMjE1NGM3
ZWFiMTkwNWYzZjZhYjE3YjQ5NWNlZmVjMzUwOGU5YjQ1MWYyZWExNDIyYjk3ZjI3NWRmZGMxMThm
NDZhZjAyMDQwMjUwZDBlNTVkOGQ4ZDE3MmI5NjliYmNmNzMxNGEyNTdmMTBiOThkMmM0N2M2Yzcy
YTcyN2FjYWY0Yzk2MzQwZDU5MGViY2ViYzYxZjczYjdhODY4YjQ5MGYzYzFlMTdjNTllYTQ3OWEz
YjhkYjU1NzQxNTNkZTQ2Y2ZkYmIwN2NmYzVlOTVlYmNmN2FkM2Q1ZmEwNTdiYTk0NmQ2ZGE4NzJj
NGJlZjNhZjZkNzAxM2UyMjJjMjI3NjUwZDAwMjJjOTRkMzA2Y2IxNGUyMDNhYWQzNzhkMTcxYzdj
MjRmODI0YzMxYjgxZmQxODI2NWUwZGUyZjRiNDE1NTg0ZWJjNGFkZWI1ODgwYzRlZGRiYzg4Yjg1
NDY5OWY3YWE3NGQ2YTEwY2E1ZGY4OTc4ZjI3YjVkMTM3MmIzMWVhNjdhOWM0ODQxYWUxMDFlYTZh
ZDc4ZGYwNTgwYjcwMzU4ZTY5MzNhYzkyZjdmYWVlNTMyMGFmMzI5ZDgzNDlhN2I5ODY5MDcwOGEz
ODg3Mzc2MDRiZTBhZmZhYTA2Njk0MTBkOGQ5M2RjNGU0ZjU3ZTE0NTgzMjUzZjExZTViMjdjODli
ODRmMWYzMDM4YmFlNmQ5YjM3ZTNlYjY0YjYzYWQxODgwNjI3YWVmM2IxOWUzZTg1MWNmYWU2Mzll
YzQ2ZGQwNmZkMTMxYjUxZjUzMGIzNzI2MGI4MzZkOTAxM2Q4YWQ3Yzg2NDAwOTYwNzBmOTY5ODRj
NTI4ZWU1ZTIwYjY5ZjNjZDk4YTI2OTYyMWNkODg2Y2NiMTZkOWM1MjZhODdjZDVjNDU4NTQxMzA5
YmI3ZmE0ZjMzMzczMDVkNzZmYzA1MGQzOWNhOGIxZmRiMDY3NWExMWE0MGZmZGU5Y2ViYjMzZGRj
NDg1ZTVkYzVlNzY2N2IwOGMyYTNlMDEzNmQwNjNhNDQ3YWVlNWE4ZjY1MDQyOWM1ZTQyMmE3MDZj
NGMyNDBhNGQxMWY0YTliNTc4MmYyY2JhMjU3NWYwYzMyY2I0NzdhOWYwY2VmOTdmYTk5Mzk3NzEw
NDE4MTMxNWZmOTBlNDZmM2IxMmI4YjAwZjRhNzYxMWM0MmIxYmI1M2QwZTYwMjFhYjIxZWU4YWU2
MDZkOWYwNmRmZWRiODkxNzYzMDA3ZTAyMDk3N2MyOGI0NmQ1ZjMzYmMzNWMxMjA2MWQ5MGViYmUw
MmNhYjU4NzgzYzBjYWMwYzZmMTRlZDczNTIwNGYyM2QwZWI2YTlmZTllZGVhMmFlY2IxYWMyMTNm
NThiNDJkNWQ5NjM3NGVjNzBjYTI4OGEzMTAxNmJhMDJhZGVmNDMyNTBkNzE3ZTlmYWI4OTgyYTFh
MTgwYjFmMzk0NGQ0NTBjMTU5MDEwZmQyM2YzNTRkODg1MDJlYzcwMjg4MmFlM2VkZDU2N2M2YTZl
ZGYzY2IyZTM0ZWRjMTNmNDEwYTI1ZDk3Mjk4YWI5MDYyZGRiNTY2NTc2ZmE4YjY1OTliYmEyMDVi
YWI1NWFhNWYzZjM3ZWRhZjc3MzNjZjI0OWU2OWM3NGRhOTc1ZWYyNDljYTY3M2RhNzQ5ZDg2YmFi
ZWJkZjU1NDEwYTM4OTcyMGFjOTQzZjFlOWQ5MjFmNWQ2OWM1Nzg5NjM2Y2I5MDRmYjkyNjM3NDQy
MzZlYWRlOWFjYWU4ODlhMDFjMjM3YWIzNDM2MTAxNDYzZGZhOWQ5MmY5MzZjMWI2NTJjODBmM2Fi
YmE3NjAyM2ViZTViOWJmZGQ1NDczNWUzYTM0OTRkZTE4YTQ1Njk2N2Y1ODc1OGU1NDYwMjFmZWVm
M2ZhM2U2YzIzOTk4MWFhMDZmMWY3ZGRjNDE1ZDk1N2ZmOTkxOWJiZWM1ZjM2YWYwOTJhODFiYTZj
MTRmZTY0NGQyZWU5OGEyZmNkZWUyZWQ3MGI4N2E1M2ZmYTMyN2IyNWI0NTY5YzU4ODZiMTVmMmJk
NTgzZDZmNWJkN2U5NTFhOTE1MTQyYmFhMDhjNmE5YzM0M2MyMDA2NzhhMDA1ZmFkMjJhMzM3ZDJj
NTYyN2Y4YzgxNmRiMjUyNWE3ZTEyMTg0OWI5ZGE3NTZlZWU2OGEyNDA0NTI4NDlmZmRiOTY1MWY5
OTgyNTdjNjJlOGZkY2RjNDhkYWRmYzNlYmIxOGY3ZWI1NDYxNDQyMDA4ODQ2YTYyOWVjODE0OWMw
NTJmMzU3YmY1ODg5MDk1MDQ3YjI3MmJjZTBmZjUwNTk1M2U3Y2Q1MjViMjRjODM4YmE2ZTllZDkx
OTIyYTMwZWViODU4ZGU4NTU2ZjE5Zjc2MWQwMjg3ZDc2ODg3NjM0NmE1ZGNhYzNkYmFkZDdhMzAw
NzJjOTMzODE2MmJlNTgxMjE2NmQ5NjFmNDAzMWY5NjJlZjY2ODc4MWQzOWQwZmM2OWZlNWY0NDk0
ZTMxZWMwODJkNGEwMTQwZTM2OGI2OTk3NWJlZWJhMTIwZWY5YjY1MWVhZDUzMWI0ZDQ0Mjk2YmQz
Y2ZlMmNlN2Y5N2JiNWJiNDkyMTA2MWIxMmMyZTFjNGMxMDkyOGMwOTgwZmY4ZDQ4OGEyMjgyZDBj
MDU2YTQwMjYwMTY3NDEwZTM5NjY0Zjc1ZmYxZjEyNDk4MjBlMTc0ZWVkOTc4MzE4YTA1ZTY1NGI4
YWE2YzYwYjcwMDAxYTdhMDRmMGFmZjE3NTk3ZGQ5YWIzY2NjMzRmNWJhMmUzNTJiNzI0NGRkM2Rj
Y2I0NjJkNzE3NWI5NWFlMzk3MGVjNTg1OGUyMzEyYWFjN2MyYzc5YTM3YjUzZDA4OWY5ODg3MjBh
NGMwNGRmNjMyOGEzODQwMDRkMGQ1MWVhZmI5NDg2NjIzMDk5YTk4ZTY5YmU1MTY5MjAxYzg4ODI0
YWNjMmJiMGUxNzkwODg5MDE0YTE3OTdjMTY4ZTk4ZDE5ZjA3ODdjMjkzNWNmYmMzYmYyNGM0YWRh
ZDY5YTgxZTBlNmFkZjhjMjFlM2M0Nzg5MDY0YWEzMWEwMjVkZmY1Y2M2ZWFiYTNmM2U0M2YxMGE5
ZDUzMWY0Nzk2MzM3MjEyMGUyMzY2Yjg0YzI4MWVkOTY4ZDlkMTFjMWQxMDM4MjZjOTM2Mjc0MWUx
MjY3ZDFhM2U4ZDIxODg3NjFmYTg3NmI3YjA5NjE3ZGYxNDEzMGMwNzIwOWYxZjExODhmZjQwOTcx
Yjg2NjA3ZGVlMTRkNTU2YTg4MDQ0NzkwMWM2OWQyOWNiMTZjMDI3YzNhYWUzMTZmZjAwMTMyYmRm
Y2QwZTM5YzVlMjAxMjUyYzk3NzE0ODNjY2IyNzViMGM2N2IzY2I0ZGNkMTkxOThjNzcxODYzNDQ2
MDI1NGRmZDZmOGRmNDM3NGI4YmVkZWU3ZGQyMGNlNDExYjVmOTg3Y2FjMmNlMTc0OTJhYTc4Zjkx
OWM2ZDVlNTU1MDAwZjQ3ZjdiOGE5ODk2ZDQ0OGJjNGZjMTNlNDBhOWU1YzAyMjU4ZDUwOWE3Mjg5
ZjQ0ZDcyNTBlODkyNjAyMzNiZjk2NzAyYmIzZDM1MDQ1MWYwM2Q4MDJlMGUzN2Q5ZjAxY2NlNGM3
ODg2OTQwMzQ5M2ViOTg5MGMyYzA5MTA5ZDFmNDI3ZjU5Y2YwOTFjZDFjODM2ZTI1YTliYjA2NTA0
MTQwN2MyMTgzZjY0M2JjZTJlNzJkYjFlN2NhZWFjNDJlMmQ4Mzc5ZjhiODRkZjJjYzdiMWQwNTVm
NDJkNmY2MmUwY2I1NzcxYTE0YWU4ODcyNzkyMzUwZTVmNzcwMTE1YTg2NTY0ZjYwYTc4NWM1MzMy
NWM4YzA4NGFmZTIxNGRhM2NhYzE3ODNlMmJlOTA5OWQ5NmRkYmU5Y2MzZWEzZGQxZDNhZTUwNTI2
YjRhZmUyNDM5NzQyMGEzZTRmYTY5NzYxMzQyMSI7CisKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJyYXciLCByYXdLZXksICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsid3JhcEtleSJdKS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBwaW5nS2V5ID0gcmVzdWx0OworICAgIHJldHVy
biBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5LCB7IG5hbWU6ICJyc2Etb2Fl
cCIsIGhhc2g6ICJzaGEtMSIgfSwgZXh0cmFjdGFibGUsIFsiZGVjcnlwdCJdKTsKK30pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVzdWx0OworICAgIHJldHVybiBjcnlwdG8u
c3VidGxlLndyYXBLZXkoImp3ayIsIGtleSwgd3JhcHBpbmdLZXksIGFlc0NiY1BhcmFtcyk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBwZWRLZXkgPSByZXN1bHQ7CisKKyAg
ICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh3cmFwcGVkS2V5KSIsICJleHBlY3RXcmFwcGVk
S2V5Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCis8L3NjcmlwdD4KKworPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2Jj
LWltcG9ydC1rZXktd3JhcC1qd2stcnNhLWtleS1wdWJsaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1rZXktd3JhcC1qd2stcnNhLWtleS1w
dWJsaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwOTY5MjJmZmM1YzcwZDViZDI3M2MyNmM0
MDlhN2U4YWMyN2NkNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2Flcy1jYmMtaW1wb3J0LWtleS13cmFwLWp3ay1yc2Eta2V5LXB1YmxpYy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCB3cmFwcGluZyBhIEpXSyBSU0EgcHVibGljIGtleSB3
aXRoIEFFUy1DQkMgdXNpbmcgYW4gaW1wb3J0ZWQga2V5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcod3JhcHBlZEtleSkgaXMgZXhwZWN0V3Jh
cHBlZEtleQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWNiYy1pbXBvcnQt
a2V5LXdyYXAtandrLXJzYS1rZXktcHVibGljLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2Flcy1jYmMtaW1wb3J0LWtleS13cmFwLWp3ay1yc2Eta2V5LXB1YmxpYy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM0MjllNWIwOTVlYWM0NDFlMTI2NTQ4MjY4OWY2ZGY0MGE5MjQ5NjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jYmMtaW1wb3J0LWtleS13
cmFwLWp3ay1yc2Eta2V5LXB1YmxpYy5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qgd3Jh
cHBpbmcgYSBKV0sgUlNBIHB1YmxpYyBrZXkgd2l0aCBBRVMtQ0JDIHVzaW5nIGFuIGltcG9ydGVk
IGtleSIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1
ZTsKK3ZhciBqd2tLZXkgPSB7CisgICAga3R5OiAiUlNBIiwKKyAgICBhbGc6ICJSU0EtT0FFUCIs
CisgICAgdXNlOiAiZW5jIiwKKyAgICBrZXlfb3BzOiBbImVuY3J5cHQiXSwKKyAgICBleHQ6IHRy
dWUsCisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5
alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxH
aUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjlt
d0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0
T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1
bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4
TUxfaTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiCit9OwordmFyIHJhd0tleSA9IGFzY2lpVG9V
aW50OEFycmF5KCJqbk93OTlvT1pGTElFUE1yIik7Cit2YXIgYWVzQ2JjUGFyYW1zID0geworICAg
IG5hbWU6ICJhZXMtY2JjIiwKKyAgICBpdjogYXNjaWlUb1VpbnQ4QXJyYXkoImpuT3c5OW9PWkZM
SUVQTXIiKSwKK30KK3ZhciBleHBlY3RXcmFwcGVkS2V5ID0gIjg0OGFhMmY3MGVlMThlMjk1MzUy
MDEzMmE3OWNmNDc5NDZlMDBjOTkzNjIzNDBiYjY5MGVkYzlhYjUzMTU3NTc0NjJjMTI4Mjc4YzYy
MzJlNzcwZTc0MzdjNTZlZDcyMmE4ZTE3MDM4NTVmN2YzZTU2NTM5NGUxYTZhMDMwNWM0ZWYxYjMw
ZmE0YzdmNzJkMWEyMzljYzZjNmJhMDY3ODk4Nzk4YTM2YTc1MTMyYzY2YjRhMmQzZmI5NDI4ODZh
ZmZkM2VhM2IyNzU2YjBkZGM4ODZjMDFlM2I5MzEwNzQ2OWI4MjEyNDQ2ODQwOGVmOGFiNTQ4Yjg1
YWE4ZjIwNmMzMTJkNzRjZTRmMmM2NzllYjE0N2EyNzVjZWZkYTY0ZDViZGM0YTJiNWI5MGE0YWM5
YWQzZWI1ZjJjZjE5ZjVmODc2NTMyMTFmNTliNDczMWJhNjExMjU1ODJhMjMzOTUxMDk3ZGVhNjVk
YjA1ODk5ZDU4N2QxZGNmY2NhYjlhYjc0MTBhYjMwMTBiODkwNjY1MDZkYmFjYmM2YjczZTRiNTY0
NzkyNzUxMzg4ZmEwZjU4ZDU1YzU5YzE0YTA4YzlkZmIwZjc4MTAwYjBmNWNjMjlkNjIzMjg4MjI2
MzZkMzBhNmExNTNlYzVjZDQ3MjdhZDVlNDdiNDE5YzQ4NTQ0NTY1NjM3YWM1Nzg5ODYzZDQzYjdk
YTc4Y2Y0MzgzZDA5ZDY2ZTlkNDU4ZTQzNmRiZmJlZTc1ZTM4MmIyYmFiNDllZWMyYzc0OTFmZjkz
Y2YwOTlmZTkyZmVhZjQ2NThlMzA4ODlmZDEyZDNhZTYxY2Q1ZThjOGUxZTU2YTA3OWI2NjJmOTBj
ZDEwY2RiZGJiNGQxMmVlZmIzNmQ4MjVlMWEwNDNlODJmNWE5OGY4OTYwZDY1NWQzZjllZDVhZjMx
ZTU4MWZhODQ2Y2M1ODJmNmNlZTVjMjVlMGIzYzMyMDUwNTM0YWU5NTdjZTI3ODYwZDQ3MGJhMjZk
YTJjN2Q2ZmE2MjFiMGZhYThiZWNhZDU4ZTllNTViYjJhOWQ5ODRiMDQyZjI1ZGYyMTQ4MjUyOTg3
MGQyNzFjYmY1NTA4YTBlZGZjM2NiMzczMTZjMTFmMTZiMzQyYmMxZjFmOThhYSI7CisKK2NyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCByYXdLZXksICJhZXMtY2JjIiwgZXh0cmFjdGFibGUs
IFsid3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBwaW5nS2V5ID0g
cmVzdWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5
LCB7IG5hbWU6ICJyc2Etb2FlcCIsIGhhc2g6ICJzaGEtMSIgfSwgZXh0cmFjdGFibGUsIFsiZW5j
cnlwdCJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVzdWx0Owor
ICAgIHJldHVybiBjcnlwdG8uc3VidGxlLndyYXBLZXkoImp3ayIsIGtleSwgd3JhcHBpbmdLZXks
IGFlc0NiY1BhcmFtcyk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBwZWRL
ZXkgPSByZXN1bHQ7CisKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh3cmFwcGVkS2V5
KSIsICJleHBlY3RXcmFwcGVkS2V5Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCis8
L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9hZXMta3ctaW1wb3J0LWtleS13cmFwLXJhdy1rZXktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMta3ctaW1wb3J0LWtleS13cmFwLXJhdy1rZXkt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMmEwODQ3NmU5OGI5MGQyYWMwNTA3ZWMxMWEyMmM1
Yzg4NjVlOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Fl
cy1rdy1pbXBvcnQta2V5LXdyYXAtcmF3LWtleS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorVGVzdCB3cmFwcGluZyBhIHJhdyBrZXkgd2l0aCBBRVMtS1cgdXNpbmcgYW4gaW1wb3J0ZWQg
a2V5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGJ5dGVzVG9IZXhTdHJp
bmcod3JhcHBlZEtleSkgaXMgZXhwZWN0V3JhcHBlZEtleQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvYWVzLWt3LWltcG9ydC1rZXktd3JhcC1yYXcta2V5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy1pbXBvcnQta2V5LXdyYXAtcmF3LWtleS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmUxMGViOTY5NDRjZTcxMTgxNWMwMDA1YjNjNjQxYjQzZTE2NjkyODYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy1pbXBvcnQta2V5
LXdyYXAtcmF3LWtleS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qgd3JhcHBpbmcgYSBy
YXcga2V5IHdpdGggQUVTLUtXIHVzaW5nIGFuIGltcG9ydGVkIGtleSIpOworCitqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciByYXdLZXkgPSBhc2Np
aVRvVWludDhBcnJheSgiam5Pdzk5b09aRkxJRVBNciIpOwordmFyIGV4cGVjdFdyYXBwZWRLZXkg
PSAiZDY0Nzg3YWIzZTA0OGRiZGMzMGJiNjI3ODFjOWYxOGU1OGFkN2RiZmM2NGFhYjE2IjsKKwor
Y3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIHJhd0tleSwgImFlcy1rdyIsIGV4dHJhY3Rh
YmxlLCBbIndyYXBLZXkiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgd3JhcHBpbmdLZXkgPSByZXN1bHQ7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJyYXciLCByYXdLZXksICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJk
ZWNyeXB0Il0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBrZXkgPSByZXN1bHQ7
CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3Iiwga2V5LCB3cmFwcGluZ0tl
eSwgIkFFUy1LVyIpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB3cmFwcGVkS2V5
ID0gcmVzdWx0OworCisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcod3JhcHBlZEtleSki
LCAiZXhwZWN0V3JhcHBlZEtleSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvYWVzLWt3LXdyYXAta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWt3LXdyYXAta2V5LW1hbGZvcm1lZC1w
YXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ0ODA4NTFhYzBhYWFjODEzNWVl
ZjhjNzUwOWM0MTRkYTJiYWY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9hZXMta3ctd3JhcC1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgQUVTLUtXIFdyYXBLZXkgb3BlcmF0aW9uIHdpdGggbWFs
Zm9ybWVkIHBhcmFtZXRlcnMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
Y3J5cHRvLnN1YnRsZS53cmFwS2V5KCJqd2siLCBrZXksIHdyYXBwaW5nS2V5LCAiQUVTLUtXIikg
cmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBPcGVyYXRpb25FcnJvciAoRE9NIEV4Y2VwdGlvbiAzNCk6
IFRoZSBvcGVyYXRpb24gZmFpbGVkIGZvciBhbiBvcGVyYXRpb24tc3BlY2lmaWMgcmVhc29uLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYWVzLWt3LXdyYXAta2V5LW1hbGZvcm1l
ZC1wYXJhbWV0ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1rdy13cmFw
LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxZWEzODMwMTNkM2Nj
ZjJhMDE5YTZjY2I2NDY4YjRjOTJmYWUyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2Flcy1rdy13cmFwLWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1s
CkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgQUVTLUtXIFdyYXBLZXkgb3BlcmF0aW9uIHdpdGgg
bWFsZm9ybWVkIHBhcmFtZXRlcnMiKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBl
eHRyYWN0YWJsZSA9IHRydWU7Cit2YXIgcmF3S2V5ID0gYXNjaWlUb1VpbnQ4QXJyYXkoImpuT3c5
OW9PWkZMSUVQTXIiKTsKKworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIHJhd0tleSwg
ImFlcy1rdyIsIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgd3JhcHBpbmdLZXkgPSByZXN1bHQ7CisgICAgcmV0dXJuIGNy
eXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCByYXdLZXksICJhZXMtY2JjIiwgZXh0cmFjdGFi
bGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
KyAgICBrZXkgPSByZXN1bHQ7CisgICAgc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLndyYXBL
ZXkoImp3ayIsIGtleSwgd3JhcHBpbmdLZXksICJBRVMtS1ciKScpLnRoZW4oZmluaXNoSlNUZXN0
KTsKK30pOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1pbXBvcnQta2V5LXdyYXAtandrLW9jdC1r
ZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1pbXBv
cnQta2V5LXdyYXAtandrLW9jdC1rZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzN2IwOTEw
MWVkN2Y0YmRkMmFhYjEzMWZjNTczYWFmYWU0MjQ0NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLWltcG9ydC1rZXktd3JhcC1qd2stb2N0LWtl
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCB3cmFwcGluZyBhIEpXSyBvY3Qg
a2V5IHdpdGggUlNBLU9BRVAgdXNpbmcgYW4gaW1wb3J0ZWQga2V5CisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHdyYXBwZWRLZXkuYnl0ZUxlbmd0aCBpcyAyNTYKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1vYWVwLWltcG9ydC1rZXktd3JhcC1qd2st
b2N0LWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Etb2FlcC1pbXBvcnQt
a2V5LXdyYXAtandrLW9jdC1rZXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTc3MTRjOWNlMzNjZDMwNjk1
ZWZhOGI5MmJjZTEyNmEyNTNjY2FkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2Etb2FlcC1pbXBvcnQta2V5LXdyYXAtandrLW9jdC1rZXkuaHRtbApAQCAt
MCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdyYXBwaW5nIGEgSldLIG9jdCBrZXkgd2l0aCBSU0EtT0FF
UCB1c2luZyBhbiBpbXBvcnRlZCBrZXkiKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3Zh
ciBleHRyYWN0YWJsZSA9IHRydWU7Cit2YXIgandrS2V5ID0geworICAgIGt0eTogIlJTQSIsCisg
ICAgYWxnOiAiUlNBLU9BRVAiLAorICAgIHVzZTogImVuYyIsCisgICAga2V5X29wczogWyJ3cmFw
S2V5Il0sCisgICAgZXh0OiB0cnVlLAorICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRo
V2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJ
emMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERv
Um5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhV
bkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1
N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5
cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6ICJBUUFCIgorfTsKK3Zh
ciByYXdLZXkgPSBhc2NpaVRvVWludDhBcnJheSgiam5Pdzk5b09aRkxJRVBNciIpOworCitjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5LCB7bmFtZTogInJzYS1vYWVwIiwgaGFz
aDogInNoYS0xIn0sIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICB3cmFwcGluZ0tleSA9IHJlc3VsdDsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS5pbXBvcnRLZXkoInJhdyIsIHJhd0tleSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNy
eXB0IiwgImRlY3J5cHQiXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGtleSA9
IHJlc3VsdDsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS53cmFwS2V5KCJqd2siLCBrZXksIHdy
YXBwaW5nS2V5LCAicnNhLW9hZXAiKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
d3JhcHBlZEtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZEJlKCJ3cmFwcGVkS2V5LmJ5dGVMZW5n
dGgiLCAiMjU2Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCis8L3NjcmlwdD4KKwor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS93
cmFwS2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvd3JhcEtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODI3YmRmNmIyZTViYzRhMjQ3YzZjNTI3MjY1YWZkOWU5NWM1MDFkOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvd3JhcEtleS1tYWxmb3JtZWQt
cGFyYW1ldGVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdCBXcmFwS2V5IG9w
ZXJhdGlvbiB3aXRoIG1hbGZvcm1lZCBwYXJhbWV0ZXJzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGNyeXB0by5zdWJ0bGUud3JhcEtleSgpIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRs
ZS53cmFwS2V5KDEpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS53cmFwS2V5KDEsIDIpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRv
LnN1YnRsZS53cmFwS2V5KDEsIDIsIDMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS53cmFwS2V5KCJyYXci
LCBrZXksIHdyYXBwaW5nS2V5LCAiSE1BQyIpIHJlamVjdGVkIHByb21pc2UgIHdpdGggTm90U3Vw
cG9ydGVkRXJyb3IgKERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBv
cnRlZC4uCitQQVNTIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3Iiwga2V5LCB3cmFwcGluZ0tl
eSwgYWVzQ2JjUGFyYW1zKSByZWplY3RlZCBwcm9taXNlICB3aXRoIEludmFsaWRBY2Nlc3NFcnJv
ciAoRE9NIEV4Y2VwdGlvbiAxNSk6IFdyYXBwaW5nIENyeXB0b0tleSBkb2Vzbid0IG1hdGNoIEFs
Z29yaXRobUlkZW50aWZpZXIuCitQQVNTIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3Iiwga2V5
LCB3cmFwcGluZ0tleSwgIkFFUy1LVyIpIHJlamVjdGVkIHByb21pc2UgIHdpdGggSW52YWxpZEFj
Y2Vzc0Vycm9yIChET00gRXhjZXB0aW9uIDE1KTogVGhlIENyeXB0b0tleSBpcyBub25leHRyYWN0
YWJsZS4KK1BBU1MgY3J5cHRvLnN1YnRsZS53cmFwS2V5KCJyYXciLCBrZXksIHdyYXBwaW5nS2V5
LCAiQUVTLUtXIikgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBJbnZhbGlkQWNjZXNzRXJyb3IgKERP
TSBFeGNlcHRpb24gMTUpOiBXcmFwcGluZyBDcnlwdG9LZXkgZG9lc24ndCBzdXBwb3J0IHdyYXBL
ZXkgb3BlcmF0aW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvd3JhcEtleS1t
YWxmb3JtZWQtcGFyYW1ldGVycy5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS93cmFw
S2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM4NzNjYTE1ZTg2YjMy
NjhmZjMzM2VlNWM1ZTk4ZjJjNmEwNDcyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvd3JhcEtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sCkBAIC0wLDAg
KzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3QgV3JhcEtleSBvcGVyYXRpb24gd2l0aCBtYWxmb3JtZWQgcGFyYW1l
dGVycyIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1
ZTsKK3ZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwordmFyIHJhd0tleSA9IGFzY2lpVG9VaW50
OEFycmF5KCJqbk93OTlvT1pGTElFUE1yIik7Cit2YXIgYWVzQ2JjUGFyYW1zID0geworICAgIG5h
bWU6ICJhZXMtY2JjIiwKKyAgICBpdjogYXNjaWlUb1VpbnQ4QXJyYXkoImpuT3c5OW9PWkZMSUVQ
TXIiKSwKK30KKworLy8gTm90IGVub3VnaCBhcmd1bWVudHMuCitzaG91bGRSZWplY3QoJ2NyeXB0
by5zdWJ0bGUud3JhcEtleSgpJyk7CitzaG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUud3JhcEtl
eSgxKScpOworc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLndyYXBLZXkoMSwgMiknKTsKK3No
b3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS53cmFwS2V5KDEsIDIsIDMpJyk7CisKK2NyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJyYXciLCByYXdLZXksICJhZXMta3ciLCBleHRyYWN0YWJsZSwgWyJ3
cmFwS2V5IiwgInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBw
aW5nS2V5ID0gcmVzdWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3
IiwgcmF3S2V5LCAiYWVzLWNiYyIsIG5vbkV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlw
dCJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVzdWx0OworCisg
ICAgLy8gV3JvbmcgQWxnb3JpdGhtSWRlbnRpZmllcgorICAgIHNob3VsZFJlamVjdCgnY3J5cHRv
LnN1YnRsZS53cmFwS2V5KCJyYXciLCBrZXksIHdyYXBwaW5nS2V5LCAiSE1BQyIpJyk7CisgICAg
c2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLndyYXBLZXkoInJhdyIsIGtleSwgd3JhcHBpbmdL
ZXksIGFlc0NiY1BhcmFtcyknKTsKKyAgICAvLyBOb24tZXh0cmFjdGFibGUKKyAgICBzaG91bGRS
ZWplY3QoJ2NyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3Iiwga2V5LCB3cmFwcGluZ0tleSwgIkFF
Uy1LVyIpJyk7CisKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIHJh
d0tleSwgImFlcy1rdyIsIGV4dHJhY3RhYmxlLCBbInVud3JhcEtleSJdKTsKK30pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgd3JhcHBpbmdLZXkgPSByZXN1bHQ7CisKKyAgICAvLyBXcm9u
ZyB1c2FnZQorICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS53cmFwS2V5KCJyYXciLCBr
ZXksIHdyYXBwaW5nS2V5LCAiQUVTLUtXIiknKS50aGVuKGZpbmlzaEpTVGVzdCk7Cit9KTsKKwor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by93b3JrZXJzL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1rZXktd3JhcC1rZXktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1jYmMtaW1wb3J0LWtl
eS13cmFwLWtleS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGVkMzU5ZDFjMGQ2MTNkNWI4ZTY5
M2JmYzJiZDZkZmQyYTc5Zjc0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0
by93b3JrZXJzL3N1YnRsZS9hZXMtY2JjLWltcG9ydC1rZXktd3JhcC1rZXktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK1tXb3JrZXJdIFRlc3Qgd3JhcHBpbmcgYSBKV0sgUlNBIHB1Ymxp
YyBrZXkgd2l0aCBBRVMtQ0JDIHVzaW5nIGFuIGltcG9ydGVkIGtleSBpbiB3b3JrZXJzCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6IHJlc291cmNlcy9h
ZXMtY2JjLWltcG9ydC1rZXktd3JhcC1rZXkuanMKK1BBU1MgW1dvcmtlcl0gYnl0ZXNUb0hleFN0
cmluZyh3cmFwcGVkS2V5KSBpcyBleHBlY3RXcmFwcGVkS2V5CitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1jYmMtaW1wb3J0LWtleS13cmFwLWtleS5odG1sIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1jYmMtaW1wb3J0LWtleS13cmFw
LWtleS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZGUwMjk2OTI2NGNmYWFmNWEyZDg1M2YwNzc2MDI2MGMy
ZTJiNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0
bGUvYWVzLWNiYy1pbXBvcnQta2V5LXdyYXAta2V5Lmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgd29ya2VyID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9hZXMtY2Jj
LWltcG9ydC1rZXktd3JhcC1rZXkuanMnKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUv
YWVzLWt3LWltcG9ydC1rZXktd3JhcC1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1rdy1pbXBvcnQta2V5LXdyYXAta2V5LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMzI3ZGFlZDZkYThiMmRhYjVhZjhjZGFlN2ExYzRiYmQwZjdlZjZlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2Flcy1r
dy1pbXBvcnQta2V5LXdyYXAta2V5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitbV29y
a2VyXSBUZXN0IHdyYXBwaW5nIGEgcmF3IGtleSB3aXRoIEFFUy1LVyB1c2luZyBhbiBpbXBvcnRl
ZCBrZXkgaW4gd29ya2VycworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRp
bmcgd29ya2VyOiByZXNvdXJjZXMvYWVzLWt3LWltcG9ydC1rZXktd3JhcC1rZXkuanMKK1BBU1Mg
W1dvcmtlcl0gYnl0ZXNUb0hleFN0cmluZyh3cmFwcGVkS2V5KSBpcyBleHBlY3RXcmFwcGVkS2V5
CitQQVNTIFtXb3JrZXJdIGNyeXB0by5zdWJ0bGUud3JhcEtleSgiandrIiwga2V5LCB3cmFwcGlu
Z0tleSwgIkFFUy1LVyIpIHJlamVjdGVkIHByb21pc2UgIHdpdGggT3BlcmF0aW9uRXJyb3IgKERP
TSBFeGNlcHRpb24gMzQpOiBUaGUgb3BlcmF0aW9uIGZhaWxlZCBmb3IgYW4gb3BlcmF0aW9uLXNw
ZWNpZmljIHJlYXNvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUv
YWVzLWt3LWltcG9ydC1rZXktd3JhcC1rZXkuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93b3Jr
ZXJzL3N1YnRsZS9hZXMta3ctaW1wb3J0LWtleS13cmFwLWtleS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEy
MDhhMzAxNTRhZmRhNTgxOTI1YWE2ODliMTMwMWRkZDYzNThkMTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvYWVzLWt3LWltcG9ydC1rZXktd3Jh
cC1rZXkuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgICB3b3JrZXIg
PSBzdGFydFdvcmtlcigncmVzb3VyY2VzL2Flcy1rdy1pbXBvcnQta2V5LXdyYXAta2V5LmpzJyk7
CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL3Jlc291cmNlcy9hZXMtY2JjLWltcG9ydC1r
ZXktd3JhcC1rZXkuanMgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvcmVzb3Vy
Y2VzL2Flcy1jYmMtaW1wb3J0LWtleS13cmFwLWtleS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODY3NTNiNDA5
NjQyY2Y4MzY3YjE0NGUxODRiZjliMmM1Mjc0OTQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL3Jlc291cmNlcy9hZXMtY2JjLWltcG9ydC1rZXkt
d3JhcC1rZXkuanMKQEAgLTAsMCArMSwzNyBAQAoraW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CitpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9yZXNv
dXJjZXMvY29tbW9uLmpzJyk7CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHdyYXBwaW5nIGEgSldLIFJT
QSBwdWJsaWMga2V5IHdpdGggQUVTLUNCQyB1c2luZyBhbiBpbXBvcnRlZCBrZXkgaW4gd29ya2Vy
cyIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsK
K3ZhciBqd2tLZXkgPSB7CisgICAga3R5OiAiUlNBIiwKKyAgICBhbGc6ICJSU0EtT0FFUCIsCisg
ICAgdXNlOiAiZW5jIiwKKyAgICBrZXlfb3BzOiBbImVuY3J5cHQiXSwKKyAgICBleHQ6IHRydWUs
CisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFG
Q2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlt
eTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hr
cnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09F
SWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNq
dVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxf
aTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiCit9OwordmFyIHJhd0tleSA9IGFzY2lpVG9VaW50
OEFycmF5KCJqbk93OTlvT1pGTElFUE1yIik7Cit2YXIgYWVzQ2JjUGFyYW1zID0geworICAgIG5h
bWU6ICJhZXMtY2JjIiwKKyAgICBpdjogYXNjaWlUb1VpbnQ4QXJyYXkoImpuT3c5OW9PWkZMSUVQ
TXIiKSwKK30KK3ZhciBleHBlY3RXcmFwcGVkS2V5ID0gIjg0OGFhMmY3MGVlMThlMjk1MzUyMDEz
MmE3OWNmNDc5NDZlMDBjOTkzNjIzNDBiYjY5MGVkYzlhYjUzMTU3NTc0NjJjMTI4Mjc4YzYyMzJl
NzcwZTc0MzdjNTZlZDcyMmE4ZTE3MDM4NTVmN2YzZTU2NTM5NGUxYTZhMDMwNWM0ZWYxYjMwZmE0
YzdmNzJkMWEyMzljYzZjNmJhMDY3ODk4Nzk4YTM2YTc1MTMyYzY2YjRhMmQzZmI5NDI4ODZhZmZk
M2VhM2IyNzU2YjBkZGM4ODZjMDFlM2I5MzEwNzQ2OWI4MjEyNDQ2ODQwOGVmOGFiNTQ4Yjg1YWE4
ZjIwNmMzMTJkNzRjZTRmMmM2NzllYjE0N2EyNzVjZWZkYTY0ZDViZGM0YTJiNWI5MGE0YWM5YWQz
ZWI1ZjJjZjE5ZjVmODc2NTMyMTFmNTliNDczMWJhNjExMjU1ODJhMjMzOTUxMDk3ZGVhNjVkYjA1
ODk5ZDU4N2QxZGNmY2NhYjlhYjc0MTBhYjMwMTBiODkwNjY1MDZkYmFjYmM2YjczZTRiNTY0Nzky
NzUxMzg4ZmEwZjU4ZDU1YzU5YzE0YTA4YzlkZmIwZjc4MTAwYjBmNWNjMjlkNjIzMjg4MjI2MzZk
MzBhNmExNTNlYzVjZDQ3MjdhZDVlNDdiNDE5YzQ4NTQ0NTY1NjM3YWM1Nzg5ODYzZDQzYjdkYTc4
Y2Y0MzgzZDA5ZDY2ZTlkNDU4ZTQzNmRiZmJlZTc1ZTM4MmIyYmFiNDllZWMyYzc0OTFmZjkzY2Yw
OTlmZTkyZmVhZjQ2NThlMzA4ODlmZDEyZDNhZTYxY2Q1ZThjOGUxZTU2YTA3OWI2NjJmOTBjZDEw
Y2RiZGJiNGQxMmVlZmIzNmQ4MjVlMWEwNDNlODJmNWE5OGY4OTYwZDY1NWQzZjllZDVhZjMxZTU4
MWZhODQ2Y2M1ODJmNmNlZTVjMjVlMGIzYzMyMDUwNTM0YWU5NTdjZTI3ODYwZDQ3MGJhMjZkYTJj
N2Q2ZmE2MjFiMGZhYThiZWNhZDU4ZTllNTViYjJhOWQ5ODRiMDQyZjI1ZGYyMTQ4MjUyOTg3MGQy
NzFjYmY1NTA4YTBlZGZjM2NiMzczMTZjMTFmMTZiMzQyYmMxZjFmOThhYSI7CisKK2NyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJyYXciLCByYXdLZXksICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsi
d3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBwaW5nS2V5ID0gcmVz
dWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5LCB7
IG5hbWU6ICJyc2Etb2FlcCIsIGhhc2g6ICJzaGEtMSIgfSwgZXh0cmFjdGFibGUsIFsiZW5jcnlw
dCJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAga2V5ID0gcmVzdWx0OworICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLndyYXBLZXkoImp3ayIsIGtleSwgd3JhcHBpbmdLZXksIGFl
c0NiY1BhcmFtcyk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyYXBwZWRLZXkg
PSByZXN1bHQ7CisKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh3cmFwcGVkS2V5KSIs
ICJleHBlY3RXcmFwcGVkS2V5Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL3Jlc291cmNlcy9hZXMta3ct
aW1wb3J0LWtleS13cmFwLWtleS5qcyBiL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRs
ZS9yZXNvdXJjZXMvYWVzLWt3LWltcG9ydC1rZXktd3JhcC1rZXkuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU4
MzA0NzFhYjlmNDY2ODM3NWJmMmQ2NDYyMjU4MmYxOTY5ODI0NwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9yZXNvdXJjZXMvYWVzLWt3LWltcG9y
dC1rZXktd3JhcC1rZXkuanMKQEAgLTAsMCArMSwyMyBAQAoraW1wb3J0U2NyaXB0cygnLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CitpbXBvcnRTY3JpcHRzKCcuLi8uLi8u
Li9yZXNvdXJjZXMvY29tbW9uLmpzJyk7CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHdyYXBwaW5nIGEg
cmF3IGtleSB3aXRoIEFFUy1LVyB1c2luZyBhbiBpbXBvcnRlZCBrZXkgaW4gd29ya2VycyIpOwor
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBy
YXdLZXkgPSBhc2NpaVRvVWludDhBcnJheSgiam5Pdzk5b09aRkxJRVBNciIpOwordmFyIGV4cGVj
dFdyYXBwZWRLZXkgPSAiZDY0Nzg3YWIzZTA0OGRiZGMzMGJiNjI3ODFjOWYxOGU1OGFkN2RiZmM2
NGFhYjE2IjsKKworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIHJhd0tleSwgImFlcy1r
dyIsIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgd3JhcHBpbmdLZXkgPSByZXN1bHQ7CisgICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuaW1wb3J0S2V5KCJyYXciLCByYXdLZXksICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsi
ZW5jcnlwdCIsICJkZWNyeXB0Il0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBr
ZXkgPSByZXN1bHQ7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUud3JhcEtleSgicmF3Iiwga2V5
LCB3cmFwcGluZ0tleSwgIkFFUy1LVyIpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICB3cmFwcGVkS2V5ID0gcmVzdWx0OworCisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmco
d3JhcHBlZEtleSkiLCAiZXhwZWN0V3JhcHBlZEtleSIpOworICAgIHNob3VsZFJlamVjdCgnY3J5
cHRvLnN1YnRsZS53cmFwS2V5KCJqd2siLCBrZXksIHdyYXBwaW5nS2V5LCAiQUVTLUtXIiknKS50
aGVuKGZpbmlzaEpTVGVzdCk7Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93
b3JrZXJzL3N1YnRsZS9yZXNvdXJjZXMvcnNhLW9hZXAtaW1wb3J0LWtleS13cmFwLWtleS5qcyBi
L0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9yZXNvdXJjZXMvcnNhLW9hZXAtaW1w
b3J0LWtleS13cmFwLWtleS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZWIxNTEwNDYzNTk0ODMxMzQwZWYxMzg5
MmM0NmVhYzRiYjQzNzI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dv
cmtlcnMvc3VidGxlL3Jlc291cmNlcy9yc2Etb2FlcC1pbXBvcnQta2V5LXdyYXAta2V5LmpzCkBA
IC0wLDAgKzEsMzIgQEAKK2ltcG9ydFNjcmlwdHMoJy4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcycpOworaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2NvbW1vbi5q
cycpOworCitkZXNjcmlwdGlvbigiVGVzdCB3cmFwcGluZyBhIEpXSyBvY3Qga2V5IHdpdGggUlNB
LU9BRVAgdXNpbmcgYW4gaW1wb3J0ZWQga2V5IGluIHdvcmtlcnMiKTsKKworanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7Cit2YXIgandrS2V5ID0geworICAg
IGt0eTogIlJTQSIsCisgICAgYWxnOiAiUlNBLU9BRVAiLAorICAgIHVzZTogImVuYyIsCisgICAg
a2V5X29wczogWyJ3cmFwS2V5Il0sCisgICAgZXh0OiB0cnVlLAorICAgIG46ICJyY0NVQ3Y3T2Mx
SFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0
eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6
RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dt
bE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2
OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0
eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6
ICJBUUFCIgorfTsKK3ZhciByYXdLZXkgPSBhc2NpaVRvVWludDhBcnJheSgiam5Pdzk5b09aRkxJ
RVBNciIpOworCitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5LCB7bmFtZTog
InJzYS1vYWVwIiwgaGFzaDogInNoYS0xIn0sIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiXSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB3cmFwcGluZ0tleSA9IHJlc3VsdDsKKyAgICByZXR1
cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIHJhd0tleSwgImFlcy1jYmMiLCBleHRy
YWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgIGtleSA9IHJlc3VsdDsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS53cmFwS2V5
KCJqd2siLCBrZXksIHdyYXBwaW5nS2V5LCAicnNhLW9hZXAiKTsKK30pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZEJlKCJ3cmFw
cGVkS2V5LmJ5dGVMZW5ndGgiLCAiMjU2Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1vYWVwLWlt
cG9ydC1rZXktd3JhcC1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtl
cnMvc3VidGxlL3JzYS1vYWVwLWltcG9ydC1rZXktd3JhcC1rZXktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjEzNjk2MWI5NGMzYmVlMmZjYmFkMzU0N2YxZTEwOWYwMjkxOGM2OWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLW9hZXAtaW1w
b3J0LWtleS13cmFwLWtleS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorW1dvcmtlcl0g
VGVzdCB3cmFwcGluZyBhIEpXSyBvY3Qga2V5IHdpdGggUlNBLU9BRVAgdXNpbmcgYW4gaW1wb3J0
ZWQga2V5IGluIHdvcmtlcnMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0
aW5nIHdvcmtlcjogcmVzb3VyY2VzL3JzYS1vYWVwLWltcG9ydC1rZXktd3JhcC1rZXkuanMKK1BB
U1MgW1dvcmtlcl0gd3JhcHBlZEtleS5ieXRlTGVuZ3RoIGlzIDI1NgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9yc2Etb2FlcC1pbXBvcnQta2V5LXdyYXAta2V5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLW9hZXAtaW1wb3J0LWtl
eS13cmFwLWtleS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNWM2OTgzMWQ0YjVhNmUyOTNhYmRmMGQ3ZTk0
OWI1ZWNhMDEzYWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vy
cy9zdWJ0bGUvcnNhLW9hZXAtaW1wb3J0LWtleS13cmFwLWtleS5odG1sCkBAIC0wLDAgKzEsMTIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHdvcmtlciA9IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMv
cnNhLW9hZXAtaW1wb3J0LWtleS13cmFwLWtleS5qcycpOworICAgIDwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9X
ZWJDcnlwdG9BUEkvaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvV2ViQ3J5cHRvQVBJL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CmluZGV4IDVkN2JkNTdk
MDA4ODk1ZjVjZWEwZTk3MTg5ZGY1YTM4OGFiOGM0NWMuLmVmMjA5ZGM2NzQxMjg3ZTQwYWFhYjI1
ZDQwOTkyZDhkNDFjZDYyMjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9X
ZWJDcnlwdG9BUEkvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dApAQCAtNjMsOCAr
NjMsOCBAQCBQQVNTIFN1YnRsZUNyeXB0byBpbnRlcmZhY2U6IGNyeXB0by5zdWJ0bGUgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpbXBvcnRLZXkiIHdpdAogUEFTUyBTdWJ0bGVDcnlwdG8gaW50ZXJm
YWNlOiBjYWxsaW5nIGltcG9ydEtleShLZXlGb3JtYXQsW29iamVjdCBPYmplY3RdLFtvYmplY3Qg
T2JqZWN0XSxBbGdvcml0aG1JZGVudGlmaWVyLGJvb2xlYW4sW29iamVjdCBPYmplY3RdKSBvbiBj
cnlwdG8uc3VidGxlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CiBQQVNTIFN1YnRsZUNyeXB0byBpbnRlcmZhY2U6IGNyeXB0by5zdWJ0bGUgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJleHBvcnRLZXkiIHdpdGggdGhlIHByb3BlciB0eXBlICg5KSAKIFBBU1MgU3Vi
dGxlQ3J5cHRvIGludGVyZmFjZTogY2FsbGluZyBleHBvcnRLZXkoS2V5Rm9ybWF0LENyeXB0b0tl
eSkgb24gY3J5cHRvLnN1YnRsZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIAotRkFJTCBTdWJ0bGVDcnlwdG8gaW50ZXJmYWNlOiBjcnlwdG8uc3VidGxlIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAid3JhcEtleSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDEwKSBhc3Nl
cnRfaW5oZXJpdHM6IHByb3BlcnR5ICJ3cmFwS2V5IiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCi1GQUlMIFN1YnRsZUNyeXB0byBpbnRlcmZhY2U6IGNhbGxpbmcgd3JhcEtleShLZXlGb3Jt
YXQsQ3J5cHRvS2V5LENyeXB0b0tleSxBbGdvcml0aG1JZGVudGlmaWVyKSBvbiBjcnlwdG8uc3Vi
dGxlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X2lu
aGVyaXRzOiBwcm9wZXJ0eSAid3JhcEtleSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgor
UEFTUyBTdWJ0bGVDcnlwdG8gaW50ZXJmYWNlOiBjcnlwdG8uc3VidGxlIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAid3JhcEtleSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDEwKSAKK1BBU1MgU3VidGxl
Q3J5cHRvIGludGVyZmFjZTogY2FsbGluZyB3cmFwS2V5KEtleUZvcm1hdCxDcnlwdG9LZXksQ3J5
cHRvS2V5LEFsZ29yaXRobUlkZW50aWZpZXIpIG9uIGNyeXB0by5zdWJ0bGUgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIEZBSUwgU3VidGxlQ3J5cHRvIGludGVy
ZmFjZTogY3J5cHRvLnN1YnRsZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInVud3JhcEtleSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDExKSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJ1bndyYXBL
ZXkiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KIEZBSUwgU3VidGxlQ3J5cHRvIGludGVy
ZmFjZTogY2FsbGluZyB1bndyYXBLZXkoS2V5Rm9ybWF0LEJ1ZmZlclNvdXJjZSxDcnlwdG9LZXks
QWxnb3JpdGhtSWRlbnRpZmllcixBbGdvcml0aG1JZGVudGlmaWVyLGJvb2xlYW4sW29iamVjdCBP
YmplY3RdKSBvbiBjcnlwdG8uc3VidGxlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAidW53cmFwS2V5IiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>