<?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>153323</bug_id>
          
          <creation_ts>2016-01-21 14:28:09 -0800</creation_ts>
          <short_desc>Modern IDB: Add -private.html variants of crypto/subtle IndexedDB tests</short_desc>
          <delta_ts>2016-06-04 13:58:38 -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>Safari 9</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1157429</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-21 14:28:09 -0800</bug_when>
    <thetext>Modern IDB: Add -private.html variants of crypto/subtle IndexedDB tests

There seem to only be two such tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161568</commentid>
    <comment_count>1</comment_count>
      <attachid>270555</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-02 23:00:19 -0800</bug_when>
    <thetext>Created attachment 270555
Patch v1

No additional changes needed. Confirmed via testing that the -private.html versions are using the in-memory backing store, and are also passing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161579</commentid>
    <comment_count>2</comment_count>
      <attachid>270555</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-02-02 23:18:59 -0800</bug_when>
    <thetext>Comment on attachment 270555
Patch v1

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

&gt; LayoutTests/resources/js-test-pre.js:5
&gt; +    // If the test file URL ends in &quot;-private.html&quot;, enable private browsing.

I would really really prefer if we didn&apos;t add more magic paths and filenames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161675</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-03 08:46:55 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 270555 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=270555&amp;action=review
&gt; 
&gt; &gt; LayoutTests/resources/js-test-pre.js:5
&gt; &gt; +    // If the test file URL ends in &quot;-private.html&quot;, enable private browsing.
&gt; 
&gt; I would really really prefer if we didn&apos;t add more magic paths and filenames.

Already established practice at this point; js-test.js already does this.

Instead of making the change to js-test-pre.js, I could just make these tests include js-test.js also.

It seems more undesirable to me to have the source of the two copies of the test *not* be identical.

Do you have any other suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161677</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-02-03 08:56:37 -0800</bug_when>
    <thetext>&gt; Already established practice at this point

Yes, and I&apos;d like to reduce that, not add more of such abuse.

&gt; It seems more undesirable to me to have the source of the two copies of the test *not* be identical.

Why? These copies test different things, so the more apparent the difference is the better. Putting it directly into .html is vastly preferable to hiding it inside a helper script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161706</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-03 10:17:06 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Already established practice at this point
&gt; 
&gt; Yes, and I&apos;d like to reduce that, not add more of such abuse.

I don&apos;t even mean &quot;magic filenames.&quot;  I mean *this specific* magic filename is *already* in wide use.

&gt; &gt; It seems more undesirable to me to have the source of the two copies of the test *not* be identical.
&gt; 
&gt; Why? 

Because the tests are expected to be identical.

&gt; These copies test different things,

They copy identical JS APIs.

The fact that the storage backend is different is irrelevant to the text of the test.

&gt; Putting it directly into .html is vastly preferable to hiding
&gt; it inside a helper script.

This is a statement of opinion presented as fact. I happen to disagree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161707</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-03 10:17:25 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; 
&gt; &gt; These copies test different things,
&gt; 
&gt; They copy identical JS APIs.
&gt;

s/copy/test/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161780</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-02-03 14:15:41 -0800</bug_when>
    <thetext>&gt; I don&apos;t even mean &quot;magic filenames.&quot;  I mean *this specific* magic filename is *already* in wide use.

That is unfortunate, and this patch makes it even more unfortunate. Let&apos;s undo what has been done, instead of continuing the trend.

&gt; This is a statement of opinion presented as fact. I happen to disagree.

Please feel free to take the discussion to webkit-dev. I strongly believe that this is the wrong approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161781</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-02-03 14:16:49 -0800</bug_when>
    <thetext>The logic seems super straightforward: anyone who will want to find what the difference between these tests is will do a diff, and will be super confused. We should avoid confusing WebKit engineers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161795</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-03 14:57:15 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; This is a statement of opinion presented as fact. I happen to disagree.
&gt; 
&gt; Please feel free to take the discussion to webkit-dev. I strongly believe
&gt; that this is the wrong approach.

I strongly believe that it is less wrong than the suggested alternative, but I also don&apos;t need to resolve this right now, so I&apos;ll punt until a later date.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199237</commentid>
    <comment_count>10</comment_count>
      <attachid>280516</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-04 10:10:44 -0700</bug_when>
    <thetext>Created attachment 280516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199273</commentid>
    <comment_count>11</comment_count>
      <attachid>280516</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-04 13:58:34 -0700</bug_when>
    <thetext>Comment on attachment 280516
Patch

Clearing flags on attachment: 280516

Committed r201685: &lt;http://trac.webkit.org/changeset/201685&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199274</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-04 13:58:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270555</attachid>
            <date>2016-02-02 23:00:19 -0800</date>
            <delta_ts>2016-06-04 10:10:40 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11978</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTFhZmZkLi5hYTY2NmI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDIt
MDIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IEFkZCAtcHJpdmF0ZS5odG1sIHZhcmlhbnRzIG9mIGNyeXB0by9zdWJ0bGUgSW5kZXhlZERC
IHRlc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUzMzIzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4gKENvcGllZCBmcm9tIG5vbi1wcml2YXRlIHJlc3VsdHMpCisgICAg
ICAgICogY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZh
dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4gKENvcGllZCBmcm9tIG5vbi1wcml2YXRlIHJlc3VsdHMp
CisgICAgICAgICogY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzOiBJZiB0aGUgdGVzdCBuYW1l
IGVuZHMgaW4gIi1wcml2YXRlLmh0bWwiLCBlbmFibGUgcHJpdmF0ZSBicm93c2luZy4KKwogMjAx
Ni0wMi0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE5hdGl2
ZSBCaW5kaW5ncyBEZXNjcmlwdG9ycyBhcmUgSW5jb21wbGV0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5v
bi1leHBvcnRhYmxlLXByaXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjVjNjk0YzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdCBzdG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5IGluIElu
ZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJldHJpZXZlZEtleS50eXBlIGlzICdwcml2YXRlJworUEFTUyByZXRyaWV2ZWRL
ZXkuZXh0cmFjdGFibGUgaXMgZmFsc2UKK1BBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5uYW1l
IGlzICdSU0FTU0EtUEtDUzEtdjFfNScKK1BBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1
bHVzTGVuZ3RoIGlzIDIwNDgKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxn
b3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJworUEFTUyByZXRyaWV2ZWRLZXkudXNh
Z2VzIGlzIFsic2lnbiIsICJ2ZXJpZnkiXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwNDBiZjUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9y
dGFibGUtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCBzdG9yaW5nIGEg
cHJpdmF0ZSBSU0Ega2V5IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuIik7CisKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgcHJpdmF0ZUtleUpTT04gPSB7CisgICAga3R5OiAi
UlNBIiwKKyAgICBhbGc6ICJSUzI1NiIsCisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtu
VGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdw
ekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NM
RG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExL
OFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWln
ODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1N
eXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiLAorICAg
IGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNV
VHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1E
RjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gw
elRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhj
TjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVm
TGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBP
bEZ2U1EiLAorICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNr
dkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlw
bFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZp
d3Bvc09ueXlXcXdNNUFYcDAiLAorICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9r
S2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVf
WHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwz
T2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAorICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29w
N0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURI
ZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZW
d1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKKyAgICBkcTogImpt
RTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRK
NlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnIt
WWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIs
CisgICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JR
clVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2
NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9X
ZVJkZDdOc2R4VGsiCit9OworCitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlU
b1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZmFsc2Us
IFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihrZXkpIHsKKyAgICB2YXIgb3BlblJl
cXVlc3QgPSBpbmRleGVkREIub3BlbigiY3J5cHRvX3N1YnRsZSIpOworICAgIG9wZW5SZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBvYmplY3RT
dG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInJzYS1pbmRleGVk
ZGIiKTsKKyAgICB9CisgICAgb3BlblJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBvcGVuIGRhdGFiYXNlOiAiICsgZXZlbnQu
dGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisgICAg
b3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBzdG9yZUtleSgpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHN0b3JlS2V5KCkgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2Fj
dGlvbigicnNhLWluZGV4ZWRkYiIsICJyZWFkd3JpdGUiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4
ZWRkYiIpOworICAgICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUucHV0KGtleSwgIm15a2V5Iik7
CisgICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvdWxkIG5vdCBwdXQgYSBrZXkgaW50byBkYXRhYmFzZTogIiArIGV2ZW50LnRh
cmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9
CisgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeyByZWFkS2V5KCk7IH0K
KyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkS2V5KCkgeworICAgICAgICB2YXIgb2JqZWN0U3Rv
cmUgPSBkYi50cmFuc2FjdGlvbigicnNhLWluZGV4ZWRkYiIpLm9iamVjdFN0b3JlKCJyc2EtaW5k
ZXhlZGRiIik7CisgICAgICAgIHZhciByZXEgPSBvYmplY3RTdG9yZS5nZXQoIm15a2V5Iik7Cisg
ICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvdWxkIG5vdCBnZXQgYSBrZXkgZnJvbSBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdl
dC5lcnJvci5uYW1lKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9Cisg
ICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgd2lu
ZG93LnJldHJpZXZlZEtleSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBzaG91
bGRCZSgicmV0cmlldmVkS2V5LnR5cGUiLCAiJ3ByaXZhdGUnIik7CisgICAgICAgICAgICBzaG91
bGRCZSgicmV0cmlldmVkS2V5LmV4dHJhY3RhYmxlIiwgImZhbHNlIik7CisgICAgICAgICAgICBz
aG91bGRCZSgicmV0cmlldmVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFf
NSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm1vZHVs
dXNMZW5ndGgiLCAiMjA0OCIpOworICAgICAgICAgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJp
bmcocmV0cmlldmVkS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkudXNhZ2VzIiwgJ1sic2lnbiIsICJ2
ZXJpZnkiXScpOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAg
IH0KK30pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGIxMmRmZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0IHN0b3JpbmcgYSBwcml2YXRlIFJT
QSBrZXkgaW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgcmV0cmlldmVkS2V5LnR5cGUgaXMgJ3ByaXZhdGUnCitQQVNT
IHJldHJpZXZlZEtleS5leHRyYWN0YWJsZSBpcyB0cnVlCitQQVNTIHJldHJpZXZlZEtleS5hbGdv
cml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCitQQVNTIHJldHJpZXZlZEtleS5hbGdv
cml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmcocmV0cmll
dmVkS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1MgcmV0cmll
dmVkS2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lNDIwYWE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbApAQCAtMCwwICsxLDc0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
Y29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKworZGVzY3Jp
cHRpb24oIlRlc3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCBy
ZXRyaWV2aW5nIGl0LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIHByaXZhdGVL
ZXlKU09OID0geworICAgIGt0eTogIlJTQSIsCisgICAgYWxnOiAiUlMyNTYiLAorICAgIG46ICJy
Y0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVds
LVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhB
cVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJp
LTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3oz
TFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5n
a09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ci
LAorICAgIGU6ICJBUUFCIiwKKyAgICBkOiAiZU5MUzM3YUN6N1JYU05QRF9EdExCSjZqNVQ4Y1N4
ZHpSQkNqUGFJNldjR3FKcDE2bHEzVVR3dW9ETEFxbEE5b0dZbTIzOGRzSVdwdXVjUF9sUXRiV2Ut
N1NweG9JNl92bVlHZjdZVlVIdjEtREY5cWlPbVNyTW1keE1uVk96WVhZOFJhVDZ0aFBqbl9KNWNm
TFYyeElfTHdzck10bXBkU3lObGdYMHpUVWh3dHVhaGdBS01FQ2hZakgyRW5qSGRIdzZzWTItd0Fw
ZGNRSTdVTEUwb281UnpiUVpwbXVoY045aGlCYzBMM2hoRjBxbzUwbWJsMDJfNjVfR1E3RHBWa1hC
eE5nUkJMemxQYWJtenpHMm9BaGZlZkxnWW1TQzFvcGFDa1hFNnZSV1FOV05MNDVSWk5aRllNM3Vv
SmdoT01xR2VvY00wQnBqZENoSHJQT2xGdlNRIiwKKyAgICBwOiAiNG1pVHVBaktNZUg1dUo1S0Iz
OTdRVXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAxOGdiNTVxa0JISzFlVnJ5ZjFfbTQzTE5sYzZPX2Fr
NmdmemRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4cUZPU3NwQndBNjdxR0g3NmxGbFpMbl9kNHlnbFM3
d2ZMcnU0XzVZczhxTExzLURxVkx2aXdwb3NPbnl5V3F3TTVBWHAwIiwKKyAgICBxOiAieEhZcnpr
aXZ0bW56X3NHY2huV0djMHEtcERPa0tpY3B0UnB2MnBNRklJWHhuRlg1YU1lRVhJWmpWdWpYdHdV
eTFVbEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5GSE16ZWRILUEzZWUzdThoMVVVclpGLXZVdTFfZTRV
X3g2N05OMWRlZHpVU0t5bk43cEZsM09rdVNoTUJXR1YtY3d6T1BkY1ZBZlZ1Wmx4VU1jIiwKKyAg
ICBkcDogImZCekR6WURVQm1CUUdvcDdIbjBkdmZfVDI3VjZScXBjdFdvMDc0Q1FaY0ZiUDJhdEZW
dEtTajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0zbkVWbEVPMXd3SW9uR0NTdmRqR0VPWmlpRlZPanJa
QU9WeEE4Z3VPanl5RnZxYlhrZTA2VndQSUlWdmZLZVNVMnp1aGJQX18xdHQ2Rl9meG93NEtiMnhv
bkdUMEdHayIsCisgICAgZHE6ICJqbUUyRGlJUGRod0RnTFhBUXBJYUJxUTgxYk8zWGZWVF9MUlVM
QXd3d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkdaSFlva1YxVTBlT0JwSnhma2I3ZExZdHBKcHVpQmpS
ZjR5SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1JkZk5IcVdCa3hsU01aTDc3MFI5bUlBVG5kR2tIN3o1
eC1yOUt3QlpGQzRGQ0cyaGdfekUiLAorICAgIHFpOiAiWUNYX3BMd2JNQkExVGhWSDBXY3dtbnl0
cU5jck1DRXdUbTdCeUEyZVU2bldiUXJVTHZmN205X2t6ZkxVY2pzbnBBVmxCUUc1Sk1YTXkwU3E0
cHR3Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1FeXM5ZnRnRk1fM2kwbzQwZWVRSDRiM2hhUGJudHJJ
ZU1nOEl6bE91VllLZjktMlF1S0RvV2VSZGQ3TnNkeFRrIgorfTsKKworY3J5cHRvLnN1YnRsZS5p
bXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVL
ZXlKU09OKSksIG51bGwsIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihr
ZXkpIHsKKyAgICB2YXIgb3BlblJlcXVlc3QgPSBpbmRleGVkREIub3BlbigiY3J5cHRvX3N1YnRs
ZSIpOworICAgIG9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2Jq
ZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKKyAgICB9CisgICAgb3BlblJlcXVlc3Qub25lcnJv
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBvcGVu
IGRhdGFiYXNlOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICB9CisgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBzdG9yZUtl
eSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0b3JlS2V5KCkgeworICAgICAgICB2YXIgb2Jq
ZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigicnNhLWluZGV4ZWRkYiIsICJyZWFkd3JpdGUiKS5v
YmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOworICAgICAgICB2YXIgcmVxID0gb2JqZWN0U3Rv
cmUucHV0KGtleSwgIm15a2V5Iik7CisgICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBwdXQgYSBrZXkgaW50byBk
YXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICB9CisgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
dmVudCkgeyByZWFkS2V5KCk7IH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkS2V5KCkgewor
ICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigicnNhLWluZGV4ZWRkYiIp
Lm9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7CisgICAgICAgIHZhciByZXEgPSBvYmplY3RT
dG9yZS5nZXQoIm15a2V5Iik7CisgICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBnZXQgYSBrZXkgZnJvbSBkYXRh
YmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICB9CisgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVu
dCkgeworICAgICAgICAgICAgd2luZG93LnJldHJpZXZlZEtleSA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LnR5cGUiLCAiJ3ByaXZhdGUn
Iik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmV4dHJhY3RhYmxlIiwgInRy
dWUiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOworICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZl
ZEtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7CisgICAgICAgICAgICBzaG91
bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9u
ZW50KSIsICInMDEwMDAxJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS51
c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJdJyk7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICB9CisgICAgfQorfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBiL0xheW91
dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwppbmRleCBmMTFiNGI1NS4uMDY3ZGJmYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCisrKyBiL0xh
eW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwpAQCAtMSw3ICsxLDEyIEBACi0vLyBz
dmcvZHluYW1pYy11cGRhdGVzIHRlc3RzIHNldCBlbmFibGVQaXhlbFRlc3Rpbmc9dHJ1ZSwgYXMg
d2Ugd2FudCB0byBkdW1wIHRleHQgKyBwaXhlbCByZXN1bHRzCi1pZiAoc2VsZi50ZXN0UnVubmVy
KQoraWYgKHNlbGYudGVzdFJ1bm5lcikgeworCS8vIHN2Zy9keW5hbWljLXVwZGF0ZXMgdGVzdHMg
c2V0IGVuYWJsZVBpeGVsVGVzdGluZz10cnVlLCBhcyB3ZSB3YW50IHRvIGR1bXAgdGV4dCArIHBp
eGVsIHJlc3VsdHMKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoc2VsZi5lbmFibGVQaXhlbFRl
c3RpbmcpOwogCisgICAgLy8gSWYgdGhlIHRlc3QgZmlsZSBVUkwgZW5kcyBpbiAiLXByaXZhdGUu
aHRtbCIsIGVuYWJsZSBwcml2YXRlIGJyb3dzaW5nLgorICAgIGlmICh3aW5kb3cubG9jYXRpb24u
aHJlZi5lbmRzV2l0aCgiLXByaXZhdGUuaHRtbCIpKQorICAgICAgICB0ZXN0UnVubmVyLnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7Cit9CisKIHZhciBkZXNjcmlwdGlvbiwgZGVidWcs
IHN1Y2Nlc3NmdWxseVBhcnNlZCwgZXJyb3JNZXNzYWdlLCBzaWxlbnRUZXN0UGFzcywgZGlkUGFz
c1NvbWVUZXN0c1NpbGVudGx5LCBkaWRGYWlsU29tZVRlc3RzOwogCiBzaWxlbnRUZXN0UGFzcyA9
IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280516</attachid>
            <date>2016-06-04 10:10:44 -0700</date>
            <delta_ts>2016-06-04 13:58:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-153323-20160604101207.patch</filename>
            <type>text/plain</type>
            <size>21205</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNjc4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWE1NGZjZjQ5NDc5YWVkZGI5ZWQw
ZThkOTA1YzYyMDA4NjFiMWQ5My4uZTMwM2E4NjQyNjcxMjI4NmVjYzc5MTYwZDkyZmQ0MmMyZWU0
MmQ5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA2LTA0ICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb2Rlcm4gSURCOiBBZGQgLXByaXZhdGUuaHRt
bCB2YXJpYW50cyBvZiBjcnlwdG8vc3VidGxlIEluZGV4ZWREQiB0ZXN0cy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzMyMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9yZXNv
dXJjZXMvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5qczogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwuCisg
ICAgICAgICogY3J5cHRvL3N1YnRsZS9yZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi5qczogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwuCisKKyAg
ICAgICAgKiBjcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvcnNhLWluZGV4
ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNyeXB0
by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sOgorICAgICAgICAqIGNy
eXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWw6CisKIDIwMTYtMDYt
MDMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBC
b3BvbW9mbyBydWJ5IGluIERpY3Rpb25hcnkuYXBwIGlzIHdyaXR0ZW4gaG9yaXpvbnRhbGx5ICh3
aGVuIGl0IHNob3VsZCBiZSB3cml0dGVuIHZlcnRpY2FsbHkpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxl
LmpzIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi1u
b24tZXhwb3J0YWJsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzZlZWYyMzAyYWYyZjA2YjNjMjBlMDZlM2Ni
NTc5NjZkNGQ5NzhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9yZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5qcwpAQCAtMCwwICsxLDYx
IEBACitkZXNjcmlwdGlvbigiVGVzdCBzdG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5IGluIEluZGV4
ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2
YXIgcHJpdmF0ZUtleUpTT04gPSB7CisgICAga3R5OiAiUlNBIiwKKyAgICBhbGc6ICJSUzI1NiIs
CisgICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFG
Q2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlt
eTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hr
cnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09F
SWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNq
dVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxf
aTMtX0NlZWNDdyIsCisgICAgZTogIkFRQUIiLAorICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0
TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1
dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFU
NnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpI
ZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82
NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0
NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAorICAgIHA6ICI0bWlUdUFq
S01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9t
NDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZs
WkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAorICAg
IHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVF
WElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVy
WkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVa
bHhVTWMiLAorICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRD
UVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpH
RU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZG
X2Z4b3c0S2IyeG9uR1QwR0drIiwKKyAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFi
TzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdk
TFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjlt
SUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCisgICAgcWk6ICJZQ1hfcEx3Yk1CQTFU
aFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJR
RzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFI
NGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCit9OworCitjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdp
ZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZmFsc2UsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhl
bihmdW5jdGlvbihrZXkpIHsKKyAgICB2YXIgb3BlblJlcXVlc3QgPSBpbmRleGVkREIub3Blbigi
Y3J5cHRvX3N1YnRsZSIpOworICAgIG9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1
bHQuY3JlYXRlT2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKKyAgICB9CisgICAgb3BlblJl
cXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHRlc3RGYWlsZWQoIkNv
dWxkIG5vdCBvcGVuIGRhdGFiYXNlOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAg
ICAgICBzdG9yZUtleSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0b3JlS2V5KCkgeworICAg
ICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigicnNhLWluZGV4ZWRkYiIsICJy
ZWFkd3JpdGUiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOworICAgICAgICB2YXIgcmVx
ID0gb2JqZWN0U3RvcmUucHV0KGtleSwgIm15a2V5Iik7CisgICAgICAgIHJlcS5vbmVycm9yID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBwdXQg
YSBrZXkgaW50byBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgICAgIHJlcS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihldmVudCkgeyByZWFkS2V5KCk7IH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
ZWFkS2V5KCkgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigicnNh
LWluZGV4ZWRkYiIpLm9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7CisgICAgICAgIHZhciBy
ZXEgPSBvYmplY3RTdG9yZS5nZXQoIm15a2V5Iik7CisgICAgICAgIHJlcS5vbmVycm9yID0gZnVu
Y3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBnZXQgYSBr
ZXkgZnJvbSBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgd2luZG93LnJldHJpZXZlZEtleSA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LnR5cGUi
LCAiJ3ByaXZhdGUnIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmV4dHJh
Y3RhYmxlIiwgImZhbHNlIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmFs
Z29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOworICAg
ICAgICAgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcocmV0cmlldmVkS2V5LmFsZ29yaXRo
bS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXRyaWV2ZWRLZXkudXNhZ2VzIiwgJ1sic2lnbiIsICJ2ZXJpZnkiXScpOworCisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIH0KK30pOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi5qcyBiL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDExMjQxNjM0ZGI5M2Y5NGI5YTljZjZjYjlmNTRjN2I2NzAzYzg0MAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGIu
anMKQEAgLTAsMCArMSw2MSBAQAorZGVzY3JpcHRpb24oIlRlc3Qgc3RvcmluZyBhIHByaXZhdGUg
UlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5nIGl0LiIpOworCitqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKwordmFyIHByaXZhdGVLZXlKU09OID0geworICAgIGt0eTogIlJTQSIsCisg
ICAgYWxnOiAiUlMyNTYiLAorICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4
UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJM
U0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFH
NU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0Ex
T2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lX
Ykd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1Vw
MDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6ICJBUUFCIiwKKyAgICBkOiAiZU5M
UzM3YUN6N1JYU05QRF9EdExCSjZqNVQ4Y1N4ZHpSQkNqUGFJNldjR3FKcDE2bHEzVVR3dW9ETEFx
bEE5b0dZbTIzOGRzSVdwdXVjUF9sUXRiV2UtN1NweG9JNl92bVlHZjdZVlVIdjEtREY5cWlPbVNy
TW1keE1uVk96WVhZOFJhVDZ0aFBqbl9KNWNmTFYyeElfTHdzck10bXBkU3lObGdYMHpUVWh3dHVh
aGdBS01FQ2hZakgyRW5qSGRIdzZzWTItd0FwZGNRSTdVTEUwb281UnpiUVpwbXVoY045aGlCYzBM
M2hoRjBxbzUwbWJsMDJfNjVfR1E3RHBWa1hCeE5nUkJMemxQYWJtenpHMm9BaGZlZkxnWW1TQzFv
cGFDa1hFNnZSV1FOV05MNDVSWk5aRllNM3VvSmdoT01xR2VvY00wQnBqZENoSHJQT2xGdlNRIiwK
KyAgICBwOiAiNG1pVHVBaktNZUg1dUo1S0IzOTdRVXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAxOGdi
NTVxa0JISzFlVnJ5ZjFfbTQzTE5sYzZPX2FrNmdmemRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4cUZP
U3NwQndBNjdxR0g3NmxGbFpMbl9kNHlnbFM3d2ZMcnU0XzVZczhxTExzLURxVkx2aXdwb3NPbnl5
V3F3TTVBWHAwIiwKKyAgICBxOiAieEhZcnpraXZ0bW56X3NHY2huV0djMHEtcERPa0tpY3B0UnB2
MnBNRklJWHhuRlg1YU1lRVhJWmpWdWpYdHdVeTFVbEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5GSE16
ZWRILUEzZWUzdThoMVVVclpGLXZVdTFfZTRVX3g2N05OMWRlZHpVU0t5bk43cEZsM09rdVNoTUJX
R1YtY3d6T1BkY1ZBZlZ1Wmx4VU1jIiwKKyAgICBkcDogImZCekR6WURVQm1CUUdvcDdIbjBkdmZf
VDI3VjZScXBjdFdvMDc0Q1FaY0ZiUDJhdEZWdEtTajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0zbkVW
bEVPMXd3SW9uR0NTdmRqR0VPWmlpRlZPanJaQU9WeEE4Z3VPanl5RnZxYlhrZTA2VndQSUlWdmZL
ZVNVMnp1aGJQX18xdHQ2Rl9meG93NEtiMnhvbkdUMEdHayIsCisgICAgZHE6ICJqbUUyRGlJUGRo
d0RnTFhBUXBJYUJxUTgxYk8zWGZWVF9MUlVMQXd3d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkdaSFlv
a1YxVTBlT0JwSnhma2I3ZExZdHBKcHVpQmpSZjR5SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1JkZk5I
cVdCa3hsU01aTDc3MFI5bUlBVG5kR2tIN3o1eC1yOUt3QlpGQzRGQ0cyaGdfekUiLAorICAgIHFp
OiAiWUNYX3BMd2JNQkExVGhWSDBXY3dtbnl0cU5jck1DRXdUbTdCeUEyZVU2bldiUXJVTHZmN205
X2t6ZkxVY2pzbnBBVmxCUUc1Sk1YTXkwU3E0cHR3Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1FeXM5
ZnRnRk1fM2kwbzQwZWVRSDRiM2hhUGJudHJJZU1nOEl6bE91VllLZjktMlF1S0RvV2VSZGQ3TnNk
eFRrIgorfTsKKworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIHRydWUsIFsic2lnbiIs
ICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihrZXkpIHsKKyAgICB2YXIgb3BlblJlcXVlc3QgPSBp
bmRleGVkREIub3BlbigiY3J5cHRvX3N1YnRsZSIpOworICAgIG9wZW5SZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGV2
ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKKyAg
ICB9CisgICAgb3BlblJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAg
IHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBvcGVuIGRhdGFiYXNlOiAiICsgZXZlbnQudGFyZ2V0LmVy
cm9yLm5hbWUpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisgICAgb3BlblJlcXVl
c3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0OworICAgICAgICBzdG9yZUtleSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
b3JlS2V5KCkgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigicnNh
LWluZGV4ZWRkYiIsICJyZWFkd3JpdGUiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOwor
ICAgICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUucHV0KGtleSwgIm15a2V5Iik7CisgICAgICAg
IHJlcS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkNvdWxkIG5vdCBwdXQgYSBrZXkgaW50byBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJv
ci5uYW1lKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgICAg
IHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeyByZWFkS2V5KCk7IH0KKyAgICB9CisK
KyAgICBmdW5jdGlvbiByZWFkS2V5KCkgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50
cmFuc2FjdGlvbigicnNhLWluZGV4ZWRkYiIpLm9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7
CisgICAgICAgIHZhciByZXEgPSBvYmplY3RTdG9yZS5nZXQoIm15a2V5Iik7CisgICAgICAgIHJl
cS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNv
dWxkIG5vdCBnZXQgYSBrZXkgZnJvbSBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5u
YW1lKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgICAgIHJl
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgd2luZG93LnJldHJp
ZXZlZEtleSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0
cmlldmVkS2V5LnR5cGUiLCAiJ3ByaXZhdGUnIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0
cmlldmVkS2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOworICAg
ICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIs
ICIyMDQ4Iik7CisgICAgICAgICAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2
ZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOworICAgICAgICAg
ICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS51c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJdJyk7
CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgfQorfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4
cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWM2OTRjMjAyY2Q3MTM4YzIxOTg3ZGVlZWRmNTg3OTRhMjgyNDYwYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhw
b3J0YWJsZS1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0IHN0b3Jp
bmcgYSBwcml2YXRlIFJTQSBrZXkgaW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmV0cmlldmVkS2V5LnR5cGUgaXMg
J3ByaXZhdGUnCitQQVNTIHJldHJpZXZlZEtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQorUEFTUyBy
ZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JworUEFTUyBy
ZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAorUEFTUyBieXRlc1Rv
SGV4U3RyaW5nKHJldHJpZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAw
MDEnCitQQVNTIHJldHJpZXZlZEtleS51c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxl
LXByaXZhdGUuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1u
b24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYxOGNhYWQ3MjZjNmVmMmZk
ZGIyYzRhY2UzMTk5ZmU2ODJmNjZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwKQEAg
LTAsMCArMSwxNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4K
K2VuYWJsZVByaXZhdGVCcm93c2luZyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9y
c2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuaHRtbAppbmRleCA4MDQwYmY1YjRiZTNm
YmYxM2Q2N2RkOGE2NGI2ZjkxYzJmODM0ZmIzLi5jYmJkOWU3N2ExN2MxNzdmNjBkMjAzN2Y3M2Jl
NTkzNjgzM2M1NzlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1p
bmRleGVkZGItbm9uLWV4cG9ydGFibGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuaHRtbApAQCAtNSw3MCArNSw3IEBACiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KLTxzY3JpcHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IHN0b3JpbmcgYSBwcml2YXRlIFJTQSBr
ZXkgaW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4iKTsKLQotanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLXZhciBwcml2YXRlS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFs
ZzogIlJTMjU2IiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazha
aXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdn
V1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0Ro
RDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5
ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5
M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpE
WmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIsCi0gICAgZDogImVOTFMzN2FD
ejdSWFNOUERfRHRMQko2ajVUOGNTeGR6UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxBOW9H
WW0yMzhkc0lXcHV1Y1BfbFF0YldlLTdTcHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1tZHhN
blZPellYWThSYVQ2dGhQam5fSjVjZkxWMnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhnQUtN
RUNoWWpIMkVuakhkSHc2c1kyLXdBcGRjUUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNoaEYw
cW81MG1ibDAyXzY1X0dRN0RwVmtYQnhOZ1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3BhQ2tY
RTZ2UldRTldOTDQ1UlpOWkZZTTN1b0pnaE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCi0gICAg
cDogIjRtaVR1QWpLTWVINXVKNUtCMzk3UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1cWtC
SEsxZVZyeWYxX200M0xObGM2T19hazZnZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1NzcEJ3
QTY3cUdINzZsRmxaTG5fZDR5Z2xTN3dmTHJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdxd001
QVhwMCIsCi0gICAgcTogInhIWXJ6a2l2dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJwTUZJ
SVh4bkZYNWFNZUVYSVpqVnVqWHR3VXkxVWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVkSC1B
M2VlM3U4aDFVVXJaRi12VXUxX2U0VV94NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dWLWN3
ek9QZGNWQWZWdVpseFVNYyIsCi0gICAgZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1QyN1Y2
UnFwY3RXbzA3NENRWmNGYlAyYXRGVnRLU2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxFTzF3
d0lvbkdDU3ZkakdFT1ppaUZWT2pyWkFPVnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VTVTJ6
dWhiUF9fMXR0NkZfZnhvdzRLYjJ4b25HVDBHR2siLAotICAgIGRxOiAiam1FMkRpSVBkaHdEZ0xY
QVFwSWFCcVE4MWJPM1hmVlRfTFJVTEF3d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tWMVUw
ZU9CcEp4ZmtiN2RMWXRwSnB1aUJqUmY0eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFXQmt4
bFNNWkw3NzBSOW1JQVRuZEdrSDd6NXgtcjlLd0JaRkM0RkNHMmhnX3pFIiwKLSAgICBxaTogIllD
WF9wTHdiTUJBMVRoVkgwV2N3bW55dHFOY3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9remZM
VWNqc25wQVZsQlFHNUpNWE15MFNxNHB0d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0Z0ZN
XzNpMG80MGVlUUg0YjNoYVBibnRySWVNZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhUayIK
LX07Ci0KLWNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShK
U09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBmYWxzZSwgWyJzaWduIiwgInZl
cmlmeSJdKS50aGVuKGZ1bmN0aW9uKGtleSkgewotICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKCJjcnlwdG9fc3VidGxlIik7Ci0gICAgb3BlblJlcXVlc3Qub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOwotICAgIH0K
LSAgICBvcGVuUmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdGVz
dEZhaWxlZCgiQ291bGQgbm90IG9wZW4gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJyb3Iu
bmFtZSk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0KLSAgICBvcGVuUmVxdWVzdC5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7Ci0gICAgICAgIHN0b3JlS2V5KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RvcmVL
ZXkoKSB7Ci0gICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJyc2EtaW5k
ZXhlZGRiIiwgInJlYWR3cml0ZSIpLm9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7Ci0gICAg
ICAgIHZhciByZXEgPSBvYmplY3RTdG9yZS5wdXQoa2V5LCAibXlrZXkiKTsKLSAgICAgICAgcmVx
Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ291
bGQgbm90IHB1dCBhIGtleSBpbnRvIGRhdGFiYXNlOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5h
bWUpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmVx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7IHJlYWRLZXkoKTsgfQotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHJlYWRLZXkoKSB7Ci0gICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5z
YWN0aW9uKCJyc2EtaW5kZXhlZGRiIikub2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKLSAg
ICAgICAgdmFyIHJlcSA9IG9iamVjdFN0b3JlLmdldCgibXlrZXkiKTsKLSAgICAgICAgcmVxLm9u
ZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ291bGQg
bm90IGdldCBhIGtleSBmcm9tIGRhdGFiYXNlOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUp
OwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmVxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB3aW5kb3cucmV0cmlldmVk
S2V5ID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2
ZWRLZXkudHlwZSIsICIncHJpdmF0ZSciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2
ZWRLZXkuZXh0cmFjdGFibGUiLCAiZmFsc2UiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJyZXRy
aWV2ZWRLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOwotICAgICAg
ICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIy
MDQ4Iik7Ci0gICAgICAgICAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRL
ZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOwotICAgICAgICAgICAg
c2hvdWxkQmUoInJldHJpZXZlZEtleS51c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJdJyk7Ci0K
LSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotfSk7Ci08L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJs
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGIxMmRmZjBhYmU1MzJkOTBmNDQ3NDhkMzZhNDQ3M2E2ZGNhMGM5MgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1w
cml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0IHN0b3JpbmcgYSBwcml2
YXRlIFJTQSBrZXkgaW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmV0cmlldmVkS2V5LnR5cGUgaXMgJ3ByaXZhdGUn
CitQQVNTIHJldHJpZXZlZEtleS5leHRyYWN0YWJsZSBpcyB0cnVlCitQQVNTIHJldHJpZXZlZEtl
eS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCitQQVNTIHJldHJpZXZlZEtl
eS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4CitQQVNTIGJ5dGVzVG9IZXhTdHJpbmco
cmV0cmlldmVkS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKK1BBU1Mg
cmV0cmlldmVkS2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NDRjZTg4Yzc1NDE0ZDk3YWUwN2RlYzVhYWNlYWI5NWVlZGVmOTdiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbApA
QCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
PgorZW5hYmxlUHJpdmF0ZUJyb3dzaW5nID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGIu
aHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCmluZGV4
IGU0MjBhYTc2NzM1YjQ0ZGUzYjNiY2Q5MmQ4Zjg2NTJiMTRiNDRhMWEuLjEyODZlMGY4Njc2ZGM0
MjUyYmY3OWZlNzFjYWU3YmQyMmI2YTZjMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvcnNhLWluZGV4ZWRkYi5odG1sCkBAIC01LDcwICs1LDcgQEAKIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHNjcmlwdD4KLQot
ZGVzY3JpcHRpb24oIlRlc3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIs
IGFuZCByZXRyaWV2aW5nIGl0LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHBy
aXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlMyNTYiLAotICAg
IG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9G
aXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRa
LUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4
dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhV
U2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5X
c0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9D
ZWVjQ3ciLAotICAgIGU6ICJBUUFCIiwKLSAgICBkOiAiZU5MUzM3YUN6N1JYU05QRF9EdExCSjZq
NVQ4Y1N4ZHpSQkNqUGFJNldjR3FKcDE2bHEzVVR3dW9ETEFxbEE5b0dZbTIzOGRzSVdwdXVjUF9s
UXRiV2UtN1NweG9JNl92bVlHZjdZVlVIdjEtREY5cWlPbVNyTW1keE1uVk96WVhZOFJhVDZ0aFBq
bl9KNWNmTFYyeElfTHdzck10bXBkU3lObGdYMHpUVWh3dHVhaGdBS01FQ2hZakgyRW5qSGRIdzZz
WTItd0FwZGNRSTdVTEUwb281UnpiUVpwbXVoY045aGlCYzBMM2hoRjBxbzUwbWJsMDJfNjVfR1E3
RHBWa1hCeE5nUkJMemxQYWJtenpHMm9BaGZlZkxnWW1TQzFvcGFDa1hFNnZSV1FOV05MNDVSWk5a
RllNM3VvSmdoT01xR2VvY00wQnBqZENoSHJQT2xGdlNRIiwKLSAgICBwOiAiNG1pVHVBaktNZUg1
dUo1S0IzOTdRVXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAxOGdiNTVxa0JISzFlVnJ5ZjFfbTQzTE5s
YzZPX2FrNmdmemRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4cUZPU3NwQndBNjdxR0g3NmxGbFpMbl9k
NHlnbFM3d2ZMcnU0XzVZczhxTExzLURxVkx2aXdwb3NPbnl5V3F3TTVBWHAwIiwKLSAgICBxOiAi
eEhZcnpraXZ0bW56X3NHY2huV0djMHEtcERPa0tpY3B0UnB2MnBNRklJWHhuRlg1YU1lRVhJWmpW
dWpYdHdVeTFVbEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5GSE16ZWRILUEzZWUzdThoMVVVclpGLXZV
dTFfZTRVX3g2N05OMWRlZHpVU0t5bk43cEZsM09rdVNoTUJXR1YtY3d6T1BkY1ZBZlZ1Wmx4VU1j
IiwKLSAgICBkcDogImZCekR6WURVQm1CUUdvcDdIbjBkdmZfVDI3VjZScXBjdFdvMDc0Q1FaY0Zi
UDJhdEZWdEtTajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0zbkVWbEVPMXd3SW9uR0NTdmRqR0VPWmlp
RlZPanJaQU9WeEE4Z3VPanl5RnZxYlhrZTA2VndQSUlWdmZLZVNVMnp1aGJQX18xdHQ2Rl9meG93
NEtiMnhvbkdUMEdHayIsCi0gICAgZHE6ICJqbUUyRGlJUGRod0RnTFhBUXBJYUJxUTgxYk8zWGZW
VF9MUlVMQXd3d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkdaSFlva1YxVTBlT0JwSnhma2I3ZExZdHBK
cHVpQmpSZjR5SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1JkZk5IcVdCa3hsU01aTDc3MFI5bUlBVG5k
R2tIN3o1eC1yOUt3QlpGQzRGQ0cyaGdfekUiLAotICAgIHFpOiAiWUNYX3BMd2JNQkExVGhWSDBX
Y3dtbnl0cU5jck1DRXdUbTdCeUEyZVU2bldiUXJVTHZmN205X2t6ZkxVY2pzbnBBVmxCUUc1Sk1Y
TXkwU3E0cHR3Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1FeXM5ZnRnRk1fM2kwbzQwZWVRSDRiM2hh
UGJudHJJZU1nOEl6bE91VllLZjktMlF1S0RvV2VSZGQ3TnNkeFRrIgotfTsKLQotY3J5cHRvLnN1
YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHBy
aXZhdGVLZXlKU09OKSksIG51bGwsIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5j
dGlvbihrZXkpIHsKLSAgICB2YXIgb3BlblJlcXVlc3QgPSBpbmRleGVkREIub3BlbigiY3J5cHRv
X3N1YnRsZSIpOwotICAgIG9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2
ZW50KSB7Ci0gICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3Jl
YXRlT2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKLSAgICB9Ci0gICAgb3BlblJlcXVlc3Qu
b25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5v
dCBvcGVuIGRhdGFiYXNlOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOwotICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKLSAgICB9Ci0gICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICBz
dG9yZUtleSgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0b3JlS2V5KCkgewotICAgICAgICB2
YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigicnNhLWluZGV4ZWRkYiIsICJyZWFkd3Jp
dGUiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOwotICAgICAgICB2YXIgcmVxID0gb2Jq
ZWN0U3RvcmUucHV0KGtleSwgIm15a2V5Iik7Ci0gICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBwdXQgYSBrZXkg
aW50byBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKLSAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9Ci0gICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihldmVudCkgeyByZWFkS2V5KCk7IH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZWFkS2V5
KCkgewotICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigicnNhLWluZGV4
ZWRkYiIpLm9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7Ci0gICAgICAgIHZhciByZXEgPSBv
YmplY3RTdG9yZS5nZXQoIm15a2V5Iik7Ci0gICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBnZXQgYSBrZXkgZnJv
bSBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKLSAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwotICAgICAgICB9Ci0gICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihldmVudCkgewotICAgICAgICAgICAgd2luZG93LnJldHJpZXZlZEtleSA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQ7Ci0gICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LnR5cGUiLCAiJ3By
aXZhdGUnIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmV4dHJhY3RhYmxl
IiwgInRydWUiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoInJl
dHJpZXZlZEtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Ci0gICAgICAgICAg
ICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLnB1Ymxp
Y0V4cG9uZW50KSIsICInMDEwMDAxJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZl
ZEtleS51c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJdJyk7Ci0KLSAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotfSk7Ci08L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>